aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt2
-rw-r--r--README56
-rw-r--r--README.md80
-rw-r--r--cmake/compiler/msvc/settings.cmake5
-rw-r--r--cmake/platform/unix/settings.cmake3
-rw-r--r--dep/PackageList.txt2
-rw-r--r--dep/acelite/ace/CMakeLists.txt1
-rw-r--r--dep/acelite/ace/PrecompiledHeaders/WinAcePCH.cpp1
-rw-r--r--dep/recastnavigation/Detour/DetourAlloc.h27
-rw-r--r--dep/recastnavigation/Detour/DetourAssert.h2
-rw-r--r--dep/recastnavigation/Detour/DetourCommon.cpp64
-rw-r--r--dep/recastnavigation/Detour/DetourCommon.h338
-rw-r--r--dep/recastnavigation/Detour/DetourNavMesh.cpp573
-rw-r--r--dep/recastnavigation/Detour/DetourNavMesh.h710
-rw-r--r--dep/recastnavigation/Detour/DetourNavMeshBuilder.cpp356
-rw-r--r--dep/recastnavigation/Detour/DetourNavMeshBuilder.h157
-rw-r--r--dep/recastnavigation/Detour/DetourNavMeshQuery.cpp1265
-rw-r--r--dep/recastnavigation/Detour/DetourNavMeshQuery.h591
-rw-r--r--dep/recastnavigation/Detour/DetourNode.cpp17
-rw-r--r--dep/recastnavigation/Detour/DetourNode.h32
-rw-r--r--dep/recastnavigation/Detour/DetourStatus.h64
-rw-r--r--dep/recastnavigation/Recast/CMakeLists.txt1
-rw-r--r--dep/recastnavigation/Recast/Recast.cpp80
-rw-r--r--dep/recastnavigation/Recast/Recast.h1180
-rw-r--r--dep/recastnavigation/Recast/RecastAlloc.cpp21
-rw-r--r--dep/recastnavigation/Recast/RecastAlloc.h65
-rw-r--r--dep/recastnavigation/Recast/RecastArea.cpp199
-rw-r--r--dep/recastnavigation/Recast/RecastAssert.h2
-rw-r--r--dep/recastnavigation/Recast/RecastContour.cpp75
-rw-r--r--dep/recastnavigation/Recast/RecastFilter.cpp34
-rw-r--r--dep/recastnavigation/Recast/RecastLayers.cpp620
-rw-r--r--dep/recastnavigation/Recast/RecastMesh.cpp128
-rw-r--r--dep/recastnavigation/Recast/RecastMeshDetail.cpp40
-rw-r--r--dep/recastnavigation/Recast/RecastRasterization.cpp27
-rw-r--r--dep/recastnavigation/Recast/RecastRegion.cpp116
-rw-r--r--dep/utf8cpp/utf8/checked.h6
-rw-r--r--dep/utf8cpp/utf8/unchecked.h2
-rw-r--r--sql/base/auth_database.sql22
-rw-r--r--sql/base/characters_database.sql2
-rw-r--r--sql/old/3.3.5a/TDB31_to_TDB32_updates/auth/08861_auth_realmlist.sql (renamed from sql/old/3.3.5a/08861_auth_realmlist.sql)0
-rw-r--r--sql/old/3.3.5a/TDB32_to_TDB33_updates/characters/08971_characters_characters.sql (renamed from sql/old/3.3.5a/08971_characters_characters.sql)0
-rw-r--r--sql/old/3.3.5a/TDB32_to_TDB33_updates/characters/08986_characters_worldstates.sql (renamed from sql/old/3.3.5a/08986_characters_worldstates.sql)0
-rw-r--r--sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08890_world_spell_dbc.sql (renamed from sql/old/3.3.5a/08890_world_spell_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08891_world_spell_dbc.sql (renamed from sql/old/3.3.5a/08891_world_spell_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08897_world_npc_vendor.sql (renamed from sql/old/3.3.5a/08897_world_npc_vendor.sql)0
-rw-r--r--sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08897_world_trinity_string.sql (renamed from sql/old/3.3.5a/08897_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08905_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/08905_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08906_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/08906_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08915_world_trinity_string.sql (renamed from sql/old/3.3.5a/08915_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08920_world_spell_dbc.sql (renamed from sql/old/3.3.5a/08920_world_spell_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08920_world_spell_linked_spell.sql (renamed from sql/old/3.3.5a/08920_world_spell_linked_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08921_world_spell_dbc.sql (renamed from sql/old/3.3.5a/08921_world_spell_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08925_world_spell_group.sql (renamed from sql/old/3.3.5a/08925_world_spell_group.sql)0
-rw-r--r--sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08957_world_command.sql (renamed from sql/old/3.3.5a/08957_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08957_world_disables.sql (renamed from sql/old/3.3.5a/08957_world_disables.sql)0
-rw-r--r--sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08957_world_trinity_string.sql (renamed from sql/old/3.3.5a/08957_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08971_world_command.sql (renamed from sql/old/3.3.5a/08971_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08971_world_trinity_string.sql (renamed from sql/old/3.3.5a/08971_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08975_world_spell_dbc.sql (renamed from sql/old/3.3.5a/08975_world_spell_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08987_world_playercreateinfo.sql (renamed from sql/old/3.3.5a/08987_world_playercreateinfo.sql)0
-rw-r--r--sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08988_world_playercreateinfo.sql (renamed from sql/old/3.3.5a/08988_world_playercreateinfo.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/auth/09444_auth_account.sql (renamed from sql/old/3.3.5a/09444_auth_account.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09081_characters_characters.sql (renamed from sql/old/3.3.5a/09081_characters_characters.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09090_characters_item_instance.sql (renamed from sql/old/3.3.5a/09090_characters_item_instance.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09092_characters_corpse.sql (renamed from sql/old/3.3.5a/09092_characters_corpse.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09160_characters_item_instance.sql (renamed from sql/old/3.3.5a/09160_characters_item_instance.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09521_characters_character_achievement.sql (renamed from sql/old/3.3.5a/09521_characters_character_achievement.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09632_characters_arena_team_member.sql (renamed from sql/old/3.3.5a/09632_characters_arena_team_member.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09632_characters_arena_team_stats.sql (renamed from sql/old/3.3.5a/09632_characters_arena_team_stats.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09632_characters_character_arena_stats.sql (renamed from sql/old/3.3.5a/09632_characters_character_arena_stats.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09668_characters_gm_subsurveys.sql (renamed from sql/old/3.3.5a/09668_characters_gm_subsurveys.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09668_characters_gm_surveys.sql (renamed from sql/old/3.3.5a/09668_characters_gm_surveys.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09668_characters_gm_tickets.sql (renamed from sql/old/3.3.5a/09668_characters_gm_tickets.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09668_characters_lag_reports.sql (renamed from sql/old/3.3.5a/09668_characters_lag_reports.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09708_characters_database.sql (renamed from sql/old/3.3.5a/09708_characters_database.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09716_characters_auctionhousebot.sql (renamed from sql/old/3.3.5a/09716_characters_auctionhousebot.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09758_characters_game_event_save.sql (renamed from sql/old/3.3.5a/09758_characters_game_event_save.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09792_characters_groups.sql (renamed from sql/old/3.3.5a/09792_characters_groups.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09792_characters_instance.sql (renamed from sql/old/3.3.5a/09792_characters_instance.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09792_characters_instance_reset.sql (renamed from sql/old/3.3.5a/09792_characters_instance_reset.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09000_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/09000_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09006_world_spell_group.sql (renamed from sql/old/3.3.5a/09006_world_spell_group.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09008_world_trinity_string.sql (renamed from sql/old/3.3.5a/09008_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09010_world_spell_scripts.sql (renamed from sql/old/3.3.5a/09010_world_spell_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09012_world_spell_script_names.sql (renamed from sql/old/3.3.5a/09012_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09026_world_script_texts.sql (renamed from sql/old/3.3.5a/09026_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09026_world_scriptname.sql (renamed from sql/old/3.3.5a/09026_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09036_world_reputation_reward_rate.sql (renamed from sql/old/3.3.5a/09036_world_reputation_reward_rate.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09039_world_reputation_spillover_template.sql (renamed from sql/old/3.3.5a/09039_world_reputation_spillover_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09043_world_spell_script_names.sql (renamed from sql/old/3.3.5a/09043_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09058_world_spell_script_names.sql (renamed from sql/old/3.3.5a/09058_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09059_world_spell_script_names.sql (renamed from sql/old/3.3.5a/09059_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09063_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/09063_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09070_world_scriptname.sql (renamed from sql/old/3.3.5a/09070_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09077_world_trinity_string.sql (renamed from sql/old/3.3.5a/09077_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09081_world_access_requirement.sql (renamed from sql/old/3.3.5a/09081_world_access_requirement.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09081_world_areatrigger_teleport.sql (renamed from sql/old/3.3.5a/09081_world_areatrigger_teleport.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09108_world_battleground_template.sql (renamed from sql/old/3.3.5a/09108_world_battleground_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09109_world_creature_transport.sql (renamed from sql/old/3.3.5a/09109_world_creature_transport.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09120_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/09120_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09122_world_spell_script_names.sql (renamed from sql/old/3.3.5a/09122_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09123_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/09123_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09124_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/09124_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09130_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/09130_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09131_world_spell_ranks.sql (renamed from sql/old/3.3.5a/09131_world_spell_ranks.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09135_world_battleground_template.sql (renamed from sql/old/3.3.5a/09135_world_battleground_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09136_world_trinity_string.sql (renamed from sql/old/3.3.5a/09136_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09144_world_spell_script_names.sql (renamed from sql/old/3.3.5a/09144_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09148_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/09148_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09149_world_spell_script_names.sql (renamed from sql/old/3.3.5a/09149_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09162_world_spell_script_names.sql (renamed from sql/old/3.3.5a/09162_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09166_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/09166_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09176_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/09176_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09189_world_transports.sql (renamed from sql/old/3.3.5a/09189_world_transports.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09191_world_instance_template.sql (renamed from sql/old/3.3.5a/09191_world_instance_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09193_world_battleground_template.sql (renamed from sql/old/3.3.5a/09193_world_battleground_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09195_world_game_weather.sql (renamed from sql/old/3.3.5a/09195_world_game_weather.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09196_world_conditions.sql (renamed from sql/old/3.3.5a/09196_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09198_world_outdoorpvp_template.sql (renamed from sql/old/3.3.5a/09198_world_outdoorpvp_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09199_world_spell_script_names.sql (renamed from sql/old/3.3.5a/09199_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09205_world_spell_script_names.sql (renamed from sql/old/3.3.5a/09205_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09213_world_spell_script_names.sql (renamed from sql/old/3.3.5a/09213_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09237_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/09237_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09237_world_battleground_template.sql (renamed from sql/old/3.3.5a/09237_world_battleground_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09237_world_outdoorpvp_template.sql (renamed from sql/old/3.3.5a/09237_world_outdoorpvp_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09240_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/09240_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09246_world_scriptname.sql (renamed from sql/old/3.3.5a/09246_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09290_world_spell_linked_spell.sql (renamed from sql/old/3.3.5a/09290_world_spell_linked_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09332_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/09332_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09377_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/09377_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09421_world_command.sql (renamed from sql/old/3.3.5a/09421_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09427_world_command.sql (renamed from sql/old/3.3.5a/09427_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09436_world_spell_script_names.sql (renamed from sql/old/3.3.5a/09436_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09447_world_spell_script_names.sql (renamed from sql/old/3.3.5a/09447_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09453_world_script_texts.sql (renamed from sql/old/3.3.5a/09453_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09453_world_scriptname.sql (renamed from sql/old/3.3.5a/09453_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09453_world_spell_script_names.sql (renamed from sql/old/3.3.5a/09453_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09472_world_script_texts.sql (renamed from sql/old/3.3.5a/09472_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09472_world_scriptname.sql (renamed from sql/old/3.3.5a/09472_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09508_world_script_texts.sql (renamed from sql/old/3.3.5a/09508_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09508_world_scriptname.sql (renamed from sql/old/3.3.5a/09508_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09508_world_spell_script_names.sql (renamed from sql/old/3.3.5a/09508_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09521_world_script_texts.sql (renamed from sql/old/3.3.5a/09521_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09521_world_scriptname.sql (renamed from sql/old/3.3.5a/09521_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09521_world_spell_linked_spell.sql (renamed from sql/old/3.3.5a/09521_world_spell_linked_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09529_world_spell_script_names.sql (renamed from sql/old/3.3.5a/09529_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09537_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/09537_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09544_world_spell_script_names.sql (renamed from sql/old/3.3.5a/09544_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09551_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/09551_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09551_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/09551_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09554_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/09554_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09555_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/09555_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09556_world_spell_linked_spell.sql (renamed from sql/old/3.3.5a/09556_world_spell_linked_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09560_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/09560_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09570_world_spell_group.sql (renamed from sql/old/3.3.5a/09570_world_spell_group.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09570_world_spell_group_stack_rules.sql (renamed from sql/old/3.3.5a/09570_world_spell_group_stack_rules.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09577_world_spell_group.sql (renamed from sql/old/3.3.5a/09577_world_spell_group.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09578_world_vehicle_scaling_info.sql (renamed from sql/old/3.3.5a/09578_world_vehicle_scaling_info.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09587_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/09587_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09591_world_script_texts.sql (renamed from sql/old/3.3.5a/09591_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09591_world_script_waypoint.sql (renamed from sql/old/3.3.5a/09591_world_script_waypoint.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09591_world_scriptname.sql (renamed from sql/old/3.3.5a/09591_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09595_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/09595_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09599_world_scriptname.sql (renamed from sql/old/3.3.5a/09599_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09599_world_vehicle_accessory.sql (renamed from sql/old/3.3.5a/09599_world_vehicle_accessory.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09600_world_script_texts.sql (renamed from sql/old/3.3.5a/09600_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09600_world_script_waypoint.sql (renamed from sql/old/3.3.5a/09600_world_script_waypoint.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09600_world_scriptname.sql (renamed from sql/old/3.3.5a/09600_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09604_world_script_texts.sql (renamed from sql/old/3.3.5a/09604_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09604_world_script_waypoint.sql (renamed from sql/old/3.3.5a/09604_world_script_waypoint.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09604_world_scriptname.sql (renamed from sql/old/3.3.5a/09604_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09607_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/09607_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09607_world_script_texts.sql (renamed from sql/old/3.3.5a/09607_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09607_world_scriptname.sql (renamed from sql/old/3.3.5a/09607_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09607_world_spell_script_names.sql (renamed from sql/old/3.3.5a/09607_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09618_world_scriptname.sql (renamed from sql/old/3.3.5a/09618_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09644_world_command.sql (renamed from sql/old/3.3.5a/09644_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09666_world_spell_script_names.sql (renamed from sql/old/3.3.5a/09666_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09669_world_creature_template.sql (renamed from sql/old/3.3.5a/09669_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09671_world_spell_group.sql (renamed from sql/old/3.3.5a/09671_world_spell_group.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09671_world_spell_group_stack_rules.sql (renamed from sql/old/3.3.5a/09671_world_spell_group_stack_rules.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09681_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/09681_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09692_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/09692_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09695_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/09695_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09700_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/09700_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09700_world_script_texts.sql (renamed from sql/old/3.3.5a/09700_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09700_world_scriptname.sql (renamed from sql/old/3.3.5a/09700_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09700_world_spell_script_names.sql (renamed from sql/old/3.3.5a/09700_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09700_world_vehicle_accessory.sql (renamed from sql/old/3.3.5a/09700_world_vehicle_accessory.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09701_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/09701_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09702_world_playercreateinfo_spell.sql (renamed from sql/old/3.3.5a/09702_world_playercreateinfo_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09708_world_database.sql (renamed from sql/old/3.3.5a/09708_world_database.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09709_world_creature_respawn.sql (renamed from sql/old/3.3.5a/09709_world_creature_respawn.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09712_world_spell_threat.sql (renamed from sql/old/3.3.5a/09712_world_spell_threat.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09713_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/09713_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09715_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/09715_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09722_world_exploration_basexp.sql (renamed from sql/old/3.3.5a/09722_world_exploration_basexp.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09743_world_command.sql (renamed from sql/old/3.3.5a/09743_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09743_world_lfg_dungeon_encounters.sql (renamed from sql/old/3.3.5a/09743_world_lfg_dungeon_encounters.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09743_world_lfg_dungeon_rewards.sql (renamed from sql/old/3.3.5a/09743_world_lfg_dungeon_rewards.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09746_world_spell_script_names.sql (renamed from sql/old/3.3.5a/09746_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09760_world_transports.sql (renamed from sql/old/3.3.5a/09760_world_transports.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09762_world_script_texts.sql (renamed from sql/old/3.3.5a/09762_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09764_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/09764_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09765_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/09765_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09768_world_command.sql (renamed from sql/old/3.3.5a/09768_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09775_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/09775_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09781_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/09781_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09784_world_command.sql (renamed from sql/old/3.3.5a/09784_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09784_world_player_factionchange_achievement.sql (renamed from sql/old/3.3.5a/09784_world_player_factionchange_achievement.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09784_world_player_factionchange_items.sql (renamed from sql/old/3.3.5a/09784_world_player_factionchange_items.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09784_world_player_factionchange_reputations.sql (renamed from sql/old/3.3.5a/09784_world_player_factionchange_reputations.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09784_world_player_factionchange_spells.sql (renamed from sql/old/3.3.5a/09784_world_player_factionchange_spells.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09791_world_spell_group.sql (renamed from sql/old/3.3.5a/09791_world_spell_group.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09791_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/09791_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09803_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/09803_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09805_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/09805_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09815_world_scriptname.sql (renamed from sql/old/3.3.5a/09815_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09824_world_trinity_string.sql (renamed from sql/old/3.3.5a/09824_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09829_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/09829_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09830_world_spell_group.sql (renamed from sql/old/3.3.5a/09830_world_spell_group.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09830_world_spell_group_stack_rules.sql (renamed from sql/old/3.3.5a/09830_world_spell_group_stack_rules.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09834_world_spell_dbc.sql (renamed from sql/old/3.3.5a/09834_world_spell_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09835_world_spell_script_names.sql (renamed from sql/old/3.3.5a/09835_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09840_world_spell_linked_spell.sql (renamed from sql/old/3.3.5a/09840_world_spell_linked_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09841_world_spell_script_names.sql (renamed from sql/old/3.3.5a/09841_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09845_world_spell_dbc.sql (renamed from sql/old/3.3.5a/09845_world_spell_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/characters/09859_characters_group_member.sql (renamed from sql/old/3.3.5a/09859_characters_group_member.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/characters/09911_characters_guild_bank_eventlog.sql (renamed from sql/old/3.3.5a/09911_characters_guild_bank_eventlog.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/characters/09920_characters_pool_quest_save.sql (renamed from sql/old/3.3.5a/09920_characters_pool_quest_save.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/characters/10000_characters_character_banned.sql (renamed from sql/old/3.3.5a/10000_characters_character_banned.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/characters/10030_characters_item_soulbound_trade_data.sql (renamed from sql/old/3.3.5a/10030_characters_item_soulbound_trade_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/characters/10084_characters_character_queststatus.sql (renamed from sql/old/3.3.5a/10084_characters_character_queststatus.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/characters/10241_characters_guilds.sql (renamed from sql/old/3.3.5a/10241_characters_guilds.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/09900_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/09900_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/09912_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/09912_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/09920_world_pool_quest.sql (renamed from sql/old/3.3.5a/09920_world_pool_quest.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/09948_world_script_name.sql (renamed from sql/old/3.3.5a/09948_world_script_name.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/09948_world_script_texts.sql (renamed from sql/old/3.3.5a/09948_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/09948_world_spell_script_names.sql (renamed from sql/old/3.3.5a/09948_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/09958_world_quest_poi_points.sql (renamed from sql/old/3.3.5a/09958_world_quest_poi_points.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/09963_world_spell_script_names.sql (renamed from sql/old/3.3.5a/09963_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/09977_world_spell_script_names.sql (renamed from sql/old/3.3.5a/09977_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/09988_world_spell_script_names.sql (renamed from sql/old/3.3.5a/09988_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10000_world_command.sql (renamed from sql/old/3.3.5a/10000_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10000_world_trinity_string.sql (renamed from sql/old/3.3.5a/10000_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10023_world_command.sql (renamed from sql/old/3.3.5a/10023_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10029_world_spell_script_names.sql (renamed from sql/old/3.3.5a/10029_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10060_world_creature_text.sql (renamed from sql/old/3.3.5a/10060_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10076_world_command.sql (renamed from sql/old/3.3.5a/10076_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10078_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/10078_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10083_world_trinity_string.sql (renamed from sql/old/3.3.5a/10083_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10091_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/10091_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10099_world_spell_script_names.sql (renamed from sql/old/3.3.5a/10099_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10105_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/10105_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10105_world_spell_script_names.sql (renamed from sql/old/3.3.5a/10105_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10113_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/10113_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10132_world_command.sql (renamed from sql/old/3.3.5a/10132_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10132_world_trinity_string.sql (renamed from sql/old/3.3.5a/10132_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10171_world_script_texts.sql (renamed from sql/old/3.3.5a/10171_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10181_world_script_name.sql (renamed from sql/old/3.3.5a/10181_world_script_name.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10182_world_script_texts.sql (renamed from sql/old/3.3.5a/10182_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10183_world_spell_script_names.sql (renamed from sql/old/3.3.5a/10183_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10189_world_script_texts.sql (renamed from sql/old/3.3.5a/10189_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10189_world_scriptname.sql (renamed from sql/old/3.3.5a/10189_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10189_world_spell_linked_spell.sql (renamed from sql/old/3.3.5a/10189_world_spell_linked_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10189_world_spell_script_names.sql (renamed from sql/old/3.3.5a/10189_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10192_world_creature.sql (renamed from sql/old/3.3.5a/10192_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10195_world_script_texts.sql (renamed from sql/old/3.3.5a/10195_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10206_world_creature_classlevelstats.sql (renamed from sql/old/3.3.5a/10206_world_creature_classlevelstats.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10208_world_script_name.sql (renamed from sql/old/3.3.5a/10208_world_script_name.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10208_world_script_texts.sql (renamed from sql/old/3.3.5a/10208_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10213_world_script_texts.sql (renamed from sql/old/3.3.5a/10213_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10215_world_spell_script_names.sql (renamed from sql/old/3.3.5a/10215_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10219_world_spelldifficulty_dbc.sql (renamed from sql/old/3.3.5a/10219_world_spelldifficulty_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10223_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/10223_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10228_world_trinity_string.sql (renamed from sql/old/3.3.5a/10228_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10230_world_script_texts.sql (renamed from sql/old/3.3.5a/10230_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10230_world_scriptname.sql (renamed from sql/old/3.3.5a/10230_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10230_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/10230_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10230_world_spell_script_names.sql (renamed from sql/old/3.3.5a/10230_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10246_world_spell_linked_spell.sql (renamed from sql/old/3.3.5a/10246_world_spell_linked_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10246_world_spell_script_names.sql (renamed from sql/old/3.3.5a/10246_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10269_world_scriptname.sql (renamed from sql/old/3.3.5a/10269_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10281_world_gameobject_template.sql (renamed from sql/old/3.3.5a/10281_world_gameobject_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10282_world_script_texts.sql (renamed from sql/old/3.3.5a/10282_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10284_world_script_texts.sql (renamed from sql/old/3.3.5a/10284_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10284_world_scriptname.sql (renamed from sql/old/3.3.5a/10284_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10284_world_spell_script_names.sql (renamed from sql/old/3.3.5a/10284_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10300_world_spell_script_names.sql (renamed from sql/old/3.3.5a/10300_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10307_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/10307_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10320_world_smart_scripts.sql (renamed from sql/old/3.3.5a/10320_world_smart_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10320_world_waypoints.sql (renamed from sql/old/3.3.5a/10320_world_waypoints.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10325_world_scriptname.sql (renamed from sql/old/3.3.5a/10325_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10327_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/10327_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB35_to_TDB36_updates/world/10349_world_script_texts.sql (renamed from sql/old/3.3.5a/10349_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB35_to_TDB36_updates/world/10383_world_version.sql (renamed from sql/old/3.3.5a/10383_world_version.sql)0
-rw-r--r--sql/old/3.3.5a/TDB35_to_TDB36_updates/world/10392_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/10392_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB35_to_TDB36_updates/world/10393_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/10393_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB35_to_TDB36_updates/world/10397_world_command.sql (renamed from sql/old/3.3.5a/10397_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB35_to_TDB36_updates/world/10402_world_spell_script_names.sql (renamed from sql/old/3.3.5a/10402_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/characters/10475_characters_character_banned.sql (renamed from sql/old/3.3.5a/10475_characters_character_banned.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/characters/10475_characters_creature_respawn.sql (renamed from sql/old/3.3.5a/10475_characters_creature_respawn.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/characters/10475_characters_gameobject_respawn.sql (renamed from sql/old/3.3.5a/10475_characters_gameobject_respawn.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/characters/10475_characters_reserved_name.sql (renamed from sql/old/3.3.5a/10475_characters_reserved_name.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/characters/10543_characters_group_member.sql (renamed from sql/old/3.3.5a/10543_characters_group_member.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/characters/10548_characters_channel.sql (renamed from sql/old/3.3.5a/10548_characters_channel.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/characters/10654_characters_item_instance.sql (renamed from sql/old/3.3.5a/10654_characters_item_instance.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/characters/10741_characters_character_aura.sql (renamed from sql/old/3.3.5a/10741_characters_character_aura.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/characters/10777_characters_creature_respawn.sql (renamed from sql/old/3.3.5a/10777_characters_creature_respawn.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/characters/10777_characters_gameobject_respawn.sql (renamed from sql/old/3.3.5a/10777_characters_gameobject_respawn.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10418_world_spell_script_names.sql (renamed from sql/old/3.3.5a/10418_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10419_world_spell_linked_spell.sql (renamed from sql/old/3.3.5a/10419_world_spell_linked_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10431_world_trinity_string.sql (renamed from sql/old/3.3.5a/10431_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10436_world_script_texts.sql (renamed from sql/old/3.3.5a/10436_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10436_world_scriptname.sql (renamed from sql/old/3.3.5a/10436_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10453_world_creature_template.sql (renamed from sql/old/3.3.5a/10453_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10453_world_script_text.sql (renamed from sql/old/3.3.5a/10453_world_script_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10460_world_command.sql (renamed from sql/old/3.3.5a/10460_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10462_world_spell_script_names.sql (renamed from sql/old/3.3.5a/10462_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10468_world_script_texts.sql (renamed from sql/old/3.3.5a/10468_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10468_world_spell_script_names.sql (renamed from sql/old/3.3.5a/10468_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10470_world_command.sql (renamed from sql/old/3.3.5a/10470_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10470_world_trinity_string.sql (renamed from sql/old/3.3.5a/10470_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10490_world_scriptname.sql (renamed from sql/old/3.3.5a/10490_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10545_world_script_texts.sql (renamed from sql/old/3.3.5a/10545_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10545_world_scriptname.sql (renamed from sql/old/3.3.5a/10545_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10548_world_command.sql (renamed from sql/old/3.3.5a/10548_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10548_world_trinity_string.sql (renamed from sql/old/3.3.5a/10548_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10561_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/10561_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10561_world_scriptname.sql (renamed from sql/old/3.3.5a/10561_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10561_world_spell_linked_spell.sql (renamed from sql/old/3.3.5a/10561_world_spell_linked_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10561_world_spell_script_names.sql (renamed from sql/old/3.3.5a/10561_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10563_world_scriptname.sql (renamed from sql/old/3.3.5a/10563_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10570_world_disables.sql (renamed from sql/old/3.3.5a/10570_world_disables.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10619_world_spell_script_names.sql (renamed from sql/old/3.3.5a/10619_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10623_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/10623_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10646_world_scriptname.sql (renamed from sql/old/3.3.5a/10646_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10681_world_command.sql (renamed from sql/old/3.3.5a/10681_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10733_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/10733_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10736_world_scriptname.sql (renamed from sql/old/3.3.5a/10736_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10765_world_scriptname.sql (renamed from sql/old/3.3.5a/10765_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10765_world_spell_dbc.sql (renamed from sql/old/3.3.5a/10765_world_spell_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10801_world_creature_linked_respawn.sql (renamed from sql/old/3.3.5a/10801_world_creature_linked_respawn.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10806_world_scriptname.sql (renamed from sql/old/3.3.5a/10806_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10815_world_spell_script_names.sql (renamed from sql/old/3.3.5a/10815_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB37_to_TDB38_updates/10828_characters_character_queststatus.sql (renamed from sql/old/3.3.5a/10828_characters_character_queststatus.sql)0
-rw-r--r--sql/old/3.3.5a/TDB37_to_TDB38_updates/10831_world_scriptname.sql (renamed from sql/old/3.3.5a/10831_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB37_to_TDB38_updates/10840_world_script_texts.sql (renamed from sql/old/3.3.5a/10840_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB37_to_TDB38_updates/10840_world_scriptname.sql (renamed from sql/old/3.3.5a/10840_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB37_to_TDB38_updates/10853_world_spell_script_names.sql (renamed from sql/old/3.3.5a/10853_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB37_to_TDB38_updates/10885_world_spell_script_names.sql (renamed from sql/old/3.3.5a/10885_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB37_to_TDB38_updates/10892_world_spell_script_names.sql (renamed from sql/old/3.3.5a/10892_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB37_to_TDB38_updates/10903_world_spell_script_names.sql (renamed from sql/old/3.3.5a/10903_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB37_to_TDB38_updates/10918_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/10918_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB37_to_TDB38_updates/10918_world_areatrigger_scripts.sql (renamed from sql/old/3.3.5a/10918_world_areatrigger_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB37_to_TDB38_updates/10918_world_script_texts.sql (renamed from sql/old/3.3.5a/10918_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB37_to_TDB38_updates/10918_world_scriptname.sql (renamed from sql/old/3.3.5a/10918_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB37_to_TDB38_updates/10918_world_spell_script_names.sql (renamed from sql/old/3.3.5a/10918_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB37_to_TDB38_updates/10918_world_vehicle_accessory.sql (renamed from sql/old/3.3.5a/10918_world_vehicle_accessory.sql)0
-rw-r--r--sql/old/3.3.5a/TDB37_to_TDB38_updates/10925_world_spell_script_names.sql (renamed from sql/old/3.3.5a/10925_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_account_data.sql (renamed from sql/old/3.3.5a/2011_01_19_00_characters_account_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_addons.sql (renamed from sql/old/3.3.5a/2011_01_19_00_characters_addons.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_arena_team.sql (renamed from sql/old/3.3.5a/2011_01_19_00_characters_arena_team.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_auctionhouse.sql (renamed from sql/old/3.3.5a/2011_01_19_00_characters_auctionhouse.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_bugreport.sql (renamed from sql/old/3.3.5a/2011_01_19_00_characters_bugreport.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_channels.sql (renamed from sql/old/3.3.5a/2011_01_19_00_characters_channels.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_account_data.sql (renamed from sql/old/3.3.5a/2011_01_19_00_characters_character_account_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_achievement.sql (renamed from sql/old/3.3.5a/2011_01_19_00_characters_character_achievement.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_achievement_progress.sql (renamed from sql/old/3.3.5a/2011_01_19_00_characters_character_achievement_progress.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_action.sql (renamed from sql/old/3.3.5a/2011_01_19_00_characters_character_action.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_arena_stats.sql (renamed from sql/old/3.3.5a/2011_01_19_00_characters_character_arena_stats.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_aura.sql (renamed from sql/old/3.3.5a/2011_01_19_00_characters_character_aura.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_banned.sql (renamed from sql/old/3.3.5a/2011_01_19_00_characters_character_banned.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_battleground_data.sql (renamed from sql/old/3.3.5a/2011_01_19_00_characters_character_battleground_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_battleground_random.sql (renamed from sql/old/3.3.5a/2011_01_19_00_characters_character_battleground_random.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_declinedname.sql (renamed from sql/old/3.3.5a/2011_01_19_00_characters_character_declinedname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_equipmentsets.sql (renamed from sql/old/3.3.5a/2011_01_19_00_characters_character_equipmentsets.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_gifts.sql (renamed from sql/old/3.3.5a/2011_01_19_00_characters_character_gifts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_glyphs.sql (renamed from sql/old/3.3.5a/2011_01_19_00_characters_character_glyphs.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_homebind.sql (renamed from sql/old/3.3.5a/2011_01_19_00_characters_character_homebind.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_instance.sql (renamed from sql/old/3.3.5a/2011_01_19_00_characters_character_instance.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_inventory.sql (renamed from sql/old/3.3.5a/2011_01_19_00_characters_character_inventory.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_pet.sql (renamed from sql/old/3.3.5a/2011_01_19_00_characters_character_pet.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_pet_declinedname.sql (renamed from sql/old/3.3.5a/2011_01_19_00_characters_character_pet_declinedname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_queststatus.sql (renamed from sql/old/3.3.5a/2011_01_19_00_characters_character_queststatus.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_queststatus_daily.sql (renamed from sql/old/3.3.5a/2011_01_19_00_characters_character_queststatus_daily.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_queststatus_weekly.sql (renamed from sql/old/3.3.5a/2011_01_19_00_characters_character_queststatus_weekly.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_reputation.sql (renamed from sql/old/3.3.5a/2011_01_19_00_characters_character_reputation.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_skills.sql (renamed from sql/old/3.3.5a/2011_01_19_00_characters_character_skills.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_social.sql (renamed from sql/old/3.3.5a/2011_01_19_00_characters_character_social.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_spell.sql (renamed from sql/old/3.3.5a/2011_01_19_00_characters_character_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_spell_cooldown.sql (renamed from sql/old/3.3.5a/2011_01_19_00_characters_character_spell_cooldown.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_stats.sql (renamed from sql/old/3.3.5a/2011_01_19_00_characters_character_stats.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_talent.sql (renamed from sql/old/3.3.5a/2011_01_19_00_characters_character_talent.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_tutorial.sql (renamed from sql/old/3.3.5a/2011_01_19_00_characters_character_tutorial.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_characters.sql (renamed from sql/old/3.3.5a/2011_01_19_00_characters_characters.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_corpse.sql (renamed from sql/old/3.3.5a/2011_01_19_00_characters_corpse.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_creature_respawn.sql (renamed from sql/old/3.3.5a/2011_01_19_00_characters_creature_respawn.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_game_event_condition_save.sql (renamed from sql/old/3.3.5a/2011_01_19_00_characters_game_event_condition_save.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_game_event_save.sql (renamed from sql/old/3.3.5a/2011_01_20_00_characters_game_event_save.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_gameobject_respawn.sql (renamed from sql/old/3.3.5a/2011_01_20_00_characters_gameobject_respawn.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_gm_subsurveys.sql (renamed from sql/old/3.3.5a/2011_01_20_00_characters_gm_subsurveys.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_gm_surveys.sql (renamed from sql/old/3.3.5a/2011_01_20_00_characters_gm_surveys.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_gm_tickets.sql (renamed from sql/old/3.3.5a/2011_01_20_00_characters_gm_tickets.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_group_instance.sql (renamed from sql/old/3.3.5a/2011_01_20_00_characters_group_instance.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_group_member.sql (renamed from sql/old/3.3.5a/2011_01_20_00_characters_group_member.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_groups.sql (renamed from sql/old/3.3.5a/2011_01_20_00_characters_groups.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_guild.sql (renamed from sql/old/3.3.5a/2011_01_20_00_characters_guild.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_guild_bank_eventlog.sql (renamed from sql/old/3.3.5a/2011_01_20_00_characters_guild_bank_eventlog.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_guild_bank_item.sql (renamed from sql/old/3.3.5a/2011_01_20_00_characters_guild_bank_item.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_guild_bank_right.sql (renamed from sql/old/3.3.5a/2011_01_20_00_characters_guild_bank_right.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_guild_bank_tab.sql (renamed from sql/old/3.3.5a/2011_01_20_00_characters_guild_bank_tab.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_guild_eventlog.sql (renamed from sql/old/3.3.5a/2011_01_20_00_characters_guild_eventlog.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_guild_member.sql (renamed from sql/old/3.3.5a/2011_01_20_00_characters_guild_member.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_guild_rank.sql (renamed from sql/old/3.3.5a/2011_01_20_00_characters_guild_rank.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_instance.sql (renamed from sql/old/3.3.5a/2011_01_20_00_characters_instance.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_instance_reset.sql (renamed from sql/old/3.3.5a/2011_01_20_00_characters_instance_reset.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_item_instance.sql (renamed from sql/old/3.3.5a/2011_01_20_00_characters_item_instance.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_item_refund_instance.sql (renamed from sql/old/3.3.5a/2011_01_20_00_characters_item_refund_instance.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_item_soulbound_trace_data.sql (renamed from sql/old/3.3.5a/2011_01_20_00_characters_item_soulbound_trace_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_lag_reports.sql (renamed from sql/old/3.3.5a/2011_01_20_00_characters_lag_reports.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_mail.sql (renamed from sql/old/3.3.5a/2011_01_20_00_characters_mail.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_mail_items.sql (renamed from sql/old/3.3.5a/2011_01_20_00_characters_mail_items.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_pet_aura.sql (renamed from sql/old/3.3.5a/2011_01_20_00_characters_pet_aura.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_pet_spell.sql (renamed from sql/old/3.3.5a/2011_01_20_00_characters_pet_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_pet_spell_cooldown.sql (renamed from sql/old/3.3.5a/2011_01_20_00_characters_pet_spell_cooldown.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_petition.sql (renamed from sql/old/3.3.5a/2011_01_20_00_characters_petition.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_petition_sign.sql (renamed from sql/old/3.3.5a/2011_01_20_00_characters_petition_sign.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_worldstates.sql (renamed from sql/old/3.3.5a/2011_01_20_00_characters_worldstates.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_22_01_characters_character_inventory.sql (renamed from sql/old/3.3.5a/2011_01_22_01_characters_character_inventory.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_24_00_characters_account_instance_times.sql (renamed from sql/old/3.3.5a/2011_01_24_00_characters_account_instance_times.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_02_03_00_characters_instance.sql (renamed from sql/old/3.3.5a/2011_02_03_00_characters_instance.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_02_24_00_characters_account_data.sql (renamed from sql/old/3.3.5a/2011_02_24_00_characters_account_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_02_24_01_characters_character_tutorial.sql (renamed from sql/old/3.3.5a/2011_02_24_01_characters_character_tutorial.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_03_11_00_characters_channels.sql (renamed from sql/old/3.3.5a/2011_03_11_00_characters_channels.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_03_17_00_characters_corpse.sql (renamed from sql/old/3.3.5a/2011_03_17_00_characters_corpse.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_03_18_00_characters_game_event_misc.sql (renamed from sql/old/3.3.5a/2011_03_18_00_characters_game_event_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_03_18_01_characters_game_event_misc.sql (renamed from sql/old/3.3.5a/2011_03_18_01_characters_game_event_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_06_00_world_scriptname.sql (renamed from sql/old/3.3.5a/2011_01_06_00_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_06_01_world_scriptname.sql (renamed from sql/old/3.3.5a/2011_01_06_01_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_06_02_world_scriptname.sql (renamed from sql/old/3.3.5a/2011_01_06_02_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_08_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_01_08_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_08_01_world_scriptname.sql (renamed from sql/old/3.3.5a/2011_01_08_01_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_08_02_world_scriptname.sql (renamed from sql/old/3.3.5a/2011_01_08_02_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_08_03_world_trinity_strings.sql (renamed from sql/old/3.3.5a/2011_01_08_03_world_trinity_strings.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_08_04_world_spell_linked_spell.sql (renamed from sql/old/3.3.5a/2011_01_08_04_world_spell_linked_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_09_00_world_scriptname.sql (renamed from sql/old/3.3.5a/2011_01_09_00_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_10_00_world_spell_linked_spell.sql (renamed from sql/old/3.3.5a/2011_01_10_00_world_spell_linked_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_16_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_01_16_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_20_00_world_scriptname.sql (renamed from sql/old/3.3.5a/2011_01_20_00_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_22_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_01_22_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_24_00_world_scriptname.sql (renamed from sql/old/3.3.5a/2011_01_24_00_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_26_00_world_scriptname.sql (renamed from sql/old/3.3.5a/2011_01_26_00_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_26_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_01_26_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_28_00_world_spell_linked_spell.sql (renamed from sql/old/3.3.5a/2011_01_28_00_world_spell_linked_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_28_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_01_28_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_28_01_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_01_28_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_29_00_world_spell_linked_spell.sql (renamed from sql/old/3.3.5a/2011_01_29_00_world_spell_linked_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_30_00_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_01_30_00_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_30_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_01_30_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_30_01_world_scriptnames.sql (renamed from sql/old/3.3.5a/2011_01_30_01_world_scriptnames.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_31_00_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/2011_01_31_00_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_31_00_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_01_31_00_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_31_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_01_31_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_31_01_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_01_31_01_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_31_01_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_01_31_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_03_00_world_instance_encounters.sql (renamed from sql/old/3.3.5a/2011_02_03_00_world_instance_encounters.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_03_01_world_command.sql (renamed from sql/old/3.3.5a/2011_02_03_01_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_03_02_world_lfg_dungeon_encounters.sql (renamed from sql/old/3.3.5a/2011_02_03_02_world_lfg_dungeon_encounters.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_03_03_world_spell_dbc.sql (renamed from sql/old/3.3.5a/2011_02_03_03_world_spell_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_battleground_isle_of_conquest.sql (renamed from sql/old/3.3.5a/2011_02_04_00_world_battleground_isle_of_conquest.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_conditions.sql (renamed from sql/old/3.3.5a/2011_02_04_00_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_creature_631.sql (renamed from sql/old/3.3.5a/2011_02_04_00_world_creature_631.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_creature_questrelation.sql (renamed from sql/old/3.3.5a/2011_02_04_00_world_creature_questrelation.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_02_04_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_game_event.sql (renamed from sql/old/3.3.5a/2011_02_04_00_world_game_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_gameobject_questrelation.sql (renamed from sql/old/3.3.5a/2011_02_04_00_world_gameobject_questrelation.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_instance_pit_of_saron.sql (renamed from sql/old/3.3.5a/2011_02_04_00_world_instance_pit_of_saron.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_item_loot_template.sql (renamed from sql/old/3.3.5a/2011_02_04_00_world_item_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_mail_loot_template.sql (renamed from sql/old/3.3.5a/2011_02_04_00_world_mail_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_quest_template.sql (renamed from sql/old/3.3.5a/2011_02_04_00_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_sai.sql (renamed from sql/old/3.3.5a/2011_02_04_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_02_04_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_spell_target_position.sql (renamed from sql/old/3.3.5a/2011_02_04_00_world_spell_target_position.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_01_world_game_event.sql (renamed from sql/old/3.3.5a/2011_02_04_01_world_game_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_01_world_quest_template.sql (renamed from sql/old/3.3.5a/2011_02_04_01_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_01_world_sai.sql (renamed from sql/old/3.3.5a/2011_02_04_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_02_world_quest_template.sql (renamed from sql/old/3.3.5a/2011_02_04_02_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_02_world_sai.sql (renamed from sql/old/3.3.5a/2011_02_04_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_03_world_quest_template.sql (renamed from sql/old/3.3.5a/2011_02_04_03_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_03_world_sai.sql (renamed from sql/old/3.3.5a/2011_02_04_03_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_04_world_quest_template.sql (renamed from sql/old/3.3.5a/2011_02_04_04_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_04_world_sai.sql (renamed from sql/old/3.3.5a/2011_02_04_04_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_05_00_world_sai.sql (renamed from sql/old/3.3.5a/2011_02_05_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_05_01_world_quest_template.sql (renamed from sql/old/3.3.5a/2011_02_05_01_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_05_02_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_02_05_02_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_05_03_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_02_05_03_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_05_04_world_game_event.sql (renamed from sql/old/3.3.5a/2011_02_05_04_world_game_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_05_05_world_sai.sql (renamed from sql/old/3.3.5a/2011_02_05_05_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_05_06_world_waypoint_data.sql (renamed from sql/old/3.3.5a/2011_02_05_06_world_waypoint_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_05_07_world_sai.sql (renamed from sql/old/3.3.5a/2011_02_05_07_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_05_08_world_sai.sql (renamed from sql/old/3.3.5a/2011_02_05_08_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_06_00_world_instance_sindragosa_lair.sql (renamed from sql/old/3.3.5a/2011_02_06_00_world_instance_sindragosa_lair.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_06_01_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2011_02_06_01_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_06_02_world_item_loot_template.sql (renamed from sql/old/3.3.5a/2011_02_06_02_world_item_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_07_00_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_02_07_00_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_07_00_world_areatrigger_scripts.sql (renamed from sql/old/3.3.5a/2011_02_07_00_world_areatrigger_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_07_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_02_07_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_07_00_world_creature_text.sql (renamed from sql/old/3.3.5a/2011_02_07_00_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_07_00_world_scriptname.sql (renamed from sql/old/3.3.5a/2011_02_07_00_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_07_00_world_spell_linked_spell.sql (renamed from sql/old/3.3.5a/2011_02_07_00_world_spell_linked_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_07_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_02_07_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_07_01_world_creature_questrelation.sql (renamed from sql/old/3.3.5a/2011_02_07_01_world_creature_questrelation.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_07_02_world_sai.sql (renamed from sql/old/3.3.5a/2011_02_07_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_080_0_world_instance_saurfang_traps.sql (renamed from sql/old/3.3.5a/2011_02_080_0_world_instance_saurfang_traps.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_08_00_world_areatrigger_scripts.sql (renamed from sql/old/3.3.5a/2011_02_08_00_world_areatrigger_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_08_00_world_scriptname.sql (renamed from sql/old/3.3.5a/2011_02_08_00_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_08_01_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_02_08_01_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_08_02_world_waypoint_scripts.sql (renamed from sql/old/3.3.5a/2011_02_08_02_world_waypoint_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_10_00_world_sai.sql (renamed from sql/old/3.3.5a/2011_02_10_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_10_01_world_sai.sql (renamed from sql/old/3.3.5a/2011_02_10_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_10_02_world_instance_oculus.sql (renamed from sql/old/3.3.5a/2011_02_10_02_world_instance_oculus.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_10_03_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_02_10_03_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_10_04_world_scriptname.sql (renamed from sql/old/3.3.5a/2011_02_10_04_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_11_00_world_coredevdata.sql (renamed from sql/old/3.3.5a/2011_02_11_00_world_coredevdata.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_11_01_world_command.sql (renamed from sql/old/3.3.5a/2011_02_11_01_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_11_01_world_coredevdata.sql (renamed from sql/old/3.3.5a/2011_02_11_01_world_coredevdata.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_11_02_world_npc_gossip.sql (renamed from sql/old/3.3.5a/2011_02_11_02_world_npc_gossip.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_11_03_world_creature_involvedrelation.sql (renamed from sql/old/3.3.5a/2011_02_11_03_world_creature_involvedrelation.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_11_04_world_game_event_npc_gossip.sql (renamed from sql/old/3.3.5a/2011_02_11_04_world_game_event_npc_gossip.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_12_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_02_12_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_15_00_world_sai.sql (renamed from sql/old/3.3.5a/2011_02_15_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_15_01_world_sai.sql (renamed from sql/old/3.3.5a/2011_02_15_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_15_02_world_game_event_liita.sql (renamed from sql/old/3.3.5a/2011_02_15_02_world_game_event_liita.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_15_03_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_02_15_03_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_15_03_world_creature_text.sql (renamed from sql/old/3.3.5a/2011_02_15_03_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_15_03_world_scriptname.sql (renamed from sql/old/3.3.5a/2011_02_15_03_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_15_03_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_02_15_03_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_15_04_world_spell_linked_spell.sql (renamed from sql/old/3.3.5a/2011_02_15_04_world_spell_linked_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_15_04_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_02_15_04_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_16_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_02_16_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_16_01_world_conditions.sql (renamed from sql/old/3.3.5a/2011_02_16_01_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_18_00_world_creature.sql (renamed from sql/old/3.3.5a/2011_02_18_00_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_18_00_world_creature_text.sql (renamed from sql/old/3.3.5a/2011_02_18_00_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_18_00_world_pool_quest.sql (renamed from sql/old/3.3.5a/2011_02_18_00_world_pool_quest.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_18_00_world_scriptname.sql (renamed from sql/old/3.3.5a/2011_02_18_00_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_18_00_world_spell_linked_spell.sql (renamed from sql/old/3.3.5a/2011_02_18_00_world_spell_linked_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_18_01_world_spell_linked_spell.sql (renamed from sql/old/3.3.5a/2011_02_18_01_world_spell_linked_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_18_02_world_misc.sql (renamed from sql/old/3.3.5a/2011_02_18_02_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_18_03_world_loot_template.sql (renamed from sql/old/3.3.5a/2011_02_18_03_world_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_18_04_world_eai.sql (renamed from sql/old/3.3.5a/2011_02_18_04_world_eai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_18_05_world_sai.sql (renamed from sql/old/3.3.5a/2011_02_18_05_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_19_00_world_conditions.sql (renamed from sql/old/3.3.5a/2011_02_19_00_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_19_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_02_19_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_19_00_world_scriptname.sql (renamed from sql/old/3.3.5a/2011_02_19_00_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_19_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_02_19_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_19_01_world_instance_icecrown_citadel.sql (renamed from sql/old/3.3.5a/2011_02_19_01_world_instance_icecrown_citadel.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_20_00_world_smart_scripts.sql (renamed from sql/old/3.3.5a/2011_02_20_00_world_smart_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_20_01_world_smart_scripts.sql (renamed from sql/old/3.3.5a/2011_02_20_01_world_smart_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_20_02_world_instance_icecrown_citadel.sql (renamed from sql/old/3.3.5a/2011_02_20_02_world_instance_icecrown_citadel.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_22_00_world_scriptname.sql (renamed from sql/old/3.3.5a/2011_02_22_00_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_22_01_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_02_22_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_22_02_world_conditions.sql (renamed from sql/old/3.3.5a/2011_02_22_02_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_22_03_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_02_22_03_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_22_04_world_vehicle_accessory.sql (renamed from sql/old/3.3.5a/2011_02_22_04_world_vehicle_accessory.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_23_01_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_02_23_01_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_23_02_world_conditions.sql (renamed from sql/old/3.3.5a/2011_02_23_02_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_23_03_world_vehicle_accessory.sql (renamed from sql/old/3.3.5a/2011_02_23_03_world_vehicle_accessory.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_23_04_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_02_23_04_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_23_05_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_02_23_05_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_23_06_world_creatures.sql (renamed from sql/old/3.3.5a/2011_02_23_06_world_creatures.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_23_07_world_misc.sql (renamed from sql/old/3.3.5a/2011_02_23_07_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_23_07_world_scriptname.sql (renamed from sql/old/3.3.5a/2011_02_23_07_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_23_08_world_sai.sql (renamed from sql/old/3.3.5a/2011_02_23_08_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_23_09_world_spell_linked_spell.sql (renamed from sql/old/3.3.5a/2011_02_23_09_world_spell_linked_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_25_00_world_creatures.sql (renamed from sql/old/3.3.5a/2011_02_25_00_world_creatures.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_25_01_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_02_25_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_25_02_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_02_25_02_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_26_00_world_sai.sql (renamed from sql/old/3.3.5a/2011_02_26_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_26_01_world_sai.sql (renamed from sql/old/3.3.5a/2011_02_26_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_26_02_world_sai.sql (renamed from sql/old/3.3.5a/2011_02_26_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_26_03_world_creatures.sql (renamed from sql/old/3.3.5a/2011_02_26_03_world_creatures.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_26_04_world_spell_linked_spell.sql (renamed from sql/old/3.3.5a/2011_02_26_04_world_spell_linked_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_26_05_world_npc_spellclick_spells.sql (renamed from sql/old/3.3.5a/2011_02_26_05_world_npc_spellclick_spells.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_27_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_02_27_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_27_01_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_02_27_01_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_27_02_world_npc_spellclick_spells.sql (renamed from sql/old/3.3.5a/2011_02_27_02_world_npc_spellclick_spells.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_27_03_world_npc_spellclick_spells.sql (renamed from sql/old/3.3.5a/2011_02_27_03_world_npc_spellclick_spells.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_27_04_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_02_27_04_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_28_00_world_npc_spellclick_spells.sql (renamed from sql/old/3.3.5a/2011_02_28_00_world_npc_spellclick_spells.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_28_01_world_quest_start_scripts.sql (renamed from sql/old/3.3.5a/2011_02_28_01_world_quest_start_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_28_02_world_sai.sql (renamed from sql/old/3.3.5a/2011_02_28_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_28_03_world_sai.sql (renamed from sql/old/3.3.5a/2011_02_28_03_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_28_04_world_sai.sql (renamed from sql/old/3.3.5a/2011_02_28_04_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_28_05_world_vehicles.sql (renamed from sql/old/3.3.5a/2011_02_28_05_world_vehicles.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_28_06_world_gameobject.sql (renamed from sql/old/3.3.5a/2011_02_28_06_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_28_07_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_02_28_07_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_01_01_world_conditions.sql (renamed from sql/old/3.3.5a/2011_03_01_01_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_01_02_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_03_01_02_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_01_03_world_sai.sql (renamed from sql/old/3.3.5a/2011_03_01_03_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_01_03_world_scriptname.sql (renamed from sql/old/3.3.5a/2011_03_01_03_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_01_04_world_sai.sql (renamed from sql/old/3.3.5a/2011_03_01_04_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_01_05_world_npc_trainer.sql (renamed from sql/old/3.3.5a/2011_03_01_05_world_npc_trainer.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_02_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_03_02_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_02_01_world_achievement_reward.sql (renamed from sql/old/3.3.5a/2011_03_02_01_world_achievement_reward.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_02_02_world_waypoint_data.sql (renamed from sql/old/3.3.5a/2011_03_02_02_world_waypoint_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_02_03_world_gossip_menu.sql (renamed from sql/old/3.3.5a/2011_03_02_03_world_gossip_menu.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_02_04_world_waypoint_data.sql (renamed from sql/old/3.3.5a/2011_03_02_04_world_waypoint_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_02_05_world_sai.sql (renamed from sql/old/3.3.5a/2011_03_02_05_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_02_06_world_sai.sql (renamed from sql/old/3.3.5a/2011_03_02_06_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_04_00_world_skill_discovery_template.sql (renamed from sql/old/3.3.5a/2011_03_04_00_world_skill_discovery_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_04_01_world_npc_spellclick_spells.sql (renamed from sql/old/3.3.5a/2011_03_04_01_world_npc_spellclick_spells.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_04_01_world_vehicle_accessory.sql (renamed from sql/old/3.3.5a/2011_03_04_01_world_vehicle_accessory.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_04_02_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_03_04_02_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_04_03_world_gameobject.sql (renamed from sql/old/3.3.5a/2011_03_04_03_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_04_04_world_scriptname.sql (renamed from sql/old/3.3.5a/2011_03_04_04_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_04_04_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_03_04_04_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_05_00_world_waypoint_data.sql (renamed from sql/old/3.3.5a/2011_03_05_00_world_waypoint_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_05_01_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_03_05_01_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_05_02_world_creatures.sql (renamed from sql/old/3.3.5a/2011_03_05_02_world_creatures.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_05_03_world_spell_area.sql (renamed from sql/old/3.3.5a/2011_03_05_03_world_spell_area.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_05_04_world_creatures.sql (renamed from sql/old/3.3.5a/2011_03_05_04_world_creatures.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_05_05_world_creatures.sql (renamed from sql/old/3.3.5a/2011_03_05_05_world_creatures.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_06_00_world_creatures.sql (renamed from sql/old/3.3.5a/2011_03_06_00_world_creatures.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_06_01_world_loot_template.sql (renamed from sql/old/3.3.5a/2011_03_06_01_world_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_06_02_world_creatures.sql (renamed from sql/old/3.3.5a/2011_03_06_02_world_creatures.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_06_03_world_creatures.sql (renamed from sql/old/3.3.5a/2011_03_06_03_world_creatures.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_06_04_world_creatures.sql (renamed from sql/old/3.3.5a/2011_03_06_04_world_creatures.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_06_05_world_vehicle_accessory.sql (renamed from sql/old/3.3.5a/2011_03_06_05_world_vehicle_accessory.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_07_00_world_misc.sql (renamed from sql/old/3.3.5a/2011_03_07_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_07_01_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_03_07_01_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_07_02_world_achievement.sql (renamed from sql/old/3.3.5a/2011_03_07_02_world_achievement.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_07_03_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_03_07_03_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_07_04_world_command.sql (renamed from sql/old/3.3.5a/2011_03_07_04_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_07_05_world_creatures.sql (renamed from sql/old/3.3.5a/2011_03_07_05_world_creatures.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_07_06_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_03_07_06_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_08_00_world_sai.sql (renamed from sql/old/3.3.5a/2011_03_08_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_09_00_world_creature_addon.sql (renamed from sql/old/3.3.5a/2011_03_09_00_world_creature_addon.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_09_01_world_misc.sql (renamed from sql/old/3.3.5a/2011_03_09_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_09_02_world_page_text.sql (renamed from sql/old/3.3.5a/2011_03_09_02_world_page_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_09_03_world_misc.sql (renamed from sql/old/3.3.5a/2011_03_09_03_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_10_00_world_creatures.sql (renamed from sql/old/3.3.5a/2011_03_10_00_world_creatures.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_10_01_world_pool_quest.sql (renamed from sql/old/3.3.5a/2011_03_10_01_world_pool_quest.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_10_02_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_03_10_02_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_10_03_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2011_03_10_03_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_10_04_world_disables.sql (renamed from sql/old/3.3.5a/2011_03_10_04_world_disables.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_10_05_world_creature_questrelation.sql (renamed from sql/old/3.3.5a/2011_03_10_05_world_creature_questrelation.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_10_06_world_conditions.sql (renamed from sql/old/3.3.5a/2011_03_10_06_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_10_07_world_conditions.sql (renamed from sql/old/3.3.5a/2011_03_10_07_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_10_08_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_03_10_08_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_10_09_world_sai.sql (renamed from sql/old/3.3.5a/2011_03_10_09_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_10_10_world_spell_linked_spell.sql (renamed from sql/old/3.3.5a/2011_03_10_10_world_spell_linked_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_11_00_world_sai.sql (renamed from sql/old/3.3.5a/2011_03_11_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_11_00_world_scriptname.sql (renamed from sql/old/3.3.5a/2011_03_11_00_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_11_01_world_sai.sql (renamed from sql/old/3.3.5a/2011_03_11_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_11_02_world_trinity_string.sql (renamed from sql/old/3.3.5a/2011_03_11_02_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_12_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_03_12_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_13_00_world_scriptname.sql (renamed from sql/old/3.3.5a/2011_03_13_00_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_13_01_world_areatrigger_scripts.sql (renamed from sql/old/3.3.5a/2011_03_13_01_world_areatrigger_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_13_01_world_creatures.sql (renamed from sql/old/3.3.5a/2011_03_13_01_world_creatures.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_16_00_world_creatures.sql (renamed from sql/old/3.3.5a/2011_03_16_00_world_creatures.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_17_00_world_sai.sql (renamed from sql/old/3.3.5a/2011_03_17_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_17_01_world_sai.sql (renamed from sql/old/3.3.5a/2011_03_17_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_17_02_world_sai.sql (renamed from sql/old/3.3.5a/2011_03_17_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_17_03_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_03_17_03_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_17_04_world_sai.sql (renamed from sql/old/3.3.5a/2011_03_17_04_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_17_05_world_sai.sql (renamed from sql/old/3.3.5a/2011_03_17_05_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_17_06_world_sai.sql (renamed from sql/old/3.3.5a/2011_03_17_06_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_17_07_world_sai.sql (renamed from sql/old/3.3.5a/2011_03_17_07_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_17_08_world_sai.sql (renamed from sql/old/3.3.5a/2011_03_17_08_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_17_09_world_sai.sql (renamed from sql/old/3.3.5a/2011_03_17_09_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_17_10_world_sai.sql (renamed from sql/old/3.3.5a/2011_03_17_10_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_18_00_world_game_event_misc.sql (renamed from sql/old/3.3.5a/2011_03_18_00_world_game_event_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_18_01_world_instance_pit_of_saron.sql (renamed from sql/old/3.3.5a/2011_03_18_01_world_instance_pit_of_saron.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_18_02_world_creatures.sql (renamed from sql/old/3.3.5a/2011_03_18_02_world_creatures.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_19_00_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_03_19_00_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_20_00_world_game_event.sql (renamed from sql/old/3.3.5a/2011_03_20_00_world_game_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_21_00_world_sai.sql (renamed from sql/old/3.3.5a/2011_03_21_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_21_01_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_03_21_01_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_21_02_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_03_21_02_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_21_03_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_03_21_03_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_21_04_world_spell_required.sql (renamed from sql/old/3.3.5a/2011_03_21_04_world_spell_required.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_21_05_world_spell_ranks.sql (renamed from sql/old/3.3.5a/2011_03_21_05_world_spell_ranks.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_21_06_world_creature.sql (renamed from sql/old/3.3.5a/2011_03_21_06_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_21_07_world_spell_required.sql (renamed from sql/old/3.3.5a/2011_03_21_07_world_spell_required.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_21_08_world_spell_required.sql (renamed from sql/old/3.3.5a/2011_03_21_08_world_spell_required.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_22_00_world_sai.sql (renamed from sql/old/3.3.5a/2011_03_22_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_22_01_world_sai.sql (renamed from sql/old/3.3.5a/2011_03_22_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_22_02_world_sai.sql (renamed from sql/old/3.3.5a/2011_03_22_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_22_03_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_03_22_03_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_00_world_conditions.sql (renamed from sql/old/3.3.5a/2011_03_23_00_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_01_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_03_23_01_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_02_world_creature_transport.sql (renamed from sql/old/3.3.5a/2011_03_23_02_world_creature_transport.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_03_world_creature.sql (renamed from sql/old/3.3.5a/2011_03_23_03_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_04_world_creature.sql (renamed from sql/old/3.3.5a/2011_03_23_04_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_06_world_quest_template.sql (renamed from sql/old/3.3.5a/2011_03_23_06_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_07_world_creatureinvolvedrelation.sql (renamed from sql/old/3.3.5a/2011_03_23_07_world_creatureinvolvedrelation.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_08_world_gameobject_template.sql (renamed from sql/old/3.3.5a/2011_03_23_08_world_gameobject_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_09_world_creature.sql (renamed from sql/old/3.3.5a/2011_03_23_09_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_10_world_gameobject.sql (renamed from sql/old/3.3.5a/2011_03_23_10_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_11_world_game_event_arena_seasons.sql (renamed from sql/old/3.3.5a/2011_03_23_11_world_game_event_arena_seasons.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_12_world_misc.sql (renamed from sql/old/3.3.5a/2011_03_23_12_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_13_world_misc.sql (renamed from sql/old/3.3.5a/2011_03_23_13_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_14_world_conditions.sql (renamed from sql/old/3.3.5a/2011_03_23_14_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_14_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_03_23_14_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_14_world_creatures.sql (renamed from sql/old/3.3.5a/2011_03_23_14_world_creatures.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_14_world_gameobject_template.sql (renamed from sql/old/3.3.5a/2011_03_23_14_world_gameobject_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_14_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_03_23_14_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_24_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_03_24_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_24_01_world_loot_template.sql (renamed from sql/old/3.3.5a/2011_03_24_01_world_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_24_02_world_sai.sql (renamed from sql/old/3.3.5a/2011_03_24_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_24_03_world_sai.sql (renamed from sql/old/3.3.5a/2011_03_24_03_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_24_04_world_sai.sql (renamed from sql/old/3.3.5a/2011_03_24_04_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_25_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_03_25_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_25_01_world_gameobjects.sql (renamed from sql/old/3.3.5a/2011_03_25_01_world_gameobjects.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_25_02_world_creatures.sql (renamed from sql/old/3.3.5a/2011_03_25_02_world_creatures.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_25_03_world_misc.sql (renamed from sql/old/3.3.5a/2011_03_25_03_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_00_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_03_26_00_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_00_world_conditions.sql (renamed from sql/old/3.3.5a/2011_03_26_00_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_03_26_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_00_world_creature_template_addon.sql (renamed from sql/old/3.3.5a/2011_03_26_00_world_creature_template_addon.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_00_world_creature_text.sql (renamed from sql/old/3.3.5a/2011_03_26_00_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_00_world_gameobject.sql (renamed from sql/old/3.3.5a/2011_03_26_00_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_00_world_npc_spellclick_spells.sql (renamed from sql/old/3.3.5a/2011_03_26_00_world_npc_spellclick_spells.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_00_world_scriptname.sql (renamed from sql/old/3.3.5a/2011_03_26_00_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_00_world_smart_scripts.sql (renamed from sql/old/3.3.5a/2011_03_26_00_world_smart_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_00_world_vehicle_template_accessory.sql (renamed from sql/old/3.3.5a/2011_03_26_00_world_vehicle_template_accessory.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_01_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_03_26_01_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_02_world_spell_linked_spell.sql (renamed from sql/old/3.3.5a/2011_03_26_02_world_spell_linked_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_03_world_quest_template.sql (renamed from sql/old/3.3.5a/2011_03_26_03_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_03_world_spell_linked_spell.sql (renamed from sql/old/3.3.5a/2011_03_26_03_world_spell_linked_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_27_00_world_quest_template.sql (renamed from sql/old/3.3.5a/2011_03_27_00_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_27_01_world_misc.sql (renamed from sql/old/3.3.5a/2011_03_27_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_27_02_world_misc.sql (renamed from sql/old/3.3.5a/2011_03_27_02_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_27_02_world_scriptname.sql (renamed from sql/old/3.3.5a/2011_03_27_02_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_27_02_world_spell_scriptname.sql (renamed from sql/old/3.3.5a/2011_03_27_02_world_spell_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_27_03_world_achievement_reward.sql (renamed from sql/old/3.3.5a/2011_03_27_03_world_achievement_reward.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_28_00_world_misc.sql (renamed from sql/old/3.3.5a/2011_03_28_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_29_00_world_creature.sql (renamed from sql/old/3.3.5a/2011_03_29_00_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_29_01_world_pool_template.sql (renamed from sql/old/3.3.5a/2011_03_29_01_world_pool_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_29_02_world_equipment_template.sql (renamed from sql/old/3.3.5a/2011_03_29_02_world_equipment_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_04_01_00_world_creature.sql (renamed from sql/old/3.3.5a/2011_04_01_00_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_04_02_00_world_game_event.sql (renamed from sql/old/3.3.5a/2011_04_02_00_world_game_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_05_00_characters_arena_team_misc.sql (renamed from sql/old/3.3.5a/2011_04_05_00_characters_arena_team_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_06_00_characters_arena_team_member.sql (renamed from sql/old/3.3.5a/2011_04_06_00_characters_arena_team_member.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_08_00_characters_battleground_data.sql (renamed from sql/old/3.3.5a/2011_04_08_00_characters_battleground_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_08_01_characters_character_homebind.sql (renamed from sql/old/3.3.5a/2011_04_08_01_characters_character_homebind.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_08_02_characters_arena_team.sql (renamed from sql/old/3.3.5a/2011_04_08_02_characters_arena_team.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_08_03_characters_arena_team_member.sql (renamed from sql/old/3.3.5a/2011_04_08_03_characters_arena_team_member.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_11_00_characters_corpse.sql (renamed from sql/old/3.3.5a/2011_04_11_00_characters_corpse.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_13_00_characters_creature_respawn.sql (renamed from sql/old/3.3.5a/2011_04_13_00_characters_creature_respawn.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_13_01_characters_gameobject_respawn.sql (renamed from sql/old/3.3.5a/2011_04_13_01_characters_gameobject_respawn.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_14_00_characters_misc.sql (renamed from sql/old/3.3.5a/2011_04_14_00_characters_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_15_00_characters_characters.sql (renamed from sql/old/3.3.5a/2011_04_15_00_characters_characters.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_19_00_characters_misc.sql (renamed from sql/old/3.3.5a/2011_04_19_00_characters_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_23_00_characters_corpse.sql (renamed from sql/old/3.3.5a/2011_04_23_00_characters_corpse.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_23_01_characters_character_banned.sql (renamed from sql/old/3.3.5a/2011_04_23_01_characters_character_banned.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_05_06_00_characters_guild_rank.sql (renamed from sql/old/3.3.5a/2011_05_06_00_characters_guild_rank.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_05_09_00_characters_character_stats.sql (renamed from sql/old/3.3.5a/2011_05_09_00_characters_character_stats.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_02_01_world_version.sql (renamed from sql/old/3.3.5a/2011_04_02_01_world_version.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_00_world_conditions.sql (renamed from sql/old/3.3.5a/2011_04_03_00_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_00_world_item_template.sql (renamed from sql/old/3.3.5a/2011_04_03_00_world_item_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_00_world_misc.sql (renamed from sql/old/3.3.5a/2011_04_03_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_00_world_scriptname.sql (renamed from sql/old/3.3.5a/2011_04_03_00_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_01_world_game_events.sql (renamed from sql/old/3.3.5a/2011_04_03_01_world_game_events.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_02_world_game_event.sql (renamed from sql/old/3.3.5a/2011_04_03_02_world_game_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_03_world_game_events.sql (renamed from sql/old/3.3.5a/2011_04_03_03_world_game_events.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_04_world_misc.sql (renamed from sql/old/3.3.5a/2011_04_03_04_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_05_world_sai.sql (renamed from sql/old/3.3.5a/2011_04_03_05_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_06_world_waypoint.sql (renamed from sql/old/3.3.5a/2011_04_03_06_world_waypoint.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_07_world_achievement_dbc.sql (renamed from sql/old/3.3.5a/2011_04_03_07_world_achievement_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_08_world_creatures.sql (renamed from sql/old/3.3.5a/2011_04_03_08_world_creatures.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_09_world_misc.sql (renamed from sql/old/3.3.5a/2011_04_03_09_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_10_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_04_03_10_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_11_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_04_03_11_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_12_world_script_text.sql (renamed from sql/old/3.3.5a/2011_04_03_12_world_script_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_12_world_scriptname.sql (renamed from sql/old/3.3.5a/2011_04_03_12_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_06_00_world_script_text.sql (renamed from sql/old/3.3.5a/2011_04_06_00_world_script_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_06_00_world_scriptname.sql (renamed from sql/old/3.3.5a/2011_04_06_00_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_06_01_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_04_06_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_06_02_world_command.sql (renamed from sql/old/3.3.5a/2011_04_06_02_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_06_03_world_spell_linked_spell.sql (renamed from sql/old/3.3.5a/2011_04_06_03_world_spell_linked_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_06_03_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_04_06_03_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_07_00_world_instance_scripts.sql (renamed from sql/old/3.3.5a/2011_04_07_00_world_instance_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_09_00_world_sai.sql (renamed from sql/old/3.3.5a/2011_04_09_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_11_00_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_04_11_00_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_11_01_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2011_04_11_01_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_11_02_world_spell_area.sql (renamed from sql/old/3.3.5a/2011_04_11_02_world_spell_area.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_11_03_world_arena_season_5.sql (renamed from sql/old/3.3.5a/2011_04_11_03_world_arena_season_5.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_13_00_world_pool_template.sql (renamed from sql/old/3.3.5a/2011_04_13_00_world_pool_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_14_00_world_sai.sql (renamed from sql/old/3.3.5a/2011_04_14_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_14_01_world_quest_template.sql (renamed from sql/old/3.3.5a/2011_04_14_01_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_16_00_world_gossip_menu.sql (renamed from sql/old/3.3.5a/2011_04_16_00_world_gossip_menu.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_17_00_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_04_17_00_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_17_01_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/2011_04_17_01_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_17_02_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_04_17_02_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_17_03_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_04_17_03_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_17_04_world_creature.sql (renamed from sql/old/3.3.5a/2011_04_17_04_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_17_05_world_creature.sql (renamed from sql/old/3.3.5a/2011_04_17_05_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_17_06_world_creature.sql (renamed from sql/old/3.3.5a/2011_04_17_06_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_17_07_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_04_17_07_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_17_08_world_conditions.sql (renamed from sql/old/3.3.5a/2011_04_17_08_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_21_00_world_achievement.sql (renamed from sql/old/3.3.5a/2011_04_21_00_world_achievement.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_21_01_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_04_21_01_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_22_00_world_spell_dbc.sql (renamed from sql/old/3.3.5a/2011_04_22_00_world_spell_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_22_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_04_22_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_22_01_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_04_22_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_22_02_world_creature.sql (renamed from sql/old/3.3.5a/2011_04_22_02_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_22_03_world_creatures.sql (renamed from sql/old/3.3.5a/2011_04_22_03_world_creatures.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_22_04_world_conditions.sql (renamed from sql/old/3.3.5a/2011_04_22_04_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_22_05_world_gossips.sql (renamed from sql/old/3.3.5a/2011_04_22_05_world_gossips.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_22_06_world_creatures.sql (renamed from sql/old/3.3.5a/2011_04_22_06_world_creatures.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_22_07_world_script_texts.sql (renamed from sql/old/3.3.5a/2011_04_22_07_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_22_07_world_scriptname.sql (renamed from sql/old/3.3.5a/2011_04_22_07_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_22_07_world_smart_scripts.sql (renamed from sql/old/3.3.5a/2011_04_22_07_world_smart_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_23_00_world_misc.sql (renamed from sql/old/3.3.5a/2011_04_23_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_23_01_world_gameobjects.sql (renamed from sql/old/3.3.5a/2011_04_23_01_world_gameobjects.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_23_02_world_creatures.sql (renamed from sql/old/3.3.5a/2011_04_23_02_world_creatures.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_25_00_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_04_25_00_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_25_00_world_spell_linked_spell.sql (renamed from sql/old/3.3.5a/2011_04_25_00_world_spell_linked_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_25_01_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_04_25_01_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_27_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_04_27_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_28_00_world_instance_template.sql (renamed from sql/old/3.3.5a/2011_04_28_00_world_instance_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_28_01_world_creature_equip_template.sql (renamed from sql/old/3.3.5a/2011_04_28_01_world_creature_equip_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_28_02_world_creature_addon.sql (renamed from sql/old/3.3.5a/2011_04_28_02_world_creature_addon.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_28_03_world_creature_template_addon.sql (renamed from sql/old/3.3.5a/2011_04_28_03_world_creature_template_addon.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_29_00_world_loot_template.sql (renamed from sql/old/3.3.5a/2011_04_29_00_world_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_30_00_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_04_30_00_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_30_01_world_misc.sql (renamed from sql/old/3.3.5a/2011_04_30_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_30_02_world_instance_culling_of_stratholme.sql (renamed from sql/old/3.3.5a/2011_04_30_02_world_instance_culling_of_stratholme.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_30_02_world_scriptname.sql (renamed from sql/old/3.3.5a/2011_04_30_02_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_04_00_world_spell_linked_spell.sql (renamed from sql/old/3.3.5a/2011_05_04_00_world_spell_linked_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_04_01_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_05_04_01_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_05_00_world_command.sql (renamed from sql/old/3.3.5a/2011_05_05_00_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_05_01_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_05_05_01_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_05_02_world_gameobject.sql (renamed from sql/old/3.3.5a/2011_05_05_02_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_06_00_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_05_06_00_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_06_01_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_05_06_01_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_06_02_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_05_06_02_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_06_03_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/2011_05_06_03_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_06_04_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/2011_05_06_04_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_06_05_world_creature_text.sql (renamed from sql/old/3.3.5a/2011_05_06_05_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_06_06_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_05_06_06_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_06_07_world_game_event.sql (renamed from sql/old/3.3.5a/2011_05_06_07_world_game_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_07_00_world_sai.sql (renamed from sql/old/3.3.5a/2011_05_07_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_07_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_05_07_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_07_01_world_game_event.sql (renamed from sql/old/3.3.5a/2011_05_07_01_world_game_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_07_02_world_sai.sql (renamed from sql/old/3.3.5a/2011_05_07_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_07_03_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_05_07_03_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_07_04_world_sai.sql (renamed from sql/old/3.3.5a/2011_05_07_04_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_07_05_world_sai.sql (renamed from sql/old/3.3.5a/2011_05_07_05_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_07_06_world_sai.sql (renamed from sql/old/3.3.5a/2011_05_07_06_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_07_06_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_05_07_06_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_07_07_world_creature_text.sql (renamed from sql/old/3.3.5a/2011_05_07_07_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_08_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_05_08_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_08_01_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_05_08_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_09_00_world_trinity_string.sql (renamed from sql/old/3.3.5a/2011_05_09_00_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_09_01_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_05_09_01_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/characters/2011_05_29_0_characters_mail_items.sql (renamed from sql/old/3.3.5a/2011_05_29_0_characters_mail_items.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/characters/2011_05_29_1_characters_character_pet.sql (renamed from sql/old/3.3.5a/2011_05_29_1_characters_character_pet.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/characters/2011_05_31_0_characters_character_pet.sql (renamed from sql/old/3.3.5a/2011_05_31_0_characters_character_pet.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_09_02_world_version.sql (renamed from sql/old/3.3.5a/2011_05_09_02_world_version.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_10_00_world_creature.sql (renamed from sql/old/3.3.5a/2011_05_10_00_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_10_01_world_reserved_name.sql (renamed from sql/old/3.3.5a/2011_05_10_01_world_reserved_name.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_10_02_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/2011_05_10_02_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_10_03_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/2011_05_10_03_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_10_04_world_spell_linked_spell.sql (renamed from sql/old/3.3.5a/2011_05_10_04_world_spell_linked_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_00_world_trinity_string.sql (renamed from sql/old/3.3.5a/2011_05_11_00_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_01_world_trinity_string.sql (renamed from sql/old/3.3.5a/2011_05_11_01_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_02_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_05_11_02_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_03_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/2011_05_11_03_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_04_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_05_11_04_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_05_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_05_11_05_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_06_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/2011_05_11_06_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_07_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/2011_05_11_07_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_08_world_spell_linked_spell.sql (renamed from sql/old/3.3.5a/2011_05_11_08_world_spell_linked_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_09_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_05_11_09_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_10_world_conditions.sql (renamed from sql/old/3.3.5a/2011_05_11_10_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_10_world_spell_linked_spell.sql (renamed from sql/old/3.3.5a/2011_05_11_10_world_spell_linked_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_11_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_05_11_11_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_12_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_05_11_12_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_13_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_05_11_13_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_14_world_spell_pet_auras.sql (renamed from sql/old/3.3.5a/2011_05_11_14_world_spell_pet_auras.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_15_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_05_11_15_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_00_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_05_12_00_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_01_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_05_12_01_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_02_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_05_12_02_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_03_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_05_12_03_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_04_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_05_12_04_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_05_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_05_12_05_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_06_world_spell_group.sql (renamed from sql/old/3.3.5a/2011_05_12_06_world_spell_group.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_07_world_spell_group.sql (renamed from sql/old/3.3.5a/2011_05_12_07_world_spell_group.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_08_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/2011_05_12_08_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_09_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/2011_05_12_09_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_10_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/2011_05_12_10_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_11_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_05_12_11_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_12_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/2011_05_12_12_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_13_world_spell_dbc.sql (renamed from sql/old/3.3.5a/2011_05_12_13_world_spell_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_13_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_05_12_13_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_14_world_creature_text.sql (renamed from sql/old/3.3.5a/2011_05_12_14_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_15_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_05_12_15_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_16_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_05_12_16_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_13_00_world_spell_dbc.sql (renamed from sql/old/3.3.5a/2011_05_13_00_world_spell_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_13_01_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/2011_05_13_01_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_13_02_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_05_13_02_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_13_03_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/2011_05_13_03_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_13_03_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_05_13_03_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_13_04_world_areatrigger_scripts.sql (renamed from sql/old/3.3.5a/2011_05_13_04_world_areatrigger_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_13_04_world_instance_misc.sql (renamed from sql/old/3.3.5a/2011_05_13_04_world_instance_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_13_04_world_scriptname.sql (renamed from sql/old/3.3.5a/2011_05_13_04_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_13_04_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_05_13_04_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_13_05_world_creature_text.sql (renamed from sql/old/3.3.5a/2011_05_13_05_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_13_06_world_creature_text.sql (renamed from sql/old/3.3.5a/2011_05_13_06_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_14_00_world_achievment_criteria_data.sql (renamed from sql/old/3.3.5a/2011_05_14_00_world_achievment_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_14_01_world_achievment_criteria_data.sql (renamed from sql/old/3.3.5a/2011_05_14_01_world_achievment_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_14_02_world_achievment_criteria_data.sql (renamed from sql/old/3.3.5a/2011_05_14_02_world_achievment_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_14_03_world_gossip_menu.sql (renamed from sql/old/3.3.5a/2011_05_14_03_world_gossip_menu.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_14_04_world_gossip_menu.sql (renamed from sql/old/3.3.5a/2011_05_14_04_world_gossip_menu.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_15_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_05_15_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_15_01_world_smart_scripts.sql (renamed from sql/old/3.3.5a/2011_05_15_01_world_smart_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_15_02_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_05_15_02_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_16_00_world_creature.sql (renamed from sql/old/3.3.5a/2011_05_16_00_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_17_00_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_05_17_00_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_17_01_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/2011_05_17_01_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_17_01_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_05_17_01_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_18_00_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_05_18_00_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_18_01_world_spell_target_position.sql (renamed from sql/old/3.3.5a/2011_05_18_01_world_spell_target_position.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_18_02_world_creature_text.sql (renamed from sql/old/3.3.5a/2011_05_18_02_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_18_03_world_creature.sql (renamed from sql/old/3.3.5a/2011_05_18_03_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_18_04_world_achievements.sql (renamed from sql/old/3.3.5a/2011_05_18_04_world_achievements.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_18_05_world_waypoints.sql (renamed from sql/old/3.3.5a/2011_05_18_05_world_waypoints.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_18_06_world_waypoints.sql (renamed from sql/old/3.3.5a/2011_05_18_06_world_waypoints.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_18_07_world_sai.sql (renamed from sql/old/3.3.5a/2011_05_18_07_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_18_08_world_waypoints.sql (renamed from sql/old/3.3.5a/2011_05_18_08_world_waypoints.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_18_09_world_waypoints.sql (renamed from sql/old/3.3.5a/2011_05_18_09_world_waypoints.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_18_10_world_npc_text.sql (renamed from sql/old/3.3.5a/2011_05_18_10_world_npc_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_18_11_world_item_template.sql (renamed from sql/old/3.3.5a/2011_05_18_11_world_item_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_19_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_05_19_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_19_01_world_instance_misc.sql (renamed from sql/old/3.3.5a/2011_05_19_01_world_instance_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_19_01_world_script_text.sql (renamed from sql/old/3.3.5a/2011_05_19_01_world_script_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_19_01_world_scriptname.sql (renamed from sql/old/3.3.5a/2011_05_19_01_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_19_01_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_05_19_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_20_00_world_conditions.sql (renamed from sql/old/3.3.5a/2011_05_20_00_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_20_01_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_05_20_01_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_20_01_world_instance_misc.sql (renamed from sql/old/3.3.5a/2011_05_20_01_world_instance_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_20_01_world_scriptname.sql (renamed from sql/old/3.3.5a/2011_05_20_01_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_20_01_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_05_20_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_20_02_world_pool_template.sql (renamed from sql/old/3.3.5a/2011_05_20_02_world_pool_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_20_03_world_pool_template.sql (renamed from sql/old/3.3.5a/2011_05_20_03_world_pool_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_20_04_world_pool_template.sql (renamed from sql/old/3.3.5a/2011_05_20_04_world_pool_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_20_05_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_05_20_05_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_21_01_world_conditions.sql (renamed from sql/old/3.3.5a/2011_05_21_01_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_21_01_world_instance_misc.sql (renamed from sql/old/3.3.5a/2011_05_21_01_world_instance_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_21_01_world_scriptname.sql (renamed from sql/old/3.3.5a/2011_05_21_01_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_21_01_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_05_21_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_21_02_world_creature_misc.sql (renamed from sql/old/3.3.5a/2011_05_21_02_world_creature_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_21_02_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_05_21_02_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_21_03_world_creature_text.sql (renamed from sql/old/3.3.5a/2011_05_21_03_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_22_00_world_creatures.sql (renamed from sql/old/3.3.5a/2011_05_22_00_world_creatures.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_22_01_world_misc.sql (renamed from sql/old/3.3.5a/2011_05_22_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_22_02_world_sai.sql (renamed from sql/old/3.3.5a/2011_05_22_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_22_03_world_gameobject_template.sql (renamed from sql/old/3.3.5a/2011_05_22_03_world_gameobject_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_22_04_world_creature_text.sql (renamed from sql/old/3.3.5a/2011_05_22_04_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_22_05_world_sai.sql (renamed from sql/old/3.3.5a/2011_05_22_05_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_22_06_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_05_22_06_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_22_07_world_misc.sql (renamed from sql/old/3.3.5a/2011_05_22_07_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_22_08_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_05_22_08_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_23_00_world_spell_dbc.sql (renamed from sql/old/3.3.5a/2011_05_23_00_world_spell_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_00_world_sai.sql (renamed from sql/old/3.3.5a/2011_05_24_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_01_world_sai.sql (renamed from sql/old/3.3.5a/2011_05_24_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_02_world_sai.sql (renamed from sql/old/3.3.5a/2011_05_24_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_03_world_creature.sql (renamed from sql/old/3.3.5a/2011_05_24_03_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_04_world_sai.sql (renamed from sql/old/3.3.5a/2011_05_24_04_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_05_world_sai.sql (renamed from sql/old/3.3.5a/2011_05_24_05_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_06_world_sai.sql (renamed from sql/old/3.3.5a/2011_05_24_06_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_07_world_sai.sql (renamed from sql/old/3.3.5a/2011_05_24_07_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_08_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_05_24_08_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_09_world_sai.sql (renamed from sql/old/3.3.5a/2011_05_24_09_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_10_world_sai.sql (renamed from sql/old/3.3.5a/2011_05_24_10_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_11_world_sai.sql (renamed from sql/old/3.3.5a/2011_05_24_11_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_12_world_sai.sql (renamed from sql/old/3.3.5a/2011_05_24_12_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_13_world_sai.sql (renamed from sql/old/3.3.5a/2011_05_24_13_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_14_world_sai.sql (renamed from sql/old/3.3.5a/2011_05_24_14_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_15_world_sai.sql (renamed from sql/old/3.3.5a/2011_05_24_15_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_16_world_sai.sql (renamed from sql/old/3.3.5a/2011_05_24_16_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_16_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_05_24_16_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_17_world_waypoint_data.sql (renamed from sql/old/3.3.5a/2011_05_24_17_world_waypoint_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_18_world_script_waypoint.sql (renamed from sql/old/3.3.5a/2011_05_24_18_world_script_waypoint.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_19_world_script_texts.sql (renamed from sql/old/3.3.5a/2011_05_24_19_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_26_00_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_05_26_00_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_27_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_05_27_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_27_01_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_05_27_01_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_27_02_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_05_27_02_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_28_00_world_sai.sql (renamed from sql/old/3.3.5a/2011_05_28_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_28_01_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_05_28_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_28_02_world_areatrigger_scripts.sql (renamed from sql/old/3.3.5a/2011_05_28_02_world_areatrigger_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_28_02_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_05_28_02_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_28_02_world_creature_text.sql (renamed from sql/old/3.3.5a/2011_05_28_02_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_28_02_world_instance_template.sql (renamed from sql/old/3.3.5a/2011_05_28_02_world_instance_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_28_02_world_sai.sql (renamed from sql/old/3.3.5a/2011_05_28_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_28_02_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_05_28_02_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_29_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_05_29_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_29_01_world_spell_linked_spell.sql (renamed from sql/old/3.3.5a/2011_05_29_01_world_spell_linked_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_29_02_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_05_29_02_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_30_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_05_30_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_30_00_world_creature_text.sql (renamed from sql/old/3.3.5a/2011_05_30_00_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_30_00_world_script_texts.sql (renamed from sql/old/3.3.5a/2011_05_30_00_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_30_01_world_conditions.sql (renamed from sql/old/3.3.5a/2011_05_30_01_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_30_01_world_creature.sql (renamed from sql/old/3.3.5a/2011_05_30_01_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_30_01_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_05_30_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_30_02_world_spell_linked_spell.sql (renamed from sql/old/3.3.5a/2011_05_30_02_world_spell_linked_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_30_03_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_05_30_03_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_30_04_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_05_30_04_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_30_04_world_creature_template_addon.sql (renamed from sql/old/3.3.5a/2011_05_30_04_world_creature_template_addon.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_30_05_world_gameobject_template.sql (renamed from sql/old/3.3.5a/2011_05_30_05_world_gameobject_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_31_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_05_31_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_31_01_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/2011_05_31_01_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_31_02_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_05_31_02_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_01_00_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_06_01_00_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_01_01_world_game_event.sql (renamed from sql/old/3.3.5a/2011_06_01_01_world_game_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_01_02_world_gameobject_template.sql (renamed from sql/old/3.3.5a/2011_06_01_02_world_gameobject_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_02_00_world_gameobject_template.sql (renamed from sql/old/3.3.5a/2011_06_02_00_world_gameobject_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_02_01_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_06_02_01_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_02_03_world_disables.sql (renamed from sql/old/3.3.5a/2011_06_02_03_world_disables.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_03_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_06_03_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_03_01_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_06_03_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_04_00_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2011_06_04_00_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_04_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_06_04_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_05_00_world_spelldifficulty_dbc.sql (renamed from sql/old/3.3.5a/2011_06_05_00_world_spelldifficulty_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_07_00_world_misc.sql (renamed from sql/old/3.3.5a/2011_06_07_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_08_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_06_08_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_09_00_world_misc.sql (renamed from sql/old/3.3.5a/2011_06_09_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_09_01_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_06_09_01_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_09_02_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_06_09_02_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_09_03_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_06_09_03_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_09_04_world_areatrigger_teleport.sql (renamed from sql/old/3.3.5a/2011_06_09_04_world_areatrigger_teleport.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_10_00_world_creature_misc.sql (renamed from sql/old/3.3.5a/2011_06_10_00_world_creature_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_10_01_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_06_10_01_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_10_02_world_misc.sql (renamed from sql/old/3.3.5a/2011_06_10_02_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_10_03_world_misc.sql (renamed from sql/old/3.3.5a/2011_06_10_03_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_10_04_world_misc.sql (renamed from sql/old/3.3.5a/2011_06_10_04_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_10_05_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_06_10_05_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_12_00_world_sai.sql (renamed from sql/old/3.3.5a/2011_06_12_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_12_00_world_spell_dbc.sql (renamed from sql/old/3.3.5a/2011_06_12_00_world_spell_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_12_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_06_12_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_12_01_world_conditions.sql (renamed from sql/old/3.3.5a/2011_06_12_01_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_12_01_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_06_12_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_13_00_world_gameobject_template.sql (renamed from sql/old/3.3.5a/2011_06_13_00_world_gameobject_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_13_01_world_sai.sql (renamed from sql/old/3.3.5a/2011_06_13_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_14_00_world_misc.sql (renamed from sql/old/3.3.5a/2011_06_14_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_14_01_world_gameobject_template.sql (renamed from sql/old/3.3.5a/2011_06_14_01_world_gameobject_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_14_02_world_misc.sql (renamed from sql/old/3.3.5a/2011_06_14_02_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_14_03_world_npc_spellclick_spells.sql (renamed from sql/old/3.3.5a/2011_06_14_03_world_npc_spellclick_spells.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_14_04_world_misc.sql (renamed from sql/old/3.3.5a/2011_06_14_04_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_15_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_06_15_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_15_01_world_misc.sql (renamed from sql/old/3.3.5a/2011_06_15_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_16_01_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2011_06_16_01_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_16_02_world_waypoint_data.sql (renamed from sql/old/3.3.5a/2011_06_16_02_world_waypoint_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_16_03_world_creature.sql (renamed from sql/old/3.3.5a/2011_06_16_03_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_16_04_world_waypoint_data.sql (renamed from sql/old/3.3.5a/2011_06_16_04_world_waypoint_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_16_05_world_sai.sql (renamed from sql/old/3.3.5a/2011_06_16_05_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_00_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_06_17_00_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_01_world_script_texts.sql (renamed from sql/old/3.3.5a/2011_06_17_01_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_02_world_spelldifficulty_dbc.sql (renamed from sql/old/3.3.5a/2011_06_17_02_world_spelldifficulty_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_03_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_06_17_03_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_04_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_06_17_04_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_05_world_conditions.sql (renamed from sql/old/3.3.5a/2011_06_17_05_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_06_world_creature_equip_template.sql (renamed from sql/old/3.3.5a/2011_06_17_06_world_creature_equip_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_07_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_06_17_07_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_08_world_creature_addon.sql (renamed from sql/old/3.3.5a/2011_06_17_08_world_creature_addon.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_09_world_misc.sql (renamed from sql/old/3.3.5a/2011_06_17_09_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_10_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_06_17_10_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_11_world_waypoint_data.sql (renamed from sql/old/3.3.5a/2011_06_17_11_world_waypoint_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_12_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_06_17_12_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_13_world_smart_scripts.sql (renamed from sql/old/3.3.5a/2011_06_17_13_world_smart_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_14_world_sai.sql (renamed from sql/old/3.3.5a/2011_06_17_14_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_15_world_sai.sql (renamed from sql/old/3.3.5a/2011_06_17_15_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_16_world_sai.sql (renamed from sql/old/3.3.5a/2011_06_17_16_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_17_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_06_17_17_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_18_world_misc.sql (renamed from sql/old/3.3.5a/2011_06_17_18_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_19_world_misc.sql (renamed from sql/old/3.3.5a/2011_06_17_19_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_20_world_sai.sql (renamed from sql/old/3.3.5a/2011_06_17_20_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_21_world_misc.sql (renamed from sql/old/3.3.5a/2011_06_17_21_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_22_world_misc.sql (renamed from sql/old/3.3.5a/2011_06_17_22_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/auth/2011_07_27_00_auth_account.sql (renamed from sql/old/3.3.5a/2011_07_27_00_auth_account.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/characters/2011_08_03_00_characters_characters.sql (renamed from sql/old/3.3.5a/2011_08_03_00_characters_characters.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_18_00_world_version.sql (renamed from sql/old/3.3.5a/2011_06_18_00_world_version.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_18_01_world_misc.sql (renamed from sql/old/3.3.5a/2011_06_18_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_18_02_world_sai.sql (renamed from sql/old/3.3.5a/2011_06_18_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_18_03_world_misc.sql (renamed from sql/old/3.3.5a/2011_06_18_03_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_18_04_world_conditions.sql (renamed from sql/old/3.3.5a/2011_06_18_04_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_18_05_world_misc.sql (renamed from sql/old/3.3.5a/2011_06_18_05_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_19_02_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_06_19_02_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_19_03_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_06_19_03_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_19_04_world_creature_template_addon.sql (renamed from sql/old/3.3.5a/2011_06_19_04_world_creature_template_addon.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_19_05_world_creature_onkill_reputation.sql (renamed from sql/old/3.3.5a/2011_06_19_05_world_creature_onkill_reputation.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_19_06_world_quest_template.sql (renamed from sql/old/3.3.5a/2011_06_19_06_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_19_07_world_misc.sql (renamed from sql/old/3.3.5a/2011_06_19_07_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_20_00_world_misc.sql (renamed from sql/old/3.3.5a/2011_06_20_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_20_01_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_06_20_01_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_20_02_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_06_20_02_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_20_03_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_06_20_03_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_20_04_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_06_20_04_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_20_05_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_06_20_05_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_21_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_06_21_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_21_01_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_06_21_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_21_02_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_06_21_02_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_22_00_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_06_22_00_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_22_01_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_06_22_01_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_22_02_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_06_22_02_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_22_03_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_06_22_03_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_23_00_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_06_23_00_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_23_01_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_06_23_01_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_23_02_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_06_23_02_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_23_03_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_06_23_03_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_23_04_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_06_23_04_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_23_05_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_06_23_05_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_23_06_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_06_23_06_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_23_07_world_misc.sql (renamed from sql/old/3.3.5a/2011_06_23_07_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_24_00_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_06_24_00_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_24_01_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_06_24_01_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_24_02_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_06_24_02_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_24_03_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_06_24_03_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_24_04_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_06_24_04_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_24_05_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/2011_06_24_05_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_24_06_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_06_24_06_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_24_07_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_06_24_07_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_24_08_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_06_24_08_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_00_world_spell_dbc.sql (renamed from sql/old/3.3.5a/2011_06_25_00_world_spell_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_01_world_script_texts.sql (renamed from sql/old/3.3.5a/2011_06_25_01_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_02_world_misc.sql (renamed from sql/old/3.3.5a/2011_06_25_02_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_03_world_sai.sql (renamed from sql/old/3.3.5a/2011_06_25_03_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_04_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_06_25_04_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_05_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_06_25_05_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_06_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_06_25_06_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_07_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_06_25_07_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_08_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_06_25_08_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_09_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_06_25_09_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_10_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_06_25_10_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_11_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_06_25_11_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_12_world_trinity_string.sql (renamed from sql/old/3.3.5a/2011_06_25_12_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_13_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_06_25_13_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_14_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_06_25_14_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_15_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_06_25_15_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_16_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_06_25_16_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_26_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_06_26_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_26_01_world_command.sql (renamed from sql/old/3.3.5a/2011_06_26_01_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_26_02_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_06_26_02_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_26_03_world_spell_dbc.sql (renamed from sql/old/3.3.5a/2011_06_26_03_world_spell_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_26_04_world_spell_proc.sql (renamed from sql/old/3.3.5a/2011_06_26_04_world_spell_proc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_26_05_world_command.sql (renamed from sql/old/3.3.5a/2011_06_26_05_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_26_06_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_06_26_06_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_26_07_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_06_26_07_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_27_00_world_sai.sql (renamed from sql/old/3.3.5a/2011_06_27_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_27_01_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_06_27_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_27_02_world_vehicle_scaling_info.sql (renamed from sql/old/3.3.5a/2011_06_27_02_world_vehicle_scaling_info.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_27_03_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_06_27_03_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_27_04_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_06_27_04_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_27_05_world_areatrigger_teleport.sql (renamed from sql/old/3.3.5a/2011_06_27_05_world_areatrigger_teleport.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_27_06_world_command.sql (renamed from sql/old/3.3.5a/2011_06_27_06_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_27_06_world_creature.sql (renamed from sql/old/3.3.5a/2011_06_27_06_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_27_07_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_06_27_07_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_28_00_world_script_texts.sql (renamed from sql/old/3.3.5a/2011_06_28_00_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_28_01_world_spelldifficulty_dbc.sql (renamed from sql/old/3.3.5a/2011_06_28_01_world_spelldifficulty_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_29_00_world_command.sql (renamed from sql/old/3.3.5a/2011_06_29_00_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_30_00_world_creature_text.sql (renamed from sql/old/3.3.5a/2011_06_30_00_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_30_01_world_sai.sql (renamed from sql/old/3.3.5a/2011_06_30_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_01_00_world_waypoint_data.sql (renamed from sql/old/3.3.5a/2011_07_01_00_world_waypoint_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_01_01_world_item_template.sql (renamed from sql/old/3.3.5a/2011_07_01_01_world_item_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_01_02_world_misc.sql (renamed from sql/old/3.3.5a/2011_07_01_02_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_01_03_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_07_01_03_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_01_03_world_disables.sql (renamed from sql/old/3.3.5a/2011_07_01_03_world_disables.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_02_00_world_areatrigger_scripts.sql (renamed from sql/old/3.3.5a/2011_07_02_00_world_areatrigger_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_02_00_world_instance_misc.sql (renamed from sql/old/3.3.5a/2011_07_02_00_world_instance_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_02_01_world_creature_addon.sql (renamed from sql/old/3.3.5a/2011_07_02_01_world_creature_addon.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_02_01_world_game_tele.sql (renamed from sql/old/3.3.5a/2011_07_02_01_world_game_tele.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_04_00_world_script_texts.sql (renamed from sql/old/3.3.5a/2011_07_04_00_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_04_01_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_07_04_01_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_04_02_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_07_04_02_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_04_03_world_trinity_string.sql (renamed from sql/old/3.3.5a/2011_07_04_03_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_04_04_world_creature_ai_scripts.sql (renamed from sql/old/3.3.5a/2011_07_04_04_world_creature_ai_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_05_00_world_areatrigger_teleport.sql (renamed from sql/old/3.3.5a/2011_07_05_00_world_areatrigger_teleport.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_05_01_world_reputation_rate.sql (renamed from sql/old/3.3.5a/2011_07_05_01_world_reputation_rate.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_05_02_world_reputation_rate.sql (renamed from sql/old/3.3.5a/2011_07_05_02_world_reputation_rate.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_05_03_world_go_script_names.sql (renamed from sql/old/3.3.5a/2011_07_05_03_world_go_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_05_03_world_misc.sql (renamed from sql/old/3.3.5a/2011_07_05_03_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_05_04_world_areatrigger_teleport.sql (renamed from sql/old/3.3.5a/2011_07_05_04_world_areatrigger_teleport.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_06_00_world_sai.sql (renamed from sql/old/3.3.5a/2011_07_06_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_06_01_world_misc.sql (renamed from sql/old/3.3.5a/2011_07_06_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_07_00_world_creature.sql (renamed from sql/old/3.3.5a/2011_07_07_00_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_07_01_world_misc.sql (renamed from sql/old/3.3.5a/2011_07_07_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_07_01_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_07_07_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_07_02_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_07_07_02_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_08_00_world_conditions.sql (renamed from sql/old/3.3.5a/2011_07_08_00_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_15_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_07_15_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_15_01_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_07_15_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_15_02_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/2011_07_15_02_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_15_03_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_07_15_03_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_15_04_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_07_15_04_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_15_05_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/2011_07_15_05_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_21_00_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_07_21_00_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_21_01_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_07_21_01_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_22_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_07_22_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_22_01_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/2011_07_22_01_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_23_00_world_areatrigger_scripts.sql (renamed from sql/old/3.3.5a/2011_07_23_00_world_areatrigger_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_24_00_world_npc_vendor.sql (renamed from sql/old/3.3.5a/2011_07_24_00_world_npc_vendor.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_27_00_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_07_27_00_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_27_01_world_trinity_string.sql (renamed from sql/old/3.3.5a/2011_07_27_01_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_29_00_world_gameobject_template.sql (renamed from sql/old/3.3.5a/2011_07_29_00_world_gameobject_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_01_00_world_sai.sql (renamed from sql/old/3.3.5a/2011_08_01_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_01_01_world_gossips.sql (renamed from sql/old/3.3.5a/2011_08_01_01_world_gossips.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_01_01_world_misc.sql (renamed from sql/old/3.3.5a/2011_08_01_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_01_01_world_waypoints.sql (renamed from sql/old/3.3.5a/2011_08_01_01_world_waypoints.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_01_02_world_creature_text.sql (renamed from sql/old/3.3.5a/2011_08_01_02_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_01_03_world_spell_misc.sql (renamed from sql/old/3.3.5a/2011_08_01_03_world_spell_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_06_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_08_06_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_06_01_world_misc.sql (renamed from sql/old/3.3.5a/2011_08_06_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_06_02_world_misc.sql (renamed from sql/old/3.3.5a/2011_08_06_02_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_06_03_world_command.sql (renamed from sql/old/3.3.5a/2011_08_06_03_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_06_04_world_misc.sql (renamed from sql/old/3.3.5a/2011_08_06_04_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_07_00_world_gameobject_loot_template.sql (renamed from sql/old/3.3.5a/2011_08_07_00_world_gameobject_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_07_01_world_reference_loot_template.sql (renamed from sql/old/3.3.5a/2011_08_07_01_world_reference_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_07_02_world_spawns.sql (renamed from sql/old/3.3.5a/2011_08_07_02_world_spawns.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_07_03_world_sai.sql (renamed from sql/old/3.3.5a/2011_08_07_03_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_07_04_world_misc.sql (renamed from sql/old/3.3.5a/2011_08_07_04_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_07_05_world_spell_misc.sql (renamed from sql/old/3.3.5a/2011_08_07_05_world_spell_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_09_00_world_prospecting_loot_template.sql (renamed from sql/old/3.3.5a/2011_08_09_00_world_prospecting_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_09_01_world_misc.sql (renamed from sql/old/3.3.5a/2011_08_09_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_12_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_08_12_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_13_00_world_trinity_string.sql (renamed from sql/old/3.3.5a/2011_08_13_00_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_13_01_world_command.sql (renamed from sql/old/3.3.5a/2011_08_13_01_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_13_02_world_creature_scriptname.sql (renamed from sql/old/3.3.5a/2011_08_13_02_world_creature_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_15_00_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2011_08_15_00_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_18_00_world_vehicle_template_accessory.sql (renamed from sql/old/3.3.5a/2011_08_18_00_world_vehicle_template_accessory.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_18_01_world_misc.sql (renamed from sql/old/3.3.5a/2011_08_18_01_world_misc.sql)2
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_18_02_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_08_18_02_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_18_03_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_08_18_03_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_18_04_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_08_18_04_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_19_01_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_08_19_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_19_02_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_08_19_02_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_19_03_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_08_19_03_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_20_00_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_08_20_00_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_21_00_world_command.sql (renamed from sql/old/3.3.5a/2011_08_21_00_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_21_01_world_command.sql (renamed from sql/old/3.3.5a/2011_08_21_01_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_22_00_world_trinity_string.sql (renamed from sql/old/3.3.5a/2011_08_22_00_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_23_00_world_creature_equip_template.sql (renamed from sql/old/3.3.5a/2011_08_23_00_world_creature_equip_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_24_00_world_game_event.sql (renamed from sql/old/3.3.5a/2011_08_24_00_world_game_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_24_01_world_conditions.sql (renamed from sql/old/3.3.5a/2011_08_24_01_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_24_01_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_08_24_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_24_02_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_08_24_02_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_24_03_world_access_requirement.sql (renamed from sql/old/3.3.5a/2011_08_24_03_world_access_requirement.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_24_04_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_08_24_04_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_24_05_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_08_24_05_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/characters/2011_09_05_00_characters_character_quest_status.sql (renamed from sql/old/3.3.5a/2011_09_05_00_characters_character_quest_status.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/characters/2011_09_28_00_characters_characters.sql (renamed from sql/old/3.3.5a/2011_09_28_00_characters_characters.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/characters/2011_10_09_00_characters_character_aura.sql (renamed from sql/old/3.3.5a/2011_10_09_00_characters_character_aura.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_08_27_00_world_version.sql (renamed from sql/old/3.3.5a/2011_08_27_00_world_version.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_08_27_01_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_08_27_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_08_28_00_world_instance_misc.sql (renamed from sql/old/3.3.5a/2011_08_28_00_world_instance_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_08_29_00_world_instance_misc.sql (renamed from sql/old/3.3.5a/2011_08_29_00_world_instance_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_08_30_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_08_30_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_01_00_world_disables.sql (renamed from sql/old/3.3.5a/2011_09_01_00_world_disables.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_02_00_world_misc.sql (renamed from sql/old/3.3.5a/2011_09_02_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_02_02_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_09_02_02_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_03_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_09_03_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_03_01_world_conditions.sql (renamed from sql/old/3.3.5a/2011_09_03_01_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_03_02_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_09_03_02_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_03_03_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_09_03_03_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_03_04_world_misc.sql (renamed from sql/old/3.3.5a/2011_09_03_04_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_03_05_world_gossip_menu_option.sql (renamed from sql/old/3.3.5a/2011_09_03_05_world_gossip_menu_option.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_03_06_world_spell_threat.sql (renamed from sql/old/3.3.5a/2011_09_03_06_world_spell_threat.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_03_07_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_09_03_07_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_03_08_world_spell_dbc.sql (renamed from sql/old/3.3.5a/2011_09_03_08_world_spell_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_03_09_world_spell_dbc.sql (renamed from sql/old/3.3.5a/2011_09_03_09_world_spell_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_03_10_world_spell_dbc.sql (renamed from sql/old/3.3.5a/2011_09_03_10_world_spell_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_04_00_world_quest_template.sql (renamed from sql/old/3.3.5a/2011_09_04_00_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_04_01_world_trinity_string.sql (renamed from sql/old/3.3.5a/2011_09_04_01_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_04_02_world_trinity_string.sql (renamed from sql/old/3.3.5a/2011_09_04_02_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_05_00_world_spell_target_position.sql (renamed from sql/old/3.3.5a/2011_09_05_00_world_spell_target_position.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_05_01_world_gossip.sql (renamed from sql/old/3.3.5a/2011_09_05_01_world_gossip.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_06_00_world_sai.sql (renamed from sql/old/3.3.5a/2011_09_06_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_06_01_world_misc.sql (renamed from sql/old/3.3.5a/2011_09_06_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_07_00_world_spell_linked_spell.sql (renamed from sql/old/3.3.5a/2011_09_07_00_world_spell_linked_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_07_01_world_sai.sql (renamed from sql/old/3.3.5a/2011_09_07_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_08_00_world_conditions.sql (renamed from sql/old/3.3.5a/2011_09_08_00_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_08_01_world_spell_target_position.sql (renamed from sql/old/3.3.5a/2011_09_08_01_world_spell_target_position.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_08_02_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_09_08_02_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_08_03_world_item_template.sql (renamed from sql/old/3.3.5a/2011_09_08_03_world_item_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_10_00_world_spell_linked_spell.sql (renamed from sql/old/3.3.5a/2011_09_10_00_world_spell_linked_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_11_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_09_11_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_11_01_world_sai.sql (renamed from sql/old/3.3.5a/2011_09_11_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_11_02_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_09_11_02_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_11_03_world_gameobject.sql (renamed from sql/old/3.3.5a/2011_09_11_03_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_11_04_world_spell_linked_spell.sql (renamed from sql/old/3.3.5a/2011_09_11_04_world_spell_linked_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_11_05_world_misc.sql (renamed from sql/old/3.3.5a/2011_09_11_05_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_11_06_world_spell_conditions.sql (renamed from sql/old/3.3.5a/2011_09_11_06_world_spell_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_11_07_world_sai.sql (renamed from sql/old/3.3.5a/2011_09_11_07_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_11_08_world_creature.sql (renamed from sql/old/3.3.5a/2011_09_11_08_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_11_09_world_script_texts.sql (renamed from sql/old/3.3.5a/2011_09_11_09_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_12_00_world_misc.sql (renamed from sql/old/3.3.5a/2011_09_12_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_12_01_world_misc.sql (renamed from sql/old/3.3.5a/2011_09_12_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_12_02_world_instance_template.sql (renamed from sql/old/3.3.5a/2011_09_12_02_world_instance_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_12_03_world_conditions.sql (renamed from sql/old/3.3.5a/2011_09_12_03_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_12_04_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_09_12_04_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_12_05_world_misc.sql (renamed from sql/old/3.3.5a/2011_09_12_05_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_12_06_world_event_scripts.sql (renamed from sql/old/3.3.5a/2011_09_12_06_world_event_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_12_07_world_creature.sql (renamed from sql/old/3.3.5a/2011_09_12_07_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_13_00_world_spells.sql (renamed from sql/old/3.3.5a/2011_09_13_00_world_spells.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_14_00_world_spawns.sql (renamed from sql/old/3.3.5a/2011_09_14_00_world_spawns.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_14_01_world_quest.sql (renamed from sql/old/3.3.5a/2011_09_14_01_world_quest.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_14_02_world_gossip_menu_option.sql (renamed from sql/old/3.3.5a/2011_09_14_02_world_gossip_menu_option.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_14_03_world_script_texts.sql (renamed from sql/old/3.3.5a/2011_09_14_03_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_14_04_world_creature.sql (renamed from sql/old/3.3.5a/2011_09_14_04_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_14_05_world_creature_text.sql (renamed from sql/old/3.3.5a/2011_09_14_05_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_14_06_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_09_14_06_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_15_00_world_creature.sql (renamed from sql/old/3.3.5a/2011_09_15_00_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_15_01_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_09_15_01_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_15_02_world_misc.sql (renamed from sql/old/3.3.5a/2011_09_15_02_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_15_03_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_09_15_03_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_15_04_world_misc.sql (renamed from sql/old/3.3.5a/2011_09_15_04_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_15_05_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_09_15_05_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_16_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_09_16_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_19_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_09_19_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_21_00_world_misc.sql (renamed from sql/old/3.3.5a/2011_09_21_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_21_01_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_09_21_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_21_02_world_command.sql (renamed from sql/old/3.3.5a/2011_09_21_02_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_21_02_world_trinity_string.sql (renamed from sql/old/3.3.5a/2011_09_21_02_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_22_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_09_22_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_24_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_09_24_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_24_01_world_sai.sql (renamed from sql/old/3.3.5a/2011_09_24_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_25_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_09_25_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_26_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_09_26_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_28_00_world_achievement_reward.sql (renamed from sql/old/3.3.5a/2011_09_28_00_world_achievement_reward.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_28_01_world_spell_dbc.sql (renamed from sql/old/3.3.5a/2011_09_28_01_world_spell_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_28_02_world_game_event.sql (renamed from sql/old/3.3.5a/2011_09_28_02_world_game_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_10_01_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_01_world_gameobject_template.sql (renamed from sql/old/3.3.5a/2011_10_01_01_world_gameobject_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_02_world_game_event_creature.sql (renamed from sql/old/3.3.5a/2011_10_01_02_world_game_event_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_03_world_conditions.sql (renamed from sql/old/3.3.5a/2011_10_01_03_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_04_world_sai.sql (renamed from sql/old/3.3.5a/2011_10_01_04_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_05_world_sai.sql (renamed from sql/old/3.3.5a/2011_10_01_05_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_06_world_misc.sql (renamed from sql/old/3.3.5a/2011_10_01_06_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_07_world_sai.sql (renamed from sql/old/3.3.5a/2011_10_01_07_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_08_world_sai.sql (renamed from sql/old/3.3.5a/2011_10_01_08_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_09_world_creatures.sql (renamed from sql/old/3.3.5a/2011_10_01_09_world_creatures.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_10_world_questrelation.sql (renamed from sql/old/3.3.5a/2011_10_01_10_world_questrelation.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_11_world_loot.sql (renamed from sql/old/3.3.5a/2011_10_01_11_world_loot.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_12_world_creatures.sql (renamed from sql/old/3.3.5a/2011_10_01_12_world_creatures.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_13_world_dbc.sql (renamed from sql/old/3.3.5a/2011_10_01_13_world_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_10_02_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_01_world_factionchange.sql (renamed from sql/old/3.3.5a/2011_10_02_01_world_factionchange.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_03_world_sai.sql (renamed from sql/old/3.3.5a/2011_10_02_03_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_04_world_sai.sql (renamed from sql/old/3.3.5a/2011_10_02_04_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_05_world_sai.sql (renamed from sql/old/3.3.5a/2011_10_02_05_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_06_world_misc.sql (renamed from sql/old/3.3.5a/2011_10_02_06_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_07_world_sai.sql (renamed from sql/old/3.3.5a/2011_10_02_07_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_08_world_sai.sql (renamed from sql/old/3.3.5a/2011_10_02_08_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_09_world_creatures.sql (renamed from sql/old/3.3.5a/2011_10_02_09_world_creatures.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_10_world_sai.sql (renamed from sql/old/3.3.5a/2011_10_02_10_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_11_world_sai.sql (renamed from sql/old/3.3.5a/2011_10_02_11_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_12_world_sai.sql (renamed from sql/old/3.3.5a/2011_10_02_12_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_13_world_sai.sql (renamed from sql/old/3.3.5a/2011_10_02_13_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_14_world_sai.sql (renamed from sql/old/3.3.5a/2011_10_02_14_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_15_world_sai.sql (renamed from sql/old/3.3.5a/2011_10_02_15_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_04_00_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2011_10_04_00_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_05_00_world_spell_linked_spell.sql (renamed from sql/old/3.3.5a/2011_10_05_00_world_spell_linked_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_05_01_world_instance_misc.sql (renamed from sql/old/3.3.5a/2011_10_05_01_world_instance_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_05_01_world_scriptname.sql (renamed from sql/old/3.3.5a/2011_10_05_01_world_scriptname.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_05_01_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_10_05_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_06_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_10_06_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_06_01_world_misc.sql (renamed from sql/old/3.3.5a/2011_10_06_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_07_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_10_07_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_07_01_world_command.sql (renamed from sql/old/3.3.5a/2011_10_07_01_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_07_02_world_trinity_string.sql (renamed from sql/old/3.3.5a/2011_10_07_02_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_08_00_world_page_text.sql (renamed from sql/old/3.3.5a/2011_10_08_00_world_page_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_11_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_10_11_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_12_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_10_12_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_15_00_world_waypoint_data.sql (renamed from sql/old/3.3.5a/2011_10_15_00_world_waypoint_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_18_00_world_spell_group.sql (renamed from sql/old/3.3.5a/2011_10_18_00_world_spell_group.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_18_01_world_spell_group_stack_rules.sql (renamed from sql/old/3.3.5a/2011_10_18_01_world_spell_group_stack_rules.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_19_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_10_19_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_21_00_world_creature_template_addon.sql (renamed from sql/old/3.3.5a/2011_10_21_00_world_creature_template_addon.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_00_world_sai.sql (renamed from sql/old/3.3.5a/2011_10_22_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_01_world_quest_relation.sql (renamed from sql/old/3.3.5a/2011_10_22_01_world_quest_relation.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_02_world_gameobject_template.sql (renamed from sql/old/3.3.5a/2011_10_22_02_world_gameobject_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_03_world_sai.sql (renamed from sql/old/3.3.5a/2011_10_22_03_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_04_world_sai.sql (renamed from sql/old/3.3.5a/2011_10_22_04_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_05_world_misc.sql (renamed from sql/old/3.3.5a/2011_10_22_05_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_06_world_sai.sql (renamed from sql/old/3.3.5a/2011_10_22_06_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_07_world_sai.sql (renamed from sql/old/3.3.5a/2011_10_22_07_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_08_world_sai.sql (renamed from sql/old/3.3.5a/2011_10_22_08_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_09_world_sai.sql (renamed from sql/old/3.3.5a/2011_10_22_09_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_10_world_sai.sql (renamed from sql/old/3.3.5a/2011_10_22_10_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_11_world_sai.sql (renamed from sql/old/3.3.5a/2011_10_22_11_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_12_world_sai.sql (renamed from sql/old/3.3.5a/2011_10_22_12_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_13_world_sai.sql (renamed from sql/old/3.3.5a/2011_10_22_13_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_14_world_sai.sql (renamed from sql/old/3.3.5a/2011_10_22_14_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_15_world_core_script_support.sql (renamed from sql/old/3.3.5a/2011_10_22_15_world_core_script_support.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_16_world_core_script_support.sql (renamed from sql/old/3.3.5a/2011_10_22_16_world_core_script_support.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_17_world_conditions.sql (renamed from sql/old/3.3.5a/2011_10_22_17_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_18_world_misc.sql (renamed from sql/old/3.3.5a/2011_10_22_18_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_19_world_sai.sql (renamed from sql/old/3.3.5a/2011_10_22_19_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_23_00_world_sai.sql (renamed from sql/old/3.3.5a/2011_10_23_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_23_01_world_sai.sql (renamed from sql/old/3.3.5a/2011_10_23_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_23_02_world_sai.sql (renamed from sql/old/3.3.5a/2011_10_23_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_23_03_world_sai.sql (renamed from sql/old/3.3.5a/2011_10_23_03_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_23_04_world_sai.sql (renamed from sql/old/3.3.5a/2011_10_23_04_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_23_05_world_misc.sql (renamed from sql/old/3.3.5a/2011_10_23_05_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_23_06_world_sai.sql (renamed from sql/old/3.3.5a/2011_10_23_06_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_23_07_world_creature_templates.sql (renamed from sql/old/3.3.5a/2011_10_23_07_world_creature_templates.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_23_07_world_sai.sql (renamed from sql/old/3.3.5a/2011_10_23_07_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_23_08_world_sai.sql (renamed from sql/old/3.3.5a/2011_10_23_08_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_24_00_world_sai.sql (renamed from sql/old/3.3.5a/2011_10_24_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_24_01_world_creature_text.sql (renamed from sql/old/3.3.5a/2011_10_24_01_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_24_02_world_core_script_support.sql (renamed from sql/old/3.3.5a/2011_10_24_02_world_core_script_support.sql)0
-rw-r--r--sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_28_00_world_version.sql (renamed from sql/old/3.3.5a/2011_10_28_00_world_version.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_10_29_00_world_version.sql (renamed from sql/old/3.3.5a/2011_10_29_00_world_version.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_10_29_01_world_gameobject_template.sql (renamed from sql/old/3.3.5a/2011_10_29_01_world_gameobject_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_10_29_02_world_gameobject_template.sql (renamed from sql/old/3.3.5a/2011_10_29_02_world_gameobject_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_10_29_03_world_gameobject_template.sql (renamed from sql/old/3.3.5a/2011_10_29_03_world_gameobject_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_10_29_04_world_linked_respawn.sql (renamed from sql/old/3.3.5a/2011_10_29_04_world_linked_respawn.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_10_29_05_world_sai.sql (renamed from sql/old/3.3.5a/2011_10_29_05_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_10_29_06_world_misc.sql (renamed from sql/old/3.3.5a/2011_10_29_06_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_10_29_06_world_sai.sql (renamed from sql/old/3.3.5a/2011_10_29_06_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_10_29_07_world_gameobjects.sql (renamed from sql/old/3.3.5a/2011_10_29_07_world_gameobjects.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_10_30_00_world_misc.sql (renamed from sql/old/3.3.5a/2011_10_30_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_10_30_01_world_misc.sql (renamed from sql/old/3.3.5a/2011_10_30_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_10_30_02_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_10_30_02_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_10_30_02_world_player_factionchange_achievement.sql (renamed from sql/old/3.3.5a/2011_10_30_02_world_player_factionchange_achievement.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_01_00_world_sai.sql (renamed from sql/old/3.3.5a/2011_11_01_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_07_00_world_player_factionchange_items.sql (renamed from sql/old/3.3.5a/2011_11_07_00_world_player_factionchange_items.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_07_01_world_areatrigger_teleport.sql (renamed from sql/old/3.3.5a/2011_11_07_01_world_areatrigger_teleport.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_07_02_world_misc.sql (renamed from sql/old/3.3.5a/2011_11_07_02_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_07_03_world_misc.sql (renamed from sql/old/3.3.5a/2011_11_07_03_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_11_00_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_11_11_00_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_11_01_world_misc.sql (renamed from sql/old/3.3.5a/2011_11_11_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_13_00_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_11_13_00_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_13_01_world_sai.sql (renamed from sql/old/3.3.5a/2011_11_13_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_13_02_world_pool_template.sql (renamed from sql/old/3.3.5a/2011_11_13_02_world_pool_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_13_03_world_npc_trainer.sql (renamed from sql/old/3.3.5a/2011_11_13_03_world_npc_trainer.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_13_04_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2011_11_13_04_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_13_05_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2011_11_13_05_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_13_06_world_reference_loot_template.sql (renamed from sql/old/3.3.5a/2011_11_13_06_world_reference_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_13_07_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2011_11_13_07_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_13_08_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2011_11_13_08_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_13_09_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2011_11_13_09_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_13_10_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2011_11_13_10_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_13_11_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2011_11_13_11_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_13_12_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2011_11_13_12_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_00_world_command.sql (renamed from sql/old/3.3.5a/2011_11_20_00_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_01_world_sai.sql (renamed from sql/old/3.3.5a/2011_11_20_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_02_world_sai.sql (renamed from sql/old/3.3.5a/2011_11_20_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_03_world_sai.sql (renamed from sql/old/3.3.5a/2011_11_20_03_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_04_world_sai.sql (renamed from sql/old/3.3.5a/2011_11_20_04_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_05_world_sai.sql (renamed from sql/old/3.3.5a/2011_11_20_05_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_06_world_sai.sql (renamed from sql/old/3.3.5a/2011_11_20_06_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_07_world_sai.sql (renamed from sql/old/3.3.5a/2011_11_20_07_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_08_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_11_20_08_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_09_world_sai.sql (renamed from sql/old/3.3.5a/2011_11_20_09_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_10_world_sai.sql (renamed from sql/old/3.3.5a/2011_11_20_10_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_11_world_sai.sql (renamed from sql/old/3.3.5a/2011_11_20_11_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_12_world_sai.sql (renamed from sql/old/3.3.5a/2011_11_20_12_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_13_world_sai.sql (renamed from sql/old/3.3.5a/2011_11_20_13_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_14_world_revert.sql (renamed from sql/old/3.3.5a/2011_11_20_14_world_revert.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_15_world_sai.sql (renamed from sql/old/3.3.5a/2011_11_20_15_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_21_00_world_db_errors.sql (renamed from sql/old/3.3.5a/2011_11_21_00_world_db_errors.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_21_01_world_pilgrim_achievement_reward.sql (renamed from sql/old/3.3.5a/2011_11_21_01_world_pilgrim_achievement_reward.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_21_02_world_pilgrim_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_11_21_02_world_pilgrim_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_21_03_world_pilgrim_misc.sql (renamed from sql/old/3.3.5a/2011_11_21_03_world_pilgrim_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_21_04_world_pilgrim_misc.sql (renamed from sql/old/3.3.5a/2011_11_21_04_world_pilgrim_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_21_05_world_pilgrim_tables.sql (renamed from sql/old/3.3.5a/2011_11_21_05_world_pilgrim_tables.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/characters/2012_01_04_00_characters_character_queststatus_seasonal.sql (renamed from sql/old/3.3.5a/2012_01_04_00_characters_character_queststatus_seasonal.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_24_00_world_version.sql (renamed from sql/old/3.3.5a/2011_11_24_00_world_version.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_25_00_world_quest_template.sql (renamed from sql/old/3.3.5a/2011_11_25_00_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_25_01_world_quest_template.sql (renamed from sql/old/3.3.5a/2011_11_25_01_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_25_02_world_creature.sql (renamed from sql/old/3.3.5a/2011_11_25_02_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_26_00_world_quest_template.sql (renamed from sql/old/3.3.5a/2011_11_26_00_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_26_01_world_quest_template.sql (renamed from sql/old/3.3.5a/2011_11_26_01_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_26_02_world_spell_group.sql (renamed from sql/old/3.3.5a/2011_11_26_02_world_spell_group.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_26_03_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_11_26_03_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_26_04_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_11_26_04_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_26_04_world_disables.sql (renamed from sql/old/3.3.5a/2011_11_26_04_world_disables.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_26_05_world_ulduar_gameobject.sql (renamed from sql/old/3.3.5a/2011_11_26_05_world_ulduar_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_26_06_world_sai.sql (renamed from sql/old/3.3.5a/2011_11_26_06_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_27_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_11_27_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_27_00_world_spell_script.sql (renamed from sql/old/3.3.5a/2011_11_27_00_world_spell_script.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_28_00_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_11_28_00_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_29_00_world_spell_script.sql (renamed from sql/old/3.3.5a/2011_11_29_00_world_spell_script.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_03_00_world_gameobject.sql (renamed from sql/old/3.3.5a/2011_12_03_00_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_08_00_world_gossip.sql (renamed from sql/old/3.3.5a/2011_12_08_00_world_gossip.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_08_00_world_player_factionchange_achievement.sql (renamed from sql/old/3.3.5a/2011_12_08_00_world_player_factionchange_achievement.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_08_01_world_creature_template_addon.sql (renamed from sql/old/3.3.5a/2011_12_08_01_world_creature_template_addon.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_10_00_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_12_10_00_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_10_01_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_12_10_01_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_12_00_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/2011_12_12_00_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_13_00_world_misc.sql (renamed from sql/old/3.3.5a/2011_12_13_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_13_01_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_12_13_01_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_13_02_world_creature_template_addon.sql (renamed from sql/old/3.3.5a/2011_12_13_02_world_creature_template_addon.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_14_00_world_command.sql (renamed from sql/old/3.3.5a/2011_12_14_00_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_14_01_world_gameobject_template.sql (renamed from sql/old/3.3.5a/2011_12_14_01_world_gameobject_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_16_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2011_12_16_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_16_00_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/2011_12_16_00_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_17_00_world_creature.sql (renamed from sql/old/3.3.5a/2011_12_17_00_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_17_00_world_gameobject.sql (renamed from sql/old/3.3.5a/2011_12_17_00_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_18_00_world_creature_addon.sql (renamed from sql/old/3.3.5a/2011_12_18_00_world_creature_addon.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_18_01_world_gossip.sql (renamed from sql/old/3.3.5a/2011_12_18_01_world_gossip.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_18_02_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_12_18_02_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_18_03_world_trinity_string.sql (renamed from sql/old/3.3.5a/2011_12_18_03_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_18_04_world_misc.sql (renamed from sql/old/3.3.5a/2011_12_18_04_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_18_05_world_misc.sql (renamed from sql/old/3.3.5a/2011_12_18_05_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_18_06_world_sai.sql (renamed from sql/old/3.3.5a/2011_12_18_06_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_18_07_world_conditions.sql (renamed from sql/old/3.3.5a/2011_12_18_07_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_19_00_world_conditions.sql (renamed from sql/old/3.3.5a/2011_12_19_00_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_19_01_world_quest_template.sql (renamed from sql/old/3.3.5a/2011_12_19_01_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_19_02_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2011_12_19_02_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_24_00_world_misc.sql (renamed from sql/old/3.3.5a/2011_12_24_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_24_00_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2011_12_24_00_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_24_01_world_mail_loot_template.sql (renamed from sql/old/3.3.5a/2011_12_24_01_world_mail_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_25_00_world_areatrigger_scriptnames.sql (renamed from sql/old/3.3.5a/2011_12_25_00_world_areatrigger_scriptnames.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_25_00_world_gameobject_scriptnames.sql (renamed from sql/old/3.3.5a/2011_12_25_00_world_gameobject_scriptnames.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_25_00_world_misc.sql (renamed from sql/old/3.3.5a/2011_12_25_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_25_00_world_sai.sql (renamed from sql/old/3.3.5a/2011_12_25_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_25_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2011_12_25_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_25_01_world_areatrigger_scriptnames.sql (renamed from sql/old/3.3.5a/2011_12_25_01_world_areatrigger_scriptnames.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_25_01_world_misc.sql (renamed from sql/old/3.3.5a/2011_12_25_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_25_01_world_sai.sql (renamed from sql/old/3.3.5a/2011_12_25_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_25_02_world_areatrigger_scriptnames.sql (renamed from sql/old/3.3.5a/2011_12_25_02_world_areatrigger_scriptnames.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_25_02_world_misc.sql (renamed from sql/old/3.3.5a/2011_12_25_02_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_25_02_world_sai.sql (renamed from sql/old/3.3.5a/2011_12_25_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_25_03_world_misc.sql (renamed from sql/old/3.3.5a/2011_12_25_03_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_25_03_world_sai.sql (renamed from sql/old/3.3.5a/2011_12_25_03_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_26_00_world_sai.sql (renamed from sql/old/3.3.5a/2011_12_26_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_26_01_world_sai.sql (renamed from sql/old/3.3.5a/2011_12_26_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_26_02_world_sai.sql (renamed from sql/old/3.3.5a/2011_12_26_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_26_03_world_sai.sql (renamed from sql/old/3.3.5a/2011_12_26_03_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_26_04_world_sai.sql (renamed from sql/old/3.3.5a/2011_12_26_04_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_26_05_world_sai.sql (renamed from sql/old/3.3.5a/2011_12_26_05_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_26_06_world_sai.sql (renamed from sql/old/3.3.5a/2011_12_26_06_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_26_07_world_sai.sql (renamed from sql/old/3.3.5a/2011_12_26_07_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_26_08_world_sai.sql (renamed from sql/old/3.3.5a/2011_12_26_08_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_02_00_world_sai.sql (renamed from sql/old/3.3.5a/2012_01_02_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_02_01_world_game_event.sql (renamed from sql/old/3.3.5a/2012_01_02_01_world_game_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_02_02_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_01_02_02_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_02_03_world_creature_onkill_reputation.sql (renamed from sql/old/3.3.5a/2012_01_02_03_world_creature_onkill_reputation.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_03_00_world_gossip_menu.sql (renamed from sql/old/3.3.5a/2012_01_03_00_world_gossip_menu.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_03_01_world_quest_template.sql (renamed from sql/old/3.3.5a/2012_01_03_01_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_03_02_world_sai.sql (renamed from sql/old/3.3.5a/2012_01_03_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_03_03_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_01_03_03_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_03_04_world_gameobject_questrelation.sql (renamed from sql/old/3.3.5a/2012_01_03_04_world_gameobject_questrelation.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_03_05_world_creature.sql (renamed from sql/old/3.3.5a/2012_01_03_05_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_03_06_world_sai.sql (renamed from sql/old/3.3.5a/2012_01_03_06_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_03_07_world_creature.sql (renamed from sql/old/3.3.5a/2012_01_03_07_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_00_world_gossip_menu.sql (renamed from sql/old/3.3.5a/2012_01_04_00_world_gossip_menu.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_01_world_game_event_seasonal_questrelation.sql (renamed from sql/old/3.3.5a/2012_01_04_01_world_game_event_seasonal_questrelation.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_02_world_achievements.sql (renamed from sql/old/3.3.5a/2012_01_04_02_world_achievements.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_02_world_sai.sql (renamed from sql/old/3.3.5a/2012_01_04_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_03_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_01_04_03_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_04_world_creature.sql (renamed from sql/old/3.3.5a/2012_01_04_04_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_04_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_01_04_04_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_05_world_waypoint_data.sql (renamed from sql/old/3.3.5a/2012_01_04_05_world_waypoint_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_06_world_waypoint_data.sql (renamed from sql/old/3.3.5a/2012_01_04_06_world_waypoint_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_07_world_gossip_menu.sql (renamed from sql/old/3.3.5a/2012_01_04_07_world_gossip_menu.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_08_world_gossip_menu.sql (renamed from sql/old/3.3.5a/2012_01_04_08_world_gossip_menu.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_09_world_gossip_menu.sql (renamed from sql/old/3.3.5a/2012_01_04_09_world_gossip_menu.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_10_world_gossip_menu.sql (renamed from sql/old/3.3.5a/2012_01_04_10_world_gossip_menu.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_11_world_gossip_menu.sql (renamed from sql/old/3.3.5a/2012_01_04_11_world_gossip_menu.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_12_world_gosip_menu.sql (renamed from sql/old/3.3.5a/2012_01_04_12_world_gosip_menu.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_13_world_gossip_menu.sql (renamed from sql/old/3.3.5a/2012_01_04_13_world_gossip_menu.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_14_world_gossip_menu.sql (renamed from sql/old/3.3.5a/2012_01_04_14_world_gossip_menu.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_15_world_gossip_menu.sql (renamed from sql/old/3.3.5a/2012_01_04_15_world_gossip_menu.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_00_world_script_texts.sql (renamed from sql/old/3.3.5a/2012_01_05_00_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_01_world_gameobject.sql (renamed from sql/old/3.3.5a/2012_01_05_01_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_02_world_gameobject_template.sql (renamed from sql/old/3.3.5a/2012_01_05_02_world_gameobject_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_03_world_creature_model_info.sql (renamed from sql/old/3.3.5a/2012_01_05_03_world_creature_model_info.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_04_world_gameobject.sql (renamed from sql/old/3.3.5a/2012_01_05_04_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_05_world_creature.sql (renamed from sql/old/3.3.5a/2012_01_05_05_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_06_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_01_05_06_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_07_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_01_05_07_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_08_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_01_05_08_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_09_world_waypoint_data.sql (renamed from sql/old/3.3.5a/2012_01_05_09_world_waypoint_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_10_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_01_05_10_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_11_world_creature_onkill_reputation.sql (renamed from sql/old/3.3.5a/2012_01_05_11_world_creature_onkill_reputation.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_12_world_game_event_seasonal_questrelation.sql (renamed from sql/old/3.3.5a/2012_01_05_12_world_game_event_seasonal_questrelation.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_13_world_creature_transport.sql (renamed from sql/old/3.3.5a/2012_01_05_13_world_creature_transport.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_14_world_command.sql (renamed from sql/old/3.3.5a/2012_01_05_14_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_14_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_01_05_14_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_00_world_creature_template_addon.sql (renamed from sql/old/3.3.5a/2012_01_06_00_world_creature_template_addon.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_00_world_misc.sql (renamed from sql/old/3.3.5a/2012_01_06_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_01_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_01_06_01_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_02_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2012_01_06_02_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_03_world_item_loot_template.sql (renamed from sql/old/3.3.5a/2012_01_06_03_world_item_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_04_world_creature_questrelation.sql (renamed from sql/old/3.3.5a/2012_01_06_04_world_creature_questrelation.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_05_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_01_06_05_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_06_world_quest_template.sql (renamed from sql/old/3.3.5a/2012_01_06_06_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_07_world_sai.sql (renamed from sql/old/3.3.5a/2012_01_06_07_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_08_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_01_06_08_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_09_world_creature_questrelation.sql (renamed from sql/old/3.3.5a/2012_01_06_09_world_creature_questrelation.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_10_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_01_06_10_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_11_world_sai.sql (renamed from sql/old/3.3.5a/2012_01_06_11_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_12_world_sai.sql (renamed from sql/old/3.3.5a/2012_01_06_12_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_07_00_world_creature_addon.sql (renamed from sql/old/3.3.5a/2012_01_07_00_world_creature_addon.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_07_01_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_01_07_01_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_07_02_world_gameobject_template.sql (renamed from sql/old/3.3.5a/2012_01_07_02_world_gameobject_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_07_03_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_01_07_03_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_07_04_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2012_01_07_04_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_07_05_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2012_01_07_05_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/characters/2012_01_14_00_characters_lfg_data.sql (renamed from sql/old/3.3.5a/2012_01_14_00_characters_lfg_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/characters/2012_01_23_00_characters_character_queststatus_rewarded.sql (renamed from sql/old/3.3.5a/2012_01_23_00_characters_character_queststatus_rewarded.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_00_world_version.sql (renamed from sql/old/3.3.5a/2012_01_08_00_world_version.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_01_world_sai.sql (renamed from sql/old/3.3.5a/2012_01_08_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_02_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_01_08_02_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_03_world_gossip_menu.sql (renamed from sql/old/3.3.5a/2012_01_08_03_world_gossip_menu.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_04_world_quest_template.sql (renamed from sql/old/3.3.5a/2012_01_08_04_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_05_world_conditions.sql (renamed from sql/old/3.3.5a/2012_01_08_05_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_06_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_01_08_06_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_07_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_01_08_07_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_08_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_01_08_08_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_09_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_01_08_09_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_11_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_01_08_11_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_12_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_01_08_12_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_13_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_01_08_13_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_14_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_01_08_14_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_15_world_script_texts.sql (renamed from sql/old/3.3.5a/2012_01_08_15_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_16_world_misc.sql (renamed from sql/old/3.3.5a/2012_01_08_16_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_18_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2012_01_08_18_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_18_world_creature_addon.sql (renamed from sql/old/3.3.5a/2012_01_08_18_world_creature_addon.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_18_world_spell_linked_spell.sql (renamed from sql/old/3.3.5a/2012_01_08_18_world_spell_linked_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_18_world_waypoint_data.sql (renamed from sql/old/3.3.5a/2012_01_08_18_world_waypoint_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_18_world_waypoint_scripts.sql (renamed from sql/old/3.3.5a/2012_01_08_18_world_waypoint_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_19_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2012_01_08_19_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_09_00_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_01_09_00_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_09_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_01_09_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_09_01_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2012_01_09_01_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_09_01_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_01_09_01_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_09_01_world_smart_scripts.sql (renamed from sql/old/3.3.5a/2012_01_09_01_world_smart_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_11_00_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2012_01_11_00_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_11_00_world_disables.sql (renamed from sql/old/3.3.5a/2012_01_11_00_world_disables.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_11_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_01_11_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_11_01_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2012_01_11_01_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_11_01_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_01_11_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_12_00_world_sai.sql (renamed from sql/old/3.3.5a/2012_01_12_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_13_00_world_creature.sql (renamed from sql/old/3.3.5a/2012_01_13_00_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_13_01_world_gossip_menu.sql (renamed from sql/old/3.3.5a/2012_01_13_01_world_gossip_menu.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_13_02_world_sai.sql (renamed from sql/old/3.3.5a/2012_01_13_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_13_03_world_gossip_menu.sql (renamed from sql/old/3.3.5a/2012_01_13_03_world_gossip_menu.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_13_04_world_creature_texts.sql (renamed from sql/old/3.3.5a/2012_01_13_04_world_creature_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_13_05_world_creature_texts.sql (renamed from sql/old/3.3.5a/2012_01_13_05_world_creature_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_13_06_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_01_13_06_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_14_00_world_gossip_menu.sql (renamed from sql/old/3.3.5a/2012_01_14_00_world_gossip_menu.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_14_01_world_npc_trainer.sql (renamed from sql/old/3.3.5a/2012_01_14_01_world_npc_trainer.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_14_02_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2012_01_14_02_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_14_03_world_trinity_string.sql (renamed from sql/old/3.3.5a/2012_01_14_03_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_15_00_world_loot_template.sql (renamed from sql/old/3.3.5a/2012_01_15_00_world_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_15_02_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_01_15_02_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_15_03_world_item_loot_template.sql (renamed from sql/old/3.3.5a/2012_01_15_03_world_item_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_16_00_world_stored_procedure.sql (renamed from sql/old/3.3.5a/2012_01_16_00_world_stored_procedure.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_16_01_world_sai.sql (renamed from sql/old/3.3.5a/2012_01_16_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_16_02_world_sai.sql (renamed from sql/old/3.3.5a/2012_01_16_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_16_03_world_sai.sql (renamed from sql/old/3.3.5a/2012_01_16_03_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_16_04_world_sai.sql (renamed from sql/old/3.3.5a/2012_01_16_04_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_16_05_world_sai.sql (renamed from sql/old/3.3.5a/2012_01_16_05_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_16_06_world_sai.sql (renamed from sql/old/3.3.5a/2012_01_16_06_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_16_07_world_sai.sql (renamed from sql/old/3.3.5a/2012_01_16_07_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_16_08_world_sai.sql (renamed from sql/old/3.3.5a/2012_01_16_08_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_16_09_world_sai.sql (renamed from sql/old/3.3.5a/2012_01_16_09_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_17_00_world_misc.sql (renamed from sql/old/3.3.5a/2012_01_17_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_17_01_world_conditions.sql (renamed from sql/old/3.3.5a/2012_01_17_01_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_19_00_world_quest_template.sql (renamed from sql/old/3.3.5a/2012_01_19_00_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_19_01_world_sai.sql (renamed from sql/old/3.3.5a/2012_01_19_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_19_02_world_quest_template.sql (renamed from sql/old/3.3.5a/2012_01_19_02_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_19_03_world_sai.sql (renamed from sql/old/3.3.5a/2012_01_19_03_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_19_04_world_sai.sql (renamed from sql/old/3.3.5a/2012_01_19_04_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_19_05_world_sai.sql (renamed from sql/old/3.3.5a/2012_01_19_05_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_19_06_world_sai.sql (renamed from sql/old/3.3.5a/2012_01_19_06_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_19_07_world_sai.sql (renamed from sql/old/3.3.5a/2012_01_19_07_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_19_08_world_sai.sql (renamed from sql/old/3.3.5a/2012_01_19_08_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_21_00_world_creature.sql (renamed from sql/old/3.3.5a/2012_01_21_00_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_21_00_world_sai.sql (renamed from sql/old/3.3.5a/2012_01_21_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_21_01_world_npc_vendor.sql (renamed from sql/old/3.3.5a/2012_01_21_01_world_npc_vendor.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_21_02_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2012_01_21_02_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_22_00_world_command.sql (renamed from sql/old/3.3.5a/2012_01_22_00_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_22_00_world_sai.sql (renamed from sql/old/3.3.5a/2012_01_22_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_22_01_world_conditions.sql (renamed from sql/old/3.3.5a/2012_01_22_01_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_22_02_world_creature_addon.sql (renamed from sql/old/3.3.5a/2012_01_22_02_world_creature_addon.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_23_00_world_game_event_seasonal_questrelation.sql (renamed from sql/old/3.3.5a/2012_01_23_00_world_game_event_seasonal_questrelation.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_23_00_world_sai.sql (renamed from sql/old/3.3.5a/2012_01_23_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_23_01_world_creature_script_names.sql (renamed from sql/old/3.3.5a/2012_01_23_01_world_creature_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_23_02_world_disables.sql (renamed from sql/old/3.3.5a/2012_01_23_02_world_disables.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_23_03_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2012_01_23_03_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_23_04_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_01_23_04_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_23_05_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_01_23_05_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_23_06_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2012_01_23_06_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_23_07_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_01_23_07_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_24_00_world_misc.sql (renamed from sql/old/3.3.5a/2012_01_24_00_world_misc.sql)2
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_24_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_01_24_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_26_00_world_sai.sql (renamed from sql/old/3.3.5a/2012_01_26_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_27_00_world_player_factionchange_items.sql (renamed from sql/old/3.3.5a/2012_01_27_00_world_player_factionchange_items.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_28_00_world_conditions.sql (renamed from sql/old/3.3.5a/2012_01_28_00_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_29_00_world_conditions.sql (renamed from sql/old/3.3.5a/2012_01_29_00_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_29_00_world_spell_dbc.sql (renamed from sql/old/3.3.5a/2012_01_29_00_world_spell_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_29_01_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/2012_01_29_01_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_29_02_world_spell_trigger_spell.sql (renamed from sql/old/3.3.5a/2012_01_29_02_world_spell_trigger_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_29_03_world_misc.sql (renamed from sql/old/3.3.5a/2012_01_29_03_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_29_04_world_misc.sql (renamed from sql/old/3.3.5a/2012_01_29_04_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_30_00_world_conditions.sql (renamed from sql/old/3.3.5a/2012_01_30_00_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_30_01_world_conditions.sql (renamed from sql/old/3.3.5a/2012_01_30_01_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_30_01_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_01_30_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_30_02_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2012_01_30_02_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_30_03_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2012_01_30_03_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_30_04_world_gameobject_loot_template.sql (renamed from sql/old/3.3.5a/2012_01_30_04_world_gameobject_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_30_05_world_gameobject_loot_template.sql (renamed from sql/old/3.3.5a/2012_01_30_05_world_gameobject_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_31_00_world_gameobject_loot_template.sql (renamed from sql/old/3.3.5a/2012_01_31_00_world_gameobject_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_31_01_world_misc.sql (renamed from sql/old/3.3.5a/2012_01_31_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_01_00_world_misc.sql (renamed from sql/old/3.3.5a/2012_02_01_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_02_00_world_item_loot_template.sql (renamed from sql/old/3.3.5a/2012_02_02_00_world_item_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_03_00_world_gossip_menu.sql (renamed from sql/old/3.3.5a/2012_02_03_00_world_gossip_menu.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_03_01_world_quest_template.sql (renamed from sql/old/3.3.5a/2012_02_03_01_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_04_00_world_creature.sql (renamed from sql/old/3.3.5a/2012_02_04_00_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_04_00_world_gameobject_template.sql (renamed from sql/old/3.3.5a/2012_02_04_00_world_gameobject_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_04_00_world_gossip_menu.sql (renamed from sql/old/3.3.5a/2012_02_04_00_world_gossip_menu.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_04_01_world_creature.sql (renamed from sql/old/3.3.5a/2012_02_04_01_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_05_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_02_05_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_05_00_world_misc.sql (renamed from sql/old/3.3.5a/2012_02_05_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_05_01_world_game_event.sql (renamed from sql/old/3.3.5a/2012_02_05_01_world_game_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_05_02_world_creature.sql (renamed from sql/old/3.3.5a/2012_02_05_02_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_05_03_world_game_event.sql (renamed from sql/old/3.3.5a/2012_02_05_03_world_game_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_05_04_world_misc.sql (renamed from sql/old/3.3.5a/2012_02_05_04_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_05_04_world_quest_template.sql (renamed from sql/old/3.3.5a/2012_02_05_04_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_06_00_world_misc.sql (renamed from sql/old/3.3.5a/2012_02_06_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_07_00_world_misc.sql (renamed from sql/old/3.3.5a/2012_02_07_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_00_world_misc.sql (renamed from sql/old/3.3.5a/2012_02_08_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_01_world_misc.sql (renamed from sql/old/3.3.5a/2012_02_08_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_02_world_misc.sql (renamed from sql/old/3.3.5a/2012_02_08_02_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_03_world_misc.sql (renamed from sql/old/3.3.5a/2012_02_08_03_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_04_world_misc.sql (renamed from sql/old/3.3.5a/2012_02_08_04_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_05_world_gameobject.sql (renamed from sql/old/3.3.5a/2012_02_08_05_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_06_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2012_02_08_06_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_07_world_pool.sql (renamed from sql/old/3.3.5a/2012_02_08_07_world_pool.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_08_world_pool.sql (renamed from sql/old/3.3.5a/2012_02_08_08_world_pool.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_09_world_quest_template.sql (renamed from sql/old/3.3.5a/2012_02_08_09_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_10_world_gossip.sql (renamed from sql/old/3.3.5a/2012_02_08_10_world_gossip.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_11_world_pool.sql (renamed from sql/old/3.3.5a/2012_02_08_11_world_pool.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_12_world_sai.sql (renamed from sql/old/3.3.5a/2012_02_08_12_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_13_world_gameobject.sql (renamed from sql/old/3.3.5a/2012_02_08_13_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_14_world_sai.sql (renamed from sql/old/3.3.5a/2012_02_08_14_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_15_world_misc.sql (renamed from sql/old/3.3.5a/2012_02_08_15_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_16_world_sai.sql (renamed from sql/old/3.3.5a/2012_02_08_16_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_10_00_world_conditions.sql (renamed from sql/old/3.3.5a/2012_02_10_00_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_10_01_world_gameobject.sql (renamed from sql/old/3.3.5a/2012_02_10_01_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_10_02_world_conditions.sql (renamed from sql/old/3.3.5a/2012_02_10_02_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_10_03_world_conditions.sql (renamed from sql/old/3.3.5a/2012_02_10_03_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_10_04_world_conditions.sql (renamed from sql/old/3.3.5a/2012_02_10_04_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_11_00_world_creature.sql (renamed from sql/old/3.3.5a/2012_02_11_00_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_11_01_world_creature.sql (renamed from sql/old/3.3.5a/2012_02_11_01_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_11_02_world_pool.sql (renamed from sql/old/3.3.5a/2012_02_11_02_world_pool.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_11_03_world_areatrigger.sql (renamed from sql/old/3.3.5a/2012_02_11_03_world_areatrigger.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_11_04_world_sai.sql (renamed from sql/old/3.3.5a/2012_02_11_04_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_11_05_world_sai.sql (renamed from sql/old/3.3.5a/2012_02_11_05_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_11_06_world_sai.sql (renamed from sql/old/3.3.5a/2012_02_11_06_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_11_07_world_sai.sql (renamed from sql/old/3.3.5a/2012_02_11_07_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_11_08_world_sai.sql (renamed from sql/old/3.3.5a/2012_02_11_08_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_11_09_world_sai_gossip.sql (renamed from sql/old/3.3.5a/2012_02_11_09_world_sai_gossip.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_11_10_world_sai.sql (renamed from sql/old/3.3.5a/2012_02_11_10_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_12_00_world_gossip.sql (renamed from sql/old/3.3.5a/2012_02_12_00_world_gossip.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_12_01_world_sai.sql (renamed from sql/old/3.3.5a/2012_02_12_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_12_02_world_creature.sql (renamed from sql/old/3.3.5a/2012_02_12_02_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_12_03_world_waypoint_data.sql (renamed from sql/old/3.3.5a/2012_02_12_03_world_waypoint_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_12_04_world_sai.sql (renamed from sql/old/3.3.5a/2012_02_12_04_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/auth/2012_02_19_00_auth_account.sql (renamed from sql/old/3.3.5a/2012_02_19_00_auth_account.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/auth/2012_03_25_00_auth_misc.sql (renamed from sql/old/3.3.5a/2012_03_25_00_auth_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/auth/2012_03_26_00_auth_realmlist.sql (renamed from sql/old/3.3.5a/2012_03_26_00_auth_realmlist.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/auth/2012_03_28_00_auth_account.sql (renamed from sql/old/3.3.5a/2012_03_28_00_auth_account.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/auth/2012_03_28_01_auth_account_access.sql (renamed from sql/old/3.3.5a/2012_03_28_01_auth_account_access.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/auth/2012_03_28_02_auth_account_banned.sql (renamed from sql/old/3.3.5a/2012_03_28_02_auth_account_banned.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/auth/2012_03_28_03_auth_ip_banned.sql (renamed from sql/old/3.3.5a/2012_03_28_03_auth_ip_banned.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/auth/2012_03_28_04_auth_logs.sql (renamed from sql/old/3.3.5a/2012_03_28_04_auth_logs.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/auth/2012_03_28_05_auth_realmcharacters.sql (renamed from sql/old/3.3.5a/2012_03_28_05_auth_realmcharacters.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/auth/2012_03_28_06_auth_realmlist.sql (renamed from sql/old/3.3.5a/2012_03_28_06_auth_realmlist.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/auth/2012_03_28_07_auth_uptime.sql (renamed from sql/old/3.3.5a/2012_03_28_07_auth_uptime.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/auth/2012_04_01_00_auth_realmlist.sql (renamed from sql/old/3.3.5a/2012_04_01_00_auth_realmlist.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/auth/2012_04_04_00_auth_realmlist.sql (renamed from sql/old/3.3.5a/2012_04_04_00_auth_realmlist.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/characters/2012_02_19_00_characters_warden_action.sql (renamed from sql/old/3.3.5a/2012_02_19_00_characters_warden_action.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/characters/2012_04_07_00_characters_lag_reports.sql (renamed from sql/old/3.3.5a/2012_04_07_00_characters_lag_reports.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_13_00_world_version.sql (renamed from sql/old/3.3.5a/2012_02_13_00_world_version.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_14_00_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2012_02_14_00_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_15_00_world_quest_template.sql (renamed from sql/old/3.3.5a/2012_02_15_00_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_15_01_world_areatrigger_tavern.sql (renamed from sql/old/3.3.5a/2012_02_15_01_world_areatrigger_tavern.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_15_02_world_item_template.sql (renamed from sql/old/3.3.5a/2012_02_15_02_world_item_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_15_03_world_quest_template.sql (renamed from sql/old/3.3.5a/2012_02_15_03_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_15_04_world_quest_template.sql (renamed from sql/old/3.3.5a/2012_02_15_04_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_15_06_world_creature_involvedrelation.sql (renamed from sql/old/3.3.5a/2012_02_15_06_world_creature_involvedrelation.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_15_07_00_world_creature.sql (renamed from sql/old/3.3.5a/2012_02_15_07_00_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_15_07_01_world_waypoint_data.sql (renamed from sql/old/3.3.5a/2012_02_15_07_01_world_waypoint_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_15_07_02_world_misc.sql (renamed from sql/old/3.3.5a/2012_02_15_07_02_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_15_08_world_sai.sql (renamed from sql/old/3.3.5a/2012_02_15_08_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_15_09_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2012_02_15_09_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_16_00_world_conditions.sql (renamed from sql/old/3.3.5a/2012_02_16_00_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_16_01_world_conditions.sql (renamed from sql/old/3.3.5a/2012_02_16_01_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_17_00_world_waypoints.sql (renamed from sql/old/3.3.5a/2012_02_17_00_world_waypoints.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_18_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_02_18_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_18_01_world_spell_dbc.sql (renamed from sql/old/3.3.5a/2012_02_18_01_world_spell_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_18_02_world_gossip.sql (renamed from sql/old/3.3.5a/2012_02_18_02_world_gossip.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_18_03_world_gossip.sql (renamed from sql/old/3.3.5a/2012_02_18_03_world_gossip.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_18_04_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_02_18_04_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_18_05_world_creatures.sql (renamed from sql/old/3.3.5a/2012_02_18_05_world_creatures.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_18_06_world_gossip.sql (renamed from sql/old/3.3.5a/2012_02_18_06_world_gossip.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_18_07_world_gossip.sql (renamed from sql/old/3.3.5a/2012_02_18_07_world_gossip.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_18_08_world_gossip.sql (renamed from sql/old/3.3.5a/2012_02_18_08_world_gossip.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_19_00_world_quest_template.sql (renamed from sql/old/3.3.5a/2012_02_19_00_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_19_01_world_quest_template.sql (renamed from sql/old/3.3.5a/2012_02_19_01_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_19_02_world_gameobject.sql (renamed from sql/old/3.3.5a/2012_02_19_02_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_19_03_world_warden_checks.sql (renamed from sql/old/3.3.5a/2012_02_19_03_world_warden_checks.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_19_04_world_misc_db_updates.sql (renamed from sql/old/3.3.5a/2012_02_19_04_world_misc_db_updates.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_19_05_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_02_19_05_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_19_06_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_02_19_06_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_20_00_world_sai.sql (renamed from sql/old/3.3.5a/2012_02_20_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_20_01_world_gossip.sql (renamed from sql/old/3.3.5a/2012_02_20_01_world_gossip.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_20_02_world_conditons.sql (renamed from sql/old/3.3.5a/2012_02_20_02_world_conditons.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_21_00_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2012_02_21_00_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_21_01_world_conditions.sql (renamed from sql/old/3.3.5a/2012_02_21_01_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_21_02_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2012_02_21_02_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_21_03_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2012_02_21_03_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_21_04_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2012_02_21_04_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_21_05_world_gossip.sql (renamed from sql/old/3.3.5a/2012_02_21_05_world_gossip.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_21_06_world_Gossip.sql (renamed from sql/old/3.3.5a/2012_02_21_06_world_Gossip.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_22_00_world_sai.sql (renamed from sql/old/3.3.5a/2012_02_22_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_22_01_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_02_22_01_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_22_02_world_misc.sql (renamed from sql/old/3.3.5a/2012_02_22_02_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_22_03_world_conditions.sql (renamed from sql/old/3.3.5a/2012_02_22_03_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_23_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_02_23_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_24_00_world_gameobject_loot_template.sql (renamed from sql/old/3.3.5a/2012_02_24_00_world_gameobject_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_24_01_world_sai.sql (renamed from sql/old/3.3.5a/2012_02_24_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_25_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_02_25_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_25_01_world_command.sql (renamed from sql/old/3.3.5a/2012_02_25_01_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_25_01_world_misc.sql (renamed from sql/old/3.3.5a/2012_02_25_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_25_02_world_sai.sql (renamed from sql/old/3.3.5a/2012_02_25_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_26_00_world_misc.sql (renamed from sql/old/3.3.5a/2012_02_26_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_26_01_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_02_26_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_27_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_02_27_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_28_00_world_wintergrasp_spawns.sql (renamed from sql/old/3.3.5a/2012_02_28_00_world_wintergrasp_spawns.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_29_00_world_conditions_misc.sql (renamed from sql/old/3.3.5a/2012_02_29_00_world_conditions_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_29_01_world_conditions.sql (renamed from sql/old/3.3.5a/2012_02_29_01_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_29_02_world_conditions.sql (renamed from sql/old/3.3.5a/2012_02_29_02_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_29_03_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_02_29_03_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_29_04_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_02_29_04_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_29_05_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_02_29_05_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_01_00_world_conditions.sql (renamed from sql/old/3.3.5a/2012_03_01_00_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_01_01_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_03_01_01_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_01_02_world_locales_creature_text.sql (renamed from sql/old/3.3.5a/2012_03_01_02_world_locales_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_03_00_world_command.sql (renamed from sql/old/3.3.5a/2012_03_03_00_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_04_00_world_misc.sql (renamed from sql/old/3.3.5a/2012_03_04_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_04_01_world_areatrigger_scripts.sql (renamed from sql/old/3.3.5a/2012_03_04_01_world_areatrigger_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_06_00_world_commands.sql (renamed from sql/old/3.3.5a/2012_03_06_00_world_commands.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_06_01_world_misc.sql (renamed from sql/old/3.3.5a/2012_03_06_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_06_02_world_queststatus_seasonal.sql (renamed from sql/old/3.3.5a/2012_03_06_02_world_queststatus_seasonal.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_06_03_world_smart_scripts.sql (renamed from sql/old/3.3.5a/2012_03_06_03_world_smart_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_06_04_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_03_06_04_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_07_00_world_trinity_string.sql (renamed from sql/old/3.3.5a/2012_03_07_00_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_10_00_world_creature.sql (renamed from sql/old/3.3.5a/2012_03_10_00_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_10_00_world_smart_scripts.sql (renamed from sql/old/3.3.5a/2012_03_10_00_world_smart_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_10_00_world_waypoint_data.sql (renamed from sql/old/3.3.5a/2012_03_10_00_world_waypoint_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_11_00_world_sai.sql (renamed from sql/old/3.3.5a/2012_03_11_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_12_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_03_12_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_12_01_world_conditions.sql (renamed from sql/old/3.3.5a/2012_03_12_01_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_12_01_world_gameobject.sql (renamed from sql/old/3.3.5a/2012_03_12_01_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_12_01_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_03_12_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_14_00_world_creature_addon.sql (renamed from sql/old/3.3.5a/2012_03_14_00_world_creature_addon.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_19_00_world_smart_scripts.sql (renamed from sql/old/3.3.5a/2012_03_19_00_world_smart_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_20_00_world_gossip.sql (renamed from sql/old/3.3.5a/2012_03_20_00_world_gossip.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_21_00_world_creature.sql (renamed from sql/old/3.3.5a/2012_03_21_00_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_22_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_03_22_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_22_01_world_conditions.sql (renamed from sql/old/3.3.5a/2012_03_22_01_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_23_00_world_ip2nation.sql (renamed from sql/old/3.3.5a/2012_03_23_00_world_ip2nation.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_24_00_world_misc.sql (renamed from sql/old/3.3.5a/2012_03_24_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_24_01_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2012_03_24_01_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_24_02_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2012_03_24_02_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_25_00_world_game_event.sql (renamed from sql/old/3.3.5a/2012_03_25_00_world_game_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_26_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_03_26_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_26_01_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_03_26_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_27_00_world_misc.sql (renamed from sql/old/3.3.5a/2012_03_27_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_27_01_world_misc.sql (renamed from sql/old/3.3.5a/2012_03_27_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_27_02_world_misc.sql (renamed from sql/old/3.3.5a/2012_03_27_02_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_27_03_world_misc.sql (renamed from sql/old/3.3.5a/2012_03_27_03_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_27_04_world_misc.sql (renamed from sql/old/3.3.5a/2012_03_27_04_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_28_01_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/2012_03_28_01_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_30_00_world_smart_scripts.sql (renamed from sql/old/3.3.5a/2012_03_30_00_world_smart_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_31_00_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2012_03_31_00_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_01_00_world_creature.sql (renamed from sql/old/3.3.5a/2012_04_01_00_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_01_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_04_01_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_01_01_world_creature.sql (renamed from sql/old/3.3.5a/2012_04_01_01_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_01_02_world_spell_group_stack_rules.sql (renamed from sql/old/3.3.5a/2012_04_01_02_world_spell_group_stack_rules.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_01_03_world_trainers.sql (renamed from sql/old/3.3.5a/2012_04_01_03_world_trainers.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_01_04_world_conditions.sql (renamed from sql/old/3.3.5a/2012_04_01_04_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_01_05_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_04_01_05_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_01_06_world_sai.sql (renamed from sql/old/3.3.5a/2012_04_01_06_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_01_07_world_misc.sql (renamed from sql/old/3.3.5a/2012_04_01_07_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_03_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_04_03_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_04_00_world_conditions.sql (renamed from sql/old/3.3.5a/2012_04_04_00_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_04_01_world_spell_dbc.sql (renamed from sql/old/3.3.5a/2012_04_04_01_world_spell_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_05_00_world_gameobject_template.sql (renamed from sql/old/3.3.5a/2012_04_05_00_world_gameobject_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_05_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_04_05_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_05_01_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2012_04_05_01_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_06_00_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2012_04_06_00_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_06_01_world_spell_dbc.sql (renamed from sql/old/3.3.5a/2012_04_06_01_world_spell_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_06_02_world_gameobject_template.sql (renamed from sql/old/3.3.5a/2012_04_06_02_world_gameobject_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_06_03_world_spell_dbc.sql (renamed from sql/old/3.3.5a/2012_04_06_03_world_spell_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_06_04_world_page_text.sql (renamed from sql/old/3.3.5a/2012_04_06_04_world_page_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_07_00_world_gameobject.sql (renamed from sql/old/3.3.5a/2012_04_07_00_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_07_01_world_game_event.sql (renamed from sql/old/3.3.5a/2012_04_07_01_world_game_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_07_02_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2012_04_07_02_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_08_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_04_08_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_08_01_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_04_08_01_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_08_02_world_spell_dbc.sql (renamed from sql/old/3.3.5a/2012_04_08_02_world_spell_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_08_02_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_04_08_02_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_08_03_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_04_08_03_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_12_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_04_12_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_12_01_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_04_12_01_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_12_02_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/2012_04_12_02_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_12_03_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/2012_04_12_03_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_12_04_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_04_12_04_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_12_05_world_command.sql (renamed from sql/old/3.3.5a/2012_04_12_05_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_13_00_world_sai.sql (renamed from sql/old/3.3.5a/2012_04_13_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_13_01_world_misc.sql (renamed from sql/old/3.3.5a/2012_04_13_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_13_02_world_misc.sql (renamed from sql/old/3.3.5a/2012_04_13_02_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_13_03_world_bg_template.sql (renamed from sql/old/3.3.5a/2012_04_13_03_world_bg_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_13_04_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2012_04_13_04_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_14_00_world_gameobject_loot_template.sql (renamed from sql/old/3.3.5a/2012_04_14_00_world_gameobject_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_14_01_world_gameobject_loot_template.sql (renamed from sql/old/3.3.5a/2012_04_14_01_world_gameobject_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_14_02_world_creature_template_addon.sql (renamed from sql/old/3.3.5a/2012_04_14_02_world_creature_template_addon.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_14_03_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/2012_04_14_03_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_14_04_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2012_04_14_04_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_14_05_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2012_04_14_05_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_16_00_world_game_event.sql (renamed from sql/old/3.3.5a/2012_04_16_00_world_game_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_17_00_world_creature.sql (renamed from sql/old/3.3.5a/2012_04_17_00_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_18_00_world_npc_spellclick_spells.sql (renamed from sql/old/3.3.5a/2012_04_18_00_world_npc_spellclick_spells.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_18_01_world_creature.sql (renamed from sql/old/3.3.5a/2012_04_18_01_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_18_02_world_reference_loot_template.sql (renamed from sql/old/3.3.5a/2012_04_18_02_world_reference_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_18_03_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2012_04_18_03_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_18_04_world_pickpocketing_loot_template.sql (renamed from sql/old/3.3.5a/2012_04_18_04_world_pickpocketing_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_18_05_world_conditions.sql (renamed from sql/old/3.3.5a/2012_04_18_05_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_18_06_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_04_18_06_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_18_07_world_fishing_loot_template.sql (renamed from sql/old/3.3.5a/2012_04_18_07_world_fishing_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_18_08_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2012_04_18_08_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_19_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_04_19_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_19_01_world_pickpocketing_loot_template.sql (renamed from sql/old/3.3.5a/2012_04_19_01_world_pickpocketing_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_19_02_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2012_04_19_02_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_19_03_world_instance_ulduar.sql (renamed from sql/old/3.3.5a/2012_04_19_03_world_instance_ulduar.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_20_00_world_gameobject_loot_template.sql (renamed from sql/old/3.3.5a/2012_04_20_00_world_gameobject_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_20_01_world_item_loot_template.sql (renamed from sql/old/3.3.5a/2012_04_20_01_world_item_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_20_02_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2012_04_20_02_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_20_03_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2012_04_20_03_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_20_04_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2012_04_20_04_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_20_05_world_gameobject_template.sql (renamed from sql/old/3.3.5a/2012_04_20_05_world_gameobject_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_21_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_04_21_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_22_00_world_sai.sql (renamed from sql/old/3.3.5a/2012_04_22_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_23_00_world_creatures.sql (renamed from sql/old/3.3.5a/2012_04_23_00_world_creatures.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_23_01_world_conditions.sql (renamed from sql/old/3.3.5a/2012_04_23_01_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_23_02_world_prospecting_loot_template.sql (renamed from sql/old/3.3.5a/2012_04_23_02_world_prospecting_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_23_03_world_skinning_loot_template.sql (renamed from sql/old/3.3.5a/2012_04_23_03_world_skinning_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_23_04_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2012_04_23_04_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_23_05_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2012_04_23_05_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_24_00_world_command.sql (renamed from sql/old/3.3.5a/2012_04_24_00_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_24_01_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2012_04_24_01_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_24_02_world_warden_checks.sql (renamed from sql/old/3.3.5a/2012_04_24_02_world_warden_checks.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_24_03_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_04_24_03_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_24_04_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2012_04_24_04_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_24_05_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2012_04_24_05_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_24_06_world_misc.sql (renamed from sql/old/3.3.5a/2012_04_24_06_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_25_00_world_misc.sql (renamed from sql/old/3.3.5a/2012_04_25_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_25_01_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_04_25_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_25_02_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_04_25_02_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_25_03_world_spell_group.sql (renamed from sql/old/3.3.5a/2012_04_25_03_world_spell_group.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_26_00_world_conditions.sql (renamed from sql/old/3.3.5a/2012_04_26_00_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_26_01_world_smart_scripts.sql (renamed from sql/old/3.3.5a/2012_04_26_01_world_smart_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_27_00_world_instance_icc.sql (renamed from sql/old/3.3.5a/2012_04_27_00_world_instance_icc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_28_00_world_reference_loot_template.sql (renamed from sql/old/3.3.5a/2012_04_28_00_world_reference_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_28_01_world_reference_loot_template.sql (renamed from sql/old/3.3.5a/2012_04_28_01_world_reference_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_01_00_world_creature.sql (renamed from sql/old/3.3.5a/2012_05_01_00_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_02_00_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2012_05_02_00_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_03_00_world_creature.sql (renamed from sql/old/3.3.5a/2012_05_03_00_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_03_01_world_cos_misc.sql (renamed from sql/old/3.3.5a/2012_05_03_01_world_cos_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_03_02_world_quest_template.sql (renamed from sql/old/3.3.5a/2012_05_03_02_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_03_03_world_creature_questrelation.sql (renamed from sql/old/3.3.5a/2012_05_03_03_world_creature_questrelation.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_03_04_world_game_event_creature_quest.sql (renamed from sql/old/3.3.5a/2012_05_03_04_world_game_event_creature_quest.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_04_00_world_waypoints.sql (renamed from sql/old/3.3.5a/2012_05_04_00_world_waypoints.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_04_01_world_sai.sql (renamed from sql/old/3.3.5a/2012_05_04_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_05_00_world_sai.sql (renamed from sql/old/3.3.5a/2012_05_05_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_05_01_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_05_05_01_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_05_02_world_gameobject.sql (renamed from sql/old/3.3.5a/2012_05_05_02_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_05_03_world_sai.sql (renamed from sql/old/3.3.5a/2012_05_05_03_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_05_04_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_05_05_04_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_05_05_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_05_05_05_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_05_06_world_sai.sql (renamed from sql/old/3.3.5a/2012_05_05_06_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_06_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_05_06_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_06_01_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_05_06_01_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_07_00_world_waypoints.sql (renamed from sql/old/3.3.5a/2012_05_07_00_world_waypoints.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_07_01_world_sai.sql (renamed from sql/old/3.3.5a/2012_05_07_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_08_00_world_sai.sql (renamed from sql/old/3.3.5a/2012_05_08_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_08_01_world_gameobject.sql (renamed from sql/old/3.3.5a/2012_05_08_01_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_08_01_world_misc.sql (renamed from sql/old/3.3.5a/2012_05_08_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_09_00_world_spell_target_position.sql (renamed from sql/old/3.3.5a/2012_05_09_00_world_spell_target_position.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_09_01_world_commands.sql (renamed from sql/old/3.3.5a/2012_05_09_01_world_commands.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_09_02_world_sai.sql (renamed from sql/old/3.3.5a/2012_05_09_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_09_03_world_misc.sql (renamed from sql/old/3.3.5a/2012_05_09_03_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_10_00_world_sai.sql (renamed from sql/old/3.3.5a/2012_05_10_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_10_01_world_misc.sql (renamed from sql/old/3.3.5a/2012_05_10_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_10_02_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_05_10_02_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_10_03_world_misc.sql (renamed from sql/old/3.3.5a/2012_05_10_03_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_10_04_world_ceature_sai.sql (renamed from sql/old/3.3.5a/2012_05_10_04_world_ceature_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_10_05_world_waypoints.sql (renamed from sql/old/3.3.5a/2012_05_10_05_world_waypoints.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_10_06_world_waypoints.sql (renamed from sql/old/3.3.5a/2012_05_10_06_world_waypoints.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_11_00_world_waypoints.sql (renamed from sql/old/3.3.5a/2012_05_11_00_world_waypoints.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_11_01_world_gameobject_template.sql (renamed from sql/old/3.3.5a/2012_05_11_01_world_gameobject_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_11_02_world_conditions.sql (renamed from sql/old/3.3.5a/2012_05_11_02_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_12_00_world_gameobject_template.sql (renamed from sql/old/3.3.5a/2012_05_12_00_world_gameobject_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_12_01_world_item_loot_template.sql (renamed from sql/old/3.3.5a/2012_05_12_01_world_item_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_12_02_world_gameobject_loot_template.sql (renamed from sql/old/3.3.5a/2012_05_12_02_world_gameobject_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_13_00_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_05_13_00_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_13_01_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_05_13_01_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_16_00_world_scripts.sql (renamed from sql/old/3.3.5a/2012_05_16_00_world_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_17_00_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_05_17_00_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_18_00_world_conditions.sql (renamed from sql/old/3.3.5a/2012_05_18_00_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_18_01_world_misc.sql (renamed from sql/old/3.3.5a/2012_05_18_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_18_01_world_spell_target_position.sql (renamed from sql/old/3.3.5a/2012_05_18_01_world_spell_target_position.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_19_00_world_quest_template.sql (renamed from sql/old/3.3.5a/2012_05_19_00_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_19_01_world_smart_scripts.sql (renamed from sql/old/3.3.5a/2012_05_19_01_world_smart_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_19_02_world_misc.sql (renamed from sql/old/3.3.5a/2012_05_19_02_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/characters/2012_06_07_00_characters_respawn.sql (renamed from sql/old/3.3.5a/2012_06_07_00_characters_respawn.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/characters/2012_06_13_00_characters_character_equipmentsets.sql (renamed from sql/old/3.3.5a/2012_06_13_00_characters_character_equipmentsets.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_19_03_world_version.sql (renamed from sql/old/3.3.5a/2012_05_19_03_world_version.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_19_04_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2012_05_19_04_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_19_05_world_gameobject_loot_template.sql (renamed from sql/old/3.3.5a/2012_05_19_05_world_gameobject_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_19_06_world_gameobject_loot_template.sql (renamed from sql/old/3.3.5a/2012_05_19_06_world_gameobject_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_20_00_world_misc.sql (renamed from sql/old/3.3.5a/2012_05_20_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_20_01_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/2012_05_20_01_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_22_00_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2012_05_22_00_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_22_01_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2012_05_22_01_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_23_00_world_creature.sql (renamed from sql/old/3.3.5a/2012_05_23_00_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_23_01_world_sai.sql (renamed from sql/old/3.3.5a/2012_05_23_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_23_02_world_sai.sql (renamed from sql/old/3.3.5a/2012_05_23_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_23_03_world_gameobject_loot_template.sql (renamed from sql/old/3.3.5a/2012_05_23_03_world_gameobject_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_23_04_world_gameobject.sql (renamed from sql/old/3.3.5a/2012_05_23_04_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_23_05_world_creature.sql (renamed from sql/old/3.3.5a/2012_05_23_05_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_24_00_world_creature_misc.sql (renamed from sql/old/3.3.5a/2012_05_24_00_world_creature_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_24_01_world_gameobject.sql (renamed from sql/old/3.3.5a/2012_05_24_01_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_25_00_world_sai.sql (renamed from sql/old/3.3.5a/2012_05_25_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_25_01_world_waypoints.sql (renamed from sql/old/3.3.5a/2012_05_25_01_world_waypoints.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_25_02_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_05_25_02_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_25_03_world_template.sql (renamed from sql/old/3.3.5a/2012_05_25_03_world_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_26_00_world_scripts.sql (renamed from sql/old/3.3.5a/2012_05_26_00_world_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_26_01_world_spell_dbc.sql (renamed from sql/old/3.3.5a/2012_05_26_01_world_spell_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_26_02_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_05_26_02_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_26_03_world_page_text.sql (renamed from sql/old/3.3.5a/2012_05_26_03_world_page_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_26_04_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_05_26_04_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_26_05_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_05_26_05_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_26_06_world_smart_scripts.sql (renamed from sql/old/3.3.5a/2012_05_26_06_world_smart_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_27_00_world_gameobject_template.sql (renamed from sql/old/3.3.5a/2012_05_27_00_world_gameobject_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_27_01_world_waypoints.sql (renamed from sql/old/3.3.5a/2012_05_27_01_world_waypoints.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_27_02_world_creature.sql (renamed from sql/old/3.3.5a/2012_05_27_02_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_27_03_world_creature.sql (renamed from sql/old/3.3.5a/2012_05_27_03_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_27_04_world_smart_scripts.sql (renamed from sql/old/3.3.5a/2012_05_27_04_world_smart_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_27_05_world_gameobject.sql (renamed from sql/old/3.3.5a/2012_05_27_05_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_27_06_world_creature.sql (renamed from sql/old/3.3.5a/2012_05_27_06_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_27_07_world_game_event.sql (renamed from sql/old/3.3.5a/2012_05_27_07_world_game_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_27_07_world_waypoints.sql (renamed from sql/old/3.3.5a/2012_05_27_07_world_waypoints.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_28_00_world_creature_ai_scripts.sql (renamed from sql/old/3.3.5a/2012_05_28_00_world_creature_ai_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_28_01_world_creature.sql (renamed from sql/old/3.3.5a/2012_05_28_01_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_28_02_world_creature.sql (renamed from sql/old/3.3.5a/2012_05_28_02_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_28_03_world_waypoint_data.sql (renamed from sql/old/3.3.5a/2012_05_28_03_world_waypoint_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_28_04_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_05_28_04_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_28_05_world_creature.sql (renamed from sql/old/3.3.5a/2012_05_28_05_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_28_06_world_creature_addon.sql (renamed from sql/old/3.3.5a/2012_05_28_06_world_creature_addon.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_28_06_world_waypoint_data.sql (renamed from sql/old/3.3.5a/2012_05_28_06_world_waypoint_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_28_07_world_quest_template.sql (renamed from sql/old/3.3.5a/2012_05_28_07_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_30_00_world_reference_loot_template.sql (renamed from sql/old/3.3.5a/2012_05_30_00_world_reference_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_30_01_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_05_30_01_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_30_02_world_quest_template.sql (renamed from sql/old/3.3.5a/2012_05_30_02_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_30_03_world_creature_formation.sql (renamed from sql/old/3.3.5a/2012_05_30_03_world_creature_formation.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_30_04_world_gossip.sql (renamed from sql/old/3.3.5a/2012_05_30_04_world_gossip.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_30_05_world_gossip.sql (renamed from sql/old/3.3.5a/2012_05_30_05_world_gossip.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_31_00_world_reference_loot_template.sql (renamed from sql/old/3.3.5a/2012_05_31_00_world_reference_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_31_01_world_item_template.sql (renamed from sql/old/3.3.5a/2012_05_31_01_world_item_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_31_01_world_sai.sql (renamed from sql/old/3.3.5a/2012_05_31_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_31_02_world_creature_model_info.sql (renamed from sql/old/3.3.5a/2012_05_31_02_world_creature_model_info.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_31_03_world_gameobject_loot_template.sql (renamed from sql/old/3.3.5a/2012_05_31_03_world_gameobject_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_31_05_world_sai.sql (renamed from sql/old/3.3.5a/2012_05_31_05_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_31_06_world_gameobject.sql (renamed from sql/old/3.3.5a/2012_05_31_06_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_31_07_world_gossip.sql (renamed from sql/old/3.3.5a/2012_05_31_07_world_gossip.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_31_08_world_gameobject_template.sql (renamed from sql/old/3.3.5a/2012_05_31_08_world_gameobject_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_31_09_world_sai.sql (renamed from sql/old/3.3.5a/2012_05_31_09_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_31_10_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_05_31_10_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_31_11_world_creature.sql (renamed from sql/old/3.3.5a/2012_05_31_11_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_31_12_world_creature.sql (renamed from sql/old/3.3.5a/2012_05_31_12_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_01_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_06_01_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_01_01_world_creature_script.sql (renamed from sql/old/3.3.5a/2012_06_01_01_world_creature_script.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_01_02_world_misc.sql (renamed from sql/old/3.3.5a/2012_06_01_02_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_01_03_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_06_01_03_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_01_04_world_misc.sql (renamed from sql/old/3.3.5a/2012_06_01_04_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_02_00_world_sai.sql (renamed from sql/old/3.3.5a/2012_06_02_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_02_01_world_waypoints.sql (renamed from sql/old/3.3.5a/2012_06_02_01_world_waypoints.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_02_02_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_06_02_02_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_02_03_world_creature_loot_template_hp.sql (renamed from sql/old/3.3.5a/2012_06_02_03_world_creature_loot_template_hp.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_02_03_world_creature_loot_template_zm.sql (renamed from sql/old/3.3.5a/2012_06_02_03_world_creature_loot_template_zm.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_02_03_world_reference_loot_template.sql (renamed from sql/old/3.3.5a/2012_06_02_03_world_reference_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_02_04_world_reference_loot_template.sql (renamed from sql/old/3.3.5a/2012_06_02_04_world_reference_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_02_05_world_reference_loot_template.sql (renamed from sql/old/3.3.5a/2012_06_02_05_world_reference_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_02_06_world_waypoints.sql (renamed from sql/old/3.3.5a/2012_06_02_06_world_waypoints.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_02_07_world_Misc.sql (renamed from sql/old/3.3.5a/2012_06_02_07_world_Misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_02_08_world_waypoints.sql (renamed from sql/old/3.3.5a/2012_06_02_08_world_waypoints.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_02_09_world_creature_transport.sql (renamed from sql/old/3.3.5a/2012_06_02_09_world_creature_transport.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_03_00_world_sai.sql (renamed from sql/old/3.3.5a/2012_06_03_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_03_01_world_creature.sql (renamed from sql/old/3.3.5a/2012_06_03_01_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_03_02_world_misc.sql (renamed from sql/old/3.3.5a/2012_06_03_02_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_03_03_world_quest_template.sql (renamed from sql/old/3.3.5a/2012_06_03_03_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_03_04_world_misc.sql (renamed from sql/old/3.3.5a/2012_06_03_04_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_03_05_world_creature.sql (renamed from sql/old/3.3.5a/2012_06_03_05_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_03_06_world_sai.sql (renamed from sql/old/3.3.5a/2012_06_03_06_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_04_00_world_sai.sql (renamed from sql/old/3.3.5a/2012_06_04_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_04_01_world_gossip.sql (renamed from sql/old/3.3.5a/2012_06_04_01_world_gossip.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_04_02_world_gossip.sql (renamed from sql/old/3.3.5a/2012_06_04_02_world_gossip.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_04_03_world_conditions.sql (renamed from sql/old/3.3.5a/2012_06_04_03_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_04_04_world_sai.sql (renamed from sql/old/3.3.5a/2012_06_04_04_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_04_05_world_sai.sql (renamed from sql/old/3.3.5a/2012_06_04_05_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_04_06_world_sai.sql (renamed from sql/old/3.3.5a/2012_06_04_06_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_04_07_world_misc.sql (renamed from sql/old/3.3.5a/2012_06_04_07_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_05_00_world_sai.sql (renamed from sql/old/3.3.5a/2012_06_05_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_05_01_world_gossip.sql (renamed from sql/old/3.3.5a/2012_06_05_01_world_gossip.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_05_01_world_gossip_sai.sql (renamed from sql/old/3.3.5a/2012_06_05_01_world_gossip_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_05_03_world_script.sql (renamed from sql/old/3.3.5a/2012_06_05_03_world_script.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_06_00_world_script.sql (renamed from sql/old/3.3.5a/2012_06_06_00_world_script.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_06_01_world_sai.sql (renamed from sql/old/3.3.5a/2012_06_06_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_06_02_world_sai.sql (renamed from sql/old/3.3.5a/2012_06_06_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_06_03_world_conditions.sql (renamed from sql/old/3.3.5a/2012_06_06_03_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_06_04_world_sai.sql (renamed from sql/old/3.3.5a/2012_06_06_04_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_07_00_world_gossip.sql (renamed from sql/old/3.3.5a/2012_06_07_00_world_gossip.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_07_01_world_gossip.sql (renamed from sql/old/3.3.5a/2012_06_07_01_world_gossip.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_07_02_world_item_template.sql (renamed from sql/old/3.3.5a/2012_06_07_02_world_item_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_07_03_world_item_template.sql (renamed from sql/old/3.3.5a/2012_06_07_03_world_item_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_07_04_world_spell_dbc.sql (renamed from sql/old/3.3.5a/2012_06_07_04_world_spell_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_07_05_world_misc.sql (renamed from sql/old/3.3.5a/2012_06_07_05_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_08_00_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/2012_06_08_00_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_09_00_world_creature.sql (renamed from sql/old/3.3.5a/2012_06_09_00_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_12_00_world_transport.sql (renamed from sql/old/3.3.5a/2012_06_12_00_world_transport.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_13_00_world_creature.sql (renamed from sql/old/3.3.5a/2012_06_13_00_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_13_01_world_creature.sql (renamed from sql/old/3.3.5a/2012_06_13_01_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_13_02_world_gossip.sql (renamed from sql/old/3.3.5a/2012_06_13_02_world_gossip.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_13_03_world_sai.sql (renamed from sql/old/3.3.5a/2012_06_13_03_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_14_00_world_spell_linked_spell.sql (renamed from sql/old/3.3.5a/2012_06_14_00_world_spell_linked_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_14_01_world_spell_linked_spell.sql (renamed from sql/old/3.3.5a/2012_06_14_01_world_spell_linked_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_14_02_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/2012_06_14_02_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_14_03_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/2012_06_14_03_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_14_03_world_spell_ranks.sql (renamed from sql/old/3.3.5a/2012_06_14_03_world_spell_ranks.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_14_04_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_06_14_04_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_14_05_world_spelldifficulty_dbc.sql (renamed from sql/old/3.3.5a/2012_06_14_05_world_spelldifficulty_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_14_06_world_conditions.sql (renamed from sql/old/3.3.5a/2012_06_14_06_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_14_07_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/2012_06_14_07_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_14_08_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_06_14_08_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_14_09_world_sai.sql (renamed from sql/old/3.3.5a/2012_06_14_09_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_14_10_world_eai.sql (renamed from sql/old/3.3.5a/2012_06_14_10_world_eai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_14_11_world_sai.sql (renamed from sql/old/3.3.5a/2012_06_14_11_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_15_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_06_15_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_15_01_world_sai.sql (renamed from sql/old/3.3.5a/2012_06_15_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_15_02_world_sai.sql (renamed from sql/old/3.3.5a/2012_06_15_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_16_00_world_sai.sql (renamed from sql/old/3.3.5a/2012_06_16_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_16_01_world_creature.sql (renamed from sql/old/3.3.5a/2012_06_16_01_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_17_00_world_creature.sql (renamed from sql/old/3.3.5a/2012_06_17_00_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_17_01_world_creature.sql (renamed from sql/old/3.3.5a/2012_06_17_01_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_17_02_world_creature.sql (renamed from sql/old/3.3.5a/2012_06_17_02_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_18_00_world_creature.sql (renamed from sql/old/3.3.5a/2012_06_18_00_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_18_01_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_06_18_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_18_02_world_sai.sql (renamed from sql/old/3.3.5a/2012_06_18_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_18_03_world_sai.sql (renamed from sql/old/3.3.5a/2012_06_18_03_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_19_00_world_sai.sql (renamed from sql/old/3.3.5a/2012_06_19_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_19_01_world_gossip.sql (renamed from sql/old/3.3.5a/2012_06_19_01_world_gossip.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_19_02_world_misc.sql (renamed from sql/old/3.3.5a/2012_06_19_02_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_20_00_world_gossip.sql (renamed from sql/old/3.3.5a/2012_06_20_00_world_gossip.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_20_01_world_sai.sql (renamed from sql/old/3.3.5a/2012_06_20_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_20_02_world_gossip.sql (renamed from sql/old/3.3.5a/2012_06_20_02_world_gossip.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_24_00_world_gossip.sql (renamed from sql/old/3.3.5a/2012_06_24_00_world_gossip.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_24_01_world_quest.sql (renamed from sql/old/3.3.5a/2012_06_24_01_world_quest.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_24_02_world_gameobject.sql (renamed from sql/old/3.3.5a/2012_06_24_02_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_24_03_world_gameobject.sql (renamed from sql/old/3.3.5a/2012_06_24_03_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_24_04_world_gameobject.sql (renamed from sql/old/3.3.5a/2012_06_24_04_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_25_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_06_25_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_25_01_world_gameobject.sql (renamed from sql/old/3.3.5a/2012_06_25_01_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_25_02_world_gameobject.sql (renamed from sql/old/3.3.5a/2012_06_25_02_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_26_00_world_sai.sql (renamed from sql/old/3.3.5a/2012_06_26_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_26_01_world_creature.sql (renamed from sql/old/3.3.5a/2012_06_26_01_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_26_02_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2012_06_26_02_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_27_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_06_27_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_27_01_world_game_graveyard_zone.sql (renamed from sql/old/3.3.5a/2012_06_27_01_world_game_graveyard_zone.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_07_01_00_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_07_01_00_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_07_01_01_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2012_07_01_01_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_07_02_00_world_creature_onkill_reputation.sql (renamed from sql/old/3.3.5a/2012_07_02_00_world_creature_onkill_reputation.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_07_02_01_world_sai.sql (renamed from sql/old/3.3.5a/2012_07_02_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_07_02_02_world_sai.sql (renamed from sql/old/3.3.5a/2012_07_02_02_world_sai.sql)6
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_07_02_03_world_gossip.sql (renamed from sql/old/3.3.5a/2012_07_02_03_world_gossip.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_07_02_04_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_07_02_04_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_07_04_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_07_04_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_07_05_00_world_item_template.sql (renamed from sql/old/3.3.5a/2012_07_05_00_world_item_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_07_06_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_07_06_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_07_09_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_07_09_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/auth/2012_08_06_00_auth_logs.sql (renamed from sql/old/3.3.5a/2012_08_06_00_auth_logs.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/characters/2012_08_07_00_characters_characters.sql (renamed from sql/old/3.3.5a/2012_08_07_00_characters_characters.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/characters/2012_09_07_00_characters_characters.sql (renamed from sql/old/3.3.5a/2012_09_07_00_characters_characters.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_12_00_world_version.sql (renamed from sql/old/3.3.5a/2012_07_12_00_world_version.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_13_00_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2012_07_13_00_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_13_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_07_13_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_14_00_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2012_07_14_00_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_14_01_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2012_07_14_01_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_16_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_07_16_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_16_01_world_reference_loot_template.sql (renamed from sql/old/3.3.5a/2012_07_16_01_world_reference_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_00_world_spelldifficulty_dbc.sql (renamed from sql/old/3.3.5a/2012_07_22_00_world_spelldifficulty_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_01_world_conditions.sql (renamed from sql/old/3.3.5a/2012_07_22_01_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_02_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2012_07_22_02_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_03_world_gossip.sql (renamed from sql/old/3.3.5a/2012_07_22_03_world_gossip.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_04_world_gossip.sql (renamed from sql/old/3.3.5a/2012_07_22_04_world_gossip.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_05_world_script_texts.sql (renamed from sql/old/3.3.5a/2012_07_22_05_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_06_world_gossip.sql (renamed from sql/old/3.3.5a/2012_07_22_06_world_gossip.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_07_world_sai.sql (renamed from sql/old/3.3.5a/2012_07_22_07_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_08_world_sai.sql (renamed from sql/old/3.3.5a/2012_07_22_08_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_09_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_07_22_09_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_10_world_creature_onkill_rep.sql (renamed from sql/old/3.3.5a/2012_07_22_10_world_creature_onkill_rep.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_11_world_conditions.sql (renamed from sql/old/3.3.5a/2012_07_22_11_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_12_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_07_22_12_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_13_world_conditions.sql (renamed from sql/old/3.3.5a/2012_07_22_13_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_14_world_gameobject.sql (renamed from sql/old/3.3.5a/2012_07_22_14_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_15_world_sai.sql (renamed from sql/old/3.3.5a/2012_07_22_15_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_29_00_world_factionchange.sql (renamed from sql/old/3.3.5a/2012_07_29_00_world_factionchange.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_29_01_world_pool_quest.sql (renamed from sql/old/3.3.5a/2012_07_29_01_world_pool_quest.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_29_02_world_sai.sql (renamed from sql/old/3.3.5a/2012_07_29_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_29_03_world_sai.sql (renamed from sql/old/3.3.5a/2012_07_29_03_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_29_04_world_sai.sql (renamed from sql/old/3.3.5a/2012_07_29_04_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_29_05_world_sai.sql (renamed from sql/old/3.3.5a/2012_07_29_05_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_29_06_world_sai.sql (renamed from sql/old/3.3.5a/2012_07_29_06_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_29_07_world_sai.sql (renamed from sql/old/3.3.5a/2012_07_29_07_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_29_08_world_sai.sql (renamed from sql/old/3.3.5a/2012_07_29_08_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_29_09_world_gossip_menu_option.sql (renamed from sql/old/3.3.5a/2012_07_29_09_world_gossip_menu_option.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_29_10_world_sai.sql (renamed from sql/old/3.3.5a/2012_07_29_10_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_01_00_world_sai.sql (renamed from sql/old/3.3.5a/2012_08_01_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_01_01_world_creature.sql (renamed from sql/old/3.3.5a/2012_08_01_01_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_01_02_world_loot.sql (renamed from sql/old/3.3.5a/2012_08_01_02_world_loot.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_02_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_08_02_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_04_00_world_disables.sql (renamed from sql/old/3.3.5a/2012_08_04_00_world_disables.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_04_01_world_disables.sql (renamed from sql/old/3.3.5a/2012_08_04_01_world_disables.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_04_02_world_disables.sql (renamed from sql/old/3.3.5a/2012_08_04_02_world_disables.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_04_03_world_disables.sql (renamed from sql/old/3.3.5a/2012_08_04_03_world_disables.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_04_04_world_disables.sql (renamed from sql/old/3.3.5a/2012_08_04_04_world_disables.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_04_05_world_disables.sql (renamed from sql/old/3.3.5a/2012_08_04_05_world_disables.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_04_06_world_quest_template.sql (renamed from sql/old/3.3.5a/2012_08_04_06_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_04_07_world_game_event_creature_quest.sql (renamed from sql/old/3.3.5a/2012_08_04_07_world_game_event_creature_quest.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_04_08_world_disables.sql (renamed from sql/old/3.3.5a/2012_08_04_08_world_disables.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_04_09_world_disables.sql (renamed from sql/old/3.3.5a/2012_08_04_09_world_disables.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_04_10_world_disables.sql (renamed from sql/old/3.3.5a/2012_08_04_10_world_disables.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_04_11_world_game_event_creature_quest.sql (renamed from sql/old/3.3.5a/2012_08_04_11_world_game_event_creature_quest.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_05_00_world_trinity_string.sql (renamed from sql/old/3.3.5a/2012_08_05_00_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_05_01_world_command.sql (renamed from sql/old/3.3.5a/2012_08_05_01_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_06_00_world_command.sql (renamed from sql/old/3.3.5a/2012_08_06_00_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_09_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_08_09_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_09_01_world_sai.sql (renamed from sql/old/3.3.5a/2012_08_09_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_10_00_world_conditions.sql (renamed from sql/old/3.3.5a/2012_08_10_00_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_10_01_world_loot_template.sql (renamed from sql/old/3.3.5a/2012_08_10_01_world_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_10_02_world_script_texts.sql (renamed from sql/old/3.3.5a/2012_08_10_02_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_10_03_world_quest_template.sql (renamed from sql/old/3.3.5a/2012_08_10_03_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_10_04_world_gossip.sql (renamed from sql/old/3.3.5a/2012_08_10_04_world_gossip.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_10_05_world_quest_template.sql (renamed from sql/old/3.3.5a/2012_08_10_05_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_10_06_world_creature.sql (renamed from sql/old/3.3.5a/2012_08_10_06_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_11_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_08_11_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_11_01_world_quest_poi.sql (renamed from sql/old/3.3.5a/2012_08_11_01_world_quest_poi.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_12_00_world_conditions.sql (renamed from sql/old/3.3.5a/2012_08_12_00_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_12_01_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_08_12_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_12_02_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_08_12_02_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_13_00_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_08_13_00_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_13_01_world_creature.sql (renamed from sql/old/3.3.5a/2012_08_13_01_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_14_00_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_08_14_00_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_14_01_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_08_14_01_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_14_02_world_creature.sql (renamed from sql/old/3.3.5a/2012_08_14_02_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_16_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_08_16_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_16_00_world_spell_dbc.sql (renamed from sql/old/3.3.5a/2012_08_16_00_world_spell_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_17_00_world_spell_dbc.sql (renamed from sql/old/3.3.5a/2012_08_17_00_world_spell_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_19_00_world_pickpocketing_loot_template.sql (renamed from sql/old/3.3.5a/2012_08_19_00_world_pickpocketing_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_19_01_world_spell_dbc.sql (renamed from sql/old/3.3.5a/2012_08_19_01_world_spell_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_20_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_08_20_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_20_01_world_wintergrasp_conditions.sql (renamed from sql/old/3.3.5a/2012_08_20_01_world_wintergrasp_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_20_02_world_wintergrasp_creatures.sql (renamed from sql/old/3.3.5a/2012_08_20_02_world_wintergrasp_creatures.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_20_03_world_wintergrasp_gameobjects.sql (renamed from sql/old/3.3.5a/2012_08_20_03_world_wintergrasp_gameobjects.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_20_04_world_wintergrasp_gossips.sql (renamed from sql/old/3.3.5a/2012_08_20_04_world_wintergrasp_gossips.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_20_05_world_wintergrasp_quests.sql (renamed from sql/old/3.3.5a/2012_08_20_05_world_wintergrasp_quests.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_20_06_world_wintergrasp_spells.sql (renamed from sql/old/3.3.5a/2012_08_20_06_world_wintergrasp_spells.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_20_07_world_wintergrasp_texts.sql (renamed from sql/old/3.3.5a/2012_08_20_07_world_wintergrasp_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_20_08_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2012_08_20_08_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_20_09_world_disables.sql (renamed from sql/old/3.3.5a/2012_08_20_09_world_disables.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_21_00_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2012_08_21_00_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_21_01_world_command.sql (renamed from sql/old/3.3.5a/2012_08_21_01_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_21_02_world_wintergrasp_conditions.sql (renamed from sql/old/3.3.5a/2012_08_21_02_world_wintergrasp_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_23_00_world_wintergrasp_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_08_23_00_world_wintergrasp_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_23_01_world_wintergrasp_gameobject.sql (renamed from sql/old/3.3.5a/2012_08_23_01_world_wintergrasp_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_25_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_08_25_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_25_01_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_08_25_01_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_26_00_world_conditions.sql (renamed from sql/old/3.3.5a/2012_08_26_00_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_26_01_world_creature.sql (renamed from sql/old/3.3.5a/2012_08_26_01_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_26_02_world_spell_area.sql (renamed from sql/old/3.3.5a/2012_08_26_02_world_spell_area.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_26_03_world_spell_area.sql (renamed from sql/old/3.3.5a/2012_08_26_03_world_spell_area.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_27_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_08_27_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_27_00_world_spell_script_name.sql (renamed from sql/old/3.3.5a/2012_08_27_00_world_spell_script_name.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_27_01_world_sai.sql (renamed from sql/old/3.3.5a/2012_08_27_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_27_02_world_creature.sql (renamed from sql/old/3.3.5a/2012_08_27_02_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_27_02_world_playercreateinfo_spell.sql (renamed from sql/old/3.3.5a/2012_08_27_02_world_playercreateinfo_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_27_03_world_gameobject.sql (renamed from sql/old/3.3.5a/2012_08_27_03_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_27_04_world_quest_template.sql (renamed from sql/old/3.3.5a/2012_08_27_04_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_27_05_world_sai.sql (renamed from sql/old/3.3.5a/2012_08_27_05_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_27_06_world_sai.sql (renamed from sql/old/3.3.5a/2012_08_27_06_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_27_07_world_spell_area.sql (renamed from sql/old/3.3.5a/2012_08_27_07_world_spell_area.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_27_08_world_misc.sql (renamed from sql/old/3.3.5a/2012_08_27_08_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_27_09_world_conditions.sql (renamed from sql/old/3.3.5a/2012_08_27_09_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_27_10_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_08_27_10_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_28_00_world_spell_script_name.sql (renamed from sql/old/3.3.5a/2012_08_28_00_world_spell_script_name.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_28_01_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2012_08_28_01_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_29_00_world_blood_furnace.sql (renamed from sql/old/3.3.5a/2012_08_29_00_world_blood_furnace.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_30_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_08_30_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_30_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_08_30_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_31_00_world_command.sql (renamed from sql/old/3.3.5a/2012_08_31_00_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_31_00_world_sai.sql (renamed from sql/old/3.3.5a/2012_08_31_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_01_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_09_01_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_02_00_world_quest_template.sql (renamed from sql/old/3.3.5a/2012_09_02_00_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_02_01_world_sai.sql (renamed from sql/old/3.3.5a/2012_09_02_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_03_00_world_misc.sql (renamed from sql/old/3.3.5a/2012_09_03_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_03_01_world_gameobject_template.sql (renamed from sql/old/3.3.5a/2012_09_03_01_world_gameobject_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_03_02_world_quest_template.sql (renamed from sql/old/3.3.5a/2012_09_03_02_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_07_00_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/2012_09_07_00_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_07_01_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_09_07_01_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_07_02_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_09_07_02_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_08_00_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2012_09_08_00_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_08_01_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_09_08_01_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_08_02_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2012_09_08_02_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_09_00_world_command.sql (renamed from sql/old/3.3.5a/2012_09_09_00_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_09_01_world_trinity_string.sql (renamed from sql/old/3.3.5a/2012_09_09_01_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_09_02_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_09_09_02_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_09_03_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/2012_09_09_03_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_09_04_world_quest_template.sql (renamed from sql/old/3.3.5a/2012_09_09_04_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_10_00_world_game_event.sql (renamed from sql/old/3.3.5a/2012_09_10_00_world_game_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_10_01_world_quest_template.sql (renamed from sql/old/3.3.5a/2012_09_10_01_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_10_02_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_09_10_02_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_10_03_world_quest_template.sql (renamed from sql/old/3.3.5a/2012_09_10_03_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_10_04_world_quest_template.sql (renamed from sql/old/3.3.5a/2012_09_10_04_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_10_06_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_09_10_06_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_10_07_world_go_loot_template.sql (renamed from sql/old/3.3.5a/2012_09_10_07_world_go_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_10_08_world_spell_area.sql (renamed from sql/old/3.3.5a/2012_09_10_08_world_spell_area.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_10_09_world_creature_involvedrelation.sql (renamed from sql/old/3.3.5a/2012_09_10_09_world_creature_involvedrelation.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_10_10_world_gossips.sql (renamed from sql/old/3.3.5a/2012_09_10_10_world_gossips.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_10_11_world_event_scripts.sql (renamed from sql/old/3.3.5a/2012_09_10_11_world_event_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_10_12_world_sai.sql (renamed from sql/old/3.3.5a/2012_09_10_12_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_10_13_world_creature_model_info.sql (renamed from sql/old/3.3.5a/2012_09_10_13_world_creature_model_info.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_11_00_world_misc.sql (renamed from sql/old/3.3.5a/2012_09_11_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_12_00_world_misc.sql (renamed from sql/old/3.3.5a/2012_09_12_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_12_01_world_creature.sql (renamed from sql/old/3.3.5a/2012_09_12_01_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_13_00_world_item_template.sql (renamed from sql/old/3.3.5a/2012_09_13_00_world_item_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_13_01_world_fires_over_skettis.sql (renamed from sql/old/3.3.5a/2012_09_13_01_world_fires_over_skettis.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_13_01_world_ogrila.sql (renamed from sql/old/3.3.5a/2012_09_13_01_world_ogrila.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_13_01_world_spell_script_name.sql (renamed from sql/old/3.3.5a/2012_09_13_01_world_spell_script_name.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_13_01_world_spell_target_position.sql (renamed from sql/old/3.3.5a/2012_09_13_01_world_spell_target_position.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_13_02_world_trinity_string.sql (renamed from sql/old/3.3.5a/2012_09_13_02_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_14_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_09_14_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_14_00_world_sai.sql (renamed from sql/old/3.3.5a/2012_09_14_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_14_01_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2012_09_14_01_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_15_00_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2012_09_15_00_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_15_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_09_15_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_15_00_world_disables.sql (renamed from sql/old/3.3.5a/2012_09_15_00_world_disables.sql)0
-rw-r--r--sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_15_01_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2012_09_15_01_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/characters/2012_10_09_00_characters_glyphs.sql (renamed from sql/old/3.3.5a/2012_10_09_00_characters_glyphs.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/characters/2012_10_17_00_characters_gm_tickets.sql (renamed from sql/old/3.3.5a/2012_10_17_00_characters_gm_tickets.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/characters/2012_11_02_00_characters_misc.sql (renamed from sql/old/3.3.5a/2012_11_02_00_characters_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/characters/2012_11_18_00_characters_calendar.sql (renamed from sql/old/3.3.5a/2012_11_18_00_characters_calendar.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/characters/2012_12_03_00_characters_character_queststatus_monthly.sql (renamed from sql/old/3.3.5a/2012_12_03_00_characters_character_queststatus_monthly.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/characters/2012_12_18_00_characters_worldstates.sql (renamed from sql/old/3.3.5a/2012_12_18_00_characters_worldstates.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/characters/2012_12_20_00_characters_create_item_loot.sql (renamed from sql/old/3.3.5a/2012_12_20_00_characters_create_item_loot.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_16_00_world_version.sql (renamed from sql/old/3.3.5a/2012_09_16_00_world_version.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_16_01_world_conditions.sql (renamed from sql/old/3.3.5a/2012_09_16_01_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_16_01_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2012_09_16_01_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_16_01_world_creature_template_addon.sql (renamed from sql/old/3.3.5a/2012_09_16_01_world_creature_template_addon.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_16_02_world_fires_over_skettis.sql (renamed from sql/old/3.3.5a/2012_09_16_02_world_fires_over_skettis.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_16_03_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_09_16_03_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_17_00_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/2012_09_17_00_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_17_01_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/2012_09_17_01_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_17_01_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_09_17_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_17_02_world_misc.sql (renamed from sql/old/3.3.5a/2012_09_17_02_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_18_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_09_18_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_18_01_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_09_18_01_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_19_00_world_dwarfageddon.sql (renamed from sql/old/3.3.5a/2012_09_19_00_world_dwarfageddon.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_19_00_world_reference_loot_template.sql (renamed from sql/old/3.3.5a/2012_09_19_00_world_reference_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_20_00_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2012_09_20_00_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_22_01_world_i_was_a_lot_of_things.sql (renamed from sql/old/3.3.5a/2012_09_22_01_world_i_was_a_lot_of_things.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_22_03_world_game_event.sql (renamed from sql/old/3.3.5a/2012_09_22_03_world_game_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_24_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_09_24_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_24_01_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_09_24_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_24_02_world_misc.sql (renamed from sql/old/3.3.5a/2012_09_24_02_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_24_03_world_misc.sql (renamed from sql/old/3.3.5a/2012_09_24_03_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_26_00_world_misc.sql (renamed from sql/old/3.3.5a/2012_09_26_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_26_01_world_spell_bonus_data.sql (renamed from sql/old/3.3.5a/2012_09_26_01_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_27_01_world_custodian_of_time.sql (renamed from sql/old/3.3.5a/2012_09_27_01_world_custodian_of_time.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_28_00_world_creature_model_info.sql (renamed from sql/old/3.3.5a/2012_09_28_00_world_creature_model_info.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_29_00_world_creature_model_info.sql (renamed from sql/old/3.3.5a/2012_09_29_00_world_creature_model_info.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_29_01_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_09_29_01_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_30_00_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_09_30_00_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_30_01_world_player_factionchange_titles.sql (renamed from sql/old/3.3.5a/2012_09_30_01_world_player_factionchange_titles.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_30_02_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_09_30_02_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_30_03_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_09_30_03_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_02_00_world_oculus.sql (renamed from sql/old/3.3.5a/2012_10_02_00_world_oculus.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_04_00_world_spelldifficulty_dbc.sql (renamed from sql/old/3.3.5a/2012_10_04_00_world_spelldifficulty_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_04_01_world_script_texts.sql (renamed from sql/old/3.3.5a/2012_10_04_01_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_05_00_world_misc.sql (renamed from sql/old/3.3.5a/2012_10_05_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_05_01_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_10_05_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_06_00_world_spell_difficulty.sql (renamed from sql/old/3.3.5a/2012_10_06_00_world_spell_difficulty.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_06_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_10_06_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_06_01_world_spell_dbc.sql (renamed from sql/old/3.3.5a/2012_10_06_01_world_spell_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_06_02_world_misc_templates.sql (renamed from sql/old/3.3.5a/2012_10_06_02_world_misc_templates.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_06_03_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_10_06_03_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_06_04_world_misc_spawns.sql (renamed from sql/old/3.3.5a/2012_10_06_04_world_misc_spawns.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_06_05_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_10_06_05_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_07_00_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2012_10_07_00_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_07_01_world_spell_proc_event.sql (renamed from sql/old/3.3.5a/2012_10_07_01_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_09_00_world_spell_groups.sql (renamed from sql/old/3.3.5a/2012_10_09_00_world_spell_groups.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_09_01_world_spell_groups.sql (renamed from sql/old/3.3.5a/2012_10_09_01_world_spell_groups.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_09_02_world_spell_groups.sql (renamed from sql/old/3.3.5a/2012_10_09_02_world_spell_groups.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_10_00_world_battleground_template.sql (renamed from sql/old/3.3.5a/2012_10_10_00_world_battleground_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_11_00_world_gameobject.sql (renamed from sql/old/3.3.5a/2012_10_11_00_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_13_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_10_13_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_14_00_world_creature.sql (renamed from sql/old/3.3.5a/2012_10_14_00_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_16_00_world_spell_area.sql (renamed from sql/old/3.3.5a/2012_10_16_00_world_spell_area.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_20_00_world_transports.sql (renamed from sql/old/3.3.5a/2012_10_20_00_world_transports.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_20_01_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_10_20_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_20_02_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_10_20_02_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_21_00_world_conditions.sql (renamed from sql/old/3.3.5a/2012_10_21_00_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_21_01_world_misc.sql (renamed from sql/old/3.3.5a/2012_10_21_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_23_00_world_trinity_string.sql (renamed from sql/old/3.3.5a/2012_10_23_00_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_23_01_world_command.sql (renamed from sql/old/3.3.5a/2012_10_23_01_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_25_00_world_childrens_week.sql (renamed from sql/old/3.3.5a/2012_10_25_00_world_childrens_week.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_26_00_world_sai.sql (renamed from sql/old/3.3.5a/2012_10_26_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_27_00_world_creature.sql (renamed from sql/old/3.3.5a/2012_10_27_00_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_27_01_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2012_10_27_01_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_29_00_world_conditions.sql (renamed from sql/old/3.3.5a/2012_10_29_00_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_03_00_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2012_11_03_00_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_07_00_world_misc.sql (renamed from sql/old/3.3.5a/2012_11_07_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_11_00_world_sai.sql (renamed from sql/old/3.3.5a/2012_11_11_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_11_01_world_quest_template.sql (renamed from sql/old/3.3.5a/2012_11_11_01_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_11_02_world_gossip_menu.sql (renamed from sql/old/3.3.5a/2012_11_11_02_world_gossip_menu.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_11_03_world_gossip_menu.sql (renamed from sql/old/3.3.5a/2012_11_11_03_world_gossip_menu.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_12_00_world_quest_template.sql (renamed from sql/old/3.3.5a/2012_11_12_00_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_12_01_world_misc.sql (renamed from sql/old/3.3.5a/2012_11_12_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_12_02_world_quest_template.sql (renamed from sql/old/3.3.5a/2012_11_12_02_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_12_03_world_misc.sql (renamed from sql/old/3.3.5a/2012_11_12_03_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_13_00_world_waypoints.sql (renamed from sql/old/3.3.5a/2012_11_13_00_world_waypoints.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_13_01_world_misc.sql (renamed from sql/old/3.3.5a/2012_11_13_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_13_02_world_creature.sql (renamed from sql/old/3.3.5a/2012_11_13_02_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_13_03_world_gameevent.sql (renamed from sql/old/3.3.5a/2012_11_13_03_world_gameevent.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_13_04_world_gameeventquest.sql (renamed from sql/old/3.3.5a/2012_11_13_04_world_gameeventquest.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_13_05_world_player_factionchange_items.sql (renamed from sql/old/3.3.5a/2012_11_13_05_world_player_factionchange_items.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_13_06_world_trinity_string.sql (renamed from sql/old/3.3.5a/2012_11_13_06_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_14_00_world_sai.sql (renamed from sql/old/3.3.5a/2012_11_14_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_14_00_world_various_fixes.sql (renamed from sql/old/3.3.5a/2012_11_14_00_world_various_fixes.sql)2
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_14_02_world_battleground_template.sql (renamed from sql/old/3.3.5a/2012_11_14_02_world_battleground_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_16_00_world_utgarde.sql (renamed from sql/old/3.3.5a/2012_11_16_00_world_utgarde.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_16_01_world_utgarde.sql (renamed from sql/old/3.3.5a/2012_11_16_01_world_utgarde.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_16_02_world_creature_ai_summons.sql (renamed from sql/old/3.3.5a/2012_11_16_02_world_creature_ai_summons.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_17_00_world_various_fixes.sql (renamed from sql/old/3.3.5a/2012_11_17_00_world_various_fixes.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_18_00_world_ormorok.sql (renamed from sql/old/3.3.5a/2012_11_18_00_world_ormorok.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_18_01_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_11_18_01_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_18_01_world_gameobject.sql (renamed from sql/old/3.3.5a/2012_11_18_01_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_18_02_world_toc.sql (renamed from sql/old/3.3.5a/2012_11_18_02_world_toc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_19_00_world_various_fixes.sql (renamed from sql/old/3.3.5a/2012_11_19_00_world_various_fixes.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_19_01_world_pilgrims_bounty.sql (renamed from sql/old/3.3.5a/2012_11_19_01_world_pilgrims_bounty.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_19_02_world_misc.sql (renamed from sql/old/3.3.5a/2012_11_19_02_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_19_03_world_ysera.sql (renamed from sql/old/3.3.5a/2012_11_19_03_world_ysera.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_20_00_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_11_20_00_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_21_00_world_sai.sql (renamed from sql/old/3.3.5a/2012_11_21_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_24_00_world_conditions.sql (renamed from sql/old/3.3.5a/2012_11_24_00_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_24_00_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_11_24_00_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_24_01_world_quest_start_scripts.sql (renamed from sql/old/3.3.5a/2012_11_24_01_world_quest_start_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_24_02_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_11_24_02_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_24_02_world_gossip_menu_option.sql (renamed from sql/old/3.3.5a/2012_11_24_02_world_gossip_menu_option.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_24_03_world_various_fixes.sql (renamed from sql/old/3.3.5a/2012_11_24_03_world_various_fixes.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_24_04_world_sai.sql (renamed from sql/old/3.3.5a/2012_11_24_04_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_25_00_world_various_fixes.sql (renamed from sql/old/3.3.5a/2012_11_25_00_world_various_fixes.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_25_01_world_various_fixes.sql (renamed from sql/old/3.3.5a/2012_11_25_01_world_various_fixes.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_26_02_world_conditions.sql (renamed from sql/old/3.3.5a/2012_11_26_02_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_26_03_world_misc.sql (renamed from sql/old/3.3.5a/2012_11_26_03_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_27_00_world_misc.sql (renamed from sql/old/3.3.5a/2012_11_27_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_27_01_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2012_11_27_01_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_30_00_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_11_30_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_01_00_world_assembly_of_iron.sql (renamed from sql/old/3.3.5a/2012_12_01_00_world_assembly_of_iron.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_01_01_world_misc.sql (renamed from sql/old/3.3.5a/2012_12_01_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_01_02_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_12_01_02_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_01_03_world_ulduar_creature_text.sql (renamed from sql/old/3.3.5a/2012_12_01_03_world_ulduar_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_01_04_world_spelldifficulty_dbc.sql (renamed from sql/old/3.3.5a/2012_12_01_04_world_spelldifficulty_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_01_05_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_12_01_05_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_02_00_world_game_object.sql (renamed from sql/old/3.3.5a/2012_12_02_00_world_game_object.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_02_01_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_12_02_01_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_02_02_world_waypoint_data.sql (renamed from sql/old/3.3.5a/2012_12_02_02_world_waypoint_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_04_00_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_12_04_00_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_04_01_world_quest_start_scripts.sql (renamed from sql/old/3.3.5a/2012_12_04_01_world_quest_start_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_04_02_world_reputation_reward_rate.sql (renamed from sql/old/3.3.5a/2012_12_04_02_world_reputation_reward_rate.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_04_03_world_reputation_reward_rate.sql (renamed from sql/old/3.3.5a/2012_12_04_03_world_reputation_reward_rate.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_04_04_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_12_04_04_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_04_05_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_12_04_05_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_04_06_world_spell_creature_text.sql (renamed from sql/old/3.3.5a/2012_12_04_06_world_spell_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_05_00_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_12_05_00_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_06_00_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_12_06_00_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_07_00_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_12_07_00_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_07_00_world_script_texts.sql (renamed from sql/old/3.3.5a/2012_12_07_00_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_07_01_world_misc.sql (renamed from sql/old/3.3.5a/2012_12_07_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_07_02_world_tracker_pitcrawler.sql (renamed from sql/old/3.3.5a/2012_12_07_02_world_tracker_pitcrawler.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_07_03_world_tracker_trista.sql (renamed from sql/old/3.3.5a/2012_12_07_03_world_tracker_trista.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_07_04_world_misc.sql (renamed from sql/old/3.3.5a/2012_12_07_04_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_07_05_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_12_07_05_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_07_06_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_07_06_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_07_07_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_07_07_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_07_08_world_misc.sql (renamed from sql/old/3.3.5a/2012_12_07_08_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_07_09_world_db_script_string.sql (renamed from sql/old/3.3.5a/2012_12_07_09_world_db_script_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_08_00_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_12_08_00_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_08_01_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_08_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_09_00_world_conditions.sql (renamed from sql/old/3.3.5a/2012_12_09_00_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_09_00_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_12_09_00_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_09_01_world_misc.sql (renamed from sql/old/3.3.5a/2012_12_09_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_09_02_world_quest_template.sql (renamed from sql/old/3.3.5a/2012_12_09_02_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_10_00_world_smart_scripts.sql (renamed from sql/old/3.3.5a/2012_12_10_00_world_smart_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_10_01_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_12_10_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_10_02_world_spawns_waypoints.sql (renamed from sql/old/3.3.5a/2012_12_10_02_world_spawns_waypoints.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_13_00_world_misc.sql (renamed from sql/old/3.3.5a/2012_12_13_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_14_00_world_conditions.sql (renamed from sql/old/3.3.5a/2012_12_14_00_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_14_01_world_waypoint_data.sql (renamed from sql/old/3.3.5a/2012_12_14_01_world_waypoint_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_14_02_world_misc.sql (renamed from sql/old/3.3.5a/2012_12_14_02_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_14_03_world_npc_spellclick_spells.sql (renamed from sql/old/3.3.5a/2012_12_14_03_world_npc_spellclick_spells.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_14_04_world_misc.sql (renamed from sql/old/3.3.5a/2012_12_14_04_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_14_05_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2012_12_14_05_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_15_00_world_waypoint_data.sql (renamed from sql/old/3.3.5a/2012_12_15_00_world_waypoint_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_15_01_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_15_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_15_02_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_15_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_15_03_world_quest_end_scripts.sql (renamed from sql/old/3.3.5a/2012_12_15_03_world_quest_end_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_16_00_world_creature_addon.sql (renamed from sql/old/3.3.5a/2012_12_16_00_world_creature_addon.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_16_01_world_npc_vendor.sql (renamed from sql/old/3.3.5a/2012_12_16_01_world_npc_vendor.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_16_02_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_12_16_02_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_16_03_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_16_03_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_17_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2012_12_17_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_17_00_world_song_of_wind_and_water.sql (renamed from sql/old/3.3.5a/2012_12_17_00_world_song_of_wind_and_water.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_17_00_world_spell_linked_spell.sql (renamed from sql/old/3.3.5a/2012_12_17_00_world_spell_linked_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_18_00_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_12_18_00_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_18_00_world_waking_the_sleeper.sql (renamed from sql/old/3.3.5a/2012_12_18_00_world_waking_the_sleeper.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_18_01_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_12_18_01_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_18_02_world_misc.sql (renamed from sql/old/3.3.5a/2012_12_18_02_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_18_02_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_18_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_19_00_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_19_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_19_01_world_viscidus.sql (renamed from sql/old/3.3.5a/2012_12_19_01_world_viscidus.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_19_02_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_19_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_20_00_world_conditions.sql (renamed from sql/old/3.3.5a/2012_12_20_00_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_20_01_world_conditions.sql (renamed from sql/old/3.3.5a/2012_12_20_01_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_20_02_world_misc.sql (renamed from sql/old/3.3.5a/2012_12_20_02_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_20_03_world_conditions.sql (renamed from sql/old/3.3.5a/2012_12_20_03_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_21_00_world_conditions.sql (renamed from sql/old/3.3.5a/2012_12_21_00_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_21_01_world_conditions.sql (renamed from sql/old/3.3.5a/2012_12_21_01_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_22_01_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_22_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_22_02_world_the_crusaders_pinnacle.sql (renamed from sql/old/3.3.5a/2012_12_22_02_world_the_crusaders_pinnacle.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_23_00_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_12_23_00_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_23_01_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_12_23_01_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_23_02_world_trinity_string.sql (renamed from sql/old/3.3.5a/2012_12_23_02_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_23_03_world_misc.sql (renamed from sql/old/3.3.5a/2012_12_23_03_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_24_00_world_defending_wyrmrest_temple.sql (renamed from sql/old/3.3.5a/2012_12_24_00_world_defending_wyrmrest_temple.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_24_01_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_24_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_24_02_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_24_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_24_03_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_24_03_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_24_04_world_creature.sql (renamed from sql/old/3.3.5a/2012_12_24_04_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_24_05_world_object.sql (renamed from sql/old/3.3.5a/2012_12_24_05_world_object.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_24_06_world_reputation.sql (renamed from sql/old/3.3.5a/2012_12_24_06_world_reputation.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_24_07_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_24_07_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_24_08_world_conditions.sql (renamed from sql/old/3.3.5a/2012_12_24_08_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_24_09_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_24_09_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_25_00_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_25_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_25_01_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_25_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_25_02_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_25_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_25_03_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_25_03_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_25_04_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_25_04_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_01_world_creature_text.sql (renamed from sql/old/3.3.5a/2012_12_26_01_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_02_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_26_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_03_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_26_03_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_04_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_26_04_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_05_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_26_05_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_06_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_26_06_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_07_world_game_event.sql (renamed from sql/old/3.3.5a/2012_12_26_07_world_game_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_08_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_26_08_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_09_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_26_09_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_10_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_26_10_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_11_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_26_11_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_12_world_quest_end_scripts.sql (renamed from sql/old/3.3.5a/2012_12_26_12_world_quest_end_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_13_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_26_13_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_14_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_26_14_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_15_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_26_15_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_16_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_26_16_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_17_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_26_17_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_18_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_26_18_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_19_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_26_19_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_20_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_26_20_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_27_00_world_orgrims_hammer.sql (renamed from sql/old/3.3.5a/2012_12_27_00_world_orgrims_hammer.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_27_01_world_locales_quest.sql (renamed from sql/old/3.3.5a/2012_12_27_01_world_locales_quest.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_27_02_world_locales.sql (renamed from sql/old/3.3.5a/2012_12_27_02_world_locales.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_27_03_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_27_03_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_27_04_world_the_shadows_vault.sql (renamed from sql/old/3.3.5a/2012_12_27_04_world_the_shadows_vault.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_28_00_world_command.sql (renamed from sql/old/3.3.5a/2012_12_28_00_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_28_01_world_misc.sql (renamed from sql/old/3.3.5a/2012_12_28_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_28_02_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_28_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_28_03_world_disables.sql (renamed from sql/old/3.3.5a/2012_12_28_03_world_disables.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_28_04_world_citadel_footsteps.sql (renamed from sql/old/3.3.5a/2012_12_28_04_world_citadel_footsteps.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_30_01_world_trinity_string.sql (renamed from sql/old/3.3.5a/2012_12_30_01_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_31_00_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_31_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_31_01_world_sai.sql (renamed from sql/old/3.3.5a/2012_12_31_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_01_00_world_item_template_restore.sql (renamed from sql/old/3.3.5a/2013_01_01_00_world_item_template_restore.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_01_01_world_creature_text.sql (renamed from sql/old/3.3.5a/2013_01_01_01_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_00_world_misc.sql (renamed from sql/old/3.3.5a/2013_01_02_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_01_world_spell_script.sql (renamed from sql/old/3.3.5a/2013_01_02_01_world_spell_script.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_02_world_instance_template.sql (renamed from sql/old/3.3.5a/2013_01_02_02_world_instance_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_03_world_sai.sql (renamed from sql/old/3.3.5a/2013_01_02_03_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_04_world_creature.sql (renamed from sql/old/3.3.5a/2013_01_02_04_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_05_world_eye_of_eternity.sql (renamed from sql/old/3.3.5a/2013_01_02_05_world_eye_of_eternity.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_06_world_sai.sql (renamed from sql/old/3.3.5a/2013_01_02_06_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_06_world_waypoints.sql (renamed from sql/old/3.3.5a/2013_01_02_06_world_waypoints.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_07_world_waypoints.sql (renamed from sql/old/3.3.5a/2013_01_02_07_world_waypoints.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_08_world_sai.sql (renamed from sql/old/3.3.5a/2013_01_02_08_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_09_world_waypoints.sql (renamed from sql/old/3.3.5a/2013_01_02_09_world_waypoints.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_10_world_sai.sql (renamed from sql/old/3.3.5a/2013_01_02_10_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_11_world_sai.sql (renamed from sql/old/3.3.5a/2013_01_02_11_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_12_world_go_script.sql (renamed from sql/old/3.3.5a/2013_01_02_12_world_go_script.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_12_world_waypoints.sql (renamed from sql/old/3.3.5a/2013_01_02_12_world_waypoints.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_00_world_gameobject_scripts.sql (renamed from sql/old/3.3.5a/2013_01_03_00_world_gameobject_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_01_world_sai.sql (renamed from sql/old/3.3.5a/2013_01_03_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_02_world_sai.sql (renamed from sql/old/3.3.5a/2013_01_03_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_03_world_spelldifficulty_dbc.sql (renamed from sql/old/3.3.5a/2013_01_03_03_world_spelldifficulty_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_04_world_sai.sql (renamed from sql/old/3.3.5a/2013_01_03_04_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_05_world_sai.sql (renamed from sql/old/3.3.5a/2013_01_03_05_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_06_world_sai.sql (renamed from sql/old/3.3.5a/2013_01_03_06_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_07_world_sai.sql (renamed from sql/old/3.3.5a/2013_01_03_07_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_08_world_misc.sql (renamed from sql/old/3.3.5a/2013_01_03_08_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_09_world_sai.sql (renamed from sql/old/3.3.5a/2013_01_03_09_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_10_world_gameobject.sql (renamed from sql/old/3.3.5a/2013_01_03_10_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_11_world_item_template.sql (renamed from sql/old/3.3.5a/2013_01_03_11_world_item_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_12_world_gameobject_scripts.sql (renamed from sql/old/3.3.5a/2013_01_03_12_world_gameobject_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_12_world_misc.sql (renamed from sql/old/3.3.5a/2013_01_03_12_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_13_world_quest_template.sql (renamed from sql/old/3.3.5a/2013_01_03_13_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_14_world_spell_area.sql (renamed from sql/old/3.3.5a/2013_01_03_14_world_spell_area.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_15_world_various_fixes.sql (renamed from sql/old/3.3.5a/2013_01_03_15_world_various_fixes.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_16_world_various_fixes.sql (renamed from sql/old/3.3.5a/2013_01_03_16_world_various_fixes.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_04_00_world_creature_text.sql (renamed from sql/old/3.3.5a/2013_01_04_00_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_04_01_world_sai.sql (renamed from sql/old/3.3.5a/2013_01_04_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_04_02_world_misc.sql (renamed from sql/old/3.3.5a/2013_01_04_02_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_04_02_world_novos_the_summoner.sql (renamed from sql/old/3.3.5a/2013_01_04_02_world_novos_the_summoner.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_05_00_world_waypoints.sql (renamed from sql/old/3.3.5a/2013_01_05_00_world_waypoints.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_06_00_world_creature_addon.sql (renamed from sql/old/3.3.5a/2013_01_06_00_world_creature_addon.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_06_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2013_01_06_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_06_01_world_waypoints.sql (renamed from sql/old/3.3.5a/2013_01_06_01_world_waypoints.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_06_02_world_misc.sql (renamed from sql/old/3.3.5a/2013_01_06_02_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_06_03_world_sai.sql (renamed from sql/old/3.3.5a/2013_01_06_03_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_06_04_world_misc.sql (renamed from sql/old/3.3.5a/2013_01_06_04_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_00_world_sai.sql (renamed from sql/old/3.3.5a/2013_01_07_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_01_world_creature_addon.sql (renamed from sql/old/3.3.5a/2013_01_07_01_world_creature_addon.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_02_world_creature_text.sql (renamed from sql/old/3.3.5a/2013_01_07_02_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_03_world_creature_text.sql (renamed from sql/old/3.3.5a/2013_01_07_03_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_04_world_creature_text.sql (renamed from sql/old/3.3.5a/2013_01_07_04_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_05_world_creature_text.sql (renamed from sql/old/3.3.5a/2013_01_07_05_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_06_world_creature_text.sql (renamed from sql/old/3.3.5a/2013_01_07_06_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_07_world_creature_text.sql (renamed from sql/old/3.3.5a/2013_01_07_07_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_08_world_creature_text.sql (renamed from sql/old/3.3.5a/2013_01_07_08_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_09_world_buru.sql (renamed from sql/old/3.3.5a/2013_01_07_09_world_buru.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_10_world_skeram.sql (renamed from sql/old/3.3.5a/2013_01_07_10_world_skeram.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_11_world_sai.sql (renamed from sql/old/3.3.5a/2013_01_07_11_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_12_world_sai.sql (renamed from sql/old/3.3.5a/2013_01_07_12_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_13_world_creature_text.sql (renamed from sql/old/3.3.5a/2013_01_07_13_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_14_world_creature_text.sql (renamed from sql/old/3.3.5a/2013_01_07_14_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_15_world_creature_addon.sql (renamed from sql/old/3.3.5a/2013_01_07_15_world_creature_addon.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_16_world_creature_addon.sql (renamed from sql/old/3.3.5a/2013_01_07_16_world_creature_addon.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_17_world_creature_text.sql (renamed from sql/old/3.3.5a/2013_01_07_17_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_18_world_creature_text.sql (renamed from sql/old/3.3.5a/2013_01_07_18_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_08_01_world_raise_the_barricades.sql (renamed from sql/old/3.3.5a/2013_01_08_01_world_raise_the_barricades.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_09_00_world_misc.sql (renamed from sql/old/3.3.5a/2013_01_09_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_09_01_world_lfg_dungeon_rewards.sql (renamed from sql/old/3.3.5a/2013_01_09_01_world_lfg_dungeon_rewards.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_09_02_world_sai.sql (renamed from sql/old/3.3.5a/2013_01_09_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_09_03_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2013_01_09_03_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_10_00_world_trinity_string.sql (renamed from sql/old/3.3.5a/2013_01_10_00_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_10_01_world_sai.sql (renamed from sql/old/3.3.5a/2013_01_10_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_10_02_world_creature_addon.sql (renamed from sql/old/3.3.5a/2013_01_10_02_world_creature_addon.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_10_03_world_creature_addon.sql (renamed from sql/old/3.3.5a/2013_01_10_03_world_creature_addon.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_10_04_world_creature_addon.sql (renamed from sql/old/3.3.5a/2013_01_10_04_world_creature_addon.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_10_05_world_sai.sql (renamed from sql/old/3.3.5a/2013_01_10_05_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_11_00_world_ayamiss.sql (renamed from sql/old/3.3.5a/2013_01_11_00_world_ayamiss.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_11_01_world_conditions.sql (renamed from sql/old/3.3.5a/2013_01_11_01_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_11_02_world_sai.sql (renamed from sql/old/3.3.5a/2013_01_11_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_11_03_world_sai.sql (renamed from sql/old/3.3.5a/2013_01_11_03_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_11_04_world_sai.sql (renamed from sql/old/3.3.5a/2013_01_11_04_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_11_05_world_creature_text.sql (renamed from sql/old/3.3.5a/2013_01_11_05_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_12_00_world_smart_scripts.sql (renamed from sql/old/3.3.5a/2013_01_12_00_world_smart_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_12_01_world_string.sql (renamed from sql/old/3.3.5a/2013_01_12_01_world_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_12_02_world_creature_template.sql (renamed from sql/old/3.3.5a/2013_01_12_02_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_12_03_world_gameobject.sql (renamed from sql/old/3.3.5a/2013_01_12_03_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_12_03_world_waypoints.sql (renamed from sql/old/3.3.5a/2013_01_12_03_world_waypoints.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_12_04_world_misc.sql (renamed from sql/old/3.3.5a/2013_01_12_04_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_12_05_world_waypoint_script.sql (renamed from sql/old/3.3.5a/2013_01_12_05_world_waypoint_script.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_13_00_world_gameobject_template.sql (renamed from sql/old/3.3.5a/2013_01_13_00_world_gameobject_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_13_01_world_sai.sql (renamed from sql/old/3.3.5a/2013_01_13_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_13_02_world_gluttonous_lurkers.sql (renamed from sql/old/3.3.5a/2013_01_13_02_world_gluttonous_lurkers.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_13_03_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2013_01_13_03_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_13_04_world_conditions.sql (renamed from sql/old/3.3.5a/2013_01_13_04_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/auth/2013_01_27_00_auth_realmlist.sql (renamed from sql/old/3.3.5a/2013_01_27_00_auth_realmlist.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/auth/2013_02_04_00_auth_misc.sql (renamed from sql/old/3.3.5a/2013_02_04_00_auth_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/auth/2013_02_04_01_auth_account.sql (renamed from sql/old/3.3.5a/2013_02_04_01_auth_account.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/auth/2013_02_05_00_auth_account.sql (renamed from sql/old/3.3.5a/2013_02_05_00_auth_account.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/auth/2013_02_07_00_auth_account.sql (renamed from sql/old/3.3.5a/2013_02_07_00_auth_account.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/auth/2013_02_08_00_auth_account.sql (renamed from sql/old/3.3.5a/2013_02_08_00_auth_account.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_14_00_world_version.sql (renamed from sql/old/3.3.5a/2013_01_14_00_world_version.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_14_01_world_game_event.sql (renamed from sql/old/3.3.5a/2013_01_14_01_world_game_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_14_02_world_ip2nationcountries.sql (renamed from sql/old/3.3.5a/2013_01_14_02_world_ip2nationcountries.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_14_03_world_lefty_loosy_righty_tighty.sql (renamed from sql/old/3.3.5a/2013_01_14_03_world_lefty_loosy_righty_tighty.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_15_00_world_creature.sql (renamed from sql/old/3.3.5a/2013_01_15_00_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_15_01_world_misc.sql (renamed from sql/old/3.3.5a/2013_01_15_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_15_02_world_game_event.sql (renamed from sql/old/3.3.5a/2013_01_15_02_world_game_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_15_03_world_misc.sql (renamed from sql/old/3.3.5a/2013_01_15_03_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_15_04_world_game_event.sql (renamed from sql/old/3.3.5a/2013_01_15_04_world_game_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_15_05_world_creature_addon.sql (renamed from sql/old/3.3.5a/2013_01_15_05_world_creature_addon.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_15_06_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2013_01_15_06_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_16_00_world_gossip_menu.sql (renamed from sql/old/3.3.5a/2013_01_16_00_world_gossip_menu.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_16_01_world_creature_text.sql (renamed from sql/old/3.3.5a/2013_01_16_01_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_17_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2013_01_17_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_17_01_world_creature.sql (renamed from sql/old/3.3.5a/2013_01_17_01_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_18_00_world_misc.sql (renamed from sql/old/3.3.5a/2013_01_18_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_18_01_world_creature_template_addon.sql (renamed from sql/old/3.3.5a/2013_01_18_01_world_creature_template_addon.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_18_02_world_creature_template_addon.sql (renamed from sql/old/3.3.5a/2013_01_18_02_world_creature_template_addon.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_19_00_world_creature_text.sql (renamed from sql/old/3.3.5a/2013_01_19_00_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_19_01_world_creature_text.sql (renamed from sql/old/3.3.5a/2013_01_19_01_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_19_02_world_conditions.sql (renamed from sql/old/3.3.5a/2013_01_19_02_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_19_03_world_creature_text.sql (renamed from sql/old/3.3.5a/2013_01_19_03_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_19_04_world_creature_addon.sql (renamed from sql/old/3.3.5a/2013_01_19_04_world_creature_addon.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_19_04_world_creature_text.sql (renamed from sql/old/3.3.5a/2013_01_19_04_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_19_05_world_creature_addon.sql (renamed from sql/old/3.3.5a/2013_01_19_05_world_creature_addon.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_19_06_world_misc.sql (renamed from sql/old/3.3.5a/2013_01_19_06_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_19_06_world_trinity_string.sql (renamed from sql/old/3.3.5a/2013_01_19_06_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_20_00_world_sai.sql (renamed from sql/old/3.3.5a/2013_01_20_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_20_01_world_creature_text.sql (renamed from sql/old/3.3.5a/2013_01_20_01_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_20_02_world_creature_text.sql (renamed from sql/old/3.3.5a/2013_01_20_02_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_20_03_world_creature_text.sql (renamed from sql/old/3.3.5a/2013_01_20_03_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_20_03_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2013_01_20_03_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_20_04_world_creature_text.sql (renamed from sql/old/3.3.5a/2013_01_20_04_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_20_05_world_sai.sql (renamed from sql/old/3.3.5a/2013_01_20_05_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_20_06_world_creature.sql (renamed from sql/old/3.3.5a/2013_01_20_06_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_20_07_world_sai.sql (renamed from sql/old/3.3.5a/2013_01_20_07_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_20_08_world_sai.sql (renamed from sql/old/3.3.5a/2013_01_20_08_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_20_09_world_spell_dbc.sql (renamed from sql/old/3.3.5a/2013_01_20_09_world_spell_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_21_00_world_misc.sql (renamed from sql/old/3.3.5a/2013_01_21_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_21_01_world_creature_template.sql (renamed from sql/old/3.3.5a/2013_01_21_01_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_21_02_world_sai.sql (renamed from sql/old/3.3.5a/2013_01_21_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_22_00_world_command.sql (renamed from sql/old/3.3.5a/2013_01_22_00_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_22_01_world_sai.sql (renamed from sql/old/3.3.5a/2013_01_22_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_23_00_world_misc.sql (renamed from sql/old/3.3.5a/2013_01_23_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_23_01_world_misc.sql (renamed from sql/old/3.3.5a/2013_01_23_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_23_02_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2013_01_23_02_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_24_00_world_sai.sql (renamed from sql/old/3.3.5a/2013_01_24_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_25_00_world_creature_text.sql (renamed from sql/old/3.3.5a/2013_01_25_00_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_25_01_world_creature_classlevelstats.sql (renamed from sql/old/3.3.5a/2013_01_25_01_world_creature_classlevelstats.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_25_02_world_smart_scripts.sql (renamed from sql/old/3.3.5a/2013_01_25_02_world_smart_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_26_00_world_misc.sql (renamed from sql/old/3.3.5a/2013_01_26_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_26_01_world_creature_loot_template.sql (renamed from sql/old/3.3.5a/2013_01_26_01_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_26_02_world_reference_loot_template.sql (renamed from sql/old/3.3.5a/2013_01_26_02_world_reference_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_26_03_world_conditions.sql (renamed from sql/old/3.3.5a/2013_01_26_03_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_26_04_world_item_loot_template.sql (renamed from sql/old/3.3.5a/2013_01_26_04_world_item_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_26_05_world_misc.sql (renamed from sql/old/3.3.5a/2013_01_26_05_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_26_05_world_misc_pinfo.sql (renamed from sql/old/3.3.5a/2013_01_26_05_world_misc_pinfo.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_26_06_world_creature_template.sql (renamed from sql/old/3.3.5a/2013_01_26_06_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_26_07_world_gameobject_template.sql (renamed from sql/old/3.3.5a/2013_01_26_07_world_gameobject_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_27_00_world_creature.sql (renamed from sql/old/3.3.5a/2013_01_27_00_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_27_01_world_gameobject_template.sql (renamed from sql/old/3.3.5a/2013_01_27_01_world_gameobject_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_28_00_world_gameobject.sql (renamed from sql/old/3.3.5a/2013_01_28_00_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_29_00_world_gameobject_loot_template.sql (renamed from sql/old/3.3.5a/2013_01_29_00_world_gameobject_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_29_01_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2013_01_29_01_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_29_02_world_gameobject_loot_template.sql (renamed from sql/old/3.3.5a/2013_01_29_02_world_gameobject_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_01_00_world_gameobject.sql (renamed from sql/old/3.3.5a/2013_02_01_00_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_01_01_world_spell_loot_template.sql (renamed from sql/old/3.3.5a/2013_02_01_01_world_spell_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_01_02_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2013_02_01_02_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_01_03_world_wdbverified.sql (renamed from sql/old/3.3.5a/2013_02_01_03_world_wdbverified.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_03_00_world_lfg_entrances.sql (renamed from sql/old/3.3.5a/2013_02_03_00_world_lfg_entrances.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_04_00_world_misc.sql (renamed from sql/old/3.3.5a/2013_02_04_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_04_01_world_creature_text.sql (renamed from sql/old/3.3.5a/2013_02_04_01_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_04_02_world_misc.sql (renamed from sql/old/3.3.5a/2013_02_04_02_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_04_03_world_misc.sql (renamed from sql/old/3.3.5a/2013_02_04_03_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_04_04_world_trinity_string.sql (renamed from sql/old/3.3.5a/2013_02_04_04_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_04_05_world_spell_script_names.sql (renamed from sql/old/3.3.5a/2013_02_04_05_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_04_06_world_command.sql (renamed from sql/old/3.3.5a/2013_02_04_06_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_04_07_world_achievement_criteria_data.sql (renamed from sql/old/3.3.5a/2013_02_04_07_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_04_08_world_creature_template.sql (renamed from sql/old/3.3.5a/2013_02_04_08_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_05_00_world_disables.sql (renamed from sql/old/3.3.5a/2013_02_05_00_world_disables.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_05_01_world_item_template.sql (renamed from sql/old/3.3.5a/2013_02_05_01_world_item_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_06_00_world_disables.sql (renamed from sql/old/3.3.5a/2013_02_06_00_world_disables.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_06_01_world_misc.sql (renamed from sql/old/3.3.5a/2013_02_06_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_07_00_world_areatrigger_teleport.sql (renamed from sql/old/3.3.5a/2013_02_07_00_world_areatrigger_teleport.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_09_00_world_gameobject.sql (renamed from sql/old/3.3.5a/2013_02_09_00_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_09_01_world_creature_equip_template.sql (renamed from sql/old/3.3.5a/2013_02_09_01_world_creature_equip_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_09_02_world_areatrigger_teleport.sql (renamed from sql/old/3.3.5a/2013_02_09_02_world_areatrigger_teleport.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_09_03_world_player_factionchange_spells.sql (renamed from sql/old/3.3.5a/2013_02_09_03_world_player_factionchange_spells.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_10_00_world_areatrigger_teleport.sql (renamed from sql/old/3.3.5a/2013_02_10_00_world_areatrigger_teleport.sql)0
-rw-r--r--sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_11_00_world_creature_template.sql (renamed from sql/old/3.3.5a/2013_02_11_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_00_auth_misc.sql (renamed from sql/updates/auth/2013_02_25_00_auth_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_01_auth_misc.sql (renamed from sql/updates/auth/2013_02_25_01_auth_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_02_auth_misc.sql (renamed from sql/updates/auth/2013_02_25_02_auth_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_03_auth_misc.sql (renamed from sql/updates/auth/2013_02_25_03_auth_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_04_auth_misc.sql (renamed from sql/updates/auth/2013_02_25_04_auth_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_05_auth_misc.sql (renamed from sql/updates/auth/2013_02_25_05_auth_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_06_auth_misc.sql (renamed from sql/updates/auth/2013_02_25_06_auth_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_07_auth_misc.sql (renamed from sql/updates/auth/2013_02_25_07_auth_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_08_auth_misc.sql (renamed from sql/updates/auth/2013_02_25_08_auth_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_09_auth_misc.sql (renamed from sql/updates/auth/2013_02_25_09_auth_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_10_auth_misc.sql (renamed from sql/updates/auth/2013_02_25_10_auth_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_11_auth_misc.sql (renamed from sql/updates/auth/2013_02_25_11_auth_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_12_auth_misc.sql (renamed from sql/updates/auth/2013_02_25_12_auth_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_13_auth_misc.sql (renamed from sql/updates/auth/2013_02_25_13_auth_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_14_auth_misc.sql (renamed from sql/updates/auth/2013_02_25_14_auth_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_03_08_00_auth_misc.sql (renamed from sql/updates/auth/2013_03_08_00_auth_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_03_11_00_auth_rbac_security_level_groups.sql (renamed from sql/updates/auth/2013_03_11_00_auth_rbac_security_level_groups.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_04_22_00_auth_misc.sql (renamed from sql/updates/auth/2013_04_22_00_auth_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_04_27_00_auth_misc.sql (renamed from sql/updates/auth/2013_04_27_00_auth_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_05_26_00_auth_rbac.sql14
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_06_02_00_auth_autobroadcast.sql5
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/characters/2013_03_04_00_characters_character_queststatus_rewarded.sql (renamed from sql/updates/characters/2013_03_04_00_characters_character_queststatus_rewarded.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/characters/2013_04_05_00_characters_banned_addons.sql (renamed from sql/updates/characters/2013_04_05_00_characters_banned_addons.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/characters/2013_06_23_00_characters_game_event.sql3
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_14_00_world_version.sql (renamed from sql/updates/world/2013_02_14_00_world_version.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_15_00_world_waypoint_data.sql (renamed from sql/updates/world/2013_02_15_00_world_waypoint_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_16_00_world_creature_template.sql (renamed from sql/updates/world/2013_02_16_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_16_01_world_spell_target_position.sql (renamed from sql/updates/world/2013_02_16_01_world_spell_target_position.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_16_02_world_creature_text.sql (renamed from sql/updates/world/2013_02_16_02_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_16_03_world_sai.sql (renamed from sql/updates/world/2013_02_16_03_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_16_04_world_creature_loot_template.sql (renamed from sql/updates/world/2013_02_16_04_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_16_05_world_quest_template.sql (renamed from sql/updates/world/2013_02_16_05_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_17_00_world_spell_script_names.sql (renamed from sql/updates/world/2013_02_17_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_18_00_world_misc_equip.sql (renamed from sql/updates/world/2013_02_18_00_world_misc_equip.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_18_01_world_trinity_string.sql (renamed from sql/updates/world/2013_02_18_01_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_18_02_world_misc.sql (renamed from sql/updates/world/2013_02_18_02_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_18_03_world_spell_area.sql (renamed from sql/updates/world/2013_02_18_03_world_spell_area.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_19_00_world_creature_template.sql (renamed from sql/updates/world/2013_02_19_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_19_01_world_creature_template.sql (renamed from sql/updates/world/2013_02_19_01_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_19_02_world_conditions.sql (renamed from sql/updates/world/2013_02_19_02_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_19_03_world_sai.sql (renamed from sql/updates/world/2013_02_19_03_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_19_04_world_misc_equip.sql (renamed from sql/updates/world/2013_02_19_04_world_misc_equip.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_23_00_world_gameobject.sql (renamed from sql/updates/world/2013_02_23_00_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_23_01_world_areatrigger_teleport.sql (renamed from sql/updates/world/2013_02_23_01_world_areatrigger_teleport.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_24_00_world_creature_summon_groups.sql (renamed from sql/updates/world/2013_02_24_00_world_creature_summon_groups.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_24_01_world_areatrigger_scripts.sql (renamed from sql/updates/world/2013_02_24_01_world_areatrigger_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_24_02_world_smart_scripts.sql (renamed from sql/updates/world/2013_02_24_02_world_smart_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_24_03_world_waypoint_data.sql (renamed from sql/updates/world/2013_02_24_03_world_waypoint_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_24_04_world_creature_template.sql (renamed from sql/updates/world/2013_02_24_04_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_24_05_world_command.sql (renamed from sql/updates/world/2013_02_24_05_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_25_00_world_smart_scripts.sql (renamed from sql/updates/world/2013_02_25_00_world_smart_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_25_01_world_creature_ai_scripts.sql (renamed from sql/updates/world/2013_02_25_01_world_creature_ai_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_25_02_world_areatrigger_teleport.sql (renamed from sql/updates/world/2013_02_25_02_world_areatrigger_teleport.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_27_00_world_command.sql (renamed from sql/updates/world/2013_02_27_00_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_28_00_world_eye_of_eternity.sql (renamed from sql/updates/world/2013_02_28_00_world_eye_of_eternity.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_28_00_world_playercreateinfo_spell.sql (renamed from sql/updates/world/2013_02_28_00_world_playercreateinfo_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_01_00_world_misc.sql (renamed from sql/updates/world/2013_03_01_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_01_02_world_misc.sql (renamed from sql/updates/world/2013_03_01_02_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_02_00_world_conditions.sql (renamed from sql/updates/world/2013_03_02_00_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_03_00_world_eye_of_eternity.sql (renamed from sql/updates/world/2013_03_03_00_world_eye_of_eternity.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_03_01_world_misc.sql (renamed from sql/updates/world/2013_03_03_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_03_02_world_sai.sql (renamed from sql/updates/world/2013_03_03_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_04_01_world_waypoint_data.sql (renamed from sql/updates/world/2013_03_04_01_world_waypoint_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_04_02_world_quest_template.sql (renamed from sql/updates/world/2013_03_04_02_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_04_03_world_sai.sql (renamed from sql/updates/world/2013_03_04_03_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_04_04_world_player_factionchange_quests.sql (renamed from sql/updates/world/2013_03_04_04_world_player_factionchange_quests.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_04_05_world_player_factionchange_quests.sql (renamed from sql/updates/world/2013_03_04_05_world_player_factionchange_quests.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_06_00_world_conditions.sql (renamed from sql/updates/world/2013_03_06_00_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_07_00_world_conditions.sql (renamed from sql/updates/world/2013_03_07_00_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_07_01_world_misc.sql (renamed from sql/updates/world/2013_03_07_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_08_00_world_borrowed_technology.sql (renamed from sql/updates/world/2013_03_08_00_world_borrowed_technology.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_09_00_world_misc.sql (renamed from sql/updates/world/2013_03_09_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_09_01_world_gameobject_template.sql (renamed from sql/updates/world/2013_03_09_01_world_gameobject_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_09_02_world_command_deserter.sql (renamed from sql/updates/world/2013_03_09_02_world_command_deserter.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_09_03_world_trinity_string.sql (renamed from sql/updates/world/2013_03_09_03_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_09_04_world_trinity_string.sql (renamed from sql/updates/world/2013_03_09_04_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_09_05_world_misc.sql (renamed from sql/updates/world/2013_03_09_05_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_10_00_world_misc.sql (renamed from sql/updates/world/2013_03_10_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_11_00_world_misc.sql (renamed from sql/updates/world/2013_03_11_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_11_01_world_playercreateinfo_spell.sql (renamed from sql/updates/world/2013_03_11_01_world_playercreateinfo_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_12_00_world_playercreateinfo_spell_custom.sql (renamed from sql/updates/world/2013_03_12_00_world_playercreateinfo_spell_custom.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_13_00_world_misc.sql (renamed from sql/updates/world/2013_03_13_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_13_01_world_creature_loot_template.sql (renamed from sql/updates/world/2013_03_13_01_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_13_02_world_sai.sql (renamed from sql/updates/world/2013_03_13_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_13_03_world_playercreateinfo_spell.sql (renamed from sql/updates/world/2013_03_13_03_world_playercreateinfo_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_15_00_world_playercreateinfo_spell.sql (renamed from sql/updates/world/2013_03_15_00_world_playercreateinfo_spell.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_15_01_world_smart_scripts.sql (renamed from sql/updates/world/2013_03_15_01_world_smart_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_15_02_world_trinity_strings.sql (renamed from sql/updates/world/2013_03_15_02_world_trinity_strings.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_16_00_world_conditions.sql (renamed from sql/updates/world/2013_03_16_00_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_17_00_world_misc.sql (renamed from sql/updates/world/2013_03_17_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_17_01_world_creature_template_addon.sql (renamed from sql/updates/world/2013_03_17_01_world_creature_template_addon.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_17_02_world_sai.sql (renamed from sql/updates/world/2013_03_17_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_17_03_world_misc.sql (renamed from sql/updates/world/2013_03_17_03_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_20_00_world_guardians_of_the_altar.sql (renamed from sql/updates/world/2013_03_20_00_world_guardians_of_the_altar.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_23_00_world_sai.sql (renamed from sql/updates/world/2013_03_23_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_23_01_world_creature_text.sql (renamed from sql/updates/world/2013_03_23_01_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_23_02_world_creature.sql (renamed from sql/updates/world/2013_03_23_02_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_23_03_world_sai.sql (renamed from sql/updates/world/2013_03_23_03_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_23_04_world_waypoint_data.sql (renamed from sql/updates/world/2013_03_23_04_world_waypoint_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_24_00_world_spell_target_position.sql (renamed from sql/updates/world/2013_03_24_00_world_spell_target_position.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_24_01_world_creature_ai_scripts.sql (renamed from sql/updates/world/2013_03_24_01_world_creature_ai_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_24_02_world_quest_template.sql (renamed from sql/updates/world/2013_03_24_02_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_26_00_world_a_heros_headgear.sql (renamed from sql/updates/world/2013_03_26_00_world_a_heros_headgear.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_27_00_world_spell_target_position.sql (renamed from sql/updates/world/2013_03_27_00_world_spell_target_position.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_28_00_world_misc.sql (renamed from sql/updates/world/2013_03_28_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_29_00_world_misc.sql (renamed from sql/updates/world/2013_03_29_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_29_01_world_misc.sql (renamed from sql/updates/world/2013_03_29_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_29_02_world_waypoint_data.sql (renamed from sql/updates/world/2013_03_29_02_world_waypoint_data.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_01_00_world_misc.sql (renamed from sql/updates/world/2013_04_01_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_02_00_world_smart_scripts.sql (renamed from sql/updates/world/2013_04_02_00_world_smart_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_02_01_world_gameobject.sql (renamed from sql/updates/world/2013_04_02_01_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_02_02_world_creature.sql (renamed from sql/updates/world/2013_04_02_02_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_03_00_world_command.sql (renamed from sql/updates/world/2013_04_03_00_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_03_01_world_trinity_string.sql (renamed from sql/updates/world/2013_04_03_01_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_03_02_world_sai.sql (renamed from sql/updates/world/2013_04_03_02_world_sai.sql)2
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_05_00_world_sai.sql (renamed from sql/updates/world/2013_04_05_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_05_01_world_misc.sql (renamed from sql/updates/world/2013_04_05_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_05_02_world_creature_ai_scripts.sql (renamed from sql/updates/world/2013_04_05_02_world_creature_ai_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_06_00_world_quest_template.sql (renamed from sql/updates/world/2013_04_06_00_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_06_01_world_npc_trainer.sql (renamed from sql/updates/world/2013_04_06_01_world_npc_trainer.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_06_02_world_creature.sql (renamed from sql/updates/world/2013_04_06_02_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_06_03_world_misc.sql (renamed from sql/updates/world/2013_04_06_03_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_07_00_world_areatrigger_teleport.sql (renamed from sql/updates/world/2013_04_07_00_world_areatrigger_teleport.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_08_00_world_areatrigger_teleport.sql (renamed from sql/updates/world/2013_04_08_00_world_areatrigger_teleport.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_11_00_world_misc.sql (renamed from sql/updates/world/2013_04_11_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_11_01_world_misc.sql (renamed from sql/updates/world/2013_04_11_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_11_02_world_misc.sql (renamed from sql/updates/world/2013_04_11_02_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_11_03_world_misc.sql (renamed from sql/updates/world/2013_04_11_03_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_12_00_world_smart_scripts.sql (renamed from sql/updates/world/2013_04_12_00_world_smart_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_13_00_world_misc.sql (renamed from sql/updates/world/2013_04_13_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_13_01_world_misc.sql (renamed from sql/updates/world/2013_04_13_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_13_02_world_smart_scripts.sql (renamed from sql/updates/world/2013_04_13_02_world_smart_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_13_03_world_smart_scripts.sql (renamed from sql/updates/world/2013_04_13_03_world_smart_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_14_00_world_game_event.sql (renamed from sql/updates/world/2013_04_14_00_world_game_event.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_14_00_world_misc.sql (renamed from sql/updates/world/2013_04_14_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_16_00_world_sai.sql (renamed from sql/updates/world/2013_04_16_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_16_01_world_smart_scripts.sql (renamed from sql/updates/world/2013_04_16_01_world_smart_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_16_02_world_creature_text.sql (renamed from sql/updates/world/2013_04_16_02_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_19_00_world_sai.sql (renamed from sql/updates/world/2013_04_19_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_20_00_world_creature_loot_template.sql (renamed from sql/updates/world/2013_04_20_00_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_20_01_world_conditions.sql (renamed from sql/updates/world/2013_04_20_01_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_21_00_world_gameobject_loot_template.sql (renamed from sql/updates/world/2013_04_21_00_world_gameobject_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_21_00_world_skinning_loot_template.sql (renamed from sql/updates/world/2013_04_21_00_world_skinning_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_21_01_world_gameobject_template.sql (renamed from sql/updates/world/2013_04_21_01_world_gameobject_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_21_02_world_sai.sql (renamed from sql/updates/world/2013_04_21_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_22_00_world_misc.sql (renamed from sql/updates/world/2013_04_22_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_27_00_world_misc.sql (renamed from sql/updates/world/2013_04_27_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_27_01_world_misc.sql (renamed from sql/updates/world/2013_04_27_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_29_00_world_misc.sql (renamed from sql/updates/world/2013_04_29_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_04_00_world_creature_template.sql (renamed from sql/updates/world/2013_05_04_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_04_01_world_creature_template.sql (renamed from sql/updates/world/2013_05_04_01_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_11_00_world_spell_target_position.sql (renamed from sql/updates/world/2013_05_11_00_world_spell_target_position.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_12_00_world_misc.sql (renamed from sql/updates/world/2013_05_12_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_13_00_world_misc.sql (renamed from sql/updates/world/2013_05_13_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_13_00_world_spell_target_position.sql (renamed from sql/updates/world/2013_05_13_00_world_spell_target_position.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_14_00_world_instance_ulduar.sql (renamed from sql/updates/world/2013_05_14_00_world_instance_ulduar.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_16_00_world_spell_target_position.sql (renamed from sql/updates/world/2013_05_16_00_world_spell_target_position.sql)0
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_20_00_world_creature_addon.sql1
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_20_01_world_misc.sql35
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_20_02_world_areatrigger_teleport.sql5
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_21_00_world_trinity_strings.sql24
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_21_01_world_misc.sql25
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_22_00_world_sai.sql466
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_22_01_world_gameobject.sql3
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_22_02_world_sai.sql11
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_22_03_world_sai.sql54
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_23_00_world_misc.sql96
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_23_01_world_misc.sql39
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_24_00_world_misc.sql298
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_26_00_world_sai.sql115
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_26_01_world_sai.sql39
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_26_02_world_sai.sql79
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_26_03_world_sai.sql5
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_26_04_world_waypoints.sql27
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_26_05_world_misc.sql120
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_26_05_world_waypoints.sql55
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_27_00_world_sai.sql2
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_30_00_world_misc.sql103
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_31_00_world_misc.sql35
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_01_00_world_creature_template.sql2
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_01_01_world_fishing_loot_template.sql14
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_02_00_world_achievement_criteria_data.sql16
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_02_01_world_conditions.sql78
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_02_02_world_conditions.sql78
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_02_03_world_conditions.sql42
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_02_04_world_conditions.sql93
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_02_05_world_conditions.sql49
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_02_06_world_conditions.sql4
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_02_07_world_conditions.sql80
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_02_08_world_conditions.sql75
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_02_09_world_conditions.sql99
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_03_00_world_conditions.sql42
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_03_00_world_trinity_string.sql9
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_03_02_world_conditions.sql264
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_03_03_world_conditions.sql95
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_03_04_world_conditions.sql8
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_03_05_world_gossip.sql301
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_04_00_world_game_event_creature.sql2
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_04_01_world_sai.sql22
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_04_02_world_conditions.sql5
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_04_03_world_conditions.sql1
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_05_00_world_sai.sql61
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_05_01_world_misc.sql240
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_07_00_world_creature_ai_scripts.sql1
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_08_00_world_misc.sql54
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_09_00_world_misc.sql41
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_09_01_world_misc.sql15
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_10_00_world_sai.sql15
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_10_01_world_gossip.sql33
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_10_02_world_sai.sql21
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_11_00_world_creature_template.sql3
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_11_01_world_sai.sql2
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_12_00_world_misc.sql55
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_12_01_world_misc.sql13
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_13_00_world_misc.sql15
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_13_01_world_misc.sql166
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_13_02_world_misc.sql25
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_13_03_world_creature.sql31
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_13_04_world_sai.sql1
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_13_05_world_sai.sql1
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_15_00_world_creature.sql2
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_15_01_world_gossip.sql47
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_15_02_world_spelldifficulty_dbc.sql5
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_15_03_world_creature_template.sql2
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_16_00_world_misc.sql1
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_16_01_world_misc.sql23
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_16_02_world_misc.sql5
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_16_03_world_misc.sql13
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_16_04_world_creature_text.sql46
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_17_00_world_warden_checks.sql2
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_17_01_world_misc.sql255
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_17_02_world_misc.sql86
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_18_00_world_misc.sql6
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_18_01_world_misc.sql4
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_18_02_world_creature.sql3
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_18_03_world_sai.sql7
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_18_04_world_spell_script_names.sql5
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_18_05_world_misc.sql29
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_18_06_world_conditions.sql4
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_18_07_world_gossip.sql18
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_19_00_world_creature.sql78
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_20_00_world_creature.sql2
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_20_01_world_misc.sql7
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_20_02_world_creature_text.sql11
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_20_03_world_spell_script_names.sql3
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_20_04_world_waypoints.sql156
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_21_00_world_creature.sql15
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_21_01_world_creature.sql3
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_21_02_world_creature.sql14
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_21_03_world_instance_template.sql1
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_23_00_world_misc.sql10
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_23_01_world_misc.sql3
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_24_00_world_creature_text.sql22
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_24_01_world_misc.sql195
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_24_02_world_misc.sql2
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_25_00_world_player_factionchange_spells.sql5
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_25_00_world_sai.sql106
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_25_01_world_sai.sql118
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_25_02_world_sai.sql32
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_25_03_world_misc.sql241
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_25_04_world_item_template.sql1
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_25_05_world_misc.sql12
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_25_06_world_creature_template.sql2
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_25_07_world_creature_text.sql21
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_26_00_world_conditions.sql4
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_26_01_world_misc.sql39
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_26_02_world_gossip.sql9
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_26_03_world_creature_template.sql2
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_29_00_world_misc.sql14
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_29_01_world_creature_addon.sql10
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_29_02_world_creature_addon.sql4
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_29_03_world_misc.sql3
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_00_world_waypoints.sql42
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_01_world_smart_scripts.sql1
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_02_world_creature_template.sql1
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_03_world_conditions.sql3
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_04_world_sai.sql59
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_05_world_sai.sql829
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_06_world_sai.sql9
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_07_world_creature_loot_template.sql3
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_08_world_player_factionchange_spells.sql5
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_09_world_misc.sql44
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_10_world_creature_addon.sql1
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_11_world_misc.sql18
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_12_world_misc.sql15
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_13_world_misc.sql29
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_14_world_misc.sql82
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_15_world_waypoints.sql243
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_16_world_misc.sql104
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_01_00_world_misc.sql31
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_01_01_world_misc.sql5
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_01_02_world_creature.sql6
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_01_03_world_creature_template.sql4
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_01_04_world_gameobject.sql2
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_01_05_world_creature_text.sql33
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_01_06_world_gossip.sql7
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_02_00_world_gossip.sql15
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_04_00_world_misc.sql2
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_04_01_world_razorfen_kraul.sql26
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_04_02_world_misc.sql3
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_04_03_world_sai.sql14
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_05_00_world_sai.sql123
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_05_01_world_creature_template.sql204
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_05_02_world_QuestchainSOH.sql543
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_05_03_world_misc.sql27
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_05_04_world_sai.sql12
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_06_00_world_spelldifficulty_dbc.sql19
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_06_01_world_conditions.sql17
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_06_02_world_gobj_loot_template.sql3
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_06_03_world_creature_template.sql1
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_06_04_world_sai.sql9
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_07_00_world_misc.sql8
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_07_01_world_misc.sql19
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_08_00_world_gameobject.sql1
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_08_01_world_misc.sql77
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_08_02_world_misc.sql2
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_10_00_world_gameobject.sql20
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_10_01_world_misc.sql5
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_11_00_world_sai.sql3
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_11_01_world_waypoints.sql444
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_11_02_world_waypoints.sql351
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_12_00_world_sai.sql7
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_12_01_world_eai.sql1
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_13_00_world_misc.sql5
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_14_00_world_errors.sql4
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_14_01_world_item_template.sql14
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_15_00_world_gossip.sql25
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_15_01_world_gossip.sql15
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_15_02_world_gossip.sql8
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_15_03_world_gossip.sql37
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_16_00_world_misc.sql19
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_16_01_world_gameobject.sql1
-rw-r--r--sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_16_02_world_conditions.sql1
-rw-r--r--sql/updates/characters/2013_07_19_00_characters_corpse.sql1
-rw-r--r--sql/updates/world/2013_07_17_00_world_version.sql1
-rw-r--r--sql/updates/world/2013_07_17_01_world_conditions.sql10
-rw-r--r--sql/updates/world/2013_07_17_02_world_gossip.sql22
-rw-r--r--sql/updates/world/2013_07_17_03_world_gossip.sql53
-rw-r--r--sql/updates/world/2013_07_17_04_world_spell_script_names.sql4
-rw-r--r--sql/updates/world/2013_07_18_00_world_conditions.sql2
-rw-r--r--sql/updates/world/2013_07_18_01_world_koralon.sql15
-rw-r--r--sql/updates/world/2013_07_18_02_world_spell_script_names.sql5
-rw-r--r--sql/updates/world/2013_07_18_02_world_the_flesh_giant_slayer.sql26
-rw-r--r--sql/updates/world/2013_07_18_03_world_equipment.sql4
-rw-r--r--sql/updates/world/2013_07_19_00_world_misc.sql2
-rw-r--r--sql/updates/world/2013_07_20_00_world_gameobject.sql15
-rw-r--r--sql/updates/world/2013_07_20_01_world_misc.sql170
-rw-r--r--sql/updates/world/2013_07_23_00_world_misc.sql7
-rw-r--r--sql/updates/world/2013_07_23_02_world_creature_template.sql1
-rw-r--r--sql/updates/world/2013_07_24_00_world_spell_script_names.sql11
-rw-r--r--sql/updates/world/2013_07_24_01_world_spell_ranks_335.sql682
-rw-r--r--sql/updates/world/2013_07_24_02_world_trinity_strings.sql3
-rw-r--r--sql/updates/world/2013_07_24_03_world_spell_proc_event_335.sql876
-rw-r--r--sql/updates/world/2013_07_25_00_world_spell_script_names.sql22
-rw-r--r--sql/updates/world/2013_07_25_01_world_conditions.sql2
-rw-r--r--sql/updates/world/2013_07_27_00_world_spell_script_names.sql11
-rw-r--r--sql/updates/world/2013_07_28_00_world_gameobjects.sql75
-rw-r--r--sql/updates/world/2013_07_28_01_world_sai.sql24
-rw-r--r--sql/updates/world/2013_07_29_00_world_drak_tharon_keep.sql2
-rw-r--r--sql/updates/world/2013_07_29_01_world_spelldifficulty_dbc.sql3
-rw-r--r--sql/updates/world/2013_07_31_00_world_spell_script_names.sql4
-rw-r--r--sql/updates/world/2013_08_03_00_world_misc.sql22
-rw-r--r--sql/updates/world/2013_08_04_00_world_quests.sql390
-rw-r--r--sql/updates/world/2013_08_04_01_world_sai.sql21
-rw-r--r--sql/updates/world/2013_08_04_02_world_sai.sql45
-rw-r--r--sql/updates/world/2013_08_04_03_world_sai.sql20
-rw-r--r--sql/updates/world/2013_08_04_04_world_trinity_string.sql3
-rw-r--r--sql/updates/world/2013_08_05_00_world_sai.sql3
-rw-r--r--sql/updates/world/2013_08_05_01_world_misc.sql2
-rw-r--r--sql/updates/world/2013_08_05_01_world_trinity_string.sql8
-rw-r--r--sql/updates/world/2013_08_05_02_world_quest_relation_tables.sql28
-rw-r--r--sql/updates/world/2013_08_06_00_world_item_template.sql1
-rw-r--r--sql/updates/world/2013_08_06_01_world_hor.sql24
-rw-r--r--sql/updates/world/2013_08_06_02_world_command.sql3
-rw-r--r--sql/updates/world/2013_08_06_03_world_area_4522.sql95
-rw-r--r--sql/updates/world/2013_08_06_04_world_sai.sql35
-rw-r--r--sql/updates/world/2013_08_06_05_world_misc.sql333
-rw-r--r--sql/updates/world/2013_08_07_00_world_creature_template.sql1
-rw-r--r--sql/updates/world/2013_08_07_01_world_misc.sql6
-rw-r--r--sql/updates/world/2013_08_07_02_world_misc.sql3
-rw-r--r--sql/updates/world/2013_08_07_03_world_drak_tharon_keep.sql48
-rw-r--r--sql/updates/world/2013_08_07_04_world_misc.sql8
-rw-r--r--sql/updates/world/2013_08_07_05_world_misc.sql2
-rw-r--r--sql/updates/world/2013_08_07_06_world_drak_tharon_keep.sql31
-rw-r--r--sql/updates/world/2013_08_07_06_world_sai.sql96
-rw-r--r--sql/updates/world/2013_08_07_07_world_pathing.sql29
-rw-r--r--sql/updates/world/2013_08_07_08_world_sai.sql22
-rw-r--r--sql/updates/world/2013_08_07_09_world_sai.sql22
-rw-r--r--sql/updates/world/2013_08_07_10_world_sai.sql78
-rw-r--r--sql/updates/world/2013_08_07_11_world_sai.sql28
-rw-r--r--sql/updates/world/2013_08_07_12_world_sai.sql1
-rw-r--r--sql/updates/world/2013_08_07_13_world_creature_template.sql1
-rw-r--r--sql/updates/world/2013_08_07_14_world_sai_335.sql13
-rw-r--r--sql/updates/world/2013_08_08_00_world_creature_template.sql1
-rw-r--r--sql/updates/world/2013_08_08_01_world_creature_template.sql1
-rw-r--r--sql/updates/world/2013_08_08_02_world_creature_template.sql2
-rw-r--r--sql/updates/world/2013_08_09_00_world_sai.sql87
-rw-r--r--sql/updates/world/2013_08_09_01_world_sai.sql1
-rw-r--r--sql/updates/world/2013_08_09_02_world_cond_335.sql8
-rw-r--r--sql/updates/world/2013_08_09_03_world_sai.sql12
-rw-r--r--sql/updates/world/2013_08_09_04_world_sai.sql22
-rw-r--r--sql/updates/world/2013_08_09_05_world_sai.sql29
-rw-r--r--sql/updates/world/2013_08_09_06_world_ainame.sql8
-rw-r--r--sql/updates/world/2013_08_09_07_world_sai.sql41
-rw-r--r--src/server/CMakeLists.txt2
-rw-r--r--src/server/authserver/Authentication/AuthCodes.cpp1
-rw-r--r--src/server/authserver/CMakeLists.txt14
-rw-r--r--src/server/authserver/Main.cpp125
-rw-r--r--src/server/authserver/Server/AuthSocket.cpp12
-rw-r--r--src/server/authserver/Server/RealmSocket.cpp4
-rw-r--r--src/server/authserver/authserver.conf.dist13
-rw-r--r--src/server/collision/BoundingIntervalHierarchy.cpp2
-rw-r--r--src/server/collision/Management/MMapFactory.cpp2
-rw-r--r--src/server/collision/Management/MMapManager.cpp20
-rw-r--r--src/server/collision/Management/VMapManager2.cpp3
-rw-r--r--src/server/collision/Maps/MapTree.cpp74
-rw-r--r--src/server/collision/Maps/MapTree.h3
-rw-r--r--src/server/collision/Maps/TileAssembler.cpp35
-rw-r--r--src/server/collision/Maps/TileAssembler.h4
-rw-r--r--src/server/collision/Models/GameObjectModel.cpp2
-rw-r--r--src/server/collision/Models/WorldModel.cpp55
-rw-r--r--src/server/game/AI/CoreAI/CombatAI.cpp12
-rw-r--r--src/server/game/AI/CoreAI/GuardAI.cpp4
-rw-r--r--src/server/game/AI/CoreAI/PassiveAI.cpp6
-rw-r--r--src/server/game/AI/CoreAI/PetAI.cpp66
-rw-r--r--src/server/game/AI/CoreAI/ReactorAI.cpp2
-rw-r--r--src/server/game/AI/CoreAI/TotemAI.cpp26
-rw-r--r--src/server/game/AI/CoreAI/UnitAI.cpp69
-rw-r--r--src/server/game/AI/CreatureAI.cpp39
-rw-r--r--src/server/game/AI/CreatureAI.h4
-rw-r--r--src/server/game/AI/CreatureAISelector.cpp10
-rw-r--r--src/server/game/AI/EventAI/CreatureEventAI.cpp48
-rw-r--r--src/server/game/AI/EventAI/CreatureEventAIMgr.cpp1
-rw-r--r--src/server/game/AI/ScriptedAI/ScriptedCreature.cpp16
-rw-r--r--src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp20
-rw-r--r--src/server/game/AI/ScriptedAI/ScriptedEscortAI.h2
-rw-r--r--src/server/game/AI/ScriptedAI/ScriptedFollowerAI.cpp24
-rw-r--r--src/server/game/AI/SmartScripts/SmartAI.cpp46
-rw-r--r--src/server/game/AI/SmartScripts/SmartAI.h2
-rw-r--r--src/server/game/AI/SmartScripts/SmartScript.cpp172
-rw-r--r--src/server/game/AI/SmartScripts/SmartScript.h4
-rw-r--r--src/server/game/AI/SmartScripts/SmartScriptMgr.cpp11
-rw-r--r--src/server/game/AI/SmartScripts/SmartScriptMgr.h20
-rw-r--r--src/server/game/Accounts/AccountMgr.cpp11
-rw-r--r--src/server/game/Accounts/RBAC.cpp1
-rw-r--r--src/server/game/Accounts/RBAC.h5
-rw-r--r--src/server/game/Achievements/AchievementMgr.cpp22
-rw-r--r--src/server/game/AuctionHouse/AuctionHouseMgr.cpp9
-rw-r--r--src/server/game/AuctionHouse/AuctionHouseMgr.h12
-rw-r--r--src/server/game/Battlefield/Battlefield.cpp4
-rw-r--r--src/server/game/Battlefield/Zones/BattlefieldWG.h5
-rw-r--r--src/server/game/Battlegrounds/ArenaTeam.cpp74
-rw-r--r--src/server/game/Battlegrounds/ArenaTeam.h2
-rw-r--r--src/server/game/Battlegrounds/Battleground.cpp77
-rw-r--r--src/server/game/Battlegrounds/Battleground.h26
-rw-r--r--src/server/game/Battlegrounds/BattlegroundMgr.cpp4
-rw-r--r--src/server/game/Battlegrounds/BattlegroundQueue.cpp2
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundAB.cpp55
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundAB.h4
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp115
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundAV.h18
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundBE.cpp2
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundDS.cpp1
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp84
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundEY.h5
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp125
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundIC.h10
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp28
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundSA.h4
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundWS.cpp173
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundWS.h14
-rw-r--r--src/server/game/Calendar/CalendarMgr.cpp14
-rw-r--r--src/server/game/Chat/Chat.cpp6
-rw-r--r--src/server/game/Chat/Chat.h2
-rw-r--r--src/server/game/Combat/HostileRefManager.cpp12
-rw-r--r--src/server/game/Combat/HostileRefManager.h2
-rw-r--r--src/server/game/Combat/ThreatManager.cpp38
-rw-r--r--src/server/game/Combat/ThreatManager.h4
-rw-r--r--src/server/game/Conditions/ConditionMgr.cpp40
-rw-r--r--src/server/game/Conditions/ConditionMgr.h4
-rw-r--r--src/server/game/Conditions/DisableMgr.cpp4
-rw-r--r--src/server/game/DataStores/DBCEnums.h2
-rw-r--r--src/server/game/DataStores/DBCStores.cpp21
-rw-r--r--src/server/game/DataStores/DBCStores.h3
-rw-r--r--src/server/game/DataStores/DBCStructure.h2
-rw-r--r--src/server/game/DataStores/DBCfmt.h2
-rw-r--r--src/server/game/DungeonFinding/LFGMgr.cpp12
-rw-r--r--src/server/game/DungeonFinding/LFGScripts.cpp2
-rw-r--r--src/server/game/Entities/Corpse/Corpse.cpp4
-rw-r--r--src/server/game/Entities/Creature/Creature.cpp404
-rw-r--r--src/server/game/Entities/Creature/Creature.h37
-rw-r--r--src/server/game/Entities/Creature/CreatureGroups.cpp8
-rw-r--r--src/server/game/Entities/Creature/GossipDef.cpp46
-rw-r--r--src/server/game/Entities/Creature/TemporarySummon.cpp20
-rw-r--r--src/server/game/Entities/GameObject/GameObject.cpp123
-rw-r--r--src/server/game/Entities/GameObject/GameObject.h4
-rw-r--r--src/server/game/Entities/Item/Item.cpp28
-rw-r--r--src/server/game/Entities/Item/Item.h4
-rw-r--r--src/server/game/Entities/Object/Object.cpp369
-rw-r--r--src/server/game/Entities/Object/Object.h60
-rw-r--r--src/server/game/Entities/Pet/Pet.cpp27
-rw-r--r--src/server/game/Entities/Pet/Pet.h2
-rw-r--r--src/server/game/Entities/Player/Player.cpp469
-rw-r--r--src/server/game/Entities/Player/Player.h35
-rw-r--r--src/server/game/Entities/Totem/Totem.cpp4
-rw-r--r--src/server/game/Entities/Transport/Transport.cpp46
-rw-r--r--src/server/game/Entities/Transport/Transport.h4
-rw-r--r--src/server/game/Entities/Unit/StatSystem.cpp34
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp839
-rw-r--r--src/server/game/Entities/Unit/Unit.h125
-rwxr-xr-xsrc/server/game/Entities/Vehicle/Vehicle.cpp95
-rw-r--r--src/server/game/Entities/Vehicle/Vehicle.h6
-rw-r--r--src/server/game/Entities/Vehicle/VehicleDefines.h26
-rw-r--r--src/server/game/Events/GameEventMgr.cpp82
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp76
-rw-r--r--src/server/game/Globals/ObjectMgr.h34
-rw-r--r--src/server/game/Grids/GridDefines.h2
-rw-r--r--src/server/game/Grids/Notifiers/GridNotifiers.cpp70
-rw-r--r--src/server/game/Grids/Notifiers/GridNotifiers.h88
-rw-r--r--src/server/game/Grids/Notifiers/GridNotifiersImpl.h178
-rw-r--r--src/server/game/Grids/ObjectGridLoader.cpp20
-rw-r--r--src/server/game/Groups/Group.cpp222
-rw-r--r--src/server/game/Guilds/Guild.cpp6
-rw-r--r--src/server/game/Guilds/GuildMgr.cpp2
-rw-r--r--src/server/game/Handlers/AuctionHouseHandler.cpp228
-rw-r--r--src/server/game/Handlers/BattleGroundHandler.cpp14
-rw-r--r--src/server/game/Handlers/CalendarHandler.cpp4
-rw-r--r--src/server/game/Handlers/CharacterHandler.cpp6
-rw-r--r--src/server/game/Handlers/ChatHandler.cpp14
-rw-r--r--src/server/game/Handlers/GroupHandler.cpp49
-rw-r--r--src/server/game/Handlers/ItemHandler.cpp36
-rw-r--r--src/server/game/Handlers/LFGHandler.cpp2
-rw-r--r--src/server/game/Handlers/LootHandler.cpp14
-rw-r--r--src/server/game/Handlers/MailHandler.cpp12
-rw-r--r--src/server/game/Handlers/MiscHandler.cpp34
-rw-r--r--src/server/game/Handlers/MovementHandler.cpp38
-rw-r--r--src/server/game/Handlers/NPCHandler.cpp31
-rw-r--r--src/server/game/Handlers/PetHandler.cpp58
-rw-r--r--src/server/game/Handlers/PetitionsHandler.cpp4
-rw-r--r--src/server/game/Handlers/QuestHandler.cpp209
-rw-r--r--src/server/game/Handlers/SpellHandler.cpp6
-rw-r--r--src/server/game/Handlers/TicketHandler.cpp1
-rw-r--r--src/server/game/Handlers/TradeHandler.cpp8
-rw-r--r--src/server/game/Instances/InstanceScript.cpp26
-rw-r--r--src/server/game/Loot/LootMgr.cpp16
-rw-r--r--src/server/game/Mails/Mail.cpp4
-rw-r--r--src/server/game/Maps/Map.cpp75
-rw-r--r--src/server/game/Maps/MapManager.cpp4
-rw-r--r--src/server/game/Miscellaneous/Formulas.h2
-rw-r--r--src/server/game/Miscellaneous/Language.h67
-rw-r--r--src/server/game/Miscellaneous/SharedDefines.h5
-rw-r--r--src/server/game/Movement/FollowerReference.cpp2
-rw-r--r--src/server/game/Movement/MotionMaster.h4
-rwxr-xr-xsrc/server/game/Movement/MovementGenerators/ConfusedMovementGenerator.cpp8
-rw-r--r--src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp12
-rwxr-xr-xsrc/server/game/Movement/MovementGenerators/IdleMovementGenerator.cpp8
-rwxr-xr-xsrc/server/game/Movement/MovementGenerators/PointMovementGenerator.cpp17
-rw-r--r--src/server/game/Movement/MovementGenerators/RandomMovementGenerator.cpp2
-rw-r--r--src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp30
-rwxr-xr-xsrc/server/game/Movement/MovementGenerators/TargetedMovementGenerator.h2
-rwxr-xr-xsrc/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp4
-rw-r--r--src/server/game/Movement/PathGenerator.cpp44
-rw-r--r--src/server/game/Movement/Spline/MoveSpline.cpp17
-rw-r--r--src/server/game/Movement/Spline/MoveSpline.h20
-rw-r--r--src/server/game/Movement/Spline/MoveSplineFlag.h4
-rw-r--r--src/server/game/Movement/Spline/MoveSplineInit.cpp40
-rw-r--r--src/server/game/Movement/Spline/MoveSplineInit.h2
-rw-r--r--src/server/game/Movement/Spline/MoveSplineInitArgs.h9
-rw-r--r--src/server/game/Movement/Spline/MovementTypedefs.h4
-rw-r--r--src/server/game/Movement/Spline/MovementUtil.cpp33
-rw-r--r--src/server/game/Movement/Spline/Spline.h10
-rw-r--r--src/server/game/Movement/Waypoints/Path.h4
-rw-r--r--src/server/game/OutdoorPvP/OutdoorPvP.cpp8
-rw-r--r--src/server/game/Scripting/MapScripts.cpp8
-rw-r--r--src/server/game/Scripting/ScriptLoader.cpp46
-rw-r--r--src/server/game/Scripting/ScriptMgr.h35
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp2
-rw-r--r--src/server/game/Server/Protocol/Opcodes.h2
-rw-r--r--src/server/game/Server/Protocol/PacketLog.cpp4
-rw-r--r--src/server/game/Server/WorldSession.cpp44
-rw-r--r--src/server/game/Server/WorldSession.h2
-rw-r--r--src/server/game/Server/WorldSocketMgr.cpp8
-rw-r--r--src/server/game/Skills/SkillExtraItems.cpp2
-rw-r--r--src/server/game/Skills/SkillExtraItems.h2
-rw-r--r--src/server/game/Spells/Auras/SpellAuraEffects.cpp160
-rw-r--r--src/server/game/Spells/Auras/SpellAuras.cpp192
-rw-r--r--src/server/game/Spells/Auras/SpellAuras.h7
-rw-r--r--src/server/game/Spells/Spell.cpp183
-rw-r--r--src/server/game/Spells/SpellEffects.cpp280
-rw-r--r--src/server/game/Spells/SpellInfo.cpp49
-rw-r--r--src/server/game/Spells/SpellInfo.h5
-rw-r--r--src/server/game/Spells/SpellMgr.cpp535
-rw-r--r--src/server/game/Spells/SpellMgr.h9
-rw-r--r--src/server/game/Spells/SpellScript.cpp2
-rw-r--r--src/server/game/Texts/CreatureTextMgr.cpp14
-rw-r--r--src/server/game/Texts/CreatureTextMgr.h14
-rw-r--r--src/server/game/World/World.cpp657
-rw-r--r--src/server/game/World/World.h5
-rw-r--r--src/server/scripts/Commands/CMakeLists.txt1
-rw-r--r--src/server/scripts/Commands/cs_account.cpp4
-rw-r--r--src/server/scripts/Commands/cs_achievement.cpp2
-rw-r--r--src/server/scripts/Commands/cs_arena.cpp361
-rw-r--r--src/server/scripts/Commands/cs_ban.cpp2
-rw-r--r--src/server/scripts/Commands/cs_bf.cpp2
-rw-r--r--src/server/scripts/Commands/cs_cast.cpp6
-rw-r--r--src/server/scripts/Commands/cs_character.cpp8
-rw-r--r--src/server/scripts/Commands/cs_cheat.cpp2
-rw-r--r--src/server/scripts/Commands/cs_debug.cpp8
-rw-r--r--src/server/scripts/Commands/cs_deserter.cpp2
-rw-r--r--src/server/scripts/Commands/cs_disable.cpp2
-rw-r--r--src/server/scripts/Commands/cs_event.cpp2
-rw-r--r--src/server/scripts/Commands/cs_gm.cpp6
-rw-r--r--src/server/scripts/Commands/cs_go.cpp20
-rw-r--r--src/server/scripts/Commands/cs_gobject.cpp6
-rw-r--r--src/server/scripts/Commands/cs_honor.cpp7
-rw-r--r--src/server/scripts/Commands/cs_instance.cpp2
-rw-r--r--src/server/scripts/Commands/cs_learn.cpp10
-rw-r--r--src/server/scripts/Commands/cs_lfg.cpp4
-rw-r--r--src/server/scripts/Commands/cs_list.cpp6
-rw-r--r--src/server/scripts/Commands/cs_lookup.cpp24
-rw-r--r--src/server/scripts/Commands/cs_misc.cpp491
-rw-r--r--src/server/scripts/Commands/cs_mmaps.cpp33
-rw-r--r--src/server/scripts/Commands/cs_modify.cpp36
-rw-r--r--src/server/scripts/Commands/cs_npc.cpp132
-rw-r--r--src/server/scripts/Commands/cs_quest.cpp2
-rw-r--r--src/server/scripts/Commands/cs_rbac.cpp42
-rw-r--r--src/server/scripts/Commands/cs_reload.cpp44
-rw-r--r--src/server/scripts/Commands/cs_reset.cpp9
-rw-r--r--src/server/scripts/Commands/cs_server.cpp7
-rw-r--r--src/server/scripts/Commands/cs_tele.cpp12
-rw-r--r--src/server/scripts/Commands/cs_titles.cpp2
-rw-r--r--src/server/scripts/Commands/cs_wp.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/AlteracValley/alterac_valley.cpp24
-rw-r--r--src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp44
-rw-r--r--src/server/scripts/EasternKingdoms/AlteracValley/boss_drekthar.cpp18
-rw-r--r--src/server/scripts/EasternKingdoms/AlteracValley/boss_galvangar.cpp20
-rw-r--r--src/server/scripts/EasternKingdoms/AlteracValley/boss_vanndar.cpp14
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp (renamed from src/server/scripts/EasternKingdoms/BlackrockDepths/blackrock_depths.cpp)165
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.h (renamed from src/server/scripts/EasternKingdoms/BlackrockDepths/blackrock_depths.h)12
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_ambassador_flamelash.cpp (renamed from src/server/scripts/EasternKingdoms/BlackrockDepths/boss_ambassador_flamelash.cpp)20
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_anubshiah.cpp (renamed from src/server/scripts/EasternKingdoms/BlackrockDepths/boss_anubshiah.cpp)14
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp (renamed from src/server/scripts/EasternKingdoms/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp)16
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_general_angerforge.cpp (renamed from src/server/scripts/EasternKingdoms/BlackrockDepths/boss_general_angerforge.cpp)26
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_gorosh_the_dervish.cpp (renamed from src/server/scripts/EasternKingdoms/BlackrockDepths/boss_gorosh_the_dervish.cpp)12
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_grizzle.cpp (renamed from src/server/scripts/EasternKingdoms/BlackrockDepths/boss_grizzle.cpp)12
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_high_interrogator_gerstahn.cpp (renamed from src/server/scripts/EasternKingdoms/BlackrockDepths/boss_high_interrogator_gerstahn.cpp)12
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_magmus.cpp (renamed from src/server/scripts/EasternKingdoms/BlackrockDepths/boss_magmus.cpp)18
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_moira_bronzebeard.cpp (renamed from src/server/scripts/EasternKingdoms/BlackrockDepths/boss_moira_bronzebeard.cpp)16
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp (renamed from src/server/scripts/EasternKingdoms/BlackrockDepths/boss_tomb_of_seven.cpp)30
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/instance_blackrock_depths.cpp (renamed from src/server/scripts/EasternKingdoms/BlackrockDepths/instance_blackrock_depths.cpp)26
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/blackrock_spire.h (renamed from src/server/scripts/EasternKingdoms/BlackrockSpire/blackrock_spire.h)87
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_drakkisath.cpp (renamed from src/server/scripts/EasternKingdoms/BlackrockSpire/boss_drakkisath.cpp)42
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gizrul_the_slavener.cpp112
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gyth.cpp172
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_halycon.cpp (renamed from src/server/scripts/EasternKingdoms/BlackrockSpire/boss_halycon.cpp)66
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_highlord_omokk.cpp101
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_lord_valthalak.cpp138
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_mother_smolderweb.cpp (renamed from src/server/scripts/EasternKingdoms/BlackrockSpire/boss_mother_smolderweb.cpp)12
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_overlord_wyrmthalak.cpp (renamed from src/server/scripts/EasternKingdoms/BlackrockSpire/boss_overlord_wyrmthalak.cpp)18
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp453
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_quartermaster_zigris.cpp (renamed from src/server/scripts/EasternKingdoms/BlackrockSpire/boss_quartermaster_zigris.cpp)29
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp447
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_shadow_hunter_voshgajin.cpp (renamed from src/server/scripts/EasternKingdoms/BlackrockSpire/boss_shadow_hunter_voshgajin.cpp)14
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_the_beast.cpp (renamed from src/server/scripts/EasternKingdoms/BlackrockSpire/boss_the_beast.cpp)14
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_urok_doomhowl.cpp108
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_warmaster_voone.cpp (renamed from src/server/scripts/EasternKingdoms/BlackrockSpire/boss_warmaster_voone.cpp)22
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp671
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/blackwing_lair.h81
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_broodlord_lashlayer.cpp126
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp (renamed from src/server/scripts/EasternKingdoms/BlackwingLair/boss_chromaggus.cpp)224
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_ebonroc.cpp102
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_firemaw.cpp104
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_flamegor.cpp110
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp584
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp213
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp242
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp355
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_baron_geddon.cpp (renamed from src/server/scripts/EasternKingdoms/MoltenCore/boss_baron_geddon.cpp)8
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_garr.cpp (renamed from src/server/scripts/EasternKingdoms/MoltenCore/boss_garr.cpp)26
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_gehennas.cpp (renamed from src/server/scripts/EasternKingdoms/MoltenCore/boss_gehennas.cpp)6
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_golemagg.cpp (renamed from src/server/scripts/EasternKingdoms/MoltenCore/boss_golemagg.cpp)34
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_lucifron.cpp (renamed from src/server/scripts/EasternKingdoms/MoltenCore/boss_lucifron.cpp)6
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_magmadar.cpp (renamed from src/server/scripts/EasternKingdoms/MoltenCore/boss_magmadar.cpp)8
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_majordomo_executus.cpp (renamed from src/server/scripts/EasternKingdoms/MoltenCore/boss_majordomo_executus.cpp)14
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp (renamed from src/server/scripts/EasternKingdoms/MoltenCore/boss_ragnaros.cpp)30
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_shazzrah.cpp (renamed from src/server/scripts/EasternKingdoms/MoltenCore/boss_shazzrah.cpp)6
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_sulfuron_harbinger.cpp (renamed from src/server/scripts/EasternKingdoms/MoltenCore/boss_sulfuron_harbinger.cpp)28
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/instance_molten_core.cpp (renamed from src/server/scripts/EasternKingdoms/MoltenCore/instance_molten_core.cpp)8
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/molten_core.h (renamed from src/server/scripts/EasternKingdoms/MoltenCore/molten_core.h)0
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockSpire/boss_gyth.cpp180
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockSpire/boss_highlord_omokk.cpp134
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockSpire/boss_pyroguard_emberseer.cpp138
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockSpire/boss_rend_blackhand.cpp105
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockSpire/instance_blackrock_spire.cpp329
-rw-r--r--src/server/scripts/EasternKingdoms/BlackwingLair/boss_broodlord_lashlayer.cpp136
-rw-r--r--src/server/scripts/EasternKingdoms/BlackwingLair/boss_ebonroc.cpp119
-rw-r--r--src/server/scripts/EasternKingdoms/BlackwingLair/boss_firemaw.cpp102
-rw-r--r--src/server/scripts/EasternKingdoms/BlackwingLair/boss_flamegor.cpp111
-rw-r--r--src/server/scripts/EasternKingdoms/BlackwingLair/boss_nefarian.cpp240
-rw-r--r--src/server/scripts/EasternKingdoms/BlackwingLair/boss_razorgore.cpp135
-rw-r--r--src/server/scripts/EasternKingdoms/BlackwingLair/boss_vaelastrasz.cpp275
-rw-r--r--src/server/scripts/EasternKingdoms/BlackwingLair/boss_victor_nefarius.cpp398
-rw-r--r--src/server/scripts/EasternKingdoms/BlackwingLair/instance_blackwing_lair.cpp27
-rw-r--r--src/server/scripts/EasternKingdoms/CMakeLists.txt101
-rw-r--r--src/server/scripts/EasternKingdoms/Deadmines/boss_mr_smite.cpp18
-rw-r--r--src/server/scripts/EasternKingdoms/Deadmines/deadmines.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp8
-rw-r--r--src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp34
-rw-r--r--src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.h8
-rw-r--r--src/server/scripts/EasternKingdoms/Gnomeregan/instance_gnomeregan.cpp8
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp14
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp16
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp40
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp173
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp18
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp35
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp71
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp42
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp143
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp245
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp10
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp85
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/karazhan.h2
-rw-r--r--src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp111
-rw-r--r--src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp224
-rw-r--r--src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp63
-rw-r--r--src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp74
-rw-r--r--src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp30
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp116
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp87
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp53
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/zone_the_scarlet_enclave.cpp10
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_arcanist_doan.cpp23
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_azshir_the_sleepless.cpp16
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_bloodmage_thalnos.cpp27
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp154
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_herod.cpp38
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_high_inquisitor_fairbanks.cpp14
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_houndmaster_loksey.cpp16
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_interrogator_vishas.cpp16
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp52
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_scorn.cpp18
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp10
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/scarlet_monastery.h9
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_darkmaster_gandling.cpp22
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_death_knight_darkreaver.cpp10
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_doctor_theolen_krastinov.cpp8
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_illucia_barov.cpp8
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_instructor_malicia.cpp10
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_jandice_barov.cpp49
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp100
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_kormok.cpp33
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_lord_alexei_barov.cpp10
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_lorekeeper_polkelt.cpp8
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_ras_frostwhisper.cpp18
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_the_ravenian.cpp8
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.cpp20
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/instance_scholomance.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp31
-rw-r--r--src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp37
-rw-r--r--src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.h2
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/boss_baron_rivendare.cpp20
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/boss_baroness_anastari.cpp29
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/boss_cannon_master_willey.cpp29
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/boss_dathrohan_balnazzar.cpp33
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/boss_magistrate_barthilas.cpp41
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/boss_maleki_the_pallid.cpp30
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/boss_nerubenkan.cpp20
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/boss_order_of_silver_hand.cpp12
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/boss_postmaster_malown.cpp10
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/boss_ramstein_the_gorger.cpp14
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/boss_timmy_the_cruel.cpp12
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/instance_stratholme.cpp24
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/stratholme.cpp112
-rw-r--r--src/server/scripts/EasternKingdoms/SunkenTemple/instance_sunken_temple.cpp6
-rw-r--r--src/server/scripts/EasternKingdoms/SunkenTemple/sunken_temple.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp25
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp107
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp102
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp109
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp236
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp74
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp10
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/sunwell_plateau.h24
-rw-r--r--src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp74
-rw-r--r--src/server/scripts/EasternKingdoms/Uldaman/boss_ironaya.cpp12
-rw-r--r--src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp14
-rw-r--r--src/server/scripts/EasternKingdoms/Uldaman/uldaman.cpp35
-rw-r--r--src/server/scripts/EasternKingdoms/Uldaman/uldaman.h20
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp382
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp56
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp173
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp165
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp64
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp68
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp10
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp83
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp34
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_gahzranka.cpp16
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp16
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_hakkar.cpp30
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp16
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_jeklik.cpp42
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp70
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp74
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_marli.cpp133
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp16
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp88
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp14
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_wushoolay.cpp14
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/instance_zulgurub.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/boss_kruul.cpp28
-rw-r--r--src/server/scripts/EasternKingdoms/zone_arathi_highlands.cpp24
-rw-r--r--src/server/scripts/EasternKingdoms/zone_blasted_lands.cpp13
-rw-r--r--src/server/scripts/EasternKingdoms/zone_burning_steppes.cpp17
-rw-r--r--src/server/scripts/EasternKingdoms/zone_duskwood.cpp27
-rw-r--r--src/server/scripts/EasternKingdoms/zone_eastern_plaguelands.cpp51
-rw-r--r--src/server/scripts/EasternKingdoms/zone_eversong_woods.cpp467
-rw-r--r--src/server/scripts/EasternKingdoms/zone_ghostlands.cpp32
-rw-r--r--src/server/scripts/EasternKingdoms/zone_hinterlands.cpp34
-rw-r--r--src/server/scripts/EasternKingdoms/zone_ironforge.cpp78
-rw-r--r--src/server/scripts/EasternKingdoms/zone_isle_of_queldanas.cpp25
-rw-r--r--src/server/scripts/EasternKingdoms/zone_loch_modan.cpp6
-rw-r--r--src/server/scripts/EasternKingdoms/zone_redridge_mountains.cpp18
-rw-r--r--src/server/scripts/EasternKingdoms/zone_silvermoon_city.cpp17
-rw-r--r--src/server/scripts/EasternKingdoms/zone_silverpine_forest.cpp32
-rw-r--r--src/server/scripts/EasternKingdoms/zone_stormwind_city.cpp80
-rw-r--r--src/server/scripts/EasternKingdoms/zone_stranglethorn_vale.cpp30
-rw-r--r--src/server/scripts/EasternKingdoms/zone_swamp_of_sorrows.cpp14
-rw-r--r--src/server/scripts/EasternKingdoms/zone_tirisfal_glades.cpp24
-rw-r--r--src/server/scripts/EasternKingdoms/zone_undercity.cpp49
-rw-r--r--src/server/scripts/EasternKingdoms/zone_western_plaguelands.cpp54
-rw-r--r--src/server/scripts/EasternKingdoms/zone_westfall.cpp36
-rw-r--r--src/server/scripts/EasternKingdoms/zone_wetlands.cpp20
-rw-r--r--src/server/scripts/Events/childrens_week.cpp27
-rw-r--r--src/server/scripts/Examples/example_commandscript.cpp2
-rw-r--r--src/server/scripts/Examples/example_creature.cpp36
-rw-r--r--src/server/scripts/Examples/example_escort.cpp42
-rw-r--r--src/server/scripts/Examples/example_gossip_codebox.cpp19
-rw-r--r--src/server/scripts/Examples/example_misc.cpp6
-rw-r--r--src/server/scripts/Examples/example_spell.cpp38
-rw-r--r--src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp67
-rw-r--r--src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.h11
-rw-r--r--src/server/scripts/Kalimdor/BlackfathomDeeps/boss_aku_mai.cpp79
-rw-r--r--src/server/scripts/Kalimdor/BlackfathomDeeps/boss_gelihast.cpp12
-rw-r--r--src/server/scripts/Kalimdor/BlackfathomDeeps/boss_kelris.cpp12
-rw-r--r--src/server/scripts/Kalimdor/BlackfathomDeeps/instance_blackfathom_deeps.cpp8
-rw-r--r--src/server/scripts/Kalimdor/CMakeLists.txt12
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp47
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp106
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp51
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp26
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp22
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp22
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.h91
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp24
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.h30
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp291
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp160
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_chrono_lord_epoch.cpp16
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_infinite_corruptor.cpp10
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp18
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp16
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm_the_fleshcrafter.cpp18
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp26
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp10
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/boss_chrono_lord_deja.cpp158
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/boss_temporus.cpp156
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/dark_portal.h49
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_captain_skarloc.cpp18
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_epoch_hunter.cpp18
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_leutenant_drake.cpp22
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/instance_old_hillsbrad.cpp12
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp132
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.h30
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_aeonus.cpp (renamed from src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/boss_aeonus.cpp)115
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_chrono_lord_deja.cpp155
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_temporus.cpp153
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/instance_the_black_morass.cpp (renamed from src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/instance_dark_portal.cpp)155
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.cpp (renamed from src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/dark_portal.cpp)63
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.h67
-rw-r--r--src/server/scripts/Kalimdor/Maraudon/boss_celebras_the_cursed.cpp12
-rw-r--r--src/server/scripts/Kalimdor/Maraudon/boss_landslide.cpp10
-rw-r--r--src/server/scripts/Kalimdor/Maraudon/boss_noxxion.cpp20
-rw-r--r--src/server/scripts/Kalimdor/Maraudon/boss_princess_theradras.cpp12
-rw-r--r--src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp325
-rw-r--r--src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp189
-rw-r--r--src/server/scripts/Kalimdor/OnyxiasLair/onyxias_lair.h35
-rw-r--r--src/server/scripts/Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp20
-rw-r--r--src/server/scripts/Kalimdor/RazorfenDowns/instance_razorfen_downs.cpp14
-rw-r--r--src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp92
-rw-r--r--src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.h14
-rw-r--r--src/server/scripts/Kalimdor/RazorfenKraul/instance_razorfen_kraul.cpp7
-rw-r--r--src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp170
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp41
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp36
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp14
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp10
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp31
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp12
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/instance_ruins_of_ahnqiraj.cpp6
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp69
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp160
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp23
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_huhuran.cpp16
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp18
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp34
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp38
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp45
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp26
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp8
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/mob_anubisath_sentinel.cpp53
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h18
-rw-r--r--src/server/scripts/Kalimdor/WailingCaverns/instance_wailing_caverns.cpp8
-rw-r--r--src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp18
-rw-r--r--src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.h2
-rw-r--r--src/server/scripts/Kalimdor/ZulFarrak/instance_zulfarrak.cpp24
-rw-r--r--src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp74
-rw-r--r--src/server/scripts/Kalimdor/boss_azuregos.cpp18
-rw-r--r--src/server/scripts/Kalimdor/zone_ashenvale.cpp50
-rw-r--r--src/server/scripts/Kalimdor/zone_azshara.cpp105
-rw-r--r--src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp92
-rw-r--r--src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp34
-rw-r--r--src/server/scripts/Kalimdor/zone_darkshore.cpp40
-rw-r--r--src/server/scripts/Kalimdor/zone_desolace.cpp27
-rw-r--r--src/server/scripts/Kalimdor/zone_durotar.cpp66
-rw-r--r--src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp110
-rw-r--r--src/server/scripts/Kalimdor/zone_felwood.cpp6
-rw-r--r--src/server/scripts/Kalimdor/zone_feralas.cpp26
-rw-r--r--src/server/scripts/Kalimdor/zone_moonglade.cpp52
-rw-r--r--src/server/scripts/Kalimdor/zone_mulgore.cpp32
-rw-r--r--src/server/scripts/Kalimdor/zone_orgrimmar.cpp34
-rw-r--r--src/server/scripts/Kalimdor/zone_silithus.cpp68
-rw-r--r--src/server/scripts/Kalimdor/zone_stonetalon_mountains.cpp16
-rw-r--r--src/server/scripts/Kalimdor/zone_tanaris.cpp94
-rw-r--r--src/server/scripts/Kalimdor/zone_teldrassil.cpp13
-rw-r--r--src/server/scripts/Kalimdor/zone_the_barrens.cpp106
-rw-r--r--src/server/scripts/Kalimdor/zone_thousand_needles.cpp48
-rw-r--r--src/server/scripts/Kalimdor/zone_thunder_bluff.cpp24
-rw-r--r--src/server/scripts/Kalimdor/zone_ungoro_crater.cpp33
-rw-r--r--src/server/scripts/Kalimdor/zone_winterspring.cpp32
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/Ahnkahet/ahnkahet.h6
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_amanitar.cpp36
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_elder_nadox.cpp69
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp38
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp82
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp61
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/Ahnkahet/instance_ahnkahet.cpp16
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/AzjolNerub/azjol_nerub.h1
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp29
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp20
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp122
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/AzjolNerub/instance_azjol_nerub.cpp8
-rw-r--r--src/server/scripts/Northrend/CMakeLists.txt2
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp293
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/instance_obsidian_sanctum.cpp8
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.h13
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_baltharus_the_warborn.cpp32
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp32
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp178
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_saviana_ragefire.cpp26
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp8
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.cpp10
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp70
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp44
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp94
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp12
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp27
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp122
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp358
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp130
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp140
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp130
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp12
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp85
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h20
-rw-r--r--src/server/scripts/Northrend/DraktharonKeep/boss_dred.cpp304
-rw-r--r--src/server/scripts/Northrend/DraktharonKeep/boss_king_dred.cpp286
-rw-r--r--src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp144
-rw-r--r--src/server/scripts/Northrend/DraktharonKeep/boss_tharon_ja.cpp25
-rw-r--r--src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp371
-rw-r--r--src/server/scripts/Northrend/DraktharonKeep/drak_tharon_keep.h85
-rw-r--r--src/server/scripts/Northrend/DraktharonKeep/instance_drak_tharon_keep.cpp405
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_bronjahm.cpp58
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp208
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp30
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/instance_forge_of_souls.cpp8
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/boss_falric.cpp20
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/boss_marwyn.cpp20
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp1998
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.h147
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp742
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp32
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp62
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp58
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/PitOfSaron/instance_pit_of_saron.cpp8
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp82
-rw-r--r--src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp62
-rw-r--r--src/server/scripts/Northrend/Gundrak/boss_eck.cpp22
-rw-r--r--src/server/scripts/Northrend/Gundrak/boss_gal_darah.cpp33
-rw-r--r--src/server/scripts/Northrend/Gundrak/boss_moorabi.cpp39
-rw-r--r--src/server/scripts/Northrend/Gundrak/boss_slad_ran.cpp75
-rw-r--r--src/server/scripts/Northrend/Gundrak/gundrak.h31
-rw-r--r--src/server/scripts/Northrend/Gundrak/instance_gundrak.cpp349
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp198
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp84
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp131
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp59
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp89
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp79
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp120
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp97
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp160
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp323
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp169
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp168
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h6
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel_teleport.cpp10
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp10
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_anubrekhan.cpp48
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_faerlina.cpp44
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp47
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_gluth.cpp50
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp202
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp31
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp31
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp42
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_loatheb.cpp20
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp36
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_noth.cpp36
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_patchwerk.cpp26
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp27
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp28
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp98
-rw-r--r--src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp768
-rw-r--r--src/server/scripts/Northrend/Naxxramas/naxxramas.h88
-rw-r--r--src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp257
-rw-r--r--src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp8
-rw-r--r--src/server/scripts/Northrend/Nexus/Nexus/boss_anomalus.cpp49
-rw-r--r--src/server/scripts/Northrend/Nexus/Nexus/boss_commander_kolurg.cpp31
-rw-r--r--src/server/scripts/Northrend/Nexus/Nexus/boss_commander_stoutbeard.cpp13
-rw-r--r--src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp28
-rw-r--r--src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp57
-rw-r--r--src/server/scripts/Northrend/Nexus/Nexus/boss_ormorok.cpp26
-rw-r--r--src/server/scripts/Northrend/Nexus/Nexus/instance_nexus.cpp10
-rw-r--r--src/server/scripts/Northrend/Nexus/Nexus/nexus.h2
-rw-r--r--src/server/scripts/Northrend/Nexus/Oculus/boss_drakos.cpp22
-rw-r--r--src/server/scripts/Northrend/Nexus/Oculus/boss_eregos.cpp32
-rw-r--r--src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp26
-rw-r--r--src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp40
-rw-r--r--src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp24
-rw-r--r--src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp276
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_bjarngrim.cpp78
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp54
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_loken.cpp30
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp60
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfLightning/halls_of_lightning.h10
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfLightning/instance_halls_of_lightning.cpp8
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_krystallus.cpp31
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_maiden_of_grief.cpp20
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp72
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp103
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.h8
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfStone/instance_halls_of_stone.cpp8
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp98
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp128
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp72
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp199
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp156
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp59
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp108
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp54
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp54
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp4
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp113
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp14
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp166
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp415
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp25
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h6
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/ulduar_teleporter.cpp4
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp115
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp48
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp71
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/instance_utgarde_keep.cpp10
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp47
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.h23
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp239
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp77
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp98
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp61
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/instance_pinnacle.cpp32
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/utgarde_pinnacle.h27
-rw-r--r--src/server/scripts/Northrend/VaultOfArchavon/boss_archavon.cpp59
-rw-r--r--src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp82
-rw-r--r--src/server/scripts/Northrend/VaultOfArchavon/boss_koralon.cpp191
-rw-r--r--src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp70
-rw-r--r--src/server/scripts/Northrend/VaultOfArchavon/instance_vault_of_archavon.cpp23
-rw-r--r--src/server/scripts/Northrend/VaultOfArchavon/vault_of_archavon.h24
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp22
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_erekem.cpp71
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp65
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp25
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_moragg.cpp19
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp47
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp46
-rw-r--r--src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp63
-rw-r--r--src/server/scripts/Northrend/VioletHold/violet_hold.cpp323
-rw-r--r--src/server/scripts/Northrend/VioletHold/violet_hold.h44
-rw-r--r--src/server/scripts/Northrend/isle_of_conquest.cpp4
-rw-r--r--src/server/scripts/Northrend/zone_borean_tundra.cpp343
-rw-r--r--src/server/scripts/Northrend/zone_crystalsong_forest.cpp6
-rw-r--r--src/server/scripts/Northrend/zone_dalaran.cpp23
-rw-r--r--src/server/scripts/Northrend/zone_dragonblight.cpp31
-rw-r--r--src/server/scripts/Northrend/zone_grizzly_hills.cpp649
-rw-r--r--src/server/scripts/Northrend/zone_howling_fjord.cpp97
-rw-r--r--src/server/scripts/Northrend/zone_icecrown.cpp285
-rw-r--r--src/server/scripts/Northrend/zone_sholazar_basin.cpp107
-rw-r--r--src/server/scripts/Northrend/zone_storm_peaks.cpp247
-rw-r--r--src/server/scripts/Northrend/zone_wintergrasp.cpp58
-rw-r--r--src/server/scripts/Northrend/zone_zuldrak.cpp1253
-rw-r--r--src/server/scripts/OutdoorPvP/OutdoorPvPEP.cpp2
-rw-r--r--src/server/scripts/OutdoorPvP/OutdoorPvPHP.cpp4
-rw-r--r--src/server/scripts/OutdoorPvP/OutdoorPvPNA.cpp7
-rw-r--r--src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp2
-rw-r--r--src/server/scripts/OutdoorPvP/OutdoorPvPTF.cpp13
-rw-r--r--src/server/scripts/OutdoorPvP/OutdoorPvPZM.cpp2
-rw-r--r--src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp115
-rw-r--r--src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_shirrak_the_dead_watcher.cpp67
-rw-r--r--src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp162
-rw-r--r--src/server/scripts/Outland/Auchindoun/ManaTombs/boss_pandemonius.cpp14
-rw-r--r--src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_anzu.cpp172
-rw-r--r--src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_darkweaver_syth.cpp240
-rw-r--r--src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_tailonking_ikiss.cpp61
-rw-r--r--src/server/scripts/Outland/Auchindoun/SethekkHalls/instance_sethekk_halls.cpp95
-rw-r--r--src/server/scripts/Outland/Auchindoun/SethekkHalls/sethekk_halls.h23
-rw-r--r--src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp30
-rw-r--r--src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp140
-rw-r--r--src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp197
-rw-r--r--src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp185
-rw-r--r--src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/instance_shadow_labyrinth.cpp21
-rw-r--r--src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/shadow_labyrinth.h24
-rw-r--r--src/server/scripts/Outland/BlackTemple/black_temple.cpp203
-rw-r--r--src/server/scripts/Outland/BlackTemple/black_temple.h9
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_bloodboil.cpp36
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_illidan.cpp749
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp22
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp89
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp1645
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_supremus.cpp41
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp97
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp44
-rw-r--r--src/server/scripts/Outland/BlackTemple/illidari_council.cpp144
-rw-r--r--src/server/scripts/Outland/BlackTemple/instance_black_temple.cpp64
-rw-r--r--src/server/scripts/Outland/CMakeLists.txt1
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp88
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_hydross_the_unstable.cpp22
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp148
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp145
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp117
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp68
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/instance_serpent_shrine.cpp40
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_hydromancer_thespia.cpp36
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp75
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp38
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SteamVault/steam_vault.h18
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/underbog/boss_hungarfen.cpp45
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/underbog/boss_the_black_stalker.cpp18
-rw-r--r--src/server/scripts/Outland/GruulsLair/boss_gruul.cpp43
-rw-r--r--src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp98
-rw-r--r--src/server/scripts/Outland/GruulsLair/gruuls_lair.h23
-rw-r--r--src/server/scripts/Outland/GruulsLair/instance_gruuls_lair.cpp10
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/BloodFurnace/blood_furnace.h56
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp27
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp48
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_the_maker.cpp23
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp10
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_omor_the_unscarred.cpp59
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_vazruden_the_herald.cpp229
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_watchkeeper_gargolmar.cpp122
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/hellfire_ramparts.h25
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/instance_hellfire_ramparts.cpp96
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp116
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp22
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/magtheridons_lair.h14
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp270
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp255
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp126
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/instance_shattered_halls.cpp135
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/shattered_halls.h24
-rw-r--r--src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp101
-rw-r--r--src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp81
-rw-r--r--src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp221
-rw-r--r--src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp33
-rw-r--r--src/server/scripts/Outland/TempestKeep/Eye/instance_the_eye.cpp8
-rw-r--r--src/server/scripts/Outland/TempestKeep/Eye/the_eye.cpp30
-rw-r--r--src/server/scripts/Outland/TempestKeep/Eye/the_eye.h27
-rw-r--r--src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_gyrokill.cpp18
-rw-r--r--src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_ironhand.cpp10
-rw-r--r--src/server/scripts/Outland/TempestKeep/Mechanar/boss_mechano_lord_capacitus.cpp22
-rw-r--r--src/server/scripts/Outland/TempestKeep/Mechanar/boss_nethermancer_sepethrea.cpp46
-rw-r--r--src/server/scripts/Outland/TempestKeep/Mechanar/boss_pathaleon_the_calculator.cpp46
-rw-r--r--src/server/scripts/Outland/TempestKeep/Mechanar/instance_mechanar.cpp2
-rw-r--r--src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp65
-rw-r--r--src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.h33
-rw-r--r--src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp59
-rw-r--r--src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp10
-rw-r--r--src/server/scripts/Outland/TempestKeep/botanica/boss_commander_sarannis.cpp20
-rw-r--r--src/server/scripts/Outland/TempestKeep/botanica/boss_high_botanist_freywinn.cpp29
-rw-r--r--src/server/scripts/Outland/TempestKeep/botanica/boss_laj.cpp18
-rw-r--r--src/server/scripts/Outland/TempestKeep/botanica/boss_thorngrin_the_tender.cpp14
-rw-r--r--src/server/scripts/Outland/TempestKeep/botanica/boss_warp_splinter.cpp53
-rw-r--r--src/server/scripts/Outland/TempestKeep/botanica/instance_the_botanica.cpp4
-rw-r--r--src/server/scripts/Outland/boss_doomlord_kazzak.cpp22
-rw-r--r--src/server/scripts/Outland/boss_doomwalker.cpp17
-rw-r--r--src/server/scripts/Outland/zone_blades_edge_mountains.cpp125
-rw-r--r--src/server/scripts/Outland/zone_hellfire_peninsula.cpp77
-rw-r--r--src/server/scripts/Outland/zone_nagrand.cpp79
-rw-r--r--src/server/scripts/Outland/zone_netherstorm.cpp102
-rw-r--r--src/server/scripts/Outland/zone_shadowmoon_valley.cpp391
-rw-r--r--src/server/scripts/Outland/zone_shattrath_city.cpp83
-rw-r--r--src/server/scripts/Outland/zone_terokkar_forest.cpp180
-rw-r--r--src/server/scripts/Outland/zone_zangarmarsh.cpp52
-rw-r--r--src/server/scripts/Spells/spell_dk.cpp374
-rw-r--r--src/server/scripts/Spells/spell_druid.cpp134
-rw-r--r--src/server/scripts/Spells/spell_generic.cpp3779
-rw-r--r--src/server/scripts/Spells/spell_holiday.cpp34
-rw-r--r--src/server/scripts/Spells/spell_hunter.cpp102
-rw-r--r--src/server/scripts/Spells/spell_item.cpp393
-rw-r--r--src/server/scripts/Spells/spell_mage.cpp74
-rw-r--r--src/server/scripts/Spells/spell_paladin.cpp351
-rw-r--r--src/server/scripts/Spells/spell_pet.cpp182
-rw-r--r--src/server/scripts/Spells/spell_priest.cpp146
-rw-r--r--src/server/scripts/Spells/spell_quest.cpp431
-rw-r--r--src/server/scripts/Spells/spell_rogue.cpp70
-rw-r--r--src/server/scripts/Spells/spell_shaman.cpp265
-rw-r--r--src/server/scripts/Spells/spell_warlock.cpp151
-rw-r--r--src/server/scripts/Spells/spell_warrior.cpp105
-rw-r--r--src/server/scripts/World/achievement_scripts.cpp126
-rw-r--r--src/server/scripts/World/areatrigger_scripts.cpp38
-rw-r--r--src/server/scripts/World/boss_emerald_dragons.cpp82
-rw-r--r--src/server/scripts/World/go_scripts.cpp249
-rw-r--r--src/server/scripts/World/guards.cpp42
-rw-r--r--src/server/scripts/World/item_scripts.cpp34
-rw-r--r--src/server/scripts/World/mob_generic_creature.cpp30
-rw-r--r--src/server/scripts/World/npc_innkeeper.cpp24
-rw-r--r--src/server/scripts/World/npc_professions.cpp46
-rw-r--r--src/server/scripts/World/npc_taxi.cpp8
-rw-r--r--src/server/scripts/World/npcs_special.cpp384
-rw-r--r--src/server/shared/CMakeLists.txt6
-rw-r--r--src/server/shared/Configuration/Config.cpp103
-rw-r--r--src/server/shared/Configuration/Config.h49
-rw-r--r--src/server/shared/Cryptography/SHA1.cpp1
-rw-r--r--src/server/shared/DataStores/DBCFileLoader.h2
-rw-r--r--src/server/shared/Database/Field.cpp1
-rw-r--r--src/server/shared/Database/Implementation/CharacterDatabase.cpp15
-rw-r--r--src/server/shared/Database/Implementation/CharacterDatabase.h3
-rw-r--r--src/server/shared/Database/Implementation/LoginDatabase.cpp2
-rw-r--r--src/server/shared/Database/Implementation/WorldDatabase.cpp2
-rw-r--r--src/server/shared/Database/Implementation/WorldDatabase.h1
-rw-r--r--src/server/shared/Database/MySQLConnection.cpp2
-rw-r--r--src/server/shared/Database/PreparedStatement.cpp1
-rw-r--r--src/server/shared/Debugging/Errors.cpp8
-rw-r--r--src/server/shared/Debugging/Errors.h16
-rw-r--r--src/server/shared/Define.h8
-rw-r--r--src/server/shared/Dynamic/LinkedReference/Reference.h2
-rw-r--r--src/server/shared/Logging/Log.cpp16
-rw-r--r--src/server/shared/Packets/ByteBuffer.h2
-rw-r--r--src/server/shared/SystemConfig.h2
-rw-r--r--src/server/shared/Threading/Callback.h2
-rw-r--r--src/server/worldserver/CMakeLists.txt13
-rw-r--r--src/server/worldserver/CommandLine/CliRunnable.cpp19
-rw-r--r--src/server/worldserver/CommandLine/CliRunnable.h4
-rw-r--r--src/server/worldserver/Main.cpp22
-rw-r--r--src/server/worldserver/Master.cpp239
-rw-r--r--src/server/worldserver/Master.h4
-rw-r--r--src/server/worldserver/RemoteAccess/RARunnable.cpp16
-rw-r--r--src/server/worldserver/RemoteAccess/RARunnable.h3
-rw-r--r--src/server/worldserver/RemoteAccess/RASocket.cpp20
-rw-r--r--src/server/worldserver/RemoteAccess/RASocket.h21
-rw-r--r--src/server/worldserver/TCSoap/TCSoap.cpp8
-rw-r--r--src/server/worldserver/TCSoap/TCSoap.h19
-rw-r--r--src/server/worldserver/WorldThread/WorldRunnable.h4
-rw-r--r--src/server/worldserver/worldserver.conf.dist36
-rw-r--r--src/tools/mmaps_generator/Info/readme.txt9
-rw-r--r--src/tools/mmaps_generator/MapBuilder.cpp173
-rw-r--r--src/tools/mmaps_generator/MapBuilder.h2
-rw-r--r--src/tools/mmaps_generator/PathGenerator.cpp2
-rw-r--r--src/tools/mmaps_generator/TerrainBuilder.h2
-rw-r--r--src/tools/vmap4_extractor/model.cpp4
-rw-r--r--src/tools/vmap4_extractor/model.h8
4095 files changed, 55810 insertions, 31902 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 72d1a225f28..b5db167fa22 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -51,6 +51,8 @@ include(CheckPlatform)
find_package(PCHSupport)
find_package(ACE REQUIRED)
find_package(OpenSSL REQUIRED)
+find_package(Threads REQUIRED)
+
if( NOT USE_MYSQL_SOURCES )
find_package(MySQL REQUIRED)
endif()
diff --git a/README b/README
deleted file mode 100644
index b274e53dc32..00000000000
--- a/README
+++ /dev/null
@@ -1,56 +0,0 @@
-= TrinityCore -- General information =
-
-Copyright (C) TrinityCore (http://www.trinitycore.org)
-
- Trinity Core is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
- In addition, as a special exception, the Trinity Core project
- gives permission to link the code of its release of Trinity Core with
- the OpenSSL project's "OpenSSL" library (or with modified versions of
- it that use the same license as the "OpenSSL" library), and distribute
- the linked executables. You must obey the GNU General Public License
- in all respects for all of the code used other than "OpenSSL". If you
- modify this file, you may extend this exception to your version of the
- file, but you are not obligated to do so. If you do not wish to do
- so, delete this exception statement from your version.
-
-TrinityCore is a MMORPG Framework based mostly on C++. It is completely
-open source, and is community supported. It is derived
-from MaNGOS, the Massive Network Game Object Server, and is based on the
-code of that project with extensive changes over time to optimize, improve
-and cleanup the codebase at the same time as improving the ingame mechanics
-and functionality. If you wish to contribute ideas or code please visit
-our site linked below or make pull requests to our github repo at
-https://github.com/TrinityCore/TrinityCore
-
-For further information on the TrinityCore project, please visit our
-project website at http://www.TrinityCore.org
-
-Documentation including installation instructions can be found inside
-the doc directory.
-
-SQL files to create the database can be found in the sql directory. Files
-to update your database from an older revision/version can be found in the
-sql/updates directory.
-
-TrinityCore Requirements
-Platform: Linux, Windows or Mac
-Processor with SSE2 support
-ACE ≥ 5.8.3
-MySQL ≥ 5.1.0
-CMake ≥ 2.8.0
-OpenSSL ≥ 0.9.8o
-GCC ≥ 4.3 (Linux only)
-MS Visual Studio ≥ 9 (2008) (Windows only)
diff --git a/README.md b/README.md
new file mode 100644
index 00000000000..0bb14f928e1
--- /dev/null
+++ b/README.md
@@ -0,0 +1,80 @@
+# ![logo](http://www.trinitycore.org/f/public/style_images/1_trinitycore.png) TrinityCore
+
+
+## Introduction
+
+TrinityCore is a *MMORPG* Framework based mostly in C++.
+
+It is derived from *MaNGOS*, the *Massive Network Game Object Server*, and is
+based on the code of that project with extensive changes over time to optimize,
+improve and cleanup the codebase at the same time as improving the in-game
+mechanics and functionality.
+
+It is completely open source; community involvement is highly encouraged.
+
+If you wish to contribute ideas or code please visit our site linked below or
+make pull requests to our [Github repository](https://github.com/TrinityCore/TrinityCore).
+
+For further information on the TrinityCore project, please visit our project
+website at [TrinityCore.org](http://www.trinitycore.org).
+
+
+## Requirements
+
++ Platform: Linux, Windows or Mac
++ Processor with SSE2 support
++ ACE ≥ 5.8.3 (included for Windows)
++ MySQL ≥ 5.1.0 (included for Windows)
++ CMake ≥ 2.8.0
++ OpenSSL ≥ 0.9.8o
++ GCC ≥ 4.3 (Linux only)
++ MS Visual Studio ≥ 9 (2008) (Windows only)
+
+
+## Install
+
+Detailed installation guides are available in the wiki for
+[Windows](http://collab.kpsn.org/display/tc/How-to_Win),
+[Linux](http://collab.kpsn.org/display/tc/How-to_Linux) and
+[Mac OSX](http://collab.kpsn.org/display/tc/How-to_Mac).
+
+
+## Reporting issues
+
+Issues can be reported via the [Github issue tracker](https://github.com/TrinityCore/TrinityCore/issues?labels=Branch-3.3.5a).
+
+Please take the time to review existing issues before submitting your own to
+prevent duplicates.
+
+In addition, thoroughly read through the [issue tracker guide](http://www.trinitycore.org/f/topic/37-the-trinitycore-issuetracker-and-you/) to ensure
+your report contains the required information. Incorrect or poorly formed
+reports are wasteful and are subject to deletion.
+
+
+## Submitting fixes
+
+Fixes are submitted as pull requests via Github. For more information on how to
+properly submit a pull request, read the [how-to: maintain a remote fork](http://www.trinitycore.org/f/topic/6037-howto-maintain-a-remote-fork-for-pull-requests-tortoisegit/).
+
+
+## Copyright
+
+License: GPL 2.0
+
+Read file [COPYING](COPYING)
+
+
+## Authors & Contributors
+
+Read file [THANKS](THANKS)
+
+
+## Links
+
+[Site](http://www.trinitycore.org)
+
+[Wiki](http://trinitycore.info)
+
+[Documentation](http://www.trinitycore.net) (powered by Doxygen)
+
+[Forums](http://www.trinitycore.org/f/)
diff --git a/cmake/compiler/msvc/settings.cmake b/cmake/compiler/msvc/settings.cmake
index d758d466407..f303b6ed761 100644
--- a/cmake/compiler/msvc/settings.cmake
+++ b/cmake/compiler/msvc/settings.cmake
@@ -52,9 +52,10 @@ if(NOT WITH_WARNINGS)
endif()
# Specify the maximum PreCompiled Header memory allocation limit
-# Fixes a compiler-problem when using PCH - the /Ym flag is adjusted by the compiler in MSVC2012, hence we need to set an upper limit with /Zm to avoid disrupancies)
+# Fixes a compiler-problem when using PCH - the /Ym flag is adjusted by the compiler in MSVC2012, hence we need to set an upper limit with /Zm to avoid discrepancies)
# (And yes, this is a verified , unresolved bug with MSVC... *sigh*)
-string(REPLACE "/Zm1000" "/Zm500" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
+string(REGEX REPLACE "/Zm[0-9]+ *" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Zm500" CACHE STRING "" FORCE)
# Enable and treat as errors the following warnings to easily detect virtual function signature failures:
# 'function' : member function does not override any base class virtual member function
diff --git a/cmake/platform/unix/settings.cmake b/cmake/platform/unix/settings.cmake
index a851c8acf7a..b0c0d260623 100644
--- a/cmake/platform/unix/settings.cmake
+++ b/cmake/platform/unix/settings.cmake
@@ -32,10 +32,13 @@ add_custom_target(uninstall
)
message(STATUS "UNIX: Created uninstall target")
+message(STATUS "UNIX: Detected compiler: ${CMAKE_C_COMPILER}")
if(CMAKE_C_COMPILER MATCHES "gcc")
include(${CMAKE_SOURCE_DIR}/cmake/compiler/gcc/settings.cmake)
elseif(CMAKE_C_COMPILER MATCHES "icc")
include(${CMAKE_SOURCE_DIR}/cmake/compiler/icc/settings.cmake)
elseif(CMAKE_C_COMPILER MATCHES "clang")
include(${CMAKE_SOURCE_DIR}/cmake/compiler/clang/settings.cmake)
+else()
+add_definitions(-D_BUILD_DIRECTIVE='"${CMAKE_BUILD_TYPE}"')
endif()
diff --git a/dep/PackageList.txt b/dep/PackageList.txt
index 4f52dfca906..f932591ae32 100644
--- a/dep/PackageList.txt
+++ b/dep/PackageList.txt
@@ -30,7 +30,7 @@ SFMT (SIMD-oriented Fast Mersenne Twister)
utf8-cpp (UTF-8 with C++ in a Portable Way)
http://utfcpp.sourceforge.net/
- Version: 2.3.2
+ Version: 2.3.4
zlib (A Massively Spiffy Yet Delicately Unobtrusive Compression Library)
http://www.zlib.net/
diff --git a/dep/acelite/ace/CMakeLists.txt b/dep/acelite/ace/CMakeLists.txt
index 1f9ffa622a0..7cd34112830 100644
--- a/dep/acelite/ace/CMakeLists.txt
+++ b/dep/acelite/ace/CMakeLists.txt
@@ -10,7 +10,6 @@
# NOTE: Do not use glob here, it would include files we don't want
set(ace_STAT_SRCS
- PrecompiledHeaders/WinAcePCH.cpp
ACE.cpp
ACE_crc32.cpp
ACE_crc_ccitt.cpp
diff --git a/dep/acelite/ace/PrecompiledHeaders/WinAcePCH.cpp b/dep/acelite/ace/PrecompiledHeaders/WinAcePCH.cpp
index 139597f9cb0..bd7cb3d4ef3 100644
--- a/dep/acelite/ace/PrecompiledHeaders/WinAcePCH.cpp
+++ b/dep/acelite/ace/PrecompiledHeaders/WinAcePCH.cpp
@@ -1,2 +1,3 @@
+#include "WinAcePCH.h"
diff --git a/dep/recastnavigation/Detour/DetourAlloc.h b/dep/recastnavigation/Detour/DetourAlloc.h
index 8693475419e..e814b62a716 100644
--- a/dep/recastnavigation/Detour/DetourAlloc.h
+++ b/dep/recastnavigation/Detour/DetourAlloc.h
@@ -19,18 +19,41 @@
#ifndef DETOURALLOCATOR_H
#define DETOURALLOCATOR_H
+/// Provides hint values to the memory allocator on how long the
+/// memory is expected to be used.
enum dtAllocHint
{
- DT_ALLOC_PERM, // Memory persist after a function call.
- DT_ALLOC_TEMP // Memory used temporarily within a function.
+ DT_ALLOC_PERM, ///< Memory persist after a function call.
+ DT_ALLOC_TEMP ///< Memory used temporarily within a function.
};
+/// A memory allocation function.
+// @param[in] size The size, in bytes of memory, to allocate.
+// @param[in] rcAllocHint A hint to the allocator on how long the memory is expected to be in use.
+// @return A pointer to the beginning of the allocated memory block, or null if the allocation failed.
+/// @see dtAllocSetCustom
typedef void* (dtAllocFunc)(int size, dtAllocHint hint);
+
+/// A memory deallocation function.
+/// @param[in] ptr A pointer to a memory block previously allocated using #dtAllocFunc.
+/// @see dtAllocSetCustom
typedef void (dtFreeFunc)(void* ptr);
+/// Sets the base custom allocation functions to be used by Detour.
+/// @param[in] allocFunc The memory allocation function to be used by #dtAlloc
+/// @param[in] freeFunc The memory de-allocation function to be used by #dtFree
void dtAllocSetCustom(dtAllocFunc *allocFunc, dtFreeFunc *freeFunc);
+/// Allocates a memory block.
+/// @param[in] size The size, in bytes of memory, to allocate.
+/// @param[in] hint A hint to the allocator on how long the memory is expected to be in use.
+/// @return A pointer to the beginning of the allocated memory block, or null if the allocation failed.
+/// @see dtFree
void* dtAlloc(int size, dtAllocHint hint);
+
+/// Deallocates a memory block.
+/// @param[in] ptr A pointer to a memory block previously allocated using #dtAlloc.
+/// @see dtAlloc
void dtFree(void* ptr);
#endif
diff --git a/dep/recastnavigation/Detour/DetourAssert.h b/dep/recastnavigation/Detour/DetourAssert.h
index 709ebd9f5f8..3cf652288fa 100644
--- a/dep/recastnavigation/Detour/DetourAssert.h
+++ b/dep/recastnavigation/Detour/DetourAssert.h
@@ -24,7 +24,7 @@
#ifdef NDEBUG
// From http://cnicholson.net/2009/02/stupid-c-tricks-adventures-in-assert/
-# define dtAssert(x) do { (void)sizeof(x); } while(__LINE__==-1,false)
+# define dtAssert(x) do { (void)sizeof(x); } while((void)(__LINE__==-1),false)
#else
# include <assert.h>
# define dtAssert assert
diff --git a/dep/recastnavigation/Detour/DetourCommon.cpp b/dep/recastnavigation/Detour/DetourCommon.cpp
index c0b973e4a75..b5700f5930b 100644
--- a/dep/recastnavigation/Detour/DetourCommon.cpp
+++ b/dep/recastnavigation/Detour/DetourCommon.cpp
@@ -238,6 +238,9 @@ bool dtClosestHeightPointTriangle(const float* p, const float* a, const float* b
return false;
}
+/// @par
+///
+/// All points are projected onto the xz-plane, so the y-values are ignored.
bool dtPointInPolygon(const float* pt, const float* verts, const int nverts)
{
// TODO: Replace pnpoly with triArea2D tests?
@@ -291,6 +294,9 @@ inline bool overlapRange(const float amin, const float amax,
return ((amin+eps) > bmax || (amax-eps) < bmin) ? false : true;
}
+/// @par
+///
+/// All vertices are projected onto the xz-plane, so the y-values are ignored.
bool dtOverlapPolyPoly2D(const float* polya, const int npolya,
const float* polyb, const int npolyb)
{
@@ -327,3 +333,61 @@ bool dtOverlapPolyPoly2D(const float* polya, const int npolya,
return true;
}
+// Returns a random point in a convex polygon.
+// Adapted from Graphics Gems article.
+void dtRandomPointInConvexPoly(const float* pts, const int npts, float* areas,
+ const float s, const float t, float* out)
+{
+ // Calc triangle araes
+ float areasum = 0.0f;
+ for (int i = 2; i < npts; i++) {
+ areas[i] = dtTriArea2D(&pts[0], &pts[(i-1)*3], &pts[i*3]);
+ areasum += dtMax(0.001f, areas[i]);
+ }
+ // Find sub triangle weighted by area.
+ const float thr = s*areasum;
+ float acc = 0.0f;
+ float u = 0.0f;
+ int tri = 0;
+ for (int i = 2; i < npts; i++) {
+ const float dacc = areas[i];
+ if (thr >= acc && thr < (acc+dacc))
+ {
+ u = (thr - acc) / dacc;
+ tri = i;
+ break;
+ }
+ acc += dacc;
+ }
+
+ float v = dtSqrt(t);
+
+ const float a = 1 - v;
+ const float b = (1 - u) * v;
+ const float c = u * v;
+ const float* pa = &pts[0];
+ const float* pb = &pts[(tri-1)*3];
+ const float* pc = &pts[tri*3];
+
+ out[0] = a*pa[0] + b*pb[0] + c*pc[0];
+ out[1] = a*pa[1] + b*pb[1] + c*pc[1];
+ out[2] = a*pa[2] + b*pb[2] + c*pc[2];
+}
+
+inline float vperpXZ(const float* a, const float* b) { return a[0]*b[2] - a[2]*b[0]; }
+
+bool dtIntersectSegSeg2D(const float* ap, const float* aq,
+ const float* bp, const float* bq,
+ float& s, float& t)
+{
+ float u[3], v[3], w[3];
+ dtVsub(u,aq,ap);
+ dtVsub(v,bq,bp);
+ dtVsub(w,ap,bp);
+ float d = vperpXZ(u,v);
+ if (fabsf(d) < 1e-6f) return false;
+ s = vperpXZ(v,w) / d;
+ t = vperpXZ(u,w) / d;
+ return true;
+}
+
diff --git a/dep/recastnavigation/Detour/DetourCommon.h b/dep/recastnavigation/Detour/DetourCommon.h
index 3cee3f63510..ed7c5149db9 100644
--- a/dep/recastnavigation/Detour/DetourCommon.h
+++ b/dep/recastnavigation/Detour/DetourCommon.h
@@ -19,15 +19,66 @@
#ifndef DETOURCOMMON_H
#define DETOURCOMMON_H
+/**
+@defgroup detour Detour
+
+Members in this module are used to create, manipulate, and query navigation
+meshes.
+
+@note This is a summary list of members. Use the index or search
+feature to find minor members.
+*/
+
+/// @name General helper functions
+/// @{
+
+/// Swaps the values of the two parameters.
+/// @param[in,out] a Value A
+/// @param[in,out] b Value B
template<class T> inline void dtSwap(T& a, T& b) { T t = a; a = b; b = t; }
+
+/// Returns the minimum of two values.
+/// @param[in] a Value A
+/// @param[in] b Value B
+/// @return The minimum of the two values.
template<class T> inline T dtMin(T a, T b) { return a < b ? a : b; }
+
+/// Returns the maximum of two values.
+/// @param[in] a Value A
+/// @param[in] b Value B
+/// @return The maximum of the two values.
template<class T> inline T dtMax(T a, T b) { return a > b ? a : b; }
+
+/// Returns the absolute value.
+/// @param[in] a The value.
+/// @return The absolute value of the specified value.
template<class T> inline T dtAbs(T a) { return a < 0 ? -a : a; }
+
+/// Returns the square of the value.
+/// @param[in] a The value.
+/// @return The square of the value.
template<class T> inline T dtSqr(T a) { return a*a; }
+
+/// Clamps the value to the specified range.
+/// @param[in] v The value to clamp.
+/// @param[in] mn The minimum permitted return value.
+/// @param[in] mx The maximum permitted return value.
+/// @return The value, clamped to the specified range.
template<class T> inline T dtClamp(T v, T mn, T mx) { return v < mn ? mn : (v > mx ? mx : v); }
+/// Returns the square root of the value.
+/// @param[in] x The value.
+/// @return The square root of the vlaue.
float dtSqrt(float x);
+/// @}
+/// @name Vector helper functions.
+/// @{
+
+/// Derives the cross product of two vectors. (@p v1 x @p v2)
+/// @param[out] dest The cross product. [(x, y, z)]
+/// @param[in] v1 A Vector [(x, y, z)]
+/// @param[in] v2 A vector [(x, y, z)]
inline void dtVcross(float* dest, const float* v1, const float* v2)
{
dest[0] = v1[1]*v2[2] - v1[2]*v2[1];
@@ -35,11 +86,20 @@ inline void dtVcross(float* dest, const float* v1, const float* v2)
dest[2] = v1[0]*v2[1] - v1[1]*v2[0];
}
+/// Derives the dot product of two vectors. (@p v1 . @p v2)
+/// @param[in] v1 A Vector [(x, y, z)]
+/// @param[in] v2 A vector [(x, y, z)]
+/// @return The dot product.
inline float dtVdot(const float* v1, const float* v2)
{
return v1[0]*v2[0] + v1[1]*v2[1] + v1[2]*v2[2];
}
+/// Performs a scaled vector addition. (@p v1 + (@p v2 * @p s))
+/// @param[out] dest The result vector. [(x, y, z)]
+/// @param[in] v1 The base vector. [(x, y, z)]
+/// @param[in] v2 The vector to scale and add to @p v1. [(x, y, z)]
+/// @param[in] s The amount to scale @p v2 by before adding to @p v1.
inline void dtVmad(float* dest, const float* v1, const float* v2, const float s)
{
dest[0] = v1[0]+v2[0]*s;
@@ -47,6 +107,11 @@ inline void dtVmad(float* dest, const float* v1, const float* v2, const float s)
dest[2] = v1[2]+v2[2]*s;
}
+/// Performs a linear interpolation between two vectors. (@p v1 toward @p v2)
+/// @param[out] dest The result vector. [(x, y, x)]
+/// @param[in] v1 The starting vector.
+/// @param[in] v2 The destination vector.
+/// @param[in] t The interpolation factor. [Limits: 0 <= value <= 1.0]
inline void dtVlerp(float* dest, const float* v1, const float* v2, const float t)
{
dest[0] = v1[0]+(v2[0]-v1[0])*t;
@@ -54,6 +119,10 @@ inline void dtVlerp(float* dest, const float* v1, const float* v2, const float t
dest[2] = v1[2]+(v2[2]-v1[2])*t;
}
+/// Performs a vector addition. (@p v1 + @p v2)
+/// @param[out] dest The result vector. [(x, y, z)]
+/// @param[in] v1 The base vector. [(x, y, z)]
+/// @param[in] v2 The vector to add to @p v1. [(x, y, z)]
inline void dtVadd(float* dest, const float* v1, const float* v2)
{
dest[0] = v1[0]+v2[0];
@@ -61,6 +130,10 @@ inline void dtVadd(float* dest, const float* v1, const float* v2)
dest[2] = v1[2]+v2[2];
}
+/// Performs a vector subtraction. (@p v1 - @p v2)
+/// @param[out] dest The result vector. [(x, y, z)]
+/// @param[in] v1 The base vector. [(x, y, z)]
+/// @param[in] v2 The vector to subtract from @p v1. [(x, y, z)]
inline void dtVsub(float* dest, const float* v1, const float* v2)
{
dest[0] = v1[0]-v2[0];
@@ -68,6 +141,10 @@ inline void dtVsub(float* dest, const float* v1, const float* v2)
dest[2] = v1[2]-v2[2];
}
+/// Scales the vector by the specified value. (@p v * @p t)
+/// @param[out] dest The result vector. [(x, y, z)]
+/// @param[in] v The vector to scale. [(x, y, z)]
+/// @param[in] t The scaling factor.
inline void dtVscale(float* dest, const float* v, const float t)
{
dest[0] = v[0]*t;
@@ -75,6 +152,9 @@ inline void dtVscale(float* dest, const float* v, const float t)
dest[2] = v[2]*t;
}
+/// Selects the minimum value of each element from the specified vectors.
+/// @param[in,out] mn A vector. (Will be updated with the result.) [(x, y, z)]
+/// @param[in] v A vector. [(x, y, z)]
inline void dtVmin(float* mn, const float* v)
{
mn[0] = dtMin(mn[0], v[0]);
@@ -82,6 +162,9 @@ inline void dtVmin(float* mn, const float* v)
mn[2] = dtMin(mn[2], v[2]);
}
+/// Selects the maximum value of each element from the specified vectors.
+/// @param[in,out] mx A vector. (Will be updated with the result.) [(x, y, z)]
+/// @param[in] v A vector. [(x, y, z)]
inline void dtVmax(float* mx, const float* v)
{
mx[0] = dtMax(mx[0], v[0]);
@@ -89,11 +172,19 @@ inline void dtVmax(float* mx, const float* v)
mx[2] = dtMax(mx[2], v[2]);
}
+/// Sets the vector elements to the specified values.
+/// @param[out] dest The result vector. [(x, y, z)]
+/// @param[in] x The x-value of the vector.
+/// @param[in] y The y-value of the vector.
+/// @param[in] z The z-value of the vector.
inline void dtVset(float* dest, const float x, const float y, const float z)
{
dest[0] = x; dest[1] = y; dest[2] = z;
}
+/// Performs a vector copy.
+/// @param[out] dest The result. [(x, y, z)]
+/// @param[in] a The vector to copy. [(x, y, z)]
inline void dtVcopy(float* dest, const float* a)
{
dest[0] = a[0];
@@ -101,16 +192,26 @@ inline void dtVcopy(float* dest, const float* a)
dest[2] = a[2];
}
+/// Derives the scalar length of the vector.
+/// @param[in] v The vector. [(x, y, z)]
+/// @return The scalar length of the vector.
inline float dtVlen(const float* v)
{
return dtSqrt(v[0]*v[0] + v[1]*v[1] + v[2]*v[2]);
}
+/// Derives the square of the scalar length of the vector. (len * len)
+/// @param[in] v The vector. [(x, y, z)]
+/// @return The square of the scalar length of the vector.
inline float dtVlenSqr(const float* v)
{
return v[0]*v[0] + v[1]*v[1] + v[2]*v[2];
}
+/// Returns the distance between two points.
+/// @param[in] v1 A point. [(x, y, z)]
+/// @param[in] v2 A point. [(x, y, z)]
+/// @return The distance between the two points.
inline float dtVdist(const float* v1, const float* v2)
{
const float dx = v2[0] - v1[0];
@@ -119,6 +220,10 @@ inline float dtVdist(const float* v1, const float* v2)
return dtSqrt(dx*dx + dy*dy + dz*dz);
}
+/// Returns the square of the distance between two points.
+/// @param[in] v1 A point. [(x, y, z)]
+/// @param[in] v2 A point. [(x, y, z)]
+/// @return The square of the distance between the two points.
inline float dtVdistSqr(const float* v1, const float* v2)
{
const float dx = v2[0] - v1[0];
@@ -127,6 +232,12 @@ inline float dtVdistSqr(const float* v1, const float* v2)
return dx*dx + dy*dy + dz*dz;
}
+/// Derives the distance between the specified points on the xz-plane.
+/// @param[in] v1 A point. [(x, y, z)]
+/// @param[in] v2 A point. [(x, y, z)]
+/// @return The distance between the point on the xz-plane.
+///
+/// The vectors are projected onto the xz-plane, so the y-values are ignored.
inline float dtVdist2D(const float* v1, const float* v2)
{
const float dx = v2[0] - v1[0];
@@ -134,6 +245,10 @@ inline float dtVdist2D(const float* v1, const float* v2)
return dtSqrt(dx*dx + dz*dz);
}
+/// Derives the square of the distance between the specified points on the xz-plane.
+/// @param[in] v1 A point. [(x, y, z)]
+/// @param[in] v2 A point. [(x, y, z)]
+/// @return The square of the distance between the point on the xz-plane.
inline float dtVdist2DSqr(const float* v1, const float* v2)
{
const float dx = v2[0] - v1[0];
@@ -141,6 +256,8 @@ inline float dtVdist2DSqr(const float* v1, const float* v2)
return dx*dx + dz*dz;
}
+/// Normalizes the vector.
+/// @param[in,out] v The vector to normalize. [(x, y, z)]
inline void dtVnormalize(float* v)
{
float d = 1.0f / dtSqrt(dtSqr(v[0]) + dtSqr(v[1]) + dtSqr(v[2]));
@@ -149,6 +266,13 @@ inline void dtVnormalize(float* v)
v[2] *= d;
}
+/// Performs a 'sloppy' colocation check of the specified points.
+/// @param[in] p0 A point. [(x, y, z)]
+/// @param[in] p1 A point. [(x, y, z)]
+/// @return True if the points are considered to be at the same location.
+///
+/// Basically, this function will return true if the specified points are
+/// close enough to eachother to be considered colocated.
inline bool dtVequal(const float* p0, const float* p1)
{
static const float thr = dtSqr(1.0f/16384.0f);
@@ -156,44 +280,37 @@ inline bool dtVequal(const float* p0, const float* p1)
return d < thr;
}
-inline unsigned int dtNextPow2(unsigned int v)
-{
- v--;
- v |= v >> 1;
- v |= v >> 2;
- v |= v >> 4;
- v |= v >> 8;
- v |= v >> 16;
- v++;
- return v;
-}
-
-inline unsigned int dtIlog2(unsigned int v)
-{
- unsigned int r;
- unsigned int shift;
- r = (v > 0xffff) << 4; v >>= r;
- shift = (v > 0xff) << 3; v >>= shift; r |= shift;
- shift = (v > 0xf) << 2; v >>= shift; r |= shift;
- shift = (v > 0x3) << 1; v >>= shift; r |= shift;
- r |= (v >> 1);
- return r;
-}
-
-inline int dtAlign4(int x) { return (x+3) & ~3; }
-
-inline int dtOppositeTile(int side) { return (side+4) & 0x7; }
-
+/// Derives the dot product of two vectors on the xz-plane. (@p u . @p v)
+/// @param[in] u A vector [(x, y, z)]
+/// @param[in] v A vector [(x, y, z)]
+/// @return The dot product on the xz-plane.
+///
+/// The vectors are projected onto the xz-plane, so the y-values are ignored.
inline float dtVdot2D(const float* u, const float* v)
{
return u[0]*v[0] + u[2]*v[2];
}
+/// Derives the xz-plane 2D perp product of the two vectors. (uz*vx - ux*vz)
+/// @param[in] u The LHV vector [(x, y, z)]
+/// @param[in] v The RHV vector [(x, y, z)]
+/// @return The dot product on the xz-plane.
+///
+/// The vectors are projected onto the xz-plane, so the y-values are ignored.
inline float dtVperp2D(const float* u, const float* v)
{
return u[2]*v[0] - u[0]*v[2];
}
+/// @}
+/// @name Computational geometry helper functions.
+/// @{
+
+/// Derives the signed xz-plane area of the triangle ABC, or the relationship of line AB to point C.
+/// @param[in] a Vertex A. [(x, y, z)]
+/// @param[in] b Vertex B. [(x, y, z)]
+/// @param[in] c Vertex C. [(x, y, z)]
+/// @return The signed xz-plane area of the triangle.
inline float dtTriArea2D(const float* a, const float* b, const float* c)
{
const float abx = b[0] - a[0];
@@ -203,6 +320,13 @@ inline float dtTriArea2D(const float* a, const float* b, const float* c)
return acx*abz - abx*acz;
}
+/// Determines if two axis-aligned bounding boxes overlap.
+/// @param[in] amin Minimum bounds of box A. [(x, y, z)]
+/// @param[in] amax Maximum bounds of box A. [(x, y, z)]
+/// @param[in] bmin Minimum bounds of box B. [(x, y, z)]
+/// @param[in] bmax Maximum bounds of box B. [(x, y, z)]
+/// @return True if the two AABB's overlap.
+/// @see dtOverlapBounds
inline bool dtOverlapQuantBounds(const unsigned short amin[3], const unsigned short amax[3],
const unsigned short bmin[3], const unsigned short bmax[3])
{
@@ -213,6 +337,13 @@ inline bool dtOverlapQuantBounds(const unsigned short amin[3], const unsigned sh
return overlap;
}
+/// Determines if two axis-aligned bounding boxes overlap.
+/// @param[in] amin Minimum bounds of box A. [(x, y, z)]
+/// @param[in] amax Maximum bounds of box A. [(x, y, z)]
+/// @param[in] bmin Minimum bounds of box B. [(x, y, z)]
+/// @param[in] bmax Maximum bounds of box B. [(x, y, z)]
+/// @return True if the two AABB's overlap.
+/// @see dtOverlapQuantBounds
inline bool dtOverlapBounds(const float* amin, const float* amax,
const float* bmin, const float* bmax)
{
@@ -223,9 +354,21 @@ inline bool dtOverlapBounds(const float* amin, const float* amax,
return overlap;
}
+/// Derives the closest point on a triangle from the specified reference point.
+/// @param[out] closest The closest point on the triangle.
+/// @param[in] p The reference point from which to test. [(x, y, z)]
+/// @param[in] a Vertex A of triangle ABC. [(x, y, z)]
+/// @param[in] b Vertex B of triangle ABC. [(x, y, z)]
+/// @param[in] c Vertex C of triangle ABC. [(x, y, z)]
void dtClosestPtPointTriangle(float* closest, const float* p,
const float* a, const float* b, const float* c);
+/// Derives the y-axis height of the closest point on the triangle from the specified reference point.
+/// @param[in] p The reference point from which to test. [(x, y, z)]
+/// @param[in] a Vertex A of triangle ABC. [(x, y, z)]
+/// @param[in] b Vertex B of triangle ABC. [(x, y, z)]
+/// @param[in] c Vertex C of triangle ABC. [(x, y, z)]
+/// @param[out] h The resulting height.
bool dtClosestHeightPointTriangle(const float* p, const float* a, const float* b, const float* c, float& h);
bool dtIntersectSegmentPoly2D(const float* p0, const float* p1,
@@ -233,6 +376,15 @@ bool dtIntersectSegmentPoly2D(const float* p0, const float* p1,
float& tmin, float& tmax,
int& segMin, int& segMax);
+bool dtIntersectSegSeg2D(const float* ap, const float* aq,
+ const float* bp, const float* bq,
+ float& s, float& t);
+
+/// Determines if the specified point is inside the convex polygon on the xz-plane.
+/// @param[in] pt The point to check. [(x, y, z)]
+/// @param[in] verts The polygon vertices. [(x, y, z) * @p nverts]
+/// @param[in] nverts The number of vertices. [Limit: >= 3]
+/// @return True if the point is inside the polygon.
bool dtPointInPolygon(const float* pt, const float* verts, const int nverts);
bool dtDistancePtPolyEdgesSqr(const float* pt, const float* verts, const int nverts,
@@ -240,9 +392,139 @@ bool dtDistancePtPolyEdgesSqr(const float* pt, const float* verts, const int nve
float dtDistancePtSegSqr2D(const float* pt, const float* p, const float* q, float& t);
+/// Derives the centroid of a convex polygon.
+/// @param[out] tc The centroid of the polgyon. [(x, y, z)]
+/// @param[in] idx The polygon indices. [(vertIndex) * @p nidx]
+/// @param[in] nidx The number of indices in the polygon. [Limit: >= 3]
+/// @param[in] verts The polygon vertices. [(x, y, z) * vertCount]
void dtCalcPolyCenter(float* tc, const unsigned short* idx, int nidx, const float* verts);
+/// Determines if the two convex polygons overlap on the xz-plane.
+/// @param[in] polya Polygon A vertices. [(x, y, z) * @p npolya]
+/// @param[in] npolya The number of vertices in polygon A.
+/// @param[in] polyb Polygon B vertices. [(x, y, z) * @p npolyb]
+/// @param[in] npolyb The number of vertices in polygon B.
+/// @return True if the two polygons overlap.
bool dtOverlapPolyPoly2D(const float* polya, const int npolya,
const float* polyb, const int npolyb);
+/// @}
+/// @name Miscellanious functions.
+/// @{
+
+inline unsigned int dtNextPow2(unsigned int v)
+{
+ v--;
+ v |= v >> 1;
+ v |= v >> 2;
+ v |= v >> 4;
+ v |= v >> 8;
+ v |= v >> 16;
+ v++;
+ return v;
+}
+
+inline unsigned int dtIlog2(unsigned int v)
+{
+ unsigned int r;
+ unsigned int shift;
+ r = (v > 0xffff) << 4; v >>= r;
+ shift = (v > 0xff) << 3; v >>= shift; r |= shift;
+ shift = (v > 0xf) << 2; v >>= shift; r |= shift;
+ shift = (v > 0x3) << 1; v >>= shift; r |= shift;
+ r |= (v >> 1);
+ return r;
+}
+
+inline int dtAlign4(int x) { return (x+3) & ~3; }
+
+inline int dtOppositeTile(int side) { return (side+4) & 0x7; }
+
+inline void dtSwapByte(unsigned char* a, unsigned char* b)
+{
+ unsigned char tmp = *a;
+ *a = *b;
+ *b = tmp;
+}
+
+inline void dtSwapEndian(unsigned short* v)
+{
+ unsigned char* x = (unsigned char*)v;
+ dtSwapByte(x+0, x+1);
+}
+
+inline void dtSwapEndian(short* v)
+{
+ unsigned char* x = (unsigned char*)v;
+ dtSwapByte(x+0, x+1);
+}
+
+inline void dtSwapEndian(unsigned int* v)
+{
+ unsigned char* x = (unsigned char*)v;
+ dtSwapByte(x+0, x+3); dtSwapByte(x+1, x+2);
+}
+
+inline void dtSwapEndian(int* v)
+{
+ unsigned char* x = (unsigned char*)v;
+ dtSwapByte(x+0, x+3); dtSwapByte(x+1, x+2);
+}
+
+inline void dtSwapEndian(float* v)
+{
+ unsigned char* x = (unsigned char*)v;
+ dtSwapByte(x+0, x+3); dtSwapByte(x+1, x+2);
+}
+
+void dtRandomPointInConvexPoly(const float* pts, const int npts, float* areas,
+ const float s, const float t, float* out);
+
+/// @}
+
#endif // DETOURCOMMON_H
+
+///////////////////////////////////////////////////////////////////////////
+
+// This section contains detailed documentation for members that don't have
+// a source file. It reduces clutter in the main section of the header.
+
+/**
+
+@fn float dtTriArea2D(const float* a, const float* b, const float* c)
+@par
+
+The vertices are projected onto the xz-plane, so the y-values are ignored.
+
+This is a low cost function than can be used for various purposes. Its main purpose
+is for point/line relationship testing.
+
+In all cases: A value of zero indicates that all vertices are collinear or represent the same point.
+(On the xz-plane.)
+
+When used for point/line relationship tests, AB usually represents a line against which
+the C point is to be tested. In this case:
+
+A positive value indicates that point C is to the left of line AB, looking from A toward B.<br/>
+A negative value indicates that point C is to the right of lineAB, looking from A toward B.
+
+When used for evaluating a triangle:
+
+The absolute value of the return value is two times the area of the triangle when it is
+projected onto the xz-plane.
+
+A positive return value indicates:
+
+<ul>
+<li>The vertices are wrapped in the normal Detour wrap direction.</li>
+<li>The triangle's 3D face normal is in the general up direction.</li>
+</ul>
+
+A negative return value indicates:
+
+<ul>
+<li>The vertices are reverse wrapped. (Wrapped opposite the normal Detour wrap direction.)</li>
+<li>The triangle's 3D face normal is in the general down direction.</li>
+</ul>
+
+*/
diff --git a/dep/recastnavigation/Detour/DetourNavMesh.cpp b/dep/recastnavigation/Detour/DetourNavMesh.cpp
index e139e3f5c63..6b8e2d9d649 100644
--- a/dep/recastnavigation/Detour/DetourNavMesh.cpp
+++ b/dep/recastnavigation/Detour/DetourNavMesh.cpp
@@ -64,6 +64,15 @@ inline bool overlapSlabs(const float* amin, const float* amax,
return false;
}
+static float getSlabCoord(const float* va, const int side)
+{
+ if (side == 0 || side == 4)
+ return va[0];
+ else if (side == 2 || side == 6)
+ return va[2];
+ return 0;
+}
+
static void calcSlabEndPoints(const float* va, const float* vb, float* bmin, float* bmax, const int side)
{
if (side == 0 || side == 4)
@@ -133,6 +142,10 @@ dtNavMesh* dtAllocNavMesh()
return new(mem) dtNavMesh;
}
+/// @par
+///
+/// This function will only free the memory for tiles with the #DT_TILE_FREE_DATA
+/// flag set.
void dtFreeNavMesh(dtNavMesh* navmesh)
{
if (!navmesh) return;
@@ -141,6 +154,37 @@ void dtFreeNavMesh(dtNavMesh* navmesh)
}
//////////////////////////////////////////////////////////////////////////////////////////
+
+/**
+@class dtNavMesh
+
+The navigation mesh consists of one or more tiles defining three primary types of structural data:
+
+A polygon mesh which defines most of the navigation graph. (See rcPolyMesh for its structure.)
+A detail mesh used for determining surface height on the polygon mesh. (See rcPolyMeshDetail for its structure.)
+Off-mesh connections, which define custom point-to-point edges within the navigation graph.
+
+The general build process is as follows:
+
+-# Create rcPolyMesh and rcPolyMeshDetail data using the Recast build pipeline.
+-# Optionally, create off-mesh connection data.
+-# Combine the source data into a dtNavMeshCreateParams structure.
+-# Create a tile data array using dtCreateNavMeshData().
+-# Allocate at dtNavMesh object and initialize it. (For single tile navigation meshes,
+ the tile data is loaded during this step.)
+-# For multi-tile navigation meshes, load the tile data using dtNavMesh::addTile().
+
+Notes:
+
+- This class is usually used in conjunction with the dtNavMeshQuery class for pathfinding.
+- Technically, all navigation meshes are tiled. A 'solo' mesh is simply a navigation mesh initialized
+ to have only a single tile.
+- This class does not implement any asynchronous methods. So the ::dtStatus result of all methods will
+ always contain either a success or failure flag.
+
+@see dtNavMeshQuery, dtCreateNavMeshData, dtNavMeshCreateParams, #dtAllocNavMesh, #dtFreeNavMesh
+*/
+
dtNavMesh::dtNavMesh() :
m_tileWidth(0),
m_tileHeight(0),
@@ -154,6 +198,7 @@ dtNavMesh::dtNavMesh() :
m_tileBits(0),
m_polyBits(0)
{
+ memset(&m_params, 0, sizeof(dtNavMeshParams));
m_orig[0] = 0;
m_orig[1] = 0;
m_orig[2] = 0;
@@ -189,10 +234,10 @@ dtStatus dtNavMesh::init(const dtNavMeshParams* params)
m_tiles = (dtMeshTile*)dtAlloc(sizeof(dtMeshTile)*m_maxTiles, DT_ALLOC_PERM);
if (!m_tiles)
- return DT_FAILURE;
+ return DT_FAILURE | DT_OUT_OF_MEMORY;
m_posLookup = (dtMeshTile**)dtAlloc(sizeof(dtMeshTile*)*m_tileLutSize, DT_ALLOC_PERM);
if (!m_posLookup)
- return DT_FAILURE;
+ return DT_FAILURE | DT_OUT_OF_MEMORY;
memset(m_tiles, 0, sizeof(dtMeshTile)*m_maxTiles);
memset(m_posLookup, 0, sizeof(dtMeshTile*)*m_tileLutSize);
m_nextFree = 0;
@@ -203,13 +248,11 @@ dtStatus dtNavMesh::init(const dtNavMeshParams* params)
m_nextFree = &m_tiles[i];
}
- // Init ID generator values.
- m_tileBits = STATIC_TILE_BITS; //dtIlog2(dtNextPow2((unsigned int)params->maxTiles));
- m_polyBits = STATIC_POLY_BITS; //dtIlog2(dtNextPow2((unsigned int)params->maxPolys));
- m_saltBits = STATIC_SALT_BITS; //sizeof(dtPolyRef)*8 - m_tileBits - m_polyBits;
- //if (m_saltBits < SALT_MIN_BITS)
- //return DT_FAILURE;
-
+ // Edited by TC
+ m_tileBits = STATIC_TILE_BITS;
+ m_polyBits = STATIC_POLY_BITS;
+ m_saltBits = STATIC_SALT_BITS;
+
return DT_SUCCESS;
}
@@ -218,9 +261,9 @@ dtStatus dtNavMesh::init(unsigned char* data, const int dataSize, const int flag
// Make sure the data is in right format.
dtMeshHeader* header = (dtMeshHeader*)data;
if (header->magic != DT_NAVMESH_MAGIC)
- return DT_FAILURE;
+ return DT_FAILURE | DT_WRONG_MAGIC;
if (header->version != DT_NAVMESH_VERSION)
- return DT_FAILURE;
+ return DT_FAILURE | DT_WRONG_VERSION;
dtNavMeshParams params;
dtVcopy(params.orig, header->bmin);
@@ -229,13 +272,17 @@ dtStatus dtNavMesh::init(unsigned char* data, const int dataSize, const int flag
params.maxTiles = 1;
params.maxPolys = header->polyCount;
- dtStatus res = init(&params);
- if (res != DT_SUCCESS)
- return res;
+ dtStatus status = init(&params);
+ if (dtStatusFailed(status))
+ return status;
return addTile(data, dataSize, flags, 0, 0);
}
+/// @par
+///
+/// @note The parameters are created automatically when the single tile
+/// initialization is performed.
const dtNavMeshParams* dtNavMesh::getParams() const
{
return &m_params;
@@ -250,6 +297,7 @@ int dtNavMesh::findConnectingPolys(const float* va, const float* vb,
float amin[2], amax[2];
calcSlabEndPoints(va,vb, amin,amax, side);
+ const float apos = getSlabCoord(va, side);
// Remove links pointing to 'side' and compact the links array.
float bmin[2], bmax[2];
@@ -266,11 +314,18 @@ int dtNavMesh::findConnectingPolys(const float* va, const float* vb,
{
// Skip edges which do not point to the right side.
if (poly->neis[j] != m) continue;
- // Check if the segments touch.
+
const float* vc = &tile->verts[poly->verts[j]*3];
const float* vd = &tile->verts[poly->verts[(j+1) % nv]*3];
+ const float bpos = getSlabCoord(vc, side);
+
+ // Segments are not close enough.
+ if (dtAbs(apos-bpos) > 0.01f)
+ continue;
+
+ // Check if the segments touch.
calcSlabEndPoints(vc,vd, bmin,bmax, side);
-
+
if (!overlapSlabs(amin,amax, bmin,bmax, 0.01f, tile->header->walkableClimb)) continue;
// Add return value.
@@ -287,9 +342,11 @@ int dtNavMesh::findConnectingPolys(const float* va, const float* vb,
return n;
}
-void dtNavMesh::unconnectExtLinks(dtMeshTile* tile, int side)
+void dtNavMesh::unconnectExtLinks(dtMeshTile* tile, dtMeshTile* target)
{
- if (!tile) return;
+ if (!tile || !target) return;
+
+ const unsigned int targetNum = decodePolyIdTile(getTileRef(target));
for (int i = 0; i < tile->header->polyCount; ++i)
{
@@ -298,7 +355,8 @@ void dtNavMesh::unconnectExtLinks(dtMeshTile* tile, int side)
unsigned int pj = DT_NULL_LINK;
while (j != DT_NULL_LINK)
{
- if (tile->links[j].side == side)
+ if (tile->links[j].side != 0xff &&
+ decodePolyIdTile(tile->links[j].ref) == targetNum)
{
// Revove link.
unsigned int nj = tile->links[j].next;
@@ -329,19 +387,25 @@ void dtNavMesh::connectExtLinks(dtMeshTile* tile, dtMeshTile* target, int side)
dtPoly* poly = &tile->polys[i];
// Create new links.
- unsigned short m = DT_EXT_LINK | (unsigned short)side;
+// unsigned short m = DT_EXT_LINK | (unsigned short)side;
+
const int nv = poly->vertCount;
for (int j = 0; j < nv; ++j)
{
- // Skip edges which do not point to the right side.
- if (poly->neis[j] != m) continue;
+ // Skip non-portal edges.
+ if ((poly->neis[j] & DT_EXT_LINK) == 0)
+ continue;
+
+ const int dir = (int)(poly->neis[j] & 0xff);
+ if (side != -1 && dir != side)
+ continue;
// Create new links
const float* va = &tile->verts[poly->verts[j]*3];
const float* vb = &tile->verts[poly->verts[(j+1) % nv]*3];
dtPolyRef nei[4];
float neia[4*2];
- int nnei = findConnectingPolys(va,vb, target, dtOppositeTile(side), nei,neia,4);
+ int nnei = findConnectingPolys(va,vb, target, dtOppositeTile(dir), nei,neia,4);
for (int k = 0; k < nnei; ++k)
{
unsigned int idx = allocLink(tile);
@@ -350,13 +414,13 @@ void dtNavMesh::connectExtLinks(dtMeshTile* tile, dtMeshTile* target, int side)
dtLink* link = &tile->links[idx];
link->ref = nei[k];
link->edge = (unsigned char)j;
- link->side = (unsigned char)side;
+ link->side = (unsigned char)dir;
link->next = poly->firstLink;
poly->firstLink = idx;
// Compress portal limits to a byte value.
- if (side == 0 || side == 4)
+ if (dir == 0 || dir == 4)
{
float tmin = (neia[k*2+0]-va[2]) / (vb[2]-va[2]);
float tmax = (neia[k*2+1]-va[2]) / (vb[2]-va[2]);
@@ -365,7 +429,7 @@ void dtNavMesh::connectExtLinks(dtMeshTile* tile, dtMeshTile* target, int side)
link->bmin = (unsigned char)(dtClamp(tmin, 0.0f, 1.0f)*255.0f);
link->bmax = (unsigned char)(dtClamp(tmax, 0.0f, 1.0f)*255.0f);
}
- else if (side == 2 || side == 6)
+ else if (dir == 2 || dir == 6)
{
float tmin = (neia[k*2+0]-va[0]) / (vb[0]-va[0]);
float tmax = (neia[k*2+1]-va[0]) / (vb[0]-va[0]);
@@ -386,15 +450,18 @@ void dtNavMesh::connectExtOffMeshLinks(dtMeshTile* tile, dtMeshTile* target, int
// Connect off-mesh links.
// We are interested on links which land from target tile to this tile.
- const unsigned char oppositeSide = (unsigned char)dtOppositeTile(side);
+ const unsigned char oppositeSide = (side == -1) ? 0xff : (unsigned char)dtOppositeTile(side);
for (int i = 0; i < target->header->offMeshConCount; ++i)
{
dtOffMeshConnection* targetCon = &target->offMeshCons[i];
if (targetCon->side != oppositeSide)
continue;
-
+
dtPoly* targetPoly = &target->polys[targetCon->poly];
+ // Skip off-mesh connections which start location could not be connected at all.
+ if (targetPoly->firstLink == DT_NULL_LINK)
+ continue;
const float ext[3] = { targetCon->rad, target->header->walkableClimb, targetCon->rad };
@@ -402,7 +469,8 @@ void dtNavMesh::connectExtOffMeshLinks(dtMeshTile* tile, dtMeshTile* target, int
const float* p = &targetCon->pos[3];
float nearestPt[3];
dtPolyRef ref = findNearestPolyInTile(tile, p, ext, nearestPt);
- if (!ref) continue;
+ if (!ref)
+ continue;
// findNearestPoly may return too optimistic results, further check to make sure.
if (dtSqr(nearestPt[0]-p[0])+dtSqr(nearestPt[2]-p[2]) > dtSqr(targetCon->rad))
continue;
@@ -427,19 +495,19 @@ void dtNavMesh::connectExtOffMeshLinks(dtMeshTile* tile, dtMeshTile* target, int
// Link target poly to off-mesh connection.
if (targetCon->flags & DT_OFFMESH_CON_BIDIR)
{
- unsigned int idx = allocLink(tile);
- if (idx != DT_NULL_LINK)
+ unsigned int tidx = allocLink(tile);
+ if (tidx != DT_NULL_LINK)
{
const unsigned short landPolyIdx = (unsigned short)decodePolyIdPoly(ref);
dtPoly* landPoly = &tile->polys[landPolyIdx];
- dtLink* link = &tile->links[idx];
+ dtLink* link = &tile->links[tidx];
link->ref = getPolyRefBase(target) | (dtPolyRef)(targetCon->poly);
link->edge = 0xff;
- link->side = (unsigned char)side;
+ link->side = (unsigned char)(side == -1 ? 0xff : side);
link->bmin = link->bmax = 0;
// Add to linked list.
link->next = landPoly->firstLink;
- landPoly->firstLink = idx;
+ landPoly->firstLink = tidx;
}
}
}
@@ -483,13 +551,13 @@ void dtNavMesh::connectIntLinks(dtMeshTile* tile)
}
}
-void dtNavMesh::connectIntOffMeshLinks(dtMeshTile* tile)
+void dtNavMesh::baseOffMeshLinks(dtMeshTile* tile)
{
if (!tile) return;
dtPolyRef base = getPolyRefBase(tile);
- // Find Off-mesh connection end points.
+ // Base off-mesh connection start points.
for (int i = 0; i < tile->header->offMeshConCount; ++i)
{
dtOffMeshConnection* con = &tile->offMeshCons[i];
@@ -497,72 +565,96 @@ void dtNavMesh::connectIntOffMeshLinks(dtMeshTile* tile)
const float ext[3] = { con->rad, tile->header->walkableClimb, con->rad };
- for (int j = 0; j < 2; ++j)
- {
- unsigned char side = j == 0 ? 0xff : con->side;
+ // Find polygon to connect to.
+ const float* p = &con->pos[0]; // First vertex
+ float nearestPt[3];
+ dtPolyRef ref = findNearestPolyInTile(tile, p, ext, nearestPt);
+ if (!ref) continue;
+ // findNearestPoly may return too optimistic results, further check to make sure.
+ if (dtSqr(nearestPt[0]-p[0])+dtSqr(nearestPt[2]-p[2]) > dtSqr(con->rad))
+ continue;
+ // Make sure the location is on current mesh.
+ float* v = &tile->verts[poly->verts[0]*3];
+ dtVcopy(v, nearestPt);
- if (side == 0xff)
- {
- // Find polygon to connect to.
- const float* p = &con->pos[j*3];
- float nearestPt[3];
- dtPolyRef ref = findNearestPolyInTile(tile, p, ext, nearestPt);
- if (!ref) continue;
- // findNearestPoly may return too optimistic results, further check to make sure.
- if (dtSqr(nearestPt[0]-p[0])+dtSqr(nearestPt[2]-p[2]) > dtSqr(con->rad))
- continue;
- // Make sure the location is on current mesh.
- float* v = &tile->verts[poly->verts[j]*3];
- dtVcopy(v, nearestPt);
-
- // Link off-mesh connection to target poly.
- unsigned int idx = allocLink(tile);
- if (idx != DT_NULL_LINK)
- {
- dtLink* link = &tile->links[idx];
- link->ref = ref;
- link->edge = (unsigned char)j;
- link->side = 0xff;
- link->bmin = link->bmax = 0;
- // Add to linked list.
- link->next = poly->firstLink;
- poly->firstLink = idx;
- }
+ // Link off-mesh connection to target poly.
+ unsigned int idx = allocLink(tile);
+ if (idx != DT_NULL_LINK)
+ {
+ dtLink* link = &tile->links[idx];
+ link->ref = ref;
+ link->edge = (unsigned char)0;
+ link->side = 0xff;
+ link->bmin = link->bmax = 0;
+ // Add to linked list.
+ link->next = poly->firstLink;
+ poly->firstLink = idx;
+ }
- // Start end-point is always connect back to off-mesh connection,
- // Destination end-point only if it is bidirectional link.
- if (j == 0 || (j == 1 && (con->flags & DT_OFFMESH_CON_BIDIR)))
- {
- // Link target poly to off-mesh connection.
- unsigned int idx = allocLink(tile);
- if (idx != DT_NULL_LINK)
- {
- const unsigned short landPolyIdx = (unsigned short)decodePolyIdPoly(ref);
- dtPoly* landPoly = &tile->polys[landPolyIdx];
- dtLink* link = &tile->links[idx];
- link->ref = base | (dtPolyRef)(con->poly);
- link->edge = 0xff;
- link->side = 0xff;
- link->bmin = link->bmax = 0;
- // Add to linked list.
- link->next = landPoly->firstLink;
- landPoly->firstLink = idx;
- }
- }
-
- }
+ // Start end-point is always connect back to off-mesh connection.
+ unsigned int tidx = allocLink(tile);
+ if (tidx != DT_NULL_LINK)
+ {
+ const unsigned short landPolyIdx = (unsigned short)decodePolyIdPoly(ref);
+ dtPoly* landPoly = &tile->polys[landPolyIdx];
+ dtLink* link = &tile->links[tidx];
+ link->ref = base | (dtPolyRef)(con->poly);
+ link->edge = 0xff;
+ link->side = 0xff;
+ link->bmin = link->bmax = 0;
+ // Add to linked list.
+ link->next = landPoly->firstLink;
+ landPoly->firstLink = tidx;
}
}
}
-dtStatus dtNavMesh::closestPointOnPolyInTile(const dtMeshTile* tile, unsigned int ip,
- const float* pos, float* closest) const
+void dtNavMesh::closestPointOnPolyInTile(const dtMeshTile* tile, unsigned int ip,
+ const float* pos, float* closest) const
{
const dtPoly* poly = &tile->polys[ip];
+ // Off-mesh connections don't have detail polygons.
+ if (poly->getType() == DT_POLYTYPE_OFFMESH_CONNECTION)
+ {
+ const float* v0 = &tile->verts[poly->verts[0]*3];
+ const float* v1 = &tile->verts[poly->verts[1]*3];
+ const float d0 = dtVdist(pos, v0);
+ const float d1 = dtVdist(pos, v1);
+ const float u = d0 / (d0+d1);
+ dtVlerp(closest, v0, v1, u);
+ return;
+ }
- float closestDistSqr = FLT_MAX;
const dtPolyDetail* pd = &tile->detailMeshes[ip];
+
+ // Clamp point to be inside the polygon.
+ float verts[DT_VERTS_PER_POLYGON*3];
+ float edged[DT_VERTS_PER_POLYGON];
+ float edget[DT_VERTS_PER_POLYGON];
+ const int nv = poly->vertCount;
+ for (int i = 0; i < nv; ++i)
+ dtVcopy(&verts[i*3], &tile->verts[poly->verts[i]*3]);
+ dtVcopy(closest, pos);
+ if (!dtDistancePtPolyEdgesSqr(pos, verts, nv, edged, edget))
+ {
+ // Point is outside the polygon, dtClamp to nearest edge.
+ float dmin = FLT_MAX;
+ int imin = -1;
+ for (int i = 0; i < nv; ++i)
+ {
+ if (edged[i] < dmin)
+ {
+ dmin = edged[i];
+ imin = i;
+ }
+ }
+ const float* va = &verts[imin*3];
+ const float* vb = &verts[((imin+1)%nv)*3];
+ dtVlerp(closest, va, vb, edget[imin]);
+ }
+
+ // Find height at the location.
for (int j = 0; j < pd->triCount; ++j)
{
const unsigned char* t = &tile->detailTris[(pd->triBase+j)*4];
@@ -574,17 +666,13 @@ dtStatus dtNavMesh::closestPointOnPolyInTile(const dtMeshTile* tile, unsigned in
else
v[k] = &tile->detailVerts[(pd->vertBase+(t[k]-poly->vertCount))*3];
}
- float pt[3];
- dtClosestPtPointTriangle(pt, pos, v[0], v[1], v[2]);
- float d = dtVdistSqr(pos, pt);
- if (d < closestDistSqr)
+ float h;
+ if (dtClosestHeightPointTriangle(pos, v[0], v[1], v[2], h))
{
- dtVcopy(closest, pt);
- closestDistSqr = d;
+ closest[1] = h;
+ break;
}
}
-
- return DT_SUCCESS;
}
dtPolyRef dtNavMesh::findNearestPolyInTile(const dtMeshTile* tile,
@@ -606,8 +694,7 @@ dtPolyRef dtNavMesh::findNearestPolyInTile(const dtMeshTile* tile,
{
dtPolyRef ref = polys[i];
float closestPtPoly[3];
- if (closestPointOnPolyInTile(tile, decodePolyIdPoly(ref), center, closestPtPoly) != DT_SUCCESS)
- continue;
+ closestPointOnPolyInTile(tile, decodePolyIdPoly(ref), center, closestPtPoly);
float d = dtVdistSqr(center, closestPtPoly);
if (d < nearestDistanceSqr)
{
@@ -681,8 +768,11 @@ int dtNavMesh::queryPolygonsInTile(const dtMeshTile* tile, const float* qmin, co
dtPolyRef base = getPolyRefBase(tile);
for (int i = 0; i < tile->header->polyCount; ++i)
{
- // Calc polygon bounds.
dtPoly* p = &tile->polys[i];
+ // Do not return off-mesh connection polygons.
+ if (p->getType() == DT_POLYTYPE_OFFMESH_CONNECTION)
+ continue;
+ // Calc polygon bounds.
const float* v = &tile->verts[p->verts[0]*3];
dtVcopy(bmin, v);
dtVcopy(bmax, v);
@@ -702,18 +792,29 @@ int dtNavMesh::queryPolygonsInTile(const dtMeshTile* tile, const float* qmin, co
}
}
+/// @par
+///
+/// The add operation will fail if the data is in the wrong format, the allocated tile
+/// space is full, or there is a tile already at the specified reference.
+///
+/// The lastRef parameter is used to restore a tile with the same tile
+/// reference it had previously used. In this case the #dtPolyRef's for the
+/// tile will be restored to the same values they were before the tile was
+/// removed.
+///
+/// @see dtCreateNavMeshData, #removeTile
dtStatus dtNavMesh::addTile(unsigned char* data, int dataSize, int flags,
dtTileRef lastRef, dtTileRef* result)
{
// Make sure the data is in right format.
dtMeshHeader* header = (dtMeshHeader*)data;
if (header->magic != DT_NAVMESH_MAGIC)
- return DT_FAILURE_DATA_MAGIC;
+ return DT_FAILURE | DT_WRONG_MAGIC;
if (header->version != DT_NAVMESH_VERSION)
- return DT_FAILURE_DATA_VERSION;
+ return DT_FAILURE | DT_WRONG_VERSION;
// Make sure the location is free.
- if (getTileAt(header->x, header->y))
+ if (getTileAt(header->x, header->y, header->layer))
return DT_FAILURE;
// Allocate a tile.
@@ -732,7 +833,7 @@ dtStatus dtNavMesh::addTile(unsigned char* data, int dataSize, int flags,
// Try to relocate the tile to specific index with same salt.
int tileIndex = (int)decodePolyIdTile((dtPolyRef)lastRef);
if (tileIndex >= m_maxTiles)
- return DT_FAILURE_OUT_OF_MEMORY;
+ return DT_FAILURE | DT_OUT_OF_MEMORY;
// Try to find the specific tile id from the free list.
dtMeshTile* target = &m_tiles[tileIndex];
dtMeshTile* prev = 0;
@@ -744,7 +845,7 @@ dtStatus dtNavMesh::addTile(unsigned char* data, int dataSize, int flags,
}
// Could not find the correct location.
if (tile != target)
- return DT_FAILURE_OUT_OF_MEMORY;
+ return DT_FAILURE | DT_OUT_OF_MEMORY;
// Remove from freelist
if (!prev)
m_nextFree = tile->next;
@@ -757,7 +858,7 @@ dtStatus dtNavMesh::addTile(unsigned char* data, int dataSize, int flags,
// Make sure we could allocate a tile.
if (!tile)
- return DT_FAILURE_OUT_OF_MEMORY;
+ return DT_FAILURE | DT_OUT_OF_MEMORY;
// Insert tile into the position lut.
int h = computeTileHash(header->x, header->y, m_tileLutMask);
@@ -785,6 +886,10 @@ dtStatus dtNavMesh::addTile(unsigned char* data, int dataSize, int flags,
tile->bvTree = (dtBVNode*)d; d += bvtreeSize;
tile->offMeshCons = (dtOffMeshConnection*)d; d += offMeshLinksSize;
+ // If there are no items in the bvtree, reset the tree pointer.
+ if (!bvtreeSize)
+ tile->bvTree = 0;
+
// Build links freelist
tile->linksFreeList = 0;
tile->links[header->maxLinkCount-1].next = DT_NULL_LINK;
@@ -798,18 +903,36 @@ dtStatus dtNavMesh::addTile(unsigned char* data, int dataSize, int flags,
tile->flags = flags;
connectIntLinks(tile);
- connectIntOffMeshLinks(tile);
+ baseOffMeshLinks(tile);
- // Create connections connections.
+ // Create connections with neighbour tiles.
+ static const int MAX_NEIS = 32;
+ dtMeshTile* neis[MAX_NEIS];
+ int nneis;
+
+ // Connect with layers in current tile.
+ nneis = getTilesAt(header->x, header->y, neis, MAX_NEIS);
+ for (int j = 0; j < nneis; ++j)
+ {
+ if (neis[j] != tile)
+ {
+ connectExtLinks(tile, neis[j], -1);
+ connectExtLinks(neis[j], tile, -1);
+ }
+ connectExtOffMeshLinks(tile, neis[j], -1);
+ connectExtOffMeshLinks(neis[j], tile, -1);
+ }
+
+ // Connect with neighbour tiles.
for (int i = 0; i < 8; ++i)
{
- dtMeshTile* nei = getNeighbourTileAt(header->x, header->y, i);
- if (nei)
+ nneis = getNeighbourTilesAt(header->x, header->y, i, neis, MAX_NEIS);
+ for (int j = 0; j < nneis; ++j)
{
- connectExtLinks(tile, nei, i);
- connectExtLinks(nei, tile, dtOppositeTile(i));
- connectExtOffMeshLinks(tile, nei, i);
- connectExtOffMeshLinks(nei, tile, dtOppositeTile(i));
+ connectExtLinks(tile, neis[j], i);
+ connectExtLinks(neis[j], tile, dtOppositeTile(i));
+ connectExtOffMeshLinks(tile, neis[j], i);
+ connectExtOffMeshLinks(neis[j], tile, dtOppositeTile(i));
}
}
@@ -819,55 +942,106 @@ dtStatus dtNavMesh::addTile(unsigned char* data, int dataSize, int flags,
return DT_SUCCESS;
}
-const dtMeshTile* dtNavMesh::getTileAt(int x, int y) const
+const dtMeshTile* dtNavMesh::getTileAt(const int x, const int y, const int layer) const
{
// Find tile based on hash.
int h = computeTileHash(x,y,m_tileLutMask);
dtMeshTile* tile = m_posLookup[h];
while (tile)
{
- if (tile->header && tile->header->x == x && tile->header->y == y)
+ if (tile->header &&
+ tile->header->x == x &&
+ tile->header->y == y &&
+ tile->header->layer == layer)
+ {
return tile;
+ }
tile = tile->next;
}
return 0;
}
-dtMeshTile* dtNavMesh::getNeighbourTileAt(int x, int y, int side) const
+int dtNavMesh::getNeighbourTilesAt(const int x, const int y, const int side, dtMeshTile** tiles, const int maxTiles) const
{
+ int nx = x, ny = y;
switch (side)
{
- case 0: x++; break;
- case 1: x++; y++; break;
- case 2: y++; break;
- case 3: x--; y++; break;
- case 4: x--; break;
- case 5: x--; y--; break;
- case 6: y--; break;
- case 7: x++; y--; break;
+ case 0: nx++; break;
+ case 1: nx++; ny++; break;
+ case 2: ny++; break;
+ case 3: nx--; ny++; break;
+ case 4: nx--; break;
+ case 5: nx--; ny--; break;
+ case 6: ny--; break;
+ case 7: nx++; ny--; break;
};
+ return getTilesAt(nx, ny, tiles, maxTiles);
+}
+
+int dtNavMesh::getTilesAt(const int x, const int y, dtMeshTile** tiles, const int maxTiles) const
+{
+ int n = 0;
+
// Find tile based on hash.
int h = computeTileHash(x,y,m_tileLutMask);
dtMeshTile* tile = m_posLookup[h];
while (tile)
{
- if (tile->header && tile->header->x == x && tile->header->y == y)
- return tile;
+ if (tile->header &&
+ tile->header->x == x &&
+ tile->header->y == y)
+ {
+ if (n < maxTiles)
+ tiles[n++] = tile;
+ }
tile = tile->next;
}
- return 0;
+
+ return n;
}
-dtTileRef dtNavMesh::getTileRefAt(int x, int y) const
+/// @par
+///
+/// This function will not fail if the tiles array is too small to hold the
+/// entire result set. It will simply fill the array to capacity.
+int dtNavMesh::getTilesAt(const int x, const int y, dtMeshTile const** tiles, const int maxTiles) const
{
+ int n = 0;
+
// Find tile based on hash.
int h = computeTileHash(x,y,m_tileLutMask);
dtMeshTile* tile = m_posLookup[h];
while (tile)
{
- if (tile->header && tile->header->x == x && tile->header->y == y)
+ if (tile->header &&
+ tile->header->x == x &&
+ tile->header->y == y)
+ {
+ if (n < maxTiles)
+ tiles[n++] = tile;
+ }
+ tile = tile->next;
+ }
+
+ return n;
+}
+
+
+dtTileRef dtNavMesh::getTileRefAt(const int x, const int y, const int layer) const
+{
+ // Find tile based on hash.
+ int h = computeTileHash(x,y,m_tileLutMask);
+ dtMeshTile* tile = m_posLookup[h];
+ while (tile)
+ {
+ if (tile->header &&
+ tile->header->x == x &&
+ tile->header->y == y &&
+ tile->header->layer == layer)
+ {
return getTileRef(tile);
+ }
tile = tile->next;
}
return 0;
@@ -910,16 +1084,22 @@ void dtNavMesh::calcTileLoc(const float* pos, int* tx, int* ty) const
dtStatus dtNavMesh::getTileAndPolyByRef(const dtPolyRef ref, const dtMeshTile** tile, const dtPoly** poly) const
{
+ if (!ref) return DT_FAILURE;
unsigned int salt, it, ip;
decodePolyId(ref, salt, it, ip);
- if (it >= (unsigned int)m_maxTiles) return DT_FAILURE;
- if (m_tiles[it].salt != salt || m_tiles[it].header == 0) return DT_FAILURE;
- if (ip >= (unsigned int)m_tiles[it].header->polyCount) return DT_FAILURE;
+ if (it >= (unsigned int)m_maxTiles) return DT_FAILURE | DT_INVALID_PARAM;
+ if (m_tiles[it].salt != salt || m_tiles[it].header == 0) return DT_FAILURE | DT_INVALID_PARAM;
+ if (ip >= (unsigned int)m_tiles[it].header->polyCount) return DT_FAILURE | DT_INVALID_PARAM;
*tile = &m_tiles[it];
*poly = &m_tiles[it].polys[ip];
return DT_SUCCESS;
}
+/// @par
+///
+/// @warning Only use this function if it is known that the provided polygon
+/// reference is valid. This function is faster than #getTileAndPolyByRef, but
+/// it does not validate the reference.
void dtNavMesh::getTileAndPolyByRefUnsafe(const dtPolyRef ref, const dtMeshTile** tile, const dtPoly** poly) const
{
unsigned int salt, it, ip;
@@ -930,6 +1110,7 @@ void dtNavMesh::getTileAndPolyByRefUnsafe(const dtPolyRef ref, const dtMeshTile*
bool dtNavMesh::isValidPolyRef(dtPolyRef ref) const
{
+ if (!ref) return false;
unsigned int salt, it, ip;
decodePolyId(ref, salt, it, ip);
if (it >= (unsigned int)m_maxTiles) return false;
@@ -938,17 +1119,23 @@ bool dtNavMesh::isValidPolyRef(dtPolyRef ref) const
return true;
}
+/// @par
+///
+/// This function returns the data for the tile so that, if desired,
+/// it can be added back to the navigation mesh at a later point.
+///
+/// @see #addTile
dtStatus dtNavMesh::removeTile(dtTileRef ref, unsigned char** data, int* dataSize)
{
if (!ref)
- return DT_FAILURE;
+ return DT_FAILURE | DT_INVALID_PARAM;
unsigned int tileIndex = decodePolyIdTile((dtPolyRef)ref);
unsigned int tileSalt = decodePolyIdSalt((dtPolyRef)ref);
if ((int)tileIndex >= m_maxTiles)
- return DT_FAILURE;
+ return DT_FAILURE | DT_INVALID_PARAM;
dtMeshTile* tile = &m_tiles[tileIndex];
if (tile->salt != tileSalt)
- return DT_FAILURE;
+ return DT_FAILURE | DT_INVALID_PARAM;
// Remove tile from hash lookup.
int h = computeTileHash(tile->header->x,tile->header->y,m_tileLutMask);
@@ -969,14 +1156,27 @@ dtStatus dtNavMesh::removeTile(dtTileRef ref, unsigned char** data, int* dataSiz
}
// Remove connections to neighbour tiles.
- for (int i = 0; i < 8; ++i)
+ // Create connections with neighbour tiles.
+ static const int MAX_NEIS = 32;
+ dtMeshTile* neis[MAX_NEIS];
+ int nneis;
+
+ // Connect with layers in current tile.
+ nneis = getTilesAt(tile->header->x, tile->header->y, neis, MAX_NEIS);
+ for (int j = 0; j < nneis; ++j)
{
- dtMeshTile* nei = getNeighbourTileAt(tile->header->x,tile->header->y,i);
- if (!nei) continue;
- unconnectExtLinks(nei, dtOppositeTile(i));
+ if (neis[j] == tile) continue;
+ unconnectExtLinks(neis[j], tile);
}
-
+ // Connect with neighbour tiles.
+ for (int i = 0; i < 8; ++i)
+ {
+ nneis = getNeighbourTilesAt(tile->header->x, tile->header->y, i, neis, MAX_NEIS);
+ for (int j = 0; j < nneis; ++j)
+ unconnectExtLinks(neis[j], tile);
+ }
+
// Reset tile.
if (tile->flags & DT_TILE_FREE_DATA)
{
@@ -1020,14 +1220,28 @@ dtStatus dtNavMesh::removeTile(dtTileRef ref, unsigned char** data, int* dataSiz
dtTileRef dtNavMesh::getTileRef(const dtMeshTile* tile) const
{
if (!tile) return 0;
- const unsigned int it = tile - m_tiles;
+ const unsigned int it = (unsigned int)(tile - m_tiles);
return (dtTileRef)encodePolyId(tile->salt, it, 0);
}
+/// @par
+///
+/// Example use case:
+/// @code
+///
+/// const dtPolyRef base = navmesh->getPolyRefBase(tile);
+/// for (int i = 0; i < tile->header->polyCount; ++i)
+/// {
+/// const dtPoly* p = &tile->polys[i];
+/// const dtPolyRef ref = base | (dtPolyRef)i;
+///
+/// // Use the reference to access the polygon data.
+/// }
+/// @endcode
dtPolyRef dtNavMesh::getPolyRefBase(const dtMeshTile* tile) const
{
if (!tile) return 0;
- const unsigned int it = tile - m_tiles;
+ const unsigned int it = (unsigned int)(tile - m_tiles);
return encodePolyId(tile->salt, it, 0);
}
@@ -1044,6 +1258,7 @@ struct dtPolyState
unsigned char area; // Area ID of the polygon.
};
+/// @see #storeTileState
int dtNavMesh::getTileStateSize(const dtMeshTile* tile) const
{
if (!tile) return 0;
@@ -1052,12 +1267,17 @@ int dtNavMesh::getTileStateSize(const dtMeshTile* tile) const
return headerSize + polyStateSize;
}
+/// @par
+///
+/// Tile state includes non-structural data such as polygon flags, area ids, etc.
+/// @note The state data is only valid until the tile reference changes.
+/// @see #getTileStateSize, #restoreTileState
dtStatus dtNavMesh::storeTileState(const dtMeshTile* tile, unsigned char* data, const int maxDataSize) const
{
// Make sure there is enough space to store the state.
const int sizeReq = getTileStateSize(tile);
if (maxDataSize < sizeReq)
- return DT_FAILURE;
+ return DT_FAILURE | DT_BUFFER_TOO_SMALL;
dtTileState* tileState = (dtTileState*)data; data += dtAlign4(sizeof(dtTileState));
dtPolyState* polyStates = (dtPolyState*)data; data += dtAlign4(sizeof(dtPolyState) * tile->header->polyCount);
@@ -1079,23 +1299,28 @@ dtStatus dtNavMesh::storeTileState(const dtMeshTile* tile, unsigned char* data,
return DT_SUCCESS;
}
+/// @par
+///
+/// Tile state includes non-structural data such as polygon flags, area ids, etc.
+/// @note This function does not impact the tile's #dtTileRef and #dtPolyRef's.
+/// @see #storeTileState
dtStatus dtNavMesh::restoreTileState(dtMeshTile* tile, const unsigned char* data, const int maxDataSize)
{
// Make sure there is enough space to store the state.
const int sizeReq = getTileStateSize(tile);
if (maxDataSize < sizeReq)
- return DT_FAILURE;
+ return DT_FAILURE | DT_INVALID_PARAM;
const dtTileState* tileState = (const dtTileState*)data; data += dtAlign4(sizeof(dtTileState));
const dtPolyState* polyStates = (const dtPolyState*)data; data += dtAlign4(sizeof(dtPolyState) * tile->header->polyCount);
// Check that the restore is possible.
if (tileState->magic != DT_NAVMESH_STATE_MAGIC)
- return DT_FAILURE_DATA_MAGIC;
+ return DT_FAILURE | DT_WRONG_MAGIC;
if (tileState->version != DT_NAVMESH_STATE_VERSION)
- return DT_FAILURE_DATA_VERSION;
+ return DT_FAILURE | DT_WRONG_VERSION;
if (tileState->ref != getTileRef(tile))
- return DT_FAILURE;
+ return DT_FAILURE | DT_INVALID_PARAM;
// Restore per poly state.
for (int i = 0; i < tile->header->polyCount; ++i)
@@ -1109,17 +1334,26 @@ dtStatus dtNavMesh::restoreTileState(dtMeshTile* tile, const unsigned char* data
return DT_SUCCESS;
}
-// Returns start and end location of an off-mesh link polygon.
+/// @par
+///
+/// Off-mesh connections are stored in the navigation mesh as special 2-vertex
+/// polygons with a single edge. At least one of the vertices is expected to be
+/// inside a normal polygon. So an off-mesh connection is "entered" from a
+/// normal polygon at one of its endpoints. This is the polygon identified by
+/// the prevRef parameter.
dtStatus dtNavMesh::getOffMeshConnectionPolyEndPoints(dtPolyRef prevRef, dtPolyRef polyRef, float* startPos, float* endPos) const
{
unsigned int salt, it, ip;
+ if (!polyRef)
+ return DT_FAILURE;
+
// Get current polygon
decodePolyId(polyRef, salt, it, ip);
- if (it >= (unsigned int)m_maxTiles) return DT_FAILURE;
- if (m_tiles[it].salt != salt || m_tiles[it].header == 0) return DT_FAILURE;
+ if (it >= (unsigned int)m_maxTiles) return DT_FAILURE | DT_INVALID_PARAM;
+ if (m_tiles[it].salt != salt || m_tiles[it].header == 0) return DT_FAILURE | DT_INVALID_PARAM;
const dtMeshTile* tile = &m_tiles[it];
- if (ip >= (unsigned int)tile->header->polyCount) return DT_FAILURE;
+ if (ip >= (unsigned int)tile->header->polyCount) return DT_FAILURE | DT_INVALID_PARAM;
const dtPoly* poly = &tile->polys[ip];
// Make sure that the current poly is indeed off-mesh link.
@@ -1154,6 +1388,9 @@ const dtOffMeshConnection* dtNavMesh::getOffMeshConnectionByRef(dtPolyRef ref) c
{
unsigned int salt, it, ip;
+ if (!ref)
+ return 0;
+
// Get current polygon
decodePolyId(ref, salt, it, ip);
if (it >= (unsigned int)m_maxTiles) return 0;
@@ -1174,12 +1411,13 @@ const dtOffMeshConnection* dtNavMesh::getOffMeshConnectionByRef(dtPolyRef ref) c
dtStatus dtNavMesh::setPolyFlags(dtPolyRef ref, unsigned short flags)
{
+ if (!ref) return DT_FAILURE;
unsigned int salt, it, ip;
decodePolyId(ref, salt, it, ip);
- if (it >= (unsigned int)m_maxTiles) return DT_FAILURE;
- if (m_tiles[it].salt != salt || m_tiles[it].header == 0) return DT_FAILURE;
+ if (it >= (unsigned int)m_maxTiles) return DT_FAILURE | DT_INVALID_PARAM;
+ if (m_tiles[it].salt != salt || m_tiles[it].header == 0) return DT_FAILURE | DT_INVALID_PARAM;
dtMeshTile* tile = &m_tiles[it];
- if (ip >= (unsigned int)tile->header->polyCount) return DT_FAILURE;
+ if (ip >= (unsigned int)tile->header->polyCount) return DT_FAILURE | DT_INVALID_PARAM;
dtPoly* poly = &tile->polys[ip];
// Change flags.
@@ -1190,12 +1428,13 @@ dtStatus dtNavMesh::setPolyFlags(dtPolyRef ref, unsigned short flags)
dtStatus dtNavMesh::getPolyFlags(dtPolyRef ref, unsigned short* resultFlags) const
{
+ if (!ref) return DT_FAILURE;
unsigned int salt, it, ip;
decodePolyId(ref, salt, it, ip);
- if (it >= (unsigned int)m_maxTiles) return DT_FAILURE;
- if (m_tiles[it].salt != salt || m_tiles[it].header == 0) return DT_FAILURE;
+ if (it >= (unsigned int)m_maxTiles) return DT_FAILURE | DT_INVALID_PARAM;
+ if (m_tiles[it].salt != salt || m_tiles[it].header == 0) return DT_FAILURE | DT_INVALID_PARAM;
const dtMeshTile* tile = &m_tiles[it];
- if (ip >= (unsigned int)tile->header->polyCount) return DT_FAILURE;
+ if (ip >= (unsigned int)tile->header->polyCount) return DT_FAILURE | DT_INVALID_PARAM;
const dtPoly* poly = &tile->polys[ip];
*resultFlags = poly->flags;
@@ -1205,12 +1444,13 @@ dtStatus dtNavMesh::getPolyFlags(dtPolyRef ref, unsigned short* resultFlags) con
dtStatus dtNavMesh::setPolyArea(dtPolyRef ref, unsigned char area)
{
+ if (!ref) return DT_FAILURE;
unsigned int salt, it, ip;
decodePolyId(ref, salt, it, ip);
- if (it >= (unsigned int)m_maxTiles) return DT_FAILURE;
- if (m_tiles[it].salt != salt || m_tiles[it].header == 0) return DT_FAILURE;
+ if (it >= (unsigned int)m_maxTiles) return DT_FAILURE | DT_INVALID_PARAM;
+ if (m_tiles[it].salt != salt || m_tiles[it].header == 0) return DT_FAILURE | DT_INVALID_PARAM;
dtMeshTile* tile = &m_tiles[it];
- if (ip >= (unsigned int)tile->header->polyCount) return DT_FAILURE;
+ if (ip >= (unsigned int)tile->header->polyCount) return DT_FAILURE | DT_INVALID_PARAM;
dtPoly* poly = &tile->polys[ip];
poly->setArea(area);
@@ -1220,12 +1460,13 @@ dtStatus dtNavMesh::setPolyArea(dtPolyRef ref, unsigned char area)
dtStatus dtNavMesh::getPolyArea(dtPolyRef ref, unsigned char* resultArea) const
{
+ if (!ref) return DT_FAILURE;
unsigned int salt, it, ip;
decodePolyId(ref, salt, it, ip);
- if (it >= (unsigned int)m_maxTiles) return DT_FAILURE;
- if (m_tiles[it].salt != salt || m_tiles[it].header == 0) return DT_FAILURE;
+ if (it >= (unsigned int)m_maxTiles) return DT_FAILURE | DT_INVALID_PARAM;
+ if (m_tiles[it].salt != salt || m_tiles[it].header == 0) return DT_FAILURE | DT_INVALID_PARAM;
const dtMeshTile* tile = &m_tiles[it];
- if (ip >= (unsigned int)tile->header->polyCount) return DT_FAILURE;
+ if (ip >= (unsigned int)tile->header->polyCount) return DT_FAILURE | DT_INVALID_PARAM;
const dtPoly* poly = &tile->polys[ip];
*resultArea = poly->getArea();
diff --git a/dep/recastnavigation/Detour/DetourNavMesh.h b/dep/recastnavigation/Detour/DetourNavMesh.h
index b146631127a..c094e4134d5 100644
--- a/dep/recastnavigation/Detour/DetourNavMesh.h
+++ b/dep/recastnavigation/Detour/DetourNavMesh.h
@@ -20,9 +20,12 @@
#define DETOURNAVMESH_H
#include "DetourAlloc.h"
+#include "DetourStatus.h"
+
+// Edited by TC
#if defined(WIN32) && !defined(__MINGW32__)
- typedef unsigned __int64 uint64;
+typedef unsigned __int64 uint64;
#else
#include <stdint.h>
#ifndef uint64_t
@@ -30,312 +33,473 @@
#include <linux/types.h>
#endif
#endif
- typedef uint64_t uint64;
-#endif
+typedef uint64_t uint64;
+#endif
// Note: If you want to use 64-bit refs, change the types of both dtPolyRef & dtTileRef.
-// It is also recommended to change dtHashRef() to proper 64-bit hash too.
+// It is also recommended that you change dtHashRef() to a proper 64-bit hash.
+
+// Edited by TC
+// We cannot have over 31 bits for either tile nor poly
+// without changing polyCount to use 64bits too.
+static const int STATIC_SALT_BITS = 12;
+static const int STATIC_TILE_BITS = 21;
+static const int STATIC_POLY_BITS = 31;
-// Reference to navigation polygon.
-typedef uint64 dtPolyRef;
+/// A handle to a polygon within a navigation mesh tile.
+/// @ingroup detour
+typedef uint64 dtPolyRef; // Edited by TC
-// Reference to navigation mesh tile.
-typedef uint64 dtTileRef;
+/// A handle to a tile within a navigation mesh.
+/// @ingroup detour
+typedef uint64 dtTileRef; // Edited by TC
-// Maximum number of vertices per navigation polygon.
+/// The maximum number of vertices per navigation polygon.
+/// @ingroup detour
static const int DT_VERTS_PER_POLYGON = 6;
-static const int DT_NAVMESH_MAGIC = 'D'<<24 | 'N'<<16 | 'A'<<8 | 'V'; //'DNAV';
-static const int DT_NAVMESH_VERSION = 6;
+/// @{
+/// @name Tile Serialization Constants
+/// These constants are used to detect whether a navigation tile's data
+/// and state format is compatible with the current build.
+///
+
+/// A magic number used to detect compatibility of navigation tile data.
+static const int DT_NAVMESH_MAGIC = 'D'<<24 | 'N'<<16 | 'A'<<8 | 'V';
+
+/// A version number used to detect compatibility of navigation tile data.
+static const int DT_NAVMESH_VERSION = 7;
-static const int DT_NAVMESH_STATE_MAGIC = 'D'<<24 | 'N'<<16 | 'M'<<8 | 'S'; //'DNMS';
+/// A magic number used to detect the compatibility of navigation tile states.
+static const int DT_NAVMESH_STATE_MAGIC = 'D'<<24 | 'N'<<16 | 'M'<<8 | 'S';
+
+/// A version number used to detect compatibility of navigation tile states.
static const int DT_NAVMESH_STATE_VERSION = 1;
+/// @}
+
+/// A flag that indicates that an entity links to an external entity.
+/// (E.g. A polygon edge is a portal that links to another polygon.)
static const unsigned short DT_EXT_LINK = 0x8000;
+
+/// A value that indicates the entity does not link to anything.
static const unsigned int DT_NULL_LINK = 0xffffffff;
+
+/// A flag that indicates that an off-mesh connection can be traversed in both directions. (Is bidirectional.)
static const unsigned int DT_OFFMESH_CON_BIDIR = 1;
+/// The maximum number of user defined area ids.
+/// @ingroup detour
static const int DT_MAX_AREAS = 64;
-static const int STATIC_SALT_BITS = 12;
-static const int STATIC_TILE_BITS = 21;
-static const int STATIC_POLY_BITS = 31;
-// we cannot have over 31 bits for either tile nor poly
-// without changing polyCount to use 64bits too.
-
-// Flags for addTile
+/// Tile flags used for various functions and fields.
+/// For an example, see dtNavMesh::addTile().
enum dtTileFlags
{
- DT_TILE_FREE_DATA = 0x01, // Navmesh owns the tile memory and should free it.
+ /// The navigation mesh owns the tile memory and is responsible for freeing it.
+ DT_TILE_FREE_DATA = 0x01,
};
-// Flags returned by findStraightPath().
+/// Vertex flags returned by dtNavMeshQuery::findStraightPath.
enum dtStraightPathFlags
{
- DT_STRAIGHTPATH_START = 0x01, // The vertex is the start position.
- DT_STRAIGHTPATH_END = 0x02, // The vertex is the end position.
- DT_STRAIGHTPATH_OFFMESH_CONNECTION = 0x04, // The vertex is start of an off-mesh link.
+ DT_STRAIGHTPATH_START = 0x01, ///< The vertex is the start position in the path.
+ DT_STRAIGHTPATH_END = 0x02, ///< The vertex is the end position in the path.
+ DT_STRAIGHTPATH_OFFMESH_CONNECTION = 0x04, ///< The vertex is the start of an off-mesh connection.
};
-// Flags describing polygon properties.
-enum dtPolyTypes
+/// Options for dtNavMeshQuery::findStraightPath.
+enum dtStraightPathOptions
{
- DT_POLYTYPE_GROUND = 0, // Regular ground polygons.
- DT_POLYTYPE_OFFMESH_CONNECTION = 1, // Off-mesh connections.
+ DT_STRAIGHTPATH_AREA_CROSSINGS = 0x01, ///< Add a vertex at every polygon edge crossing where area changes.
+ DT_STRAIGHTPATH_ALL_CROSSINGS = 0x02, ///< Add a vertex at every polygon edge crossing.
};
-enum dtStatus
+/// Flags representing the type of a navigation mesh polygon.
+enum dtPolyTypes
{
- DT_FAILURE = 0, // Operation failed.
- DT_FAILURE_DATA_MAGIC,
- DT_FAILURE_DATA_VERSION,
- DT_FAILURE_OUT_OF_MEMORY,
- DT_SUCCESS, // Operation succeed.
- DT_IN_PROGRESS, // Operation still in progress.
+ /// The polygon is a standard convex polygon that is part of the surface of the mesh.
+ DT_POLYTYPE_GROUND = 0,
+ /// The polygon is an off-mesh connection consisting of two vertices.
+ DT_POLYTYPE_OFFMESH_CONNECTION = 1,
};
-// Structure describing the navigation polygon data.
+/// Defines a polyogn within a dtMeshTile object.
+/// @ingroup detour
struct dtPoly
{
- unsigned int firstLink; // Index to first link in linked list.
- unsigned short verts[DT_VERTS_PER_POLYGON]; // Indices to vertices of the poly.
- unsigned short neis[DT_VERTS_PER_POLYGON]; // Refs to neighbours of the poly.
- unsigned short flags; // Flags (see dtPolyFlags).
- unsigned char vertCount; // Number of vertices.
- unsigned char areaAndtype; // Bit packed: Area ID of the polygon, and Polygon type, see dtPolyTypes..
+ /// Index to first link in linked list. (Or #DT_NULL_LINK if there is no link.)
+ unsigned int firstLink;
+
+ /// The indices of the polygon's vertices.
+ /// The actual vertices are located in dtMeshTile::verts.
+ unsigned short verts[DT_VERTS_PER_POLYGON];
+
+ /// Packed data representing neighbor polygons references and flags for each edge.
+ unsigned short neis[DT_VERTS_PER_POLYGON];
+
+ /// The user defined polygon flags.
+ unsigned short flags;
+
+ /// The number of vertices in the polygon.
+ unsigned char vertCount;
+
+ /// The bit packed area id and polygon type.
+ /// @note Use the structure's set and get methods to acess this value.
+ unsigned char areaAndtype;
+
+ /// Sets the user defined area id. [Limit: < #DT_MAX_AREAS]
inline void setArea(unsigned char a) { areaAndtype = (areaAndtype & 0xc0) | (a & 0x3f); }
+
+ /// Sets the polygon type. (See: #dtPolyTypes.)
inline void setType(unsigned char t) { areaAndtype = (areaAndtype & 0x3f) | (t << 6); }
+
+ /// Gets the user defined area id.
inline unsigned char getArea() const { return areaAndtype & 0x3f; }
+
+ /// Gets the polygon type. (See: #dtPolyTypes)
inline unsigned char getType() const { return areaAndtype >> 6; }
};
-// Stucture describing polygon detail triangles.
+/// Defines the location of detail sub-mesh data within a dtMeshTile.
struct dtPolyDetail
{
- unsigned int vertBase; // Offset to detail vertex array.
- unsigned int triBase; // Offset to detail triangle array.
- unsigned char vertCount; // Number of vertices in the detail mesh.
- unsigned char triCount; // Number of triangles.
+ unsigned int vertBase; ///< The offset of the vertices in the dtMeshTile::detailVerts array.
+ unsigned int triBase; ///< The offset of the triangles in the dtMeshTile::detailTris array.
+ unsigned char vertCount; ///< The number of vertices in the sub-mesh.
+ unsigned char triCount; ///< The number of triangles in the sub-mesh.
};
-// Stucture describing a link to another polygon.
+/// Defines a link between polygons.
+/// @note This structure is rarely if ever used by the end user.
+/// @see dtMeshTile
struct dtLink
{
- dtPolyRef ref; // Neighbour reference.
- unsigned int next; // Index to next link.
- unsigned char edge; // Index to polygon edge which owns this link.
- unsigned char side; // If boundary link, defines on which side the link is.
- unsigned char bmin, bmax; // If boundary link, defines the sub edge area.
+ dtPolyRef ref; ///< Neighbour reference. (The neighbor that is linked to.)
+ unsigned int next; ///< Index of the next link.
+ unsigned char edge; ///< Index of the polygon edge that owns this link.
+ unsigned char side; ///< If a boundary link, defines on which side the link is.
+ unsigned char bmin; ///< If a boundary link, defines the minimum sub-edge area.
+ unsigned char bmax; ///< If a boundary link, defines the maximum sub-edge area.
};
+/// Bounding volume node.
+/// @note This structure is rarely if ever used by the end user.
+/// @see dtMeshTile
struct dtBVNode
{
- unsigned short bmin[3], bmax[3]; // BVnode bounds
- int i; // Index to item or if negative, escape index.
+ unsigned short bmin[3]; ///< Minimum bounds of the node's AABB. [(x, y, z)]
+ unsigned short bmax[3]; ///< Maximum bounds of the node's AABB. [(x, y, z)]
+ int i; ///< The node's index. (Negative for escape sequence.)
};
+/// Defines an navigation mesh off-mesh connection within a dtMeshTile object.
+/// An off-mesh connection is a user defined traversable connection made up to two vertices.
struct dtOffMeshConnection
{
- float pos[6]; // Both end point locations.
- float rad; // Link connection radius.
- unsigned short poly; // Poly Id
- unsigned char flags; // Link flags
- unsigned char side; // End point side.
- unsigned int userId; // User ID to identify this connection.
+ /// The endpoints of the connection. [(ax, ay, az, bx, by, bz)]
+ float pos[6];
+
+ /// The radius of the endpoints. [Limit: >= 0]
+ float rad;
+
+ /// The polygon reference of the connection within the tile.
+ unsigned short poly;
+
+ /// Link flags.
+ /// @note These are not the connection's user defined flags. Those are assigned via the
+ /// connection's dtPoly definition. These are link flags used for internal purposes.
+ unsigned char flags;
+
+ /// End point side.
+ unsigned char side;
+
+ /// The id of the offmesh connection. (User assigned when the navigation mesh is built.)
+ unsigned int userId;
};
+/// Provides high level information related to a dtMeshTile object.
+/// @ingroup detour
struct dtMeshHeader
{
- int magic; // Magic number, used to identify the data.
- int version; // Data version number.
- int x, y; // Location of the time on the grid.
- unsigned int userId; // User ID of the tile.
- int polyCount; // Number of polygons in the tile.
- int vertCount; // Number of vertices in the tile.
- int maxLinkCount; // Number of allocated links.
- int detailMeshCount; // Number of detail meshes.
- int detailVertCount; // Number of detail vertices.
- int detailTriCount; // Number of detail triangles.
- int bvNodeCount; // Number of BVtree nodes.
- int offMeshConCount; // Number of Off-Mesh links.
- int offMeshBase; // Index to first polygon which is Off-Mesh link.
- float walkableHeight; // Height of the agent.
- float walkableRadius; // Radius of the agent
- float walkableClimb; // Max climb height of the agent.
- float bmin[3], bmax[3]; // Bounding box of the tile.
- float bvQuantFactor; // BVtree quantization factor (world to bvnode coords)
+ int magic; ///< Tile magic number. (Used to identify the data format.)
+ int version; ///< Tile data format version number.
+ int x; ///< The x-position of the tile within the dtNavMesh tile grid. (x, y, layer)
+ int y; ///< The y-position of the tile within the dtNavMesh tile grid. (x, y, layer)
+ int layer; ///< The layer of the tile within the dtNavMesh tile grid. (x, y, layer)
+ unsigned int userId; ///< The user defined id of the tile.
+ int polyCount; ///< The number of polygons in the tile.
+ int vertCount; ///< The number of vertices in the tile.
+ int maxLinkCount; ///< The number of allocated links.
+ int detailMeshCount; ///< The number of sub-meshes in the detail mesh.
+
+ /// The number of unique vertices in the detail mesh. (In addition to the polygon vertices.)
+ int detailVertCount;
+
+ int detailTriCount; ///< The number of triangles in the detail mesh.
+ int bvNodeCount; ///< The number of bounding volume nodes. (Zero if bounding volumes are disabled.)
+ int offMeshConCount; ///< The number of off-mesh connections.
+ int offMeshBase; ///< The index of the first polygon which is an off-mesh connection.
+ float walkableHeight; ///< The height of the agents using the tile.
+ float walkableRadius; ///< The radius of the agents using the tile.
+ float walkableClimb; ///< The maximum climb height of the agents using the tile.
+ float bmin[3]; ///< The minimum bounds of the tile's AABB. [(x, y, z)]
+ float bmax[3]; ///< The maximum bounds of the tile's AABB. [(x, y, z)]
+
+ /// The bounding volume quantization factor.
+ float bvQuantFactor;
};
+/// Defines a navigation mesh tile.
+/// @ingroup detour
struct dtMeshTile
{
- unsigned int salt; // Counter describing modifications to the tile.
-
- unsigned int linksFreeList; // Index to next free link.
- dtMeshHeader* header; // Pointer to tile header.
- dtPoly* polys; // Pointer to the polygons (will be updated when tile is added).
- float* verts; // Pointer to the vertices (will be updated when tile added).
- dtLink* links; // Pointer to the links (will be updated when tile added).
- dtPolyDetail* detailMeshes; // Pointer to detail meshes (will be updated when tile added).
- float* detailVerts; // Pointer to detail vertices (will be updated when tile added).
- unsigned char* detailTris; // Pointer to detail triangles (will be updated when tile added).
- dtBVNode* bvTree; // Pointer to BVtree nodes (will be updated when tile added).
- dtOffMeshConnection* offMeshCons; // Pointer to Off-Mesh links. (will be updated when tile added).
+ unsigned int salt; ///< Counter describing modifications to the tile.
+
+ unsigned int linksFreeList; ///< Index to the next free link.
+ dtMeshHeader* header; ///< The tile header.
+ dtPoly* polys; ///< The tile polygons. [Size: dtMeshHeader::polyCount]
+ float* verts; ///< The tile vertices. [Size: dtMeshHeader::vertCount]
+ dtLink* links; ///< The tile links. [Size: dtMeshHeader::maxLinkCount]
+ dtPolyDetail* detailMeshes; ///< The tile's detail sub-meshes. [Size: dtMeshHeader::detailMeshCount]
+
+ /// The detail mesh's unique vertices. [(x, y, z) * dtMeshHeader::detailVertCount]
+ float* detailVerts;
+
+ /// The detail mesh's triangles. [(vertA, vertB, vertC) * dtMeshHeader::detailTriCount]
+ unsigned char* detailTris;
+
+ /// The tile bounding volume nodes. [Size: dtMeshHeader::bvNodeCount]
+ /// (Will be null if bounding volumes are disabled.)
+ dtBVNode* bvTree;
+
+ dtOffMeshConnection* offMeshCons; ///< The tile off-mesh connections. [Size: dtMeshHeader::offMeshConCount]
- unsigned char* data; // Pointer to tile data.
- int dataSize; // Size of the tile data.
- int flags; // Tile flags, see dtTileFlags.
- dtMeshTile* next; // Next free tile or, next tile in spatial grid.
+ unsigned char* data; ///< The tile data. (Not directly accessed under normal situations.)
+ int dataSize; ///< Size of the tile data.
+ int flags; ///< Tile flags. (See: #dtTileFlags)
+ dtMeshTile* next; ///< The next free tile, or the next tile in the spatial grid.
};
+/// Configuration parameters used to define multi-tile navigation meshes.
+/// The values are used to allocate space during the initialization of a navigation mesh.
+/// @see dtNavMesh::init()
+/// @ingroup detour
struct dtNavMeshParams
{
- float orig[3]; // Origin of the nav mesh tile space.
- float tileWidth, tileHeight; // Width and height of each tile.
- int maxTiles; // Maximum number of tiles the navmesh can contain.
- int maxPolys; // Maximum number of polygons each tile can contain.
+ float orig[3]; ///< The world space origin of the navigation mesh's tile space. [(x, y, z)]
+ float tileWidth; ///< The width of each tile. (Along the x-axis.)
+ float tileHeight; ///< The height of each tile. (Along the z-axis.)
+ int maxTiles; ///< The maximum number of tiles the navigation mesh can contain.
+ int maxPolys; ///< The maximum number of polygons each tile can contain.
};
-
+/// A navigation mesh based on tiles of convex polygons.
+/// @ingroup detour
class dtNavMesh
{
public:
dtNavMesh();
~dtNavMesh();
- // Initializes the nav mesh for tiled use.
- // Params:
- // params - (in) navmesh initialization params, see dtNavMeshParams.
- // Returns: True if succeed, else false.
+ /// @{
+ /// @name Initialization and Tile Management
+
+ /// Initializes the navigation mesh for tiled use.
+ /// @param[in] params Initialization parameters.
+ /// @return The status flags for the operation.
dtStatus init(const dtNavMeshParams* params);
- // Initializes the nav mesh for single tile use.
- // Params:
- // data - (in) Data of the new tile mesh.
- // dataSize - (in) Data size of the new tile mesh.
- // flags - (in) Tile flags, see dtTileFlags.
- // Returns: True if succeed, else false.
+ /// Initializes the navigation mesh for single tile use.
+ /// @param[in] data Data of the new tile. (See: #dtCreateNavMeshData)
+ /// @param[in] dataSize The data size of the new tile.
+ /// @param[in] flags The tile flags. (See: #dtTileFlags)
+ /// @return The status flags for the operation.
+ /// @see dtCreateNavMeshData
dtStatus init(unsigned char* data, const int dataSize, const int flags);
- // Returns pointer to navmesh initialization params.
+ /// The navigation mesh initialization params.
const dtNavMeshParams* getParams() const;
-
- // Adds new tile into the navmesh.
- // The add will fail if the data is in wrong format,
- // there is not enough tiles left, or if there is a tile already at the location.
- // Params:
- // data - (in) Data of the new tile mesh.
- // dataSize - (in) Data size of the new tile mesh.
- // flags - (in) Tile flags, see dtTileFlags.
- // lastRef - (in,optional) Last tile ref, the tile will be restored so that
- // the reference (as well as poly references) will be the same. Default: 0.
- // result - (out,optional) tile ref if the tile was succesfully added.
+
+ /// Adds a tile to the navigation mesh.
+ /// @param[in] data Data for the new tile mesh. (See: #dtCreateNavMeshData)
+ /// @param[in] dataSize Data size of the new tile mesh.
+ /// @param[in] flags Tile flags. (See: #dtTileFlags)
+ /// @param[in] lastRef The desired reference for the tile. (When reloading a tile.) [opt] [Default: 0]
+ /// @param[out] result The tile reference. (If the tile was succesfully added.) [opt]
+ /// @return The status flags for the operation.
dtStatus addTile(unsigned char* data, int dataSize, int flags, dtTileRef lastRef, dtTileRef* result);
- // Removes specified tile.
- // Params:
- // ref - (in) Reference to the tile to remove.
- // data - (out) Data associated with deleted tile.
- // dataSize - (out) Size of the data associated with deleted tile.
+ /// Removes the specified tile from the navigation mesh.
+ /// @param[in] ref The reference of the tile to remove.
+ /// @param[out] data Data associated with deleted tile.
+ /// @param[out] dataSize Size of the data associated with deleted tile.
+ /// @return The status flags for the operation.
dtStatus removeTile(dtTileRef ref, unsigned char** data, int* dataSize);
- // Calculates tile location based in input world position.
- // Params:
- // pos - (in) world position of the query.
- // tx - (out) tile x location.
- // ty - (out) tile y location.
+ /// @}
+
+ /// @{
+ /// @name Query Functions
+
+ /// Calculates the tile grid location for the specified world position.
+ /// @param[in] pos The world position for the query. [(x, y, z)]
+ /// @param[out] tx The tile's x-location. (x, y)
+ /// @param[out] ty The tile's y-location. (x, y)
void calcTileLoc(const float* pos, int* tx, int* ty) const;
- // Returns pointer to tile at specified location.
- // Params:
- // x,y - (in) Location of the tile to get.
- // Returns: pointer to tile if tile exists or 0 tile does not exists.
- const dtMeshTile* getTileAt(int x, int y) const;
-
- // Returns reference to tile at specified location.
- // Params:
- // x,y - (in) Location of the tile to get.
- // Returns: reference to tile if tile exists or 0 tile does not exists.
- dtTileRef getTileRefAt(int x, int y) const;
+ /// Gets the tile at the specified grid location.
+ /// @param[in] x The tile's x-location. (x, y, layer)
+ /// @param[in] y The tile's y-location. (x, y, layer)
+ /// @param[in] layer The tile's layer. (x, y, layer)
+ /// @return The tile, or null if the tile does not exist.
+ const dtMeshTile* getTileAt(const int x, const int y, const int layer) const;
+
+ /// Gets all tiles at the specified grid location. (All layers.)
+ /// @param[in] x The tile's x-location. (x, y)
+ /// @param[in] y The tile's y-location. (x, y)
+ /// @param[out] tiles A pointer to an array of tiles that will hold the result.
+ /// @param[in] maxTiles The maximum tiles the tiles parameter can hold.
+ /// @return The number of tiles returned in the tiles array.
+ int getTilesAt(const int x, const int y,
+ dtMeshTile const** tiles, const int maxTiles) const;
- // Returns tile references of a tile based on tile pointer.
+ /// Gets the tile reference for the tile at specified grid location.
+ /// @param[in] x The tile's x-location. (x, y, layer)
+ /// @param[in] y The tile's y-location. (x, y, layer)
+ /// @param[in] layer The tile's layer. (x, y, layer)
+ /// @return The tile reference of the tile, or 0 if there is none.
+ dtTileRef getTileRefAt(int x, int y, int layer) const;
+
+ /// Gets the tile reference for the specified tile.
+ /// @param[in] tile The tile.
+ /// @return The tile reference of the tile.
dtTileRef getTileRef(const dtMeshTile* tile) const;
- // Returns tile based on references.
+ /// Gets the tile for the specified tile reference.
+ /// @param[in] ref The tile reference of the tile to retrieve.
+ /// @return The tile for the specified reference, or null if the
+ /// reference is invalid.
const dtMeshTile* getTileByRef(dtTileRef ref) const;
- // Returns max number of tiles.
+ /// The maximum number of tiles supported by the navigation mesh.
+ /// @return The maximum number of tiles supported by the navigation mesh.
int getMaxTiles() const;
- // Returns pointer to tile in the tile array.
- // Params:
- // i - (in) Index to the tile to retrieve, max index is getMaxTiles()-1.
- // Returns: Pointer to specified tile.
+ /// Gets the tile at the specified index.
+ /// @param[in] i The tile index. [Limit: 0 >= index < #getMaxTiles()]
+ /// @return The tile at the specified index.
const dtMeshTile* getTile(int i) const;
- // Returns pointer to tile and polygon pointed by the polygon reference.
- // Params:
- // ref - (in) reference to a polygon.
- // tile - (out) pointer to the tile containing the polygon.
- // poly - (out) pointer to the polygon.
+ /// Gets the tile and polygon for the specified polygon reference.
+ /// @param[in] ref The reference for the a polygon.
+ /// @param[out] tile The tile containing the polygon.
+ /// @param[out] poly The polygon.
+ /// @return The status flags for the operation.
dtStatus getTileAndPolyByRef(const dtPolyRef ref, const dtMeshTile** tile, const dtPoly** poly) const;
- // Returns pointer to tile and polygon pointed by the polygon reference.
- // Note: this function does not check if 'ref' s valid, and is thus faster. Use only with valid refs!
- // Params:
- // ref - (in) reference to a polygon.
- // tile - (out) pointer to the tile containing the polygon.
- // poly - (out) pointer to the polygon.
+ /// Returns the tile and polygon for the specified polygon reference.
+ /// @param[in] ref A known valid reference for a polygon.
+ /// @param[out] tile The tile containing the polygon.
+ /// @param[out] poly The polygon.
void getTileAndPolyByRefUnsafe(const dtPolyRef ref, const dtMeshTile** tile, const dtPoly** poly) const;
- // Returns true if polygon reference points to valid data.
+ /// Checks the validity of a polygon reference.
+ /// @param[in] ref The polygon reference to check.
+ /// @return True if polygon reference is valid for the navigation mesh.
bool isValidPolyRef(dtPolyRef ref) const;
- // Returns base poly id for specified tile, polygon refs can be deducted from this.
+ /// Gets the polygon reference for the tile's base polygon.
+ /// @param[in] tile The tile.
+ /// @return The polygon reference for the base polygon in the specified tile.
dtPolyRef getPolyRefBase(const dtMeshTile* tile) const;
- // Returns start and end location of an off-mesh link polygon.
- // Params:
- // prevRef - (in) ref to the polygon before the link (used to select direction).
- // polyRef - (in) ref to the off-mesh link polygon.
- // startPos[3] - (out) start point of the link.
- // endPos[3] - (out) end point of the link.
- // Returns: true if link is found.
+ /// Gets the endpoints for an off-mesh connection, ordered by "direction of travel".
+ /// @param[in] prevRef The reference of the polygon before the connection.
+ /// @param[in] polyRef The reference of the off-mesh connection polygon.
+ /// @param[out] startPos The start position of the off-mesh connection. [(x, y, z)]
+ /// @param[out] endPos The end position of the off-mesh connection. [(x, y, z)]
+ /// @return The status flags for the operation.
dtStatus getOffMeshConnectionPolyEndPoints(dtPolyRef prevRef, dtPolyRef polyRef, float* startPos, float* endPos) const;
- // Returns pointer to off-mesh connection based on polyref, or null if ref not valid.
+ /// Gets the specified off-mesh connection.
+ /// @param[in] ref The polygon reference of the off-mesh connection.
+ /// @return The specified off-mesh connection, or null if the polygon reference is not valid.
const dtOffMeshConnection* getOffMeshConnectionByRef(dtPolyRef ref) const;
- // Sets polygon flags.
+ /// @}
+
+ /// @{
+ /// @name State Management
+ /// These functions do not effect #dtTileRef or #dtPolyRef's.
+
+ /// Sets the user defined flags for the specified polygon.
+ /// @param[in] ref The polygon reference.
+ /// @param[in] flags The new flags for the polygon.
+ /// @return The status flags for the operation.
dtStatus setPolyFlags(dtPolyRef ref, unsigned short flags);
- // Return polygon flags.
+ /// Gets the user defined flags for the specified polygon.
+ /// @param[in] ref The polygon reference.
+ /// @param[out] resultFlags The polygon flags.
+ /// @return The status flags for the operation.
dtStatus getPolyFlags(dtPolyRef ref, unsigned short* resultFlags) const;
- // Set polygon type.
+ /// Sets the user defined area for the specified polygon.
+ /// @param[in] ref The polygon reference.
+ /// @param[in] area The new area id for the polygon. [Limit: < #DT_MAX_AREAS]
+ /// @return The status flags for the operation.
dtStatus setPolyArea(dtPolyRef ref, unsigned char area);
- // Return polygon area type.
+ /// Gets the user defined area for the specified polygon.
+ /// @param[in] ref The polygon reference.
+ /// @param[out] resultArea The area id for the polygon.
+ /// @return The status flags for the operation.
dtStatus getPolyArea(dtPolyRef ref, unsigned char* resultArea) const;
-
- // Returns number of bytes required to store tile state.
+ /// Gets the size of the buffer required by #storeTileState to store the specified tile's state.
+ /// @param[in] tile The tile.
+ /// @return The size of the buffer required to store the state.
int getTileStateSize(const dtMeshTile* tile) const;
- // Stores tile state to buffer.
+ /// Stores the non-structural state of the tile in the specified buffer. (Flags, area ids, etc.)
+ /// @param[in] tile The tile.
+ /// @param[out] data The buffer to store the tile's state in.
+ /// @param[in] maxDataSize The size of the data buffer. [Limit: >= #getTileStateSize]
+ /// @return The status flags for the operation.
dtStatus storeTileState(const dtMeshTile* tile, unsigned char* data, const int maxDataSize) const;
- // Restores tile state.
+ /// Restores the state of the tile.
+ /// @param[in] tile The tile.
+ /// @param[in] data The new state. (Obtained from #storeTileState.)
+ /// @param[in] maxDataSize The size of the state within the data buffer.
+ /// @return The status flags for the operation.
dtStatus restoreTileState(dtMeshTile* tile, const unsigned char* data, const int maxDataSize);
+ /// @}
- // Encodes a tile id.
+ /// @{
+ /// @name Encoding and Decoding
+ /// These functions are generally meant for internal use only.
+
+ /// Derives a standard polygon reference.
+ /// @note This function is generally meant for internal use only.
+ /// @param[in] salt The tile's salt value.
+ /// @param[in] it The index of the tile.
+ /// @param[in] ip The index of the polygon within the tile.
inline dtPolyRef encodePolyId(unsigned int salt, unsigned int it, unsigned int ip) const
{
return ((dtPolyRef)salt << (m_polyBits+m_tileBits)) | ((dtPolyRef)it << m_polyBits) | (dtPolyRef)ip;
}
- // Decodes a tile id.
+ /// Decodes a standard polygon reference.
+ /// @note This function is generally meant for internal use only.
+ /// @param[in] ref The polygon reference to decode.
+ /// @param[out] salt The tile's salt value.
+ /// @param[out] it The index of the tile.
+ /// @param[out] ip The index of the polygon within the tile.
+ /// @see #encodePolyId
inline void decodePolyId(dtPolyRef ref, unsigned int& salt, unsigned int& it, unsigned int& ip) const
{
const dtPolyRef saltMask = ((dtPolyRef)1<<m_saltBits)-1;
@@ -346,83 +510,201 @@ public:
ip = (unsigned int)(ref & polyMask);
}
- // Decodes a tile salt.
+ /// Extracts a tile's salt value from the specified polygon reference.
+ /// @note This function is generally meant for internal use only.
+ /// @param[in] ref The polygon reference.
+ /// @see #encodePolyId
inline unsigned int decodePolyIdSalt(dtPolyRef ref) const
{
const dtPolyRef saltMask = ((dtPolyRef)1<<m_saltBits)-1;
return (unsigned int)((ref >> (m_polyBits+m_tileBits)) & saltMask);
}
- // Decodes a tile id.
+ /// Extracts the tile's index from the specified polygon reference.
+ /// @note This function is generally meant for internal use only.
+ /// @param[in] ref The polygon reference.
+ /// @see #encodePolyId
inline unsigned int decodePolyIdTile(dtPolyRef ref) const
{
const dtPolyRef tileMask = ((dtPolyRef)1<<m_tileBits)-1;
return (unsigned int)((ref >> m_polyBits) & tileMask);
}
- // Decodes a poly id.
+ /// Extracts the polygon's index (within its tile) from the specified polygon reference.
+ /// @note This function is generally meant for internal use only.
+ /// @param[in] ref The polygon reference.
+ /// @see #encodePolyId
inline unsigned int decodePolyIdPoly(dtPolyRef ref) const
{
const dtPolyRef polyMask = ((dtPolyRef)1<<m_polyBits)-1;
return (unsigned int)(ref & polyMask);
}
+
+ /// @}
private:
- // Returns pointer to tile in the tile array.
+ /// Returns pointer to tile in the tile array.
dtMeshTile* getTile(int i);
- // Returns neighbour tile based on side.
- dtMeshTile* getNeighbourTileAt(int x, int y, int side) const;
- // Returns all polygons in neighbour tile based on portal defined by the segment.
+ /// Returns neighbour tile based on side.
+ int getTilesAt(const int x, const int y,
+ dtMeshTile** tiles, const int maxTiles) const;
+
+ /// Returns neighbour tile based on side.
+ int getNeighbourTilesAt(const int x, const int y, const int side,
+ dtMeshTile** tiles, const int maxTiles) const;
+
+ /// Returns all polygons in neighbour tile based on portal defined by the segment.
int findConnectingPolys(const float* va, const float* vb,
const dtMeshTile* tile, int side,
dtPolyRef* con, float* conarea, int maxcon) const;
- // Builds internal polygons links for a tile.
+ /// Builds internal polygons links for a tile.
void connectIntLinks(dtMeshTile* tile);
- // Builds internal polygons links for a tile.
- void connectIntOffMeshLinks(dtMeshTile* tile);
+ /// Builds internal polygons links for a tile.
+ void baseOffMeshLinks(dtMeshTile* tile);
- // Builds external polygon links for a tile.
+ /// Builds external polygon links for a tile.
void connectExtLinks(dtMeshTile* tile, dtMeshTile* target, int side);
- // Builds external polygon links for a tile.
+ /// Builds external polygon links for a tile.
void connectExtOffMeshLinks(dtMeshTile* tile, dtMeshTile* target, int side);
- // Removes external links at specified side.
- void unconnectExtLinks(dtMeshTile* tile, int side);
+ /// Removes external links at specified side.
+ void unconnectExtLinks(dtMeshTile* tile, dtMeshTile* target);
// TODO: These methods are duplicates from dtNavMeshQuery, but are needed for off-mesh connection finding.
- // Queries polygons within a tile.
+ /// Queries polygons within a tile.
int queryPolygonsInTile(const dtMeshTile* tile, const float* qmin, const float* qmax,
dtPolyRef* polys, const int maxPolys) const;
- // Find nearest polygon within a tile.
+ /// Find nearest polygon within a tile.
dtPolyRef findNearestPolyInTile(const dtMeshTile* tile, const float* center,
const float* extents, float* nearestPt) const;
- // Returns closest point on polygon.
- dtStatus closestPointOnPolyInTile(const dtMeshTile* tile, unsigned int ip,
- const float* pos, float* closest) const;
+ /// Returns closest point on polygon.
+ void closestPointOnPolyInTile(const dtMeshTile* tile, unsigned int ip,
+ const float* pos, float* closest) const;
- dtNavMeshParams m_params; // Current initialization params. TODO: do not store this info twice.
- float m_orig[3]; // Origin of the tile (0,0)
- float m_tileWidth, m_tileHeight; // Dimensions of each tile.
- int m_maxTiles; // Max number of tiles.
- int m_tileLutSize; // Tile hash lookup size (must be pot).
- int m_tileLutMask; // Tile hash lookup mask.
-
- dtMeshTile** m_posLookup; // Tile hash lookup.
- dtMeshTile* m_nextFree; // Freelist of tiles.
- dtMeshTile* m_tiles; // List of tiles.
+ dtNavMeshParams m_params; ///< Current initialization params. TODO: do not store this info twice.
+ float m_orig[3]; ///< Origin of the tile (0,0)
+ float m_tileWidth, m_tileHeight; ///< Dimensions of each tile.
+ int m_maxTiles; ///< Max number of tiles.
+ int m_tileLutSize; ///< Tile hash lookup size (must be pot).
+ int m_tileLutMask; ///< Tile hash lookup mask.
+
+ dtMeshTile** m_posLookup; ///< Tile hash lookup.
+ dtMeshTile* m_nextFree; ///< Freelist of tiles.
+ dtMeshTile* m_tiles; ///< List of tiles.
- unsigned int m_saltBits; // Number of salt bits in the tile ID.
- unsigned int m_tileBits; // Number of tile bits in the tile ID.
- unsigned int m_polyBits; // Number of poly bits in the tile ID.
+ unsigned int m_saltBits; ///< Number of salt bits in the tile ID.
+ unsigned int m_tileBits; ///< Number of tile bits in the tile ID.
+ unsigned int m_polyBits; ///< Number of poly bits in the tile ID.
};
-// Helper function to allocate navmesh class using Detour allocator.
+/// Allocates a navigation mesh object using the Detour allocator.
+/// @return A navigation mesh that is ready for initialization, or null on failure.
+/// @ingroup detour
dtNavMesh* dtAllocNavMesh();
+
+/// Frees the specified navigation mesh object using the Detour allocator.
+/// @param[in] navmesh A navigation mesh allocated using #dtAllocNavMesh
+/// @ingroup detour
void dtFreeNavMesh(dtNavMesh* navmesh);
#endif // DETOURNAVMESH_H
+
+///////////////////////////////////////////////////////////////////////////
+
+// This section contains detailed documentation for members that don't have
+// a source file. It reduces clutter in the main section of the header.
+
+/**
+
+@typedef dtPolyRef
+@par
+
+Polygon references are subject to the same invalidate/preserve/restore
+rules that apply to #dtTileRef's. If the #dtTileRef for the polygon's
+tile changes, the polygon reference becomes invalid.
+
+Changing a polygon's flags, area id, etc. does not impact its polygon
+reference.
+
+@typedef dtTileRef
+@par
+
+The following changes will invalidate a tile reference:
+
+- The referenced tile has been removed from the navigation mesh.
+- The navigation mesh has been initialized using a different set
+ of #dtNavMeshParams.
+
+A tile reference is preserved/restored if the tile is added to a navigation
+mesh initialized with the original #dtNavMeshParams and is added at the
+original reference location. (E.g. The lastRef parameter is used with
+dtNavMesh::addTile.)
+
+Basically, if the storage structure of a tile changes, its associated
+tile reference changes.
+
+
+@var unsigned short dtPoly::neis[DT_VERTS_PER_POLYGON]
+@par
+
+Each entry represents data for the edge starting at the vertex of the same index.
+E.g. The entry at index n represents the edge data for vertex[n] to vertex[n+1].
+
+A value of zero indicates the edge has no polygon connection. (It makes up the
+border of the navigation mesh.)
+
+The information can be extracted as follows:
+@code
+neighborRef = neis[n] & 0xff; // Get the neighbor polygon reference.
+
+if (neis[n] & #DT_EX_LINK)
+{
+ // The edge is an external (portal) edge.
+}
+@endcode
+
+@var float dtMeshHeader::bvQuantFactor
+@par
+
+This value is used for converting between world and bounding volume coordinates.
+For example:
+@code
+const float cs = 1.0f / tile->header->bvQuantFactor;
+const dtBVNode* n = &tile->bvTree[i];
+if (n->i >= 0)
+{
+ // This is a leaf node.
+ float worldMinX = tile->header->bmin[0] + n->bmin[0]*cs;
+ float worldMinY = tile->header->bmin[0] + n->bmin[1]*cs;
+ // Etc...
+}
+@endcode
+
+@struct dtMeshTile
+@par
+
+Tiles generally only exist within the context of a dtNavMesh object.
+
+Some tile content is optional. For example, a tile may not contain any
+off-mesh connections. In this case the associated pointer will be null.
+
+If a detail mesh exists it will share vertices with the base polygon mesh.
+Only the vertices unique to the detail mesh will be stored in #detailVerts.
+
+@warning Tiles returned by a dtNavMesh object are not guarenteed to be populated.
+For example: The tile at a location might not have been loaded yet, or may have been removed.
+In this case, pointers will be null. So if in doubt, check the polygon count in the
+tile's header to determine if a tile has polygons defined.
+
+@var float dtOffMeshConnection::pos[6]
+@par
+
+For a properly built navigation mesh, vertex A will always be within the bounds of the mesh.
+Vertex B is not required to be within the bounds of the mesh.
+
+*/
diff --git a/dep/recastnavigation/Detour/DetourNavMeshBuilder.cpp b/dep/recastnavigation/Detour/DetourNavMeshBuilder.cpp
index f64857160db..9d8471b96a1 100644
--- a/dep/recastnavigation/Detour/DetourNavMeshBuilder.cpp
+++ b/dep/recastnavigation/Detour/DetourNavMeshBuilder.cpp
@@ -20,6 +20,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <float.h>
#include "DetourNavMesh.h"
#include "DetourCommon.h"
#include "DetourNavMeshBuilder.h"
@@ -237,11 +238,19 @@ static unsigned char classifyOffMeshPoint(const float* pt, const float* bmin, co
case ZM: return 6;
case XP|ZM: return 7;
};
+
return 0xff;
}
// TODO: Better error handling.
+/// @par
+///
+/// The output data array is allocated using the detour allocator (dtAlloc()). The method
+/// used to free the memory will be determined by how the tile is added to the navigation
+/// mesh.
+///
+/// @see dtNavMesh, dtNavMesh::addTile()
bool dtCreateNavMeshData(dtNavMeshCreateParams* params, unsigned char** outData, int* outDataSize)
{
if (params->nvp > DT_VERTS_PER_POLYGON)
@@ -252,8 +261,6 @@ bool dtCreateNavMeshData(dtNavMeshCreateParams* params, unsigned char** outData,
return false;
if (!params->polyCount || !params->polys)
return false;
- if (!params->detailMeshes || !params->detailVerts || !params->detailTris)
- return false;
const int nvp = params->nvp;
@@ -269,10 +276,50 @@ bool dtCreateNavMeshData(dtNavMeshCreateParams* params, unsigned char** outData,
if (!offMeshConClass)
return false;
+ // Find tight heigh bounds, used for culling out off-mesh start locations.
+ float hmin = FLT_MAX;
+ float hmax = -FLT_MAX;
+
+ if (params->detailVerts && params->detailVertsCount)
+ {
+ for (int i = 0; i < params->detailVertsCount; ++i)
+ {
+ const float h = params->detailVerts[i*3+1];
+ hmin = dtMin(hmin,h);
+ hmax = dtMax(hmax,h);
+ }
+ }
+ else
+ {
+ for (int i = 0; i < params->vertCount; ++i)
+ {
+ const unsigned short* iv = &params->verts[i*3];
+ const float h = params->bmin[1] + iv[1] * params->ch;
+ hmin = dtMin(hmin,h);
+ hmax = dtMax(hmax,h);
+ }
+ }
+ hmin -= params->walkableClimb;
+ hmax += params->walkableClimb;
+ float bmin[3], bmax[3];
+ dtVcopy(bmin, params->bmin);
+ dtVcopy(bmax, params->bmax);
+ bmin[1] = hmin;
+ bmax[1] = hmax;
+
for (int i = 0; i < params->offMeshConCount; ++i)
{
- offMeshConClass[i*2+0] = classifyOffMeshPoint(&params->offMeshConVerts[(i*2+0)*3], params->bmin, params->bmax);
- offMeshConClass[i*2+1] = classifyOffMeshPoint(&params->offMeshConVerts[(i*2+1)*3], params->bmin, params->bmax);
+ const float* p0 = &params->offMeshConVerts[(i*2+0)*3];
+ const float* p1 = &params->offMeshConVerts[(i*2+1)*3];
+ offMeshConClass[i*2+0] = classifyOffMeshPoint(p0, bmin, bmax);
+ offMeshConClass[i*2+1] = classifyOffMeshPoint(p1, bmin, bmax);
+
+ // Zero out off-mesh start positions which are not even potentially touching the mesh.
+ if (offMeshConClass[i*2+0] == 0xff)
+ {
+ if (p0[1] < bmin[1] || p0[1] > bmax[1])
+ offMeshConClass[i*2+0] = 0;
+ }
// Cound how many links should be allocated for off-mesh connections.
if (offMeshConClass[i*2+0] == 0xff)
@@ -298,23 +345,13 @@ bool dtCreateNavMeshData(dtNavMeshCreateParams* params, unsigned char** outData,
for (int j = 0; j < nvp; ++j)
{
if (p[j] == MESH_NULL_IDX) break;
- int nj = j+1;
- if (nj >= nvp || p[nj] == MESH_NULL_IDX) nj = 0;
- const unsigned short* va = &params->verts[p[j]*3];
- const unsigned short* vb = &params->verts[p[nj]*3];
-
edgeCount++;
- if (params->tileSize > 0)
+ if (p[nvp+j] & 0x8000)
{
- if (va[0] == params->tileSize && vb[0] == params->tileSize)
- portalCount++; // x+
- else if (va[2] == params->tileSize && vb[2] == params->tileSize)
- portalCount++; // z+
- else if (va[0] == 0 && vb[0] == 0)
- portalCount++; // x-
- else if (va[2] == 0 && vb[2] == 0)
- portalCount++; // z-
+ unsigned short dir = p[nvp+j] & 0xf;
+ if (dir != 0xf)
+ portalCount++;
}
}
}
@@ -323,18 +360,41 @@ bool dtCreateNavMeshData(dtNavMeshCreateParams* params, unsigned char** outData,
// Find unique detail vertices.
int uniqueDetailVertCount = 0;
- for (int i = 0; i < params->polyCount; ++i)
+ int detailTriCount = 0;
+ if (params->detailMeshes)
{
- const unsigned short* p = &params->polys[i*nvp*2];
- int ndv = params->detailMeshes[i*4+1];
- int nv = 0;
- for (int j = 0; j < nvp; ++j)
+ // Has detail mesh, count unique detail vertex count and use input detail tri count.
+ detailTriCount = params->detailTriCount;
+ for (int i = 0; i < params->polyCount; ++i)
{
- if (p[j] == MESH_NULL_IDX) break;
- nv++;
+ const unsigned short* p = &params->polys[i*nvp*2];
+ int ndv = params->detailMeshes[i*4+1];
+ int nv = 0;
+ for (int j = 0; j < nvp; ++j)
+ {
+ if (p[j] == MESH_NULL_IDX) break;
+ nv++;
+ }
+ ndv -= nv;
+ uniqueDetailVertCount += ndv;
+ }
+ }
+ else
+ {
+ // No input detail mesh, build detail mesh from nav polys.
+ uniqueDetailVertCount = 0; // No extra detail verts.
+ detailTriCount = 0;
+ for (int i = 0; i < params->polyCount; ++i)
+ {
+ const unsigned short* p = &params->polys[i*nvp*2];
+ int nv = 0;
+ for (int j = 0; j < nvp; ++j)
+ {
+ if (p[j] == MESH_NULL_IDX) break;
+ nv++;
+ }
+ detailTriCount += nv-2;
}
- ndv -= nv;
- uniqueDetailVertCount += ndv;
}
// Calculate data size
@@ -344,8 +404,8 @@ bool dtCreateNavMeshData(dtNavMeshCreateParams* params, unsigned char** outData,
const int linksSize = dtAlign4(sizeof(dtLink)*maxLinkCount);
const int detailMeshesSize = dtAlign4(sizeof(dtPolyDetail)*params->polyCount);
const int detailVertsSize = dtAlign4(sizeof(float)*3*uniqueDetailVertCount);
- const int detailTrisSize = dtAlign4(sizeof(unsigned char)*4*params->detailTriCount);
- const int bvTreeSize = dtAlign4(sizeof(dtBVNode)*params->polyCount*2);
+ const int detailTrisSize = dtAlign4(sizeof(unsigned char)*4*detailTriCount);
+ const int bvTreeSize = params->buildBvTree ? dtAlign4(sizeof(dtBVNode)*params->polyCount*2) : 0;
const int offMeshConsSize = dtAlign4(sizeof(dtOffMeshConnection)*storedOffMeshConCount);
const int dataSize = headerSize + vertsSize + polysSize + linksSize +
@@ -377,6 +437,7 @@ bool dtCreateNavMeshData(dtNavMeshCreateParams* params, unsigned char** outData,
header->version = DT_NAVMESH_VERSION;
header->x = params->tileX;
header->y = params->tileY;
+ header->layer = params->tileLayer;
header->userId = params->userId;
header->polyCount = totPolyCount;
header->vertCount = totVertCount;
@@ -385,14 +446,14 @@ bool dtCreateNavMeshData(dtNavMeshCreateParams* params, unsigned char** outData,
dtVcopy(header->bmax, params->bmax);
header->detailMeshCount = params->polyCount;
header->detailVertCount = uniqueDetailVertCount;
- header->detailTriCount = params->detailTriCount;
+ header->detailTriCount = detailTriCount;
header->bvQuantFactor = 1.0f / params->cs;
header->offMeshBase = params->polyCount;
header->walkableHeight = params->walkableHeight;
header->walkableRadius = params->walkableRadius;
header->walkableClimb = params->walkableClimb;
header->offMeshConCount = storedOffMeshConCount;
- header->bvNodeCount = params->polyCount*2;
+ header->bvNodeCount = params->buildBvTree ? params->polyCount*2 : 0;
const int offMeshVertsBase = params->vertCount;
const int offMeshPolyBase = params->polyCount;
@@ -436,7 +497,27 @@ bool dtCreateNavMeshData(dtNavMeshCreateParams* params, unsigned char** outData,
{
if (src[j] == MESH_NULL_IDX) break;
p->verts[j] = src[j];
- p->neis[j] = (src[nvp+j]+1) & 0xffff;
+ if (src[nvp+j] & 0x8000)
+ {
+ // Border or portal edge.
+ unsigned short dir = src[nvp+j] & 0xf;
+ if (dir == 0xf) // Border
+ p->neis[j] = 0;
+ else if (dir == 0) // Portal x-
+ p->neis[j] = DT_EXT_LINK | 4;
+ else if (dir == 1) // Portal z+
+ p->neis[j] = DT_EXT_LINK | 2;
+ else if (dir == 2) // Portal x+
+ p->neis[j] = DT_EXT_LINK | 0;
+ else if (dir == 3) // Portal z-
+ p->neis[j] = DT_EXT_LINK | 6;
+ }
+ else
+ {
+ // Normal connection
+ p->neis[j] = src[nvp+j]+1;
+ }
+
p->vertCount++;
}
src += nvp*2;
@@ -458,61 +539,68 @@ bool dtCreateNavMeshData(dtNavMeshCreateParams* params, unsigned char** outData,
n++;
}
}
-
- // Store portal edges.
- if (params->tileSize > 0)
+
+ // Store detail meshes and vertices.
+ // The nav polygon vertices are stored as the first vertices on each mesh.
+ // We compress the mesh data by skipping them and using the navmesh coordinates.
+ if (params->detailMeshes)
{
+ unsigned short vbase = 0;
for (int i = 0; i < params->polyCount; ++i)
{
- dtPoly* poly = &navPolys[i];
- for (int j = 0; j < poly->vertCount; ++j)
+ dtPolyDetail& dtl = navDMeshes[i];
+ const int vb = (int)params->detailMeshes[i*4+0];
+ const int ndv = (int)params->detailMeshes[i*4+1];
+ const int nv = navPolys[i].vertCount;
+ dtl.vertBase = (unsigned int)vbase;
+ dtl.vertCount = (unsigned char)(ndv-nv);
+ dtl.triBase = (unsigned int)params->detailMeshes[i*4+2];
+ dtl.triCount = (unsigned char)params->detailMeshes[i*4+3];
+ // Copy vertices except the first 'nv' verts which are equal to nav poly verts.
+ if (ndv-nv)
{
- int nj = j+1;
- if (nj >= poly->vertCount) nj = 0;
-
- const unsigned short* va = &params->verts[poly->verts[j]*3];
- const unsigned short* vb = &params->verts[poly->verts[nj]*3];
-
- if (va[0] == params->tileSize && vb[0] == params->tileSize) // x+
- poly->neis[j] = DT_EXT_LINK | 0;
- else if (va[2] == params->tileSize && vb[2] == params->tileSize) // z+
- poly->neis[j] = DT_EXT_LINK | 2;
- else if (va[0] == 0 && vb[0] == 0) // x-
- poly->neis[j] = DT_EXT_LINK | 4;
- else if (va[2] == 0 && vb[2] == 0) // z-
- poly->neis[j] = DT_EXT_LINK | 6;
+ memcpy(&navDVerts[vbase*3], &params->detailVerts[(vb+nv)*3], sizeof(float)*3*(ndv-nv));
+ vbase += (unsigned short)(ndv-nv);
}
}
+ // Store triangles.
+ memcpy(navDTris, params->detailTris, sizeof(unsigned char)*4*params->detailTriCount);
}
-
- // Store detail meshes and vertices.
- // The nav polygon vertices are stored as the first vertices on each mesh.
- // We compress the mesh data by skipping them and using the navmesh coordinates.
- unsigned short vbase = 0;
- for (int i = 0; i < params->polyCount; ++i)
+ else
{
- dtPolyDetail& dtl = navDMeshes[i];
- const int vb = (int)params->detailMeshes[i*4+0];
- const int ndv = (int)params->detailMeshes[i*4+1];
- const int nv = navPolys[i].vertCount;
- dtl.vertBase = (unsigned int)vbase;
- dtl.vertCount = (unsigned char)(ndv-nv);
- dtl.triBase = (unsigned int)params->detailMeshes[i*4+2];
- dtl.triCount = (unsigned char)params->detailMeshes[i*4+3];
- // Copy vertices except the first 'nv' verts which are equal to nav poly verts.
- if (ndv-nv)
+ // Create dummy detail mesh by triangulating polys.
+ int tbase = 0;
+ for (int i = 0; i < params->polyCount; ++i)
{
- memcpy(&navDVerts[vbase*3], &params->detailVerts[(vb+nv)*3], sizeof(float)*3*(ndv-nv));
- vbase += (unsigned short)(ndv-nv);
+ dtPolyDetail& dtl = navDMeshes[i];
+ const int nv = navPolys[i].vertCount;
+ dtl.vertBase = 0;
+ dtl.vertCount = 0;
+ dtl.triBase = (unsigned int)tbase;
+ dtl.triCount = (unsigned char)(nv-2);
+ // Triangulate polygon (local indices).
+ for (int j = 2; j < nv; ++j)
+ {
+ unsigned char* t = &navDTris[tbase*4];
+ t[0] = 0;
+ t[1] = (unsigned char)(j-1);
+ t[2] = (unsigned char)j;
+ // Bit for each edge that belongs to poly boundary.
+ t[3] = (1<<2);
+ if (j == 2) t[3] |= (1<<0);
+ if (j == nv-1) t[3] |= (1<<4);
+ tbase++;
+ }
}
}
- // Store triangles.
- memcpy(navDTris, params->detailTris, sizeof(unsigned char)*4*params->detailTriCount);
// Store and create BVtree.
// TODO: take detail mesh into account! use byte per bbox extent?
- createBVTree(params->verts, params->vertCount, params->polys, params->polyCount,
- nvp, params->cs, params->ch, params->polyCount*2, navBvtree);
+ if (params->buildBvTree)
+ {
+ createBVTree(params->verts, params->vertCount, params->polys, params->polyCount,
+ nvp, params->cs, params->ch, params->polyCount*2, navBvtree);
+ }
// Store Off-Mesh connections.
n = 0;
@@ -544,51 +632,14 @@ bool dtCreateNavMeshData(dtNavMeshCreateParams* params, unsigned char** outData,
return true;
}
-inline void swapByte(unsigned char* a, unsigned char* b)
-{
- unsigned char tmp = *a;
- *a = *b;
- *b = tmp;
-}
-
-inline void swapEndian(unsigned short* v)
-{
- unsigned char* x = (unsigned char*)v;
- swapByte(x+0, x+1);
-}
-
-inline void swapEndian(short* v)
-{
- unsigned char* x = (unsigned char*)v;
- swapByte(x+0, x+1);
-}
-
-inline void swapEndian(unsigned int* v)
-{
- unsigned char* x = (unsigned char*)v;
- swapByte(x+0, x+3); swapByte(x+1, x+2);
-}
-
-inline void swapEndian(int* v)
-{
- unsigned char* x = (unsigned char*)v;
- swapByte(x+0, x+3); swapByte(x+1, x+2);
-}
-
-inline void swapEndian(float* v)
-{
- unsigned char* x = (unsigned char*)v;
- swapByte(x+0, x+3); swapByte(x+1, x+2);
-}
-
bool dtNavMeshHeaderSwapEndian(unsigned char* data, const int /*dataSize*/)
{
dtMeshHeader* header = (dtMeshHeader*)data;
int swappedMagic = DT_NAVMESH_MAGIC;
int swappedVersion = DT_NAVMESH_VERSION;
- swapEndian(&swappedMagic);
- swapEndian(&swappedVersion);
+ dtSwapEndian(&swappedMagic);
+ dtSwapEndian(&swappedVersion);
if ((header->magic != DT_NAVMESH_MAGIC || header->version != DT_NAVMESH_VERSION) &&
(header->magic != swappedMagic || header->version != swappedVersion))
@@ -596,36 +647,43 @@ bool dtNavMeshHeaderSwapEndian(unsigned char* data, const int /*dataSize*/)
return false;
}
- swapEndian(&header->magic);
- swapEndian(&header->version);
- swapEndian(&header->x);
- swapEndian(&header->y);
- swapEndian(&header->userId);
- swapEndian(&header->polyCount);
- swapEndian(&header->vertCount);
- swapEndian(&header->maxLinkCount);
- swapEndian(&header->detailMeshCount);
- swapEndian(&header->detailVertCount);
- swapEndian(&header->detailTriCount);
- swapEndian(&header->bvNodeCount);
- swapEndian(&header->offMeshConCount);
- swapEndian(&header->offMeshBase);
- swapEndian(&header->walkableHeight);
- swapEndian(&header->walkableRadius);
- swapEndian(&header->walkableClimb);
- swapEndian(&header->bmin[0]);
- swapEndian(&header->bmin[1]);
- swapEndian(&header->bmin[2]);
- swapEndian(&header->bmax[0]);
- swapEndian(&header->bmax[1]);
- swapEndian(&header->bmax[2]);
- swapEndian(&header->bvQuantFactor);
+ dtSwapEndian(&header->magic);
+ dtSwapEndian(&header->version);
+ dtSwapEndian(&header->x);
+ dtSwapEndian(&header->y);
+ dtSwapEndian(&header->layer);
+ dtSwapEndian(&header->userId);
+ dtSwapEndian(&header->polyCount);
+ dtSwapEndian(&header->vertCount);
+ dtSwapEndian(&header->maxLinkCount);
+ dtSwapEndian(&header->detailMeshCount);
+ dtSwapEndian(&header->detailVertCount);
+ dtSwapEndian(&header->detailTriCount);
+ dtSwapEndian(&header->bvNodeCount);
+ dtSwapEndian(&header->offMeshConCount);
+ dtSwapEndian(&header->offMeshBase);
+ dtSwapEndian(&header->walkableHeight);
+ dtSwapEndian(&header->walkableRadius);
+ dtSwapEndian(&header->walkableClimb);
+ dtSwapEndian(&header->bmin[0]);
+ dtSwapEndian(&header->bmin[1]);
+ dtSwapEndian(&header->bmin[2]);
+ dtSwapEndian(&header->bmax[0]);
+ dtSwapEndian(&header->bmax[1]);
+ dtSwapEndian(&header->bmax[2]);
+ dtSwapEndian(&header->bvQuantFactor);
// Freelist index and pointers are updated when tile is added, no need to swap.
return true;
}
+/// @par
+///
+/// @warning This function assumes that the header is in the correct endianess already.
+/// Call #dtNavMeshHeaderSwapEndian() first on the data if the data is expected to be in wrong endianess
+/// to start with. Call #dtNavMeshHeaderSwapEndian() after the data has been swapped if converting from
+/// native to foreign endianess.
bool dtNavMeshDataSwapEndian(unsigned char* data, const int /*dataSize*/)
{
// Make sure the data is in right format.
@@ -659,7 +717,7 @@ bool dtNavMeshDataSwapEndian(unsigned char* data, const int /*dataSize*/)
// Vertices
for (int i = 0; i < header->vertCount*3; ++i)
{
- swapEndian(&verts[i]);
+ dtSwapEndian(&verts[i]);
}
// Polys
@@ -669,10 +727,10 @@ bool dtNavMeshDataSwapEndian(unsigned char* data, const int /*dataSize*/)
// poly->firstLink is update when tile is added, no need to swap.
for (int j = 0; j < DT_VERTS_PER_POLYGON; ++j)
{
- swapEndian(&p->verts[j]);
- swapEndian(&p->neis[j]);
+ dtSwapEndian(&p->verts[j]);
+ dtSwapEndian(&p->neis[j]);
}
- swapEndian(&p->flags);
+ dtSwapEndian(&p->flags);
}
// Links are rebuild when tile is added, no need to swap.
@@ -681,14 +739,14 @@ bool dtNavMeshDataSwapEndian(unsigned char* data, const int /*dataSize*/)
for (int i = 0; i < header->detailMeshCount; ++i)
{
dtPolyDetail* pd = &detailMeshes[i];
- swapEndian(&pd->vertBase);
- swapEndian(&pd->triBase);
+ dtSwapEndian(&pd->vertBase);
+ dtSwapEndian(&pd->triBase);
}
// Detail verts
for (int i = 0; i < header->detailVertCount*3; ++i)
{
- swapEndian(&detailVerts[i]);
+ dtSwapEndian(&detailVerts[i]);
}
// BV-tree
@@ -697,10 +755,10 @@ bool dtNavMeshDataSwapEndian(unsigned char* data, const int /*dataSize*/)
dtBVNode* node = &bvTree[i];
for (int j = 0; j < 3; ++j)
{
- swapEndian(&node->bmin[j]);
- swapEndian(&node->bmax[j]);
+ dtSwapEndian(&node->bmin[j]);
+ dtSwapEndian(&node->bmax[j]);
}
- swapEndian(&node->i);
+ dtSwapEndian(&node->i);
}
// Off-mesh Connections.
@@ -708,9 +766,9 @@ bool dtNavMeshDataSwapEndian(unsigned char* data, const int /*dataSize*/)
{
dtOffMeshConnection* con = &offMeshCons[i];
for (int j = 0; j < 6; ++j)
- swapEndian(&con->pos[j]);
- swapEndian(&con->rad);
- swapEndian(&con->poly);
+ dtSwapEndian(&con->pos[j]);
+ dtSwapEndian(&con->rad);
+ dtSwapEndian(&con->poly);
}
return true;
diff --git a/dep/recastnavigation/Detour/DetourNavMeshBuilder.h b/dep/recastnavigation/Detour/DetourNavMeshBuilder.h
index 8d8ef2e6546..c80d1717630 100644
--- a/dep/recastnavigation/Detour/DetourNavMeshBuilder.h
+++ b/dep/recastnavigation/Detour/DetourNavMeshBuilder.h
@@ -21,57 +21,128 @@
#include "DetourAlloc.h"
-
-// The units of the parameters are specified in parenthesis as follows:
-// (vx) voxels, (wu) world units
+/// Represents the source data used to build an navigation mesh tile.
+/// @ingroup detour
struct dtNavMeshCreateParams
{
- // Navmesh vertices.
- const unsigned short* verts; // Array of vertices, each vertex has 3 components. (vx).
- int vertCount; // Vertex count
- // Navmesh polygons
- const unsigned short* polys; // Array of polygons, uses same format as rcPolyMesh.
- const unsigned short* polyFlags; // Array of flags per polygon.
- const unsigned char* polyAreas; // Array of area ids per polygon.
- int polyCount; // Number of polygons
- int nvp; // Number of verts per polygon.
- // Navmesh Detail
- const unsigned int* detailMeshes; // Detail meshes, uses same format as rcPolyMeshDetail.
- const float* detailVerts; // Detail mesh vertices, uses same format as rcPolyMeshDetail (wu).
- int detailVertsCount; // Total number of detail vertices
- const unsigned char* detailTris; // Array of detail tris per detail mesh.
- int detailTriCount; // Total number of detail triangles.
- // Off-Mesh Connections.
- const float* offMeshConVerts; // Off-mesh connection vertices (wu).
- const float* offMeshConRad; // Off-mesh connection radii (wu).
- const unsigned short* offMeshConFlags; // Off-mesh connection flags.
- const unsigned char* offMeshConAreas; // Off-mesh connection area ids.
- const unsigned char* offMeshConDir; // Off-mesh connection direction flags (1 = bidir, 0 = oneway).
- const unsigned int* offMeshConUserID; // Off-mesh connection user id (optional).
- int offMeshConCount; // Number of off-mesh connections
- // Tile location
- unsigned int userId; // User ID bound to the tile.
- int tileX, tileY; // Tile location (tile coords).
- float bmin[3], bmax[3]; // Tile bounds (wu).
- // Settings
- float walkableHeight; // Agent height (wu).
- float walkableRadius; // Agent radius (wu).
- float walkableClimb; // Agent max climb (wu).
- float cs; // Cell size (xz) (wu).
- float ch; // Cell height (y) (wu).
- int tileSize; // Tile size (width & height) (vx).
+
+ /// @name Polygon Mesh Attributes
+ /// Used to create the base navigation graph.
+ /// See #rcPolyMesh for details related to these attributes.
+ /// @{
+
+ const unsigned short* verts; ///< The polygon mesh vertices. [(x, y, z) * #vertCount] [Unit: vx]
+ int vertCount; ///< The number vertices in the polygon mesh. [Limit: >= 3]
+ const unsigned short* polys; ///< The polygon data. [Size: #polyCount * 2 * #nvp]
+ const unsigned short* polyFlags; ///< The user defined flags assigned to each polygon. [Size: #polyCount]
+ const unsigned char* polyAreas; ///< The user defined area ids assigned to each polygon. [Size: #polyCount]
+ int polyCount; ///< Number of polygons in the mesh. [Limit: >= 1]
+ int nvp; ///< Number maximum number of vertices per polygon. [Limit: >= 3]
+
+ /// @}
+ /// @name Height Detail Attributes (Optional)
+ /// See #rcPolyMeshDetail for details related to these attributes.
+ /// @{
+
+ const unsigned int* detailMeshes; ///< The height detail sub-mesh data. [Size: 4 * #polyCount]
+ const float* detailVerts; ///< The detail mesh vertices. [Size: 3 * #detailVertsCount] [Unit: wu]
+ int detailVertsCount; ///< The number of vertices in the detail mesh.
+ const unsigned char* detailTris; ///< The detail mesh triangles. [Size: 4 * #detailTriCount]
+ int detailTriCount; ///< The number of triangles in the detail mesh.
+
+ /// @}
+ /// @name Off-Mesh Connections Attributes (Optional)
+ /// Used to define a custom point-to-point edge within the navigation graph, an
+ /// off-mesh connection is a user defined traversable connection made up to two vertices,
+ /// at least one of which resides within a navigation mesh polygon.
+ /// @{
+
+ /// Off-mesh connection vertices. [(ax, ay, az, bx, by, bz) * #offMeshConCount] [Unit: wu]
+ const float* offMeshConVerts;
+ /// Off-mesh connection radii. [Size: #offMeshConCount] [Unit: wu]
+ const float* offMeshConRad;
+ /// User defined flags assigned to the off-mesh connections. [Size: #offMeshConCount]
+ const unsigned short* offMeshConFlags;
+ /// User defined area ids assigned to the off-mesh connections. [Size: #offMeshConCount]
+ const unsigned char* offMeshConAreas;
+ /// The permitted travel direction of the off-mesh connections. [Size: #offMeshConCount]
+ ///
+ /// 0 = Travel only from endpoint A to endpoint B.<br/>
+ /// #DT_OFFMESH_CON_BIDIR = Bidirectional travel.
+ const unsigned char* offMeshConDir;
+ /// The user defined ids of the off-mesh connection. [Size: #offMeshConCount]
+ const unsigned int* offMeshConUserID;
+ /// The number of off-mesh connections. [Limit: >= 0]
+ int offMeshConCount;
+
+ /// @}
+ /// @name Tile Attributes
+ /// @note The tile grid/layer data can be left at zero if the destination is a single tile mesh.
+ /// @{
+
+ unsigned int userId; ///< The user defined id of the tile.
+ int tileX; ///< The tile's x-grid location within the multi-tile destination mesh. (Along the x-axis.)
+ int tileY; ///< The tile's y-grid location within the multi-tile desitation mesh. (Along the z-axis.)
+ int tileLayer; ///< The tile's layer within the layered destination mesh. [Limit: >= 0] (Along the y-axis.)
+ float bmin[3]; ///< The minimum bounds of the tile. [(x, y, z)] [Unit: wu]
+ float bmax[3]; ///< The maximum bounds of the tile. [(x, y, z)] [Unit: wu]
+
+ /// @}
+ /// @name General Configuration Attributes
+ /// @{
+
+ float walkableHeight; ///< The agent height. [Unit: wu]
+ float walkableRadius; ///< The agent radius. [Unit: wu]
+ float walkableClimb; ///< The agent maximum traversable ledge. (Up/Down) [Unit: wu]
+ float cs; ///< The xz-plane cell size of the polygon mesh. [Limit: > 0] [Unit: wu]
+ float ch; ///< The y-axis cell height of the polygon mesh. [Limit: > 0] [Unit: wu]
+
+ /// True if a bounding volume tree should be built for the tile.
+ /// @note The BVTree is not normally needed for layered navigation meshes.
+ bool buildBvTree;
+
+ /// @}
};
-// Build navmesh data from given input data.
+/// Builds navigation mesh tile data from the provided tile creation data.
+/// @ingroup detour
+/// @param[in] params Tile creation data.
+/// @param[out] outData The resulting tile data.
+/// @param[out] outDataSize The size of the tile data array.
+/// @return True if the tile data was successfully created.
bool dtCreateNavMeshData(dtNavMeshCreateParams* params, unsigned char** outData, int* outDataSize);
-// Swaps endianess of navmesh header.
+/// Swaps the endianess of the tile data's header (#dtMeshHeader).
+/// @param[in,out] data The tile data array.
+/// @param[in] dataSize The size of the data array.
bool dtNavMeshHeaderSwapEndian(unsigned char* data, const int dataSize);
-// Swaps endianess of the navmesh data. This function assumes that the header is in correct
-// endianess already. Call dtNavMeshHeaderSwapEndian() first on the data if the data is
-// assumed to be in wrong endianess to start with. If converting from native endianess to foreign,
-// call dtNavMeshHeaderSwapEndian() after the data has been swapped.
+/// Swaps endianess of the tile data.
+/// @param[in,out] data The tile data array.
+/// @param[in] dataSize The size of the data array.
bool dtNavMeshDataSwapEndian(unsigned char* data, const int dataSize);
#endif // DETOURNAVMESHBUILDER_H
+
+// This section contains detailed documentation for members that don't have
+// a source file. It reduces clutter in the main section of the header.
+
+/**
+
+@struct dtNavMeshCreateParams
+@par
+
+This structure is used to marshal data between the Recast mesh generation pipeline and Detour navigation components.
+
+See the rcPolyMesh and rcPolyMeshDetail documentation for detailed information related to mesh structure.
+
+Units are usually in voxels (vx) or world units (wu). The units for voxels, grid size, and cell size
+are all based on the values of #cs and #ch.
+
+The standard navigation mesh build process is to create tile data using dtCreateNavMeshData, then add the tile
+to a navigation mesh using either the dtNavMesh single tile <tt>init()</tt> function or the dtNavMesh::addTile()
+function.
+
+@see dtCreateNavMeshData
+
+*/ \ No newline at end of file
diff --git a/dep/recastnavigation/Detour/DetourNavMeshQuery.cpp b/dep/recastnavigation/Detour/DetourNavMeshQuery.cpp
index 6a6eb94b6d4..e6557cf707e 100644
--- a/dep/recastnavigation/Detour/DetourNavMeshQuery.cpp
+++ b/dep/recastnavigation/Detour/DetourNavMeshQuery.cpp
@@ -27,6 +27,38 @@
#include "DetourAssert.h"
#include <new>
+/// @class dtQueryFilter
+///
+/// <b>The Default Implementation</b>
+///
+/// At construction: All area costs default to 1.0. All flags are included
+/// and none are excluded.
+///
+/// If a polygon has both an include and an exclude flag, it will be excluded.
+///
+/// The way filtering works, a navigation mesh polygon must have at least one flag
+/// set to ever be considered by a query. So a polygon with no flags will never
+/// be considered.
+///
+/// Setting the include flags to 0 will result in all polygons being excluded.
+///
+/// <b>Custom Implementations</b>
+///
+/// DT_VIRTUAL_QUERYFILTER must be defined in order to extend this class.
+///
+/// Implement a custom query filter by overriding the virtual passFilter()
+/// and getCost() functions. If this is done, both functions should be as
+/// fast as possible. Use cached local copies of data rather than accessing
+/// your own objects where possible.
+///
+/// Custom implementations do not need to adhere to the flags or cost logic
+/// used by the default implementation.
+///
+/// In order for A* searches to work properly, the cost should be proportional to
+/// the travel distance. Implementing a cost modifier less than 1.0 is likely
+/// to lead to problems during pathfinding.
+///
+/// @see dtNavMeshQuery
dtQueryFilter::dtQueryFilter() :
m_includeFlags(0xffff),
@@ -49,7 +81,7 @@ float dtQueryFilter::getCost(const float* pa, const float* pb,
const dtPolyRef /*curRef*/, const dtMeshTile* /*curTile*/, const dtPoly* curPoly,
const dtPolyRef /*nextRef*/, const dtMeshTile* /*nextTile*/, const dtPoly* /*nextPoly*/) const
{
- return dtVdist(pa, pb) * m_areaCost[curPoly->area];
+ return dtVdist(pa, pb) * m_areaCost[curPoly->getArea()];
}
#else
inline bool dtQueryFilter::passFilter(const dtPolyRef /*ref*/,
@@ -67,8 +99,9 @@ inline float dtQueryFilter::getCost(const float* pa, const float* pb,
return dtVdist(pa, pb) * m_areaCost[curPoly->getArea()];
}
#endif
-
-static const float H_SCALE = 2.0f; // Search heuristic scale.
+
+// Edited by TC
+static const float H_SCALE = 2.0f; // Search heuristic scale.
dtNavMeshQuery* dtAllocNavMeshQuery()
@@ -86,7 +119,25 @@ void dtFreeNavMeshQuery(dtNavMeshQuery* navmesh)
}
//////////////////////////////////////////////////////////////////////////////////////////
+
+/// @class dtNavMeshQuery
+///
+/// For methods that support undersized buffers, if the buffer is too small
+/// to hold the entire result set the return status of the method will include
+/// the #DT_BUFFER_TOO_SMALL flag.
+///
+/// Constant member functions can be used by multiple clients without side
+/// effects. (E.g. No change to the closed list. No impact on an in-progress
+/// sliced path query. Etc.)
+///
+/// Walls and portals: A @e wall is a polygon segment that is
+/// considered impassable. A @e portal is a passable segment between polygons.
+/// A portal may be treated as a wall based on the dtQueryFilter used for a query.
+///
+/// @see dtNavMesh, dtQueryFilter, #dtAllocNavMeshQuery(), #dtAllocNavMeshQuery()
+
dtNavMeshQuery::dtNavMeshQuery() :
+ m_nav(0),
m_tinyNodePool(0),
m_nodePool(0),
m_openList(0)
@@ -107,6 +158,12 @@ dtNavMeshQuery::~dtNavMeshQuery()
dtFree(m_openList);
}
+/// @par
+///
+/// Must be the first function called after construction, before other
+/// functions are used.
+///
+/// This function can be used multiple times.
dtStatus dtNavMeshQuery::init(const dtNavMesh* nav, const int maxNodes)
{
m_nav = nav;
@@ -121,7 +178,7 @@ dtStatus dtNavMeshQuery::init(const dtNavMesh* nav, const int maxNodes)
}
m_nodePool = new (dtAlloc(sizeof(dtNodePool), DT_ALLOC_PERM)) dtNodePool(maxNodes, dtNextPow2(maxNodes/4));
if (!m_nodePool)
- return DT_FAILURE_OUT_OF_MEMORY;
+ return DT_FAILURE | DT_OUT_OF_MEMORY;
}
else
{
@@ -132,7 +189,7 @@ dtStatus dtNavMeshQuery::init(const dtNavMesh* nav, const int maxNodes)
{
m_tinyNodePool = new (dtAlloc(sizeof(dtNodePool), DT_ALLOC_PERM)) dtNodePool(64, 32);
if (!m_tinyNodePool)
- return DT_FAILURE_OUT_OF_MEMORY;
+ return DT_FAILURE | DT_OUT_OF_MEMORY;
}
else
{
@@ -150,7 +207,7 @@ dtStatus dtNavMeshQuery::init(const dtNavMesh* nav, const int maxNodes)
}
m_openList = new (dtAlloc(sizeof(dtNodeQueue), DT_ALLOC_PERM)) dtNodeQueue(maxNodes);
if (!m_openList)
- return DT_FAILURE_OUT_OF_MEMORY;
+ return DT_FAILURE | DT_OUT_OF_MEMORY;
}
else
{
@@ -160,33 +217,328 @@ dtStatus dtNavMeshQuery::init(const dtNavMesh* nav, const int maxNodes)
return DT_SUCCESS;
}
+dtStatus dtNavMeshQuery::findRandomPoint(const dtQueryFilter* filter, float (*frand)(),
+ dtPolyRef* randomRef, float* randomPt) const
+{
+ dtAssert(m_nav);
+
+ // Randomly pick one tile. Assume that all tiles cover roughly the same area.
+ const dtMeshTile* tile = 0;
+ float tsum = 0.0f;
+ for (int i = 0; i < m_nav->getMaxTiles(); i++)
+ {
+ const dtMeshTile* t = m_nav->getTile(i);
+ if (!t || !t->header) continue;
+
+ // Choose random tile using reservoi sampling.
+ const float area = 1.0f; // Could be tile area too.
+ tsum += area;
+ const float u = frand();
+ if (u*tsum <= area)
+ tile = t;
+ }
+ if (!tile)
+ return DT_FAILURE;
+
+ // Randomly pick one polygon weighted by polygon area.
+ const dtPoly* poly = 0;
+ dtPolyRef polyRef = 0;
+ const dtPolyRef base = m_nav->getPolyRefBase(tile);
+
+ float areaSum = 0.0f;
+ for (int i = 0; i < tile->header->polyCount; ++i)
+ {
+ const dtPoly* p = &tile->polys[i];
+ // Do not return off-mesh connection polygons.
+ if (p->getType() != DT_POLYTYPE_GROUND)
+ continue;
+ // Must pass filter
+ const dtPolyRef ref = base | (dtPolyRef)i;
+ if (!filter->passFilter(ref, tile, p))
+ continue;
+
+ // Calc area of the polygon.
+ float polyArea = 0.0f;
+ for (int j = 2; j < p->vertCount; ++j)
+ {
+ const float* va = &tile->verts[p->verts[0]*3];
+ const float* vb = &tile->verts[p->verts[j-1]*3];
+ const float* vc = &tile->verts[p->verts[j]*3];
+ polyArea += dtTriArea2D(va,vb,vc);
+ }
+
+ // Choose random polygon weighted by area, using reservoi sampling.
+ areaSum += polyArea;
+ const float u = frand();
+ if (u*areaSum <= polyArea)
+ {
+ poly = p;
+ polyRef = ref;
+ }
+ }
+
+ if (!poly)
+ return DT_FAILURE;
+
+ // Randomly pick point on polygon.
+ const float* v = &tile->verts[poly->verts[0]*3];
+ float verts[3*DT_VERTS_PER_POLYGON];
+ float areas[DT_VERTS_PER_POLYGON];
+ dtVcopy(&verts[0*3],v);
+ for (int j = 1; j < poly->vertCount; ++j)
+ {
+ v = &tile->verts[poly->verts[j]*3];
+ dtVcopy(&verts[j*3],v);
+ }
+
+ const float s = frand();
+ const float t = frand();
+
+ float pt[3];
+ dtRandomPointInConvexPoly(verts, poly->vertCount, areas, s, t, pt);
+
+ float h = 0.0f;
+ dtStatus status = getPolyHeight(polyRef, pt, &h);
+ if (dtStatusFailed(status))
+ return status;
+ pt[1] = h;
+
+ dtVcopy(randomPt, pt);
+ *randomRef = polyRef;
+
+ return DT_SUCCESS;
+}
+
+dtStatus dtNavMeshQuery::findRandomPointAroundCircle(dtPolyRef startRef, const float* centerPos, const float radius,
+ const dtQueryFilter* filter, float (*frand)(),
+ dtPolyRef* randomRef, float* randomPt) const
+{
+ dtAssert(m_nav);
+ dtAssert(m_nodePool);
+ dtAssert(m_openList);
+
+ // Validate input
+ if (!startRef || !m_nav->isValidPolyRef(startRef))
+ return DT_FAILURE | DT_INVALID_PARAM;
+
+ const dtMeshTile* startTile = 0;
+ const dtPoly* startPoly = 0;
+ m_nav->getTileAndPolyByRefUnsafe(startRef, &startTile, &startPoly);
+ if (!filter->passFilter(startRef, startTile, startPoly))
+ return DT_FAILURE | DT_INVALID_PARAM;
+
+ m_nodePool->clear();
+ m_openList->clear();
+
+ dtNode* startNode = m_nodePool->getNode(startRef);
+ dtVcopy(startNode->pos, centerPos);
+ startNode->pidx = 0;
+ startNode->cost = 0;
+ startNode->total = 0;
+ startNode->id = startRef;
+ startNode->flags = DT_NODE_OPEN;
+ m_openList->push(startNode);
+
+ dtStatus status = DT_SUCCESS;
+
+ const float radiusSqr = dtSqr(radius);
+ float areaSum = 0.0f;
+
+ const dtMeshTile* randomTile = 0;
+ const dtPoly* randomPoly = 0;
+ dtPolyRef randomPolyRef = 0;
+
+ while (!m_openList->empty())
+ {
+ dtNode* bestNode = m_openList->pop();
+ bestNode->flags &= ~DT_NODE_OPEN;
+ bestNode->flags |= DT_NODE_CLOSED;
+
+ // Get poly and tile.
+ // The API input has been cheked already, skip checking internal data.
+ const dtPolyRef bestRef = bestNode->id;
+ const dtMeshTile* bestTile = 0;
+ const dtPoly* bestPoly = 0;
+ m_nav->getTileAndPolyByRefUnsafe(bestRef, &bestTile, &bestPoly);
+
+ // Place random locations on on ground.
+ if (bestPoly->getType() == DT_POLYTYPE_GROUND)
+ {
+ // Calc area of the polygon.
+ float polyArea = 0.0f;
+ for (int j = 2; j < bestPoly->vertCount; ++j)
+ {
+ const float* va = &bestTile->verts[bestPoly->verts[0]*3];
+ const float* vb = &bestTile->verts[bestPoly->verts[j-1]*3];
+ const float* vc = &bestTile->verts[bestPoly->verts[j]*3];
+ polyArea += dtTriArea2D(va,vb,vc);
+ }
+ // Choose random polygon weighted by area, using reservoi sampling.
+ areaSum += polyArea;
+ const float u = frand();
+ if (u*areaSum <= polyArea)
+ {
+ randomTile = bestTile;
+ randomPoly = bestPoly;
+ randomPolyRef = bestRef;
+ }
+ }
+
+
+ // Get parent poly and tile.
+ dtPolyRef parentRef = 0;
+ const dtMeshTile* parentTile = 0;
+ const dtPoly* parentPoly = 0;
+ if (bestNode->pidx)
+ parentRef = m_nodePool->getNodeAtIdx(bestNode->pidx)->id;
+ if (parentRef)
+ m_nav->getTileAndPolyByRefUnsafe(parentRef, &parentTile, &parentPoly);
+
+ for (unsigned int i = bestPoly->firstLink; i != DT_NULL_LINK; i = bestTile->links[i].next)
+ {
+ const dtLink* link = &bestTile->links[i];
+ dtPolyRef neighbourRef = link->ref;
+ // Skip invalid neighbours and do not follow back to parent.
+ if (!neighbourRef || neighbourRef == parentRef)
+ continue;
+
+ // Expand to neighbour
+ const dtMeshTile* neighbourTile = 0;
+ const dtPoly* neighbourPoly = 0;
+ m_nav->getTileAndPolyByRefUnsafe(neighbourRef, &neighbourTile, &neighbourPoly);
+
+ // Do not advance if the polygon is excluded by the filter.
+ if (!filter->passFilter(neighbourRef, neighbourTile, neighbourPoly))
+ continue;
+
+ // Find edge and calc distance to the edge.
+ float va[3], vb[3];
+ if (!getPortalPoints(bestRef, bestPoly, bestTile, neighbourRef, neighbourPoly, neighbourTile, va, vb))
+ continue;
+
+ // If the circle is not touching the next polygon, skip it.
+ float tseg;
+ float distSqr = dtDistancePtSegSqr2D(centerPos, va, vb, tseg);
+ if (distSqr > radiusSqr)
+ continue;
+
+ dtNode* neighbourNode = m_nodePool->getNode(neighbourRef);
+ if (!neighbourNode)
+ {
+ status |= DT_OUT_OF_NODES;
+ continue;
+ }
+
+ if (neighbourNode->flags & DT_NODE_CLOSED)
+ continue;
+
+ // Cost
+ if (neighbourNode->flags == 0)
+ dtVlerp(neighbourNode->pos, va, vb, 0.5f);
+
+ const float total = bestNode->total + dtVdist(bestNode->pos, neighbourNode->pos);
+
+ // The node is already in open list and the new result is worse, skip.
+ if ((neighbourNode->flags & DT_NODE_OPEN) && total >= neighbourNode->total)
+ continue;
+
+ neighbourNode->id = neighbourRef;
+ neighbourNode->flags = (neighbourNode->flags & ~DT_NODE_CLOSED);
+ neighbourNode->pidx = m_nodePool->getNodeIdx(bestNode);
+ neighbourNode->total = total;
+
+ if (neighbourNode->flags & DT_NODE_OPEN)
+ {
+ m_openList->modify(neighbourNode);
+ }
+ else
+ {
+ neighbourNode->flags = DT_NODE_OPEN;
+ m_openList->push(neighbourNode);
+ }
+ }
+ }
+
+ if (!randomPoly)
+ return DT_FAILURE;
+
+ // Randomly pick point on polygon.
+ const float* v = &randomTile->verts[randomPoly->verts[0]*3];
+ float verts[3*DT_VERTS_PER_POLYGON];
+ float areas[DT_VERTS_PER_POLYGON];
+ dtVcopy(&verts[0*3],v);
+ for (int j = 1; j < randomPoly->vertCount; ++j)
+ {
+ v = &randomTile->verts[randomPoly->verts[j]*3];
+ dtVcopy(&verts[j*3],v);
+ }
+
+ const float s = frand();
+ const float t = frand();
+
+ float pt[3];
+ dtRandomPointInConvexPoly(verts, randomPoly->vertCount, areas, s, t, pt);
+
+ float h = 0.0f;
+ dtStatus stat = getPolyHeight(randomPolyRef, pt, &h);
+ if (dtStatusFailed(status))
+ return stat;
+ pt[1] = h;
+
+ dtVcopy(randomPt, pt);
+ *randomRef = randomPolyRef;
+
+ return DT_SUCCESS;
+}
+
+
//////////////////////////////////////////////////////////////////////////////////////////
+
+/// @par
+///
+/// Uses the detail polygons to find the surface height. (Most accurate.)
+///
+/// @p pos does not have to be within the bounds of the polygon or navigation mesh.
+///
+/// See closestPointOnPolyBoundary() for a limited but faster option.
+///
dtStatus dtNavMeshQuery::closestPointOnPoly(dtPolyRef ref, const float* pos, float* closest) const
{
dtAssert(m_nav);
const dtMeshTile* tile = 0;
const dtPoly* poly = 0;
- if (m_nav->getTileAndPolyByRef(ref, &tile, &poly) != DT_SUCCESS)
- return DT_FAILURE;
- if (!tile) return DT_FAILURE;
+ if (dtStatusFailed(m_nav->getTileAndPolyByRef(ref, &tile, &poly)))
+ return DT_FAILURE | DT_INVALID_PARAM;
+ if (!tile)
+ return DT_FAILURE | DT_INVALID_PARAM;
- if (poly->getType() == DT_POLYTYPE_OFFMESH_CONNECTION)
+ // Edited by TC
+ if (poly->getType() == DT_POLYTYPE_OFFMESH_CONNECTION)
return DT_FAILURE;
- if (closestPointOnPolyInTile(tile, poly, pos, closest) != DT_SUCCESS)
- return DT_FAILURE;
+ closestPointOnPolyInTile(tile, poly, pos, closest);
+
return DT_SUCCESS;
}
-dtStatus dtNavMeshQuery::closestPointOnPolyInTile(const dtMeshTile* tile, const dtPoly* poly,
- const float* pos, float* closest) const
+void dtNavMeshQuery::closestPointOnPolyInTile(const dtMeshTile* tile, const dtPoly* poly,
+ const float* pos, float* closest) const
{
+ // Off-mesh connections don't have detail polygons.
+ if (poly->getType() == DT_POLYTYPE_OFFMESH_CONNECTION)
+ {
+ const float* v0 = &tile->verts[poly->verts[0]*3];
+ const float* v1 = &tile->verts[poly->verts[1]*3];
+ const float d0 = dtVdist(pos, v0);
+ const float d1 = dtVdist(pos, v1);
+ const float u = d0 / (d0+d1);
+ dtVlerp(closest, v0, v1, u);
+ return;
+ }
+
const unsigned int ip = (unsigned int)(poly - tile->polys);
const dtPolyDetail* pd = &tile->detailMeshes[ip];
- // TODO: The commented out version finds 'cylinder distance' instead of 'sphere distance' to the navmesh.
- // Test and enable.
-/*
// Clamp point to be inside the polygon.
float verts[DT_VERTS_PER_POLYGON*3];
float edged[DT_VERTS_PER_POLYGON];
@@ -233,8 +585,8 @@ dtStatus dtNavMeshQuery::closestPointOnPolyInTile(const dtMeshTile* tile, const
break;
}
}
-*/
- float closestDistSqr = FLT_MAX;
+
+/* float closestDistSqr = FLT_MAX;
for (int j = 0; j < pd->triCount; ++j)
{
const unsigned char* t = &tile->detailTris[(pd->triBase+j)*4];
@@ -256,19 +608,28 @@ dtStatus dtNavMeshQuery::closestPointOnPolyInTile(const dtMeshTile* tile, const
dtVcopy(closest, pt);
closestDistSqr = d;
}
- }
-
- return DT_SUCCESS;
+ }*/
}
+/// @par
+///
+/// Much faster than closestPointOnPoly().
+///
+/// If the provided position lies within the polygon's xz-bounds (above or below),
+/// then @p pos and @p closest will be equal.
+///
+/// The height of @p closest will be the polygon boundary. The height detail is not used.
+///
+/// @p pos does not have to be within the bounds of the polybon or the navigation mesh.
+///
dtStatus dtNavMeshQuery::closestPointOnPolyBoundary(dtPolyRef ref, const float* pos, float* closest) const
{
dtAssert(m_nav);
const dtMeshTile* tile = 0;
const dtPoly* poly = 0;
- if (m_nav->getTileAndPolyByRef(ref, &tile, &poly) != DT_SUCCESS)
- return DT_FAILURE;
+ if (dtStatusFailed(m_nav->getTileAndPolyByRef(ref, &tile, &poly)))
+ return DT_FAILURE | DT_INVALID_PARAM;
// Collect vertices.
float verts[DT_VERTS_PER_POLYGON*3];
@@ -308,15 +669,19 @@ dtStatus dtNavMeshQuery::closestPointOnPolyBoundary(dtPolyRef ref, const float*
return DT_SUCCESS;
}
-
+/// @par
+///
+/// Will return #DT_FAILURE if the provided position is outside the xz-bounds
+/// of the polygon.
+///
dtStatus dtNavMeshQuery::getPolyHeight(dtPolyRef ref, const float* pos, float* height) const
{
dtAssert(m_nav);
const dtMeshTile* tile = 0;
const dtPoly* poly = 0;
- if (m_nav->getTileAndPolyByRef(ref, &tile, &poly) != DT_SUCCESS)
- return DT_FAILURE;
+ if (dtStatusFailed(m_nav->getTileAndPolyByRef(ref, &tile, &poly)))
+ return DT_FAILURE | DT_INVALID_PARAM;
if (poly->getType() == DT_POLYTYPE_OFFMESH_CONNECTION)
{
@@ -354,9 +719,18 @@ dtStatus dtNavMeshQuery::getPolyHeight(dtPolyRef ref, const float* pos, float* h
}
}
- return DT_FAILURE;
+ return DT_FAILURE | DT_INVALID_PARAM;
}
+/// @par
+///
+/// @note If the search box does not intersect any polygons the search will
+/// return #DT_SUCCESS, but @p nearestRef will be zero. So if in doubt, check
+/// @p nearestRef before using @p nearestPt.
+///
+/// @warning This function is not suitable for large area searches. If the search
+/// extents overlaps more than 128 polygons it may return an invalid result.
+///
dtStatus dtNavMeshQuery::findNearestPoly(const float* center, const float* extents,
const dtQueryFilter* filter,
dtPolyRef* nearestRef, float* nearestPt) const
@@ -368,8 +742,8 @@ dtStatus dtNavMeshQuery::findNearestPoly(const float* center, const float* exten
// Get nearby polygons from proximity grid.
dtPolyRef polys[128];
int polyCount = 0;
- if (queryPolygons(center, extents, filter, polys, &polyCount, 128) != DT_SUCCESS)
- return DT_FAILURE;
+ if (dtStatusFailed(queryPolygons(center, extents, filter, polys, &polyCount, 128)))
+ return DT_FAILURE | DT_INVALID_PARAM;
// Find nearest polygon amongst the nearby polygons.
dtPolyRef nearest = 0;
@@ -378,8 +752,7 @@ dtStatus dtNavMeshQuery::findNearestPoly(const float* center, const float* exten
{
dtPolyRef ref = polys[i];
float closestPtPoly[3];
- if (closestPointOnPoly(ref, center, closestPtPoly) != DT_SUCCESS)
- continue;
+ closestPointOnPoly(ref, center, closestPtPoly);
float d = dtVdistSqr(center, closestPtPoly);
if (d < nearestDistanceSqr)
{
@@ -417,8 +790,7 @@ dtPolyRef dtNavMeshQuery::findNearestPolyInTile(const dtMeshTile* tile, const fl
dtPolyRef ref = polys[i];
const dtPoly* poly = &tile->polys[m_nav->decodePolyIdPoly(ref)];
float closestPtPoly[3];
- if (closestPointOnPolyInTile(tile, poly, center, closestPtPoly) != DT_SUCCESS)
- continue;
+ closestPointOnPolyInTile(tile, poly, center, closestPtPoly);
float d = dtVdistSqr(center, closestPtPoly);
if (d < nearestDistanceSqr)
@@ -500,8 +872,15 @@ int dtNavMeshQuery::queryPolygonsInTile(const dtMeshTile* tile, const float* qmi
const dtPolyRef base = m_nav->getPolyRefBase(tile);
for (int i = 0; i < tile->header->polyCount; ++i)
{
+ const dtPoly* p = &tile->polys[i];
+ // Do not return off-mesh connection polygons.
+ if (p->getType() == DT_POLYTYPE_OFFMESH_CONNECTION)
+ continue;
+ // Must pass filter
+ const dtPolyRef ref = base | (dtPolyRef)i;
+ if (!filter->passFilter(ref, tile, p))
+ continue;
// Calc polygon bounds.
- dtPoly* p = &tile->polys[i];
const float* v = &tile->verts[p->verts[0]*3];
dtVcopy(bmin, v);
dtVcopy(bmax, v);
@@ -513,18 +892,23 @@ int dtNavMeshQuery::queryPolygonsInTile(const dtMeshTile* tile, const float* qmi
}
if (dtOverlapBounds(qmin,qmax, bmin,bmax))
{
- const dtPolyRef ref = base | (dtPolyRef)i;
- if (filter->passFilter(ref, tile, p))
- {
- if (n < maxPolys)
- polys[n++] = ref;
- }
+ if (n < maxPolys)
+ polys[n++] = ref;
}
}
return n;
}
}
+/// @par
+///
+/// If no polygons are found, the function will return #DT_SUCCESS with a
+/// @p polyCount of zero.
+///
+/// If @p polys is too small to hold the entire result set, then the array will
+/// be filled to capacity. The method of choosing which polygons from the
+/// full set are included in the partial result set is undefined.
+///
dtStatus dtNavMeshQuery::queryPolygons(const float* center, const float* extents,
const dtQueryFilter* filter,
dtPolyRef* polys, int* polyCount, const int maxPolys) const
@@ -540,18 +924,23 @@ dtStatus dtNavMeshQuery::queryPolygons(const float* center, const float* extents
m_nav->calcTileLoc(bmin, &minx, &miny);
m_nav->calcTileLoc(bmax, &maxx, &maxy);
+ static const int MAX_NEIS = 32;
+ const dtMeshTile* neis[MAX_NEIS];
+
int n = 0;
for (int y = miny; y <= maxy; ++y)
{
for (int x = minx; x <= maxx; ++x)
{
- const dtMeshTile* tile = m_nav->getTileAt(x,y);
- if (!tile) continue;
- n += queryPolygonsInTile(tile, bmin, bmax, filter, polys+n, maxPolys-n);
- if (n >= maxPolys)
+ const int nneis = m_nav->getTilesAt(x,y,neis,MAX_NEIS);
+ for (int j = 0; j < nneis; ++j)
{
- *polyCount = n;
- return DT_SUCCESS;
+ n += queryPolygonsInTile(neis[j], bmin, bmax, filter, polys+n, maxPolys-n);
+ if (n >= maxPolys)
+ {
+ *polyCount = n;
+ return DT_SUCCESS | DT_BUFFER_TOO_SMALL;
+ }
}
}
}
@@ -560,6 +949,17 @@ dtStatus dtNavMeshQuery::queryPolygons(const float* center, const float* extents
return DT_SUCCESS;
}
+/// @par
+///
+/// If the end polygon cannot be reached through the navigation graph,
+/// the last polygon in the path will be the nearest the end polygon.
+///
+/// If the path array is to small to hold the full result, it will be filled as
+/// far as possible from the start polygon toward the end polygon.
+///
+/// The start and end positions are used to calculate traversal costs.
+/// (The y-values impact the result.)
+///
dtStatus dtNavMeshQuery::findPath(dtPolyRef startRef, dtPolyRef endRef,
const float* startPos, const float* endPos,
const dtQueryFilter* filter,
@@ -572,14 +972,14 @@ dtStatus dtNavMeshQuery::findPath(dtPolyRef startRef, dtPolyRef endRef,
*pathCount = 0;
if (!startRef || !endRef)
- return DT_FAILURE;
+ return DT_FAILURE | DT_INVALID_PARAM;
if (!maxPath)
- return DT_FAILURE;
+ return DT_FAILURE | DT_INVALID_PARAM;
// Validate input
if (!m_nav->isValidPolyRef(startRef) || !m_nav->isValidPolyRef(endRef))
- return DT_FAILURE;
+ return DT_FAILURE | DT_INVALID_PARAM;
if (startRef == endRef)
{
@@ -603,6 +1003,8 @@ dtStatus dtNavMeshQuery::findPath(dtPolyRef startRef, dtPolyRef endRef,
dtNode* lastBestNode = startNode;
float lastBestNodeCost = startNode->total;
+ dtStatus status = DT_SUCCESS;
+
while (!m_openList->empty())
{
// Remove node from open list and put it in closed list.
@@ -652,7 +1054,10 @@ dtStatus dtNavMeshQuery::findPath(dtPolyRef startRef, dtPolyRef endRef,
dtNode* neighbourNode = m_nodePool->getNode(neighbourRef);
if (!neighbourNode)
+ {
+ status |= DT_OUT_OF_NODES;
continue;
+ }
// If the node is visited the first time, calculate node position.
if (neighbourNode->flags == 0)
@@ -705,7 +1110,7 @@ dtStatus dtNavMeshQuery::findPath(dtPolyRef startRef, dtPolyRef endRef,
// Add or update the node.
neighbourNode->pidx = m_nodePool->getNodeIdx(bestNode);
neighbourNode->id = neighbourRef;
- neighbourNode->flags &= ~DT_NODE_CLOSED;
+ neighbourNode->flags = (neighbourNode->flags & ~DT_NODE_CLOSED);
neighbourNode->cost = cost;
neighbourNode->total = total;
@@ -730,6 +1135,9 @@ dtStatus dtNavMeshQuery::findPath(dtPolyRef startRef, dtPolyRef endRef,
}
}
+ if (lastBestNode->id != endRef)
+ status |= DT_PARTIAL_RESULT;
+
// Reverse the path.
dtNode* prev = 0;
dtNode* node = lastBestNode;
@@ -748,15 +1156,28 @@ dtStatus dtNavMeshQuery::findPath(dtPolyRef startRef, dtPolyRef endRef,
do
{
path[n++] = node->id;
+ if (n >= maxPath)
+ {
+ status |= DT_BUFFER_TOO_SMALL;
+ break;
+ }
node = m_nodePool->getNodeAtIdx(node->pidx);
}
- while (node && n < maxPath);
+ while (node);
*pathCount = n;
- return DT_SUCCESS;
+ return status;
}
+/// @par
+///
+/// @warning Calling any non-slice methods before calling finalizeSlicedFindPath()
+/// or finalizeSlicedFindPathPartial() may result in corrupted data!
+///
+/// The @p filter pointer is stored and used for the duration of the sliced
+/// path query.
+///
dtStatus dtNavMeshQuery::initSlicedFindPath(dtPolyRef startRef, dtPolyRef endRef,
const float* startPos, const float* endPos,
const dtQueryFilter* filter)
@@ -775,11 +1196,11 @@ dtStatus dtNavMeshQuery::initSlicedFindPath(dtPolyRef startRef, dtPolyRef endRef
m_query.filter = filter;
if (!startRef || !endRef)
- return DT_FAILURE;
+ return DT_FAILURE | DT_INVALID_PARAM;
// Validate input
if (!m_nav->isValidPolyRef(startRef) || !m_nav->isValidPolyRef(endRef))
- return DT_FAILURE;
+ return DT_FAILURE | DT_INVALID_PARAM;
if (startRef == endRef)
{
@@ -806,9 +1227,9 @@ dtStatus dtNavMeshQuery::initSlicedFindPath(dtPolyRef startRef, dtPolyRef endRef
return m_query.status;
}
-dtStatus dtNavMeshQuery::updateSlicedFindPath(const int maxIter)
+dtStatus dtNavMeshQuery::updateSlicedFindPath(const int maxIter, int* doneIters)
{
- if (m_query.status!= DT_IN_PROGRESS)
+ if (!dtStatusInProgress(m_query.status))
return m_query.status;
// Make sure the request is still valid.
@@ -832,7 +1253,10 @@ dtStatus dtNavMeshQuery::updateSlicedFindPath(const int maxIter)
if (bestNode->id == m_query.endRef)
{
m_query.lastBestNode = bestNode;
- m_query.status = DT_SUCCESS;
+ const dtStatus details = m_query.status & DT_STATUS_DETAIL_MASK;
+ m_query.status = DT_SUCCESS | details;
+ if (doneIters)
+ *doneIters = iter;
return m_query.status;
}
@@ -841,10 +1265,12 @@ dtStatus dtNavMeshQuery::updateSlicedFindPath(const int maxIter)
const dtPolyRef bestRef = bestNode->id;
const dtMeshTile* bestTile = 0;
const dtPoly* bestPoly = 0;
- if (m_nav->getTileAndPolyByRef(bestRef, &bestTile, &bestPoly) != DT_SUCCESS)
+ if (dtStatusFailed(m_nav->getTileAndPolyByRef(bestRef, &bestTile, &bestPoly)))
{
// The polygon has disappeared during the sliced query, fail.
m_query.status = DT_FAILURE;
+ if (doneIters)
+ *doneIters = iter;
return m_query.status;
}
@@ -856,10 +1282,12 @@ dtStatus dtNavMeshQuery::updateSlicedFindPath(const int maxIter)
parentRef = m_nodePool->getNodeAtIdx(bestNode->pidx)->id;
if (parentRef)
{
- if (m_nav->getTileAndPolyByRef(parentRef, &parentTile, &parentPoly) != DT_SUCCESS)
+ if (dtStatusFailed(m_nav->getTileAndPolyByRef(parentRef, &parentTile, &parentPoly)))
{
// The polygon has disappeared during the sliced query, fail.
m_query.status = DT_FAILURE;
+ if (doneIters)
+ *doneIters = iter;
return m_query.status;
}
}
@@ -883,7 +1311,10 @@ dtStatus dtNavMeshQuery::updateSlicedFindPath(const int maxIter)
dtNode* neighbourNode = m_nodePool->getNode(neighbourRef);
if (!neighbourNode)
+ {
+ m_query.status |= DT_OUT_OF_NODES;
continue;
+ }
// If the node is visited the first time, calculate node position.
if (neighbourNode->flags == 0)
@@ -936,7 +1367,7 @@ dtStatus dtNavMeshQuery::updateSlicedFindPath(const int maxIter)
// Add or update the node.
neighbourNode->pidx = m_nodePool->getNodeIdx(bestNode);
neighbourNode->id = neighbourRef;
- neighbourNode->flags &= ~DT_NODE_CLOSED;
+ neighbourNode->flags = (neighbourNode->flags & ~DT_NODE_CLOSED);
neighbourNode->cost = cost;
neighbourNode->total = total;
@@ -963,7 +1394,13 @@ dtStatus dtNavMeshQuery::updateSlicedFindPath(const int maxIter)
// Exhausted all nodes, but could not find path.
if (m_openList->empty())
- m_query.status = DT_SUCCESS;
+ {
+ const dtStatus details = m_query.status & DT_STATUS_DETAIL_MASK;
+ m_query.status = DT_SUCCESS | details;
+ }
+
+ if (doneIters)
+ *doneIters = iter;
return m_query.status;
}
@@ -972,7 +1409,7 @@ dtStatus dtNavMeshQuery::finalizeSlicedFindPath(dtPolyRef* path, int* pathCount,
{
*pathCount = 0;
- if (m_query.status != DT_SUCCESS)
+ if (dtStatusFailed(m_query.status))
{
// Reset query.
memset(&m_query, 0, sizeof(dtQueryData));
@@ -990,6 +1427,10 @@ dtStatus dtNavMeshQuery::finalizeSlicedFindPath(dtPolyRef* path, int* pathCount,
{
// Reverse the path.
dtAssert(m_query.lastBestNode);
+
+ if (m_query.lastBestNode->id != m_query.endRef)
+ m_query.status |= DT_PARTIAL_RESULT;
+
dtNode* prev = 0;
dtNode* node = m_query.lastBestNode;
do
@@ -1006,17 +1447,24 @@ dtStatus dtNavMeshQuery::finalizeSlicedFindPath(dtPolyRef* path, int* pathCount,
do
{
path[n++] = node->id;
+ if (n >= maxPath)
+ {
+ m_query.status |= DT_BUFFER_TOO_SMALL;
+ break;
+ }
node = m_nodePool->getNodeAtIdx(node->pidx);
}
- while (node && n < maxPath);
+ while (node);
}
+ const dtStatus details = m_query.status & DT_STATUS_DETAIL_MASK;
+
// Reset query.
memset(&m_query, 0, sizeof(dtQueryData));
*pathCount = n;
- return DT_SUCCESS;
+ return DT_SUCCESS | details;
}
dtStatus dtNavMeshQuery::finalizeSlicedFindPathPartial(const dtPolyRef* existing, const int existingSize,
@@ -1029,7 +1477,7 @@ dtStatus dtNavMeshQuery::finalizeSlicedFindPathPartial(const dtPolyRef* existing
return DT_FAILURE;
}
- if (m_query.status != DT_SUCCESS && m_query.status != DT_IN_PROGRESS)
+ if (dtStatusFailed(m_query.status))
{
// Reset query.
memset(&m_query, 0, sizeof(dtQueryData));
@@ -1057,7 +1505,9 @@ dtStatus dtNavMeshQuery::finalizeSlicedFindPathPartial(const dtPolyRef* existing
if (!node)
{
- return DT_FAILURE;
+ m_query.status |= DT_PARTIAL_RESULT;
+ dtAssert(m_query.lastBestNode);
+ node = m_query.lastBestNode;
}
// Reverse the path.
@@ -1075,58 +1525,156 @@ dtStatus dtNavMeshQuery::finalizeSlicedFindPathPartial(const dtPolyRef* existing
do
{
path[n++] = node->id;
+ if (n >= maxPath)
+ {
+ m_query.status |= DT_BUFFER_TOO_SMALL;
+ break;
+ }
node = m_nodePool->getNodeAtIdx(node->pidx);
}
- while (node && n < maxPath);
+ while (node);
}
+ const dtStatus details = m_query.status & DT_STATUS_DETAIL_MASK;
+
// Reset query.
memset(&m_query, 0, sizeof(dtQueryData));
*pathCount = n;
- return DT_SUCCESS;
+ return DT_SUCCESS | details;
}
+dtStatus dtNavMeshQuery::appendVertex(const float* pos, const unsigned char flags, const dtPolyRef ref,
+ float* straightPath, unsigned char* straightPathFlags, dtPolyRef* straightPathRefs,
+ int* straightPathCount, const int maxStraightPath) const
+{
+ if ((*straightPathCount) > 0 && dtVequal(&straightPath[((*straightPathCount)-1)*3], pos))
+ {
+ // The vertices are equal, update flags and poly.
+ if (straightPathFlags)
+ straightPathFlags[(*straightPathCount)-1] = flags;
+ if (straightPathRefs)
+ straightPathRefs[(*straightPathCount)-1] = ref;
+ }
+ else
+ {
+ // Append new vertex.
+ dtVcopy(&straightPath[(*straightPathCount)*3], pos);
+ if (straightPathFlags)
+ straightPathFlags[(*straightPathCount)] = flags;
+ if (straightPathRefs)
+ straightPathRefs[(*straightPathCount)] = ref;
+ (*straightPathCount)++;
+ // If reached end of path or there is no space to append more vertices, return.
+ if (flags == DT_STRAIGHTPATH_END || (*straightPathCount) >= maxStraightPath)
+ {
+ return DT_SUCCESS | (((*straightPathCount) >= maxStraightPath) ? DT_BUFFER_TOO_SMALL : 0);
+ }
+ }
+ return DT_IN_PROGRESS;
+}
+
+dtStatus dtNavMeshQuery::appendPortals(const int startIdx, const int endIdx, const float* endPos, const dtPolyRef* path,
+ float* straightPath, unsigned char* straightPathFlags, dtPolyRef* straightPathRefs,
+ int* straightPathCount, const int maxStraightPath, const int options) const
+{
+ const float* startPos = &straightPath[(*straightPathCount-1)*3];
+ // Append or update last vertex
+ dtStatus stat = 0;
+ for (int i = startIdx; i < endIdx; i++)
+ {
+ // Calculate portal
+ const dtPolyRef from = path[i];
+ const dtMeshTile* fromTile = 0;
+ const dtPoly* fromPoly = 0;
+ if (dtStatusFailed(m_nav->getTileAndPolyByRef(from, &fromTile, &fromPoly)))
+ return DT_FAILURE | DT_INVALID_PARAM;
+
+ const dtPolyRef to = path[i+1];
+ const dtMeshTile* toTile = 0;
+ const dtPoly* toPoly = 0;
+ if (dtStatusFailed(m_nav->getTileAndPolyByRef(to, &toTile, &toPoly)))
+ return DT_FAILURE | DT_INVALID_PARAM;
+
+ float left[3], right[3];
+ if (dtStatusFailed(getPortalPoints(from, fromPoly, fromTile, to, toPoly, toTile, left, right)))
+ break;
+
+ if (options & DT_STRAIGHTPATH_AREA_CROSSINGS)
+ {
+ // Skip intersection if only area crossings are requested.
+ if (fromPoly->getArea() == toPoly->getArea())
+ continue;
+ }
+
+ // Append intersection
+ float s,t;
+ if (dtIntersectSegSeg2D(startPos, endPos, left, right, s, t))
+ {
+ float pt[3];
+ dtVlerp(pt, left,right, t);
+
+ stat = appendVertex(pt, 0, path[i+1],
+ straightPath, straightPathFlags, straightPathRefs,
+ straightPathCount, maxStraightPath);
+ if (stat != DT_IN_PROGRESS)
+ return stat;
+ }
+ }
+ return DT_IN_PROGRESS;
+}
+
+/// @par
+///
+/// This method peforms what is often called 'string pulling'.
+///
+/// The start position is clamped to the first polygon in the path, and the
+/// end position is clamped to the last. So the start and end positions should
+/// normally be within or very near the first and last polygons respectively.
+///
+/// The returned polygon references represent the reference id of the polygon
+/// that is entered at the associated path position. The reference id associated
+/// with the end point will always be zero. This allows, for example, matching
+/// off-mesh link points to their representative polygons.
+///
+/// If the provided result buffers are too small for the entire result set,
+/// they will be filled as far as possible from the start toward the end
+/// position.
+///
dtStatus dtNavMeshQuery::findStraightPath(const float* startPos, const float* endPos,
const dtPolyRef* path, const int pathSize,
float* straightPath, unsigned char* straightPathFlags, dtPolyRef* straightPathRefs,
- int* straightPathCount, const int maxStraightPath) const
+ int* straightPathCount, const int maxStraightPath, const int options) const
{
dtAssert(m_nav);
*straightPathCount = 0;
if (!maxStraightPath)
- return DT_FAILURE;
+ return DT_FAILURE | DT_INVALID_PARAM;
if (!path[0])
- return DT_FAILURE;
+ return DT_FAILURE | DT_INVALID_PARAM;
- int n = 0;
+ dtStatus stat = 0;
// TODO: Should this be callers responsibility?
float closestStartPos[3];
- if (closestPointOnPolyBoundary(path[0], startPos, closestStartPos) != DT_SUCCESS)
- return DT_FAILURE;
+ if (dtStatusFailed(closestPointOnPolyBoundary(path[0], startPos, closestStartPos)))
+ return DT_FAILURE | DT_INVALID_PARAM;
+
+ float closestEndPos[3];
+ if (dtStatusFailed(closestPointOnPolyBoundary(path[pathSize-1], endPos, closestEndPos)))
+ return DT_FAILURE | DT_INVALID_PARAM;
// Add start point.
- dtVcopy(&straightPath[n*3], closestStartPos);
- if (straightPathFlags)
- straightPathFlags[n] = DT_STRAIGHTPATH_START;
- if (straightPathRefs)
- straightPathRefs[n] = path[0];
- n++;
- if (n >= maxStraightPath)
- {
- *straightPathCount = n;
- return DT_SUCCESS;
- }
-
- float closestEndPos[3];
- if (closestPointOnPolyBoundary(path[pathSize-1], endPos, closestEndPos) != DT_SUCCESS)
- return DT_FAILURE;
+ stat = appendVertex(closestStartPos, DT_STRAIGHTPATH_START, path[0],
+ straightPath, straightPathFlags, straightPathRefs,
+ straightPathCount, maxStraightPath);
+ if (stat != DT_IN_PROGRESS)
+ return stat;
if (pathSize > 1)
{
@@ -1152,19 +1700,30 @@ dtStatus dtNavMeshQuery::findStraightPath(const float* startPos, const float* en
if (i+1 < pathSize)
{
// Next portal.
- if (getPortalPoints(path[i], path[i+1], left, right, fromType, toType) != DT_SUCCESS)
+ if (dtStatusFailed(getPortalPoints(path[i], path[i+1], left, right, fromType, toType)))
{
- if (closestPointOnPolyBoundary(path[i], endPos, closestEndPos) != DT_SUCCESS)
- return DT_FAILURE;
+ // Failed to get portal points, in practice this means that path[i+1] is invalid polygon.
+ // Clamp the end point to path[i], and return the path so far.
- dtVcopy(&straightPath[n*3], closestEndPos);
- if (straightPathFlags)
- straightPathFlags[n] = 0;
- if (straightPathRefs)
- straightPathRefs[n] = path[i];
- n++;
+ if (dtStatusFailed(closestPointOnPolyBoundary(path[i], endPos, closestEndPos)))
+ {
+ // This should only happen when the first polygon is invalid.
+ return DT_FAILURE | DT_INVALID_PARAM;
+ }
+
+ // Apeend portals along the current straight path segment.
+ if (options & (DT_STRAIGHTPATH_AREA_CROSSINGS | DT_STRAIGHTPATH_ALL_CROSSINGS))
+ {
+ stat = appendPortals(apexIndex, i, closestEndPos, path,
+ straightPath, straightPathFlags, straightPathRefs,
+ straightPathCount, maxStraightPath, options);
+ }
+
+ stat = appendVertex(closestEndPos, 0, path[i],
+ straightPath, straightPathFlags, straightPathRefs,
+ straightPathCount, maxStraightPath);
- return DT_SUCCESS;
+ return DT_SUCCESS | DT_PARTIAL_RESULT | ((*straightPathCount >= maxStraightPath) ? DT_BUFFER_TOO_SMALL : 0);
}
// If starting really close the portal, advance.
@@ -1196,6 +1755,16 @@ dtStatus dtNavMeshQuery::findStraightPath(const float* startPos, const float* en
}
else
{
+ // Append portals along the current straight path segment.
+ if (options & (DT_STRAIGHTPATH_AREA_CROSSINGS | DT_STRAIGHTPATH_ALL_CROSSINGS))
+ {
+ stat = appendPortals(apexIndex, leftIndex, portalLeft, path,
+ straightPath, straightPathFlags, straightPathRefs,
+ straightPathCount, maxStraightPath, options);
+ if (stat != DT_IN_PROGRESS)
+ return stat;
+ }
+
dtVcopy(portalApex, portalLeft);
apexIndex = leftIndex;
@@ -1206,30 +1775,12 @@ dtStatus dtNavMeshQuery::findStraightPath(const float* startPos, const float* en
flags = DT_STRAIGHTPATH_OFFMESH_CONNECTION;
dtPolyRef ref = leftPolyRef;
- if (!dtVequal(&straightPath[(n-1)*3], portalApex))
- {
- // Append new vertex.
- dtVcopy(&straightPath[n*3], portalApex);
- if (straightPathFlags)
- straightPathFlags[n] = flags;
- if (straightPathRefs)
- straightPathRefs[n] = ref;
- n++;
- // If reached end of path or there is no space to append more vertices, return.
- if (flags == DT_STRAIGHTPATH_END || n >= maxStraightPath)
- {
- *straightPathCount = n;
- return DT_SUCCESS;
- }
- }
- else
- {
- // The vertices are equal, update flags and poly.
- if (straightPathFlags)
- straightPathFlags[n-1] = flags;
- if (straightPathRefs)
- straightPathRefs[n-1] = ref;
- }
+ // Append or update vertex
+ stat = appendVertex(portalApex, flags, ref,
+ straightPath, straightPathFlags, straightPathRefs,
+ straightPathCount, maxStraightPath);
+ if (stat != DT_IN_PROGRESS)
+ return stat;
dtVcopy(portalLeft, portalApex);
dtVcopy(portalRight, portalApex);
@@ -1255,6 +1806,16 @@ dtStatus dtNavMeshQuery::findStraightPath(const float* startPos, const float* en
}
else
{
+ // Append portals along the current straight path segment.
+ if (options & (DT_STRAIGHTPATH_AREA_CROSSINGS | DT_STRAIGHTPATH_ALL_CROSSINGS))
+ {
+ stat = appendPortals(apexIndex, rightIndex, portalRight, path,
+ straightPath, straightPathFlags, straightPathRefs,
+ straightPathCount, maxStraightPath, options);
+ if (stat != DT_IN_PROGRESS)
+ return stat;
+ }
+
dtVcopy(portalApex, portalRight);
apexIndex = rightIndex;
@@ -1264,31 +1825,13 @@ dtStatus dtNavMeshQuery::findStraightPath(const float* startPos, const float* en
else if (rightPolyType == DT_POLYTYPE_OFFMESH_CONNECTION)
flags = DT_STRAIGHTPATH_OFFMESH_CONNECTION;
dtPolyRef ref = rightPolyRef;
-
- if (!dtVequal(&straightPath[(n-1)*3], portalApex))
- {
- // Append new vertex.
- dtVcopy(&straightPath[n*3], portalApex);
- if (straightPathFlags)
- straightPathFlags[n] = flags;
- if (straightPathRefs)
- straightPathRefs[n] = ref;
- n++;
- // If reached end of path or there is no space to append more vertices, return.
- if (flags == DT_STRAIGHTPATH_END || n >= maxStraightPath)
- {
- *straightPathCount = n;
- return DT_SUCCESS;
- }
- }
- else
- {
- // The vertices are equal, update flags and poly.
- if (straightPathFlags)
- straightPathFlags[n-1] = flags;
- if (straightPathRefs)
- straightPathRefs[n-1] = ref;
- }
+
+ // Append or update vertex
+ stat = appendVertex(portalApex, flags, ref,
+ straightPath, straightPathFlags, straightPathRefs,
+ straightPathCount, maxStraightPath);
+ if (stat != DT_IN_PROGRESS)
+ return stat;
dtVcopy(portalLeft, portalApex);
dtVcopy(portalRight, portalApex);
@@ -1302,27 +1845,45 @@ dtStatus dtNavMeshQuery::findStraightPath(const float* startPos, const float* en
}
}
}
+
+ // Append portals along the current straight path segment.
+ if (options & (DT_STRAIGHTPATH_AREA_CROSSINGS | DT_STRAIGHTPATH_ALL_CROSSINGS))
+ {
+ stat = appendPortals(apexIndex, pathSize-1, closestEndPos, path,
+ straightPath, straightPathFlags, straightPathRefs,
+ straightPathCount, maxStraightPath, options);
+ if (stat != DT_IN_PROGRESS)
+ return stat;
+ }
}
+
+ stat = appendVertex(closestEndPos, DT_STRAIGHTPATH_END, 0,
+ straightPath, straightPathFlags, straightPathRefs,
+ straightPathCount, maxStraightPath);
- // If the point already exists, remove it and add reappend the actual end location.
- if (n > 0 && dtVequal(&straightPath[(n-1)*3], closestEndPos))
- n--;
-
- // Add end point.
- if (n < maxStraightPath)
- {
- dtVcopy(&straightPath[n*3], closestEndPos);
- if (straightPathFlags)
- straightPathFlags[n] = DT_STRAIGHTPATH_END;
- if (straightPathRefs)
- straightPathRefs[n] = 0;
- n++;
- }
-
- *straightPathCount = n;
- return DT_SUCCESS;
+ return DT_SUCCESS | ((*straightPathCount >= maxStraightPath) ? DT_BUFFER_TOO_SMALL : 0);
}
+/// @par
+///
+/// This method is optimized for small delta movement and a small number of
+/// polygons. If used for too great a distance, the result set will form an
+/// incomplete path.
+///
+/// @p resultPos will equal the @p endPos if the end is reached.
+/// Otherwise the closest reachable position will be returned.
+///
+/// @p resultPos is not projected onto the surface of the navigation
+/// mesh. Use #getPolyHeight if this is needed.
+///
+/// This method treats the end position in the same manner as
+/// the #raycast method. (As a 2D point.) See that method's documentation
+/// for details.
+///
+/// If the @p visited array is too small to hold the entire result set, it will
+/// be filled as far as possible from the start position toward the end
+/// position.
+///
dtStatus dtNavMeshQuery::moveAlongSurface(dtPolyRef startRef, const float* startPos, const float* endPos,
const dtQueryFilter* filter,
float* resultPos, dtPolyRef* visited, int* visitedCount, const int maxVisitedSize) const
@@ -1333,8 +1894,12 @@ dtStatus dtNavMeshQuery::moveAlongSurface(dtPolyRef startRef, const float* start
*visitedCount = 0;
// Validate input
- if (!startRef) return DT_FAILURE;
- if (!m_nav->isValidPolyRef(startRef)) return DT_FAILURE;
+ if (!startRef)
+ return DT_FAILURE | DT_INVALID_PARAM;
+ if (!m_nav->isValidPolyRef(startRef))
+ return DT_FAILURE | DT_INVALID_PARAM;
+
+ dtStatus status = DT_SUCCESS;
static const int MAX_STACK = 48;
dtNode* stack[MAX_STACK];
@@ -1499,16 +2064,21 @@ dtStatus dtNavMeshQuery::moveAlongSurface(dtPolyRef startRef, const float* start
do
{
visited[n++] = node->id;
+ if (n >= maxVisitedSize)
+ {
+ status |= DT_BUFFER_TOO_SMALL;
+ break;
+ }
node = m_tinyNodePool->getNodeAtIdx(node->pidx);
}
- while (node && n < maxVisitedSize);
+ while (node);
}
dtVcopy(resultPos, bestPos);
*visitedCount = n;
- return DT_SUCCESS;
+ return status;
}
@@ -1519,14 +2089,14 @@ dtStatus dtNavMeshQuery::getPortalPoints(dtPolyRef from, dtPolyRef to, float* le
const dtMeshTile* fromTile = 0;
const dtPoly* fromPoly = 0;
- if (m_nav->getTileAndPolyByRef(from, &fromTile, &fromPoly) != DT_SUCCESS)
- return DT_FAILURE;
+ if (dtStatusFailed(m_nav->getTileAndPolyByRef(from, &fromTile, &fromPoly)))
+ return DT_FAILURE | DT_INVALID_PARAM;
fromType = fromPoly->getType();
const dtMeshTile* toTile = 0;
const dtPoly* toPoly = 0;
- if (m_nav->getTileAndPolyByRef(to, &toTile, &toPoly) != DT_SUCCESS)
- return DT_FAILURE;
+ if (dtStatusFailed(m_nav->getTileAndPolyByRef(to, &toTile, &toPoly)))
+ return DT_FAILURE | DT_INVALID_PARAM;
toType = toPoly->getType();
return getPortalPoints(from, fromPoly, fromTile, to, toPoly, toTile, left, right);
@@ -1548,7 +2118,7 @@ dtStatus dtNavMeshQuery::getPortalPoints(dtPolyRef from, const dtPoly* fromPoly,
}
}
if (!link)
- return DT_FAILURE;
+ return DT_FAILURE | DT_INVALID_PARAM;
// Handle off-mesh connections.
if (fromPoly->getType() == DT_POLYTYPE_OFFMESH_CONNECTION)
@@ -1564,7 +2134,7 @@ dtStatus dtNavMeshQuery::getPortalPoints(dtPolyRef from, const dtPoly* fromPoly,
return DT_SUCCESS;
}
}
- return DT_FAILURE;
+ return DT_FAILURE | DT_INVALID_PARAM;
}
if (toPoly->getType() == DT_POLYTYPE_OFFMESH_CONNECTION)
@@ -1579,7 +2149,7 @@ dtStatus dtNavMeshQuery::getPortalPoints(dtPolyRef from, const dtPoly* fromPoly,
return DT_SUCCESS;
}
}
- return DT_FAILURE;
+ return DT_FAILURE | DT_INVALID_PARAM;
}
// Find portal vertices.
@@ -1611,7 +2181,8 @@ dtStatus dtNavMeshQuery::getEdgeMidPoint(dtPolyRef from, dtPolyRef to, float* mi
{
float left[3], right[3];
unsigned char fromType, toType;
- if (!getPortalPoints(from, to, left,right, fromType, toType)) return DT_FAILURE;
+ if (dtStatusFailed(getPortalPoints(from, to, left,right, fromType, toType)))
+ return DT_FAILURE | DT_INVALID_PARAM;
mid[0] = (left[0]+right[0])*0.5f;
mid[1] = (left[1]+right[1])*0.5f;
mid[2] = (left[2]+right[2])*0.5f;
@@ -1623,14 +2194,52 @@ dtStatus dtNavMeshQuery::getEdgeMidPoint(dtPolyRef from, const dtPoly* fromPoly,
float* mid) const
{
float left[3], right[3];
- if (getPortalPoints(from, fromPoly, fromTile, to, toPoly, toTile, left, right) != DT_SUCCESS)
- return DT_FAILURE;
+ if (dtStatusFailed(getPortalPoints(from, fromPoly, fromTile, to, toPoly, toTile, left, right)))
+ return DT_FAILURE | DT_INVALID_PARAM;
mid[0] = (left[0]+right[0])*0.5f;
mid[1] = (left[1]+right[1])*0.5f;
mid[2] = (left[2]+right[2])*0.5f;
return DT_SUCCESS;
}
+/// @par
+///
+/// This method is meant to be used for quick, short distance checks.
+///
+/// If the path array is too small to hold the result, it will be filled as
+/// far as possible from the start postion toward the end position.
+///
+/// <b>Using the Hit Parameter (t)</b>
+///
+/// If the hit parameter is a very high value (FLT_MAX), then the ray has hit
+/// the end position. In this case the path represents a valid corridor to the
+/// end position and the value of @p hitNormal is undefined.
+///
+/// If the hit parameter is zero, then the start position is on the wall that
+/// was hit and the value of @p hitNormal is undefined.
+///
+/// If 0 < t < 1.0 then the following applies:
+///
+/// @code
+/// distanceToHitBorder = distanceToEndPosition * t
+/// hitPoint = startPos + (endPos - startPos) * t
+/// @endcode
+///
+/// <b>Use Case Restriction</b>
+///
+/// The raycast ignores the y-value of the end position. (2D check.) This
+/// places significant limits on how it can be used. For example:
+///
+/// Consider a scene where there is a main floor with a second floor balcony
+/// that hangs over the main floor. So the first floor mesh extends below the
+/// balcony mesh. The start position is somewhere on the first floor. The end
+/// position is on the balcony.
+///
+/// The raycast will search toward the end position along the first floor mesh.
+/// If it reaches the end position's xz-coordinates it will indicate FLT_MAX
+/// (no wall hit), meaning it reached the end position. This is one example of why
+/// this method is meant for short distance checks.
+///
dtStatus dtNavMeshQuery::raycast(dtPolyRef startRef, const float* startPos, const float* endPos,
const dtQueryFilter* filter,
float* t, float* hitNormal, dtPolyRef* path, int* pathCount, const int maxPath) const
@@ -1643,7 +2252,7 @@ dtStatus dtNavMeshQuery::raycast(dtPolyRef startRef, const float* startPos, cons
// Validate input
if (!startRef || !m_nav->isValidPolyRef(startRef))
- return DT_FAILURE;
+ return DT_FAILURE | DT_INVALID_PARAM;
dtPolyRef curRef = startRef;
float verts[DT_VERTS_PER_POLYGON*3];
@@ -1653,6 +2262,8 @@ dtStatus dtNavMeshQuery::raycast(dtPolyRef startRef, const float* startPos, cons
hitNormal[1] = 0;
hitNormal[2] = 0;
+ dtStatus status = DT_SUCCESS;
+
while (curRef)
{
// Cast ray against current polygon.
@@ -1677,7 +2288,7 @@ dtStatus dtNavMeshQuery::raycast(dtPolyRef startRef, const float* startPos, cons
// Could not hit the polygon, keep the old t and report hit.
if (pathCount)
*pathCount = n;
- return DT_SUCCESS;
+ return status;
}
// Keep track of furthest t so far.
if (tmax > *t)
@@ -1686,6 +2297,8 @@ dtStatus dtNavMeshQuery::raycast(dtPolyRef startRef, const float* startPos, cons
// Store visited polygons.
if (n < maxPath)
path[n++] = curRef;
+ else
+ status |= DT_BUFFER_TOO_SMALL;
// Ray end is completely inside the polygon.
if (segMax == -1)
@@ -1693,7 +2306,7 @@ dtStatus dtNavMeshQuery::raycast(dtPolyRef startRef, const float* startPos, cons
*t = FLT_MAX;
if (pathCount)
*pathCount = n;
- return DT_SUCCESS;
+ return status;
}
// Follow neighbours.
@@ -1795,7 +2408,7 @@ dtStatus dtNavMeshQuery::raycast(dtPolyRef startRef, const float* startPos, cons
if (pathCount)
*pathCount = n;
- return DT_SUCCESS;
+ return status;
}
// No hit, advance to neighbour polygon.
@@ -1805,9 +2418,38 @@ dtStatus dtNavMeshQuery::raycast(dtPolyRef startRef, const float* startPos, cons
if (pathCount)
*pathCount = n;
- return DT_SUCCESS;
+ return status;
}
+/// @par
+///
+/// At least one result array must be provided.
+///
+/// The order of the result set is from least to highest cost to reach the polygon.
+///
+/// A common use case for this method is to perform Dijkstra searches.
+/// Candidate polygons are found by searching the graph beginning at the start polygon.
+///
+/// If a polygon is not found via the graph search, even if it intersects the
+/// search circle, it will not be included in the result set. For example:
+///
+/// polyA is the start polygon.
+/// polyB shares an edge with polyA. (Is adjacent.)
+/// polyC shares an edge with polyB, but not with polyA
+/// Even if the search circle overlaps polyC, it will not be included in the
+/// result set unless polyB is also in the set.
+///
+/// The value of the center point is used as the start position for cost
+/// calculations. It is not projected onto the surface of the mesh, so its
+/// y-value will effect the costs.
+///
+/// Intersection tests occur in 2D. All polygons and the search circle are
+/// projected onto the xz-plane. So the y-value of the center point does not
+/// effect intersection tests.
+///
+/// If the result arrays are to small to hold the entire result set, they will be
+/// filled to capacity.
+///
dtStatus dtNavMeshQuery::findPolysAroundCircle(dtPolyRef startRef, const float* centerPos, const float radius,
const dtQueryFilter* filter,
dtPolyRef* resultRef, dtPolyRef* resultParent, float* resultCost,
@@ -1820,8 +2462,8 @@ dtStatus dtNavMeshQuery::findPolysAroundCircle(dtPolyRef startRef, const float*
*resultCount = 0;
// Validate input
- if (!startRef) return DT_FAILURE;
- if (!m_nav->isValidPolyRef(startRef)) return DT_FAILURE;
+ if (!startRef || !m_nav->isValidPolyRef(startRef))
+ return DT_FAILURE | DT_INVALID_PARAM;
m_nodePool->clear();
m_openList->clear();
@@ -1835,6 +2477,8 @@ dtStatus dtNavMeshQuery::findPolysAroundCircle(dtPolyRef startRef, const float*
startNode->flags = DT_NODE_OPEN;
m_openList->push(startNode);
+ dtStatus status = DT_SUCCESS;
+
int n = 0;
if (n < maxResult)
{
@@ -1846,6 +2490,10 @@ dtStatus dtNavMeshQuery::findPolysAroundCircle(dtPolyRef startRef, const float*
resultCost[n] = 0;
++n;
}
+ else
+ {
+ status |= DT_BUFFER_TOO_SMALL;
+ }
const float radiusSqr = dtSqr(radius);
@@ -1901,7 +2549,10 @@ dtStatus dtNavMeshQuery::findPolysAroundCircle(dtPolyRef startRef, const float*
dtNode* neighbourNode = m_nodePool->getNode(neighbourRef);
if (!neighbourNode)
+ {
+ status |= DT_OUT_OF_NODES;
continue;
+ }
if (neighbourNode->flags & DT_NODE_CLOSED)
continue;
@@ -1917,7 +2568,7 @@ dtStatus dtNavMeshQuery::findPolysAroundCircle(dtPolyRef startRef, const float*
continue;
neighbourNode->id = neighbourRef;
- neighbourNode->flags &= ~DT_NODE_CLOSED;
+ neighbourNode->flags = (neighbourNode->flags & ~DT_NODE_CLOSED);
neighbourNode->pidx = m_nodePool->getNodeIdx(bestNode);
neighbourNode->total = total;
@@ -1937,6 +2588,10 @@ dtStatus dtNavMeshQuery::findPolysAroundCircle(dtPolyRef startRef, const float*
resultCost[n] = neighbourNode->total;
++n;
}
+ else
+ {
+ status |= DT_BUFFER_TOO_SMALL;
+ }
neighbourNode->flags = DT_NODE_OPEN;
m_openList->push(neighbourNode);
}
@@ -1945,9 +2600,31 @@ dtStatus dtNavMeshQuery::findPolysAroundCircle(dtPolyRef startRef, const float*
*resultCount = n;
- return DT_SUCCESS;
+ return status;
}
+/// @par
+///
+/// The order of the result set is from least to highest cost.
+///
+/// At least one result array must be provided.
+///
+/// A common use case for this method is to perform Dijkstra searches.
+/// Candidate polygons are found by searching the graph beginning at the start
+/// polygon.
+///
+/// The same intersection test restrictions that apply to findPolysAroundCircle()
+/// method apply to this method.
+///
+/// The 3D centroid of the search polygon is used as the start position for cost
+/// calculations.
+///
+/// Intersection tests occur in 2D. All polygons are projected onto the
+/// xz-plane. So the y-values of the vertices do not effect intersection tests.
+///
+/// If the result arrays are is too small to hold the entire result set, they will
+/// be filled to capacity.
+///
dtStatus dtNavMeshQuery::findPolysAroundShape(dtPolyRef startRef, const float* verts, const int nverts,
const dtQueryFilter* filter,
dtPolyRef* resultRef, dtPolyRef* resultParent, float* resultCost,
@@ -1960,8 +2637,8 @@ dtStatus dtNavMeshQuery::findPolysAroundShape(dtPolyRef startRef, const float* v
*resultCount = 0;
// Validate input
- if (!startRef) return DT_FAILURE;
- if (!m_nav->isValidPolyRef(startRef)) return DT_FAILURE;
+ if (!startRef || !m_nav->isValidPolyRef(startRef))
+ return DT_FAILURE | DT_INVALID_PARAM;
m_nodePool->clear();
m_openList->clear();
@@ -1980,6 +2657,8 @@ dtStatus dtNavMeshQuery::findPolysAroundShape(dtPolyRef startRef, const float* v
startNode->flags = DT_NODE_OPEN;
m_openList->push(startNode);
+ dtStatus status = DT_SUCCESS;
+
int n = 0;
if (n < maxResult)
{
@@ -1991,6 +2670,10 @@ dtStatus dtNavMeshQuery::findPolysAroundShape(dtPolyRef startRef, const float* v
resultCost[n] = 0;
++n;
}
+ else
+ {
+ status |= DT_BUFFER_TOO_SMALL;
+ }
while (!m_openList->empty())
{
@@ -2046,7 +2729,10 @@ dtStatus dtNavMeshQuery::findPolysAroundShape(dtPolyRef startRef, const float* v
dtNode* neighbourNode = m_nodePool->getNode(neighbourRef);
if (!neighbourNode)
+ {
+ status |= DT_OUT_OF_NODES;
continue;
+ }
if (neighbourNode->flags & DT_NODE_CLOSED)
continue;
@@ -2062,7 +2748,7 @@ dtStatus dtNavMeshQuery::findPolysAroundShape(dtPolyRef startRef, const float* v
continue;
neighbourNode->id = neighbourRef;
- neighbourNode->flags &= ~DT_NODE_CLOSED;
+ neighbourNode->flags = (neighbourNode->flags & ~DT_NODE_CLOSED);
neighbourNode->pidx = m_nodePool->getNodeIdx(bestNode);
neighbourNode->total = total;
@@ -2082,6 +2768,10 @@ dtStatus dtNavMeshQuery::findPolysAroundShape(dtPolyRef startRef, const float* v
resultCost[n] = neighbourNode->total;
++n;
}
+ else
+ {
+ status |= DT_BUFFER_TOO_SMALL;
+ }
neighbourNode->flags = DT_NODE_OPEN;
m_openList->push(neighbourNode);
}
@@ -2090,9 +2780,31 @@ dtStatus dtNavMeshQuery::findPolysAroundShape(dtPolyRef startRef, const float* v
*resultCount = n;
- return DT_SUCCESS;
+ return status;
}
+/// @par
+///
+/// This method is optimized for a small search radius and small number of result
+/// polygons.
+///
+/// Candidate polygons are found by searching the navigation graph beginning at
+/// the start polygon.
+///
+/// The same intersection test restrictions that apply to the findPolysAroundCircle
+/// mehtod applies to this method.
+///
+/// The value of the center point is used as the start point for cost calculations.
+/// It is not projected onto the surface of the mesh, so its y-value will effect
+/// the costs.
+///
+/// Intersection tests occur in 2D. All polygons and the search circle are
+/// projected onto the xz-plane. So the y-value of the center point does not
+/// effect intersection tests.
+///
+/// If the result arrays are is too small to hold the entire result set, they will
+/// be filled to capacity.
+///
dtStatus dtNavMeshQuery::findLocalNeighbourhood(dtPolyRef startRef, const float* centerPos, const float radius,
const dtQueryFilter* filter,
dtPolyRef* resultRef, dtPolyRef* resultParent,
@@ -2104,8 +2816,8 @@ dtStatus dtNavMeshQuery::findLocalNeighbourhood(dtPolyRef startRef, const float*
*resultCount = 0;
// Validate input
- if (!startRef) return DT_FAILURE;
- if (!m_nav->isValidPolyRef(startRef)) return DT_FAILURE;
+ if (!startRef || !m_nav->isValidPolyRef(startRef))
+ return DT_FAILURE | DT_INVALID_PARAM;
static const int MAX_STACK = 48;
dtNode* stack[MAX_STACK];
@@ -2124,6 +2836,8 @@ dtStatus dtNavMeshQuery::findLocalNeighbourhood(dtPolyRef startRef, const float*
float pa[DT_VERTS_PER_POLYGON*3];
float pb[DT_VERTS_PER_POLYGON*3];
+ dtStatus status = DT_SUCCESS;
+
int n = 0;
if (n < maxResult)
{
@@ -2132,6 +2846,10 @@ dtStatus dtNavMeshQuery::findLocalNeighbourhood(dtPolyRef startRef, const float*
resultParent[n] = 0;
++n;
}
+ else
+ {
+ status |= DT_BUFFER_TOO_SMALL;
+ }
while (nstack)
{
@@ -2245,6 +2963,10 @@ dtStatus dtNavMeshQuery::findLocalNeighbourhood(dtPolyRef startRef, const float*
resultParent[n] = curRef;
++n;
}
+ else
+ {
+ status |= DT_BUFFER_TOO_SMALL;
+ }
if (nstack < MAX_STACK)
{
@@ -2255,17 +2977,18 @@ dtStatus dtNavMeshQuery::findLocalNeighbourhood(dtPolyRef startRef, const float*
*resultCount = n;
- return DT_SUCCESS;
+ return status;
}
struct dtSegInterval
{
+ dtPolyRef ref;
short tmin, tmax;
};
static void insertInterval(dtSegInterval* ints, int& nints, const int maxInts,
- const short tmin, const short tmax)
+ const short tmin, const short tmax, const dtPolyRef ref)
{
if (nints+1 > maxInts) return;
// Find insertion point.
@@ -2280,13 +3003,26 @@ static void insertInterval(dtSegInterval* ints, int& nints, const int maxInts,
if (nints-idx)
memmove(ints+idx+1, ints+idx, sizeof(dtSegInterval)*(nints-idx));
// Store
+ ints[idx].ref = ref;
ints[idx].tmin = tmin;
ints[idx].tmax = tmax;
nints++;
}
+/// @par
+///
+/// If the @p segmentRefs parameter is provided, then all polygon segments will be returned.
+/// Otherwise only the wall segments are returned.
+///
+/// A segment that is normally a portal will be included in the result set as a
+/// wall if the @p filter results in the neighbor polygon becoomming impassable.
+///
+/// The @p segmentVerts and @p segmentRefs buffers should normally be sized for the
+/// maximum segments per polygon of the source navigation mesh.
+///
dtStatus dtNavMeshQuery::getPolyWallSegments(dtPolyRef ref, const dtQueryFilter* filter,
- float* segments, int* segmentCount, const int maxSegments) const
+ float* segmentVerts, dtPolyRef* segmentRefs, int* segmentCount,
+ const int maxSegments) const
{
dtAssert(m_nav);
@@ -2294,14 +3030,18 @@ dtStatus dtNavMeshQuery::getPolyWallSegments(dtPolyRef ref, const dtQueryFilter*
const dtMeshTile* tile = 0;
const dtPoly* poly = 0;
- if (m_nav->getTileAndPolyByRef(ref, &tile, &poly) != DT_SUCCESS)
- return DT_FAILURE;
+ if (dtStatusFailed(m_nav->getTileAndPolyByRef(ref, &tile, &poly)))
+ return DT_FAILURE | DT_INVALID_PARAM;
int n = 0;
static const int MAX_INTERVAL = 16;
dtSegInterval ints[MAX_INTERVAL];
int nints;
+ const bool storePortals = segmentRefs != 0;
+
+ dtStatus status = DT_SUCCESS;
+
for (int i = 0, j = (int)poly->vertCount-1; i < (int)poly->vertCount; j = i++)
{
// Skip non-solid edges.
@@ -2321,54 +3061,95 @@ dtStatus dtNavMeshQuery::getPolyWallSegments(dtPolyRef ref, const dtQueryFilter*
m_nav->getTileAndPolyByRefUnsafe(link->ref, &neiTile, &neiPoly);
if (filter->passFilter(link->ref, neiTile, neiPoly))
{
- insertInterval(ints, nints, MAX_INTERVAL, link->bmin, link->bmax);
+ insertInterval(ints, nints, MAX_INTERVAL, link->bmin, link->bmax, link->ref);
}
}
}
}
}
- else if (poly->neis[j])
+ else
{
// Internal edge
- const unsigned int idx = (unsigned int)(poly->neis[j]-1);
- const dtPolyRef ref = m_nav->getPolyRefBase(tile) | idx;
- if (filter->passFilter(ref, tile, &tile->polys[idx]))
+ dtPolyRef neiRef = 0;
+ if (poly->neis[j])
+ {
+ const unsigned int idx = (unsigned int)(poly->neis[j]-1);
+ neiRef = m_nav->getPolyRefBase(tile) | idx;
+ if (!filter->passFilter(neiRef, tile, &tile->polys[idx]))
+ neiRef = 0;
+ }
+
+ // If the edge leads to another polygon and portals are not stored, skip.
+ if (neiRef != 0 && !storePortals)
continue;
+
+ if (n < maxSegments)
+ {
+ const float* vj = &tile->verts[poly->verts[j]*3];
+ const float* vi = &tile->verts[poly->verts[i]*3];
+ float* seg = &segmentVerts[n*6];
+ dtVcopy(seg+0, vj);
+ dtVcopy(seg+3, vi);
+ if (segmentRefs)
+ segmentRefs[n] = neiRef;
+ n++;
+ }
+ else
+ {
+ status |= DT_BUFFER_TOO_SMALL;
+ }
+
+ continue;
}
// Add sentinels
- insertInterval(ints, nints, MAX_INTERVAL, -1, 0);
- insertInterval(ints, nints, MAX_INTERVAL, 255, 256);
+ insertInterval(ints, nints, MAX_INTERVAL, -1, 0, 0);
+ insertInterval(ints, nints, MAX_INTERVAL, 255, 256, 0);
- // Store segment.
+ // Store segments.
const float* vj = &tile->verts[poly->verts[j]*3];
const float* vi = &tile->verts[poly->verts[i]*3];
for (int k = 1; k < nints; ++k)
{
- // Find the space inbetween the opening areas.
- const int imin = ints[k-1].tmax;
- const int imax = ints[k].tmin;
- if (imin == imax) continue;
- if (imin == 0 && imax == 255)
+ // Portal segment.
+ if (storePortals && ints[k].ref)
{
+ const float tmin = ints[k].tmin/255.0f;
+ const float tmax = ints[k].tmax/255.0f;
if (n < maxSegments)
{
- float* seg = &segments[n*6];
+ float* seg = &segmentVerts[n*6];
+ dtVlerp(seg+0, vj,vi, tmin);
+ dtVlerp(seg+3, vj,vi, tmax);
+ if (segmentRefs)
+ segmentRefs[n] = ints[k].ref;
n++;
- dtVcopy(seg+0, vj);
- dtVcopy(seg+3, vi);
+ }
+ else
+ {
+ status |= DT_BUFFER_TOO_SMALL;
}
}
- else
+
+ // Wall segment.
+ const int imin = ints[k-1].tmax;
+ const int imax = ints[k].tmin;
+ if (imin != imax)
{
const float tmin = imin/255.0f;
const float tmax = imax/255.0f;
if (n < maxSegments)
{
- float* seg = &segments[n*6];
- n++;
+ float* seg = &segmentVerts[n*6];
dtVlerp(seg+0, vj,vi, tmin);
dtVlerp(seg+3, vj,vi, tmax);
+ if (segmentRefs)
+ segmentRefs[n] = 0;
+ n++;
+ }
+ else
+ {
+ status |= DT_BUFFER_TOO_SMALL;
}
}
}
@@ -2376,9 +3157,19 @@ dtStatus dtNavMeshQuery::getPolyWallSegments(dtPolyRef ref, const dtQueryFilter*
*segmentCount = n;
- return DT_SUCCESS;
+ return status;
}
+/// @par
+///
+/// @p hitPos is not adjusted using the height detail data.
+///
+/// @p hitDist will equal the search radius if there is no wall within the
+/// radius. In this case the values of @p hitPos and @p hitNormal are
+/// undefined.
+///
+/// The normal will become unpredicable if @p hitDist is a very small number.
+///
dtStatus dtNavMeshQuery::findDistanceToWall(dtPolyRef startRef, const float* centerPos, const float maxRadius,
const dtQueryFilter* filter,
float* hitDist, float* hitPos, float* hitNormal) const
@@ -2388,8 +3179,8 @@ dtStatus dtNavMeshQuery::findDistanceToWall(dtPolyRef startRef, const float* cen
dtAssert(m_openList);
// Validate input
- if (!startRef) return DT_FAILURE;
- if (!m_nav->isValidPolyRef(startRef)) return DT_FAILURE;
+ if (!startRef || !m_nav->isValidPolyRef(startRef))
+ return DT_FAILURE | DT_INVALID_PARAM;
m_nodePool->clear();
m_openList->clear();
@@ -2405,6 +3196,8 @@ dtStatus dtNavMeshQuery::findDistanceToWall(dtPolyRef startRef, const float* cen
float radiusSqr = dtSqr(maxRadius);
+ dtStatus status = DT_SUCCESS;
+
while (!m_openList->empty())
{
dtNode* bestNode = m_openList->pop();
@@ -2512,7 +3305,10 @@ dtStatus dtNavMeshQuery::findDistanceToWall(dtPolyRef startRef, const float* cen
dtNode* neighbourNode = m_nodePool->getNode(neighbourRef);
if (!neighbourNode)
+ {
+ status |= DT_OUT_OF_NODES;
continue;
+ }
if (neighbourNode->flags & DT_NODE_CLOSED)
continue;
@@ -2531,7 +3327,7 @@ dtStatus dtNavMeshQuery::findDistanceToWall(dtPolyRef startRef, const float* cen
continue;
neighbourNode->id = neighbourRef;
- neighbourNode->flags &= ~DT_NODE_CLOSED;
+ neighbourNode->flags = (neighbourNode->flags & ~DT_NODE_CLOSED);
neighbourNode->pidx = m_nodePool->getNodeIdx(bestNode);
neighbourNode->total = total;
@@ -2551,11 +3347,30 @@ dtStatus dtNavMeshQuery::findDistanceToWall(dtPolyRef startRef, const float* cen
dtVsub(hitNormal, centerPos, hitPos);
dtVnormalize(hitNormal);
- *hitDist = sqrtf(radiusSqr);
+ *hitDist = dtSqrt(radiusSqr);
- return DT_SUCCESS;
+ return status;
+}
+
+bool dtNavMeshQuery::isValidPolyRef(dtPolyRef ref, const dtQueryFilter* filter) const
+{
+ const dtMeshTile* tile = 0;
+ const dtPoly* poly = 0;
+ dtStatus status = m_nav->getTileAndPolyByRef(ref, &tile, &poly);
+ // If cannot get polygon, assume it does not exists and boundary is invalid.
+ if (dtStatusFailed(status))
+ return false;
+ // If cannot pass filter, assume flags has changed and boundary is invalid.
+ if (!filter->passFilter(ref, tile, poly))
+ return false;
+ return true;
}
+/// @par
+///
+/// The closed list is the list of polygons that were fully evaluated during
+/// the last navigation graph search. (A* or Dijkstra)
+///
bool dtNavMeshQuery::isInClosedList(dtPolyRef ref) const
{
if (!m_nodePool) return false;
diff --git a/dep/recastnavigation/Detour/DetourNavMeshQuery.h b/dep/recastnavigation/Detour/DetourNavMeshQuery.h
index f5046d83290..d431bf177bd 100644
--- a/dep/recastnavigation/Detour/DetourNavMeshQuery.h
+++ b/dep/recastnavigation/Detour/DetourNavMeshQuery.h
@@ -20,39 +20,31 @@
#define DETOURNAVMESHQUERY_H
#include "DetourNavMesh.h"
+#include "DetourStatus.h"
// Define DT_VIRTUAL_QUERYFILTER if you wish to derive a custom filter from dtQueryFilter.
// On certain platforms indirect or virtual function call is expensive. The default
-// setting is to use non-virtual functions, the actualy implementations of the functions
+// setting is to use non-virtual functions, the actual implementations of the functions
// are declared as inline for maximum speed.
//#define DT_VIRTUAL_QUERYFILTER 1
-// Class for polygon filtering and cost calculation during query operations.
-// - It is possible to derive a custom query filter from dtQueryFilter by overriding
-// the virtual functions passFilter() and getCost().
-// - Both functions should be as fast as possible. Use cached local copy of data
-// instead of accessing your own objects where possible.
-// - You do not need to adhere to the flags and cost logic provided by the default
-// implementation.
-// - In order for the A* to work properly, the cost should be proportional to
-// the travel distance. Using cost modifier less than 1.0 is likely to lead
-// to problems during pathfinding.
+/// Defines polygon filtering and traversal costs for navigation mesh query operations.
+/// @ingroup detour
class dtQueryFilter
{
- float m_areaCost[DT_MAX_AREAS]; // Array storing cost per area type, used by default implementation.
- unsigned short m_includeFlags; // Include poly flags, used by default implementation.
- unsigned short m_excludeFlags; // Exclude poly flags, used by default implementation.
+ float m_areaCost[DT_MAX_AREAS]; ///< Cost per area type. (Used by default implementation.)
+ unsigned short m_includeFlags; ///< Flags for polygons that can be visited. (Used by default implementation.)
+ unsigned short m_excludeFlags; ///< Flags for polygons that should not be visted. (Used by default implementation.)
public:
dtQueryFilter();
- // Returns true if the polygon is can visited.
- // Params:
- // ref - (in) reference to the polygon test.
- // tile - (in) pointer to the tile of the polygon test.
- // poly - (in) pointer to the polygon test.
+ /// Returns true if the polygon can be visited. (I.e. Is traversable.)
+ /// @param[in] ref The reference id of the polygon test.
+ /// @param[in] tile The tile containing the polygon.
+ /// @param[in] poly The polygon to test.
#ifdef DT_VIRTUAL_QUERYFILTER
virtual bool passFilter(const dtPolyRef ref,
const dtMeshTile* tile,
@@ -63,16 +55,19 @@ public:
const dtPoly* poly) const;
#endif
- // Returns cost to travel from 'pa' to 'pb'.'
- // The segment is fully contained inside 'cur'.
- // 'pa' lies on the edge between 'prev' and 'cur',
- // 'pb' lies on the edge between 'cur' and 'next'.
- // Params:
- // pa - (in) segment start position.
- // pb - (in) segment end position.
- // prevRef, prevTile, prevPoly - (in) data describing the previous polygon, can be null.
- // curRef, curTile, curPoly - (in) data describing the current polygon.
- // nextRef, nextTile, nextPoly - (in) data describing the next polygon, can be null.
+ /// Returns cost to move from the beginning to the end of a line segment
+ /// that is fully contained within a polygon.
+ /// @param[in] pa The start position on the edge of the previous and current polygon. [(x, y, z)]
+ /// @param[in] pb The end position on the edge of the current and next polygon. [(x, y, z)]
+ /// @param[in] prevRef The reference id of the previous polygon. [opt]
+ /// @param[in] prevTile The tile containing the previous polygon. [opt]
+ /// @param[in] prevPoly The previous polygon. [opt]
+ /// @param[in] curRef The reference id of the current polygon.
+ /// @param[in] curTile The tile containing the current polygon.
+ /// @param[in] curPoly The current polygon.
+ /// @param[in] nextRef The refernece id of the next polygon. [opt]
+ /// @param[in] nextTile The tile containing the next polygon. [opt]
+ /// @param[in] nextPoly The next polygon. [opt]
#ifdef DT_VIRTUAL_QUERYFILTER
virtual float getCost(const float* pa, const float* pb,
const dtPolyRef prevRef, const dtMeshTile* prevTile, const dtPoly* prevPoly,
@@ -84,305 +79,385 @@ public:
const dtPolyRef curRef, const dtMeshTile* curTile, const dtPoly* curPoly,
const dtPolyRef nextRef, const dtMeshTile* nextTile, const dtPoly* nextPoly) const;
#endif
-
- // Getters and setters for the default implementation data.
+
+ /// @name Getters and setters for the default implementation data.
+ ///@{
+
+ /// Returns the traversal cost of the area.
+ /// @param[in] i The id of the area.
+ /// @returns The traversal cost of the area.
inline float getAreaCost(const int i) const { return m_areaCost[i]; }
+
+ /// Sets the traversal cost of the area.
+ /// @param[in] i The id of the area.
+ /// @param[in] cost The new cost of traversing the area.
inline void setAreaCost(const int i, const float cost) { m_areaCost[i] = cost; }
+ /// Returns the include flags for the filter.
+ /// Any polygons that include one or more of these flags will be
+ /// included in the operation.
inline unsigned short getIncludeFlags() const { return m_includeFlags; }
+
+ /// Sets the include flags for the filter.
+ /// @param[in] flags The new flags.
inline void setIncludeFlags(const unsigned short flags) { m_includeFlags = flags; }
+ /// Returns the exclude flags for the filter.
+ /// Any polygons that include one ore more of these flags will be
+ /// excluded from the operation.
inline unsigned short getExcludeFlags() const { return m_excludeFlags; }
+
+ /// Sets the exclude flags for the filter.
+ /// @param[in] flags The new flags.
inline void setExcludeFlags(const unsigned short flags) { m_excludeFlags = flags; }
+
+ ///@}
+
};
+/// Provides the ability to perform pathfinding related queries against
+/// a navigation mesh.
+/// @ingroup detour
class dtNavMeshQuery
{
public:
dtNavMeshQuery();
~dtNavMeshQuery();
- // Initializes the nav mesh query.
- // Params:
- // nav - (in) pointer to navigation mesh data.
- // maxNodes - (in) Maximum number of search nodes to use (max 65536).
- // Returns: True if succeed, else false.
+ /// Initializes the query object.
+ /// @param[in] nav Pointer to the dtNavMesh object to use for all queries.
+ /// @param[in] maxNodes Maximum number of search nodes. [Limits: 0 < value <= 65536]
+ /// @returns The status flags for the query.
dtStatus init(const dtNavMesh* nav, const int maxNodes);
- // Finds the nearest navigation polygon around the center location.
- // Params:
- // center[3] - (in) The center of the search box.
- // extents[3] - (in) The extents of the search box.
- // filter - (in) path polygon filter.
- // nearestRef - (out) Reference to the nearest polygon.
- // nearestPt[3] - (out, opt) The nearest point on found polygon, null if not needed.
- // Returns: Reference identifier for the polygon, or 0 if no polygons found.
- dtStatus findNearestPoly(const float* center, const float* extents,
- const dtQueryFilter* filter,
- dtPolyRef* nearestRef, float* nearestPt) const;
-
- // Returns polygons which overlap the query box.
- // Params:
- // center[3] - (in) the center of the search box.
- // extents[3] - (in) the extents of the search box.
- // filter - (in) path polygon filter.
- // polys - (out) array holding the search result.
- // polyCount - (out) Number of polygons in search result array.
- // maxPolys - (in) The max number of polygons the polys array can hold.
- dtStatus queryPolygons(const float* center, const float* extents,
- const dtQueryFilter* filter,
- dtPolyRef* polys, int* polyCount, const int maxPolys) const;
-
- // Finds path from start polygon to end polygon.
- // If target polygon canno be reached through the navigation graph,
- // the last node on the array is nearest node to the end polygon.
- // Start end end positions are needed to calculate more accurate
- // traversal cost at start end end polygons.
- // Params:
- // startRef - (in) ref to path start polygon.
- // endRef - (in) ref to path end polygon.
- // startPos[3] - (in) Path start location.
- // endPos[3] - (in) Path end location.
- // filter - (in) path polygon filter.
- // path - (out) array holding the search result.
- // pathCount - (out) Number of polygons in search result array.
- // maxPath - (in) The max number of polygons the path array can hold. Must be at least 1.
+ /// @name Standard Pathfinding Functions
+ // /@{
+
+ /// Finds a path from the start polygon to the end polygon.
+ /// @param[in] startRef The refrence id of the start polygon.
+ /// @param[in] endRef The reference id of the end polygon.
+ /// @param[in] startPos A position within the start polygon. [(x, y, z)]
+ /// @param[in] endPos A position within the end polygon. [(x, y, z)]
+ /// @param[in] filter The polygon filter to apply to the query.
+ /// @param[out] path An ordered list of polygon references representing the path. (Start to end.)
+ /// [(polyRef) * @p pathCount]
+ /// @param[out] pathCount The number of polygons returned in the @p path array.
+ /// @param[in] maxPath The maximum number of polygons the @p path array can hold. [Limit: >= 1]
dtStatus findPath(dtPolyRef startRef, dtPolyRef endRef,
const float* startPos, const float* endPos,
const dtQueryFilter* filter,
dtPolyRef* path, int* pathCount, const int maxPath) const;
- // Intializes sliced path find query.
- // Note 1: calling any other dtNavMeshQuery method before calling findPathEnd()
- // may results in corrupted data!
- // Note 2: The pointer to filter is store, and used in subsequent
- // calls to updateSlicedFindPath().
- // Params:
- // startRef - (in) ref to path start polygon.
- // endRef - (in) ref to path end polygon.
- // startPos[3] - (in) Path start location.
- // endPos[3] - (in) Path end location.
- // filter - (in) path polygon filter.
+ /// Finds the straight path from the start to the end position within the polygon corridor.
+ /// @param[in] startPos Path start position. [(x, y, z)]
+ /// @param[in] endPos Path end position. [(x, y, z)]
+ /// @param[in] path An array of polygon references that represent the path corridor.
+ /// @param[in] pathSize The number of polygons in the @p path array.
+ /// @param[out] straightPath Points describing the straight path. [(x, y, z) * @p straightPathCount].
+ /// @param[out] straightPathFlags Flags describing each point. (See: #dtStraightPathFlags) [opt]
+ /// @param[out] straightPathRefs The reference id of the polygon that is being entered at each point. [opt]
+ /// @param[out] straightPathCount The number of points in the straight path.
+ /// @param[in] maxStraightPath The maximum number of points the straight path arrays can hold. [Limit: > 0]
+ /// @param[in] options Query options. (see: #dtStraightPathOptions)
+ /// @returns The status flags for the query.
+ dtStatus findStraightPath(const float* startPos, const float* endPos,
+ const dtPolyRef* path, const int pathSize,
+ float* straightPath, unsigned char* straightPathFlags, dtPolyRef* straightPathRefs,
+ int* straightPathCount, const int maxStraightPath, const int options = 0) const;
+
+ ///@}
+ /// @name Sliced Pathfinding Functions
+ /// Common use case:
+ /// -# Call initSlicedFindPath() to initialize the sliced path query.
+ /// -# Call updateSlicedFindPath() until it returns complete.
+ /// -# Call finalizeSlicedFindPath() to get the path.
+ ///@{
+
+ /// Intializes a sliced path query.
+ /// @param[in] startRef The refrence id of the start polygon.
+ /// @param[in] endRef The reference id of the end polygon.
+ /// @param[in] startPos A position within the start polygon. [(x, y, z)]
+ /// @param[in] endPos A position within the end polygon. [(x, y, z)]
+ /// @param[in] filter The polygon filter to apply to the query.
+ /// @returns The status flags for the query.
dtStatus initSlicedFindPath(dtPolyRef startRef, dtPolyRef endRef,
const float* startPos, const float* endPos,
const dtQueryFilter* filter);
- // Updates sliced path find query.
- // Params:
- // maxIter - (in) max number of iterations to update.
- // Returns: Path query state.
- dtStatus updateSlicedFindPath(const int maxIter);
+ /// Updates an in-progress sliced path query.
+ /// @param[in] maxIter The maximum number of iterations to perform.
+ /// @param[out] doneIters The actual number of iterations completed. [opt]
+ /// @returns The status flags for the query.
+ dtStatus updateSlicedFindPath(const int maxIter, int* doneIters);
- // Finalizes sliced path find query and returns found path.
- // path - (out) array holding the search result.
- // pathCount - (out) Number of polygons in search result array.
- // maxPath - (in) The max number of polygons the path array can hold.
+ /// Finalizes and returns the results of a sliced path query.
+ /// @param[out] path An ordered list of polygon references representing the path. (Start to end.)
+ /// [(polyRef) * @p pathCount]
+ /// @param[out] pathCount The number of polygons returned in the @p path array.
+ /// @param[in] maxPath The max number of polygons the path array can hold. [Limit: >= 1]
+ /// @returns The status flags for the query.
dtStatus finalizeSlicedFindPath(dtPolyRef* path, int* pathCount, const int maxPath);
- // Finalizes partial sliced path find query and returns path to the furthest
- // polygon on the existing path that was visited during the search.
- // existing - (out) Array of polygons in the existing path.
- // existingSize - (out) Number of polygons in existing path array.
- // path - (out) array holding the search result.
- // pathCount - (out) Number of polygons in search result array.
- // maxPath - (in) The max number of polygons the path array can hold.
+ /// Finalizes and returns the results of an incomplete sliced path query, returning the path to the furthest
+ /// polygon on the existing path that was visited during the search.
+ /// @param[out] existing An array of polygon references for the existing path.
+ /// @param[out] existingSize The number of polygon in the @p existing array.
+ /// @param[out] path An ordered list of polygon references representing the path. (Start to end.)
+ /// [(polyRef) * @p pathCount]
+ /// @param[out] pathCount The number of polygons returned in the @p path array.
+ /// @param[in] maxPath The max number of polygons the @p path array can hold. [Limit: >= 1]
+ /// @returns The status flags for the query.
dtStatus finalizeSlicedFindPathPartial(const dtPolyRef* existing, const int existingSize,
dtPolyRef* path, int* pathCount, const int maxPath);
-
- // Finds a straight path from start to end locations within the corridor
- // described by the path polygons.
- // Start and end locations will be clamped on the corridor.
- // The returned polygon references are point to polygon which was entered when
- // a path point was added. For the end point, zero will be returned. This allows
- // to match for example off-mesh link points to their representative polygons.
- // Params:
- // startPos[3] - (in) Path start location.
- // endPo[3] - (in) Path end location.
- // path - (in) Array of connected polygons describing the corridor.
- // pathSize - (in) Number of polygons in path array.
- // straightPath - (out) Points describing the straight path.
- // straightPathFlags - (out, opt) Flags describing each point type, see dtStraightPathFlags.
- // straightPathRefs - (out, opt) References to polygons at point locations.
- // straightPathCount - (out) Number of points in the path.
- // maxStraightPath - (in) The max number of points the straight path array can hold. Must be at least 1.
- dtStatus findStraightPath(const float* startPos, const float* endPos,
- const dtPolyRef* path, const int pathSize,
- float* straightPath, unsigned char* straightPathFlags, dtPolyRef* straightPathRefs,
- int* straightPathCount, const int maxStraightPath) const;
-
- // Moves from startPos to endPos constrained to the navmesh.
- // If the endPos is reachable, the resultPos will be endPos,
- // or else the resultPos will be the nearest point in navmesh.
- // Note: The resulting point is not projected to the ground, use getPolyHeight() to get height.
- // Note: The algorithm is optimized for small delta movement and small number of polygons.
- // Params:
- // startRef - (in) ref to the polygon where startPos lies.
- // startPos[3] - (in) start position of the mover.
- // endPos[3] - (in) desired end position of the mover.
- // filter - (in) path polygon filter.
- // resultPos[3] - (out) new position of the mover.
- // visited - (out) array of visited polygons.
- // visitedCount - (out) Number of entries in the visited array.
- // maxVisitedSize - (in) max number of polygons in the visited array.
- dtStatus moveAlongSurface(dtPolyRef startRef, const float* startPos, const float* endPos,
- const dtQueryFilter* filter,
- float* resultPos, dtPolyRef* visited, int* visitedCount, const int maxVisitedSize) const;
-
- // Casts 'walkability' ray along the navmesh surface from startPos towards the endPos.
- // Params:
- // startRef - (in) ref to the polygon where the start lies.
- // startPos[3] - (in) start position of the query.
- // endPos[3] - (in) end position of the query.
- // t - (out) hit parameter along the segment, FLT_MAX if no hit.
- // hitNormal[3] - (out) normal of the nearest hit.
- // filter - (in) path polygon filter.
- // path - (out,opt) visited path polygons.
- // pathCount - (out,opt) Number of polygons visited.
- // maxPath - (in) max number of polygons in the path array.
- dtStatus raycast(dtPolyRef startRef, const float* startPos, const float* endPos,
- const dtQueryFilter* filter,
- float* t, float* hitNormal, dtPolyRef* path, int* pathCount, const int maxPath) const;
-
- // Returns distance to nearest wall from the specified location.
- // Params:
- // startRef - (in) ref to the polygon where the center lies.
- // centerPos[3] - (in) center if the query circle.
- // maxRadius - (in) max search radius.
- // filter - (in) path polygon filter.
- // hitDist - (out) distance to nearest wall from the test location.
- // hitPos[3] - (out) location of the nearest hit.
- // hitNormal[3] - (out) normal of the nearest hit.
- dtStatus findDistanceToWall(dtPolyRef startRef, const float* centerPos, const float maxRadius,
- const dtQueryFilter* filter,
- float* hitDist, float* hitPos, float* hitNormal) const;
-
- // Finds polygons found along the navigation graph which touch the specified circle.
- // Params:
- // startRef - (in) ref to the polygon where the search starts.
- // centerPos[3] - (in) center if the query circle.
- // radius - (in) radius of the query circle.
- // filter - (in) path polygon filter.
- // resultRef - (out, opt) refs to the polygons touched by the circle.
- // resultParent - (out, opt) parent of each result polygon.
- // resultCost - (out, opt) search cost at each result polygon.
- // resultCount - (out, opt) Number of results.
- // maxResult - (int) maximum capacity of search results.
+
+ ///@}
+ /// @name Dijkstra Search Functions
+ /// @{
+
+ /// Finds the polygons along the navigation graph that touch the specified circle.
+ /// @param[in] startRef The reference id of the polygon where the search starts.
+ /// @param[in] centerPos The center of the search circle. [(x, y, z)]
+ /// @param[in] radius The radius of the search circle.
+ /// @param[in] filter The polygon filter to apply to the query.
+ /// @param[out] resultRef The reference ids of the polygons touched by the circle. [opt]
+ /// @param[out] resultParent The reference ids of the parent polygons for each result.
+ /// Zero if a result polygon has no parent. [opt]
+ /// @param[out] resultCost The search cost from @p centerPos to the polygon. [opt]
+ /// @param[out] resultCount The number of polygons found. [opt]
+ /// @param[in] maxResult The maximum number of polygons the result arrays can hold.
+ /// @returns The status flags for the query.
dtStatus findPolysAroundCircle(dtPolyRef startRef, const float* centerPos, const float radius,
const dtQueryFilter* filter,
dtPolyRef* resultRef, dtPolyRef* resultParent, float* resultCost,
int* resultCount, const int maxResult) const;
- // Finds polygons found along the navigation graph which touch the convex polygon shape.
- // Params:
- // startRef - (in) ref to the polygon where the search starts.
- // verts[3*n] - (in) vertices describing convex polygon shape (CCW).
- // nverts - (in) number of vertices in the polygon.
- // filter - (in) path polygon filter.
- // resultRef - (out, opt) refs to the polygons touched by the circle.
- // resultParent - (out, opt) parent of each result polygon.
- // resultCost - (out, opt) search cost at each result polygon.
- // resultCount - (out) number of results.
- // maxResult - (int) maximum capacity of search results.
+ /// Finds the polygons along the naviation graph that touch the specified convex polygon.
+ /// @param[in] startRef The reference id of the polygon where the search starts.
+ /// @param[in] verts The vertices describing the convex polygon. (CCW)
+ /// [(x, y, z) * @p nverts]
+ /// @param[in] nverts The number of vertices in the polygon.
+ /// @param[in] filter The polygon filter to apply to the query.
+ /// @param[out] resultRef The reference ids of the polygons touched by the search polygon. [opt]
+ /// @param[out] resultParent The reference ids of the parent polygons for each result. Zero if a
+ /// result polygon has no parent. [opt]
+ /// @param[out] resultCost The search cost from the centroid point to the polygon. [opt]
+ /// @param[out] resultCount The number of polygons found.
+ /// @param[in] maxResult The maximum number of polygons the result arrays can hold.
+ /// @returns The status flags for the query.
dtStatus findPolysAroundShape(dtPolyRef startRef, const float* verts, const int nverts,
const dtQueryFilter* filter,
dtPolyRef* resultRef, dtPolyRef* resultParent, float* resultCost,
int* resultCount, const int maxResult) const;
- // Finds non-overlapping local neighbourhood around center location.
- // Note: The algorithm is optimized for small query radius and small number of polygons.
- // Params:
- // startRef - (in) ref to the polygon where the search starts.
- // centerPos[3] - (in) center if the query circle.
- // radius - (in) radius of the query circle.
- // filter - (in) path polygon filter.
- // resultRef - (out) refs to the polygons touched by the circle.
- // resultParent - (out, opt) parent of each result polygon.
- // resultCount - (out) number of results.
- // maxResult - (int) maximum capacity of search results.
+ /// @}
+ /// @name Local Query Functions
+ ///@{
+
+ /// Finds the polygon nearest to the specified center point.
+ /// @param[in] center The center of the search box. [(x, y, z)]
+ /// @param[in] extents The search distance along each axis. [(x, y, z)]
+ /// @param[in] filter The polygon filter to apply to the query.
+ /// @param[out] nearestRef The reference id of the nearest polygon.
+ /// @param[out] nearestPt The nearest point on the polygon. [opt] [(x, y, z)]
+ /// @returns The status flags for the query.
+ dtStatus findNearestPoly(const float* center, const float* extents,
+ const dtQueryFilter* filter,
+ dtPolyRef* nearestRef, float* nearestPt) const;
+
+ /// Finds polygons that overlap the search box.
+ /// @param[in] center The center of the search box. [(x, y, z)]
+ /// @param[in] extents The search distance along each axis. [(x, y, z)]
+ /// @param[in] filter The polygon filter to apply to the query.
+ /// @param[out] polys The reference ids of the polygons that overlap the query box.
+ /// @param[out] polyCount The number of polygons in the search result.
+ /// @param[in] maxPolys The maximum number of polygons the search result can hold.
+ /// @returns The status flags for the query.
+ dtStatus queryPolygons(const float* center, const float* extents,
+ const dtQueryFilter* filter,
+ dtPolyRef* polys, int* polyCount, const int maxPolys) const;
+
+ /// Finds the non-overlapping navigation polygons in the local neighbourhood around the center position.
+ /// @param[in] startRef The reference id of the polygon where the search starts.
+ /// @param[in] centerPos The center of the query circle. [(x, y, z)]
+ /// @param[in] radius The radius of the query circle.
+ /// @param[in] filter The polygon filter to apply to the query.
+ /// @param[out] resultRef The reference ids of the polygons touched by the circle.
+ /// @param[out] resultParent The reference ids of the parent polygons for each result.
+ /// Zero if a result polygon has no parent. [opt]
+ /// @param[out] resultCount The number of polygons found.
+ /// @param[in] maxResult The maximum number of polygons the result arrays can hold.
+ /// @returns The status flags for the query.
dtStatus findLocalNeighbourhood(dtPolyRef startRef, const float* centerPos, const float radius,
const dtQueryFilter* filter,
dtPolyRef* resultRef, dtPolyRef* resultParent,
int* resultCount, const int maxResult) const;
+
+ /// Moves from the start to the end position constrained to the navigation mesh.
+ /// @param[in] startRef The reference id of the start polygon.
+ /// @param[in] startPos A position of the mover within the start polygon. [(x, y, x)]
+ /// @param[in] endPos The desired end position of the mover. [(x, y, z)]
+ /// @param[in] filter The polygon filter to apply to the query.
+ /// @param[out] resultPos The result position of the mover. [(x, y, z)]
+ /// @param[out] visited The reference ids of the polygons visited during the move.
+ /// @param[out] visitedCount The number of polygons visited during the move.
+ /// @param[in] maxVisitedSize The maximum number of polygons the @p visited array can hold.
+ /// @returns The status flags for the query.
+ dtStatus moveAlongSurface(dtPolyRef startRef, const float* startPos, const float* endPos,
+ const dtQueryFilter* filter,
+ float* resultPos, dtPolyRef* visited, int* visitedCount, const int maxVisitedSize) const;
+
+ /// Casts a 'walkability' ray along the surface of the navigation mesh from
+ /// the start position toward the end position.
+ /// @param[in] startRef The reference id of the start polygon.
+ /// @param[in] startPos A position within the start polygon representing
+ /// the start of the ray. [(x, y, z)]
+ /// @param[in] endPos The position to cast the ray toward. [(x, y, z)]
+ /// @param[out] t The hit parameter. (FLT_MAX if no wall hit.)
+ /// @param[out] hitNormal The normal of the nearest wall hit. [(x, y, z)]
+ /// @param[in] filter The polygon filter to apply to the query.
+ /// @param[out] path The reference ids of the visited polygons. [opt]
+ /// @param[out] pathCount The number of visited polygons. [opt]
+ /// @param[in] maxPath The maximum number of polygons the @p path array can hold.
+ /// @returns The status flags for the query.
+ dtStatus raycast(dtPolyRef startRef, const float* startPos, const float* endPos,
+ const dtQueryFilter* filter,
+ float* t, float* hitNormal, dtPolyRef* path, int* pathCount, const int maxPath) const;
- // Returns wall segments of specified polygon.
- // Params:
- // ref - (in) ref to the polygon.
- // filter - (in) path polygon filter.
- // segments[6*maxSegments] - (out) wall segments (2 endpoints per segment).
- // segmentCount - (out) number of wall segments.
- // maxSegments - (in) max number of segments that can be stored in 'segments'.
+ /// Finds the distance from the specified position to the nearest polygon wall.
+ /// @param[in] startRef The reference id of the polygon containing @p centerPos.
+ /// @param[in] centerPos The center of the search circle. [(x, y, z)]
+ /// @param[in] maxRadius The radius of the search circle.
+ /// @param[in] filter The polygon filter to apply to the query.
+ /// @param[out] hitDist The distance to the nearest wall from @p centerPos.
+ /// @param[out] hitPos The nearest position on the wall that was hit. [(x, y, z)]
+ /// @param[out] hitNormal The normalized ray formed from the wall point to the
+ /// source point. [(x, y, z)]
+ /// @returns The status flags for the query.
+ dtStatus findDistanceToWall(dtPolyRef startRef, const float* centerPos, const float maxRadius,
+ const dtQueryFilter* filter,
+ float* hitDist, float* hitPos, float* hitNormal) const;
+
+ /// Returns the segments for the specified polygon, optionally including portals.
+ /// @param[in] ref The reference id of the polygon.
+ /// @param[in] filter The polygon filter to apply to the query.
+ /// @param[out] segmentVerts The segments. [(ax, ay, az, bx, by, bz) * segmentCount]
+ /// @param[out] segmentRefs The reference ids of each segment's neighbor polygon.
+ /// Or zero if the segment is a wall. [opt] [(parentRef) * @p segmentCount]
+ /// @param[out] segmentCount The number of segments returned.
+ /// @param[in] maxSegments The maximum number of segments the result arrays can hold.
+ /// @returns The status flags for the query.
dtStatus getPolyWallSegments(dtPolyRef ref, const dtQueryFilter* filter,
- float* segments, int* segmentCount, const int maxSegments) const;
+ float* segmentVerts, dtPolyRef* segmentRefs, int* segmentCount,
+ const int maxSegments) const;
+
+ /// Returns random location on navmesh.
+ /// Polygons are chosen weighted by area. The search runs in linear related to number of polygon.
+ /// @param[in] filter The polygon filter to apply to the query.
+ /// @param[in] frand Function returning a random number [0..1).
+ /// @param[out] randomRef The reference id of the random location.
+ /// @param[out] randomPt The random location.
+ /// @returns The status flags for the query.
+ dtStatus findRandomPoint(const dtQueryFilter* filter, float (*frand)(),
+ dtPolyRef* randomRef, float* randomPt) const;
+
+ /// Returns random location on navmesh within the reach of specified location.
+ /// Polygons are chosen weighted by area. The search runs in linear related to number of polygon.
+ /// The location is not exactly constrained by the circle, but it limits the visited polygons.
+ /// @param[in] startRef The reference id of the polygon where the search starts.
+ /// @param[in] centerPos The center of the search circle. [(x, y, z)]
+ /// @param[in] filter The polygon filter to apply to the query.
+ /// @param[in] frand Function returning a random number [0..1).
+ /// @param[out] randomRef The reference id of the random location.
+ /// @param[out] randomPt The random location. [(x, y, z)]
+ /// @returns The status flags for the query.
+ dtStatus findRandomPointAroundCircle(dtPolyRef startRef, const float* centerPos, const float maxRadius,
+ const dtQueryFilter* filter, float (*frand)(),
+ dtPolyRef* randomRef, float* randomPt) const;
- // Returns closest point on navigation polygon.
- // Uses detail polygons to find the closest point to the navigation polygon surface.
- // Params:
- // ref - (in) ref to the polygon.
- // pos[3] - (in) the point to check.
- // closest[3] - (out) closest point.
- // Returns: true if closest point found.
+ /// Finds the closest point on the specified polygon.
+ /// @param[in] ref The reference id of the polygon.
+ /// @param[in] pos The position to check. [(x, y, z)]
+ /// @param[out] closest The closest point on the polygon. [(x, y, z)]
+ /// @returns The status flags for the query.
dtStatus closestPointOnPoly(dtPolyRef ref, const float* pos, float* closest) const;
- // Returns closest point on navigation polygon boundary.
- // Uses the navigation polygon boundary to snap the point to poly boundary
- // if it is outside the polygon. Much faster than closestPointToPoly. Does not affect height.
- // Params:
- // ref - (in) ref to the polygon.
- // pos[3] - (in) the point to check.
- // closest[3] - (out) closest point.
- // Returns: true if closest point found.
+ /// Returns a point on the boundary closest to the source point if the source point is outside the
+ /// polygon's xz-bounds.
+ /// @param[in] ref The reference id to the polygon.
+ /// @param[in] pos The position to check. [(x, y, z)]
+ /// @param[out] closest The closest point. [(x, y, z)]
+ /// @returns The status flags for the query.
dtStatus closestPointOnPolyBoundary(dtPolyRef ref, const float* pos, float* closest) const;
- // Returns start and end location of an off-mesh link polygon.
- // Params:
- // prevRef - (in) ref to the polygon before the link (used to select direction).
- // polyRef - (in) ref to the off-mesh link polygon.
- // startPos[3] - (out) start point of the link.
- // endPos[3] - (out) end point of the link.
- // Returns: true if link is found.
- dtStatus getOffMeshConnectionPolyEndPoints(dtPolyRef prevRef, dtPolyRef polyRef, float* startPos, float* endPos) const;
-
- // Returns height of the polygon at specified location.
- // Params:
- // ref - (in) ref to the polygon.
- // pos[3] - (in) the point where to locate the height.
- // height - (out) height at the location.
- // Returns: true if over polygon.
+ /// Gets the height of the polygon at the provided position using the height detail. (Most accurate.)
+ /// @param[in] ref The reference id of the polygon.
+ /// @param[in] pos A position within the xz-bounds of the polygon. [(x, y, z)]
+ /// @param[out] height The height at the surface of the polygon.
+ /// @returns The status flags for the query.
dtStatus getPolyHeight(dtPolyRef ref, const float* pos, float* height) const;
-
- // Returns true if poly reference ins in closed list.
+
+ /// @}
+ /// @name Miscellaneous Functions
+ /// @{
+
+ /// Returns true if the polygon reference is valid and passes the filter restrictions.
+ /// @param[in] ref The polygon reference to check.
+ /// @param[in] filter The filter to apply.
+ bool isValidPolyRef(dtPolyRef ref, const dtQueryFilter* filter) const;
+
+ /// Returns true if the polygon reference is in the closed list.
+ /// @param[in] ref The reference id of the polygon to check.
+ /// @returns True if the polygon is in closed list.
bool isInClosedList(dtPolyRef ref) const;
+ /// Gets the node pool.
+ /// @returns The node pool.
class dtNodePool* getNodePool() const { return m_nodePool; }
+ /// Gets the navigation mesh the query object is using.
+ /// @return The navigation mesh the query object is using.
+ const dtNavMesh* getAttachedNavMesh() const { return m_nav; }
+
+ /// @}
+
private:
- // Returns neighbour tile based on side.
+ /// Returns neighbour tile based on side.
dtMeshTile* getNeighbourTileAt(int x, int y, int side) const;
- // Queries polygons within a tile.
+ /// Queries polygons within a tile.
int queryPolygonsInTile(const dtMeshTile* tile, const float* qmin, const float* qmax, const dtQueryFilter* filter,
dtPolyRef* polys, const int maxPolys) const;
- // Find nearest polygon within a tile.
+ /// Find nearest polygon within a tile.
dtPolyRef findNearestPolyInTile(const dtMeshTile* tile, const float* center, const float* extents,
const dtQueryFilter* filter, float* nearestPt) const;
- // Returns closest point on polygon.
- dtStatus closestPointOnPolyInTile(const dtMeshTile* tile, const dtPoly* poly, const float* pos, float* closest) const;
+ /// Returns closest point on polygon.
+ void closestPointOnPolyInTile(const dtMeshTile* tile, const dtPoly* poly, const float* pos, float* closest) const;
- // Returns portal points between two polygons.
+ /// Returns portal points between two polygons.
dtStatus getPortalPoints(dtPolyRef from, dtPolyRef to, float* left, float* right,
unsigned char& fromType, unsigned char& toType) const;
dtStatus getPortalPoints(dtPolyRef from, const dtPoly* fromPoly, const dtMeshTile* fromTile,
dtPolyRef to, const dtPoly* toPoly, const dtMeshTile* toTile,
float* left, float* right) const;
- // Returns edge mid point between two polygons.
+ /// Returns edge mid point between two polygons.
dtStatus getEdgeMidPoint(dtPolyRef from, dtPolyRef to, float* mid) const;
dtStatus getEdgeMidPoint(dtPolyRef from, const dtPoly* fromPoly, const dtMeshTile* fromTile,
dtPolyRef to, const dtPoly* toPoly, const dtMeshTile* toTile,
float* mid) const;
- const dtNavMesh* m_nav; // Pointer to navmesh data.
+ // Appends vertex to a straight path
+ dtStatus appendVertex(const float* pos, const unsigned char flags, const dtPolyRef ref,
+ float* straightPath, unsigned char* straightPathFlags, dtPolyRef* straightPathRefs,
+ int* straightPathCount, const int maxStraightPath) const;
+
+ // Appends intermediate portal points to a straight path.
+ dtStatus appendPortals(const int startIdx, const int endIdx, const float* endPos, const dtPolyRef* path,
+ float* straightPath, unsigned char* straightPathFlags, dtPolyRef* straightPathRefs,
+ int* straightPathCount, const int maxStraightPath, const int options) const;
+
+ const dtNavMesh* m_nav; ///< Pointer to navmesh data.
struct dtQueryData
{
@@ -393,15 +468,21 @@ private:
float startPos[3], endPos[3];
const dtQueryFilter* filter;
};
- dtQueryData m_query; // Sliced query state.
+ dtQueryData m_query; ///< Sliced query state.
- class dtNodePool* m_tinyNodePool; // Pointer to small node pool.
- class dtNodePool* m_nodePool; // Pointer to node pool.
- class dtNodeQueue* m_openList; // Pointer to open list queue.
+ class dtNodePool* m_tinyNodePool; ///< Pointer to small node pool.
+ class dtNodePool* m_nodePool; ///< Pointer to node pool.
+ class dtNodeQueue* m_openList; ///< Pointer to open list queue.
};
-// Helper function to allocate navmesh query class using Detour allocator.
+/// Allocates a query object using the Detour allocator.
+/// @return An allocated query object, or null on failure.
+/// @ingroup detour
dtNavMeshQuery* dtAllocNavMeshQuery();
+
+/// Frees the specified query object using the Detour allocator.
+/// @param[in] query A query object allocated using #dtAllocNavMeshQuery
+/// @ingroup detour
void dtFreeNavMeshQuery(dtNavMeshQuery* query);
#endif // DETOURNAVMESHQUERY_H
diff --git a/dep/recastnavigation/Detour/DetourNode.cpp b/dep/recastnavigation/Detour/DetourNode.cpp
index 0d1af837865..4c8215e20d0 100644
--- a/dep/recastnavigation/Detour/DetourNode.cpp
+++ b/dep/recastnavigation/Detour/DetourNode.cpp
@@ -24,6 +24,7 @@
inline unsigned int dtHashRef(dtPolyRef a)
{
+ // Edited by TC
a = (~a) + (a << 18);
a = a ^ (a >> 31);
a = a * 21;
@@ -46,15 +47,15 @@ dtNodePool::dtNodePool(int maxNodes, int hashSize) :
dtAssert(m_maxNodes > 0);
m_nodes = (dtNode*)dtAlloc(sizeof(dtNode)*m_maxNodes, DT_ALLOC_PERM);
- m_next = (unsigned short*)dtAlloc(sizeof(unsigned short)*m_maxNodes, DT_ALLOC_PERM);
- m_first = (unsigned short*)dtAlloc(sizeof(unsigned short)*hashSize, DT_ALLOC_PERM);
+ m_next = (dtNodeIndex*)dtAlloc(sizeof(dtNodeIndex)*m_maxNodes, DT_ALLOC_PERM);
+ m_first = (dtNodeIndex*)dtAlloc(sizeof(dtNodeIndex)*hashSize, DT_ALLOC_PERM);
dtAssert(m_nodes);
dtAssert(m_next);
dtAssert(m_first);
- memset(m_first, 0xff, sizeof(unsigned short)*m_hashSize);
- memset(m_next, 0xff, sizeof(unsigned short)*m_maxNodes);
+ memset(m_first, 0xff, sizeof(dtNodeIndex)*m_hashSize);
+ memset(m_next, 0xff, sizeof(dtNodeIndex)*m_maxNodes);
}
dtNodePool::~dtNodePool()
@@ -66,14 +67,14 @@ dtNodePool::~dtNodePool()
void dtNodePool::clear()
{
- memset(m_first, 0xff, sizeof(unsigned short)*m_hashSize);
+ memset(m_first, 0xff, sizeof(dtNodeIndex)*m_hashSize);
m_nodeCount = 0;
}
dtNode* dtNodePool::findNode(dtPolyRef id)
{
unsigned int bucket = dtHashRef(id) & (m_hashSize-1);
- unsigned short i = m_first[bucket];
+ dtNodeIndex i = m_first[bucket];
while (i != DT_NULL_IDX)
{
if (m_nodes[i].id == id)
@@ -86,7 +87,7 @@ dtNode* dtNodePool::findNode(dtPolyRef id)
dtNode* dtNodePool::getNode(dtPolyRef id)
{
unsigned int bucket = dtHashRef(id) & (m_hashSize-1);
- unsigned short i = m_first[bucket];
+ dtNodeIndex i = m_first[bucket];
dtNode* node = 0;
while (i != DT_NULL_IDX)
{
@@ -98,7 +99,7 @@ dtNode* dtNodePool::getNode(dtPolyRef id)
if (m_nodeCount >= m_maxNodes)
return 0;
- i = (unsigned short)m_nodeCount;
+ i = (dtNodeIndex)m_nodeCount;
m_nodeCount++;
// Init node
diff --git a/dep/recastnavigation/Detour/DetourNode.h b/dep/recastnavigation/Detour/DetourNode.h
index e893f784dcc..b68c922d038 100644
--- a/dep/recastnavigation/Detour/DetourNode.h
+++ b/dep/recastnavigation/Detour/DetourNode.h
@@ -27,18 +27,20 @@ enum dtNodeFlags
DT_NODE_CLOSED = 0x02,
};
-static const unsigned short DT_NULL_IDX = 0xffff;
+typedef unsigned short dtNodeIndex;
+static const dtNodeIndex DT_NULL_IDX = (dtNodeIndex)~0;
struct dtNode
{
- float pos[3]; // Position of the node.
- float cost; // Cost from previous node to current node.
- float total; // Cost up to the node.
- unsigned int pidx : 30; // Index to parent node.
- unsigned int flags : 2; // Node flags 0/open/closed.
- dtPolyRef id; // Polygon ref the node corresponds to.
+ float pos[3]; ///< Position of the node.
+ float cost; ///< Cost from previous node to current node.
+ float total; ///< Cost up to the node.
+ unsigned int pidx : 30; ///< Index to parent node.
+ unsigned int flags : 2; ///< Node flags 0/open/closed.
+ dtPolyRef id; ///< Polygon ref the node corresponds to.
};
+
class dtNodePool
{
public:
@@ -70,22 +72,22 @@ public:
inline int getMemUsed() const
{
return sizeof(*this) +
- sizeof(dtNode)*m_maxNodes +
- sizeof(unsigned short)*m_maxNodes +
- sizeof(unsigned short)*m_hashSize;
+ sizeof(dtNode)*m_maxNodes +
+ sizeof(dtNodeIndex)*m_maxNodes +
+ sizeof(dtNodeIndex)*m_hashSize;
}
inline int getMaxNodes() const { return m_maxNodes; }
inline int getHashSize() const { return m_hashSize; }
- inline unsigned short getFirst(int bucket) const { return m_first[bucket]; }
- inline unsigned short getNext(int i) const { return m_next[i]; }
+ inline dtNodeIndex getFirst(int bucket) const { return m_first[bucket]; }
+ inline dtNodeIndex getNext(int i) const { return m_next[i]; }
private:
dtNode* m_nodes;
- unsigned short* m_first;
- unsigned short* m_next;
+ dtNodeIndex* m_first;
+ dtNodeIndex* m_next;
const int m_maxNodes;
const int m_hashSize;
int m_nodeCount;
@@ -154,4 +156,4 @@ private:
};
-#endif // DETOURNODE_H \ No newline at end of file
+#endif // DETOURNODE_H
diff --git a/dep/recastnavigation/Detour/DetourStatus.h b/dep/recastnavigation/Detour/DetourStatus.h
new file mode 100644
index 00000000000..af822c4a92d
--- /dev/null
+++ b/dep/recastnavigation/Detour/DetourStatus.h
@@ -0,0 +1,64 @@
+//
+// Copyright (c) 2009-2010 Mikko Mononen memon@inside.org
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+// 1. 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.
+// 2. Altered source versions must be plainly marked as such, and must not be
+// misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+//
+
+#ifndef DETOURSTATUS_H
+#define DETOURSTATUS_H
+
+typedef unsigned int dtStatus;
+
+// High level status.
+static const unsigned int DT_FAILURE = 1u << 31; // Operation failed.
+static const unsigned int DT_SUCCESS = 1u << 30; // Operation succeed.
+static const unsigned int DT_IN_PROGRESS = 1u << 29; // Operation still in progress.
+
+// Detail information for status.
+static const unsigned int DT_STATUS_DETAIL_MASK = 0x0ffffff;
+static const unsigned int DT_WRONG_MAGIC = 1 << 0; // Input data is not recognized.
+static const unsigned int DT_WRONG_VERSION = 1 << 1; // Input data is in wrong version.
+static const unsigned int DT_OUT_OF_MEMORY = 1 << 2; // Operation ran out of memory.
+static const unsigned int DT_INVALID_PARAM = 1 << 3; // An input parameter was invalid.
+static const unsigned int DT_BUFFER_TOO_SMALL = 1 << 4; // Result buffer for the query was too small to store all results.
+static const unsigned int DT_OUT_OF_NODES = 1 << 5; // Query ran out of nodes during search.
+static const unsigned int DT_PARTIAL_RESULT = 1 << 6; // Query did not reach the end location, returning best guess.
+
+
+// Returns true of status is success.
+inline bool dtStatusSucceed(dtStatus status)
+{
+ return (status & DT_SUCCESS) != 0;
+}
+
+// Returns true of status is failure.
+inline bool dtStatusFailed(dtStatus status)
+{
+ return (status & DT_FAILURE) != 0;
+}
+
+// Returns true of status is in progress.
+inline bool dtStatusInProgress(dtStatus status)
+{
+ return (status & DT_IN_PROGRESS) != 0;
+}
+
+// Returns true if specific detail is set.
+inline bool dtStatusDetail(dtStatus status, unsigned int detail)
+{
+ return (status & detail) != 0;
+}
+
+#endif // DETOURSTATUS_H
diff --git a/dep/recastnavigation/Recast/CMakeLists.txt b/dep/recastnavigation/Recast/CMakeLists.txt
index 726aff72c0c..5f466a4b2e2 100644
--- a/dep/recastnavigation/Recast/CMakeLists.txt
+++ b/dep/recastnavigation/Recast/CMakeLists.txt
@@ -14,6 +14,7 @@ set(Recast_STAT_SRCS
RecastArea.cpp
RecastContour.cpp
RecastFilter.cpp
+ RecastLayers.cpp
RecastMesh.cpp
RecastMeshDetail.cpp
RecastRasterization.cpp
diff --git a/dep/recastnavigation/Recast/Recast.cpp b/dep/recastnavigation/Recast/Recast.cpp
index d051418e810..803daac3bcf 100644
--- a/dep/recastnavigation/Recast/Recast.cpp
+++ b/dep/recastnavigation/Recast/Recast.cpp
@@ -32,7 +32,26 @@ float rcSqrt(float x)
return sqrtf(x);
}
+/// @class rcContext
+/// @par
+///
+/// This class does not provide logging or timer functionality on its
+/// own. Both must be provided by a concrete implementation
+/// by overriding the protected member functions. Also, this class does not
+/// provide an interface for extracting log messages. (Only adding them.)
+/// So concrete implementations must provide one.
+///
+/// If no logging or timers are required, just pass an instance of this
+/// class through the Recast build process.
+///
+/// @par
+///
+/// Example:
+/// @code
+/// // Where ctx is an instance of rcContext and filepath is a char array.
+/// ctx->log(RC_LOG_ERROR, "buildTiledNavigation: Could not load '%s'", filepath);
+/// @endcode
void rcContext::log(const rcLogCategory category, const char* format, ...)
{
if (!m_logEnabled)
@@ -90,6 +109,28 @@ void rcFreeCompactHeightfield(rcCompactHeightfield* chf)
rcFree(chf);
}
+
+rcHeightfieldLayerSet* rcAllocHeightfieldLayerSet()
+{
+ rcHeightfieldLayerSet* lset = (rcHeightfieldLayerSet*)rcAlloc(sizeof(rcHeightfieldLayerSet), RC_ALLOC_PERM);
+ memset(lset, 0, sizeof(rcHeightfieldLayerSet));
+ return lset;
+}
+
+void rcFreeHeightfieldLayerSet(rcHeightfieldLayerSet* lset)
+{
+ if (!lset) return;
+ for (int i = 0; i < lset->nlayers; ++i)
+ {
+ rcFree(lset->layers[i].heights);
+ rcFree(lset->layers[i].areas);
+ rcFree(lset->layers[i].cons);
+ }
+ rcFree(lset->layers);
+ rcFree(lset);
+}
+
+
rcContourSet* rcAllocContourSet()
{
rcContourSet* cset = (rcContourSet*)rcAlloc(sizeof(rcContourSet), RC_ALLOC_PERM);
@@ -143,7 +184,6 @@ void rcFreePolyMeshDetail(rcPolyMeshDetail* dmesh)
rcFree(dmesh);
}
-
void rcCalcBounds(const float* verts, int nv, float* bmin, float* bmax)
{
// Calculate bounding box.
@@ -163,6 +203,11 @@ void rcCalcGridSize(const float* bmin, const float* bmax, float cs, int* w, int*
*h = (int)((bmax[2] - bmin[2])/cs+0.5f);
}
+/// @par
+///
+/// See the #rcConfig documentation for more information on the configuration parameters.
+///
+/// @see rcAllocHeightfield, rcHeightfield
bool rcCreateHeightfield(rcContext* /*ctx*/, rcHeightfield& hf, int width, int height,
const float* bmin, const float* bmax,
float cs, float ch)
@@ -192,6 +237,14 @@ static void calcTriNormal(const float* v0, const float* v1, const float* v2, flo
rcVnormalize(norm);
}
+/// @par
+///
+/// Only sets the aread id's for the walkable triangles. Does not alter the
+/// area id's for unwalkable triangles.
+///
+/// See the #rcConfig documentation for more information on the configuration parameters.
+///
+/// @see rcHeightfield, rcClearUnwalkableTriangles, rcRasterizeTriangles
void rcMarkWalkableTriangles(rcContext* /*ctx*/, const float walkableSlopeAngle,
const float* verts, int /*nv*/,
const int* tris, int nt,
@@ -214,6 +267,14 @@ void rcMarkWalkableTriangles(rcContext* /*ctx*/, const float walkableSlopeAngle,
}
}
+/// @par
+///
+/// Only sets the aread id's for the unwalkable triangles. Does not alter the
+/// area id's for walkable triangles.
+///
+/// See the #rcConfig documentation for more information on the configuration parameters.
+///
+/// @see rcHeightfield, rcClearUnwalkableTriangles, rcRasterizeTriangles
void rcClearUnwalkableTriangles(rcContext* /*ctx*/, const float walkableSlopeAngle,
const float* verts, int /*nv*/,
const int* tris, int nt,
@@ -258,6 +319,15 @@ int rcGetHeightFieldSpanCount(rcContext* /*ctx*/, rcHeightfield& hf)
return spanCount;
}
+/// @par
+///
+/// This is just the beginning of the process of fully building a compact heightfield.
+/// Various filters may be applied applied, then the distance field and regions built.
+/// E.g: #rcBuildDistanceField and #rcBuildRegions
+///
+/// See the #rcConfig documentation for more information on the configuration parameters.
+///
+/// @see rcAllocCompactHeightfield, rcHeightfield, rcCompactHeightfield, rcConfig
bool rcBuildCompactHeightfield(rcContext* ctx, const int walkableHeight, const int walkableClimb,
rcHeightfield& hf, rcCompactHeightfield& chf)
{
@@ -369,13 +439,13 @@ bool rcBuildCompactHeightfield(rcContext* ctx, const int walkableHeight, const i
if ((top - bot) >= walkableHeight && rcAbs((int)ns.y - (int)s.y) <= walkableClimb)
{
// Mark direction as walkable.
- const int idx = k - (int)nc.index;
- if (idx < 0 || idx > MAX_LAYERS)
+ const int lidx = k - (int)nc.index;
+ if (lidx < 0 || lidx > MAX_LAYERS)
{
- tooHighNeighbour = rcMax(tooHighNeighbour, idx);
+ tooHighNeighbour = rcMax(tooHighNeighbour, lidx);
continue;
}
- rcSetCon(s, dir, idx);
+ rcSetCon(s, dir, lidx);
break;
}
}
diff --git a/dep/recastnavigation/Recast/Recast.h b/dep/recastnavigation/Recast/Recast.h
index 0e5f0742486..fb36aa4c5cf 100644
--- a/dep/recastnavigation/Recast/Recast.h
+++ b/dep/recastnavigation/Recast/Recast.h
@@ -19,327 +19,583 @@
#ifndef RECAST_H
#define RECAST_H
-// Some math headers don't have PI defined.
+/// The value of PI used by Recast.
static const float RC_PI = 3.14159265f;
+/// Recast log categories.
+/// @see rcContext
enum rcLogCategory
{
- RC_LOG_PROGRESS = 1,
- RC_LOG_WARNING,
- RC_LOG_ERROR,
+ RC_LOG_PROGRESS = 1, ///< A progress log entry.
+ RC_LOG_WARNING, ///< A warning log entry.
+ RC_LOG_ERROR, ///< An error log entry.
};
+/// Recast performance timer categories.
+/// @see rcContext
enum rcTimerLabel
{
+ /// The user defined total time of the build.
RC_TIMER_TOTAL,
+ /// A user defined build time.
RC_TIMER_TEMP,
+ /// The time to rasterize the triangles. (See: #rcRasterizeTriangle)
RC_TIMER_RASTERIZE_TRIANGLES,
+ /// The time to build the compact heightfield. (See: #rcBuildCompactHeightfield)
RC_TIMER_BUILD_COMPACTHEIGHTFIELD,
+ /// The total time to build the contours. (See: #rcBuildContours)
RC_TIMER_BUILD_CONTOURS,
+ /// The time to trace the boundaries of the contours. (See: #rcBuildContours)
RC_TIMER_BUILD_CONTOURS_TRACE,
+ /// The time to simplify the contours. (See: #rcBuildContours)
RC_TIMER_BUILD_CONTOURS_SIMPLIFY,
+ /// The time to filter ledge spans. (See: #rcFilterLedgeSpans)
RC_TIMER_FILTER_BORDER,
+ /// The time to filter low height spans. (See: #rcFilterWalkableLowHeightSpans)
RC_TIMER_FILTER_WALKABLE,
+ /// The time to apply the median filter. (See: #rcMedianFilterWalkableArea)
RC_TIMER_MEDIAN_AREA,
+ /// The time to filter low obstacles. (See: #rcFilterLowHangingWalkableObstacles)
RC_TIMER_FILTER_LOW_OBSTACLES,
+ /// The time to build the polygon mesh. (See: #rcBuildPolyMesh)
RC_TIMER_BUILD_POLYMESH,
+ /// The time to merge polygon meshes. (See: #rcMergePolyMeshes)
RC_TIMER_MERGE_POLYMESH,
+ /// The time to erode the walkable area. (See: #rcErodeWalkableArea)
RC_TIMER_ERODE_AREA,
+ /// The time to mark a box area. (See: #rcMarkBoxArea)
RC_TIMER_MARK_BOX_AREA,
+ /// The time to mark a cylinder area. (See: #rcMarkCylinderArea)
+ RC_TIMER_MARK_CYLINDER_AREA,
+ /// The time to mark a convex polygon area. (See: #rcMarkConvexPolyArea)
RC_TIMER_MARK_CONVEXPOLY_AREA,
+ /// The total time to build the distance field. (See: #rcBuildDistanceField)
RC_TIMER_BUILD_DISTANCEFIELD,
+ /// The time to build the distances of the distance field. (See: #rcBuildDistanceField)
RC_TIMER_BUILD_DISTANCEFIELD_DIST,
+ /// The time to blur the distance field. (See: #rcBuildDistanceField)
RC_TIMER_BUILD_DISTANCEFIELD_BLUR,
+ /// The total time to build the regions. (See: #rcBuildRegions, #rcBuildRegionsMonotone)
RC_TIMER_BUILD_REGIONS,
+ /// The total time to apply the watershed algorithm. (See: #rcBuildRegions)
RC_TIMER_BUILD_REGIONS_WATERSHED,
+ /// The time to expand regions while applying the watershed algorithm. (See: #rcBuildRegions)
RC_TIMER_BUILD_REGIONS_EXPAND,
+ /// The time to flood regions while applying the watershed algorithm. (See: #rcBuildRegions)
RC_TIMER_BUILD_REGIONS_FLOOD,
+ /// The time to filter out small regions. (See: #rcBuildRegions, #rcBuildRegionsMonotone)
RC_TIMER_BUILD_REGIONS_FILTER,
+ /// The time to build heightfield layers. (See: #rcBuildHeightfieldLayers)
+ RC_TIMER_BUILD_LAYERS,
+ /// The time to build the polygon mesh detail. (See: #rcBuildPolyMeshDetail)
RC_TIMER_BUILD_POLYMESHDETAIL,
+ /// The time to merge polygon mesh details. (See: #rcMergePolyMeshDetails)
RC_TIMER_MERGE_POLYMESHDETAIL,
+ /// The maximum number of timers. (Used for iterating timers.)
RC_MAX_TIMERS
};
-// Build context provides several optional utilities needed for the build process,
-// such as timing, logging, and build time collecting.
+/// Provides an interface for optional logging and performance tracking of the Recast
+/// build process.
+/// @ingroup recast
class rcContext
{
public:
+
+ /// Contructor.
+ /// @param[in] state TRUE if the logging and performance timers should be enabled. [Default: true]
inline rcContext(bool state = true) : m_logEnabled(state), m_timerEnabled(state) {}
virtual ~rcContext() {}
- // Enables or disables logging.
+ /// Enables or disables logging.
+ /// @param[in] state TRUE if logging should be enabled.
inline void enableLog(bool state) { m_logEnabled = state; }
- // Resets log.
+
+ /// Clears all log entries.
inline void resetLog() { if (m_logEnabled) doResetLog(); }
- // Logs a message.
+
+ /// Logs a message.
+ /// @param[in] category The category of the message.
+ /// @param[in] format The message.
void log(const rcLogCategory category, const char* format, ...);
- // Enables or disables timer.
+ /// Enables or disables the performance timers.
+ /// @param[in] state TRUE if timers should be enabled.
inline void enableTimer(bool state) { m_timerEnabled = state; }
- // Resets all timers.
+
+ /// Clears all peformance timers. (Resets all to unused.)
inline void resetTimers() { if (m_timerEnabled) doResetTimers(); }
- // Starts timer, used for performance timing.
+
+ /// Starts the specified performance timer.
+ /// @param label The category of timer.
inline void startTimer(const rcTimerLabel label) { if (m_timerEnabled) doStartTimer(label); }
- // Stops timer, used for performance timing.
+
+ /// Stops the specified performance timer.
+ /// @param label The category of the timer.
inline void stopTimer(const rcTimerLabel label) { if (m_timerEnabled) doStopTimer(label); }
- // Returns time accumulated between timer start/stop.
+
+ /// Returns the total accumulated time of the specified performance timer.
+ /// @param label The category of the timer.
+ /// @return The accumulated time of the timer, or -1 if timers are disabled or the timer has never been started.
inline int getAccumulatedTime(const rcTimerLabel label) const { return m_timerEnabled ? doGetAccumulatedTime(label) : -1; }
protected:
- // Virtual functions to override for custom implementations.
+
+ /// Clears all log entries.
virtual void doResetLog() {}
+
+ /// Logs a message.
+ /// @param[in] category The category of the message.
+ /// @param[in] msg The formatted message.
+ /// @param[in] len The length of the formatted message.
virtual void doLog(const rcLogCategory /*category*/, const char* /*msg*/, const int /*len*/) {}
+
+ /// Clears all timers. (Resets all to unused.)
virtual void doResetTimers() {}
+
+ /// Starts the specified performance timer.
+ /// @param[in] label The category of timer.
virtual void doStartTimer(const rcTimerLabel /*label*/) {}
+
+ /// Stops the specified performance timer.
+ /// @param[in] label The category of the timer.
virtual void doStopTimer(const rcTimerLabel /*label*/) {}
+
+ /// Returns the total accumulated time of the specified performance timer.
+ /// @param[in] label The category of the timer.
+ /// @return The accumulated time of the timer, or -1 if timers are disabled or the timer has never been started.
virtual int doGetAccumulatedTime(const rcTimerLabel /*label*/) const { return -1; }
+ /// True if logging is enabled.
bool m_logEnabled;
+
+ /// True if the performance timers are enabled.
bool m_timerEnabled;
};
-
-// The units of the parameters are specified in parenthesis as follows:
-// (vx) voxels, (wu) world units
+/// Specifies a configuration to use when performing Recast builds.
+/// @ingroup recast
struct rcConfig
{
- int width, height; // Dimensions of the rasterized heightfield (vx)
- int tileSize; // Width and Height of a tile (vx)
- int borderSize; // Non-navigable Border around the heightfield (vx)
- float cs, ch; // Grid cell size and height (wu)
- float bmin[3], bmax[3]; // Grid bounds (wu)
- float walkableSlopeAngle; // Maximum walkable slope angle in degrees.
- int walkableHeight; // Minimum height where the agent can still walk (vx)
- int walkableClimb; // Maximum height between grid cells the agent can climb (vx)
- int walkableRadius; // Radius of the agent in cells (vx)
- int maxEdgeLen; // Maximum contour edge length (vx)
- float maxSimplificationError; // Maximum distance error from contour to cells (vx)
- int minRegionArea; // Regions whose area is smaller than this threshold will be removed. (vx)
- int mergeRegionArea; // Regions whose area is smaller than this threshold will be merged (vx)
- int maxVertsPerPoly; // Max number of vertices per polygon
- float detailSampleDist; // Detail mesh sample spacing.
- float detailSampleMaxError; // Detail mesh simplification max sample error.
+ /// The width of the field along the x-axis. [Limit: >= 0] [Units: vx]
+ int width;
+
+ /// The height of the field along the z-axis. [Limit: >= 0] [Units: vx]
+ int height;
+
+ /// The width/height size of tile's on the xz-plane. [Limit: >= 0] [Units: vx]
+ int tileSize;
+
+ /// The size of the non-navigable border around the heightfield. [Limit: >=0] [Units: vx]
+ int borderSize;
+
+ /// The xz-plane cell size to use for fields. [Limit: > 0] [Units: wu]
+ float cs;
+
+ /// The y-axis cell size to use for fields. [Limit: > 0] [Units: wu]
+ float ch;
+
+ /// The minimum bounds of the field's AABB. [(x, y, z)] [Units: wu]
+ float bmin[3];
+
+ /// The maximum bounds of the field's AABB. [(x, y, z)] [Units: wu]
+ float bmax[3];
+
+ /// The maximum slope that is considered walkable. [Limits: 0 <= value < 90] [Units: Degrees]
+ float walkableSlopeAngle;
+
+ /// Minimum floor to 'ceiling' height that will still allow the floor area to
+ /// be considered walkable. [Limit: >= 3] [Units: vx]
+ int walkableHeight;
+
+ /// Maximum ledge height that is considered to still be traversable. [Limit: >=0] [Units: vx]
+ int walkableClimb;
+
+ /// The distance to erode/shrink the walkable area of the heightfield away from
+ /// obstructions. [Limit: >=0] [Units: vx]
+ int walkableRadius;
+
+ /// The maximum allowed length for contour edges along the border of the mesh. [Limit: >=0] [Units: vx]
+ int maxEdgeLen;
+
+ /// The maximum distance a simplfied contour's border edges should deviate
+ /// the original raw contour. [Limit: >=0] [Units: wu]
+ float maxSimplificationError;
+
+ /// The minimum number of cells allowed to form isolated island areas. [Limit: >=0] [Units: vx]
+ int minRegionArea;
+
+ /// Any regions with a span count smaller than this value will, if possible,
+ /// be merged with larger regions. [Limit: >=0] [Units: vx]
+ int mergeRegionArea;
+
+ /// The maximum number of vertices allowed for polygons generated during the
+ /// contour to polygon conversion process. [Limit: >= 3]
+ int maxVertsPerPoly;
+
+ /// Sets the sampling distance to use when generating the detail mesh.
+ /// (For height detail only.) [Limits: 0 or >= 0.9] [Units: wu]
+ float detailSampleDist;
+
+ /// The maximum distance the detail mesh surface should deviate from heightfield
+ /// data. (For height detail only.) [Limit: >=0] [Units: wu]
+ float detailSampleMaxError;
};
-// Define number of bits in the above structure for smin/smax.
-// The max height is used for clamping rasterized values.
-static const int RC_SPAN_HEIGHT_BITS = 16;
+/// Defines the number of bits allocated to rcSpan::smin and rcSpan::smax.
+static const int RC_SPAN_HEIGHT_BITS = 16; // EDITED BY TC
+/// Defines the maximum value for rcSpan::smin and rcSpan::smax.
static const int RC_SPAN_MAX_HEIGHT = (1<<RC_SPAN_HEIGHT_BITS)-1;
-// Heightfield span.
+/// The number of spans allocated per span spool.
+/// @see rcSpanPool
+static const int RC_SPANS_PER_POOL = 2048;
+
+/// Represents a span in a heightfield.
+/// @see rcHeightfield
struct rcSpan
{
- unsigned int smin : 16; // Span min height.
- unsigned int smax : 16; // Span max height.
- unsigned char area; // Span area type.
- rcSpan* next; // Next span in column.
+ unsigned int smin : 16; ///< The lower limit of the span. [Limit: < #smax]
+ unsigned int smax : 16; ///< The upper limit of the span. [Limit: <= #RC_SPAN_MAX_HEIGHT]
+ unsigned char area; ///< The area id assigned to the span.
+ rcSpan* next; ///< The next span higher up in column.
};
-// Number of spans allocated per pool.
-static const int RC_SPANS_PER_POOL = 2048;
-
-// Memory pool used for quick span allocation.
+/// A memory pool used for quick allocation of spans within a heightfield.
+/// @see rcHeightfield
struct rcSpanPool
{
- rcSpanPool* next; // Pointer to next pool.
- rcSpan items[RC_SPANS_PER_POOL]; // Array of spans.
+ rcSpanPool* next; ///< The next span pool.
+ rcSpan items[RC_SPANS_PER_POOL]; ///< Array of spans in the pool.
};
-// Dynamic span-heightfield.
+/// A dynamic heightfield representing obstructed space.
+/// @ingroup recast
struct rcHeightfield
{
- int width, height; // Dimension of the heightfield.
- float bmin[3], bmax[3]; // Bounding box of the heightfield
- float cs, ch; // Cell size and height.
- rcSpan** spans; // Heightfield of spans (width*height).
- rcSpanPool* pools; // Linked list of span pools.
- rcSpan* freelist; // Pointer to next free span.
+ int width; ///< The width of the heightfield. (Along the x-axis in cell units.)
+ int height; ///< The height of the heightfield. (Along the z-axis in cell units.)
+ float bmin[3]; ///< The minimum bounds in world space. [(x, y, z)]
+ float bmax[3]; ///< The maximum bounds in world space. [(x, y, z)]
+ float cs; ///< The size of each cell. (On the xz-plane.)
+ float ch; ///< The height of each cell. (The minimum increment along the y-axis.)
+ rcSpan** spans; ///< Heightfield of spans (width*height).
+ rcSpanPool* pools; ///< Linked list of span pools.
+ rcSpan* freelist; ///< The next free span.
};
-rcHeightfield* rcAllocHeightfield();
-void rcFreeHeightField(rcHeightfield* hf);
-
-
+/// Provides information on the content of a cell column in a compact heightfield.
struct rcCompactCell
{
- unsigned int index : 24; // Index to first span in column.
- unsigned int count : 8; // Number of spans in this column.
+ unsigned int index : 24; ///< Index to the first span in the column.
+ unsigned int count : 8; ///< Number of spans in the column.
};
+/// Represents a span of unobstructed space within a compact heightfield.
struct rcCompactSpan
{
- unsigned short y; // Bottom coordinate of the span.
- unsigned short reg;
- unsigned int con : 24; // Connections to neighbour cells.
- unsigned int h : 8; // Height of the span.
+ unsigned short y; ///< The lower extent of the span. (Measured from the heightfield's base.)
+ unsigned short reg; ///< The id of the region the span belongs to. (Or zero if not in a region.)
+ unsigned int con : 24; ///< Packed neighbor connection data.
+ unsigned int h : 8; ///< The height of the span. (Measured from #y.)
};
-// Compact static heightfield.
+/// A compact, static heightfield representing unobstructed space.
+/// @ingroup recast
struct rcCompactHeightfield
{
- int width, height; // Width and height of the heightfield.
- int spanCount; // Number of spans in the heightfield.
- int walkableHeight, walkableClimb; // Agent properties.
- unsigned short maxDistance; // Maximum distance value stored in heightfield.
- unsigned short maxRegions; // Maximum Region Id stored in heightfield.
- float bmin[3], bmax[3]; // Bounding box of the heightfield.
- float cs, ch; // Cell size and height.
- rcCompactCell* cells; // Pointer to width*height cells.
- rcCompactSpan* spans; // Pointer to spans.
- unsigned short* dist; // Pointer to per span distance to border.
- unsigned char* areas; // Pointer to per span area ID.
+ int width; ///< The width of the heightfield. (Along the x-axis in cell units.)
+ int height; ///< The height of the heightfield. (Along the z-axis in cell units.)
+ int spanCount; ///< The number of spans in the heightfield.
+ int walkableHeight; ///< The walkable height used during the build of the field. (See: rcConfig::walkableHeight)
+ int walkableClimb; ///< The walkable climb used during the build of the field. (See: rcConfig::walkableClimb)
+ int borderSize; ///< The AABB border size used during the build of the field. (See: rcConfig::borderSize)
+ unsigned short maxDistance; ///< The maximum distance value of any span within the field.
+ unsigned short maxRegions; ///< The maximum region id of any span within the field.
+ float bmin[3]; ///< The minimum bounds in world space. [(x, y, z)]
+ float bmax[3]; ///< The maximum bounds in world space. [(x, y, z)]
+ float cs; ///< The size of each cell. (On the xz-plane.)
+ float ch; ///< The height of each cell. (The minimum increment along the y-axis.)
+ rcCompactCell* cells; ///< Array of cells. [Size: #width*#height]
+ rcCompactSpan* spans; ///< Array of spans. [Size: #spanCount]
+ unsigned short* dist; ///< Array containing border distance data. [Size: #spanCount]
+ unsigned char* areas; ///< Array containing area id data. [Size: #spanCount]
};
-rcCompactHeightfield* rcAllocCompactHeightfield();
-void rcFreeCompactHeightfield(rcCompactHeightfield* chf);
+/// Represents a heightfield layer within a layer set.
+/// @see rcHeightfieldLayerSet
+struct rcHeightfieldLayer
+{
+ float bmin[3]; ///< The minimum bounds in world space. [(x, y, z)]
+ float bmax[3]; ///< The maximum bounds in world space. [(x, y, z)]
+ float cs; ///< The size of each cell. (On the xz-plane.)
+ float ch; ///< The height of each cell. (The minimum increment along the y-axis.)
+ int width; ///< The width of the heightfield. (Along the x-axis in cell units.)
+ int height; ///< The height of the heightfield. (Along the z-axis in cell units.)
+ int minx; ///< The minimum x-bounds of usable data.
+ int maxx; ///< The maximum x-bounds of usable data.
+ int miny; ///< The minimum y-bounds of usable data. (Along the z-axis.)
+ int maxy; ///< The maximum y-bounds of usable data. (Along the z-axis.)
+ int hmin; ///< The minimum height bounds of usable data. (Along the y-axis.)
+ int hmax; ///< The maximum height bounds of usable data. (Along the y-axis.)
+ unsigned char* heights; ///< The heightfield. [Size: (width - borderSize*2) * (h - borderSize*2)]
+ unsigned char* areas; ///< Area ids. [Size: Same as #heights]
+ unsigned char* cons; ///< Packed neighbor connection information. [Size: Same as #heights]
+};
+/// Represents a set of heightfield layers.
+/// @ingroup recast
+/// @see rcAllocHeightfieldLayerSet, rcFreeHeightfieldLayerSet
+struct rcHeightfieldLayerSet
+{
+ rcHeightfieldLayer* layers; ///< The layers in the set. [Size: #nlayers]
+ int nlayers; ///< The number of layers in the set.
+};
+/// Represents a simple, non-overlapping contour in field space.
struct rcContour
{
- int* verts; // Vertex coordinates, each vertex contains 4 components.
- int nverts; // Number of vertices.
- int* rverts; // Raw vertex coordinates, each vertex contains 4 components.
- int nrverts; // Number of raw vertices.
- unsigned short reg; // Region ID of the contour.
- unsigned char area; // Area ID of the contour.
+ int* verts; ///< Simplified contour vertex and connection data. [Size: 4 * #nverts]
+ int nverts; ///< The number of vertices in the simplified contour.
+ int* rverts; ///< Raw contour vertex and connection data. [Size: 4 * #nrverts]
+ int nrverts; ///< The number of vertices in the raw contour.
+ unsigned short reg; ///< The region id of the contour.
+ unsigned char area; ///< The area id of the contour.
};
+/// Represents a group of related contours.
+/// @ingroup recast
struct rcContourSet
{
- rcContour* conts; // Pointer to all contours.
- int nconts; // Number of contours.
- float bmin[3], bmax[3]; // Bounding box of the heightfield.
- float cs, ch; // Cell size and height.
+ rcContour* conts; ///< An array of the contours in the set. [Size: #nconts]
+ int nconts; ///< The number of contours in the set.
+ float bmin[3]; ///< The minimum bounds in world space. [(x, y, z)]
+ float bmax[3]; ///< The maximum bounds in world space. [(x, y, z)]
+ float cs; ///< The size of each cell. (On the xz-plane.)
+ float ch; ///< The height of each cell. (The minimum increment along the y-axis.)
+ int width; ///< The width of the set. (Along the x-axis in cell units.)
+ int height; ///< The height of the set. (Along the z-axis in cell units.)
+ int borderSize; ///< The AABB border size used to generate the source data from which the contours were derived.
};
-rcContourSet* rcAllocContourSet();
-void rcFreeContourSet(rcContourSet* cset);
-
-
-// Polymesh store a connected mesh of polygons.
-// The polygons are store in an array where each polygons takes
-// 'nvp*2' elements. The first 'nvp' elements are indices to vertices
-// and the second 'nvp' elements are indices to neighbour polygons.
-// If a polygon has less than 'bvp' vertices, the remaining indices
-// are set to RC_MESH_NULL_IDX. If an polygon edge does not have a neighbour
-// the neighbour index is set to RC_MESH_NULL_IDX.
-// Vertices can be transformed into world space as follows:
-// x = bmin[0] + verts[i*3+0]*cs;
-// y = bmin[1] + verts[i*3+1]*ch;
-// z = bmin[2] + verts[i*3+2]*cs;
+/// Represents a polygon mesh suitable for use in building a navigation mesh.
+/// @ingroup recast
struct rcPolyMesh
-{
- unsigned short* verts; // Vertices of the mesh, 3 elements per vertex.
- unsigned short* polys; // Polygons of the mesh, nvp*2 elements per polygon.
- unsigned short* regs; // Region ID of the polygons.
- unsigned short* flags; // Per polygon flags.
- unsigned char* areas; // Area ID of polygons.
- int nverts; // Number of vertices.
- int npolys; // Number of polygons.
- int maxpolys; // Number of allocated polygons.
- int nvp; // Max number of vertices per polygon.
- float bmin[3], bmax[3]; // Bounding box of the mesh.
- float cs, ch; // Cell size and height.
+{
+ unsigned short* verts; ///< The mesh vertices. [Form: (x, y, z) * #nverts]
+ unsigned short* polys; ///< Polygon and neighbor data. [Length: #maxpolys * 2 * #nvp]
+ unsigned short* regs; ///< The region id assigned to each polygon. [Length: #maxpolys]
+ unsigned short* flags; ///< The user defined flags for each polygon. [Length: #maxpolys]
+ unsigned char* areas; ///< The area id assigned to each polygon. [Length: #maxpolys]
+ int nverts; ///< The number of vertices.
+ int npolys; ///< The number of polygons.
+ int maxpolys; ///< The number of allocated polygons.
+ int nvp; ///< The maximum number of vertices per polygon.
+ float bmin[3]; ///< The minimum bounds in world space. [(x, y, z)]
+ float bmax[3]; ///< The maximum bounds in world space. [(x, y, z)]
+ float cs; ///< The size of each cell. (On the xz-plane.)
+ float ch; ///< The height of each cell. (The minimum increment along the y-axis.)
+ int borderSize; ///< The AABB border size used to generate the source data from which the mesh was derived.
};
-rcPolyMesh* rcAllocPolyMesh();
-void rcFreePolyMesh(rcPolyMesh* pmesh);
-
-
-// Detail mesh generated from a rcPolyMesh.
-// Each submesh represents a polygon in the polymesh and they are stored in
-// exactly same order. Each submesh is described as 4 values:
-// base vertex, vertex count, base triangle, triangle count. That is,
-// const unsigned char* t = &dmesh.tris[(tbase+i)*3]; and
-// const float* v = &dmesh.verts[(vbase+t[j])*3];
-// If the input polygon has 'n' vertices, those vertices are first in the
-// submesh vertex list. This allows to compres the mesh by not storing the
-// first vertices and using the polymesh vertices instead.
-// Max number of vertices per submesh is 127 and
-// max number of triangles per submesh is 255.
-
+/// Contains triangle meshes that represent detailed height data associated
+/// with the polygons in its associated polygon mesh object.
+/// @ingroup recast
struct rcPolyMeshDetail
{
- unsigned int* meshes; // Pointer to all mesh data.
- float* verts; // Pointer to all vertex data.
- unsigned char* tris; // Pointer to all triangle data.
- int nmeshes; // Number of meshes.
- int nverts; // Number of total vertices.
- int ntris; // Number of triangles.
+ unsigned int* meshes; ///< The sub-mesh data. [Size: 4*#nmeshes]
+ float* verts; ///< The mesh vertices. [Size: 3*#nverts]
+ unsigned char* tris; ///< The mesh triangles. [Size: 4*#ntris]
+ int nmeshes; ///< The number of sub-meshes defined by #meshes.
+ int nverts; ///< The number of vertices in #verts.
+ int ntris; ///< The number of triangles in #tris.
};
+/// @name Allocation Functions
+/// Functions used to allocate and de-allocate Recast objects.
+/// @see rcAllocSetCustom
+/// @{
+
+/// Allocates a heightfield object using the Recast allocator.
+/// @return A heightfield that is ready for initialization, or null on failure.
+/// @ingroup recast
+/// @see rcCreateHeightfield, rcFreeHeightField
+rcHeightfield* rcAllocHeightfield();
+
+/// Frees the specified heightfield object using the Recast allocator.
+/// @param[in] hf A heightfield allocated using #rcAllocHeightfield
+/// @ingroup recast
+/// @see rcAllocHeightfield
+void rcFreeHeightField(rcHeightfield* hf);
+
+/// Allocates a compact heightfield object using the Recast allocator.
+/// @return A compact heightfield that is ready for initialization, or null on failure.
+/// @ingroup recast
+/// @see rcBuildCompactHeightfield, rcFreeCompactHeightfield
+rcCompactHeightfield* rcAllocCompactHeightfield();
+
+/// Frees the specified compact heightfield object using the Recast allocator.
+/// @param[in] chf A compact heightfield allocated using #rcAllocCompactHeightfield
+/// @ingroup recast
+/// @see rcAllocCompactHeightfield
+void rcFreeCompactHeightfield(rcCompactHeightfield* chf);
+
+/// Allocates a heightfield layer set using the Recast allocator.
+/// @return A heightfield layer set that is ready for initialization, or null on failure.
+/// @ingroup recast
+/// @see rcBuildHeightfieldLayers, rcFreeHeightfieldLayerSet
+rcHeightfieldLayerSet* rcAllocHeightfieldLayerSet();
+
+/// Frees the specified heightfield layer set using the Recast allocator.
+/// @param[in] lset A heightfield layer set allocated using #rcAllocHeightfieldLayerSet
+/// @ingroup recast
+/// @see rcAllocHeightfieldLayerSet
+void rcFreeHeightfieldLayerSet(rcHeightfieldLayerSet* lset);
+
+/// Allocates a contour set object using the Recast allocator.
+/// @return A contour set that is ready for initialization, or null on failure.
+/// @ingroup recast
+/// @see rcBuildContours, rcFreeContourSet
+rcContourSet* rcAllocContourSet();
+
+/// Frees the specified contour set using the Recast allocator.
+/// @param[in] cset A contour set allocated using #rcAllocContourSet
+/// @ingroup recast
+/// @see rcAllocContourSet
+void rcFreeContourSet(rcContourSet* cset);
+
+/// Allocates a polygon mesh object using the Recast allocator.
+/// @return A polygon mesh that is ready for initialization, or null on failure.
+/// @ingroup recast
+/// @see rcBuildPolyMesh, rcFreePolyMesh
+rcPolyMesh* rcAllocPolyMesh();
+
+/// Frees the specified polygon mesh using the Recast allocator.
+/// @param[in] pmesh A polygon mesh allocated using #rcAllocPolyMesh
+/// @ingroup recast
+/// @see rcAllocPolyMesh
+void rcFreePolyMesh(rcPolyMesh* pmesh);
+
+/// Allocates a detail mesh object using the Recast allocator.
+/// @return A detail mesh that is ready for initialization, or null on failure.
+/// @ingroup recast
+/// @see rcBuildPolyMeshDetail, rcFreePolyMeshDetail
rcPolyMeshDetail* rcAllocPolyMeshDetail();
+
+/// Frees the specified detail mesh using the Recast allocator.
+/// @param[in] dmesh A detail mesh allocated using #rcAllocPolyMeshDetail
+/// @ingroup recast
+/// @see rcAllocPolyMeshDetail
void rcFreePolyMeshDetail(rcPolyMeshDetail* dmesh);
+/// @}
-// If heightfield region ID has the following bit set, the region is on border area
-// and excluded from many calculations.
+/// Heighfield border flag.
+/// If a heightfield region ID has this bit set, then the region is a border
+/// region and its spans are considered unwalkable.
+/// (Used during the region and contour build process.)
+/// @see rcCompactSpan::reg
static const unsigned short RC_BORDER_REG = 0x8000;
-// If contour region ID has the following bit set, the vertex will be later
-// removed in order to match the segments and vertices at tile boundaries.
+/// Border vertex flag.
+/// If a region ID has this bit set, then the associated element lies on
+/// a tile border. If a contour vertex's region ID has this bit set, the
+/// vertex will later be removed in order to match the segments and vertices
+/// at tile boundaries.
+/// (Used during the build process.)
+/// @see rcCompactSpan::reg, #rcContour::verts, #rcContour::rverts
static const int RC_BORDER_VERTEX = 0x10000;
+/// Area border flag.
+/// If a region ID has this bit set, then the associated element lies on
+/// the border of an area.
+/// (Used during the region and contour build process.)
+/// @see rcCompactSpan::reg, #rcContour::verts, #rcContour::rverts
static const int RC_AREA_BORDER = 0x20000;
+/// Contour build flags.
+/// @see rcBuildContours
enum rcBuildContoursFlags
{
- RC_CONTOUR_TESS_WALL_EDGES = 0x01, // Tessellate wall edges
- RC_CONTOUR_TESS_AREA_EDGES = 0x02, // Tessellate edges between areas.
+ RC_CONTOUR_TESS_WALL_EDGES = 0x01, ///< Tessellate solid (impassable) edges during contour simplification.
+ RC_CONTOUR_TESS_AREA_EDGES = 0x02, ///< Tessellate edges between areas during contour simplification.
};
-// Mask used with contours to extract region id.
+/// Applied to the region id field of contour vertices in order to extract the region id.
+/// The region id field of a vertex may have several flags applied to it. So the
+/// fields value can't be used directly.
+/// @see rcContour::verts, rcContour::rverts
static const int RC_CONTOUR_REG_MASK = 0xffff;
-// Null index which is used with meshes to mark unset or invalid indices.
+/// An value which indicates an invalid index within a mesh.
+/// @note This does not necessarily indicate an error.
+/// @see rcPolyMesh::polys
static const unsigned short RC_MESH_NULL_IDX = 0xffff;
-// Area ID that is considered empty.
+/// Represents the null area.
+/// When a data element is given this value it is considered to no longer be
+/// assigned to a usable area. (E.g. It is unwalkable.)
static const unsigned char RC_NULL_AREA = 0;
-// Area ID that is considered generally walkable.
+/// The default area id used to indicate a walkable polygon.
+/// This is also the maximum allowed area id, and the only non-null area id
+/// recognized by some steps in the build process.
static const unsigned char RC_WALKABLE_AREA = 63;
-// Value returned by rcGetCon() if the direction is not connected.
+/// The value returned by #rcGetCon if the specified direction is not connected
+/// to another span. (Has no neighbor.)
static const int RC_NOT_CONNECTED = 0x3f;
-// Compact span neighbour helpers.
-inline void rcSetCon(rcCompactSpan& s, int dir, int i)
-{
- const unsigned int shift = (unsigned int)dir*6;
- unsigned int con = s.con;
- s.con = (con & ~(0x3f << shift)) | (((unsigned int)i & 0x3f) << shift);
-}
-
-inline int rcGetCon(const rcCompactSpan& s, int dir)
-{
- const unsigned int shift = (unsigned int)dir*6;
- return (s.con >> shift) & 0x3f;
-}
+/// @name General helper functions
+/// @{
-inline int rcGetDirOffsetX(int dir)
-{
- const int offset[4] = { -1, 0, 1, 0, };
- return offset[dir&0x03];
-}
-
-inline int rcGetDirOffsetY(int dir)
-{
- const int offset[4] = { 0, 1, 0, -1 };
- return offset[dir&0x03];
-}
-
-// Common helper functions
+/// Swaps the values of the two parameters.
+/// @param[in,out] a Value A
+/// @param[in,out] b Value B
template<class T> inline void rcSwap(T& a, T& b) { T t = a; a = b; b = t; }
+
+/// Returns the minimum of two values.
+/// @param[in] a Value A
+/// @param[in] b Value B
+/// @return The minimum of the two values.
template<class T> inline T rcMin(T a, T b) { return a < b ? a : b; }
+
+/// Returns the maximum of two values.
+/// @param[in] a Value A
+/// @param[in] b Value B
+/// @return The maximum of the two values.
template<class T> inline T rcMax(T a, T b) { return a > b ? a : b; }
+
+/// Returns the absolute value.
+/// @param[in] a The value.
+/// @return The absolute value of the specified value.
template<class T> inline T rcAbs(T a) { return a < 0 ? -a : a; }
+
+/// Returns the square of the value.
+/// @param[in] a The value.
+/// @return The square of the value.
template<class T> inline T rcSqr(T a) { return a*a; }
+
+/// Clamps the value to the specified range.
+/// @param[in] v The value to clamp.
+/// @param[in] mn The minimum permitted return value.
+/// @param[in] mx The maximum permitted return value.
+/// @return The value, clamped to the specified range.
template<class T> inline T rcClamp(T v, T mn, T mx) { return v < mn ? mn : (v > mx ? mx : v); }
+
+/// Returns the square root of the value.
+/// @param[in] x The value.
+/// @return The square root of the vlaue.
float rcSqrt(float x);
-// Common vector helper functions.
+/// @}
+/// @name Vector helper functions.
+/// @{
+
+/// Derives the cross product of two vectors. (@p v1 x @p v2)
+/// @param[out] dest The cross product. [(x, y, z)]
+/// @param[in] v1 A Vector [(x, y, z)]
+/// @param[in] v2 A vector [(x, y, z)]
inline void rcVcross(float* dest, const float* v1, const float* v2)
{
dest[0] = v1[1]*v2[2] - v1[2]*v2[1];
@@ -347,11 +603,20 @@ inline void rcVcross(float* dest, const float* v1, const float* v2)
dest[2] = v1[0]*v2[1] - v1[1]*v2[0];
}
+/// Derives the dot product of two vectors. (@p v1 . @p v2)
+/// @param[in] v1 A Vector [(x, y, z)]
+/// @param[in] v2 A vector [(x, y, z)]
+/// @return The dot product.
inline float rcVdot(const float* v1, const float* v2)
{
return v1[0]*v2[0] + v1[1]*v2[1] + v1[2]*v2[2];
}
+/// Performs a scaled vector addition. (@p v1 + (@p v2 * @p s))
+/// @param[out] dest The result vector. [(x, y, z)]
+/// @param[in] v1 The base vector. [(x, y, z)]
+/// @param[in] v2 The vector to scale and add to @p v1. [(x, y, z)]
+/// @param[in] s The amount to scale @p v2 by before adding to @p v1.
inline void rcVmad(float* dest, const float* v1, const float* v2, const float s)
{
dest[0] = v1[0]+v2[0]*s;
@@ -359,6 +624,10 @@ inline void rcVmad(float* dest, const float* v1, const float* v2, const float s)
dest[2] = v1[2]+v2[2]*s;
}
+/// Performs a vector addition. (@p v1 + @p v2)
+/// @param[out] dest The result vector. [(x, y, z)]
+/// @param[in] v1 The base vector. [(x, y, z)]
+/// @param[in] v2 The vector to add to @p v1. [(x, y, z)]
inline void rcVadd(float* dest, const float* v1, const float* v2)
{
dest[0] = v1[0]+v2[0];
@@ -366,6 +635,10 @@ inline void rcVadd(float* dest, const float* v1, const float* v2)
dest[2] = v1[2]+v2[2];
}
+/// Performs a vector subtraction. (@p v1 - @p v2)
+/// @param[out] dest The result vector. [(x, y, z)]
+/// @param[in] v1 The base vector. [(x, y, z)]
+/// @param[in] v2 The vector to subtract from @p v1. [(x, y, z)]
inline void rcVsub(float* dest, const float* v1, const float* v2)
{
dest[0] = v1[0]-v2[0];
@@ -373,6 +646,9 @@ inline void rcVsub(float* dest, const float* v1, const float* v2)
dest[2] = v1[2]-v2[2];
}
+/// Selects the minimum value of each element from the specified vectors.
+/// @param[in,out] mn A vector. (Will be updated with the result.) [(x, y, z)]
+/// @param[in] v A vector. [(x, y, z)]
inline void rcVmin(float* mn, const float* v)
{
mn[0] = rcMin(mn[0], v[0]);
@@ -380,6 +656,9 @@ inline void rcVmin(float* mn, const float* v)
mn[2] = rcMin(mn[2], v[2]);
}
+/// Selects the maximum value of each element from the specified vectors.
+/// @param[in,out] mx A vector. (Will be updated with the result.) [(x, y, z)]
+/// @param[in] v A vector. [(x, y, z)]
inline void rcVmax(float* mx, const float* v)
{
mx[0] = rcMax(mx[0], v[0]);
@@ -387,6 +666,9 @@ inline void rcVmax(float* mx, const float* v)
mx[2] = rcMax(mx[2], v[2]);
}
+/// Performs a vector copy.
+/// @param[out] dest The result. [(x, y, z)]
+/// @param[in] v The vector to copy. [(x, y, z)]
inline void rcVcopy(float* dest, const float* v)
{
dest[0] = v[0];
@@ -394,6 +676,10 @@ inline void rcVcopy(float* dest, const float* v)
dest[2] = v[2];
}
+/// Returns the distance between two points.
+/// @param[in] v1 A point. [(x, y, z)]
+/// @param[in] v2 A point. [(x, y, z)]
+/// @return The distance between the two points.
inline float rcVdist(const float* v1, const float* v2)
{
float dx = v2[0] - v1[0];
@@ -402,6 +688,10 @@ inline float rcVdist(const float* v1, const float* v2)
return rcSqrt(dx*dx + dy*dy + dz*dz);
}
+/// Returns the square of the distance between two points.
+/// @param[in] v1 A point. [(x, y, z)]
+/// @param[in] v2 A point. [(x, y, z)]
+/// @return The square of the distance between the two points.
inline float rcVdistSqr(const float* v1, const float* v2)
{
float dx = v2[0] - v1[0];
@@ -410,6 +700,8 @@ inline float rcVdistSqr(const float* v1, const float* v2)
return dx*dx + dy*dy + dz*dz;
}
+/// Normalizes the vector.
+/// @param[in,out] v The vector to normalize. [(x, y, z)]
inline void rcVnormalize(float* v)
{
float d = 1.0f / rcSqrt(rcSqr(v[0]) + rcSqr(v[1]) + rcSqr(v[2]));
@@ -418,271 +710,421 @@ inline void rcVnormalize(float* v)
v[2] *= d;
}
-inline bool rcVequal(const float* p0, const float* p1)
-{
- static const float thr = rcSqr(1.0f/16384.0f);
- const float d = rcVdistSqr(p0, p1);
- return d < thr;
-}
-
-// Calculated bounding box of array of vertices.
-// Params:
-// verts - (in) array of vertices
-// nv - (in) vertex count
-// bmin, bmax - (out) bounding box
+/// @}
+/// @name Heightfield Functions
+/// @see rcHeightfield
+/// @{
+
+/// Calculates the bounding box of an array of vertices.
+/// @ingroup recast
+/// @param[in] verts An array of vertices. [(x, y, z) * @p nv]
+/// @param[in] nv The number of vertices in the @p verts array.
+/// @param[out] bmin The minimum bounds of the AABB. [(x, y, z)] [Units: wu]
+/// @param[out] bmax The maximum bounds of the AABB. [(x, y, z)] [Units: wu]
void rcCalcBounds(const float* verts, int nv, float* bmin, float* bmax);
-// Calculates grid size based on bounding box and grid cell size.
-// Params:
-// bmin, bmax - (in) bounding box
-// cs - (in) grid cell size
-// w - (out) grid width
-// h - (out) grid height
+/// Calculates the grid size based on the bounding box and grid cell size.
+/// @ingroup recast
+/// @param[in] bmin The minimum bounds of the AABB. [(x, y, z)] [Units: wu]
+/// @param[in] bmax The maximum bounds of the AABB. [(x, y, z)] [Units: wu]
+/// @param[in] cs The xz-plane cell size. [Limit: > 0] [Units: wu]
+/// @param[out] w The width along the x-axis. [Limit: >= 0] [Units: vx]
+/// @param[out] h The height along the z-axis. [Limit: >= 0] [Units: vx]
void rcCalcGridSize(const float* bmin, const float* bmax, float cs, int* w, int* h);
-// Creates and initializes new heightfield.
-// Params:
-// hf - (in/out) heightfield to initialize.
-// width - (in) width of the heightfield.
-// height - (in) height of the heightfield.
-// bmin, bmax - (in) bounding box of the heightfield
-// cs - (in) grid cell size
-// ch - (in) grid cell height
+/// Initializes a new heightfield.
+/// @ingroup recast
+/// @param[in,out] ctx The build context to use during the operation.
+/// @param[in,out] hf The allocated heightfield to initialize.
+/// @param[in] width The width of the field along the x-axis. [Limit: >= 0] [Units: vx]
+/// @param[in] height The height of the field along the z-axis. [Limit: >= 0] [Units: vx]
+/// @param[in] bmin The minimum bounds of the field's AABB. [(x, y, z)] [Units: wu]
+/// @param[in] bmax The maximum bounds of the field's AABB. [(x, y, z)] [Units: wu]
+/// @param[in] cs The xz-plane cell size to use for the field. [Limit: > 0] [Units: wu]
+/// @param[in] ch The y-axis cell size to use for field. [Limit: > 0] [Units: wu]
bool rcCreateHeightfield(rcContext* ctx, rcHeightfield& hf, int width, int height,
const float* bmin, const float* bmax,
float cs, float ch);
-// Sets the RC_WALKABLE_AREA for every triangle whose slope is below
-// the maximum walkable slope angle.
-// Params:
-// walkableSlopeAngle - (in) maximum slope angle in degrees.
-// verts - (in) array of vertices
-// nv - (in) vertex count
-// tris - (in) array of triangle vertex indices
-// nt - (in) triangle count
-// areas - (out) array of triangle area types
+/// Sets the area id of all triangles with a slope below the specified value
+/// to #RC_WALKABLE_AREA.
+/// @ingroup recast
+/// @param[in,out] ctx The build context to use during the operation.
+/// @param[in] walkableSlopeAngle The maximum slope that is considered walkable.
+/// [Limits: 0 <= value < 90] [Units: Degrees]
+/// @param[in] verts The vertices. [(x, y, z) * @p nv]
+/// @param[in] nv The number of vertices.
+/// @param[in] tris The triangle vertex indices. [(vertA, vertB, vertC) * @p nt]
+/// @param[in] nt The number of triangles.
+/// @param[out] areas The triangle area ids. [Length: >= @p nt]
void rcMarkWalkableTriangles(rcContext* ctx, const float walkableSlopeAngle, const float* verts, int nv,
const int* tris, int nt, unsigned char* areas);
-// Sets the RC_NULL_AREA for every triangle whose slope is steeper than
-// the maximum walkable slope angle.
-// Params:
-// walkableSlopeAngle - (in) maximum slope angle in degrees.
-// verts - (in) array of vertices
-// nv - (in) vertex count
-// tris - (in) array of triangle vertex indices
-// nt - (in) triangle count
-// areas - (out) array of triangle are types
+/// Sets the area id of all triangles with a slope greater than or equal to the specified value to #RC_NULL_AREA.
+/// @ingroup recast
+/// @param[in,out] ctx The build context to use during the operation.
+/// @param[in] walkableSlopeAngle The maximum slope that is considered walkable.
+/// [Limits: 0 <= value < 90] [Units: Degrees]
+/// @param[in] verts The vertices. [(x, y, z) * @p nv]
+/// @param[in] nv The number of vertices.
+/// @param[in] tris The triangle vertex indices. [(vertA, vertB, vertC) * @p nt]
+/// @param[in] nt The number of triangles.
+/// @param[out] areas The triangle area ids. [Length: >= @p nt]
void rcClearUnwalkableTriangles(rcContext* ctx, const float walkableSlopeAngle, const float* verts, int nv,
const int* tris, int nt, unsigned char* areas);
-// Adds span to heightfield.
-// The span addition can set to favor flags. If the span is merged to
-// another span and the new smax is within 'flagMergeThr' units away
-// from the existing span the span flags are merged and stored.
-// Params:
-// solid - (in) heightfield where the spans is added to
-// x,y - (in) location on the heightfield where the span is added
-// smin,smax - (in) spans min/max height
-// flags - (in) span flags (zero or WALKABLE)
-// flagMergeThr - (in) merge threshold.
-void rcAddSpan(rcContext* ctx, rcHeightfield& solid, const int x, const int y,
+/// Adds a span to the specified heightfield.
+/// @ingroup recast
+/// @param[in,out] ctx The build context to use during the operation.
+/// @param[in,out] hf An initialized heightfield.
+/// @param[in] x The width index where the span is to be added.
+/// [Limits: 0 <= value < rcHeightfield::width]
+/// @param[in] y The height index where the span is to be added.
+/// [Limits: 0 <= value < rcHeightfield::height]
+/// @param[in] smin The minimum height of the span. [Limit: < @p smax] [Units: vx]
+/// @param[in] smax The maximum height of the span. [Limit: <= #RC_SPAN_MAX_HEIGHT] [Units: vx]
+/// @param[in] area The area id of the span. [Limit: <= #RC_WALKABLE_AREA)
+/// @param[in] flagMergeThr The merge theshold. [Limit: >= 0] [Units: vx]
+void rcAddSpan(rcContext* ctx, rcHeightfield& hf, const int x, const int y,
const unsigned short smin, const unsigned short smax,
- const unsigned short area, const int flagMergeThr);
-
-// Rasterizes a triangle into heightfield spans.
-// Params:
-// v0,v1,v2 - (in) the vertices of the triangle.
-// area - (in) area type of the triangle.
-// solid - (in) heightfield where the triangle is rasterized
-// flagMergeThr - (in) distance in voxel where walkable flag is favored over non-walkable.
+ const unsigned char area, const int flagMergeThr);
+
+/// Rasterizes a triangle into the specified heightfield.
+/// @ingroup recast
+/// @param[in,out] ctx The build context to use during the operation.
+/// @param[in] v0 Triangle vertex 0 [(x, y, z)]
+/// @param[in] v1 Triangle vertex 1 [(x, y, z)]
+/// @param[in] v2 Triangle vertex 2 [(x, y, z)]
+/// @param[in] area The area id of the triangle. [Limit: <= #RC_WALKABLE_AREA]
+/// @param[in,out] solid An initialized heightfield.
+/// @param[in] flagMergeThr The distance where the walkable flag is favored over the non-walkable flag.
+/// [Limit: >= 0] [Units: vx]
void rcRasterizeTriangle(rcContext* ctx, const float* v0, const float* v1, const float* v2,
const unsigned char area, rcHeightfield& solid,
const int flagMergeThr = 1);
-// Rasterizes indexed triangle mesh into heightfield spans.
-// Params:
-// verts - (in) array of vertices
-// nv - (in) vertex count
-// tris - (in) array of triangle vertex indices
-// area - (in) array of triangle area types.
-// nt - (in) triangle count
-// solid - (in) heightfield where the triangles are rasterized
-// flagMergeThr - (in) distance in voxel where walkable flag is favored over non-walkable.
+/// Rasterizes an indexed triangle mesh into the specified heightfield.
+/// @ingroup recast
+/// @param[in,out] ctx The build context to use during the operation.
+/// @param[in] verts The vertices. [(x, y, z) * @p nv]
+/// @param[in] nv The number of vertices.
+/// @param[in] tris The triangle indices. [(vertA, vertB, vertC) * @p nt]
+/// @param[in] areas The area id's of the triangles. [Limit: <= #RC_WALKABLE_AREA] [Size: @p nt]
+/// @param[in] nt The number of triangles.
+/// @param[in,out] solid An initialized heightfield.
+/// @param[in] flagMergeThr The distance where the walkable flag is favored over the non-walkable flag.
+/// [Limit: >= 0] [Units: vx]
void rcRasterizeTriangles(rcContext* ctx, const float* verts, const int nv,
const int* tris, const unsigned char* areas, const int nt,
rcHeightfield& solid, const int flagMergeThr = 1);
-// Rasterizes indexed triangle mesh into heightfield spans.
-// Params:
-// verts - (in) array of vertices
-// nv - (in) vertex count
-// tris - (in) array of triangle vertex indices
-// area - (in) array of triangle area types.
-// nt - (in) triangle count
-// solid - (in) heightfield where the triangles are rasterized
-// flagMergeThr - (in) distance in voxel where walkable flag is favored over non-walkable.
+/// Rasterizes an indexed triangle mesh into the specified heightfield.
+/// @ingroup recast
+/// @param[in,out] ctx The build context to use during the operation.
+/// @param[in] verts The vertices. [(x, y, z) * @p nv]
+/// @param[in] nv The number of vertices.
+/// @param[in] tris The triangle indices. [(vertA, vertB, vertC) * @p nt]
+/// @param[in] areas The area id's of the triangles. [Limit: <= #RC_WALKABLE_AREA] [Size: @p nt]
+/// @param[in] nt The number of triangles.
+/// @param[in,out] solid An initialized heightfield.
+/// @param[in] flagMergeThr The distance where the walkable flag is favored over the non-walkable flag.
+/// [Limit: >= 0] [Units: vx]
void rcRasterizeTriangles(rcContext* ctx, const float* verts, const int nv,
const unsigned short* tris, const unsigned char* areas, const int nt,
rcHeightfield& solid, const int flagMergeThr = 1);
-// Rasterizes the triangles into heightfield spans.
-// Params:
-// verts - (in) array of vertices
-// area - (in) array of triangle area types.
-// nt - (in) triangle count
-// solid - (in) heightfield where the triangles are rasterized
+/// Rasterizes triangles into the specified heightfield.
+/// @ingroup recast
+/// @param[in,out] ctx The build context to use during the operation.
+/// @param[in] verts The triangle vertices. [(ax, ay, az, bx, by, bz, cx, by, cx) * @p nt]
+/// @param[in] areas The area id's of the triangles. [Limit: <= #RC_WALKABLE_AREA] [Size: @p nt]
+/// @param[in] nt The number of triangles.
+/// @param[in,out] solid An initialized heightfield.
+/// @param[in] flagMergeThr The distance where the walkable flag is favored over the non-walkable flag.
+/// [Limit: >= 0] [Units: vx]
void rcRasterizeTriangles(rcContext* ctx, const float* verts, const unsigned char* areas, const int nt,
rcHeightfield& solid, const int flagMergeThr = 1);
-// Marks non-walkable low obstacles as walkable if they are closer than walkableClimb
-// from a walkable surface. Applying this filter allows to step over low hanging
-// low obstacles.
-// Params:
-// walkableHeight - (in) minimum height where the agent can still walk
-// solid - (in/out) heightfield describing the solid space
-// TODO: Missuses ledge flag, must be called before rcFilterLedgeSpans!
+/// Marks non-walkable spans as walkable if their maximum is within @p walkableClimp of a walkable neihbor.
+/// @ingroup recast
+/// @param[in,out] ctx The build context to use during the operation.
+/// @param[in] walkableClimb Maximum ledge height that is considered to still be traversable.
+/// [Limit: >=0] [Units: vx]
+/// @param[in,out] solid A fully built heightfield. (All spans have been added.)
void rcFilterLowHangingWalkableObstacles(rcContext* ctx, const int walkableClimb, rcHeightfield& solid);
-// Removes WALKABLE flag from all spans that are at ledges. This filtering
-// removes possible overestimation of the conservative voxelization so that
-// the resulting mesh will not have regions hanging in air over ledges.
-// Params:
-// walkableHeight - (in) minimum height where the agent can still walk
-// walkableClimb - (in) maximum height between grid cells the agent can climb
-// solid - (in/out) heightfield describing the solid space
+/// Marks spans that are ledges as not-walkable.
+/// @ingroup recast
+/// @param[in,out] ctx The build context to use during the operation.
+/// @param[in] walkableHeight Minimum floor to 'ceiling' height that will still allow the floor area to
+/// be considered walkable. [Limit: >= 3] [Units: vx]
+/// @param[in] walkableClimb Maximum ledge height that is considered to still be traversable.
+/// [Limit: >=0] [Units: vx]
+/// @param[in,out] solid A fully built heightfield. (All spans have been added.)
void rcFilterLedgeSpans(rcContext* ctx, const int walkableHeight,
const int walkableClimb, rcHeightfield& solid);
-// Removes WALKABLE flag from all spans which have smaller than
-// 'walkableHeight' clearance above them.
-// Params:
-// walkableHeight - (in) minimum height where the agent can still walk
-// solid - (in/out) heightfield describing the solid space
+/// Marks walkable spans as not walkable if the clearence above the span is less than the specified height.
+/// @ingroup recast
+/// @param[in,out] ctx The build context to use during the operation.
+/// @param[in] walkableHeight Minimum floor to 'ceiling' height that will still allow the floor area to
+/// be considered walkable. [Limit: >= 3] [Units: vx]
+/// @param[in,out] solid A fully built heightfield. (All spans have been added.)
void rcFilterWalkableLowHeightSpans(rcContext* ctx, int walkableHeight, rcHeightfield& solid);
-// Returns number of spans contained in a heightfield.
-// Params:
-// hf - (in) heightfield to be compacted
-// Returns number of spans.
+/// Returns the number of spans contained in the specified heightfield.
+/// @ingroup recast
+/// @param[in,out] ctx The build context to use during the operation.
+/// @param[in] hf An initialized heightfield.
+/// @returns The number of spans in the heightfield.
int rcGetHeightFieldSpanCount(rcContext* ctx, rcHeightfield& hf);
-// Builds compact representation of the heightfield.
-// Params:
-// walkableHeight - (in) minimum height where the agent can still walk
-// walkableClimb - (in) maximum height between grid cells the agent can climb
-// flags - (in) require flags for a cell to be included in the compact heightfield.
-// hf - (in) heightfield to be compacted
-// chf - (out) compact heightfield representing the open space.
-// Returns false if operation ran out of memory.
+/// @}
+/// @name Compact Heightfield Functions
+/// @see rcCompactHeightfield
+/// @{
+
+/// Builds a compact heightfield representing open space, from a heightfield representing solid space.
+/// @ingroup recast
+/// @param[in,out] ctx The build context to use during the operation.
+/// @param[in] walkableHeight Minimum floor to 'ceiling' height that will still allow the floor area
+/// to be considered walkable. [Limit: >= 3] [Units: vx]
+/// @param[in] walkableClimb Maximum ledge height that is considered to still be traversable.
+/// [Limit: >=0] [Units: vx]
+/// @param[in] hf The heightfield to be compacted.
+/// @param[out] chf The resulting compact heightfield. (Must be pre-allocated.)
+/// @returns True if the operation completed successfully.
bool rcBuildCompactHeightfield(rcContext* ctx, const int walkableHeight, const int walkableClimb,
rcHeightfield& hf, rcCompactHeightfield& chf);
-// Erodes walkable area.
-// Params:
-// radius - (in) radius of erosion (max 255).
-// chf - (in/out) compact heightfield to erode.
-// Returns false if operation ran out of memory.
+/// Erodes the walkable area within the heightfield by the specified radius.
+/// @ingroup recast
+/// @param[in,out] ctx The build context to use during the operation.
+/// @param[in] radius The radius of erosion. [Limits: 0 < value < 255] [Units: vx]
+/// @param[in,out] chf The populated compact heightfield to erode.
+/// @returns True if the operation completed successfully.
bool rcErodeWalkableArea(rcContext* ctx, int radius, rcCompactHeightfield& chf);
-// Applies median filter to walkable area types, removing noise.
-// Params:
-// chf - (in/out) compact heightfield to erode.
-// Returns false if operation ran out of memory.
+/// Applies a median filter to walkable area types (based on area id), removing noise.
+/// @ingroup recast
+/// @param[in,out] ctx The build context to use during the operation.
+/// @param[in,out] chf A populated compact heightfield.
+/// @returns True if the operation completed successfully.
bool rcMedianFilterWalkableArea(rcContext* ctx, rcCompactHeightfield& chf);
-// Marks the area of the convex polygon into the area type of the compact heightfield.
-// Params:
-// bmin/bmax - (in) bounds of the axis aligned box.
-// areaId - (in) area ID to mark.
-// chf - (in/out) compact heightfield to mark.
+/// Applies an area id to all spans within the specified bounding box. (AABB)
+/// @ingroup recast
+/// @param[in,out] ctx The build context to use during the operation.
+/// @param[in] bmin The minimum of the bounding box. [(x, y, z)]
+/// @param[in] bmax The maximum of the bounding box. [(x, y, z)]
+/// @param[in] areaId The area id to apply. [Limit: <= #RC_WALKABLE_AREA]
+/// @param[in,out] chf A populated compact heightfield.
void rcMarkBoxArea(rcContext* ctx, const float* bmin, const float* bmax, unsigned char areaId,
rcCompactHeightfield& chf);
-// Marks the area of the convex polygon into the area type of the compact heightfield.
-// Params:
-// verts - (in) vertices of the convex polygon.
-// nverts - (in) number of vertices in the polygon.
-// hmin/hmax - (in) min and max height of the polygon.
-// areaId - (in) area ID to mark.
-// chf - (in/out) compact heightfield to mark.
+/// Applies the area id to the all spans within the specified convex polygon.
+/// @ingroup recast
+/// @param[in,out] ctx The build context to use during the operation.
+/// @param[in] verts The vertices of the polygon [Fomr: (x, y, z) * @p nverts]
+/// @param[in] nverts The number of vertices in the polygon.
+/// @param[in] hmin The height of the base of the polygon.
+/// @param[in] hmax The height of the top of the polygon.
+/// @param[in] areaId The area id to apply. [Limit: <= #RC_WALKABLE_AREA]
+/// @param[in,out] chf A populated compact heightfield.
void rcMarkConvexPolyArea(rcContext* ctx, const float* verts, const int nverts,
const float hmin, const float hmax, unsigned char areaId,
rcCompactHeightfield& chf);
-// Builds distance field and stores it into the combat heightfield.
-// Params:
-// chf - (in/out) compact heightfield representing the open space.
-// Returns false if operation ran out of memory.
+/// Helper function to offset voncex polygons for rcMarkConvexPolyArea.
+/// @ingroup recast
+/// @param[in] verts The vertices of the polygon [Form: (x, y, z) * @p nverts]
+/// @param[in] nverts The number of vertices in the polygon.
+/// @param[out] outVerts The offset vertices (should hold up to 2 * @p nverts) [Form: (x, y, z) * return value]
+/// @param[in] maxOutVerts The max number of vertices that can be stored to @p outVerts.
+/// @returns Number of vertices in the offset polygon or 0 if too few vertices in @p outVerts.
+int rcOffsetPoly(const float* verts, const int nverts, const float offset,
+ float* outVerts, const int maxOutVerts);
+
+/// Applies the area id to all spans within the specified cylinder.
+/// @ingroup recast
+/// @param[in,out] ctx The build context to use during the operation.
+/// @param[in] pos The center of the base of the cylinder. [Form: (x, y, z)]
+/// @param[in] r The radius of the cylinder.
+/// @param[in] h The height of the cylinder.
+/// @param[in] areaId The area id to apply. [Limit: <= #RC_WALKABLE_AREA]
+/// @param[in,out] chf A populated compact heightfield.
+void rcMarkCylinderArea(rcContext* ctx, const float* pos,
+ const float r, const float h, unsigned char areaId,
+ rcCompactHeightfield& chf);
+
+/// Builds the distance field for the specified compact heightfield.
+/// @ingroup recast
+/// @param[in,out] ctx The build context to use during the operation.
+/// @param[in,out] chf A populated compact heightfield.
+/// @returns True if the operation completed successfully.
bool rcBuildDistanceField(rcContext* ctx, rcCompactHeightfield& chf);
-// Divides the walkable heighfied into simple regions using watershed partitioning.
-// Each region has only one contour and no overlaps.
-// The regions are stored in the compact heightfield 'reg' field.
-// The process sometimes creates small regions. If the area of a regions is
-// smaller than 'mergeRegionArea' then the region will be merged with a neighbour
-// region if possible. If multiple regions form an area which is smaller than
-// 'minRegionArea' all the regions belonging to that area will be removed.
-// Here area means the count of spans in an area.
-// Params:
-// chf - (in/out) compact heightfield representing the open space.
-// minRegionArea - (in) the smallest allowed region area.
-// maxMergeRegionArea - (in) the largest allowed region area which can be merged.
-// Returns false if operation ran out of memory.
+/// Builds region data for the heightfield using watershed partitioning.
+/// @ingroup recast
+/// @param[in,out] ctx The build context to use during the operation.
+/// @param[in,out] chf A populated compact heightfield.
+/// @param[in] borderSize The size of the non-navigable border around the heightfield.
+/// [Limit: >=0] [Units: vx]
+/// @param[in] minRegionArea The minimum number of cells allowed to form isolated island areas.
+/// [Limit: >=0] [Units: vx].
+/// @param[in] mergeRegionArea Any regions with a span count smaller than this value will, if possible,
+/// be merged with larger regions. [Limit: >=0] [Units: vx]
+/// @returns True if the operation completed successfully.
bool rcBuildRegions(rcContext* ctx, rcCompactHeightfield& chf,
const int borderSize, const int minRegionArea, const int mergeRegionArea);
-// Divides the walkable heighfied into simple regions using simple monotone partitioning.
-// Each region has only one contour and no overlaps.
-// The regions are stored in the compact heightfield 'reg' field.
-// The process sometimes creates small regions. If the area of a regions is
-// smaller than 'mergeRegionArea' then the region will be merged with a neighbour
-// region if possible. If multiple regions form an area which is smaller than
-// 'minRegionArea' all the regions belonging to that area will be removed.
-// Here area means the count of spans in an area.
-// Params:
-// chf - (in/out) compact heightfield representing the open space.
-// minRegionArea - (in) the smallest allowed regions size.
-// maxMergeRegionArea - (in) the largest allowed regions size which can be merged.
-// Returns false if operation ran out of memory.
+/// Builds region data for the heightfield using simple monotone partitioning.
+/// @ingroup recast
+/// @param[in,out] ctx The build context to use during the operation.
+/// @param[in,out] chf A populated compact heightfield.
+/// @param[in] borderSize The size of the non-navigable border around the heightfield.
+/// [Limit: >=0] [Units: vx]
+/// @param[in] minRegionArea The minimum number of cells allowed to form isolated island areas.
+/// [Limit: >=0] [Units: vx].
+/// @param[in] mergeRegionArea Any regions with a span count smaller than this value will, if possible,
+/// be merged with larger regions. [Limit: >=0] [Units: vx]
+/// @returns True if the operation completed successfully.
bool rcBuildRegionsMonotone(rcContext* ctx, rcCompactHeightfield& chf,
const int borderSize, const int minRegionArea, const int mergeRegionArea);
-// Builds simplified contours from the regions outlines.
-// Params:
-// chf - (in) compact heightfield which has regions set.
-// maxError - (in) maximum allowed distance between simplified contour and cells.
-// maxEdgeLen - (in) maximum allowed contour edge length in cells.
-// cset - (out) Resulting contour set.
-// flags - (in) build flags, see rcBuildContoursFlags.
-// Returns false if operation ran out of memory.
+
+/// Sets the neighbor connection data for the specified direction.
+/// @param[in] s The span to update.
+/// @param[in] dir The direction to set. [Limits: 0 <= value < 4]
+/// @param[in] i The index of the neighbor span.
+inline void rcSetCon(rcCompactSpan& s, int dir, int i)
+{
+ const unsigned int shift = (unsigned int)dir*6;
+ unsigned int con = s.con;
+ s.con = (con & ~(0x3f << shift)) | (((unsigned int)i & 0x3f) << shift);
+}
+
+/// Gets neighbor connection data for the specified direction.
+/// @param[in] s The span to check.
+/// @param[in] dir The direction to check. [Limits: 0 <= value < 4]
+/// @return The neighbor connection data for the specified direction,
+/// or #RC_NOT_CONNECTED if there is no connection.
+inline int rcGetCon(const rcCompactSpan& s, int dir)
+{
+ const unsigned int shift = (unsigned int)dir*6;
+ return (s.con >> shift) & 0x3f;
+}
+
+/// Gets the standard width (x-axis) offset for the specified direction.
+/// @param[in] dir The direction. [Limits: 0 <= value < 4]
+/// @return The width offset to apply to the current cell position to move
+/// in the direction.
+inline int rcGetDirOffsetX(int dir)
+{
+ const int offset[4] = { -1, 0, 1, 0, };
+ return offset[dir&0x03];
+}
+
+/// Gets the standard height (z-axis) offset for the specified direction.
+/// @param[in] dir The direction. [Limits: 0 <= value < 4]
+/// @return The height offset to apply to the current cell position to move
+/// in the direction.
+inline int rcGetDirOffsetY(int dir)
+{
+ const int offset[4] = { 0, 1, 0, -1 };
+ return offset[dir&0x03];
+}
+
+/// @}
+/// @name Layer, Contour, Polymesh, and Detail Mesh Functions
+/// @see rcHeightfieldLayer, rcContourSet, rcPolyMesh, rcPolyMeshDetail
+/// @{
+
+/// Builds a layer set from the specified compact heightfield.
+/// @ingroup recast
+/// @param[in,out] ctx The build context to use during the operation.
+/// @param[in] chf A fully built compact heightfield.
+/// @param[in] borderSize The size of the non-navigable border around the heightfield. [Limit: >=0]
+/// [Units: vx]
+/// @param[in] walkableHeight Minimum floor to 'ceiling' height that will still allow the floor area
+/// to be considered walkable. [Limit: >= 3] [Units: vx]
+/// @param[out] lset The resulting layer set. (Must be pre-allocated.)
+/// @returns True if the operation completed successfully.
+bool rcBuildHeightfieldLayers(rcContext* ctx, rcCompactHeightfield& chf,
+ const int borderSize, const int walkableHeight,
+ rcHeightfieldLayerSet& lset);
+
+/// Builds a contour set from the region outlines in the provided compact heightfield.
+/// @ingroup recast
+/// @param[in,out] ctx The build context to use during the operation.
+/// @param[in] chf A fully built compact heightfield.
+/// @param[in] maxError The maximum distance a simplfied contour's border edges should deviate
+/// the original raw contour. [Limit: >=0] [Units: wu]
+/// @param[in] maxEdgeLen The maximum allowed length for contour edges along the border of the mesh.
+/// [Limit: >=0] [Units: vx]
+/// @param[out] cset The resulting contour set. (Must be pre-allocated.)
+/// @param[in] buildFlags The build flags. (See: #rcBuildContoursFlags)
+/// @returns True if the operation completed successfully.
bool rcBuildContours(rcContext* ctx, rcCompactHeightfield& chf,
const float maxError, const int maxEdgeLen,
rcContourSet& cset, const int flags = RC_CONTOUR_TESS_WALL_EDGES);
-// Builds connected convex polygon mesh from contour polygons.
-// Params:
-// cset - (in) contour set.
-// nvp - (in) maximum number of vertices per polygon.
-// mesh - (out) poly mesh.
-// Returns false if operation ran out of memory.
-bool rcBuildPolyMesh(rcContext* ctx, rcContourSet& cset, int nvp, rcPolyMesh& mesh);
-
+/// Builds a polygon mesh from the provided contours.
+/// @ingroup recast
+/// @param[in,out] ctx The build context to use during the operation.
+/// @param[in] cset A fully built contour set.
+/// @param[in] nvp The maximum number of vertices allowed for polygons generated during the
+/// contour to polygon conversion process. [Limit: >= 3]
+/// @param[out] mesh The resulting polygon mesh. (Must be re-allocated.)
+/// @returns True if the operation completed successfully.
+bool rcBuildPolyMesh(rcContext* ctx, rcContourSet& cset, const int nvp, rcPolyMesh& mesh);
+
+/// Merges multiple polygon meshes into a single mesh.
+/// @ingroup recast
+/// @param[in,out] ctx The build context to use during the operation.
+/// @param[in] meshes An array of polygon meshes to merge. [Size: @p nmeshes]
+/// @param[in] nmeshes The number of polygon meshes in the meshes array.
+/// @param[in] mesh The resulting polygon mesh. (Must be pre-allocated.)
+/// @returns True if the operation completed successfully.
bool rcMergePolyMeshes(rcContext* ctx, rcPolyMesh** meshes, const int nmeshes, rcPolyMesh& mesh);
-// Builds detail triangle mesh for each polygon in the poly mesh.
-// Params:
-// mesh - (in) poly mesh to detail.
-// chf - (in) compact height field, used to query height for new vertices.
-// sampleDist - (in) spacing between height samples used to generate more detail into mesh.
-// sampleMaxError - (in) maximum allowed distance between simplified detail mesh and height sample.
-// pmdtl - (out) detail mesh.
-// Returns false if operation ran out of memory.
+/// Builds a detail mesh from the provided polygon mesh.
+/// @ingroup recast
+/// @param[in,out] ctx The build context to use during the operation.
+/// @param[in] mesh A fully built polygon mesh.
+/// @param[in] chf The compact heightfield used to build the polygon mesh.
+/// @param[in] sampleDist Sets the distance to use when samping the heightfield. [Limit: >=0] [Units: wu]
+/// @param[in] sampleMaxError The maximum distance the detail mesh surface should deviate from
+/// heightfield data. [Limit: >=0] [Units: wu]
+/// @param[out] dmesh The resulting detail mesh. (Must be pre-allocated.)
+/// @returns True if the operation completed successfully.
bool rcBuildPolyMeshDetail(rcContext* ctx, const rcPolyMesh& mesh, const rcCompactHeightfield& chf,
const float sampleDist, const float sampleMaxError,
rcPolyMeshDetail& dmesh);
+/// Copies the poly mesh data from src to dst.
+/// @ingroup recast
+/// @param[in,out] ctx The build context to use during the operation.
+/// @param[in] src The source mesh to copy from.
+/// @param[out] dst The resulting detail mesh. (Must be pre-allocated, must be empty mesh.)
+/// @returns True if the operation completed successfully.
+bool rcCopyPolyMesh(rcContext* ctx, const rcPolyMesh& src, rcPolyMesh& dst);
+
+/// Merges multiple detail meshes into a single detail mesh.
+/// @ingroup recast
+/// @param[in,out] ctx The build context to use during the operation.
+/// @param[in] meshes An array of detail meshes to merge. [Size: @p nmeshes]
+/// @param[in] nmeshes The number of detail meshes in the meshes array.
+/// @param[out] mesh The resulting detail mesh. (Must be pre-allocated.)
+/// @returns True if the operation completed successfully.
bool rcMergePolyMeshDetails(rcContext* ctx, rcPolyMeshDetail** meshes, const int nmeshes, rcPolyMeshDetail& mesh);
+/// @}
#endif // RECAST_H
+
+///////////////////////////////////////////////////////////////////////////
+
+// Due to the large amount of detail documentation for this file,
+// the content normally located at the end of the header file has been separated
+// out to a file in /Docs/Extern.
diff --git a/dep/recastnavigation/Recast/RecastAlloc.cpp b/dep/recastnavigation/Recast/RecastAlloc.cpp
index 2c7396a1bfa..b5ec1516146 100644
--- a/dep/recastnavigation/Recast/RecastAlloc.cpp
+++ b/dep/recastnavigation/Recast/RecastAlloc.cpp
@@ -33,24 +33,45 @@ static void rcFreeDefault(void *ptr)
static rcAllocFunc* sRecastAllocFunc = rcAllocDefault;
static rcFreeFunc* sRecastFreeFunc = rcFreeDefault;
+/// @see rcAlloc, rcFree
void rcAllocSetCustom(rcAllocFunc *allocFunc, rcFreeFunc *freeFunc)
{
sRecastAllocFunc = allocFunc ? allocFunc : rcAllocDefault;
sRecastFreeFunc = freeFunc ? freeFunc : rcFreeDefault;
}
+/// @see rcAllocSetCustom
void* rcAlloc(int size, rcAllocHint hint)
{
return sRecastAllocFunc(size, hint);
}
+/// @par
+///
+/// @warning This function leaves the value of @p ptr unchanged. So it still
+/// points to the same (now invalid) location, and not to null.
+///
+/// @see rcAllocSetCustom
void rcFree(void* ptr)
{
if (ptr)
sRecastFreeFunc(ptr);
}
+/// @class rcIntArray
+///
+/// While it is possible to pre-allocate a specific array size during
+/// construction or by using the #resize method, certain methods will
+/// automatically resize the array as needed.
+///
+/// @warning The array memory is not initialized to zero when the size is
+/// manually set during construction or when using #resize.
+/// @par
+///
+/// Using this method ensures the array is at least large enough to hold
+/// the specified number of elements. This can improve performance by
+/// avoiding auto-resizing during use.
void rcIntArray::resize(int n)
{
if (n > m_cap)
diff --git a/dep/recastnavigation/Recast/RecastAlloc.h b/dep/recastnavigation/Recast/RecastAlloc.h
index 9a316374a73..438be9ea56b 100644
--- a/dep/recastnavigation/Recast/RecastAlloc.h
+++ b/dep/recastnavigation/Recast/RecastAlloc.h
@@ -19,23 +19,45 @@
#ifndef RECASTALLOC_H
#define RECASTALLOC_H
+/// Provides hint values to the memory allocator on how long the
+/// memory is expected to be used.
enum rcAllocHint
{
- RC_ALLOC_PERM, // Memory persist after a function call.
- RC_ALLOC_TEMP // Memory used temporarily within a function.
+ RC_ALLOC_PERM, ///< Memory will persist after a function call.
+ RC_ALLOC_TEMP ///< Memory used temporarily within a function.
};
+/// A memory allocation function.
+// @param[in] size The size, in bytes of memory, to allocate.
+// @param[in] rcAllocHint A hint to the allocator on how long the memory is expected to be in use.
+// @return A pointer to the beginning of the allocated memory block, or null if the allocation failed.
+/// @see rcAllocSetCustom
typedef void* (rcAllocFunc)(int size, rcAllocHint hint);
+
+/// A memory deallocation function.
+/// @param[in] ptr A pointer to a memory block previously allocated using #rcAllocFunc.
+/// @see rcAllocSetCustom
typedef void (rcFreeFunc)(void* ptr);
+/// Sets the base custom allocation functions to be used by Recast.
+/// @param[in] allocFunc The memory allocation function to be used by #rcAlloc
+/// @param[in] freeFunc The memory de-allocation function to be used by #rcFree
void rcAllocSetCustom(rcAllocFunc *allocFunc, rcFreeFunc *freeFunc);
+/// Allocates a memory block.
+/// @param[in] size The size, in bytes of memory, to allocate.
+/// @param[in] hint A hint to the allocator on how long the memory is expected to be in use.
+/// @return A pointer to the beginning of the allocated memory block, or null if the allocation failed.
+/// @see rcFree
void* rcAlloc(int size, rcAllocHint hint);
-void rcFree(void* ptr);
+/// Deallocates a memory block.
+/// @param[in] ptr A pointer to a memory block previously allocated using #rcAlloc.
+/// @see rcAlloc
+void rcFree(void* ptr);
-// Simple dynamic array ints.
+/// A simple dynamic array of integers.
class rcIntArray
{
int* m_data;
@@ -43,26 +65,59 @@ class rcIntArray
inline rcIntArray(const rcIntArray&);
inline rcIntArray& operator=(const rcIntArray&);
public:
+
+ /// Constructs an instance with an initial array size of zero.
inline rcIntArray() : m_data(0), m_size(0), m_cap(0) {}
+
+ /// Constructs an instance initialized to the specified size.
+ /// @param[in] n The initial size of the integer array.
inline rcIntArray(int n) : m_data(0), m_size(0), m_cap(0) { resize(n); }
inline ~rcIntArray() { rcFree(m_data); }
+
+ /// Specifies the new size of the integer array.
+ /// @param[in] n The new size of the integer array.
void resize(int n);
+
+ /// Push the specified integer onto the end of the array and increases the size by one.
+ /// @param[in] item The new value.
inline void push(int item) { resize(m_size+1); m_data[m_size-1] = item; }
+
+ /// Returns the value at the end of the array and reduces the size by one.
+ /// @return The value at the end of the array.
inline int pop() { if (m_size > 0) m_size--; return m_data[m_size]; }
+
+ /// The value at the specified array index.
+ /// @warning Does not provide overflow protection.
+ /// @param[in] i The index of the value.
inline const int& operator[](int i) const { return m_data[i]; }
+
+ /// The value at the specified array index.
+ /// @warning Does not provide overflow protection.
+ /// @param[in] i The index of the value.
inline int& operator[](int i) { return m_data[i]; }
+
+ /// The current size of the integer array.
inline int size() const { return m_size; }
};
-// Simple internal helper class to delete array in scope
+/// A simple helper class used to delete an array when it goes out of scope.
+/// @note This class is rarely if ever used by the end user.
template<class T> class rcScopedDelete
{
T* ptr;
inline T* operator=(T* p);
public:
+
+ /// Constructs an instance with a null pointer.
inline rcScopedDelete() : ptr(0) {}
+
+ /// Constructs an instance with the specified pointer.
+ /// @param[in] p An pointer to an allocated array.
inline rcScopedDelete(T* p) : ptr(p) {}
inline ~rcScopedDelete() { rcFree(ptr); }
+
+ /// The root array pointer.
+ /// @return The root array pointer.
inline operator T*() { return ptr; }
};
diff --git a/dep/recastnavigation/Recast/RecastArea.cpp b/dep/recastnavigation/Recast/RecastArea.cpp
index e89caee2a49..1a338cd9b8c 100644
--- a/dep/recastnavigation/Recast/RecastArea.cpp
+++ b/dep/recastnavigation/Recast/RecastArea.cpp
@@ -26,7 +26,14 @@
#include "RecastAlloc.h"
#include "RecastAssert.h"
-
+/// @par
+///
+/// Basically, any spans that are closer to a boundary or obstruction than the specified radius
+/// are marked as unwalkable.
+///
+/// This method is usually called immediately after the heightfield has been built.
+///
+/// @see rcCompactHeightfield, rcBuildCompactHeightfield, rcConfig::walkableRadius
bool rcErodeWalkableArea(rcContext* ctx, int radius, rcCompactHeightfield& chf)
{
rcAssert(ctx);
@@ -54,14 +61,26 @@ bool rcErodeWalkableArea(rcContext* ctx, int radius, rcCompactHeightfield& chf)
const rcCompactCell& c = chf.cells[x+y*w];
for (int i = (int)c.index, ni = (int)(c.index+c.count); i < ni; ++i)
{
- if (chf.areas[i] != RC_NULL_AREA)
+ if (chf.areas[i] == RC_NULL_AREA)
+ {
+ dist[i] = 0;
+ }
+ else
{
const rcCompactSpan& s = chf.spans[i];
int nc = 0;
for (int dir = 0; dir < 4; ++dir)
{
if (rcGetCon(s, dir) != RC_NOT_CONNECTED)
- nc++;
+ {
+ const int nx = x + rcGetDirOffsetX(dir);
+ const int ny = y + rcGetDirOffsetY(dir);
+ const int nidx = (int)chf.cells[nx+ny*w].index + rcGetCon(s, dir);
+ if (chf.areas[nidx] != RC_NULL_AREA)
+ {
+ nc++;
+ }
+ }
}
// At least one missing neighbour.
if (nc != 4)
@@ -213,7 +232,12 @@ static void insertSort(unsigned char* a, const int n)
}
}
-
+/// @par
+///
+/// This filter is usually applied after applying area id's using functions
+/// such as #rcMarkBoxArea, #rcMarkConvexPolyArea, and #rcMarkCylinderArea.
+///
+/// @see rcCompactHeightfield
bool rcMedianFilterWalkableArea(rcContext* ctx, rcCompactHeightfield& chf)
{
rcAssert(ctx);
@@ -288,6 +312,11 @@ bool rcMedianFilterWalkableArea(rcContext* ctx, rcCompactHeightfield& chf)
return true;
}
+/// @par
+///
+/// The value of spacial parameters are in world units.
+///
+/// @see rcCompactHeightfield, rcMedianFilterWalkableArea
void rcMarkBoxArea(rcContext* ctx, const float* bmin, const float* bmax, unsigned char areaId,
rcCompactHeightfield& chf)
{
@@ -322,7 +351,8 @@ void rcMarkBoxArea(rcContext* ctx, const float* bmin, const float* bmax, unsigne
rcCompactSpan& s = chf.spans[i];
if ((int)s.y >= miny && (int)s.y <= maxy)
{
- chf.areas[i] = areaId;
+ if (chf.areas[i] != RC_NULL_AREA)
+ chf.areas[i] = areaId;
}
}
}
@@ -347,6 +377,14 @@ static int pointInPoly(int nvert, const float* verts, const float* p)
return c;
}
+/// @par
+///
+/// The value of spacial parameters are in world units.
+///
+/// The y-values of the polygon vertices are ignored. So the polygon is effectively
+/// projected onto the xz-plane at @p hmin, then extruded to @p hmax.
+///
+/// @see rcCompactHeightfield, rcMedianFilterWalkableArea
void rcMarkConvexPolyArea(rcContext* ctx, const float* verts, const int nverts,
const float hmin, const float hmax, unsigned char areaId,
rcCompactHeightfield& chf)
@@ -393,6 +431,8 @@ void rcMarkConvexPolyArea(rcContext* ctx, const float* verts, const int nverts,
for (int i = (int)c.index, ni = (int)(c.index+c.count); i < ni; ++i)
{
rcCompactSpan& s = chf.spans[i];
+ if (chf.areas[i] == RC_NULL_AREA)
+ continue;
if ((int)s.y >= miny && (int)s.y <= maxy)
{
float p[3];
@@ -411,3 +451,152 @@ void rcMarkConvexPolyArea(rcContext* ctx, const float* verts, const int nverts,
ctx->stopTimer(RC_TIMER_MARK_CONVEXPOLY_AREA);
}
+
+int rcOffsetPoly(const float* verts, const int nverts, const float offset,
+ float* outVerts, const int maxOutVerts)
+{
+ const float MITER_LIMIT = 1.20f;
+
+ int n = 0;
+
+ for (int i = 0; i < nverts; i++)
+ {
+ const int a = (i+nverts-1) % nverts;
+ const int b = i;
+ const int c = (i+1) % nverts;
+ const float* va = &verts[a*3];
+ const float* vb = &verts[b*3];
+ const float* vc = &verts[c*3];
+ float dx0 = vb[0] - va[0];
+ float dy0 = vb[2] - va[2];
+ float d0 = dx0*dx0 + dy0*dy0;
+ if (d0 > 1e-6f)
+ {
+ d0 = 1.0f/rcSqrt(d0);
+ dx0 *= d0;
+ dy0 *= d0;
+ }
+ float dx1 = vc[0] - vb[0];
+ float dy1 = vc[2] - vb[2];
+ float d1 = dx1*dx1 + dy1*dy1;
+ if (d1 > 1e-6f)
+ {
+ d1 = 1.0f/rcSqrt(d1);
+ dx1 *= d1;
+ dy1 *= d1;
+ }
+ const float dlx0 = -dy0;
+ const float dly0 = dx0;
+ const float dlx1 = -dy1;
+ const float dly1 = dx1;
+ float cross = dx1*dy0 - dx0*dy1;
+ float dmx = (dlx0 + dlx1) * 0.5f;
+ float dmy = (dly0 + dly1) * 0.5f;
+ float dmr2 = dmx*dmx + dmy*dmy;
+ bool bevel = dmr2 * MITER_LIMIT*MITER_LIMIT < 1.0f;
+ if (dmr2 > 1e-6f)
+ {
+ const float scale = 1.0f / dmr2;
+ dmx *= scale;
+ dmy *= scale;
+ }
+
+ if (bevel && cross < 0.0f)
+ {
+ if (n+2 >= maxOutVerts)
+ return 0;
+ float d = (1.0f - (dx0*dx1 + dy0*dy1))*0.5f;
+ outVerts[n*3+0] = vb[0] + (-dlx0+dx0*d)*offset;
+ outVerts[n*3+1] = vb[1];
+ outVerts[n*3+2] = vb[2] + (-dly0+dy0*d)*offset;
+ n++;
+ outVerts[n*3+0] = vb[0] + (-dlx1-dx1*d)*offset;
+ outVerts[n*3+1] = vb[1];
+ outVerts[n*3+2] = vb[2] + (-dly1-dy1*d)*offset;
+ n++;
+ }
+ else
+ {
+ if (n+1 >= maxOutVerts)
+ return 0;
+ outVerts[n*3+0] = vb[0] - dmx*offset;
+ outVerts[n*3+1] = vb[1];
+ outVerts[n*3+2] = vb[2] - dmy*offset;
+ n++;
+ }
+ }
+
+ return n;
+}
+
+
+/// @par
+///
+/// The value of spacial parameters are in world units.
+///
+/// @see rcCompactHeightfield, rcMedianFilterWalkableArea
+void rcMarkCylinderArea(rcContext* ctx, const float* pos,
+ const float r, const float h, unsigned char areaId,
+ rcCompactHeightfield& chf)
+{
+ rcAssert(ctx);
+
+ ctx->startTimer(RC_TIMER_MARK_CYLINDER_AREA);
+
+ float bmin[3], bmax[3];
+ bmin[0] = pos[0] - r;
+ bmin[1] = pos[1];
+ bmin[2] = pos[2] - r;
+ bmax[0] = pos[0] + r;
+ bmax[1] = pos[1] + h;
+ bmax[2] = pos[2] + r;
+ const float r2 = r*r;
+
+ int minx = (int)((bmin[0]-chf.bmin[0])/chf.cs);
+ int miny = (int)((bmin[1]-chf.bmin[1])/chf.ch);
+ int minz = (int)((bmin[2]-chf.bmin[2])/chf.cs);
+ int maxx = (int)((bmax[0]-chf.bmin[0])/chf.cs);
+ int maxy = (int)((bmax[1]-chf.bmin[1])/chf.ch);
+ int maxz = (int)((bmax[2]-chf.bmin[2])/chf.cs);
+
+ if (maxx < 0) return;
+ if (minx >= chf.width) return;
+ if (maxz < 0) return;
+ if (minz >= chf.height) return;
+
+ if (minx < 0) minx = 0;
+ if (maxx >= chf.width) maxx = chf.width-1;
+ if (minz < 0) minz = 0;
+ if (maxz >= chf.height) maxz = chf.height-1;
+
+
+ for (int z = minz; z <= maxz; ++z)
+ {
+ for (int x = minx; x <= maxx; ++x)
+ {
+ const rcCompactCell& c = chf.cells[x+z*chf.width];
+ for (int i = (int)c.index, ni = (int)(c.index+c.count); i < ni; ++i)
+ {
+ rcCompactSpan& s = chf.spans[i];
+
+ if (chf.areas[i] == RC_NULL_AREA)
+ continue;
+
+ if ((int)s.y >= miny && (int)s.y <= maxy)
+ {
+ const float sx = chf.bmin[0] + (x+0.5f)*chf.cs;
+ const float sz = chf.bmin[2] + (z+0.5f)*chf.cs;
+ const float dx = sx - pos[0];
+ const float dz = sz - pos[2];
+
+ if (dx*dx + dz*dz < r2)
+ {
+ chf.areas[i] = areaId;
+ }
+ }
+ }
+ }
+ }
+
+ ctx->stopTimer(RC_TIMER_MARK_CYLINDER_AREA);
+}
diff --git a/dep/recastnavigation/Recast/RecastAssert.h b/dep/recastnavigation/Recast/RecastAssert.h
index b58b8fcd286..2aca0d9a14f 100644
--- a/dep/recastnavigation/Recast/RecastAssert.h
+++ b/dep/recastnavigation/Recast/RecastAssert.h
@@ -24,7 +24,7 @@
#ifdef NDEBUG
// From http://cnicholson.net/2009/02/stupid-c-tricks-adventures-in-assert/
-# define rcAssert(x) do { (void)sizeof(x); } while(__LINE__==-1,false)
+# define rcAssert(x) do { (void)sizeof(x); } while((void)(__LINE__==-1),false)
#else
# include <assert.h>
# define rcAssert assert
diff --git a/dep/recastnavigation/Recast/RecastContour.cpp b/dep/recastnavigation/Recast/RecastContour.cpp
index 1906b6e6f44..5c324bcedfe 100644
--- a/dep/recastnavigation/Recast/RecastContour.cpp
+++ b/dep/recastnavigation/Recast/RecastContour.cpp
@@ -340,7 +340,7 @@ static void simplifyContour(rcIntArray& points, rcIntArray& simplified,
endi = ai;
}
- // Tessellate only outer edges oredges between areas.
+ // Tessellate only outer edges or edges between areas.
if ((points[ci*4+3] & RC_CONTOUR_REG_MASK) == 0 ||
(points[ci*4+3] & RC_AREA_BORDER))
{
@@ -420,15 +420,13 @@ static void simplifyContour(rcIntArray& points, rcIntArray& simplified,
// Round based on the segments in lexilogical order so that the
// max tesselation is consistent regardles in which direction
// segments are traversed.
- if (bx > ax || (bx == ax && bz > az))
+ const int n = bi < ai ? (bi+pn - ai) : (bi - ai);
+ if (n > 1)
{
- const int n = bi < ai ? (bi+pn - ai) : (bi - ai);
- maxi = (ai + n/2) % pn;
- }
- else
- {
- const int n = bi < ai ? (bi+pn - ai) : (bi - ai);
- maxi = (ai + (n+1)/2) % pn;
+ if (bx > ax || (bx == ax && bz > az))
+ maxi = (ai + n/2) % pn;
+ else
+ maxi = (ai + (n+1)/2) % pn;
}
}
}
@@ -466,7 +464,7 @@ static void simplifyContour(rcIntArray& points, rcIntArray& simplified,
// and the neighbour region is take from the next raw point.
const int ai = (simplified[i*4+3]+1) % pn;
const int bi = simplified[i*4+3];
- simplified[i*4+3] = (points[ai*4+3] & RC_CONTOUR_REG_MASK) | (points[bi*4+3] & RC_BORDER_VERTEX);
+ simplified[i*4+3] = (points[ai*4+3] & (RC_CONTOUR_REG_MASK|RC_AREA_BORDER)) | (points[bi*4+3] & RC_BORDER_VERTEX);
}
}
@@ -592,6 +590,19 @@ static bool mergeContours(rcContour& ca, rcContour& cb, int ia, int ib)
return true;
}
+/// @par
+///
+/// The raw contours will match the region outlines exactly. The @p maxError and @p maxEdgeLen
+/// parameters control how closely the simplified contours will match the raw contours.
+///
+/// Simplified contours are generated such that the vertices for portals between areas match up.
+/// (They are considered mandatory vertices.)
+///
+/// Setting @p maxEdgeLength to zero will disabled the edge length feature.
+///
+/// See the #rcConfig documentation for more information on the configuration parameters.
+///
+/// @see rcAllocContourSet, rcCompactHeightfield, rcContourSet, rcConfig
bool rcBuildContours(rcContext* ctx, rcCompactHeightfield& chf,
const float maxError, const int maxEdgeLen,
rcContourSet& cset, const int buildFlags)
@@ -600,13 +611,26 @@ bool rcBuildContours(rcContext* ctx, rcCompactHeightfield& chf,
const int w = chf.width;
const int h = chf.height;
+ const int borderSize = chf.borderSize;
ctx->startTimer(RC_TIMER_BUILD_CONTOURS);
rcVcopy(cset.bmin, chf.bmin);
rcVcopy(cset.bmax, chf.bmax);
+ if (borderSize > 0)
+ {
+ // If the heightfield was build with bordersize, remove the offset.
+ const float pad = borderSize*chf.cs;
+ cset.bmin[0] += pad;
+ cset.bmin[2] += pad;
+ cset.bmax[0] -= pad;
+ cset.bmax[2] -= pad;
+ }
cset.cs = chf.cs;
cset.ch = chf.ch;
+ cset.width = chf.width - chf.borderSize*2;
+ cset.height = chf.height - chf.borderSize*2;
+ cset.borderSize = chf.borderSize;
int maxContours = rcMax((int)chf.maxRegions, 8);
cset.conts = (rcContour*)rcAlloc(sizeof(rcContour)*maxContours, RC_ALLOC_PERM);
@@ -658,8 +682,6 @@ bool rcBuildContours(rcContext* ctx, rcCompactHeightfield& chf,
ctx->stopTimer(RC_TIMER_BUILD_CONTOURS_TRACE);
- ctx->startTimer(RC_TIMER_BUILD_CONTOURS_SIMPLIFY);
-
rcIntArray verts(256);
rcIntArray simplified(64);
@@ -682,10 +704,17 @@ bool rcBuildContours(rcContext* ctx, rcCompactHeightfield& chf,
verts.resize(0);
simplified.resize(0);
+
+ ctx->startTimer(RC_TIMER_BUILD_CONTOURS_TRACE);
walkContour(x, y, i, chf, flags, verts);
+ ctx->stopTimer(RC_TIMER_BUILD_CONTOURS_TRACE);
+
+ ctx->startTimer(RC_TIMER_BUILD_CONTOURS_SIMPLIFY);
simplifyContour(verts, simplified, maxError, maxEdgeLen, buildFlags);
removeDegenerateSegments(simplified);
+ ctx->stopTimer(RC_TIMER_BUILD_CONTOURS_SIMPLIFY);
+
// Store region->contour remap info.
// Create contour.
if (simplified.size()/4 >= 3)
@@ -720,6 +749,16 @@ bool rcBuildContours(rcContext* ctx, rcCompactHeightfield& chf,
return false;
}
memcpy(cont->verts, &simplified[0], sizeof(int)*cont->nverts*4);
+ if (borderSize > 0)
+ {
+ // If the heightfield was build with bordersize, remove the offset.
+ for (int j = 0; j < cont->nverts; ++j)
+ {
+ int* v = &cont->verts[j*4];
+ v[0] -= borderSize;
+ v[2] -= borderSize;
+ }
+ }
cont->nrverts = verts.size()/4;
cont->rverts = (int*)rcAlloc(sizeof(int)*cont->nrverts*4, RC_ALLOC_PERM);
@@ -729,6 +768,16 @@ bool rcBuildContours(rcContext* ctx, rcCompactHeightfield& chf,
return false;
}
memcpy(cont->rverts, &verts[0], sizeof(int)*cont->nrverts*4);
+ if (borderSize > 0)
+ {
+ // If the heightfield was build with bordersize, remove the offset.
+ for (int j = 0; j < cont->nrverts; ++j)
+ {
+ int* v = &cont->rverts[j*4];
+ v[0] -= borderSize;
+ v[2] -= borderSize;
+ }
+ }
/* cont->cx = cont->cy = cont->cz = 0;
for (int i = 0; i < cont->nverts; ++i)
@@ -796,8 +845,6 @@ bool rcBuildContours(rcContext* ctx, rcCompactHeightfield& chf,
}
}
- ctx->stopTimer(RC_TIMER_BUILD_CONTOURS_SIMPLIFY);
-
ctx->stopTimer(RC_TIMER_BUILD_CONTOURS);
return true;
diff --git a/dep/recastnavigation/Recast/RecastFilter.cpp b/dep/recastnavigation/Recast/RecastFilter.cpp
index d01808a79a8..bf985c362c9 100644
--- a/dep/recastnavigation/Recast/RecastFilter.cpp
+++ b/dep/recastnavigation/Recast/RecastFilter.cpp
@@ -22,7 +22,17 @@
#include "Recast.h"
#include "RecastAssert.h"
-
+/// @par
+///
+/// Allows the formation of walkable regions that will flow over low lying
+/// objects such as curbs, and up structures such as stairways.
+///
+/// Two neighboring spans are walkable if: <tt>rcAbs(currentSpan.smax - neighborSpan.smax) < waklableClimb</tt>
+///
+/// @warning Will override the effect of #rcFilterLedgeSpans. So if both filters are used, call
+/// #rcFilterLedgeSpans after calling this filter.
+///
+/// @see rcHeightfield, rcConfig
void rcFilterLowHangingWalkableObstacles(rcContext* ctx, const int walkableClimb, rcHeightfield& solid)
{
rcAssert(ctx);
@@ -38,6 +48,7 @@ void rcFilterLowHangingWalkableObstacles(rcContext* ctx, const int walkableClimb
{
rcSpan* ps = 0;
bool previousWalkable = false;
+ unsigned char previousArea = RC_NULL_AREA;
for (rcSpan* s = solid.spans[x + y*w]; s; ps = s, s = s->next)
{
@@ -47,18 +58,29 @@ void rcFilterLowHangingWalkableObstacles(rcContext* ctx, const int walkableClimb
if (!walkable && previousWalkable)
{
if (rcAbs((int)s->smax - (int)ps->smax) <= walkableClimb)
- s->area = RC_NULL_AREA;
+ s->area = previousArea;
}
// Copy walkable flag so that it cannot propagate
// past multiple non-walkable objects.
previousWalkable = walkable;
+ previousArea = s->area;
}
}
}
ctx->stopTimer(RC_TIMER_FILTER_LOW_OBSTACLES);
}
-
+
+/// @par
+///
+/// A ledge is a span with one or more neighbors whose maximum is further away than @p walkableClimb
+/// from the current span's maximum.
+/// This method removes the impact of the overestimation of conservative voxelization
+/// so the resulting mesh will not have regions hanging in the air over ledges.
+///
+/// A span is a ledge if: <tt>rcAbs(currentSpan.smax - neighborSpan.smax) > walkableClimb</tt>
+///
+/// @see rcHeightfield, rcConfig
void rcFilterLedgeSpans(rcContext* ctx, const int walkableHeight, const int walkableClimb,
rcHeightfield& solid)
{
@@ -149,6 +171,12 @@ void rcFilterLedgeSpans(rcContext* ctx, const int walkableHeight, const int walk
ctx->stopTimer(RC_TIMER_FILTER_BORDER);
}
+/// @par
+///
+/// For this filter, the clearance above the span is the distance from the span's
+/// maximum to the next higher span's minimum. (Same grid column.)
+///
+/// @see rcHeightfield, rcConfig
void rcFilterWalkableLowHeightSpans(rcContext* ctx, int walkableHeight, rcHeightfield& solid)
{
rcAssert(ctx);
diff --git a/dep/recastnavigation/Recast/RecastLayers.cpp b/dep/recastnavigation/Recast/RecastLayers.cpp
new file mode 100644
index 00000000000..5ea6cb79d16
--- /dev/null
+++ b/dep/recastnavigation/Recast/RecastLayers.cpp
@@ -0,0 +1,620 @@
+//
+// Copyright (c) 2009-2010 Mikko Mononen memon@inside.org
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+// 1. 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.
+// 2. Altered source versions must be plainly marked as such, and must not be
+// misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+//
+
+#include <float.h>
+#define _USE_MATH_DEFINES
+#include <math.h>
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include "Recast.h"
+#include "RecastAlloc.h"
+#include "RecastAssert.h"
+
+
+static const int RC_MAX_LAYERS = RC_NOT_CONNECTED;
+static const int RC_MAX_NEIS = 16;
+
+struct rcLayerRegion
+{
+ unsigned char layers[RC_MAX_LAYERS];
+ unsigned char neis[RC_MAX_NEIS];
+ unsigned short ymin, ymax;
+ unsigned char layerId; // Layer ID
+ unsigned char nlayers; // Layer count
+ unsigned char nneis; // Neighbour count
+ unsigned char base; // Flag indicating if the region is hte base of merged regions.
+};
+
+
+static void addUnique(unsigned char* a, unsigned char& an, unsigned char v)
+{
+ const int n = (int)an;
+ for (int i = 0; i < n; ++i)
+ if (a[i] == v)
+ return;
+ a[an] = v;
+ an++;
+}
+
+static bool contains(const unsigned char* a, const unsigned char an, const unsigned char v)
+{
+ const int n = (int)an;
+ for (int i = 0; i < n; ++i)
+ if (a[i] == v)
+ return true;
+ return false;
+}
+
+inline bool overlapRange(const unsigned short amin, const unsigned short amax,
+ const unsigned short bmin, const unsigned short bmax)
+{
+ return (amin > bmax || amax < bmin) ? false : true;
+}
+
+
+
+struct rcLayerSweepSpan
+{
+ unsigned short ns; // number samples
+ unsigned char id; // region id
+ unsigned char nei; // neighbour id
+};
+
+/// @par
+///
+/// See the #rcConfig documentation for more information on the configuration parameters.
+///
+/// @see rcAllocHeightfieldLayerSet, rcCompactHeightfield, rcHeightfieldLayerSet, rcConfig
+bool rcBuildHeightfieldLayers(rcContext* ctx, rcCompactHeightfield& chf,
+ const int borderSize, const int walkableHeight,
+ rcHeightfieldLayerSet& lset)
+{
+ rcAssert(ctx);
+
+ ctx->startTimer(RC_TIMER_BUILD_LAYERS);
+
+ const int w = chf.width;
+ const int h = chf.height;
+
+ rcScopedDelete<unsigned char> srcReg = (unsigned char*)rcAlloc(sizeof(unsigned char)*chf.spanCount, RC_ALLOC_TEMP);
+ if (!srcReg)
+ {
+ ctx->log(RC_LOG_ERROR, "rcBuildHeightfieldLayers: Out of memory 'srcReg' (%d).", chf.spanCount);
+ return false;
+ }
+ memset(srcReg,0xff,sizeof(unsigned char)*chf.spanCount);
+
+ const int nsweeps = chf.width;
+ rcScopedDelete<rcLayerSweepSpan> sweeps = (rcLayerSweepSpan*)rcAlloc(sizeof(rcLayerSweepSpan)*nsweeps, RC_ALLOC_TEMP);
+ if (!sweeps)
+ {
+ ctx->log(RC_LOG_ERROR, "rcBuildHeightfieldLayers: Out of memory 'sweeps' (%d).", nsweeps);
+ return false;
+ }
+
+
+ // Partition walkable area into monotone regions.
+ int prevCount[256];
+ unsigned char regId = 0;
+
+ for (int y = borderSize; y < h-borderSize; ++y)
+ {
+ memset(prevCount,0,sizeof(int)*regId);
+ unsigned char sweepId = 0;
+
+ for (int x = borderSize; x < w-borderSize; ++x)
+ {
+ const rcCompactCell& c = chf.cells[x+y*w];
+
+ for (int i = (int)c.index, ni = (int)(c.index+c.count); i < ni; ++i)
+ {
+ const rcCompactSpan& s = chf.spans[i];
+ if (chf.areas[i] == RC_NULL_AREA) continue;
+
+ unsigned char sid = 0xff;
+
+ // -x
+ if (rcGetCon(s, 0) != RC_NOT_CONNECTED)
+ {
+ const int ax = x + rcGetDirOffsetX(0);
+ const int ay = y + rcGetDirOffsetY(0);
+ const int ai = (int)chf.cells[ax+ay*w].index + rcGetCon(s, 0);
+ if (chf.areas[ai] != RC_NULL_AREA && srcReg[ai] != 0xff)
+ sid = srcReg[ai];
+ }
+
+ if (sid == 0xff)
+ {
+ sid = sweepId++;
+ sweeps[sid].nei = 0xff;
+ sweeps[sid].ns = 0;
+ }
+
+ // -y
+ if (rcGetCon(s,3) != RC_NOT_CONNECTED)
+ {
+ const int ax = x + rcGetDirOffsetX(3);
+ const int ay = y + rcGetDirOffsetY(3);
+ const int ai = (int)chf.cells[ax+ay*w].index + rcGetCon(s, 3);
+ const unsigned char nr = srcReg[ai];
+ if (nr != 0xff)
+ {
+ // Set neighbour when first valid neighbour is encoutered.
+ if (sweeps[sid].ns == 0)
+ sweeps[sid].nei = nr;
+
+ if (sweeps[sid].nei == nr)
+ {
+ // Update existing neighbour
+ sweeps[sid].ns++;
+ prevCount[nr]++;
+ }
+ else
+ {
+ // This is hit if there is nore than one neighbour.
+ // Invalidate the neighbour.
+ sweeps[sid].nei = 0xff;
+ }
+ }
+ }
+
+ srcReg[i] = sid;
+ }
+ }
+
+ // Create unique ID.
+ for (int i = 0; i < sweepId; ++i)
+ {
+ // If the neighbour is set and there is only one continuous connection to it,
+ // the sweep will be merged with the previous one, else new region is created.
+ if (sweeps[i].nei != 0xff && prevCount[sweeps[i].nei] == (int)sweeps[i].ns)
+ {
+ sweeps[i].id = sweeps[i].nei;
+ }
+ else
+ {
+ if (regId == 255)
+ {
+ ctx->log(RC_LOG_ERROR, "rcBuildHeightfieldLayers: Region ID overflow.");
+ return false;
+ }
+ sweeps[i].id = regId++;
+ }
+ }
+
+ // Remap local sweep ids to region ids.
+ for (int x = borderSize; x < w-borderSize; ++x)
+ {
+ const rcCompactCell& c = chf.cells[x+y*w];
+ for (int i = (int)c.index, ni = (int)(c.index+c.count); i < ni; ++i)
+ {
+ if (srcReg[i] != 0xff)
+ srcReg[i] = sweeps[srcReg[i]].id;
+ }
+ }
+ }
+
+ // Allocate and init layer regions.
+ const int nregs = (int)regId;
+ rcScopedDelete<rcLayerRegion> regs = (rcLayerRegion*)rcAlloc(sizeof(rcLayerRegion)*nregs, RC_ALLOC_TEMP);
+ if (!regs)
+ {
+ ctx->log(RC_LOG_ERROR, "rcBuildHeightfieldLayers: Out of memory 'regs' (%d).", nregs);
+ return false;
+ }
+ memset(regs, 0, sizeof(rcLayerRegion)*nregs);
+ for (int i = 0; i < nregs; ++i)
+ {
+ regs[i].layerId = 0xff;
+ regs[i].ymin = 0xffff;
+ regs[i].ymax = 0;
+ }
+
+ // Find region neighbours and overlapping regions.
+ for (int y = 0; y < h; ++y)
+ {
+ for (int x = 0; x < w; ++x)
+ {
+ const rcCompactCell& c = chf.cells[x+y*w];
+
+ unsigned char lregs[RC_MAX_LAYERS];
+ int nlregs = 0;
+
+ for (int i = (int)c.index, ni = (int)(c.index+c.count); i < ni; ++i)
+ {
+ const rcCompactSpan& s = chf.spans[i];
+ const unsigned char ri = srcReg[i];
+ if (ri == 0xff) continue;
+
+ regs[ri].ymin = rcMin(regs[ri].ymin, s.y);
+ regs[ri].ymax = rcMax(regs[ri].ymax, s.y);
+
+ // Collect all region layers.
+ if (nlregs < RC_MAX_LAYERS)
+ lregs[nlregs++] = ri;
+
+ // Update neighbours
+ for (int dir = 0; dir < 4; ++dir)
+ {
+ if (rcGetCon(s, dir) != RC_NOT_CONNECTED)
+ {
+ const int ax = x + rcGetDirOffsetX(dir);
+ const int ay = y + rcGetDirOffsetY(dir);
+ const int ai = (int)chf.cells[ax+ay*w].index + rcGetCon(s, dir);
+ const unsigned char rai = srcReg[ai];
+ if (rai != 0xff && rai != ri)
+ addUnique(regs[ri].neis, regs[ri].nneis, rai);
+ }
+ }
+
+ }
+
+ // Update overlapping regions.
+ for (int i = 0; i < nlregs-1; ++i)
+ {
+ for (int j = i+1; j < nlregs; ++j)
+ {
+ if (lregs[i] != lregs[j])
+ {
+ rcLayerRegion& ri = regs[lregs[i]];
+ rcLayerRegion& rj = regs[lregs[j]];
+ addUnique(ri.layers, ri.nlayers, lregs[j]);
+ addUnique(rj.layers, rj.nlayers, lregs[i]);
+ }
+ }
+ }
+
+ }
+ }
+
+ // Create 2D layers from regions.
+ unsigned char layerId = 0;
+
+ static const int MAX_STACK = 64;
+ unsigned char stack[MAX_STACK];
+ int nstack = 0;
+
+ for (int i = 0; i < nregs; ++i)
+ {
+ rcLayerRegion& root = regs[i];
+ // Skip alreadu visited.
+ if (root.layerId != 0xff)
+ continue;
+
+ // Start search.
+ root.layerId = layerId;
+ root.base = 1;
+
+ nstack = 0;
+ stack[nstack++] = (unsigned char)i;
+
+ while (nstack)
+ {
+ // Pop front
+ rcLayerRegion& reg = regs[stack[0]];
+ nstack--;
+ for (int j = 0; j < nstack; ++j)
+ stack[j] = stack[j+1];
+
+ const int nneis = (int)reg.nneis;
+ for (int j = 0; j < nneis; ++j)
+ {
+ const unsigned char nei = reg.neis[j];
+ rcLayerRegion& regn = regs[nei];
+ // Skip already visited.
+ if (regn.layerId != 0xff)
+ continue;
+ // Skip if the neighbour is overlapping root region.
+ if (contains(root.layers, root.nlayers, nei))
+ continue;
+ // Skip if the height range would become too large.
+ const int ymin = rcMin(root.ymin, regn.ymin);
+ const int ymax = rcMax(root.ymax, regn.ymax); // Edited by TC
+ if ((ymax - ymin) >= 255)
+ continue;
+
+ if (nstack < MAX_STACK)
+ {
+ // Deepen
+ stack[nstack++] = (unsigned char)nei;
+
+ // Mark layer id
+ regn.layerId = layerId;
+ // Merge current layers to root.
+ for (int k = 0; k < regn.nlayers; ++k)
+ addUnique(root.layers, root.nlayers, regn.layers[k]);
+ root.ymin = rcMin(root.ymin, regn.ymin);
+ root.ymax = rcMax(root.ymax, regn.ymax);
+ }
+ }
+ }
+
+ layerId++;
+ }
+
+ // Merge non-overlapping regions that are close in height.
+ const unsigned short mergeHeight = (unsigned short)walkableHeight * 4;
+
+ for (int i = 0; i < nregs; ++i)
+ {
+ rcLayerRegion& ri = regs[i];
+ if (!ri.base) continue;
+
+ unsigned char newId = ri.layerId;
+
+ for (;;)
+ {
+ unsigned char oldId = 0xff;
+
+ for (int j = 0; j < nregs; ++j)
+ {
+ if (i == j) continue;
+ rcLayerRegion& rj = regs[j];
+ if (!rj.base) continue;
+
+ // Skip if teh regions are not close to each other.
+ if (!overlapRange(ri.ymin,ri.ymax+mergeHeight, rj.ymin,rj.ymax+mergeHeight))
+ continue;
+ // Skip if the height range would become too large.
+ const int ymin = rcMin(ri.ymin, rj.ymin);
+ const int ymax = rcMax(ri.ymax, rj.ymax); // Edited by TC
+ if ((ymax - ymin) >= 255)
+ continue;
+
+ // Make sure that there is no overlap when mergin 'ri' and 'rj'.
+ bool overlap = false;
+ // Iterate over all regions which have the same layerId as 'rj'
+ for (int k = 0; k < nregs; ++k)
+ {
+ if (regs[k].layerId != rj.layerId)
+ continue;
+ // Check if region 'k' is overlapping region 'ri'
+ // Index to 'regs' is the same as region id.
+ if (contains(ri.layers,ri.nlayers, (unsigned char)k))
+ {
+ overlap = true;
+ break;
+ }
+ }
+ // Cannot merge of regions overlap.
+ if (overlap)
+ continue;
+
+ // Can merge i and j.
+ oldId = rj.layerId;
+ break;
+ }
+
+ // Could not find anything to merge with, stop.
+ if (oldId == 0xff)
+ break;
+
+ // Merge
+ for (int j = 0; j < nregs; ++j)
+ {
+ rcLayerRegion& rj = regs[j];
+ if (rj.layerId == oldId)
+ {
+ rj.base = 0;
+ // Remap layerIds.
+ rj.layerId = newId;
+ // Add overlaid layers from 'rj' to 'ri'.
+ for (int k = 0; k < rj.nlayers; ++k)
+ addUnique(ri.layers, ri.nlayers, rj.layers[k]);
+ // Update heigh bounds.
+ ri.ymin = rcMin(ri.ymin, rj.ymin);
+ ri.ymax = rcMax(ri.ymax, rj.ymax);
+ }
+ }
+ }
+ }
+
+ // Compact layerIds
+ unsigned char remap[256];
+ memset(remap, 0, 256);
+
+ // Find number of unique layers.
+ layerId = 0;
+ for (int i = 0; i < nregs; ++i)
+ remap[regs[i].layerId] = 1;
+ for (int i = 0; i < 256; ++i)
+ {
+ if (remap[i])
+ remap[i] = layerId++;
+ else
+ remap[i] = 0xff;
+ }
+ // Remap ids.
+ for (int i = 0; i < nregs; ++i)
+ regs[i].layerId = remap[regs[i].layerId];
+
+ // No layers, return empty.
+ if (layerId == 0)
+ {
+ ctx->stopTimer(RC_TIMER_BUILD_LAYERS);
+ return true;
+ }
+
+ // Create layers.
+ rcAssert(lset.layers == 0);
+
+ const int lw = w - borderSize*2;
+ const int lh = h - borderSize*2;
+
+ // Build contracted bbox for layers.
+ float bmin[3], bmax[3];
+ rcVcopy(bmin, chf.bmin);
+ rcVcopy(bmax, chf.bmax);
+ bmin[0] += borderSize*chf.cs;
+ bmin[2] += borderSize*chf.cs;
+ bmax[0] -= borderSize*chf.cs;
+ bmax[2] -= borderSize*chf.cs;
+
+ lset.nlayers = (int)layerId;
+
+ lset.layers = (rcHeightfieldLayer*)rcAlloc(sizeof(rcHeightfieldLayer)*lset.nlayers, RC_ALLOC_PERM);
+ if (!lset.layers)
+ {
+ ctx->log(RC_LOG_ERROR, "rcBuildHeightfieldLayers: Out of memory 'layers' (%d).", lset.nlayers);
+ return false;
+ }
+ memset(lset.layers, 0, sizeof(rcHeightfieldLayer)*lset.nlayers);
+
+
+ // Store layers.
+ for (int i = 0; i < lset.nlayers; ++i)
+ {
+ unsigned char curId = (unsigned char)i;
+
+ // Allocate memory for the current layer.
+ rcHeightfieldLayer* layer = &lset.layers[i];
+ memset(layer, 0, sizeof(rcHeightfieldLayer));
+
+ const int gridSize = sizeof(unsigned char)*lw*lh;
+
+ layer->heights = (unsigned char*)rcAlloc(gridSize, RC_ALLOC_PERM);
+ if (!layer->heights)
+ {
+ ctx->log(RC_LOG_ERROR, "rcBuildHeightfieldLayers: Out of memory 'heights' (%d).", gridSize);
+ return false;
+ }
+ memset(layer->heights, 0xff, gridSize);
+
+ layer->areas = (unsigned char*)rcAlloc(gridSize, RC_ALLOC_PERM);
+ if (!layer->areas)
+ {
+ ctx->log(RC_LOG_ERROR, "rcBuildHeightfieldLayers: Out of memory 'areas' (%d).", gridSize);
+ return false;
+ }
+ memset(layer->areas, 0, gridSize);
+
+ layer->cons = (unsigned char*)rcAlloc(gridSize, RC_ALLOC_PERM);
+ if (!layer->cons)
+ {
+ ctx->log(RC_LOG_ERROR, "rcBuildHeightfieldLayers: Out of memory 'cons' (%d).", gridSize);
+ return false;
+ }
+ memset(layer->cons, 0, gridSize);
+
+ // Find layer height bounds.
+ int hmin = 0, hmax = 0;
+ for (int j = 0; j < nregs; ++j)
+ {
+ if (regs[j].base && regs[j].layerId == curId)
+ {
+ hmin = (int)regs[j].ymin;
+ hmax = (int)regs[j].ymax;
+ }
+ }
+
+ layer->width = lw;
+ layer->height = lh;
+ layer->cs = chf.cs;
+ layer->ch = chf.ch;
+
+ // Adjust the bbox to fit the heighfield.
+ rcVcopy(layer->bmin, bmin);
+ rcVcopy(layer->bmax, bmax);
+ layer->bmin[1] = bmin[1] + hmin*chf.ch;
+ layer->bmax[1] = bmin[1] + hmax*chf.ch;
+ layer->hmin = hmin;
+ layer->hmax = hmax;
+
+ // Update usable data region.
+ layer->minx = layer->width;
+ layer->maxx = 0;
+ layer->miny = layer->height;
+ layer->maxy = 0;
+
+ // Copy height and area from compact heighfield.
+ for (int y = 0; y < lh; ++y)
+ {
+ for (int x = 0; x < lw; ++x)
+ {
+ const int cx = borderSize+x;
+ const int cy = borderSize+y;
+ const rcCompactCell& c = chf.cells[cx+cy*w];
+ for (int j = (int)c.index, nj = (int)(c.index+c.count); j < nj; ++j)
+ {
+ const rcCompactSpan& s = chf.spans[j];
+ // Skip unassigned regions.
+ if (srcReg[j] == 0xff)
+ continue;
+ // Skip of does nto belong to current layer.
+ unsigned char lid = regs[srcReg[j]].layerId;
+ if (lid != curId)
+ continue;
+
+ // Update data bounds.
+ layer->minx = rcMin(layer->minx, x);
+ layer->maxx = rcMax(layer->maxx, x);
+ layer->miny = rcMin(layer->miny, y);
+ layer->maxy = rcMax(layer->maxy, y);
+
+ // Store height and area type.
+ const int idx = x+y*lw;
+ layer->heights[idx] = (unsigned char)(s.y - hmin);
+ layer->areas[idx] = chf.areas[j];
+
+ // Check connection.
+ unsigned char portal = 0;
+ unsigned char con = 0;
+ for (int dir = 0; dir < 4; ++dir)
+ {
+ if (rcGetCon(s, dir) != RC_NOT_CONNECTED)
+ {
+ const int ax = cx + rcGetDirOffsetX(dir);
+ const int ay = cy + rcGetDirOffsetY(dir);
+ const int ai = (int)chf.cells[ax+ay*w].index + rcGetCon(s, dir);
+ unsigned char alid = srcReg[ai] != 0xff ? regs[srcReg[ai]].layerId : 0xff;
+ // Portal mask
+ if (chf.areas[ai] != RC_NULL_AREA && lid != alid)
+ {
+ portal |= (unsigned char)(1<<dir);
+ // Update height so that it matches on both sides of the portal.
+ const rcCompactSpan& as = chf.spans[ai];
+ if (as.y > hmin)
+ layer->heights[idx] = rcMax(layer->heights[idx], (unsigned char)(as.y - hmin));
+ }
+ // Valid connection mask
+ if (chf.areas[ai] != RC_NULL_AREA && lid == alid)
+ {
+ const int nx = ax - borderSize;
+ const int ny = ay - borderSize;
+ if (nx >= 0 && ny >= 0 && nx < lw && ny < lh)
+ con |= (unsigned char)(1<<dir);
+ }
+ }
+ }
+
+ layer->cons[idx] = (portal << 4) | con;
+ }
+ }
+ }
+
+ if (layer->minx > layer->maxx)
+ layer->minx = layer->maxx = 0;
+ if (layer->miny > layer->maxy)
+ layer->miny = layer->maxy = 0;
+ }
+
+ ctx->stopTimer(RC_TIMER_BUILD_LAYERS);
+
+ return true;
+}
diff --git a/dep/recastnavigation/Recast/RecastMesh.cpp b/dep/recastnavigation/Recast/RecastMesh.cpp
index 4b33c106d10..13aad2af01c 100644
--- a/dep/recastnavigation/Recast/RecastMesh.cpp
+++ b/dep/recastnavigation/Recast/RecastMesh.cpp
@@ -59,6 +59,7 @@ static bool buildMeshAdjacency(unsigned short* polys, const int npolys,
unsigned short* t = &polys[i*vertsPerPoly*2];
for (int j = 0; j < vertsPerPoly; ++j)
{
+ if (t[j] == RC_MESH_NULL_IDX) break;
unsigned short v0 = t[j];
unsigned short v1 = (j+1 >= vertsPerPoly || t[j+1] == RC_MESH_NULL_IDX) ? t[0] : t[j+1];
if (v0 < v1)
@@ -83,6 +84,7 @@ static bool buildMeshAdjacency(unsigned short* polys, const int npolys,
unsigned short* t = &polys[i*vertsPerPoly*2];
for (int j = 0; j < vertsPerPoly; ++j)
{
+ if (t[j] == RC_MESH_NULL_IDX) break;
unsigned short v0 = t[j];
unsigned short v1 = (j+1 >= vertsPerPoly || t[j+1] == RC_MESH_NULL_IDX) ? t[0] : t[j+1];
if (v0 > v1)
@@ -195,7 +197,7 @@ inline bool collinear(const int* a, const int* b, const int* c)
// Returns true iff ab properly intersects cd: they share
// a point interior to both segments. The properness of the
// intersection is ensured by using strict leftness.
-bool intersectProp(const int* a, const int* b, const int* c, const int* d)
+static bool intersectProp(const int* a, const int* b, const int* c, const int* d)
{
// Eliminate improper cases.
if (collinear(a,b,c) || collinear(a,b,d) ||
@@ -470,6 +472,7 @@ static void mergePolys(unsigned short* pa, unsigned short* pb, int ea, int eb,
memcpy(pa, tmp, sizeof(unsigned short)*nvp);
}
+
static void pushFront(int v, int* arr, int& an)
{
an++;
@@ -547,9 +550,9 @@ static bool canRemoveVertex(rcContext* ctx, rcPolyMesh& mesh, const unsigned sho
// Check if the edge exists
bool exists = false;
- for (int k = 0; k < nedges; ++k)
+ for (int m = 0; m < nedges; ++m)
{
- int* e = &edges[k*3];
+ int* e = &edges[m*3];
if (e[1] == b)
{
// Exists, increment vertex share count.
@@ -892,8 +895,13 @@ static bool removeVertex(rcContext* ctx, rcPolyMesh& mesh, const unsigned short
return true;
}
-
-bool rcBuildPolyMesh(rcContext* ctx, rcContourSet& cset, int nvp, rcPolyMesh& mesh)
+/// @par
+///
+/// @note If the mesh data is to be used to construct a Detour navigation mesh, then the upper
+/// limit must be retricted to <= #DT_VERTS_PER_POLYGON.
+///
+/// @see rcAllocPolyMesh, rcContourSet, rcPolyMesh, rcConfig
+bool rcBuildPolyMesh(rcContext* ctx, rcContourSet& cset, const int nvp, rcPolyMesh& mesh)
{
rcAssert(ctx);
@@ -903,6 +911,7 @@ bool rcBuildPolyMesh(rcContext* ctx, rcContourSet& cset, int nvp, rcPolyMesh& me
rcVcopy(mesh.bmax, cset.bmax);
mesh.cs = cset.cs;
mesh.ch = cset.ch;
+ mesh.borderSize = cset.borderSize;
int maxVertices = 0;
int maxTris = 0;
@@ -925,7 +934,7 @@ bool rcBuildPolyMesh(rcContext* ctx, rcContourSet& cset, int nvp, rcPolyMesh& me
rcScopedDelete<unsigned char> vflags = (unsigned char*)rcAlloc(sizeof(unsigned char)*maxVertices, RC_ALLOC_TEMP);
if (!vflags)
{
- ctx->log(RC_LOG_ERROR, "rcBuildPolyMesh: Out of memory 'mesh.verts' (%d).", maxVertices);
+ ctx->log(RC_LOG_ERROR, "rcBuildPolyMesh: Out of memory 'vflags' (%d).", maxVertices);
return false;
}
memset(vflags, 0, maxVertices);
@@ -936,7 +945,7 @@ bool rcBuildPolyMesh(rcContext* ctx, rcContourSet& cset, int nvp, rcPolyMesh& me
ctx->log(RC_LOG_ERROR, "rcBuildPolyMesh: Out of memory 'mesh.verts' (%d).", maxVertices);
return false;
}
- mesh.polys = (unsigned short*)rcAlloc(sizeof(unsigned short)*maxTris*nvp*2*2, RC_ALLOC_PERM);
+ mesh.polys = (unsigned short*)rcAlloc(sizeof(unsigned short)*maxTris*nvp*2, RC_ALLOC_PERM);
if (!mesh.polys)
{
ctx->log(RC_LOG_ERROR, "rcBuildPolyMesh: Out of memory 'mesh.polys' (%d).", maxTris*nvp*2);
@@ -1044,7 +1053,7 @@ bool rcBuildPolyMesh(rcContext* ctx, rcContourSet& cset, int nvp, rcPolyMesh& me
vflags[indices[j]] = 1;
}
}
-
+
// Build initial polygons.
int npolys = 0;
memset(polys, 0xff, maxVertsPerCont*nvp*sizeof(unsigned short));
@@ -1141,6 +1150,7 @@ bool rcBuildPolyMesh(rcContext* ctx, rcContourSet& cset, int nvp, rcPolyMesh& me
}
// Remove vertex
// Note: mesh.nverts is already decremented inside removeVertex()!
+ // Fixup vertex flags
for (int j = i; j < mesh.nverts; ++j)
vflags[j] = vflags[j+1];
--i;
@@ -1153,6 +1163,37 @@ bool rcBuildPolyMesh(rcContext* ctx, rcContourSet& cset, int nvp, rcPolyMesh& me
ctx->log(RC_LOG_ERROR, "rcBuildPolyMesh: Adjacency failed.");
return false;
}
+
+ // Find portal edges
+ if (mesh.borderSize > 0)
+ {
+ const int w = cset.width;
+ const int h = cset.height;
+ for (int i = 0; i < mesh.npolys; ++i)
+ {
+ unsigned short* p = &mesh.polys[i*2*nvp];
+ for (int j = 0; j < nvp; ++j)
+ {
+ if (p[j] == RC_MESH_NULL_IDX) break;
+ // Skip connected edges.
+ if (p[nvp+j] != RC_MESH_NULL_IDX)
+ continue;
+ int nj = j+1;
+ if (nj >= nvp || p[nj] == RC_MESH_NULL_IDX) nj = 0;
+ const unsigned short* va = &mesh.verts[p[j]*3];
+ const unsigned short* vb = &mesh.verts[p[nj]*3];
+
+ if ((int)va[0] == 0 && (int)vb[0] == 0)
+ p[nvp+j] = 0x8000 | 0;
+ else if ((int)va[2] == h && (int)vb[2] == h)
+ p[nvp+j] = 0x8000 | 1;
+ else if ((int)va[0] == w && (int)vb[0] == w)
+ p[nvp+j] = 0x8000 | 2;
+ else if ((int)va[2] == 0 && (int)vb[2] == 0)
+ p[nvp+j] = 0x8000 | 3;
+ }
+ }
+ }
// Just allocate the mesh flags array. The user is resposible to fill it.
mesh.flags = (unsigned short*)rcAlloc(sizeof(unsigned short)*mesh.npolys, RC_ALLOC_PERM);
@@ -1165,11 +1206,11 @@ bool rcBuildPolyMesh(rcContext* ctx, rcContourSet& cset, int nvp, rcPolyMesh& me
if (mesh.nverts > 0xffff)
{
- ctx->log(RC_LOG_ERROR, "rcMergePolyMeshes: The resulting mesh has too many vertices %d (max %d). Data can be corrupted.", mesh.nverts, 0xffff);
+ ctx->log(RC_LOG_ERROR, "rcBuildPolyMesh: The resulting mesh has too many vertices %d (max %d). Data can be corrupted.", mesh.nverts, 0xffff);
}
if (mesh.npolys > 0xffff)
{
- ctx->log(RC_LOG_ERROR, "rcMergePolyMeshes: The resulting mesh has too many polygons %d (max %d). Data can be corrupted.", mesh.npolys, 0xffff);
+ ctx->log(RC_LOG_ERROR, "rcBuildPolyMesh: The resulting mesh has too many polygons %d (max %d). Data can be corrupted.", mesh.npolys, 0xffff);
}
ctx->stopTimer(RC_TIMER_BUILD_POLYMESH);
@@ -1177,6 +1218,7 @@ bool rcBuildPolyMesh(rcContext* ctx, rcContourSet& cset, int nvp, rcPolyMesh& me
return true;
}
+/// @see rcAllocPolyMesh, rcPolyMesh
bool rcMergePolyMeshes(rcContext* ctx, rcPolyMesh** meshes, const int nmeshes, rcPolyMesh& mesh)
{
rcAssert(ctx);
@@ -1268,7 +1310,7 @@ bool rcMergePolyMeshes(rcContext* ctx, rcPolyMesh** meshes, const int nmeshes, r
ctx->log(RC_LOG_ERROR, "rcMergePolyMeshes: Out of memory 'vremap' (%d).", maxVertsPerMesh);
return false;
}
- memset(nextVert, 0, sizeof(int)*maxVerts);
+ memset(vremap, 0, sizeof(unsigned short)*maxVertsPerMesh);
for (int i = 0; i < nmeshes; ++i)
{
@@ -1320,3 +1362,67 @@ bool rcMergePolyMeshes(rcContext* ctx, rcPolyMesh** meshes, const int nmeshes, r
return true;
}
+
+bool rcCopyPolyMesh(rcContext* ctx, const rcPolyMesh& src, rcPolyMesh& dst)
+{
+ rcAssert(ctx);
+
+ // Destination must be empty.
+ rcAssert(dst.verts == 0);
+ rcAssert(dst.polys == 0);
+ rcAssert(dst.regs == 0);
+ rcAssert(dst.areas == 0);
+ rcAssert(dst.flags == 0);
+
+ dst.nverts = src.nverts;
+ dst.npolys = src.npolys;
+ dst.maxpolys = src.npolys;
+ dst.nvp = src.nvp;
+ rcVcopy(dst.bmin, src.bmin);
+ rcVcopy(dst.bmax, src.bmax);
+ dst.cs = src.cs;
+ dst.ch = src.ch;
+ dst.borderSize = src.borderSize;
+
+ dst.verts = (unsigned short*)rcAlloc(sizeof(unsigned short)*src.nverts*3, RC_ALLOC_PERM);
+ if (!dst.verts)
+ {
+ ctx->log(RC_LOG_ERROR, "rcCopyPolyMesh: Out of memory 'dst.verts' (%d).", src.nverts*3);
+ return false;
+ }
+ memcpy(dst.verts, src.verts, sizeof(unsigned short)*src.nverts*3);
+
+ dst.polys = (unsigned short*)rcAlloc(sizeof(unsigned short)*src.npolys*2*src.nvp, RC_ALLOC_PERM);
+ if (!dst.polys)
+ {
+ ctx->log(RC_LOG_ERROR, "rcCopyPolyMesh: Out of memory 'dst.polys' (%d).", src.npolys*2*src.nvp);
+ return false;
+ }
+ memcpy(dst.polys, src.polys, sizeof(unsigned short)*src.npolys*2*src.nvp);
+
+ dst.regs = (unsigned short*)rcAlloc(sizeof(unsigned short)*src.npolys, RC_ALLOC_PERM);
+ if (!dst.regs)
+ {
+ ctx->log(RC_LOG_ERROR, "rcCopyPolyMesh: Out of memory 'dst.regs' (%d).", src.npolys);
+ return false;
+ }
+ memcpy(dst.regs, src.regs, sizeof(unsigned short)*src.npolys);
+
+ dst.areas = (unsigned char*)rcAlloc(sizeof(unsigned char)*src.npolys, RC_ALLOC_PERM);
+ if (!dst.areas)
+ {
+ ctx->log(RC_LOG_ERROR, "rcCopyPolyMesh: Out of memory 'dst.areas' (%d).", src.npolys);
+ return false;
+ }
+ memcpy(dst.areas, src.areas, sizeof(unsigned char)*src.npolys);
+
+ dst.flags = (unsigned short*)rcAlloc(sizeof(unsigned short)*src.npolys, RC_ALLOC_PERM);
+ if (!dst.flags)
+ {
+ ctx->log(RC_LOG_ERROR, "rcCopyPolyMesh: Out of memory 'dst.flags' (%d).", src.npolys);
+ return false;
+ }
+ memcpy(dst.flags, src.flags, sizeof(unsigned char)*src.npolys);
+
+ return true;
+}
diff --git a/dep/recastnavigation/Recast/RecastMeshDetail.cpp b/dep/recastnavigation/Recast/RecastMeshDetail.cpp
index ffb4b58ee9c..f49d67400c2 100644
--- a/dep/recastnavigation/Recast/RecastMeshDetail.cpp
+++ b/dep/recastnavigation/Recast/RecastMeshDetail.cpp
@@ -267,11 +267,11 @@ static int addEdge(rcContext* ctx, int* edges, int& nedges, const int maxEdges,
int e = findEdge(edges, nedges, s, t);
if (e == UNDEF)
{
- int* e = &edges[nedges*4];
- e[0] = s;
- e[1] = t;
- e[2] = l;
- e[3] = r;
+ int* edge = &edges[nedges*4];
+ edge[0] = s;
+ edge[1] = t;
+ edge[2] = l;
+ edge[3] = r;
return nedges++;
}
else
@@ -554,7 +554,7 @@ static bool buildPolyDetail(rcContext* ctx, const float* in, const int nin,
float dx = vi[0] - vj[0];
float dy = vi[1] - vj[1];
float dz = vi[2] - vj[2];
- float d = sqrtf(dx*dx + dz*dz);
+ float d = rcSqrt(dx*dx + dz*dz);
int nn = 1 + (int)floorf(d/sampleDist);
if (nn >= MAX_VERTS_PER_EDGE) nn = MAX_VERTS_PER_EDGE-1;
if (nverts+nn >= MAX_VERTS)
@@ -583,10 +583,10 @@ static bool buildPolyDetail(rcContext* ctx, const float* in, const int nin,
int maxi = -1;
for (int m = a+1; m < b; ++m)
{
- float d = distancePtSeg(&edge[m*3],va,vb);
- if (d > maxd)
+ float dev = distancePtSeg(&edge[m*3],va,vb);
+ if (dev > maxd)
{
- maxd = d;
+ maxd = dev;
maxi = m;
}
}
@@ -743,12 +743,15 @@ static bool buildPolyDetail(rcContext* ctx, const float* in, const int nin,
static void getHeightData(const rcCompactHeightfield& chf,
const unsigned short* poly, const int npoly,
- const unsigned short* verts,
+ const unsigned short* verts, const int bs,
rcHeightPatch& hp, rcIntArray& stack)
{
// Floodfill the heightfield to get 2D height data,
// starting at vertex locations as seeds.
+ // Note: Reads to the compact heightfield are offset by border size (bs)
+ // since border size offset is already removed from the polymesh vertices.
+
memset(hp.data, 0, sizeof(unsigned short)*hp.width*hp.height);
stack.resize(0);
@@ -772,7 +775,7 @@ static void getHeightData(const rcCompactHeightfield& chf,
az < hp.ymin || az >= hp.ymin+hp.height)
continue;
- const rcCompactCell& c = chf.cells[ax+az*chf.width];
+ const rcCompactCell& c = chf.cells[(ax+bs)+(az+bs)*chf.width];
for (int i = (int)c.index, ni = (int)(c.index+c.count); i < ni; ++i)
{
const rcCompactSpan& s = chf.spans[i];
@@ -844,7 +847,7 @@ static void getHeightData(const rcCompactHeightfield& chf,
if (hp.data[ax-hp.xmin+(ay-hp.ymin)*hp.width] != 0)
continue;
- const int ai = (int)chf.cells[ax+ay*chf.width].index + rcGetCon(cs, dir);
+ const int ai = (int)chf.cells[(ax+bs)+(ay+bs)*chf.width].index + rcGetCon(cs, dir);
int idx = ax-hp.xmin+(ay-hp.ymin)*hp.width;
hp.data[idx] = 1;
@@ -900,7 +903,7 @@ static void getHeightData(const rcCompactHeightfield& chf,
if (hp.data[ax-hp.xmin+(ay-hp.ymin)*hp.width] != RC_UNSET_HEIGHT)
continue;
- const int ai = (int)chf.cells[ax+ay*chf.width].index + rcGetCon(cs, dir);
+ const int ai = (int)chf.cells[(ax+bs)+(ay+bs)*chf.width].index + rcGetCon(cs, dir);
const rcCompactSpan& as = chf.spans[ai];
int idx = ax-hp.xmin+(ay-hp.ymin)*hp.width;
@@ -938,8 +941,11 @@ static unsigned char getTriFlags(const float* va, const float* vb, const float*
return flags;
}
-
-
+/// @par
+///
+/// See the #rcConfig documentation for more information on the configuration parameters.
+///
+/// @see rcAllocPolyMeshDetail, rcPolyMesh, rcCompactHeightfield, rcPolyMeshDetail, rcConfig
bool rcBuildPolyMeshDetail(rcContext* ctx, const rcPolyMesh& mesh, const rcCompactHeightfield& chf,
const float sampleDist, const float sampleMaxError,
rcPolyMeshDetail& dmesh)
@@ -955,6 +961,7 @@ bool rcBuildPolyMeshDetail(rcContext* ctx, const rcPolyMesh& mesh, const rcCompa
const float cs = mesh.cs;
const float ch = mesh.ch;
const float* orig = mesh.bmin;
+ const int borderSize = mesh.borderSize;
rcIntArray edges(64);
rcIntArray tris(512);
@@ -1065,7 +1072,7 @@ bool rcBuildPolyMeshDetail(rcContext* ctx, const rcPolyMesh& mesh, const rcCompa
hp.ymin = bounds[i*4+2];
hp.width = bounds[i*4+1]-bounds[i*4+0];
hp.height = bounds[i*4+3]-bounds[i*4+2];
- getHeightData(chf, p, npoly, mesh.verts, hp, stack);
+ getHeightData(chf, p, npoly, mesh.verts, borderSize, hp, stack);
// Build detail mesh.
int nverts = 0;
@@ -1157,6 +1164,7 @@ bool rcBuildPolyMeshDetail(rcContext* ctx, const rcPolyMesh& mesh, const rcCompa
return true;
}
+/// @see rcAllocPolyMeshDetail, rcPolyMeshDetail
bool rcMergePolyMeshDetails(rcContext* ctx, rcPolyMeshDetail** meshes, const int nmeshes, rcPolyMeshDetail& mesh)
{
rcAssert(ctx);
diff --git a/dep/recastnavigation/Recast/RecastRasterization.cpp b/dep/recastnavigation/Recast/RecastRasterization.cpp
index 71adfb67322..d2bb7c98f18 100644
--- a/dep/recastnavigation/Recast/RecastRasterization.cpp
+++ b/dep/recastnavigation/Recast/RecastRasterization.cpp
@@ -154,6 +154,13 @@ static void addSpan(rcHeightfield& hf, const int x, const int y,
}
}
+/// @par
+///
+/// The span addition can be set to favor flags. If the span is merged to
+/// another span and the new @p smax is within @p flagMergeThr units
+/// from the existing span, the span flags are merged.
+///
+/// @see rcHeightfield, rcSpan.
void rcAddSpan(rcContext* /*ctx*/, rcHeightfield& hf, const int x, const int y,
const unsigned short smin, const unsigned short smax,
const unsigned char area, const int flagMergeThr)
@@ -276,6 +283,11 @@ static void rasterizeTri(const float* v0, const float* v1, const float* v2,
}
}
+/// @par
+///
+/// No spans will be added if the triangle does not overlap the heightfield grid.
+///
+/// @see rcHeightfield
void rcRasterizeTriangle(rcContext* ctx, const float* v0, const float* v1, const float* v2,
const unsigned char area, rcHeightfield& solid,
const int flagMergeThr)
@@ -291,6 +303,11 @@ void rcRasterizeTriangle(rcContext* ctx, const float* v0, const float* v1, const
ctx->stopTimer(RC_TIMER_RASTERIZE_TRIANGLES);
}
+/// @par
+///
+/// Spans will only be added for triangles that overlap the heightfield grid.
+///
+/// @see rcHeightfield
void rcRasterizeTriangles(rcContext* ctx, const float* verts, const int /*nv*/,
const int* tris, const unsigned char* areas, const int nt,
rcHeightfield& solid, const int flagMergeThr)
@@ -314,6 +331,11 @@ void rcRasterizeTriangles(rcContext* ctx, const float* verts, const int /*nv*/,
ctx->stopTimer(RC_TIMER_RASTERIZE_TRIANGLES);
}
+/// @par
+///
+/// Spans will only be added for triangles that overlap the heightfield grid.
+///
+/// @see rcHeightfield
void rcRasterizeTriangles(rcContext* ctx, const float* verts, const int /*nv*/,
const unsigned short* tris, const unsigned char* areas, const int nt,
rcHeightfield& solid, const int flagMergeThr)
@@ -337,6 +359,11 @@ void rcRasterizeTriangles(rcContext* ctx, const float* verts, const int /*nv*/,
ctx->stopTimer(RC_TIMER_RASTERIZE_TRIANGLES);
}
+/// @par
+///
+/// Spans will only be added for triangles that overlap the heightfield grid.
+///
+/// @see rcHeightfield
void rcRasterizeTriangles(rcContext* ctx, const float* verts, const unsigned char* areas, const int nt,
rcHeightfield& solid, const int flagMergeThr)
{
diff --git a/dep/recastnavigation/Recast/RecastRegion.cpp b/dep/recastnavigation/Recast/RecastRegion.cpp
index 6ad9fa53186..76e631cc5fb 100644
--- a/dep/recastnavigation/Recast/RecastRegion.cpp
+++ b/dep/recastnavigation/Recast/RecastRegion.cpp
@@ -283,6 +283,8 @@ static bool floodRegion(int x, int y, int i,
if (chf.areas[ai] != area)
continue;
unsigned short nr = srcReg[ai];
+ if (nr & RC_BORDER_REG) // Do not take borders into account.
+ continue;
if (nr != 0 && nr != r)
ar = nr;
@@ -296,9 +298,9 @@ static bool floodRegion(int x, int y, int i,
const int ai2 = (int)chf.cells[ax2+ay2*w].index + rcGetCon(as, dir2);
if (chf.areas[ai2] != area)
continue;
- unsigned short nr = srcReg[ai2];
- if (nr != 0 && nr != r)
- ar = nr;
+ unsigned short nr2 = srcReg[ai2];
+ if (nr2 != 0 && nr2 != r)
+ ar = nr2;
}
}
}
@@ -319,16 +321,13 @@ static bool floodRegion(int x, int y, int i,
const int ai = (int)chf.cells[ax+ay*w].index + rcGetCon(cs, dir);
if (chf.areas[ai] != area)
continue;
- if (chf.dist[ai] >= lev)
+ if (chf.dist[ai] >= lev && srcReg[ai] == 0)
{
- if (srcReg[ai] == 0)
- {
- srcReg[ai] = r;
- srcDist[ai] = 0;
- stack.push(ax);
- stack.push(ay);
- stack.push(ai);
- }
+ srcReg[ai] = r;
+ srcDist[ai] = 0;
+ stack.push(ax);
+ stack.push(ay);
+ stack.push(ai);
}
}
}
@@ -679,17 +678,17 @@ static void walkContour(int x, int y, int i, int dir,
// Remove adjacent duplicates.
if (cont.size() > 1)
{
- for (int i = 0; i < cont.size(); )
+ for (int j = 0; j < cont.size(); )
{
- int ni = (i+1) % cont.size();
- if (cont[i] == cont[ni])
+ int nj = (j+1) % cont.size();
+ if (cont[j] == cont[nj])
{
- for (int j = i; j < cont.size()-1; ++j)
- cont[j] = cont[j+1];
+ for (int k = j; k < cont.size()-1; ++k)
+ cont[k] = cont[k+1];
cont.pop();
}
else
- ++i;
+ ++j;
}
}
}
@@ -807,14 +806,14 @@ static bool filterSmallRegions(rcContext* ctx, int minRegionArea, int mergeRegio
connectsToBorder = true;
continue;
}
- rcRegion& nreg = regions[creg.connections[j]];
- if (nreg.visited)
+ rcRegion& neireg = regions[creg.connections[j]];
+ if (neireg.visited)
continue;
- if (nreg.id == 0 || (nreg.id & RC_BORDER_REG))
+ if (neireg.id == 0 || (neireg.id & RC_BORDER_REG))
continue;
// Visit
- stack.push(nreg.id);
- nreg.visited = true;
+ stack.push(neireg.id);
+ neireg.visited = true;
}
}
@@ -937,7 +936,16 @@ static bool filterSmallRegions(rcContext* ctx, int minRegionArea, int mergeRegio
return true;
}
-
+/// @par
+///
+/// This is usually the second to the last step in creating a fully built
+/// compact heightfield. This step is required before regions are built
+/// using #rcBuildRegions or #rcBuildRegionsMonotone.
+///
+/// After this step, the distance data is available via the rcCompactHeightfield::maxDistance
+/// and rcCompactHeightfield::dist fields.
+///
+/// @see rcCompactHeightfield, rcBuildRegions, rcBuildRegionsMonotone
bool rcBuildDistanceField(rcContext* ctx, rcCompactHeightfield& chf)
{
rcAssert(ctx);
@@ -1020,6 +1028,25 @@ struct rcSweepSpan
unsigned short nei; // neighbour id
};
+/// @par
+///
+/// Non-null regions will consist of connected, non-overlapping walkable spans that form a single contour.
+/// Contours will form simple polygons.
+///
+/// If multiple regions form an area that is smaller than @p minRegionArea, then all spans will be
+/// re-assigned to the zero (null) region.
+///
+/// Partitioning can result in smaller than necessary regions. @p mergeRegionArea helps
+/// reduce unecessarily small regions.
+///
+/// See the #rcConfig documentation for more information on the configuration parameters.
+///
+/// The region data will be available via the rcCompactHeightfield::maxRegions
+/// and rcCompactSpan::reg fields.
+///
+/// @warning The distance field must be created using #rcBuildDistanceField before attempting to build regions.
+///
+/// @see rcCompactHeightfield, rcCompactSpan, rcBuildDistanceField, rcBuildRegionsMonotone, rcConfig
bool rcBuildRegionsMonotone(rcContext* ctx, rcCompactHeightfield& chf,
const int borderSize, const int minRegionArea, const int mergeRegionArea)
{
@@ -1059,6 +1086,8 @@ bool rcBuildRegionsMonotone(rcContext* ctx, rcCompactHeightfield& chf,
paintRectRegion(w-bw, w, 0, h, id|RC_BORDER_REG, chf, srcReg); id++;
paintRectRegion(0, w, 0, bh, id|RC_BORDER_REG, chf, srcReg); id++;
paintRectRegion(0, w, h-bh, h, id|RC_BORDER_REG, chf, srcReg); id++;
+
+ chf.borderSize = borderSize;
}
rcIntArray prev(256);
@@ -1170,6 +1199,25 @@ bool rcBuildRegionsMonotone(rcContext* ctx, rcCompactHeightfield& chf,
return true;
}
+/// @par
+///
+/// Non-null regions will consist of connected, non-overlapping walkable spans that form a single contour.
+/// Contours will form simple polygons.
+///
+/// If multiple regions form an area that is smaller than @p minRegionArea, then all spans will be
+/// re-assigned to the zero (null) region.
+///
+/// Watershed partitioning can result in smaller than necessary regions, especially in diagonal corridors.
+/// @p mergeRegionArea helps reduce unecessarily small regions.
+///
+/// See the #rcConfig documentation for more information on the configuration parameters.
+///
+/// The region data will be available via the rcCompactHeightfield::maxRegions
+/// and rcCompactSpan::reg fields.
+///
+/// @warning The distance field must be created using #rcBuildDistanceField before attempting to build regions.
+///
+/// @see rcCompactHeightfield, rcCompactSpan, rcBuildDistanceField, rcBuildRegionsMonotone, rcConfig
bool rcBuildRegions(rcContext* ctx, rcCompactHeightfield& chf,
const int borderSize, const int minRegionArea, const int mergeRegionArea)
{
@@ -1209,11 +1257,19 @@ bool rcBuildRegions(rcContext* ctx, rcCompactHeightfield& chf,
// const int expandIters = 4 + walkableRadius * 2;
const int expandIters = 8;
- // Mark border regions.
- paintRectRegion(0, borderSize, 0, h, regionId|RC_BORDER_REG, chf, srcReg); regionId++;
- paintRectRegion(w-borderSize, w, 0, h, regionId|RC_BORDER_REG, chf, srcReg); regionId++;
- paintRectRegion(0, w, 0, borderSize, regionId|RC_BORDER_REG, chf, srcReg); regionId++;
- paintRectRegion(0, w, h-borderSize, h, regionId|RC_BORDER_REG, chf, srcReg); regionId++;
+ if (borderSize > 0)
+ {
+ // Make sure border will not overflow.
+ const int bw = rcMin(w, borderSize);
+ const int bh = rcMin(h, borderSize);
+ // Paint regions
+ paintRectRegion(0, bw, 0, h, regionId|RC_BORDER_REG, chf, srcReg); regionId++;
+ paintRectRegion(w-bw, w, 0, h, regionId|RC_BORDER_REG, chf, srcReg); regionId++;
+ paintRectRegion(0, w, 0, bh, regionId|RC_BORDER_REG, chf, srcReg); regionId++;
+ paintRectRegion(0, w, h-bh, h, regionId|RC_BORDER_REG, chf, srcReg); regionId++;
+
+ chf.borderSize = borderSize;
+ }
while (level > 0)
{
@@ -1242,7 +1298,6 @@ bool rcBuildRegions(rcContext* ctx, rcCompactHeightfield& chf,
{
if (chf.dist[i] < level || srcReg[i] != 0 || chf.areas[i] == RC_NULL_AREA)
continue;
-
if (floodRegion(x, y, i, level, regionId, chf, srcReg, srcDist, stack))
regionId++;
}
@@ -1250,7 +1305,6 @@ bool rcBuildRegions(rcContext* ctx, rcCompactHeightfield& chf,
}
ctx->stopTimer(RC_TIMER_BUILD_REGIONS_FLOOD);
-
}
// Expand current regions until no empty connected cells found.
diff --git a/dep/utf8cpp/utf8/checked.h b/dep/utf8cpp/utf8/checked.h
index 3b00644444c..13311551381 100644
--- a/dep/utf8cpp/utf8/checked.h
+++ b/dep/utf8cpp/utf8/checked.h
@@ -109,13 +109,13 @@ namespace utf8
case internal::NOT_ENOUGH_ROOM:
throw not_enough_room();
case internal::INVALID_LEAD:
- utf8::append (replacement, out);
+ out = utf8::append (replacement, out);
++start;
break;
case internal::INCOMPLETE_SEQUENCE:
case internal::OVERLONG_SEQUENCE:
case internal::INVALID_CODE_POINT:
- utf8::append (replacement, out);
+ out = utf8::append (replacement, out);
++start;
// just one replacement mark for the sequence
while (start != end && utf8::internal::is_trail(*start))
@@ -270,7 +270,7 @@ namespace utf8
octet_iterator range_start;
octet_iterator range_end;
public:
- iterator () {};
+ iterator () {}
explicit iterator (const octet_iterator& octet_it,
const octet_iterator& range_start,
const octet_iterator& range_end) :
diff --git a/dep/utf8cpp/utf8/unchecked.h b/dep/utf8cpp/utf8/unchecked.h
index b4547fad945..cb2427166b1 100644
--- a/dep/utf8cpp/utf8/unchecked.h
+++ b/dep/utf8cpp/utf8/unchecked.h
@@ -179,7 +179,7 @@ namespace utf8
class iterator : public std::iterator <std::bidirectional_iterator_tag, uint32_t> {
octet_iterator it;
public:
- iterator () {};
+ iterator () {}
explicit iterator (const octet_iterator& octet_it): it(octet_it) {}
// the default "big three" are OK
octet_iterator base () const { return it; }
diff --git a/sql/base/auth_database.sql b/sql/base/auth_database.sql
index 05e680f94eb..1f247a6b8ef 100644
--- a/sql/base/auth_database.sql
+++ b/sql/base/auth_database.sql
@@ -110,6 +110,20 @@ LOCK TABLES `account_banned` WRITE;
UNLOCK TABLES;
--
+-- Dumping data for table `autobroadcast`
+--
+
+DROP TABLE IF EXISTS `autobroadcast`;
+
+CREATE TABLE `autobroadcast` (
+ `realmid` int(11) NOT NULL DEFAULT '-1',
+ `id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
+ `weight` tinyint(3) unsigned DEFAULT '1',
+ `text` longtext NOT NULL,
+ PRIMARY KEY (`id`,`realmid`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+--
-- Table structure for table `ip_banned`
--
@@ -292,7 +306,7 @@ CREATE TABLE `rbac_group_roles` (
LOCK TABLES `rbac_group_roles` WRITE;
/*!40000 ALTER TABLE `rbac_group_roles` DISABLE KEYS */;
-INSERT INTO `rbac_group_roles` VALUES (1,1),(2,2),(3,3),(4,4),(2,5),(1,6),(1,7),(2,8),(3,8),(4,8),(2,9),(3,9),(4,9),(2,10),(3,10),(4,10),(2,11),(3,11),(4,11),(2,12),(3,12),(4,12),(2,13),(3,13),(4,13),(2,14),(3,14),(4,14),(2,15),(3,15),(4,15),(2,16),(3,16),(4,16),(2,17),(3,17),(4,17),(4,18),(2,19),(3,19),(4,19),(2,20),(3,20),(4,20),(2,21),(3,21),(4,21),(2,22),(3,22),(4,22),(4,23),(2,24),(3,24),(4,24),(2,25),(3,25),(4,25),(2,26),(3,26),(4,26),(2,27),(3,27),(4,27),(2,28),(3,28),(4,28),(2,29),(3,29),(4,29),(2,30),(3,30),(4,30),(2,32),(3,32),(4,32),(2,33),(3,33),(4,33),(1,34),(2,35),(3,35),(4,35),(2,36),(3,36),(4,36),(2,37),(3,37),(4,37),(2,38),(3,38),(4,38);
+INSERT INTO `rbac_group_roles` VALUES (1,1),(2,2),(3,3),(4,4),(2,5),(1,6),(1,7),(2,8),(3,8),(4,8),(2,9),(3,9),(4,9),(2,10),(3,10),(4,10),(2,11),(3,11),(4,11),(2,12),(3,12),(4,12),(2,13),(3,13),(4,13),(2,14),(3,14),(4,14),(2,15),(3,15),(4,15),(2,16),(3,16),(4,16),(2,17),(3,17),(4,17),(4,18),(2,19),(3,19),(4,19),(2,20),(3,20),(4,20),(2,21),(3,21),(4,21),(2,22),(3,22),(4,22),(4,23),(2,24),(3,24),(4,24),(2,25),(3,25),(4,25),(2,26),(3,26),(4,26),(2,27),(3,27),(4,27),(2,28),(3,28),(4,28),(2,29),(3,29),(4,29),(2,30),(3,30),(4,30),(2,32),(3,32),(4,32),(2,33),(3,33),(4,33),(1,34),(2,35),(3,35),(4,35),(2,36),(3,36),(4,36),(2,37),(3,37),(4,37),(2,38),(3,38),(4,38),(3,39),(4,39);
/*!40000 ALTER TABLE `rbac_group_roles` ENABLE KEYS */;
UNLOCK TABLES;
@@ -340,7 +354,7 @@ CREATE TABLE `rbac_permissions` (
LOCK TABLES `rbac_permissions` WRITE;
/*!40000 ALTER TABLE `rbac_permissions` DISABLE KEYS */;
-INSERT INTO `rbac_permissions` VALUES (1,'Instant logout'),(2,'Skip Queue'),(3,'Join Normal Battleground'),(4,'Join Random Battleground'),(5,'Join Arenas'),(6,'Join Dungeon Finder'),(7,'Player Commands (Temporal till commands moved to rbac)'),(8,'Moderator Commands (Temporal till commands moved to rbac)'),(9,'GameMaster Commands (Temporal till commands moved to rbac)'),(10,'Administrator Commands (Temporal till commands moved to rbac)'),(11,'Log GM trades'),(13,'Skip Instance required bosses check'),(14,'Skip character creation team mask check'),(15,'Skip character creation class mask check'),(16,'Skip character creation race mask check'),(17,'Skip character creation reserved name check'),(18,'Skip character creation heroic min level check'),(19,'Skip needed requirements to use channel check'),(20,'Skip disable map check'),(21,'Skip reset talents when used more than allowed check'),(22,'Skip spam chat check'),(23,'Skip over-speed ping check'),(24,'Two side faction characters on the same account'),(25,'Allow say chat between factions'),(26,'Allow channel chat between factions'),(27,'Two side mail interaction'),(28,'See two side who list'),(29,'Add friends of other faction'),(30,'Save character without delay with .save command'),(31,'Use params with .unstuck command'),(32,'Can be assigned tickets with .assign ticket command'),(33,'Notify if a command was not found'),(34,'Check if should appear in list using .gm ingame command'),(35,'See all security levels with who command'),(36,'Filter whispers'),(37,'Use staff badge in chat'),(38,'Resurrect with full Health Points'),(39,'Restore saved gm setting states'),(40,'Allows to add a gm to friend list'),(41,'Use Config option START_GM_LEVEL to assign new character level'),(42,'Allows to use CMSG_WORLD_TELEPORT opcode'),(43,'Allows to use CMSG_WHOIS opcode'),(44,'Receive global GM messages/texts'),(45,'Join channels without announce'),(46,'Change channel settings without being channel moderator'),(47,'Enables lower security than target check');
+INSERT INTO `rbac_permissions` VALUES (1,'Instant logout'),(2,'Skip Queue'),(3,'Join Normal Battleground'),(4,'Join Random Battleground'),(5,'Join Arenas'),(6,'Join Dungeon Finder'),(7,'Player Commands (Temporal till commands moved to rbac)'),(8,'Moderator Commands (Temporal till commands moved to rbac)'),(9,'GameMaster Commands (Temporal till commands moved to rbac)'),(10,'Administrator Commands (Temporal till commands moved to rbac)'),(11,'Log GM trades'),(13,'Skip Instance required bosses check'),(14,'Skip character creation team mask check'),(15,'Skip character creation class mask check'),(16,'Skip character creation race mask check'),(17,'Skip character creation reserved name check'),(18,'Skip character creation heroic min level check'),(19,'Skip needed requirements to use channel check'),(20,'Skip disable map check'),(21,'Skip reset talents when used more than allowed check'),(22,'Skip spam chat check'),(23,'Skip over-speed ping check'),(24,'Two side faction characters on the same account'),(25,'Allow say chat between factions'),(26,'Allow channel chat between factions'),(27,'Two side mail interaction'),(28,'See two side who list'),(29,'Add friends of other faction'),(30,'Save character without delay with .save command'),(31,'Use params with .unstuck command'),(32,'Can be assigned tickets with .assign ticket command'),(33,'Notify if a command was not found'),(34,'Check if should appear in list using .gm ingame command'),(35,'See all security levels with who command'),(36,'Filter whispers'),(37,'Use staff badge in chat'),(38,'Resurrect with full Health Points'),(39,'Restore saved gm setting states'),(40,'Allows to add a gm to friend list'),(41,'Use Config option START_GM_LEVEL to assign new character level'),(42,'Allows to use CMSG_WORLD_TELEPORT opcode'),(43,'Allows to use CMSG_WHOIS opcode'),(44,'Receive global GM messages/texts'),(45,'Join channels without announce'),(46,'Change channel settings without being channel moderator'),(47,'Enables lower security than target check'),(48,'Enable IP, Last Login and EMail output in pinfo');
/*!40000 ALTER TABLE `rbac_permissions` ENABLE KEYS */;
UNLOCK TABLES;
@@ -367,7 +381,7 @@ CREATE TABLE `rbac_role_permissions` (
LOCK TABLES `rbac_role_permissions` WRITE;
/*!40000 ALTER TABLE `rbac_role_permissions` DISABLE KEYS */;
-INSERT INTO `rbac_role_permissions` VALUES (5,1),(5,2),(6,3),(6,4),(6,5),(7,6),(1,7),(2,8),(3,9),(4,10),(8,11),(9,13),(33,14),(33,15),(33,16),(33,17),(33,18),(27,19),(22,20),(23,21),(24,22),(17,23),(34,24),(28,25),(30,26),(19,27),(35,28),(36,29),(11,30),(12,31),(10,32),(20,33),(14,34),(37,35),(29,36),(15,37),(13,38),(25,39),(38,40),(26,41),(18,42),(18,43),(16,44),(31,45),(32,46),(21,47);
+INSERT INTO `rbac_role_permissions` VALUES (5,1),(5,2),(6,3),(6,4),(6,5),(7,6),(1,7),(2,8),(3,9),(4,10),(8,11),(9,13),(33,14),(33,15),(33,16),(33,17),(33,18),(27,19),(22,20),(23,21),(24,22),(17,23),(34,24),(28,25),(30,26),(19,27),(35,28),(36,29),(11,30),(12,31),(10,32),(20,33),(14,34),(37,35),(29,36),(15,37),(13,38),(25,39),(38,40),(26,41),(18,42),(18,43),(16,44),(31,45),(32,46),(21,47),(39,48);
/*!40000 ALTER TABLE `rbac_role_permissions` ENABLE KEYS */;
UNLOCK TABLES;
@@ -391,7 +405,7 @@ CREATE TABLE `rbac_roles` (
LOCK TABLES `rbac_roles` WRITE;
/*!40000 ALTER TABLE `rbac_roles` DISABLE KEYS */;
-INSERT INTO `rbac_roles` VALUES (1,'Player Commands'),(2,'Moderator Commands'),(3,'GameMaster Commands'),(4,'Administrator Commands'),(5,'Quick Login/Logout'),(6,'Use Battleground/Arenas'),(7,'Use Dungeon Finder'),(8,'Log GM trades'),(9,'Skip Instance required bosses check'),(10,'Ticket management'),(11,'Instant .save'),(12,'Allow params with .unstuck'),(13,'Full HP after resurrect'),(14,'Appear in GM ingame list'),(15,'Use staff badge in chat'),(16,'Receive global GM messages/texts'),(17,'Skip over-speed ping check'),(18,'Allows Admin Opcodes'),(19,'Two side mail interaction'),(20,'Notify if a command was not found'),(21,'Enables lower security than target check'),(22,'Skip disable map check'),(23,'Skip reset talents when used more than allowed check'),(24,'Skip spam chat check'),(25,'Restore saved gm setting states'),(26,'Use Config option START_GM_LEVEL to assign new character level'),(27,'Skip needed requirements to use channel check'),(28,'Allow say chat between factions'),(29,'Filter whispers'),(30,'Allow channel chat between factions'),(31,'Join channels without announce'),(32,'Change channel settings without being channel moderator'),(33,'Skip character creation checks'),(34,'Two side faction characters on the same account'),(35,'See two side who list'),(36,'Add friends of other faction'),(37,'See all security levels with who command'),(38,'Allows to add a gm to friend list');
+INSERT INTO `rbac_roles` VALUES (1,'Player Commands'),(2,'Moderator Commands'),(3,'GameMaster Commands'),(4,'Administrator Commands'),(5,'Quick Login/Logout'),(6,'Use Battleground/Arenas'),(7,'Use Dungeon Finder'),(8,'Log GM trades'),(9,'Skip Instance required bosses check'),(10,'Ticket management'),(11,'Instant .save'),(12,'Allow params with .unstuck'),(13,'Full HP after resurrect'),(14,'Appear in GM ingame list'),(15,'Use staff badge in chat'),(16,'Receive global GM messages/texts'),(17,'Skip over-speed ping check'),(18,'Allows Admin Opcodes'),(19,'Two side mail interaction'),(20,'Notify if a command was not found'),(21,'Enables lower security than target check'),(22,'Skip disable map check'),(23,'Skip reset talents when used more than allowed check'),(24,'Skip spam chat check'),(25,'Restore saved gm setting states'),(26,'Use Config option START_GM_LEVEL to assign new character level'),(27,'Skip needed requirements to use channel check'),(28,'Allow say chat between factions'),(29,'Filter whispers'),(30,'Allow channel chat between factions'),(31,'Join channels without announce'),(32,'Change channel settings without being channel moderator'),(33,'Skip character creation checks'),(34,'Two side faction characters on the same account'),(35,'See two side who list'),(36,'Add friends of other faction'),(37,'See all security levels with who command'),(38,'Allows to add a gm to friend list'),(39,'Enable IP, Last Login and EMail output in pinfo');
/*!40000 ALTER TABLE `rbac_roles` ENABLE KEYS */;
UNLOCK TABLES;
diff --git a/sql/base/characters_database.sql b/sql/base/characters_database.sql
index 46b6a1a2bdb..f414424cfd3 100644
--- a/sql/base/characters_database.sql
+++ b/sql/base/characters_database.sql
@@ -1339,7 +1339,7 @@ CREATE TABLE `corpse` (
`posZ` float NOT NULL DEFAULT '0',
`orientation` float NOT NULL DEFAULT '0',
`mapId` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT 'Map Identifier',
- `phaseMask` smallint(5) unsigned NOT NULL DEFAULT '1',
+ `phaseMask` int(10) unsigned NOT NULL DEFAULT '1',
`displayId` int(10) unsigned NOT NULL DEFAULT '0',
`itemCache` text NOT NULL,
`bytes1` int(10) unsigned NOT NULL DEFAULT '0',
diff --git a/sql/old/3.3.5a/08861_auth_realmlist.sql b/sql/old/3.3.5a/TDB31_to_TDB32_updates/auth/08861_auth_realmlist.sql
index c6622d5ce1e..c6622d5ce1e 100644
--- a/sql/old/3.3.5a/08861_auth_realmlist.sql
+++ b/sql/old/3.3.5a/TDB31_to_TDB32_updates/auth/08861_auth_realmlist.sql
diff --git a/sql/old/3.3.5a/08971_characters_characters.sql b/sql/old/3.3.5a/TDB32_to_TDB33_updates/characters/08971_characters_characters.sql
index 278c018c045..278c018c045 100644
--- a/sql/old/3.3.5a/08971_characters_characters.sql
+++ b/sql/old/3.3.5a/TDB32_to_TDB33_updates/characters/08971_characters_characters.sql
diff --git a/sql/old/3.3.5a/08986_characters_worldstates.sql b/sql/old/3.3.5a/TDB32_to_TDB33_updates/characters/08986_characters_worldstates.sql
index 6ebdd8e6d37..6ebdd8e6d37 100644
--- a/sql/old/3.3.5a/08986_characters_worldstates.sql
+++ b/sql/old/3.3.5a/TDB32_to_TDB33_updates/characters/08986_characters_worldstates.sql
diff --git a/sql/old/3.3.5a/08890_world_spell_dbc.sql b/sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08890_world_spell_dbc.sql
index a5e0927806f..a5e0927806f 100644
--- a/sql/old/3.3.5a/08890_world_spell_dbc.sql
+++ b/sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08890_world_spell_dbc.sql
diff --git a/sql/old/3.3.5a/08891_world_spell_dbc.sql b/sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08891_world_spell_dbc.sql
index 6adb4e5fd28..6adb4e5fd28 100644
--- a/sql/old/3.3.5a/08891_world_spell_dbc.sql
+++ b/sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08891_world_spell_dbc.sql
diff --git a/sql/old/3.3.5a/08897_world_npc_vendor.sql b/sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08897_world_npc_vendor.sql
index 0e1c793863d..0e1c793863d 100644
--- a/sql/old/3.3.5a/08897_world_npc_vendor.sql
+++ b/sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08897_world_npc_vendor.sql
diff --git a/sql/old/3.3.5a/08897_world_trinity_string.sql b/sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08897_world_trinity_string.sql
index 691b0723a5b..691b0723a5b 100644
--- a/sql/old/3.3.5a/08897_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08897_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/08905_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08905_world_spell_proc_event.sql
index 7429a6a06b4..7429a6a06b4 100644
--- a/sql/old/3.3.5a/08905_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08905_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/08906_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08906_world_spell_proc_event.sql
index 2d5c35c02a5..2d5c35c02a5 100644
--- a/sql/old/3.3.5a/08906_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08906_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/08915_world_trinity_string.sql b/sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08915_world_trinity_string.sql
index 3c882c98895..3c882c98895 100644
--- a/sql/old/3.3.5a/08915_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08915_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/08920_world_spell_dbc.sql b/sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08920_world_spell_dbc.sql
index a400139824a..a400139824a 100644
--- a/sql/old/3.3.5a/08920_world_spell_dbc.sql
+++ b/sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08920_world_spell_dbc.sql
diff --git a/sql/old/3.3.5a/08920_world_spell_linked_spell.sql b/sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08920_world_spell_linked_spell.sql
index 2b6a4bcf9ed..2b6a4bcf9ed 100644
--- a/sql/old/3.3.5a/08920_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08920_world_spell_linked_spell.sql
diff --git a/sql/old/3.3.5a/08921_world_spell_dbc.sql b/sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08921_world_spell_dbc.sql
index 7e53fc4bbf2..7e53fc4bbf2 100644
--- a/sql/old/3.3.5a/08921_world_spell_dbc.sql
+++ b/sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08921_world_spell_dbc.sql
diff --git a/sql/old/3.3.5a/08925_world_spell_group.sql b/sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08925_world_spell_group.sql
index 0e7d2cf894e..0e7d2cf894e 100644
--- a/sql/old/3.3.5a/08925_world_spell_group.sql
+++ b/sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08925_world_spell_group.sql
diff --git a/sql/old/3.3.5a/08957_world_command.sql b/sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08957_world_command.sql
index a1aafb56a62..a1aafb56a62 100644
--- a/sql/old/3.3.5a/08957_world_command.sql
+++ b/sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08957_world_command.sql
diff --git a/sql/old/3.3.5a/08957_world_disables.sql b/sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08957_world_disables.sql
index 3e6990e4997..3e6990e4997 100644
--- a/sql/old/3.3.5a/08957_world_disables.sql
+++ b/sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08957_world_disables.sql
diff --git a/sql/old/3.3.5a/08957_world_trinity_string.sql b/sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08957_world_trinity_string.sql
index 4919f044ca0..4919f044ca0 100644
--- a/sql/old/3.3.5a/08957_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08957_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/08971_world_command.sql b/sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08971_world_command.sql
index ff5efd867f5..ff5efd867f5 100644
--- a/sql/old/3.3.5a/08971_world_command.sql
+++ b/sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08971_world_command.sql
diff --git a/sql/old/3.3.5a/08971_world_trinity_string.sql b/sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08971_world_trinity_string.sql
index c2b93cf7f85..c2b93cf7f85 100644
--- a/sql/old/3.3.5a/08971_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08971_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/08975_world_spell_dbc.sql b/sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08975_world_spell_dbc.sql
index 52a20b8a14d..52a20b8a14d 100644
--- a/sql/old/3.3.5a/08975_world_spell_dbc.sql
+++ b/sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08975_world_spell_dbc.sql
diff --git a/sql/old/3.3.5a/08987_world_playercreateinfo.sql b/sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08987_world_playercreateinfo.sql
index ac407e16d67..ac407e16d67 100644
--- a/sql/old/3.3.5a/08987_world_playercreateinfo.sql
+++ b/sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08987_world_playercreateinfo.sql
diff --git a/sql/old/3.3.5a/08988_world_playercreateinfo.sql b/sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08988_world_playercreateinfo.sql
index 227dc4256f3..227dc4256f3 100644
--- a/sql/old/3.3.5a/08988_world_playercreateinfo.sql
+++ b/sql/old/3.3.5a/TDB32_to_TDB33_updates/world/08988_world_playercreateinfo.sql
diff --git a/sql/old/3.3.5a/09444_auth_account.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/auth/09444_auth_account.sql
index e4ec2c61cd6..e4ec2c61cd6 100644
--- a/sql/old/3.3.5a/09444_auth_account.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/auth/09444_auth_account.sql
diff --git a/sql/old/3.3.5a/09081_characters_characters.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09081_characters_characters.sql
index 1e7b32e47a5..1e7b32e47a5 100644
--- a/sql/old/3.3.5a/09081_characters_characters.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09081_characters_characters.sql
diff --git a/sql/old/3.3.5a/09090_characters_item_instance.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09090_characters_item_instance.sql
index 594f8103b4e..594f8103b4e 100644
--- a/sql/old/3.3.5a/09090_characters_item_instance.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09090_characters_item_instance.sql
diff --git a/sql/old/3.3.5a/09092_characters_corpse.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09092_characters_corpse.sql
index 0a7bfa497b3..0a7bfa497b3 100644
--- a/sql/old/3.3.5a/09092_characters_corpse.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09092_characters_corpse.sql
diff --git a/sql/old/3.3.5a/09160_characters_item_instance.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09160_characters_item_instance.sql
index 5ee6abc4082..5ee6abc4082 100644
--- a/sql/old/3.3.5a/09160_characters_item_instance.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09160_characters_item_instance.sql
diff --git a/sql/old/3.3.5a/09521_characters_character_achievement.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09521_characters_character_achievement.sql
index e8262aed4ad..e8262aed4ad 100644
--- a/sql/old/3.3.5a/09521_characters_character_achievement.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09521_characters_character_achievement.sql
diff --git a/sql/old/3.3.5a/09632_characters_arena_team_member.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09632_characters_arena_team_member.sql
index cc33ecbb78b..cc33ecbb78b 100644
--- a/sql/old/3.3.5a/09632_characters_arena_team_member.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09632_characters_arena_team_member.sql
diff --git a/sql/old/3.3.5a/09632_characters_arena_team_stats.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09632_characters_arena_team_stats.sql
index 91d23b54912..91d23b54912 100644
--- a/sql/old/3.3.5a/09632_characters_arena_team_stats.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09632_characters_arena_team_stats.sql
diff --git a/sql/old/3.3.5a/09632_characters_character_arena_stats.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09632_characters_character_arena_stats.sql
index cb60e6d36fb..cb60e6d36fb 100644
--- a/sql/old/3.3.5a/09632_characters_character_arena_stats.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09632_characters_character_arena_stats.sql
diff --git a/sql/old/3.3.5a/09668_characters_gm_subsurveys.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09668_characters_gm_subsurveys.sql
index 2deda4339fa..2deda4339fa 100644
--- a/sql/old/3.3.5a/09668_characters_gm_subsurveys.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09668_characters_gm_subsurveys.sql
diff --git a/sql/old/3.3.5a/09668_characters_gm_surveys.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09668_characters_gm_surveys.sql
index e5146a404a7..e5146a404a7 100644
--- a/sql/old/3.3.5a/09668_characters_gm_surveys.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09668_characters_gm_surveys.sql
diff --git a/sql/old/3.3.5a/09668_characters_gm_tickets.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09668_characters_gm_tickets.sql
index 71f13206f72..71f13206f72 100644
--- a/sql/old/3.3.5a/09668_characters_gm_tickets.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09668_characters_gm_tickets.sql
diff --git a/sql/old/3.3.5a/09668_characters_lag_reports.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09668_characters_lag_reports.sql
index 956bccba8f3..956bccba8f3 100644
--- a/sql/old/3.3.5a/09668_characters_lag_reports.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09668_characters_lag_reports.sql
diff --git a/sql/old/3.3.5a/09708_characters_database.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09708_characters_database.sql
index ae461a8dfe0..ae461a8dfe0 100644
--- a/sql/old/3.3.5a/09708_characters_database.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09708_characters_database.sql
diff --git a/sql/old/3.3.5a/09716_characters_auctionhousebot.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09716_characters_auctionhousebot.sql
index fd78728859e..fd78728859e 100644
--- a/sql/old/3.3.5a/09716_characters_auctionhousebot.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09716_characters_auctionhousebot.sql
diff --git a/sql/old/3.3.5a/09758_characters_game_event_save.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09758_characters_game_event_save.sql
index 593840fd88c..593840fd88c 100644
--- a/sql/old/3.3.5a/09758_characters_game_event_save.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09758_characters_game_event_save.sql
diff --git a/sql/old/3.3.5a/09792_characters_groups.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09792_characters_groups.sql
index 940875d217a..940875d217a 100644
--- a/sql/old/3.3.5a/09792_characters_groups.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09792_characters_groups.sql
diff --git a/sql/old/3.3.5a/09792_characters_instance.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09792_characters_instance.sql
index 0571b1c8953..0571b1c8953 100644
--- a/sql/old/3.3.5a/09792_characters_instance.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09792_characters_instance.sql
diff --git a/sql/old/3.3.5a/09792_characters_instance_reset.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09792_characters_instance_reset.sql
index f5d21b33951..f5d21b33951 100644
--- a/sql/old/3.3.5a/09792_characters_instance_reset.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/characters/09792_characters_instance_reset.sql
diff --git a/sql/old/3.3.5a/09000_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09000_world_spell_bonus_data.sql
index 3f80ede4b28..3f80ede4b28 100644
--- a/sql/old/3.3.5a/09000_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09000_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/09006_world_spell_group.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09006_world_spell_group.sql
index f83c2efb2af..f83c2efb2af 100644
--- a/sql/old/3.3.5a/09006_world_spell_group.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09006_world_spell_group.sql
diff --git a/sql/old/3.3.5a/09008_world_trinity_string.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09008_world_trinity_string.sql
index b046ba2d1b2..b046ba2d1b2 100644
--- a/sql/old/3.3.5a/09008_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09008_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/09010_world_spell_scripts.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09010_world_spell_scripts.sql
index ee1c8601873..ee1c8601873 100644
--- a/sql/old/3.3.5a/09010_world_spell_scripts.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09010_world_spell_scripts.sql
diff --git a/sql/old/3.3.5a/09012_world_spell_script_names.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09012_world_spell_script_names.sql
index 410357f82f9..410357f82f9 100644
--- a/sql/old/3.3.5a/09012_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09012_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/09026_world_script_texts.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09026_world_script_texts.sql
index 16f6752041e..16f6752041e 100644
--- a/sql/old/3.3.5a/09026_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09026_world_script_texts.sql
diff --git a/sql/old/3.3.5a/09026_world_scriptname.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09026_world_scriptname.sql
index 3318444b77b..3318444b77b 100644
--- a/sql/old/3.3.5a/09026_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09026_world_scriptname.sql
diff --git a/sql/old/3.3.5a/09036_world_reputation_reward_rate.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09036_world_reputation_reward_rate.sql
index 5a6d31b8e4d..5a6d31b8e4d 100644
--- a/sql/old/3.3.5a/09036_world_reputation_reward_rate.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09036_world_reputation_reward_rate.sql
diff --git a/sql/old/3.3.5a/09039_world_reputation_spillover_template.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09039_world_reputation_spillover_template.sql
index 75c56c29a1b..75c56c29a1b 100644
--- a/sql/old/3.3.5a/09039_world_reputation_spillover_template.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09039_world_reputation_spillover_template.sql
diff --git a/sql/old/3.3.5a/09043_world_spell_script_names.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09043_world_spell_script_names.sql
index a5b0c75c830..a5b0c75c830 100644
--- a/sql/old/3.3.5a/09043_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09043_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/09058_world_spell_script_names.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09058_world_spell_script_names.sql
index eac047212b7..eac047212b7 100644
--- a/sql/old/3.3.5a/09058_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09058_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/09059_world_spell_script_names.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09059_world_spell_script_names.sql
index 131af872e0b..131af872e0b 100644
--- a/sql/old/3.3.5a/09059_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09059_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/09063_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09063_world_spell_bonus_data.sql
index 78b87493041..78b87493041 100644
--- a/sql/old/3.3.5a/09063_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09063_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/09070_world_scriptname.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09070_world_scriptname.sql
index f89d5c094a2..f89d5c094a2 100644
--- a/sql/old/3.3.5a/09070_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09070_world_scriptname.sql
diff --git a/sql/old/3.3.5a/09077_world_trinity_string.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09077_world_trinity_string.sql
index 1360e3c4539..1360e3c4539 100644
--- a/sql/old/3.3.5a/09077_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09077_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/09081_world_access_requirement.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09081_world_access_requirement.sql
index da7e108636a..da7e108636a 100644
--- a/sql/old/3.3.5a/09081_world_access_requirement.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09081_world_access_requirement.sql
diff --git a/sql/old/3.3.5a/09081_world_areatrigger_teleport.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09081_world_areatrigger_teleport.sql
index d8df8fafbf9..d8df8fafbf9 100644
--- a/sql/old/3.3.5a/09081_world_areatrigger_teleport.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09081_world_areatrigger_teleport.sql
diff --git a/sql/old/3.3.5a/09108_world_battleground_template.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09108_world_battleground_template.sql
index bd01fcbc14f..bd01fcbc14f 100644
--- a/sql/old/3.3.5a/09108_world_battleground_template.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09108_world_battleground_template.sql
diff --git a/sql/old/3.3.5a/09109_world_creature_transport.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09109_world_creature_transport.sql
index 06798af8a16..06798af8a16 100644
--- a/sql/old/3.3.5a/09109_world_creature_transport.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09109_world_creature_transport.sql
diff --git a/sql/old/3.3.5a/09120_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09120_world_spell_proc_event.sql
index c6ff3e31bf9..c6ff3e31bf9 100644
--- a/sql/old/3.3.5a/09120_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09120_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/09122_world_spell_script_names.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09122_world_spell_script_names.sql
index 38b888ed797..38b888ed797 100644
--- a/sql/old/3.3.5a/09122_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09122_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/09123_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09123_world_spell_proc_event.sql
index e58139087d3..e58139087d3 100644
--- a/sql/old/3.3.5a/09123_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09123_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/09124_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09124_world_spell_proc_event.sql
index b4f3fee1ed9..b4f3fee1ed9 100644
--- a/sql/old/3.3.5a/09124_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09124_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/09130_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09130_world_spell_bonus_data.sql
index b402b833027..b402b833027 100644
--- a/sql/old/3.3.5a/09130_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09130_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/09131_world_spell_ranks.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09131_world_spell_ranks.sql
index 7343f38c895..7343f38c895 100644
--- a/sql/old/3.3.5a/09131_world_spell_ranks.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09131_world_spell_ranks.sql
diff --git a/sql/old/3.3.5a/09135_world_battleground_template.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09135_world_battleground_template.sql
index cf66584e12b..cf66584e12b 100644
--- a/sql/old/3.3.5a/09135_world_battleground_template.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09135_world_battleground_template.sql
diff --git a/sql/old/3.3.5a/09136_world_trinity_string.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09136_world_trinity_string.sql
index b37310ef60e..b37310ef60e 100644
--- a/sql/old/3.3.5a/09136_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09136_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/09144_world_spell_script_names.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09144_world_spell_script_names.sql
index afd5ffb2e3c..afd5ffb2e3c 100644
--- a/sql/old/3.3.5a/09144_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09144_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/09148_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09148_world_spell_bonus_data.sql
index 786d0110313..786d0110313 100644
--- a/sql/old/3.3.5a/09148_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09148_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/09149_world_spell_script_names.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09149_world_spell_script_names.sql
index b2cb32d6160..b2cb32d6160 100644
--- a/sql/old/3.3.5a/09149_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09149_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/09162_world_spell_script_names.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09162_world_spell_script_names.sql
index 9d445ab663a..9d445ab663a 100644
--- a/sql/old/3.3.5a/09162_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09162_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/09166_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09166_world_spell_proc_event.sql
index f1f6056770a..f1f6056770a 100644
--- a/sql/old/3.3.5a/09166_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09166_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/09176_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09176_world_spell_proc_event.sql
index c2bab206e2b..c2bab206e2b 100644
--- a/sql/old/3.3.5a/09176_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09176_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/09189_world_transports.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09189_world_transports.sql
index da3d2245c54..da3d2245c54 100644
--- a/sql/old/3.3.5a/09189_world_transports.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09189_world_transports.sql
diff --git a/sql/old/3.3.5a/09191_world_instance_template.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09191_world_instance_template.sql
index 9510cb8cde0..9510cb8cde0 100644
--- a/sql/old/3.3.5a/09191_world_instance_template.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09191_world_instance_template.sql
diff --git a/sql/old/3.3.5a/09193_world_battleground_template.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09193_world_battleground_template.sql
index 4a83af07e04..4a83af07e04 100644
--- a/sql/old/3.3.5a/09193_world_battleground_template.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09193_world_battleground_template.sql
diff --git a/sql/old/3.3.5a/09195_world_game_weather.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09195_world_game_weather.sql
index 355c49e7640..355c49e7640 100644
--- a/sql/old/3.3.5a/09195_world_game_weather.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09195_world_game_weather.sql
diff --git a/sql/old/3.3.5a/09196_world_conditions.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09196_world_conditions.sql
index f0db979c87e..f0db979c87e 100644
--- a/sql/old/3.3.5a/09196_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09196_world_conditions.sql
diff --git a/sql/old/3.3.5a/09198_world_outdoorpvp_template.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09198_world_outdoorpvp_template.sql
index dfe4e3a199f..dfe4e3a199f 100644
--- a/sql/old/3.3.5a/09198_world_outdoorpvp_template.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09198_world_outdoorpvp_template.sql
diff --git a/sql/old/3.3.5a/09199_world_spell_script_names.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09199_world_spell_script_names.sql
index 54e9a2cc8ee..54e9a2cc8ee 100644
--- a/sql/old/3.3.5a/09199_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09199_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/09205_world_spell_script_names.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09205_world_spell_script_names.sql
index 76a4a463d73..76a4a463d73 100644
--- a/sql/old/3.3.5a/09205_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09205_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/09213_world_spell_script_names.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09213_world_spell_script_names.sql
index 2f2ede4d75f..2f2ede4d75f 100644
--- a/sql/old/3.3.5a/09213_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09213_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/09237_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09237_world_achievement_criteria_data.sql
index 46045dc5500..46045dc5500 100644
--- a/sql/old/3.3.5a/09237_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09237_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/09237_world_battleground_template.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09237_world_battleground_template.sql
index fcf33502167..fcf33502167 100644
--- a/sql/old/3.3.5a/09237_world_battleground_template.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09237_world_battleground_template.sql
diff --git a/sql/old/3.3.5a/09237_world_outdoorpvp_template.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09237_world_outdoorpvp_template.sql
index e1199a6798f..e1199a6798f 100644
--- a/sql/old/3.3.5a/09237_world_outdoorpvp_template.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09237_world_outdoorpvp_template.sql
diff --git a/sql/old/3.3.5a/09240_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09240_world_achievement_criteria_data.sql
index f5d8eda4613..f5d8eda4613 100644
--- a/sql/old/3.3.5a/09240_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09240_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/09246_world_scriptname.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09246_world_scriptname.sql
index 0a1a18d015f..0a1a18d015f 100644
--- a/sql/old/3.3.5a/09246_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09246_world_scriptname.sql
diff --git a/sql/old/3.3.5a/09290_world_spell_linked_spell.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09290_world_spell_linked_spell.sql
index a71b49ac7ea..a71b49ac7ea 100644
--- a/sql/old/3.3.5a/09290_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09290_world_spell_linked_spell.sql
diff --git a/sql/old/3.3.5a/09332_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09332_world_spell_proc_event.sql
index dba027c03b9..dba027c03b9 100644
--- a/sql/old/3.3.5a/09332_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09332_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/09377_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09377_world_achievement_criteria_data.sql
index 7e9a16cde81..7e9a16cde81 100644
--- a/sql/old/3.3.5a/09377_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09377_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/09421_world_command.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09421_world_command.sql
index 7c71a0ee75b..7c71a0ee75b 100644
--- a/sql/old/3.3.5a/09421_world_command.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09421_world_command.sql
diff --git a/sql/old/3.3.5a/09427_world_command.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09427_world_command.sql
index 0f511033e50..0f511033e50 100644
--- a/sql/old/3.3.5a/09427_world_command.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09427_world_command.sql
diff --git a/sql/old/3.3.5a/09436_world_spell_script_names.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09436_world_spell_script_names.sql
index 5b70ef3e0fe..5b70ef3e0fe 100644
--- a/sql/old/3.3.5a/09436_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09436_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/09447_world_spell_script_names.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09447_world_spell_script_names.sql
index 19570d2123a..19570d2123a 100644
--- a/sql/old/3.3.5a/09447_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09447_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/09453_world_script_texts.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09453_world_script_texts.sql
index 956ca43ccb2..956ca43ccb2 100644
--- a/sql/old/3.3.5a/09453_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09453_world_script_texts.sql
diff --git a/sql/old/3.3.5a/09453_world_scriptname.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09453_world_scriptname.sql
index 9b1c3617496..9b1c3617496 100644
--- a/sql/old/3.3.5a/09453_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09453_world_scriptname.sql
diff --git a/sql/old/3.3.5a/09453_world_spell_script_names.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09453_world_spell_script_names.sql
index cae78c9a8b9..cae78c9a8b9 100644
--- a/sql/old/3.3.5a/09453_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09453_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/09472_world_script_texts.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09472_world_script_texts.sql
index c74d80d071d..c74d80d071d 100644
--- a/sql/old/3.3.5a/09472_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09472_world_script_texts.sql
diff --git a/sql/old/3.3.5a/09472_world_scriptname.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09472_world_scriptname.sql
index cd7c7aa046b..cd7c7aa046b 100644
--- a/sql/old/3.3.5a/09472_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09472_world_scriptname.sql
diff --git a/sql/old/3.3.5a/09508_world_script_texts.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09508_world_script_texts.sql
index 704249bcb0c..704249bcb0c 100644
--- a/sql/old/3.3.5a/09508_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09508_world_script_texts.sql
diff --git a/sql/old/3.3.5a/09508_world_scriptname.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09508_world_scriptname.sql
index 273142f3c1c..273142f3c1c 100644
--- a/sql/old/3.3.5a/09508_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09508_world_scriptname.sql
diff --git a/sql/old/3.3.5a/09508_world_spell_script_names.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09508_world_spell_script_names.sql
index 33b3ed0312f..33b3ed0312f 100644
--- a/sql/old/3.3.5a/09508_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09508_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/09521_world_script_texts.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09521_world_script_texts.sql
index 419fa3b6d39..419fa3b6d39 100644
--- a/sql/old/3.3.5a/09521_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09521_world_script_texts.sql
diff --git a/sql/old/3.3.5a/09521_world_scriptname.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09521_world_scriptname.sql
index c39b7d3c3a8..c39b7d3c3a8 100644
--- a/sql/old/3.3.5a/09521_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09521_world_scriptname.sql
diff --git a/sql/old/3.3.5a/09521_world_spell_linked_spell.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09521_world_spell_linked_spell.sql
index 820fcba89af..820fcba89af 100644
--- a/sql/old/3.3.5a/09521_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09521_world_spell_linked_spell.sql
diff --git a/sql/old/3.3.5a/09529_world_spell_script_names.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09529_world_spell_script_names.sql
index e312dd017ad..e312dd017ad 100644
--- a/sql/old/3.3.5a/09529_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09529_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/09537_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09537_world_spell_proc_event.sql
index e1071291767..e1071291767 100644
--- a/sql/old/3.3.5a/09537_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09537_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/09544_world_spell_script_names.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09544_world_spell_script_names.sql
index 341b1f43bdd..341b1f43bdd 100644
--- a/sql/old/3.3.5a/09544_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09544_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/09551_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09551_world_spell_bonus_data.sql
index 95af16980d2..95af16980d2 100644
--- a/sql/old/3.3.5a/09551_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09551_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/09551_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09551_world_spell_proc_event.sql
index 572673adeb7..572673adeb7 100644
--- a/sql/old/3.3.5a/09551_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09551_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/09554_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09554_world_spell_proc_event.sql
index 7ce7fedb783..7ce7fedb783 100644
--- a/sql/old/3.3.5a/09554_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09554_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/09555_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09555_world_spell_proc_event.sql
index 88b1901ffc6..88b1901ffc6 100644
--- a/sql/old/3.3.5a/09555_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09555_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/09556_world_spell_linked_spell.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09556_world_spell_linked_spell.sql
index 3700aab8b36..3700aab8b36 100644
--- a/sql/old/3.3.5a/09556_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09556_world_spell_linked_spell.sql
diff --git a/sql/old/3.3.5a/09560_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09560_world_spell_proc_event.sql
index 9852cdb5b50..9852cdb5b50 100644
--- a/sql/old/3.3.5a/09560_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09560_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/09570_world_spell_group.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09570_world_spell_group.sql
index e5dc9084f6b..e5dc9084f6b 100644
--- a/sql/old/3.3.5a/09570_world_spell_group.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09570_world_spell_group.sql
diff --git a/sql/old/3.3.5a/09570_world_spell_group_stack_rules.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09570_world_spell_group_stack_rules.sql
index 51fc1dc1b79..51fc1dc1b79 100644
--- a/sql/old/3.3.5a/09570_world_spell_group_stack_rules.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09570_world_spell_group_stack_rules.sql
diff --git a/sql/old/3.3.5a/09577_world_spell_group.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09577_world_spell_group.sql
index c16baa3a5fc..c16baa3a5fc 100644
--- a/sql/old/3.3.5a/09577_world_spell_group.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09577_world_spell_group.sql
diff --git a/sql/old/3.3.5a/09578_world_vehicle_scaling_info.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09578_world_vehicle_scaling_info.sql
index 88eabb88cb0..88eabb88cb0 100644
--- a/sql/old/3.3.5a/09578_world_vehicle_scaling_info.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09578_world_vehicle_scaling_info.sql
diff --git a/sql/old/3.3.5a/09587_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09587_world_spell_bonus_data.sql
index 051abbf1f00..051abbf1f00 100644
--- a/sql/old/3.3.5a/09587_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09587_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/09591_world_script_texts.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09591_world_script_texts.sql
index 3cc94032437..3cc94032437 100644
--- a/sql/old/3.3.5a/09591_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09591_world_script_texts.sql
diff --git a/sql/old/3.3.5a/09591_world_script_waypoint.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09591_world_script_waypoint.sql
index 31f69b62961..31f69b62961 100644
--- a/sql/old/3.3.5a/09591_world_script_waypoint.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09591_world_script_waypoint.sql
diff --git a/sql/old/3.3.5a/09591_world_scriptname.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09591_world_scriptname.sql
index e103b512376..e103b512376 100644
--- a/sql/old/3.3.5a/09591_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09591_world_scriptname.sql
diff --git a/sql/old/3.3.5a/09595_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09595_world_spell_proc_event.sql
index c4377433e48..c4377433e48 100644
--- a/sql/old/3.3.5a/09595_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09595_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/09599_world_scriptname.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09599_world_scriptname.sql
index df151cdab07..df151cdab07 100644
--- a/sql/old/3.3.5a/09599_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09599_world_scriptname.sql
diff --git a/sql/old/3.3.5a/09599_world_vehicle_accessory.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09599_world_vehicle_accessory.sql
index 4eb84f71290..4eb84f71290 100644
--- a/sql/old/3.3.5a/09599_world_vehicle_accessory.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09599_world_vehicle_accessory.sql
diff --git a/sql/old/3.3.5a/09600_world_script_texts.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09600_world_script_texts.sql
index c361533a44c..c361533a44c 100644
--- a/sql/old/3.3.5a/09600_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09600_world_script_texts.sql
diff --git a/sql/old/3.3.5a/09600_world_script_waypoint.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09600_world_script_waypoint.sql
index dc86912639e..dc86912639e 100644
--- a/sql/old/3.3.5a/09600_world_script_waypoint.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09600_world_script_waypoint.sql
diff --git a/sql/old/3.3.5a/09600_world_scriptname.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09600_world_scriptname.sql
index 590b48aba1f..590b48aba1f 100644
--- a/sql/old/3.3.5a/09600_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09600_world_scriptname.sql
diff --git a/sql/old/3.3.5a/09604_world_script_texts.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09604_world_script_texts.sql
index d82a2260ad1..d82a2260ad1 100644
--- a/sql/old/3.3.5a/09604_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09604_world_script_texts.sql
diff --git a/sql/old/3.3.5a/09604_world_script_waypoint.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09604_world_script_waypoint.sql
index c609929268a..c609929268a 100644
--- a/sql/old/3.3.5a/09604_world_script_waypoint.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09604_world_script_waypoint.sql
diff --git a/sql/old/3.3.5a/09604_world_scriptname.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09604_world_scriptname.sql
index c5c0580944a..c5c0580944a 100644
--- a/sql/old/3.3.5a/09604_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09604_world_scriptname.sql
diff --git a/sql/old/3.3.5a/09607_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09607_world_achievement_criteria_data.sql
index 4856ed7ea20..4856ed7ea20 100644
--- a/sql/old/3.3.5a/09607_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09607_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/09607_world_script_texts.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09607_world_script_texts.sql
index 4f687d1285e..4f687d1285e 100644
--- a/sql/old/3.3.5a/09607_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09607_world_script_texts.sql
diff --git a/sql/old/3.3.5a/09607_world_scriptname.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09607_world_scriptname.sql
index 777d8e91edb..777d8e91edb 100644
--- a/sql/old/3.3.5a/09607_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09607_world_scriptname.sql
diff --git a/sql/old/3.3.5a/09607_world_spell_script_names.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09607_world_spell_script_names.sql
index 66fd3f05227..66fd3f05227 100644
--- a/sql/old/3.3.5a/09607_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09607_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/09618_world_scriptname.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09618_world_scriptname.sql
index 778fc453dd5..778fc453dd5 100644
--- a/sql/old/3.3.5a/09618_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09618_world_scriptname.sql
diff --git a/sql/old/3.3.5a/09644_world_command.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09644_world_command.sql
index d1e5687f68e..d1e5687f68e 100644
--- a/sql/old/3.3.5a/09644_world_command.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09644_world_command.sql
diff --git a/sql/old/3.3.5a/09666_world_spell_script_names.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09666_world_spell_script_names.sql
index af4089f4284..af4089f4284 100644
--- a/sql/old/3.3.5a/09666_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09666_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/09669_world_creature_template.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09669_world_creature_template.sql
index dd82b6d9e47..dd82b6d9e47 100644
--- a/sql/old/3.3.5a/09669_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09669_world_creature_template.sql
diff --git a/sql/old/3.3.5a/09671_world_spell_group.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09671_world_spell_group.sql
index 9de18ff577a..9de18ff577a 100644
--- a/sql/old/3.3.5a/09671_world_spell_group.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09671_world_spell_group.sql
diff --git a/sql/old/3.3.5a/09671_world_spell_group_stack_rules.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09671_world_spell_group_stack_rules.sql
index 9eecc6a2b49..9eecc6a2b49 100644
--- a/sql/old/3.3.5a/09671_world_spell_group_stack_rules.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09671_world_spell_group_stack_rules.sql
diff --git a/sql/old/3.3.5a/09681_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09681_world_spell_proc_event.sql
index 9b2691a0d16..9b2691a0d16 100644
--- a/sql/old/3.3.5a/09681_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09681_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/09692_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09692_world_spell_proc_event.sql
index c9dd1ccfdc8..c9dd1ccfdc8 100644
--- a/sql/old/3.3.5a/09692_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09692_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/09695_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09695_world_spell_proc_event.sql
index 974065aa476..974065aa476 100644
--- a/sql/old/3.3.5a/09695_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09695_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/09700_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09700_world_achievement_criteria_data.sql
index f94bbb2cc4d..f94bbb2cc4d 100644
--- a/sql/old/3.3.5a/09700_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09700_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/09700_world_script_texts.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09700_world_script_texts.sql
index de3fd927d3c..de3fd927d3c 100644
--- a/sql/old/3.3.5a/09700_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09700_world_script_texts.sql
diff --git a/sql/old/3.3.5a/09700_world_scriptname.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09700_world_scriptname.sql
index c3ec248a6d0..c3ec248a6d0 100644
--- a/sql/old/3.3.5a/09700_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09700_world_scriptname.sql
diff --git a/sql/old/3.3.5a/09700_world_spell_script_names.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09700_world_spell_script_names.sql
index fa0bcb81e60..fa0bcb81e60 100644
--- a/sql/old/3.3.5a/09700_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09700_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/09700_world_vehicle_accessory.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09700_world_vehicle_accessory.sql
index 41353ee1975..41353ee1975 100644
--- a/sql/old/3.3.5a/09700_world_vehicle_accessory.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09700_world_vehicle_accessory.sql
diff --git a/sql/old/3.3.5a/09701_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09701_world_spell_bonus_data.sql
index 894478ccedc..894478ccedc 100644
--- a/sql/old/3.3.5a/09701_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09701_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/09702_world_playercreateinfo_spell.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09702_world_playercreateinfo_spell.sql
index 8a85deb6405..8a85deb6405 100644
--- a/sql/old/3.3.5a/09702_world_playercreateinfo_spell.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09702_world_playercreateinfo_spell.sql
diff --git a/sql/old/3.3.5a/09708_world_database.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09708_world_database.sql
index 87cf83da242..87cf83da242 100644
--- a/sql/old/3.3.5a/09708_world_database.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09708_world_database.sql
diff --git a/sql/old/3.3.5a/09709_world_creature_respawn.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09709_world_creature_respawn.sql
index 00cd83b51c2..00cd83b51c2 100644
--- a/sql/old/3.3.5a/09709_world_creature_respawn.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09709_world_creature_respawn.sql
diff --git a/sql/old/3.3.5a/09712_world_spell_threat.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09712_world_spell_threat.sql
index 50e8f5bc26f..50e8f5bc26f 100644
--- a/sql/old/3.3.5a/09712_world_spell_threat.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09712_world_spell_threat.sql
diff --git a/sql/old/3.3.5a/09713_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09713_world_spell_bonus_data.sql
index 05f16b269bf..05f16b269bf 100644
--- a/sql/old/3.3.5a/09713_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09713_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/09715_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09715_world_spell_proc_event.sql
index c2e2019122e..c2e2019122e 100644
--- a/sql/old/3.3.5a/09715_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09715_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/09722_world_exploration_basexp.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09722_world_exploration_basexp.sql
index 84a044f7458..84a044f7458 100644
--- a/sql/old/3.3.5a/09722_world_exploration_basexp.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09722_world_exploration_basexp.sql
diff --git a/sql/old/3.3.5a/09743_world_command.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09743_world_command.sql
index 4309c51db98..4309c51db98 100644
--- a/sql/old/3.3.5a/09743_world_command.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09743_world_command.sql
diff --git a/sql/old/3.3.5a/09743_world_lfg_dungeon_encounters.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09743_world_lfg_dungeon_encounters.sql
index 2e436b0edb2..2e436b0edb2 100644
--- a/sql/old/3.3.5a/09743_world_lfg_dungeon_encounters.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09743_world_lfg_dungeon_encounters.sql
diff --git a/sql/old/3.3.5a/09743_world_lfg_dungeon_rewards.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09743_world_lfg_dungeon_rewards.sql
index 0b762b59aca..0b762b59aca 100644
--- a/sql/old/3.3.5a/09743_world_lfg_dungeon_rewards.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09743_world_lfg_dungeon_rewards.sql
diff --git a/sql/old/3.3.5a/09746_world_spell_script_names.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09746_world_spell_script_names.sql
index 0c4f26ae0f8..0c4f26ae0f8 100644
--- a/sql/old/3.3.5a/09746_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09746_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/09760_world_transports.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09760_world_transports.sql
index bed2528adfb..bed2528adfb 100644
--- a/sql/old/3.3.5a/09760_world_transports.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09760_world_transports.sql
diff --git a/sql/old/3.3.5a/09762_world_script_texts.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09762_world_script_texts.sql
index 1408f657906..1408f657906 100644
--- a/sql/old/3.3.5a/09762_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09762_world_script_texts.sql
diff --git a/sql/old/3.3.5a/09764_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09764_world_spell_proc_event.sql
index 37648ccc21d..37648ccc21d 100644
--- a/sql/old/3.3.5a/09764_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09764_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/09765_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09765_world_spell_proc_event.sql
index 0445f98812a..0445f98812a 100644
--- a/sql/old/3.3.5a/09765_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09765_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/09768_world_command.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09768_world_command.sql
index b9b88adbcf7..b9b88adbcf7 100644
--- a/sql/old/3.3.5a/09768_world_command.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09768_world_command.sql
diff --git a/sql/old/3.3.5a/09775_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09775_world_spell_proc_event.sql
index f4f8095397d..f4f8095397d 100644
--- a/sql/old/3.3.5a/09775_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09775_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/09781_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09781_world_spell_proc_event.sql
index 474dc1e2314..474dc1e2314 100644
--- a/sql/old/3.3.5a/09781_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09781_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/09784_world_command.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09784_world_command.sql
index 94fee31f4f4..94fee31f4f4 100644
--- a/sql/old/3.3.5a/09784_world_command.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09784_world_command.sql
diff --git a/sql/old/3.3.5a/09784_world_player_factionchange_achievement.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09784_world_player_factionchange_achievement.sql
index c1cce249b1b..c1cce249b1b 100644
--- a/sql/old/3.3.5a/09784_world_player_factionchange_achievement.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09784_world_player_factionchange_achievement.sql
diff --git a/sql/old/3.3.5a/09784_world_player_factionchange_items.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09784_world_player_factionchange_items.sql
index 8cb815849f2..8cb815849f2 100644
--- a/sql/old/3.3.5a/09784_world_player_factionchange_items.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09784_world_player_factionchange_items.sql
diff --git a/sql/old/3.3.5a/09784_world_player_factionchange_reputations.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09784_world_player_factionchange_reputations.sql
index 2dd02b29727..2dd02b29727 100644
--- a/sql/old/3.3.5a/09784_world_player_factionchange_reputations.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09784_world_player_factionchange_reputations.sql
diff --git a/sql/old/3.3.5a/09784_world_player_factionchange_spells.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09784_world_player_factionchange_spells.sql
index 83879ede5ac..83879ede5ac 100644
--- a/sql/old/3.3.5a/09784_world_player_factionchange_spells.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09784_world_player_factionchange_spells.sql
diff --git a/sql/old/3.3.5a/09791_world_spell_group.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09791_world_spell_group.sql
index 19d113a7ab0..19d113a7ab0 100644
--- a/sql/old/3.3.5a/09791_world_spell_group.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09791_world_spell_group.sql
diff --git a/sql/old/3.3.5a/09791_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09791_world_spell_proc_event.sql
index ed222cf944d..ed222cf944d 100644
--- a/sql/old/3.3.5a/09791_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09791_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/09803_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09803_world_spell_proc_event.sql
index c0c8c352129..c0c8c352129 100644
--- a/sql/old/3.3.5a/09803_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09803_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/09805_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09805_world_spell_proc_event.sql
index d3a9b7ca7fe..d3a9b7ca7fe 100644
--- a/sql/old/3.3.5a/09805_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09805_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/09815_world_scriptname.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09815_world_scriptname.sql
index 2361ecba6da..2361ecba6da 100644
--- a/sql/old/3.3.5a/09815_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09815_world_scriptname.sql
diff --git a/sql/old/3.3.5a/09824_world_trinity_string.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09824_world_trinity_string.sql
index 1c5c7bd134b..1c5c7bd134b 100644
--- a/sql/old/3.3.5a/09824_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09824_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/09829_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09829_world_spell_proc_event.sql
index 322dadd174e..322dadd174e 100644
--- a/sql/old/3.3.5a/09829_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09829_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/09830_world_spell_group.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09830_world_spell_group.sql
index e571f0d3a1a..e571f0d3a1a 100644
--- a/sql/old/3.3.5a/09830_world_spell_group.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09830_world_spell_group.sql
diff --git a/sql/old/3.3.5a/09830_world_spell_group_stack_rules.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09830_world_spell_group_stack_rules.sql
index 29d3079fc3f..29d3079fc3f 100644
--- a/sql/old/3.3.5a/09830_world_spell_group_stack_rules.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09830_world_spell_group_stack_rules.sql
diff --git a/sql/old/3.3.5a/09834_world_spell_dbc.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09834_world_spell_dbc.sql
index 74b82864b37..74b82864b37 100644
--- a/sql/old/3.3.5a/09834_world_spell_dbc.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09834_world_spell_dbc.sql
diff --git a/sql/old/3.3.5a/09835_world_spell_script_names.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09835_world_spell_script_names.sql
index 298e6c0ae4f..298e6c0ae4f 100644
--- a/sql/old/3.3.5a/09835_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09835_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/09840_world_spell_linked_spell.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09840_world_spell_linked_spell.sql
index 932af4e1a5c..932af4e1a5c 100644
--- a/sql/old/3.3.5a/09840_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09840_world_spell_linked_spell.sql
diff --git a/sql/old/3.3.5a/09841_world_spell_script_names.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09841_world_spell_script_names.sql
index 5411994c43d..5411994c43d 100644
--- a/sql/old/3.3.5a/09841_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09841_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/09845_world_spell_dbc.sql b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09845_world_spell_dbc.sql
index e846c0595d8..e846c0595d8 100644
--- a/sql/old/3.3.5a/09845_world_spell_dbc.sql
+++ b/sql/old/3.3.5a/TDB33_to_TDB34_updates/world/09845_world_spell_dbc.sql
diff --git a/sql/old/3.3.5a/09859_characters_group_member.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/characters/09859_characters_group_member.sql
index 5e0a5703822..5e0a5703822 100644
--- a/sql/old/3.3.5a/09859_characters_group_member.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/characters/09859_characters_group_member.sql
diff --git a/sql/old/3.3.5a/09911_characters_guild_bank_eventlog.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/characters/09911_characters_guild_bank_eventlog.sql
index 405d8eb599c..405d8eb599c 100644
--- a/sql/old/3.3.5a/09911_characters_guild_bank_eventlog.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/characters/09911_characters_guild_bank_eventlog.sql
diff --git a/sql/old/3.3.5a/09920_characters_pool_quest_save.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/characters/09920_characters_pool_quest_save.sql
index ca1bfdafd16..ca1bfdafd16 100644
--- a/sql/old/3.3.5a/09920_characters_pool_quest_save.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/characters/09920_characters_pool_quest_save.sql
diff --git a/sql/old/3.3.5a/10000_characters_character_banned.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/characters/10000_characters_character_banned.sql
index 99c9195ad62..99c9195ad62 100644
--- a/sql/old/3.3.5a/10000_characters_character_banned.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/characters/10000_characters_character_banned.sql
diff --git a/sql/old/3.3.5a/10030_characters_item_soulbound_trade_data.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/characters/10030_characters_item_soulbound_trade_data.sql
index e6f43debb9b..e6f43debb9b 100644
--- a/sql/old/3.3.5a/10030_characters_item_soulbound_trade_data.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/characters/10030_characters_item_soulbound_trade_data.sql
diff --git a/sql/old/3.3.5a/10084_characters_character_queststatus.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/characters/10084_characters_character_queststatus.sql
index 81ce948598e..81ce948598e 100644
--- a/sql/old/3.3.5a/10084_characters_character_queststatus.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/characters/10084_characters_character_queststatus.sql
diff --git a/sql/old/3.3.5a/10241_characters_guilds.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/characters/10241_characters_guilds.sql
index ba2d2cf7277..ba2d2cf7277 100644
--- a/sql/old/3.3.5a/10241_characters_guilds.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/characters/10241_characters_guilds.sql
diff --git a/sql/old/3.3.5a/09900_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/09900_world_spell_proc_event.sql
index a63409c1418..a63409c1418 100644
--- a/sql/old/3.3.5a/09900_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/09900_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/09912_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/09912_world_spell_bonus_data.sql
index fe25a10be8f..fe25a10be8f 100644
--- a/sql/old/3.3.5a/09912_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/09912_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/09920_world_pool_quest.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/09920_world_pool_quest.sql
index b8a326b38d3..b8a326b38d3 100644
--- a/sql/old/3.3.5a/09920_world_pool_quest.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/09920_world_pool_quest.sql
diff --git a/sql/old/3.3.5a/09948_world_script_name.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/09948_world_script_name.sql
index acd7f5ed785..acd7f5ed785 100644
--- a/sql/old/3.3.5a/09948_world_script_name.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/09948_world_script_name.sql
diff --git a/sql/old/3.3.5a/09948_world_script_texts.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/09948_world_script_texts.sql
index 8d52e0be8ec..8d52e0be8ec 100644
--- a/sql/old/3.3.5a/09948_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/09948_world_script_texts.sql
diff --git a/sql/old/3.3.5a/09948_world_spell_script_names.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/09948_world_spell_script_names.sql
index eec8b7e6768..eec8b7e6768 100644
--- a/sql/old/3.3.5a/09948_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/09948_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/09958_world_quest_poi_points.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/09958_world_quest_poi_points.sql
index fa1962878a0..fa1962878a0 100644
--- a/sql/old/3.3.5a/09958_world_quest_poi_points.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/09958_world_quest_poi_points.sql
diff --git a/sql/old/3.3.5a/09963_world_spell_script_names.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/09963_world_spell_script_names.sql
index 42aedad8c58..42aedad8c58 100644
--- a/sql/old/3.3.5a/09963_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/09963_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/09977_world_spell_script_names.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/09977_world_spell_script_names.sql
index 91918cc6538..91918cc6538 100644
--- a/sql/old/3.3.5a/09977_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/09977_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/09988_world_spell_script_names.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/09988_world_spell_script_names.sql
index 810fc602318..810fc602318 100644
--- a/sql/old/3.3.5a/09988_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/09988_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/10000_world_command.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10000_world_command.sql
index 75717ac6aad..75717ac6aad 100644
--- a/sql/old/3.3.5a/10000_world_command.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10000_world_command.sql
diff --git a/sql/old/3.3.5a/10000_world_trinity_string.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10000_world_trinity_string.sql
index 40e970f8197..40e970f8197 100644
--- a/sql/old/3.3.5a/10000_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10000_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/10023_world_command.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10023_world_command.sql
index 653d400c690..653d400c690 100644
--- a/sql/old/3.3.5a/10023_world_command.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10023_world_command.sql
diff --git a/sql/old/3.3.5a/10029_world_spell_script_names.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10029_world_spell_script_names.sql
index b99128e82fe..b99128e82fe 100644
--- a/sql/old/3.3.5a/10029_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10029_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/10060_world_creature_text.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10060_world_creature_text.sql
index 665de9f67ad..665de9f67ad 100644
--- a/sql/old/3.3.5a/10060_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10060_world_creature_text.sql
diff --git a/sql/old/3.3.5a/10076_world_command.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10076_world_command.sql
index c0d25296097..c0d25296097 100644
--- a/sql/old/3.3.5a/10076_world_command.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10076_world_command.sql
diff --git a/sql/old/3.3.5a/10078_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10078_world_spell_proc_event.sql
index 66127028836..66127028836 100644
--- a/sql/old/3.3.5a/10078_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10078_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/10083_world_trinity_string.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10083_world_trinity_string.sql
index 3564cab902d..3564cab902d 100644
--- a/sql/old/3.3.5a/10083_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10083_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/10091_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10091_world_spell_proc_event.sql
index 02d88bcfc4e..02d88bcfc4e 100644
--- a/sql/old/3.3.5a/10091_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10091_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/10099_world_spell_script_names.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10099_world_spell_script_names.sql
index b25aa514f29..b25aa514f29 100644
--- a/sql/old/3.3.5a/10099_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10099_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/10105_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10105_world_spell_proc_event.sql
index 5c4c7586b4b..5c4c7586b4b 100644
--- a/sql/old/3.3.5a/10105_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10105_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/10105_world_spell_script_names.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10105_world_spell_script_names.sql
index 3c9c0718e3b..3c9c0718e3b 100644
--- a/sql/old/3.3.5a/10105_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10105_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/10113_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10113_world_spell_proc_event.sql
index ff256a695eb..ff256a695eb 100644
--- a/sql/old/3.3.5a/10113_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10113_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/10132_world_command.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10132_world_command.sql
index f4532d65a6e..f4532d65a6e 100644
--- a/sql/old/3.3.5a/10132_world_command.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10132_world_command.sql
diff --git a/sql/old/3.3.5a/10132_world_trinity_string.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10132_world_trinity_string.sql
index c9a540a26b9..c9a540a26b9 100644
--- a/sql/old/3.3.5a/10132_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10132_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/10171_world_script_texts.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10171_world_script_texts.sql
index ef4c19916f5..ef4c19916f5 100644
--- a/sql/old/3.3.5a/10171_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10171_world_script_texts.sql
diff --git a/sql/old/3.3.5a/10181_world_script_name.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10181_world_script_name.sql
index d654bdbecbf..d654bdbecbf 100644
--- a/sql/old/3.3.5a/10181_world_script_name.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10181_world_script_name.sql
diff --git a/sql/old/3.3.5a/10182_world_script_texts.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10182_world_script_texts.sql
index f43d12ed768..f43d12ed768 100644
--- a/sql/old/3.3.5a/10182_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10182_world_script_texts.sql
diff --git a/sql/old/3.3.5a/10183_world_spell_script_names.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10183_world_spell_script_names.sql
index 60f3f1d88a6..60f3f1d88a6 100644
--- a/sql/old/3.3.5a/10183_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10183_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/10189_world_script_texts.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10189_world_script_texts.sql
index 4d0470fbb17..4d0470fbb17 100644
--- a/sql/old/3.3.5a/10189_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10189_world_script_texts.sql
diff --git a/sql/old/3.3.5a/10189_world_scriptname.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10189_world_scriptname.sql
index 5d4891e224e..5d4891e224e 100644
--- a/sql/old/3.3.5a/10189_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10189_world_scriptname.sql
diff --git a/sql/old/3.3.5a/10189_world_spell_linked_spell.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10189_world_spell_linked_spell.sql
index 57ee6b62ce1..57ee6b62ce1 100644
--- a/sql/old/3.3.5a/10189_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10189_world_spell_linked_spell.sql
diff --git a/sql/old/3.3.5a/10189_world_spell_script_names.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10189_world_spell_script_names.sql
index ea82c897700..ea82c897700 100644
--- a/sql/old/3.3.5a/10189_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10189_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/10192_world_creature.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10192_world_creature.sql
index 012ef06ad07..012ef06ad07 100644
--- a/sql/old/3.3.5a/10192_world_creature.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10192_world_creature.sql
diff --git a/sql/old/3.3.5a/10195_world_script_texts.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10195_world_script_texts.sql
index 335f9f3a0b6..335f9f3a0b6 100644
--- a/sql/old/3.3.5a/10195_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10195_world_script_texts.sql
diff --git a/sql/old/3.3.5a/10206_world_creature_classlevelstats.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10206_world_creature_classlevelstats.sql
index 471a7ac792b..471a7ac792b 100644
--- a/sql/old/3.3.5a/10206_world_creature_classlevelstats.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10206_world_creature_classlevelstats.sql
diff --git a/sql/old/3.3.5a/10208_world_script_name.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10208_world_script_name.sql
index 7487de2d439..7487de2d439 100644
--- a/sql/old/3.3.5a/10208_world_script_name.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10208_world_script_name.sql
diff --git a/sql/old/3.3.5a/10208_world_script_texts.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10208_world_script_texts.sql
index 83041d0dbe7..83041d0dbe7 100644
--- a/sql/old/3.3.5a/10208_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10208_world_script_texts.sql
diff --git a/sql/old/3.3.5a/10213_world_script_texts.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10213_world_script_texts.sql
index d8d60ca6041..d8d60ca6041 100644
--- a/sql/old/3.3.5a/10213_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10213_world_script_texts.sql
diff --git a/sql/old/3.3.5a/10215_world_spell_script_names.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10215_world_spell_script_names.sql
index 4058346f882..4058346f882 100644
--- a/sql/old/3.3.5a/10215_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10215_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/10219_world_spelldifficulty_dbc.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10219_world_spelldifficulty_dbc.sql
index 004448cb789..004448cb789 100644
--- a/sql/old/3.3.5a/10219_world_spelldifficulty_dbc.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10219_world_spelldifficulty_dbc.sql
diff --git a/sql/old/3.3.5a/10223_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10223_world_spell_proc_event.sql
index 1b74259d1d9..1b74259d1d9 100644
--- a/sql/old/3.3.5a/10223_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10223_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/10228_world_trinity_string.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10228_world_trinity_string.sql
index b62a667d3bf..b62a667d3bf 100644
--- a/sql/old/3.3.5a/10228_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10228_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/10230_world_script_texts.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10230_world_script_texts.sql
index 8256982cd36..8256982cd36 100644
--- a/sql/old/3.3.5a/10230_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10230_world_script_texts.sql
diff --git a/sql/old/3.3.5a/10230_world_scriptname.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10230_world_scriptname.sql
index 73976c60658..73976c60658 100644
--- a/sql/old/3.3.5a/10230_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10230_world_scriptname.sql
diff --git a/sql/old/3.3.5a/10230_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10230_world_spell_proc_event.sql
index 6db2a01575e..6db2a01575e 100644
--- a/sql/old/3.3.5a/10230_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10230_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/10230_world_spell_script_names.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10230_world_spell_script_names.sql
index c98b3e7c995..c98b3e7c995 100644
--- a/sql/old/3.3.5a/10230_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10230_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/10246_world_spell_linked_spell.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10246_world_spell_linked_spell.sql
index 46cfa0d936d..46cfa0d936d 100644
--- a/sql/old/3.3.5a/10246_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10246_world_spell_linked_spell.sql
diff --git a/sql/old/3.3.5a/10246_world_spell_script_names.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10246_world_spell_script_names.sql
index 1b049bb9ea6..1b049bb9ea6 100644
--- a/sql/old/3.3.5a/10246_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10246_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/10269_world_scriptname.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10269_world_scriptname.sql
index 7fc2b3e8255..7fc2b3e8255 100644
--- a/sql/old/3.3.5a/10269_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10269_world_scriptname.sql
diff --git a/sql/old/3.3.5a/10281_world_gameobject_template.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10281_world_gameobject_template.sql
index 568b4c21f5e..568b4c21f5e 100644
--- a/sql/old/3.3.5a/10281_world_gameobject_template.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10281_world_gameobject_template.sql
diff --git a/sql/old/3.3.5a/10282_world_script_texts.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10282_world_script_texts.sql
index 57bd30d9a9d..57bd30d9a9d 100644
--- a/sql/old/3.3.5a/10282_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10282_world_script_texts.sql
diff --git a/sql/old/3.3.5a/10284_world_script_texts.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10284_world_script_texts.sql
index 4a617507473..4a617507473 100644
--- a/sql/old/3.3.5a/10284_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10284_world_script_texts.sql
diff --git a/sql/old/3.3.5a/10284_world_scriptname.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10284_world_scriptname.sql
index 0dba0a9e82a..0dba0a9e82a 100644
--- a/sql/old/3.3.5a/10284_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10284_world_scriptname.sql
diff --git a/sql/old/3.3.5a/10284_world_spell_script_names.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10284_world_spell_script_names.sql
index 71d7696396b..71d7696396b 100644
--- a/sql/old/3.3.5a/10284_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10284_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/10300_world_spell_script_names.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10300_world_spell_script_names.sql
index 2e3850ba135..2e3850ba135 100644
--- a/sql/old/3.3.5a/10300_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10300_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/10307_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10307_world_spell_bonus_data.sql
index 4aa579e855c..4aa579e855c 100644
--- a/sql/old/3.3.5a/10307_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10307_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/10320_world_smart_scripts.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10320_world_smart_scripts.sql
index 99fdaf747a0..99fdaf747a0 100644
--- a/sql/old/3.3.5a/10320_world_smart_scripts.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10320_world_smart_scripts.sql
diff --git a/sql/old/3.3.5a/10320_world_waypoints.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10320_world_waypoints.sql
index 6fc27aa9d9c..6fc27aa9d9c 100644
--- a/sql/old/3.3.5a/10320_world_waypoints.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10320_world_waypoints.sql
diff --git a/sql/old/3.3.5a/10325_world_scriptname.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10325_world_scriptname.sql
index be39336d37b..be39336d37b 100644
--- a/sql/old/3.3.5a/10325_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10325_world_scriptname.sql
diff --git a/sql/old/3.3.5a/10327_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10327_world_spell_bonus_data.sql
index 9257a6cc02a..9257a6cc02a 100644
--- a/sql/old/3.3.5a/10327_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB34_to_TDB35_updates/world/10327_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/10349_world_script_texts.sql b/sql/old/3.3.5a/TDB35_to_TDB36_updates/world/10349_world_script_texts.sql
index c3928860fe7..c3928860fe7 100644
--- a/sql/old/3.3.5a/10349_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB35_to_TDB36_updates/world/10349_world_script_texts.sql
diff --git a/sql/old/3.3.5a/10383_world_version.sql b/sql/old/3.3.5a/TDB35_to_TDB36_updates/world/10383_world_version.sql
index 301480b3a2f..301480b3a2f 100644
--- a/sql/old/3.3.5a/10383_world_version.sql
+++ b/sql/old/3.3.5a/TDB35_to_TDB36_updates/world/10383_world_version.sql
diff --git a/sql/old/3.3.5a/10392_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB35_to_TDB36_updates/world/10392_world_spell_bonus_data.sql
index 3a808bddf13..3a808bddf13 100644
--- a/sql/old/3.3.5a/10392_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB35_to_TDB36_updates/world/10392_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/10393_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB35_to_TDB36_updates/world/10393_world_spell_proc_event.sql
index 11e9f7a184b..11e9f7a184b 100644
--- a/sql/old/3.3.5a/10393_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB35_to_TDB36_updates/world/10393_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/10397_world_command.sql b/sql/old/3.3.5a/TDB35_to_TDB36_updates/world/10397_world_command.sql
index bc72fa2841d..bc72fa2841d 100644
--- a/sql/old/3.3.5a/10397_world_command.sql
+++ b/sql/old/3.3.5a/TDB35_to_TDB36_updates/world/10397_world_command.sql
diff --git a/sql/old/3.3.5a/10402_world_spell_script_names.sql b/sql/old/3.3.5a/TDB35_to_TDB36_updates/world/10402_world_spell_script_names.sql
index 1f70a1d018f..1f70a1d018f 100644
--- a/sql/old/3.3.5a/10402_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB35_to_TDB36_updates/world/10402_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/10475_characters_character_banned.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/characters/10475_characters_character_banned.sql
index 1d4789a4f33..1d4789a4f33 100644
--- a/sql/old/3.3.5a/10475_characters_character_banned.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/characters/10475_characters_character_banned.sql
diff --git a/sql/old/3.3.5a/10475_characters_creature_respawn.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/characters/10475_characters_creature_respawn.sql
index e6964910597..e6964910597 100644
--- a/sql/old/3.3.5a/10475_characters_creature_respawn.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/characters/10475_characters_creature_respawn.sql
diff --git a/sql/old/3.3.5a/10475_characters_gameobject_respawn.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/characters/10475_characters_gameobject_respawn.sql
index 2a5f0c03de7..2a5f0c03de7 100644
--- a/sql/old/3.3.5a/10475_characters_gameobject_respawn.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/characters/10475_characters_gameobject_respawn.sql
diff --git a/sql/old/3.3.5a/10475_characters_reserved_name.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/characters/10475_characters_reserved_name.sql
index dedab8b5911..dedab8b5911 100644
--- a/sql/old/3.3.5a/10475_characters_reserved_name.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/characters/10475_characters_reserved_name.sql
diff --git a/sql/old/3.3.5a/10543_characters_group_member.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/characters/10543_characters_group_member.sql
index 5c018bcad90..5c018bcad90 100644
--- a/sql/old/3.3.5a/10543_characters_group_member.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/characters/10543_characters_group_member.sql
diff --git a/sql/old/3.3.5a/10548_characters_channel.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/characters/10548_characters_channel.sql
index 126a51ca5bb..126a51ca5bb 100644
--- a/sql/old/3.3.5a/10548_characters_channel.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/characters/10548_characters_channel.sql
diff --git a/sql/old/3.3.5a/10654_characters_item_instance.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/characters/10654_characters_item_instance.sql
index 3445fa173ec..3445fa173ec 100644
--- a/sql/old/3.3.5a/10654_characters_item_instance.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/characters/10654_characters_item_instance.sql
diff --git a/sql/old/3.3.5a/10741_characters_character_aura.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/characters/10741_characters_character_aura.sql
index d9afb213a76..d9afb213a76 100644
--- a/sql/old/3.3.5a/10741_characters_character_aura.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/characters/10741_characters_character_aura.sql
diff --git a/sql/old/3.3.5a/10777_characters_creature_respawn.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/characters/10777_characters_creature_respawn.sql
index 2289f201ac6..2289f201ac6 100644
--- a/sql/old/3.3.5a/10777_characters_creature_respawn.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/characters/10777_characters_creature_respawn.sql
diff --git a/sql/old/3.3.5a/10777_characters_gameobject_respawn.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/characters/10777_characters_gameobject_respawn.sql
index 065586d0739..065586d0739 100644
--- a/sql/old/3.3.5a/10777_characters_gameobject_respawn.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/characters/10777_characters_gameobject_respawn.sql
diff --git a/sql/old/3.3.5a/10418_world_spell_script_names.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10418_world_spell_script_names.sql
index 321fda46450..321fda46450 100644
--- a/sql/old/3.3.5a/10418_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10418_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/10419_world_spell_linked_spell.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10419_world_spell_linked_spell.sql
index db29bbecde3..db29bbecde3 100644
--- a/sql/old/3.3.5a/10419_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10419_world_spell_linked_spell.sql
diff --git a/sql/old/3.3.5a/10431_world_trinity_string.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10431_world_trinity_string.sql
index 11c777f561c..11c777f561c 100644
--- a/sql/old/3.3.5a/10431_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10431_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/10436_world_script_texts.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10436_world_script_texts.sql
index 4bf12bb70b5..4bf12bb70b5 100644
--- a/sql/old/3.3.5a/10436_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10436_world_script_texts.sql
diff --git a/sql/old/3.3.5a/10436_world_scriptname.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10436_world_scriptname.sql
index c824b206974..c824b206974 100644
--- a/sql/old/3.3.5a/10436_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10436_world_scriptname.sql
diff --git a/sql/old/3.3.5a/10453_world_creature_template.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10453_world_creature_template.sql
index 1c869eb10ef..1c869eb10ef 100644
--- a/sql/old/3.3.5a/10453_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10453_world_creature_template.sql
diff --git a/sql/old/3.3.5a/10453_world_script_text.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10453_world_script_text.sql
index f107787e051..f107787e051 100644
--- a/sql/old/3.3.5a/10453_world_script_text.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10453_world_script_text.sql
diff --git a/sql/old/3.3.5a/10460_world_command.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10460_world_command.sql
index 83343f0fff0..83343f0fff0 100644
--- a/sql/old/3.3.5a/10460_world_command.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10460_world_command.sql
diff --git a/sql/old/3.3.5a/10462_world_spell_script_names.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10462_world_spell_script_names.sql
index c4439817178..c4439817178 100644
--- a/sql/old/3.3.5a/10462_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10462_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/10468_world_script_texts.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10468_world_script_texts.sql
index bb3ed4d7299..bb3ed4d7299 100644
--- a/sql/old/3.3.5a/10468_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10468_world_script_texts.sql
diff --git a/sql/old/3.3.5a/10468_world_spell_script_names.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10468_world_spell_script_names.sql
index 89f6b5b79e1..89f6b5b79e1 100644
--- a/sql/old/3.3.5a/10468_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10468_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/10470_world_command.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10470_world_command.sql
index 56f665e9104..56f665e9104 100644
--- a/sql/old/3.3.5a/10470_world_command.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10470_world_command.sql
diff --git a/sql/old/3.3.5a/10470_world_trinity_string.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10470_world_trinity_string.sql
index 976151656d2..976151656d2 100644
--- a/sql/old/3.3.5a/10470_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10470_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/10490_world_scriptname.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10490_world_scriptname.sql
index ead063856bb..ead063856bb 100644
--- a/sql/old/3.3.5a/10490_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10490_world_scriptname.sql
diff --git a/sql/old/3.3.5a/10545_world_script_texts.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10545_world_script_texts.sql
index 15e4de0f148..15e4de0f148 100644
--- a/sql/old/3.3.5a/10545_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10545_world_script_texts.sql
diff --git a/sql/old/3.3.5a/10545_world_scriptname.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10545_world_scriptname.sql
index e5405faadf8..e5405faadf8 100644
--- a/sql/old/3.3.5a/10545_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10545_world_scriptname.sql
diff --git a/sql/old/3.3.5a/10548_world_command.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10548_world_command.sql
index 8ea3ddbbc9e..8ea3ddbbc9e 100644
--- a/sql/old/3.3.5a/10548_world_command.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10548_world_command.sql
diff --git a/sql/old/3.3.5a/10548_world_trinity_string.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10548_world_trinity_string.sql
index f59a412174a..f59a412174a 100644
--- a/sql/old/3.3.5a/10548_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10548_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/10561_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10561_world_achievement_criteria_data.sql
index b64f14bcb85..b64f14bcb85 100644
--- a/sql/old/3.3.5a/10561_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10561_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/10561_world_scriptname.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10561_world_scriptname.sql
index faa92a98ae1..faa92a98ae1 100644
--- a/sql/old/3.3.5a/10561_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10561_world_scriptname.sql
diff --git a/sql/old/3.3.5a/10561_world_spell_linked_spell.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10561_world_spell_linked_spell.sql
index 7a186fb3d97..7a186fb3d97 100644
--- a/sql/old/3.3.5a/10561_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10561_world_spell_linked_spell.sql
diff --git a/sql/old/3.3.5a/10561_world_spell_script_names.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10561_world_spell_script_names.sql
index e6f6ba6295c..e6f6ba6295c 100644
--- a/sql/old/3.3.5a/10561_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10561_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/10563_world_scriptname.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10563_world_scriptname.sql
index 4184ee9f9f2..4184ee9f9f2 100644
--- a/sql/old/3.3.5a/10563_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10563_world_scriptname.sql
diff --git a/sql/old/3.3.5a/10570_world_disables.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10570_world_disables.sql
index afafcbbd756..afafcbbd756 100644
--- a/sql/old/3.3.5a/10570_world_disables.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10570_world_disables.sql
diff --git a/sql/old/3.3.5a/10619_world_spell_script_names.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10619_world_spell_script_names.sql
index 23f06a72125..23f06a72125 100644
--- a/sql/old/3.3.5a/10619_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10619_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/10623_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10623_world_spell_bonus_data.sql
index 7db48d5bd92..7db48d5bd92 100644
--- a/sql/old/3.3.5a/10623_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10623_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/10646_world_scriptname.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10646_world_scriptname.sql
index f97cea87c6d..f97cea87c6d 100644
--- a/sql/old/3.3.5a/10646_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10646_world_scriptname.sql
diff --git a/sql/old/3.3.5a/10681_world_command.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10681_world_command.sql
index b91b64ae152..b91b64ae152 100644
--- a/sql/old/3.3.5a/10681_world_command.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10681_world_command.sql
diff --git a/sql/old/3.3.5a/10733_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10733_world_spell_proc_event.sql
index ed30cb35d1d..ed30cb35d1d 100644
--- a/sql/old/3.3.5a/10733_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10733_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/10736_world_scriptname.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10736_world_scriptname.sql
index 2aae66daeec..2aae66daeec 100644
--- a/sql/old/3.3.5a/10736_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10736_world_scriptname.sql
diff --git a/sql/old/3.3.5a/10765_world_scriptname.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10765_world_scriptname.sql
index 0c100dea663..0c100dea663 100644
--- a/sql/old/3.3.5a/10765_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10765_world_scriptname.sql
diff --git a/sql/old/3.3.5a/10765_world_spell_dbc.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10765_world_spell_dbc.sql
index 8a5846b5eec..8a5846b5eec 100644
--- a/sql/old/3.3.5a/10765_world_spell_dbc.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10765_world_spell_dbc.sql
diff --git a/sql/old/3.3.5a/10801_world_creature_linked_respawn.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10801_world_creature_linked_respawn.sql
index 4be48e58e84..4be48e58e84 100644
--- a/sql/old/3.3.5a/10801_world_creature_linked_respawn.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10801_world_creature_linked_respawn.sql
diff --git a/sql/old/3.3.5a/10806_world_scriptname.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10806_world_scriptname.sql
index d2f02595e72..d2f02595e72 100644
--- a/sql/old/3.3.5a/10806_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10806_world_scriptname.sql
diff --git a/sql/old/3.3.5a/10815_world_spell_script_names.sql b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10815_world_spell_script_names.sql
index ee041b30e0a..ee041b30e0a 100644
--- a/sql/old/3.3.5a/10815_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB36_to_TDB37_updates/world/10815_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/10828_characters_character_queststatus.sql b/sql/old/3.3.5a/TDB37_to_TDB38_updates/10828_characters_character_queststatus.sql
index 946a8fc119f..946a8fc119f 100644
--- a/sql/old/3.3.5a/10828_characters_character_queststatus.sql
+++ b/sql/old/3.3.5a/TDB37_to_TDB38_updates/10828_characters_character_queststatus.sql
diff --git a/sql/old/3.3.5a/10831_world_scriptname.sql b/sql/old/3.3.5a/TDB37_to_TDB38_updates/10831_world_scriptname.sql
index 7b410391171..7b410391171 100644
--- a/sql/old/3.3.5a/10831_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB37_to_TDB38_updates/10831_world_scriptname.sql
diff --git a/sql/old/3.3.5a/10840_world_script_texts.sql b/sql/old/3.3.5a/TDB37_to_TDB38_updates/10840_world_script_texts.sql
index 180bea7f12e..180bea7f12e 100644
--- a/sql/old/3.3.5a/10840_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB37_to_TDB38_updates/10840_world_script_texts.sql
diff --git a/sql/old/3.3.5a/10840_world_scriptname.sql b/sql/old/3.3.5a/TDB37_to_TDB38_updates/10840_world_scriptname.sql
index d24da6225c5..d24da6225c5 100644
--- a/sql/old/3.3.5a/10840_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB37_to_TDB38_updates/10840_world_scriptname.sql
diff --git a/sql/old/3.3.5a/10853_world_spell_script_names.sql b/sql/old/3.3.5a/TDB37_to_TDB38_updates/10853_world_spell_script_names.sql
index e58c4c9c57d..e58c4c9c57d 100644
--- a/sql/old/3.3.5a/10853_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB37_to_TDB38_updates/10853_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/10885_world_spell_script_names.sql b/sql/old/3.3.5a/TDB37_to_TDB38_updates/10885_world_spell_script_names.sql
index 2dc9a2f4f2b..2dc9a2f4f2b 100644
--- a/sql/old/3.3.5a/10885_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB37_to_TDB38_updates/10885_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/10892_world_spell_script_names.sql b/sql/old/3.3.5a/TDB37_to_TDB38_updates/10892_world_spell_script_names.sql
index b762fcee0d3..b762fcee0d3 100644
--- a/sql/old/3.3.5a/10892_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB37_to_TDB38_updates/10892_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/10903_world_spell_script_names.sql b/sql/old/3.3.5a/TDB37_to_TDB38_updates/10903_world_spell_script_names.sql
index a316380109b..a316380109b 100644
--- a/sql/old/3.3.5a/10903_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB37_to_TDB38_updates/10903_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/10918_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB37_to_TDB38_updates/10918_world_achievement_criteria_data.sql
index a737c836562..a737c836562 100644
--- a/sql/old/3.3.5a/10918_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB37_to_TDB38_updates/10918_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/10918_world_areatrigger_scripts.sql b/sql/old/3.3.5a/TDB37_to_TDB38_updates/10918_world_areatrigger_scripts.sql
index 813db38f4b9..813db38f4b9 100644
--- a/sql/old/3.3.5a/10918_world_areatrigger_scripts.sql
+++ b/sql/old/3.3.5a/TDB37_to_TDB38_updates/10918_world_areatrigger_scripts.sql
diff --git a/sql/old/3.3.5a/10918_world_script_texts.sql b/sql/old/3.3.5a/TDB37_to_TDB38_updates/10918_world_script_texts.sql
index 3eb686443eb..3eb686443eb 100644
--- a/sql/old/3.3.5a/10918_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB37_to_TDB38_updates/10918_world_script_texts.sql
diff --git a/sql/old/3.3.5a/10918_world_scriptname.sql b/sql/old/3.3.5a/TDB37_to_TDB38_updates/10918_world_scriptname.sql
index cca304b3a2d..cca304b3a2d 100644
--- a/sql/old/3.3.5a/10918_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB37_to_TDB38_updates/10918_world_scriptname.sql
diff --git a/sql/old/3.3.5a/10918_world_spell_script_names.sql b/sql/old/3.3.5a/TDB37_to_TDB38_updates/10918_world_spell_script_names.sql
index d086d80dae6..d086d80dae6 100644
--- a/sql/old/3.3.5a/10918_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB37_to_TDB38_updates/10918_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/10918_world_vehicle_accessory.sql b/sql/old/3.3.5a/TDB37_to_TDB38_updates/10918_world_vehicle_accessory.sql
index c5ae9d376c2..c5ae9d376c2 100644
--- a/sql/old/3.3.5a/10918_world_vehicle_accessory.sql
+++ b/sql/old/3.3.5a/TDB37_to_TDB38_updates/10918_world_vehicle_accessory.sql
diff --git a/sql/old/3.3.5a/10925_world_spell_script_names.sql b/sql/old/3.3.5a/TDB37_to_TDB38_updates/10925_world_spell_script_names.sql
index 78f134d4b98..78f134d4b98 100644
--- a/sql/old/3.3.5a/10925_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB37_to_TDB38_updates/10925_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_account_data.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_account_data.sql
index 0d0ba276ff5..0d0ba276ff5 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_account_data.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_account_data.sql
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_addons.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_addons.sql
index 3019cdcc8f7..3019cdcc8f7 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_addons.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_addons.sql
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_arena_team.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_arena_team.sql
index 3dfe9c2a7a5..3dfe9c2a7a5 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_arena_team.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_arena_team.sql
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_auctionhouse.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_auctionhouse.sql
index 20719a2ca61..20719a2ca61 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_auctionhouse.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_auctionhouse.sql
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_bugreport.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_bugreport.sql
index 1ceb0abe429..1ceb0abe429 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_bugreport.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_bugreport.sql
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_channels.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_channels.sql
index 1c0b4a927fc..1c0b4a927fc 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_channels.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_channels.sql
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_character_account_data.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_account_data.sql
index bf5898266d7..bf5898266d7 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_character_account_data.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_account_data.sql
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_character_achievement.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_achievement.sql
index cbfc6e95aa8..cbfc6e95aa8 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_character_achievement.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_achievement.sql
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_character_achievement_progress.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_achievement_progress.sql
index ba91258f82d..ba91258f82d 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_character_achievement_progress.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_achievement_progress.sql
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_character_action.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_action.sql
index d2d235e270c..d2d235e270c 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_character_action.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_action.sql
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_character_arena_stats.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_arena_stats.sql
index e68048d2f0e..e68048d2f0e 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_character_arena_stats.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_arena_stats.sql
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_character_aura.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_aura.sql
index 072c88235e7..072c88235e7 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_character_aura.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_aura.sql
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_character_banned.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_banned.sql
index da3d46d9929..da3d46d9929 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_character_banned.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_banned.sql
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_character_battleground_data.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_battleground_data.sql
index 9247a180b48..9247a180b48 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_character_battleground_data.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_battleground_data.sql
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_character_battleground_random.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_battleground_random.sql
index cf76a17fc0c..cf76a17fc0c 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_character_battleground_random.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_battleground_random.sql
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_character_declinedname.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_declinedname.sql
index 912db55712b..912db55712b 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_character_declinedname.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_declinedname.sql
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_character_equipmentsets.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_equipmentsets.sql
index abdcbede5d0..abdcbede5d0 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_character_equipmentsets.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_equipmentsets.sql
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_character_gifts.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_gifts.sql
index 2012eb96315..2012eb96315 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_character_gifts.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_gifts.sql
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_character_glyphs.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_glyphs.sql
index 73bb65f4ef9..73bb65f4ef9 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_character_glyphs.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_glyphs.sql
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_character_homebind.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_homebind.sql
index 49c450011fc..49c450011fc 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_character_homebind.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_homebind.sql
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_character_instance.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_instance.sql
index aba0047f7e1..aba0047f7e1 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_character_instance.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_instance.sql
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_character_inventory.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_inventory.sql
index aca08d1ec38..aca08d1ec38 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_character_inventory.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_inventory.sql
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_character_pet.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_pet.sql
index 51a4c7e0260..51a4c7e0260 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_character_pet.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_pet.sql
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_character_pet_declinedname.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_pet_declinedname.sql
index f0adc06c763..f0adc06c763 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_character_pet_declinedname.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_pet_declinedname.sql
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_character_queststatus.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_queststatus.sql
index 4bc7eddd39a..4bc7eddd39a 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_character_queststatus.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_queststatus.sql
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_character_queststatus_daily.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_queststatus_daily.sql
index 334123e8df6..334123e8df6 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_character_queststatus_daily.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_queststatus_daily.sql
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_character_queststatus_weekly.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_queststatus_weekly.sql
index fcf54ce0c14..fcf54ce0c14 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_character_queststatus_weekly.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_queststatus_weekly.sql
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_character_reputation.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_reputation.sql
index 04acd20bd6c..04acd20bd6c 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_character_reputation.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_reputation.sql
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_character_skills.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_skills.sql
index 99bd2e754aa..99bd2e754aa 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_character_skills.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_skills.sql
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_character_social.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_social.sql
index 54a605b0de7..54a605b0de7 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_character_social.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_social.sql
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_character_spell.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_spell.sql
index cbc8b45c677..cbc8b45c677 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_character_spell.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_spell.sql
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_character_spell_cooldown.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_spell_cooldown.sql
index f4558168bcb..f4558168bcb 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_character_spell_cooldown.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_spell_cooldown.sql
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_character_stats.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_stats.sql
index 5cf885950c3..5cf885950c3 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_character_stats.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_stats.sql
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_character_talent.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_talent.sql
index 47c7bd1ade0..47c7bd1ade0 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_character_talent.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_talent.sql
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_character_tutorial.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_tutorial.sql
index 83c85f8ebe7..83c85f8ebe7 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_character_tutorial.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_character_tutorial.sql
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_characters.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_characters.sql
index 08cf4c0d630..08cf4c0d630 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_characters.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_characters.sql
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_corpse.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_corpse.sql
index 9902583b5cb..9902583b5cb 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_corpse.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_corpse.sql
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_creature_respawn.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_creature_respawn.sql
index eb476844361..eb476844361 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_creature_respawn.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_creature_respawn.sql
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_game_event_condition_save.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_game_event_condition_save.sql
index 06dec4e9ead..06dec4e9ead 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_game_event_condition_save.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_19_00_characters_game_event_condition_save.sql
diff --git a/sql/old/3.3.5a/2011_01_20_00_characters_game_event_save.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_game_event_save.sql
index 06cc0976974..06cc0976974 100644
--- a/sql/old/3.3.5a/2011_01_20_00_characters_game_event_save.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_game_event_save.sql
diff --git a/sql/old/3.3.5a/2011_01_20_00_characters_gameobject_respawn.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_gameobject_respawn.sql
index bf83a59a67e..bf83a59a67e 100644
--- a/sql/old/3.3.5a/2011_01_20_00_characters_gameobject_respawn.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_gameobject_respawn.sql
diff --git a/sql/old/3.3.5a/2011_01_20_00_characters_gm_subsurveys.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_gm_subsurveys.sql
index 51af89da7f0..51af89da7f0 100644
--- a/sql/old/3.3.5a/2011_01_20_00_characters_gm_subsurveys.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_gm_subsurveys.sql
diff --git a/sql/old/3.3.5a/2011_01_20_00_characters_gm_surveys.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_gm_surveys.sql
index 93c37b7b45e..93c37b7b45e 100644
--- a/sql/old/3.3.5a/2011_01_20_00_characters_gm_surveys.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_gm_surveys.sql
diff --git a/sql/old/3.3.5a/2011_01_20_00_characters_gm_tickets.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_gm_tickets.sql
index 9965797cbf3..9965797cbf3 100644
--- a/sql/old/3.3.5a/2011_01_20_00_characters_gm_tickets.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_gm_tickets.sql
diff --git a/sql/old/3.3.5a/2011_01_20_00_characters_group_instance.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_group_instance.sql
index ae7f6fccf2d..ae7f6fccf2d 100644
--- a/sql/old/3.3.5a/2011_01_20_00_characters_group_instance.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_group_instance.sql
diff --git a/sql/old/3.3.5a/2011_01_20_00_characters_group_member.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_group_member.sql
index 03bcbe66b3d..03bcbe66b3d 100644
--- a/sql/old/3.3.5a/2011_01_20_00_characters_group_member.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_group_member.sql
diff --git a/sql/old/3.3.5a/2011_01_20_00_characters_groups.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_groups.sql
index b986d402c8f..b986d402c8f 100644
--- a/sql/old/3.3.5a/2011_01_20_00_characters_groups.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_groups.sql
diff --git a/sql/old/3.3.5a/2011_01_20_00_characters_guild.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_guild.sql
index 89b9df1bf2e..89b9df1bf2e 100644
--- a/sql/old/3.3.5a/2011_01_20_00_characters_guild.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_guild.sql
diff --git a/sql/old/3.3.5a/2011_01_20_00_characters_guild_bank_eventlog.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_guild_bank_eventlog.sql
index 627020be62f..627020be62f 100644
--- a/sql/old/3.3.5a/2011_01_20_00_characters_guild_bank_eventlog.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_guild_bank_eventlog.sql
diff --git a/sql/old/3.3.5a/2011_01_20_00_characters_guild_bank_item.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_guild_bank_item.sql
index d3c0157ff51..d3c0157ff51 100644
--- a/sql/old/3.3.5a/2011_01_20_00_characters_guild_bank_item.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_guild_bank_item.sql
diff --git a/sql/old/3.3.5a/2011_01_20_00_characters_guild_bank_right.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_guild_bank_right.sql
index 9c72527ca5d..9c72527ca5d 100644
--- a/sql/old/3.3.5a/2011_01_20_00_characters_guild_bank_right.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_guild_bank_right.sql
diff --git a/sql/old/3.3.5a/2011_01_20_00_characters_guild_bank_tab.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_guild_bank_tab.sql
index a096a0836cc..a096a0836cc 100644
--- a/sql/old/3.3.5a/2011_01_20_00_characters_guild_bank_tab.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_guild_bank_tab.sql
diff --git a/sql/old/3.3.5a/2011_01_20_00_characters_guild_eventlog.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_guild_eventlog.sql
index cf5f71a347c..cf5f71a347c 100644
--- a/sql/old/3.3.5a/2011_01_20_00_characters_guild_eventlog.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_guild_eventlog.sql
diff --git a/sql/old/3.3.5a/2011_01_20_00_characters_guild_member.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_guild_member.sql
index f1d2f78727e..f1d2f78727e 100644
--- a/sql/old/3.3.5a/2011_01_20_00_characters_guild_member.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_guild_member.sql
diff --git a/sql/old/3.3.5a/2011_01_20_00_characters_guild_rank.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_guild_rank.sql
index d3adb4278a7..d3adb4278a7 100644
--- a/sql/old/3.3.5a/2011_01_20_00_characters_guild_rank.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_guild_rank.sql
diff --git a/sql/old/3.3.5a/2011_01_20_00_characters_instance.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_instance.sql
index 2b1be5718b5..2b1be5718b5 100644
--- a/sql/old/3.3.5a/2011_01_20_00_characters_instance.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_instance.sql
diff --git a/sql/old/3.3.5a/2011_01_20_00_characters_instance_reset.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_instance_reset.sql
index 6c72951339d..6c72951339d 100644
--- a/sql/old/3.3.5a/2011_01_20_00_characters_instance_reset.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_instance_reset.sql
diff --git a/sql/old/3.3.5a/2011_01_20_00_characters_item_instance.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_item_instance.sql
index 649f87c4616..649f87c4616 100644
--- a/sql/old/3.3.5a/2011_01_20_00_characters_item_instance.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_item_instance.sql
diff --git a/sql/old/3.3.5a/2011_01_20_00_characters_item_refund_instance.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_item_refund_instance.sql
index 0bd992e4bc3..0bd992e4bc3 100644
--- a/sql/old/3.3.5a/2011_01_20_00_characters_item_refund_instance.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_item_refund_instance.sql
diff --git a/sql/old/3.3.5a/2011_01_20_00_characters_item_soulbound_trace_data.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_item_soulbound_trace_data.sql
index ff07610bb8f..ff07610bb8f 100644
--- a/sql/old/3.3.5a/2011_01_20_00_characters_item_soulbound_trace_data.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_item_soulbound_trace_data.sql
diff --git a/sql/old/3.3.5a/2011_01_20_00_characters_lag_reports.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_lag_reports.sql
index ed10b9a473f..ed10b9a473f 100644
--- a/sql/old/3.3.5a/2011_01_20_00_characters_lag_reports.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_lag_reports.sql
diff --git a/sql/old/3.3.5a/2011_01_20_00_characters_mail.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_mail.sql
index 5115e97d585..5115e97d585 100644
--- a/sql/old/3.3.5a/2011_01_20_00_characters_mail.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_mail.sql
diff --git a/sql/old/3.3.5a/2011_01_20_00_characters_mail_items.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_mail_items.sql
index b7618915564..b7618915564 100644
--- a/sql/old/3.3.5a/2011_01_20_00_characters_mail_items.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_mail_items.sql
diff --git a/sql/old/3.3.5a/2011_01_20_00_characters_pet_aura.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_pet_aura.sql
index 7455b626c2c..7455b626c2c 100644
--- a/sql/old/3.3.5a/2011_01_20_00_characters_pet_aura.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_pet_aura.sql
diff --git a/sql/old/3.3.5a/2011_01_20_00_characters_pet_spell.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_pet_spell.sql
index e95c83f5f6f..e95c83f5f6f 100644
--- a/sql/old/3.3.5a/2011_01_20_00_characters_pet_spell.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_pet_spell.sql
diff --git a/sql/old/3.3.5a/2011_01_20_00_characters_pet_spell_cooldown.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_pet_spell_cooldown.sql
index 4d8b5dfd491..4d8b5dfd491 100644
--- a/sql/old/3.3.5a/2011_01_20_00_characters_pet_spell_cooldown.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_pet_spell_cooldown.sql
diff --git a/sql/old/3.3.5a/2011_01_20_00_characters_petition.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_petition.sql
index a149c568429..a149c568429 100644
--- a/sql/old/3.3.5a/2011_01_20_00_characters_petition.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_petition.sql
diff --git a/sql/old/3.3.5a/2011_01_20_00_characters_petition_sign.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_petition_sign.sql
index 2d55505764d..2d55505764d 100644
--- a/sql/old/3.3.5a/2011_01_20_00_characters_petition_sign.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_petition_sign.sql
diff --git a/sql/old/3.3.5a/2011_01_20_00_characters_worldstates.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_worldstates.sql
index f05d04f4a03..f05d04f4a03 100644
--- a/sql/old/3.3.5a/2011_01_20_00_characters_worldstates.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_20_00_characters_worldstates.sql
diff --git a/sql/old/3.3.5a/2011_01_22_01_characters_character_inventory.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_22_01_characters_character_inventory.sql
index 647ea85f8c9..647ea85f8c9 100644
--- a/sql/old/3.3.5a/2011_01_22_01_characters_character_inventory.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_22_01_characters_character_inventory.sql
diff --git a/sql/old/3.3.5a/2011_01_24_00_characters_account_instance_times.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_24_00_characters_account_instance_times.sql
index 72cde260a51..72cde260a51 100644
--- a/sql/old/3.3.5a/2011_01_24_00_characters_account_instance_times.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_01_24_00_characters_account_instance_times.sql
diff --git a/sql/old/3.3.5a/2011_02_03_00_characters_instance.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_02_03_00_characters_instance.sql
index 5072fa69f0a..5072fa69f0a 100644
--- a/sql/old/3.3.5a/2011_02_03_00_characters_instance.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_02_03_00_characters_instance.sql
diff --git a/sql/old/3.3.5a/2011_02_24_00_characters_account_data.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_02_24_00_characters_account_data.sql
index b4a8ed25e8d..b4a8ed25e8d 100644
--- a/sql/old/3.3.5a/2011_02_24_00_characters_account_data.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_02_24_00_characters_account_data.sql
diff --git a/sql/old/3.3.5a/2011_02_24_01_characters_character_tutorial.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_02_24_01_characters_character_tutorial.sql
index b5e3594f5b0..b5e3594f5b0 100644
--- a/sql/old/3.3.5a/2011_02_24_01_characters_character_tutorial.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_02_24_01_characters_character_tutorial.sql
diff --git a/sql/old/3.3.5a/2011_03_11_00_characters_channels.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_03_11_00_characters_channels.sql
index 8c399617998..8c399617998 100644
--- a/sql/old/3.3.5a/2011_03_11_00_characters_channels.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_03_11_00_characters_channels.sql
diff --git a/sql/old/3.3.5a/2011_03_17_00_characters_corpse.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_03_17_00_characters_corpse.sql
index d9464f53f49..d9464f53f49 100644
--- a/sql/old/3.3.5a/2011_03_17_00_characters_corpse.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_03_17_00_characters_corpse.sql
diff --git a/sql/old/3.3.5a/2011_03_18_00_characters_game_event_misc.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_03_18_00_characters_game_event_misc.sql
index cc2772a31ac..cc2772a31ac 100644
--- a/sql/old/3.3.5a/2011_03_18_00_characters_game_event_misc.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_03_18_00_characters_game_event_misc.sql
diff --git a/sql/old/3.3.5a/2011_03_18_01_characters_game_event_misc.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_03_18_01_characters_game_event_misc.sql
index 85dc9cb2d5b..85dc9cb2d5b 100644
--- a/sql/old/3.3.5a/2011_03_18_01_characters_game_event_misc.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/characters/2011_03_18_01_characters_game_event_misc.sql
diff --git a/sql/old/3.3.5a/2011_01_06_00_world_scriptname.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_06_00_world_scriptname.sql
index 3de65d244bb..3de65d244bb 100644
--- a/sql/old/3.3.5a/2011_01_06_00_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_06_00_world_scriptname.sql
diff --git a/sql/old/3.3.5a/2011_01_06_01_world_scriptname.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_06_01_world_scriptname.sql
index 9d5c8a3f19f..9d5c8a3f19f 100644
--- a/sql/old/3.3.5a/2011_01_06_01_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_06_01_world_scriptname.sql
diff --git a/sql/old/3.3.5a/2011_01_06_02_world_scriptname.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_06_02_world_scriptname.sql
index 8fcf3be4d09..8fcf3be4d09 100644
--- a/sql/old/3.3.5a/2011_01_06_02_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_06_02_world_scriptname.sql
diff --git a/sql/old/3.3.5a/2011_01_08_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_08_00_world_spell_script_names.sql
index 8d3e7197b48..8d3e7197b48 100644
--- a/sql/old/3.3.5a/2011_01_08_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_08_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_01_08_01_world_scriptname.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_08_01_world_scriptname.sql
index aade302cbe1..aade302cbe1 100644
--- a/sql/old/3.3.5a/2011_01_08_01_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_08_01_world_scriptname.sql
diff --git a/sql/old/3.3.5a/2011_01_08_02_world_scriptname.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_08_02_world_scriptname.sql
index 08ecb3787a6..08ecb3787a6 100644
--- a/sql/old/3.3.5a/2011_01_08_02_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_08_02_world_scriptname.sql
diff --git a/sql/old/3.3.5a/2011_01_08_03_world_trinity_strings.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_08_03_world_trinity_strings.sql
index 39c66ba9e41..39c66ba9e41 100644
--- a/sql/old/3.3.5a/2011_01_08_03_world_trinity_strings.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_08_03_world_trinity_strings.sql
diff --git a/sql/old/3.3.5a/2011_01_08_04_world_spell_linked_spell.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_08_04_world_spell_linked_spell.sql
index 958d533c14c..958d533c14c 100644
--- a/sql/old/3.3.5a/2011_01_08_04_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_08_04_world_spell_linked_spell.sql
diff --git a/sql/old/3.3.5a/2011_01_09_00_world_scriptname.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_09_00_world_scriptname.sql
index ad34c7281dd..ad34c7281dd 100644
--- a/sql/old/3.3.5a/2011_01_09_00_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_09_00_world_scriptname.sql
diff --git a/sql/old/3.3.5a/2011_01_10_00_world_spell_linked_spell.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_10_00_world_spell_linked_spell.sql
index aea063c7505..aea063c7505 100644
--- a/sql/old/3.3.5a/2011_01_10_00_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_10_00_world_spell_linked_spell.sql
diff --git a/sql/old/3.3.5a/2011_01_16_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_16_00_world_spell_script_names.sql
index 2d0c1f28efd..2d0c1f28efd 100644
--- a/sql/old/3.3.5a/2011_01_16_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_16_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_01_20_00_world_scriptname.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_20_00_world_scriptname.sql
index 14e187a2a63..14e187a2a63 100644
--- a/sql/old/3.3.5a/2011_01_20_00_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_20_00_world_scriptname.sql
diff --git a/sql/old/3.3.5a/2011_01_22_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_22_00_world_spell_script_names.sql
index 12b09319bcb..12b09319bcb 100644
--- a/sql/old/3.3.5a/2011_01_22_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_22_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_01_24_00_world_scriptname.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_24_00_world_scriptname.sql
index 043e95b026d..043e95b026d 100644
--- a/sql/old/3.3.5a/2011_01_24_00_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_24_00_world_scriptname.sql
diff --git a/sql/old/3.3.5a/2011_01_26_00_world_scriptname.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_26_00_world_scriptname.sql
index 810fe263f76..810fe263f76 100644
--- a/sql/old/3.3.5a/2011_01_26_00_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_26_00_world_scriptname.sql
diff --git a/sql/old/3.3.5a/2011_01_26_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_26_00_world_spell_script_names.sql
index 1244adf63c8..1244adf63c8 100644
--- a/sql/old/3.3.5a/2011_01_26_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_26_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_01_28_00_world_spell_linked_spell.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_28_00_world_spell_linked_spell.sql
index 2357ff914d3..2357ff914d3 100644
--- a/sql/old/3.3.5a/2011_01_28_00_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_28_00_world_spell_linked_spell.sql
diff --git a/sql/old/3.3.5a/2011_01_28_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_28_00_world_spell_script_names.sql
index aa0a291f526..aa0a291f526 100644
--- a/sql/old/3.3.5a/2011_01_28_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_28_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_01_28_01_world_spell_script_names.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_28_01_world_spell_script_names.sql
index 15d3c8da21f..15d3c8da21f 100644
--- a/sql/old/3.3.5a/2011_01_28_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_28_01_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_01_29_00_world_spell_linked_spell.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_29_00_world_spell_linked_spell.sql
index d3b08cee952..d3b08cee952 100644
--- a/sql/old/3.3.5a/2011_01_29_00_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_29_00_world_spell_linked_spell.sql
diff --git a/sql/old/3.3.5a/2011_01_30_00_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_30_00_world_spell_proc_event.sql
index ba205cd48ef..ba205cd48ef 100644
--- a/sql/old/3.3.5a/2011_01_30_00_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_30_00_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_01_30_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_30_00_world_spell_script_names.sql
index 56f3a7a2186..56f3a7a2186 100644
--- a/sql/old/3.3.5a/2011_01_30_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_30_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_01_30_01_world_scriptnames.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_30_01_world_scriptnames.sql
index 55532c44f1f..55532c44f1f 100644
--- a/sql/old/3.3.5a/2011_01_30_01_world_scriptnames.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_30_01_world_scriptnames.sql
diff --git a/sql/old/3.3.5a/2011_01_31_00_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_31_00_world_spell_bonus_data.sql
index a908e227a1d..a908e227a1d 100644
--- a/sql/old/3.3.5a/2011_01_31_00_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_31_00_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/2011_01_31_00_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_31_00_world_spell_proc_event.sql
index 10d9309c907..10d9309c907 100644
--- a/sql/old/3.3.5a/2011_01_31_00_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_31_00_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_01_31_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_31_00_world_spell_script_names.sql
index 1055a1b7b38..1055a1b7b38 100644
--- a/sql/old/3.3.5a/2011_01_31_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_31_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_01_31_01_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_31_01_world_spell_proc_event.sql
index b920e1de508..b920e1de508 100644
--- a/sql/old/3.3.5a/2011_01_31_01_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_31_01_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_01_31_01_world_spell_script_names.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_31_01_world_spell_script_names.sql
index 17385cb7383..17385cb7383 100644
--- a/sql/old/3.3.5a/2011_01_31_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_01_31_01_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_02_03_00_world_instance_encounters.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_03_00_world_instance_encounters.sql
index e35e09f1403..e35e09f1403 100644
--- a/sql/old/3.3.5a/2011_02_03_00_world_instance_encounters.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_03_00_world_instance_encounters.sql
diff --git a/sql/old/3.3.5a/2011_02_03_01_world_command.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_03_01_world_command.sql
index 8902097fb06..8902097fb06 100644
--- a/sql/old/3.3.5a/2011_02_03_01_world_command.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_03_01_world_command.sql
diff --git a/sql/old/3.3.5a/2011_02_03_02_world_lfg_dungeon_encounters.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_03_02_world_lfg_dungeon_encounters.sql
index 9820317ccf1..9820317ccf1 100644
--- a/sql/old/3.3.5a/2011_02_03_02_world_lfg_dungeon_encounters.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_03_02_world_lfg_dungeon_encounters.sql
diff --git a/sql/old/3.3.5a/2011_02_03_03_world_spell_dbc.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_03_03_world_spell_dbc.sql
index 0d26399cf42..0d26399cf42 100644
--- a/sql/old/3.3.5a/2011_02_03_03_world_spell_dbc.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_03_03_world_spell_dbc.sql
diff --git a/sql/old/3.3.5a/2011_02_04_00_world_battleground_isle_of_conquest.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_battleground_isle_of_conquest.sql
index d28eec73111..d28eec73111 100644
--- a/sql/old/3.3.5a/2011_02_04_00_world_battleground_isle_of_conquest.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_battleground_isle_of_conquest.sql
diff --git a/sql/old/3.3.5a/2011_02_04_00_world_conditions.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_conditions.sql
index 504835cd8b9..504835cd8b9 100644
--- a/sql/old/3.3.5a/2011_02_04_00_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_conditions.sql
diff --git a/sql/old/3.3.5a/2011_02_04_00_world_creature_631.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_creature_631.sql
index c9db3f6a929..c9db3f6a929 100644
--- a/sql/old/3.3.5a/2011_02_04_00_world_creature_631.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_creature_631.sql
diff --git a/sql/old/3.3.5a/2011_02_04_00_world_creature_questrelation.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_creature_questrelation.sql
index b00304dc6eb..b00304dc6eb 100644
--- a/sql/old/3.3.5a/2011_02_04_00_world_creature_questrelation.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_creature_questrelation.sql
diff --git a/sql/old/3.3.5a/2011_02_04_00_world_creature_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_creature_template.sql
index 6a90ac98761..6a90ac98761 100644
--- a/sql/old/3.3.5a/2011_02_04_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_02_04_00_world_game_event.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_game_event.sql
index 1e84cce9883..1e84cce9883 100644
--- a/sql/old/3.3.5a/2011_02_04_00_world_game_event.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_game_event.sql
diff --git a/sql/old/3.3.5a/2011_02_04_00_world_gameobject_questrelation.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_gameobject_questrelation.sql
index 480d7f63295..480d7f63295 100644
--- a/sql/old/3.3.5a/2011_02_04_00_world_gameobject_questrelation.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_gameobject_questrelation.sql
diff --git a/sql/old/3.3.5a/2011_02_04_00_world_instance_pit_of_saron.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_instance_pit_of_saron.sql
index 8e4584618ee..8e4584618ee 100644
--- a/sql/old/3.3.5a/2011_02_04_00_world_instance_pit_of_saron.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_instance_pit_of_saron.sql
diff --git a/sql/old/3.3.5a/2011_02_04_00_world_item_loot_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_item_loot_template.sql
index aac759b58ed..aac759b58ed 100644
--- a/sql/old/3.3.5a/2011_02_04_00_world_item_loot_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_item_loot_template.sql
diff --git a/sql/old/3.3.5a/2011_02_04_00_world_mail_loot_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_mail_loot_template.sql
index 25747bd3049..25747bd3049 100644
--- a/sql/old/3.3.5a/2011_02_04_00_world_mail_loot_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_mail_loot_template.sql
diff --git a/sql/old/3.3.5a/2011_02_04_00_world_quest_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_quest_template.sql
index bff1b9a6f2a..bff1b9a6f2a 100644
--- a/sql/old/3.3.5a/2011_02_04_00_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2011_02_04_00_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_sai.sql
index 559774e0a04..559774e0a04 100644
--- a/sql/old/3.3.5a/2011_02_04_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_02_04_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_spell_script_names.sql
index 645be0e6083..645be0e6083 100644
--- a/sql/old/3.3.5a/2011_02_04_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_02_04_00_world_spell_target_position.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_spell_target_position.sql
index ba4e4160dfa..ba4e4160dfa 100644
--- a/sql/old/3.3.5a/2011_02_04_00_world_spell_target_position.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_00_world_spell_target_position.sql
diff --git a/sql/old/3.3.5a/2011_02_04_01_world_game_event.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_01_world_game_event.sql
index 0d668a4e429..0d668a4e429 100644
--- a/sql/old/3.3.5a/2011_02_04_01_world_game_event.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_01_world_game_event.sql
diff --git a/sql/old/3.3.5a/2011_02_04_01_world_quest_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_01_world_quest_template.sql
index 3ace7e379dc..3ace7e379dc 100644
--- a/sql/old/3.3.5a/2011_02_04_01_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_01_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2011_02_04_01_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_01_world_sai.sql
index 9e968dcedfa..9e968dcedfa 100644
--- a/sql/old/3.3.5a/2011_02_04_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_02_04_02_world_quest_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_02_world_quest_template.sql
index 0d153bca7d0..0d153bca7d0 100644
--- a/sql/old/3.3.5a/2011_02_04_02_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_02_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2011_02_04_02_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_02_world_sai.sql
index 3bc95ce04e6..3bc95ce04e6 100644
--- a/sql/old/3.3.5a/2011_02_04_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_02_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_02_04_03_world_quest_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_03_world_quest_template.sql
index 015633c1214..015633c1214 100644
--- a/sql/old/3.3.5a/2011_02_04_03_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_03_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2011_02_04_03_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_03_world_sai.sql
index f1ad69dbbff..f1ad69dbbff 100644
--- a/sql/old/3.3.5a/2011_02_04_03_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_03_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_02_04_04_world_quest_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_04_world_quest_template.sql
index 240cb23c3c1..240cb23c3c1 100644
--- a/sql/old/3.3.5a/2011_02_04_04_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_04_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2011_02_04_04_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_04_world_sai.sql
index b6709bb4c52..b6709bb4c52 100644
--- a/sql/old/3.3.5a/2011_02_04_04_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_04_04_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_02_05_00_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_05_00_world_sai.sql
index 3a5291b6e94..3a5291b6e94 100644
--- a/sql/old/3.3.5a/2011_02_05_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_05_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_02_05_01_world_quest_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_05_01_world_quest_template.sql
index 64cdd977cb8..64cdd977cb8 100644
--- a/sql/old/3.3.5a/2011_02_05_01_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_05_01_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2011_02_05_02_world_creature_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_05_02_world_creature_template.sql
index d193a81eb79..d193a81eb79 100644
--- a/sql/old/3.3.5a/2011_02_05_02_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_05_02_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_02_05_03_world_creature_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_05_03_world_creature_template.sql
index b899286a090..b899286a090 100644
--- a/sql/old/3.3.5a/2011_02_05_03_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_05_03_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_02_05_04_world_game_event.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_05_04_world_game_event.sql
index 0ac99d37265..0ac99d37265 100644
--- a/sql/old/3.3.5a/2011_02_05_04_world_game_event.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_05_04_world_game_event.sql
diff --git a/sql/old/3.3.5a/2011_02_05_05_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_05_05_world_sai.sql
index e166c16c71d..e166c16c71d 100644
--- a/sql/old/3.3.5a/2011_02_05_05_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_05_05_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_02_05_06_world_waypoint_data.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_05_06_world_waypoint_data.sql
index 61dbc81d9b4..61dbc81d9b4 100644
--- a/sql/old/3.3.5a/2011_02_05_06_world_waypoint_data.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_05_06_world_waypoint_data.sql
diff --git a/sql/old/3.3.5a/2011_02_05_07_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_05_07_world_sai.sql
index 79c6ea941bd..79c6ea941bd 100644
--- a/sql/old/3.3.5a/2011_02_05_07_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_05_07_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_02_05_08_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_05_08_world_sai.sql
index 7ea0426e9c1..7ea0426e9c1 100644
--- a/sql/old/3.3.5a/2011_02_05_08_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_05_08_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_02_06_00_world_instance_sindragosa_lair.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_06_00_world_instance_sindragosa_lair.sql
index a52ed4f9859..a52ed4f9859 100644
--- a/sql/old/3.3.5a/2011_02_06_00_world_instance_sindragosa_lair.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_06_00_world_instance_sindragosa_lair.sql
diff --git a/sql/old/3.3.5a/2011_02_06_01_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_06_01_world_creature_loot_template.sql
index 295bb76a261..295bb76a261 100644
--- a/sql/old/3.3.5a/2011_02_06_01_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_06_01_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2011_02_06_02_world_item_loot_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_06_02_world_item_loot_template.sql
index e77a40def02..e77a40def02 100644
--- a/sql/old/3.3.5a/2011_02_06_02_world_item_loot_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_06_02_world_item_loot_template.sql
diff --git a/sql/old/3.3.5a/2011_02_07_00_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_07_00_world_achievement_criteria_data.sql
index c73e90d161d..c73e90d161d 100644
--- a/sql/old/3.3.5a/2011_02_07_00_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_07_00_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_02_07_00_world_areatrigger_scripts.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_07_00_world_areatrigger_scripts.sql
index 6fba267fe1b..6fba267fe1b 100644
--- a/sql/old/3.3.5a/2011_02_07_00_world_areatrigger_scripts.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_07_00_world_areatrigger_scripts.sql
diff --git a/sql/old/3.3.5a/2011_02_07_00_world_creature_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_07_00_world_creature_template.sql
index 216adb1c52a..216adb1c52a 100644
--- a/sql/old/3.3.5a/2011_02_07_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_07_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_02_07_00_world_creature_text.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_07_00_world_creature_text.sql
index e4d570bb7fa..e4d570bb7fa 100644
--- a/sql/old/3.3.5a/2011_02_07_00_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_07_00_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2011_02_07_00_world_scriptname.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_07_00_world_scriptname.sql
index d6b290c48ab..d6b290c48ab 100644
--- a/sql/old/3.3.5a/2011_02_07_00_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_07_00_world_scriptname.sql
diff --git a/sql/old/3.3.5a/2011_02_07_00_world_spell_linked_spell.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_07_00_world_spell_linked_spell.sql
index 0839e256fb3..0839e256fb3 100644
--- a/sql/old/3.3.5a/2011_02_07_00_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_07_00_world_spell_linked_spell.sql
diff --git a/sql/old/3.3.5a/2011_02_07_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_07_00_world_spell_script_names.sql
index 7fc30c64a07..7fc30c64a07 100644
--- a/sql/old/3.3.5a/2011_02_07_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_07_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_02_07_01_world_creature_questrelation.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_07_01_world_creature_questrelation.sql
index 940d175a7dd..940d175a7dd 100644
--- a/sql/old/3.3.5a/2011_02_07_01_world_creature_questrelation.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_07_01_world_creature_questrelation.sql
diff --git a/sql/old/3.3.5a/2011_02_07_02_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_07_02_world_sai.sql
index f36ad4e4156..f36ad4e4156 100644
--- a/sql/old/3.3.5a/2011_02_07_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_07_02_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_02_080_0_world_instance_saurfang_traps.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_080_0_world_instance_saurfang_traps.sql
index 2f3450e61d4..2f3450e61d4 100644
--- a/sql/old/3.3.5a/2011_02_080_0_world_instance_saurfang_traps.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_080_0_world_instance_saurfang_traps.sql
diff --git a/sql/old/3.3.5a/2011_02_08_00_world_areatrigger_scripts.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_08_00_world_areatrigger_scripts.sql
index c7a29e0428d..c7a29e0428d 100644
--- a/sql/old/3.3.5a/2011_02_08_00_world_areatrigger_scripts.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_08_00_world_areatrigger_scripts.sql
diff --git a/sql/old/3.3.5a/2011_02_08_00_world_scriptname.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_08_00_world_scriptname.sql
index 79dff902f24..79dff902f24 100644
--- a/sql/old/3.3.5a/2011_02_08_00_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_08_00_world_scriptname.sql
diff --git a/sql/old/3.3.5a/2011_02_08_01_world_creature_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_08_01_world_creature_template.sql
index 3663532ac0c..3663532ac0c 100644
--- a/sql/old/3.3.5a/2011_02_08_01_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_08_01_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_02_08_02_world_waypoint_scripts.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_08_02_world_waypoint_scripts.sql
index 485380af928..485380af928 100644
--- a/sql/old/3.3.5a/2011_02_08_02_world_waypoint_scripts.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_08_02_world_waypoint_scripts.sql
diff --git a/sql/old/3.3.5a/2011_02_10_00_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_10_00_world_sai.sql
index a83124d7631..a83124d7631 100644
--- a/sql/old/3.3.5a/2011_02_10_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_10_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_02_10_01_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_10_01_world_sai.sql
index b8149880d08..b8149880d08 100644
--- a/sql/old/3.3.5a/2011_02_10_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_10_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_02_10_02_world_instance_oculus.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_10_02_world_instance_oculus.sql
index e3ebb34c839..e3ebb34c839 100644
--- a/sql/old/3.3.5a/2011_02_10_02_world_instance_oculus.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_10_02_world_instance_oculus.sql
diff --git a/sql/old/3.3.5a/2011_02_10_03_world_creature_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_10_03_world_creature_template.sql
index 1bcf6d69dc3..1bcf6d69dc3 100644
--- a/sql/old/3.3.5a/2011_02_10_03_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_10_03_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_02_10_04_world_scriptname.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_10_04_world_scriptname.sql
index 9745c5a3b0a..9745c5a3b0a 100644
--- a/sql/old/3.3.5a/2011_02_10_04_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_10_04_world_scriptname.sql
diff --git a/sql/old/3.3.5a/2011_02_11_00_world_coredevdata.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_11_00_world_coredevdata.sql
index a5f562fe517..a5f562fe517 100644
--- a/sql/old/3.3.5a/2011_02_11_00_world_coredevdata.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_11_00_world_coredevdata.sql
diff --git a/sql/old/3.3.5a/2011_02_11_01_world_command.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_11_01_world_command.sql
index 407699d6d7d..407699d6d7d 100644
--- a/sql/old/3.3.5a/2011_02_11_01_world_command.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_11_01_world_command.sql
diff --git a/sql/old/3.3.5a/2011_02_11_01_world_coredevdata.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_11_01_world_coredevdata.sql
index 29c25302199..29c25302199 100644
--- a/sql/old/3.3.5a/2011_02_11_01_world_coredevdata.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_11_01_world_coredevdata.sql
diff --git a/sql/old/3.3.5a/2011_02_11_02_world_npc_gossip.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_11_02_world_npc_gossip.sql
index 18739ed1be6..18739ed1be6 100644
--- a/sql/old/3.3.5a/2011_02_11_02_world_npc_gossip.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_11_02_world_npc_gossip.sql
diff --git a/sql/old/3.3.5a/2011_02_11_03_world_creature_involvedrelation.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_11_03_world_creature_involvedrelation.sql
index c98af05803d..c98af05803d 100644
--- a/sql/old/3.3.5a/2011_02_11_03_world_creature_involvedrelation.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_11_03_world_creature_involvedrelation.sql
diff --git a/sql/old/3.3.5a/2011_02_11_04_world_game_event_npc_gossip.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_11_04_world_game_event_npc_gossip.sql
index 83f7613d6c9..83f7613d6c9 100644
--- a/sql/old/3.3.5a/2011_02_11_04_world_game_event_npc_gossip.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_11_04_world_game_event_npc_gossip.sql
diff --git a/sql/old/3.3.5a/2011_02_12_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_12_00_world_spell_script_names.sql
index 39098e1c3de..39098e1c3de 100644
--- a/sql/old/3.3.5a/2011_02_12_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_12_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_02_15_00_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_15_00_world_sai.sql
index d12b6ef44ae..d12b6ef44ae 100644
--- a/sql/old/3.3.5a/2011_02_15_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_15_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_02_15_01_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_15_01_world_sai.sql
index 6484e494c65..6484e494c65 100644
--- a/sql/old/3.3.5a/2011_02_15_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_15_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_02_15_02_world_game_event_liita.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_15_02_world_game_event_liita.sql
index 9f8328351e6..9f8328351e6 100644
--- a/sql/old/3.3.5a/2011_02_15_02_world_game_event_liita.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_15_02_world_game_event_liita.sql
diff --git a/sql/old/3.3.5a/2011_02_15_03_world_creature_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_15_03_world_creature_template.sql
index cc892b30bf9..cc892b30bf9 100644
--- a/sql/old/3.3.5a/2011_02_15_03_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_15_03_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_02_15_03_world_creature_text.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_15_03_world_creature_text.sql
index 6642afba9b7..6642afba9b7 100644
--- a/sql/old/3.3.5a/2011_02_15_03_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_15_03_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2011_02_15_03_world_scriptname.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_15_03_world_scriptname.sql
index ec7c4f3d483..ec7c4f3d483 100644
--- a/sql/old/3.3.5a/2011_02_15_03_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_15_03_world_scriptname.sql
diff --git a/sql/old/3.3.5a/2011_02_15_03_world_spell_script_names.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_15_03_world_spell_script_names.sql
index 85c9a11fd50..85c9a11fd50 100644
--- a/sql/old/3.3.5a/2011_02_15_03_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_15_03_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_02_15_04_world_spell_linked_spell.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_15_04_world_spell_linked_spell.sql
index 41cfff3fab9..41cfff3fab9 100644
--- a/sql/old/3.3.5a/2011_02_15_04_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_15_04_world_spell_linked_spell.sql
diff --git a/sql/old/3.3.5a/2011_02_15_04_world_spell_script_names.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_15_04_world_spell_script_names.sql
index c066aad3b8b..c066aad3b8b 100644
--- a/sql/old/3.3.5a/2011_02_15_04_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_15_04_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_02_16_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_16_00_world_spell_script_names.sql
index e41542c3316..e41542c3316 100644
--- a/sql/old/3.3.5a/2011_02_16_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_16_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_02_16_01_world_conditions.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_16_01_world_conditions.sql
index e42fd4006e4..e42fd4006e4 100644
--- a/sql/old/3.3.5a/2011_02_16_01_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_16_01_world_conditions.sql
diff --git a/sql/old/3.3.5a/2011_02_18_00_world_creature.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_18_00_world_creature.sql
index 4f07781a267..4f07781a267 100644
--- a/sql/old/3.3.5a/2011_02_18_00_world_creature.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_18_00_world_creature.sql
diff --git a/sql/old/3.3.5a/2011_02_18_00_world_creature_text.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_18_00_world_creature_text.sql
index 39d46f15fef..39d46f15fef 100644
--- a/sql/old/3.3.5a/2011_02_18_00_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_18_00_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2011_02_18_00_world_pool_quest.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_18_00_world_pool_quest.sql
index 6c386e8b77b..6c386e8b77b 100644
--- a/sql/old/3.3.5a/2011_02_18_00_world_pool_quest.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_18_00_world_pool_quest.sql
diff --git a/sql/old/3.3.5a/2011_02_18_00_world_scriptname.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_18_00_world_scriptname.sql
index 3588fe7ae3b..3588fe7ae3b 100644
--- a/sql/old/3.3.5a/2011_02_18_00_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_18_00_world_scriptname.sql
diff --git a/sql/old/3.3.5a/2011_02_18_00_world_spell_linked_spell.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_18_00_world_spell_linked_spell.sql
index 66ceb1b593c..66ceb1b593c 100644
--- a/sql/old/3.3.5a/2011_02_18_00_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_18_00_world_spell_linked_spell.sql
diff --git a/sql/old/3.3.5a/2011_02_18_01_world_spell_linked_spell.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_18_01_world_spell_linked_spell.sql
index 5f5fbadfd21..5f5fbadfd21 100644
--- a/sql/old/3.3.5a/2011_02_18_01_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_18_01_world_spell_linked_spell.sql
diff --git a/sql/old/3.3.5a/2011_02_18_02_world_misc.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_18_02_world_misc.sql
index 8e2bc235861..8e2bc235861 100644
--- a/sql/old/3.3.5a/2011_02_18_02_world_misc.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_18_02_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_02_18_03_world_loot_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_18_03_world_loot_template.sql
index 4e9523fa758..4e9523fa758 100644
--- a/sql/old/3.3.5a/2011_02_18_03_world_loot_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_18_03_world_loot_template.sql
diff --git a/sql/old/3.3.5a/2011_02_18_04_world_eai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_18_04_world_eai.sql
index 3dd091465ed..3dd091465ed 100644
--- a/sql/old/3.3.5a/2011_02_18_04_world_eai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_18_04_world_eai.sql
diff --git a/sql/old/3.3.5a/2011_02_18_05_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_18_05_world_sai.sql
index 1447c18e35a..1447c18e35a 100644
--- a/sql/old/3.3.5a/2011_02_18_05_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_18_05_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_02_19_00_world_conditions.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_19_00_world_conditions.sql
index 23ca7bb5766..23ca7bb5766 100644
--- a/sql/old/3.3.5a/2011_02_19_00_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_19_00_world_conditions.sql
diff --git a/sql/old/3.3.5a/2011_02_19_00_world_creature_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_19_00_world_creature_template.sql
index edfa570115a..edfa570115a 100644
--- a/sql/old/3.3.5a/2011_02_19_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_19_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_02_19_00_world_scriptname.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_19_00_world_scriptname.sql
index 4901cb763ae..4901cb763ae 100644
--- a/sql/old/3.3.5a/2011_02_19_00_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_19_00_world_scriptname.sql
diff --git a/sql/old/3.3.5a/2011_02_19_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_19_00_world_spell_script_names.sql
index 709344ae76d..709344ae76d 100644
--- a/sql/old/3.3.5a/2011_02_19_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_19_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_02_19_01_world_instance_icecrown_citadel.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_19_01_world_instance_icecrown_citadel.sql
index bbdf4f4010c..bbdf4f4010c 100644
--- a/sql/old/3.3.5a/2011_02_19_01_world_instance_icecrown_citadel.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_19_01_world_instance_icecrown_citadel.sql
diff --git a/sql/old/3.3.5a/2011_02_20_00_world_smart_scripts.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_20_00_world_smart_scripts.sql
index 48388632202..48388632202 100644
--- a/sql/old/3.3.5a/2011_02_20_00_world_smart_scripts.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_20_00_world_smart_scripts.sql
diff --git a/sql/old/3.3.5a/2011_02_20_01_world_smart_scripts.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_20_01_world_smart_scripts.sql
index 236c66cdb1e..236c66cdb1e 100644
--- a/sql/old/3.3.5a/2011_02_20_01_world_smart_scripts.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_20_01_world_smart_scripts.sql
diff --git a/sql/old/3.3.5a/2011_02_20_02_world_instance_icecrown_citadel.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_20_02_world_instance_icecrown_citadel.sql
index b41ab10d6f5..b41ab10d6f5 100644
--- a/sql/old/3.3.5a/2011_02_20_02_world_instance_icecrown_citadel.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_20_02_world_instance_icecrown_citadel.sql
diff --git a/sql/old/3.3.5a/2011_02_22_00_world_scriptname.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_22_00_world_scriptname.sql
index 0199d796ece..0199d796ece 100644
--- a/sql/old/3.3.5a/2011_02_22_00_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_22_00_world_scriptname.sql
diff --git a/sql/old/3.3.5a/2011_02_22_01_world_spell_script_names.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_22_01_world_spell_script_names.sql
index 99bef8f59da..99bef8f59da 100644
--- a/sql/old/3.3.5a/2011_02_22_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_22_01_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_02_22_02_world_conditions.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_22_02_world_conditions.sql
index 93328d671cc..93328d671cc 100644
--- a/sql/old/3.3.5a/2011_02_22_02_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_22_02_world_conditions.sql
diff --git a/sql/old/3.3.5a/2011_02_22_03_world_creature_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_22_03_world_creature_template.sql
index 0febb076241..0febb076241 100644
--- a/sql/old/3.3.5a/2011_02_22_03_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_22_03_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_02_22_04_world_vehicle_accessory.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_22_04_world_vehicle_accessory.sql
index 3d23f85c76a..3d23f85c76a 100644
--- a/sql/old/3.3.5a/2011_02_22_04_world_vehicle_accessory.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_22_04_world_vehicle_accessory.sql
diff --git a/sql/old/3.3.5a/2011_02_23_01_world_creature_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_23_01_world_creature_template.sql
index 95e366cc962..95e366cc962 100644
--- a/sql/old/3.3.5a/2011_02_23_01_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_23_01_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_02_23_02_world_conditions.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_23_02_world_conditions.sql
index 1819855eced..1819855eced 100644
--- a/sql/old/3.3.5a/2011_02_23_02_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_23_02_world_conditions.sql
diff --git a/sql/old/3.3.5a/2011_02_23_03_world_vehicle_accessory.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_23_03_world_vehicle_accessory.sql
index 5d56e0c4fab..5d56e0c4fab 100644
--- a/sql/old/3.3.5a/2011_02_23_03_world_vehicle_accessory.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_23_03_world_vehicle_accessory.sql
diff --git a/sql/old/3.3.5a/2011_02_23_04_world_spell_script_names.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_23_04_world_spell_script_names.sql
index 2812c89024d..2812c89024d 100644
--- a/sql/old/3.3.5a/2011_02_23_04_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_23_04_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_02_23_05_world_creature_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_23_05_world_creature_template.sql
index 8066d1da438..8066d1da438 100644
--- a/sql/old/3.3.5a/2011_02_23_05_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_23_05_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_02_23_06_world_creatures.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_23_06_world_creatures.sql
index 8ef6df59802..8ef6df59802 100644
--- a/sql/old/3.3.5a/2011_02_23_06_world_creatures.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_23_06_world_creatures.sql
diff --git a/sql/old/3.3.5a/2011_02_23_07_world_misc.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_23_07_world_misc.sql
index a2ca5207b33..a2ca5207b33 100644
--- a/sql/old/3.3.5a/2011_02_23_07_world_misc.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_23_07_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_02_23_07_world_scriptname.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_23_07_world_scriptname.sql
index 87b90aaf5dd..87b90aaf5dd 100644
--- a/sql/old/3.3.5a/2011_02_23_07_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_23_07_world_scriptname.sql
diff --git a/sql/old/3.3.5a/2011_02_23_08_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_23_08_world_sai.sql
index 3633d2b334c..3633d2b334c 100644
--- a/sql/old/3.3.5a/2011_02_23_08_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_23_08_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_02_23_09_world_spell_linked_spell.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_23_09_world_spell_linked_spell.sql
index 8a636b3b589..8a636b3b589 100644
--- a/sql/old/3.3.5a/2011_02_23_09_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_23_09_world_spell_linked_spell.sql
diff --git a/sql/old/3.3.5a/2011_02_25_00_world_creatures.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_25_00_world_creatures.sql
index d2e49048865..d2e49048865 100644
--- a/sql/old/3.3.5a/2011_02_25_00_world_creatures.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_25_00_world_creatures.sql
diff --git a/sql/old/3.3.5a/2011_02_25_01_world_spell_script_names.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_25_01_world_spell_script_names.sql
index ae57aad0e93..ae57aad0e93 100644
--- a/sql/old/3.3.5a/2011_02_25_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_25_01_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_02_25_02_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_25_02_world_spell_proc_event.sql
index aad58f50e30..aad58f50e30 100644
--- a/sql/old/3.3.5a/2011_02_25_02_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_25_02_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_02_26_00_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_26_00_world_sai.sql
index 5aa62b4d2c6..5aa62b4d2c6 100644
--- a/sql/old/3.3.5a/2011_02_26_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_26_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_02_26_01_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_26_01_world_sai.sql
index 5e8519f68d9..5e8519f68d9 100644
--- a/sql/old/3.3.5a/2011_02_26_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_26_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_02_26_02_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_26_02_world_sai.sql
index 89ac05757c4..89ac05757c4 100644
--- a/sql/old/3.3.5a/2011_02_26_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_26_02_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_02_26_03_world_creatures.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_26_03_world_creatures.sql
index b8dc70fea7d..b8dc70fea7d 100644
--- a/sql/old/3.3.5a/2011_02_26_03_world_creatures.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_26_03_world_creatures.sql
diff --git a/sql/old/3.3.5a/2011_02_26_04_world_spell_linked_spell.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_26_04_world_spell_linked_spell.sql
index fe15af01a64..fe15af01a64 100644
--- a/sql/old/3.3.5a/2011_02_26_04_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_26_04_world_spell_linked_spell.sql
diff --git a/sql/old/3.3.5a/2011_02_26_05_world_npc_spellclick_spells.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_26_05_world_npc_spellclick_spells.sql
index 76fb0749cdb..76fb0749cdb 100644
--- a/sql/old/3.3.5a/2011_02_26_05_world_npc_spellclick_spells.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_26_05_world_npc_spellclick_spells.sql
diff --git a/sql/old/3.3.5a/2011_02_27_00_world_creature_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_27_00_world_creature_template.sql
index 76871b9d534..76871b9d534 100644
--- a/sql/old/3.3.5a/2011_02_27_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_27_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_02_27_01_world_creature_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_27_01_world_creature_template.sql
index e1669e5940a..e1669e5940a 100644
--- a/sql/old/3.3.5a/2011_02_27_01_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_27_01_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_02_27_02_world_npc_spellclick_spells.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_27_02_world_npc_spellclick_spells.sql
index dd08b5c1821..dd08b5c1821 100644
--- a/sql/old/3.3.5a/2011_02_27_02_world_npc_spellclick_spells.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_27_02_world_npc_spellclick_spells.sql
diff --git a/sql/old/3.3.5a/2011_02_27_03_world_npc_spellclick_spells.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_27_03_world_npc_spellclick_spells.sql
index e4f2c51ea01..e4f2c51ea01 100644
--- a/sql/old/3.3.5a/2011_02_27_03_world_npc_spellclick_spells.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_27_03_world_npc_spellclick_spells.sql
diff --git a/sql/old/3.3.5a/2011_02_27_04_world_creature_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_27_04_world_creature_template.sql
index 61f568a156e..61f568a156e 100644
--- a/sql/old/3.3.5a/2011_02_27_04_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_27_04_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_02_28_00_world_npc_spellclick_spells.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_28_00_world_npc_spellclick_spells.sql
index 753ebf6cd5d..753ebf6cd5d 100644
--- a/sql/old/3.3.5a/2011_02_28_00_world_npc_spellclick_spells.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_28_00_world_npc_spellclick_spells.sql
diff --git a/sql/old/3.3.5a/2011_02_28_01_world_quest_start_scripts.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_28_01_world_quest_start_scripts.sql
index 760312edd6f..760312edd6f 100644
--- a/sql/old/3.3.5a/2011_02_28_01_world_quest_start_scripts.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_28_01_world_quest_start_scripts.sql
diff --git a/sql/old/3.3.5a/2011_02_28_02_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_28_02_world_sai.sql
index 7da507367d0..7da507367d0 100644
--- a/sql/old/3.3.5a/2011_02_28_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_28_02_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_02_28_03_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_28_03_world_sai.sql
index 5ecf98abfda..5ecf98abfda 100644
--- a/sql/old/3.3.5a/2011_02_28_03_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_28_03_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_02_28_04_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_28_04_world_sai.sql
index 489ab0a3c59..489ab0a3c59 100644
--- a/sql/old/3.3.5a/2011_02_28_04_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_28_04_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_02_28_05_world_vehicles.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_28_05_world_vehicles.sql
index 81305c06c1a..81305c06c1a 100644
--- a/sql/old/3.3.5a/2011_02_28_05_world_vehicles.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_28_05_world_vehicles.sql
diff --git a/sql/old/3.3.5a/2011_02_28_06_world_gameobject.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_28_06_world_gameobject.sql
index 37fddc83ce6..37fddc83ce6 100644
--- a/sql/old/3.3.5a/2011_02_28_06_world_gameobject.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_28_06_world_gameobject.sql
diff --git a/sql/old/3.3.5a/2011_02_28_07_world_creature_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_28_07_world_creature_template.sql
index 03d89220052..03d89220052 100644
--- a/sql/old/3.3.5a/2011_02_28_07_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_02_28_07_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_03_01_01_world_conditions.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_01_01_world_conditions.sql
index c1137400040..c1137400040 100644
--- a/sql/old/3.3.5a/2011_03_01_01_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_01_01_world_conditions.sql
diff --git a/sql/old/3.3.5a/2011_03_01_02_world_creature_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_01_02_world_creature_template.sql
index b799e54617e..b799e54617e 100644
--- a/sql/old/3.3.5a/2011_03_01_02_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_01_02_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_03_01_03_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_01_03_world_sai.sql
index 37a4afdf06c..37a4afdf06c 100644
--- a/sql/old/3.3.5a/2011_03_01_03_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_01_03_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_03_01_03_world_scriptname.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_01_03_world_scriptname.sql
index 3bd54857744..3bd54857744 100644
--- a/sql/old/3.3.5a/2011_03_01_03_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_01_03_world_scriptname.sql
diff --git a/sql/old/3.3.5a/2011_03_01_04_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_01_04_world_sai.sql
index 05772307157..05772307157 100644
--- a/sql/old/3.3.5a/2011_03_01_04_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_01_04_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_03_01_05_world_npc_trainer.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_01_05_world_npc_trainer.sql
index ae9a533b620..ae9a533b620 100644
--- a/sql/old/3.3.5a/2011_03_01_05_world_npc_trainer.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_01_05_world_npc_trainer.sql
diff --git a/sql/old/3.3.5a/2011_03_02_00_world_creature_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_02_00_world_creature_template.sql
index b7ae2e1da4e..b7ae2e1da4e 100644
--- a/sql/old/3.3.5a/2011_03_02_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_02_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_03_02_01_world_achievement_reward.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_02_01_world_achievement_reward.sql
index 2afcce64f7b..2afcce64f7b 100644
--- a/sql/old/3.3.5a/2011_03_02_01_world_achievement_reward.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_02_01_world_achievement_reward.sql
diff --git a/sql/old/3.3.5a/2011_03_02_02_world_waypoint_data.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_02_02_world_waypoint_data.sql
index baccd34f0ee..baccd34f0ee 100644
--- a/sql/old/3.3.5a/2011_03_02_02_world_waypoint_data.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_02_02_world_waypoint_data.sql
diff --git a/sql/old/3.3.5a/2011_03_02_03_world_gossip_menu.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_02_03_world_gossip_menu.sql
index 6669edd4929..6669edd4929 100644
--- a/sql/old/3.3.5a/2011_03_02_03_world_gossip_menu.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_02_03_world_gossip_menu.sql
diff --git a/sql/old/3.3.5a/2011_03_02_04_world_waypoint_data.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_02_04_world_waypoint_data.sql
index e2413c0f6ff..e2413c0f6ff 100644
--- a/sql/old/3.3.5a/2011_03_02_04_world_waypoint_data.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_02_04_world_waypoint_data.sql
diff --git a/sql/old/3.3.5a/2011_03_02_05_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_02_05_world_sai.sql
index d318dc466a3..d318dc466a3 100644
--- a/sql/old/3.3.5a/2011_03_02_05_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_02_05_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_03_02_06_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_02_06_world_sai.sql
index c66f8b1f608..c66f8b1f608 100644
--- a/sql/old/3.3.5a/2011_03_02_06_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_02_06_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_03_04_00_world_skill_discovery_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_04_00_world_skill_discovery_template.sql
index f1840b0db8f..f1840b0db8f 100644
--- a/sql/old/3.3.5a/2011_03_04_00_world_skill_discovery_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_04_00_world_skill_discovery_template.sql
diff --git a/sql/old/3.3.5a/2011_03_04_01_world_npc_spellclick_spells.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_04_01_world_npc_spellclick_spells.sql
index f4a5825225c..f4a5825225c 100644
--- a/sql/old/3.3.5a/2011_03_04_01_world_npc_spellclick_spells.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_04_01_world_npc_spellclick_spells.sql
diff --git a/sql/old/3.3.5a/2011_03_04_01_world_vehicle_accessory.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_04_01_world_vehicle_accessory.sql
index 53cb37d43f1..53cb37d43f1 100644
--- a/sql/old/3.3.5a/2011_03_04_01_world_vehicle_accessory.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_04_01_world_vehicle_accessory.sql
diff --git a/sql/old/3.3.5a/2011_03_04_02_world_spell_script_names.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_04_02_world_spell_script_names.sql
index db399ebd042..db399ebd042 100644
--- a/sql/old/3.3.5a/2011_03_04_02_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_04_02_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_03_04_03_world_gameobject.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_04_03_world_gameobject.sql
index 68cef6a1b53..68cef6a1b53 100644
--- a/sql/old/3.3.5a/2011_03_04_03_world_gameobject.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_04_03_world_gameobject.sql
diff --git a/sql/old/3.3.5a/2011_03_04_04_world_scriptname.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_04_04_world_scriptname.sql
index 01ee9d252c6..01ee9d252c6 100644
--- a/sql/old/3.3.5a/2011_03_04_04_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_04_04_world_scriptname.sql
diff --git a/sql/old/3.3.5a/2011_03_04_04_world_spell_script_names.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_04_04_world_spell_script_names.sql
index 140d4eb8e1d..140d4eb8e1d 100644
--- a/sql/old/3.3.5a/2011_03_04_04_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_04_04_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_03_05_00_world_waypoint_data.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_05_00_world_waypoint_data.sql
index f340c55304e..f340c55304e 100644
--- a/sql/old/3.3.5a/2011_03_05_00_world_waypoint_data.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_05_00_world_waypoint_data.sql
diff --git a/sql/old/3.3.5a/2011_03_05_01_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_05_01_world_spell_proc_event.sql
index 22412fcb8ec..22412fcb8ec 100644
--- a/sql/old/3.3.5a/2011_03_05_01_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_05_01_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_03_05_02_world_creatures.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_05_02_world_creatures.sql
index 4c593672dc7..4c593672dc7 100644
--- a/sql/old/3.3.5a/2011_03_05_02_world_creatures.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_05_02_world_creatures.sql
diff --git a/sql/old/3.3.5a/2011_03_05_03_world_spell_area.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_05_03_world_spell_area.sql
index b7efd814e3e..b7efd814e3e 100644
--- a/sql/old/3.3.5a/2011_03_05_03_world_spell_area.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_05_03_world_spell_area.sql
diff --git a/sql/old/3.3.5a/2011_03_05_04_world_creatures.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_05_04_world_creatures.sql
index 4a13823bf2e..4a13823bf2e 100644
--- a/sql/old/3.3.5a/2011_03_05_04_world_creatures.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_05_04_world_creatures.sql
diff --git a/sql/old/3.3.5a/2011_03_05_05_world_creatures.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_05_05_world_creatures.sql
index 6eb520e6f0a..6eb520e6f0a 100644
--- a/sql/old/3.3.5a/2011_03_05_05_world_creatures.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_05_05_world_creatures.sql
diff --git a/sql/old/3.3.5a/2011_03_06_00_world_creatures.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_06_00_world_creatures.sql
index 2e5c8ba2aa6..2e5c8ba2aa6 100644
--- a/sql/old/3.3.5a/2011_03_06_00_world_creatures.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_06_00_world_creatures.sql
diff --git a/sql/old/3.3.5a/2011_03_06_01_world_loot_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_06_01_world_loot_template.sql
index deeb34c1744..deeb34c1744 100644
--- a/sql/old/3.3.5a/2011_03_06_01_world_loot_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_06_01_world_loot_template.sql
diff --git a/sql/old/3.3.5a/2011_03_06_02_world_creatures.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_06_02_world_creatures.sql
index 5058a3d0921..5058a3d0921 100644
--- a/sql/old/3.3.5a/2011_03_06_02_world_creatures.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_06_02_world_creatures.sql
diff --git a/sql/old/3.3.5a/2011_03_06_03_world_creatures.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_06_03_world_creatures.sql
index 4b4ac5d53fd..4b4ac5d53fd 100644
--- a/sql/old/3.3.5a/2011_03_06_03_world_creatures.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_06_03_world_creatures.sql
diff --git a/sql/old/3.3.5a/2011_03_06_04_world_creatures.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_06_04_world_creatures.sql
index 4144ae712f3..4144ae712f3 100644
--- a/sql/old/3.3.5a/2011_03_06_04_world_creatures.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_06_04_world_creatures.sql
diff --git a/sql/old/3.3.5a/2011_03_06_05_world_vehicle_accessory.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_06_05_world_vehicle_accessory.sql
index d9ef666aa06..d9ef666aa06 100644
--- a/sql/old/3.3.5a/2011_03_06_05_world_vehicle_accessory.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_06_05_world_vehicle_accessory.sql
diff --git a/sql/old/3.3.5a/2011_03_07_00_world_misc.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_07_00_world_misc.sql
index 6e7b679a277..6e7b679a277 100644
--- a/sql/old/3.3.5a/2011_03_07_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_07_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_03_07_01_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_07_01_world_spell_proc_event.sql
index 7b49e63d4e8..7b49e63d4e8 100644
--- a/sql/old/3.3.5a/2011_03_07_01_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_07_01_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_03_07_02_world_achievement.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_07_02_world_achievement.sql
index 3c3f1eb0f2b..3c3f1eb0f2b 100644
--- a/sql/old/3.3.5a/2011_03_07_02_world_achievement.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_07_02_world_achievement.sql
diff --git a/sql/old/3.3.5a/2011_03_07_03_world_creature_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_07_03_world_creature_template.sql
index ecdb7fbb614..ecdb7fbb614 100644
--- a/sql/old/3.3.5a/2011_03_07_03_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_07_03_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_03_07_04_world_command.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_07_04_world_command.sql
index 4e4ed529107..4e4ed529107 100644
--- a/sql/old/3.3.5a/2011_03_07_04_world_command.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_07_04_world_command.sql
diff --git a/sql/old/3.3.5a/2011_03_07_05_world_creatures.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_07_05_world_creatures.sql
index 4497f45e1fc..4497f45e1fc 100644
--- a/sql/old/3.3.5a/2011_03_07_05_world_creatures.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_07_05_world_creatures.sql
diff --git a/sql/old/3.3.5a/2011_03_07_06_world_spell_script_names.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_07_06_world_spell_script_names.sql
index fa9ffbbfc9a..fa9ffbbfc9a 100644
--- a/sql/old/3.3.5a/2011_03_07_06_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_07_06_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_03_08_00_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_08_00_world_sai.sql
index 679822be74e..679822be74e 100644
--- a/sql/old/3.3.5a/2011_03_08_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_08_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_03_09_00_world_creature_addon.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_09_00_world_creature_addon.sql
index e3ca476d684..e3ca476d684 100644
--- a/sql/old/3.3.5a/2011_03_09_00_world_creature_addon.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_09_00_world_creature_addon.sql
diff --git a/sql/old/3.3.5a/2011_03_09_01_world_misc.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_09_01_world_misc.sql
index 5570aa97a32..5570aa97a32 100644
--- a/sql/old/3.3.5a/2011_03_09_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_09_01_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_03_09_02_world_page_text.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_09_02_world_page_text.sql
index 00c9e0dab1c..00c9e0dab1c 100644
--- a/sql/old/3.3.5a/2011_03_09_02_world_page_text.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_09_02_world_page_text.sql
diff --git a/sql/old/3.3.5a/2011_03_09_03_world_misc.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_09_03_world_misc.sql
index 0ce9593d779..0ce9593d779 100644
--- a/sql/old/3.3.5a/2011_03_09_03_world_misc.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_09_03_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_03_10_00_world_creatures.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_10_00_world_creatures.sql
index d68a13999bf..d68a13999bf 100644
--- a/sql/old/3.3.5a/2011_03_10_00_world_creatures.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_10_00_world_creatures.sql
diff --git a/sql/old/3.3.5a/2011_03_10_01_world_pool_quest.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_10_01_world_pool_quest.sql
index 34ebc7a9eab..34ebc7a9eab 100644
--- a/sql/old/3.3.5a/2011_03_10_01_world_pool_quest.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_10_01_world_pool_quest.sql
diff --git a/sql/old/3.3.5a/2011_03_10_02_world_creature_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_10_02_world_creature_template.sql
index 6e509bfd3a2..6e509bfd3a2 100644
--- a/sql/old/3.3.5a/2011_03_10_02_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_10_02_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_03_10_03_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_10_03_world_creature_loot_template.sql
index 73aeb530380..73aeb530380 100644
--- a/sql/old/3.3.5a/2011_03_10_03_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_10_03_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2011_03_10_04_world_disables.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_10_04_world_disables.sql
index 875d02a08ba..875d02a08ba 100644
--- a/sql/old/3.3.5a/2011_03_10_04_world_disables.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_10_04_world_disables.sql
diff --git a/sql/old/3.3.5a/2011_03_10_05_world_creature_questrelation.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_10_05_world_creature_questrelation.sql
index 761fea2ec23..761fea2ec23 100644
--- a/sql/old/3.3.5a/2011_03_10_05_world_creature_questrelation.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_10_05_world_creature_questrelation.sql
diff --git a/sql/old/3.3.5a/2011_03_10_06_world_conditions.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_10_06_world_conditions.sql
index 0c1fb9dddab..0c1fb9dddab 100644
--- a/sql/old/3.3.5a/2011_03_10_06_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_10_06_world_conditions.sql
diff --git a/sql/old/3.3.5a/2011_03_10_07_world_conditions.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_10_07_world_conditions.sql
index fd5bc79146f..fd5bc79146f 100644
--- a/sql/old/3.3.5a/2011_03_10_07_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_10_07_world_conditions.sql
diff --git a/sql/old/3.3.5a/2011_03_10_08_world_spell_script_names.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_10_08_world_spell_script_names.sql
index 28598e0d313..28598e0d313 100644
--- a/sql/old/3.3.5a/2011_03_10_08_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_10_08_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_03_10_09_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_10_09_world_sai.sql
index e6e903d1ef7..e6e903d1ef7 100644
--- a/sql/old/3.3.5a/2011_03_10_09_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_10_09_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_03_10_10_world_spell_linked_spell.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_10_10_world_spell_linked_spell.sql
index 4afe8237836..4afe8237836 100644
--- a/sql/old/3.3.5a/2011_03_10_10_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_10_10_world_spell_linked_spell.sql
diff --git a/sql/old/3.3.5a/2011_03_11_00_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_11_00_world_sai.sql
index 0d7e13da7cf..0d7e13da7cf 100644
--- a/sql/old/3.3.5a/2011_03_11_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_11_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_03_11_00_world_scriptname.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_11_00_world_scriptname.sql
index 74f3d0f04ba..74f3d0f04ba 100644
--- a/sql/old/3.3.5a/2011_03_11_00_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_11_00_world_scriptname.sql
diff --git a/sql/old/3.3.5a/2011_03_11_01_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_11_01_world_sai.sql
index ac4a83433c4..ac4a83433c4 100644
--- a/sql/old/3.3.5a/2011_03_11_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_11_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_03_11_02_world_trinity_string.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_11_02_world_trinity_string.sql
index 925873f5d6f..925873f5d6f 100644
--- a/sql/old/3.3.5a/2011_03_11_02_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_11_02_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/2011_03_12_00_world_creature_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_12_00_world_creature_template.sql
index 91bb5c164d4..91bb5c164d4 100644
--- a/sql/old/3.3.5a/2011_03_12_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_12_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_03_13_00_world_scriptname.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_13_00_world_scriptname.sql
index b68be3b739d..b68be3b739d 100644
--- a/sql/old/3.3.5a/2011_03_13_00_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_13_00_world_scriptname.sql
diff --git a/sql/old/3.3.5a/2011_03_13_01_world_areatrigger_scripts.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_13_01_world_areatrigger_scripts.sql
index 098030021ee..098030021ee 100644
--- a/sql/old/3.3.5a/2011_03_13_01_world_areatrigger_scripts.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_13_01_world_areatrigger_scripts.sql
diff --git a/sql/old/3.3.5a/2011_03_13_01_world_creatures.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_13_01_world_creatures.sql
index 860491ec790..860491ec790 100644
--- a/sql/old/3.3.5a/2011_03_13_01_world_creatures.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_13_01_world_creatures.sql
diff --git a/sql/old/3.3.5a/2011_03_16_00_world_creatures.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_16_00_world_creatures.sql
index b3a4722d03b..b3a4722d03b 100644
--- a/sql/old/3.3.5a/2011_03_16_00_world_creatures.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_16_00_world_creatures.sql
diff --git a/sql/old/3.3.5a/2011_03_17_00_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_17_00_world_sai.sql
index 8f46ff60a4f..8f46ff60a4f 100644
--- a/sql/old/3.3.5a/2011_03_17_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_17_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_03_17_01_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_17_01_world_sai.sql
index 27a22d14aa8..27a22d14aa8 100644
--- a/sql/old/3.3.5a/2011_03_17_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_17_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_03_17_02_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_17_02_world_sai.sql
index 19b4b7e4ea0..19b4b7e4ea0 100644
--- a/sql/old/3.3.5a/2011_03_17_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_17_02_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_03_17_03_world_creature_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_17_03_world_creature_template.sql
index 6190390b4c6..6190390b4c6 100644
--- a/sql/old/3.3.5a/2011_03_17_03_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_17_03_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_03_17_04_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_17_04_world_sai.sql
index 8494c2c2649..8494c2c2649 100644
--- a/sql/old/3.3.5a/2011_03_17_04_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_17_04_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_03_17_05_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_17_05_world_sai.sql
index 7da7c189fe1..7da7c189fe1 100644
--- a/sql/old/3.3.5a/2011_03_17_05_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_17_05_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_03_17_06_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_17_06_world_sai.sql
index f7eec6ea0c1..f7eec6ea0c1 100644
--- a/sql/old/3.3.5a/2011_03_17_06_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_17_06_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_03_17_07_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_17_07_world_sai.sql
index 9d1ea279ebd..9d1ea279ebd 100644
--- a/sql/old/3.3.5a/2011_03_17_07_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_17_07_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_03_17_08_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_17_08_world_sai.sql
index 03fa5a829a8..03fa5a829a8 100644
--- a/sql/old/3.3.5a/2011_03_17_08_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_17_08_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_03_17_09_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_17_09_world_sai.sql
index 62e5f4c1f64..62e5f4c1f64 100644
--- a/sql/old/3.3.5a/2011_03_17_09_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_17_09_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_03_17_10_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_17_10_world_sai.sql
index fde9cc7ceff..fde9cc7ceff 100644
--- a/sql/old/3.3.5a/2011_03_17_10_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_17_10_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_03_18_00_world_game_event_misc.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_18_00_world_game_event_misc.sql
index 42cebab6dd6..42cebab6dd6 100644
--- a/sql/old/3.3.5a/2011_03_18_00_world_game_event_misc.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_18_00_world_game_event_misc.sql
diff --git a/sql/old/3.3.5a/2011_03_18_01_world_instance_pit_of_saron.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_18_01_world_instance_pit_of_saron.sql
index 6110799c6b0..6110799c6b0 100644
--- a/sql/old/3.3.5a/2011_03_18_01_world_instance_pit_of_saron.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_18_01_world_instance_pit_of_saron.sql
diff --git a/sql/old/3.3.5a/2011_03_18_02_world_creatures.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_18_02_world_creatures.sql
index 61eea952386..61eea952386 100644
--- a/sql/old/3.3.5a/2011_03_18_02_world_creatures.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_18_02_world_creatures.sql
diff --git a/sql/old/3.3.5a/2011_03_19_00_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_19_00_world_spell_proc_event.sql
index a0537fd6dd6..a0537fd6dd6 100644
--- a/sql/old/3.3.5a/2011_03_19_00_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_19_00_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_03_20_00_world_game_event.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_20_00_world_game_event.sql
index ebee67b8d36..ebee67b8d36 100644
--- a/sql/old/3.3.5a/2011_03_20_00_world_game_event.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_20_00_world_game_event.sql
diff --git a/sql/old/3.3.5a/2011_03_21_00_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_21_00_world_sai.sql
index cddb08883af..cddb08883af 100644
--- a/sql/old/3.3.5a/2011_03_21_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_21_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_03_21_01_world_creature_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_21_01_world_creature_template.sql
index 628619b25f9..628619b25f9 100644
--- a/sql/old/3.3.5a/2011_03_21_01_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_21_01_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_03_21_02_world_creature_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_21_02_world_creature_template.sql
index 960d96663c0..960d96663c0 100644
--- a/sql/old/3.3.5a/2011_03_21_02_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_21_02_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_03_21_03_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_21_03_world_achievement_criteria_data.sql
index 31e4421bc1d..31e4421bc1d 100644
--- a/sql/old/3.3.5a/2011_03_21_03_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_21_03_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_03_21_04_world_spell_required.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_21_04_world_spell_required.sql
index 38e3a4b59a8..38e3a4b59a8 100644
--- a/sql/old/3.3.5a/2011_03_21_04_world_spell_required.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_21_04_world_spell_required.sql
diff --git a/sql/old/3.3.5a/2011_03_21_05_world_spell_ranks.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_21_05_world_spell_ranks.sql
index 9d39c4effd8..9d39c4effd8 100644
--- a/sql/old/3.3.5a/2011_03_21_05_world_spell_ranks.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_21_05_world_spell_ranks.sql
diff --git a/sql/old/3.3.5a/2011_03_21_06_world_creature.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_21_06_world_creature.sql
index 1d9e87de3ea..1d9e87de3ea 100644
--- a/sql/old/3.3.5a/2011_03_21_06_world_creature.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_21_06_world_creature.sql
diff --git a/sql/old/3.3.5a/2011_03_21_07_world_spell_required.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_21_07_world_spell_required.sql
index e76c4801dd1..e76c4801dd1 100644
--- a/sql/old/3.3.5a/2011_03_21_07_world_spell_required.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_21_07_world_spell_required.sql
diff --git a/sql/old/3.3.5a/2011_03_21_08_world_spell_required.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_21_08_world_spell_required.sql
index 1c6e207127b..1c6e207127b 100644
--- a/sql/old/3.3.5a/2011_03_21_08_world_spell_required.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_21_08_world_spell_required.sql
diff --git a/sql/old/3.3.5a/2011_03_22_00_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_22_00_world_sai.sql
index 46ff0490324..46ff0490324 100644
--- a/sql/old/3.3.5a/2011_03_22_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_22_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_03_22_01_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_22_01_world_sai.sql
index 43477be8004..43477be8004 100644
--- a/sql/old/3.3.5a/2011_03_22_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_22_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_03_22_02_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_22_02_world_sai.sql
index 9f01eb83583..9f01eb83583 100644
--- a/sql/old/3.3.5a/2011_03_22_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_22_02_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_03_22_03_world_creature_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_22_03_world_creature_template.sql
index 5769c93c1d8..5769c93c1d8 100644
--- a/sql/old/3.3.5a/2011_03_22_03_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_22_03_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_03_23_00_world_conditions.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_00_world_conditions.sql
index e3a260dece4..e3a260dece4 100644
--- a/sql/old/3.3.5a/2011_03_23_00_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_00_world_conditions.sql
diff --git a/sql/old/3.3.5a/2011_03_23_01_world_creature_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_01_world_creature_template.sql
index ddc7e9c4cbc..ddc7e9c4cbc 100644
--- a/sql/old/3.3.5a/2011_03_23_01_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_01_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_03_23_02_world_creature_transport.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_02_world_creature_transport.sql
index 05c94518d83..05c94518d83 100644
--- a/sql/old/3.3.5a/2011_03_23_02_world_creature_transport.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_02_world_creature_transport.sql
diff --git a/sql/old/3.3.5a/2011_03_23_03_world_creature.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_03_world_creature.sql
index ca0ccdc93c9..ca0ccdc93c9 100644
--- a/sql/old/3.3.5a/2011_03_23_03_world_creature.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_03_world_creature.sql
diff --git a/sql/old/3.3.5a/2011_03_23_04_world_creature.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_04_world_creature.sql
index 9d9edec6452..9d9edec6452 100644
--- a/sql/old/3.3.5a/2011_03_23_04_world_creature.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_04_world_creature.sql
diff --git a/sql/old/3.3.5a/2011_03_23_06_world_quest_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_06_world_quest_template.sql
index 1b100325ae4..1b100325ae4 100644
--- a/sql/old/3.3.5a/2011_03_23_06_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_06_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2011_03_23_07_world_creatureinvolvedrelation.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_07_world_creatureinvolvedrelation.sql
index 1a8e09c0727..1a8e09c0727 100644
--- a/sql/old/3.3.5a/2011_03_23_07_world_creatureinvolvedrelation.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_07_world_creatureinvolvedrelation.sql
diff --git a/sql/old/3.3.5a/2011_03_23_08_world_gameobject_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_08_world_gameobject_template.sql
index 8db2ac8f117..8db2ac8f117 100644
--- a/sql/old/3.3.5a/2011_03_23_08_world_gameobject_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_08_world_gameobject_template.sql
diff --git a/sql/old/3.3.5a/2011_03_23_09_world_creature.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_09_world_creature.sql
index 11aad5a0466..11aad5a0466 100644
--- a/sql/old/3.3.5a/2011_03_23_09_world_creature.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_09_world_creature.sql
diff --git a/sql/old/3.3.5a/2011_03_23_10_world_gameobject.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_10_world_gameobject.sql
index aa44b110caa..aa44b110caa 100644
--- a/sql/old/3.3.5a/2011_03_23_10_world_gameobject.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_10_world_gameobject.sql
diff --git a/sql/old/3.3.5a/2011_03_23_11_world_game_event_arena_seasons.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_11_world_game_event_arena_seasons.sql
index ee7a545a67e..ee7a545a67e 100644
--- a/sql/old/3.3.5a/2011_03_23_11_world_game_event_arena_seasons.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_11_world_game_event_arena_seasons.sql
diff --git a/sql/old/3.3.5a/2011_03_23_12_world_misc.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_12_world_misc.sql
index 115e3da6ca4..115e3da6ca4 100644
--- a/sql/old/3.3.5a/2011_03_23_12_world_misc.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_12_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_03_23_13_world_misc.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_13_world_misc.sql
index 6c80b37b40c..6c80b37b40c 100644
--- a/sql/old/3.3.5a/2011_03_23_13_world_misc.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_13_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_03_23_14_world_conditions.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_14_world_conditions.sql
index c374bdd8fc6..c374bdd8fc6 100644
--- a/sql/old/3.3.5a/2011_03_23_14_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_14_world_conditions.sql
diff --git a/sql/old/3.3.5a/2011_03_23_14_world_creature_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_14_world_creature_template.sql
index ff9569bb8fa..ff9569bb8fa 100644
--- a/sql/old/3.3.5a/2011_03_23_14_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_14_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_03_23_14_world_creatures.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_14_world_creatures.sql
index 18d1655f4e3..18d1655f4e3 100644
--- a/sql/old/3.3.5a/2011_03_23_14_world_creatures.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_14_world_creatures.sql
diff --git a/sql/old/3.3.5a/2011_03_23_14_world_gameobject_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_14_world_gameobject_template.sql
index 00c40de6276..00c40de6276 100644
--- a/sql/old/3.3.5a/2011_03_23_14_world_gameobject_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_14_world_gameobject_template.sql
diff --git a/sql/old/3.3.5a/2011_03_23_14_world_spell_script_names.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_14_world_spell_script_names.sql
index c91c5273f9c..c91c5273f9c 100644
--- a/sql/old/3.3.5a/2011_03_23_14_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_23_14_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_03_24_00_world_creature_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_24_00_world_creature_template.sql
index 2456fd1dd5b..2456fd1dd5b 100644
--- a/sql/old/3.3.5a/2011_03_24_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_24_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_03_24_01_world_loot_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_24_01_world_loot_template.sql
index 613ff9171ad..613ff9171ad 100644
--- a/sql/old/3.3.5a/2011_03_24_01_world_loot_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_24_01_world_loot_template.sql
diff --git a/sql/old/3.3.5a/2011_03_24_02_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_24_02_world_sai.sql
index b4ee24b0a31..b4ee24b0a31 100644
--- a/sql/old/3.3.5a/2011_03_24_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_24_02_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_03_24_03_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_24_03_world_sai.sql
index 6093bf3c1fc..6093bf3c1fc 100644
--- a/sql/old/3.3.5a/2011_03_24_03_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_24_03_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_03_24_04_world_sai.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_24_04_world_sai.sql
index ae06dffd675..ae06dffd675 100644
--- a/sql/old/3.3.5a/2011_03_24_04_world_sai.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_24_04_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_03_25_00_world_creature_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_25_00_world_creature_template.sql
index 75b8c31885f..75b8c31885f 100644
--- a/sql/old/3.3.5a/2011_03_25_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_25_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_03_25_01_world_gameobjects.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_25_01_world_gameobjects.sql
index d2d9c0da5a2..d2d9c0da5a2 100644
--- a/sql/old/3.3.5a/2011_03_25_01_world_gameobjects.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_25_01_world_gameobjects.sql
diff --git a/sql/old/3.3.5a/2011_03_25_02_world_creatures.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_25_02_world_creatures.sql
index c6e3f98a9d7..c6e3f98a9d7 100644
--- a/sql/old/3.3.5a/2011_03_25_02_world_creatures.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_25_02_world_creatures.sql
diff --git a/sql/old/3.3.5a/2011_03_25_03_world_misc.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_25_03_world_misc.sql
index 03b34e06ace..03b34e06ace 100644
--- a/sql/old/3.3.5a/2011_03_25_03_world_misc.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_25_03_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_03_26_00_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_00_world_achievement_criteria_data.sql
index ed92b7ea830..ed92b7ea830 100644
--- a/sql/old/3.3.5a/2011_03_26_00_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_00_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_03_26_00_world_conditions.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_00_world_conditions.sql
index 44c793dd0cd..44c793dd0cd 100644
--- a/sql/old/3.3.5a/2011_03_26_00_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_00_world_conditions.sql
diff --git a/sql/old/3.3.5a/2011_03_26_00_world_creature_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_00_world_creature_template.sql
index dd2a90833b1..dd2a90833b1 100644
--- a/sql/old/3.3.5a/2011_03_26_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_03_26_00_world_creature_template_addon.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_00_world_creature_template_addon.sql
index 79a24670a8d..79a24670a8d 100644
--- a/sql/old/3.3.5a/2011_03_26_00_world_creature_template_addon.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_00_world_creature_template_addon.sql
diff --git a/sql/old/3.3.5a/2011_03_26_00_world_creature_text.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_00_world_creature_text.sql
index d2adbec16a2..d2adbec16a2 100644
--- a/sql/old/3.3.5a/2011_03_26_00_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_00_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2011_03_26_00_world_gameobject.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_00_world_gameobject.sql
index 523426f3a7b..523426f3a7b 100644
--- a/sql/old/3.3.5a/2011_03_26_00_world_gameobject.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_00_world_gameobject.sql
diff --git a/sql/old/3.3.5a/2011_03_26_00_world_npc_spellclick_spells.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_00_world_npc_spellclick_spells.sql
index b5be7525576..b5be7525576 100644
--- a/sql/old/3.3.5a/2011_03_26_00_world_npc_spellclick_spells.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_00_world_npc_spellclick_spells.sql
diff --git a/sql/old/3.3.5a/2011_03_26_00_world_scriptname.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_00_world_scriptname.sql
index c849a870155..c849a870155 100644
--- a/sql/old/3.3.5a/2011_03_26_00_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_00_world_scriptname.sql
diff --git a/sql/old/3.3.5a/2011_03_26_00_world_smart_scripts.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_00_world_smart_scripts.sql
index 4f595cffb9f..4f595cffb9f 100644
--- a/sql/old/3.3.5a/2011_03_26_00_world_smart_scripts.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_00_world_smart_scripts.sql
diff --git a/sql/old/3.3.5a/2011_03_26_00_world_vehicle_template_accessory.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_00_world_vehicle_template_accessory.sql
index 4dcdb0c6515..4dcdb0c6515 100644
--- a/sql/old/3.3.5a/2011_03_26_00_world_vehicle_template_accessory.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_00_world_vehicle_template_accessory.sql
diff --git a/sql/old/3.3.5a/2011_03_26_01_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_01_world_achievement_criteria_data.sql
index 0f1d5083f14..0f1d5083f14 100644
--- a/sql/old/3.3.5a/2011_03_26_01_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_01_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_03_26_02_world_spell_linked_spell.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_02_world_spell_linked_spell.sql
index 4a7db38c118..4a7db38c118 100644
--- a/sql/old/3.3.5a/2011_03_26_02_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_02_world_spell_linked_spell.sql
diff --git a/sql/old/3.3.5a/2011_03_26_03_world_quest_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_03_world_quest_template.sql
index f5552e51ad5..f5552e51ad5 100644
--- a/sql/old/3.3.5a/2011_03_26_03_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_03_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2011_03_26_03_world_spell_linked_spell.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_03_world_spell_linked_spell.sql
index caa8e51b9b1..caa8e51b9b1 100644
--- a/sql/old/3.3.5a/2011_03_26_03_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_26_03_world_spell_linked_spell.sql
diff --git a/sql/old/3.3.5a/2011_03_27_00_world_quest_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_27_00_world_quest_template.sql
index 929ae4b42b9..929ae4b42b9 100644
--- a/sql/old/3.3.5a/2011_03_27_00_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_27_00_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2011_03_27_01_world_misc.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_27_01_world_misc.sql
index bd8eecf7237..bd8eecf7237 100644
--- a/sql/old/3.3.5a/2011_03_27_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_27_01_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_03_27_02_world_misc.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_27_02_world_misc.sql
index fbbaff1e0da..fbbaff1e0da 100644
--- a/sql/old/3.3.5a/2011_03_27_02_world_misc.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_27_02_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_03_27_02_world_scriptname.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_27_02_world_scriptname.sql
index cd11006aa0b..cd11006aa0b 100644
--- a/sql/old/3.3.5a/2011_03_27_02_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_27_02_world_scriptname.sql
diff --git a/sql/old/3.3.5a/2011_03_27_02_world_spell_scriptname.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_27_02_world_spell_scriptname.sql
index 5ca119d7480..5ca119d7480 100644
--- a/sql/old/3.3.5a/2011_03_27_02_world_spell_scriptname.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_27_02_world_spell_scriptname.sql
diff --git a/sql/old/3.3.5a/2011_03_27_03_world_achievement_reward.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_27_03_world_achievement_reward.sql
index 2afcce64f7b..2afcce64f7b 100644
--- a/sql/old/3.3.5a/2011_03_27_03_world_achievement_reward.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_27_03_world_achievement_reward.sql
diff --git a/sql/old/3.3.5a/2011_03_28_00_world_misc.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_28_00_world_misc.sql
index 2d0f683bfda..2d0f683bfda 100644
--- a/sql/old/3.3.5a/2011_03_28_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_28_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_03_29_00_world_creature.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_29_00_world_creature.sql
index 9226d1c2277..9226d1c2277 100644
--- a/sql/old/3.3.5a/2011_03_29_00_world_creature.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_29_00_world_creature.sql
diff --git a/sql/old/3.3.5a/2011_03_29_01_world_pool_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_29_01_world_pool_template.sql
index be1546e7f44..be1546e7f44 100644
--- a/sql/old/3.3.5a/2011_03_29_01_world_pool_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_29_01_world_pool_template.sql
diff --git a/sql/old/3.3.5a/2011_03_29_02_world_equipment_template.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_29_02_world_equipment_template.sql
index 788cfac3e4d..788cfac3e4d 100644
--- a/sql/old/3.3.5a/2011_03_29_02_world_equipment_template.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_03_29_02_world_equipment_template.sql
diff --git a/sql/old/3.3.5a/2011_04_01_00_world_creature.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_04_01_00_world_creature.sql
index 982f41974b2..982f41974b2 100644
--- a/sql/old/3.3.5a/2011_04_01_00_world_creature.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_04_01_00_world_creature.sql
diff --git a/sql/old/3.3.5a/2011_04_02_00_world_game_event.sql b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_04_02_00_world_game_event.sql
index b64127f6af5..b64127f6af5 100644
--- a/sql/old/3.3.5a/2011_04_02_00_world_game_event.sql
+++ b/sql/old/3.3.5a/TDB38_to_TDB39_updates/world/2011_04_02_00_world_game_event.sql
diff --git a/sql/old/3.3.5a/2011_04_05_00_characters_arena_team_misc.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_05_00_characters_arena_team_misc.sql
index 377d01ef59b..377d01ef59b 100644
--- a/sql/old/3.3.5a/2011_04_05_00_characters_arena_team_misc.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_05_00_characters_arena_team_misc.sql
diff --git a/sql/old/3.3.5a/2011_04_06_00_characters_arena_team_member.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_06_00_characters_arena_team_member.sql
index d1a8139f2c0..d1a8139f2c0 100644
--- a/sql/old/3.3.5a/2011_04_06_00_characters_arena_team_member.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_06_00_characters_arena_team_member.sql
diff --git a/sql/old/3.3.5a/2011_04_08_00_characters_battleground_data.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_08_00_characters_battleground_data.sql
index 39a3de977ba..39a3de977ba 100644
--- a/sql/old/3.3.5a/2011_04_08_00_characters_battleground_data.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_08_00_characters_battleground_data.sql
diff --git a/sql/old/3.3.5a/2011_04_08_01_characters_character_homebind.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_08_01_characters_character_homebind.sql
index 8d026b50494..8d026b50494 100644
--- a/sql/old/3.3.5a/2011_04_08_01_characters_character_homebind.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_08_01_characters_character_homebind.sql
diff --git a/sql/old/3.3.5a/2011_04_08_02_characters_arena_team.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_08_02_characters_arena_team.sql
index 62b51ef1529..62b51ef1529 100644
--- a/sql/old/3.3.5a/2011_04_08_02_characters_arena_team.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_08_02_characters_arena_team.sql
diff --git a/sql/old/3.3.5a/2011_04_08_03_characters_arena_team_member.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_08_03_characters_arena_team_member.sql
index fee05000688..fee05000688 100644
--- a/sql/old/3.3.5a/2011_04_08_03_characters_arena_team_member.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_08_03_characters_arena_team_member.sql
diff --git a/sql/old/3.3.5a/2011_04_11_00_characters_corpse.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_11_00_characters_corpse.sql
index af3aaedde4f..af3aaedde4f 100644
--- a/sql/old/3.3.5a/2011_04_11_00_characters_corpse.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_11_00_characters_corpse.sql
diff --git a/sql/old/3.3.5a/2011_04_13_00_characters_creature_respawn.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_13_00_characters_creature_respawn.sql
index e7435e3f061..e7435e3f061 100644
--- a/sql/old/3.3.5a/2011_04_13_00_characters_creature_respawn.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_13_00_characters_creature_respawn.sql
diff --git a/sql/old/3.3.5a/2011_04_13_01_characters_gameobject_respawn.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_13_01_characters_gameobject_respawn.sql
index 541e49cd4ec..541e49cd4ec 100644
--- a/sql/old/3.3.5a/2011_04_13_01_characters_gameobject_respawn.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_13_01_characters_gameobject_respawn.sql
diff --git a/sql/old/3.3.5a/2011_04_14_00_characters_misc.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_14_00_characters_misc.sql
index ab9bd93419d..ab9bd93419d 100644
--- a/sql/old/3.3.5a/2011_04_14_00_characters_misc.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_14_00_characters_misc.sql
diff --git a/sql/old/3.3.5a/2011_04_15_00_characters_characters.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_15_00_characters_characters.sql
index a9448ac1ae2..a9448ac1ae2 100644
--- a/sql/old/3.3.5a/2011_04_15_00_characters_characters.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_15_00_characters_characters.sql
diff --git a/sql/old/3.3.5a/2011_04_19_00_characters_misc.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_19_00_characters_misc.sql
index 96536d67a03..96536d67a03 100644
--- a/sql/old/3.3.5a/2011_04_19_00_characters_misc.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_19_00_characters_misc.sql
diff --git a/sql/old/3.3.5a/2011_04_23_00_characters_corpse.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_23_00_characters_corpse.sql
index d9464f53f49..d9464f53f49 100644
--- a/sql/old/3.3.5a/2011_04_23_00_characters_corpse.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_23_00_characters_corpse.sql
diff --git a/sql/old/3.3.5a/2011_04_23_01_characters_character_banned.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_23_01_characters_character_banned.sql
index 67eee444844..67eee444844 100644
--- a/sql/old/3.3.5a/2011_04_23_01_characters_character_banned.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_04_23_01_characters_character_banned.sql
diff --git a/sql/old/3.3.5a/2011_05_06_00_characters_guild_rank.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_05_06_00_characters_guild_rank.sql
index 3c156f00644..3c156f00644 100644
--- a/sql/old/3.3.5a/2011_05_06_00_characters_guild_rank.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_05_06_00_characters_guild_rank.sql
diff --git a/sql/old/3.3.5a/2011_05_09_00_characters_character_stats.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_05_09_00_characters_character_stats.sql
index 24defd48f60..24defd48f60 100644
--- a/sql/old/3.3.5a/2011_05_09_00_characters_character_stats.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/characters/2011_05_09_00_characters_character_stats.sql
diff --git a/sql/old/3.3.5a/2011_04_02_01_world_version.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_02_01_world_version.sql
index e5d11458fe8..e5d11458fe8 100644
--- a/sql/old/3.3.5a/2011_04_02_01_world_version.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_02_01_world_version.sql
diff --git a/sql/old/3.3.5a/2011_04_03_00_world_conditions.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_00_world_conditions.sql
index 032577e3745..032577e3745 100644
--- a/sql/old/3.3.5a/2011_04_03_00_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_00_world_conditions.sql
diff --git a/sql/old/3.3.5a/2011_04_03_00_world_item_template.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_00_world_item_template.sql
index 12a3fe5bc47..12a3fe5bc47 100644
--- a/sql/old/3.3.5a/2011_04_03_00_world_item_template.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_00_world_item_template.sql
diff --git a/sql/old/3.3.5a/2011_04_03_00_world_misc.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_00_world_misc.sql
index a40b15e7a2a..a40b15e7a2a 100644
--- a/sql/old/3.3.5a/2011_04_03_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_04_03_00_world_scriptname.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_00_world_scriptname.sql
index a856f62fa04..a856f62fa04 100644
--- a/sql/old/3.3.5a/2011_04_03_00_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_00_world_scriptname.sql
diff --git a/sql/old/3.3.5a/2011_04_03_01_world_game_events.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_01_world_game_events.sql
index f5615ec0b15..f5615ec0b15 100644
--- a/sql/old/3.3.5a/2011_04_03_01_world_game_events.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_01_world_game_events.sql
diff --git a/sql/old/3.3.5a/2011_04_03_02_world_game_event.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_02_world_game_event.sql
index 1c9f46ffdcd..1c9f46ffdcd 100644
--- a/sql/old/3.3.5a/2011_04_03_02_world_game_event.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_02_world_game_event.sql
diff --git a/sql/old/3.3.5a/2011_04_03_03_world_game_events.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_03_world_game_events.sql
index 97a347d486d..97a347d486d 100644
--- a/sql/old/3.3.5a/2011_04_03_03_world_game_events.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_03_world_game_events.sql
diff --git a/sql/old/3.3.5a/2011_04_03_04_world_misc.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_04_world_misc.sql
index 43a487fbf3e..43a487fbf3e 100644
--- a/sql/old/3.3.5a/2011_04_03_04_world_misc.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_04_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_04_03_05_world_sai.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_05_world_sai.sql
index 435116e2b1b..435116e2b1b 100644
--- a/sql/old/3.3.5a/2011_04_03_05_world_sai.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_05_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_04_03_06_world_waypoint.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_06_world_waypoint.sql
index f38f690666c..f38f690666c 100644
--- a/sql/old/3.3.5a/2011_04_03_06_world_waypoint.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_06_world_waypoint.sql
diff --git a/sql/old/3.3.5a/2011_04_03_07_world_achievement_dbc.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_07_world_achievement_dbc.sql
index 1f764a75458..1f764a75458 100644
--- a/sql/old/3.3.5a/2011_04_03_07_world_achievement_dbc.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_07_world_achievement_dbc.sql
diff --git a/sql/old/3.3.5a/2011_04_03_08_world_creatures.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_08_world_creatures.sql
index c640926b631..c640926b631 100644
--- a/sql/old/3.3.5a/2011_04_03_08_world_creatures.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_08_world_creatures.sql
diff --git a/sql/old/3.3.5a/2011_04_03_09_world_misc.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_09_world_misc.sql
index 74d63effc3a..74d63effc3a 100644
--- a/sql/old/3.3.5a/2011_04_03_09_world_misc.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_09_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_04_03_10_world_spell_script_names.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_10_world_spell_script_names.sql
index e32d3579379..e32d3579379 100644
--- a/sql/old/3.3.5a/2011_04_03_10_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_10_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_04_03_11_world_spell_script_names.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_11_world_spell_script_names.sql
index be60a58d0cb..be60a58d0cb 100644
--- a/sql/old/3.3.5a/2011_04_03_11_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_11_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_04_03_12_world_script_text.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_12_world_script_text.sql
index a0755059223..a0755059223 100644
--- a/sql/old/3.3.5a/2011_04_03_12_world_script_text.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_12_world_script_text.sql
diff --git a/sql/old/3.3.5a/2011_04_03_12_world_scriptname.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_12_world_scriptname.sql
index 69b8d5b7120..69b8d5b7120 100644
--- a/sql/old/3.3.5a/2011_04_03_12_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_03_12_world_scriptname.sql
diff --git a/sql/old/3.3.5a/2011_04_06_00_world_script_text.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_06_00_world_script_text.sql
index 03c7cd3925a..03c7cd3925a 100644
--- a/sql/old/3.3.5a/2011_04_06_00_world_script_text.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_06_00_world_script_text.sql
diff --git a/sql/old/3.3.5a/2011_04_06_00_world_scriptname.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_06_00_world_scriptname.sql
index 3724b8febed..3724b8febed 100644
--- a/sql/old/3.3.5a/2011_04_06_00_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_06_00_world_scriptname.sql
diff --git a/sql/old/3.3.5a/2011_04_06_01_world_spell_script_names.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_06_01_world_spell_script_names.sql
index e1a67656a0c..e1a67656a0c 100644
--- a/sql/old/3.3.5a/2011_04_06_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_06_01_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_04_06_02_world_command.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_06_02_world_command.sql
index 385d8c73394..385d8c73394 100644
--- a/sql/old/3.3.5a/2011_04_06_02_world_command.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_06_02_world_command.sql
diff --git a/sql/old/3.3.5a/2011_04_06_03_world_spell_linked_spell.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_06_03_world_spell_linked_spell.sql
index c27e26d33be..c27e26d33be 100644
--- a/sql/old/3.3.5a/2011_04_06_03_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_06_03_world_spell_linked_spell.sql
diff --git a/sql/old/3.3.5a/2011_04_06_03_world_spell_script_names.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_06_03_world_spell_script_names.sql
index b5c4d151c2b..b5c4d151c2b 100644
--- a/sql/old/3.3.5a/2011_04_06_03_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_06_03_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_04_07_00_world_instance_scripts.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_07_00_world_instance_scripts.sql
index a579fe1d28d..a579fe1d28d 100644
--- a/sql/old/3.3.5a/2011_04_07_00_world_instance_scripts.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_07_00_world_instance_scripts.sql
diff --git a/sql/old/3.3.5a/2011_04_09_00_world_sai.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_09_00_world_sai.sql
index a861631d0dc..a861631d0dc 100644
--- a/sql/old/3.3.5a/2011_04_09_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_09_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_04_11_00_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_11_00_world_achievement_criteria_data.sql
index b9d0d750220..b9d0d750220 100644
--- a/sql/old/3.3.5a/2011_04_11_00_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_11_00_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_04_11_01_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_11_01_world_creature_loot_template.sql
index d789178c40c..d789178c40c 100644
--- a/sql/old/3.3.5a/2011_04_11_01_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_11_01_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2011_04_11_02_world_spell_area.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_11_02_world_spell_area.sql
index 4b85908910d..4b85908910d 100644
--- a/sql/old/3.3.5a/2011_04_11_02_world_spell_area.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_11_02_world_spell_area.sql
diff --git a/sql/old/3.3.5a/2011_04_11_03_world_arena_season_5.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_11_03_world_arena_season_5.sql
index 2cb150105e3..2cb150105e3 100644
--- a/sql/old/3.3.5a/2011_04_11_03_world_arena_season_5.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_11_03_world_arena_season_5.sql
diff --git a/sql/old/3.3.5a/2011_04_13_00_world_pool_template.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_13_00_world_pool_template.sql
index 86f96d97509..86f96d97509 100644
--- a/sql/old/3.3.5a/2011_04_13_00_world_pool_template.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_13_00_world_pool_template.sql
diff --git a/sql/old/3.3.5a/2011_04_14_00_world_sai.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_14_00_world_sai.sql
index 0918b001bf7..0918b001bf7 100644
--- a/sql/old/3.3.5a/2011_04_14_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_14_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_04_14_01_world_quest_template.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_14_01_world_quest_template.sql
index 2ae1a62d4b7..2ae1a62d4b7 100644
--- a/sql/old/3.3.5a/2011_04_14_01_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_14_01_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2011_04_16_00_world_gossip_menu.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_16_00_world_gossip_menu.sql
index 6a2a4d951a3..6a2a4d951a3 100644
--- a/sql/old/3.3.5a/2011_04_16_00_world_gossip_menu.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_16_00_world_gossip_menu.sql
diff --git a/sql/old/3.3.5a/2011_04_17_00_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_17_00_world_achievement_criteria_data.sql
index af58365089a..af58365089a 100644
--- a/sql/old/3.3.5a/2011_04_17_00_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_17_00_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_04_17_01_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_17_01_world_spell_bonus_data.sql
index 4c1fca8d728..4c1fca8d728 100644
--- a/sql/old/3.3.5a/2011_04_17_01_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_17_01_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/2011_04_17_02_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_17_02_world_achievement_criteria_data.sql
index cc1580de2c2..cc1580de2c2 100644
--- a/sql/old/3.3.5a/2011_04_17_02_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_17_02_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_04_17_03_world_spell_script_names.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_17_03_world_spell_script_names.sql
index 87d7778b456..87d7778b456 100644
--- a/sql/old/3.3.5a/2011_04_17_03_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_17_03_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_04_17_04_world_creature.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_17_04_world_creature.sql
index 2b82180d4e3..2b82180d4e3 100644
--- a/sql/old/3.3.5a/2011_04_17_04_world_creature.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_17_04_world_creature.sql
diff --git a/sql/old/3.3.5a/2011_04_17_05_world_creature.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_17_05_world_creature.sql
index 9f9ab112ebd..9f9ab112ebd 100644
--- a/sql/old/3.3.5a/2011_04_17_05_world_creature.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_17_05_world_creature.sql
diff --git a/sql/old/3.3.5a/2011_04_17_06_world_creature.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_17_06_world_creature.sql
index 844cd416cfa..844cd416cfa 100644
--- a/sql/old/3.3.5a/2011_04_17_06_world_creature.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_17_06_world_creature.sql
diff --git a/sql/old/3.3.5a/2011_04_17_07_world_creature_template.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_17_07_world_creature_template.sql
index 3a1cb9a71f4..3a1cb9a71f4 100644
--- a/sql/old/3.3.5a/2011_04_17_07_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_17_07_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_04_17_08_world_conditions.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_17_08_world_conditions.sql
index 1a7b6a3dff3..1a7b6a3dff3 100644
--- a/sql/old/3.3.5a/2011_04_17_08_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_17_08_world_conditions.sql
diff --git a/sql/old/3.3.5a/2011_04_21_00_world_achievement.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_21_00_world_achievement.sql
index 3a3892c279e..3a3892c279e 100644
--- a/sql/old/3.3.5a/2011_04_21_00_world_achievement.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_21_00_world_achievement.sql
diff --git a/sql/old/3.3.5a/2011_04_21_01_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_21_01_world_achievement_criteria_data.sql
index 8a7ba916f41..8a7ba916f41 100644
--- a/sql/old/3.3.5a/2011_04_21_01_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_21_01_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_04_22_00_world_spell_dbc.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_22_00_world_spell_dbc.sql
index 79647711c22..79647711c22 100644
--- a/sql/old/3.3.5a/2011_04_22_00_world_spell_dbc.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_22_00_world_spell_dbc.sql
diff --git a/sql/old/3.3.5a/2011_04_22_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_22_00_world_spell_script_names.sql
index bea45ee3684..bea45ee3684 100644
--- a/sql/old/3.3.5a/2011_04_22_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_22_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_04_22_01_world_spell_script_names.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_22_01_world_spell_script_names.sql
index c4d76096ca9..c4d76096ca9 100644
--- a/sql/old/3.3.5a/2011_04_22_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_22_01_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_04_22_02_world_creature.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_22_02_world_creature.sql
index 3ce08b023f7..3ce08b023f7 100644
--- a/sql/old/3.3.5a/2011_04_22_02_world_creature.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_22_02_world_creature.sql
diff --git a/sql/old/3.3.5a/2011_04_22_03_world_creatures.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_22_03_world_creatures.sql
index 24b6fbc5a88..24b6fbc5a88 100644
--- a/sql/old/3.3.5a/2011_04_22_03_world_creatures.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_22_03_world_creatures.sql
diff --git a/sql/old/3.3.5a/2011_04_22_04_world_conditions.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_22_04_world_conditions.sql
index 60c98c44ef6..60c98c44ef6 100644
--- a/sql/old/3.3.5a/2011_04_22_04_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_22_04_world_conditions.sql
diff --git a/sql/old/3.3.5a/2011_04_22_05_world_gossips.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_22_05_world_gossips.sql
index db86ec8942e..db86ec8942e 100644
--- a/sql/old/3.3.5a/2011_04_22_05_world_gossips.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_22_05_world_gossips.sql
diff --git a/sql/old/3.3.5a/2011_04_22_06_world_creatures.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_22_06_world_creatures.sql
index 91df3492336..91df3492336 100644
--- a/sql/old/3.3.5a/2011_04_22_06_world_creatures.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_22_06_world_creatures.sql
diff --git a/sql/old/3.3.5a/2011_04_22_07_world_script_texts.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_22_07_world_script_texts.sql
index 6b2ac8db2d4..6b2ac8db2d4 100644
--- a/sql/old/3.3.5a/2011_04_22_07_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_22_07_world_script_texts.sql
diff --git a/sql/old/3.3.5a/2011_04_22_07_world_scriptname.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_22_07_world_scriptname.sql
index 656d2bb8d44..656d2bb8d44 100644
--- a/sql/old/3.3.5a/2011_04_22_07_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_22_07_world_scriptname.sql
diff --git a/sql/old/3.3.5a/2011_04_22_07_world_smart_scripts.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_22_07_world_smart_scripts.sql
index dfba5bb323f..dfba5bb323f 100644
--- a/sql/old/3.3.5a/2011_04_22_07_world_smart_scripts.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_22_07_world_smart_scripts.sql
diff --git a/sql/old/3.3.5a/2011_04_23_00_world_misc.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_23_00_world_misc.sql
index 2aacfab9920..2aacfab9920 100644
--- a/sql/old/3.3.5a/2011_04_23_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_23_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_04_23_01_world_gameobjects.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_23_01_world_gameobjects.sql
index c4a26a0b297..c4a26a0b297 100644
--- a/sql/old/3.3.5a/2011_04_23_01_world_gameobjects.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_23_01_world_gameobjects.sql
diff --git a/sql/old/3.3.5a/2011_04_23_02_world_creatures.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_23_02_world_creatures.sql
index 6ab83f48f51..6ab83f48f51 100644
--- a/sql/old/3.3.5a/2011_04_23_02_world_creatures.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_23_02_world_creatures.sql
diff --git a/sql/old/3.3.5a/2011_04_25_00_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_25_00_world_achievement_criteria_data.sql
index 60b8a17858c..60b8a17858c 100644
--- a/sql/old/3.3.5a/2011_04_25_00_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_25_00_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_04_25_00_world_spell_linked_spell.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_25_00_world_spell_linked_spell.sql
index d9b518810bf..d9b518810bf 100644
--- a/sql/old/3.3.5a/2011_04_25_00_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_25_00_world_spell_linked_spell.sql
diff --git a/sql/old/3.3.5a/2011_04_25_01_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_25_01_world_achievement_criteria_data.sql
index 039143fcfda..039143fcfda 100644
--- a/sql/old/3.3.5a/2011_04_25_01_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_25_01_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_04_27_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_27_00_world_spell_script_names.sql
index 4b1c228fe4f..4b1c228fe4f 100644
--- a/sql/old/3.3.5a/2011_04_27_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_27_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_04_28_00_world_instance_template.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_28_00_world_instance_template.sql
index 178c58173c8..178c58173c8 100644
--- a/sql/old/3.3.5a/2011_04_28_00_world_instance_template.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_28_00_world_instance_template.sql
diff --git a/sql/old/3.3.5a/2011_04_28_01_world_creature_equip_template.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_28_01_world_creature_equip_template.sql
index 1cf6a95395c..1cf6a95395c 100644
--- a/sql/old/3.3.5a/2011_04_28_01_world_creature_equip_template.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_28_01_world_creature_equip_template.sql
diff --git a/sql/old/3.3.5a/2011_04_28_02_world_creature_addon.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_28_02_world_creature_addon.sql
index 5084aaf8b60..5084aaf8b60 100644
--- a/sql/old/3.3.5a/2011_04_28_02_world_creature_addon.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_28_02_world_creature_addon.sql
diff --git a/sql/old/3.3.5a/2011_04_28_03_world_creature_template_addon.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_28_03_world_creature_template_addon.sql
index ee5cb61ccdc..ee5cb61ccdc 100644
--- a/sql/old/3.3.5a/2011_04_28_03_world_creature_template_addon.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_28_03_world_creature_template_addon.sql
diff --git a/sql/old/3.3.5a/2011_04_29_00_world_loot_template.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_29_00_world_loot_template.sql
index acbdb4f779b..acbdb4f779b 100644
--- a/sql/old/3.3.5a/2011_04_29_00_world_loot_template.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_29_00_world_loot_template.sql
diff --git a/sql/old/3.3.5a/2011_04_30_00_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_30_00_world_achievement_criteria_data.sql
index 5ae00df49e4..5ae00df49e4 100644
--- a/sql/old/3.3.5a/2011_04_30_00_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_30_00_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_04_30_01_world_misc.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_30_01_world_misc.sql
index 90cbae41a0e..90cbae41a0e 100644
--- a/sql/old/3.3.5a/2011_04_30_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_30_01_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_04_30_02_world_instance_culling_of_stratholme.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_30_02_world_instance_culling_of_stratholme.sql
index f9988d3ff7e..f9988d3ff7e 100644
--- a/sql/old/3.3.5a/2011_04_30_02_world_instance_culling_of_stratholme.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_30_02_world_instance_culling_of_stratholme.sql
diff --git a/sql/old/3.3.5a/2011_04_30_02_world_scriptname.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_30_02_world_scriptname.sql
index 40357d4b5b5..40357d4b5b5 100644
--- a/sql/old/3.3.5a/2011_04_30_02_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_04_30_02_world_scriptname.sql
diff --git a/sql/old/3.3.5a/2011_05_04_00_world_spell_linked_spell.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_04_00_world_spell_linked_spell.sql
index 82ca68adca7..82ca68adca7 100644
--- a/sql/old/3.3.5a/2011_05_04_00_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_04_00_world_spell_linked_spell.sql
diff --git a/sql/old/3.3.5a/2011_05_04_01_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_04_01_world_spell_proc_event.sql
index 49ed444a866..49ed444a866 100644
--- a/sql/old/3.3.5a/2011_05_04_01_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_04_01_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_05_05_00_world_command.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_05_00_world_command.sql
index b31ffc2ff0a..b31ffc2ff0a 100644
--- a/sql/old/3.3.5a/2011_05_05_00_world_command.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_05_00_world_command.sql
diff --git a/sql/old/3.3.5a/2011_05_05_01_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_05_01_world_spell_proc_event.sql
index b7dff58a7bc..b7dff58a7bc 100644
--- a/sql/old/3.3.5a/2011_05_05_01_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_05_01_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_05_05_02_world_gameobject.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_05_02_world_gameobject.sql
index 575f51ee43d..575f51ee43d 100644
--- a/sql/old/3.3.5a/2011_05_05_02_world_gameobject.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_05_02_world_gameobject.sql
diff --git a/sql/old/3.3.5a/2011_05_06_00_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_06_00_world_spell_proc_event.sql
index 306ee5168b3..306ee5168b3 100644
--- a/sql/old/3.3.5a/2011_05_06_00_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_06_00_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_05_06_01_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_06_01_world_spell_proc_event.sql
index 511d184c178..511d184c178 100644
--- a/sql/old/3.3.5a/2011_05_06_01_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_06_01_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_05_06_02_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_06_02_world_spell_proc_event.sql
index 7cdf1d264e5..7cdf1d264e5 100644
--- a/sql/old/3.3.5a/2011_05_06_02_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_06_02_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_05_06_03_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_06_03_world_spell_bonus_data.sql
index 6edb5d8c305..6edb5d8c305 100644
--- a/sql/old/3.3.5a/2011_05_06_03_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_06_03_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/2011_05_06_04_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_06_04_world_spell_bonus_data.sql
index 1ab23c0e8bd..1ab23c0e8bd 100644
--- a/sql/old/3.3.5a/2011_05_06_04_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_06_04_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/2011_05_06_05_world_creature_text.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_06_05_world_creature_text.sql
index 4a521de8989..4a521de8989 100644
--- a/sql/old/3.3.5a/2011_05_06_05_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_06_05_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2011_05_06_06_world_spell_script_names.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_06_06_world_spell_script_names.sql
index c592e2a6203..c592e2a6203 100644
--- a/sql/old/3.3.5a/2011_05_06_06_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_06_06_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_05_06_07_world_game_event.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_06_07_world_game_event.sql
index cf9bf0e3cc6..cf9bf0e3cc6 100644
--- a/sql/old/3.3.5a/2011_05_06_07_world_game_event.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_06_07_world_game_event.sql
diff --git a/sql/old/3.3.5a/2011_05_07_00_world_sai.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_07_00_world_sai.sql
index 8f3ed2a213c..8f3ed2a213c 100644
--- a/sql/old/3.3.5a/2011_05_07_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_07_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_05_07_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_07_00_world_spell_script_names.sql
index caa7d2a407c..caa7d2a407c 100644
--- a/sql/old/3.3.5a/2011_05_07_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_07_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_05_07_01_world_game_event.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_07_01_world_game_event.sql
index a10cec6a733..a10cec6a733 100644
--- a/sql/old/3.3.5a/2011_05_07_01_world_game_event.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_07_01_world_game_event.sql
diff --git a/sql/old/3.3.5a/2011_05_07_02_world_sai.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_07_02_world_sai.sql
index f01e8491d69..f01e8491d69 100644
--- a/sql/old/3.3.5a/2011_05_07_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_07_02_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_05_07_03_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_07_03_world_achievement_criteria_data.sql
index 9c5e31a8217..9c5e31a8217 100644
--- a/sql/old/3.3.5a/2011_05_07_03_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_07_03_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_05_07_04_world_sai.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_07_04_world_sai.sql
index b18b5fa10bd..b18b5fa10bd 100644
--- a/sql/old/3.3.5a/2011_05_07_04_world_sai.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_07_04_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_05_07_05_world_sai.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_07_05_world_sai.sql
index d03c1238f51..d03c1238f51 100644
--- a/sql/old/3.3.5a/2011_05_07_05_world_sai.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_07_05_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_05_07_06_world_sai.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_07_06_world_sai.sql
index 12beaa431db..12beaa431db 100644
--- a/sql/old/3.3.5a/2011_05_07_06_world_sai.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_07_06_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_05_07_06_world_spell_script_names.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_07_06_world_spell_script_names.sql
index b614c5fe56d..b614c5fe56d 100644
--- a/sql/old/3.3.5a/2011_05_07_06_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_07_06_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_05_07_07_world_creature_text.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_07_07_world_creature_text.sql
index b8aaced3d0f..b8aaced3d0f 100644
--- a/sql/old/3.3.5a/2011_05_07_07_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_07_07_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2011_05_08_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_08_00_world_spell_script_names.sql
index 92908028ab2..92908028ab2 100644
--- a/sql/old/3.3.5a/2011_05_08_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_08_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_05_08_01_world_spell_script_names.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_08_01_world_spell_script_names.sql
index 1d9d31fab97..1d9d31fab97 100644
--- a/sql/old/3.3.5a/2011_05_08_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_08_01_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_05_09_00_world_trinity_string.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_09_00_world_trinity_string.sql
index 4050d1e600b..4050d1e600b 100644
--- a/sql/old/3.3.5a/2011_05_09_00_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_09_00_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/2011_05_09_01_world_creature_template.sql b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_09_01_world_creature_template.sql
index 38c32517c29..38c32517c29 100644
--- a/sql/old/3.3.5a/2011_05_09_01_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB39_to_TDB40_updates/world/2011_05_09_01_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_05_29_0_characters_mail_items.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/characters/2011_05_29_0_characters_mail_items.sql
index 3162fe1b263..3162fe1b263 100644
--- a/sql/old/3.3.5a/2011_05_29_0_characters_mail_items.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/characters/2011_05_29_0_characters_mail_items.sql
diff --git a/sql/old/3.3.5a/2011_05_29_1_characters_character_pet.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/characters/2011_05_29_1_characters_character_pet.sql
index 33de0087ce3..33de0087ce3 100644
--- a/sql/old/3.3.5a/2011_05_29_1_characters_character_pet.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/characters/2011_05_29_1_characters_character_pet.sql
diff --git a/sql/old/3.3.5a/2011_05_31_0_characters_character_pet.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/characters/2011_05_31_0_characters_character_pet.sql
index f36bc806de7..f36bc806de7 100644
--- a/sql/old/3.3.5a/2011_05_31_0_characters_character_pet.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/characters/2011_05_31_0_characters_character_pet.sql
diff --git a/sql/old/3.3.5a/2011_05_09_02_world_version.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_09_02_world_version.sql
index af8eb81c037..af8eb81c037 100644
--- a/sql/old/3.3.5a/2011_05_09_02_world_version.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_09_02_world_version.sql
diff --git a/sql/old/3.3.5a/2011_05_10_00_world_creature.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_10_00_world_creature.sql
index d2261054fd7..d2261054fd7 100644
--- a/sql/old/3.3.5a/2011_05_10_00_world_creature.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_10_00_world_creature.sql
diff --git a/sql/old/3.3.5a/2011_05_10_01_world_reserved_name.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_10_01_world_reserved_name.sql
index 2ea88abd807..2ea88abd807 100644
--- a/sql/old/3.3.5a/2011_05_10_01_world_reserved_name.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_10_01_world_reserved_name.sql
diff --git a/sql/old/3.3.5a/2011_05_10_02_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_10_02_world_spell_bonus_data.sql
index cde9c527400..cde9c527400 100644
--- a/sql/old/3.3.5a/2011_05_10_02_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_10_02_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/2011_05_10_03_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_10_03_world_spell_bonus_data.sql
index b5885ef86a0..b5885ef86a0 100644
--- a/sql/old/3.3.5a/2011_05_10_03_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_10_03_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/2011_05_10_04_world_spell_linked_spell.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_10_04_world_spell_linked_spell.sql
index 3bb1f90dbb0..3bb1f90dbb0 100644
--- a/sql/old/3.3.5a/2011_05_10_04_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_10_04_world_spell_linked_spell.sql
diff --git a/sql/old/3.3.5a/2011_05_11_00_world_trinity_string.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_00_world_trinity_string.sql
index 3c21a551f5a..3c21a551f5a 100644
--- a/sql/old/3.3.5a/2011_05_11_00_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_00_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/2011_05_11_01_world_trinity_string.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_01_world_trinity_string.sql
index c7ea8605bbf..c7ea8605bbf 100644
--- a/sql/old/3.3.5a/2011_05_11_01_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_01_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/2011_05_11_02_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_02_world_spell_proc_event.sql
index 0536ddb1bb5..0536ddb1bb5 100644
--- a/sql/old/3.3.5a/2011_05_11_02_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_02_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_05_11_03_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_03_world_spell_bonus_data.sql
index be207fe8902..be207fe8902 100644
--- a/sql/old/3.3.5a/2011_05_11_03_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_03_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/2011_05_11_04_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_04_world_spell_proc_event.sql
index 53b912d888e..53b912d888e 100644
--- a/sql/old/3.3.5a/2011_05_11_04_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_04_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_05_11_05_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_05_world_spell_proc_event.sql
index b149236622f..b149236622f 100644
--- a/sql/old/3.3.5a/2011_05_11_05_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_05_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_05_11_06_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_06_world_spell_bonus_data.sql
index de95bdd5524..de95bdd5524 100644
--- a/sql/old/3.3.5a/2011_05_11_06_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_06_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/2011_05_11_07_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_07_world_spell_bonus_data.sql
index 52ba4496542..52ba4496542 100644
--- a/sql/old/3.3.5a/2011_05_11_07_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_07_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/2011_05_11_08_world_spell_linked_spell.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_08_world_spell_linked_spell.sql
index d41151fb632..d41151fb632 100644
--- a/sql/old/3.3.5a/2011_05_11_08_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_08_world_spell_linked_spell.sql
diff --git a/sql/old/3.3.5a/2011_05_11_09_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_09_world_spell_proc_event.sql
index aaeb2221e9b..aaeb2221e9b 100644
--- a/sql/old/3.3.5a/2011_05_11_09_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_09_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_05_11_10_world_conditions.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_10_world_conditions.sql
index 31f0647b162..31f0647b162 100644
--- a/sql/old/3.3.5a/2011_05_11_10_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_10_world_conditions.sql
diff --git a/sql/old/3.3.5a/2011_05_11_10_world_spell_linked_spell.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_10_world_spell_linked_spell.sql
index 02bc6b32ddd..02bc6b32ddd 100644
--- a/sql/old/3.3.5a/2011_05_11_10_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_10_world_spell_linked_spell.sql
diff --git a/sql/old/3.3.5a/2011_05_11_11_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_11_world_spell_proc_event.sql
index 861277584d4..861277584d4 100644
--- a/sql/old/3.3.5a/2011_05_11_11_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_11_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_05_11_12_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_12_world_spell_proc_event.sql
index 4735c888376..4735c888376 100644
--- a/sql/old/3.3.5a/2011_05_11_12_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_12_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_05_11_13_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_13_world_spell_proc_event.sql
index 51fa2c70cf0..51fa2c70cf0 100644
--- a/sql/old/3.3.5a/2011_05_11_13_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_13_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_05_11_14_world_spell_pet_auras.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_14_world_spell_pet_auras.sql
index c327e3cb485..c327e3cb485 100644
--- a/sql/old/3.3.5a/2011_05_11_14_world_spell_pet_auras.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_14_world_spell_pet_auras.sql
diff --git a/sql/old/3.3.5a/2011_05_11_15_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_15_world_spell_proc_event.sql
index d15fec113c9..d15fec113c9 100644
--- a/sql/old/3.3.5a/2011_05_11_15_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_11_15_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_05_12_00_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_00_world_spell_proc_event.sql
index b34ff472d4b..b34ff472d4b 100644
--- a/sql/old/3.3.5a/2011_05_12_00_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_00_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_05_12_01_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_01_world_spell_proc_event.sql
index 19dc84a570d..19dc84a570d 100644
--- a/sql/old/3.3.5a/2011_05_12_01_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_01_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_05_12_02_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_02_world_spell_proc_event.sql
index 60b6bcc32a7..60b6bcc32a7 100644
--- a/sql/old/3.3.5a/2011_05_12_02_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_02_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_05_12_03_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_03_world_spell_proc_event.sql
index 52cffc94875..52cffc94875 100644
--- a/sql/old/3.3.5a/2011_05_12_03_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_03_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_05_12_04_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_04_world_spell_proc_event.sql
index bc8ad894d8c..bc8ad894d8c 100644
--- a/sql/old/3.3.5a/2011_05_12_04_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_04_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_05_12_05_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_05_world_spell_proc_event.sql
index 8b5907ca319..8b5907ca319 100644
--- a/sql/old/3.3.5a/2011_05_12_05_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_05_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_05_12_06_world_spell_group.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_06_world_spell_group.sql
index c93af3976df..c93af3976df 100644
--- a/sql/old/3.3.5a/2011_05_12_06_world_spell_group.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_06_world_spell_group.sql
diff --git a/sql/old/3.3.5a/2011_05_12_07_world_spell_group.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_07_world_spell_group.sql
index c7a8a764c85..c7a8a764c85 100644
--- a/sql/old/3.3.5a/2011_05_12_07_world_spell_group.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_07_world_spell_group.sql
diff --git a/sql/old/3.3.5a/2011_05_12_08_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_08_world_spell_bonus_data.sql
index d72932f35b3..d72932f35b3 100644
--- a/sql/old/3.3.5a/2011_05_12_08_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_08_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/2011_05_12_09_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_09_world_spell_bonus_data.sql
index f48f3479388..f48f3479388 100644
--- a/sql/old/3.3.5a/2011_05_12_09_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_09_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/2011_05_12_10_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_10_world_spell_bonus_data.sql
index c9fcade6817..c9fcade6817 100644
--- a/sql/old/3.3.5a/2011_05_12_10_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_10_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/2011_05_12_11_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_11_world_spell_proc_event.sql
index f2b6ce5fd47..f2b6ce5fd47 100644
--- a/sql/old/3.3.5a/2011_05_12_11_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_11_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_05_12_12_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_12_world_spell_bonus_data.sql
index adf2e07c926..adf2e07c926 100644
--- a/sql/old/3.3.5a/2011_05_12_12_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_12_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/2011_05_12_13_world_spell_dbc.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_13_world_spell_dbc.sql
index c3c649f2647..c3c649f2647 100644
--- a/sql/old/3.3.5a/2011_05_12_13_world_spell_dbc.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_13_world_spell_dbc.sql
diff --git a/sql/old/3.3.5a/2011_05_12_13_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_13_world_spell_proc_event.sql
index 9a533bdb810..9a533bdb810 100644
--- a/sql/old/3.3.5a/2011_05_12_13_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_13_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_05_12_14_world_creature_text.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_14_world_creature_text.sql
index a370289ae3e..a370289ae3e 100644
--- a/sql/old/3.3.5a/2011_05_12_14_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_14_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2011_05_12_15_world_spell_script_names.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_15_world_spell_script_names.sql
index 92072afc0d6..92072afc0d6 100644
--- a/sql/old/3.3.5a/2011_05_12_15_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_15_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_05_12_16_world_spell_script_names.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_16_world_spell_script_names.sql
index 904510043c9..904510043c9 100644
--- a/sql/old/3.3.5a/2011_05_12_16_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_12_16_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_05_13_00_world_spell_dbc.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_13_00_world_spell_dbc.sql
index e47431ef703..e47431ef703 100644
--- a/sql/old/3.3.5a/2011_05_13_00_world_spell_dbc.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_13_00_world_spell_dbc.sql
diff --git a/sql/old/3.3.5a/2011_05_13_01_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_13_01_world_spell_bonus_data.sql
index 63d0407efe7..63d0407efe7 100644
--- a/sql/old/3.3.5a/2011_05_13_01_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_13_01_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/2011_05_13_02_world_spell_script_names.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_13_02_world_spell_script_names.sql
index c3d53d38605..c3d53d38605 100644
--- a/sql/old/3.3.5a/2011_05_13_02_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_13_02_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_05_13_03_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_13_03_world_spell_bonus_data.sql
index 761c7993b1a..761c7993b1a 100644
--- a/sql/old/3.3.5a/2011_05_13_03_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_13_03_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/2011_05_13_03_world_spell_script_names.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_13_03_world_spell_script_names.sql
index dd8662ee63d..dd8662ee63d 100644
--- a/sql/old/3.3.5a/2011_05_13_03_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_13_03_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_05_13_04_world_areatrigger_scripts.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_13_04_world_areatrigger_scripts.sql
index ff81007753c..ff81007753c 100644
--- a/sql/old/3.3.5a/2011_05_13_04_world_areatrigger_scripts.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_13_04_world_areatrigger_scripts.sql
diff --git a/sql/old/3.3.5a/2011_05_13_04_world_instance_misc.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_13_04_world_instance_misc.sql
index 3956de0f35b..3956de0f35b 100644
--- a/sql/old/3.3.5a/2011_05_13_04_world_instance_misc.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_13_04_world_instance_misc.sql
diff --git a/sql/old/3.3.5a/2011_05_13_04_world_scriptname.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_13_04_world_scriptname.sql
index ee328cd35e5..ee328cd35e5 100644
--- a/sql/old/3.3.5a/2011_05_13_04_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_13_04_world_scriptname.sql
diff --git a/sql/old/3.3.5a/2011_05_13_04_world_spell_script_names.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_13_04_world_spell_script_names.sql
index 3829bc7c4f5..3829bc7c4f5 100644
--- a/sql/old/3.3.5a/2011_05_13_04_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_13_04_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_05_13_05_world_creature_text.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_13_05_world_creature_text.sql
index d1cf27f7535..d1cf27f7535 100644
--- a/sql/old/3.3.5a/2011_05_13_05_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_13_05_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2011_05_13_06_world_creature_text.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_13_06_world_creature_text.sql
index 6a8eca79ade..6a8eca79ade 100644
--- a/sql/old/3.3.5a/2011_05_13_06_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_13_06_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2011_05_14_00_world_achievment_criteria_data.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_14_00_world_achievment_criteria_data.sql
index fb5c609aca4..fb5c609aca4 100644
--- a/sql/old/3.3.5a/2011_05_14_00_world_achievment_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_14_00_world_achievment_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_05_14_01_world_achievment_criteria_data.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_14_01_world_achievment_criteria_data.sql
index 8d53eba4a35..8d53eba4a35 100644
--- a/sql/old/3.3.5a/2011_05_14_01_world_achievment_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_14_01_world_achievment_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_05_14_02_world_achievment_criteria_data.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_14_02_world_achievment_criteria_data.sql
index 3974a3f6f7b..3974a3f6f7b 100644
--- a/sql/old/3.3.5a/2011_05_14_02_world_achievment_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_14_02_world_achievment_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_05_14_03_world_gossip_menu.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_14_03_world_gossip_menu.sql
index 0f1d9c91e5e..0f1d9c91e5e 100644
--- a/sql/old/3.3.5a/2011_05_14_03_world_gossip_menu.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_14_03_world_gossip_menu.sql
diff --git a/sql/old/3.3.5a/2011_05_14_04_world_gossip_menu.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_14_04_world_gossip_menu.sql
index 0d90fde3082..0d90fde3082 100644
--- a/sql/old/3.3.5a/2011_05_14_04_world_gossip_menu.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_14_04_world_gossip_menu.sql
diff --git a/sql/old/3.3.5a/2011_05_15_00_world_creature_template.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_15_00_world_creature_template.sql
index fe94c70cf5a..fe94c70cf5a 100644
--- a/sql/old/3.3.5a/2011_05_15_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_15_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_05_15_01_world_smart_scripts.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_15_01_world_smart_scripts.sql
index 988f172965b..988f172965b 100644
--- a/sql/old/3.3.5a/2011_05_15_01_world_smart_scripts.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_15_01_world_smart_scripts.sql
diff --git a/sql/old/3.3.5a/2011_05_15_02_world_spell_script_names.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_15_02_world_spell_script_names.sql
index 23e3f22962b..23e3f22962b 100644
--- a/sql/old/3.3.5a/2011_05_15_02_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_15_02_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_05_16_00_world_creature.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_16_00_world_creature.sql
index 54e23c90739..54e23c90739 100644
--- a/sql/old/3.3.5a/2011_05_16_00_world_creature.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_16_00_world_creature.sql
diff --git a/sql/old/3.3.5a/2011_05_17_00_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_17_00_world_spell_proc_event.sql
index af1cc8dfa8c..af1cc8dfa8c 100644
--- a/sql/old/3.3.5a/2011_05_17_00_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_17_00_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_05_17_01_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_17_01_world_spell_bonus_data.sql
index 3bf6b692bef..3bf6b692bef 100644
--- a/sql/old/3.3.5a/2011_05_17_01_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_17_01_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/2011_05_17_01_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_17_01_world_spell_proc_event.sql
index c6d3ba9d27b..c6d3ba9d27b 100644
--- a/sql/old/3.3.5a/2011_05_17_01_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_17_01_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_05_18_00_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_18_00_world_spell_proc_event.sql
index 0bc98a25d85..0bc98a25d85 100644
--- a/sql/old/3.3.5a/2011_05_18_00_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_18_00_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_05_18_01_world_spell_target_position.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_18_01_world_spell_target_position.sql
index f6d2b571472..f6d2b571472 100644
--- a/sql/old/3.3.5a/2011_05_18_01_world_spell_target_position.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_18_01_world_spell_target_position.sql
diff --git a/sql/old/3.3.5a/2011_05_18_02_world_creature_text.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_18_02_world_creature_text.sql
index 3d6963b34ab..3d6963b34ab 100644
--- a/sql/old/3.3.5a/2011_05_18_02_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_18_02_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2011_05_18_03_world_creature.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_18_03_world_creature.sql
index 59425b0c3a4..59425b0c3a4 100644
--- a/sql/old/3.3.5a/2011_05_18_03_world_creature.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_18_03_world_creature.sql
diff --git a/sql/old/3.3.5a/2011_05_18_04_world_achievements.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_18_04_world_achievements.sql
index d65f2a99068..d65f2a99068 100644
--- a/sql/old/3.3.5a/2011_05_18_04_world_achievements.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_18_04_world_achievements.sql
diff --git a/sql/old/3.3.5a/2011_05_18_05_world_waypoints.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_18_05_world_waypoints.sql
index a8e8d247c94..a8e8d247c94 100644
--- a/sql/old/3.3.5a/2011_05_18_05_world_waypoints.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_18_05_world_waypoints.sql
diff --git a/sql/old/3.3.5a/2011_05_18_06_world_waypoints.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_18_06_world_waypoints.sql
index 64aef81546c..64aef81546c 100644
--- a/sql/old/3.3.5a/2011_05_18_06_world_waypoints.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_18_06_world_waypoints.sql
diff --git a/sql/old/3.3.5a/2011_05_18_07_world_sai.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_18_07_world_sai.sql
index cb33d02f7cd..cb33d02f7cd 100644
--- a/sql/old/3.3.5a/2011_05_18_07_world_sai.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_18_07_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_05_18_08_world_waypoints.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_18_08_world_waypoints.sql
index c855487bc69..c855487bc69 100644
--- a/sql/old/3.3.5a/2011_05_18_08_world_waypoints.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_18_08_world_waypoints.sql
diff --git a/sql/old/3.3.5a/2011_05_18_09_world_waypoints.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_18_09_world_waypoints.sql
index a04b688d2a9..a04b688d2a9 100644
--- a/sql/old/3.3.5a/2011_05_18_09_world_waypoints.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_18_09_world_waypoints.sql
diff --git a/sql/old/3.3.5a/2011_05_18_10_world_npc_text.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_18_10_world_npc_text.sql
index e4e701687bf..e4e701687bf 100644
--- a/sql/old/3.3.5a/2011_05_18_10_world_npc_text.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_18_10_world_npc_text.sql
diff --git a/sql/old/3.3.5a/2011_05_18_11_world_item_template.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_18_11_world_item_template.sql
index 9fa22c6824a..9fa22c6824a 100644
--- a/sql/old/3.3.5a/2011_05_18_11_world_item_template.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_18_11_world_item_template.sql
diff --git a/sql/old/3.3.5a/2011_05_19_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_19_00_world_spell_script_names.sql
index b434d99d0f0..b434d99d0f0 100644
--- a/sql/old/3.3.5a/2011_05_19_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_19_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_05_19_01_world_instance_misc.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_19_01_world_instance_misc.sql
index ab243945eea..ab243945eea 100644
--- a/sql/old/3.3.5a/2011_05_19_01_world_instance_misc.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_19_01_world_instance_misc.sql
diff --git a/sql/old/3.3.5a/2011_05_19_01_world_script_text.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_19_01_world_script_text.sql
index 1e9530478ef..1e9530478ef 100644
--- a/sql/old/3.3.5a/2011_05_19_01_world_script_text.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_19_01_world_script_text.sql
diff --git a/sql/old/3.3.5a/2011_05_19_01_world_scriptname.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_19_01_world_scriptname.sql
index fa73710abbd..fa73710abbd 100644
--- a/sql/old/3.3.5a/2011_05_19_01_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_19_01_world_scriptname.sql
diff --git a/sql/old/3.3.5a/2011_05_19_01_world_spell_script_names.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_19_01_world_spell_script_names.sql
index 5e7989aaef7..5e7989aaef7 100644
--- a/sql/old/3.3.5a/2011_05_19_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_19_01_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_05_20_00_world_conditions.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_20_00_world_conditions.sql
index d868d0a0b07..d868d0a0b07 100644
--- a/sql/old/3.3.5a/2011_05_20_00_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_20_00_world_conditions.sql
diff --git a/sql/old/3.3.5a/2011_05_20_01_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_20_01_world_achievement_criteria_data.sql
index 25488d8ccae..25488d8ccae 100644
--- a/sql/old/3.3.5a/2011_05_20_01_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_20_01_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_05_20_01_world_instance_misc.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_20_01_world_instance_misc.sql
index c3ada3e3f44..c3ada3e3f44 100644
--- a/sql/old/3.3.5a/2011_05_20_01_world_instance_misc.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_20_01_world_instance_misc.sql
diff --git a/sql/old/3.3.5a/2011_05_20_01_world_scriptname.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_20_01_world_scriptname.sql
index df6b179c8ca..df6b179c8ca 100644
--- a/sql/old/3.3.5a/2011_05_20_01_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_20_01_world_scriptname.sql
diff --git a/sql/old/3.3.5a/2011_05_20_01_world_spell_script_names.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_20_01_world_spell_script_names.sql
index 106efd790e7..106efd790e7 100644
--- a/sql/old/3.3.5a/2011_05_20_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_20_01_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_05_20_02_world_pool_template.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_20_02_world_pool_template.sql
index 93a64fe2cab..93a64fe2cab 100644
--- a/sql/old/3.3.5a/2011_05_20_02_world_pool_template.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_20_02_world_pool_template.sql
diff --git a/sql/old/3.3.5a/2011_05_20_03_world_pool_template.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_20_03_world_pool_template.sql
index 2ad977c9f32..2ad977c9f32 100644
--- a/sql/old/3.3.5a/2011_05_20_03_world_pool_template.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_20_03_world_pool_template.sql
diff --git a/sql/old/3.3.5a/2011_05_20_04_world_pool_template.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_20_04_world_pool_template.sql
index 761ace00b16..761ace00b16 100644
--- a/sql/old/3.3.5a/2011_05_20_04_world_pool_template.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_20_04_world_pool_template.sql
diff --git a/sql/old/3.3.5a/2011_05_20_05_world_creature_template.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_20_05_world_creature_template.sql
index 39905251742..39905251742 100644
--- a/sql/old/3.3.5a/2011_05_20_05_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_20_05_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_05_21_01_world_conditions.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_21_01_world_conditions.sql
index fc3e748a9de..fc3e748a9de 100644
--- a/sql/old/3.3.5a/2011_05_21_01_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_21_01_world_conditions.sql
diff --git a/sql/old/3.3.5a/2011_05_21_01_world_instance_misc.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_21_01_world_instance_misc.sql
index 442cef8d3f9..442cef8d3f9 100644
--- a/sql/old/3.3.5a/2011_05_21_01_world_instance_misc.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_21_01_world_instance_misc.sql
diff --git a/sql/old/3.3.5a/2011_05_21_01_world_scriptname.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_21_01_world_scriptname.sql
index a6e054f6899..a6e054f6899 100644
--- a/sql/old/3.3.5a/2011_05_21_01_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_21_01_world_scriptname.sql
diff --git a/sql/old/3.3.5a/2011_05_21_01_world_spell_script_names.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_21_01_world_spell_script_names.sql
index a10ad9fa53c..a10ad9fa53c 100644
--- a/sql/old/3.3.5a/2011_05_21_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_21_01_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_05_21_02_world_creature_misc.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_21_02_world_creature_misc.sql
index 71542b7f101..71542b7f101 100644
--- a/sql/old/3.3.5a/2011_05_21_02_world_creature_misc.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_21_02_world_creature_misc.sql
diff --git a/sql/old/3.3.5a/2011_05_21_02_world_spell_script_names.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_21_02_world_spell_script_names.sql
index b2e1da16dea..b2e1da16dea 100644
--- a/sql/old/3.3.5a/2011_05_21_02_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_21_02_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_05_21_03_world_creature_text.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_21_03_world_creature_text.sql
index 5bc4efe975b..5bc4efe975b 100644
--- a/sql/old/3.3.5a/2011_05_21_03_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_21_03_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2011_05_22_00_world_creatures.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_22_00_world_creatures.sql
index 8a78e554b48..8a78e554b48 100644
--- a/sql/old/3.3.5a/2011_05_22_00_world_creatures.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_22_00_world_creatures.sql
diff --git a/sql/old/3.3.5a/2011_05_22_01_world_misc.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_22_01_world_misc.sql
index e354997f836..e354997f836 100644
--- a/sql/old/3.3.5a/2011_05_22_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_22_01_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_05_22_02_world_sai.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_22_02_world_sai.sql
index 1419b0f4bbd..1419b0f4bbd 100644
--- a/sql/old/3.3.5a/2011_05_22_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_22_02_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_05_22_03_world_gameobject_template.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_22_03_world_gameobject_template.sql
index 95599753c90..95599753c90 100644
--- a/sql/old/3.3.5a/2011_05_22_03_world_gameobject_template.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_22_03_world_gameobject_template.sql
diff --git a/sql/old/3.3.5a/2011_05_22_04_world_creature_text.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_22_04_world_creature_text.sql
index 6056cccdbc4..6056cccdbc4 100644
--- a/sql/old/3.3.5a/2011_05_22_04_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_22_04_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2011_05_22_05_world_sai.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_22_05_world_sai.sql
index faa9478aa74..faa9478aa74 100644
--- a/sql/old/3.3.5a/2011_05_22_05_world_sai.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_22_05_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_05_22_06_world_creature_template.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_22_06_world_creature_template.sql
index f4579e58ef2..f4579e58ef2 100644
--- a/sql/old/3.3.5a/2011_05_22_06_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_22_06_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_05_22_07_world_misc.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_22_07_world_misc.sql
index 0f4eb84ffab..0f4eb84ffab 100644
--- a/sql/old/3.3.5a/2011_05_22_07_world_misc.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_22_07_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_05_22_08_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_22_08_world_spell_proc_event.sql
index da02941c85f..da02941c85f 100644
--- a/sql/old/3.3.5a/2011_05_22_08_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_22_08_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_05_23_00_world_spell_dbc.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_23_00_world_spell_dbc.sql
index c221046df54..c221046df54 100644
--- a/sql/old/3.3.5a/2011_05_23_00_world_spell_dbc.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_23_00_world_spell_dbc.sql
diff --git a/sql/old/3.3.5a/2011_05_24_00_world_sai.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_00_world_sai.sql
index ceb87c7b63a..ceb87c7b63a 100644
--- a/sql/old/3.3.5a/2011_05_24_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_05_24_01_world_sai.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_01_world_sai.sql
index 13c555f95fe..13c555f95fe 100644
--- a/sql/old/3.3.5a/2011_05_24_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_05_24_02_world_sai.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_02_world_sai.sql
index 4ab808b2422..4ab808b2422 100644
--- a/sql/old/3.3.5a/2011_05_24_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_02_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_05_24_03_world_creature.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_03_world_creature.sql
index 11621f51bea..11621f51bea 100644
--- a/sql/old/3.3.5a/2011_05_24_03_world_creature.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_03_world_creature.sql
diff --git a/sql/old/3.3.5a/2011_05_24_04_world_sai.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_04_world_sai.sql
index a03325f546d..a03325f546d 100644
--- a/sql/old/3.3.5a/2011_05_24_04_world_sai.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_04_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_05_24_05_world_sai.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_05_world_sai.sql
index f8314195930..f8314195930 100644
--- a/sql/old/3.3.5a/2011_05_24_05_world_sai.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_05_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_05_24_06_world_sai.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_06_world_sai.sql
index 551d64bb388..551d64bb388 100644
--- a/sql/old/3.3.5a/2011_05_24_06_world_sai.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_06_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_05_24_07_world_sai.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_07_world_sai.sql
index 7e184d1dfa4..7e184d1dfa4 100644
--- a/sql/old/3.3.5a/2011_05_24_07_world_sai.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_07_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_05_24_08_world_creature_template.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_08_world_creature_template.sql
index b104e33c004..b104e33c004 100644
--- a/sql/old/3.3.5a/2011_05_24_08_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_08_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_05_24_09_world_sai.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_09_world_sai.sql
index 65d6e94d4cf..65d6e94d4cf 100644
--- a/sql/old/3.3.5a/2011_05_24_09_world_sai.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_09_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_05_24_10_world_sai.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_10_world_sai.sql
index 4715ea65419..4715ea65419 100644
--- a/sql/old/3.3.5a/2011_05_24_10_world_sai.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_10_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_05_24_11_world_sai.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_11_world_sai.sql
index dc4d2a17184..dc4d2a17184 100644
--- a/sql/old/3.3.5a/2011_05_24_11_world_sai.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_11_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_05_24_12_world_sai.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_12_world_sai.sql
index ae823125626..ae823125626 100644
--- a/sql/old/3.3.5a/2011_05_24_12_world_sai.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_12_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_05_24_13_world_sai.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_13_world_sai.sql
index c7265bc609a..c7265bc609a 100644
--- a/sql/old/3.3.5a/2011_05_24_13_world_sai.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_13_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_05_24_14_world_sai.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_14_world_sai.sql
index b5763112a78..b5763112a78 100644
--- a/sql/old/3.3.5a/2011_05_24_14_world_sai.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_14_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_05_24_15_world_sai.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_15_world_sai.sql
index 4baac55d9da..4baac55d9da 100644
--- a/sql/old/3.3.5a/2011_05_24_15_world_sai.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_15_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_05_24_16_world_sai.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_16_world_sai.sql
index 6ef73f53bf4..6ef73f53bf4 100644
--- a/sql/old/3.3.5a/2011_05_24_16_world_sai.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_16_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_05_24_16_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_16_world_spell_proc_event.sql
index 7ddee78f498..7ddee78f498 100644
--- a/sql/old/3.3.5a/2011_05_24_16_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_16_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_05_24_17_world_waypoint_data.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_17_world_waypoint_data.sql
index 6e4324b1895..6e4324b1895 100644
--- a/sql/old/3.3.5a/2011_05_24_17_world_waypoint_data.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_17_world_waypoint_data.sql
diff --git a/sql/old/3.3.5a/2011_05_24_18_world_script_waypoint.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_18_world_script_waypoint.sql
index dd305a60f0b..dd305a60f0b 100644
--- a/sql/old/3.3.5a/2011_05_24_18_world_script_waypoint.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_18_world_script_waypoint.sql
diff --git a/sql/old/3.3.5a/2011_05_24_19_world_script_texts.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_19_world_script_texts.sql
index 9a047ef6439..9a047ef6439 100644
--- a/sql/old/3.3.5a/2011_05_24_19_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_24_19_world_script_texts.sql
diff --git a/sql/old/3.3.5a/2011_05_26_00_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_26_00_world_spell_proc_event.sql
index b0efb6e0faf..b0efb6e0faf 100644
--- a/sql/old/3.3.5a/2011_05_26_00_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_26_00_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_05_27_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_27_00_world_spell_script_names.sql
index 1b0aa6b589b..1b0aa6b589b 100644
--- a/sql/old/3.3.5a/2011_05_27_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_27_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_05_27_01_world_creature_template.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_27_01_world_creature_template.sql
index bdf1c139ebc..bdf1c139ebc 100644
--- a/sql/old/3.3.5a/2011_05_27_01_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_27_01_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_05_27_02_world_spell_script_names.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_27_02_world_spell_script_names.sql
index ab0547d813c..ab0547d813c 100644
--- a/sql/old/3.3.5a/2011_05_27_02_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_27_02_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_05_28_00_world_sai.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_28_00_world_sai.sql
index c238e18ea48..c238e18ea48 100644
--- a/sql/old/3.3.5a/2011_05_28_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_28_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_05_28_01_world_spell_script_names.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_28_01_world_spell_script_names.sql
index fe605b623e9..fe605b623e9 100644
--- a/sql/old/3.3.5a/2011_05_28_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_28_01_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_05_28_02_world_areatrigger_scripts.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_28_02_world_areatrigger_scripts.sql
index 579386a8b4b..579386a8b4b 100644
--- a/sql/old/3.3.5a/2011_05_28_02_world_areatrigger_scripts.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_28_02_world_areatrigger_scripts.sql
diff --git a/sql/old/3.3.5a/2011_05_28_02_world_creature_template.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_28_02_world_creature_template.sql
index 4f21dced22b..4f21dced22b 100644
--- a/sql/old/3.3.5a/2011_05_28_02_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_28_02_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_05_28_02_world_creature_text.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_28_02_world_creature_text.sql
index 99656387163..99656387163 100644
--- a/sql/old/3.3.5a/2011_05_28_02_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_28_02_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2011_05_28_02_world_instance_template.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_28_02_world_instance_template.sql
index ef6d6d31084..ef6d6d31084 100644
--- a/sql/old/3.3.5a/2011_05_28_02_world_instance_template.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_28_02_world_instance_template.sql
diff --git a/sql/old/3.3.5a/2011_05_28_02_world_sai.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_28_02_world_sai.sql
index 88a816636d4..88a816636d4 100644
--- a/sql/old/3.3.5a/2011_05_28_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_28_02_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_05_28_02_world_spell_script_names.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_28_02_world_spell_script_names.sql
index d2236aa4c6b..d2236aa4c6b 100644
--- a/sql/old/3.3.5a/2011_05_28_02_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_28_02_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_05_29_00_world_creature_template.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_29_00_world_creature_template.sql
index c259180f06f..c259180f06f 100644
--- a/sql/old/3.3.5a/2011_05_29_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_29_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_05_29_01_world_spell_linked_spell.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_29_01_world_spell_linked_spell.sql
index 0c694499c4a..0c694499c4a 100644
--- a/sql/old/3.3.5a/2011_05_29_01_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_29_01_world_spell_linked_spell.sql
diff --git a/sql/old/3.3.5a/2011_05_29_02_world_spell_script_names.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_29_02_world_spell_script_names.sql
index ccb6d8c7c34..ccb6d8c7c34 100644
--- a/sql/old/3.3.5a/2011_05_29_02_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_29_02_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_05_30_00_world_creature_template.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_30_00_world_creature_template.sql
index aecce0022e2..aecce0022e2 100644
--- a/sql/old/3.3.5a/2011_05_30_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_30_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_05_30_00_world_creature_text.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_30_00_world_creature_text.sql
index b2ac3d63048..b2ac3d63048 100644
--- a/sql/old/3.3.5a/2011_05_30_00_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_30_00_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2011_05_30_00_world_script_texts.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_30_00_world_script_texts.sql
index 9bb1f482737..9bb1f482737 100644
--- a/sql/old/3.3.5a/2011_05_30_00_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_30_00_world_script_texts.sql
diff --git a/sql/old/3.3.5a/2011_05_30_01_world_conditions.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_30_01_world_conditions.sql
index 14fc7d999d0..14fc7d999d0 100644
--- a/sql/old/3.3.5a/2011_05_30_01_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_30_01_world_conditions.sql
diff --git a/sql/old/3.3.5a/2011_05_30_01_world_creature.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_30_01_world_creature.sql
index 466b6a3729c..466b6a3729c 100644
--- a/sql/old/3.3.5a/2011_05_30_01_world_creature.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_30_01_world_creature.sql
diff --git a/sql/old/3.3.5a/2011_05_30_01_world_spell_script_names.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_30_01_world_spell_script_names.sql
index 4c6af78eb02..4c6af78eb02 100644
--- a/sql/old/3.3.5a/2011_05_30_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_30_01_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_05_30_02_world_spell_linked_spell.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_30_02_world_spell_linked_spell.sql
index 211cfba37f3..211cfba37f3 100644
--- a/sql/old/3.3.5a/2011_05_30_02_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_30_02_world_spell_linked_spell.sql
diff --git a/sql/old/3.3.5a/2011_05_30_03_world_creature_template.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_30_03_world_creature_template.sql
index 5f64cf3dda7..5f64cf3dda7 100644
--- a/sql/old/3.3.5a/2011_05_30_03_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_30_03_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_05_30_04_world_creature_template.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_30_04_world_creature_template.sql
index 140a7f2d7be..140a7f2d7be 100644
--- a/sql/old/3.3.5a/2011_05_30_04_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_30_04_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_05_30_04_world_creature_template_addon.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_30_04_world_creature_template_addon.sql
index c0ab35854be..c0ab35854be 100644
--- a/sql/old/3.3.5a/2011_05_30_04_world_creature_template_addon.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_30_04_world_creature_template_addon.sql
diff --git a/sql/old/3.3.5a/2011_05_30_05_world_gameobject_template.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_30_05_world_gameobject_template.sql
index d75ff69261f..d75ff69261f 100644
--- a/sql/old/3.3.5a/2011_05_30_05_world_gameobject_template.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_30_05_world_gameobject_template.sql
diff --git a/sql/old/3.3.5a/2011_05_31_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_31_00_world_spell_script_names.sql
index 56ddf324bef..56ddf324bef 100644
--- a/sql/old/3.3.5a/2011_05_31_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_31_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_05_31_01_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_31_01_world_spell_bonus_data.sql
index 700f73e7ff7..700f73e7ff7 100644
--- a/sql/old/3.3.5a/2011_05_31_01_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_31_01_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/2011_05_31_02_world_spell_script_names.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_31_02_world_spell_script_names.sql
index 450afc1780f..450afc1780f 100644
--- a/sql/old/3.3.5a/2011_05_31_02_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_05_31_02_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_06_01_00_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_01_00_world_spell_proc_event.sql
index ee1772245b1..ee1772245b1 100644
--- a/sql/old/3.3.5a/2011_06_01_00_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_01_00_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_06_01_01_world_game_event.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_01_01_world_game_event.sql
index e0fb50f4af3..e0fb50f4af3 100644
--- a/sql/old/3.3.5a/2011_06_01_01_world_game_event.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_01_01_world_game_event.sql
diff --git a/sql/old/3.3.5a/2011_06_01_02_world_gameobject_template.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_01_02_world_gameobject_template.sql
index 2108afe6aba..2108afe6aba 100644
--- a/sql/old/3.3.5a/2011_06_01_02_world_gameobject_template.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_01_02_world_gameobject_template.sql
diff --git a/sql/old/3.3.5a/2011_06_02_00_world_gameobject_template.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_02_00_world_gameobject_template.sql
index bd6a01d1e89..bd6a01d1e89 100644
--- a/sql/old/3.3.5a/2011_06_02_00_world_gameobject_template.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_02_00_world_gameobject_template.sql
diff --git a/sql/old/3.3.5a/2011_06_02_01_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_02_01_world_achievement_criteria_data.sql
index d98174cb07d..d98174cb07d 100644
--- a/sql/old/3.3.5a/2011_06_02_01_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_02_01_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_06_02_03_world_disables.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_02_03_world_disables.sql
index ff08c053efc..ff08c053efc 100644
--- a/sql/old/3.3.5a/2011_06_02_03_world_disables.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_02_03_world_disables.sql
diff --git a/sql/old/3.3.5a/2011_06_03_00_world_creature_template.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_03_00_world_creature_template.sql
index 57f8cccd381..57f8cccd381 100644
--- a/sql/old/3.3.5a/2011_06_03_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_03_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_06_03_01_world_spell_script_names.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_03_01_world_spell_script_names.sql
index 92dad52f1dd..92dad52f1dd 100644
--- a/sql/old/3.3.5a/2011_06_03_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_03_01_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_06_04_00_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_04_00_world_creature_loot_template.sql
index ff72ecd3454..ff72ecd3454 100644
--- a/sql/old/3.3.5a/2011_06_04_00_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_04_00_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2011_06_04_00_world_creature_template.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_04_00_world_creature_template.sql
index 1e5d60bdf43..1e5d60bdf43 100644
--- a/sql/old/3.3.5a/2011_06_04_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_04_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_06_05_00_world_spelldifficulty_dbc.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_05_00_world_spelldifficulty_dbc.sql
index ab5dfde83c5..ab5dfde83c5 100644
--- a/sql/old/3.3.5a/2011_06_05_00_world_spelldifficulty_dbc.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_05_00_world_spelldifficulty_dbc.sql
diff --git a/sql/old/3.3.5a/2011_06_07_00_world_misc.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_07_00_world_misc.sql
index 394bd9f617e..394bd9f617e 100644
--- a/sql/old/3.3.5a/2011_06_07_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_07_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_06_08_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_08_00_world_spell_script_names.sql
index 2c51d841505..2c51d841505 100644
--- a/sql/old/3.3.5a/2011_06_08_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_08_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_06_09_00_world_misc.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_09_00_world_misc.sql
index 71706377563..71706377563 100644
--- a/sql/old/3.3.5a/2011_06_09_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_09_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_06_09_01_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_09_01_world_spell_proc_event.sql
index 0e826232293..0e826232293 100644
--- a/sql/old/3.3.5a/2011_06_09_01_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_09_01_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_06_09_02_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_09_02_world_spell_proc_event.sql
index 805cf33b172..805cf33b172 100644
--- a/sql/old/3.3.5a/2011_06_09_02_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_09_02_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_06_09_03_world_spell_script_names.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_09_03_world_spell_script_names.sql
index 4d03236e7cb..4d03236e7cb 100644
--- a/sql/old/3.3.5a/2011_06_09_03_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_09_03_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_06_09_04_world_areatrigger_teleport.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_09_04_world_areatrigger_teleport.sql
index 43c0177f101..43c0177f101 100644
--- a/sql/old/3.3.5a/2011_06_09_04_world_areatrigger_teleport.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_09_04_world_areatrigger_teleport.sql
diff --git a/sql/old/3.3.5a/2011_06_10_00_world_creature_misc.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_10_00_world_creature_misc.sql
index b4814d8514a..b4814d8514a 100644
--- a/sql/old/3.3.5a/2011_06_10_00_world_creature_misc.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_10_00_world_creature_misc.sql
diff --git a/sql/old/3.3.5a/2011_06_10_01_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_10_01_world_spell_proc_event.sql
index 78a9b05fd6f..78a9b05fd6f 100644
--- a/sql/old/3.3.5a/2011_06_10_01_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_10_01_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_06_10_02_world_misc.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_10_02_world_misc.sql
index 15f24715ede..15f24715ede 100644
--- a/sql/old/3.3.5a/2011_06_10_02_world_misc.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_10_02_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_06_10_03_world_misc.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_10_03_world_misc.sql
index a5d15b33595..a5d15b33595 100644
--- a/sql/old/3.3.5a/2011_06_10_03_world_misc.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_10_03_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_06_10_04_world_misc.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_10_04_world_misc.sql
index 8e144292429..8e144292429 100644
--- a/sql/old/3.3.5a/2011_06_10_04_world_misc.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_10_04_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_06_10_05_world_creature_template.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_10_05_world_creature_template.sql
index 17103a3d961..17103a3d961 100644
--- a/sql/old/3.3.5a/2011_06_10_05_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_10_05_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_06_12_00_world_sai.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_12_00_world_sai.sql
index 0f1eac57348..0f1eac57348 100644
--- a/sql/old/3.3.5a/2011_06_12_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_12_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_06_12_00_world_spell_dbc.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_12_00_world_spell_dbc.sql
index 3b072b7b911..3b072b7b911 100644
--- a/sql/old/3.3.5a/2011_06_12_00_world_spell_dbc.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_12_00_world_spell_dbc.sql
diff --git a/sql/old/3.3.5a/2011_06_12_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_12_00_world_spell_script_names.sql
index d4343120d0d..d4343120d0d 100644
--- a/sql/old/3.3.5a/2011_06_12_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_12_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_06_12_01_world_conditions.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_12_01_world_conditions.sql
index 65cbac95761..65cbac95761 100644
--- a/sql/old/3.3.5a/2011_06_12_01_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_12_01_world_conditions.sql
diff --git a/sql/old/3.3.5a/2011_06_12_01_world_spell_script_names.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_12_01_world_spell_script_names.sql
index 6728cd82756..6728cd82756 100644
--- a/sql/old/3.3.5a/2011_06_12_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_12_01_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_06_13_00_world_gameobject_template.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_13_00_world_gameobject_template.sql
index 59a7ae402b6..59a7ae402b6 100644
--- a/sql/old/3.3.5a/2011_06_13_00_world_gameobject_template.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_13_00_world_gameobject_template.sql
diff --git a/sql/old/3.3.5a/2011_06_13_01_world_sai.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_13_01_world_sai.sql
index f1a8d487644..f1a8d487644 100644
--- a/sql/old/3.3.5a/2011_06_13_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_13_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_06_14_00_world_misc.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_14_00_world_misc.sql
index 1300ffb2ae7..1300ffb2ae7 100644
--- a/sql/old/3.3.5a/2011_06_14_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_14_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_06_14_01_world_gameobject_template.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_14_01_world_gameobject_template.sql
index 59b4abec9d9..59b4abec9d9 100644
--- a/sql/old/3.3.5a/2011_06_14_01_world_gameobject_template.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_14_01_world_gameobject_template.sql
diff --git a/sql/old/3.3.5a/2011_06_14_02_world_misc.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_14_02_world_misc.sql
index b81a50cc861..b81a50cc861 100644
--- a/sql/old/3.3.5a/2011_06_14_02_world_misc.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_14_02_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_06_14_03_world_npc_spellclick_spells.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_14_03_world_npc_spellclick_spells.sql
index 400dafdf7de..400dafdf7de 100644
--- a/sql/old/3.3.5a/2011_06_14_03_world_npc_spellclick_spells.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_14_03_world_npc_spellclick_spells.sql
diff --git a/sql/old/3.3.5a/2011_06_14_04_world_misc.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_14_04_world_misc.sql
index ef7aa92da8c..ef7aa92da8c 100644
--- a/sql/old/3.3.5a/2011_06_14_04_world_misc.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_14_04_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_06_15_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_15_00_world_spell_script_names.sql
index be0909d48ae..be0909d48ae 100644
--- a/sql/old/3.3.5a/2011_06_15_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_15_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_06_15_01_world_misc.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_15_01_world_misc.sql
index 4c62234a27f..4c62234a27f 100644
--- a/sql/old/3.3.5a/2011_06_15_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_15_01_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_06_16_01_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_16_01_world_creature_loot_template.sql
index 4aa21dca876..4aa21dca876 100644
--- a/sql/old/3.3.5a/2011_06_16_01_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_16_01_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2011_06_16_02_world_waypoint_data.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_16_02_world_waypoint_data.sql
index 710e0c31d02..710e0c31d02 100644
--- a/sql/old/3.3.5a/2011_06_16_02_world_waypoint_data.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_16_02_world_waypoint_data.sql
diff --git a/sql/old/3.3.5a/2011_06_16_03_world_creature.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_16_03_world_creature.sql
index bcbb6940619..bcbb6940619 100644
--- a/sql/old/3.3.5a/2011_06_16_03_world_creature.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_16_03_world_creature.sql
diff --git a/sql/old/3.3.5a/2011_06_16_04_world_waypoint_data.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_16_04_world_waypoint_data.sql
index 29d252d2cdc..29d252d2cdc 100644
--- a/sql/old/3.3.5a/2011_06_16_04_world_waypoint_data.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_16_04_world_waypoint_data.sql
diff --git a/sql/old/3.3.5a/2011_06_16_05_world_sai.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_16_05_world_sai.sql
index 368aed0d9ab..368aed0d9ab 100644
--- a/sql/old/3.3.5a/2011_06_16_05_world_sai.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_16_05_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_06_17_00_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_00_world_spell_proc_event.sql
index 8d5085b79af..8d5085b79af 100644
--- a/sql/old/3.3.5a/2011_06_17_00_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_00_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_06_17_01_world_script_texts.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_01_world_script_texts.sql
index e974671b054..e974671b054 100644
--- a/sql/old/3.3.5a/2011_06_17_01_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_01_world_script_texts.sql
diff --git a/sql/old/3.3.5a/2011_06_17_02_world_spelldifficulty_dbc.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_02_world_spelldifficulty_dbc.sql
index e4ea3f26eeb..e4ea3f26eeb 100644
--- a/sql/old/3.3.5a/2011_06_17_02_world_spelldifficulty_dbc.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_02_world_spelldifficulty_dbc.sql
diff --git a/sql/old/3.3.5a/2011_06_17_03_world_creature_template.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_03_world_creature_template.sql
index b8e6b4c6639..b8e6b4c6639 100644
--- a/sql/old/3.3.5a/2011_06_17_03_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_03_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_06_17_04_world_spell_script_names.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_04_world_spell_script_names.sql
index 6f26bbc0875..6f26bbc0875 100644
--- a/sql/old/3.3.5a/2011_06_17_04_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_04_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_06_17_05_world_conditions.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_05_world_conditions.sql
index c2428e346f9..c2428e346f9 100644
--- a/sql/old/3.3.5a/2011_06_17_05_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_05_world_conditions.sql
diff --git a/sql/old/3.3.5a/2011_06_17_06_world_creature_equip_template.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_06_world_creature_equip_template.sql
index a4f6d312fb2..a4f6d312fb2 100644
--- a/sql/old/3.3.5a/2011_06_17_06_world_creature_equip_template.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_06_world_creature_equip_template.sql
diff --git a/sql/old/3.3.5a/2011_06_17_07_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_07_world_spell_proc_event.sql
index 8a9f45c30a7..8a9f45c30a7 100644
--- a/sql/old/3.3.5a/2011_06_17_07_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_07_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_06_17_08_world_creature_addon.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_08_world_creature_addon.sql
index f339748d5b7..f339748d5b7 100644
--- a/sql/old/3.3.5a/2011_06_17_08_world_creature_addon.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_08_world_creature_addon.sql
diff --git a/sql/old/3.3.5a/2011_06_17_09_world_misc.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_09_world_misc.sql
index 72a678750f3..72a678750f3 100644
--- a/sql/old/3.3.5a/2011_06_17_09_world_misc.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_09_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_06_17_10_world_creature_template.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_10_world_creature_template.sql
index 8be4550f7bb..8be4550f7bb 100644
--- a/sql/old/3.3.5a/2011_06_17_10_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_10_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_06_17_11_world_waypoint_data.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_11_world_waypoint_data.sql
index d2506404157..d2506404157 100644
--- a/sql/old/3.3.5a/2011_06_17_11_world_waypoint_data.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_11_world_waypoint_data.sql
diff --git a/sql/old/3.3.5a/2011_06_17_12_world_creature_template.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_12_world_creature_template.sql
index 2ff604a056c..2ff604a056c 100644
--- a/sql/old/3.3.5a/2011_06_17_12_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_12_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_06_17_13_world_smart_scripts.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_13_world_smart_scripts.sql
index a2c93c3d632..a2c93c3d632 100644
--- a/sql/old/3.3.5a/2011_06_17_13_world_smart_scripts.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_13_world_smart_scripts.sql
diff --git a/sql/old/3.3.5a/2011_06_17_14_world_sai.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_14_world_sai.sql
index 7bbdae3f898..7bbdae3f898 100644
--- a/sql/old/3.3.5a/2011_06_17_14_world_sai.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_14_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_06_17_15_world_sai.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_15_world_sai.sql
index 46c276999d5..46c276999d5 100644
--- a/sql/old/3.3.5a/2011_06_17_15_world_sai.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_15_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_06_17_16_world_sai.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_16_world_sai.sql
index 670cc7ce322..670cc7ce322 100644
--- a/sql/old/3.3.5a/2011_06_17_16_world_sai.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_16_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_06_17_17_world_creature_template.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_17_world_creature_template.sql
index ac85a855625..ac85a855625 100644
--- a/sql/old/3.3.5a/2011_06_17_17_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_17_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_06_17_18_world_misc.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_18_world_misc.sql
index e8a7ac22de0..e8a7ac22de0 100644
--- a/sql/old/3.3.5a/2011_06_17_18_world_misc.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_18_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_06_17_19_world_misc.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_19_world_misc.sql
index 579f163f960..579f163f960 100644
--- a/sql/old/3.3.5a/2011_06_17_19_world_misc.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_19_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_06_17_20_world_sai.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_20_world_sai.sql
index 2f58a74de01..2f58a74de01 100644
--- a/sql/old/3.3.5a/2011_06_17_20_world_sai.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_20_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_06_17_21_world_misc.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_21_world_misc.sql
index acdd8239f21..acdd8239f21 100644
--- a/sql/old/3.3.5a/2011_06_17_21_world_misc.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_21_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_06_17_22_world_misc.sql b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_22_world_misc.sql
index b3250536ce9..b3250536ce9 100644
--- a/sql/old/3.3.5a/2011_06_17_22_world_misc.sql
+++ b/sql/old/3.3.5a/TDB40_to_TDB41_updates/world/2011_06_17_22_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_07_27_00_auth_account.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/auth/2011_07_27_00_auth_account.sql
index 34393d518fc..34393d518fc 100644
--- a/sql/old/3.3.5a/2011_07_27_00_auth_account.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/auth/2011_07_27_00_auth_account.sql
diff --git a/sql/old/3.3.5a/2011_08_03_00_characters_characters.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/characters/2011_08_03_00_characters_characters.sql
index caa69a8655c..caa69a8655c 100644
--- a/sql/old/3.3.5a/2011_08_03_00_characters_characters.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/characters/2011_08_03_00_characters_characters.sql
diff --git a/sql/old/3.3.5a/2011_06_18_00_world_version.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_18_00_world_version.sql
index b5777669856..b5777669856 100644
--- a/sql/old/3.3.5a/2011_06_18_00_world_version.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_18_00_world_version.sql
diff --git a/sql/old/3.3.5a/2011_06_18_01_world_misc.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_18_01_world_misc.sql
index acdd8239f21..acdd8239f21 100644
--- a/sql/old/3.3.5a/2011_06_18_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_18_01_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_06_18_02_world_sai.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_18_02_world_sai.sql
index fd906730661..fd906730661 100644
--- a/sql/old/3.3.5a/2011_06_18_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_18_02_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_06_18_03_world_misc.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_18_03_world_misc.sql
index 087f46efb2a..087f46efb2a 100644
--- a/sql/old/3.3.5a/2011_06_18_03_world_misc.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_18_03_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_06_18_04_world_conditions.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_18_04_world_conditions.sql
index 4c243a157e7..4c243a157e7 100644
--- a/sql/old/3.3.5a/2011_06_18_04_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_18_04_world_conditions.sql
diff --git a/sql/old/3.3.5a/2011_06_18_05_world_misc.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_18_05_world_misc.sql
index 502bd03a5b6..502bd03a5b6 100644
--- a/sql/old/3.3.5a/2011_06_18_05_world_misc.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_18_05_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_06_19_02_world_creature_template.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_19_02_world_creature_template.sql
index 7a220662d89..7a220662d89 100644
--- a/sql/old/3.3.5a/2011_06_19_02_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_19_02_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_06_19_03_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_19_03_world_achievement_criteria_data.sql
index d46e343864c..d46e343864c 100644
--- a/sql/old/3.3.5a/2011_06_19_03_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_19_03_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_06_19_04_world_creature_template_addon.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_19_04_world_creature_template_addon.sql
index 2e6291cf7ee..2e6291cf7ee 100644
--- a/sql/old/3.3.5a/2011_06_19_04_world_creature_template_addon.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_19_04_world_creature_template_addon.sql
diff --git a/sql/old/3.3.5a/2011_06_19_05_world_creature_onkill_reputation.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_19_05_world_creature_onkill_reputation.sql
index 5d83950eec1..5d83950eec1 100644
--- a/sql/old/3.3.5a/2011_06_19_05_world_creature_onkill_reputation.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_19_05_world_creature_onkill_reputation.sql
diff --git a/sql/old/3.3.5a/2011_06_19_06_world_quest_template.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_19_06_world_quest_template.sql
index 71f79fd861f..71f79fd861f 100644
--- a/sql/old/3.3.5a/2011_06_19_06_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_19_06_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2011_06_19_07_world_misc.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_19_07_world_misc.sql
index f06d7c912b3..f06d7c912b3 100644
--- a/sql/old/3.3.5a/2011_06_19_07_world_misc.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_19_07_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_06_20_00_world_misc.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_20_00_world_misc.sql
index 464325052e0..464325052e0 100644
--- a/sql/old/3.3.5a/2011_06_20_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_20_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_06_20_01_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_20_01_world_achievement_criteria_data.sql
index d13b65d98f3..d13b65d98f3 100644
--- a/sql/old/3.3.5a/2011_06_20_01_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_20_01_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_06_20_02_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_20_02_world_achievement_criteria_data.sql
index 82823227106..82823227106 100644
--- a/sql/old/3.3.5a/2011_06_20_02_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_20_02_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_06_20_03_world_spell_script_names.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_20_03_world_spell_script_names.sql
index 0f0efa3fcae..0f0efa3fcae 100644
--- a/sql/old/3.3.5a/2011_06_20_03_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_20_03_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_06_20_04_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_20_04_world_achievement_criteria_data.sql
index 1de020af638..1de020af638 100644
--- a/sql/old/3.3.5a/2011_06_20_04_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_20_04_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_06_20_05_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_20_05_world_spell_proc_event.sql
index 7d1a3d28fb5..7d1a3d28fb5 100644
--- a/sql/old/3.3.5a/2011_06_20_05_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_20_05_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_06_21_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_21_00_world_spell_script_names.sql
index 76e2ea06d4b..76e2ea06d4b 100644
--- a/sql/old/3.3.5a/2011_06_21_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_21_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_06_21_01_world_spell_script_names.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_21_01_world_spell_script_names.sql
index 087891c0cbf..087891c0cbf 100644
--- a/sql/old/3.3.5a/2011_06_21_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_21_01_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_06_21_02_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_21_02_world_achievement_criteria_data.sql
index 567f355f9cf..567f355f9cf 100644
--- a/sql/old/3.3.5a/2011_06_21_02_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_21_02_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_06_22_00_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_22_00_world_achievement_criteria_data.sql
index 1cc5cfa5d19..1cc5cfa5d19 100644
--- a/sql/old/3.3.5a/2011_06_22_00_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_22_00_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_06_22_01_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_22_01_world_achievement_criteria_data.sql
index e23c9436ec8..e23c9436ec8 100644
--- a/sql/old/3.3.5a/2011_06_22_01_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_22_01_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_06_22_02_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_22_02_world_achievement_criteria_data.sql
index 9834ca79932..9834ca79932 100644
--- a/sql/old/3.3.5a/2011_06_22_02_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_22_02_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_06_22_03_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_22_03_world_achievement_criteria_data.sql
index 2eafd5e4d6e..2eafd5e4d6e 100644
--- a/sql/old/3.3.5a/2011_06_22_03_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_22_03_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_06_23_00_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_23_00_world_achievement_criteria_data.sql
index 9896dee28eb..9896dee28eb 100644
--- a/sql/old/3.3.5a/2011_06_23_00_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_23_00_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_06_23_01_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_23_01_world_achievement_criteria_data.sql
index dab87f3b11d..dab87f3b11d 100644
--- a/sql/old/3.3.5a/2011_06_23_01_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_23_01_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_06_23_02_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_23_02_world_achievement_criteria_data.sql
index ffaacf4c774..ffaacf4c774 100644
--- a/sql/old/3.3.5a/2011_06_23_02_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_23_02_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_06_23_03_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_23_03_world_achievement_criteria_data.sql
index e074433c653..e074433c653 100644
--- a/sql/old/3.3.5a/2011_06_23_03_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_23_03_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_06_23_04_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_23_04_world_achievement_criteria_data.sql
index e827105a94e..e827105a94e 100644
--- a/sql/old/3.3.5a/2011_06_23_04_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_23_04_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_06_23_05_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_23_05_world_achievement_criteria_data.sql
index 6e39da9abb4..6e39da9abb4 100644
--- a/sql/old/3.3.5a/2011_06_23_05_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_23_05_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_06_23_06_world_spell_script_names.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_23_06_world_spell_script_names.sql
index 33d20e467c6..33d20e467c6 100644
--- a/sql/old/3.3.5a/2011_06_23_06_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_23_06_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_06_23_07_world_misc.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_23_07_world_misc.sql
index e160887bfbc..e160887bfbc 100644
--- a/sql/old/3.3.5a/2011_06_23_07_world_misc.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_23_07_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_06_24_00_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_24_00_world_achievement_criteria_data.sql
index 28f15696382..28f15696382 100644
--- a/sql/old/3.3.5a/2011_06_24_00_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_24_00_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_06_24_01_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_24_01_world_achievement_criteria_data.sql
index 1054e710fec..1054e710fec 100644
--- a/sql/old/3.3.5a/2011_06_24_01_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_24_01_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_06_24_02_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_24_02_world_achievement_criteria_data.sql
index 1668e241338..1668e241338 100644
--- a/sql/old/3.3.5a/2011_06_24_02_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_24_02_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_06_24_03_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_24_03_world_achievement_criteria_data.sql
index be782da4967..be782da4967 100644
--- a/sql/old/3.3.5a/2011_06_24_03_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_24_03_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_06_24_04_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_24_04_world_achievement_criteria_data.sql
index 056450445e2..056450445e2 100644
--- a/sql/old/3.3.5a/2011_06_24_04_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_24_04_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_06_24_05_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_24_05_world_spell_bonus_data.sql
index 58ae76c3100..58ae76c3100 100644
--- a/sql/old/3.3.5a/2011_06_24_05_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_24_05_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/2011_06_24_06_world_spell_script_names.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_24_06_world_spell_script_names.sql
index 5c7b6e9bfc0..5c7b6e9bfc0 100644
--- a/sql/old/3.3.5a/2011_06_24_06_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_24_06_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_06_24_07_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_24_07_world_achievement_criteria_data.sql
index cb76cbb1d4a..cb76cbb1d4a 100644
--- a/sql/old/3.3.5a/2011_06_24_07_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_24_07_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_06_24_08_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_24_08_world_achievement_criteria_data.sql
index 4e64ce26ae1..4e64ce26ae1 100644
--- a/sql/old/3.3.5a/2011_06_24_08_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_24_08_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_06_25_00_world_spell_dbc.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_00_world_spell_dbc.sql
index 782a29db90d..782a29db90d 100644
--- a/sql/old/3.3.5a/2011_06_25_00_world_spell_dbc.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_00_world_spell_dbc.sql
diff --git a/sql/old/3.3.5a/2011_06_25_01_world_script_texts.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_01_world_script_texts.sql
index 8b0a68f41c0..8b0a68f41c0 100644
--- a/sql/old/3.3.5a/2011_06_25_01_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_01_world_script_texts.sql
diff --git a/sql/old/3.3.5a/2011_06_25_02_world_misc.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_02_world_misc.sql
index a30d8492262..a30d8492262 100644
--- a/sql/old/3.3.5a/2011_06_25_02_world_misc.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_02_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_06_25_03_world_sai.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_03_world_sai.sql
index 61ab8ff2b88..61ab8ff2b88 100644
--- a/sql/old/3.3.5a/2011_06_25_03_world_sai.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_03_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_06_25_04_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_04_world_achievement_criteria_data.sql
index 66a9ff7f115..66a9ff7f115 100644
--- a/sql/old/3.3.5a/2011_06_25_04_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_04_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_06_25_05_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_05_world_achievement_criteria_data.sql
index c67289b76a5..c67289b76a5 100644
--- a/sql/old/3.3.5a/2011_06_25_05_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_05_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_06_25_06_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_06_world_achievement_criteria_data.sql
index 3fa82b56f43..3fa82b56f43 100644
--- a/sql/old/3.3.5a/2011_06_25_06_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_06_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_06_25_07_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_07_world_achievement_criteria_data.sql
index f714e984a19..f714e984a19 100644
--- a/sql/old/3.3.5a/2011_06_25_07_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_07_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_06_25_08_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_08_world_achievement_criteria_data.sql
index fd2567ed526..fd2567ed526 100644
--- a/sql/old/3.3.5a/2011_06_25_08_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_08_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_06_25_09_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_09_world_achievement_criteria_data.sql
index 6a2681b5e71..6a2681b5e71 100644
--- a/sql/old/3.3.5a/2011_06_25_09_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_09_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_06_25_10_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_10_world_achievement_criteria_data.sql
index 1fddea0ad52..1fddea0ad52 100644
--- a/sql/old/3.3.5a/2011_06_25_10_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_10_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_06_25_11_world_creature_template.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_11_world_creature_template.sql
index a0a41fb74c0..a0a41fb74c0 100644
--- a/sql/old/3.3.5a/2011_06_25_11_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_11_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_06_25_12_world_trinity_string.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_12_world_trinity_string.sql
index cb4cbbe4a95..cb4cbbe4a95 100644
--- a/sql/old/3.3.5a/2011_06_25_12_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_12_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/2011_06_25_13_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_13_world_achievement_criteria_data.sql
index a7a9de5cbdf..a7a9de5cbdf 100644
--- a/sql/old/3.3.5a/2011_06_25_13_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_13_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_06_25_14_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_14_world_spell_proc_event.sql
index b78a9c087a9..b78a9c087a9 100644
--- a/sql/old/3.3.5a/2011_06_25_14_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_14_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_06_25_15_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_15_world_achievement_criteria_data.sql
index 244d572253c..244d572253c 100644
--- a/sql/old/3.3.5a/2011_06_25_15_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_15_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_06_25_16_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_16_world_spell_proc_event.sql
index e7fae8f6835..e7fae8f6835 100644
--- a/sql/old/3.3.5a/2011_06_25_16_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_25_16_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_06_26_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_26_00_world_spell_script_names.sql
index 0a7323b14bd..0a7323b14bd 100644
--- a/sql/old/3.3.5a/2011_06_26_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_26_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_06_26_01_world_command.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_26_01_world_command.sql
index d5ac88cfc4c..d5ac88cfc4c 100644
--- a/sql/old/3.3.5a/2011_06_26_01_world_command.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_26_01_world_command.sql
diff --git a/sql/old/3.3.5a/2011_06_26_02_world_spell_script_names.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_26_02_world_spell_script_names.sql
index cde210b091c..cde210b091c 100644
--- a/sql/old/3.3.5a/2011_06_26_02_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_26_02_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_06_26_03_world_spell_dbc.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_26_03_world_spell_dbc.sql
index d618976707c..d618976707c 100644
--- a/sql/old/3.3.5a/2011_06_26_03_world_spell_dbc.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_26_03_world_spell_dbc.sql
diff --git a/sql/old/3.3.5a/2011_06_26_04_world_spell_proc.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_26_04_world_spell_proc.sql
index 3aa9131ba2c..3aa9131ba2c 100644
--- a/sql/old/3.3.5a/2011_06_26_04_world_spell_proc.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_26_04_world_spell_proc.sql
diff --git a/sql/old/3.3.5a/2011_06_26_05_world_command.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_26_05_world_command.sql
index 6946985b50a..6946985b50a 100644
--- a/sql/old/3.3.5a/2011_06_26_05_world_command.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_26_05_world_command.sql
diff --git a/sql/old/3.3.5a/2011_06_26_06_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_26_06_world_achievement_criteria_data.sql
index b9cd7b9f7a0..b9cd7b9f7a0 100644
--- a/sql/old/3.3.5a/2011_06_26_06_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_26_06_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_06_26_07_world_spell_script_names.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_26_07_world_spell_script_names.sql
index 137a14ee485..137a14ee485 100644
--- a/sql/old/3.3.5a/2011_06_26_07_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_26_07_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_06_27_00_world_sai.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_27_00_world_sai.sql
index 35973836e88..35973836e88 100644
--- a/sql/old/3.3.5a/2011_06_27_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_27_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_06_27_01_world_spell_script_names.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_27_01_world_spell_script_names.sql
index 9f0f34526c8..9f0f34526c8 100644
--- a/sql/old/3.3.5a/2011_06_27_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_27_01_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_06_27_02_world_vehicle_scaling_info.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_27_02_world_vehicle_scaling_info.sql
index 748b0f7c07d..748b0f7c07d 100644
--- a/sql/old/3.3.5a/2011_06_27_02_world_vehicle_scaling_info.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_27_02_world_vehicle_scaling_info.sql
diff --git a/sql/old/3.3.5a/2011_06_27_03_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_27_03_world_achievement_criteria_data.sql
index 58623a56ad1..58623a56ad1 100644
--- a/sql/old/3.3.5a/2011_06_27_03_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_27_03_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_06_27_04_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_27_04_world_achievement_criteria_data.sql
index da4ab96ec04..da4ab96ec04 100644
--- a/sql/old/3.3.5a/2011_06_27_04_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_27_04_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_06_27_05_world_areatrigger_teleport.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_27_05_world_areatrigger_teleport.sql
index 01bb958320e..01bb958320e 100644
--- a/sql/old/3.3.5a/2011_06_27_05_world_areatrigger_teleport.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_27_05_world_areatrigger_teleport.sql
diff --git a/sql/old/3.3.5a/2011_06_27_06_world_command.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_27_06_world_command.sql
index 7b3f1e5765f..7b3f1e5765f 100644
--- a/sql/old/3.3.5a/2011_06_27_06_world_command.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_27_06_world_command.sql
diff --git a/sql/old/3.3.5a/2011_06_27_06_world_creature.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_27_06_world_creature.sql
index e4e6d3c98ce..e4e6d3c98ce 100644
--- a/sql/old/3.3.5a/2011_06_27_06_world_creature.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_27_06_world_creature.sql
diff --git a/sql/old/3.3.5a/2011_06_27_07_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_27_07_world_achievement_criteria_data.sql
index 7498bb0b972..7498bb0b972 100644
--- a/sql/old/3.3.5a/2011_06_27_07_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_27_07_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_06_28_00_world_script_texts.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_28_00_world_script_texts.sql
index 61e14a9c297..61e14a9c297 100644
--- a/sql/old/3.3.5a/2011_06_28_00_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_28_00_world_script_texts.sql
diff --git a/sql/old/3.3.5a/2011_06_28_01_world_spelldifficulty_dbc.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_28_01_world_spelldifficulty_dbc.sql
index 9f98c1b77e5..9f98c1b77e5 100644
--- a/sql/old/3.3.5a/2011_06_28_01_world_spelldifficulty_dbc.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_28_01_world_spelldifficulty_dbc.sql
diff --git a/sql/old/3.3.5a/2011_06_29_00_world_command.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_29_00_world_command.sql
index 0b3c0fb485c..0b3c0fb485c 100644
--- a/sql/old/3.3.5a/2011_06_29_00_world_command.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_29_00_world_command.sql
diff --git a/sql/old/3.3.5a/2011_06_30_00_world_creature_text.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_30_00_world_creature_text.sql
index f8e815404fa..f8e815404fa 100644
--- a/sql/old/3.3.5a/2011_06_30_00_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_30_00_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2011_06_30_01_world_sai.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_30_01_world_sai.sql
index 69ee25148a4..69ee25148a4 100644
--- a/sql/old/3.3.5a/2011_06_30_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_06_30_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_07_01_00_world_waypoint_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_01_00_world_waypoint_data.sql
index fba07a6c517..fba07a6c517 100644
--- a/sql/old/3.3.5a/2011_07_01_00_world_waypoint_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_01_00_world_waypoint_data.sql
diff --git a/sql/old/3.3.5a/2011_07_01_01_world_item_template.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_01_01_world_item_template.sql
index 40dffd3cc47..40dffd3cc47 100644
--- a/sql/old/3.3.5a/2011_07_01_01_world_item_template.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_01_01_world_item_template.sql
diff --git a/sql/old/3.3.5a/2011_07_01_02_world_misc.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_01_02_world_misc.sql
index ad831b12949..ad831b12949 100644
--- a/sql/old/3.3.5a/2011_07_01_02_world_misc.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_01_02_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_07_01_03_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_01_03_world_achievement_criteria_data.sql
index c5a71295a8f..c5a71295a8f 100644
--- a/sql/old/3.3.5a/2011_07_01_03_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_01_03_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_07_01_03_world_disables.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_01_03_world_disables.sql
index d3572f54cd4..d3572f54cd4 100644
--- a/sql/old/3.3.5a/2011_07_01_03_world_disables.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_01_03_world_disables.sql
diff --git a/sql/old/3.3.5a/2011_07_02_00_world_areatrigger_scripts.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_02_00_world_areatrigger_scripts.sql
index 6a9a93e59c6..6a9a93e59c6 100644
--- a/sql/old/3.3.5a/2011_07_02_00_world_areatrigger_scripts.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_02_00_world_areatrigger_scripts.sql
diff --git a/sql/old/3.3.5a/2011_07_02_00_world_instance_misc.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_02_00_world_instance_misc.sql
index f8d37d99385..f8d37d99385 100644
--- a/sql/old/3.3.5a/2011_07_02_00_world_instance_misc.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_02_00_world_instance_misc.sql
diff --git a/sql/old/3.3.5a/2011_07_02_01_world_creature_addon.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_02_01_world_creature_addon.sql
index 19e22f5e654..19e22f5e654 100644
--- a/sql/old/3.3.5a/2011_07_02_01_world_creature_addon.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_02_01_world_creature_addon.sql
diff --git a/sql/old/3.3.5a/2011_07_02_01_world_game_tele.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_02_01_world_game_tele.sql
index 47f1d6fa29b..47f1d6fa29b 100644
--- a/sql/old/3.3.5a/2011_07_02_01_world_game_tele.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_02_01_world_game_tele.sql
diff --git a/sql/old/3.3.5a/2011_07_04_00_world_script_texts.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_04_00_world_script_texts.sql
index fb954ffa448..fb954ffa448 100644
--- a/sql/old/3.3.5a/2011_07_04_00_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_04_00_world_script_texts.sql
diff --git a/sql/old/3.3.5a/2011_07_04_01_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_04_01_world_spell_proc_event.sql
index 9b716e918a6..9b716e918a6 100644
--- a/sql/old/3.3.5a/2011_07_04_01_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_04_01_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_07_04_02_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_04_02_world_spell_proc_event.sql
index f848fc52279..f848fc52279 100644
--- a/sql/old/3.3.5a/2011_07_04_02_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_04_02_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_07_04_03_world_trinity_string.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_04_03_world_trinity_string.sql
index 322c8ab2877..322c8ab2877 100644
--- a/sql/old/3.3.5a/2011_07_04_03_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_04_03_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/2011_07_04_04_world_creature_ai_scripts.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_04_04_world_creature_ai_scripts.sql
index 19d97d48a12..19d97d48a12 100644
--- a/sql/old/3.3.5a/2011_07_04_04_world_creature_ai_scripts.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_04_04_world_creature_ai_scripts.sql
diff --git a/sql/old/3.3.5a/2011_07_05_00_world_areatrigger_teleport.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_05_00_world_areatrigger_teleport.sql
index b5ee4cecb87..b5ee4cecb87 100644
--- a/sql/old/3.3.5a/2011_07_05_00_world_areatrigger_teleport.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_05_00_world_areatrigger_teleport.sql
diff --git a/sql/old/3.3.5a/2011_07_05_01_world_reputation_rate.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_05_01_world_reputation_rate.sql
index 798f6106f72..798f6106f72 100644
--- a/sql/old/3.3.5a/2011_07_05_01_world_reputation_rate.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_05_01_world_reputation_rate.sql
diff --git a/sql/old/3.3.5a/2011_07_05_02_world_reputation_rate.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_05_02_world_reputation_rate.sql
index bb907ba2cea..bb907ba2cea 100644
--- a/sql/old/3.3.5a/2011_07_05_02_world_reputation_rate.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_05_02_world_reputation_rate.sql
diff --git a/sql/old/3.3.5a/2011_07_05_03_world_go_script_names.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_05_03_world_go_script_names.sql
index 154b886c2f0..154b886c2f0 100644
--- a/sql/old/3.3.5a/2011_07_05_03_world_go_script_names.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_05_03_world_go_script_names.sql
diff --git a/sql/old/3.3.5a/2011_07_05_03_world_misc.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_05_03_world_misc.sql
index ab7b6669f83..ab7b6669f83 100644
--- a/sql/old/3.3.5a/2011_07_05_03_world_misc.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_05_03_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_07_05_04_world_areatrigger_teleport.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_05_04_world_areatrigger_teleport.sql
index 2e9ecda4ba8..2e9ecda4ba8 100644
--- a/sql/old/3.3.5a/2011_07_05_04_world_areatrigger_teleport.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_05_04_world_areatrigger_teleport.sql
diff --git a/sql/old/3.3.5a/2011_07_06_00_world_sai.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_06_00_world_sai.sql
index 4eb41801126..4eb41801126 100644
--- a/sql/old/3.3.5a/2011_07_06_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_06_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_07_06_01_world_misc.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_06_01_world_misc.sql
index 10633a55a6f..10633a55a6f 100644
--- a/sql/old/3.3.5a/2011_07_06_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_06_01_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_07_07_00_world_creature.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_07_00_world_creature.sql
index 009a9fb8083..009a9fb8083 100644
--- a/sql/old/3.3.5a/2011_07_07_00_world_creature.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_07_00_world_creature.sql
diff --git a/sql/old/3.3.5a/2011_07_07_01_world_misc.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_07_01_world_misc.sql
index 4dc0388c55a..4dc0388c55a 100644
--- a/sql/old/3.3.5a/2011_07_07_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_07_01_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_07_07_01_world_spell_script_names.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_07_01_world_spell_script_names.sql
index 50483434dc0..50483434dc0 100644
--- a/sql/old/3.3.5a/2011_07_07_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_07_01_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_07_07_02_world_creature_template.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_07_02_world_creature_template.sql
index 401a7ad61a0..401a7ad61a0 100644
--- a/sql/old/3.3.5a/2011_07_07_02_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_07_02_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_07_08_00_world_conditions.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_08_00_world_conditions.sql
index ed723c1d250..ed723c1d250 100644
--- a/sql/old/3.3.5a/2011_07_08_00_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_08_00_world_conditions.sql
diff --git a/sql/old/3.3.5a/2011_07_15_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_15_00_world_spell_script_names.sql
index 0afcbebe864..0afcbebe864 100644
--- a/sql/old/3.3.5a/2011_07_15_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_15_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_07_15_01_world_spell_script_names.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_15_01_world_spell_script_names.sql
index c6b334c179c..c6b334c179c 100644
--- a/sql/old/3.3.5a/2011_07_15_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_15_01_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_07_15_02_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_15_02_world_spell_bonus_data.sql
index 004f3597df2..004f3597df2 100644
--- a/sql/old/3.3.5a/2011_07_15_02_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_15_02_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/2011_07_15_03_world_creature_template.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_15_03_world_creature_template.sql
index 610cc916cfd..610cc916cfd 100644
--- a/sql/old/3.3.5a/2011_07_15_03_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_15_03_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_07_15_04_world_spell_script_names.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_15_04_world_spell_script_names.sql
index 7fa8011ded5..7fa8011ded5 100644
--- a/sql/old/3.3.5a/2011_07_15_04_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_15_04_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_07_15_05_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_15_05_world_spell_bonus_data.sql
index 4fab7dec63f..4fab7dec63f 100644
--- a/sql/old/3.3.5a/2011_07_15_05_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_15_05_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/2011_07_21_00_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_21_00_world_spell_proc_event.sql
index 8cfcdd5e6cb..8cfcdd5e6cb 100644
--- a/sql/old/3.3.5a/2011_07_21_00_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_21_00_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_07_21_01_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_21_01_world_spell_proc_event.sql
index fa372615617..fa372615617 100644
--- a/sql/old/3.3.5a/2011_07_21_01_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_21_01_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_07_22_00_world_creature_template.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_22_00_world_creature_template.sql
index db66c8dc424..db66c8dc424 100644
--- a/sql/old/3.3.5a/2011_07_22_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_22_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_07_22_01_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_22_01_world_spell_bonus_data.sql
index bd70f6e5e45..bd70f6e5e45 100644
--- a/sql/old/3.3.5a/2011_07_22_01_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_22_01_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/2011_07_23_00_world_areatrigger_scripts.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_23_00_world_areatrigger_scripts.sql
index b3630999865..b3630999865 100644
--- a/sql/old/3.3.5a/2011_07_23_00_world_areatrigger_scripts.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_23_00_world_areatrigger_scripts.sql
diff --git a/sql/old/3.3.5a/2011_07_24_00_world_npc_vendor.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_24_00_world_npc_vendor.sql
index 46090f15321..46090f15321 100644
--- a/sql/old/3.3.5a/2011_07_24_00_world_npc_vendor.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_24_00_world_npc_vendor.sql
diff --git a/sql/old/3.3.5a/2011_07_27_00_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_27_00_world_achievement_criteria_data.sql
index a573b1baf46..a573b1baf46 100644
--- a/sql/old/3.3.5a/2011_07_27_00_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_27_00_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_07_27_01_world_trinity_string.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_27_01_world_trinity_string.sql
index 753e17249f2..753e17249f2 100644
--- a/sql/old/3.3.5a/2011_07_27_01_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_27_01_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/2011_07_29_00_world_gameobject_template.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_29_00_world_gameobject_template.sql
index 5133ec4da1f..5133ec4da1f 100644
--- a/sql/old/3.3.5a/2011_07_29_00_world_gameobject_template.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_07_29_00_world_gameobject_template.sql
diff --git a/sql/old/3.3.5a/2011_08_01_00_world_sai.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_01_00_world_sai.sql
index 03e4152ccfd..03e4152ccfd 100644
--- a/sql/old/3.3.5a/2011_08_01_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_01_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_08_01_01_world_gossips.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_01_01_world_gossips.sql
index dbe2bc92519..dbe2bc92519 100644
--- a/sql/old/3.3.5a/2011_08_01_01_world_gossips.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_01_01_world_gossips.sql
diff --git a/sql/old/3.3.5a/2011_08_01_01_world_misc.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_01_01_world_misc.sql
index 147f8fcf5af..147f8fcf5af 100644
--- a/sql/old/3.3.5a/2011_08_01_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_01_01_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_08_01_01_world_waypoints.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_01_01_world_waypoints.sql
index d12c91bded5..d12c91bded5 100644
--- a/sql/old/3.3.5a/2011_08_01_01_world_waypoints.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_01_01_world_waypoints.sql
diff --git a/sql/old/3.3.5a/2011_08_01_02_world_creature_text.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_01_02_world_creature_text.sql
index 10db087bf33..10db087bf33 100644
--- a/sql/old/3.3.5a/2011_08_01_02_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_01_02_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2011_08_01_03_world_spell_misc.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_01_03_world_spell_misc.sql
index 0c9b2c3677f..0c9b2c3677f 100644
--- a/sql/old/3.3.5a/2011_08_01_03_world_spell_misc.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_01_03_world_spell_misc.sql
diff --git a/sql/old/3.3.5a/2011_08_06_00_world_creature_template.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_06_00_world_creature_template.sql
index 1bf46fce8c3..1bf46fce8c3 100644
--- a/sql/old/3.3.5a/2011_08_06_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_06_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_08_06_01_world_misc.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_06_01_world_misc.sql
index dc11dd27c23..dc11dd27c23 100644
--- a/sql/old/3.3.5a/2011_08_06_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_06_01_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_08_06_02_world_misc.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_06_02_world_misc.sql
index 9479a6824f2..9479a6824f2 100644
--- a/sql/old/3.3.5a/2011_08_06_02_world_misc.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_06_02_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_08_06_03_world_command.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_06_03_world_command.sql
index 7c627b1a94c..7c627b1a94c 100644
--- a/sql/old/3.3.5a/2011_08_06_03_world_command.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_06_03_world_command.sql
diff --git a/sql/old/3.3.5a/2011_08_06_04_world_misc.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_06_04_world_misc.sql
index d979fbe39f5..d979fbe39f5 100644
--- a/sql/old/3.3.5a/2011_08_06_04_world_misc.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_06_04_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_08_07_00_world_gameobject_loot_template.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_07_00_world_gameobject_loot_template.sql
index 8c6ebc7e83f..8c6ebc7e83f 100644
--- a/sql/old/3.3.5a/2011_08_07_00_world_gameobject_loot_template.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_07_00_world_gameobject_loot_template.sql
diff --git a/sql/old/3.3.5a/2011_08_07_01_world_reference_loot_template.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_07_01_world_reference_loot_template.sql
index 51b1dd41dab..51b1dd41dab 100644
--- a/sql/old/3.3.5a/2011_08_07_01_world_reference_loot_template.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_07_01_world_reference_loot_template.sql
diff --git a/sql/old/3.3.5a/2011_08_07_02_world_spawns.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_07_02_world_spawns.sql
index c11b1d42f96..c11b1d42f96 100644
--- a/sql/old/3.3.5a/2011_08_07_02_world_spawns.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_07_02_world_spawns.sql
diff --git a/sql/old/3.3.5a/2011_08_07_03_world_sai.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_07_03_world_sai.sql
index b4c5c6813f8..b4c5c6813f8 100644
--- a/sql/old/3.3.5a/2011_08_07_03_world_sai.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_07_03_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_08_07_04_world_misc.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_07_04_world_misc.sql
index aa37e60aca5..aa37e60aca5 100644
--- a/sql/old/3.3.5a/2011_08_07_04_world_misc.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_07_04_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_08_07_05_world_spell_misc.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_07_05_world_spell_misc.sql
index 1d26731309f..1d26731309f 100644
--- a/sql/old/3.3.5a/2011_08_07_05_world_spell_misc.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_07_05_world_spell_misc.sql
diff --git a/sql/old/3.3.5a/2011_08_09_00_world_prospecting_loot_template.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_09_00_world_prospecting_loot_template.sql
index 5496b87812d..5496b87812d 100644
--- a/sql/old/3.3.5a/2011_08_09_00_world_prospecting_loot_template.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_09_00_world_prospecting_loot_template.sql
diff --git a/sql/old/3.3.5a/2011_08_09_01_world_misc.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_09_01_world_misc.sql
index 9669b482bf2..9669b482bf2 100644
--- a/sql/old/3.3.5a/2011_08_09_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_09_01_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_08_12_00_world_creature_template.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_12_00_world_creature_template.sql
index 190e3ce1903..190e3ce1903 100644
--- a/sql/old/3.3.5a/2011_08_12_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_12_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_08_13_00_world_trinity_string.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_13_00_world_trinity_string.sql
index 09875ee9527..09875ee9527 100644
--- a/sql/old/3.3.5a/2011_08_13_00_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_13_00_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/2011_08_13_01_world_command.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_13_01_world_command.sql
index 850ccb335d4..850ccb335d4 100644
--- a/sql/old/3.3.5a/2011_08_13_01_world_command.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_13_01_world_command.sql
diff --git a/sql/old/3.3.5a/2011_08_13_02_world_creature_scriptname.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_13_02_world_creature_scriptname.sql
index c8b85c37f66..c8b85c37f66 100644
--- a/sql/old/3.3.5a/2011_08_13_02_world_creature_scriptname.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_13_02_world_creature_scriptname.sql
diff --git a/sql/old/3.3.5a/2011_08_15_00_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_15_00_world_creature_loot_template.sql
index a5bfd7c44a6..a5bfd7c44a6 100644
--- a/sql/old/3.3.5a/2011_08_15_00_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_15_00_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2011_08_18_00_world_vehicle_template_accessory.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_18_00_world_vehicle_template_accessory.sql
index 2659570e464..2659570e464 100644
--- a/sql/old/3.3.5a/2011_08_18_00_world_vehicle_template_accessory.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_18_00_world_vehicle_template_accessory.sql
diff --git a/sql/old/3.3.5a/2011_08_18_01_world_misc.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_18_01_world_misc.sql
index 0a01fc87763..eaaeb6e505b 100644
--- a/sql/old/3.3.5a/2011_08_18_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_18_01_world_misc.sql
@@ -1,4 +1,4 @@
-UPDATE `creature_template` SET `npcflag`=`npcflag`|0x1000000,`VehicleId`=165,`spell1`=54420,`AIName`='SmartAI',`InhabitType`=5 WHERE `entry`=29403;
+UPDATE `creature_template` SET `npcflag`=`npcflag`|0x1000000,`VehicleId`=165,`spell1`=54420,`InhabitType`=5 WHERE `entry`=29403;
DELETE FROM `npc_spellclick_spells` WHERE `npc_entry`=29403;
INSERT INTO `npc_spellclick_spells` VALUES
(29403,49641,0,0,0,1,0,0,0);
diff --git a/sql/old/3.3.5a/2011_08_18_02_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_18_02_world_achievement_criteria_data.sql
index 6c52e685054..6c52e685054 100644
--- a/sql/old/3.3.5a/2011_08_18_02_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_18_02_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_08_18_03_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_18_03_world_achievement_criteria_data.sql
index 91e9715006d..91e9715006d 100644
--- a/sql/old/3.3.5a/2011_08_18_03_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_18_03_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_08_18_04_world_spell_script_names.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_18_04_world_spell_script_names.sql
index a5ad44c5659..a5ad44c5659 100644
--- a/sql/old/3.3.5a/2011_08_18_04_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_18_04_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_08_19_01_world_spell_script_names.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_19_01_world_spell_script_names.sql
index 2a54a117c2c..2a54a117c2c 100644
--- a/sql/old/3.3.5a/2011_08_19_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_19_01_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_08_19_02_world_spell_script_names.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_19_02_world_spell_script_names.sql
index 8035a77d778..8035a77d778 100644
--- a/sql/old/3.3.5a/2011_08_19_02_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_19_02_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_08_19_03_world_spell_script_names.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_19_03_world_spell_script_names.sql
index adda3f57015..adda3f57015 100644
--- a/sql/old/3.3.5a/2011_08_19_03_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_19_03_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_08_20_00_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_20_00_world_achievement_criteria_data.sql
index 50cc98f9661..50cc98f9661 100644
--- a/sql/old/3.3.5a/2011_08_20_00_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_20_00_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_08_21_00_world_command.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_21_00_world_command.sql
index f0b91cd3dfe..f0b91cd3dfe 100644
--- a/sql/old/3.3.5a/2011_08_21_00_world_command.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_21_00_world_command.sql
diff --git a/sql/old/3.3.5a/2011_08_21_01_world_command.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_21_01_world_command.sql
index 0d814210871..0d814210871 100644
--- a/sql/old/3.3.5a/2011_08_21_01_world_command.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_21_01_world_command.sql
diff --git a/sql/old/3.3.5a/2011_08_22_00_world_trinity_string.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_22_00_world_trinity_string.sql
index b6737833a65..b6737833a65 100644
--- a/sql/old/3.3.5a/2011_08_22_00_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_22_00_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/2011_08_23_00_world_creature_equip_template.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_23_00_world_creature_equip_template.sql
index dc388b96f7c..dc388b96f7c 100644
--- a/sql/old/3.3.5a/2011_08_23_00_world_creature_equip_template.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_23_00_world_creature_equip_template.sql
diff --git a/sql/old/3.3.5a/2011_08_24_00_world_game_event.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_24_00_world_game_event.sql
index bc47a2f35f8..bc47a2f35f8 100644
--- a/sql/old/3.3.5a/2011_08_24_00_world_game_event.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_24_00_world_game_event.sql
diff --git a/sql/old/3.3.5a/2011_08_24_01_world_conditions.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_24_01_world_conditions.sql
index 7c2eb323733..7c2eb323733 100644
--- a/sql/old/3.3.5a/2011_08_24_01_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_24_01_world_conditions.sql
diff --git a/sql/old/3.3.5a/2011_08_24_01_world_spell_script_names.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_24_01_world_spell_script_names.sql
index 5370158f1a5..5370158f1a5 100644
--- a/sql/old/3.3.5a/2011_08_24_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_24_01_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_08_24_02_world_spell_script_names.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_24_02_world_spell_script_names.sql
index 1799d408747..1799d408747 100644
--- a/sql/old/3.3.5a/2011_08_24_02_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_24_02_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_08_24_03_world_access_requirement.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_24_03_world_access_requirement.sql
index 96fc93e7804..96fc93e7804 100644
--- a/sql/old/3.3.5a/2011_08_24_03_world_access_requirement.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_24_03_world_access_requirement.sql
diff --git a/sql/old/3.3.5a/2011_08_24_04_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_24_04_world_achievement_criteria_data.sql
index 1eb6e3f5f36..1eb6e3f5f36 100644
--- a/sql/old/3.3.5a/2011_08_24_04_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_24_04_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_08_24_05_world_creature_template.sql b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_24_05_world_creature_template.sql
index dfd98417df5..dfd98417df5 100644
--- a/sql/old/3.3.5a/2011_08_24_05_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB41_to_TDB42_updates/world/2011_08_24_05_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_09_05_00_characters_character_quest_status.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/characters/2011_09_05_00_characters_character_quest_status.sql
index 08ee801c9d1..08ee801c9d1 100644
--- a/sql/old/3.3.5a/2011_09_05_00_characters_character_quest_status.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/characters/2011_09_05_00_characters_character_quest_status.sql
diff --git a/sql/old/3.3.5a/2011_09_28_00_characters_characters.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/characters/2011_09_28_00_characters_characters.sql
index 800afc60622..800afc60622 100644
--- a/sql/old/3.3.5a/2011_09_28_00_characters_characters.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/characters/2011_09_28_00_characters_characters.sql
diff --git a/sql/old/3.3.5a/2011_10_09_00_characters_character_aura.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/characters/2011_10_09_00_characters_character_aura.sql
index a8223fa06d6..a8223fa06d6 100644
--- a/sql/old/3.3.5a/2011_10_09_00_characters_character_aura.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/characters/2011_10_09_00_characters_character_aura.sql
diff --git a/sql/old/3.3.5a/2011_08_27_00_world_version.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_08_27_00_world_version.sql
index 47acc763681..47acc763681 100644
--- a/sql/old/3.3.5a/2011_08_27_00_world_version.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_08_27_00_world_version.sql
diff --git a/sql/old/3.3.5a/2011_08_27_01_world_spell_script_names.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_08_27_01_world_spell_script_names.sql
index 7ca3c9f4d64..7ca3c9f4d64 100644
--- a/sql/old/3.3.5a/2011_08_27_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_08_27_01_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_08_28_00_world_instance_misc.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_08_28_00_world_instance_misc.sql
index 751321d1187..751321d1187 100644
--- a/sql/old/3.3.5a/2011_08_28_00_world_instance_misc.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_08_28_00_world_instance_misc.sql
diff --git a/sql/old/3.3.5a/2011_08_29_00_world_instance_misc.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_08_29_00_world_instance_misc.sql
index 51a5e651d74..51a5e651d74 100644
--- a/sql/old/3.3.5a/2011_08_29_00_world_instance_misc.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_08_29_00_world_instance_misc.sql
diff --git a/sql/old/3.3.5a/2011_08_30_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_08_30_00_world_spell_script_names.sql
index ebfc8f0cc6e..ebfc8f0cc6e 100644
--- a/sql/old/3.3.5a/2011_08_30_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_08_30_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_09_01_00_world_disables.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_01_00_world_disables.sql
index ee952215204..ee952215204 100644
--- a/sql/old/3.3.5a/2011_09_01_00_world_disables.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_01_00_world_disables.sql
diff --git a/sql/old/3.3.5a/2011_09_02_00_world_misc.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_02_00_world_misc.sql
index fa5c2a7ba7b..fa5c2a7ba7b 100644
--- a/sql/old/3.3.5a/2011_09_02_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_02_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_09_02_02_world_spell_script_names.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_02_02_world_spell_script_names.sql
index b95cd2c17d6..b95cd2c17d6 100644
--- a/sql/old/3.3.5a/2011_09_02_02_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_02_02_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_09_03_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_03_00_world_spell_script_names.sql
index 6cec12b63fd..6cec12b63fd 100644
--- a/sql/old/3.3.5a/2011_09_03_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_03_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_09_03_01_world_conditions.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_03_01_world_conditions.sql
index c830d3ad18e..c830d3ad18e 100644
--- a/sql/old/3.3.5a/2011_09_03_01_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_03_01_world_conditions.sql
diff --git a/sql/old/3.3.5a/2011_09_03_02_world_spell_script_names.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_03_02_world_spell_script_names.sql
index b7b6907b7f1..b7b6907b7f1 100644
--- a/sql/old/3.3.5a/2011_09_03_02_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_03_02_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_09_03_03_world_creature_template.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_03_03_world_creature_template.sql
index 73bd1687ef6..73bd1687ef6 100644
--- a/sql/old/3.3.5a/2011_09_03_03_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_03_03_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_09_03_04_world_misc.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_03_04_world_misc.sql
index f35cebe2014..f35cebe2014 100644
--- a/sql/old/3.3.5a/2011_09_03_04_world_misc.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_03_04_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_09_03_05_world_gossip_menu_option.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_03_05_world_gossip_menu_option.sql
index b7f897f0314..b7f897f0314 100644
--- a/sql/old/3.3.5a/2011_09_03_05_world_gossip_menu_option.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_03_05_world_gossip_menu_option.sql
diff --git a/sql/old/3.3.5a/2011_09_03_06_world_spell_threat.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_03_06_world_spell_threat.sql
index 5f40420ebd4..5f40420ebd4 100644
--- a/sql/old/3.3.5a/2011_09_03_06_world_spell_threat.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_03_06_world_spell_threat.sql
diff --git a/sql/old/3.3.5a/2011_09_03_07_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_03_07_world_achievement_criteria_data.sql
index 7ae27745be6..7ae27745be6 100644
--- a/sql/old/3.3.5a/2011_09_03_07_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_03_07_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_09_03_08_world_spell_dbc.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_03_08_world_spell_dbc.sql
index 4d57e320822..4d57e320822 100644
--- a/sql/old/3.3.5a/2011_09_03_08_world_spell_dbc.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_03_08_world_spell_dbc.sql
diff --git a/sql/old/3.3.5a/2011_09_03_09_world_spell_dbc.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_03_09_world_spell_dbc.sql
index 31d4b19b1ca..31d4b19b1ca 100644
--- a/sql/old/3.3.5a/2011_09_03_09_world_spell_dbc.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_03_09_world_spell_dbc.sql
diff --git a/sql/old/3.3.5a/2011_09_03_10_world_spell_dbc.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_03_10_world_spell_dbc.sql
index 119bf863a8b..119bf863a8b 100644
--- a/sql/old/3.3.5a/2011_09_03_10_world_spell_dbc.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_03_10_world_spell_dbc.sql
diff --git a/sql/old/3.3.5a/2011_09_04_00_world_quest_template.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_04_00_world_quest_template.sql
index 4ff774b65b4..4ff774b65b4 100644
--- a/sql/old/3.3.5a/2011_09_04_00_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_04_00_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2011_09_04_01_world_trinity_string.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_04_01_world_trinity_string.sql
index 0f36a362db9..0f36a362db9 100644
--- a/sql/old/3.3.5a/2011_09_04_01_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_04_01_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/2011_09_04_02_world_trinity_string.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_04_02_world_trinity_string.sql
index 36722947feb..36722947feb 100644
--- a/sql/old/3.3.5a/2011_09_04_02_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_04_02_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/2011_09_05_00_world_spell_target_position.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_05_00_world_spell_target_position.sql
index ae0a69c6e99..ae0a69c6e99 100644
--- a/sql/old/3.3.5a/2011_09_05_00_world_spell_target_position.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_05_00_world_spell_target_position.sql
diff --git a/sql/old/3.3.5a/2011_09_05_01_world_gossip.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_05_01_world_gossip.sql
index 0d7a193eb95..0d7a193eb95 100644
--- a/sql/old/3.3.5a/2011_09_05_01_world_gossip.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_05_01_world_gossip.sql
diff --git a/sql/old/3.3.5a/2011_09_06_00_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_06_00_world_sai.sql
index fdc77bea6bb..fdc77bea6bb 100644
--- a/sql/old/3.3.5a/2011_09_06_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_06_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_09_06_01_world_misc.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_06_01_world_misc.sql
index 45ba8556ddc..45ba8556ddc 100644
--- a/sql/old/3.3.5a/2011_09_06_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_06_01_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_09_07_00_world_spell_linked_spell.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_07_00_world_spell_linked_spell.sql
index 584ef63c4ad..584ef63c4ad 100644
--- a/sql/old/3.3.5a/2011_09_07_00_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_07_00_world_spell_linked_spell.sql
diff --git a/sql/old/3.3.5a/2011_09_07_01_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_07_01_world_sai.sql
index 5052ce40059..5052ce40059 100644
--- a/sql/old/3.3.5a/2011_09_07_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_07_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_09_08_00_world_conditions.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_08_00_world_conditions.sql
index 07eebd56c7e..07eebd56c7e 100644
--- a/sql/old/3.3.5a/2011_09_08_00_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_08_00_world_conditions.sql
diff --git a/sql/old/3.3.5a/2011_09_08_01_world_spell_target_position.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_08_01_world_spell_target_position.sql
index 5b9fb09d14c..5b9fb09d14c 100644
--- a/sql/old/3.3.5a/2011_09_08_01_world_spell_target_position.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_08_01_world_spell_target_position.sql
diff --git a/sql/old/3.3.5a/2011_09_08_02_world_spell_script_names.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_08_02_world_spell_script_names.sql
index b97a1ef299a..b97a1ef299a 100644
--- a/sql/old/3.3.5a/2011_09_08_02_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_08_02_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_09_08_03_world_item_template.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_08_03_world_item_template.sql
index c5809d798fa..c5809d798fa 100644
--- a/sql/old/3.3.5a/2011_09_08_03_world_item_template.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_08_03_world_item_template.sql
diff --git a/sql/old/3.3.5a/2011_09_10_00_world_spell_linked_spell.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_10_00_world_spell_linked_spell.sql
index 93365589b44..93365589b44 100644
--- a/sql/old/3.3.5a/2011_09_10_00_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_10_00_world_spell_linked_spell.sql
diff --git a/sql/old/3.3.5a/2011_09_11_00_world_creature_template.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_11_00_world_creature_template.sql
index a4bf485350b..a4bf485350b 100644
--- a/sql/old/3.3.5a/2011_09_11_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_11_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_09_11_01_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_11_01_world_sai.sql
index 074f6e2a880..074f6e2a880 100644
--- a/sql/old/3.3.5a/2011_09_11_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_11_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_09_11_02_world_creature_template.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_11_02_world_creature_template.sql
index 1784e983832..1784e983832 100644
--- a/sql/old/3.3.5a/2011_09_11_02_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_11_02_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_09_11_03_world_gameobject.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_11_03_world_gameobject.sql
index b72898ba8a9..b72898ba8a9 100644
--- a/sql/old/3.3.5a/2011_09_11_03_world_gameobject.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_11_03_world_gameobject.sql
diff --git a/sql/old/3.3.5a/2011_09_11_04_world_spell_linked_spell.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_11_04_world_spell_linked_spell.sql
index 9b2fdabe08f..9b2fdabe08f 100644
--- a/sql/old/3.3.5a/2011_09_11_04_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_11_04_world_spell_linked_spell.sql
diff --git a/sql/old/3.3.5a/2011_09_11_05_world_misc.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_11_05_world_misc.sql
index 099585fefd1..099585fefd1 100644
--- a/sql/old/3.3.5a/2011_09_11_05_world_misc.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_11_05_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_09_11_06_world_spell_conditions.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_11_06_world_spell_conditions.sql
index 7b0d237dd65..7b0d237dd65 100644
--- a/sql/old/3.3.5a/2011_09_11_06_world_spell_conditions.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_11_06_world_spell_conditions.sql
diff --git a/sql/old/3.3.5a/2011_09_11_07_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_11_07_world_sai.sql
index 02a593eb9b4..02a593eb9b4 100644
--- a/sql/old/3.3.5a/2011_09_11_07_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_11_07_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_09_11_08_world_creature.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_11_08_world_creature.sql
index de608e7cdff..de608e7cdff 100644
--- a/sql/old/3.3.5a/2011_09_11_08_world_creature.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_11_08_world_creature.sql
diff --git a/sql/old/3.3.5a/2011_09_11_09_world_script_texts.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_11_09_world_script_texts.sql
index 49bbca06877..49bbca06877 100644
--- a/sql/old/3.3.5a/2011_09_11_09_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_11_09_world_script_texts.sql
diff --git a/sql/old/3.3.5a/2011_09_12_00_world_misc.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_12_00_world_misc.sql
index 30fd344376b..30fd344376b 100644
--- a/sql/old/3.3.5a/2011_09_12_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_12_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_09_12_01_world_misc.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_12_01_world_misc.sql
index 402b460d1e9..402b460d1e9 100644
--- a/sql/old/3.3.5a/2011_09_12_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_12_01_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_09_12_02_world_instance_template.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_12_02_world_instance_template.sql
index 2fe38236e28..2fe38236e28 100644
--- a/sql/old/3.3.5a/2011_09_12_02_world_instance_template.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_12_02_world_instance_template.sql
diff --git a/sql/old/3.3.5a/2011_09_12_03_world_conditions.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_12_03_world_conditions.sql
index 32f134b9811..32f134b9811 100644
--- a/sql/old/3.3.5a/2011_09_12_03_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_12_03_world_conditions.sql
diff --git a/sql/old/3.3.5a/2011_09_12_04_world_creature_template.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_12_04_world_creature_template.sql
index 1dc37357f8e..1dc37357f8e 100644
--- a/sql/old/3.3.5a/2011_09_12_04_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_12_04_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_09_12_05_world_misc.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_12_05_world_misc.sql
index 29967ced760..29967ced760 100644
--- a/sql/old/3.3.5a/2011_09_12_05_world_misc.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_12_05_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_09_12_06_world_event_scripts.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_12_06_world_event_scripts.sql
index eb6b26bc8a0..eb6b26bc8a0 100644
--- a/sql/old/3.3.5a/2011_09_12_06_world_event_scripts.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_12_06_world_event_scripts.sql
diff --git a/sql/old/3.3.5a/2011_09_12_07_world_creature.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_12_07_world_creature.sql
index d2496cb1eab..d2496cb1eab 100644
--- a/sql/old/3.3.5a/2011_09_12_07_world_creature.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_12_07_world_creature.sql
diff --git a/sql/old/3.3.5a/2011_09_13_00_world_spells.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_13_00_world_spells.sql
index 3d563e116dd..3d563e116dd 100644
--- a/sql/old/3.3.5a/2011_09_13_00_world_spells.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_13_00_world_spells.sql
diff --git a/sql/old/3.3.5a/2011_09_14_00_world_spawns.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_14_00_world_spawns.sql
index 4933af1b735..4933af1b735 100644
--- a/sql/old/3.3.5a/2011_09_14_00_world_spawns.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_14_00_world_spawns.sql
diff --git a/sql/old/3.3.5a/2011_09_14_01_world_quest.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_14_01_world_quest.sql
index 1155275af8c..1155275af8c 100644
--- a/sql/old/3.3.5a/2011_09_14_01_world_quest.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_14_01_world_quest.sql
diff --git a/sql/old/3.3.5a/2011_09_14_02_world_gossip_menu_option.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_14_02_world_gossip_menu_option.sql
index cb150388ffb..cb150388ffb 100644
--- a/sql/old/3.3.5a/2011_09_14_02_world_gossip_menu_option.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_14_02_world_gossip_menu_option.sql
diff --git a/sql/old/3.3.5a/2011_09_14_03_world_script_texts.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_14_03_world_script_texts.sql
index 8640b403a9a..8640b403a9a 100644
--- a/sql/old/3.3.5a/2011_09_14_03_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_14_03_world_script_texts.sql
diff --git a/sql/old/3.3.5a/2011_09_14_04_world_creature.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_14_04_world_creature.sql
index 10ef4b7dbb3..10ef4b7dbb3 100644
--- a/sql/old/3.3.5a/2011_09_14_04_world_creature.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_14_04_world_creature.sql
diff --git a/sql/old/3.3.5a/2011_09_14_05_world_creature_text.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_14_05_world_creature_text.sql
index 9d91056d8db..9d91056d8db 100644
--- a/sql/old/3.3.5a/2011_09_14_05_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_14_05_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2011_09_14_06_world_creature_template.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_14_06_world_creature_template.sql
index 7f589988631..7f589988631 100644
--- a/sql/old/3.3.5a/2011_09_14_06_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_14_06_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_09_15_00_world_creature.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_15_00_world_creature.sql
index 56edc6893b2..56edc6893b2 100644
--- a/sql/old/3.3.5a/2011_09_15_00_world_creature.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_15_00_world_creature.sql
diff --git a/sql/old/3.3.5a/2011_09_15_01_world_creature_template.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_15_01_world_creature_template.sql
index 97303fcbe50..97303fcbe50 100644
--- a/sql/old/3.3.5a/2011_09_15_01_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_15_01_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_09_15_02_world_misc.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_15_02_world_misc.sql
index 893c7db23a0..893c7db23a0 100644
--- a/sql/old/3.3.5a/2011_09_15_02_world_misc.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_15_02_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_09_15_03_world_creature_template.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_15_03_world_creature_template.sql
index 82f6138f17a..82f6138f17a 100644
--- a/sql/old/3.3.5a/2011_09_15_03_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_15_03_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_09_15_04_world_misc.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_15_04_world_misc.sql
index 674893a91f7..674893a91f7 100644
--- a/sql/old/3.3.5a/2011_09_15_04_world_misc.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_15_04_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_09_15_05_world_spell_script_names.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_15_05_world_spell_script_names.sql
index 418c05a4438..418c05a4438 100644
--- a/sql/old/3.3.5a/2011_09_15_05_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_15_05_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_09_16_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_16_00_world_spell_script_names.sql
index 98f268ec74f..98f268ec74f 100644
--- a/sql/old/3.3.5a/2011_09_16_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_16_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_09_19_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_19_00_world_spell_script_names.sql
index 5360210cef1..5360210cef1 100644
--- a/sql/old/3.3.5a/2011_09_19_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_19_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_09_21_00_world_misc.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_21_00_world_misc.sql
index 730e27fb2b2..730e27fb2b2 100644
--- a/sql/old/3.3.5a/2011_09_21_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_21_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_09_21_01_world_spell_script_names.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_21_01_world_spell_script_names.sql
index d3c16bec947..d3c16bec947 100644
--- a/sql/old/3.3.5a/2011_09_21_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_21_01_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_09_21_02_world_command.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_21_02_world_command.sql
index 8b21f3434cc..8b21f3434cc 100644
--- a/sql/old/3.3.5a/2011_09_21_02_world_command.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_21_02_world_command.sql
diff --git a/sql/old/3.3.5a/2011_09_21_02_world_trinity_string.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_21_02_world_trinity_string.sql
index 01795ebb916..01795ebb916 100644
--- a/sql/old/3.3.5a/2011_09_21_02_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_21_02_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/2011_09_22_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_22_00_world_spell_script_names.sql
index af75822087e..af75822087e 100644
--- a/sql/old/3.3.5a/2011_09_22_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_22_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_09_24_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_24_00_world_spell_script_names.sql
index d0f5b286739..d0f5b286739 100644
--- a/sql/old/3.3.5a/2011_09_24_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_24_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_09_24_01_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_24_01_world_sai.sql
index 7f4c79d5c74..7f4c79d5c74 100644
--- a/sql/old/3.3.5a/2011_09_24_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_24_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_09_25_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_25_00_world_spell_script_names.sql
index a7c65ac75dd..a7c65ac75dd 100644
--- a/sql/old/3.3.5a/2011_09_25_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_25_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_09_26_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_26_00_world_spell_script_names.sql
index c25e2c7129c..c25e2c7129c 100644
--- a/sql/old/3.3.5a/2011_09_26_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_26_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_09_28_00_world_achievement_reward.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_28_00_world_achievement_reward.sql
index da170d86672..da170d86672 100644
--- a/sql/old/3.3.5a/2011_09_28_00_world_achievement_reward.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_28_00_world_achievement_reward.sql
diff --git a/sql/old/3.3.5a/2011_09_28_01_world_spell_dbc.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_28_01_world_spell_dbc.sql
index 3c0f9f38324..3c0f9f38324 100644
--- a/sql/old/3.3.5a/2011_09_28_01_world_spell_dbc.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_28_01_world_spell_dbc.sql
diff --git a/sql/old/3.3.5a/2011_09_28_02_world_game_event.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_28_02_world_game_event.sql
index 3e211e26119..3e211e26119 100644
--- a/sql/old/3.3.5a/2011_09_28_02_world_game_event.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_09_28_02_world_game_event.sql
diff --git a/sql/old/3.3.5a/2011_10_01_00_world_creature_template.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_00_world_creature_template.sql
index 14fe26ba476..14fe26ba476 100644
--- a/sql/old/3.3.5a/2011_10_01_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_10_01_01_world_gameobject_template.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_01_world_gameobject_template.sql
index 2df109e25e8..2df109e25e8 100644
--- a/sql/old/3.3.5a/2011_10_01_01_world_gameobject_template.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_01_world_gameobject_template.sql
diff --git a/sql/old/3.3.5a/2011_10_01_02_world_game_event_creature.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_02_world_game_event_creature.sql
index b03642f04d7..b03642f04d7 100644
--- a/sql/old/3.3.5a/2011_10_01_02_world_game_event_creature.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_02_world_game_event_creature.sql
diff --git a/sql/old/3.3.5a/2011_10_01_03_world_conditions.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_03_world_conditions.sql
index 832a1d9bdf9..832a1d9bdf9 100644
--- a/sql/old/3.3.5a/2011_10_01_03_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_03_world_conditions.sql
diff --git a/sql/old/3.3.5a/2011_10_01_04_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_04_world_sai.sql
index f16e846d2c5..f16e846d2c5 100644
--- a/sql/old/3.3.5a/2011_10_01_04_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_04_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_10_01_05_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_05_world_sai.sql
index f1a9ff1472f..f1a9ff1472f 100644
--- a/sql/old/3.3.5a/2011_10_01_05_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_05_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_10_01_06_world_misc.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_06_world_misc.sql
index 24d10cbff2c..24d10cbff2c 100644
--- a/sql/old/3.3.5a/2011_10_01_06_world_misc.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_06_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_10_01_07_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_07_world_sai.sql
index c852ff32bc4..c852ff32bc4 100644
--- a/sql/old/3.3.5a/2011_10_01_07_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_07_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_10_01_08_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_08_world_sai.sql
index 0f524b7b0c0..0f524b7b0c0 100644
--- a/sql/old/3.3.5a/2011_10_01_08_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_08_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_10_01_09_world_creatures.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_09_world_creatures.sql
index 6c6c5eb577b..6c6c5eb577b 100644
--- a/sql/old/3.3.5a/2011_10_01_09_world_creatures.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_09_world_creatures.sql
diff --git a/sql/old/3.3.5a/2011_10_01_10_world_questrelation.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_10_world_questrelation.sql
index 089471f193e..089471f193e 100644
--- a/sql/old/3.3.5a/2011_10_01_10_world_questrelation.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_10_world_questrelation.sql
diff --git a/sql/old/3.3.5a/2011_10_01_11_world_loot.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_11_world_loot.sql
index bd34d39ff3d..bd34d39ff3d 100644
--- a/sql/old/3.3.5a/2011_10_01_11_world_loot.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_11_world_loot.sql
diff --git a/sql/old/3.3.5a/2011_10_01_12_world_creatures.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_12_world_creatures.sql
index 7ac66fd95b3..7ac66fd95b3 100644
--- a/sql/old/3.3.5a/2011_10_01_12_world_creatures.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_12_world_creatures.sql
diff --git a/sql/old/3.3.5a/2011_10_01_13_world_dbc.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_13_world_dbc.sql
index 96c34eced1c..96c34eced1c 100644
--- a/sql/old/3.3.5a/2011_10_01_13_world_dbc.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_01_13_world_dbc.sql
diff --git a/sql/old/3.3.5a/2011_10_02_00_world_creature_template.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_00_world_creature_template.sql
index f9f20f3b593..f9f20f3b593 100644
--- a/sql/old/3.3.5a/2011_10_02_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_10_02_01_world_factionchange.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_01_world_factionchange.sql
index f3266c37357..f3266c37357 100644
--- a/sql/old/3.3.5a/2011_10_02_01_world_factionchange.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_01_world_factionchange.sql
diff --git a/sql/old/3.3.5a/2011_10_02_03_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_03_world_sai.sql
index 9ccda8d5403..9ccda8d5403 100644
--- a/sql/old/3.3.5a/2011_10_02_03_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_03_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_10_02_04_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_04_world_sai.sql
index 1c123d2ae2a..1c123d2ae2a 100644
--- a/sql/old/3.3.5a/2011_10_02_04_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_04_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_10_02_05_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_05_world_sai.sql
index 042b59626d0..042b59626d0 100644
--- a/sql/old/3.3.5a/2011_10_02_05_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_05_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_10_02_06_world_misc.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_06_world_misc.sql
index 03a2bf96b7d..03a2bf96b7d 100644
--- a/sql/old/3.3.5a/2011_10_02_06_world_misc.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_06_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_10_02_07_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_07_world_sai.sql
index bbbfb3f233a..bbbfb3f233a 100644
--- a/sql/old/3.3.5a/2011_10_02_07_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_07_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_10_02_08_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_08_world_sai.sql
index f0df16b7be4..f0df16b7be4 100644
--- a/sql/old/3.3.5a/2011_10_02_08_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_08_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_10_02_09_world_creatures.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_09_world_creatures.sql
index 5287fc45ab3..5287fc45ab3 100644
--- a/sql/old/3.3.5a/2011_10_02_09_world_creatures.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_09_world_creatures.sql
diff --git a/sql/old/3.3.5a/2011_10_02_10_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_10_world_sai.sql
index 3880699aa69..3880699aa69 100644
--- a/sql/old/3.3.5a/2011_10_02_10_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_10_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_10_02_11_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_11_world_sai.sql
index 6ed9fcf83c6..6ed9fcf83c6 100644
--- a/sql/old/3.3.5a/2011_10_02_11_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_11_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_10_02_12_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_12_world_sai.sql
index 8fd77e5ed8d..8fd77e5ed8d 100644
--- a/sql/old/3.3.5a/2011_10_02_12_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_12_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_10_02_13_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_13_world_sai.sql
index c8736f5284a..c8736f5284a 100644
--- a/sql/old/3.3.5a/2011_10_02_13_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_13_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_10_02_14_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_14_world_sai.sql
index d4c48dde3cc..d4c48dde3cc 100644
--- a/sql/old/3.3.5a/2011_10_02_14_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_14_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_10_02_15_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_15_world_sai.sql
index 980874c8eea..980874c8eea 100644
--- a/sql/old/3.3.5a/2011_10_02_15_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_02_15_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_10_04_00_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_04_00_world_creature_loot_template.sql
index 0a6cfc1073f..0a6cfc1073f 100644
--- a/sql/old/3.3.5a/2011_10_04_00_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_04_00_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2011_10_05_00_world_spell_linked_spell.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_05_00_world_spell_linked_spell.sql
index 762a07620f9..762a07620f9 100644
--- a/sql/old/3.3.5a/2011_10_05_00_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_05_00_world_spell_linked_spell.sql
diff --git a/sql/old/3.3.5a/2011_10_05_01_world_instance_misc.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_05_01_world_instance_misc.sql
index 656cdd575d2..656cdd575d2 100644
--- a/sql/old/3.3.5a/2011_10_05_01_world_instance_misc.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_05_01_world_instance_misc.sql
diff --git a/sql/old/3.3.5a/2011_10_05_01_world_scriptname.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_05_01_world_scriptname.sql
index 742d74f4029..742d74f4029 100644
--- a/sql/old/3.3.5a/2011_10_05_01_world_scriptname.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_05_01_world_scriptname.sql
diff --git a/sql/old/3.3.5a/2011_10_05_01_world_spell_script_names.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_05_01_world_spell_script_names.sql
index 03d4b649e78..03d4b649e78 100644
--- a/sql/old/3.3.5a/2011_10_05_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_05_01_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_10_06_00_world_creature_template.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_06_00_world_creature_template.sql
index a17b7bc3c7c..a17b7bc3c7c 100644
--- a/sql/old/3.3.5a/2011_10_06_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_06_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_10_06_01_world_misc.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_06_01_world_misc.sql
index 3fccce79f7b..3fccce79f7b 100644
--- a/sql/old/3.3.5a/2011_10_06_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_06_01_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_10_07_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_07_00_world_spell_script_names.sql
index 94d4f1fd8fc..94d4f1fd8fc 100644
--- a/sql/old/3.3.5a/2011_10_07_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_07_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_10_07_01_world_command.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_07_01_world_command.sql
index 13336fa6b2f..13336fa6b2f 100644
--- a/sql/old/3.3.5a/2011_10_07_01_world_command.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_07_01_world_command.sql
diff --git a/sql/old/3.3.5a/2011_10_07_02_world_trinity_string.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_07_02_world_trinity_string.sql
index 1ada6589e54..1ada6589e54 100644
--- a/sql/old/3.3.5a/2011_10_07_02_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_07_02_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/2011_10_08_00_world_page_text.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_08_00_world_page_text.sql
index aa9aeee6ba4..aa9aeee6ba4 100644
--- a/sql/old/3.3.5a/2011_10_08_00_world_page_text.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_08_00_world_page_text.sql
diff --git a/sql/old/3.3.5a/2011_10_11_00_world_creature_template.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_11_00_world_creature_template.sql
index a86e5e53ea5..a86e5e53ea5 100644
--- a/sql/old/3.3.5a/2011_10_11_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_11_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_10_12_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_12_00_world_spell_script_names.sql
index cf2ea31306d..cf2ea31306d 100644
--- a/sql/old/3.3.5a/2011_10_12_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_12_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_10_15_00_world_waypoint_data.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_15_00_world_waypoint_data.sql
index de8445b630c..de8445b630c 100644
--- a/sql/old/3.3.5a/2011_10_15_00_world_waypoint_data.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_15_00_world_waypoint_data.sql
diff --git a/sql/old/3.3.5a/2011_10_18_00_world_spell_group.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_18_00_world_spell_group.sql
index fc11e3f365b..fc11e3f365b 100644
--- a/sql/old/3.3.5a/2011_10_18_00_world_spell_group.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_18_00_world_spell_group.sql
diff --git a/sql/old/3.3.5a/2011_10_18_01_world_spell_group_stack_rules.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_18_01_world_spell_group_stack_rules.sql
index 20044aa6241..20044aa6241 100644
--- a/sql/old/3.3.5a/2011_10_18_01_world_spell_group_stack_rules.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_18_01_world_spell_group_stack_rules.sql
diff --git a/sql/old/3.3.5a/2011_10_19_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_19_00_world_spell_script_names.sql
index 900d26c4e84..900d26c4e84 100644
--- a/sql/old/3.3.5a/2011_10_19_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_19_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_10_21_00_world_creature_template_addon.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_21_00_world_creature_template_addon.sql
index fed232a29d2..fed232a29d2 100644
--- a/sql/old/3.3.5a/2011_10_21_00_world_creature_template_addon.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_21_00_world_creature_template_addon.sql
diff --git a/sql/old/3.3.5a/2011_10_22_00_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_00_world_sai.sql
index 534e57297ef..534e57297ef 100644
--- a/sql/old/3.3.5a/2011_10_22_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_10_22_01_world_quest_relation.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_01_world_quest_relation.sql
index f0d15832b98..f0d15832b98 100644
--- a/sql/old/3.3.5a/2011_10_22_01_world_quest_relation.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_01_world_quest_relation.sql
diff --git a/sql/old/3.3.5a/2011_10_22_02_world_gameobject_template.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_02_world_gameobject_template.sql
index 8effad58ca6..8effad58ca6 100644
--- a/sql/old/3.3.5a/2011_10_22_02_world_gameobject_template.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_02_world_gameobject_template.sql
diff --git a/sql/old/3.3.5a/2011_10_22_03_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_03_world_sai.sql
index 6003e1d365b..6003e1d365b 100644
--- a/sql/old/3.3.5a/2011_10_22_03_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_03_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_10_22_04_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_04_world_sai.sql
index 71aac7a302b..71aac7a302b 100644
--- a/sql/old/3.3.5a/2011_10_22_04_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_04_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_10_22_05_world_misc.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_05_world_misc.sql
index 57e4f740530..57e4f740530 100644
--- a/sql/old/3.3.5a/2011_10_22_05_world_misc.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_05_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_10_22_06_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_06_world_sai.sql
index 433252f4e2d..433252f4e2d 100644
--- a/sql/old/3.3.5a/2011_10_22_06_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_06_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_10_22_07_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_07_world_sai.sql
index e867f43d527..e867f43d527 100644
--- a/sql/old/3.3.5a/2011_10_22_07_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_07_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_10_22_08_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_08_world_sai.sql
index 779f659f9af..779f659f9af 100644
--- a/sql/old/3.3.5a/2011_10_22_08_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_08_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_10_22_09_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_09_world_sai.sql
index 2bf96f951c6..2bf96f951c6 100644
--- a/sql/old/3.3.5a/2011_10_22_09_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_09_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_10_22_10_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_10_world_sai.sql
index 3e53d2a3757..3e53d2a3757 100644
--- a/sql/old/3.3.5a/2011_10_22_10_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_10_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_10_22_11_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_11_world_sai.sql
index dfae9ae383a..dfae9ae383a 100644
--- a/sql/old/3.3.5a/2011_10_22_11_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_11_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_10_22_12_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_12_world_sai.sql
index c405377f588..c405377f588 100644
--- a/sql/old/3.3.5a/2011_10_22_12_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_12_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_10_22_13_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_13_world_sai.sql
index 17f2efd7b5f..17f2efd7b5f 100644
--- a/sql/old/3.3.5a/2011_10_22_13_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_13_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_10_22_14_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_14_world_sai.sql
index e64b76711b8..e64b76711b8 100644
--- a/sql/old/3.3.5a/2011_10_22_14_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_14_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_10_22_15_world_core_script_support.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_15_world_core_script_support.sql
index 1d1c59c69d0..1d1c59c69d0 100644
--- a/sql/old/3.3.5a/2011_10_22_15_world_core_script_support.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_15_world_core_script_support.sql
diff --git a/sql/old/3.3.5a/2011_10_22_16_world_core_script_support.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_16_world_core_script_support.sql
index c6049d49e19..c6049d49e19 100644
--- a/sql/old/3.3.5a/2011_10_22_16_world_core_script_support.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_16_world_core_script_support.sql
diff --git a/sql/old/3.3.5a/2011_10_22_17_world_conditions.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_17_world_conditions.sql
index db824c4ec3f..db824c4ec3f 100644
--- a/sql/old/3.3.5a/2011_10_22_17_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_17_world_conditions.sql
diff --git a/sql/old/3.3.5a/2011_10_22_18_world_misc.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_18_world_misc.sql
index c0c118eeb78..c0c118eeb78 100644
--- a/sql/old/3.3.5a/2011_10_22_18_world_misc.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_18_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_10_22_19_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_19_world_sai.sql
index bb873c461ea..bb873c461ea 100644
--- a/sql/old/3.3.5a/2011_10_22_19_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_22_19_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_10_23_00_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_23_00_world_sai.sql
index 5a9848da021..5a9848da021 100644
--- a/sql/old/3.3.5a/2011_10_23_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_23_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_10_23_01_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_23_01_world_sai.sql
index 89eba23683a..89eba23683a 100644
--- a/sql/old/3.3.5a/2011_10_23_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_23_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_10_23_02_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_23_02_world_sai.sql
index a6a5da03bbb..a6a5da03bbb 100644
--- a/sql/old/3.3.5a/2011_10_23_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_23_02_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_10_23_03_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_23_03_world_sai.sql
index d38e0a0b4fd..d38e0a0b4fd 100644
--- a/sql/old/3.3.5a/2011_10_23_03_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_23_03_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_10_23_04_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_23_04_world_sai.sql
index 27adf09d51a..27adf09d51a 100644
--- a/sql/old/3.3.5a/2011_10_23_04_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_23_04_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_10_23_05_world_misc.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_23_05_world_misc.sql
index 5f0cc4f6d2e..5f0cc4f6d2e 100644
--- a/sql/old/3.3.5a/2011_10_23_05_world_misc.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_23_05_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_10_23_06_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_23_06_world_sai.sql
index 7e0eb7e7e96..7e0eb7e7e96 100644
--- a/sql/old/3.3.5a/2011_10_23_06_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_23_06_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_10_23_07_world_creature_templates.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_23_07_world_creature_templates.sql
index 297634d4ac8..297634d4ac8 100644
--- a/sql/old/3.3.5a/2011_10_23_07_world_creature_templates.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_23_07_world_creature_templates.sql
diff --git a/sql/old/3.3.5a/2011_10_23_07_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_23_07_world_sai.sql
index baf9936566e..baf9936566e 100644
--- a/sql/old/3.3.5a/2011_10_23_07_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_23_07_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_10_23_08_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_23_08_world_sai.sql
index e2e8cfd73f4..e2e8cfd73f4 100644
--- a/sql/old/3.3.5a/2011_10_23_08_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_23_08_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_10_24_00_world_sai.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_24_00_world_sai.sql
index 30b2d026b6a..30b2d026b6a 100644
--- a/sql/old/3.3.5a/2011_10_24_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_24_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_10_24_01_world_creature_text.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_24_01_world_creature_text.sql
index a8d4a2f80db..a8d4a2f80db 100644
--- a/sql/old/3.3.5a/2011_10_24_01_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_24_01_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2011_10_24_02_world_core_script_support.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_24_02_world_core_script_support.sql
index c27d788c3f0..c27d788c3f0 100644
--- a/sql/old/3.3.5a/2011_10_24_02_world_core_script_support.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_24_02_world_core_script_support.sql
diff --git a/sql/old/3.3.5a/2011_10_28_00_world_version.sql b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_28_00_world_version.sql
index 3d829193d1b..3d829193d1b 100644
--- a/sql/old/3.3.5a/2011_10_28_00_world_version.sql
+++ b/sql/old/3.3.5a/TDB42_to_TDB43_updates/world/2011_10_28_00_world_version.sql
diff --git a/sql/old/3.3.5a/2011_10_29_00_world_version.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_10_29_00_world_version.sql
index 17a94041a33..17a94041a33 100644
--- a/sql/old/3.3.5a/2011_10_29_00_world_version.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_10_29_00_world_version.sql
diff --git a/sql/old/3.3.5a/2011_10_29_01_world_gameobject_template.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_10_29_01_world_gameobject_template.sql
index 744a549eebd..744a549eebd 100644
--- a/sql/old/3.3.5a/2011_10_29_01_world_gameobject_template.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_10_29_01_world_gameobject_template.sql
diff --git a/sql/old/3.3.5a/2011_10_29_02_world_gameobject_template.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_10_29_02_world_gameobject_template.sql
index 9134a66ee2b..9134a66ee2b 100644
--- a/sql/old/3.3.5a/2011_10_29_02_world_gameobject_template.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_10_29_02_world_gameobject_template.sql
diff --git a/sql/old/3.3.5a/2011_10_29_03_world_gameobject_template.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_10_29_03_world_gameobject_template.sql
index 6b73da94441..6b73da94441 100644
--- a/sql/old/3.3.5a/2011_10_29_03_world_gameobject_template.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_10_29_03_world_gameobject_template.sql
diff --git a/sql/old/3.3.5a/2011_10_29_04_world_linked_respawn.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_10_29_04_world_linked_respawn.sql
index 94d2c0d730d..94d2c0d730d 100644
--- a/sql/old/3.3.5a/2011_10_29_04_world_linked_respawn.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_10_29_04_world_linked_respawn.sql
diff --git a/sql/old/3.3.5a/2011_10_29_05_world_sai.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_10_29_05_world_sai.sql
index fb22020163e..fb22020163e 100644
--- a/sql/old/3.3.5a/2011_10_29_05_world_sai.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_10_29_05_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_10_29_06_world_misc.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_10_29_06_world_misc.sql
index 7706777b32f..7706777b32f 100644
--- a/sql/old/3.3.5a/2011_10_29_06_world_misc.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_10_29_06_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_10_29_06_world_sai.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_10_29_06_world_sai.sql
index a3d1626a8f9..a3d1626a8f9 100644
--- a/sql/old/3.3.5a/2011_10_29_06_world_sai.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_10_29_06_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_10_29_07_world_gameobjects.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_10_29_07_world_gameobjects.sql
index 541cadd71a0..541cadd71a0 100644
--- a/sql/old/3.3.5a/2011_10_29_07_world_gameobjects.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_10_29_07_world_gameobjects.sql
diff --git a/sql/old/3.3.5a/2011_10_30_00_world_misc.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_10_30_00_world_misc.sql
index 912f13f364c..912f13f364c 100644
--- a/sql/old/3.3.5a/2011_10_30_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_10_30_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_10_30_01_world_misc.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_10_30_01_world_misc.sql
index 9c42045c821..9c42045c821 100644
--- a/sql/old/3.3.5a/2011_10_30_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_10_30_01_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_10_30_02_world_creature_template.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_10_30_02_world_creature_template.sql
index 50fc50e9c14..50fc50e9c14 100644
--- a/sql/old/3.3.5a/2011_10_30_02_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_10_30_02_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_10_30_02_world_player_factionchange_achievement.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_10_30_02_world_player_factionchange_achievement.sql
index 5f7c3bf46f6..5f7c3bf46f6 100644
--- a/sql/old/3.3.5a/2011_10_30_02_world_player_factionchange_achievement.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_10_30_02_world_player_factionchange_achievement.sql
diff --git a/sql/old/3.3.5a/2011_11_01_00_world_sai.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_01_00_world_sai.sql
index f4e12082ea9..f4e12082ea9 100644
--- a/sql/old/3.3.5a/2011_11_01_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_01_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_11_07_00_world_player_factionchange_items.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_07_00_world_player_factionchange_items.sql
index 9b6ac61f2d4..9b6ac61f2d4 100644
--- a/sql/old/3.3.5a/2011_11_07_00_world_player_factionchange_items.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_07_00_world_player_factionchange_items.sql
diff --git a/sql/old/3.3.5a/2011_11_07_01_world_areatrigger_teleport.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_07_01_world_areatrigger_teleport.sql
index 2164d24ef5f..2164d24ef5f 100644
--- a/sql/old/3.3.5a/2011_11_07_01_world_areatrigger_teleport.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_07_01_world_areatrigger_teleport.sql
diff --git a/sql/old/3.3.5a/2011_11_07_02_world_misc.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_07_02_world_misc.sql
index b40ad4dc7bf..b40ad4dc7bf 100644
--- a/sql/old/3.3.5a/2011_11_07_02_world_misc.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_07_02_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_11_07_03_world_misc.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_07_03_world_misc.sql
index 97b538237bd..97b538237bd 100644
--- a/sql/old/3.3.5a/2011_11_07_03_world_misc.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_07_03_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_11_11_00_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_11_00_world_spell_proc_event.sql
index 997ede4a886..997ede4a886 100644
--- a/sql/old/3.3.5a/2011_11_11_00_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_11_00_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_11_11_01_world_misc.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_11_01_world_misc.sql
index bf7e7a63c87..bf7e7a63c87 100644
--- a/sql/old/3.3.5a/2011_11_11_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_11_01_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_11_13_00_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_13_00_world_spell_proc_event.sql
index 393282c229c..393282c229c 100644
--- a/sql/old/3.3.5a/2011_11_13_00_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_13_00_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_11_13_01_world_sai.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_13_01_world_sai.sql
index 1a4ed5b29d9..1a4ed5b29d9 100644
--- a/sql/old/3.3.5a/2011_11_13_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_13_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_11_13_02_world_pool_template.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_13_02_world_pool_template.sql
index b0c7ab75b0b..b0c7ab75b0b 100644
--- a/sql/old/3.3.5a/2011_11_13_02_world_pool_template.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_13_02_world_pool_template.sql
diff --git a/sql/old/3.3.5a/2011_11_13_03_world_npc_trainer.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_13_03_world_npc_trainer.sql
index 0db753c008b..0db753c008b 100644
--- a/sql/old/3.3.5a/2011_11_13_03_world_npc_trainer.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_13_03_world_npc_trainer.sql
diff --git a/sql/old/3.3.5a/2011_11_13_04_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_13_04_world_creature_loot_template.sql
index b68d12a031d..b68d12a031d 100644
--- a/sql/old/3.3.5a/2011_11_13_04_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_13_04_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2011_11_13_05_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_13_05_world_creature_loot_template.sql
index ab831bc335a..ab831bc335a 100644
--- a/sql/old/3.3.5a/2011_11_13_05_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_13_05_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2011_11_13_06_world_reference_loot_template.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_13_06_world_reference_loot_template.sql
index 57bf1aca809..57bf1aca809 100644
--- a/sql/old/3.3.5a/2011_11_13_06_world_reference_loot_template.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_13_06_world_reference_loot_template.sql
diff --git a/sql/old/3.3.5a/2011_11_13_07_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_13_07_world_creature_loot_template.sql
index 7e5f4e36c07..7e5f4e36c07 100644
--- a/sql/old/3.3.5a/2011_11_13_07_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_13_07_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2011_11_13_08_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_13_08_world_creature_loot_template.sql
index 55f58d4fbba..55f58d4fbba 100644
--- a/sql/old/3.3.5a/2011_11_13_08_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_13_08_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2011_11_13_09_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_13_09_world_creature_loot_template.sql
index 6356c93a9ba..6356c93a9ba 100644
--- a/sql/old/3.3.5a/2011_11_13_09_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_13_09_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2011_11_13_10_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_13_10_world_creature_loot_template.sql
index 3052ba96745..3052ba96745 100644
--- a/sql/old/3.3.5a/2011_11_13_10_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_13_10_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2011_11_13_11_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_13_11_world_creature_loot_template.sql
index 4f755b1cbea..4f755b1cbea 100644
--- a/sql/old/3.3.5a/2011_11_13_11_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_13_11_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2011_11_13_12_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_13_12_world_creature_loot_template.sql
index a32f65f3aab..a32f65f3aab 100644
--- a/sql/old/3.3.5a/2011_11_13_12_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_13_12_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2011_11_20_00_world_command.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_00_world_command.sql
index 73d52974766..73d52974766 100644
--- a/sql/old/3.3.5a/2011_11_20_00_world_command.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_00_world_command.sql
diff --git a/sql/old/3.3.5a/2011_11_20_01_world_sai.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_01_world_sai.sql
index dbb4f39a499..dbb4f39a499 100644
--- a/sql/old/3.3.5a/2011_11_20_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_11_20_02_world_sai.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_02_world_sai.sql
index f064aa67f9f..f064aa67f9f 100644
--- a/sql/old/3.3.5a/2011_11_20_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_02_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_11_20_03_world_sai.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_03_world_sai.sql
index bd47430acd8..bd47430acd8 100644
--- a/sql/old/3.3.5a/2011_11_20_03_world_sai.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_03_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_11_20_04_world_sai.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_04_world_sai.sql
index e362b0d0866..e362b0d0866 100644
--- a/sql/old/3.3.5a/2011_11_20_04_world_sai.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_04_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_11_20_05_world_sai.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_05_world_sai.sql
index 464d0635bb8..464d0635bb8 100644
--- a/sql/old/3.3.5a/2011_11_20_05_world_sai.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_05_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_11_20_06_world_sai.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_06_world_sai.sql
index 68bffade858..68bffade858 100644
--- a/sql/old/3.3.5a/2011_11_20_06_world_sai.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_06_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_11_20_07_world_sai.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_07_world_sai.sql
index efb89f6ba5a..efb89f6ba5a 100644
--- a/sql/old/3.3.5a/2011_11_20_07_world_sai.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_07_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_11_20_08_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_08_world_achievement_criteria_data.sql
index 6e121274acb..6e121274acb 100644
--- a/sql/old/3.3.5a/2011_11_20_08_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_08_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_11_20_09_world_sai.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_09_world_sai.sql
index 8931a7084d9..8931a7084d9 100644
--- a/sql/old/3.3.5a/2011_11_20_09_world_sai.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_09_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_11_20_10_world_sai.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_10_world_sai.sql
index b56fd826e95..b56fd826e95 100644
--- a/sql/old/3.3.5a/2011_11_20_10_world_sai.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_10_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_11_20_11_world_sai.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_11_world_sai.sql
index a05b26e6831..a05b26e6831 100644
--- a/sql/old/3.3.5a/2011_11_20_11_world_sai.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_11_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_11_20_12_world_sai.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_12_world_sai.sql
index 527db0e02e7..527db0e02e7 100644
--- a/sql/old/3.3.5a/2011_11_20_12_world_sai.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_12_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_11_20_13_world_sai.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_13_world_sai.sql
index c4cd10912a3..c4cd10912a3 100644
--- a/sql/old/3.3.5a/2011_11_20_13_world_sai.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_13_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_11_20_14_world_revert.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_14_world_revert.sql
index 067c750b694..067c750b694 100644
--- a/sql/old/3.3.5a/2011_11_20_14_world_revert.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_14_world_revert.sql
diff --git a/sql/old/3.3.5a/2011_11_20_15_world_sai.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_15_world_sai.sql
index 8e0b4141379..8e0b4141379 100644
--- a/sql/old/3.3.5a/2011_11_20_15_world_sai.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_20_15_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_11_21_00_world_db_errors.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_21_00_world_db_errors.sql
index d3ae6fb197b..d3ae6fb197b 100644
--- a/sql/old/3.3.5a/2011_11_21_00_world_db_errors.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_21_00_world_db_errors.sql
diff --git a/sql/old/3.3.5a/2011_11_21_01_world_pilgrim_achievement_reward.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_21_01_world_pilgrim_achievement_reward.sql
index 7083107a8c2..7083107a8c2 100644
--- a/sql/old/3.3.5a/2011_11_21_01_world_pilgrim_achievement_reward.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_21_01_world_pilgrim_achievement_reward.sql
diff --git a/sql/old/3.3.5a/2011_11_21_02_world_pilgrim_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_21_02_world_pilgrim_achievement_criteria_data.sql
index 589dbb0b2a4..589dbb0b2a4 100644
--- a/sql/old/3.3.5a/2011_11_21_02_world_pilgrim_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_21_02_world_pilgrim_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_11_21_03_world_pilgrim_misc.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_21_03_world_pilgrim_misc.sql
index 6547fe9a53a..6547fe9a53a 100644
--- a/sql/old/3.3.5a/2011_11_21_03_world_pilgrim_misc.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_21_03_world_pilgrim_misc.sql
diff --git a/sql/old/3.3.5a/2011_11_21_04_world_pilgrim_misc.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_21_04_world_pilgrim_misc.sql
index 194c084ebc5..194c084ebc5 100644
--- a/sql/old/3.3.5a/2011_11_21_04_world_pilgrim_misc.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_21_04_world_pilgrim_misc.sql
diff --git a/sql/old/3.3.5a/2011_11_21_05_world_pilgrim_tables.sql b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_21_05_world_pilgrim_tables.sql
index 18881e14eaf..18881e14eaf 100644
--- a/sql/old/3.3.5a/2011_11_21_05_world_pilgrim_tables.sql
+++ b/sql/old/3.3.5a/TDB43_to_TDB44_updates/world/2011_11_21_05_world_pilgrim_tables.sql
diff --git a/sql/old/3.3.5a/2012_01_04_00_characters_character_queststatus_seasonal.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/characters/2012_01_04_00_characters_character_queststatus_seasonal.sql
index f9ae71b65a7..f9ae71b65a7 100644
--- a/sql/old/3.3.5a/2012_01_04_00_characters_character_queststatus_seasonal.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/characters/2012_01_04_00_characters_character_queststatus_seasonal.sql
diff --git a/sql/old/3.3.5a/2011_11_24_00_world_version.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_24_00_world_version.sql
index ad2396f29e1..ad2396f29e1 100644
--- a/sql/old/3.3.5a/2011_11_24_00_world_version.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_24_00_world_version.sql
diff --git a/sql/old/3.3.5a/2011_11_25_00_world_quest_template.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_25_00_world_quest_template.sql
index eee92a3761b..eee92a3761b 100644
--- a/sql/old/3.3.5a/2011_11_25_00_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_25_00_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2011_11_25_01_world_quest_template.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_25_01_world_quest_template.sql
index f7e4555f093..f7e4555f093 100644
--- a/sql/old/3.3.5a/2011_11_25_01_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_25_01_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2011_11_25_02_world_creature.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_25_02_world_creature.sql
index 0b26187f196..0b26187f196 100644
--- a/sql/old/3.3.5a/2011_11_25_02_world_creature.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_25_02_world_creature.sql
diff --git a/sql/old/3.3.5a/2011_11_26_00_world_quest_template.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_26_00_world_quest_template.sql
index 6a7834e0a76..6a7834e0a76 100644
--- a/sql/old/3.3.5a/2011_11_26_00_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_26_00_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2011_11_26_01_world_quest_template.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_26_01_world_quest_template.sql
index 5b08d57860b..5b08d57860b 100644
--- a/sql/old/3.3.5a/2011_11_26_01_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_26_01_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2011_11_26_02_world_spell_group.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_26_02_world_spell_group.sql
index 71ad2eaf9fb..71ad2eaf9fb 100644
--- a/sql/old/3.3.5a/2011_11_26_02_world_spell_group.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_26_02_world_spell_group.sql
diff --git a/sql/old/3.3.5a/2011_11_26_03_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_26_03_world_spell_proc_event.sql
index 36837be8ab6..36837be8ab6 100644
--- a/sql/old/3.3.5a/2011_11_26_03_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_26_03_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_11_26_04_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_26_04_world_achievement_criteria_data.sql
index b037bf58349..b037bf58349 100644
--- a/sql/old/3.3.5a/2011_11_26_04_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_26_04_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_11_26_04_world_disables.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_26_04_world_disables.sql
index 4722f248656..4722f248656 100644
--- a/sql/old/3.3.5a/2011_11_26_04_world_disables.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_26_04_world_disables.sql
diff --git a/sql/old/3.3.5a/2011_11_26_05_world_ulduar_gameobject.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_26_05_world_ulduar_gameobject.sql
index 60ba0aefbeb..60ba0aefbeb 100644
--- a/sql/old/3.3.5a/2011_11_26_05_world_ulduar_gameobject.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_26_05_world_ulduar_gameobject.sql
diff --git a/sql/old/3.3.5a/2011_11_26_06_world_sai.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_26_06_world_sai.sql
index 9396222e8be..9396222e8be 100644
--- a/sql/old/3.3.5a/2011_11_26_06_world_sai.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_26_06_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_11_27_00_world_creature_template.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_27_00_world_creature_template.sql
index f29586ea142..f29586ea142 100644
--- a/sql/old/3.3.5a/2011_11_27_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_27_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_11_27_00_world_spell_script.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_27_00_world_spell_script.sql
index 5411d660c2b..5411d660c2b 100644
--- a/sql/old/3.3.5a/2011_11_27_00_world_spell_script.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_27_00_world_spell_script.sql
diff --git a/sql/old/3.3.5a/2011_11_28_00_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_28_00_world_achievement_criteria_data.sql
index 9fea807a97c..9fea807a97c 100644
--- a/sql/old/3.3.5a/2011_11_28_00_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_28_00_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_11_29_00_world_spell_script.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_29_00_world_spell_script.sql
index ff87ebff788..ff87ebff788 100644
--- a/sql/old/3.3.5a/2011_11_29_00_world_spell_script.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_11_29_00_world_spell_script.sql
diff --git a/sql/old/3.3.5a/2011_12_03_00_world_gameobject.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_03_00_world_gameobject.sql
index 5707ee28d12..5707ee28d12 100644
--- a/sql/old/3.3.5a/2011_12_03_00_world_gameobject.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_03_00_world_gameobject.sql
diff --git a/sql/old/3.3.5a/2011_12_08_00_world_gossip.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_08_00_world_gossip.sql
index f6195d9d66e..f6195d9d66e 100644
--- a/sql/old/3.3.5a/2011_12_08_00_world_gossip.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_08_00_world_gossip.sql
diff --git a/sql/old/3.3.5a/2011_12_08_00_world_player_factionchange_achievement.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_08_00_world_player_factionchange_achievement.sql
index 7a19fa2cad0..7a19fa2cad0 100644
--- a/sql/old/3.3.5a/2011_12_08_00_world_player_factionchange_achievement.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_08_00_world_player_factionchange_achievement.sql
diff --git a/sql/old/3.3.5a/2011_12_08_01_world_creature_template_addon.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_08_01_world_creature_template_addon.sql
index e8a464146e0..e8a464146e0 100644
--- a/sql/old/3.3.5a/2011_12_08_01_world_creature_template_addon.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_08_01_world_creature_template_addon.sql
diff --git a/sql/old/3.3.5a/2011_12_10_00_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_10_00_world_spell_proc_event.sql
index 957a2e76b70..957a2e76b70 100644
--- a/sql/old/3.3.5a/2011_12_10_00_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_10_00_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_12_10_01_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_10_01_world_achievement_criteria_data.sql
index 70e4a4fc544..70e4a4fc544 100644
--- a/sql/old/3.3.5a/2011_12_10_01_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_10_01_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_12_12_00_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_12_00_world_spell_bonus_data.sql
index cb728e70dd9..cb728e70dd9 100644
--- a/sql/old/3.3.5a/2011_12_12_00_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_12_00_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/2011_12_13_00_world_misc.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_13_00_world_misc.sql
index 13958e75761..13958e75761 100644
--- a/sql/old/3.3.5a/2011_12_13_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_13_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_12_13_01_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_13_01_world_achievement_criteria_data.sql
index f5fa3ad48ce..f5fa3ad48ce 100644
--- a/sql/old/3.3.5a/2011_12_13_01_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_13_01_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_12_13_02_world_creature_template_addon.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_13_02_world_creature_template_addon.sql
index f1dc473bdd7..f1dc473bdd7 100644
--- a/sql/old/3.3.5a/2011_12_13_02_world_creature_template_addon.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_13_02_world_creature_template_addon.sql
diff --git a/sql/old/3.3.5a/2011_12_14_00_world_command.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_14_00_world_command.sql
index e871a82d89d..e871a82d89d 100644
--- a/sql/old/3.3.5a/2011_12_14_00_world_command.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_14_00_world_command.sql
diff --git a/sql/old/3.3.5a/2011_12_14_01_world_gameobject_template.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_14_01_world_gameobject_template.sql
index 52c04703acc..52c04703acc 100644
--- a/sql/old/3.3.5a/2011_12_14_01_world_gameobject_template.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_14_01_world_gameobject_template.sql
diff --git a/sql/old/3.3.5a/2011_12_16_00_world_creature_template.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_16_00_world_creature_template.sql
index 3ff9d630c54..3ff9d630c54 100644
--- a/sql/old/3.3.5a/2011_12_16_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_16_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2011_12_16_00_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_16_00_world_spell_bonus_data.sql
index 5864b9ac042..5864b9ac042 100644
--- a/sql/old/3.3.5a/2011_12_16_00_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_16_00_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/2011_12_17_00_world_creature.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_17_00_world_creature.sql
index 9b830c207ef..9b830c207ef 100644
--- a/sql/old/3.3.5a/2011_12_17_00_world_creature.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_17_00_world_creature.sql
diff --git a/sql/old/3.3.5a/2011_12_17_00_world_gameobject.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_17_00_world_gameobject.sql
index 5e8a01975cf..5e8a01975cf 100644
--- a/sql/old/3.3.5a/2011_12_17_00_world_gameobject.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_17_00_world_gameobject.sql
diff --git a/sql/old/3.3.5a/2011_12_18_00_world_creature_addon.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_18_00_world_creature_addon.sql
index dc165258391..dc165258391 100644
--- a/sql/old/3.3.5a/2011_12_18_00_world_creature_addon.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_18_00_world_creature_addon.sql
diff --git a/sql/old/3.3.5a/2011_12_18_01_world_gossip.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_18_01_world_gossip.sql
index eb76ffe4009..eb76ffe4009 100644
--- a/sql/old/3.3.5a/2011_12_18_01_world_gossip.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_18_01_world_gossip.sql
diff --git a/sql/old/3.3.5a/2011_12_18_02_world_spell_script_names.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_18_02_world_spell_script_names.sql
index c5f9a4376df..c5f9a4376df 100644
--- a/sql/old/3.3.5a/2011_12_18_02_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_18_02_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_12_18_03_world_trinity_string.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_18_03_world_trinity_string.sql
index d26cc356cff..d26cc356cff 100644
--- a/sql/old/3.3.5a/2011_12_18_03_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_18_03_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/2011_12_18_04_world_misc.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_18_04_world_misc.sql
index 64b00eb0070..64b00eb0070 100644
--- a/sql/old/3.3.5a/2011_12_18_04_world_misc.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_18_04_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_12_18_05_world_misc.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_18_05_world_misc.sql
index b8435c4211e..b8435c4211e 100644
--- a/sql/old/3.3.5a/2011_12_18_05_world_misc.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_18_05_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_12_18_06_world_sai.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_18_06_world_sai.sql
index 39cde4a3b3f..39cde4a3b3f 100644
--- a/sql/old/3.3.5a/2011_12_18_06_world_sai.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_18_06_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_12_18_07_world_conditions.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_18_07_world_conditions.sql
index ef669dd2dbb..ef669dd2dbb 100644
--- a/sql/old/3.3.5a/2011_12_18_07_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_18_07_world_conditions.sql
diff --git a/sql/old/3.3.5a/2011_12_19_00_world_conditions.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_19_00_world_conditions.sql
index a56151a9f8f..a56151a9f8f 100644
--- a/sql/old/3.3.5a/2011_12_19_00_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_19_00_world_conditions.sql
diff --git a/sql/old/3.3.5a/2011_12_19_01_world_quest_template.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_19_01_world_quest_template.sql
index c04fdddfe97..c04fdddfe97 100644
--- a/sql/old/3.3.5a/2011_12_19_01_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_19_01_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2011_12_19_02_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_19_02_world_achievement_criteria_data.sql
index b94b06cab82..b94b06cab82 100644
--- a/sql/old/3.3.5a/2011_12_19_02_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_19_02_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2011_12_24_00_world_misc.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_24_00_world_misc.sql
index 5e070d0771e..5e070d0771e 100644
--- a/sql/old/3.3.5a/2011_12_24_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_24_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_12_24_00_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_24_00_world_spell_proc_event.sql
index f25fa4c4856..f25fa4c4856 100644
--- a/sql/old/3.3.5a/2011_12_24_00_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_24_00_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2011_12_24_01_world_mail_loot_template.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_24_01_world_mail_loot_template.sql
index 2fc05e9cf17..2fc05e9cf17 100644
--- a/sql/old/3.3.5a/2011_12_24_01_world_mail_loot_template.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_24_01_world_mail_loot_template.sql
diff --git a/sql/old/3.3.5a/2011_12_25_00_world_areatrigger_scriptnames.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_25_00_world_areatrigger_scriptnames.sql
index 2a16394c7fe..2a16394c7fe 100644
--- a/sql/old/3.3.5a/2011_12_25_00_world_areatrigger_scriptnames.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_25_00_world_areatrigger_scriptnames.sql
diff --git a/sql/old/3.3.5a/2011_12_25_00_world_gameobject_scriptnames.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_25_00_world_gameobject_scriptnames.sql
index c545550e129..c545550e129 100644
--- a/sql/old/3.3.5a/2011_12_25_00_world_gameobject_scriptnames.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_25_00_world_gameobject_scriptnames.sql
diff --git a/sql/old/3.3.5a/2011_12_25_00_world_misc.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_25_00_world_misc.sql
index 8f1d3c44ceb..8f1d3c44ceb 100644
--- a/sql/old/3.3.5a/2011_12_25_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_25_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_12_25_00_world_sai.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_25_00_world_sai.sql
index d0f1572d708..d0f1572d708 100644
--- a/sql/old/3.3.5a/2011_12_25_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_25_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_12_25_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_25_00_world_spell_script_names.sql
index dc42056f84c..dc42056f84c 100644
--- a/sql/old/3.3.5a/2011_12_25_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_25_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2011_12_25_01_world_areatrigger_scriptnames.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_25_01_world_areatrigger_scriptnames.sql
index ebed9976f44..ebed9976f44 100644
--- a/sql/old/3.3.5a/2011_12_25_01_world_areatrigger_scriptnames.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_25_01_world_areatrigger_scriptnames.sql
diff --git a/sql/old/3.3.5a/2011_12_25_01_world_misc.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_25_01_world_misc.sql
index 9e4d7e6c058..9e4d7e6c058 100644
--- a/sql/old/3.3.5a/2011_12_25_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_25_01_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_12_25_01_world_sai.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_25_01_world_sai.sql
index 8ae439ffe67..8ae439ffe67 100644
--- a/sql/old/3.3.5a/2011_12_25_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_25_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_12_25_02_world_areatrigger_scriptnames.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_25_02_world_areatrigger_scriptnames.sql
index 78a1fbc98c9..78a1fbc98c9 100644
--- a/sql/old/3.3.5a/2011_12_25_02_world_areatrigger_scriptnames.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_25_02_world_areatrigger_scriptnames.sql
diff --git a/sql/old/3.3.5a/2011_12_25_02_world_misc.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_25_02_world_misc.sql
index ee2fd9c1964..ee2fd9c1964 100644
--- a/sql/old/3.3.5a/2011_12_25_02_world_misc.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_25_02_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_12_25_02_world_sai.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_25_02_world_sai.sql
index f0d69b04964..f0d69b04964 100644
--- a/sql/old/3.3.5a/2011_12_25_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_25_02_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_12_25_03_world_misc.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_25_03_world_misc.sql
index a8967354a3d..a8967354a3d 100644
--- a/sql/old/3.3.5a/2011_12_25_03_world_misc.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_25_03_world_misc.sql
diff --git a/sql/old/3.3.5a/2011_12_25_03_world_sai.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_25_03_world_sai.sql
index e53c9f72e38..e53c9f72e38 100644
--- a/sql/old/3.3.5a/2011_12_25_03_world_sai.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_25_03_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_12_26_00_world_sai.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_26_00_world_sai.sql
index 616ced60147..616ced60147 100644
--- a/sql/old/3.3.5a/2011_12_26_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_26_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_12_26_01_world_sai.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_26_01_world_sai.sql
index 50283820dc8..50283820dc8 100644
--- a/sql/old/3.3.5a/2011_12_26_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_26_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_12_26_02_world_sai.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_26_02_world_sai.sql
index 6da23e21875..6da23e21875 100644
--- a/sql/old/3.3.5a/2011_12_26_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_26_02_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_12_26_03_world_sai.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_26_03_world_sai.sql
index 07333e50a91..07333e50a91 100644
--- a/sql/old/3.3.5a/2011_12_26_03_world_sai.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_26_03_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_12_26_04_world_sai.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_26_04_world_sai.sql
index c508773c51a..c508773c51a 100644
--- a/sql/old/3.3.5a/2011_12_26_04_world_sai.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_26_04_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_12_26_05_world_sai.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_26_05_world_sai.sql
index 0155c3ad39b..0155c3ad39b 100644
--- a/sql/old/3.3.5a/2011_12_26_05_world_sai.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_26_05_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_12_26_06_world_sai.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_26_06_world_sai.sql
index 6335bd9f475..6335bd9f475 100644
--- a/sql/old/3.3.5a/2011_12_26_06_world_sai.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_26_06_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_12_26_07_world_sai.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_26_07_world_sai.sql
index ffe55b0e5f9..ffe55b0e5f9 100644
--- a/sql/old/3.3.5a/2011_12_26_07_world_sai.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_26_07_world_sai.sql
diff --git a/sql/old/3.3.5a/2011_12_26_08_world_sai.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_26_08_world_sai.sql
index 6633e97f2b4..6633e97f2b4 100644
--- a/sql/old/3.3.5a/2011_12_26_08_world_sai.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2011_12_26_08_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_01_02_00_world_sai.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_02_00_world_sai.sql
index 3b9abd4c746..3b9abd4c746 100644
--- a/sql/old/3.3.5a/2012_01_02_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_02_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_01_02_01_world_game_event.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_02_01_world_game_event.sql
index 11267a6b296..11267a6b296 100644
--- a/sql/old/3.3.5a/2012_01_02_01_world_game_event.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_02_01_world_game_event.sql
diff --git a/sql/old/3.3.5a/2012_01_02_02_world_creature_template.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_02_02_world_creature_template.sql
index 9d309c8aec9..9d309c8aec9 100644
--- a/sql/old/3.3.5a/2012_01_02_02_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_02_02_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_01_02_03_world_creature_onkill_reputation.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_02_03_world_creature_onkill_reputation.sql
index 282fc58dd3b..282fc58dd3b 100644
--- a/sql/old/3.3.5a/2012_01_02_03_world_creature_onkill_reputation.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_02_03_world_creature_onkill_reputation.sql
diff --git a/sql/old/3.3.5a/2012_01_03_00_world_gossip_menu.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_03_00_world_gossip_menu.sql
index 9e9bba43b1a..9e9bba43b1a 100644
--- a/sql/old/3.3.5a/2012_01_03_00_world_gossip_menu.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_03_00_world_gossip_menu.sql
diff --git a/sql/old/3.3.5a/2012_01_03_01_world_quest_template.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_03_01_world_quest_template.sql
index f35ea3be65b..f35ea3be65b 100644
--- a/sql/old/3.3.5a/2012_01_03_01_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_03_01_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2012_01_03_02_world_sai.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_03_02_world_sai.sql
index a841c4c06c9..a841c4c06c9 100644
--- a/sql/old/3.3.5a/2012_01_03_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_03_02_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_01_03_03_world_creature_template.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_03_03_world_creature_template.sql
index 29d0e802abe..29d0e802abe 100644
--- a/sql/old/3.3.5a/2012_01_03_03_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_03_03_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_01_03_04_world_gameobject_questrelation.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_03_04_world_gameobject_questrelation.sql
index 519fa99e2d5..519fa99e2d5 100644
--- a/sql/old/3.3.5a/2012_01_03_04_world_gameobject_questrelation.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_03_04_world_gameobject_questrelation.sql
diff --git a/sql/old/3.3.5a/2012_01_03_05_world_creature.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_03_05_world_creature.sql
index b30ca2d5ef4..b30ca2d5ef4 100644
--- a/sql/old/3.3.5a/2012_01_03_05_world_creature.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_03_05_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_01_03_06_world_sai.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_03_06_world_sai.sql
index 858dc3f498d..858dc3f498d 100644
--- a/sql/old/3.3.5a/2012_01_03_06_world_sai.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_03_06_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_01_03_07_world_creature.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_03_07_world_creature.sql
index 5098901b564..5098901b564 100644
--- a/sql/old/3.3.5a/2012_01_03_07_world_creature.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_03_07_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_01_04_00_world_gossip_menu.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_00_world_gossip_menu.sql
index cf11ba74eb2..cf11ba74eb2 100644
--- a/sql/old/3.3.5a/2012_01_04_00_world_gossip_menu.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_00_world_gossip_menu.sql
diff --git a/sql/old/3.3.5a/2012_01_04_01_world_game_event_seasonal_questrelation.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_01_world_game_event_seasonal_questrelation.sql
index 0619903ed42..0619903ed42 100644
--- a/sql/old/3.3.5a/2012_01_04_01_world_game_event_seasonal_questrelation.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_01_world_game_event_seasonal_questrelation.sql
diff --git a/sql/old/3.3.5a/2012_01_04_02_world_achievements.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_02_world_achievements.sql
index cbd5efa3cd6..cbd5efa3cd6 100644
--- a/sql/old/3.3.5a/2012_01_04_02_world_achievements.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_02_world_achievements.sql
diff --git a/sql/old/3.3.5a/2012_01_04_02_world_sai.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_02_world_sai.sql
index 70cb3fc9a04..70cb3fc9a04 100644
--- a/sql/old/3.3.5a/2012_01_04_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_02_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_01_04_03_world_spell_script_names.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_03_world_spell_script_names.sql
index f8ae3db6ad3..f8ae3db6ad3 100644
--- a/sql/old/3.3.5a/2012_01_04_03_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_03_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_01_04_04_world_creature.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_04_world_creature.sql
index 58970cd03c7..58970cd03c7 100644
--- a/sql/old/3.3.5a/2012_01_04_04_world_creature.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_04_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_01_04_04_world_creature_template.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_04_world_creature_template.sql
index 6131c439fdb..6131c439fdb 100644
--- a/sql/old/3.3.5a/2012_01_04_04_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_04_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_01_04_05_world_waypoint_data.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_05_world_waypoint_data.sql
index f92b0392a76..f92b0392a76 100644
--- a/sql/old/3.3.5a/2012_01_04_05_world_waypoint_data.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_05_world_waypoint_data.sql
diff --git a/sql/old/3.3.5a/2012_01_04_06_world_waypoint_data.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_06_world_waypoint_data.sql
index c4cefc87c63..c4cefc87c63 100644
--- a/sql/old/3.3.5a/2012_01_04_06_world_waypoint_data.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_06_world_waypoint_data.sql
diff --git a/sql/old/3.3.5a/2012_01_04_07_world_gossip_menu.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_07_world_gossip_menu.sql
index 9e9bba43b1a..9e9bba43b1a 100644
--- a/sql/old/3.3.5a/2012_01_04_07_world_gossip_menu.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_07_world_gossip_menu.sql
diff --git a/sql/old/3.3.5a/2012_01_04_08_world_gossip_menu.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_08_world_gossip_menu.sql
index 826ca19e99f..826ca19e99f 100644
--- a/sql/old/3.3.5a/2012_01_04_08_world_gossip_menu.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_08_world_gossip_menu.sql
diff --git a/sql/old/3.3.5a/2012_01_04_09_world_gossip_menu.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_09_world_gossip_menu.sql
index b95eb723d03..b95eb723d03 100644
--- a/sql/old/3.3.5a/2012_01_04_09_world_gossip_menu.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_09_world_gossip_menu.sql
diff --git a/sql/old/3.3.5a/2012_01_04_10_world_gossip_menu.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_10_world_gossip_menu.sql
index b41f74e8050..b41f74e8050 100644
--- a/sql/old/3.3.5a/2012_01_04_10_world_gossip_menu.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_10_world_gossip_menu.sql
diff --git a/sql/old/3.3.5a/2012_01_04_11_world_gossip_menu.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_11_world_gossip_menu.sql
index 4356f9c7a0a..4356f9c7a0a 100644
--- a/sql/old/3.3.5a/2012_01_04_11_world_gossip_menu.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_11_world_gossip_menu.sql
diff --git a/sql/old/3.3.5a/2012_01_04_12_world_gosip_menu.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_12_world_gosip_menu.sql
index a57dc7bcdba..a57dc7bcdba 100644
--- a/sql/old/3.3.5a/2012_01_04_12_world_gosip_menu.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_12_world_gosip_menu.sql
diff --git a/sql/old/3.3.5a/2012_01_04_13_world_gossip_menu.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_13_world_gossip_menu.sql
index 5a102db3f08..5a102db3f08 100644
--- a/sql/old/3.3.5a/2012_01_04_13_world_gossip_menu.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_13_world_gossip_menu.sql
diff --git a/sql/old/3.3.5a/2012_01_04_14_world_gossip_menu.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_14_world_gossip_menu.sql
index be28d634899..be28d634899 100644
--- a/sql/old/3.3.5a/2012_01_04_14_world_gossip_menu.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_14_world_gossip_menu.sql
diff --git a/sql/old/3.3.5a/2012_01_04_15_world_gossip_menu.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_15_world_gossip_menu.sql
index 38d449640f2..38d449640f2 100644
--- a/sql/old/3.3.5a/2012_01_04_15_world_gossip_menu.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_04_15_world_gossip_menu.sql
diff --git a/sql/old/3.3.5a/2012_01_05_00_world_script_texts.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_00_world_script_texts.sql
index 2fcaaf83e49..2fcaaf83e49 100644
--- a/sql/old/3.3.5a/2012_01_05_00_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_00_world_script_texts.sql
diff --git a/sql/old/3.3.5a/2012_01_05_01_world_gameobject.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_01_world_gameobject.sql
index aa67382e579..aa67382e579 100644
--- a/sql/old/3.3.5a/2012_01_05_01_world_gameobject.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_01_world_gameobject.sql
diff --git a/sql/old/3.3.5a/2012_01_05_02_world_gameobject_template.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_02_world_gameobject_template.sql
index fd0cd3406e4..fd0cd3406e4 100644
--- a/sql/old/3.3.5a/2012_01_05_02_world_gameobject_template.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_02_world_gameobject_template.sql
diff --git a/sql/old/3.3.5a/2012_01_05_03_world_creature_model_info.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_03_world_creature_model_info.sql
index 8da923db96b..8da923db96b 100644
--- a/sql/old/3.3.5a/2012_01_05_03_world_creature_model_info.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_03_world_creature_model_info.sql
diff --git a/sql/old/3.3.5a/2012_01_05_04_world_gameobject.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_04_world_gameobject.sql
index 4090eb0c123..4090eb0c123 100644
--- a/sql/old/3.3.5a/2012_01_05_04_world_gameobject.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_04_world_gameobject.sql
diff --git a/sql/old/3.3.5a/2012_01_05_05_world_creature.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_05_world_creature.sql
index b902db64ee6..b902db64ee6 100644
--- a/sql/old/3.3.5a/2012_01_05_05_world_creature.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_05_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_01_05_06_world_spell_script_names.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_06_world_spell_script_names.sql
index 1a22c2916bb..1a22c2916bb 100644
--- a/sql/old/3.3.5a/2012_01_05_06_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_06_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_01_05_07_world_creature_template.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_07_world_creature_template.sql
index b3f0c8aeec6..b3f0c8aeec6 100644
--- a/sql/old/3.3.5a/2012_01_05_07_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_07_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_01_05_08_world_creature_template.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_08_world_creature_template.sql
index e62617c0914..e62617c0914 100644
--- a/sql/old/3.3.5a/2012_01_05_08_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_08_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_01_05_09_world_waypoint_data.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_09_world_waypoint_data.sql
index 6299472a263..6299472a263 100644
--- a/sql/old/3.3.5a/2012_01_05_09_world_waypoint_data.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_09_world_waypoint_data.sql
diff --git a/sql/old/3.3.5a/2012_01_05_10_world_creature_template.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_10_world_creature_template.sql
index a3d8d2432b5..a3d8d2432b5 100644
--- a/sql/old/3.3.5a/2012_01_05_10_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_10_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_01_05_11_world_creature_onkill_reputation.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_11_world_creature_onkill_reputation.sql
index 3ce642fcd2c..3ce642fcd2c 100644
--- a/sql/old/3.3.5a/2012_01_05_11_world_creature_onkill_reputation.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_11_world_creature_onkill_reputation.sql
diff --git a/sql/old/3.3.5a/2012_01_05_12_world_game_event_seasonal_questrelation.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_12_world_game_event_seasonal_questrelation.sql
index ad6013b0edf..ad6013b0edf 100644
--- a/sql/old/3.3.5a/2012_01_05_12_world_game_event_seasonal_questrelation.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_12_world_game_event_seasonal_questrelation.sql
diff --git a/sql/old/3.3.5a/2012_01_05_13_world_creature_transport.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_13_world_creature_transport.sql
index 3acb70a4442..3acb70a4442 100644
--- a/sql/old/3.3.5a/2012_01_05_13_world_creature_transport.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_13_world_creature_transport.sql
diff --git a/sql/old/3.3.5a/2012_01_05_14_world_command.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_14_world_command.sql
index d890ab5509c..d890ab5509c 100644
--- a/sql/old/3.3.5a/2012_01_05_14_world_command.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_14_world_command.sql
diff --git a/sql/old/3.3.5a/2012_01_05_14_world_creature_template.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_14_world_creature_template.sql
index 331a533812d..331a533812d 100644
--- a/sql/old/3.3.5a/2012_01_05_14_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_05_14_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_01_06_00_world_creature_template_addon.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_00_world_creature_template_addon.sql
index 0ebc498ac03..0ebc498ac03 100644
--- a/sql/old/3.3.5a/2012_01_06_00_world_creature_template_addon.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_00_world_creature_template_addon.sql
diff --git a/sql/old/3.3.5a/2012_01_06_00_world_misc.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_00_world_misc.sql
index 5cc96ef17a8..5cc96ef17a8 100644
--- a/sql/old/3.3.5a/2012_01_06_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_01_06_01_world_creature_template.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_01_world_creature_template.sql
index fdf97fda464..fdf97fda464 100644
--- a/sql/old/3.3.5a/2012_01_06_01_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_01_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_01_06_02_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_02_world_achievement_criteria_data.sql
index ada306fc43e..ada306fc43e 100644
--- a/sql/old/3.3.5a/2012_01_06_02_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_02_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2012_01_06_03_world_item_loot_template.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_03_world_item_loot_template.sql
index 06aa7ab5687..06aa7ab5687 100644
--- a/sql/old/3.3.5a/2012_01_06_03_world_item_loot_template.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_03_world_item_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_01_06_04_world_creature_questrelation.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_04_world_creature_questrelation.sql
index e1dce65f3bc..e1dce65f3bc 100644
--- a/sql/old/3.3.5a/2012_01_06_04_world_creature_questrelation.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_04_world_creature_questrelation.sql
diff --git a/sql/old/3.3.5a/2012_01_06_05_world_creature_template.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_05_world_creature_template.sql
index 412fab4dab2..412fab4dab2 100644
--- a/sql/old/3.3.5a/2012_01_06_05_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_05_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_01_06_06_world_quest_template.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_06_world_quest_template.sql
index 4f58452d980..4f58452d980 100644
--- a/sql/old/3.3.5a/2012_01_06_06_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_06_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2012_01_06_07_world_sai.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_07_world_sai.sql
index c78199b615a..c78199b615a 100644
--- a/sql/old/3.3.5a/2012_01_06_07_world_sai.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_07_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_01_06_08_world_creature_template.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_08_world_creature_template.sql
index d59a5551f14..d59a5551f14 100644
--- a/sql/old/3.3.5a/2012_01_06_08_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_08_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_01_06_09_world_creature_questrelation.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_09_world_creature_questrelation.sql
index c2af677f047..c2af677f047 100644
--- a/sql/old/3.3.5a/2012_01_06_09_world_creature_questrelation.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_09_world_creature_questrelation.sql
diff --git a/sql/old/3.3.5a/2012_01_06_10_world_creature_template.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_10_world_creature_template.sql
index c121fd7424b..c121fd7424b 100644
--- a/sql/old/3.3.5a/2012_01_06_10_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_10_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_01_06_11_world_sai.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_11_world_sai.sql
index c785030b93e..c785030b93e 100644
--- a/sql/old/3.3.5a/2012_01_06_11_world_sai.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_11_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_01_06_12_world_sai.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_12_world_sai.sql
index b9c1319347d..b9c1319347d 100644
--- a/sql/old/3.3.5a/2012_01_06_12_world_sai.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_06_12_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_01_07_00_world_creature_addon.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_07_00_world_creature_addon.sql
index 83e1efbac80..83e1efbac80 100644
--- a/sql/old/3.3.5a/2012_01_07_00_world_creature_addon.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_07_00_world_creature_addon.sql
diff --git a/sql/old/3.3.5a/2012_01_07_01_world_creature_template.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_07_01_world_creature_template.sql
index deba1c596f0..deba1c596f0 100644
--- a/sql/old/3.3.5a/2012_01_07_01_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_07_01_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_01_07_02_world_gameobject_template.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_07_02_world_gameobject_template.sql
index 438a49d969a..438a49d969a 100644
--- a/sql/old/3.3.5a/2012_01_07_02_world_gameobject_template.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_07_02_world_gameobject_template.sql
diff --git a/sql/old/3.3.5a/2012_01_07_03_world_creature_template.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_07_03_world_creature_template.sql
index 4e12b66153e..4e12b66153e 100644
--- a/sql/old/3.3.5a/2012_01_07_03_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_07_03_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_01_07_04_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_07_04_world_creature_loot_template.sql
index 6855308ed82..6855308ed82 100644
--- a/sql/old/3.3.5a/2012_01_07_04_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_07_04_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_01_07_05_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_07_05_world_creature_loot_template.sql
index 5ffdb8f6261..5ffdb8f6261 100644
--- a/sql/old/3.3.5a/2012_01_07_05_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB44_to_TDB45_updates/world/2012_01_07_05_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_01_14_00_characters_lfg_data.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/characters/2012_01_14_00_characters_lfg_data.sql
index 3c6671a3914..3c6671a3914 100644
--- a/sql/old/3.3.5a/2012_01_14_00_characters_lfg_data.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/characters/2012_01_14_00_characters_lfg_data.sql
diff --git a/sql/old/3.3.5a/2012_01_23_00_characters_character_queststatus_rewarded.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/characters/2012_01_23_00_characters_character_queststatus_rewarded.sql
index d81cf3a6617..d81cf3a6617 100644
--- a/sql/old/3.3.5a/2012_01_23_00_characters_character_queststatus_rewarded.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/characters/2012_01_23_00_characters_character_queststatus_rewarded.sql
diff --git a/sql/old/3.3.5a/2012_01_08_00_world_version.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_00_world_version.sql
index 721fea914f1..721fea914f1 100644
--- a/sql/old/3.3.5a/2012_01_08_00_world_version.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_00_world_version.sql
diff --git a/sql/old/3.3.5a/2012_01_08_01_world_sai.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_01_world_sai.sql
index a132a07e128..a132a07e128 100644
--- a/sql/old/3.3.5a/2012_01_08_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_01_08_02_world_creature_template.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_02_world_creature_template.sql
index a544118aa4f..a544118aa4f 100644
--- a/sql/old/3.3.5a/2012_01_08_02_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_02_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_01_08_03_world_gossip_menu.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_03_world_gossip_menu.sql
index 6555d25fbc3..6555d25fbc3 100644
--- a/sql/old/3.3.5a/2012_01_08_03_world_gossip_menu.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_03_world_gossip_menu.sql
diff --git a/sql/old/3.3.5a/2012_01_08_04_world_quest_template.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_04_world_quest_template.sql
index fdc3c401302..fdc3c401302 100644
--- a/sql/old/3.3.5a/2012_01_08_04_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_04_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2012_01_08_05_world_conditions.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_05_world_conditions.sql
index b8e43e7d0e2..b8e43e7d0e2 100644
--- a/sql/old/3.3.5a/2012_01_08_05_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_05_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_01_08_06_world_creature_text.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_06_world_creature_text.sql
index 31331faaa95..31331faaa95 100644
--- a/sql/old/3.3.5a/2012_01_08_06_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_06_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_01_08_07_world_creature_text.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_07_world_creature_text.sql
index 0cb9601a156..0cb9601a156 100644
--- a/sql/old/3.3.5a/2012_01_08_07_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_07_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_01_08_08_world_creature_text.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_08_world_creature_text.sql
index 7c4a1f9ba7d..7c4a1f9ba7d 100644
--- a/sql/old/3.3.5a/2012_01_08_08_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_08_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_01_08_09_world_creature_text.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_09_world_creature_text.sql
index 55f777dc733..55f777dc733 100644
--- a/sql/old/3.3.5a/2012_01_08_09_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_09_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_01_08_11_world_creature_text.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_11_world_creature_text.sql
index ae4e544b3f7..ae4e544b3f7 100644
--- a/sql/old/3.3.5a/2012_01_08_11_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_11_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_01_08_12_world_creature_text.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_12_world_creature_text.sql
index 13b452e7b6a..13b452e7b6a 100644
--- a/sql/old/3.3.5a/2012_01_08_12_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_12_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_01_08_13_world_creature_text.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_13_world_creature_text.sql
index 83e9f70f049..83e9f70f049 100644
--- a/sql/old/3.3.5a/2012_01_08_13_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_13_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_01_08_14_world_creature_text.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_14_world_creature_text.sql
index d62ac5fdd20..d62ac5fdd20 100644
--- a/sql/old/3.3.5a/2012_01_08_14_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_14_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_01_08_15_world_script_texts.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_15_world_script_texts.sql
index b0614eda526..b0614eda526 100644
--- a/sql/old/3.3.5a/2012_01_08_15_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_15_world_script_texts.sql
diff --git a/sql/old/3.3.5a/2012_01_08_16_world_misc.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_16_world_misc.sql
index 7ac496f7edb..7ac496f7edb 100644
--- a/sql/old/3.3.5a/2012_01_08_16_world_misc.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_16_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_01_08_18_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_18_world_achievement_criteria_data.sql
index e20fd1c55bb..e20fd1c55bb 100644
--- a/sql/old/3.3.5a/2012_01_08_18_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_18_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2012_01_08_18_world_creature_addon.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_18_world_creature_addon.sql
index 7570cc14afe..7570cc14afe 100644
--- a/sql/old/3.3.5a/2012_01_08_18_world_creature_addon.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_18_world_creature_addon.sql
diff --git a/sql/old/3.3.5a/2012_01_08_18_world_spell_linked_spell.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_18_world_spell_linked_spell.sql
index 927c6c0c663..927c6c0c663 100644
--- a/sql/old/3.3.5a/2012_01_08_18_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_18_world_spell_linked_spell.sql
diff --git a/sql/old/3.3.5a/2012_01_08_18_world_waypoint_data.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_18_world_waypoint_data.sql
index e443f7c055a..e443f7c055a 100644
--- a/sql/old/3.3.5a/2012_01_08_18_world_waypoint_data.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_18_world_waypoint_data.sql
diff --git a/sql/old/3.3.5a/2012_01_08_18_world_waypoint_scripts.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_18_world_waypoint_scripts.sql
index f6c147155ea..f6c147155ea 100644
--- a/sql/old/3.3.5a/2012_01_08_18_world_waypoint_scripts.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_18_world_waypoint_scripts.sql
diff --git a/sql/old/3.3.5a/2012_01_08_19_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_19_world_achievement_criteria_data.sql
index 6cd1a367e81..6cd1a367e81 100644
--- a/sql/old/3.3.5a/2012_01_08_19_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_08_19_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2012_01_09_00_world_creature_text.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_09_00_world_creature_text.sql
index 2a70be00b12..2a70be00b12 100644
--- a/sql/old/3.3.5a/2012_01_09_00_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_09_00_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_01_09_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_09_00_world_spell_script_names.sql
index 7279fc54413..7279fc54413 100644
--- a/sql/old/3.3.5a/2012_01_09_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_09_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_01_09_01_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_09_01_world_achievement_criteria_data.sql
index ae3c2ec960a..ae3c2ec960a 100644
--- a/sql/old/3.3.5a/2012_01_09_01_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_09_01_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2012_01_09_01_world_creature_text.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_09_01_world_creature_text.sql
index d1ec26bd7f4..d1ec26bd7f4 100644
--- a/sql/old/3.3.5a/2012_01_09_01_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_09_01_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_01_09_01_world_smart_scripts.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_09_01_world_smart_scripts.sql
index a7304fa6e6a..a7304fa6e6a 100644
--- a/sql/old/3.3.5a/2012_01_09_01_world_smart_scripts.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_09_01_world_smart_scripts.sql
diff --git a/sql/old/3.3.5a/2012_01_11_00_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_11_00_world_achievement_criteria_data.sql
index 6c5d8ae7866..6c5d8ae7866 100644
--- a/sql/old/3.3.5a/2012_01_11_00_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_11_00_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2012_01_11_00_world_disables.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_11_00_world_disables.sql
index 18f9a5c3964..18f9a5c3964 100644
--- a/sql/old/3.3.5a/2012_01_11_00_world_disables.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_11_00_world_disables.sql
diff --git a/sql/old/3.3.5a/2012_01_11_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_11_00_world_spell_script_names.sql
index 82428ef989e..82428ef989e 100644
--- a/sql/old/3.3.5a/2012_01_11_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_11_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_01_11_01_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_11_01_world_achievement_criteria_data.sql
index aa3ec94a5a8..aa3ec94a5a8 100644
--- a/sql/old/3.3.5a/2012_01_11_01_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_11_01_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2012_01_11_01_world_spell_script_names.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_11_01_world_spell_script_names.sql
index 4600f190c4e..4600f190c4e 100644
--- a/sql/old/3.3.5a/2012_01_11_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_11_01_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_01_12_00_world_sai.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_12_00_world_sai.sql
index 6acbd0bd293..6acbd0bd293 100644
--- a/sql/old/3.3.5a/2012_01_12_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_12_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_01_13_00_world_creature.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_13_00_world_creature.sql
index dfe531dcbc6..dfe531dcbc6 100644
--- a/sql/old/3.3.5a/2012_01_13_00_world_creature.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_13_00_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_01_13_01_world_gossip_menu.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_13_01_world_gossip_menu.sql
index 5bbb77fe425..5bbb77fe425 100644
--- a/sql/old/3.3.5a/2012_01_13_01_world_gossip_menu.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_13_01_world_gossip_menu.sql
diff --git a/sql/old/3.3.5a/2012_01_13_02_world_sai.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_13_02_world_sai.sql
index 7d90c649bdb..7d90c649bdb 100644
--- a/sql/old/3.3.5a/2012_01_13_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_13_02_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_01_13_03_world_gossip_menu.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_13_03_world_gossip_menu.sql
index 248f1adbfa4..248f1adbfa4 100644
--- a/sql/old/3.3.5a/2012_01_13_03_world_gossip_menu.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_13_03_world_gossip_menu.sql
diff --git a/sql/old/3.3.5a/2012_01_13_04_world_creature_texts.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_13_04_world_creature_texts.sql
index ffab5673873..ffab5673873 100644
--- a/sql/old/3.3.5a/2012_01_13_04_world_creature_texts.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_13_04_world_creature_texts.sql
diff --git a/sql/old/3.3.5a/2012_01_13_05_world_creature_texts.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_13_05_world_creature_texts.sql
index 87aee698a11..87aee698a11 100644
--- a/sql/old/3.3.5a/2012_01_13_05_world_creature_texts.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_13_05_world_creature_texts.sql
diff --git a/sql/old/3.3.5a/2012_01_13_06_world_creature_text.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_13_06_world_creature_text.sql
index 99429cfad5f..99429cfad5f 100644
--- a/sql/old/3.3.5a/2012_01_13_06_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_13_06_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_01_14_00_world_gossip_menu.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_14_00_world_gossip_menu.sql
index f328d101c57..f328d101c57 100644
--- a/sql/old/3.3.5a/2012_01_14_00_world_gossip_menu.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_14_00_world_gossip_menu.sql
diff --git a/sql/old/3.3.5a/2012_01_14_01_world_npc_trainer.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_14_01_world_npc_trainer.sql
index 0f3e598b5a3..0f3e598b5a3 100644
--- a/sql/old/3.3.5a/2012_01_14_01_world_npc_trainer.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_14_01_world_npc_trainer.sql
diff --git a/sql/old/3.3.5a/2012_01_14_02_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_14_02_world_spell_proc_event.sql
index 846afdda6cc..846afdda6cc 100644
--- a/sql/old/3.3.5a/2012_01_14_02_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_14_02_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2012_01_14_03_world_trinity_string.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_14_03_world_trinity_string.sql
index 7dab007f774..7dab007f774 100644
--- a/sql/old/3.3.5a/2012_01_14_03_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_14_03_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/2012_01_15_00_world_loot_template.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_15_00_world_loot_template.sql
index af61833536d..af61833536d 100644
--- a/sql/old/3.3.5a/2012_01_15_00_world_loot_template.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_15_00_world_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_01_15_02_world_creature_template.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_15_02_world_creature_template.sql
index 4b6dcad8a33..4b6dcad8a33 100644
--- a/sql/old/3.3.5a/2012_01_15_02_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_15_02_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_01_15_03_world_item_loot_template.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_15_03_world_item_loot_template.sql
index 308ec2a3691..308ec2a3691 100644
--- a/sql/old/3.3.5a/2012_01_15_03_world_item_loot_template.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_15_03_world_item_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_01_16_00_world_stored_procedure.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_16_00_world_stored_procedure.sql
index c8ccaaf6d9b..c8ccaaf6d9b 100644
--- a/sql/old/3.3.5a/2012_01_16_00_world_stored_procedure.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_16_00_world_stored_procedure.sql
diff --git a/sql/old/3.3.5a/2012_01_16_01_world_sai.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_16_01_world_sai.sql
index 881f6cb919c..881f6cb919c 100644
--- a/sql/old/3.3.5a/2012_01_16_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_16_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_01_16_02_world_sai.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_16_02_world_sai.sql
index 435675fd143..435675fd143 100644
--- a/sql/old/3.3.5a/2012_01_16_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_16_02_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_01_16_03_world_sai.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_16_03_world_sai.sql
index f5e0d90983f..f5e0d90983f 100644
--- a/sql/old/3.3.5a/2012_01_16_03_world_sai.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_16_03_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_01_16_04_world_sai.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_16_04_world_sai.sql
index 85087a57dec..85087a57dec 100644
--- a/sql/old/3.3.5a/2012_01_16_04_world_sai.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_16_04_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_01_16_05_world_sai.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_16_05_world_sai.sql
index d5966dfc3ec..d5966dfc3ec 100644
--- a/sql/old/3.3.5a/2012_01_16_05_world_sai.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_16_05_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_01_16_06_world_sai.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_16_06_world_sai.sql
index 62231b60fdc..62231b60fdc 100644
--- a/sql/old/3.3.5a/2012_01_16_06_world_sai.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_16_06_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_01_16_07_world_sai.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_16_07_world_sai.sql
index 79324bd2c0b..79324bd2c0b 100644
--- a/sql/old/3.3.5a/2012_01_16_07_world_sai.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_16_07_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_01_16_08_world_sai.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_16_08_world_sai.sql
index 0857b8fd45b..0857b8fd45b 100644
--- a/sql/old/3.3.5a/2012_01_16_08_world_sai.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_16_08_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_01_16_09_world_sai.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_16_09_world_sai.sql
index d82fc341ff0..d82fc341ff0 100644
--- a/sql/old/3.3.5a/2012_01_16_09_world_sai.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_16_09_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_01_17_00_world_misc.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_17_00_world_misc.sql
index 300d239bd43..300d239bd43 100644
--- a/sql/old/3.3.5a/2012_01_17_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_17_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_01_17_01_world_conditions.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_17_01_world_conditions.sql
index 6c562ba4d45..6c562ba4d45 100644
--- a/sql/old/3.3.5a/2012_01_17_01_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_17_01_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_01_19_00_world_quest_template.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_19_00_world_quest_template.sql
index f1af6e7eedd..f1af6e7eedd 100644
--- a/sql/old/3.3.5a/2012_01_19_00_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_19_00_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2012_01_19_01_world_sai.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_19_01_world_sai.sql
index 969eea6c4dd..969eea6c4dd 100644
--- a/sql/old/3.3.5a/2012_01_19_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_19_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_01_19_02_world_quest_template.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_19_02_world_quest_template.sql
index 7bff373242d..7bff373242d 100644
--- a/sql/old/3.3.5a/2012_01_19_02_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_19_02_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2012_01_19_03_world_sai.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_19_03_world_sai.sql
index 6588e6a1ba8..6588e6a1ba8 100644
--- a/sql/old/3.3.5a/2012_01_19_03_world_sai.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_19_03_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_01_19_04_world_sai.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_19_04_world_sai.sql
index 6c1530ce4ee..6c1530ce4ee 100644
--- a/sql/old/3.3.5a/2012_01_19_04_world_sai.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_19_04_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_01_19_05_world_sai.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_19_05_world_sai.sql
index 2e6a743167e..2e6a743167e 100644
--- a/sql/old/3.3.5a/2012_01_19_05_world_sai.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_19_05_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_01_19_06_world_sai.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_19_06_world_sai.sql
index 817d6bd9aaa..817d6bd9aaa 100644
--- a/sql/old/3.3.5a/2012_01_19_06_world_sai.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_19_06_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_01_19_07_world_sai.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_19_07_world_sai.sql
index 3b0e27667e6..3b0e27667e6 100644
--- a/sql/old/3.3.5a/2012_01_19_07_world_sai.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_19_07_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_01_19_08_world_sai.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_19_08_world_sai.sql
index 1bd79302354..1bd79302354 100644
--- a/sql/old/3.3.5a/2012_01_19_08_world_sai.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_19_08_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_01_21_00_world_creature.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_21_00_world_creature.sql
index 00df55bca88..00df55bca88 100644
--- a/sql/old/3.3.5a/2012_01_21_00_world_creature.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_21_00_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_01_21_00_world_sai.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_21_00_world_sai.sql
index e275c521e74..e275c521e74 100644
--- a/sql/old/3.3.5a/2012_01_21_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_21_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_01_21_01_world_npc_vendor.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_21_01_world_npc_vendor.sql
index f8c7d0f4327..f8c7d0f4327 100644
--- a/sql/old/3.3.5a/2012_01_21_01_world_npc_vendor.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_21_01_world_npc_vendor.sql
diff --git a/sql/old/3.3.5a/2012_01_21_02_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_21_02_world_achievement_criteria_data.sql
index a9c2781d57f..a9c2781d57f 100644
--- a/sql/old/3.3.5a/2012_01_21_02_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_21_02_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2012_01_22_00_world_command.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_22_00_world_command.sql
index c87b7b3f825..c87b7b3f825 100644
--- a/sql/old/3.3.5a/2012_01_22_00_world_command.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_22_00_world_command.sql
diff --git a/sql/old/3.3.5a/2012_01_22_00_world_sai.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_22_00_world_sai.sql
index 8df31981de1..8df31981de1 100644
--- a/sql/old/3.3.5a/2012_01_22_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_22_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_01_22_01_world_conditions.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_22_01_world_conditions.sql
index 9aaea4f8ac1..9aaea4f8ac1 100644
--- a/sql/old/3.3.5a/2012_01_22_01_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_22_01_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_01_22_02_world_creature_addon.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_22_02_world_creature_addon.sql
index 808d728610e..808d728610e 100644
--- a/sql/old/3.3.5a/2012_01_22_02_world_creature_addon.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_22_02_world_creature_addon.sql
diff --git a/sql/old/3.3.5a/2012_01_23_00_world_game_event_seasonal_questrelation.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_23_00_world_game_event_seasonal_questrelation.sql
index 40bf28a1ead..40bf28a1ead 100644
--- a/sql/old/3.3.5a/2012_01_23_00_world_game_event_seasonal_questrelation.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_23_00_world_game_event_seasonal_questrelation.sql
diff --git a/sql/old/3.3.5a/2012_01_23_00_world_sai.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_23_00_world_sai.sql
index d73561b6cd6..d73561b6cd6 100644
--- a/sql/old/3.3.5a/2012_01_23_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_23_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_01_23_01_world_creature_script_names.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_23_01_world_creature_script_names.sql
index d7c2b22725e..d7c2b22725e 100644
--- a/sql/old/3.3.5a/2012_01_23_01_world_creature_script_names.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_23_01_world_creature_script_names.sql
diff --git a/sql/old/3.3.5a/2012_01_23_02_world_disables.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_23_02_world_disables.sql
index 0a1be704dac..0a1be704dac 100644
--- a/sql/old/3.3.5a/2012_01_23_02_world_disables.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_23_02_world_disables.sql
diff --git a/sql/old/3.3.5a/2012_01_23_03_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_23_03_world_achievement_criteria_data.sql
index f647f2c999e..f647f2c999e 100644
--- a/sql/old/3.3.5a/2012_01_23_03_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_23_03_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2012_01_23_04_world_creature_text.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_23_04_world_creature_text.sql
index fe1d995ac9c..fe1d995ac9c 100644
--- a/sql/old/3.3.5a/2012_01_23_04_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_23_04_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_01_23_05_world_spell_script_names.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_23_05_world_spell_script_names.sql
index 6f3b4907e5b..6f3b4907e5b 100644
--- a/sql/old/3.3.5a/2012_01_23_05_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_23_05_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_01_23_06_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_23_06_world_achievement_criteria_data.sql
index 33899c3f512..33899c3f512 100644
--- a/sql/old/3.3.5a/2012_01_23_06_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_23_06_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2012_01_23_07_world_creature_text.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_23_07_world_creature_text.sql
index 90ac11e363c..90ac11e363c 100644
--- a/sql/old/3.3.5a/2012_01_23_07_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_23_07_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_01_24_00_world_misc.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_24_00_world_misc.sql
index e93f33dfec4..7520b1b4f05 100644
--- a/sql/old/3.3.5a/2012_01_24_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_24_00_world_misc.sql
@@ -1,5 +1,5 @@
-- Make Dame Evniki Kapsalis show vendor gossip option only to players with Crusader title
-UPDATE `creature_template` SET `AIName` = 'SmartAI',`ScriptName` = '' WHERE `entry` = 34885;
+UPDATE `creature_template` SET `ScriptName` = '' WHERE `entry` = 34885;
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=10598;
INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`COMMENT`) VALUES
(15,10598,0,0,17,2816,0,0,0,'',"Evniki Kapsalis should only sell to Crusaders"),
diff --git a/sql/old/3.3.5a/2012_01_24_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_24_00_world_spell_script_names.sql
index 0e772c3c200..0e772c3c200 100644
--- a/sql/old/3.3.5a/2012_01_24_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_24_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_01_26_00_world_sai.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_26_00_world_sai.sql
index ee69e263e2e..ee69e263e2e 100644
--- a/sql/old/3.3.5a/2012_01_26_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_26_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_01_27_00_world_player_factionchange_items.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_27_00_world_player_factionchange_items.sql
index b30768ee69a..b30768ee69a 100644
--- a/sql/old/3.3.5a/2012_01_27_00_world_player_factionchange_items.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_27_00_world_player_factionchange_items.sql
diff --git a/sql/old/3.3.5a/2012_01_28_00_world_conditions.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_28_00_world_conditions.sql
index e66d893db35..e66d893db35 100644
--- a/sql/old/3.3.5a/2012_01_28_00_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_28_00_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_01_29_00_world_conditions.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_29_00_world_conditions.sql
index 8a04993a03e..8a04993a03e 100644
--- a/sql/old/3.3.5a/2012_01_29_00_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_29_00_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_01_29_00_world_spell_dbc.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_29_00_world_spell_dbc.sql
index bbde43e3313..bbde43e3313 100644
--- a/sql/old/3.3.5a/2012_01_29_00_world_spell_dbc.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_29_00_world_spell_dbc.sql
diff --git a/sql/old/3.3.5a/2012_01_29_01_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_29_01_world_spell_bonus_data.sql
index d31489b8fce..d31489b8fce 100644
--- a/sql/old/3.3.5a/2012_01_29_01_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_29_01_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/2012_01_29_02_world_spell_trigger_spell.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_29_02_world_spell_trigger_spell.sql
index 13f9380c950..13f9380c950 100644
--- a/sql/old/3.3.5a/2012_01_29_02_world_spell_trigger_spell.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_29_02_world_spell_trigger_spell.sql
diff --git a/sql/old/3.3.5a/2012_01_29_03_world_misc.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_29_03_world_misc.sql
index 3253b5cd55b..3253b5cd55b 100644
--- a/sql/old/3.3.5a/2012_01_29_03_world_misc.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_29_03_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_01_29_04_world_misc.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_29_04_world_misc.sql
index 3686957e433..3686957e433 100644
--- a/sql/old/3.3.5a/2012_01_29_04_world_misc.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_29_04_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_01_30_00_world_conditions.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_30_00_world_conditions.sql
index 48b9c63b5cb..48b9c63b5cb 100644
--- a/sql/old/3.3.5a/2012_01_30_00_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_30_00_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_01_30_01_world_conditions.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_30_01_world_conditions.sql
index bcaf0af435a..bcaf0af435a 100644
--- a/sql/old/3.3.5a/2012_01_30_01_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_30_01_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_01_30_01_world_spell_script_names.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_30_01_world_spell_script_names.sql
index 6e4b10094e5..6e4b10094e5 100644
--- a/sql/old/3.3.5a/2012_01_30_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_30_01_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_01_30_02_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_30_02_world_creature_loot_template.sql
index 429d470a77f..429d470a77f 100644
--- a/sql/old/3.3.5a/2012_01_30_02_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_30_02_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_01_30_03_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_30_03_world_creature_loot_template.sql
index 531c472c263..531c472c263 100644
--- a/sql/old/3.3.5a/2012_01_30_03_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_30_03_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_01_30_04_world_gameobject_loot_template.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_30_04_world_gameobject_loot_template.sql
index 93c61b70153..93c61b70153 100644
--- a/sql/old/3.3.5a/2012_01_30_04_world_gameobject_loot_template.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_30_04_world_gameobject_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_01_30_05_world_gameobject_loot_template.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_30_05_world_gameobject_loot_template.sql
index 8196663eebe..8196663eebe 100644
--- a/sql/old/3.3.5a/2012_01_30_05_world_gameobject_loot_template.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_30_05_world_gameobject_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_01_31_00_world_gameobject_loot_template.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_31_00_world_gameobject_loot_template.sql
index 91f26990488..91f26990488 100644
--- a/sql/old/3.3.5a/2012_01_31_00_world_gameobject_loot_template.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_31_00_world_gameobject_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_01_31_01_world_misc.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_31_01_world_misc.sql
index c359f186431..c359f186431 100644
--- a/sql/old/3.3.5a/2012_01_31_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_01_31_01_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_02_01_00_world_misc.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_01_00_world_misc.sql
index e137f7a8238..e137f7a8238 100644
--- a/sql/old/3.3.5a/2012_02_01_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_01_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_02_02_00_world_item_loot_template.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_02_00_world_item_loot_template.sql
index f5b141d46a6..f5b141d46a6 100644
--- a/sql/old/3.3.5a/2012_02_02_00_world_item_loot_template.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_02_00_world_item_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_02_03_00_world_gossip_menu.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_03_00_world_gossip_menu.sql
index e56662f2e9d..e56662f2e9d 100644
--- a/sql/old/3.3.5a/2012_02_03_00_world_gossip_menu.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_03_00_world_gossip_menu.sql
diff --git a/sql/old/3.3.5a/2012_02_03_01_world_quest_template.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_03_01_world_quest_template.sql
index 9871fbf979e..9871fbf979e 100644
--- a/sql/old/3.3.5a/2012_02_03_01_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_03_01_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2012_02_04_00_world_creature.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_04_00_world_creature.sql
index ffc5dfe773b..ffc5dfe773b 100644
--- a/sql/old/3.3.5a/2012_02_04_00_world_creature.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_04_00_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_02_04_00_world_gameobject_template.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_04_00_world_gameobject_template.sql
index d070a1083bc..d070a1083bc 100644
--- a/sql/old/3.3.5a/2012_02_04_00_world_gameobject_template.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_04_00_world_gameobject_template.sql
diff --git a/sql/old/3.3.5a/2012_02_04_00_world_gossip_menu.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_04_00_world_gossip_menu.sql
index 9cae36ec0a9..9cae36ec0a9 100644
--- a/sql/old/3.3.5a/2012_02_04_00_world_gossip_menu.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_04_00_world_gossip_menu.sql
diff --git a/sql/old/3.3.5a/2012_02_04_01_world_creature.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_04_01_world_creature.sql
index 09f135c2715..09f135c2715 100644
--- a/sql/old/3.3.5a/2012_02_04_01_world_creature.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_04_01_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_02_05_00_world_creature_template.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_05_00_world_creature_template.sql
index 31751f9f324..31751f9f324 100644
--- a/sql/old/3.3.5a/2012_02_05_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_05_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_02_05_00_world_misc.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_05_00_world_misc.sql
index 3cff98dc41f..3cff98dc41f 100644
--- a/sql/old/3.3.5a/2012_02_05_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_05_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_02_05_01_world_game_event.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_05_01_world_game_event.sql
index 61c7e7db5ab..61c7e7db5ab 100644
--- a/sql/old/3.3.5a/2012_02_05_01_world_game_event.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_05_01_world_game_event.sql
diff --git a/sql/old/3.3.5a/2012_02_05_02_world_creature.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_05_02_world_creature.sql
index 84fe2cf0a31..84fe2cf0a31 100644
--- a/sql/old/3.3.5a/2012_02_05_02_world_creature.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_05_02_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_02_05_03_world_game_event.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_05_03_world_game_event.sql
index 157a2e9194c..157a2e9194c 100644
--- a/sql/old/3.3.5a/2012_02_05_03_world_game_event.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_05_03_world_game_event.sql
diff --git a/sql/old/3.3.5a/2012_02_05_04_world_misc.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_05_04_world_misc.sql
index 0d72b08167e..0d72b08167e 100644
--- a/sql/old/3.3.5a/2012_02_05_04_world_misc.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_05_04_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_02_05_04_world_quest_template.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_05_04_world_quest_template.sql
index 093ca8aa8bf..093ca8aa8bf 100644
--- a/sql/old/3.3.5a/2012_02_05_04_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_05_04_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2012_02_06_00_world_misc.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_06_00_world_misc.sql
index 984c618775d..984c618775d 100644
--- a/sql/old/3.3.5a/2012_02_06_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_06_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_02_07_00_world_misc.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_07_00_world_misc.sql
index ef34c56ed00..ef34c56ed00 100644
--- a/sql/old/3.3.5a/2012_02_07_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_07_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_02_08_00_world_misc.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_00_world_misc.sql
index 2ea3e0fab80..2ea3e0fab80 100644
--- a/sql/old/3.3.5a/2012_02_08_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_02_08_01_world_misc.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_01_world_misc.sql
index f6f6f9a6b94..f6f6f9a6b94 100644
--- a/sql/old/3.3.5a/2012_02_08_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_01_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_02_08_02_world_misc.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_02_world_misc.sql
index 64b6ba82cc9..64b6ba82cc9 100644
--- a/sql/old/3.3.5a/2012_02_08_02_world_misc.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_02_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_02_08_03_world_misc.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_03_world_misc.sql
index 80d2fd901fc..80d2fd901fc 100644
--- a/sql/old/3.3.5a/2012_02_08_03_world_misc.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_03_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_02_08_04_world_misc.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_04_world_misc.sql
index 1de2adc45f3..1de2adc45f3 100644
--- a/sql/old/3.3.5a/2012_02_08_04_world_misc.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_04_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_02_08_05_world_gameobject.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_05_world_gameobject.sql
index a9388d189a9..a9388d189a9 100644
--- a/sql/old/3.3.5a/2012_02_08_05_world_gameobject.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_05_world_gameobject.sql
diff --git a/sql/old/3.3.5a/2012_02_08_06_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_06_world_achievement_criteria_data.sql
index 199c9df86f4..199c9df86f4 100644
--- a/sql/old/3.3.5a/2012_02_08_06_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_06_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2012_02_08_07_world_pool.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_07_world_pool.sql
index 8f43e1b3b03..8f43e1b3b03 100644
--- a/sql/old/3.3.5a/2012_02_08_07_world_pool.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_07_world_pool.sql
diff --git a/sql/old/3.3.5a/2012_02_08_08_world_pool.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_08_world_pool.sql
index 96124ec2540..96124ec2540 100644
--- a/sql/old/3.3.5a/2012_02_08_08_world_pool.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_08_world_pool.sql
diff --git a/sql/old/3.3.5a/2012_02_08_09_world_quest_template.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_09_world_quest_template.sql
index 1b53bd34811..1b53bd34811 100644
--- a/sql/old/3.3.5a/2012_02_08_09_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_09_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2012_02_08_10_world_gossip.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_10_world_gossip.sql
index 009b56c7018..009b56c7018 100644
--- a/sql/old/3.3.5a/2012_02_08_10_world_gossip.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_10_world_gossip.sql
diff --git a/sql/old/3.3.5a/2012_02_08_11_world_pool.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_11_world_pool.sql
index ccae82e9689..ccae82e9689 100644
--- a/sql/old/3.3.5a/2012_02_08_11_world_pool.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_11_world_pool.sql
diff --git a/sql/old/3.3.5a/2012_02_08_12_world_sai.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_12_world_sai.sql
index 81ea39c8ecf..81ea39c8ecf 100644
--- a/sql/old/3.3.5a/2012_02_08_12_world_sai.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_12_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_02_08_13_world_gameobject.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_13_world_gameobject.sql
index 0a43dda67d4..0a43dda67d4 100644
--- a/sql/old/3.3.5a/2012_02_08_13_world_gameobject.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_13_world_gameobject.sql
diff --git a/sql/old/3.3.5a/2012_02_08_14_world_sai.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_14_world_sai.sql
index 4a06149b5a6..4a06149b5a6 100644
--- a/sql/old/3.3.5a/2012_02_08_14_world_sai.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_14_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_02_08_15_world_misc.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_15_world_misc.sql
index f6ea64249cf..f6ea64249cf 100644
--- a/sql/old/3.3.5a/2012_02_08_15_world_misc.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_15_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_02_08_16_world_sai.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_16_world_sai.sql
index 0f739ee3fab..0f739ee3fab 100644
--- a/sql/old/3.3.5a/2012_02_08_16_world_sai.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_08_16_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_02_10_00_world_conditions.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_10_00_world_conditions.sql
index 508011609cf..508011609cf 100644
--- a/sql/old/3.3.5a/2012_02_10_00_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_10_00_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_02_10_01_world_gameobject.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_10_01_world_gameobject.sql
index 1dbbb850472..1dbbb850472 100644
--- a/sql/old/3.3.5a/2012_02_10_01_world_gameobject.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_10_01_world_gameobject.sql
diff --git a/sql/old/3.3.5a/2012_02_10_02_world_conditions.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_10_02_world_conditions.sql
index 66d72e1be3a..66d72e1be3a 100644
--- a/sql/old/3.3.5a/2012_02_10_02_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_10_02_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_02_10_03_world_conditions.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_10_03_world_conditions.sql
index b46684df7d5..b46684df7d5 100644
--- a/sql/old/3.3.5a/2012_02_10_03_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_10_03_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_02_10_04_world_conditions.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_10_04_world_conditions.sql
index 4703ec29044..4703ec29044 100644
--- a/sql/old/3.3.5a/2012_02_10_04_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_10_04_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_02_11_00_world_creature.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_11_00_world_creature.sql
index c7d4971cc29..c7d4971cc29 100644
--- a/sql/old/3.3.5a/2012_02_11_00_world_creature.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_11_00_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_02_11_01_world_creature.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_11_01_world_creature.sql
index 898e746d306..898e746d306 100644
--- a/sql/old/3.3.5a/2012_02_11_01_world_creature.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_11_01_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_02_11_02_world_pool.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_11_02_world_pool.sql
index dd2cf949639..dd2cf949639 100644
--- a/sql/old/3.3.5a/2012_02_11_02_world_pool.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_11_02_world_pool.sql
diff --git a/sql/old/3.3.5a/2012_02_11_03_world_areatrigger.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_11_03_world_areatrigger.sql
index 80e86d52530..80e86d52530 100644
--- a/sql/old/3.3.5a/2012_02_11_03_world_areatrigger.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_11_03_world_areatrigger.sql
diff --git a/sql/old/3.3.5a/2012_02_11_04_world_sai.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_11_04_world_sai.sql
index ba2d106f472..ba2d106f472 100644
--- a/sql/old/3.3.5a/2012_02_11_04_world_sai.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_11_04_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_02_11_05_world_sai.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_11_05_world_sai.sql
index 2d773911118..2d773911118 100644
--- a/sql/old/3.3.5a/2012_02_11_05_world_sai.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_11_05_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_02_11_06_world_sai.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_11_06_world_sai.sql
index 7b1d09e9580..7b1d09e9580 100644
--- a/sql/old/3.3.5a/2012_02_11_06_world_sai.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_11_06_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_02_11_07_world_sai.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_11_07_world_sai.sql
index 935422fed67..935422fed67 100644
--- a/sql/old/3.3.5a/2012_02_11_07_world_sai.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_11_07_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_02_11_08_world_sai.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_11_08_world_sai.sql
index 81a0307f9ad..81a0307f9ad 100644
--- a/sql/old/3.3.5a/2012_02_11_08_world_sai.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_11_08_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_02_11_09_world_sai_gossip.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_11_09_world_sai_gossip.sql
index e3f67fac42b..e3f67fac42b 100644
--- a/sql/old/3.3.5a/2012_02_11_09_world_sai_gossip.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_11_09_world_sai_gossip.sql
diff --git a/sql/old/3.3.5a/2012_02_11_10_world_sai.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_11_10_world_sai.sql
index f2095e320fd..f2095e320fd 100644
--- a/sql/old/3.3.5a/2012_02_11_10_world_sai.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_11_10_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_02_12_00_world_gossip.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_12_00_world_gossip.sql
index f0c57e87b01..f0c57e87b01 100644
--- a/sql/old/3.3.5a/2012_02_12_00_world_gossip.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_12_00_world_gossip.sql
diff --git a/sql/old/3.3.5a/2012_02_12_01_world_sai.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_12_01_world_sai.sql
index 4e96f1da7c9..4e96f1da7c9 100644
--- a/sql/old/3.3.5a/2012_02_12_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_12_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_02_12_02_world_creature.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_12_02_world_creature.sql
index 75beec97d67..75beec97d67 100644
--- a/sql/old/3.3.5a/2012_02_12_02_world_creature.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_12_02_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_02_12_03_world_waypoint_data.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_12_03_world_waypoint_data.sql
index e47572b2074..e47572b2074 100644
--- a/sql/old/3.3.5a/2012_02_12_03_world_waypoint_data.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_12_03_world_waypoint_data.sql
diff --git a/sql/old/3.3.5a/2012_02_12_04_world_sai.sql b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_12_04_world_sai.sql
index 190e3c3c63e..190e3c3c63e 100644
--- a/sql/old/3.3.5a/2012_02_12_04_world_sai.sql
+++ b/sql/old/3.3.5a/TDB45_to_TDB46_updates/world/2012_02_12_04_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_02_19_00_auth_account.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/auth/2012_02_19_00_auth_account.sql
index a5b48ede3b4..a5b48ede3b4 100644
--- a/sql/old/3.3.5a/2012_02_19_00_auth_account.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/auth/2012_02_19_00_auth_account.sql
diff --git a/sql/old/3.3.5a/2012_03_25_00_auth_misc.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/auth/2012_03_25_00_auth_misc.sql
index f34882af8f6..f34882af8f6 100644
--- a/sql/old/3.3.5a/2012_03_25_00_auth_misc.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/auth/2012_03_25_00_auth_misc.sql
diff --git a/sql/old/3.3.5a/2012_03_26_00_auth_realmlist.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/auth/2012_03_26_00_auth_realmlist.sql
index 0a570a31773..0a570a31773 100644
--- a/sql/old/3.3.5a/2012_03_26_00_auth_realmlist.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/auth/2012_03_26_00_auth_realmlist.sql
diff --git a/sql/old/3.3.5a/2012_03_28_00_auth_account.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/auth/2012_03_28_00_auth_account.sql
index 199baac5178..199baac5178 100644
--- a/sql/old/3.3.5a/2012_03_28_00_auth_account.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/auth/2012_03_28_00_auth_account.sql
diff --git a/sql/old/3.3.5a/2012_03_28_01_auth_account_access.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/auth/2012_03_28_01_auth_account_access.sql
index 456dbf6c104..456dbf6c104 100644
--- a/sql/old/3.3.5a/2012_03_28_01_auth_account_access.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/auth/2012_03_28_01_auth_account_access.sql
diff --git a/sql/old/3.3.5a/2012_03_28_02_auth_account_banned.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/auth/2012_03_28_02_auth_account_banned.sql
index 917cea1a684..917cea1a684 100644
--- a/sql/old/3.3.5a/2012_03_28_02_auth_account_banned.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/auth/2012_03_28_02_auth_account_banned.sql
diff --git a/sql/old/3.3.5a/2012_03_28_03_auth_ip_banned.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/auth/2012_03_28_03_auth_ip_banned.sql
index 2e754effc60..2e754effc60 100644
--- a/sql/old/3.3.5a/2012_03_28_03_auth_ip_banned.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/auth/2012_03_28_03_auth_ip_banned.sql
diff --git a/sql/old/3.3.5a/2012_03_28_04_auth_logs.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/auth/2012_03_28_04_auth_logs.sql
index 4c837a47ed1..4c837a47ed1 100644
--- a/sql/old/3.3.5a/2012_03_28_04_auth_logs.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/auth/2012_03_28_04_auth_logs.sql
diff --git a/sql/old/3.3.5a/2012_03_28_05_auth_realmcharacters.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/auth/2012_03_28_05_auth_realmcharacters.sql
index e50b3c3f331..e50b3c3f331 100644
--- a/sql/old/3.3.5a/2012_03_28_05_auth_realmcharacters.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/auth/2012_03_28_05_auth_realmcharacters.sql
diff --git a/sql/old/3.3.5a/2012_03_28_06_auth_realmlist.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/auth/2012_03_28_06_auth_realmlist.sql
index 725702a9803..725702a9803 100644
--- a/sql/old/3.3.5a/2012_03_28_06_auth_realmlist.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/auth/2012_03_28_06_auth_realmlist.sql
diff --git a/sql/old/3.3.5a/2012_03_28_07_auth_uptime.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/auth/2012_03_28_07_auth_uptime.sql
index 0ea4e3321df..0ea4e3321df 100644
--- a/sql/old/3.3.5a/2012_03_28_07_auth_uptime.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/auth/2012_03_28_07_auth_uptime.sql
diff --git a/sql/old/3.3.5a/2012_04_01_00_auth_realmlist.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/auth/2012_04_01_00_auth_realmlist.sql
index e2e1efaf993..e2e1efaf993 100644
--- a/sql/old/3.3.5a/2012_04_01_00_auth_realmlist.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/auth/2012_04_01_00_auth_realmlist.sql
diff --git a/sql/old/3.3.5a/2012_04_04_00_auth_realmlist.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/auth/2012_04_04_00_auth_realmlist.sql
index 18f2d7b3d4c..18f2d7b3d4c 100644
--- a/sql/old/3.3.5a/2012_04_04_00_auth_realmlist.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/auth/2012_04_04_00_auth_realmlist.sql
diff --git a/sql/old/3.3.5a/2012_02_19_00_characters_warden_action.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/characters/2012_02_19_00_characters_warden_action.sql
index 587f65fedc5..587f65fedc5 100644
--- a/sql/old/3.3.5a/2012_02_19_00_characters_warden_action.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/characters/2012_02_19_00_characters_warden_action.sql
diff --git a/sql/old/3.3.5a/2012_04_07_00_characters_lag_reports.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/characters/2012_04_07_00_characters_lag_reports.sql
index 151ace1c976..151ace1c976 100644
--- a/sql/old/3.3.5a/2012_04_07_00_characters_lag_reports.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/characters/2012_04_07_00_characters_lag_reports.sql
diff --git a/sql/old/3.3.5a/2012_02_13_00_world_version.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_13_00_world_version.sql
index 2dd7ab92ddb..2dd7ab92ddb 100644
--- a/sql/old/3.3.5a/2012_02_13_00_world_version.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_13_00_world_version.sql
diff --git a/sql/old/3.3.5a/2012_02_14_00_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_14_00_world_achievement_criteria_data.sql
index e7993726132..e7993726132 100644
--- a/sql/old/3.3.5a/2012_02_14_00_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_14_00_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2012_02_15_00_world_quest_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_15_00_world_quest_template.sql
index e26f52fd0fe..e26f52fd0fe 100644
--- a/sql/old/3.3.5a/2012_02_15_00_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_15_00_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2012_02_15_01_world_areatrigger_tavern.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_15_01_world_areatrigger_tavern.sql
index bcd57602679..bcd57602679 100644
--- a/sql/old/3.3.5a/2012_02_15_01_world_areatrigger_tavern.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_15_01_world_areatrigger_tavern.sql
diff --git a/sql/old/3.3.5a/2012_02_15_02_world_item_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_15_02_world_item_template.sql
index 463d43368cd..463d43368cd 100644
--- a/sql/old/3.3.5a/2012_02_15_02_world_item_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_15_02_world_item_template.sql
diff --git a/sql/old/3.3.5a/2012_02_15_03_world_quest_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_15_03_world_quest_template.sql
index aabde0a3085..aabde0a3085 100644
--- a/sql/old/3.3.5a/2012_02_15_03_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_15_03_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2012_02_15_04_world_quest_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_15_04_world_quest_template.sql
index 8b6ad1d2cf9..8b6ad1d2cf9 100644
--- a/sql/old/3.3.5a/2012_02_15_04_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_15_04_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2012_02_15_06_world_creature_involvedrelation.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_15_06_world_creature_involvedrelation.sql
index 431e23b53b8..431e23b53b8 100644
--- a/sql/old/3.3.5a/2012_02_15_06_world_creature_involvedrelation.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_15_06_world_creature_involvedrelation.sql
diff --git a/sql/old/3.3.5a/2012_02_15_07_00_world_creature.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_15_07_00_world_creature.sql
index 75beec97d67..75beec97d67 100644
--- a/sql/old/3.3.5a/2012_02_15_07_00_world_creature.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_15_07_00_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_02_15_07_01_world_waypoint_data.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_15_07_01_world_waypoint_data.sql
index e47572b2074..e47572b2074 100644
--- a/sql/old/3.3.5a/2012_02_15_07_01_world_waypoint_data.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_15_07_01_world_waypoint_data.sql
diff --git a/sql/old/3.3.5a/2012_02_15_07_02_world_misc.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_15_07_02_world_misc.sql
index 046583ef0e2..046583ef0e2 100644
--- a/sql/old/3.3.5a/2012_02_15_07_02_world_misc.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_15_07_02_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_02_15_08_world_sai.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_15_08_world_sai.sql
index 3af2c108251..3af2c108251 100644
--- a/sql/old/3.3.5a/2012_02_15_08_world_sai.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_15_08_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_02_15_09_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_15_09_world_spell_proc_event.sql
index 9970d12fa72..9970d12fa72 100644
--- a/sql/old/3.3.5a/2012_02_15_09_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_15_09_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2012_02_16_00_world_conditions.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_16_00_world_conditions.sql
index 4634515f2cd..4634515f2cd 100644
--- a/sql/old/3.3.5a/2012_02_16_00_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_16_00_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_02_16_01_world_conditions.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_16_01_world_conditions.sql
index 4bcf997b8e4..4bcf997b8e4 100644
--- a/sql/old/3.3.5a/2012_02_16_01_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_16_01_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_02_17_00_world_waypoints.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_17_00_world_waypoints.sql
index 0b65ddb2d1e..0b65ddb2d1e 100644
--- a/sql/old/3.3.5a/2012_02_17_00_world_waypoints.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_17_00_world_waypoints.sql
diff --git a/sql/old/3.3.5a/2012_02_18_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_18_00_world_spell_script_names.sql
index dd2b991df7d..dd2b991df7d 100644
--- a/sql/old/3.3.5a/2012_02_18_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_18_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_02_18_01_world_spell_dbc.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_18_01_world_spell_dbc.sql
index 638ebdd7c18..638ebdd7c18 100644
--- a/sql/old/3.3.5a/2012_02_18_01_world_spell_dbc.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_18_01_world_spell_dbc.sql
diff --git a/sql/old/3.3.5a/2012_02_18_02_world_gossip.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_18_02_world_gossip.sql
index 47882d4eb36..47882d4eb36 100644
--- a/sql/old/3.3.5a/2012_02_18_02_world_gossip.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_18_02_world_gossip.sql
diff --git a/sql/old/3.3.5a/2012_02_18_03_world_gossip.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_18_03_world_gossip.sql
index 990006f5098..990006f5098 100644
--- a/sql/old/3.3.5a/2012_02_18_03_world_gossip.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_18_03_world_gossip.sql
diff --git a/sql/old/3.3.5a/2012_02_18_04_world_spell_script_names.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_18_04_world_spell_script_names.sql
index 1aa54740f97..1aa54740f97 100644
--- a/sql/old/3.3.5a/2012_02_18_04_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_18_04_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_02_18_05_world_creatures.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_18_05_world_creatures.sql
index 3fdac99c854..3fdac99c854 100644
--- a/sql/old/3.3.5a/2012_02_18_05_world_creatures.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_18_05_world_creatures.sql
diff --git a/sql/old/3.3.5a/2012_02_18_06_world_gossip.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_18_06_world_gossip.sql
index d2e9a8744db..d2e9a8744db 100644
--- a/sql/old/3.3.5a/2012_02_18_06_world_gossip.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_18_06_world_gossip.sql
diff --git a/sql/old/3.3.5a/2012_02_18_07_world_gossip.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_18_07_world_gossip.sql
index 6246f12cefc..6246f12cefc 100644
--- a/sql/old/3.3.5a/2012_02_18_07_world_gossip.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_18_07_world_gossip.sql
diff --git a/sql/old/3.3.5a/2012_02_18_08_world_gossip.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_18_08_world_gossip.sql
index a9fef9bcd76..a9fef9bcd76 100644
--- a/sql/old/3.3.5a/2012_02_18_08_world_gossip.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_18_08_world_gossip.sql
diff --git a/sql/old/3.3.5a/2012_02_19_00_world_quest_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_19_00_world_quest_template.sql
index 76ab51f803b..76ab51f803b 100644
--- a/sql/old/3.3.5a/2012_02_19_00_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_19_00_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2012_02_19_01_world_quest_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_19_01_world_quest_template.sql
index 2f888f08cdd..2f888f08cdd 100644
--- a/sql/old/3.3.5a/2012_02_19_01_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_19_01_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2012_02_19_02_world_gameobject.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_19_02_world_gameobject.sql
index 88a1f2e3a4c..88a1f2e3a4c 100644
--- a/sql/old/3.3.5a/2012_02_19_02_world_gameobject.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_19_02_world_gameobject.sql
diff --git a/sql/old/3.3.5a/2012_02_19_03_world_warden_checks.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_19_03_world_warden_checks.sql
index 3c9de3743f2..3c9de3743f2 100644
--- a/sql/old/3.3.5a/2012_02_19_03_world_warden_checks.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_19_03_world_warden_checks.sql
diff --git a/sql/old/3.3.5a/2012_02_19_04_world_misc_db_updates.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_19_04_world_misc_db_updates.sql
index 32fada1e895..32fada1e895 100644
--- a/sql/old/3.3.5a/2012_02_19_04_world_misc_db_updates.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_19_04_world_misc_db_updates.sql
diff --git a/sql/old/3.3.5a/2012_02_19_05_world_creature_text.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_19_05_world_creature_text.sql
index b70385660a1..b70385660a1 100644
--- a/sql/old/3.3.5a/2012_02_19_05_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_19_05_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_02_19_06_world_creature_text.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_19_06_world_creature_text.sql
index f69c4cb86a9..f69c4cb86a9 100644
--- a/sql/old/3.3.5a/2012_02_19_06_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_19_06_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_02_20_00_world_sai.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_20_00_world_sai.sql
index 44f8ab68d70..44f8ab68d70 100644
--- a/sql/old/3.3.5a/2012_02_20_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_20_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_02_20_01_world_gossip.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_20_01_world_gossip.sql
index f3943ded29a..f3943ded29a 100644
--- a/sql/old/3.3.5a/2012_02_20_01_world_gossip.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_20_01_world_gossip.sql
diff --git a/sql/old/3.3.5a/2012_02_20_02_world_conditons.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_20_02_world_conditons.sql
index 7fc68fc9193..7fc68fc9193 100644
--- a/sql/old/3.3.5a/2012_02_20_02_world_conditons.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_20_02_world_conditons.sql
diff --git a/sql/old/3.3.5a/2012_02_21_00_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_21_00_world_creature_loot_template.sql
index 25160b97dd4..25160b97dd4 100644
--- a/sql/old/3.3.5a/2012_02_21_00_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_21_00_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_02_21_01_world_conditions.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_21_01_world_conditions.sql
index deeec299744..deeec299744 100644
--- a/sql/old/3.3.5a/2012_02_21_01_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_21_01_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_02_21_02_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_21_02_world_creature_loot_template.sql
index 6c6af7ed2a3..6c6af7ed2a3 100644
--- a/sql/old/3.3.5a/2012_02_21_02_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_21_02_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_02_21_03_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_21_03_world_creature_loot_template.sql
index d7d043cbda9..d7d043cbda9 100644
--- a/sql/old/3.3.5a/2012_02_21_03_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_21_03_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_02_21_04_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_21_04_world_creature_loot_template.sql
index 3deedbf0b0d..3deedbf0b0d 100644
--- a/sql/old/3.3.5a/2012_02_21_04_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_21_04_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_02_21_05_world_gossip.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_21_05_world_gossip.sql
index 1bdccae5c39..1bdccae5c39 100644
--- a/sql/old/3.3.5a/2012_02_21_05_world_gossip.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_21_05_world_gossip.sql
diff --git a/sql/old/3.3.5a/2012_02_21_06_world_Gossip.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_21_06_world_Gossip.sql
index 77b8ee0f819..77b8ee0f819 100644
--- a/sql/old/3.3.5a/2012_02_21_06_world_Gossip.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_21_06_world_Gossip.sql
diff --git a/sql/old/3.3.5a/2012_02_22_00_world_sai.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_22_00_world_sai.sql
index 2e392f3a45f..2e392f3a45f 100644
--- a/sql/old/3.3.5a/2012_02_22_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_22_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_02_22_01_world_creature_text.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_22_01_world_creature_text.sql
index 8b7761e48a0..8b7761e48a0 100644
--- a/sql/old/3.3.5a/2012_02_22_01_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_22_01_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_02_22_02_world_misc.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_22_02_world_misc.sql
index 33bec2a9b78..33bec2a9b78 100644
--- a/sql/old/3.3.5a/2012_02_22_02_world_misc.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_22_02_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_02_22_03_world_conditions.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_22_03_world_conditions.sql
index 9c4d0cdec95..9c4d0cdec95 100644
--- a/sql/old/3.3.5a/2012_02_22_03_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_22_03_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_02_23_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_23_00_world_spell_script_names.sql
index 6ea96033091..6ea96033091 100644
--- a/sql/old/3.3.5a/2012_02_23_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_23_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_02_24_00_world_gameobject_loot_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_24_00_world_gameobject_loot_template.sql
index daecfc02dfc..daecfc02dfc 100644
--- a/sql/old/3.3.5a/2012_02_24_00_world_gameobject_loot_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_24_00_world_gameobject_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_02_24_01_world_sai.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_24_01_world_sai.sql
index 19e4e8fb772..19e4e8fb772 100644
--- a/sql/old/3.3.5a/2012_02_24_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_24_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_02_25_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_25_00_world_spell_script_names.sql
index 9619121e982..9619121e982 100644
--- a/sql/old/3.3.5a/2012_02_25_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_25_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_02_25_01_world_command.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_25_01_world_command.sql
index de708b7a9cc..de708b7a9cc 100644
--- a/sql/old/3.3.5a/2012_02_25_01_world_command.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_25_01_world_command.sql
diff --git a/sql/old/3.3.5a/2012_02_25_01_world_misc.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_25_01_world_misc.sql
index deedd50a819..deedd50a819 100644
--- a/sql/old/3.3.5a/2012_02_25_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_25_01_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_02_25_02_world_sai.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_25_02_world_sai.sql
index 3af5ac583ff..3af5ac583ff 100644
--- a/sql/old/3.3.5a/2012_02_25_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_25_02_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_02_26_00_world_misc.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_26_00_world_misc.sql
index 3df42934aa9..3df42934aa9 100644
--- a/sql/old/3.3.5a/2012_02_26_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_26_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_02_26_01_world_spell_script_names.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_26_01_world_spell_script_names.sql
index eb599e2cf2d..eb599e2cf2d 100644
--- a/sql/old/3.3.5a/2012_02_26_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_26_01_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_02_27_00_world_creature_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_27_00_world_creature_template.sql
index b8936774e36..b8936774e36 100644
--- a/sql/old/3.3.5a/2012_02_27_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_27_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_02_28_00_world_wintergrasp_spawns.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_28_00_world_wintergrasp_spawns.sql
index 38ba3e5c719..38ba3e5c719 100644
--- a/sql/old/3.3.5a/2012_02_28_00_world_wintergrasp_spawns.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_28_00_world_wintergrasp_spawns.sql
diff --git a/sql/old/3.3.5a/2012_02_29_00_world_conditions_misc.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_29_00_world_conditions_misc.sql
index 689be859a65..689be859a65 100644
--- a/sql/old/3.3.5a/2012_02_29_00_world_conditions_misc.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_29_00_world_conditions_misc.sql
diff --git a/sql/old/3.3.5a/2012_02_29_01_world_conditions.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_29_01_world_conditions.sql
index bae8baf51a9..bae8baf51a9 100644
--- a/sql/old/3.3.5a/2012_02_29_01_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_29_01_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_02_29_02_world_conditions.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_29_02_world_conditions.sql
index a28e6d6424f..a28e6d6424f 100644
--- a/sql/old/3.3.5a/2012_02_29_02_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_29_02_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_02_29_03_world_creature_text.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_29_03_world_creature_text.sql
index 2e1d3d77dde..2e1d3d77dde 100644
--- a/sql/old/3.3.5a/2012_02_29_03_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_29_03_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_02_29_04_world_creature_text.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_29_04_world_creature_text.sql
index d8b7c2c048a..d8b7c2c048a 100644
--- a/sql/old/3.3.5a/2012_02_29_04_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_29_04_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_02_29_05_world_creature_text.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_29_05_world_creature_text.sql
index 332fecf6326..332fecf6326 100644
--- a/sql/old/3.3.5a/2012_02_29_05_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_02_29_05_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_03_01_00_world_conditions.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_01_00_world_conditions.sql
index 794a5ce1210..794a5ce1210 100644
--- a/sql/old/3.3.5a/2012_03_01_00_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_01_00_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_03_01_01_world_creature_text.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_01_01_world_creature_text.sql
index dd4f6693654..dd4f6693654 100644
--- a/sql/old/3.3.5a/2012_03_01_01_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_01_01_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_03_01_02_world_locales_creature_text.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_01_02_world_locales_creature_text.sql
index c44ca191835..c44ca191835 100644
--- a/sql/old/3.3.5a/2012_03_01_02_world_locales_creature_text.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_01_02_world_locales_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_03_03_00_world_command.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_03_00_world_command.sql
index 52938c0b76b..52938c0b76b 100644
--- a/sql/old/3.3.5a/2012_03_03_00_world_command.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_03_00_world_command.sql
diff --git a/sql/old/3.3.5a/2012_03_04_00_world_misc.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_04_00_world_misc.sql
index af556f648b8..af556f648b8 100644
--- a/sql/old/3.3.5a/2012_03_04_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_04_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_03_04_01_world_areatrigger_scripts.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_04_01_world_areatrigger_scripts.sql
index ae4a0bc1f77..ae4a0bc1f77 100644
--- a/sql/old/3.3.5a/2012_03_04_01_world_areatrigger_scripts.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_04_01_world_areatrigger_scripts.sql
diff --git a/sql/old/3.3.5a/2012_03_06_00_world_commands.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_06_00_world_commands.sql
index d782a76c70d..d782a76c70d 100644
--- a/sql/old/3.3.5a/2012_03_06_00_world_commands.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_06_00_world_commands.sql
diff --git a/sql/old/3.3.5a/2012_03_06_01_world_misc.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_06_01_world_misc.sql
index 7eb208a9673..7eb208a9673 100644
--- a/sql/old/3.3.5a/2012_03_06_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_06_01_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_03_06_02_world_queststatus_seasonal.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_06_02_world_queststatus_seasonal.sql
index 0efbb6609cf..0efbb6609cf 100644
--- a/sql/old/3.3.5a/2012_03_06_02_world_queststatus_seasonal.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_06_02_world_queststatus_seasonal.sql
diff --git a/sql/old/3.3.5a/2012_03_06_03_world_smart_scripts.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_06_03_world_smart_scripts.sql
index cb2468c4d5c..cb2468c4d5c 100644
--- a/sql/old/3.3.5a/2012_03_06_03_world_smart_scripts.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_06_03_world_smart_scripts.sql
diff --git a/sql/old/3.3.5a/2012_03_06_04_world_creature_text.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_06_04_world_creature_text.sql
index f49599e1ba0..f49599e1ba0 100644
--- a/sql/old/3.3.5a/2012_03_06_04_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_06_04_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_03_07_00_world_trinity_string.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_07_00_world_trinity_string.sql
index df5afea5d4f..df5afea5d4f 100644
--- a/sql/old/3.3.5a/2012_03_07_00_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_07_00_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/2012_03_10_00_world_creature.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_10_00_world_creature.sql
index 9beb1827ade..9beb1827ade 100644
--- a/sql/old/3.3.5a/2012_03_10_00_world_creature.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_10_00_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_03_10_00_world_smart_scripts.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_10_00_world_smart_scripts.sql
index aaa02c2e3df..aaa02c2e3df 100644
--- a/sql/old/3.3.5a/2012_03_10_00_world_smart_scripts.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_10_00_world_smart_scripts.sql
diff --git a/sql/old/3.3.5a/2012_03_10_00_world_waypoint_data.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_10_00_world_waypoint_data.sql
index 01c2bc50402..01c2bc50402 100644
--- a/sql/old/3.3.5a/2012_03_10_00_world_waypoint_data.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_10_00_world_waypoint_data.sql
diff --git a/sql/old/3.3.5a/2012_03_11_00_world_sai.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_11_00_world_sai.sql
index 107a79ba7fb..107a79ba7fb 100644
--- a/sql/old/3.3.5a/2012_03_11_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_11_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_03_12_00_world_creature_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_12_00_world_creature_template.sql
index cc70ff7a557..cc70ff7a557 100644
--- a/sql/old/3.3.5a/2012_03_12_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_12_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_03_12_01_world_conditions.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_12_01_world_conditions.sql
index d58d8f54ddf..d58d8f54ddf 100644
--- a/sql/old/3.3.5a/2012_03_12_01_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_12_01_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_03_12_01_world_gameobject.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_12_01_world_gameobject.sql
index 38c615a3b0a..38c615a3b0a 100644
--- a/sql/old/3.3.5a/2012_03_12_01_world_gameobject.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_12_01_world_gameobject.sql
diff --git a/sql/old/3.3.5a/2012_03_12_01_world_spell_script_names.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_12_01_world_spell_script_names.sql
index db98aa0fbea..db98aa0fbea 100644
--- a/sql/old/3.3.5a/2012_03_12_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_12_01_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_03_14_00_world_creature_addon.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_14_00_world_creature_addon.sql
index c7e4edb97ed..c7e4edb97ed 100644
--- a/sql/old/3.3.5a/2012_03_14_00_world_creature_addon.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_14_00_world_creature_addon.sql
diff --git a/sql/old/3.3.5a/2012_03_19_00_world_smart_scripts.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_19_00_world_smart_scripts.sql
index 20241efa9cc..20241efa9cc 100644
--- a/sql/old/3.3.5a/2012_03_19_00_world_smart_scripts.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_19_00_world_smart_scripts.sql
diff --git a/sql/old/3.3.5a/2012_03_20_00_world_gossip.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_20_00_world_gossip.sql
index 6f5c159642b..6f5c159642b 100644
--- a/sql/old/3.3.5a/2012_03_20_00_world_gossip.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_20_00_world_gossip.sql
diff --git a/sql/old/3.3.5a/2012_03_21_00_world_creature.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_21_00_world_creature.sql
index def72f74cd6..def72f74cd6 100644
--- a/sql/old/3.3.5a/2012_03_21_00_world_creature.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_21_00_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_03_22_00_world_creature_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_22_00_world_creature_template.sql
index e6c03ed589c..e6c03ed589c 100644
--- a/sql/old/3.3.5a/2012_03_22_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_22_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_03_22_01_world_conditions.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_22_01_world_conditions.sql
index 074328137a5..074328137a5 100644
--- a/sql/old/3.3.5a/2012_03_22_01_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_22_01_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_03_23_00_world_ip2nation.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_23_00_world_ip2nation.sql
index dadeaddf85a..dadeaddf85a 100644
--- a/sql/old/3.3.5a/2012_03_23_00_world_ip2nation.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_23_00_world_ip2nation.sql
diff --git a/sql/old/3.3.5a/2012_03_24_00_world_misc.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_24_00_world_misc.sql
index e6f6ce77307..e6f6ce77307 100644
--- a/sql/old/3.3.5a/2012_03_24_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_24_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_03_24_01_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_24_01_world_creature_loot_template.sql
index 8bd438c1aec..8bd438c1aec 100644
--- a/sql/old/3.3.5a/2012_03_24_01_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_24_01_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_03_24_02_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_24_02_world_creature_loot_template.sql
index cdac3335aed..cdac3335aed 100644
--- a/sql/old/3.3.5a/2012_03_24_02_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_24_02_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_03_25_00_world_game_event.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_25_00_world_game_event.sql
index 82dfaa3f494..82dfaa3f494 100644
--- a/sql/old/3.3.5a/2012_03_25_00_world_game_event.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_25_00_world_game_event.sql
diff --git a/sql/old/3.3.5a/2012_03_26_00_world_creature_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_26_00_world_creature_template.sql
index f60849476bd..f60849476bd 100644
--- a/sql/old/3.3.5a/2012_03_26_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_26_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_03_26_01_world_spell_script_names.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_26_01_world_spell_script_names.sql
index 8b885c3c5f0..8b885c3c5f0 100644
--- a/sql/old/3.3.5a/2012_03_26_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_26_01_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_03_27_00_world_misc.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_27_00_world_misc.sql
index e7cdb15a240..e7cdb15a240 100644
--- a/sql/old/3.3.5a/2012_03_27_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_27_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_03_27_01_world_misc.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_27_01_world_misc.sql
index 38c11c8ae65..38c11c8ae65 100644
--- a/sql/old/3.3.5a/2012_03_27_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_27_01_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_03_27_02_world_misc.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_27_02_world_misc.sql
index f83a98b8100..f83a98b8100 100644
--- a/sql/old/3.3.5a/2012_03_27_02_world_misc.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_27_02_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_03_27_03_world_misc.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_27_03_world_misc.sql
index aba847dbc3f..aba847dbc3f 100644
--- a/sql/old/3.3.5a/2012_03_27_03_world_misc.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_27_03_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_03_27_04_world_misc.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_27_04_world_misc.sql
index e85350476c9..e85350476c9 100644
--- a/sql/old/3.3.5a/2012_03_27_04_world_misc.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_27_04_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_03_28_01_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_28_01_world_spell_bonus_data.sql
index e150cad1c2e..e150cad1c2e 100644
--- a/sql/old/3.3.5a/2012_03_28_01_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_28_01_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/2012_03_30_00_world_smart_scripts.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_30_00_world_smart_scripts.sql
index 263af0eb549..263af0eb549 100644
--- a/sql/old/3.3.5a/2012_03_30_00_world_smart_scripts.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_30_00_world_smart_scripts.sql
diff --git a/sql/old/3.3.5a/2012_03_31_00_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_31_00_world_creature_loot_template.sql
index 56885eb6b0f..56885eb6b0f 100644
--- a/sql/old/3.3.5a/2012_03_31_00_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_03_31_00_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_04_01_00_world_creature.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_01_00_world_creature.sql
index 46af7db5dc7..46af7db5dc7 100644
--- a/sql/old/3.3.5a/2012_04_01_00_world_creature.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_01_00_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_04_01_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_01_00_world_spell_script_names.sql
index 9d37f6ad4cb..9d37f6ad4cb 100644
--- a/sql/old/3.3.5a/2012_04_01_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_01_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_04_01_01_world_creature.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_01_01_world_creature.sql
index 3755eb6e6be..3755eb6e6be 100644
--- a/sql/old/3.3.5a/2012_04_01_01_world_creature.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_01_01_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_04_01_02_world_spell_group_stack_rules.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_01_02_world_spell_group_stack_rules.sql
index 4f2488d1c18..4f2488d1c18 100644
--- a/sql/old/3.3.5a/2012_04_01_02_world_spell_group_stack_rules.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_01_02_world_spell_group_stack_rules.sql
diff --git a/sql/old/3.3.5a/2012_04_01_03_world_trainers.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_01_03_world_trainers.sql
index 343b68c4b61..343b68c4b61 100644
--- a/sql/old/3.3.5a/2012_04_01_03_world_trainers.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_01_03_world_trainers.sql
diff --git a/sql/old/3.3.5a/2012_04_01_04_world_conditions.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_01_04_world_conditions.sql
index e84307e0b05..e84307e0b05 100644
--- a/sql/old/3.3.5a/2012_04_01_04_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_01_04_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_04_01_05_world_creature_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_01_05_world_creature_template.sql
index a4d13f1513a..a4d13f1513a 100644
--- a/sql/old/3.3.5a/2012_04_01_05_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_01_05_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_04_01_06_world_sai.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_01_06_world_sai.sql
index 9b8857da1e4..9b8857da1e4 100644
--- a/sql/old/3.3.5a/2012_04_01_06_world_sai.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_01_06_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_04_01_07_world_misc.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_01_07_world_misc.sql
index 346627fd88b..346627fd88b 100644
--- a/sql/old/3.3.5a/2012_04_01_07_world_misc.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_01_07_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_04_03_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_03_00_world_spell_script_names.sql
index 70f675daa20..70f675daa20 100644
--- a/sql/old/3.3.5a/2012_04_03_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_03_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_04_04_00_world_conditions.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_04_00_world_conditions.sql
index 55cab4ca730..55cab4ca730 100644
--- a/sql/old/3.3.5a/2012_04_04_00_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_04_00_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_04_04_01_world_spell_dbc.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_04_01_world_spell_dbc.sql
index 7eccdf811e4..7eccdf811e4 100644
--- a/sql/old/3.3.5a/2012_04_04_01_world_spell_dbc.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_04_01_world_spell_dbc.sql
diff --git a/sql/old/3.3.5a/2012_04_05_00_world_gameobject_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_05_00_world_gameobject_template.sql
index d50c4ad8d1c..d50c4ad8d1c 100644
--- a/sql/old/3.3.5a/2012_04_05_00_world_gameobject_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_05_00_world_gameobject_template.sql
diff --git a/sql/old/3.3.5a/2012_04_05_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_05_00_world_spell_script_names.sql
index 222fb42ea60..222fb42ea60 100644
--- a/sql/old/3.3.5a/2012_04_05_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_05_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_04_05_01_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_05_01_world_spell_proc_event.sql
index 076f97b8736..076f97b8736 100644
--- a/sql/old/3.3.5a/2012_04_05_01_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_05_01_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2012_04_06_00_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_06_00_world_spell_proc_event.sql
index 0fba3bb46d6..0fba3bb46d6 100644
--- a/sql/old/3.3.5a/2012_04_06_00_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_06_00_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2012_04_06_01_world_spell_dbc.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_06_01_world_spell_dbc.sql
index c0dc38ebf83..c0dc38ebf83 100644
--- a/sql/old/3.3.5a/2012_04_06_01_world_spell_dbc.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_06_01_world_spell_dbc.sql
diff --git a/sql/old/3.3.5a/2012_04_06_02_world_gameobject_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_06_02_world_gameobject_template.sql
index 5089579998d..5089579998d 100644
--- a/sql/old/3.3.5a/2012_04_06_02_world_gameobject_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_06_02_world_gameobject_template.sql
diff --git a/sql/old/3.3.5a/2012_04_06_03_world_spell_dbc.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_06_03_world_spell_dbc.sql
index 90ac4ac0f51..90ac4ac0f51 100644
--- a/sql/old/3.3.5a/2012_04_06_03_world_spell_dbc.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_06_03_world_spell_dbc.sql
diff --git a/sql/old/3.3.5a/2012_04_06_04_world_page_text.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_06_04_world_page_text.sql
index 97c0d9afe2d..97c0d9afe2d 100644
--- a/sql/old/3.3.5a/2012_04_06_04_world_page_text.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_06_04_world_page_text.sql
diff --git a/sql/old/3.3.5a/2012_04_07_00_world_gameobject.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_07_00_world_gameobject.sql
index c63fc753d32..c63fc753d32 100644
--- a/sql/old/3.3.5a/2012_04_07_00_world_gameobject.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_07_00_world_gameobject.sql
diff --git a/sql/old/3.3.5a/2012_04_07_01_world_game_event.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_07_01_world_game_event.sql
index 7b74a90b49d..7b74a90b49d 100644
--- a/sql/old/3.3.5a/2012_04_07_01_world_game_event.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_07_01_world_game_event.sql
diff --git a/sql/old/3.3.5a/2012_04_07_02_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_07_02_world_spell_proc_event.sql
index 62ef49bc657..62ef49bc657 100644
--- a/sql/old/3.3.5a/2012_04_07_02_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_07_02_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2012_04_08_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_08_00_world_spell_script_names.sql
index ca97f419e11..ca97f419e11 100644
--- a/sql/old/3.3.5a/2012_04_08_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_08_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_04_08_01_world_creature_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_08_01_world_creature_template.sql
index c6665729b75..c6665729b75 100644
--- a/sql/old/3.3.5a/2012_04_08_01_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_08_01_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_04_08_02_world_spell_dbc.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_08_02_world_spell_dbc.sql
index 5775428668d..5775428668d 100644
--- a/sql/old/3.3.5a/2012_04_08_02_world_spell_dbc.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_08_02_world_spell_dbc.sql
diff --git a/sql/old/3.3.5a/2012_04_08_02_world_spell_script_names.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_08_02_world_spell_script_names.sql
index dd23c9ef560..dd23c9ef560 100644
--- a/sql/old/3.3.5a/2012_04_08_02_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_08_02_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_04_08_03_world_spell_script_names.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_08_03_world_spell_script_names.sql
index 744a8bad10d..744a8bad10d 100644
--- a/sql/old/3.3.5a/2012_04_08_03_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_08_03_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_04_12_00_world_creature_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_12_00_world_creature_template.sql
index ef4596939f5..ef4596939f5 100644
--- a/sql/old/3.3.5a/2012_04_12_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_12_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_04_12_01_world_creature_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_12_01_world_creature_template.sql
index bfe7b698ae9..bfe7b698ae9 100644
--- a/sql/old/3.3.5a/2012_04_12_01_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_12_01_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_04_12_02_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_12_02_world_spell_bonus_data.sql
index db35f5d97ee..db35f5d97ee 100644
--- a/sql/old/3.3.5a/2012_04_12_02_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_12_02_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/2012_04_12_03_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_12_03_world_spell_bonus_data.sql
index d2262e52e98..d2262e52e98 100644
--- a/sql/old/3.3.5a/2012_04_12_03_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_12_03_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/2012_04_12_04_world_creature_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_12_04_world_creature_template.sql
index 35664ec5198..35664ec5198 100644
--- a/sql/old/3.3.5a/2012_04_12_04_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_12_04_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_04_12_05_world_command.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_12_05_world_command.sql
index 8eb87155cb2..8eb87155cb2 100644
--- a/sql/old/3.3.5a/2012_04_12_05_world_command.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_12_05_world_command.sql
diff --git a/sql/old/3.3.5a/2012_04_13_00_world_sai.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_13_00_world_sai.sql
index 0fd4bdddd9b..0fd4bdddd9b 100644
--- a/sql/old/3.3.5a/2012_04_13_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_13_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_04_13_01_world_misc.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_13_01_world_misc.sql
index 9de05732570..9de05732570 100644
--- a/sql/old/3.3.5a/2012_04_13_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_13_01_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_04_13_02_world_misc.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_13_02_world_misc.sql
index 7c71af78cd7..7c71af78cd7 100644
--- a/sql/old/3.3.5a/2012_04_13_02_world_misc.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_13_02_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_04_13_03_world_bg_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_13_03_world_bg_template.sql
index a426d7c6831..a426d7c6831 100644
--- a/sql/old/3.3.5a/2012_04_13_03_world_bg_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_13_03_world_bg_template.sql
diff --git a/sql/old/3.3.5a/2012_04_13_04_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_13_04_world_spell_proc_event.sql
index 3ea68187687..3ea68187687 100644
--- a/sql/old/3.3.5a/2012_04_13_04_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_13_04_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2012_04_14_00_world_gameobject_loot_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_14_00_world_gameobject_loot_template.sql
index dea4b771068..dea4b771068 100644
--- a/sql/old/3.3.5a/2012_04_14_00_world_gameobject_loot_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_14_00_world_gameobject_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_04_14_01_world_gameobject_loot_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_14_01_world_gameobject_loot_template.sql
index 87539b83478..87539b83478 100644
--- a/sql/old/3.3.5a/2012_04_14_01_world_gameobject_loot_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_14_01_world_gameobject_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_04_14_02_world_creature_template_addon.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_14_02_world_creature_template_addon.sql
index 6aaa7da383e..6aaa7da383e 100644
--- a/sql/old/3.3.5a/2012_04_14_02_world_creature_template_addon.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_14_02_world_creature_template_addon.sql
diff --git a/sql/old/3.3.5a/2012_04_14_03_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_14_03_world_spell_bonus_data.sql
index ee081c17078..ee081c17078 100644
--- a/sql/old/3.3.5a/2012_04_14_03_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_14_03_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/2012_04_14_04_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_14_04_world_spell_proc_event.sql
index 78a869e655a..78a869e655a 100644
--- a/sql/old/3.3.5a/2012_04_14_04_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_14_04_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2012_04_14_05_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_14_05_world_spell_proc_event.sql
index 8cb2b1d3d2b..8cb2b1d3d2b 100644
--- a/sql/old/3.3.5a/2012_04_14_05_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_14_05_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2012_04_16_00_world_game_event.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_16_00_world_game_event.sql
index 1dc3fe3ad91..1dc3fe3ad91 100644
--- a/sql/old/3.3.5a/2012_04_16_00_world_game_event.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_16_00_world_game_event.sql
diff --git a/sql/old/3.3.5a/2012_04_17_00_world_creature.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_17_00_world_creature.sql
index ebf0fb42a59..ebf0fb42a59 100644
--- a/sql/old/3.3.5a/2012_04_17_00_world_creature.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_17_00_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_04_18_00_world_npc_spellclick_spells.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_18_00_world_npc_spellclick_spells.sql
index 3bad860290b..3bad860290b 100644
--- a/sql/old/3.3.5a/2012_04_18_00_world_npc_spellclick_spells.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_18_00_world_npc_spellclick_spells.sql
diff --git a/sql/old/3.3.5a/2012_04_18_01_world_creature.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_18_01_world_creature.sql
index e2d6bdac95b..e2d6bdac95b 100644
--- a/sql/old/3.3.5a/2012_04_18_01_world_creature.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_18_01_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_04_18_02_world_reference_loot_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_18_02_world_reference_loot_template.sql
index 6a614857077..6a614857077 100644
--- a/sql/old/3.3.5a/2012_04_18_02_world_reference_loot_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_18_02_world_reference_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_04_18_03_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_18_03_world_creature_loot_template.sql
index 5ad26809cdf..5ad26809cdf 100644
--- a/sql/old/3.3.5a/2012_04_18_03_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_18_03_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_04_18_04_world_pickpocketing_loot_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_18_04_world_pickpocketing_loot_template.sql
index ab1c562f7dd..ab1c562f7dd 100644
--- a/sql/old/3.3.5a/2012_04_18_04_world_pickpocketing_loot_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_18_04_world_pickpocketing_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_04_18_05_world_conditions.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_18_05_world_conditions.sql
index ecf80f270a3..ecf80f270a3 100644
--- a/sql/old/3.3.5a/2012_04_18_05_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_18_05_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_04_18_06_world_creature_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_18_06_world_creature_template.sql
index 8c167c2ffa1..8c167c2ffa1 100644
--- a/sql/old/3.3.5a/2012_04_18_06_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_18_06_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_04_18_07_world_fishing_loot_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_18_07_world_fishing_loot_template.sql
index 6c39cc95b48..6c39cc95b48 100644
--- a/sql/old/3.3.5a/2012_04_18_07_world_fishing_loot_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_18_07_world_fishing_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_04_18_08_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_18_08_world_creature_loot_template.sql
index 4b00685ed55..4b00685ed55 100644
--- a/sql/old/3.3.5a/2012_04_18_08_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_18_08_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_04_19_00_world_creature_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_19_00_world_creature_template.sql
index a3034c05e41..a3034c05e41 100644
--- a/sql/old/3.3.5a/2012_04_19_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_19_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_04_19_01_world_pickpocketing_loot_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_19_01_world_pickpocketing_loot_template.sql
index e3e81b787ec..e3e81b787ec 100644
--- a/sql/old/3.3.5a/2012_04_19_01_world_pickpocketing_loot_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_19_01_world_pickpocketing_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_04_19_02_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_19_02_world_creature_loot_template.sql
index ac49289f702..ac49289f702 100644
--- a/sql/old/3.3.5a/2012_04_19_02_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_19_02_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_04_19_03_world_instance_ulduar.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_19_03_world_instance_ulduar.sql
index a39ed9c01d5..a39ed9c01d5 100644
--- a/sql/old/3.3.5a/2012_04_19_03_world_instance_ulduar.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_19_03_world_instance_ulduar.sql
diff --git a/sql/old/3.3.5a/2012_04_20_00_world_gameobject_loot_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_20_00_world_gameobject_loot_template.sql
index 10a4eef98d4..10a4eef98d4 100644
--- a/sql/old/3.3.5a/2012_04_20_00_world_gameobject_loot_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_20_00_world_gameobject_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_04_20_01_world_item_loot_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_20_01_world_item_loot_template.sql
index af52ade0b25..af52ade0b25 100644
--- a/sql/old/3.3.5a/2012_04_20_01_world_item_loot_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_20_01_world_item_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_04_20_02_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_20_02_world_creature_loot_template.sql
index 09b5beee75c..09b5beee75c 100644
--- a/sql/old/3.3.5a/2012_04_20_02_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_20_02_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_04_20_03_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_20_03_world_creature_loot_template.sql
index a0b586ee0d9..a0b586ee0d9 100644
--- a/sql/old/3.3.5a/2012_04_20_03_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_20_03_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_04_20_04_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_20_04_world_creature_loot_template.sql
index 879e6a3c0b5..879e6a3c0b5 100644
--- a/sql/old/3.3.5a/2012_04_20_04_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_20_04_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_04_20_05_world_gameobject_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_20_05_world_gameobject_template.sql
index 24400b16a5c..24400b16a5c 100644
--- a/sql/old/3.3.5a/2012_04_20_05_world_gameobject_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_20_05_world_gameobject_template.sql
diff --git a/sql/old/3.3.5a/2012_04_21_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_21_00_world_spell_script_names.sql
index e61ef4aec74..e61ef4aec74 100644
--- a/sql/old/3.3.5a/2012_04_21_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_21_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_04_22_00_world_sai.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_22_00_world_sai.sql
index 484745f237f..484745f237f 100644
--- a/sql/old/3.3.5a/2012_04_22_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_22_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_04_23_00_world_creatures.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_23_00_world_creatures.sql
index 3730fabf552..3730fabf552 100644
--- a/sql/old/3.3.5a/2012_04_23_00_world_creatures.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_23_00_world_creatures.sql
diff --git a/sql/old/3.3.5a/2012_04_23_01_world_conditions.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_23_01_world_conditions.sql
index c731426aa3f..c731426aa3f 100644
--- a/sql/old/3.3.5a/2012_04_23_01_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_23_01_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_04_23_02_world_prospecting_loot_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_23_02_world_prospecting_loot_template.sql
index 007b891e3d3..007b891e3d3 100644
--- a/sql/old/3.3.5a/2012_04_23_02_world_prospecting_loot_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_23_02_world_prospecting_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_04_23_03_world_skinning_loot_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_23_03_world_skinning_loot_template.sql
index a1aa9e070f2..a1aa9e070f2 100644
--- a/sql/old/3.3.5a/2012_04_23_03_world_skinning_loot_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_23_03_world_skinning_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_04_23_04_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_23_04_world_creature_loot_template.sql
index 94d2b092d12..94d2b092d12 100644
--- a/sql/old/3.3.5a/2012_04_23_04_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_23_04_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_04_23_05_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_23_05_world_creature_loot_template.sql
index ddf0780d362..ddf0780d362 100644
--- a/sql/old/3.3.5a/2012_04_23_05_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_23_05_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_04_24_00_world_command.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_24_00_world_command.sql
index 25912392347..25912392347 100644
--- a/sql/old/3.3.5a/2012_04_24_00_world_command.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_24_00_world_command.sql
diff --git a/sql/old/3.3.5a/2012_04_24_01_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_24_01_world_spell_proc_event.sql
index 6e997931bb5..6e997931bb5 100644
--- a/sql/old/3.3.5a/2012_04_24_01_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_24_01_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2012_04_24_02_world_warden_checks.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_24_02_world_warden_checks.sql
index 74539f99fb3..74539f99fb3 100644
--- a/sql/old/3.3.5a/2012_04_24_02_world_warden_checks.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_24_02_world_warden_checks.sql
diff --git a/sql/old/3.3.5a/2012_04_24_03_world_spell_script_names.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_24_03_world_spell_script_names.sql
index a53d8bd585c..a53d8bd585c 100644
--- a/sql/old/3.3.5a/2012_04_24_03_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_24_03_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_04_24_04_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_24_04_world_spell_proc_event.sql
index e1c6738ffc1..e1c6738ffc1 100644
--- a/sql/old/3.3.5a/2012_04_24_04_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_24_04_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2012_04_24_05_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_24_05_world_creature_loot_template.sql
index c524999b492..c524999b492 100644
--- a/sql/old/3.3.5a/2012_04_24_05_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_24_05_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_04_24_06_world_misc.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_24_06_world_misc.sql
index 0fe371d2de9..0fe371d2de9 100644
--- a/sql/old/3.3.5a/2012_04_24_06_world_misc.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_24_06_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_04_25_00_world_misc.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_25_00_world_misc.sql
index 3d2f20fdc8c..3d2f20fdc8c 100644
--- a/sql/old/3.3.5a/2012_04_25_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_25_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_04_25_01_world_spell_script_names.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_25_01_world_spell_script_names.sql
index 7b7135860ab..7b7135860ab 100644
--- a/sql/old/3.3.5a/2012_04_25_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_25_01_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_04_25_02_world_spell_script_names.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_25_02_world_spell_script_names.sql
index ad63bc87837..ad63bc87837 100644
--- a/sql/old/3.3.5a/2012_04_25_02_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_25_02_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_04_25_03_world_spell_group.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_25_03_world_spell_group.sql
index a6fa90ad41d..a6fa90ad41d 100644
--- a/sql/old/3.3.5a/2012_04_25_03_world_spell_group.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_25_03_world_spell_group.sql
diff --git a/sql/old/3.3.5a/2012_04_26_00_world_conditions.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_26_00_world_conditions.sql
index 8d525cad057..8d525cad057 100644
--- a/sql/old/3.3.5a/2012_04_26_00_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_26_00_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_04_26_01_world_smart_scripts.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_26_01_world_smart_scripts.sql
index e90e7b58433..e90e7b58433 100644
--- a/sql/old/3.3.5a/2012_04_26_01_world_smart_scripts.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_26_01_world_smart_scripts.sql
diff --git a/sql/old/3.3.5a/2012_04_27_00_world_instance_icc.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_27_00_world_instance_icc.sql
index 6738e4904ab..6738e4904ab 100644
--- a/sql/old/3.3.5a/2012_04_27_00_world_instance_icc.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_27_00_world_instance_icc.sql
diff --git a/sql/old/3.3.5a/2012_04_28_00_world_reference_loot_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_28_00_world_reference_loot_template.sql
index a74305da8e9..a74305da8e9 100644
--- a/sql/old/3.3.5a/2012_04_28_00_world_reference_loot_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_28_00_world_reference_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_04_28_01_world_reference_loot_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_28_01_world_reference_loot_template.sql
index e46c45e497a..e46c45e497a 100644
--- a/sql/old/3.3.5a/2012_04_28_01_world_reference_loot_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_04_28_01_world_reference_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_05_01_00_world_creature.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_01_00_world_creature.sql
index 56cbf385549..56cbf385549 100644
--- a/sql/old/3.3.5a/2012_05_01_00_world_creature.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_01_00_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_05_02_00_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_02_00_world_creature_loot_template.sql
index f0721e63635..f0721e63635 100644
--- a/sql/old/3.3.5a/2012_05_02_00_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_02_00_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_05_03_00_world_creature.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_03_00_world_creature.sql
index d906dba78bc..d906dba78bc 100644
--- a/sql/old/3.3.5a/2012_05_03_00_world_creature.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_03_00_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_05_03_01_world_cos_misc.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_03_01_world_cos_misc.sql
index b808f2da47c..b808f2da47c 100644
--- a/sql/old/3.3.5a/2012_05_03_01_world_cos_misc.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_03_01_world_cos_misc.sql
diff --git a/sql/old/3.3.5a/2012_05_03_02_world_quest_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_03_02_world_quest_template.sql
index 49953bd2166..49953bd2166 100644
--- a/sql/old/3.3.5a/2012_05_03_02_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_03_02_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2012_05_03_03_world_creature_questrelation.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_03_03_world_creature_questrelation.sql
index 1da4f6d29ad..1da4f6d29ad 100644
--- a/sql/old/3.3.5a/2012_05_03_03_world_creature_questrelation.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_03_03_world_creature_questrelation.sql
diff --git a/sql/old/3.3.5a/2012_05_03_04_world_game_event_creature_quest.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_03_04_world_game_event_creature_quest.sql
index 8455d58b325..8455d58b325 100644
--- a/sql/old/3.3.5a/2012_05_03_04_world_game_event_creature_quest.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_03_04_world_game_event_creature_quest.sql
diff --git a/sql/old/3.3.5a/2012_05_04_00_world_waypoints.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_04_00_world_waypoints.sql
index a07bde59d49..a07bde59d49 100644
--- a/sql/old/3.3.5a/2012_05_04_00_world_waypoints.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_04_00_world_waypoints.sql
diff --git a/sql/old/3.3.5a/2012_05_04_01_world_sai.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_04_01_world_sai.sql
index 7021fc92548..7021fc92548 100644
--- a/sql/old/3.3.5a/2012_05_04_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_04_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_05_05_00_world_sai.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_05_00_world_sai.sql
index e03c36337af..e03c36337af 100644
--- a/sql/old/3.3.5a/2012_05_05_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_05_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_05_05_01_world_creature_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_05_01_world_creature_template.sql
index 2eeaf2f40d2..2eeaf2f40d2 100644
--- a/sql/old/3.3.5a/2012_05_05_01_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_05_01_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_05_05_02_world_gameobject.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_05_02_world_gameobject.sql
index 29285622448..29285622448 100644
--- a/sql/old/3.3.5a/2012_05_05_02_world_gameobject.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_05_02_world_gameobject.sql
diff --git a/sql/old/3.3.5a/2012_05_05_03_world_sai.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_05_03_world_sai.sql
index fce3b5bc957..fce3b5bc957 100644
--- a/sql/old/3.3.5a/2012_05_05_03_world_sai.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_05_03_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_05_05_04_world_creature_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_05_04_world_creature_template.sql
index 7c4f13dd667..7c4f13dd667 100644
--- a/sql/old/3.3.5a/2012_05_05_04_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_05_04_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_05_05_05_world_creature_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_05_05_world_creature_template.sql
index a2f2a217252..a2f2a217252 100644
--- a/sql/old/3.3.5a/2012_05_05_05_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_05_05_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_05_05_06_world_sai.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_05_06_world_sai.sql
index 7b064af4a4e..7b064af4a4e 100644
--- a/sql/old/3.3.5a/2012_05_05_06_world_sai.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_05_06_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_05_06_00_world_creature_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_06_00_world_creature_template.sql
index 30dbf85c28d..30dbf85c28d 100644
--- a/sql/old/3.3.5a/2012_05_06_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_06_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_05_06_01_world_creature_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_06_01_world_creature_template.sql
index fa0c9af5805..fa0c9af5805 100644
--- a/sql/old/3.3.5a/2012_05_06_01_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_06_01_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_05_07_00_world_waypoints.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_07_00_world_waypoints.sql
index f24b7c9c254..f24b7c9c254 100644
--- a/sql/old/3.3.5a/2012_05_07_00_world_waypoints.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_07_00_world_waypoints.sql
diff --git a/sql/old/3.3.5a/2012_05_07_01_world_sai.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_07_01_world_sai.sql
index 83676d31df9..83676d31df9 100644
--- a/sql/old/3.3.5a/2012_05_07_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_07_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_05_08_00_world_sai.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_08_00_world_sai.sql
index 7e7c8ef2c13..7e7c8ef2c13 100644
--- a/sql/old/3.3.5a/2012_05_08_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_08_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_05_08_01_world_gameobject.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_08_01_world_gameobject.sql
index 2cc45d27e04..2cc45d27e04 100644
--- a/sql/old/3.3.5a/2012_05_08_01_world_gameobject.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_08_01_world_gameobject.sql
diff --git a/sql/old/3.3.5a/2012_05_08_01_world_misc.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_08_01_world_misc.sql
index 8f19132fa27..8f19132fa27 100644
--- a/sql/old/3.3.5a/2012_05_08_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_08_01_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_05_09_00_world_spell_target_position.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_09_00_world_spell_target_position.sql
index a6e9d7289b7..a6e9d7289b7 100644
--- a/sql/old/3.3.5a/2012_05_09_00_world_spell_target_position.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_09_00_world_spell_target_position.sql
diff --git a/sql/old/3.3.5a/2012_05_09_01_world_commands.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_09_01_world_commands.sql
index dcd4c9130eb..dcd4c9130eb 100644
--- a/sql/old/3.3.5a/2012_05_09_01_world_commands.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_09_01_world_commands.sql
diff --git a/sql/old/3.3.5a/2012_05_09_02_world_sai.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_09_02_world_sai.sql
index 01004b23505..01004b23505 100644
--- a/sql/old/3.3.5a/2012_05_09_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_09_02_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_05_09_03_world_misc.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_09_03_world_misc.sql
index 63e162fcfce..63e162fcfce 100644
--- a/sql/old/3.3.5a/2012_05_09_03_world_misc.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_09_03_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_05_10_00_world_sai.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_10_00_world_sai.sql
index 46c9926787f..46c9926787f 100644
--- a/sql/old/3.3.5a/2012_05_10_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_10_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_05_10_01_world_misc.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_10_01_world_misc.sql
index a7a30d518a2..a7a30d518a2 100644
--- a/sql/old/3.3.5a/2012_05_10_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_10_01_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_05_10_02_world_creature_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_10_02_world_creature_template.sql
index 28893f24fdf..28893f24fdf 100644
--- a/sql/old/3.3.5a/2012_05_10_02_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_10_02_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_05_10_03_world_misc.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_10_03_world_misc.sql
index 40566b09442..40566b09442 100644
--- a/sql/old/3.3.5a/2012_05_10_03_world_misc.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_10_03_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_05_10_04_world_ceature_sai.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_10_04_world_ceature_sai.sql
index 5f01e951c4b..5f01e951c4b 100644
--- a/sql/old/3.3.5a/2012_05_10_04_world_ceature_sai.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_10_04_world_ceature_sai.sql
diff --git a/sql/old/3.3.5a/2012_05_10_05_world_waypoints.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_10_05_world_waypoints.sql
index 1677d74c4a7..1677d74c4a7 100644
--- a/sql/old/3.3.5a/2012_05_10_05_world_waypoints.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_10_05_world_waypoints.sql
diff --git a/sql/old/3.3.5a/2012_05_10_06_world_waypoints.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_10_06_world_waypoints.sql
index 6fd04d0e4da..6fd04d0e4da 100644
--- a/sql/old/3.3.5a/2012_05_10_06_world_waypoints.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_10_06_world_waypoints.sql
diff --git a/sql/old/3.3.5a/2012_05_11_00_world_waypoints.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_11_00_world_waypoints.sql
index fa4e18f6468..fa4e18f6468 100644
--- a/sql/old/3.3.5a/2012_05_11_00_world_waypoints.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_11_00_world_waypoints.sql
diff --git a/sql/old/3.3.5a/2012_05_11_01_world_gameobject_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_11_01_world_gameobject_template.sql
index 630a166276b..630a166276b 100644
--- a/sql/old/3.3.5a/2012_05_11_01_world_gameobject_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_11_01_world_gameobject_template.sql
diff --git a/sql/old/3.3.5a/2012_05_11_02_world_conditions.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_11_02_world_conditions.sql
index a10c27a0ef5..a10c27a0ef5 100644
--- a/sql/old/3.3.5a/2012_05_11_02_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_11_02_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_05_12_00_world_gameobject_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_12_00_world_gameobject_template.sql
index ffa932c8640..ffa932c8640 100644
--- a/sql/old/3.3.5a/2012_05_12_00_world_gameobject_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_12_00_world_gameobject_template.sql
diff --git a/sql/old/3.3.5a/2012_05_12_01_world_item_loot_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_12_01_world_item_loot_template.sql
index 052b749c48c..052b749c48c 100644
--- a/sql/old/3.3.5a/2012_05_12_01_world_item_loot_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_12_01_world_item_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_05_12_02_world_gameobject_loot_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_12_02_world_gameobject_loot_template.sql
index ca9d74edeb8..ca9d74edeb8 100644
--- a/sql/old/3.3.5a/2012_05_12_02_world_gameobject_loot_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_12_02_world_gameobject_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_05_13_00_world_creature_text.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_13_00_world_creature_text.sql
index 8d083156fb0..8d083156fb0 100644
--- a/sql/old/3.3.5a/2012_05_13_00_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_13_00_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_05_13_01_world_creature_text.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_13_01_world_creature_text.sql
index 8e983fd9a73..8e983fd9a73 100644
--- a/sql/old/3.3.5a/2012_05_13_01_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_13_01_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_05_16_00_world_scripts.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_16_00_world_scripts.sql
index 9997c09bd8d..9997c09bd8d 100644
--- a/sql/old/3.3.5a/2012_05_16_00_world_scripts.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_16_00_world_scripts.sql
diff --git a/sql/old/3.3.5a/2012_05_17_00_world_creature_text.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_17_00_world_creature_text.sql
index d7df0f94c0b..d7df0f94c0b 100644
--- a/sql/old/3.3.5a/2012_05_17_00_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_17_00_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_05_18_00_world_conditions.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_18_00_world_conditions.sql
index ad18a6c65ef..ad18a6c65ef 100644
--- a/sql/old/3.3.5a/2012_05_18_00_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_18_00_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_05_18_01_world_misc.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_18_01_world_misc.sql
index bded6fae447..bded6fae447 100644
--- a/sql/old/3.3.5a/2012_05_18_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_18_01_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_05_18_01_world_spell_target_position.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_18_01_world_spell_target_position.sql
index 72ebc409d9d..72ebc409d9d 100644
--- a/sql/old/3.3.5a/2012_05_18_01_world_spell_target_position.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_18_01_world_spell_target_position.sql
diff --git a/sql/old/3.3.5a/2012_05_19_00_world_quest_template.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_19_00_world_quest_template.sql
index f18172ed836..f18172ed836 100644
--- a/sql/old/3.3.5a/2012_05_19_00_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_19_00_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2012_05_19_01_world_smart_scripts.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_19_01_world_smart_scripts.sql
index 06169d8610a..06169d8610a 100644
--- a/sql/old/3.3.5a/2012_05_19_01_world_smart_scripts.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_19_01_world_smart_scripts.sql
diff --git a/sql/old/3.3.5a/2012_05_19_02_world_misc.sql b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_19_02_world_misc.sql
index 97a77ac0ab3..97a77ac0ab3 100644
--- a/sql/old/3.3.5a/2012_05_19_02_world_misc.sql
+++ b/sql/old/3.3.5a/TDB46_to_TDB47_updates/world/2012_05_19_02_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_06_07_00_characters_respawn.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/characters/2012_06_07_00_characters_respawn.sql
index 168aa312713..168aa312713 100644
--- a/sql/old/3.3.5a/2012_06_07_00_characters_respawn.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/characters/2012_06_07_00_characters_respawn.sql
diff --git a/sql/old/3.3.5a/2012_06_13_00_characters_character_equipmentsets.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/characters/2012_06_13_00_characters_character_equipmentsets.sql
index ebf12062be3..ebf12062be3 100644
--- a/sql/old/3.3.5a/2012_06_13_00_characters_character_equipmentsets.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/characters/2012_06_13_00_characters_character_equipmentsets.sql
diff --git a/sql/old/3.3.5a/2012_05_19_03_world_version.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_19_03_world_version.sql
index 53c6821be69..53c6821be69 100644
--- a/sql/old/3.3.5a/2012_05_19_03_world_version.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_19_03_world_version.sql
diff --git a/sql/old/3.3.5a/2012_05_19_04_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_19_04_world_creature_loot_template.sql
index ae996e01956..ae996e01956 100644
--- a/sql/old/3.3.5a/2012_05_19_04_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_19_04_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_05_19_05_world_gameobject_loot_template.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_19_05_world_gameobject_loot_template.sql
index f95cb45efe4..f95cb45efe4 100644
--- a/sql/old/3.3.5a/2012_05_19_05_world_gameobject_loot_template.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_19_05_world_gameobject_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_05_19_06_world_gameobject_loot_template.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_19_06_world_gameobject_loot_template.sql
index 9b2dcbb9363..9b2dcbb9363 100644
--- a/sql/old/3.3.5a/2012_05_19_06_world_gameobject_loot_template.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_19_06_world_gameobject_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_05_20_00_world_misc.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_20_00_world_misc.sql
index de79058d554..de79058d554 100644
--- a/sql/old/3.3.5a/2012_05_20_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_20_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_05_20_01_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_20_01_world_spell_bonus_data.sql
index bd74c782534..bd74c782534 100644
--- a/sql/old/3.3.5a/2012_05_20_01_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_20_01_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/2012_05_22_00_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_22_00_world_spell_proc_event.sql
index ba2ea83f643..ba2ea83f643 100644
--- a/sql/old/3.3.5a/2012_05_22_00_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_22_00_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2012_05_22_01_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_22_01_world_creature_loot_template.sql
index bcae5be9ae1..bcae5be9ae1 100644
--- a/sql/old/3.3.5a/2012_05_22_01_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_22_01_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_05_23_00_world_creature.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_23_00_world_creature.sql
index 8a965b7fdfe..8a965b7fdfe 100644
--- a/sql/old/3.3.5a/2012_05_23_00_world_creature.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_23_00_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_05_23_01_world_sai.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_23_01_world_sai.sql
index af2fd5409d1..af2fd5409d1 100644
--- a/sql/old/3.3.5a/2012_05_23_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_23_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_05_23_02_world_sai.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_23_02_world_sai.sql
index 588f25f1568..588f25f1568 100644
--- a/sql/old/3.3.5a/2012_05_23_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_23_02_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_05_23_03_world_gameobject_loot_template.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_23_03_world_gameobject_loot_template.sql
index 67716f0998e..67716f0998e 100644
--- a/sql/old/3.3.5a/2012_05_23_03_world_gameobject_loot_template.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_23_03_world_gameobject_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_05_23_04_world_gameobject.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_23_04_world_gameobject.sql
index afcb1e89317..afcb1e89317 100644
--- a/sql/old/3.3.5a/2012_05_23_04_world_gameobject.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_23_04_world_gameobject.sql
diff --git a/sql/old/3.3.5a/2012_05_23_05_world_creature.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_23_05_world_creature.sql
index e945ff4dd6c..e945ff4dd6c 100644
--- a/sql/old/3.3.5a/2012_05_23_05_world_creature.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_23_05_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_05_24_00_world_creature_misc.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_24_00_world_creature_misc.sql
index ae35b3fba5d..ae35b3fba5d 100644
--- a/sql/old/3.3.5a/2012_05_24_00_world_creature_misc.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_24_00_world_creature_misc.sql
diff --git a/sql/old/3.3.5a/2012_05_24_01_world_gameobject.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_24_01_world_gameobject.sql
index 32bbc15494f..32bbc15494f 100644
--- a/sql/old/3.3.5a/2012_05_24_01_world_gameobject.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_24_01_world_gameobject.sql
diff --git a/sql/old/3.3.5a/2012_05_25_00_world_sai.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_25_00_world_sai.sql
index fa5682db02f..fa5682db02f 100644
--- a/sql/old/3.3.5a/2012_05_25_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_25_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_05_25_01_world_waypoints.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_25_01_world_waypoints.sql
index 0d2c04bc6bc..0d2c04bc6bc 100644
--- a/sql/old/3.3.5a/2012_05_25_01_world_waypoints.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_25_01_world_waypoints.sql
diff --git a/sql/old/3.3.5a/2012_05_25_02_world_creature_template.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_25_02_world_creature_template.sql
index fd4c1743f07..fd4c1743f07 100644
--- a/sql/old/3.3.5a/2012_05_25_02_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_25_02_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_05_25_03_world_template.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_25_03_world_template.sql
index 6ef112f342f..6ef112f342f 100644
--- a/sql/old/3.3.5a/2012_05_25_03_world_template.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_25_03_world_template.sql
diff --git a/sql/old/3.3.5a/2012_05_26_00_world_scripts.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_26_00_world_scripts.sql
index 166d90bac8f..166d90bac8f 100644
--- a/sql/old/3.3.5a/2012_05_26_00_world_scripts.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_26_00_world_scripts.sql
diff --git a/sql/old/3.3.5a/2012_05_26_01_world_spell_dbc.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_26_01_world_spell_dbc.sql
index 31abfc2ea5a..31abfc2ea5a 100644
--- a/sql/old/3.3.5a/2012_05_26_01_world_spell_dbc.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_26_01_world_spell_dbc.sql
diff --git a/sql/old/3.3.5a/2012_05_26_02_world_creature_template.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_26_02_world_creature_template.sql
index e51567390b7..e51567390b7 100644
--- a/sql/old/3.3.5a/2012_05_26_02_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_26_02_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_05_26_03_world_page_text.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_26_03_world_page_text.sql
index 9dc285cd99d..9dc285cd99d 100644
--- a/sql/old/3.3.5a/2012_05_26_03_world_page_text.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_26_03_world_page_text.sql
diff --git a/sql/old/3.3.5a/2012_05_26_04_world_creature_template.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_26_04_world_creature_template.sql
index 911cd45ef8c..911cd45ef8c 100644
--- a/sql/old/3.3.5a/2012_05_26_04_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_26_04_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_05_26_05_world_creature_template.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_26_05_world_creature_template.sql
index 59d69b3fbe1..59d69b3fbe1 100644
--- a/sql/old/3.3.5a/2012_05_26_05_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_26_05_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_05_26_06_world_smart_scripts.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_26_06_world_smart_scripts.sql
index 77fa05a4059..77fa05a4059 100644
--- a/sql/old/3.3.5a/2012_05_26_06_world_smart_scripts.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_26_06_world_smart_scripts.sql
diff --git a/sql/old/3.3.5a/2012_05_27_00_world_gameobject_template.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_27_00_world_gameobject_template.sql
index 5fa3c15a505..5fa3c15a505 100644
--- a/sql/old/3.3.5a/2012_05_27_00_world_gameobject_template.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_27_00_world_gameobject_template.sql
diff --git a/sql/old/3.3.5a/2012_05_27_01_world_waypoints.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_27_01_world_waypoints.sql
index 3685b58a629..3685b58a629 100644
--- a/sql/old/3.3.5a/2012_05_27_01_world_waypoints.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_27_01_world_waypoints.sql
diff --git a/sql/old/3.3.5a/2012_05_27_02_world_creature.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_27_02_world_creature.sql
index a2b5c2e26a5..a2b5c2e26a5 100644
--- a/sql/old/3.3.5a/2012_05_27_02_world_creature.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_27_02_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_05_27_03_world_creature.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_27_03_world_creature.sql
index 097f40581a7..097f40581a7 100644
--- a/sql/old/3.3.5a/2012_05_27_03_world_creature.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_27_03_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_05_27_04_world_smart_scripts.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_27_04_world_smart_scripts.sql
index 72fd4a53d37..72fd4a53d37 100644
--- a/sql/old/3.3.5a/2012_05_27_04_world_smart_scripts.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_27_04_world_smart_scripts.sql
diff --git a/sql/old/3.3.5a/2012_05_27_05_world_gameobject.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_27_05_world_gameobject.sql
index 66fbfd0afca..66fbfd0afca 100644
--- a/sql/old/3.3.5a/2012_05_27_05_world_gameobject.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_27_05_world_gameobject.sql
diff --git a/sql/old/3.3.5a/2012_05_27_06_world_creature.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_27_06_world_creature.sql
index df7e2dd8d3f..df7e2dd8d3f 100644
--- a/sql/old/3.3.5a/2012_05_27_06_world_creature.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_27_06_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_05_27_07_world_game_event.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_27_07_world_game_event.sql
index eff4a9e7652..eff4a9e7652 100644
--- a/sql/old/3.3.5a/2012_05_27_07_world_game_event.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_27_07_world_game_event.sql
diff --git a/sql/old/3.3.5a/2012_05_27_07_world_waypoints.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_27_07_world_waypoints.sql
index bd6aa2d0fc1..bd6aa2d0fc1 100644
--- a/sql/old/3.3.5a/2012_05_27_07_world_waypoints.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_27_07_world_waypoints.sql
diff --git a/sql/old/3.3.5a/2012_05_28_00_world_creature_ai_scripts.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_28_00_world_creature_ai_scripts.sql
index aef4e4c6f67..aef4e4c6f67 100644
--- a/sql/old/3.3.5a/2012_05_28_00_world_creature_ai_scripts.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_28_00_world_creature_ai_scripts.sql
diff --git a/sql/old/3.3.5a/2012_05_28_01_world_creature.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_28_01_world_creature.sql
index d39aa7230b5..d39aa7230b5 100644
--- a/sql/old/3.3.5a/2012_05_28_01_world_creature.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_28_01_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_05_28_02_world_creature.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_28_02_world_creature.sql
index 77da626d89e..77da626d89e 100644
--- a/sql/old/3.3.5a/2012_05_28_02_world_creature.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_28_02_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_05_28_03_world_waypoint_data.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_28_03_world_waypoint_data.sql
index aa0e0ddd5ef..aa0e0ddd5ef 100644
--- a/sql/old/3.3.5a/2012_05_28_03_world_waypoint_data.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_28_03_world_waypoint_data.sql
diff --git a/sql/old/3.3.5a/2012_05_28_04_world_creature_template.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_28_04_world_creature_template.sql
index d8c9a15e412..d8c9a15e412 100644
--- a/sql/old/3.3.5a/2012_05_28_04_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_28_04_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_05_28_05_world_creature.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_28_05_world_creature.sql
index ad42bb2bdfe..ad42bb2bdfe 100644
--- a/sql/old/3.3.5a/2012_05_28_05_world_creature.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_28_05_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_05_28_06_world_creature_addon.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_28_06_world_creature_addon.sql
index a2b573da10a..a2b573da10a 100644
--- a/sql/old/3.3.5a/2012_05_28_06_world_creature_addon.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_28_06_world_creature_addon.sql
diff --git a/sql/old/3.3.5a/2012_05_28_06_world_waypoint_data.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_28_06_world_waypoint_data.sql
index 1c738cacdc9..1c738cacdc9 100644
--- a/sql/old/3.3.5a/2012_05_28_06_world_waypoint_data.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_28_06_world_waypoint_data.sql
diff --git a/sql/old/3.3.5a/2012_05_28_07_world_quest_template.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_28_07_world_quest_template.sql
index 3cdf1895a9d..3cdf1895a9d 100644
--- a/sql/old/3.3.5a/2012_05_28_07_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_28_07_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2012_05_30_00_world_reference_loot_template.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_30_00_world_reference_loot_template.sql
index 9e997314262..9e997314262 100644
--- a/sql/old/3.3.5a/2012_05_30_00_world_reference_loot_template.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_30_00_world_reference_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_05_30_01_world_creature_template.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_30_01_world_creature_template.sql
index 4b469a13891..4b469a13891 100644
--- a/sql/old/3.3.5a/2012_05_30_01_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_30_01_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_05_30_02_world_quest_template.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_30_02_world_quest_template.sql
index 2b829aa0875..2b829aa0875 100644
--- a/sql/old/3.3.5a/2012_05_30_02_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_30_02_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2012_05_30_03_world_creature_formation.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_30_03_world_creature_formation.sql
index 2964415e85b..2964415e85b 100644
--- a/sql/old/3.3.5a/2012_05_30_03_world_creature_formation.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_30_03_world_creature_formation.sql
diff --git a/sql/old/3.3.5a/2012_05_30_04_world_gossip.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_30_04_world_gossip.sql
index 0abbea7b964..0abbea7b964 100644
--- a/sql/old/3.3.5a/2012_05_30_04_world_gossip.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_30_04_world_gossip.sql
diff --git a/sql/old/3.3.5a/2012_05_30_05_world_gossip.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_30_05_world_gossip.sql
index 5e7f1375320..5e7f1375320 100644
--- a/sql/old/3.3.5a/2012_05_30_05_world_gossip.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_30_05_world_gossip.sql
diff --git a/sql/old/3.3.5a/2012_05_31_00_world_reference_loot_template.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_31_00_world_reference_loot_template.sql
index 03723c82536..03723c82536 100644
--- a/sql/old/3.3.5a/2012_05_31_00_world_reference_loot_template.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_31_00_world_reference_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_05_31_01_world_item_template.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_31_01_world_item_template.sql
index 144ee6715a9..144ee6715a9 100644
--- a/sql/old/3.3.5a/2012_05_31_01_world_item_template.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_31_01_world_item_template.sql
diff --git a/sql/old/3.3.5a/2012_05_31_01_world_sai.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_31_01_world_sai.sql
index a64746f360d..a64746f360d 100644
--- a/sql/old/3.3.5a/2012_05_31_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_31_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_05_31_02_world_creature_model_info.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_31_02_world_creature_model_info.sql
index a1aa1155aa6..a1aa1155aa6 100644
--- a/sql/old/3.3.5a/2012_05_31_02_world_creature_model_info.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_31_02_world_creature_model_info.sql
diff --git a/sql/old/3.3.5a/2012_05_31_03_world_gameobject_loot_template.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_31_03_world_gameobject_loot_template.sql
index 5dcedaaf342..5dcedaaf342 100644
--- a/sql/old/3.3.5a/2012_05_31_03_world_gameobject_loot_template.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_31_03_world_gameobject_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_05_31_05_world_sai.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_31_05_world_sai.sql
index aa95c93aae1..aa95c93aae1 100644
--- a/sql/old/3.3.5a/2012_05_31_05_world_sai.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_31_05_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_05_31_06_world_gameobject.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_31_06_world_gameobject.sql
index 4745fdde00f..4745fdde00f 100644
--- a/sql/old/3.3.5a/2012_05_31_06_world_gameobject.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_31_06_world_gameobject.sql
diff --git a/sql/old/3.3.5a/2012_05_31_07_world_gossip.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_31_07_world_gossip.sql
index 9b82f333a4c..9b82f333a4c 100644
--- a/sql/old/3.3.5a/2012_05_31_07_world_gossip.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_31_07_world_gossip.sql
diff --git a/sql/old/3.3.5a/2012_05_31_08_world_gameobject_template.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_31_08_world_gameobject_template.sql
index 41527e22919..41527e22919 100644
--- a/sql/old/3.3.5a/2012_05_31_08_world_gameobject_template.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_31_08_world_gameobject_template.sql
diff --git a/sql/old/3.3.5a/2012_05_31_09_world_sai.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_31_09_world_sai.sql
index a7eb1248905..a7eb1248905 100644
--- a/sql/old/3.3.5a/2012_05_31_09_world_sai.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_31_09_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_05_31_10_world_creature_template.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_31_10_world_creature_template.sql
index 5499d26b0e3..5499d26b0e3 100644
--- a/sql/old/3.3.5a/2012_05_31_10_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_31_10_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_05_31_11_world_creature.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_31_11_world_creature.sql
index cced4d78775..cced4d78775 100644
--- a/sql/old/3.3.5a/2012_05_31_11_world_creature.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_31_11_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_05_31_12_world_creature.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_31_12_world_creature.sql
index 1af9a5d2fbe..1af9a5d2fbe 100644
--- a/sql/old/3.3.5a/2012_05_31_12_world_creature.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_05_31_12_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_06_01_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_01_00_world_spell_script_names.sql
index cc024fe71cb..cc024fe71cb 100644
--- a/sql/old/3.3.5a/2012_06_01_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_01_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_06_01_01_world_creature_script.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_01_01_world_creature_script.sql
index d90800bd1af..d90800bd1af 100644
--- a/sql/old/3.3.5a/2012_06_01_01_world_creature_script.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_01_01_world_creature_script.sql
diff --git a/sql/old/3.3.5a/2012_06_01_02_world_misc.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_01_02_world_misc.sql
index 23663ef9270..23663ef9270 100644
--- a/sql/old/3.3.5a/2012_06_01_02_world_misc.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_01_02_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_06_01_03_world_creature_template.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_01_03_world_creature_template.sql
index fb20691ad69..fb20691ad69 100644
--- a/sql/old/3.3.5a/2012_06_01_03_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_01_03_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_06_01_04_world_misc.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_01_04_world_misc.sql
index d5273cec233..d5273cec233 100644
--- a/sql/old/3.3.5a/2012_06_01_04_world_misc.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_01_04_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_06_02_00_world_sai.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_02_00_world_sai.sql
index af0b12be244..af0b12be244 100644
--- a/sql/old/3.3.5a/2012_06_02_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_02_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_06_02_01_world_waypoints.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_02_01_world_waypoints.sql
index c50436bba8d..c50436bba8d 100644
--- a/sql/old/3.3.5a/2012_06_02_01_world_waypoints.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_02_01_world_waypoints.sql
diff --git a/sql/old/3.3.5a/2012_06_02_02_world_creature_text.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_02_02_world_creature_text.sql
index c38e413617d..c38e413617d 100644
--- a/sql/old/3.3.5a/2012_06_02_02_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_02_02_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_06_02_03_world_creature_loot_template_hp.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_02_03_world_creature_loot_template_hp.sql
index 0e113bbaac6..0e113bbaac6 100644
--- a/sql/old/3.3.5a/2012_06_02_03_world_creature_loot_template_hp.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_02_03_world_creature_loot_template_hp.sql
diff --git a/sql/old/3.3.5a/2012_06_02_03_world_creature_loot_template_zm.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_02_03_world_creature_loot_template_zm.sql
index bae963fd5b4..bae963fd5b4 100644
--- a/sql/old/3.3.5a/2012_06_02_03_world_creature_loot_template_zm.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_02_03_world_creature_loot_template_zm.sql
diff --git a/sql/old/3.3.5a/2012_06_02_03_world_reference_loot_template.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_02_03_world_reference_loot_template.sql
index ae41cb150b2..ae41cb150b2 100644
--- a/sql/old/3.3.5a/2012_06_02_03_world_reference_loot_template.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_02_03_world_reference_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_06_02_04_world_reference_loot_template.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_02_04_world_reference_loot_template.sql
index 8390f14ba80..8390f14ba80 100644
--- a/sql/old/3.3.5a/2012_06_02_04_world_reference_loot_template.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_02_04_world_reference_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_06_02_05_world_reference_loot_template.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_02_05_world_reference_loot_template.sql
index 51dee84ad9b..51dee84ad9b 100644
--- a/sql/old/3.3.5a/2012_06_02_05_world_reference_loot_template.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_02_05_world_reference_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_06_02_06_world_waypoints.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_02_06_world_waypoints.sql
index ee265b3bdcc..ee265b3bdcc 100644
--- a/sql/old/3.3.5a/2012_06_02_06_world_waypoints.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_02_06_world_waypoints.sql
diff --git a/sql/old/3.3.5a/2012_06_02_07_world_Misc.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_02_07_world_Misc.sql
index c541819841c..c541819841c 100644
--- a/sql/old/3.3.5a/2012_06_02_07_world_Misc.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_02_07_world_Misc.sql
diff --git a/sql/old/3.3.5a/2012_06_02_08_world_waypoints.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_02_08_world_waypoints.sql
index 79fa6b22cd2..79fa6b22cd2 100644
--- a/sql/old/3.3.5a/2012_06_02_08_world_waypoints.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_02_08_world_waypoints.sql
diff --git a/sql/old/3.3.5a/2012_06_02_09_world_creature_transport.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_02_09_world_creature_transport.sql
index 9a0b062f9ea..9a0b062f9ea 100644
--- a/sql/old/3.3.5a/2012_06_02_09_world_creature_transport.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_02_09_world_creature_transport.sql
diff --git a/sql/old/3.3.5a/2012_06_03_00_world_sai.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_03_00_world_sai.sql
index 7a5932e61fc..7a5932e61fc 100644
--- a/sql/old/3.3.5a/2012_06_03_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_03_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_06_03_01_world_creature.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_03_01_world_creature.sql
index 2df2bd6fbc0..2df2bd6fbc0 100644
--- a/sql/old/3.3.5a/2012_06_03_01_world_creature.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_03_01_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_06_03_02_world_misc.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_03_02_world_misc.sql
index 69de8eacdf3..69de8eacdf3 100644
--- a/sql/old/3.3.5a/2012_06_03_02_world_misc.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_03_02_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_06_03_03_world_quest_template.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_03_03_world_quest_template.sql
index bed13c12210..bed13c12210 100644
--- a/sql/old/3.3.5a/2012_06_03_03_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_03_03_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2012_06_03_04_world_misc.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_03_04_world_misc.sql
index 22621d92cbd..22621d92cbd 100644
--- a/sql/old/3.3.5a/2012_06_03_04_world_misc.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_03_04_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_06_03_05_world_creature.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_03_05_world_creature.sql
index c5bccdbf33c..c5bccdbf33c 100644
--- a/sql/old/3.3.5a/2012_06_03_05_world_creature.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_03_05_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_06_03_06_world_sai.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_03_06_world_sai.sql
index 32d1995a092..32d1995a092 100644
--- a/sql/old/3.3.5a/2012_06_03_06_world_sai.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_03_06_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_06_04_00_world_sai.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_04_00_world_sai.sql
index 9497f73041c..9497f73041c 100644
--- a/sql/old/3.3.5a/2012_06_04_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_04_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_06_04_01_world_gossip.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_04_01_world_gossip.sql
index 180a145678a..180a145678a 100644
--- a/sql/old/3.3.5a/2012_06_04_01_world_gossip.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_04_01_world_gossip.sql
diff --git a/sql/old/3.3.5a/2012_06_04_02_world_gossip.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_04_02_world_gossip.sql
index 0122e9b736e..0122e9b736e 100644
--- a/sql/old/3.3.5a/2012_06_04_02_world_gossip.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_04_02_world_gossip.sql
diff --git a/sql/old/3.3.5a/2012_06_04_03_world_conditions.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_04_03_world_conditions.sql
index 6426df66375..6426df66375 100644
--- a/sql/old/3.3.5a/2012_06_04_03_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_04_03_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_06_04_04_world_sai.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_04_04_world_sai.sql
index f38cd1fe63f..f38cd1fe63f 100644
--- a/sql/old/3.3.5a/2012_06_04_04_world_sai.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_04_04_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_06_04_05_world_sai.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_04_05_world_sai.sql
index 51d998c15ab..51d998c15ab 100644
--- a/sql/old/3.3.5a/2012_06_04_05_world_sai.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_04_05_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_06_04_06_world_sai.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_04_06_world_sai.sql
index 455246d82b7..455246d82b7 100644
--- a/sql/old/3.3.5a/2012_06_04_06_world_sai.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_04_06_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_06_04_07_world_misc.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_04_07_world_misc.sql
index 947ba3b31ee..947ba3b31ee 100644
--- a/sql/old/3.3.5a/2012_06_04_07_world_misc.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_04_07_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_06_05_00_world_sai.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_05_00_world_sai.sql
index c43998b7459..c43998b7459 100644
--- a/sql/old/3.3.5a/2012_06_05_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_05_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_06_05_01_world_gossip.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_05_01_world_gossip.sql
index 97eb4f58e33..97eb4f58e33 100644
--- a/sql/old/3.3.5a/2012_06_05_01_world_gossip.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_05_01_world_gossip.sql
diff --git a/sql/old/3.3.5a/2012_06_05_01_world_gossip_sai.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_05_01_world_gossip_sai.sql
index d6ee0349fc4..d6ee0349fc4 100644
--- a/sql/old/3.3.5a/2012_06_05_01_world_gossip_sai.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_05_01_world_gossip_sai.sql
diff --git a/sql/old/3.3.5a/2012_06_05_03_world_script.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_05_03_world_script.sql
index d10247979d9..d10247979d9 100644
--- a/sql/old/3.3.5a/2012_06_05_03_world_script.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_05_03_world_script.sql
diff --git a/sql/old/3.3.5a/2012_06_06_00_world_script.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_06_00_world_script.sql
index d2790265851..d2790265851 100644
--- a/sql/old/3.3.5a/2012_06_06_00_world_script.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_06_00_world_script.sql
diff --git a/sql/old/3.3.5a/2012_06_06_01_world_sai.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_06_01_world_sai.sql
index 97e175652d2..97e175652d2 100644
--- a/sql/old/3.3.5a/2012_06_06_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_06_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_06_06_02_world_sai.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_06_02_world_sai.sql
index 297409ed776..297409ed776 100644
--- a/sql/old/3.3.5a/2012_06_06_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_06_02_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_06_06_03_world_conditions.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_06_03_world_conditions.sql
index c9af2a1bcbc..c9af2a1bcbc 100644
--- a/sql/old/3.3.5a/2012_06_06_03_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_06_03_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_06_06_04_world_sai.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_06_04_world_sai.sql
index af820f418be..af820f418be 100644
--- a/sql/old/3.3.5a/2012_06_06_04_world_sai.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_06_04_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_06_07_00_world_gossip.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_07_00_world_gossip.sql
index 0d53f910af8..0d53f910af8 100644
--- a/sql/old/3.3.5a/2012_06_07_00_world_gossip.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_07_00_world_gossip.sql
diff --git a/sql/old/3.3.5a/2012_06_07_01_world_gossip.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_07_01_world_gossip.sql
index d77d41fa523..d77d41fa523 100644
--- a/sql/old/3.3.5a/2012_06_07_01_world_gossip.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_07_01_world_gossip.sql
diff --git a/sql/old/3.3.5a/2012_06_07_02_world_item_template.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_07_02_world_item_template.sql
index fdf3cce7c24..fdf3cce7c24 100644
--- a/sql/old/3.3.5a/2012_06_07_02_world_item_template.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_07_02_world_item_template.sql
diff --git a/sql/old/3.3.5a/2012_06_07_03_world_item_template.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_07_03_world_item_template.sql
index a6caa15632e..a6caa15632e 100644
--- a/sql/old/3.3.5a/2012_06_07_03_world_item_template.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_07_03_world_item_template.sql
diff --git a/sql/old/3.3.5a/2012_06_07_04_world_spell_dbc.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_07_04_world_spell_dbc.sql
index de5753fc7a6..de5753fc7a6 100644
--- a/sql/old/3.3.5a/2012_06_07_04_world_spell_dbc.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_07_04_world_spell_dbc.sql
diff --git a/sql/old/3.3.5a/2012_06_07_05_world_misc.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_07_05_world_misc.sql
index 8c7f4c54d10..8c7f4c54d10 100644
--- a/sql/old/3.3.5a/2012_06_07_05_world_misc.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_07_05_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_06_08_00_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_08_00_world_spell_bonus_data.sql
index bf899421605..bf899421605 100644
--- a/sql/old/3.3.5a/2012_06_08_00_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_08_00_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/2012_06_09_00_world_creature.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_09_00_world_creature.sql
index b2454b54163..b2454b54163 100644
--- a/sql/old/3.3.5a/2012_06_09_00_world_creature.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_09_00_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_06_12_00_world_transport.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_12_00_world_transport.sql
index 28779398a7a..28779398a7a 100644
--- a/sql/old/3.3.5a/2012_06_12_00_world_transport.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_12_00_world_transport.sql
diff --git a/sql/old/3.3.5a/2012_06_13_00_world_creature.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_13_00_world_creature.sql
index 0d2aa74c9c7..0d2aa74c9c7 100644
--- a/sql/old/3.3.5a/2012_06_13_00_world_creature.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_13_00_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_06_13_01_world_creature.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_13_01_world_creature.sql
index 5ba3e0d34a2..5ba3e0d34a2 100644
--- a/sql/old/3.3.5a/2012_06_13_01_world_creature.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_13_01_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_06_13_02_world_gossip.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_13_02_world_gossip.sql
index 2cac9fe2a0a..2cac9fe2a0a 100644
--- a/sql/old/3.3.5a/2012_06_13_02_world_gossip.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_13_02_world_gossip.sql
diff --git a/sql/old/3.3.5a/2012_06_13_03_world_sai.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_13_03_world_sai.sql
index ad9642447c0..ad9642447c0 100644
--- a/sql/old/3.3.5a/2012_06_13_03_world_sai.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_13_03_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_06_14_00_world_spell_linked_spell.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_14_00_world_spell_linked_spell.sql
index 85cae64c21d..85cae64c21d 100644
--- a/sql/old/3.3.5a/2012_06_14_00_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_14_00_world_spell_linked_spell.sql
diff --git a/sql/old/3.3.5a/2012_06_14_01_world_spell_linked_spell.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_14_01_world_spell_linked_spell.sql
index 6109c8db068..6109c8db068 100644
--- a/sql/old/3.3.5a/2012_06_14_01_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_14_01_world_spell_linked_spell.sql
diff --git a/sql/old/3.3.5a/2012_06_14_02_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_14_02_world_spell_bonus_data.sql
index b72461e8d39..b72461e8d39 100644
--- a/sql/old/3.3.5a/2012_06_14_02_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_14_02_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/2012_06_14_03_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_14_03_world_spell_bonus_data.sql
index 1f43c115d3b..1f43c115d3b 100644
--- a/sql/old/3.3.5a/2012_06_14_03_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_14_03_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/2012_06_14_03_world_spell_ranks.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_14_03_world_spell_ranks.sql
index f6641f2f095..f6641f2f095 100644
--- a/sql/old/3.3.5a/2012_06_14_03_world_spell_ranks.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_14_03_world_spell_ranks.sql
diff --git a/sql/old/3.3.5a/2012_06_14_04_world_spell_script_names.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_14_04_world_spell_script_names.sql
index 00ceb1df9e9..00ceb1df9e9 100644
--- a/sql/old/3.3.5a/2012_06_14_04_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_14_04_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_06_14_05_world_spelldifficulty_dbc.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_14_05_world_spelldifficulty_dbc.sql
index 1f218027f91..1f218027f91 100644
--- a/sql/old/3.3.5a/2012_06_14_05_world_spelldifficulty_dbc.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_14_05_world_spelldifficulty_dbc.sql
diff --git a/sql/old/3.3.5a/2012_06_14_06_world_conditions.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_14_06_world_conditions.sql
index 43d422e9239..43d422e9239 100644
--- a/sql/old/3.3.5a/2012_06_14_06_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_14_06_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_06_14_07_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_14_07_world_spell_bonus_data.sql
index aa9c1b732c4..aa9c1b732c4 100644
--- a/sql/old/3.3.5a/2012_06_14_07_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_14_07_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/2012_06_14_08_world_spell_script_names.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_14_08_world_spell_script_names.sql
index a9faa529143..a9faa529143 100644
--- a/sql/old/3.3.5a/2012_06_14_08_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_14_08_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_06_14_09_world_sai.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_14_09_world_sai.sql
index 3beb7c06326..3beb7c06326 100644
--- a/sql/old/3.3.5a/2012_06_14_09_world_sai.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_14_09_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_06_14_10_world_eai.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_14_10_world_eai.sql
index 355646fbd69..355646fbd69 100644
--- a/sql/old/3.3.5a/2012_06_14_10_world_eai.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_14_10_world_eai.sql
diff --git a/sql/old/3.3.5a/2012_06_14_11_world_sai.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_14_11_world_sai.sql
index 1d01b02f86b..1d01b02f86b 100644
--- a/sql/old/3.3.5a/2012_06_14_11_world_sai.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_14_11_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_06_15_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_15_00_world_spell_script_names.sql
index 040ad3c87ba..040ad3c87ba 100644
--- a/sql/old/3.3.5a/2012_06_15_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_15_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_06_15_01_world_sai.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_15_01_world_sai.sql
index 501c3aa1c40..501c3aa1c40 100644
--- a/sql/old/3.3.5a/2012_06_15_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_15_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_06_15_02_world_sai.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_15_02_world_sai.sql
index f813ae2996b..f813ae2996b 100644
--- a/sql/old/3.3.5a/2012_06_15_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_15_02_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_06_16_00_world_sai.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_16_00_world_sai.sql
index a714e498bc9..a714e498bc9 100644
--- a/sql/old/3.3.5a/2012_06_16_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_16_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_06_16_01_world_creature.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_16_01_world_creature.sql
index 7fe69dff71f..7fe69dff71f 100644
--- a/sql/old/3.3.5a/2012_06_16_01_world_creature.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_16_01_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_06_17_00_world_creature.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_17_00_world_creature.sql
index 53e101c5d60..53e101c5d60 100644
--- a/sql/old/3.3.5a/2012_06_17_00_world_creature.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_17_00_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_06_17_01_world_creature.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_17_01_world_creature.sql
index c5d50fdde1e..c5d50fdde1e 100644
--- a/sql/old/3.3.5a/2012_06_17_01_world_creature.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_17_01_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_06_17_02_world_creature.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_17_02_world_creature.sql
index 73ffdb26ff8..73ffdb26ff8 100644
--- a/sql/old/3.3.5a/2012_06_17_02_world_creature.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_17_02_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_06_18_00_world_creature.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_18_00_world_creature.sql
index 23538c33f73..23538c33f73 100644
--- a/sql/old/3.3.5a/2012_06_18_00_world_creature.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_18_00_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_06_18_01_world_spell_script_names.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_18_01_world_spell_script_names.sql
index 5f227a887d7..5f227a887d7 100644
--- a/sql/old/3.3.5a/2012_06_18_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_18_01_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_06_18_02_world_sai.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_18_02_world_sai.sql
index 0c036d3d5f0..0c036d3d5f0 100644
--- a/sql/old/3.3.5a/2012_06_18_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_18_02_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_06_18_03_world_sai.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_18_03_world_sai.sql
index 833c64c8d9d..833c64c8d9d 100644
--- a/sql/old/3.3.5a/2012_06_18_03_world_sai.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_18_03_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_06_19_00_world_sai.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_19_00_world_sai.sql
index fdfc5aec5f8..fdfc5aec5f8 100644
--- a/sql/old/3.3.5a/2012_06_19_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_19_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_06_19_01_world_gossip.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_19_01_world_gossip.sql
index 7800d2a9740..7800d2a9740 100644
--- a/sql/old/3.3.5a/2012_06_19_01_world_gossip.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_19_01_world_gossip.sql
diff --git a/sql/old/3.3.5a/2012_06_19_02_world_misc.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_19_02_world_misc.sql
index 2d79a5e43af..2d79a5e43af 100644
--- a/sql/old/3.3.5a/2012_06_19_02_world_misc.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_19_02_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_06_20_00_world_gossip.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_20_00_world_gossip.sql
index b4d61887223..b4d61887223 100644
--- a/sql/old/3.3.5a/2012_06_20_00_world_gossip.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_20_00_world_gossip.sql
diff --git a/sql/old/3.3.5a/2012_06_20_01_world_sai.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_20_01_world_sai.sql
index 989550de185..989550de185 100644
--- a/sql/old/3.3.5a/2012_06_20_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_20_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_06_20_02_world_gossip.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_20_02_world_gossip.sql
index c20cb99aa4a..c20cb99aa4a 100644
--- a/sql/old/3.3.5a/2012_06_20_02_world_gossip.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_20_02_world_gossip.sql
diff --git a/sql/old/3.3.5a/2012_06_24_00_world_gossip.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_24_00_world_gossip.sql
index f8aa5213bf4..f8aa5213bf4 100644
--- a/sql/old/3.3.5a/2012_06_24_00_world_gossip.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_24_00_world_gossip.sql
diff --git a/sql/old/3.3.5a/2012_06_24_01_world_quest.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_24_01_world_quest.sql
index ec0d39b0c62..ec0d39b0c62 100644
--- a/sql/old/3.3.5a/2012_06_24_01_world_quest.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_24_01_world_quest.sql
diff --git a/sql/old/3.3.5a/2012_06_24_02_world_gameobject.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_24_02_world_gameobject.sql
index 4894365462e..4894365462e 100644
--- a/sql/old/3.3.5a/2012_06_24_02_world_gameobject.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_24_02_world_gameobject.sql
diff --git a/sql/old/3.3.5a/2012_06_24_03_world_gameobject.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_24_03_world_gameobject.sql
index b98ef4b6dbe..b98ef4b6dbe 100644
--- a/sql/old/3.3.5a/2012_06_24_03_world_gameobject.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_24_03_world_gameobject.sql
diff --git a/sql/old/3.3.5a/2012_06_24_04_world_gameobject.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_24_04_world_gameobject.sql
index 2fa34ee18c3..2fa34ee18c3 100644
--- a/sql/old/3.3.5a/2012_06_24_04_world_gameobject.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_24_04_world_gameobject.sql
diff --git a/sql/old/3.3.5a/2012_06_25_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_25_00_world_spell_script_names.sql
index 51f3e19f5bc..51f3e19f5bc 100644
--- a/sql/old/3.3.5a/2012_06_25_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_25_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_06_25_01_world_gameobject.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_25_01_world_gameobject.sql
index 5cadd915990..5cadd915990 100644
--- a/sql/old/3.3.5a/2012_06_25_01_world_gameobject.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_25_01_world_gameobject.sql
diff --git a/sql/old/3.3.5a/2012_06_25_02_world_gameobject.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_25_02_world_gameobject.sql
index f526f071bac..f526f071bac 100644
--- a/sql/old/3.3.5a/2012_06_25_02_world_gameobject.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_25_02_world_gameobject.sql
diff --git a/sql/old/3.3.5a/2012_06_26_00_world_sai.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_26_00_world_sai.sql
index c6fe75be1e5..c6fe75be1e5 100644
--- a/sql/old/3.3.5a/2012_06_26_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_26_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_06_26_01_world_creature.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_26_01_world_creature.sql
index 1f0dfff0b04..1f0dfff0b04 100644
--- a/sql/old/3.3.5a/2012_06_26_01_world_creature.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_26_01_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_06_26_02_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_26_02_world_creature_loot_template.sql
index 3a704e61bcf..3a704e61bcf 100644
--- a/sql/old/3.3.5a/2012_06_26_02_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_26_02_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_06_27_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_27_00_world_spell_script_names.sql
index 8210225de6e..8210225de6e 100644
--- a/sql/old/3.3.5a/2012_06_27_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_27_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_06_27_01_world_game_graveyard_zone.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_27_01_world_game_graveyard_zone.sql
index 973a1dc5296..973a1dc5296 100644
--- a/sql/old/3.3.5a/2012_06_27_01_world_game_graveyard_zone.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_06_27_01_world_game_graveyard_zone.sql
diff --git a/sql/old/3.3.5a/2012_07_01_00_world_creature_text.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_07_01_00_world_creature_text.sql
index f59663ceab5..f59663ceab5 100644
--- a/sql/old/3.3.5a/2012_07_01_00_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_07_01_00_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_07_01_01_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_07_01_01_world_achievement_criteria_data.sql
index e1c0529fffe..e1c0529fffe 100644
--- a/sql/old/3.3.5a/2012_07_01_01_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_07_01_01_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2012_07_02_00_world_creature_onkill_reputation.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_07_02_00_world_creature_onkill_reputation.sql
index f8f05fd9396..f8f05fd9396 100644
--- a/sql/old/3.3.5a/2012_07_02_00_world_creature_onkill_reputation.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_07_02_00_world_creature_onkill_reputation.sql
diff --git a/sql/old/3.3.5a/2012_07_02_01_world_sai.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_07_02_01_world_sai.sql
index 323d9bddcb2..323d9bddcb2 100644
--- a/sql/old/3.3.5a/2012_07_02_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_07_02_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_07_02_02_world_sai.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_07_02_02_world_sai.sql
index 6b6b0eb587c..f1d0c3f8968 100644
--- a/sql/old/3.3.5a/2012_07_02_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_07_02_02_world_sai.sql
@@ -141,7 +141,7 @@ DELETE FROM `spell_target_position` WHERE `id`=57897; -- there was none, but jus
INSERT INTO `spell_target_position` (`id`,`target_map`,`target_position_x`,`target_position_y`,`target_position_z`,`target_orientation`) VALUES
(57897,571,6383.445801,229.091522,397.031127,1.660376);
-- Add info for Munch's Death Gate spell click
-UPDATE `creature_template` SET `unit_flags`=567296,`exp`=2,`speed_run`=1,`minlevel`=80, `maxlevel`=80,`AIName`="SmartAI",`npcflag`=16777216 WHERE `entry`=30850;
+UPDATE `creature_template` SET `unit_flags`=567296,`exp`=2,`speed_run`=1,`minlevel`=80, `maxlevel`=80,`npcflag`=16777216 WHERE `entry`=30850;
DELETE FROM `npc_spellclick_spells` WHERE `npc_entry`=30850;
INSERT INTO `npc_spellclick_spells` (`npc_entry`,`spell_id`,`cast_flags`,`user_type`) VALUES
(30850,57897,2,1);
@@ -150,7 +150,7 @@ DELETE FROM `creature_template_addon` WHERE `entry`=30850;
INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
(30850,0,0,1,0, NULL); -- Death Gate (Munch)
-- Add info for Jayde's Death Gate spell click
-UPDATE `creature_template` SET `exp`=2,`speed_run`=1,`unit_flags`=567296,`minlevel`=80, `maxlevel`=80,`unit_flags`=567296, `speed_run`=1,`AIName`="SmartAI",`npcflag`=16777216 WHERE `entry`=30852;
+UPDATE `creature_template` SET `exp`=2,`speed_run`=1,`unit_flags`=567296,`minlevel`=80, `maxlevel`=80,`unit_flags`=567296, `speed_run`=1,`npcflag`=16777216 WHERE `entry`=30852;
DELETE FROM `npc_spellclick_spells` WHERE `npc_entry`=30852;
INSERT INTO `npc_spellclick_spells` (`npc_entry`,`spell_id`,`cast_flags`,`user_type`) VALUES
(30852,57897,2,1);
@@ -161,7 +161,7 @@ DELETE FROM `creature_template_addon` WHERE `entry`=30852;
INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
(30852,0,0,1,0, NULL); -- Death Gate (Jayde)
-- Add info for Mograine's Death Gate spell click
-UPDATE `creature_template` SET `unit_flags`=567296,`exp`=2,`speed_run`=1,`minlevel`=80, `maxlevel`=80,`AIName`="SmartAI",`npcflag`=16777216 WHERE `entry`=30841;
+UPDATE `creature_template` SET `unit_flags`=567296,`exp`=2,`speed_run`=1,`minlevel`=80, `maxlevel`=80,`npcflag`=16777216 WHERE `entry`=30841;
DELETE FROM `npc_spellclick_spells` WHERE `npc_entry`=30841;
INSERT INTO `npc_spellclick_spells` (`npc_entry`,`spell_id`,`cast_flags`,`user_type`) VALUES
(30841,57897,2,1);
diff --git a/sql/old/3.3.5a/2012_07_02_03_world_gossip.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_07_02_03_world_gossip.sql
index 0c158aa7511..0c158aa7511 100644
--- a/sql/old/3.3.5a/2012_07_02_03_world_gossip.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_07_02_03_world_gossip.sql
diff --git a/sql/old/3.3.5a/2012_07_02_04_world_spell_script_names.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_07_02_04_world_spell_script_names.sql
index 9054ea7ba82..9054ea7ba82 100644
--- a/sql/old/3.3.5a/2012_07_02_04_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_07_02_04_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_07_04_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_07_04_00_world_spell_script_names.sql
index 9e157261409..9e157261409 100644
--- a/sql/old/3.3.5a/2012_07_04_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_07_04_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_07_05_00_world_item_template.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_07_05_00_world_item_template.sql
index d4240ca65a7..d4240ca65a7 100644
--- a/sql/old/3.3.5a/2012_07_05_00_world_item_template.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_07_05_00_world_item_template.sql
diff --git a/sql/old/3.3.5a/2012_07_06_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_07_06_00_world_spell_script_names.sql
index 676ac430a9d..676ac430a9d 100644
--- a/sql/old/3.3.5a/2012_07_06_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_07_06_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_07_09_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_07_09_00_world_spell_script_names.sql
index c97695498b8..c97695498b8 100644
--- a/sql/old/3.3.5a/2012_07_09_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB47_to_TDB48_updates/world/2012_07_09_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_08_06_00_auth_logs.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/auth/2012_08_06_00_auth_logs.sql
index 04e90e7d208..04e90e7d208 100644
--- a/sql/old/3.3.5a/2012_08_06_00_auth_logs.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/auth/2012_08_06_00_auth_logs.sql
diff --git a/sql/old/3.3.5a/2012_08_07_00_characters_characters.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/characters/2012_08_07_00_characters_characters.sql
index e9bea82ad4b..e9bea82ad4b 100644
--- a/sql/old/3.3.5a/2012_08_07_00_characters_characters.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/characters/2012_08_07_00_characters_characters.sql
diff --git a/sql/old/3.3.5a/2012_09_07_00_characters_characters.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/characters/2012_09_07_00_characters_characters.sql
index 26ad904b4a0..26ad904b4a0 100644
--- a/sql/old/3.3.5a/2012_09_07_00_characters_characters.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/characters/2012_09_07_00_characters_characters.sql
diff --git a/sql/old/3.3.5a/2012_07_12_00_world_version.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_12_00_world_version.sql
index ce24fa54614..ce24fa54614 100644
--- a/sql/old/3.3.5a/2012_07_12_00_world_version.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_12_00_world_version.sql
diff --git a/sql/old/3.3.5a/2012_07_13_00_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_13_00_world_spell_proc_event.sql
index 952a4502b30..952a4502b30 100644
--- a/sql/old/3.3.5a/2012_07_13_00_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_13_00_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2012_07_13_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_13_00_world_spell_script_names.sql
index 64500418871..64500418871 100644
--- a/sql/old/3.3.5a/2012_07_13_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_13_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_07_14_00_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_14_00_world_creature_loot_template.sql
index f76e5519594..f76e5519594 100644
--- a/sql/old/3.3.5a/2012_07_14_00_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_14_00_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_07_14_01_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_14_01_world_creature_loot_template.sql
index 6a9f6998324..6a9f6998324 100644
--- a/sql/old/3.3.5a/2012_07_14_01_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_14_01_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_07_16_00_world_creature_template.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_16_00_world_creature_template.sql
index 7ce7c546592..7ce7c546592 100644
--- a/sql/old/3.3.5a/2012_07_16_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_16_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_07_16_01_world_reference_loot_template.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_16_01_world_reference_loot_template.sql
index e56dff3b0ea..e56dff3b0ea 100644
--- a/sql/old/3.3.5a/2012_07_16_01_world_reference_loot_template.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_16_01_world_reference_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_07_22_00_world_spelldifficulty_dbc.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_00_world_spelldifficulty_dbc.sql
index c90c42692b9..c90c42692b9 100644
--- a/sql/old/3.3.5a/2012_07_22_00_world_spelldifficulty_dbc.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_00_world_spelldifficulty_dbc.sql
diff --git a/sql/old/3.3.5a/2012_07_22_01_world_conditions.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_01_world_conditions.sql
index 333ae7f997f..333ae7f997f 100644
--- a/sql/old/3.3.5a/2012_07_22_01_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_01_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_07_22_02_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_02_world_creature_loot_template.sql
index e4bc61b6fa4..e4bc61b6fa4 100644
--- a/sql/old/3.3.5a/2012_07_22_02_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_02_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_07_22_03_world_gossip.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_03_world_gossip.sql
index d1aa7e50747..d1aa7e50747 100644
--- a/sql/old/3.3.5a/2012_07_22_03_world_gossip.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_03_world_gossip.sql
diff --git a/sql/old/3.3.5a/2012_07_22_04_world_gossip.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_04_world_gossip.sql
index 0fbf2e7508f..0fbf2e7508f 100644
--- a/sql/old/3.3.5a/2012_07_22_04_world_gossip.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_04_world_gossip.sql
diff --git a/sql/old/3.3.5a/2012_07_22_05_world_script_texts.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_05_world_script_texts.sql
index 2ecb1b8f130..2ecb1b8f130 100644
--- a/sql/old/3.3.5a/2012_07_22_05_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_05_world_script_texts.sql
diff --git a/sql/old/3.3.5a/2012_07_22_06_world_gossip.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_06_world_gossip.sql
index 0cb41937d3c..0cb41937d3c 100644
--- a/sql/old/3.3.5a/2012_07_22_06_world_gossip.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_06_world_gossip.sql
diff --git a/sql/old/3.3.5a/2012_07_22_07_world_sai.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_07_world_sai.sql
index f8f42ef07da..f8f42ef07da 100644
--- a/sql/old/3.3.5a/2012_07_22_07_world_sai.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_07_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_07_22_08_world_sai.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_08_world_sai.sql
index 62b5a95f532..62b5a95f532 100644
--- a/sql/old/3.3.5a/2012_07_22_08_world_sai.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_08_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_07_22_09_world_creature_template.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_09_world_creature_template.sql
index 909b4cc238b..909b4cc238b 100644
--- a/sql/old/3.3.5a/2012_07_22_09_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_09_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_07_22_10_world_creature_onkill_rep.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_10_world_creature_onkill_rep.sql
index 22d81bca548..22d81bca548 100644
--- a/sql/old/3.3.5a/2012_07_22_10_world_creature_onkill_rep.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_10_world_creature_onkill_rep.sql
diff --git a/sql/old/3.3.5a/2012_07_22_11_world_conditions.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_11_world_conditions.sql
index 9ecb28307ba..9ecb28307ba 100644
--- a/sql/old/3.3.5a/2012_07_22_11_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_11_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_07_22_12_world_creature_template.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_12_world_creature_template.sql
index 51e2b36d15d..51e2b36d15d 100644
--- a/sql/old/3.3.5a/2012_07_22_12_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_12_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_07_22_13_world_conditions.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_13_world_conditions.sql
index 896257d3f92..896257d3f92 100644
--- a/sql/old/3.3.5a/2012_07_22_13_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_13_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_07_22_14_world_gameobject.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_14_world_gameobject.sql
index bf77d1a625f..bf77d1a625f 100644
--- a/sql/old/3.3.5a/2012_07_22_14_world_gameobject.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_14_world_gameobject.sql
diff --git a/sql/old/3.3.5a/2012_07_22_15_world_sai.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_15_world_sai.sql
index 218eb9a3399..218eb9a3399 100644
--- a/sql/old/3.3.5a/2012_07_22_15_world_sai.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_22_15_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_07_29_00_world_factionchange.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_29_00_world_factionchange.sql
index ca6c36630bc..ca6c36630bc 100644
--- a/sql/old/3.3.5a/2012_07_29_00_world_factionchange.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_29_00_world_factionchange.sql
diff --git a/sql/old/3.3.5a/2012_07_29_01_world_pool_quest.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_29_01_world_pool_quest.sql
index 0e0f192c8d7..0e0f192c8d7 100644
--- a/sql/old/3.3.5a/2012_07_29_01_world_pool_quest.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_29_01_world_pool_quest.sql
diff --git a/sql/old/3.3.5a/2012_07_29_02_world_sai.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_29_02_world_sai.sql
index 1a452576139..1a452576139 100644
--- a/sql/old/3.3.5a/2012_07_29_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_29_02_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_07_29_03_world_sai.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_29_03_world_sai.sql
index d8ca1b12390..d8ca1b12390 100644
--- a/sql/old/3.3.5a/2012_07_29_03_world_sai.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_29_03_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_07_29_04_world_sai.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_29_04_world_sai.sql
index ef46c72f42c..ef46c72f42c 100644
--- a/sql/old/3.3.5a/2012_07_29_04_world_sai.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_29_04_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_07_29_05_world_sai.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_29_05_world_sai.sql
index e1fd032eaca..e1fd032eaca 100644
--- a/sql/old/3.3.5a/2012_07_29_05_world_sai.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_29_05_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_07_29_06_world_sai.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_29_06_world_sai.sql
index 03ebdfc6d0a..03ebdfc6d0a 100644
--- a/sql/old/3.3.5a/2012_07_29_06_world_sai.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_29_06_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_07_29_07_world_sai.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_29_07_world_sai.sql
index 18de6d15c0a..18de6d15c0a 100644
--- a/sql/old/3.3.5a/2012_07_29_07_world_sai.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_29_07_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_07_29_08_world_sai.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_29_08_world_sai.sql
index 9ef63caba11..9ef63caba11 100644
--- a/sql/old/3.3.5a/2012_07_29_08_world_sai.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_29_08_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_07_29_09_world_gossip_menu_option.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_29_09_world_gossip_menu_option.sql
index 99089488941..99089488941 100644
--- a/sql/old/3.3.5a/2012_07_29_09_world_gossip_menu_option.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_29_09_world_gossip_menu_option.sql
diff --git a/sql/old/3.3.5a/2012_07_29_10_world_sai.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_29_10_world_sai.sql
index c5513bf2f25..c5513bf2f25 100644
--- a/sql/old/3.3.5a/2012_07_29_10_world_sai.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_07_29_10_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_08_01_00_world_sai.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_01_00_world_sai.sql
index bf214cbfa9c..bf214cbfa9c 100644
--- a/sql/old/3.3.5a/2012_08_01_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_01_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_08_01_01_world_creature.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_01_01_world_creature.sql
index 875a956fbd1..875a956fbd1 100644
--- a/sql/old/3.3.5a/2012_08_01_01_world_creature.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_01_01_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_08_01_02_world_loot.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_01_02_world_loot.sql
index a27bd274acf..a27bd274acf 100644
--- a/sql/old/3.3.5a/2012_08_01_02_world_loot.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_01_02_world_loot.sql
diff --git a/sql/old/3.3.5a/2012_08_02_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_02_00_world_spell_script_names.sql
index f14e44e35ff..f14e44e35ff 100644
--- a/sql/old/3.3.5a/2012_08_02_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_02_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_08_04_00_world_disables.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_04_00_world_disables.sql
index b25af0201d0..b25af0201d0 100644
--- a/sql/old/3.3.5a/2012_08_04_00_world_disables.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_04_00_world_disables.sql
diff --git a/sql/old/3.3.5a/2012_08_04_01_world_disables.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_04_01_world_disables.sql
index 1d5a7488138..1d5a7488138 100644
--- a/sql/old/3.3.5a/2012_08_04_01_world_disables.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_04_01_world_disables.sql
diff --git a/sql/old/3.3.5a/2012_08_04_02_world_disables.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_04_02_world_disables.sql
index a01b1284293..a01b1284293 100644
--- a/sql/old/3.3.5a/2012_08_04_02_world_disables.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_04_02_world_disables.sql
diff --git a/sql/old/3.3.5a/2012_08_04_03_world_disables.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_04_03_world_disables.sql
index a0b7750702f..a0b7750702f 100644
--- a/sql/old/3.3.5a/2012_08_04_03_world_disables.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_04_03_world_disables.sql
diff --git a/sql/old/3.3.5a/2012_08_04_04_world_disables.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_04_04_world_disables.sql
index ecbafc45e58..ecbafc45e58 100644
--- a/sql/old/3.3.5a/2012_08_04_04_world_disables.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_04_04_world_disables.sql
diff --git a/sql/old/3.3.5a/2012_08_04_05_world_disables.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_04_05_world_disables.sql
index 66d475a39b8..66d475a39b8 100644
--- a/sql/old/3.3.5a/2012_08_04_05_world_disables.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_04_05_world_disables.sql
diff --git a/sql/old/3.3.5a/2012_08_04_06_world_quest_template.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_04_06_world_quest_template.sql
index fe48c887ae0..fe48c887ae0 100644
--- a/sql/old/3.3.5a/2012_08_04_06_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_04_06_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2012_08_04_07_world_game_event_creature_quest.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_04_07_world_game_event_creature_quest.sql
index b72f8edd46d..b72f8edd46d 100644
--- a/sql/old/3.3.5a/2012_08_04_07_world_game_event_creature_quest.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_04_07_world_game_event_creature_quest.sql
diff --git a/sql/old/3.3.5a/2012_08_04_08_world_disables.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_04_08_world_disables.sql
index 6944c45f1f4..6944c45f1f4 100644
--- a/sql/old/3.3.5a/2012_08_04_08_world_disables.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_04_08_world_disables.sql
diff --git a/sql/old/3.3.5a/2012_08_04_09_world_disables.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_04_09_world_disables.sql
index 3023625410e..3023625410e 100644
--- a/sql/old/3.3.5a/2012_08_04_09_world_disables.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_04_09_world_disables.sql
diff --git a/sql/old/3.3.5a/2012_08_04_10_world_disables.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_04_10_world_disables.sql
index b911e33fd3c..b911e33fd3c 100644
--- a/sql/old/3.3.5a/2012_08_04_10_world_disables.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_04_10_world_disables.sql
diff --git a/sql/old/3.3.5a/2012_08_04_11_world_game_event_creature_quest.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_04_11_world_game_event_creature_quest.sql
index 224749c7e10..224749c7e10 100644
--- a/sql/old/3.3.5a/2012_08_04_11_world_game_event_creature_quest.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_04_11_world_game_event_creature_quest.sql
diff --git a/sql/old/3.3.5a/2012_08_05_00_world_trinity_string.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_05_00_world_trinity_string.sql
index e432f598c02..e432f598c02 100644
--- a/sql/old/3.3.5a/2012_08_05_00_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_05_00_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/2012_08_05_01_world_command.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_05_01_world_command.sql
index f19bfe1c0d0..f19bfe1c0d0 100644
--- a/sql/old/3.3.5a/2012_08_05_01_world_command.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_05_01_world_command.sql
diff --git a/sql/old/3.3.5a/2012_08_06_00_world_command.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_06_00_world_command.sql
index 50628aaa589..50628aaa589 100644
--- a/sql/old/3.3.5a/2012_08_06_00_world_command.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_06_00_world_command.sql
diff --git a/sql/old/3.3.5a/2012_08_09_00_world_creature_template.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_09_00_world_creature_template.sql
index 8d04c13dc87..8d04c13dc87 100644
--- a/sql/old/3.3.5a/2012_08_09_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_09_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_08_09_01_world_sai.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_09_01_world_sai.sql
index 94dce1bcc2c..94dce1bcc2c 100644
--- a/sql/old/3.3.5a/2012_08_09_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_09_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_08_10_00_world_conditions.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_10_00_world_conditions.sql
index 14c5c570b6e..14c5c570b6e 100644
--- a/sql/old/3.3.5a/2012_08_10_00_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_10_00_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_08_10_01_world_loot_template.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_10_01_world_loot_template.sql
index 07d400dc0d7..07d400dc0d7 100644
--- a/sql/old/3.3.5a/2012_08_10_01_world_loot_template.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_10_01_world_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_08_10_02_world_script_texts.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_10_02_world_script_texts.sql
index 0b97df592e1..0b97df592e1 100644
--- a/sql/old/3.3.5a/2012_08_10_02_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_10_02_world_script_texts.sql
diff --git a/sql/old/3.3.5a/2012_08_10_03_world_quest_template.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_10_03_world_quest_template.sql
index c4aebf5ba16..c4aebf5ba16 100644
--- a/sql/old/3.3.5a/2012_08_10_03_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_10_03_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2012_08_10_04_world_gossip.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_10_04_world_gossip.sql
index a2082447dfc..a2082447dfc 100644
--- a/sql/old/3.3.5a/2012_08_10_04_world_gossip.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_10_04_world_gossip.sql
diff --git a/sql/old/3.3.5a/2012_08_10_05_world_quest_template.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_10_05_world_quest_template.sql
index a11657dc664..a11657dc664 100644
--- a/sql/old/3.3.5a/2012_08_10_05_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_10_05_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2012_08_10_06_world_creature.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_10_06_world_creature.sql
index 611a2d1e934..611a2d1e934 100644
--- a/sql/old/3.3.5a/2012_08_10_06_world_creature.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_10_06_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_08_11_00_world_creature_template.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_11_00_world_creature_template.sql
index 972b125d247..972b125d247 100644
--- a/sql/old/3.3.5a/2012_08_11_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_11_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_08_11_01_world_quest_poi.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_11_01_world_quest_poi.sql
index 6672df2bc98..6672df2bc98 100644
--- a/sql/old/3.3.5a/2012_08_11_01_world_quest_poi.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_11_01_world_quest_poi.sql
diff --git a/sql/old/3.3.5a/2012_08_12_00_world_conditions.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_12_00_world_conditions.sql
index 6e1fd0ac1db..6e1fd0ac1db 100644
--- a/sql/old/3.3.5a/2012_08_12_00_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_12_00_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_08_12_01_world_spell_script_names.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_12_01_world_spell_script_names.sql
index 980aceff519..980aceff519 100644
--- a/sql/old/3.3.5a/2012_08_12_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_12_01_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_08_12_02_world_spell_script_names.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_12_02_world_spell_script_names.sql
index 15ca9c43cc5..15ca9c43cc5 100644
--- a/sql/old/3.3.5a/2012_08_12_02_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_12_02_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_08_13_00_world_creature_text.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_13_00_world_creature_text.sql
index aeb24dbfe90..aeb24dbfe90 100644
--- a/sql/old/3.3.5a/2012_08_13_00_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_13_00_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_08_13_01_world_creature.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_13_01_world_creature.sql
index 4d8544206dd..4d8544206dd 100644
--- a/sql/old/3.3.5a/2012_08_13_01_world_creature.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_13_01_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_08_14_00_world_creature_text.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_14_00_world_creature_text.sql
index bd0f3531937..bd0f3531937 100644
--- a/sql/old/3.3.5a/2012_08_14_00_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_14_00_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_08_14_01_world_creature_text.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_14_01_world_creature_text.sql
index 0f182ae098e..0f182ae098e 100644
--- a/sql/old/3.3.5a/2012_08_14_01_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_14_01_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_08_14_02_world_creature.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_14_02_world_creature.sql
index 5096c7d6b49..5096c7d6b49 100644
--- a/sql/old/3.3.5a/2012_08_14_02_world_creature.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_14_02_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_08_16_00_world_creature_template.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_16_00_world_creature_template.sql
index 732f647d7b7..732f647d7b7 100644
--- a/sql/old/3.3.5a/2012_08_16_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_16_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_08_16_00_world_spell_dbc.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_16_00_world_spell_dbc.sql
index 248674d17a5..248674d17a5 100644
--- a/sql/old/3.3.5a/2012_08_16_00_world_spell_dbc.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_16_00_world_spell_dbc.sql
diff --git a/sql/old/3.3.5a/2012_08_17_00_world_spell_dbc.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_17_00_world_spell_dbc.sql
index ee6d2d2f3b6..ee6d2d2f3b6 100644
--- a/sql/old/3.3.5a/2012_08_17_00_world_spell_dbc.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_17_00_world_spell_dbc.sql
diff --git a/sql/old/3.3.5a/2012_08_19_00_world_pickpocketing_loot_template.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_19_00_world_pickpocketing_loot_template.sql
index 773ad9b6ebc..773ad9b6ebc 100644
--- a/sql/old/3.3.5a/2012_08_19_00_world_pickpocketing_loot_template.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_19_00_world_pickpocketing_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_08_19_01_world_spell_dbc.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_19_01_world_spell_dbc.sql
index 69a9c2a8336..69a9c2a8336 100644
--- a/sql/old/3.3.5a/2012_08_19_01_world_spell_dbc.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_19_01_world_spell_dbc.sql
diff --git a/sql/old/3.3.5a/2012_08_20_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_20_00_world_spell_script_names.sql
index d0aa185ea3a..d0aa185ea3a 100644
--- a/sql/old/3.3.5a/2012_08_20_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_20_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_08_20_01_world_wintergrasp_conditions.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_20_01_world_wintergrasp_conditions.sql
index c97c753afa8..c97c753afa8 100644
--- a/sql/old/3.3.5a/2012_08_20_01_world_wintergrasp_conditions.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_20_01_world_wintergrasp_conditions.sql
diff --git a/sql/old/3.3.5a/2012_08_20_02_world_wintergrasp_creatures.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_20_02_world_wintergrasp_creatures.sql
index b3a91b91a58..b3a91b91a58 100644
--- a/sql/old/3.3.5a/2012_08_20_02_world_wintergrasp_creatures.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_20_02_world_wintergrasp_creatures.sql
diff --git a/sql/old/3.3.5a/2012_08_20_03_world_wintergrasp_gameobjects.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_20_03_world_wintergrasp_gameobjects.sql
index c309bf1d9dd..c309bf1d9dd 100644
--- a/sql/old/3.3.5a/2012_08_20_03_world_wintergrasp_gameobjects.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_20_03_world_wintergrasp_gameobjects.sql
diff --git a/sql/old/3.3.5a/2012_08_20_04_world_wintergrasp_gossips.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_20_04_world_wintergrasp_gossips.sql
index 87b96b765a6..87b96b765a6 100644
--- a/sql/old/3.3.5a/2012_08_20_04_world_wintergrasp_gossips.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_20_04_world_wintergrasp_gossips.sql
diff --git a/sql/old/3.3.5a/2012_08_20_05_world_wintergrasp_quests.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_20_05_world_wintergrasp_quests.sql
index d456f5d5e71..d456f5d5e71 100644
--- a/sql/old/3.3.5a/2012_08_20_05_world_wintergrasp_quests.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_20_05_world_wintergrasp_quests.sql
diff --git a/sql/old/3.3.5a/2012_08_20_06_world_wintergrasp_spells.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_20_06_world_wintergrasp_spells.sql
index 43a1cd1ad9e..43a1cd1ad9e 100644
--- a/sql/old/3.3.5a/2012_08_20_06_world_wintergrasp_spells.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_20_06_world_wintergrasp_spells.sql
diff --git a/sql/old/3.3.5a/2012_08_20_07_world_wintergrasp_texts.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_20_07_world_wintergrasp_texts.sql
index 2b94bf75a41..2b94bf75a41 100644
--- a/sql/old/3.3.5a/2012_08_20_07_world_wintergrasp_texts.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_20_07_world_wintergrasp_texts.sql
diff --git a/sql/old/3.3.5a/2012_08_20_08_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_20_08_world_achievement_criteria_data.sql
index fa995e7804f..fa995e7804f 100644
--- a/sql/old/3.3.5a/2012_08_20_08_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_20_08_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2012_08_20_09_world_disables.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_20_09_world_disables.sql
index fa5010b669f..fa5010b669f 100644
--- a/sql/old/3.3.5a/2012_08_20_09_world_disables.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_20_09_world_disables.sql
diff --git a/sql/old/3.3.5a/2012_08_21_00_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_21_00_world_spell_proc_event.sql
index e1a8b59acae..e1a8b59acae 100644
--- a/sql/old/3.3.5a/2012_08_21_00_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_21_00_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2012_08_21_01_world_command.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_21_01_world_command.sql
index df833d2d246..df833d2d246 100644
--- a/sql/old/3.3.5a/2012_08_21_01_world_command.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_21_01_world_command.sql
diff --git a/sql/old/3.3.5a/2012_08_21_02_world_wintergrasp_conditions.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_21_02_world_wintergrasp_conditions.sql
index caf8a0cc1e4..caf8a0cc1e4 100644
--- a/sql/old/3.3.5a/2012_08_21_02_world_wintergrasp_conditions.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_21_02_world_wintergrasp_conditions.sql
diff --git a/sql/old/3.3.5a/2012_08_23_00_world_wintergrasp_spell_script_names.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_23_00_world_wintergrasp_spell_script_names.sql
index a3dbf81d425..a3dbf81d425 100644
--- a/sql/old/3.3.5a/2012_08_23_00_world_wintergrasp_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_23_00_world_wintergrasp_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_08_23_01_world_wintergrasp_gameobject.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_23_01_world_wintergrasp_gameobject.sql
index 27f7b4027f1..27f7b4027f1 100644
--- a/sql/old/3.3.5a/2012_08_23_01_world_wintergrasp_gameobject.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_23_01_world_wintergrasp_gameobject.sql
diff --git a/sql/old/3.3.5a/2012_08_25_00_world_creature_template.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_25_00_world_creature_template.sql
index f7ec4c87fb9..f7ec4c87fb9 100644
--- a/sql/old/3.3.5a/2012_08_25_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_25_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_08_25_01_world_creature_template.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_25_01_world_creature_template.sql
index ef8e5bdd8fc..ef8e5bdd8fc 100644
--- a/sql/old/3.3.5a/2012_08_25_01_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_25_01_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_08_26_00_world_conditions.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_26_00_world_conditions.sql
index c33d9bfc878..c33d9bfc878 100644
--- a/sql/old/3.3.5a/2012_08_26_00_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_26_00_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_08_26_01_world_creature.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_26_01_world_creature.sql
index af14886850d..af14886850d 100644
--- a/sql/old/3.3.5a/2012_08_26_01_world_creature.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_26_01_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_08_26_02_world_spell_area.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_26_02_world_spell_area.sql
index c4eae68e3c4..c4eae68e3c4 100644
--- a/sql/old/3.3.5a/2012_08_26_02_world_spell_area.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_26_02_world_spell_area.sql
diff --git a/sql/old/3.3.5a/2012_08_26_03_world_spell_area.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_26_03_world_spell_area.sql
index 65072d2b4a7..65072d2b4a7 100644
--- a/sql/old/3.3.5a/2012_08_26_03_world_spell_area.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_26_03_world_spell_area.sql
diff --git a/sql/old/3.3.5a/2012_08_27_00_world_creature_template.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_27_00_world_creature_template.sql
index 804d7b5c61d..804d7b5c61d 100644
--- a/sql/old/3.3.5a/2012_08_27_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_27_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_08_27_00_world_spell_script_name.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_27_00_world_spell_script_name.sql
index 1d036df0a65..1d036df0a65 100644
--- a/sql/old/3.3.5a/2012_08_27_00_world_spell_script_name.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_27_00_world_spell_script_name.sql
diff --git a/sql/old/3.3.5a/2012_08_27_01_world_sai.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_27_01_world_sai.sql
index 302c3ac1942..302c3ac1942 100644
--- a/sql/old/3.3.5a/2012_08_27_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_27_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_08_27_02_world_creature.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_27_02_world_creature.sql
index 3595ea7b576..3595ea7b576 100644
--- a/sql/old/3.3.5a/2012_08_27_02_world_creature.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_27_02_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_08_27_02_world_playercreateinfo_spell.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_27_02_world_playercreateinfo_spell.sql
index 9c664142bba..9c664142bba 100644
--- a/sql/old/3.3.5a/2012_08_27_02_world_playercreateinfo_spell.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_27_02_world_playercreateinfo_spell.sql
diff --git a/sql/old/3.3.5a/2012_08_27_03_world_gameobject.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_27_03_world_gameobject.sql
index 1bf836c96e0..1bf836c96e0 100644
--- a/sql/old/3.3.5a/2012_08_27_03_world_gameobject.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_27_03_world_gameobject.sql
diff --git a/sql/old/3.3.5a/2012_08_27_04_world_quest_template.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_27_04_world_quest_template.sql
index 9169a6e5862..9169a6e5862 100644
--- a/sql/old/3.3.5a/2012_08_27_04_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_27_04_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2012_08_27_05_world_sai.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_27_05_world_sai.sql
index 3da0143e6e6..3da0143e6e6 100644
--- a/sql/old/3.3.5a/2012_08_27_05_world_sai.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_27_05_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_08_27_06_world_sai.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_27_06_world_sai.sql
index e95498f6bef..e95498f6bef 100644
--- a/sql/old/3.3.5a/2012_08_27_06_world_sai.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_27_06_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_08_27_07_world_spell_area.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_27_07_world_spell_area.sql
index 18be6ff0dbe..18be6ff0dbe 100644
--- a/sql/old/3.3.5a/2012_08_27_07_world_spell_area.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_27_07_world_spell_area.sql
diff --git a/sql/old/3.3.5a/2012_08_27_08_world_misc.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_27_08_world_misc.sql
index 3847271dc15..3847271dc15 100644
--- a/sql/old/3.3.5a/2012_08_27_08_world_misc.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_27_08_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_08_27_09_world_conditions.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_27_09_world_conditions.sql
index 6d536859060..6d536859060 100644
--- a/sql/old/3.3.5a/2012_08_27_09_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_27_09_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_08_27_10_world_spell_script_names.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_27_10_world_spell_script_names.sql
index 9ffb153f498..9ffb153f498 100644
--- a/sql/old/3.3.5a/2012_08_27_10_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_27_10_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_08_28_00_world_spell_script_name.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_28_00_world_spell_script_name.sql
index 01cfeb35f1f..01cfeb35f1f 100644
--- a/sql/old/3.3.5a/2012_08_28_00_world_spell_script_name.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_28_00_world_spell_script_name.sql
diff --git a/sql/old/3.3.5a/2012_08_28_01_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_28_01_world_achievement_criteria_data.sql
index bf247399553..bf247399553 100644
--- a/sql/old/3.3.5a/2012_08_28_01_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_28_01_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2012_08_29_00_world_blood_furnace.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_29_00_world_blood_furnace.sql
index 692ce27ebcd..692ce27ebcd 100644
--- a/sql/old/3.3.5a/2012_08_29_00_world_blood_furnace.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_29_00_world_blood_furnace.sql
diff --git a/sql/old/3.3.5a/2012_08_30_00_world_creature_template.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_30_00_world_creature_template.sql
index 27c1c1dedd4..27c1c1dedd4 100644
--- a/sql/old/3.3.5a/2012_08_30_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_30_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_08_30_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_30_00_world_spell_script_names.sql
index d7602dd8c79..d7602dd8c79 100644
--- a/sql/old/3.3.5a/2012_08_30_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_30_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_08_31_00_world_command.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_31_00_world_command.sql
index 2862c0299e9..2862c0299e9 100644
--- a/sql/old/3.3.5a/2012_08_31_00_world_command.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_31_00_world_command.sql
diff --git a/sql/old/3.3.5a/2012_08_31_00_world_sai.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_31_00_world_sai.sql
index fd7e0d7810f..fd7e0d7810f 100644
--- a/sql/old/3.3.5a/2012_08_31_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_08_31_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_09_01_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_01_00_world_spell_script_names.sql
index add7621b74c..add7621b74c 100644
--- a/sql/old/3.3.5a/2012_09_01_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_01_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_09_02_00_world_quest_template.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_02_00_world_quest_template.sql
index d7e3948ef4f..d7e3948ef4f 100644
--- a/sql/old/3.3.5a/2012_09_02_00_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_02_00_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2012_09_02_01_world_sai.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_02_01_world_sai.sql
index 971c50d9c05..971c50d9c05 100644
--- a/sql/old/3.3.5a/2012_09_02_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_02_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_09_03_00_world_misc.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_03_00_world_misc.sql
index e8910c78b40..e8910c78b40 100644
--- a/sql/old/3.3.5a/2012_09_03_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_03_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_09_03_01_world_gameobject_template.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_03_01_world_gameobject_template.sql
index ff0907eee6e..ff0907eee6e 100644
--- a/sql/old/3.3.5a/2012_09_03_01_world_gameobject_template.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_03_01_world_gameobject_template.sql
diff --git a/sql/old/3.3.5a/2012_09_03_02_world_quest_template.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_03_02_world_quest_template.sql
index 0c0a7ce4e40..0c0a7ce4e40 100644
--- a/sql/old/3.3.5a/2012_09_03_02_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_03_02_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2012_09_07_00_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_07_00_world_spell_bonus_data.sql
index 3d39c06051a..3d39c06051a 100644
--- a/sql/old/3.3.5a/2012_09_07_00_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_07_00_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/2012_09_07_01_world_creature_template.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_07_01_world_creature_template.sql
index 16e4f670fd2..16e4f670fd2 100644
--- a/sql/old/3.3.5a/2012_09_07_01_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_07_01_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_09_07_02_world_spell_script_names.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_07_02_world_spell_script_names.sql
index 652d45543e3..652d45543e3 100644
--- a/sql/old/3.3.5a/2012_09_07_02_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_07_02_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_09_08_00_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_08_00_world_achievement_criteria_data.sql
index cce5745dee9..cce5745dee9 100644
--- a/sql/old/3.3.5a/2012_09_08_00_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_08_00_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2012_09_08_01_world_creature_template.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_08_01_world_creature_template.sql
index fb34f345f2d..fb34f345f2d 100644
--- a/sql/old/3.3.5a/2012_09_08_01_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_08_01_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_09_08_02_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_08_02_world_achievement_criteria_data.sql
index 2f25f6f20fa..2f25f6f20fa 100644
--- a/sql/old/3.3.5a/2012_09_08_02_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_08_02_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2012_09_09_00_world_command.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_09_00_world_command.sql
index 1fb3247bfbb..1fb3247bfbb 100644
--- a/sql/old/3.3.5a/2012_09_09_00_world_command.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_09_00_world_command.sql
diff --git a/sql/old/3.3.5a/2012_09_09_01_world_trinity_string.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_09_01_world_trinity_string.sql
index 2f3c0aa1938..2f3c0aa1938 100644
--- a/sql/old/3.3.5a/2012_09_09_01_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_09_01_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/2012_09_09_02_world_spell_script_names.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_09_02_world_spell_script_names.sql
index 36e5b08c36d..36e5b08c36d 100644
--- a/sql/old/3.3.5a/2012_09_09_02_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_09_02_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_09_09_03_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_09_03_world_spell_bonus_data.sql
index a08c494da1b..a08c494da1b 100644
--- a/sql/old/3.3.5a/2012_09_09_03_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_09_03_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/2012_09_09_04_world_quest_template.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_09_04_world_quest_template.sql
index 418c5badb36..418c5badb36 100644
--- a/sql/old/3.3.5a/2012_09_09_04_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_09_04_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2012_09_10_00_world_game_event.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_10_00_world_game_event.sql
index d7c17b298ce..d7c17b298ce 100644
--- a/sql/old/3.3.5a/2012_09_10_00_world_game_event.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_10_00_world_game_event.sql
diff --git a/sql/old/3.3.5a/2012_09_10_01_world_quest_template.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_10_01_world_quest_template.sql
index 2db8883d92c..2db8883d92c 100644
--- a/sql/old/3.3.5a/2012_09_10_01_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_10_01_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2012_09_10_02_world_creature_text.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_10_02_world_creature_text.sql
index 7a3b1a2d86f..7a3b1a2d86f 100644
--- a/sql/old/3.3.5a/2012_09_10_02_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_10_02_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_09_10_03_world_quest_template.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_10_03_world_quest_template.sql
index aae769ced71..aae769ced71 100644
--- a/sql/old/3.3.5a/2012_09_10_03_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_10_03_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2012_09_10_04_world_quest_template.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_10_04_world_quest_template.sql
index 5805debd094..5805debd094 100644
--- a/sql/old/3.3.5a/2012_09_10_04_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_10_04_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2012_09_10_06_world_creature_template.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_10_06_world_creature_template.sql
index 24a60b107ec..24a60b107ec 100644
--- a/sql/old/3.3.5a/2012_09_10_06_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_10_06_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_09_10_07_world_go_loot_template.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_10_07_world_go_loot_template.sql
index a5e30edfe2c..a5e30edfe2c 100644
--- a/sql/old/3.3.5a/2012_09_10_07_world_go_loot_template.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_10_07_world_go_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_09_10_08_world_spell_area.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_10_08_world_spell_area.sql
index 4e4e36051c9..4e4e36051c9 100644
--- a/sql/old/3.3.5a/2012_09_10_08_world_spell_area.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_10_08_world_spell_area.sql
diff --git a/sql/old/3.3.5a/2012_09_10_09_world_creature_involvedrelation.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_10_09_world_creature_involvedrelation.sql
index e30e1559c54..e30e1559c54 100644
--- a/sql/old/3.3.5a/2012_09_10_09_world_creature_involvedrelation.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_10_09_world_creature_involvedrelation.sql
diff --git a/sql/old/3.3.5a/2012_09_10_10_world_gossips.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_10_10_world_gossips.sql
index 042b05dc83a..042b05dc83a 100644
--- a/sql/old/3.3.5a/2012_09_10_10_world_gossips.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_10_10_world_gossips.sql
diff --git a/sql/old/3.3.5a/2012_09_10_11_world_event_scripts.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_10_11_world_event_scripts.sql
index e0b122ede05..e0b122ede05 100644
--- a/sql/old/3.3.5a/2012_09_10_11_world_event_scripts.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_10_11_world_event_scripts.sql
diff --git a/sql/old/3.3.5a/2012_09_10_12_world_sai.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_10_12_world_sai.sql
index 99111fb5961..99111fb5961 100644
--- a/sql/old/3.3.5a/2012_09_10_12_world_sai.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_10_12_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_09_10_13_world_creature_model_info.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_10_13_world_creature_model_info.sql
index 339072d0502..339072d0502 100644
--- a/sql/old/3.3.5a/2012_09_10_13_world_creature_model_info.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_10_13_world_creature_model_info.sql
diff --git a/sql/old/3.3.5a/2012_09_11_00_world_misc.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_11_00_world_misc.sql
index 0f47f1bf2e9..0f47f1bf2e9 100644
--- a/sql/old/3.3.5a/2012_09_11_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_11_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_09_12_00_world_misc.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_12_00_world_misc.sql
index 50896ce414c..50896ce414c 100644
--- a/sql/old/3.3.5a/2012_09_12_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_12_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_09_12_01_world_creature.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_12_01_world_creature.sql
index 1b7fa2d78ef..1b7fa2d78ef 100644
--- a/sql/old/3.3.5a/2012_09_12_01_world_creature.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_12_01_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_09_13_00_world_item_template.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_13_00_world_item_template.sql
index 48b9d3a107f..48b9d3a107f 100644
--- a/sql/old/3.3.5a/2012_09_13_00_world_item_template.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_13_00_world_item_template.sql
diff --git a/sql/old/3.3.5a/2012_09_13_01_world_fires_over_skettis.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_13_01_world_fires_over_skettis.sql
index 8ef62847349..8ef62847349 100644
--- a/sql/old/3.3.5a/2012_09_13_01_world_fires_over_skettis.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_13_01_world_fires_over_skettis.sql
diff --git a/sql/old/3.3.5a/2012_09_13_01_world_ogrila.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_13_01_world_ogrila.sql
index 4ccb02e02e5..4ccb02e02e5 100644
--- a/sql/old/3.3.5a/2012_09_13_01_world_ogrila.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_13_01_world_ogrila.sql
diff --git a/sql/old/3.3.5a/2012_09_13_01_world_spell_script_name.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_13_01_world_spell_script_name.sql
index 61e4067c544..61e4067c544 100644
--- a/sql/old/3.3.5a/2012_09_13_01_world_spell_script_name.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_13_01_world_spell_script_name.sql
diff --git a/sql/old/3.3.5a/2012_09_13_01_world_spell_target_position.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_13_01_world_spell_target_position.sql
index 0879dbbbda0..0879dbbbda0 100644
--- a/sql/old/3.3.5a/2012_09_13_01_world_spell_target_position.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_13_01_world_spell_target_position.sql
diff --git a/sql/old/3.3.5a/2012_09_13_02_world_trinity_string.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_13_02_world_trinity_string.sql
index f7214ad127b..f7214ad127b 100644
--- a/sql/old/3.3.5a/2012_09_13_02_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_13_02_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/2012_09_14_00_world_creature_template.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_14_00_world_creature_template.sql
index 335b92e9af7..335b92e9af7 100644
--- a/sql/old/3.3.5a/2012_09_14_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_14_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_09_14_00_world_sai.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_14_00_world_sai.sql
index 13f11b7a795..13f11b7a795 100644
--- a/sql/old/3.3.5a/2012_09_14_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_14_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_09_14_01_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_14_01_world_creature_loot_template.sql
index 77ab9e89b04..77ab9e89b04 100644
--- a/sql/old/3.3.5a/2012_09_14_01_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_14_01_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_09_15_00_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_15_00_world_achievement_criteria_data.sql
index a30eff7024e..a30eff7024e 100644
--- a/sql/old/3.3.5a/2012_09_15_00_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_15_00_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2012_09_15_00_world_creature_template.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_15_00_world_creature_template.sql
index 3db5a598c1d..3db5a598c1d 100644
--- a/sql/old/3.3.5a/2012_09_15_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_15_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_09_15_00_world_disables.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_15_00_world_disables.sql
index 371315b5be7..371315b5be7 100644
--- a/sql/old/3.3.5a/2012_09_15_00_world_disables.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_15_00_world_disables.sql
diff --git a/sql/old/3.3.5a/2012_09_15_01_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_15_01_world_creature_loot_template.sql
index 71068d95bde..71068d95bde 100644
--- a/sql/old/3.3.5a/2012_09_15_01_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB48_to_TDB49_updates/world/2012_09_15_01_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_10_09_00_characters_glyphs.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/characters/2012_10_09_00_characters_glyphs.sql
index b90fa7d7682..b90fa7d7682 100644
--- a/sql/old/3.3.5a/2012_10_09_00_characters_glyphs.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/characters/2012_10_09_00_characters_glyphs.sql
diff --git a/sql/old/3.3.5a/2012_10_17_00_characters_gm_tickets.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/characters/2012_10_17_00_characters_gm_tickets.sql
index affb23f836c..affb23f836c 100644
--- a/sql/old/3.3.5a/2012_10_17_00_characters_gm_tickets.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/characters/2012_10_17_00_characters_gm_tickets.sql
diff --git a/sql/old/3.3.5a/2012_11_02_00_characters_misc.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/characters/2012_11_02_00_characters_misc.sql
index 9cbbd423bb8..9cbbd423bb8 100644
--- a/sql/old/3.3.5a/2012_11_02_00_characters_misc.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/characters/2012_11_02_00_characters_misc.sql
diff --git a/sql/old/3.3.5a/2012_11_18_00_characters_calendar.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/characters/2012_11_18_00_characters_calendar.sql
index a3e7c352788..a3e7c352788 100644
--- a/sql/old/3.3.5a/2012_11_18_00_characters_calendar.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/characters/2012_11_18_00_characters_calendar.sql
diff --git a/sql/old/3.3.5a/2012_12_03_00_characters_character_queststatus_monthly.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/characters/2012_12_03_00_characters_character_queststatus_monthly.sql
index 256bb1f7ad6..256bb1f7ad6 100644
--- a/sql/old/3.3.5a/2012_12_03_00_characters_character_queststatus_monthly.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/characters/2012_12_03_00_characters_character_queststatus_monthly.sql
diff --git a/sql/old/3.3.5a/2012_12_18_00_characters_worldstates.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/characters/2012_12_18_00_characters_worldstates.sql
index 98fabde6776..98fabde6776 100644
--- a/sql/old/3.3.5a/2012_12_18_00_characters_worldstates.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/characters/2012_12_18_00_characters_worldstates.sql
diff --git a/sql/old/3.3.5a/2012_12_20_00_characters_create_item_loot.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/characters/2012_12_20_00_characters_create_item_loot.sql
index 3c1529e8bdf..3c1529e8bdf 100644
--- a/sql/old/3.3.5a/2012_12_20_00_characters_create_item_loot.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/characters/2012_12_20_00_characters_create_item_loot.sql
diff --git a/sql/old/3.3.5a/2012_09_16_00_world_version.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_16_00_world_version.sql
index 74a1cf67499..74a1cf67499 100644
--- a/sql/old/3.3.5a/2012_09_16_00_world_version.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_16_00_world_version.sql
diff --git a/sql/old/3.3.5a/2012_09_16_01_world_conditions.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_16_01_world_conditions.sql
index 64f87262d0e..64f87262d0e 100644
--- a/sql/old/3.3.5a/2012_09_16_01_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_16_01_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_09_16_01_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_16_01_world_creature_loot_template.sql
index 2d87ad3aa16..2d87ad3aa16 100644
--- a/sql/old/3.3.5a/2012_09_16_01_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_16_01_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_09_16_01_world_creature_template_addon.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_16_01_world_creature_template_addon.sql
index c23a38cd058..c23a38cd058 100644
--- a/sql/old/3.3.5a/2012_09_16_01_world_creature_template_addon.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_16_01_world_creature_template_addon.sql
diff --git a/sql/old/3.3.5a/2012_09_16_02_world_fires_over_skettis.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_16_02_world_fires_over_skettis.sql
index d50f45bb020..d50f45bb020 100644
--- a/sql/old/3.3.5a/2012_09_16_02_world_fires_over_skettis.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_16_02_world_fires_over_skettis.sql
diff --git a/sql/old/3.3.5a/2012_09_16_03_world_spell_script_names.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_16_03_world_spell_script_names.sql
index 8b7e6aa92ba..8b7e6aa92ba 100644
--- a/sql/old/3.3.5a/2012_09_16_03_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_16_03_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_09_17_00_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_17_00_world_spell_bonus_data.sql
index 0d16742393e..0d16742393e 100644
--- a/sql/old/3.3.5a/2012_09_17_00_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_17_00_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/2012_09_17_01_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_17_01_world_spell_bonus_data.sql
index f9283233c8e..f9283233c8e 100644
--- a/sql/old/3.3.5a/2012_09_17_01_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_17_01_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/2012_09_17_01_world_spell_script_names.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_17_01_world_spell_script_names.sql
index 255c76e6b70..255c76e6b70 100644
--- a/sql/old/3.3.5a/2012_09_17_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_17_01_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_09_17_02_world_misc.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_17_02_world_misc.sql
index 378833dfc52..378833dfc52 100644
--- a/sql/old/3.3.5a/2012_09_17_02_world_misc.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_17_02_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_09_18_00_world_creature_template.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_18_00_world_creature_template.sql
index 5ead9430d60..5ead9430d60 100644
--- a/sql/old/3.3.5a/2012_09_18_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_18_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_09_18_01_world_creature_template.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_18_01_world_creature_template.sql
index 4e31e7f6f68..4e31e7f6f68 100644
--- a/sql/old/3.3.5a/2012_09_18_01_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_18_01_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_09_19_00_world_dwarfageddon.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_19_00_world_dwarfageddon.sql
index 1eda383b67d..1eda383b67d 100644
--- a/sql/old/3.3.5a/2012_09_19_00_world_dwarfageddon.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_19_00_world_dwarfageddon.sql
diff --git a/sql/old/3.3.5a/2012_09_19_00_world_reference_loot_template.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_19_00_world_reference_loot_template.sql
index 7db30ede52b..7db30ede52b 100644
--- a/sql/old/3.3.5a/2012_09_19_00_world_reference_loot_template.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_19_00_world_reference_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_09_20_00_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_20_00_world_creature_loot_template.sql
index 8463b064bf9..8463b064bf9 100644
--- a/sql/old/3.3.5a/2012_09_20_00_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_20_00_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_09_22_01_world_i_was_a_lot_of_things.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_22_01_world_i_was_a_lot_of_things.sql
index 95fc92daa76..95fc92daa76 100644
--- a/sql/old/3.3.5a/2012_09_22_01_world_i_was_a_lot_of_things.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_22_01_world_i_was_a_lot_of_things.sql
diff --git a/sql/old/3.3.5a/2012_09_22_03_world_game_event.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_22_03_world_game_event.sql
index 5e05ba03898..5e05ba03898 100644
--- a/sql/old/3.3.5a/2012_09_22_03_world_game_event.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_22_03_world_game_event.sql
diff --git a/sql/old/3.3.5a/2012_09_24_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_24_00_world_spell_script_names.sql
index 611325d4b11..611325d4b11 100644
--- a/sql/old/3.3.5a/2012_09_24_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_24_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_09_24_01_world_spell_script_names.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_24_01_world_spell_script_names.sql
index e14b6833a09..e14b6833a09 100644
--- a/sql/old/3.3.5a/2012_09_24_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_24_01_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_09_24_02_world_misc.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_24_02_world_misc.sql
index b4cf7fda0a5..b4cf7fda0a5 100644
--- a/sql/old/3.3.5a/2012_09_24_02_world_misc.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_24_02_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_09_24_03_world_misc.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_24_03_world_misc.sql
index 3bcb40f79c0..3bcb40f79c0 100644
--- a/sql/old/3.3.5a/2012_09_24_03_world_misc.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_24_03_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_09_26_00_world_misc.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_26_00_world_misc.sql
index d9ac468f4a6..d9ac468f4a6 100644
--- a/sql/old/3.3.5a/2012_09_26_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_26_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_09_26_01_world_spell_bonus_data.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_26_01_world_spell_bonus_data.sql
index 3aeeb7c6525..3aeeb7c6525 100644
--- a/sql/old/3.3.5a/2012_09_26_01_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_26_01_world_spell_bonus_data.sql
diff --git a/sql/old/3.3.5a/2012_09_27_01_world_custodian_of_time.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_27_01_world_custodian_of_time.sql
index 521c55d507e..521c55d507e 100644
--- a/sql/old/3.3.5a/2012_09_27_01_world_custodian_of_time.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_27_01_world_custodian_of_time.sql
diff --git a/sql/old/3.3.5a/2012_09_28_00_world_creature_model_info.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_28_00_world_creature_model_info.sql
index 48134d7bbed..48134d7bbed 100644
--- a/sql/old/3.3.5a/2012_09_28_00_world_creature_model_info.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_28_00_world_creature_model_info.sql
diff --git a/sql/old/3.3.5a/2012_09_29_00_world_creature_model_info.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_29_00_world_creature_model_info.sql
index 0c63a0b2f73..0c63a0b2f73 100644
--- a/sql/old/3.3.5a/2012_09_29_00_world_creature_model_info.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_29_00_world_creature_model_info.sql
diff --git a/sql/old/3.3.5a/2012_09_29_01_world_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_29_01_world_creature_text.sql
index 8fde66d2e6e..8fde66d2e6e 100644
--- a/sql/old/3.3.5a/2012_09_29_01_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_29_01_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_09_30_00_world_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_30_00_world_creature_text.sql
index e0f9f210d7b..e0f9f210d7b 100644
--- a/sql/old/3.3.5a/2012_09_30_00_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_30_00_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_09_30_01_world_player_factionchange_titles.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_30_01_world_player_factionchange_titles.sql
index 99d7fc871d8..99d7fc871d8 100644
--- a/sql/old/3.3.5a/2012_09_30_01_world_player_factionchange_titles.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_30_01_world_player_factionchange_titles.sql
diff --git a/sql/old/3.3.5a/2012_09_30_02_world_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_30_02_world_creature_text.sql
index 81e77bcd682..81e77bcd682 100644
--- a/sql/old/3.3.5a/2012_09_30_02_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_30_02_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_09_30_03_world_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_30_03_world_creature_text.sql
index a591f8cfb7c..a591f8cfb7c 100644
--- a/sql/old/3.3.5a/2012_09_30_03_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_09_30_03_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_10_02_00_world_oculus.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_02_00_world_oculus.sql
index 8c9ea1bcb60..8c9ea1bcb60 100644
--- a/sql/old/3.3.5a/2012_10_02_00_world_oculus.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_02_00_world_oculus.sql
diff --git a/sql/old/3.3.5a/2012_10_04_00_world_spelldifficulty_dbc.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_04_00_world_spelldifficulty_dbc.sql
index 6587e35bf9b..6587e35bf9b 100644
--- a/sql/old/3.3.5a/2012_10_04_00_world_spelldifficulty_dbc.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_04_00_world_spelldifficulty_dbc.sql
diff --git a/sql/old/3.3.5a/2012_10_04_01_world_script_texts.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_04_01_world_script_texts.sql
index 8281d16794e..8281d16794e 100644
--- a/sql/old/3.3.5a/2012_10_04_01_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_04_01_world_script_texts.sql
diff --git a/sql/old/3.3.5a/2012_10_05_00_world_misc.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_05_00_world_misc.sql
index f715b9491ef..f715b9491ef 100644
--- a/sql/old/3.3.5a/2012_10_05_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_05_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_10_05_01_world_spell_script_names.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_05_01_world_spell_script_names.sql
index c7269b981ec..c7269b981ec 100644
--- a/sql/old/3.3.5a/2012_10_05_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_05_01_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_10_06_00_world_spell_difficulty.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_06_00_world_spell_difficulty.sql
index 1dd1a468990..1dd1a468990 100644
--- a/sql/old/3.3.5a/2012_10_06_00_world_spell_difficulty.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_06_00_world_spell_difficulty.sql
diff --git a/sql/old/3.3.5a/2012_10_06_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_06_00_world_spell_script_names.sql
index 4fa3b922d62..4fa3b922d62 100644
--- a/sql/old/3.3.5a/2012_10_06_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_06_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_10_06_01_world_spell_dbc.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_06_01_world_spell_dbc.sql
index 071d83582ac..071d83582ac 100644
--- a/sql/old/3.3.5a/2012_10_06_01_world_spell_dbc.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_06_01_world_spell_dbc.sql
diff --git a/sql/old/3.3.5a/2012_10_06_02_world_misc_templates.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_06_02_world_misc_templates.sql
index 5ec006c310d..5ec006c310d 100644
--- a/sql/old/3.3.5a/2012_10_06_02_world_misc_templates.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_06_02_world_misc_templates.sql
diff --git a/sql/old/3.3.5a/2012_10_06_03_world_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_06_03_world_creature_text.sql
index 6716b12cea9..6716b12cea9 100644
--- a/sql/old/3.3.5a/2012_10_06_03_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_06_03_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_10_06_04_world_misc_spawns.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_06_04_world_misc_spawns.sql
index e53302d2c2f..e53302d2c2f 100644
--- a/sql/old/3.3.5a/2012_10_06_04_world_misc_spawns.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_06_04_world_misc_spawns.sql
diff --git a/sql/old/3.3.5a/2012_10_06_05_world_spell_script_names.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_06_05_world_spell_script_names.sql
index 354a359e45b..354a359e45b 100644
--- a/sql/old/3.3.5a/2012_10_06_05_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_06_05_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_10_07_00_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_07_00_world_creature_loot_template.sql
index 2829725c76c..2829725c76c 100644
--- a/sql/old/3.3.5a/2012_10_07_00_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_07_00_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_10_07_01_world_spell_proc_event.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_07_01_world_spell_proc_event.sql
index 810cd90290c..810cd90290c 100644
--- a/sql/old/3.3.5a/2012_10_07_01_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_07_01_world_spell_proc_event.sql
diff --git a/sql/old/3.3.5a/2012_10_09_00_world_spell_groups.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_09_00_world_spell_groups.sql
index 71f58c6322e..71f58c6322e 100644
--- a/sql/old/3.3.5a/2012_10_09_00_world_spell_groups.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_09_00_world_spell_groups.sql
diff --git a/sql/old/3.3.5a/2012_10_09_01_world_spell_groups.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_09_01_world_spell_groups.sql
index 75c57d0f77f..75c57d0f77f 100644
--- a/sql/old/3.3.5a/2012_10_09_01_world_spell_groups.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_09_01_world_spell_groups.sql
diff --git a/sql/old/3.3.5a/2012_10_09_02_world_spell_groups.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_09_02_world_spell_groups.sql
index 8e4864bc039..8e4864bc039 100644
--- a/sql/old/3.3.5a/2012_10_09_02_world_spell_groups.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_09_02_world_spell_groups.sql
diff --git a/sql/old/3.3.5a/2012_10_10_00_world_battleground_template.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_10_00_world_battleground_template.sql
index 2dcafc51161..2dcafc51161 100644
--- a/sql/old/3.3.5a/2012_10_10_00_world_battleground_template.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_10_00_world_battleground_template.sql
diff --git a/sql/old/3.3.5a/2012_10_11_00_world_gameobject.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_11_00_world_gameobject.sql
index e58d60590cb..e58d60590cb 100644
--- a/sql/old/3.3.5a/2012_10_11_00_world_gameobject.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_11_00_world_gameobject.sql
diff --git a/sql/old/3.3.5a/2012_10_13_00_world_creature_template.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_13_00_world_creature_template.sql
index 7dc7a463f3f..7dc7a463f3f 100644
--- a/sql/old/3.3.5a/2012_10_13_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_13_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_10_14_00_world_creature.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_14_00_world_creature.sql
index dd650f37aef..dd650f37aef 100644
--- a/sql/old/3.3.5a/2012_10_14_00_world_creature.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_14_00_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_10_16_00_world_spell_area.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_16_00_world_spell_area.sql
index 3dbc29d077f..3dbc29d077f 100644
--- a/sql/old/3.3.5a/2012_10_16_00_world_spell_area.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_16_00_world_spell_area.sql
diff --git a/sql/old/3.3.5a/2012_10_20_00_world_transports.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_20_00_world_transports.sql
index 8cc2bae4b47..8cc2bae4b47 100644
--- a/sql/old/3.3.5a/2012_10_20_00_world_transports.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_20_00_world_transports.sql
diff --git a/sql/old/3.3.5a/2012_10_20_01_world_spell_script_names.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_20_01_world_spell_script_names.sql
index 814f1b40e65..814f1b40e65 100644
--- a/sql/old/3.3.5a/2012_10_20_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_20_01_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_10_20_02_world_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_20_02_world_creature_text.sql
index bb153c6b2f6..bb153c6b2f6 100644
--- a/sql/old/3.3.5a/2012_10_20_02_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_20_02_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_10_21_00_world_conditions.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_21_00_world_conditions.sql
index 62161a932f9..62161a932f9 100644
--- a/sql/old/3.3.5a/2012_10_21_00_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_21_00_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_10_21_01_world_misc.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_21_01_world_misc.sql
index fe74f8a7a80..fe74f8a7a80 100644
--- a/sql/old/3.3.5a/2012_10_21_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_21_01_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_10_23_00_world_trinity_string.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_23_00_world_trinity_string.sql
index 60318667fbc..60318667fbc 100644
--- a/sql/old/3.3.5a/2012_10_23_00_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_23_00_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/2012_10_23_01_world_command.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_23_01_world_command.sql
index b46882c5949..b46882c5949 100644
--- a/sql/old/3.3.5a/2012_10_23_01_world_command.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_23_01_world_command.sql
diff --git a/sql/old/3.3.5a/2012_10_25_00_world_childrens_week.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_25_00_world_childrens_week.sql
index f10cf92b409..f10cf92b409 100644
--- a/sql/old/3.3.5a/2012_10_25_00_world_childrens_week.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_25_00_world_childrens_week.sql
diff --git a/sql/old/3.3.5a/2012_10_26_00_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_26_00_world_sai.sql
index 8e4c2fa0922..8e4c2fa0922 100644
--- a/sql/old/3.3.5a/2012_10_26_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_26_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_10_27_00_world_creature.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_27_00_world_creature.sql
index c00c450aeca..c00c450aeca 100644
--- a/sql/old/3.3.5a/2012_10_27_00_world_creature.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_27_00_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_10_27_01_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_27_01_world_creature_loot_template.sql
index 3367dbf0fa8..3367dbf0fa8 100644
--- a/sql/old/3.3.5a/2012_10_27_01_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_27_01_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_10_29_00_world_conditions.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_29_00_world_conditions.sql
index d1fac5361fb..d1fac5361fb 100644
--- a/sql/old/3.3.5a/2012_10_29_00_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_10_29_00_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_11_03_00_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_03_00_world_creature_loot_template.sql
index 0e5c39b796d..0e5c39b796d 100644
--- a/sql/old/3.3.5a/2012_11_03_00_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_03_00_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2012_11_07_00_world_misc.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_07_00_world_misc.sql
index db7c8f66fb1..db7c8f66fb1 100644
--- a/sql/old/3.3.5a/2012_11_07_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_07_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_11_11_00_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_11_00_world_sai.sql
index b5eedd86898..b5eedd86898 100644
--- a/sql/old/3.3.5a/2012_11_11_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_11_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_11_11_01_world_quest_template.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_11_01_world_quest_template.sql
index 9abf2ea3cd1..9abf2ea3cd1 100644
--- a/sql/old/3.3.5a/2012_11_11_01_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_11_01_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2012_11_11_02_world_gossip_menu.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_11_02_world_gossip_menu.sql
index 59d1a10b337..59d1a10b337 100644
--- a/sql/old/3.3.5a/2012_11_11_02_world_gossip_menu.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_11_02_world_gossip_menu.sql
diff --git a/sql/old/3.3.5a/2012_11_11_03_world_gossip_menu.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_11_03_world_gossip_menu.sql
index 4f250597388..4f250597388 100644
--- a/sql/old/3.3.5a/2012_11_11_03_world_gossip_menu.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_11_03_world_gossip_menu.sql
diff --git a/sql/old/3.3.5a/2012_11_12_00_world_quest_template.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_12_00_world_quest_template.sql
index ee2206146b3..ee2206146b3 100644
--- a/sql/old/3.3.5a/2012_11_12_00_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_12_00_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2012_11_12_01_world_misc.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_12_01_world_misc.sql
index 7a5e81c4b1a..7a5e81c4b1a 100644
--- a/sql/old/3.3.5a/2012_11_12_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_12_01_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_11_12_02_world_quest_template.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_12_02_world_quest_template.sql
index 8f988bfa4ab..8f988bfa4ab 100644
--- a/sql/old/3.3.5a/2012_11_12_02_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_12_02_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2012_11_12_03_world_misc.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_12_03_world_misc.sql
index 20c91974bbb..20c91974bbb 100644
--- a/sql/old/3.3.5a/2012_11_12_03_world_misc.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_12_03_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_11_13_00_world_waypoints.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_13_00_world_waypoints.sql
index 64e16cb2d0e..64e16cb2d0e 100644
--- a/sql/old/3.3.5a/2012_11_13_00_world_waypoints.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_13_00_world_waypoints.sql
diff --git a/sql/old/3.3.5a/2012_11_13_01_world_misc.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_13_01_world_misc.sql
index 97e3cd8b499..97e3cd8b499 100644
--- a/sql/old/3.3.5a/2012_11_13_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_13_01_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_11_13_02_world_creature.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_13_02_world_creature.sql
index 19f278ca5c6..19f278ca5c6 100644
--- a/sql/old/3.3.5a/2012_11_13_02_world_creature.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_13_02_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_11_13_03_world_gameevent.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_13_03_world_gameevent.sql
index fbb24b863f2..fbb24b863f2 100644
--- a/sql/old/3.3.5a/2012_11_13_03_world_gameevent.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_13_03_world_gameevent.sql
diff --git a/sql/old/3.3.5a/2012_11_13_04_world_gameeventquest.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_13_04_world_gameeventquest.sql
index cce654859e0..cce654859e0 100644
--- a/sql/old/3.3.5a/2012_11_13_04_world_gameeventquest.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_13_04_world_gameeventquest.sql
diff --git a/sql/old/3.3.5a/2012_11_13_05_world_player_factionchange_items.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_13_05_world_player_factionchange_items.sql
index 17b9616624a..17b9616624a 100644
--- a/sql/old/3.3.5a/2012_11_13_05_world_player_factionchange_items.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_13_05_world_player_factionchange_items.sql
diff --git a/sql/old/3.3.5a/2012_11_13_06_world_trinity_string.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_13_06_world_trinity_string.sql
index 2834a8f900b..2834a8f900b 100644
--- a/sql/old/3.3.5a/2012_11_13_06_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_13_06_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/2012_11_14_00_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_14_00_world_sai.sql
index 98467fe4f3a..98467fe4f3a 100644
--- a/sql/old/3.3.5a/2012_11_14_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_14_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_11_14_00_world_various_fixes.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_14_00_world_various_fixes.sql
index 01655b674b1..903dafa3987 100644
--- a/sql/old/3.3.5a/2012_11_14_00_world_various_fixes.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_14_00_world_various_fixes.sql
@@ -24,7 +24,7 @@ SET @Saber :=10042; -- Big green cat
-- Add SAI support for Corrupted Kitten
UPDATE `creature_template` SET `AIName`='SmartAI',`gossip_menu_id`=@SGossip,`npcflag`=1 WHERE `entry`=@CorruptedKitten;
UPDATE `creature_template` SET `AIName`='SmartAI',`gossip_menu_id`=@SGossip,`npcflag`=1 WHERE `entry`=@CommonKitten;
-DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@CorruptedKitten,@CommonKitten);
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@CorruptedKitten, @CommonKitten);
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
(@CommonKitten,0,0,1,54,0,100,0,0,0,0,0,36,@CorruptedKitten,0,0,0,0,0,1,0,0,0,0,0,0,0,'Common Kitten - On spawn - Change template to corrupted one'),
(@CommonKitten,0,1,2,61,0,100,0,0,0,0,0,11,@SpellVisual,0,0,0,0,0,1,0,0,0,0,0,0,0,'Common Kitten - On OOC of 10 sec - Cast Corrupted Saber visual to self'),
diff --git a/sql/old/3.3.5a/2012_11_14_02_world_battleground_template.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_14_02_world_battleground_template.sql
index b69216ea380..b69216ea380 100644
--- a/sql/old/3.3.5a/2012_11_14_02_world_battleground_template.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_14_02_world_battleground_template.sql
diff --git a/sql/old/3.3.5a/2012_11_16_00_world_utgarde.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_16_00_world_utgarde.sql
index 1948796a77b..1948796a77b 100644
--- a/sql/old/3.3.5a/2012_11_16_00_world_utgarde.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_16_00_world_utgarde.sql
diff --git a/sql/old/3.3.5a/2012_11_16_01_world_utgarde.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_16_01_world_utgarde.sql
index 30a64b02e3a..30a64b02e3a 100644
--- a/sql/old/3.3.5a/2012_11_16_01_world_utgarde.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_16_01_world_utgarde.sql
diff --git a/sql/old/3.3.5a/2012_11_16_02_world_creature_ai_summons.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_16_02_world_creature_ai_summons.sql
index 7d2caf76e33..7d2caf76e33 100644
--- a/sql/old/3.3.5a/2012_11_16_02_world_creature_ai_summons.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_16_02_world_creature_ai_summons.sql
diff --git a/sql/old/3.3.5a/2012_11_17_00_world_various_fixes.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_17_00_world_various_fixes.sql
index 981d378217f..981d378217f 100644
--- a/sql/old/3.3.5a/2012_11_17_00_world_various_fixes.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_17_00_world_various_fixes.sql
diff --git a/sql/old/3.3.5a/2012_11_18_00_world_ormorok.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_18_00_world_ormorok.sql
index 0ec8d13fd64..0ec8d13fd64 100644
--- a/sql/old/3.3.5a/2012_11_18_00_world_ormorok.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_18_00_world_ormorok.sql
diff --git a/sql/old/3.3.5a/2012_11_18_01_world_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_18_01_world_creature_text.sql
index 5d8da97f1f0..5d8da97f1f0 100644
--- a/sql/old/3.3.5a/2012_11_18_01_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_18_01_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_11_18_01_world_gameobject.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_18_01_world_gameobject.sql
index d82f9a07e7e..d82f9a07e7e 100644
--- a/sql/old/3.3.5a/2012_11_18_01_world_gameobject.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_18_01_world_gameobject.sql
diff --git a/sql/old/3.3.5a/2012_11_18_02_world_toc.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_18_02_world_toc.sql
index 9262aceed7a..9262aceed7a 100644
--- a/sql/old/3.3.5a/2012_11_18_02_world_toc.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_18_02_world_toc.sql
diff --git a/sql/old/3.3.5a/2012_11_19_00_world_various_fixes.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_19_00_world_various_fixes.sql
index ca78611fc0b..ca78611fc0b 100644
--- a/sql/old/3.3.5a/2012_11_19_00_world_various_fixes.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_19_00_world_various_fixes.sql
diff --git a/sql/old/3.3.5a/2012_11_19_01_world_pilgrims_bounty.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_19_01_world_pilgrims_bounty.sql
index 56cda092be6..56cda092be6 100644
--- a/sql/old/3.3.5a/2012_11_19_01_world_pilgrims_bounty.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_19_01_world_pilgrims_bounty.sql
diff --git a/sql/old/3.3.5a/2012_11_19_02_world_misc.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_19_02_world_misc.sql
index 1f792b8da41..1f792b8da41 100644
--- a/sql/old/3.3.5a/2012_11_19_02_world_misc.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_19_02_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_11_19_03_world_ysera.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_19_03_world_ysera.sql
index 24a729f96dd..24a729f96dd 100644
--- a/sql/old/3.3.5a/2012_11_19_03_world_ysera.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_19_03_world_ysera.sql
diff --git a/sql/old/3.3.5a/2012_11_20_00_world_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_20_00_world_creature_text.sql
index 5b89db507d8..5b89db507d8 100644
--- a/sql/old/3.3.5a/2012_11_20_00_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_20_00_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_11_21_00_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_21_00_world_sai.sql
index 9cdd314bb8f..9cdd314bb8f 100644
--- a/sql/old/3.3.5a/2012_11_21_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_21_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_11_24_00_world_conditions.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_24_00_world_conditions.sql
index 1a5e5963c8e..1a5e5963c8e 100644
--- a/sql/old/3.3.5a/2012_11_24_00_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_24_00_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_11_24_00_world_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_24_00_world_creature_text.sql
index 60e0f9c3aa1..60e0f9c3aa1 100644
--- a/sql/old/3.3.5a/2012_11_24_00_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_24_00_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_11_24_01_world_quest_start_scripts.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_24_01_world_quest_start_scripts.sql
index 0f0506206a2..0f0506206a2 100644
--- a/sql/old/3.3.5a/2012_11_24_01_world_quest_start_scripts.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_24_01_world_quest_start_scripts.sql
diff --git a/sql/old/3.3.5a/2012_11_24_02_world_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_24_02_world_creature_text.sql
index 8797039d967..8797039d967 100644
--- a/sql/old/3.3.5a/2012_11_24_02_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_24_02_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_11_24_02_world_gossip_menu_option.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_24_02_world_gossip_menu_option.sql
index e6f9ab551d3..e6f9ab551d3 100644
--- a/sql/old/3.3.5a/2012_11_24_02_world_gossip_menu_option.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_24_02_world_gossip_menu_option.sql
diff --git a/sql/old/3.3.5a/2012_11_24_03_world_various_fixes.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_24_03_world_various_fixes.sql
index dfa2d277564..dfa2d277564 100644
--- a/sql/old/3.3.5a/2012_11_24_03_world_various_fixes.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_24_03_world_various_fixes.sql
diff --git a/sql/old/3.3.5a/2012_11_24_04_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_24_04_world_sai.sql
index 76cf4c18963..76cf4c18963 100644
--- a/sql/old/3.3.5a/2012_11_24_04_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_24_04_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_11_25_00_world_various_fixes.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_25_00_world_various_fixes.sql
index 3aabc755dde..3aabc755dde 100644
--- a/sql/old/3.3.5a/2012_11_25_00_world_various_fixes.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_25_00_world_various_fixes.sql
diff --git a/sql/old/3.3.5a/2012_11_25_01_world_various_fixes.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_25_01_world_various_fixes.sql
index 6114451174a..6114451174a 100644
--- a/sql/old/3.3.5a/2012_11_25_01_world_various_fixes.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_25_01_world_various_fixes.sql
diff --git a/sql/old/3.3.5a/2012_11_26_02_world_conditions.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_26_02_world_conditions.sql
index 861e999236d..861e999236d 100644
--- a/sql/old/3.3.5a/2012_11_26_02_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_26_02_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_11_26_03_world_misc.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_26_03_world_misc.sql
index 5a6140e6bf3..5a6140e6bf3 100644
--- a/sql/old/3.3.5a/2012_11_26_03_world_misc.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_26_03_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_11_27_00_world_misc.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_27_00_world_misc.sql
index 8c815a856fd..8c815a856fd 100644
--- a/sql/old/3.3.5a/2012_11_27_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_27_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_11_27_01_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_27_01_world_achievement_criteria_data.sql
index 65cfced17f3..65cfced17f3 100644
--- a/sql/old/3.3.5a/2012_11_27_01_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_27_01_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2012_11_30_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_30_00_world_spell_script_names.sql
index cedee2fe51d..cedee2fe51d 100644
--- a/sql/old/3.3.5a/2012_11_30_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_11_30_00_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_12_01_00_world_assembly_of_iron.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_01_00_world_assembly_of_iron.sql
index 090780d2bd4..090780d2bd4 100644
--- a/sql/old/3.3.5a/2012_12_01_00_world_assembly_of_iron.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_01_00_world_assembly_of_iron.sql
diff --git a/sql/old/3.3.5a/2012_12_01_01_world_misc.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_01_01_world_misc.sql
index 7523484d179..7523484d179 100644
--- a/sql/old/3.3.5a/2012_12_01_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_01_01_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_12_01_02_world_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_01_02_world_creature_text.sql
index 6d4b50b9e88..6d4b50b9e88 100644
--- a/sql/old/3.3.5a/2012_12_01_02_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_01_02_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_12_01_03_world_ulduar_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_01_03_world_ulduar_creature_text.sql
index 82d93d7b7ae..82d93d7b7ae 100644
--- a/sql/old/3.3.5a/2012_12_01_03_world_ulduar_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_01_03_world_ulduar_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_12_01_04_world_spelldifficulty_dbc.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_01_04_world_spelldifficulty_dbc.sql
index fe5df812c71..fe5df812c71 100644
--- a/sql/old/3.3.5a/2012_12_01_04_world_spelldifficulty_dbc.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_01_04_world_spelldifficulty_dbc.sql
diff --git a/sql/old/3.3.5a/2012_12_01_05_world_creature_template.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_01_05_world_creature_template.sql
index aa2c6ebb898..aa2c6ebb898 100644
--- a/sql/old/3.3.5a/2012_12_01_05_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_01_05_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_12_02_00_world_game_object.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_02_00_world_game_object.sql
index 3205159a703..3205159a703 100644
--- a/sql/old/3.3.5a/2012_12_02_00_world_game_object.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_02_00_world_game_object.sql
diff --git a/sql/old/3.3.5a/2012_12_02_01_world_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_02_01_world_creature_text.sql
index bd98fc8527c..bd98fc8527c 100644
--- a/sql/old/3.3.5a/2012_12_02_01_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_02_01_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_12_02_02_world_waypoint_data.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_02_02_world_waypoint_data.sql
index 6413ad00b62..6413ad00b62 100644
--- a/sql/old/3.3.5a/2012_12_02_02_world_waypoint_data.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_02_02_world_waypoint_data.sql
diff --git a/sql/old/3.3.5a/2012_12_04_00_world_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_04_00_world_creature_text.sql
index 654ed11de4f..654ed11de4f 100644
--- a/sql/old/3.3.5a/2012_12_04_00_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_04_00_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_12_04_01_world_quest_start_scripts.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_04_01_world_quest_start_scripts.sql
index f2ac40c7880..f2ac40c7880 100644
--- a/sql/old/3.3.5a/2012_12_04_01_world_quest_start_scripts.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_04_01_world_quest_start_scripts.sql
diff --git a/sql/old/3.3.5a/2012_12_04_02_world_reputation_reward_rate.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_04_02_world_reputation_reward_rate.sql
index a6b58583532..a6b58583532 100644
--- a/sql/old/3.3.5a/2012_12_04_02_world_reputation_reward_rate.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_04_02_world_reputation_reward_rate.sql
diff --git a/sql/old/3.3.5a/2012_12_04_03_world_reputation_reward_rate.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_04_03_world_reputation_reward_rate.sql
index 9f8341ea464..9f8341ea464 100644
--- a/sql/old/3.3.5a/2012_12_04_03_world_reputation_reward_rate.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_04_03_world_reputation_reward_rate.sql
diff --git a/sql/old/3.3.5a/2012_12_04_04_world_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_04_04_world_creature_text.sql
index 1cf52a1417f..1cf52a1417f 100644
--- a/sql/old/3.3.5a/2012_12_04_04_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_04_04_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_12_04_05_world_spell_script_names.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_04_05_world_spell_script_names.sql
index f325ac731d4..f325ac731d4 100644
--- a/sql/old/3.3.5a/2012_12_04_05_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_04_05_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_12_04_06_world_spell_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_04_06_world_spell_creature_text.sql
index 04f10fa494f..04f10fa494f 100644
--- a/sql/old/3.3.5a/2012_12_04_06_world_spell_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_04_06_world_spell_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_12_05_00_world_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_05_00_world_creature_text.sql
index b3b382e46e2..b3b382e46e2 100644
--- a/sql/old/3.3.5a/2012_12_05_00_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_05_00_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_12_06_00_world_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_06_00_world_creature_text.sql
index c0fec8e041e..c0fec8e041e 100644
--- a/sql/old/3.3.5a/2012_12_06_00_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_06_00_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_12_07_00_world_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_07_00_world_creature_text.sql
index 6763834d668..6763834d668 100644
--- a/sql/old/3.3.5a/2012_12_07_00_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_07_00_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_12_07_00_world_script_texts.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_07_00_world_script_texts.sql
index b1362aac796..b1362aac796 100644
--- a/sql/old/3.3.5a/2012_12_07_00_world_script_texts.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_07_00_world_script_texts.sql
diff --git a/sql/old/3.3.5a/2012_12_07_01_world_misc.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_07_01_world_misc.sql
index aaee366bfce..aaee366bfce 100644
--- a/sql/old/3.3.5a/2012_12_07_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_07_01_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_12_07_02_world_tracker_pitcrawler.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_07_02_world_tracker_pitcrawler.sql
index 345a61cb7f5..345a61cb7f5 100644
--- a/sql/old/3.3.5a/2012_12_07_02_world_tracker_pitcrawler.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_07_02_world_tracker_pitcrawler.sql
diff --git a/sql/old/3.3.5a/2012_12_07_03_world_tracker_trista.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_07_03_world_tracker_trista.sql
index b717f4e53e8..b717f4e53e8 100644
--- a/sql/old/3.3.5a/2012_12_07_03_world_tracker_trista.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_07_03_world_tracker_trista.sql
diff --git a/sql/old/3.3.5a/2012_12_07_04_world_misc.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_07_04_world_misc.sql
index fb4c466d91c..fb4c466d91c 100644
--- a/sql/old/3.3.5a/2012_12_07_04_world_misc.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_07_04_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_12_07_05_world_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_07_05_world_creature_text.sql
index 8e3e2cd737f..8e3e2cd737f 100644
--- a/sql/old/3.3.5a/2012_12_07_05_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_07_05_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_12_07_06_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_07_06_world_sai.sql
index d0d1be35766..d0d1be35766 100644
--- a/sql/old/3.3.5a/2012_12_07_06_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_07_06_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_12_07_07_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_07_07_world_sai.sql
index d9acb9c310c..d9acb9c310c 100644
--- a/sql/old/3.3.5a/2012_12_07_07_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_07_07_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_12_07_08_world_misc.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_07_08_world_misc.sql
index a696ba401cc..a696ba401cc 100644
--- a/sql/old/3.3.5a/2012_12_07_08_world_misc.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_07_08_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_12_07_09_world_db_script_string.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_07_09_world_db_script_string.sql
index 4880b84dff0..4880b84dff0 100644
--- a/sql/old/3.3.5a/2012_12_07_09_world_db_script_string.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_07_09_world_db_script_string.sql
diff --git a/sql/old/3.3.5a/2012_12_08_00_world_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_08_00_world_creature_text.sql
index 5a5cd579e2b..5a5cd579e2b 100644
--- a/sql/old/3.3.5a/2012_12_08_00_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_08_00_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_12_08_01_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_08_01_world_sai.sql
index 2880b01d07a..2880b01d07a 100644
--- a/sql/old/3.3.5a/2012_12_08_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_08_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_12_09_00_world_conditions.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_09_00_world_conditions.sql
index dbb3dac7fc3..dbb3dac7fc3 100644
--- a/sql/old/3.3.5a/2012_12_09_00_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_09_00_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_12_09_00_world_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_09_00_world_creature_text.sql
index 6d850191938..6d850191938 100644
--- a/sql/old/3.3.5a/2012_12_09_00_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_09_00_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_12_09_01_world_misc.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_09_01_world_misc.sql
index 7c8bdfbb1c5..7c8bdfbb1c5 100644
--- a/sql/old/3.3.5a/2012_12_09_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_09_01_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_12_09_02_world_quest_template.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_09_02_world_quest_template.sql
index 52d0202d2a1..52d0202d2a1 100644
--- a/sql/old/3.3.5a/2012_12_09_02_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_09_02_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2012_12_10_00_world_smart_scripts.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_10_00_world_smart_scripts.sql
index ed0ee9bf764..ed0ee9bf764 100644
--- a/sql/old/3.3.5a/2012_12_10_00_world_smart_scripts.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_10_00_world_smart_scripts.sql
diff --git a/sql/old/3.3.5a/2012_12_10_01_world_spell_script_names.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_10_01_world_spell_script_names.sql
index bc3684011e8..bc3684011e8 100644
--- a/sql/old/3.3.5a/2012_12_10_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_10_01_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_12_10_02_world_spawns_waypoints.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_10_02_world_spawns_waypoints.sql
index 68613f3aaa9..68613f3aaa9 100644
--- a/sql/old/3.3.5a/2012_12_10_02_world_spawns_waypoints.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_10_02_world_spawns_waypoints.sql
diff --git a/sql/old/3.3.5a/2012_12_13_00_world_misc.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_13_00_world_misc.sql
index ab27796f933..ab27796f933 100644
--- a/sql/old/3.3.5a/2012_12_13_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_13_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_12_14_00_world_conditions.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_14_00_world_conditions.sql
index 6b6fbfd02c0..6b6fbfd02c0 100644
--- a/sql/old/3.3.5a/2012_12_14_00_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_14_00_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_12_14_01_world_waypoint_data.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_14_01_world_waypoint_data.sql
index e3589c53340..e3589c53340 100644
--- a/sql/old/3.3.5a/2012_12_14_01_world_waypoint_data.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_14_01_world_waypoint_data.sql
diff --git a/sql/old/3.3.5a/2012_12_14_02_world_misc.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_14_02_world_misc.sql
index 29aa47909e1..29aa47909e1 100644
--- a/sql/old/3.3.5a/2012_12_14_02_world_misc.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_14_02_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_12_14_03_world_npc_spellclick_spells.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_14_03_world_npc_spellclick_spells.sql
index 2669abbc562..2669abbc562 100644
--- a/sql/old/3.3.5a/2012_12_14_03_world_npc_spellclick_spells.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_14_03_world_npc_spellclick_spells.sql
diff --git a/sql/old/3.3.5a/2012_12_14_04_world_misc.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_14_04_world_misc.sql
index 2cd99cfb12a..2cd99cfb12a 100644
--- a/sql/old/3.3.5a/2012_12_14_04_world_misc.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_14_04_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_12_14_05_world_spell_script_names.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_14_05_world_spell_script_names.sql
index 6d6ab651365..6d6ab651365 100644
--- a/sql/old/3.3.5a/2012_12_14_05_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_14_05_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2012_12_15_00_world_waypoint_data.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_15_00_world_waypoint_data.sql
index c63180ebe5e..c63180ebe5e 100644
--- a/sql/old/3.3.5a/2012_12_15_00_world_waypoint_data.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_15_00_world_waypoint_data.sql
diff --git a/sql/old/3.3.5a/2012_12_15_01_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_15_01_world_sai.sql
index 6d43bedc446..6d43bedc446 100644
--- a/sql/old/3.3.5a/2012_12_15_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_15_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_12_15_02_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_15_02_world_sai.sql
index bf092bfb88d..bf092bfb88d 100644
--- a/sql/old/3.3.5a/2012_12_15_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_15_02_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_12_15_03_world_quest_end_scripts.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_15_03_world_quest_end_scripts.sql
index 91838bda93d..91838bda93d 100644
--- a/sql/old/3.3.5a/2012_12_15_03_world_quest_end_scripts.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_15_03_world_quest_end_scripts.sql
diff --git a/sql/old/3.3.5a/2012_12_16_00_world_creature_addon.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_16_00_world_creature_addon.sql
index a79bb407321..a79bb407321 100644
--- a/sql/old/3.3.5a/2012_12_16_00_world_creature_addon.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_16_00_world_creature_addon.sql
diff --git a/sql/old/3.3.5a/2012_12_16_01_world_npc_vendor.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_16_01_world_npc_vendor.sql
index 0e5ed38c88d..0e5ed38c88d 100644
--- a/sql/old/3.3.5a/2012_12_16_01_world_npc_vendor.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_16_01_world_npc_vendor.sql
diff --git a/sql/old/3.3.5a/2012_12_16_02_world_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_16_02_world_creature_text.sql
index f2d605469f8..f2d605469f8 100644
--- a/sql/old/3.3.5a/2012_12_16_02_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_16_02_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_12_16_03_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_16_03_world_sai.sql
index 40b1e32dbeb..40b1e32dbeb 100644
--- a/sql/old/3.3.5a/2012_12_16_03_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_16_03_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_12_17_00_world_creature_template.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_17_00_world_creature_template.sql
index dfe9132e7a6..dfe9132e7a6 100644
--- a/sql/old/3.3.5a/2012_12_17_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_17_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2012_12_17_00_world_song_of_wind_and_water.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_17_00_world_song_of_wind_and_water.sql
index 52c80334c0c..52c80334c0c 100644
--- a/sql/old/3.3.5a/2012_12_17_00_world_song_of_wind_and_water.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_17_00_world_song_of_wind_and_water.sql
diff --git a/sql/old/3.3.5a/2012_12_17_00_world_spell_linked_spell.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_17_00_world_spell_linked_spell.sql
index a2cfc7073d0..a2cfc7073d0 100644
--- a/sql/old/3.3.5a/2012_12_17_00_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_17_00_world_spell_linked_spell.sql
diff --git a/sql/old/3.3.5a/2012_12_18_00_world_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_18_00_world_creature_text.sql
index 1cf9211343f..1cf9211343f 100644
--- a/sql/old/3.3.5a/2012_12_18_00_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_18_00_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_12_18_00_world_waking_the_sleeper.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_18_00_world_waking_the_sleeper.sql
index 4f8a203100d..4f8a203100d 100644
--- a/sql/old/3.3.5a/2012_12_18_00_world_waking_the_sleeper.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_18_00_world_waking_the_sleeper.sql
diff --git a/sql/old/3.3.5a/2012_12_18_01_world_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_18_01_world_creature_text.sql
index 24779f67fc7..24779f67fc7 100644
--- a/sql/old/3.3.5a/2012_12_18_01_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_18_01_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_12_18_02_world_misc.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_18_02_world_misc.sql
index 5df6ef8eb95..5df6ef8eb95 100644
--- a/sql/old/3.3.5a/2012_12_18_02_world_misc.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_18_02_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_12_18_02_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_18_02_world_sai.sql
index 0843285550f..0843285550f 100644
--- a/sql/old/3.3.5a/2012_12_18_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_18_02_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_12_19_00_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_19_00_world_sai.sql
index e11891cdfbd..e11891cdfbd 100644
--- a/sql/old/3.3.5a/2012_12_19_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_19_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_12_19_01_world_viscidus.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_19_01_world_viscidus.sql
index 16d33b80b8f..16d33b80b8f 100644
--- a/sql/old/3.3.5a/2012_12_19_01_world_viscidus.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_19_01_world_viscidus.sql
diff --git a/sql/old/3.3.5a/2012_12_19_02_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_19_02_world_sai.sql
index c6367e1a8ca..c6367e1a8ca 100644
--- a/sql/old/3.3.5a/2012_12_19_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_19_02_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_12_20_00_world_conditions.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_20_00_world_conditions.sql
index 53fc5733e53..53fc5733e53 100644
--- a/sql/old/3.3.5a/2012_12_20_00_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_20_00_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_12_20_01_world_conditions.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_20_01_world_conditions.sql
index 9d1851305a3..9d1851305a3 100644
--- a/sql/old/3.3.5a/2012_12_20_01_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_20_01_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_12_20_02_world_misc.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_20_02_world_misc.sql
index c04965d8258..c04965d8258 100644
--- a/sql/old/3.3.5a/2012_12_20_02_world_misc.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_20_02_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_12_20_03_world_conditions.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_20_03_world_conditions.sql
index f07b18ed2e4..f07b18ed2e4 100644
--- a/sql/old/3.3.5a/2012_12_20_03_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_20_03_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_12_21_00_world_conditions.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_21_00_world_conditions.sql
index eddf541eaf3..eddf541eaf3 100644
--- a/sql/old/3.3.5a/2012_12_21_00_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_21_00_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_12_21_01_world_conditions.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_21_01_world_conditions.sql
index fdc5becd963..fdc5becd963 100644
--- a/sql/old/3.3.5a/2012_12_21_01_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_21_01_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_12_22_01_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_22_01_world_sai.sql
index e2a61426679..e2a61426679 100644
--- a/sql/old/3.3.5a/2012_12_22_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_22_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_12_22_02_world_the_crusaders_pinnacle.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_22_02_world_the_crusaders_pinnacle.sql
index 5debd41a160..5debd41a160 100644
--- a/sql/old/3.3.5a/2012_12_22_02_world_the_crusaders_pinnacle.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_22_02_world_the_crusaders_pinnacle.sql
diff --git a/sql/old/3.3.5a/2012_12_23_00_world_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_23_00_world_creature_text.sql
index 37b4d66b3fe..37b4d66b3fe 100644
--- a/sql/old/3.3.5a/2012_12_23_00_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_23_00_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_12_23_01_world_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_23_01_world_creature_text.sql
index b663c5269e9..b663c5269e9 100644
--- a/sql/old/3.3.5a/2012_12_23_01_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_23_01_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_12_23_02_world_trinity_string.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_23_02_world_trinity_string.sql
index ac99945d5a5..ac99945d5a5 100644
--- a/sql/old/3.3.5a/2012_12_23_02_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_23_02_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/2012_12_23_03_world_misc.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_23_03_world_misc.sql
index c9a42df10dd..c9a42df10dd 100644
--- a/sql/old/3.3.5a/2012_12_23_03_world_misc.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_23_03_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_12_24_00_world_defending_wyrmrest_temple.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_24_00_world_defending_wyrmrest_temple.sql
index edf1f887d1c..edf1f887d1c 100644
--- a/sql/old/3.3.5a/2012_12_24_00_world_defending_wyrmrest_temple.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_24_00_world_defending_wyrmrest_temple.sql
diff --git a/sql/old/3.3.5a/2012_12_24_01_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_24_01_world_sai.sql
index d151ee4aa2c..d151ee4aa2c 100644
--- a/sql/old/3.3.5a/2012_12_24_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_24_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_12_24_02_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_24_02_world_sai.sql
index 03d0a9ef5c6..03d0a9ef5c6 100644
--- a/sql/old/3.3.5a/2012_12_24_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_24_02_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_12_24_03_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_24_03_world_sai.sql
index f89f3c968aa..f89f3c968aa 100644
--- a/sql/old/3.3.5a/2012_12_24_03_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_24_03_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_12_24_04_world_creature.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_24_04_world_creature.sql
index 42f69d97a9e..42f69d97a9e 100644
--- a/sql/old/3.3.5a/2012_12_24_04_world_creature.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_24_04_world_creature.sql
diff --git a/sql/old/3.3.5a/2012_12_24_05_world_object.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_24_05_world_object.sql
index 2b9947a6bd5..2b9947a6bd5 100644
--- a/sql/old/3.3.5a/2012_12_24_05_world_object.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_24_05_world_object.sql
diff --git a/sql/old/3.3.5a/2012_12_24_06_world_reputation.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_24_06_world_reputation.sql
index 9320d76365d..9320d76365d 100644
--- a/sql/old/3.3.5a/2012_12_24_06_world_reputation.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_24_06_world_reputation.sql
diff --git a/sql/old/3.3.5a/2012_12_24_07_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_24_07_world_sai.sql
index 3cce37295fd..3cce37295fd 100644
--- a/sql/old/3.3.5a/2012_12_24_07_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_24_07_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_12_24_08_world_conditions.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_24_08_world_conditions.sql
index ad641203453..ad641203453 100644
--- a/sql/old/3.3.5a/2012_12_24_08_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_24_08_world_conditions.sql
diff --git a/sql/old/3.3.5a/2012_12_24_09_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_24_09_world_sai.sql
index d75dd937598..d75dd937598 100644
--- a/sql/old/3.3.5a/2012_12_24_09_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_24_09_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_12_25_00_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_25_00_world_sai.sql
index 33363d33573..33363d33573 100644
--- a/sql/old/3.3.5a/2012_12_25_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_25_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_12_25_01_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_25_01_world_sai.sql
index cad0ce2aec3..cad0ce2aec3 100644
--- a/sql/old/3.3.5a/2012_12_25_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_25_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_12_25_02_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_25_02_world_sai.sql
index 35ac4ebb97b..35ac4ebb97b 100644
--- a/sql/old/3.3.5a/2012_12_25_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_25_02_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_12_25_03_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_25_03_world_sai.sql
index 2a7553aabb3..2a7553aabb3 100644
--- a/sql/old/3.3.5a/2012_12_25_03_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_25_03_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_12_25_04_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_25_04_world_sai.sql
index 46b2c4c2fd1..46b2c4c2fd1 100644
--- a/sql/old/3.3.5a/2012_12_25_04_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_25_04_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_12_26_01_world_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_01_world_creature_text.sql
index ae4170ae5a8..ae4170ae5a8 100644
--- a/sql/old/3.3.5a/2012_12_26_01_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_01_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2012_12_26_02_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_02_world_sai.sql
index b88b4044edb..b88b4044edb 100644
--- a/sql/old/3.3.5a/2012_12_26_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_02_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_12_26_03_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_03_world_sai.sql
index 2e9ed5090e0..2e9ed5090e0 100644
--- a/sql/old/3.3.5a/2012_12_26_03_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_03_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_12_26_04_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_04_world_sai.sql
index a29c8a22fdc..a29c8a22fdc 100644
--- a/sql/old/3.3.5a/2012_12_26_04_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_04_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_12_26_05_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_05_world_sai.sql
index 143f1e9bdb0..143f1e9bdb0 100644
--- a/sql/old/3.3.5a/2012_12_26_05_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_05_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_12_26_06_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_06_world_sai.sql
index 184282fe907..184282fe907 100644
--- a/sql/old/3.3.5a/2012_12_26_06_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_06_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_12_26_07_world_game_event.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_07_world_game_event.sql
index 21dcf12e1c4..21dcf12e1c4 100644
--- a/sql/old/3.3.5a/2012_12_26_07_world_game_event.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_07_world_game_event.sql
diff --git a/sql/old/3.3.5a/2012_12_26_08_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_08_world_sai.sql
index 8fde794613e..8fde794613e 100644
--- a/sql/old/3.3.5a/2012_12_26_08_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_08_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_12_26_09_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_09_world_sai.sql
index fe81c15fb3a..fe81c15fb3a 100644
--- a/sql/old/3.3.5a/2012_12_26_09_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_09_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_12_26_10_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_10_world_sai.sql
index b6b925d8255..b6b925d8255 100644
--- a/sql/old/3.3.5a/2012_12_26_10_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_10_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_12_26_11_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_11_world_sai.sql
index abbdfb88c24..abbdfb88c24 100644
--- a/sql/old/3.3.5a/2012_12_26_11_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_11_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_12_26_12_world_quest_end_scripts.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_12_world_quest_end_scripts.sql
index 501bb796557..501bb796557 100644
--- a/sql/old/3.3.5a/2012_12_26_12_world_quest_end_scripts.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_12_world_quest_end_scripts.sql
diff --git a/sql/old/3.3.5a/2012_12_26_13_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_13_world_sai.sql
index d36affe8eb3..d36affe8eb3 100644
--- a/sql/old/3.3.5a/2012_12_26_13_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_13_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_12_26_14_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_14_world_sai.sql
index 2929d590637..2929d590637 100644
--- a/sql/old/3.3.5a/2012_12_26_14_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_14_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_12_26_15_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_15_world_sai.sql
index a40f73bffc8..a40f73bffc8 100644
--- a/sql/old/3.3.5a/2012_12_26_15_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_15_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_12_26_16_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_16_world_sai.sql
index 39a246c9ccd..39a246c9ccd 100644
--- a/sql/old/3.3.5a/2012_12_26_16_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_16_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_12_26_17_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_17_world_sai.sql
index 6f35bcc230b..6f35bcc230b 100644
--- a/sql/old/3.3.5a/2012_12_26_17_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_17_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_12_26_18_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_18_world_sai.sql
index cd4989de5e0..cd4989de5e0 100644
--- a/sql/old/3.3.5a/2012_12_26_18_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_18_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_12_26_19_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_19_world_sai.sql
index 5cfd2a29c62..5cfd2a29c62 100644
--- a/sql/old/3.3.5a/2012_12_26_19_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_19_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_12_26_20_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_20_world_sai.sql
index 3574835ce32..3574835ce32 100644
--- a/sql/old/3.3.5a/2012_12_26_20_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_26_20_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_12_27_00_world_orgrims_hammer.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_27_00_world_orgrims_hammer.sql
index a7c8af76fa0..a7c8af76fa0 100644
--- a/sql/old/3.3.5a/2012_12_27_00_world_orgrims_hammer.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_27_00_world_orgrims_hammer.sql
diff --git a/sql/old/3.3.5a/2012_12_27_01_world_locales_quest.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_27_01_world_locales_quest.sql
index 047f8bb499f..047f8bb499f 100644
--- a/sql/old/3.3.5a/2012_12_27_01_world_locales_quest.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_27_01_world_locales_quest.sql
diff --git a/sql/old/3.3.5a/2012_12_27_02_world_locales.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_27_02_world_locales.sql
index 5caeb009447..5caeb009447 100644
--- a/sql/old/3.3.5a/2012_12_27_02_world_locales.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_27_02_world_locales.sql
diff --git a/sql/old/3.3.5a/2012_12_27_03_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_27_03_world_sai.sql
index acd5c931c50..acd5c931c50 100644
--- a/sql/old/3.3.5a/2012_12_27_03_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_27_03_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_12_27_04_world_the_shadows_vault.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_27_04_world_the_shadows_vault.sql
index 96d176d6d1b..96d176d6d1b 100644
--- a/sql/old/3.3.5a/2012_12_27_04_world_the_shadows_vault.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_27_04_world_the_shadows_vault.sql
diff --git a/sql/old/3.3.5a/2012_12_28_00_world_command.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_28_00_world_command.sql
index 6de970d3b81..6de970d3b81 100644
--- a/sql/old/3.3.5a/2012_12_28_00_world_command.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_28_00_world_command.sql
diff --git a/sql/old/3.3.5a/2012_12_28_01_world_misc.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_28_01_world_misc.sql
index 44501390d9e..44501390d9e 100644
--- a/sql/old/3.3.5a/2012_12_28_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_28_01_world_misc.sql
diff --git a/sql/old/3.3.5a/2012_12_28_02_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_28_02_world_sai.sql
index 7a518449fde..7a518449fde 100644
--- a/sql/old/3.3.5a/2012_12_28_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_28_02_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_12_28_03_world_disables.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_28_03_world_disables.sql
index 017e3aea8c1..017e3aea8c1 100644
--- a/sql/old/3.3.5a/2012_12_28_03_world_disables.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_28_03_world_disables.sql
diff --git a/sql/old/3.3.5a/2012_12_28_04_world_citadel_footsteps.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_28_04_world_citadel_footsteps.sql
index 3d0ad779dc2..3d0ad779dc2 100644
--- a/sql/old/3.3.5a/2012_12_28_04_world_citadel_footsteps.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_28_04_world_citadel_footsteps.sql
diff --git a/sql/old/3.3.5a/2012_12_30_01_world_trinity_string.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_30_01_world_trinity_string.sql
index ce0578168f4..ce0578168f4 100644
--- a/sql/old/3.3.5a/2012_12_30_01_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_30_01_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/2012_12_31_00_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_31_00_world_sai.sql
index 9e30c29f784..9e30c29f784 100644
--- a/sql/old/3.3.5a/2012_12_31_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_31_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2012_12_31_01_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_31_01_world_sai.sql
index 96cf4d1e724..96cf4d1e724 100644
--- a/sql/old/3.3.5a/2012_12_31_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2012_12_31_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2013_01_01_00_world_item_template_restore.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_01_00_world_item_template_restore.sql
index dc18ff71fe8..dc18ff71fe8 100644
--- a/sql/old/3.3.5a/2013_01_01_00_world_item_template_restore.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_01_00_world_item_template_restore.sql
diff --git a/sql/old/3.3.5a/2013_01_01_01_world_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_01_01_world_creature_text.sql
index c0055f8e1d0..c0055f8e1d0 100644
--- a/sql/old/3.3.5a/2013_01_01_01_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_01_01_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2013_01_02_00_world_misc.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_00_world_misc.sql
index 8527b8ab145..8527b8ab145 100644
--- a/sql/old/3.3.5a/2013_01_02_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2013_01_02_01_world_spell_script.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_01_world_spell_script.sql
index a839ca6dc7b..a839ca6dc7b 100644
--- a/sql/old/3.3.5a/2013_01_02_01_world_spell_script.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_01_world_spell_script.sql
diff --git a/sql/old/3.3.5a/2013_01_02_02_world_instance_template.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_02_world_instance_template.sql
index f63a2c3ba2e..f63a2c3ba2e 100644
--- a/sql/old/3.3.5a/2013_01_02_02_world_instance_template.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_02_world_instance_template.sql
diff --git a/sql/old/3.3.5a/2013_01_02_03_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_03_world_sai.sql
index 6f6318b55bd..6f6318b55bd 100644
--- a/sql/old/3.3.5a/2013_01_02_03_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_03_world_sai.sql
diff --git a/sql/old/3.3.5a/2013_01_02_04_world_creature.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_04_world_creature.sql
index 686909ce57e..686909ce57e 100644
--- a/sql/old/3.3.5a/2013_01_02_04_world_creature.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_04_world_creature.sql
diff --git a/sql/old/3.3.5a/2013_01_02_05_world_eye_of_eternity.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_05_world_eye_of_eternity.sql
index 89cc8f08cce..89cc8f08cce 100644
--- a/sql/old/3.3.5a/2013_01_02_05_world_eye_of_eternity.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_05_world_eye_of_eternity.sql
diff --git a/sql/old/3.3.5a/2013_01_02_06_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_06_world_sai.sql
index 2ce089188d6..2ce089188d6 100644
--- a/sql/old/3.3.5a/2013_01_02_06_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_06_world_sai.sql
diff --git a/sql/old/3.3.5a/2013_01_02_06_world_waypoints.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_06_world_waypoints.sql
index c7302a457a2..c7302a457a2 100644
--- a/sql/old/3.3.5a/2013_01_02_06_world_waypoints.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_06_world_waypoints.sql
diff --git a/sql/old/3.3.5a/2013_01_02_07_world_waypoints.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_07_world_waypoints.sql
index b49fd0b28a6..b49fd0b28a6 100644
--- a/sql/old/3.3.5a/2013_01_02_07_world_waypoints.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_07_world_waypoints.sql
diff --git a/sql/old/3.3.5a/2013_01_02_08_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_08_world_sai.sql
index a3f0dde4658..a3f0dde4658 100644
--- a/sql/old/3.3.5a/2013_01_02_08_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_08_world_sai.sql
diff --git a/sql/old/3.3.5a/2013_01_02_09_world_waypoints.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_09_world_waypoints.sql
index 1c2492fcce8..1c2492fcce8 100644
--- a/sql/old/3.3.5a/2013_01_02_09_world_waypoints.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_09_world_waypoints.sql
diff --git a/sql/old/3.3.5a/2013_01_02_10_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_10_world_sai.sql
index 0be2c5c2d6b..0be2c5c2d6b 100644
--- a/sql/old/3.3.5a/2013_01_02_10_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_10_world_sai.sql
diff --git a/sql/old/3.3.5a/2013_01_02_11_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_11_world_sai.sql
index 7496a765470..7496a765470 100644
--- a/sql/old/3.3.5a/2013_01_02_11_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_11_world_sai.sql
diff --git a/sql/old/3.3.5a/2013_01_02_12_world_go_script.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_12_world_go_script.sql
index aea0a67c47e..aea0a67c47e 100644
--- a/sql/old/3.3.5a/2013_01_02_12_world_go_script.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_12_world_go_script.sql
diff --git a/sql/old/3.3.5a/2013_01_02_12_world_waypoints.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_12_world_waypoints.sql
index 6ec7875d8ef..6ec7875d8ef 100644
--- a/sql/old/3.3.5a/2013_01_02_12_world_waypoints.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_02_12_world_waypoints.sql
diff --git a/sql/old/3.3.5a/2013_01_03_00_world_gameobject_scripts.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_00_world_gameobject_scripts.sql
index 32faf4b03a0..32faf4b03a0 100644
--- a/sql/old/3.3.5a/2013_01_03_00_world_gameobject_scripts.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_00_world_gameobject_scripts.sql
diff --git a/sql/old/3.3.5a/2013_01_03_01_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_01_world_sai.sql
index 9e0e56eb645..9e0e56eb645 100644
--- a/sql/old/3.3.5a/2013_01_03_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2013_01_03_02_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_02_world_sai.sql
index ecd84c96800..ecd84c96800 100644
--- a/sql/old/3.3.5a/2013_01_03_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_02_world_sai.sql
diff --git a/sql/old/3.3.5a/2013_01_03_03_world_spelldifficulty_dbc.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_03_world_spelldifficulty_dbc.sql
index 6a41f705491..6a41f705491 100644
--- a/sql/old/3.3.5a/2013_01_03_03_world_spelldifficulty_dbc.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_03_world_spelldifficulty_dbc.sql
diff --git a/sql/old/3.3.5a/2013_01_03_04_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_04_world_sai.sql
index ccac9266af2..ccac9266af2 100644
--- a/sql/old/3.3.5a/2013_01_03_04_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_04_world_sai.sql
diff --git a/sql/old/3.3.5a/2013_01_03_05_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_05_world_sai.sql
index 9e5537835ff..9e5537835ff 100644
--- a/sql/old/3.3.5a/2013_01_03_05_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_05_world_sai.sql
diff --git a/sql/old/3.3.5a/2013_01_03_06_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_06_world_sai.sql
index e77122e908e..e77122e908e 100644
--- a/sql/old/3.3.5a/2013_01_03_06_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_06_world_sai.sql
diff --git a/sql/old/3.3.5a/2013_01_03_07_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_07_world_sai.sql
index 35a03b9078c..35a03b9078c 100644
--- a/sql/old/3.3.5a/2013_01_03_07_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_07_world_sai.sql
diff --git a/sql/old/3.3.5a/2013_01_03_08_world_misc.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_08_world_misc.sql
index 816b4b4dcf6..816b4b4dcf6 100644
--- a/sql/old/3.3.5a/2013_01_03_08_world_misc.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_08_world_misc.sql
diff --git a/sql/old/3.3.5a/2013_01_03_09_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_09_world_sai.sql
index c15eeb88843..c15eeb88843 100644
--- a/sql/old/3.3.5a/2013_01_03_09_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_09_world_sai.sql
diff --git a/sql/old/3.3.5a/2013_01_03_10_world_gameobject.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_10_world_gameobject.sql
index 11700da1dc9..11700da1dc9 100644
--- a/sql/old/3.3.5a/2013_01_03_10_world_gameobject.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_10_world_gameobject.sql
diff --git a/sql/old/3.3.5a/2013_01_03_11_world_item_template.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_11_world_item_template.sql
index df0bd5cd1e7..df0bd5cd1e7 100644
--- a/sql/old/3.3.5a/2013_01_03_11_world_item_template.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_11_world_item_template.sql
diff --git a/sql/old/3.3.5a/2013_01_03_12_world_gameobject_scripts.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_12_world_gameobject_scripts.sql
index aede83aa0c8..aede83aa0c8 100644
--- a/sql/old/3.3.5a/2013_01_03_12_world_gameobject_scripts.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_12_world_gameobject_scripts.sql
diff --git a/sql/old/3.3.5a/2013_01_03_12_world_misc.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_12_world_misc.sql
index 79d2e2daea9..79d2e2daea9 100644
--- a/sql/old/3.3.5a/2013_01_03_12_world_misc.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_12_world_misc.sql
diff --git a/sql/old/3.3.5a/2013_01_03_13_world_quest_template.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_13_world_quest_template.sql
index 12adb1e94ba..12adb1e94ba 100644
--- a/sql/old/3.3.5a/2013_01_03_13_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_13_world_quest_template.sql
diff --git a/sql/old/3.3.5a/2013_01_03_14_world_spell_area.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_14_world_spell_area.sql
index 352fe0e9d85..352fe0e9d85 100644
--- a/sql/old/3.3.5a/2013_01_03_14_world_spell_area.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_14_world_spell_area.sql
diff --git a/sql/old/3.3.5a/2013_01_03_15_world_various_fixes.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_15_world_various_fixes.sql
index d3db9afa6e5..d3db9afa6e5 100644
--- a/sql/old/3.3.5a/2013_01_03_15_world_various_fixes.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_15_world_various_fixes.sql
diff --git a/sql/old/3.3.5a/2013_01_03_16_world_various_fixes.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_16_world_various_fixes.sql
index bc5f4f4b6ec..bc5f4f4b6ec 100644
--- a/sql/old/3.3.5a/2013_01_03_16_world_various_fixes.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_03_16_world_various_fixes.sql
diff --git a/sql/old/3.3.5a/2013_01_04_00_world_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_04_00_world_creature_text.sql
index ae38180e1ac..ae38180e1ac 100644
--- a/sql/old/3.3.5a/2013_01_04_00_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_04_00_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2013_01_04_01_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_04_01_world_sai.sql
index 8e7127e5728..8e7127e5728 100644
--- a/sql/old/3.3.5a/2013_01_04_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_04_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2013_01_04_02_world_misc.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_04_02_world_misc.sql
index 6833a22ff23..6833a22ff23 100644
--- a/sql/old/3.3.5a/2013_01_04_02_world_misc.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_04_02_world_misc.sql
diff --git a/sql/old/3.3.5a/2013_01_04_02_world_novos_the_summoner.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_04_02_world_novos_the_summoner.sql
index 49f8b21e3a7..49f8b21e3a7 100644
--- a/sql/old/3.3.5a/2013_01_04_02_world_novos_the_summoner.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_04_02_world_novos_the_summoner.sql
diff --git a/sql/old/3.3.5a/2013_01_05_00_world_waypoints.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_05_00_world_waypoints.sql
index 4a2d273c552..4a2d273c552 100644
--- a/sql/old/3.3.5a/2013_01_05_00_world_waypoints.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_05_00_world_waypoints.sql
diff --git a/sql/old/3.3.5a/2013_01_06_00_world_creature_addon.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_06_00_world_creature_addon.sql
index e4412241dce..e4412241dce 100644
--- a/sql/old/3.3.5a/2013_01_06_00_world_creature_addon.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_06_00_world_creature_addon.sql
diff --git a/sql/old/3.3.5a/2013_01_06_00_world_creature_template.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_06_00_world_creature_template.sql
index 023dc88c870..023dc88c870 100644
--- a/sql/old/3.3.5a/2013_01_06_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_06_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2013_01_06_01_world_waypoints.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_06_01_world_waypoints.sql
index a460d33b086..a460d33b086 100644
--- a/sql/old/3.3.5a/2013_01_06_01_world_waypoints.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_06_01_world_waypoints.sql
diff --git a/sql/old/3.3.5a/2013_01_06_02_world_misc.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_06_02_world_misc.sql
index 8c24975754a..8c24975754a 100644
--- a/sql/old/3.3.5a/2013_01_06_02_world_misc.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_06_02_world_misc.sql
diff --git a/sql/old/3.3.5a/2013_01_06_03_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_06_03_world_sai.sql
index 1cc0962781b..1cc0962781b 100644
--- a/sql/old/3.3.5a/2013_01_06_03_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_06_03_world_sai.sql
diff --git a/sql/old/3.3.5a/2013_01_06_04_world_misc.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_06_04_world_misc.sql
index fb1e256fa1b..fb1e256fa1b 100644
--- a/sql/old/3.3.5a/2013_01_06_04_world_misc.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_06_04_world_misc.sql
diff --git a/sql/old/3.3.5a/2013_01_07_00_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_00_world_sai.sql
index e289130ddef..e289130ddef 100644
--- a/sql/old/3.3.5a/2013_01_07_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2013_01_07_01_world_creature_addon.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_01_world_creature_addon.sql
index a83bd028343..a83bd028343 100644
--- a/sql/old/3.3.5a/2013_01_07_01_world_creature_addon.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_01_world_creature_addon.sql
diff --git a/sql/old/3.3.5a/2013_01_07_02_world_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_02_world_creature_text.sql
index 3e916464615..3e916464615 100644
--- a/sql/old/3.3.5a/2013_01_07_02_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_02_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2013_01_07_03_world_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_03_world_creature_text.sql
index c006dc5ef99..c006dc5ef99 100644
--- a/sql/old/3.3.5a/2013_01_07_03_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_03_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2013_01_07_04_world_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_04_world_creature_text.sql
index 6fd1d3b95a7..6fd1d3b95a7 100644
--- a/sql/old/3.3.5a/2013_01_07_04_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_04_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2013_01_07_05_world_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_05_world_creature_text.sql
index d9d91e784ba..d9d91e784ba 100644
--- a/sql/old/3.3.5a/2013_01_07_05_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_05_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2013_01_07_06_world_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_06_world_creature_text.sql
index 5c7d09f9887..5c7d09f9887 100644
--- a/sql/old/3.3.5a/2013_01_07_06_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_06_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2013_01_07_07_world_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_07_world_creature_text.sql
index 6f6a0b75713..6f6a0b75713 100644
--- a/sql/old/3.3.5a/2013_01_07_07_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_07_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2013_01_07_08_world_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_08_world_creature_text.sql
index 94ab4d925ee..94ab4d925ee 100644
--- a/sql/old/3.3.5a/2013_01_07_08_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_08_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2013_01_07_09_world_buru.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_09_world_buru.sql
index a7e1d5a0ef1..a7e1d5a0ef1 100644
--- a/sql/old/3.3.5a/2013_01_07_09_world_buru.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_09_world_buru.sql
diff --git a/sql/old/3.3.5a/2013_01_07_10_world_skeram.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_10_world_skeram.sql
index fb62da5e994..fb62da5e994 100644
--- a/sql/old/3.3.5a/2013_01_07_10_world_skeram.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_10_world_skeram.sql
diff --git a/sql/old/3.3.5a/2013_01_07_11_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_11_world_sai.sql
index bf4a1ed3c78..bf4a1ed3c78 100644
--- a/sql/old/3.3.5a/2013_01_07_11_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_11_world_sai.sql
diff --git a/sql/old/3.3.5a/2013_01_07_12_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_12_world_sai.sql
index bfa06980983..bfa06980983 100644
--- a/sql/old/3.3.5a/2013_01_07_12_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_12_world_sai.sql
diff --git a/sql/old/3.3.5a/2013_01_07_13_world_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_13_world_creature_text.sql
index 60d69e3c32a..60d69e3c32a 100644
--- a/sql/old/3.3.5a/2013_01_07_13_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_13_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2013_01_07_14_world_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_14_world_creature_text.sql
index d68eb93ff4e..d68eb93ff4e 100644
--- a/sql/old/3.3.5a/2013_01_07_14_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_14_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2013_01_07_15_world_creature_addon.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_15_world_creature_addon.sql
index 2b5ec6c2413..2b5ec6c2413 100644
--- a/sql/old/3.3.5a/2013_01_07_15_world_creature_addon.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_15_world_creature_addon.sql
diff --git a/sql/old/3.3.5a/2013_01_07_16_world_creature_addon.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_16_world_creature_addon.sql
index bd5c17c6f67..bd5c17c6f67 100644
--- a/sql/old/3.3.5a/2013_01_07_16_world_creature_addon.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_16_world_creature_addon.sql
diff --git a/sql/old/3.3.5a/2013_01_07_17_world_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_17_world_creature_text.sql
index 137308da214..137308da214 100644
--- a/sql/old/3.3.5a/2013_01_07_17_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_17_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2013_01_07_18_world_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_18_world_creature_text.sql
index b9c6ef8d0c1..b9c6ef8d0c1 100644
--- a/sql/old/3.3.5a/2013_01_07_18_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_07_18_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2013_01_08_01_world_raise_the_barricades.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_08_01_world_raise_the_barricades.sql
index 636beb404de..636beb404de 100644
--- a/sql/old/3.3.5a/2013_01_08_01_world_raise_the_barricades.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_08_01_world_raise_the_barricades.sql
diff --git a/sql/old/3.3.5a/2013_01_09_00_world_misc.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_09_00_world_misc.sql
index a5402c60534..a5402c60534 100644
--- a/sql/old/3.3.5a/2013_01_09_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_09_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2013_01_09_01_world_lfg_dungeon_rewards.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_09_01_world_lfg_dungeon_rewards.sql
index dfc5f7cf075..dfc5f7cf075 100644
--- a/sql/old/3.3.5a/2013_01_09_01_world_lfg_dungeon_rewards.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_09_01_world_lfg_dungeon_rewards.sql
diff --git a/sql/old/3.3.5a/2013_01_09_02_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_09_02_world_sai.sql
index bd164ff4b5e..bd164ff4b5e 100644
--- a/sql/old/3.3.5a/2013_01_09_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_09_02_world_sai.sql
diff --git a/sql/old/3.3.5a/2013_01_09_03_world_spell_script_names.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_09_03_world_spell_script_names.sql
index 14d0eb8bfd9..14d0eb8bfd9 100644
--- a/sql/old/3.3.5a/2013_01_09_03_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_09_03_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2013_01_10_00_world_trinity_string.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_10_00_world_trinity_string.sql
index 35d0c1eba99..35d0c1eba99 100644
--- a/sql/old/3.3.5a/2013_01_10_00_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_10_00_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/2013_01_10_01_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_10_01_world_sai.sql
index da6c5f994f2..da6c5f994f2 100644
--- a/sql/old/3.3.5a/2013_01_10_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_10_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2013_01_10_02_world_creature_addon.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_10_02_world_creature_addon.sql
index 4ad14575d36..4ad14575d36 100644
--- a/sql/old/3.3.5a/2013_01_10_02_world_creature_addon.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_10_02_world_creature_addon.sql
diff --git a/sql/old/3.3.5a/2013_01_10_03_world_creature_addon.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_10_03_world_creature_addon.sql
index ef633331937..ef633331937 100644
--- a/sql/old/3.3.5a/2013_01_10_03_world_creature_addon.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_10_03_world_creature_addon.sql
diff --git a/sql/old/3.3.5a/2013_01_10_04_world_creature_addon.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_10_04_world_creature_addon.sql
index 74f2356e7a7..74f2356e7a7 100644
--- a/sql/old/3.3.5a/2013_01_10_04_world_creature_addon.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_10_04_world_creature_addon.sql
diff --git a/sql/old/3.3.5a/2013_01_10_05_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_10_05_world_sai.sql
index 82f2a16a113..82f2a16a113 100644
--- a/sql/old/3.3.5a/2013_01_10_05_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_10_05_world_sai.sql
diff --git a/sql/old/3.3.5a/2013_01_11_00_world_ayamiss.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_11_00_world_ayamiss.sql
index cbdb7a2ed16..cbdb7a2ed16 100644
--- a/sql/old/3.3.5a/2013_01_11_00_world_ayamiss.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_11_00_world_ayamiss.sql
diff --git a/sql/old/3.3.5a/2013_01_11_01_world_conditions.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_11_01_world_conditions.sql
index 352efb792b4..352efb792b4 100644
--- a/sql/old/3.3.5a/2013_01_11_01_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_11_01_world_conditions.sql
diff --git a/sql/old/3.3.5a/2013_01_11_02_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_11_02_world_sai.sql
index 09466db2e94..09466db2e94 100644
--- a/sql/old/3.3.5a/2013_01_11_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_11_02_world_sai.sql
diff --git a/sql/old/3.3.5a/2013_01_11_03_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_11_03_world_sai.sql
index e08252a4894..e08252a4894 100644
--- a/sql/old/3.3.5a/2013_01_11_03_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_11_03_world_sai.sql
diff --git a/sql/old/3.3.5a/2013_01_11_04_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_11_04_world_sai.sql
index 3c885d85cc1..3c885d85cc1 100644
--- a/sql/old/3.3.5a/2013_01_11_04_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_11_04_world_sai.sql
diff --git a/sql/old/3.3.5a/2013_01_11_05_world_creature_text.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_11_05_world_creature_text.sql
index 1283fd86106..1283fd86106 100644
--- a/sql/old/3.3.5a/2013_01_11_05_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_11_05_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2013_01_12_00_world_smart_scripts.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_12_00_world_smart_scripts.sql
index 06562cbd122..06562cbd122 100644
--- a/sql/old/3.3.5a/2013_01_12_00_world_smart_scripts.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_12_00_world_smart_scripts.sql
diff --git a/sql/old/3.3.5a/2013_01_12_01_world_string.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_12_01_world_string.sql
index 8766e97231d..8766e97231d 100644
--- a/sql/old/3.3.5a/2013_01_12_01_world_string.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_12_01_world_string.sql
diff --git a/sql/old/3.3.5a/2013_01_12_02_world_creature_template.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_12_02_world_creature_template.sql
index 608af749f15..608af749f15 100644
--- a/sql/old/3.3.5a/2013_01_12_02_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_12_02_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2013_01_12_03_world_gameobject.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_12_03_world_gameobject.sql
index a7a914fceec..a7a914fceec 100644
--- a/sql/old/3.3.5a/2013_01_12_03_world_gameobject.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_12_03_world_gameobject.sql
diff --git a/sql/old/3.3.5a/2013_01_12_03_world_waypoints.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_12_03_world_waypoints.sql
index 3903e383ae8..3903e383ae8 100644
--- a/sql/old/3.3.5a/2013_01_12_03_world_waypoints.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_12_03_world_waypoints.sql
diff --git a/sql/old/3.3.5a/2013_01_12_04_world_misc.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_12_04_world_misc.sql
index 5ba81aa39f1..5ba81aa39f1 100644
--- a/sql/old/3.3.5a/2013_01_12_04_world_misc.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_12_04_world_misc.sql
diff --git a/sql/old/3.3.5a/2013_01_12_05_world_waypoint_script.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_12_05_world_waypoint_script.sql
index 639b27b911e..639b27b911e 100644
--- a/sql/old/3.3.5a/2013_01_12_05_world_waypoint_script.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_12_05_world_waypoint_script.sql
diff --git a/sql/old/3.3.5a/2013_01_13_00_world_gameobject_template.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_13_00_world_gameobject_template.sql
index 056dfea0bc9..056dfea0bc9 100644
--- a/sql/old/3.3.5a/2013_01_13_00_world_gameobject_template.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_13_00_world_gameobject_template.sql
diff --git a/sql/old/3.3.5a/2013_01_13_01_world_sai.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_13_01_world_sai.sql
index a8513d88ab0..a8513d88ab0 100644
--- a/sql/old/3.3.5a/2013_01_13_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_13_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2013_01_13_02_world_gluttonous_lurkers.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_13_02_world_gluttonous_lurkers.sql
index 71f8efbe0c3..71f8efbe0c3 100644
--- a/sql/old/3.3.5a/2013_01_13_02_world_gluttonous_lurkers.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_13_02_world_gluttonous_lurkers.sql
diff --git a/sql/old/3.3.5a/2013_01_13_03_world_spell_script_names.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_13_03_world_spell_script_names.sql
index a776ea4a765..a776ea4a765 100644
--- a/sql/old/3.3.5a/2013_01_13_03_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_13_03_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2013_01_13_04_world_conditions.sql b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_13_04_world_conditions.sql
index eaf45d5d696..eaf45d5d696 100644
--- a/sql/old/3.3.5a/2013_01_13_04_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB49_to_TDB50_updates/world/2013_01_13_04_world_conditions.sql
diff --git a/sql/old/3.3.5a/2013_01_27_00_auth_realmlist.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/auth/2013_01_27_00_auth_realmlist.sql
index 0c3b18448e6..0c3b18448e6 100644
--- a/sql/old/3.3.5a/2013_01_27_00_auth_realmlist.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/auth/2013_01_27_00_auth_realmlist.sql
diff --git a/sql/old/3.3.5a/2013_02_04_00_auth_misc.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/auth/2013_02_04_00_auth_misc.sql
index d8a508e4e7b..d8a508e4e7b 100644
--- a/sql/old/3.3.5a/2013_02_04_00_auth_misc.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/auth/2013_02_04_00_auth_misc.sql
diff --git a/sql/old/3.3.5a/2013_02_04_01_auth_account.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/auth/2013_02_04_01_auth_account.sql
index 9af73d41ee3..9af73d41ee3 100644
--- a/sql/old/3.3.5a/2013_02_04_01_auth_account.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/auth/2013_02_04_01_auth_account.sql
diff --git a/sql/old/3.3.5a/2013_02_05_00_auth_account.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/auth/2013_02_05_00_auth_account.sql
index 2f32c5e3e3e..2f32c5e3e3e 100644
--- a/sql/old/3.3.5a/2013_02_05_00_auth_account.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/auth/2013_02_05_00_auth_account.sql
diff --git a/sql/old/3.3.5a/2013_02_07_00_auth_account.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/auth/2013_02_07_00_auth_account.sql
index 03bdf8cdcd5..03bdf8cdcd5 100644
--- a/sql/old/3.3.5a/2013_02_07_00_auth_account.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/auth/2013_02_07_00_auth_account.sql
diff --git a/sql/old/3.3.5a/2013_02_08_00_auth_account.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/auth/2013_02_08_00_auth_account.sql
index 49948781444..49948781444 100644
--- a/sql/old/3.3.5a/2013_02_08_00_auth_account.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/auth/2013_02_08_00_auth_account.sql
diff --git a/sql/old/3.3.5a/2013_01_14_00_world_version.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_14_00_world_version.sql
index 0bc0a89a8a4..0bc0a89a8a4 100644
--- a/sql/old/3.3.5a/2013_01_14_00_world_version.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_14_00_world_version.sql
diff --git a/sql/old/3.3.5a/2013_01_14_01_world_game_event.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_14_01_world_game_event.sql
index d4d30d54928..d4d30d54928 100644
--- a/sql/old/3.3.5a/2013_01_14_01_world_game_event.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_14_01_world_game_event.sql
diff --git a/sql/old/3.3.5a/2013_01_14_02_world_ip2nationcountries.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_14_02_world_ip2nationcountries.sql
index fdb96fd895e..fdb96fd895e 100644
--- a/sql/old/3.3.5a/2013_01_14_02_world_ip2nationcountries.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_14_02_world_ip2nationcountries.sql
diff --git a/sql/old/3.3.5a/2013_01_14_03_world_lefty_loosy_righty_tighty.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_14_03_world_lefty_loosy_righty_tighty.sql
index 5d322ac2dd9..5d322ac2dd9 100644
--- a/sql/old/3.3.5a/2013_01_14_03_world_lefty_loosy_righty_tighty.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_14_03_world_lefty_loosy_righty_tighty.sql
diff --git a/sql/old/3.3.5a/2013_01_15_00_world_creature.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_15_00_world_creature.sql
index e49918aa0b6..e49918aa0b6 100644
--- a/sql/old/3.3.5a/2013_01_15_00_world_creature.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_15_00_world_creature.sql
diff --git a/sql/old/3.3.5a/2013_01_15_01_world_misc.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_15_01_world_misc.sql
index 48238e5dacf..48238e5dacf 100644
--- a/sql/old/3.3.5a/2013_01_15_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_15_01_world_misc.sql
diff --git a/sql/old/3.3.5a/2013_01_15_02_world_game_event.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_15_02_world_game_event.sql
index 3300c0667ce..3300c0667ce 100644
--- a/sql/old/3.3.5a/2013_01_15_02_world_game_event.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_15_02_world_game_event.sql
diff --git a/sql/old/3.3.5a/2013_01_15_03_world_misc.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_15_03_world_misc.sql
index 5de9e0ab13a..5de9e0ab13a 100644
--- a/sql/old/3.3.5a/2013_01_15_03_world_misc.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_15_03_world_misc.sql
diff --git a/sql/old/3.3.5a/2013_01_15_04_world_game_event.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_15_04_world_game_event.sql
index cfbd399e43d..cfbd399e43d 100644
--- a/sql/old/3.3.5a/2013_01_15_04_world_game_event.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_15_04_world_game_event.sql
diff --git a/sql/old/3.3.5a/2013_01_15_05_world_creature_addon.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_15_05_world_creature_addon.sql
index 94782891ca1..94782891ca1 100644
--- a/sql/old/3.3.5a/2013_01_15_05_world_creature_addon.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_15_05_world_creature_addon.sql
diff --git a/sql/old/3.3.5a/2013_01_15_06_world_spell_script_names.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_15_06_world_spell_script_names.sql
index 0e327bdc63d..0e327bdc63d 100644
--- a/sql/old/3.3.5a/2013_01_15_06_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_15_06_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2013_01_16_00_world_gossip_menu.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_16_00_world_gossip_menu.sql
index 1b0554931fa..1b0554931fa 100644
--- a/sql/old/3.3.5a/2013_01_16_00_world_gossip_menu.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_16_00_world_gossip_menu.sql
diff --git a/sql/old/3.3.5a/2013_01_16_01_world_creature_text.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_16_01_world_creature_text.sql
index 69bdd91b886..69bdd91b886 100644
--- a/sql/old/3.3.5a/2013_01_16_01_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_16_01_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2013_01_17_00_world_creature_template.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_17_00_world_creature_template.sql
index af602096440..af602096440 100644
--- a/sql/old/3.3.5a/2013_01_17_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_17_00_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2013_01_17_01_world_creature.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_17_01_world_creature.sql
index 84ded6edcb2..84ded6edcb2 100644
--- a/sql/old/3.3.5a/2013_01_17_01_world_creature.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_17_01_world_creature.sql
diff --git a/sql/old/3.3.5a/2013_01_18_00_world_misc.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_18_00_world_misc.sql
index e15a13f51a5..e15a13f51a5 100644
--- a/sql/old/3.3.5a/2013_01_18_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_18_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2013_01_18_01_world_creature_template_addon.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_18_01_world_creature_template_addon.sql
index e3d6feaeecd..e3d6feaeecd 100644
--- a/sql/old/3.3.5a/2013_01_18_01_world_creature_template_addon.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_18_01_world_creature_template_addon.sql
diff --git a/sql/old/3.3.5a/2013_01_18_02_world_creature_template_addon.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_18_02_world_creature_template_addon.sql
index 716d59d8724..716d59d8724 100644
--- a/sql/old/3.3.5a/2013_01_18_02_world_creature_template_addon.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_18_02_world_creature_template_addon.sql
diff --git a/sql/old/3.3.5a/2013_01_19_00_world_creature_text.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_19_00_world_creature_text.sql
index ed52fe13b29..ed52fe13b29 100644
--- a/sql/old/3.3.5a/2013_01_19_00_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_19_00_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2013_01_19_01_world_creature_text.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_19_01_world_creature_text.sql
index 4fb6bc55c87..4fb6bc55c87 100644
--- a/sql/old/3.3.5a/2013_01_19_01_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_19_01_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2013_01_19_02_world_conditions.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_19_02_world_conditions.sql
index 744029f4fa0..744029f4fa0 100644
--- a/sql/old/3.3.5a/2013_01_19_02_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_19_02_world_conditions.sql
diff --git a/sql/old/3.3.5a/2013_01_19_03_world_creature_text.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_19_03_world_creature_text.sql
index d9a15f4da7a..d9a15f4da7a 100644
--- a/sql/old/3.3.5a/2013_01_19_03_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_19_03_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2013_01_19_04_world_creature_addon.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_19_04_world_creature_addon.sql
index fbe99d8edf2..fbe99d8edf2 100644
--- a/sql/old/3.3.5a/2013_01_19_04_world_creature_addon.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_19_04_world_creature_addon.sql
diff --git a/sql/old/3.3.5a/2013_01_19_04_world_creature_text.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_19_04_world_creature_text.sql
index c14cf5c149a..c14cf5c149a 100644
--- a/sql/old/3.3.5a/2013_01_19_04_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_19_04_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2013_01_19_05_world_creature_addon.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_19_05_world_creature_addon.sql
index 0a384501e36..0a384501e36 100644
--- a/sql/old/3.3.5a/2013_01_19_05_world_creature_addon.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_19_05_world_creature_addon.sql
diff --git a/sql/old/3.3.5a/2013_01_19_06_world_misc.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_19_06_world_misc.sql
index 55d9777a71c..55d9777a71c 100644
--- a/sql/old/3.3.5a/2013_01_19_06_world_misc.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_19_06_world_misc.sql
diff --git a/sql/old/3.3.5a/2013_01_19_06_world_trinity_string.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_19_06_world_trinity_string.sql
index 322d43a7720..322d43a7720 100644
--- a/sql/old/3.3.5a/2013_01_19_06_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_19_06_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/2013_01_20_00_world_sai.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_20_00_world_sai.sql
index d4e4bb81c41..d4e4bb81c41 100644
--- a/sql/old/3.3.5a/2013_01_20_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_20_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2013_01_20_01_world_creature_text.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_20_01_world_creature_text.sql
index d543b02d9fc..d543b02d9fc 100644
--- a/sql/old/3.3.5a/2013_01_20_01_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_20_01_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2013_01_20_02_world_creature_text.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_20_02_world_creature_text.sql
index 25c8c046dfc..25c8c046dfc 100644
--- a/sql/old/3.3.5a/2013_01_20_02_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_20_02_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2013_01_20_03_world_creature_text.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_20_03_world_creature_text.sql
index 1ea2c121e1e..1ea2c121e1e 100644
--- a/sql/old/3.3.5a/2013_01_20_03_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_20_03_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2013_01_20_03_world_spell_script_names.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_20_03_world_spell_script_names.sql
index 0cd28de0472..0cd28de0472 100644
--- a/sql/old/3.3.5a/2013_01_20_03_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_20_03_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2013_01_20_04_world_creature_text.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_20_04_world_creature_text.sql
index 5c457530f92..5c457530f92 100644
--- a/sql/old/3.3.5a/2013_01_20_04_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_20_04_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2013_01_20_05_world_sai.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_20_05_world_sai.sql
index 9539bc546b1..9539bc546b1 100644
--- a/sql/old/3.3.5a/2013_01_20_05_world_sai.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_20_05_world_sai.sql
diff --git a/sql/old/3.3.5a/2013_01_20_06_world_creature.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_20_06_world_creature.sql
index c00ff11ea4a..c00ff11ea4a 100644
--- a/sql/old/3.3.5a/2013_01_20_06_world_creature.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_20_06_world_creature.sql
diff --git a/sql/old/3.3.5a/2013_01_20_07_world_sai.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_20_07_world_sai.sql
index f8d001e73db..f8d001e73db 100644
--- a/sql/old/3.3.5a/2013_01_20_07_world_sai.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_20_07_world_sai.sql
diff --git a/sql/old/3.3.5a/2013_01_20_08_world_sai.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_20_08_world_sai.sql
index 411d69e08d2..411d69e08d2 100644
--- a/sql/old/3.3.5a/2013_01_20_08_world_sai.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_20_08_world_sai.sql
diff --git a/sql/old/3.3.5a/2013_01_20_09_world_spell_dbc.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_20_09_world_spell_dbc.sql
index d8f466173f3..d8f466173f3 100644
--- a/sql/old/3.3.5a/2013_01_20_09_world_spell_dbc.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_20_09_world_spell_dbc.sql
diff --git a/sql/old/3.3.5a/2013_01_21_00_world_misc.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_21_00_world_misc.sql
index c023003783e..c023003783e 100644
--- a/sql/old/3.3.5a/2013_01_21_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_21_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2013_01_21_01_world_creature_template.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_21_01_world_creature_template.sql
index d5bf4525ff6..d5bf4525ff6 100644
--- a/sql/old/3.3.5a/2013_01_21_01_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_21_01_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2013_01_21_02_world_sai.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_21_02_world_sai.sql
index 31070c48718..31070c48718 100644
--- a/sql/old/3.3.5a/2013_01_21_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_21_02_world_sai.sql
diff --git a/sql/old/3.3.5a/2013_01_22_00_world_command.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_22_00_world_command.sql
index 6c89951d036..6c89951d036 100644
--- a/sql/old/3.3.5a/2013_01_22_00_world_command.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_22_00_world_command.sql
diff --git a/sql/old/3.3.5a/2013_01_22_01_world_sai.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_22_01_world_sai.sql
index b41fb25110d..b41fb25110d 100644
--- a/sql/old/3.3.5a/2013_01_22_01_world_sai.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_22_01_world_sai.sql
diff --git a/sql/old/3.3.5a/2013_01_23_00_world_misc.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_23_00_world_misc.sql
index fb55d90f69b..fb55d90f69b 100644
--- a/sql/old/3.3.5a/2013_01_23_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_23_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2013_01_23_01_world_misc.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_23_01_world_misc.sql
index 25042e241dd..25042e241dd 100644
--- a/sql/old/3.3.5a/2013_01_23_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_23_01_world_misc.sql
diff --git a/sql/old/3.3.5a/2013_01_23_02_world_spell_script_names.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_23_02_world_spell_script_names.sql
index d56c6ad1c59..d56c6ad1c59 100644
--- a/sql/old/3.3.5a/2013_01_23_02_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_23_02_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2013_01_24_00_world_sai.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_24_00_world_sai.sql
index 516af5a1504..516af5a1504 100644
--- a/sql/old/3.3.5a/2013_01_24_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_24_00_world_sai.sql
diff --git a/sql/old/3.3.5a/2013_01_25_00_world_creature_text.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_25_00_world_creature_text.sql
index 25354a70390..25354a70390 100644
--- a/sql/old/3.3.5a/2013_01_25_00_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_25_00_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2013_01_25_01_world_creature_classlevelstats.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_25_01_world_creature_classlevelstats.sql
index 5d0a916dfb8..5d0a916dfb8 100644
--- a/sql/old/3.3.5a/2013_01_25_01_world_creature_classlevelstats.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_25_01_world_creature_classlevelstats.sql
diff --git a/sql/old/3.3.5a/2013_01_25_02_world_smart_scripts.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_25_02_world_smart_scripts.sql
index 69d48686429..69d48686429 100644
--- a/sql/old/3.3.5a/2013_01_25_02_world_smart_scripts.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_25_02_world_smart_scripts.sql
diff --git a/sql/old/3.3.5a/2013_01_26_00_world_misc.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_26_00_world_misc.sql
index 429d900d765..429d900d765 100644
--- a/sql/old/3.3.5a/2013_01_26_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_26_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2013_01_26_01_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_26_01_world_creature_loot_template.sql
index 5d667b99cb5..5d667b99cb5 100644
--- a/sql/old/3.3.5a/2013_01_26_01_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_26_01_world_creature_loot_template.sql
diff --git a/sql/old/3.3.5a/2013_01_26_02_world_reference_loot_template.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_26_02_world_reference_loot_template.sql
index d4e5a9fa622..d4e5a9fa622 100644
--- a/sql/old/3.3.5a/2013_01_26_02_world_reference_loot_template.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_26_02_world_reference_loot_template.sql
diff --git a/sql/old/3.3.5a/2013_01_26_03_world_conditions.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_26_03_world_conditions.sql
index cc7ab333f4a..cc7ab333f4a 100644
--- a/sql/old/3.3.5a/2013_01_26_03_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_26_03_world_conditions.sql
diff --git a/sql/old/3.3.5a/2013_01_26_04_world_item_loot_template.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_26_04_world_item_loot_template.sql
index 32cf116167e..32cf116167e 100644
--- a/sql/old/3.3.5a/2013_01_26_04_world_item_loot_template.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_26_04_world_item_loot_template.sql
diff --git a/sql/old/3.3.5a/2013_01_26_05_world_misc.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_26_05_world_misc.sql
index ff8cf4d1e77..ff8cf4d1e77 100644
--- a/sql/old/3.3.5a/2013_01_26_05_world_misc.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_26_05_world_misc.sql
diff --git a/sql/old/3.3.5a/2013_01_26_05_world_misc_pinfo.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_26_05_world_misc_pinfo.sql
index 2c0a28066d4..2c0a28066d4 100644
--- a/sql/old/3.3.5a/2013_01_26_05_world_misc_pinfo.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_26_05_world_misc_pinfo.sql
diff --git a/sql/old/3.3.5a/2013_01_26_06_world_creature_template.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_26_06_world_creature_template.sql
index e54949744f6..e54949744f6 100644
--- a/sql/old/3.3.5a/2013_01_26_06_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_26_06_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2013_01_26_07_world_gameobject_template.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_26_07_world_gameobject_template.sql
index c68e48754dc..c68e48754dc 100644
--- a/sql/old/3.3.5a/2013_01_26_07_world_gameobject_template.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_26_07_world_gameobject_template.sql
diff --git a/sql/old/3.3.5a/2013_01_27_00_world_creature.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_27_00_world_creature.sql
index b60f8f60eba..b60f8f60eba 100644
--- a/sql/old/3.3.5a/2013_01_27_00_world_creature.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_27_00_world_creature.sql
diff --git a/sql/old/3.3.5a/2013_01_27_01_world_gameobject_template.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_27_01_world_gameobject_template.sql
index 49bbf3be56a..49bbf3be56a 100644
--- a/sql/old/3.3.5a/2013_01_27_01_world_gameobject_template.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_27_01_world_gameobject_template.sql
diff --git a/sql/old/3.3.5a/2013_01_28_00_world_gameobject.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_28_00_world_gameobject.sql
index 3f49d799c62..3f49d799c62 100644
--- a/sql/old/3.3.5a/2013_01_28_00_world_gameobject.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_28_00_world_gameobject.sql
diff --git a/sql/old/3.3.5a/2013_01_29_00_world_gameobject_loot_template.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_29_00_world_gameobject_loot_template.sql
index 32146fb9ef8..32146fb9ef8 100644
--- a/sql/old/3.3.5a/2013_01_29_00_world_gameobject_loot_template.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_29_00_world_gameobject_loot_template.sql
diff --git a/sql/old/3.3.5a/2013_01_29_01_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_29_01_world_achievement_criteria_data.sql
index 39627a943cc..39627a943cc 100644
--- a/sql/old/3.3.5a/2013_01_29_01_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_29_01_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2013_01_29_02_world_gameobject_loot_template.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_29_02_world_gameobject_loot_template.sql
index c3f2d0f0fb9..c3f2d0f0fb9 100644
--- a/sql/old/3.3.5a/2013_01_29_02_world_gameobject_loot_template.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_01_29_02_world_gameobject_loot_template.sql
diff --git a/sql/old/3.3.5a/2013_02_01_00_world_gameobject.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_01_00_world_gameobject.sql
index 2476d623c5a..2476d623c5a 100644
--- a/sql/old/3.3.5a/2013_02_01_00_world_gameobject.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_01_00_world_gameobject.sql
diff --git a/sql/old/3.3.5a/2013_02_01_01_world_spell_loot_template.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_01_01_world_spell_loot_template.sql
index 0185f464412..0185f464412 100644
--- a/sql/old/3.3.5a/2013_02_01_01_world_spell_loot_template.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_01_01_world_spell_loot_template.sql
diff --git a/sql/old/3.3.5a/2013_02_01_02_world_spell_script_names.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_01_02_world_spell_script_names.sql
index 33b7b1fab6e..33b7b1fab6e 100644
--- a/sql/old/3.3.5a/2013_02_01_02_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_01_02_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2013_02_01_03_world_wdbverified.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_01_03_world_wdbverified.sql
index 1f47ff75825..1f47ff75825 100644
--- a/sql/old/3.3.5a/2013_02_01_03_world_wdbverified.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_01_03_world_wdbverified.sql
diff --git a/sql/old/3.3.5a/2013_02_03_00_world_lfg_entrances.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_03_00_world_lfg_entrances.sql
index e308c001d29..e308c001d29 100644
--- a/sql/old/3.3.5a/2013_02_03_00_world_lfg_entrances.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_03_00_world_lfg_entrances.sql
diff --git a/sql/old/3.3.5a/2013_02_04_00_world_misc.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_04_00_world_misc.sql
index ff8021653ab..ff8021653ab 100644
--- a/sql/old/3.3.5a/2013_02_04_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_04_00_world_misc.sql
diff --git a/sql/old/3.3.5a/2013_02_04_01_world_creature_text.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_04_01_world_creature_text.sql
index c52aa380c49..c52aa380c49 100644
--- a/sql/old/3.3.5a/2013_02_04_01_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_04_01_world_creature_text.sql
diff --git a/sql/old/3.3.5a/2013_02_04_02_world_misc.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_04_02_world_misc.sql
index 300d0e31bcb..300d0e31bcb 100644
--- a/sql/old/3.3.5a/2013_02_04_02_world_misc.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_04_02_world_misc.sql
diff --git a/sql/old/3.3.5a/2013_02_04_03_world_misc.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_04_03_world_misc.sql
index a609d411b6e..a609d411b6e 100644
--- a/sql/old/3.3.5a/2013_02_04_03_world_misc.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_04_03_world_misc.sql
diff --git a/sql/old/3.3.5a/2013_02_04_04_world_trinity_string.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_04_04_world_trinity_string.sql
index 0a4ec437b28..0a4ec437b28 100644
--- a/sql/old/3.3.5a/2013_02_04_04_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_04_04_world_trinity_string.sql
diff --git a/sql/old/3.3.5a/2013_02_04_05_world_spell_script_names.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_04_05_world_spell_script_names.sql
index 4dd5ee52583..4dd5ee52583 100644
--- a/sql/old/3.3.5a/2013_02_04_05_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_04_05_world_spell_script_names.sql
diff --git a/sql/old/3.3.5a/2013_02_04_06_world_command.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_04_06_world_command.sql
index fb36c512c4a..fb36c512c4a 100644
--- a/sql/old/3.3.5a/2013_02_04_06_world_command.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_04_06_world_command.sql
diff --git a/sql/old/3.3.5a/2013_02_04_07_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_04_07_world_achievement_criteria_data.sql
index dc873a02dfd..dc873a02dfd 100644
--- a/sql/old/3.3.5a/2013_02_04_07_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_04_07_world_achievement_criteria_data.sql
diff --git a/sql/old/3.3.5a/2013_02_04_08_world_creature_template.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_04_08_world_creature_template.sql
index 3dd365366b6..3dd365366b6 100644
--- a/sql/old/3.3.5a/2013_02_04_08_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_04_08_world_creature_template.sql
diff --git a/sql/old/3.3.5a/2013_02_05_00_world_disables.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_05_00_world_disables.sql
index b7e9be4e3c7..b7e9be4e3c7 100644
--- a/sql/old/3.3.5a/2013_02_05_00_world_disables.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_05_00_world_disables.sql
diff --git a/sql/old/3.3.5a/2013_02_05_01_world_item_template.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_05_01_world_item_template.sql
index aea09e60e58..aea09e60e58 100644
--- a/sql/old/3.3.5a/2013_02_05_01_world_item_template.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_05_01_world_item_template.sql
diff --git a/sql/old/3.3.5a/2013_02_06_00_world_disables.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_06_00_world_disables.sql
index 0785330d7fd..0785330d7fd 100644
--- a/sql/old/3.3.5a/2013_02_06_00_world_disables.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_06_00_world_disables.sql
diff --git a/sql/old/3.3.5a/2013_02_06_01_world_misc.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_06_01_world_misc.sql
index 1a59c75ff1b..1a59c75ff1b 100644
--- a/sql/old/3.3.5a/2013_02_06_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_06_01_world_misc.sql
diff --git a/sql/old/3.3.5a/2013_02_07_00_world_areatrigger_teleport.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_07_00_world_areatrigger_teleport.sql
index 0b6f3e576b4..0b6f3e576b4 100644
--- a/sql/old/3.3.5a/2013_02_07_00_world_areatrigger_teleport.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_07_00_world_areatrigger_teleport.sql
diff --git a/sql/old/3.3.5a/2013_02_09_00_world_gameobject.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_09_00_world_gameobject.sql
index 386ca974e99..386ca974e99 100644
--- a/sql/old/3.3.5a/2013_02_09_00_world_gameobject.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_09_00_world_gameobject.sql
diff --git a/sql/old/3.3.5a/2013_02_09_01_world_creature_equip_template.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_09_01_world_creature_equip_template.sql
index fd207746ac1..fd207746ac1 100644
--- a/sql/old/3.3.5a/2013_02_09_01_world_creature_equip_template.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_09_01_world_creature_equip_template.sql
diff --git a/sql/old/3.3.5a/2013_02_09_02_world_areatrigger_teleport.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_09_02_world_areatrigger_teleport.sql
index 2a0c1682e32..2a0c1682e32 100644
--- a/sql/old/3.3.5a/2013_02_09_02_world_areatrigger_teleport.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_09_02_world_areatrigger_teleport.sql
diff --git a/sql/old/3.3.5a/2013_02_09_03_world_player_factionchange_spells.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_09_03_world_player_factionchange_spells.sql
index 22f69b11aaa..22f69b11aaa 100644
--- a/sql/old/3.3.5a/2013_02_09_03_world_player_factionchange_spells.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_09_03_world_player_factionchange_spells.sql
diff --git a/sql/old/3.3.5a/2013_02_10_00_world_areatrigger_teleport.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_10_00_world_areatrigger_teleport.sql
index b5f5c856fe0..b5f5c856fe0 100644
--- a/sql/old/3.3.5a/2013_02_10_00_world_areatrigger_teleport.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_10_00_world_areatrigger_teleport.sql
diff --git a/sql/old/3.3.5a/2013_02_11_00_world_creature_template.sql b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_11_00_world_creature_template.sql
index dbbc7267780..dbbc7267780 100644
--- a/sql/old/3.3.5a/2013_02_11_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB50_to_TDB51_updates/world/2013_02_11_00_world_creature_template.sql
diff --git a/sql/updates/auth/2013_02_25_00_auth_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_00_auth_misc.sql
index 8769060ba9d..8769060ba9d 100644
--- a/sql/updates/auth/2013_02_25_00_auth_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_00_auth_misc.sql
diff --git a/sql/updates/auth/2013_02_25_01_auth_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_01_auth_misc.sql
index f5cb6c01d19..f5cb6c01d19 100644
--- a/sql/updates/auth/2013_02_25_01_auth_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_01_auth_misc.sql
diff --git a/sql/updates/auth/2013_02_25_02_auth_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_02_auth_misc.sql
index 11e235c91d9..11e235c91d9 100644
--- a/sql/updates/auth/2013_02_25_02_auth_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_02_auth_misc.sql
diff --git a/sql/updates/auth/2013_02_25_03_auth_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_03_auth_misc.sql
index 5f290ebf0cd..5f290ebf0cd 100644
--- a/sql/updates/auth/2013_02_25_03_auth_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_03_auth_misc.sql
diff --git a/sql/updates/auth/2013_02_25_04_auth_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_04_auth_misc.sql
index bf42990a1bd..bf42990a1bd 100644
--- a/sql/updates/auth/2013_02_25_04_auth_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_04_auth_misc.sql
diff --git a/sql/updates/auth/2013_02_25_05_auth_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_05_auth_misc.sql
index e3ee3f00572..e3ee3f00572 100644
--- a/sql/updates/auth/2013_02_25_05_auth_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_05_auth_misc.sql
diff --git a/sql/updates/auth/2013_02_25_06_auth_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_06_auth_misc.sql
index 92eae3d782d..92eae3d782d 100644
--- a/sql/updates/auth/2013_02_25_06_auth_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_06_auth_misc.sql
diff --git a/sql/updates/auth/2013_02_25_07_auth_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_07_auth_misc.sql
index 4c6dadf4eaa..4c6dadf4eaa 100644
--- a/sql/updates/auth/2013_02_25_07_auth_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_07_auth_misc.sql
diff --git a/sql/updates/auth/2013_02_25_08_auth_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_08_auth_misc.sql
index 244b1848d0c..244b1848d0c 100644
--- a/sql/updates/auth/2013_02_25_08_auth_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_08_auth_misc.sql
diff --git a/sql/updates/auth/2013_02_25_09_auth_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_09_auth_misc.sql
index 6297bf7427a..6297bf7427a 100644
--- a/sql/updates/auth/2013_02_25_09_auth_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_09_auth_misc.sql
diff --git a/sql/updates/auth/2013_02_25_10_auth_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_10_auth_misc.sql
index ccca7c74f06..ccca7c74f06 100644
--- a/sql/updates/auth/2013_02_25_10_auth_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_10_auth_misc.sql
diff --git a/sql/updates/auth/2013_02_25_11_auth_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_11_auth_misc.sql
index b5f9767ca7b..b5f9767ca7b 100644
--- a/sql/updates/auth/2013_02_25_11_auth_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_11_auth_misc.sql
diff --git a/sql/updates/auth/2013_02_25_12_auth_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_12_auth_misc.sql
index 30e203ea4b3..30e203ea4b3 100644
--- a/sql/updates/auth/2013_02_25_12_auth_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_12_auth_misc.sql
diff --git a/sql/updates/auth/2013_02_25_13_auth_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_13_auth_misc.sql
index 9a7806ede68..9a7806ede68 100644
--- a/sql/updates/auth/2013_02_25_13_auth_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_13_auth_misc.sql
diff --git a/sql/updates/auth/2013_02_25_14_auth_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_14_auth_misc.sql
index 59189304342..59189304342 100644
--- a/sql/updates/auth/2013_02_25_14_auth_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_02_25_14_auth_misc.sql
diff --git a/sql/updates/auth/2013_03_08_00_auth_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_03_08_00_auth_misc.sql
index 46e687b5da5..46e687b5da5 100644
--- a/sql/updates/auth/2013_03_08_00_auth_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_03_08_00_auth_misc.sql
diff --git a/sql/updates/auth/2013_03_11_00_auth_rbac_security_level_groups.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_03_11_00_auth_rbac_security_level_groups.sql
index 533d3f7a196..533d3f7a196 100644
--- a/sql/updates/auth/2013_03_11_00_auth_rbac_security_level_groups.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_03_11_00_auth_rbac_security_level_groups.sql
diff --git a/sql/updates/auth/2013_04_22_00_auth_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_04_22_00_auth_misc.sql
index 508c0aab944..508c0aab944 100644
--- a/sql/updates/auth/2013_04_22_00_auth_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_04_22_00_auth_misc.sql
diff --git a/sql/updates/auth/2013_04_27_00_auth_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_04_27_00_auth_misc.sql
index 383b19ebd55..383b19ebd55 100644
--- a/sql/updates/auth/2013_04_27_00_auth_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_04_27_00_auth_misc.sql
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_05_26_00_auth_rbac.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_05_26_00_auth_rbac.sql
new file mode 100644
index 00000000000..aa05c842932
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_05_26_00_auth_rbac.sql
@@ -0,0 +1,14 @@
+DELETE FROM `rbac_permissions` WHERE `id` = 48;
+INSERT INTO `rbac_permissions` (`id`, `name`) VALUES (48, 'Enable IP, Last Login and EMail output in pinfo');
+
+DELETE FROM `rbac_roles` WHERE `id` = 39;
+INSERT INTO `rbac_roles` (`id`, `name`) VALUES (39, 'Enable IP, Last Login and EMail output in pinfo');
+
+DELETE FROM `rbac_role_permissions` WHERE `roleId` = 39 AND `permissionId` = 48;
+INSERT INTO `rbac_role_permissions` (`roleId`, `permissionId`) VALUES (39, 48);
+
+DELETE FROM `rbac_group_roles` WHERE `groupId` = 3 AND `roleId` = 39;
+INSERT INTO `rbac_group_roles` (`groupId`, `roleId`) VALUES (3, 39);
+
+DELETE FROM `rbac_group_roles` WHERE `groupId` = 4 AND `roleId` = 39;
+INSERT INTO `rbac_group_roles` (`groupId`, `roleId`) VALUES (4, 39);
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_06_02_00_auth_autobroadcast.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_06_02_00_auth_autobroadcast.sql
new file mode 100644
index 00000000000..2e689ffd64d
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/auth/2013_06_02_00_auth_autobroadcast.sql
@@ -0,0 +1,5 @@
+ALTER TABLE `autobroadcast`
+ CHANGE `realmid` `realmid` INT(11) NOT NULL DEFAULT '-1',
+ CHANGE `id` `id` TINYINT(3) UNSIGNED NOT NULL AUTO_INCREMENT,
+ CHANGE `weight` `weight` TINYINT(3) UNSIGNED DEFAULT '1',
+ ENGINE=INNODB;
diff --git a/sql/updates/characters/2013_03_04_00_characters_character_queststatus_rewarded.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/characters/2013_03_04_00_characters_character_queststatus_rewarded.sql
index e4dbf73ad7a..e4dbf73ad7a 100644
--- a/sql/updates/characters/2013_03_04_00_characters_character_queststatus_rewarded.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/characters/2013_03_04_00_characters_character_queststatus_rewarded.sql
diff --git a/sql/updates/characters/2013_04_05_00_characters_banned_addons.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/characters/2013_04_05_00_characters_banned_addons.sql
index 4f286b2326c..4f286b2326c 100644
--- a/sql/updates/characters/2013_04_05_00_characters_banned_addons.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/characters/2013_04_05_00_characters_banned_addons.sql
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/characters/2013_06_23_00_characters_game_event.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/characters/2013_06_23_00_characters_game_event.sql
new file mode 100644
index 00000000000..d8a58832ce1
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/characters/2013_06_23_00_characters_game_event.sql
@@ -0,0 +1,3 @@
+-- Delete no longer used data from Characters Database
+DELETE FROM `game_event_save` WHERE `eventEntry` BETWEEN 33 AND 47;
+DELETE FROM `game_event_condition_save` WHERE `eventEntry` BETWEEN 33 AND 47;
diff --git a/sql/updates/world/2013_02_14_00_world_version.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_14_00_world_version.sql
index b3186b9c4e6..b3186b9c4e6 100644
--- a/sql/updates/world/2013_02_14_00_world_version.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_14_00_world_version.sql
diff --git a/sql/updates/world/2013_02_15_00_world_waypoint_data.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_15_00_world_waypoint_data.sql
index 8af0531b2f3..8af0531b2f3 100644
--- a/sql/updates/world/2013_02_15_00_world_waypoint_data.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_15_00_world_waypoint_data.sql
diff --git a/sql/updates/world/2013_02_16_00_world_creature_template.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_16_00_world_creature_template.sql
index d8efe46b573..d8efe46b573 100644
--- a/sql/updates/world/2013_02_16_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_16_00_world_creature_template.sql
diff --git a/sql/updates/world/2013_02_16_01_world_spell_target_position.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_16_01_world_spell_target_position.sql
index c262ecf450f..c262ecf450f 100644
--- a/sql/updates/world/2013_02_16_01_world_spell_target_position.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_16_01_world_spell_target_position.sql
diff --git a/sql/updates/world/2013_02_16_02_world_creature_text.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_16_02_world_creature_text.sql
index d7250b0b49c..d7250b0b49c 100644
--- a/sql/updates/world/2013_02_16_02_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_16_02_world_creature_text.sql
diff --git a/sql/updates/world/2013_02_16_03_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_16_03_world_sai.sql
index fb89bf4ced0..fb89bf4ced0 100644
--- a/sql/updates/world/2013_02_16_03_world_sai.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_16_03_world_sai.sql
diff --git a/sql/updates/world/2013_02_16_04_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_16_04_world_creature_loot_template.sql
index 6819b7aeb45..6819b7aeb45 100644
--- a/sql/updates/world/2013_02_16_04_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_16_04_world_creature_loot_template.sql
diff --git a/sql/updates/world/2013_02_16_05_world_quest_template.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_16_05_world_quest_template.sql
index 81a8e38f25d..81a8e38f25d 100644
--- a/sql/updates/world/2013_02_16_05_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_16_05_world_quest_template.sql
diff --git a/sql/updates/world/2013_02_17_00_world_spell_script_names.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_17_00_world_spell_script_names.sql
index e47b22b1c6b..e47b22b1c6b 100644
--- a/sql/updates/world/2013_02_17_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_17_00_world_spell_script_names.sql
diff --git a/sql/updates/world/2013_02_18_00_world_misc_equip.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_18_00_world_misc_equip.sql
index d591481fc76..d591481fc76 100644
--- a/sql/updates/world/2013_02_18_00_world_misc_equip.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_18_00_world_misc_equip.sql
diff --git a/sql/updates/world/2013_02_18_01_world_trinity_string.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_18_01_world_trinity_string.sql
index 84d28222fe7..84d28222fe7 100644
--- a/sql/updates/world/2013_02_18_01_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_18_01_world_trinity_string.sql
diff --git a/sql/updates/world/2013_02_18_02_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_18_02_world_misc.sql
index 8ca97fe3130..8ca97fe3130 100644
--- a/sql/updates/world/2013_02_18_02_world_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_18_02_world_misc.sql
diff --git a/sql/updates/world/2013_02_18_03_world_spell_area.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_18_03_world_spell_area.sql
index 28752bdaea7..28752bdaea7 100644
--- a/sql/updates/world/2013_02_18_03_world_spell_area.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_18_03_world_spell_area.sql
diff --git a/sql/updates/world/2013_02_19_00_world_creature_template.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_19_00_world_creature_template.sql
index eb1344c8d4b..eb1344c8d4b 100644
--- a/sql/updates/world/2013_02_19_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_19_00_world_creature_template.sql
diff --git a/sql/updates/world/2013_02_19_01_world_creature_template.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_19_01_world_creature_template.sql
index ba7c6bf132a..ba7c6bf132a 100644
--- a/sql/updates/world/2013_02_19_01_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_19_01_world_creature_template.sql
diff --git a/sql/updates/world/2013_02_19_02_world_conditions.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_19_02_world_conditions.sql
index 87c964937ef..87c964937ef 100644
--- a/sql/updates/world/2013_02_19_02_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_19_02_world_conditions.sql
diff --git a/sql/updates/world/2013_02_19_03_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_19_03_world_sai.sql
index ad2c9beeab1..ad2c9beeab1 100644
--- a/sql/updates/world/2013_02_19_03_world_sai.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_19_03_world_sai.sql
diff --git a/sql/updates/world/2013_02_19_04_world_misc_equip.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_19_04_world_misc_equip.sql
index dacf5515439..dacf5515439 100644
--- a/sql/updates/world/2013_02_19_04_world_misc_equip.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_19_04_world_misc_equip.sql
diff --git a/sql/updates/world/2013_02_23_00_world_gameobject.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_23_00_world_gameobject.sql
index 48694505704..48694505704 100644
--- a/sql/updates/world/2013_02_23_00_world_gameobject.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_23_00_world_gameobject.sql
diff --git a/sql/updates/world/2013_02_23_01_world_areatrigger_teleport.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_23_01_world_areatrigger_teleport.sql
index 3b34e18a682..3b34e18a682 100644
--- a/sql/updates/world/2013_02_23_01_world_areatrigger_teleport.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_23_01_world_areatrigger_teleport.sql
diff --git a/sql/updates/world/2013_02_24_00_world_creature_summon_groups.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_24_00_world_creature_summon_groups.sql
index 409f79bb2aa..409f79bb2aa 100644
--- a/sql/updates/world/2013_02_24_00_world_creature_summon_groups.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_24_00_world_creature_summon_groups.sql
diff --git a/sql/updates/world/2013_02_24_01_world_areatrigger_scripts.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_24_01_world_areatrigger_scripts.sql
index 2aebe1d2edd..2aebe1d2edd 100644
--- a/sql/updates/world/2013_02_24_01_world_areatrigger_scripts.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_24_01_world_areatrigger_scripts.sql
diff --git a/sql/updates/world/2013_02_24_02_world_smart_scripts.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_24_02_world_smart_scripts.sql
index 7b41c82b6fa..7b41c82b6fa 100644
--- a/sql/updates/world/2013_02_24_02_world_smart_scripts.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_24_02_world_smart_scripts.sql
diff --git a/sql/updates/world/2013_02_24_03_world_waypoint_data.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_24_03_world_waypoint_data.sql
index e97f0758304..e97f0758304 100644
--- a/sql/updates/world/2013_02_24_03_world_waypoint_data.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_24_03_world_waypoint_data.sql
diff --git a/sql/updates/world/2013_02_24_04_world_creature_template.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_24_04_world_creature_template.sql
index c9acc0d2a1a..c9acc0d2a1a 100644
--- a/sql/updates/world/2013_02_24_04_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_24_04_world_creature_template.sql
diff --git a/sql/updates/world/2013_02_24_05_world_command.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_24_05_world_command.sql
index 0b153be15bc..0b153be15bc 100644
--- a/sql/updates/world/2013_02_24_05_world_command.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_24_05_world_command.sql
diff --git a/sql/updates/world/2013_02_25_00_world_smart_scripts.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_25_00_world_smart_scripts.sql
index b1576d4189e..b1576d4189e 100644
--- a/sql/updates/world/2013_02_25_00_world_smart_scripts.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_25_00_world_smart_scripts.sql
diff --git a/sql/updates/world/2013_02_25_01_world_creature_ai_scripts.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_25_01_world_creature_ai_scripts.sql
index e095414552c..e095414552c 100644
--- a/sql/updates/world/2013_02_25_01_world_creature_ai_scripts.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_25_01_world_creature_ai_scripts.sql
diff --git a/sql/updates/world/2013_02_25_02_world_areatrigger_teleport.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_25_02_world_areatrigger_teleport.sql
index aa74fd46810..aa74fd46810 100644
--- a/sql/updates/world/2013_02_25_02_world_areatrigger_teleport.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_25_02_world_areatrigger_teleport.sql
diff --git a/sql/updates/world/2013_02_27_00_world_command.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_27_00_world_command.sql
index a83e7ec3c04..a83e7ec3c04 100644
--- a/sql/updates/world/2013_02_27_00_world_command.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_27_00_world_command.sql
diff --git a/sql/updates/world/2013_02_28_00_world_eye_of_eternity.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_28_00_world_eye_of_eternity.sql
index 9aef8f358d2..9aef8f358d2 100644
--- a/sql/updates/world/2013_02_28_00_world_eye_of_eternity.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_28_00_world_eye_of_eternity.sql
diff --git a/sql/updates/world/2013_02_28_00_world_playercreateinfo_spell.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_28_00_world_playercreateinfo_spell.sql
index 9f0ce0d8533..9f0ce0d8533 100644
--- a/sql/updates/world/2013_02_28_00_world_playercreateinfo_spell.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_02_28_00_world_playercreateinfo_spell.sql
diff --git a/sql/updates/world/2013_03_01_00_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_01_00_world_misc.sql
index d7d2d391f0b..d7d2d391f0b 100644
--- a/sql/updates/world/2013_03_01_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_01_00_world_misc.sql
diff --git a/sql/updates/world/2013_03_01_02_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_01_02_world_misc.sql
index eb54e0453dd..eb54e0453dd 100644
--- a/sql/updates/world/2013_03_01_02_world_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_01_02_world_misc.sql
diff --git a/sql/updates/world/2013_03_02_00_world_conditions.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_02_00_world_conditions.sql
index 074add78476..074add78476 100644
--- a/sql/updates/world/2013_03_02_00_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_02_00_world_conditions.sql
diff --git a/sql/updates/world/2013_03_03_00_world_eye_of_eternity.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_03_00_world_eye_of_eternity.sql
index e41f2723e5f..e41f2723e5f 100644
--- a/sql/updates/world/2013_03_03_00_world_eye_of_eternity.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_03_00_world_eye_of_eternity.sql
diff --git a/sql/updates/world/2013_03_03_01_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_03_01_world_misc.sql
index a81da8352e3..a81da8352e3 100644
--- a/sql/updates/world/2013_03_03_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_03_01_world_misc.sql
diff --git a/sql/updates/world/2013_03_03_02_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_03_02_world_sai.sql
index ad1ebfd64f2..ad1ebfd64f2 100644
--- a/sql/updates/world/2013_03_03_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_03_02_world_sai.sql
diff --git a/sql/updates/world/2013_03_04_01_world_waypoint_data.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_04_01_world_waypoint_data.sql
index 3a2001e7e36..3a2001e7e36 100644
--- a/sql/updates/world/2013_03_04_01_world_waypoint_data.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_04_01_world_waypoint_data.sql
diff --git a/sql/updates/world/2013_03_04_02_world_quest_template.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_04_02_world_quest_template.sql
index 82f01a39a85..82f01a39a85 100644
--- a/sql/updates/world/2013_03_04_02_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_04_02_world_quest_template.sql
diff --git a/sql/updates/world/2013_03_04_03_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_04_03_world_sai.sql
index 6cb234cc805..6cb234cc805 100644
--- a/sql/updates/world/2013_03_04_03_world_sai.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_04_03_world_sai.sql
diff --git a/sql/updates/world/2013_03_04_04_world_player_factionchange_quests.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_04_04_world_player_factionchange_quests.sql
index 163383cf0a5..163383cf0a5 100644
--- a/sql/updates/world/2013_03_04_04_world_player_factionchange_quests.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_04_04_world_player_factionchange_quests.sql
diff --git a/sql/updates/world/2013_03_04_05_world_player_factionchange_quests.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_04_05_world_player_factionchange_quests.sql
index cd08b4cbcc9..cd08b4cbcc9 100644
--- a/sql/updates/world/2013_03_04_05_world_player_factionchange_quests.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_04_05_world_player_factionchange_quests.sql
diff --git a/sql/updates/world/2013_03_06_00_world_conditions.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_06_00_world_conditions.sql
index b7faaa379e6..b7faaa379e6 100644
--- a/sql/updates/world/2013_03_06_00_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_06_00_world_conditions.sql
diff --git a/sql/updates/world/2013_03_07_00_world_conditions.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_07_00_world_conditions.sql
index 31b9d1a1d25..31b9d1a1d25 100644
--- a/sql/updates/world/2013_03_07_00_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_07_00_world_conditions.sql
diff --git a/sql/updates/world/2013_03_07_01_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_07_01_world_misc.sql
index af284fda6a3..af284fda6a3 100644
--- a/sql/updates/world/2013_03_07_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_07_01_world_misc.sql
diff --git a/sql/updates/world/2013_03_08_00_world_borrowed_technology.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_08_00_world_borrowed_technology.sql
index 06363183836..06363183836 100644
--- a/sql/updates/world/2013_03_08_00_world_borrowed_technology.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_08_00_world_borrowed_technology.sql
diff --git a/sql/updates/world/2013_03_09_00_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_09_00_world_misc.sql
index 61e4378a038..61e4378a038 100644
--- a/sql/updates/world/2013_03_09_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_09_00_world_misc.sql
diff --git a/sql/updates/world/2013_03_09_01_world_gameobject_template.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_09_01_world_gameobject_template.sql
index 229ad5f49a5..229ad5f49a5 100644
--- a/sql/updates/world/2013_03_09_01_world_gameobject_template.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_09_01_world_gameobject_template.sql
diff --git a/sql/updates/world/2013_03_09_02_world_command_deserter.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_09_02_world_command_deserter.sql
index 62b60e973c7..62b60e973c7 100644
--- a/sql/updates/world/2013_03_09_02_world_command_deserter.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_09_02_world_command_deserter.sql
diff --git a/sql/updates/world/2013_03_09_03_world_trinity_string.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_09_03_world_trinity_string.sql
index 3e93289711a..3e93289711a 100644
--- a/sql/updates/world/2013_03_09_03_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_09_03_world_trinity_string.sql
diff --git a/sql/updates/world/2013_03_09_04_world_trinity_string.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_09_04_world_trinity_string.sql
index dea2a044c99..dea2a044c99 100644
--- a/sql/updates/world/2013_03_09_04_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_09_04_world_trinity_string.sql
diff --git a/sql/updates/world/2013_03_09_05_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_09_05_world_misc.sql
index 0384f435c16..0384f435c16 100644
--- a/sql/updates/world/2013_03_09_05_world_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_09_05_world_misc.sql
diff --git a/sql/updates/world/2013_03_10_00_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_10_00_world_misc.sql
index cd8b7215e39..cd8b7215e39 100644
--- a/sql/updates/world/2013_03_10_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_10_00_world_misc.sql
diff --git a/sql/updates/world/2013_03_11_00_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_11_00_world_misc.sql
index 58b38397b9f..58b38397b9f 100644
--- a/sql/updates/world/2013_03_11_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_11_00_world_misc.sql
diff --git a/sql/updates/world/2013_03_11_01_world_playercreateinfo_spell.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_11_01_world_playercreateinfo_spell.sql
index 3a8f0501916..3a8f0501916 100644
--- a/sql/updates/world/2013_03_11_01_world_playercreateinfo_spell.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_11_01_world_playercreateinfo_spell.sql
diff --git a/sql/updates/world/2013_03_12_00_world_playercreateinfo_spell_custom.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_12_00_world_playercreateinfo_spell_custom.sql
index 76f7a43eaa0..76f7a43eaa0 100644
--- a/sql/updates/world/2013_03_12_00_world_playercreateinfo_spell_custom.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_12_00_world_playercreateinfo_spell_custom.sql
diff --git a/sql/updates/world/2013_03_13_00_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_13_00_world_misc.sql
index f579a82f5d5..f579a82f5d5 100644
--- a/sql/updates/world/2013_03_13_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_13_00_world_misc.sql
diff --git a/sql/updates/world/2013_03_13_01_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_13_01_world_creature_loot_template.sql
index ce1fbd0cec4..ce1fbd0cec4 100644
--- a/sql/updates/world/2013_03_13_01_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_13_01_world_creature_loot_template.sql
diff --git a/sql/updates/world/2013_03_13_02_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_13_02_world_sai.sql
index 70709b0ffcd..70709b0ffcd 100644
--- a/sql/updates/world/2013_03_13_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_13_02_world_sai.sql
diff --git a/sql/updates/world/2013_03_13_03_world_playercreateinfo_spell.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_13_03_world_playercreateinfo_spell.sql
index 0212fef5cd1..0212fef5cd1 100644
--- a/sql/updates/world/2013_03_13_03_world_playercreateinfo_spell.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_13_03_world_playercreateinfo_spell.sql
diff --git a/sql/updates/world/2013_03_15_00_world_playercreateinfo_spell.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_15_00_world_playercreateinfo_spell.sql
index b8d9b13bc52..b8d9b13bc52 100644
--- a/sql/updates/world/2013_03_15_00_world_playercreateinfo_spell.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_15_00_world_playercreateinfo_spell.sql
diff --git a/sql/updates/world/2013_03_15_01_world_smart_scripts.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_15_01_world_smart_scripts.sql
index 63561342f3c..63561342f3c 100644
--- a/sql/updates/world/2013_03_15_01_world_smart_scripts.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_15_01_world_smart_scripts.sql
diff --git a/sql/updates/world/2013_03_15_02_world_trinity_strings.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_15_02_world_trinity_strings.sql
index b81c22711c4..b81c22711c4 100644
--- a/sql/updates/world/2013_03_15_02_world_trinity_strings.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_15_02_world_trinity_strings.sql
diff --git a/sql/updates/world/2013_03_16_00_world_conditions.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_16_00_world_conditions.sql
index 0a8f347ac35..0a8f347ac35 100644
--- a/sql/updates/world/2013_03_16_00_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_16_00_world_conditions.sql
diff --git a/sql/updates/world/2013_03_17_00_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_17_00_world_misc.sql
index f2f05eb6671..f2f05eb6671 100644
--- a/sql/updates/world/2013_03_17_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_17_00_world_misc.sql
diff --git a/sql/updates/world/2013_03_17_01_world_creature_template_addon.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_17_01_world_creature_template_addon.sql
index 3942ee46d34..3942ee46d34 100644
--- a/sql/updates/world/2013_03_17_01_world_creature_template_addon.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_17_01_world_creature_template_addon.sql
diff --git a/sql/updates/world/2013_03_17_02_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_17_02_world_sai.sql
index f75d4455a45..f75d4455a45 100644
--- a/sql/updates/world/2013_03_17_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_17_02_world_sai.sql
diff --git a/sql/updates/world/2013_03_17_03_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_17_03_world_misc.sql
index 17468c626d3..17468c626d3 100644
--- a/sql/updates/world/2013_03_17_03_world_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_17_03_world_misc.sql
diff --git a/sql/updates/world/2013_03_20_00_world_guardians_of_the_altar.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_20_00_world_guardians_of_the_altar.sql
index ce15a034185..ce15a034185 100644
--- a/sql/updates/world/2013_03_20_00_world_guardians_of_the_altar.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_20_00_world_guardians_of_the_altar.sql
diff --git a/sql/updates/world/2013_03_23_00_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_23_00_world_sai.sql
index 75a960af2f8..75a960af2f8 100644
--- a/sql/updates/world/2013_03_23_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_23_00_world_sai.sql
diff --git a/sql/updates/world/2013_03_23_01_world_creature_text.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_23_01_world_creature_text.sql
index d2b84cb0ef1..d2b84cb0ef1 100644
--- a/sql/updates/world/2013_03_23_01_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_23_01_world_creature_text.sql
diff --git a/sql/updates/world/2013_03_23_02_world_creature.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_23_02_world_creature.sql
index 874068599f0..874068599f0 100644
--- a/sql/updates/world/2013_03_23_02_world_creature.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_23_02_world_creature.sql
diff --git a/sql/updates/world/2013_03_23_03_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_23_03_world_sai.sql
index e70dd7166ae..e70dd7166ae 100644
--- a/sql/updates/world/2013_03_23_03_world_sai.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_23_03_world_sai.sql
diff --git a/sql/updates/world/2013_03_23_04_world_waypoint_data.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_23_04_world_waypoint_data.sql
index b2467c93c2a..b2467c93c2a 100644
--- a/sql/updates/world/2013_03_23_04_world_waypoint_data.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_23_04_world_waypoint_data.sql
diff --git a/sql/updates/world/2013_03_24_00_world_spell_target_position.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_24_00_world_spell_target_position.sql
index d71a96708e7..d71a96708e7 100644
--- a/sql/updates/world/2013_03_24_00_world_spell_target_position.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_24_00_world_spell_target_position.sql
diff --git a/sql/updates/world/2013_03_24_01_world_creature_ai_scripts.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_24_01_world_creature_ai_scripts.sql
index 9e49ff5f51d..9e49ff5f51d 100644
--- a/sql/updates/world/2013_03_24_01_world_creature_ai_scripts.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_24_01_world_creature_ai_scripts.sql
diff --git a/sql/updates/world/2013_03_24_02_world_quest_template.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_24_02_world_quest_template.sql
index 7d0950d0cbd..7d0950d0cbd 100644
--- a/sql/updates/world/2013_03_24_02_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_24_02_world_quest_template.sql
diff --git a/sql/updates/world/2013_03_26_00_world_a_heros_headgear.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_26_00_world_a_heros_headgear.sql
index 9a0ccd58fb2..9a0ccd58fb2 100644
--- a/sql/updates/world/2013_03_26_00_world_a_heros_headgear.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_26_00_world_a_heros_headgear.sql
diff --git a/sql/updates/world/2013_03_27_00_world_spell_target_position.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_27_00_world_spell_target_position.sql
index 4991fb35aa8..4991fb35aa8 100644
--- a/sql/updates/world/2013_03_27_00_world_spell_target_position.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_27_00_world_spell_target_position.sql
diff --git a/sql/updates/world/2013_03_28_00_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_28_00_world_misc.sql
index 78e420872ba..78e420872ba 100644
--- a/sql/updates/world/2013_03_28_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_28_00_world_misc.sql
diff --git a/sql/updates/world/2013_03_29_00_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_29_00_world_misc.sql
index 1a7e88b3d59..1a7e88b3d59 100644
--- a/sql/updates/world/2013_03_29_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_29_00_world_misc.sql
diff --git a/sql/updates/world/2013_03_29_01_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_29_01_world_misc.sql
index bf59a7196c7..bf59a7196c7 100644
--- a/sql/updates/world/2013_03_29_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_29_01_world_misc.sql
diff --git a/sql/updates/world/2013_03_29_02_world_waypoint_data.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_29_02_world_waypoint_data.sql
index edee2e67b48..edee2e67b48 100644
--- a/sql/updates/world/2013_03_29_02_world_waypoint_data.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_03_29_02_world_waypoint_data.sql
diff --git a/sql/updates/world/2013_04_01_00_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_01_00_world_misc.sql
index 39b5d231c0f..39b5d231c0f 100644
--- a/sql/updates/world/2013_04_01_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_01_00_world_misc.sql
diff --git a/sql/updates/world/2013_04_02_00_world_smart_scripts.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_02_00_world_smart_scripts.sql
index 1687df8ff2d..1687df8ff2d 100644
--- a/sql/updates/world/2013_04_02_00_world_smart_scripts.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_02_00_world_smart_scripts.sql
diff --git a/sql/updates/world/2013_04_02_01_world_gameobject.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_02_01_world_gameobject.sql
index 120dd66eb0d..120dd66eb0d 100644
--- a/sql/updates/world/2013_04_02_01_world_gameobject.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_02_01_world_gameobject.sql
diff --git a/sql/updates/world/2013_04_02_02_world_creature.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_02_02_world_creature.sql
index 194eee288d2..194eee288d2 100644
--- a/sql/updates/world/2013_04_02_02_world_creature.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_02_02_world_creature.sql
diff --git a/sql/updates/world/2013_04_03_00_world_command.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_03_00_world_command.sql
index 3ce73686db3..3ce73686db3 100644
--- a/sql/updates/world/2013_04_03_00_world_command.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_03_00_world_command.sql
diff --git a/sql/updates/world/2013_04_03_01_world_trinity_string.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_03_01_world_trinity_string.sql
index b370664e4cf..b370664e4cf 100644
--- a/sql/updates/world/2013_04_03_01_world_trinity_string.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_03_01_world_trinity_string.sql
diff --git a/sql/updates/world/2013_04_03_02_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_03_02_world_sai.sql
index 8ae37e21ff2..83c968a2788 100644
--- a/sql/updates/world/2013_04_03_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_03_02_world_sai.sql
@@ -78,7 +78,7 @@ SET @VENOMTIP := 28358;
UPDATE `creature_template` SET `minlevel`=77, `maxlevel`=77, `exp`=2,`mindmg`=371, `maxdmg`=522,`attackpower`=478 WHERE `entry`IN (@GOREGEK,@DAJIK,@ZEPIK);
UPDATE `creature_template` SET `unit_flags` =33555200 WHERE `entry`IN (@MOSSWALKERBUNNY,@MISTWHISPERBUNNY,@SPEARBORNBUNNY,@KARTAKHOLDBUNNY,@SPARKTOUCHEDBUNNY,@SAPPHIREHIVEBUNNY,@LIFEBLOODPILLARBUNNY,@SKYREACHPILLARBUNNY);
UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry` IN(@HO_SOOSAY,@ELDER_HARKEK,@SHAMAN_RAKJAK);
-DELETE FROM `creature_ai_scripts` WHERE `creature_id`IN(@HO_SOOSAY,@ELDER_HARKEK,@SHAMAN_RAKJAK);;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`IN(@HO_SOOSAY,@ELDER_HARKEK,@SHAMAN_RAKJAK);
DELETE FROM `smart_scripts` WHERE `entryorguid`IN(@HO_SOOSAY,@ELDER_HARKEK,@SHAMAN_RAKJAK);
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
(@HO_SOOSAY, 0, 0, 0, 1, 0, 100, 0, 0, 0, 0, 0, 75, @O_STATE, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'High-Oracle Soo-say - Out of combat - Add Oracle State Aura'),
diff --git a/sql/updates/world/2013_04_05_00_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_05_00_world_sai.sql
index 4e304843d4f..4e304843d4f 100644
--- a/sql/updates/world/2013_04_05_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_05_00_world_sai.sql
diff --git a/sql/updates/world/2013_04_05_01_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_05_01_world_misc.sql
index 816a4f5c0fa..816a4f5c0fa 100644
--- a/sql/updates/world/2013_04_05_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_05_01_world_misc.sql
diff --git a/sql/updates/world/2013_04_05_02_world_creature_ai_scripts.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_05_02_world_creature_ai_scripts.sql
index 311ae1781f8..311ae1781f8 100644
--- a/sql/updates/world/2013_04_05_02_world_creature_ai_scripts.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_05_02_world_creature_ai_scripts.sql
diff --git a/sql/updates/world/2013_04_06_00_world_quest_template.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_06_00_world_quest_template.sql
index ebd4ad2ffcc..ebd4ad2ffcc 100644
--- a/sql/updates/world/2013_04_06_00_world_quest_template.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_06_00_world_quest_template.sql
diff --git a/sql/updates/world/2013_04_06_01_world_npc_trainer.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_06_01_world_npc_trainer.sql
index b975f29d8c8..b975f29d8c8 100644
--- a/sql/updates/world/2013_04_06_01_world_npc_trainer.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_06_01_world_npc_trainer.sql
diff --git a/sql/updates/world/2013_04_06_02_world_creature.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_06_02_world_creature.sql
index e2658210522..e2658210522 100644
--- a/sql/updates/world/2013_04_06_02_world_creature.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_06_02_world_creature.sql
diff --git a/sql/updates/world/2013_04_06_03_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_06_03_world_misc.sql
index 6cc441d9e5a..6cc441d9e5a 100644
--- a/sql/updates/world/2013_04_06_03_world_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_06_03_world_misc.sql
diff --git a/sql/updates/world/2013_04_07_00_world_areatrigger_teleport.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_07_00_world_areatrigger_teleport.sql
index b9669aaf9c0..b9669aaf9c0 100644
--- a/sql/updates/world/2013_04_07_00_world_areatrigger_teleport.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_07_00_world_areatrigger_teleport.sql
diff --git a/sql/updates/world/2013_04_08_00_world_areatrigger_teleport.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_08_00_world_areatrigger_teleport.sql
index 10e1668136c..10e1668136c 100644
--- a/sql/updates/world/2013_04_08_00_world_areatrigger_teleport.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_08_00_world_areatrigger_teleport.sql
diff --git a/sql/updates/world/2013_04_11_00_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_11_00_world_misc.sql
index 53e2ffcb716..53e2ffcb716 100644
--- a/sql/updates/world/2013_04_11_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_11_00_world_misc.sql
diff --git a/sql/updates/world/2013_04_11_01_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_11_01_world_misc.sql
index 699f65f1c5a..699f65f1c5a 100644
--- a/sql/updates/world/2013_04_11_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_11_01_world_misc.sql
diff --git a/sql/updates/world/2013_04_11_02_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_11_02_world_misc.sql
index be9652a13bb..be9652a13bb 100644
--- a/sql/updates/world/2013_04_11_02_world_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_11_02_world_misc.sql
diff --git a/sql/updates/world/2013_04_11_03_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_11_03_world_misc.sql
index 5f1e89d631d..5f1e89d631d 100644
--- a/sql/updates/world/2013_04_11_03_world_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_11_03_world_misc.sql
diff --git a/sql/updates/world/2013_04_12_00_world_smart_scripts.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_12_00_world_smart_scripts.sql
index 6e7dddee60c..6e7dddee60c 100644
--- a/sql/updates/world/2013_04_12_00_world_smart_scripts.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_12_00_world_smart_scripts.sql
diff --git a/sql/updates/world/2013_04_13_00_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_13_00_world_misc.sql
index b2c6d11d9d9..b2c6d11d9d9 100644
--- a/sql/updates/world/2013_04_13_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_13_00_world_misc.sql
diff --git a/sql/updates/world/2013_04_13_01_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_13_01_world_misc.sql
index 8b8afe05026..8b8afe05026 100644
--- a/sql/updates/world/2013_04_13_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_13_01_world_misc.sql
diff --git a/sql/updates/world/2013_04_13_02_world_smart_scripts.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_13_02_world_smart_scripts.sql
index 78ef1e82a00..78ef1e82a00 100644
--- a/sql/updates/world/2013_04_13_02_world_smart_scripts.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_13_02_world_smart_scripts.sql
diff --git a/sql/updates/world/2013_04_13_03_world_smart_scripts.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_13_03_world_smart_scripts.sql
index 15302e15008..15302e15008 100644
--- a/sql/updates/world/2013_04_13_03_world_smart_scripts.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_13_03_world_smart_scripts.sql
diff --git a/sql/updates/world/2013_04_14_00_world_game_event.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_14_00_world_game_event.sql
index 82929053e8c..82929053e8c 100644
--- a/sql/updates/world/2013_04_14_00_world_game_event.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_14_00_world_game_event.sql
diff --git a/sql/updates/world/2013_04_14_00_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_14_00_world_misc.sql
index 1f239cf0d1f..1f239cf0d1f 100644
--- a/sql/updates/world/2013_04_14_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_14_00_world_misc.sql
diff --git a/sql/updates/world/2013_04_16_00_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_16_00_world_sai.sql
index c45fd63a256..c45fd63a256 100644
--- a/sql/updates/world/2013_04_16_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_16_00_world_sai.sql
diff --git a/sql/updates/world/2013_04_16_01_world_smart_scripts.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_16_01_world_smart_scripts.sql
index 02af2caf3b3..02af2caf3b3 100644
--- a/sql/updates/world/2013_04_16_01_world_smart_scripts.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_16_01_world_smart_scripts.sql
diff --git a/sql/updates/world/2013_04_16_02_world_creature_text.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_16_02_world_creature_text.sql
index 034c632d12a..034c632d12a 100644
--- a/sql/updates/world/2013_04_16_02_world_creature_text.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_16_02_world_creature_text.sql
diff --git a/sql/updates/world/2013_04_19_00_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_19_00_world_sai.sql
index 9ea635824ea..9ea635824ea 100644
--- a/sql/updates/world/2013_04_19_00_world_sai.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_19_00_world_sai.sql
diff --git a/sql/updates/world/2013_04_20_00_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_20_00_world_creature_loot_template.sql
index 70bb2735f90..70bb2735f90 100644
--- a/sql/updates/world/2013_04_20_00_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_20_00_world_creature_loot_template.sql
diff --git a/sql/updates/world/2013_04_20_01_world_conditions.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_20_01_world_conditions.sql
index 3f4ce559256..3f4ce559256 100644
--- a/sql/updates/world/2013_04_20_01_world_conditions.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_20_01_world_conditions.sql
diff --git a/sql/updates/world/2013_04_21_00_world_gameobject_loot_template.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_21_00_world_gameobject_loot_template.sql
index 54b91b9fd44..54b91b9fd44 100644
--- a/sql/updates/world/2013_04_21_00_world_gameobject_loot_template.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_21_00_world_gameobject_loot_template.sql
diff --git a/sql/updates/world/2013_04_21_00_world_skinning_loot_template.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_21_00_world_skinning_loot_template.sql
index b9daf120d7a..b9daf120d7a 100644
--- a/sql/updates/world/2013_04_21_00_world_skinning_loot_template.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_21_00_world_skinning_loot_template.sql
diff --git a/sql/updates/world/2013_04_21_01_world_gameobject_template.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_21_01_world_gameobject_template.sql
index 6888545c123..6888545c123 100644
--- a/sql/updates/world/2013_04_21_01_world_gameobject_template.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_21_01_world_gameobject_template.sql
diff --git a/sql/updates/world/2013_04_21_02_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_21_02_world_sai.sql
index 75dc64161ef..75dc64161ef 100644
--- a/sql/updates/world/2013_04_21_02_world_sai.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_21_02_world_sai.sql
diff --git a/sql/updates/world/2013_04_22_00_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_22_00_world_misc.sql
index 99eee20ffef..99eee20ffef 100644
--- a/sql/updates/world/2013_04_22_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_22_00_world_misc.sql
diff --git a/sql/updates/world/2013_04_27_00_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_27_00_world_misc.sql
index 4c7561a0e69..4c7561a0e69 100644
--- a/sql/updates/world/2013_04_27_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_27_00_world_misc.sql
diff --git a/sql/updates/world/2013_04_27_01_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_27_01_world_misc.sql
index c07a3f76b5f..c07a3f76b5f 100644
--- a/sql/updates/world/2013_04_27_01_world_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_27_01_world_misc.sql
diff --git a/sql/updates/world/2013_04_29_00_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_29_00_world_misc.sql
index 716a77be584..716a77be584 100644
--- a/sql/updates/world/2013_04_29_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_04_29_00_world_misc.sql
diff --git a/sql/updates/world/2013_05_04_00_world_creature_template.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_04_00_world_creature_template.sql
index 01037f835de..01037f835de 100644
--- a/sql/updates/world/2013_05_04_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_04_00_world_creature_template.sql
diff --git a/sql/updates/world/2013_05_04_01_world_creature_template.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_04_01_world_creature_template.sql
index 899a912fca5..899a912fca5 100644
--- a/sql/updates/world/2013_05_04_01_world_creature_template.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_04_01_world_creature_template.sql
diff --git a/sql/updates/world/2013_05_11_00_world_spell_target_position.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_11_00_world_spell_target_position.sql
index 0e6b14682ae..0e6b14682ae 100644
--- a/sql/updates/world/2013_05_11_00_world_spell_target_position.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_11_00_world_spell_target_position.sql
diff --git a/sql/updates/world/2013_05_12_00_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_12_00_world_misc.sql
index 88e79b8a409..88e79b8a409 100644
--- a/sql/updates/world/2013_05_12_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_12_00_world_misc.sql
diff --git a/sql/updates/world/2013_05_13_00_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_13_00_world_misc.sql
index af20a0f5c02..af20a0f5c02 100644
--- a/sql/updates/world/2013_05_13_00_world_misc.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_13_00_world_misc.sql
diff --git a/sql/updates/world/2013_05_13_00_world_spell_target_position.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_13_00_world_spell_target_position.sql
index c4ef5521094..c4ef5521094 100644
--- a/sql/updates/world/2013_05_13_00_world_spell_target_position.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_13_00_world_spell_target_position.sql
diff --git a/sql/updates/world/2013_05_14_00_world_instance_ulduar.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_14_00_world_instance_ulduar.sql
index 1594a8c44a9..1594a8c44a9 100644
--- a/sql/updates/world/2013_05_14_00_world_instance_ulduar.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_14_00_world_instance_ulduar.sql
diff --git a/sql/updates/world/2013_05_16_00_world_spell_target_position.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_16_00_world_spell_target_position.sql
index 421fcae0d01..421fcae0d01 100644
--- a/sql/updates/world/2013_05_16_00_world_spell_target_position.sql
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_16_00_world_spell_target_position.sql
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_20_00_world_creature_addon.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_20_00_world_creature_addon.sql
new file mode 100644
index 00000000000..5ba69949241
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_20_00_world_creature_addon.sql
@@ -0,0 +1 @@
+DELETE FROM `creature_addon` WHERE `guid`=136437;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_20_01_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_20_01_world_misc.sql
new file mode 100644
index 00000000000..55eda1e80a5
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_20_01_world_misc.sql
@@ -0,0 +1,35 @@
+-- Prevent multiple template installation tries
+UPDATE `smart_scripts` SET `event_type`=37 WHERE `entryorguid` IN (474,881,26257) AND `source_type`=0 AND `id`=0;
+UPDATE `smart_scripts` SET `event_type`=37 WHERE `entryorguid` IN (18716,18719) AND `source_type`=0 AND `id`=1;
+
+-- Remove not existing event links
+UPDATE `smart_scripts` SET `link`=0 WHERE `entryorguid`=61 AND `id`=0 AND `source_type`=1;
+UPDATE `smart_scripts` SET `link`=0 WHERE `entryorguid`=3594 AND `id`=0 AND `source_type`=0;
+UPDATE `smart_scripts` SET `link`=0 WHERE `entryorguid`=1399 AND `id`=3 AND `source_type`=0;
+UPDATE `smart_scripts` SET `link`=0 WHERE `entryorguid`=305400 AND `id`=0 AND `source_type`=9;
+
+-- Convert EAI to SAI and add conditions to prevent multiple SMART_ACTION_UPDATE_TEMPLATE calls
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=20778;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=20778;
+
+DELETE FROM `smart_scripts` WHERE `entryorguid`=20778 AND `source_type`=0;
+INSERT INTO `smart_scripts`(`entryorguid`,`id`,`event_type`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`target_type`,`comment`) VALUES
+(20778,0,0,2000,6000,7000,10000,11,36519,32,5,'Void Waste - Cast Toxic Burst'),
+(20778,1,8,35686,0,0,0,36,20805,0,1,'Void Waste - Change Entry after (proc) Spell 35686');
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceGroup`=2 AND `SourceEntry`=20778 AND `SourceId`=0;
+INSERT INTO `conditions`(`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ConditionTarget`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`NegativeCondition`,`Comment`) VALUE
+(22,2,20778,0,1,31,3,20805,1,'Void Waste may not already be transformed to template entry 20805 when trying to update template to 20805');
+
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=20501;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=20501;
+
+DELETE FROM `smart_scripts` WHERE `entryorguid`=20501 AND `source_type`=0;
+INSERT INTO `smart_scripts`(`entryorguid`,`id`,`event_type`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`target_type`,`comment`) VALUES
+(20501,0,2,0,50,30000,45000,11,36465,0,1,'Seeping Sludge - Cast Seeping Split at 50% HP'),
+(20501,1,8,35686,0,0,0,36,20806,0,1,'Seeping Sludge - Change Entry after (proc) Spell 35686'),
+(20501,2,11,0,0,0,0,11,35242,0,1,'Seeping Sludge - Darkstalker Birth');
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceGroup`=2 AND `SourceEntry`=20501 AND `SourceId`=0;
+INSERT INTO `conditions`(`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ConditionTarget`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`NegativeCondition`,`Comment`) VALUE
+(22,2,20501,0,1,31,3,20805,1,'Seeping Sludge may not already be transformed to template entry 20806 when trying to update template to 20806');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_20_02_world_areatrigger_teleport.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_20_02_world_areatrigger_teleport.sql
new file mode 100644
index 00000000000..4b6220161bd
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_20_02_world_areatrigger_teleport.sql
@@ -0,0 +1,5 @@
+DELETE FROM `areatrigger_teleport` WHERE `id` IN (2547, 2548, 2549);
+INSERT INTO `areatrigger_teleport` (`id`, `target_map`, `target_position_x`, `target_position_y`, `target_position_z`, `target_orientation`, `name`) VALUES
+(2547, 0, 1399.42, -2574.59, 107.786, 6.28319, 'Scholomance - Exit Porch Target 001'),
+(2548, 0, 1399.42, -2574.59, 107.786, 6.28319, 'Scholomance - Exit Porch Target 001'),
+(2549, 0, 1399.42, -2574.59, 107.786, 6.28319, 'Scholomance - Exit Porch Target 001');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_21_00_world_trinity_strings.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_21_00_world_trinity_strings.sql
new file mode 100644
index 00000000000..a8cae5aa19c
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_21_00_world_trinity_strings.sql
@@ -0,0 +1,24 @@
+DELETE FROM `trinity_string` WHERE entry IN (453, 548, 549, 550, 714, 716, 749, 752, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856);
+INSERT INTO `trinity_string` (entry, content_default) VALUES
+(453,'│Player %s %s (guid: %u)'),
+(548,'│ GM Mode active, Phase: -1'),
+(549,'├─ Banned: (Type: %s, Reason: %s, Time: %s, By: %s)'),
+(550,'├─ Muted: (Reason: %s, Time: %s, By: %s)'),
+(714,'│ Account: %s (ID: %u), GMLevel: %u'),
+(716,'│ Last Login: %s (Failed Logins: %u)'),
+(749,'│ OS: %s - Latency: %u ms - Mail: %s'),
+(752,'│ Last IP: %s (Locked: %s)'),
+(843,'│ Level: %u (%u/%u XP (%u XP left))'),
+(844,'│ Race: %s %s, %s'),
+(845,'│ Alive ?: %s'),
+(846,'│ Phase: %u'),
+(847,'│ Money: %ug%us%uc'),
+(848,'│ Map: %s, Area: %s, Zone: %s'),
+(849,'│ Guild: %s (ID: %u)'),
+(850,'├─ Rank: %s'),
+(851,'├─ Note: %s'),
+(852,'├─ O. Note: %s'),
+(853,'│ Played time: %s'),
+(854,'â”” Mails: %d Read/%I64u Total'),
+(855,'Male'),
+(856,'Female');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_21_01_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_21_01_world_misc.sql
new file mode 100644
index 00000000000..59a7c67833c
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_21_01_world_misc.sql
@@ -0,0 +1,25 @@
+DELETE FROM `command` WHERE `name` LIKE 'arena%';
+INSERT INTO `command` (`name`, `security`, `help`) VALUES
+('arena create', 3, 'Syntax: .arena create $name \"arena name\" #type\n\nA command to create a new Arena-team in game. #type = [2/3/5]'),
+('arena disband', 3, 'Syntax: .arena disband #TeamID\n\nA command to disband Arena-team in game.'),
+('arena rename', 3, 'Syntax: .arena rename \"oldname\" \"newname\"\n\nA command to rename Arena-team name.'),
+('arena captain', 3, 'Syntax: .arena captain #TeamID $name\n\nA command to set new captain to the team $name must be in the team'),
+('arena info', 2, 'Syntax: .arena info #TeamID\n\nA command that show info about arena team'),
+('arena lookup', 2, 'Syntax: .arena lookup $name\n\nA command that give a list of arenateam with the given $name');
+
+DELETE FROM `trinity_string` WHERE `entry` BETWEEN 857 AND 870;
+INSERT INTO `trinity_string` (`entry`, `content_default`) VALUES
+(857, 'Arena team [%u] not found'),
+(858, 'There is already an arena team named \"%s\"'),
+(859, '%s is already in an arena team of that size'),
+(860, 'Arena Team In Combat'),
+(861, 'Arena with name: \"%s\" or silmilar not found'),
+(862, '[%s] not member of the team \"%s\"'),
+(863, '[%s] already capitan in the team \"%s\"'),
+(864, 'New ArenaTeam created [Name: \"%s\"][Id: %u][Type: %u][Captain GUID: %u]'),
+(865, 'Arena team Name: \"%s\"[Id: %u] disbanded'),
+(866, 'Arena team [Id: %u] change from \"%s\" to \"%s\"'),
+(867, 'Arena team Name: \"%s\"[Id: %u] change capitan from[%s] to [%s]'),
+(868, 'Arena team: \"%s\"[%u] - Rating: %u - Type: %ux%u'),
+(869, 'Name:\"%s\"[guid:%u] - PR: %u - %s'),
+(870, '|\"%s\"[ID:%u](%ux%u)|');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_22_00_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_22_00_world_sai.sql
new file mode 100644
index 00000000000..d3dbd8185c0
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_22_00_world_sai.sql
@@ -0,0 +1,466 @@
+-- Matthias Lehner quest chain in Icecrown. Sniffed info.
+SET @GUID := 62064; -- Need 4 Matthias Lehner guids; one is already spawned.
+SET @CGUID := 142254; -- Needs 81 creature guids
+SET @OGUID := 76647; -- Needs 85 misc gameobject guids
+SET @MATT1 := 32408; -- Matthias Lehner (Near demolisher)
+SET @MATT2 := 32404; -- Matthias Lehner (1)
+SET @MATT3 := 32423; -- Matthias Lerner (2)
+SET @MATT4 := 32497; -- Matthias Lerner (3)
+SET @PLSP_FC := 58989; -- Prodigal Leader Force Cast
+SET @REF_DEMOLISHER := 32370; -- Refurbished Demolisher
+SET @DEMOLISHER := 31868; -- Wrecked Demolisher
+SET @L_CAPTAIN := 32414; -- Lordaeron Captain
+SET @L_FOOTSOLDIER := 31254; -- Lordaeron Footsoldier
+SET @G_MINION := 31276; -- Ghoulish Minion
+SET @SFKCB := 58988; -- Skeletal Footsoldier Kill Credit Base
+SET @TPL := 31268; -- The Prodigal Leader
+SET @NPC_LK := 32443; -- The Lich King
+SET @NPC_SIND := 32446; -- Sindragosa
+SET @LK := 32326; -- Lich King
+SET @ILLIDAN := 32588; -- Illidan Stormrage
+SET @BLOODSTAINED_S1 := 194023; -- GO:194023 Event:20722
+SET @BLOODSTAINED_S2 := 194024; -- GO:194024 Event:20723
+SET @BLOODSTAINED_S3 := 193980; -- GO:193980 Event:20724
+SET @EVENT_1 := 20722; -- Spell Event 1
+SET @EVENT_2 := 20723; -- Spell Event 2
+SET @EVENT_3 := 20724; -- Spell Event 3
+
+DELETE FROM `creature` WHERE `guid`=@GUID;
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`) VALUES
+(@GUID,@MATT1,571,1,1,0,0,7269.866,1178.146,317.4561,1.954769,300,0,0,12600,0,0,0,0,0);
+UPDATE `creature_template` SET `exp`=2,`npcflag`=0x2 WHERE `entry`=@MATT1;
+DELETE FROM `creature_template_addon` WHERE `entry`=@MATT1;
+INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`auras`) VALUES
+(@MATT1,0,0x10000,0x1,'10848 49414'); -- Quest Invisibility, Shroud of Death
+
+-- Apply aura (Generic Quest Invisibility Detection 1) when Field Repairs has been rewarded
+DELETE FROM `spell_area` WHERE `spell`=49416 AND `area`=4537;
+INSERT INTO `spell_area` (`spell`,`area`,`quest_start`,`quest_end`,`aura_spell`,`racemask`,`gender`,`autocast`,`quest_start_status`,`quest_end_status`) VALUES
+(49416,4537,13393,13394,0,1101,2,1,64,9), -- Alliance
+(49416,4537,13304,13305,0,690,2,1,64,9); -- Horde
+-- Remove aura (Generic Quest Invisibility Detection 1) when "Do Your Worst" (13394/13305) has been completed
+
+UPDATE `creature_template` SET `exp`=2,`unit_flags`=0x20040000,`dynamicflags`=0x20,`npcflag`=0x2 WHERE `entry`=@DEMOLISHER;
+
+DELETE FROM `creature_addon` WHERE `guid`=122757; -- Guid based
+DELETE FROM `creature_template_addon` WHERE `entry`=@DEMOLISHER;
+INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`auras`) VALUES
+(@DEMOLISHER,0,0x10000,0x1,'49415 29266'); -- Generic Quest Invisibility 2 & Permanent Feign Death
+
+-- Apply aura (Generic Quest Invisibility Detection 2) when "Field Repairs" has been taken
+DELETE FROM `spell_area` WHERE `spell`=49417 AND `area`=4537;
+INSERT INTO `spell_area` (`spell`,`area`,`quest_start`,`quest_end`,`aura_spell`,`racemask`,`gender`,`autocast`,`quest_start_status`,`quest_end_status`) VALUES
+(49417,4537,13393,13393,0,1101,2,1,11,11), -- Alliance
+(49417,4537,13304,13304,0,690,2,1,11,11); -- Horde
+-- Remove aura (Generic Quest Invisibility Detection 1) when Field Repairs has been rewarded
+
+UPDATE `creature_template` SET `exp`=2,`npcflag`=16777216 WHERE `entry`=@REF_DEMOLISHER;
+
+DELETE FROM `creature_template_addon` WHERE `entry`=@REF_DEMOLISHER;
+INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`auras`) VALUES
+(@REF_DEMOLISHER,0,0x10000,0x1,'49414'); -- Generic Quest Invisibility 1
+
+DELETE FROM `npc_spellclick_spells` WHERE `npc_entry`=@REF_DEMOLISHER;
+INSERT INTO `npc_spellclick_spells` (`npc_entry`,`spell_id`,`cast_flags`,`user_type`) VALUES
+(@REF_DEMOLISHER,59724,1,0); -- Summon (Refurbished Demolisher)
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=18 AND `SourceGroup`=@REF_DEMOLISHER;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorType`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(18,@REF_DEMOLISHER,59724,0,0,9,0,13394,0,0,0,0,0,'','Requires quest to be active for spellclick'),
+(18,@REF_DEMOLISHER,59724,0,0,28,0,13394,0,0,1,0,0,'','Requires quest not to be completed for spellclick');
+
+
+DELETE FROM `creature` WHERE `guid`=@GUID+1;
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`) VALUES
+(@GUID+1,@REF_DEMOLISHER,571,1,1,0,0,7259.758,1176.801,316.8752,0.9599311,300,0,0,36860,0,0,0,0,0);
+
+-- Refurbished Demolisher (31830) -- The vehicle
+UPDATE `creature_template` SET `exp`=2,`spell1`=59733,`spell2`=50652,`spell3`=59737 WHERE `entry`=31830;
+
+UPDATE `creature_template` SET `exp`=2,`AIName`='SmartAI',`npcflag`=0x3,`gossip_menu_id`=10226 WHERE `entry`=@MATT2;
+
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@MATT2 AND `source_type`=0;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@MATT2,0,0,0,19,0,100,0,13395,0,0,0,11,@PLSP_FC,0,0,0,0,0,7,0,0,0,0,0,0,0,'On quest accept - Cast spell - Invoker'),
+(@MATT2,0,1,0,19,0,100,0,13236,0,0,0,11,@PLSP_FC,0,0,0,0,0,7,0,0,0,0,0,0,0,'On quest accept - Cast spell - Invoker');
+
+DELETE FROM `creature_template_addon` WHERE `entry`=@MATT2;
+INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`auras`) VALUES
+(@MATT2,0,0x10000,0x1,'10848 49414'); -- Quest Invisibility, Shroud of Death
+
+DELETE FROM `gossip_menu` WHERE `entry`=10226 AND `text_id`=14218;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES
+(10226,14218);
+
+DELETE FROM `creature` WHERE `guid`=@GUID+2;
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`) VALUES
+(@GUID+2,@MATT2,571,1,1,0,0,7587.631,1398.042,332.4734,0.8203048,300,0,0,12600,0,0,0,0,0);
+
+-- Apply aura (Generic Quest Invisibility Detection 1) when Do Your Worst has been completed|rewarded.
+DELETE FROM `spell_area` WHERE `spell`=49416 AND `area`=4622;
+INSERT INTO `spell_area` (`spell`,`area`,`quest_start`,`quest_end`,`aura_spell`,`racemask`,`gender`,`autocast`,`quest_start_status`,`quest_end_status`) VALUES
+(49416,4622,13394,13396,0,1101,2,1,66,11), -- Alliance
+(49416,4622,13305,13348,0,690,2,1,66,11); -- Horde
+-- Remove aura (Generic Quest Invisibility Detection 1) when Futility is rewarded
+
+UPDATE `creature_template` SET `exp`=2,`minlevel`=80,`maxlevel`=80 WHERE `entry`=@MATT3;
+
+DELETE FROM `creature` WHERE `guid`=@GUID+3;
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`) VALUES
+(@GUID+3,@MATT3,571,1,3,0,0,7854.05,957.014,450.898,0.628319,300,0,0,12600,0,0,0,0,0);
+
+DELETE FROM `creature_template_addon` WHERE `entry`=@MATT3;
+INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`auras`) VALUES
+(@MATT3,0,0x10000,0x1,'10848 49414'); -- Quest Invisibility, Shroud of Death
+
+-- Apply aura (Generic Quest Invisibility Detection 1) when Sindragosa's Fall/Cradle of the Frostbrood has been Taken.
+DELETE FROM `spell_area` WHERE `spell`=49416 AND `area`=4533;
+INSERT INTO `spell_area` (`spell`,`area`,`quest_start`,`quest_end`,`aura_spell`,`racemask`,`gender`,`autocast`,`quest_start_status`,`quest_end_status`) VALUES
+(49416,4533,13397,13399,0,1101,2,1,74,11), -- Alliance
+(49416,4533,13349,13360,0,690,2,1,74,11); -- Horde
+-- Remove aura (Generic Quest Invisibility Detection 1) when Time for Answers is rewarded
+
+UPDATE `creature_template` SET `exp`=2,`minlevel`=80,`maxlevel`=80 WHERE `entry`=@MATT4;
+
+DELETE FROM `creature` WHERE `guid`=@GUID+4;
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`) VALUES
+(@GUID+4,@MATT4,571,1,1,0,0,6369.59,2360.84,471.656,1.22173,300,0,0,12600,0,0,0,0,0);
+
+DELETE FROM `creature_template_addon` WHERE `entry`=@MATT4;
+INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`auras`) VALUES
+(@MATT4,0,0x10000,0x1,'10848 49414'); -- Quest Invisibility, Shroud of Death
+
+-- Apply aura (Generic Quest Invisibility Detection 1) when Time for Answers has been completed/rewarded.
+DELETE FROM `spell_area` WHERE `spell`=49416 AND `area`=4519;
+INSERT INTO `spell_area` (`spell`,`area`,`quest_start`,`quest_end`,`aura_spell`,`racemask`,`gender`,`autocast`,`quest_start_status`,`quest_end_status`) VALUES
+(49416,4519,13399,0,0,1101,2,1,66,0), -- Alliance
+(49416,4519,13360,0,0,690,2,1,66,0); -- Horde
+-- Remove aura (Generic Quest Invisibility Detection 1) when
+
+-- Army of the Damned (13395/13236)
+-- http://www.youtube.com/watch?v=Rimu18yrSx8
+
+UPDATE `creature_template` SET `AIName`='SmartAI',`exp`=2,`spell1`=58912,`spell2`=58913,`spell3`=58916,`spell4`=58917,`speed_run`=0.992062866687775,`VehicleId`=269,`minlevel`=82,`maxlevel`=82,`unit_flags`=0x8,`baseattacktime`=3000,`unit_class`=2 WHERE `entry`=@TPL;
+
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@TPL AND `source_type`=0;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@TPL,0,0,0,8,0,100,0,@SFKCB,0,0,0,11,58987,0,0,0,0,0,23,0,0,0,0,0,0,0,'On Spellhit - Cast Spell - Owner'),
+(@TPL,0,1,0,27,0,100,1,0,0,0,0,45,1,1,0,0,0,0,11,@L_CAPTAIN,50,0,0,0,0,0,'On Passenger Boarded - Set Data - Creature Distance');
+
+
+DELETE FROM `creature_equip_template` WHERE `entry`=@TPL;
+INSERT INTO `creature_equip_template` (`entry`,`itemEntry1`,`itemEntry2`,`itemEntry3`) VALUES
+(@TPL,33475,0,0);
+
+DELETE FROM `spell_scripts` WHERE `id` IN (58916,58917);
+INSERT INTO `spell_scripts` (`id`,`effIndex`,`delay`,`command`,`datalong`,`datalong2`,`dataint`,`x`,`y`,`z`,`o`) VALUES
+(58916,0,0,15,58915,0,0,0,0,0,0),
+(58917,0,0,15,58919,0,0,0,0,0,0);
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry` IN (58916,58917);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorType`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(13,1,58916,0,0,31,0,3,@L_CAPTAIN,0,0,0,0,'','Gift of the Lich King target Lordaeron Captain'),
+(13,1,58916,0,1,31,0,3,@L_FOOTSOLDIER,0,0,0,0,'','Gift of the Lich King target Lordaeron Footsoldier'),
+(13,1,58916,0,0,36,0,0,0,0,1,0,0,'','Target needs to be dead'),
+(13,1,58916,0,1,36,0,0,0,0,1,0,0,'','Target needs to be dead'),
+(13,1,58917,0,0,31,0,3,@G_MINION,0,0,0,0,'','Consume Minions target Ghoulish Minion');
+
+
+DELETE FROM `creature` WHERE `guid` BETWEEN @CGUID+0 AND @CGUID+80;
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`curhealth`,`MovementType`) VALUES
+(@CGUID+0, @L_CAPTAIN, 571, 1, 2, 7590.981, 1393.571, 332.805, 1.396263, 120, 0, 12600, 0), -- @L_CAPTAIN (Area: 4622)
+(@CGUID+1, @L_FOOTSOLDIER, 571, 1, 2, 7597.618, 1305.04, 337.8358, 1.692969, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+2, @L_FOOTSOLDIER, 571, 1, 2, 7592.61, 1305.417, 336.9066, 1.623156, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+3, @L_FOOTSOLDIER, 571, 1, 2, 7587.983, 1305.996, 335.96, 1.570796, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+4, @L_FOOTSOLDIER, 571, 1, 2, 7575.548, 1310.397, 333.8244, 1.43117, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+5, @L_FOOTSOLDIER, 571, 1, 2, 7580.698, 1310.446, 334.4726, 1.500983, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+6, @L_FOOTSOLDIER, 571, 1, 2, 7581.648, 1306.047, 334.8738, 1.518436, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+7, @L_FOOTSOLDIER, 571, 1, 2, 7575.075, 1306.437, 333.991, 1.43117, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+8, @L_FOOTSOLDIER, 571, 1, 2, 7581.489, 1318.208, 334.0107, 1.448623, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+9, @L_FOOTSOLDIER, 571, 1, 2, 7576.248, 1318.982, 333.3188, 1.37881, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+10, @L_FOOTSOLDIER, 571, 1, 2, 7592.329, 1309.999, 336.3537, 1.623156, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+11, @L_FOOTSOLDIER, 571, 1, 2, 7586.704, 1310.507, 335.3659, 1.570796, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+12, @L_FOOTSOLDIER, 571, 1, 2, 7598.781, 1325.946, 335.8446, 1.692969, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+13, @L_FOOTSOLDIER, 571, 1, 2, 7594.156, 1325.512, 335.1556, 1.623156, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+14, @L_FOOTSOLDIER, 571, 1, 2, 7588.168, 1325.119, 334.319, 1.553343, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+15, @L_FOOTSOLDIER, 571, 1, 2, 7582.48, 1325.178, 333.5676, 1.466077, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+16, @L_FOOTSOLDIER, 571, 1, 2, 7577.097, 1325.809, 332.8546, 1.37881, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+17, @L_FOOTSOLDIER, 571, 1, 2, 7598.016, 1318.954, 336.3169, 1.675516, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+18, @L_FOOTSOLDIER, 571, 1, 2, 7592.37, 1318.074, 335.5277, 1.58825, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+19, @L_FOOTSOLDIER, 571, 1, 2, 7587.729, 1318.605, 334.7913, 1.53589, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+20, @L_FOOTSOLDIER, 571, 1, 2, 7581.285, 1353.305, 331.5094, 1.343904, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+21, @L_FOOTSOLDIER, 571, 1, 2, 7578.252, 1356.313, 331.3191, 1.239184, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+22, @L_FOOTSOLDIER, 571, 1, 2, 7574.283, 1359.968, 331.2968, 1.099557, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+23, @L_FOOTSOLDIER, 571, 1, 2, 7570.327, 1363.058, 330.5497, 0.9424778, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+24, @L_FOOTSOLDIER, 571, 1, 2, 7566.075, 1366.799, 329.6888, 0.7853982, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+25, @L_FOOTSOLDIER, 571, 1, 2, 7578.452, 1348.972, 331.6236, 1.291544, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+26, @L_FOOTSOLDIER, 571, 1, 2, 7574.736, 1352.336, 330.9636, 1.186824, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+27, @L_FOOTSOLDIER, 571, 1, 2, 7570.568, 1356.494, 330.5071, 1.047198, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+28, @L_FOOTSOLDIER, 571, 1, 2, 7566.392, 1359.588, 329.7618, 0.9250245, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+29, @L_FOOTSOLDIER, 571, 1, 2, 7562.342, 1362.778, 329.0039, 0.7853982, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+30, @L_FOOTSOLDIER, 571, 1, 2, 7558.438, 1359.295, 328.2628, 0.7853982, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+31, @L_FOOTSOLDIER, 571, 1, 2, 7562.093, 1356.335, 328.9453, 0.8901179, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+32, @L_FOOTSOLDIER, 571, 1, 2, 7566.872, 1352.062, 329.6797, 1.029744, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+33, @L_FOOTSOLDIER, 571, 1, 2, 7571.022, 1348.635, 330.5304, 1.151917, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+34, @L_FOOTSOLDIER, 571, 1, 2, 7575.356, 1345.213, 331.7339, 1.256637, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+35, @L_FOOTSOLDIER, 571, 1, 2, 7555.554, 1355.546, 328.1983, 0.7853982, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+36, @L_FOOTSOLDIER, 571, 1, 2, 7558.832, 1352.613, 329.0146, 0.8901179, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+37, @L_FOOTSOLDIER, 571, 1, 2, 7563.994, 1349.025, 329.8778, 1.012291, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+38, @L_FOOTSOLDIER, 571, 1, 2, 7568.353, 1344.57, 330.5612, 1.134464, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+39, @L_FOOTSOLDIER, 571, 1, 2, 7572.892, 1341.369, 331.6706, 1.239184, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+40, @L_FOOTSOLDIER, 571, 1, 2, 7597.866, 1354.706, 334.6848, 1.762783, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+41, @L_FOOTSOLDIER, 571, 1, 2, 7597.885, 1367.288, 334.5932, 1.867502, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+42, @L_FOOTSOLDIER, 571, 1, 2, 7593.319, 1367.276, 333.7295, 1.692969, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+43, @L_FOOTSOLDIER, 571, 1, 2, 7589.114, 1367.378, 332.953, 1.518436, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+44, @L_FOOTSOLDIER, 571, 1, 2, 7583.886, 1367.601, 331.9132, 1.308997, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+45, @L_FOOTSOLDIER, 571, 1, 2, 7579.366, 1368.245, 331.3056, 1.117011, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+46, @L_FOOTSOLDIER, 571, 1, 2, 7598.125, 1372.082, 334.4693, 1.954769, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+47, @L_FOOTSOLDIER, 571, 1, 2, 7593.253, 1372.027, 333.6238, 1.710423, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+48, @L_FOOTSOLDIER, 571, 1, 2, 7589.304, 1371.93, 333.0089, 1.518436, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+49, @L_FOOTSOLDIER, 571, 1, 2, 7584.049, 1372.177, 332.2688, 1.239184, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+50, @L_FOOTSOLDIER, 571, 1, 2, 7579.457, 1372.116, 331.681, 1.047198, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+51, @L_FOOTSOLDIER, 571, 1, 2, 7598.163, 1375.465, 334.3708, 2.042035, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+52, @L_FOOTSOLDIER, 571, 1, 2, 7593.275, 1375.512, 333.6264, 1.745329, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+53, @L_FOOTSOLDIER, 571, 1, 2, 7589.806, 1375.822, 333.1504, 1.53589, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+54, @L_FOOTSOLDIER, 571, 1, 2, 7584.474, 1376.15, 332.5364, 1.186824, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+55, @L_FOOTSOLDIER, 571, 1, 2, 7580.116, 1376.351, 331.8188, 0.9424778, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+56, @L_FOOTSOLDIER, 571, 1, 2, 7573.417, 1379.314, 330.5734, 0.5759587, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+57, @L_FOOTSOLDIER, 571, 1, 2, 7577.173, 1385.125, 331.072, 0.3839724, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+58, @L_FOOTSOLDIER, 571, 1, 2, 7597.55, 1310.817, 337.1335, 1.692969, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+59, @L_FOOTSOLDIER, 571, 1, 2, 7604.912, 1343.7, 336.2978, 1.867502, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+60, @L_FOOTSOLDIER, 571, 1, 2, 7609.108, 1346.246, 336.7637, 1.954769, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+61, @L_FOOTSOLDIER, 571, 1, 2, 7614.414, 1348.76, 337.1829, 2.094395, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+62, @L_FOOTSOLDIER, 571, 1, 2, 7618.95, 1352.026, 337.3129, 2.199115, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+63, @L_FOOTSOLDIER, 571, 1, 2, 7624.063, 1355.433, 337.9718, 2.321288, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+64, @L_FOOTSOLDIER, 571, 1, 2, 7601.938, 1347.675, 335.5448, 1.832596, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+65, @L_FOOTSOLDIER, 571, 1, 2, 7606.248, 1349.914, 336.0553, 1.937315, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+66, @L_FOOTSOLDIER, 571, 1, 2, 7611.866, 1352.601, 336.4185, 2.076942, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+67, @L_FOOTSOLDIER, 571, 1, 2, 7617.08, 1355.108, 336.8806, 2.216568, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+68, @L_FOOTSOLDIER, 571, 1, 2, 7622.682, 1358.639, 337.6412, 2.356194, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+69, @L_FOOTSOLDIER, 571, 1, 2, 7600.038, 1350.75, 334.9453, 1.797689, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+70, @L_FOOTSOLDIER, 571, 1, 2, 7603.683, 1353.315, 335.4449, 1.902409, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+71, @L_FOOTSOLDIER, 571, 1, 2, 7609.594, 1356.689, 336.257, 2.076942, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+72, @L_FOOTSOLDIER, 571, 1, 2, 7614.948, 1359.268, 337.0087, 2.234021, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+73, @L_FOOTSOLDIER, 571, 1, 2, 7621.068, 1362.548, 337.6258, 2.391101, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+74, @L_FOOTSOLDIER, 571, 1, 2, 7601.229, 1356.915, 335.2959, 1.867502, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+75, @L_FOOTSOLDIER, 571, 1, 2, 7607.468, 1359.978, 336.2152, 2.076942, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+76, @L_FOOTSOLDIER, 571, 1, 2, 7613.156, 1363.574, 336.9086, 2.268928, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+77, @L_FOOTSOLDIER, 571, 1, 2, 7618.365, 1366.665, 337.358, 2.426008, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+78, @L_FOOTSOLDIER, 571, 1, 2, 7600.953, 1385.339, 334.186, 2.687807, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+79, @L_FOOTSOLDIER, 571, 1, 2, 7608.228, 1378.985, 334.8071, 2.565634, 120, 0, 12600, 0), -- @L_FOOTSOLDIER (Area: 4622)
+(@CGUID+80, @L_FOOTSOLDIER, 571, 1, 2, 7604.285, 1378.747, 334.8669, 2.443461, 120, 0, 12600, 0); -- @L_FOOTSOLDIER (Area: 4622)
+
+-- Misc gameobjects
+DELETE FROM `gameobject` WHERE `guid` BETWEEN @OGUID+0 AND @OGUID+84;
+INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES
+(@OGUID+0, 193813, 571, 1, 2, 7541.28, 1320.396, 328.9124, -1.500982, 0, 0, 0, 1, 120, 255, 1), -- 193813 (Area: 4622)
+(@OGUID+1, 193814, 571, 1, 2, 7543.634, 1320.439, 329.0549, 2.775071, 0, 0, 0, 1, 120, 255, 1), -- 193814 (Area: 4622)
+(@OGUID+2, 193816, 571, 1, 2, 7545.142, 1315.035, 329.4462, -3.010669, 0, 0, 0, 1, 120, 255, 1), -- 193816 (Area: 4622)
+(@OGUID+3, 193817, 571, 1, 2, 7543.001, 1315.064, 329.2274, 0.130899, 0, 0, 0, 1, 120, 255, 1), -- 193817 (Area: 4622)
+(@OGUID+4, 193818, 571, 1, 2, 7540.648, 1315.594, 328.9768, 1.701696, 0, 0, 0, 1, 120, 255, 1), -- 193818 (Area: 4622)
+(@OGUID+5, 193819, 571, 1, 2, 7560.569, 1300.758, 333.2082, 1.806415, 0, 0, 0, 1, 120, 255, 1), -- 193819 (Area: 4622)
+(@OGUID+6, 193820, 571, 1, 2, 7554.927, 1309.58, 330.9437, -1.771509, 0, 0, 0, 1, 120, 255, 1), -- 193820 (Area: 4622)
+(@OGUID+7, 193807, 571, 1, 2, 7559.165, 1301.401, 332.9652, 2.015855, 0, 0, 0, 1, 120, 255, 1), -- 193807 (Area: 4622)
+(@OGUID+8, 193808, 571, 1, 2, 7561.399, 1303.66, 332.1848, 1.370081, 0, 0, 0, 1, 120, 255, 1), -- 193808 (Area: 4622)
+(@OGUID+9, 193809, 571, 1, 2, 7557.444, 1303.104, 331.5889, 1.30027, 0, 0, 0, 1, 120, 255, 1), -- 193809 (Area: 4622)
+(@OGUID+10, 193815, 571, 1, 2, 7542.429, 1320.442, 329.6358, 1.911133, 0, 0, 0, 1, 120, 255, 1), -- 193815 (Area: 4622)
+(@OGUID+11, 193800, 571, 1, 2, 7554.204, 1314.124, 330.6833, 2.338742, 0, 0, 0, 1, 120, 255, 1), -- 193800 (Area: 4622)
+(@OGUID+12, 193801, 571, 1, 2, 7545.629, 1307.18, 329.9126, 0.7243106, 0, 0, 0, 1, 120, 255, 1), -- 193801 (Area: 4622)
+(@OGUID+13, 193802, 571, 1, 2, 7541.902, 1316.621, 328.9081, 0.1134449, 0, 0, 0, 1, 120, 255, 1), -- 193802 (Area: 4622)
+(@OGUID+14, 193810, 571, 1, 2, 7557.45, 1303.402, 332.9673, -1.832593, 0, 0, 0, 1, 120, 255, 1), -- 193810 (Area: 4622)
+(@OGUID+15, 193821, 571, 1, 2, 7550.283, 1316.339, 329.959, 2.836153, 0, 0, 0, 1, 120, 255, 1), -- 193821 (Area: 4622)
+(@OGUID+16, 193822, 571, 1, 2, 7553.371, 1304.985, 331.0674, -2.277654, 0, 0, 0, 1, 120, 255, 1), -- 193822 (Area: 4622)
+(@OGUID+17, 193823, 571, 1, 2, 7551.499, 1304.395, 330.7182, 1.596977, 0, 0, 0, 1, 120, 255, 1), -- 193823 (Area: 4622)
+(@OGUID+18, 193824, 571, 1, 2, 7553.543, 1304.755, 331.1079, 0.9424764, 0, 0, 0, 1, 120, 255, 1), -- 193824 (Area: 4622)
+(@OGUID+19, 193825, 571, 1, 2, 7550.23, 1316.46, 330.6128, -2.330011, 0, 0, 0, 1, 120, 255, 1), -- 193825 (Area: 4622)
+(@OGUID+20, 193826, 571, 1, 2, 7556.107, 1309.794, 331.7017, 1.021015, 0, 0, 0, 1, 120, 255, 1), -- 193826 (Area: 4622)
+(@OGUID+21, 193827, 571, 1, 2, 7540.02, 1320.733, 329.4276, 1.596974, 0, 0, 0, 1, 120, 255, 1), -- 193827 (Area: 4622)
+(@OGUID+22, 193805, 571, 1, 2, 7560.395, 1300.322, 332.0938, -1.335177, 0, 0, 0, 1, 120, 255, 1), -- 193805 (Area: 4622)
+(@OGUID+23, 193811, 571, 1, 2, 7616.356, 1305.621, 341.7527, -1.553341, 0, 0, 0, 1, 120, 255, 1), -- 193811 (Area: 4622)
+(@OGUID+24, 193829, 571, 1, 2, 7628.698, 1313.042, 341.731, 2.510756, 0, 0, 0, 1, 120, 255, 1), -- 193829 (Area: 4622)
+(@OGUID+25, 193836, 571, 1, 2, 7623.703, 1306.834, 341.2804, -1.304631, 0, 0, 0, 1, 120, 255, 1), -- 193836 (Area: 4622)
+(@OGUID+26, 193837, 571, 1, 2, 7623.346, 1306.82, 341.664, 0.3035969, 0, 0, 0, 1, 120, 255, 1), -- 193837 (Area: 4622)
+(@OGUID+27, 193812, 571, 1, 2, 7616.432, 1305.333, 340.4039, 1.579521, 0, 0, 0, 1, 120, 255, 1), -- 193812 (Area: 4622)
+(@OGUID+28, 193839, 571, 1, 2, 7620.775, 1303.785, 341.3588, 1.776699, 0, 0, 0, 1, 120, 255, 1), -- 193839 (Area: 4622)
+(@OGUID+29, 193840, 571, 1, 2, 7619.116, 1305.521, 340.8146, -1.292454, 0, 0, 0, 1, 120, 255, 1), -- 193840 (Area: 4622)
+(@OGUID+30, 193833, 571, 1, 2, 7611.557, 1304.096, 341.6903, 2.46209, 0, 0, 0, 1, 120, 255, 1), -- 193833 (Area: 4622)
+(@OGUID+31, 193834, 571, 1, 2, 7611.44, 1305.623, 341.8747, 2.385941, 0, 0, 0, 1, 120, 255, 1), -- 193834 (Area: 4622)
+(@OGUID+32, 193828, 571, 1, 2, 7628.804, 1312.444, 341.1812, -0.5995114, 0, 0, 0, 1, 120, 255, 1), -- 193828 (Area: 4622)
+(@OGUID+33, 193830, 571, 1, 2, 7631.086, 1311.507, 341.5322, 2.199114, 0, 0, 0, 1, 120, 255, 1), -- 193830 (Area: 4622)
+(@OGUID+34, 193838, 571, 1, 2, 7628.428, 1307.566, 341.7274, 2.481837, 0, 0, 0, 1, 120, 255, 1), -- 193838 (Area: 4622)
+(@OGUID+35, 193831, 571, 1, 2, 7630.328, 1312.191, 341.3887, 1.474802, 0, 0, 0, 1, 120, 255, 1), -- 193831 (Area: 4622)
+(@OGUID+36, 193832, 571, 1, 2, 7631.078, 1312.427, 341.4087, 1.210786, 0, 0, 0, 1, 120, 255, 1), -- 193832 (Area: 4622)
+(@OGUID+37, 193845, 571, 1, 2, 7625.171, 1305.658, 341.5322, 2.274172, 0, 0, 0, 1, 120, 255, 1), -- 193845 (Area: 4622)
+(@OGUID+38, 193803, 571, 1, 2, 7634.984, 1315.54, 341.3336, 0.3839723, 0, 0, 0, 1, 120, 255, 1), -- 193803 (Area: 4622)
+(@OGUID+39, 193804, 571, 1, 2, 7612.716, 1303.828, 340.1033, 2.403463, 0, 0, 0, 1, 120, 255, 1), -- 193804 (Area: 4622)
+(@OGUID+40, 193799, 571, 1, 2, 7629.829, 1308.381, 341.4977, 2.495816, 0, 0, 0, 1, 120, 255, 1), -- 193799 (Area: 4622)
+(@OGUID+41, 193474, 571, 1, 2, 7594.459, 1387.242, 335.4896, 1.509709, 0, 0, 0, 1, 120, 255, 1), -- 193474 (Area: 4622)
+(@OGUID+42, 193477, 571, 1, 2, 7565.28, 1388.165, 328.3016, 2.646745, 0, 0, 0, 1, 120, 255, 1), -- 193477 (Area: 4622)
+(@OGUID+43, 193478, 571, 1, 2, 7573.998, 1396.272, 329.3516, 1.903219, 0, 0, 0, 1, 120, 255, 1), -- 193478 (Area: 4622)
+(@OGUID+44, 193479, 571, 1, 2, 7574.192, 1387.192, 330.1734, -0.721683, 0, 0, 0, 1, 120, 255, 1), -- 193479 (Area: 4622)
+(@OGUID+45, 193515, 571, 1, 2, 7572.924, 1386.133, 330.0977, -0.1943158, 0, 0, 0, 1, 120, 255, 1), -- 193515 (Area: 4622)
+(@OGUID+46, 193475, 571, 1, 2, 7594.464, 1387.608, 334.2297, -1.596976, 0, 0, 0, 1, 120, 255, 1), -- 193475 (Area: 4622)
+(@OGUID+47, 193511, 571, 1, 2, 7572.461, 1387.348, 329.9952, -2.310437, 0, 0, 0, 1, 120, 255, 1), -- 193511 (Area: 4622)
+(@OGUID+48, 193523, 571, 1, 2, 7569.051, 1379.311, 329.6375, 0.26714, 0, 0, 0, 1, 120, 255, 1), -- 193523 (Area: 4622)
+(@OGUID+49, 193524, 571, 1, 2, 7569.593, 1378.756, 331.6182, 0.2884431, 0, 0, 0, 1, 120, 255, 1), -- 193524 (Area: 4622)
+(@OGUID+50, 193525, 571, 1, 2, 7569.944, 1380.115, 331.8074, 0.2884431, 0, 0, 0, 1, 120, 255, 1), -- 193525 (Area: 4622)
+(@OGUID+51, 193526, 571, 1, 2, 7578.941, 1388.341, 331.1905, 2.510151, 0, 0, 0, 1, 120, 255, 1), -- 193526 (Area: 4622)
+(@OGUID+52, 193527, 571, 1, 2, 7578.064, 1388.368, 330.8582, 0.952802, 0, 0, 0, 1, 120, 255, 1), -- 193527 (Area: 4622)
+(@OGUID+53, 193528, 571, 1, 2, 7578.356, 1387.903, 331.3766, 2.996104, 0, 0, 0, 1, 120, 255, 1), -- 193528 (Area: 4622)
+(@OGUID+54, 193514, 571, 1, 2, 7587.764, 1391.348, 333.9012, 3.10851, 0, 0, 0, 1, 120, 255, 1), -- 193514 (Area: 4622)
+(@OGUID+55, 193472, 571, 1, 2, 7584.512, 1387.774, 335.2943, 1.52716, 0, 0, 0, 1, 120, 255, 1), -- 193472 (Area: 4622)
+(@OGUID+56, 193473, 571, 1, 2, 7584.511, 1388.14, 334.0347, -1.579522, 0, 0, 0, 1, 120, 255, 1), -- 193473 (Area: 4622)
+(@OGUID+57, 193510, 571, 1, 2, 7585.269, 1391.078, 333.9027, -2.382504, 0, 0, 0, 1, 120, 255, 1), -- 193510 (Area: 4622)
+(@OGUID+58, 193529, 571, 1, 2, 7611.424, 1384.339, 335.7021, 0.4115172, 0, 0, 0, 1, 120, 255, 1), -- 193529 (Area: 4622)
+(@OGUID+59, 193498, 571, 1, 2, 7608.75, 1388.728, 335.8158, -3.031208, 0, 0, 0, 1, 120, 255, 1), -- 193498 (Area: 4622)
+(@OGUID+60, 193512, 571, 1, 2, 7607.569, 1380.687, 334.6062, -2.615315, 0, 0, 0, 1, 120, 255, 1), -- 193512 (Area: 4622)
+(@OGUID+61, 193513, 571, 1, 2, 7602.882, 1392.214, 333.8481, 2.86819, 0, 0, 0, 1, 120, 255, 1), -- 193513 (Area: 4622)
+(@OGUID+62, 193499, 571, 1, 2, 7607.803, 1387.896, 334.5514, 1.181878, 0, 0, 0, 1, 120, 255, 1), -- 193499 (Area: 4622)
+(@OGUID+63, 193500, 571, 1, 2, 7607.761, 1388.981, 335.6974, 2.752486, 0, 0, 0, 1, 120, 255, 1), -- 193500 (Area: 4622)
+(@OGUID+64, 193501, 571, 1, 2, 7608.067, 1387.847, 335.6891, 1.57918, 0, 0, 0, 1, 120, 255, 1), -- 193501 (Area: 4622)
+(@OGUID+65, 193502, 571, 1, 2, 7606.78, 1387.013, 335.4621, 0.4406689, 0, 0, 0, 1, 120, 255, 1), -- 193502 (Area: 4622)
+(@OGUID+66, 193507, 571, 1, 2, 7603.438, 1393.474, 333.8636, 0.8205906, 0, 0, 0, 1, 120, 255, 1), -- 193507 (Area: 4622)
+(@OGUID+67, 193508, 571, 1, 2, 7604.211, 1394.048, 334.0117, 0.553567, 0, 0, 0, 1, 120, 255, 1), -- 193508 (Area: 4622)
+(@OGUID+68, 193521, 571, 1, 2, 7603.405, 1381.198, 334.5134, 1.028245, 0, 0, 0, 1, 120, 255, 1), -- 193521 (Area: 4622)
+(@OGUID+69, 193522, 571, 1, 2, 7609.946, 1383.467, 334.8445, 2.07127, 0, 0, 0, 1, 120, 255, 1), -- 193522 (Area: 4622)
+(@OGUID+70, 193505, 571, 1, 2, 7614.041, 1383.107, 335.3358, -1.199282, 0, 0, 0, 1, 120, 255, 1), -- 193505 (Area: 4622)
+(@OGUID+71, 193506, 571, 1, 2, 7604.289, 1393.07, 334.0316, -0.001746883, 0, 0, 0, 1, 120, 255, 1), -- 193506 (Area: 4622)
+(@OGUID+72, 193466, 571, 1, 2, 7603.318, 1390.261, 333.631, -1.944215, 0, 0, 0, 1, 120, 255, 1), -- 193466 (Area: 4622)
+(@OGUID+73, 193467, 571, 1, 2, 7611.13, 1380.281, 334.9095, -2.729541, 0, 0, 0, 1, 120, 255, 1), -- 193467 (Area: 4622)
+(@OGUID+74, 193503, 571, 1, 2, 7613.502, 1382.34, 335.2786, 0.381168, 0, 0, 0, 1, 120, 255, 1), -- 193503 (Area: 4622)
+(@OGUID+75, 193504, 571, 1, 2, 7613.352, 1382.993, 335.6254, 0.8341318, 0, 0, 0, 1, 120, 255, 1), -- 193504 (Area: 4622)
+(@OGUID+76, 193509, 571, 1, 2, 7600.531, 1392.637, 333.3486, 1.351323, 0, 0, 0, 1, 120, 255, 1), -- 193509 (Area: 4622)
+(@OGUID+77, 193806, 571, 1, 2, 7559.955, 1299.04, 333.1187, 2.809974, 0, 0, 0, 1, 120, 255, 1), -- 193806 (Area: 4622)
+(@OGUID+78, 193798, 571, 1, 2, 7554.067, 1301.211, 331.2181, 1.195549, 0, 0, 0, 1, 120, 255, 1), -- 193798 (Area: 4622)
+(@OGUID+79, 193841, 571, 1, 2, 7625.241, 1304.634, 341.6619, 2.192614, 0, 0, 0, 1, 120, 255, 1), -- 193841 (Area: 4622)
+(@OGUID+80, 193843, 571, 1, 2, 7626.075, 1302.194, 342.0533, 1.939992, 0, 0, 0, 1, 120, 255, 1), -- 193843 (Area: 4622)
+(@OGUID+81, 193842, 571, 1, 2, 7625.737, 1303.095, 341.8933, 2.157538, 0, 0, 0, 1, 120, 255, 1), -- 193842 (Area: 4622)
+(@OGUID+82, 193835, 571, 1, 2, 7621.549, 1301.871, 341.7209, -1.390356, 0, 0, 0, 1, 120, 255, 1), -- 193835 (Area: 4622)
+(@OGUID+83, 193797, 571, 1, 2, 7622.559, 1303.291, 341.1438, 1.823867, 0, 0, 0, 1, 120, 255, 1), -- 193797 (Area: 4622)
+(@OGUID+84, 193844, 571, 1, 2, 7626.616, 1302.82, 342.0193, 1.37313, 0, 0, 0, 1, 120, 255, 1); -- 193844 (Area: 4622)
+
+-- 193471
+UPDATE `gameobject` SET `phaseMask`=3 WHERE `guid`=62737;
+
+UPDATE `creature_template` SET `AIName`='SmartAI',`exp`=2,`minlevel`=80,`maxlevel`=80,`faction_A`=2136,`faction_H`=2136 WHERE `entry`=@L_FOOTSOLDIER;
+UPDATE `creature_template` SET `AIName`='SmartAI',`exp`=2,`minlevel`=80,`maxlevel`=80,`faction_A`=2136,`faction_H`=2136 WHERE `entry`=@L_CAPTAIN;
+
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@L_CAPTAIN,@L_FOOTSOLDIER) AND `source_type`=0;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+ -- We hide the body; this way to prevent multiple ghoul spawns from the same body
+(@L_CAPTAIN,0,0,0,8,0,100,0,58916,0,0,0,47,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Lordaeron Captain - On Spellhit - Set Invisible'),
+(@L_CAPTAIN,0,1,0,38,0,100,0,1,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Lordaeron Captain - On Data Set - Talk'),
+(@L_FOOTSOLDIER,0,0,0,8,0,100,0,58916,0,0,0,47,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Lordaeron Footsoldier - On Spellhit -Set Invisible'),
+(@L_FOOTSOLDIER,0,1,0,4,0,100,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Lordaeron Footsoldier - On Aggro - Talk');
+
+
+DELETE FROM `creature_equip_template` WHERE `entry` IN (@L_CAPTAIN,@L_FOOTSOLDIER);
+INSERT INTO `creature_equip_template` (`entry`,`itemEntry1`,`itemEntry2`,`itemEntry3`) VALUES
+(@L_CAPTAIN,1895,0,36636), -- Lordaeron Captain @L_CAPTAIN
+(@L_FOOTSOLDIER,1895,0,36636); -- Lordaeron Footsoldier @L_FOOTSOLDIER
+
+DELETE FROM `creature_text` WHERE `entry` IN (@L_FOOTSOLDIER,@L_CAPTAIN);
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@L_FOOTSOLDIER,0,0,'The undead are upon us!',12,0,10,0,0,0,'Lordaeron Footsoldier to Ghoulish Minion'),
+(@L_FOOTSOLDIER,0,1,'The rumors were true! The prince has gone mad!',12,0,10,0,0,0,'Lordaeron Footsoldier to Ghoulish Minion'),
+(@L_CAPTAIN,0,0,'You''ve come to address the men, sir?', 12,0,100,66,0,0,'Lordaeron Captain');
+
+UPDATE `creature_template` SET `AIName`='SmartAI',`speed_walk`=0.777776,`minlevel`=82,`maxlevel`=82,`unit_flags`=0x8 WHERE `entry`=@G_MINION;
+DELETE FROM `creature_template_addon` WHERE `entry`=@G_MINION;
+INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`auras`) VALUES
+(@G_MINION,0,0x0,0x1,'58946'); -- Hate Aura
+
+
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@G_MINION AND `source_type`=0;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@G_MINION,0,0,0,54,0,100,1,0,0,0,0,11,@SFKCB,0,0,0,0,0,23,0,0,0,0,0,0,0,'On Just Summoned - Cast Spell - Owner');
+
+-- Where Dragons Fell (13398/13359)
+-- http://www.youtube.com/watch?v=v3FsLm1oY8k
+
+UPDATE `creature_template` SET `minlevel`=83, `maxlevel`=83, `exp`=2, `unit_class`=2, `InhabitType`=7 WHERE `entry`=@NPC_SIND;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry` IN (@NPC_LK,@NPC_SIND,@NPC_LK*100,@MATT3);
+DELETE FROM `smart_scripts` WHERE (`entryorguid` IN (@NPC_LK,@NPC_SIND,@MATT3,@NPC_LK*100) AND `source_type`IN (0,9));
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@MATT3,0,0,0,20,0,100,0,13398,1,0,0,12,@NPC_LK,1,27000,0,0,0,8,0,0,0,7863.779, 943.377, 451.502, 1.556,'Matthias Lehner - On Quest rewarded - Summon Lich King'),
+(@MATT3,0,1,0,20,0,100,0,13359,0,0,0,12,@NPC_LK,1,27000,0,0,0,8,0,0,0,7863.779, 943.377, 451.502, 1.556,'Matthias Lehner - On Quest rewarded - Summon Lich King '),
+
+(@NPC_LK,0,0,0,54,0,100,0,0,0,0,0,53,0,@NPC_LK,0,0,0,0,1,0,0,0,0,0,0,0,'Lich King - On Summoned - Start WP-Movement'),
+(@NPC_LK,0,1,2,58,0,100,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Lich King - On WP-End - Talk'),
+(@NPC_LK,0,2,3,61,0,100,0,0,0,0,0,90,8,0,0,0,0,0,1,0,0,0,0,0,0,0,'Lich King - On Link -Add unit field bytes - Kneel'),
+(@NPC_LK,0,3,4,61,0,100,0,0,0,0,0,12,@NPC_SIND,8,0,0,0,0,8,0,0,0,7837.523,1054.987,421.766,5.00,'Lich King - On WP-End - Summon Sindragosa'),
+(@NPC_LK,0,4,0,61,0,100,0,0,0,0,0,80,@NPC_LK*100,2,0,0,0,0,1,0,0,0,0,0,0,0,'Lich King - On Link - Start timed script'),
+(@NPC_LK,0,5,0,38,0,100,0,1,1,0,0,91,8,0,0,0,0,0,1,0,0,0,0,0,0,0,'Lich King - On data set - Remove unit field bytes'),
+(@NPC_LK*100,9,0,0,0,0,100,0,2000,2000,2000,2000,45,1,1,0,0,0,0,1,0,0,0,0,0,0,0,'Lich King - On Script - Set Data'),
+
+(@NPC_SIND,0,0,0,54,0,100,0,0,0,0,0,53,1,@NPC_SIND,0,0,0,0,1,0,0,0,0,0,0,0,'Sindragosa - On Summoned - Start WP-Movement'),
+(@NPC_SIND,0,1,2,58,0,100,0,1,0,0,0,45,1,1,0,0,0,0,1,0,0,0,0,0,0,0,'Sindragosa - On WP-Ended - Set Data on self'),
+(@NPC_SIND,0,2,3,61,0,100,0,1,1,0,0,46,200,0,0,0,0,0,1,0,0,0,0,0,0,0,'Sindragosa - On data set - Move forward'),
+(@NPC_SIND,0,3,0,61,0,100,0,0,0,0,0,41,15000,0,0,0,0,0,1,0,0,0,0,0,0,0,'Sindragosa - On data set - Despawn');
+
+DELETE FROM `creature_template_addon` WHERE entry =@NPC_SIND;
+INSERT INTO `creature_template_addon` (`entry`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES
+(@NPC_SIND,0,0,33554432,0,0,'43775');
+
+DELETE FROM `waypoints` WHERE `entry`=@NPC_LK;
+INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`point_comment`) VALUES
+(@NPC_LK,1,7863.453, 960.661, 450.491,'Lich King - WP1');
+
+DELETE FROM `waypoints` WHERE `entry`=@NPC_SIND;
+INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`point_comment`) VALUES
+(@NPC_SIND,1,7848.635,1027.209,480.763,'Sindragosa- WP1');
+
+DELETE FROM `creature_text` WHERE `entry`= @NPC_LK;
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@NPC_LK,0,0,'Rise, Sindragosa! Rise and lead the Frostbrood into war!',12,0,100,16,0,0,'Lich King');
+
+
+-- The Hunter and the Prince (13400/13361)
+-- Bloodstained Stone
+-- GO:194023 Event:20722
+-- GO:194024 Event:20723
+-- GO:193980 Event:20724
+
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@MATT4;
+
+DELETE FROM `smart_scripts` WHERE (`entryorguid`=@MATT4 AND `source_type`=0) OR (`entryorguid` IN (@MATT4*100,@MATT4*100+1,@MATT4*100+2) AND `source_type`=9);
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@MATT4,0,0,0,19,0,100,0,13400,0,0,0,87,@MATT4*100,@MATT4*100+1,@MATT4*100+2,0,0,0,1,0,0,0,0,0,0,0,'On Quest Accepted - Run Script - Self'),
+(@MATT4,0,1,0,19,0,100,0,13361,0,0,0,87,@MATT4*100,@MATT4*100+1,@MATT4*100+2,0,0,0,1,0,0,0,0,0,0,0,'On Quest Accepted - Run Script - Self'),
+(@MATT4*100,9,0,0,0,0,100,0,0,0,0,0,50,@BLOODSTAINED_S1,30000,0,0,0,0,8,0,0,0,6331.721,2360.052,477.274,0,'On Script - Summon GO - Location'),
+(@MATT4*100+1,9,0,0,0,0,100,0,0,0,0,0,50,@BLOODSTAINED_S2,30000,0,0,0,0,8,0,0,0,6359.744,2342.196,472.701,0,'On Script - Summon GO - Location'),
+(@MATT4*100+2,9,0,0,0,0,100,0,0,0,0,0,50,@BLOODSTAINED_S3,30000,0,0,0,0,8,0,0,0,6358.710,2383.027,474.682,0,'On Script - Summon GO - Location');
+
+-- LK
+UPDATE `creature_template` SET `AIName`='',`minlevel`=82,`maxlevel`=82,`EXP`=2,`mindmg`=417,`maxdmg`=582,`attackpower`=608,`baseattacktime`=3000,`unit_class`=2,`minrangedmg`=341,`maxrangedmg`=506,`rangedattackpower`=80,`spell1`=60617,`spell2`=60644,`spell3`=60672,`spell4`=60642,`VehicleId`=300 WHERE `entry`=@LK;
+UPDATE `creature_template` SET `Health_mod`=160,`EXP`=0,`rank`=3,`type_flags`=0,`AIName`='SmartAI',`faction_A`=14,`faction_H`=14,`minlevel`=82,`maxlevel`=82,`mindmg`=452,`maxdmg`=678,`attackpower`=169,`baseattacktime`=2000,`unit_class`=1,`minrangedmg`=362,`maxrangedmg`=542,`rangedattackpower`=135 WHERE `entry`= @ILLIDAN;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ILLIDAN AND `source_type`=0;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@ILLIDAN,0,0,0,54,0,100,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Illidan - On Just Summoned - Talk - Self'),
+(@ILLIDAN,0,1,0,0,0,100,0,15000,16000,15000,16000,11,60744,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Illidan - In combat - Immolate'),
+(@ILLIDAN,0,2,0,0,0,100,0,6000,7000,6000,7000,11,61101,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Illidan - In combat - Heart Rip'),
+(@ILLIDAN,0,4,0,0,0,100,0,19000,19000,19000,19000,11,60742,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Illidan - In combat - Shear'),
+(@ILLIDAN,0,5,0,6,0,100,0,0,0,0,0,33,32797,0,0,0,0,0,21,20,0,0,0,0,0,0, 'Illidan - On death - Give quest credit');
+
+-- Removing spell from this table in order for Energize (60628) to refund mana.
+DELETE FROM `spell_proc_event` WHERE `entry`=60617;
+
+DELETE FROM `creature_text` WHERE `entry`=@ILLIDAN;
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`TEXT`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@ILLIDAN,0,0,'Prepare to die!',12,0,100,0,0,0,'Illidan Stormrage');
+
+DELETE FROM `event_scripts` WHERE `id` IN (@EVENT1,@EVENT2,@EVENT3);
+INSERT INTO `event_scripts` (`id`,`delay`,`command`,`datalong`,`datalong2`,`dataint`,`x`,`y`,`z`,`o`) VALUES
+(@EVENT_1,0,10,@ILLIDAN,60000,0,6342.646,2399.023,478.483,5.5137),
+(@EVENT_2,0,10,@ILLIDAN,60000,0,6313.481,2345.141,479.379,1.0173),
+(@EVENT_3,0,10,@ILLIDAN,60000,0,6351.155,2315.504,474.698,1.2568);
+
+-- These don't work ...
+-- 61752 Illidan Kill Credit Master
+-- 61748 Illidan Kill Credit
+
+-- Addition Dr-j
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=18 AND `SourceGroup`=32370 AND `SourceEntry`=59724 AND `ConditionValue1`=13305;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(18,32370,59724,0,1,9,0,13305,0,0,0,0,0, '', 'Required quest active for spellclick'),
+(18,32370,59724,0,1,28,0,13305,0,0,1,0,0, '', 'Required quest not completed for spellclick');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_22_01_world_gameobject.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_22_01_world_gameobject.sql
new file mode 100644
index 00000000000..2485b74969b
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_22_01_world_gameobject.sql
@@ -0,0 +1,3 @@
+-- Update Frozen Halls & ICC Meeting stone positions from 4.3.4 sniff
+UPDATE `gameobject` SET `position_x`=5633.551, `position_y`=2029.531, `position_z`=798.499, `orientation`=4.515394, `rotation2`=0.976296, `rotation3`=-0.2164396 WHERE `guid`=151101;
+UPDATE `gameobject` SET `position_x`=5842.831, `position_y`=2218.624, `position_z`=636.288, `orientation`=5.327191, `rotation2`=0.976296, `rotation3`=-0.2164396 WHERE `guid`=151102;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_22_02_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_22_02_world_sai.sql
new file mode 100644
index 00000000000..705fb879151
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_22_02_world_sai.sql
@@ -0,0 +1,11 @@
+-- Creature_AI to Smart_AI Conversion for Proto-Drake Egg (ID 23777)
+UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry` =23777;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=23777;
+DELETE FROM `smart_scripts` WHERE `entryorguid` =23777;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(23777,0,0,1,25,0,100,0,0,0, 0, 0, 21 ,0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Proto-Drake Egg - On Spawn - Prevent Combat Movement"),
+(23777,0,1,0,61,0,100,0,0,0, 0, 0, 20 ,0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Proto-Drake Egg - Linked with Previous Event - Disable Combat"),
+(23777,0,2,3,8 ,0,100,0,46606,0, 0, 0, 12 ,24160, 1, 300000, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Proto-Drake Egg - On Spellhit Tillinghast's Plague Canister Dummy - Spawn Plagued Proto-Whelp"),
+(23777,0,3,0,61,0,100,0,0,0, 0, 0, 37 ,0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Proto-Drake Egg - Linked with Previous Event - Die"),
+(23777,0,4,0,6 ,1,100,0,0,0, 0, 0, 12 ,23688, 1, 300000, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Proto-Drake Egg - On Death - Spawn Proto-Whelp"),
+(23777,0,5,0,4, 0,100,1,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0, "Proto-Drake Egg - On Aggro - Set Phase 2");
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_22_03_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_22_03_world_sai.sql
new file mode 100644
index 00000000000..440739f9f82
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_22_03_world_sai.sql
@@ -0,0 +1,54 @@
+SET @MYSTIC := 430;
+SET @POACHER := 424;
+SET @SCOUT := 578;
+DELETE FROM `smart_scripts` WHERE entryorguid IN (@POACHER,@MYSTIC,@SCOUT);
+-- Redridge Poacher
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(@POACHER, 0, 0, 1, 1, 0, 100, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Redridge Poacher - Out Of Combat - Allow Combat Movement'),
+(@POACHER, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Redridge Poacher - Out Of Combat - Start Auto Attack'),
+(@POACHER, 0, 2, 0, 4, 0, 10, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Redridge Poacher - On Aggro - Say Line 0'),
+(@POACHER, 0, 3, 4, 4, 0, 100, 0, 0, 0, 0, 0, 11, 6660, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Redridge Poacher - On Aggro - Cast Shoot'),
+(@POACHER, 0, 4, 0, 61, 0, 100, 0, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Redridge Poacher - On Aggro - Increment Phase'),
+(@POACHER, 0, 5, 6, 9, 0, 100, 0, 5, 30, 3400, 3700, 11, 6660, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Redridge Poacher - At 5 - 30 Range - Cast Shoot'),
+(@POACHER, 0, 6, 0, 61, 0, 100, 0, 0, 0, 0, 0, 40, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Redridge Poacher - At 5 - 30 Range - Display ranged weapon'),
+(@POACHER, 0, 7, 0, 9, 0, 100, 0, 25, 80, 0, 0, 21, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Redridge Poacher - At 25 - 80 Range - Allow Combat Movement'),
+(@POACHER, 0, 8, 0, 9, 0, 100, 0, 0, 5, 0, 0, 21, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Redridge Poacher - At 0 - 5 Range - Allow Combat Movement'),
+(@POACHER, 0, 9, 10, 9, 0, 100, 0, 0, 0, 0, 0, 40, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Redridge Poacher - At 0 - 5 Range - Display melee weapon'),
+(@POACHER, 0, 10, 0, 61, 0, 100, 0, 0, 0, 0, 0, 20, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Redridge Poacher - At 0 - 5 Range - Start Auto Attack'),
+(@POACHER, 0, 11, 0, 9, 0, 100, 0, 5, 15, 0, 0, 21, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Redridge Poacher - At 5 - 15 Range - Allow Combat Movement'),
+(@POACHER, 0, 12, 13, 2, 0, 100, 1, 0, 15, 0, 0, 21, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Redridge Poacher - At 15% HP - Allow Combat Movement'),
+(@POACHER, 0, 13, 0, 61, 0, 100, 0, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Redridge Poacher - At 15% HP - Flee For Assist'),
+(@POACHER, 0, 14, 0, 7, 0, 100, 0, 0, 0, 0, 0, 40, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Redridge Poacher - On Evade - Display melee weapon');
+-- Redridge Mystic
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(@MYSTIC, 0, 0, 0, 1, 0, 100, 1, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Redridge Mystic - Out Of Combat - Allow Combat Movement'),
+(@MYSTIC, 0, 1, 0, 4, 0, 10, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Redridge Mystic - On Aggro - Say Line 0'),
+(@MYSTIC, 0, 2, 3, 4, 0, 100, 0, 0, 0, 0, 0, 11, 20802, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Redridge Mystic - On Aggro - Cast Lightning Bolt'),
+(@MYSTIC, 0, 3, 0, 61, 0, 100, 0, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Redridge Mystic - On Aggro - Increment Phase'),
+(@MYSTIC, 0, 4, 0, 9, 0, 100, 0, 0, 40, 600, 1800, 11, 20802, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Redridge Mystic - At 0 - 40 Range - Cast Lightning Bolt'),
+(@MYSTIC, 0, 5, 6, 3, 0, 100, 0, 0, 15, 0, 0, 21, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Redridge Mystic - At 15% Mana - Allow Combat Movement'),
+(@MYSTIC, 0, 6, 0, 61, 0, 100, 0, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Redridge Mystic - At 15% Mana - Increment Phase'),
+(@MYSTIC, 0, 7, 0, 9, 0, 100, 1, 35, 80, 0, 0, 21, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Redridge Mystic - At 35 - 80 Range - Allow Combat Movement'),
+(@MYSTIC, 0, 8, 0, 9, 0, 100, 1, 5, 15, 0, 0, 21, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Redridge Mystic - At 5 - 15 Range - Allow Combat Movement'),
+(@MYSTIC, 0, 9, 0, 9, 0, 100, 1, 0, 5, 0, 0, 21, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Redridge Mystic - At 0 - 5 Range - Allow Combat Movement'),
+(@MYSTIC, 0, 10, 0, 3, 0, 100, 0, 30, 100, 100, 100, 23, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Redridge Mystic - At 100% Mana - Increment Phase'),
+(@MYSTIC, 0, 11, 12, 14, 0, 100, 0, 0, 30, 35800, 35800, 11, 547, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Redridge Mystic - On Friendly Unit At 0 - 30% Health - Cast Healing Wave'),
+(@MYSTIC, 0, 12, 0, 61, 0, 100, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Redridge Mystic - On Friendly Unit At 0 - 30% Health - Say Line 1'),
+(@MYSTIC, 0, 13, 14, 2, 0, 100, 1, 0, 15, 0, 0, 21, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Redridge Mystic - At 15% HP - Allow Combat Movement'),
+(@MYSTIC, 0, 14, 0, 61, 0, 100, 0, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Redridge Mystic - At 15% HP - Flee For Assist');
+-- Murloc Scout
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(@SCOUT, 0, 0, 1, 1, 0, 100, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Murloc Scout - Out Of Combat - Allow Combat Movement'),
+(@SCOUT, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Murloc Scout - Out Of Combat - Start Auto Attack'),
+(@SCOUT, 0, 2, 3, 4, 0, 100, 0, 0, 0, 0, 0, 11, 6660, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Murloc Scout - On Aggro - Cast Shoot'),
+(@SCOUT, 0, 3, 0, 61, 0, 100, 0, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Murloc Scout - On Aggro - Increment Phase'),
+(@SCOUT, 0, 4, 5, 9, 0, 100, 0, 5, 30, 2600, 3700, 11, 6660, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Murloc Scout - At 5 - 30 Range - Cast Shoot'),
+(@SCOUT, 0, 5, 0, 61, 0, 100, 0, 0, 0, 0, 0, 40, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Murloc Scout - At 5 - 30 Range - Display ranged weapon'),
+(@SCOUT, 0, 6, 0, 9, 0, 100, 0, 25, 80, 0, 0, 21, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Murloc Scout - At 25 - 80 Range - Allow Combat Movement'),
+(@SCOUT, 0, 7, 8, 9, 0, 100, 0, 0, 5, 0, 0, 21, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Murloc Scout - At 0 - 5 Range - Allow Combat Movement'),
+(@SCOUT, 0, 8, 9, 61, 0, 100, 0, 0, 0, 0, 0, 40, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Murloc Scout - At 0 - 5 Range - Display melee weapon'),
+(@SCOUT, 0, 9, 0, 61, 0, 100, 0, 0, 0, 0, 0, 20, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Murloc Scout - At 0 - 5 Range - Start Auto Attack'),
+(@SCOUT, 0, 10, 0, 9, 0, 100, 0, 5, 15, 0, 0, 21, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Murloc Scout - At 5 - 15 Range - Allow Combat Movement'),
+(@SCOUT, 0, 11, 12, 2, 0, 100, 1, 0, 15, 0, 0, 21, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Murloc Scout - At 15% HP - Allow Combat Movement'),
+(@SCOUT, 0, 12, 0, 61, 0, 100, 0, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Murloc Scout - At 15% HP - Flee For Assist'),
+(@SCOUT, 0, 13, 0, 7, 0, 100, 0, 0, 0, 0, 0, 40, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Murloc Scout - On Evade - Display melee weapon');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_23_00_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_23_00_world_misc.sql
new file mode 100644
index 00000000000..b6b00ce7cf3
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_23_00_world_misc.sql
@@ -0,0 +1,96 @@
+SET @GUID := 62851;
+
+SET @TRIGGER := 4951;
+SET @ELM_BUNNY := 23837;
+SET @ELM_BUNNY_LARGE := 24110;
+SET @OACHANOA := 26648;
+SET @PEARL := 188422;
+
+UPDATE `gameobject_template` SET `AIName`='SmartGameObjectAI', `ScriptName`='' WHERE `entry`=@PEARL;
+UPDATE `creature_template` SET `speed_run`=2.14286, `faction_A`=190, `faction_H`=190, `unit_flags`=33536, `unit_flags2`=2080, `AIName`='SmartAI', `InhabitType`=4 WHERE `entry`=@OACHANOA;
+
+DELETE FROM `creature` WHERE `guid` BETWEEN @GUID+0 AND @GUID+3;
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`) VALUES
+(@GUID+0,@ELM_BUNNY,571,1,1,11686,0,2452.865,1722.222,61.8313,5.654867,300,0,0,42,0,0,0,0,0),
+(@GUID+1,@ELM_BUNNY_LARGE,571,1,1,11686,0,2427.382,1680.861,-0.05963766,2.356194,300,0,0,42,0,0,0,0,0),
+(@GUID+2,@ELM_BUNNY_LARGE,571,1,1,11686,0,2407.345,1733.472,7.560452,2.443461,300,0,0,42,0,0,0,0,0),
+(@GUID+3,@ELM_BUNNY_LARGE,571,1,1,11686,0,2436.226,1710.697,-0.01387666,5.183628,300,0,0,42,0,0,0,0,0);
+
+DELETE FROM `areatrigger_scripts` WHERE `entry`=@TRIGGER;
+INSERT INTO `areatrigger_scripts` (`entry`, `ScriptName`) VALUES
+(@TRIGGER,'SmartTrigger');
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=@TRIGGER AND `SourceId`=2;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=@PEARL AND `SourceId`=1;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(22,1,@PEARL,1,0,9,0,12032,0,0,0,0,'','SAI only activates if player is on quest Conversing With the Depths'),
+(22,1,@TRIGGER,2,0,9,0,12032,0,0,0,0,'','SAI only activates if player is on quest Conversing With the Depths'),
+(22,1,@TRIGGER,2,0,1,0,47098,0,0,0,0,'','SAI only activates if player has aura Oacha''noa''s Compulsion');
+
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (-(@GUID+0),-(@GUID+1),-(@GUID+2),-(@GUID+3),@OACHANOA) AND `source_type`=0;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@PEARL AND `source_type`=1;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@TRIGGER AND `source_type`=2;
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@OACHANOA*100,@OACHANOA*100+1,@PEARL*100) AND `source_type`=9;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(-(@GUID+0),0,0,0,38,0,100,0,0,1,0,0,11,38497,0,0,0,0,0,1,0,0,0,0,0,0,0, 'ELM General Purpose Bunny - On data 0 1 set - Spellcast Cyclone Water Visual'),
+(-(@GUID+0),0,1,0,38,0,100,0,0,2,0,0,28,38497,0,0,0,0,0,1,0,0,0,0,0,0,0, 'ELM General Purpose Bunny - On data 0 2 set - Remove aura Cyclone Water Visual'),
+(-(@GUID+1),0,0,0,38,0,100,0,0,1,0,0,11,47479,0,0,0,0,0,1,0,0,0,0,0,0,0, 'ELM General Purpose Bunny Large - On data 0 1 set - Spellcast Water Spout'),
+(-(@GUID+2),0,0,0,38,0,100,0,0,1,0,0,11,45849,0,0,0,0,0,1,0,0,0,0,0,0,0, 'ELM General Purpose Bunny Large - On data 0 1 set - Spellcast Camera Shake - Tremor'),
+(-(@GUID+3),0,0,0,38,0,100,0,0,1,0,0,11,47479,0,0,0,0,0,1,0,0,0,0,0,0,0, 'ELM General Purpose Bunny Large - On data 0 1 set - Spellcast Water Spout'),
+
+(@OACHANOA,0,0,1,11,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Oacha''noa - On Spawn - Set event phase 1'),
+(@OACHANOA,0,1,2,61,0,100,0,0,0,0,0,59,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Oacha''noa - On Spawn - Set run'),
+(@OACHANOA,0,2,0,61,0,100,0,0,0,0,0,69,1,0,0,0,0,0,8,0,0,0,2367.975,1712.07,43.56623,0, 'Oacha''noa - On Spawn - Move to position'),
+(@OACHANOA,0,3,0,34,1,100,0,0,1,0,0,80,@OACHANOA*100,2,0,0,0,0,1,0,0,0,0,0,0,0, 'Oacha''noa - On movement inform (phase 1) - Run script 0'),
+(@OACHANOA,0,4,0,52,1,100,0,3,@OACHANOA,0,0,1,4,10100,0,0,0,0,1,0,0,0,0,0,0,0, 'Oacha''noa - On text 3 over (phase 1) - Say line'),
+(@OACHANOA,0,5,6,52,1,100,0,4,@OACHANOA,0,0,1,9,0,0,0,0,0,12,1,0,0,0,0,0,0, 'Oacha''noa - On text 4 over (phase 1) - Say line'),
+(@OACHANOA,0,6,7,61,0,100,0,0,0,0,0,6,12032,0,0,0,0,0,12,1,0,0,0,0,0,0, 'Oacha''noa - On text 4 over (phase 1) - Fail quest'),
+(@OACHANOA,0,7,0,61,0,100,0,0,0,0,0,41,2000,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Oacha''noa - On text 4 over (phase 1) - Despawn after 2 seconds'),
+(@OACHANOA,0,8,9,38,1,100,0,0,1,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Oacha''noa - On data 0 1 set (phase 1) - Set event phase 0'),
+(@OACHANOA,0,9,0,61,0,100,0,0,0,0,0,80,@OACHANOA*100+1,2,0,0,0,0,1,0,0,0,0,0,0,0, 'Oacha''noa - On data 0 1 set (phase 1) - Run script 1'),
+
+(@TRIGGER,2,0,0,46,0,100,0,0,0,0,0,45,0,1,0,0,0,0,14,21195,@PEARL,0,0,0,0,0, 'On trigger - Set data 0 1 Pearl of the Depths'),
+
+(@PEARL,1,0,0,70,0,100,0,2,0,0,0,80,@PEARL*100,2,0,0,0,0,1,0,0,0,0,0,0,0, 'Pearl of the Depths - On state changed - Run script'),
+(@PEARL,1,1,0,38,0,100,0,0,1,0,0,45,0,1,0,0,0,0,19,@OACHANOA,100,0,0,0,0,0, 'Pearl of the Depths - On data 0 1 set - Set data 0 1 Oacha''noa'),
+
+(@OACHANOA*100,9,0,0,0,0,100,0,0,0,0,0,66,0,0,0,0,0,0,12,1,0,0,0,0,0,0, 'Oacha''noa script 0 - Turn to'),
+(@OACHANOA*100,9,1,0,0,0,100,0,0,0,0,0,45,0,1,0,0,0,0,10,@GUID+1,@ELM_BUNNY_LARGE,0,0,0,0,0, 'Oacha''noa script 0 - Set data 0 1 ELM General Purpose Bunny Large'),
+(@OACHANOA*100,9,2,0,0,0,100,0,0,0,0,0,45,0,1,0,0,0,0,10,@GUID+2,@ELM_BUNNY_LARGE,0,0,0,0,0, 'Oacha''noa script 0 - Set data 0 1 ELM General Purpose Bunny Large'),
+(@OACHANOA*100,9,3,0,0,0,100,0,0,0,0,0,45,0,1,0,0,0,0,10,@GUID+3,@ELM_BUNNY_LARGE,0,0,0,0,0, 'Oacha''noa script 0 - Set data 0 1 ELM General Purpose Bunny Large'),
+(@OACHANOA*100,9,4,0,0,0,100,0,1200,1200,0,0,1,0,0,0,0,0,0,12,1,0,0,0,0,0,0, 'Oacha''noa script 0 - Say line'),
+(@OACHANOA*100,9,5,0,0,0,100,0,8500,8500,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Oacha''noa script 0 - Say line'),
+(@OACHANOA*100,9,6,0,0,0,100,0,9700,9700,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Oacha''noa script 0 - Say line'),
+(@OACHANOA*100,9,7,0,0,0,100,0,0,0,0,0,11,47098,0,0,0,0,0,12,1,0,0,0,0,0,0, 'Oacha''noa script 0 - Spellcast Oacha''noa''s Compulsion'),
+(@OACHANOA*100,9,8,0,0,0,100,0,10900,10900,0,0,1,3,10000,0,0,0,0,1,0,0,0,0,0,0,0, 'Oacha''noa script 0 - Say line'),
+
+(@OACHANOA*100+1,9,0,0,0,0,100,0,0,0,0,0,15,12032,0,0,0,0,0,12,1,0,0,0,0,0,0, 'Oacha''noa script 1 - Complete quest'),
+(@OACHANOA*100+1,9,1,0,0,0,100,0,0,0,0,0,1,5,0,0,0,0,0,12,1,0,0,0,0,0,0, 'Oacha''noa script 1 - Say line'),
+(@OACHANOA*100+1,9,2,0,0,0,100,0,10600,10600,0,0,1,6,0,0,0,0,0,12,1,0,0,0,0,0,0, 'Oacha''noa script 1 - Say line'),
+(@OACHANOA*100+1,9,3,0,0,0,100,0,10800,10800,0,0,1,7,0,0,0,0,0,12,1,0,0,0,0,0,0, 'Oacha''noa script 1 - Say line'),
+(@OACHANOA*100+1,9,4,0,0,0,100,0,10700,10700,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,3.281219, 'Oacha''noa script 1 - Turn to'),
+(@OACHANOA*100+1,9,5,0,0,0,100,0,200,200,0,0,1,8,0,0,0,0,0,12,1,0,0,0,0,0,0, 'Oacha''noa script 1 - Say line'),
+(@OACHANOA*100+1,9,6,0,0,0,100,0,1000,1000,0,0,5,374,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Oacha''noa script 1 - Play emote'),
+(@OACHANOA*100+1,9,7,0,0,0,100,0,0,0,0,0,4,11561,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Oacha''noa script 1 - Play sound'),
+(@OACHANOA*100+1,9,8,0,0,0,100,0,2300,2300,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Oacha''noa script 1 - Despawn'),
+
+(@PEARL*100,9,0,0,0,0,100,0,0,0,0,0,64,1,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Pearl of the Depths script - Store targetlist'),
+(@PEARL*100,9,1,0,0,0,100,0,0,0,0,0,99,0,2,0,0,0,0,1,0,0,0,0,0,0,0, 'Pearl of the Depths script - Set state'),
+(@PEARL*100,9,2,0,0,0,100,0,0,0,0,0,45,0,1,0,0,0,0,10,@GUID+0,@ELM_BUNNY,0,0,0,0,0, 'Pearl of the Depths script - Set data 0 1 ELM General Purpose Bunny'),
+(@PEARL*100,9,3,0,0,0,100,0,20000,20000,0,0,45,0,2,0,0,0,0,10,@GUID+0,@ELM_BUNNY,0,0,0,0,0, 'Pearl of the Depths script - Set data 0 2 ELM General Purpose Bunny'),
+(@PEARL*100,9,4,0,0,0,100,0,0,0,0,0,12,@OACHANOA,8,0,0,0,0,8,0,0,0,2367.975,1712.07,0.232847,0, 'Pearl of the Depths script - Summon Oacha''noa'),
+(@PEARL*100,9,5,0,0,0,100,0,1000,1000,0,0,100,1,0,0,0,0,0,19,@OACHANOA,100,0,0,0,0,0, 'Pearl of the Depths script - Send targetlist'),
+(@PEARL*100,9,6,0,0,0,100,0,74000,74000,0,0,99,3,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Pearl of the Depths script - Set state');
+
+DELETE FROM `creature_text` WHERE `entry`=@OACHANOA;
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@OACHANOA,0,0,'Little $N, why do you call me forth? Are you working with the trolls of this land? Have you come to kill me and take my power as your own?',14,0,100,33,0,11557,'Oacha''noa'),
+(@OACHANOA,1,0,'I sense uncertainty in you, and I do not trust it whether you are with them, or not. If you wish my augury for the Kalu''ak, you will have to prove yourself first.',14,0,100,33,0,11557,'Oacha''noa'),
+(@OACHANOA,2,0,'I will lay a mild compulsion upon you. Jump into the depths before me so that you put yourself into my element and thereby display your submission.',14,0,100,33,0,11557,'Oacha''noa'),
+(@OACHANOA,3,0,'Though you are compelled, the choice, and the last step before you leap, are yours. You have twenty more seconds to decide.',14,0,100,33,0,11557,'Oacha''noa'),
+(@OACHANOA,4,0,'I''m rather curious as to what will happen, should you ignore this and NOT jump into the water.',14,0,100,33,0,11557,'Oacha''noa'),
+(@OACHANOA,5,0,'Well done, $N. Your display of respect is duly noted. Now, I have information for you that you must convey to the Kalu''ak.',14,0,100,33,0,11557,'Oacha''noa'),
+(@OACHANOA,6,0,'Simply put, you must tell the tuskarr that they cannot run. If they do so, their spirits will be destroyed by the evil rising within Northrend.',15,0,100,0,0,0,'Oacha''noa'),
+(@OACHANOA,7,0,'Tell the mystic that his people are to stand and fight alongside the Horde and Alliance against the forces of Malygos and the Lich King.',15,0,100,0,0,0,'Oacha''noa'),
+(@OACHANOA,8,0,'Now swim back with the knowledge I have granted you. Do what you can for them, $r.',15,0,100,0,0,0,'Oacha''noa'),
+(@OACHANOA,9,0,'Very well, $N, you have failed to act. The prophecy is not yours to learn. Do not call upon me again until you have found your backbone.',14,0,100,33,0,11557,'Oacha''noa');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_23_01_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_23_01_world_misc.sql
new file mode 100644
index 00000000000..143bc3410c6
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_23_01_world_misc.sql
@@ -0,0 +1,39 @@
+SET @NARVIR := 30299;
+SET @HEART := 192181;
+
+UPDATE `gameobject_template` SET `AIName`='SmartGameObjectAI' WHERE `entry`=@HEART;
+UPDATE `creature_template` SET `speed_run`=0.99206, `faction_H`=1954, `faction_A`=1954, `unit_flags`=768, `AIName`='SmartAI' WHERE `entry`=@NARVIR;
+
+DELETE FROM `creature_equip_template` WHERE `entry`=@NARVIR;
+INSERT INTO `creature_equip_template` (`entry`,`id`,`itemEntry1`,`itemEntry2`,`itemEntry3`) VALUES
+(@NARVIR,1,35727,0,0);
+
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@NARVIR AND `source_type`=0;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@HEART AND `source_type`=1;
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@NARVIR*100,@HEART*100) AND `source_type`=9;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@NARVIR,0,0,0,11,0,100,0,0,0,0,0,80,@NARVIR*100,2,0,0,0,0,1,0,0,0,0,0,0,0, 'Overseer Narvir - On spawn - Run script'),
+(@NARVIR,0,1,2,8,0,100,0,40163,0,0,0,33,@NARVIR,0,0,0,0,0,12,1,0,0,0,0,0,0, 'Overseer Narvir - On spellhit Teleport - Quest credit'),
+(@NARVIR,0,2,0,61,0,100,0,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Overseer Narvir - On spellhit Teleport - Despawn'),
+
+(@HEART,1,0,0,70,0,100,0,2,0,0,0,80,@HEART*100,2,0,0,0,0,1,0,0,0,0,0,0,0, 'The Heart of the Storm - On state changed - Run script'),
+
+(@NARVIR*100,9,0,0,0,0,100,0,20,20,0,0,11,56485,0,0,0,0,0,12,1,0,0,0,0,0,0, 'Overseer Narvir script - Spellcast The Storm''s Fury'),
+(@NARVIR*100,9,1,0,0,0,100,0,500,500,0,0,69,0,0,0,0,0,0,8,0,0,0,7312.406,-726.3165,791.6095,0, 'Overseer Narvir script - Move to position'),
+(@NARVIR*100,9,2,0,0,0,100,0,6500,6500,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,1.919862, 'Overseer Narvir script - Turn to'),
+(@NARVIR*100,9,3,0,0,0,100,0,1500,1500,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Overseer Narvir script - Say line'),
+(@NARVIR*100,9,4,0,0,0,100,0,6000,6000,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Overseer Narvir script - Say line'),
+(@NARVIR*100,9,5,0,0,0,100,0,3000,3000,0,0,5,274,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Overseer Narvir script - Play emote'),
+(@NARVIR*100,9,6,0,0,0,100,0,3000,3000,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,3.385939, 'Overseer Narvir script - Turn to'),
+(@NARVIR*100,9,7,0,0,0,100,0,500,500,0,0,17,69,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Overseer Narvir script - Play emotestate'),
+(@NARVIR*100,9,8,0,0,0,100,0,3500,3500,0,0,17,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Overseer Narvir script - Stop emotestate'),
+(@NARVIR*100,9,9,0,0,0,100,0,1500,1500,0,0,11,40163,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Overseer Narvir script - Spellcast Teleport'),
+
+(@HEART*100,9,0,0,0,0,100,0,0,0,0,0,64,1,0,0,0,0,0,7,0,0,0,0,0,0,0, 'The Heart of the Storm script - Store targetlist'),
+(@HEART*100,9,1,0,0,0,100,0,0,0,0,0,12,@NARVIR,8,0,0,0,0,8,0,0,0,7313.231,-711.5209,791.6917,5.61996, 'The Heart of the Storm script - Summon Overseer Narvir'),
+(@HEART*100,9,2,0,0,0,100,0,10,10,0,0,100,1,0,0,0,0,0,19,@NARVIR,50,0,0,0,0,0, 'The Heart of the Storm script - Send targetlist to Overseer Narvir');
+
+DELETE FROM `creature_text` WHERE `entry`=@NARVIR;
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@NARVIR,0,0,'You didn''t think that I was going to let you walk in here and take the Heart of the Storm, did you?',12,0,100,6,0,0,'Overseer Narvir'),
+(@NARVIR,1,0,'You may have killed Valduran, but that will not stop me from completing the colossus.',12,0,100,1,0,0,'Overseer Narvir');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_24_00_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_24_00_world_misc.sql
new file mode 100644
index 00000000000..4506dcb1cd3
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_24_00_world_misc.sql
@@ -0,0 +1,298 @@
+-- Halls Of Reflexion WIP
+
+DELETE FROM `creature` WHERE `guid` IN (202308,202294,202301,202293);
+-- extra spawned Uther -- 202294
+-- extra LK spawn -- 202301
+-- Loralen -- 202293
+-- Lady Jaina Proudmoore -- 202308
+INSERT INTO `creature` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`) VALUES
+(202308,38112,668,3,1,0,0,5276.583,2037.45,709.4025,5.532694,604800,0,0,0,0,0,0,0,0),
+(202294,38113,668,3,1,0,0,5342.232,1975.696,709.4025,2.391101,604800,0,0,0,0,0,0,0,0),
+(202301,36723,668,3,2,0,0,5415.538,2117.842,707.7781,3.944444,604800,0,0,0,0,0,0,0,0);
+-- Lady Jaina Proudmoore
+UPDATE `creature_template` SET `ScriptName`='npc_jaina_or_sylvanas_hor' WHERE `entry`=37221;
+-- Lady Sylvanas Windrunner
+UPDATE `creature_template` SET `ScriptName`='npc_jaina_or_sylvanas_hor' WHERE `entry`=37223;
+-- Frostmourne Altar Bunny (Quel'Delar)
+UPDATE `creature_template` SET `InhabitType`=4,`flags_extra`=128 WHERE `entry`=37704;
+-- Frostsworn General
+UPDATE `creature_template` SET `ScriptName`='npc_frostworn_general' WHERE `entry`=36723;
+UPDATE `creature_template` SET `faction_A`=16,`faction_H`=16 WHERE `entry`=37720; -- for hc
+-- Spiritual Reflection
+UPDATE `creature_template` SET /*`modelid1`=57,*/`ScriptName`='npc_spiritual_reflection' WHERE `entry`=37068;
+-- Falric and Marwyn bind players to instance on heroic
+UPDATE `creature_template` SET `flags_extra`=1 WHERE `entry` IN (38599,38603);
+
+DELETE FROM `areatrigger_scripts` WHERE `entry` IN (5697,5632);
+INSERT INTO `areatrigger_scripts` VALUES
+-- AreaTrigger for waves restarter
+(5697,'at_hor_waves_restarter'),
+-- AreaTrigger for intro start
+(5632,'at_hor_intro_start');
+
+DELETE FROM `creature_text` WHERE (`entry`=37226 AND `groupid` IN (3,4)) OR `entry`=36723 OR `entry`=36954 OR `entry`=36955 OR `entry`=37554 OR `entry`=30344 OR `entry`=30824;
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+-- The Lich King (at start)
+(37226,3,0,'Foolish girl. You seek that, which I killed long ago. He is nearly a ghost now. A fate ago in my mind.',14,0,100,0,0,17229,'Lich King SAY_LK_JAINA_INTRO_END'),
+(37226,4,0,'I will not make the same mistake again. This time there will be no escape. You fail to serve me in undead. Now, all that remains for you is oblivion!',14,0,100,0,0,17228,'Lich King SAY_LK_SYLVANAS_INTRO_END'),
+-- Frostsworn General
+(36723,0,0,'You are not worthy to face the Lich King!',14,0,100,0,0,16921,'general SAY_AGGRO'),
+(36723,1,0,'Master, I have failed...',14,0,100,0,0,16922,'general SAY_DEATH'),
+-- The Lich King (at chase event)
+(36954,0,0,'Your allies have arrived, Jaina, just as you promised. You will all become powerful agents of the Scourge.',14,0,100,0,0,17212, 'Lich King SAY_LICH_KING_AGGRO_A'),
+(36954,1,0,'I will not make the same mistake again, Sylvanas. This time there will be no escape. You will all serve me in death!',14,0,100,0,0,17213,'Lich King SAY_LICH_KING_AGGRO_H'),
+(36954,2,0,'Succumb to the chill of the grave.',14,0,100,0,0,17218,'Lich King SAY_LICH_KING_WALL_02'),
+(36954,3,0,'Another dead end.',14,0,100,0,0,17219,'Lich King SAY_LICH_KING_WALL_03'),
+(36954,4,0,'How long can you fight it?',14,0,100,0,0,17220,'Lich King SAY_LICH_KING_WALL_04'),
+(36954,5,0,'There is no escape!', 14,0,100,0,0,17217,'Lich King SAY_LICH_KING_WALL_01'),
+(36954,6,0,'Rise minions, do not left them us!',14,0,100,0,0,17216,'Lich King SAY_LICH_KING_GNOUL'),
+(36954,7,0,'Minions sees them. Bring their corpses back to me!',14,0,100,0,0,17222,'Lich King SAY_LICH_KING_ABON'),
+(36954,8,0,'Death''s cold embrace awaits.',14,0,100,0,0,17221,'Lich King SAY_LICH_KING_WINTER'),
+(36954,9,0,'Nowhere to run! You''re mine now...',14,0,100,0,0,17223,'Lich King SAY_LICH_KING_END_DUN'),
+(36954,10,0,'All is lost!',14,0,100,0,0,17215,'Lich King SAY_LICH_KING_WIN'),
+-- Lady Jaina Proudmoore (at chase event)
+(36955,0,0,'He is too powerful, we must leave this place at once! My magic will hold him in place for only a short time! Come quickly, heroes!',14,0,100,1,0,16644,'Jaina SAY_JAINA_AGGRO'),
+(36955,1,0,'I will destroy this barrier. You must hold the undead back!',14,0,100,0,0,16607,'Jaina SAY_JAINA_WALL_01'),
+(36955,2,0,'Another ice wall! Keep the undead from interrupting my incantation so that I may bring this wall down!',14,0,100,0,0,16608,'Jaina SAY_JAINA_WALL_02'),
+(36955,3,0,'He is toying with us! I will show him what happens to ice when it meets fire!',14,0,100,0,0,16609,'Jaina SAY_JAINA_WALL_03'),
+(36955,4,0,'Your barriers can''t hold us back much longer, monster. I will shatter them all!',14,0,100,0,0,16610,'Jaina SAY_JAINA_WALL_04'),
+(36955,5,0,'There''s an opening up ahead. GO NOW!', 14,0,100,1,0,16645,'Jaina SAY_JAINA_ESCAPE_01'),
+(36955,6,0,'We''re almost there... Don''t give up!',14,0,100,0,0,16646,'Jaina SAY_JAINA_ESCAPE_02'),
+(36955,7,0,'It... It''s a dead end. We have no choice but to fight. Steel yourself heroes, for this is our last stand!',14,0,100,1,0,16647,'Jaina SAY_JAINA_TRAP'),
+(36955,8,0,'Forgive me heroes, I should have listened to Uther. I ... I had to see for myself, to look into his eyes one last time ... I am sorry.',14,0,100,1,0,16648,'Jaina SAY_JAINA_FINAL_2'),
+(36955,9,0,'We now know what must be done. I will deliver this news to King Varian and Highlord Fordring.',14,0,100,1,0,16649,'Jaina SAY_JAINA_FINAL_3'),
+-- Lady Sylvanas Windrunner (at chase event)
+(37554,0,0,'He''s too powerful! Heroes, quickly, come to me! We must leave this place immediately! I will do what I can do hold him in place while we flee.',14,0,100,0,0,17058,'Sylvanas SAY_SYLVANA_AGGRO'),
+(37554,1,0,'No wall can hold the Banshee Queen! Keep the undead at bay, heroes! I will tear this barrier down!',14,0,100,0,0,17029,'Sylvanas SAY_SYLVANA_WALL_01'),
+(37554,2,0,'Another barrier? Stand strong, champions! I will bring the wall down!',14,0,100,0,0,17030,'Sylvanas SAY_SYLVANA_WALL_02'),
+(37554,3,0,'I grow tired of these games, Arthas! Your walls can\'t stop me!',14,0,100,0,0,17031,'Sylvanas SAY_SYLVANA_WALL_03'),
+(37554,4,0,'You won''t impede our escape, fiend. Keep the undead off me while I bring this barrier down!',14,0,100,0,0,17032,'Sylvanas SAY_SYLVANA_WALL_04'),
+(37554,5,0,'There''s an opening up ahead. GO NOW!',14,0,100,1,0,17059,'Sylvanas SAY_SYLVANA_ESCAPE_01'),
+(37554,6,0,'We''re almost there! Don''t give up!',14,0,100,0,0,17060,'Sylvanas SAY_SYLVANA_ESCAPE_02'),
+(37554,7,0,'BLASTED DEAD END! So this is how it ends. Prepare yourselves, heroes, for today we make our final stand!',14,0,100,5,0,17061,'Sylvanas SAY_SYLVANA_TRAP'),
+(37554,8,0,'We are safe... for now. His strength has increased tenfold since our last battle. It will take a mighty army to destroy the Lich King. An army greater than even the Horde can rouse.',14,0,100,1,0,17062,'Sylvanas SAY_SYLVANA_FINAL_2'),
+-- High Captain Justin Bartlett
+(30344,0,0,'Fire, fire!',14,0,100,0,0,16721,'Bartlett SAY_BARTLETT_FIRE'),
+(30344,1,0,'Quickly, climb aboard! We mustn''t tarry here. There''s no telling when this whole mountainside will collapse!',14,0,100,0,0,16722,'Bartlett SAY_BARTLETT_FINAL_1'),
+-- Sky-Reaver Korm Blackscar
+(30824,0,0,'FIRE! FIRE!',14,0,100,0,0,0,'Korm SAY_KORM_FIRE'),
+(30824,1,0,'Quickly, climb aboard! We mustn''t tarry here. There''s no telling when this whole mountainside will collapse!',14,0,100,0,0,0,'Korm SAY_KORM_FINAL_1');
+
+/*
+# 3+4+4+5 +4+4+5+5 = 16+18
+# if 1st boss is dead and we wipe counter starts at wave 6
+SET @CGUID := 400000;
+DELETE FROM `creature` WHERE `guid` BETWEEN @CGUID+0 AND @CGUID+33;
+INSERT INTO `creature` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `MovementType`) VALUES
+-- pos 1
+(@CGUID+4, 38177, 668, 3, 1, 5277.365, 1993.229, 707.7781, 0.4014257, 7200, 0, 0),
+(@CGUID+31, 38172, 668, 3, 1, 5280.513, 1997.842, 707.7781, 0.296706, 7200, 0, 0),
+(@CGUID+5, 38175, 668, 3, 1, 5275.479, 2001.135, 707.7781, 0.1745329, 7200, 0, 0),
+(@CGUID+19, 38172, 668, 3, 1, 5279.649, 2004.656, 707.7781, 0.06981317, 7200, 0, 0),
+(@CGUID+10, 38172, 668, 3, 1, 5275.076, 2008.724, 707.7781, 6.213372, 7200, 0, 0),
+(@CGUID+25, 38176, 668, 3, 1, 5280.632, 2012.156, 707.7781, 6.056293, 7200, 0, 0),
+(@CGUID+15, 38175, 668, 3, 1, 5277.739, 2016.882, 707.7781, 5.969026, 7200, 0, 0),
+(@CGUID+29, 38176, 668, 3, 1, 5282.897, 2019.597, 707.7781, 5.88176, 7200, 0, 0),
+-- pos 2
+(@CGUID+1, 38172, 668, 3, 1, 5295.885, 2040.342, 707.7781, 5.078908, 7200, 0, 0),
+(@CGUID+33, 38176, 668, 3, 1, 5299.25, 2035.998, 707.7781, 5.026548, 7200, 0, 0),
+(@CGUID+6, 38172, 668, 3, 1, 5302.448, 2042.222, 707.7781, 4.904375, 7200, 0, 0),
+(@CGUID+20, 38173, 668, 3, 1, 5306.057, 2037.002, 707.7781, 4.817109, 7200, 0, 0),
+(@CGUID+0, 38175, 668, 3, 1, 5309.577, 2042.668, 707.7781, 4.694936, 7200, 0, 0),
+(@CGUID+23, 38175, 668, 3, 1, 5312.752, 2037.122, 707.7781, 4.590216, 7200, 0, 0),
+(@CGUID+11, 38173, 668, 3, 1, 5316.701, 2041.55, 707.7781, 4.502949, 7200, 0, 0),
+(@CGUID+30, 38177, 668, 3, 1, 5318.704, 2036.108, 707.7781, 4.223697, 7200, 0, 0),
+(@CGUID+16, 38173, 668, 3, 1, 5322.964, 2040.288, 707.7781, 4.34587, 7200, 0, 0),
+-- pos 3
+(@CGUID+28, 38173, 668, 3, 1, 5336.599, 2017.278, 707.7781, 3.473205, 7200, 0, 0),
+(@CGUID+17, 38176, 668, 3, 1, 5343.467, 2015.951, 707.7781, 3.490659, 7200, 0, 0),
+(@CGUID+32, 38173, 668, 3, 1, 5337.833, 2010.057, 707.7781, 3.228859, 7200, 0, 0),
+(@CGUID+12, 38173, 668, 3, 1, 5344.15, 2007.168, 707.7781, 3.159046, 7200, 0, 0),
+(@CGUID+21, 38176, 668, 3, 1, 5337.865, 2003.403, 707.7781, 2.984513, 7200, 0, 0),
+(@CGUID+7, 38177, 668, 3, 1, 5343.293, 1999.384, 707.7781, 2.9147, 7200, 0, 0),
+(@CGUID+24, 38173, 668, 3, 1, 5335.724, 1996.859, 707.7781, 2.740167, 7200, 0, 0),
+(@CGUID+2, 38173, 668, 3, 1, 5340.836, 1992.458, 707.7781, 2.75762, 7200, 0, 0),
+-- pos 4
+(@CGUID+3, 38176, 668, 3, 1, 5325.072, 1977.597, 707.7781, 2.076942, 7200, 0, 0),
+(@CGUID+8, 38176, 668, 3, 1, 5295.635, 1973.757, 707.7781, 1.186824, 7200, 0, 0),
+(@CGUID+9, 38177, 668, 3, 1, 5311.031, 1972.229, 707.7781, 1.64061, 7200, 0, 0),
+(@CGUID+13, 38176, 668, 3, 1, 5319.158, 1973.998, 707.7781, 1.919862, 7200, 0, 0),
+(@CGUID+14, 38177, 668, 3, 1, 5302.247, 1972.415, 707.7781, 1.37881, 7200, 0, 0),
+(@CGUID+18, 38172, 668, 3, 1, 5313.82, 1978.146, 707.7781, 1.745329, 7200, 0, 0),
+(@CGUID+22, 38177, 668, 3, 1, 5299.434, 1979.009, 707.7781, 1.239184, 7200, 0, 0),
+(@CGUID+26, 38172, 668, 3, 1, 5320.369, 1980.125, 707.7781, 2.007129, 7200, 0, 0),
+(@CGUID+27, 38172, 668, 3, 1, 5306.572, 1977.474, 707.7781, 1.500983, 7200, 0, 0);
+*/
+
+/*
+-- Uther the Lightbringer missing emotes
+UPDATE `creature_text` SET `emote`=5 WHERE `entry`=37225 AND `groupid` IN (0,4,8,15) AND `id`=0;
+UPDATE `creature_text` SET `emote`=1 WHERE `entry`=37225 AND `groupid` IN (1,2,3,5,6,7,9,10,11,12,13,14) AND `id`=0;
+-- Falric missing emotes
+UPDATE `creature_text` SET `emote`=2 WHERE `entry`=38112 AND `groupid`=5 AND `id`=0;
+-- Marwyn missing emotes
+UPDATE `creature_text` SET `emote`=2 WHERE `entry`=38113 AND `groupid`=4 AND `id`=0;
+UPDATE `creature_text` SET `emote`=397 WHERE `entry`=38113 AND `groupid`=0 AND `id`=0;
+
+-- Falric and Marwyn bind players to instance on heroic
+UPDATE `creature_template` SET `flags_extra`=1 WHERE `entry` IN (38599,38603);
+-- Frostsworn General
+UPDATE `creature_template` SET `ScriptName`='npc_frostworn_general' WHERE `entry`=36723;
+UPDATE `creature_template` SET `faction_A`=16,`faction_H`=16 WHERE `entry`=37720; -- for hc
+-- Spiritual Reflection
+-- UPDATE `creature_template` SET `modelid1`=57 WHERE `entry`=37068;
+UPDATE `creature_template` SET `ScriptName`='npc_spiritual_reflection' WHERE `entry`=37068;
+-- The Lich King (at chase event)
+UPDATE `creature_template` SET `ScriptName`='boss_lich_king_hor' WHERE `entry`=36954;
+-- Lady Jaina Proudmoore (at chase event)
+UPDATE `creature_template` SET `faction_A`=1770,`faction_H`=1770,`unit_flags`=64|256|32768,`ScriptName`='npc_jaina_and_sylvana_hor_part2' WHERE `entry`=36955;
+-- Lady Sylvanas Windrunner (at chase event)
+UPDATE `creature_template` SET `ScriptName`='npc_jaina_and_sylvana_hor_part2' WHERE `entry`=37554;
+-- High Captain Justin Bartlett
+#UPDATE `creature_template` SET `npcflag`=3 WHERE `entry`=30344;
+-- Sky-Reaver Korm Blackscar
+#UPDATE `creature_template` SET `npcflag`=3 WHERE `entry`=30824;
+-- Raging Ghoul
+UPDATE `creature_template` SET `AIName`='',`Scriptname`='npc_raging_ghoul' WHERE `entry`=36940;
+-- Risen Witch Doctor
+UPDATE `creature_template` SET `AIName`='',`Scriptname`='npc_risen_witch_doctor' WHERE `entry`=36941;
+-- Lumbering Abomination
+UPDATE `creature_template` SET `AIName`='',`Scriptname`='npc_lumbering_abomination' WHERE `entry`=37069;
+-- Frostmourne Altar Bunny (Quel''Delar)
+UPDATE `creature_template` SET `InhabitType`=4,`flags_extra`=128 WHERE `entry`=37704;
+
+DELETE FROM `conditions` WHERE `SourceEntry`=70063 AND `SourceTypeOrReferenceId`=13;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(13,1,70063,0,0,32,0,144,0,0,0,0,'','Fury of Frostmourne - target players');
+
+-- AreaTrigger for waves restarter
+DELETE FROM `areatrigger_scripts` WHERE `entry`=5697;
+INSERT INTO `areatrigger_scripts` VALUES
+(5697,'at_hor_waves_restarter');
+
+SET @GUID_CREATURE := 400000;
+DELETE FROM `creature` WHERE `map`=668 AND `guid` BETWEEN @GUID_CREATURE+0 AND @GUID_CREATURE+3;
+INSERT INTO `creature` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`) VALUES
+(@GUID_CREATURE+0,37704,668,3,1,0,0,5309.135,2006.21,715.7825,3.961897,604800,0,0,0,0,0,0,0,0),
+(@GUID_CREATURE+1,38112,668,3,1,0,0,5276.583,2037.45,709.4025,5.532694,604800,0,0,0,0,0,0,0,0),
+(@GUID_CREATURE+2,38113,668,3,1,0,0,5342.232,1975.696,709.4025,2.391101,604800,0,0,0,0,0,0,0,0),
+(@GUID_CREATURE+3,36723,668,3,1,0,0,5415.538,2117.842,707.7781,3.944444,604800,0,0,0,0,0,0,0,0);
+
+DELETE FROM `script_waypoint` WHERE `entry` IN(36955,36954,37554);
+INSERT INTO `script_waypoint` VALUES
+-- Jaina
+(36955,0,5587.682,2228.586,733.011,0,'WP1'),
+(36955,1,5600.715,2209.058,731.618,0,'WP2'),
+(36955,2,5606.417,2193.029,731.129,0,'WP3'),
+(36955,3,5598.562,2167.806,730.918,0,'WP4 - Summon IceWall 01'),
+(36955,4,5556.436,2099.827,731.827,0,'WP5 - Spell Channel'),
+(36955,5,5543.498,2071.234,731.702,0,'WP6'),
+(36955,6,5528.969,2036.121,731.407,0,'WP7'),
+(36955,7,5512.045,1996.702,735.122,0,'WP8'),
+(36955,8,5504.490,1988.789,735.886,0,'WP9 - Spell Channel'),
+(36955,9,5489.645,1966.389,737.653,0,'WP10'),
+(36955,10,5475.517,1943.176,741.146,0,'WP11'),
+(36955,11,5466.930,1926.049,743.536,0,'WP12'),
+(36955,12,5445.157,1894.955,748.757,0,'WP13 - Spell Channel'),
+(36955,13,5425.907,1869.708,753.237,0,'WP14'),
+(36955,14,5405.118,1833.937,757.486,0,'WP15'),
+(36955,15,5370.324,1799.375,761.007,0,'WP16'),
+(36955,16,5335.422,1766.951,767.635,0,'WP17 - Spell Channel'),
+(36955,17,5311.438,1739.390,774.165,0,'WP18'),
+(36955,18,5283.589,1703.755,784.176,0,'WP19'),
+(36955,19,5260.400,1677.775,784.301,3000,'WP20'),
+(36955,20,5262.439,1680.410,784.294,0,'WP21'),
+(36955,21,5260.400,1677.775,784.301,0,'WP22'),
+-- Sylvana
+(37554,0,5587.682,2228.586,733.011,0,'WP1'),
+(37554,1,5600.715,2209.058,731.618,0,'WP2'),
+(37554,2,5606.417,2193.029,731.129,0,'WP3'),
+(37554,3,5598.562,2167.806,730.918,0,'WP4 - Summon IceWall 01'),
+(37554,4,5556.436,2099.827,731.827,0,'WP5 - Spell Channel'),
+(37554,5,5543.498,2071.234,731.702,0,'WP6'),
+(37554,6,5528.969,2036.121,731.407,0,'WP7'),
+(37554,7,5512.045,1996.702,735.122,0,'WP8'),
+(37554,8,5504.490,1988.789,735.886,0,'WP9 - Spell Channel'),
+(37554,9,5489.645,1966.389,737.653,0,'WP10'),
+(37554,10,5475.517,1943.176,741.146,0,'WP11'),
+(37554,11,5466.930,1926.049,743.536,0,'WP12'),
+(37554,12,5445.157,1894.955,748.757,0,'WP13 - Spell Channel'),
+(37554,13,5425.907,1869.708,753.237,0,'WP14'),
+(37554,14,5405.118,1833.937,757.486,0,'WP15'),
+(37554,15,5370.324,1799.375,761.007,0,'WP16'),
+(37554,16,5335.422,1766.951,767.635,0,'WP17 - Spell Channel'),
+(37554,17,5311.438,1739.390,774.165,0,'WP18'),
+(37554,18,5283.589,1703.755,784.176,0,'WP19'),
+(37554,19,5260.400,1677.775,784.301,3000,'WP20'),
+(37554,20,5262.439,1680.410,784.294,0,'WP21'),
+(37554,21,5260.400,1677.775,784.301,0,'WP22'),
+-- Lich King
+(36954,1,5577.19,2236,733.012,0,'HoR WP LichKing'),
+(36954,2,5580.57,2232.22,733.012,0,'HoR WP LichKing'),
+(36954,3,5586.67,2225.54,733.012,0,'HoR WP LichKing'),
+(36954,4,5590.45,2221.41,733.012,0,'HoR WP LichKing'),
+(36954,5,5595.75,2215.62,732.101,0,'HoR WP LichKing'),
+(36954,6,5601.21,2206.49,731.54,0,'HoR WP LichKing'),
+(36954,7,5605.01,2197.9,731.667,0,'HoR WP LichKing'),
+(36954,8,5606.55,2191.39,730.977,0,'HoR WP LichKing'),
+(36954,9,5604.68,2186.11,730.998,0,'HoR WP LichKing'),
+(36954,10,5602.26,2179.9,730.967,0,'HoR WP LichKing'),
+(36954,11,5600.06,2174.38,730.924,0,'HoR WP LichKing'),
+(36954,12,5597.29,2166.81,730.924,0,'HoR WP LichKing'),
+(36954,13,5596.25,2160.36,730.931,0,'HoR WP LichKing'),
+(36954,14,5591.79,2152.87,731.008,0,'HoR WP LichKing'),
+(36954,15,5585.47,2146.63,731.109,0,'HoR WP LichKing'),
+(36954,16,5579.1,2140.34,731.18,0,'HoR WP LichKing'),
+(36954,17,5572.56,2134.21,731.092,0,'HoR WP LichKing'),
+(36954,18,5564.08,2126.53,730.816,0,'HoR WP LichKing'),
+(36954,19,5559.04,2117.64,730.812,0,'HoR WP LichKing'),
+(36954,20,5555.77,2111.88,730.995,0,'HoR WP LichKing'),
+(36954,21,5550.82,2103.14,731.123,0,'HoR WP LichKing'),
+(36954,22,5546.02,2094.68,731.16,0,'HoR WP LichKing'),
+(36954,23,5541.53,2084.42,730.999,0,'HoR WP LichKing'),
+(36954,24,5537.5,2075.18,730.901,0,'HoR WP LichKing'),
+(36954,25,5533.76,2063.84,730.87,0,'HoR WP LichKing'),
+(36954,26,5530.97,2052.98,730.981,0,'HoR WP LichKing'),
+(36954,27,5526.75,2041.73,731.193,0,'HoR WP LichKing'),
+(36954,28,5522.88,2031.65,731.7,0,'HoR WP LichKing'),
+(36954,29,5521.01,2023.02,732.396,0,'HoR WP LichKing'),
+(36954,30,5516.55,2015.36,733.12,0,'HoR WP LichKing'),
+(36954,31,5513.06,2007.33,733.99,0,'HoR WP LichKing'),
+(36954,32,5510.43,1997.9,735.016,0,'HoR WP LichKing'),
+(36954,33,5504.53,1990.39,735.748,0,'HoR WP LichKing'),
+(36954,34,5499.34,1983.78,736.29,0,'HoR WP LichKing'),
+(36954,35,5493.11,1975.86,736.852,0,'HoR WP LichKing'),
+(36954,36,5487.58,1968.81,737.394,0,'HoR WP LichKing'),
+(36954,37,5483.12,1961.78,738.06,0,'HoR WP LichKing'),
+(36954,38,5478.33,1954.2,739.343,0,'HoR WP LichKing'),
+(36954,39,5475.2,1945.84,740.697,0,'HoR WP LichKing'),
+(36954,40,5472.15,1938.02,741.884,0,'HoR WP LichKing'),
+(36954,41,5469.26,1931.34,742.813,0,'HoR WP LichKing'),
+(36954,42,5464.23,1922.25,744.055,0,'HoR WP LichKing'),
+(36954,43,5458.43,1912.96,745.229,0,'HoR WP LichKing'),
+(36954,44,5452.26,1902.95,747.091,0,'HoR WP LichKing'),
+(36954,45,5442.44,1892.51,749.208,0,'HoR WP LichKing'),
+(36954,46,5435.67,1879.7,751.776,0,'HoR WP LichKing'),
+(36954,47,5429.03,1870.73,753.151,0,'HoR WP LichKing'),
+(36954,48,5423.72,1862.16,754.263,0,'HoR WP LichKing'),
+(36954,49,5417.21,1851.7,755.507,0,'HoR WP LichKing'),
+(36954,50,5408.94,1838.38,757.002,0,'HoR WP LichKing'),
+(36954,51,5398.8,1829.61,757.742,0,'HoR WP LichKing'),
+(36954,52,5388.47,1817.95,759.285,0,'HoR WP LichKing'),
+(36954,53,5378.23,1808.5,760.316,0,'HoR WP LichKing'),
+(36954,54,5368.5,1801.35,760.845,0,'HoR WP LichKing'),
+(36954,55,5360.86,1793.16,762.271,0,'HoR WP LichKing'),
+(36954,56,5353.62,1785.4,763.868,0,'HoR WP LichKing'),
+(36954,57,5344.78,1776.09,765.759,0,'HoR WP LichKing'),
+(36954,58,5336.38,1768.67,767.324,0,'HoR WP LichKing'),
+(36954,59,5327.56,1760.12,769.332,0,'HoR WP LichKing'),
+(36954,60,5319.62,1750.7,771.487,0,'HoR WP LichKing'),
+(36954,61,5313.12,1742.99,773.424,0,'HoR WP LichKing'),
+(36954,62,5305.41,1735.79,775.473,0,'HoR WP LichKing'),
+(36954,63,5298.93,1728.16,777.573,0,'HoR WP LichKing'),
+(36954,64,5292.54,1720.37,779.862,0,'HoR WP LichKing'),
+(36954,65,5287.11,1713.96,781.667,0,'HoR WP LichKing'),
+(36954,66,5280.14,1705.21,784.65,0,'HoR WP LichKing'),
+(36954,67,5277.98,1701.28,785.224,0,'HoR WP LichKing');
+*/
+-- Halls of Reflexion WIP
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_26_00_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_26_00_world_sai.sql
new file mode 100644
index 00000000000..14879241a25
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_26_00_world_sai.sql
@@ -0,0 +1,115 @@
+SET @NPC_LANDGREN := 29542;
+SET @NPC_ARETE := 29560;
+SET @NPC_SOUL := 29572;
+SET @NPC_SOUL_TARGET := 29577;
+SET @GO_FOCUS := 191578;
+SET @GO_GATE := 191579;
+
+UPDATE `gameobject_template` SET `faction`=114, `AIName`='SmartGameObjectAI' WHERE `entry`=@GO_GATE;
+DELETE FROM `gameobject_template` WHERE `entry`=@GO_FOCUS;
+INSERT INTO `gameobject_template` (`entry`,`type`,`displayId`,`name`,`data0`,`data1`,`data6`,`AIName`) VALUES
+(@GO_FOCUS,8,0,'Archbishop Landgren''s Corpse',1566,20,0,'SmartGameObjectAI');
+
+UPDATE `creature_template` SET `npcflag`=2, `unit_flags`=33280 WHERE `entry`=@NPC_ARETE;
+UPDATE `creature_template` SET `faction_A`=14, `faction_H`=14, `speed_walk`=0.4, `unit_flags`=256, `dynamicflags`=0, `InhabitType`=4 WHERE `entry`=@NPC_SOUL;
+UPDATE `creature_template` SET `unit_flags`=33555200, `InhabitType`=4 WHERE `entry`=@NPC_SOUL_TARGET;
+
+UPDATE `creature_model_info` SET `bounding_radius`=0.5745, `combat_reach`=2.25 WHERE `modelid`=26197;
+UPDATE `creature_model_info` SET `bounding_radius`=0.3825, `combat_reach`=1.875 WHERE `modelid`=26346;
+
+DELETE FROM `creature_template_addon` WHERE `entry`=@NPC_SOUL;
+INSERT INTO `creature_template_addon` (`entry`,`bytes2`,`emote`,`auras`) VALUES
+(@NPC_SOUL,1,0,'36545');
+
+DELETE FROM `creature_equip_template` WHERE `entry`=@NPC_ARETE;
+INSERT INTO `creature_equip_template` (`entry`,`id`,`itemEntry1`,`itemEntry2`,`itemEntry3`) VALUES
+(@NPC_ARETE,1,40276,0,0);
+
+DELETE FROM `creature_text` WHERE `entry` IN (@NPC_LANDGREN,@NPC_ARETE,@NPC_SOUL);
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@NPC_LANDGREN,0,0,'I will not die so quickly this time!',14,0,100,0,0,0,''),
+
+(@NPC_ARETE,0,0,'Well done. Let''s get this over with.',12,0,100,1,0,0,''),
+(@NPC_ARETE,1,0,'Come, Landgren, cough up your soul so that I can ask you a very important question.',12,0,100,0,0,0,''),
+(@NPC_ARETE,2,0,'YOU WILL TELL ME WHERE WESTWIND IS OR I WILL DESTROY YOUR SOUL!',14,0,100,25,0,0,''),
+(@NPC_ARETE,3,0,'Then you leave me no choice. I won''t say that I won''t enjoy this.',12,0,100,1,0,0,''),
+(@NPC_ARETE,4,0,'Very well. Tell me!',12,0,100,0,0,0,''),
+(@NPC_ARETE,5,0,'A hidden hollow? How very interesting. You''ve served your purpose, Landgren, but I''m afraid there''ll be no resurrection for you this time!',12,0,100,6,0,0,''),
+(@NPC_ARETE,6,0,'Now that the unpleasantness is finished with, let''s talk about you dealing with Grand Admiral Westwind.',12,0,100,11,0,0,''),
+
+(@NPC_SOUL,0,0,'You''ll get nothing out of me, monster. I am beyond your ability to influence.',12,0,100,0,0,0,''),
+(@NPC_SOUL,1,0,'No.',12,0,100,0,0,0,''),
+(@NPC_SOUL,2,0,'STOP! It isn''t worth it. I''ll tell you where he is.',12,0,100,0,0,0,''),
+(@NPC_SOUL,3,0,'On the south end of the island is a cave -- a hidden hollow. The grand admiral has holed himself up in there, preparing for the final battle against the Lich King.',12,0,100,0,0,0,''),
+(@NPC_SOUL,4,0,'AAAEEEEIIIiiiiiiiiiiiiiiiiiiiiiiiiiiii........................................',14,0,100,0,0,0,'');
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry` IN (22966,26560);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(13,1,22966,0,0,31,0,3,@NPC_LANDGREN,0,0,0,'','Spell Soul Coax targets Archbishop Landgren'),
+(13,2,26560,0,0,31,0,3,@NPC_LANDGREN,0,0,0,'','Spell Summon Arete''s Gate effect1 targets Archbishop Landgren');
+
+DELETE FROM `spell_script_names` WHERE `spell_id`=12601;
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(12601,'spell_q12847_summon_soul_moveto_bunny');
+
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry` IN (@NPC_LANDGREN,@NPC_ARETE,@NPC_SOUL);
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@NPC_LANDGREN,@NPC_ARETE,@NPC_SOUL) AND `source_type`=0;
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@GO_FOCUS,@GO_GATE) AND `source_type`=1;
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@NPC_LANDGREN*100,@NPC_ARETE*100,@NPC_SOUL*100,@GO_GATE*100) AND `source_type`=9;
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(@NPC_LANDGREN,0,0,0,25,0,100,0,0,0,0,0,28,60449,0,0,0,0,0,1,0,0,0,0,0,0,0,'Archbishop Landgren - On reset - Remove aura Shadowform'),
+(@NPC_LANDGREN,0,1,0,0,0,100,0,10000,12000,9000,10000,11,60453,0,0,0,0,0,2,0,0,0,0,0,0,0,'Archbishop Landgren - On update IC - Spellcast Mind Blast'),
+(@NPC_LANDGREN,0,2,0,0,0,100,0,15000,16000,18000,20000,11,60446,0,0,0,0,0,2,0,0,0,0,0,0,0,'Archbishop Landgren - On update IC - Spellcast Shadow Word: Pain'),
+(@NPC_LANDGREN,0,3,0,0,0,100,0,30000,35000,35000,40000,11,60440,0,0,0,0,0,2,0,0,0,0,0,0,0,'Archbishop Landgren - On update IC - Spellcast Mind Sear'),
+(@NPC_LANDGREN,0,4,5,2,0,100,1,0,50,0,0,11,60449,0,0,0,0,0,1,0,0,0,0,0,0,0,'Archbishop Landgren - On health below 50% - Spellcast Shadowform'),
+(@NPC_LANDGREN,0,5,0,61,0,100,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Archbishop Landgren - On health below 50% - Say line'),
+(@NPC_LANDGREN,0,6,0,6,0,100,0,0,0,0,0,11,22965,0,0,0,0,0,1,0,0,0,0,0,0,0,'Archbishop Landgren - On death - Spellcast Summon Archbishop Landgren''s Corpse Spell Focus'),
+(@NPC_LANDGREN,0,7,8,8,0,100,0,26560,0,0,0,45,0,1,0,0,0,0,20,@GO_GATE,50,0,0,0,0,0,'Archbishop Landgren - On spellhit Summon Arete''s Gate - Set data 0 1 Arete''s Gate'),
+(@NPC_LANDGREN,0,8,0,61,0,100,0,0,0,0,0,45,0,1,0,0,0,0,20,@GO_FOCUS,5,0,0,0,0,0,'Archbishop Landgren - On spellhit Summon Arete''s Gate - Set data 0 1 Arete''s Gate'),
+(@NPC_LANDGREN,0,9,10,38,0,100,0,0,1,0,0,11,12601,2,0,0,0,0,1,0,0,0,0,0,0,0,'Archbishop Landgren - On data 0 1 set - Spellcast Summon Landgren''s Soul Moveto Target Bunny'),
+(@NPC_LANDGREN,0,10,0,61,0,100,0,0,0,0,0,11,12600,2,0,0,0,0,1,0,0,0,0,0,0,0,'Archbishop Landgren - On data 0 1 set - Spellcast Summon Landgren''s Soul'),
+
+(@NPC_ARETE,0,0,1,1,0,100,1,0,0,0,0,11,34427,0,0,0,0,0,1,0,0,0,0,0,0,0,'Lord-Commander Arete - Just summoned - Spellcast Ethereal Teleport'),
+(@NPC_ARETE,0,1,2,61,0,100,0,0,0,0,0,83,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Lord-Commander Arete - Just summoned - Remove npcflag questgiver'),
+(@NPC_ARETE,0,2,3,61,0,100,0,0,0,0,0,66,0,0,0,0,0,0,19,@NPC_LANDGREN,20,0,0,0,0,0,'Lord-Commander Arete - Just summoned - Turn to Archbishop Landgren'),
+(@NPC_ARETE,0,3,0,61,0,100,0,0,0,0,0,80,@NPC_ARETE*100,2,0,0,0,0,1,0,0,0,0,0,0,0,'Lord-Commander Arete - Just summoned - Run script'),
+
+(@NPC_SOUL,0,0,0,54,0,100,0,0,0,0,0,80,@NPC_SOUL*100,2,0,0,0,0,1,0,0,0,0,0,0,0,'Landgren''s Soul - Just summoned - Run script'),
+
+(@GO_FOCUS,1,0,0,38,0,100,0,0,1,0,0,44,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Archbishop Landgren''s Corpse Spell Focus - On data 0 1 set - Set phase 2'),
+
+(@GO_GATE,1,0,0,38,0,100,0,0,1,0,0,80,@GO_GATE*100,2,0,0,0,0,1,0,0,0,0,0,0,0,'Arete''s Gateway - On data 0 1 set - Run script'),
+
+(@GO_GATE*100,9,0,0,0,0,100,0,4000,4000,0,0,11,18280,0,0,0,0,0,1,0,0,0,0,0,0,0,'Arete''s Gateway script - Spellcast Summon Arete'),
+(@GO_GATE*100,9,1,0,0,0,100,0,180000,180000,0,0,44,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Arete''s Gateway script - Set phase 2'),
+
+(@NPC_ARETE*100,9,0,0,0,0,100,0,500,500,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Lord-Commander Arete script - Say line'),
+(@NPC_ARETE*100,9,1,0,0,0,100,0,0,0,0,0,46,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Lord-Commander Arete script - Move forward'),
+(@NPC_ARETE*100,9,2,0,0,0,100,0,4000,4000,0,0,66,0,0,0,0,0,0,19,@NPC_LANDGREN,20,0,0,0,0,0,'Lord-Commander Arete script - Turn to Archbishop Landgren'),
+(@NPC_ARETE*100,9,3,0,0,0,100,0,1000,1000,0,0,11,22966,0,0,0,0,0,19,@NPC_LANDGREN,20,1,0,0,0,0,'Lord-Commander Arete script - Spellcast Soul Coax'),
+(@NPC_ARETE*100,9,4,0,0,0,100,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Lord-Commander Arete script - Say line'),
+(@NPC_ARETE*100,9,5,0,0,0,100,0,8000,8000,0,0,45,0,1,0,0,0,0,19,@NPC_LANDGREN,20,1,0,0,0,0,'Lord-Commander Arete script - Set data 0 1 Archbishop Landgren'),
+(@NPC_ARETE*100,9,6,0,0,0,100,0,12000,12000,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Lord-Commander Arete script - Say line'),
+(@NPC_ARETE*100,9,7,0,0,0,100,0,7000,7000,0,0,1,3,0,0,0,0,0,1,0,0,0,0,0,0,0,'Lord-Commander Arete script - Say line'),
+(@NPC_ARETE*100,9,8,0,0,0,100,0,4000,4000,0,0,11,27765,0,0,0,0,0,19,@NPC_SOUL,20,0,0,0,0,0,'Lord-Commander Arete script - Spellcast Soul Wrack'),
+(@NPC_ARETE*100,9,9,0,0,0,100,0,15000,15000,0,0,1,4,0,0,0,0,0,1,0,0,0,0,0,0,0,'Lord-Commander Arete script - Say line'),
+(@NPC_ARETE*100,9,10,0,0,0,100,0,0,0,0,0,92,0,27765,1,0,0,0,1,0,0,0,0,0,0,0,'Lord-Commander Arete script - Interrupt spellcast'),
+(@NPC_ARETE*100,9,11,0,0,0,100,0,10000,10000,0,0,1,5,0,0,0,0,0,1,0,0,0,0,0,0,0,'Lord-Commander Arete script - Say line'),
+(@NPC_ARETE*100,9,12,0,0,0,100,0,4000,4000,0,0,5,25,0,0,0,0,0,1,0,0,0,0,0,0,0,'Lord-Commander Arete script - Play emote'),
+(@NPC_ARETE*100,9,13,0,0,0,100,0,4000,4000,0,0,11,54723,0,0,0,0,0,19,@NPC_SOUL,20,0,0,0,0,0,'Lord-Commander Arete script - Spellcast Soul Wrack'),
+(@NPC_ARETE*100,9,14,0,0,0,100,0,8000,8000,0,0,92,0,54723,1,0,0,0,1,0,0,0,0,0,0,0,'Lord-Commander Arete script - Interrupt spellcast'),
+(@NPC_ARETE*100,9,15,0,0,0,100,0,0,0,0,0,1,6,0,0,0,0,0,1,0,0,0,0,0,0,0,'Lord-Commander Arete script - Say line'),
+(@NPC_ARETE*100,9,16,0,0,0,100,0,0,0,0,0,82,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Lord-Commander Arete script - Set npcflag questgiver'),
+(@NPC_ARETE*100,9,17,0,0,0,100,0,98000,98000,0,0,69,0,0,0,0,0,0,20,@GO_GATE,10,0,0,0,0,0,'Lord-Commander Arete script - Move to position'),
+(@NPC_ARETE*100,9,18,0,0,0,100,0,2000,2000,0,0,11,34427,0,0,0,0,0,1,0,0,0,0,0,0,0,'Lord-Commander Arete script - Spellcast Ethereal Teleport'),
+(@NPC_ARETE*100,9,19,0,0,0,100,0,500,500,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Lord-Commander Arete script - Despawn'),
+
+(@NPC_SOUL*100,9,0,0,0,0,100,0,0,0,0,0,66,0,0,0,0,0,0,19,@NPC_ARETE,20,0,0,0,0,0,'Landgren''s Soul script - Turn to Lord-Commander Arete'),
+(@NPC_SOUL*100,9,1,0,0,0,100,0,500,500,0,0,11,36545,0,0,0,0,0,1,0,0,0,0,0,0,0,'Landgren''s Soul script - Spellcast Floating Drowned'),
+(@NPC_SOUL*100,9,2,0,0,0,100,0,6500,6500,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Landgren''s Soul script - Say line'),
+(@NPC_SOUL*100,9,3,0,0,0,100,0,10000,10000,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Landgren''s Soul script - Say line'),
+(@NPC_SOUL*100,9,4,0,0,0,100,0,15000,15000,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Landgren''s Soul script - Say line'),
+(@NPC_SOUL*100,9,5,0,0,0,100,0,10000,10000,0,0,1,3,0,0,0,0,0,1,0,0,0,0,0,0,0,'Landgren''s Soul script - Say line'),
+(@NPC_SOUL*100,9,6,0,0,0,100,0,16000,16000,0,0,1,4,0,0,0,0,0,1,0,0,0,0,0,0,0,'Landgren''s Soul script - Say line'),
+(@NPC_SOUL*100,9,7,0,0,0,100,0,5000,5000,0,0,11,35426,0,0,0,0,0,1,0,0,0,0,0,0,0,'Landgren''s Soul script - Spellcast Arcane Explosion Visual'),
+(@NPC_SOUL*100,9,8,0,0,0,100,0,1000,1000,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Landgren''s Soul script - Despawn');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_26_01_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_26_01_world_sai.sql
new file mode 100644
index 00000000000..0c70f665c27
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_26_01_world_sai.sql
@@ -0,0 +1,39 @@
+SET @THANE := 29919;
+SET @SPELL := 31696;
+SET @B_STRIKE := 58460;
+SET @REND := 16509;
+SET @P_SMASH := 60868;
+SET @EVENT := 19490;
+
+DELETE FROM `disables` WHERE `sourceType`=0 AND `entry` IN (@SPELL);
+INSERT INTO `disables`(`sourceType`,`entry`,`flags`,`comment`) VALUES
+(0,@SPELL,64,'Ignore LOS on Thane');
+
+DELETE FROM `event_scripts` WHERE `id`=@EVENT;
+INSERT INTO `event_scripts` (`id`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o`) VALUES
+(@EVENT,0,15,53799,4,29919,30,0,0,0);
+
+DELETE FROM `creature_text` WHERE `entry` IN (@THANE);
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@THANE,1,0, 'By order of Duke Lankral, Commander of the Knights of the Ebon Blade, Vanquisher of the Scourge and Conquerer of The Shadow Vault, you are hearby served notice to cease and desist from all activities providing materiel assistance, vrykul, and any other type of support to the Lich King. Failure to comply will result in your immediate destruction. My messenger will serve as the instrument of my will. What is your decision?',12,0,100,0,0,0,'Thane'),
+(@THANE,2,0, 'What is this?',14,0,100,0,0,0,'Thane'),
+(@THANE,3,0, 'My answer? Here''s my answer, little messenger!',14,0,100,0,0,0,'Thane'),
+(@THANE,4,0, 'I will feed you to the dogs!',14,0,100,0,0,0,'Thane');
+
+UPDATE `creature_template` SET AIName='SmartAI' WHERE entry = @THANE;
+DELETE FROM `smart_scripts` WHERE source_type=0 AND entryorguid = @THANE;
+DELETE FROM `smart_scripts` WHERE source_type=9 AND entryorguid = @THANE*100;
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(@THANE,0,0,1,4,0,100,0,0,0,0,0,1,2,12000,0,0,0,0,1,0,0,0,0,0,0,0,'Thane - On spellhit - Say text2'),
+(@THANE,0,1,2,61,0,100,0,0,0,0,0,18,33685504,0,0,0,0,0,1,0,0,0,0,0,0,0,'Thane - On Link - Set Unit Flags'),
+(@THANE,0,2,0,61,0,100,0,0,0,0,0,84,1,0,0,0,0,0,7,0,0,0,0,0,0,0,'Thane - On Link - Make player say Text1'),
+(@THANE,0,3,0,52,0,100,0,2,@THANE,0,0,1,3,4000,0,0,0,0,1,0,0,0,0,0,0,0,'Thane - On Text2 over - Say Text3'),
+(@THANE,0,4,5,52,0,100,0,3,@THANE,0,0,1,4,4000,0,0,0,0,1,0,0,0,0,0,0,0,'Thane - On Text3 over - Say Text4'),
+(@THANE,0,5,0,61,0,100,0,0,0,0,0,19,33685504,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Thane - On Link - Remove unit flags'),
+(@THANE,0,6,0,0,0,100,0,4000,7000,4000,7000,11,@B_STRIKE,0,0,0,0,0,5,0,0,0,0,0,0,0,'Thane - In Combat - Cast Brutal Strike'),
+(@THANE,0,7,0,0,0,100,0,4000,15000,4000,15000,11,@REND,0,0,0,0,0,5,0,0,0,0,0,0,0,'Thane - In Combat - Cast Rend'),
+(@THANE,0,8,0,0,0,100,0,12000,25000,12000,25000,11,@P_SMASH,0,0,0,0,0,5,0,0,0,0,0,0,0,'Thane - In Combat - Cast Powerful Smash');
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`= 13 AND `SourceEntry`=@SPELL;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(13,1,@SPELL,0,0,31,0,3,@THANE,0,0,0,'','Shadow Decree hits only Thane');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_26_02_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_26_02_world_sai.sql
new file mode 100644
index 00000000000..a30b6c8be43
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_26_02_world_sai.sql
@@ -0,0 +1,79 @@
+-- Not-So-Honorable Combat (13137)
+SET @GO_SIGNAL_FIRE := 193024; -- Battlescar Signal Fire
+SET @EVENT_SCRIPT := 20069; -- Event Script
+SET @NPC_POSSESSED_ISKALDER := 30924; -- Possessed Iskalder <The Ancient Hero>
+SET @NPC_VARDMADRA := 30945; -- Vadmadra
+SET @NPC_LADY_NIGHTSWOOD := 30955; -- Lady Nightswood
+SET @MOVE_TARGET_BUNNY := 25715; -- Not-So-Honorable Combat: Summon Lady Nightswood's Moveto Target Bunny
+SET @TARGET_BUNNY := 30959; -- Lady Nightswood's Moveto Target Bunny
+SET @SUMMON_NIGHTSWOOD := 25727; -- Not-So-Honorable Combat: Summon Lady Nightswood
+SET @POSSESS_VARDMADRA := 25745; -- Possession
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`= 13 AND `SourceEntry`IN (@SUMMON_NIGHTSWOOD,@MOVE_TARGET_BUNNY,@POSSESS_VARDMADRA);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(13,1,@SUMMON_NIGHTSWOOD,0,0,31,0,3,@TARGET_BUNNY,0,0,0,'','Summon Nightswood only hits Target Bunny'),
+(13,1,@MOVE_TARGET_BUNNY,0,0,31,0,3,@NPC_POSSESSED_ISKALDER,0,0,0,'','Move Target Bunny only hits Target Bunny'),
+(13,1,@POSSESS_VARDMADRA,0,0,31,0,3,@NPC_VARDMADRA,0,0,0,'','Possess Vardmadra only hits Vardmadra');
+
+UPDATE `creature_template` SET `AIName`='SmartAI',`faction_A`=2116,`faction_H`=2116,`unit_flags`=33088,`mindmg`=422,`maxdmg`=586,`attackpower`=642,`minrangedmg`=345,`maxrangedmg`=509,`rangedattackpower`=103 WHERE `entry`=@NPC_POSSESSED_ISKALDER;
+UPDATE `creature_template` SET `faction_A`=2116,`faction_H`=2116,`unit_flags`=33536,`AIName`='SmartAI',`minlevel`=80, `maxlevel`=80 WHERE `entry`=@NPC_VARDMADRA;
+UPDATE `creature_template` SET `AIName`='SmartAI', `InhabitType`=7 WHERE `entry` IN (@TARGET_BUNNY,@NPC_LADY_NIGHTSWOOD);
+UPDATE `creature_template` SET `modelid1`=11686, `modelid2`=0 WHERE `entry`=@TARGET_BUNNY;
+DELETE FROM `creature_template_addon` WHERE `entry` IN (@NPC_POSSESSED_ISKALDER,@NPC_VARDMADRA);
+INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`auras`) VALUES
+(@NPC_POSSESSED_ISKALDER,0,0x0,0x1,'58102'),
+(@NPC_VARDMADRA,0,0x3000000,0x1,'');
+
+DELETE FROM `creature_equip_template` WHERE `entry`=@NPC_POSSESSED_ISKALDER;
+INSERT INTO `creature_equip_template` (`entry`,`itemEntry1`,`itemEntry2`,`itemEntry3`) VALUES
+(@NPC_POSSESSED_ISKALDER,43296,43295,0);
+
+DELETE FROM `creature_text` WHERE `entry` IN (@NPC_POSSESSED_ISKALDER,@NPC_VARDMADRA,@NPC_LADY_NIGHTSWOOD);
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@NPC_POSSESSED_ISKALDER,0,0,'Now fight me, $N! Kill Iskalder!',14,0,100,0,0,1167,'Possessed Iskalder'),
+(@NPC_VARDMADRA,0,0, 'Iskalder, there you are. What is this? Engaged in battle already?',14,0,100,457,0,13824,'Vardmadra'),
+(@NPC_VARDMADRA,1,0, 'NO! How is this possible?',14,0,100,457,0,13825,'Vardmadra'),
+(@NPC_VARDMADRA,2,0, 'I know not how this was possible, but you must still be judged Iskalder. Wait... what is this?',14,0,100,457,0,13824,'Vardmadra'),
+(@NPC_VARDMADRA,3,0, 'Stay away from me creature! Do not touch me!',14,0,100,0,0,1168,'Vardmadra to Nightswood'),
+(@NPC_VARDMADRA,4,0, 'Ahahahahahaha! It is done. Return to my cave. We have much to discuss!',14,0,100,457,0,1167,'Vardmadra to '),
+(@NPC_LADY_NIGHTSWOOD,0,0, 'This? This is me taking control of you. This is me setting up my final revenge!',14,0,100,457,0,13824,'Lady Nightswood');
+
+-- Possessed Iskalder <The Ancient Hero>
+DELETE FROM `event_scripts` WHERE `id`=@EVENT_SCRIPT;
+INSERT INTO `event_scripts` (`id`,`delay`,`command`,`datalong`,`datalong2`,`dataint`,`x`,`y`,`z`,`o`) VALUES
+(@EVENT_SCRIPT,5,10,@NPC_POSSESSED_ISKALDER,180000,0,7229.436,3642.27,809.0175,0);
+
+DELETE FROM `smart_scripts` WHERE `source_type` IN (0,9) AND `entryorguid` IN (@NPC_POSSESSED_ISKALDER,@NPC_VARDMADRA,@NPC_LADY_NIGHTSWOOD,@TARGET_BUNNY,@TARGET_BUNNY*100);
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@NPC_POSSESSED_ISKALDER,0,0,1,54,0,100,0,0,0,0,0,19,256,0,0,0,0,0,1,0,0,0,0,0,0,0,'Iskalder - On Summon - Remove unit flag'),
+(@NPC_POSSESSED_ISKALDER,0,1,0,61,0,100,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Iskalder - On Link - Talk'),
+(@NPC_POSSESSED_ISKALDER,0,2,0,2,0,100,1,0,65,0,0,12,@NPC_VARDMADRA,3,180000,0,0,0,8,0,0,0,7182.766602,3661.931885, 826.149292, 5.838641, 'Possessed Iskalder - on 65% HP - Spawn Vardmara'),
+(@NPC_POSSESSED_ISKALDER,0,3,0,4,0,100,1,0,0,0,0,11,60108,0,0,0,0,0,2,0,0,0,0,0,0,0,'Iskalder - On Aggro - Cast Heroic Leap'),
+(@NPC_POSSESSED_ISKALDER,0,4,0,0,0,100,0,3500,3500,14500,16700,11,15496,0,0,0,0,0,2,0,0,0,0,0,0,0,'Iskalder - In Combat - Cast Cleave'),
+(@NPC_POSSESSED_ISKALDER,0,5,0,0,0,100,0,5000,6000,11200,15800,11,57846,0,0,0,0,0,2,0,0,0,0,0,0,0,'Iskalder - In Combat - Cast Heroic Strike'),
+(@NPC_POSSESSED_ISKALDER,0,6,0,0,0,100,0,9000,11000,25000,25000,11,60121,0,0,0,0,0,1,0,0,0,0,0,0,0,'Iskalder - In Combat - Cast Ancient Curse'),
+(@NPC_POSSESSED_ISKALDER,0,7,0,2,0,100,1,0,50,0,0,1,0,0,0,0,0,0,11,@NPC_VARDMADRA,200,0,0,0,0,0,'Iskalder - On HPC - Make Vardmadra Say'),
+(@NPC_POSSESSED_ISKALDER,0,8,0,6,0,100,1,0,0,0,0,45,1,1,0,0,0,0,11,@NPC_VARDMADRA,200,0,0,0,0,0,' Iskalder - On event death - Send Data to Vardmadra'),
+(@NPC_POSSESSED_ISKALDER,0,9,10,1,0,100,1,0,0,0,0,19,256,0,0,0,0,0,1,0,0,0,0,0,0,0,'Iskalder - OOC - Remove unit flag'),
+(@NPC_POSSESSED_ISKALDER,0,10,0,61,0,100,1,0,0,0,0,45,2,2,0,0,0,0,11,@NPC_VARDMADRA,300,0,0,0,0,0, 'Possessed Iskalder - On link - Set Data on Vardmara'),
+
+(@NPC_VARDMADRA,0,0,1,38,0,100,0,1,1,0,0,59,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Vardmadra - On Receive Data - Set Run'),
+(@NPC_VARDMADRA,0,1,2,61,0,100,0,1,1,0,0,69,0,0,0,0,0,0,8,0,0,0,7234.742,3643.584,811.8065,5.507,'Vardmadra - Linked with Previous Event - Move to position'),
+(@NPC_VARDMADRA,0,2,3,61,0,100,0,0,0,0,0,1,1,10000,0,0,0,0,1,0,0,0,0,0,0,0,'Vardmadra - Linked with Previous Event - Say'),
+(@NPC_VARDMADRA,0,3,4,61,0,100,1,0,0,0,0,11,@MOVE_TARGET_BUNNY,2,0,0,0,0,19,@NPC_POSSESSED_ISKALDER,200,1,0,0,0,0,'Vardmadra - Linked with Previous Event - Cast Not-So-Honorable Combat: Summon Lady Nightswood''s Moveto Target Bunny'),
+(@NPC_VARDMADRA,0,4,5,52,0,100,0,1,@NPC_VARDMADRA,0,0,1,2,10000,0,0,0,0,1,0,0,0,0,0,0,0,'Vardmadra - On Text Over - Say'),
+(@NPC_VARDMADRA,0,5,0,61,0,100,0,0,0,0,0,66,0,0,0,0,0,0,19,@NPC_POSSESSED_ISKALDER,200,1,0,0,0,0,'Vardmadra - On Link - Turn to Iskalder'),
+(@NPC_VARDMADRA,0,6,7,52,0,100,0,2,@NPC_VARDMADRA,0,0,1,0,10000,0,0,0,0,11,@NPC_LADY_NIGHTSWOOD,200,0,0,0,0,0,'Vardmadra - On Text Over - Say'),
+(@NPC_VARDMADRA,0,7,8,61,0,100,0,0,0,0,0,66,0,0,0,0,0,0,19,@NPC_LADY_NIGHTSWOOD,200,0,0,0,0,0,'Vardmadra - On Link - Turn to Lady Nightswood'),
+(@NPC_VARDMADRA,0,8,0,61,0,100,0,0,0,0,0,45,1,1,0,0,0,0,11,@NPC_LADY_NIGHTSWOOD,200,0,0,0,0,0,'Vardmadra - On link - Send Data to Lady Nightswood'),
+(@NPC_VARDMADRA,0,9,0,52,0,100,0,0,@NPC_LADY_NIGHTSWOOD,0,0,1,3,10000,0,0,0,0,1,0,0,0,0,0,0,0,'Vardmadra - On Text Over - Say'),
+(@NPC_VARDMADRA,0,10,0,52,0,100,0,3,@NPC_VARDMADRA,0,0,1,4,10000,0,0,0,0,1,0,0,0,0,0,0,0,'Vardmadra- On Text Over - Say'),
+(@NPC_VARDMADRA,0,11,0,52,0,100,0,4,@NPC_VARDMADRA,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Vardmadra - On Text Over - Despawn'),
+(@NPC_VARDMADRA,0,12,0,38,0,100,0,2,2,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Vardmadra - On Receive Data - Despawn'),
+
+(@TARGET_BUNNY,0,0,0,54,0,100,0,0,0,0,0,80,@TARGET_BUNNY*100,2,0,0,0,0,1,0,0,0,0,0,0,0,'Lady Nightswood Move-to-Bunny - On Summon - Start Timed Script'),
+(@TARGET_BUNNY*100,9,0,0,0,0,100,0,7000,7000,7000,7000,69,0,0,0,0,0,0,8,0,0,0,7242.77,3631.67,814.0644,2.227,'Lady Nightswood Move-to-Bunny - On Script - Go to position'),
+(@TARGET_BUNNY*100,9,1,0,0,0,100,0,8000,8000,8000,8000,11,@SUMMON_NIGHTSWOOD,2,0,0,0,0,1,0,0,0,0,0,0,0,'Lady Nightswood Move-to-Bunny - Linked with Previous Event - Cast Not-So-Honorable Combat: Summon Lady Nightswood''s Moveto Target Bunny'),
+
+(@NPC_LADY_NIGHTSWOOD,0,0,0,54,0,100,0,0,0,0,0,66,0,0,0,0,0,0,19,@NPC_VARDMADRA,200,0,0,0,0,0,'Lady Nightswood - On Summon - Turn to Vardmadra'),
+(@NPC_LADY_NIGHTSWOOD,0,1,0,38,0,100,0,1,1,0,0,11,@POSSESS_VARDMADRA,0,0,0,0,0,19,@NPC_VARDMADRA,200,0,0,0,0,0,'Lady Nigtswood - On Receive Data - Possess Vardmadra');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_26_03_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_26_03_world_sai.sql
new file mode 100644
index 00000000000..6a3225266e7
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_26_03_world_sai.sql
@@ -0,0 +1,5 @@
+SET @SUMMON_ARETE := 18280; -- LC Arete Summon Spell
+SET @ARETE_GATE := 191579; -- Arete Gateway Object
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ARETE_GATE*100 AND `source_type`=9;
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(@ARETE_GATE*100,9,0,0,0,0,100,0,4000,4000,0,0,11,@SUMMON_ARETE,0,0,0,0,0,1,0,0,0,0,0,0,0,'Arete''s Gateway - On Script - Spellcast Summon Arete');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_26_04_world_waypoints.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_26_04_world_waypoints.sql
new file mode 100644
index 00000000000..58f1e50bf23
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_26_04_world_waypoints.sql
@@ -0,0 +1,27 @@
+-- Pathing for Entry 5934 Heartrazor
+SET @NPC := 51821;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-5183.809,`position_y`=-1170.219,`position_z`=45.11078 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,-5183.809,-1170.219,45.11078,0,0,0,100,0),
+(@PATH,2,-5181.056,-1184.849,45.97993,0,0,0,100,0),
+(@PATH,3,-5169.914,-1200.506,47.15270,0,0,0,100,0),
+(@PATH,4,-5159.998,-1216.499,48.38121,0,0,0,100,0),
+(@PATH,5,-5173.076,-1229.047,49.04836,0,0,0,100,0),
+(@PATH,6,-5194.938,-1230.641,48.47133,0,0,0,100,0),
+(@PATH,7,-5207.135,-1229.340,47.92607,0,0,0,100,0),
+(@PATH,8,-5215.482,-1216.020,46.70019,0,0,0,100,0),
+(@PATH,9,-5207.343,-1200.787,46.16835,0,0,0,100,0),
+(@PATH,10,-5184.156,-1170.526,45.12170,0,0,0,100,0),
+(@PATH,11,-5183.285,-1153.094,44.87883,0,0,0,100,0),
+(@PATH,12,-5183.285,-1153.094,44.87883,0,0,0,100,0),
+(@PATH,13,-5177.142,-1130.755,43.77563,0,0,0,100,0),
+(@PATH,14,-5164.937,-1121.575,43.77023,0,0,0,100,0),
+(@PATH,15,-5145.432,-1115.095,43.74949,0,0,0,100,0),
+(@PATH,16,-5138.181,-1109.642,44.04351,0,0,0,100,0),
+(@PATH,17,-5154.783,-1119.312,43.67305,0,0,0,100,0),
+(@PATH,18,-5176.401,-1127.441,43.71729,0,0,0,100,0),
+(@PATH,19,-5183.811,-1149.325,44.34430,0,0,0,100,0);
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_26_05_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_26_05_world_misc.sql
new file mode 100644
index 00000000000..e819f7a93bc
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_26_05_world_misc.sql
@@ -0,0 +1,120 @@
+SET @OGUID := 7080;
+
+SET @ARTHAS := 27455;
+SET @MURADIN := 27480;
+SET @THELZAN := 27851;
+SET @ALTAR := 190332;
+
+UPDATE `creature` SET `spawndist`=0,`MovementType`=0 WHERE `id`=@THELZAN;
+
+DELETE FROM `gameobject` WHERE `map`=571 AND `id` IN (192066,192065,192064,190191,@ALTAR);
+INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
+(@OGUID,192066,571,1,1,4816.637,-582.2271,163.1873,-1.240983,-0.5743933,0.2897787,-0.5093117,0.5715788,120,0,1),
+(@OGUID+1,192065,571,1,1,4816.552,-581.2853,163.0618,1.043091,0.5583439,0.3292217,0.3740091,0.6633116,120,0,1),
+(@OGUID+2,192064,571,1,1,4823.089,-581.7293,164.1632,2.408346,-0.3306689,-0.6249218,0.6858006,0.1726511,120,0,1),
+(@OGUID+3,190191,571,1,1,4819.284,-583.5658,163.5637,1.343901,0,0,0.6225138,0.7826088,120,0,1),
+(@OGUID+4,@ALTAR,571,1,1,4819.374,-583.699,163.5065,1.500983,0,0,0.6819983,0.7313538,120,0,1);
+
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@THELZAN;
+UPDATE `creature_template` SET `InhabitType`=1, `AIName`='SmartAI' WHERE `entry` IN (@MURADIN,@ARTHAS);
+
+DELETE FROM `event_scripts` WHERE `id`=18281;
+INSERT INTO `event_scripts` (`id`,`delay`,`command`,`datalong`,`datalong2`,`x`,`y`,`z`,`o`) VALUES
+(18281,0,10,@THELZAN,20000,4819.284,-583.5658,163.5637,1.343901);
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=49825;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=@THELZAN;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`Comment`) VALUES
+(13,1,49825,0,0,31,3,@MURADIN,0,0,0, 'Arthas Calls to Spirits targets Muradin'),
+(22,2,@THELZAN,0,0,29,@MURADIN,100,0,1,0, 'SAI activates only if Muradin is not around');
+
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid` IN (@ARTHAS,@MURADIN,@THELZAN);
+DELETE FROM `smart_scripts` WHERE `source_type`=9 AND `entryorguid` IN (@ARTHAS*100,@MURADIN*100,@MURADIN*100+1,@THELZAN*100);
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@ARTHAS,0,0,0,38,0,100,0,0,10,0,0,80,@ARTHAS*100,2,0,0,0,0,1,0,0,0,0,0,0,0,'Prince Arthas - On dataset - Run script'),
+
+(@MURADIN,0,0,0,38,0,100,0,0,10,0,0,80,@MURADIN*100,2,0,0,0,0,1,0,0,0,0,0,0,0,'Muradin - On dataset - Run script'),
+(@MURADIN,0,1,0,8,0,100,0,49825,0,0,0,80,@MURADIN*100+1,2,0,0,0,0,1,0,0,0,0,0,0,0,'Muradin - On spellhit - Run script'),
+
+(@THELZAN,0,0,0,54,0,100,0,0,0,0,0,3,0,17200,0,0,0,0,1,0,0,0,0,0,0,0,'Thel''zan Spell Dummy - Just summoned - Run script'),
+(@THELZAN,0,1,0,54,0,100,0,0,0,0,0,80,@THELZAN*100,2,0,0,0,0,1,0,0,0,0,0,0,0,'Thel''zan Spell Dummy - Just summoned - Run script'),
+
+(@ARTHAS*100,9,0,0,0,0,100,0,0,0,0,0,45,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Prince Arthas - Script - reset data 0'),
+(@ARTHAS*100,9,1,0,0,0,100,0,0,0,0,0,69,0,0,0,0,0,0,8,0,0,0,4820.175,-581.226,163.6158,0,'Prince Arthas - Script - moveto'),
+(@ARTHAS*100,9,2,0,0,0,100,0,8000,8000,0,0,1,6,0,0,0,0,0,1,0,0,0,0,0,0,0,'Prince Arthas - Script - say 6'),
+(@ARTHAS*100,9,3,0,0,0,100,0,6000,6000,0,0,1,7,0,0,0,0,0,1,0,0,0,0,0,0,0,'Prince Arthas - Script - say 7'),
+(@ARTHAS*100,9,4,0,0,0,100,0,6000,6000,0,0,11,49824,0,0,0,0,0,1,0,0,0,0,0,0,0,'Prince Arthas - Script - Spellcast Arthas Calls to Spirits'),
+(@ARTHAS*100,9,5,0,0,0,100,0,10000,10000,0,0,69,0,0,0,0,0,0,8,0,0,0,4819.658,-582.5223,163.752,0,'Prince Arthas - Script - moveto'),
+(@ARTHAS*100,9,6,0,0,0,100,0,0,0,0,0,71,0,7,0,0,0,0,1,0,0,0,0,0,0,0,'Prince Arthas - Script - Change weapon'),
+(@ARTHAS*100,9,7,0,0,0,100,0,1000,1000,0,0,5,397,0,0,0,0,0,1,0,0,0,0,0,0,0,'Prince Arthas - Script - Emote OneShotPointNoSheathe'),
+(@ARTHAS*100,9,8,0,0,0,100,0,0,0,0,0,71,0,7,33350,0,0,0,1,0,0,0,0,0,0,0,'Prince Arthas - Script - Change weapon'),
+(@ARTHAS*100,9,9,0,0,0,100,0,0,0,0,0,9,0,0,0,0,0,0,20,@ALTAR,5,0,0,0,0,0,'Prince Arthas - Script - Activate Altar'),
+(@ARTHAS*100,9,10,0,0,0,100,0,4000,4000,0,0,69,0,0,0,0,0,0,8,0,0,0,4814.56,-577.2604,162.2522,0,'Prince Arthas - Script - moveto'),
+(@ARTHAS*100,9,11,0,0,0,100,0,3500,3500,0,0,5,15,0,0,0,0,0,1,0,0,0,0,0,0,0,'Prince Arthas - Script - Emote OneShotRoar'),
+(@ARTHAS*100,9,12,0,0,0,100,0,4000,4000,0,0,53,1,@ARTHAS,0,0,0,0,1,0,0,0,0,0,0,0,'Prince Arthas - Script - Start WP movement'),
+
+(@MURADIN*100,9,0,0,0,0,100,0,0,0,0,0,45,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Muradin - Script - reset data 0'),
+(@MURADIN*100,9,1,0,0,0,100,0,500,500,0,0,69,0,0,0,0,0,0,8,0,0,0,4818.622,-582.4843,163.5883,0,'Muradin - Script - moveto'),
+(@MURADIN*100,9,2,0,0,0,100,0,2000,2000,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,5.305801,'Muradin - Script - turnto'),
+(@MURADIN*100,9,3,0,0,0,100,0,1000,1000,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Muradin - Script - say 2'),
+(@MURADIN*100,9,4,0,0,0,100,0,500,500,0,0,90,8,0,0,0,0,0,1,0,0,0,0,0,0,0,'Muradin - Script - kneel'),
+(@MURADIN*100,9,5,0,0,0,100,0,15000,15000,0,0,91,8,0,0,0,0,0,1,0,0,0,0,0,0,0,'Muradin - Script - stand'),
+(@MURADIN*100,9,6,0,0,0,100,0,1000,1000,0,0,66,0,0,0,0,0,0,19,@ARTHAS,10,0,0,0,0,0,'Muradin - Script - turnto Prince Arthas'),
+(@MURADIN*100,9,7,0,0,0,100,0,2000,2000,0,0,5,274,0,0,0,0,0,1,0,0,0,0,0,0,0,'Muradin - Script - Emote no'),
+(@MURADIN*100,9,8,0,0,0,100,0,2500,2500,0,0,5,5,0,0,0,0,0,1,0,0,0,0,0,0,0,'Muradin - Script - Emote Exclamation'),
+(@MURADIN*100,9,9,0,0,0,100,0,7000,7000,0,0,69,0,0,0,0,0,0,8,0,0,0,4817.42,-581.4944,163.2614,0,'Muradin - Script - moveto'),
+(@MURADIN*100,9,10,0,0,0,100,0,1000,1000,0,0,66,0,0,0,0,0,0,19,@ARTHAS,10,0,0,0,0,0,'Muradin - Script - turnto Prince Arthas'),
+(@MURADIN*100,9,11,0,0,0,100,0,1500,1500,0,0,1,5,0,0,0,0,0,19,@ARTHAS,10,0,0,0,0,0,'Muradin - Script - Prince Arthas say 5'),
+(@MURADIN*100,9,12,0,0,0,100,0,5000,5000,0,0,1,3,0,0,0,0,0,1,0,0,0,0,0,0,0,'Muradin - Script - say 3'),
+(@MURADIN*100,9,13,0,0,0,100,0,0,0,0,0,45,0,10,0,0,0,0,19,@ARTHAS,10,0,0,0,0,0,'Muradin - Script - set data 0 10 on Prince Arthas'),
+(@MURADIN*100,9,14,0,0,0,100,0,1000,1000,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,5.323254,'Muradin - Script - turnto'),
+
+(@MURADIN*100+1,9,0,0,0,0,100,0,0,0,0,0,40,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Muradin - Script - Set sheath'),
+(@MURADIN*100+1,9,1,0,0,0,100,0,0,0,0,0,18,1,1,0,0,0,0,1,0,0,0,0,0,0,0,'Muradin - Script - Set unit_flag2'),
+(@MURADIN*100+1,9,2,0,0,0,100,0,13000,13000,0,0,19,1,1,0,0,0,0,1,0,0,0,0,0,0,0,'Muradin - Script - Remove unit_flag2'),
+(@MURADIN*100+1,9,3,0,0,0,100,0,500,500,0,0,17,64,0,0,0,0,0,1,0,0,0,0,0,0,0,'Muradin - Script - emotestate stun'),
+(@MURADIN*100+1,9,4,0,0,0,100,0,5000,5000,0,0,1,4,0,0,0,0,0,1,0,0,0,0,0,0,0,'Muradin - Script - say 4'),
+(@MURADIN*100+1,9,5,0,0,0,100,0,3000,3000,0,0,1,5,0,0,0,0,0,1,0,0,0,0,0,0,0,'Muradin - Script - say 5'),
+(@MURADIN*100+1,9,6,0,0,0,100,0,4000,4000,0,0,17,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Muradin - Script - emotestate none'),
+(@MURADIN*100+1,9,7,0,0,0,100,0,1000,1000,0,0,11,49829,3,0,0,0,0,1,0,0,0,0,0,0,0,'Muradin - Script - Spellcast Frostmourne Cavern Quest Credit'),
+(@MURADIN*100+1,9,8,0,0,0,100,0,0,0,0,0,53,1,@MURADIN,0,0,0,0,1,0,0,0,0,0,0,0,'Muradin - Script - Start WP movement'),
+
+(@THELZAN*100,9,0,0,0,0,100,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Thel''zan Spell Dummy - Script - Say 0'),
+(@THELZAN*100,9,1,0,0,0,100,0,0,0,0,0,11,33271,0,0,0,0,0,1,0,0,0,0,0,0,0,'Thel''zan Spell Dummy - Script - Spellcast Internal Shake Camera w/ rumble sound'),
+(@THELZAN*100,9,2,0,0,0,100,0,7000,7000,0,0,12,@MURADIN,3,116000,0,0,0,8,0,0,0,4817.494,-579.6047,163.0956,5.102134,'Thel''zan Spell Dummy - Script - Summon Muradin'),
+(@THELZAN*100,9,3,0,0,0,100,0,0,0,0,0,12,@ARTHAS,3,102000,0,0,0,8,0,0,0,4821.529,-579.8818,163.5944,4.167512,'Thel''zan Spell Dummy - Script - Summon Prince Arthas'),
+(@THELZAN*100,9,4,0,0,0,100,0,0,0,0,0,9,0,0,0,0,0,0,20,@ALTAR,5,0,0,0,0,0,'Thel''zan Spell Dummy - Script - set data 0 10 on Frostmourne Altar'),
+(@THELZAN*100,9,5,0,0,0,100,0,3000,3000,0,0,1,4,0,0,0,0,0,19,@ARTHAS,10,0,0,0,0,0,'Thel''zan Spell Dummy - Script - Prince Arthas Say 4'),
+(@THELZAN*100,9,6,0,0,0,100,0,3000,3000,0,0,5,25,0,0,0,0,0,19,@ARTHAS,10,0,0,0,0,0,'Thel''zan Spell Dummy - Script - Prince Arthas Emote Point'),
+(@THELZAN*100,9,7,0,0,0,100,0,3500,3500,0,0,45,0,10,0,0,0,0,19,@MURADIN,10,0,0,0,0,0,'Thel''zan Spell Dummy - Script - Set data 0 10 on Muradin');
+
+DELETE FROM `waypoints` WHERE `entry` IN (@ARTHAS,@MURADIN);
+INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`point_comment`) VALUES
+(@ARTHAS,1,4793.066,-571.0735,160.8400, 'Prince Arthas'),
+(@ARTHAS,2,4772.816,-566.8235,162.2605, 'Prince Arthas'),
+(@ARTHAS,3,4759.816,-568.5735,164.2808, 'Prince Arthas'),
+(@ARTHAS,4,4743.573,-564.3865,166.2362, 'Prince Arthas'),
+(@MURADIN,1,4797.722,-576.3405,160.1779, 'Muradin'),
+(@MURADIN,2,4770.222,-575.5905,162.9453, 'Muradin'),
+(@MURADIN,3,4757.972,-575.0905,164.5265, 'Muradin'),
+(@MURADIN,4,4753.972,-572.8405,165.1388, 'Muradin'),
+(@MURADIN,5,4749.972,-569.5905,165.7607, 'Muradin'),
+(@MURADIN,6,4748.024,-566.1866,165.7932, 'Muradin');
+
+DELETE FROM `creature_text` WHERE `entry` IN (@ARTHAS,@MURADIN,@THELZAN);
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@ARTHAS,0,0, 'Captain, why are the guards not at their posts?',12,0,100,6,0,12725, 'Prince Arthas'),
+(@ARTHAS,1,0, 'Uther had my troops recalled? Damn it! If my warriors abandon me, I''ll never defeat Mal''Ganis. The ships must be burned before the men reach the shore!',12,0,100,5,0,12726, 'Prince Arthas'),
+(@ARTHAS,2,0, 'Burned down to their frames! No one goes home until our job here is done!',12,0,100,15,0,12727, 'Prince Arthas'),
+(@ARTHAS,3,0, 'Spare me, Muradin. You weren''t there to see what Mal''Ganis did to my homeland.',12,0,100,1,0,12728, 'Prince Arthas'),
+(@ARTHAS,4,0, 'Behold, Muradin, our salvation, Frostmourne.',12,0,100,1,0,12729, 'Prince Arthas'),
+(@ARTHAS,5,0, 'I would gladly bear any curse to save my homeland.',12,0,100,1,0,12730, 'Prince Arthas'),
+(@ARTHAS,6,0, 'Damn the men! Nothing shall prevent me from having my revenge, old friend. Not even you.',12,0,100,5,0,12731, 'Prince Arthas'),
+(@ARTHAS,7,0, 'Now, I call out to the spirits of this place. I will give anything or pay any price, if only you will help me save my people.',12,0,100,396,0,12732, 'Prince Arthas'),
+(@MURADIN,0,0, 'Isn''t that a bit much, lad?',12,0,100,6,0,12733, 'Muradin'),
+(@MURADIN,1,0, 'You lied to your men and betrayed the mercenaries who fought for you. What''s happening to you, Arthas? Is vengeance all that''s important to you?',12,0,100,1,0,12734, 'Muradin'),
+(@MURADIN,2,0, 'Hold, lad. There''s an inscription on the dais. It''s a warning. It says, "Whomsoever takes up this blade shall wield power eternal. Just as the blade rends flesh, so must power scar the spirit." Oh, I should''ve known. The blade is cursed! Let''s get the hell out of here!',12,0,100,0,0,12735, 'Muradin'),
+(@MURADIN,3,0, 'Leave it be, Arthas. Forget this business and lead your men home.',12,0,100,396,0,12736, 'Muradin'),
+(@MURADIN,4,0, 'O'' my head... Wh... Where am I?',12,0,100,0,0,0, 'Muradin'),
+(@MURADIN,5,0, 'Who... Who am I?',12,0,100,0,0,0, 'Muradin'),
+(@THELZAN,0,0, 'The walls of Frostmourne Cavern shudder and shake.',41,0,100,0,0,0, 'Thel''zan Spell Dummy');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_26_05_world_waypoints.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_26_05_world_waypoints.sql
new file mode 100644
index 00000000000..6596851cd33
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_26_05_world_waypoints.sql
@@ -0,0 +1,55 @@
+-- remove extra Highperch Soarer spawn
+DELETE FROM `creature` WHERE `guid`=21707;
+DELETE FROM `creature_addon` WHERE `guid`=21707;
+
+-- Proper Pathing for Entry 6139 Highperch Soarer
+SET @NPC := 21708;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-5155.495,`position_y`=-1195.804,`position_z`=73.70869 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,4097,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,-5155.495,-1195.804,73.70869,0,0,0,100,0),
+(@PATH,2,-5155.09,-1194.89,73.70869,0,0,0,100,0),
+(@PATH,3,-5155.986,-1199.748,81.49023,0,0,0,100,0),
+(@PATH,4,-5166.314,-1220.043,81.76808,0,0,0,100,0),
+(@PATH,5,-5170.551,-1226.347,76.71234,0,0,0,100,0),
+(@PATH,6,-5178.024,-1237.037,72.43468,0,0,0,100,0),
+(@PATH,7,-5190.296,-1239.181,71.90687,0,0,0,100,0),
+(@PATH,8,-5215.796,-1225.133,69.76797,0,0,0,100,0),
+(@PATH,9,-5221.52,-1209.387,67.79574,0,0,0,100,0),
+(@PATH,10,-5219.366,-1194.92,67.15694,0,0,0,100,0),
+(@PATH,11,-5209.852,-1187.224,65.96239,0,0,0,100,0),
+(@PATH,12,-5194.886,-1188.915,70.71236,0,0,0,100,0),
+(@PATH,13,-5181.055,-1199.332,60.29574,0,0,0,100,0),
+(@PATH,14,-5158.846,-1213.597,57.6291,0,0,0,100,0),
+(@PATH,15,-5122.129,-1222.279,42.46242,0,0,0,100,0),
+(@PATH,16,-5110.988,-1230.767,15.32349,0,0,0,100,0),
+(@PATH,17,-5084.673,-1227.625,-11.81538,0,0,0,100,0),
+(@PATH,18,-5065.282,-1209.691,-34.89864,0,0,0,100,0),
+(@PATH,19,-5052.477,-1181.261,-39.42649,0,0,0,100,0),
+(@PATH,20,-5025.058,-1165.288,-32.56528,0,0,0,100,0),
+(@PATH,21,-5004.282,-1140.431,-38.3154,0,0,0,100,0),
+(@PATH,22,-4984.813,-1123.683,-38.17639,0,0,0,100,0),
+(@PATH,23,-4971.478,-1109.776,-38.17639,0,0,0,100,0),
+(@PATH,24,-4949.74,-1096.296,-32.42633,0,0,0,100,0),
+(@PATH,25,-4927.954,-1090.275,-24.84298,0,0,0,100,0),
+(@PATH,26,-4909.837,-1080.728,-14.0652,0,0,0,100,0),
+(@PATH,27,-4914.713,-1066.641,-7.898551,0,0,0,100,0),
+(@PATH,28,-4927.922,-1056.954,-3.352009,0,0,0,100,0),
+(@PATH,29,-4942.696,-1055.217,8.220422,0,0,0,100,0),
+(@PATH,30,-4951.954,-1049.145,14.62554,0,0,0,100,0),
+(@PATH,31,-4960.176,-1028.92,20.03323,0,0,0,100,0),
+(@PATH,32,-4970.474,-1008.432,22.08879,0,0,0,100,0),
+(@PATH,33,-4980.969,-992.9671,23.42848,0,0,0,100,0),
+(@PATH,34,-4993.734,-980.054,23.75917,0,0,0,100,0),
+(@PATH,35,-5012.753,-967.9377,24.0925,0,0,0,100,0),
+(@PATH,36,-5032.862,-971.138,30.92584,0,0,0,100,0),
+(@PATH,37,-5052.127,-982.1085,39.0092,0,0,0,100,0),
+(@PATH,38,-5060.675,-991.1913,52.28708,0,0,0,100,0),
+(@PATH,39,-5072.277,-1008.99,67.84268,0,0,0,100,0),
+(@PATH,40,-5090.256,-1005.558,79.18673,0,0,0,100,0),
+(@PATH,41,-5106.005,-1004.311,73.88409,0,0,0,100,0),
+(@PATH,42,-5132.349,-1102.871,74.67264,0,0,0,100,0),
+(@PATH,43,-5200.281,-1166.383,88.48215,0,0,0,100,0);
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_27_00_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_27_00_world_sai.sql
new file mode 100644
index 00000000000..9c0002572c3
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_27_00_world_sai.sql
@@ -0,0 +1,2 @@
+SET @SPELL := 31696;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`= 13 AND `SourceEntry`=@SPELL;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_30_00_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_30_00_world_misc.sql
new file mode 100644
index 00000000000..0e81b2debaa
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_30_00_world_misc.sql
@@ -0,0 +1,103 @@
+SET @GOSSIP := 8301;
+SET @EVENT := 13888;
+SET @BLOOD_MOUNT := 19085;
+SET @BORAK := 21293;
+SET @ICARIUS := 21409;
+SET @ZARATH := 21410;
+SET @GOBJECT := 184798;
+
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=10356;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES
+(@GOSSIP,10356);
+
+DELETE FROM `gossip_menu_option` WHERE `menu_id`=@GOSSIP;
+INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`) VALUES
+(@GOSSIP,0,0,'Borak, I need another bundle of bloodthistle.',1,1,0,0,0,0,'');
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=@GOSSIP;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(15,@GOSSIP,0,0,0,9,0,10570,0,0,0,0,0,'','Show gossip menu option if player has quest To Catch a Thistlehead'),
+(15,@GOSSIP,0,0,0,2,0,30616,1,0,1,0,0,'','Show gossip menu option if player doesn''t have item Bundle of Bloodthistle');
+
+DELETE FROM `creature_text` WHERE entry IN (@ZARATH,@ICARIUS,@BORAK);
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@BORAK,0,0,'Hide! Hide before they see you! Back up!',15,0,100,0,0,0,'Borak'),
+(@BORAK,1,0,'The time to strike is at hand. Terminate Icarius.',15,0,100,0,0,0,'Borak'),
+(@BORAK,2,0,'You have it. Do not lose it again!',12,0,100,5,0,0,'Borak'),
+(@ZARATH,0,0,'What is it, my lord?',12,0,100,6,0,0,'Zarath'),
+(@ZARATH,1,0,'My lord, surely you do not expect me to leave you unattended. Lord Illidan would have my head if anything were to happen to you.',12,0,100,1,0,0,'Zarath'),
+(@ZARATH,2,0,'As you wish, my lord.',12,0,100,66,0,0,'Zarath'),
+(@ICARIUS,0,0,'Halt!',12,0,100,1,0,0,'Icarius'),
+(@ICARIUS,1,0,'Zarath you must return to the Black Temple at once! I... I seem to have misplaced Lord Illidan''s orders. Quickly!',12,0,100,5,0,0,'Icarius'),
+(@ICARIUS,2,0,'Zarath, I am perfectly capable of making it up this road to Eclipse Point. If we do not deliver the missive, Lord Illidan will have both of our heads! You are dismissed!',12,0,100,1,0,0,'Icarius'),
+(@ICARIUS,3,0,'Ah, sweet, sweet bloodthistle... Probably left behind by one of those filthy addicts at Eclipse Point.',12,0,100,1,0,0,'Icarius'),
+(@ICARIUS,4,0,'Their loss is most definitely my gain...',12,0,100,275,0,0,'Icarius'),
+(@ICARIUS,5,0,'Envoy Icarius puts the bundle of bloodthistle in his robe.',16,0,100,0,0,0,'Icarius'),
+(@ICARIUS,6,0,'Ah, damn it all! Clever trap. Too bad you''ll never live to tell the tale...',12,0,100,1,0,0,'Icarius');
+
+DELETE FROM `creature_template_addon` WHERE entry = @ZARATH;
+INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes2`) VALUES
+(@ZARATH,@BLOOD_MOUNT,0);
+
+UPDATE `gameobject` SET `position_x`=-4057.190, `position_y`=1527.482, `position_z`=93.0938 WHERE `guid`=99970;
+
+UPDATE `creature_template` SET `gossip_menu_id`=8301 WHERE `entry`=@BORAK;
+UPDATE `creature_template` SET `faction_A`=1701, `faction_H`=1701, `speed_walk`=1.14286 WHERE `entry` IN (@ZARATH,@ICARIUS);
+
+UPDATE `creature_template` SET AIName='SmartAI' WHERE entry IN (@ZARATH,@ICARIUS,@BORAK);
+UPDATE `gameobject_template` SET `AIName`='SmartGameObjectAI' WHERE `entry`=@GOBJECT;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid` IN (@ZARATH,@ICARIUS,@BORAK);
+DELETE FROM `smart_scripts` WHERE `source_type`=1 AND `entryorguid`=@GOBJECT;
+DELETE FROM `smart_scripts` WHERE `source_type`=9 AND `entryorguid` IN (@ICARIUS*100,@ZARATH*100);
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@BORAK,0,0,0,38,0,100,0,1,1,0,0,1,0,0,0,0,0,0,17,50,100,0,0,0,0,0,'Borak - On Data Set - Say 0'),
+(@BORAK,0,1,0,38,0,100,0,2,2,0,0,1,1,0,0,0,0,0,17,50,100,0,0,0,0,0,'Borak - On Data Set - Say 1'),
+(@BORAK,0,2,3,62,0,100,0,@GOSSIP,0,0,0,56,30616,35,0,0,0,0,7,0,0,0,0,0,0,0,'Borak - On gossip select - Add Item to Player'),
+(@BORAK,0,3,4,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Borak - On gossip select - Close Gossip'),
+(@BORAK,0,4,0,61,0,100,0,0,0,0,0,1,2,0,0,0,0,0,17,50,100,0,0,0,0,0,'Borak - On gossip select - Say 2'),
+
+(@ZARATH,0,0,1,54,0,100,0,0,0,0,0,53,0,@ZARATH,0,10570,0,0,1,0,0,0,0,0,0,0,'Zarath - Just Summoned - Start Wp'),
+(@ZARATH,0,1,2,61,0,100,1,0,0,0,0,45,1,1,0,0,0,0,11,@BORAK,500,0,0,0,0,0,'Zarath - On Link - Set Data to Borak'),
+(@ZARATH,0,2,0,61,0,100,1,0,0,0,0,8,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Zarath - On Link - Set react state aggressive'),
+(@ZARATH,0,3,0,38,0,100,0,0,1,0,0,66,0,0,0,0,0,0,19,@ICARIUS,10,0,0,0,0,0,'Zarath - On Data Set - Turn to'),
+(@ZARATH,0,4,5,38,0,100,0,1,1,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,4.716,'Zarath - On Data Set - Set Orientation'),
+(@ZARATH,0,5,0,61,0,100,0,0,0,0,0,80,@ZARATH*100,2,0,0,0,0,1,0,0,0,0,0,0,0,'Zarath - On Link - Timed Script'),
+(@ZARATH,0,6,0,40,0,100,0,1,@ZARATH,0,0,101,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Zarath - WP Reached - Set Home Pos'),
+
+(@ICARIUS,0,0,1,54,0,100,0,0,0,0,0,53,0,@ICARIUS,0,0,0,0,1,0,0,0,0,0,0,0,'Icarius - Just Summoned - Start Wp'),
+(@ICARIUS,0,1,0,61,0,100,0,0,0,0,0,8,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Icarius - Just Summoned - Set react state aggressive'),
+(@ICARIUS,0,2,0,40,0,100,0,1,@ICARIUS,0,0,80,@ICARIUS*100,2,0,0,0,0,1,0,0,0,0,0,0,0,'Icarius - WP reached - Call Action Script'),
+(@ICARIUS,0,3,0,4,1,100,1,0,0,0,0,1,6,0,0,0,0,0,1,0,0,0,0,0,0,0,'Icarius - On aggro (phase 1) - Say text 6'),
+
+(@GOBJECT,1,0,0,38,0,100,0,3,3,0,0,44,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Bundle of Bloodthistle - On data 3 3 set - Set phase 2'),
+
+(@ZARATH*100,9,0,0,0,0,100,0,1500,1500,0,0,46,100,0,0,0,0,0,1,0,0,0,0,0,0,0,'Zarath - Move forward'),
+
+(@ICARIUS*100,9,0,0,0,0,100,0,1000,1000,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Icarius - Say Text 0'),
+(@ICARIUS*100,9,1,0,0,0,100,0,2000,2000,0,0,1,0,0,0,0,0,0,19,@ZARATH,10,0,0,0,0,0,'Zarath - Say Text 0 Zarath'),
+(@ICARIUS*100,9,2,0,0,0,100,0,6500,6500,0,0,66,0,0,0,0,0,0,19,@ZARATH,10,0,0,0,0,0,'Icarius - Turn to'),
+(@ICARIUS*100,9,3,0,0,0,100,0,500,500,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Icarius - Say Text 1'),
+(@ICARIUS*100,9,4,0,0,0,100,0,1000,1000,0,0,45,0,1,0,0,0,0,19,@ZARATH,10,0,0,0,0,0,'Zarath - Set data 0 1'),
+(@ICARIUS*100,9,5,0,0,0,100,0,5000,5000,0,0,1,1,0,0,0,0,0,19,@ZARATH,10,0,0,0,0,0,'Zarath - Say Text 1 Zarath'),
+(@ICARIUS*100,9,6,0,0,0,100,0,7000,7000,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Icarius - Say Text 2'),
+(@ICARIUS*100,9,7,0,0,0,100,0,6000,6000,0,0,1,2,0,0,0,0,0,19,@ZARATH,10,0,0,0,0,0,'Zarath - Say Text 2 Zarath'),
+(@ICARIUS*100,9,8,0,0,0,100,0,3000,3000,0,0,45,1,1,0,0,0,0,19,@ZARATH,10,0,0,0,0,0,'Zarath - Set Data 1 1'),
+(@ICARIUS*100,9,9,0,0,0,100,0,1000,1000,0,0,66,0,0,0,0,0,0,20,@GOBJECT,50,0,0,0,0,0,'Icarius - Turn to'),
+(@ICARIUS*100,9,10,0,0,0,100,0,4000,4000,0,0,1,3,0,0,0,0,0,1,0,0,0,0,0,0,0,'Icarius - Say Text 3'),
+(@ICARIUS*100,9,11,0,0,0,100,0,6000,6000,0,0,1,4,0,0,0,0,0,1,0,0,0,0,0,0,0,'Icarius - Say Text 4'),
+(@ICARIUS*100,9,12,0,0,0,100,0,4000,4000,0,0,69,0,0,0,0,0,0,20,@GOBJECT,50,0,0,0,0,0,'Icarius - Go to GO PoS'),
+(@ICARIUS*100,9,13,0,0,0,100,0,5000,5000,0,0,5,16,0,0,0,0,0,1,0,0,0,0,0,0,0,'Icarius - Emote Kneel'),
+(@ICARIUS*100,9,14,0,0,0,100,0,3000,3000,0,0,1,5,0,0,0,0,0,1,0,0,0,0,0,0,0,'Icarius - Say Text 5'),
+(@ICARIUS*100,9,15,0,0,0,100,0,0,0,0,0,45,3,3,0,0,0,0,20,@GOBJECT,5,0,0,0,0,0,'Icarius - Set Data Gameobject'),
+(@ICARIUS*100,9,16,0,0,0,100,1,3000,3000,0,0,45,2,2,0,0,0,0,11,@BORAK,100,0,0,0,0,0,'Icarius - Set Data 2 2'),
+(@ICARIUS*100,9,17,0,0,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Icarius - Set event phase 1');
+
+DELETE FROM `event_scripts` WHERE `id`=@EVENT;
+INSERT INTO `event_scripts` (`id`,`delay`,`command`,`datalong`,`datalong2`,`dataint`,`x`,`y`,`z`,`o`) VALUES
+(@EVENT,0,10,@ZARATH,80000,0,-4055.979,1478.097,87.927,1.501698),
+(@EVENT,0,10,@ICARIUS,120000,0,-4052.285,1478.886,87.8424,1.604585);
+
+DELETE FROM `waypoints` WHERE `entry` IN (@ZARATH,@ICARIUS);
+INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`point_comment`) VALUES
+(@ZARATH,1,-4058.758,1515.231,91.292,'Zarath'),
+(@ICARIUS,1,-4054.427,1515.515,91.511,'Icarius');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_31_00_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_31_00_world_misc.sql
new file mode 100644
index 00000000000..1bc46748f96
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_05_31_00_world_misc.sql
@@ -0,0 +1,35 @@
+-- DB/Misc: Fix: Prevent chat/spell flood, Prevent summon spells from overwriting.
+
+-- Prevent chat/spell flood
+UPDATE `smart_scripts` SET `event_flags`=1 WHERE `entryorguid`=2358 AND `source_type`=0 AND `id`=9 AND `link`=10;
+UPDATE `smart_scripts` SET `event_flags`=1 WHERE `entryorguid`=2358 AND `source_type`=0 AND `id`=10 AND `link`=0;
+UPDATE `smart_scripts` SET `event_flags`=1 WHERE `entryorguid`=2358 AND `source_type`=0 AND `id`=11 AND `link`=12;
+UPDATE `smart_scripts` SET `event_flags`=1 WHERE `entryorguid`=2358 AND `source_type`=0 AND `id`=12 AND `link`=0;
+
+-- Prevent chat flood / ..run away in fear! / Manually checked one by one! (64 NPC's)
+UPDATE `smart_scripts` SET `event_flags` = 1 WHERE `entryorguid` IN (429,453,548,1166,1867,1920,2369,4063,5839,7075,11319,11324,15281,15401,15417,15938,15945,15970,15971,16204) AND `source_type` = 0 AND `id` = 12 AND `link` = 13;
+UPDATE `smart_scripts` SET `event_flags` = 1 WHERE `entryorguid` IN (429,453,548,1166,1867,1920,2369,4063,5839,7075,11319,11324,15281,15401,15417,15938,15945,15970,15971,16204) AND `source_type` = 0 AND `id` = 13 AND `link` = 0;
+UPDATE `smart_scripts` SET `event_flags` = 1 WHERE `entryorguid` IN (1065,1173,1397,1914,1915,2120,2371,2376,6008,8550,9449,16249,16318,16337) AND `source_type` = 0 AND `id` = 13 AND `link` = 14;
+UPDATE `smart_scripts` SET `event_flags` = 1 WHERE `entryorguid` IN (1065,1124,1173,1397,1914,1915,2120,2245,2371,2376,6008,8550,9449,16249,16318,16337) AND `source_type` = 0 AND `id` = 14 AND `link` = 0;
+UPDATE `smart_scripts` SET `event_flags` = 1 WHERE `entryorguid` IN (1889,2375,2387,8566,9450,16317,16344,25073) AND `source_type` = 0 AND `id` = 14 AND `link` = 15;
+UPDATE `smart_scripts` SET `event_flags` = 1 WHERE `entryorguid` IN (1124,1889,2375,2387,8566,9450,16317,16344,25073) AND `source_type` = 0 AND `id` = 15 AND `link` = 0;
+UPDATE `smart_scripts` SET `event_flags` = 1 WHERE `entryorguid` IN (1123,1162,2245,2554,9451,16403) AND `source_type` = 0 AND `id` = 15 AND `link` = 16;
+UPDATE `smart_scripts` SET `event_flags` = 1 WHERE `entryorguid` IN (1009,1013,1123,1162,2554,7246,9451,16403) AND `source_type` = 0 AND `id` = 16 AND `link` = 0;
+UPDATE `smart_scripts` SET `event_flags` = 1 WHERE `entryorguid` IN (2276,2428,4064,4463,10824,12322) AND `source_type` = 0 AND `id` = 16 AND `link` = 17;
+UPDATE `smart_scripts` SET `event_flags` = 1 WHERE `entryorguid` IN (2276,2428,4064,4463,10824,12322) AND `source_type` = 0 AND `id` = 17 AND `link` = 0;
+UPDATE `smart_scripts` SET `event_flags` = 1 WHERE `entryorguid` IN (436,4462,17694) AND `source_type` = 0 AND `id` = 17 AND `link` = 18;
+UPDATE `smart_scripts` SET `event_flags` = 1 WHERE `entryorguid` IN (436,4462,17694) AND `source_type` = 0 AND `id` = 18 AND `link` = 0;
+UPDATE `smart_scripts` SET `event_flags` = 1 WHERE `entryorguid` = 8564 AND `source_type` = 0 AND `id` = 18 AND `link` = 19; -- Ranger - Allow Combat Movement
+UPDATE `smart_scripts` SET `event_flags` = 1 WHERE `entryorguid` = 8564 AND `source_type` = 0 AND `id` = 19 AND `link` = 0; -- Ranger - Flee For Assist
+UPDATE `smart_scripts` SET `event_flags` = 1 WHERE `entryorguid` = 24683 AND `source_type` = 0 AND `id` = 19 AND `link` = 20; -- Sunblade Mage Guard - Allow Combat Movement
+UPDATE `smart_scripts` SET `event_flags` = 1 WHERE `entryorguid` = 24683 AND `source_type` = 0 AND `id` = 20 AND `link` = 0; -- Sunblade Mage Guard - Flee For Assist
+
+-- Prevent summon spells from overwriting each other's cast time, earlier script had wrong timers..
+UPDATE `smart_scripts` SET `link`=15 WHERE `entryorguid`=1124 AND `source_type`=0 AND `id`=14 AND `link`=01;
+UPDATE `smart_scripts` SET `event_type`=61, `event_flags`=1 WHERE `entryorguid`=1124 AND `source_type`=0 AND `id`=15 AND `link`=0;
+UPDATE `smart_scripts` SET `event_param1`=9100, `event_param2`=14900 WHERE `entryorguid`=2358 AND `source_type`=0 AND `id`=9 AND `link`=10;
+UPDATE `smart_scripts` SET `event_param1`=4700, `event_param2`=11100 WHERE `entryorguid`=2358 AND `source_type`=0 AND `id`=11 AND `link`=12;
+UPDATE `smart_scripts` SET `event_flags`=1 WHERE `entryorguid` IN (429,453) AND `source_type`=0 AND `id`=12 AND `link`=13;
+UPDATE `smart_scripts` SET `event_flags`=1 WHERE `entryorguid` IN (1009,1065,1397) AND `source_type`=0 AND `id`=13 AND `link`=14;
+UPDATE `smart_scripts` SET `event_flags`=1 WHERE `entryorguid` IN (1009,1013,1123,2245,2554) AND `source_type`=0 AND `id`=15 AND `link`=16;
+UPDATE `smart_scripts` SET `event_flags`=1 WHERE `entryorguid` = 1009 AND `source_type`=0 AND `id`=14 AND `link`=15;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_01_00_world_creature_template.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_01_00_world_creature_template.sql
new file mode 100644
index 00000000000..1c56f1979f8
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_01_00_world_creature_template.sql
@@ -0,0 +1,2 @@
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry` IN (24021,3094,23905,27376,27378,27379,27381);
+DELETE FROM `smart_scripts` WHERE `entryorguid`=26917;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_01_01_world_fishing_loot_template.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_01_01_world_fishing_loot_template.sql
new file mode 100644
index 00000000000..0a0d8f842fa
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_01_01_world_fishing_loot_template.sql
@@ -0,0 +1,14 @@
+DELETE FROM `skill_fishing_base_level` WHERE `entry`=4813;
+INSERT INTO `skill_fishing_base_level`(`entry`,`skill`) VALUE
+(4813,450);
+
+DELETE FROM `fishing_loot_template` WHERE `entry`=4813;
+INSERT INTO `fishing_loot_template`(`entry`,`item`,`ChanceOrQuestChance`,`groupid`) VALUES
+(4813,41808,58,1),
+(4813,43572,20.5,1),
+(4813,36794,5.4,1),
+(4813,4875,5,1),
+(4813,3671,4.5,1),
+(4813,25447,4.5,1),
+(4813,44475,1.1,1),
+(4813,37705,1,1);
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_02_00_world_achievement_criteria_data.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_02_00_world_achievement_criteria_data.sql
new file mode 100644
index 00000000000..053ade0486d
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_02_00_world_achievement_criteria_data.sql
@@ -0,0 +1,16 @@
+DELETE FROM `disables` WHERE `sourceType`=4 AND `entry` IN (10082,10083,10084,10085,10086,10087);
+
+DELETE FROM `achievement_criteria_data` WHERE `criteria_id` IN (10082,10083,10084,10085,10086,10087);
+INSERT INTO `achievement_criteria_data` (`criteria_id`, `type`, `value1`, `value2`, `ScriptName`) VALUES
+(10082, 11, 0, 0, 'achievement_assembly_i_choose_you'),
+(10082, 12, 0, 0, ''),
+(10083, 11, 0, 0, 'achievement_assembly_i_choose_you'),
+(10083, 12, 0, 0, ''),
+(10084, 11, 0, 0, 'achievement_assembly_i_choose_you'),
+(10084, 12, 0, 0, ''),
+(10085, 11, 0, 0, 'achievement_assembly_i_choose_you'),
+(10085, 12, 1, 0, ''),
+(10086, 11, 0, 0, 'achievement_assembly_i_choose_you'),
+(10086, 12, 1, 0, ''),
+(10087, 11, 0, 0, 'achievement_assembly_i_choose_you'),
+(10087, 12, 1, 0, '');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_02_01_world_conditions.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_02_01_world_conditions.sql
new file mode 100644
index 00000000000..4f3993bd1e0
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_02_01_world_conditions.sql
@@ -0,0 +1,78 @@
+-- Add option conditions for mage trainers
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (15) AND `SourceGroup` IN (63,64,4484,4485,4486,4517,4518,4519,4520,4537,4538,4539,4552,4651,4654,4660,4661,4685,4686,6648,7264,9990,9580,7366,4535);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(15,63,0,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,63,1,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,63,2,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,64,0,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,64,1,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,64,2,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4484,0,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4484,1,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4484,2,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4485,0,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4485,1,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4485,2,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4486,0,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4486,1,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4486,2,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4517,0,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4517,1,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4517,2,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4518,0,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4518,1,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4518,2,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4519,0,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4519,1,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4519,2,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4520,0,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4520,1,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4520,2,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4537,0,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4537,1,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4537,2,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4538,0,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4538,1,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4538,2,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4539,0,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4539,1,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4539,2,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4552,0,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4552,1,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4552,2,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4651,0,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4651,1,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4651,2,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4654,0,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4654,1,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4654,2,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4660,0,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4660,1,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4660,2,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4661,0,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4661,1,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4661,2,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4685,0,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4685,1,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4685,2,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4686,0,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4686,1,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4686,2,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,6648,0,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,6648,1,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,6648,2,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,7264,0,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,7264,1,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,7264,2,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,9990,0,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,9990,1,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,9990,2,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,9580,0,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,9580,1,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,9580,2,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,7366,0,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,7366,1,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,7366,2,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4535,0,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4535,1,0,15,128,0,0,0,'','Show gossip option if player is a mage'),
+(15,4535,2,0,15,128,0,0,0,'','Show gossip option if player is a mage');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_02_02_world_conditions.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_02_02_world_conditions.sql
new file mode 100644
index 00000000000..9d1b80e7a3f
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_02_02_world_conditions.sql
@@ -0,0 +1,78 @@
+-- Add option conditions for Warlock trainers
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (15) AND `SourceGroup` IN (1503,1522,2381,2383,2384,4503,4504,4505,4566,4567,4603,4604,4609,4610,4641,4643,4655,4656,4667,4681,4682,6628,7437,7566,4642);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(15,1503,0,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,1503,1,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,1503,2,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,1522,0,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,1522,1,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,1522,2,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,2381,0,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,2381,1,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,2381,2,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,2383,0,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,2383,1,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,2383,2,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,2384,0,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,2384,1,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,2384,2,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4503,0,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4503,1,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4503,2,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4504,0,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4504,1,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4504,2,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4505,0,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4505,1,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4505,2,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4566,0,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4566,1,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4566,2,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4567,0,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4567,1,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4567,2,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4603,0,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4603,1,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4603,2,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4604,0,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4604,1,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4604,2,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4609,0,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4609,1,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4609,2,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4610,0,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4610,1,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4610,2,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4641,0,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4641,1,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4641,2,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4643,0,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4643,1,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4643,2,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4655,0,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4655,1,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4655,2,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4656,0,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4656,1,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4656,2,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4667,0,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4667,1,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4667,2,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4681,0,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4681,1,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4681,2,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4682,0,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4682,1,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4682,2,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,6628,0,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,6628,1,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,6628,2,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,7437,0,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,7437,1,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,7437,2,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,7566,0,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,7566,1,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,7566,2,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4642,0,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4642,1,0,15,256,0,0,0,'','Show gossip option if player is a Warlock'),
+(15,4642,2,0,15,256,0,0,0,'','Show gossip option if player is a Warlock');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_02_03_world_conditions.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_02_03_world_conditions.sql
new file mode 100644
index 00000000000..f38ce3caf3e
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_02_03_world_conditions.sql
@@ -0,0 +1,42 @@
+-- Add option conditions for Paladin trainers
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (15) AND `SourceGroup` IN (2304,4556,4557,4469,4470,4471,4662,4463,4464,4677,4678,7260,8111);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(15,2304,0,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,2304,1,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,2304,2,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,4556,0,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,4556,1,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,4556,2,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,4557,0,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,4557,1,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,4557,2,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,4469,0,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,4469,1,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,4469,2,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,4470,0,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,4470,1,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,4470,2,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,4471,0,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,4471,1,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,4471,2,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,4662,0,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,4662,1,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,4662,2,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,4463,0,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,4463,1,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,4463,2,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,4464,0,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,4464,1,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,4464,2,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,4677,0,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,4677,1,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,4677,2,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,4678,0,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,4678,1,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,4678,2,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,7260,0,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,7260,1,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,7260,2,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,8111,0,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,8111,1,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,8111,2,0,15,2,0,0,0,'','Show gossip option if player is a Paladin');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_02_04_world_conditions.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_02_04_world_conditions.sql
new file mode 100644
index 00000000000..82ee44df19d
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_02_04_world_conditions.sql
@@ -0,0 +1,93 @@
+-- Add option conditions for Warrior trainers
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (15) AND `SourceGroup` IN (523,655,656,4091,4475,4481,4482,4509,4511,4525,4526,4527,4546,4547,4548,4568,4569,4570,4578,4579,4581,4645,4649,4650,4653,4683,4684,4696,4697,7263);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(15,523,0,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,523,1,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,523,2,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,655,0,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,655,1,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,655,2,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,656,0,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,656,1,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,656,2,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4091,0,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4091,1,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4091,2,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4475,0,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4475,1,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4475,2,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4481,0,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4481,1,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4481,2,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4482,0,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4482,1,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4482,2,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4509,0,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4509,1,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4509,2,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4511,0,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4511,1,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4511,2,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4525,0,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4525,1,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4525,2,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4526,0,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4526,1,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4526,2,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4527,0,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4527,1,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4527,2,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4546,0,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4546,1,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4546,2,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4547,0,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4547,1,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4547,2,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4548,0,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4548,1,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4548,2,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4568,0,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4568,1,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4568,2,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4569,0,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4569,1,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4569,2,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4570,0,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4570,1,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4570,2,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4578,0,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4578,1,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4578,2,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4579,0,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4579,1,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4579,2,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4581,0,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4581,1,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4581,2,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4645,0,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4645,1,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4645,2,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4649,0,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4649,1,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4649,2,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4650,0,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4650,1,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4650,2,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4653,0,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4653,1,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4653,2,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4683,0,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4683,1,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4683,2,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4684,0,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4684,1,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4684,2,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4696,0,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4696,1,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4696,2,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4697,0,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4697,1,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,4697,2,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,7263,0,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,7263,1,0,15,1,0,0,0,'','Show gossip option if player is a Warrior'),
+(15,7263,2,0,15,1,0,0,0,'','Show gossip option if player is a Warrior');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_02_05_world_conditions.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_02_05_world_conditions.sql
new file mode 100644
index 00000000000..fdee846a275
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_02_05_world_conditions.sql
@@ -0,0 +1,49 @@
+-- Add option conditions for Druid trainers
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (15) AND `SourceGroup` IN (1403,3921,3924,3925,3926,4507,4508,4571,4605,4606,4607,4687,4688,7567,4646);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(15,1403,0,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,1403,1,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,1403,2,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,1403,3,0,8,0,3781,0,0,'','Mathrengyl Bearwalker - Show gossip option if player has rewarded quest 3781'),
+(15,3921,0,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,3921,1,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,3921,2,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,3924,0,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,3924,1,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,3924,2,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,3925,0,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,3925,1,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,3925,2,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,3926,0,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,3926,1,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,3926,2,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,4507,0,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,4507,1,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,4507,2,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,4508,0,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,4508,1,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,4508,2,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,4571,0,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,4571,1,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,4571,2,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,4605,0,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,4605,1,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,4605,2,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,4606,0,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,4606,1,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,4606,2,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,4607,0,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,4607,1,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,4607,2,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,4687,0,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,4687,1,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,4687,2,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,4688,0,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,4688,1,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,4688,2,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,7567,0,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,7567,1,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,7567,2,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,4646,0,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,4646,1,0,15,1024,0,0,0,'','Show gossip option if player is a Druid'),
+(15,4646,2,0,15,1024,0,0,0,'','Show gossip option if player is a Druid');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_02_06_world_conditions.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_02_06_world_conditions.sql
new file mode 100644
index 00000000000..b2605b97d26
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_02_06_world_conditions.sql
@@ -0,0 +1,4 @@
+-- Add option conditions for Druid trainers
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (15) AND `SourceGroup` IN (1403) AND `SourceEntry` IN (3);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(15,1403,3,0,8,0,3781,0,0,'','Mathrengyl Bearwalker - Show gossip option if player has rewarded quest 3781');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_02_07_world_conditions.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_02_07_world_conditions.sql
new file mode 100644
index 00000000000..696c69ca62e
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_02_07_world_conditions.sql
@@ -0,0 +1,80 @@
+-- Add option conditions for Hunter trainers
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (15) AND `SourceGroup` IN (4008,4009,4010,4011,4012,4017,4023,4101,4472,4473,4474,4506,4524,4549,4550,4551,4647,4648,4657,4675,4693,4695,6652,7262,7368);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(15,4008,0,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4008,1,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4008,2,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4009,0,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4009,1,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4009,2,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4010,0,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4010,1,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4010,2,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4011,0,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4011,1,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4011,2,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4012,0,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4012,1,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4012,2,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4017,0,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4017,1,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4017,2,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4023,0,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4023,1,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4023,2,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4101,0,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4101,1,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4101,2,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4472,0,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4472,1,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4472,2,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4473,0,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4473,1,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4473,2,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4474,0,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4474,1,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4474,2,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4506,0,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4506,1,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4506,2,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4524,0,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4524,1,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4524,2,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4549,0,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4549,1,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4549,2,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4550,0,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4550,1,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4550,2,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4551,0,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4551,1,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4551,2,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4647,0,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4647,1,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4647,2,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4648,0,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4648,1,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4648,2,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4657,0,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4657,1,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4657,2,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4675,0,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4675,1,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4675,2,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4693,0,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4693,1,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4693,2,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4695,0,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4695,1,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,4695,2,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,6652,0,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,6652,1,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,6652,2,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,7262,0,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,7262,1,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,7262,2,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,7368,0,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,7368,1,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,7368,2,0,15,4,0,0,0,'','Show gossip option if player is a Hunter'),
+(15,7368,3,0,9,0,9454,0,0,'','Acteon - Show gossip option if player has quest 9454'),
+(15,7368,4,0,9,0,10324,0,0,'','Acteon - Show gossip option if player has quest 10324');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_02_08_world_conditions.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_02_08_world_conditions.sql
new file mode 100644
index 00000000000..2fe812c1934
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_02_08_world_conditions.sql
@@ -0,0 +1,75 @@
+-- Add option conditions for Rogue trainers
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (15) AND `SourceGroup` IN (85,141,381,410,411,436,3984,4502,4512,4513,4540,4541,4542,4561,4562,4575,4576,4577,4658,4659,4676,4690,5061,6650);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(15,85,0,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,85,1,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,85,2,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,141,0,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,141,1,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,141,2,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,381,0,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,381,1,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,381,2,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,410,0,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,410,1,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,410,2,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,411,0,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,411,1,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,411,2,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,436,0,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,436,1,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,436,2,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,3984,0,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,3984,1,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,3984,2,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4502,0,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4502,1,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4502,2,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4512,0,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4512,1,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4512,2,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4513,0,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4513,1,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4513,2,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4540,0,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4540,1,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4540,2,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4541,0,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4541,1,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4541,2,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4542,0,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4542,1,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4542,2,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4561,0,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4561,1,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4561,2,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4562,0,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4562,1,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4562,2,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4575,0,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4575,1,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4575,2,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4576,0,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4576,1,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4576,2,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4577,0,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4577,1,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4577,2,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4658,0,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4658,1,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4658,2,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4659,0,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4659,1,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4659,2,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4676,0,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4676,1,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4676,2,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4690,0,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4690,1,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4690,2,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,5061,0,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,5061,1,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,5061,2,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,6650,0,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,6650,1,0,15,8,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,6650,2,0,15,8,0,0,0,'','Show gossip option if player is a Rogue');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_02_09_world_conditions.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_02_09_world_conditions.sql
new file mode 100644
index 00000000000..647e608df87
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_02_09_world_conditions.sql
@@ -0,0 +1,99 @@
+-- Add option conditions for Priest trainers
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (15) AND `SourceGroup` IN (3642,3643,3644,3645,4466,4467,4468,4521,4522,4523,4531,4532,4533,4543,4544,4545,4558,4559,4572,4573,4574,4665,4666,4679,4680,4691,4692,4801,6649,7265,7349,7438);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(15,3642,0,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,3642,1,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,3642,2,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,3643,0,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,3643,1,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,3643,2,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,3644,0,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,3644,1,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,3644,2,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,3645,0,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,3645,1,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,3645,2,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4466,0,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4466,1,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4466,2,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4467,0,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4467,1,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4467,2,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4468,0,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4468,1,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4468,2,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4521,0,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4521,1,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4521,2,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4522,0,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4522,1,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4522,2,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4523,0,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4523,1,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4523,2,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4531,0,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4531,1,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4531,2,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4532,0,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4532,1,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4532,2,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4533,0,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4533,1,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4533,2,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4543,0,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4543,1,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4543,2,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4544,0,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4544,1,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4544,2,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4545,0,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4545,1,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4545,2,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4558,0,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4558,1,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4558,2,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4559,0,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4559,1,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4559,2,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4572,0,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4572,1,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4572,2,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4573,0,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4573,1,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4573,2,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4574,0,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4574,1,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4574,2,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4665,0,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4665,1,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4665,2,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4666,0,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4666,1,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4666,2,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4679,0,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4679,1,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4679,2,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4680,0,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4680,1,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4680,2,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4691,0,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4691,1,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4691,2,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4692,0,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4692,1,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4692,2,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4801,0,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4801,1,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,4801,2,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,6649,0,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,6649,1,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,6649,2,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,7265,0,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,7265,1,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,7265,2,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,7349,0,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,7349,1,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,7349,2,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,7438,0,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,7438,1,0,15,16,0,0,0,'','Show gossip option if player is a Priest'),
+(15,7438,2,0,15,16,0,0,0,'','Show gossip option if player is a Priest');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_03_00_world_conditions.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_03_00_world_conditions.sql
new file mode 100644
index 00000000000..518479930f2
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_03_00_world_conditions.sql
@@ -0,0 +1,42 @@
+-- Add option conditions for Shaman trainers
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (15) AND `SourceGroup` IN (4103,4104,4515,4516,4528,4529,4530,4652,5123,7357,7467,7522,8110,7377);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(15,4103,0,0,15,64,0,0,0,'','Show gossip option if player is a Shaman'),
+(15,4103,1,0,15,64,0,0,0,'','Show gossip option if player is a Shaman'),
+(15,4103,2,0,15,64,0,0,0,'','Show gossip option if player is a Shaman'),
+(15,4104,0,0,15,64,0,0,0,'','Show gossip option if player is a Shaman'),
+(15,4104,1,0,15,64,0,0,0,'','Show gossip option if player is a Shaman'),
+(15,4104,2,0,15,64,0,0,0,'','Show gossip option if player is a Shaman'),
+(15,4515,0,0,15,64,0,0,0,'','Show gossip option if player is a Shaman'),
+(15,4515,1,0,15,64,0,0,0,'','Show gossip option if player is a Shaman'),
+(15,4515,2,0,15,64,0,0,0,'','Show gossip option if player is a Shaman'),
+(15,4516,0,0,15,64,0,0,0,'','Show gossip option if player is a Shaman'),
+(15,4516,1,0,15,64,0,0,0,'','Show gossip option if player is a Shaman'),
+(15,4516,2,0,15,64,0,0,0,'','Show gossip option if player is a Shaman'),
+(15,4528,0,0,15,64,0,0,0,'','Show gossip option if player is a Shaman'),
+(15,4528,1,0,15,64,0,0,0,'','Show gossip option if player is a Shaman'),
+(15,4528,2,0,15,64,0,0,0,'','Show gossip option if player is a Shaman'),
+(15,4529,0,0,15,64,0,0,0,'','Show gossip option if player is a Shaman'),
+(15,4529,1,0,15,64,0,0,0,'','Show gossip option if player is a Shaman'),
+(15,4529,2,0,15,64,0,0,0,'','Show gossip option if player is a Shaman'),
+(15,4530,0,0,15,64,0,0,0,'','Show gossip option if player is a Shaman'),
+(15,4530,1,0,15,64,0,0,0,'','Show gossip option if player is a Shaman'),
+(15,4530,2,0,15,64,0,0,0,'','Show gossip option if player is a Shaman'),
+(15,4652,0,0,15,64,0,0,0,'','Show gossip option if player is a Shaman'),
+(15,4652,1,0,15,64,0,0,0,'','Show gossip option if player is a Shaman'),
+(15,4652,2,0,15,64,0,0,0,'','Show gossip option if player is a Shaman'),
+(15,5123,0,0,15,64,0,0,0,'','Show gossip option if player is a Shaman'),
+(15,5123,1,0,15,64,0,0,0,'','Show gossip option if player is a Shaman'),
+(15,5123,2,0,15,64,0,0,0,'','Show gossip option if player is a Shaman'),
+(15,7357,0,0,15,64,0,0,0,'','Show gossip option if player is a Shaman'),
+(15,7357,1,0,15,64,0,0,0,'','Show gossip option if player is a Shaman'),
+(15,7357,2,0,15,64,0,0,0,'','Show gossip option if player is a Shaman'),
+(15,7467,0,0,15,64,0,0,0,'','Show gossip option if player is a Shaman'),
+(15,7467,1,0,15,64,0,0,0,'','Show gossip option if player is a Shaman'),
+(15,7467,2,0,15,64,0,0,0,'','Show gossip option if player is a Shaman'),
+(15,8110,0,0,15,64,0,0,0,'','Show gossip option if player is a Shaman'),
+(15,8110,1,0,15,64,0,0,0,'','Show gossip option if player is a Shaman'),
+(15,8110,2,0,15,64,0,0,0,'','Show gossip option if player is a Shaman'),
+(15,7377,0,0,15,64,0,0,0,'','Show gossip option if player is a Shaman'),
+(15,7377,1,0,15,64,0,0,0,'','Show gossip option if player is a Shaman'),
+(15,7377,2,0,15,64,0,0,0,'','Show gossip option if player is a Shaman');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_03_00_world_trinity_string.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_03_00_world_trinity_string.sql
new file mode 100644
index 00000000000..80ad953b3b7
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_03_00_world_trinity_string.sql
@@ -0,0 +1,9 @@
+DELETE FROM `trinity_string` WHERE `entry`=854 LIMIT 1;
+INSERT INTO `trinity_string` (`entry`, `content_default`, content_loc1, content_loc2, content_loc3, content_loc4, content_loc5, content_loc6, content_loc7, content_loc8) VALUES
+(854, 'â”” Mails: %d Read/%u Total', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+
+DELETE FROM `trinity_string` WHERE `entry`=871 LIMIT 1;
+INSERT INTO `trinity_string` (`entry`, `content_default`, content_loc1, content_loc2, content_loc3, content_loc4, content_loc5, content_loc6, content_loc7, content_loc8) VALUES
+(871, '│ Level: %u', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+
+UPDATE `trinity_string` SET `content_default`='│ Level: %u (%u/%u XP (%u XP left))' WHERE `entry`=843 LIMIT 1;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_03_02_world_conditions.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_03_02_world_conditions.sql
new file mode 100644
index 00000000000..6b542fef131
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_03_02_world_conditions.sql
@@ -0,0 +1,264 @@
+-- Gossip Condition for Ultham Ironhorn "Dwarf riding trainer"
+SET @GOSSIP := 4014;
+SET @TEXTYES := 4871;
+SET @TEXTNO := 5858;
+SET @FACTION := 47;
+SET @RACE := 4;
+SET @NOTRACE := 1787;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (14,15) AND `SourceGroup`=@GOSSIP;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(14,@GOSSIP,@TEXTYES,0,16,@RACE,0,0,0,'','Show gossip text if player is a Dwarf'),
+(14,@GOSSIP,@TEXTYES,1,5,@FACTION,128,0,0,'','Show gossip text if player is Exalted with Ironforge'),
+(14,@GOSSIP,@TEXTNO,0,16,@NOTRACE,0,0,0,'','Show gossip text if player is not a Dwarf'),
+(14,@GOSSIP,@TEXTNO,0,5,@FACTION,127,0,0,'','Show gossip text if player is Not Exalted with Ironforge'),
+(15,@GOSSIP,0,0,16,@RACE,0,0,0,'','Show gossip option if player is a Dwarf'),
+(15,@GOSSIP,0,1,5,@FACTION,128,0,0,'','Show gossip option if player is a Exalted with Ironforge');
+-- Add Any Missing Gossip Menu item
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTYES;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTYES);
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTNO;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTNO);
+-- Add Any Missing Gossip Option
+DELETE FROM `gossip_menu_option` WHERE menu_id=@GOSSIP;
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`)VALUES
+(@GOSSIP,0,3,"I seek training to ride a steed.",5,16,0,0,0,0,'');
+UPDATE `creature_template` SET `gossip_menu_id`=@GOSSIP WHERE `entry`=4772;
+
+-- Gossip Condition for Velma Warnam "Forsaken riding trainer"
+SET @GOSSIP := 4015;
+SET @TEXTYES := 4873;
+SET @TEXTNO := 5859;
+SET @FACTION := 68;
+SET @RACE := 16;
+SET @NOTRACE := 1775;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (14,15) AND `SourceGroup`=@GOSSIP;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(14,@GOSSIP,@TEXTYES,0,16,@RACE,0,0,0,'','Show gossip text if player is a Forsaken'),
+(14,@GOSSIP,@TEXTYES,1,5,@FACTION,128,0,0,'','Show gossip text if player is Exalted with Undercity'),
+(14,@GOSSIP,@TEXTNO,0,16,@NOTRACE,0,0,0,'','Show gossip text if player is not a Forsaken'),
+(14,@GOSSIP,@TEXTNO,0,5,@FACTION,127,0,0,'','Show gossip text if player is Not Exalted with Undercity'),
+(15,@GOSSIP,0,0,16,@RACE,0,0,0,'','Show gossip option if player is a Forsaken'),
+(15,@GOSSIP,0,1,5,@FACTION,128,0,0,'','Show gossip option if player is a Exalted with Undercity');
+-- Add Any Missing Gossip Menu item
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTYES;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTYES);
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTNO;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTNO);
+-- Add Any Missing Gossip Option
+DELETE FROM `gossip_menu_option` WHERE menu_id=@GOSSIP;
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`)VALUES
+(@GOSSIP,0,3,"I seek training to ride a steed.",5,16,0,0,0,0,'');
+
+-- Gossip Condition for Benjy Featherwhistle "Gnomeregan riding trainer"
+SET @GOSSIP := 4016;
+SET @TEXTYES := 4878;
+SET @TEXTNO := 5860;
+SET @FACTION := 54;
+SET @RACE := 64;
+SET @NOTRACE := 1727;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (14,15) AND `SourceGroup`=@GOSSIP;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(14,@GOSSIP,@TEXTYES,0,16,@RACE,0,0,0,'','Show gossip text if player is a Gnome'),
+(14,@GOSSIP,@TEXTYES,1,5,@FACTION,128,0,0,'','Show gossip text if player is Exalted with Gnomeregan'),
+(14,@GOSSIP,@TEXTNO,0,16,@NOTRACE,0,0,0,'','Show gossip text if player is not a Gnome'),
+(14,@GOSSIP,@TEXTNO,0,5,@FACTION,127,0,0,'','Show gossip text if player is Not Exalted with Gnomeregan'),
+(15,@GOSSIP,0,0,16,@RACE,0,0,0,'','Show gossip option if player is a Gnome'),
+(15,@GOSSIP,0,1,5,@FACTION,128,0,0,'','Show gossip option if player is a Exalted with Gnomeregan');
+-- Add Any Missing Gossip Menu item
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTYES;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTYES);
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTNO;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTNO);
+-- Add Any Missing Gossip Option
+DELETE FROM `gossip_menu_option` WHERE menu_id=@GOSSIP;
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`)VALUES
+(@GOSSIP,0,3,"I seek training to ride a steed.",5,16,0,0,0,0,'');
+
+-- Gossip Condition for Randel Hunter "Human riding trainer"
+SET @GOSSIP := 4018;
+SET @TEXTYES := 4876;
+SET @TEXTNO := 5861;
+SET @FACTION := 72;
+SET @RACE := 1;
+SET @NOTRACE := 1790;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (14,15) AND `SourceGroup`=@GOSSIP;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(14,@GOSSIP,@TEXTYES,0,16,@RACE,0,0,0,'','Show gossip text if player is a Human'),
+(14,@GOSSIP,@TEXTYES,1,5,@FACTION,128,0,0,'','Show gossip text if player is Exalted with Stormwind'),
+(14,@GOSSIP,@TEXTNO,0,16,@NOTRACE,0,0,0,'','Show gossip text if player is not a Human'),
+(14,@GOSSIP,@TEXTNO,0,5,@FACTION,127,0,0,'','Show gossip text if player is Not Exalted with Stormwind'),
+(15,@GOSSIP,0,0,16,@RACE,0,0,0,'','Show gossip option if player is a Human'),
+(15,@GOSSIP,0,1,5,@FACTION,128,0,0,'','Show gossip option if player is a Exalted with Stormwind');
+-- Add Any Missing Gossip Menu item
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTYES;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTYES);
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTNO;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTNO);
+-- Add Any Missing Gossip Option
+DELETE FROM `gossip_menu_option` WHERE menu_id=@GOSSIP;
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`)VALUES
+(@GOSSIP,0,3,"I seek training to ride a steed.",5,16,0,0,0,0,'');
+
+-- Gossip Condition for Jartsam "Night Elf riding trainer"
+SET @GOSSIP := 4019;
+SET @TEXTYES := 4877;
+SET @TEXTNO := 5862;
+SET @FACTION := 69;
+SET @RACE := 8;
+SET @NOTRACE := 1783;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (14,15) AND `SourceGroup`=@GOSSIP;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(14,@GOSSIP,@TEXTYES,0,16,@RACE,0,0,0,'','Show gossip text if player is a Night Elf'),
+(14,@GOSSIP,@TEXTYES,1,5,@FACTION,128,0,0,'','Show gossip text if player is Exalted with Darnassus'),
+(14,@GOSSIP,@TEXTNO,0,16,@NOTRACE,0,0,0,'','Show gossip text if player is not a Night Elf'),
+(14,@GOSSIP,@TEXTNO,0,5,@FACTION,127,0,0,'','Show gossip text if player is Not Exalted with Darnassus'),
+(15,@GOSSIP,0,0,16,@RACE,0,0,0,'','Show gossip option if player is a Night Elf'),
+(15,@GOSSIP,0,1,5,@FACTION,128,0,0,'','Show gossip option if player is a Exalted with Darnassus');
+-- Add Any Missing Gossip Menu item
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTYES;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTYES);
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTNO;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTNO);
+-- Add Any Missing Gossip Option
+DELETE FROM `gossip_menu_option` WHERE menu_id=@GOSSIP;
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`)VALUES
+(@GOSSIP,0,3,"I seek training to ride a steed.",5,16,0,0,0,0,'');
+
+-- Gossip Condition for Kildar "Orc riding trainer"
+SET @GOSSIP := 4020;
+SET @TEXTYES := 4879;
+SET @TEXTNO := 5863;
+SET @FACTION := 76;
+SET @RACE := 2;
+SET @NOTRACE := 1789;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (14,15) AND `SourceGroup`=@GOSSIP;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(14,@GOSSIP,@TEXTYES,0,16,@RACE,0,0,0,'','Show gossip text if player is an Orc'),
+(14,@GOSSIP,@TEXTYES,1,5,@FACTION,128,0,0,'','Show gossip text if player is Exalted with Orgrimmar'),
+(14,@GOSSIP,@TEXTNO,0,16,@NOTRACE,0,0,0,'','Show gossip text if player is not an Orc'),
+(14,@GOSSIP,@TEXTNO,0,5,@FACTION,127,0,0,'','Show gossip text if player is Not Exalted with Orgrimmar'),
+(15,@GOSSIP,0,0,16,@RACE,0,0,0,'','Show gossip option if player is an Orc'),
+(15,@GOSSIP,0,1,5,@FACTION,128,0,0,'','Show gossip option if player is a Exalted with Orgrimmar');
+-- Add Any Missing Gossip Menu item
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTYES;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTYES);
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTNO;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTNO);
+-- Add Any Missing Gossip Option
+DELETE FROM `gossip_menu_option` WHERE menu_id=@GOSSIP;
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`)VALUES
+(@GOSSIP,0,3,"I seek training to ride a steed.",5,16,0,0,0,0,'');
+
+-- Gossip Condition for Kar Stormsinger "Tauren riding trainer"
+SET @GOSSIP := 4021;
+SET @TEXTYES := 4874;
+SET @TEXTNO := 5864;
+SET @FACTION := 81;
+SET @RACE := 32;
+SET @NOTRACE := 1759;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (14,15) AND `SourceGroup`=@GOSSIP;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(14,@GOSSIP,@TEXTYES,0,16,@RACE,0,0,0,'','Show gossip text if player is a Tauren'),
+(14,@GOSSIP,@TEXTYES,1,5,@FACTION,128,0,0,'','Show gossip text if player is Exalted with Thunder Bluff'),
+(14,@GOSSIP,@TEXTNO,0,16,@NOTRACE,0,0,0,'','Show gossip text if player is not a Tauren'),
+(14,@GOSSIP,@TEXTNO,0,5,@FACTION,127,0,0,'','Show gossip text if player is Not Exalted with Thunder Bluff'),
+(15,@GOSSIP,0,0,16,@RACE,0,0,0,'','Show gossip option if player is a Tauren'),
+(15,@GOSSIP,0,1,5,@FACTION,128,0,0,'','Show gossip option if player is a Exalted with Thunder Bluff');
+-- Add Any Missing Gossip Menu item
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTYES;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTYES);
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTNO;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTNO);
+-- Add Any Missing Gossip Option
+DELETE FROM `gossip_menu_option` WHERE menu_id=@GOSSIP;
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`)VALUES
+(@GOSSIP,0,3,"I seek training to ride a steed.",5,16,0,0,0,0,'');
+
+-- Gossip Condition for Xar'Ti "Troll riding trainer"
+SET @GOSSIP := 4022;
+SET @TEXTYES := 4875;
+SET @TEXTNO := 5865;
+SET @FACTION := 530;
+SET @RACE := 128;
+SET @NOTRACE := 1663;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (14,15) AND `SourceGroup`=@GOSSIP;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(14,@GOSSIP,@TEXTYES,0,16,@RACE,0,0,0,'','Show gossip text if player is a Troll'),
+(14,@GOSSIP,@TEXTYES,1,5,@FACTION,128,0,0,'','Show gossip text if player is Exalted with Darkspear Trolls'),
+(14,@GOSSIP,@TEXTNO,0,16,@NOTRACE,0,0,0,'','Show gossip text if player is not a Troll'),
+(14,@GOSSIP,@TEXTNO,0,5,@FACTION,127,0,0,'','Show gossip text if player is Not Exalted with Darkspear Trolls'),
+(15,@GOSSIP,0,0,16,@RACE,0,0,0,'','Show gossip option if player is a Troll'),
+(15,@GOSSIP,0,1,5,@FACTION,128,0,0,'','Show gossip option if player is a Exalted with Darkspear Trolls');
+-- Add Any Missing Gossip Menu item
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTYES;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTYES);
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTNO;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTNO);
+-- Add Any Missing Gossip Option
+DELETE FROM `gossip_menu_option` WHERE menu_id=@GOSSIP;
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`)VALUES
+(@GOSSIP,0,3,"I seek training to ride a steed.",5,16,0,0,0,0,'');
+UPDATE `creature_template` SET `gossip_menu_id`=@GOSSIP WHERE `entry`=7953;
+
+-- Gossip Condition for Perascamin "Blood Elf riding trainer"
+SET @GOSSIP := 8275;
+SET @TEXTYES := 10308;
+SET @TEXTNO := 10310;
+SET @FACTION := 911;
+SET @RACE := 512;
+SET @NOTRACE := 1279;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (14,15) AND `SourceGroup`=@GOSSIP;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(14,@GOSSIP,@TEXTYES,0,16,@RACE,0,0,0,'','Show gossip text if player is a Blood Elf'),
+(14,@GOSSIP,@TEXTYES,1,5,@FACTION,128,0,0,'','Show gossip text if player is Exalted with Silvermoon City'),
+(14,@GOSSIP,@TEXTNO,0,16,@NOTRACE,0,0,0,'','Show gossip text if player is not a Blood Elf'),
+(14,@GOSSIP,@TEXTNO,0,5,@FACTION,127,0,0,'','Show gossip text if player is Not Exalted with Silvermoon City'),
+(15,@GOSSIP,0,0,16,@RACE,0,0,0,'','Show gossip option if player is a Blood Elf'),
+(15,@GOSSIP,0,1,5,@FACTION,128,0,0,'','Show gossip option if player is a Exalted with Silvermoon City');
+-- Add Any Missing Gossip Menu item
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTYES;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTYES);
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTNO;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTNO);
+-- Add Any Missing Gossip Option
+DELETE FROM `gossip_menu_option` WHERE menu_id=@GOSSIP;
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`)VALUES
+(@GOSSIP,0,3,"I seek training to ride a steed.",5,16,0,0,0,0,'');
+UPDATE `creature_template` SET `gossip_menu_id`=@GOSSIP WHERE `entry`=16280;
+
+-- Gossip Condition for Aalun "Draenei riding trainer"
+SET @GOSSIP := 8553;
+SET @TEXTYES := 10792;
+SET @TEXTNO := 10705;
+SET @FACTION := 930;
+SET @RACE := 1024;
+SET @NOTRACE := 767;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (14,15) AND `SourceGroup`=@GOSSIP;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(14,@GOSSIP,@TEXTYES,0,16,@RACE,0,0,0,'','Show gossip text if player is a Draenei'),
+(14,@GOSSIP,@TEXTYES,1,5,@FACTION,128,0,0,'','Show gossip text if player is Exalted with Exodar'),
+(14,@GOSSIP,@TEXTNO,0,16,@NOTRACE,0,0,0,'','Show gossip text if player is not a Draenei'),
+(14,@GOSSIP,@TEXTNO,0,5,@FACTION,127,0,0,'','Show gossip text if player is Not Exalted with Exodar'),
+(15,@GOSSIP,0,0,16,@RACE,0,0,0,'','Show gossip option if player is a Draenei'),
+(15,@GOSSIP,0,1,5,@FACTION,128,0,0,'','Show gossip option if player is a Exalted with Exodar');
+-- Add Any Missing Gossip Menu item
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTYES;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTYES);
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTNO;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTNO);
+-- Add Any Missing Gossip Option
+DELETE FROM `gossip_menu_option` WHERE menu_id=@GOSSIP;
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`)VALUES
+(@GOSSIP,0,3,"I seek training to ride a steed.",5,16,0,0,0,0,'');
+
+-- Gossip Condition for Olrokk "Riding trainer"
+SET @GOSSIP := 8628;
+SET @TEXT := 10817;
+-- Add Any Missing Gossip Menu item
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXT;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXT);
+-- Add Any Missing Gossip Option
+DELETE FROM `gossip_menu_option` WHERE menu_id=@GOSSIP;
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`)VALUES
+(@GOSSIP,0,3,"Train me.",5,16,0,0,0,0,'');
+UPDATE `creature_template` SET `gossip_menu_id`=@GOSSIP WHERE `entry`=20500;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_03_03_world_conditions.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_03_03_world_conditions.sql
new file mode 100644
index 00000000000..3edbde56d5b
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_03_03_world_conditions.sql
@@ -0,0 +1,95 @@
+-- Add option conditions for Rogue trainers
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (15) AND `SourceEntry`=4 AND `SourceGroup` IN (85,141,381,410,411,436,3984,4502,4512,4513,4540,4541,4542,4561,4562,4575,4576,4577,4658,4659,4676,4690,5061,6650);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`NegativeCondition`,`ScriptName`,`Comment`) VALUES
+(15,85,4,0,15,8,0,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,85,4,0,27,24,3,0,0,0,'','Show gossip option if player is level 24 or higher'),
+(15,85,4,0,2,17126,1,0,0,0,'','Show gossip option if player has Elegant Letter'),
+(15,85,4,0,28,6681,0,0,0,1,'','Show gossip option if player has not completed quest 6681'),
+(15,141,4,0,15,8,0,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,141,4,0,27,24,3,0,0,0,'','Show gossip option if player is level 24 or higher'),
+(15,141,4,0,2,17126,1,0,0,0,'','Show gossip option if player has Elegant Letter'),
+(15,141,4,0,28,6681,0,0,0,1,'','Show gossip option if player has not completed quest 6681'),
+(15,410,4,0,15,8,0,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,410,4,0,27,24,3,0,0,0,'','Show gossip option if player is level 24 or higher'),
+(15,410,4,0,2,17126,1,0,0,0,'','Show gossip option if player has Elegant Letter'),
+(15,410,4,0,28,6681,0,0,0,1,'','Show gossip option if player has not completed quest 6681'),
+(15,411,4,0,15,8,0,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,411,4,0,27,24,3,0,0,0,'','Show gossip option if player is level 24 or higher'),
+(15,411,4,0,2,17126,1,0,0,0,'','Show gossip option if player has Elegant Letter'),
+(15,411,4,0,28,6681,0,0,0,1,'','Show gossip option if player has not completed quest 6681'),
+(15,436,4,0,15,8,0,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,436,4,0,27,24,3,0,0,0,'','Show gossip option if player is level 24 or higher'),
+(15,436,4,0,2,17126,1,0,0,0,'','Show gossip option if player has Elegant Letter'),
+(15,436,4,0,28,6681,0,0,0,1,'','Show gossip option if player has not completed quest 6681'),
+(15,3984,4,0,15,8,0,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,3984,4,0,27,24,3,0,0,0,'','Show gossip option if player is level 24 or higher'),
+(15,3984,4,0,2,17126,1,0,0,0,'','Show gossip option if player has Elegant Letter'),
+(15,3984,4,0,28,6681,0,0,0,1,'','Show gossip option if player has not completed quest 6681'),
+(15,4502,4,0,15,8,0,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4502,4,0,27,24,3,0,0,0,'','Show gossip option if player is level 24 or higher'),
+(15,4502,4,0,2,17126,1,0,0,0,'','Show gossip option if player has Elegant Letter'),
+(15,4502,4,0,28,6681,0,0,0,1,'','Show gossip option if player has not completed quest 6681'),
+(15,4512,4,0,15,8,0,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4512,4,0,27,24,3,0,0,0,'','Show gossip option if player is level 24 or higher'),
+(15,4512,4,0,2,17126,1,0,0,0,'','Show gossip option if player has Elegant Letter'),
+(15,4512,4,0,28,6681,0,0,0,1,'','Show gossip option if player has not completed quest 6681'),
+(15,4513,4,0,15,8,0,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4513,4,0,27,24,3,0,0,0,'','Show gossip option if player is level 24 or higher'),
+(15,4513,4,0,2,17126,1,0,0,0,'','Show gossip option if player has Elegant Letter'),
+(15,4513,4,0,28,6681,0,0,0,1,'','Show gossip option if player has not completed quest 6681'),
+(15,4540,4,0,15,8,0,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4540,4,0,27,24,3,0,0,0,'','Show gossip option if player is level 24 or higher'),
+(15,4540,4,0,2,17126,1,0,0,0,'','Show gossip option if player has Elegant Letter'),
+(15,4540,4,0,28,6681,0,0,0,1,'','Show gossip option if player has not completed quest 6681'),
+(15,4541,4,0,15,8,0,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4541,4,0,27,24,3,0,0,0,'','Show gossip option if player is level 24 or higher'),
+(15,4541,4,0,2,17126,1,0,0,0,'','Show gossip option if player has Elegant Letter'),
+(15,4541,4,0,28,6681,0,0,0,1,'','Show gossip option if player has not completed quest 6681'),
+(15,4542,4,0,15,8,0,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4542,4,0,27,24,3,0,0,0,'','Show gossip option if player is level 24 or higher'),
+(15,4542,4,0,2,17126,1,0,0,0,'','Show gossip option if player has Elegant Letter'),
+(15,4542,4,0,28,6681,0,0,0,1,'','Show gossip option if player has not completed quest 6681'),
+(15,4561,4,0,15,8,0,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4561,4,0,27,24,3,0,0,0,'','Show gossip option if player is level 24 or higher'),
+(15,4561,4,0,2,17126,1,0,0,0,'','Show gossip option if player has Elegant Letter'),
+(15,4561,4,0,28,6681,0,0,0,1,'','Show gossip option if player has not completed quest 6681'),
+(15,4562,4,0,15,8,0,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4562,4,0,27,24,3,0,0,0,'','Show gossip option if player is level 24 or higher'),
+(15,4562,4,0,2,17126,1,0,0,0,'','Show gossip option if player has Elegant Letter'),
+(15,4562,4,0,28,6681,0,0,0,1,'','Show gossip option if player has not completed quest 6681'),
+(15,4575,4,0,15,8,0,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4575,4,0,27,24,3,0,0,0,'','Show gossip option if player is level 24 or higher'),
+(15,4575,4,0,2,17126,1,0,0,0,'','Show gossip option if player has Elegant Letter'),
+(15,4575,4,0,28,6681,0,0,0,1,'','Show gossip option if player has not completed quest 6681'),
+(15,4576,4,0,15,8,0,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4576,4,0,27,24,3,0,0,0,'','Show gossip option if player is level 24 or higher'),
+(15,4576,4,0,2,17126,1,0,0,0,'','Show gossip option if player has Elegant Letter'),
+(15,4576,4,0,28,6681,0,0,0,1,'','Show gossip option if player has not completed quest 6681'),
+(15,4577,4,0,15,8,0,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4577,4,0,27,24,3,0,0,0,'','Show gossip option if player is level 24 or higher'),
+(15,4577,4,0,2,17126,1,0,0,0,'','Show gossip option if player has Elegant Letter'),
+(15,4577,4,0,28,6681,0,0,0,1,'','Show gossip option if player has not completed quest 6681'),
+(15,4658,4,0,15,8,0,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4658,4,0,27,24,3,0,0,0,'','Show gossip option if player is level 24 or higher'),
+(15,4658,4,0,2,17126,1,0,0,0,'','Show gossip option if player has Elegant Letter'),
+(15,4658,4,0,28,6681,0,0,0,1,'','Show gossip option if player has not completed quest 6681'),
+(15,4659,4,0,15,8,0,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4659,4,0,27,24,3,0,0,0,'','Show gossip option if player is level 24 or higher'),
+(15,4659,4,0,2,17126,1,0,0,0,'','Show gossip option if player has Elegant Letter'),
+(15,4659,4,0,28,6681,0,0,0,1,'','Show gossip option if player has not completed quest 6681'),
+(15,4676,4,0,15,8,0,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4676,4,0,27,24,3,0,0,0,'','Show gossip option if player is level 24 or higher'),
+(15,4676,4,0,2,17126,1,0,0,0,'','Show gossip option if player has Elegant Letter'),
+(15,4676,4,0,28,6681,0,0,0,1,'','Show gossip option if player has not completed quest 6681'),
+(15,4690,4,0,15,8,0,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,4690,4,0,27,24,3,0,0,0,'','Show gossip option if player is level 24 or higher'),
+(15,4690,4,0,2,17126,1,0,0,0,'','Show gossip option if player has Elegant Letter'),
+(15,4690,4,0,28,6681,0,0,0,1,'','Show gossip option if player has not completed quest 6681'),
+(15,5061,4,0,15,8,0,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,5061,4,0,27,24,3,0,0,0,'','Show gossip option if player is level 24 or higher'),
+(15,5061,4,0,2,17126,1,0,0,0,'','Show gossip option if player has Elegant Letter'),
+(15,5061,4,0,28,6681,0,0,0,1,'','Show gossip option if player has not completed quest 6681'),
+(15,6650,4,0,15,8,0,0,0,0,'','Show gossip option if player is a Rogue'),
+(15,6650,4,0,27,24,3,0,0,0,'','Show gossip option if player is level 24 or higher'),
+(15,6650,4,0,2,17126,1,0,0,0,'','Show gossip option if player has Elegant Letter'),
+(15,6650,4,0,28,6681,0,0,0,1,'','Show gossip option if player has not completed quest 6681');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_03_04_world_conditions.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_03_04_world_conditions.sql
new file mode 100644
index 00000000000..f18492fc34a
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_03_04_world_conditions.sql
@@ -0,0 +1,8 @@
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (15) AND `SourceGroup` IN (4463,4464,4663,4664);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(15,4463,0,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,4463,1,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,4463,2,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,4464,0,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,4464,1,0,15,2,0,0,0,'','Show gossip option if player is a Paladin'),
+(15,4464,2,0,15,2,0,0,0,'','Show gossip option if player is a Paladin');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_03_05_world_gossip.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_03_05_world_gossip.sql
new file mode 100644
index 00000000000..7f21d072162
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_03_05_world_gossip.sql
@@ -0,0 +1,301 @@
+-- XXXXXXXXXXXXXXXXXXXXX
+-- X Shaman Trainers X
+-- XXXXXXXXXXXXXXXXXXXXX
+
+UPDATE `creature_template` SET `gossip_menu_id`=7357 WHERE `entry`=23127;
+UPDATE `creature_template` SET `gossip_menu_id`=7377 WHERE `entry`=17204;
+UPDATE `creature_template` SET `gossip_menu_id`=4104 WHERE `entry`=986;
+
+-- Gossip Condition for Shaman Trainers
+SET @GOSSIP := 4103;
+SET @TEXTYES := 5005;
+SET @TEXTNO := 5006;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (14,15) AND `SourceGroup`=@GOSSIP;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(14,@GOSSIP,@TEXTYES,0,15,64,0,0,0,'','Show gossip text if player is a Shaman'),
+(14,@GOSSIP,@TEXTNO,0,15,1471,0,0,0,'','Show gossip text if player is not a Shaman');
+-- Add Any Missing Gossip Menu item
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTYES;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTYES);
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTNO;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTNO);
+-- Add Any Missing Gossip Option
+DELETE FROM `gossip_menu_option` WHERE menu_id=@GOSSIP;
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`)VALUES
+(@GOSSIP,0,3,"Teach me the ways of the spirits.",5,16,0,0,0,0,''),
+(@GOSSIP,1,0,"I wish to unlearn my talents.",16,16,4461,0,0,0,''),
+(@GOSSIP,2,0,"I wish to know about Dual Talent Specialization.",1,1,10371,0,0,0,'');
+
+-- Gossip Condition for Shaman Trainers
+SET @GOSSIP := 4104;
+SET @TEXTYES := 5005;
+SET @TEXTNO := 5006;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (14,15) AND `SourceGroup`=@GOSSIP;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(14,@GOSSIP,@TEXTYES,0,15,64,0,0,0,'','Show gossip text if player is a Shaman'),
+(14,@GOSSIP,@TEXTNO,0,15,1471,0,0,0,'','Show gossip text if player is not a Shaman');
+-- Add Any Missing Gossip Menu item
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTYES;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTYES);
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTNO;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTNO);
+-- Add Any Missing Gossip Option
+DELETE FROM `gossip_menu_option` WHERE menu_id=@GOSSIP;
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`)VALUES
+(@GOSSIP,0,3,"Teach me the ways of the spirits.",5,16,0,0,0,0,''),
+(@GOSSIP,1,0,"I wish to unlearn my talents.",16,16,4461,0,0,0,''),
+(@GOSSIP,2,0,"I wish to know about Dual Talent Specialization.",1,1,10371,0,0,0,'');
+
+-- Gossip Condition for Shaman Trainers
+SET @GOSSIP := 4515;
+SET @TEXTYES := 5007;
+SET @TEXTNO := 5008;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (14,15) AND `SourceGroup`=@GOSSIP;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(14,@GOSSIP,@TEXTYES,0,15,64,0,0,0,'','Show gossip text if player is a Shaman'),
+(14,@GOSSIP,@TEXTNO,0,15,1471,0,0,0,'','Show gossip text if player is not a Shaman');
+-- Add Any Missing Gossip Menu item
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTYES;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTYES);
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTNO;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTNO);
+-- Add Any Missing Gossip Option
+DELETE FROM `gossip_menu_option` WHERE menu_id=@GOSSIP;
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`)VALUES
+(@GOSSIP,0,3,"Teach me the ways of the spirits.",5,16,0,0,0,0,''),
+(@GOSSIP,1,0,"I wish to unlearn my talents.",16,16,4461,0,0,0,''),
+(@GOSSIP,2,0,"I wish to know about Dual Talent Specialization.",1,1,10371,0,0,0,'');
+
+-- Gossip Condition for Shaman Trainers
+SET @GOSSIP := 4516;
+SET @TEXTYES := 5005;
+SET @TEXTNO := 5006;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (14,15) AND `SourceGroup`=@GOSSIP;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(14,@GOSSIP,@TEXTYES,0,15,64,0,0,0,'','Show gossip text if player is a Shaman'),
+(14,@GOSSIP,@TEXTNO,0,15,1471,0,0,0,'','Show gossip text if player is not a Shaman');
+-- Add Any Missing Gossip Menu item
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTYES;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTYES);
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTNO;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTNO);
+-- Add Any Missing Gossip Option
+DELETE FROM `gossip_menu_option` WHERE menu_id=@GOSSIP;
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`)VALUES
+(@GOSSIP,0,3,"Teach me the ways of the spirits.",5,16,0,0,0,0,''),
+(@GOSSIP,1,0,"I wish to unlearn my talents.",16,16,4461,0,0,0,''),
+(@GOSSIP,2,0,"I wish to know about Dual Talent Specialization.",1,1,10371,0,0,0,'');
+
+-- Gossip Condition for Shaman Trainers
+SET @GOSSIP := 4528;
+SET @TEXTYES := 5005;
+SET @TEXTNO := 5006;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (14,15) AND `SourceGroup`=@GOSSIP;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(14,@GOSSIP,@TEXTYES,0,15,64,0,0,0,'','Show gossip text if player is a Shaman'),
+(14,@GOSSIP,@TEXTNO,0,15,1471,0,0,0,'','Show gossip text if player is not a Shaman');
+-- Add Any Missing Gossip Menu item
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTYES;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTYES);
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTNO;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTNO);
+-- Add Any Missing Gossip Option
+DELETE FROM `gossip_menu_option` WHERE menu_id=@GOSSIP;
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`)VALUES
+(@GOSSIP,0,3,"Teach me the ways of the spirits.",5,16,0,0,0,0,''),
+(@GOSSIP,1,0,"I wish to unlearn my talents.",16,16,4461,0,0,0,''),
+(@GOSSIP,2,0,"I wish to know about Dual Talent Specialization.",1,1,10371,0,0,0,'');
+
+-- Gossip Condition for Shaman Trainers
+SET @GOSSIP := 4529;
+SET @TEXTYES := 5005;
+SET @TEXTNO := 5006;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (14,15) AND `SourceGroup`=@GOSSIP;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(14,@GOSSIP,@TEXTYES,0,15,64,0,0,0,'','Show gossip text if player is a Shaman'),
+(14,@GOSSIP,@TEXTNO,0,15,1471,0,0,0,'','Show gossip text if player is not a Shaman');
+-- Add Any Missing Gossip Menu item
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTYES;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTYES);
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTNO;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTNO);
+-- Add Any Missing Gossip Option
+DELETE FROM `gossip_menu_option` WHERE menu_id=@GOSSIP;
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`)VALUES
+(@GOSSIP,0,3,"Teach me the ways of the spirits.",5,16,0,0,0,0,''),
+(@GOSSIP,1,0,"I wish to unlearn my talents.",16,16,4461,0,0,0,''),
+(@GOSSIP,2,0,"I wish to know about Dual Talent Specialization.",1,1,10371,0,0,0,'');
+
+-- Gossip Condition for Shaman Trainers
+SET @GOSSIP := 4530;
+SET @TEXTYES := 5005;
+SET @TEXTNO := 5006;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (14,15) AND `SourceGroup`=@GOSSIP;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(14,@GOSSIP,@TEXTYES,0,15,64,0,0,0,'','Show gossip text if player is a Shaman'),
+(14,@GOSSIP,@TEXTNO,0,15,1471,0,0,0,'','Show gossip text if player is not a Shaman');
+-- Add Any Missing Gossip Menu item
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTYES;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTYES);
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTNO;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTNO);
+-- Add Any Missing Gossip Option
+DELETE FROM `gossip_menu_option` WHERE menu_id=@GOSSIP;
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`)VALUES
+(@GOSSIP,0,3,"Teach me the ways of the spirits.",5,16,0,0,0,0,''),
+(@GOSSIP,1,0,"I wish to unlearn my talents.",16,16,4461,0,0,0,''),
+(@GOSSIP,2,0,"I wish to know about Dual Talent Specialization.",1,1,10371,0,0,0,'');
+
+-- Gossip Condition for Shaman Trainers
+SET @GOSSIP := 4652;
+SET @TEXTYES := 5005;
+SET @TEXTNO := 5006;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (14,15) AND `SourceGroup`=@GOSSIP;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(14,@GOSSIP,@TEXTYES,0,15,64,0,0,0,'','Show gossip text if player is a Shaman'),
+(14,@GOSSIP,@TEXTNO,0,15,1471,0,0,0,'','Show gossip text if player is not a Shaman');
+-- Add Any Missing Gossip Menu item
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTYES;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTYES);
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTNO;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTNO);
+-- Add Any Missing Gossip Option
+DELETE FROM `gossip_menu_option` WHERE menu_id=@GOSSIP;
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`)VALUES
+(@GOSSIP,0,3,"Teach me the ways of the spirits.",5,16,0,0,0,0,''),
+(@GOSSIP,1,0,"I wish to unlearn my talents.",16,16,4461,0,0,0,''),
+(@GOSSIP,2,0,"I wish to know about Dual Talent Specialization.",1,1,10371,0,0,0,'');
+
+-- Gossip Condition for Shaman Trainers
+SET @GOSSIP := 5123;
+SET @TEXTYES := 5005;
+SET @TEXTNO := 5006;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (14,15) AND `SourceGroup`=@GOSSIP;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(14,@GOSSIP,@TEXTYES,0,15,64,0,0,0,'','Show gossip text if player is a Shaman'),
+(14,@GOSSIP,@TEXTNO,0,15,1471,0,0,0,'','Show gossip text if player is not a Shaman');
+-- Add Any Missing Gossip Menu item
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTYES;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTYES);
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTNO;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTNO);
+-- Add Any Missing Gossip Option
+DELETE FROM `gossip_menu_option` WHERE menu_id=@GOSSIP;
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`)VALUES
+(@GOSSIP,0,3,"",5,16,0,0,0,0,''),
+(@GOSSIP,1,0,"I wish to unlearn my talents.",16,16,4461,0,0,0,''),
+(@GOSSIP,2,0,"I wish to know about Dual Talent Specialization.",1,1,10371,0,0,0,'');
+
+-- Gossip Condition for Shaman Trainers
+SET @GOSSIP := 7357;
+SET @TEXTYES := 8786;
+SET @TEXTNO := 8785;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (14,15) AND `SourceGroup`=@GOSSIP;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(14,@GOSSIP,@TEXTYES,0,15,64,0,0,0,'','Show gossip text if player is a Shaman'),
+(14,@GOSSIP,@TEXTNO,0,15,1471,0,0,0,'','Show gossip text if player is not a Shaman');
+-- Add Any Missing Gossip Menu item
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTYES;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTYES);
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTNO;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTNO);
+-- Add Any Missing Gossip Option
+DELETE FROM `gossip_menu_option` WHERE menu_id=@GOSSIP;
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`)VALUES
+(@GOSSIP,0,3,"Teach me the ways of the spirits.",5,16,0,0,0,0,''),
+(@GOSSIP,1,0,"I wish to unlearn my talents.",16,16,4461,0,0,0,''),
+(@GOSSIP,2,0,"I wish to know about Dual Talent Specialization.",1,1,10371,0,0,0,'');
+
+-- Gossip Condition for Shaman Trainers
+SET @GOSSIP := 7467;
+SET @TEXTYES := 9050;
+SET @TEXTNO := 8785;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (14,15) AND `SourceGroup`=@GOSSIP;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(14,@GOSSIP,@TEXTYES,0,15,64,0,0,0,'','Show gossip text if player is a Shaman'),
+(14,@GOSSIP,@TEXTNO,0,15,1471,0,0,0,'','Show gossip text if player is not a Shaman');
+-- Add Any Missing Gossip Menu item
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTYES;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTYES);
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTNO;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTNO);
+-- Add Any Missing Gossip Option
+DELETE FROM `gossip_menu_option` WHERE menu_id=@GOSSIP;
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`)VALUES
+(@GOSSIP,0,3,"Teach me the ways of the spirits.",5,16,0,0,0,0,''),
+(@GOSSIP,1,0,"I wish to unlearn my talents.",16,16,4461,0,0,0,''),
+(@GOSSIP,2,0,"I wish to know about Dual Talent Specialization.",1,1,10371,0,0,0,'');
+
+-- Gossip Condition for Shaman Trainers
+SET @GOSSIP := 7522;
+SET @TEXTYES := 9122;
+SET @TEXTNO := 8785;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (14,15) AND `SourceGroup`=@GOSSIP;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(14,@GOSSIP,@TEXTYES,0,15,64,0,0,0,'','Show gossip text if player is a Shaman'),
+(14,@GOSSIP,@TEXTNO,0,15,1471,0,0,0,'','Show gossip text if player is not a Shaman');
+-- Add Any Missing Gossip Menu item
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTYES;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTYES);
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTNO;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTNO);
+-- Add Any Missing Gossip Option
+DELETE FROM `gossip_menu_option` WHERE menu_id=@GOSSIP;
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`)VALUES
+(@GOSSIP,0,3,"Teach me the ways of the spirits.",5,16,0,0,0,0,''),
+(@GOSSIP,1,0,"I wish to unlearn my talents.",16,16,4461,0,0,0,''),
+(@GOSSIP,2,0,"I wish to know about Dual Talent Specialization.",1,1,10371,0,0,0,'');
+
+-- Gossip Condition for Shaman Trainers
+SET @GOSSIP := 8110;
+SET @TEXTYES := 10043;
+SET @TEXTNO := 10040;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (14,15) AND `SourceGroup`=@GOSSIP;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(14,@GOSSIP,@TEXTYES,0,15,64,0,0,0,'','Show gossip text if player is a Shaman'),
+(14,@GOSSIP,@TEXTNO,0,15,1471,0,0,0,'','Show gossip text if player is not a Shaman');
+-- Add Any Missing Gossip Menu item
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTYES;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTYES);
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTNO;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTNO);
+-- Add Any Missing Gossip Option
+DELETE FROM `gossip_menu_option` WHERE menu_id=@GOSSIP;
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`)VALUES
+(@GOSSIP,0,3,"Teach me the ways of the spirits.",5,16,0,0,0,0,''),
+(@GOSSIP,1,0,"I wish to unlearn my talents.",16,16,4461,0,0,0,''),
+(@GOSSIP,2,0,"I wish to know about Dual Talent Specialization.",1,1,10371,0,0,0,'');
+
+-- Gossip Condition for Shaman Trainers
+SET @GOSSIP := 7377;
+SET @TEXTYES := 8829;
+SET @TEXTNO := 8828;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (14,15) AND `SourceGroup`=@GOSSIP;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(14,@GOSSIP,@TEXTYES,0,15,64,0,0,0,'','Show gossip text if player is a Shaman'),
+(14,@GOSSIP,@TEXTNO,0,15,1471,0,0,0,'','Show gossip text if player is not a Shaman');
+-- Add Any Missing Gossip Menu item
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTYES;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTYES);
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTNO;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXTNO);
+DELETE FROM `gossip_menu` WHERE `entry` BETWEEN 7502 AND 7509;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES
+(7502,9098),(7503,9099),(7504,9100),(7505,9101),
+(7506,9102),(7507,9103),(7508,9104),(7509,9105);
+-- Add Any Missing Gossip Option
+DELETE FROM `gossip_menu_option` WHERE menu_id BETWEEN 7502 AND 7508;
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`)VALUES
+(7502,0,0,"Yes, please continue.",1,1,7503,0,0,0,''),
+(7503,0,0,"Yes, please, if you do not mind.",1,1,7504,0,0,0,''),
+(7504,0,0,"Nobundo, please continue.",1,1,7505,0,0,0,''),
+(7505,0,0,"What did it say to you?",1,1,7506,0,0,0,''),
+(7506,0,0,"What was that?",1,1,7507,0,0,0,''),
+(7507,0,0,"What did you do then?",1,1,7508,0,0,0,''),
+(7508,0,0,"Please, go on.",1,1,7509,0,0,0,'');
+DELETE FROM `gossip_menu_option` WHERE menu_id=@GOSSIP;
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`)VALUES
+(@GOSSIP,0,3,"Teach me the ways of the spirits.",5,16,0,0,0,0,''),
+(@GOSSIP,1,0,"Tell me of your past, Farseer.",1,1,7502,0,0,0,''),
+(@GOSSIP,2,0,"I wish to unlearn my talents.",16,16,4461,0,0,0,''),
+(@GOSSIP,3,0,"I wish to know about Dual Talent Specialization.",1,1,10371,0,0,0,'');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_04_00_world_game_event_creature.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_04_00_world_game_event_creature.sql
new file mode 100644
index 00000000000..fb4fc759528
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_04_00_world_game_event_creature.sql
@@ -0,0 +1,2 @@
+DELETE FROM `game_event_creature` WHERE `guid`=152120 AND `eventEntry`=24;
+INSERT INTO `game_event_creature` (`guid`, `eventEntry`) VALUES (152120,24);
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_04_01_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_04_01_world_sai.sql
new file mode 100644
index 00000000000..7b9c1b644bd
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_04_01_world_sai.sql
@@ -0,0 +1,22 @@
+UPDATE `smart_scripts` SET `event_flags`=1 WHERE `entryorguid`=23580 AND `source_type`=0 AND `id`=0 AND `link`=1;
+
+-- Deep in the bowels of the Underhalls - 13042
+SET @OSTERKILGR := 30409; -- Apprentice Osterkilgr
+SET @SPELL_BLAST := 60290; -- Blast Wave
+SET @SPELL_FIREBALL := 14034; -- Fireball
+SET @QUEST := 13042; -- Deep in the Bowels of the Underhalls
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@OSTERKILGR;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@OSTERKILGR;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@OSTERKILGR;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`)
+VALUES
+(@OSTERKILGR,0,0,0,0,0,100,0,5000,7000,5000,7000,11,@SPELL_BLAST,0,0,0,0,0,5,0,0,0,0,0,0,0,'Apprentice Osterkilgr - In Combat - cast Blast Wave'),
+(@OSTERKILGR,0,1,0,0,0,100,0,1000,2000,1000,2000,11,@SPELL_FIREBALL,0,0,0,0,0,5,0,0,0,0,0,0,0,'Apprentice Osterkilgr - In Combat - cast Fireball'),
+(@OSTERKILGR,0,2,0,2,0,100,1,40,80,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Apprentice Osterkilgr - @80%HP - say text 0'),
+(@OSTERKILGR,0,3,4,2,0,100,1,0,40,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Apprentice Osterkilgr - @40%HP - say text 1'),
+(@OSTERKILGR,0,4,0,61,0,100,0,0,0,0,0,33,30412,0,0,0,0,0,7,0,0,0,0,0,0,0,'Apprentice Osterkilgr - At 40% HP - give kill credit');
+DELETE FROM `creature_ai_texts` WHERE `entry` IN (-10020,-10021);
+DELETE FROM `creature_text` WHERE `entry`=@OSTERKILGR;
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@OSTERKILGR,0,0,'You''ve come for the doctor''s plans! You''ll only find death!',12,0,0,0,0,0,'Apprentice Osterkilgr - Say 0'),
+(@OSTERKILGR,1,0,'The doctor entrusted me with the plans to Nergeld, our flesh giant amalgamation made entirely of vargul! It will be the most powerful creation of its kind and a whole legion of them will be created to destroy your pitiful forces!',12,0,0,0,0,0,'Apprentice Osterkilgr - Say 1');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_04_02_world_conditions.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_04_02_world_conditions.sql
new file mode 100644
index 00000000000..1f850571a04
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_04_02_world_conditions.sql
@@ -0,0 +1,5 @@
+-- Add option conditions for Hunter trainers
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (15) AND `SourceGroup` IN (7368) AND `SourceEntry` IN (3,4);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(15,7368,3,0,9,9454,0,0,0,'','Acteon - Show gossip option if player has quest 9454'),
+(15,7368,4,0,9,10324,0,0,0,'','Acteon - Show gossip option if player has quest 10324');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_04_03_world_conditions.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_04_03_world_conditions.sql
new file mode 100644
index 00000000000..63d3b5ec210
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_04_03_world_conditions.sql
@@ -0,0 +1 @@
+UPDATE `conditions` SET `ConditionValue1`=3781,`ConditionValue2`=0 WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=1403 AND `SourceEntry`=3 AND `ConditionTypeOrReference`=8;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_05_00_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_05_00_world_sai.sql
new file mode 100644
index 00000000000..9dc2b4bfcf1
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_05_00_world_sai.sql
@@ -0,0 +1,61 @@
+-- The Art of Being a Water Terror (13091)
+SET @NPC_WATER_TERROR := 30645; -- Water Terror
+SET @AURA_HEALTH := 57664; -- The Art of Being a Water Terror: Mod Health Regen %
+SET @JOT_WARRIOR := 29880; -- Jotunheim Warrior
+SET @SPEAR_SISTER := 30243; -- Njorndar Spear-Sister
+SET @VAL_VARGUL := 30250; -- Valhalas Vargul
+SET @WATER_MAGUS := 30632; -- Mjordin Water Magus
+SET @SLEEP_WATCHER := 30725; -- Jotunheim Sleep-Watcher
+
+UPDATE `creature_template` SET `speed_walk`=4,`speed_run`=2.14285707473755,`AIName`='SmartAI',`exp`=2,`spell1`=57643,`spell2`=57652,`spell3`=57665,`spell4`=57668,`VehicleId`=250,`minlevel`=80,`maxlevel`=80,`faction_A`=116,`faction_H`=116,`unit_flags`=0x8008 WHERE `entry`=@NPC_WATER_TERROR;
+
+DELETE FROM `creature_template_addon` WHERE `entry`=@NPC_WATER_TERROR;
+INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`auras`) VALUES
+(@NPC_WATER_TERROR,0,0x0,0x101,'');
+
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@NPC_WATER_TERROR AND `source_type`=0;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@NPC_WATER_TERROR,0,0,1,54,0,100,0,0,0,0,0,8,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'On Just Summoned - Set State Passive - Self'),
+(@NPC_WATER_TERROR,0,1,0,61,0,100,0,0,0,0,0,75,@AURA_HEALTH,0,0,0,0,0,1,0,0,0,0,0,0,0,'On Just Summoned - Add Aura - Self');
+
+
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@JOT_WARRIOR,@WATER_MAGUS,@SPEAR_SISTER);
+UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry` IN (@JOT_WARRIOR,@WATER_MAGUS,@SPEAR_SISTER);
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(@JOT_WARRIOR,0,0,0,0,0,100,0,0,0,30000,30000,11,23262,2,0,0,0,0,2,0,0,0,0,0,0,0,'Jotunheim Warrior - IC - Cast Demoralize'),
+(@JOT_WARRIOR,0,1,0,0,0,100,0,2000,3000,5000,7000,11,43410,2,0,0,0,0,2,0,0,0,0,0,0,0,'Jotunheim Warrior - IC - Cast Chop'),
+(@JOT_WARRIOR,0,2,0,6,0,100,0,0,0,0,0,33,30644,0,0,0,0,0,7,0,0,0,0,0,0,0,'Jotunheim Warrior - On Death - Give Kill Credit credit'),
+(@SPEAR_SISTER,0,0,0,0,0,100,0,2000,3000,3000,4000,11,38029,2,0,0,0,0,2,0,0,0,0,0,0,0,'Njorndar Spear-Sister - IC - Cast Stab'),
+(@SPEAR_SISTER,0,1,0,6,0,100,0,0,0,0,0,33,30644,0,0,0,0,0,7,0,0,0,0,0,0,0,'Njorndar Spear-Sister - On Death - Give Kill Credit credit'),
+(@WATER_MAGUS,0,0,0,11,0,100,0,0,0,0,0,11,7855,0,0,0,0,0,1,0,0,0,0,0,0,0,'Mjordin Water Magus - On Spawn - Summon Water Terror (Self)'),
+(@WATER_MAGUS,0,1,0,0,0,100,0,0,0,3000,4000,11,9672,0,0,0,0,0,2,0,0,0,0,0,0,0,'Mjordin Water Magus - IC - Cast Frostbolt'),
+(@WATER_MAGUS,0,2,0,0,0,100,0,3000,3000,7000,9000,11,15532,0,0,0,0,0,1,0,0,0,0,0,0,0,'Mjordin Water Magus - IC - Cast Frost Nova'),
+(@WATER_MAGUS,0,3,0,6,0,100,0,0,0,0,0,33,30644,0,0,0,0,0,7,0,0,0,0,0,0,0,'Mjordin Water Magus - On Death - Give Kill Credit credit');
+-- Valhalas Vargul
+UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry`=@VAL_VARGUL;
+DELETE FROM `smart_scripts` WHERE `entryorguid` =@VAL_VARGUL;
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(@VAL_VARGUL,0,0,0,9,0,100,0,0,5,3000,5000,11,15496,0,0,0,0,0,2,0,0,0,0,0,0,0,'Valhalas Vargul - IC - Cast Cleave'),
+(@VAL_VARGUL,0,1,0,6,0,100,0,0,0,0,0,33,30644,0,0,0,0,0,7,0,0,0,0,0,0,0,'Valhalas Vargul - On Death - Give Kill Credit credit');
+
+-- Jotunheim Sleep-Watcher
+UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry`=@SLEEP_WATCHER;
+DELETE FROM `smart_scripts` WHERE `entryorguid` =@SLEEP_WATCHER;
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(@SLEEP_WATCHER,0,0,0,9,0,100,0,0,5,15000,25000,11,60870,0,0,0,0,0,2,0,0,0,0,0,0,0,'Jotunheim Sleep-Watcher - IC - Cast Bludgeoning Strike'),
+(@SLEEP_WATCHER,0,1,0,9,0,100,0,0,5000,30000,45000,11,13730,0,0,0,0,0,1,0,0,0,0,0,0,0,'Jotunheim Sleep-Watcher - IC - Cast Demoralizing Shout'),
+(@SLEEP_WATCHER,0,2,0,6,0,100,0,0,0,0,0,33,30644,0,0,0,0,0,7,0,0,0,0,0,0,0,'Jotunheim Sleep-Watcher - On Death - Give Kill Credit credit');
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry` IN(@JOT_WARRIOR,@WATER_MAGUS,@SPEAR_SISTER,@VAL_VARGUL,@SLEEP_WATCHER);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(22,3,@JOT_WARRIOR,0,0,1,0,57615,0,0,0,0,'','Only run AI if player is possessing a water terror'),
+(22,4,@WATER_MAGUS,0,0,1,0,57615,0,0,0,0,'','Only run AI if player is possessing a water terror'),
+(22,2,@SPEAR_SISTER,0,0,1,0,57615,0,0,0,0,'','Only run AI if player is possessing a water terror'),
+(22,2,@VAL_VARGUL,0,0,1,0,57615,0,0,0,0,'','Only run AI if player is possessing a water terror'),
+(22,3,@SLEEP_WATCHER,0,0,1,0,57615,0,0,0,0,'','Only run AI if player is possessing a water terror');
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=16 AND `SourceEntry`=@NPC_WATER_TERROR;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(16,0,@NPC_WATER_TERROR,0,0,23,0,4526,0,0,0,0,0,'','Water Terror (Vehicle) Allowed in Njorndar Village'),
+(16,0,@NPC_WATER_TERROR,0,1,23,0,4524,0,0,0,0,0,'','Water Terror (Vehicle) Allowed in Valhalas'),
+(16,0,@NPC_WATER_TERROR,0,2,23,0,4496,0,0,0,0,0,'','Water Terror (Vehicle) Allowed in Jotunheim');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_05_01_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_05_01_world_misc.sql
new file mode 100644
index 00000000000..6e11d0ce0d3
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_05_01_world_misc.sql
@@ -0,0 +1,240 @@
+SET @GUID := 131282;
+
+SET @QUEST := 11705;
+SET @VARIDUS := 25618;
+SET @PRISONER := 25624;
+SET @ABERRATION := 25625;
+SET @GETRY := 25729;
+SET @NECROLORD := 25730;
+SET @SAURFANG := 25751;
+
+UPDATE `creature_template` SET `minlevel`=65, `maxlevel`=70, `exp`=2, `faction_A`=14, `faction_H`=14, `unit_flags`=33554688, `AIName`='SmartAI' WHERE `entry`=@PRISONER;
+UPDATE `creature_template` SET `faction_A`=1982, `faction_H`=1982, `unit_flags`=0, `AIName`='SmartAI' WHERE `entry`=@ABERRATION;
+UPDATE `creature_template` SET `speed_run`=2.28571, `faction_A`=1982, `faction_H`=1982, `unit_flags`=33536, `AIName`='SmartAI' WHERE `entry`=@NECROLORD;
+UPDATE `creature_template` SET `faction_A`=1982, `faction_H`=1982, `unit_flags`=768, `AIName`= 'SmartAI', `ScriptName`='' WHERE `entry`=@VARIDUS;
+UPDATE `creature_template` SET `faction_A`=1980, `faction_H`=1980, `minlevel`=70, `maxlevel`=70, `exp`=2, `unit_flags`=33024, `mindmg`=474, `maxdmg`=574, `AIName`= 'SmartAI' WHERE `entry`=@SAURFANG;
+UPDATE `creature_template` SET `unit_flags`=32768, `AIName`= 'SmartAI' WHERE `entry`=@GETRY;
+
+UPDATE `creature_model_info` SET `bounding_radius`=0.4092, `combat_reach`=1.65 WHERE `modelid`=23360;
+
+DELETE FROM `creature_template_addon` WHERE `entry` IN(@GETRY,@PRISONER,@VARIDUS);
+INSERT INTO `creature_template_addon` (`entry`,`bytes2`,`auras`) VALUES
+(@VARIDUS,0x1,'45908'),
+(@PRISONER,0x1,''),
+(@GETRY,0x101,'');
+
+DELETE FROM `creature` WHERE `id` IN (@PRISONER,@VARIDUS);
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`, `npcflag`, `unit_flags`, `dynamicflags`) VALUES
+(@GUID+0, @PRISONER, 571, 1, 1, 0, 0, 3092.136, 6516.039, 82.06012, 5.183628, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+1, @PRISONER, 571, 1, 1, 0, 0, 3089.2, 6526.226, 81.77282, 1.902409, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+2, @PRISONER, 571, 1, 1, 0, 0, 3096.962, 6510.87, 82.08541, 0.5585054, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+3, @PRISONER, 571, 1, 1, 0, 0, 3093.876, 6522.219, 81.79565, 0.01745329, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+4, @PRISONER, 571, 1, 1, 0, 0, 3098.928, 6517.495, 81.77497, 3.001966, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+5, @PRISONER, 571, 1, 1, 0, 0, 3103.036, 6504.89, 82.04672, 3.944444, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+6, @PRISONER, 571, 1, 1, 0, 0, 3104.042, 6511.731, 81.80676, 3.455752, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+7, @PRISONER, 571, 1, 1, 0, 0, 3093.038, 6547.074, 80.75952, 5.899213, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+8, @PRISONER, 571, 1, 1, 0, 0, 3096.117, 6544.481, 80.7102, 1.605703, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+9, @PRISONER, 571, 1, 1, 0, 0, 3099.3, 6541.367, 80.77256, 4.799655, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+10, @PRISONER, 571, 1, 1, 0, 0, 3090.39, 6541.875, 81.06445, 3.054326, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+11, @PRISONER, 571, 1, 1, 0, 0, 3102.454, 6538.238, 80.83416, 1.58825, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+12, @PRISONER, 571, 1, 1, 0, 0, 3093.245, 6538.743, 81.06524, 3.455752, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+13, @PRISONER, 571, 1, 1, 0, 0, 3105.601, 6534.979, 80.85965, 0.1570796, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+14, @PRISONER, 571, 1, 1, 0, 0, 3096.462, 6535.528, 81.13345, 4.921828, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+15, @PRISONER, 571, 1, 1, 0, 0, 3087.603, 6536.683, 81.36699, 4.18879, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+16, @PRISONER, 571, 1, 1, 0, 0, 3108.599, 6531.898, 80.8754, 5.462881, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+17, @PRISONER, 571, 1, 1, 0, 0, 3100.571, 6532.094, 81.16553, 6.230825, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+18, @PRISONER, 571, 1, 1, 0, 0, 3122.098, 6518.814, 80.70912, 1.815142, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+19, @PRISONER, 571, 1, 1, 0, 0, 3116.981, 6515.013, 81.07998, 5.899213, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+20, @PRISONER, 571, 1, 1, 0, 0, 3126.142, 6514.962, 80.68482, 1.954769, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+21, @PRISONER, 571, 1, 1, 0, 0, 3112.065, 6511.906, 81.3951, 5.148721, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+22, @PRISONER, 571, 1, 1, 0, 0, 3129.413, 6511.592, 80.7066, 2.722714, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+23, @PRISONER, 571, 1, 1, 0, 0, 3122.214, 6510.255, 81.00794, 2.86234, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+24, @PRISONER, 571, 1, 1, 0, 0, 3116.414, 6507.338, 81.34387, 5.811946, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+25, @PRISONER, 571, 1, 1, 0, 0, 3109.384, 6506.753, 81.68826, 6.038839, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+26, @PRISONER, 571, 1, 1, 0, 0, 3126.804, 6505.612, 81.01304, 3.909538, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+27, @PRISONER, 571, 1, 1, 0, 0, 3120.997, 6502.847, 81.33372, 3.228859, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+28, @PRISONER, 571, 1, 1, 0, 0, 3114.636, 6501.495, 81.61775, 0.3490658, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+29, @PRISONER, 571, 1, 1, 0, 0, 3109.11, 6498.783, 81.92492, 2.635447, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+30, @PRISONER, 571, 1, 1, 0, 0, 3126.413, 6498.179, 81.30205, 6.248279, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+31, @PRISONER, 571, 1, 1, 0, 0, 3120.758, 6495.855, 81.59259, 2.495821, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+32, @PRISONER, 571, 1, 1, 0, 0, 3115.22, 6492.261, 81.93079, 5.5676, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+33, @PRISONER, 571, 1, 1, 0, 0, 3126.15, 6489.568, 81.65459, 2.146755, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+34, @PRISONER, 571, 1, 1, 0, 0, 3120.454, 6486.966, 81.9426, 1.902409, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+35, @PRISONER, 571, 1, 1, 0, 0, 3095.756, 6528.297, 81.4939, 4.433136, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+36, @PRISONER, 571, 1, 1, 0, 0, 3091.309, 6532.723, 81.41476, 4.502949, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+37, @PRISONER, 571, 1, 1, 0, 0, 3104.285, 6519.577, 81.50758, 6.178465, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+38, @PRISONER, 571, 1, 1, 0, 0, 3112.36, 6527.987, 80.87508, 3.630285, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+39, @PRISONER, 571, 1, 1, 0, 0, 3104.28, 6528.084, 81.18883, 3.420845, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+40, @PRISONER, 571, 1, 1, 0, 0, 3116.763, 6524.073, 80.84852, 6.021386, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+41, @PRISONER, 571, 1, 1, 0, 0, 3099.789, 6524.306, 81.51059, 3.368485, 15, 0, 0, 1848, 0, 0, 0, 0, 0),
+(@GUID+42, @VARIDUS, 571, 1, 1, 0, 0, 3126.529, 6532.781, 80.06363, 5.576992, 60, 0, 0, 0, 0, 0, 0, 0, 0);
+
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@GETRY,@VARIDUS,@NECROLORD,@PRISONER,@ABERRATION) AND `source_type`=0;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@VARIDUS*100 AND `source_type`=9;
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(@VARIDUS,0,0,0,38,0,100,0,0,1,0,0,69,1,0,0,0,0,0,8,0,0,0,3119.973,6539.042,80.1591, 0, 'Varidus the Flenser - On data 0 1 set - Move to position'),
+(@VARIDUS,0,1,2,34,0,100,0,0,1,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,4.031711, 'Varidus the Flenser - On movement inform - Set orientation'),
+(@VARIDUS,0,2,3,61,0,100,0,0,0,0,0,1,11,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Varidus the Flenser - On movement inform - Say line'),
+(@VARIDUS,0,3,0,61,0,100,0,0,0,0,0,89,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Varidus the Flenser - On movement inform - Stop Random movement'),
+(@VARIDUS,0,4,0,38,0,100,0,0,2,0,0,1,0,3000,0,0,0,0,1,0,0,0,0,0,0,0, 'Varidus the Flenser - On data 0 2 set - Say line'),
+(@VARIDUS,0,5,0,52,0,100,0,0,@VARIDUS,0,0,66,0,0,0,0,0,0,12,1,0,0,0,0,0,0, 'Varidus the Flenser - On text 0 over - Turn to'),
+(@VARIDUS,0,6,7,38,0,100,0,0,3,0,0,1,1,0,0,0,0,0,12,1,0,0,0,0,0,0, 'Varidus the Flenser - On data 0 3 set - Say line'),
+(@VARIDUS,0,7,8,61,0,100,0,0,0,0,0,12,@NECROLORD,1,300000,0,0,0,8,0,0,0,3137.506,6532.551,80.40143,2.280419, 'Varidus the Flenser - On data 0 3 set - Summon En''kilah Necrolord'),
+(@VARIDUS,0,8,0,61,0,100,0,0,0,0,0,100,1,0,0,0,0,0,19,@NECROLORD,50,0,0,0,0,0, 'Varidus the Flenser - On data 0 3 set - Send targetlist'),
+(@VARIDUS,0,9,0,38,0,100,0,0,4,0,0,80,@VARIDUS*100,2,0,0,0,0,1,0,0,0,0,0,0,0, 'Varidus the Flenser - On data 0 4 set - Run script'),
+(@VARIDUS,0,10,11,52,0,100,0,10,@VARIDUS,0,0,19,768,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Varidus the Flenser - On text 10 over - Remove unit_flags IMMUNE_TO_PC, IMMUNE_TO_NPC'),
+(@VARIDUS,0,11,0,61,0,100,0,0,0,0,0,28,45908,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Varidus the Flenser - On text 10 over - Remove aura Shield of Suffering'),
+(@VARIDUS,0,12,0,9,0,100,0,0,10,5000,8000,11,32711,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Varidus the Flenser - On target within 10y - Spellcast Shadow Nova'),
+(@VARIDUS,0,13,0,0,0,100,0,10000,12000,10000,15000,11,50329,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Varidus the Flenser - On update IC - Spellcast Shied of Suffering'),
+(@VARIDUS,0,14,15,6,0,100,0,0,0,0,0,45,1,3,0,0,0,0,19,@GETRY,100,0,0,0,0,0, 'Varidus the Flenser - On death - Set data 1 3 Shadowstalker Getry'),
+(@VARIDUS,0,15,0,61,0,100,0,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Varidus the Flenser - On death - Despawn'),
+(@VARIDUS,0,16,0,11,0,100,0,0,0,0,0,89,10,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Varidus the Flenser - On spawn - Random movement'),
+
+(@PRISONER,0,0,1,6,0,100,0,0,0,0,0,11,45802,2,0,0,0,0,1,0,0,0,0,0,0,0, 'Infested Prisoner - On death - Spellcast Summoned Aberration'),
+(@PRISONER,0,1,0,61,0,100,0,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Infested Prisoner - On death - Despawn'),
+
+(@ABERRATION,0,0,1,11,0,100,0,0,0,0,0,53,0,@ABERRATION,0,0,0,0,1,0,0,0,0,0,0,0, 'Warsong Aberration - On spawn - Start WP movement'),
+(@ABERRATION,0,1,0,61,0,100,0,0,0,0,0,8,2,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Warsong Aberration - On spawn - Set reaction aggressive'),
+(@ABERRATION,0,2,0,9,0,100,0,0,5,990,3000,11,50306,2,0,0,0,0,7,0,0,0,0,0,0,0, 'Warsong Aberration - On target within 5y - Spellcast Thrash Kick'),
+
+(@GETRY,0,0,1,19,0,100,0,@QUEST,0,0,0,64,1,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Shadowstalker Getry - On quest accept - Store targetlist'),
+(@GETRY,0,1,2,61,0,100,0,0,0,0,0,83,2,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Shadowstalker Getry - On quest accept - Remove npcflag questgiver'),
+(@GETRY,0,2,3,61,0,100,0,0,0,0,0,1,0,3000,0,0,0,0,1,0,0,0,0,0,0,0, 'Shadowstalker Getry - On quest accept - Say line'),
+(@GETRY,0,3,4,61,0,100,0,0,0,0,0,11,45924,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Shadowstalker Getry - On quest accept - Spellcast On Getry''s Quest'),
+(@GETRY,0,4,5,61,0,100,0,0,0,0,0,11,45924,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Shadowstalker Getry - On quest accept - Spellcast On Getry''s Quest'),
+(@GETRY,0,5,0,61,0,100,0,0,0,0,0,45,0,1,0,0,0,0,19,@VARIDUS,50,0,0,0,0,0, 'Shadowstalker Getry - On quest accept - Set data 0 1 Varidus the Flenser'),
+(@GETRY,0,6,7,52,0,100,0,0,@GETRY,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Shadowstalker Getry - On text 0 over - Say line'),
+(@GETRY,0,7,0,61,0,100,0,0,0,0,0,53,0,@GETRY,0,0,0,0,1,0,0,0,0,0,0,0, 'Shadowstalker Getry - On text 0 over - Start WP'),
+(@GETRY,0,8,0,11,0,100,0,0,0,0,0,81,2,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Shadowstalker Getry - On spawn - Set npcflag questgiver'),
+(@GETRY,0,9,0,40,0,100,0,8,@GETRY,0,0,11,34189,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Shadowstalker Getry - On WP8 reached - Spellcast Stealth'),
+(@GETRY,0,10,11,40,0,100,0,9,@GETRY,0,0,45,0,2,0,0,0,0,19,@VARIDUS,30,0,0,0,0,0, 'Shadowstalker Getry - On WP 9 reached - Set data 0 2 Varidus the Flenser'),
+(@GETRY,0,11,0,61,0,100,0,0,0,0,0,100,1,0,0,0,0,0,19,@VARIDUS,30,0,0,0,0,0, 'Shadowstalker Getry - On WP10 reached - Send targetlist to Varidus the Flenser'),
+(@GETRY,0,12,13,40,0,100,0,10,@GETRY,0,0,66,0,0,0,0,0,0,19,@VARIDUS,20,0,0,0,0,0, 'Shadowstalker Getry - On WP10 reached - Turn to'),
+(@GETRY,0,13,14,61,0,100,0,0,0,0,0,101,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Shadowstalker Getry - On WP10 reached - Set home position'),
+(@GETRY,0,14,15,61,0,100,0,0,0,0,0,28,34189,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Shadowstalker Getry - On WP10 reached - Remove aura Stealth'),
+(@GETRY,0,15,16,61,0,100,0,0,0,0,0,11,45922,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Shadowstalker Getry - On WP10 reached - Spellcast Shadow Prison'),
+(@GETRY,0,16,17,61,0,100,0,0,0,0,0,86,45922,0,12,1,0,0,12,1,0,0,0,0,0,0, 'Shadowstalker Getry - On WP10 reached - Crosscast Shadow Prison'),
+(@GETRY,0,17,0,61,0,100,0,0,0,0,0,45,0,3,0,0,0,0,19,@VARIDUS,20,0,0,0,0,0, 'Shadowstalker Getry - On WP10 reached - Set Data 0 3 Varidus the Flenser'),
+(@GETRY,0,18,19,38,0,100,0,1,1,0,0,19,768,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Shadowstalker Getry - On data 1 1 set - Remove unit_flags IMMUNE_TO_PC, IMMUNE_TO_NPC'),
+(@GETRY,0,19,0,61,0,100,0,0,0,0,0,49,0,0,0,0,0,0,19,@VARIDUS,20,0,0,0,0,0, 'Shadowstalker Getry - On data 1 1 set - Start attack'),
+(@GETRY,0,20,21,38,0,100,0,1,3,0,0,15,@QUEST,0,0,0,0,0,12,1,0,0,0,0,0,0, 'Shadowstalker Getry - On data 1 3 set - Quest credit'),
+(@GETRY,0,21,0,61,0,100,0,0,0,0,0,1,2,5000,0,0,0,0,1,0,0,0,0,0,0,0, 'Shadowstalker Getry - On data 1 3 set - Say line'),
+(@GETRY,0,22,0,52,0,100,0,2,@GETRY,0,0,1,3,5000,0,0,0,0,1,0,0,0,0,0,0,0, 'Shadowstalker Getry - On text 2 over - Say line'),
+(@GETRY,0,23,0,52,0,100,0,3,@GETRY,0,0,45,1,2,0,0,0,0,19,@SAURFANG,20,0,0,0,0,0, 'Shadowstalker Getry - On text 3 over - Set data 1 2 High Overlord Saurfang'),
+(@GETRY,0,24,0,38,0,100,0,1,4,0,0,53,0,@GETRY*100,0,0,0,0,1,0,0,0,0,0,0,0, 'Shadowstalker Getry - On data 1 4 set - Start WP movement'),
+(@GETRY,0,26,27,40,0,100,0,10,@GETRY*100,0,0,81,2,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Shadowstalker Getry - On WP10 reached (Return) - Set npcflag questgiver'),
+(@GETRY,0,27,28,61,0,100,0,0,0,0,0,18,756,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Shadowstalker Getry - On WP10 reached (Return) - Set unit_flags IMMUNE_TO_PC, IMMUNE_TO_NPC'),
+(@GETRY,0,28,0,61,0,100,0,0,0,0,0,101,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Shadowstalker Getry - On WP10 reached (Return) - Set homeposition'),
+(@GETRY,0,29,30,8,0,100,0,45950,0,0,0,28,45922,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Shadowstalker Getry - On spellhit Saurfangs Rage - Remove aura Shadow Prison'),
+(@GETRY,0,30,0,61,0,100,0,0,0,0,0,28,45922,0,0,0,0,0,12,1,0,0,0,0,0,0, 'Shadowstalker Getry - On spellhit Saurfangs Rage - Remove aura Shadow Prison'),
+
+(@NECROLORD,0,0,0,11,0,100,0,0,0,0,0,53,0,@NECROLORD,0,0,0,0,1,0,0,0,0,0,0,0, 'En''kilah Necrolord - On spawn - Start WP movement'),
+(@NECROLORD,0,1,2,40,0,100,0,2,@NECROLORD,0,0,101,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'En''kilah Necrolord - On reached WP1 - Set home position'),
+(@NECROLORD,0,2,0,61,0,100,0,0,0,0,0,45,0,4,0,0,0,0,19,@VARIDUS,10,0,0,0,0,0, 'En''kilah Necrolord - On reached WP1 - Set data 0 4 Varidus the Flenser'),
+(@NECROLORD,0,3,4,38,0,100,0,0,1,0,0,66,0,0,0,0,0,0,19,@VARIDUS,10,0,0,0,0,0, 'En''kilah Necrolord - On data 0 1 set - Turn to'),
+(@NECROLORD,0,4,0,61,0,100,0,0,0,0,0,36,@SAURFANG,0,0,0,0,0,1,0,0,0,0,0,0,0, 'En''kilah Necrolord - On data 0 1 set - Change entry to High Overlord Saurfang'),
+(@NECROLORD,0,5,0,38,0,100,0,0,2,0,0,1,0,2500,0,0,0,0,12,1,0,0,0,0,0,0, 'High Overlord Saurfang - On data 0 2 set - Say line'),
+(@NECROLORD,0,6,0,52,0,100,0,0,@SAURFANG,0,0,66,0,0,0,0,0,0,12,1,0,0,0,0,0,0, 'High Overlord Saurfang - On text 0 over - Turn to'),
+(@NECROLORD,0,7,0,38,0,100,0,0,3,0,0,1,1,4000,0,0,0,0,12,1,0,0,0,0,0,0, 'High Overlord Saurfang - On data 0 3 set - Say line'),
+(@NECROLORD,0,8,0,52,0,100,0,1,@SAURFANG,0,0,66,0,0,0,0,0,0,19,@VARIDUS,10,0,0,0,0,0, 'High Overlord Saurfang - On text 1 over - Turn to'),
+(@NECROLORD,0,9,0,38,0,100,0,0,4,0,0,1,2,5000,0,0,0,0,1,0,0,0,0,0,0,0, 'High Overlord Saurfang - On data 0 4 set - Say line'),
+(@NECROLORD,0,10,0,52,0,100,0,2,@SAURFANG,0,0,1,3,12000,0,0,0,0,1,0,0,0,0,0,0,0, 'High Overlord Saurfang - On text 2 over - Say line'),
+(@NECROLORD,0,11,0,52,0,100,0,3,@SAURFANG,0,0,1,4,0,0,0,0,0,1,0,0,0,0,0,0,0, 'High Overlord Saurfang - On text 3 over - Say line'),
+(@NECROLORD,0,13,14,38,0,100,0,1,1,0,0,19,256,0,0,0,0,0,1,0,0,0,0,0,0,0, 'High Overlord Saurfang - On data 1 1 set - Remove unit_flags IMMUNE_TO_NPC'),
+(@NECROLORD,0,14,15,61,0,100,0,0,0,0,0,11,45950,0,0,0,0,0,1,0,0,0,0,0,0,0, 'High Overlord Saurfang - On data 1 1 set - Spellcast Saurfang''s Rage'),
+(@NECROLORD,0,15,0,61,0,100,0,0,0,0,0,1,5,1000,0,0,0,0,1,0,0,0,0,0,0,0, 'High Overlord Saurfang - On data 1 1 set - Say line'),
+(@NECROLORD,0,16,0,52,0,100,0,5,@SAURFANG,0,0,1,6,1000,0,0,0,0,1,0,0,0,0,0,0,0, 'High Overlord Saurfang - On text 5 over - Say line'),
+(@NECROLORD,0,17,0,61,0,100,0,0,0,0,0,41,3000,0,0,0,0,0,1,0,0,0,0,0,0,0, 'High Overlord Saurfang - On text 7 over - Despawn after 3 seconds'),
+(@NECROLORD,0,18,0,9,0,100,0,0,5,20000,25000,11,41097,0,0,0,0,0,1,0,0,0,0,0,0,0, 'High Overlord Saurfang - On target within 5y - Spellcast Whirlwind'),
+(@NECROLORD,0,19,0,0,0,100,0,3000,7000,3000,8000,11,16044,0,0,0,0,0,1,0,0,0,0,0,0,0, 'High Overlord Saurfang - On update IC - Spellcast Cleave'),
+(@NECROLORD,0,20,0,0,0,100,0,2000,7000,5000,7000,11,24573,0,0,0,0,0,2,0,0,0,0,0,0,0, 'High Overlord Saurfang - On update IC - Spellcast Mortal Strike'),
+(@NECROLORD,0,21,0,9,0,100,0,8,25,5000,5000,11,15749,0,0,0,0,0,2,0,0,0,0,0,0,0, 'High Overlord Saurfang - On target within 8-25y - Spellcast Shield Charge'),
+(@NECROLORD,0,22,0,38,0,100,0,0,5,0,0,66,0,0,0,0,0,0,12,1,0,0,0,0,0,0, 'High Overlord Saurfang - On data 0 5 set - Turn to'),
+(@NECROLORD,0,23,0,38,0,100,0,1,2,0,0,1,7,3000,0,0,0,0,1,0,0,0,0,0,0,0, 'High Overlord Saurfang - On data 1 2 set - Say line'),
+(@NECROLORD,0,24,17,52,0,100,0,7,@SAURFANG,0,0,45,1,4,0,0,0,0,19,@GETRY,20,0,0,0,0,0, 'High Overlord Saurfang - On text 7 over - Set data 1 4 Shadowstalker Getry'),
+
+(@VARIDUS*100,9,0,0,0,0,100,0,0,0,0,0,45,0,5,0,0,0,0,19,@NECROLORD,10,0,0,0,0,0, 'Varidus the Flenser script - Set data 0 5 En''kilah Necrolord'),
+(@VARIDUS*100,9,1,0,0,0,100,0,0,0,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Varidus the Flenser script - Say line'),
+(@VARIDUS*100,9,2,0,0,0,100,0,5000,5000,0,0,1,3,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Varidus the Flenser script - Say line'),
+(@VARIDUS*100,9,3,0,0,0,100,0,3000,3000,0,0,1,4,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Varidus the Flenser script - Say line'),
+(@VARIDUS*100,9,4,0,0,0,100,0,4000,4000,0,0,1,5,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Varidus the Flenser script - Say line'),
+(@VARIDUS*100,9,5,0,0,0,100,0,6000,6000,0,0,66,0,0,0,0,0,0,19,@NECROLORD,10,0,0,0,0,0, 'Varidus the Flenser script - Turn to'),
+(@VARIDUS*100,9,6,0,0,0,100,0,1000,1000,0,0,1,6,0,0,0,0,0,12,1,0,0,0,0,0,0, 'Varidus the Flenser script - Say line'),
+(@VARIDUS*100,9,7,0,0,0,100,0,6000,6000,0,0,45,0,1,0,0,0,0,19,@NECROLORD,10,0,0,0,0,0, 'Varidus the Flenser script - Set data 0 1 En''kilah Necrolord'),
+(@VARIDUS*100,9,8,0,0,0,100,0,1000,1000,0,0,45,0,2,0,0,0,0,19,@SAURFANG,10,0,0,0,0,0, 'Varidus the Flenser script - Set data 0 2 High Overlord Saurfang'),
+(@VARIDUS*100,9,9,0,0,0,100,0,1500,1500,0,0,1,7,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Varidus the Flenser script - Say line'),
+(@VARIDUS*100,9,10,0,0,0,100,0,2000,2000,0,0,45,0,3,0,0,0,0,19,@SAURFANG,10,0,0,0,0,0, 'Varidus the Flenser script - Set data 0 3 High Overlord Saurfang'),
+(@VARIDUS*100,9,11,0,0,0,100,0,5000,5000,0,0,45,0,4,0,0,0,0,19,@SAURFANG,10,0,0,0,0,0, 'Varidus the Flenser script - Set data 0 4 High Overlord Saurfang'),
+(@VARIDUS*100,9,12,0,0,0,100,0,13000,13000,0,0,1,8,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Varidus the Flenser script - Say line'),
+(@VARIDUS*100,9,13,0,0,0,100,0,10000,10000,0,0,1,9,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Varidus the Flenser script - Say line'),
+(@VARIDUS*100,9,14,0,0,0,100,0,2000,2000,0,0,1,10,2000,0,0,0,0,1,0,0,0,0,0,0,0, 'Varidus the Flenser - On text 9 over - Say line'),
+(@VARIDUS*100,9,15,0,0,0,100,0,0,0,0,0,11,45949,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Varidus the Flenser script - Spellcast Release Aberration'),
+(@VARIDUS*100,9,16,0,0,0,100,0,0,0,0,0,45,1,1,0,0,0,0,19,@GETRY,20,0,0,0,0,0, 'Varidus the Flenser script - Set data 1 1 Shadowstalker Getry'),
+(@VARIDUS*100,9,17,0,0,0,100,0,0,0,0,0,45,1,1,0,0,0,0,19,@SAURFANG,20,0,0,0,0,0, 'Varidus the Flenser script - Set data 1 1 Saurfang');
+
+DELETE FROM `creature_text` WHERE `entry` IN (@GETRY,@VARIDUS,@SAURFANG);
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@GETRY,0,0,'This is it, $N. The start of the end of the world. And you''re here to see it off...',12,1,100,1,0,0,'Shadowstalker Getry'),
+(@GETRY,1,0,'Let''s go...',12,1,100,0,0,0,'Shadowstalker Getry'),
+(@GETRY,2,0,'I... I can''t believe it... Saurfang... I... I am honored... honored to have fought along side you, sir.',12,1,100,0,0,0,'Shadowstalker Getry'),
+(@GETRY,3,0,'You should return to Warsong Hold now, friend. Hellscream will surely want to hear of what just happened here... of Saurfang...',12,1,100,0,0,0,'Shadowstalker Getry'),
+(@VARIDUS,0,0,'Is this it? Is this all the mighty Horde could muster?',12,0,100,6,0,0,'Varidus the Flenser'),
+(@VARIDUS,1,0,'Pathetic.',12,0,100,11,0,0,'Varidus the Flenser'),
+(@VARIDUS,2,0,'I''ve never understood your type. The hero...',12,0,100,1,0,0,'Varidus the Flenser'),
+(@VARIDUS,3,0,'Why won''t you just let go? Why do you fight the inevitable?',12,0,100,6,0,0,'Varidus the Flenser'),
+(@VARIDUS,4,0,'The Lich King cannot be stopped. Accept it.',12,0,100,274,0,0,'Varidus the Flenser'),
+(@VARIDUS,5,0,'This world is coming to an end. Let. It. Burn.',12,0,100,397,0,0,'Varidus the Flenser'),
+(@VARIDUS,6,0,'Take $g him:her; away and prepare $g him:her; for reanimation.',12,0,100,1,0,0,'Varidus the Flenser'),
+(@VARIDUS,7,0,'What''s this now?',12,0,100,1,0,0,'Varidus the Flenser'),
+(@VARIDUS,8,0,'Then you are a fool.',12,0,100,25,0,0,'Varidus the Flenser'),
+(@VARIDUS,9,0,'You? A lone orc? Against me and...',12,0,100,397,0,0,'Varidus the Flenser'),
+(@VARIDUS,10,0,'RISE!',14,0,100,0,0,0,'Varidus the Flenser'),
+(@VARIDUS,11,0,'I will reanimate them all as servants of the Lich King! Bring them here...',14,0,100,0,0,0,'Varidus the Flenser'),
+(@SAURFANG,0,0,'I''ll rip your shriveled heart out with my bare hands before any harm comes to $N, necromancer.',12,1,100,5,0,0,'High Overlord Saurfang'),
+(@SAURFANG,1,0,'You were never alone, $N.',12,1,100,1,0,0,'High Overlord Saurfang'),
+(@SAURFANG,2,0,'This world that you seek to destroy is our home.',12,1,100,1,0,0,'High Overlord Saurfang'),
+(@SAURFANG,3,0,'We will fight you with every fiber of our being - until we are nothing more than dust and debris. We will fight until the end.',12,1,100,1,0,0,'High Overlord Saurfang'),
+(@SAURFANG,4,0,'A fool who is about to end you, necrolord. There will be nothing left of you for the Lich King to reanimate!',12,1,100,397,0,0,'High Overlord Saurfang'),
+(@SAURFANG,5,0,'%s''s eyes glow red for a brief moment.',16,0,100,0,0,0,'High Overlord Saurfang'),
+(@SAURFANG,6,0,'Is that the best you can do?',12,1,100,0,0,0,'High Overlord Saurfang'),
+(@SAURFANG,7,0,'You''ll make no mention of me. Either of you!',12,1,100,0,0,0,'High Overlord Saurfang');
+
+DELETE FROM `waypoints` WHERE `entry` IN (@GETRY,@NECROLORD,@GETRY*100,@ABERRATION);
+INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `point_comment`) VALUES
+(@GETRY, 1, 3109.214111,6587.148438,91.369102, 'Shadowstalker Getry'),
+(@GETRY, 2, 3115.414062,6595.680176,91.362068, 'Shadowstalker Getry'),
+(@GETRY, 3, 3125.109863,6590.983887,91.378548, 'Shadowstalker Getry'),
+(@GETRY, 4, 3123.863281,6582.144043,88.786133, 'Shadowstalker Getry'),
+(@GETRY, 5, 3117.805664,6583.018555,86.219604, 'Shadowstalker Getry'),
+(@GETRY, 6, 3118.874512,6590.157715,83.402168, 'Shadowstalker Getry'),
+(@GETRY, 7, 3127.298340,6589.030273,79.707741, 'Shadowstalker Getry'),
+(@GETRY, 8, 3122.869,6578.715,78.051, 'Shadowstalker Getry'),
+(@GETRY, 9, 3123.309,6560.647,78.61833, 'Shadowstalker Getry'),
+(@GETRY, 10, 3122.208,6549.245,79.64079, 'Shadowstalker Getry'),
+(@ABERRATION, 1, 3119.973,6539.042,80.1591, 'Warsong Aberration'),
+(@NECROLORD, 1, 3125.963,6536.96,79.93521, 'En''kilah Necrolord'),
+(@NECROLORD, 2, 3120.883,6542.995,79.95628, 'En''kilah Necrolord'),
+(@GETRY*100, 1, 3123.355957,6575.417969,78.330284, 'Shadowstalker Getry'),
+(@GETRY*100, 2, 3126.639404,6584.798828,77.656845, 'Shadowstalker Getry'),
+(@GETRY*100, 3, 3127.298340,6589.030273,79.707741, 'Shadowstalker Getry'),
+(@GETRY*100, 4, 3118.874512,6590.157715,83.402168, 'Shadowstalker Getry'),
+(@GETRY*100, 5, 3117.805664,6583.018555,86.219604, 'Shadowstalker Getry'),
+(@GETRY*100, 6, 3123.863281,6582.144043,88.786133, 'Shadowstalker Getry'),
+(@GETRY*100, 7, 3125.109863,6590.983887,91.378548, 'Shadowstalker Getry'),
+(@GETRY*100, 8, 3115.414062,6595.680176,91.362068, 'Shadowstalker Getry'),
+(@GETRY*100, 9, 3109.214111,6587.148438,91.369102, 'Shadowstalker Getry'),
+(@GETRY*100, 10, 3113.419922,6576.810059,97.090698, 'Shadowstalker Getry');
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=45949;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=@GETRY;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(13,1,45949,0,0,31,0,3,@PRISONER,0,0,0,'','Spell Release Aberration targets Infested Prisoner'),
+(22,37,@GETRY,0,0,36,1,0,0,0,0,0,'','Only execute SAI if Shadowstalker Getry alive');
+
+DELETE FROM `creature_equip_template` WHERE `entry`=@SAURFANG;
+INSERT INTO `creature_equip_template` (`entry`, `id`, `itemEntry1`, `itemEntry2`, `itemEntry3`) VALUES
+(@SAURFANG,1,21580,0,0);
+
+DELETE FROM `disables` WHERE `sourceType`=0 AND `entry`=45949;
+INSERT INTO `disables` (`sourceType`, `entry`, `flags`, `params_0`, `params_1`, `comment`) VALUES
+(0,45949,64,'','','Ignore LOS on Release Aberration');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_07_00_world_creature_ai_scripts.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_07_00_world_creature_ai_scripts.sql
new file mode 100644
index 00000000000..c6abfaf4039
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_07_00_world_creature_ai_scripts.sql
@@ -0,0 +1 @@
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=25730;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_08_00_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_08_00_world_misc.sql
new file mode 100644
index 00000000000..856f77111d5
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_08_00_world_misc.sql
@@ -0,0 +1,54 @@
+-- Fix quest: Danger! Explosives! (11218)
+
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry` IN (23974,29881);
+UPDATE `gameobject_template` SET `flags`=`flags`|4 WHERE `entry` IN (186403,186404,186466,186467,186468);
+UPDATE `gameobject_template` SET `AIName`='SmartGameObjectAI' WHERE `entry` IN (186403,186470);
+
+DELETE FROM `spell_area` WHERE `spell`=27769;
+INSERT INTO `spell_area` (`spell`,`area`,`autocast`) VALUES
+(27769,4071,1);
+
+DELETE FROM `creature_text` WHERE `entry`=29881;
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(29881,0,0,'They are coming for you.',15,0,100,0,0,14376,'An Unknown Voice'),
+(29881,0,1,'Give into your fear.',15,0,100,0,0,14377,'An Unknown Voice'),
+(29881,0,2,'Kill them all... before they kill you.',15,0,100,0,0,14378,'An Unknown Voice'),
+(29881,0,3,'They have turned against you. Now... take your revenge.',15,0,100,0,0,14379,'An Unknown Voice'),
+(29881,0,4,'Tell yourself again that these are not truly your friends.',15,0,100,0,0,14380,'An Unknown Voice'),
+(29881,0,5,'There is no escape, Not in this life. Not in the next.',15,0,100,0,0,14381,'An Unknown Voice'),
+(29881,0,6,'You are a pawn of forces unseen.',15,0,100,0,0,14382,'An Unknown Voice'),
+(29881,0,7,'It WAS your fault.',15,0,100,0,0,14383,'An Unknown Voice');
+
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (23974,29881) AND `source_type`=0;
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (186403,186470) AND `source_type`=1;
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (23974*100+0,23974*100+1,23974*100+2,23974*100+3,186403*100) AND `source_type`=9;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(23974,0,0,0,8,0,100,0,42697,0,0,0,87,23974*100+0,23974*100+1,23974*100+2,23974*100+3,0,0,1,0,0,0,0,0,0,0,'Whisper Gulch Ore Bunny - On spellhit Spell Danger! Explosive!: Ore Trap - Run random script'),
+
+(29881,0,0,0,8,0,100,0,29072,0,0,0,1,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'An Unknown Voice - On spellhit Whisper Gulch: Yogg-Saron Whisper Dummy - Say line'),
+
+(186403,1,0,1,38,0,100,0,0,1,0,0,44,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Whisper Gulch Ore - On data 0 1 set - Set phasemask 2'),
+(186403,1,1,0,61,0,100,0,0,0,0,0,80,186403*100,2,0,0,0,0,1,0,0,0,0,0,0,0,'Whisper Gulch Ore - On data 0 1 set - Run script'),
+
+(186470,1,0,0,70,0,100,0,1,0,0,0,45,0,1,0,0,0,0,20,186403,5,0,0,0,0,0,'Whisper Gulch Ore Trap - On state changed - Set data 0 1 Whisper Gulch Ore'),
+
+(23974*100+0,9,0,0,0,0,100,0,0,0,0,0,50,186404,120000,0,0,0,0,1,0,0,0,0,0,0,0,'Whisper Gulch Ore Bunny script 0 - Summon Whisper Gulch Gem'),
+(23974*100+0,9,1,0,0,0,100,0,4000,4000,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Whisper Gulch Ore Bunny script 0 - Despawn'),
+(23974*100+1,9,0,0,0,0,100,0,0,0,0,0,50,186466,120000,0,0,0,0,1,0,0,0,0,0,0,0,'Whisper Gulch Ore Bunny script 0 - Summon Whisper Gulch Gem'),
+(23974*100+1,9,1,0,0,0,100,0,4000,4000,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Whisper Gulch Ore Bunny script 0 - Despawn'),
+(23974*100+2,9,0,0,0,0,100,0,0,0,0,0,50,186467,120000,0,0,0,0,1,0,0,0,0,0,0,0,'Whisper Gulch Ore Bunny script 0 - Summon Whisper Gulch Gem'),
+(23974*100+2,9,1,0,0,0,100,0,4000,4000,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Whisper Gulch Ore Bunny script 0 - Despawn'),
+(23974*100+3,9,0,0,0,0,100,0,0,0,0,0,50,186468,120000,0,0,0,0,1,0,0,0,0,0,0,0,'Whisper Gulch Ore Bunny script 0 - Summon Whisper Gulch Ore Fragment'),
+(23974*100+3,9,1,0,0,0,100,0,4000,4000,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Whisper Gulch Ore Bunny script 0 - Despawn'),
+
+(186403*100,9,0,0,0,0,100,0,300000,300000,0,0,44,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Whisper Gulch Ore script - Set phasemask 1');
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry` IN (29072,42697,42703);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(13,1,29072,0,0,31,0,3,29881,0,0,0,'','Spell Whisper Gulch: Yogg-Saron Whisper Dummy targets An Unknown Voice'),
+(13,1,42697,0,0,31,0,3,23974,0,0,0,'','Spell Danger! Explosive!: Ore Trap targets Whisper Gulch Ore Bunny'),
+(13,1,42703,0,0,31,0,5,186470,0,0,0,'','Spell Steelring''s Foolproof Dynamite effect0 targets Whisper Gulch Ore Trap');
+
+DELETE FROM `spell_script_names` WHERE `spell_id`=27769;
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+(27769,'spell_gen_whisper_gulch_yogg_saron_whisper');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_09_00_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_09_00_world_misc.sql
new file mode 100644
index 00000000000..0f81ec4de06
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_09_00_world_misc.sql
@@ -0,0 +1,41 @@
+-- Fix quests: The Explorers' League Outpost (11448), We Can Rebuild It (11483)
+
+SET @MCGOYVER := 24040;
+SET @GOSSIP := 8991;
+
+UPDATE `creature_template` SET `AIName`='SmartAI', `ScriptName`='' WHERE `entry`=@MCGOYVER;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@MCGOYVER AND `source_type`=0;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@MCGOYVER,0,0,3,62,0,100,0,@GOSSIP,0,0,0,11,51221,0,0,0,0,0,7,0,0,0,0,0,0,0, 'McGoyver - On gossip option select - Spellcast Taxi to Explorers'' League Outpost'),
+(@MCGOYVER,0,1,3,62,0,100,0,9023,0,0,0,11,44280,0,0,0,0,0,7,0,0,0,0,0,0,0, 'McGoyver - On gossip option select - Spellcast Taxi to Explorers'' League Outpost'),
+(@MCGOYVER,0,2,3,62,0,100,0,@GOSSIP,1,0,0,11,51221,0,0,0,0,0,7,0,0,0,0,0,0,0, 'McGoyver - On gossip option select - Spellcast Taxi to Explorers'' League Outpost'),
+(@MCGOYVER,0,3,0,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0, 'McGoyver - On gossip option select - Close gossip'),
+(@MCGOYVER,0,4,0,62,0,100,0,@GOSSIP,2,0,0,11,44512,0,0,0,0,0,7,0,0,0,0,0,0,0, 'McGoyver - On gossip option select - Spellcast Create Dark Iron Ingots');
+
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger`=-51221;
+INSERT INTO `spell_linked_spell` (`spell_trigger`,`spell_effect`,`type`,`comment`) VALUES
+(-51221,44280,0,'On spellfade Taxi to Explorers'' League Outpost - Spellcast Taxi to Explorers'' League');
+
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=12144;
+DELETE FROM `gossip_menu` WHERE `entry`=9023 AND `text_id`=12193;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES
+(@GOSSIP,12144),
+(9023,12193);
+
+DELETE FROM `gossip_menu_option` WHERE `menu_id`=@GOSSIP AND `id` IN (0,1,2);
+DELETE FROM `gossip_menu_option` WHERE `menu_id`=9023 AND `id`=0;
+INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`) VALUES
+(@GOSSIP,0,0,'Official Explorers'' League business, McGoyver. Take me to the Explorers'' League Outpost!',1,1,0,0,0,0,''),
+(@GOSSIP,1,0,'Official Explorers'' League business, McGoyver. Take me to the Explorers'' League Outpost!',1,1,0,0,0,0,''),
+(@GOSSIP,2,0,'Walt sent me to pick up some dark iron ingots.',1,1,9023,0,0,0,''),
+(9023,0,0,'Yarp.',1,1,0,0,0,0,'');
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=14 AND `SourceGroup`=@GOSSIP;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=@GOSSIP;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=@MCGOYVER;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(14,@GOSSIP,12191,0,0,8,11278,0,0,0,0,'','McGoyver show different gossip if player has rewarded quest Return to Valgarde'),
+(15,@GOSSIP,0,0,0,28,11448,0,0,0,0,'','McGoyver show gossip option only if player has completed but not rewarded quest The Explorers'' League Outpost'),
+(15,@GOSSIP,1,0,0,8,11448,0,0,0,0,'','McGoyver show gossip option only if player has rewarded quest The Explorers'' League Outpost'),
+(15,@GOSSIP,2,0,0,9,11483,0,0,0,0,'','McGoyver show gossip option only if player has taken quest We Can Rebuild It'),
+(22,5,@MCGOYVER,0,0,2,34135,1,1,1,0,'','SAI triggers only if player has no Dark Iron Ingots');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_09_01_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_09_01_world_misc.sql
new file mode 100644
index 00000000000..7408d88dc1b
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_09_01_world_misc.sql
@@ -0,0 +1,15 @@
+-- Fix quest To Westguard Keep! (11291)
+
+DELETE FROM `gossip_menu_option` WHERE `menu_id`=9618;
+INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`) VALUES
+(9618,0,0,'Admiral Keller sent me, Emilune. Please send me to Westguard Keep!',1,1,0,0,0,0,'');
+
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=27930;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=27930 AND `source_type`=0;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(27930,0,0,1,62,0,100,0,9618,0,0,0,11,50028,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Emilune Winterwind - On gossip option select - Spellcast Gryphon Taxi to Westguard Keep'),
+(27930,0,1,0,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Emilune Winterwind - On gossip option select - Close gossip');
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=9618;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(15,9618,0,0,28,11291,0,0,0,'','Emilune Winterwind show gossip option only if player has rewarded but not completed quest To Westguard Keep!');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_10_00_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_10_00_world_sai.sql
new file mode 100644
index 00000000000..0cf752e5038
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_10_00_world_sai.sql
@@ -0,0 +1,15 @@
+-- Add SmartAI to Quarter Master Miranda Breechlock to give player item when selecting I need another Argent Dawn Commission.
+SET @ENTRY := 11536;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `id`=0;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@ENTRY,0,0,1,62,0,100,0,3461,0,0,0,11,17777,2,0,0,0,0,7,0,0,0,0,0,0,0, 'Miranda Breechlock - On gossip select - Cast Create Commission'),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Miranda Breechlock - On gossip select - Close Gossip');
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup` =3461;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(15,3461,0,0,0,2,0,12846,1,0,1,0,'','I need another Argent Dawn Commission. - Must not already have Argent Dawn Commission'),
+(15,3461,0,0,0,8,0,5401,0,0,0,0,'','I need another Argent Dawn Commission. - Must have completed Argent Dawn Commission Quest Alliance'),
+(15,3461,0,0,1,2,0,12846,1,0,1,0,'','I need another Argent Dawn Commission. - Must not already have Argent Dawn Commission'),
+(15,3461,0,0,1,8,0,5503,0,0,0,0,'','I need another Argent Dawn Commission. - Must have completed Argent Dawn Commission Quest Mage'),
+(15,3461,0,0,2,2,0,12846,1,0,1,0,'','I need another Argent Dawn Commission. - Must not already have Argent Dawn Commission'),
+(15,3461,0,0,2,8,0,5405,0,0,0,0,'','I need another Argent Dawn Commission. - Must have completed Argent Dawn Commission Quest Horde');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_10_01_world_gossip.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_10_01_world_gossip.sql
new file mode 100644
index 00000000000..eed996b22ba
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_10_01_world_gossip.sql
@@ -0,0 +1,33 @@
+-- Gossip for Quarter Master Miranda Breechlock
+SET @GOSSIP := 7208;
+SET @TEXT := 8498;
+-- Add Any Missing Gossip Menu item
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXT;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIP,@TEXT);
+DELETE FROM `gossip_menu` WHERE `entry`=7209 AND `text_id`=8499;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (7209,8499);
+DELETE FROM `gossip_menu` WHERE `entry`=7210 AND `text_id`=8500;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (7210,8500);
+DELETE FROM `gossip_menu` WHERE `entry`=7212 AND `text_id`=8502;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (7212,8502);
+DELETE FROM `gossip_menu` WHERE `entry`=7213 AND `text_id`=8503;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (7213,8503);
+
+-- Add Any Missing Gossip Option
+DELETE FROM `gossip_menu_option` WHERE menu_id=@GOSSIP;
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`)VALUES
+(@GOSSIP,0,0,"Friendly",1,1,7213,0,0,0,''),
+(@GOSSIP,1,0,"Honored",1,1,7209,0,0,0,''),
+(@GOSSIP,2,0,"Revered",1,1,7210,0,0,0,''),
+(@GOSSIP,3,0,"Exalted",1,1,7212,0,0,0,'');
+
+UPDATE `gossip_menu_option` SET `action_menu_id`=7208 WHERE `menu_id`=3461 AND `id`=2;
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup` =3461 AND `SourceEntry` IN (1,2);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(15,3461,1,0,0,8,0,5401,0,0,0,0,'','I would like to buy from you. - Must have completed Argent Dawn Commission Quest Alliance'),
+(15,3461,1,0,1,8,0,5503,0,0,0,0,'','I would like to buy from you. - Must have completed Argent Dawn Commission Quest Mage'),
+(15,3461,1,0,2,8,0,5405,0,0,0,0,'','I would like to buy from you. - Must have completed Argent Dawn Commission Quest Horde'),
+(15,3461,2,0,0,8,0,5401,0,0,0,0,'','Miranda, could you please tell me the insignia cost of items - Must have completed Argent Dawn Commission Quest Alliance'),
+(15,3461,2,0,1,8,0,5503,0,0,0,0,'','Miranda, could you please tell me the insignia cost of items - Must have completed Argent Dawn Commission Quest Mage'),
+(15,3461,2,0,2,8,0,5405,0,0,0,0,'','Miranda, could you please tell me the insignia cost of items - Must have completed Argent Dawn Commission Quest Horde');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_10_02_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_10_02_world_sai.sql
new file mode 100644
index 00000000000..bc8107cbc8f
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_10_02_world_sai.sql
@@ -0,0 +1,21 @@
+-- Add SmartAI for Quel'dorei Magewraith
+SET @ENTRY := 17612;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Quel''dorei Magewraith - On reset - Prevent combat movement'),
+(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Quel''dorei Magewraith - On aggro - Set phase 1'),
+(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,11,11921,1,0,0,0,0,2,0,0,0,0,0,0,0, 'Quel''dorei Magewraith - On aggro - Cast Fireball'),
+(@ENTRY,0,3,0,9,1,100,0,0,40,4000,5000,11,11921,1,0,0,0,0,2,0,0,0,0,0,0,0, 'Quel''dorei Magewraith - Combat - Cast Fireball (phase 1)'),
+(@ENTRY,0,4,0,9,1,100,0,0,40,9000,13000,11,31595,1,0,0,0,0,2,0,0,0,0,0,0,0, 'Quel''dorei Magewraith - Combat - Cast Arcant Bolt (phase 1)'),
+(@ENTRY,0,5,6,3,0,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Quel''dorei Magewraith - Mana at 15% - Allow combat movement'),
+(@ENTRY,0,6,0,61,0,100,1,0,0,0,0,22,2,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Quel''dorei Magewraith - Mana at 15% - Set phase 2'),
+(@ENTRY,0,7,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Quel''dorei Magewraith - At 35 yards - Allow combat movement (phase 1)'),
+(@ENTRY,0,8,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Quel''dorei Magewraith - At 15 yards - Prevent combat movement (phase 1)'),
+(@ENTRY,0,9,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Quel''dorei Magewraith - At 5 yards - Allow combat movement (phase 1)'),
+(@ENTRY,0,10,0,3,2,100,1,20,100,100,100,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Quel''dorei Magewraith - Mana at 20% - Set phase 1 (phase 2)'),
+(@ENTRY,0,11,0,0,0,100,0,3000,6000,7000,11000,11,31604,1,0,0,0,0,2,0,0,0,0,0,0,0, 'Quel''dorei Magewraith - Combat - Cast Arcant Weakness'),
+(@ENTRY,0,12,0,9,0,100,0,0,30,16000,20000,11,11436,1,0,0,0,0,2,0,0,0,0,0,0,0, 'Quel''dorei Magewraith - Combat - Cast Slow'),
+(@ENTRY,0,13,0,0,0,100,0,11000,18000,11000,18000,11,31596,4,0,0,0,0,2,0,0,0,0,0,0,0, 'Quel''dorei Magewraith - Combat - Cast Counterspell'),
+(@ENTRY,0,14,0,6,0,100,1,0,0,0,0,15,9595,0,0,0,0,0,16,0,0,0,0,0,0,0, 'Quel''dorei Magewraith - On death - Complete quest 9595');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_11_00_world_creature_template.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_11_00_world_creature_template.sql
new file mode 100644
index 00000000000..f3804796caf
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_11_00_world_creature_template.sql
@@ -0,0 +1,3 @@
+-- Set Entry 18955 "Camera Shaker - 30-90 seconds" as trigger and remove random movement
+UPDATE `creature_template` SET `modelid1`=16925, `modelid2`=16480, `flags_extra`=`flags_extra`|128 WHERE `entry`=18955;
+UPDATE `creature` SET `spawndist`=0, `MovementType`=0 WHERE `id`=18955;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_11_01_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_11_01_world_sai.sql
new file mode 100644
index 00000000000..8ec59c8561d
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_11_01_world_sai.sql
@@ -0,0 +1,2 @@
+-- Fix SAI for Sunseeker Harvester
+UPDATE `smart_scripts` SET `event_flags`=7 WHERE `entryorguid`=19509 AND `source_type`=0 AND `id`=2;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_12_00_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_12_00_world_misc.sql
new file mode 100644
index 00000000000..64689d14927
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_12_00_world_misc.sql
@@ -0,0 +1,55 @@
+-- Fix quest: Adding Injury to Insult (12481)
+
+UPDATE `creature` SET `position_z`=207.3961 WHERE `guid`=112513;
+
+UPDATE `creature_template` SET `speed_run`=2.571428, `InhabitType`=7, `HoverHeight`=7.5 WHERE `entry`=24238;
+
+DELETE FROM `creature_template_addon` WHERE `entry`=24238;
+INSERT INTO `creature_template_addon` (`entry`,`bytes1`,`bytes2`) VALUES
+(24238,33554432,1);
+
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry` IN (24458,24474);
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (24238,24458,24474) AND `source_type`=0;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(24238,0,0,0,1,0,100,0,10000,15000,45000,60000,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Bjorn Halgurdsson - On update OOC - Say text 2'),
+(24238,0,1,2,8,0,100,1,43315,0,0,0,84,0,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Bjorn Halgurdsson - On spellhit Vrykul Insult - Invoker say text 0'),
+(24238,0,2,0,61,0,100,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Bjorn Halgurdsson - On spellhit Vrykul Insult - Say text 1'),
+(24238,0,3,4,9,0,100,1,0,10,0,0,43,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Bjorn Halgurdsson - On target within 10y - Unmount'),
+(24238,0,4,5,61,0,100,0,0,0,0,0,60,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Bjorn Halgurdsson - On target within 10y - Disable fly'),
+(24238,0,5,0,61,0,100,0,0,0,0,0,91,33554432,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Bjorn Halgurdsson - On target within 10y - Remove unit_field_bytes1 (hovering)'),
+(24238,0,6,0,8,0,100,0,6660,0,0,0,49,0,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Bjorn Halgurdsson - On spellhit Shoot - Attack'),
+(24238,0,7,0,8,0,100,0,11971,0,0,0,49,0,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Bjorn Halgurdsson - On spellhit Sunder Armor - Attack'),
+(24238,0,8,0,8,0,100,0,18802,0,0,0,49,0,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Bjorn Halgurdsson - On spellhit Frost Shot - Attack'),
+(24238,0,9,0,8,0,100,0,43895,0,0,0,49,0,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Bjorn Halgurdsson - On spellhit Lydell''s Poison - Attack'),
+(24238,0,10,0,6,0,100,0,0,0,0,0,11,43371,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Bjorn Halgurdsson - On death - Spellcast Bjorn Kill Credit'),
+(24238,0,11,0,0,0,100,0,5000,10000,10000,15000,11,32736,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Bjorn Halgurdsson - On update IC - Spellcast Mortal Strike'),
+(24238,0,12,0,0,0,100,0,0,5000,10000,15000,11,33661,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Bjorn Halgurdsson - On update IC - Spellcast Crush Armor'),
+(24238,0,13,0,11,0,100,0,0,0,0,0,43,0,22657,0,0,0,0,1,0,0,0,0,0,0,0, 'Bjorn Halgurdsson - On spawn - Mount'),
+(24238,0,14,15,7,0,100,0,0,0,0,0,43,0,22657,0,0,0,0,1,0,0,0,0,0,0,0, 'Bjorn Halgurdsson - On evade - Mount'),
+(24238,0,15,16,61,0,100,0,0,0,0,0,60,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Bjorn Halgurdsson - On evade - Enable fly'),
+(24238,0,16,0,61,0,100,0,0,0,0,0,90,33554432,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Bjorn Halgurdsson - On evade - Set unit_field_bytes1 (hovering)'),
+
+(24458,0,0,0,4,0,100,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Lydell - On aggro - Say line'),
+(24458,0,1,0,9,0,100,0,0,5,8000,15000,11,11971,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Lydell - On target within 5y - Spellcast Sunder Armor'),
+(24458,0,2,0,0,0,100,0,3000,5000,70000,75000,11,43895,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Lydell - On update IC - Spellcast Lydell''s Poison'),
+
+(24474,0,0,0,9,0,100,0,5,30,8000,10000,11,18802,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Vengeance Landing Assassin - On target within 5-30y - Spellcast Frost Shot'),
+(24474,0,1,0,9,0,100,0,5,30,1500,2000,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Vengeance Landing Assassin - On target within 5-30y - Spellcast Shoot');
+
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger`=43315;
+INSERT INTO `spell_linked_spell` (`spell_trigger`,`spell_effect`,`type`,`comment`) VALUES
+(43315,46348,2,'On aura Vrykul Insult apply Slow Creature');
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=17 AND `SourceEntry`=43315;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorType`,`ScriptName`,`Comment`) VALUES
+(17,0,43315,0,31,1,3,24238,0,12,'','Spell Vrykul Insult is castable on Bjorn Halgurdsson only');
+
+DELETE FROM `creature_text` WHERE `entry` IN (24238,24458);
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(24238,0,0,'[Crude Vrykul] Bjorns mottar haelgond sygar!',14,0,100,0,0,0,'Bjorn Halgurdsson'),
+(24238,1,0,'No one speaks of my mother in that manner!',14,0,100,0,0,0,'Bjorn Halgurdsson'),
+(24238,2,0,'Drive the invaders out! For Queen Angerboda!',14,0,100,0,0,0,'Bjorn Halgurdsson'),
+(24238,2,1,'Fight without fear and the Val''kyr will reward you!',14,0,100,0,0,0,'Bjorn Halgurdsson'),
+(24238,2,2,'The Winterskorn tribe will prevail!',14,0,100,0,0,0,'Bjorn Halgurdsson'),
+
+(24458,0,0,'I''ve been saving this just for you, big boy!',12,0,100,0,0,0,'Lydell');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_12_01_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_12_01_world_misc.sql
new file mode 100644
index 00000000000..c7b84d811e2
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_12_01_world_misc.sql
@@ -0,0 +1,13 @@
+-- Fix quest: Badlands Reagent Run II (2203)
+
+UPDATE `item_loot_template` SET `mincountOrRef`=3, `maxcount`=3 WHERE `item`=7866;
+
+DELETE FROM `item_loot_template` WHERE `item`=7866 AND `entry`=16883;
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=9712;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(13,1,9712,0,31,3,2726,0,0,'','Spell Thaumaturgy Channel targets Scorched Guardian');
+
+DELETE FROM `spell_script_names` WHERE `spell_id`=9712;
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+(9712,'spell_q2203_thaumaturgy_channel');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_13_00_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_13_00_world_misc.sql
new file mode 100644
index 00000000000..09e3a3cb92b
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_13_00_world_misc.sql
@@ -0,0 +1,15 @@
+-- Updates for Quest A Blade Fit For A Champion
+
+UPDATE `creature_template` SET `ScriptName`= 'npc_lake_frog' WHERE `entry` IN (33211,33224);
+UPDATE `creature_template` SET `npcflag`=1 WHERE `entry` IN (33224);
+
+-- Add option conditions for gossip
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (15) AND `SourceGroup` IN (10316);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(15,10316,0,0,2,44981,1,1,1,0,'','Maiden of Ashwood Lake - Show gossip option if player does not have Ashwood Brand');
+
+-- NPC talk text insert from sniff
+DELETE FROM `creature_text` WHERE `entry`=33220;
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(33220,0,0, 'Can it really be? Free after all these years?',12,0,100,1,0,0, 'Maiden of Ashwood Lake'),
+(33220,1,0, 'And now, I must return to the waters of the lake.',12,0,100,2,0,0, 'Maiden of Ashwood Lake');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_13_01_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_13_01_world_misc.sql
new file mode 100644
index 00000000000..08c1c90ab08
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_13_01_world_misc.sql
@@ -0,0 +1,166 @@
+-- Fix quest: Convocation at Zol'Heb (12730)
+
+SET @GUID := 45214;
+
+SET @NPC_ELM_BUNNY_LARGE := 24021;
+SET @NPC_AKALI_PROPHET := 29028;
+SET @NPC_HARKOA := 29050;
+SET @GO_SKULL_PILE := 190594;
+SET @GO_CIRCLE := 191123;
+SET @GO_TORCH := 191365;
+SET @GO_SPELLFOCUS := 300221;
+
+DELETE FROM `creature` WHERE `guid` IN (@GUID);
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`MovementType`) VALUES
+(@GUID,@NPC_ELM_BUNNY_LARGE,571,1,1,21999,6448.935,-4475.177,451.3292,0.8028514,300,0,0);
+
+DELETE FROM `creature_text` WHERE `entry` IN (@NPC_AKALI_PROPHET,@NPC_HARKOA);
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@NPC_AKALI_PROPHET,0,0,'What is this? I recognize you from when I killed Akali. You must be this $N that everyone is dreading.',14,0,100,25,0,12009,'Prophet of Akali'),
+(@NPC_AKALI_PROPHET,1,0,'You don''t worry me, $g boy : girl;. Just the opposite - I look forward to killing you. Nothing will stand between me and Zim''Torga now!',14,0,100,15,0,6200,'Prophet of Akali'),
+(@NPC_AKALI_PROPHET,2,0,'How sad that only now do you grasp the truth - I wield the power of a god. You are a mere mortal. You cannot hope to defeat me!',14,0,100,11,0,0,'Prophet of Akali'),
+(@NPC_AKALI_PROPHET,3,0,'You''ve meddled in affairs that were none of your business. You are nothing but a foreign invader. Prepare to die!',14,0,100,15,0,0,'Prophet of Akali'),
+(@NPC_AKALI_PROPHET,4,0,'The prophet begins to cast a ritual of annihilation.',16,0,100,0,0,0,'Prophet of Akali'),
+(@NPC_AKALI_PROPHET,5,0,'What? HAR''KOA?!',14,0,100,0,0,0,'Prophet of Akali'),
+(@NPC_AKALI_PROPHET,6,0,'Very well, kitten. I see no need to delay your inevitable demise. I look forward to dealing with you just as soon as I finish off this fool!',14,0,100,0,0,0,'Prophet of Akali'),
+(@NPC_AKALI_PROPHET,7,0,'NO! I will not be defeated!',14,0,100,0,0,0,'Prophet of Akali'),
+(@NPC_HARKOA,0,0,'PROPHET!',14,0,100,0,0,643,'Har''koa'),
+(@NPC_HARKOA,1,0,'YOU KEEP YOUR FILTHY DRAKKARI HANDS OFF OF THEM!',14,0,100,35,0,11887,'Har''koa'),
+(@NPC_HARKOA,2,0,'I THINK NOT. YOU WILL DROP YOUR IMMUNITY, CEASE YOUR RITUAL NOW AND RELEASE THEM!',14,0,100,0,0,11883,'Har''koa'),
+(@NPC_HARKOA,3,0,'Thank you. Once again you have saved us all. I will see you back at Zim''Torga.',14,0,100,0,0,0,'Har''koa');
+
+UPDATE `creature_template` SET `speed_run`=3.5714286, `dmg_multiplier`=7.5 WHERE `entry`=@NPC_HARKOA;
+UPDATE `creature_model_info` SET `bounding_radius`=2.17, `combat_reach`=7 WHERE `modelid`=28009;
+
+DELETE FROM `creature_equip_template` WHERE `entry`=@NPC_AKALI_PROPHET;
+INSERT INTO `creature_equip_template` (`entry`,`id`,`itemEntry1`,`itemEntry2`,`itemEntry3`) VALUES
+(@NPC_AKALI_PROPHET,1,39892,0,0);
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry` IN (52956,52989);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(13,1,52956,0,0,31,0,3,@NPC_ELM_BUNNY_LARGE,0,0,0,'','Spell Prophet of Akali Convocation targets ELM General Purpose Bunny Large'),
+(13,1,52989,0,0,31,0,4,0,0,0,0,'','Spell Akali''s Stun targets players');
+
+DELETE FROM `spell_scripts` WHERE `id`=53010;
+INSERT INTO `spell_scripts` (`id`,`effIndex`,`delay`,`command`,`datalong`,`datalong2`,`dataint`,`x`,`y`,`z`,`o`) VALUES
+(53010,0,0,14,52989,0,0,0,0,0,0);
+
+DELETE FROM `spell_script_names` WHERE `spell_id`=53350;
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+(53350,'spell_q12730_quenching_mist');
+
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger`=52989;
+INSERT INTO `spell_linked_spell` (`spell_trigger`,`spell_effect`,`type`,`comment`) VALUES
+(52989,-53504,1,'On spellhit Akali''s Stun - Remove aura Flickering Flames');
+
+DELETE FROM `waypoints` WHERE `entry` IN (@NPC_HARKOA,@NPC_HARKOA*10);
+INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`point_comment`) VALUES
+(@NPC_HARKOA,1,6369.87,-4507.906,458.1296,'Har''koa'),
+(@NPC_HARKOA,2,6372.938,-4508.172,457.8796,'Har''koa'),
+(@NPC_HARKOA,3,6377.188,-4508.172,457.8796,'Har''koa'),
+(@NPC_HARKOA,4,6387.688,-4507.922,457.8796,'Har''koa'),
+(@NPC_HARKOA,5,6403.007,-4521.438,458.1296,'Har''koa'),
+
+(@NPC_HARKOA*10,1,6404.547,-4486.095,451.1878,'Har''koa'),
+(@NPC_HARKOA*10,2,6395.547,-4486.345,451.1878,'Har''koa'),
+(@NPC_HARKOA*10,3,6391.547,-4486.345,451.1878,'Har''koa'),
+(@NPC_HARKOA*10,4,6390.047,-4486.595,451.1878,'Har''koa'),
+(@NPC_HARKOA*10,5,6388.047,-4486.595,451.4378,'Har''koa'),
+(@NPC_HARKOA*10,6,6367.047,-4487.345,455.9378,'Har''koa'),
+(@NPC_HARKOA*10,7,6364.297,-4487.595,457.9378,'Har''koa'),
+(@NPC_HARKOA*10,8,6348.413,-4488.189,458.1296,'Har''koa');
+
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry` IN (@NPC_AKALI_PROPHET,@NPC_HARKOA);
+UPDATE `gameobject_template` SET `AIName`='SmartGameObjectAI' WHERE `entry` IN (@GO_SKULL_PILE,@GO_CIRCLE,@GO_TORCH,@GO_SPELLFOCUS);
+DELETE FROM `creature_ai_scripts` WHERE `creature_id` IN (@NPC_AKALI_PROPHET,@NPC_HARKOA);
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@NPC_AKALI_PROPHET,@NPC_HARKOA) AND `source_type`=0;
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@GO_SKULL_PILE,@GO_CIRCLE,@GO_TORCH,@GO_SPELLFOCUS) AND `source_type`=1;
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@NPC_AKALI_PROPHET*100+0,@NPC_AKALI_PROPHET*100+1,@NPC_AKALI_PROPHET*100+2,@NPC_HARKOA*100,@GO_CIRCLE*100,@GO_TORCH*100) AND `source_type`=9;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@NPC_AKALI_PROPHET,0,0,1,54,0,100,0,0,0,0,0,18,256,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Prophet of Akali - Just summoned - Set unit_flags IMMUNE_TO_PC'),
+(@NPC_AKALI_PROPHET,0,1,2,61,0,100,0,0,0,0,0,11,34427,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Prophet of Akali - Just summoned - Spellcast Ethereal Teleport'),
+(@NPC_AKALI_PROPHET,0,2,3,61,0,100,0,0,0,0,0,64,1,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Prophet of Akali - Just summoned - Store targetlist'),
+(@NPC_AKALI_PROPHET,0,3,0,61,0,100,0,0,0,0,0,80,@NPC_AKALI_PROPHET*100+0,2,0,0,0,0,1,0,0,0,0,0,0,0, 'Prophet of Akali - Just summoned - Run script 0'),
+(@NPC_AKALI_PROPHET,0,4,0,0,1,100,0,10000,12000,14000,16000,11,53496,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Prophet of Akali - On update IC (phase 1) - Spellcast Darting Flames'),
+(@NPC_AKALI_PROPHET,0,5,0,0,1,100,0,16000,18000,12000,15000,11,53493,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Prophet of Akali - On update IC (phase 1) - Spellcast Incinerate'),
+(@NPC_AKALI_PROPHET,0,6,7,2,0,100,1,0,70,0,0,11,52982,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Prophet of Akali - On health below 70% - Spellcast Akali''s Immunity'),
+(@NPC_AKALI_PROPHET,0,7,8,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Prophet of Akali - On health below 70% - Disable autoattack'),
+(@NPC_AKALI_PROPHET,0,8,9,61,0,100,0,0,0,0,0,22,2,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Prophet of Akali - On health below 70% - Set event phase 2'),
+(@NPC_AKALI_PROPHET,0,9,0,61,0,100,0,0,0,0,0,80,@NPC_AKALI_PROPHET*100+1,2,0,0,0,0,1,0,0,0,0,0,0,0, 'Prophet of Akali - On health below 70% - Run script 1'),
+(@NPC_AKALI_PROPHET,0,10,11,34,4,100,0,0,1,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,0.8028514, 'Prophet of Akali - On movement inform (phase 3) - Set orientation'),
+(@NPC_AKALI_PROPHET,0,11,12,61,0,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Prophet of Akali - On movement inform (phase 3) - Set event phase 0'),
+(@NPC_AKALI_PROPHET,0,12,0,61,0,100,0,0,0,0,0,80,@NPC_AKALI_PROPHET*100+2,2,0,0,0,0,1,0,0,0,0,0,0,0, 'Prophet of Akali - On movement inform (phase 3) - Run script 2'),
+
+(@NPC_HARKOA,0,0,0,54,0,100,0,0,0,0,0,53,1,@NPC_HARKOA,0,0,0,0,1,0,0,0,0,0,0,0, 'Har''koa - Just summoned - Start WP movement'),
+(@NPC_HARKOA,0,1,0,40,0,100,0,5,@NPC_HARKOA,0,0,45,0,1,0,0,0,0,19,@NPC_AKALI_PROPHET,50,0,0,0,0,0, 'Har''koa - On WP 5 reached - Set data 0 1 Akali Prophet'),
+(@NPC_HARKOA,0,2,0,38,0,100,0,0,1,0,0,66,0,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Har''koa - On data 0 1 set - Turn to'),
+(@NPC_HARKOA,0,3,0,38,0,100,0,0,2,0,0,80,@NPC_HARKOA*100,2,0,0,0,0,1,0,0,0,0,0,0,0, 'Har''koa - On data 0 2 set - Run script'),
+(@NPC_HARKOA,0,4,5,7,0,100,0,0,0,0,0,1,3,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Har''koa - On Evade - Say line'),
+(@NPC_HARKOA,0,5,0,61,0,100,0,0,0,0,0,53,1,@NPC_HARKOA*10,0,0,0,0,1,0,0,0,0,0,0,0, 'Har''koa - On Evade - Start WP movement'),
+(@NPC_HARKOA,0,6,0,0,0,100,0,15000,16000,9000,10000,11,53499,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Har''koa - On update IC - Spellcast Rake'),
+(@NPC_HARKOA,0,7,0,0,0,100,0,16000,17000,10000,10000,11,53498,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Har''koa - On update IC - Spellcast Swipe'),
+(@NPC_HARKOA,0,8,0,0,0,100,0,10000,12000,12000,15000,86,53350,0,19,@NPC_AKALI_PROPHET,30,0,1,0,0,0,0,0,0,0, 'Har''koa - On update IC - Spellcast Quenching Mist'),
+(@NPC_HARKOA,0,9,0,40,0,100,0,8,@NPC_HARKOA*10,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Har''koa - On WP 8 reached - Despawn'),
+
+(@GO_SKULL_PILE,1,0,1,38,0,100,0,0,1,0,0,44,2,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Zul''Drak Skull Pile 02 - On data 0 1 set - Set phasemask 2'),
+(@GO_SKULL_PILE,1,1,0,61,0,100,0,0,0,0,0,80,@GO_TORCH*100,2,0,0,0,0,1,0,0,0,0,0,0,0, 'Zul''Drak Skull Pile 02 - On data 0 1 set - Run script'),
+
+(@GO_CIRCLE,1,0,1,38,0,100,0,0,1,0,0,9,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Convocation Summoning Circle - On data 0 1 set - Activate gameobject'),
+(@GO_CIRCLE,1,1,0,61,0,100,0,0,0,0,0,80,@GO_CIRCLE*100,2,0,0,0,0,1,0,0,0,0,0,0,0, 'Convocation Summoning Circle - On data 0 1 set - Run script'),
+
+(@GO_TORCH,1,0,1,38,0,100,0,0,1,0,0,44,2,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Shadow Council Torch (x2.00) - On data 0 1 set - Set phasemask 2'),
+(@GO_TORCH,1,1,0,61,0,100,0,0,0,0,0,80,@GO_TORCH*100,2,0,0,0,0,1,0,0,0,0,0,0,0, 'Shadow Council Torch (x2.00) - On data 0 1 set - Run script'),
+
+(@GO_SPELLFOCUS,1,0,1,38,0,100,0,0,1,0,0,44,2,0,0,0,0,0,1,0,0,0,0,0,0,0, 'TEMP Convocation Summoning Circle - On data 0 1 set - Set phasemask 2'),
+(@GO_SPELLFOCUS,1,1,0,61,0,100,0,0,0,0,0,80,@GO_TORCH*100,2,0,0,0,0,1,0,0,0,0,0,0,0, 'TEMP Convocation Summoning Circle - On data 0 1 set - Run script'),
+
+(@NPC_AKALI_PROPHET*100+0,9,0,0,0,0,100,0,0,0,0,0,45,0,1,0,0,0,0,13,@GO_SKULL_PILE,0,20,0,0,0,0, 'Prophet of Akali script 0 - Set data 0 1 Zul''Drak Skull Pile 02'),
+(@NPC_AKALI_PROPHET*100+0,9,1,0,0,0,100,0,0,0,0,0,45,0,1,0,0,0,0,20,@GO_CIRCLE,20,0,0,0,0,0, 'Prophet of Akali script 0 - Set data 0 1 Convocation Summoning Circle'),
+(@NPC_AKALI_PROPHET*100+0,9,2,0,0,0,100,0,0,0,0,0,45,0,1,0,0,0,0,13,@GO_TORCH,0,20,0,0,0,0, 'Prophet of Akali script 0 - Set data 0 1 Shadow Council Torch (x2.00)'),
+(@NPC_AKALI_PROPHET*100+0,9,3,0,0,0,100,0,0,0,0,0,45,0,1,0,0,0,0,20,@GO_SPELLFOCUS,20,0,0,0,0,0, 'Prophet of Akali script 0 - Set data 0 1 TEMP Convocation Summoning Circle'),
+(@NPC_AKALI_PROPHET*100+0,9,4,0,0,0,100,0,2000,2000,0,0,66,0,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Prophet of Akali script 0 - Turn to summoner'),
+(@NPC_AKALI_PROPHET*100+0,9,5,0,0,0,100,0,0,0,0,0,1,0,0,0,0,0,0,23,0,0,0,0,0,0,0, 'Prophet of Akali script 0 - Say line'),
+(@NPC_AKALI_PROPHET*100+0,9,6,0,0,0,100,0,6000,6000,0,0,66,0,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Prophet of Akali script 0 - Turn to summoner'),
+(@NPC_AKALI_PROPHET*100+0,9,7,0,0,0,100,0,0,0,0,0,1,1,0,0,0,0,0,23,0,0,0,0,0,0,0, 'Prophet of Akali script 0 - Say line'),
+(@NPC_AKALI_PROPHET*100+0,9,8,0,0,0,100,0,3600,3600,0,0,19,256,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Prophet of Akali script 0 - Remove unit_flags IMMUNE_TO_PC'),
+(@NPC_AKALI_PROPHET*100+0,9,9,0,0,0,100,0,0,0,0,0,49,0,0,0,0,0,0,12,1,0,0,0,0,0,0, 'Prophet of Akali script 0 - Start attack'),
+(@NPC_AKALI_PROPHET*100+0,9,10,0,0,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Prophet of Akali script 0 - Set event phase 1'),
+
+(@NPC_AKALI_PROPHET*100+1,9,0,0,0,0,100,0,2400,2400,0,0,11,52989,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Prophet of Akali script 1 - Spellcast Akali''s Stun'),
+(@NPC_AKALI_PROPHET*100+1,9,1,0,0,0,100,0,0,0,0,0,69,1,0,0,0,0,0,8,0,0,0,6448.36,-4475.49,451.0759,0, 'Prophet of Akali script 1 - Move to position'),
+(@NPC_AKALI_PROPHET*100+1,9,2,0,0,0,100,0,0,0,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Prophet of Akali script 1 - Set event phase 3'),
+
+(@NPC_AKALI_PROPHET*100+2,9,0,0,0,0,100,0,800,800,0,0,1,2,0,0,0,0,0,23,0,0,0,0,0,0,0, 'Prophet of Akali script 2 - Say line'),
+(@NPC_AKALI_PROPHET*100+2,9,1,0,0,0,100,0,6000,6000,0,0,1,3,0,0,0,0,0,23,0,0,0,0,0,0,0, 'Prophet of Akali script 2 - Say line'),
+(@NPC_AKALI_PROPHET*100+2,9,2,0,0,0,100,0,2400,2400,0,0,11,52993,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Prophet of Akali script 2 - Spellcast Akali''s Ritual of Annihilation'),
+(@NPC_AKALI_PROPHET*100+2,9,3,0,0,0,100,0,0,0,0,0,1,4,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Prophet of Akali script 2 - Say line'),
+(@NPC_AKALI_PROPHET*100+2,9,4,0,0,0,100,0,2000,2000,0,0,12,@NPC_HARKOA,1,300000,0,0,0,8,0,0,0,6355.075,-4494.311,458.179,0, 'Prophet of Akali script 2 - Summon Har''koa'),
+(@NPC_AKALI_PROPHET*100+2,9,5,0,0,0,100,0,4000,4000,0,0,45,0,1,0,0,0,0,19,@NPC_HARKOA,100,0,0,0,0,0, 'Prophet of Akali script 2 - Set data 0 1 Har''koa'),
+(@NPC_AKALI_PROPHET*100+2,9,6,0,0,0,100,0,4600,4600,0,0,45,0,2,0,0,0,0,19,@NPC_HARKOA,100,0,0,0,0,0, 'Prophet of Akali script 2 - Set data 0 2 Har''koa'),
+(@NPC_AKALI_PROPHET*100+2,9,7,0,0,0,100,0,1500,1500,0,0,66,0,0,0,0,0,0,19,@NPC_HARKOA,100,0,0,0,0,0, 'Prophet of Akali script 2 - Turn to Har''koa'),
+(@NPC_AKALI_PROPHET*100+2,9,8,0,0,0,100,0,1300,1300,0,0,1,5,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Prophet of Akali script 2 - Say line'),
+(@NPC_AKALI_PROPHET*100+2,9,9,0,0,0,100,0,7100,7100,0,0,66,0,0,0,0,0,0,19,@NPC_HARKOA,100,0,0,0,0,0, 'Prophet of Akali script 2 - Turn to Har''koa'),
+(@NPC_AKALI_PROPHET*100+2,9,10,0,0,0,100,0,100,100,0,0,1,6,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Prophet of Akali script 2 - Say line'),
+(@NPC_AKALI_PROPHET*100+2,9,11,0,0,0,100,0,9500,9500,0,0,92,0,52993,1,0,0,0,1,0,0,0,0,0,0,0, 'Prophet of Akali script 2 - Interrupt spellcast'),
+(@NPC_AKALI_PROPHET*100+2,9,12,0,0,0,100,0,300,300,0,0,11,53010,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Prophet of Akali script 2 - Spellcast Convocation at Zol''Heb: Removef Akali''s Stun'),
+(@NPC_AKALI_PROPHET*100+2,9,13,0,0,0,100,0,0,0,0,0,28,52982,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Prophet of Akali script 2 - Remove aura Akali''s Immunity'),
+(@NPC_AKALI_PROPHET*100+2,9,14,0,0,0,100,0,100,100,0,0,1,7,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Prophet of Akali script 2 - Say line'),
+(@NPC_AKALI_PROPHET*100+2,9,15,0,0,0,100,0,0,0,0,0,19,512,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Prophet of Akali script 2 - Remove unit_flags IMMUNE_TO_NPC'),
+(@NPC_AKALI_PROPHET*100+2,9,16,0,0,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Prophet of Akali script 2 - Set event phase 1'),
+(@NPC_AKALI_PROPHET*100+2,9,17,0,0,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Prophet of Akali script 2 - Enable combat movement'),
+(@NPC_AKALI_PROPHET*100+2,9,18,0,0,0,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Prophet of Akali script 2 - Enable autoattack'),
+
+(@NPC_HARKOA*100,9,0,0,0,0,100,0,1200,1200,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Har''koa script 0 - Say line'),
+(@NPC_HARKOA*100,9,1,0,0,0,100,0,5100,5100,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Har''koa script 0 - Say line'),
+(@NPC_HARKOA*100,9,2,0,0,0,100,0,11000,11000,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Har''koa script 0 - Say line'),
+(@NPC_HARKOA*100,9,3,0,0,0,100,0,0,0,0,0,11,53004,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Har''koa script 0 - Spellcast Har''koa''s Compulsion'),
+(@NPC_HARKOA*100,9,4,0,0,0,100,0,400,400,0,0,19,512,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Har''koa script 0 - Remove unit_flags IMMUNE_TO_NPC'),
+(@NPC_HARKOA*100,9,5,0,0,0,100,0,2700,2700,0,0,97,108.6365,0,0,0,0,0,1,0,0,0,6439.68,-4484.5,451.246,0, 'Har''koa script 0 - Jump to position'),
+(@NPC_HARKOA*100,9,6,0,0,0,100,0,2000,2000,0,0,49,0,0,0,0,0,0,19,@NPC_AKALI_PROPHET,50,0,0,0,0,0, 'Har''koa script 0 - Start attack'),
+(@NPC_HARKOA*100,9,7,0,0,0,100,0,0,0,0,0,11,53029,0,0,0,0,0,19,@NPC_AKALI_PROPHET,50,0,0,0,0,0, 'Har''koa script 0 - Spellcast Har''koa''s Challenge'),
+(@NPC_HARKOA*100,9,8,0,0,0,100,0,0,0,0,0,101,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Har''koa script 0 - Set homeposition'),
+
+(@GO_CIRCLE*100,9,0,0,0,0,100,0,1000,1000,0,0,44,2,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Convocation Summoning Circle script - Set phasemask 2'),
+(@GO_CIRCLE*100,9,1,0,0,0,100,0,299000,299000,0,0,44,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Convocation Summoning Circle script - Set phasemask 1'),
+
+(@GO_TORCH*100,9,0,0,0,0,100,0,300000,300000,0,0,44,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Shadow Council Torch (x2.00) script - Set phasemask 1');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_13_02_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_13_02_world_misc.sql
new file mode 100644
index 00000000000..6b74abd4aa9
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_13_02_world_misc.sql
@@ -0,0 +1,25 @@
+-- Add missing lake frog spawns
+SET @GUID := 72770;
+SET @POOL := 60003;
+
+DELETE FROM `creature` WHERE `guid` BETWEEN @GUID AND @GUID+5;
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+(@GUID+0,33224,571,1,1,0,0,3819.225,-4360.781,182.312,4.927386,120,5,0,1,0,1),
+(@GUID+1,33224,571,1,1,0,0,3822.34,-4362.166,182.5561,0.4575224,120,5,0,1,0,1),
+(@GUID+2,33224,571,1,1,0,0,3803.501,-4354.347,180.8061,4.409188,120,5,0,1,0,1),
+(@GUID+3,33224,571,1,1,0,0,3778.917,-4312.72,183.4503,0.9890772,120,5,0,1,0,1),
+(@GUID+4,33224,571,1,1,0,0,3805.652,-4352.625,181.4311,5.342484,120,5,0,1,0,1),
+(@GUID+5,33224,571,1,1,0,0,3803.122,-4347.75,180.8061,2.036006,120,5,0,1,0,1);
+
+DELETE FROM `pool_template` WHERE `entry`=@POOL;
+INSERT INTO `pool_template` (`entry`, `max_limit`, `description`) VALUES
+(@POOL, 1, 'Lake Frog (33224)');
+
+DELETE FROM `pool_creature` WHERE `guid` BETWEEN @GUID AND @GUID+5;
+INSERT INTO `pool_creature` (`guid`, `pool_entry`, `chance`, `description`) VALUES
+(@GUID+0, @POOL, 0, 'Lake Frog (33224) - Spawn 1'),
+(@GUID+1, @POOL, 0, 'Lake Frog (33224) - Spawn 2'),
+(@GUID+2, @POOL, 0, 'Lake Frog (33224) - Spawn 3'),
+(@GUID+3, @POOL, 0, 'Lake Frog (33224) - Spawn 4'),
+(@GUID+4, @POOL, 0, 'Lake Frog (33224) - Spawn 5'),
+(@GUID+5, @POOL, 0, 'Lake Frog (33224) - Spawn 6');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_13_03_world_creature.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_13_03_world_creature.sql
new file mode 100644
index 00000000000..06a6bdfdf45
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_13_03_world_creature.sql
@@ -0,0 +1,31 @@
+-- Redo lake frog spawns
+SET @GUID := 116037;
+DELETE FROM `creature` WHERE `id`=33211;
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+(@GUID+0,33211,571,1,1,0,0,3714.71313,-4303.6416,182.597778,0.5710628,120,5,0,1,0,1),
+(@GUID+1,33211,571,1,1,0,0,3727.22876,-4303.32568,182.255157,0.8603498,120,5,0,1,0,1),
+(@GUID+2,33211,571,1,1,0,0,3728.51538,-4303.354,182.132217,0.182852328,120,5,0,1,0,1),
+(@GUID+3,33211,571,1,1,0,0,3743.80762,-4300.40234,181.845047,2.43378878,120,5,0,1,0,1),
+(@GUID+4,33211,571,1,1,0,0,3745.317,-4298.76855,182.1726,3.83392715,120,5,0,1,0,1),
+(@GUID+5,33211,571,1,1,0,0,3756.09375,-4303.11963,181.720047,4.65554,120,5,0,1,0,1),
+(@GUID+6,33211,571,1,1,0,0,3771.87622,-4306.225,184.171371,1.57087767,120,5,0,1,0,1),
+(@GUID+7,33211,571,1,1,0,0,3772.263,-4314.93066,180.231476,2.44895387,120,5,0,1,0,1),
+(@GUID+8,33211,571,1,1,0,0,3772.70654,-4317.774,179.991028,4.85300732,120,5,0,1,0,1),
+(@GUID+9,33211,571,1,1,0,0,3775.58887,-4305.576,185.450317,6.26560926,120,5,0,1,0,1),
+(@GUID+10,33211,571,1,1,0,0,3777.857,-4321.65234,180.575317,6.11946154,120,5,0,1,0,1),
+(@GUID+11,33211,571,1,1,0,0,3778.75439,-4320.91846,180.922287,5.89215,120,5,0,1,0,1),
+(@GUID+12,33211,571,1,1,0,0,3789.02856,-4324.987,182.870514,0.5579872,120,5,0,1,0,1),
+(@GUID+13,33211,571,1,1,0,0,3790.625,-4323.959,183.450317,2.364004,120,5,0,1,0,1),
+(@GUID+14,33211,571,1,1,0,0,3792.34375,-4335.88965,180.584076,1.4193728,120,5,0,1,0,1),
+(@GUID+15,33211,571,1,1,0,0,3792.57,-4335.01953,180.620331,4.567329,120,5,0,1,0,1),
+(@GUID+16,33211,571,1,1,0,0,3800.04688,-4336.84375,182.426788,0.0697878,120,5,0,1,0,1),
+(@GUID+17,33211,571,1,1,0,0,3801.10449,-4336.328,182.681076,2.52183533,120,5,0,1,0,1),
+(@GUID+18,33211,571,1,1,0,0,3805.919,-4356.706,181.306076,4.68659163,120,5,0,1,0,1),
+(@GUID+19,33211,571,1,1,0,0,3806.053,-4357.079,181.381226,2.51099515,120,5,0,1,0,1),
+(@GUID+20,33211,571,1,1,0,0,3807.35254,-4346.9873,181.609863,2.069034,120,5,0,1,0,1),
+(@GUID+21,33211,571,1,1,0,0,3810.154,-4348.294,182.556076,0.350148171,120,5,0,1,0,1),
+(@GUID+22,33211,571,1,1,0,0,3815.82153,-4356.93164,182.881485,2.11018085,120,5,0,1,0,1),
+(@GUID+23,33211,571,1,1,0,0,3816.023,-4362.761,181.806076,2.04126978,120,5,0,1,0,1),
+(@GUID+24,33211,571,1,1,0,0,3816.47925,-4363.564,181.7469,4.345304,120,5,0,1,0,1),
+(@GUID+25,33211,571,1,1,0,0,3816.487,-4356.44141,182.931076,0.0126206363,120,5,0,1,0,1),
+(@GUID+26,33224,571,1,1,0,0,3819.22485,-4360.78125,182.311951,4.927386,120,5,0,1,0,1);
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_13_04_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_13_04_world_sai.sql
new file mode 100644
index 00000000000..d3279d691c2
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_13_04_world_sai.sql
@@ -0,0 +1 @@
+UPDATE `smart_scripts` SET `event_flags`=7 WHERE `entryorguid`=19507 AND `source_type`=0 AND `id`=2;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_13_05_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_13_05_world_sai.sql
new file mode 100644
index 00000000000..8f510380a95
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_13_05_world_sai.sql
@@ -0,0 +1 @@
+UPDATE `smart_scripts` SET `event_flags`=4 WHERE `entryorguid`=19507 AND `source_type`=0 AND `id`=1;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_15_00_world_creature.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_15_00_world_creature.sql
new file mode 100644
index 00000000000..a9db8f93583
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_15_00_world_creature.sql
@@ -0,0 +1,2 @@
+-- Update Void Traveler Scriptname
+UPDATE `creature_template` SET `ScriptName`= 'npc_voidtraveler' WHERE `ScriptName`= 'mob_voidtraveler';
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_15_01_world_gossip.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_15_01_world_gossip.sql
new file mode 100644
index 00000000000..14da6211f93
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_15_01_world_gossip.sql
@@ -0,0 +1,47 @@
+-- Arathandris Silversky
+UPDATE `creature_template` SET `gossip_menu_id`=2208 WHERE `entry` IN (9528);
+-- Add Any Missing Gossip Menu item
+DELETE FROM `gossip_menu` WHERE `entry`=2208 AND `text_id`=2844; -- Before Quest 4101
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (2208,2844);
+DELETE FROM `gossip_menu` WHERE `entry`=2208 AND `text_id`=2845; -- After Quest 4101
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (2208,2845);
+DELETE FROM `gossip_menu` WHERE `entry`=2208 AND `text_id`=2848; -- If Horde
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (2208,2848);
+-- Add Any Missing Gossip Option
+DELETE FROM `gossip_menu_option` WHERE menu_id=2208;
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`)VALUES
+(2208,0,0,"I need a Cenarion beacon.",1,1,0,0,0,0,''),
+(2208,1,0,"What plants are in Felwood that might be corrupted?",1,1,0,0,0,0,'');
+-- Add option conditions for gossip
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (14) AND `SourceGroup` IN (2208);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(14,2208,2844,0,8,3781,0,0,1,0,'','Arathandris Silversky - Show gossip text if player has not been rewarded quest 4101'),
+(14,2208,2845,0,8,3781,0,0,0,0,'','Arathandris Silversky - Show gossip text if player has been rewarded quest 4101'),
+(14,2208,2848,0,6,67,0,0,0,0,'','Arathandris Silversky - Show gossip text if player is horde');
+-- Add option conditions for gossip
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (15) AND `SourceGroup` IN (2208);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(15,2208,0,0,8,3781,0,0,0,0,'','Arathandris Silversky - Show gossip option if player has been rewarded quest 4101'),
+(15,2208,0,1,2,11511,1,1,1,0,'','Arathandris Silversky - Show gossip option if player does not have Cenarion Beacon'),
+(15,2208,1,0,8,3781,0,0,0,0,'','Arathandris Silversky - Show gossip option if player has been rewarded quest 4101');
+
+-- Maybess Riverbreeze
+UPDATE `creature_template` SET `gossip_menu_id`=21400 WHERE `entry` IN (9529);
+-- Add Any Missing Gossip Menu item
+DELETE FROM `gossip_menu` WHERE `entry`=21400 AND `text_id`=2842; -- Before Quest 4102
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (21400,2842);
+DELETE FROM `gossip_menu` WHERE `entry`=21400 AND `text_id`=2843; -- After Quest 4102
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (21400,2843);
+DELETE FROM `gossip_menu` WHERE `entry`=21400 AND `text_id`=2849; -- If Alliance
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (21400,2849);
+-- Add Any Missing Gossip Option
+DELETE FROM `gossip_menu_option` WHERE menu_id=21400;
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`)VALUES
+(21400,0,0,"I need a Cenarion beacon.",1,1,0,0,0,0,''),
+(21400,1,0,"What plants are in Felwood that might be corrupted?",1,1,0,0,0,0,'');
+-- Add option conditions for gossip
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (15) AND `SourceGroup` IN (21400);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(15,21400,0,0,8,3781,0,0,0,0,'','Maybess Riverbreeze - Show gossip option if player has been rewarded quest 4102'),
+(15,21400,0,1,2,11511,1,1,1,0,'','Maybess Riverbreeze - Show gossip option if player does not have Cenarion Beacon'),
+(15,21400,1,0,8,3781,0,0,0,0,'','Maybess Riverbreeze - Show gossip option if player has been rewarded quest 4102');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_15_02_world_spelldifficulty_dbc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_15_02_world_spelldifficulty_dbc.sql
new file mode 100644
index 00000000000..3c68f4e5b33
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_15_02_world_spelldifficulty_dbc.sql
@@ -0,0 +1,5 @@
+DELETE FROM `spelldifficulty_dbc` WHERE `id` IN (33923,33666,33711);
+INSERT INTO `spelldifficulty_dbc` (`id`,`spellid0`,`spellid1`) VALUES
+(33923,33923,38796),
+(33666,33666,38795),
+(33711,33711,38794);
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_15_03_world_creature_template.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_15_03_world_creature_template.sql
new file mode 100644
index 00000000000..d4673e08a15
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_15_03_world_creature_template.sql
@@ -0,0 +1,2 @@
+-- Fix cosmetic-drakkari-bat-ph
+UPDATE `creature_template` SET `flags_extra`=`flags_extra`|2 WHERE `entry`=27490;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_16_00_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_16_00_world_misc.sql
new file mode 100644
index 00000000000..49f8d4cab6e
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_16_00_world_misc.sql
@@ -0,0 +1 @@
+UPDATE `creature_template` SET `faction_A`=103,`faction_H`=103 WHERE `entry`=26127;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_16_01_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_16_01_world_misc.sql
new file mode 100644
index 00000000000..8a31fa8118e
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_16_01_world_misc.sql
@@ -0,0 +1,23 @@
+-- Fix some path errors
+UPDATE `creature` SET `MovementType`=0 WHERE `guid`=66949;
+
+DELETE FROM `creature_addon` WHERE `guid`=114330;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`) VALUES
+(114330,1143300,1);
+
+UPDATE `creature_addon` SET `path_id`=2034560 WHERE `guid`=203456;
+UPDATE `waypoint_data` SET `id`=2034560 WHERE `id`=203591;
+
+-- Windrock hunter removed in rev 2.2.0
+DELETE FROM `creature` WHERE `id`=18996;
+
+-- Delete existing unblizzlike spawns
+DELETE FROM `creature` WHERE `id` IN (29064,29063,29062,29098,29096,29097);
+-- Delete addon data from previous mentioned wrong spanws
+DELETE FROM `creature_addon` WHERE `guid` BETWEEN 127316 AND 127337;
+DELETE FROM `creature_addon` WHERE `guid` BETWEEN 127340 AND 127375;
+DELETE FROM `creature_addon` WHERE `guid` BETWEEN 127293 AND 127315;
+DELETE FROM `creature_addon` WHERE `guid` BETWEEN 127272 AND 127292;
+DELETE FROM `creature_addon` WHERE `guid`=12246;
+
+DELETE FROM `gameobject` WHERE `guid` IN (17454,17455);
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_16_02_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_16_02_world_misc.sql
new file mode 100644
index 00000000000..b02062bc163
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_16_02_world_misc.sql
@@ -0,0 +1,5 @@
+DELETE FROM `creature` WHERE `id` IN (29119,28925,28924,29051);
+
+DELETE FROM `linked_respawn` WHERE `guid` IN (127272,127273,127275,127293,127296,127318,127340,127341,127350,127351,127352,127355,127357,127359,127360,127364,127365,127375);
+
+DELETE FROM `spell_ranks` WHERE `first_spell_id` IN (24440,24475);
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_16_03_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_16_03_world_misc.sql
new file mode 100644
index 00000000000..86418513a08
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_16_03_world_misc.sql
@@ -0,0 +1,13 @@
+UPDATE `quest_template` SET `PrevQuestId`=12596 WHERE `id`=12541;
+UPDATE `quest_template` SET `PrevQuestId`=12565, `SpecialFlags`=1 WHERE `id`=12567;
+
+-- Gooey Ghoul Drool SAI
+SET @ENTRY := 29856;
+UPDATE `creature_template` SET `AIName`= 'SmartAI',`ScriptName`= '' WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@ENTRY,0,0,0,8,0,100,0,55364,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Gooey Ghoul Drool - On Spell Hit Create Gooey Ghoul Drool - despawn');
+-- Add missing spell click
+DELETE FROM `npc_spellclick_spells` WHERE `npc_entry`=29856 AND `spell_id`=55364;
+INSERT INTO `npc_spellclick_spells` (`npc_entry`,`spell_id`,`cast_flags`) VALUES
+(29856,55364,1);
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_16_04_world_creature_text.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_16_04_world_creature_text.sql
new file mode 100644
index 00000000000..3f08495f884
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_16_04_world_creature_text.sql
@@ -0,0 +1,46 @@
+-- Add texts for Alchemist Finklestein
+DELETE FROM `creature_text` WHERE `entry`=28205;
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+-- Events 1,2,3
+(28205,0,0,'Quickly, get me some...',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,0,1,'I think it needs...',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,0,2,'Find me some...',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,0,3,'It simply must have some...',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,0,4,'We need some...',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,0,5,'It simply must have some...',42,0,100,0,0,0,'Alchemist Finklestein'),
+-- Event 4
+(28205,1,0,'I think it''s time for...',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,1,1,'Next, we''ll need...',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,1,2,'Tastes like it needs more....',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,1,3,'Alright, now find me some...',42,0,100,0,0,0,'Alchemist Finklestein'),
+-- Event 5
+(28205,2,0,'Coming along nicely, but still needs...',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,2,1,'Before it thickens, we must add...',42,0,100,0,0,0,'Alchemist Finklestein'),
+-- Event 6
+(28205,3,0,'Before it boils over, I need...',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,3,1,'It''s thickening! Quickly, get some...',42,0,100,0,0,0,'Alchemist Finklestein'),
+-- Fail
+(28205,4,0,'You''re too late. I must start again from the beginning....',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,4,1,'No! The serum is ruined!',42,0,100,0,0,0,'Alchemist Finklestein'),
+-- Item request
+(28205,5,0,'Knotroot!',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,6,0,'Pickled Eagle Egg!',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,7,0,'Speckled Guano!',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,8,0,'Withered Batwing!',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,9,0,'Seasoned Slider Cider!',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,10,0,'Pulverized Gargoyle Teeth!',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,11,0,'Muddy Mire Maggot!',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,12,0,'Spiky Spider Egg!',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,13,0,'Hairy Herring Head!',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,14,0,'Putrid Pirate Perspiration!',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,15,0,'Icecrown Bottled Water!',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,16,0,'Wasp''s Wings!',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,17,0,'Prismatic Mojo!',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,18,0,'Raptor Claw!',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,19,0,'Amberseed!',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,20,0,'Shrunken Dragon''s Claw!',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,21,0,'Chilled Serpent Mucus!',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,22,0,'Crystallized Hogsnot!',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,23,0,'Crushed Basilisk Crystals!',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,24,0,'Trollbane!',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,25,0,'Frozen Spider Ichor!',42,0,100,0,0,0,'Alchemist Finklestein');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_17_00_world_warden_checks.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_17_00_world_warden_checks.sql
new file mode 100644
index 00000000000..030fee68d37
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_17_00_world_warden_checks.sql
@@ -0,0 +1,2 @@
+-- Fix address check for multi-jump hack
+UPDATE `warden_checks` SET `result`='75440FB75E', `length`=5 WHERE `id`=785;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_17_01_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_17_01_world_misc.sql
new file mode 100644
index 00000000000..d5c6ea6d29d
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_17_01_world_misc.sql
@@ -0,0 +1,255 @@
+SET @GUID := 21707;
+
+SET @QUEST_INFILTRATING_VOLTARUS := 12661;
+SET @QUEST_REUNITED := 12663;
+SET @QUEST_DARK_HORIZON := 12664;
+SET @NPC_DRAKURU := 28503;
+SET @NPC_STEFAN := 28518;
+SET @NPC_GOREBAG := 28666;
+SET @NPC_FLYING_FIEND := 28669;
+SET @NPC_OVERLORD_DRAKURU := 28717;
+SET @NPC_PERSISTENCE := 29863;
+
+UPDATE `creature_template` SET `speed_walk`=2.4, `speed_run`=0.992063, `AIName`='SmartAI' WHERE `entry`=@NPC_GOREBAG;
+UPDATE `creature_template` SET `speed_walk`=4.4, `speed_run`=1.375, `InhabitType`=4, `AIName`='SmartAI', `vehicleId`=127 WHERE `entry`=@NPC_FLYING_FIEND;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@NPC_OVERLORD_DRAKURU;
+UPDATE `creature_template` SET `unit_flags`=0, `InhabitType`=4 WHERE `entry`=28759;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@NPC_DRAKURU;
+UPDATE `creature_template` SET `InhabitType`=4 WHERE `entry`=@NPC_PERSISTENCE;
+
+DELETE FROM `creature_template_addon` WHERE `entry`=@NPC_PERSISTENCE;
+INSERT INTO `creature_template_addon` (`entry`,`bytes1`,`bytes2`) VALUES
+(@NPC_PERSISTENCE,50331648,1);
+
+UPDATE `creature` SET `spawndist`=0, `MovementType`=0, `unit_flags`=768 WHERE `guid` IN (103732,103734,103744,103751,103753,103755,103765,103766);
+
+DELETE FROM `creature` WHERE `guid` IN (@GUID,111712);
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`) VALUES
+(@GUID,28717,571,1,1,0,0,5954.766,-3273.196,406.9324,5.445427,300,0,0,0,0,0,0,0,0);
+
+DELETE FROM `areatrigger_scripts` WHERE `entry` IN (5056,5057,5058,5059,5060,5095,5096,5097,5098);
+INSERT INTO `areatrigger_scripts` (`entry`,`ScriptName`) VALUES
+(5056,'SmartTrigger'),
+(5057,'SmartTrigger'),
+(5058,'SmartTrigger'),
+(5059,'SmartTrigger'),
+(5060,'SmartTrigger'),
+(5095,'SmartTrigger'),
+(5096,'SmartTrigger'),
+(5097,'SmartTrigger'),
+(5098,'SmartTrigger');
+
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (-@GUID,-100088,-100089,-100090,-100091,-100092,-100093,-100094,-100095,@NPC_DRAKURU,@NPC_GOREBAG,@NPC_FLYING_FIEND,@NPC_PERSISTENCE) AND `source_type`=0;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@NPC_STEFAN AND `source_type`=0 AND `id`=4;
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (5056,5057,5058,5059,5060,5095,5096,5097,5098) AND `source_type`=2;
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@NPC_FLYING_FIEND*100,@NPC_OVERLORD_DRAKURU*100,@NPC_PERSISTENCE*100) AND `source_type`=9;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(-100095,0,0,0,11,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Overlord Drakuru - On spawn - Set event phase 1'),
+(-100095,0,1,2,38,1,100,0,0,1,0,0,1,0,0,0,0,0,0,12,1,0,0,0,0,0,0,'Overlord Drakuru - On data 0 1 set - Say line'),
+(-100095,0,2,0,61,1,100,0,0,0,0,0,80,@NPC_OVERLORD_DRAKURU*100,2,0,0,0,0,1,0,0,0,0,0,0,0,'Overlord Drakuru - On data 0 1 set - Say line'),
+(-100092,0,0,0,11,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Overlord Drakuru - On spawn - Set event phase 1'),
+(-100092,0,1,2,38,1,100,0,0,1,0,0,1,1,0,0,0,0,0,12,1,0,0,0,0,0,0,'Overlord Drakuru - On data 0 1 set - Say line'),
+(-100092,0,2,0,61,1,100,0,0,0,0,0,80,@NPC_OVERLORD_DRAKURU*100,2,0,0,0,0,1,0,0,0,0,0,0,0,'Overlord Drakuru - On data 0 1 set - Say line'),
+(-100088,0,0,0,11,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Overlord Drakuru - On spawn - Set event phase 1'),
+(-100088,0,1,2,38,1,100,0,0,1,0,0,1,2,0,0,0,0,0,12,1,0,0,0,0,0,0,'Overlord Drakuru - On data 0 1 set - Say line'),
+(-100088,0,2,0,61,1,100,0,0,0,0,0,80,@NPC_OVERLORD_DRAKURU*100,2,0,0,0,0,1,0,0,0,0,0,0,0,'Overlord Drakuru - On data 0 1 set - Say line'),
+(-@GUID,0,0,0,11,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Overlord Drakuru - On spawn - Set event phase 1'),
+(-@GUID,0,1,2,38,1,100,0,0,1,0,0,1,3,0,0,0,0,0,12,1,0,0,0,0,0,0,'Overlord Drakuru - On data 0 1 set - Say line'),
+(-@GUID,0,2,0,61,1,100,0,0,0,0,0,80,@NPC_OVERLORD_DRAKURU*100,2,0,0,0,0,1,0,0,0,0,0,0,0,'Overlord Drakuru - On data 0 1 set - Say line'),
+(-100090,0,0,0,11,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Overlord Drakuru - On spawn - Set event phase 1'),
+(-100090,0,1,2,38,1,100,0,0,1,0,0,1,4,0,0,0,0,0,12,1,0,0,0,0,0,0,'Overlord Drakuru - On data 0 1 set - Say line'),
+(-100090,0,2,0,61,1,100,0,0,0,0,0,80,@NPC_OVERLORD_DRAKURU*100,2,0,0,0,0,1,0,0,0,0,0,0,0,'Overlord Drakuru - On data 0 1 set - Say line'),
+(-100094,0,0,0,11,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Overlord Drakuru - On spawn - Set event phase 1'),
+(-100094,0,1,2,38,1,100,0,0,1,0,0,1,5,0,0,0,0,0,12,1,0,0,0,0,0,0,'Overlord Drakuru - On data 0 1 set - Say line'),
+(-100094,0,2,0,61,1,100,0,0,0,0,0,80,@NPC_OVERLORD_DRAKURU*100,2,0,0,0,0,1,0,0,0,0,0,0,0,'Overlord Drakuru - On data 0 1 set - Say line'),
+(-100089,0,0,0,11,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Overlord Drakuru - On spawn - Set event phase 1'),
+(-100089,0,1,2,38,1,100,0,0,1,0,0,1,6,0,0,0,0,0,12,1,0,0,0,0,0,0,'Overlord Drakuru - On data 0 1 set - Say line'),
+(-100089,0,2,0,61,1,100,0,0,0,0,0,80,@NPC_OVERLORD_DRAKURU*100,2,0,0,0,0,1,0,0,0,0,0,0,0,'Overlord Drakuru - On data 0 1 set - Say line'),
+(-100091,0,0,0,11,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Overlord Drakuru - On spawn - Set event phase 1'),
+(-100091,0,1,2,38,1,100,0,0,1,0,0,1,7,0,0,0,0,0,12,1,0,0,0,0,0,0,'Overlord Drakuru - On data 0 1 set - Say line'),
+(-100091,0,2,0,61,1,100,0,0,0,0,0,80,@NPC_OVERLORD_DRAKURU*100,2,0,0,0,0,1,0,0,0,0,0,0,0,'Overlord Drakuru - On data 0 1 set - Say line'),
+(-100093,0,0,0,11,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Overlord Drakuru - On spawn - Set event phase 1'),
+(-100093,0,1,2,38,1,100,0,0,1,0,0,1,8,0,0,0,0,0,12,1,0,0,0,0,0,0,'Overlord Drakuru - On data 0 1 set - Say line'),
+(-100093,0,2,0,61,1,100,0,0,0,0,0,80,@NPC_OVERLORD_DRAKURU*100,2,0,0,0,0,1,0,0,0,0,0,0,0,'Overlord Drakuru - On data 0 1 set - Say line'),
+
+(@NPC_DRAKURU,0,0,0,62,0,100,0,9731,1,0,0,11,52224,0,0,0,0,0,7,0,0,0,0,0,0,0,'Overlord Drakuru - On gossip select - Spellcast Kill Credit'),
+(@NPC_DRAKURU,0,1,0,62,0,100,0,9731,2,0,0,11,52253,0,0,0,0,0,7,0,0,0,0,0,0,0,'Overlord Drakuru - On gossip select - Spellcast Kill Credit'),
+(@NPC_DRAKURU,0,2,0,62,0,100,0,9731,3,0,0,11,52355,0,0,0,0,0,7,0,0,0,0,0,0,0,'Overlord Drakuru - On gossip select - Spellcast Quest Complete Credit Credit'),
+(@NPC_DRAKURU,0,3,0,62,0,100,0,9731,4,0,0,11,52680,0,0,0,0,0,7,0,0,0,0,0,0,0,'Overlord Drakuru - On gossip select - Spellcast Kill Credit'),
+(@NPC_DRAKURU,0,4,0,62,0,100,0,9731,5,0,0,11,52675,0,0,0,0,0,7,0,0,0,0,0,0,0,'Overlord Drakuru - On gossip select - Spellcast Kill Credit'),
+
+(@NPC_STEFAN,0,4,0,62,0,100,0,9709,1,0,0,11,53810,0,0,0,0,0,7,0,0,0,0,0,0,0,'Stefan Vadu - On gossip select - Spellcast Push Ensorceled Choker'),
+
+(@NPC_GOREBAG,0,0,1,62,0,100,0,9732,0,0,0,11,52194,0,0,0,0,0,7,0,0,0,0,0,0,0,'Gorebag - On gossip select - Spellcast Force Cast Summon Gargoyle'),
+(@NPC_GOREBAG,0,1,0,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Gorebag - On gossip select - Close gossip'),
+
+(@NPC_FLYING_FIEND,0,0,1,54,0,100,0,0,0,0,0,11,52191,0,0,0,0,0,1,0,0,0,0,0,0,0,'Flying Fiend - Just summoned - Spellcast Scourge Disguise'),
+(@NPC_FLYING_FIEND,0,1,0,61,0,100,0,0,0,0,0,80,@NPC_FLYING_FIEND*100,2,0,0,0,0,1,0,0,0,0,0,0,0,'Flying Fiend - Just summoned - Run script'),
+(@NPC_FLYING_FIEND,0,2,0,40,0,100,0,62,@NPC_FLYING_FIEND,0,0,33,28663,0,0,0,0,0,23,0,0,0,0,0,0,0,'Flying Fiend - On WP 62 reached - Quest Credit'),
+(@NPC_FLYING_FIEND,0,3,0,40,0,100,0,63,@NPC_FLYING_FIEND,0,0,11,50630,0,0,0,0,0,1,0,0,0,0,0,0,0,'Flying Fiend - On WP 63 reached - Spellcast Eject All Passengers'),
+
+(@NPC_PERSISTENCE,0,0,0,54,0,100,0,0,0,0,0,80,@NPC_PERSISTENCE*100,2,0,0,0,0,1,0,0,0,0,0,0,0,'Persistence - Just summoned - Run script'),
+
+(5056,2,0,1,46,0,100,0,0,0,0,0,64,1,0,0,0,0,0,7,0,0,0,0,0,0,0,'On trigger - Store targetlist'),
+(5056,2,1,2,61,0,100,0,0,0,0,0,100,1,0,0,0,0,0,10,100095,@NPC_OVERLORD_DRAKURU,0,0,0,0,0,'On trigger - Send targetlist'),
+(5056,2,2,0,61,0,100,0,0,0,0,0,45,0,1,0,0,0,0,10,100095,@NPC_OVERLORD_DRAKURU,0,0,0,0,0,'On trigger - Set data 0 1 Overlord Drakuru'),
+(5057,2,0,1,46,0,100,0,0,0,0,0,64,1,0,0,0,0,0,7,0,0,0,0,0,0,0,'On trigger - Store targetlist'),
+(5057,2,1,2,61,0,100,0,0,0,0,0,100,1,0,0,0,0,0,10,100092,@NPC_OVERLORD_DRAKURU,0,0,0,0,0,'On trigger - Send targetlist'),
+(5057,2,2,0,61,0,100,0,0,0,0,0,45,0,1,0,0,0,0,10,100092,@NPC_OVERLORD_DRAKURU,0,0,0,0,0,'On trigger - Set data 0 1 Overlord Drakuru'),
+(5058,2,0,1,46,0,100,0,0,0,0,0,64,1,0,0,0,0,0,7,0,0,0,0,0,0,0,'On trigger - Store targetlist'),
+(5058,2,1,2,61,0,100,0,0,0,0,0,100,1,0,0,0,0,0,10,100088,@NPC_OVERLORD_DRAKURU,0,0,0,0,0,'On trigger - Send targetlist'),
+(5058,2,2,0,61,0,100,0,0,0,0,0,45,0,1,0,0,0,0,10,100088,@NPC_OVERLORD_DRAKURU,0,0,0,0,0,'On trigger - Set data 0 1 Overlord Drakuru'),
+(5059,2,0,1,46,0,100,0,0,0,0,0,64,1,0,0,0,0,0,7,0,0,0,0,0,0,0,'On trigger - Store targetlist'),
+(5059,2,1,2,61,0,100,0,0,0,0,0,100,1,0,0,0,0,0,10,@GUID,@NPC_OVERLORD_DRAKURU,0,0,0,0,0,'On trigger - Send targetlist'),
+(5059,2,2,0,61,0,100,0,0,0,0,0,45,0,1,0,0,0,0,10,@GUID,@NPC_OVERLORD_DRAKURU,0,0,0,0,0,'On trigger - Set data 0 1 Overlord Drakuru'),
+(5060,2,0,1,46,0,100,0,0,0,0,0,64,1,0,0,0,0,0,7,0,0,0,0,0,0,0,'On trigger - Store targetlist'),
+(5060,2,1,2,61,0,100,0,0,0,0,0,100,1,0,0,0,0,0,10,100090,@NPC_OVERLORD_DRAKURU,0,0,0,0,0,'On trigger - Send targetlist'),
+(5060,2,2,0,61,0,100,0,0,0,0,0,45,0,1,0,0,0,0,10,100090,@NPC_OVERLORD_DRAKURU,0,0,0,0,0,'On trigger - Set data 0 1 Overlord Drakuru'),
+(5095,2,0,1,46,0,100,0,0,0,0,0,64,1,0,0,0,0,0,7,0,0,0,0,0,0,0,'On trigger - Store targetlist'),
+(5095,2,1,2,61,0,100,0,0,0,0,0,100,1,0,0,0,0,0,10,100094,@NPC_OVERLORD_DRAKURU,0,0,0,0,0,'On trigger - Send targetlist'),
+(5095,2,2,0,61,0,100,0,0,0,0,0,45,0,1,0,0,0,0,10,100094,@NPC_OVERLORD_DRAKURU,0,0,0,0,0,'On trigger - Set data 0 1 Overlord Drakuru'),
+(5096,2,0,1,46,0,100,0,0,0,0,0,64,1,0,0,0,0,0,7,0,0,0,0,0,0,0,'On trigger - Store targetlist'),
+(5096,2,1,2,61,0,100,0,0,0,0,0,100,1,0,0,0,0,0,10,100089,@NPC_OVERLORD_DRAKURU,0,0,0,0,0,'On trigger - Send targetlist'),
+(5096,2,2,0,61,0,100,0,0,0,0,0,45,0,1,0,0,0,0,10,100089,@NPC_OVERLORD_DRAKURU,0,0,0,0,0,'On trigger - Set data 0 1 Overlord Drakuru'),
+(5097,2,0,1,46,0,100,0,0,0,0,0,64,1,0,0,0,0,0,7,0,0,0,0,0,0,0,'On trigger - Store targetlist'),
+(5097,2,1,2,61,0,100,0,0,0,0,0,100,1,0,0,0,0,0,10,100091,@NPC_OVERLORD_DRAKURU,0,0,0,0,0,'On trigger - Send targetlist'),
+(5097,2,2,0,61,0,100,0,0,0,0,0,45,0,1,0,0,0,0,10,100091,@NPC_OVERLORD_DRAKURU,0,0,0,0,0,'On trigger - Set data 0 1 Overlord Drakuru'),
+(5098,2,0,1,46,0,100,0,0,0,0,0,64,1,0,0,0,0,0,7,0,0,0,0,0,0,0,'On trigger - Store targetlist'),
+(5098,2,1,2,61,0,100,0,0,0,0,0,100,1,0,0,0,0,0,10,100093,@NPC_OVERLORD_DRAKURU,0,0,0,0,0,'On trigger - Send targetlist'),
+(5098,2,2,0,61,0,100,0,0,0,0,0,45,0,1,0,0,0,0,10,100093,@NPC_OVERLORD_DRAKURU,0,0,0,0,0,'On trigger - Set data 0 1 Overlord Drakuru'),
+
+(@NPC_FLYING_FIEND*100,9,0,0,0,0,100,0,1700,1700,0,0,53,1,@NPC_FLYING_FIEND,0,0,0,0,1,0,0,0,0,0,0,0,'Flying Fiend script - Start WP movement'),
+
+(@NPC_OVERLORD_DRAKURU*100,9,0,0,0,0,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Overlord Drakuru script - Set event phase 0'),
+(@NPC_OVERLORD_DRAKURU*100,9,1,0,0,0,100,0,5000,5000,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Overlord Drakuru script - Set event phase 1'),
+
+(@NPC_PERSISTENCE*100,9,0,0,0,0,100,0,1000,1000,0,0,69,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Persistence script - Move to position');
+
+DELETE FROM `creature_text` WHERE `entry`=@NPC_OVERLORD_DRAKURU;
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@NPC_OVERLORD_DRAKURU,0,0,'A portion of this land already be mine, mon, but it only be da beginning!',15,0,100,0,0,0,''),
+(@NPC_OVERLORD_DRAKURU,1,0,'Here, da self-righteous crusaders be standin'' in da way of our goal. Dey will fall!',15,0,100,0,0,0,''),
+(@NPC_OVERLORD_DRAKURU,2,0,'Dis all soon gonna belong to da Lich King.',15,0,100,0,0,0,''),
+(@NPC_OVERLORD_DRAKURU,3,0,'Da Drakkari be destroyin'' their lands! Dey gunna be losin'' dem... soon, mon.',15,0,100,0,0,0,''),
+(@NPC_OVERLORD_DRAKURU,4,0,'Ahh, dere be our destiny... Gundrak!',15,0,100,0,0,0,''),
+(@NPC_OVERLORD_DRAKURU,5,0,'Study dis place well, mon. Ya gonna be helpin'' me conquer it!',15,0,100,0,0,0,''),
+(@NPC_OVERLORD_DRAKURU,6,0,'Ahh yeah, mon! Dere be great glory ta be had here!',15,0,100,0,0,0,''),
+(@NPC_OVERLORD_DRAKURU,7,0,'Da Lich King be sharin'' his power wit dem who serve him well, mon.',15,0,100,0,0,0,''),
+(@NPC_OVERLORD_DRAKURU,8,0,'Come to me now, $n. I must be speakin'' wit ya.',15,0,100,0,0,0,'');
+
+DELETE FROM `spell_scripts` WHERE `id`=50630;
+INSERT INTO `spell_scripts` (`id`,`effIndex`,`delay`,`command`,`datalong`,`datalong2`,`dataint`,`x`,`y`,`z`,`o`) VALUES
+(50630,0,0,14,46598,0,0,0,0,0,0);
+
+DELETE FROM `spell_script_names` WHERE `spell_id`=55368;
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+(55368,'spell_q12661_q12669_q12676_q12677_q12713_summon_stefan');
+
+DELETE FROM `waypoints` WHERE `entry`=@NPC_FLYING_FIEND;
+INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`point_comment`) VALUES
+(@NPC_FLYING_FIEND,1,6063.744,-2094.859,431.5205,''),
+(@NPC_FLYING_FIEND,2,5967.444,-2165.715,422.854,''),
+(@NPC_FLYING_FIEND,3,5865.666,-2174.974,393.3817,''),
+(@NPC_FLYING_FIEND,4,5713.336,-2151.653,373.4649,''),
+(@NPC_FLYING_FIEND,5,5558.722,-2128.131,366.1319,''),
+(@NPC_FLYING_FIEND,6,5451.114,-2151.127,354.4373,''),
+(@NPC_FLYING_FIEND,7,5377.812,-2219.117,359.1318,''),
+(@NPC_FLYING_FIEND,8,5366.704,-2360.862,377.715,''),
+(@NPC_FLYING_FIEND,9,5435.392,-2533.554,373.9926,''),
+(@NPC_FLYING_FIEND,10,5620.228,-2725.159,344.5209,''),
+(@NPC_FLYING_FIEND,11,5710.932,-2849.435,341.9651,''),
+(@NPC_FLYING_FIEND,12,5793.25,-3015.15,364.3539,''),
+(@NPC_FLYING_FIEND,13,5879.358,-3182.915,393.3817,''),
+(@NPC_FLYING_FIEND,14,5964.949,-3300.001,393.3817,''),
+(@NPC_FLYING_FIEND,15,6115.404,-3420.539,450.5761,''),
+(@NPC_FLYING_FIEND,16,6211.264,-3582.169,481.242,''),
+(@NPC_FLYING_FIEND,17,6279.312,-3777.027,504.3809,''),
+(@NPC_FLYING_FIEND,18,6463.991,-3861.046,546.2137,''),
+(@NPC_FLYING_FIEND,19,6575.966,-4030.918,546.2137,''),
+(@NPC_FLYING_FIEND,20,6743.058,-4188.865,546.2137,''),
+(@NPC_FLYING_FIEND,21,6896.725,-4247.418,577.3526,''),
+(@NPC_FLYING_FIEND,22,6999.448,-4298.92,582.9353,''),
+(@NPC_FLYING_FIEND,23,7100.701,-4416.983,611.0741,''),
+(@NPC_FLYING_FIEND,24,7116.469,-4555.864,660.6572,''),
+(@NPC_FLYING_FIEND,25,7057.505,-4669.796,675.6574,''),
+(@NPC_FLYING_FIEND,26,6947.491,-4771.33,660.6572,''),
+(@NPC_FLYING_FIEND,27,6758.396,-4783.884,626.5463,''),
+(@NPC_FLYING_FIEND,28,6650.223,-4701.149,597.2407,''),
+(@NPC_FLYING_FIEND,29,6627.306,-4597.556,586.0188,''),
+(@NPC_FLYING_FIEND,30,6613.611,-4439.712,592.6573,''),
+(@NPC_FLYING_FIEND,31,6526.06,-4289.037,568.1019,''),
+(@NPC_FLYING_FIEND,32,6401.896,-4215.937,538.5742,''),
+(@NPC_FLYING_FIEND,33,6286.808,-4191.781,518.3241,''),
+(@NPC_FLYING_FIEND,34,6204.36,-4223.743,465.0742,''),
+(@NPC_FLYING_FIEND,35,6134.582,-4239.067,386.1299,''),
+(@NPC_FLYING_FIEND,36,5995.454,-4246.94,428.5185,''),
+(@NPC_FLYING_FIEND,37,5909.651,-4251.924,428.5185,''),
+(@NPC_FLYING_FIEND,38,5792.211,-4212.291,428.5185,''),
+(@NPC_FLYING_FIEND,39,5656.491,-4115.374,428.5185,''),
+(@NPC_FLYING_FIEND,40,5549.697,-3983.661,428.5185,''),
+(@NPC_FLYING_FIEND,41,5495.661,-3853.954,428.5185,''),
+(@NPC_FLYING_FIEND,42,5463.381,-3751.72,428.5185,''),
+(@NPC_FLYING_FIEND,43,5430.445,-3669.375,428.5185,''),
+(@NPC_FLYING_FIEND,44,5348.065,-3559.13,406.3796,''),
+(@NPC_FLYING_FIEND,45,5240.038,-3418.709,381.4073,''),
+(@NPC_FLYING_FIEND,46,5160.26,-3335.475,381.4073,''),
+(@NPC_FLYING_FIEND,47,5044.02,-3214.565,381.4073,''),
+(@NPC_FLYING_FIEND,48,4994.617,-3163.257,381.4073,''),
+(@NPC_FLYING_FIEND,49,4929.424,-3062.172,381.4073,''),
+(@NPC_FLYING_FIEND,50,4874.155,-2945.799,381.4073,''),
+(@NPC_FLYING_FIEND,51,4892.917,-2768.813,381.4073,''),
+(@NPC_FLYING_FIEND,52,5019.182,-2627.008,381.4073,''),
+(@NPC_FLYING_FIEND,53,5067.444,-2519.115,381.4073,''),
+(@NPC_FLYING_FIEND,54,5081.711,-2367.998,381.4073,''),
+(@NPC_FLYING_FIEND,55,5152.338,-2120.359,419.4349,''),
+(@NPC_FLYING_FIEND,56,5368.514,-1851.122,422.8514,''),
+(@NPC_FLYING_FIEND,57,5660.992,-1784.473,360.5462,''),
+(@NPC_FLYING_FIEND,58,5851.7,-1800.855,350.1305,''),
+(@NPC_FLYING_FIEND,59,6030.714,-1863.997,348.1571,''),
+(@NPC_FLYING_FIEND,60,6103.75,-1910.458,354.3242,''),
+(@NPC_FLYING_FIEND,61,6163.79,-1944.525,374.379,''),
+(@NPC_FLYING_FIEND,62,6183.492,-1976.164,410.129,''),
+(@NPC_FLYING_FIEND,63,6184.051,-1991.26,417.3231,'');
+
+DELETE FROM `vehicle_template_accessory` WHERE `entry` IN (@NPC_FLYING_FIEND,@NPC_PERSISTENCE);
+INSERT INTO `vehicle_template_accessory` (`entry`,`accessory_entry`,`seat_id`,`minion`,`description`,`summontype`,`summontimer`) VALUES
+(@NPC_FLYING_FIEND,@NPC_OVERLORD_DRAKURU,1,1,'Flying Fiend',8,0),
+(@NPC_PERSISTENCE,@NPC_STEFAN,0,1,'Persistence',8,0);
+
+DELETE FROM `npc_spellclick_spells` WHERE `npc_entry` IN (@NPC_FLYING_FIEND,@NPC_PERSISTENCE);
+INSERT INTO `npc_spellclick_spells` (`npc_entry`,`spell_id`,`cast_flags`,`user_type`) VALUES
+(@NPC_FLYING_FIEND,46598,0,1),
+(@NPC_PERSISTENCE,46598,0,1);
+
+UPDATE `quest_template` SET `PrevQuestId`=12649 WHERE `Id`=@QUEST_REUNITED;
+UPDATE `quest_template` SET `PrevQuestId`=12648 WHERE `Id`=@QUEST_DARK_HORIZON;
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=14 AND `SourceGroup`=9731 AND `SourceEntry`=13348;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=19 AND `SourceEntry` IN (@QUEST_REUNITED,@QUEST_DARK_HORIZON);
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=20 AND `SourceEntry` IN (@QUEST_REUNITED,@QUEST_DARK_HORIZON);
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry` IN (5056,5057,5058,5059,5060,5095,5096,5097,5098);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(14,9731,13348,0,0,8,12238,0,0,1,0,'','Overlord Drakuru - Show different gossip if player has not rewarded quest Cleansing Drak''Tharon'),
+(14,9731,13348,0,0,8,12661,0,0,1,0,'','Overlord Drakuru - Show different gossip if player has not rewarded quest Infiltrating Voltarus'),
+(19,0,@QUEST_REUNITED,0,0,9,@QUEST_INFILTRATING_VOLTARUS,0,0,0,0,'','Quest acceptable only if player has taken quest Infiltrating Voltarus'),
+(19,0,@QUEST_DARK_HORIZON,0,0,9,@QUEST_INFILTRATING_VOLTARUS,0,0,0,0,'','Quest acceptable only if player has taken quest Infiltrating Voltarus'),
+(20,0,@QUEST_REUNITED,0,0,9,@QUEST_INFILTRATING_VOLTARUS,0,0,0,0,'','Show quest mark only if player has taken quest Infiltrating Voltarus'),
+(20,0,@QUEST_DARK_HORIZON,0,0,9,@QUEST_INFILTRATING_VOLTARUS,0,0,0,0,'','Show quest mark only if player has taken quest Infiltrating Voltarus'),
+(22,1,5056,2,0,9,@QUEST_REUNITED,0,0,0,0,'','SAI triggers only if player has taken quest Reunited'),
+(22,1,5056,2,1,9,@QUEST_DARK_HORIZON,0,0,0,0,'','SAI triggers only if player has taken quest Dark Horizon'),
+(22,1,5057,2,0,9,@QUEST_REUNITED,0,0,0,0,'','SAI triggers only if player has taken quest Reunited'),
+(22,1,5057,2,1,9,@QUEST_DARK_HORIZON,0,0,0,0,'','SAI triggers only if player has taken quest Dark Horizon'),
+(22,1,5058,2,0,9,@QUEST_REUNITED,0,0,0,0,'','SAI triggers only if player has taken quest Reunited'),
+(22,1,5058,2,1,9,@QUEST_DARK_HORIZON,0,0,0,0,'','SAI triggers only if player has taken quest Dark Horizon'),
+(22,1,5059,2,0,9,@QUEST_REUNITED,0,0,0,0,'','SAI triggers only if player has taken quest Reunited'),
+(22,1,5059,2,1,9,@QUEST_DARK_HORIZON,0,0,0,0,'','SAI triggers only if player has taken quest Dark Horizon'),
+(22,1,5060,2,0,9,@QUEST_REUNITED,0,0,0,0,'','SAI triggers only if player has taken quest Reunited'),
+(22,1,5060,2,1,9,@QUEST_DARK_HORIZON,0,0,0,0,'','SAI triggers only if player has taken quest Dark Horizon'),
+(22,1,5095,2,0,9,@QUEST_REUNITED,0,0,0,0,'','SAI triggers only if player has taken quest Reunited'),
+(22,1,5095,2,1,9,@QUEST_DARK_HORIZON,0,0,0,0,'','SAI triggers only if player has taken quest Dark Horizon'),
+(22,1,5096,2,0,9,@QUEST_REUNITED,0,0,0,0,'','SAI triggers only if player has taken quest Reunited'),
+(22,1,5096,2,1,9,@QUEST_DARK_HORIZON,0,0,0,0,'','SAI triggers only if player has taken quest Dark Horizon'),
+(22,1,5097,2,0,9,@QUEST_REUNITED,0,0,0,0,'','SAI triggers only if player has taken quest Reunited'),
+(22,1,5097,2,1,9,@QUEST_DARK_HORIZON,0,0,0,0,'','SAI triggers only if player has taken quest Dark Horizon'),
+(22,1,5098,2,0,9,@QUEST_REUNITED,0,0,0,0,'','SAI triggers only if player has taken quest Reunited'),
+(22,1,5098,2,1,9,@QUEST_DARK_HORIZON,0,0,0,0,'','SAI triggers only if player has taken quest Dark Horizon');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_17_02_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_17_02_world_misc.sql
new file mode 100644
index 00000000000..b938ea45e95
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_17_02_world_misc.sql
@@ -0,0 +1,86 @@
+-- Add option conditions for Alchemist Finklestein
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (15) AND `SourceGroup` IN (9668) AND `SourceEntry` IN (0) AND `ConditionValue1` IN (51216);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(15,9668,0,1,1,51216,0,0,1,0,'','Alchemist Finklestein - Show gossip option only if player does not have aura 51216');
+
+UPDATE `creature_template` SET `AIName`= '',`ScriptName`= 'npc_alchemist_finklestein' WHERE `entry`=28205;
+UPDATE `gameobject_template` SET `ScriptName`= 'go_finklesteins_cauldron' WHERE `entry`=190498;
+
+DELETE FROM `spell_script_names` WHERE `spell_id` IN (51134,51105,51107,51015,51154,51157,51046,51018,51055,51057,
+51059,51062,51064,51067,51069,51072,51077,51079,51081,51083,51085,51087,51091,51093,51095,51097,51100,51102);
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+(51134,'spell_random_ingredient_easy'),
+(51105,'spell_random_ingredient_medium'),
+(51107,'spell_random_ingredient_hard'),
+(51015,'spell_random_ingredient_aura'),
+(51154,'spell_random_ingredient_aura'),
+(51157,'spell_random_ingredient_aura'),
+(51046,'spell_pot_check'),
+(51018,'spell_fetch_ingredient_aura'),
+(51055,'spell_fetch_ingredient_aura'),
+(51057,'spell_fetch_ingredient_aura'),
+(51059,'spell_fetch_ingredient_aura'),
+(51062,'spell_fetch_ingredient_aura'),
+(51064,'spell_fetch_ingredient_aura'),
+(51067,'spell_fetch_ingredient_aura'),
+(51069,'spell_fetch_ingredient_aura'),
+(51072,'spell_fetch_ingredient_aura'),
+(51077,'spell_fetch_ingredient_aura'),
+(51079,'spell_fetch_ingredient_aura'),
+(51081,'spell_fetch_ingredient_aura'),
+(51083,'spell_fetch_ingredient_aura'),
+(51085,'spell_fetch_ingredient_aura'),
+(51087,'spell_fetch_ingredient_aura'),
+(51091,'spell_fetch_ingredient_aura'),
+(51093,'spell_fetch_ingredient_aura'),
+(51095,'spell_fetch_ingredient_aura'),
+(51097,'spell_fetch_ingredient_aura'),
+(51100,'spell_fetch_ingredient_aura'),
+(51102,'spell_fetch_ingredient_aura');
+
+-- Add texts for Alchemist Finklestein
+DELETE FROM `creature_text` WHERE `entry`=28205;
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+-- Events 1,2,3
+(28205,0,0,'Quickly, get me some...',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,0,1,'I think it needs...',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,0,2,'Find me some...',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,0,3,'It simply must have some...',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,0,4,'We need some...',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,0,5,'It simply must have some...',42,0,100,0,0,0,'Alchemist Finklestein'),
+-- Event 4
+(28205,1,0,'I think it''s time for...',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,1,1,'Next, we''ll need...',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,1,2,'Tastes like it needs more....',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,1,3,'Alright, now find me some...',42,0,100,0,0,0,'Alchemist Finklestein'),
+-- Event 5
+(28205,2,0,'Coming along nicely, but still needs...',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,2,1,'Before it thickens, we must add...',42,0,100,0,0,0,'Alchemist Finklestein'),
+-- Event 6
+(28205,3,0,'Before it boils over, I need...',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,3,1,'It''s thickening! Quickly, get some...',42,0,100,0,0,0,'Alchemist Finklestein'),
+-- Fail
+(28205,4,0,'You''re too late. I must start again from the beginning....',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,4,1,'No! The serum is ruined!',42,0,100,0,0,0,'Alchemist Finklestein'),
+-- Item request
+(28205,5,0,'Knotroot!',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,6,0,'Pickled Eagle Egg!',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,7,0,'Speckled Guano!',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,8,0,'Withered Batwing!',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,9,0,'Seasoned Slider Cider!',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,10,0,'Pulverized Gargoyle Teeth!',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,11,0,'Muddy Mire Maggot!',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,12,0,'Spiky Spider Egg!',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,13,0,'Hairy Herring Head!',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,14,0,'Putrid Pirate Perspiration!',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,15,0,'Icecrown Bottled Water!',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,16,0,'Wasp''s Wings!',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,17,0,'Prismatic Mojo!',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,18,0,'Raptor Claw!',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,19,0,'Amberseed!',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,20,0,'Shrunken Dragon''s Claw!',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,21,0,'Chilled Serpent Mucus!',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,22,0,'Crystallized Hogsnot!',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,23,0,'Crushed Basilisk Crystals!',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,24,0,'Trollbane!',42,0,100,0,0,0,'Alchemist Finklestein'),
+(28205,25,0,'Frozen Spider Ichor!',42,0,100,0,0,0,'Alchemist Finklestein');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_18_00_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_18_00_world_misc.sql
new file mode 100644
index 00000000000..9403c8ee0f4
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_18_00_world_misc.sql
@@ -0,0 +1,6 @@
+-- Cleaning the database of unused/obsolete data
+DELETE FROM `game_event_creature` WHERE `guid` NOT IN (SELECT `guid` FROM `creature`);
+DELETE FROM `game_event_gameobject` WHERE `guid` NOT IN (SELECT `guid` FROM `gameobject`);
+DELETE FROM `pool_pool` WHERE `mother_pool` NOT IN (SELECT `entry` FROM `pool_template`);
+DELETE FROM `game_event_creature` WHERE `guid` IN (40267,40470,40471);
+DELETE FROM `creature` WHERE `id` = 18963; -- Removed from game arround wow 2.2.x
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_18_01_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_18_01_world_misc.sql
new file mode 100644
index 00000000000..2046eb81609
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_18_01_world_misc.sql
@@ -0,0 +1,4 @@
+-- Cleaning the database of unused/obsolete data
+DELETE FROM `creature` WHERE `map` IN (449,450);
+DELETE FROM `creature_loot_template` WHERE `entry` IN (16156,16157,16158,16368,16446,16448,16449,16451,16452);
+UPDATE `creature_template` SET `lootid`=0 WHERE `entry` IN (16156,16157,16158,16368,16446,16448,16449,16451,16452);
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_18_02_world_creature.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_18_02_world_creature.sql
new file mode 100644
index 00000000000..26067837dfe
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_18_02_world_creature.sql
@@ -0,0 +1,3 @@
+-- Part fix for NPC Hut Fire for Quest: This Just In: Fire Still Hot!
+UPDATE `creature` SET `modelid`=0,`spawndist`=0,`MovementType`=0 WHERE `id`=29692;
+UPDATE `creature_template` SET `InhabitType`=4, `flags_extra`=128 WHERE `entry`=29692;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_18_03_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_18_03_world_sai.sql
new file mode 100644
index 00000000000..914299ba57f
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_18_03_world_sai.sql
@@ -0,0 +1,7 @@
+-- Hut Fire SAI Quest: This Just In: Fire Still Hot! "Now looks more like Offi"
+SET @ENTRY := 29692;
+UPDATE `creature_template` SET `AIName`= 'SmartAI',`ScriptName`= '' WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@ENTRY,0,0,0,1,0,100,0,1000,1000,59000,59000,11,55049,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Hut Fire - OOC - Cast Torch on Self'),
+(@ENTRY,0,1,0,8,0,100,0,55037,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Hut Fire - On Spell Hit - Despawn');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_18_04_world_spell_script_names.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_18_04_world_spell_script_names.sql
new file mode 100644
index 00000000000..8c749c485cf
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_18_04_world_spell_script_names.sql
@@ -0,0 +1,5 @@
+DELETE FROM `spell_script_names` WHERE `spell_id` IN (51134,51105,51107);
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+(51134,'spell_random_ingredient'),
+(51105,'spell_random_ingredient'),
+(51107,'spell_random_ingredient');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_18_05_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_18_05_world_misc.sql
new file mode 100644
index 00000000000..7971ea5e89a
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_18_05_world_misc.sql
@@ -0,0 +1,29 @@
+-- Add texts for Captured Rageclaw
+DELETE FROM `creature_text` WHERE `entry`=29686;
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(29686,0,0,'I poop on you, trollses!',0,0,100,0,0,0,'Captured Rageclaw'),
+(29686,0,1,'ARRRROOOOGGGGAAAA!',0,0,100,0,0,0,'Captured Rageclaw'),
+(29686,0,2,'No more mister nice wolvar!',0,0,100,0,0,0,'Captured Rageclaw');
+
+-- Add option conditions for Crusade Recruit
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (15) AND `SourceGroup` IN (9650);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(15,9650,0,0,9,12509,0,0,0,0,'','Crusade Recruit - Show gossip option only if player has quest Troll Patrol: Intestinal Fortitude');
+
+-- Add Any Missing Gossip Option for Gymer
+DELETE FROM `gossip_menu_option` WHERE menu_id=9852;
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`)VALUES
+(9852,0,0,"I'm ready, Gymer. Let's go!",1,1,0,0,0,0,'');
+
+-- Add option conditions for Gymer
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (15) AND `SourceGroup` IN (9852);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(15,9852,0,0,9,12919,0,0,0,0,'','Gymer - Show gossip option only if player has quest The Storm King''s Vengeance');
+
+-- Gymer SAI Quest: The Storm King''s Vengeance
+SET @ENTRY := 29647;
+UPDATE `creature_template` SET `AIName`= 'SmartAI',`ScriptName`= '' WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@ENTRY,0,0,1,62,0,100,0,9852,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Gymer - On Gossip Option Select - Close Gossip Window'),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,85,55568,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Gymer - On Gossip Option Select - Player cast Summon Gymer on self');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_18_06_world_conditions.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_18_06_world_conditions.sql
new file mode 100644
index 00000000000..07bbf69bf39
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_18_06_world_conditions.sql
@@ -0,0 +1,4 @@
+-- Add spell target for Throw Ingredient
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=51025;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `ErrorTextId`, `Comment`) VALUES
+(13,1,51025,0,31,3,28240,0,0, 'Throw Ingredient can be casted on Finklestein''s Cauldron Bunny');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_18_07_world_gossip.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_18_07_world_gossip.sql
new file mode 100644
index 00000000000..733ccab0748
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_18_07_world_gossip.sql
@@ -0,0 +1,18 @@
+-- Add Missing Gossip Menu Gurgthock
+UPDATE `creature_template` SET `gossip_menu_id`=9863 WHERE `entry`=30007;
+-- Add Missing Gossip Menu items for Gurgthock
+DELETE FROM `gossip_menu` WHERE `entry`=9863 AND `text_id`=13679; -- Before Quest 12948
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9863,13679);
+DELETE FROM `gossip_menu` WHERE `entry`=9863 AND `text_id`=13680; -- After Quest 12948
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9863,13680);
+-- Add Gossip Menu conditions for Gurgthock
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (14) AND `SourceGroup` IN (9863);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(14,9863,13679,0,8,12948,0,0,1,0,'','Gurgthock - Show gossip text only if player does not have Quest 12948 rewarded'),
+(14,9863,13680,0,8,12948,0,0,0,0,'','Gurgthock - Show gossip text only if player does have Quest 12948 rewarded');
+-- Add some miss texts for Gurgthock
+DELETE FROM `creature_text` WHERE `entry`=30007 AND `groupid` IN (7,8,9);
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(30007,7,0,'The grand Amphitheater of Anguish awaits, $N. Remember, once a battle starts you have to stay in the area. WIN OR DIE!',12,0,100,1,0,0,'Gurgthock'),
+(30007,8,0,'Here we are once again, ladies and gentlemen. The epic struggle between life and death in the Amphitheater of Anguish! For this round we have $N versus the hulking jormungar, Yg... Yggd? Yggdoze? Who comes up with these names?! $N versus big worm!',14,0,100,0,0,13363,'Gurgthock SAY_QUEST_AMPHITHEATER_ANGUISH_YGGDRAS'),
+(30007,9,0,'Prepare to make you stand, $N! Get in the Amphitheater and stand ready! Remember, you and your opponent must stay in the arena at all times or you will be disqualified!',12,0,100,1,0,0,'Gurgthock');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_19_00_world_creature.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_19_00_world_creature.sql
new file mode 100644
index 00000000000..7ac3cd694f9
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_19_00_world_creature.sql
@@ -0,0 +1,78 @@
+-- Fix The Amphitheater of Anguish Spawning
+SET @GUID := 125601; -- 40 required
+DELETE FROM `creature` WHERE `id`IN (30193,30102);
+DELETE FROM `creature` WHERE `guid` BETWEEN @GUID AND @GUID+39;
+INSERT INTO `creature` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`) VALUES
+-- Invisible Stalker
+(@GUID+0,15214,571,1,1,0,0,5729.15 ,-3015.369,296.5512,4.607669,120,0,0,1,0,0,0,0,0),
+(@GUID+1,15214,571,1,1,0,0,5818.867,-2976.993,290.2759,2.495821,120,0,0,1,0,0,0,0,0),
+(@GUID+2,15214,571,1,1,0,0,5743.459,-3012.192,290.7671,2.565634,120,0,0,1,0,0,0,0,0),
+(@GUID+3,15214,571,1,1,0,0,5740.554,-3009.175,290.2759,0.296706,120,0,0,1,0,0,0,0,0),
+(@GUID+4,15214,571,1,1,0,0,5791.739,-3015.988,286.5712,1.605703,120,0,0,1,0,0,0,0,0),
+(@GUID+5,15214,571,1,1,0,0,5816.957,-2972.925,290.2759,3.333579,120,0,0,1,0,0,0,0,0),
+(@GUID+6,15214,571,1,1,0,0,5796.063,-3015.993,286.6147,4.974188,120,0,0,1,0,0,0,0,0),
+(@GUID+7,15214,571,1,1,0,0,5824.51 ,-2955.568,296.551,0.9948376,120,0,0,1,0,0,0,0,0),
+-- Amphitheater Spectator
+(@GUID+8,30102,571,1,1,0,0,5723.329,-3040.881,303.6286,0.3316126,120,0,0,1,0,0,0,0,0),
+(@GUID+9,30102,571,1,1,0,0,5691.038,-2993.651,307.4399,0.05358058,120,0,0,1,0,0,0,0,0),
+(@GUID+10,30102,571,1,1,0,0,5697.557,-2985.958,303.6294,0.3316126,120,0,0,1,0,0,0,0,0),
+(@GUID+11,30102,571,1,1,0,0,5732.329,-3059.191,303.6294,0.541052,120,0,0,1,0,0,0,0,0),
+(@GUID+12,30102,571,1,1,0,0,5735.703,-3037.584,296.5507,0.5585054,120,0,0,1,0,0,0,0,0),
+(@GUID+13,30102,571,1,1,0,0,5849.702,-2984.776,300.2807,3.089233,120,0,0,1,0,0,0,0,0),
+(@GUID+14,30102,571,1,1,0,0,5862.831,-2978.309,307.4399,3.071779,120,0,0,1,0,0,0,0,0),
+(@GUID+15,30102,571,1,1,0,0,5826.039,-2935.936,300.2697,3.647738,120,0,0,1,0,0,0,0,0),
+(@GUID+16,30102,571,1,1,0,0,5691.663,-2974.02,303.6294,0.122173,120,0,0,1,0,0,0,0,0),
+(@GUID+17,30102,571,1,1,0,0,5823.243,-2895.698,307.4401,3.979351,120,0,0,1,0,0,0,0,0),
+(@GUID+18,30102,571,1,1,0,0,5824.486,-2917.669,303.6294,4.122175,120,0,0,1,0,0,0,0,0),
+(@GUID+19,30102,571,1,1,0,0,5801.149,-2895.24,303.6294,4.537856,120,0,0,1,0,0,0,0,0),
+(@GUID+20,30102,571,1,1,0,0,5814.957,-2911.626,300.2807,4.253134,120,0,0,1,0,0,0,0,0),
+(@GUID+21,30102,571,1,1,0,0,5821.17,-2911.49,303.6294,3.787364,120,0,0,1,0,0,0,0,0),
+(@GUID+22,30102,571,1,1,0,0,5790.656,-2901.042,300.2807,4.939282,120,0,0,1,0,0,0,0,0),
+-- Amphitheater Spectator
+(@GUID+23,30193,571,1,1,0,0,5716.436,-3047.592,307.4399,0.3490658,120,0,0,1,0,0,0,0,0),
+(@GUID+24,30193,571,1,1,0,0,5730.827,-3041.423,300.2801,0.4886922,120,0,0,1,0,0,0,0,0),
+(@GUID+25,30193,571,1,1,0,0,5704.682,-2986.659,300.2743,0.3665192,120,0,0,1,0,0,0,0,0),
+(@GUID+26,30193,571,1,1,0,0,5705.174,-2973.334,296.5504,0.1396263,120,0,0,1,0,0,0,0,0),
+(@GUID+27,30193,571,1,1,0,0,5722.959,-3059.555,307.44,0.541052,120,0,0,1,0,0,0,0,0),
+(@GUID+28,30193,571,1,1,0,0,5841.792,-2986.62,296.5501,3.179028,120,0,0,1,0,0,0,0,0),
+(@GUID+29,30193,571,1,1,0,0,5855.139,-2997.216,300.2807,3.700098,120,0,0,1,0,0,0,0,0),
+(@GUID+30,30193,571,1,1,0,0,5742.438,-3050.167,296.5508,0.5235988,120,0,0,1,0,0,0,0,0),
+(@GUID+31,30193,571,1,1,0,0,5865.154,-3003.392,303.6294,3.124139,120,0,0,1,0,0,0,0,0),
+(@GUID+32,30193,571,1,1,0,0,5856.421,-2985.136,303.6294,3.089233,120,0,0,1,0,0,0,0,0),
+(@GUID+33,30193,571,1,1,0,0,5868.514,-2990.317,307.44,3.127902,120,0,0,1,0,0,0,0,0),
+(@GUID+34,30193,571,1,1,0,0,5696.096,-2968.275,300.2807,0.03490658,120,0,0,1,0,0,0,0,0),
+(@GUID+35,30193,571,1,1,0,0,5715.793,-2945.014,296.5512,5.462881,120,0,0,1,0,0,0,0,0),
+(@GUID+36,30193,571,1,1,0,0,5810.117,-2898.158,303.6294,4.359755,120,0,0,1,0,0,0,0,0),
+(@GUID+37,30193,571,1,1,0,0,5836.928,-2924.024,307.4398,3.965052,120,0,0,1,0,0,0,0,0),
+-- Amphitheater Vendor
+(@GUID+38,30098,571,1,1,0,0,5691.513,-3001.708,307.3175,1.629701,120,0,0,1,0,0,0,0,0),
+(@GUID+39,30098,571,1,1,0,0,5834.321,-2966.102,296.4593,1.962511,120,0,0,1,0,0,0,0,0);
+
+SET @GUID := 13; -- 2 required
+DELETE FROM `creature` WHERE `guid` IN (@GUID,@GUID+1);
+INSERT INTO `creature` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`) VALUES
+-- Zena <Wodin's Warrior Kitten>
+(@GUID+0,30140,571,1,1,0,0,5791.278,-3021.8,286.468,4.550161,120,5,0,1,0,1,0,0,0),
+-- [DND] Anguish Spectator Bunny
+(@GUID+1,30156,571,1,1,0,0,5776.664,-2989.059,278.9828,0.4014257,120,0,0,1,0,0,0,0,0);
+
+-- Update [DND] Anguish Spectator Bunny
+UPDATE `creature_template` SET `InhabitType`=4, `flags_extra`=128 WHERE `entry`=30156;
+-- Update Wodin the Troll-Servant
+UPDATE `creature` SET `modelid`=12829, `orientation`=1.832596 WHERE `guid`=200821;
+UPDATE `creature_template_addon` SET `bytes1`=0, `bytes2`=1 WHERE `entry`=30009;
+-- Update Gurgthock <Fight Promoter>
+UPDATE `creature` SET `orientation`=2.024582 WHERE `guid`=200822;
+UPDATE `creature_template_addon` SET `path_id`=0, `mount`=26755, `bytes1`=0, `bytes2`=1 WHERE `entry`=30007;
+-- Invisible Stalker
+UPDATE `creature` SET `modelid`=0 WHERE `id`=15214;
+
+-- Add Missing go's
+SET @OGUID := 7093; -- 5 required
+DELETE FROM `gameobject` WHERE `map`=571 AND `id` IN (192238,192614,192615,192237,192240);
+INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
+(@OGUID+0,192238,571,1,1,5784.361,-3105.425,326.7856,0.4450589,0,0,0.2206974,0.9753423,120,0,1),
+(@OGUID+1,192614,571,1,1,5850.665,-3038.08,307.9219,2.015852,0,0,0.845727,0.5336158,120,0,1),
+(@OGUID+2,192615,571,1,1,5770.064,-3076.525,307.9219,2.015852,0,0,0.845727,0.5336158,120,0,1),
+(@OGUID+3,192237,571,1,1,5865.14,-3066.895,326.8948,0.4450589,0,0,0.2206974,0.9753423,120,0,1),
+(@OGUID+4,192240,571,1,1,5827.597,-3123.574,345.3081,-1.125737,0,0,-0.5336142,0.845728,120,0,1);
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_20_00_world_creature.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_20_00_world_creature.sql
new file mode 100644
index 00000000000..1ce9bce76d7
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_20_00_world_creature.sql
@@ -0,0 +1,2 @@
+-- Cleaning db, those mobs already have emote asigned on creature_template_addon
+DELETE FROM creature_addon WHERE guid IN (SELECT guid FROM creature WHERE `id` = 33236) AND `emote`=27;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_20_01_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_20_01_world_misc.sql
new file mode 100644
index 00000000000..426e898f601
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_20_01_world_misc.sql
@@ -0,0 +1,7 @@
+DELETE FROM `spell_script_names` WHERE `spell_id`=55945;
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+(55945,"spell_gen_spectator_cheer_trigger");
+
+DELETE FROM `creature_template_addon` WHERE `entry` IN (30102,30193);
+INSERT INTO `creature_template_addon` (`entry`,`bytes2`,`auras`) VALUES
+(30102,1, '55944 56060'),(30193,1, '55944 56060');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_20_02_world_creature_text.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_20_02_world_creature_text.sql
new file mode 100644
index 00000000000..416ead95371
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_20_02_world_creature_text.sql
@@ -0,0 +1,11 @@
+-- Creature text for Amphitheater Vendor
+DELETE FROM `creature_text` WHERE `entry` IN (30098);
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(30098,0,0, 'Snacks!',12,0,100,0,0,0,'Amphitheater Vendor'),
+(30098,0,1, 'Snacks for sale!',12,0,100,0,0,0,'Amphitheater Vendor'),
+(30098,0,2, 'Get your snacks here!',12,0,100,0,0,0,'Amphitheater Vendor'),
+(30098,0,3, 'Snacks! Get your snacks here!',12,0,100,0,0,0,'Amphitheater Vendor'),
+(30098,0,4, 'Popcorn! Get your popcorn!',12,0,100,0,0,0,'Amphitheater Vendor'),
+(30098,0,5, 'Peanuts! Get your peanuts here!',12,0,100,0,0,0,'Amphitheater Vendor'),
+(30098,0,6, 'Anguish Ale! Cold Anguish Ale here!',12,0,100,0,0,0,'Amphitheater Vendor'),
+(30098,0,7, 'Popcorn! Peanuts! Ale!',12,0,100,0,0,0,'Amphitheater Vendor');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_20_03_world_spell_script_names.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_20_03_world_spell_script_names.sql
new file mode 100644
index 00000000000..5863a4031aa
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_20_03_world_spell_script_names.sql
@@ -0,0 +1,3 @@
+DELETE FROM `spell_script_names` WHERE `spell_id`=56096;
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+(56096,"spell_gen_vendor_bark_trigger");
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_20_04_world_waypoints.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_20_04_world_waypoints.sql
new file mode 100644
index 00000000000..2828f320835
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_20_04_world_waypoints.sql
@@ -0,0 +1,156 @@
+-- Pathing for Amphitheater Vendor Entry: 30098
+SET @NPC := 125639;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=5714.727,`position_y`=-2993.386,`position_z`=296.461 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '56094');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`,`orientation`) VALUES
+(@PATH,1,5714.727,-2993.386,296.461,6000,0,0,100,0,2.04084),
+(@PATH,2,5714.554,-2992.06,296.4618,0,0,0,100,0,0),
+(@PATH,3,5711.305,-2988.808,296.4676,0,0,0,100,0,0),
+(@PATH,4,5705.161,-2981.065,296.4691,0,0,0,100,0,0),
+(@PATH,5,5700.827,-2970.708,296.4702,0,0,0,100,0,0),
+(@PATH,6,5696.297,-2957.711,296.4715,0,0,0,100,0,0),
+(@PATH,7,5696.799,-2955.088,296.4714,0,0,0,100,0,0),
+(@PATH,8,5697.822,-2953.404,296.4712,6000,0,0,100,0,0),
+(@PATH,9,5695.771,-2953.885,296.4716,0,0,0,100,0,0),
+(@PATH,10,5696.042,-2961.384,296.4715,0,0,0,100,0,0),
+(@PATH,11,5702.383,-2974.2,296.4698,0,0,0,100,0,0),
+(@PATH,12,5707.034,-2983.82,296.4686,0,0,0,100,0,0),
+(@PATH,13,5713.569,-2990.567,296.4613,0,0,0,100,0,0),
+(@PATH,14,5712.346,-2989.936,296.4673,6000,0,0,100,0,0),
+(@PATH,15,5714.215,-2991.943,296.4613,0,0,0,100,0,0),
+(@PATH,16,5717.194,-2999.773,296.4234,0,0,0,100,0,0),
+(@PATH,17,5728.412,-3022.169,296.4291,0,0,0,100,0,0),
+(@PATH,18,5730.965,-3027.998,296.45895,0,0,0,100,0,0),
+(@PATH,19,5708.885,-3039.621,307.3123,0,0,0,100,0,0),
+(@PATH,20,5711.497,-3040.242,307.3558,6000,0,0,100,0,0),
+(@PATH,21,5711.84,-3044.363,307.3188,0,0,0,100,0,0),
+(@PATH,22,5716.811,-3055.433,307.3327,0,0,0,100,0,0),
+(@PATH,23,5721.602,-3063.456,307.36,0,0,0,100,0,0),
+(@PATH,24,5725.222,-3067.889,307.3367,0,0,0,100,0,0),
+(@PATH,25,5725.133,-3070.596,307.3248,0,0,0,100,0,0),
+(@PATH,26,5719.292,-3073.477,311.0657,0,0,0,100,0,0),
+(@PATH,27,5713.645,-3075.998,312.6586,6000,0,0,100,0,0),
+(@PATH,28,5714.134,-3075.827,312.6587,0,0,0,100,0,0),
+(@PATH,29,5720.383,-3072.84,310.5493,0,0,0,100,0,0),
+(@PATH,30,5725.57,-3070.224,307.3301,0,0,0,100,0,0),
+(@PATH,31,5723.997,-3066.298,307.3327,0,0,0,100,0,0),
+(@PATH,32,5720.401,-3061.947,307.3509,0,0,0,100,0,0),
+(@PATH,33,5716.573,-3055.332,307.33,0,0,0,100,0,0),
+(@PATH,34,5713.17,-3048.396,307.3137,0,0,0,100,0,0),
+(@PATH,35,5708.885,-3039.621,307.3123,0,0,0,100,0,0),
+(@PATH,36,5710.52,-3038.915,307.3293,6000,0,0,100,0,0),
+(@PATH,37,5730.965,-3027.998,296.45895,0,0,0,100,0,0),
+(@PATH,38,5732.765,-3031.719,296.4664,0,0,0,100,0,0),
+(@PATH,39,5732.112,-3034.138,296.4667,6000,0,0,100,0,0),
+(@PATH,40,5733.084,-3031.317,296.4664,0,0,0,100,0,0),
+(@PATH,41,5730.009,-3025.079,296.4313,0,0,0,100,0,0),
+(@PATH,42,5725.542,-3017.257,296.4236,0,0,0,100,0,0),
+(@PATH,43,5717.127,-2999.863,296.4223,0,0,0,100,0,0),
+(@PATH,44,5714.964,-2994.664,296.4603,0,0,0,100,0,0),
+(@PATH,45,5692.41,-3004.103,307.3565,6000,0,0,100,0,0.1291),
+(@PATH,46,5691.513,-3001.708,307.3175,0,0,0,100,0,0),
+(@PATH,47,5688.313,-2996.178,307.3124,0,0,0,100,0,0),
+(@PATH,48,5684.693,-2989.563,307.3086,0,0,0,100,0,0),
+(@PATH,49,5677.367,-2974.369,307.3082,0,0,0,100,0,0),
+(@PATH,50,5674.822,-2968.894,307.309,0,0,0,100,0,0),
+(@PATH,51,5678.438,-2968.422,307.3421,6000,0,0,100,0,0),
+(@PATH,52,5676.909,-2970.624,307.3198,0,0,0,100,0,0),
+(@PATH,53,5678.826,-2977.606,307.3074,0,0,0,100,0,0),
+(@PATH,54,5685.183,-2989.712,307.3122,0,0,0,100,0,0),
+(@PATH,55,5692.096,-3002.872,307.3178,0,0,0,100,0,0),
+(@PATH,56,5693.071,-3001.71,307.3307,6000,0,0,100,0,0),
+(@PATH,57,5694.927,-3003.501,307.34024,0,0,0,100,0,0),
+(@PATH,58,5714.964,-2994.664,296.4603,0,0,0,100,0,0);
+-- 0xF130007592007A8C .go 5714.727 -2993.386 296.461
+
+-- Pathing for Amphitheater Vendor Entry: 30098
+SET @NPC := 125640;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=5815.197,`position_y`=-2890.652,`position_z`=307.3073 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '56094');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`,`orientation`) VALUES
+(@PATH,1,5815.197,-2890.652,307.3073,0,0,0,100,0,0),
+(@PATH,2,5794.252,-2883.318,307.3083,0,0,0,100,0,0),
+(@PATH,3,5788.011,-2882.464,307.3129,0,0,0,100,0,0),
+(@PATH,4,5777.774,-2887.472,307.314,6000,0,0,100,0,5.081746),
+(@PATH,5,5781.212,-2885.993,307.3153,0,0,0,100,0,0),
+(@PATH,6,5790.22,-2882.968,307.3221,0,0,0,100,0,0),
+(@PATH,7,5812.069,-2889.932,307.3122,0,0,0,100,0,0),
+(@PATH,8,5824.013,-2894.033,307.3106,0,0,0,100,0,0),
+(@PATH,9,5832.72,-2904.214,307.3027,0,0,0,100,0,0),
+(@PATH,10,5839.131,-2917.173,307.3007,0,0,0,100,0,0),
+(@PATH,11,5842.978,-2932.468,307.3301,6000,0,0,100,0,3.49564),
+(@PATH,12,5823.141,-2942.902,296.4594,0,0,0,100,0,0),
+(@PATH,13,5820.456,-2941.357,296.463,0,0,0,100,0,0),
+(@PATH,14,5818.377,-2934.065,296.4635,0,0,0,100,0,0),
+(@PATH,15,5815.375,-2925.807,296.4646,0,0,0,100,0,0),
+(@PATH,16,5810.773,-2915.595,296.4659,0,0,0,100,0,0),
+(@PATH,17,5806.843,-2906.805,296.467,0,0,0,100,0,0),
+(@PATH,18,5803.637,-2903.886,296.4672,0,0,0,100,0,0),
+(@PATH,19,5793.222,-2907.475,296.4679,0,0,0,100,0,0),
+(@PATH,20,5789.824,-2907.318,296.4679,0,0,0,100,0,0),
+(@PATH,21,5793.065,-2905.667,296.4679,6000,0,0,100,0,0),
+(@PATH,22,5802.28,-2903.771,296.467,0,0,0,100,0,0),
+(@PATH,23,5805.051,-2905.157,296.4671,0,0,0,100,0,0),
+(@PATH,24,5811.012,-2917.848,296.4655,0,0,0,100,0,0),
+(@PATH,25,5816.104,-2930.128,296.4639,0,0,0,100,0,0),
+(@PATH,26,5819.828,-2938.419,296.463,0,0,0,100,0,0),
+(@PATH,27,5823.147,-2946.686,296.4627,0,0,0,100,0,0),
+(@PATH,28,5826.026,-2950.458,296.4608,6000,0,0,100,0,0),
+(@PATH,29,5836.404,-2972.255,296.4608,0,0,0,100,0,0),
+(@PATH,30,5838.149,-2976.351,296.4612,0,0,0,100,0,0),
+(@PATH,31,5859.727,-2966.575,307.32678,0,0,0,100,0,0),
+(@PATH,32,5861.81,-2971.323,307.3561,0,0,0,100,0,0),
+(@PATH,33,5863.061,-2972.167,307.3237,0,0,0,100,0,0),
+(@PATH,34,5866.722,-2976.944,307.311,0,0,0,100,0,0),
+(@PATH,35,5871.775,-2988.365,307.3141,0,0,0,100,0,0),
+(@PATH,36,5872.965,-2994.138,307.3567,0,0,0,100,0,0),
+(@PATH,37,5874.925,-2998.613,307.3567,0,0,0,100,0,0),
+(@PATH,38,5880.139,-2996.332,310.5986,0,0,0,100,0,0),
+(@PATH,39,5887.151,-2993.677,312.6583,0,0,0,100,0,0),
+(@PATH,40,5889.792,-2992.4,312.6583,0,0,0,100,0,0),
+(@PATH,41,5885.894,-2993.681,312.6583,6000,0,0,100,0,0),
+(@PATH,42,5880.026,-2996.398,310.5436,0,0,0,100,0,0),
+(@PATH,43,5874.923,-2998.589,307.3567,0,0,0,100,0,0),
+(@PATH,44,5872.593,-2994.324,307.3567,0,0,0,100,0,0),
+(@PATH,45,5866.108,-2975.193,307.3089,0,0,0,100,0,0),
+(@PATH,46,5863.831,-2970.042,307.3072,0,0,0,100,0,0),
+(@PATH,47,5862.619,-2971.012,307.3227,0,0,0,100,0,0),
+(@PATH,48,5859.727,-2966.575,307.32678,6000,0,0,100,0,0),
+(@PATH,49,5838.149,-2976.351,296.4612,0,0,0,100,0,0),
+(@PATH,50,5840.075,-2980.193,296.4609,0,0,0,100,0,0),
+(@PATH,51,5841.883,-2981.336,296.4596,0,0,0,100,0,0),
+(@PATH,52,5845.005,-2984.348,296.4602,0,0,0,100,0,0),
+(@PATH,53,5847.249,-2989.125,296.461,0,0,0,100,0,0),
+(@PATH,54,5850.176,-2994.417,296.4619,0,0,0,100,0,0),
+(@PATH,55,5854.216,-3003.275,296.4633,0,0,0,100,0,0),
+(@PATH,56,5857.905,-3012.948,296.4679,0,0,0,100,0,0),
+(@PATH,57,5855.694,-3012.666,296.4679,6000,0,0,100,0,0),
+(@PATH,58,5856.008,-3008.202,296.4679,0,0,0,100,0,0),
+(@PATH,59,5852.001,-2999.263,296.4626,0,0,0,100,0,0),
+(@PATH,60,5846.733,-2987.699,296.4607,0,0,0,100,0,0),
+(@PATH,61,5841.884,-2981.688,296.4596,0,0,0,100,0,0),
+(@PATH,62,5839.803,-2981.84,296.4595,6000,0,0,100,0,0),
+(@PATH,63,5838.802,-2979.086,296.464,0,0,0,100,0,0),
+(@PATH,64,5837.438,-2973.646,296.4601,0,0,0,100,0,0),
+(@PATH,65,5834.321,-2966.102,296.4593,0,0,0,100,0,0),
+(@PATH,66,5827.733,-2952.834,296.4597,0,0,0,100,0,0),
+(@PATH,67,5824.319,-2947.607,296.4614,0,0,0,100,0,0),
+(@PATH,68,5824.185,-2944.959,296.4594,0,0,0,100,0,0),
+(@PATH,69,5823.141,-2942.902,296.4594,0,0,0,100,0,0),
+(@PATH,70,5842.978,-2932.468,307.3301,0,0,0,100,0,0),
+(@PATH,71,5842.981,-2931.031,307.3559,6000,0,0,100,0,2.07934),
+(@PATH,72,5842.807,-2925.778,307.3042,0,0,0,100,0,0),
+(@PATH,73,5836.683,-2912.875,307.3041,0,0,0,100,0,0),
+(@PATH,74,5832.72,-2904.214,307.3027,0,0,0,100,0,0),
+(@PATH,75,5824.013,-2894.033,307.3106,0,0,0,100,0,0);
+-- 0xF130007592006C29 .go 5815.197 -2890.652 307.3073
+
+-- Remove unneeded spawn
+DELETE FROM `creature` WHERE `guid`=109649;
+DELETE FROM `creature_addon` WHERE `guid`=109649;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_21_00_world_creature.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_21_00_world_creature.sql
new file mode 100644
index 00000000000..7749b46d5e4
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_21_00_world_creature.sql
@@ -0,0 +1,15 @@
+-- Restore Lost Data
+DELETE FROM `creature_addon` WHERE `guid` IN (14448,14449,14456,14458,14459);
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES
+(14448,144480,1,0, '22766'),
+(14449,144490,1,0, '22766'),
+(14456,144560,1,0, '22766'),
+(14458,144580,1,0, '22766'),
+(14459,144590,1,0, '22766');
+
+DELETE FROM `creature_template_addon` WHERE `entry`=3457;
+INSERT INTO `creature_template_addon` (`entry`,`path_id`,`bytes2`,`mount`,`auras`) VALUES
+(3457,0,1,0, '22766');
+
+-- Fix respawn for Steelforged Defenders at Ulduar
+UPDATE `creature` SET `spawntimesecs`=7200 WHERE (`id`=33236);
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_21_01_world_creature.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_21_01_world_creature.sql
new file mode 100644
index 00000000000..64b0de97f34
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_21_01_world_creature.sql
@@ -0,0 +1,3 @@
+-- Proper respawn time for a lot of mobs and delete incorrectly spawned mobs
+DELETE FROM `creature` WHERE `id` IN (14397,15718);
+UPDATE `creature` SET `spawntimesecs`=7200 WHERE (`map` IN (209,329,429,469,509,531) AND `spawntimesecs` IN (3520,3300,1800,1650)) OR `id` IN (12129,32593);
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_21_02_world_creature.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_21_02_world_creature.sql
new file mode 100644
index 00000000000..29c83f882da
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_21_02_world_creature.sql
@@ -0,0 +1,14 @@
+UPDATE `creature` SET `modelid`=0, `curhealth`=1, `curmana`=0 WHERE `id`=2591;
+UPDATE `creature` SET `modelid`=0, `curhealth`=1, `curmana`=0 WHERE `id`=4844;
+UPDATE `creature` SET `modelid`=0, `curhealth`=1 WHERE `id`=5471;
+UPDATE `creature` SET `modelid`=0, `curhealth`=1 WHERE `id`=5615;
+UPDATE `creature` SET `modelid`=0, `curhealth`=1, `MovementType`=0 WHERE `guid` IN (200617,200618);
+UPDATE `creature` SET `modelid`=0, `curhealth`=1, `curmana`=0 WHERE `id`=14876;
+UPDATE `creature` SET `MovementType`=0 WHERE `guid` IN (14564,14556,151934,151935,151936,151947,151948,151949,151995,151996,151997,151998,201735,201757,201764,28686,152002,152003,151979,151959,151940,151937,209098,209097,202337,78554,78555,200615,42880,152311,152315);
+DELETE FROM `creature_addon` WHERE `guid` IN (7690,23130,23466,23467,14564,128582);
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES
+(7690,76900,1,0, ''),
+(23130,231300,1,0, ''),
+(23466,234660,1,0, ''),
+(23467,234670,1,0, ''),
+(128582,1285820,1,0, '');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_21_03_world_instance_template.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_21_03_world_instance_template.sql
new file mode 100644
index 00000000000..2a22dfcf774
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_21_03_world_instance_template.sql
@@ -0,0 +1 @@
+UPDATE `instance_template` SET `script`= 'instance_the_black_morass' WHERE `map`=269;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_23_00_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_23_00_world_misc.sql
new file mode 100644
index 00000000000..981f1236dfd
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_23_00_world_misc.sql
@@ -0,0 +1,10 @@
+-- Delete no longer used data from World Database
+DELETE FROM `game_event_condition` WHERE `eventEntry` BETWEEN 33 AND 47;
+DELETE FROM `game_event_creature_quest` WHERE `eventEntry` BETWEEN 33 AND 47;
+DELETE FROM `game_event_npc_vendor` WHERE `eventEntry` BETWEEN 33 AND 47;
+DELETE FROM `game_event_npcflag` WHERE `eventEntry` BETWEEN 33 AND 47;
+DELETE FROM `game_event_prerequisite` WHERE `eventEntry` BETWEEN 33 AND 47;
+DELETE FROM `game_event_quest_condition` WHERE `eventEntry` BETWEEN 33 AND 47;
+DELETE FROM `game_event` WHERE `description` LIKE '%Shattered Sun Offensive:%';
+
+UPDATE `creature_template` SET `lootid`=0 WHERE `entry`=29833;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_23_01_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_23_01_world_misc.sql
new file mode 100644
index 00000000000..f98b1f2f7ab
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_23_01_world_misc.sql
@@ -0,0 +1,3 @@
+-- Move Blackhand Incarcerator to core scripting
+UPDATE `creature_template` SET `AIName`= '',`ScriptName`= 'npc_blackhand_incarcerator' WHERE `entry`=10316;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=10316;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_24_00_world_creature_text.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_24_00_world_creature_text.sql
new file mode 100644
index 00000000000..6419e43ad14
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_24_00_world_creature_text.sql
@@ -0,0 +1,22 @@
+-- Text for Lord Victor Nefarius from sniff
+SET @VICTOR := 10162;
+SET @REND := 10429;
+DELETE FROM `creature_text` WHERE `entry` IN (@VICTOR,@REND);
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+-- Lord Victor Nefarius texts UBRS
+(@VICTOR,0,0,"Excellent... it would appear as if the meddlesome insects have arrived just in time to feed my legion. Welcome, mortals!",14,0,100,22,0,0,'Lord Victor Nefarius (UBRS)'),
+(@VICTOR,1,0,"Let not even a drop of their blood remain upon the arena floor, my children. Feast on their souls!",14,0,100,22,0,0,'Lord Victor Nefarius (UBRS)'),
+(@VICTOR,2,0,"Foolsss... Kill the one in the dress!",14,0,100,22,0,0,'Lord Victor Nefarius (UBRS)'),
+(@VICTOR,3,0,"Inconceivable!",14,0,100,22,0,0,'Lord Victor Nefarius (UBRS)'),
+(@VICTOR,4,0,"Your efforts will prove fruitless. None shall stand in our way!",14,0,100,22,0,0,'Lord Victor Nefarius (UBRS)'),
+(@VICTOR,5,0,"Do not force my hand, children! I shall use your hides to line my boots.",14,0,100,22,0,0,'Lord Victor Nefarius (UBRS)'),
+(@VICTOR,6,0,"Use the freezing breath, imbecile!",14,0,100,22,0,0,'Lord Victor Nefarius (UBRS)'),
+(@VICTOR,7,0,"THIS CANNOT BE!!! Rend, deal with these insects.",14,0,100,0,0,0,'Lord Victor Nefarius (UBRS)'),
+(@VICTOR,8,0,"The Warchief shall make quick work of you, mortals. Prepare yourselves!",14,0,100,25,0,0,'Lord Victor Nefarius (UBRS)'),
+(@VICTOR,9,0,"Your victory shall be short lived. The days of both the Alliance and Horde are coming to an end! The next time we meet shall be the last.",14,0,100,5,0,0,'Lord Victor Nefarius (UBRS)'),
+-- Lord Victor Nefarius texts BWL
+(@VICTOR,10,0,"In this world where time is your enemy, it is my greatest ally. This grand game of life that you think you play in fact plays you. To that I say...",12,0,100,22,0,0,'Lord Victor Nefarius SAY_GAMESBEGIN_1 (BWL)'),
+(@VICTOR,11,0,"Let the games begin!",14,0,100,22,0,8280,'Lord Victor Nefarius SAY_GAMESBEGIN_2 (BWL)'),
+(@VICTOR,12,0,"Ah, the heroes. You are persistent, aren't you. Your allied attempted to match his power against mine, and had to pay the price. Now he shall serve me, by slaughtering you. Get up little red wyrm and destroy them!",14,0,100,22,0,8279,'Lord Victor Nefarius SAY_VAEL_INTRO (BWL)'),
+-- Warchief Rend Blackhand text
+(@REND,0,0,"With pleasure...",14,0,100,0,0,0,'Warchief Rend Blackhand');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_24_01_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_24_01_world_misc.sql
new file mode 100644
index 00000000000..54487e129de
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_24_01_world_misc.sql
@@ -0,0 +1,195 @@
+-- Add Missing Gossip Menu for Lord Victor Nefarius
+UPDATE `creature_template` SET `gossip_menu_id`=21330 WHERE `entry`=10162;
+
+-- Add Missing Gossip Menu items for Lord Victor Nefarius
+DELETE FROM `gossip_menu` WHERE `entry`=21330 AND `text_id`=7134;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (21330,7134);
+DELETE FROM `gossip_menu` WHERE `entry`=21331 AND `text_id`=7198;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (21331,7198);
+DELETE FROM `gossip_menu` WHERE `entry`=21332 AND `text_id`=7199;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (21332,7199);
+
+-- Add Missing Gossip Menu options for Lord Victor Nefarius
+DELETE FROM `gossip_menu_option` WHERE `menu_id` IN (21330,21331,21332);
+INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`) VALUES
+(21330,0,0, 'I''ve made no mistakes.',1,1,21331,0,0,0, ''),
+(21331,0,0, 'You have lost your mind, Nefarius. You speak in riddles.',1,1,21332,0,0,0, ''),
+(21332,0,0, 'Please do.',1,1,0,0,0,0, '');
+
+-- Add Missing Gossip Menu for Vaelastrasz the Corrupt
+UPDATE `creature_template` SET `gossip_menu_id`=21333 WHERE `entry`=13020;
+
+-- Add Missing Gossip Menu items for Vaelastrasz the Corrupt
+DELETE FROM `gossip_menu` WHERE `entry`=21333 AND `text_id`=7156;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (21333,7156);
+DELETE FROM `gossip_menu` WHERE `entry`=21334 AND `text_id`=7256;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (21334,7256);
+
+-- Add Missing Gossip Menu options for Vaelastrasz the Corrupt
+DELETE FROM `gossip_menu_option` WHERE `menu_id` IN (21333,21334);
+INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`) VALUES
+(21333,0,0, 'I cannot Vaelastraz! Surely something can be done to heal you!',1,1,21334,0,0,0, ''),
+(21334,0,0, 'Vaelastraz, no!!',1,1,21332,0,0,0, '');
+
+-- Add missing text for Nefarian
+SET @NEFARIAN := 11583;
+DELETE FROM `creature_text` WHERE `entry`=@NEFARIAN AND `groupid`=13;
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@NEFARIAN,13,0,"'Death Knights, get over here!'",14,0,100,0,0,0,'nefarian SAY_DEATH_KNIGHT');
+
+-- wrong creature spawn
+DELETE FROM creature WHERE guid IN (84511, 84510, 84509, 84505, 84444, 84404, 84393);
+DELETE FROM creature WHERE guid IN (84496, 84489, 84487, 84439, 84437, 84405, 84403);
+DELETE FROM creature WHERE guid IN (84503, 84494, 84493, 84392);
+DELETE FROM creature WHERE guid IN (84486, 84484, 84436);
+DELETE FROM creature WHERE guid IN (84495, 84432, 84406);
+
+UPDATE creature_template SET spell2=19873, spell3=19872, spell4=0 WHERE entry=12435;
+UPDATE gameobject_template SET ScriptName='go_orb_of_domination' WHERE entry=177808;
+
+DELETE FROM spell_script_names WHERE spell_id=19873;
+INSERT INTO spell_script_names (spell_id, ScriptName) VALUES
+(19873, 'spell_egg_event');
+
+DELETE FROM spell_linked_spell WHERE spell_trigger=42013 AND spell_effect=45537;
+INSERT INTO spell_linked_spell (spell_trigger, spell_effect, comment) VALUES
+(42013, 45537, 'Visual Channel');
+
+-- nefarian
+REPLACE INTO spell_target_position (id, target_map, target_position_x, target_position_y, target_position_z, target_orientation) VALUES
+(22981, 469, -7536.73, -1280.18, 476.799, 2.11467),
+(22982, 469, -7503.34, -1163.17, 476.797, 2.57019),
+(22983, 469, -7482.73, -1196.49, 476.799, 2.31887),
+(22984, 469, -7462.38, -1224.99, 476.786, 2.37385),
+(22978, 469, -7534.08, -1198.57, 476.799, 2.23641),
+(22979, 469, -7514.02, -1224.35, 476.8, 2.21677),
+(22980, 469, -7496.05, -1248.45, 476.799, 2.09111),
+(22972, 469, -7516.38, -1263.78, 476.773, 2.18536),
+(22975, 469, -7582.36, -1213.9, 476.799, 2.17357),
+(22976, 469, -7564.18, -1240.31, 476.799, 2.17357),
+(22977, 469, -7550.29, -1260.5, 476.799, 2.17357);
+
+UPDATE creature_template SET InhabitType=7 WHERE entry=11583;
+
+-- Add missing go spawns
+
+-- doors
+SET @OGUID = 7226; -- 7230
+DELETE FROM gameobject WHERE guid BETWEEN @OGUID AND @OGUID+4;
+INSERT INTO gameobject (guid, id, map, position_x, position_y, position_z, orientation, rotation2, rotation3, spawntimesecs, state) VALUES
+(@OGUID , 181125, 469, -7488.35, -1150.67, 476.534, 0.674574, 0.330928, 0.943656, 300, 1),
+(@OGUID+1, 185483, 469, -7455.08, -1051.84, 476.556, 2.17155, 0.884665, 0.466227, 300, 1),
+(@OGUID+2, 180424, 469, -7565.34, -1029.19, 449.142, 3.75568, 0.953231, -0.302244, 300, 1),
+(@OGUID+3, 175185, 469, -7520.27, -972.05, 423.429, 5.32599, 0.460536, -0.887641, 300, 1),
+(@OGUID+4, 175946, 469, -7552.26, -1022.92, 408.491, 3.75109, 0.953922, -0.300053, 300, 1);
+-- SELECT * FROM gameobject where id IN(181125,185483,180424,175185,175946);
+
+SET @OGUID := 56158;
+DELETE FROM `gameobject` WHERE `guid` BETWEEN @OGUID+0 AND @OGUID+19;
+INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES
+(@OGUID+0, 179121, 469, 1, 1, -7683.71, -1052.777, 440.6431, 3.752462, 0, 0, 0.9537169, -0.3007059, 7200, 255, 1),
+(@OGUID+1, 179122, 469, 1, 1, -7691.453, -1040.233, 440.6851, 3.752462, 0, 0, 0.9537169, -0.3007059, 7200, 255, 1),
+(@OGUID+2, 153723, 469, 1, 1, -7752.402, -1155.65, 396.6956, 3.33359, 0, 0, 0.9537169, -0.3007059, 7200, 255, 1),
+(@OGUID+3, 179148, 469, 1, 1, -7510.984, -1094.69, 476.5545, 5.340709, 0, 0, 0, 1, 7200, 255, 1),
+(@OGUID+4, 149045, 469, 1, 1, -6904.809, -1206.778, 178.5116, 2.984498, 0, 0, 1, -4.371139E-08, 7200, 255, 1),
+(@OGUID+5, 149046, 469, 1, 1, -6900.417, -1339.326, 239.6519, 3.394674, 0, 0, 1, -4.371139E-08, 7200, 255, 1),
+(@OGUID+6, 161536, 469, 1, 1, -6756.733, -1166.698, 187.0418, 1.317723, 0, 0, 0.9969173, -0.07845917, 7200, 255, 1),
+(@OGUID+7, 179113, 469, 1, 1, -7629.542, -1017.326, 413.3823, 6.06502, 0, 0, 0.9537169, -0.3007059, 7200, 255, 1),
+(@OGUID+8, 179112, 469, 1, 1, -7628.558, -1012.672, 413.3823, 5.750863, 0, 0, 0.9537169, -0.3007059, 7200, 255, 1),
+(@OGUID+9, 179114, 469, 1, 1, -7627.558, -1009.027, 413.3823, 5.366888, 0, 0, 0.9537169, -0.3007059, 7200, 255, 1),
+(@OGUID+10, 179111, 469, 1, 1, -7623.486, -1009.636, 413.3823, 4.89565, 0, 0, 0.9537169, -0.3007059, 7200, 255, 1),
+(@OGUID+11, 179110, 469, 1, 1, -7618.736, -1009.88, 413.3823, 4.651303, 0, 0, 0.9537169, -0.3007059, 7200, 255, 1),
+(@OGUID+12, 180632, 469, 1, 1, -7554.886, -1039.864, 449.2131, 2.967041, 0, 0, 0.9537169, -0.3007059, 7200, 255, 1),
+(@OGUID+13, 180631, 469, 1, 1, -7545.932, -978.4827, 449.2131, 2.967041, 0, 0, 0.9537169, -0.3007059, 7200, 255, 1),
+(@OGUID+14, 179106, 469, 1, 1, -7468.113, -1047.162, 411.971, 0.6108655, 0, 0, 0.9537169, -0.3007059, 7200, 255, 1),
+(@OGUID+15, 179105, 469, 1, 1, -7466.616, -1042.562, 411.9711, 2.18166, 0, 0, 0.9537169, -0.3007059, 7200, 255, 1),
+(@OGUID+16, 179104, 469, 1, 1, -7464.983, -1041.419, 411.9711, 2.18166, 0, 0, 0.9537169, -0.3007059, 7200, 255, 1),
+(@OGUID+17, 179108, 469, 1, 1, -7464.785, -1048.651, 411.971, 2.18166, 0, 0, 0.9537169, -0.3007059, 7200, 255, 1),
+(@OGUID+18, 179107, 469, 1, 1, -7459.672, -1041.251, 411.971, 3.752462, 0, 0, 0.9537169, -0.3007059, 7200, 255, 1),
+(@OGUID+19, 179109, 469, 1, 1, -7459.427, -1044.899, 411.971, 2.18166, 0, 0, 0.9537169, -0.3007059, 7200, 255, 1);
+
+-- eggs for razorgore
+SET @OGUID := 74165; -- 74181
+DELETE FROM `gameobject` WHERE `guid` BETWEEN @OGUID AND @OGUID+29;
+INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES
+(@OGUID+0, 177807, 469, 1, 1, -7549.479, -1069.964, 408.4904, 5.759587, 0, 0, 0, 1, 7200, 255, 1), -- Black Dragon Egg (Area: 0)
+(@OGUID+1, 177807, 469, 1, 1, -7554.418, -1061.5, 408.4904, 3.996807, 0, 0, 0, 1, 7200, 255, 1), -- Black Dragon Egg (Area: 0)
+(@OGUID+2, 177807, 469, 1, 1, -7563.152, -1088.705, 413.3812, 5.829401, 0, 0, 0, 1, 7200, 255, 1), -- Black Dragon Egg (Area: 0)
+(@OGUID+3, 177807, 469, 1, 1, -7564.887, -1058.87, 408.4904, 2.286379, 0, 0, 0, 1, 7200, 255, 1), -- Black Dragon Egg (Area: 0)
+(@OGUID+4, 177807, 469, 1, 1, -7566.002, -1045.929, 408.4904, 3.054327, 0, 0, 0, 1, 7200, 255, 1), -- Black Dragon Egg (Area: 0)
+(@OGUID+5, 177807, 469, 1, 1, -7568.273, -1097.68, 413.3809, 2.792518, 0, 0, 0, 1, 7200, 255, 1), -- Black Dragon Egg (Area: 0)
+(@OGUID+6, 177807, 469, 1, 1, -7568.621, -1086.578, 413.3812, 0.8552105, 0, 0, 0, 1, 7200, 255, 1), -- Black Dragon Egg (Area: 0)
+(@OGUID+7, 177807, 469, 1, 1, -7569.38, -1079.727, 413.3812, 3.595379, 0, 0, 0, 1, 7200, 255, 1), -- Black Dragon Egg (Area: 0)
+(@OGUID+8, 177807, 469, 1, 1, -7572.491, -1095.034, 413.3812, 3.42085, 0, 0, 0, 1, 7200, 255, 1), -- Black Dragon Egg (Area: 0)
+(@OGUID+9, 177807, 469, 1, 1, -7576.924, -1083.691, 413.3812, 3.38594, 0, 0, 0, 1, 7200, 255, 1), -- Black Dragon Egg (Area: 0)
+(@OGUID+10, 177807, 469, 1, 1, -7577.844, -1035.97, 408.4904, 5.166176, 0, 0, 0, 1, 7200, 255, 1), -- Black Dragon Egg (Area: 0)
+(@OGUID+11, 177807, 469, 1, 1, -7578.64, -1089.948, 413.3812, 2.216565, 0, 0, 0, 1, 7200, 255, 1), -- Black Dragon Egg (Area: 0)
+(@OGUID+12, 177807, 469, 1, 1, -7579.486, -1051.485, 408.1571, 0.523598, 0, 0, 0, 1, 7200, 255, 1), -- Black Dragon Egg (Area: 0)
+(@OGUID+13, 177807, 469, 1, 1, -7580.799, -1067.292, 408.4904, 3.298687, 0, 0, 0, 1, 7200, 255, 1), -- Black Dragon Egg (Area: 0)
+(@OGUID+14, 177807, 469, 1, 1, -7584.68, -1075.842, 408.4904, 3.019413, 0, 0, 0, 1, 7200, 255, 1), -- Black Dragon Egg (Area: 0)
+(@OGUID+15, 177807, 469, 1, 1, -7586.365, -1024.429, 408.4904, 3.351047, 0, 0, 0, 1, 7200, 255, 1), -- Black Dragon Egg (Area: 0)
+(@OGUID+16, 177807, 469, 1, 1, -7588.843, -1053.786, 408.1571, 4.555311, 0, 0, 0, 1, 7200, 255, 1), -- Black Dragon Egg (Area: 0)
+(@OGUID+17, 177807, 469, 1, 1, -7592.354, -1010.842, 408.4904, 3.735006, 0, 0, 0, 1, 7200, 255, 1), -- Black Dragon Egg (Area: 0)
+(@OGUID+18, 177807, 469, 1, 1, -7592.379, -1035.677, 408.1571, 1.623156, 0, 0, 0, 1, 7200, 255, 1), -- Black Dragon Egg (Area: 0)
+(@OGUID+19, 177807, 469, 1, 1, -7594.374, -1102.896, 408.4904, 5.375615, 0, 0, 0, 1, 7200, 255, 1), -- Black Dragon Egg (Area: 0)
+(@OGUID+20, 177807, 469, 1, 1, -7597.528, -1094.538, 408.4904, 2.373644, 0, 0, 0, 1, 7200, 255, 1), -- Black Dragon Egg (Area: 0)
+(@OGUID+21, 177807, 469, 1, 1, -7598.997, -1044.769, 408.1571, 5.253442, 0, 0, 0, 1, 7200, 255, 1), -- Black Dragon Egg (Area: 0)
+(@OGUID+22, 177807, 469, 1, 1, -7601.142, -1077.111, 408.2178, 5.009095, 0, 0, 0, 1, 7200, 255, 1), -- Black Dragon Egg (Area: 0)
+(@OGUID+23, 177807, 469, 1, 1, -7604.356, -1060.245, 408.1571, 3.508117, 0, 0, 0, 1, 7200, 255, 1), -- Black Dragon Egg (Area: 0)
+(@OGUID+24, 177807, 469, 1, 1, -7609.944, -1035.106, 408.4904, 4.34587, 0, 0, 0, 1, 7200, 255, 1), -- Black Dragon Egg (Area: 0)
+(@OGUID+25, 177807, 469, 1, 1, -7611.604, -1020.322, 413.3812, 3.089183, 0, 0, 0, 1, 7200, 255, 1), -- Black Dragon Egg (Area: 0)
+(@OGUID+26, 177807, 469, 1, 1, -7618.098, -1069.328, 408.4904, 4.956738, 0, 0, 0, 1, 7200, 255, 1), -- Black Dragon Egg (Area: 0)
+(@OGUID+27, 177807, 469, 1, 1, -7619.756, -1058.941, 408.4904, 1.815142, 0, 0, 0, 1, 7200, 255, 1), -- Black Dragon Egg (Area: 0)
+(@OGUID+28, 177807, 469, 1, 1, -7626.688, -1011.714, 413.3809, 0.2268925, 0, 0, 0, 1, 7200, 255, 1), -- Black Dragon Egg (Area: 0)
+(@OGUID+29, 177807, 469, 1, 1, -7628.317, -1044.573, 408.4904, 6.108654, 0, 0, 0, 1, 7200, 255, 1); -- Black Dragon Egg (Area: 0)
+-- SELECT * FROM gameobject where id IN(177807);
+
+SET @OGUID := 75120; -- 75157
+DELETE FROM `gameobject` WHERE `guid` BETWEEN @OGUID AND @OGUID+45;
+INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES
+(@OGUID+0, 179784, 469, 1, 1, -7572.59, -1062.572, 449.1642, 0.5410506, 0, 0, 0, 1, 7200, 255, 1), -- Suppression Device (Area: 0)
+(@OGUID+1, 179784, 469, 1, 1, -7593.775, -1063.449, 449.1642, 0.4712385, 0, 0, 0, 1, 7200, 255, 1), -- Suppression Device (Area: 0)
+(@OGUID+2, 179784, 469, 1, 1, -7595.269, -1030.421, 449.1642, 0.3141584, 0, 0, 0, 1, 7200, 255, 1), -- Suppression Device (Area: 0)
+(@OGUID+3, 179784, 469, 1, 1, -7595.774, -1080.002, 449.1642, 0.5585039, 0, 0, 0, 1, 7200, 255, 1), -- Suppression Device (Area: 0)
+(@OGUID+4, 179784, 469, 1, 1, -7605.952, -1045.063, 449.1642, 0.6457717, 0, 0, 0, 1, 7200, 255, 1), -- Suppression Device (Area: 0)
+(@OGUID+5, 179784, 469, 1, 1, -7609.894, -1061.456, 449.1642, 0.4188786, 0, 0, 0, 1, 7200, 255, 1), -- Suppression Device (Area: 0)
+(@OGUID+6, 179784, 469, 1, 1, -7616.209, -997.0844, 440.2823, 0.2094394, 0, 0, 0, 1, 7200, 255, 1), -- Suppression Device (Area: 0)
+(@OGUID+7, 179784, 469, 1, 1, -7619.151, -1047.152, 449.1642, 0.5061446, 0, 0, 0, 1, 7200, 255, 1), -- Suppression Device (Area: 0)
+(@OGUID+8, 179784, 469, 1, 1, -7620.089, -1075.735, 449.1642, 0.4712385, 0, 0, 0, 1, 7200, 255, 1), -- Suppression Device (Area: 0)
+(@OGUID+9, 179784, 469, 1, 1, -7626.954, -981.3593, 440.0226, 0.157079, 0, 0, 0, 1, 7200, 255, 1), -- Suppression Device (Area: 0)
+(@OGUID+10, 179784, 469, 1, 1, -7627.983, -1095.305, 449.1642, 0.5410506, 0, 0, 0, 1, 7200, 255, 1), -- Suppression Device (Area: 0)
+(@OGUID+11, 179784, 469, 1, 1, -7629.779, -1061.484, 449.1642, 0.6283169, 0, 0, 0, 1, 7200, 255, 1), -- Suppression Device (Area: 0)
+(@OGUID+12, 179784, 469, 1, 1, -7630.286, -1005.49, 440.2624, 0.4014249, 0, 0, 0, 1, 7200, 255, 1), -- Suppression Device (Area: 0)
+(@OGUID+13, 179784, 469, 1, 1, -7637.638, -965.0227, 440.2754, 0.01745246, 0, 0, 0, 1, 7200, 255, 1), -- Suppression Device (Area: 0)
+(@OGUID+14, 179784, 469, 1, 1, -7637.933, -1081.127, 449.1642, 0.453785, 0, 0, 0, 1, 7200, 255, 1), -- Suppression Device (Area: 0)
+(@OGUID+15, 179784, 469, 1, 1, -7640.291, -991.3019, 440.2628, 0.453785, 0, 0, 0, 1, 7200, 255, 1), -- Suppression Device (Area: 0)
+(@OGUID+16, 179784, 469, 1, 1, -7642.733, -1015.651, 440.2449, 0.4712385, 0, 0, 0, 1, 7200, 255, 1), -- Suppression Device (Area: 0)
+(@OGUID+17, 179784, 469, 1, 1, -7647.777, -1066.966, 449.1642, 0.5585039, 0, 0, 0, 1, 7200, 255, 1), -- Suppression Device (Area: 0)
+(@OGUID+18, 179784, 469, 1, 1, -7650.901, -975.7917, 440.2633, 0.2268925, 0, 0, 0, 1, 7200, 255, 1), -- Suppression Device (Area: 0)
+(@OGUID+19, 179784, 469, 1, 1, -7651.322, -1103.534, 449.1642, 0.523598, 0, 0, 0, 1, 7200, 255, 1), -- Suppression Device (Area: 0)
+(@OGUID+20, 179784, 469, 1, 1, -7653.694, -999.9188, 439.9861, 0.5061446, 0, 0, 0, 1, 7200, 255, 1), -- Suppression Device (Area: 0)
+(@OGUID+21, 179784, 469, 1, 1, -7656.672, -1024.323, 440.2567, 0.5061446, 0, 0, 0, 1, 7200, 255, 1), -- Suppression Device (Area: 0)
+(@OGUID+22, 179784, 469, 1, 1, -7663.989, -1084.885, 449.1642, 0.6283169, 0, 0, 0, 1, 7200, 255, 1), -- Suppression Device (Area: 0)
+(@OGUID+23, 179784, 469, 1, 1, -7664.824, -984.0574, 440.2471, 0.3141584, 0, 0, 0, 1, 7200, 255, 1), -- Suppression Device (Area: 0)
+(@OGUID+24, 179784, 469, 1, 1, -7665.261, -1113.61, 449.1642, 0.523598, 0, 0, 0, 1, 7200, 255, 1), -- Suppression Device (Area: 0)
+(@OGUID+25, 179784, 469, 1, 1, -7667.542, -1008.341, 440.2592, 0.523598, 0, 0, 0, 1, 7200, 255, 1), -- Suppression Device (Area: 0)
+(@OGUID+26, 179784, 469, 1, 1, -7669.463, -1034.205, 440.244, 0.5410506, 0, 0, 0, 1, 7200, 255, 1), -- Suppression Device (Area: 0)
+(@OGUID+27, 179784, 469, 1, 1, -7677.631, -994.4258, 440.2595, 0.383971, 0, 0, 0, 1, 7200, 255, 1), -- Suppression Device (Area: 0)
+(@OGUID+28, 179784, 469, 1, 1, -7677.684, -1095.238, 449.1351, 0.6283169, 0, 0, 0, 1, 7200, 255, 1), -- Suppression Device (Area: 0)
+(@OGUID+29, 179784, 469, 1, 1, -7680.108, -1123.294, 449.1051, 0.523598, 0, 0, 0, 1, 7200, 255, 1), -- Suppression Device (Area: 0)
+(@OGUID+30, 179784, 469, 1, 1, -7680.508, -1018.701, 439.9826, 0.5585039, 0, 0, 0, 1, 7200, 255, 1), -- Suppression Device (Area: 0)
+(@OGUID+31, 179784, 469, 1, 1, -7686.851, -1047.039, 440.3709, 0.5585039, 0, 0, 0, 1, 7200, 255, 1), -- Suppression Device (Area: 0)
+(@OGUID+32, 179784, 469, 1, 1, -7691.257, -1002.378, 440.2438, 0.4188786, 0, 0, 0, 1, 7200, 255, 1), -- Suppression Device (Area: 0)
+(@OGUID+33, 179784, 469, 1, 1, -7691.966, -1105.405, 449.13, 0.6283169, 0, 0, 0, 1, 7200, 255, 1), -- Suppression Device (Area: 0)
+(@OGUID+34, 179784, 469, 1, 1, -7699.204, -1030.978, 440.5882, 0.5585039, 0, 0, 0, 1, 7200, 255, 1), -- Suppression Device (Area: 0)
+(@OGUID+35, 179784, 469, 1, 1, -7709.169, -1017.005, 440.4458, 0.4712385, 0, 0, 0, 1, 7200, 255, 1), -- Suppression Device (Area: 0)
+(@OGUID+36, 179784, 469, 1, 1, -7713.143, -1060.038, 445.1762, 5.096362, 0, 0, 0, 1, 7200, 255, 1), -- Suppression Device (Area: 0)
+(@OGUID+37, 179784, 469, 1, 1, -7716.096, -1077.452, 445.1762, 0.8726639, 0, 0, 0, 1, 7200, 255, 1), -- Suppression Device (Area: 0)
+(@OGUID+38, 176964, 469, 1, 1, -7639.43, -1083.943, 408.5284, 3.752462, 0, 0, 0.9537169, -0.3007059, 7200, 255, 0), -- Portcullis (Area: 0)
+(@OGUID+39, 179365, 469, 1, 1, -7568.426, -1031.59, 449.1086, 3.752462, 0, 0, 0.9537169, -0.3007059, 7200, 255, 1), -- Portcullis (Area: 0)
+(@OGUID+40, 176965, 469, 1, 1, -7552.37, -1022.984, 408.5284, 3.752462, 0, 0, 0.9537169, -0.3007059, 7200, 255, 1), -- Portcullis (Area: 0)
+(@OGUID+41, 179116, 469, 1, 1, -7506.288, -1043.155, 480.03, 0.6108655, 0, 0, 0.9537169, -0.3007059, 7200, 255, 1), -- Portcullis (Area: 0)
+(@OGUID+42, 176966, 469, 1, 1, -7488.173, -1150.542, 476.712, 0.6108655, 0, 0, 0.9537169, -0.3007059, 7200, 255, 0), -- Portcullis (Area: 0)
+(@OGUID+43, 179364, 469, 1, 1, -7531.224, -956.4108, 428.2516, 5.323256, 0, 0, 0.9537169, -0.3007059, 7200, 255, 1), -- Portcullis (Area: 0)
+(@OGUID+44, 179117, 469, 1, 1, -7464, -1103.549, 480.03, 0.6108655, 0, 0, 0.9537169, -0.3007059, 7200, 255, 1), -- Portcullis (Area: 0)
+(@OGUID+45, 179115, 469, 1, 1, -7455.243, -1051.711, 480.03, 2.18166, 0, 0, 0.9537169, -0.3007059, 7200, 255, 0); -- Portcullis (Area: 0)
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_24_02_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_24_02_world_misc.sql
new file mode 100644
index 00000000000..9468fd00b8b
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_24_02_world_misc.sql
@@ -0,0 +1,2 @@
+UPDATE `gameobject` SET `state`=1 WHERE `guid` IN (56162,56163); -- correct?
+DELETE FROM `linked_respawn` WHERE `guid` NOT IN (SELECT `guid` FROM `creature`);
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_25_00_world_player_factionchange_spells.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_25_00_world_player_factionchange_spells.sql
new file mode 100644
index 00000000000..ee50f3ea952
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_25_00_world_player_factionchange_spells.sql
@@ -0,0 +1,5 @@
+DELETE FROM `player_factionchange_spells` WHERE `alliance_id`=60118 AND `horde_id`=60119; -- Black War Bear
+DELETE FROM `player_factionchange_spells` WHERE `alliance_id`=59785 AND `horde_id`=59788; -- Black War Mammoth
+INSERT INTO `player_factionchange_spells` (`alliance_id`, `horde_id`) VALUES
+(60118, 60119), -- Black War Bear
+(59785, 59788); -- Black War Mammoth
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_25_00_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_25_00_world_sai.sql
new file mode 100644
index 00000000000..cd316bf4732
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_25_00_world_sai.sql
@@ -0,0 +1,106 @@
+-- The Sum is Greater than the Parts (13043)
+-- http://www.youtube.com/watch?v=dg84C1d-sxw
+
+SET @QUEST := 13043; -- The quest...Duh!
+SET @NPC_NERGELD := 30403; -- Nergeld
+SET @NPC_DR_TERRIBLE := 30404; -- Dr. Terrible
+SET @NPC_HOUND := 30432; -- Grimmr Hound
+SET @NPC_ASSAILANT := 30471; -- Vargul Assailant
+SET @AURA_ROOT := 59037; -- The Sum is Greater than the Parts: Nergeld's Freeze Anim
+SET @SPELL_DEATH_SIGNAL := 32067; -- The Sum is Greater than the Parts: Dr. Terrible's Death Signal
+SET @SPELL_MOUNT := 56699; -- Controlling Nergeld
+
+-- Remove random movement from Nergeld
+UPDATE `creature` SET `spawndist`=0,`MovementType`=0 WHERE `guid`=124127;
+DELETE FROM `creature_addon` WHERE `guid`=124127;
+
+UPDATE `creature_model_info` SET `combat_reach`=4.05 WHERE `modelid`=27102;
+
+UPDATE `creature_template` SET `AIName`='SmartAI',`spell1`=56746,`spell2`=56748,`spell3`=56747,`spell4`=60540,`speed_run`=0.992062866687775,`VehicleId`=236,`unit_flags`=256|32768/*256|512|32768*/,`npcflag`=0x1000000 WHERE `entry`=@NPC_NERGELD;
+UPDATE `creature_template` SET `faction_A`=974,`faction_H`=974,`unit_flags`=32768,`AIName`='SmartAI' WHERE `entry`=@NPC_HOUND;
+UPDATE `creature_template` SET `faction_A`=2116,`faction_H`=2116,`unit_flags`=32768,`AIName`='SmartAI' WHERE `entry`=@NPC_ASSAILANT;
+UPDATE `creature_template` SET `faction_A`=974,`faction_H`=974,`unit_flags`=32832,`AIName`='SmartAI' WHERE `entry`=@NPC_DR_TERRIBLE;
+
+DELETE FROM `creature_template_addon` WHERE `entry`=@NPC_NERGELD;
+INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`auras`) VALUES
+(@NPC_NERGELD,0,0x0,0x1,''); -- 59037 The Sum is Greater than the Parts: Nergeld's Freeze Anim
+
+DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId`=16 AND `SourceEntry`=@NPC_NERGELD) OR (`SourceTypeOrReferenceId`=13 AND `SourceEntry`=56747) OR (`SourceTypeOrReferenceId`=13 AND `SourceEntry`=56746) OR (`SourceTypeOrReferenceId`=18 AND `SourceEntry`=@SPELL_MOUNT) OR(`SourceTypeOrReferenceId`=13 AND `SourceEntry`=@SPELL_DEATH_SIGNAL);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorType`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(16,0,@NPC_NERGELD,0,0,23,0,4595,0,0,0,0,0,'','Dismount player when not in intended zone'),
+(13,1,56747,0,0,31,0,3,@NPC_ASSAILANT,0,0,0,0,'','Stomp can target Vargul Assailant'),
+(13,1,56747,0,1,31,0,3,@NPC_HOUND,0,0,0,0,'','Stomp can target Grimmr Hound'),
+(13,1,56747,0,2,31,0,3,@NPC_DR_TERRIBLE,0,0,0,0,'','Stomp can target Dr. Terrible'),
+(13,1,56746,0,0,31,0,3,@NPC_ASSAILANT,0,0,0,0,'','Punch can target Vargul Assailant'),
+(13,1,56746,0,1,31,0,3,@NPC_HOUND,0,0,0,0,'','Punch can target Grimmr Hound'),
+(13,1,56746,0,2,31,0,3,@NPC_DR_TERRIBLE,0,0,0,0,'','Punch can target Dr. Terrible'),
+(18,@NPC_NERGELD,@SPELL_MOUNT,0,0,28,0,@QUEST,0,0,1,0,0,'','Spellclick when quest not complete'),
+(18,@NPC_NERGELD,@SPELL_MOUNT,0,0,9,0,@QUEST,0,0,0,0,0,'','Spellclick when quest taken'),
+(13,2,@SPELL_DEATH_SIGNAL,0,1,31,0,3,@NPC_DR_TERRIBLE,0,0,0,0,'','Dr. Terrible''s Death Signal effect1 targets Dr. Terrible'),
+(13,1,@SPELL_DEATH_SIGNAL,0,1,31,0,3,@NPC_NERGELD,0,0,0,0,'','Dr. Terrible''s Death Signal effect0 targets Nergeld');
+
+
+
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid` IN (@NPC_NERGELD,@NPC_DR_TERRIBLE,@NPC_HOUND,@NPC_ASSAILANT) OR (`source_type`=9 AND `entryorguid`=@NPC_NERGELD*100);
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+-- Nergeld
+(@NPC_NERGELD,0,0,0,11,0,100,0,0,0,0,0,75,@AURA_ROOT,0,0,0,0,0,1,0,0,0,0,0,0,0,'On Respawn add root aura'),
+(@NPC_NERGELD,0,1,0,28,0,100,0,0,0,0,0,75,@AURA_ROOT,0,0,0,0,0,1,0,0,0,0,0,0,0,'On Passenger Removed add root aura'),
+(@NPC_NERGELD,0,2,3,27,0,100,0,0,0,0,0,28,@AURA_ROOT,0,0,0,0,0,1,0,0,0,0,0,0,0,'On Passenger Boarded remove root aura'),
+(@NPC_NERGELD,0,3,4,61,0,100,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'On Passenger Boarded Talk'),
+(@NPC_NERGELD,0,4,5,61,0,100,0,0,0,0,0,8,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'On Passenger Boarded Set State Passive'),
+(@NPC_NERGELD,0,5,0,61,0,100,0,0,0,0,0,80,@NPC_NERGELD*100,2,0,0,0,0,1,0,0,0,0,0,0,0,'On Passenger Boarded Run SCript'),
+(@NPC_NERGELD,0,6,7,8,0,100,0,@SPELL_DEATH_SIGNAL,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'On Spellhit Say'),
+(@NPC_NERGELD,0,7,0,61,0,100,0,0,0,0,0,37,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'On Spellhit Die'),
+-- Wave 1 05:22:46.000
+(@NPC_NERGELD*100,9,0,0,0,0,100,0,5000,5000,0,0,12,@NPC_ASSAILANT,2,300000,0,0,0,8,0,0,0,7993.895,3336.905,632.3955,0.1457695,'On Script - Spawn Vargul'),
+(@NPC_NERGELD*100,9,1,0,0,0,100,0,0,0,0,0,12,@NPC_ASSAILANT,2,300000,0,0,0,8,0,0,0,8003.723,3323.562,632.3955,0.6487832,'On Script - Spawn Vargul'),
+(@NPC_NERGELD*100,9,2,0,0,0,100,0,0,0,0,0,12,@NPC_ASSAILANT,2,300000,0,0,0,8,0,0,0,8026.945,3307.581,632.3955,1.482069,'On Script - Spawn Vargul'),
+(@NPC_NERGELD*100,9,3,0,0,0,100,0,0,0,0,0,12,@NPC_ASSAILANT,2,300000,0,0,0,8,0,0,0,8001.774,3306.377,632.3955,0.8634474,'On Script - Spawn Vargul'),
+(@NPC_NERGELD*100,9,4,0,0,0,100,0,0,0,0,0,12,@NPC_ASSAILANT,2,300000,0,0,0,8,0,0,0,7987.904,3308.895,632.3955,0.6805801,'On Script - Spawn Vargul'),
+(@NPC_NERGELD*100,9,5,0,0,0,100,0,0,0,0,0,12,@NPC_ASSAILANT,2,300000,0,0,0,8,0,0,0,8016.516,3318.92,632.3956,0.940311,'On Script - Spawn Vargul'),
+-- Wave 2 05:23:06.000
+(@NPC_NERGELD*100,9,6,0,0,0,100,0,30000,30000,0,0,12,@NPC_HOUND,2,300000,0,0,0,8,0,0,0,7996.656,3308.777,632.3955,0.7732307,'On Script - Spawn Grimmr Hound'),
+(@NPC_NERGELD*100,9,7,0,0,0,100,0,0,0,0,0,12,@NPC_HOUND,2,300000,0,0,0,8,0,0,0,8011.714,3315.362,632.3955,0.9011694,'On Script - Spawn Grimmr Hound'),
+(@NPC_NERGELD*100,9,8,0,0,0,100,0,0,0,0,0,12,@NPC_ASSAILANT,2,300000,0,0,0,8,0,0,0,8000.665,3317.225,632.3955,0.7105912,'On Script - Spawn Vargul'),
+(@NPC_NERGELD*100,9,9,0,0,0,100,0,0,0,0,0,12,@NPC_ASSAILANT,2,300000,0,0,0,8,0,0,0,8025.243,3313.552,632.3955,1.286934,'On Script - Spawn Vargul'),
+(@NPC_NERGELD*100,9,10,0,0,0,100,0,0,0,0,0,12,@NPC_ASSAILANT,2,300000,0,0,0,8,0,0,0,8007.712,3337.127,632.3955,0.4072851,'On Script - Spawn Vargul'),
+(@NPC_NERGELD*100,9,11,0,0,0,100,0,0,0,0,0,12,@NPC_ASSAILANT,2,300000,0,0,0,8,0,0,0,8009.925,3319.814,632.3955,0.8048422,'On Script - Spawn Vargul'),
+-- Wave 3 05:23:26.000
+(@NPC_NERGELD*100,9,12,0,0,0,100,0,30000,30000,0,0,12,@NPC_HOUND,2,300000,0,0,0,8,0,0,0,8021.793,3312.446,632.3955,1.130859,'On Script - Spawn Grimmr Hound'),
+(@NPC_NERGELD*100,9,13,0,0,0,100,0,0,0,0,0,12,@NPC_HOUND,2,300000,0,0,0,8,0,0,0,8001.362,3332.711,632.3955,0.4433513,'On Script - Spawn Grimmr Hound'),
+(@NPC_NERGELD*100,9,14,0,0,0,100,0,0,0,0,0,12,@NPC_HOUND,2,300000,0,0,0,8,0,0,0,7999.219,3302.518,632.3955,0.8723419,'On Script - Spawn Grimmr Hound'),
+(@NPC_NERGELD*100,9,15,0,0,0,100,0,0,0,0,0,12,@NPC_ASSAILANT,2,300000,0,0,0,8,0,0,0,8000.495,3345.769,632.3955,5.823889,'On Script - Spawn Vargul'),
+(@NPC_NERGELD*100,9,16,0,0,0,100,0,0,0,0,0,12,@NPC_ASSAILANT,2,300000,0,0,0,8,0,0,0,8001.774,3311.945,632.3955,0.797157,'On Script - Spawn Vargul'),
+(@NPC_NERGELD*100,9,17,0,0,0,100,0,0,0,0,0,12,@NPC_ASSAILANT,2,300000,0,0,0,8,0,0,0,8012.214,3325.824,632.3955,0.7376673,'On Script - Spawn Vargul'),
+-- Wave 4 05:23:47.000
+(@NPC_NERGELD*100,9,18,0,0,0,100,0,31000,31000,0,0,12,@NPC_DR_TERRIBLE,2,300000,0,1,0,8,0,0,0,7985.901,3296.679,632.4788,0.8377581,'On Script - Spawn Dr. Terrible'),
+(@NPC_NERGELD*100,9,19,0,0,0,100,0,0,0,0,0,12,@NPC_HOUND,2,300000,0,0,0,8,0,0,0,7982.587,3301.807,632.4788,0.6981317,'On Script - Spawn Grimmr Hound'),
+(@NPC_NERGELD*100,9,20,0,0,0,100,0,0,0,0,0,12,@NPC_HOUND,2,300000,0,0,0,8,0,0,0,7991.366,3293.512,632.4788,0.9075712,'On Script - Spawn Grimmr Hound'),
+-- Dr. Terrible
+(@NPC_DR_TERRIBLE,0,0,0,25,0,100,0,0,0,0,0,49,0,0,0,0,0,0,19,@NPC_NERGELD,0,0,0,0,0,0,'On spawn attack npc'),
+(@NPC_DR_TERRIBLE,0,1,0,4,0,100,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Say on Aggro'),
+(@NPC_DR_TERRIBLE,0,2,0,0,0,100,0,8000,8000,15000,19000,11,61143,0,0,0,0,0,2,0,0,0,0,0,0,0,'Cast Crazed Chop'),
+(@NPC_DR_TERRIBLE,0,3,0,0,0,100,0,10000,12000,28000,33000,11,61146,0,0,0,0,0,5,0,0,0,0,0,0,0,'Cast Slime Stream'),
+(@NPC_DR_TERRIBLE,0,4,5,2,0,100,1,0,45,0,0,11,31730,0,0,0,0,0,1,0,0,0,0,0,0,0,'Cast Heal at 45% HP'),
+(@NPC_DR_TERRIBLE,0,5,0,61,0,100,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Say Text'),
+(@NPC_DR_TERRIBLE,0,6,7,6,0,100,1,0,0,0,0,11,@SPELL_DEATH_SIGNAL,2,0,0,0,0,1,0,0,0,0,0,0,0,'Cast on Death'),
+(@NPC_DR_TERRIBLE,0,7,0,61,0,100,0,0,0,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Say on Death'),
+-- Grimmr Hound
+(@NPC_HOUND,0,0,0,25,0,100,0,0,0,0,0,49,0,0,0,0,0,0,19,@NPC_NERGELD,0,0,0,0,0,0,'On spawn attack npc'),
+(@NPC_HOUND,0,1,0,8,0,100,0,@SPELL_DEATH_SIGNAL,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'On Spellhit Despawn'),
+-- Vargul Assailant
+(@NPC_ASSAILANT,0,0,0,25,0,100,0,0,0,0,0,49,0,0,0,0,0,0,19,@NPC_NERGELD,0,0,0,0,0,0,'On spawn attack npc'),
+(@NPC_ASSAILANT,0,1,0,8,0,100,0,@SPELL_DEATH_SIGNAL,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'On Spellhit Despawn'),
+(@NPC_ASSAILANT,0,2,0,0,0,100,0,4500,5599,13400,15600,11,43410,0,0,0,0,0,2,0,0,0,0,0,0,0,'Cast Chop'),
+(@NPC_ASSAILANT,0,3,0,0,0,100,0,8000,9000,35000,37000,11,23262,0,0,0,0,0,1,0,0,0,0,0,0,0,'Cast Demoralize');
+
+
+-- NPC talk text insert
+DELETE FROM `creature_text` WHERE `entry` IN (@NPC_DR_TERRIBLE,@NPC_NERGELD);
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@NPC_DR_TERRIBLE,0,0,'WHO DARES?! I AM GOING TO FLAY THE FLESH FROM YOUR BONES EVEN IF I HAVE TO DESTROY NERGELD TO GET TO YOU!',14,0,100,0,0,0,'Dr. Terrible'),
+(@NPC_DR_TERRIBLE,1,0,'Now the nightmare''s real.Now Dr. Terrible is here.To make you quake with fear.To make the whole world kneel.And I won''t feel ...a thing',12,0,100,0,0,0,'Dr. Terrible'),
+(@NPC_DR_TERRIBLE,2,0,'I''LL RISE AGAIN AND WHEN I DO I WILL HAVE MY REVENGE!.',14,0,100,0,0,0,'Dr. Terrible to Nergeld'),
+(@NPC_NERGELD,0,0,'As you jump into Nergeld, the rotting flesh of the construct comes to life.',16,0,100,0,0,0,'Nergeld'),
+(@NPC_NERGELD,1,0,'%s falls to pieces.',16,0,100,0,0,0,'Nergeld to Dr. Terrible');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_25_01_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_25_01_world_sai.sql
new file mode 100644
index 00000000000..c2c54eebcc3
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_25_01_world_sai.sql
@@ -0,0 +1,118 @@
+SET @CGUID := 15;
+SET @GOGUID := 5196; -- Set by TDB, these are free guids.
+SET @KC_TARGET := 31773;
+SET @KC_TARGET2 := 32442;
+SET @PC_BUNNY := 32445;
+SET @SUMM_PC_BUNNY := 61026;
+SET @GREEN_SPLASH := 60059;
+SET @SPELL := 59655;
+SET @SPELL_DOSE := 59659;
+SET @GHOUL := 32178;
+SET @LIVING_PLAGUE := 32181;
+SET @SUMMON_LPLAGUE := 60058;
+SET @SUMMON_GHOUL := 60056;
+SET @RADIATION_AURA := 45797;
+SET @KILL_CREDIT := 31767;
+
+UPDATE `creature_template` SET `minlevel`=80, `maxlevel`=80, `faction_A`=21, `faction_H`=21, `speed_walk`=1.142857, `speed_run`=1, `mindmg`=286, `maxdmg`=322, `rangeattacktime`=2000, `unit_flags`=32768, `dynamicflags`=0, `Health_mod`=3 WHERE `entry`=32181; -- Living Plague
+UPDATE `creature_template` SET `minlevel`=80, `maxlevel`=80, `faction_A`=21, `faction_H`=21, `speed_walk`=1.428571, `speed_run`=4, `mindmg`=98, `maxdmg`=134, `rangeattacktime`=2000, `unit_flags`=32768, `dynamicflags`=0, `Health_mod`=4 WHERE `entry`=32178; -- Rampaging Ghoul
+UPDATE `creature_template` SET `speed_walk`=1.142857, `speed_run`=1, `rangeattacktime`=2000, `dynamicflags`=0 WHERE `entry`=32442; -- Plague Cauldron Target 02
+UPDATE `creature_template` SET `speed_walk`=1.142857, `speed_run`=1, `rangeattacktime`=2000, `dynamicflags`=0 WHERE `entry`=31773; -- Plague Cauldron Target
+UPDATE `creature_template` SET `modelid1`=21342, `modelid2`=0, `flags_extra`= 128 WHERE `entry`=@PC_BUNNY;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry` IN (@KC_TARGET,@KC_TARGET2,@PC_BUNNY,@LIVING_PLAGUE,@GHOUL);
+UPDATE `gameobject_template` SET `data1`=30 WHERE `entry`=300239;
+
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid` IN (@LIVING_PLAGUE,@GHOUL);
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(@GHOUL, 0, 0, 0, 0, 0, 100,0, 5000, 17000, 29000, 42000, 11, 54475, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Rampaging Ghoul - In Combat - Cast Rampage'),
+(@GHOUL, 0, 1, 0, 0, 0, 100,0, 2000, 14000, 25000, 34000, 11, 6016, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Rampaging Ghoul - In Combat - Cast Pierce Armor'),
+(@GHOUL, 0, 2, 3, 54, 0, 100, 0, 0, 0, 0, 0, 8, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Rampaging Ghoul - Just Summoned - Set React State Aggresive'),
+(@GHOUL, 0, 3, 4, 61, 0, 100, 0, 0, 0, 0, 0, 46, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Rampaging Ghoul - On Link - Move Forward'),
+(@GHOUL, 0, 4, 0, 61, 0, 100, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 'Rampaging Ghoul - On Link - Attack Hostile Random'),
+-- Living Plague AI
+(@LIVING_PLAGUE, 0, 1, 2, 54, 0, 100, 0, 0, 0, 0, 0, 8, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Living Plague - Just Summoned - Set React State Aggresive'),
+(@LIVING_PLAGUE, 0, 2, 3, 61, 0, 100, 0, 0, 0, 0, 0, 46, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Living Plague - On Link - Move Forward'),
+(@LIVING_PLAGUE, 0, 3, 0, 61, 0, 100, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 'Living Plague - On Link - Attack Hostile Random');
+
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@KC_TARGET;
+DELETE FROM `smart_scripts` WHERE `source_type`=9 AND `entryorguid` IN (@KC_TARGET*100);
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(@KC_TARGET, 0, 0, 1, 8, 0, 100, 0, @SPELL_DOSE, 0, 0, 0, 80, @KC_TARGET*100, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'KC Bunny - On spell hit - Trigger script'),
+(@KC_TARGET, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'KC Target - On Link - Say Text 0'),
+(@KC_TARGET, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 11, @RADIATION_AURA, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'KC Target - On Link - Aura Radiation'),
+(@KC_TARGET, 0, 3, 0, 38, 0, 100, 0, 1, 2, 0, 0, 28, @RADIATION_AURA, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'KC Target - On Data Set - Remove Aura'),
+(@KC_TARGET*100, 9, 0, 0, 0, 0, 100, 0, 4000, 4000, 4000, 4000, 11, @SUMM_PC_BUNNY, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,'KC Target - Script - Summon Bunny');
+
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@KC_TARGET2;
+DELETE FROM `smart_scripts` WHERE `source_type`=9 AND `entryorguid` IN (@KC_TARGET2*100);
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(@KC_TARGET2, 0, 0, 1, 8, 0, 100, 0, @SPELL_DOSE, 0, 0, 0, 80, @KC_TARGET*100, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'KC Bunny - On spell hit - Trigger script'),
+(@KC_TARGET2, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'KC Target - On Link - Say Text 0'),
+(@KC_TARGET2, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 11, @RADIATION_AURA, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'KC Target - On Link - Aura Radiation'),
+(@KC_TARGET2, 0, 3, 0, 38, 0, 100, 0, 1, 1, 0, 0, 28, @RADIATION_AURA, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'KC Target - On Data Set - Remove Aura'),
+(@KC_TARGET2*100, 9, 0, 0, 0, 0, 100, 0, 2000, 2000, 2000, 2000, 11, @SUMM_PC_BUNNY, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,'KC Target - Script - Summon Bunny');
+
+
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@PC_BUNNY;
+DELETE FROM `smart_scripts` WHERE `source_type`=9 AND `entryorguid` IN (@PC_BUNNY*100,@PC_BUNNY*100+1,@PC_BUNNY*100+2);
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(@PC_BUNNY, 0, 0, 1, 54, 0, 100, 0, 0, 0, 0, 0, 87, @PC_BUNNY*100, @PC_BUNNY*100+1, @PC_BUNNY*100+2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'PC Bunny - Just Summoned - Trigger script'),
+(@PC_BUNNY, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'PC Bunny - On Link - Say Text 0'),
+(@PC_BUNNY, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 11, @GREEN_SPLASH, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'PC Bunny - On Link - Cast cosmetic Green Splash'),
+-- First Action Event
+(@PC_BUNNY*100, 9, 1, 0, 0, 0, 100, 0, 2000, 2000, 2000, 2000, 11, @SUMMON_GHOUL, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,'PC Bunny - On Script - Summon Ghoul'),
+(@PC_BUNNY*100, 9, 2, 0, 0, 0, 100, 0, 1000, 1000, 1000, 1000, 11, @SUMMON_LPLAGUE, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,'PC Bunny - On Script - Summon Living Plague'),
+(@PC_BUNNY*100, 9, 3, 0, 0, 0, 100, 0, 1000, 1000, 1000, 1000, 11, @SUMMON_LPLAGUE, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,'PC Bunny - On Script - Summon Living Plague'),
+(@PC_BUNNY*100, 9, 4, 0, 0, 0, 100, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 19, @KC_TARGET2, 0, 0, 0, 0, 0, 0,'PC Bunny - On Script - Set Data 1 1'),
+(@PC_BUNNY*100, 9, 5, 0, 0, 0, 100, 0, 0, 0, 0, 0, 45, 1, 2, 0, 0, 0, 0, 19, @KC_TARGET, 0, 0, 0, 0, 0, 0,'PC Bunny - On Script - Set Data 1 2'),
+(@PC_BUNNY*100, 9, 6, 0, 0, 0, 100, 0, 1000, 1000, 1000, 1000, 41, 1000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,'PC Bunny - On Script - Despawn'),
+-- Third Action Event
+(@PC_BUNNY*100+2, 9, 1, 0, 0, 0, 100, 0, 1000, 1000, 1000, 1000, 11, @SUMMON_LPLAGUE, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,'PC Bunny - On Script - Summon Living Plague'),
+(@PC_BUNNY*100+2, 9, 2, 0, 0, 0, 100, 0, 1000, 1000, 1000, 1000, 11, @SUMMON_LPLAGUE, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,'PC Bunny - On Script - Summon Living Plague'),
+(@PC_BUNNY*100+2, 9, 3, 0, 0, 0, 100, 0, 1000, 1000, 1000, 1000, 11, @SUMMON_LPLAGUE, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,'PC Bunny - On Script - Summon Living Plague'),
+(@PC_BUNNY*100+2, 9, 4, 0, 0, 0, 100, 0, 1000, 1000, 1000, 1000, 11, @SUMMON_LPLAGUE, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,'PC Bunny - On Script - Summon Living Plague'),
+(@PC_BUNNY*100+2, 9, 5, 0, 0, 0, 100, 1, 10500, 10500, 10500, 10500, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,'PC Bunny - On Script - Say 1'),
+(@PC_BUNNY*100+2, 9, 6, 0, 0, 0, 100, 0, 2000, 2000, 2000, 2000, 11, @SUMMON_GHOUL, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,'PC Bunny - On Script - Summon Ghoul'),
+(@PC_BUNNY*100+2, 9, 7, 0, 0, 0, 100, 0, 1000, 1000, 1000, 1000, 11, @SUMMON_LPLAGUE, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,'PC Bunny - On Script - Summon Living Plague'),
+(@PC_BUNNY*100+2, 9, 8, 0, 0, 0, 100, 0, 1000, 1000, 1000, 1000, 11, @SUMMON_LPLAGUE, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,'PC Bunny - On Script - Summon Living Plague'),
+(@PC_BUNNY*100+2, 9, 9, 0, 0, 0, 100, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 19, @KC_TARGET2, 0, 0, 0, 0, 0, 0,'PC Bunny - On Script - Set Data 1 1'),
+(@PC_BUNNY*100+2, 9, 10, 0, 0, 0, 100, 0, 0, 0, 0, 0, 45, 1, 2, 0, 0, 0, 0, 19, @KC_TARGET, 0, 0, 0, 0, 0, 0,'PC Bunny - On Script - Set Data 1 2'),
+(@PC_BUNNY*100+2, 9, 11, 0, 0, 0, 100, 0, 1000, 1000, 1000, 1000, 41, 1000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,'PC Bunny - On Script - Despawn'),
+-- Second Action Event
+(@PC_BUNNY*100+1, 9, 0, 0, 0, 0, 100, 0, 7000, 7000, 7000, 7000, 33, @KILL_CREDIT, 0, 0, 0, 0, 0, 21, 50, 0, 0, 0, 0, 0, 0, 'KC Target - On spellhit - Give quest credit'),
+(@PC_BUNNY*100+1, 9, 1, 0, 0, 0, 100, 0, 1500, 1500, 1500, 1500, 1, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,'PC Bunny - On Script - Say 1'),
+(@PC_BUNNY*100+1, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 19, @KC_TARGET2, 0, 0, 0, 0, 0, 0,'PC Bunny - On Script - Set Data 1 1'),
+(@PC_BUNNY*100+1, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 45, 1, 2, 0, 0, 0, 0, 19, @KC_TARGET, 0, 0, 0, 0, 0, 0,'PC Bunny - On Script - Set Data 1 2'),
+(@PC_BUNNY*100+1, 9, 4, 0, 0, 0, 100, 0, 1000, 1000, 1000, 1000, 41, 1000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,'PC Bunny - On Script - Despawn');
+
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=59655;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(13, 1, 59655, 0, 1, 31, 0, 3, 31773, 0, 0, 0, 0, '', 'Neutralize Plague hits Plague Cauldron Target Bunny'),
+(13, 1, 59655, 0, 0, 31, 0, 3, 32442, 0, 0, 0, 0, '', 'Neutralize Plague hits Plague Cauldron Target Bunny');
+
+DELETE FROM `creature` WHERE `id` IN (31773,32442);
+INSERT INTO `creature` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `MovementType`) VALUES
+(@CGUID, 31773, 571, 1, 1, 6776.598, 1628.575, 392.1221, 4.729842, 120, 0, 0), -- Plague Cauldron Target (Area: Mord'rethar: The Death Gate)
+(@CGUID+1, 32442, 571, 1, 1, 6777.509, 1539.352, 392.1735, 1.623156, 120, 0, 0); -- Plague Cauldron Target 02 (Area: Mord'rethar: The Death Gate)
+
+DELETE FROM `gameobject` WHERE `id` IN (300239);
+INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES
+(@GOGUID, 300239, 571, 1, 1, 6776.6, 1628.57, 390.922, 5.39315, 0, 0, 0.430474, -0.902603, 300, 0, 1),
+(@GOGUID+1, 300239, 571, 1, 1, 6777.51, 1539.35, 390.874, 1.62316, 0, 0, 0.725376, 0.688353, 300, 0, 1);
+
+
+DELETE FROM `creature_template_addon` WHERE `entry` IN (31150,32442,@LIVING_PLAGUE,@GHOUL);
+INSERT INTO `creature_template_addon` (`entry`, `mount`, `bytes1`, `bytes2`, `auras`) VALUES
+(31150, 0, 0x0, 0x1, '50106'), --
+(32442, 0, 0x0, 0x1, ''),
+(32181, 0, 0x0, 0x1, '61587'), -- Living Plague - Living Plague
+(32178, 0, 0x0, 0x1, '58812'); -- Rampaging Ghoul - Ghoul Aura
+
+DELETE FROM `creature_text` WHERE `entry` IN (@KC_TARGET,@KC_TARGET2,@PC_BUNNY);
+INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`) VALUES
+(@PC_BUNNY, 0, 0, 'Something emerges from the cauldron!', 41, 0, 100, 0, 0, 0, 'Player Bunny'),
+(@PC_BUNNY, 1, 0, 'The cauldron continues to boil...', 41, 0, 100, 0, 0, 0, 'Player Bunny'),
+(@PC_BUNNY, 2, 0, 'Plague batch neutralized!', 41, 0, 100, 0, 0, 0, 'Player Bunny'),
+(@KC_TARGET, 0, 0, 'The plague cauldron begins to boil vigorously!', 41, 0, 100, 0, 0, 0, 'Plague Cauldron Target'),
+(@KC_TARGET2, 0, 0, 'The plague cauldron begins to boil vigorously!', 41, 0, 100, 0, 0, 0, 'Plague Cauldron Target 02');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_25_02_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_25_02_world_sai.sql
new file mode 100644
index 00000000000..c394f74b51f
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_25_02_world_sai.sql
@@ -0,0 +1,32 @@
+SET @ENTRY := 29732;
+SET @GOSSIP := 9891;
+SET @EAGLE := 29736;
+SET @DRAKE := 29753;
+
+UPDATE `creature_template` SET `VehicleId`=243,`InhabitType`=3,`AIName`= 'SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@ENTRY,0,0,1,62,0,100,0,@GOSSIP,1,0,0,11,56411,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Fjorlin Frostbrow - On gossip option 1 select - Cast 56411 on player'),
+(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Fjorlin Frostbrow - On gossip option 1 select - Close gossip');
+
+UPDATE `creature_template` SET `npcflag` = `npcflag`|16777217, `IconName`='vehichleCursor', `VehicleId`=216, `spell1`=55958, `spell2`=55936 WHERE `entry`=@EAGLE;
+DELETE FROM `npc_spellclick_spells` WHERE `npc_entry`=@EAGLE;
+INSERT INTO `npc_spellclick_spells` (`npc_entry`, `spell_id`, `cast_flags`, `user_type`) VALUES
+(@EAGLE,43671,1,0);
+
+DELETE FROM `creature_template_addon` WHERE entry = @EAGLE;
+INSERT INTO `creature_template_addon` (`entry`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES
+(@EAGLE,0,0,33554432,0,0,'55971');
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=@GOSSIP AND `SourceEntry`=1;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(15,@GOSSIP,1,0,9,12869,0,0,0,'','Show gossip option 1 if player has quest 12869');
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=17 AND `SourceEntry`IN (55958,55936);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorType`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(17,0,55958,0,0,31,1,3,@DRAKE,0,0,0,0,'','Stormbolt only hits Stormpeak Wyrm'),
+(17,0,55936,0,0,31,1,3,@DRAKE,0,0,0,0,'','Swoop only hits Stormpeak Wyrm');
+
+DELETE FROM `gossip_menu_option` WHERE `menu_id`=@GOSSIP AND `id`=1;
+INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`) VALUES
+(@GOSSIP,1,0, 'I am ready to join the battle against the wyrms. Do you have an eagle ready for me, Fjorlin?',1,1,0,0,0,0, '');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_25_03_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_25_03_world_misc.sql
new file mode 100644
index 00000000000..7b3b208dd15
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_25_03_world_misc.sql
@@ -0,0 +1,241 @@
+-- Add Missing Gossip from sniff
+DELETE FROM `gossip_menu` WHERE `entry`=6001 AND `text_id`=7154;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (6001,7154);
+
+-- Add some missing spawns to BRS
+SET @GUID := 20; -- 4 Guids required
+DELETE FROM `creature` WHERE `guid` BETWEEN @GUID AND @GUID+3;
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+(@GUID,10447,229,1,1,0,0,202.5113,-421.307,110.9865,3.124139,7200,0,0,1,0,0),
+(@GUID+1,10442,229,1,1,0,0,204.0151,-418.4425,110.9892,3.193953,7200,0,0,1,0,0),
+(@GUID+2,10442,229,1,1,0,0,203.1424,-423.9987,110.9864,3.071779,7200,0,0,1,0,0),
+(@GUID+3,10442,229,1,1,0,0,201.0076,-416.648,110.9738,3.228859,7200,0,0,1,0,0);
+
+-- Add some missing spawns to BWL
+SET @GUID := 61997; -- 3 Guids required
+DELETE FROM `creature` WHERE `guid` BETWEEN @GUID AND @GUID+3;
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+(@GUID,12458,469,1,1,0,0,-7663.987,-1021.786,440.242,3.124139,7200,0,0,1,0,2),
+(@GUID+1,12458,469,1,1,0,0,-7632.956,-996.5212,440.263,3.193953,7200,0,0,1,0,2),
+(@GUID+2,12458,469,1,1,0,0,-7639.315,-1088.736,449.1642,3.071779,7200,0,0,1,0,2);
+
+-- Fix walk speed for BWL npcs
+
+UPDATE `creature_template` SET `speed_walk`=2 WHERE `entry`=11981;
+UPDATE `creature_template` SET `speed_walk`=2 WHERE `entry`=11983;
+UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=12017;
+UPDATE `creature_template` SET `speed_walk`=0.888888 WHERE `entry`=12435;
+UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=12457;
+UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=12458;
+UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=12459;
+UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=12460;
+UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=12461;
+UPDATE `creature_template` SET `speed_walk`=0.888888 WHERE `entry`=12463;
+UPDATE `creature_template` SET `speed_walk`=0.888888 WHERE `entry`=12464;
+UPDATE `creature_template` SET `speed_walk`=0.888888 WHERE `entry`=12465;
+UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=12467;
+UPDATE `creature_template` SET `speed_walk`=0.888888 WHERE `entry`=12468;
+UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=12557;
+UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=13020;
+UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=13996;
+UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14020;
+UPDATE `creature_template` SET `speed_walk`=1.11111 WHERE `entry`=14022;
+UPDATE `creature_template` SET `speed_walk`=1.11111 WHERE `entry`=14023;
+UPDATE `creature_template` SET `speed_walk`=1.11111 WHERE `entry`=14024;
+UPDATE `creature_template` SET `speed_walk`=1.11111 WHERE `entry`=14025;
+UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14262;
+UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14263;
+UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14264;
+UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14401;
+UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14456;
+UPDATE `creature_template` SET `speed_walk`=2 WHERE `entry`=14601;
+
+-- Delete bad spawn in BWL
+
+DELETE FROM `creature` WHERE `guid`=85787;
+
+-- some pathing for BWL
+
+-- Pathing for Blackwing Taskmaster Entry: 12458
+SET @NPC := @GUID;
+SET @PATH := @NPC * 10;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,-7663.987,-1021.786,440.242,0,0,0,0,100,0),
+(@PATH,2,-7660.584,-1033.68,440.1774,0,0,0,0,100,0),
+(@PATH,3,-7672.197,-1040.59,440.1905,0,0,0,0,100,0),
+(@PATH,4,-7677.878,-1033.48,439.9819,0,0,0,0,100,0),
+(@PATH,5,-7682.595,-1022.212,439.9823,0,0,0,0,100,0),
+(@PATH,6,-7692.392,-1018.374,440.2688,0,0,0,0,100,0),
+(@PATH,7,-7700.767,-1021.952,440.5112,0,0,0,0,100,0),
+(@PATH,8,-7705.208,-1015.368,440.3909,0,0,0,0,100,0),
+(@PATH,9,-7705.208,-1015.368,440.3909,0,0,0,0,100,0),
+(@PATH,10,-7700.767,-1021.952,440.5112,0,0,0,0,100,0),
+(@PATH,11,-7692.392,-1018.374,440.2688,0,0,0,0,100,0),
+(@PATH,12,-7682.595,-1022.212,439.9823,0,0,0,0,100,0),
+(@PATH,13,-7677.878,-1033.48,439.9819,0,0,0,0,100,0),
+(@PATH,14,-7672.197,-1040.59,440.1905,0,0,0,0,100,0),
+(@PATH,15,-7660.584,-1033.68,440.1774,0,0,0,0,100,0),
+(@PATH,16,-7663.987,-1021.786,440.242,0,0,0,0,100,0),
+(@PATH,17,-7667.698,-1013.725,440.2188,0,0,0,0,100,0),
+(@PATH,18,-7674.316,-1009.231,440.1985,0,0,0,0,100,0),
+(@PATH,19,-7674.749,-1001.641,440.1816,0,0,0,0,100,0),
+(@PATH,20,-7682.151,-1002.882,439.9836,0,0,0,0,100,0),
+(@PATH,21,-7691.953,-996.8887,440.1367,0,0,0,0,100,0),
+(@PATH,22,-7698.791,-993.4288,440.0823,0,0,0,0,100,0),
+(@PATH,23,-7700.935,-1000.517,440.1191,0,0,0,0,100,0),
+(@PATH,24,-7704.313,-1004.795,440.1128,0,0,0,0,100,0),
+(@PATH,25,-7699.01,-1015.984,440.3897,0,0,0,0,100,0),
+(@PATH,26,-7696.855,-1024.059,440.4334,0,0,0,0,100,0),
+(@PATH,27,-7690.041,-1030.21,440.3844,0,0,0,0,100,0),
+(@PATH,28,-7683.866,-1038.302,440.3743,0,0,0,0,100,0),
+(@PATH,29,-7679.78,-1047.461,440.1281,0,0,0,0,100,0),
+(@PATH,30,-7695.097,-1052.926,440.6745,0,0,0,0,100,0),
+(@PATH,31,-7711.689,-1063.992,445.1763,0,0,0,0,100,0),
+(@PATH,32,-7711.689,-1063.992,445.1763,0,0,0,0,100,0),
+(@PATH,33,-7695.097,-1052.926,440.6745,0,0,0,0,100,0),
+(@PATH,34,-7679.78,-1047.461,440.1281,0,0,0,0,100,0),
+(@PATH,35,-7683.866,-1038.302,440.3743,0,0,0,0,100,0),
+(@PATH,36,-7690.041,-1030.21,440.3844,0,0,0,0,100,0),
+(@PATH,37,-7696.855,-1024.059,440.4334,0,0,0,0,100,0),
+(@PATH,38,-7699.01,-1015.984,440.3897,0,0,0,0,100,0),
+(@PATH,39,-7704.313,-1004.795,440.1128,0,0,0,0,100,0),
+(@PATH,40,-7700.935,-1000.517,440.1191,0,0,0,0,100,0),
+(@PATH,41,-7698.791,-993.4288,440.0823,0,0,0,0,100,0),
+(@PATH,42,-7691.953,-996.8887,440.1367,0,0,0,0,100,0),
+(@PATH,43,-7682.151,-1002.882,439.9836,0,0,0,0,100,0),
+(@PATH,44,-7674.749,-1001.641,440.1816,0,0,0,0,100,0),
+(@PATH,45,-7674.316,-1009.231,440.1985,0,0,0,0,100,0),
+(@PATH,46,-7667.698,-1013.725,440.2188,0,0,0,0,100,0);
+-- 0xF13030AA0000B535 .go -7663.987 -1021.786 440.242
+
+-- Pathing for Blackwing Taskmaster Entry: 12458
+SET @NPC := @GUID+1;
+SET @PATH := @NPC * 10;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,-7632.956,-996.5212,440.263,0,0,0,0,100,0),
+(@PATH,2,-7626.135,-996.6401,440.2635,0,0,0,0,100,0),
+(@PATH,3,-7619.718,-993.6684,440.0176,0,0,0,0,100,0),
+(@PATH,4,-7614.898,-986.8362,440.0524,0,0,0,0,100,0),
+(@PATH,5,-7619.713,-975.4172,440.2763,0,0,0,0,100,0),
+(@PATH,6,-7626.255,-967.6956,440.3156,0,0,0,0,100,0),
+(@PATH,7,-7634.491,-969.407,440.0258,0,0,0,0,100,0),
+(@PATH,8,-7637.204,-978.4598,439.993,0,0,0,0,100,0),
+(@PATH,9,-7649.554,-984.3552,440.2628,0,0,0,0,100,0),
+(@PATH,10,-7661.772,-988.5689,439.9864,0,0,0,0,100,0),
+(@PATH,11,-7658.341,-1002.132,439.9857,0,0,0,0,100,0),
+(@PATH,12,-7647.332,-1011.346,439.9858,0,0,0,0,100,0),
+(@PATH,13,-7637.399,-1010.427,439.9867,0,0,0,0,100,0),
+(@PATH,14,-7636.273,-1000.11,440.2625,0,0,0,0,100,0),
+(@PATH,15,-7622.676,-987.7399,440.0219,0,0,0,0,100,0),
+(@PATH,16,-7625.999,-977.4044,440.0362,0,0,0,0,100,0),
+(@PATH,17,-7649.094,-972.2944,440.2316,0,0,0,0,100,0),
+(@PATH,18,-7644.41,-979.6061,440.2635,0,0,0,0,100,0),
+(@PATH,19,-7634.969,-989.9937,440.2634,0,0,0,0,100,0),
+(@PATH,20,-7624.835,-986.701,440.0168,0,0,0,0,100,0),
+(@PATH,21,-7620.448,-985.0109,440.037,0,0,0,0,100,0),
+(@PATH,22,-7610.641,-984.5477,440.2049,0,0,0,0,100,0),
+(@PATH,23,-7595.672,-988.9937,440.0914,0,0,0,0,100,0),
+(@PATH,24,-7595.672,-988.9937,440.0914,0,0,0,0,100,0),
+(@PATH,25,-7610.641,-984.5477,440.2049,0,0,0,0,100,0),
+(@PATH,26,-7620.448,-985.0109,440.037,0,0,0,0,100,0),
+(@PATH,27,-7624.835,-986.701,440.0168,0,0,0,0,100,0),
+(@PATH,28,-7634.969,-989.9937,440.2634,0,0,0,0,100,0),
+(@PATH,29,-7644.41,-979.6061,440.2635,0,0,0,0,100,0),
+(@PATH,30,-7649.094,-972.2944,440.2316,0,0,0,0,100,0),
+(@PATH,31,-7625.999,-977.4044,440.0362,0,0,0,0,100,0),
+(@PATH,32,-7622.676,-987.7399,440.0219,0,0,0,0,100,0),
+(@PATH,33,-7636.273,-1000.11,440.2625,0,0,0,0,100,0),
+(@PATH,34,-7637.399,-1010.427,439.9867,0,0,0,0,100,0),
+(@PATH,35,-7647.332,-1011.346,439.9858,0,0,0,0,100,0),
+(@PATH,36,-7658.341,-1002.132,439.9857,0,0,0,0,100,0),
+(@PATH,37,-7661.772,-988.5689,439.9864,0,0,0,0,100,0),
+(@PATH,38,-7649.554,-984.3552,440.2628,0,0,0,0,100,0),
+(@PATH,39,-7637.204,-978.4598,439.993,0,0,0,0,100,0),
+(@PATH,40,-7634.491,-969.407,440.0258,0,0,0,0,100,0),
+(@PATH,41,-7626.357,-967.7826,440.0594,0,0,0,0,100,0),
+(@PATH,42,-7619.713,-975.4172,440.2763,0,0,0,0,100,0),
+(@PATH,43,-7614.898,-986.8362,440.0524,0,0,0,0,100,0),
+(@PATH,44,-7619.718,-993.6684,440.0176,0,0,0,0,100,0),
+(@PATH,45,-7626.135,-996.6401,440.2635,0,0,0,0,100,0),
+(@PATH,46,-7632.956,-996.5212,440.263,0,0,0,0,100,0),
+(@PATH,47,-7653.352,-993.4436,439.9867,0,0,0,0,100,0),
+(@PATH,48,-7653.352,-993.4436,439.9867,0,0,0,0,100,0);
+-- 0xF13030AA0000B53D .go -7632.956 -996.5212 440.263
+
+-- Pathing for Blackwing Taskmaster Entry: 12458
+SET @NPC := @GUID+2;
+SET @PATH := @NPC * 10;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,-7639.315,-1088.736,449.1642,0,0,0,0,100,0),
+(@PATH,2,-7644.75,-1097.218,449.1642,0,0,0,0,100,0),
+(@PATH,3,-7651.393,-1110.778,449.193,0,0,0,0,100,0),
+(@PATH,4,-7661.635,-1091.063,449.1826,0,0,0,0,100,0),
+(@PATH,5,-7672.317,-1084.581,449.166,0,0,0,0,100,0),
+(@PATH,6,-7678.168,-1087.581,449.1542,0,0,0,0,100,0),
+(@PATH,7,-7671.085,-1100.425,449.1617,0,0,0,0,100,0),
+(@PATH,8,-7665.083,-1108.27,449.1694,0,0,0,0,100,0),
+(@PATH,9,-7658.763,-1114.884,449.1781,0,0,0,0,100,0),
+(@PATH,10,-7670.01,-1119.684,449.1523,0,0,0,0,100,0),
+(@PATH,11,-7680.338,-1118.28,449.134,0,0,0,0,100,0),
+(@PATH,12,-7687.568,-1104.841,449.1463,0,0,0,0,100,0),
+(@PATH,13,-7693.229,-1096.283,449.1507,0,0,0,0,100,0),
+(@PATH,14,-7701.18,-1089.753,449.1177,0,0,0,0,100,0),
+(@PATH,15,-7712.01,-1073.58,445.1763,0,0,0,0,100,0),
+(@PATH,16,-7701.18,-1089.753,449.1177,0,0,0,0,100,0),
+(@PATH,17,-7693.229,-1096.283,449.1507,0,0,0,0,100,0),
+(@PATH,18,-7687.568,-1104.841,449.1463,0,0,0,0,100,0),
+(@PATH,19,-7680.338,-1118.28,449.134,0,0,0,0,100,0),
+(@PATH,20,-7670.01,-1119.684,449.1523,0,0,0,0,100,0),
+(@PATH,21,-7658.763,-1114.884,449.1781,0,0,0,0,100,0),
+(@PATH,22,-7665.083,-1108.27,449.1694,0,0,0,0,100,0),
+(@PATH,23,-7671.085,-1100.425,449.1617,0,0,0,0,100,0),
+(@PATH,24,-7678.168,-1087.581,449.1542,0,0,0,0,100,0),
+(@PATH,25,-7672.317,-1084.581,449.166,0,0,0,0,100,0),
+(@PATH,26,-7661.635,-1091.063,449.1826,0,0,0,0,100,0),
+(@PATH,27,-7651.393,-1110.778,449.193,0,0,0,0,100,0),
+(@PATH,28,-7644.75,-1097.218,449.1642,0,0,0,0,100,0);
+-- 0xF13030AA0000B540 .go -7639.315 -1088.736 449.1642
+
+-- Pathing for Blackwing Spellbinder Entry: 12457
+SET @NPC := 85758;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-7446.97,`position_y`=-945.069,`position_z`=464.9834 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,-7446.97,-945.069,464.9834,0,0,0,0,100,0),
+(@PATH,2,-7449.199,-935.9932,464.9834,0,0,0,0,100,0),
+(@PATH,3,-7453.252,-931.2498,464.9834,0,0,0,0,100,0),
+(@PATH,4,-7463.244,-933.8245,464.9834,0,7000,0,0,100,0),
+(@PATH,5,-7456.518,-929.4488,464.9834,0,0,0,0,100,0),
+(@PATH,6,-7451.187,-934.4731,464.9834,0,0,0,0,100,0),
+(@PATH,7,-7440.787,-950.2525,464.9834,0,19000,0,0,100,0),
+(@PATH,8,-7437.717,-955.0467,464.9747,0,0,0,0,100,0),
+(@PATH,9,-7443.361,-947.8978,464.9834,0,12000,0,0,100,0);
+-- 0xF13030A90000B57B .go -7446.97 -945.069 464.9834
+
+-- Pathing for Death Talon Overseer Entry: 12461
+SET @NPC := 84557;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-7513.689,`position_y`=-1048.273,`position_z`=449.242 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,-7513.689,-1048.273,449.242,0,0,0,0,100,0),
+(@PATH,2,-7502.118,-1040.439,449.242,0,0,0,0,100,0),
+(@PATH,3,-7492.288,-1033.455,449.242,0,0,0,0,100,0),
+(@PATH,4,-7502.118,-1040.439,449.242,0,0,0,0,100,0),
+(@PATH,5,-7513.689,-1048.273,449.242,0,0,0,0,100,0),
+(@PATH,6,-7525.79,-1057.795,449.242,0,0,0,0,100,0);
+-- 0xF13030AD0000B58D .go -7513.689 -1048.273 449.242
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_25_04_world_item_template.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_25_04_world_item_template.sql
new file mode 100644
index 00000000000..215d0583d53
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_25_04_world_item_template.sql
@@ -0,0 +1 @@
+UPDATE `item_template` SET `PageText`=3092 WHERE `entry`=37540;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_25_05_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_25_05_world_misc.sql
new file mode 100644
index 00000000000..378b362aa83
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_25_05_world_misc.sql
@@ -0,0 +1,12 @@
+DELETE FROM `areatrigger_scripts` WHERE `entry` IN (2046,2026);
+INSERT INTO `areatrigger_scripts` (`entry`,`ScriptName`) VALUES
+(2046, 'at_dragonspire_hall'),
+(2026, 'at_blackrock_stadium');
+
+-- Warchief Rend Blackhand text
+SET @REND := 10429;
+DELETE FROM `creature_text` WHERE `entry` IN (@REND);
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@REND,0,0,"Impossible!",14,0,100,22,0,0,'Warchief Rend Blackhand'),
+(@REND,1,0,"With pleasure...",14,0,100,0,0,0,'Warchief Rend Blackhand'),
+(@REND,2,0,"%s is knocked off his drake!",16,0,100,0,0,0,'Warchief Rend Blackhand');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_25_06_world_creature_template.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_25_06_world_creature_template.sql
new file mode 100644
index 00000000000..709776de6c4
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_25_06_world_creature_template.sql
@@ -0,0 +1,2 @@
+UPDATE `creature_template` SET `minlevel`=61, `maxlevel`=61, `faction_A`=103, `faction_H`=103, `unit_flags`=`unit_flags`|33555200 WHERE `entry`=14081;
+UPDATE `creature_template` SET `unit_flags`=`unit_flags`|256|512 WHERE `entry`=10429;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_25_07_world_creature_text.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_25_07_world_creature_text.sql
new file mode 100644
index 00000000000..dc7ec7f563e
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_25_07_world_creature_text.sql
@@ -0,0 +1,21 @@
+-- Text for Lord Victor Nefarius from sniff
+SET @VICTOR := 10162;
+DELETE FROM `creature_text` WHERE `entry` IN (@VICTOR);
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+-- Lord Victor Nefarius texts UBRS
+(@VICTOR,0,0,"Excellent... it would appear as if the meddlesome insects have arrived just in time to feed my legion. Welcome, mortals!",14,0,100,22,0,0,'Lord Victor Nefarius (UBRS)'),
+(@VICTOR,1,0,"Let not even a drop of their blood remain upon the arena floor, my children. Feast on their souls!",14,0,100,22,0,0,'Lord Victor Nefarius (UBRS)'),
+(@VICTOR,2,0,"Foolsss... Kill the one in the dress!",14,0,100,22,0,0,'Lord Victor Nefarius (UBRS)'),
+(@VICTOR,3,0,"Inconceivable!",14,0,100,22,0,0,'Lord Victor Nefarius (UBRS)'),
+(@VICTOR,4,0,"Your efforts will prove fruitless. None shall stand in our way!",14,0,100,22,0,0,'Lord Victor Nefarius (UBRS)'),
+(@VICTOR,5,0,"Do not force my hand, children! I shall use your hides to line my boots.",14,0,100,22,0,0,'Lord Victor Nefarius (UBRS)'),
+(@VICTOR,6,0,"Use the freezing breath, imbecile!",14,0,100,22,0,0,'Lord Victor Nefarius (UBRS)'),
+(@VICTOR,7,0,"THIS CANNOT BE!!! Rend, deal with these insects.",14,0,100,0,0,0,'Lord Victor Nefarius (UBRS)'),
+(@VICTOR,8,0,"The Warchief shall make quick work of you, mortals. Prepare yourselves!",14,0,100,25,0,0,'Lord Victor Nefarius (UBRS)'),
+(@VICTOR,9,0,"Taste in my power!",14,0,100,0,0,0,'Lord Victor Nefarius (UBRS)'),
+(@VICTOR,10,0,"Your victory shall be short lived. The days of both the Alliance and Horde are coming to an end! The next time we meet shall be the last.",14,0,100,5,0,0,'Lord Victor Nefarius (UBRS)'),
+(@VICTOR,11,0,"The mortals have fallen! The new age of the Blackrock legion is at hand!",14,0,100,22,0,0,'Lord Victor Nefarius (UBRS)'),
+-- Lord Victor Nefarius texts BWL
+(@VICTOR,12,0,"In this world where time is your enemy, it is my greatest ally. This grand game of life that you think you play in fact plays you. To that I say...",14,0,100,1,0,0,'Lord Victor Nefarius SAY_GAMESBEGIN_1 (BWL)'),
+(@VICTOR,13,0,"Let the games begin!",14,0,100,22,0,8280,'Lord Victor Nefarius SAY_GAMESBEGIN_2 (BWL)'),
+(@VICTOR,14,0,"Ah, the heroes. You are persistent, aren't you. Your allied attempted to match his power against mine, and had to pay the price. Now he shall serve me, by slaughtering you. Get up, little red wyrm...and destroy them!",14,0,100,23,0,8279,'Lord Victor Nefarius SAY_VAEL_INTRO (BWL)');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_26_00_world_conditions.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_26_00_world_conditions.sql
new file mode 100644
index 00000000000..bb1467d7bfe
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_26_00_world_conditions.sql
@@ -0,0 +1,4 @@
+-- Add Gossip Menu conditions for Agnetta Tyrsdottar
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (15) AND `SourceGroup` IN (9874);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(15,9874,0,0,28,12969,0,0,1,0,'','Agnetta Tyrsdottar - Show gossip option only if quest is not complete');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_26_01_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_26_01_world_misc.sql
new file mode 100644
index 00000000000..2e54cb9497e
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_26_01_world_misc.sql
@@ -0,0 +1,39 @@
+-- Add gossip id to Frostborn Scout
+UPDATE `creature_template` SET `gossip_menu_id`=9841 WHERE `entry`=29811;
+-- Add Missing Gossip for Frostborn Scout
+DELETE FROM `gossip_menu` WHERE `entry`=9841 AND `text_id`=13611;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9841,13611);
+DELETE FROM `gossip_menu` WHERE `entry`=9842 AND `text_id`=13612;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9842,13612);
+DELETE FROM `gossip_menu` WHERE `entry`=9843 AND `text_id`=13613;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9843,13613);
+DELETE FROM `gossip_menu` WHERE `entry`=9844 AND `text_id`=13614;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9844,13614);
+-- Add Any Missing Gossip Option for Frostborn Scout
+DELETE FROM `gossip_menu_option` WHERE menu_id IN (9841,9842,9843);
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`)VALUES
+(9841,0,0,"Are you okay? I''ve come TO take you back TO Frosthold IF you can stand.",1,1,9842,0,0,0,''),
+(9842,0,0,"I''m sorry that I didn''t get here sooner. What happened?",1,1,9843,0,0,0,''),
+(9843,0,0,"I''ll go get SOME help. Hang IN there.",1,1,9844,0,0,0,'');
+-- Add Gossip option condition
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (15) AND `SourceGroup` IN (9841);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(15,9841,0,0,28,12864,0,0,1,0,'','Agnetta Tyrsdottar - Show gossip option only if quest "Missing scouts" is not complete');
+
+-- Frostborn Scout SAI for Quest: Missing scouts
+SET @ENTRY := 29647;
+UPDATE `creature_template` SET `AIName`= 'SmartAI',`ScriptName`= '' WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@ENTRY,0,0,1,62,0,100,0,9843,0,0,0,15,12864,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Frostborn Scout - On Gossip Option Select - Give quest credit for Quest: Missing scouts');
+
+-- Agnetta_Tyrsdottar SAI Quest: Is That Your Goblin?
+SET @ENTRY := 30154;
+UPDATE `creature_template` SET `AIName`= 'SmartAI',`ScriptName`= '' WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@ENTRY,0,0,1,62,0,100,0,9874,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Agnetta_Tyrsdottar - On Gossip Option Select - Close Gossip Window'),
+(@ENTRY,0,1,2,61,0,100,0,0,0,0,0,2,45,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Agnetta_Tyrsdottar - On Gossip Option Select - Set Faction'),
+(@ENTRY,0,2,3,61,0,100,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Agnetta_Tyrsdottar - On Gossip Option Select - Say 0'),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,49,0,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Agnetta_Tyrsdottar - On Gossip Option Select - Attack Envoker'),
+(@ENTRY,0,4,0,25,0,100,0,0,0,0,0,2,2109,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Agnetta_Tyrsdottar - On Reset - Set faction');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_26_02_world_gossip.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_26_02_world_gossip.sql
new file mode 100644
index 00000000000..56c41e18b38
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_26_02_world_gossip.sql
@@ -0,0 +1,9 @@
+-- Add Any Missing Gossip Option for Injured Goblin Miner
+DELETE FROM `gossip_menu_option` WHERE menu_id IN (9859);
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`)VALUES
+(9859,0,0,"I am ready, lets get you out of here.",1,1,0,0,0,0,'');
+
+-- Add Gossip option condition
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (15) AND `SourceGroup` IN (9859);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(15,9859,0,0,28,12832,0,0,1,0,'','Injured Goblin Miner - Show gossip option only if quest "Bitter Departure" is not complete');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_26_03_world_creature_template.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_26_03_world_creature_template.sql
new file mode 100644
index 00000000000..dae5f5869c3
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_26_03_world_creature_template.sql
@@ -0,0 +1,2 @@
+-- Missing data for Embeerseer
+UPDATE `creature_template` SET `faction_A`=40, `faction_H`=40, `unit_flags`=`unit_flags`|256|33554432 WHERE `entry`=9816;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_29_00_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_29_00_world_misc.sql
new file mode 100644
index 00000000000..175f37041e2
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_29_00_world_misc.sql
@@ -0,0 +1,14 @@
+SET @ENTRY = 24918;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY;
+UPDATE `creature_template` SET `AIName`='SmartAI',`ScriptName`='' WHERE `entry`=@ENTRY;
+
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
+INSERT INTO `smart_scripts`(`entryorguid`,`id`,`event_type`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`target_type`,`comment`) VALUES
+(@ENTRY,0,0,4000,6000,7000,9000,11,14873,0,2,'Felblood Initiate - Cast Sinister Strike'),
+(@ENTRY,1,0,17000,22000,20000,26000,11,29098,1,2,'Felblood Initiate - Cast Bitter Withdrawal'),
+(@ENTRY,2,0,8000,12000,18000,22000,11,35871,1,2,'Felblood Initiate - Cast Spellbreaker'),
+(@ENTRY,3,8,44937,0,0,0,36,24955,1,1,'Felblood Initiate - Changes Template to Emaciated Felblood After Using Fel Siphon (Quest: 11515)');
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceGroup`=4 AND `SourceEntry`=@ENTRY AND `SourceId`=0;
+INSERT INTO `conditions`(`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ConditionTarget`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`NegativeCondition`,`Comment`) VALUE
+(22,4,@ENTRY,0,1,31,3,24955,1,'Felblood Initiate may not already be transformed to template entry 24955 when trying to update template to 24955');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_29_01_world_creature_addon.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_29_01_world_creature_addon.sql
new file mode 100644
index 00000000000..e7ec3a48752
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_29_01_world_creature_addon.sql
@@ -0,0 +1,10 @@
+DELETE FROM `creature_template_addon` WHERE `entry`=17975;
+DELETE FROM `creature_addon` WHERE `guid`=82987;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
+(82987,829870,0,0,1,0,''); -- Converted from c_t_a, works on both normal and heroic entry
+
+-- allow mounting inside Black Temple (outdoor areas)
+UPDATE `instance_template` SET `allowMount`=1 WHERE `map`=564;
+
+-- fix for issue #9997 by Exodius
+UPDATE `spell_script_names` SET `spell_id`=28441 WHERE `spell_id`=28414 AND `ScriptName`='spell_item_ashbringer';
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_29_02_world_creature_addon.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_29_02_world_creature_addon.sql
new file mode 100644
index 00000000000..c8ee431909b
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_29_02_world_creature_addon.sql
@@ -0,0 +1,4 @@
+DELETE FROM `creature_template_addon` WHERE `entry`=17976;
+DELETE FROM `creature_addon` WHERE `guid`=82986;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
+(82986,829860,0,0,1,0,'19818'); -- Converted from c_t_a, works on both normal and heroic entry
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_29_03_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_29_03_world_misc.sql
new file mode 100644
index 00000000000..db9a7525517
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_29_03_world_misc.sql
@@ -0,0 +1,3 @@
+UPDATE `smart_scripts` SET `event_type`=37 WHERE `entryorguid` IN (9818,9817) AND `id`=0 AND `source_type`=0;
+UPDATE `smart_scripts` SET `event_type`=61 WHERE ((`entryorguid`=10817 AND `id`=9) OR (`entryorguid`= 1399 AND `id`=3)) AND `source_type`=0;
+UPDATE `smart_scripts` SET `link`=11 WHERE `entryorguid`=314 AND `id`=10 AND `source_type`=0;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_00_world_waypoints.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_00_world_waypoints.sql
new file mode 100644
index 00000000000..f2a4c58fcf8
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_00_world_waypoints.sql
@@ -0,0 +1,42 @@
+-- Pathing for Lord Victor Nefarius Entry: 10162
+SET @PATH := 1379670;
+DELETE FROM `waypoint_data` WHERE `id` IN (@PATH,@PATH+1,@PATH+2);
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,168.7847,-444.8676,121.9753,0,0,0,0,100,0),
+(@PATH,2,159.7806,-444.8137,121.9753,0,0,0,0,100,0),
+(@PATH+1,1,163.1683,-444.165,121.9753,0,0,0,0,100,0),
+(@PATH+1,2,163.2364,-443.4956,121.9753,0,0,0,0,100,0),
+(@PATH+1,3,163.3028,-442.0108,122.2531,1.570796,0,0,0,100,0),
+(@PATH+2,1,165.5801,-457.3273,121.9753,0,0,1,0,100,0),
+(@PATH+2,2,165.5504,-465.8904,116.8073,0,0,1,0,100,0),
+(@PATH+2,3,165.3594,-470.635,116.8296,0,0,1,0,100,0),
+(@PATH+2,4,168.4351,-473.7489,116.8424,0,0,1,0,100,0),
+(@PATH+2,5,179.0059,-473.894,116.8424,0,0,1,0,100,0);
+
+-- Pathing for Warchief Rend Blackhand Entry: 10429
+SET @PATH := 1379680;
+DELETE FROM `waypoint_data` WHERE `id` IN (@PATH);
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,165.4778,-452.2761,121.9753,0,0,0,0,100,0),
+(@PATH,2,165.5801,-457.3273,121.9753,0,0,0,0,100,0),
+(@PATH,3,165.5504,-465.8904,116.8073,0,0,0,0,100,0),
+(@PATH,4,165.3594,-470.635,116.8296,0,0,0,0,100,0),
+(@PATH,5,168.4351,-473.7489,116.8424,0,0,0,0,100,0),
+(@PATH,6,179.0059,-473.894,116.8424,0,52000,0,0,100,0),
+(@PATH,7,216.6058,-430.4544,110.9169,0,0,0,0,100,0),
+(@PATH,8,216.5664,-412.0932,110.9822,0,0,0,0,100,0),
+(@PATH,9,217.1734,-401.2561,111.0617,0,0,0,0,100,0),
+(@PATH,10,216.5286,-397.7477,111.0883,0,0,0,0,100,0),
+(@PATH,11,214.8428,-395.8612,111.1051,0,0,0,0,100,0),
+(@PATH,12,213.5363,-395.6153,111.1093,0,0,0,0,100,0);
+
+-- Pathing for Gyth Entry: 10339
+SET @PATH := 1379681;
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,211.4939,-399.5368,111.0848,0,0,1,0,100,0),
+(@PATH,2,209.2005,-409.7201,110.9367,0,0,1,0,100,0),
+(@PATH,3,201.0632,-420.6352,110.9231,0,0,1,0,100,0),
+(@PATH,4,178.1997,-420.3415,110.4723,0,0,1,0,100,0),
+(@PATH,5,154.2494,-420.948,110.4723,0,0,1,0,100,0),
+(@PATH,6,127.872,-420.4601,110.4723,0,0,1,0,100,0);
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_01_world_smart_scripts.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_01_world_smart_scripts.sql
new file mode 100644
index 00000000000..65b4a9923fa
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_01_world_smart_scripts.sql
@@ -0,0 +1 @@
+UPDATE `smart_scripts` SET `event_flags`=`event_flags`&~30 WHERE `entryorguid` IN (10981,10982,10986,10987,10990,11602,11603,11605,11678,11839,12050,12051,12053,12127,13088,13089,13097,13179,13284,13316,13326,13328,13438,13442,13443,13447,13577,13797,13798,14282,14283) AND `source_type`=0;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_02_world_creature_template.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_02_world_creature_template.sql
new file mode 100644
index 00000000000..617d49667f2
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_02_world_creature_template.sql
@@ -0,0 +1 @@
+UPDATE `creature_template` SET `InhabitType`=4 WHERE `entry` IN (37955,38434,38435,38436);
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_03_world_conditions.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_03_world_conditions.sql
new file mode 100644
index 00000000000..934a20cd025
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_03_world_conditions.sql
@@ -0,0 +1,3 @@
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=51469;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(13, 1, 51469, 0, 0, 32, 0, 0x90, 0, 0, 0, 0, 0, '', 'Frenzyheart''s Fury - only for Players');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_04_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_04_world_sai.sql
new file mode 100644
index 00000000000..61ec09c9ff4
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_04_world_sai.sql
@@ -0,0 +1,59 @@
+-- The Black Knight's Curse (14016) quest trigger SAI by nelegalno based on C++ script by Sherriff: http://pastebin.com/1ExVqtLe
+SET @TRIGGER := 34735;
+
+UPDATE `creature_template` SET ainame='SmartAI' WHERE `entry`=@TRIGGER;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@TRIGGER AND `source_type`=0;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@TRIGGER, 0, 0, 1, 10, 0, 100, 0, 1, 5, 5000, 5000, 12, 35116, 4, 60000, 0, 0, 0, 8, 0, 0, 0, 8451.91, 459.163, 596.072, 0.80, "Link - SummonCreature Cult Saboteur"),
+(@TRIGGER, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 12, 35127, 4, 60000, 0, 0, 0, 8, 0, 0, 0, 8456.20, 458.904, 596.072, 1.55, "Link - SummonCreature Cult Assassin");
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=@TRIGGER AND `SourceId`=0;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(22,1,@TRIGGER,0,0, 9,0,14016, 0,0,0,0,'',"Execute SAI only if player is on The Black Knight's Curse quest"),
+(22,1,@TRIGGER,0,0,29,0,35127,50,0,1,0,'',"Execute SAI only if no Cult Assassin within 50y of Black Knight's Grave");
+
+-- Written by Sherriff: http://pastebin.com/gkSqDc52
+-- Add text
+DELETE FROM `creature_text` WHERE `entry`=35116;
+INSERT INTO `creature_text` VALUES
+(35116,0,0, "What do you think you're doing?",12,0,0,1,0,0, ''),
+(35116,1,0, "You're too late to stop our plan.",12,0,0,1,0,0, ''),
+(35116,2,0, "See to it that I'm not followed.",12,0,0,1,0,0, '');
+
+DELETE FROM `creature_text` WHERE `entry`=35127;
+INSERT INTO `creature_text` VALUES
+(35127,0,0, "Gladly",12,0,1,0,0,0, '');
+
+-- SAI
+UPDATE `creature_template` SET ainame='SmartAI' WHERE `entry`= 35116;
+UPDATE `creature_template` SET ainame='SmartAI' WHERE `entry`= 35127;
+
+DELETE FROM `smart_scripts` WHERE `entryorguid`=35116;
+INSERT INTO `smart_scripts` VALUES
+-- need add (The saboteur ports out, via spell)
+(35116, 0, 0, 0, 54, 0, 100, 1, 0, 0, 0, 0, 71, 0, 0, 3334, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,''), -- Equip shovel ID: 3334 ?
+(35116, 0, 1, 0, 38, 0, 100, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,''),
+(35116, 0, 2, 0, 1, 1, 100, 1, 5000, 5000, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,'');
+
+DELETE FROM `smart_scripts` WHERE `entryorguid`=35127;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=35127*100;
+INSERT INTO `smart_scripts` VALUES
+(35127, 0, 0, 1, 54,0,100,0,0,0,0,0,80,35127*100,0,2,0,0,0,1,0,0,0,0,0,0,0,""),
+(35127, 0, 1, 0, 61,0,100,0,0,0,0,0,17,68,0,0,0,0,0,1,0,0,0,0,0,0,0,""),
+-- script
+(35127*100, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 2, 35, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,''),
+(35127*100, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,''),
+(35127*100, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,''),
+(35127*100, 9, 3, 0, 0, 0, 100, 0, 2000, 2000, 0, 0, 1, 0, 0, 0, 0, 0, 0, 11, 35116, 20, 0, 0, 0, 0, 0,''),
+(35127*100, 9, 4, 0, 0, 0, 100, 0, 4000, 4000, 0, 0, 1, 1, 0, 0, 0, 0, 0, 11, 35116, 20, 0, 0, 0, 0, 0,''),
+(35127*100, 9, 5, 0, 0, 0, 100, 0, 3000, 3000, 0, 0, 1, 2, 0, 0, 0, 0, 0, 11, 35116, 20, 0, 0, 0, 0, 0,''),
+(35127*100, 9, 6, 0, 0, 0, 100, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 11, 35116, 20, 0, 0, 0, 0, 0,''),
+(35127*100, 9, 7, 0, 0, 0, 100, 0, 2000, 2000, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,''),
+(35127*100, 9, 8, 0, 0, 0, 100, 0, 0, 0, 0, 0, 8, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,''),
+(35127*100, 9, 9, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 2, 14, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,''),
+(35127*100, 9, 10, 0, 0, 0, 100, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,''), -- emote 0 or roar?
+-- combat
+(35127, 0, 2, 0, 0, 0, 100, 0, 3000, 4000, 14000, 15000, 11, 60842, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,''),
+(35127, 0, 3, 0, 0, 0, 100, 0, 1000, 2000, 7000, 8000, 11, 14873, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,''),
+-- on death(quest credit)
+(35127, 0, 4, 0, 6, 0, 100, 1, 0, 0, 0, 0, 85, 66785, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0,'');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_05_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_05_world_sai.sql
new file mode 100644
index 00000000000..e43c840e85a
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_05_world_sai.sql
@@ -0,0 +1,829 @@
+SET @FOZRUK := 2611;
+SET @FEEBOZ := 4063;
+SET @ZNORT := 2765;
+SET @SLEEBY := 2764;
+SET @GUIDFO := 14514;
+SET @GUIDFE := 14517;
+SET @GUIDZN := 14516;
+SET @GUIDSL := 14515;
+SET @PATH := 145140;
+
+-- Creature formation for Fozruk,Feeboz,Znort and Sleeby
+DELETE FROM `creature_formations` WHERE `leaderGUID`=@GUIDFO;
+INSERT INTO `creature_formations` (`leaderGUID`,`memberGUID`,`dist`,`angle`,`groupAI`) VALUES
+(@GUIDFO,@GUIDFO,0,0,2),
+(@GUIDFO,@GUIDFE,5,45,2),
+(@GUIDFO,@GUIDZN,5,0,2),
+(@GUIDFO,@GUIDSL,5,315,2);
+UPDATE `creature` SET `MovementType`=2,`position_x`=-799.488159,`position_y`=-3187.840820,`position_z`=81.986244,`currentwaypoint`=1 WHERE `guid` IN (@GUIDFO,@GUIDFE,@GUIDZN,@GUIDSL);
+UPDATE `creature_addon` SET `path_id`=@PATH WHERE `guid` IN (@GUIDFO,@GUIDFE,@GUIDZN,@GUIDSL);
+UPDATE `creature_template` SET `speed_walk`=0.777776,`Health_mod`=1 WHERE `entry` IN (@FEEBOZ,@ZNORT,@SLEEBY);
+UPDATE `creature` SET `curhealth`=3820 WHERE `id`=@FOZRUK;
+UPDATE `creature_template` SET `Health_mod`=2.314 WHERE `entry`=@FOZRUK;
+
+-- Adding missing SAI for Sleeby
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@SLEEBY AND `source_type`=0;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@SLEEBY,0,0,0,4,0,100,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sleeby - On Aggro - Say Line 0"),
+(@SLEEBY,0,1,0,2,0,100,1,0,15,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Sleeby - At 15% HP - Flee For Assist"),
+(@SLEEBY,0,2,0,14,0,100,0,900,30,18000,21000,11,10577,0,0,0,0,0,9,0,0,30,0,0,0,0,"Sleeby - At 900 HP Deficit on friendly - Cast Heal"),
+(@SLEEBY,0,3,0,2,0,100,1,0,30,22000,28000,11,10577,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sleeby - At 30 % HP - Cast Heal");
+
+
+-- Waypoint Data for Fozruk,Feeboz,Znort and Sleeby
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,-832.334,-3205.470,79.68929,0,0,0,0,100,0),
+(@PATH,2,-860.918,-3218.261,84.36646,0,0,0,0,100,0),
+(@PATH,3,-888.679,-3243.162,84.09533,0,0,0,0,100,0),
+(@PATH,4,-914.439,-3273.134,79.92033,0,0,0,0,100,0),
+(@PATH,5,-934.979,-3286.743,75.78973,0,0,0,0,100,0),
+(@PATH,6,-969.229,-3298.048,70.39626,0,0,0,0,100,0),
+(@PATH,7,-999.526,-3300.098,59.43864,0,0,0,0,100,0),
+(@PATH,8,-1024.019,-3302.781,52.57269,0,0,0,0,100,0),
+(@PATH,9,-1042.511,-3304.218,53.96111,0,0,0,0,100,0),
+(@PATH,10,-1071.519,-3303.006,53.72434,0,0,0,0,100,0),
+(@PATH,11,-1094.373,-3294.411,51.28259,0,0,0,0,100,0),
+(@PATH,12,-1116.248,-3283.376,48.46264,0,0,0,0,100,0),
+(@PATH,13,-1134.604,-3275.851,45.93983,0,0,0,0,100,0),
+(@PATH,14,-1138.166,-3253.598,37.34724,0,0,0,0,100,0),
+(@PATH,15,-1149.548,-3219.161,32.92126,0,0,0,0,100,0),
+(@PATH,16,-1154.650,-3191.667,39.82796,0,0,0,0,100,0),
+(@PATH,17,-1152.233,-3172.707,44.92081,0,0,0,0,100,0),
+(@PATH,18,-1155.257,-3148.514,43.87821,0,0,0,0,100,0),
+(@PATH,19,-1156.285,-3118.220,46.07511,0,0,0,0,100,0),
+(@PATH,20,-1158.257,-3089.038,42.32969,0,0,0,0,100,0),
+(@PATH,21,-1166.920,-3051.637,39.44429,0,0,0,0,100,0),
+(@PATH,22,-1173.630,-3018.499,41.95575,0,0,0,0,100,0),
+(@PATH,23,-1177.635,-2989.661,47.36756,0,0,0,0,100,0),
+(@PATH,24,-1184.160,-2956.073,51.06301,0,0,0,0,100,0),
+(@PATH,25,-1199.907,-2932.837,47.81623,0,0,0,0,100,0),
+(@PATH,26,-1214.661,-2909.040,42.48590,0,0,0,0,100,0),
+(@PATH,27,-1227.096,-2890.791,43.51100,0,0,0,0,100,0),
+(@PATH,28,-1238.985,-2873.565,44.54215,0,0,0,0,100,0),
+(@PATH,29,-1250.406,-2857.378,45.41686,0,0,0,0,100,0),
+(@PATH,30,-1247.514,-2836.024,46.47926,0,0,0,0,100,0),
+(@PATH,31,-1248.644,-2794.010,51.19218,0,0,0,0,100,0),
+(@PATH,32,-1255.582,-2758.492,49.47080,0,0,0,0,100,0),
+(@PATH,33,-1267.213,-2729.370,48.34093,0,0,0,0,100,0),
+(@PATH,34,-1284.019,-2714.972,48.51395,0,0,0,0,100,0),
+(@PATH,35,-1301.577,-2701.519,54.30533,0,0,0,0,100,0),
+(@PATH,36,-1318.129,-2685.284,56.57260,0,0,0,0,100,0),
+(@PATH,37,-1337.341,-2665.010,66.17728,0,0,0,0,100,0),
+(@PATH,38,-1351.957,-2651.640,73.03260,0,0,0,0,100,0),
+(@PATH,39,-1368.981,-2639.345,71.88406,0,0,0,0,100,0),
+(@PATH,40,-1386.248,-2625.411,70.91771,0,0,0,0,100,0),
+(@PATH,41,-1404.074,-2608.620,71.74998,0,0,0,0,100,0),
+(@PATH,42,-1414.762,-2591.953,70.57619,0,0,0,0,100,0),
+(@PATH,43,-1421.564,-2568.585,71.20494,0,0,0,0,100,0),
+(@PATH,44,-1424.290,-2551.299,72.80975,0,0,0,0,100,0),
+(@PATH,45,-1425.382,-2525.746,72.76966,0,0,0,0,100,0),
+(@PATH,46,-1427.621,-2500.162,66.61679,0,0,0,0,100,0),
+(@PATH,47,-1428.913,-2478.010,60.97769,0,0,0,0,100,0),
+(@PATH,48,-1430.675,-2450.066,58.70541,0,0,0,0,100,0),
+(@PATH,49,-1432.065,-2430.234,60.31319,0,0,0,0,100,0),
+(@PATH,50,-1434.051,-2407.011,61.26979,0,0,0,0,100,0),
+(@PATH,51,-1441.378,-2382.458,62.31955,0,0,0,0,100,0),
+(@PATH,52,-1455.994,-2351.987,61.89263,0,0,0,0,100,0),
+(@PATH,53,-1476.102,-2327.670,59.28052,0,0,0,0,100,0),
+(@PATH,54,-1488.910,-2303.793,51.65742,0,0,0,0,100,0),
+(@PATH,55,-1480.213,-2280.157,49.29763,0,0,0,0,100,0),
+(@PATH,56,-1481.886,-2261.885,42.77686,0,0,0,0,100,0),
+(@PATH,57,-1488.766,-2238.346,29.72172,0,0,0,0,100,0),
+(@PATH,58,-1478.716,-2221.377,24.46575,0,0,0,0,100,0),
+(@PATH,59,-1470.289,-2202.226,21.37988,0,0,0,0,100,0),
+(@PATH,60,-1463.888,-2183.480,19.25826,0,0,0,0,100,0),
+(@PATH,61,-1462.309,-2166.158,19.51268,0,0,0,0,100,0),
+(@PATH,62,-1462.641,-2139.281,17.96990,0,0,0,0,100,0),
+(@PATH,63,-1461.741,-2117.135,18.41839,0,0,0,0,100,0),
+(@PATH,64,-1462.720,-2096.159,20.99808,0,0,0,0,100,0),
+(@PATH,65,-1466.697,-2073.191,21.76600,0,0,0,0,100,0),
+(@PATH,66,-1469.742,-2051.216,22.28187,0,0,0,0,100,0),
+(@PATH,67,-1470.707,-2034.948,23.92398,0,0,0,0,100,0),
+(@PATH,68,-1467.493,-2011.868,27.70724,0,0,0,0,100,0),
+(@PATH,69,-1461.612,-1991.796,32.13912,0,0,0,0,100,0),
+(@PATH,70,-1453.868,-1976.242,41.14152,0,0,0,0,100,0),
+(@PATH,71,-1440.519,-1963.263,44.36967,0,0,0,0,100,0),
+(@PATH,72,-1427.875,-1962.643,45.06952,0,0,0,0,100,0),
+(@PATH,73,-1403.536,-1960.480,48.94749,0,0,0,0,100,0),
+(@PATH,74,-1384.386,-1955.417,53.90592,0,0,0,0,100,0),
+(@PATH,75,-1369.677,-1945.936,57.96852,0,0,0,0,100,0),
+(@PATH,76,-1350.607,-1921.860,58.38959,0,0,0,0,100,0),
+(@PATH,77,-1340.818,-1894.505,59.48376,0,0,0,0,100,0),
+(@PATH,78,-1331.473,-1868.108,61.54721,0,0,0,0,100,0),
+(@PATH,79,-1324.620,-1843.425,63.16196,0,0,0,0,100,0),
+(@PATH,80,-1314.403,-1825.211,64.58312,0,0,0,0,100,0),
+(@PATH,81,-1298.009,-1805.438,66.00177,0,0,0,0,100,0),
+(@PATH,82,-1277.380,-1794.447,66.98273,0,0,0,0,100,0),
+(@PATH,83,-1262.522,-1781.463,66.29517,0,0,0,0,100,0),
+(@PATH,84,-1257.610,-1764.678,61.17090,0,0,0,0,100,0),
+(@PATH,85,-1254.762,-1740.416,57.42629,0,0,0,0,100,0),
+(@PATH,86,-1257.197,-1714.841,55.34131,0,0,0,0,100,0),
+(@PATH,87,-1261.216,-1690.681,58.78395,0,0,0,0,100,0),
+(@PATH,88,-1270.503,-1675.867,58.18840,0,0,0,0,100,0),
+(@PATH,89,-1286.642,-1660.740,56.26418,0,0,0,0,100,0),
+(@PATH,90,-1300.361,-1645.053,56.51159,0,0,0,0,100,0),
+(@PATH,91,-1308.540,-1627.062,54.06078,0,0,0,0,100,0),
+(@PATH,92,-1311.492,-1607.599,54.04951,0,0,0,0,100,0),
+(@PATH,93,-1304.892,-1587.725,55.84180,0,0,0,0,100,0),
+(@PATH,94,-1294.446,-1572.347,57.09067,0,0,0,0,100,0),
+(@PATH,95,-1276.314,-1559.621,56.87208,0,0,0,0,100,0),
+(@PATH,96,-1258.598,-1553.953,55.82633,0,0,0,0,100,0),
+(@PATH,97,-1247.020,-1555.563,54.08138,0,0,0,0,100,0),
+(@PATH,98,-1223.989,-1559.108,53.75228,0,0,0,0,100,0),
+(@PATH,99,-1204.170,-1566.040,57.69885,0,0,0,0,100,0),
+(@PATH,100,-1181.217,-1574.416,57.90259,0,0,0,0,100,0),
+(@PATH,101,-1171.802,-1584.777,56.51091,0,0,0,0,100,0),
+(@PATH,102,-1153.563,-1592.682,51.61238,0,0,0,0,100,0),
+(@PATH,103,-1135.418,-1600.805,44.96742,0,0,0,0,100,0),
+(@PATH,104,-1118.637,-1609.030,43.56574,0,0,0,0,100,0),
+(@PATH,105,-1099.768,-1620.569,44.50407,0,0,0,0,100,0),
+(@PATH,106,-1085.969,-1629.265,42.54866,0,0,0,0,100,0),
+(@PATH,107,-1062.281,-1644.193,38.64921,0,0,0,0,100,0),
+(@PATH,108,-1042.500,-1656.657,34.32768,0,0,0,0,100,0),
+(@PATH,109,-1023.845,-1668.413,35.51415,0,0,0,0,100,0),
+(@PATH,110,-1010.461,-1679.575,37.13435,0,0,0,0,100,0),
+(@PATH,111,-994.238,-1696.314,37.03594,0,0,0,0,100,0),
+(@PATH,112,-981.290,-1709.695,39.25463,0,0,0,0,100,0),
+(@PATH,113,-965.091,-1726.436,45.73298,0,0,0,0,100,0),
+(@PATH,114,-948.947,-1743.251,50.52712,0,0,0,0,100,0),
+(@PATH,115,-942.321,-1755.448,50.78074,0,0,0,0,100,0),
+(@PATH,116,-931.257,-1775.990,49.88054,0,0,0,0,100,0),
+(@PATH,117,-923.319,-1791.586,48.12437,0,0,0,0,100,0),
+(@PATH,118,-914.847,-1808.245,49.04429,0,0,0,0,100,0),
+(@PATH,119,-916.232,-1825.690,52.98432,0,0,0,0,100,0),
+(@PATH,120,-917.954,-1844.256,60.75032,0,0,0,0,100,0),
+(@PATH,121,-926.844,-1853.560,64.75401,0,0,0,0,100,0),
+(@PATH,122,-939.206,-1860.130,66.13270,0,0,0,0,100,0),
+(@PATH,123,-953.152,-1868.587,66.25734,0,0,0,0,100,0),
+(@PATH,124,-958.630,-1878.914,66.38094,0,0,0,0,100,0),
+(@PATH,125,-970.897,-1898.712,65.08327,0,0,0,0,100,0),
+(@PATH,126,-987.406,-1916.735,65.40691,0,0,0,0,100,0),
+(@PATH,127,-1010.646,-1934.486,63.39084,0,0,0,0,100,0),
+(@PATH,128,-1031.820,-1949.485,62.46684,0,0,0,0,100,0),
+(@PATH,129,-1035.493,-1975.890,62.90833,0,0,0,0,100,0),
+(@PATH,130,-1036.420,-1995.748,64.75522,0,0,0,0,100,0),
+(@PATH,131,-1038.648,-2015.430,67.03606,0,0,0,0,100,0),
+(@PATH,132,-1040.250,-2036.301,66.30344,0,0,0,0,100,0),
+(@PATH,133,-1043.269,-2057.063,61.47777,0,0,0,0,100,0),
+(@PATH,134,-1044.613,-2074.511,55.09937,0,0,0,0,100,0),
+(@PATH,135,-1044.425,-2088.510,52.09245,0,0,0,0,100,0),
+(@PATH,136,-1044.654,-2108.304,53.02930,0,0,0,0,100,0),
+(@PATH,137,-1045.710,-2125.842,57.34435,0,0,0,0,100,0),
+(@PATH,138,-1046.985,-2143.296,60.29477,0,0,0,0,100,0),
+(@PATH,139,-1053.525,-2160.677,61.58408,0,0,0,0,100,0),
+(@PATH,140,-1062.262,-2175.840,62.20592,0,0,0,0,100,0),
+(@PATH,141,-1076.352,-2186.121,61.72998,0,0,0,0,100,0),
+(@PATH,142,-1094.847,-2193.411,60.91643,0,0,0,0,100,0),
+(@PATH,143,-1106.986,-2197.716,60.42783,0,0,0,0,100,0),
+(@PATH,144,-1120.031,-2202.598,60.33088,0,0,0,0,100,0),
+(@PATH,145,-1134.107,-2208.307,60.04767,0,0,0,0,100,0),
+(@PATH,146,-1147.799,-2215.043,59.17715,0,0,0,0,100,0),
+(@PATH,147,-1160.361,-2221.223,56.04159,0,0,0,0,100,0),
+(@PATH,148,-1171.896,-2226.954,52.36503,0,0,0,0,100,0),
+(@PATH,149,-1189.245,-2236.516,50.85875,0,0,0,0,100,0),
+(@PATH,150,-1207.634,-2239.848,53.60689,0,0,0,0,100,0),
+(@PATH,151,-1229.502,-2243.614,54.47043,0,0,0,0,100,0),
+(@PATH,152,-1244.472,-2246.192,55.41187,0,0,0,0,100,0),
+(@PATH,153,-1260.545,-2248.960,56.65786,0,0,0,0,100,0),
+(@PATH,154,-1288.028,-2258.480,63.48441,0,0,0,0,100,0),
+(@PATH,155,-1312.666,-2265.471,63.83049,0,0,0,0,100,0),
+(@PATH,156,-1329.861,-2267.820,60.97282,0,0,0,0,100,0),
+(@PATH,157,-1340.939,-2282.781,60.76001,0,0,0,0,100,0),
+(@PATH,158,-1346.826,-2306.510,63.29128,0,0,0,0,100,0),
+(@PATH,159,-1356.514,-2330.379,62.09324,0,0,0,0,100,0),
+(@PATH,160,-1364.833,-2350.875,63.27309,0,0,0,0,100,0),
+(@PATH,161,-1376.378,-2370.984,64.32507,0,0,0,0,100,0),
+(@PATH,162,-1390.003,-2386.963,64.44643,0,0,0,0,100,0),
+(@PATH,163,-1407.306,-2405.951,61.78886,0,0,0,0,100,0),
+(@PATH,164,-1420.555,-2420.490,60.09317,0,0,0,0,100,0),
+(@PATH,165,-1425.015,-2436.246,60.09718,0,0,0,0,100,0),
+(@PATH,166,-1429.392,-2451.957,58.94998,0,0,0,0,100,0),
+(@PATH,167,-1434.995,-2478.175,61.36834,0,0,0,0,100,0),
+(@PATH,168,-1440.614,-2499.642,65.68507,0,0,0,0,100,0),
+(@PATH,169,-1444.769,-2517.792,67.88286,0,0,0,0,100,0),
+(@PATH,170,-1445.699,-2534.073,69.19215,0,0,0,0,100,0),
+(@PATH,171,-1441.826,-2548.728,71.55446,0,0,0,0,100,0),
+(@PATH,172,-1434.360,-2565.785,69.52008,0,0,0,0,100,0),
+(@PATH,173,-1424.968,-2590.842,66.91249,0,0,0,0,100,0),
+(@PATH,174,-1425.667,-2614.124,63.25773,0,0,0,0,100,0),
+(@PATH,175,-1431.743,-2624.111,59.10629,0,0,0,0,100,0),
+(@PATH,176,-1442.614,-2636.355,53.52480,0,0,0,0,100,0),
+(@PATH,177,-1455.655,-2648.024,49.13583,0,0,0,0,100,0),
+(@PATH,178,-1466.469,-2658.470,45.53018,0,0,0,0,100,0),
+(@PATH,179,-1465.657,-2675.952,41.90980,0,0,0,0,100,0),
+(@PATH,180,-1460.709,-2696.355,37.18211,0,0,0,0,100,0),
+(@PATH,181,-1452.888,-2710.664,35.19919,0,0,0,0,100,0),
+(@PATH,182,-1439.530,-2733.909,36.79025,0,0,0,0,100,0),
+(@PATH,183,-1426.573,-2754.702,36.58022,0,0,0,0,100,0),
+(@PATH,184,-1414.252,-2774.490,40.43624,0,0,0,0,100,0),
+(@PATH,185,-1409.163,-2793.708,40.13807,0,0,0,0,100,0),
+(@PATH,186,-1403.955,-2814.052,38.17089,0,0,0,0,100,0),
+(@PATH,187,-1400.756,-2834.877,37.28344,0,0,0,0,100,0),
+(@PATH,188,-1392.980,-2846.435,36.52287,0,0,0,0,100,0),
+(@PATH,189,-1382.798,-2860.667,34.91384,0,0,0,0,100,0),
+(@PATH,190,-1374.264,-2877.216,32.65070,0,0,0,0,100,0),
+(@PATH,191,-1366.549,-2891.665,32.42652,0,0,0,0,100,0),
+(@PATH,192,-1354.478,-2905.827,39.13261,0,0,0,0,100,0),
+(@PATH,193,-1337.495,-2913.607,41.92314,0,0,0,0,100,0),
+(@PATH,194,-1322.413,-2942.040,38.85258,0,0,0,0,100,0),
+(@PATH,195,-1311.788,-2949.179,37.97545,0,0,0,0,100,0),
+(@PATH,196,-1293.354,-2959.238,36.04282,0,0,0,0,100,0),
+(@PATH,197,-1286.243,-2968.497,35.39156,0,0,0,0,100,0),
+(@PATH,198,-1278.272,-2985.291,35.52282,0,0,0,0,100,0),
+(@PATH,199,-1278.453,-3001.669,36.35407,0,0,0,0,100,0),
+(@PATH,200,-1276.645,-3021.391,36.00177,0,0,0,0,100,0),
+(@PATH,201,-1277.911,-3042.342,35.95967,0,0,0,0,100,0),
+(@PATH,202,-1283.244,-3057.739,35.20432,0,0,0,0,100,0),
+(@PATH,203,-1285.871,-3073.835,34.69639,0,0,0,0,100,0),
+(@PATH,204,-1285.933,-3087.835,34.16180,0,0,0,0,100,0),
+(@PATH,205,-1287.669,-3106.376,33.67950,0,0,0,0,100,0),
+(@PATH,206,-1291.360,-3123.482,34.17837,0,0,0,0,100,0),
+(@PATH,207,-1294.929,-3139.397,35.25090,0,0,0,0,100,0),
+(@PATH,208,-1299.368,-3164.641,35.11166,0,0,0,0,100,0),
+(@PATH,209,-1290.961,-3179.933,35.79531,0,0,0,0,100,0),
+(@PATH,210,-1278.226,-3195.107,35.04691,0,0,0,0,100,0),
+(@PATH,211,-1265.487,-3211.802,34.85434,0,0,0,0,100,0),
+(@PATH,212,-1254.874,-3225.805,34.67227,0,0,0,0,100,0),
+(@PATH,213,-1242.016,-3239.177,34.42041,0,0,0,0,100,0),
+(@PATH,214,-1226.995,-3250.289,32.20225,0,0,0,0,100,0),
+(@PATH,215,-1209.005,-3258.555,29.59883,0,0,0,0,100,0),
+(@PATH,216,-1190.414,-3265.396,32.87492,0,0,0,0,100,0),
+(@PATH,217,-1166.793,-3271.900,39.47464,0,0,0,0,100,0),
+(@PATH,218,-1142.090,-3278.944,45.54786,0,0,0,0,100,0),
+(@PATH,219,-1119.980,-3286.243,48.92627,0,0,0,0,100,0),
+(@PATH,220,-1095.748,-3294.774,51.35248,0,0,0,0,100,0),
+(@PATH,221,-1074.817,-3302.142,53.40496,0,0,0,0,100,0),
+(@PATH,222,-1055.146,-3305.007,54.27245,0,0,0,0,100,0),
+(@PATH,223,-1035.344,-3304.849,53.27559,0,0,0,0,100,0),
+(@PATH,224,-1014.499,-3304.045,54.20192,0,0,0,0,100,0),
+(@PATH,225,-990.851,-3298.044,63.28812,0,0,0,0,100,0),
+(@PATH,226,-970.008,-3295.534,70.09853,0,0,0,0,100,0),
+(@PATH,227,-944.635,-3291.997,74.38611,0,0,0,0,100,0),
+(@PATH,228,-932.371,-3285.322,76.28872,0,0,0,0,100,0),
+(@PATH,229,-913.366,-3271.833,80.13741,0,0,0,0,100,0),
+(@PATH,230,-897.063,-3255.075,83.12675,0,0,0,0,100,0),
+(@PATH,231,-881.291,-3241.244,84.59821,0,0,0,0,100,0),
+(@PATH,232,-867.330,-3227.198,84.76893,0,0,0,0,100,0),
+(@PATH,233,-850.828,-3216.250,83.22803,0,0,0,0,100,0),
+(@PATH,234,-833.957,-3205.938,79.70540,0,0,0,0,100,0),
+(@PATH,235,-816.334,-3196.889,81.54343,3.60,60000,0,0,100,0);
+
+-- Updating creature loot for Fozruk
+DELETE FROM `creature_loot_template` WHERE `entry`=@FOZRUK;
+INSERT INTO `creature_loot_template` VALUES
+(@FOZRUK,4469,-100,1,0,1,1),
+(@FOZRUK,7192,30,1,0,1,2),
+(@FOZRUK,8150,20,1,0,1,1),
+(@FOZRUK,4552,12,1,0,1,1),
+(@FOZRUK,4554,4,1,0,1,1),
+(@FOZRUK,8157,1,1,0,1,1),
+(@FOZRUK,4637,1,1,0,1,1),
+(@FOZRUK,4045,0.4,1,0,1,1),
+(@FOZRUK,4002,0.3,1,0,1,1),
+(@FOZRUK,7909,0.2,1,0,1,1),
+(@FOZRUK,4024,0.2,1,0,1,1),
+(@FOZRUK,4004,0.2,1,0,1,1),
+(@FOZRUK,3963,0.2,1,0,1,1),
+(@FOZRUK,3989,0.2,1,0,1,1),
+(@FOZRUK,4026,0.2,1,0,1,1),
+(@FOZRUK,8750,0.2,1,0,1,1),
+(@FOZRUK,4025,0.2,1,0,1,1),
+(@FOZRUK,4018,0.2,1,0,1,1),
+(@FOZRUK,3962,0.2,1,0,1,1),
+(@FOZRUK,3938,0.2,1,0,1,1),
+(@FOZRUK,4022,0.2,1,0,1,1),
+(@FOZRUK,4023,0.2,1,0,1,1),
+(@FOZRUK,4020,0.2,1,0,1,1),
+(@FOZRUK,3965,0.1,1,0,1,1),
+(@FOZRUK,3939,0.1,1,0,1,1),
+(@FOZRUK,4019,0.1,1,0,1,1),
+(@FOZRUK,4007,0.1,1,0,1,1),
+(@FOZRUK,3986,0.1,1,0,1,1),
+(@FOZRUK,4017,0.1,1,0,1,1),
+(@FOZRUK,3942,0.1,1,0,1,1),
+(@FOZRUK,3966,0.1,1,0,1,1),
+(@FOZRUK,4021,0.1,1,0,1,1),
+(@FOZRUK,3937,0.1,1,0,1,1),
+(@FOZRUK,3941,0.1,1,0,1,1),
+(@FOZRUK,3943,0.1,1,0,1,1),
+(@FOZRUK,8137,0.1,1,0,1,1),
+(@FOZRUK,9285,0.1,1,0,1,1),
+(@FOZRUK,8194,0.1,1,0,1,1),
+(@FOZRUK,15251,0.1,1,0,1,1),
+(@FOZRUK,4061,0.1,1,0,1,1),
+(@FOZRUK,4736,0.1,1,0,1,1),
+(@FOZRUK,4000,0.1,1,0,1,1),
+(@FOZRUK,3964,0.1,1,0,1,1),
+(@FOZRUK,9290,0.1,1,0,1,1),
+(@FOZRUK,866,0.1,1,0,1,1),
+(@FOZRUK,8386,0.1,1,0,1,1),
+(@FOZRUK,3936,0.1,1,0,1,1),
+(@FOZRUK,4001,0.1,1,0,1,1),
+(@FOZRUK,4005,0.1,1,0,1,1),
+(@FOZRUK,3961,0.1,1,0,1,1),
+(@FOZRUK,3967,0.1,1,0,1,1),
+(@FOZRUK,3968,0.1,1,0,1,1),
+(@FOZRUK,6424,0.1,1,0,1,1),
+(@FOZRUK,9968,0.1,1,0,1,1),
+(@FOZRUK,1625,0.1,1,0,1,1),
+(@FOZRUK,6431,0.1,1,0,1,1),
+(@FOZRUK,12042,0.1,1,0,1,1),
+(@FOZRUK,1640,0.1,1,0,1,1),
+(@FOZRUK,7555,0.1,1,0,1,1),
+(@FOZRUK,9883,0.1,1,0,1,1),
+(@FOZRUK,4087,0.1,1,0,1,1),
+(@FOZRUK,3914,0.1,1,0,1,1),
+(@FOZRUK,8749,0.1,1,0,1,1),
+(@FOZRUK,4003,0.1,1,0,1,1),
+(@FOZRUK,4006,0.1,1,0,1,1),
+(@FOZRUK,13138,0.1,1,0,1,1),
+(@FOZRUK,8196,0.1,1,0,1,1),
+(@FOZRUK,5215,0.1,1,0,1,1),
+(@FOZRUK,9292,0.1,1,0,1,1),
+(@FOZRUK,4058,0.1,1,0,1,1),
+(@FOZRUK,7524,0.1,1,0,1,1),
+(@FOZRUK,8120,0.1,1,0,1,1),
+(@FOZRUK,9893,0.1,1,0,1,1),
+(@FOZRUK,4738,0.1,1,0,1,1),
+(@FOZRUK,11987,0.1,1,0,1,1),
+(@FOZRUK,9897,0.1,1,0,1,1),
+(@FOZRUK,8163,0.1,1,0,1,1),
+(@FOZRUK,4047,0.1,1,0,1,1),
+(@FOZRUK,7481,0.1,1,0,1,1),
+(@FOZRUK,7485,0.1,1,0,1,1),
+(@FOZRUK,7332,0.1,1,0,1,1),
+(@FOZRUK,7471,0.1,1,0,1,1),
+(@FOZRUK,7470,0.1,1,0,1,1),
+(@FOZRUK,9909,0.1,1,0,1,1),
+(@FOZRUK,8751,0.1,1,0,1,1),
+(@FOZRUK,867,0.1,1,0,1,1),
+(@FOZRUK,13058,0.1,1,0,1,1),
+(@FOZRUK,13034,0.1,1,0,1,1),
+(@FOZRUK,7112,0.1,1,0,1,1),
+(@FOZRUK,6415,0.1,1,0,1,1),
+(@FOZRUK,6425,0.1,1,0,1,1),
+(@FOZRUK,9927,0.1,1,0,1,1),
+(@FOZRUK,9928,0.1,1,0,1,1),
+(@FOZRUK,9930,0.1,1,0,1,1),
+(@FOZRUK,9931,0.1,1,0,1,1),
+(@FOZRUK,7486,0.1,1,0,1,1),
+(@FOZRUK,7488,0.1,1,0,1,1),
+(@FOZRUK,7487,0.1,1,0,1,1),
+(@FOZRUK,7491,0.1,1,0,1,1),
+(@FOZRUK,7494,0.1,1,0,1,1),
+(@FOZRUK,6411,0.1,1,0,1,1),
+(@FOZRUK,4068,0.1,1,0,1,1),
+(@FOZRUK,3864,0.1,1,0,1,1),
+(@FOZRUK,15287,0.1,1,0,1,1),
+(@FOZRUK,21947,0.05,1,0,1,1),
+(@FOZRUK,9966,0.05,1,0,1,1),
+(@FOZRUK,9973,0.05,1,0,1,1),
+(@FOZRUK,9972,0.05,1,0,1,1),
+(@FOZRUK,9970,0.05,1,0,1,1),
+(@FOZRUK,12011,0.05,1,0,1,1),
+(@FOZRUK,11204,0.05,1,0,1,1),
+(@FOZRUK,11225,0.05,1,0,1,1),
+(@FOZRUK,11208,0.05,1,0,1,1),
+(@FOZRUK,7522,0.05,1,0,1,1),
+(@FOZRUK,9887,0.05,1,0,1,1),
+(@FOZRUK,9894,0.05,1,0,1,1),
+(@FOZRUK,@FEEBOZ,0.05,1,0,1,1),
+(@FOZRUK,4062,0.05,1,0,1,1),
+(@FOZRUK,9903,0.05,1,0,1,1),
+(@FOZRUK,9904,0.05,1,0,1,1),
+(@FOZRUK,11998,0.05,1,0,1,1),
+(@FOZRUK,4070,0.05,1,0,1,1),
+(@FOZRUK,8162,0.05,1,0,1,1),
+(@FOZRUK,12031,0.05,1,0,1,1),
+(@FOZRUK,4735,0.05,1,0,1,1),
+(@FOZRUK,6429,0.05,1,0,1,1),
+(@FOZRUK,4300,0.05,1,0,1,1),
+(@FOZRUK,10302,0.05,1,0,1,1),
+(@FOZRUK,10300,0.05,1,0,1,1),
+(@FOZRUK,3873,0.05,1,0,1,1),
+(@FOZRUK,8029,0.05,1,0,1,1),
+(@FOZRUK,7479,0.05,1,0,1,1),
+(@FOZRUK,7482,0.05,1,0,1,1),
+(@FOZRUK,15244,0.05,1,0,1,1),
+(@FOZRUK,9298,0.05,1,0,1,1),
+(@FOZRUK,7475,0.05,1,0,1,1),
+(@FOZRUK,7473,0.05,1,0,1,1),
+(@FOZRUK,9907,0.05,1,0,1,1),
+(@FOZRUK,9908,0.05,1,0,1,1),
+(@FOZRUK,9906,0.05,1,0,1,1),
+(@FOZRUK,3187,0.05,1,0,1,1),
+(@FOZRUK,10604,0.05,1,0,1,1),
+(@FOZRUK,9881,0.05,1,0,1,1),
+(@FOZRUK,9882,0.05,1,0,1,1),
+(@FOZRUK,1613,0.05,1,0,1,1),
+(@FOZRUK,7910,0.05,1,0,1,1),
+(@FOZRUK,12023,0.05,1,0,1,1),
+(@FOZRUK,5216,0.05,1,0,1,1),
+(@FOZRUK,9959,0.05,1,0,1,1),
+(@FOZRUK,8385,0.05,1,0,1,1);
+
+-- Updating Creature loot for Feeboz
+DELETE FROM `creature_loot_template` WHERE `entry`=@FEEBOZ;
+INSERT INTO `creature_loot_template` VALUES
+(@FEEBOZ,4306,51,1,0,1,3),
+(@FEEBOZ,4539,13,1,0,1,1),
+(@FEEBOZ,4338,9,1,0,1,1),
+(@FEEBOZ,1708,4,1,0,1,1),
+(@FEEBOZ,1710,3,1,0,1,1),
+(@FEEBOZ,3827,1.2,1,0,1,1),
+(@FEEBOZ,3805,0.5,1,0,1,1),
+(@FEEBOZ,8748,0.5,1,0,1,1),
+(@FEEBOZ,3795,0.5,1,0,1,1),
+(@FEEBOZ,3797,0.5,1,0,1,1),
+(@FEEBOZ,3782,0.5,1,0,1,1),
+(@FEEBOZ,7492,0.5,1,0,1,1),
+(@FEEBOZ,3785,0.5,1,0,1,1),
+(@FEEBOZ,3780,0.5,1,0,1,1),
+(@FEEBOZ,3817,0.5,1,0,1,1),
+(@FEEBOZ,9891,0.5,1,0,1,1),
+(@FEEBOZ,3803,0.5,1,0,1,1),
+(@FEEBOZ,3784,0.5,1,0,1,1),
+(@FEEBOZ,3787,0.5,1,0,1,1),
+(@FEEBOZ,4636,0.5,1,0,1,1),
+(@FEEBOZ,3811,0.5,1,0,1,1),
+(@FEEBOZ,3807,0.5,1,0,1,1),
+(@FEEBOZ,3779,0.5,1,0,1,1),
+(@FEEBOZ,3778,0.5,1,0,1,1),
+(@FEEBOZ,2289,0.5,1,0,1,1),
+(@FEEBOZ,3781,0.5,1,0,1,1),
+(@FEEBOZ,3801,0.5,1,0,1,1),
+(@FEEBOZ,3783,0.5,1,0,1,1),
+(@FEEBOZ,15233,0.5,1,0,1,1),
+(@FEEBOZ,3786,0.5,1,0,1,1),
+(@FEEBOZ,6432,0.5,1,0,1,1),
+(@FEEBOZ,864,0.5,1,0,1,1),
+(@FEEBOZ,3809,0.5,1,0,1,1),
+(@FEEBOZ,3802,0.5,1,0,1,1),
+(@FEEBOZ,3796,0.5,1,0,1,1),
+(@FEEBOZ,3816,0.5,1,0,1,1),
+(@FEEBOZ,4041,0.5,1,0,1,1),
+(@FEEBOZ,3864,0.5,1,0,1,1),
+(@FEEBOZ,6419,0.5,1,0,1,1),
+(@FEEBOZ,15322,0.5,1,0,1,1),
+(@FEEBOZ,15260,0.5,1,0,1,1),
+(@FEEBOZ,1465,0.5,1,0,1,1),
+(@FEEBOZ,4421,0.5,1,0,1,1),
+(@FEEBOZ,4424,0.5,1,0,1,1),
+(@FEEBOZ,3813,0.5,1,0,1,1),
+(@FEEBOZ,3804,0.5,1,0,1,1),
+(@FEEBOZ,3806,0.5,1,0,1,1),
+(@FEEBOZ,3792,0.5,1,0,1,1),
+(@FEEBOZ,3793,0.5,1,0,1,1),
+(@FEEBOZ,3798,0.5,1,0,1,1),
+(@FEEBOZ,7909,0.5,1,0,1,1),
+(@FEEBOZ,4727,0.5,1,0,1,1),
+(@FEEBOZ,6420,0.5,1,0,1,1),
+(@FEEBOZ,6422,0.5,1,0,1,1),
+(@FEEBOZ,7480,0.5,1,0,1,1),
+(@FEEBOZ,9873,0.5,1,0,1,1),
+(@FEEBOZ,3808,0.5,1,0,1,1),
+(@FEEBOZ,3810,0.5,1,0,1,1),
+(@FEEBOZ,3812,0.5,1,0,1,1),
+(@FEEBOZ,3814,0.5,1,0,1,1),
+(@FEEBOZ,8747,0.5,1,0,1,1),
+(@FEEBOZ,3794,0.5,1,0,1,1),
+(@FEEBOZ,8006,0.5,1,0,1,1),
+(@FEEBOZ,4043,0.5,1,0,1,1),
+(@FEEBOZ,4078,0.5,1,0,1,1),
+(@FEEBOZ,9890,0.5,1,0,1,1),
+(@FEEBOZ,12022,0.5,1,0,1,1),
+(@FEEBOZ,1529,0.5,1,0,1,1),
+(@FEEBOZ,9895,0.5,1,0,1,1),
+(@FEEBOZ,9896,0.5,1,0,1,1),
+(@FEEBOZ,9898,0.5,1,0,1,1),
+(@FEEBOZ,7454,0.5,1,0,1,1),
+(@FEEBOZ,15214,0.5,1,0,1,1),
+(@FEEBOZ,3874,0.5,1,0,1,1),
+(@FEEBOZ,7485,0.5,1,0,1,1),
+(@FEEBOZ,15261,0.5,1,0,1,1),
+(@FEEBOZ,9879,0.5,1,0,1,1),
+(@FEEBOZ,9876,0.5,1,0,1,1),
+(@FEEBOZ,7435,0.5,1,0,1,1),
+(@FEEBOZ,7431,0.5,1,0,1,1),
+(@FEEBOZ,1725,0.5,1,0,1,1),
+(@FEEBOZ,8746,0.5,1,0,1,1),
+(@FEEBOZ,9434,0.5,1,0,1,1),
+(@FEEBOZ,13129,0.5,1,0,1,1),
+(@FEEBOZ,9854,0.5,1,0,1,1),
+(@FEEBOZ,6416,0.5,1,0,1,1),
+(@FEEBOZ,4042,0.5,1,0,1,1),
+(@FEEBOZ,7610,0.5,1,0,1,1),
+(@FEEBOZ,7493,0.5,1,0,1,1),
+(@FEEBOZ,6411,0.5,1,0,1,1),
+(@FEEBOZ,6412,0.5,1,0,1,1),
+(@FEEBOZ,15918,0.5,1,0,1,1),
+(@FEEBOZ,1625,0.5,1,0,1,1),
+(@FEEBOZ,12040,0.5,1,0,1,1),
+(@FEEBOZ,6421,0.5,1,0,1,1),
+(@FEEBOZ,4067,0.5,1,0,1,1),
+(@FEEBOZ,4731,0.5,1,0,1,1),
+(@FEEBOZ,15234,0.5,1,0,1,1),
+(@FEEBOZ,21525,0.5,1,0,1,1),
+(@FEEBOZ,9886,0.5,1,0,1,1),
+(@FEEBOZ,9889,0.5,1,0,1,1),
+(@FEEBOZ,9893,0.5,1,0,1,1),
+(@FEEBOZ,4738,0.5,1,0,1,1),
+(@FEEBOZ,9897,0.5,1,0,1,1),
+(@FEEBOZ,9900,0.5,1,0,1,1),
+(@FEEBOZ,12030,0.5,1,0,1,1),
+(@FEEBOZ,7455,0.5,1,0,1,1),
+(@FEEBOZ,7459,0.5,1,0,1,1),
+(@FEEBOZ,1207,0.5,1,0,1,1),
+(@FEEBOZ,4300,0.5,1,0,1,1),
+(@FEEBOZ,4614,0.5,1,0,1,1),
+(@FEEBOZ,3868,0.5,1,0,1,1),
+(@FEEBOZ,3867,0.5,1,0,1,1),
+(@FEEBOZ,9293,0.5,1,0,1,1),
+(@FEEBOZ,7474,0.5,1,0,1,1),
+(@FEEBOZ,7476,0.5,1,0,1,1),
+(@FEEBOZ,7445,0.5,1,0,1,1),
+(@FEEBOZ,7440,0.5,1,0,1,1),
+(@FEEBOZ,9881,0.5,1,0,1,1),
+(@FEEBOZ,9875,0.5,1,0,1,1),
+(@FEEBOZ,11986,0.5,1,0,1,1),
+(@FEEBOZ,3800,0.5,1,0,1,1);
+
+-- Updating missing pickpocket loot temp for Feeboz
+UPDATE `creature_template` SET `pickpocketloot`=@FEEBOZ WHERE `entry`=@FEEBOZ;
+DELETE FROM `pickpocketing_loot_template` WHERE `entry`=@FEEBOZ;
+INSERT INTO `pickpocketing_loot_template` VALUES
+(@FEEBOZ,5429,18,1,0,1,1),
+(@FEEBOZ,3771,13,1,0,1,1),
+(@FEEBOZ,16883,11,1,0,1,1),
+(@FEEBOZ,3864,2,1,0,1,1);
+
+-- Updating creature loot for Znort
+DELETE FROM `creature_loot_template` WHERE `entry`=@ZNORT;
+INSERT INTO `creature_loot_template` VALUES
+(@ZNORT,4306,51,1,0,1,3),
+(@ZNORT,4539,13,1,0,1,1),
+(@ZNORT,4338,9,1,0,1,1),
+(@ZNORT,1708,4,1,0,1,1),
+(@ZNORT,1710,3,1,0,1,1),
+(@ZNORT,3827,1.2,1,0,1,1),
+(@ZNORT,3805,0.5,1,0,1,1),
+(@ZNORT,8748,0.5,1,0,1,1),
+(@ZNORT,3795,0.5,1,0,1,1),
+(@ZNORT,3797,0.5,1,0,1,1),
+(@ZNORT,3782,0.5,1,0,1,1),
+(@ZNORT,7492,0.5,1,0,1,1),
+(@ZNORT,3785,0.5,1,0,1,1),
+(@ZNORT,3780,0.5,1,0,1,1),
+(@ZNORT,3817,0.5,1,0,1,1),
+(@ZNORT,9891,0.5,1,0,1,1),
+(@ZNORT,3803,0.5,1,0,1,1),
+(@ZNORT,3784,0.5,1,0,1,1),
+(@ZNORT,3787,0.5,1,0,1,1),
+(@ZNORT,4636,0.5,1,0,1,1),
+(@ZNORT,3811,0.5,1,0,1,1),
+(@ZNORT,3807,0.5,1,0,1,1),
+(@ZNORT,3779,0.5,1,0,1,1),
+(@ZNORT,3778,0.5,1,0,1,1),
+(@ZNORT,2289,0.5,1,0,1,1),
+(@ZNORT,3781,0.5,1,0,1,1),
+(@ZNORT,3801,0.5,1,0,1,1),
+(@ZNORT,3783,0.5,1,0,1,1),
+(@ZNORT,15233,0.5,1,0,1,1),
+(@ZNORT,3786,0.5,1,0,1,1),
+(@ZNORT,6432,0.5,1,0,1,1),
+(@ZNORT,864,0.5,1,0,1,1),
+(@ZNORT,3809,0.5,1,0,1,1),
+(@ZNORT,3802,0.5,1,0,1,1),
+(@ZNORT,3796,0.5,1,0,1,1),
+(@ZNORT,3816,0.5,1,0,1,1),
+(@ZNORT,4041,0.5,1,0,1,1),
+(@ZNORT,3864,0.5,1,0,1,1),
+(@ZNORT,6419,0.5,1,0,1,1),
+(@ZNORT,15322,0.5,1,0,1,1),
+(@ZNORT,15260,0.5,1,0,1,1),
+(@ZNORT,1465,0.5,1,0,1,1),
+(@ZNORT,4421,0.5,1,0,1,1),
+(@ZNORT,4424,0.5,1,0,1,1),
+(@ZNORT,3813,0.5,1,0,1,1),
+(@ZNORT,3804,0.5,1,0,1,1),
+(@ZNORT,3806,0.5,1,0,1,1),
+(@ZNORT,3792,0.5,1,0,1,1),
+(@ZNORT,3793,0.5,1,0,1,1),
+(@ZNORT,3798,0.5,1,0,1,1),
+(@ZNORT,7909,0.5,1,0,1,1),
+(@ZNORT,4727,0.5,1,0,1,1),
+(@ZNORT,6420,0.5,1,0,1,1),
+(@ZNORT,6422,0.5,1,0,1,1),
+(@ZNORT,7480,0.5,1,0,1,1),
+(@ZNORT,9873,0.5,1,0,1,1),
+(@ZNORT,3808,0.5,1,0,1,1),
+(@ZNORT,3810,0.5,1,0,1,1),
+(@ZNORT,3812,0.5,1,0,1,1),
+(@ZNORT,3814,0.5,1,0,1,1),
+(@ZNORT,8747,0.5,1,0,1,1),
+(@ZNORT,3794,0.5,1,0,1,1),
+(@ZNORT,8006,0.5,1,0,1,1),
+(@ZNORT,4043,0.5,1,0,1,1),
+(@ZNORT,4078,0.5,1,0,1,1),
+(@ZNORT,9890,0.5,1,0,1,1),
+(@ZNORT,12022,0.5,1,0,1,1),
+(@ZNORT,1529,0.5,1,0,1,1),
+(@ZNORT,9895,0.5,1,0,1,1),
+(@ZNORT,9896,0.5,1,0,1,1),
+(@ZNORT,9898,0.5,1,0,1,1),
+(@ZNORT,7454,0.5,1,0,1,1),
+(@ZNORT,15214,0.5,1,0,1,1),
+(@ZNORT,3874,0.5,1,0,1,1),
+(@ZNORT,7485,0.5,1,0,1,1),
+(@ZNORT,15261,0.5,1,0,1,1),
+(@ZNORT,9879,0.5,1,0,1,1),
+(@ZNORT,9876,0.5,1,0,1,1),
+(@ZNORT,7435,0.5,1,0,1,1),
+(@ZNORT,7431,0.5,1,0,1,1),
+(@ZNORT,1725,0.5,1,0,1,1),
+(@ZNORT,8746,0.5,1,0,1,1),
+(@ZNORT,9434,0.5,1,0,1,1),
+(@ZNORT,13129,0.5,1,0,1,1),
+(@ZNORT,9854,0.5,1,0,1,1),
+(@ZNORT,6416,0.5,1,0,1,1),
+(@ZNORT,4042,0.5,1,0,1,1),
+(@ZNORT,7610,0.5,1,0,1,1),
+(@ZNORT,7493,0.5,1,0,1,1),
+(@ZNORT,6411,0.5,1,0,1,1),
+(@ZNORT,6412,0.5,1,0,1,1),
+(@ZNORT,15918,0.5,1,0,1,1),
+(@ZNORT,1625,0.5,1,0,1,1),
+(@ZNORT,12040,0.5,1,0,1,1),
+(@ZNORT,6421,0.5,1,0,1,1),
+(@ZNORT,4067,0.5,1,0,1,1),
+(@ZNORT,4731,0.5,1,0,1,1),
+(@ZNORT,15234,0.5,1,0,1,1),
+(@ZNORT,21525,0.5,1,0,1,1),
+(@ZNORT,9886,0.5,1,0,1,1),
+(@ZNORT,9889,0.5,1,0,1,1),
+(@ZNORT,9893,0.5,1,0,1,1),
+(@ZNORT,4738,0.5,1,0,1,1),
+(@ZNORT,9897,0.5,1,0,1,1),
+(@ZNORT,9900,0.5,1,0,1,1),
+(@ZNORT,12030,0.5,1,0,1,1),
+(@ZNORT,7455,0.5,1,0,1,1),
+(@ZNORT,7459,0.5,1,0,1,1),
+(@ZNORT,1207,0.5,1,0,1,1),
+(@ZNORT,4300,0.5,1,0,1,1),
+(@ZNORT,4614,0.5,1,0,1,1),
+(@ZNORT,3868,0.5,1,0,1,1),
+(@ZNORT,3867,0.5,1,0,1,1),
+(@ZNORT,9293,0.5,1,0,1,1),
+(@ZNORT,7474,0.5,1,0,1,1),
+(@ZNORT,7476,0.5,1,0,1,1),
+(@ZNORT,7445,0.5,1,0,1,1),
+(@ZNORT,7440,0.5,1,0,1,1),
+(@ZNORT,9881,0.5,1,0,1,1),
+(@ZNORT,9875,0.5,1,0,1,1),
+(@ZNORT,11986,0.5,1,0,1,1),
+(@ZNORT,3800,0.5,1,0,1,1);
+
+-- Adding missing pickpocket loot template for Znort
+UPDATE `creature_template` SET `pickpocketloot`=@ZNORT WHERE `entry`=@ZNORT;
+DELETE FROM `pickpocketing_loot_template` WHERE `entry`=@ZNORT;
+INSERT INTO `pickpocketing_loot_template` VALUES
+(@ZNORT,3771,17,1,0,1,1),
+(@ZNORT,16883,17,1,0,1,1),
+(@ZNORT,5429,16,1,0,1,1),
+(@ZNORT,1710,16,1,0,1,1);
+
+-- Updating creature loot for Sleeby
+DELETE FROM `creature_loot_template` WHERE `entry`=@SLEEBY;
+INSERT INTO `creature_loot_template` VALUES
+(@SLEEBY,4306,51,1,0,1,3),
+(@SLEEBY,4539,13,1,0,1,1),
+(@SLEEBY,4338,9,1,0,1,1),
+(@SLEEBY,1708,4,1,0,1,1),
+(@SLEEBY,1710,3,1,0,1,1),
+(@SLEEBY,3827,1.2,1,0,1,1),
+(@SLEEBY,3805,0.5,1,0,1,1),
+(@SLEEBY,8748,0.5,1,0,1,1),
+(@SLEEBY,3795,0.5,1,0,1,1),
+(@SLEEBY,3797,0.5,1,0,1,1),
+(@SLEEBY,3782,0.5,1,0,1,1),
+(@SLEEBY,7492,0.5,1,0,1,1),
+(@SLEEBY,3785,0.5,1,0,1,1),
+(@SLEEBY,3780,0.5,1,0,1,1),
+(@SLEEBY,3817,0.5,1,0,1,1),
+(@SLEEBY,9891,0.5,1,0,1,1),
+(@SLEEBY,3803,0.5,1,0,1,1),
+(@SLEEBY,3784,0.5,1,0,1,1),
+(@SLEEBY,3787,0.5,1,0,1,1),
+(@SLEEBY,4636,0.5,1,0,1,1),
+(@SLEEBY,3811,0.5,1,0,1,1),
+(@SLEEBY,3807,0.5,1,0,1,1),
+(@SLEEBY,3779,0.5,1,0,1,1),
+(@SLEEBY,3778,0.5,1,0,1,1),
+(@SLEEBY,2289,0.5,1,0,1,1),
+(@SLEEBY,3781,0.5,1,0,1,1),
+(@SLEEBY,3801,0.5,1,0,1,1),
+(@SLEEBY,3783,0.5,1,0,1,1),
+(@SLEEBY,15233,0.5,1,0,1,1),
+(@SLEEBY,3786,0.5,1,0,1,1),
+(@SLEEBY,6432,0.5,1,0,1,1),
+(@SLEEBY,864,0.5,1,0,1,1),
+(@SLEEBY,3809,0.5,1,0,1,1),
+(@SLEEBY,3802,0.5,1,0,1,1),
+(@SLEEBY,3796,0.5,1,0,1,1),
+(@SLEEBY,3816,0.5,1,0,1,1),
+(@SLEEBY,4041,0.5,1,0,1,1),
+(@SLEEBY,3864,0.5,1,0,1,1),
+(@SLEEBY,6419,0.5,1,0,1,1),
+(@SLEEBY,15322,0.5,1,0,1,1),
+(@SLEEBY,15260,0.5,1,0,1,1),
+(@SLEEBY,1465,0.5,1,0,1,1),
+(@SLEEBY,4421,0.5,1,0,1,1),
+(@SLEEBY,4424,0.5,1,0,1,1),
+(@SLEEBY,3813,0.5,1,0,1,1),
+(@SLEEBY,3804,0.5,1,0,1,1),
+(@SLEEBY,3806,0.5,1,0,1,1),
+(@SLEEBY,3792,0.5,1,0,1,1),
+(@SLEEBY,3793,0.5,1,0,1,1),
+(@SLEEBY,3798,0.5,1,0,1,1),
+(@SLEEBY,7909,0.5,1,0,1,1),
+(@SLEEBY,4727,0.5,1,0,1,1),
+(@SLEEBY,6420,0.5,1,0,1,1),
+(@SLEEBY,6422,0.5,1,0,1,1),
+(@SLEEBY,7480,0.5,1,0,1,1),
+(@SLEEBY,9873,0.5,1,0,1,1),
+(@SLEEBY,3808,0.5,1,0,1,1),
+(@SLEEBY,3810,0.5,1,0,1,1),
+(@SLEEBY,3812,0.5,1,0,1,1),
+(@SLEEBY,3814,0.5,1,0,1,1),
+(@SLEEBY,8747,0.5,1,0,1,1),
+(@SLEEBY,3794,0.5,1,0,1,1),
+(@SLEEBY,8006,0.5,1,0,1,1),
+(@SLEEBY,4043,0.5,1,0,1,1),
+(@SLEEBY,4078,0.5,1,0,1,1),
+(@SLEEBY,9890,0.5,1,0,1,1),
+(@SLEEBY,12022,0.5,1,0,1,1),
+(@SLEEBY,1529,0.5,1,0,1,1),
+(@SLEEBY,9895,0.5,1,0,1,1),
+(@SLEEBY,9896,0.5,1,0,1,1),
+(@SLEEBY,9898,0.5,1,0,1,1),
+(@SLEEBY,7454,0.5,1,0,1,1),
+(@SLEEBY,15214,0.5,1,0,1,1),
+(@SLEEBY,3874,0.5,1,0,1,1),
+(@SLEEBY,7485,0.5,1,0,1,1),
+(@SLEEBY,15261,0.5,1,0,1,1),
+(@SLEEBY,9879,0.5,1,0,1,1),
+(@SLEEBY,9876,0.5,1,0,1,1),
+(@SLEEBY,7435,0.5,1,0,1,1),
+(@SLEEBY,7431,0.5,1,0,1,1),
+(@SLEEBY,1725,0.5,1,0,1,1),
+(@SLEEBY,8746,0.5,1,0,1,1),
+(@SLEEBY,9434,0.5,1,0,1,1),
+(@SLEEBY,13129,0.5,1,0,1,1),
+(@SLEEBY,9854,0.5,1,0,1,1),
+(@SLEEBY,6416,0.5,1,0,1,1),
+(@SLEEBY,4042,0.5,1,0,1,1),
+(@SLEEBY,7610,0.5,1,0,1,1),
+(@SLEEBY,7493,0.5,1,0,1,1),
+(@SLEEBY,6411,0.5,1,0,1,1),
+(@SLEEBY,6412,0.5,1,0,1,1),
+(@SLEEBY,15918,0.5,1,0,1,1),
+(@SLEEBY,1625,0.5,1,0,1,1),
+(@SLEEBY,12040,0.5,1,0,1,1),
+(@SLEEBY,6421,0.5,1,0,1,1),
+(@SLEEBY,4067,0.5,1,0,1,1),
+(@SLEEBY,4731,0.5,1,0,1,1),
+(@SLEEBY,15234,0.5,1,0,1,1),
+(@SLEEBY,21525,0.5,1,0,1,1),
+(@SLEEBY,9886,0.5,1,0,1,1),
+(@SLEEBY,9889,0.5,1,0,1,1),
+(@SLEEBY,9893,0.5,1,0,1,1),
+(@SLEEBY,4738,0.5,1,0,1,1),
+(@SLEEBY,9897,0.5,1,0,1,1),
+(@SLEEBY,9900,0.5,1,0,1,1),
+(@SLEEBY,12030,0.5,1,0,1,1),
+(@SLEEBY,7455,0.5,1,0,1,1),
+(@SLEEBY,7459,0.5,1,0,1,1),
+(@SLEEBY,1207,0.5,1,0,1,1),
+(@SLEEBY,4300,0.5,1,0,1,1),
+(@SLEEBY,4614,0.5,1,0,1,1),
+(@SLEEBY,3868,0.5,1,0,1,1),
+(@SLEEBY,3867,0.5,1,0,1,1),
+(@SLEEBY,9293,0.5,1,0,1,1),
+(@SLEEBY,7474,0.5,1,0,1,1),
+(@SLEEBY,7476,0.5,1,0,1,1),
+(@SLEEBY,7445,0.5,1,0,1,1),
+(@SLEEBY,7440,0.5,1,0,1,1),
+(@SLEEBY,9881,0.5,1,0,1,1),
+(@SLEEBY,9875,0.5,1,0,1,1),
+(@SLEEBY,11986,0.5,1,0,1,1),
+(@SLEEBY,3800,0.5,1,0,1,1);
+
+-- Updating missing pickpocket loot for Sleeby
+UPDATE `creature_template` SET `pickpocketloot`=@SLEEBY WHERE `entry`=@SLEEBY;
+DELETE FROM `pickpocketing_loot_template` WHERE `entry`=@SLEEBY;
+INSERT INTO `pickpocketing_loot_template` VALUES
+(@SLEEBY,16883,53,1,0,1,1),
+(@SLEEBY,5429,10,1,0,1,1),
+(@SLEEBY,3771,6,1,0,1,1),
+(@SLEEBY,1710,5,1,0,1,1);
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_06_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_06_world_sai.sql
new file mode 100644
index 00000000000..3eeed904df9
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_06_world_sai.sql
@@ -0,0 +1,9 @@
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN(24688,24689,24690);
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(24688,0,0,0,2,0,100,6,0,20,29000,39000,11,44505,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Wretched Skulker - On Less than 20% HP - Cast Drink Fel Infusion'),
+(24688,0,1,0,0,0,100,6,6200,14000,5000,12000,11,44533,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Wretched Skulker - In Combat - Cast Wretched Stab'),
+(24689,0,0,0,2,0,100,6,0,20,23000,33000,11,44505,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Wretched Bruiser - On Less than 20% HP - Cast Drink Fel Infusion'),
+(24689,0,1,0,0,0,100,6,3800,3800,6000,11000,11,44534,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Wretched Bruiser - In Combat - Cast Wretched Strike'),
+(24690,0,0,0,2,0,100,6,0,20,29000,39000,11,44505,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Wretched Husk - On Less than 20% HP - Cast Drink Fel Infusion'),
+(24690,0,1,0,0,0,50,6,5000,5000,7000,17000,11,44503,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Wretched Husk - In Combat - Cast Wretched Fireball'),
+(24690,0,2,0,0,0,50,6,6500,6500,14000,24000,11,44504,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Wretched Husk - In Combat - Cast Wretched Frostbolt');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_07_world_creature_loot_template.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_07_world_creature_loot_template.sql
new file mode 100644
index 00000000000..402e00d685e
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_07_world_creature_loot_template.sql
@@ -0,0 +1,3 @@
+-- Gnomish Grenades have Very High drop chance
+-- http://eu.battle.net/wow/en/item/34772
+UPDATE `creature_loot_template` SET `ChanceOrQuestChance`=-90 WHERE `entry`=25449 and `item`=34772;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_08_world_player_factionchange_spells.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_08_world_player_factionchange_spells.sql
new file mode 100644
index 00000000000..1d3da3eb33b
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_08_world_player_factionchange_spells.sql
@@ -0,0 +1,5 @@
+DELETE FROM `player_factionchange_spells` WHERE `alliance_id`=59791 AND `horde_id`=59793;
+DELETE FROM `player_factionchange_spells` WHERE `alliance_id`=60114 AND `horde_id`=60116;
+INSERT INTO `player_factionchange_spells` (`alliance_id`,`horde_id`) VALUES
+(59791, 59793), -- Wooly Mammoth
+(60114, 60116); -- Armored Brown Bear
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_09_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_09_world_misc.sql
new file mode 100644
index 00000000000..10708ed06b3
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_09_world_misc.sql
@@ -0,0 +1,44 @@
+UPDATE `creature_template` SET `resistance2`=1000 WHERE `entry` IN (9816);
+UPDATE `creature_template` SET `mechanic_immune_mask`=617299803 WHERE `entry` IN (10339);
+UPDATE `creature_template` SET `spell1`=0, `spell2`=0, `spell3`=0, `spell4`=0 WHERE `entry` IN (9816,10339,10429);
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=16337 AND `ConditionValue2`=10429;
+UPDATE `creature_template` SET `unit_flags`=32832 WHERE `entry` IN (10317,10318);
+
+-- Pathing for Warchief Rend Blackhand Entry: 10429
+SET @PATH := 1379680;
+DELETE FROM `waypoint_data` WHERE `id` IN (@PATH);
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,165.4778,-452.2761,121.9753,0,0,1,0,100,0),
+(@PATH,2,165.5801,-457.3273,121.9753,0,0,1,0,100,0),
+(@PATH,3,165.5504,-465.8904,116.8073,0,0,1,0,100,0),
+(@PATH,4,165.3594,-470.635,116.8296,0,0,1,0,100,0),
+(@PATH,5,168.4351,-473.7489,116.8424,0,0,1,0,100,0),
+(@PATH,6,179.0059,-473.894,116.8424,0,52000,1,0,100,0),
+(@PATH,7,216.6058,-430.4544,110.9169,0,0,1,0,100,0),
+(@PATH,8,216.5664,-412.0932,110.9822,0,0,1,0,100,0),
+(@PATH,9,217.1734,-401.2561,111.0617,0,0,1,0,100,0),
+(@PATH,10,216.5286,-397.7477,111.0883,0,0,1,0,100,0),
+(@PATH,11,214.8428,-395.8612,111.1051,0,0,1,0,100,0),
+(@PATH,12,213.5363,-395.6153,111.1093,0,0,1,0,100,0);
+
+-- Text for Lord Victor Nefarius from sniff
+SET @VICTOR := 10162;
+DELETE FROM `creature_text` WHERE `entry` IN (@VICTOR);
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+-- Lord Victor Nefarius texts UBRS
+(@VICTOR,0,0,"Excellent... it would appear as if the meddlesome insects have arrived just in time to feed my legion. Welcome, mortals!",14,0,100,22,0,0,'Lord Victor Nefarius (UBRS)'),
+(@VICTOR,1,0,"Let not even a drop of their blood remain upon the arena floor, my children. Feast on their souls!",14,0,100,22,0,0,'Lord Victor Nefarius (UBRS)'),
+(@VICTOR,2,0,"Foolsss... Kill the one in the dress!",14,0,100,22,0,0,'Lord Victor Nefarius (UBRS)'),
+(@VICTOR,3,0,"Inconceivable!",14,0,100,22,0,0,'Lord Victor Nefarius (UBRS)'),
+(@VICTOR,4,0,"Your efforts will prove fruitless. None shall stand in our way!",14,0,100,22,0,0,'Lord Victor Nefarius (UBRS)'),
+(@VICTOR,5,0,"Do not force my hand, children! I shall use your hides to line my boots.",14,0,100,22,0,0,'Lord Victor Nefarius (UBRS)'),
+(@VICTOR,6,0,"Use the freezing breath, imbecile!",14,0,100,22,0,0,'Lord Victor Nefarius (UBRS)'),
+(@VICTOR,7,0,"THIS CANNOT BE!!! Rend, deal with these insects.",14,0,100,0,0,0,'Lord Victor Nefarius (UBRS)'),
+(@VICTOR,8,0,"The Warchief shall make quick work of you, mortals. Prepare yourselves!",14,0,100,25,0,0,'Lord Victor Nefarius (UBRS)'),
+(@VICTOR,9,0,"Taste in my power!",14,0,100,0,0,0,'Lord Victor Nefarius (UBRS)'),
+(@VICTOR,10,0,"Your victory shall be short lived. The days of both the Alliance and Horde are coming to an end! The next time we meet shall be the last.",14,0,100,5,0,0,'Lord Victor Nefarius (UBRS)'),
+(@VICTOR,11,0,"The mortals have fallen! The new age of the Blackrock legion is at hand!",14,0,100,22,0,0,'Lord Victor Nefarius (UBRS)'),
+-- Lord Victor Nefarius texts BWL
+(@VICTOR,12,0,"In this world where time is your enemy, it is my greatest ally. This grand game of life that you think you play in fact plays you. To that I say...",14,0,100,1,0,0,'Lord Victor Nefarius SAY_GAMESBEGIN_1 (BWL)'),
+(@VICTOR,13,0,"Let the games begin!",14,0,100,22,0,8280,'Lord Victor Nefarius SAY_GAMESBEGIN_2 (BWL)'),
+(@VICTOR,14,0,"Ah, the heroes. You are persistent, aren't you. Your allied attempted to match his power against mine, and had to pay the price. Now he shall serve me, by slaughtering you. Get up, little red wyrm...and destroy them!",14,0,100,23,0,8279,'Lord Victor Nefarius SAY_VAEL_INTRO (BWL)');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_10_world_creature_addon.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_10_world_creature_addon.sql
new file mode 100644
index 00000000000..3a38356e295
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_10_world_creature_addon.sql
@@ -0,0 +1 @@
+DELETE FROM `creature_addon` WHERE `guid`=121226;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_11_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_11_world_misc.sql
new file mode 100644
index 00000000000..81765d1657a
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_11_world_misc.sql
@@ -0,0 +1,18 @@
+-- Add SAI support for Silas Darkmoon
+SET @SILAS := 14823;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@SILAS;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@SILAS;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@SILAS,0,0,0,1,0,100,0,60000,60000,60000,60000,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Silas Darkmoon - OOC - Say 0');
+
+-- Text for Silas Darkmoon
+DELETE FROM `creature_text` WHERE `entry` IN (@SILAS);
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@SILAS,0,0,'Everyone enjoying themselves so far? That''s great! Welcome to the Darkmoon Faire, the greatest show on all of Azeroth! Make sure that you speak with Yebb and his friends here while you''re taking in Neblegear''s Darkmoon Zoo Bizarre.',12,0,100,0,0,0,'Silas Darkmoon'),
+(@SILAS,0,1,'We''re back and better than ever! It''s the Darkmoon Faire friend, and it''s your lucky day! Sparing no expense, we''ve gathered wonders and treats from around the world for your delight. Whether you''re young or old, rich or poor, the Darkmoon Faire has it all! Be sure to turn in your Darkmoon Faire Prize Tickets to Gelvas Grimegate, and choose from several exotic and wondrous prizes!',12,0,100,0,0,0,'Silas Darkmoon'),
+(@SILAS,0,2,'Come one, come all. Welcome to the Darkmoon Faire! Don''t be shy. Step right up to Lhara and buy yourself an exotic artifact from far off lands. If you''re one of the lucky few who have found Darkmoon Cards, have a word with Professor Paleo. Hungry? Thirsty? You''re in luck! Refreshments are available right here from Sylannia and Stamp. I recommend the Darkmoon Special Reserve to wash down some Red Hot Wings. And if the future is what you seek, then run, don''t walk, to speak with Sayge.',12,0,100,0,0,0,'Silas Darkmoon'),
+(@SILAS,0,3,'Welcome one and all to the Darkmoon Faire, the greatest event in all the world! We have it all... delicious food, strong drink, exotic artifacts, fortunes read, amazing prizes and excitement without end! Don''t forget to turn in your Darkmoon Faire Prize Tickets to Gelvas Grimegate! All it takes is five or more and you''re on your way to the most wondrous prizes on all of Azeroth. Everybody is a winner!',12,0,100,0,0,0,'Silas Darkmoon');
+
+UPDATE `waypoint_data` SET `action`=0 WHERE `id`=1376660;
+DELETE FROM `db_script_string` WHERE `entry` BETWEEN 2000000004 AND 2000000007;
+DELETE FROM `waypoint_scripts` WHERE `dataint` BETWEEN 2000000004 AND 2000000007;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_12_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_12_world_misc.sql
new file mode 100644
index 00000000000..f3a020acfd7
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_12_world_misc.sql
@@ -0,0 +1,15 @@
+-- Add SAI support for Curator Thorius
+SET @THORIUS := 8256;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@THORIUS;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@THORIUS;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@THORIUS,0,0,0,1,0,100,0,120000,120000,120000,120000,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Curator Thorius - OOC - Say 0');
+
+-- Text for Curator Thorius
+DELETE FROM `creature_text` WHERE `entry` IN (@THORIUS);
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@THORIUS,0,0,'Poor Dorius. If I ever get my hands on those Dark Irons, so help me...',12,0,100,0,0,0,'Curator Thorius');
+
+UPDATE `waypoint_data` SET `action`=0 WHERE `action`=2;
+DELETE FROM `db_script_string` WHERE `entry`=2000005000;
+DELETE FROM `waypoint_scripts` WHERE `dataint`=2000005000;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_13_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_13_world_misc.sql
new file mode 100644
index 00000000000..936c47ec132
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_13_world_misc.sql
@@ -0,0 +1,29 @@
+-- Opus already has SAI and text added
+UPDATE `creature` SET `MovementType`=0 WHERE `guid`=4567;
+DELETE FROM `creature_addon` WHERE `guid`=4567;
+UPDATE `waypoint_data` SET `action`=0 WHERE `action` BETWEEN 5 AND 13;
+DELETE FROM `waypoint_data` WHERE `id`=45670;
+DELETE FROM `db_script_string` WHERE `entry` BETWEEN 2000005001 AND 2000005009;
+DELETE FROM `waypoint_scripts` WHERE `dataint` BETWEEN 2000005001 AND 2000005009;
+DELETE FROM `db_script_string` WHERE `entry` BETWEEN 2000000107 AND 2000000109;
+
+-- Add SAI support for Warp-Huntress Kula
+SET @KULA := 32711;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@KULA;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@KULA;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@KULA;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@KULA,0,0,0,11,0,100,0,0,0,0,0,11,61616,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Warp-Huntress Kula - On Spawn - Summon Backbiter');
+
+-- Add SAI support for Thal'trak Proudtusk
+SET @THALTRAK := 9082;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@THALTRAK;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@THALTRAK;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@THALTRAK;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@THALTRAK,0,0,0,9,0,100,0,9,10,180000,180000,1,0,0,0,0,0,0,11,9079,10,0,0,0,0,0, 'Thal''trak Proudtusk - Range - Say 0');
+
+-- Text for Thal'trak Proudtusk
+DELETE FROM `creature_text` WHERE `entry` IN (@THALTRAK);
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@THALTRAK,0,0,'Well done, soldiers! At ease!',12,0,100,0,0,0,'Thal''trak Proudtusk');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_14_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_14_world_misc.sql
new file mode 100644
index 00000000000..1db707352f8
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_14_world_misc.sql
@@ -0,0 +1,82 @@
+-- Add SAI line to Inspector Tarem
+SET @TAREM := 23567;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@TAREM AND `id`=2;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@TAREM,0,2,0,1,0,100,0,60000,70000,60000,70000,1,0,0,0,0,0,0,11,9079,10,0,0,0,0,0, 'Inspector Tarem - OOC - Say 0');
+
+-- Text for Inspector Tarem
+DELETE FROM `creature_text` WHERE `entry` IN (@TAREM);
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@TAREM,0,0,'Mysterious hoofprints, scorched shields, stray badges... how do we make sense of all this?',12,0,100,6,0,0,'Inspector Tarem');
+
+-- Add SAI to Krixil Slogswitch
+SET @KRIXIL := 23573;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@KRIXIL;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@KRIXIL;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@KRIXIL,0,0,0,1,0,100,0,60000,70000,170000,180000,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Krixil Slogswitch - OOC - Say 0');
+
+-- Text for Krixil Slogswitch
+DELETE FROM `creature_text` WHERE `entry` IN (@KRIXIL);
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@KRIXIL,0,0,'I don''t think Drazzit''s going to have any luck finding anyone to kill this raptor. I mean, he''s already raised the reward twice...',12,0,100,1,0,0,'Krixil Slogswitch');
+
+-- Add SAI to Axle
+SET @AXLE := 23995;
+SET @BROGG := 23579;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@AXLE;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@AXLE;
+DELETE FROM `smart_scripts` WHERE `source_type`=9 AND `entryorguid`=@AXLE*100;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@AXLE,0,0,0,11,0,100,0,0,0,0,0,53,0,@AXLE,1,0,0,0,1,0,0,0,0,0,0,0, 'Axle - Spawn - load waypoints'),
+(@AXLE,0,1,2,40,0,100,0,4,@AXLE,0,0,54,24000,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Axle - Reach wp 4 - Pause Path'),
+(@AXLE,0,2,0,61,0,100,0,0,0,0,0,80,@AXLE*100,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Axle - Reach wp 4 - Run Script'),
+(@AXLE,0,3,4,40,0,100,0,8,@AXLE,0,0,54,140000,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Axle - Reach wp 8 - Pause Path'),
+(@AXLE,0,4,0,61,0,100,0,0,0,0,0,66,@AXLE,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Axle - Reach wp 8 - Turn to'),
+(@AXLE*100,9,0,0,0,0,100,0,4000,4000,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Axle - Script - Say 0'),
+(@AXLE*100,9,1,0,0,0,100,0,4000,4000,0,0,1,0,0,0,0,0,0,11,@BROGG,10,0,0,0,0,0, 'Axle - Script - brogg Say 0'),
+(@AXLE*100,9,2,0,0,0,100,0,4000,4000,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Axle - Script - Say 1'),
+(@AXLE*100,9,3,0,0,0,100,0,4000,4000,0,0,1,1,0,0,0,0,0,11,@BROGG,10,0,0,0,0,0, 'Axle - Script - brogg Say 1'),
+(@AXLE*100,9,4,0,0,0,100,0,4000,4000,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Axle - Script - Say 2');
+
+UPDATE `creature` SET `position_x`=-4629.937,`position_y`=-3176.124,`position_z`=41.22349,`orientation`=6.263439 WHERE `id`=@AXLE;
+
+DELETE FROM `waypoints` WHERE `entry`=@AXLE;
+INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`point_comment`) VALUES
+(@AXLE,1,-4627.793,-3176.207,41.40616, 'Axle'),
+(@AXLE,2,-4617.293,-3178.556,34.95082, 'Axle'),
+(@AXLE,3,-4615.726,-3176.381,34.81108, 'Axle'),
+(@AXLE,4,-4618.000,-3175.210,34.81240, 'Axle'),
+(@AXLE,5,-4615.726,-3176.381,34.81108, 'Axle'),
+(@AXLE,6,-4617.293,-3178.556,34.95082, 'Axle'),
+(@AXLE,7,-4627.793,-3176.207,41.40616, 'Axle'),
+(@AXLE,8,-4629.937,-3176.124,41.22349, 'Axle');
+
+-- Text for Axle
+DELETE FROM `creature_text` WHERE `entry` IN (@AXLE);
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@AXLE,0,0,'I thought we talked about this, Brogg. You can''t stay in this building. Sure, it can house you, but there''s no room for anyone else!',12,0,100,1,0,0,'Axle'),
+(@AXLE,1,0,'Yes, we said you can stay here, but this building is our headquarters! All of our manuals and blueprints are stored here!',12,0,100,1,0,0,'Axle'),
+(@AXLE,2,0,'I''m inclined to say they made ogres too big! I can see I''m not going to convince you to move now, but don''t think this is permanent!',12,0,100,1,0,0,'Axle');
+
+-- Text for Brogg
+DELETE FROM `creature_text` WHERE `entry` IN (@BROGG);
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@BROGG,0,0,'You said Brogg could stay here! You promised Brogg you'' help regain Stonemaul clan Mound!',12,0,100,1,0,0,'Brogg'),
+(@BROGG,1,0,'But this the only building that fit Brogg! Goblins make buildings too small!',12,0,100,1,0,0,'Brogg');
+
+UPDATE `creature` SET `MovementType`=0 WHERE `guid`=18594;
+DELETE FROM `creature_addon` WHERE `guid`=18594;
+DELETE FROM `waypoint_data` WHERE `id`=185940;
+UPDATE `creature` SET `MovementType`=0 WHERE `guid`=18597;
+DELETE FROM `creature_addon` WHERE `guid`=18597;
+DELETE FROM `waypoint_data` WHERE `id`=185970;
+UPDATE `creature` SET `MovementType`=0 WHERE `guid`=18598;
+DELETE FROM `creature_addon` WHERE `guid`=18598;
+DELETE FROM `waypoint_data` WHERE `id`=185980;
+UPDATE `creature` SET `MovementType`=0 WHERE `guid`=18599;
+DELETE FROM `creature_addon` WHERE `guid`=18599;
+DELETE FROM `waypoint_data` WHERE `id`=185990;
+UPDATE `waypoint_data` SET `action`=0 WHERE `action` BETWEEN 14 AND 21;
+DELETE FROM `db_script_string` WHERE `entry` BETWEEN 2000005010 AND 2000005017;
+DELETE FROM `waypoint_scripts` WHERE `dataint` BETWEEN 2000005010 AND 2000005017;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_15_world_waypoints.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_15_world_waypoints.sql
new file mode 100644
index 00000000000..7d77c68a96c
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_15_world_waypoints.sql
@@ -0,0 +1,243 @@
+-- Pathing for Silverback Patriarch Entry: 1558
+SET @NPC := 749;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-13838.81,`position_y`=-41.79492,`position_z`=57.10373 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,-13838.81,-41.79492,57.10373,0,0,0,0,100,0),
+(@PATH,2,-13838.5,-38.40104,57.65744,0,0,0,0,100,0),
+(@PATH,3,-13836.35,-38.66819,59.79758,0,0,0,0,100,0),
+(@PATH,4,-13832.86,-39.19607,63.04682,0,0,0,0,100,0),
+(@PATH,5,-13831.31,-36.38173,64.45819,0,0,0,0,100,0),
+(@PATH,6,-13830.13,-33.02333,65.43832,0,0,0,0,100,0),
+(@PATH,7,-13828.11,-29.58236,66.1478,0,0,0,0,100,0),
+(@PATH,8,-13824.51,-25.85015,65.75058,0,0,0,0,100,0),
+(@PATH,9,-13830.01,-34.07888,65.5036,0,0,0,0,100,0),
+(@PATH,10,-13831.8,-38.61513,63.99628,0,0,0,0,100,0),
+(@PATH,11,-13833.62,-39.39497,62.43454,0,0,0,0,100,0),
+(@PATH,12,-13836.13,-38.83323,60.02853,0,0,0,0,100,0),
+(@PATH,13,-13838.13,-38.85352,58.11642,0,0,0,0,100,0),
+(@PATH,14,-13839.39,-40.52235,56.70822,0,0,0,0,100,0),
+(@PATH,15,-13838.61,-42.74751,57.09225,0,0,0,0,100,0),
+(@PATH,16,-13836.2,-45.23134,57.99826,0,0,0,0,100,0),
+(@PATH,17,-13835.5,-48.41515,57.52194,0,0,0,0,100,0),
+(@PATH,18,-13836.58,-51.4235,56.96213,0,0,0,0,100,0),
+(@PATH,19,-13836.19,-54.46452,56.9155,0,0,0,0,100,0),
+(@PATH,20,-13833.54,-58.13335,56.65427,0,0,0,0,100,0),
+(@PATH,21,-13829.67,-61.67665,56.68818,0,0,0,0,100,0),
+(@PATH,22,-13826.99,-63.81337,56.73749,0,0,0,0,100,0),
+(@PATH,23,-13832.18,-58.75868,56.71039,0,0,0,0,100,0),
+(@PATH,24,-13835.33,-53.75391,57.13693,0,0,0,0,100,0),
+(@PATH,25,-13835.29,-48.64996,57.6257,0,0,0,0,100,0),
+(@PATH,26,-13836.21,-45.25011,57.99411,0,0,0,0,100,0);
+-- .go -13838.81 -41.79492 57.10373
+
+-- Pathing for Bloodsail Deckhand Entry: 4505
+SET @NPC := 2597;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-14943.2,`position_y`=356.997,`position_z`=12.59546 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,-14943.2,356.997,12.59546,0,0,0,0,100,0),
+(@PATH,2,-14940.8,348.512,7.541732,0,0,0,0,100,0),
+(@PATH,3,-14940.6,346.788,7.541214,0,0,0,0,100,0),
+(@PATH,4,-14944.1,346.391,7.542305,0,0,0,0,100,0),
+(@PATH,5,-14949.2,345.878,7.542548,0,0,0,0,100,0),
+(@PATH,6,-14955.6,344.557,7.542547,0,0,0,0,100,0),
+(@PATH,7,-14954.4,340.313,7.542553,0,0,0,0,100,0),
+(@PATH,8,-14955.6,344.557,7.542547,0,0,0,0,100,0),
+(@PATH,9,-14949.2,345.878,7.542548,0,0,0,0,100,0),
+(@PATH,10,-14944.1,346.391,7.542305,0,0,0,0,100,0),
+(@PATH,11,-14940.6,346.788,7.541214,0,0,0,0,100,0),
+(@PATH,12,-14940.8,348.512,7.541732,0,0,0,0,100,0),
+(@PATH,13,-14942.7,355.733,12.4607,0,0,0,0,100,0),
+(@PATH,14,-14944.9,357.038,12.59546,0,0,0,0,100,0);
+-- .go -14943.2 356.997 12.59546
+
+-- Pathing for Bloodsail Deckhand Entry: 4505
+SET @NPC := 2629;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-14979.3,`position_y`=265.158,`position_z`=7.921213 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,-14979.3,265.158,7.921213,0,0,0,0,100,0),
+(@PATH,2,-14974.15,264.915,7.921058,0,0,0,0,100,0),
+(@PATH,3,-14968.1,264.92,4.665063,0,0,0,0,100,0),
+(@PATH,4,-14965.3,267.002,4.658327,0,0,0,0,100,0),
+(@PATH,5,-14975.79,269.4849,0.9351397,0,0,0,0,100,0),
+(@PATH,6,-14965.2,268.908,4.658086,0,0,0,0,100,0),
+(@PATH,7,-14965,264.917,4.657606,0,0,0,0,100,0),
+(@PATH,8,-14968.2,264.917,4.665308,0,0,0,0,100,0),
+(@PATH,9,-14974.2,264.797,7.881999,0,0,0,0,100,0);
+-- .go -14979.3 265.158 7.921213
+
+-- Pathing for Bloodsail Elder Magus Entry: 1653
+SET @NPC := 2592;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-14956.4,`position_y`=353.116,`position_z`=7.54255 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,-14956.4,353.116,7.54255,0,0,0,0,100,0),
+(@PATH,2,-14949.4,356.132,7.54255,0,0,0,0,100,0),
+(@PATH,3,-14944.9,357.394,7.544742,0,0,0,0,100,0),
+(@PATH,4,-14936.1,355.807,7.542393,0,0,0,0,100,0),
+(@PATH,5,-14934.4,350.286,7.54255,0,0,0,0,100,0),
+(@PATH,6,-14936.1,355.807,7.542393,0,0,0,0,100,0),
+(@PATH,7,-14944.9,357.394,7.544742,0,0,0,0,100,0),
+(@PATH,8,-14949.4,356.132,7.54255,0,0,0,0,100,0),
+(@PATH,9,-14956.4,353.116,7.54255,0,0,0,0,100,0),
+(@PATH,10,-14962.9,351.408,7.544349,0,0,0,0,100,0),
+(@PATH,11,-14971.6,347.196,7.542575,0,0,0,0,100,0),
+(@PATH,12,-14962.9,351.408,7.544349,0,0,0,0,100,0);
+-- .go -14956.4 353.116 7.54255
+
+-- Pathing for Bloodsail Sea Dog Entry: 1565
+SET @NPC := 2633;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-14998.4,`position_y`=261.767,`position_z`=7.921235 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,-14998.4,261.767,7.921235,0,0,0,0,100,0),
+(@PATH,2,-14995,261.635,7.921237,0,0,0,0,100,0),
+(@PATH,3,-14993.8,266.361,6.306773,0,0,0,0,100,0),
+(@PATH,4,-14992.8,266.477,6.306773,0,0,0,0,100,0),
+(@PATH,5,-14993.18,266.3545,6.306773,0,0,0,0,100,0),
+(@PATH,6,-14993.3,261.415,7.922341,0,0,0,0,100,0),
+(@PATH,7,-14994.1,256.648,7.922004,0,0,0,0,100,0),
+(@PATH,8,-14995,261.635,7.921237,0,0,0,0,100,0),
+(@PATH,9,-14998.4,261.767,7.921235,0,0,0,0,100,0),
+(@PATH,10,-14999.5,257.26,7.921242,0,0,0,0,100,0),
+(@PATH,11,-14999.7,269.5383,7.921235,0,0,0,0,100,0),
+(@PATH,12,-14999.24,270.291,7.921232,0,0,0,0,100,0),
+(@PATH,13,-14994.7,270.899,7.921236,0,0,0,0,100,0),
+(@PATH,14,-14993.9,275.938,7.921239,0,0,0,0,100,0),
+(@PATH,15,-14992.9,271.8,7.921234,0,0,0,0,100,0),
+(@PATH,16,-14987.2,270.889,7.923097,0,0,0,0,100,0),
+(@PATH,17,-14982.9,272.309,7.921443,0,0,0,0,100,0),
+(@PATH,18,-14982.7,275.998,7.921844,0,0,0,0,100,0),
+(@PATH,19,-14982.8,272.679,7.921484,0,0,0,0,100,0),
+(@PATH,20,-14977,272.87,7.921478,0,0,0,0,100,0),
+(@PATH,21,-14976.6,275.734,7.921723,0,0,0,0,100,0),
+(@PATH,22,-14977,257.986,7.921237,0,0,0,0,100,0),
+(@PATH,23,-14977.7,261.219,7.921233,0,0,0,0,100,0),
+(@PATH,24,-14982.1,261.434,7.921239,0,0,0,0,100,0),
+(@PATH,25,-14982.8,258.325,7.92124,0,0,0,0,100,0),
+(@PATH,26,-14982.1,261.434,7.921239,0,0,0,0,100,0),
+(@PATH,27,-14979.8,261.929,7.921233,0,0,0,0,100,0),
+(@PATH,28,-14977,257.986,7.921237,0,0,0,0,100,0),
+(@PATH,29,-14977,272.87,7.921478,0,0,0,0,100,0),
+(@PATH,30,-14982.8,272.679,7.921484,0,0,0,0,100,0),
+(@PATH,31,-14982.7,275.998,7.921844,0,0,0,0,100,0),
+(@PATH,32,-14982.9,272.309,7.921443,0,0,0,0,100,0),
+(@PATH,33,-14987.2,270.889,7.923097,0,0,0,0,100,0),
+(@PATH,34,-14992.73,271.7733,7.921853,0,0,0,0,100,0),
+(@PATH,35,-14993.9,275.938,7.921239,0,0,0,0,100,0),
+(@PATH,36,-14994.7,270.899,7.921236,0,0,0,0,100,0),
+(@PATH,37,-14999.24,270.291,7.921235,0,0,0,0,100,0),
+(@PATH,38,-14999.4,275.372,7.92124,0,0,0,0,100,0),
+(@PATH,39,-14999.7,269.592,7.921232,0,0,0,0,100,0),
+(@PATH,40,-14999.5,257.26,7.921242,0,0,0,0,100,0);
+-- .go -14998.4 261.767 7.921235
+
+-- Pathing for Bloodsail Deckhand Entry: 4505
+SET @NPC := 2598;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-14960.1,`position_y`=342.326,`position_z`=7.543998 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,-14960.1,342.326,7.543998,0,0,0,0,100,0),
+(@PATH,2,-14956.5,345.042,7.542546,0,0,0,0,100,0),
+(@PATH,3,-14951.4,349.271,7.542691,0,0,0,0,100,0),
+(@PATH,4,-14956.5,345.042,7.542546,0,0,0,0,100,0),
+(@PATH,5,-14960.1,342.326,7.543998,0,0,0,0,100,0),
+(@PATH,6,-14969,340.03,7.542808,0,0,0,0,100,0),
+(@PATH,7,-14974.56,345.089,7.542461,0,0,0,0,100,0),
+(@PATH,8,-14977,344.637,7.117788,0,0,0,0,100,0),
+(@PATH,9,-14982.7,343.339,4.284928,0,0,0,0,100,0),
+(@PATH,10,-14984.6,341.158,4.279126,0,0,0,0,100,0),
+(@PATH,11,-14982.7,343.339,4.284928,0,0,0,0,100,0),
+(@PATH,12,-14977,344.637,7.117788,0,0,0,0,100,0),
+(@PATH,13,-14974.6,345.128,7.542428,0,0,0,0,100,0),
+(@PATH,14,-14969,340.03,7.542808,0,0,0,0,100,0);
+-- .go -14960.1 342.326 7.543998
+
+-- Pathing for Guard Lasiter Entry: 4973
+SET @NPC := 30458;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-3772.623,`position_y`=-4533.357,`position_z`=11.58731 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,-3772.623,-4533.357,11.58731,0,22000,0,0,100,0),
+(@PATH,2,-3770.078,-4531.741,11.54261,0,24000,0,0,100,0);
+-- .go -3772.623 -4533.357 11.58731
+
+-- Pathing for Privateer Entry: 23620
+SET @NPC := 31209;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-4060.446,`position_y`=-4506.618,`position_z`=6.030344 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,-4060.446,-4506.618,6.030344,0,0,0,0,100,0),
+(@PATH,2,-4059.9,-4511.36,6.031829,0,0,0,0,100,0),
+(@PATH,3,-4060.427,-4506.697,6.03091,0,0,0,0,100,0),
+(@PATH,4,-4066.929,-4501.822,6.031856,0,0,0,0,100,0),
+(@PATH,5,-4072.242,-4506.002,6.032337,0,0,0,0,100,0),
+(@PATH,6,-4066.929,-4501.822,6.031856,0,0,0,0,100,0);
+-- .go -4060.446 -4506.618 6.030344
+
+-- Pathing for Sergeant Amelyn Entry: 23835
+SET @NPC := 18589;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-3839.592,`position_y`=-4562.359,`position_z`=8.639986 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,4097,2402, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,-3839.592,-4562.359,8.639986,0,0,0,0,100,0),
+(@PATH,2,-3834.418,-4560.115,8.764986,0,0,0,0,100,0),
+(@PATH,3,-3831.503,-4554.752,9.017159,0,0,0,0,100,0),
+(@PATH,4,-3832.31,-4547.42,9.267159,0,0,0,0,100,0),
+(@PATH,5,-3837.411,-4543.646,9.264986,0,0,0,0,100,0),
+(@PATH,6,-3843.691,-4542.708,9.139986,0,0,0,0,100,0),
+(@PATH,7,-3848.835,-4545.314,8.889986,0,0,0,0,100,0),
+(@PATH,8,-3852.152,-4551.402,8.514986,0,0,0,0,100,0),
+(@PATH,9,-3849.583,-4557.867,8.514986,0,0,0,0,100,0),
+(@PATH,10,-3846.69,-4558.219,8.514986,0,0,0,0,100,0),
+(@PATH,11,-3846.69,-4558.219,8.514986,3.892084,50000,0,0,100,0),
+(@PATH,12,-3844.929,-4561.821,8.514986,0,0,0,0,100,0);
+-- .go -3839.592 -4562.359 8.639986
+
+-- Pathing for Zanzil Zombie Entry: 1488
+SET @NPC := 2244;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-13646.8,`position_y`=-274.549,`position_z`=8.300073 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,-13646.8,-274.549,8.300073,0,0,0,0,100,0),
+(@PATH,2,-13634.3,-280.575,8.300073,0,0,0,0,100,0),
+(@PATH,3,-13624.5,-285.943,8.300567,0,0,0,0,100,0),
+(@PATH,4,-13622.9,-293.137,8.425567,0,0,0,0,100,0),
+(@PATH,5,-13635.7,-313.58,8.309404,0,0,0,0,100,0),
+(@PATH,6,-13641.1,-314.866,8.184404,0,0,0,0,100,0),
+(@PATH,7,-13649.3,-309.953,8.184404,0,0,0,0,100,0),
+(@PATH,8,-13655,-302.635,8.184404,0,0,0,0,100,0),
+(@PATH,9,-13656,-290.47,8.300073,0,0,0,0,100,0);
+-- 0xF53005D300674CA0 .go -13646.8 -274.549 8.300073
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_16_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_16_world_misc.sql
new file mode 100644
index 00000000000..7e7494e58cd
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_06_30_16_world_misc.sql
@@ -0,0 +1,104 @@
+-- Add SAI to Warosh
+SET @WAROSH := 10799;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@WAROSH;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@WAROSH;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@WAROSH,0,0,0,1,0,100,0,20000,20000,20000,20000,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Warosh - OOC - Say 0');
+-- Text for Warosh
+DELETE FROM `creature_text` WHERE `entry` IN (@WAROSH);
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@WAROSH,0,0,'%s cries.',16,0,100,0,0,0,'Warosh'),
+(@WAROSH,0,1,'%s snorts.',16,0,100,0,0,0,'Warosh'),
+(@WAROSH,0,2,'%s grumbles.',16,0,100,0,0,0,'Warosh');
+
+-- Add missing and path Warosh Entry: 10799
+SET @NPC := 17;
+SET @PATH := @NPC * 10;
+DELETE FROM `creature` WHERE `guid`=@NPC;
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+(@NPC,10799,229,1,1,0,0,81.104,-479.903,30.86245,3.124139,7200,0,0,1,0,2);
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,81.104,-479.903,30.86245,0,0,0,0,100,0),
+(@PATH,2,73.26363,-487.8571,27.89152,0,0,0,0,100,0),
+(@PATH,3,54.61135,-489.3818,28.67157,0,0,0,0,100,0),
+(@PATH,4,44.71681,-491.037,29.5888,0,0,0,0,100,0),
+(@PATH,5,52.57936,-511.4861,29.06968,0,0,0,0,100,0),
+(@PATH,6,50.58394,-533.1805,26.7767,0,0,0,0,100,0),
+(@PATH,7,50.20008,-560.1547,30.55615,0,0,0,0,100,0),
+(@PATH,8,50.46281,-576.035,30.58308,0,0,0,0,100,0),
+(@PATH,9,39.68649,-579.5075,31.06343,0,0,0,0,100,0),
+(@PATH,10,17.70853,-578.2368,26.5612,0,0,0,0,100,0),
+(@PATH,11,-5.465746,-576.0652,29.19087,0,0,0,0,100,0),
+(@PATH,12,-27.13421,-574.506,29.19087,0,0,0,0,100,0),
+(@PATH,13,-47.66818,-572.6104,29.19087,0,0,0,0,100,0),
+(@PATH,14,-60.44478,-573.6581,29.19087,0,0,0,0,100,0),
+(@PATH,15,-43.34514,-571.0668,29.19087,0,0,0,0,100,0),
+(@PATH,16,-36.48037,-563.5282,29.19087,0,0,0,0,100,0),
+(@PATH,17,-48.5064,-537.1736,29.19087,0,0,0,0,100,0),
+(@PATH,18,-36.48037,-563.5282,29.19087,0,0,0,0,100,0),
+(@PATH,19,-43.34514,-571.0668,29.19087,0,0,0,0,100,0),
+(@PATH,20,-60.44478,-573.6581,29.19087,0,0,0,0,100,0),
+(@PATH,21,-47.66818,-572.6104,29.19087,0,0,0,0,100,0),
+(@PATH,22,-27.13421,-574.506,29.19087,0,0,0,0,100,0),
+(@PATH,23,-5.465746,-576.0652,29.19087,0,0,0,0,100,0),
+(@PATH,24,17.42213,-578.2202,26.65305,0,0,0,0,100,0),
+(@PATH,25,39.67855,-579.5101,31.09808,0,0,0,0,100,0),
+(@PATH,26,50.46281,-576.035,30.58308,0,0,0,0,100,0),
+(@PATH,27,50.20008,-560.1547,30.55615,0,0,0,0,100,0),
+(@PATH,28,50.58394,-533.1805,26.7767,0,0,0,0,100,0),
+(@PATH,29,52.60767,-511.5597,29.21094,0,0,0,0,100,0),
+(@PATH,30,44.71681,-491.037,29.5888,0,0,0,0,100,0),
+(@PATH,31,54.37603,-489.401,28.65347,0,51000,0,0,100,0),
+(@PATH,32,73.26363,-487.8571,27.89152,0,0,0,0,100,0),
+(@PATH,33,81.104,-479.903,30.86245,0,0,0,0,100,0),
+(@PATH,34,78.66329,-463.2451,35.48121,0,0,0,0,100,0),
+(@PATH,35,71.58976,-436.8153,41.41042,0,0,0,0,100,0),
+(@PATH,36,58.41603,-418.7091,45.02646,0,0,0,0,100,0),
+(@PATH,37,49.90298,-402.1319,48.80593,0,0,0,0,100,0),
+(@PATH,38,46.01845,-387.0023,48.69103,0,0,0,0,100,0),
+(@PATH,39,49.90298,-402.1319,48.80593,0,0,0,0,100,0),
+(@PATH,40,58.41603,-418.7091,45.02646,0,0,0,0,100,0),
+(@PATH,41,71.58976,-436.8153,41.41042,0,0,0,0,100,0);
+-- 0xF130002A2F01FCD8 .go 81.104 -479.903 30.86245
+
+-- Pathing for Spirestone Butcher Entry: 9219
+SET @NPC := 43523;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-36.58493,`position_y`=-441.9179,`position_z`=31.83226 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,-36.58493,-441.9179,31.83226,0,0,0,0,100,0),
+(@PATH,2,-37.40374,-482.51,29.62917,0,0,0,0,100,0),
+(@PATH,3,-37.18431,-487.9846,29.38416,0,0,0,0,100,0),
+(@PATH,4,-37.40374,-482.51,29.62917,0,0,0,0,100,0),
+(@PATH,5,-36.58493,-441.9179,31.83226,0,0,0,0,100,0),
+(@PATH,6,-37.03431,-412.0911,31.57773,0,0,0,0,100,0);
+-- .go -36.58493 -441.9179 31.83226
+
+-- Pathing for Smolderthorn Mystic Entry: 9239
+SET @NPC := 43527;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-2.398426,`position_y`=-461.1257,`position_z`=16.14088 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,-2.398426,-461.1257,16.14088,0,0,0,0,100,0),
+(@PATH,2,2.359199,-464.0517,16.06489,0,0,0,0,100,0),
+(@PATH,3,2.3592,-464.0517,16.06489,2.216568,21000,0,0,100,0),
+(@PATH,4,1.288787,-463.5652,16.07071,0,0,0,0,100,0),
+(@PATH,5,-2.044648,-461.8262,16.13557,0,0,0,0,100,0),
+(@PATH,6,-7.927852,-461.18,16.73,0,0,0,0,100,0),
+(@PATH,7,-15.24469,-460.3805,16.55355,0,0,0,0,100,0),
+(@PATH,8,-21.31746,-455.7214,16.58231,0,0,0,0,100,0),
+(@PATH,9,-22.68492,-451.7054,16.6012,0,0,0,0,100,0),
+(@PATH,10,-22.68492,-451.7054,16.6012,0.7504916,23000,0,0,100,0),
+(@PATH,11,-19.41172,-457.9942,16.57828,0,0,0,0,100,0),
+(@PATH,12,-13.95378,-460.6527,16.58616,0,0,0,0,100,0),
+(@PATH,13,-7.328142,-460.9917,16.72944,0,0,0,0,100,0);
+-- .go -2.398426 -461.1257 16.14088
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_01_00_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_01_00_world_misc.sql
new file mode 100644
index 00000000000..f1812ed2b49
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_01_00_world_misc.sql
@@ -0,0 +1,31 @@
+-- Text for Halycon
+DELETE FROM `creature_text` WHERE `entry` IN (10220);
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(10220,0,0,'%s lets loose a guttural growl as her body collapses. A horrifying howl can be heard echoing through the halls of Blackrock Spire. Something is very, very angry.',16,0,100,0,0,0,'Halycon DEATH');
+
+-- Text for Urok Doomhowl
+DELETE FROM `creature_text` WHERE `entry` IN (10584);
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(10584,0,0,'You have summoned me, fool! Now DIE!',14,0,100,0,0,0,'Urok Doomhowl SUMMON'),
+(10584,1,0,'Me smash! You die!',12,0,100,0,0,0,'Urok Doomhowl AGGRO');
+
+DELETE FROM `creature` WHERE `guid`=44457;
+DELETE FROM `creature` WHERE `guid`=45844;
+DELETE FROM `gameobject` WHERE `id`=175584;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=10268;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=10584;
+UPDATE `gameobject` SET `position_x`=-14.35011,`position_y`=-395.8278,`position_z`=48.50652,`orientation`=3.141593,`rotation2`=-1,`rotation3`=0 WHERE `guid`=99791;
+
+UPDATE `creature_template` SET `AIName`= '', `ScriptName`= 'boss_gizrul_the_slavener' WHERE `entry`=10268;
+UPDATE `creature_template` SET `AIName`= '', `ScriptName`= 'boss_urok_doomhowl' WHERE `entry`=10584;
+
+-- Pathing for Gizrul the Slavener Entry: 10268
+SET @PATH := 402450;
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,-166.7968,-381.5575,64.40081,0,0,1,0,100,0),
+(@PATH,2,-166.8486,-370.3099,64.40081,0,0,1,0,100,0),
+(@PATH,3,-166.4099,-356.3583,64.40081,0,0,1,0,100,0),
+(@PATH,4,-166.0918,-341.4831,64.40081,0,0,1,0,100,0),
+(@PATH,5,-168.4625,-328.9532,64.40081,0,0,1,0,100,0),
+(@PATH,6,-173.3950,-325.9816,64.40932,0,0,1,0,100,0);
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_01_01_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_01_01_world_misc.sql
new file mode 100644
index 00000000000..0ffd041aa7c
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_01_01_world_misc.sql
@@ -0,0 +1,5 @@
+DELETE FROM `waypoint_scripts` WHERE `id` BETWEEN 16 AND 18;
+DELETE FROM `db_script_string` WHERE `entry` IN (2000000107,2000000108);
+INSERT INTO `db_script_string` (`entry`,`content_default`) VALUES
+(2000000107, 'These aren''t Shango''s tracks.'),
+(2000000108, 'These tracks must belong to Shango.');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_01_02_world_creature.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_01_02_world_creature.sql
new file mode 100644
index 00000000000..3e8e00f9779
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_01_02_world_creature.sql
@@ -0,0 +1,6 @@
+DELETE FROM `creature` WHERE `guid` IN (44456,45095,40507,40508);
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+(44456,9197,229,1,1,0,0,-40.63613,-372.2156,50.56116,0.8552113,10800,5,0,1,0,1),
+(45095,9197,229,1,1,0,0,-22.85546,-377.8695,49.04873,6.161012,10800,5,0,1,0,1),
+(40507,9216,229,1,1,0,0,-44.31393,-364.7873,52.05709,1.832596,10800,5,0,1,0,1),
+(40508,9216,229,1,1,0,0,-16.89405,-385.1013,48.95151,0.5934119,10800,5,0,1,0,1);
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_01_03_world_creature_template.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_01_03_world_creature_template.sql
new file mode 100644
index 00000000000..6813f7d5156
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_01_03_world_creature_template.sql
@@ -0,0 +1,4 @@
+UPDATE `creature_template` SET `ScriptName`='' WHERE `entry` IN (14282,10876,14389);
+UPDATE `creature_template` SET `AIName`='' WHERE `entry` IN (11946,11947,11948,11949,14762,14763,14764,14765,14772,14773,14776,14777);
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (11947,11948);
+DELETE FROM `creature_ai_scripts` WHERE `creature_id` IN (14762,14763,14764,14765,14772,14773,14776,14777);
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_01_04_world_gameobject.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_01_04_world_gameobject.sql
new file mode 100644
index 00000000000..f53850871fe
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_01_04_world_gameobject.sql
@@ -0,0 +1,2 @@
+UPDATE `gameobject_template` SET `flags`=16 WHERE `entry` IN (181366,193426);
+UPDATE `gameobject` SET `position_x`=2516.595,`position_y`=-2946.82,`position_z`=245.5516,`orientation`=5.480335,`rotation2`=0,`rotation3`=0,`animprogress`=255 WHERE `id` IN (181366,193426);
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_01_05_world_creature_text.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_01_05_world_creature_text.sql
new file mode 100644
index 00000000000..808022ada14
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_01_05_world_creature_text.sql
@@ -0,0 +1,33 @@
+SET @AKAMA := 23089;
+SET @ILLIDAN := 22917;
+SET @FLAMEOFAZZINOTH := 22997;
+SET @MAIEV := 23197;
+DELETE FROM `creature_text` WHERE `entry` IN (@AKAMA, @ILLIDAN, @FLAMEOFAZZINOTH, @MAIEV);
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@AKAMA,0,0, "Be wary friends, The Betrayer meditates in the court just beyond.",14,0,100,0,0,11388, 'Akama SAY_AKAMA_BEWARE'),
+(@AKAMA,1,0, "I'll deal with these mongrels. Strike now, friends! Strike at the betrayer!",14,0,100,0,0,11390, 'Akama SAY_AKAMA_LEAVE'),
+(@ILLIDAN,0,0, "Come, my minions. Deal with this traitor as he deserves!",14,0,100,0,0,11465, 'Illidan SAY_ILLIDAN_MINION'),
+(@ILLIDAN,1,0, "Who shall be next to taste my blades?!",14,0,100,0,0,11473, 'Illidan SAY_ILLIDAN_KILL'),
+(@ILLIDAN,1,1, "This is too easy!",14,0,100,0,0,11472, 'Illidan SAY_ILLIDAN_KILL'),
+(@ILLIDAN,2,0, "I will not be touched by rabble such as you!",14,0,100,0,0,11479, 'Illidan SAY_ILLIDAN_TAKEOFF'),
+(@ILLIDAN,3,0, "Behold the flames of Azzinoth!",14,0,100,0,0,11480, 'Illidan SAY_ILLIDAN_SUMMONFLAMES'),
+(@ILLIDAN,4,0, "Stare into the eyes of the Betrayer!",14,0,100,0,0,11481, 'Illidan SAY_ILLIDAN_EYE_BLAST'),
+(@ILLIDAN,5,0, "Behold the power... of the demon within!",14,0,100,0,0,11475, 'Illidan SAY_ILLIDAN_MORPH'),
+(@ILLIDAN,6,0, "You've wasted too much time mortals, now you shall fall!",14,0,100,0,0,11474, 'Illidan SAY_ILLIDAN_ENRAGE'),
+(@ILLIDAN,7,0, "I can feel your hatred.",14,0,100,0,0,11467, 'Illidan SAY_ILLIDAN_TAUNT'),
+(@ILLIDAN,7,1, "Give in to your fear!",14,0,100,0,0,11468, 'Illidan SAY_ILLIDAN_TAUNT'),
+(@ILLIDAN,7,2, "You know nothing of power!",14,0,100,0,0,11469, 'Illidan SAY_ILLIDAN_TAUNT'),
+(@ILLIDAN,7,3, "Such... arrogance!",14,0,100,0,0,11471, 'Illidan SAY_ILLIDAN_TAUNT'),
+(@FLAMEOFAZZINOTH,0,0, "%s sets its gaze on $N!",16,0,100,0,0,0, 'Flame of Azzinoth EMOTE_AZZINOTH_GAZE'),
+(@MAIEV,0,0, "That is for Naisha!",14,0,100,0,0,11493, 'Maiev Shadowsong SAY_MAIEV_SHADOWSONG_TAUNT'),
+(@MAIEV,0,1, "Bleed as I have bled!",14,0,100,0,0,11494, 'Maiev Shadowsong SAY_MAIEV_SHADOWSONG_TAUNT'),
+(@MAIEV,0,2, "There shall be no prison for you this time!",14,0,100,0,0,11495, 'Maiev Shadowsong SAY_MAIEV_SHADOWSONG_TAUNT'),
+(@MAIEV,0,3, "Meet your end, demon!",14,0,100,0,0,11500, 'Maiev Shadowsong SAY_MAIEV_SHADOWSONG_TAUNT');
+
+-- The time has come to face Illidan, $N. Are you ready?
+UPDATE `creature_template` SET `gossip_menu_id`=8713 WHERE `entry`=23089;
+DELETE FROM `gossip_menu` WHERE `entry`=8713 AND `text_id`=10960;
+INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES (8713, 10960);
+DELETE FROM `gossip_menu_option` WHERE `menu_id`=8713 AND `id`=0;
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`,`option_icon`,`option_text`,`box_coded`,`box_money`,`box_text`) VALUES
+(8713, 0, 0, 'I''m ready, Akama.', 0, 0, '');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_01_06_world_gossip.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_01_06_world_gossip.sql
new file mode 100644
index 00000000000..88dcc711c23
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_01_06_world_gossip.sql
@@ -0,0 +1,7 @@
+-- I sense you've cleared the path to my brethren. My connection to them and to the temple is still strong. Do you wish to delve deeper inside?
+UPDATE `creature_template` SET `gossip_menu_id`=8750 WHERE `entry`=23411;
+DELETE FROM `gossip_menu` WHERE `entry`=8750 AND `text_id`=11081;
+INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES (8750, 11081);
+DELETE FROM `gossip_menu_option` WHERE (`menu_id`=8750 AND `id`=1);
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`, `box_coded`, `box_money`, `box_text`) VALUES
+(8750, 1, 0, 'Take me to the other Deathsworn, Olum.', 0, 0, '');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_02_00_world_gossip.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_02_00_world_gossip.sql
new file mode 100644
index 00000000000..3537ddb0f82
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_02_00_world_gossip.sql
@@ -0,0 +1,15 @@
+-- I sense you've cleared the path to my brethren. My connection to them and to the temple is still strong. Do you wish to delve deeper inside?
+UPDATE `creature_template` SET `gossip_menu_id`=8750 WHERE `entry`=23411;
+DELETE FROM `gossip_menu` WHERE `entry`=8750 AND `text_id`=11081;
+INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES (8750, 11081);
+DELETE FROM `gossip_menu_option` WHERE (`menu_id`=8750 AND `id`=1);
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`box_text`) VALUES
+(8750, 1, 0, 'Take me to the other Deathsworn, Olum.', 1, 1, '');
+
+-- The time has come to face Illidan, $N. Are you ready?
+UPDATE `creature_template` SET `gossip_menu_id`=8713 WHERE `entry`=23089;
+DELETE FROM `gossip_menu` WHERE `entry`=8713 AND `text_id`=10960;
+INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES (8713, 10960);
+DELETE FROM `gossip_menu_option` WHERE `menu_id`=8713 AND `id`=0;
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`box_text`) VALUES
+(8713, 0, 0, 'I''m ready, Akama.', 1, 1, '');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_04_00_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_04_00_world_misc.sql
new file mode 100644
index 00000000000..5e7d7839f5d
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_04_00_world_misc.sql
@@ -0,0 +1,2 @@
+-- Fix some startup errors.
+DELETE FROM `creature_ai_scripts` WHERE `creature_id` IN (11946,11949);
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_04_01_world_razorfen_kraul.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_04_01_world_razorfen_kraul.sql
new file mode 100644
index 00000000000..a05037d791f
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_04_01_world_razorfen_kraul.sql
@@ -0,0 +1,26 @@
+SET @GUID := 56185;
+
+DELETE FROM `gameobject` WHERE `id`=20920 OR `id`=300011;
+INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES
+(@GUID, 20920, 47, 1, 1, 2082.74, 1671.82, 61.2396, 3.66079, 0, 0, 0.966493, -0.256693, -43200, 100, 1),
+(@GUID+1, 20920, 47, 1, 1, 2159.43, 1687.49, 57.5433, 3.66079, 0, 0, 0.966493, -0.256693, -43200, 100, 1),
+(@GUID+2, 20920, 47, 1, 1, 2080.89, 1703.36, 56.6447, 0.553757, 0, 0, 0.273354, 0.961913, -43200, 100, 1),
+(@GUID+3, 20920, 47, 1, 1, 2055.28, 1767.7, 58.4559, 2.98378, 0, 0, 0.996889, 0.0788245, -43200, 100, 1),
+(@GUID+4, 20920, 47, 1, 1, 2196.64, 1827.96, 61.4706, 2.11277, 0, 0, 0.870583, 0.492022, -43200, 100, 1),
+(@GUID+5, 20920, 47, 1, 1, 2030.32, 1867.61, 56.2866, 5.6777, 0, 0, 0.298139, -0.954522, -43200, 100, 1),
+(@GUID+6, 20920, 47, 1, 1, 2091.33, 1861.73, 51.0341, 1.25355, 0, 0, 0.586536, 0.809923, -43200, 100, 1),
+(@GUID+7, 20920, 47, 1, 1, 2200.15, 1897.64, 71.3191, 2.6492, 0, 0, 0.969846, 0.243717, -43200, 100, 1),
+(@GUID+8, 20920, 47, 1, 1, 2075.75, 1742.04, 76.7184, 1.33994, 0, 0, 0.620962, 0.78384, -43200, 100, 1),
+(@GUID+9, 20920, 47, 1, 1, 2126, 1661.15, 82.4824, 0.0220437, 0, 0, 0.0110216, 0.999939, -43200, 100, 1),
+(@GUID+10, 20920, 47, 1, 1, 2207.92, 1596.91, 80.7375, 3.60582, 0, 0, 0.973182, -0.230035, -43200, 100, 1),
+(@GUID+11, 20920, 47, 1, 1, 2156.98, 1542.26, 72.849, 2.43086, 0, 0, 0.937519, 0.347934, -43200, 100, 1),
+(@GUID+12, 20920, 47, 1, 1, 2179.95, 1514.06, 69.0709, 0.778385, 0, 0, 0.379441, 0.925216, -43200, 100, 1),
+(@GUID+13, 20920, 47, 1, 1, 2000.85, 1533.93, 80.3971, 4.919, 0, 0, 0.630419, -0.776255, -43200, 100, 1),
+(@GUID+14, 20920, 47, 1, 1, 1991.49, 1608.53, 81.1601, 1.1004, 0, 0, 0.522858, 0.85242, -43200, 100, 1),
+(@GUID+15, 300011, 47, 1, 1, 2072.84, 1582.57, 82.14, 0, 0, 0, 0, 1, -43200, 0, 1);
+
+UPDATE `creature_template` SET `ScriptName`='npc_snufflenose_gopher' WHERE `entry`=4781;
+
+DELETE FROM `spell_script_names` WHERE `spell_id`=8283;
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(8283, 'spell_snufflenose_command');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_04_02_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_04_02_world_misc.sql
new file mode 100644
index 00000000000..95d836122d8
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_04_02_world_misc.sql
@@ -0,0 +1,3 @@
+UPDATE `creature_template` SET `ScriptName` = REPLACE(`ScriptName`, 'mob_', 'npc_') WHERE `ScriptName` LIKE 'mob\_%';
+UPDATE `creature_template` SET `ScriptName` = REPLACE(`ScriptName`, 'mobs_', 'npc_') WHERE `ScriptName` LIKE 'mobs\_%';
+UPDATE `spell_script_names` SET `ScriptName`='spell_trash_npc_glacial_strike' WHERE `ScriptName`='spell_trash_mob_glacial_strike';
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_04_03_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_04_03_world_sai.sql
new file mode 100644
index 00000000000..003919faefa
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_04_03_world_sai.sql
@@ -0,0 +1,14 @@
+-- Quest: Standards and Practices (9910) / Ignore LOS for trigger spell
+SET @SPELL := 32205; -- Place Mag'har Battle Standard
+
+DELETE FROM `disables` WHERE `sourceType` = 0 AND `entry` = @SPELL;
+INSERT INTO `disables` (`sourceType`, `entry`, `flags`, `params_0`, `params_1`, `comment`) VALUES
+(0, @SPELL, 64, '', '', 'Ignore LOS for Place Mag''har Battle Standard');
+
+-- Quest: Hand of Iruxos (5381) / Attack Closest Player - Demon Spirit
+SET @ENTRY := 11876; -- Demon Spirit
+
+UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = @ENTRY;
+DELETE FROM `smart_scripts` WHERE `entryorguid` = @ENTRY AND `source_type` = 0;
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(@ENTRY, 0, 0, 0, 54, 0, 100, 1, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 21, 100, 0, 0, 0, 0, 0, 0, 'Demon Spirit - Just Summoned - Attack Closest Player');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_05_00_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_05_00_world_sai.sql
new file mode 100644
index 00000000000..06781cc63a1
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_05_00_world_sai.sql
@@ -0,0 +1,123 @@
+UPDATE `creature_template` SET `AIName`= 'SmartAI',`ScriptName`='' WHERE `entry`IN (17811,17812,17809,17810,17807);
+UPDATE `gameobject_template` SET `AIName`='SmartGameObjectAI', `ScriptName`='' WHERE `entry`=182052;
+UPDATE `gameobject` SET `spawntimesecs`=-60 WHERE `guid`=23106;
+
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (182052,17811,17812,17809,17810,17807,18205200,1780900);
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(182052,1,1 ,2,70,0,100,0,2,0,0,0,12,17811,8,0,0,0,0,8,0,0,0,10093.899414,-6633.959961,4.099670,1.090000, 'Harbinger of the Second Trial - Linked with Previous Event - Spawn Champion Swiftblade <Blood Knight>'),
+(182052,1,2 ,3,61,0,100,0,0,0,0,0,12,17812,8,0,0,0,0,8,0,0,0,10087.699219,-6617.109863,4.099670,5.870000, 'Harbinger of the Second Trial - Linked with Previous Event - Spawn Champion Sunstriker <Blood Knight>'),
+(182052,1,3 ,4,61,0,100,0,0,0,0,0,12,17809,8,0,0,0,0,8,0,0,0,10104.899414,-6610.909668,4.099670,4.200000, 'Harbinger of the Second Trial - Linked with Previous Event - Spawn Champion Bloodwrath <Blood Knight>'),
+(182052,1,4 ,5,61,0,100,0,0,0,0,0,12,17810,8,0,0,0,0,8,0,0,0,10110.799805,-6628.279785,4.099670,2.700000, 'Harbinger of the Second Trial - Linked with Previous Event - Spawn Champion Lightrend <Blood Knight>'),
+(182052,1,5 ,6,61,0,100,0,0,0,0,0,80,18205200,2,0,0,0,0,1,0,0,0,0,0,0,0, 'Harbinger of the Second Trial - Linked with Previous Event - Set Data'),
+(182052,1,6 ,0,61,0,100,0,0,0,0,0,99,3,0,0,0,0,0,14,23106,182052,0,0,0,0,0, 'Harbinger of the Second Trial - Linked with Previous Event - Set State on Harbinger of the Second Trial'),
+(18205200,9,0 ,0,0,0,100,0,7000,7000,0,0,45,1,1,0,0,0,0,19,17809,200,0,0,0,0,0, 'Harbinger of the Second Trial - Linked with Previous Event - Set Data'),
+(18205200,9,1 ,0,0,0,100,0,100,100,0,0,45,1,1,0,0,0,0,10,63509,17807,0,0,0,0,0, 'Harbinger of the Second Trial - On Object State Changed - Linked with Previous Event- Set Data Master Kelerun Bloodmourn <Blood Knight>');
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(17807,0,0 ,1,38,0,100,0,1,1,0,0,45,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Master Kelerun Bloodmourn <Blood Knight> - On Data set - Set Data'),
+(17807,0,1 ,2,61,0,100,0,0,0,0,0,81,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Master Kelerun Bloodmourn <Blood Knight> - Linked with Previous Event - Set NPC Flags'),
+(17807,0,2 ,3,61,0,100,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Master Kelerun Bloodmourn <Blood Knight> - Linked with Previous Event - Say'),
+(17807,0,3 ,0,61,0,100,0,0,0,0,0,22,2,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Master Kelerun Bloodmourn <Blood Knight> - Linked with Previous Event - Say'),
+(17807,0,5 ,6,38,0,100,0,1,2,0,0,45,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Master Kelerun Bloodmourn <Blood Knight> - On Data set - Set Data'),
+(17807,0,6 ,23,61,0,100,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Master Kelerun Bloodmourn <Blood Knight> - Linked with Previous Event - Say'),
+(17807,0,7 ,8,38,0,100,0,1,3,0,0,45,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Master Kelerun Bloodmourn <Blood Knight> - On Data set - Set Data'),
+(17807,0,8 ,24,61,0,100,0,0,0,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Master Kelerun Bloodmourn <Blood Knight> - Linked with Previous Event - Say'),
+(17807,0,9 ,10,38,0,100,0,1,4,0,0,45,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Master Kelerun Bloodmourn <Blood Knight> - On Data set - Set Data'),
+(17807,0,10 ,25,61,0,100,0,0,0,0,0,1,3,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Master Kelerun Bloodmourn <Blood Knight> - Linked with Previous Event - Say'),
+(17807,0,11 ,12,38,0,100,0,1,5,0,0,81,2,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Master Kelerun Bloodmourn <Blood Knight> - On Data set - Set Data'),
+(17807,0,12 ,15,61,0,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Master Kelerun Bloodmourn <Blood Knight> - Linked with Previous Event - Set Phase 2'),
+(17807,0,13 ,14,1,2,100,0,300000,300000,300000,300000,81,2,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Master Kelerun Bloodmourn <Blood Knight> - OOC (Phase 2) - Set Npc Flags'),
+(17807,0,14 ,0,61,2,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Master Kelerun Bloodmourn <Blood Knight> - Linked with Previous Event - Set Npc Flags'),
+(17807,0,15 ,16,61,0,100,0,0,0,0,0,45,1,2,0,0,0,0,19,17809,200,0,0,0,0,0, 'Master Kelerun Bloodmourn <Blood Knight> - Linked with Previous Event - Set Data'),
+(17807,0,16 ,17,61,0,100,0,0,0,0,0,45,1,2,0,0,0,0,19,17810,200,0,0,0,0,0, 'Master Kelerun Bloodmourn <Blood Knight> - Linked with Previous Event - Set Data'),
+(17807,0,17 ,18,61,0,100,0,0,0,0,0,45,1,2,0,0,0,0,19,17811,200,0,0,0,0,0, 'Master Kelerun Bloodmourn <Blood Knight> - Linked with Previous Event - Set Data'),
+(17807,0,18 ,0,61,0,100,0,0,0,0,0,45,1,2,0,0,0,0,19,17812,200,0,0,0,0,0, 'Master Kelerun Bloodmourn <Blood Knight> - Linked with Previous Event - Set Data'),
+(17807,0,20 ,0,19,0,100,0,9686,0,0,0,70,60,0,0,0,0,0,14,23106,182052,0,0,0,0,0, 'Master Kelerun Bloodmourn <Blood Knight> - On Quest Accept - Respawn State on Harbinger of the Second Trial'),
+(17807,0,23 ,0,61,0,100,0,0,0,0,0,45,1,1,0,0,0,0,19,17810,200,0,0,0,0,0, 'Champion Bloodwrath <Blood Knight> - Linked with Previous Event - Set Data'),
+(17807,0,24 ,0,61,0,100,0,0,0,0,0,45,1,1,0,0,0,0,19,17811,200,0,0,0,0,0, 'Champion Bloodwrath <Blood Knight> - Linked with Previous Event - Set Data'),
+(17807,0,25 ,0,61,0,100,0,0,0,0,0,45,1,1,0,0,0,0,19,17812,200,0,0,0,0,0, 'Champion Bloodwrath <Blood Knight> - Linked with Previous Event - Set Data'),
+(17807,0,26 ,27,38,0,100,0,1,6,0,0,81,2,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Master Kelerun Bloodmourn <Blood Knight> - On Data set - Set Data'),
+(17807,0,27 ,28,61,0,100,0,0,0,0,0,26,9686,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Master Kelerun Bloodmourn <Blood Knight> - Linked with Previous Event - Give Quest Credit'),
+(17807,0,28 ,0,61,0,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Master Kelerun Bloodmourn <Blood Knight> - Linked with Previous Event - Set Phase 2'),
+(17807,0,29 ,30,38,0,100,0,1,6,0,0,45,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Master Kelerun Bloodmourn <Blood Knight> - On Data set - Set Data'),
+(17807,0,30 ,0,61,0,100,0,0,0,0,0,1,4,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Master Kelerun Bloodmourn <Blood Knight> - Linked with Previous Event - Say');
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(17809,0,1 ,0,6,0,100,0,0,0,0,0,45,1,2,0,0,0,0,10,63509,17807,0,0,0,0,0, 'Champion Bloodwrath <Blood Knight> - Linked with Previous Event - Set Data'),
+(17809,0,2 ,3, 5,0,100,0,0,0,0,0,6,9686,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Champion Bloodwrath <Blood Knight> - On Player Death - Fail Quest'),
+(17809,0,3 ,0,61,0,100,0,0,0,0,0,45,1,5,0,0,0,0,10,63509,17807,0,0,0,0,0, 'Champion Bloodwrath <Blood Knight> - Linked with Previous Event - Set Data'),
+(17809,0,4 ,0,2,0,100,0,0,50,10000,15000,11,19939,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Champion Bloodwrath <Blood Knight> - On Less than 30% HP - Cast Flash of Light'),
+(17809,0,6 ,0,21,0,100,0,0,0,0,0,45,1,5,0,0,0,0,10,63509,17807,0,0,0,0,0, 'Champion Bloodwrath <Blood Knight> - Linked with Previous Event - Set Data'),
+(17809,0,7 ,0,38,0,100,0,1,2,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Champion Bloodwrath <Blood Knight> - On Data Set - Despawn'),
+(17809,0,8 ,10,11,0,100,0,0,0,0,0,18,256,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Champion Bloodwrath <Blood Knight> - On Spawn - Set Unit Flags'),
+(17809,0,9 ,0,38,0,100,0,1,1,0,0,80,1780900,2,0,0,0,0,1,0,0,0,0,0,0,0, 'Champion Bloodwrath <Blood Knight> - On Data Set - Remove Unit Flags'),
+(17809,0,10 ,0,61,0,100,0,0,0,0,0,53,0,17809,0,0,0,0,1,0,0,0,0,0,0,0, 'Champion Bloodwrath <Blood Knight> - Linked with Previous Event - Start Waypoints'),
+(17809,0,11 ,0,40,0,100,0,5,0,0,0,90,8,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Champion Bloodwrath <Blood Knight> - On Reached WP5 - Set Kneel'),
+(17810,0,0 ,11,11,0,100,0,0,0,0,0,18,256,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Champion Lightrend <Blood Knight> - On Spawn - Set Unit Flags'),
+(17810,0,1 ,0,38,0,100,0,1,1,0,0,80,1780900,2,0,0,0,0,1,0,0,0,0,0,0,0, 'Champion Lightrend <Blood Knight> - On Data Set - Remove Unit Flags'),
+(17810,0,3 ,0,6,0,100,0,0,0,0,0,45,1,3,0,0,0,0,10,63509,17807,0,0,0,0,0, 'Champion Lightrend <Blood Knight> - Linked with Previous Event - Set Data'),
+(17810,0,4 ,5, 5,0,100,0,0,0,0,0,6,9686,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Champion Lightrend <Blood Knight> - On Player Death - Fail Quest'),
+(17810,0,5 ,0,61,0,100,0,0,0,0,0,45,1,5,0,0,0,0,10,63509,17807,0,0,0,0,0, 'Champion Lightrend <Blood Knight> - Linked with Previous Event - Set Data'),
+(17810,0,6 ,0,4,0,100,0,0,0,0,0,11,20164,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Champion Lightrend <Blood Knight> - On Agro - Cast Seal of Justice'),
+(17810,0,7 ,0,0,0,100,0,0,6000,6000,8000,11,20271,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Champion Lightrend <Blood Knight> - IC - Cast Judgement of Light'),
+(17810,0,9 ,0,21,0,100,0,0,0,0,0,45,1,5,0,0,0,0,10,63509,17807,0,0,0,0,0, 'Champion Lightrend <Blood Knight> - Linked with Previous Event - Set Data'),
+(17810,0,10 ,0,38,0,100,0,1,2,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Champion Lightrend <Blood Knight> - On Data Set - Despawn'),
+(17810,0,11 ,0,61,0,100,0,100,100,0,0,53,0,17810,0,0,0,0,1,0,0,0,0,0,0,0, 'Champion Lightrend <Blood Knight> - Linked with Previous Event - Start Waypoints'),
+(17810,0,12 ,0,40,0,100,0,5,0,0,0,90,8,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Champion Bloodwrath <Blood Knight> - On Reached WP5 - Set Kneel'),
+(17811,0,0 ,10,11,0,100,0,0,0,0,0,18,256,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Champion Swiftblade <Blood Knight> - On Spawn - Set Unit Flags'),
+(17811,0,1 ,0,38,0,100,0,1,1,0,0,80,1780900,2,0,0,0,0,1,0,0,0,0,0,0,0, 'Champion Swiftblade <Blood Knight> - On Data Set - Remove Unit Flags'),
+(17811,0,3 ,0,6,0,100,0,0,0,0,0,45,1,4,0,0,0,0,10,63509,17807,0,0,0,0,0, 'Champion Swiftblade <Blood Knight> - Linked with Previous Event - Set Data'),
+(17811,0,4 ,5, 5,0,100,0,0,0,0,0,6,9686,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Champion Swiftblade <Blood Knight> - On Player Death - Fail Quest'),
+(17811,0,5 ,0,61,0,100,0,0,0,0,0,45,1,5,0,0,0,0,10,63509,17807,0,0,0,0,0, 'Champion Swiftblade <Blood Knight> - Linked with Previous Event - Set Data'),
+(17811,0,6 ,0,2,0,100,0,0,50,10000,15000,11,19939,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Champion Swiftblade <Blood Knight> - On Less than 30% HP - Cast Flash of Light'),
+(17811,0,8 ,0,21,0,100,0,0,0,0,0,45,1,5,0,0,0,0,10,63509,17807,0,0,0,0,0, 'Champion Swiftblade <Blood Knight> - Linked with Previous Event - Set Data'),
+(17811,0,9 ,0,38,0,100,0,1,2,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Champion Swiftblade <Blood Knight> - On Data Set - Despawn'),
+(17811,0,10 ,0,61,0,100,0,0,0,0,0,53,0,17811,0,0,0,0,1,0,0,0,0,0,0,0, 'Champion Lightrend <Blood Knight> - Linked with Previous Event - Start Waypoints'),
+(17811,0,11 ,0,40,0,100,0,5,0,0,0,90,8,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Champion Bloodwrath <Blood Knight> - On Reached WP5 - Set Kneel'),
+(17812,0,0 ,13,11,0,100,0,0,0,0,0,18,256,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Champion Sunstriker <Blood Knight> - On Spawn - Set Unit Flags'),
+(17812,0,1 ,0,38,0,100,0,1,1,0,0,80,1780900,2,0,0,0,0,1,0,0,0,0,0,0,0, 'Champion Sunstriker <Blood Knight> - On Data Set - Remove Unit Flags'),
+(17812,0,2 ,3, 6,0,100,0,0,0,0,0,26,9686,0,0,0,0,0,16,0,0,0,0,0,0,0, 'Champion Sunstriker <Blood Knight> - On Death - Give Quest Credit'),
+(17812,0,3 ,12,61,0,100,0,0,0,0,0,45,1,5,0,0,0,0,10,63509,17807,0,0,0,0,0, 'Champion Sunstriker <Blood Knight> - Linked with Previous Event - Set Data'),
+(17812,0,4 ,5, 5,0,100,0,0,0,0,0,6,9686,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Champion Sunstriker <Blood Knight> - On Player Death - Fail Quest'),
+(17812,0,5 ,0,61,0,100,0,0,0,0,0,45,1,5,0,0,0,0,10,63509,17807,0,0,0,0,0, 'Champion Sunstriker <Blood Knight> - Linked with Previous Event - Set Data'),
+(17812,0,6 ,0,4,0,100,0,0,0,0,0,11,20375,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Champion Sunstriker <Blood Knight> - On Agro - Cast Seal of Command'),
+(17812,0,7 ,0,2,0,100,0,0,50,8000,13000,11,19939,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Champion Sunstriker <Blood Knight> - On Less than 30% HP - Cast Flash of Light'),
+(17812,0,8 ,0,0,0,100,0,0,6000,6000,6000,11,20271,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Champion Sunstriker <Blood Knight> - IC - Cast Judgement of Light'),
+(17812,0,10 ,0,21,0,100,0,0,0,0,0,45,1,5,0,0,0,0,10,63509,17807,0,0,0,0,0, 'Champion Sunstriker <Blood Knight> - Linked with Previous Event - Set Data'),
+(17812,0,11 ,0,38,0,100,0,1,2,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Champion Sunstriker <Blood Knight> - On Data Set - Despawn'),
+(17812,0,12 ,0,61,0,100,0,0,0,0,0,45,1,6,0,0,0,0,10,63509,17807,0,0,0,0,0, 'Champion Sunstriker <Blood Knight> - Linked with Previous Event - Set Data'),
+(17812,0,13 ,0,61,0,100,0,0,0,0,0,53,0,17812,0,0,0,0,1,0,0,0,0,0,0,0, 'Champion Sunstriker <Blood Knight> - Linked with Previous Event - Start Waypoints'),
+(17812,0,14 ,0,40,0,100,0,5,0,0,0,90,8,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Champion Bloodwrath <Blood Knight> - On Reached WP5 - Set Kneel'),
+(1780900,9,1 ,0,0,0,100,0,100,100,0,0,19,256,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Champion Bloodwrath <Blood Knight> - Script - Move'),
+(1780900,9,2 ,0,0,0,100,0,100,100,0,0,2,45,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Champion Bloodwrath <Blood Knight> - Script - Set Faction'),
+(1780900,9,3 ,0,0,0,100,0,100,100,0,0,101,0,0,0,0,0,0,21,50,0,0,0,0,0,0, 'Champion Bloodwrath <Blood Knight> - Script - Set Home'),
+(1780900,9,4 ,0,0,0,100,0,100,100,0,0,49,0,0,0,0,0,0,21,50,0,0,0,0,0,0, 'Champion Bloodwrath <Blood Knight> - Script - Attack');
+
+DELETE FROM `creature_text` WHERE `entry` =17807;
+INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`) VALUES
+(17807,0,0, 'Let the trial begin, Bloodwrath Attack!',14,0,100,0,7000,0, 'Master Kelerun Bloodmourn <Blood Knight>'),
+(17807,1,0, 'Champion Lightrend, make me proud!',14,0,100,0,7000,0, 'Master Kelerun Bloodmourn <Blood Knight>'),
+(17807,2,0, 'Show this upstart how a real Blood Knight fights, Swiftblade!', 14,0,100,0,7000,0, 'Master Kelerun Bloodmourn <Blood Knight>'),
+(17807,3,0, 'Show $n the meaning of pain, Sunstriker!',14,0,100,0,7000,0, 'Master Kelerun Bloodmourn <Blood Knight>'),
+(17807,4,0, 'Well Done $n! You have passed the second trial!',14,0,100,0,7000,0, 'Master Kelerun Bloodmourn <Blood Knight>');
+
+DELETE FROM `waypoints` WHERE `entry`IN (17811,17812,17809,17810);
+INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `point_comment`) VALUES
+(17809, 1, 10104.131836,-6612.683105,4.101346, 'Champion Bloodwrath'),
+(17809, 2, 10102.344727,-6612.981445,4.053924, 'Champion Bloodwrath'),
+(17809, 3, 10099.358398,-6612.392090,4.054283, 'Champion Bloodwrath'),
+(17809, 4, 10095.998047,-6613.050293,4.146625, 'Champion Bloodwrath'),
+(17809, 5, 10096.130859,-6613.828125,4.059120, 'Champion Bloodwrath'),
+(17810, 1, 10109.248047,-6627.423340,4.102483, 'Champion Lightrend'),
+(17810, 2, 10109.353516,-6625.280762,4.053146, 'Champion Lightrend'),
+(17810, 3, 10109.612305,-6622.480957,4.054108, 'Champion Lightrend'),
+(17810, 4, 10108.892578,-6619.477051,4.055830, 'Champion Lightrend'),
+(17810, 5, 10108.208008,-6619.648926,4.059035, 'Champion Lightrend'),
+(17811, 1, 10094.589844,-6632.596680,4.101971, 'Champion Swiftblade'),
+(17811, 2, 10097.296875,-6632.817383,4.053012, 'Champion Swiftblade'),
+(17811, 3, 10100.189453,-6633.041992,4.054625, 'Champion Swiftblade'),
+(17811, 4, 10102.728516,-6632.252930,4.056830, 'Champion Swiftblade'),
+(17811, 5, 10102.631836,-6631.925293,4.058280, 'Champion Swiftblade'),
+(17812, 1, 10089.456055,-6618.075684,4.101974, 'Champion Sunstriker'),
+(17812, 2, 10089.222656,-6620.535645,4.053116, 'Champion Sunstriker'),
+(17812, 3, 10089.138672,-6623.319336,4.054400, 'Champion Sunstriker'),
+(17812, 4, 10090.097656,-6626.027344,4.057493, 'Champion Sunstriker'),
+(17812, 5, 10090.363281,-6625.857910,4.060020, 'Champion Sunstriker');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_05_01_world_creature_template.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_05_01_world_creature_template.sql
new file mode 100644
index 00000000000..117df2273a9
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_05_01_world_creature_template.sql
@@ -0,0 +1,204 @@
+-- Alterac Valley NPC fix
+UPDATE `creature_template` SET `difficulty_entry_3`=37234 WHERE `entry`=13086;
+UPDATE `creature_template` SET `difficulty_entry_3`=37236 WHERE `entry`=13116;
+UPDATE `creature_template` SET `difficulty_entry_3`=37237 WHERE `entry`=10990;
+UPDATE `creature_template` SET `difficulty_entry_3`=37239 WHERE `entry`=13442;
+UPDATE `creature_template` SET `difficulty_entry_3`=37240 WHERE `entry`=14187;
+UPDATE `creature_template` SET `difficulty_entry_3`=37242 WHERE `entry`=4255;
+UPDATE `creature_template` SET `difficulty_entry_3`=37243 WHERE `entry`=11949;
+UPDATE `creature_template` SET `difficulty_entry_3`=37244 WHERE `entry`=11947;
+UPDATE `creature_template` SET `difficulty_entry_3`=37250 WHERE `entry`=13422;
+UPDATE `creature_template` SET `difficulty_entry_3`=37251 WHERE `entry`=13421;
+UPDATE `creature_template` SET `difficulty_entry_3`=37264 WHERE `entry`=13096;
+UPDATE `creature_template` SET `difficulty_entry_3`=37267 WHERE `entry`=13317;
+UPDATE `creature_template` SET `difficulty_entry_3`=37268 WHERE `entry`=13316;
+UPDATE `creature_template` SET `difficulty_entry_3`=37269 WHERE `entry`=13097;
+UPDATE `creature_template` SET `difficulty_entry_3`=37278 WHERE `entry`=13447;
+UPDATE `creature_template` SET `difficulty_entry_3`=37281 WHERE `entry`=14188;
+UPDATE `creature_template` SET `difficulty_entry_3`=37282 WHERE `entry`=12121;
+UPDATE `creature_template` SET `difficulty_entry_3`=37283 WHERE `entry`=11946;
+UPDATE `creature_template` SET `difficulty_entry_3`=37284 WHERE `entry`=13443;
+UPDATE `creature_template` SET `difficulty_entry_3`=37285 WHERE `entry`=14762;
+UPDATE `creature_template` SET `difficulty_entry_3`=37287 WHERE `entry`=14763;
+UPDATE `creature_template` SET `difficulty_entry_3`=37289 WHERE `entry`=12122;
+UPDATE `creature_template` SET `difficulty_entry_3`=37291 WHERE `entry`=14772;
+UPDATE `creature_template` SET `difficulty_entry_3`=37294 WHERE `entry`=10981;
+UPDATE `creature_template` SET `difficulty_entry_3`=37296 WHERE `entry`=14282;
+UPDATE `creature_template` SET `difficulty_entry_3`=37297 WHERE `entry`=13359;
+UPDATE `creature_template` SET `difficulty_entry_3`=37300 WHERE `entry`=12053;
+UPDATE `creature_template` SET `difficulty_entry_3`=37302 WHERE `entry`=12051;
+UPDATE `creature_template` SET `difficulty_entry_3`=37305 WHERE `entry`=12097;
+UPDATE `creature_template` SET `difficulty_entry_3`=37308 WHERE `entry`=13284;
+UPDATE `creature_template` SET `difficulty_entry_3`=37310 WHERE `entry`=13616;
+UPDATE `creature_template` SET `difficulty_entry_3`=37313 WHERE `entry`=13441;
+UPDATE `creature_template` SET `difficulty_entry_3`=37315 WHERE `entry`=13216;
+UPDATE `creature_template` SET `difficulty_entry_3`=37318 WHERE `entry`=3343;
+UPDATE `creature_template` SET `difficulty_entry_3`=37320 WHERE `entry`=13218;
+UPDATE `creature_template` SET `difficulty_entry_3`=37323 WHERE `entry`=13117;
+UPDATE `creature_template` SET `difficulty_entry_3`=37326 WHERE `entry`=14773;
+UPDATE `creature_template` SET `difficulty_entry_3`=37327 WHERE `entry`=14764;
+UPDATE `creature_template` SET `difficulty_entry_3`=37331 WHERE `entry`=13099;
+UPDATE `creature_template` SET `difficulty_entry_3`=37333 WHERE `entry`=13080;
+UPDATE `creature_template` SET `difficulty_entry_3`=37334 WHERE `entry`=13396;
+UPDATE `creature_template` SET `difficulty_entry_3`=37335 WHERE `entry`=13397;
+UPDATE `creature_template` SET `difficulty_entry_3`=37337 WHERE `entry`=11600;
+UPDATE `creature_template` SET `difficulty_entry_3`=37340 WHERE `entry`=10987;
+UPDATE `creature_template` SET `difficulty_entry_3`=37344 WHERE `entry`=5134;
+UPDATE `creature_template` SET `difficulty_entry_3`=37345 WHERE `entry`=13798;
+UPDATE `creature_template` SET `difficulty_entry_3`=37346 WHERE `entry`=13079;
+UPDATE `creature_template` SET `difficulty_entry_3`=37348 WHERE `entry`=5139;
+UPDATE `creature_template` SET `difficulty_entry_3`=37349 WHERE `entry`=4257;
+UPDATE `creature_template` SET `difficulty_entry_3`=37364 WHERE `entry`=13088;
+UPDATE `creature_template` SET `difficulty_entry_3`=37366 WHERE `entry`=11657;
+UPDATE `creature_template` SET `difficulty_entry_3`=37367 WHERE `entry`=13797;
+UPDATE `creature_template` SET `difficulty_entry_3`=37369 WHERE `entry`=13257;
+UPDATE `creature_template` SET `difficulty_entry_3`=37370 WHERE `entry`=14185;
+UPDATE `creature_template` SET `difficulty_entry_3`=37371 WHERE `entry`=13236;
+UPDATE `creature_template` SET `difficulty_entry_3`=37372 WHERE `entry`=13816;
+UPDATE `creature_template` SET `difficulty_entry_3`=37373 WHERE `entry`=3625;
+UPDATE `creature_template` SET `difficulty_entry_3`=37374 WHERE `entry`=14186;
+UPDATE `creature_template` SET `difficulty_entry_3`=37383 WHERE `entry`=13326;
+UPDATE `creature_template` SET `difficulty_entry_3`=37384 WHERE `entry`=13328;
+UPDATE `creature_template` SET `difficulty_entry_3`=37398 WHERE `entry`=13448;
+UPDATE `creature_template` SET `difficulty_entry_3`=37399 WHERE `entry`=10367;
+UPDATE `creature_template` SET `difficulty_entry_3`=37401 WHERE `entry`=13176;
+UPDATE `creature_template` SET `difficulty_entry_3`=37402 WHERE `entry`=11678;
+UPDATE `creature_template` SET `difficulty_entry_3`=37403 WHERE `entry`=10986;
+UPDATE `creature_template` SET `difficulty_entry_3`=37404 WHERE `entry`=11675;
+UPDATE `creature_template` SET `difficulty_entry_3`=37407 WHERE `entry`=14765;
+UPDATE `creature_template` SET `difficulty_entry_3`=37409 WHERE `entry`=14284;
+UPDATE `creature_template` SET `difficulty_entry_3`=37410 WHERE `entry`=13358;
+UPDATE `creature_template` SET `difficulty_entry_3`=37412 WHERE `entry`=12050;
+UPDATE `creature_template` SET `difficulty_entry_3`=37415 WHERE `entry`=12127;
+UPDATE `creature_template` SET `difficulty_entry_3`=37416 WHERE `entry`=11997;
+UPDATE `creature_template` SET `difficulty_entry_3`=37419 WHERE `entry`=14283;
+UPDATE `creature_template` SET `difficulty_entry_3`=37420 WHERE `entry`=12096;
+UPDATE `creature_template` SET `difficulty_entry_3`=37422 WHERE `entry`=13577;
+UPDATE `creature_template` SET `difficulty_entry_3`=37426 WHERE `entry`=13617;
+UPDATE `creature_template` SET `difficulty_entry_3`=37427 WHERE `entry`=5135;
+UPDATE `creature_template` SET `difficulty_entry_3`=37431 WHERE `entry`=11677;
+UPDATE `creature_template` SET `difficulty_entry_3`=37435 WHERE `entry`=14776;
+UPDATE `creature_template` SET `difficulty_entry_3`=37442 WHERE `entry`=13078;
+UPDATE `creature_template` SET `difficulty_entry_3`=37444 WHERE `entry`=11948;
+UPDATE `creature_template` SET `difficulty_entry_3`=37450 WHERE `entry`=13331;
+UPDATE `creature_template` SET `difficulty_entry_3`=37451 WHERE `entry`=13332;
+UPDATE `creature_template` SET `difficulty_entry_3`=37468 WHERE `entry`=14777;
+UPDATE `creature_template` SET `difficulty_entry_3`=37469 WHERE `entry`=11603;
+UPDATE `creature_template` SET `difficulty_entry_3`=37470 WHERE `entry`=11604;
+UPDATE `creature_template` SET `difficulty_entry_3`=37473 WHERE `entry`=10982;
+UPDATE `creature_template` SET `difficulty_entry_3`=37475 WHERE `entry`=11839;
+UPDATE `creature_template` SET `difficulty_entry_3`=37479 WHERE `entry`=13179;
+UPDATE `creature_template` SET `difficulty_entry_3`=37480 WHERE `entry`=13437;
+UPDATE `creature_template` SET `difficulty_entry_3`=37481 WHERE `entry`=13180;
+UPDATE `creature_template` SET `difficulty_entry_3`=37483 WHERE `entry`=13438;
+UPDATE `creature_template` SET `difficulty_entry_3`=37484 WHERE `entry`=13439;
+UPDATE `creature_template` SET `difficulty_entry_3`=37485 WHERE `entry`=10364;
+UPDATE `creature_template` SET `difficulty_entry_3`=37486 WHERE `entry`=2225;
+
+UPDATE `creature_template` SET `KillCredit1`=13086, `modelid1`=13298, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1216, `faction_H`=1216, `npcflag`=0, `speed_walk`=1.75, `speed_run`=1.14286, `rank`=0, `mindmg`=210, `maxdmg`=315, `attackpower`=79, `dmg_multiplier`=1.1, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=1, `unit_flags`=0, `minrangedmg`=168, `maxrangedmg`=252, `rangedattackpower`=63, `type`=7, `type_flags`=0, `spell1`=12169, `spell2`=15655, `spell3`=0, `spell4`=0, `mingold`=192, `maxgold`=192 WHERE `entry`=37234;
+UPDATE `creature_template` SET `KillCredit1`=13116, `modelid1`=13336, `modelid2`=13337, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=81, `maxlevel`=81, `faction_A`=1802, `faction_H`=1802, `npcflag`=32768, `speed_walk`=1, `speed_run`=1.14286, `rank`=1, `mindmg`=405, `maxdmg`=609, `attackpower`=152, `dmg_multiplier`=49.1, `baseattacktime`=2000, `rangeattacktime`=2000, `unit_class`=2, `unit_flags`=4930, `minrangedmg`=324, `maxrangedmg`=487, `rangedattackpower`=122, `type`=7, `type_flags`=2, `spell1`=0, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=0, `maxgold`=0 WHERE `entry`=37236;
+UPDATE `creature_template` SET `KillCredit1`=10990, `modelid1`=13340, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1274, `faction_H`=1274, `npcflag`=0, `speed_walk`=1, `speed_run`=1.38571, `rank`=0, `mindmg`=315, `maxdmg`=472, `attackpower`=118, `dmg_multiplier`=0.9, `baseattacktime`=1500, `rangeattacktime`=1500, `unit_class`=1, `unit_flags`=0, `minrangedmg`=252, `maxrangedmg`=378, `rangedattackpower`=94, `type`=1, `type_flags`=0, `spell1`=13443, `spell2`=22120, `spell3`=0, `spell4`=0, `mingold`=0, `maxgold`=0 WHERE `entry`=37237;
+UPDATE `creature_template` SET `KillCredit1`=13442, `modelid1`=13403, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=5142, `minlevel`=80, `maxlevel`=80, `faction_A`=1216, `faction_H`=1216, `npcflag`=3, `speed_walk`=1, `speed_run`=1.14286, `rank`=1, `mindmg`=195, `maxdmg`=293, `attackpower`=73, `dmg_multiplier`=8.2, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=2, `unit_flags`=4096, `minrangedmg`=156, `maxrangedmg`=234, `rangedattackpower`=58, `type`=7, `type_flags`=0, `spell1`=15981, `spell2`=22127, `spell3`=22206, `spell4`=0, `mingold`=1861, `maxgold`=1861 WHERE `entry`=37239;
+UPDATE `creature_template` SET `KillCredit1`=14187, `modelid1`=14215, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=79, `faction_H`=79, `npcflag`=2, `speed_walk`=1, `speed_run`=1.14286, `rank`=0, `mindmg`=315, `maxdmg`=472, `attackpower`=118, `dmg_multiplier`=1.4, `baseattacktime`=1500, `rangeattacktime`=1500, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=252, `maxrangedmg`=378, `rangedattackpower`=94, `type`=7, `type_flags`=0, `spell1`=0, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=606, `maxgold`=606 WHERE `entry`=37240;
+UPDATE `creature_template` SET `KillCredit1`=4255, `modelid1`=2284, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1216, `faction_H`=1216, `npcflag`=128, `speed_walk`=1, `speed_run`=1.14286, `rank`=0, `mindmg`=315, `maxdmg`=472, `attackpower`=118, `dmg_multiplier`=0.6, `baseattacktime`=1500, `rangeattacktime`=1500, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=252, `maxrangedmg`=378, `rangedattackpower`=94, `type`=7, `type_flags`=0, `spell1`=0, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=0, `maxgold`=0 WHERE `entry`=37242;
+UPDATE `creature_template` SET `KillCredit1`=11949, `modelid1`=12823, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=83, `maxlevel`=83, `faction_A`=1216, `faction_H`=1216, `npcflag`=0, `speed_walk`=1, `speed_run`=1.14286, `rank`=3, `mindmg`=435, `maxdmg`=653, `attackpower`=163, `dmg_multiplier`=40.9, `baseattacktime`=2000, `rangeattacktime`=2000, `unit_class`=2, `unit_flags`=4096, `minrangedmg`=348, `maxrangedmg`=522, `rangedattackpower`=130, `type`=7, `type_flags`=4, `spell1`=0, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=1917, `maxgold`=1917 WHERE `entry`=37243;
+UPDATE `creature_template` SET `KillCredit1`=11947, `modelid1`=11895, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=83, `maxlevel`=83, `faction_A`=1214, `faction_H`=1214, `npcflag`=0, `speed_walk`=1, `speed_run`=1.14286, `rank`=3, `mindmg`=468, `maxdmg`=702, `attackpower`=175, `dmg_multiplier`=38, `baseattacktime`=2000, `rangeattacktime`=2000, `unit_class`=1, `unit_flags`=4160, `minrangedmg`=374, `maxrangedmg`=562, `rangedattackpower`=140, `type`=7, `type_flags`=4, `spell1`=0, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=1918, `maxgold`=1918 WHERE `entry`=37244;
+UPDATE `creature_template` SET `KillCredit1`=13422, `modelid1`=13351, `modelid2`=13352, `modelid3`=13353, `modelid4`=13354, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1216, `faction_H`=1216, `npcflag`=0, `speed_walk`=1.27, `speed_run`=1.14286, `rank`=0, `mindmg`=315, `maxdmg`=472, `attackpower`=118, `dmg_multiplier`=1.4, `baseattacktime`=1500, `rangeattacktime`=1500, `unit_class`=1, `unit_flags`=0, `minrangedmg`=252, `maxrangedmg`=378, `rangedattackpower`=94, `type`=7, `type_flags`=0, `spell1`=0, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=570, `maxgold`=570 WHERE `entry`=37250;
+UPDATE `creature_template` SET `KillCredit1`=13421, `modelid1`=13361, `modelid2`=13362, `modelid3`=13363, `modelid4`=13364, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1214, `faction_H`=1214, `npcflag`=0, `speed_walk`=1.27, `speed_run`=1.14286, `rank`=0, `mindmg`=315, `maxdmg`=472, `attackpower`=118, `dmg_multiplier`=1.4, `baseattacktime`=1500, `rangeattacktime`=1500, `unit_class`=1, `unit_flags`=0, `minrangedmg`=252, `maxrangedmg`=378, `rangedattackpower`=94, `type`=7, `type_flags`=0, `spell1`=0, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=207, `maxgold`=596 WHERE `entry`=37251;
+UPDATE `creature_template` SET `KillCredit1`=13096, `modelid1`=13895, `modelid2`=13896, `modelid3`=13552, `modelid4`=13553, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1216, `faction_H`=1216, `npcflag`=0, `speed_walk`=2.01, `speed_run`=1.14286, `rank`=0, `mindmg`=195, `maxdmg`=293, `attackpower`=73, `dmg_multiplier`=1, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=2, `unit_flags`=0, `minrangedmg`=156, `maxrangedmg`=234, `rangedattackpower`=58, `type`=7, `type_flags`=0, `spell1`=12544, `spell2`=14145, `spell3`=15242, `spell4`=15244, `mingold`=105, `maxgold`=105 WHERE `entry`=37264;
+UPDATE `creature_template` SET `KillCredit1`=13317, `modelid1`=556, `modelid2`=308, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1216, `faction_H`=1216, `npcflag`=0, `speed_walk`=1.76, `speed_run`=1.14286, `rank`=0, `mindmg`=210, `maxdmg`=315, `attackpower`=79, `dmg_multiplier`=0.9, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=1, `unit_flags`=0, `minrangedmg`=168, `maxrangedmg`=252, `rangedattackpower`=63, `type`=7, `type_flags`=0, `spell1`=15572, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=0, `maxgold`=0 WHERE `entry`=37267;
+UPDATE `creature_template` SET `KillCredit1`=13316, `modelid1`=13334, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1214, `faction_H`=1214, `npcflag`=0, `speed_walk`=1, `speed_run`=1.14286, `rank`=0, `mindmg`=210, `maxdmg`=315, `attackpower`=79, `dmg_multiplier`=0.9, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=1, `unit_flags`=0, `minrangedmg`=168, `maxrangedmg`=252, `rangedattackpower`=63, `type`=7, `type_flags`=0, `spell1`=15572, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=0, `maxgold`=0 WHERE `entry`=37268;
+UPDATE `creature_template` SET `KillCredit1`=13097, `modelid1`=13330, `modelid2`=13331, `modelid3`=13540, `modelid4`=13537, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1214, `faction_H`=1214, `npcflag`=0, `speed_walk`=1, `speed_run`=1.14286, `rank`=0, `mindmg`=195, `maxdmg`=293, `attackpower`=73, `dmg_multiplier`=1.1, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=2, `unit_flags`=0, `minrangedmg`=156, `maxrangedmg`=234, `rangedattackpower`=58, `type`=7, `type_flags`=0, `spell1`=15498, `spell2`=15586, `spell3`=15654, `spell4`=0, `mingold`=0, `maxgold`=0 WHERE `entry`=37269;
+UPDATE `creature_template` SET `KillCredit1`=13447, `modelid1`=13383, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=5081, `minlevel`=81, `maxlevel`=81, `faction_A`=1216, `faction_H`=1216, `npcflag`=3, `speed_walk`=1, `speed_run`=1.14286, `rank`=1, `mindmg`=218, `maxdmg`=327, `attackpower`=82, `dmg_multiplier`=4.8, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=174, `maxrangedmg`=262, `rangedattackpower`=66, `type`=7, `type_flags`=0, `spell1`=12169, `spell2`=19130, `spell3`=0, `spell4`=0, `mingold`=1667, `maxgold`=1667 WHERE `entry`=37278;
+UPDATE `creature_template` SET `KillCredit1`=14188, `modelid1`=14234, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=55, `faction_H`=55, `npcflag`=2, `speed_walk`=1, `speed_run`=1.14286, `rank`=0, `mindmg`=315, `maxdmg`=472, `attackpower`=118, `dmg_multiplier`=1.1, `baseattacktime`=1500, `rangeattacktime`=1500, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=252, `maxrangedmg`=378, `rangedattackpower`=94, `type`=7, `type_flags`=0, `spell1`=0, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=607, `maxgold`=607 WHERE `entry`=37281;
+UPDATE `creature_template` SET `KillCredit1`=12121, `modelid1`=10278, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=81, `maxlevel`=81, `faction_A`=1214, `faction_H`=1214, `npcflag`=0, `speed_walk`=1, `speed_run`=1.14286, `rank`=1, `mindmg`=218, `maxdmg`=327, `attackpower`=82, `dmg_multiplier`=7.5, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=174, `maxrangedmg`=262, `rangedattackpower`=66, `type`=1, `type_flags`=0, `spell1`=8599, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=0, `maxgold`=0 WHERE `entry`=37282;
+UPDATE `creature_template` SET `KillCredit1`=11946, `modelid1`=11894, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=83, `maxlevel`=83, `faction_A`=1214, `faction_H`=1214, `npcflag`=1, `speed_walk`=1, `speed_run`=1.14286, `rank`=3, `mindmg`=468, `maxdmg`=702, `attackpower`=175, `dmg_multiplier`=63.4, `baseattacktime`=2000, `rangeattacktime`=2000, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=374, `maxrangedmg`=562, `rangedattackpower`=140, `type`=7, `type_flags`=4, `spell1`=0, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=0, `maxgold`=0 WHERE `entry`=37283;
+UPDATE `creature_template` SET `KillCredit1`=13443, `modelid1`=13409, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=5141, `minlevel`=81, `maxlevel`=81, `faction_A`=1216, `faction_H`=1216, `npcflag`=1, `speed_walk`=1, `speed_run`=1.14286, `rank`=1, `mindmg`=203, `maxdmg`=304, `attackpower`=76, `dmg_multiplier`=7.8, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=2, `unit_flags`=4096, `minrangedmg`=162, `maxrangedmg`=243, `rangedattackpower`=61, `type`=7, `type_flags`=0, `spell1`=21668, `spell2`=22127, `spell3`=22128, `spell4`=0, `mingold`=1656, `maxgold`=1656 WHERE `entry`=37284;
+UPDATE `creature_template` SET `KillCredit1`=14762, `modelid1`=14793, `modelid2`=14795, `modelid3`=14794, `modelid4`=14796, `gossip_menu_id`=0, `minlevel`=81, `maxlevel`=81, `faction_A`=1216, `faction_H`=1216, `npcflag`=0, `speed_walk`=1, `speed_run`=1.14286, `rank`=1, `mindmg`=218, `maxdmg`=327, `attackpower`=82, `dmg_multiplier`=13.8, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=1, `unit_flags`=32768, `minrangedmg`=174, `maxrangedmg`=262, `rangedattackpower`=66, `type`=7, `type_flags`=0, `spell1`=13736, `spell2`=15589, `spell3`=22911, `spell4`=23511, `mingold`=0, `maxgold`=0 WHERE `entry`=37285;
+UPDATE `creature_template` SET `KillCredit1`=14763, `modelid1`=14793, `modelid2`=14795, `modelid3`=14794, `modelid4`=14796, `gossip_menu_id`=0, `minlevel`=81, `maxlevel`=81, `faction_A`=1216, `faction_H`=1216, `npcflag`=0, `speed_walk`=1, `speed_run`=1.14286, `rank`=1, `mindmg`=218, `maxdmg`=327, `attackpower`=82, `dmg_multiplier`=13.8, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=1, `unit_flags`=32768, `minrangedmg`=174, `maxrangedmg`=262, `rangedattackpower`=66, `type`=7, `type_flags`=0, `spell1`=13736, `spell2`=15589, `spell3`=22911, `spell4`=23511, `mingold`=0, `maxgold`=0 WHERE `entry`=37287;
+UPDATE `creature_template` SET `KillCredit1`=12122, `modelid1`=10278, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=81, `maxlevel`=81, `faction_A`=1214, `faction_H`=1214, `npcflag`=0, `speed_walk`=1, `speed_run`=1.14286, `rank`=1, `mindmg`=218, `maxdmg`=327, `attackpower`=82, `dmg_multiplier`=7.5, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=174, `maxrangedmg`=262, `rangedattackpower`=66, `type`=1, `type_flags`=0, `spell1`=8599, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=0, `maxgold`=0 WHERE `entry`=37289;
+UPDATE `creature_template` SET `KillCredit1`=14772, `modelid1`=14797, `modelid2`=14799, `modelid3`=14798, `modelid4`=14800, `gossip_menu_id`=0, `minlevel`=81, `maxlevel`=81, `faction_A`=1214, `faction_H`=1214, `npcflag`=0, `speed_walk`=1, `speed_run`=1.14286, `rank`=1, `mindmg`=436, `maxdmg`=654, `attackpower`=163, `dmg_multiplier`=51.4, `baseattacktime`=2000, `rangeattacktime`=2000, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=349, `maxrangedmg`=523, `rangedattackpower`=130, `type`=7, `type_flags`=0, `spell1`=0, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=0, `maxgold`=0 WHERE `entry`=37291;
+UPDATE `creature_template` SET `KillCredit1`=10981, `modelid1`=10278, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1275, `faction_H`=1275, `npcflag`=0, `speed_walk`=1, `speed_run`=1.14286, `rank`=0, `mindmg`=315, `maxdmg`=472, `attackpower`=118, `dmg_multiplier`=0.9, `baseattacktime`=1500, `rangeattacktime`=1500, `unit_class`=1, `unit_flags`=0, `minrangedmg`=252, `maxrangedmg`=378, `rangedattackpower`=94, `type`=1, `type_flags`=1, `spell1`=13443, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=0, `maxgold`=0 WHERE `entry`=37294;
+UPDATE `creature_template` SET `KillCredit1`=14282, `modelid1`=782, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1275, `faction_H`=1275, `npcflag`=0, `speed_walk`=1, `speed_run`=1.14286, `rank`=0, `mindmg`=315, `maxdmg`=472, `attackpower`=118, `dmg_multiplier`=0.9, `baseattacktime`=1500, `rangeattacktime`=1500, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=252, `maxrangedmg`=378, `rangedattackpower`=94, `type`=1, `type_flags`=0, `spell1`=3391, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=0, `maxgold`=0 WHERE `entry`=37296;
+UPDATE `creature_template` SET `KillCredit1`=13359, `modelid1`=13398, `modelid2`=13399, `modelid3`=13400, `modelid4`=13401, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1214, `faction_H`=1214, `npcflag`=0, `speed_walk`=1, `speed_run`=1.14286, `rank`=0, `mindmg`=420, `maxdmg`=630, `attackpower`=157, `dmg_multiplier`=1, `baseattacktime`=2000, `rangeattacktime`=2000, `unit_class`=1, `unit_flags`=4608, `minrangedmg`=336, `maxrangedmg`=504, `rangedattackpower`=126, `type`=7, `type_flags`=0, `spell1`=22121, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=576, `maxgold`=576 WHERE `entry`=37297;
+UPDATE `creature_template` SET `KillCredit1`=12053, `modelid1`=12165, `modelid2`=12166, `modelid3`=12167, `modelid4`=12170, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1214, `faction_H`=1214, `npcflag`=0, `speed_walk`=1, `speed_run`=1.14286, `rank`=0, `mindmg`=315, `maxdmg`=472, `attackpower`=118, `dmg_multiplier`=1.1, `baseattacktime`=1500, `rangeattacktime`=1500, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=252, `maxrangedmg`=378, `rangedattackpower`=94, `type`=7, `type_flags`=0, `spell1`=12169, `spell2`=19130, `spell3`=0, `spell4`=0, `mingold`=543, `maxgold`=543 WHERE `entry`=37300;
+UPDATE `creature_template` SET `KillCredit1`=12051, `modelid1`=12949, `modelid2`=12950, `modelid3`=12951, `modelid4`=12952, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1214, `faction_H`=1214, `npcflag`=0, `speed_walk`=1, `speed_run`=1.14286, `rank`=0, `mindmg`=315, `maxdmg`=472, `attackpower`=118, `dmg_multiplier`=1, `baseattacktime`=1500, `rangeattacktime`=1500, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=252, `maxrangedmg`=378, `rangedattackpower`=94, `type`=7, `type_flags`=0, `spell1`=11977, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=524, `maxgold`=524 WHERE `entry`=37302;
+UPDATE `creature_template` SET `KillCredit1`=12097, `modelid1`=13385, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1214, `faction_H`=1214, `npcflag`=131, `speed_walk`=1, `speed_run`=1.14286, `rank`=0, `mindmg`=315, `maxdmg`=472, `attackpower`=118, `dmg_multiplier`=1, `baseattacktime`=1500, `rangeattacktime`=1500, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=252, `maxrangedmg`=378, `rangedattackpower`=94, `type`=7, `type_flags`=0, `spell1`=0, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=0, `maxgold`=0 WHERE `entry`=37305;
+UPDATE `creature_template` SET `KillCredit1`=13284, `modelid1`=13410, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=81, `maxlevel`=81, `faction_A`=1214, `faction_H`=1214, `npcflag`=1, `speed_walk`=1, `speed_run`=1.14286, `rank`=1, `mindmg`=203, `maxdmg`=304, `attackpower`=76, `dmg_multiplier`=5.2, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=2, `unit_flags`=4096, `minrangedmg`=162, `maxrangedmg`=243, `rangedattackpower`=61, `type`=7, `type_flags`=0, `spell1`=12550, `spell2`=21401, `spell3`=0, `spell4`=0, `mingold`=1627, `maxgold`=1627 WHERE `entry`=37308;
+UPDATE `creature_template` SET `KillCredit1`=13616, `modelid1`=13670, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=9821, `minlevel`=80, `maxlevel`=80, `faction_A`=1214, `faction_H`=1214, `npcflag`=4194307, `speed_walk`=1.78, `speed_run`=1.14286, `rank`=1, `mindmg`=210, `maxdmg`=315, `attackpower`=79, `dmg_multiplier`=7.9, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=1, `unit_flags`=0, `minrangedmg`=168, `maxrangedmg`=252, `rangedattackpower`=63, `type`=7, `type_flags`=0, `spell1`=0, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=0, `maxgold`=0 WHERE `entry`=37310;
+UPDATE `creature_template` SET `KillCredit1`=13441, `modelid1`=13415, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=81, `maxlevel`=81, `faction_A`=1214, `faction_H`=1214, `npcflag`=2, `speed_walk`=1.79, `speed_run`=1.14286, `rank`=1, `mindmg`=218, `maxdmg`=327, `attackpower`=82, `dmg_multiplier`=7.4, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=1, `unit_flags`=0, `minrangedmg`=174, `maxrangedmg`=262, `rangedattackpower`=66, `type`=7, `type_flags`=0, `spell1`=0, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=2855, `maxgold`=2855 WHERE `entry`=37313;
+UPDATE `creature_template` SET `KillCredit1`=13216, `modelid1`=13476, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=81, `maxlevel`=81, `faction_A`=1216, `faction_H`=1216, `npcflag`=4224, `speed_walk`=1, `speed_run`=1.14286, `rank`=1, `mindmg`=218, `maxdmg`=327, `attackpower`=82, `dmg_multiplier`=4.4, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=174, `maxrangedmg`=262, `rangedattackpower`=66, `type`=7, `type_flags`=0, `spell1`=0, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=1662, `maxgold`=1662 WHERE `entry`=37315;
+UPDATE `creature_template` SET `KillCredit1`=3343, `modelid1`=1359, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1214, `faction_H`=1214, `npcflag`=4224, `speed_walk`=1, `speed_run`=1.14286, `rank`=0, `mindmg`=315, `maxdmg`=472, `attackpower`=118, `dmg_multiplier`=1, `baseattacktime`=1500, `rangeattacktime`=1500, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=252, `maxrangedmg`=378, `rangedattackpower`=94, `type`=7, `type_flags`=0, `spell1`=0, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=0, `maxgold`=0 WHERE `entry`=37318;
+UPDATE `creature_template` SET `KillCredit1`=13218, `modelid1`=13477, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1214, `faction_H`=1214, `npcflag`=4224, `speed_walk`=1, `speed_run`=1.14286, `rank`=1, `mindmg`=210, `maxdmg`=315, `attackpower`=79, `dmg_multiplier`=4.8, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=168, `maxrangedmg`=252, `rangedattackpower`=63, `type`=7, `type_flags`=0, `spell1`=0, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=1561, `maxgold`=1561 WHERE `entry`=37320;
+UPDATE `creature_template` SET `KillCredit1`=13117, `modelid1`=13338, `modelid2`=13339, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=81, `maxlevel`=81, `faction_A`=1801, `faction_H`=1801, `npcflag`=32768, `speed_walk`=1, `speed_run`=1.14286, `rank`=1, `mindmg`=405, `maxdmg`=609, `attackpower`=152, `dmg_multiplier`=49.1, `baseattacktime`=2000, `rangeattacktime`=2000, `unit_class`=2, `unit_flags`=4930, `minrangedmg`=324, `maxrangedmg`=487, `rangedattackpower`=122, `type`=7, `type_flags`=2, `spell1`=0, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=0, `maxgold`=0 WHERE `entry`=37323;
+UPDATE `creature_template` SET `KillCredit1`=14773, `modelid1`=14797, `modelid2`=14799, `modelid3`=14798, `modelid4`=14800, `gossip_menu_id`=0, `minlevel`=81, `maxlevel`=81, `faction_A`=1214, `faction_H`=1214, `npcflag`=0, `speed_walk`=1, `speed_run`=1.14286, `rank`=1, `mindmg`=436, `maxdmg`=654, `attackpower`=163, `dmg_multiplier`=51.4, `baseattacktime`=2000, `rangeattacktime`=2000, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=349, `maxrangedmg`=523, `rangedattackpower`=130, `type`=7, `type_flags`=0, `spell1`=0, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=0, `maxgold`=0 WHERE `entry`=37326;
+UPDATE `creature_template` SET `KillCredit1`=14764, `modelid1`=14793, `modelid2`=14795, `modelid3`=14794, `modelid4`=14796, `gossip_menu_id`=0, `minlevel`=81, `maxlevel`=81, `faction_A`=1216, `faction_H`=1216, `npcflag`=0, `speed_walk`=1, `speed_run`=1.14286, `rank`=1, `mindmg`=218, `maxdmg`=327, `attackpower`=82, `dmg_multiplier`=13.8, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=1, `unit_flags`=0, `minrangedmg`=174, `maxrangedmg`=262, `rangedattackpower`=66, `type`=7, `type_flags`=0, `spell1`=13736, `spell2`=15589, `spell3`=22911, `spell4`=23511, `mingold`=0, `maxgold`=0 WHERE `entry`=37327;
+UPDATE `creature_template` SET `KillCredit1`=13099, `modelid1`=13430, `modelid2`=13431, `modelid3`=13432, `modelid4`=13433, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1214, `faction_H`=1214, `npcflag`=0, `speed_walk`=1.74, `speed_run`=1.14286, `rank`=0, `mindmg`=195, `maxdmg`=293, `attackpower`=73, `dmg_multiplier`=1.1, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=2, `unit_flags`=0, `minrangedmg`=156, `maxrangedmg`=234, `rangedattackpower`=58, `type`=7, `type_flags`=0, `spell1`=12544, `spell2`=14145, `spell3`=15242, `spell4`=15244, `mingold`=0, `maxgold`=0 WHERE `entry`=37331;
+UPDATE `creature_template` SET `KillCredit1`=13080, `modelid1`=13311, `modelid2`=13313, `modelid3`=13312, `modelid4`=13314, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1216, `faction_H`=1216, `npcflag`=0, `speed_walk`=1.76, `speed_run`=1.14286, `rank`=0, `mindmg`=210, `maxdmg`=315, `attackpower`=79, `dmg_multiplier`=1, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=168, `maxrangedmg`=252, `rangedattackpower`=63, `type`=7, `type_flags`=0, `spell1`=15284, `spell2`=16856, `spell3`=0, `spell4`=0, `mingold`=0, `maxgold`=0 WHERE `entry`=37333;
+UPDATE `creature_template` SET `KillCredit1`=13396, `modelid1`=556, `modelid2`=308, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1216, `faction_H`=1216, `npcflag`=0, `speed_walk`=1.76, `speed_run`=1.14286, `rank`=0, `mindmg`=210, `maxdmg`=315, `attackpower`=79, `dmg_multiplier`=0.9, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=1, `unit_flags`=0, `minrangedmg`=168, `maxrangedmg`=252, `rangedattackpower`=63, `type`=7, `type_flags`=0, `spell1`=15572, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=0, `maxgold`=0 WHERE `entry`=37334;
+UPDATE `creature_template` SET `KillCredit1`=13397, `modelid1`=13335, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1214, `faction_H`=1214, `npcflag`=0, `speed_walk`=1.76, `speed_run`=1.14286, `rank`=0, `mindmg`=210, `maxdmg`=315, `attackpower`=79, `dmg_multiplier`=0.9, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=1, `unit_flags`=0, `minrangedmg`=168, `maxrangedmg`=252, `rangedattackpower`=63, `type`=7, `type_flags`=0, `spell1`=15572, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=80, `maxgold`=80 WHERE `entry`=37335;
+UPDATE `creature_template` SET `KillCredit1`=11600, `modelid1`=10285, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=14, `faction_H`=14, `npcflag`=0, `speed_walk`=1, `speed_run`=1.14286, `rank`=0, `mindmg`=195, `maxdmg`=293, `attackpower`=73, `dmg_multiplier`=1.1, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=2, `unit_flags`=0, `minrangedmg`=156, `maxrangedmg`=234, `rangedattackpower`=58, `type`=7, `type_flags`=0, `spell1`=12492, `spell2`=15786, `spell3`=15801, `spell4`=0, `mingold`=246, `maxgold`=246 WHERE `entry`=37337;
+UPDATE `creature_template` SET `KillCredit1`=10987, `modelid1`=10285, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=14, `faction_H`=14, `npcflag`=0, `speed_walk`=1, `speed_run`=1.14286, `rank`=0, `mindmg`=210, `maxdmg`=315, `attackpower`=79, `dmg_multiplier`=0.9, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=1, `unit_flags`=0, `minrangedmg`=168, `maxrangedmg`=252, `rangedattackpower`=63, `type`=7, `type_flags`=0, `spell1`=14516, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=333, `maxgold`=333 WHERE `entry`=37340;
+UPDATE `creature_template` SET `KillCredit1`=5134, `modelid1`=3061, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1216, `faction_H`=1216, `npcflag`=128, `speed_walk`=1, `speed_run`=1.14286, `rank`=0, `mindmg`=315, `maxdmg`=472, `attackpower`=118, `dmg_multiplier`=1, `baseattacktime`=1500, `rangeattacktime`=1500, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=252, `maxrangedmg`=378, `rangedattackpower`=94, `type`=7, `type_flags`=8, `spell1`=0, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=0, `maxgold`=0 WHERE `entry`=37344;
+UPDATE `creature_template` SET `KillCredit1`=13798, `modelid1`=13808, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=81, `maxlevel`=81, `faction_A`=1214, `faction_H`=1214, `npcflag`=2, `speed_walk`=1, `speed_run`=1.14286, `rank`=1, `mindmg`=218, `maxdmg`=327, `attackpower`=82, `dmg_multiplier`=7.7, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=174, `maxrangedmg`=262, `rangedattackpower`=66, `type`=7, `type_flags`=0, `spell1`=15284, `spell2`=16856, `spell3`=0, `spell4`=0, `mingold`=598, `maxgold`=598 WHERE `entry`=37345;
+UPDATE `creature_template` SET `KillCredit1`=13079, `modelid1`=13300, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1214, `faction_H`=1214, `npcflag`=0, `speed_walk`=1.76, `speed_run`=1.14286, `rank`=0, `mindmg`=210, `maxdmg`=315, `attackpower`=79, `dmg_multiplier`=1.1, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=1, `unit_flags`=0, `minrangedmg`=168, `maxrangedmg`=252, `rangedattackpower`=63, `type`=7, `type_flags`=0, `spell1`=14516, `spell2`=15496, `spell3`=15576, `spell4`=17207, `mingold`=175, `maxgold`=175 WHERE `entry`=37346;
+UPDATE `creature_template` SET `KillCredit1`=5139, `modelid1`=3084, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1216, `faction_H`=1216, `npcflag`=128, `speed_walk`=1, `speed_run`=1.14286, `rank`=0, `mindmg`=315, `maxdmg`=472, `attackpower`=118, `dmg_multiplier`=1, `baseattacktime`=1500, `rangeattacktime`=1500, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=252, `maxrangedmg`=378, `rangedattackpower`=94, `type`=7, `type_flags`=0, `spell1`=0, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=104, `maxgold`=104 WHERE `entry`=37348;
+UPDATE `creature_template` SET `KillCredit1`=4257, `modelid1`=2286, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1216, `faction_H`=1216, `npcflag`=4224, `speed_walk`=1, `speed_run`=1.14286, `rank`=0, `mindmg`=315, `maxdmg`=472, `attackpower`=118, `dmg_multiplier`=1, `baseattacktime`=1500, `rangeattacktime`=1500, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=252, `maxrangedmg`=378, `rangedattackpower`=94, `type`=7, `type_flags`=0, `spell1`=0, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=133, `maxgold`=133 WHERE `entry`=37349;
+UPDATE `creature_template` SET `KillCredit1`=13088, `modelid1`=13305, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1214, `faction_H`=1214, `npcflag`=0, `speed_walk`=1.76, `speed_run`=1.14286, `rank`=0, `mindmg`=210, `maxdmg`=315, `attackpower`=79, `dmg_multiplier`=1.1, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=1, `unit_flags`=0, `minrangedmg`=168, `maxrangedmg`=252, `rangedattackpower`=63, `type`=7, `type_flags`=0, `spell1`=3391, `spell2`=6434, `spell3`=15667, `spell4`=0, `mingold`=278, `maxgold`=278 WHERE `entry`=37364;
+UPDATE `creature_template` SET `KillCredit1`=11657, `modelid1`=5945, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=14, `faction_H`=14, `npcflag`=0, `speed_walk`=1, `speed_run`=1.14286, `rank`=0, `mindmg`=195, `maxdmg`=293, `attackpower`=73, `dmg_multiplier`=1.2, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=2, `unit_flags`=512, `minrangedmg`=156, `maxrangedmg`=234, `rangedattackpower`=58, `type`=7, `type_flags`=0, `spell1`=15537, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=111, `maxgold`=111 WHERE `entry`=37366;
+UPDATE `creature_template` SET `KillCredit1`=13797, `modelid1`=13849, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=81, `maxlevel`=81, `faction_A`=1216, `faction_H`=1216, `npcflag`=2, `speed_walk`=1, `speed_run`=1.14286, `rank`=1, `mindmg`=218, `maxdmg`=327, `attackpower`=82, `dmg_multiplier`=3.2, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=1, `unit_flags`=0, `minrangedmg`=174, `maxrangedmg`=262, `rangedattackpower`=66, `type`=7, `type_flags`=0, `spell1`=11976, `spell2`=22120, `spell3`=0, `spell4`=0, `mingold`=1828, `maxgold`=1828 WHERE `entry`=37367;
+UPDATE `creature_template` SET `KillCredit1`=13257, `modelid1`=13151, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=5021, `minlevel`=81, `maxlevel`=81, `faction_A`=1216, `faction_H`=1216, `npcflag`=3, `speed_walk`=1, `speed_run`=1.14286, `rank`=1, `mindmg`=218, `maxdmg`=327, `attackpower`=82, `dmg_multiplier`=7.5, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=174, `maxrangedmg`=262, `rangedattackpower`=66, `type`=7, `type_flags`=0, `spell1`=21163, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=639, `maxgold`=639 WHERE `entry`=37369;
+UPDATE `creature_template` SET `KillCredit1`=14185, `modelid1`=14232, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=126, `faction_H`=126, `npcflag`=2, `speed_walk`=1, `speed_run`=1.14286, `rank`=0, `mindmg`=315, `maxdmg`=472, `attackpower`=118, `dmg_multiplier`=1.1, `baseattacktime`=1500, `rangeattacktime`=1500, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=252, `maxrangedmg`=378, `rangedattackpower`=94, `type`=7, `type_flags`=0, `spell1`=0, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=578, `maxgold`=578 WHERE `entry`=37370;
+UPDATE `creature_template` SET `KillCredit1`=13236, `modelid1`=13478, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=81, `maxlevel`=81, `faction_A`=1214, `faction_H`=1214, `npcflag`=3, `speed_walk`=1, `speed_run`=2, `rank`=1, `mindmg`=203, `maxdmg`=304, `attackpower`=76, `dmg_multiplier`=8.1, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=2, `unit_flags`=4096, `minrangedmg`=162, `maxrangedmg`=243, `rangedattackpower`=61, `type`=7, `type_flags`=0, `spell1`=15234, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=1854, `maxgold`=1854 WHERE `entry`=37371;
+UPDATE `creature_template` SET `KillCredit1`=13816, `modelid1`=13794, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1216, `faction_H`=1216, `npcflag`=2, `speed_walk`=1, `speed_run`=1.14286, `rank`=0, `mindmg`=315, `maxdmg`=472, `attackpower`=118, `dmg_multiplier`=1.1, `baseattacktime`=1500, `rangeattacktime`=1500, `unit_class`=1, `unit_flags`=4608, `minrangedmg`=252, `maxrangedmg`=378, `rangedattackpower`=94, `type`=7, `type_flags`=0, `spell1`=0, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=175, `maxgold`=175 WHERE `entry`=37372;
+UPDATE `creature_template` SET `KillCredit1`=3625, `modelid1`=4294, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1214, `faction_H`=1214, `npcflag`=128, `speed_walk`=1, `speed_run`=1.14286, `rank`=0, `mindmg`=315, `maxdmg`=472, `attackpower`=118, `dmg_multiplier`=1, `baseattacktime`=1500, `rangeattacktime`=1500, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=252, `maxrangedmg`=378, `rangedattackpower`=94, `type`=7, `type_flags`=0, `spell1`=0, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=135, `maxgold`=135 WHERE `entry`=37373;
+UPDATE `creature_template` SET `KillCredit1`=14186, `modelid1`=14233, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=105, `faction_H`=105, `npcflag`=2, `speed_walk`=1, `speed_run`=1.14286, `rank`=0, `mindmg`=420, `maxdmg`=630, `attackpower`=157, `dmg_multiplier`=1.2, `baseattacktime`=2000, `rangeattacktime`=2000, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=336, `maxrangedmg`=504, `rangedattackpower`=126, `type`=7, `type_flags`=0, `spell1`=0, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=600, `maxgold`=600 WHERE `entry`=37374;
+UPDATE `creature_template` SET `KillCredit1`=13326, `modelid1`=13262, `modelid2`=13263, `modelid3`=13264, `modelid4`=13265, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1216, `faction_H`=1216, `npcflag`=0, `speed_walk`=1, `speed_run`=1.14286, `rank`=0, `mindmg`=315, `maxdmg`=472, `attackpower`=118, `dmg_multiplier`=1.3, `baseattacktime`=1500, `rangeattacktime`=1500, `unit_class`=1, `unit_flags`=0, `minrangedmg`=252, `maxrangedmg`=378, `rangedattackpower`=94, `type`=7, `type_flags`=0, `spell1`=12169, `spell2`=19130, `spell3`=0, `spell4`=0, `mingold`=575, `maxgold`=575 WHERE `entry`=37383;
+UPDATE `creature_template` SET `KillCredit1`=13328, `modelid1`=13278, `modelid2`=13279, `modelid3`=13280, `modelid4`=13281, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1214, `faction_H`=1214, `npcflag`=0, `speed_walk`=1, `speed_run`=1.14286, `rank`=0, `mindmg`=315, `maxdmg`=472, `attackpower`=118, `dmg_multiplier`=1.3, `baseattacktime`=1500, `rangeattacktime`=1500, `unit_class`=1, `unit_flags`=0, `minrangedmg`=252, `maxrangedmg`=378, `rangedattackpower`=94, `type`=7, `type_flags`=0, `spell1`=12169, `spell2`=19130, `spell3`=0, `spell4`=0, `mingold`=581, `maxgold`=581 WHERE `entry`=37384;
+UPDATE `creature_template` SET `KillCredit1`=13448, `modelid1`=13402, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1214, `faction_H`=1214, `npcflag`=3, `speed_walk`=1, `speed_run`=1.14286, `rank`=0, `mindmg`=315, `maxdmg`=472, `attackpower`=118, `dmg_multiplier`=1, `baseattacktime`=1500, `rangeattacktime`=1500, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=252, `maxrangedmg`=378, `rangedattackpower`=94, `type`=7, `type_flags`=0, `spell1`=11977, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=900, `maxgold`=900 WHERE `entry`=37398;
+UPDATE `creature_template` SET `KillCredit1`=10367, `modelid1`=9765, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1214, `faction_H`=1214, `npcflag`=128, `speed_walk`=1, `speed_run`=1.14286, `rank`=0, `mindmg`=315, `maxdmg`=472, `attackpower`=118, `dmg_multiplier`=1, `baseattacktime`=1500, `rangeattacktime`=1500, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=252, `maxrangedmg`=378, `rangedattackpower`=94, `type`=7, `type_flags`=0, `spell1`=0, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=0, `maxgold`=0 WHERE `entry`=37399;
+UPDATE `creature_template` SET `KillCredit1`=13176, `modelid1`=13152, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=5124, `minlevel`=81, `maxlevel`=81, `faction_A`=1214, `faction_H`=1214, `npcflag`=3, `speed_walk`=1, `speed_run`=1.14286, `rank`=1, `mindmg`=218, `maxdmg`=327, `attackpower`=82, `dmg_multiplier`=7.5, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=174, `maxrangedmg`=262, `rangedattackpower`=66, `type`=7, `type_flags`=0, `spell1`=21163, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=1910, `maxgold`=1910 WHERE `entry`=37401;
+UPDATE `creature_template` SET `KillCredit1`=11678, `modelid1`=10282, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=14, `faction_H`=14, `npcflag`=0, `speed_walk`=1.38889, `speed_run`=1.14286, `rank`=0, `mindmg`=315, `maxdmg`=472, `attackpower`=118, `dmg_multiplier`=0.9, `baseattacktime`=1500, `rangeattacktime`=1500, `unit_class`=1, `unit_flags`=0, `minrangedmg`=252, `maxrangedmg`=378, `rangedattackpower`=94, `type`=7, `type_flags`=0, `spell1`=7159, `spell2`=19472, `spell3`=0, `spell4`=0, `mingold`=411, `maxgold`=411 WHERE `entry`=37402;
+UPDATE `creature_template` SET `KillCredit1`=10986, `modelid1`=10282, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=514, `faction_H`=514, `npcflag`=0, `speed_walk`=1.38889, `speed_run`=1.14286, `rank`=0, `mindmg`=315, `maxdmg`=472, `attackpower`=118, `dmg_multiplier`=0.9, `baseattacktime`=1500, `rangeattacktime`=1500, `unit_class`=1, `unit_flags`=0, `minrangedmg`=252, `maxrangedmg`=378, `rangedattackpower`=94, `type`=7, `type_flags`=0, `spell1`=3589, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=411, `maxgold`=411 WHERE `entry`=37403;
+UPDATE `creature_template` SET `KillCredit1`=11675, `modelid1`=10282, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=14, `faction_H`=14, `npcflag`=0, `speed_walk`=1.38889, `speed_run`=1.14286, `rank`=0, `mindmg`=293, `maxdmg`=439, `attackpower`=110, `dmg_multiplier`=1, `baseattacktime`=1500, `rangeattacktime`=1500, `unit_class`=2, `unit_flags`=0, `minrangedmg`=234, `maxrangedmg`=351, `rangedattackpower`=88, `type`=7, `type_flags`=0, `spell1`=9532, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=426, `maxgold`=426 WHERE `entry`=37404;
+UPDATE `creature_template` SET `KillCredit1`=14765, `modelid1`=14793, `modelid2`=14795, `modelid3`=14794, `modelid4`=14796, `gossip_menu_id`=0, `minlevel`=81, `maxlevel`=81, `faction_A`=1216, `faction_H`=1216, `npcflag`=0, `speed_walk`=1, `speed_run`=1.14286, `rank`=1, `mindmg`=218, `maxdmg`=327, `attackpower`=82, `dmg_multiplier`=13.8, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=1, `unit_flags`=0, `minrangedmg`=174, `maxrangedmg`=262, `rangedattackpower`=66, `type`=7, `type_flags`=0, `spell1`=13736, `spell2`=15589, `spell3`=22911, `spell4`=23511, `mingold`=0, `maxgold`=0 WHERE `entry`=37407;
+UPDATE `creature_template` SET `KillCredit1`=14284, `modelid1`=14322, `modelid2`=14324, `modelid3`=14326, `modelid4`=14327, `gossip_menu_id`=0, `minlevel`=81, `maxlevel`=81, `faction_A`=1216, `faction_H`=1216, `npcflag`=0, `speed_walk`=1, `speed_run`=1.14286, `rank`=1, `mindmg`=218, `maxdmg`=327, `attackpower`=82, `dmg_multiplier`=7.2, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=1, `unit_flags`=4608, `minrangedmg`=174, `maxrangedmg`=262, `rangedattackpower`=66, `type`=7, `type_flags`=0, `spell1`=0, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=1616, `maxgold`=1616 WHERE `entry`=37409;
+UPDATE `creature_template` SET `KillCredit1`=13358, `modelid1`=13390, `modelid2`=13391, `modelid3`=13392, `modelid4`=13393, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1216, `faction_H`=1216, `npcflag`=0, `speed_walk`=1, `speed_run`=1.14286, `rank`=0, `mindmg`=420, `maxdmg`=630, `attackpower`=157, `dmg_multiplier`=1, `baseattacktime`=2000, `rangeattacktime`=2000, `unit_class`=1, `unit_flags`=4608, `minrangedmg`=336, `maxrangedmg`=504, `rangedattackpower`=126, `type`=7, `type_flags`=0, `spell1`=22121, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=580, `maxgold`=580 WHERE `entry`=37410;
+UPDATE `creature_template` SET `KillCredit1`=12050, `modelid1`=13274, `modelid2`=13275, `modelid3`=13276, `modelid4`=13277, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1216, `faction_H`=1216, `npcflag`=0, `speed_walk`=1, `speed_run`=1.14286, `rank`=0, `mindmg`=315, `maxdmg`=472, `attackpower`=118, `dmg_multiplier`=1.1, `baseattacktime`=1500, `rangeattacktime`=1500, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=252, `maxrangedmg`=378, `rangedattackpower`=94, `type`=7, `type_flags`=0, `spell1`=12169, `spell2`=19130, `spell3`=0, `spell4`=0, `mingold`=547, `maxgold`=547 WHERE `entry`=37412;
+UPDATE `creature_template` SET `KillCredit1`=12127, `modelid1`=13253, `modelid2`=12077, `modelid3`=12079, `modelid4`=12078, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1216, `faction_H`=1216, `npcflag`=0, `speed_walk`=1, `speed_run`=1.14286, `rank`=0, `mindmg`=315, `maxdmg`=472, `attackpower`=118, `dmg_multiplier`=1, `baseattacktime`=1500, `rangeattacktime`=1500, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=252, `maxrangedmg`=378, `rangedattackpower`=94, `type`=7, `type_flags`=0, `spell1`=11976, `spell2`=22120, `spell3`=0, `spell4`=0, `mingold`=520, `maxgold`=520 WHERE `entry`=37415;
+UPDATE `creature_template` SET `KillCredit1`=11997, `modelid1`=12075, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1216, `faction_H`=1216, `npcflag`=1, `speed_walk`=1, `speed_run`=1.14286, `rank`=0, `mindmg`=315, `maxdmg`=472, `attackpower`=118, `dmg_multiplier`=1.4, `baseattacktime`=1500, `rangeattacktime`=1500, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=252, `maxrangedmg`=378, `rangedattackpower`=94, `type`=7, `type_flags`=0, `spell1`=0, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=0, `maxgold`=0 WHERE `entry`=37416;
+UPDATE `creature_template` SET `KillCredit1`=14283, `modelid1`=10828, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1216, `faction_H`=1216, `npcflag`=0, `speed_walk`=1, `speed_run`=1.14286, `rank`=0, `mindmg`=315, `maxdmg`=472, `attackpower`=118, `dmg_multiplier`=0.9, `baseattacktime`=1500, `rangeattacktime`=1500, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=252, `maxrangedmg`=378, `rangedattackpower`=94, `type`=1, `type_flags`=1, `spell1`=3391, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=0, `maxgold`=0 WHERE `entry`=37419;
+UPDATE `creature_template` SET `KillCredit1`=12096, `modelid1`=13384, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=5241, `minlevel`=80, `maxlevel`=80, `faction_A`=1216, `faction_H`=1216, `npcflag`=131, `speed_walk`=1, `speed_run`=1.14286, `rank`=0, `mindmg`=315, `maxdmg`=472, `attackpower`=118, `dmg_multiplier`=1, `baseattacktime`=1500, `rangeattacktime`=1500, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=252, `maxrangedmg`=378, `rangedattackpower`=94, `type`=7, `type_flags`=0, `spell1`=0, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=150, `maxgold`=150 WHERE `entry`=37420;
+UPDATE `creature_template` SET `KillCredit1`=13577, `modelid1`=13714, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=5281, `minlevel`=81, `maxlevel`=81, `faction_A`=1216, `faction_H`=1216, `npcflag`=3, `speed_walk`=1, `speed_run`=1.38571, `rank`=1, `mindmg`=218, `maxdmg`=327, `attackpower`=82, `dmg_multiplier`=8.2, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=174, `maxrangedmg`=262, `rangedattackpower`=66, `type`=7, `type_flags`=0, `spell1`=15284, `spell2`=16856, `spell3`=0, `spell4`=0, `mingold`=1713, `maxgold`=1713 WHERE `entry`=37422;
+UPDATE `creature_template` SET `KillCredit1`=13617, `modelid1`=13669, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=9821, `minlevel`=81, `maxlevel`=81, `faction_A`=1216, `faction_H`=1216, `npcflag`=4194307, `speed_walk`=1, `speed_run`=1.14286, `rank`=1, `mindmg`=218, `maxdmg`=327, `attackpower`=82, `dmg_multiplier`=7.3, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=174, `maxrangedmg`=262, `rangedattackpower`=66, `type`=7, `type_flags`=0, `spell1`=0, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=632, `maxgold`=632 WHERE `entry`=37426;
+UPDATE `creature_template` SET `KillCredit1`=5135, `modelid1`=3083, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1216, `faction_H`=1216, `npcflag`=128, `speed_walk`=1, `speed_run`=1.14286, `rank`=0, `mindmg`=315, `maxdmg`=472, `attackpower`=118, `dmg_multiplier`=1, `baseattacktime`=1500, `rangeattacktime`=1500, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=252, `maxrangedmg`=378, `rangedattackpower`=94, `type`=7, `type_flags`=0, `spell1`=0, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=0, `maxgold`=0 WHERE `entry`=37427;
+UPDATE `creature_template` SET `KillCredit1`=11677, `modelid1`=371, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=14, `faction_H`=14, `npcflag`=0, `speed_walk`=1.76, `speed_run`=1.14286, `rank`=0, `mindmg`=195, `maxdmg`=293, `attackpower`=73, `dmg_multiplier`=1.2, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=2, `unit_flags`=0, `minrangedmg`=156, `maxrangedmg`=234, `rangedattackpower`=58, `type`=7, `type_flags`=0, `spell1`=3391, `spell2`=14516, `spell3`=16170, `spell4`=0, `mingold`=254, `maxgold`=254 WHERE `entry`=37431;
+UPDATE `creature_template` SET `KillCredit1`=14776, `modelid1`=14797, `modelid2`=14799, `modelid3`=14798, `modelid4`=14800, `gossip_menu_id`=0, `minlevel`=81, `maxlevel`=81, `faction_A`=1214, `faction_H`=1214, `npcflag`=0, `speed_walk`=1, `speed_run`=1.14286, `rank`=1, `mindmg`=436, `maxdmg`=654, `attackpower`=163, `dmg_multiplier`=51.4, `baseattacktime`=2000, `rangeattacktime`=2000, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=349, `maxrangedmg`=523, `rangedattackpower`=130, `type`=7, `type_flags`=0, `spell1`=0, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=150, `maxgold`=150 WHERE `entry`=37435;
+UPDATE `creature_template` SET `KillCredit1`=13078, `modelid1`=13299, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1216, `faction_H`=1216, `npcflag`=0, `speed_walk`=1.77, `speed_run`=1.14286, `rank`=0, `mindmg`=210, `maxdmg`=315, `attackpower`=79, `dmg_multiplier`=1.1, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=168, `maxrangedmg`=252, `rangedattackpower`=63, `type`=7, `type_flags`=0, `spell1`=8147, `spell2`=12057, `spell3`=0, `spell4`=0, `mingold`=117, `maxgold`=117 WHERE `entry`=37442;
+UPDATE `creature_template` SET `KillCredit1`=11948, `modelid1`=11896, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=83, `maxlevel`=83, `faction_A`=1216, `faction_H`=1216, `npcflag`=0, `speed_walk`=1, `speed_run`=1.14286, `rank`=3, `mindmg`=468, `maxdmg`=702, `attackpower`=175, `dmg_multiplier`=62, `baseattacktime`=2000, `rangeattacktime`=2000, `unit_class`=1, `unit_flags`=0, `minrangedmg`=374, `maxrangedmg`=562, `rangedattackpower`=140, `type`=7, `type_flags`=4, `spell1`=0, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=0, `maxgold`=0 WHERE `entry`=37444;
+UPDATE `creature_template` SET `KillCredit1`=13331, `modelid1`=13258, `modelid2`=13259, `modelid3`=13260, `modelid4`=13261, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1216, `faction_H`=1216, `npcflag`=0, `speed_walk`=1.28, `speed_run`=1.14286, `rank`=0, `mindmg`=315, `maxdmg`=472, `attackpower`=118, `dmg_multiplier`=1.4, `baseattacktime`=1500, `rangeattacktime`=1500, `unit_class`=1, `unit_flags`=0, `minrangedmg`=252, `maxrangedmg`=378, `rangedattackpower`=94, `type`=7, `type_flags`=0, `spell1`=12169, `spell2`=19130, `spell3`=0, `spell4`=0, `mingold`=662, `maxgold`=662 WHERE `entry`=37450;
+UPDATE `creature_template` SET `KillCredit1`=13332, `modelid1`=13282, `modelid2`=13283, `modelid3`=13284, `modelid4`=13285, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1214, `faction_H`=1214, `npcflag`=0, `speed_walk`=1.28, `speed_run`=1.14286, `rank`=0, `mindmg`=315, `maxdmg`=472, `attackpower`=118, `dmg_multiplier`=1.4, `baseattacktime`=1500, `rangeattacktime`=1500, `unit_class`=1, `unit_flags`=0, `minrangedmg`=252, `maxrangedmg`=378, `rangedattackpower`=94, `type`=7, `type_flags`=0, `spell1`=12169, `spell2`=19130, `spell3`=0, `spell4`=0, `mingold`=617, `maxgold`=617 WHERE `entry`=37451;
+UPDATE `creature_template` SET `KillCredit1`=14777, `modelid1`=14797, `modelid2`=14799, `modelid3`=14798, `modelid4`=14800, `gossip_menu_id`=0, `minlevel`=81, `maxlevel`=81, `faction_A`=1214, `faction_H`=1214, `npcflag`=0, `speed_walk`=1, `speed_run`=1.14286, `rank`=1, `mindmg`=436, `maxdmg`=654, `attackpower`=163, `dmg_multiplier`=51.4, `baseattacktime`=2000, `rangeattacktime`=2000, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=349, `maxrangedmg`=523, `rangedattackpower`=130, `type`=7, `type_flags`=0, `spell1`=0, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=0, `maxgold`=0 WHERE `entry`=37468;
+UPDATE `creature_template` SET `KillCredit1`=11603, `modelid1`=371, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=14, `faction_H`=14, `npcflag`=0, `speed_walk`=1, `speed_run`=1.14286, `rank`=0, `mindmg`=210, `maxdmg`=315, `attackpower`=79, `dmg_multiplier`=0.9, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=1, `unit_flags`=0, `minrangedmg`=168, `maxrangedmg`=252, `rangedattackpower`=63, `type`=7, `type_flags`=0, `spell1`=12057, `spell2`=15572, `spell3`=0, `spell4`=0, `mingold`=195, `maxgold`=195 WHERE `entry`=37469;
+UPDATE `creature_template` SET `KillCredit1`=11604, `modelid1`=371, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=14, `faction_H`=14, `npcflag`=0, `speed_walk`=1, `speed_run`=1.14286, `rank`=0, `mindmg`=195, `maxdmg`=293, `attackpower`=73, `dmg_multiplier`=1.1, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=2, `unit_flags`=0, `minrangedmg`=156, `maxrangedmg`=234, `rangedattackpower`=58, `type`=7, `type_flags`=0, `spell1`=15228, `spell2`=18968, `spell3`=0, `spell4`=0, `mingold`=271, `maxgold`=271 WHERE `entry`=37470;
+UPDATE `creature_template` SET `KillCredit1`=10982, `modelid1`=371, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=14, `faction_H`=14, `npcflag`=0, `speed_walk`=1, `speed_run`=1.14286, `rank`=0, `mindmg`=210, `maxdmg`=315, `attackpower`=79, `dmg_multiplier`=1, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=1, `unit_flags`=0, `minrangedmg`=168, `maxrangedmg`=252, `rangedattackpower`=63, `type`=7, `type_flags`=0, `spell1`=17230, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=145, `maxgold`=145 WHERE `entry`=37473;
+UPDATE `creature_template` SET `KillCredit1`=11839, `modelid1`=494, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=14, `faction_H`=14, `npcflag`=0, `speed_walk`=1, `speed_run`=1.19048, `rank`=0, `mindmg`=315, `maxdmg`=472, `attackpower`=118, `dmg_multiplier`=1, `baseattacktime`=1500, `rangeattacktime`=1500, `unit_class`=1, `unit_flags`=0, `minrangedmg`=252, `maxrangedmg`=378, `rangedattackpower`=94, `type`=7, `type_flags`=0, `spell1`=13737, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=498, `maxgold`=498 WHERE `entry`=37475;
+UPDATE `creature_template` SET `KillCredit1`=13179, `modelid1`=13473, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=81, `maxlevel`=81, `faction_A`=1214, `faction_H`=1214, `npcflag`=3, `speed_walk`=1, `speed_run`=1.14286, `rank`=1, `mindmg`=218, `maxdmg`=327, `attackpower`=82, `dmg_multiplier`=4.7, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=1, `unit_flags`=4608, `minrangedmg`=174, `maxrangedmg`=262, `rangedattackpower`=66, `type`=7, `type_flags`=0, `spell1`=15572, `spell2`=15580, `spell3`=0, `spell4`=0, `mingold`=1714, `maxgold`=1714 WHERE `entry`=37479;
+UPDATE `creature_template` SET `KillCredit1`=13437, `modelid1`=13470, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=5146, `minlevel`=81, `maxlevel`=81, `faction_A`=1216, `faction_H`=1216, `npcflag`=3, `speed_walk`=1, `speed_run`=1.14286, `rank`=1, `mindmg`=218, `maxdmg`=327, `attackpower`=82, `dmg_multiplier`=6.9, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=1, `unit_flags`=4928, `minrangedmg`=174, `maxrangedmg`=262, `rangedattackpower`=66, `type`=7, `type_flags`=0, `spell1`=15580, `spell2`=16509, `spell3`=0, `spell4`=0, `mingold`=1813, `maxgold`=1813 WHERE `entry`=37480;
+UPDATE `creature_template` SET `KillCredit1`=13180, `modelid1`=13474, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=81, `maxlevel`=81, `faction_A`=1214, `faction_H`=1214, `npcflag`=2, `speed_walk`=1, `speed_run`=1.14286, `rank`=1, `mindmg`=218, `maxdmg`=327, `attackpower`=82, `dmg_multiplier`=4.4, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=174, `maxrangedmg`=262, `rangedattackpower`=66, `type`=7, `type_flags`=0, `spell1`=15572, `spell2`=15580, `spell3`=0, `spell4`=0, `mingold`=1758, `maxgold`=1758 WHERE `entry`=37481;
+UPDATE `creature_template` SET `KillCredit1`=13438, `modelid1`=13471, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=5148, `minlevel`=81, `maxlevel`=81, `faction_A`=1216, `faction_H`=1216, `npcflag`=3, `speed_walk`=1, `speed_run`=1.14286, `rank`=1, `mindmg`=218, `maxdmg`=327, `attackpower`=82, `dmg_multiplier`=4.8, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=174, `maxrangedmg`=262, `rangedattackpower`=66, `type`=7, `type_flags`=0, `spell1`=15580, `spell2`=16509, `spell3`=0, `spell4`=0, `mingold`=1586, `maxgold`=1586 WHERE `entry`=37483;
+UPDATE `creature_template` SET `KillCredit1`=13439, `modelid1`=13472, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=5147, `minlevel`=81, `maxlevel`=81, `faction_A`=1216, `faction_H`=1216, `npcflag`=3, `speed_walk`=1, `speed_run`=1.14286, `rank`=1, `mindmg`=218, `maxdmg`=327, `attackpower`=82, `dmg_multiplier`=4.5, `baseattacktime`=1000, `rangeattacktime`=1000, `unit_class`=1, `unit_flags`=4608, `minrangedmg`=174, `maxrangedmg`=262, `rangedattackpower`=66, `type`=7, `type_flags`=0, `spell1`=15580, `spell2`=16509, `spell3`=0, `spell4`=0, `mingold`=1645, `maxgold`=1645 WHERE `entry`=37484;
+UPDATE `creature_template` SET `KillCredit1`=10364, `modelid1`=9763, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1214, `faction_H`=1214, `npcflag`=128, `speed_walk`=1, `speed_run`=1.14286, `rank`=0, `mindmg`=315, `maxdmg`=472, `attackpower`=118, `dmg_multiplier`=1, `baseattacktime`=1500, `rangeattacktime`=1500, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=252, `maxrangedmg`=378, `rangedattackpower`=94, `type`=7, `type_flags`=0, `spell1`=0, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=0, `maxgold`=0 WHERE `entry`=37485;
+UPDATE `creature_template` SET `KillCredit1`=2225, `modelid1`=14781, `modelid2`=0, `modelid3`=0, `modelid4`=0, `gossip_menu_id`=0, `minlevel`=80, `maxlevel`=80, `faction_A`=1214, `faction_H`=1214, `npcflag`=128, `speed_walk`=1, `speed_run`=1.14286, `rank`=0, `mindmg`=315, `maxdmg`=472, `attackpower`=118, `dmg_multiplier`=1, `baseattacktime`=1500, `rangeattacktime`=1500, `unit_class`=1, `unit_flags`=4096, `minrangedmg`=252, `maxrangedmg`=378, `rangedattackpower`=94, `type`=7, `type_flags`=0, `spell1`=0, `spell2`=0, `spell3`=0, `spell4`=0, `mingold`=0, `maxgold`=0 WHERE `entry`=37486;
+
+update `creature_template` set exp=2 where `entry` in (37234,
+37236, 37237, 37239, 37240, 37242, 37243, 37244, 37250, 37251, 37264,
+37267, 37268, 37269, 37278, 37281, 37282, 37283, 37284, 37285, 37287,
+37289, 37291, 37294, 37296, 37297, 37300, 37302, 37305, 37308, 37310,
+37313, 37315, 37318, 37320, 37323, 37326, 37327, 37331, 37333, 37334,
+37335, 37337, 37340, 37344, 37345, 37346, 37348, 37349, 37364, 37366,
+37367, 37369, 37370, 37371, 37372, 37373, 37374, 37383, 37384, 37398,
+37399, 37401, 37402, 37403, 37404, 37407, 37409, 37410, 37412, 37415,
+37416, 37419, 37420, 37422, 37426, 37427, 37431, 37435, 37442, 37444,
+37450, 37451, 37468, 37469, 37470, 37473, 37475, 37479, 37480, 37481,
+37483, 37484, 37485, 37486);
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_05_02_world_QuestchainSOH.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_05_02_world_QuestchainSOH.sql
new file mode 100644
index 00000000000..14a3ea7c1a0
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_05_02_world_QuestchainSOH.sql
@@ -0,0 +1,543 @@
+-- A lot of missing npcs/gobs/quest relations/quests/phases etc..
+-- http://www.wowwiki.com/Storm_Peaks_quests
+-- http://www.wowwiki.com/Sons_of_Hodir
+-- http://www.wowhead.com/faction=1119#comments:id=905880
+SET @NJORMELD := 30099; -- At Fjorn's Anvil
+SET @NJORMELD2 := 30127; -- At Dun Niffelem
+SET @SNORRI_NPC := 30123; -- At Fjorn's Anvil
+SET @SNORRI_MOUNT := 30124; -- Snorri spell_click
+SET @NPC_BUNNY := 30122; -- Storm Peaks Anvil Bunny
+SET @NPC_SR2 := 30120; -- Seething Revenant (phase 2)
+SET @NPC_SR3 := 30387; -- Seething Revenant (phase 3)
+SET @NPC_FGS := 30121; -- Frost Giant Stormherald
+SET @NPC_BR := 30160; -- Brittle Revenant
+SET @NPC_SOH2 := 30262; -- Son of Hodir (phase 2)
+SET @NPC_BF := 30320; -- Battlescarred Frostworg (phase 2)
+SET @SM := 30260; -- Stoic Mammoth (phase 2)
+SET @RJ := 30422; -- Roaming Jormungar
+SET @WARBEAR := 29918; -- Warbear Matriarch
+SET @HYLDSMEET_WB := 30174; -- Hyldsmeet Warbear
+SET @BUNNY_SPEAR := 30246; -- Dun Niffelem Spear Chain Bunny (Phase 2)
+SET @F_WORG := 30219; -- Ethereal Frostwarg
+SET @SF_INFIL := 30222; -- Stormforged Infiltrator
+
+SET @NPC_THORIM2 := 30390; -- at Thunderfall
+SET @NPC_THORIM3 := 30295; -- at Terrace of the Makers
+-- Will be used in Hot and Cold
+SET @SPELL_RIDE := 55957; -- Ride Snorri
+SET @SPELL_GATHER := 56750; -- Gather Snow
+SET @SPELL_THROW := 56753; -- Throw Snowball
+SET @SPELL_SLEEP := 32951; -- Sleeping Sleep
+SET @SPELL_WAKE := 56752; -- Wake Snorri
+SET @SPELL_KCtTM := 56755; -- KC toTarget Master
+SET @SPELL_KC := 56754; -- Kill Credit, Seething Revenant
+SET @F_REPUTATION := 57048; -- Force Reputation
+SET @SUMMON_SFINF := 56325; -- Summon Stormforged Infiltrator
+
+SET @GO_SNOWDRIFT := 192075; -- Snowdrift
+SET @GO_ANVIL1 := 192060; -- Fjorn's Anvil (at Fjorn's Anvil)
+SET @GO_ANVIL2 := 192071; -- Fjorn's Anvil (at Dun Niffelem)
+SET @GO_SPEAR := 192079; -- Hodir's Spear
+SET @GO_ARNGRIM := 192524; -- Arngrim the Insatiable
+SET @GO_HORN := 192078; -- Hodir's Horn
+SET @GO_WARG := 300244; -- Corpse of the Fallen Worg (Spell focus)
+SET @GO_GRANITE := 191815; -- Granite Boulder
+SET @GO_GRANITE2 := 191814; -- Granite Boulder
+SET @QUEST1 := 12967; -- Battling the Elements
+SET @QUEST2 := 12981; -- Hot and Cold
+SET @QUEST3 := 13003; -- Thrusting Hodir's Spear
+SET @QUEST4 := 13046; -- Feeding Arngrim
+SET @QUEST5 := 12977; -- Blowing Hodir's Horn
+
+SET @GUID_BUNNY1 := 63373; -- 4 required NPC
+SET @GUID_BUNNY2 := 129993; -- 6 required NPC
+SET @GUID_BUNNY := 116620; -- 23 required NPC
+SET @GUID := 142335; -- 77 reqiured NPC
+SET @OGUID := 20918; -- 17 requied GO
+SET @GUID_GO := 21065; -- 20 required GO
+
+
+DELETE FROM `gameobject` WHERE `id` IN (@GO_ANVIL1,@GO_ANVIL2,@GO_SNOWDRIFT,@GO_SPEAR,@GO_ARNGRIM,@GO_HORN,@GO_WARG,@GO_GRANITE,@GO_GRANITE2);
+INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
+-- Making anvil visible in phase 1 just to be sure it can be seen
+(@GUID_GO+0,@GO_ANVIL1,571,1,1+2+4,7217.072,-3645.753,819.4065,1.797689,0,0,0.782608,0.6225148,300,255,1),
+(@GUID_GO+1,@GO_ANVIL2,571,1,4,7213.591,-2648.741,810.5506,0.2268925,0,0,0.113203,0.9935719,300,255,1),
+--
+(@GUID_GO+2,@GO_SNOWDRIFT,571,1,4,7218.64,-3529.71,828.539,-1.93732,0,0,-0.824127,0.566404,300,100,1),
+(@GUID_GO+3,@GO_SNOWDRIFT,571,1,4,7201.17,-3556.13,828.03,2.18166,0,0,0.88701,0.461749,300,100,1),
+(@GUID_GO+4,@GO_SNOWDRIFT,571,1,4,7230.44,-3555.63,841.772,1.85005,0,0,0.798636,0.601815,300,100,1),
+(@GUID_GO+5,@GO_SNOWDRIFT,571,1,4,7169.6,-3615.71,830.249,-2.89724,0,0,-0.992546,0.121873,300,100,1),
+(@GUID_GO+6,@GO_SNOWDRIFT,571,1,4,7121.83,-3542.56,835.008,-0.750491,0,0,-0.366501,0.930418,300,100,1),
+(@GUID_GO+7,@GO_SNOWDRIFT,571,1,4,7131.5,-3584.22,840.195,-1.91986,0,0,-0.819151,0.573577,300,100,1),
+(@GUID_GO+8,@GO_SNOWDRIFT,571,1,4,7162.55,-3582.66,830.36,1.11701,0,0,0.529919,0.848048,300,100,1),
+(@GUID_GO+9,@GO_SNOWDRIFT,571,1,4,7176.21,-3511.2,833.381,1.93731,0,0,0.824125,0.566409,300,100,1),
+(@GUID_GO+10,@GO_SNOWDRIFT,571,1,4,7148.73,-3559.17,830.36,-2.72271,0,0,-0.978147,0.207914,300,100,1),
+(@GUID_GO+11,@GO_SNOWDRIFT,571,1,4,7165.47,-3639.53,832.157,0.890117,0,0,0.430511,0.902586,300,100,1),
+(@GUID_GO+12,@GO_SPEAR,571,1,4,7309.3,-2782.45,869.824,-0.610864,0,0,-0.300705,0.953717,180,255,1),
+(@GUID_GO+13,@GO_ARNGRIM,571,1,4,7355.87,-2962.37,912.502,1.74533,0,0,0.766045,0.642787,180,255,1),
+(@GUID_GO+14,@GO_HORN,571,1,4,7142.23,-2723.25,787.769,-2.63544,0,0,-0.968147,0.250383,180,255,1),
+(@GUID_GO+15,@GO_WARG, 571, 1, 4, 7161.11, -2228.79, 758.93, 5.72936, 0, 0, 0.273389, -0.961904, 300, 0, 1),
+-- Additional GO's for Mending Fences
+(@GUID_GO+16,@GO_GRANITE,571,1,1,7229.834,-3560.515,840.1581,4.97419,0,0,0,1,120,255,1), -- Granite Boulder (Area: Fjorn's Anvil)
+(@GUID_GO+32,@GO_GRANITE,571,1,1,7170.086,-3644.12,830.1971,3.996807,0,0,0,1,120,255,1), -- Granite Boulder (Area: Fjorn's Anvil)
+(@GUID_GO+33,@GO_GRANITE,571,1,1,7273.538,-3632.394,829.7211,0.4537851,0,0,0,1,120,255,1), -- Granite Boulder (Area: Fjorn's Anvil)
+(@GUID_GO+34,@GO_GRANITE,571,1,1,7464.846,-3014.682,851.4673,5.253442,0,0,0,1,120,255,1); -- Granite Boulder (Area: Frostfield Lake
+
+DELETE FROM `creature` WHERE `id` IN (@NJORMELD,@SNORRI_NPC,@NPC_BUNNY,@NPC_SR2,@NPC_FGS,@NPC_BR,@NPC_SR3,@NPC_SOH2,@NPC_BF,@SM,@RJ,@BUNNY_SPEAR,@NPC_THORIM3);
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`) VALUES
+(@GUID+0,@NJORMELD,571,1,4,24531,0,7183.295,-3519.859,827.4118,0.03490658,300,0,0,50400,0,0,0,0,0),
+(@GUID+1,@SNORRI_NPC,571,1,4,26772,0,7167.375,-3543.059,827.746,6.056293,300,0,0,50400,0,0,0,0,0),
+(@GUID+2,@NPC_BUNNY,571,1,4,19595,0,7219.52,-3645.4,824.558,2.61799,300,0,0,4979,0,0,0,0,0),
+(@GUID+3,@NPC_SR2,571,1,4,25680,0,7268.63,-3640.36,825.267,2.37365,120,5,0,12600,0,1,0,0,0),
+(@GUID+4,@NPC_SR2,571,1,4,25680,0,7192.8,-3665,824.727,6.05783,120,5,0,12600,0,1,0,0,0),
+(@GUID+5,@NPC_SR2,571,1,4,25680,0,7250.05,-3636.57,825.872,-1.4385,120,5,0,12600,0,1,0,0,0),
+(@GUID+6,@NPC_SR2,571,1,4,25680,0,7201.55,-3622.78,823.52,5.55015,120,5,0,12600,0,1,0,0,0),
+(@GUID+7,@NPC_SR2,571,1,4,25680,0,7223.84,-3676.14,828.727,2.17625,120,5,0,12600,0,1,0,0,0),
+(@GUID+8,@NPC_FGS,571,1,4,24531,0,7201.98,-3624.42,823.542,5.13733,120,0,0,48700,0,0,0,0,0),
+(@GUID+9,@NPC_FGS,571,1,4,24531,0,7251.04,-3644,823.097,3.15905,120,0,0,48700,0,0,0,0,0),
+(@GUID+10,@NPC_FGS,571,1,4,24531,0,7220.33,-3671.06,823.633,1.67552,120,0,0,50400,0,0,0,0,0),
+(@GUID+11,@NPC_BR,571,1,4,26698,0,7419.28,-3141.33,837.577,1.34635,300,0,0,12600,0,0,0,0,0),
+(@GUID+12,@NPC_BR,571,1,4,26698,0,7359.13,-3103.31,837.534,4.17214,300,0,0,12600,0,2,0,0,0),
+(@GUID+13,@NPC_BR,571,1,4,26698,0,7376.07,-3153.04,837.577,1.80255,300,0,0,12600,0,0,0,0,0),
+(@GUID+14,@NPC_BR,571,1,4,26698,0,7315.46,-3179.34,837.617,1.60589,300,0,0,12600,0,0,0,0,0),
+(@GUID+15,@NPC_BR,571,1,4,26698,0,7255.27,-3083.26,837.577,-2.07948,300,0,0,12600,0,0,0,0,0),
+(@GUID+16,@NPC_BR,571,1,4,26698,0,7405.8,-3082.12,837.57,-0.036917,300,0,0,12600,0,0,0,0,0),
+(@GUID+17,@NPC_BR,571,1,4,26698,0,7300.77,-3084.76,837.577,3.23101,300,0,0,12600,0,0,0,0,0),
+(@GUID+18,@NPC_SR3,571,1,8,0,0,7231.77,-3648.91,823.616,5.67933,600,0,0,12600,0,0,0,0,0),
+(@GUID+19,@NPC_SR3,571,1,8,0,0,7181.85,-3561.65,827.102,1.34394,600,0,0,12600,0,0,0,0,0),
+(@GUID+20,@NPC_SR3,571,1,8,0,0,7171.87,-3564.23,826.705,1.05727,600,0,0,12600,0,0,0,0,0),
+(@GUID+21,@NPC_SR3,571,1,8,0,0,7235.26,-3480.56,850.328,4.32905,600,0,0,12600,0,0,0,0,0),
+(@GUID+22,@NPC_SR3,571,1,8,0,0,7190.62,-3549.54,827.918,1.28897,600,0,0,12600,0,0,0,0,0),
+(@GUID+23,@NPC_SR3,571,1,8,0,0,7146.46,-3553.65,830.519,0.613523,600,0,0,12600,0,0,0,0,0),
+(@GUID+24,@NPC_SR3,571,1,8,0,0,7209.96,-3426.8,839.399,1.92906,600,0,0,12600,0,0,0,0,0),
+(@GUID+25,@NPC_SR3,571,1,8,0,0,7191.38,-3364.16,846.246,1.41463,600,0,0,12600,0,0,0,0,0),
+(@GUID+26,@NPC_SR3,571,1,8,25680,0,7224.41,-3496.64,840.3,3.8813,300,0,0,12600,0,0,0,0,0),
+(@GUID+27,@NPC_SOH2,571,1,4,24531,0,7200.93,-2751.15,777.517,1.58738,300,0,0,73050,0,0,0,0,0),
+(@GUID+28,@NPC_SOH2,571,1,4,24531,0,7305.37,-2755.09,775.266,1.22173,300,0,0,73050,0,0,0,0,0),
+(@GUID+29,@NPC_SOH2,571,1,4,24531,0,7316.17,-2635.26,814.969,3.28639,300,0,0,75600,0,0,0,0,0),
+(@GUID+30,@NPC_SOH2,571,1,4,24531,0,7125.52,-2690.9,786.766,0.244346,300,0,0,75600,0,0,0,0,0),
+(@GUID+31,@NPC_SOH2,571,1,4,24531,0,7126.99,-2749.76,786.682,0.261799,300,0,0,73050,0,0,0,0,0),
+(@GUID+32,@NPC_SOH2,571,1,4,24531,0,7450.26,-2713.95,809.15,4.57385,300,0,0,73050,0,0,0,0,0),
+(@GUID+33,@NPC_SOH2,571,1,4,24531,0,7241.71,-2883.89,824.505,5.93024,300,0,0,73050,0,2,0,0,0),
+(@GUID+34,@NPC_SOH2,571,1,4,24531,0,7206.07,-2828.19,824.699,1.46608,300,0,0,73050,0,0,0,0,0),
+(@GUID+35,@NPC_SOH2,571,1,4,24531,0,7327.04,-2396.17,749.132,0.84682,300,0,0,75600,0,0,0,0,0),
+(@GUID+36,@NPC_SOH2,571,1,4,24531,0,7303.96,-2519.59,750.318,2.88288,300,0,0,75600,0,2,0,0,0),
+(@GUID+37,@NPC_SOH2,571,1,4,24531,0,7419.77,-2885.54,823.037,1.64061,300,0,0,75600,0,0,0,0,0),
+(@GUID+38,@NPC_SOH2,571,1,4,24531,0,7288.75,-2579.84,750.516,1.13446,300,0,0,75600,0,0,0,0,0),
+(@GUID+39,@NPC_SOH2,571,1,4,24531,0,7239.24,-2638.54,753.62,5.48033,300,0,0,75600,0,0,0,0,0),
+(@GUID+40,@NPC_SOH2,571,1,4,24531,0,7431.13,-2429.4,753.04,4.09782,300,0,0,73050,0,0,0,0,0),
+(@GUID+41,@NPC_SOH2,571,1,4,24531,0,7394.44,-2524.73,749.249,5.16889,300,0,0,73050,0,2,0,0,0),
+(@GUID+42,@NPC_SOH2,571,1,4,24531,0,7407.6,-2934.94,847.905,1.95477,300,0,0,75600,0,0,0,0,0),
+(@GUID+43,@NPC_BF,571,1,4,26331,0,7401.46,-2522.13,749.245,5.24142,300,0,0,60875,0,2,0,0,0),
+(@GUID+44,@NPC_BF,571,1,4,26331,0,7311.83,-2530.07,749.488,2.87671,300,0,0,60875,0,2,0,0,0),
+(@GUID+45,@SM,571,1,4,0,0,7143.71,-2251.43,760.439,1.29097,300,0,0,11379,0,0,0,0,0),
+(@GUID+46,@SM,571,1,4,27281,0,7172.8,-2257.74,759.628,1.11662,300,0,0,11379,0,0,0,0,0),
+(@GUID+47,@SM,571,1,4,27281,0,7218.29,-2214.53,759.112,3.43747,300,0,0,11379,0,0,0,0,0),
+(@GUID+48,@SM,571,1,4,27281,0,7164.95,-2214.65,758.563,4.15611,300,0,0,11379,0,0,0,0,0),
+(@GUID+49,@SM,571,1,4,0,0,7105.5,-2211.86,759.098,0.688573,300,0,0,11379,0,0,0,0,0),
+(@GUID+50,@SM,571,1,4,27281,0,7110.67,-2133.14,758.775,5.04282,300,0,0,11379,0,0,0,0,0),
+(@GUID+51,@SM,571,1,4,27281,0,7071.03,-2168.81,760.815,0.91791,300,0,0,11379,0,0,0,0,0),
+(@GUID+52,@SM,571,1,4,27281,0,7028.51,-2077.67,753.23,5.25331,300,0,0,11379,0,0,0,0,0),
+(@GUID+53,@SM,571,1,4,27281,0,7106.01,-1988.13,771.455,4.35011,300,0,0,11379,0,0,0,0,0),
+(@GUID+54,@SM,571,1,4,0,0,7041.36,-1981.59,776.354,0.266033,300,0,0,11379,0,0,0,0,0),
+(@GUID+55,@SM,571,1,4,0,0,7133.88,-2039.53,771.902,3.57334,300,0,0,11379,0,0,0,0,0),
+(@GUID+56,@SM,571,1,4,27281,0,7077.88,-2078.98,759.218,1.99469,300,0,0,11379,0,0,0,0,0),
+(@GUID+57,@RJ,571,1,4,26262,0,7188.82,-2320.21,757.813,-1.87154,300,0,0,12175,0,0,0,0,0),
+(@GUID+58,@RJ,571,1,4,26262,0,7250.3,-2342.8,751.68,0.851782,300,0,0,12600,0,0,0,0,0),
+(@GUID+59,@RJ,571,1,4,26262,0,7149.57,-2163.88,761.147,2.97457,300,0,0,12600,0,0,0,0,0),
+(@GUID+60,@RJ,571,1,4,26262,0,7194.98,-2195.57,761.949,-0.387345,300,0,0,12600,0,0,0,0,0),
+(@GUID+61,@RJ,571,1,4,26262,0,7157.35,-2262.32,761.623,0.494206,300,0,0,12600,0,0,0,0,0),
+(@GUID+62,@RJ,571,1,4,26262,0,7252.51,-2230.52,760.183,3.20023,300,0,0,12175,0,0,0,0,0),
+(@GUID+63,@RJ,571,1,4,26262,0,7082.68,-2112.98,758.537,3.60123,300,0,0,12175,0,0,0,0,0),
+(@GUID+64,@RJ,571,1,4,26262,0,7138.08,-2036.25,771.858,2.03839,300,0,0,12600,0,0,0,0,0),
+(@GUID+65,@RJ,571,1,4,26262,0,7065.27,-2070.9,759.016,0.790229,300,0,0,12600,0,0,0,0,0),
+(@GUID+66,@RJ,571,1,4,26262,0,7142.27,-2214.55,758.268,5.21568,300,0,0,12600,0,0,0,0,0),
+(@GUID+67,@RJ,571,1,4,26262,0,7093.6,-2159.45,758.662,5.46951,300,0,0,12175,0,0,0,0,0),
+(@GUID+68,@RJ,571,1,4,26262,0,7050.49,-2148.12,755.994,5.28631,300,0,0,12175,0,0,0,0,0),
+(@GUID+69,@RJ,571,1,4,26262,0,7117.06,-2117.56,760.043,4.86823,300,0,0,12175,0,0,0,0,0),
+(@GUID+70,@RJ,571,1,4,26262,0,7134.93,-2112.19,761.723,0.788161,300,0,0,12600,0,0,0,0,0),
+(@GUID+71,@RJ,571,1,4,26262,0,7123.43,-2085.57,764.362,5.11831,300,0,0,12175,0,0,0,0,0),
+(@GUID+72,@BUNNY_SPEAR,571,1,4,0,0,7266.99,-2753.76,870.875,6.23082,180,0,0,9215,0,0,0,0,0),
+(@GUID+73,@BUNNY_SPEAR,571,1,4,0,0,7347.33,-2809.35,868.826,0.122173,180,0,0,9215,0,0,0,0,0),
+(@GUID+74,@BUNNY_SPEAR,571,1,4,0,0,7215.59,-2712.18,894.848,0.034907,180,0,0,9215,0,0,0,0,0),
+(@GUID+75,@BUNNY_SPEAR,571,1,4,0,0,7393.33,-2841.03,888.614,6.14356,180,0,0,9215,0,0,0,0,0),
+(@GUID+76,@NPC_THORIM3,571,1,1,0,0,7762.389,-2159.516,1233.409,1.53589,300,0,0,13481,0,0,0,0,0);
+
+UPDATE `creature_template` SET `npcflag`=`npcflag`|1|2,`faction_A`=2107,`faction_H`=2107 WHERE `entry`=@NJORMELD;
+UPDATE `creature_template` SET `faction_A`=2107,`faction_H`=2107,`npcflag`=`npcflag`|16777216 WHERE `entry`=@SNORRI_NPC;
+UPDATE `creature_template` SET `npcflag`=`npcflag`|33554688 WHERE `entry`=@NPC_BUNNY;
+UPDATE `creature_template` SET `AIName`='SmartAI',`npcflag`=0,`spell1`=@SPELL_GATHER,`spell2`=@SPELL_THROW,`spell5`=@SPELL_WAKE WHERE `entry`=@SNORRI_MOUNT;
+UPDATE `creature_template` SET `AIName`='SmartAI',`faction_A`=2124,`faction_H`=2124 WHERE `entry`=@NPC_SR2;
+UPDATE `creature_template` SET `faction_A`=2107,`faction_H`=2107,`unit_flags`=`unit_flags`|131072 WHERE `entry`=@NPC_FGS;
+UPDATE `creature_template` SET `gossip_menu_id`=10109 WHERE `entry`=@NPC_THORIM3;
+UPDATE `creature_template` SET `spell1`=54459, `spell2`=54458, `spell3`=54460, `spell4`=0, `spell5`=0, `spell6`=0 WHERE `entry`=@WARBEAR;
+UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191814;
+UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191815;
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger`=@SPELL_WAKE;
+INSERT INTO `spell_linked_spell` (`spell_trigger`,`spell_effect`,`type`,`comment`) VALUES
+(@SPELL_WAKE,-@SPELL_SLEEP,1,'Wake Snorri removes Sleeping Sleep');
+
+DELETE FROM `creature_template_addon` WHERE `entry` IN (@NJORMELD,@NJORMELD2,@SNORRI_NPC,@NPC_FGS,@NPC_THORIM3,@F_WORG);
+INSERT INTO `creature_template_addon` (`entry`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
+(@F_WORG,0,0x0,0x101,0,0, '31748'), -- Spirit Particles, big.
+(@NJORMELD,0,0,0,0,0,'61208'), -- Fjorn's Anvil - Quest Invisibility 3
+(@NJORMELD2,0,0,0,0,0,'56768'), -- Quest Invisibility Tier 1
+(@SNORRI_NPC,0,0,0,0,0,'61208'), -- Fjorn's Anvil - Quest Invisibility 3
+(@NPC_FGS,0,0,0,0,0,'56568'), -- Cooling Breath
+(@NPC_THORIM3,0,0,0,0,0,'54500'); -- Quest Invisibility 1
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=18 AND `SourceGroup`=@SNORRI_NPC;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=1 AND `SourceGroup`=29375 AND `SourceEntry`=41556;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(18,@SNORRI_NPC,@SPELL_RIDE,0,0,9,0,12967,0,0,0,0,'','Required quest active for spellclick'),
+(1,29375,41556,0,0,9,0,12915,0,0,0,0,'','Drop Slag Covered Metal on quest Mending Fences taken'),
+-- These next 2 conditions are not blizzlike (adding them for idiots that turn in Mending Fences without taking this item)
+(1,29375,41556,0,1,8,0,12915,0,0,0,0,'','Drop Slag Covered Metal on quest Mending Fences rewarded'),
+(1,29375,41556,0,2,14,0,12922,0,0,0,0,'','Stop dropping Slag Covered Metal on quest The Refiner''s Fire');
+
+DELETE FROM `npc_spellclick_spells` WHERE `npc_entry`=@SNORRI_NPC;
+INSERT INTO `npc_spellclick_spells` (`npc_entry`,`spell_id`,`cast_flags`,`user_type`) VALUES
+(@SNORRI_NPC,@SPELL_RIDE,3,0);
+
+DELETE FROM `creature_text` WHERE `entry`=@SNORRI_MOUNT;
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@SNORRI_MOUNT,0,0,'Oh, hello, little $r.',12,0,100,15,0,0,"Snorri text");
+
+DELETE FROM `creature_ai_scripts` WHERE `creature_id` IN (@NPC_SR2,@NPC_FGS);
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid` IN (@SNORRI_MOUNT,@NPC_SR2);
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+-- Snorri (mount)
+(@SNORRI_MOUNT,0,0,0,54,0,100,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Snorri - Say text - On just spawned'),
+(@SNORRI_MOUNT,0,1,0,60,0,100,0,30000,60000,30000,60000,11,@SPELL_SLEEP,0,0,0,0,0,1,0,0,0,0,0,0,0,'Snorri - On Update - Cast sleep self'),
+(@SNORRI_MOUNT,0,2,0,8,0,100,0,@SPELL_KCtTM,0,0,0,11,@SPELL_KC,0,0,0,0,0,23,0,0,0,0,0,0,0,'Snorri - On spellhit - Cast spell on owner'),
+-- Seething Revenant
+(@NPC_SR2,0,0,0,0,0,100,0,3000,6000,7000,12000,11,56620,1,0,0,0,0,2,0,0,0,0,0,0,0,'Seething Revenant - In Combat - Cast Seething Flames'),
+(@NPC_SR2,0,1,0,6,0,100,0,0,0,0,0,11,@SPELL_KCtTM,0,0,0,0,0,7,0,0,0,0,0,0,0,'Seething Revenant - Cast KC - Target Master');
+
+-- Quest relations
+DELETE FROM `gameobject_questrelation` WHERE `id` IN (@GO_ANVIL2,@GO_SPEAR,@GO_ARNGRIM,@GO_HORN);
+INSERT INTO `gameobject_questrelation` (`id`,`quest`) VALUES
+(@GO_ANVIL2,@QUEST2),
+(@GO_SPEAR,@QUEST3),
+(@GO_ARNGRIM,@QUEST4),
+(@GO_HORN,@QUEST5);
+
+DELETE FROM `gameobject_involvedrelation` WHERE `id`IN (@GO_ANVIL2,@GO_SPEAR,@GO_ARNGRIM,@GO_HORN);
+INSERT INTO `gameobject_involvedrelation` (`id`,`quest`) VALUES
+(@GO_ANVIL2,@QUEST2),
+(@GO_SPEAR,@QUEST3),
+(@GO_ARNGRIM,@QUEST4),
+(@GO_HORN,@QUEST5);
+
+-- Quest progression linking
+UPDATE `quest_template` SET `PrevQuestId`=13063 WHERE `id`=12900; -- Making a Harness
+UPDATE `quest_template` SET `PrevQuestId`=12900 WHERE `id`=12983; -- The Last of Her Kind
+UPDATE `quest_template` SET `PrevQuestId`=12900 WHERE `id`=12989; -- The Slithering Darkness
+UPDATE `quest_template` SET `PrevQuestId`=12956 WHERE `id`=12924; -- Forging an Alliance
+UPDATE `quest_template` SET `PrevQuestId`=13047 WHERE `id`=13109; -- Diametrically Opposed
+UPDATE `quest_template` SET `PrevQuestId`=12967 WHERE `id`=12981; -- Hot and Cold
+UPDATE `quest_template` SET `PrevQuestId`=12987 WHERE `id`=13006; -- Polishing the Helm
+UPDATE `quest_template` SET `PrevQuestId`=13001 WHERE `id`=13003; -- Thrusting Hodir's Spear
+
+-- Quest reputation conditions
+UPDATE `quest_template` SET `RequiredMinRepFaction`=1119,`RequiredMinRepValue`=21000 WHERE `id`=13046; -- Feeding Arngrim
+UPDATE `quest_template` SET `RequiredMinRepFaction`=1119,`RequiredMinRepValue`=9000 WHERE `id`=13003; -- Thrusting Hodir's Spear
+UPDATE `quest_template` SET `RequiredMinRepFaction`=1119,`RequiredMinRepValue`=9000 WHERE `id`=13001; -- Raising Hodir's Spear
+UPDATE `quest_template` SET `RequiredMinRepFaction`=1119,`RequiredMinRepValue`=9000 WHERE `id`=12994; -- Spy Hunter
+UPDATE `quest_template` SET `RequiredMinRepFaction`=1119,`RequiredMinRepValue`=3000 WHERE `id`=13559; -- Hodir's Tribute
+UPDATE `quest_template` SET `RequiredMinRepFaction`=1119,`RequiredMinRepValue`=3000 WHERE `id`=13421; -- Remember Everfrost!
+UPDATE `quest_template` SET `RequiredMinRepFaction`=1119,`RequiredMinRepValue`=3000 WHERE `id`=13420; -- Everfrost
+UPDATE `quest_template` SET `RequiredMinRepFaction`=1119,`RequiredMinRepValue`=3000 WHERE `id`=13006; -- Polishing the Helm
+UPDATE `quest_template` SET `RequiredMinRepFaction`=1119,`RequiredMinRepValue`=3000 WHERE `id`=12987; -- Mounting Hodir's Helm
+UPDATE `quest_template` SET `RequiredMinRepFaction`=1119,`RequiredMinRepValue`=3000 WHERE `id`=12985; -- Forging a Head
+UPDATE `quest_template` SET `RequiredMinRepFaction`=1119,`RequiredMinRepValue`=3000 WHERE `id`=13011; -- Jormuttar is Soo Fat...
+UPDATE `quest_template` SET `RequiredMinRepFaction`=1119,`RequiredMinRepValue`=3000 WHERE `id`=12975; -- In Memoriam
+UPDATE `quest_template` SET `RequiredMinRepFaction`=1119,`RequiredMinRepValue`=0 WHERE `id`=12977; -- Blowing Hodir's Horn
+UPDATE `quest_template` SET `RequiredMinRepFaction`=1119,`RequiredMinRepValue`=0 WHERE `id`=12981; -- Hot and Cold
+
+UPDATE `quest_template` SET `ExclusiveGroup`=-13035 WHERE `id`=13035; -- Loken's Lackeys
+UPDATE `quest_template` SET `ExclusiveGroup`=-13035 WHERE `id`=13005; -- The Earthen Oath
+UPDATE `quest_template` SET `PrevQuestId`=13035 WHERE `id`=13047; -- The Reckoning
+
+DELETE FROM `gossip_menu` WHERE `entry` IN (9900,9898,9899,10109);
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES
+(9900,13747), -- King Jokkum gossip for quest Krolmir, Hammer of Storms
+(9898,13748), -- King Jokkum gossip for quest Krolmir, Hammer of Storms
+(9899,13749), -- King Jokkum gossip for quest Krolmir, Hammer of Storms
+(10109,14034); -- Thorim at Terrace of the Makers
+
+-- Npc Texts
+DELETE FROM `npc_text` WHERE `id` IN (13747,13748,13749);
+INSERT INTO `npc_text` (`ID`,`text0_0`,`text0_1`,`lang0`,`prob0`,`em0_0`,`em0_1`,`em0_2`,`em0_3`,`em0_4`,`em0_5`,`text1_0`,`text1_1`,`lang1`,`prob1`,`em1_0`,`em1_1`,`em1_2`,`em1_3`,`em1_4`,`em1_5`,`text2_0`,`text2_1`,`lang2`,`prob2`,`em2_0`,`em2_1`,`em2_2`,`em2_3`,`em2_4`,`em2_5`,`text3_0`,`text3_1`,`lang3`,`prob3`,`em3_0`,`em3_1`,`em3_2`,`em3_3`,`em3_4`,`em3_5`,`text4_0`,`text4_1`,`lang4`,`prob4`,`em4_0`,`em4_1`,`em4_2`,`em4_3`,`em4_4`,`em4_5`,`text5_0`,`text5_1`,`lang5`,`prob5`,`em5_0`,`em5_1`,`em5_2`,`em5_3`,`em5_4`,`em5_5`,`text6_0`,`text6_1`,`lang6`,`prob6`,`em6_0`,`em6_1`,`em6_2`,`em6_3`,`em6_4`,`em6_5`,`text7_0`,`text7_1`,`lang7`,`prob7`,`em7_0`,`em7_1`,`em7_2`,`em7_3`,`em7_4`,`em7_5`,`WDBVerified`) VALUES
+(13747,'You are permitted to visit our stronghold, little $r.$b$bDo not bring us dishonor!','',0,1,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,12340),
+(13748,'I do not trust you enough to speak of such things.$b$bYou must respect the trials our people have endured, the burdens we have borne...$b$bPerhaps, if you were to bring great honor to Dun Niffelem, I would be inclined to share with you the knowledge of our people.','',0,1,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,12340),
+(13749,'Very well, little $c.$b$bWhile there is much left for you to do to mend our relations with Thorim, I am compelled to share with you this one secret.$b$bSpeak to me again when you are ready to be shown that which you seek.','',0,1,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,12340);
+-- Gossip menus
+DELETE FROM `gossip_menu_option` WHERE `menu_id` IN (9900,9899);
+INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`) VALUES
+(9900,0,0,'If it please you, King Jokkum, may I know what has become of Krolmir?',1,1,9898,0,0,0,NULL),
+(9900,1,0,'If it please you, King Jokkum, may I know what has become of Krolmir?',1,1,9899,0,0,0,NULL),
+(9899,0,0,'I am ready to be shown the fate of Krolmir,',1,1,0,0,0,0,NULL);
+-- Conditions
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=9900;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(15,9900,1,0,0,8,0,13011,0,0,0,0,'','Show gossip if player has quest completed'),
+(15,9900,0,0,0,8,0,13011,0,0,1,0,'','Show gossip if player doesn''t have quest completed');
+
+-- Hot and Cold (12981)
+
+SET @SPELL_ESSENCE := 56099; -- Throw Essence of Ice
+SET @SPELL_SSM := 56073; -- Summon Smoldering Scrap
+SET @SPELL_SFIS := 56101; -- Summon Frozen Iron Scrap
+SET @AURA_SMOKE := 56118; -- Smolder Smoke
+SET @NPC_BUNNY2 := 30169; -- Smoldering Scrap Bunny
+SET @GO_SMOLDERING_SCRAP := 192124; -- Smoldering Scrap
+
+
+DELETE FROM `creature` WHERE `id`=@NPC_BUNNY2;
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`) VALUES
+(@GUID_BUNNY+0,@NPC_BUNNY2,571,1,8,1,0,7138.416,-3553.746,832.2787,4.694936,120,0,0,1,0,0,0,0,0),
+(@GUID_BUNNY+1,@NPC_BUNNY2,571,1,8,1,0,7191.637,-3490.598,833.993,0.2094395,120,0,0,1,0,0,0,0,0),
+(@GUID_BUNNY+2,@NPC_BUNNY2,571,1,8,1,0,7181.407,-3533.111,826.9557,3.211406,120,0,0,1,0,0,0,0,0),
+(@GUID_BUNNY+3,@NPC_BUNNY2,571,1,8,1,0,7178.466,-3558.917,827.0338,3.351032,120,0,0,1,0,0,0,0,0),
+(@GUID_BUNNY+4,@NPC_BUNNY2,571,1,8,1,0,7204.097,-3497.685,830.7673,2.635447,120,0,0,1,0,0,0,0,0),
+(@GUID_BUNNY+5,@NPC_BUNNY2,571,1,8,1,0,7232.065,-3474.279,850.7675,3.926991,120,0,0,1,0,0,0,0,0),
+(@GUID_BUNNY+6,@NPC_BUNNY2,571,1,8,1,0,7206.615,-3481.997,833.5632,3.281219,120,0,0,1,0,0,0,0,0),
+(@GUID_BUNNY+7,@NPC_BUNNY2,571,1,8,1,0,7192.001,-3386.612,846.4163,2.111848,120,0,0,1,0,0,0,0,0),
+(@GUID_BUNNY+8,@NPC_BUNNY2,571,1,8,1,0,7206.483,-3460.641,835.8506,3.909538,120,0,0,1,0,0,0,0,0),
+(@GUID_BUNNY+9,@NPC_BUNNY2,571,1,8,1,0,7227.852,-3415.956,840.174,1.553343,120,0,0,1,0,0,0,0,0),
+(@GUID_BUNNY+10,@NPC_BUNNY2,571,1,8,1,0,7222.42,-3441.838,837.1934,2.146755,120,0,0,1,0,0,0,0,0),
+(@GUID_BUNNY+11,@NPC_BUNNY2,571,1,8,1,0,7207.466,-3438.533,838.8736,2.897247,120,0,0,1,0,0,0,0,0),
+(@GUID_BUNNY+12,@NPC_BUNNY2,571,1,8,1,0,7217.787,-3378.616,846.7336,5.410521,120,0,0,1,0,0,0,0,0),
+(@GUID_BUNNY+13,@NPC_BUNNY2,571,1,8,1,0,7206.611,-3404.196,841.4804,4.223697,120,0,0,1,0,0,0,0,0),
+(@GUID_BUNNY+14,@NPC_BUNNY2,571,1,8,1,0,7248.638,-3625.245,826.9236,3.647738,120,0,0,1,0,0,0,0,0),
+(@GUID_BUNNY+15,@NPC_BUNNY2,571,1,8,1,0,7219.116,-3607.771,822.712,1.658063,120,0,0,1,0,0,0,0,0),
+(@GUID_BUNNY+16,@NPC_BUNNY2,571,1,8,1,0,7204.861,-3628.249,823.5885,4.223697,120,0,0,1,0,0,0,0,0),
+(@GUID_BUNNY+17,@NPC_BUNNY2,571,1,8,1,0,7196.265,-3652.629,823.5908,4.886922,120,0,0,1,0,0,0,0,0),
+(@GUID_BUNNY+18,@NPC_BUNNY2,571,1,8,1,0,7246.637,-3648.932,823.046,0.9948376,120,0,0,1,0,0,0,0,0),
+(@GUID_BUNNY+19,@NPC_BUNNY2,571,1,8,1,0,7236.381,-3678.733,822.8235,0.8726646,120,0,0,1,0,0,0,0,0),
+(@GUID_BUNNY+20,@NPC_BUNNY2,571,1,8,1,0,7192.001,-3386.612,846.4163,2.111848,120,0,0,1,0,0,0,0,0),
+(@GUID_BUNNY+21,@NPC_BUNNY2,571,1,8,1,0,7217.787,-3378.616,846.7336,5.410521,120,0,0,1,0,0,0,0,0),
+(@GUID_BUNNY+22,@NPC_BUNNY2,571,1,8,1,0,7206.611,-3404.196,841.4804,4.223697,120,0,0,1,0,0,0,0,0);
+
+DELETE FROM `creature_template_addon` WHERE `entry`=@NPC_BUNNY2;
+INSERT INTO `creature_template_addon` (`entry`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
+(@NPC_BUNNY2,0,0,0,1,0,@AURA_SMOKE);
+
+UPDATE `creature_template` SET `AIName`='SmartAI',`flags_extra`=`flags_extra`|128 WHERE `entry`=@NPC_BUNNY2;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@NPC_BUNNY2;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@NPC_BUNNY2,0,0,0,11,0,100,0,0,0,0,0,11,@SPELL_SSM,0,0,0,0,0,1,0,0,0,0,0,0,0,'Smoldering Scrap Bunny - On spawn - Cast Summon Smoldering Scrap'),
+(@NPC_BUNNY2,0,1,2,8,0,100,1,@SPELL_ESSENCE,0,0,0,99,3,0,0,0,0,0,20,@GO_SMOLDERING_SCRAP,1,0,0,0,0,0,'Smoldering Scrap Bunny- On spellhit - Set Go state 3'),
+(@NPC_BUNNY2,0,2,3,61,0,100,0,0,0,0,0,11,@SPELL_SFIS,0,0,0,0,0,1,0,0,0,0,0,0,0,'Smoldering Scrap Bunny - Link - Cast Summon Frozen Iron Scrap'),
+(@NPC_BUNNY2,0,3,0,61,0,100,0,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Smoldering Scrap Bunny - Link - Despawn');
+
+-- Spear Holder
+-- Will be used with @SPELL_CHAIN
+SET @BUNNY_SPEAR := 30246; -- Dun Niffelem Spear Chain Bunny (Phase 2)
+SET @SPELL_CHAIN := 56379; -- Spear Chain Beam
+
+UPDATE `creature_template` SET `AIName`='SmartAI', `InhabitType`=4, `modelid1`=21342, `modelid2`=0 WHERE `entry`=30246;
+UPDATE `creature_template` SET `InhabitType`=4 WHERE `entry`=@BUNNY_SPEAR;
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (-142408,-142407);
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(-142408,0,0,0,60,0,100,0,0,1,20000,20000,11,@SPELL_CHAIN,0,0,0,0,0,10,142410,@BUNNY_SPEAR,0,0,0,0,0,'Chain Bunny - OOC - Cast Chain on bunny'),
+(-142407,0,0,0,60,0,100,0,0,1,20000,20000,11,@SPELL_CHAIN,0,0,0,0,0,10,142409,@BUNNY_SPEAR,0,0,0,0,0,'Chain Bunny- OOC - Cast Chain on bunny');
+
+-- Into the Pit
+SET @SPELL_SMASH := 54458;
+SET @SPELL_DSHOUT := 54459;
+SET @SPELL_CHARGE := 54460;
+
+UPDATE `creature_template` SET `AIName`='SmartAI', `faction_A`=1125, `faction_H`=1125 WHERE `entry`=@HYLDSMEET_WB;
+DELETE FROM `smart_scripts` WHERE `entryorguid` =@HYLDSMEET_WB;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@HYLDSMEET_WB,0,0,0,0,0,100,0,3000,6000,7000,12000,11,@SPELL_SMASH,1,0,0,0,0,2,0,0,0,0,0,0,0,'Hyldsmeet Warbear - In Combat - Cast Smash'),
+(@HYLDSMEET_WB,0,1,0,0,0,100,0,1000,35000,70000,95000,11,@SPELL_DSHOUT,1,0,0,0,0,2,0,0,0,0,0,0,0,'Hyldsmeet Warbear - In Combat - Cast Demoralizing Shout'),
+(@HYLDSMEET_WB,0,2,0,0,0,100,0,5000,9000,11000,17000,11,@SPELL_CHARGE,1,0,0,0,0,2,0,0,0,0,0,0,0,'Hyldsmeet Warbear - In Combat - Cast Charge');
+
+-- Spy Hunter
+UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE entry= @F_WORG;
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@F_WORG,@F_WORG*100,@F_WORG*100+1,@F_WORG*100+2) AND `source_type`IN(0,9);
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(@F_WORG,0,0,1,54,0,100,0,0,0,0,0,87,@F_WORG*100,@F_WORG*100+1,@F_WORG*100+2,0,0,0,1,0,0,0,0,0,0,0,'Ethereal Frostwarg - Just summoned - Execute random Action Script'),
+(@F_WORG,0,1,2,61,0,100,0,0,0,0,0,59,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Ethereal Frostwarg - On Link - Set Run'),
+(@F_WORG,0,2,0,61,0,100,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Ethereal Frostwarg - On Link - Say 0'),
+--
+(@F_WORG*100,9,1,0,0,0,100,0,5000,5000,5000,5000,69,0,0,0,0,0,0,8,0,0,0,7149.648,-2189.751,759.320,0,'Ethereal Frostwarg - On Script - Go to POS'),
+(@F_WORG*100,9,2,0,0,0,100,0,1000,1000,1000,1000,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Ethereal Frostwarg - On Script - Say 1'),
+(@F_WORG*100,9,3,0,0,0,100,0,7000,7000,7000,7000,89,20,0,0,0,0,0,1,0,0,0,0,0,0,0,'Ethereal Frostwarg - On Script - Random Movement'),
+(@F_WORG*100,9,4,0,0,0,100,0,1000,1000,1000,1000,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Ethereal Frostwarg - On Script - Say 2'),
+(@F_WORG*100,9,5,0,0,0,100,0,1000,1000,1000,1000,11,@SUMMON_SFINF,0,0,0,0,0,1,0,0,0,0,0,0,0,'Ethereal Frostwarg - On Script - Summon SFI'),
+--
+(@F_WORG*100+1,9,1,0,0,0,100,0,5000,5000,5000,5000,69,0,0,0,0,0,0,8,0,0,0,7220.366,-2228.265,758.8727,0,'Ethereal Frostwarg - On Script - Go to POS'),
+(@F_WORG*100+1,9,2,0,0,0,100,0,1000,1000,1000,1000,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Ethereal Frostwarg - On Script - Say 1'),
+(@F_WORG*100+1,9,3,0,0,0,100,0,7000,7000,7000,7000,89,20,0,0,0,0,0,1,0,0,0,0,0,0,0,'Ethereal Frostwarg - On Script - Random Movement'),
+(@F_WORG*100+1,9,4,0,0,0,100,0,1000,1000,1000,1000,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Ethereal Frostwarg - On Script - Say 2'),
+(@F_WORG*100+1,9,5,0,0,0,100,0,1000,1000,1000,1000,11,@SUMMON_SFINF,0,0,0,0,0,1,0,0,0,0,0,0,0,'Ethereal Frostwarg - On Script - Summon SFI'),
+--
+(@F_WORG*100+2,9,1,0,0,0,100,0,5000,5000,5000,5000,69,0,0,0,0,0,0,8,0,0,0,7181.581,-2264.689,758.043,0,'Ethereal Frostwarg - On Script - Summon SFI'),
+(@F_WORG*100+2,9,2,0,0,0,100,0,1000,1000,1000,1000,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Ethereal Frostwarg - On Script - Say 1'),
+(@F_WORG*100+2,9,3,0,0,0,100,0,7000,7000,7000,7000,89,20,0,0,0,0,0,1,0,0,0,0,0,0,0,'Ethereal Frostwarg - On Script - Random Movement'),
+(@F_WORG*100+2,9,4,0,0,0,100,0,1000,1000,1000,1000,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Ethereal Frostwarg - On Script - Say 2'),
+(@F_WORG*100+2,9,5,0,0,0,100,0,1000,1000,1000,1000,11,@SUMMON_SFINF,0,0,0,0,0,1,0,0,0,0,0,0,0,'Ethereal Frostwarg - On Script - Summon SFI');
+
+DELETE FROM `creature_text` WHERE entry = @F_WORG;
+INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`) VALUES
+(@F_WORG, 0, 0, 'The worg sprints off in search of enemies.', 16, 0, 100, 0, 0, 1108, 'Ethereal Frostworg'),
+(@F_WORG, 1, 0, 'The worg growls as it closes in on its prey.', 16, 0, 100, 0, 0, 0, 'Ethereal Frostworg'),
+(@F_WORG, 2, 0, 'The frostworg howls, exposing its prey!', 16, 0, 100, 53, 0, 9036, 'Ethereal Frostworg');
+
+/*SoH phasing progression
+Since all npcs/gobs from @PHASE1 are using ingame phasemask 1,
+won't use this spell to phase the area,because that would need all of them rephased
+(as spell @PHASE1 is actually ingame phasemask 2)
+*/
+
+SET @PHASE1 := 55857; -- Phase Shift 1: Frost Giants
+SET @PHASE2 := 55858; -- Phase Shift 2: Frost Giants
+SET @PHASE3 := 55952; -- Phase Shift 3: Fjorn's Anvil
+SET @SPIKE := 56305; -- See Quest Invisibility 1 (Ice Spike Bunny)
+SET @QUEST_TIER1 := 56771; -- See Invisibility Tier 1
+SET @FA := 61209; -- Fjorn's Anvil - See Quest Invisibility 3
+SET @BARGAIN1 := 55012; -- Lok'lira's Bargain
+SET @BARGAIN2 := 72914; -- Lok'lira's Bargain
+SET @SEE_INV := 54502; -- See Quest Invisibility 1
+
+SET @AREA0 := 4437; -- Valley of Ancient Winters
+SET @AREA1 := 4438; -- Dun Niffelem
+SET @AREA2 := 4439; -- Frostfield Lake
+SET @AREA3 := 4495; -- Fjorn's Anvil
+SET @AREA4 := 4440; -- Thunderfall
+SET @AREA5 := 4446; -- Terrace of the Makers
+SET @AREA6 := 4455; -- Hibernal Cavern
+
+-- P1 adds when taking Forging an Alliance (0,1,2,3,4)(0 ends disguise)
+-- P2 starts with Forging an Alliance (0,1,2,3,4)
+-- P3 starts after turning in Forging an Alliance (3)
+-- @PHASE1 added just as a reference, it won't be used
+DELETE FROM `spell_area` WHERE `area` IN (@AREA0,@AREA1,@AREA2,@AREA3,@AREA4,@AREA5,@AREA5,@AREA6);
+INSERT INTO `spell_area` (`spell`, `area`, `quest_start`, `quest_end`, `aura_spell`, `racemask`, `gender`, `autocast`, `quest_start_status`, `quest_end_status`) VALUES
+(@BARGAIN2, @AREA0, 12972, 13063, 0, 0, 2, 1, 74, 11),
+(@BARGAIN1, @AREA0, 12972, 13063, 0, 0, 2, 1, 74, 11),
+(@PHASE2, @AREA0, 12924, 0, 0, 0, 2, 1, 74, 11),
+(@PHASE2, @AREA1, 12924, 0, 0, 0, 2, 1, 74, 11),
+(@SPIKE, @AREA1, 12987, 12987, 0, 0, 2, 1, 74, 11),
+(@QUEST_TIER1, @AREA1, 12967, 0, 0, 0, 2, 1, 64, 11),
+(@PHASE3, @AREA3, 12924, 0, 0, 0, 2, 1, 64, 11),
+(@PHASE2,@AREA6, 12924, 0, 0, 0, 2, 1, 74, 11),
+(@PHASE2, @AREA4, 12924, 0, 0, 0, 2, 1, 74, 11),
+(@PHASE2, @AREA2, 12924, 0, 0, 0, 2, 1, 74, 11),
+(@BARGAIN1, @AREA1, 12856, 12856, 0, 0, 2, 1, 74, 11),
+(@FA, @AREA3, 12924, 12924, 0, 0, 2, 1, 74, 11),
+(@BARGAIN2, @AREA1, 12856, 12856, 0, 0, 2, 1, 74, 11),
+(@PHASE2, @AREA3, 12924, 12924, 0, 0, 2, 1, 74, 11),
+(@SEE_INV, @AREA5, 13057, 0, 0, 0, 2, 1, 74, 11);
+
+-- Mending Fences
+SET @SFIG := 29375; -- Stormforged Iron Giant
+SET @S_EARTHEN := 55528; -- Summon Earthen Ironbane
+SET @SHOCKWAVE := 57741; -- Shockwave
+
+DELETE FROM `creature_equip_template` WHERE entry = 29927;
+INSERT INTO `creature_equip_template` (`entry`, `id`, `itemEntry1`, `itemEntry2`, `itemEntry3`) VALUES
+(29927, 1, 743, 0, 0);
+
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = 55818;
+INSERT INTO `spell_linked_spell` (`spell_trigger`, `spell_effect`, `type`,`comment`) VALUES (55818, 55528, 0, 'Summon Earthen');
+DELETE FROM `spell_scripts` WHERE `id`= 55818;
+INSERT INTO `spell_scripts` (`id`, `command`, `datalong`, `datalong2`) VALUES (55818, 15, 55528, 1);
+
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE entry = @SFIG;
+UPDATE `creature_template` SET `faction_A`=2118,`faction_H`=2118,`unit_flags`=526336,`speed_run`=0.99206285714286 WHERE `entry`=29927; -- Earthen Ironbane
+DELETE FROM `creature_ai_scripts` WHERE creature_id = @SFIG;
+DELETE FROM `smart_scripts` WHERE entryorguid = 29375 AND `source_type` = 0;
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(@SFIG, 0, 0, 0, 0, 0, 100, 0, 6000, 12000, 20000, 26000, 11, @SHOCKWAVE, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Stormforged Iron Giant - In combat - Cast Shockwave'),
+(@SFIG, 0, 1, 2, 8, 0, 100, 0, 55818, 0, 0, 0, 11, @S_EARTHEN, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Stormforged Iron Giant - On Spellhit - Summon Earthen Ironbane'),
+(@SFIG, 0, 2, 3, 61, 0, 100, 0, 0, 0, 0, 0, 11, @S_EARTHEN, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Stormforged Iron Giant - On Spellhit - Summon Earthen Ironbane'),
+(@SFIG, 0, 3, 0, 61, 0, 100, 0, 0, 0, 0, 0, 11, @S_EARTHEN, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Stormforged Iron Giant - On Spellhit - Summon Earthen Ironbane');
+
+-- Forging a Head (12985)
+SET @NPC := 29914; -- Dead Iron Giant
+SET @SPELL := 29266; -- Permanent Feign Death
+SET @SF_A := 30208; -- Stormforged Ambusher
+
+UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` =@NPC ;
+DELETE FROM `smart_scripts` WHERE entryorguid IN (@NPC,@NPC*100,@NPC*100+1) AND `source_type` IN (0,9);
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(@NPC, 0, 0, 0, 8, 0, 100, 0, 56227, 0, 0, 0, 88, @NPC*100,@NPC*100+1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Dead Iron Giant - Run Random Script on Salvage Corpse Spell Hit'),
+(@NPC, 0, 1, 0, 25, 0, 100, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Dead Iron Giant - Set Passive'),
+(@NPC*100, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 11, 56230, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Dead Iron Giant - Cast Create Fireforged Eyes'),
+(@NPC*100, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Dead Iron Giant - Despawn'),
+(@NPC*100+1, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 12, @SF_A, 1, 60000, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Dead Iron Giant - Summon Stormforged Ambusher'),
+(@NPC*100+1, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Dead Iron Giant - Despawn');
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=56227;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(13, 1, 56227, 0, 0, 31, 0, 3, 29914, 0, 0, 0, 0, '', 'Salvage Corpse can hit Dead Iron Giant');
+
+
+DELETE FROM `creature_loot_template` WHERE entry = @SF_A;
+INSERT INTO `creature_loot_template` (`entry`, `item`, `ChanceOrQuestChance`, `lootmode`, `groupid`, `mincountOrRef`, `maxcount`) VALUES
+(@SF_A, 42105, -33, 1, 0, 1, 1),
+(@SF_A, 42423, -50, 1, 0, 1, 1);
+
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger`=56562;
+INSERT INTO `spell_linked_spell` (`spell_trigger`, `spell_effect`, `type`, `comment`) VALUES
+(56562, 56566, 0, 'Carve Bear Flank triggers create bear flank');
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`= 17 AND `SourceEntry`= 56562;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(17, 0, 56562, 0, 0, 23, 0, 4455, 0, 0, 0, 0, 0, '', 'Carve Bear Flank only hits bear');
+
+DELETE FROM `creature` WHERE `id`=@NPC AND `phaseMask`=4;
+INSERT INTO `creature` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`) VALUES
+(@GUID_BUNNY2,@NPC,571,1,4,0,0,7429.23,-3187.91,837.452,0.19249,120,0,0,50400,0,0,0,0,0),
+(@GUID_BUNNY2+1,@NPC,571,1,4,0,0,7359.28,-3176.45,837.452,1.31954,120,0,0,50400,0,0,0,0,0),
+(@GUID_BUNNY2+2,@NPC,571,1,4,0,0,7280.03,-3142.9,837.452,4.41243,120,0,0,50400,0,0,0,0,0),
+(@GUID_BUNNY2+3,@NPC,571,1,4,0,0,7515.58,-3137.05,837.452,5.47429,120,0,0,50400,0,0,0,0,0),
+(@GUID_BUNNY2+4,@NPC,571,1,4,0,0,7509.03,-3225.78,837.432,2.03661,120,0,0,50400,0,0,0,0,0),
+(@GUID_BUNNY2+5,@NPC,571,1,4,0,0,7259.32,-3221.84,837.452,1.06349,120,0,0,50400,0,0,0,0,0);
+
+DELETE FROM `gameobject` WHERE `guid` BETWEEN @OGUID AND @OGUID+16;
+INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
+(@OGUID,192187,571,1,4,7306.37,-2060.06,760.918,-3.11488,0,0,-0.999911,0.0133559,180,255,1),
+(@OGUID+1,192188,571,1,4,7313.11,-2054.22,760.599,2.81615,0,0,0.98679,0.162004,180,255,1),
+(@OGUID+2,192189,571,1,4,7313.61,-2054.12,761.261,0.711686,0,0,0.348381,0.937353,180,255,1),
+(@OGUID+3,192190,571,1,4,7309.42,-2060.01,761.261,0.504564,0,0,0.249614,0.968345,180,255,1),
+(@OGUID+4,192191,571,1,4,7320.77,-2041.83,760.599,2.81615,0,0,0.98679,0.162004,180,255,1),
+(@OGUID+5,192192,571,1,4,7314.04,-2044.86,759.983,1.09942,0,0,0.52244,0.852676,180,255,1),
+(@OGUID+6,192193,571,1,4,7325.57,-2044.47,760.737,-0.80439,0,0,-0.391439,0.920204,180,255,1),
+(@OGUID+7,192194,571,1,4,7320.69,-2053.65,761.339,-0.80439,0,0,-0.391439,0.920204,180,255,1),
+(@OGUID+8,192195,571,1,4,7321,-2054.29,760.9,-1.40123,0,0,-0.644688,0.764446,180,255,1),
+-- Granite Boulders for "Mending Fences"
+(@OGUID+9,191814,571,1,1,7337.647,-3049.821,841.3665,1.221729,0,0,0,1,120,255,1), -- Granite Boulder (Area: Dun Niffelem)
+(@OGUID+10,191814,571,1,1,7254.236,-3021.713,846.6954,0.4886912,0,0,0,1,120,255,1), -- Granite Boulder (Area: Frostfield Lake)
+(@OGUID+11,191814,571,1,1,7329.995,-3292.084,859.1428,5.550147,0,0,0,1,120,255,1), -- Granite Boulder (Area: Frostfield Lake)
+(@OGUID+12,191814,571,1,1,7241.131,-3344.769,852.5411,1.692969,0,0,0,1,120,255,1), -- Granite Boulder (Area: Frostfield Lake)
+(@OGUID+13,191814,571,1,1,7158.728,-3356.495,860.1804,4.433136,0,0,0,1,120,255,1), -- Granite Boulder (Area: Frostfield Lake)
+(@OGUID+14,191814,571,1,1,7239.152,-3403.615,849.8006,2.35619,0,0,0,1,120,255,1), -- Granite Boulder (Area: Frostfield Lake)
+(@OGUID+15,191814,571,1,1,7160.917,-3487.592,857.127,1.623156,0,0,0,1,120,255,1), -- Granite Boulder (Area: Fjorn's Anvil)
+(@OGUID+16,191814,571,1,1,7207.494,-3539.533,827.2614,2.408554,0,0,0,1,120,255,1); -- Granite Boulder (Area: Fjorn's Anvil)
+
+DELETE FROM `creature_loot_template` WHERE entry = @SM;
+INSERT INTO `creature_loot_template` (`entry`, `item`, `ChanceOrQuestChance`, `lootmode`, `groupid`, `mincountOrRef`, `maxcount`) VALUES
+(@SM, 42104, -33, 1, 0, 1, 1),
+(@SM, 42542, -29, 1, 0, 1, 1),
+(@SM, 45912, 0.1, 1, 0, 1, 1);
+
+
+UPDATE `spell_area` SET `quest_start`=12921 WHERE `spell` IN (55012,72914) AND `area`=4437; -- Valley of Ancient Winters
+DELETE FROM `spell_area` WHERE `spell`=54784; -- Frost Reaction Frost Vrykul
+
+-- Already spawned by TDB and visible in all phases
+UPDATE `creature` SET `phaseMask`=1|2|4 WHERE `guid` IN (116761,116762,116763);
+
+DELETE FROM `creature_addon` WHERE `guid` IN (116761,116762,116763);
+DELETE FROM `creature_template_addon` WHERE `entry`=@NPC;
+INSERT INTO `creature_template_addon` (`entry`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
+(@NPC,0,0,0,0,0,@SPELL);
+
+UPDATE `creature` SET `phaseMask`=1 WHERE `guid`=152124;
+UPDATE `gameobject` SET `phaseMask`=4 WHERE `id`=192081; -- Horn Fragment
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_05_03_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_05_03_world_misc.sql
new file mode 100644
index 00000000000..435a37613c3
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_05_03_world_misc.sql
@@ -0,0 +1,27 @@
+-- Into the Pit (thx to KirkHammett)
+SET @ENTRY := 30174;
+SET @SPELL_SMASH := 54458;
+SET @SPELL_DSHOUT := 54459;
+SET @SPELL_CHARGE := 54460;
+
+UPDATE `creature_template` SET `AIName`='SmartAI', `faction_A`=2128, `faction_H`=2128 WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `entryorguid` =@ENTRY;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@ENTRY,0,0,0,1,0,100,0,0,0,0,0,2,31,0,0,0,0,0,1,0,0,0,0,0,0,0,'Hyldsmeet Warbear - OOC - Set Faction'),
+(@ENTRY,0,1,0,0,0,100,0,3000,6000,7000,12000,11,@SPELL_SMASH,1,0,0,0,0,2,0,0,0,0,0,0,0,'Hyldsmeet Warbear - In Combat - Cast Smash'),
+(@ENTRY,0,2,0,0,0,100,0,1000,35000,70000,95000,11,@SPELL_DSHOUT,1,0,0,0,0,2,0,0,0,0,0,0,0,'Hyldsmeet Warbear - In Combat - Cast Demoralizing Shout'),
+(@ENTRY,0,3,0,0,0,100,0,5000,9000,11000,17000,11,@SPELL_CHARGE,1,0,0,0,0,2,0,0,0,0,0,0,0,'Hyldsmeet Warbear - In Combat - Cast Charge');
+
+-- Some errors startup errors
+UPDATE `creature_equip_template` SET `itemEntry1`=12883 WHERE `entry`=29927 AND `id`=1;
+
+UPDATE `creature_template` SET `npcflag`=3 WHERE `entry`=37416;
+UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=37346;
+UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=37364;
+UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=37269;
+UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=37369;
+UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=37268;
+UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=37335;
+UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=37483;
+UPDATE `creature_template` SET `npcflag`=4194306 WHERE `entry`=37310;
+UPDATE `creature_template` SET `npcflag`=4194306 WHERE `entry`=37426;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_05_04_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_05_04_world_sai.sql
new file mode 100644
index 00000000000..dc493837814
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_05_04_world_sai.sql
@@ -0,0 +1,12 @@
+DELETE FROM `disables` WHERE `sourcetype`=0 AND `entry`=53038 AND `flags`=64;
+INSERT INTO `disables` (`sourceType`, `entry`, `flags`, `params_0`, `params_1`, `comment`) VALUES
+(0,53038,64, '', '', 'Disable Vmaps for Didgeridoo of Contemplation');
+
+DELETE FROM `creature_ai_scripts` WHERE `creature_id` IN (29056,29057,29069,29058);
+UPDATE `creature_template` SET `ainame`='SmartAI',`scriptname`='' WHERE `entry` IN (29056,29057,29069,29058);
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (29056,29057,29069,29058) AND `source_type`=0;
+INSERT INTO `smart_scripts` VALUES
+(29056,0,0,0,8,0,100,0,53038,0,0,0,33,29056,0,0,0,0,0,7,0,0,0,0,0,0,0,'Glimmering Pillar Credit - On Spell Hit - Give Quest Credit'),
+(29057,0,0,0,8,0,100,0,53038,0,0,0,33,29057,0,0,0,0,0,7,0,0,0,0,0,0,0,'Mosslight Pillar Credit - On Spell Hit - Give Quest Credit'),
+(29069,0,0,0,8,0,100,0,53038,0,0,0,33,29069,0,0,0,0,0,7,0,0,0,0,0,0,0,'Skyreach Pillar Credit - On Spell Hit - Give Quest Credit'),
+(29058,0,0,0,8,0,100,0,53038,0,0,0,33,29058,0,0,0,0,0,7,0,0,0,0,0,0,0,'Suntouched Pillar Credit - On Spell Hit - Give Quest Credit');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_06_00_world_spelldifficulty_dbc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_06_00_world_spelldifficulty_dbc.sql
new file mode 100644
index 00000000000..07be40f8565
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_06_00_world_spelldifficulty_dbc.sql
@@ -0,0 +1,19 @@
+DELETE FROM `spelldifficulty_dbc` WHERE `id` IN (64213,64216,28371,28374,58960,58663,58666,60919,60897,60902,33526,33527,33528,33529,29107,36383,32302);
+INSERT INTO `spelldifficulty_dbc` (`id`,`spellid0`,`spellid1`,`spellid2`,`spellid3`) VALUES
+(64213,64213,64215,0,0),
+(64216,64216,65279,0,0),
+(28371,28371,54427,0,0),
+(28374,28374,54426,0,0),
+(58960,58960,60894,0,0),
+(58663,58663,60880,0,0),
+(58666,58666,60882,0,0),
+(60919,60919,60923,0,0),
+(60897,60897,60899,0,0),
+(60902,60902,60916,0,0),
+(33526,33526,38141,0,0),
+(33527,33527,38138,0,0),
+(33528,33528,38142,0,0),
+(33529,33529,38143,0,0),
+(29107,29107,55543,0,0),
+(36383,36383,39382,0,0),
+(32302,32302,38382,0,0);
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_06_01_world_conditions.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_06_01_world_conditions.sql
new file mode 100644
index 00000000000..fd26b9a3409
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_06_01_world_conditions.sql
@@ -0,0 +1,17 @@
+UPDATE `quest_template` SET `PrevQuestId`=0 WHERE `Id`=12486;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (19,20) and `SourceEntry`IN(11595,11596,11597,12486);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorType`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(20,0,12486,0,0,8,0,11595,0,0,0,0,0, '', 'To Bor gorok Outpost,Quickly! once The Defense of Warsong Hold Has been completed'),
+(19,0,12486,0,0,8,0,11595,0,0,0,0,0, '', 'To Bor gorok Outpost,Quickly! once The Defense of Warsong Hold Has been completed'),
+(20,0,12486,0,1,8,0,11596,0,0,0,0,0, '', 'To Bor gorok Outpost,Quickly! once The Defense of Warsong Hold Has been completed'),
+(19,0,12486,0,1,8,0,11596,0,0,0,0,0, '', 'To Bor gorok Outpost,Quickly! once The Defense of Warsong Hold Has been completed'),
+(20,0,12486,0,2,8,0,11597,0,0,0,0,0, '', 'To Bor gorok Outpost,Quickly! once The Defense of Warsong Hold Has been completed'),
+(19,0,12486,0,2,8,0,11597,0,0,0,0,0, '', 'To Bor gorok Outpost,Quickly! once The Defense of Warsong Hold Has been completed'),
+(20,0,11595,0,0,8,0,7784,0,0,0,0,0, '', 'Defense of Warsong Hold (11595) Only if player has completed The Lord of Blackrock'),
+(19,0,11595,0,0,8,0,7784,0,0,0,0,0, '', 'Defense of Warsong Hold (11595) Only if player has completed The Lord of Blackrock'),
+(20,0,11596,0,0,8,0,7784,0,0,1,0,0, '', 'Defense of Warsong Hold (11596) Only if player has not completed The Lord of Blackrock'),
+(19,0,11596,0,0,8,0,7784,0,0,1,0,0, '', 'Defense of Warsong Hold (11596) Only if player has not completed The Lord of Blackrock'),
+(20,0,11596,0,0,8,0,8743,0,0,1,0,0, '', 'Defense of Warsong Hold (11596) Only if player has not completed Bang a Gong'),
+(19,0,11596,0,0,8,0,8743,0,0,1,0,0, '', 'Defense of Warsong Hold (11596) Only if player has not completed Bang a Gong'),
+(20,0,11597,0,0,8,0,8743,0,0,0,0,0, '', 'Defense of Warsong Hold (11597) Only if player has completed Bang a Gong'),
+(19,0,11597,0,0,8,0,8743,0,0,0,0,0, '', 'Defense of Warsong Hold (11597) Only if player has completed Bang a Gong');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_06_02_world_gobj_loot_template.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_06_02_world_gobj_loot_template.sql
new file mode 100644
index 00000000000..8b06691321a
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_06_02_world_gobj_loot_template.sql
@@ -0,0 +1,3 @@
+DELETE FROM `gameobject_loot_template` WHERE `entry`=2772;
+INSERT INTO `gameobject_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`)
+VALUES (2772,5339,-100,1,0,1,1);
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_06_03_world_creature_template.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_06_03_world_creature_template.sql
new file mode 100644
index 00000000000..04d8f545d45
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_06_03_world_creature_template.sql
@@ -0,0 +1 @@
+UPDATE `creature_template` SET `unit_flags`=`unit_flags`&~256 &~512 WHERE `entry`=29775;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_06_04_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_06_04_world_sai.sql
new file mode 100644
index 00000000000..77bd130d8b6
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_06_04_world_sai.sql
@@ -0,0 +1,9 @@
+SET @AXTROZ := 12899;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id` = @AXTROZ;
+UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = @AXTROZ;
+-- SAI for Axtroz
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@AXTROZ AND `source_type`=0;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@AXTROZ,0,0,0,0,0,100,0,6100,7100,16200,16200,11,20712,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Axtroz - In Combat - Cast Flame Breath'),
+(@AXTROZ,0,1,0,0,0,100,0,8300,13300,7700,11400,11,16095,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Axtroz - In Combat - Cast Vicious Rend'),
+(@AXTROZ,0,2,0,0,0,90,0,4600,5200,6400,11800,11,20714,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Axtroz - In Combat - Cast Fireball');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_07_00_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_07_00_world_misc.sql
new file mode 100644
index 00000000000..65fe90423e8
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_07_00_world_misc.sql
@@ -0,0 +1,8 @@
+-- Fix some runtime errors
+UPDATE `creature` SET `MovementType`=0 WHERE `guid` IN (142347,142368,142371,142376,142378,142379);
+UPDATE `creature` SET `modelid`=0 WHERE `id` = 30169;
+-- Add missing doors on old Hyjal
+DELETE FROM `gameobject` WHERE `guid` IN (4658,4695);
+INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES
+(4658, 182060, 534, 1, 1, 4270.964, -4143.027, 870.7232, 6.020715, 0, 0, 0.8829476, -0.4694716, 7200, 255, 1),
+(4695, 182061, 534, 1, 1, 4204.479, -4112.277, 877.9128, 4.985382, 0, 0, 0.8829476, -0.4694716, 7200, 255, 1);
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_07_01_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_07_01_world_misc.sql
new file mode 100644
index 00000000000..e6e9e07e04e
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_07_01_world_misc.sql
@@ -0,0 +1,19 @@
+-- Add missing Gameobjects into The Shattered Halls
+DELETE FROM `gameobject` WHERE `guid` IN (4700,4712,4713,4719,4720,4752,4756,4779,4796,4806,4842,4853,4857,4932,4940,4944);
+INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES
+(4700, 182539, 540, 1, 1, 141.5157, 266.3664, -11.56821, 3.141593, 0, 0, 1, 0, 7200, 255, 1),
+(4712, 182540, 540, 1, 1, 214.4881, 266.1671, -11.51811, 0, 0, 0, 1, 0, 7200, 255, 1),
+(4713, 181915, 540, 1, 1, 464.7611, 315.0286, 1.929426, 4.204196, 0, 0, 0, 1, 7200, 255, 1),
+(4719, 181915, 540, 1, 1, 403.0749, 322.5745, 1.894548, 2.034194, 0, 0, 0, 1, 7200, 255, 1),
+(4720, 181915, 540, 1, 1, 469.9535, 313.0817, 1.918688, 5.924535, 0, 0, 0, 1, 7200, 255, 1),
+(4752, 181915, 540, 1, 1, 445.6028, 316.2987, 1.912614, 3.658597, 0, 0, 0, 1, 7200, 255, 1),
+(4756, 181671, 540, 1, 1, 330.7506, 74.20586, 1.079237, 3.159062, 0, 0, 0, 1, 7200, 255, 1),
+(4779, 181671, 540, 1, 1, 330.7946, 41.02605, 1.070399, 0.01745246, 0, 0, 0, 1, 7200, 255, 1),
+(4796, 181439, 540, 1, 1, 260.3188, -79.31659, -6.418934, 5.846854, 0, 0, 1, 0, 7200, 255, 1),
+(4806, 181438, 540, 1, 1, 257.0056, -102.1912, -5.668888, 4.450591, 0, 0, 1, 0, 7200, 255, 1),
+(4842, 181435, 540, 1, 1, 242.159, -75.06284, -9.304095, 4.886921, 0, 0, 1, 0, 7200, 255, 1),
+(4853, 181436, 540, 1, 1, 232.8329, -98.32433, -11.76173, 0.6981294, 0, 0, 1, 0, 7200, 255, 1),
+(4857, 181441, 540, 1, 1, 220.3093, -54.90799, -6.456299, 2.007125, 0, 0, 1, 0, 7200, 255, 1),
+(4932, 181437, 540, 1, 1, 222.6859, -78.63619, -11.1251, 3.752462, 0, 0, 1, 0, 7200, 255, 1),
+(4940, 181440, 540, 1, 1, 215.4215, -112.6428, -6.456299, 2.007125, 0, 0, 1, 0, 7200, 255, 1),
+(4944, 181442, 540, 1, 1, 197.2586, -84.19016, -7.345709, 2.007125, 0, 0, 1, 0, 7200, 255, 1);
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_08_00_world_gameobject.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_08_00_world_gameobject.sql
new file mode 100644
index 00000000000..bd628379002
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_08_00_world_gameobject.sql
@@ -0,0 +1 @@
+UPDATE `gameobject` SET `spawnMask`=3 WHERE `guid` IN (4700,4712,4713,4719,4720,4752,4756,4779,4796,4806,4842,4853,4857,4932,4940,4944);
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_08_01_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_08_01_world_misc.sql
new file mode 100644
index 00000000000..ae116a3059d
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_08_01_world_misc.sql
@@ -0,0 +1,77 @@
+-- Pathing for Akama Entry: 23191
+SET @PATH := 847160;
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,517.4877,400.7993,112.7837,0,0,0,0,100,0),
+(@PATH,2,517.4877,400.7993,112.7837,3.118662,0,0,0,100,0);
+
+SET @GOSSIP := 21335;
+SET @TEXTID := 10866;
+UPDATE `creature_template` SET `gossip_menu_id`=@GOSSIP WHERE `entry`=23191;
+UPDATE `creature_template` SET `gossip_menu_id`=0 WHERE `entry`=22990;
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=@TEXTID;
+INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES (@GOSSIP, @TEXTID);
+DELETE FROM `gossip_menu_option` WHERE `menu_id`=@GOSSIP AND `id`=0;
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`box_text`) VALUES
+(@GOSSIP, 0, 0, 'I am ready to fight alongside you, Akama.', 1, 1, '');
+
+UPDATE `creature` SET `id`=23191,`position_x`=547.1864,`position_y`=400.5344,`position_z`=112.8671,`orientation`=3.124139 WHERE `guid`=84716;
+UPDATE `creature_template` SET `speed_walk`=1.6, `ScriptName` = 'npc_akama_shade' WHERE `entry`=23191;
+UPDATE `creature_template` SET `ScriptName` = 'npc_creature_generator_akama' WHERE `entry`=23210;
+UPDATE `creature_template` SET `ScriptName` = '' WHERE `entry`=22990;
+
+UPDATE `creature_template` SET `speed_run`=1.7143, `AIName`= '', `flags_extra`=0, `ScriptName` = 'npc_ashtongue_defender' WHERE `entry`=23216;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=23216;
+DELETE FROM `creature_equip_template` WHERE `entry`=23216 AND `id`=1;
+INSERT INTO `creature_equip_template` (`entry`,`id`,`itemEntry1`,`itemEntry2`,`itemEntry3`) VALUES
+(23216,1,18983,31468,0);
+
+UPDATE `creature_template` SET `speed_run`=1.7143, `ScriptName` = 'npc_ashtongue_sorcerer' WHERE `entry`=23215;
+DELETE FROM `creature_equip_template` WHERE `entry`=23215 AND `id`=1;
+INSERT INTO `creature_equip_template` (`entry`,`id`,`itemEntry1`,`itemEntry2`,`itemEntry3`) VALUES
+(23215,1,29685,0,0);
+
+UPDATE `creature_template` SET `speed_run`=1.7143, `baseattacktime`=1600, `AIName`= '', `ScriptName` = 'npc_ashtongue_rogue' WHERE `entry`=23318;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=23318;
+
+DELETE FROM `creature_equip_template` WHERE `entry`=23318 AND `id`=1;
+INSERT INTO `creature_equip_template` (`entry`,`id`,`itemEntry1`,`itemEntry2`,`itemEntry3`) VALUES
+(23318,1,10612,10612,0);
+
+UPDATE `creature_template` SET `speed_run`=0.99206, `faction_A`=1813, `faction_H`=1813 WHERE `entry`=22847;
+DELETE FROM `creature_equip_template` WHERE `entry`=22847 AND `id`=1;
+INSERT INTO `creature_equip_template` (`entry`,`id`,`itemEntry1`,`itemEntry2`,`itemEntry3`) VALUES
+(22847,1,29651,13924,0);
+
+UPDATE `creature_template` SET `speed_run`=0.99206, `faction_A`=1813, `faction_H`=1813 WHERE `entry`=22845;
+DELETE FROM `creature_equip_template` WHERE `entry`=22845 AND `id`=1;
+INSERT INTO `creature_equip_template` (`entry`,`id`,`itemEntry1`,`itemEntry2`,`itemEntry3`) VALUES
+(22845,1,29685,0,0);
+
+UPDATE `creature_template` SET `speed_walk`=2, `faction_A`=1813, `faction_H`=1813 WHERE `entry`=22849;
+
+UPDATE `creature_template` SET `speed_run`=0.99206, `faction_A`=1813, `faction_H`=1813 WHERE `entry`=22846;
+
+DELETE FROM `creature_text` WHERE `entry`=23191;
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(23191, 0, 0, 'Broken of the Ashtongue tribe, your leader speaks!', 14, 0, 100, 0, 0, 0, 'Akama SAY_BROKEN_FREE_0'),
+(23191, 1, 0, 'The Betrayer no longer holds sway over us. His dark magic over the Ashtongue soul has been destroyed!', 14, 0, 100, 0, 0, 0, 'Akama SAY_BROKEN_FREE_1'),
+(23191, 2, 0, 'Come out from the shadows! I''ve returned to lead you against our true enemy! Shed your chains and raise your weapons against your Illidari masters!', 14, 0, 100, 0, 0, 0, 'Akama SAY_BROKEN_FREE_2');
+
+DELETE FROM `creature` WHERE `guid` BETWEEN 53919 AND 53929;
+UPDATE `creature` SET `modelid`=0 WHERE `id`=23033;
+UPDATE `creature_template` SET `AIName`='', `flags_extra`=128 WHERE `entry`=23033;
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=40607;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(13,1,40607,0,0,31,0,3,22841,0,0,'','Spell Fixate targets Shade of Akama');
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=41602;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(13,1,41602,0,0,31,0,3,23191,0,0,'','Spell Threat targets Akama');
+
+DELETE FROM `creature_addon` WHERE `guid`=12777;
+DELETE FROM `creature_template_addon` WHERE `entry`=22841;
+INSERT INTO `creature_template_addon` (`entry`,`bytes2`,`auras`) VALUES (22841, 1, '40973');
+UPDATE `creature_template` SET `speed_walk`=0.8 WHERE `entry`=22841;
+UPDATE `creature_template` SET `speed_walk`=1, `unit_flags`=33587200, `unit_flags2`=0 WHERE `entry`=23421;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_08_02_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_08_02_world_misc.sql
new file mode 100644
index 00000000000..782d4620e56
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_08_02_world_misc.sql
@@ -0,0 +1,2 @@
+UPDATE `creature_template` SET `ScriptName` = 'npc_ashtongue_channeler' WHERE `entry`=23421;
+DELETE FROM `waypoint_data` WHERE `id`=847160;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_10_00_world_gameobject.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_10_00_world_gameobject.sql
new file mode 100644
index 00000000000..0b7b1211826
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_10_00_world_gameobject.sql
@@ -0,0 +1,20 @@
+-- Spawn some missing gameobjects
+DELETE FROM `gameobject` WHERE `id`= 192081;
+INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES
+(4946, 192081, 571, 1, 4, 7766.29, -3291.49, 867.549, 3.4413, 0, 0, 0.988793, -0.149295, 300, 0, 1),
+(4953, 192081, 571, 1, 4, 7777.38, -3315.96, 870.557, 3.64289, 0, 0, 0.968752, -0.248033, 300, 0, 1),
+(4972, 192081, 571, 1, 4, 7793.63, -3335.38, 874.607, 5.71525, 0, 0, 0.280166, -0.959952, 300, 0, 1),
+(4980, 192081, 571, 1, 4, 7847.24, -3328.97, 860.566, 3.49149, 0, 0, 0.984736, -0.174056, 300, 0, 1),
+(5025, 192081, 571, 1, 4, 7848.67, -3297.97, 858.592, 2.65853, 0, 0, 0.970973, 0.239191, 300, 0, 1),
+(5030, 192081, 571, 1, 4, 7833.79, -3273.39, 858.925, 2.02126, 0, 0, 0.847168, 0.531325, 300, 0, 1),
+(5042, 192081, 571, 1, 4, 7834.22, -3234.66, 854.051, 2.17682, 0, 0, 0.88589, 0.463896, 300, 0, 1),
+(5052, 192081, 571, 1, 4, 7861.13, -3221.38, 851.222, 0.199794, 0, 0, 0.099731, 0.995014, 300, 0, 1),
+(5064, 192081, 571, 1, 4, 7891.3, -3204.92, 856.156, 1.95869, 0, 0, 0.830133, 0.557565, 300, 0, 1),
+(5076, 192081, 571, 1, 4, 7912.37, -3223.15, 854.569, 5.38674, 0, 0, 0.433365, -0.901218, 300, 0, 1),
+(5081, 192081, 571, 1, 4, 7931.66, -3258.14, 858.264, 4.92008, 0, 0, 0.629999, -0.776596, 300, 0, 1),
+(5113, 192081, 571, 1, 4, 7916.21, -3301.92, 858.29, 3.82118, 0, 0, 0.942824, -0.333292, 300, 0, 1),
+(5130, 192081, 571, 1, 4, 7896.12, -3340.67, 857.777, 5.03497, 0, 0, 0.584373, -0.811485, 300, 0, 1),
+(5170, 192081, 571, 1, 4, 7900.34, -3376.97, 861.646, 4.64358, 0, 0, 0.731011, -0.682366, 300, 0, 1),
+(5185, 192081, 571, 1, 4, 7892.06, -3408.05, 864.871, 4.50853, 0, 0, 0.775386, -0.631488, 300, 0, 1),
+(5194, 192081, 571, 1, 4, 7863.29, -3388.16, 863.473, 2.74226, 0, 0, 0.980133, 0.198341, 300, 0, 1),
+(5198, 192081, 571, 1, 4, 7827.1, -3354.03, 865.865, 2.67201, 0, 0, 0.972563, 0.232639, 300, 0, 1);
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_10_01_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_10_01_world_misc.sql
new file mode 100644
index 00000000000..8a2430215df
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_10_01_world_misc.sql
@@ -0,0 +1,5 @@
+UPDATE `creature_template` SET `AIName`= '', `ScriptName` = 'npc_ashtongue_elementalist' WHERE `entry`=23523;
+DELETE FROM smart_scripts WHERE entryorguid=23523;
+
+UPDATE `creature_template` SET `AIName`= '', `ScriptName` = 'npc_ashtongue_spiritbinder' WHERE `entry`=23524;
+DELETE FROM smart_scripts WHERE entryorguid=23524;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_11_00_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_11_00_world_sai.sql
new file mode 100644
index 00000000000..aaf95553f18
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_11_00_world_sai.sql
@@ -0,0 +1,3 @@
+-- Sandfury Shadowhunter spam fix
+UPDATE `smart_scripts` SET `event_flags`=3 WHERE `entryorguid`=7246 AND `source_type`=0 AND `id`=15 AND `link`=16;
+UPDATE `smart_scripts` SET `event_flags`=0 WHERE `entryorguid`=7246 AND `source_type`=0 AND `id`=16 AND `link`=0;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_11_01_world_waypoints.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_11_01_world_waypoints.sql
new file mode 100644
index 00000000000..504dfad5631
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_11_01_world_waypoints.sql
@@ -0,0 +1,444 @@
+-- Pathing for Illidari Fearbringer Entry: 22954
+SET @NPC := 52768;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=612.1008,`position_y`=715.0594,`position_z`=77.48019 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,612.1008,715.0594,77.48019,0,0,0,0,100,0),
+(@PATH,2,626.8418,715.1508,75.81075,0,0,0,0,100,0),
+(@PATH,3,643.162,716.2298,70.8769,0,0,0,0,100,0),
+(@PATH,4,663.4116,720.2251,70.52241,0,0,0,0,100,0),
+(@PATH,5,682.2949,737.6859,68.97373,0,0,0,0,100,0),
+(@PATH,6,692.6406,756.8541,66.75413,0,0,0,0,100,0),
+(@PATH,7,682.2949,737.6859,68.97373,0,0,0,0,100,0),
+(@PATH,8,663.4116,720.2251,70.52241,0,0,0,0,100,0),
+(@PATH,9,643.162,716.2298,70.8769,0,0,0,0,100,0),
+(@PATH,10,626.8418,715.1508,75.81075,0,0,0,0,100,0);
+
+-- Pathing for Illidari Fearbringer Entry: 22954
+SET @NPC := 52773;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=680.5127,`position_y`=736.589,`position_z`=68.98032 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,680.5127,736.589,68.98032,0,0,0,0,100,0),
+(@PATH,2,689.7178,752.5954,67.10484,0,0,0,0,100,0),
+(@PATH,3,690.7227,773.5752,65.17497,0,0,0,0,100,0),
+(@PATH,4,682.0201,797.8951,63.36504,0,0,0,0,100,0),
+(@PATH,5,679.8043,821.2305,61.06209,0,0,0,0,100,0),
+(@PATH,6,680.7047,848.535,58.56005,0,0,0,0,100,0),
+(@PATH,7,679.8043,821.2305,61.06209,0,0,0,0,100,0),
+(@PATH,8,682.0201,797.8951,63.36504,0,0,0,0,100,0),
+(@PATH,9,690.7438,773.907,65.11858,0,0,0,0,100,0),
+(@PATH,10,689.7178,752.5954,67.10484,0,0,0,0,100,0);
+
+-- Pathing for Illidari Fearbringer Entry: 22954
+SET @NPC := 52769;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=713.0262,`position_y`=704.147,`position_z`=70.84101 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,713.0262,704.147,70.84101,0,0,0,0,100,0),
+(@PATH,2,733.0706,690.4993,71.98522,0,0,0,0,100,0),
+(@PATH,3,769.0543,692.4883,71.78658,0,0,0,0,100,0),
+(@PATH,4,790.8868,701.6238,73.08874,0,0,0,0,100,0),
+(@PATH,5,801.6542,721.7141,70.07971,0,0,0,0,100,0),
+(@PATH,6,790.8868,701.6238,73.08874,0,0,0,0,100,0),
+(@PATH,7,769.0543,692.4883,71.78658,0,0,0,0,100,0),
+(@PATH,8,733.0706,690.4993,71.98522,0,0,0,0,100,0);
+
+-- Pathing for Illidari Fearbringer Entry: 22954
+SET @NPC := 52772;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=721.4406,`position_y`=728.4247,`position_z`=68.65119 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,721.4406,728.4247,68.65119,0,0,0,0,100,0),
+(@PATH,2,721.3423,745.3929,67.11169,0,0,0,0,100,0),
+(@PATH,3,716.5741,774.6444,64.54839,0,0,0,0,100,0),
+(@PATH,4,724.2047,803.066,62.11536,0,0,0,0,100,0),
+(@PATH,5,735.2154,833.7368,58.94956,0,0,0,0,100,0),
+(@PATH,6,734.4446,863.5928,56.50595,0,0,0,0,100,0),
+(@PATH,7,735.2154,833.7368,58.94956,0,0,0,0,100,0),
+(@PATH,8,724.2047,803.066,62.11536,0,0,0,0,100,0),
+(@PATH,9,716.5741,774.6444,64.54839,0,0,0,0,100,0),
+(@PATH,10,721.3423,745.3929,67.11169,0,0,0,0,100,0);
+
+-- Pathing for Aqueous Lord Entry: 22878
+SET @NPC := 12866;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=312.8537,`position_y`=813.1077,`position_z`=-17.58058 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,312.8537,813.1077,-17.58058,0,0,0,0,100,0),
+(@PATH,2,341.3598,812.8531,-6.117754,0,0,0,0,100,0),
+(@PATH,3,381.8092,812.6519,9.062115,0,0,0,0,100,0),
+(@PATH,4,341.4501,812.8524,-6.08468,0,0,0,0,100,0);
+
+-- Pathing for Aqueous Lord Entry: 22878
+SET @NPC := 12869;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=252.3342,`position_y`=893.9015,`position_z`=-30.78079 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,252.3342,893.9015,-30.78079,0,0,0,0,100,0),
+(@PATH,2,252.6844,922.2958,-44.67338,0,0,0,0,100,0),
+(@PATH,3,252.5329,943.3651,-55.76704,0,0,0,0,100,0),
+(@PATH,4,252.6844,922.2958,-44.67338,0,0,0,0,100,0);
+
+-- Pathing for Priestess of Dementia Entry: 22957
+SET @NPC := 52857;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=946.3522,`position_y`=337.5683,`position_z`=191.208 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,946.3522,337.5683,191.208,0,0,0,0,100,0),
+(@PATH,2,946.4788,358.0963,191.208,0,0,0,0,100,0),
+(@PATH,3,946.3522,337.5683,191.208,0,0,0,0,100,0),
+(@PATH,4,946.2967,310.864,191.208,0,0,0,0,100,0),
+(@PATH,5,946.0381,284.1759,191.208,0,0,0,0,100,0),
+(@PATH,6,945.9597,259.7708,191.208,0,0,0,0,100,0),
+(@PATH,7,945.9167,242.3769,191.208,0,0,0,0,100,0),
+(@PATH,8,945.6511,224.3957,191.208,0,0,0,0,100,0),
+(@PATH,9,945.9167,242.3769,191.208,0,0,0,0,100,0),
+(@PATH,10,945.9597,259.7708,191.208,0,0,0,0,100,0),
+(@PATH,11,946.0381,284.1759,191.208,0,0,0,0,100,0),
+(@PATH,12,946.2967,310.864,191.208,0,0,0,0,100,0),
+(@PATH,13,946.3522,337.5683,191.208,0,0,0,0,100,0),
+(@PATH,14,946.4788,358.0963,191.208,0,0,0,0,100,0);
+
+-- Pathing for Promenade Sentinel Entry: 23394
+SET @NPC := 12884;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=761.1854,`position_y`=161.5995,`position_z`=218.4323 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,4097,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,761.1854,161.5995,218.4323,0,0,0,0,100,0),
+(@PATH,2,762.2211,175.3375,218.453,0,0,0,0,100,0),
+(@PATH,3,788.6677,173.3627,212.4686,0,0,0,0,100,0),
+(@PATH,4,813.4553,170.9617,204.7675,0,0,0,0,100,0),
+(@PATH,5,812.7894,149.1826,204.7681,0,0,0,0,100,0),
+(@PATH,6,812.5944,127.2771,204.7675,0,0,0,0,100,0),
+(@PATH,7,788.8348,125.6381,212.1583,0,0,0,0,100,0),
+(@PATH,8,760.3759,122.2594,218.5355,0,0,0,0,100,0),
+(@PATH,9,760.9326,144.1558,218.4856,0,0,0,0,100,0);
+
+-- Pathing for Promenade Sentinel Entry: 23394
+SET @NPC := 12886;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=624.8207,`position_y`=173.8407,`position_z`=253.2433 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,4097,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,624.8207,173.8407,253.2433,0,0,0,0,100,0),
+(@PATH,2,640.5691,173.9213,245.0594,0,0,0,0,100,0),
+(@PATH,3,642.4141,149.8184,245.0508,0,0,0,0,100,0),
+(@PATH,4,639.9938,127.3701,245.0583,0,0,0,0,100,0),
+(@PATH,5,626.2823,127.0409,251.9054,0,0,0,0,100,0),
+(@PATH,6,611.546,126.5545,258.8932,0,0,0,0,100,0),
+(@PATH,7,606.4694,138.4668,258.7596,0,0,0,0,100,0),
+(@PATH,8,607.1602,162.4693,258.7508,0,0,0,0,100,0),
+(@PATH,9,613.0195,175.0303,258.9398,0,0,0,0,100,0),
+(@PATH,10,624.8207,173.8407,253.2433,0,0,0,0,100,0);
+
+-- Pathing for Promenade Sentinel Entry: 23394
+SET @NPC := 12888;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=548.1619,`position_y`=222.5298,`position_z`=271.9026 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,4097,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,548.1619,222.5298,271.9026,4.712389,33000,0,0,100,0),
+(@PATH,2,548.1752,204.6016,265.1634,0,0,0,0,100,0),
+(@PATH,3,548.1595,190.8972,258.734,0,0,0,0,100,0),
+(@PATH,4,548.0938,205.5043,265.7878,0,0,0,0,100,0);
+
+-- Pathing for Promenade Sentinel Entry: 23394
+SET @NPC := 12889;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=696.7759,`position_y`=173.015,`position_z`=232.0304 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,4097,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,696.7759,173.015,232.0304,0,0,0,0,100,0),
+(@PATH,2,711.6221,149.6127,231.9982,0,0,0,0,100,0),
+(@PATH,3,696.7689,127.0203,232.0802,0,0,0,0,100,0),
+(@PATH,4,679.1018,126.4796,239.9357,0,0,0,0,100,0),
+(@PATH,5,664.3721,125.8799,245.6465,0,0,0,0,100,0),
+(@PATH,6,656.2635,131.5955,245.4032,0,0,0,0,100,0),
+(@PATH,7,656.2786,146.7755,245.3991,0,0,0,0,100,0),
+(@PATH,8,656.2986,153.3558,245.3982,0,0,0,0,100,0),
+(@PATH,9,656.5179,169.0384,245.4051,0,0,0,0,100,0),
+(@PATH,10,663.8251,173.6144,245.7881,0,0,0,0,100,0),
+(@PATH,11,678.0536,173.7249,240.8454,0,0,0,0,100,0);
+
+-- Pathing for Bonechewer Behemoth Entry: 23196
+SET @NPC := 52739;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=909.464,`position_y`=245.1965,`position_z`=85.64125 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,909.464,245.1965,85.64125,0,0,0,0,100,0),
+(@PATH,2,936.0223,259.309,85.6412,0,0,0,0,100,0),
+(@PATH,3,941.6469,283.9179,85.64117,0,0,0,0,100,0),
+(@PATH,4,924.2444,298.756,86.15284,0,0,0,0,100,0),
+(@PATH,5,941.6469,283.9179,85.64117,0,0,0,0,100,0),
+(@PATH,6,936.0223,259.309,85.6412,0,0,0,0,100,0),
+(@PATH,7,909.464,245.1965,85.64125,0,0,0,0,100,0),
+(@PATH,8,881.7233,244.0528,84.85726,0,0,0,0,100,0);
+
+-- Pathing for Bonechewer Behemoth Entry: 23196
+SET @NPC := 52740;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=899.0332,`position_y`=197.8294,`position_z`=86.16103 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,899.0332,197.8294,86.16103,0,0,0,0,100,0),
+(@PATH,2,897.7601,186.8322,86.16117,0,0,0,0,100,0),
+(@PATH,3,899.0332,197.8294,86.16103,0,0,0,0,100,0),
+(@PATH,4,897.392,207.5867,86.1609,0,0,0,0,100,0),
+(@PATH,5,921.5169,224.1364,85.64123,0,0,0,0,100,0),
+(@PATH,6,930.8919,235.1188,85.64124,0,0,0,0,100,0),
+(@PATH,7,940.9707,239.6061,85.64124,0,0,0,0,100,0),
+(@PATH,8,950.1663,237.9947,86.16045,0,0,0,0,100,0),
+(@PATH,9,956.6059,230.0929,86.16039,0,0,0,0,100,0),
+(@PATH,10,956.8278,213.7176,86.16056,0,0,0,0,100,0),
+(@PATH,11,957.555,199.413,86.1607,0,0,0,0,100,0),
+(@PATH,12,956.8278,213.7176,86.16056,0,0,0,0,100,0),
+(@PATH,13,956.6059,230.0929,86.16039,0,0,0,0,100,0),
+(@PATH,14,950.1663,237.9947,86.16045,0,0,0,0,100,0),
+(@PATH,15,940.9707,239.6061,85.64124,0,0,0,0,100,0),
+(@PATH,16,930.8919,235.1188,85.64124,0,0,0,0,100,0),
+(@PATH,17,921.5169,224.1364,85.64123,0,0,0,0,100,0),
+(@PATH,18,897.392,207.5867,86.1609,0,0,0,0,100,0),
+(@PATH,19,899.0332,197.8294,86.16103,0,0,0,0,100,0),
+(@PATH,20,897.7601,186.8322,86.16117,0,0,0,0,100,0);
+
+-- Pathing for Bonechewer Behemoth Entry: 23196
+SET @NPC := 52542;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=872.4788,`position_y`=65.84342,`position_z`=112.7412 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,872.4788,65.84342,112.7412,0,0,0,0,100,0),
+(@PATH,2,935.6211,65.98904,112.7535,0,0,0,0,100,0),
+(@PATH,3,899.9241,69.37424,112.7376,0,0,0,0,100,0),
+(@PATH,4,869.3976,68.47385,112.7417,0,0,0,0,100,0),
+(@PATH,5,826.9479,67.30523,112.7454,0,0,0,0,100,0),
+(@PATH,6,869.2424,69.2244,112.7418,0,0,0,0,100,0),
+(@PATH,7,863.1619,63.82265,112.7426,0,0,0,0,100,0),
+(@PATH,8,868.8893,72.09175,112.7419,0,0,0,0,100,0),
+(@PATH,9,861.7059,67.34996,112.7429,0,0,0,0,100,0),
+(@PATH,10,867.9327,69.0042,112.742,0,0,0,0,100,0),
+(@PATH,11,825.1594,65.52496,112.7448,0,0,0,0,100,0),
+(@PATH,12,874.6883,67.74924,112.7409,0,0,0,0,100,0),
+(@PATH,13,899.5973,69.61382,112.7372,0,0,0,0,100,0),
+(@PATH,14,927.8147,64.82682,112.7534,0,0,0,0,100,0),
+(@PATH,15,870.0113,69.63828,112.7417,0,0,0,0,100,0),
+(@PATH,16,870.6498,66.78909,112.7415,0,0,0,0,100,0);
+
+-- Pathing for Bonechewer Behemoth Entry: 23196
+SET @NPC := 52743;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=763.4602,`position_y`=121.2597,`position_z`=112.5469 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,763.4602,121.2597,112.5469,0,0,0,0,100,0),
+(@PATH,2,765.515,120.5528,112.4407,0,0,0,0,100,0),
+(@PATH,3,761.6171,120.877,112.6373,0,0,0,0,100,0),
+(@PATH,4,763.0114,122.1931,112.5738,0,0,0,0,100,0),
+(@PATH,5,762.4429,119.6596,112.5902,0,0,0,0,100,0),
+(@PATH,6,762.847,118.4683,112.5643,0,0,0,0,100,0),
+(@PATH,7,764.7086,116.9735,112.464,0,0,0,0,100,0),
+(@PATH,8,762.533,120.0672,112.5876,0,0,0,0,100,0),
+(@PATH,9,760.8773,120.2691,112.6714,0,0,0,0,100,0),
+(@PATH,10,761.802,117.5317,112.6121,0,0,0,0,100,0),
+(@PATH,11,765.24,118.7345,112.4458,0,0,0,0,100,0),
+(@PATH,12,762.7466,119.8271,112.5758,0,0,0,0,100,0),
+(@PATH,13,759.4903,118.7799,112.7338,0,0,0,0,100,0),
+(@PATH,14,760.2434,121.535,112.7092,0,0,0,0,100,0),
+(@PATH,15,767.4446,120.2948,112.3428,0,0,0,0,100,0),
+(@PATH,16,752.21,117.786,112.7387,0,0,0,0,100,0),
+(@PATH,17,735.6179,101.9004,112.7494,0,0,0,0,100,0),
+(@PATH,18,724.5951,75.40408,113.4761,0,0,0,0,100,0),
+(@PATH,19,756.7452,71.75539,112.7374,0,0,0,0,100,0),
+(@PATH,20,756.4152,69.2236,112.7374,0,0,0,0,100,0),
+(@PATH,21,730.9688,65.39399,113.2859,0,0,0,0,100,0),
+(@PATH,22,775.8292,75.42676,112.7374,0,0,0,0,100,0),
+(@PATH,23,772.0274,107.9498,112.6996,0,0,0,0,100,0);
+
+-- Pathing for Bonechewer Taskmaster Entry: 23028
+SET @NPC := 53816;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=775.0792,`position_y`=766.9516,`position_z`=66.16946 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,775.0792,766.9516,66.16946,0,0,0,0,100,0),
+(@PATH,2,776.4752,758.1284,68.59184,0,0,0,0,100,0),
+(@PATH,3,776.7239,748.5446,70.04276,0,0,0,0,100,0),
+(@PATH,4,771.1584,744.486,69.7692,0,0,0,0,100,0),
+(@PATH,5,776.7239,748.5446,70.04276,0,0,0,0,100,0),
+(@PATH,6,776.4752,758.1284,68.59184,0,0,0,0,100,0),
+(@PATH,7,775.0792,766.9516,66.16946,0,0,0,0,100,0),
+(@PATH,8,776.6424,775.2938,65.64797,0,0,0,0,100,0),
+(@PATH,9,779.1,781.9779,65.93484,0,0,0,0,100,0),
+(@PATH,10,776.9979,791.3973,65.63259,0,0,0,0,100,0),
+(@PATH,11,779.1,781.9779,65.93484,0,0,0,0,100,0),
+(@PATH,12,776.6424,775.2938,65.64797,0,0,0,0,100,0);
+
+-- Pathing for Suffering Soul Fragment Entry: 23399
+SET @NPC := 40526;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=496.5382,`position_y`=84.75467,`position_z`=108.4162 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,496.5382,84.75467,108.4162,0,0,0,0,100,0),
+(@PATH,2,521.0706,76.54764,112.8559,0,0,0,0,100,0),
+(@PATH,3,496.5382,84.75467,108.4162,0,0,0,0,100,0),
+(@PATH,4,474.7787,75.08279,111.861,0,0,0,0,100,0);
+
+-- Pathing for Suffering Soul Fragment Entry: 23399
+SET @NPC := 52411;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=557.008,`position_y`=29.39996,`position_z`=112.4988 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,557.008,29.39996,112.4988,0,0,0,0,100,0),
+(@PATH,2,519.227,48.72656,113.3207,0,0,0,0,100,0),
+(@PATH,3,477.2372,27.49957,112.5984,0,0,0,0,100,0),
+(@PATH,4,519.227,48.72656,113.3207,0,0,0,0,100,0);
+
+-- Pathing for Suffering Soul Fragment Entry: 23399
+SET @NPC := 46817;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=609.3162,`position_y`=98.43359,`position_z`=112.342 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,609.3162,98.43359,112.342,0,0,0,0,100,0),
+(@PATH,2,580.6458,90.18815,111.1614,0,0,0,0,100,0),
+(@PATH,3,609.3162,98.43359,112.342,0,0,0,0,100,0),
+(@PATH,4,629.5143,77.47526,112.7921,0,0,0,0,100,0);
+
+-- Pathing for Suffering Soul Fragment Entry: 23399
+SET @NPC := 40446;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=535.6982,`position_y`=75.88596,`position_z`=112.9535 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,535.6982,75.88596,112.9535,0,0,0,0,100,0),
+(@PATH,2,560.1788,80.13477,113.2281,0,0,0,0,100,0),
+(@PATH,3,574.8022,104.9709,113.0734,0,0,0,0,100,0),
+(@PATH,4,560.1788,80.13477,113.2281,0,0,0,0,100,0);
+
+-- Pathing for Suffering Soul Fragment Entry: 23399
+SET @NPC := 42920;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=629.0891,`position_y`=47.3309,`position_z`=112.7773 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,629.0891,47.3309,112.7773,0,0,0,0,100,0),
+(@PATH,2,601.5073,37.56067,112.7347,0,0,0,0,100,0),
+(@PATH,3,575.1098,56.30285,111.0313,0,0,0,0,100,0),
+(@PATH,4,601.2772,37.47917,112.7411,0,0,0,0,100,0);
+
+-- Pathing for Hungering Soul Fragment Entry: 23401
+SET @NPC := 52420;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=620.9159,`position_y`=30.22016,`position_z`=112.7356 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '41248');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,620.9159,30.22016,112.7356,0,0,0,0,100,0),
+(@PATH,2,607.7153,64.61448,111.7263,0,0,0,0,100,0),
+(@PATH,3,589.4402,39.24023,112.765,0,0,0,0,100,0),
+(@PATH,4,607.5776,64.42328,111.7202,0,0,0,0,100,0);
+
+-- Pathing for Hungering Soul Fragment Entry: 23401
+SET @NPC := 52424;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=518.9474,`position_y`=74.61002,`position_z`=112.9129 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '41248');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,518.9474,74.61002,112.9129,0,0,0,0,100,0),
+(@PATH,2,473.2182,73.22733,111.8457,0,0,0,0,100,0);
+
+-- Pathing for Hungering Soul Fragment Entry: 23401
+SET @NPC := 52418;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=617.4402,`position_y`=102.7646,`position_z`=112.7506 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '41248');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,617.4402,102.7646,112.7506,0,0,0,0,100,0),
+(@PATH,2,601.6309,74.0624,111.239,0,0,0,0,100,0),
+(@PATH,3,578.1609,98.96626,113.0465,0,0,0,0,100,0),
+(@PATH,4,601.5496,73.97516,111.2432,0,0,0,0,100,0);
+
+-- Pathing for Hungering Soul Fragment Entry: 23401
+SET @NPC := 52427;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=552.3234,`position_y`=97.95421,`position_z`=112.4811 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '41248');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,552.3234,97.95421,112.4811,0,0,0,0,100,0),
+(@PATH,2,536.0945,78.04199,113.071,0,0,0,0,100,0),
+(@PATH,3,552.3234,97.95421,112.4811,0,0,0,0,100,0),
+(@PATH,4,573.4583,103.4899,113.1861,0,0,0,0,100,0);
+
+-- Pathing for Hungering Soul Fragment Entry: 23401
+SET @NPC := 52423;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=512.1553,`position_y`=30.04926,`position_z`=113.648 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '41248');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,512.1553,30.04926,113.648,0,0,0,0,100,0),
+(@PATH,2,487.4863,43.71723,112.3249,0,0,0,0,100,0),
+(@PATH,3,512.1553,30.04926,113.648,0,0,0,0,100,0),
+(@PATH,4,550.6255,48.4656,112.5677,0,0,0,0,100,0);
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_11_02_world_waypoints.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_11_02_world_waypoints.sql
new file mode 100644
index 00000000000..0fcce3f25cf
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_11_02_world_waypoints.sql
@@ -0,0 +1,351 @@
+-- Pathing for Sister of Pain Entry: 22956
+SET @NPC := 52847;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=927.6238,`position_y`=341.3523,`position_z`=192.8381 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,927.6238,341.3523,192.8381,0,0,0,0,100,0),
+(@PATH,2,933.1646,349.9787,192.8489,0,0,0,0,100,0),
+(@PATH,3,946.3496,351.5887,191.208,0,0,0,0,100,0),
+(@PATH,4,957.402,349.1798,192.8489,0,0,0,0,100,0),
+(@PATH,5,959.1028,340.2523,192.8339,0,0,0,0,100,0),
+(@PATH,6,958.7474,315.7549,192.85,0,0,0,0,100,0),
+(@PATH,7,958.1597,284.2602,192.8316,0,0,0,0,100,0),
+(@PATH,8,957.9045,261.2944,192.8105,0,0,0,0,100,0),
+(@PATH,9,934.2908,249.2501,192.8218,0,0,0,0,100,0),
+(@PATH,10,924.9614,242.9601,192.8321,0,0,0,0,100,0),
+(@PATH,11,923.0469,232.589,192.8392,0,0,0,0,100,0),
+(@PATH,12,936.2947,223.5277,192.8423,0,0,0,0,100,0),
+(@PATH,13,956.1213,223.5726,192.8414,0,0,0,0,100,0),
+(@PATH,14,957.9364,265.2702,192.8146,0,0,0,0,100,0),
+(@PATH,15,958.333,291.847,192.8519,0,0,0,0,100,0),
+(@PATH,16,958.7474,315.7549,192.85,0,0,0,0,100,0),
+(@PATH,17,926.8249,319.8605,192.8298,0,0,0,0,100,0);
+-- 0xF13059AC00000970 .go 927.6238 341.3523 192.8381
+
+-- Pathing for Sister of Pleasure Entry: 22964
+SET @NPC := 53055;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=925.0996,`position_y`=342.9736,`position_z`=192.8381 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,925.0996,342.9736,192.8381,0,0,0,0,100,0),
+(@PATH,2,932.8010,352.9566,192.8489,0,0,0,0,100,0),
+(@PATH,3,946.9885,354.5199,191.2080,0,0,0,0,100,0),
+(@PATH,4,960.3490,349.7412,192.8489,0,0,0,0,100,0),
+(@PATH,5,962.1025,340.2088,192.8339,0,0,0,0,100,0),
+(@PATH,6,961.7469,315.6989,192.8500,0,0,0,0,100,0),
+(@PATH,7,961.1595,284.2269,192.8316,0,0,0,0,100,0),
+(@PATH,8,959.2676,258.6220,192.8105,0,0,0,0,100,0),
+(@PATH,9,935.9679,246.7626,192.8218,0,0,0,0,100,0),
+(@PATH,10,927.9116,242.4155,192.8321,0,0,0,0,100,0),
+(@PATH,11,924.7406,235.0652,192.8392,0,0,0,0,100,0),
+(@PATH,12,936.2879,226.5277,192.8423,0,0,0,0,100,0),
+(@PATH,13,953.1241,223.7031,192.8414,0,0,0,0,100,0),
+(@PATH,14,954.9367,265.3150,192.8146,0,0,0,0,100,0),
+(@PATH,15,955.3335,291.8990,192.8519,0,0,0,0,100,0),
+(@PATH,16,958.3647,312.7794,192.8500,0,0,0,0,100,0),
+(@PATH,17,923.8270,319.9719,192.8298,0,0,0,0,100,0);
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=52847;
+INSERT INTO `creature_formations` (`leaderGUID`,`memberGUID`,`dist`,`angle`,`groupAI`) VALUES
+(52847,52847,0,0,2),
+(52847,53055,3,270,2);
+
+-- Pathing for Sister of Pain Entry: 22956
+SET @NPC := 52848;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=939.6501,`position_y`=392.5455,`position_z`=192.2012 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,939.6501,392.5455,192.2012,0,0,0,0,100,0),
+(@PATH,2,955.7531,392.462,192.8371,0,0,0,0,100,0),
+(@PATH,3,962.5223,393.8847,192.8374,0,0,0,0,100,0),
+(@PATH,4,969.5388,399.207,192.8365,0,0,0,0,100,0),
+(@PATH,5,970.2259,412.7339,192.8371,0,0,0,0,100,0),
+(@PATH,6,971.1399,429.8507,192.8395,0,0,0,0,100,0),
+(@PATH,7,971.1545,441.883,192.8399,0,0,0,0,100,0),
+(@PATH,8,963.2639,447.4974,192.8385,0,0,0,0,100,0),
+(@PATH,9,950.0648,453.577,192.8389,0,0,0,0,100,0),
+(@PATH,10,938.3679,452.2439,192.8379,0,0,0,0,100,0),
+(@PATH,11,927.6536,446.5119,192.8374,0,0,0,0,100,0),
+(@PATH,12,920.3358,436.4881,192.841,0,0,0,0,100,0),
+(@PATH,13,920.5208,411.5176,192.8447,0,0,0,0,100,0),
+(@PATH,14,922.6708,402.1874,192.8461,0,0,0,0,100,0),
+(@PATH,15,931.1328,395.2974,192.8446,0,0,0,0,100,0);
+-- 0xF13059AC00000972 .go 939.6501 392.5455 192.2012
+
+-- Pathing for Sister of Pleasure Entry: 22964
+SET @NPC := 53056;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=939.6657,`position_y`=395.5455,`position_z`=192.2012 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,939.6657,395.5455,192.2012,0,0,0,0,100,0),
+(@PATH,2,955.1361,395.3979,192.8371,0,0,0,0,100,0),
+(@PATH,3,960.7093,396.2749,192.8374,0,0,0,0,100,0),
+(@PATH,4,966.5427,399.3592,192.8365,0,0,0,0,100,0),
+(@PATH,5,967.2302,412.8939,192.8371,0,0,0,0,100,0),
+(@PATH,6,968.1399,429.8543,192.8395,0,0,0,0,100,0),
+(@PATH,7,969.4152,439.4386,192.8399,0,0,0,0,100,0),
+(@PATH,8,962.0088,444.7726,192.8385,0,0,0,0,100,0),
+(@PATH,9,950.4045,450.5963,192.8389,0,0,0,0,100,0),
+(@PATH,10,939.7831,449.5987,192.8379,0,0,0,0,100,0),
+(@PATH,11,930.0766,444.7430,192.8374,0,0,0,0,100,0),
+(@PATH,12,923.3357,436.5103,192.8410,0,0,0,0,100,0),
+(@PATH,13,923.4442,412.1912,192.8447,0,0,0,0,100,0),
+(@PATH,14,924.5650,404.5138,192.8461,0,0,0,0,100,0),
+(@PATH,15,932.0551,398.1521,192.8446,0,0,0,0,100,0);
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=52848;
+INSERT INTO `creature_formations` (`leaderGUID`,`memberGUID`,`dist`,`angle`,`groupAI`) VALUES
+(52848,52848,0,0,2),
+(52848,53056,3,270,2);
+
+-- Pathing for Sister of Pain Entry: 22956
+SET @NPC := 52855;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=946.1318,`position_y`=109.8686,`position_z`=192.8489 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,946.1318,109.8686,192.8489,0,0,0,0,100,0),
+(@PATH,2,927.7674,117.2716,192.8514,0,0,0,0,100,0),
+(@PATH,3,918.4934,131.3158,192.8362,0,0,0,0,100,0),
+(@PATH,4,919.8276,156.7103,192.8208,0,0,0,0,100,0),
+(@PATH,5,924.041,177.5718,192.8279,0,0,0,0,100,0),
+(@PATH,6,935.0341,190.2466,192.8337,0,0,0,0,100,0),
+(@PATH,7,946.1438,190.5046,192.0657,0,0,0,0,100,0),
+(@PATH,8,957.5206,190.2688,192.8344,0,0,0,0,100,0),
+(@PATH,9,967.0856,176.6067,192.8276,0,0,0,0,100,0),
+(@PATH,10,970.228,156.7281,192.829,0,0,0,0,100,0),
+(@PATH,11,971.1368,131.5664,192.8254,0,0,0,0,100,0),
+(@PATH,12,963.462,116.8087,192.829,0,0,0,0,100,0);
+-- 0xF13059AC00000975 .go 946.1318 109.8686 192.8489
+
+-- Pathing for Sister of Pleasure Entry: 22964
+SET @NPC := 53059;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=945.0102,`position_y`=107.0862,`position_z`=192.8489 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,945.0102,107.0862,192.8489,0,0,0,0,100,0),
+(@PATH,2,925.2640,115.6185,192.8514,0,0,0,0,100,0),
+(@PATH,3,915.4975,131.4732,192.8362,0,0,0,0,100,0),
+(@PATH,4,916.8870,157.3042,192.8208,0,0,0,0,100,0),
+(@PATH,5,921.7747,179.5374,192.8279,0,0,0,0,100,0),
+(@PATH,6,934.9644,193.2458,192.8337,0,0,0,0,100,0),
+(@PATH,7,946.2060,193.5040,192.0657,0,0,0,0,100,0),
+(@PATH,8,959.9782,191.9894,192.8344,0,0,0,0,100,0),
+(@PATH,9,970.0488,177.0751,192.8276,0,0,0,0,100,0),
+(@PATH,10,973.2260,156.8364,192.8290,0,0,0,0,100,0),
+(@PATH,11,973.7984,130.1822,192.8254,0,0,0,0,100,0),
+(@PATH,12,964.5773,114.0237,192.8290,0,0,0,0,100,0);
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=52855;
+INSERT INTO `creature_formations` (`leaderGUID`,`memberGUID`,`dist`,`angle`,`groupAI`) VALUES
+(52855,52855,0,0,2),
+(52855,53059,3,270,2);
+
+-- Pathing for Sister of Pain Entry: 22956
+SET @NPC := 52846;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=832.2903,`position_y`=526.5916,`position_z`=165.7311 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,832.2903,526.5916,165.7311,0,0,0,0,100,0),
+(@PATH,2,818.8309,520.7764,165.9885,0,0,0,0,100,0),
+(@PATH,3,812.696,514.7813,166.1044,0,0,0,0,100,0),
+(@PATH,4,812.6564,506.3056,170.2904,0,0,0,0,100,0),
+(@PATH,5,812.5226,493.5983,180.3996,0,0,0,0,100,0),
+(@PATH,6,812.2745,477.484,192.7058,0,0,0,0,100,0),
+(@PATH,7,812.5706,466.9394,192.7913,0,0,0,0,100,0),
+(@PATH,8,812.2745,477.484,192.7058,0,0,0,0,100,0),
+(@PATH,9,812.5226,493.5983,180.3996,0,0,0,0,100,0),
+(@PATH,10,812.6564,506.3056,170.2904,0,0,0,0,100,0),
+(@PATH,11,812.696,514.7813,166.1044,0,0,0,0,100,0),
+(@PATH,12,818.8309,520.7764,165.9885,0,0,0,0,100,0),
+(@PATH,13,832.2903,526.5916,165.7311,0,0,0,0,100,0),
+(@PATH,14,837.6116,532.7322,165.7527,0,0,0,0,100,0),
+(@PATH,15,840.6443,543.301,165.6792,0,0,0,0,100,0),
+(@PATH,16,849.1154,543.5079,165.8225,0,0,0,0,100,0),
+(@PATH,17,862.1961,543.5349,156.2316,0,0,0,0,100,0),
+(@PATH,18,874.82,543.4052,146.1888,0,0,0,0,100,0),
+(@PATH,19,890.8995,543.0212,139.3036,0,0,0,0,100,0),
+(@PATH,20,874.82,543.4052,146.1888,0,0,0,0,100,0),
+(@PATH,21,862.1961,543.5349,156.2316,0,0,0,0,100,0),
+(@PATH,22,849.1154,543.5079,165.8225,0,0,0,0,100,0),
+(@PATH,23,840.6443,543.301,165.6792,0,0,0,0,100,0),
+(@PATH,24,837.6116,532.7322,165.7527,0,0,0,0,100,0);
+-- 0xF13059AC000009CB .go 832.2903 526.5916 165.7311
+
+-- Pathing for Sister of Pleasure Entry: 22964
+SET @NPC := 53054;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=833.4802,`position_y`=523.8377,`position_z`=165.7311 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,833.4802,523.8377,165.7311,0,0,0,0,100,0),
+(@PATH,2,820.9276,518.6308,165.9885,0,0,0,0,100,0),
+(@PATH,3,815.6960,514.7673,166.1044,0,0,0,0,100,0),
+(@PATH,4,815.6562,506.2740,170.2904,0,0,0,0,100,0),
+(@PATH,5,815.5222,493.5521,180.3996,0,0,0,0,100,0),
+(@PATH,6,815.2733,477.5682,192.7058,0,0,0,0,100,0),
+(@PATH,7,815.5694,467.0236,192.7913,0,0,0,0,100,0),
+(@PATH,8,815.2741,477.4378,192.7058,0,0,0,0,100,0),
+(@PATH,9,815.5224,493.5667,180.3996,0,0,0,0,100,0),
+(@PATH,10,815.6564,506.2916,170.2904,0,0,0,0,100,0),
+(@PATH,11,814.7927,512.6357,166.1044,0,0,0,0,100,0),
+(@PATH,12,820.0208,518.0225,165.9885,0,0,0,0,100,0),
+(@PATH,13,834.5575,524.6269,165.7311,0,0,0,0,100,0),
+(@PATH,14,840.4952,531.9047,165.7527,0,0,0,0,100,0),
+(@PATH,15,840.7176,540.3019,165.6792,0,0,0,0,100,0),
+(@PATH,16,849.1216,540.5079,165.8225,0,0,0,0,100,0),
+(@PATH,17,862.1653,540.5351,156.2316,0,0,0,0,100,0),
+(@PATH,18,874.7484,540.4061,146.1888,0,0,0,0,100,0),
+(@PATH,19,890.8279,540.0221,139.3036,0,0,0,0,100,0),
+(@PATH,20,874.7892,540.4054,146.1888,0,0,0,0,100,0),
+(@PATH,21,862.2023,540.5349,156.2316,0,0,0,0,100,0),
+(@PATH,22,849.1887,540.5088,165.8225,0,0,0,0,100,0),
+(@PATH,23,843.5279,542.4735,165.6792,0,0,0,0,100,0),
+(@PATH,24,839.8788,530.7675,165.7527,0,0,0,0,100,0);
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=52846;
+INSERT INTO `creature_formations` (`leaderGUID`,`memberGUID`,`dist`,`angle`,`groupAI`) VALUES
+(52846,52846,0,0,2),
+(52846,53054,3,270,2);
+
+-- Pathing for Sister of Pain Entry: 22956
+SET @NPC := 52854;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=897.643,`position_y`=368.6811,`position_z`=112.7681 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,897.643,368.6811,112.7682,0,0,0,0,100,0),
+(@PATH,2,891.4086,375.0052,112.7682,0,0,0,0,100,0),
+(@PATH,3,886.6258,392.1916,112.7681,0,0,0,0,100,0),
+(@PATH,4,889.0926,406.6414,112.7681,0,0,0,0,100,0),
+(@PATH,5,895.0201,414.2144,112.7681,0,0,0,0,100,0),
+(@PATH,6,907.2474,422.6099,112.7681,0,0,0,0,100,0),
+(@PATH,7,917.291,427.4965,112.7681,0,0,0,0,100,0),
+(@PATH,8,917.538,443.7802,112.7681,0,0,0,0,100,0),
+(@PATH,9,918.18,480.8549,121.0903,0,0,0,0,100,0),
+(@PATH,10,918.1483,469.0587,112.768,0,0,0,0,100,0),
+(@PATH,11,917.9372,449.7168,112.7681,0,0,0,0,100,0),
+(@PATH,12,917.7559,427.5167,112.7681,0,0,0,0,100,0),
+(@PATH,13,928.2393,423.6823,112.768,0,0,0,0,100,0),
+(@PATH,14,942.3116,412.3955,112.768,0,0,0,0,100,0),
+(@PATH,15,947.6193,400.7702,112.768,0,0,0,0,100,0),
+(@PATH,16,947.3901,388.0476,112.768,0,0,0,0,100,0),
+(@PATH,17,944.3997,375.4843,112.768,0,0,0,0,100,0),
+(@PATH,18,934.3572,366.3027,112.7681,0,0,0,0,100,0),
+(@PATH,19,922.269,361.623,112.7681,0,0,0,0,100,0),
+(@PATH,20,907.52,362.9464,112.7682,0,0,0,0,100,0);
+-- 0xF13059AC000009CE .go 917.291 427.4965 112.7681
+
+-- Pathing for Sister of Pleasure Entry: 22964
+SET @NPC := 53058;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=895.5066,`position_y`=366.5750,`position_z`=112.7681 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,895.5066,366.5750,112.7682,0,0,0,0,100,0),
+(@PATH,2,888.5184,374.2009,112.7682,0,0,0,0,100,0),
+(@PATH,3,883.6686,392.6964,112.7681,0,0,0,0,100,0),
+(@PATH,4,886.7302,408.4905,112.7681,0,0,0,0,100,0),
+(@PATH,5,893.3220,416.6875,112.7681,0,0,0,0,100,0),
+(@PATH,6,905.9349,425.3075,112.7681,0,0,0,0,100,0),
+(@PATH,7,914.2913,427.5420,112.7681,0,0,0,0,100,0),
+(@PATH,8,914.5384,443.8321,112.7681,0,0,0,0,100,0),
+(@PATH,9,915.1800,480.8630,121.0903,0,0,0,0,100,0),
+(@PATH,10,915.1485,469.0914,112.7680,0,0,0,0,100,0),
+(@PATH,11,914.9373,449.7413,112.7681,0,0,0,0,100,0),
+(@PATH,12,916.7254,424.6992,112.7681,0,0,0,0,100,0),
+(@PATH,13,930.1163,426.0226,112.7680,0,0,0,0,100,0),
+(@PATH,14,945.0406,413.6415,112.7680,0,0,0,0,100,0),
+(@PATH,15,950.6188,400.7162,112.7680,0,0,0,0,100,0),
+(@PATH,16,950.3086,387.3529,112.7680,0,0,0,0,100,0),
+(@PATH,17,946.4240,373.2702,112.7680,0,0,0,0,100,0),
+(@PATH,18,935.4403,363.5050,112.7681,0,0,0,0,100,0),
+(@PATH,19,922.0009,358.6350,112.7681,0,0,0,0,100,0),
+(@PATH,20,906.0137,360.3520,112.7682,0,0,0,0,100,0);
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=52854;
+INSERT INTO `creature_formations` (`leaderGUID`,`memberGUID`,`dist`,`angle`,`groupAI`) VALUES
+(52854,52854,0,0,2),
+(52854,53058,3,270,2);
+
+-- Pathing for Sister of Pain Entry: 22956
+SET @NPC := 52850;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=863.5932,`position_y`=404.4617,`position_z`=192.8021 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,863.5932,404.4617,192.8021,0,0,0,0,100,0),
+(@PATH,2,857.1285,400.2212,192.8021,0,0,0,0,100,0),
+(@PATH,3,841.5421,399.2611,192.8021,0,0,0,0,100,0),
+(@PATH,4,824.6133,403.406,192.8021,0,0,0,0,100,0),
+(@PATH,5,809.0944,408.0469,192.8021,0,0,0,0,100,0),
+(@PATH,6,803.2555,409.021,192.8021,0,0,0,0,100,0),
+(@PATH,7,798.0318,415.624,192.8021,0,0,0,0,100,0),
+(@PATH,8,797.907,434.2558,192.8021,0,0,0,0,100,0),
+(@PATH,9,803.9134,446.4958,192.8102,0,0,0,0,100,0),
+(@PATH,10,822.2453,446.5771,192.8121,0,0,0,0,100,0),
+(@PATH,11,832.8823,444.5272,192.8021,0,0,0,0,100,0),
+(@PATH,12,841.865,440.6642,192.8021,0,0,0,0,100,0),
+(@PATH,13,857.7858,440.4023,192.8021,0,0,0,0,100,0),
+(@PATH,14,868.998,422.5621,192.8202,0,0,0,0,100,0),
+(@PATH,15,892.9637,421.5781,192.8236,0,0,0,0,100,0),
+(@PATH,16,869.101,417.053,192.80818,0,0,0,0,100,0);
+-- 0xF13059AC00000B10 .go 863.5932 404.4617 192.8021
+
+-- Pathing for Sister of Pleasure Entry: 22964
+SET @NPC := 53057;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=865.2386,`position_y`=401.9532,`position_z`=192.8021 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,865.2386,401.9532,192.8021,0,0,0,0,100,0),
+(@PATH,2,857.3129,397.2269,192.8021,0,0,0,0,100,0),
+(@PATH,3,840.8286,396.3472,192.8021,0,0,0,0,100,0),
+(@PATH,4,823.7538,400.5318,192.8021,0,0,0,0,100,0),
+(@PATH,5,808.6007,405.0878,192.8021,0,0,0,0,100,0),
+(@PATH,6,800.9027,407.1597,192.8021,0,0,0,0,100,0),
+(@PATH,7,795.0319,415.6039,192.8021,0,0,0,0,100,0),
+(@PATH,8,795.2138,435.5774,192.8021,0,0,0,0,100,0),
+(@PATH,9,803.9001,449.4958,192.8102,0,0,0,0,100,0),
+(@PATH,10,822.8130,449.5229,192.8121,0,0,0,0,100,0),
+(@PATH,11,834.0675,447.2832,192.8021,0,0,0,0,100,0),
+(@PATH,12,841.9143,443.6638,192.8021,0,0,0,0,100,0),
+(@PATH,13,860.3258,441.9986,192.8021,0,0,0,0,100,0),
+(@PATH,14,869.1211,425.5596,192.8202,0,0,0,0,100,0),
+(@PATH,15,893.0868,424.5756,192.8236,0,0,0,0,100,0),
+(@PATH,16,868.987,420.166,192.80742,0,0,0,0,100,0);
+
+DELETE FROM `creature_formations` WHERE `leaderGUID`=52850;
+INSERT INTO `creature_formations` (`leaderGUID`,`memberGUID`,`dist`,`angle`,`groupAI`) VALUES
+(52850,52850,0,0,2),
+(52850,53057,3,270,2);
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_12_00_world_sai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_12_00_world_sai.sql
new file mode 100644
index 00000000000..cf2c80f580f
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_12_00_world_sai.sql
@@ -0,0 +1,7 @@
+-- Fixes Blowing Hodir's Horn (12977)
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=29974;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=29974 AND `source_type`=0;
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(29974, 0, 0, 0, 0, 0, 100, 0, 1000, 5000, 8000, 13000, 11, 57454, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Niffelem Forefather - IC - Cast Ice Spike'),
+(29974, 0, 1, 2, 8, 0, 100, 0, 55983, 0, 0, 0, 33, 30138, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Niffelem Forefather - On Spellhit - Give Kill Credit'),
+(29974, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Niffelem Forefather - Linked with Previous Event Despawn');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_12_01_world_eai.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_12_01_world_eai.sql
new file mode 100644
index 00000000000..c36b6d0f3c6
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_12_01_world_eai.sql
@@ -0,0 +1 @@
+DELETE FROM `creature_ai_scripts` WHERE `creature_id` = 29974;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_13_00_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_13_00_world_misc.sql
new file mode 100644
index 00000000000..b34e96a0811
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_13_00_world_misc.sql
@@ -0,0 +1,5 @@
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=40094;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(13,1,40094,0,0,31,0,3,22953,0,0,'','Spell summom channel targets Wrathbone Flayer');
+UPDATE `creature_template` SET `AIName`= '', `ScriptName` = 'npc_wrathbone_flayer' WHERE `entry`=22953;
+DELETE FROM smart_scripts WHERE entryorguid=22953;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_14_00_world_errors.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_14_00_world_errors.sql
new file mode 100644
index 00000000000..f6ce6c2c0aa
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_14_00_world_errors.sql
@@ -0,0 +1,4 @@
+-- Fix "There is no waypoint which links to the waypoint script 332"
+
+DELETE FROM `waypoint_scripts` WHERE `id`=332;
+DELETE FROM `db_script_string` WHERE `entry`=2000005146;
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_14_01_world_item_template.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_14_01_world_item_template.sql
new file mode 100644
index 00000000000..ab372605f4b
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_14_01_world_item_template.sql
@@ -0,0 +1,14 @@
+UPDATE `item_template` SET `Flags`=0x80000000 WHERE `entry`=23614;
+UPDATE `item_template` SET `Flags`=0x80000800 WHERE `entry`=28635;
+UPDATE `item_template` SET `Flags`=0x80000800 WHERE `entry`=28636;
+UPDATE `item_template` SET `Flags`=0x80000800 WHERE `entry`=28637;
+UPDATE `item_template` SET `Flags`=0x80000000 WHERE `entry`=30503;
+UPDATE `item_template` SET `Flags`=0x80000000 WHERE `entry`=34868;
+UPDATE `item_template` SET `Flags`=0x80000000 WHERE `entry`=37020;
+UPDATE `item_template` SET `Flags`=0x80010000 WHERE `entry`=37200;
+UPDATE `item_template` SET `Flags`=0x80000040 WHERE `entry`=40652;
+UPDATE `item_template` SET `Flags`=0x80000040 WHERE `entry`=40970;
+UPDATE `item_template` SET `Flags`=0x80000800 WHERE `entry`=41843;
+UPDATE `item_template` SET `Flags`=0x80000800 WHERE `entry`=42782;
+
+ALTER TABLE `item_template` CHANGE `Flags` `Flags` int(10) unsigned NOT NULL DEFAULT '0';
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_15_00_world_gossip.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_15_00_world_gossip.sql
new file mode 100644
index 00000000000..33467ad43be
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_15_00_world_gossip.sql
@@ -0,0 +1,25 @@
+-- Add SAI for Sputtervalve <Independent Contractor> Quest 6981
+UPDATE `creature_template` SET `gossip_menu_id`=21,`ScriptName`='' WHERE `entry`=3442;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=3442 AND `source_type`=0 AND `id`=1;
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(3442, 0, 1, 0, 62, 0, 100, 0, 21, 1, 0, 0, 15, 6981, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Sputtervalve - Gossip Option 1 - Complete quest 6981');
+-- Gossip Menu
+DELETE FROM `gossip_menu` WHERE `entry`=21199;
+DELETE FROM `gossip_menu` WHERE `entry` IN (21,22,21340);
+INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES
+('21','518'), ('21','519'), ('22','520'), (21340,2013);
+-- Gossip Options
+DELETE FROM `gossip_menu_option` WHERE `menu_id`=21;
+INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`) VALUES
+(21,0,0, 'How can I help?',1,1,22),
+(21,1,0, 'Can you tell me about this shard?',1,1,21340);
+-- Gossip Menu Conditions
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=14 AND `SourceGroup`=21;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(15,21,518,0,0,27,0,10,3,0,0,'','Gossip text requires level 10 or higher'),
+(15,21,519,0,0,27,0,10,2,0,0,'','Gossip text requires lower than level 10');
+-- Gossip Options Conditions
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=21;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(15,21,0,0,0,27,0,10,3,0,0,'','Gossip Option requires level 10 or higher'),
+(15,21,1,0,0,9,0,6981,0,0,0,'','Gossip Option requires quest not complete');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_15_01_world_gossip.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_15_01_world_gossip.sql
new file mode 100644
index 00000000000..b59feae2c5c
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_15_01_world_gossip.sql
@@ -0,0 +1,15 @@
+-- Gossip fixup for Drull and Tog'thar
+UPDATE `creature_template` SET `gossip_menu_id`=262 WHERE `entry`=2239;
+DELETE FROM `gossip_menu` WHERE `entry` IN (261,262,263);
+INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES
+('261','760'), ('262','759'), ('263','762');
+-- Gossip Options
+DELETE FROM `gossip_menu_option` WHERE `menu_id` IN (262,264);
+INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`) VALUES
+(262,0,0, 'Where is the key to this lock?',1,1,261),
+(264,1,0, 'Where is the key to this lock?',1,1,263);
+-- Gossip Options Conditions
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup` IN (262,264);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(15,262,0,0,0,9,0,498,0,0,0,'','Gossip Option requires quest not complete'),
+(15,264,1,0,0,9,0,498,0,0,0,'','Gossip Option requires quest not complete');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_15_02_world_gossip.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_15_02_world_gossip.sql
new file mode 100644
index 00000000000..9e54b17899a
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_15_02_world_gossip.sql
@@ -0,0 +1,8 @@
+-- Gossip fixup for Morridune
+UPDATE `creature_template` SET `gossip_menu_id`=321 WHERE `entry`=6729;
+DELETE FROM `gossip_menu` WHERE `entry` IN (321);
+INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES (321,818);
+-- Gossip Options
+DELETE FROM `gossip_menu_option` WHERE `menu_id` IN (321);
+INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`) VALUES
+(321,0,0, 'Please port me to Darnassus.',1,1,0);
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_15_03_world_gossip.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_15_03_world_gossip.sql
new file mode 100644
index 00000000000..1193522b273
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_15_03_world_gossip.sql
@@ -0,0 +1,37 @@
+-- Gossip fixup for Aleanna Edune
+UPDATE `creature_template` SET `gossip_menu_id`=361 WHERE `entry`=24734;
+DELETE FROM `gossip_menu` WHERE `entry` IN (361);
+INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES (361,838);
+
+-- Gossip fixup for Marli Wishrunner
+UPDATE `creature_template` SET `gossip_menu_id`=1421 WHERE `entry`=7773;
+DELETE FROM `gossip_menu` WHERE `entry` IN (1421);
+INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES (1421,2053);
+
+-- Gossip fixup for Kalin Windflight "This guy may be missing a script"
+UPDATE `creature_template` SET `gossip_menu_id`=1422 WHERE `entry`=7772;
+DELETE FROM `gossip_menu` WHERE `entry` IN (1422);
+INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES (1422,2054);
+-- Gossip Options
+DELETE FROM `gossip_menu_option` WHERE `menu_id` IN (1422);
+INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`) VALUES
+(1422,0,1, 'Can you help me get down?',3,128,0);
+
+-- Gossip fixup for Henry Stern
+UPDATE `creature_template` SET `gossip_menu_id`=1443 WHERE `entry`=8696;
+DELETE FROM `gossip_menu` WHERE `entry` IN (1442,1443,1444,1501,1502);
+INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES
+(1442,2115),(1443,2113),(1444,2114),(1501,2173),(1502,2174);
+-- Gossip Options
+DELETE FROM `gossip_menu_option` WHERE `menu_id` IN (1443);
+INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`) VALUES
+(1443,0,0, 'You can cook? So can I! Is there a recipe you can teach me?',1,1,0),
+(1443,1,0, 'You''re an alchemist? So am I. Perhaps you can teach me what you know...',1,1,0);
+
+-- Gossip Options Conditions
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=1443;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(15,1443,0,0,0,7,0,185,0,0,0,0,'','Gossip Option requires cooking skill'),
+(15,1443,0,0,1,25,0,13028,0,0,1,0,'','Gossip Option requires player not learned spell'),
+(15,1443,1,0,0,7,0,171,0,0,0,0,'','Gossip Option requires alchemy skill'),
+(15,1443,1,0,1,25,0,3451,0,0,1,0,'','Gossip Option requires player not learned spell');
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_16_00_world_misc.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_16_00_world_misc.sql
new file mode 100644
index 00000000000..449919e44e2
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_16_00_world_misc.sql
@@ -0,0 +1,19 @@
+-- No longer used as of patch 3.3.0
+DELETE FROM `areatrigger_teleport` WHERE `id`=4156;
+
+UPDATE `game_graveyard_zone` SET `faction`=469 WHERE `id`=1308; -- Alliance Only
+
+DELETE FROM `game_graveyard_zone` WHERE `id`=1309;
+INSERT INTO `game_graveyard_zone` (`id`, `ghost_zone`, `faction`) VALUES
+(1309, 3456, 67); -- Dragonblight, Forsaken East GY - Horde Only
+
+DELETE FROM `gameobject` WHERE `guid` IN (5216, 5222);
+INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES
+(5216, 202277, 533, 3, 1, 3495.97, -5357.84, 144.9645, 0.5410506, 0, 0, 0, 1, 7200, 255, 1), -- Orb of Naxxramas
+(5222, 202278, 533, 3, 1, 2997.675, -3437.799, 304.1996, 1.151916, 0, 0, 0, 1, 7200, 255, 1); -- Orb of Naxxramas
+
+-- Teleportation positions for Orbs from sniff - TODO: add db coords for spell 72613
+DELETE FROM `spell_target_position` WHERE `id` IN (28444, 72617);
+INSERT INTO `spell_target_position` (`id`, `target_map`, `target_position_x`, `target_position_y`, `target_position_z`, `target_orientation`) VALUES
+(28444, 533, 3005.74, -3434.27, 304.196, 0), -- Portal Effect: Deathknight Wing
+(72617, 533, 3498.22, -5349.36, 144.969, 1.32679); -- Naxxramas Teleport - Sapphiron Entry
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_16_01_world_gameobject.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_16_01_world_gameobject.sql
new file mode 100644
index 00000000000..ef5624ee090
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_16_01_world_gameobject.sql
@@ -0,0 +1 @@
+UPDATE `gameobject` SET `spawnMask`=3 WHERE `guid` IN (5216,5222);
diff --git a/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_16_02_world_conditions.sql b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_16_02_world_conditions.sql
new file mode 100644
index 00000000000..5b89e1b93d3
--- /dev/null
+++ b/sql/old/3.3.5a/TDB51_to_TDB52_updates/world/2013_07_16_02_world_conditions.sql
@@ -0,0 +1 @@
+UPDATE `conditions` SET `ConditionValue2`=1 WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=1443 AND `ConditionTypeOrReference`=7 AND `ConditionValue1` IN (171,185);
diff --git a/sql/updates/characters/2013_07_19_00_characters_corpse.sql b/sql/updates/characters/2013_07_19_00_characters_corpse.sql
new file mode 100644
index 00000000000..da52c91e875
--- /dev/null
+++ b/sql/updates/characters/2013_07_19_00_characters_corpse.sql
@@ -0,0 +1 @@
+ALTER TABLE `corpse` CHANGE `phaseMask` `phaseMask` int(10) unsigned NOT NULL DEFAULT '1';
diff --git a/sql/updates/world/2013_07_17_00_world_version.sql b/sql/updates/world/2013_07_17_00_world_version.sql
new file mode 100644
index 00000000000..a780826ad48
--- /dev/null
+++ b/sql/updates/world/2013_07_17_00_world_version.sql
@@ -0,0 +1 @@
+UPDATE `version` SET `db_version`='TDB 335.52', `cache_id`=52 LIMIT 1;
diff --git a/sql/updates/world/2013_07_17_01_world_conditions.sql b/sql/updates/world/2013_07_17_01_world_conditions.sql
new file mode 100644
index 00000000000..4528d39943c
--- /dev/null
+++ b/sql/updates/world/2013_07_17_01_world_conditions.sql
@@ -0,0 +1,10 @@
+-- Gossip Menu Conditions
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=14 AND `SourceGroup`=21;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(14,21,518,0,0,27,0,10,3,0,0,'','Gossip text requires level 10 or higher'),
+(14,21,519,0,0,27,0,10,2,0,0,'','Gossip text requires lower than level 10');
+-- Gossip Options Conditions
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=21;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(15,21,0,0,0,27,0,10,3,0,0,'','Gossip Option requires level 10 or higher'),
+(15,21,1,0,0,9,0,6981,0,0,0,'','Gossip Option requires quest not complete');
diff --git a/sql/updates/world/2013_07_17_02_world_gossip.sql b/sql/updates/world/2013_07_17_02_world_gossip.sql
new file mode 100644
index 00000000000..0ec238efb05
--- /dev/null
+++ b/sql/updates/world/2013_07_17_02_world_gossip.sql
@@ -0,0 +1,22 @@
+-- Add SAI for Royal Historian Archesonus Quest 3702
+UPDATE `creature_template` SET `AIName`= 'SmartAI',`ScriptName`= '' WHERE `entry`=8879;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=8879 AND `source_type`=0;
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(8879, 0, 0, 1, 62, 0, 100, 0, 1563, 0, 0, 0, 15, 3702, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Royal Historian Archesonus - Gossip Option 0 - Complete quest 3702'),
+(8879, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Royal Historian Archesonus - Gossip Option 0 - Close Gossip');
+-- Gossip Menu
+DELETE FROM `gossip_menu` WHERE `entry` IN (1562,1563,1564,1565);
+INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES
+(1562,2238), (1563,2239), (1564,2237), (1565,2236);
+-- Gossip Options
+DELETE FROM `gossip_menu_option` WHERE `menu_id` IN (1561,1562,1563,1564,1565);
+INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`) VALUES
+(1561,0,0, 'I am ready, Historian Archesonus.',1,1,1565),
+(1562,0,0, 'Unbelievable! How dare they??',1,1,1563),
+(1563,0,0, 'Of course I will help!',1,1,0),
+(1564,0,0, 'Interesting, continue please.',1,1,1562),
+(1565,0,0, 'That is tragic. How did this happen?',1,1,1564);
+-- Gossip Options Conditions
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=1561;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(15,1561,0,0,0,9,0,3702,0,0,0,'','Gossip Option requires quest taken');
diff --git a/sql/updates/world/2013_07_17_03_world_gossip.sql b/sql/updates/world/2013_07_17_03_world_gossip.sql
new file mode 100644
index 00000000000..f3c79890fde
--- /dev/null
+++ b/sql/updates/world/2013_07_17_03_world_gossip.sql
@@ -0,0 +1,53 @@
+-- Captain Vanessa Beltis
+UPDATE `creature_template` SET `gossip_menu_id`=1641 WHERE `entry`=8380;
+-- Gossip Menu
+DELETE FROM `gossip_menu` WHERE `entry` IN (1641);
+INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES (1641,2293);
+
+-- Franclorn Forgewright 8888
+-- Gossip Menu
+DELETE FROM `gossip_menu` WHERE `entry` IN (1664,1665,1666);
+INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES
+(1664,2316), (1665,2317), (1666,2318);
+-- Gossip Options
+DELETE FROM `gossip_menu_option` WHERE `menu_id` IN (1663,1664,1665);
+INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`) VALUES
+(1663,0,0, 'Amazing! I''ve never spoken to a ghost. I wish to learn!',1,1,1664),
+(1664,0,0, 'Continue please.',1,1,1665),
+(1665,0,0, 'Fascinating. Please, tell me more.',1,1,1666);
+
+-- Ribbly Screwspigot
+UPDATE `creature_template` SET `gossip_menu_id`=1970 WHERE `entry`=9543;
+-- Gossip Menu
+DELETE FROM `gossip_menu` WHERE `entry` IN (1970);
+INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES (1970,2643);
+
+-- Arei "npc has two text, possible scripting required"
+UPDATE `creature_template` SET `gossip_menu_id`=2063 WHERE `entry`=9598;
+-- Gossip Menu
+DELETE FROM `gossip_menu` WHERE `entry` IN (2063);
+INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES (2063,2726), (2063,2809);
+
+-- Add SAI for Un'Goro Crystal Pylon Quests 4285, 4287, 4288
+UPDATE `gameobject_template` SET `AIName`= 'SmartGameObjectAI',`ScriptName`= '' WHERE `entry` IN (164955,164957,164956);
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (164955,164957,164956) AND `source_type`=1;
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(164955, 1, 0, 0, 62, 0, 100, 0, 2177, 0, 0, 0, 15, 4285, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Northern Crystal Pylon - Gossip Option 0 - Complete quest 4285'),
+(164957, 1, 0, 0, 62, 0, 100, 0, 2178, 0, 0, 0, 15, 4287, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Eastern Crystal Pylon - Gossip Option 0 - Complete quest 4287'),
+(164956, 1, 0, 0, 62, 0, 100, 0, 2179, 0, 0, 0, 15, 4288, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Western Crystal Pylon - Gossip Option 0 - Complete quest 4288');
+-- Gossip Menu
+DELETE FROM `gossip_menu` WHERE `entry` IN (2177,2178,2179,2180,2181,2182);
+INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES
+(2177,2810),(2177,2933),(2178,2810),(2178,2933),(2179,2810),(2179,2933),(2180,2811),(2181,2812),(2182,2813);
+-- Gossip Options
+DELETE FROM `gossip_menu_option` WHERE `menu_id` IN (2177,2178,2179);
+INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`) VALUES
+(2177,0,0, 'I want to examine this pylon.',1,1,2181),
+(2178,0,0, 'I want to examine this pylon.',1,1,2180),
+(2179,0,0, 'I want to examine this pylon.',1,1,2182);
+-- Gossip Options Conditions
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup` IN (2177,2178,2179);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(15,2177,0,0,0,9,0,4285,0,0,0,'','Gossip Option requires quest not complete'),
+(15,2178,0,0,0,9,0,4287,0,0,0,'','Gossip Option requires quest not complete'),
+(15,2179,0,0,0,9,0,4288,0,0,0,'','Gossip Option requires quest not complete');
diff --git a/sql/updates/world/2013_07_17_04_world_spell_script_names.sql b/sql/updates/world/2013_07_17_04_world_spell_script_names.sql
new file mode 100644
index 00000000000..acec312eb92
--- /dev/null
+++ b/sql/updates/world/2013_07_17_04_world_spell_script_names.sql
@@ -0,0 +1,4 @@
+UPDATE `spell_script_names` SET `ScriptName`='spell_gen_clone' WHERE `ScriptName`='spell_generic_clone';
+UPDATE `spell_script_names` SET `ScriptName`='spell_gen_clone_weapon' WHERE `ScriptName`='spell_generic_clone_weapon';
+UPDATE `spell_script_names` SET `ScriptName`='spell_gen_30pct_count_pct_from_max_hp' WHERE `ScriptName`='spell_gen_touch_the_nightmare';
+UPDATE `spell_script_names` SET `ScriptName`='spell_gen_creature_permanent_feign_death' WHERE `ScriptName`='spell_creature_permanent_feign_death';
diff --git a/sql/updates/world/2013_07_18_00_world_conditions.sql b/sql/updates/world/2013_07_18_00_world_conditions.sql
new file mode 100644
index 00000000000..90a16d32fb3
--- /dev/null
+++ b/sql/updates/world/2013_07_18_00_world_conditions.sql
@@ -0,0 +1,2 @@
+-- Fix There's Something About the Squire
+UPDATE `conditions` SET `ConditionTarget`=1 WHERE `SourceTypeOrReferenceId`=17 AND `SourceGroup`=0 AND `SourceEntry`=63126 AND `ConditionTypeOrReference`=9;
diff --git a/sql/updates/world/2013_07_18_01_world_koralon.sql b/sql/updates/world/2013_07_18_01_world_koralon.sql
new file mode 100644
index 00000000000..a67df5222ca
--- /dev/null
+++ b/sql/updates/world/2013_07_18_01_world_koralon.sql
@@ -0,0 +1,15 @@
+DELETE FROM `spell_script_names` WHERE `spell_id` IN (66725,68161,66808,68160,66765,67333,66809,67331);
+INSERT INTO `spell_script_names` (`spell_id` ,`ScriptName`) VALUES
+(66725, 'spell_koralon_meteor_fists'),
+(68161, 'spell_koralon_meteor_fists'),
+(66808, 'spell_flame_warder_meteor_fists'),
+(68160, 'spell_flame_warder_meteor_fists'),
+(66765, 'spell_koralon_meteor_fists_damage'),
+(67333, 'spell_koralon_meteor_fists_damage'),
+(66809, 'spell_koralon_meteor_fists_damage'),
+(67331, 'spell_koralon_meteor_fists_damage');
+
+DELETE FROM `spell_proc_event` WHERE `entry` IN (66808,68160);
+INSERT INTO `spell_proc_event` (`entry`,`SchoolMask`,`SpellFamilyName`,`SpellFamilyMask0`,`SpellFamilyMask1`,`SpellFamilyMask2`,`procFlags`,`procEx`,`ppmRate`,`CustomChance`,`Cooldown`) VALUES
+(66808,0,0,0,0,0,0x4,0,0,0,0),
+(68160,0,0,0,0,0,0x4,0,0,0,0);
diff --git a/sql/updates/world/2013_07_18_02_world_spell_script_names.sql b/sql/updates/world/2013_07_18_02_world_spell_script_names.sql
new file mode 100644
index 00000000000..89463a861aa
--- /dev/null
+++ b/sql/updates/world/2013_07_18_02_world_spell_script_names.sql
@@ -0,0 +1,5 @@
+DELETE FROM `spell_script_names` WHERE `spell_id` IN (69051,69023,69048);
+INSERT INTO `spell_script_names` (`spell_id` ,`ScriptName`) VALUES
+(69051, 'spell_devourer_of_souls_mirrored_soul'),
+(69023, 'spell_devourer_of_souls_mirrored_soul_proc'),
+(69048, 'spell_devourer_of_souls_mirrored_soul_target_selector');
diff --git a/sql/updates/world/2013_07_18_02_world_the_flesh_giant_slayer.sql b/sql/updates/world/2013_07_18_02_world_the_flesh_giant_slayer.sql
new file mode 100644
index 00000000000..c8d7773c461
--- /dev/null
+++ b/sql/updates/world/2013_07_18_02_world_the_flesh_giant_slayer.sql
@@ -0,0 +1,26 @@
+-- TEXT INSERTS
+DELETE FROM `creature_text` WHERE `entry` IN (31301, 31428, 31306);
+INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`) VALUES
+(31301, 0, 0, "You dare to think you have thwarted my will? That you have broken my plans?", 12, 0, 100, 25, 0, 0, "LK SAY 1"),
+(31301, 1, 0, "You have accomplished nothing!", 12, 0, 100, 22, 0, 0, "LK SAY 2"),
+(31301, 2, 0, "Your feeble resistance has only hastened your doom.", 12, 0, 100, 25, 0, 0, "LK SAY 3"),
+(31301, 3, 0, "So spout your platitudes and flail until you are spent. In the end, you will be mine, and Morbidus will be the harbinger of your death!", 12, 0, 100, 22, 0, 0, "LK SAY 4"),
+(31301, 4, 0, "Morbidus, show them what happens to those who defy the will of their king!", 12, 0, 100, 25, 0, 0, "LK SAY 5"),
+(31428, 0, 0, "You will pay for what you've done! For the Argent Crusade!", 12, 0, 100, 0, 0, 0, "OLAKIN SAY 1"),
+(31306, 0, 0, "Knights of the Ebon Blade, prepare for battle!", 12, 0, 100, 1, 0, 0, 'DHAKAR SAY 1');
+
+-- ScriptName Updates
+UPDATE `creature_template` SET `ScriptName`='npc_margrave_dhakar' WHERE `entry`=31306;
+UPDATE `creature_template` SET `ScriptName`='npc_morbidus' WHERE `entry`=30698;
+
+-- Template updates
+UPDATE `creature_template` SET `faction_A`=2102, `faction_H`=2102, `exp`=2, `minlevel`=80, `maxlevel`=80, `unit_flags`=`unit_flags`|832, `speed_run`=0.99206, `VehicleId`=271 WHERE `entry`=30698; -- Morbidus
+UPDATE `creature_template` SET `faction_A`=1770, `faction_H`=1770, `npcflag`=`npcflag`|1, `gossip_menu_id`=10060 WHERE `entry`=31306; -- Margrave Dhakar
+
+UPDATE `creature_model_info` SET `bounding_radius`=0.465,`combat_reach`=7.5,`gender`=0 WHERE `modelid`=31176; -- Morbidus
+UPDATE `creature_model_info` SET `bounding_radius`=0.3825,`combat_reach`=1.875,`gender`=0 WHERE `modelid`=27558; -- Margrave Dhakar
+
+DELETE FROM `creature_template_addon` WHERE `entry` IN (30698, 31306);
+INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
+(30698,0,0,1,0, NULL), -- Morbidus
+(31306,0,0,1,0, NULL); -- Margrave Dhakar
diff --git a/sql/updates/world/2013_07_18_03_world_equipment.sql b/sql/updates/world/2013_07_18_03_world_equipment.sql
new file mode 100644
index 00000000000..4097327637b
--- /dev/null
+++ b/sql/updates/world/2013_07_18_03_world_equipment.sql
@@ -0,0 +1,4 @@
+-- equipment for Margrave Dhakar
+DELETE FROM `creature_equip_template` WHERE `entry` = 31306;
+INSERT INTO `creature_equip_template` (`entry`, `id`, `itemEntry1`, `itemEntry2`, `itemEntry3`) VALUES
+(31306, 1, 41371, 0, 0);
diff --git a/sql/updates/world/2013_07_19_00_world_misc.sql b/sql/updates/world/2013_07_19_00_world_misc.sql
new file mode 100644
index 00000000000..b5f08a058e6
--- /dev/null
+++ b/sql/updates/world/2013_07_19_00_world_misc.sql
@@ -0,0 +1,2 @@
+ALTER TABLE `gameobject` CHANGE `phaseMask` `phaseMask` int(10) unsigned NOT NULL DEFAULT '1';
+ALTER TABLE `creature` CHANGE `phaseMask` `phaseMask` int(10) unsigned NOT NULL DEFAULT '1';
diff --git a/sql/updates/world/2013_07_20_00_world_gameobject.sql b/sql/updates/world/2013_07_20_00_world_gameobject.sql
new file mode 100644
index 00000000000..7262b76ffef
--- /dev/null
+++ b/sql/updates/world/2013_07_20_00_world_gameobject.sql
@@ -0,0 +1,15 @@
+-- DTK instance entrance portals
+DELETE FROM `gameobject` WHERE `guid`=151225;
+SET @OGUID := 6120; -- (need 3)
+DELETE FROM `gameobject` WHERE `guid` BETWEEN @OGUID+0 AND @OGUID+2;
+INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
+(@OGUID+0,192585,571,1,1,4774.532,-2020.723,232.3105,-1.579522,0,0,0.9999905,0.004363241,120,255,1),
+(@OGUID+1,192776,571,1,1,4774.532,-2020.723,232.3105,-1.579522,0,0,0.9999905,0.004363241,120,255,1),
+(@OGUID+2,192775,571,1,1,4774.532,-2020.723,232.3105,-1.579522,0,0,0.9999905,0.004363241,120,255,1);
+
+-- Gundrak south instance entrance portals
+SET @OGUID := 5287; -- (need 2)
+DELETE FROM `gameobject` WHERE `guid` BETWEEN @OGUID+0 AND @OGUID+1;
+INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
+(@OGUID+0,192635,571,1,1,6700.195,-4662.38,446.7864,3.909541,0,0,0.3746067,0.9271838,120,255,1),
+(@OGUID+1,192170,571,1,1,6700.195,-4662.38,446.7864,3.909541,0,0,0.3746067,0.9271838,120,255,1);
diff --git a/sql/updates/world/2013_07_20_01_world_misc.sql b/sql/updates/world/2013_07_20_01_world_misc.sql
new file mode 100644
index 00000000000..273d9070930
--- /dev/null
+++ b/sql/updates/world/2013_07_20_01_world_misc.sql
@@ -0,0 +1,170 @@
+/*
+ # Collection of Feedback-PatchFixes / 20.07.2013
+ #
+ # Including sql codestyle updates and check for accuracy. (one by one)
+ # by FireEmerald / Thx @DDuarte for the base pull request.
+ #
+ # Including:
+ # DB/Spell: Update: Correct Spell Power Coefficient (107.43%) for Tranquility | by lendan (@6232)
+ # DB/LOS: Add: Ignore LOS for Ignite Horde Siege Engine | by dr-j (@6718)
+ # DB/SmartAI: Update: Correct casted spell by Defias Rogue Wizard | by Rochet2 (@9976)
+ # DB/Quest: Fix: Bloody Imp-ossible! (10924) | by Kirkhammett (@10276)
+ # DB/Quest: Fix: Mistcaller Yngvar (14102) / Add missing event script and conditions. | (@3563)
+ # DB/SmartAI: Update: Give quest credit for The Ring of Blood: The Final Challenge (9977) | by JunkyBulgaria (@7724)
+ # DB/Waypoints: Add: Missing waypoints for Mmmrrrggglll | by Hobbilis (@9602)
+ # DB/Conditions: Add: Missing conditions for Displacing Temporal Rift | by FireEmerald
+*/
+
+-- DB/Spell: Update: Correct Spell Power Coefficient (107.43%) for Tranquility | by lendan (@6232)
+SET @SPELL := 44203; -- Tranquility
+
+UPDATE `spell_bonus_data` SET `direct_bonus` = 1.0743 WHERE `entry` = @SPELL;
+
+-- DB/Quest: Fix: A Dire Situation (10506) | by Rohlik & Exodius (@6283)
+SET @WOLF := 20058; -- Bloodmaul Dire Wolf
+SET @SPELL_INVIS := 18950; -- Invisibility and Stealth Detection
+SET @WOLF_TRIGGER := 21176; -- Bloodmaul Dire Wolf Trigger
+SET @SPELL_POWDER := 36310; -- Rina's Diminution Powder
+
+DELETE FROM `creature_ai_scripts` WHERE `creature_id` = @WOLF;
+UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = @WOLF;
+
+DELETE FROM `smart_scripts` WHERE `entryorguid` = @WOLF AND `source_type` = 0;
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(@WOLF, 0, 0, 0, 54, 0, 100, 0, 0, 0, 0, 0, 75, @SPELL_INVIS, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bloodmaul Dire Wolf - On spawn - Add Invisibility and Stealth Detection Aura on self');
+
+DELETE FROM `event_scripts` WHERE `id` = 13584;
+INSERT INTO `event_scripts` (`id`, `delay`, `command`, `datalong`) VALUES
+(13584, 2, 8, @WOLF_TRIGGER);
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 17 AND `SourceEntry` = @SPELL_POWDER;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(17,0,@SPELL_POWDER,0,31,1,3,@WOLF,0,0,0,'', 'Rina''s Diminution Powder can be used only on Bloodmaul Dire Wolf');
+
+-- DB/LOS: Add: Ignore LOS for Ignite Horde Siege Engine | by dr-j (@6718)
+SET @IGNITE := 32979; -- Ignite Horde Siege Engine
+
+DELETE FROM `disables` WHERE `sourceType` = 0 AND `entry` = @IGNITE;
+INSERT INTO `disables`(`sourceType`,`entry`,`flags`,`comment`) VALUES
+(0,@IGNITE,64,'Ignore LOS on Ignite Horde Siege Engine');
+
+-- DB/SmartAI: Update: Correct casted spell by Defias Rogue Wizard | by Rochet2 (@9976)
+SET @WIZARD := 474; -- Rogue Wizard
+SET @SPELL := 13322; -- Frostbolt
+
+UPDATE `smart_scripts` SET `action_param2`= @SPELL WHERE `entryorguid` = @WIZARD AND `source_type` = 0 AND `id` = 0 AND `link` = 0;
+
+-- DB/Quest: Fix: Bloody Imp-ossible! (10924) | by Kirkhammett (@10276)
+SET @CHASER := 18884; -- Warp Chaser
+SET @ZEPPIT := 22484; -- Zeppit
+SET @SPELL_INVIS := 32942; -- Phasing Invisibility
+SET @SPELL_CHARGE := 37417; -- Warp Charge
+SET @SPELL_BITE := 32739; -- Venomous Bite
+SET @SPELL_BLOOD := 39244; -- Gather Warp Chaser Blood
+
+UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = @CHASER;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id` = @CHASER;
+
+DELETE FROM `smart_scripts` WHERE `entryorguid` = @CHASER;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@CHASER,0,0,0,11,0,100,0,0,0,0,0,11,@SPELL_INVIS,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Warp Chaser - On Spawn - Cast Phasing Invisibility'),
+(@CHASER,0,1,0,0,0,100,0,500,2000,7000,15000,11,@SPELL_CHARGE,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Warp Chaser - In Combat - Cast Charge'),
+(@CHASER,0,2,0,0,0,100,0,3000,5000,10000,15000,11,@SPELL_BITE,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Warp Chaser - In Combat - Cast Venomous Bite'),
+(@CHASER,0,3,0,6,0,100,0,0,0,0,0,45,1,1,0,0,0,0,19,@ZEPPIT,10,0,0,0,0,0, 'Warp Chaser - On Death - Set Data on Zeppit');
+
+UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = @ZEPPIT;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id` = @ZEPPIT;
+
+DELETE FROM `smart_scripts` WHERE `entryorguid` = @ZEPPIT;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@ZEPPIT,0,0,0,38,0,100,0,1,1,0,0,11,@SPELL_BLOOD,0,0,0,0,0,21,10,0,0,0,0,0,0, 'Zeppit - On Data Set - Cast on Master');
+
+-- DB/Quest: Fix: Mistcaller Yngvar (14102) / Add missing event script and conditions. | (@3563)
+SET @ENTRY := 34965; -- Mistcaller Yngvar
+SET @SPELL := 66621; -- Summon the Mistcaller
+SET @QUEST := 14102; -- Mistcaller Yngvar (Quest)
+
+DELETE FROM `event_scripts` WHERE `id` = 21997 AND `command` = 10;
+INSERT INTO `event_scripts` (`id`,`delay`,`command`,`datalong`,`datalong2`,`dataint`,`x`,`y`,`z`,`o`) VALUES
+(21997, 2, 10, @ENTRY, 120000, 0, 10181.96, 1183.417, 76.12115, 5.934119);
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 17 AND `SourceEntry` = @SPELL;
+INSERT INTO `conditions` (SourceTypeOrReferenceId, SourceGroup, SourceEntry, SourceId, ElseGroup, ConditionTypeOrReference, ConditionValue1, ConditionValue2, ConditionValue3, NegativeCondition, ErrorType, comment ) VALUES
+(17, 0, @SPELL, 0, 0, 29, @ENTRY, 40, 0, 1, 0, "Cant use Mistcallers Charm within 40 yards of Yngvar"),
+(17, 0, @SPELL, 0, 0, 28, @QUEST, 0, 0, 1, 0, "Cant use Mistcallers Charm, if player has quest objective completed, but not yet rewarded.");
+
+-- DB/SmartAI: Update: Give quest credit for The Ring of Blood: The Final Challenge (9977) | by JunkyBulgaria (@7724)
+SET @MOGOR := 18069; -- Mogor <Hero of the Warmaul>
+SET @QUEST := 9977; -- The Ring of Blood: The Final Challenge
+
+DELETE FROM `smart_scripts` WHERE `entryorguid` = @MOGOR AND `source_type` = 0 AND `id` = 14;
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(@MOGOR, 0, 14, 0, 6, 0, 100, 1, 0, 0, 0, 0, 15, @QUEST, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 'Mogor - On Death - Give Quest Credit');
+
+-- DB/Waypoints: Add: Missing waypoints for Mmmrrrggglll | by Hobbilis (@9602)
+SET @MURLOC := 15937; -- Mmmrrrggglll
+SET @GUID := 41792;
+SET @PATH := 417920;
+
+-- Set creature location
+UPDATE `creature` SET `MovementType`=2,`position_x`=8869.872,`position_y`=-5775.960,`position_z`=0.405, `spawnDist`=0, `currentwaypoint`=1 WHERE `guid`=@GUID;
+DELETE FROM `creature_addon` WHERE `guid`=@GUID;
+INSERT INTO `creature_addon` (`guid`, `path_id`, `bytes2`) VALUES (@GUID, @PATH, 1);
+
+-- Waypoint Data
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH, 1, 8880.688, -5754.608, 0.25531, 0, 0, 0, 0, 100, 0),
+(@PATH, 2, 8873.341, -5735.012, 0.43308, 0, 0, 0, 0, 100, 0),
+(@PATH, 3, 8862.790, -5722.625, 0.42263, 0, 0, 0, 0, 100, 0),
+(@PATH, 4, 8846.429, -5720.661, 0.49396, 0, 0, 0, 0, 100, 0),
+(@PATH, 5, 8836.920, -5726.737, 0.83736, 0, 0, 0, 0, 100, 0),
+(@PATH, 6, 8828.789, -5743.622, 0.82590, 0, 0, 0, 0, 100, 0),
+(@PATH, 7, 8818.041, -5755.890, 0.64673, 0, 0, 0, 0, 100, 0),
+(@PATH, 8, 8804.548, -5762.792, 0.51199, 0, 0, 0, 0, 100, 0),
+(@PATH, 9, 8791.789, -5762.271, 0.45083, 0, 0, 0, 0, 100, 0),
+(@PATH, 10, 8777.225, -5753.970, 0.55571, 0, 0, 0, 0, 100, 0),
+(@PATH, 11, 8776.860, -5738.229, 0.61609, 0, 0, 0, 0, 100, 0),
+(@PATH, 12, 8785.234, -5722.790, 0.75764, 0, 0, 0, 0, 100, 0),
+(@PATH, 13, 8786.402, -5701.790, 0.67103, 0, 0, 0, 0, 100, 0),
+(@PATH, 14, 8771.277, -5696.080, 0.67596, 0, 0, 0, 0, 100, 0),
+(@PATH, 15, 8758.604, -5694.220, 0.55669, 0, 0, 0, 0, 100, 0),
+(@PATH, 16, 8746.010, -5704.514, 0.50786, 0, 0, 0, 0, 100, 0),
+(@PATH, 17, 8735.815, -5722.942, 0.94607, 0, 0, 0, 0, 100, 0),
+(@PATH, 18, 8720.269, -5730.856, 0.89406, 0, 0, 0, 0, 100, 0),
+(@PATH, 19, 8706.965, -5730.076, 0.77437, 0, 0, 0, 0, 100, 0),
+(@PATH, 20, 8693.575, -5720.971, 0.86999, 0, 0, 0, 0, 100, 0),
+(@PATH, 21, 8679.183, -5710.540, 1.10842, 0, 0, 0, 0, 100, 0),
+(@PATH, 22, 8656.022, -5704.337, 1.80973, 0, 0, 0, 0, 100, 0),
+(@PATH, 23, 8640.976, -5691.507, 0.47690, 0, 0, 0, 0, 100, 0),
+(@PATH, 24, 8635.418, -5689.706, 0.53144, 0, 0, 0, 0, 100, 0),
+(@PATH, 25, 8620.438, -5687.679, 0.86486, 0, 0, 0, 0, 100, 0),
+(@PATH, 26, 8601.687, -5688.443, 0.49338, 1.930, 36000, 0, 0, 100, 0),
+(@PATH, 27, 8619.985, -5679.970, 0.75128, 0, 0, 0, 0, 100, 0),
+(@PATH, 28, 8635.668, -5671.577, 0.53144, 0, 0, 0, 0, 100, 0),
+(@PATH, 29, 8648.297, -5670.150, 0.49488, 0, 0, 0, 0, 100, 0),
+(@PATH, 30, 8664.989, -5679.421, 0.55752, 0, 0, 0, 0, 100, 0),
+(@PATH, 31, 8679.183, -5710.540, 1.10842, 0, 0, 0, 0, 100, 0),
+(@PATH, 32, 8693.575, -5720.971, 0.86999, 0, 0, 0, 0, 100, 0),
+(@PATH, 33, 8706.965, -5730.076, 0.77437, 0, 0, 0, 0, 100, 0),
+(@PATH, 34, 8721.716, -5745.012, 0.62278, 0, 0, 0, 0, 100, 0),
+(@PATH, 35, 8735.529, -5753.923, 1.24721, 0, 0, 0, 0, 100, 0),
+(@PATH, 36, 8767.193, -5758.179, 0.50536, 0, 0, 0, 0, 100, 0),
+(@PATH, 37, 8791.789, -5762.271, 0.45083, 0, 0, 0, 0, 100, 0),
+(@PATH, 38, 8804.548, -5762.792, 0.51199, 0, 0, 0, 0, 100, 0),
+(@PATH, 39, 8818.041, -5755.890, 0.64673, 0, 0, 0, 0, 100, 0),
+(@PATH, 40, 8828.789, -5743.622, 0.82590, 0, 0, 0, 0, 100, 0),
+(@PATH, 41, 8836.920, -5726.737, 0.83736, 0, 0, 0, 0, 100, 0),
+(@PATH, 42, 8846.429, -5720.661, 0.49396, 0, 0, 0, 0, 100, 0),
+(@PATH, 43, 8873.341, -5735.012, 0.43308, 0, 0, 0, 0, 100, 0),
+(@PATH, 44, 8880.688, -5754.608, 0.25531, 6.105, 60000, 0, 0, 100, 0);
+
+-- DB/Conditions: Add: Missing conditions for Displacing Temporal Rift | by FireEmerald
+SET @PARASITE := 10717; -- Temporal Parasite
+SET @SPELL := 16613; -- Displacing Temporal Rift
+SET @QUEST := 4971; -- A Matter of Time
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 17 AND `SourceEntry` = @SPELL;
+INSERT INTO `conditions` (SourceTypeOrReferenceId, SourceGroup, SourceEntry, SourceId, ElseGroup, ConditionTypeOrReference, ConditionValue1, ConditionValue2, ConditionValue3, NegativeCondition, ErrorType, comment ) VALUES
+(17, 0, @SPELL, 0, 0, 29, @PARASITE, 100, 0, 1, 0, "Cant use Temporal Displacer within 100 yards of Temporal Parasite"),
+(17, 0, @SPELL, 0, 0, 28, @QUEST, 0, 0, 1, 0, "Cant use Temporal Displacer, if player has quest objective completed, but not yet rewarded");
diff --git a/sql/updates/world/2013_07_23_00_world_misc.sql b/sql/updates/world/2013_07_23_00_world_misc.sql
new file mode 100644
index 00000000000..8e69c7bb785
--- /dev/null
+++ b/sql/updates/world/2013_07_23_00_world_misc.sql
@@ -0,0 +1,7 @@
+UPDATE `gameobject_template` SET `flags`=48, `ScriptName`='go_activation_crystal' WHERE `entry`=193611;
+
+UPDATE `creature_template` SET `flags_extra`=130, `ScriptName`='npc_violet_hold_arcane_sphere' WHERE `entry`=30837;
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=57930;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(13, 1, 57930, 0, 0, 32, 0, 16, 0, 0, 1, 0, 0, '', 'Spell Arcane Lightning hit players');
diff --git a/sql/updates/world/2013_07_23_02_world_creature_template.sql b/sql/updates/world/2013_07_23_02_world_creature_template.sql
new file mode 100644
index 00000000000..b55999040f1
--- /dev/null
+++ b/sql/updates/world/2013_07_23_02_world_creature_template.sql
@@ -0,0 +1 @@
+UPDATE `creature_template` SET `InhabitType` = 5 WHERE `entry` = 10184;
diff --git a/sql/updates/world/2013_07_24_00_world_spell_script_names.sql b/sql/updates/world/2013_07_24_00_world_spell_script_names.sql
new file mode 100644
index 00000000000..8c156fb2e57
--- /dev/null
+++ b/sql/updates/world/2013_07_24_00_world_spell_script_names.sql
@@ -0,0 +1,11 @@
+DELETE FROM `spell_script_names` WHERE `spell_id` IN (63310,50421,23780,33896,37594,37705,23551,23552,23572);
+INSERT INTO `spell_script_names`(`spell_id`, `ScriptName`) VALUES
+(63310,'spell_warl_glyph_of_shadowflame'),
+(50421,'spell_dk_scent_of_blood'),
+(23780,'spell_item_aegis_of_preservation'),
+(33896,'spell_item_desperate_defense'),
+(37594,'spell_pri_item_greater_heal_refund'),
+(37705,'spell_pal_item_healing_discount'),
+(23551,'spell_sha_item_lightning_shield'),
+(23552,'spell_sha_item_lightning_shield_trigger'),
+(23572,'spell_sha_item_mana_surge');
diff --git a/sql/updates/world/2013_07_24_01_world_spell_ranks_335.sql b/sql/updates/world/2013_07_24_01_world_spell_ranks_335.sql
new file mode 100644
index 00000000000..db1d9803596
--- /dev/null
+++ b/sql/updates/world/2013_07_24_01_world_spell_ranks_335.sql
@@ -0,0 +1,682 @@
+DELETE FROM `spell_ranks` WHERE `first_spell_id` IN (
+5923,
+5952,
+9452,
+9453,
+9799,
+11069,
+11070,
+11071,
+11078,
+11083,
+11094,
+11095,
+11100,
+11103,
+11108,
+11115,
+11119,
+11124,
+11151,
+11160,
+11170,
+11175,
+11180,
+11185,
+11189,
+11190,
+11207,
+11210,
+11213,
+11222,
+11232,
+11237,
+11242,
+11247,
+11252,
+11255,
+12163,
+12281,
+12282,
+12284,
+12285,
+12286,
+12287,
+12289,
+12290,
+12295,
+12297,
+12298,
+12299,
+12300,
+12301,
+12308,
+12311,
+12312,
+12313,
+12317,
+12318,
+12319,
+12320,
+12321,
+12322,
+12324,
+12329,
+12700,
+12797,
+12834,
+12862,
+13705,
+13706,
+13709,
+13712,
+13713,
+13715,
+13732,
+13733,
+13741,
+13742,
+13743,
+13754,
+13958,
+13960,
+13975,
+13976,
+13981,
+13983,
+14057,
+14076,
+14079,
+14082,
+14113,
+14128,
+14138,
+14144,
+14156,
+14158,
+14162,
+14165,
+14168,
+14171,
+14174,
+14179,
+14186,
+14520,
+14521,
+14522,
+14523,
+14531,
+14747,
+14748,
+14749,
+14750,
+14889,
+14892,
+14898,
+14901,
+14908,
+14909,
+14910,
+14911,
+14912,
+14913,
+15058,
+15257,
+15259,
+15260,
+15270,
+15273,
+15274,
+15275,
+15318,
+15337,
+15392,
+16035,
+16038,
+16039,
+16040,
+16043,
+16086,
+16089,
+16173,
+16176,
+16178,
+16179,
+16180,
+16181,
+16182,
+16184,
+16187,
+16194,
+16252,
+16254,
+16255,
+16256,
+16258,
+16259,
+16261,
+16262,
+16266,
+16462,
+16487,
+16493,
+16513,
+16538,
+16578,
+16757,
+16814,
+16819,
+16821,
+16833,
+16836,
+16845,
+16850,
+16858,
+16880,
+16896,
+16909,
+16929,
+16934,
+16940,
+16942,
+16947,
+16966,
+16972,
+16998,
+17002,
+17003,
+17050,
+17056,
+17063,
+17069,
+17074,
+17104,
+17106,
+17111,
+17118,
+17123,
+17322,
+17485,
+17778,
+17783,
+17788,
+17793,
+17804,
+17810,
+17815,
+17917,
+17927,
+17954,
+17959,
+18094,
+18096,
+18119,
+18126,
+18135,
+18174,
+18179,
+18182,
+18213,
+18218,
+18271,
+18427,
+18459,
+18462,
+18530,
+18551,
+18692,
+18694,
+18697,
+18703,
+18705,
+18709,
+18731,
+18754,
+18767,
+18769,
+18827,
+19159,
+19168,
+19184,
+19255,
+19286,
+19290,
+19295,
+19370,
+19376,
+19407,
+19416,
+19421,
+19426,
+19454,
+19461,
+19464,
+19485,
+19498,
+19507,
+19549,
+19552,
+19559,
+19572,
+19578,
+19583,
+19590,
+19598,
+19609,
+19616,
+19621,
+20042,
+20049,
+20060,
+20096,
+20101,
+20111,
+20117,
+20127,
+20138,
+20143,
+20174,
+20177,
+20196,
+20205,
+20210,
+20224,
+20234,
+20237,
+20244,
+20254,
+20257,
+20262,
+20335,
+20359,
+20468,
+20487,
+20500,
+20502,
+20504,
+23584,
+23785,
+24443,
+24968,
+25956,
+26022,
+27789,
+27811,
+27839,
+27900,
+28574,
+28996,
+28999,
+29062,
+29074,
+29082,
+29140,
+29187,
+29192,
+29206,
+29438,
+29441,
+29447,
+29590,
+29593,
+29598,
+29721,
+29723,
+29759,
+29787,
+29834,
+29836,
+29888,
+30054,
+30060,
+30143,
+30160,
+30242,
+30288,
+30293,
+30299,
+30319,
+30664,
+30672,
+30675,
+30802,
+30812,
+30816,
+30864,
+30867,
+30872,
+30881,
+30892,
+30894,
+30902,
+30919,
+31122,
+31124,
+31130,
+31208,
+31211,
+31216,
+31221,
+31226,
+31228,
+31234,
+31244,
+31380,
+31569,
+31571,
+31574,
+31579,
+31584,
+31638,
+31641,
+31656,
+31667,
+31670,
+31674,
+31679,
+31682,
+31785,
+31822,
+31825,
+31828,
+31833,
+31837,
+31844,
+31848,
+31850,
+31858,
+31866,
+31871,
+31876,
+31879,
+32043,
+32381,
+32385,
+32477,
+33142,
+33150,
+33158,
+33167,
+33186,
+33191,
+33201,
+33213,
+33221,
+33589,
+33592,
+33597,
+33600,
+33603,
+33851,
+33853,
+33859,
+33872,
+33879,
+33881,
+33886,
+34151,
+34293,
+34297,
+34453,
+34455,
+34462,
+34466,
+34475,
+34482,
+34485,
+34491,
+34494,
+34497,
+34500,
+34506,
+34753,
+34908,
+34935,
+34948,
+34950,
+35029,
+35100,
+35104,
+35363,
+35446,
+35541,
+35578,
+35691,
+37116,
+44378,
+44394,
+44397,
+44400,
+44404,
+44442,
+44445,
+44449,
+44543,
+44546,
+44557,
+44566,
+44745,
+45234,
+46854,
+46859,
+46865,
+46867,
+46908,
+46910,
+46913,
+46945,
+46951,
+47195,
+47198,
+47201,
+47220,
+47230,
+47236,
+47245,
+47258,
+47266,
+47294,
+47507,
+47509,
+47516,
+47535,
+47558,
+47562,
+47569,
+47573,
+47580,
+47586,
+48384,
+48389,
+48409,
+48411,
+48432,
+48483,
+48488,
+48492,
+48496,
+48506,
+48516,
+48532,
+48535,
+48539,
+48962,
+48963,
+48965,
+48977,
+48978,
+48979,
+48985,
+48987,
+48988,
+48997,
+49004,
+49006,
+49013,
+49015,
+49018,
+49023,
+49024,
+49027,
+49032,
+49036,
+49042,
+49137,
+49140,
+49145,
+49146,
+49149,
+49175,
+49182,
+49186,
+49188,
+49189,
+49200,
+49202,
+49208,
+49217,
+49219,
+49220,
+49223,
+49224,
+49226,
+49455,
+49467,
+49471,
+49588,
+50040,
+50117,
+50187,
+50365,
+50384,
+50391,
+50685,
+50880,
+51099,
+51123,
+51179,
+51459,
+51466,
+51468,
+51474,
+51480,
+51483,
+51521,
+51523,
+51525,
+51528,
+51554,
+51556,
+51560,
+51562,
+51625,
+51627,
+51632,
+51634,
+51664,
+51672,
+51682,
+51685,
+51692,
+51698,
+51708,
+51745,
+51883,
+52234,
+52783,
+52795,
+53137,
+53175,
+53178,
+53180,
+53182,
+53186,
+53203,
+53215,
+53221,
+53228,
+53234,
+53241,
+53252,
+53256,
+53262,
+53290,
+53295,
+53298,
+53302,
+53375,
+53379,
+53380,
+53409,
+53427,
+53450,
+53481,
+53483,
+53486,
+53501,
+53511,
+53514,
+53527,
+53551,
+53554,
+53556,
+53569,
+53583,
+53590,
+53620,
+53660,
+53671,
+53695,
+53709,
+53754,
+54037,
+54117,
+54347,
+54639,
+54747,
+55061,
+55091,
+55107,
+55129,
+55620,
+55666,
+56314,
+56333,
+56339,
+56342,
+56636,
+56927,
+57470,
+57810,
+57849,
+57873,
+57878,
+58414,
+58872,
+59088,
+61154,
+61216,
+61680,
+61682,
+61686,
+61689,
+62097,
+62758,
+62759,
+62764,
+62905,
+63117,
+63156,
+63349,
+63370,
+63373,
+63410,
+63504,
+63534,
+63625,
+63646,
+63730,
+64127,
+64353,
+65661,
+66799);
diff --git a/sql/updates/world/2013_07_24_02_world_trinity_strings.sql b/sql/updates/world/2013_07_24_02_world_trinity_strings.sql
new file mode 100644
index 00000000000..b14e60c2c9d
--- /dev/null
+++ b/sql/updates/world/2013_07_24_02_world_trinity_strings.sql
@@ -0,0 +1,3 @@
+DELETE FROM `trinity_string` WHERE entry = 850;
+INSERT INTO `trinity_string` (entry, content_default, content_loc1, content_loc2, content_loc3, content_loc4, content_loc5, content_loc6, content_loc7, content_loc8) VALUES
+(850, '├─ Rank: %s (ID: %u)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
diff --git a/sql/updates/world/2013_07_24_03_world_spell_proc_event_335.sql b/sql/updates/world/2013_07_24_03_world_spell_proc_event_335.sql
new file mode 100644
index 00000000000..0e179e54ec8
--- /dev/null
+++ b/sql/updates/world/2013_07_24_03_world_spell_proc_event_335.sql
@@ -0,0 +1,876 @@
+ALTER TABLE `spell_proc_event`
+ CHANGE `entry` `entry` MEDIUMINT(8) DEFAULT 0 NOT NULL;
+
+DELETE FROM `spell_proc_event` WHERE `entry` IN (
+325,
+905,
+945,
+8134,
+8494,
+8495,
+10191,
+10192,
+10193,
+10431,
+10432,
+11120,
+12487,
+12488,
+12574,
+12575,
+12576,
+12577,
+12598,
+12668,
+12724,
+12725,
+12726,
+12727,
+12799,
+12812,
+12813,
+12814,
+12815,
+12846,
+12847,
+12848,
+12849,
+12867,
+12872,
+12873,
+12958,
+12967,
+12968,
+12969,
+12970,
+12971,
+12972,
+12973,
+12974,
+13867,
+14070,
+14071,
+14160,
+14161,
+14190,
+14193,
+14194,
+14195,
+14318,
+14319,
+14320,
+14321,
+14322,
+14774,
+15338,
+15362,
+15363,
+16196,
+16198,
+16235,
+16240,
+16277,
+16278,
+16279,
+16280,
+16281,
+16282,
+16283,
+16284,
+16489,
+16492,
+16544,
+16923,
+16924,
+16954,
+16961,
+17107,
+17108,
+17796,
+17801,
+17802,
+17803,
+18073,
+18095,
+18120,
+19387,
+19388,
+19573,
+20056,
+20057,
+20179,
+20180,
+20181,
+20182,
+20212,
+20213,
+20214,
+20215,
+20235,
+20336,
+20337,
+20501,
+20927,
+20928,
+23695,
+24398,
+25296,
+25469,
+25472,
+25988,
+27044,
+27131,
+27179,
+27815,
+27816,
+28592,
+28593,
+29075,
+29076,
+29179,
+29180,
+29444,
+29594,
+29838,
+30295,
+30296,
+30301,
+30302,
+30678,
+30679,
+30705,
+30883,
+30884,
+30885,
+30886,
+31126,
+31245,
+31570,
+31572,
+31657,
+31658,
+31835,
+31836,
+31872,
+31877,
+31878,
+32387,
+32392,
+32393,
+32394,
+32593,
+32594,
+33145,
+33146,
+33154,
+33192,
+33193,
+33736,
+33882,
+33883,
+34498,
+34499,
+34502,
+34503,
+34859,
+34860,
+34916,
+34917,
+34938,
+34939,
+34954,
+35102,
+35550,
+35551,
+35552,
+35553,
+43019,
+43020,
+44443,
+44446,
+44448,
+44469,
+44470,
+44471,
+44472,
+44560,
+44561,
+45243,
+45244,
+46855,
+46914,
+46915,
+46949,
+47196,
+47197,
+47202,
+47203,
+47204,
+47205,
+47246,
+47247,
+47259,
+47260,
+47264,
+47265,
+47511,
+47515,
+47517,
+47570,
+47581,
+47582,
+48110,
+48111,
+48112,
+48113,
+48159,
+48160,
+48484,
+48485,
+48499,
+48500,
+48510,
+48511,
+48521,
+48525,
+48544,
+48545,
+48951,
+48952,
+49280,
+49281,
+49283,
+49284,
+49503,
+49504,
+49508,
+49509,
+49529,
+49530,
+49599,
+49627,
+49628,
+49654,
+49655,
+50033,
+50034,
+50115,
+50884,
+50885,
+50886,
+50887,
+51462,
+51463,
+51464,
+51465,
+51478,
+51479,
+51522,
+51524,
+51557,
+51558,
+51563,
+51564,
+51565,
+51566,
+51626,
+51628,
+51629,
+51635,
+51636,
+51665,
+51667,
+51668,
+51669,
+51674,
+51679,
+51696,
+51989,
+52004,
+52005,
+52007,
+52008,
+52129,
+52131,
+52134,
+52136,
+52138,
+52797,
+52798,
+52799,
+52800,
+53179,
+53216,
+53217,
+53222,
+53224,
+53232,
+53237,
+53238,
+53259,
+53260,
+53291,
+53292,
+53376,
+53381,
+53382,
+53488,
+53502,
+53503,
+53530,
+53552,
+53553,
+53576,
+53673,
+53696,
+53710,
+53711,
+54151,
+54154,
+54155,
+54637,
+54638,
+54749,
+55667,
+56343,
+56344,
+56611,
+56612,
+56613,
+56614,
+56637,
+56638,
+56822,
+56834,
+56835,
+57472,
+57880,
+57881,
+57960,
+58874,
+59057,
+59089,
+61345,
+61346,
+61847,
+62765,
+63158,
+63245,
+63374,
+63733,
+63737,
+64129,
+66191,
+66192,
+66814,
+66815,
+66816,
+66817);
+
+DELETE FROM `spell_proc_event` WHERE `entry` IN (
+324,
+974,
+1463,
+5952,
+9799,
+11095,
+11119,
+11180,
+11185,
+11213,
+11255,
+12281,
+12289,
+12298,
+12311,
+12319,
+12797,
+12834,
+12966,
+13165,
+13754,
+13983,
+14156,
+14186,
+14531,
+14892,
+15337,
+16086,
+16176,
+16180,
+16256,
+16257,
+16487,
+16850,
+16880,
+16952,
+16958,
+17106,
+17793,
+18094,
+18096,
+18119,
+19184,
+19572,
+20049,
+20177,
+20210,
+20234,
+20335,
+20500,
+20925,
+27811,
+29074,
+29441,
+29593,
+29834,
+30160,
+30293,
+30299,
+30675,
+30701,
+30881,
+31124,
+31244,
+31569,
+31571,
+31656,
+31833,
+31871,
+31876,
+32385,
+33076,
+33142,
+33150,
+33191,
+33881,
+34497,
+34500,
+34753,
+34914,
+34935,
+34950,
+35100,
+35541,
+41635,
+44442,
+44445,
+44449,
+44557,
+45234,
+46854,
+46867,
+46913,
+46945,
+47195,
+47201,
+47245,
+47258,
+47263,
+47509,
+47516,
+47569,
+47580,
+48483,
+48496,
+48506,
+48516,
+48539,
+48988,
+49004,
+49018,
+49149,
+49188,
+49208,
+49217,
+49219,
+49223,
+49467,
+50880,
+51459,
+51474,
+51521,
+51523,
+51556,
+51562,
+51625,
+51627,
+51634,
+51664,
+51672,
+51692,
+51940,
+52127,
+52795,
+53178,
+53215,
+53221,
+53228,
+53234,
+53256,
+53290,
+53375,
+53380,
+53486,
+53501,
+53527,
+53551,
+53569,
+53671,
+53695,
+53709,
+54639,
+54747,
+55666,
+56342,
+56636,
+57470,
+57878,
+58872,
+59088,
+61846,
+62764,
+63156,
+63373,
+63730,
+64127,
+65661,
+66799,
+-324,
+-974,
+-1463,
+-5952,
+-9799,
+-11095,
+-11119,
+-11180,
+-11185,
+-11213,
+-11255,
+-12281,
+-12289,
+-12298,
+-12311,
+-12319,
+-12797,
+-12834,
+-12966,
+-13165,
+-13754,
+-13983,
+-14156,
+-14186,
+-14531,
+-14892,
+-15337,
+-16086,
+-16176,
+-16180,
+-16256,
+-16257,
+-16487,
+-16850,
+-16880,
+-16952,
+-16958,
+-17106,
+-17793,
+-18094,
+-18096,
+-18119,
+-19184,
+-19572,
+-20049,
+-20177,
+-20210,
+-20234,
+-20335,
+-20500,
+-20925,
+-27811,
+-29074,
+-29441,
+-29593,
+-29834,
+-30160,
+-30293,
+-30299,
+-30675,
+-30701,
+-30881,
+-31124,
+-31244,
+-31569,
+-31571,
+-31656,
+-31833,
+-31871,
+-31876,
+-32385,
+-33076,
+-33142,
+-33150,
+-33191,
+-33881,
+-34497,
+-34500,
+-34753,
+-34914,
+-34935,
+-34950,
+-35100,
+-35541,
+-41635,
+-44442,
+-44445,
+-44449,
+-44557,
+-45234,
+-46854,
+-46867,
+-46913,
+-46945,
+-47195,
+-47201,
+-47245,
+-47258,
+-47263,
+-47509,
+-47516,
+-47569,
+-47580,
+-48483,
+-48496,
+-48506,
+-48516,
+-48539,
+-48988,
+-49004,
+-49018,
+-49149,
+-49188,
+-49208,
+-49217,
+-49219,
+-49223,
+-49467,
+-50880,
+-51459,
+-51474,
+-51521,
+-51523,
+-51556,
+-51562,
+-51625,
+-51627,
+-51634,
+-51664,
+-51672,
+-51692,
+-51940,
+-52127,
+-52795,
+-53178,
+-53215,
+-53221,
+-53228,
+-53234,
+-53256,
+-53290,
+-53375,
+-53380,
+-53486,
+-53501,
+-53527,
+-53551,
+-53569,
+-53671,
+-53695,
+-53709,
+-54639,
+-54747,
+-55666,
+-56342,
+-56636,
+-57470,
+-57878,
+-58872,
+-59088,
+-61846,
+-62764,
+-63156,
+-63373,
+-63730,
+-64127,
+-65661,
+-66799);
+
+INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`) VALUES
+(-324,0,0,0,0,0,0,0,0,0,3),
+(-974,0,0,0,0,0,139944,0,0,0,3),
+(-1463,0,0,0,0,0,0,1024,0,0,0),
+(-5952,0,8,0,1,0,0,0,0,0,0),
+(-9799,0,0,0,0,0,0,2,0,0,0),
+(-11095,0,3,16,0,0,0,0,0,0,0),
+(-11119,4,3,0,0,0,0,2,0,0,0),
+(-11180,16,3,0,0,0,0,0,0,0,0),
+(-11185,0,3,128,0,0,327680,0,0,0,0),
+(-11213,0,3,0,0,0,0,0,0,0,0),
+(-11255,0,3,16384,0,0,0,0,0,0,0),
+(-12281,0,4,2858419268,4194565,0,0,0,0,0,6),
+(-12289,0,4,2,0,0,0,0,0,0,0),
+(-12298,0,0,0,0,0,0,112,0,0,0),
+(-12311,0,4,2048,1,0,0,0,0,0,0),
+(-12319,0,0,0,0,0,0,2,0,0,0),
+(-12797,0,4,1024,0,0,0,0,0,0,0),
+(-12834,0,0,0,0,0,0,2,0,0,0),
+(-12966,0,0,0,0,0,0,65536,0,0,0),
+(-13165,0,0,0,0,0,64,0,0,0,0),
+(-13754,0,8,16,0,0,0,0,0,0,0),
+(-13983,0,0,0,0,0,0,24,0,0,0),
+(-14156,0,8,4063232,8,0,0,0,0,0,0),
+(-14186,0,8,1082131720,6,0,0,2,0,0,1),
+(-14531,0,0,0,0,0,0,2,0,0,0),
+(-14892,0,6,268443136,65540,0,0,2,0,0,0),
+(-15337,0,6,8396800,2,0,0,2,0,0,0),
+(-16086,4,11,0,262144,0,196608,0,0,0,0),
+(-16176,0,11,448,0,16,0,2,0,0,0),
+(-16180,0,11,448,0,16,0,2,0,100,0),
+(-16256,0,0,0,0,0,0,2,0,0,0),
+(-16257,0,0,0,0,0,0,65536,0,0,0),
+(-16487,0,0,0,0,0,0,2,0,0,0),
+(-16850,0,7,4,0,0,0,0,0,0,0),
+(-16880,72,7,103,58720258,0,0,2,0,0,0),
+(-16952,0,7,233472,1024,262144,0,2,0,0,0),
+(-16958,0,0,0,0,0,0,2,0,0,0),
+(-17106,0,7,524288,0,0,0,0,0,0,0),
+(-17793,0,5,1,0,0,0,0,0,0,0),
+(-18094,0,5,10,0,0,0,0,0,0,0),
+(-18096,0,5,256,8388608,0,0,2,0,0,0),
+(-18119,0,5,0,8388608,0,0,0,0,0,0),
+(-19184,0,9,16,8192,0,0,0,0,0,0),
+(-19572,0,9,8388608,0,0,16384,0,0,0,0),
+(-20049,0,0,0,0,0,0,2,0,0,0),
+(-20177,0,0,0,0,0,0,67,0,0,0),
+(-20210,0,10,3221225472,65536,0,0,2,0,0,0),
+(-20234,0,10,32768,0,0,0,0,0,0,0),
+(-20335,0,10,8388608,0,8,16,0,0,100,0),
+(-20500,0,4,268435456,0,0,0,0,0,0,0),
+(-20925,0,0,0,0,0,0,64,0,0,0),
+(-27811,0,0,0,0,0,0,2,0,0,0),
+(-29074,20,3,0,0,0,0,2,0,0,0),
+(-29441,0,0,0,0,0,0,8,0,0,1),
+(-29593,0,0,0,0,0,0,112,0,0,0),
+(-29834,0,0,0,0,0,0,65536,0,0,0),
+(-30160,0,0,0,0,0,0,2,0,0,0),
+(-30293,0,5,897,8519872,0,0,0,0,0,0),
+(-30299,126,0,0,0,0,0,0,0,0,0),
+(-30675,0,11,3,0,0,0,0,0,0,0),
+(-30701,28,0,0,0,0,664232,0,0,100,0),
+(-30881,0,0,0,0,0,0,0,0,0,30),
+(-31124,0,8,16777222,0,0,0,0,0,0,0),
+(-31244,0,8,4063232,9,0,0,52,0,0,0),
+(-31569,0,3,65536,0,0,0,0,0,0,0),
+(-31571,0,3,0,34,0,16384,0,0,0,0),
+(-31656,4,3,134217728,0,0,0,0,0,0,0),
+(-31833,0,10,2147483648,0,0,0,0,0,0,0),
+(-31871,0,10,16,0,0,16384,0,0,0,0),
+(-31876,0,10,8388608,0,0,0,262144,0,0,0),
+(-32385,0,5,1,262144,0,0,0,0,0,0),
+(-33076,0,0,0,0,0,664232,0,0,0,0),
+(-33142,0,0,0,0,0,0,2,0,0,0),
+(-33150,0,0,0,0,0,0,2,0,0,0),
+(-33191,0,6,32768,1024,64,0,0,0,0,0),
+(-33881,0,0,0,0,0,0,2,0,0,0),
+(-34497,0,0,0,0,0,0,2,0,0,0),
+(-34500,0,0,0,0,0,0,2,0,0,0),
+(-34753,0,6,6144,4,4096,0,2,0,0,0),
+(-34914,0,6,8192,0,0,0,0,0,0,0),
+(-34935,0,0,0,0,0,0,0,0,0,8),
+(-34950,0,0,0,0,0,0,2,0,0,0),
+(-35100,0,9,4096,0,1,0,0,0,0,0),
+(-35541,0,0,0,0,0,8388608,0,0,0,0),
+(-41635,0,0,0,0,0,664232,0,0,0,0),
+(-44442,0,3,8388608,64,0,0,65536,0,0,1),
+(-44445,0,3,19,69632,0,0,0,0,0,0),
+(-44449,0,3,551686775,102472,0,0,2,0,0,0),
+(-44557,0,3,32,0,0,0,0,0,0,0),
+(-45234,0,0,0,0,0,0,2,0,0,0),
+(-46854,0,0,0,0,0,0,2,0,0,0),
+(-46867,0,0,0,0,0,0,2,0,0,0),
+(-46913,0,4,64,1028,0,0,262144,0,0,0),
+(-46945,0,4,0,65536,0,0,0,0,0,0),
+(-47195,0,5,2,0,0,0,0,0,0,0),
+(-47201,0,5,16393,262144,0,0,0,0,0,0),
+(-47245,0,5,2,0,0,0,1,0,0,0),
+(-47258,0,5,0,8388608,0,0,65536,0,0,0),
+(-47263,32,5,0,0,0,0,2,0,0,20),
+(-47509,0,0,0,0,0,0,2,0,0,0),
+(-47516,0,6,6144,65536,0,0,0,0,0,0),
+(-47569,0,6,16384,0,0,16384,0,0,0,0),
+(-47580,0,6,0,0,64,0,65536,0,0,0),
+(-48483,0,7,34816,1088,0,0,0,0,0,0),
+(-48496,0,7,96,33554434,0,0,2,0,0,0),
+(-48506,0,7,5,0,0,0,0,0,0,0),
+(-48516,0,7,5,0,0,0,2,0,0,30),
+(-48539,0,7,16,67108864,0,262144,0,0,0,0),
+(-48988,0,0,0,0,0,0,2,0,0,0),
+(-49004,0,0,0,0,0,0,51,0,0,0),
+(-49018,0,15,20971520,0,0,0,0,0,0,0),
+(-49149,0,15,6,131074,0,0,0,0,0,0),
+(-49188,0,15,0,131072,0,0,0,0,0,0),
+(-49208,0,15,4194304,65536,0,0,0,0,0,0),
+(-49217,0,15,0,0,2,0,0,0,0,1),
+(-49219,0,0,0,0,0,4,0,0,0,0),
+(-49223,0,15,17,134348800,0,0,0,0,0,0),
+(-49467,0,15,16,131072,0,0,0,0,0,0),
+(-50880,0,15,0,67108864,0,0,0,0,0,0),
+(-51459,0,0,0,0,0,4,0,0,0,0),
+(-51474,0,0,0,0,0,0,65536,0,0,0),
+(-51521,0,11,0,16777216,0,0,0,0,0,0),
+(-51523,0,11,0,1,0,65536,0,0,50,0),
+(-51556,0,11,192,0,16,0,2,0,0,0),
+(-51562,0,11,256,0,16,0,0,0,0,0),
+(-51625,0,8,268476416,0,0,0,0,0,0,0),
+(-51627,0,0,0,0,0,0,112,0,0,0),
+(-51634,0,0,0,0,0,0,2,0,0,0),
+(-51664,0,8,131072,8,0,0,0,0,0,0),
+(-51672,0,0,0,0,0,0,16,0,0,1),
+(-51692,0,8,516,0,0,0,0,0,0,0),
+(-51940,0,0,0,0,0,0,0,0,20,0),
+(-52127,0,0,0,0,0,0,0,0,0,3),
+(-52795,0,6,1,0,0,0,0,0,0,0),
+(-53178,0,9,0,268435456,0,65536,0,0,100,0),
+(-53215,0,9,1,0,0,0,0,0,0,0),
+(-53221,0,9,0,1,0,0,0,0,0,0),
+(-53228,0,9,32,16777216,0,0,0,0,0,0),
+(-53234,0,9,131072,1,1,0,2,0,0,0),
+(-53256,0,9,2048,8388609,0,0,2,0,0,0),
+(-53290,0,9,2048,1,512,0,2,0,0,0),
+(-53375,0,10,0,8192,0,1024,0,0,0,6),
+(-53380,0,10,8388608,163840,0,0,262146,0,0,0),
+(-53486,0,10,8388608,163840,0,0,262146,0,0,0),
+(-53501,0,0,0,0,0,0,2,0,0,0),
+(-53527,1,10,0,0,4,1024,1,0,100,0),
+(-53551,0,10,4096,0,0,0,0,0,0,0),
+(-53569,0,10,1075838976,65536,0,0,0,0,0,0),
+(-53671,0,10,8388608,0,0,0,0,0,0,0),
+(-53695,0,10,8388608,0,8,16,0,0,0,0),
+(-53709,2,10,16384,0,0,0,0,0,0,0),
+(-54639,0,15,4194304,65536,0,0,0,0,0,0),
+(-54747,0,0,0,0,0,0,65536,0,0,0),
+(-55666,0,15,1,134217728,0,0,0,0,0,0),
+(-56342,0,9,24,134217728,147456,0,0,0,0,22),
+(-56636,0,4,32,0,0,0,262144,0,0,6),
+(-57470,0,6,1,0,0,0,0,0,0,0),
+(-57878,0,0,0,0,0,0,16,0,0,0),
+(-58872,0,0,0,0,0,0,270403,0,0,0),
+(-59088,0,4,0,2,0,1024,0,0,0,0),
+(-61846,0,0,0,0,0,64,0,0,0,0),
+(-62764,0,9,0,268435456,0,65536,0,0,100,0),
+(-63156,0,5,1,192,0,0,0,0,0,0),
+(-63373,0,11,2147483648,0,0,65536,0,0,0,0),
+(-63730,0,6,2048,4,0,0,0,0,0,0),
+(-64127,0,6,1,1,0,0,0,0,0,0),
+(-65661,0,15,4194321,537001988,0,16,0,0,100,0),
+(-66799,0,15,4194304,0,0,0,0,0,0,0);
diff --git a/sql/updates/world/2013_07_25_00_world_spell_script_names.sql b/sql/updates/world/2013_07_25_00_world_spell_script_names.sql
new file mode 100644
index 00000000000..14e6d16df44
--- /dev/null
+++ b/sql/updates/world/2013_07_25_00_world_spell_script_names.sql
@@ -0,0 +1,22 @@
+DELETE FROM `spell_script_names` WHERE `ScriptName` IN (
+'spell_warl_banish',
+'spell_dru_enrage',
+'spell_pri_mana_burn',
+'spell_pri_guardian_spirit',
+'spell_dk_improved_blood_presence',
+'spell_dk_improved_frost_presence',
+'spell_dk_improved_unholy_presence',
+'spell_dk_presence'
+);
+
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(-710, 'spell_warl_banish'),
+(5229, 'spell_dru_enrage'),
+(8129, 'spell_pri_mana_burn'),
+(47788, 'spell_pri_guardian_spirit'),
+(-50365,'spell_dk_improved_blood_presence'),
+(-50384,'spell_dk_improved_frost_presence'),
+(-50391,'spell_dk_improved_unholy_presence'),
+(48266, 'spell_dk_presence'),
+(48263, 'spell_dk_presence'),
+(48265, 'spell_dk_presence');
diff --git a/sql/updates/world/2013_07_25_01_world_conditions.sql b/sql/updates/world/2013_07_25_01_world_conditions.sql
new file mode 100644
index 00000000000..1990fe3094b
--- /dev/null
+++ b/sql/updates/world/2013_07_25_01_world_conditions.sql
@@ -0,0 +1,2 @@
+-- Fix gossip condition for Bat Handler Camille <Bat Handler>
+UPDATE `conditions` SET `ConditionTypeOrReference`=28 WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=8894 AND `SourceEntry`=0 AND `ConditionValue1`=11229;
diff --git a/sql/updates/world/2013_07_27_00_world_spell_script_names.sql b/sql/updates/world/2013_07_27_00_world_spell_script_names.sql
new file mode 100644
index 00000000000..a3f49d9e4f9
--- /dev/null
+++ b/sql/updates/world/2013_07_27_00_world_spell_script_names.sql
@@ -0,0 +1,11 @@
+DELETE FROM `spell_script_names` WHERE `spell_id` IN (31821,64364,-20254,-20138,31869,-53379,63510,63514,63531);
+INSERT INTO `spell_script_names` (`spell_id` ,`ScriptName`) VALUES
+(31821, 'spell_pal_aura_mastery'),
+(64364, 'spell_pal_aura_mastery_immune'),
+(-20254,'spell_pal_improved_concentraction_aura'),
+(-20138,'spell_pal_improved_devotion_aura'),
+(31869, 'spell_pal_sanctified_retribution'),
+(-53379,'spell_pal_swift_retribution'),
+(63510, 'spell_pal_improved_concentraction_aura_effect'),
+(63514, 'spell_pal_improved_devotion_aura_effect'),
+(63531, 'spell_pal_sanctified_retribution_effect');
diff --git a/sql/updates/world/2013_07_28_00_world_gameobjects.sql b/sql/updates/world/2013_07_28_00_world_gameobjects.sql
new file mode 100644
index 00000000000..cb352339bd5
--- /dev/null
+++ b/sql/updates/world/2013_07_28_00_world_gameobjects.sql
@@ -0,0 +1,75 @@
+SET @OGUID := 76732; -- Discarded Soul Crystal & Aura Trap Blue Short (cosmetic)
+
+DELETE FROM `gameobject` WHERE `id` IN (195344, 195346, 193984);
+INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES
+(@OGUID, 195344, 571, 1, 1, 7830.25, 2497.806, 402.5372, 0, 0, 0, 0, 1, 120, 255, 1), -- Discarded Soul Crystal (Area: 0)
+(@OGUID+1, 195346, 571, 1, 1, 7830.25, 2497.806, 402.5372, 0, 0, 0, 0, 1, 120, 255, 1), -- Aura Trap Blue Short (Area: 0)
+(@OGUID+2, 195344, 571, 1, 1, 7796.588, 2463.793, 393.2891, 0, 0, 0, 0, 1, 120, 255, 1), -- Discarded Soul Crystal (Area: 0)
+(@OGUID+3, 195346, 571, 1, 1, 7796.588, 2463.793, 393.2891, 0, 0, 0, 0, 1, 120, 255, 1), -- Aura Trap Blue Short (Area: 0)
+(@OGUID+4, 195344, 571, 1, 1, 7845.074, 2444.608, 400.5993, 0, 0, 0, 0, 1, 120, 255, 1), -- Discarded Soul Crystal (Area: 0)
+(@OGUID+5, 195346, 571, 1, 1, 7845.074, 2444.608, 400.5993, 0, 0, 0, 0, 1, 120, 255, 1), -- Aura Trap Blue Short (Area: 0)
+(@OGUID+6, 195344, 571, 1, 1, 7888.031, 2486.691, 412.1846, 0, 0, 0, 0, 1, 120, 255, 1), -- Discarded Soul Crystal (Area: 0)
+(@OGUID+7, 195346, 571, 1, 1, 7888.031, 2486.691, 412.1846, 0, 0, 0, 0, 1, 120, 255, 1), -- Aura Trap Blue Short (Area: 0)
+(@OGUID+8, 195344, 571, 1, 1, 7890.981, 2435.66, 407.6983, 0, 0, 0, 0, 1, 120, 255, 1), -- Discarded Soul Crystal (Area: 0)
+(@OGUID+9, 195346, 571, 1, 1, 7890.981, 2435.66, 407.6983, 0, 0, 0, 0, 1, 120, 255, 1), -- Aura Trap Blue Short (Area: 0)
+(@OGUID+10, 195344, 571, 1, 1, 7879.325, 2381.498, 395.9927, 0, 0, 0, 0, 1, 120, 255, 1), -- Discarded Soul Crystal (Area: The Valley of Fallen Heroes)
+(@OGUID+11, 195346, 571, 1, 1, 7879.325, 2381.498, 395.9927, 0, 0, 0, 0, 1, 120, 255, 1), -- Aura Trap Blue Short (Area: The Valley of Fallen Heroes)
+(@OGUID+12, 195344, 571, 1, 1, 7772.191, 2523.408, 397.5526, 0, 0, 0, 0, 1, 120, 255, 1), -- Discarded Soul Crystal (Area: The Valley of Fallen Heroes)
+(@OGUID+13, 195346, 571, 1, 1, 7772.191, 2523.408, 397.5526, 0, 0, 0, 0, 1, 120, 255, 1), -- Aura Trap Blue Short (Area: The Valley of Fallen Heroes)
+(@OGUID+14, 195344, 571, 1, 1, 7792.491, 2552.295, 404.7368, 0, 0, 0, 0, 1, 120, 255, 1), -- Discarded Soul Crystal (Area: The Valley of Fallen Heroes)
+(@OGUID+15, 195346, 571, 1, 1, 7792.491, 2552.295, 404.7368, 0, 0, 0, 0, 1, 120, 255, 1), -- Aura Trap Blue Short (Area: The Valley of Fallen Heroes)
+(@OGUID+16, 195344, 571, 1, 1, 7813.522, 2376.698, 383.7577, 0, 0, 0, 0, 1, 120, 255, 1), -- Discarded Soul Crystal (Area: The Valley of Fallen Heroes)
+(@OGUID+17, 195346, 571, 1, 1, 7813.522, 2376.698, 383.7577, 0, 0, 0, 0, 1, 120, 255, 1), -- Aura Trap Blue Short (Area: The Valley of Fallen Heroes)
+(@OGUID+18, 195344, 571, 1, 1, 7912.719, 2361.585, 403.3483, 0, 0, 0, 0, 1, 120, 255, 1), -- Discarded Soul Crystal (Area: The Valley of Fallen Heroes)
+(@OGUID+19, 195346, 571, 1, 1, 7912.719, 2361.585, 403.3483, 0, 0, 0, 0, 1, 120, 255, 1), -- Aura Trap Blue Short (Area: The Valley of Fallen Heroes)
+(@OGUID+20, 195344, 571, 1, 1, 7887.583, 2323.535, 389.2969, 0, 0, 0, 0, 1, 120, 255, 1), -- Discarded Soul Crystal (Area: The Valley of Fallen Heroes)
+(@OGUID+21, 195346, 571, 1, 1, 7887.583, 2323.535, 389.2969, 0, 0, 0, 0, 1, 120, 255, 1), -- Aura Trap Blue Short (Area: The Valley of Fallen Heroes)
+(@OGUID+22, 195344, 571, 1, 1, 7779.922, 2417.377, 384.4348, 0, 0, 0, 0, 1, 120, 255, 1), -- Discarded Soul Crystal (Area: The Valley of Fallen Heroes)
+(@OGUID+23, 195346, 571, 1, 1, 7779.922, 2417.377, 384.4348, 0, 0, 0, 0, 1, 120, 255, 1), -- Aura Trap Blue Short (Area: The Valley of Fallen Heroes)
+(@OGUID+24, 195344, 571, 1, 1, 7912.483, 2277.05, 387.8716, 0, 0, 0, 0, 1, 120, 255, 1), -- Discarded Soul Crystal (Area: The Valley of Fallen Heroes)
+(@OGUID+25, 195346, 571, 1, 1, 7912.483, 2277.05, 387.8716, 0, 0, 0, 0, 1, 120, 255, 1), -- Aura Trap Blue Short (Area: The Valley of Fallen Heroes)
+(@OGUID+26, 195344, 571, 1, 1, 7843.852, 2334.658, 382.3897, 0, 0, 0, 0, 1, 120, 255, 1), -- Discarded Soul Crystal (Area: The Valley of Fallen Heroes)
+(@OGUID+27, 195346, 571, 1, 1, 7843.852, 2334.658, 382.3897, 0, 0, 0, 0, 1, 120, 255, 1), -- Aura Trap Blue Short (Area: The Valley of Fallen Heroes)
+(@OGUID+28, 195344, 571, 1, 1, 7863.498, 2231.648, 375.1721, 0, 0, 0, 0, 1, 120, 255, 1), -- Discarded Soul Crystal (Area: The Valley of Fallen Heroes)
+(@OGUID+29, 195346, 571, 1, 1, 7863.498, 2231.648, 375.1721, 0, 0, 0, 0, 1, 120, 255, 1), -- Aura Trap Blue Short (Area: The Valley of Fallen Heroes)
+(@OGUID+30, 195344, 571, 1, 1, 7829.741, 2296.035, 378.0592, 0, 0, 0, 0, 1, 120, 255, 1), -- Discarded Soul Crystal (Area: The Valley of Fallen Heroes)
+(@OGUID+31, 195346, 571, 1, 1, 7829.741, 2296.035, 378.0592, 0, 0, 0, 0, 1, 120, 255, 1), -- Aura Trap Blue Short (Area: The Valley of Fallen Heroes)
+(@OGUID+32, 195344, 571, 1, 1, 7746.049, 2372.997, 376.3941, 0, 0, 0, 0, 1, 120, 255, 1), -- Discarded Soul Crystal (Area: The Valley of Fallen Heroes)
+(@OGUID+33, 195346, 571, 1, 1, 7746.049, 2372.997, 376.3941, 0, 0, 0, 0, 1, 120, 255, 1), -- Aura Trap Blue Short (Area: The Valley of Fallen Heroes)
+(@OGUID+34, 195344, 571, 1, 1, 7760.765, 2331.149, 374.8048, 0, 0, 0, 0, 1, 120, 255, 1), -- Discarded Soul Crystal (Area: The Valley of Fallen Heroes)
+(@OGUID+35, 195346, 571, 1, 1, 7760.765, 2331.149, 374.8048, 0, 0, 0, 0, 1, 120, 255, 1), -- Aura Trap Blue Short (Area: The Valley of Fallen Heroes)
+(@OGUID+36, 195344, 571, 1, 1, 7788.99, 2255.302, 371.7061, 0, 0, 0, 0, 1, 120, 255, 1), -- Discarded Soul Crystal (Area: The Valley of Fallen Heroes)
+(@OGUID+37, 195346, 571, 1, 1, 7788.99, 2255.302, 371.7061, 0, 0, 0, 0, 1, 120, 255, 1), -- Aura Trap Blue Short (Area: The Valley of Fallen Heroes)
+(@OGUID+38, 195344, 571, 1, 1, 7820.729, 2238.01, 372.7758, 0, 0, 0, 0, 1, 120, 255, 1), -- Discarded Soul Crystal (Area: The Valley of Fallen Heroes)
+(@OGUID+39, 195346, 571, 1, 1, 7820.729, 2238.01, 372.7758, 0, 0, 0, 0, 1, 120, 255, 1), -- Aura Trap Blue Short (Area: The Valley of Fallen Heroes)
+(@OGUID+40, 193984, 571, 1, 1, 7647.473, 2055.554, 599.3989, 6.003934, 0, 0, 0, 1, 120, 255, 1), -- Alliance Banner (Area: The Valley of Fallen Heroes)
+(@OGUID+41, 195344, 571, 1, 1, 7745.684, 2289.906, 371.991, 0, 0, 0, 0, 1, 120, 255, 1), -- Discarded Soul Crystal (Area: The Valley of Fallen Heroes)
+(@OGUID+42, 195346, 571, 1, 1, 7745.684, 2289.906, 371.991, 0, 0, 0, 0, 1, 120, 255, 1), -- Aura Trap Blue Short (Area: The Valley of Fallen Heroes)
+(@OGUID+43, 195344, 571, 1, 1, 7696.855, 2372.087, 374.5795, 0, 0, 0, 0, 1, 120, 255, 1), -- Discarded Soul Crystal (Area: The Valley of Fallen Heroes)
+(@OGUID+44, 195346, 571, 1, 1, 7696.855, 2372.087, 374.5795, 0, 0, 0, 0, 1, 120, 255, 1), -- Aura Trap Blue Short (Area: The Valley of Fallen Heroes)
+(@OGUID+45, 195344, 571, 1, 1, 7710.979, 2338.505, 373.0223, 0, 0, 0, 0, 1, 120, 255, 1), -- Discarded Soul Crystal (Area: The Valley of Fallen Heroes)
+(@OGUID+46, 195346, 571, 1, 1, 7710.979, 2338.505, 373.0223, 0, 0, 0, 0, 1, 120, 255, 1), -- Aura Trap Blue Short (Area: The Valley of Fallen Heroes)
+(@OGUID+47, 195344, 571, 1, 1, 7750.775, 2420.458, 380.734, 0, 0, 0, 0, 1, 120, 255, 1), -- Discarded Soul Crystal (Area: The Valley of Fallen Heroes)
+(@OGUID+48, 195346, 571, 1, 1, 7750.775, 2420.458, 380.734, 0, 0, 0, 0, 1, 120, 255, 1), -- Aura Trap Blue Short (Area: The Valley of Fallen Heroes)
+(@OGUID+49, 195344, 571, 1, 1, 7651.209, 2394.108, 374.7194, 0, 0, 0, 0, 1, 120, 255, 1), -- Discarded Soul Crystal (Area: The Valley of Fallen Heroes)
+(@OGUID+50, 195346, 571, 1, 1, 7651.209, 2394.108, 374.7194, 0, 0, 0, 0, 1, 120, 255, 1), -- Aura Trap Blue Short (Area: The Valley of Fallen Heroes)
+(@OGUID+51, 195344, 571, 1, 1, 7694.101, 2306.049, 370.4156, 0, 0, 0, 0, 1, 120, 255, 1), -- Discarded Soul Crystal (Area: The Valley of Fallen Heroes)
+(@OGUID+52, 195346, 571, 1, 1, 7694.101, 2306.049, 370.4156, 0, 0, 0, 0, 1, 120, 255, 1), -- Aura Trap Blue Short (Area: The Valley of Fallen Heroes)
+(@OGUID+53, 195344, 571, 1, 1, 7603.735, 2402.665, 377.1989, 0, 0, 0, 0, 1, 120, 255, 1), -- Discarded Soul Crystal (Area: The Valley of Fallen Heroes)
+(@OGUID+54, 195346, 571, 1, 1, 7603.735, 2402.665, 377.1989, 0, 0, 0, 0, 1, 120, 255, 1), -- Aura Trap Blue Short (Area: The Valley of Fallen Heroes)
+(@OGUID+55, 195344, 571, 1, 1, 7632.563, 2369.054, 376.1918, 0, 0, 0, 0, 1, 120, 255, 1), -- Discarded Soul Crystal (Area: The Valley of Fallen Heroes)
+(@OGUID+56, 195346, 571, 1, 1, 7632.563, 2369.054, 376.1918, 0, 0, 0, 0, 1, 120, 255, 1), -- Aura Trap Blue Short (Area: The Valley of Fallen Heroes)
+(@OGUID+57, 195346, 571, 1, 1, 7568.995, 2373.521, 377.0721, 0, 0, 0, 0, 1, 120, 255, 1), -- Aura Trap Blue Short (Area: The Valley of Fallen Heroes)
+(@OGUID+58, 195344, 571, 1, 1, 7568.995, 2373.521, 377.0721, 0, 0, 0, 0, 1, 120, 255, 1), -- Discarded Soul Crystal (Area: The Valley of Fallen Heroes)
+(@OGUID+59, 195344, 571, 1, 1, 7628.762, 2434.55, 377.8682, 0, 0, 0, 0, 1, 120, 255, 1), -- Discarded Soul Crystal (Area: The Valley of Fallen Heroes)
+(@OGUID+60, 195346, 571, 1, 1, 7628.762, 2434.55, 377.8682, 0, 0, 0, 0, 1, 120, 255, 1), -- Aura Trap Blue Short (Area: The Valley of Fallen Heroes)
+(@OGUID+61, 195346, 571, 1, 1, 7569.211, 2434.028, 382.9506, 0, 0, 0, 0, 1, 120, 255, 1), -- Aura Trap Blue Short (Area: The Valley of Fallen Heroes)
+(@OGUID+62, 195344, 571, 1, 1, 7569.211, 2434.028, 382.9506, 0, 0, 0, 0, 1, 120, 255, 1), -- Discarded Soul Crystal (Area: The Valley of Fallen Heroes)
+(@OGUID+63, 195344, 571, 1, 1, 7590.309, 2308.01, 376.7488, 0, 0, 0, 0, 1, 120, 255, 1), -- Discarded Soul Crystal (Area: The Valley of Fallen Heroes)
+(@OGUID+64, 195346, 571, 1, 1, 7590.309, 2308.01, 376.7488, 0, 0, 0, 0, 1, 120, 255, 1), -- Aura Trap Blue Short (Area: The Valley of Fallen Heroes)
+(@OGUID+65, 195344, 571, 1, 1, 7542.194, 2323.882, 378.2228, 0, 0, 0, 0, 1, 120, 255, 1), -- Discarded Soul Crystal (Area: The Valley of Fallen Heroes)
+(@OGUID+66, 195346, 571, 1, 1, 7542.194, 2323.882, 378.2228, 0, 0, 0, 0, 1, 120, 255, 1), -- Aura Trap Blue Short (Area: The Valley of Fallen Heroes)
+(@OGUID+67, 195344, 571, 1, 1, 7505.332, 2363.399, 378.0511, 0, 0, 0, 0, 1, 120, 255, 1), -- Discarded Soul Crystal (Area: The Valley of Fallen Heroes)
+(@OGUID+68, 195346, 571, 1, 1, 7505.332, 2363.399, 378.0511, 0, 0, 0, 0, 1, 120, 255, 1), -- Aura Trap Blue Short (Area: The Valley of Fallen Heroes)
+(@OGUID+69, 195344, 571, 1, 1, 7453.913, 2355.877, 380.0355, 0, 0, 0, 0, 1, 120, 255, 1), -- Discarded Soul Crystal (Area: The Valley of Fallen Heroes)
+(@OGUID+70, 195346, 571, 1, 1, 7453.913, 2355.877, 380.0355, 0, 0, 0, 0, 1, 120, 255, 1); -- Aura Trap Blue Short (Area: The Valley of Fallen Heroes)
diff --git a/sql/updates/world/2013_07_28_01_world_sai.sql b/sql/updates/world/2013_07_28_01_world_sai.sql
new file mode 100644
index 00000000000..067200e9c51
--- /dev/null
+++ b/sql/updates/world/2013_07_28_01_world_sai.sql
@@ -0,0 +1,24 @@
+-- Fix quest 14107: The Fate Of The Fallen
+-- Add SmartAI for Fallen Hero's Spirit
+
+SET @ENTRY := 32149;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE creature_id = @ENTRY;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY*100 AND `source_type`=9;
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(@ENTRY, 0, 0, 0, 8, 0, 100, 1, 66719, 0, 0, 0, 80, @ENTRY*100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Fallen Hero''s Spirit - On Spellhit Blessing of Peace - Run script'),
+(@ENTRY*100, 9, 0, 0, 0, 0, 100, 0, 100, 100, 0, 0, 66, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Fallen Hero''s Spirit - Script - Turn to Invoker'),
+(@ENTRY*100, 9, 1, 0, 0, 0, 100, 0, 100, 100, 0, 0, 33, 35055, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 'Fallen Hero''s Spirit - Script - Give Quest Credit'),
+(@ENTRY*100, 9, 2, 0, 0, 0, 100, 0, 100, 100, 0, 0, 2, 35, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Fallen Hero''s Spirit - Script - Set Faction'),
+(@ENTRY*100, 9, 3, 0, 0, 0, 100, 0, 3000, 3000, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Fallen Hero''s Spirit - Script - Say 0'),
+(@ENTRY*100, 9, 4, 0, 0, 0, 100, 0, 4000, 4000, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Fallen Hero''s Spirit - Script - Despawn');
+
+-- Creature text for Fallen Hero's Spirit
+DELETE FROM `creature_text` WHERE `entry`=@ENTRY;
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@ENTRY, 0, 0, 'It was awful... I dreamt I was fighting against my friends.', 12, 0, 100, 1, 0, 0, 'Fallen Hero''s Spirit'),
+(@ENTRY, 0, 1, 'I''m so tired. Just let me rest for a moment.', 12, 0, 100, 1, 0, 0, 'Fallen Hero''s Spirit'),
+(@ENTRY, 0, 2, 'I can''t hear the screams anymore. Is this the end?', 12, 0, 100, 1, 0, 0, 'Fallen Hero''s Spirit'),
+(@ENTRY, 0, 3, 'At last... now I can rest.', 12, 0, 100, 1, 0, 0, 'Fallen Hero''s Spirit'),
+(@ENTRY, 0, 4, 'My nightmare, is it finally over?', 12, 0, 100, 1, 0, 0, 'Fallen Hero''s Spirit');
diff --git a/sql/updates/world/2013_07_29_00_world_drak_tharon_keep.sql b/sql/updates/world/2013_07_29_00_world_drak_tharon_keep.sql
new file mode 100644
index 00000000000..bfcc29c1080
--- /dev/null
+++ b/sql/updates/world/2013_07_29_00_world_drak_tharon_keep.sql
@@ -0,0 +1,2 @@
+UPDATE `instance_template` SET `script`="instance_drak_tharon_keep" WHERE `map`=600;
+UPDATE `creature_template` SET `ScriptName`="boss_king_dred" WHERE `entry`=27483;
diff --git a/sql/updates/world/2013_07_29_01_world_spelldifficulty_dbc.sql b/sql/updates/world/2013_07_29_01_world_spelldifficulty_dbc.sql
new file mode 100644
index 00000000000..56764385765
--- /dev/null
+++ b/sql/updates/world/2013_07_29_01_world_spelldifficulty_dbc.sql
@@ -0,0 +1,3 @@
+DELETE FROM `spelldifficulty_dbc` WHERE `id` = 48849;
+INSERT INTO `spelldifficulty_dbc` (`id`, `spellid0`, `spellid1`) VALUES
+(48849, 48849, 59422);
diff --git a/sql/updates/world/2013_07_31_00_world_spell_script_names.sql b/sql/updates/world/2013_07_31_00_world_spell_script_names.sql
new file mode 100644
index 00000000000..27779d0da45
--- /dev/null
+++ b/sql/updates/world/2013_07_31_00_world_spell_script_names.sql
@@ -0,0 +1,4 @@
+DELETE FROM `spell_script_names` WHERE `spell_id` IN (50341,50344);
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(50341, 'spell_oculus_touch_the_nightmare'),
+(50344, 'spell_oculus_dream_funnel');
diff --git a/sql/updates/world/2013_08_03_00_world_misc.sql b/sql/updates/world/2013_08_03_00_world_misc.sql
new file mode 100644
index 00000000000..e6690c13033
--- /dev/null
+++ b/sql/updates/world/2013_08_03_00_world_misc.sql
@@ -0,0 +1,22 @@
+-- Sergeant Kregga, Captain Kendall, Opportunity and Exploiting an Opening fix by nelegalno
+-- http://www.wowhead.com/zone=210#comments:id=838363
+-- http://www.wowhead.com/zone=210#comments:id=838364
+SET @GUID=18; -- Set by TDB team
+SET @ASPELL=59073;
+SET @HSPELL=59087;
+SET @AREA=4522;
+
+-- Sergeant Kregga (31440)
+UPDATE `creature_template` SET `minlevel`=80,`maxlevel`=80,`exp`=2 WHERE `entry`=31440;
+DELETE FROM `creature` WHERE `guid`=@GUID AND `id`=31440;
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`) VALUES
+(@GUID,31440,571,1,8,0,0,5874.2,1948.5,516.1,2.8,300,0,0,32000,0,0,0,0,0);
+
+-- Captain Kendall (31444)
+UPDATE `creature` SET `phaseMask`=2 WHERE `id`=31444;
+
+DELETE FROM `spell_area` WHERE `spell`=@HSPELL AND `area`=@AREA;
+DELETE FROM `spell_area` WHERE `spell`=@ASPELL AND `area`=@AREA;
+INSERT INTO `spell_area` (`spell`,`area`,`quest_start`,`quest_end`,`aura_spell`,`racemask`,`gender`,`autocast`,`quest_start_status`,`quest_end_status`) VALUES
+(@HSPELL,@AREA,12899,0,0, 690,2,1,64,43), -- Horde version
+(@ASPELL,@AREA,12898,0,0,1101,2,1,64,43); -- Alliance version
diff --git a/sql/updates/world/2013_08_04_00_world_quests.sql b/sql/updates/world/2013_08_04_00_world_quests.sql
new file mode 100644
index 00000000000..00f71824236
--- /dev/null
+++ b/sql/updates/world/2013_08_04_00_world_quests.sql
@@ -0,0 +1,390 @@
+-- The Nightmare Manifests/Hope Within the Emerald Nightmare/The Boon of Remulos/Walking Legend
+SET @TYRANDE := 15633;
+SET @ERANIKUS := 15491;
+SET @REMULOS := 11832;
+SET @MALFURION := 17949;
+SET @PHANTASM := 15629;
+SET @E_REDEEM := 15628;
+
+DELETE FROM `creature_ai_scripts` WHERE creature_id=@ERANIKUS;
+-- Tyrande
+UPDATE `creature_template` SET `AIName`='SmartAI', `ScriptName`='', `flags_extra`=0, `type_flags`=0, `unit_flags`=32768, `faction_H`=1254, `faction_A`=1254 WHERE `entry`=@TYRANDE;
+-- Eranikus, Tyrant of the Dream
+UPDATE `creature_template` SET `AIName`='SmartAI', `ScriptName`='', `InhabitType`=7, `faction_A`=35, `faction_H`=35, `unit_flags`=0, `flags_extra`=2097152, `type_flags`=8, `dynamicflags`=128, `speed_walk`=2 WHERE `entry`=@ERANIKUS;
+-- Keeper Remulos
+UPDATE `creature_template` SET `AIName`='SmartAI', `ScriptName`='', `speed_walk`=2.5, `speed_run`=3.75, `type_flags`=0, `unit_flags`=32768, `faction_H`=1254, `faction_A`=1254 WHERE `entry`=@REMULOS;
+-- Malfurion
+UPDATE `creature_template` SET `InhabitType`=4,`AIName`='SmartAI',`ScriptName`='' WHERE `entry`=@MALFURION;
+-- Not sure if these are set on stock DB, but I'll still add them just in case.
+UPDATE `creature_template` SET `IconName`='Interact', `npcflag`=16777216 WHERE `entry` IN (32788,32790);
+-- Wrong gameobject, no idea who spawned it there.
+DELETE FROM `gameobject` WHERE `guid`=99849;
+
+-- NPC texts
+DELETE FROM `creature_text` WHERE entry IN (@REMULOS,@ERANIKUS,@PHANTASM,@TYRANDE,@E_REDEEM,@MALFURION);
+INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`) VALUES
+(@REMULOS,0,0,'We will locate the origin of the Nightmare through the fragments you collected, $n. From there, we will pull Eranikus through a rift in the Dream. Steel yourself, $c. We are inviting the embodiment of the Nightmare into our world.',12,0,100,0,0,0,'Keeper Remulos Say 0'),
+(@REMULOS,1,1,'The rift will be opened there, above the Lake Elun''ara. Prepare yourself, $n. Eranikus''s entry into our world will be wrought with chaos and strife.',12,0,100,0,0,0,'Keeper Remulos Say 1'),
+(@REMULOS,2,2,'He will stop at nothing to get to Malfurion''s physical manifistation. That must not happen... We must keep the beast occupied long enough for Tyrande to arrive.',12,0,100,0,0,0,'Keeper Remulos Say 2'),
+(@REMULOS,3,3,'Defend Nighthaven, hero...',12,0,100,0,0,0,'Keeper Remulos Say 3'),
+(@REMULOS,4,4,'Fiend! Face the might of Cenarius!',14,0,100,0,0,0,'Keeper Remulos Say 4'),
+(@REMULOS,5,5,'Who is the predictable one, beast? Surely you did not think that we would summon you on top of Malfurion? Your redemption comes, Eranikus. You will be cleansed of this madness - this corruption.',14,0,100,0,0,0,'Keeper Remulos Say 4'),
+(@REMULOS,6,6,'Hurry, $N! We must find protective cover!',12,0,100,0,0,0,'Keeper Remulos Say 6'),
+(@REMULOS,7,7,'Please, champion, protect our people.',12,0,100,0,0,0,'Keeper Remulos Say 7'),
+(@REMULOS,8,8,'It will be done, Eranikus. Be well, ancient one.',12,0,100,0,0,0,'Keeper Remulos Say 8'),
+(@REMULOS,9,9,'Let us leave Nighthaven, hero Seek me out at the grove.',12,0,100,0,0,0,'Keeper Remulos Say 9'),
+--
+(@REMULOS,10,10,'Come, $N. The lake is around the bend.',12,0,100,1,0,0,'Keeper Remulos - say Text 0'),
+(@REMULOS,11,11,'Stand near me, $N. I will protect you should anything go wrong.',12,0,100,1,0,0,'Keeper Remulos - say Text 1'),
+(@REMULOS,12,12,'Malfurion!',12,0,100,5,0,0,'Keeper Remulos - say Text 2'),
+(@REMULOS,13,13,'It was shrouded in nightmares, Malfurion. What is happening in the Dream? What could cause such atrocities?',12,0,100,6,0,0,'Keeper Remulos - say Text 3'),
+(@REMULOS,14,14,'I sensed as much, Malfurion. Dark days loom ahead.',12,0,100,1,0,0,'Keeper Remulos - say Text 4'),
+(@REMULOS,15,15,'You have been gone too long, Malfurion. Peace between the Children of Azeroth has become tenuous at best. What of my father? Of your brother? Have you any news?',12,0,100,6,0,0,'Keeper Remulos - say Text 5'),
+(@REMULOS,16,16,'Farewell, old friend... Farewell...',12,0,100,1,0,0,'Keeper Remulos - say Text 6'),
+(@REMULOS,17,17,'Let us return to the grove, mortal.',12,0,100,1,0,0,'Keeper Remulos - say Text 7'),
+--
+(@ERANIKUS,0,0,'Pitful predictable mortals... You know not what you have done! The master''s will fulfilled. The Moonglade shall be destroyed and Malfurion along with it!',14,0,100,0,0,0,'Eranikus Say 0'),
+(@ERANIKUS,1,1,'Eranikus, Tyrant of the Dream lets loose a sinister laugh.',16,0,100,0,0,0,'Eranikus Say 1'),
+(@ERANIKUS,2,2,'You are certanly not your father, insect. Should it interest me, I would crush you with but a swipe of my claws. Turn Shan''do Stormrage over to me and your pitiful life will be spared along with the lives of your people.',14,0,100,0,0,0,'Eranikus Say 2'),
+(@ERANIKUS,3,3,'My redemption? You are bold, little one. My redemption comes by the will of my god.',14,0,100,0,0,0,'Eranikus Say 3'),
+(@ERANIKUS,4,4,'Eranikus, Tyrant of the Dream roars furiously',16,0,100,0,0,0,'Eranikus Say 4'),
+(@ERANIKUS,5,5,'Rise, servants of the Nightmare! Rise and destroy this world! Let there be no survivors...',14,0,100,0,0,0,'Eranikus Say 5'),
+(@ERANIKUS,6,6,'Where is your savior? How long can you hold out against my attacks?',14,0,100,0,0,0,'Eranikus Say 6'),
+(@ERANIKUS,7,7,'Remulos, look how easy they fall before me? You can stop this, fool. Turn the druid over to me and it will all be over...',14,0,100,0,0,0,'Eranikus Say 7'),
+(@ERANIKUS,8,8,'Defeated my minions? Then face me, mortals!',14,0,100,0,0,0,'Eranikus Say 8'),
+(@ERANIKUS,9,9,'IT BURNS! THE PAIN.. SEARING...',14,0,100,0,0,0,'Eranikus Say 9'),
+(@ERANIKUS,10,10,'WHY? Why did this happen to... to me? Where were you Tyrande? Where were you when I fell from the grace of Elune?',14,0,100,0,0,0,'Eranikus Say 10'),
+(@ERANIKUS,11,11,'I... I feel... I feel the touch of Elune upon my being once more... She smiles upon me... Yes... I...',14,0,100,0,0,0,'Eranikus Say 11'),
+(@ERANIKUS,12,12,'Tyrande falls to one knee.',16,0,100,0,0,0,'Eranikus Say 12'),
+--
+(@TYRANDE,0,0,'Seek absolution, Eranikus. All will be forgiven..',14,0,100,0,0,0,'Tyrande Say 0'),
+(@TYRANDE,1,1,'You will be forgiven, Eranikus. Elune will always love you. Break free of the bonds that command you!',14,0,100,0,0,0,'Tyrande Say 0'),
+(@TYRANDE,2,2,'The grasp of the Old Gods is unmoving. He is consumed by their dark thoughts... I... I... I cannot... cannot channel much longer... Elune aide me.',12,0,100,0,0,0,'Tyrande Say 0'),
+--
+(@E_REDEEM,0,0,'For so long, I was lost... The Nightmare''s corruption had consumed me... And now, you... all of you.. you have saved me. Released me from its grasp.',12,0,100,0,0,0,'Eranikus the Redeemed Say 0'),
+(@E_REDEEM,1,1,'But... Malfurion, Cenarius, Ysera... They still fight. They need me. I must return to the Dream at once.',12,0,100,0,0,0,'Eranikus the Redeemed Say 0'),
+(@E_REDEEM,2,2,'My lady, I am unworthy of your prayer. Truly, you are an angel of light. Please, assist me in returning to the barrow den so that I may return to the Dream. I like Malfurion, also have a love awaiting me... I must return to her... to protect her...',12,0,100,0,0,0,'Eranikus the Redeemed Say 0'),
+(@E_REDEEM,3,3,'And heroes... I hold that which you seek. May it once more see the evil dissolved. Remulos, see to it that our champion receives the shard of the Green Flight.',12,0,100,0,0,0,'Eranikus the Redeemed Say 0'),
+--
+(@PHANTASM,0,0,'Nightmare Phantasm drinks in the suffering of the fallen.',16,0,100,0,0,0,'Nightmare Phantasm Say 0'),
+--
+(@MALFURION,0,0,'Remulos, old friend. It is good to see you once more. I knew the message would find its way to you; one way or another.',12,0,100,1,0,0,'Malfurion Stormrage - say Text 0'),
+(@MALFURION,1,0,'I fear for the worst, old friend. Within the Dream we fight a new foe, born of an ancient evil. Ysera''s noble brood has fallen victim to the old whisperings. It seems as if the Nightmare has broken through the realm to find a new host on Azeroth.',12,0,100,1,0,0,'Malfurion Stormrage - say Text 1'),
+(@MALFURION,2,0,'Aye Remulos, prepare the mortal races.',12,0,100,1,0,0,'Malfurion Stormrage - say Text 2'),
+(@MALFURION,3,0,'Cenarius fights at my side. Illidan sits atop his throne in Outland; brooding. I''m afraid that the loss to Arthas proved to be his breaking point. Madness has embraced him, Remulos. He replays the events in his mind a thousand times per day, but in his mind, he is the victor and Arthas is utterly defeated. He is too far gone, old friend. I fear that the time may soon come that our bond is tested and it will not be as it was at the Well in Zin-Azshari.',12,0,100,1,0,0,'Malfurion Stormrage - say Text 3'),
+(@MALFURION,4,0,'Remulos, I am being drawn back... Tyrande... send her my love... Tell her I am safe... Tell her... Tell her I will return... Farewell...',12,0,100,1,0,0,'Malfurion Stormrage - say Text 4');
+
+
+-- Remulos SAI
+DELETE FROM `smart_scripts` WHERE `source_type`IN (0,9) AND `entryorguid` IN (@REMULOS,@REMULOS*100,@REMULOS*100+1,@REMULOS*100+2);
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid` = @MALFURION;
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+-- Quests: Hope Within the Emerald Nightmare & The Boon of Remulos
+(@REMULOS,0,0,0,62,0,100,0,10215,0,0,0,11,57413,1,0,0,0,0,7,0,0,0,0,0,0,0,'Keeper Remulos - On gossip option select - cast spell'),
+(@REMULOS,0,1,2,62,0,100,0,10215,1,0,0,11,57670,1,0,0,0,0,7,0,0,0,0,0,0,0,'Keeper Remulos - On gossip option select - cast spell'),
+(@REMULOS,0,2,0,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Keeper Remulos - On gossip option select - Close gossip'),
+(@REMULOS,0,3,0,19,0,100,0,13074,0,0,0,11,57413,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Keeper Remulos - On Quest Accept - Cast Fitful Dream'),
+-- The Nightmare Manifests
+(@REMULOS,0,4,0,19,0,100,1,8736,0,0,0,1,0,15000,0,0,0,0,1,0,0,0,0,0,0,0,'Keeper Remulos - On Quest Accept - Say 0'),
+(@REMULOS,0,5,0,52,0,100,0,0,@REMULOS,0,0,53,0,@REMULOS,0,8736,0,0,1,0,0,0,0,0,0,0,'Keeper Remulos - On Say 0 - Start WayPoint'),
+(@REMULOS,0,6,0,52,0,100,0,0,@REMULOS,0,0,83,3,0,0,0,0,0,1,0,0,0,0,0,0,0,'Keeper Remulos - On Quest Accept - Remove Npcflag'),
+(@REMULOS,0,7,0,40,0,100,0,13,@REMULOS,0,0,54,95000,0,0,0,0,0,1,0,0,0,0,0,0,0,'Keeper Remulos - On WayPoint 13 - Pause WP'),
+(@REMULOS,0,8,0,40,0,100,0,13,@REMULOS,0,0,1,1,10000,0,0,0,0,1,0,0,0,0,0,0,0,'Keeper Remulos - On WayPoint 13 - Say 1'),
+(@REMULOS,0,9,0,52,0,100,0,1,@REMULOS,0,0,1,2,10000,0,0,0,0,1,0,0,0,0,0,0,0,'Keeper Remulos - On Say 1 - Say 2'),
+(@REMULOS,0,10,0,52,0,100,0,2,@REMULOS,0,0,11,25813,0,0,0,0,0,1,0,0,0,0,0,0,0,'Keeper Remulos - On Say 3 - Cast Conjure Dream Rift'),
+(@REMULOS,0,11,0,52,0,100,0,2,@REMULOS,0,0,12,@ERANIKUS,3,3600000,0,0,0,8,0,0,0,7872.5888, -2664.55888, 497.139282,0.63583,'Keeper Remulos - On Say 3 - Summon Eranikus'),
+(@REMULOS,0,12,0,52,0,100,0,2,@REMULOS,0,0,1,3,23000,0,0,0,0,1,0,0,0,0,0,0,0,'Keeper Remulos - On Say 2 - Say 3'),
+(@REMULOS,0,13,0,52,0,100,0,3,@REMULOS,0,0,1,4,31000,0,0,0,0,1,0,0,0,0,0,0,0,'Keeper Remulos - On Say 3 - Say 4'),
+(@REMULOS,0,14,0,52,0,100,0,4,@REMULOS,0,0,1,5,22000,0,0,0,0,1,0,0,0,0,0,0,0,'Keeper Remulos - On Say 4 - Say 5'),
+(@REMULOS,0,15,0,52,0,100,0,5,@REMULOS,0,0,1,6,10000,0,0,0,0,1,0,0,0,0,0,0,0,'Keeper Remulos - On Say 5 - Say 6'),
+(@REMULOS,0,16,0,40,0,100,0,20,@REMULOS,0,0,54,60000,0,0,0,0,0,1,0,0,0,0,0,0,0,'Keeper Remulos - On WayPoint 20 - Pause WP'),
+(@REMULOS,0,17,0,40,0,100,0,20,@REMULOS,0,0,1,7,20000,0,0,0,0,1,0,0,0,0,0,0,0,'Keeper Remulos - On WayPoint 20 - Say 7'),
+(@REMULOS,0,18,0,52,0,100,0,7,@REMULOS,0,0,12,@PHANTASM,3,3600000,0,0,0,8,0,0,0,7829.066,-2562.347,489.299,5.234,'Keeper Remulos - On Say 7 - Summon Nightmare Phantasm'),
+(@REMULOS,0,19,0,52,0,100,0,7,@REMULOS,0,0,12,@PHANTASM,3,3600000,0,0,0,8,0,0,0,7828.889,-2580.694,489.299,0.753,'Keeper Remulos - On Say 7 -Summon Nightmare Phantasm'),
+(@REMULOS,0,20,0,52,0,100,0,7,@REMULOS,0,0,8,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Keeper Remulos - On Say 7 - Set react state aggresive'),
+(@REMULOS,0,21,0,52,0,100,0,7,@REMULOS,0,0,49,0,0,0,0,0,0,19,@PHANTASM,0,0,0,0,0,0,'Keeper Remulos - On Say 7 - Attack'),
+(@REMULOS,0,22,0,0,0,100,0,7000,14000,6000,12000,11,20665,0,0,0,0,0,18,20,0,0,0,0,0,0,'Keeper Remulos - In Combat - Cast Regrowth'),
+(@REMULOS,0,23,0,0,0,100,0,26000,52000,34000,46000,11,20664,0,0,0,0,0,18,20,0,0,0,0,0,0,'Keeper Remulos - In Combat - Cast Regrowth'),
+(@REMULOS,0,24,0,0,0,100,0,25000,25000,25000,50000,11,23381,0,0,0,0,0,18,20,0,0,0,0,0,0,'Keeper Remulos - In Combat - Cast Healing Touch'),
+(@REMULOS,0,25,0,0,0,100,0,10000,40000,40000,40000,11,25817,0,0,0,0,0,1,0,0,0,0,0,0,0,'Keeper Remulos - In Combat - Cast Tranquility'),
+(@REMULOS,0,26,0,0,0,100,0,16000,21000,19000,25000,11,21668,0,0,0,0,0,2,0,0,0,0,0,0,0,'Keeper Remulos - In Combat - Cast Starfall'),
+(@REMULOS,0,27,0,38,0,100,0,1,1,0,0,1,8,10000,0,0,0,0,1,0,0,0,0,0,0,0,'Keeper Remulos - On Data Set - Say 8'),
+(@REMULOS,0,28,0,52,0,100,0,8,@REMULOS,0,0,1,9,10000,0,0,0,0,1,0,0,0,0,0,0,0,'Keeper Remulos - Said 8 8 - Say 9'),
+(@REMULOS,0,29,0,40,0,100,1,21,@REMULOS,0,0,49,0,0,0,0,0,0,11,@ERANIKUS,30,0,0,0,0,0,'Keeper Remulos - On Waypoint Reached - Attack Eranikus'),
+(@REMULOS,0,30,0,6,0,100,0,0,0,0,0,6,8736,0,0,0,0,0,18,40,0,0,0,0,0,0,'Keeper Remulos - On Death - Fail Quest'),
+(@REMULOS,0,31,0,40,0,100,1,23,@REMULOS,0,0,54,1000,0,0,0,0,0,1,0,0,0,0,0,0,0,'Keeper Remulos - On WayPoint 23 - Pause WP'),
+(@REMULOS,0,32,0,40,0,100,1,23,@REMULOS,0,0,66,2.835,0,0,0,0,0,1,0,0,0,0,0,0,0,'Keeper Remulos - On WayPoint 23 - Set Orientation'),
+(@REMULOS,0,33,0,52,0,100,0,9,@REMULOS,0,0,53,1,@REMULOS*100+1,0,8736,0,0,1,0,0,0,0,0,0,0,'Keeper Remulos - On Said 9 - Go Home'),
+(@REMULOS,0,34,0,40,0,100,0,12,@REMULOS*100+1,0,0,82,3,0,0,0,0,0,1,0,0,0,0,0,0,0,'Keeper Remulos - On WayPoint 12 - Set Npcflags'),
+(@REMULOS,0,35,0,40,0,100,0,12,@REMULOS*100+1,0,0,66,3,0,0,0,0,0,1,0,0,0,0,0,0,0,'Keeper Remulos - On WayPoint 12 - Set Orientation'),
+(@REMULOS,0,36,0,40,0,100,0,24,@REMULOS,0,0,80,@REMULOS*100+1,0,1,0,0,0,1,0,0,0,0,0,0,0,'Keeper Remulos - On WayPoint 24 - Run Script only when OOC'),
+-- Quest: Waking Legends
+(@REMULOS,0,37,38,19,0,100,0,8447,0,0,0,81,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Keeper Remulos - on Quest Accept - Turn off Quest Giver & Gossip Flag'),
+(@REMULOS,0,38,39,61,0,100,0,0,0,0,0,53,0,@REMULOS*100,0,8447,0,0,1,0,0,0,0,0,0,0,'Keeper Remulos - on Quest Accept - start WP'),
+(@REMULOS,0,39,0,61,0,100,0,0,0,0,0,1,10,0,0,0,0,0,1,0,0,0,0,0,0,0,'Keeper Remulos - on Quest Accept - say Text 10'),
+(@REMULOS,0,40,41,40,0,100,0,5,@REMULOS*100,0,0,54,83000,0,0,0,0,0,1,0,0,0,0,0,0,0,'Keeper Remulos - reached WP 5 - pause WP'),
+(@REMULOS,0,41,42,61,0,100,0,0,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,3.12180,'Keeper Remulos - reached WP5 - set orientation'),
+(@REMULOS,0,42,0,61,0,100,0,0,0,0,0,80,@REMULOS*100+2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Keeper Remulos - reached WP 5 - run Script'),
+(@REMULOS,0,43,0,40,0,100,0,10,@REMULOS*100,0,0,81,3,0,0,0,0,0,1,0,0,0,0,0,0,0,'Keeper Remulos - reached WP 10 - Turn on Quest Giver & Gossip Flag'),
+(@REMULOS,0,44,0,40,0,100,0,10,@REMULOS*100,0,0,66,3,0,0,0,0,0,1,0,0,0,0,0,0,0,'Keeper Remulos - reached WP 10 - set orientation'),
+-- Script
+(@REMULOS*100+2,9,0,0,0,0,100,0,2000,2000,0,0,1,11,0,0,0,0,0,1,0,0,0,0,0,0,0,'Keeper Remulos - Say Text 1'),
+(@REMULOS*100+2,9,1,0,0,0,100,0,3000,3000,0,0,11,25004,1,0,0,0,0,1,0,0,0,0,0,0,0,'Keeper Remulos - Cast Spell: Throw Nightmare Object to Position'),
+(@REMULOS*100+2,9,2,0,0,0,100,0,5000,5000,0,0,12,@MALFURION,8,0,0,0,0,8,0,0,0,7730.5288,-2318.8596,453.8706,6.14985,'Keeper Remulos - Summon Malfurion Stormrage'),
+(@REMULOS*100+2,9,3,0,0,0,100,0,2000,2000,0,0,1,12,0,0,0,0,0,1,0,0,0,0,0,0,0,'Keeper Remulos - Say Text 12'),
+(@REMULOS*100+2,9,4,0,0,0,100,0,3000,3000,0,0,1,0,0,0,0,0,0,9,@MALFURION,0,30,0,0,0,0,'Malfurion Stormrage - Say Text 0'),
+(@REMULOS*100+2,9,5,0,0,0,100,0,6000,6000,0,0,1,13,0,0,0,0,0,1,0,0,0,0,0,0,0,'Keeper Remulos - Say Text 13'),
+(@REMULOS*100+2,9,6,0,0,0,100,0,7000,7000,0,0,1,1,0,0,0,0,0,9,@MALFURION,0,30,0,0,0,0,'Malfurion Stormrage - Say Text 1'),
+(@REMULOS*100+2,9,7,0,0,0,100,0,11000,11000,0,0,1,14,0,0,0,0,0,1,0,0,0,0,0,0,0,'Keeper Remulos - Say Text 14'),
+(@REMULOS*100+2,9,8,0,0,0,100,0,3500,3500,0,0,1,2,0,0,0,0,0,9,@MALFURION,0,30,0,0,0,0,'Malfurion Stormrage - Say Text 2'),
+(@REMULOS*100+2,9,9,0,0,0,100,0,4000,4000,0,0,1,15,0,0,0,0,0,1,0,0,0,0,0,0,0,'Keeper Remulos - Say Text 15'),
+(@REMULOS*100+2,9,10,0,0,0,100,0,9000,9000,0,0,1,3,0,0,0,0,0,9,@MALFURION,0,30,0,0,0,0,'Malfurion Stormrage - Say Text 3'),
+(@REMULOS*100+2,9,11,0,0,0,100,0,19000,19000,0,0,1,4,0,0,0,0,0,9,@MALFURION,0,30,0,0,0,0,'Malfurion Stormrage - Say Text 4'),
+(@REMULOS*100+2,9,12,0,0,0,100,0,6000,6000,0,0,1,16,0,0,0,0,0,1,0,0,0,0,0,0,0,'Keeper Remulos - Say Text 16'),
+(@REMULOS*100+2,9,13,0,0,0,100,0,2000,2000,0,0,1,17,0,0,0,0,0,1,0,0,0,0,0,0,0,'Keeper Remulos - Say Text 17'),
+(@REMULOS*100+2,9,14,0,0,0,100,0,0,0,0,0,15,8447,0,0,0,0,0,7,0,0,0,0,0,0,0,'Keeper Remulos - Give Quest Credit'),
+(@REMULOS*100+2,9,15,0,0,0,100,0,1000,1000,0,0,45,0,1,0,0,0,0,9,@MALFURION,0,30,0,0,0,0,'Keeper Remulos - Set data 0 1 to Malfurion Stormrage'),
+ --
+(@MALFURION,0,0,0,54,0,100,0,0,0,0,0,11,52096,2,0,0,0,0,1,0,0,0,0,0,0,0,'Malfurion Stormrage - On summon - Cast Cosmetic Teleport Effect on self'),
+(@MALFURION,0,1,0,38,0,100,0,0,1,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Malfurion Stormrage - On data set 0 1 - Despawn'),
+ --
+(@REMULOS*100+1,9,0,0,1,0,100,1,60000,60000,0,0,53,0,@REMULOS*100+1,0,8736,0,0,1,0,0,0,0,0,0,0,'On Script - OOC 1 Mintues - Go Home');
+
+-- Eranikus, Tyrant of the Dream SAI
+DELETE FROM `smart_scripts` WHERE entryorguid IN(@ERANIKUS,@ERANIKUS*100,@ERANIKUS*100+1);
+INSERT INTO `smart_scripts` VALUES
+(@ERANIKUS,0,0,0,1,0,100,1,13000,13000,13000,13000,1,0,15000,0,0,0,0,1,0,0,0,0,0,0,0,'Eranikus - OOC 13 Sec - Say 0'),
+(@ERANIKUS,0,1,0,52,0,100,0,0,@ERANIKUS,0,0,1,1,6000,0,0,0,0,1,0,0,0,0,0,0,0,'Eranikus - On Say 0 - Say 1'),
+(@ERANIKUS,0,2,0,52,0,100,0,1,@ERANIKUS,0,0,1,2,34000,0,0,0,0,1,0,0,0,0,0,0,0,'Eranikus - On Say 1 - Say 2'),
+(@ERANIKUS,0,3,0,52,0,100,0,2,@ERANIKUS,0,0,1,3,3000,0,0,0,0,1,0,0,0,0,0,0,0,'Eranikus - On Say 2 - Say 3'),
+(@ERANIKUS,0,4,0,52,0,100,0,3,@ERANIKUS,0,0,1,4,3000,0,0,0,0,1,0,0,0,0,0,0,0,'Eranikus - On Say 3 - Say 4'),
+(@ERANIKUS,0,5,0,52,0,100,0,4,@ERANIKUS,0,0,53,0,@ERANIKUS,0,8736,0,0,1,0,0,0,0,0,0,0,'Eranikus - On Say 4 - Start WayPoint'),
+(@ERANIKUS,0,6,0,40,0,100,0,3,@ERANIKUS,0,0,54,130000,0,0,0,0,0,1,0,0,0,0,0,0,0,'Eranikus - On WayPoint 3 - Pause'),
+(@ERANIKUS,0,7,0,40,0,100,0,3,@ERANIKUS,0,0,1,5,10000,0,0,0,0,1,0,0,0,0,0,0,0,'Eranikus - On WayPoint 3 - Say 5'),
+(@ERANIKUS,0,8,0,52,0,100,0,5,@ERANIKUS,0,0,80,@ERANIKUS*100,0,2,0,0,0,1,0,0,0,0,0,0,0,'Eranikus - On Say 5 - Start Script'),
+(@ERANIKUS*100,9,0,0,0,0,100,0,1000,1000,0,0,12,@PHANTASM,3,600000,0,0,0,8,0,0,0,7865.966,-2554.104,486.967,5.492,'Eranikus - On Script - Summon Nightmare Phantasm'),
+(@ERANIKUS*100,9,1,0,0,0,100,0,1000,1000,0,0,12,@PHANTASM,3,600000,0,0,0,8,0,0,0,7873.412,-2587.454,486.946,0.924,'Eranikus - On Script - Summon Nightmare Phantasm'),
+(@ERANIKUS*100,9,2,0,0,0,100,0,1000,1000,0,0,12,@PHANTASM,3,600000,0,0,0,8,0,0,0,7901.544,-2581.989,487.178,2.059,'Eranikus - On Script - Summon Nightmare Phantasm'),
+(@ERANIKUS*100,9,3,0,0,0,100,0,1000,1000,0,0,12,@PHANTASM,3,600000,0,0,0,8,0,0,0,7918.844,-2553.987,486.911,3.772,'Eranikus - On Script - Summon Nightmare Phantasm'),
+(@ERANIKUS*100,9,4,0,0,0,100,0,5000,5000,0,0,12,@PHANTASM,3,600000,0,0,0,8,0,0,0,7865.966,-2554.104,486.967,5.492,'Eranikus - On Script - Summon Nightmare Phantasm'),
+(@ERANIKUS*100,9,5,0,0,0,100,0,1000,1000,0,0,12,@PHANTASM,3,600000,0,0,0,8,0,0,0,7873.412,-2587.454,486.946,0.924,'Eranikus - On Script - Summon Nightmare Phantasm'),
+(@ERANIKUS*100,9,6,0,0,0,100,0,1000,1000,0,0,12,@PHANTASM,3,600000,0,0,0,8,0,0,0,7901.544,-2581.989,487.178,2.059,'Eranikus - On Script - Summon Nightmare Phantasm'),
+(@ERANIKUS*100,9,7,0,0,0,100,0,1000,1000,0,0,12,@PHANTASM,3,600000,0,0,0,8,0,0,0,7918.844,-2553.987,486.911,3.772,'Eranikus - On Script - Summon Nightmare Phantasm'),
+(@ERANIKUS*100,9,8,0,0,0,100,0,5000,5000,0,0,12,@PHANTASM,3,600000,0,0,0,8,0,0,0,7865.966,-2554.104,486.967,5.492,'Eranikus - On Script - Summon Nightmare Phantasm'),
+(@ERANIKUS*100,9,9,0,0,0,100,0,1000,1000,0,0,12,@PHANTASM,3,600000,0,0,0,8,0,0,0,7873.412,-2587.454,486.946,0.924,'Eranikus - On Script - Summon Nightmare Phantasm'),
+(@ERANIKUS*100,9,10,0,0,0,100,0,1000,1000,0,0,12,@PHANTASM,3,600000,0,0,0,8,0,0,0,7901.544,-2581.989,487.178,2.059,'Eranikus - On Script - Summon Nightmare Phantasm'),
+(@ERANIKUS*100,9,11,0,0,0,100,0,1000,1000,0,0,12,@PHANTASM,3,600000,0,0,0,8,0,0,0,7918.844,-2553.987,486.911,3.772,'Eranikus - On Script - Summon Nightmare Phantasm'),
+(@ERANIKUS*100,9,12,0,0,0,100,0,5000,5000,0,0,12,@PHANTASM,3,600000,0,0,0,8,0,0,0,7865.966,-2554.104,486.967,5.492,'Eranikus - On Script - Summon Nightmare Phantasm'),
+(@ERANIKUS*100,9,13,0,0,0,100,0,1000,1000,0,0,12,@PHANTASM,3,600000,0,0,0,8,0,0,0,7873.412,-2587.454,486.946,0.924,'Eranikus - On Script - Summon Nightmare Phantasm'),
+(@ERANIKUS*100,9,14,0,0,0,100,0,1000,1000,0,0,12,@PHANTASM,3,600000,0,0,0,8,0,0,0,7901.544,-2581.989,487.178,2.059,'Eranikus - On Script - Summon Nightmare Phantasm'),
+(@ERANIKUS*100,9,15,0,0,0,100,0,1000,1000,0,0,12,@PHANTASM,3,600000,0,0,0,8,0,0,0,7918.844,-2553.987,486.911,3.772,'Eranikus - On Script - Summon Nightmare Phantasm'),
+(@ERANIKUS*100,9,16,0,0,0,100,0,1000,1000,0,0,1,6,35000,0,0,0,0,1,0,0,0,0,0,0,0,'Eranikus - On Script - Say 6'),
+(@ERANIKUS,0,9,0,52,0,100,0,6,@ERANIKUS,0,0,80,@ERANIKUS*100+1,0,2,0,0,0,1,0,0,0,0,0,0,0,'Eranikus - On Say 6 - Start Script'),
+(@ERANIKUS*100+1,9,0,0,0,0,100,0,1000,1000,0,0,12,@PHANTASM,3,600000,0,0,0,8,0,0,0,7865.966,-2554.104,486.967,5.492,'Eranikus - On Script - Summon Nightmare Phantasm'),
+(@ERANIKUS*100+1,9,1,0,0,0,100,0,1000,1000,0,0,12,@PHANTASM,3,600000,0,0,0,8,0,0,0,7873.412,-2587.454,486.946,0.924,'Eranikus - On Script - Summon Nightmare Phantasm'),
+(@ERANIKUS*100+1,9,2,0,0,0,100,0,1000,1000,0,0,12,@PHANTASM,3,600000,0,0,0,8,0,0,0,7901.544,-2581.989,487.178,2.059,'Eranikus - On Script - Summon Nightmare Phantasm'),
+(@ERANIKUS*100+1,9,3,0,0,0,100,0,1000,1000,0,0,12,@PHANTASM,3,600000,0,0,0,8,0,0,0,7918.844,-2553.987,486.911,3.772,'Eranikus - On Script - Summon Nightmare Phantasm'),
+(@ERANIKUS*100+1,9,4,0,0,0,100,0,5000,5000,0,0,12,@PHANTASM,3,600000,0,0,0,8,0,0,0,7865.966,-2554.104,486.967,5.492,'Eranikus - On Script - Summon Nightmare Phantasm'),
+(@ERANIKUS*100+1,9,5,0,0,0,100,0,1000,1000,0,0,12,@PHANTASM,3,600000,0,0,0,8,0,0,0,7873.412,-2587.454,486.946,0.924,'Eranikus - On Script - Summon Nightmare Phantasm'),
+(@ERANIKUS*100+1,9,6,0,0,0,100,0,1000,1000,0,0,12,@PHANTASM,3,600000,0,0,0,8,0,0,0,7901.544,-2581.989,487.178,2.059,'Eranikus - On Script - Summon Nightmare Phantasm'),
+(@ERANIKUS*100+1,9,7,0,0,0,100,0,1000,1000,0,0,12,@PHANTASM,3,600000,0,0,0,8,0,0,0,7918.844,-2553.987,486.911,3.772,'Eranikus - On Script - Summon Nightmare Phantasm'),
+(@ERANIKUS*100+1,9,8,0,0,0,100,0,5000,5000,0,0,12,@PHANTASM,3,600000,0,0,0,8,0,0,0,7865.966,-2554.104,486.967,5.492,'Eranikus - On Script - Summon Nightmare Phantasm'),
+(@ERANIKUS*100+1,9,9,0,0,0,100,0,1000,1000,0,0,12,@PHANTASM,3,600000,0,0,0,8,0,0,0,7873.412,-2587.454,486.946,0.924,'Eranikus - On Script - Summon Nightmare Phantasm'),
+(@ERANIKUS*100+1,9,10,0,0,0,100,0,1000,1000,0,0,12,@PHANTASM,3,600000,0,0,0,8,0,0,0,7901.544,-2581.989,487.178,2.059,'Eranikus - On Script - Summon Nightmare Phantasm'),
+(@ERANIKUS*100+1,9,11,0,0,0,100,0,1000,1000,0,0,12,@PHANTASM,3,600000,0,0,0,8,0,0,0,7918.844,-2553.987,486.911,3.772,'Eranikus - On Script - Summon Nightmare Phantasm'),
+(@ERANIKUS*100+1,9,12,0,0,0,100,0,5000,5000,0,0,12,@PHANTASM,3,600000,0,0,0,8,0,0,0,7865.966,-2554.104,486.967,5.492,'Eranikus - On Script - Summon Nightmare Phantasm'),
+(@ERANIKUS*100+1,9,13,0,0,0,100,0,1000,1000,0,0,12,@PHANTASM,3,600000,0,0,0,8,0,0,0,7873.412,-2587.454,486.946,0.924,'Eranikus - On Script - Summon Nightmare Phantasm'),
+(@ERANIKUS*100+1,9,14,0,0,0,100,0,1000,1000,0,0,12,@PHANTASM,3,600000,0,0,0,8,0,0,0,7901.544,-2581.989,487.178,2.059,'Eranikus - On Script - Summon Nightmare Phantasm'),
+(@ERANIKUS*100+1,9,15,0,0,0,100,0,1000,1000,0,0,12,@PHANTASM,3,600000,0,0,0,8,0,0,0,7918.844,-2553.987,486.911,3.772,'Eranikus - On Script - Summon Nightmare Phantasm'),
+(@ERANIKUS*100+1,9,16,0,0,0,100,0,1000,1000,0,0,1,7,33000,0,0,0,0,1,0,0,0,0,0,0,0,'Eranikus - On Script - Say 7'),
+(@ERANIKUS,0,10,0,40,0,100,0,4,@ERANIKUS,0,0,2,14,0,0,0,0,0,1,0,0,0,0,0,0,0,'Eranikus - Waypont 4 reached - Set faction enemy'),
+(@ERANIKUS,0,38,0,40,0,100,0,4,@ERANIKUS,0,0,8,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Eranikus - Waypont 4 - Set react state aggresive'),
+(@ERANIKUS,0,11,0,2,0,100,0,30,65,12000,35000,12,@PHANTASM,3,600000,0,0,0,1,0,0,0,0,0,0,0,'Eranikus - In Combat - Summon Nightmare Phantasm'),
+(@ERANIKUS,0,12,0,4,1,100,0,0,0,0,0,1,8,0,0,0,0,0,1,0,0,0,0,0,0,0,'Eranikus - On aggro - Say 8'),
+(@ERANIKUS,0,13,0,4,0,100,0,0,0,0,0,8,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Eranikus - On aggro - Set react state aggresive'),
+(@ERANIKUS,0,14,0,4,0,100,0,0,0,0,0,49,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Eranikus - On aggro - Start Attack'),
+(@ERANIKUS,0,15,0,0,0,100,0,2000,4000,55000,60000,11,24818,0,0,0,0,0,2,0,0,0,0,0,0,0,'Eranikus - In Combat - Cast Noxious Breath'),
+(@ERANIKUS,0,16,0,0,0,100,0,9000,14000,50000,55000,11,24839,0,0,0,0,0,2,0,0,0,0,0,0,0,'Eranikus - In Combat - Cast Acid Spit'),
+(@ERANIKUS,0,17,0,0,0,100,0,10000,20000,15000,25000,11,22878,0,0,0,0,0,2,0,0,0,0,0,0,0,'Eranikus - In Combat - Cast Shadow Bolt Volley'),
+(@ERANIKUS,0,18,0,2,0,100,1,0,70,0,0,12,@TYRANDE,3,3600000,0,0,0,8,0,0,0,7900.216,-2572.621,488.176,2.330,'Eranikus - At 70% - Summon Tyrande'),
+(@ERANIKUS,0,34,0,2,0,100,1,0,69,0,0,1,0,0,0,0,0,0,11,@TYRANDE,30,0,0,0,0,0,'Eranikus - At 69% - Tyrande Say 0'),
+(@ERANIKUS,0,35,0,2,0,100,1,0,30,0,0,1,1,0,0,0,0,0,11,@TYRANDE,30,0,0,0,0,0,'Eranikus - At 30% - Tyrande Say 1'),
+(@ERANIKUS,0,19,0,2,0,100,1,0,25,0,0,1,9,0,0,0,0,0,1,0,0,0,0,0,0,0,'Eranikus - At 25% - Say 9'),
+(@ERANIKUS,0,20,0,2,0,100,1,0,22,0,0,1,10,0,0,0,0,0,1,0,0,0,0,0,0,0,'Eranikus - At 22% - Say 10'),
+(@ERANIKUS,0,21,0,2,0,100,1,0,20,0,0,1,11,0,0,0,0,0,1,0,0,0,0,0,0,0,'Eranikus - At 20% - Say 11'),
+(@ERANIKUS,0,22,0,52,0,100,0,11,@ERANIKUS,0,0,2,35,0,0,0,0,0,1,0,0,0,0,0,0,0,'Eranikus - On Say 2 - Set faction friendly'),
+(@ERANIKUS,0,23,0,52,0,100,0,11,@ERANIKUS,0,0,8,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Eranikus - On Say 2 - Set react state passive'),
+(@ERANIKUS,0,24,0,52,0,100,0,11,@ERANIKUS,0,0,18,33555200,0,0,0,0,0,1,0,0,0,0,0,0,0,'Eranikus - On Say 2 - Set unit flags'),
+(@ERANIKUS,0,25,0,52,0,100,0,11,@ERANIKUS,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Eranikus - On Say 2 - Stop AutoAttack'),
+(@ERANIKUS,0,26,0,52,0,100,0,11,@ERANIKUS,0,0,1,12,3000,0,0,0,0,1,0,0,0,0,0,0,0,'Eranikus - Say 11 - Say 12'),
+(@ERANIKUS,0,27,0,52,0,100,0,12,@ERANIKUS,0,0,12,@E_REDEEM,3,60000,0,0,0,8,0,0,0,7904.248,-2564.867,488.156,5.116,'Eranikus - On Say 12 - Summon Eranikus the Redeemed'),
+(@ERANIKUS,0,28,0,52,0,100,0,12,@ERANIKUS,0,0,37,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Eranikus - Say 12 - Kill'),
+(@ERANIKUS,0,31,0,7,0,100,0,0,0,0,0,6,8736,0,0,0,0,0,18,40,0,0,0,0,0,0,'Eranikus - On Evade - Quest Fail'),
+(@ERANIKUS,0,32,0,6,0,100,0,0,0,0,0,47,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Eranikus - On Death - Set invisibility'),
+(@ERANIKUS,0,33,0,40,0,100,0,5,@ERANIKUS,0,0,47,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Eranikus - On WayPoint 5 - Set invisibility'),
+(@ERANIKUS,0,36,0,40,0,100,0,5,@ERANIKUS,0,0,37,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Eranikus - On WayPoint 5 - Die'),
+(@ERANIKUS,0,37,0,40,0,100,0,5,@ERANIKUS,0,0,6,8736,0,0,0,0,0,18,40,0,0,0,0,0,0,'Eranikus - On WayPoint 5 - Quest Fail');
+
+-- Tyrande SAI
+DELETE FROM `smart_scripts` WHERE entryorguid IN (@TYRANDE);
+INSERT INTO `smart_scripts` VALUES
+(@TYRANDE,0,0,0,54,0,100,1,0,0,0,0,8,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Tyrande - On Summon - Set react state aggresive'),
+(@TYRANDE,0,1,0,1,0,100,1,95000,95000,95000,95000,47,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Tyrande - OOC 60 Sec - Set invisibility'),
+(@TYRANDE,0,2,0,1,0,100,1,96000,96000,96000,96000,37,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Tyrande - OOC 61 Sec - Kill'),
+(@TYRANDE,0,3,0,0,0,100,0,1000,2000,2300,2500,11,21668,0,0,0,0,0,11,@ERANIKUS,20,0,0,0,0,0,'Tyrande - In Combat - Cast Starfall');
+
+-- Eranikus the Redeemed SAI
+UPDATE `creature_template` SET AIName='SmartAI', modelid1=6984 WHERE entry=@E_REDEEM;
+DELETE FROM `smart_scripts` WHERE entryorguid IN(@E_REDEEM);
+INSERT INTO `smart_scripts` VALUES
+(@E_REDEEM,0,0,0,1,0,100,1,7000,7000,7000,7000,1,0,10000,0,0,0,0,1,0,0,0,0,0,0,0,'Eranikus the Redeemed - OOC 7 Secs - Say 0'),
+(@E_REDEEM,0,1,0,52,0,100,0,0,@E_REDEEM,0,0,1,1,10000,0,0,0,0,1,0,0,0,0,0,0,0,'Eranikus the Redeemed - On Say 0 - Say 1'),
+(@E_REDEEM,0,2,0,52,0,100,0,1,@E_REDEEM,0,0,1,2,10000,0,0,0,0,1,0,0,0,0,0,0,0,'Eranikus the Redeemed - On Say 1 - Say 2'),
+(@E_REDEEM,0,3,0,52,0,100,0,2,@E_REDEEM,0,0,1,3,10000,0,0,0,0,1,0,0,0,0,0,0,0,'Eranikus the Redeemed - On Say 2 - Say 3'),
+(@E_REDEEM,0,5,0,52,0,100,0,3,@E_REDEEM,0,0,15,8736,0,0,0,0,0,18,30,0,0,0,0,0,0,'Eranikus the Redeemed - On Say 3 - Credit'),
+(@E_REDEEM,0,6,0,52,0,100,0,3,@E_REDEEM,0,0,45,1,1,0,0,0,0,11,@REMULOS,40,0,0,0,0,0,'Eranikus the Redeemed - On Say 3 - Set Data');
+
+UPDATE `creature_template` SET AIName='SmartAI', Faction_A=14, Faction_H=14 WHERE entry=@PHANTASM;
+DELETE FROM `smart_scripts` WHERE entryorguid IN(@PHANTASM);
+INSERT INTO `smart_scripts` VALUES
+(@PHANTASM,0,0,0,54,0,100,0,0,0,0,0,53,1,@PHANTASM,0,8736,0,0,1,0,0,0,0,0,0,0,'Nightmare Phantasm - Summon - Start WayPoint'),
+(@PHANTASM,0,1,0,54,0,100,0,0,0,0,0,8,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Nightmare Phantasm - Summon - Aggresive'),
+(@PHANTASM,0,2,0,54,0,100,0,0,0,0,0,49,0,0,0,0,0,0,18,50,0,0,0,0,0,0,'Nightmare Phantasm - Summon - Attack Player'),
+(@PHANTASM,0,3,0,6,0,75,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Nightmare Phantasm - Death - Say 0'),
+(@PHANTASM,0,4,0,40,0,100,0,4,@PHANTASM,0,0,53,1,@PHANTASM,0,8736,0,0,1,0,0,0,0,0,0,0,'Nightmare Phantasm - WayPoint 20 - Start Again'),
+(@PHANTASM,0,5,0,1,0,100,1,60000,60000,60000,60000,47,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Nightmare Phantasm - OOC 60 Secs - Unseen'),
+(@PHANTASM,0,6,0,1,0,100,1,63000,63000,63000,63000,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Nightmare Phantasm - OOC 63 Secs - Despawn'),
+(@PHANTASM,0,7,0,1,0,100,1,5000,5000,5000,5000,53,1,@PHANTASM,0,8736,0,0,1,0,0,0,0,0,0,0,'Nightmare Phantasm - OOC 5 Secs - Start WayPoint');
+
+DELETE FROM `creature_template_addon` WHERE `entry`=@MALFURION;
+INSERT INTO `creature_template_addon` (`entry`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
+(@MALFURION,0,0,33554432,0,0,'24999'); -- Malfurion's Shade Aura & Hover Mode
+
+DELETE FROM `creature_template_addon` WHERE `entry`=@ERANIKUS;
+INSERT INTO `creature_template_addon` (`entry`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
+(@ERANIKUS,0,0,33554432,0,0,'');
+
+DELETE FROM `spell_target_position` WHERE `id`=25004;
+INSERT INTO `spell_target_position` (`id`,`target_map`,`target_position_x`,`target_position_y`,`target_position_z`,`target_orientation`) VALUES
+(25004,1,7730.5288,-2318.8596,451.34,0);
+
+-- Waypoints
+DELETE FROM `waypoints` WHERE entry=@REMULOS;
+INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`point_comment`) VALUES
+(@REMULOS,1,7829.66,-2244.87,463.87,'Keeper Remulos'),
+(@REMULOS,2,7817.25,-2306.20,456.00,'Keeper Remulos'),
+(@REMULOS,3,7866.54,-2312.20,463.32,'Keeper Remulos'),
+(@REMULOS,4,7908.488,-2309.086,467.677,'Keeper Remulos'),
+(@REMULOS,5,7933.290,-2314.777,473.674,'Keeper Remulos'),
+(@REMULOS,6,7942.543457,-2320.170654,476.770355,'Keeper Remulos'),
+(@REMULOS,7,7953.036133,-2357.953613,486.379303,'Keeper Remulos'),
+(@REMULOS,8,7962.706055,-2411.155518,488.955231,'Keeper Remulos'),
+(@REMULOS,9,7976.860352,-2552.697998,490.081390,'Keeper Remulos'),
+(@REMULOS,10,7949.307617,-2569.120361,489.716248,'Keeper Remulos'),
+(@REMULOS,11,7950.945801,-2597.000000,489.765564,'Keeper Remulos'),
+(@REMULOS,12,7948.758301,-2610.823486,492.368988,'Keeper Remulos'),
+(@REMULOS,13,7928.785156,-2629.920654,492.524933,'Keeper Remulos'), ## stop
+(@REMULOS,14,7948.697754,-2610.551758,492.363983,'Keeper Remulos'),
+(@REMULOS,15,7952.019531,-2591.974609,490.081238,'Keeper Remulos'),
+(@REMULOS,16,7940.567871,-2577.845703,488.946808,'Keeper Remulos'),
+(@REMULOS,17,7908.662109,-2566.450439,488.634644,'Keeper Remulos'),
+(@REMULOS,18,7873.132324,-2567.422363,486.946442,'Keeper Remulos'),
+(@REMULOS,19,7839.844238,-2570.598877,489.286224,'Keeper Remulos'),
+(@REMULOS,20,7830.678597,-2572.878974,489.286224,'Keeper Remulos'),
+(@REMULOS,21,7890.504,-2567.259,487.306,'Keeper Remulos'),
+(@REMULOS,22,7906.447,-2566.105,488.435,'Keeper Remulos'),
+(@REMULOS,23,7925.861,-2573.601,489.642,'Keeper Remulos'),
+(@REMULOS,24,7912.283,-2568.500,488.891,'Keeper Remulos');
+
+DELETE FROM `waypoints` WHERE `entry`=@REMULOS*100;
+INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`point_comment`) VALUES
+(@REMULOS*100,1,7828.5752,-2246.8354,463.5159,'Keeper Remulos - WP1'),
+(@REMULOS*100,2,7824.6440,-2279.0273,459.3173,'Keeper Remulos - WP2'),
+(@REMULOS*100,3,7814.1699,-2302.2565,456.2227,'Keeper Remulos - WP3'),
+(@REMULOS*100,4,7787.4604,-2320.9807,454.5470,'Keeper Remulos - WP4'),
+(@REMULOS*100,5,7753.7495,-2319.0832,454.7066,'Keeper Remulos - WP5'),
+(@REMULOS*100,6,7787.4604,-2320.9807,454.5470,'Keeper Remulos - WP6'),
+(@REMULOS*100,7,7814.1699,-2302.2565,456.2227,'Keeper Remulos - WP7'),
+(@REMULOS*100,8,7824.6440,-2279.0273,459.3173,'Keeper Remulos - WP8'),
+(@REMULOS*100,9,7828.5752,-2246.8354,463.5159,'Keeper Remulos - WP9'),
+(@REMULOS*100,10,7848.3,-2216.35,470.888,'Keeper Remulos - WP10 (Home)');
+
+
+-- Waypoints
+DELETE FROM `waypoints` WHERE entry IN(@ERANIKUS);
+INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`point_comment`) VALUES
+(@ERANIKUS,1,7949.812,-2605.4748,513.591,'Eranikus'),
+(@ERANIKUS,2,7931.3330,-2575.2097,489.6286,'Eranikus'),
+(@ERANIKUS,3,7925.129,-2573.747,493.901,'Eranikus'),
+(@ERANIKUS,4,7910.554,-2565.5534,488.616,'Eranikus'),
+(@ERANIKUS,5,7867.442,-2567.334,486.946,'Eranikus');
+
+
+-- Waypoints
+DELETE FROM `waypoints` WHERE entry IN(@PHANTASM);
+INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`point_comment`) VALUES
+(@PHANTASM,1,7891.990,-2566.737,487.385,'Phantasm'),
+(@PHANTASM,2,7865.966,-2554.104,486.967,'Phantasm'),
+(@PHANTASM,3,7901.544,-2581.989,487.178,'Phantasm'),
+(@PHANTASM,4,7918.844,-2553.987,486.911,'Phantasm'),
+(@PHANTASM,5,7873.412,-2587.454,486.946,'Phantasm');
+
+-- Waypoints
+DELETE FROM `waypoints` WHERE entry=@REMULOS*100+1;
+INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`point_comment`) VALUES
+(@REMULOS*100+1,12,7847.066,-2217.571,470.403,'Keeper Remulos'),
+(@REMULOS*100+1,11,7829.66,-2244.87,463.87,'Keeper Remulos'),
+(@REMULOS*100+1,10,7817.25,-2306.20,456.00,'Keeper Remulos'),
+(@REMULOS*100+1,9,7866.54,-2312.20,463.32,'Keeper Remulos'),
+(@REMULOS*100+1,8,7908.488,-2309.086,467.677,'Keeper Remulos'),
+(@REMULOS*100+1,7,7933.290,-2314.777,473.674,'Keeper Remulos'),
+(@REMULOS*100+1,6,7942.543457,-2320.170654,476.770355,'Keeper Remulos'),
+(@REMULOS*100+1,5,7953.036133,-2357.953613,486.379303,'Keeper Remulos'),
+(@REMULOS*100+1,4,7962.706055,-2411.155518,488.955231,'Keeper Remulos'),
+(@REMULOS*100+1,3,7976.860352,-2552.697998,490.081390,'Keeper Remulos'),
+(@REMULOS*100+1,2,7949.307617,-2569.120361,489.716248,'Keeper Remulos'),
+(@REMULOS*100+1,1,7940.567871,-2577.845703,488.946808,'Keeper Remulos');
+
+-- Arch Druid Lilliandra
+DELETE FROM `smart_scripts` WHERE entryorguid = 30630 AND `source_type` = 0;
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(30630, 0, 0, 1, 62, 0, 100, 0, 9991, 0, 0, 0, 85, 57536, 0, 0, 0, 0, 0, 19, 30630, 0, 0, 0, 0, 0, 0, 'Arch Druid Lilliandra - On gossip option select - Player Cast Forcecast Portal: Moonglade on Arch Druid Lilliandra');
+
+-- Icecrown's Moonglade portal
+DELETE FROM `npc_spellclick_spells` WHERE `npc_entry`=32790;
+INSERT INTO `npc_spellclick_spells` (`npc_entry`, `spell_id`, `cast_flags`, `user_type`) VALUES
+(32790,57654,1,0);
+
+DELETE FROM `smart_scripts` WHERE entryorguid IN (32790) AND `source_type` IN (0);
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(32790, 0, 0, 1, 11, 0, 100, 0, 0, 0, 0, 0, 3, 0, 11686, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Moonglade Portal - On Respawn - Morph Into 0'),
+(32790, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 11, 61722, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Moonglade Portal - On Respawn - Cast Nature Portal State');
+
+-- Moonglade's return portal
+DELETE FROM `npc_spellclick_spells` WHERE `npc_entry`=32788;
+INSERT INTO `npc_spellclick_spells` (`npc_entry`, `spell_id`, `cast_flags`, `user_type`) VALUES
+(32788,57539,1,0);
+
+DELETE FROM `smart_scripts` WHERE entryorguid IN (32788) AND `source_type` IN (0);
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(32788, 0, 0, 1, 11, 0, 100, 0, 0, 0, 0, 0, 3, 0, 11686, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Moonglade Return Portal - On Respawn - Morph Into 0'),
+(32788, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 11, 61722, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Moonglade Return Portal - On Respawn - Cast Nature Portal State');
+
+-- Conditions for portals
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=18 AND `SourceEntry` IN (57654,57539);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(18, 32790, 57654, 0, 0, 28, 0, 13073, 0, 0, 0, 0, 0, '', 'Required quest active for spellclick'),
+(18, 32788, 57539, 0, 0, 28, 0, 13075, 0, 0, 0, 0, 0, '', 'Required quest active for spellclick');
+
+DELETE FROM `gossip_menu_option` WHERE `menu_id` IN (9991,10215);
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`, `option_id`, `npc_option_npcflag`, `action_menu_id`, `action_poi_id`, `box_coded`, `box_money`, `box_text`) VALUES
+(9991, 0, 0, 'It''s a pleasure to meet you as well, Arch Druid. I am on a task from Tirion and time is short, might I trouble you for a portal to Moonglade?', 1, 1, 9992, 0, 0, 0, ''),
+(10215, 0, 0, 'Please send me into the Emerald Dream to recover the acorns. I know of the danger and I do not fear it.', 1, 1, 0, 0, 0, 0, ''),
+(10215, 1, 0, 'I wish to return to Arch Druid Lilliandra. Can you send me back to her?', 1, 1, 0, 0, 0, 0, '');
+
+-- Conditions for gossip
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup` IN (9991,10215);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(15, 9991, 0, 0, 0, 28, 0, 13073, 0, 0, 0, 0, 0, '', 'Show gossip menu option only if player has quest 13073 complete'),
+(15, 10215, 1, 0, 0, 28, 0, 13075, 0, 0, 0, 0, 0, '', 'Show gossip menu option only if player has quest 13075 complete'),
+(15, 10215, 0, 0, 0, 9, 0, 13074, 0, 0, 0, 0, 0, '', 'Show gossip menu option only if player has quest 13074 taken');
diff --git a/sql/updates/world/2013_08_04_01_world_sai.sql b/sql/updates/world/2013_08_04_01_world_sai.sql
new file mode 100644
index 00000000000..b327d567024
--- /dev/null
+++ b/sql/updates/world/2013_08_04_01_world_sai.sql
@@ -0,0 +1,21 @@
+SET @NPC := 7271;
+DELETE FROM `creature_ai_scripts` WHERE creature_id=@NPC;
+UPDATE `creature_template` SET `AIName`='SmartAI', `unit_flags`=32768 WHERE `entry`=@NPC;
+DELETE FROM `smart_scripts` WHERE (`entryorguid`=@NPC AND `source_type`=0);
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@NPC, 0, 0, 1, 10, 0, 100, 1, 0, 10, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Witch Doctor Zum''rah - On OOC Los - Say Line 0'),
+(@NPC, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 2, 14, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Witch Doctor Zum''rah - On Link - Remove PC immunity'),
+(@NPC, 0, 3, 0, 0, 0, 100, 0, 1000, 3000, 6000, 10000, 11, 12739, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Witch Doctor Zum''rah - IC - Cast Shadowbolt '),
+(@NPC, 0, 4, 0, 2, 0, 100, 0, 30, 100, 30, 100, 23, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Witch Doctor Zum''rah - On mana pct above 30% - Decrement Phase'),
+(@NPC, 0, 5, 0, 0, 0, 100, 0, 15, 0, 15, 0, 23, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Witch Doctor Zum''rah - On mana pct 15 - Decrement Phase'),
+(@NPC, 0, 6, 0, 0, 0, 100, 0, 7000, 13000, 22000, 36000, 11, 15245, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Witch Doctor Zum''rah - IC - Cast Shadowbolt Volley'),
+(@NPC, 0, 7, 0, 0, 0, 100, 0, 8000, 15000, 26000, 39000, 11, 11086, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Witch Doctor Zum''rah - IC - Cast Ward of Zum''rah '),
+(@NPC, 0, 8, 0, 0, 0, 100, 0, 4000, 19000, 23000, 30000, 11, 12491, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Witch Doctor Zum''rah - IC - Cast Healing Wave'),
+(@NPC, 0, 9, 10, 6, 0, 100, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Witch Doctor Zum''rah - On Death - Yell'),
+(@NPC, 0, 10, 0, 61, 0, 100, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Witch Doctor Zum''rah - On Death - Set Phase 0'),
+(@NPC, 0, 11, 0, 7, 0, 100, 0, 0, 0, 0, 0, 2, 35, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Witch Doctor Zum''rah - On Evade - Set Friendly');
+
+DELETE FROM `creature_text` WHERE `entry` =@NPC;
+INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`) VALUES
+(@NPC, 0, 0, 'How dare you enter my sanctum!', 12, 0, 100, 0, 0, 0, 'Witch Doctor Zum''rah'),
+(@NPC, 1, 0, 'T''eif godehsi wha!', 14, 14, 100, 0, 0, 0, 'Witch Doctor Zum''rah');
diff --git a/sql/updates/world/2013_08_04_02_world_sai.sql b/sql/updates/world/2013_08_04_02_world_sai.sql
new file mode 100644
index 00000000000..3cf828456c0
--- /dev/null
+++ b/sql/updates/world/2013_08_04_02_world_sai.sql
@@ -0,0 +1,45 @@
+-- Added missing gossip and text for Meridith the Mermaiden.Her gossip should now cast spell=25678 Siren's Song if player has Quest:Love_Song_for_Narain done, which will make players with quest Draconic for Dummies swim faster and not suffer from fatigue loss in waters.
+
+-- Meridith the Mermaiden NPC id (15526)
+-- http://www.youtube.com/watch?v=8lz_LbsEsBQ Video of her giving spell on gossip select
+
+SET @MERIDITH := 15526;
+SET @SPELL := 25678; -- http://www.wowhead.com/spell=25678
+SET @GOSSIP := 6658;
+SET @NPCTEXT := 7916;
+SET @NPCTEXT1 := 7917;
+SET @QUEST := 8599;
+
+UPDATE `creature_template` SET `gossip_menu_id`=@GOSSIP WHERE `entry`=@MERIDITH;
+
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id` IN (@NPCTEXT,@NPCTEXT1);
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES
+(@GOSSIP,@NPCTEXT),
+(@GOSSIP,@NPCTEXT1);
+
+DELETE FROM `gossip_menu_option` WHERE `menu_id`=@GOSSIP;
+INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`) VALUES
+(@GOSSIP,0,0,"That would be wonderful! Thank you, Meridith.",1,1,0,0,0,0,'');
+
+-- SAI for Meridith the Mermaiden
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@MERIDITH;
+
+DELETE FROM `smart_scripts` WHERE (`entryorguid`=15526 AND `source_type`=0);
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@MERIDITH,0,0,1,62,0,100,0,@GOSSIP,0,0,0,11,@SPELL,0,0,0,0,0,7,0,0,0,0,0,0,0,'Meridith the Mermaiden - On gossip select - Spellcast'),
+(@MERIDITH,0,1,2,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Meridith the Mermaiden - On gossip select - Close Gossip'),
+(@MERIDITH,0,2,0,61,0,100,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Meridith the Mermaiden - On Gossip select - Say');
+
+-- Conditions for Spellcast
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (14,15) AND `SourceGroup`=@GOSSIP;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(14,@GOSSIP,@NPCTEXT,0,0,8,0,@QUEST,0,0,1,0,'','Show text if player doesn''t have quest rewarded' ),
+(14,@GOSSIP,@NPCTEXT1,0,0,8,0,@QUEST,0,0,0,0,'','Show text if player has quest rewarded'),
+(15,@GOSSIP,0,0,0,8,0,@QUEST,0,0,0,0,'','Show gossip only if player has quest done');
+
+
+-- Creature text
+DELETE FROM `npc_text` WHERE `ID` IN (@NPCTEXT,@NPCTEXT1);
+INSERT INTO `npc_text` (`ID`, `text0_0`, `text0_1`, `lang0`, `prob0`, `em0_0`, `em0_1`, `em0_2`, `em0_3`, `em0_4`, `em0_5`, `text1_0`, `text1_1`, `lang1`, `prob1`, `em1_0`, `em1_1`, `em1_2`, `em1_3`, `em1_4`, `em1_5`, `text2_0`, `text2_1`, `lang2`, `prob2`, `em2_0`, `em2_1`, `em2_2`, `em2_3`, `em2_4`, `em2_5`, `text3_0`, `text3_1`, `lang3`, `prob3`, `em3_0`, `em3_1`, `em3_2`, `em3_3`, `em3_4`, `em3_5`, `text4_0`, `text4_1`, `lang4`, `prob4`, `em4_0`, `em4_1`, `em4_2`, `em4_3`, `em4_4`, `em4_5`, `text5_0`, `text5_1`, `lang5`, `prob5`, `em5_0`, `em5_1`, `em5_2`, `em5_3`, `em5_4`, `em5_5`, `text6_0`, `text6_1`, `lang6`, `prob6`, `em6_0`, `em6_1`, `em6_2`, `em6_3`, `em6_4`, `em6_5`, `text7_0`, `text7_1`, `lang7`, `prob7`, `em7_0`, `em7_1`, `em7_2`, `em7_3`, `em7_4`, `em7_5`, `WDBVerified`) VALUES
+(@NPCTEXT, '', 'It''s so lovely to see you again, $N! I really can''t thank you enough for delivering that message to my dear little gnome.$B$BWould you like to hear a song? It will make traveling in the rough seas much easier!', 0, 1, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 11723),
+(@NPCTEXT1, '', 'I find the ocean floor to be very peaceful.', 0, 1, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 11723);
diff --git a/sql/updates/world/2013_08_04_03_world_sai.sql b/sql/updates/world/2013_08_04_03_world_sai.sql
new file mode 100644
index 00000000000..bd82b937ed7
--- /dev/null
+++ b/sql/updates/world/2013_08_04_03_world_sai.sql
@@ -0,0 +1,20 @@
+-- Random comment
+
+UPDATE `creature_template` SET AIName='SmartAI' WHERE entry IN (26417*100,26417);
+DELETE FROM `smart_scripts` WHERE source_type=0 AND entryorguid = 26417;
+DELETE FROM `smart_scripts` WHERE (`entryorguid`= 26417*100 AND `source_type`=9);
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(26417, 0, 0, 0, 8, 0, 25, 0, 47604, 0, 10000, 10000, 80, 2641700, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Runed Giant - Start Script for Free At Last'),
+(2641700, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 2, 35, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Runed Giant - Change Faction'),
+(2641700, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Runed Giant - Stop Attack'),
+(2641700, 9, 2, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 33, 26783, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Runed Giant - Quest Credit'),
+(2641700, 9, 3, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Runed Giant - Say Lines'),
+(2641700, 9, 4, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Runed Giant - Despawn'),
+(2641700, 9, 5, 0, 0, 0, 100, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Runed Giant - Reset Faction');
+
+DELETE FROM `creature_text` WHERE `entry` =26417;
+INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`) VALUES
+(26417, 0, 0, 'I thought I was doomed. Thank you for freeing me.', 12, 0, 100, 0, 0, 0, ''),
+(26417, 0, 1, 'You have my gratitude.', 12, 0, 100, 0, 0, 0, ''),
+(26417, 0, 2, 'I never thought I''d be free from that terrible spell!', 12, 0, 100, 0, 0, 0, ''),
+(26417, 0, 3, 'Thank you, small one.', 12, 0, 100, 0, 0, 0, '');
diff --git a/sql/updates/world/2013_08_04_04_world_trinity_string.sql b/sql/updates/world/2013_08_04_04_world_trinity_string.sql
new file mode 100644
index 00000000000..cab49ba73f3
--- /dev/null
+++ b/sql/updates/world/2013_08_04_04_world_trinity_string.sql
@@ -0,0 +1,3 @@
+DELETE FROM `trinity_string` WHERE `entry`=5037;
+INSERT INTO `trinity_string` (`entry`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`) VALUES
+(5037, 'MechanicImmuneMask: %u', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
diff --git a/sql/updates/world/2013_08_05_00_world_sai.sql b/sql/updates/world/2013_08_05_00_world_sai.sql
new file mode 100644
index 00000000000..05a675394c2
--- /dev/null
+++ b/sql/updates/world/2013_08_05_00_world_sai.sql
@@ -0,0 +1,3 @@
+-- Fix Redridge Mystic
+DELETE FROM `smart_scripts` WHERE `entryorguid`=430 AND `id`=12;
+UPDATE `smart_scripts` SET `link`=0 WHERE `entryorguid`=430 AND `id`=11;
diff --git a/sql/updates/world/2013_08_05_01_world_misc.sql b/sql/updates/world/2013_08_05_01_world_misc.sql
new file mode 100644
index 00000000000..a1e9aee50e7
--- /dev/null
+++ b/sql/updates/world/2013_08_05_01_world_misc.sql
@@ -0,0 +1,2 @@
+UPDATE `smart_scripts` SET `event_type`=2 WHERE `entryorguid`=7271 AND `source_type`=0 AND `id`=5 AND `link`=0;
+UPDATE `creature_template` SET `AIName`='SmartAI', `ScriptName`='', `InhabitType`=7, `faction_A`=35, `faction_H`=35, `unit_flags`=0, `type_flags`=8, `dynamicflags`=128, `flags_extra`=0, `speed_walk`=2 WHERE `entry`= 15491;
diff --git a/sql/updates/world/2013_08_05_01_world_trinity_string.sql b/sql/updates/world/2013_08_05_01_world_trinity_string.sql
new file mode 100644
index 00000000000..7e9a465d49a
--- /dev/null
+++ b/sql/updates/world/2013_08_05_01_world_trinity_string.sql
@@ -0,0 +1,8 @@
+DELETE FROM `trinity_string` WHERE `entry`=5038;
+INSERT INTO `trinity_string` (`entry`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`) VALUES
+(5038, 'Unit Flags: %u', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+
+UPDATE `trinity_string` SET `content_default`=
+'Unit Flags 2: %u.
+Dynamic Flags: %u.
+Faction Template: %u.' WHERE `entry`=542;
diff --git a/sql/updates/world/2013_08_05_02_world_quest_relation_tables.sql b/sql/updates/world/2013_08_05_02_world_quest_relation_tables.sql
new file mode 100644
index 00000000000..a7d2af1725a
--- /dev/null
+++ b/sql/updates/world/2013_08_05_02_world_quest_relation_tables.sql
@@ -0,0 +1,28 @@
+ALTER TABLE `creature_questrelation` RENAME `creature_queststarter`;
+ALTER TABLE `creature_involvedrelation` RENAME `creature_questender`;
+ALTER TABLE `gameobject_questrelation` RENAME `gameobject_queststarter`;
+ALTER TABLE `gameobject_involvedrelation` RENAME `gameobject_questender`;
+
+UPDATE `command` SET
+ `name` = 'reload gameobject_queststarter',
+ `help` = 'Syntax: .reload gameobject_queststarter\nReload gameobject_queststarter table.'
+WHERE
+ `name` = 'reload gameobject_questrelation';
+
+UPDATE `command` SET
+ `name` = 'reload gameobject_questender',
+ `help` = 'Syntax: .reload gameobject_questender\nReload gameobject_questender table.'
+WHERE
+ `name` = 'reload gameobject_questrelation';
+
+UPDATE `command` SET
+ `name` = 'reload creature_queststarter',
+ `help` = 'Syntax: .reload creature_queststarter\nReload creature_queststarter table.'
+WHERE
+ `name` = 'reload creature_questrelation';
+
+UPDATE `command` SET
+ `name` = 'reload creature_questender',
+ `help` = 'Syntax: .reload creature_questender\nReload creature_questender table.'
+WHERE
+ `name` = 'reload creature_involvedrelation';
diff --git a/sql/updates/world/2013_08_06_00_world_item_template.sql b/sql/updates/world/2013_08_06_00_world_item_template.sql
new file mode 100644
index 00000000000..15cc7ddfa5a
--- /dev/null
+++ b/sql/updates/world/2013_08_06_00_world_item_template.sql
@@ -0,0 +1 @@
+UPDATE `item_template` SET `spellcharges_1`=-1 WHERE `entry`=45008; -- confirmed in 4.x itemsparse
diff --git a/sql/updates/world/2013_08_06_01_world_hor.sql b/sql/updates/world/2013_08_06_01_world_hor.sql
new file mode 100644
index 00000000000..c9b8ccf8266
--- /dev/null
+++ b/sql/updates/world/2013_08_06_01_world_hor.sql
@@ -0,0 +1,24 @@
+-- areatrigger for the shadow throne
+DELETE FROM `areatrigger_scripts` WHERE `entry` = 5605;
+INSERT INTO `areatrigger_scripts` (`entry`,`scriptname`) VALUES
+(5605, 'at_shadow_throne');
+
+-- jaina's equipment
+DELETE FROM `creature_equip_template` WHERE `entry` = 36955 AND `id` = 1;
+INSERT INTO `creature_equip_template` (`entry`, `id`, `itementry1`, `itementry2`,`itementry3`) VALUES
+(36955, 1, 2177, 12869, 0);
+
+-- jaina's gossip menu (the same one FROM sylvanas)
+UPDATE `creature_template` SET `gossip_menu_id` = 10909 WHERE `entry` = 36955;
+
+-- jaina's scriptai part 2
+UPDATE `creature_template` SET `ScriptName` = 'npc_jaina_or_sylvanas_escape_hor' WHERE `entry` in (36955, 37554);
+
+-- Raging Ghoul scriptai
+UPDATE `creature_template` SET `ScriptName` = 'npc_raging_ghoul' WHERE `entry` = 36940;
+
+-- Risen Witch Doctor scriptai
+UPDATE `creature_template` SET `ScriptName` = 'npc_risen_witch_doctor' WHERE `entry` = 36941;
+
+-- LumberINg Abomination scriptai
+UPDATE `creature_template` SET `ScriptName` = 'npc_lumbering_abomination' WHERE `entry` = 37069;
diff --git a/sql/updates/world/2013_08_06_02_world_command.sql b/sql/updates/world/2013_08_06_02_world_command.sql
new file mode 100644
index 00000000000..2787cf079cf
--- /dev/null
+++ b/sql/updates/world/2013_08_06_02_world_command.sql
@@ -0,0 +1,3 @@
+DELETE FROM `command` WHERE `name`='reload gameobject_questender';
+INSERT INTO `command` (`name`, `security`, `help`) VALUES
+('reload gameobject_questender', 3, 'Syntax: .reload gameobject_questender\\nReload gameobject_questender table.');
diff --git a/sql/updates/world/2013_08_06_03_world_area_4522.sql b/sql/updates/world/2013_08_06_03_world_area_4522.sql
new file mode 100644
index 00000000000..63ac8c4aeac
--- /dev/null
+++ b/sql/updates/world/2013_08_06_03_world_area_4522.sql
@@ -0,0 +1,95 @@
+SET @CGUID := 120649;
+SET @HULKING_HORROR := 31411;
+SET @HULKING_HORROR1 := 31413;
+SET @KRENDELL := 31444;
+SET @V_COMMANDO := 31414;
+SET @UPPER_CUT := 10966;
+SET @INF_BITE := 49861;
+SET @COSMETIC_EXP := 46225;
+SET @FLAME_PATCH := 42344;
+SET @FC_PITFALL := 59398;
+SET @AURA_FALL := 59396;
+SET @ASPELL := 59073;
+SET @HSPELL := 59087;
+SET @AREA := 4522;
+
+-- Setting new spawns to appropriate phase, and older spawns to their own appropriate phase also.
+UPDATE `creature_template` SET `minlevel`=79, `maxlevel`=80, `exp`=2, `faction_A`=2043, `faction_H`=2043, `speed_run`=1.28968, `mindmg`=422, `maxdmg`=586, `attackpower`=642, `minrangedmg`=345, `maxrangedmg`=509, `rangedattackpower`=103 WHERE `entry`=31413;
+UPDATE `creature_template` SET AIName = 'SmartAI' WHERE entry IN (@HULKING_HORROR,@HULKING_HORROR1);
+UPDATE `creature` SET `phaseMask` = 2 WHERE id IN (@KRENDELL,@V_COMMANDO,@HULKING_HORROR);
+UPDATE `creature` SET `phaseMask` = 8 WHERE id = @HULKING_HORROR1;
+UPDATE `gameobject` SET `phaseMask` = 10 WHERE id IN (193401,193400);
+UPDATE `creature` SET `phaseMask` = 10 WHERE id IN (31641, 31644);
+
+-- Phasing zone to both Alliance and Horde sides so they don't collide with the npc's there.
+DELETE FROM `spell_area` WHERE `spell` IN (@HSPELL,@ASPELL) AND `area`=@AREA;
+INSERT INTO `spell_area` (`spell`,`area`,`quest_start`,`quest_end`,`aura_spell`,`racemask`,`gender`,`autocast`,`quest_start_status`,`quest_end_status`) VALUES
+(@HSPELL,@AREA,13258,13282,0, 690,2,1,66,43), -- Horde version
+(@ASPELL,@AREA,13386,13392,0,1101,2,1,66,43); -- Alliance version
+
+-- Missing Hulking Horrors
+DELETE FROM `creature` WHERE guid BETWEEN @CGUID AND @CGUID+22;
+INSERT INTO `creature` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`) VALUES
+(@CGUID, 31413, 571, 1, 8, 23681, 0, 5814.02, 1985.69, 503.881, 2.51188, 300, 5, 0, 12175, 0, 1, 0, 0, 0),
+(@CGUID+1, 31413, 571, 1, 8, 23681, 0, 5816.86, 1943.29, 507.56, 3.40633, 300, 5, 0, 12175, 0, 1, 0, 0, 0),
+(@CGUID+2, 31413, 571, 1, 8, 23681, 0, 5863.57, 1984, 507.648, 5.88321, 300, 5, 0, 12175, 0, 1, 0, 0, 0),
+(@CGUID+3, 31413, 571, 1, 8, 23681, 0, 5778.56, 1957.5, 503.857, 3.27375, 300, 5, 0, 12175, 0, 1, 0, 0, 0),
+(@CGUID+4, 31413, 571, 1, 8, 23681, 0, 5732.14, 1937.82, 506.014, 5.41257, 300, 5, 0, 12175, 0, 1, 0, 0, 0),
+(@CGUID+5, 31413, 571, 1, 8, 23681, 0, 5706.3, 1977.47, 503.911, 4.05224, 300, 5, 0, 12175, 0, 1, 0, 0, 0),
+(@CGUID+6, 31413, 571, 1, 8, 23681, 0, 5685.71, 1974.25, 503.863, 2.57831, 300, 5, 0, 12175, 0, 1, 0, 0, 0),
+(@CGUID+7, 31413, 571, 1, 8, 23681, 0, 5673.84, 2094.37, 503.889, 5.52857, 300, 5, 0, 12175, 0, 1, 0, 0, 0),
+(@CGUID+8, 31413, 571, 1, 8, 23681, 0, 5831.47, 2106.11, 503.89, 6.24962, 300, 5, 0, 12175, 0, 1, 0, 0, 0),
+(@CGUID+9, 31413, 571, 1, 8, 23681, 0, 5826.33, 2149.32, 505.746, 2.48705, 300, 5, 0, 12175, 0, 1, 0, 0, 0),
+(@CGUID+10, 31413, 571, 1, 8, 23681, 0, 5754.92, 2151.17, 503.91, 1.93734, 300, 5, 0, 12175, 0, 1, 0, 0, 0),
+(@CGUID+11, 31413, 571, 1, 8, 23681, 0, 5775.43, 2193.86, 512.998, 0.776427, 300, 5, 0, 12175, 0, 1, 0, 0, 0),
+(@CGUID+12, 31413, 571, 1, 8, 23681, 0, 5729.88, 2136.62, 503.894, 1.79434, 300, 5, 0, 12175, 0, 1, 0, 0, 0),
+(@CGUID+13, 31413, 571, 1, 8, 23681, 0, 5782.62, 2140.68, 503.9, 0.783972, 300, 5, 0, 12175, 0, 1, 0, 0, 0),
+(@CGUID+14, 31413, 571, 1, 8, 23681, 0, 5754.13, 2174.58, 506.181, 1.25723, 300, 5, 0, 12175, 0, 1, 0, 0, 0),
+(@CGUID+15, 31413, 571, 1, 8, 23681, 0, 5650.03, 2055.57, 503.868, 0.939173, 300, 5, 0, 12175, 0, 1, 0, 0, 0),
+(@CGUID+16, 31413, 571, 1, 8, 23681, 0, 5660.07, 2125.83, 505.943, 0.534949, 300, 5, 0, 12175, 0, 1, 0, 0, 0),
+(@CGUID+17, 31413, 571, 1, 8, 23681, 0, 5700.89, 2148.91, 503.999, 5.77704, 300, 0, 0, 12175, 0, 0, 0, 0, 0),
+(@CGUID+18, 31413, 571, 1, 8, 23681, 0, 5651.27, 2007.15, 504.97, 1.98891, 300, 5, 0, 12175, 0, 1, 0, 0, 0),
+(@CGUID+19, 31413, 571, 1, 8, 23681, 0, 5858.93, 2108.63, 505.124, 2.30257, 300, 5, 0, 12175, 0, 1, 0, 0, 0),
+(@CGUID+20, 31413, 571, 1, 8, 23681, 0, 5688.14, 2001.98, 503.924, 0.151243, 300, 5, 0, 12175, 0, 1, 0, 0, 0),
+(@CGUID+21, 31413, 571, 1, 8, 23681, 0, 5845.64, 2080.43, 503.97, 2.90496, 300, 5, 0, 12175, 0, 1, 0, 0, 0),
+(@CGUID+22, 31413, 571, 1, 8, 23681, 0, 5876.8, 2037.78, 506.147, 0.498635, 300, 0, 0, 12175, 0, 0, 0, 0, 0);
+
+-- Conditions for Aura fall
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 13 and `SourceEntry` = @AURA_FALL;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(13, 1, @AURA_FALL, 0, 0, 31, 0, 3, 31641, 0, 0, 0, 0, '', 'Aura fall hits only pitfall npc');
+
+-- Saronite bomb should blow-up the player into the pit
+UPDATE `gameobject_template` SET `AIName`='SmartGameObjectAI' WHERE `entry`=193400;
+DELETE FROM `smart_scripts` WHERE `source_type`=1 AND `entryorguid`=193400;
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(193400, 1, 0, 0, 19, 0, 100, 0, 13389, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 10, 123287, 31644, 0, 0, 0, 0, 0, 'Saronite Bomb Stack - On quest accept - Set Data'),
+(193400, 1, 1, 0, 19, 0, 100, 0, 13263, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 10, 123287, 31644, 0, 0, 0, 0, 0, 'Saronite Bomb Stack - On quest accept - Set Data');
+
+-- Cosmetic Explosion bunny
+UPDATE `creature_template` SET AIName = 'SmartAI' WHERE entry = 31644;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=31644 AND `source_type`=0;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(31644, 0, 0, 1, 38, 0, 100, 0, 1, 1, 0, 0, 11, @COSMETIC_EXP, 2, 0, 0, 0, 0, 9, 31644, 20, 40, 0, 0, 0, 0, 'Cosmetic Trigger - On Data set - Cosmetic Explosion'),
+(31644, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 11, @FLAME_PATCH, 2, 0, 0, 0, 0, 9, 31644, 20, 40, 0, 0, 0, 0, 'Cosmetic Trigger - On Link - Cast flame patch on npc''s'),
+(31644, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 12, 31641, 1, 0, 0, 0, 0, 21, 10, 0, 0, 0, 0, 0, 0, 'Saronite Bomb Stack - On Link - Summon Pitfall bunny');
+
+-- "Fall" vehicle bunny
+UPDATE `creature_template` SET AIName = 'SmartAI', `speed_walk`=20.1429, `speed_run`=20.1429 WHERE entry = 31641;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=31641 AND `source_type`=0;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(31641, 0, 0, 1, 54, 0, 100, 0, 0, 0, 0, 0, 11, @FC_PITFALL, 2, 0, 0, 0, 0, 21, 100, 0, 0, 0, 0, 0, 0, 'Pitfall bunny - On respawn - Cast FC pitfall'),
+(31641, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 5756.644, 2050.579, 480.6346, 0, 'Pitfall bunny - On Link - Go to PoS');
+
+-- Hulking Horror phase 2
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@HULKING_HORROR AND `source_type`=0;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@HULKING_HORROR,0,0,0,0,0,100,0,8000,16000,24000,32000,11,@INF_BITE,0,0,0,0,0,5,0,0,0,0,0,0,0,'Hulking Horror - In Combat - Cast Infected Bite'),
+(@HULKING_HORROR,0,1,0,0,0,100,0,4000,9000,14000,19000,11,@UPPER_CUT,0,0,0,0,0,5,0,0,0,0,0,0,0,'Hulking Horror - In Combat - Cast Uppercut'),
+(@HULKING_HORROR,0,2,0,6,0,100,0,0,0,0,0,33,31413,0,0,0,0,0,5,0,0,0,0,0,0,0,'Hulking Horror - On Death - Killcredit');
+
+-- Hulking Horrors phase 8
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@HULKING_HORROR1 AND `source_type`=0;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@HULKING_HORROR1,0,0,0,0,0,100,0,8000,16000,24000,32000,11,@INF_BITE,0,0,0,0,0,5,0,0,0,0,0,0,0,'Hulking Horror - In Combat - Cast Infected Bite'),
+(@HULKING_HORROR1,0,1,0,0,0,100,0,4000,9000,14000,19000,11,@UPPER_CUT,0,0,0,0,0,5,0,0,0,0,0,0,0,'Hulking Horror - In Combat - Cast Uppercut');
diff --git a/sql/updates/world/2013_08_06_04_world_sai.sql b/sql/updates/world/2013_08_06_04_world_sai.sql
new file mode 100644
index 00000000000..54124c1ea41
--- /dev/null
+++ b/sql/updates/world/2013_08_06_04_world_sai.sql
@@ -0,0 +1,35 @@
+-- Into The Wild Green Yonder (13045)
+SET @NPC_CAPTURED := 30407; -- Captured Crusader
+SET @NPC_SKYTALON := 30500; -- Argent Skytalon (not the mount)
+SET @NPC_SKYTALON_MOUNT := 30228; -- Argent Skytalon (mount)
+
+UPDATE `creature_template` SET `faction_A`=2070,`faction_H`=2070 WHERE `entry`=@NPC_SKYTALON;
+UPDATE `creature_template` SET `npcflag`=0 WHERE `entry`=@NPC_SKYTALON_MOUNT;
+
+-- Re-vamped SAI script
+UPDATE `creature_template` SET `npcflag`=0,`AIName`='SmartAI' WHERE `entry`=@NPC_CAPTURED;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@NPC_CAPTURED;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@NPC_CAPTURED,0,0,1,25,0,100,0,0,0,0,0,75,56726,0,0,0,0,0,1,0,0,0,0,0,0,0,'Apply aura on reset, linking to id 1'),
+(@NPC_CAPTURED,0,1,0,61,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'set phasemask to 1'),
+(@NPC_CAPTURED,0,2,0,1,1,100,0,4000,4000,4000,4000,10,70,22,0,0,0,0,1,0,0,0,0,0,0,0,'play emote OOC in phase 1'),
+(@NPC_CAPTURED,0,3,4,8,1,100,0,56683,0,0,0,11,56687,0,0,0,0,0,7,0,0,0,0,0,0,0,'Mount proto drake on spell hit, linking to id 4'),
+(@NPC_CAPTURED,0,4,5,61,1,100,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Say text , linking to id 5'),
+(@NPC_CAPTURED,0,5,0,61,1,100,0,0,0,0,0,22,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'set phasemask to 2'),
+(@NPC_CAPTURED,0,6,0,1,2,100,0,8000,8000,8000,8000,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Say text OOC in phase 2, starting with 8sec delay, then repeat every 8 secs'),
+(@NPC_CAPTURED,0,7,8,23,2,100,0,56687,0,1000,1000,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'say text if does not have ride aura(check every 1 sec), linking to id 8'),
+(@NPC_CAPTURED,0,8,9,61,2,100,0,0,0,0,0,41,5000,0,0,0,0,0,1,0,0,0,0,0,0,0,'set despawn timer for 5 secs, linking to id 9'),
+(@NPC_CAPTURED,0,9,0,61,2,100,0,0,0,0,0,22,4,0,0,0,0,0,1,0,0,0,0,0,0,0,'set phase to 4');
+-- Re-vamped spellclick
+DELETE FROM `npc_spellclick_spells` WHERE `npc_entry`=@NPC_SKYTALON;
+INSERT INTO `npc_spellclick_spells` (`npc_entry`,`spell_id`,`cast_flags`,`user_type`) VALUES
+-- Proper value
+(@NPC_SKYTALON,56922,2,0);
+-- rRe-vamped condition
+DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId`=18 AND `SourceEntry`=56922) OR (`SourceTypeOrReferenceId`=17 AND `SourceEntry`=56684) OR (`SourceTypeOrReferenceId`=13 AND `SourceEntry`=56683);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(18,@NPC_SKYTALON,56922,0,0,8,0,13045,0,0,1,0,'','Forbidden rewarded quest for spellclick'),
+(18,@NPC_SKYTALON,56922,0,0,9,0,13045,0,0,0,0,'','Required quest active for spellclick'),
+(13,1,56683,0,0,31,0,3,@NPC_CAPTURED,0,0,0,'','Grab Captured Crusader targets Captured Crusader'),
+(17,0,56684,0,0,30,0,192523,15,0,0,0,'','Spell focus for Drop Off Captured Crusader'),
+(17,0,56684,0,0,29,0,@NPC_CAPTURED,10,0,0,0,'','Drop Off Captured Crusader requires a Captured Crusader');
diff --git a/sql/updates/world/2013_08_06_05_world_misc.sql b/sql/updates/world/2013_08_06_05_world_misc.sql
new file mode 100644
index 00000000000..505cb81e882
--- /dev/null
+++ b/sql/updates/world/2013_08_06_05_world_misc.sql
@@ -0,0 +1,333 @@
+-- The Last Line Of Defense (13086)
+SET @NEXT := 142412;
+SET @PATH := @NEXT * 10;
+
+DELETE FROM `spell_script_names` WHERE `spell_id` IN (57412,57385);
+INSERT INTO `spell_script_names`(`spell_id`, `ScriptName`) VALUES
+(57412,'spell_q13086_cannons_target'),
+(57385,'spell_q13086_cannons_target');
+
+-- Forgotten Depths Slayer SAI ID: 30593
+UPDATE `creature_template` SET `speed_walk`=5,`movementtype`=1,`faction_A`=2068, `faction_H`=2068,`AIName`= 'SmartAI' WHERE `entry`= 30593;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=30593;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(30593,0,1,0,0,0,100,0,1000,5000,2500,6500,11,54185,0,0,0,0,0,2,0,0,0,0,0,0,0,'Combat - Claw Slash');
+
+-- Adds 70 Forgotten Depths Slayers for phase 64 ID: 30593
+DELETE FROM `creature` WHERE `id`=30593;
+INSERT INTO `creature` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `currentwaypoint`, `MovementType`) VALUES
+(@NEXT+1, 30593, 571, 1, 64, 6442.551758, 222.894867, 397.353943, 2.7317, 5, 60, 0, 1),
+(@NEXT+2, 30593, 571, 1, 64, 6437.940430, 215.351151, 397.798889, 0.929563, 5, 60, 0, 1),
+(@NEXT+3, 30593, 571, 1, 64, 6419.338379, 239.908859, 396.095978, 2.1122, 5, 60, 0, 1),
+(@NEXT+4, 30593, 571, 1, 64, 6428.831055, 239.908859, 396.763702, 3.5549, 5, 60, 0, 1),
+(@NEXT+5, 30593, 571, 1, 64, 6400.702148, 236.755035, 395.685333, 1.32629, 5, 60, 0, 1),
+(@NEXT+6, 30593, 571, 1, 64, 6410.955078, 249.759094, 396.454742, 2.77181, 5, 60, 0, 1),
+(@NEXT+7, 30593, 571, 1, 64, 6367.340820, 183.807068, 391.614655, 0.501217, 5, 60, 0, 1),
+(@NEXT+8, 30593, 571, 1, 64, 6382.062500, 176.836975, 393.132507, 1.22528, 5, 60, 0, 1),
+(@NEXT+9, 30593, 571, 1, 64, 6357.964355, 158.979782, 391.124756, 2.99677, 5, 60, 0, 1),
+(@NEXT+10, 30593, 571, 1, 64, 6373.327537, 146.681412, 392.788330, 3.35221, 5, 60, 0, 1),
+(@NEXT+11, 30593, 571, 1, 64, 6343.335938, 173.300323, 389.862518, 4.18409, 5, 60, 0, 1),
+(@NEXT+12, 30593, 571, 1, 64, 6335.788086, 148.828232, 389.702972, 3.19711, 5, 60, 0, 1),
+(@NEXT+13, 30593, 571, 1, 64, 6347.954590, 129.882919, 3391.126984, 2.81552, 5, 60, 0, 1),
+(@NEXT+14, 30593, 571, 1, 64, 6333.287109, 88.245689, 391.002228, 5.84132, 5, 60, 0, 1),
+(@NEXT+15, 30593, 571, 1, 64, 6336.879395, 71.525627, 390.192871, 0.785398, 5, 60, 0, 1),
+(@NEXT+16, 30593, 571, 1, 64, 6318.244629, 32.249405, 391.493988, 2.1325, 5, 60, 0, 1),
+(@NEXT+17, 30593, 571, 1, 64, 6312.728320, 8.393217, 392.626587, 0.291176, 5, 60, 0, 1),
+(@NEXT+18, 30593, 571, 1, 64, 6326.704590, 107.359123, 391.002045, 0.919091, 5, 60, 0, 1),
+(@NEXT+19, 30593, 571, 1, 64, 6301.972656, 119.744209, 389.925903, 1.55615, 5, 60, 0, 1),
+(@NEXT+20, 30593, 571, 1, 64, 6266.120117, 148.388809, 383.515961, 1.84373, 5, 60, 0, 1),
+(@NEXT+21, 30593, 571, 1, 64, 6251.726074, 153.168182, 381.629669, 1.80125, 5, 60, 0, 1),
+(@NEXT+22, 30593, 571, 1, 64, 6229.003418, 145.614822, 379.721741, 5.84095, 5, 60, 0, 1),
+(@NEXT+23, 30593, 571, 1, 64, 6284.683082, 214.294250, 388.699188, 2.78648, 5, 60, 0, 1),
+(@NEXT+24, 30593, 571, 1, 64, 6302.265625, 212.301346, 390.488556, 3.48219, 5, 60, 0, 1),
+(@NEXT+25, 30593, 571, 1, 64, 6299.725098, 226.082626, 391.288788, 5.13205, 5, 60, 0, 1),
+(@NEXT+26, 30593, 571, 1, 64, 6200.917969, 220.434753, 383.776184, 2.88047, 5, 60, 0, 1),
+(@NEXT+27, 30593, 571, 1, 64, 6200.930664, 234.127823, 384.630798, 1.50529, 5, 60, 0, 1),
+(@NEXT+28, 30593, 571, 1, 64, 6190.595703, 225.242371, 382.554016, 4.4761, 5, 60, 0, 1),
+(@NEXT+29, 30593, 571, 1, 64, 6189.209961, 210.502823, 381.877960, 2.11574, 5, 60, 0, 1),
+(@NEXT+30, 30593, 571, 1, 64, 6176.683594, 213.375336, 380.395172, 0.763302, 5, 60, 0, 1),
+(@NEXT+31, 30593, 571, 1, 64, 6113.089844, 156.401672, 369.398804, 5.60417, 5, 60, 0, 1),
+(@NEXT+32, 30593, 571, 1, 64, 6103.571289, 140.684174, 367.524414, 0.430917, 5, 60, 0, 1),
+(@NEXT+33, 30593, 571, 1, 64, 6093.838867, 143.838867, 367.781097, 6.10437, 5, 60, 0, 1),
+(@NEXT+34, 30593, 571, 1, 64, 6090.764160, 141.764160, 365.786255, 5.91518, 5, 60, 0, 1),
+(@NEXT+35, 30593, 571, 1, 64, 6079.681641, 141.840958, 366.456573, 5.91108, 5, 60, 0, 1),
+(@NEXT+36, 30593, 571, 1, 64, 6062.076660, 155.683197, 363.868896, 2.05191, 5, 60, 0, 1),
+(@NEXT+37, 30593, 571, 1, 64, 6076.666016, 163.742477, 362.454651, 3.57468, 5, 60, 0, 1),
+(@NEXT+38, 30593, 571, 1, 64, 6088.131348, 179.086304, 360.483307, 5.6035, 5, 60, 0, 1),
+(@NEXT+39, 30593, 571, 1, 64, 6098.503418, 176.307312, 364.942688, 5.6035, 5, 60, 0, 1),
+(@NEXT+40, 30593, 571, 1, 64, 6090.764160, 155.876968, 365.786255, 5.6035, 5, 60, 0, 1),
+(@NEXT+41, 30593, 571, 1, 64, 6338.830566, 70.974663, 390.432343, 5.6035, 5, 60, 0, 1),
+(@NEXT+42, 30593, 571, 1, 64, 6339.270508, 63.711479, 389.662994, 5.6035, 5, 60, 0, 1),
+(@NEXT+43, 30593, 571, 1, 64, 6282.305176, 128.449188, 386.556244, 5.6035, 5, 60, 0, 1),
+(@NEXT+44, 30593, 571, 1, 64, 6267.317383, 130.918854, 384.601959, 5.6035, 5, 60, 0, 1),
+(@NEXT+45, 30593, 571, 1, 64, 6182.309082, 94.777863, 377.689959, 5.6035, 5, 60, 0, 1),
+(@NEXT+46, 30593, 571, 1, 64, 6157.960383, 89.072354, 371.833959, 5.6035, 5, 60, 0, 1),
+(@NEXT+47, 30593, 571, 1, 64, 6236.617383, 113.980854, 380.351959, 5.6035, 5, 60, 0, 1),
+(@NEXT+48, 30593, 571, 1, 64, 6295.647383, 137.418854, 387.451959, 5.6035, 5, 60, 0, 1),
+(@NEXT+49, 30593, 571, 1, 64, 6200.917969, 220.434753, 383.776184, 2.88047, 5, 60, 0, 1),
+(@NEXT+50, 30593, 571, 1, 64, 6200.930664, 234.127823, 384.630798, 1.50529, 5, 60, 0, 1),
+(@NEXT+51, 30593, 571, 1, 64, 6190.595703, 225.242371, 382.554016, 4.4761, 5, 60, 0, 1),
+(@NEXT+52, 30593, 571, 1, 64, 6189.209961, 210.502823, 381.877960, 2.11574, 5, 60, 0, 1),
+(@NEXT+53, 30593, 571, 1, 64, 6176.683594, 213.375336, 380.395172, 0.763302, 5, 60, 0, 1),
+(@NEXT+54, 30593, 571, 1, 64, 6113.089844, 156.401672, 369.398804, 5.60417, 5, 60, 0, 1),
+(@NEXT+55, 30593, 571, 1, 64, 6103.571289, 140.684174, 367.524414, 0.430917, 5, 60, 0, 1),
+(@NEXT+56, 30593, 571, 1, 64, 6093.838867, 143.838867, 367.781097, 6.10437, 5, 60, 0, 1),
+(@NEXT+57, 30593, 571, 1, 64, 6090.764160, 141.764160, 365.786255, 5.91518, 5, 60, 0, 1),
+(@NEXT+58, 30593, 571, 1, 64, 6079.681641, 141.840958, 366.456573, 5.91108, 5, 60, 0, 1),
+(@NEXT+59, 30593, 571, 1, 64, 6062.076660, 155.683197, 363.868896, 2.05191, 5, 60, 0, 1),
+(@NEXT+60, 30593, 571, 1, 64, 6076.666016, 163.742477, 362.454651, 3.57468, 5, 60, 0, 1),
+(@NEXT+61, 30593, 571, 1, 64, 6088.131348, 179.086304, 360.483307, 5.6035, 5, 60, 0, 1),
+(@NEXT+62, 30593, 571, 1, 64, 6098.503418, 176.307312, 364.942688, 5.6035, 5, 60, 0, 1),
+(@NEXT+63, 30593, 571, 1, 64, 6090.764160, 155.876968, 365.786255, 5.6035, 5, 60, 0, 1),
+(@NEXT+64, 30593, 571, 1, 64, 6338.830566, 70.974663, 390.432343, 5.6035, 5, 60, 0, 1),
+(@NEXT+65, 30593, 571, 1, 64, 6339.270508, 63.711479, 389.662994, 5.6035, 5, 60, 0, 1),
+(@NEXT+66, 30593, 571, 1, 64, 6282.305176, 128.449188, 386.556244, 5.6035, 5, 60, 0, 1),
+(@NEXT+67, 30593, 571, 1, 64, 6267.317383, 130.918854, 384.601959, 5.6035, 5, 60, 0, 1),
+(@NEXT+68, 30593, 571, 1, 64, 6182.309082, 94.777863, 377.689959, 5.6035, 5, 60, 0, 1),
+(@NEXT+69, 30593, 571, 1, 64, 6157.960383, 89.072354, 371.833959, 5.6035, 5, 60, 0, 1),
+(@NEXT+70, 30593, 571, 1, 64, 6236.617383, 113.980854, 380.351959, 5.6035, 5, 60, 0, 1);
+
+-- Frostbrood Destroyers 5
+UPDATE `creature_template` SET `maxlevel`=80,`minlevel`=80,`exp`=2,`InhabitType`=7,`speed_walk`=3,`mindmg` = 1170,`dmg_multiplier` = 2,`attackpower` = 342,`maxdmg` = 3470,`movementtype`=1,`faction_A`=2068, `faction_H`=2068 WHERE `entry`= 30575;
+DELETE FROM `creature` WHERE `id`=30575;
+INSERT INTO `creature` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `MovementType`) VALUES
+(@NEXT+71, 30575,571,1,64,6097.870117, 58.331299, 380.506012, 0.138359, 75,20,1),
+(@NEXT+72, 30575,571,1,64,6243.700195, 183.362000, 392.515015, 4.594332, 75,20,1),
+(@NEXT+73, 30575,571,1,64,6313.589844, 154.557999, 397.022003, 4.739780, 75,20,1),
+(@NEXT+74, 30575,571,1,64,6331.450195, 53.939301, 399.138000, 2.973792, 75,20,1),
+(@NEXT+75, 30575,571,1,64,6187.290039, 131.792999, 386.451996, 3.173792, 75,20,1);
+
+-- Hover mode for Frostbroods
+DELETE FROM `creature_template_addon` WHERE `entry`=30575;
+INSERT INTO `creature_template_addon` (`entry`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
+(30575,0,0,33554432,0,0,'');
+
+-- Pathing
+-- Slayers reinforcements left on main path
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+1;
+DELETE FROM `creature_addon` WHERE `guid`=@NEXT+1;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES
+(@NEXT+1,@PATH+1,1,0, '');
+
+DELETE FROM `waypoint_data` WHERE `id`=@PATH+1;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH+1,1,6442.551758, 222.894867, 397.353943,0,2,0,100,0),
+(@PATH+1,2,6337.383789,113.591568,391.210876,6000,2,0,100,0),
+(@PATH+1,3,6299.144531,126.174286,391.081909,6000,2,0,100,0);
+
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+2;
+DELETE FROM `creature_addon` WHERE `guid`=@NEXT+2;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES
+(@NEXT+2,@PATH+2,1,0, '');
+
+DELETE FROM `waypoint_data` WHERE `id`=@PATH+2;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH+2,1,6437.940430,215.351151,397.798889,0,2,0,100,0),
+(@PATH+2,2,6327.383789,143.591568,391.210876,6000,2,0,100,0),
+(@PATH+2,3,6296.544531,76.174286,391.081909,6000,2,0,100,0);
+
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+3;
+DELETE FROM `creature_addon` WHERE `guid`=@NEXT+3;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES
+(@NEXT+3,@PATH+3,1,0, '');
+
+DELETE FROM `waypoint_data` WHERE `id`=@PATH+3;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH+3,1,6419.338379,239.908859,396.095978,0,2,0,100,0),
+(@PATH+3,2,6317.383789,115.591568,391.210876,6000,2,0,100,0),
+(@PATH+3,3,6294.144531,126.174286,391.081909,6000,2,0,100,0);
+
+-- Slayers reinforcements right on main path
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+4;
+DELETE FROM `creature_addon` WHERE `guid`=@NEXT+4;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES
+(@NEXT+4,@PATH+4,1,0, '');
+
+DELETE FROM `waypoint_data` WHERE `id`=@PATH+4;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH+4,1, 6428.831055, 239.908859, 396.763702,0,2,0,100,0),
+(@PATH+4,2,6346.144531,126.174286,391.081909,6000,2,0,100,0),
+(@PATH+4,3,6297.353789,80.591568,391.210876,6000,2,0,100,0);
+
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+5;
+DELETE FROM `creature_addon` WHERE `guid`=@NEXT+5;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES
+(@NEXT+5,@PATH+5,1,0, '');
+
+DELETE FROM `waypoint_data` WHERE `id`=@PATH+5;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH+5,1, 6400.702148, 236.755035, 395.685333,0,2,0,100,0),
+(@PATH+5,2,6356.144531,106.174286,391.081909,6000,2,0,100,0),
+(@PATH+5,3,6398.383789,70.591568,391.210876,6000,2,0,100,0);
+
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+6;
+DELETE FROM `creature_addon` WHERE `guid`=@NEXT+6;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES
+(@NEXT+6,@PATH+6,1,0, '');
+
+DELETE FROM `waypoint_data` WHERE `id`=@PATH+6;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH+6,1, 6410.955078, 249.759094, 396.454742,0,2,0,100,0),
+(@PATH+6,2,6376.144531,116.174286,391.081909,6000,2,0,100,0),
+(@PATH+6,3,6295.383789,65.591568,391.210876,6000,2,0,100,0);
+
+-- Slayers reinforcements on the rear
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+31;
+DELETE FROM `creature_addon` WHERE `guid`=@NEXT+31;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES
+(@NEXT+31,@PATH+7,1,0, '');
+
+DELETE FROM `waypoint_data` WHERE `id`=@PATH+7;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH+7,1, 6113.089844, 156.401672, 369.398804,0,2,0,100,0),
+(@PATH+7,2,6175.009766,125.577263,369.434753,6000,2,0,100,0),
+(@PATH+7,3,6109.930176,49.710854,369.404419,6000,2,0,100,0);
+
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+32;
+DELETE FROM `creature_addon` WHERE `guid`=@NEXT+32;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NEXT+32,@PATH+8,1,0, '');
+
+DELETE FROM `waypoint_data` WHERE `id`=@PATH+8;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH+8,1, 6103.571289, 140.684174, 368.524414,0,2,0,100,0),
+(@PATH+8,2,6165.009766,119.577263,369.434753,6000,2,0,100,0),
+(@PATH+8,3,6118.930176,64.710854,369.404419,6000,2,0,100,0);
+
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+33;
+DELETE FROM `creature_addon` WHERE `guid`=@NEXT+33;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NEXT+33,@PATH+9,1,0, '');
+
+DELETE FROM `waypoint_data` WHERE `id`=@PATH+9;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH+9,1, 6093.838867, 143.838867, 368.781097,0,2,0,100,0),
+(@PATH+9,2,6171.009766,114.577263,369.434753,6000,2,0,100,0),
+(@PATH+9,3,6114.930176,61.710854,369.404419,6000,2,0,100,0);
+
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+34;
+DELETE FROM `creature_addon` WHERE `guid`=@NEXT+34;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NEXT+34,@PATH+10,1,0, '');
+
+DELETE FROM `waypoint_data` WHERE `id`=@PATH+10;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH+10,1, 6090.764160, 141.764160, 369.786255,0,2,0,100,0),
+(@PATH+10,2,6183.009766,109.577263,369.434753,6000,2,0,100,0),
+(@PATH+10,3,6109.930176,57.710854,369.404419,6000,2,0,100,0);
+
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+35;
+DELETE FROM `creature_addon` WHERE `guid`=@NEXT+35;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NEXT+35,@PATH+11,1,0, '');
+
+DELETE FROM `waypoint_data` WHERE `id`=@PATH+11;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH+11,1, 6079.681641, 141.840958, 369.456573,0,2,0,100,0),
+(@PATH+11,2,6180.009766,121.577263,369.434753,6000,2,0,100,0),
+(@PATH+11,3,6124.930176,70.710854,369.404419,6000,2,0,100,0);
+
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+36;
+DELETE FROM `creature_addon` WHERE `guid`=@NEXT+36;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NEXT+36,@PATH+12,1,0, '');
+
+DELETE FROM `waypoint_data` WHERE `id`=@PATH+12;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH+12,1, 6062.076660, 155.683197, 369.868896,0,2,0,100,0),
+(@PATH+12,2,6114.930176,74.710854,368.404419,6000,2,0,100,0),
+(@PATH+12,3,6187.009766,111.577263,369.434753,6000,2,0,100,0);
+
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+37;
+DELETE FROM `creature_addon` WHERE `guid`=@NEXT+37;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NEXT+37,@PATH+13,1,0, '');
+
+DELETE FROM `waypoint_data` WHERE `id`=@PATH+13;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH+13,1, 6076.666016, 163.742477, 369.454651,0,2,0,100,0),
+(@PATH+13,2,6117.930176,55.710854,369.404419,6000,2,0,100,0),
+(@PATH+13,3,6178.009766,112.577263,369.434753,6000,2,0,100,0);
+
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+38;
+DELETE FROM `creature_addon` WHERE `guid`=@NEXT+38;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NEXT+38,@PATH+14,1,0, '');
+
+DELETE FROM `waypoint_data` WHERE `id`=@PATH+14;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH+14,1, 6088.131348, 179.086304, 372.483307,0,2,0,100,0),
+(@PATH+14,2,6115.930176,73.710854,369.404419,6000,2,0,100,0),
+(@PATH+14,3,6185.009766,119.577263,369.434753,6000,2,0,100,0);
+
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+39;
+DELETE FROM `creature_addon` WHERE `guid`=@NEXT+39;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NEXT+39,@PATH+15,1,0, '');
+
+DELETE FROM `waypoint_data` WHERE `id`=@PATH+15;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH+15,1, 6098.503418, 176.307312, 369.942688,0,2,0,100,0),
+(@PATH+15,2,6115.930176,51.710854,369.404419,6000,2,0,100,0),
+(@PATH+15,3,6185.009766,110.577263,369.434753,6000,2,0,100,0);
+
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+40;
+DELETE FROM `creature_addon` WHERE `guid`=@NEXT+40;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NEXT+40,@PATH+16,1,0, '');
+
+DELETE FROM `waypoint_data` WHERE `id`=@PATH+16;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH+16,1, 6090.764160, 155.876968, 368.786255,0,2,0,100,0),
+(@PATH+16,2,6112.930176,61.710854,369.404419,6000,2,0,100,0),
+(@PATH+16,3,6176.009766,114.577263,370.434753,6000,2,0,100,0);
+
+-- Slayers from West to both parts
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+26;
+DELETE FROM `creature_addon` WHERE `guid`=@NEXT+26;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NEXT+26,@PATH+17,1,0, '');
+
+DELETE FROM `waypoint_data` WHERE `id`=@PATH+17;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH+17,1, 6200.917969, 220.434753, 372.776184,0,2,0,100,0),
+(@PATH+17,2,6346.144531,126.174286,372.081909,6000,2,0,100,0),
+(@PATH+17,3,6287.383789,80.591568,372.210876,6000,2,0,100,0);
+
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+27;
+DELETE FROM `creature_addon` WHERE `guid`=@NEXT+27;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NEXT+27,@PATH+19,1,0, '');
+
+DELETE FROM `waypoint_data` WHERE `id`=@PATH+19;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH+19,1, 6200.917969, 220.434753, 372.776184,0,2,0,100,0),
+(@PATH+19,2,6356.144531,106.174286,372.081909,6000,2,0,100,0),
+(@PATH+19,3,6395.383789,70.591568,372.210876,6000,2,0,100,0);
+
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+28;
+DELETE FROM `creature_addon` WHERE `guid`=@NEXT+28;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NEXT+28,@PATH+20,1,0, '');
+
+DELETE FROM `waypoint_data` WHERE `id`=@PATH+20;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH+20,1, 6190.595703, 225.242371, 372.554016,0,2,0,100,0),
+(@PATH+20,2,6175.009766,125.577263,372.434753,6000,2,0,100,0),
+(@PATH+20,3,6104.930176,59.710854,372.404419,6000,2,0,100,0);
+
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+29;
+DELETE FROM `creature_addon` WHERE `guid`=@NEXT+29;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES
+(@NEXT+29,@PATH+21,1,0, '');
+
+DELETE FROM `waypoint_data` WHERE `id`=@PATH+21;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH+21,1, 6189.209961, 210.502823, 372.877960,0,2,0,100,0),
+(@PATH+21,2,6171.009766,119.577263,372.434753,6000,2,0,100,0),
+(@PATH+21,3,6118.930176,64.710854,372.404419,6000,2,0,100,0);
+
+UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+29;
+DELETE FROM `creature_addon` WHERE `guid`=@NEXT+29;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES
+(@NEXT+29,@PATH+22,1,0, '');
+
+DELETE FROM `waypoint_data` WHERE `id`=@PATH+22;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH+22,1, 6176.683594, 213.375336, 372.395172,0,2,0,100,0),
+(@PATH+22,2,6173.009766,117.577263,372.434753,6000,2,0,100,0),
+(@PATH+22,3,6118.930176,63.710854,372.404419,6000,2,0,100,0);
+
+-- Turrets
+UPDATE `creature_template` SET `faction_A`=2231,`faction_H`=2231,`unit_flags`=16777220,`npcflag`=16777216,`vehicleid`=292 WHERE `entry`=30236;
+DELETE FROM `npc_spellclick_spells` WHERE `npc_entry`=30236;
+INSERT INTO `npc_spellclick_spells` (`npc_entry`,`spell_id`,`cast_flags`,`user_type`) VALUES
+(30236,57573,1,0);
diff --git a/sql/updates/world/2013_08_07_00_world_creature_template.sql b/sql/updates/world/2013_08_07_00_world_creature_template.sql
new file mode 100644
index 00000000000..21372e0180b
--- /dev/null
+++ b/sql/updates/world/2013_08_07_00_world_creature_template.sql
@@ -0,0 +1 @@
+UPDATE `creature_template` SET `faction_A`=35,`faction_H`=35 WHERE `entry`=30236;
diff --git a/sql/updates/world/2013_08_07_01_world_misc.sql b/sql/updates/world/2013_08_07_01_world_misc.sql
new file mode 100644
index 00000000000..557b71742a6
--- /dev/null
+++ b/sql/updates/world/2013_08_07_01_world_misc.sql
@@ -0,0 +1,6 @@
+-- Move boss_lord_valthalak from EAI to CPP
+UPDATE `creature_template` SET `AIName`= '', `ScriptName`= 'boss_lord_valthalak' WHERE `entry`=16042;
+DELETE FROM creature_ai_scripts WHERE `creature_id`=16042;
+DELETE FROM `creature_text` WHERE `entry`=16042 AND `groupid`=0;
+INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`) VALUES
+(16042, 0, 0, '%s goes into a frenzy!', 16, 0, 100, 0, 0, 0, 'Lord Valthalak - Cast Frenzy');
diff --git a/sql/updates/world/2013_08_07_02_world_misc.sql b/sql/updates/world/2013_08_07_02_world_misc.sql
new file mode 100644
index 00000000000..fd5f9893522
--- /dev/null
+++ b/sql/updates/world/2013_08_07_02_world_misc.sql
@@ -0,0 +1,3 @@
+-- Move Yor from EAI to CPP
+UPDATE `creature_template` SET `AIName`= '', `ScriptName`= 'npc_yor' WHERE `entry`=22930;
+DELETE FROM creature_ai_scripts WHERE `creature_id`=22930;
diff --git a/sql/updates/world/2013_08_07_03_world_drak_tharon_keep.sql b/sql/updates/world/2013_08_07_03_world_drak_tharon_keep.sql
new file mode 100644
index 00000000000..80f3a08a0e7
--- /dev/null
+++ b/sql/updates/world/2013_08_07_03_world_drak_tharon_keep.sql
@@ -0,0 +1,48 @@
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 and `SourceEntry` IN (49555,59807,49618,59809,49405,49380,59803);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorType`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(13,1,49555,0,0,31,0,3,27709,0,0,0,0,'','Trollgore - Corpse Explode'),
+(13,1,49555,0,1,31,0,3,27753,0,0,0,0,'','Trollgore - Corpse Explode'),
+(13,1,49555,0,2,31,0,3,27754,0,0,0,0,'','Trollgore - Corpse Explode'),
+
+(13,1,59807,0,0,31,0,3,27709,0,0,0,0,'','Trollgore - Corpse Explode'),
+(13,1,59807,0,1,31,0,3,27753,0,0,0,0,'','Trollgore - Corpse Explode'),
+(13,1,59807,0,2,31,0,3,27754,0,0,0,0,'','Trollgore - Corpse Explode'),
+
+(13,1,49618,0,0,31,0,3,27709,0,0,0,0,'','Trollgore - Corpse Explode Damage'),
+(13,1,49618,0,1,31,0,3,27753,0,0,0,0,'','Trollgore - Corpse Explode Damage'),
+(13,1,49618,0,2,31,0,3,27754,0,0,0,0,'','Trollgore - Corpse Explode Damage'),
+(13,1,49618,0,3,31,0,4,0,0,0,0,0,'','Trollgore - Corpse Explode Damage'),
+
+(13,1,59809,0,0,31,0,3,27709,0,0,0,0,'','Trollgore - Corpse Explode Damage'),
+(13,1,59809,0,1,31,0,3,27753,0,0,0,0,'','Trollgore - Corpse Explode Damage'),
+(13,1,59809,0,2,31,0,3,27754,0,0,0,0,'','Trollgore - Corpse Explode Damage'),
+(13,1,59809,0,3,31,0,4,0,0,0,0,0,'','Trollgore - Corpse Explode Damage'),
+
+(13,1,49405,0,0,31,0,3,26630,0,0,0,0,'','Trollgore - Invader Taunt Trigger'),
+
+(13,3,49380,0,0,31,0,3,27709,0,0,0,0,'','Trollgore - Consume'),
+(13,3,49380,0,1,31,0,3,27753,0,0,0,0,'','Trollgore - Consume'),
+(13,3,49380,0,2,31,0,3,27754,0,0,0,0,'','Trollgore - Consume'),
+(13,3,49380,0,3,31,0,4,0,0,0,0,0,'','Trollgore - Consume'),
+
+(13,3,59803,0,0,31,0,3,27709,0,0,0,0,'','Trollgore - Consume'),
+(13,3,59803,0,1,31,0,3,27753,0,0,0,0,'','Trollgore - Consume'),
+(13,3,59803,0,2,31,0,3,27754,0,0,0,0,'','Trollgore - Consume'),
+(13,3,59803,0,3,31,0,4,0,0,0,0,0,'','Trollgore - Consume');
+
+DELETE FROM `spell_script_names` WHERE `spell_id` IN (49555,59807,49405,49380,59803,59910);
+INSERT INTO `spell_script_names`(`spell_id`, `ScriptName`) VALUES
+(49555,'spell_trollgore_corpse_explode'),
+(59807,'spell_trollgore_corpse_explode'),
+(49405,'spell_trollgore_invader_taunt'),
+(49380,'spell_trollgore_consume'),
+(59803,'spell_trollgore_consume'),
+(59910,'spell_novos_summon_minions');
+
+DELETE FROM `creature_text` WHERE `entry`=26631 AND `groupid`=5;
+INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`) VALUES
+(26631, 5, 0, '%s calls for assistance!', 41, 0, 100, 0, 0, 0, 'Novos the Summoner - EMOTE_SUMMONING_ADDS');
+
+DELETE FROM `spelldifficulty_dbc` WHERE `id`=49618;
+INSERT INTO `spelldifficulty_dbc` (`id`, `spellid0`, `spellid1`) VALUES
+(49618, 49618, 59809);
diff --git a/sql/updates/world/2013_08_07_04_world_misc.sql b/sql/updates/world/2013_08_07_04_world_misc.sql
new file mode 100644
index 00000000000..ef29b786ee5
--- /dev/null
+++ b/sql/updates/world/2013_08_07_04_world_misc.sql
@@ -0,0 +1,8 @@
+-- Move boss_anzu from EAI to CPP
+UPDATE `creature_template` SET `AIName`= '', `ScriptName`= 'boss_anzu' WHERE `entry`=23035;
+DELETE FROM creature_ai_scripts WHERE `creature_id`=23035;
+DELETE FROM `creature_text` WHERE `entry`=23035;
+INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`) VALUES
+(23035, 0, 0, 'Awaken, my children and assist your master!', 14, 0, 100, 0, 0, 0, 'Anzu - Summon Brood'),
+(23035, 1, 0, 'Your spells... ke-kaw... are weak magics... easy to turn against you...', 15, 0, 100, 0, 0, 0, 'Anzu - Spell Bomb'),
+(23035, 1, 1, 'Yes... cast your precious little spells, ak-a-ak!', 15, 0, 100, 0, 0, 0, 'Anzu - Spell Bomb');
diff --git a/sql/updates/world/2013_08_07_05_world_misc.sql b/sql/updates/world/2013_08_07_05_world_misc.sql
new file mode 100644
index 00000000000..0bb1bc5c560
--- /dev/null
+++ b/sql/updates/world/2013_08_07_05_world_misc.sql
@@ -0,0 +1,2 @@
+UPDATE `smart_scripts` SET `event_param2`=100, `event_param4`=100 WHERE `entryorguid`=7271 AND `source_type`=0 AND `id`=5 AND `link`=0; -- Kirk
+DELETE FROM `command` WHERE `name`='reload gameobject_involvedrelation'; -- Runico
diff --git a/sql/updates/world/2013_08_07_06_world_drak_tharon_keep.sql b/sql/updates/world/2013_08_07_06_world_drak_tharon_keep.sql
new file mode 100644
index 00000000000..d35fcc9565c
--- /dev/null
+++ b/sql/updates/world/2013_08_07_06_world_drak_tharon_keep.sql
@@ -0,0 +1,31 @@
+DELETE FROM `spelldifficulty_dbc` WHERE `id` IN (49555, 49380, 49381);
+INSERT INTO `spelldifficulty_dbc` (`id`, `spellid0`, `spellid1`) VALUES
+(49555, 49555, 59807),
+(49380, 49380, 59803),
+(49381, 49381, 59805);
+
+UPDATE `creature_template` SET `InhabitType`=5 WHERE `entry`=27724;
+
+DELETE FROM `creature_addon` WHERE `guid` IN (SELECT `guid` FROM `creature` WHERE `id` IN (27709,27753,27754));
+INSERT INTO `creature_addon` (`guid`, `mount`, `bytes1`, `bytes2`, `auras`) VALUES
+(127478, 0, 0x0, 0x1, '31261'),
+(127479, 0, 0x0, 0x1, '31261'),
+(127517, 0, 0x0, 0x1, '31261'),
+(127518, 0, 0x0, 0x1, '31261'),
+(127519, 0, 0x0, 0x1, '31261'),
+(127528, 0, 0x0, 0x1, '31261'),
+(127539, 0, 0x0, 0x1, '31261');
+
+DELETE FROM `creature` WHERE `guid` > 127479 AND `guid` < 127489;
+DELETE FROM `creature` WHERE `guid` > 127519 AND `guid` < 127539 AND `guid` != 127528;
+
+UPDATE `creature` SET `spawndist`=0, `MovementType`=0 WHERE `id` IN (27709,27753,27754);
+
+UPDATE `creature_template` SET `faction_A`=1693, `faction_H`=1693, `unit_flags`=768, `InhabitType`=5 WHERE `entry` IN (27709,27753,27754);
+UPDATE `creature_template` SET `ScriptName` = 'npc_drakkari_invader' WHERE `entry` IN (27709,27753,27754);
+
+DELETE FROM `creature_template_addon` WHERE `entry` IN (27709,27753,27754);
+INSERT INTO `creature_template_addon` (`entry`, `mount`, `bytes1`, `bytes2`, `auras`) VALUES
+(27709, 26751, 0x0, 0x1, NULL),
+(27753, 26751, 0x0, 0x1, NULL),
+(27754, 26751, 0x0, 0x1, NULL);
diff --git a/sql/updates/world/2013_08_07_06_world_sai.sql b/sql/updates/world/2013_08_07_06_world_sai.sql
new file mode 100644
index 00000000000..32eb2cfbc5d
--- /dev/null
+++ b/sql/updates/world/2013_08_07_06_world_sai.sql
@@ -0,0 +1,96 @@
+-- Random comment
+SET @IMMOLATION := 58627;
+SET @CHECKTRIGGER := 58594;
+SET @CHECK := 58593;
+SET @ABOMINATION := 30689;
+SET @CREDIT := 58599;
+SET @EXPLOSION := 58596;
+SET @SKELETON := 31048;
+SET @KC := 30995;
+
+-- Add SAI for Burning Skeleton
+UPDATE `creature_template` SET AIName='SmartAI' WHERE `entry`=@SKELETON;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@SKELETON;
+INSERT INTO `smart_scripts` VALUES
+(@SKELETON,0,0,1,25,0,100,0,0,0,0,0,11,@IMMOLATION,0,0,0,0,0,1,0,0,0,0,0,0,0,'Burning Skeleton - On spawn - Cast Immolation on self'),
+(@SKELETON,0,1,0,61,0,100,0,0,0,0,0,11,@CHECKTRIGGER,0,0,0,0,0,1,0,0,0,0,0,0,0,'Burning Skeleton - Linked with event 0 - Cast Skeleton Check Master on self'),
+(@SKELETON,0,2,3,31,0,100,0,@CHECK,0,0,0,33,@KC,0,0,0,0,0,23,0,0,0,0,0,0,0,'Burning Skeleton - On target hit by spell Check - Cast Credit Trigger on self'),
+(@SKELETON,0,3,4,61,0,100,0,0,0,0,0,28,@CHECKTRIGGER,0,0,0,0,0,1,0,0,0,0,0,0,0,'Burning Skeleton - Linked with event 2 - Remove auras from spell CheckTrigger'),
+(@SKELETON,0,4,0,61,0,100,0,0,0,0,0,11,@EXPLOSION,0,0,0,0,0,1,0,0,0,0,0,0,0,'Burning Skeleton - Linked with event 3 - Cast explosion on self');
+
+-- Add condition for Check to target only abominations /that are alive/
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=@CHECK;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition` ,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(13,1,@CHECK,0,0,31,0,3,@ABOMINATION,0,0,0,'','Check can target only chained abominations'),
+(13,1,@CHECK,0,0,36,0,0,0,0,0,0,'','Check can target only target alive creatures');
+
+-- Add conditions for Explosion effect 1
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=@EXPLOSION;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition` ,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(13,2,@EXPLOSION,0,0,31,0,3,@ABOMINATION,0,0,0,'','Explosion effect 1 can target only abomination');
+
+SET @STALKER := 23033;
+SET @ABOMINATION := 30689;
+SET @RIGHT_HAND := 57983; -- Reference to Nayd's wife
+SET @LEFT_HAND := 57980;
+-- Using creature range as a targeting method; guid wise would be wiser but it has bugs out and targets the next living abomination (Not what we want)
+UPDATE `creature_template` SET AIName='SmartAI',`InhabitType`=4 WHERE `entry`=@STALKER;
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (-124991,-124992,-124993,-124981,-124980,-124979);
+INSERT INTO `smart_scripts` VALUES
+(-124991,0,0,0,60,0,100,0,0,1,20000,20000,11,@RIGHT_HAND,0,0,0,0,0,11,@ABOMINATION,5,0,0,0,0,0,'Stalker - OOC - Cast Chain right hand on abomination'),
+(-124992,0,0,0,60,0,100,0,0,1,20000,20000,11,@RIGHT_HAND,0,0,0,0,0,11,@ABOMINATION,5,0,0,0,0,0,'Stalker - OOC - Cast Chain right hand on abomination'),
+(-124993,0,0,0,60,0,100,0,0,1,20000,20000,11,@RIGHT_HAND,0,0,0,0,0,11,@ABOMINATION,5,0,0,0,0,0,'Stalker - OOC - Cast Chain right hand on abomination'),
+(-124981,0,0,0,60,0,100,0,0,1,20000,20000,11,@LEFT_HAND,0,0,0,0,0,11,@ABOMINATION,5,0,0,0,0,0,'Stalker - OOC - Cast Chain left hand on abomination'),
+(-124980,0,0,0,60,0,100,0,0,1,20000,20000,11,@LEFT_HAND,0,0,0,0,0,11,@ABOMINATION,5,0,0,0,0,0,'Stalker - OOC - Cast Chain left hand on abomination'),
+(-124979,0,0,0,60,0,100,0,0,1,20000,20000,11,@LEFT_HAND,0,0,0,0,0,11,@ABOMINATION,5,0,0,0,0,0,'Stalker - OOC - Cast Chain left hand on abomination');
+-- Group 2
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (-124982,-124983,-124984,-124969,-124968,-124967);
+INSERT INTO `smart_scripts` VALUES
+(-124982,0,0,0,60,0,100,0,0,1,20000,20000,11,@RIGHT_HAND,0,0,0,0,0,11,@ABOMINATION,5,0,0,0,0,0,'Stalker - OOC - Cast Chain right hand on abomination'),
+(-124983,0,0,0,60,0,100,0,0,1,20000,20000,11,@RIGHT_HAND,0,0,0,0,0,11,@ABOMINATION,5,0,0,0,0,0,'Stalker - OOC - Cast Chain right hand on abomination'),
+(-124984,0,0,0,60,0,100,0,0,1,20000,20000,11,@RIGHT_HAND,0,0,0,0,0,11,@ABOMINATION,5,0,0,0,0,0,'Stalker - OOC - Cast Chain right hand on abomination'),
+(-124969,0,0,0,60,0,100,0,0,1,20000,20000,11,@LEFT_HAND,0,0,0,0,0,11,@ABOMINATION,5,0,0,0,0,0,'Stalker - OOC - Cast Chain left hand on abomination'),
+(-124968,0,0,0,60,0,100,0,0,1,20000,20000,11,@LEFT_HAND,0,0,0,0,0,11,@ABOMINATION,5,0,0,0,0,0,'Stalker - OOC - Cast Chain left hand on abomination'),
+(-124967,0,0,0,60,0,100,0,0,1,20000,20000,11,@LEFT_HAND,0,0,0,0,0,11,@ABOMINATION,5,0,0,0,0,0,'Stalker - OOC - Cast Chain left hand on abomination');
+-- Group 3
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (-125000,-125001,-125002,-124985,-124986,-124987);
+INSERT INTO `smart_scripts` VALUES
+(-125000,0,0,0,60,0,100,0,0,1,20000,20000,11,@RIGHT_HAND,0,0,0,0,0,11,@ABOMINATION,5,0,0,0,0,0,'Stalker - OOC - Cast Chain right hand on abomination'),
+(-125001,0,0,0,60,0,100,0,0,1,20000,20000,11,@RIGHT_HAND,0,0,0,0,0,11,@ABOMINATION,5,0,0,0,0,0,'Stalker - OOC - Cast Chain right hand on abomination'),
+(-125002,0,0,0,60,0,100,0,0,1,20000,20000,11,@RIGHT_HAND,0,0,0,0,0,11,@ABOMINATION,5,0,0,0,0,0,'Stalker - OOC - Cast Chain right hand on abomination'),
+(-124985,0,0,0,60,0,100,0,0,1,20000,20000,11,@LEFT_HAND,0,0,0,0,0,11,@ABOMINATION,5,0,0,0,0,0,'Stalker - OOC - Cast Chain left hand on abomination'),
+(-124986,0,0,0,60,0,100,0,0,1,20000,20000,11,@LEFT_HAND,0,0,0,0,0,11,@ABOMINATION,5,0,0,0,0,0,'Stalker - OOC - Cast Chain left hand on abomination'),
+(-124987,0,0,0,60,0,100,0,0,1,20000,20000,11,@LEFT_HAND,0,0,0,0,0,11,@ABOMINATION,5,0,0,0,0,0,'Stalker - OOC - Cast Chain left hand on abomination');
+-- Group 4
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (-124973,-124974,-124975,-124976,-124977,-124978);
+INSERT INTO `smart_scripts` VALUES
+(-124973,0,0,0,60,0,100,0,0,1,20000,20000,11,@RIGHT_HAND,0,0,0,0,0,11,@ABOMINATION,5,0,0,0,0,0,'Stalker - OOC - Cast Chain right hand on abomination'),
+(-124974,0,0,0,60,0,100,0,0,1,20000,20000,11,@RIGHT_HAND,0,0,0,0,0,11,@ABOMINATION,5,0,0,0,0,0,'Stalker - OOC - Cast Chain right hand on abomination'),
+(-124975,0,0,0,60,0,100,0,0,1,20000,20000,11,@RIGHT_HAND,0,0,0,0,0,11,@ABOMINATION,5,0,0,0,0,0,'Stalker - OOC - Cast Chain right hand on abomination'),
+(-124976,0,0,0,60,0,100,0,0,1,20000,20000,11,@LEFT_HAND,0,0,0,0,0,11,@ABOMINATION,5,0,0,0,0,0,'Stalker - OOC - Cast Chain left hand on abomination'),
+(-124977,0,0,0,60,0,100,0,0,1,20000,20000,11,@LEFT_HAND,0,0,0,0,0,11,@ABOMINATION,5,0,0,0,0,0,'Stalker - OOC - Cast Chain left hand on abomination'),
+(-124978,0,0,0,60,0,100,0,0,1,20000,20000,11,@LEFT_HAND,0,0,0,0,0,11,@ABOMINATION,5,0,0,0,0,0,'Stalker - OOC - Cast Chain left hand on abomination');
+-- Group 5
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (-124988,-124989,-124990,-124970,-124971,-124972);
+INSERT INTO `smart_scripts` VALUES
+(-124988,0,0,0,60,0,100,0,0,1,20000,20000,11,@RIGHT_HAND,0,0,0,0,0,11,@ABOMINATION,5,0,0,0,0,0,'Stalker - OOC - Cast Chain right hand on abomination'),
+(-124989,0,0,0,60,0,100,0,0,1,20000,20000,11,@RIGHT_HAND,0,0,0,0,0,11,@ABOMINATION,5,0,0,0,0,0,'Stalker - OOC - Cast Chain right hand on abomination'),
+(-124990,0,0,0,60,0,100,0,0,1,20000,20000,11,@RIGHT_HAND,0,0,0,0,0,11,@ABOMINATION,5,0,0,0,0,0,'Stalker - OOC - Cast Chain right hand on abomination'),
+(-124970,0,0,0,60,0,100,0,0,1,20000,20000,11,@LEFT_HAND,0,0,0,0,0,11,@ABOMINATION,5,0,0,0,0,0,'Stalker - OOC - Cast Chain left hand on abomination'),
+(-124971,0,0,0,60,0,100,0,0,1,20000,20000,11,@LEFT_HAND,0,0,0,0,0,11,@ABOMINATION,5,0,0,0,0,0,'Stalker - OOC - Cast Chain left hand on abomination'),
+(-124972,0,0,0,60,0,100,0,0,1,20000,20000,11,@LEFT_HAND,0,0,0,0,0,11,@ABOMINATION,5,0,0,0,0,0,'Stalker - OOC - Cast Chain left hand on abomination');
+-- Group 6
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (-124998,-124999,-124997,-124996,-124995,-124994);
+INSERT INTO `smart_scripts` VALUES
+(-124997,0,0,0,60,0,100,0,0,1,20000,20000,11,@RIGHT_HAND,0,0,0,0,0,11,@ABOMINATION,5,0,0,0,0,0,'Stalker - OOC - Cast Chain right hand on abomination'),
+(-124998,0,0,0,60,0,100,0,0,1,20000,20000,11,@RIGHT_HAND,0,0,0,0,0,11,@ABOMINATION,5,0,0,0,0,0,'Stalker - OOC - Cast Chain right hand on abomination'),
+(-124999,0,0,0,60,0,100,0,0,1,20000,20000,11,@RIGHT_HAND,0,0,0,0,0,11,@ABOMINATION,5,0,0,0,0,0,'Stalker - OOC - Cast Chain right hand on abomination'),
+(-124994,0,0,0,60,0,100,0,0,1,20000,20000,11,@LEFT_HAND,0,0,0,0,0,11,@ABOMINATION,5,0,0,0,0,0,'Stalker - OOC - Cast Chain left hand on abomination'),
+(-124995,0,0,0,60,0,100,0,0,1,20000,20000,11,@LEFT_HAND,0,0,0,0,0,11,@ABOMINATION,5,0,0,0,0,0,'Stalker - OOC - Cast Chain left hand on abomination'),
+(-124996,0,0,0,60,0,100,0,0,1,20000,20000,11,@LEFT_HAND,0,0,0,0,0,11,@ABOMINATION,5,0,0,0,0,0,'Stalker - OOC - Cast Chain left hand on abomination');
+
+-- Add condition target for chains
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry` IN (@LEFT_HAND,@RIGHT_HAND);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(13,1,@LEFT_HAND,0,0,31,0,3,@ABOMINATION,0,0,0,'','Left Hand Chains only target Chained Abomination'),
+(13,1,@RIGHT_HAND,0,0,31,0,3,@ABOMINATION,0,0,0,'','Right Hand Chains only target Chained Abomination');
diff --git a/sql/updates/world/2013_08_07_07_world_pathing.sql b/sql/updates/world/2013_08_07_07_world_pathing.sql
new file mode 100644
index 00000000000..55bdf5e752c
--- /dev/null
+++ b/sql/updates/world/2013_08_07_07_world_pathing.sql
@@ -0,0 +1,29 @@
+DELETE FROM `creature_template_addon` WHERE `entry`=27003;
+INSERT INTO `creature_template_addon` (`entry`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES
+(27003, 270030, 0, 0, 1, 0, NULL);
+
+UPDATE `creature` SET `currentwaypoint`=0,`MovementType`=2,`spawndist`=0 WHERE `guid`=107239;
+DELETE FROM `waypoint_data` WHERE `id`=270030;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(270030, 1, 3671.979, -497.5903, 157.9536, 0, 0, 0, 0, 100, 0),
+(270030, 2, 3693.592, -472.8958, 163.496, 0, 0, 0, 0, 100, 0),
+(270030, 3, 3694.013, -466.6045, 160.7129, 0, 0, 0, 0, 100, 0),
+(270030, 4, 3713.763, -454.1045, 159.2129, 0, 10000, 0, 0, 100, 0),
+(270030, 5, 3717.158, -453.4165, 161.311, 0, 0, 0, 0, 100, 0),
+(270030, 6, 3717.857, -415.6472, 151.0353, 0, 0, 0, 0, 100, 0),
+(270030, 7, 3716.621, -404.0498, 152.4212, 0, 0, 0, 0, 100, 0),
+(270030, 8, 3704.548, -388.2196, 162.9577, 0, 10000, 0, 0, 100, 0),
+(270030, 9, 3717.158, -453.4165, 161.311, 0, 0, 0, 0, 100, 0),
+(270030, 10, 3717.357, -443.3972, 160.0353, 0, 0, 0, 0, 100, 0),
+(270030, 11, 3717.357, -440.3972, 159.2853, 0, 0, 0, 0, 100, 0),
+(270030, 12, 3717.607, -438.3972, 158.7853, 0, 0, 0, 0, 100, 0),
+(270030, 13, 3717.607, -436.3972, 158.0353, 0, 0, 0, 0, 100, 0),
+(270030, 14, 3717.607, -434.3972, 157.2853, 0, 0, 0, 0, 100, 0),
+(270030, 15, 3717.607, -432.6472, 156.2853, 0, 0, 0, 0, 100, 0),
+(270030, 16, 3717.607, -430.6472, 155.5353, 0, 0, 0, 0, 100, 0),
+(270030, 17, 3717.607, -428.6472, 154.5353, 0, 0, 0, 0, 100, 0),
+(270030, 18, 3717.607, -426.6472, 153.7853, 0, 0, 0, 0, 100, 0),
+(270030, 19, 3717.607, -424.6472, 153.0353, 0, 0, 0, 0, 100, 0),
+(270030, 20, 3717.607, -422.6472, 152.2853, 0, 0, 0, 0, 100, 0),
+(270030, 21, 3717.607, -418.6472, 151.5353, 0, 0, 0, 0, 100, 0),
+(270030, 22, 3717.857, -415.6472, 151.0353, 0, 10000, 0, 0, 100, 0);
diff --git a/sql/updates/world/2013_08_07_08_world_sai.sql b/sql/updates/world/2013_08_07_08_world_sai.sql
new file mode 100644
index 00000000000..7da2f89d09c
--- /dev/null
+++ b/sql/updates/world/2013_08_07_08_world_sai.sql
@@ -0,0 +1,22 @@
+-- Fueling the Project (11715)
+-- oh, and guess what! random comment
+SET @NPC_OIL := 25781; -- Oil Pool
+SET @SPELL_OIL_COLLECTOR := 45990; -- Collect Oil
+SET @SPELL_SUMON_COLLECTOR := 45991; -- Summon Oil Collector
+SET @SPELL_OIL_COAT := 46011; -- Oil Coat (small)
+SET @SPELL_FD := 35357; -- Spawn Feign Death
+
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@NPC_OIL;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@NPC_OIL;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@NPC_OIL;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@NPC_OIL,0,0,1,25,0,100,0,0,0,0,0,11,@SPELL_FD,0,0,0,0,0,1,0,0,0,0,0,0,0,'On reset - Cast Spawn Feign Death'),
+(@NPC_OIL,0,1,0,61,0,100,0,0,0,0,0,11,@SPELL_OIL_COAT,0,0,0,0,0,1,0,0,0,0,0,0,0,'On link - Cast Oil Coat (small)'),
+--
+(@NPC_OIL,0,2,3,8,0,100,0,@SPELL_OIL_COLLECTOR,0,0,0,11,@SPELL_SUMON_COLLECTOR,0,0,0,0,0,7,0,0,0,0,0,0,0,'On spellhit - Cast Summon Oil Collector'),
+(@NPC_OIL,0,3,4,61,0,100,0,0,0,0,0,33,@NPC_OIL,0,0,0,0,0,7,0,0,0,0,0,0,0,'On spellhit - Give killcredit'),
+(@NPC_OIL,0,4,0,61,0,100,0,0,0,0,0,41,10000,0,0,0,0,0,1,0,0,0,0,0,0,0,'On link - Despawn in 1 sec');
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=@SPELL_OIL_COLLECTOR;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(13,1,@SPELL_OIL_COLLECTOR,0,0,31,0,3,@NPC_OIL,0,0,0,'','Collect Oil target Oil Pool');
diff --git a/sql/updates/world/2013_08_07_09_world_sai.sql b/sql/updates/world/2013_08_07_09_world_sai.sql
new file mode 100644
index 00000000000..2f5cf9b026e
--- /dev/null
+++ b/sql/updates/world/2013_08_07_09_world_sai.sql
@@ -0,0 +1,22 @@
+-- Strengthen the Ancients (12092)
+-- Woodlands Walker
+SET @ENTRY := 26421;
+UPDATE `creature_template` SET `npcflag`=1,`AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@ENTRY,@ENTRY*100+0,@ENTRY*100+1);
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@ENTRY,0,0,0,2,0,100,1,0,50,0,0,11,50994,0,0,0,0,0,1,0,0,0,0,0,0,0,'Woodlands Walker - Cast Toughen Hide - at 50% HP'),
+(@ENTRY,0,1,2,64,0,100,1,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'On gossip hello - Close gossip - Invoker'),
+(@ENTRY,0,2,0,61,0,100,1,0,0,0,0,88,@ENTRY*100+0,@ENTRY*100+1,0,0,0,0,1,0,0,0,0,0,0,0,'On link - Run random script - Self'),
+--
+(@ENTRY*100+0,9,0,0,0,0,100,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Woodlands Walker - Emote text - Self'),
+(@ENTRY*100+0,9,1,0,0,0,100,0,1000,1000,0,0,2,16,0,0,0,0,0,1,0,0,0,0,0,0,0,'Woodlands Walker - Set faction monster - Self'),
+--
+(@ENTRY*100+1,9,0,0,0,0,100,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Woodlands Walker - Emote text - Self'),
+(@ENTRY*100+1,9,1,0,0,0,100,0,1000,1000,0,0,11,47550,0,0,0,0,0,7,0,0,0,0,0,0,0,'Woodlands Walker - Cast Create Bark of the Walkers - Invoker'),
+(@ENTRY*100+1,9,2,0,0,0,100,0,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Woodlands Walker - Despawn - Self');
+
+DELETE FROM `creature_text` WHERE `entry`=@ENTRY;
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@ENTRY,0,0,"The %s is angered by your request and attacks!",16,0,100,0,0,0,"emote text"),
+(@ENTRY,1,0,"Breaking off a piece of its bark, the %s hands it to you before departing.",16,0,100,0,0,0,"emote text");
diff --git a/sql/updates/world/2013_08_07_10_world_sai.sql b/sql/updates/world/2013_08_07_10_world_sai.sql
new file mode 100644
index 00000000000..c43fd76aaf2
--- /dev/null
+++ b/sql/updates/world/2013_08_07_10_world_sai.sql
@@ -0,0 +1,78 @@
+-- See You on the Other Side (12121)
+-- Jin'arrak's End (12152)
+
+SET @ENTRY1 := 27199; -- Warlord Jinarrak
+SET @ENTRY2 := 27200; -- Offering Bunny - Drakil'jin Exterior
+SET @ENTRY3 := 26902; -- Essence of Warlord Jin'arrak
+SET @ENTRY4 := 32742; -- Your Corpse
+SET @ENTRY5 := 27201; -- Offering Target Bunny - Drakil'jin Exterior
+SET @RAGE := 47744; -- Rage of Jin'arrak
+SET @OTOS := 61611; -- On the Other Side
+SET @BODY := 61612; -- Summon Your Corpse
+SET @OFFER := 48059; -- Place Offering
+SET @FEED := 48060; -- Jin'arrak Feeds
+SET @CREDIT := 48194; -- Jin'arrak Kill Credit
+
+-- Warlord Jinarrak
+DELETE FROM `creature_template_addon` WHERE `entry`=@ENTRY1;
+INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
+(@ENTRY1,0,0,0,0,'17327 31951');
+
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@ENTRY1,@ENTRY1*100,@ENTRY1*100+1);
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@ENTRY1,0,0,0,54,0,100,1,0,0,0,0,44,3,0,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Warlord Jin''Arrak - Just summoned - Set phasemask 3 - Self'),
+(@ENTRY1,0,1,2,38,0,100,0,0,2,0,0,80,@ENTRY1*100+1,0,2,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Warlord Jin''Arrak - On dataset 0 2 - Run script - Self'),
+(@ENTRY1,0,2,0,61,0,100,0,0,0,0,0,5,15,0,0,0,0,0,1,0,0,0,0,0,0,0,'Warlord Jin''Arrak - Linked - Play emote roar'),
+(@ENTRY1,0,3,4,38,0,100,0,0,1,0,0,80,@ENTRY1*100,0,2,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Warlord Jin''Arrak - On dataset 0 1 - Run script - Self'),
+(@ENTRY1,0,4,0,61,0,100,0,0,0,0,0,5,15,0,0,0,0,0,1,0,0,0,0,0,0,0,'Warlord Jin''Arrak - Linked - Play emote roar'),
+-- Scr 1
+(@ENTRY1*100,9,0,0,0,0,100,1,0,0,0,0,11,47730,0,0,0,0,0,1,0,0,0,0,0,0,0,'Warlord Jin''Arrak - Script - Gong Effect - Self'),
+(@ENTRY1*100,9,1,0,0,0,100,1,10000,10000,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Warlord Jin''Arrak - Script - Emote Text - Self'),
+(@ENTRY1*100,9,2,0,0,0,100,1,0,0,0,0,11,@RAGE,0,0,0,0,0,18,20,0,0,0,0,0,0,'Warlord Jin''Arrak - Script - Cast Rage of Jin''arrak - Players in range'),
+(@ENTRY1*100,9,3,0,0,0,100,1,10000,10000,0,0,33,@ENTRY3,0,0,0,0,0,18,20,0,0,0,0,0,0,'Warlord Jin''Arrak - Script- Kill credit - Players in range'),
+-- Scr2
+(@ENTRY1*100+1,9,0,0,0,0,100,0,1500,1500,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Warlord Jin''Arrak - Script - Say 0'),
+(@ENTRY1*100+1,9,1,0,0,0,100,0,1000,1000,0,0,11,48060,0,0,0,0,0,19,@ENTRY5,0,0,0,0,0,0,'Warlord Jin''Arrak - Script - Cast feed'),
+(@ENTRY1*100+1,9,2,0,0,0,100,0,7000,7000,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Warlord Jin''Arrak - Script - Say 1'),
+(@ENTRY1*100+1,9,3,0,0,0,100,0,3000,3000,0,0,17,64,0,0,0,0,0,1,0,0,0,0,0,0,0,'Warlord Jin''Arrak - Script - emotestate stun'),
+(@ENTRY1*100+1,9,4,0,0,0,100,0,5000,5000,0,0,17,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Warlord Jin''Arrak - Script - emotestate none'),
+(@ENTRY1*100+1,9,5,0,0,0,100,0,0,0,0,0,90,7,0,0,0,0,0,1,0,0,0,0,0,0,0,'Warlord Jin''Arrak - Script - Set field_byte_1 to 7'),
+(@ENTRY1*100+1,9,6,0,0,0,100,0,2000,2000,0,0,11,@CREDIT,0,0,0,0,0,18,20,0,0,0,0,0,0,'OOC - Cast credit - Players in range'),
+(@ENTRY1*100+1,9,7,0,0,0,100,0,10000,10000,0,0,41,0,0,0,0,0,0,0,1,0,0,0,0,0,0,'OOC - Cast credit - Players in range');
+
+
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger` IN (-@RAGE,@OTOS);
+INSERT INTO `spell_linked_spell` (`spell_trigger`,`spell_effect`,`type`,`comment`) VALUES
+(-@RAGE,@OTOS,0,'Cast other side when curse expires'),
+(@OTOS,@BODY,1,'Summon body when going to other side');
+
+
+DELETE FROM `creature_text` WHERE `entry`=@ENTRY1;
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@ENTRY1,0,0,'Finally, a worthy offering!',41,0,0,0,0,0,'Warlord Jinarrak - Say Text'),
+(@ENTRY1,1,0,'Ahhh! What be happenin'' to me, mon?',41,0,0,0,0,0,'Warlord Jinarrak - Say Text'),
+(@ENTRY1,2,0,'How dare you summon me without an offering!',41,0,0,0,0,0,'Warlord Jinarrak - Say Text');
+
+-- Offering Bunny - Drakil'jin Exterior
+UPDATE `creature_template` SET `AIName`='SmartAI',`flags_extra`=128 WHERE `entry`=@ENTRY2;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY2;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@ENTRY2,0,0,1,54,0,100,1,0,0,0,0,12,@ENTRY1,3,180000,0,0,0,8,0,0,0,4678.47,-4859.35,35.48,3.11,'Just summoned - Temp summon Warlord Jinarrak - Position'),
+(@ENTRY2,0,1,0,61,0,100,1,0,0,0,0,11,@OFFER,0,0,0,0,0,1,0,0,0,0,0,0,0,'Link - Cast Place Offering - Self'),
+(@ENTRY2,0,2,0,1,0,100,1,1000,1000,0,0,45,0,2,0,0,0,0,11,@ENTRY1,50,0,0,0,0,0,'OOC 2 sec later - Set data 0 2 - Warlord Jinarrak');
+
+-- Essence of Warlord Jin'arrak
+UPDATE `creature_template` SET `AIName`='SmartAI',`flags_extra`=128 WHERE `entry`=@ENTRY3;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY3;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@ENTRY3,0,0,0,54,0,100,1,0,0,0,0,12,@ENTRY1,3,30000,0,0,0,8,0,0,0,4678.47,-4859.35,35.48,3.11,'Just summoned - Temp summon - Position'),
+(@ENTRY3,0,1,0,1,0,100,1,1000,1000,0,0,45,0,1,0,0,0,0,11,@ENTRY1,50,0,0,0,0,0,'OOC 1 sec later - Set data 0 1 - Warlord Jinarrak');
+UPDATE creature_template SET AIName = 'SmartAI' WHERE entry =@ENTRY1;
+UPDATE `creature_template` SET `flags_extra`=128 WHERE `entry`=@ENTRY5;
+-- Your Corpse
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY4;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY4;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@ENTRY4,0,0,1,54,0,100,1,0,0,0,0,85,60352,0,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Just summoned - Invoker cast Mirror Image - Invoker'),
+(@ENTRY4,0,1,2,61,0,100,1,0,0,0,0,44,3,0,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Link - Set phasemask 3 - Self'),
+(@ENTRY4,0,2,0,61,0,100,1,0,0,0,0,11,29266,0,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Link - Cast Permanent Feign Death - Self');
diff --git a/sql/updates/world/2013_08_07_11_world_sai.sql b/sql/updates/world/2013_08_07_11_world_sai.sql
new file mode 100644
index 00000000000..c97659b3359
--- /dev/null
+++ b/sql/updates/world/2013_08_07_11_world_sai.sql
@@ -0,0 +1,28 @@
+SET @Crystal=31131; -- Containment Crystal
+SET @Watcher=31110; -- Eidolon Watcher
+
+-- Update creature_templates and template_addons
+UPDATE `creature_template` SET `exp`=2,`minlevel`=80,`maxlevel`=80,`unit_flags`=`unit_flags`|32776 WHERE `entry`=@Watcher;
+UPDATE `creature_template` SET `unit_flags`=`unit_flags`|33555200,`AIname`='SmartAI' WHERE `entry`=@Crystal;
+DELETE FROM `creature_template_addon` WHERE `entry` IN (@Watcher,@Crystal);
+INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
+(@Watcher,0,0,1,0, NULL),
+(@Crystal,0,0,1,0, NULL);
+-- Delete old condition
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceGroup`=1 AND `SourceEntry`=193058 AND `SourceId`=1;
+-- Four quests need gains control of the Eidolon Watcher not only one
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=10028 AND `sourceEntry`=0;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(15,10028,0,0,0,9,0,13168,0,0,0,0,0,'','Show Gossip option only if player has quest active'),
+(15,10028,0,0,1,9,0,13171,0,0,0,0,0,'','Show Gossip option only if player has quest active'),
+(15,10028,0,0,2,9,0,13169,0,0,0,0,0,'','Show Gossip option only if player has quest active'),
+(15,10028,0,0,3,9,0,13170,0,0,0,0,0,'','Show Gossip option only if player has quest active');
+-- Conditions for Banish Scourge Crystal spell
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `sourceEntry`=58658;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(13,1,58658,0,0,31,0,3,@Crystal,0,0,0,0,'','Banish Scourge Crystal Hits Only Containment Crystal');
+-- Sai for Containment Crystal
+DELETE FROM `smart_scripts` WHERE `entryorguid`=31131 AND `source_type`=0;
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(@Crystal,0,0,1,8,0,100,0,58662,0,0,0,33,@Crystal,0,0,0,0,0,7,0,0,0,0,0,0,0,'Containment Crystal - On Spell Hit - Give Quest Credit'),
+(@Crystal,0,1,0,61,0,100,0,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Containment Crystal - Link With Previous Event - Despawn');
diff --git a/sql/updates/world/2013_08_07_12_world_sai.sql b/sql/updates/world/2013_08_07_12_world_sai.sql
new file mode 100644
index 00000000000..61c96994eb7
--- /dev/null
+++ b/sql/updates/world/2013_08_07_12_world_sai.sql
@@ -0,0 +1 @@
+UPDATE `smart_scripts` SET `action_param1`=1 WHERE `entryorguid`=2546000 AND `source_type`=9 AND `id`=1;
diff --git a/sql/updates/world/2013_08_07_13_world_creature_template.sql b/sql/updates/world/2013_08_07_13_world_creature_template.sql
new file mode 100644
index 00000000000..390d43220f1
--- /dev/null
+++ b/sql/updates/world/2013_08_07_13_world_creature_template.sql
@@ -0,0 +1 @@
+UPDATE `creature_template` SET `faction_A`=103, `faction_H`=103 WHERE `entry`=21264; -- Seeping Ooze
diff --git a/sql/updates/world/2013_08_07_14_world_sai_335.sql b/sql/updates/world/2013_08_07_14_world_sai_335.sql
new file mode 100644
index 00000000000..fa7c5e149f9
--- /dev/null
+++ b/sql/updates/world/2013_08_07_14_world_sai_335.sql
@@ -0,0 +1,13 @@
+UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry`=5353;
+
+DELETE FROM `smart_scripts` WHERE `entryorguid`=5353 AND `source_type`=0;
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(5353, 0, 0, 1,62, 0, 100, 0, 1364, 0, 0, 0, 85, 12578, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Itharius - On Gossip Select - Cast Create Oathstone of Yseras Dragonflight'),
+(5353, 0, 1, 0,61, 0, 100, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Itharius - Linked with Previous Event - Close Gossip');
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=1341;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(15,1341,1,0,0,2,0,10455,1,1,0,0,'','Itharius show gossip only if player has Chained Essence of Eranikus'),
+(15,1341,1,0,0,2,0,10589,1,1,1,0,'','Itharius show gossip only if player Does not have Oathstone of Yseras Dragonflight'),
+(15,1341,1,0,0,8,0,3374,0,0,1,0,'','Itharius show gossip only if player has not completed The Essence of Eranikus q3374'),
+(15,1341,1,0,0,8,0,3373,0,0,0,0,'','Itharius show gossip only if player has completed The Essence of Eranikus q3373');
diff --git a/sql/updates/world/2013_08_08_00_world_creature_template.sql b/sql/updates/world/2013_08_08_00_world_creature_template.sql
new file mode 100644
index 00000000000..63e00e9881e
--- /dev/null
+++ b/sql/updates/world/2013_08_08_00_world_creature_template.sql
@@ -0,0 +1 @@
+UPDATE `creature_template` SET `AIName`='' WHERE `AIName`='0';
diff --git a/sql/updates/world/2013_08_08_01_world_creature_template.sql b/sql/updates/world/2013_08_08_01_world_creature_template.sql
new file mode 100644
index 00000000000..e64befe6269
--- /dev/null
+++ b/sql/updates/world/2013_08_08_01_world_creature_template.sql
@@ -0,0 +1 @@
+UPDATE `smart_scripts` SET `action_param3`=0 WHERE `entryorguid`=19055 AND `source_type`=0 AND `id`=0;
diff --git a/sql/updates/world/2013_08_08_02_world_creature_template.sql b/sql/updates/world/2013_08_08_02_world_creature_template.sql
new file mode 100644
index 00000000000..2baeddd0cd1
--- /dev/null
+++ b/sql/updates/world/2013_08_08_02_world_creature_template.sql
@@ -0,0 +1,2 @@
+UPDATE `creature` SET `MovementType`=0 WHERE `guid`=107239;
+UPDATE `creature_template` SET `MovementType`=2 WHERE `entry`=27003;
diff --git a/sql/updates/world/2013_08_09_00_world_sai.sql b/sql/updates/world/2013_08_09_00_world_sai.sql
new file mode 100644
index 00000000000..8fcdfc6d49e
--- /dev/null
+++ b/sql/updates/world/2013_08_09_00_world_sai.sql
@@ -0,0 +1,87 @@
+DELETE FROM `creature` WHERE `id`=27715;
+UPDATE `creature_template` SET `faction_a`=14, `faction_h`=14, `AIName`='SmartAI' WHERE `entry` IN (27715, 27716, 27717, 27718);
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry` IN (27727, 27726);
+
+DELETE FROM `creature_text` WHERE `entry` IN (27719, 27727, 27726);
+INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`) VALUES
+(27719,0,0,"Ladies and gentlemen! Well... let's just say you don't want to miss this one!",14,0,100,0,0,0,'Grennix Shivwiggle - Quest Accepted'),
+(27727,0,0,"You went behind my back. You neglected my orders. You will pay the price.",12,0,100,0,0,0,'Conqueror Krenna - Say 0'),
+(27727,1,1,"Enough talk. By the time I'm though with you, not even the worgs will go near your corpse.",12,0,100,0,0,0,'Conqueror Krenna - Say 1'),
+(27726,0,0,"I used good judgment when you showed non. I don't want to see you lead us into ruin, Krenna!",12,0,100,0,0,0,'Gorgonna - Say 0'),
+(27726,1,1,"It doesn't have to end this way, you know?",12,0,100,0,0,0,'Gorgonna - Say 1'),
+(27726,2,2,"We'll see about that",12,0,100,0,0,0,'Gorgonna - Say 2'),
+(27726,3,3,"Why... why sister? Why did it have to come to this?",12,0,100,0,0,0,'Gorgonna - Say 3');
+
+-- SAI
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry` IN (27715,27716,27717,27718,27727,27719,27726);
+DELETE FROM `creature_ai_scripts` WHERE `creature_id` IN (27715,27716,27717,27718,27727,27719,27726);
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (27715,27716,27717,27718,27727,27719,27726);
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(27715,0,0,0,9,0,100,0,8,25,17000,24000,11,32323,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Ironhide - Cast Charge'),
+(27715,0,1,0,0,0,100,0,5000,7000,7000,9000,11,34298,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Ironhide - Cast Maul'),
+(27715,0,2,0,9,0,100,0,0,5,7000,11000,11,31279,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Ironhide - Cast Swipe'),
+(27715,0,3,0,7,0,100,0,0,0,0,0,47,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Ironhide - Evade - Unseen'),
+(27715,0,4,0,7,0,100,0,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Ironhide - Evade - Despawn'),
+(27715,0,5,0,6,0,100,0,0,0,0,0,15,12427,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Ironhide - Death - Credit'),
+(27715,0,6,0,6,0,100,0,0,0,0,0,47,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Ironhide - Death - Unseen'),
+(27715,0,7,0,7,0,100,0,0,0,0,0,6,12427,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Ironhide - Evade - Quest Fail'),
+
+-- Torgg Thundertotem 27716
+(27716,0,0,0,0,0,100,0,1000,3000,6000,8000,11,16033,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Torgg Thundertotem - Cast Chain Lightning'),
+(27716,0,1,0,0,0,100,0,10000,20000,5000,15000,11,15982,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Torgg Thundertotem - Cast Healing Wave'),
+(27716,0,2,0,0,0,100,0,0,0,21000,21000,11,31991,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Torgg Thundertotem - Cast Corrupted Nova Totem'),
+(27716,0,3,0,0,0,100,0,4000,4000,12000,12000,11,15501,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Torgg Thundertotem - Cast Earth Shock'),
+(27716,0,4,0,7,0,100,0,0,0,0,0,47,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Torgg Thundertotem - Evade - Unseen'),
+(27716,0,5,0,7,0,100,0,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Torgg Thundertotem - Evade - Despawn'),
+(27716,0,6,0,6,0,100,0,0,0,0,0,15,12428,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Torgg Thundertotem - Credit'),
+(27716,0,7,0,6,0,100,0,0,0,0,0,47,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Torgg Thundertotem - Death - Unseen'),
+(27716,0,8,0,7,0,100,0,0,0,0,0,6,12428,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Torgg Thundertotem - Evade - Quest Fail'),
+
+-- Rustblood 27717
+(27717,0,0,0,0,0,100,0,5000,7000,5000,7000,11,42746,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Rustblood - Cast Cleave'),
+(27717,0,1,0,9,0,100,0,0,5,22000,30000,11,49398,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Rustblood - Cast Knockback'),
+(27717,0,2,0,0,0,100,0,12000,15000,18000,21000,11,14102,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Rustblood - Cast Head Smash'),
+(27717,0,3,0,0,0,100,0,0,3000,12000,12000,11,61893,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Rustblood - Cast Lightning Bolt'),
+(27717,0,4,0,7,0,100,0,0,0,0,0,47,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Rustblood - Evade - Unseen'),
+(27717,0,5,0,7,0,100,0,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Rustblood - Evade - Despawn'),
+(27717,0,6,0,6,0,100,0,0,0,0,0,15,12429,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Rustblood - Death - Credit'),
+(27717,0,7,0,6,0,100,0,0,0,0,0,47,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Rustblood - Death - Unseen'),
+(27717,0,8,0,7,0,100,0,0,0,0,0,6,12429,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Rustblood - Evade - Quest Fail'),
+
+-- Horgrenn Hellcleave 27718
+(27718,0,0,0,9,0,100,0,0,10,21000,29000,11,16508,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Horgrenn Hellcleave - Cast Intimidating Roar'),
+(27718,0,1,0,0,0,100,0,3000,6000,8000,12000,11,15572,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Horgrenn Hellcleave - Cast Sunder Armor'),
+(27718,0,2,0,0,0,100,0,9000,12000,12000,16000,11,39171,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Horgrenn Hellcleave - Cast Mortal Strike'),
+(27718,0,3,0,0,0,100,0,13000,15000,13000,18000,11,38618,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Horgrenn Hellcleave - Cast Whirlwind'),
+(27718,0,4,0,7,0,100,0,0,0,0,0,47,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Horgrenn Hellcleave - Evade - Unseen'),
+(27718,0,5,0,7,0,100,0,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Horgrenn Hellcleave - Evade - Despawn'),
+(27718,0,6,0,6,0,100,0,0,0,0,0,15,12430,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Horgrenn Hellcleave - Death - Credit'),
+(27718,0,7,0,6,0,100,0,0,0,0,0,47,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Horgrenn Hellcleave - Death - Unseen'),
+(27718,0,8,0,7,0,100,0,0,0,0,0,6,12430,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Horgrenn Hellcleave - Evade - Quest Fail'),
+
+-- Conqueror Krenna 27727
+(27727,0,0,0,9,0,100,0,0,5,7000,9000,11,15284,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Conqueror Krenna - Cast Cleave'),
+(27727,0,1,0,0,0,100,0,9000,12000,12000,17000,11,11430,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Conqueror Krenna - Cast Slam'),
+(27727,0,2,0,13,0,100,0,14000,17000,14000,17000,11,12555,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Conqueror Krenna - Cast Pummel'),
+(27727,0,3,0,13,0,100,0,3000,6000,6000,11000,11,34719,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Conqueror Krenna - Cast Fixate'),
+(27727,0,4,0,54,0,100,0,0,0,0,0,12,27726,3,75000,0,0,0,8,0,0,0,3244.50,-2340.56,92.14,6.27, 'Conqueror Krenna - Summon Gorgonna'),
+(27727,0,5,0,54,0,100,0,0,0,0,0,1,0,18000,0,0,0,0,1,0,0,0,0,0,0,0, 'Conqueror Krenna - Summoned - Say 0'),
+(27727,0,6,0,52,0,100,0,0,27727,0,0,1,1,6000,0,0,0,0,1,0,0,0,0,0,0,0, 'Conqueror Krenna - Say 0 - Say 1'),
+(27727,0,7,0,1,0,100,1,35000,35000,1,1,2,14,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Conqueror Krenna - OOC 35 Sec - Enemy'),
+(27727,0,8,0,6,0,100,0,0,0,0,0,15,12431,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Conqueror Krenna - Death - Credit'),
+(27727,0,9,0,6,0,100,0,0,0,0,0,47,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Conqueror Krenna - Death - Unseen'),
+(27727,0,10,0,7,0,100,0,0,0,0,0,6,12431,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Conqueror Krenna - Evade - Quest Fail'),
+
+-- Gorgonna 27726
+(27726,0,0,0,1,0,100,1,6000,6000,1,1,1,0,6000,0,0,0,0,1,0,0,0,0,0,0,0,'Gorgonna - OOC 6 Sec - Say 0'),
+(27726,0,1,0,52,0,100,0,0,27726,0,0,1,1,18000,0,0,0,0,1,0,0,0,0,0,0,0,'Gorgonna - Say 0 - Say 1'),
+(27726,0,2,0,52,0,100,0,1,27726,0,0,1,2,15000,0,0,0,0,1,0,0,0,0,0,0,0,'Gorgonna - Say 1 - Say 2'),
+(27726,0,3,0,52,0,100,0,2,27726,0,0,1,3,0,0,0,0,0,1,0,0,0,0,0,0,0,'Gorgonna - Say 2 - Say 3'),
+
+-- Grennix Shivwiggle 27719
+(27719, 0, 0, 0, 19, 0, 100, 0, 12427, 0, 0, 0, 12, 27715, 7, 0, 0, 0, 0, 8, 0, 0, 0, 3242.77, -2340.98, 92.34, 0.98, 'Grennix Shivwiggle - Accepted Quest - Summon 27715'),
+(27719, 0, 1, 0, 19, 0, 100, 0, 12428, 0, 0, 0, 12, 27716, 7, 0, 0, 0, 0, 8, 0, 0, 0, 3242.77, -2340.98, 92.34, 0.98, 'Grennix Shivwiggle - Accepted Quest - Summon 27716'),
+(27719, 0, 2, 0, 19, 0, 100, 0, 12429, 0, 0, 0, 12, 27717, 7, 0, 0, 0, 0, 8, 0, 0, 0, 3242.77, -2340.98, 92.34, 0.98, 'Grennix Shivwiggle - Accepted Quest - Summon 27717'),
+(27719, 0, 3, 0, 19, 0, 100, 0, 12430, 0, 0, 0, 12, 27718, 7, 0, 0, 0, 0, 8, 0, 0, 0, 3242.77, -2340.98, 92.34, 0.98, 'Grennix Shivwiggle - Accepted Quest - Summon 27718'),
+(27719, 0, 4, 0, 19, 0, 100, 0, 12431, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Grennix Shivwiggle - Accepted Quest - Say 0'),
+(27719, 0, 5, 0, 19, 0, 100, 0, 12431, 0, 0, 0, 12, 27727, 7, 0, 0, 0, 0, 8, 0, 0, 0, 3251.91, -2340.61, 91.86, 3.1, 'Grennix Shivwiggle - Accepted Quest - Summon 27727');
diff --git a/sql/updates/world/2013_08_09_01_world_sai.sql b/sql/updates/world/2013_08_09_01_world_sai.sql
new file mode 100644
index 00000000000..2f4a1d914da
--- /dev/null
+++ b/sql/updates/world/2013_08_09_01_world_sai.sql
@@ -0,0 +1 @@
+UPDATE `smart_scripts` SET `event_flags`=1 WHERE `entryorguid`=7664 AND `source_type`=0 AND `id`IN (3,5,7) AND `link` IN (4,6,8);
diff --git a/sql/updates/world/2013_08_09_02_world_cond_335.sql b/sql/updates/world/2013_08_09_02_world_cond_335.sql
new file mode 100644
index 00000000000..ba4ce6d5a8f
--- /dev/null
+++ b/sql/updates/world/2013_08_09_02_world_cond_335.sql
@@ -0,0 +1,8 @@
+UPDATE `quest_template` SET `PrevQuestId`=0 WHERE `Id`=8280;
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (19,20) and `SourceEntry`=8280;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(20, 0, 8280, 0, 0, 8, 0, 8275, 0, 0, 0, 0, 0, '', 'Securing the Supply Lines can be taken if Taking Back Silithus (Alliance) Complete'),
+(19, 0, 8280, 0, 0, 8, 0, 8275, 0, 0, 0, 0, 0, '', 'Securing the Supply Lines can be taken if Taking Back Silithus (Alliance) Complete'),
+(20, 0, 8280, 0, 1, 8, 0, 8276, 0, 0, 0, 0, 0, '', 'Securing the Supply Lines can be taken if Taking Back Silithus (Horde) Complete'),
+(19, 0, 8280, 0, 1, 8, 0, 8276, 0, 0, 0, 0, 0, '', 'Securing the Supply Lines can be taken if Taking Back Silithus (Horde) Complete');
diff --git a/sql/updates/world/2013_08_09_03_world_sai.sql b/sql/updates/world/2013_08_09_03_world_sai.sql
new file mode 100644
index 00000000000..71b44ff8966
--- /dev/null
+++ b/sql/updates/world/2013_08_09_03_world_sai.sql
@@ -0,0 +1,12 @@
+SET @RavenousJaws=29392;
+
+UPDATE `creature_template` SET `ainame`='SmartAI' WHERE `entry`=@RavenousJaws;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=17 AND `SourceEntry`=6509;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(17,0,6509,0,0,1,1,47172,0,0,0,0,0,0,'Cast Gore Bladder only if Cosmetic - Underwater Blood (no sound) aura is active');
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@RavenousJaws AND `source_type`=0;
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(@RavenousJaws,0,0,0,0,0,100,0,2000,5000,4000,7000,11,3391,0,0,0,0,0,1,0,0,0,0,0,0,0,'Ravenous Jaws - In combat - cast Thrash'),
+(@RavenousJaws,0,1,0,6,0,100,0,0,0,0,0,11,47172,2,0,0,0,0,1,0,0,0,0,0,0,0,'Ravenous Jaws - On death - cast Underwater Blood'),
+(@RavenousJaws,0,2,3,8,0,100,0,6509,0,0,0,28,47172,0,0,0,0,0,1,0,0,0,0,0,0,0,'Ravenous Jaws - On spell hit Gore Bladder - remove aura'),
+(@RavenousJaws,0,3,0,61,0,100,0,0,0,0,0,33,29391,0,0,0,0,0,7,0,0,0,0,0,0,0,'Ravenous Jaws - Link previous event - give quest credit');
diff --git a/sql/updates/world/2013_08_09_04_world_sai.sql b/sql/updates/world/2013_08_09_04_world_sai.sql
new file mode 100644
index 00000000000..57312d76910
--- /dev/null
+++ b/sql/updates/world/2013_08_09_04_world_sai.sql
@@ -0,0 +1,22 @@
+UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` =23162;
+
+DELETE FROM `creature_ai_scripts` WHERE `creature_id` =23162;
+DELETE FROM `smart_scripts` WHERE `entryorguid` =23162 AND `source_type`=0;
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(23162, 0, 0,1,11,0, 100, 0, 0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Vakkiz the Windrager - On Spawn - Say Emote'),
+(23162, 0, 1,2,61,0, 100, 0, 0,0,0,0,19,33088,0,0,0,0,0,1,0,0,0,0,0,0,0,'Vakkiz the Windrager - Linked with Previous Event - Set Unit Flags'),
+(23162, 0, 2,0,61,0, 100, 0, 0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Vakkiz the Windrager - Linked with Previous Event - Set Phase 1'),
+(23162, 0, 3,0, 0,1, 100, 0, 6500,9500,8500,11500,11,40420,0,0,0,0,0,2,0,0,0,0,0,0,0,'Vakkiz the Windrager - IC - Cast Lightning Breath (Phase 1)'),
+(23162, 0, 4,5, 2,1, 100, 0, 0,40,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Vakkiz the Windrager - On 40% HP - Say Emote'),
+(23162, 0, 5,6,61,1, 100, 0, 0,0,0,0,3,0,21296,0,0,0,0,1,0,0,0,0,0,0,0,'Vakkiz the Windrager - Linked with Previous Event - Change Model'),
+(23162, 0, 6,0,61,1, 100, 0, 0,0,0,0,22,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Vakkiz the Windrager - Linked with Previous Event - Set Phase 2'),
+(23162, 0, 7,0, 0,2, 100, 0, 3000,7000,5000,9000,11,40419,0,0,0,0,0,1,0,0,0,0,0,0,0,'Vakkiz the Windrager - IC - Cast Bone Spray (Phase 2)'),
+(23162, 0, 8,9, 7,0, 100, 0, 0,0,0,0,19,33088,0,0,0,0,0,1,0,0,0,0,0,0,0,'Vakkiz the Windrager - On Evade - Set Unit Flags'),
+(23162, 0, 9,10,61,0, 100, 0, 0,0,0,0,3,0,20837,0,0,0,0,1,0,0,0,0,0,0,0,'Vakkiz the Windrager - Linked with Previous Event - Set Model'),
+(23162, 0,10,0,61,0, 100, 0, 0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Vakkiz the Windrager - Linked with Previous Event - Set Phase 1');
+
+DELETE FROM `creature_text` WHERE `entry` =23162;
+DELETE FROM `creature_ai_texts` WHERE `entry` IN (-234,-235);
+INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`) VALUES
+(23162, 0, 0, 'Furious winds envelop Vakkiz as he writhes menacingly towards you.', 16, 0, 100, 0, 0, 0, 'Vakkiz the Windrager'),
+(23162, 1, 0, '%s''s flesh shatters in an unearthly rage!', 16, 0, 100, 0, 0, 0, 'Vakkiz the Windrager');
diff --git a/sql/updates/world/2013_08_09_05_world_sai.sql b/sql/updates/world/2013_08_09_05_world_sai.sql
new file mode 100644
index 00000000000..889a0351181
--- /dev/null
+++ b/sql/updates/world/2013_08_09_05_world_sai.sql
@@ -0,0 +1,29 @@
+SET @DIBear=30292; -- Dead Icemaw Bear
+SET @LJBunny=30366; -- Lure Jormuttar Bunny
+
+-- WTF?! Spell Carve Bear Flank have no triggered spell
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger`=56562;
+-- Set Spell script
+DELETE FROM `spell_script_names` WHERE `spell_id`=56565;
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(56565,'spell_q13011_bear_flank_master');
+-- Update Item's Target requirement
+UPDATE `conditions` SET `ConditionTypeOrReference`=31 ,`ConditionTarget`=1 ,`ConditionValue1` =3,`ConditionValue2`=@DIBear WHERE `SourceTypeOrReferenceId`=17 AND `SourceGroup`=0 AND `SourceEntry`=56562;
+-- Update creature_templates to use SAI
+UPDATE `creature_template` SET `ainame`='SmartAI' WHERE `entry` IN (@DIBear,@LJBunny);
+-- Update Icy Crater phaseMask
+UPDATE `gameobject` SET `phaseMask`=4 WHERE `guid`=99730;
+-- Add Dead Icemaw Bear SAI
+DELETE FROM `smart_scripts` WHERE `entryorguid`=30292 AND `source_type`=0;
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(@DIBear,0,0,1,8,0,100,0,56562,0,0,0,11,56565,0,0,0,0,0,7,0,0,0,0,0,0,0,'Dead Icemaw Bear - On Spell Hit - Cast Bear Flank Master'),
+(@DIBear,0,1,0,61,0,100,0,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Dead Icemaw Bear - Link With Previous Event - Despawn'),
+(@DIBear,0,2,0,8,0,100,0,56569,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Dead Icemaw Bear - On Spell Hit - Despawn');
+-- Add Lure Jormuttar Bunny SAI
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@LJBunny AND `source_type`=0;
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(@LJBunny,0,0,0,11,0,100,0,0,0,0,0,12,30340,2,120000,0,0,0,1,0,0,0,0,0,0,0,'Lure Jormuttar Bunny - On Spawn - Summon Jormuttar');
+-- Add Dead Icemaw Bear creature_text
+DELETE FROM `creature_text` WHERE `entry`=30292;
+INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`) VALUES
+(@DIBear,0,0,'This bear\'s flank is frozen solid... try again.',42,0,0,0,0,0,'');
diff --git a/sql/updates/world/2013_08_09_06_world_ainame.sql b/sql/updates/world/2013_08_09_06_world_ainame.sql
new file mode 100644
index 00000000000..fd25f912bd7
--- /dev/null
+++ b/sql/updates/world/2013_08_09_06_world_ainame.sql
@@ -0,0 +1,8 @@
+UPDATE `creature_template` SET `AIName`='' WHERE `entry`=29400; -- Corrupted Scarlet Onslaught (EAI)
+UPDATE `creature_template` SET `AIName`='' WHERE `entry`=29403; -- Onslaught Gryphon (SAI)
+UPDATE `creature_template` SET `AIName`='' WHERE `entry`=30210; -- Hodir's Helm KC Bunny (SAI)
+UPDATE `creature_template` SET `AIName`='' WHERE `entry`=30575; -- Frostbrood Destroyer (SAI)
+UPDATE `creature_template` SET `AIName`='' WHERE `entry`=30841; -- Death Gate (Mograine) (SAI)
+UPDATE `creature_template` SET `AIName`='' WHERE `entry`=30850; -- Death Gate (Munch) (SAI)
+UPDATE `creature_template` SET `AIName`='' WHERE `entry`=30852; -- Death Gate (Jayde) (SAI)
+UPDATE `creature_template` SET `AIName`='' WHERE `entry`=34885; -- Dame Evniki Kapsalis (SAI)
diff --git a/sql/updates/world/2013_08_09_07_world_sai.sql b/sql/updates/world/2013_08_09_07_world_sai.sql
new file mode 100644
index 00000000000..60699267c4f
--- /dev/null
+++ b/sql/updates/world/2013_08_09_07_world_sai.sql
@@ -0,0 +1,41 @@
+-- Random comment â„¢
+-- Corrupted Scarlet Onslaught
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=29400;
+DELETE FROM `smart_scripts` WHERE `entryorguid` = 29400;
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(29400,0,0,0,0,0,100,0,2000,15000,30000,45000,11,38056,2,0,0,0,0,2,0,0,0,0,0,0,0,'Corrupted Scarlet Onslaught - IC - Flesh Rip');
+
+-- Onslaught Raven Bishop
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=29338;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=29338;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(29338,0,0,0,4,0,100,1,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Raven Bishop - Set Phase 1 - On Aggro'),
+(29338,0,1,0,4,1,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Raven Bishop - Stop Moving - On Aggro'),
+(29338,0,2,0,4,1,100,1,0,0,0,0,11,50740,0,0,0,0,0,2,0,0,0,0,0,0,0,'Raven Bishop - Cast bolt on Aggro'),
+(29338,0,3,0,9,1,100,0,0,40,3400,4700,11,50740,0,0,0,0,0,2,0,0,0,0,0,0,0,'Raven Bishop - Cast Raven Flock'),
+(29338,0,4,0,9,1,100,0,40,100,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Raven Bishop - Start Moving - When not in flock Range'),
+(29338,0,5,0,9,1,100,0,10,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Raven Bishop - Stop Moving - 15 Yards'),
+(29338,0,6,0,9,1,100,0,0,40,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Raven Bishop - Stop Moving - When in flock Range'),
+(29338,0,7,0,3,1,100,0,0,15,0,0,22,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Raven Bishop - Set Phase 2 - 15% Mana'),
+(29338,0,8,0,3,2,100,0,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Raven Bishop - Start Moving - 15% Mana'),
+(29338,0,9,0,3,2,100,0,30,100,100,100,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Raven Bishop - Set Phase 1 - When Mana is above 30%'),
+(29338,0,10,0,2,1,100,0,10,50,2000,8000,11,50750,0,0,0,0,0,2,0,0,0,0,0,0,0,'Raven Bishop - Health Pct - Cast Raven Heal');
+
+-- Onslaught Paladin
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=29329;
+DELETE FROM `smart_scripts` WHERE `entryorguid` = 29329;
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(29329,0,0,0,4,0,100,0,0,0,0,0,11,19131,2,0,0,0,0,2,0,0,0,0,0,0,0,'Onslaught Paladin - On Aggro - Cast Charge'),
+(29329,0,1,0,0,0,100,0,2000,9000,17000,30000,11,32774,2,0,0,0,0,2,0,0,0,0,0,0,0,'Onslaught Paladin - IC - Avenger''s Shield');
+
+-- Onslaught Harbor Guard
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=29330;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=29330;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(29330,0,0,0,4,0,100,1,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Harbor Guard - Set Phase 1 - On Aggro'),
+(29330,0,1,0,4,1,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,'Harbor Guard - Cast Shoot - On Aggro'),
+(29330,0,2,0,9,1,100,0,0,40,3400,4700,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,'Harbor Guard - Cast Shoot'),
+(29330,0,3,0,9,1,100,0,40,100,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Harbor Guard - Start Moving - When not in Shoot range'),
+(29330,0,4,0,9,1,100,0,10,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Harbor Guard - Stop Moving - 15 Yards'),
+(29330,0,5,0,9,1,100,0,0,40,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Harbor Guard - Stop Moving - When in bolt Range'),
+(29330,0,6,0,0,1,100,0,8000,8000,12000,14000,11,50750,0,0,0,0,0,1,0,0,0,0,0,0,0,'Harbor Guard - IC - Cast Frost Shot');
diff --git a/src/server/CMakeLists.txt b/src/server/CMakeLists.txt
index 02fca56340f..646b89b6f80 100644
--- a/src/server/CMakeLists.txt
+++ b/src/server/CMakeLists.txt
@@ -17,7 +17,7 @@ if(CMAKE_COMPILER_IS_GNUCXX AND NOT MINGW)
endif()
if( SERVERS )
- set(sources_Debugging
+ set(sources_windows_Debugging
${CMAKE_SOURCE_DIR}/src/server/shared/Debugging/WheatyExceptionReport.cpp
${CMAKE_SOURCE_DIR}/src/server/shared/Debugging/WheatyExceptionReport.h
)
diff --git a/src/server/authserver/Authentication/AuthCodes.cpp b/src/server/authserver/Authentication/AuthCodes.cpp
index 55229e0d18b..b47ef21b24b 100644
--- a/src/server/authserver/Authentication/AuthCodes.cpp
+++ b/src/server/authserver/Authentication/AuthCodes.cpp
@@ -37,6 +37,7 @@ namespace AuthHelper
static RealmBuildInfo const PreBcAcceptedClientBuilds[] =
{
+ {6141, 1, 12, 3, ' '},
{6005, 1, 12, 2, ' '},
{5875, 1, 12, 1, ' '},
{0, 0, 0, 0, ' '} // terminator
diff --git a/src/server/authserver/CMakeLists.txt b/src/server/authserver/CMakeLists.txt
index 57ab1ffa4ed..ff3a4cdd67c 100644
--- a/src/server/authserver/CMakeLists.txt
+++ b/src/server/authserver/CMakeLists.txt
@@ -29,16 +29,14 @@ set(authserver_SRCS
)
if( WIN32 )
+ set(authserver_SRCS
+ ${authserver_SRCS}
+ ${sources_windows_Debugging}
+ )
if ( MSVC )
set(authserver_SRCS
${authserver_SRCS}
- ${sources_Debugging}
- authserver.rc
- )
- else ( )
- set(authserver_SRCS
- ${authserver_SRCS}
- ${sources_Debugging}
+ authserver.rc
)
endif ()
endif()
@@ -80,6 +78,8 @@ target_link_libraries(authserver
shared
${MYSQL_LIBRARY}
${OPENSSL_LIBRARIES}
+ ${CMAKE_THREAD_LIBS_INIT}
+ ${ACE_LIBRARY}
)
if( WIN32 )
diff --git a/src/server/authserver/Main.cpp b/src/server/authserver/Main.cpp
index ee46e17401b..9a6cc89fdd4 100644
--- a/src/server/authserver/Main.cpp
+++ b/src/server/authserver/Main.cpp
@@ -15,6 +15,7 @@
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+
/**
* @file main.cpp
* @brief Authentication Server main program
@@ -22,6 +23,7 @@
* This file contains the main program for the
* authentication server
*/
+
#include <ace/Dev_Poll_Reactor.h>
#include <ace/TP_Reactor.h>
#include <ace/ACE.h>
@@ -39,6 +41,12 @@
#include "RealmList.h"
#include "RealmAcceptor.h"
+#ifdef __linux__
+#include <sched.h>
+#include <sys/resource.h>
+#define PROCESS_HIGH_PRIORITY -15 // [-20, 19], default is 0
+#endif
+
#ifndef _TRINITY_REALM_CONFIG
# define _TRINITY_REALM_CONFIG "authserver.conf"
#endif
@@ -48,15 +56,15 @@ void StopDB();
bool stopEvent = false; // Setting it to true stops the server
-LoginDatabaseWorkerPool LoginDatabase; // Accessor to the auth server database
+LoginDatabaseWorkerPool LoginDatabase; // Accessor to the authserver database
/// Handle authserver's termination signals
class AuthServerSignalHandler : public Trinity::SignalHandler
{
public:
- virtual void HandleSignal(int SigNum)
+ virtual void HandleSignal(int sigNum)
{
- switch (SigNum)
+ switch (sigNum)
{
case SIGINT:
case SIGTERM:
@@ -67,7 +75,7 @@ public:
};
/// Print out the usage string for this program on the console.
-void usage(const char *prog)
+void usage(const char* prog)
{
TC_LOG_INFO(LOG_FILTER_AUTHSERVER, "Usage: \n %s [<options>]\n"
" -c config_file use config_file as configuration file\n\r",
@@ -75,37 +83,37 @@ void usage(const char *prog)
}
/// Launch the auth server
-extern int main(int argc, char **argv)
+extern int main(int argc, char** argv)
{
// Command line parsing to get the configuration file name
- char const* cfg_file = _TRINITY_REALM_CONFIG;
- int c = 1;
- while (c < argc)
+ char const* configFile = _TRINITY_REALM_CONFIG;
+ int count = 1;
+ while (count < argc)
{
- if (strcmp(argv[c], "-c") == 0)
+ if (strcmp(argv[count], "-c") == 0)
{
- if (++c >= argc)
+ if (++count >= argc)
{
printf("Runtime-Error: -c option requires an input argument\n");
usage(argv[0]);
return 1;
}
else
- cfg_file = argv[c];
+ configFile = argv[count];
}
- ++c;
+ ++count;
}
- if (!ConfigMgr::Load(cfg_file))
+ if (!sConfigMgr->LoadInitial(configFile))
{
- printf("Invalid or missing configuration file : %s\n", cfg_file);
+ printf("Invalid or missing configuration file : %s\n", configFile);
printf("Verify that the file exists and has \'[authserver]\' written in the top of the file!\n");
return 1;
}
TC_LOG_INFO(LOG_FILTER_AUTHSERVER, "%s (authserver)", _FULLVERSION);
TC_LOG_INFO(LOG_FILTER_AUTHSERVER, "<Ctrl-C> to stop.\n");
- TC_LOG_INFO(LOG_FILTER_AUTHSERVER, "Using configuration file %s.", cfg_file);
+ TC_LOG_INFO(LOG_FILTER_AUTHSERVER, "Using configuration file %s.", configFile);
TC_LOG_WARN(LOG_FILTER_AUTHSERVER, "%s (Library: %s)", OPENSSL_VERSION_TEXT, SSLeay_version(SSLEAY_VERSION));
@@ -118,16 +126,16 @@ extern int main(int argc, char **argv)
TC_LOG_DEBUG(LOG_FILTER_AUTHSERVER, "Max allowed open files is %d", ACE::max_handles());
// authserver PID file creation
- std::string pidfile = ConfigMgr::GetStringDefault("PidFile", "");
- if (!pidfile.empty())
+ std::string pidFile = sConfigMgr->GetStringDefault("PidFile", "");
+ if (!pidFile.empty())
{
- uint32 pid = CreatePIDFile(pidfile);
- if (!pid)
+ if (uint32 pid = CreatePIDFile(pidFile))
+ TC_LOG_INFO(LOG_FILTER_AUTHSERVER, "Daemon PID: %u\n", pid);
+ else
{
- TC_LOG_ERROR(LOG_FILTER_AUTHSERVER, "Cannot create PID file %s.\n", pidfile.c_str());
+ TC_LOG_ERROR(LOG_FILTER_AUTHSERVER, "Cannot create PID file %s.\n", pidFile.c_str());
return 1;
}
- TC_LOG_INFO(LOG_FILTER_AUTHSERVER, "Daemon PID: %u\n", pid);
}
// Initialize the database connection
@@ -135,7 +143,7 @@ extern int main(int argc, char **argv)
return 1;
// Get the list of realms for the server
- sRealmList->Initialize(ConfigMgr::GetIntDefault("RealmsStateUpdateDelay", 20));
+ sRealmList->Initialize(sConfigMgr->GetIntDefault("RealmsStateUpdateDelay", 20));
if (sRealmList->size() == 0)
{
TC_LOG_ERROR(LOG_FILTER_AUTHSERVER, "No valid realms specified.");
@@ -145,14 +153,14 @@ extern int main(int argc, char **argv)
// Launch the listening network socket
RealmAcceptor acceptor;
- int32 rmport = ConfigMgr::GetIntDefault("RealmServerPort", 3724);
+ int32 rmport = sConfigMgr->GetIntDefault("RealmServerPort", 3724);
if (rmport < 0 || rmport > 0xFFFF)
{
TC_LOG_ERROR(LOG_FILTER_AUTHSERVER, "Specified port out of allowed range (1-65535)");
return 1;
}
- std::string bind_ip = ConfigMgr::GetStringDefault("BindIP", "0.0.0.0");
+ std::string bind_ip = sConfigMgr->GetStringDefault("BindIP", "0.0.0.0");
ACE_INET_Addr bind_addr(uint16(rmport), bind_ip.c_str());
@@ -162,7 +170,7 @@ extern int main(int argc, char **argv)
return 1;
}
- // Initialise the signal handlers
+ // Initialize the signal handlers
AuthServerSignalHandler SignalINT, SignalTERM;
// Register authservers's signal handlers
@@ -170,46 +178,73 @@ extern int main(int argc, char **argv)
Handler.register_handler(SIGINT, &SignalINT);
Handler.register_handler(SIGTERM, &SignalTERM);
- ///- Handle affinity for multiple processors and process priority on Windows
-#ifdef _WIN32
+ ///- Handle affinity for multiple processors and process priority
+ uint32 affinity = sConfigMgr->GetIntDefault("UseProcessors", 0);
+ bool highPriority = sConfigMgr->GetBoolDefault("ProcessPriority", false);
+
+#ifdef _WIN32 // Windows
{
HANDLE hProcess = GetCurrentProcess();
- uint32 Aff = ConfigMgr::GetIntDefault("UseProcessors", 0);
- if (Aff > 0)
+ if (affinity > 0)
{
ULONG_PTR appAff;
ULONG_PTR sysAff;
if (GetProcessAffinityMask(hProcess, &appAff, &sysAff))
{
- ULONG_PTR curAff = Aff & appAff; // remove non accessible processors
+ ULONG_PTR currentAffinity = affinity & appAff; // remove non accessible processors
- if (!curAff)
- TC_LOG_ERROR(LOG_FILTER_AUTHSERVER, "Processors marked in UseProcessors bitmask (hex) %x not accessible for authserver. Accessible processors bitmask (hex): %x", Aff, appAff);
- else if (SetProcessAffinityMask(hProcess, curAff))
- TC_LOG_INFO(LOG_FILTER_AUTHSERVER, "Using processors (bitmask, hex): %x", curAff);
+ if (!currentAffinity)
+ TC_LOG_ERROR(LOG_FILTER_AUTHSERVER, "Processors marked in UseProcessors bitmask (hex) %x are not accessible for the authserver. Accessible processors bitmask (hex): %x", affinity, appAff);
+ else if (SetProcessAffinityMask(hProcess, currentAffinity))
+ TC_LOG_INFO(LOG_FILTER_AUTHSERVER, "Using processors (bitmask, hex): %x", currentAffinity);
else
- TC_LOG_ERROR(LOG_FILTER_AUTHSERVER, "Can't set used processors (hex): %x", curAff);
+ TC_LOG_ERROR(LOG_FILTER_AUTHSERVER, "Can't set used processors (hex): %x", currentAffinity);
}
-
}
- bool Prio = ConfigMgr::GetBoolDefault("ProcessPriority", false);
-
- if (Prio)
+ if (highPriority)
{
if (SetPriorityClass(hProcess, HIGH_PRIORITY_CLASS))
- TC_LOG_INFO(LOG_FILTER_AUTHSERVER, "The auth server process priority class has been set to HIGH");
+ TC_LOG_INFO(LOG_FILTER_AUTHSERVER, "authserver process priority class set to HIGH");
else
- TC_LOG_ERROR(LOG_FILTER_AUTHSERVER, "Can't set auth server process priority class.");
+ TC_LOG_ERROR(LOG_FILTER_AUTHSERVER, "Can't set authserver process priority class.");
+ }
+ }
+#elif __linux__ // Linux
+ if (affinity > 0)
+ {
+ cpu_set_t mask;
+ CPU_ZERO(&mask);
+
+ for (unsigned int i = 0; i < sizeof(affinity) * 8; ++i)
+ if (affinity & (1 << i))
+ CPU_SET(i, &mask);
+
+ if (sched_setaffinity(0, sizeof(mask), &mask))
+ TC_LOG_ERROR(LOG_FILTER_AUTHSERVER, "Can't set used processors (hex): %x, error: %s", affinity, strerror(errno));
+ else
+ {
+ CPU_ZERO(&mask);
+ sched_getaffinity(0, sizeof(mask), &mask);
+ TC_LOG_INFO(LOG_FILTER_AUTHSERVER, "Using processors (bitmask, hex): %x", *(uint32*)(&mask));
}
}
+
+ if (highPriority)
+ {
+ if (setpriority(PRIO_PROCESS, 0, PROCESS_HIGH_PRIORITY))
+ TC_LOG_ERROR(LOG_FILTER_AUTHSERVER, "Can't set authserver process priority class, error: %s", strerror(errno));
+ else
+ TC_LOG_INFO(LOG_FILTER_AUTHSERVER, "authserver process priority class set to %i", getpriority(PRIO_PROCESS, 0));
+ }
+
#endif
// maximum counter for next ping
- uint32 numLoops = (ConfigMgr::GetIntDefault("MaxPingTime", 30) * (MINUTE * 1000000 / 100000));
+ uint32 numLoops = (sConfigMgr->GetIntDefault("MaxPingTime", 30) * (MINUTE * 1000000 / 100000));
uint32 loopCounter = 0;
// Wait for termination signal
@@ -241,21 +276,21 @@ bool StartDB()
{
MySQL::Library_Init();
- std::string dbstring = ConfigMgr::GetStringDefault("LoginDatabaseInfo", "");
+ std::string dbstring = sConfigMgr->GetStringDefault("LoginDatabaseInfo", "");
if (dbstring.empty())
{
TC_LOG_ERROR(LOG_FILTER_AUTHSERVER, "Database not specified");
return false;
}
- int32 worker_threads = ConfigMgr::GetIntDefault("LoginDatabase.WorkerThreads", 1);
+ int32 worker_threads = sConfigMgr->GetIntDefault("LoginDatabase.WorkerThreads", 1);
if (worker_threads < 1 || worker_threads > 32)
{
TC_LOG_ERROR(LOG_FILTER_AUTHSERVER, "Improper value specified for LoginDatabase.WorkerThreads, defaulting to 1.");
worker_threads = 1;
}
- int32 synch_threads = ConfigMgr::GetIntDefault("LoginDatabase.SynchThreads", 1);
+ int32 synch_threads = sConfigMgr->GetIntDefault("LoginDatabase.SynchThreads", 1);
if (synch_threads < 1 || synch_threads > 32)
{
TC_LOG_ERROR(LOG_FILTER_AUTHSERVER, "Improper value specified for LoginDatabase.SynchThreads, defaulting to 1.");
diff --git a/src/server/authserver/Server/AuthSocket.cpp b/src/server/authserver/Server/AuthSocket.cpp
index 2e73498eb52..6bfe918643c 100644
--- a/src/server/authserver/Server/AuthSocket.cpp
+++ b/src/server/authserver/Server/AuthSocket.cpp
@@ -196,12 +196,12 @@ const AuthHandler table[] =
Patcher PatchesCache;
// Constructor - set the N and g values for SRP6
-AuthSocket::AuthSocket(RealmSocket& socket) : pPatch(NULL), socket_(socket)
+AuthSocket::AuthSocket(RealmSocket& socket) :
+ pPatch(NULL), socket_(socket), _authed(false), _build(0),
+ _expversion(0), _accountSecurityLevel(SEC_PLAYER)
{
N.SetHexStr("894B645E89E1535BBDAD5B8B290650530801B18EBFBF5E8FAB3C82872A3E9BB7");
g.SetDword(7);
- _authed = false;
- _accountSecurityLevel = SEC_PLAYER;
}
// Close patch file descriptor before leaving
@@ -682,7 +682,7 @@ bool AuthSocket::_HandleLogonProof()
TC_LOG_DEBUG(LOG_FILTER_AUTHSERVER, "'%s:%d' [AuthChallenge] account %s tried to login with invalid password!", socket().getRemoteAddress().c_str(), socket().getRemotePort(), _login.c_str ());
- uint32 MaxWrongPassCount = ConfigMgr::GetIntDefault("WrongPass.MaxCount", 0);
+ uint32 MaxWrongPassCount = sConfigMgr->GetIntDefault("WrongPass.MaxCount", 0);
if (MaxWrongPassCount > 0)
{
//Increment number of failed logins by one and if it reaches the limit temporarily ban that account or IP
@@ -699,8 +699,8 @@ bool AuthSocket::_HandleLogonProof()
if (failed_logins >= MaxWrongPassCount)
{
- uint32 WrongPassBanTime = ConfigMgr::GetIntDefault("WrongPass.BanTime", 600);
- bool WrongPassBanType = ConfigMgr::GetBoolDefault("WrongPass.BanType", false);
+ uint32 WrongPassBanTime = sConfigMgr->GetIntDefault("WrongPass.BanTime", 600);
+ bool WrongPassBanType = sConfigMgr->GetBoolDefault("WrongPass.BanType", false);
if (WrongPassBanType)
{
diff --git a/src/server/authserver/Server/RealmSocket.cpp b/src/server/authserver/Server/RealmSocket.cpp
index e249894a4d3..6710a6a88ae 100644
--- a/src/server/authserver/Server/RealmSocket.cpp
+++ b/src/server/authserver/Server/RealmSocket.cpp
@@ -27,7 +27,9 @@ RealmSocket::Session::Session(void) {}
RealmSocket::Session::~Session(void) { }
-RealmSocket::RealmSocket(void) : input_buffer_(4096), session_(NULL), _remoteAddress()
+RealmSocket::RealmSocket(void) :
+ input_buffer_(4096), session_(NULL),
+ _remoteAddress(), _remotePort(0)
{
reference_counting_policy().value(ACE_Event_Handler::Reference_Counting_Policy::ENABLED);
diff --git a/src/server/authserver/authserver.conf.dist b/src/server/authserver/authserver.conf.dist
index dda19c3b849..3c811eda3b3 100644
--- a/src/server/authserver/authserver.conf.dist
+++ b/src/server/authserver/authserver.conf.dist
@@ -71,7 +71,9 @@ PidFile = ""
#
# UseProcessors
-# Description: Processors mask for Windows based multi-processor systems.
+# Description: Processors mask for Windows and Linux based multi-processor systems.
+# Example: A computer with 2 CPUs:
+# 1 - 1st CPU only, 2 - 2nd CPU only, 3 - 1st and 2nd CPU, because 1 | 2 is 3
# Default: 0 - (Selected by OS)
# 1+ - (Bit mask value of selected processors)
@@ -79,11 +81,12 @@ UseProcessors = 0
#
# ProcessPriority
-# Description: Process priority setting for Windows based systems.
-# Default: 1 - (High)
-# 0 - (Normal)
+# Description: Process priority setting for Windows and Linux based systems.
+# Details: On Linux, a nice value of -15 is used. (requires superuser). On Windows, process is set to HIGH class.
+# Default: 0 - (Normal)
+# 1 - (High)
-ProcessPriority = 1
+ProcessPriority = 0
#
# RealmsStateUpdateDelay
diff --git a/src/server/collision/BoundingIntervalHierarchy.cpp b/src/server/collision/BoundingIntervalHierarchy.cpp
index 340d66ddaf0..c5ae1f2a265 100644
--- a/src/server/collision/BoundingIntervalHierarchy.cpp
+++ b/src/server/collision/BoundingIntervalHierarchy.cpp
@@ -272,7 +272,7 @@ bool BIH::readFromFile(FILE* rf)
check += fread(&count, sizeof(uint32), 1, rf);
objects.resize(count); // = new uint32[nObjects];
check += fread(&objects[0], sizeof(uint32), count, rf);
- return check == (3 + 3 + 2 + treeSize + count);
+ return uint64(check) == uint64(3 + 3 + 1 + 1 + uint64(treeSize) + uint64(count));
}
void BIH::BuildStats::updateLeaf(int depth, int n)
diff --git a/src/server/collision/Management/MMapFactory.cpp b/src/server/collision/Management/MMapFactory.cpp
index 7adf7fbfa66..6aa71d77ed8 100644
--- a/src/server/collision/Management/MMapFactory.cpp
+++ b/src/server/collision/Management/MMapFactory.cpp
@@ -25,7 +25,7 @@ namespace MMAP
{
// ######################## MMapFactory ########################
// our global singleton copy
- MMapManager *g_MMapManager = NULL;
+ MMapManager* g_MMapManager = NULL;
MMapManager* MMapFactory::createOrGetMMapManager()
{
diff --git a/src/server/collision/Management/MMapManager.cpp b/src/server/collision/Management/MMapManager.cpp
index 70ae878aa6b..65c13c07e66 100644
--- a/src/server/collision/Management/MMapManager.cpp
+++ b/src/server/collision/Management/MMapManager.cpp
@@ -63,7 +63,7 @@ namespace MMAP
dtNavMesh* mesh = dtAllocNavMesh();
ASSERT(mesh);
- if (DT_SUCCESS != mesh->init(&params))
+ if (dtStatusFailed(mesh->init(&params)))
{
dtFreeNavMesh(mesh);
TC_LOG_ERROR(LOG_FILTER_MAPS, "MMAP:loadMapData: Failed to initialize dtNavMesh for mmap %03u from file %s", mapId, fileName);
@@ -109,7 +109,7 @@ namespace MMAP
snprintf(fileName, pathLen, (sWorld->GetDataPath()+"mmaps/%03i%02i%02i.mmtile").c_str(), mapId, x, y);
- FILE *file = fopen(fileName, "rb");
+ FILE* file = fopen(fileName, "rb");
if (!file)
{
TC_LOG_DEBUG(LOG_FILTER_MAPS, "MMAP:loadMap: Could not open mmtile file '%s'", fileName);
@@ -123,6 +123,7 @@ namespace MMAP
if (fread(&fileHeader, sizeof(MmapTileHeader), 1, file) != 1 || fileHeader.mmapMagic != MMAP_MAGIC)
{
TC_LOG_ERROR(LOG_FILTER_MAPS, "MMAP:loadMap: Bad header in mmap %03u%02i%02i.mmtile", mapId, x, y);
+ fclose(file);
return false;
}
@@ -130,6 +131,7 @@ namespace MMAP
{
TC_LOG_ERROR(LOG_FILTER_MAPS, "MMAP:loadMap: %03u%02i%02i.mmtile was built with generator v%i, expected v%i",
mapId, x, y, fileHeader.mmapVersion, MMAP_VERSION);
+ fclose(file);
return false;
}
@@ -150,11 +152,11 @@ namespace MMAP
dtTileRef tileRef = 0;
// memory allocated for data is now managed by detour, and will be deallocated when the tile is removed
- if (DT_SUCCESS == mmap->navMesh->addTile(data, fileHeader.size, DT_TILE_FREE_DATA, 0, &tileRef))
+ if (dtStatusSucceed(mmap->navMesh->addTile(data, fileHeader.size, DT_TILE_FREE_DATA, 0, &tileRef)))
{
mmap->mmapLoadedTiles.insert(std::pair<uint32, dtTileRef>(packedGridPos, tileRef));
++loadedTiles;
- TC_LOG_INFO(LOG_FILTER_MAPS, "MMAP:loadMap: Loaded mmtile %03i[%02i,%02i] into %03i[%02i,%02i]", mapId, x, y, mapId, header->x, header->y);
+ TC_LOG_INFO(LOG_FILTER_MAPS, "MMAP:loadMap: Loaded mmtile %03i[%02i, %02i] into %03i[%02i, %02i]", mapId, x, y, mapId, header->x, header->y);
return true;
}
else
@@ -191,7 +193,7 @@ namespace MMAP
dtTileRef tileRef = mmap->mmapLoadedTiles[packedGridPos];
// unload, and mark as non loaded
- if (DT_SUCCESS != mmap->navMesh->removeTile(tileRef, NULL, NULL))
+ if (dtStatusFailed(mmap->navMesh->removeTile(tileRef, NULL, NULL)))
{
// this is technically a memory leak
// if the grid is later reloaded, dtNavMesh::addTile will return error but no extra memory is used
@@ -203,7 +205,7 @@ namespace MMAP
{
mmap->mmapLoadedTiles.erase(packedGridPos);
--loadedTiles;
- TC_LOG_INFO(LOG_FILTER_MAPS, "MMAP:unloadMap: Unloaded mmtile %03i[%02i,%02i] from %03i", mapId, x, y, mapId);
+ TC_LOG_INFO(LOG_FILTER_MAPS, "MMAP:unloadMap: Unloaded mmtile %03i[%02i, %02i] from %03i", mapId, x, y, mapId);
return true;
}
@@ -225,12 +227,12 @@ namespace MMAP
{
uint32 x = (i->first >> 16);
uint32 y = (i->first & 0x0000FFFF);
- if (DT_SUCCESS != mmap->navMesh->removeTile(i->second, NULL, NULL))
+ if (dtStatusFailed(mmap->navMesh->removeTile(i->second, NULL, NULL)))
TC_LOG_ERROR(LOG_FILTER_MAPS, "MMAP:unloadMap: Could not unload %03u%02i%02i.mmtile from navmesh", mapId, x, y);
else
{
--loadedTiles;
- TC_LOG_INFO(LOG_FILTER_MAPS, "MMAP:unloadMap: Unloaded mmtile %03i[%02i,%02i] from %03i", mapId, x, y, mapId);
+ TC_LOG_INFO(LOG_FILTER_MAPS, "MMAP:unloadMap: Unloaded mmtile %03i[%02i, %02i] from %03i", mapId, x, y, mapId);
}
}
@@ -286,7 +288,7 @@ namespace MMAP
// allocate mesh query
dtNavMeshQuery* query = dtAllocNavMeshQuery();
ASSERT(query);
- if (DT_SUCCESS != query->init(mmap->navMesh, 1024))
+ if (dtStatusFailed(query->init(mmap->navMesh, 1024)))
{
dtFreeNavMeshQuery(query);
TC_LOG_ERROR(LOG_FILTER_MAPS, "MMAP:GetNavMeshQuery: Failed to initialize dtNavMeshQuery for mapId %03u instanceId %u", mapId, instanceId);
diff --git a/src/server/collision/Management/VMapManager2.cpp b/src/server/collision/Management/VMapManager2.cpp
index 8a1bd346957..6355dbcf4ce 100644
--- a/src/server/collision/Management/VMapManager2.cpp
+++ b/src/server/collision/Management/VMapManager2.cpp
@@ -96,7 +96,10 @@ namespace VMAP
std::string mapFileName = getMapFileName(mapId);
StaticMapTree* newTree = new StaticMapTree(mapId, basePath);
if (!newTree->InitMap(mapFileName, this))
+ {
+ delete newTree;
return false;
+ }
instanceTree = iInstanceMapTrees.insert(InstanceTreeMap::value_type(mapId, newTree)).first;
}
diff --git a/src/server/collision/Maps/MapTree.cpp b/src/server/collision/Maps/MapTree.cpp
index 7dbfcd78bc9..dc12bb68e0d 100644
--- a/src/server/collision/Maps/MapTree.cpp
+++ b/src/server/collision/Maps/MapTree.cpp
@@ -119,8 +119,9 @@ namespace VMAP
return intersectionCallBack.result;
}
- StaticMapTree::StaticMapTree(uint32 mapID, const std::string &basePath)
- : iMapID(mapID), iIsTiled(false), iTreeValues(0), iBasePath(basePath)
+ StaticMapTree::StaticMapTree(uint32 mapID, const std::string &basePath) :
+ iMapID(mapID), iIsTiled(false), iTreeValues(NULL),
+ iNTreeValues(0), iBasePath(basePath)
{
if (iBasePath.length() > 0 && iBasePath[iBasePath.length()-1] != '/' && iBasePath[iBasePath.length()-1] != '\\')
{
@@ -273,54 +274,49 @@ namespace VMAP
bool StaticMapTree::InitMap(const std::string &fname, VMapManager2* vm)
{
VMAP_DEBUG_LOG(LOG_FILTER_MAPS, "StaticMapTree::InitMap() : initializing StaticMapTree '%s'", fname.c_str());
- bool success = true;
+ bool success = false;
std::string fullname = iBasePath + fname;
FILE* rf = fopen(fullname.c_str(), "rb");
if (!rf)
return false;
- else
+
+ char chunk[8];
+ char tiled = '\0';
+
+ if (readChunk(rf, chunk, VMAP_MAGIC, 8) && fread(&tiled, sizeof(char), 1, rf) == 1 &&
+ readChunk(rf, chunk, "NODE", 4) && iTree.readFromFile(rf))
{
- char chunk[8];
- //general info
- if (!readChunk(rf, chunk, VMAP_MAGIC, 8)) success = false;
- char tiled = '\0';
- if (success && fread(&tiled, sizeof(char), 1, rf) != 1) success = false;
- iIsTiled = bool(tiled);
- // Nodes
- if (success && !readChunk(rf, chunk, "NODE", 4)) success = false;
- if (success) success = iTree.readFromFile(rf);
- if (success)
- {
- iNTreeValues = iTree.primCount();
- iTreeValues = new ModelInstance[iNTreeValues];
- }
+ iNTreeValues = iTree.primCount();
+ iTreeValues = new ModelInstance[iNTreeValues];
+ success = readChunk(rf, chunk, "GOBJ", 4);
+ }
+
+ iIsTiled = bool(tiled);
- if (success && !readChunk(rf, chunk, "GOBJ", 4)) success = false;
- // global model spawns
- // only non-tiled maps have them, and if so exactly one (so far at least...)
- ModelSpawn spawn;
+ // global model spawns
+ // only non-tiled maps have them, and if so exactly one (so far at least...)
+ ModelSpawn spawn;
#ifdef VMAP_DEBUG
- TC_LOG_DEBUG(LOG_FILTER_MAPS, "StaticMapTree::InitMap() : map isTiled: %u", static_cast<uint32>(iIsTiled));
+ TC_LOG_DEBUG(LOG_FILTER_MAPS, "StaticMapTree::InitMap() : map isTiled: %u", static_cast<uint32>(iIsTiled));
#endif
- if (!iIsTiled && ModelSpawn::readFromFile(rf, spawn))
+ if (!iIsTiled && ModelSpawn::readFromFile(rf, spawn))
+ {
+ WorldModel* model = vm->acquireModelInstance(iBasePath, spawn.name);
+ VMAP_DEBUG_LOG(LOG_FILTER_MAPS, "StaticMapTree::InitMap() : loading %s", spawn.name.c_str());
+ if (model)
{
- WorldModel* model = vm->acquireModelInstance(iBasePath, spawn.name);
- VMAP_DEBUG_LOG(LOG_FILTER_MAPS, "StaticMapTree::InitMap() : loading %s", spawn.name.c_str());
- if (model)
- {
- // assume that global model always is the first and only tree value (could be improved...)
- iTreeValues[0] = ModelInstance(spawn, model);
- iLoadedSpawns[0] = 1;
- }
- else
- {
- success = false;
- VMAP_ERROR_LOG(LOG_FILTER_GENERAL, "StaticMapTree::InitMap() : could not acquire WorldModel pointer for '%s'", spawn.name.c_str());
- }
+ // assume that global model always is the first and only tree value (could be improved...)
+ iTreeValues[0] = ModelInstance(spawn, model);
+ iLoadedSpawns[0] = 1;
+ }
+ else
+ {
+ success = false;
+ VMAP_ERROR_LOG(LOG_FILTER_GENERAL, "StaticMapTree::InitMap() : could not acquire WorldModel pointer for '%s'", spawn.name.c_str());
}
-
- fclose(rf);
}
+
+ fclose(rf);
return success;
}
diff --git a/src/server/collision/Maps/MapTree.h b/src/server/collision/Maps/MapTree.h
index e97c44d089e..c66893da82f 100644
--- a/src/server/collision/Maps/MapTree.h
+++ b/src/server/collision/Maps/MapTree.h
@@ -85,7 +85,8 @@ namespace VMAP
struct AreaInfo
{
- AreaInfo(): result(false), ground_Z(-G3D::inf()) {}
+ AreaInfo(): result(false), ground_Z(-G3D::inf()), flags(0), adtId(0),
+ rootId(0), groupId(0) {}
bool result;
float ground_Z;
uint32 flags;
diff --git a/src/server/collision/Maps/TileAssembler.cpp b/src/server/collision/Maps/TileAssembler.cpp
index ba1ae275c9a..4b61e5da40b 100644
--- a/src/server/collision/Maps/TileAssembler.cpp
+++ b/src/server/collision/Maps/TileAssembler.cpp
@@ -152,23 +152,25 @@ namespace VMAP
uint32 x, y;
StaticMapTree::unpackTileID(tile->first, x, y);
tilefilename << std::setw(2) << x << '_' << std::setw(2) << y << ".vmtile";
- FILE* tilefile = fopen(tilefilename.str().c_str(), "wb");
- // file header
- if (success && fwrite(VMAP_MAGIC, 1, 8, tilefile) != 8) success = false;
- // write number of tile spawns
- if (success && fwrite(&nSpawns, sizeof(uint32), 1, tilefile) != 1) success = false;
- // write tile spawns
- for (uint32 s=0; s<nSpawns; ++s)
+ if (FILE* tilefile = fopen(tilefilename.str().c_str(), "wb"))
{
- if (s)
- ++tile;
- const ModelSpawn &spawn2 = map_iter->second->UniqueEntries[tile->second];
- success = success && ModelSpawn::writeToFile(tilefile, spawn2);
- // MapTree nodes to update when loading tile:
- std::map<uint32, uint32>::iterator nIdx = modelNodeIdx.find(spawn2.ID);
- if (success && fwrite(&nIdx->second, sizeof(uint32), 1, tilefile) != 1) success = false;
+ // file header
+ if (success && fwrite(VMAP_MAGIC, 1, 8, tilefile) != 8) success = false;
+ // write number of tile spawns
+ if (success && fwrite(&nSpawns, sizeof(uint32), 1, tilefile) != 1) success = false;
+ // write tile spawns
+ for (uint32 s=0; s<nSpawns; ++s)
+ {
+ if (s)
+ ++tile;
+ const ModelSpawn &spawn2 = map_iter->second->UniqueEntries[tile->second];
+ success = success && ModelSpawn::writeToFile(tilefile, spawn2);
+ // MapTree nodes to update when loading tile:
+ std::map<uint32, uint32>::iterator nIdx = modelNodeIdx.find(spawn2.ID);
+ if (success && fwrite(&nIdx->second, sizeof(uint32), 1, tilefile) != 1) success = false;
+ }
+ fclose(tilefile);
}
- fclose(tilefile);
}
// break; //test, extract only first map; TODO: remvoe this line
}
@@ -516,7 +518,8 @@ namespace VMAP
for (uint32 g = 0; g < groups && succeed; ++g)
succeed = groupsArray[g].Read(rf);
- fclose(rf);
+ if (succeed) /// rf will be freed inside Read if the function had any errors.
+ fclose(rf);
return succeed;
}
diff --git a/src/server/collision/Maps/TileAssembler.h b/src/server/collision/Maps/TileAssembler.h
index a11ce272d62..56cb7600e4f 100644
--- a/src/server/collision/Maps/TileAssembler.h
+++ b/src/server/collision/Maps/TileAssembler.h
@@ -40,6 +40,7 @@ namespace VMAP
private:
G3D::Matrix3 iRotation;
public:
+ ModelPosition(): iScale(0.0f) { }
G3D::Vector3 iPos;
G3D::Vector3 iDir;
float iScale;
@@ -74,7 +75,8 @@ namespace VMAP
std::vector<G3D::Vector3> vertexArray;
class WmoLiquid* liquid;
- GroupModel_Raw() : liquid(0) {}
+ GroupModel_Raw() : mogpflags(0), GroupWMOID(0), liquidflags(0),
+ liquid(NULL) {}
~GroupModel_Raw();
bool Read(FILE* f);
diff --git a/src/server/collision/Models/GameObjectModel.cpp b/src/server/collision/Models/GameObjectModel.cpp
index e166a860cd2..9db3d706fca 100644
--- a/src/server/collision/Models/GameObjectModel.cpp
+++ b/src/server/collision/Models/GameObjectModel.cpp
@@ -139,7 +139,7 @@ bool GameObjectModel::initialize(const GameObject& go, const GameObjectDisplayIn
if (Creature* c = const_cast<GameObject&>(go).SummonCreature(24440, pos.x, pos.y, pos.z, 0, TEMPSUMMON_MANUAL_DESPAWN))
{
c->setFaction(35);
- c->SetFloatValue(OBJECT_FIELD_SCALE_X, 0.1f);
+ c->SetObjectScale(0.1f);
}
}
#endif
diff --git a/src/server/collision/Models/WorldModel.cpp b/src/server/collision/Models/WorldModel.cpp
index ca0f95c74e3..3c72cb80308 100644
--- a/src/server/collision/Models/WorldModel.cpp
+++ b/src/server/collision/Models/WorldModel.cpp
@@ -205,35 +205,48 @@ namespace VMAP
bool WmoLiquid::writeToFile(FILE* wf)
{
- bool result = true;
- if (result && fwrite(&iTilesX, sizeof(uint32), 1, wf) != 1) result = false;
- if (result && fwrite(&iTilesY, sizeof(uint32), 1, wf) != 1) result = false;
- if (result && fwrite(&iCorner, sizeof(Vector3), 1, wf) != 1) result = false;
- if (result && fwrite(&iType, sizeof(uint32), 1, wf) != 1) result = false;
- uint32 size = (iTilesX + 1)*(iTilesY + 1);
- if (result && fwrite(iHeight, sizeof(float), size, wf) != size) result = false;
- size = iTilesX*iTilesY;
- if (result && fwrite(iFlags, sizeof(uint8), size, wf) != size) result = false;
+ bool result = false;
+ if (fwrite(&iTilesX, sizeof(uint32), 1, wf) == 1 &&
+ fwrite(&iTilesY, sizeof(uint32), 1, wf) == 1 &&
+ fwrite(&iCorner, sizeof(Vector3), 1, wf) == 1 &&
+ fwrite(&iType, sizeof(uint32), 1, wf) == 1)
+ {
+ uint32 size = (iTilesX + 1) * (iTilesY + 1);
+ if (fwrite(iHeight, sizeof(float), size, wf) == size)
+ {
+ size = iTilesX*iTilesY;
+ result = fwrite(iFlags, sizeof(uint8), size, wf) == size;
+ }
+ }
+
return result;
}
bool WmoLiquid::readFromFile(FILE* rf, WmoLiquid* &out)
{
- bool result = true;
+ bool result = false;
WmoLiquid* liquid = new WmoLiquid();
- if (result && fread(&liquid->iTilesX, sizeof(uint32), 1, rf) != 1) result = false;
- if (result && fread(&liquid->iTilesY, sizeof(uint32), 1, rf) != 1) result = false;
- if (result && fread(&liquid->iCorner, sizeof(Vector3), 1, rf) != 1) result = false;
- if (result && fread(&liquid->iType, sizeof(uint32), 1, rf) != 1) result = false;
- uint32 size = (liquid->iTilesX + 1)*(liquid->iTilesY + 1);
- liquid->iHeight = new float[size];
- if (result && fread(liquid->iHeight, sizeof(float), size, rf) != size) result = false;
- size = liquid->iTilesX * liquid->iTilesY;
- liquid->iFlags = new uint8[size];
- if (result && fread(liquid->iFlags, sizeof(uint8), size, rf) != size) result = false;
+
+ if (fread(&liquid->iTilesX, sizeof(uint32), 1, rf) == 1 &&
+ fread(&liquid->iTilesY, sizeof(uint32), 1, rf) == 1 &&
+ fread(&liquid->iCorner, sizeof(Vector3), 1, rf) == 1 &&
+ fread(&liquid->iType, sizeof(uint32), 1, rf) == 1)
+ {
+ uint32 size = (liquid->iTilesX + 1) * (liquid->iTilesY + 1);
+ liquid->iHeight = new float[size];
+ if (fread(liquid->iHeight, sizeof(float), size, rf) == size)
+ {
+ size = liquid->iTilesX * liquid->iTilesY;
+ liquid->iFlags = new uint8[size];
+ result = fread(liquid->iFlags, sizeof(uint8), size, rf) == size;
+ }
+ }
+
if (!result)
delete liquid;
- out = liquid;
+ else
+ out = liquid;
+
return result;
}
diff --git a/src/server/game/AI/CoreAI/CombatAI.cpp b/src/server/game/AI/CoreAI/CombatAI.cpp
index f835533d322..85088bbeff4 100644
--- a/src/server/game/AI/CoreAI/CombatAI.cpp
+++ b/src/server/game/AI/CoreAI/CombatAI.cpp
@@ -26,7 +26,7 @@
int AggressorAI::Permissible(const Creature* creature)
{
// have some hostile factions, it will be selected by IsHostileTo check at MoveInLineOfSight
- if (!creature->isCivilian() && !creature->IsNeutralToAll())
+ if (!creature->IsCivilian() && !creature->IsNeutralToAll())
return PERMIT_BASE_PROACTIVE;
return PERMIT_BASE_NO;
@@ -164,7 +164,7 @@ void CasterAI::UpdateAI(uint32 diff)
events.Update(diff);
- if (me->getVictim()->HasBreakableByDamageCrowdControlAura(me))
+ if (me->GetVictim()->HasBreakableByDamageCrowdControlAura(me))
{
me->InterruptNonMeleeSpells(false);
return;
@@ -224,7 +224,7 @@ void ArcherAI::UpdateAI(uint32 /*diff*/)
if (!UpdateVictim())
return;
- if (!me->IsWithinCombatRange(me->getVictim(), m_minRange))
+ if (!me->IsWithinCombatRange(me->GetVictim(), m_minRange))
DoSpellAttackIfReady(me->m_spells[0]);
else
DoMeleeAttackIfReady();
@@ -248,8 +248,8 @@ TurretAI::TurretAI(Creature* c) : CreatureAI(c)
bool TurretAI::CanAIAttack(const Unit* /*who*/) const
{
/// @todo use one function to replace it
- if (!me->IsWithinCombatRange(me->getVictim(), me->m_CombatDistance)
- || (m_minRange && me->IsWithinCombatRange(me->getVictim(), m_minRange)))
+ if (!me->IsWithinCombatRange(me->GetVictim(), me->m_CombatDistance)
+ || (m_minRange && me->IsWithinCombatRange(me->GetVictim(), m_minRange)))
return false;
return true;
}
@@ -328,7 +328,7 @@ void VehicleAI::CheckConditions(const uint32 diff)
if (!conditions.empty())
{
for (SeatMap::iterator itr = m_vehicle->Seats.begin(); itr != m_vehicle->Seats.end(); ++itr)
- if (Unit* passenger = ObjectAccessor::GetUnit(*m_vehicle->GetBase(), itr->second.Passenger))
+ if (Unit* passenger = ObjectAccessor::GetUnit(*m_vehicle->GetBase(), itr->second.Passenger.Guid))
{
if (Player* player = passenger->ToPlayer())
{
diff --git a/src/server/game/AI/CoreAI/GuardAI.cpp b/src/server/game/AI/CoreAI/GuardAI.cpp
index 1da190a86a8..220d53a20e0 100644
--- a/src/server/game/AI/CoreAI/GuardAI.cpp
+++ b/src/server/game/AI/CoreAI/GuardAI.cpp
@@ -25,7 +25,7 @@
int GuardAI::Permissible(Creature const* creature)
{
- if (creature->isGuard())
+ if (creature->IsGuard())
return PERMIT_BASE_SPECIAL;
return PERMIT_BASE_NO;
@@ -50,7 +50,7 @@ bool GuardAI::CanSeeAlways(WorldObject const* obj)
void GuardAI::EnterEvadeMode()
{
- if (!me->isAlive())
+ if (!me->IsAlive())
{
me->GetMotionMaster()->MoveIdle();
me->CombatStop(true);
diff --git a/src/server/game/AI/CoreAI/PassiveAI.cpp b/src/server/game/AI/CoreAI/PassiveAI.cpp
index 187a72bae92..e3f852d08eb 100644
--- a/src/server/game/AI/CoreAI/PassiveAI.cpp
+++ b/src/server/game/AI/CoreAI/PassiveAI.cpp
@@ -26,7 +26,7 @@ NullCreatureAI::NullCreatureAI(Creature* c) : CreatureAI(c) { me->SetReactState(
void PassiveAI::UpdateAI(uint32)
{
- if (me->isInCombat() && me->getAttackers().empty())
+ if (me->IsInCombat() && me->getAttackers().empty())
EnterEvadeMode();
}
@@ -37,9 +37,9 @@ void PossessedAI::AttackStart(Unit* target)
void PossessedAI::UpdateAI(uint32 /*diff*/)
{
- if (me->getVictim())
+ if (me->GetVictim())
{
- if (!me->IsValidAttackTarget(me->getVictim()))
+ if (!me->IsValidAttackTarget(me->GetVictim()))
me->AttackStop();
else
DoMeleeAttackIfReady();
diff --git a/src/server/game/AI/CoreAI/PetAI.cpp b/src/server/game/AI/CoreAI/PetAI.cpp
index be215d956b2..4d657ec2b2b 100644
--- a/src/server/game/AI/CoreAI/PetAI.cpp
+++ b/src/server/game/AI/CoreAI/PetAI.cpp
@@ -32,7 +32,7 @@
int PetAI::Permissible(const Creature* creature)
{
- if (creature->isPet())
+ if (creature->IsPet())
return PERMIT_BASE_SPECIAL;
return PERMIT_BASE_NO;
@@ -46,15 +46,15 @@ PetAI::PetAI(Creature* c) : CreatureAI(c), i_tracker(TIME_INTERVAL_LOOK)
bool PetAI::_needToStop()
{
// This is needed for charmed creatures, as once their target was reset other effects can trigger threat
- if (me->isCharmed() && me->getVictim() == me->GetCharmer())
+ if (me->IsCharmed() && me->GetVictim() == me->GetCharmer())
return true;
- return !me->IsValidAttackTarget(me->getVictim());
+ return !me->IsValidAttackTarget(me->GetVictim());
}
void PetAI::_stopAttack()
{
- if (!me->isAlive())
+ if (!me->IsAlive())
{
TC_LOG_DEBUG(LOG_FILTER_GENERAL, "Creature stoped attacking cuz his dead [guid=%u]", me->GetGUIDLow());
me->GetMotionMaster()->Clear();
@@ -75,7 +75,7 @@ void PetAI::_stopAttack()
void PetAI::UpdateAI(uint32 diff)
{
- if (!me->isAlive() || !me->GetCharmInfo())
+ if (!me->IsAlive() || !me->GetCharmInfo())
return;
Unit* owner = me->GetCharmerOrOwner();
@@ -86,10 +86,10 @@ void PetAI::UpdateAI(uint32 diff)
else
m_updateAlliesTimer -= diff;
- if (me->getVictim() && me->getVictim()->isAlive())
+ if (me->GetVictim() && me->GetVictim()->IsAlive())
{
// is only necessary to stop casting, the pet must not exit combat
- if (me->getVictim()->HasBreakableByDamageCrowdControlAura(me))
+ if (me->GetVictim()->HasBreakableByDamageCrowdControlAura(me))
{
me->InterruptNonMeleeSpells(false);
return;
@@ -105,7 +105,7 @@ void PetAI::UpdateAI(uint32 diff)
// Check before attacking to prevent pets from leaving stay position
if (me->GetCharmInfo()->HasCommandState(COMMAND_STAY))
{
- if (me->GetCharmInfo()->IsCommandAttack() || (me->GetCharmInfo()->IsAtStay() && me->IsWithinMeleeRange(me->getVictim())))
+ if (me->GetCharmInfo()->IsCommandAttack() || (me->GetCharmInfo()->IsAtStay() && me->IsWithinMeleeRange(me->GetVictim())))
DoMeleeAttackIfReady();
}
else
@@ -159,7 +159,7 @@ void PetAI::UpdateAI(uint32 diff)
continue;
// Check if we're in combat or commanded to attack
- if (!me->isInCombat() && !me->GetCharmInfo()->IsCommandAttack())
+ if (!me->IsInCombat() && !me->GetCharmInfo()->IsCommandAttack())
continue;
}
@@ -208,11 +208,11 @@ void PetAI::UpdateAI(uint32 diff)
if (!spellUsed)
delete spell;
}
- else if (me->getVictim() && CanAttack(me->getVictim()) && spellInfo->CanBeUsedInCombat())
+ else if (me->GetVictim() && CanAttack(me->GetVictim()) && spellInfo->CanBeUsedInCombat())
{
Spell* spell = new Spell(me, spellInfo, TRIGGERED_NONE, 0);
- if (spell->CanAutoCast(me->getVictim()))
- targetSpellStore.push_back(std::make_pair(me->getVictim(), spell));
+ if (spell->CanAutoCast(me->GetVictim()))
+ targetSpellStore.push_back(std::make_pair(me->GetVictim(), spell));
else
delete spell;
}
@@ -260,15 +260,15 @@ void PetAI::UpdateAI(uint32 diff)
void PetAI::UpdateAllies()
{
- Unit* owner = me->GetCharmerOrOwner();
- Group* group = NULL;
-
- m_updateAlliesTimer = 10*IN_MILLISECONDS; //update friendly targets every 10 seconds, lesser checks increase performance
+ m_updateAlliesTimer = 10 * IN_MILLISECONDS; // update friendly targets every 10 seconds, lesser checks increase performance
+ Unit* owner = me->GetCharmerOrOwner();
if (!owner)
return;
- else if (owner->GetTypeId() == TYPEID_PLAYER)
- group = owner->ToPlayer()->GetGroup();
+
+ Group* group = NULL;
+ if (Player* player = owner->ToPlayer())
+ group = player->GetGroup();
//only pet and owner/not in group->ok
if (m_AllySet.size() == 2 && !group)
@@ -284,8 +284,8 @@ void PetAI::UpdateAllies()
{
for (GroupReference* itr = group->GetFirstMember(); itr != NULL; itr = itr->next())
{
- Player* Target = itr->getSource();
- if (!Target || !group->SameSubGroup((Player*)owner, Target))
+ Player* Target = itr->GetSource();
+ if (!Target || !group->SameSubGroup(owner->ToPlayer(), Target))
continue;
if (Target->GetGUID() == owner->GetGUID())
@@ -302,7 +302,7 @@ void PetAI::KilledUnit(Unit* victim)
{
// Called from Unit::Kill() in case where pet or owner kills something
// if owner killed this victim, pet may still be attacking something else
- if (me->getVictim() && me->getVictim() != victim)
+ if (me->GetVictim() && me->GetVictim() != victim)
return;
// Clear target just in case. May help problem where health / focus / mana
@@ -345,7 +345,7 @@ void PetAI::OwnerAttackedBy(Unit* attacker)
return;
// Prevent pet from disengaging from current target
- if (me->getVictim() && me->getVictim()->isAlive())
+ if (me->GetVictim() && me->GetVictim()->IsAlive())
return;
// Continue to evaluate and attack if necessary
@@ -366,7 +366,7 @@ void PetAI::OwnerAttacked(Unit* target)
return;
// Prevent pet from disengaging from current target
- if (me->getVictim() && me->getVictim()->isAlive())
+ if (me->GetVictim() && me->GetVictim()->IsAlive())
return;
// Continue to evaluate and attack if necessary
@@ -400,7 +400,7 @@ Unit* PetAI::SelectNextTarget(bool allowAutoSelect) const
// Check owner victim
// 3.0.2 - Pets now start attacking their owners victim in defensive mode as soon as the hunter does
- if (Unit* ownerVictim = me->GetCharmerOrOwner()->getVictim())
+ if (Unit* ownerVictim = me->GetCharmerOrOwner()->GetVictim())
return ownerVictim;
// Neither pet or owner had a target and aggressive pets can pick any target
@@ -423,7 +423,7 @@ void PetAI::HandleReturnMovement()
// Prevent activating movement when under control of spells
// such as "Eyes of the Beast"
- if (me->isCharmed())
+ if (me->IsCharmed())
return;
if (me->GetCharmInfo()->HasCommandState(COMMAND_STAY))
@@ -527,7 +527,7 @@ bool PetAI::CanAttack(Unit* target)
if (!target)
return false;
- if (!target->isAlive())
+ if (!target->IsAlive())
{
// Clear target to prevent getting stuck on dead targets
me->AttackStop();
@@ -553,14 +553,14 @@ bool PetAI::CanAttack(Unit* target)
return (me->IsWithinMeleeRange(target) || me->GetCharmInfo()->IsCommandAttack());
// Pets attacking something (or chasing) should only switch targets if owner tells them to
- if (me->getVictim() && me->getVictim() != target)
+ if (me->GetVictim() && me->GetVictim() != target)
{
// Check if our owner selected this target and clicked "attack"
Unit* ownerTarget = NULL;
if (Player* owner = me->GetCharmerOrOwner()->ToPlayer())
ownerTarget = owner->GetSelectedUnit();
else
- ownerTarget = me->GetCharmerOrOwner()->getVictim();
+ ownerTarget = me->GetCharmerOrOwner()->GetVictim();
if (ownerTarget && me->GetCharmInfo()->IsCommandAttack())
return (target->GetGUID() == ownerTarget->GetGUID());
@@ -580,19 +580,19 @@ void PetAI::ReceiveEmote(Player* player, uint32 emote)
switch (emote)
{
case TEXT_EMOTE_COWER:
- if (me->isPet() && me->ToPet()->IsPetGhoul())
+ if (me->IsPet() && me->ToPet()->IsPetGhoul())
me->HandleEmoteCommand(/*EMOTE_ONESHOT_ROAR*/EMOTE_ONESHOT_OMNICAST_GHOUL);
break;
case TEXT_EMOTE_ANGRY:
- if (me->isPet() && me->ToPet()->IsPetGhoul())
+ if (me->IsPet() && me->ToPet()->IsPetGhoul())
me->HandleEmoteCommand(/*EMOTE_ONESHOT_COWER*/EMOTE_STATE_STUN);
break;
case TEXT_EMOTE_GLARE:
- if (me->isPet() && me->ToPet()->IsPetGhoul())
+ if (me->IsPet() && me->ToPet()->IsPetGhoul())
me->HandleEmoteCommand(EMOTE_STATE_STUN);
break;
case TEXT_EMOTE_SOOTHE:
- if (me->isPet() && me->ToPet()->IsPetGhoul())
+ if (me->IsPet() && me->ToPet()->IsPetGhoul())
me->HandleEmoteCommand(EMOTE_ONESHOT_OMNICAST_GHOUL);
break;
}
@@ -627,7 +627,7 @@ void PetAI::AttackedBy(Unit* attacker)
return;
// Prevent pet from disengaging from current target
- if (me->getVictim() && me->getVictim()->isAlive())
+ if (me->GetVictim() && me->GetVictim()->IsAlive())
return;
// Continue to evaluate and attack if necessary
diff --git a/src/server/game/AI/CoreAI/ReactorAI.cpp b/src/server/game/AI/CoreAI/ReactorAI.cpp
index b99885088d4..d749ce91c05 100644
--- a/src/server/game/AI/CoreAI/ReactorAI.cpp
+++ b/src/server/game/AI/CoreAI/ReactorAI.cpp
@@ -25,7 +25,7 @@
int ReactorAI::Permissible(const Creature* creature)
{
- if (creature->isCivilian() || creature->IsNeutralToAll())
+ if (creature->IsCivilian() || creature->IsNeutralToAll())
return PERMIT_BASE_REACTIVE;
return PERMIT_BASE_NO;
diff --git a/src/server/game/AI/CoreAI/TotemAI.cpp b/src/server/game/AI/CoreAI/TotemAI.cpp
index 45865c5dbc2..bc865b8b6aa 100644
--- a/src/server/game/AI/CoreAI/TotemAI.cpp
+++ b/src/server/game/AI/CoreAI/TotemAI.cpp
@@ -29,7 +29,7 @@
int TotemAI::Permissible(Creature const* creature)
{
- if (creature->isTotem())
+ if (creature->IsTotem())
return PERMIT_BASE_PROACTIVE;
return PERMIT_BASE_NO;
@@ -37,7 +37,7 @@ int TotemAI::Permissible(Creature const* creature)
TotemAI::TotemAI(Creature* c) : CreatureAI(c), i_victimGuid(0)
{
- ASSERT(c->isTotem());
+ ASSERT(c->IsTotem());
}
void TotemAI::MoveInLineOfSight(Unit* /*who*/)
@@ -54,7 +54,7 @@ void TotemAI::UpdateAI(uint32 /*diff*/)
if (me->ToTotem()->GetTotemType() != TOTEM_ACTIVE)
return;
- if (!me->isAlive() || me->IsNonMeleeSpellCasted(false))
+ if (!me->IsAlive() || me->IsNonMeleeSpellCasted(false))
return;
// Search spell
@@ -73,7 +73,7 @@ void TotemAI::UpdateAI(uint32 /*diff*/)
// Search victim if no, not attackable, or out of range, or friendly (possible in case duel end)
if (!victim ||
!victim->isTargetableForAttack() || !me->IsWithinDistInMap(victim, max_range) ||
- me->IsFriendlyTo(victim) || !me->canSeeOrDetect(victim))
+ me->IsFriendlyTo(victim) || !me->CanSeeOrDetect(victim))
{
victim = NULL;
Trinity::NearestAttackableUnitInObjectRangeCheck u_check(me, me, max_range);
@@ -98,12 +98,14 @@ void TotemAI::UpdateAI(uint32 /*diff*/)
void TotemAI::AttackStart(Unit* /*victim*/)
{
// Sentry totem sends ping on attack
- if (me->GetEntry() == SENTRY_TOTEM_ENTRY && me->GetOwner()->GetTypeId() == TYPEID_PLAYER)
- {
- WorldPacket data(MSG_MINIMAP_PING, (8+4+4));
- data << me->GetGUID();
- data << me->GetPositionX();
- data << me->GetPositionY();
- ((Player*)me->GetOwner())->GetSession()->SendPacket(&data);
- }
+ if (me->GetEntry() == SENTRY_TOTEM_ENTRY)
+ if (Unit* owner = me->GetOwner())
+ if (Player* player = owner->ToPlayer())
+ {
+ WorldPacket data(MSG_MINIMAP_PING, (8+4+4));
+ data << me->GetGUID();
+ data << me->GetPositionX();
+ data << me->GetPositionY();
+ player->GetSession()->SendPacket(&data);
+ }
}
diff --git a/src/server/game/AI/CoreAI/UnitAI.cpp b/src/server/game/AI/CoreAI/UnitAI.cpp
index 0ab807466d5..9abdf9e8cfc 100644
--- a/src/server/game/AI/CoreAI/UnitAI.cpp
+++ b/src/server/game/AI/CoreAI/UnitAI.cpp
@@ -43,7 +43,7 @@ void UnitAI::DoMeleeAttackIfReady()
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
- Unit* victim = me->getVictim();
+ Unit* victim = me->GetVictim();
//Make sure our attack is ready and we aren't currently casting before checking distance
if (me->isAttackReady() && me->IsWithinMeleeRange(victim))
{
@@ -65,9 +65,9 @@ bool UnitAI::DoSpellAttackIfReady(uint32 spell)
if (SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spell))
{
- if (me->IsWithinCombatRange(me->getVictim(), spellInfo->GetMaxRange(false)))
+ if (me->IsWithinCombatRange(me->GetVictim(), spellInfo->GetMaxRange(false)))
{
- me->CastSpell(me->getVictim(), spell, false);
+ me->CastSpell(me->GetVictim(), spell, false);
me->resetAttackTimer();
return true;
}
@@ -94,7 +94,7 @@ float UnitAI::DoGetSpellMaxRange(uint32 spellId, bool positive)
void UnitAI::DoAddAuraToAllHostilePlayers(uint32 spellid)
{
- if (me->isInCombat())
+ if (me->IsInCombat())
{
ThreatContainer::StorageType threatlist = me->getThreatManager().getThreatList();
for (ThreatContainer::StorageType::const_iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr)
@@ -108,7 +108,7 @@ void UnitAI::DoAddAuraToAllHostilePlayers(uint32 spellid)
void UnitAI::DoCastToAllHostilePlayers(uint32 spellid, bool triggered)
{
- if (me->isInCombat())
+ if (me->IsInCombat())
{
ThreatContainer::StorageType threatlist = me->getThreatManager().getThreatList();
for (ThreatContainer::StorageType::const_iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr)
@@ -123,34 +123,45 @@ void UnitAI::DoCastToAllHostilePlayers(uint32 spellid, bool triggered)
void UnitAI::DoCast(uint32 spellId)
{
Unit* target = NULL;
- //TC_LOG_ERROR(LOG_FILTER_GENERAL, "aggre %u %u", spellId, (uint32)AISpellInfo[spellId].target);
+
switch (AISpellInfo[spellId].target)
{
default:
- case AITARGET_SELF: target = me; break;
- case AITARGET_VICTIM: target = me->getVictim(); break;
+ case AITARGET_SELF:
+ target = me;
+ break;
+ case AITARGET_VICTIM:
+ target = me->GetVictim();
+ break;
case AITARGET_ENEMY:
{
- const SpellInfo* spellInfo = sSpellMgr->GetSpellInfo(spellId);
- bool playerOnly = spellInfo->AttributesEx3 & SPELL_ATTR3_ONLY_TARGET_PLAYERS;
- //float range = GetSpellMaxRange(spellInfo, false);
- target = SelectTarget(SELECT_TARGET_RANDOM, 0, spellInfo->GetMaxRange(false), playerOnly);
+ if (SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spellId))
+ {
+ bool playerOnly = spellInfo->AttributesEx3 & SPELL_ATTR3_ONLY_TARGET_PLAYERS;
+ target = SelectTarget(SELECT_TARGET_RANDOM, 0, spellInfo->GetMaxRange(false), playerOnly);
+ }
break;
}
- case AITARGET_ALLY: target = me; break;
- case AITARGET_BUFF: target = me; break;
+ case AITARGET_ALLY:
+ target = me;
+ break;
+ case AITARGET_BUFF:
+ target = me;
+ break;
case AITARGET_DEBUFF:
{
- const SpellInfo* spellInfo = sSpellMgr->GetSpellInfo(spellId);
- bool playerOnly = spellInfo->AttributesEx3 & SPELL_ATTR3_ONLY_TARGET_PLAYERS;
- float range = spellInfo->GetMaxRange(false);
-
- DefaultTargetSelector targetSelector(me, range, playerOnly, -(int32)spellId);
- if (!(spellInfo->AuraInterruptFlags & AURA_INTERRUPT_FLAG_NOT_VICTIM)
- && targetSelector(me->getVictim()))
- target = me->getVictim();
- else
- target = SelectTarget(SELECT_TARGET_RANDOM, 0, targetSelector);
+ if (SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spellId))
+ {
+ bool playerOnly = spellInfo->AttributesEx3 & SPELL_ATTR3_ONLY_TARGET_PLAYERS;
+ float range = spellInfo->GetMaxRange(false);
+
+ DefaultTargetSelector targetSelector(me, range, playerOnly, -(int32)spellId);
+ if (!(spellInfo->AuraInterruptFlags & AURA_INTERRUPT_FLAG_NOT_VICTIM)
+ && targetSelector(me->GetVictim()))
+ target = me->GetVictim();
+ else
+ target = SelectTarget(SELECT_TARGET_RANDOM, 0, targetSelector);
+ }
break;
}
}
@@ -169,10 +180,10 @@ void UnitAI::DoCast(Unit* victim, uint32 spellId, bool triggered)
void UnitAI::DoCastVictim(uint32 spellId, bool triggered)
{
- if (!me->getVictim() || (me->HasUnitState(UNIT_STATE_CASTING) && !triggered))
+ if (!me->GetVictim() || (me->HasUnitState(UNIT_STATE_CASTING) && !triggered))
return;
- me->CastSpell(me->getVictim(), spellId, triggered);
+ me->CastSpell(me->GetVictim(), spellId, triggered);
}
void UnitAI::DoCastAOE(uint32 spellId, bool triggered)
@@ -258,10 +269,10 @@ void SimpleCharmedAI::UpdateAI(const uint32 /*diff*/)
}
}
- if (!charmer->isInCombat())
+ if (!charmer->IsInCombat())
me->GetMotionMaster()->MoveFollow(charmer, PET_FOLLOW_DIST, me->GetFollowAngle());
- Unit* target = me->getVictim();
+ Unit* target = me->GetVictim();
if (!target || !charmer->IsValidAttackTarget(target))
AttackStart(charmer->SelectNearestTargetInAttackDistance());
}
@@ -317,5 +328,5 @@ bool NonTankTargetSelector::operator()(Unit const* target) const
if (_playerOnly && target->GetTypeId() != TYPEID_PLAYER)
return false;
- return target != _source->getVictim();
+ return target != _source->GetVictim();
}
diff --git a/src/server/game/AI/CreatureAI.cpp b/src/server/game/AI/CreatureAI.cpp
index 808a1a55a6a..a494507919a 100644
--- a/src/server/game/AI/CreatureAI.cpp
+++ b/src/server/game/AI/CreatureAI.cpp
@@ -58,11 +58,11 @@ void CreatureAI::DoZoneInCombat(Creature* creature /*= NULL*/, float maxRangeToN
return;
}
- if (!creature->HasReactState(REACT_PASSIVE) && !creature->getVictim())
+ if (!creature->HasReactState(REACT_PASSIVE) && !creature->GetVictim())
{
if (Unit* nearTarget = creature->SelectNearestTarget(maxRangeToNearestTarget))
creature->AI()->AttackStart(nearTarget);
- else if (creature->isSummon())
+ else if (creature->IsSummon())
{
if (Unit* summoner = creature->ToTempSummon()->GetSummoner())
{
@@ -75,7 +75,7 @@ void CreatureAI::DoZoneInCombat(Creature* creature /*= NULL*/, float maxRangeToN
}
}
- if (!creature->HasReactState(REACT_PASSIVE) && !creature->getVictim())
+ if (!creature->HasReactState(REACT_PASSIVE) && !creature->GetVictim())
{
TC_LOG_ERROR(LOG_FILTER_GENERAL, "DoZoneInCombat called for creature that has empty threat list (creature entry = %u)", creature->GetEntry());
return;
@@ -88,12 +88,12 @@ void CreatureAI::DoZoneInCombat(Creature* creature /*= NULL*/, float maxRangeToN
for (Map::PlayerList::const_iterator itr = playerList.begin(); itr != playerList.end(); ++itr)
{
- if (Player* player = itr->getSource())
+ if (Player* player = itr->GetSource())
{
- if (player->isGameMaster())
+ if (player->IsGameMaster())
continue;
- if (player->isAlive())
+ if (player->IsAlive())
{
creature->SetInCombatWith(player);
player->SetInCombatWith(creature);
@@ -124,18 +124,18 @@ void CreatureAI::MoveInLineOfSight_Safe(Unit* who)
void CreatureAI::MoveInLineOfSight(Unit* who)
{
- if (me->getVictim())
+ if (me->GetVictim())
return;
if (me->GetCreatureType() == CREATURE_TYPE_NON_COMBAT_PET) // non-combat pets should just stand there and look good;)
return;
- if (me->canStartAttack(who, false))
+ if (me->CanStartAttack(who, false))
AttackStart(who);
- //else if (who->getVictim() && me->IsFriendlyTo(who)
+ //else if (who->GetVictim() && me->IsFriendlyTo(who)
// && me->IsWithinDistInMap(who, sWorld->getIntConfig(CONFIG_CREATURE_FAMILY_ASSISTANCE_RADIUS))
- // && me->canStartAttack(who->getVictim(), true)) /// @todo if we use true, it will not attack it when it arrives
- // me->GetMotionMaster()->MoveChase(who->getVictim());
+ // && me->CanStartAttack(who->GetVictim(), true)) /// @todo if we use true, it will not attack it when it arrives
+ // me->GetMotionMaster()->MoveChase(who->GetVictim());
}
void CreatureAI::EnterEvadeMode()
@@ -165,13 +165,11 @@ void CreatureAI::EnterEvadeMode()
if (me->IsVehicle()) // use the same sequence of addtoworld, aireset may remove all summons!
me->GetVehicleKit()->Reset(true);
-
- me->SetLastDamagedTime(0);
}
/*void CreatureAI::AttackedBy(Unit* attacker)
{
- if (!me->getVictim())
+ if (!me->GetVictim())
AttackStart(attacker);
}*/
@@ -186,12 +184,12 @@ void CreatureAI::SetGazeOn(Unit* target)
bool CreatureAI::UpdateVictimWithGaze()
{
- if (!me->isInCombat())
+ if (!me->IsInCombat())
return false;
if (me->HasReactState(REACT_PASSIVE))
{
- if (me->getVictim())
+ if (me->GetVictim())
return true;
else
me->SetReactState(REACT_AGGRESSIVE);
@@ -199,19 +197,19 @@ bool CreatureAI::UpdateVictimWithGaze()
if (Unit* victim = me->SelectVictim())
AttackStart(victim);
- return me->getVictim();
+ return me->GetVictim();
}
bool CreatureAI::UpdateVictim()
{
- if (!me->isInCombat())
+ if (!me->IsInCombat())
return false;
if (!me->HasReactState(REACT_PASSIVE))
{
if (Unit* victim = me->SelectVictim())
AttackStart(victim);
- return me->getVictim();
+ return me->GetVictim();
}
else if (me->getThreatManager().isThreatListEmpty())
{
@@ -224,7 +222,7 @@ bool CreatureAI::UpdateVictim()
bool CreatureAI::_EnterEvadeMode()
{
- if (!me->isAlive())
+ if (!me->IsAlive())
return false;
// dont remove vehicle auras, passengers arent supposed to drop off the vehicle
@@ -236,6 +234,7 @@ bool CreatureAI::_EnterEvadeMode()
me->LoadCreaturesAddon();
me->SetLootRecipient(NULL);
me->ResetPlayerDamageReq();
+ me->SetLastDamagedTime(0);
if (me->IsInEvadeMode())
return false;
diff --git a/src/server/game/AI/CreatureAI.h b/src/server/game/AI/CreatureAI.h
index 9d61ec0a214..34339859a95 100644
--- a/src/server/game/AI/CreatureAI.h
+++ b/src/server/game/AI/CreatureAI.h
@@ -160,7 +160,7 @@ class CreatureAI : public UnitAI
virtual void CorpseRemoved(uint32& /*respawnDelay*/) {}
// Called when victim entered water and creature can not enter water
- //virtual bool canReachByRangeAttack(Unit*) { return false; }
+ //virtual bool CanReachByRangeAttack(Unit*) { return false; }
/// == Fields =======================================
@@ -169,7 +169,7 @@ class CreatureAI : public UnitAI
virtual void PassengerBoarded(Unit* /*passenger*/, int8 /*seatId*/, bool /*apply*/) {}
- virtual void OnSpellClick(Unit* /*clicker*/) { }
+ virtual void OnSpellClick(Unit* /*clicker*/, bool& /*result*/) { }
virtual bool CanSeeAlways(WorldObject const* /*obj*/) { return false; }
protected:
diff --git a/src/server/game/AI/CreatureAISelector.cpp b/src/server/game/AI/CreatureAISelector.cpp
index e7d61e73d06..203ee37edb3 100644
--- a/src/server/game/AI/CreatureAISelector.cpp
+++ b/src/server/game/AI/CreatureAISelector.cpp
@@ -33,7 +33,7 @@ namespace FactorySelector
const CreatureAICreator* ai_factory = NULL;
CreatureAIRegistry& ai_registry(*CreatureAIRepository::instance());
- if (creature->isPet())
+ if (creature->IsPet())
ai_factory = ai_registry.GetRegistryItem("PetAI");
//scriptname in db
@@ -55,13 +55,13 @@ namespace FactorySelector
ai_factory = ai_registry.GetRegistryItem("PetAI");
else if (creature->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK))
ai_factory = ai_registry.GetRegistryItem("NullCreatureAI");
- else if (creature->isGuard())
+ else if (creature->IsGuard())
ai_factory = ai_registry.GetRegistryItem("GuardAI");
else if (creature->HasUnitTypeMask(UNIT_MASK_CONTROLABLE_GUARDIAN))
ai_factory = ai_registry.GetRegistryItem("PetAI");
- else if (creature->isTotem())
+ else if (creature->IsTotem())
ai_factory = ai_registry.GetRegistryItem("TotemAI");
- else if (creature->isTrigger())
+ else if (creature->IsTrigger())
{
if (creature->m_spells[0])
ai_factory = ai_registry.GetRegistryItem("TriggerAI");
@@ -95,7 +95,7 @@ namespace FactorySelector
// select NullCreatureAI if not another cases
ainame = (ai_factory == NULL) ? "NullCreatureAI" : ai_factory->key();
- TC_LOG_DEBUG(LOG_FILTER_TSCR, "Creature %u used AI is %s.", creature->GetGUIDLow(), ainame.c_str());
+ TC_LOG_DEBUG(LOG_FILTER_TSCR, "Creature %s (Entry: %u GUID: %u DB GUID: %u) is using AI type: %s.", creature->GetName().c_str(), creature->GetEntry(), creature->GetGUIDLow(), creature->GetDBTableGUIDLow(), ainame.c_str());
return (ai_factory == NULL ? new NullCreatureAI(creature) : ai_factory->Create(creature));
}
diff --git a/src/server/game/AI/EventAI/CreatureEventAI.cpp b/src/server/game/AI/EventAI/CreatureEventAI.cpp
index 52ad688b644..d1bfc7403e9 100644
--- a/src/server/game/AI/EventAI/CreatureEventAI.cpp
+++ b/src/server/game/AI/EventAI/CreatureEventAI.cpp
@@ -120,14 +120,14 @@ bool CreatureEventAI::ProcessEvent(CreatureEventAIHolder& holder, Unit* actionIn
switch (event.event_type)
{
case EVENT_T_TIMER:
- if (!me->isInCombat())
+ if (!me->IsInCombat())
return false;
//Repeat Timers
holder.UpdateRepeatTimer(me, event.timer.repeatMin, event.timer.repeatMax);
break;
case EVENT_T_TIMER_OOC:
- if (me->isInCombat())
+ if (me->IsInCombat())
return false;
//Repeat Timers
@@ -135,7 +135,7 @@ bool CreatureEventAI::ProcessEvent(CreatureEventAIHolder& holder, Unit* actionIn
break;
case EVENT_T_HP:
{
- if (!me->isInCombat() || !me->GetMaxHealth())
+ if (!me->IsInCombat() || !me->GetMaxHealth())
return false;
uint32 perc = uint32(me->GetHealthPct());
@@ -149,7 +149,7 @@ bool CreatureEventAI::ProcessEvent(CreatureEventAIHolder& holder, Unit* actionIn
}
case EVENT_T_MANA:
{
- if (!me->isInCombat() || !me->GetMaxPower(POWER_MANA))
+ if (!me->IsInCombat() || !me->GetMaxPower(POWER_MANA))
return false;
uint32 perc = (me->GetPower(POWER_MANA)*100) / me->GetMaxPower(POWER_MANA);
@@ -189,10 +189,10 @@ bool CreatureEventAI::ProcessEvent(CreatureEventAIHolder& holder, Unit* actionIn
break;
case EVENT_T_TARGET_HP:
{
- if (!me->isInCombat() || !me->getVictim() || !me->getVictim()->GetMaxHealth())
+ if (!me->IsInCombat() || !me->GetVictim() || !me->GetVictim()->GetMaxHealth())
return false;
- uint32 perc = uint32(me->getVictim()->GetHealthPct());
+ uint32 perc = uint32(me->GetVictim()->GetHealthPct());
if (perc > event.percent_range.percentMax || perc < event.percent_range.percentMin)
return false;
@@ -202,7 +202,7 @@ bool CreatureEventAI::ProcessEvent(CreatureEventAIHolder& holder, Unit* actionIn
break;
}
case EVENT_T_TARGET_CASTING:
- if (!me->isInCombat() || !me->getVictim() || !me->getVictim()->IsNonMeleeSpellCasted(false, false, true))
+ if (!me->IsInCombat() || !me->GetVictim() || !me->GetVictim()->IsNonMeleeSpellCasted(false, false, true))
return false;
//Repeat Timers
@@ -210,7 +210,7 @@ bool CreatureEventAI::ProcessEvent(CreatureEventAIHolder& holder, Unit* actionIn
break;
case EVENT_T_FRIENDLY_HP:
{
- if (!me->isInCombat())
+ if (!me->IsInCombat())
return false;
Unit* unit = DoSelectLowestHpFriendly((float)event.friendly_hp.radius, event.friendly_hp.hpDeficit);
@@ -225,7 +225,7 @@ bool CreatureEventAI::ProcessEvent(CreatureEventAIHolder& holder, Unit* actionIn
}
case EVENT_T_FRIENDLY_IS_CC:
{
- if (!me->isInCombat())
+ if (!me->IsInCombat())
return false;
std::list<Creature*> pList;
@@ -274,10 +274,10 @@ bool CreatureEventAI::ProcessEvent(CreatureEventAIHolder& holder, Unit* actionIn
}
case EVENT_T_TARGET_MANA:
{
- if (!me->isInCombat() || !me->getVictim() || !me->getVictim()->GetMaxPower(POWER_MANA))
+ if (!me->IsInCombat() || !me->GetVictim() || !me->GetVictim()->GetMaxPower(POWER_MANA))
return false;
- uint32 perc = (me->getVictim()->GetPower(POWER_MANA)*100) / me->getVictim()->GetMaxPower(POWER_MANA);
+ uint32 perc = (me->GetVictim()->GetPower(POWER_MANA)*100) / me->GetVictim()->GetMaxPower(POWER_MANA);
if (perc > event.percent_range.percentMax || perc < event.percent_range.percentMin)
return false;
@@ -372,7 +372,7 @@ void CreatureEventAI::ProcessAction(CreatureEventAI_Action const& action, uint32
}
else
{
- target = me->getVictim();
+ target = me->GetVictim();
if (target && target->GetTypeId() != TYPEID_PLAYER)
if (Unit* owner = target->GetOwner())
if (owner->GetTypeId() == TYPEID_PLAYER)
@@ -476,7 +476,7 @@ void CreatureEventAI::ProcessAction(CreatureEventAI_Action const& action, uint32
m_AttackDistance = 0.0f;
m_AttackAngle = 0.0f;
- me->GetMotionMaster()->MoveChase(me->getVictim(), m_AttackDistance, m_AttackAngle);
+ me->GetMotionMaster()->MoveChase(me->GetVictim(), m_AttackDistance, m_AttackAngle);
}
}
}
@@ -550,8 +550,8 @@ void CreatureEventAI::ProcessAction(CreatureEventAI_Action const& action, uint32
//Allow movement (create new targeted movement gen only if idle)
if (m_CombatMovementEnabled)
{
- Unit* victim = me->getVictim();
- if (me->isInCombat() && victim)
+ Unit* victim = me->GetVictim();
+ if (me->IsInCombat() && victim)
{
if (action.combat_movement.melee)
{
@@ -564,9 +564,9 @@ void CreatureEventAI::ProcessAction(CreatureEventAI_Action const& action, uint32
}
else
{
- if (me->isInCombat())
+ if (me->IsInCombat())
{
- Unit* victim = me->getVictim();
+ Unit* victim = me->GetVictim();
if (action.combat_movement.melee && victim)
{
me->ClearUnitState(UNIT_STATE_MELEE_ATTACKING);
@@ -631,7 +631,7 @@ void CreatureEventAI::ProcessAction(CreatureEventAI_Action const& action, uint32
if (m_CombatMovementEnabled)
{
- me->GetMotionMaster()->MoveChase(me->getVictim(), m_AttackDistance, m_AttackAngle);
+ me->GetMotionMaster()->MoveChase(me->GetVictim(), m_AttackDistance, m_AttackAngle);
}
break;
case ACTION_T_RANDOM_PHASE:
@@ -965,7 +965,7 @@ void CreatureEventAI::AttackStart(Unit* who)
void CreatureEventAI::MoveInLineOfSight(Unit* who)
{
- if (me->getVictim())
+ if (me->GetVictim())
return;
//Check for OOC LOS Event
@@ -1048,13 +1048,13 @@ void CreatureEventAI::UpdateAI(uint32 diff)
case EVENT_T_TARGET_HP:
case EVENT_T_TARGET_CASTING:
case EVENT_T_FRIENDLY_HP:
- if (me->getVictim())
+ if (me->GetVictim())
ProcessEvent(*i);
break;
case EVENT_T_RANGE:
- if (me->getVictim())
- if (me->IsInMap(me->getVictim()) && me->InSamePhase(me->getVictim()))
- if (me->IsInRange(me->getVictim(), (float)(*i).Event.range.minDist, (float)(*i).Event.range.maxDist))
+ if (me->GetVictim())
+ if (me->IsInMap(me->GetVictim()) && me->InSamePhase(me->GetVictim()))
+ if (me->IsInRange(me->GetVictim(), (float)(*i).Event.range.minDist, (float)(*i).Event.range.maxDist))
ProcessEvent(*i);
break;
default:
@@ -1106,7 +1106,7 @@ inline Unit* CreatureEventAI::GetTargetByType(uint32 target, Unit* actionInvoker
case TARGET_T_SELF:
return me;
case TARGET_T_HOSTILE:
- return me->getVictim();
+ return me->GetVictim();
case TARGET_T_HOSTILE_SECOND_AGGRO:
return SelectTarget(SELECT_TARGET_TOPAGGRO, 1);
case TARGET_T_HOSTILE_LAST_AGGRO:
diff --git a/src/server/game/AI/EventAI/CreatureEventAIMgr.cpp b/src/server/game/AI/EventAI/CreatureEventAIMgr.cpp
index 01f764bb0da..4d2aa9b469f 100644
--- a/src/server/game/AI/EventAI/CreatureEventAIMgr.cpp
+++ b/src/server/game/AI/EventAI/CreatureEventAIMgr.cpp
@@ -251,6 +251,7 @@ void CreatureEventAIMgr::LoadCreatureEventAI_Scripts()
TC_LOG_ERROR(LOG_FILTER_SQL, "CreatureEventAI: Creature %u are using spawned event(%u) with param1 = %u 'area specific' but with not existed area (%u) in param2. Event will never repeat.",
temp.creature_id, i, temp.spawned.condition, temp.spawned.conditionValue1);
}
+ break;
default:
TC_LOG_ERROR(LOG_FILTER_SQL, "CreatureEventAI: Creature %u are using invalid spawned event %u mode (%u) in param1", temp.creature_id, i, temp.spawned.condition);
break;
diff --git a/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp b/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp
index 7d7ae278b43..f5d6932db00 100644
--- a/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp
+++ b/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp
@@ -139,7 +139,7 @@ void ScriptedAI::DoStartNoMovement(Unit* victim)
void ScriptedAI::DoStopAttack()
{
- if (me->getVictim())
+ if (me->GetVictim())
me->AttackStop();
}
@@ -312,8 +312,8 @@ void ScriptedAI::DoTeleportAll(float x, float y, float z, float o)
Map::PlayerList const& PlayerList = map->GetPlayers();
for (Map::PlayerList::const_iterator itr = PlayerList.begin(); itr != PlayerList.end(); ++itr)
- if (Player* player = itr->getSource())
- if (player->isAlive())
+ if (Player* player = itr->GetSource())
+ if (player->IsAlive())
player->TeleportTo(me->GetMapId(), x, y, z, o, TELE_TO_NOT_LEAVE_COMBAT);
}
@@ -387,7 +387,7 @@ void ScriptedAI::SetCombatMovement(bool allowMovement)
_isCombatMovementAllowed = allowMovement;
}
-enum eNPCs
+enum NPCs
{
NPC_BROODLORD = 12017,
NPC_VOID_REAVER = 19516,
@@ -407,7 +407,7 @@ bool ScriptedAI::EnterEvadeIfOutOfCombatArea(uint32 const diff)
return false;
}
- if (me->IsInEvadeMode() || !me->getVictim())
+ if (me->IsInEvadeMode() || !me->GetVictim())
return false;
float x = me->GetPositionX();
@@ -454,7 +454,7 @@ BossAI::BossAI(Creature* creature, uint32 bossId) : ScriptedAI(creature),
void BossAI::_Reset()
{
- if (!me->isAlive())
+ if (!me->IsAlive())
return;
me->ResetLootMode();
@@ -555,7 +555,7 @@ bool BossAI::CheckBoundary(Unit* who)
void BossAI::JustSummoned(Creature* summon)
{
summons.Summon(summon);
- if (me->isInCombat())
+ if (me->IsInCombat())
DoZoneInCombat(summon);
}
@@ -590,7 +590,7 @@ WorldBossAI::WorldBossAI(Creature* creature) :
void WorldBossAI::_Reset()
{
- if (!me->isAlive())
+ if (!me->IsAlive())
return;
events.Reset();
diff --git a/src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp b/src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp
index 59de2baaed2..ef15ef27ec4 100644
--- a/src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp
+++ b/src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp
@@ -14,7 +14,7 @@ EndScriptData */
#include "Group.h"
#include "Player.h"
-enum ePoints
+enum Points
{
POINT_LAST_POINT = 0xFFFFFF,
POINT_HOME = 0xFFFFFE
@@ -55,7 +55,7 @@ void npc_escortAI::AttackStart(Unit* who)
//see followerAI
bool npc_escortAI::AssistPlayerInCombat(Unit* who)
{
- if (!who || !who->getVictim())
+ if (!who || !who->GetVictim())
return false;
//experimental (unknown) flag not present
@@ -63,7 +63,7 @@ bool npc_escortAI::AssistPlayerInCombat(Unit* who)
return false;
//not a player
- if (!who->getVictim()->GetCharmerOrOwnerPlayerOrPlayerItself())
+ if (!who->GetVictim()->GetCharmerOrOwnerPlayerOrPlayerItself())
return false;
//never attack friendly
@@ -74,7 +74,7 @@ bool npc_escortAI::AssistPlayerInCombat(Unit* who)
if (me->IsWithinDistInMap(who, GetMaxPlayerDistance()) && me->IsWithinLOSInMap(who))
{
//already fighting someone?
- if (!me->getVictim())
+ if (!me->GetVictim())
{
AttackStart(who);
return true;
@@ -105,7 +105,7 @@ void npc_escortAI::MoveInLineOfSight(Unit* who)
float fAttackRadius = me->GetAttackDistance(who);
if (me->IsWithinDistInMap(who, fAttackRadius) && me->IsWithinLOSInMap(who))
{
- if (!me->getVictim())
+ if (!me->GetVictim())
{
who->RemoveAurasByType(SPELL_AURA_MOD_STEALTH);
AttackStart(who);
@@ -130,7 +130,7 @@ void npc_escortAI::JustDied(Unit* /*killer*/)
if (Group* group = player->GetGroup())
{
for (GroupReference* groupRef = group->GetFirstMember(); groupRef != NULL; groupRef = groupRef->next())
- if (Player* member = groupRef->getSource())
+ if (Player* member = groupRef->GetSource())
if (member->GetQuestStatus(m_pQuestForEscort->GetQuestId()) == QUEST_STATUS_INCOMPLETE)
member->FailQuest(m_pQuestForEscort->GetQuestId());
}
@@ -194,7 +194,7 @@ bool npc_escortAI::IsPlayerOrGroupInRange()
if (Group* group = player->GetGroup())
{
for (GroupReference* groupRef = group->GetFirstMember(); groupRef != NULL; groupRef = groupRef->next())
- if (Player* member = groupRef->getSource())
+ if (Player* member = groupRef->GetSource())
if (me->IsWithinDistInMap(member, GetMaxPlayerDistance()))
return true;
}
@@ -208,7 +208,7 @@ bool npc_escortAI::IsPlayerOrGroupInRange()
void npc_escortAI::UpdateAI(uint32 diff)
{
//Waypoint Updating
- if (HasEscortState(STATE_ESCORT_ESCORTING) && !me->getVictim() && m_uiWPWaitTimer && !HasEscortState(STATE_ESCORT_RETURNING))
+ if (HasEscortState(STATE_ESCORT_ESCORTING) && !me->GetVictim() && m_uiWPWaitTimer && !HasEscortState(STATE_ESCORT_RETURNING))
{
if (m_uiWPWaitTimer <= diff)
{
@@ -265,7 +265,7 @@ void npc_escortAI::UpdateAI(uint32 diff)
}
//Check if player or any member of his group is within range
- if (HasEscortState(STATE_ESCORT_ESCORTING) && m_uiPlayerGUID && !me->getVictim() && !HasEscortState(STATE_ESCORT_RETURNING))
+ if (HasEscortState(STATE_ESCORT_ESCORTING) && m_uiPlayerGUID && !me->GetVictim() && !HasEscortState(STATE_ESCORT_RETURNING))
{
if (m_uiPlayerCheckTimer <= diff)
{
@@ -418,7 +418,7 @@ void npc_escortAI::SetRun(bool on)
/// @todo get rid of this many variables passed in function.
void npc_escortAI::Start(bool isActiveAttacker /* = true*/, bool run /* = false */, uint64 playerGUID /* = 0 */, Quest const* quest /* = NULL */, bool instantRespawn /* = false */, bool canLoopPath /* = false */, bool resetWaypoints /* = true */)
{
- if (me->getVictim())
+ if (me->GetVictim())
{
TC_LOG_ERROR(LOG_FILTER_GENERAL, "TSCR ERROR: EscortAI (script: %s, creature entry: %u) attempts to Start while in combat", me->GetScriptName().c_str(), me->GetEntry());
return;
diff --git a/src/server/game/AI/ScriptedAI/ScriptedEscortAI.h b/src/server/game/AI/ScriptedAI/ScriptedEscortAI.h
index 4a350acab2c..919b24a916c 100644
--- a/src/server/game/AI/ScriptedAI/ScriptedEscortAI.h
+++ b/src/server/game/AI/ScriptedAI/ScriptedEscortAI.h
@@ -92,7 +92,7 @@ struct npc_escortAI : public ScriptedAI
uint64 GetEventStarterGUID() { return m_uiPlayerGUID; }
protected:
- Player* GetPlayerForEscort() { return (Player*)Unit::GetUnit(*me, m_uiPlayerGUID); }
+ Player* GetPlayerForEscort() { return ObjectAccessor::GetPlayer(*me, m_uiPlayerGUID); }
private:
bool AssistPlayerInCombat(Unit* who);
diff --git a/src/server/game/AI/ScriptedAI/ScriptedFollowerAI.cpp b/src/server/game/AI/ScriptedAI/ScriptedFollowerAI.cpp
index 6160fe68ce0..8f46896f6e8 100644
--- a/src/server/game/AI/ScriptedAI/ScriptedFollowerAI.cpp
+++ b/src/server/game/AI/ScriptedAI/ScriptedFollowerAI.cpp
@@ -16,7 +16,7 @@ EndScriptData */
const float MAX_PLAYER_DISTANCE = 100.0f;
-enum ePoints
+enum Points
{
POINT_COMBAT_START = 0xFFFFFF
};
@@ -52,7 +52,7 @@ void FollowerAI::AttackStart(Unit* who)
//The flag (type_flag) is unconfirmed, but used here for further research and is a good candidate.
bool FollowerAI::AssistPlayerInCombat(Unit* who)
{
- if (!who || !who->getVictim())
+ if (!who || !who->GetVictim())
return false;
//experimental (unknown) flag not present
@@ -60,7 +60,7 @@ bool FollowerAI::AssistPlayerInCombat(Unit* who)
return false;
//not a player
- if (!who->getVictim()->GetCharmerOrOwnerPlayerOrPlayerItself())
+ if (!who->GetVictim()->GetCharmerOrOwnerPlayerOrPlayerItself())
return false;
//never attack friendly
@@ -71,7 +71,7 @@ bool FollowerAI::AssistPlayerInCombat(Unit* who)
if (me->IsWithinDistInMap(who, MAX_PLAYER_DISTANCE) && me->IsWithinLOSInMap(who))
{
//already fighting someone?
- if (!me->getVictim())
+ if (!me->GetVictim())
{
AttackStart(who);
return true;
@@ -102,7 +102,7 @@ void FollowerAI::MoveInLineOfSight(Unit* who)
float fAttackRadius = me->GetAttackDistance(who);
if (me->IsWithinDistInMap(who, fAttackRadius) && me->IsWithinLOSInMap(who))
{
- if (!me->getVictim())
+ if (!me->GetVictim())
{
who->RemoveAurasByType(SPELL_AURA_MOD_STEALTH);
AttackStart(who);
@@ -129,7 +129,7 @@ void FollowerAI::JustDied(Unit* /*killer*/)
{
for (GroupReference* groupRef = group->GetFirstMember(); groupRef != NULL; groupRef = groupRef->next())
{
- if (Player* member = groupRef->getSource())
+ if (Player* member = groupRef->GetSource())
{
if (member->GetQuestStatus(m_pQuestForFollow->GetQuestId()) == QUEST_STATUS_INCOMPLETE)
member->FailQuest(m_pQuestForFollow->GetQuestId());
@@ -186,7 +186,7 @@ void FollowerAI::EnterEvadeMode()
void FollowerAI::UpdateAI(uint32 uiDiff)
{
- if (HasFollowState(STATE_FOLLOW_INPROGRESS) && !me->getVictim())
+ if (HasFollowState(STATE_FOLLOW_INPROGRESS) && !me->GetVictim())
{
if (m_uiUpdateFollowTimer <= uiDiff)
{
@@ -214,7 +214,7 @@ void FollowerAI::UpdateAI(uint32 uiDiff)
{
for (GroupReference* groupRef = group->GetFirstMember(); groupRef != NULL; groupRef = groupRef->next())
{
- Player* member = groupRef->getSource();
+ Player* member = groupRef->GetSource();
if (member && me->IsWithinDistInMap(member, MAX_PLAYER_DISTANCE))
{
@@ -273,7 +273,7 @@ void FollowerAI::MovementInform(uint32 motionType, uint32 pointId)
void FollowerAI::StartFollow(Player* player, uint32 factionForFollower, const Quest* quest)
{
- if (me->getVictim())
+ if (me->GetVictim())
{
TC_LOG_DEBUG(LOG_FILTER_TSCR, "FollowerAI attempt to StartFollow while in combat.");
return;
@@ -313,7 +313,7 @@ Player* FollowerAI::GetLeaderForFollower()
{
if (Player* player = Unit::GetPlayer(*me, m_uiLeaderGUID))
{
- if (player->isAlive())
+ if (player->IsAlive())
return player;
else
{
@@ -321,9 +321,9 @@ Player* FollowerAI::GetLeaderForFollower()
{
for (GroupReference* groupRef = group->GetFirstMember(); groupRef != NULL; groupRef = groupRef->next())
{
- Player* member = groupRef->getSource();
+ Player* member = groupRef->GetSource();
- if (member && member->isAlive() && me->IsWithinDistInMap(member, MAX_PLAYER_DISTANCE))
+ if (member && member->IsAlive() && me->IsWithinDistInMap(member, MAX_PLAYER_DISTANCE))
{
TC_LOG_DEBUG(LOG_FILTER_TSCR, "FollowerAI GetLeader changed and returned new leader.");
m_uiLeaderGUID = member->GetGUID();
diff --git a/src/server/game/AI/SmartScripts/SmartAI.cpp b/src/server/game/AI/SmartScripts/SmartAI.cpp
index 96979cf2c49..f43a7f91f32 100644
--- a/src/server/game/AI/SmartScripts/SmartAI.cpp
+++ b/src/server/game/AI/SmartScripts/SmartAI.cpp
@@ -116,7 +116,7 @@ WayPoint* SmartAI::GetNextWayPoint()
void SmartAI::StartPath(bool run, uint32 path, bool repeat, Unit* /*invoker*/)
{
- if (me->isInCombat())// no wp movement in combat
+ if (me->IsInCombat())// no wp movement in combat
{
TC_LOG_ERROR(LOG_FILTER_GENERAL, "SmartAI::StartPath: Creature entry %u wanted to start waypoint movement while in combat, ignoring.", me->GetEntry());
return;
@@ -226,7 +226,7 @@ void SmartAI::EndPath(bool fail)
{
for (GroupReference* groupRef = group->GetFirstMember(); groupRef != NULL; groupRef = groupRef->next())
{
- Player* groupGuy = groupRef->getSource();
+ Player* groupGuy = groupRef->GetSource();
if (!fail && groupGuy->IsAtGroupRewardDistance(me) && !groupGuy->GetCorpse())
groupGuy->AreaExploredOrEventHappens(mEscortQuestID);
@@ -284,7 +284,7 @@ void SmartAI::UpdatePath(const uint32 diff)
{
if (mWPPauseTimer < diff)
{
- if (!me->isInCombat() && !HasEscortState(SMART_ESCORT_RETURNING) && (mWPReached || mLastWPIDReached == SMART_ESCORT_LAST_OOC_POINT || mForcedPaused))
+ if (!me->IsInCombat() && !HasEscortState(SMART_ESCORT_RETURNING) && (mWPReached || mLastWPIDReached == SMART_ESCORT_LAST_OOC_POINT || mForcedPaused))
{
GetScript()->ProcessEventsFor(SMART_EVENT_WAYPOINT_RESUMED, NULL, mLastWP->id, GetScript()->GetPathId());
RemoveEscortState(SMART_ESCORT_PAUSED);
@@ -312,7 +312,7 @@ void SmartAI::UpdatePath(const uint32 diff)
mWPReached = false;
}
}
- if (me->isInCombat() || HasEscortState(SMART_ESCORT_PAUSED | SMART_ESCORT_RETURNING))
+ if (me->IsInCombat() || HasEscortState(SMART_ESCORT_PAUSED | SMART_ESCORT_RETURNING))
return;
// handle next wp
if (mWPReached)//reached WP
@@ -390,7 +390,7 @@ bool SmartAI::IsEscortInvokerInRange()
{
for (GroupReference* groupRef = group->GetFirstMember(); groupRef != NULL; groupRef = groupRef->next())
{
- Player* groupGuy = groupRef->getSource();
+ Player* groupGuy = groupRef->GetSource();
if (me->GetDistance(groupGuy) <= SMART_ESCORT_MAX_PLAYER_DIST)
return true;
@@ -446,7 +446,7 @@ void SmartAI::RemoveAuras()
void SmartAI::EnterEvadeMode()
{
- if (!me->isAlive() || me->IsInEvadeMode())
+ if (!me->IsAlive() || me->IsInEvadeMode())
return;
RemoveAuras();
@@ -490,7 +490,7 @@ void SmartAI::MoveInLineOfSight(Unit* who)
if (!CanAIAttack(who))
return;
- if (!me->canStartAttack(who, false))
+ if (!me->CanStartAttack(who, false))
return;
if (me->IsHostileTo(who))
@@ -498,7 +498,7 @@ void SmartAI::MoveInLineOfSight(Unit* who)
float fAttackRadius = me->GetAttackDistance(who);
if (me->IsWithinDistInMap(who, fAttackRadius) && me->IsWithinLOSInMap(who))
{
- if (!me->getVictim())
+ if (!me->GetVictim())
{
who->RemoveAurasByType(SPELL_AURA_MOD_STEALTH);
AttackStart(who);
@@ -521,7 +521,7 @@ bool SmartAI::CanAIAttack(const Unit* /*who*/) const
bool SmartAI::AssistPlayerInCombat(Unit* who)
{
- if (!who || !who->getVictim())
+ if (!who || !who->GetVictim())
return false;
//experimental (unknown) flag not present
@@ -529,7 +529,7 @@ bool SmartAI::AssistPlayerInCombat(Unit* who)
return false;
//not a player
- if (!who->getVictim()->GetCharmerOrOwnerPlayerOrPlayerItself())
+ if (!who->GetVictim()->GetCharmerOrOwnerPlayerOrPlayerItself())
return false;
//never attack friendly
@@ -540,7 +540,7 @@ bool SmartAI::AssistPlayerInCombat(Unit* who)
if (me->IsWithinDistInMap(who, SMART_MAX_AID_DIST) && me->IsWithinLOSInMap(who))
{
//already fighting someone?
- if (!me->getVictim())
+ if (!me->GetVictim())
{
AttackStart(who);
return true;
@@ -724,27 +724,18 @@ uint64 SmartAI::GetGUID(int32 /*id*/) const
void SmartAI::SetRun(bool run)
{
- if (run)
- me->SetWalk(false);
- else
- me->SetWalk(true);
-
+ me->SetWalk(!run);
mRun = run;
}
void SmartAI::SetFly(bool fly)
{
me->SetDisableGravity(fly);
- me->SendMovementFlagUpdate();
}
void SmartAI::SetSwim(bool swim)
{
- if (swim)
- me->AddUnitMovementFlag(MOVEMENTFLAG_SWIMMING);
- else
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_SWIMMING);
- me->SendMovementFlagUpdate();
+ me->SetSwim(swim);
}
void SmartAI::sGossipHello(Player* player)
@@ -784,12 +775,12 @@ void SmartAI::SetCombatMove(bool on)
mCanCombatMove = on;
if (!HasEscortState(SMART_ESCORT_ESCORTING))
{
- if (on && me->getVictim())
+ if (on && me->GetVictim())
{
if (me->GetMotionMaster()->GetCurrentMovementGeneratorType() == IDLE_MOTION_TYPE)
{
SetRun(mRun);
- me->GetMotionMaster()->MoveChase(me->getVictim());
+ me->GetMotionMaster()->MoveChase(me->GetVictim());
me->CastStop();
}
}
@@ -828,8 +819,11 @@ void SmartAI::sOnGameEvent(bool start, uint16 eventId)
GetScript()->ProcessEventsFor(start ? SMART_EVENT_GAME_EVENT_START : SMART_EVENT_GAME_EVENT_END, NULL, eventId);
}
-void SmartAI::OnSpellClick(Unit* clicker)
+void SmartAI::OnSpellClick(Unit* clicker, bool& result)
{
+ if (!result)
+ return;
+
GetScript()->ProcessEventsFor(SMART_EVENT_ON_SPELLCLICK, clicker);
}
@@ -936,7 +930,7 @@ class SmartTrigger : public AreaTriggerScript
bool OnTrigger(Player* player, AreaTriggerEntry const* trigger)
{
- if (!player->isAlive())
+ if (!player->IsAlive())
return false;
TC_LOG_DEBUG(LOG_FILTER_DATABASE_AI, "AreaTrigger %u is using SmartTrigger script", trigger->id);
diff --git a/src/server/game/AI/SmartScripts/SmartAI.h b/src/server/game/AI/SmartScripts/SmartAI.h
index dee6bec905c..4b4909e9c6c 100644
--- a/src/server/game/AI/SmartScripts/SmartAI.h
+++ b/src/server/game/AI/SmartScripts/SmartAI.h
@@ -197,7 +197,7 @@ class SmartAI : public CreatureAI
void RemoveAuras();
- void OnSpellClick(Unit* clicker);
+ void OnSpellClick(Unit* clicker, bool& result);
private:
uint32 mFollowCreditType;
diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp
index b4053da2932..261c4166a15 100644
--- a/src/server/game/AI/SmartScripts/SmartScript.cpp
+++ b/src/server/game/AI/SmartScripts/SmartScript.cpp
@@ -166,7 +166,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
{
for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
- if (IsCreature((*itr)))
+ if (IsCreature((*itr)) && !(*itr)->ToCreature()->IsPet()) // Prevented sending text to pets.
{
talker = (*itr)->ToCreature();
break;
@@ -250,9 +250,9 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
{
if (IsUnit(*itr))
{
- (*itr)->SendPlaySound(e.action.sound.sound, e.action.sound.range > 0 ? true : false);
+ (*itr)->SendPlaySound(e.action.sound.sound, e.action.sound.onlySelf > 0 ? true : false);
TC_LOG_DEBUG(LOG_FILTER_DATABASE_AI, "SmartScript::ProcessAction:: SMART_ACTION_SOUND: target: %s (GuidLow: %u), sound: %u, onlyself: %u",
- (*itr)->GetName().c_str(), (*itr)->GetGUIDLow(), e.action.sound.sound, e.action.sound.range);
+ (*itr)->GetName().c_str(), (*itr)->GetGUIDLow(), e.action.sound.sound, e.action.sound.onlySelf);
}
}
@@ -475,7 +475,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
if (IsUnit(*itr))
if (Vehicle* vehicle = (*itr)->ToUnit()->GetVehicleKit())
for (SeatMap::iterator it = vehicle->Seats.begin(); it != vehicle->Seats.end(); ++it)
- if (Player* player = ObjectAccessor::FindPlayer(it->second.Passenger))
+ if (Player* player = ObjectAccessor::FindPlayer(it->second.Passenger.Guid))
player->AreaExploredOrEventHappens(e.action.quest.quest);
if (IsPlayer(*itr))
@@ -657,9 +657,18 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
{
if (IsUnit(*itr))
{
- (*itr)->ToUnit()->SetFlag(UNIT_FIELD_FLAGS, e.action.unitFlag.flag);
- TC_LOG_DEBUG(LOG_FILTER_DATABASE_AI, "SmartScript::ProcessAction:: SMART_ACTION_SET_UNIT_FLAG. Unit %u added flag %u to UNIT_FIELD_FLAGS",
+ if (!e.action.unitFlag.type)
+ {
+ (*itr)->ToUnit()->SetFlag(UNIT_FIELD_FLAGS, e.action.unitFlag.flag);
+ TC_LOG_DEBUG(LOG_FILTER_DATABASE_AI, "SmartScript::ProcessAction:: SMART_ACTION_SET_UNIT_FLAG. Unit %u added flag %u to UNIT_FIELD_FLAGS",
+ (*itr)->GetGUIDLow(), e.action.unitFlag.flag);
+ }
+ else
+ {
+ (*itr)->ToUnit()->SetFlag(UNIT_FIELD_FLAGS_2, e.action.unitFlag.flag);
+ TC_LOG_DEBUG(LOG_FILTER_DATABASE_AI, "SmartScript::ProcessAction:: SMART_ACTION_SET_UNIT_FLAG. Unit %u added flag %u to UNIT_FIELD_FLAGS_2",
(*itr)->GetGUIDLow(), e.action.unitFlag.flag);
+ }
}
}
@@ -676,9 +685,18 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
{
if (IsUnit(*itr))
{
- (*itr)->ToUnit()->RemoveFlag(UNIT_FIELD_FLAGS, e.action.unitFlag.flag);
- TC_LOG_DEBUG(LOG_FILTER_DATABASE_AI, "SmartScript::ProcessAction:: SMART_ACTION_REMOVE_UNIT_FLAG. Unit %u removed flag %u to UNIT_FIELD_FLAGS",
+ if (!e.action.unitFlag.type)
+ {
+ (*itr)->ToUnit()->RemoveFlag(UNIT_FIELD_FLAGS, e.action.unitFlag.flag);
+ TC_LOG_DEBUG(LOG_FILTER_DATABASE_AI, "SmartScript::ProcessAction:: SMART_ACTION_REMOVE_UNIT_FLAG. Unit %u removed flag %u to UNIT_FIELD_FLAGS",
+ (*itr)->GetGUIDLow(), e.action.unitFlag.flag);
+ }
+ else
+ {
+ (*itr)->ToUnit()->RemoveFlag(UNIT_FIELD_FLAGS_2, e.action.unitFlag.flag);
+ TC_LOG_DEBUG(LOG_FILTER_DATABASE_AI, "SmartScript::ProcessAction:: SMART_ACTION_REMOVE_UNIT_FLAG. Unit %u removed flag %u to UNIT_FIELD_FLAGS_2",
(*itr)->GetGUIDLow(), e.action.unitFlag.flag);
+ }
}
}
@@ -765,7 +783,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
// Special handling for vehicles
if (Vehicle* vehicle = unit->GetVehicleKit())
for (SeatMap::iterator it = vehicle->Seats.begin(); it != vehicle->Seats.end(); ++it)
- if (Player* player = ObjectAccessor::FindPlayer(it->second.Passenger))
+ if (Player* player = ObjectAccessor::FindPlayer(it->second.Passenger.Guid))
player->GroupEventHappens(e.action.quest.quest, GetBaseObject());
break;
}
@@ -879,13 +897,19 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
}
case SMART_ACTION_CALL_KILLEDMONSTER:
{
- Player* player = NULL;
- if (me)
- player = me->GetLootRecipient();
+ if (e.target.type == SMART_TARGET_NONE) // Loot recipient and his group members
+ {
+ if (!me)
+ break;
- if (me && player)
- player->RewardPlayerAndGroupAtEvent(e.action.killedMonster.creature, player);
- else if (GetBaseObject())
+ if (Player* player = me->GetLootRecipient())
+ {
+ player->RewardPlayerAndGroupAtEvent(e.action.killedMonster.creature, player);
+ TC_LOG_DEBUG(LOG_FILTER_DATABASE_AI, "SmartScript::ProcessAction: SMART_ACTION_CALL_KILLEDMONSTER: Player %u, Killcredit: %u",
+ player->GetGUIDLow(), e.action.killedMonster.creature);
+ }
+ }
+ else // Specific target type
{
ObjectList* targets = GetTargets(e, unit);
if (!targets)
@@ -893,29 +917,21 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
- // Special handling for vehicles
- if (IsUnit(*itr))
+ if (IsPlayer(*itr))
+ {
+ (*itr)->ToPlayer()->KilledMonsterCredit(e.action.killedMonster.creature);
+ TC_LOG_DEBUG(LOG_FILTER_DATABASE_AI, "SmartScript::ProcessAction: SMART_ACTION_CALL_KILLEDMONSTER: Player %u, Killcredit: %u",
+ (*itr)->GetGUIDLow(), e.action.killedMonster.creature);
+ }
+ else if (IsUnit(*itr)) // Special handling for vehicles
if (Vehicle* vehicle = (*itr)->ToUnit()->GetVehicleKit())
- for (SeatMap::iterator it = vehicle->Seats.begin(); it != vehicle->Seats.end(); ++it)
- if (Player* player = ObjectAccessor::FindPlayer(it->second.Passenger))
- player->RewardPlayerAndGroupAtEvent(e.action.killedMonster.creature, player);
-
- if (!IsPlayer(*itr))
- continue;
-
- (*itr)->ToPlayer()->RewardPlayerAndGroupAtEvent(e.action.killedMonster.creature, (*itr)->ToPlayer());
- TC_LOG_DEBUG(LOG_FILTER_DATABASE_AI, "SmartScript::ProcessAction: SMART_ACTION_CALL_KILLEDMONSTER: Player %u, Killcredit: %u",
- (*itr)->GetGUIDLow(), e.action.killedMonster.creature);
+ for (SeatMap::iterator itr = vehicle->Seats.begin(); itr != vehicle->Seats.end(); ++itr)
+ if (Player* player = ObjectAccessor::FindPlayer(itr->second.Passenger.Guid))
+ player->KilledMonsterCredit(e.action.killedMonster.creature);
}
delete targets;
}
- else if (trigger && IsPlayer(unit))
- {
- unit->ToPlayer()->RewardPlayerAndGroupAtEvent(e.action.killedMonster.creature, unit);
- TC_LOG_DEBUG(LOG_FILTER_DATABASE_AI, "SmartScript::ProcessAction: SMART_ACTION_CALL_KILLEDMONSTER: (trigger == true) Player %u, Killcredit: %u",
- unit->GetGUIDLow(), e.action.killedMonster.creature);
- }
break;
}
case SMART_ACTION_SET_INST_DATA:
@@ -1024,7 +1040,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
break;
// The AI is only updated if the creature is alive
- if (me->isAlive())
+ if (me->IsAlive())
{
CAST_AI(SmartAI, me->AI())->SetDespawnTime(e.action.forceDespawn.delay + 1); // Next tick
CAST_AI(SmartAI, me->AI())->StartDespawn();
@@ -1115,13 +1131,13 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
case SMART_ACTION_SET_VISIBILITY:
{
if (me)
- me->SetVisible(e.action.visibility.state ? true : false);
+ me->SetVisible(e.action.visibility.state);
break;
}
case SMART_ACTION_SET_ACTIVE:
{
- if (GetBaseObject())
- GetBaseObject()->setActive(true);
+ if (WorldObject* baseObj = GetBaseObject())
+ baseObj->setActive(e.action.active.state);
break;
}
case SMART_ACTION_ATTACK_START:
@@ -1282,10 +1298,10 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
- if (!IsPlayer(*itr))
- continue;
-
- (*itr)->ToPlayer()->TeleportTo(e.action.teleport.mapID, e.target.x, e.target.y, e.target.z, e.target.o);
+ if (IsPlayer(*itr))
+ (*itr)->ToPlayer()->TeleportTo(e.action.teleport.mapID, e.target.x, e.target.y, e.target.z, e.target.o);
+ else if (IsCreature(*itr))
+ (*itr)->ToCreature()->NearTeleportTo(e.target.x, e.target.y, e.target.z, e.target.o);
}
delete targets;
@@ -1406,7 +1422,8 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
e.GetTargetType() == SMART_TARGET_CREATURE_DISTANCE || e.GetTargetType() == SMART_TARGET_GAMEOBJECT_RANGE ||
e.GetTargetType() == SMART_TARGET_GAMEOBJECT_GUID || e.GetTargetType() == SMART_TARGET_GAMEOBJECT_DISTANCE ||
e.GetTargetType() == SMART_TARGET_CLOSEST_CREATURE || e.GetTargetType() == SMART_TARGET_CLOSEST_GAMEOBJECT ||
- e.GetTargetType() == SMART_TARGET_OWNER_OR_SUMMONER || e.GetTargetType() == SMART_TARGET_ACTION_INVOKER)
+ e.GetTargetType() == SMART_TARGET_OWNER_OR_SUMMONER || e.GetTargetType() == SMART_TARGET_ACTION_INVOKER ||
+ e.GetTargetType() == SMART_TARGET_CLOSEST_ENEMY)
{
ObjectList* targets = GetTargets(e, unit);
if (!targets)
@@ -1470,8 +1487,10 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
if (!einfo)
{
TC_LOG_ERROR(LOG_FILTER_SQL, "SmartScript: SMART_ACTION_EQUIP uses non-existent equipment info id %u for creature %u", equipId, npc->GetEntry());
+ delete targets;
return;
}
+
npc->SetCurrentEquipmentId(equipId);
slot[0] = einfo->ItemEntry[0];
slot[1] = einfo->ItemEntry[1];
@@ -1582,9 +1601,9 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
{
for (ObjectList::iterator itr = targets->begin(); itr != targets->end(); ++itr)
if (Creature* target = (*itr)->ToCreature())
- if (IsSmart(target) && target->getVictim())
+ if (IsSmart(target) && target->GetVictim())
if (CAST_AI(SmartAI, target->AI())->CanCombatMove())
- target->GetMotionMaster()->MoveChase(target->getVictim(), attackDistance, attackAngle);
+ target->GetMotionMaster()->MoveChase(target->GetVictim(), attackDistance, attackAngle);
delete targets;
}
@@ -2237,8 +2256,8 @@ ObjectList* SmartScript::GetTargets(SmartScriptHolder const& e, Unit* invoker /*
l->push_back(baseObject);
break;
case SMART_TARGET_VICTIM:
- if (me && me->getVictim())
- l->push_back(me->getVictim());
+ if (me && me->GetVictim())
+ l->push_back(me->GetVictim());
break;
case SMART_TARGET_HOSTILE_SECOND_AGGRO:
if (me)
@@ -2277,7 +2296,7 @@ ObjectList* SmartScript::GetTargets(SmartScriptHolder const& e, Unit* invoker /*
if (Group* group = player->GetGroup())
{
for (GroupReference* groupRef = group->GetFirstMember(); groupRef != NULL; groupRef = groupRef->next())
- if (Player* member = groupRef->getSource())
+ if (Player* member = groupRef->GetSource())
l->push_back(member);
}
// We still add the player to the list if there is no group. If we do
@@ -2467,6 +2486,14 @@ ObjectList* SmartScript::GetTargets(SmartScriptHolder const& e, Unit* invoker /*
}
break;
}
+ case SMART_TARGET_CLOSEST_ENEMY:
+ {
+ if (me)
+ if (Unit* target = me->SelectNearestTarget(e.target.closestAttackable.maxDist))
+ l->push_back(target);
+
+ break;
+ }
case SMART_TARGET_POSITION:
default:
break;
@@ -2512,18 +2539,18 @@ void SmartScript::ProcessEvent(SmartScriptHolder& e, Unit* unit, uint32 var0, ui
ProcessTimedAction(e, e.event.minMaxRepeat.repeatMin, e.event.minMaxRepeat.repeatMax);
break;
case SMART_EVENT_UPDATE_OOC:
- if (me && me->isInCombat())
+ if (me && me->IsInCombat())
return;
ProcessTimedAction(e, e.event.minMaxRepeat.repeatMin, e.event.minMaxRepeat.repeatMax);
break;
case SMART_EVENT_UPDATE_IC:
- if (!me || !me->isInCombat())
+ if (!me || !me->IsInCombat())
return;
ProcessTimedAction(e, e.event.minMaxRepeat.repeatMin, e.event.minMaxRepeat.repeatMax);
break;
case SMART_EVENT_HEALT_PCT:
{
- if (!me || !me->isInCombat() || !me->GetMaxHealth())
+ if (!me || !me->IsInCombat() || !me->GetMaxHealth())
return;
uint32 perc = (uint32)me->GetHealthPct();
if (perc > e.event.minMaxRepeat.max || perc < e.event.minMaxRepeat.min)
@@ -2533,17 +2560,17 @@ void SmartScript::ProcessEvent(SmartScriptHolder& e, Unit* unit, uint32 var0, ui
}
case SMART_EVENT_TARGET_HEALTH_PCT:
{
- if (!me || !me->isInCombat() || !me->getVictim() || !me->getVictim()->GetMaxHealth())
+ if (!me || !me->IsInCombat() || !me->GetVictim() || !me->GetVictim()->GetMaxHealth())
return;
- uint32 perc = (uint32)me->getVictim()->GetHealthPct();
+ uint32 perc = (uint32)me->GetVictim()->GetHealthPct();
if (perc > e.event.minMaxRepeat.max || perc < e.event.minMaxRepeat.min)
return;
- ProcessTimedAction(e, e.event.minMaxRepeat.repeatMin, e.event.minMaxRepeat.repeatMax, me->getVictim());
+ ProcessTimedAction(e, e.event.minMaxRepeat.repeatMin, e.event.minMaxRepeat.repeatMax, me->GetVictim());
break;
}
case SMART_EVENT_MANA_PCT:
{
- if (!me || !me->isInCombat() || !me->GetMaxPower(POWER_MANA))
+ if (!me || !me->IsInCombat() || !me->GetMaxPower(POWER_MANA))
return;
uint32 perc = uint32(100.0f * me->GetPower(POWER_MANA) / me->GetMaxPower(POWER_MANA));
if (perc > e.event.minMaxRepeat.max || perc < e.event.minMaxRepeat.min)
@@ -2553,33 +2580,34 @@ void SmartScript::ProcessEvent(SmartScriptHolder& e, Unit* unit, uint32 var0, ui
}
case SMART_EVENT_TARGET_MANA_PCT:
{
- if (!me || !me->isInCombat() || !me->getVictim() || !me->getVictim()->GetMaxPower(POWER_MANA))
+ if (!me || !me->IsInCombat() || !me->GetVictim() || !me->GetVictim()->GetMaxPower(POWER_MANA))
return;
- uint32 perc = uint32(100.0f * me->getVictim()->GetPower(POWER_MANA) / me->getVictim()->GetMaxPower(POWER_MANA));
+ uint32 perc = uint32(100.0f * me->GetVictim()->GetPower(POWER_MANA) / me->GetVictim()->GetMaxPower(POWER_MANA));
if (perc > e.event.minMaxRepeat.max || perc < e.event.minMaxRepeat.min)
return;
- ProcessTimedAction(e, e.event.minMaxRepeat.repeatMin, e.event.minMaxRepeat.repeatMax, me->getVictim());
+ ProcessTimedAction(e, e.event.minMaxRepeat.repeatMin, e.event.minMaxRepeat.repeatMax, me->GetVictim());
break;
}
case SMART_EVENT_RANGE:
{
- if (!me || !me->isInCombat() || !me->getVictim())
+ if (!me || !me->IsInCombat() || !me->GetVictim())
return;
- if (me->IsInRange(me->getVictim(), (float)e.event.minMaxRepeat.min, (float)e.event.minMaxRepeat.max))
- ProcessTimedAction(e, e.event.minMaxRepeat.repeatMin, e.event.minMaxRepeat.repeatMax, me->getVictim());
+ if (me->IsInRange(me->GetVictim(), (float)e.event.minMaxRepeat.min, (float)e.event.minMaxRepeat.max))
+ ProcessTimedAction(e, e.event.minMaxRepeat.repeatMin, e.event.minMaxRepeat.repeatMax, me->GetVictim());
break;
}
case SMART_EVENT_TARGET_CASTING:
{
- if (!me || !me->isInCombat() || !me->getVictim() || !me->getVictim()->IsNonMeleeSpellCasted(false, false, true))
+ if (!me || !me->IsInCombat() || !me->GetVictim() || !me->GetVictim()->IsNonMeleeSpellCasted(false, false, true))
return;
- ProcessTimedAction(e, e.event.minMaxRepeat.repeatMin, e.event.minMaxRepeat.repeatMax, me->getVictim());
+ ProcessTimedAction(e, e.event.minMaxRepeat.repeatMin, e.event.minMaxRepeat.repeatMax, me->GetVictim());
+ break;
}
case SMART_EVENT_FRIENDLY_HEALTH:
{
- if (!me || !me->isInCombat())
+ if (!me || !me->IsInCombat())
return;
Unit* target = DoSelectLowestHpFriendly((float)e.event.friendlyHealt.radius, e.event.friendlyHealt.hpDeficit);
@@ -2590,7 +2618,7 @@ void SmartScript::ProcessEvent(SmartScriptHolder& e, Unit* unit, uint32 var0, ui
}
case SMART_EVENT_FRIENDLY_IS_CC:
{
- if (!me || !me->isInCombat())
+ if (!me || !me->IsInCombat())
return;
std::list<Creature*> pList;
@@ -2622,9 +2650,9 @@ void SmartScript::ProcessEvent(SmartScriptHolder& e, Unit* unit, uint32 var0, ui
}
case SMART_EVENT_TARGET_BUFFED:
{
- if (!me || !me->getVictim())
+ if (!me || !me->GetVictim())
return;
- uint32 count = me->getVictim()->GetAuraCount(e.event.aura.spell);
+ uint32 count = me->GetVictim()->GetAuraCount(e.event.aura.spell);
if (count < e.event.aura.count)
return;
ProcessTimedAction(e, e.event.aura.repeatMin, e.event.aura.repeatMax);
@@ -2659,7 +2687,7 @@ void SmartScript::ProcessEvent(SmartScriptHolder& e, Unit* unit, uint32 var0, ui
if (!me)
return;
- if (Unit* victim = me->getVictim())
+ if (Unit* victim = me->GetVictim())
{
if (!victim->HasInArc(static_cast<float>(M_PI), me))
ProcessTimedAction(e, e.event.behindTarget.cooldownMin, e.event.behindTarget.cooldownMax, victim);
@@ -2700,7 +2728,7 @@ void SmartScript::ProcessEvent(SmartScriptHolder& e, Unit* unit, uint32 var0, ui
}
case SMART_EVENT_OOC_LOS:
{
- if (!me || me->isInCombat())
+ if (!me || me->IsInCombat())
return;
//can trigger if closer than fMaxAllowedRange
float range = (float)e.event.los.maxDist;
@@ -2720,7 +2748,7 @@ void SmartScript::ProcessEvent(SmartScriptHolder& e, Unit* unit, uint32 var0, ui
}
case SMART_EVENT_IC_LOS:
{
- if (!me || !me->isInCombat())
+ if (!me || !me->IsInCombat())
return;
//can trigger if closer than fMaxAllowedRange
float range = (float)e.event.los.maxDist;
@@ -2940,10 +2968,10 @@ void SmartScript::UpdateTimer(SmartScriptHolder& e, uint32 const diff)
if (e.event.event_phase_mask && !IsInPhase(e.event.event_phase_mask))
return;
- if (e.GetEventType() == SMART_EVENT_UPDATE_IC && (!me || !me->isInCombat()))
+ if (e.GetEventType() == SMART_EVENT_UPDATE_IC && (!me || !me->IsInCombat()))
return;
- if (e.GetEventType() == SMART_EVENT_UPDATE_OOC && (me && me->isInCombat()))//can be used with me=NULL (go script)
+ if (e.GetEventType() == SMART_EVENT_UPDATE_OOC && (me && me->IsInCombat()))//can be used with me=NULL (go script)
return;
if (e.timer < diff)
@@ -3178,7 +3206,7 @@ void SmartScript::OnMoveInLineOfSight(Unit* who)
if (!me)
return;
- if (me->getVictim())
+ if (me->GetVictim())
return;
ProcessEventsFor(SMART_EVENT_IC_LOS, who);
diff --git a/src/server/game/AI/SmartScripts/SmartScript.h b/src/server/game/AI/SmartScripts/SmartScript.h
index 409d0e7d324..6801c132331 100644
--- a/src/server/game/AI/SmartScripts/SmartScript.h
+++ b/src/server/game/AI/SmartScripts/SmartScript.h
@@ -117,7 +117,7 @@ class SmartScript
smart = false;
if (!smart)
- TC_LOG_ERROR(LOG_FILTER_SQL, "SmartScript: Action target Creature(entry: %u) is not using SmartAI, action skipped to prevent crash.", c ? c->GetEntry() : (me ? me->GetEntry() : 0));
+ TC_LOG_ERROR(LOG_FILTER_SQL, "SmartScript: Action target Creature (GUID: %u Entry: %u) is not using SmartAI, action skipped to prevent crash.", c ? c->GetDBTableGUIDLow() : (me ? me->GetDBTableGUIDLow() : 0), c ? c->GetEntry() : (me ? me->GetEntry() : 0));
return smart;
}
@@ -131,7 +131,7 @@ class SmartScript
if (!go || go->GetAIName() != "SmartGameObjectAI")
smart = false;
if (!smart)
- TC_LOG_ERROR(LOG_FILTER_SQL, "SmartScript: Action target GameObject(entry: %u) is not using SmartGameObjectAI, action skipped to prevent crash.", g ? g->GetEntry() : (go ? go->GetEntry() : 0));
+ TC_LOG_ERROR(LOG_FILTER_SQL, "SmartScript: Action target GameObject (GUID: %u Entry: %u) is not using SmartGameObjectAI, action skipped to prevent crash.", g ? g->GetDBTableGUIDLow() : (go ? go->GetDBTableGUIDLow() : 0), g ? g->GetEntry() : (go ? go->GetEntry() : 0));
return smart;
}
diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp
index ec7f307c5ef..eeeacb36032 100644
--- a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp
+++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp
@@ -300,6 +300,7 @@ bool SmartAIMgr::IsTargetValid(SmartScriptHolder const& e)
case SMART_TARGET_THREAT_LIST:
case SMART_TARGET_CLOSEST_GAMEOBJECT:
case SMART_TARGET_CLOSEST_CREATURE:
+ case SMART_TARGET_CLOSEST_ENEMY:
case SMART_TARGET_STORED:
break;
default:
@@ -620,11 +621,6 @@ bool SmartAIMgr::IsEventValid(SmartScriptHolder& e)
case SMART_ACTION_SOUND:
if (!IsSoundValid(e, e.action.sound.sound))
return false;
- if (e.action.sound.range > TEXT_RANGE_WORLD)
- {
- TC_LOG_ERROR(LOG_FILTER_SQL, "SmartAIMgr: Entry %d SourceType %u Event %u Action %u uses invalid Text Range %u, skipped.", e.entryOrGuid, e.GetScriptType(), e.event_id, e.GetActionType(), e.action.sound.range);
- return false;
- }
break;
case SMART_ACTION_SET_EMOTE_STATE:
case SMART_ACTION_PLAY_EMOTE:
@@ -761,6 +757,11 @@ bool SmartAIMgr::IsEventValid(SmartScriptHolder& e)
case SMART_ACTION_CALL_KILLEDMONSTER:
if (!IsCreatureValid(e, e.action.killedMonster.creature))
return false;
+ if (e.GetTargetType() == SMART_TARGET_POSITION)
+ {
+ TC_LOG_ERROR(LOG_FILTER_SQL, "SmartAIMgr: Entry %d SourceType %u Event %u Action %u uses incorrect TargetType %u, skipped.", e.entryOrGuid, e.GetScriptType(), e.event_id, e.GetActionType(), e.GetTargetType());
+ return false;
+ }
break;
case SMART_ACTION_UPDATE_TEMPLATE:
if (e.action.updateTemplate.creature && !IsCreatureValid(e, e.action.updateTemplate.creature))
diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.h b/src/server/game/AI/SmartScripts/SmartScriptMgr.h
index 33e458976f1..394ede7fb54 100644
--- a/src/server/game/AI/SmartScripts/SmartScriptMgr.h
+++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.h
@@ -385,7 +385,7 @@ enum SMART_ACTION
SMART_ACTION_TALK = 1, // groupID from creature_text, duration to wait before TEXT_OVER event is triggered
SMART_ACTION_SET_FACTION = 2, // FactionId (or 0 for default)
SMART_ACTION_MORPH_TO_ENTRY_OR_MODEL = 3, // Creature_template entry(param1) OR ModelId (param2) (or 0 for both to demorph)
- SMART_ACTION_SOUND = 4, // SoundId, TextRange
+ SMART_ACTION_SOUND = 4, // SoundId, onlySelf
SMART_ACTION_PLAY_EMOTE = 5, // EmoteId
SMART_ACTION_FAIL_QUEST = 6, // QuestID
SMART_ACTION_ADD_QUEST = 7, // QuestID
@@ -429,7 +429,7 @@ enum SMART_ACTION
SMART_ACTION_SET_DATA = 45, // Field, Data (only creature @todo)
SMART_ACTION_MOVE_FORWARD = 46, // distance
SMART_ACTION_SET_VISIBILITY = 47, // on/off
- SMART_ACTION_SET_ACTIVE = 48, // No Params
+ SMART_ACTION_SET_ACTIVE = 48, // on/off
SMART_ACTION_ATTACK_START = 49, //
SMART_ACTION_SUMMON_GO = 50, // GameObjectID, DespawnTime in ms,
SMART_ACTION_KILL_UNIT = 51, //
@@ -519,7 +519,7 @@ struct SmartAction
struct
{
uint32 sound;
- uint32 range;
+ uint32 onlySelf;
} sound;
struct
@@ -727,6 +727,11 @@ struct SmartAction
} summonGO;
struct
+ {
+ uint32 state;
+ } active;
+
+ struct
{
uint32 id;
} taxi;
@@ -827,6 +832,7 @@ struct SmartAction
struct
{
uint32 flag;
+ uint32 type;
} unitFlag;
struct
@@ -991,7 +997,8 @@ enum SMARTAI_TARGETS
SMART_TARGET_ACTION_INVOKER_VEHICLE = 22, // Unit's vehicle who caused this Event to occur
SMART_TARGET_OWNER_OR_SUMMONER = 23, // Unit's owner or summoner
SMART_TARGET_THREAT_LIST = 24, // All units on creature's threat list
- SMART_TARGET_END = 25
+ SMART_TARGET_CLOSEST_ENEMY = 25, // maxDist
+ SMART_TARGET_END = 26
};
struct SmartTarget
@@ -1075,6 +1082,11 @@ struct SmartTarget
struct
{
+ uint32 maxDist;
+ } closestAttackable;
+
+ struct
+ {
uint32 param1;
uint32 param2;
uint32 param3;
diff --git a/src/server/game/Accounts/AccountMgr.cpp b/src/server/game/Accounts/AccountMgr.cpp
index ea6d87b3946..a9f178685d9 100644
--- a/src/server/game/Accounts/AccountMgr.cpp
+++ b/src/server/game/Accounts/AccountMgr.cpp
@@ -439,7 +439,7 @@ void AccountMgr::LoadRBAC()
TC_LOG_DEBUG(LOG_FILTER_RBAC, "AccountMgr::LoadRBAC: Loading default groups");
// Load default groups to be added to any RBAC Object.
- std::string defaultGroups = ConfigMgr::GetStringDefault("RBAC.DefaultGroups", "");
+ std::string defaultGroups = sConfigMgr->GetStringDefault("RBAC.DefaultGroups", "");
Tokenizer tokens(defaultGroups, ',');
for (Tokenizer::const_iterator itr = tokens.begin(); itr != tokens.end(); ++itr)
if (uint32 groupId = atoi(*itr))
@@ -448,7 +448,7 @@ void AccountMgr::LoadRBAC()
void AccountMgr::UpdateAccountAccess(RBACData* rbac, uint32 accountId, uint8 securityLevel, int32 realmId)
{
- int32 serverRealmId = realmId != -1 ? realmId : ConfigMgr::GetIntDefault("RealmID", 0);
+ int32 serverRealmId = realmId != -1 ? realmId : sConfigMgr->GetIntDefault("RealmID", 0);
bool needDelete = false;
if (!rbac)
{
@@ -549,10 +549,9 @@ bool AccountMgr::HasPermission(uint32 accountId, uint32 permissionId, uint32 rea
return false;
}
- RBACData* rbac = new RBACData(accountId, "", realmId);
- rbac->LoadFromDB();
- bool hasPermission = rbac->HasPermission(permissionId);
- delete rbac;
+ RBACData rbac(accountId, "", realmId);
+ rbac.LoadFromDB();
+ bool hasPermission = rbac.HasPermission(permissionId);
TC_LOG_DEBUG(LOG_FILTER_RBAC, "AccountMgr::HasPermission [AccountId: %u, PermissionId: %u, realmId: %d]: %u",
accountId, permissionId, realmId, hasPermission);
diff --git a/src/server/game/Accounts/RBAC.cpp b/src/server/game/Accounts/RBAC.cpp
index bceae019eec..763b1584431 100644
--- a/src/server/game/Accounts/RBAC.cpp
+++ b/src/server/game/Accounts/RBAC.cpp
@@ -18,6 +18,7 @@
#include "RBAC.h"
#include "AccountMgr.h"
#include "DatabaseEnv.h"
+#include "Log.h"
void RBACRole::GrantPermission(uint32 permissionId)
{
diff --git a/src/server/game/Accounts/RBAC.h b/src/server/game/Accounts/RBAC.h
index 5a6514e5356..10f00c0a279 100644
--- a/src/server/game/Accounts/RBAC.h
+++ b/src/server/game/Accounts/RBAC.h
@@ -95,6 +95,7 @@ enum RBACPermissions
RBAC_PERM_SILENTLY_JOIN_CHANNEL = 45,
RBAC_PERM_CHANGE_CHANNEL_NOT_MODERATOR = 46,
RBAC_PERM_CHECK_FOR_LOWER_SECURITY = 47,
+ RBAC_PERM_COMMANDS_PINFO_CHECK_PERSONAL_DATA = 48,
RBAC_PERM_MAX
};
@@ -118,6 +119,8 @@ class RBACObject
RBACObject(uint32 id = 0, std::string const& name = ""):
_id(id), _name(name) { }
+ virtual ~RBACObject() { }
+
/// Gets the Name of the Object
std::string const& GetName() const { return _name; }
/// Gets the Id of the Object
@@ -210,7 +213,7 @@ class RBACData: public RBACObject
* }
* @endcode
*/
- bool HasPermission(uint32 permission) { return _globalPerms.test(permission); }
+ bool HasPermission(uint32 permission) const { return _globalPerms.test(permission); }
// Functions enabled to be used by command system
/// Returns all the granted permissions (after computation)
diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp
index b7b065a8b31..3d2eaffc15d 100644
--- a/src/server/game/Achievements/AchievementMgr.cpp
+++ b/src/server/game/Achievements/AchievementMgr.cpp
@@ -19,7 +19,6 @@
#include "AchievementMgr.h"
#include "ArenaTeam.h"
#include "ArenaTeamMgr.h"
-#include "BattlegroundAB.h"
#include "Battleground.h"
#include "CellImpl.h"
#include "Common.h"
@@ -329,7 +328,7 @@ bool AchievementCriteriaData::Meets(uint32 criteria_id, Player const* source, Un
return false;
return !target->HealthAbovePct(health.percent);
case ACHIEVEMENT_CRITERIA_DATA_TYPE_T_PLAYER_DEAD:
- if (target && !target->isAlive())
+ if (target && !target->IsAlive())
if (const Player* player = target->ToPlayer())
if (player->GetDeathTimer() != 0)
// flag set == must be same team, not set == different team
@@ -463,7 +462,7 @@ void AchievementMgr::ResetAchievementCriteria(AchievementCriteriaTypes type, uin
TC_LOG_DEBUG(LOG_FILTER_ACHIEVEMENTSYS, "AchievementMgr::ResetAchievementCriteria(%u, %u, %u)", type, miscvalue1, miscvalue2);
// disable for gamemasters with GM-mode enabled
- if (m_player->isGameMaster())
+ if (m_player->IsGameMaster())
return;
AchievementCriteriaEntryList const& achievementCriteriaList = sAchievementMgr->GetAchievementCriteriaByType(type);
@@ -773,7 +772,7 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui
TC_LOG_DEBUG(LOG_FILTER_ACHIEVEMENTSYS, "AchievementMgr::UpdateAchievementCriteria(%u, %u, %u)", type, miscValue1, miscValue2);
// disable for gamemasters with GM-mode enabled
- if (m_player->isGameMaster())
+ if (m_player->IsGameMaster())
return;
AchievementCriteriaEntryList const& achievementCriteriaList = sAchievementMgr->GetAchievementCriteriaByType(type);
@@ -1639,6 +1638,9 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui
bool AchievementMgr::IsCompletedCriteria(AchievementCriteriaEntry const* achievementCriteria, AchievementEntry const* achievement)
{
+ if (!achievement)
+ return false;
+
// counter can never complete
if (achievement->flags & ACHIEVEMENT_FLAG_COUNTER)
return false;
@@ -1951,8 +1953,11 @@ void AchievementMgr::SetCriteriaProgress(AchievementCriteriaEntry const* entry,
SendCriteriaUpdate(entry, progress, timeElapsed, timedCompleted);
}
-void AchievementMgr::RemoveCriteriaProgress(const AchievementCriteriaEntry* entry)
+void AchievementMgr::RemoveCriteriaProgress(AchievementCriteriaEntry const* entry)
{
+ if (!entry)
+ return;
+
CriteriaProgressMap::iterator criteriaProgress = m_criteriaProgress.find(entry->ID);
if (criteriaProgress == m_criteriaProgress.end())
return;
@@ -2033,7 +2038,7 @@ void AchievementMgr::RemoveTimedAchievement(AchievementCriteriaTimedTypes type,
void AchievementMgr::CompletedAchievement(AchievementEntry const* achievement)
{
// disable for gamemasters with GM-mode enabled
- if (m_player->isGameMaster())
+ if (m_player->IsGameMaster())
return;
if (achievement->flags & ACHIEVEMENT_FLAG_COUNTER || HasAchieved(achievement->ID))
@@ -2127,12 +2132,11 @@ void AchievementMgr::SendRespondInspectAchievements(Player* player) const
*/
void AchievementMgr::BuildAllDataPacket(WorldPacket* data) const
{
- AchievementEntry const* achievement = NULL;
for (CompletedAchievementMap::const_iterator iter = m_completedAchievements.begin(); iter != m_completedAchievements.end(); ++iter)
{
// Skip hidden achievements
- achievement = sAchievementMgr->GetAchievement(iter->first);
- if (achievement->flags & ACHIEVEMENT_FLAG_HIDDEN)
+ AchievementEntry const* achievement = sAchievementMgr->GetAchievement(iter->first);
+ if (!achievement || achievement->flags & ACHIEVEMENT_FLAG_HIDDEN)
continue;
*data << uint32(iter->first);
diff --git a/src/server/game/AuctionHouse/AuctionHouseMgr.cpp b/src/server/game/AuctionHouse/AuctionHouseMgr.cpp
index 9b98e99e326..8b994545536 100644
--- a/src/server/game/AuctionHouse/AuctionHouseMgr.cpp
+++ b/src/server/game/AuctionHouse/AuctionHouseMgr.cpp
@@ -253,6 +253,15 @@ void AuctionHouseMgr::LoadAuctionItems()
{
uint32 oldMSTime = getMSTime();
+ // need to clear in case we are reloading
+ if (!mAitems.empty())
+ {
+ for (ItemMap::iterator itr = mAitems.begin(); itr != mAitems.end(); ++itr)
+ delete itr->second;
+
+ mAitems.clear();
+ }
+
// data needs to be at first place for Item::LoadFromDB
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_AUCTION_ITEMS);
PreparedQueryResult result = CharacterDatabase.Query(stmt);
diff --git a/src/server/game/AuctionHouse/AuctionHouseMgr.h b/src/server/game/AuctionHouse/AuctionHouseMgr.h
index e0e972c5d40..4892821cb94 100644
--- a/src/server/game/AuctionHouse/AuctionHouseMgr.h
+++ b/src/server/game/AuctionHouse/AuctionHouseMgr.h
@@ -35,17 +35,21 @@ class WorldPacket;
enum AuctionError
{
ERR_AUCTION_OK = 0,
+ ERR_AUCTION_INVENTORY = 1,
ERR_AUCTION_DATABASE_ERROR = 2,
ERR_AUCTION_NOT_ENOUGHT_MONEY = 3,
ERR_AUCTION_ITEM_NOT_FOUND = 4,
- ERR_AUCTION_BID_OWN = 10
+ ERR_AUCTION_HIGHER_BID = 5,
+ ERR_AUCTION_BID_INCREMENT = 7,
+ ERR_AUCTION_BID_OWN = 10,
+ ERR_AUCTION_RESTRICTED_ACCOUNT = 13
};
enum AuctionAction
{
- AUCTION_SELL_ITEM = 0,
- AUCTION_CANCEL = 1,
- AUCTION_PLACE_BID = 2
+ AUCTION_SELL_ITEM = 0,
+ AUCTION_CANCEL = 1,
+ AUCTION_PLACE_BID = 2
};
enum MailAuctionAnswers
diff --git a/src/server/game/Battlefield/Battlefield.cpp b/src/server/game/Battlefield/Battlefield.cpp
index 9f04f0e3d3f..32fd55fb364 100644
--- a/src/server/game/Battlefield/Battlefield.cpp
+++ b/src/server/game/Battlefield/Battlefield.cpp
@@ -255,7 +255,7 @@ void Battlefield::InvitePlayerToWar(Player* player)
return;
/// @todo needed ?
- if (player->isInFlight())
+ if (player->IsInFlight())
return;
if (player->InArena() || player->GetBattleground())
@@ -517,7 +517,7 @@ void Battlefield::ShowNpc(Creature* creature, bool aggressive)
creature->SetPhaseMask(1, true);
creature->SetVisible(true);
creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
- if (!creature->isAlive())
+ if (!creature->IsAlive())
creature->Respawn(true);
if (aggressive)
creature->SetReactState(REACT_AGGRESSIVE);
diff --git a/src/server/game/Battlefield/Zones/BattlefieldWG.h b/src/server/game/Battlefield/Zones/BattlefieldWG.h
index d7f9aa66582..8bf68cb42fa 100644
--- a/src/server/game/Battlefield/Zones/BattlefieldWG.h
+++ b/src/server/game/Battlefield/Zones/BattlefieldWG.h
@@ -1481,6 +1481,7 @@ struct WGWorkshop
bf = _bf;
workshopId = _workshopId;
+ teamControl = BATTLEFIELD_WG_TEAM_NEUTRAL;
}
void GiveControlTo(uint8 team, bool init /* for first call in setup*/)
@@ -1629,7 +1630,7 @@ struct WintergraspWorkshopData
// Found associate graveyard and update it
if (m_Type < BATTLEFIELD_WG_WORKSHOP_KEEP_WEST)
- if (m_WG && m_WG->GetGraveyardById(m_Type))
+ if (m_WG->GetGraveyardById(m_Type))
m_WG->GetGraveyardById(m_Type)->GiveControlTo(TEAM_ALLIANCE);
m_TeamControl = team;
@@ -1667,7 +1668,7 @@ struct WintergraspWorkshopData
// Update graveyard control
if (m_Type < BATTLEFIELD_WG_WORKSHOP_KEEP_WEST)
- if (m_WG && m_WG->GetGraveyardById(m_Type))
+ if (m_WG->GetGraveyardById(m_Type))
m_WG->GetGraveyardById(m_Type)->GiveControlTo(TEAM_HORDE);
m_TeamControl = team;
diff --git a/src/server/game/Battlegrounds/ArenaTeam.cpp b/src/server/game/Battlegrounds/ArenaTeam.cpp
index 8ceeed90d92..a84e7ec30db 100644
--- a/src/server/game/Battlegrounds/ArenaTeam.cpp
+++ b/src/server/game/Battlegrounds/ArenaTeam.cpp
@@ -269,6 +269,19 @@ bool ArenaTeam::LoadMembersFromDB(QueryResult result)
return true;
}
+bool ArenaTeam::SetName(std::string const& name)
+{
+ if (TeamName == name || name.empty() || name.length() > 24 || sObjectMgr->IsReservedName(name) || !ObjectMgr::IsValidCharterName(name))
+ return false;
+
+ TeamName = name;
+ PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_ARENA_TEAM_NAME);
+ stmt->setString(0, TeamName);
+ stmt->setUInt32(1, GetId());
+ CharacterDatabase.Execute(stmt);
+ return true;
+}
+
void ArenaTeam::SetCaptain(uint64 guid)
{
// Disable remove/promote buttons
@@ -360,6 +373,29 @@ void ArenaTeam::Disband(WorldSession* session)
sArenaTeamMgr->RemoveArenaTeam(TeamId);
}
+void ArenaTeam::Disband()
+{
+ // Remove all members from arena team
+ while (!Members.empty())
+ DelMember(Members.front().Guid, false);
+
+ // Update database
+ SQLTransaction trans = CharacterDatabase.BeginTransaction();
+
+ PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ARENA_TEAM);
+ stmt->setUInt32(0, TeamId);
+ trans->Append(stmt);
+
+ stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ARENA_TEAM_MEMBERS);
+ stmt->setUInt32(0, TeamId);
+ trans->Append(stmt);
+
+ CharacterDatabase.CommitTransaction(trans);
+
+ // Remove arena team from ObjectMgr
+ sArenaTeamMgr->RemoveArenaTeam(TeamId);
+}
+
void ArenaTeam::Roster(WorldSession* session)
{
Player* player = NULL;
@@ -367,31 +403,31 @@ void ArenaTeam::Roster(WorldSession* session)
uint8 unk308 = 0;
WorldPacket data(SMSG_ARENA_TEAM_ROSTER, 100);
- data << uint32(GetId()); // team id
- data << uint8(unk308); // 308 unknown value but affect packet structure
- data << uint32(GetMembersSize()); // members count
- data << uint32(GetType()); // arena team type?
+ data << uint32(GetId()); // team id
+ data << uint8(unk308); // 3.0.8 unknown value but affect packet structure
+ data << uint32(GetMembersSize()); // members count
+ data << uint32(GetType()); // arena team type?
for (MemberList::const_iterator itr = Members.begin(); itr != Members.end(); ++itr)
{
player = ObjectAccessor::FindPlayer(itr->Guid);
- data << uint64(itr->Guid); // guid
+ data << uint64(itr->Guid); // guid
data << uint8((player ? 1 : 0)); // online flag
- data << itr->Name; // member name
- data << uint32((itr->Guid == GetCaptain() ? 0 : 1));// captain flag 0 captain 1 member
- data << uint8((player ? player->getLevel() : 0)); // unknown, level?
- data << uint8(itr->Class); // class
- data << uint32(itr->WeekGames); // played this week
- data << uint32(itr->WeekWins); // wins this week
- data << uint32(itr->SeasonGames); // played this season
- data << uint32(itr->SeasonWins); // wins this season
- data << uint32(itr->PersonalRating); // personal rating
- if (unk308)
- {
- data << float(0.0f); // 308 unk
- data << float(0.0f); // 308 unk
- }
+ data << itr->Name; // member name
+ data << uint32((itr->Guid == GetCaptain() ? 0 : 1)); // captain flag 0 captain 1 member
+ data << uint8((player ? player->getLevel() : 0)); // unknown, level?
+ data << uint8(itr->Class); // class
+ data << uint32(itr->WeekGames); // played this week
+ data << uint32(itr->WeekWins); // wins this week
+ data << uint32(itr->SeasonGames); // played this season
+ data << uint32(itr->SeasonWins); // wins this season
+ data << uint32(itr->PersonalRating); // personal rating
+ //if (unk308)
+ //{
+ // data << float(0.0f); // 308 unk
+ // data << float(0.0f); // 308 unk
+ //}
}
session->SendPacket(&data);
diff --git a/src/server/game/Battlegrounds/ArenaTeam.h b/src/server/game/Battlegrounds/ArenaTeam.h
index 7a1d9fa131c..0d37351583d 100644
--- a/src/server/game/Battlegrounds/ArenaTeam.h
+++ b/src/server/game/Battlegrounds/ArenaTeam.h
@@ -121,6 +121,7 @@ class ArenaTeam
bool Create(uint64 captainGuid, uint8 type, std::string const& teamName, uint32 backgroundColor, uint8 emblemStyle, uint32 emblemColor, uint8 borderStyle, uint32 borderColor);
void Disband(WorldSession* session);
+ void Disband();
typedef std::list<ArenaTeamMember> MemberList;
@@ -136,6 +137,7 @@ class ArenaTeam
uint32 GetAverageMMR(Group* group) const;
void SetCaptain(uint64 guid);
+ bool SetName(std::string const& name);
bool AddMember(uint64 PlayerGuid);
// Shouldn't be uint64 ed, because than can reference guid from members on Disband
diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp
index 54df2d6cc27..21c054c8793 100644
--- a/src/server/game/Battlegrounds/Battleground.cpp
+++ b/src/server/game/Battlegrounds/Battleground.cpp
@@ -524,11 +524,11 @@ inline void Battleground::_ProcessJoin(uint32 diff)
BattlegroundQueueTypeId bgQueueTypeId = sBattlegroundMgr->BGQueueTypeId(m_TypeID, GetArenaType());
uint32 queueSlot = player->GetBattlegroundQueueIndex(bgQueueTypeId);
sBattlegroundMgr->BuildBattlegroundStatusPacket(&status, this, queueSlot, STATUS_IN_PROGRESS, 0, GetStartTime(), GetArenaType(), player->GetBGTeam());
- player->GetSession()->SendPacket(&status);
+ player->SendDirectMessage(&status);
player->RemoveAurasDueToSpell(SPELL_ARENA_PREPARATION);
player->ResetAllPowers();
- if (!player->isGameMaster())
+ if (!player->IsGameMaster())
{
// remove auras with duration lower than 30s
Unit::AuraApplicationMap & auraMap = player->GetAppliedAuras();
@@ -639,20 +639,19 @@ void Battleground::SendPacketToAll(WorldPacket* packet)
{
for (BattlegroundPlayerMap::const_iterator itr = m_Players.begin(); itr != m_Players.end(); ++itr)
if (Player* player = _GetPlayer(itr, "SendPacketToAll"))
- player->GetSession()->SendPacket(packet);
+ player->SendDirectMessage(packet);
}
void Battleground::SendPacketToTeam(uint32 TeamID, WorldPacket* packet, Player* sender, bool self)
{
for (BattlegroundPlayerMap::const_iterator itr = m_Players.begin(); itr != m_Players.end(); ++itr)
+ {
if (Player* player = _GetPlayerForTeam(TeamID, itr, "SendPacketToTeam"))
+ {
if (self || sender != player)
- {
- WorldSession* session = player->GetSession();
- TC_LOG_DEBUG(LOG_FILTER_BATTLEGROUND, "%s %s - SendPacketToTeam %u, Player: %s", GetOpcodeNameForLogging(packet->GetOpcode()).c_str(),
- session->GetPlayerInfo().c_str(), TeamID, sender ? sender->GetName().c_str() : "null");
- session->SendPacket(packet);
- }
+ player->SendDirectMessage(packet);
+ }
+ }
}
void Battleground::PlaySoundToAll(uint32 SoundID)
@@ -669,7 +668,7 @@ void Battleground::PlaySoundToTeam(uint32 SoundID, uint32 TeamID)
if (Player* player = _GetPlayerForTeam(TeamID, itr, "PlaySoundToTeam"))
{
sBattlegroundMgr->BuildPlaySoundPacket(&data, SoundID);
- player->GetSession()->SendPacket(&data);
+ player->SendDirectMessage(&data);
}
}
@@ -694,7 +693,7 @@ void Battleground::YellToAll(Creature* creature, char const* text, uint32 langua
{
WorldPacket data(SMSG_MESSAGECHAT, 200);
creature->BuildMonsterChat(&data, CHAT_MSG_MONSTER_YELL, text, language, creature->GetName(), itr->first);
- player->GetSession()->SendPacket(&data);
+ player->SendDirectMessage(&data);
}
}
@@ -720,11 +719,11 @@ void Battleground::UpdateWorldState(uint32 Field, uint32 Value)
SendPacketToAll(&data);
}
-void Battleground::UpdateWorldStateForPlayer(uint32 Field, uint32 Value, Player* Source)
+void Battleground::UpdateWorldStateForPlayer(uint32 field, uint32 value, Player* player)
{
WorldPacket data;
- sBattlegroundMgr->BuildUpdateWorldStatePacket(&data, Field, Value);
- Source->GetSession()->SendPacket(&data);
+ sBattlegroundMgr->BuildUpdateWorldStatePacket(&data, field, value);
+ player->SendDirectMessage(&data);
}
void Battleground::EndBattleground(uint32 winner)
@@ -851,10 +850,10 @@ void Battleground::EndBattleground(uint32 winner)
player->RemoveAurasByType(SPELL_AURA_MOD_SHAPESHIFT);
// Last standing - Rated 5v5 arena & be solely alive player
- if (team == winner && isArena() && isRated() && GetArenaType() == ARENA_TYPE_5v5 && aliveWinners == 1 && player->isAlive())
+ if (team == winner && isArena() && isRated() && GetArenaType() == ARENA_TYPE_5v5 && aliveWinners == 1 && player->IsAlive())
player->CastSpell(player, SPELL_THE_LAST_STANDING, true);
- if (!player->isAlive())
+ if (!player->IsAlive())
{
player->ResurrectPlayer(1.0f);
player->SpawnCorpseBones();
@@ -916,11 +915,11 @@ void Battleground::EndBattleground(uint32 winner)
BlockMovement(player);
- player->GetSession()->SendPacket(&pvpLogData);
+ player->SendDirectMessage(&pvpLogData);
WorldPacket data;
sBattlegroundMgr->BuildBattlegroundStatusPacket(&data, this, player->GetBattlegroundQueueIndex(bgQueueTypeId), STATUS_IN_PROGRESS, TIME_TO_AUTOREMOVE, GetStartTime(), GetArenaType(), player->GetBGTeam());
- player->GetSession()->SendPacket(&data);
+ player->SendDirectMessage(&data);
player->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_BATTLEGROUND, 1);
}
@@ -982,7 +981,7 @@ void Battleground::RemovePlayerAtLeave(uint64 guid, bool Transport, bool SendPac
if (player->HasAuraType(SPELL_AURA_SPIRIT_OF_REDEMPTION))
player->RemoveAurasByType(SPELL_AURA_MOD_SHAPESHIFT);
- if (!player->isAlive()) // resurrect on exit
+ if (!player->IsAlive()) // resurrect on exit
{
player->ResurrectPlayer(1.0f);
player->SpawnCorpseBones();
@@ -1023,7 +1022,7 @@ void Battleground::RemovePlayerAtLeave(uint64 guid, bool Transport, bool SendPac
{
WorldPacket data;
sBattlegroundMgr->BuildBattlegroundStatusPacket(&data, this, player->GetBattlegroundQueueIndex(bgQueueTypeId), STATUS_NONE, 0, 0, 0, 0);
- player->GetSession()->SendPacket(&data);
+ player->SendDirectMessage(&data);
}
// this call is important, because player, when joins to battleground, this method is not called, so it must be called when leaving bg
@@ -1425,6 +1424,29 @@ void Battleground::RemovePlayerFromResurrectQueue(uint64 player_guid)
}
}
+void Battleground::RelocateDeadPlayers(uint64 queueIndex)
+{
+ // Those who are waiting to resurrect at this node are taken to the closest own node's graveyard
+ std::vector<uint64>& ghostList = m_ReviveQueue[queueIndex];
+ if (!ghostList.empty())
+ {
+ WorldSafeLocsEntry const* closestGrave = NULL;
+ for (std::vector<uint64>::const_iterator itr = ghostList.begin(); itr != ghostList.end(); ++itr)
+ {
+ Player* player = ObjectAccessor::FindPlayer(*itr);
+ if (!player)
+ continue;
+
+ if (!closestGrave)
+ closestGrave = GetClosestGraveYard(player);
+
+ if (closestGrave)
+ player->TeleportTo(GetMapId(), closestGrave->x, closestGrave->y, closestGrave->z, player->GetOrientation());
+ }
+ ghostList.clear();
+ }
+}
+
bool Battleground::AddObject(uint32 type, uint32 entry, float x, float y, float z, float o, float rotation0, float rotation1, float rotation2, float rotation3, uint32 /*respawnTime*/)
{
// If the assert is called, means that BgObjects must be resized!
@@ -1704,8 +1726,7 @@ void Battleground::SendWarningToAll(int32 entry, ...)
data << (uint8)0;
for (BattlegroundPlayerMap::const_iterator itr = m_Players.begin(); itr != m_Players.end(); ++itr)
if (Player* player = ObjectAccessor::FindPlayer(MAKE_NEW_GUID(itr->first, 0, HIGHGUID_PLAYER)))
- if (player->GetSession())
- player->GetSession()->SendPacket(&data);
+ player->SendDirectMessage(&data);
}
void Battleground::SendMessage2ToAll(int32 entry, ChatMsg type, Player const* source, int32 arg1, int32 arg2)
@@ -1837,10 +1858,10 @@ void Battleground::PlayerAddedToBGCheckIfBGIsRunning(Player* player)
BlockMovement(player);
sBattlegroundMgr->BuildPvpLogDataPacket(&data, this);
- player->GetSession()->SendPacket(&data);
+ player->SendDirectMessage(&data);
sBattlegroundMgr->BuildBattlegroundStatusPacket(&data, this, player->GetBattlegroundQueueIndex(bgQueueTypeId), STATUS_IN_PROGRESS, GetEndTime(), GetStartTime(), GetArenaType(), player->GetBGTeam());
- player->GetSession()->SendPacket(&data);
+ player->SendDirectMessage(&data);
}
uint32 Battleground::GetAlivePlayersCountByTeam(uint32 Team) const
@@ -1851,7 +1872,7 @@ uint32 Battleground::GetAlivePlayersCountByTeam(uint32 Team) const
if (itr->second.Team == Team)
{
Player* player = ObjectAccessor::FindPlayer(itr->first);
- if (player && player->isAlive() && !player->HasByteFlag(UNIT_FIELD_BYTES_2, 3, FORM_SPIRITOFREDEMPTION))
+ if (player && player->IsAlive() && !player->HasByteFlag(UNIT_FIELD_BYTES_2, 3, FORM_SPIRITOFREDEMPTION))
++count;
}
}
@@ -1944,3 +1965,9 @@ void Battleground::HandleAreaTrigger(Player* player, uint32 trigger)
TC_LOG_DEBUG(LOG_FILTER_BATTLEGROUND, "Unhandled AreaTrigger %u in Battleground %u. Player coords (x: %f, y: %f, z: %f)",
trigger, player->GetMapId(), player->GetPositionX(), player->GetPositionY(), player->GetPositionZ());
}
+
+bool Battleground::CheckAchievementCriteriaMeet(uint32 criteriaId, Player const* /*source*/, Unit const* /*target*/, uint32 /*miscvalue1*/)
+{
+ TC_LOG_ERROR(LOG_FILTER_BATTLEGROUND, "Battleground::CheckAchievementCriteriaMeet: No implementation for criteria %u", criteriaId);
+ return false;
+}
diff --git a/src/server/game/Battlegrounds/Battleground.h b/src/server/game/Battlegrounds/Battleground.h
index dd8fbb6710c..1f180542016 100644
--- a/src/server/game/Battlegrounds/Battleground.h
+++ b/src/server/game/Battlegrounds/Battleground.h
@@ -27,12 +27,23 @@ class Creature;
class GameObject;
class Group;
class Player;
+class Unit;
class WorldPacket;
class BattlegroundMap;
struct PvPDifficultyEntry;
struct WorldSafeLocsEntry;
+enum BattlegroundCriteriaId
+{
+ BG_CRITERIA_CHECK_RESILIENT_VICTORY,
+ BG_CRITERIA_CHECK_SAVE_THE_DAY,
+ BG_CRITERIA_CHECK_EVERYTHING_COUNTS,
+ BG_CRITERIA_CHECK_AV_PERFECTION,
+ BG_CRITERIA_CHECK_DEFENSE_OF_THE_ANCIENTS,
+ BG_CRITERIA_CHECK_NOT_EVEN_A_SCRATCH,
+};
+
enum BattlegroundSounds
{
SOUND_HORDE_WINS = 8454,
@@ -289,8 +300,9 @@ class Battleground
virtual void DestroyGate(Player* /*player*/, GameObject* /*go*/) {}
/* achievement req. */
- virtual bool IsAllNodesConrolledByTeam(uint32 /*team*/) const { return false; }
+ virtual bool IsAllNodesControlledByTeam(uint32 /*team*/) const { return false; }
void StartTimedAchievement(AchievementCriteriaTimedTypes type, uint32 entry);
+ virtual bool CheckAchievementCriteriaMeet(uint32 /*criteriaId*/, Player const* /*player*/, Unit const* /*target*/ = NULL, uint32 /*miscvalue1*/ = 0);
/* Battleground */
// Get methods:
@@ -375,6 +387,9 @@ class Battleground
void AddPlayerToResurrectQueue(uint64 npc_guid, uint64 player_guid);
void RemovePlayerFromResurrectQueue(uint64 player_guid);
+ /// Relocate all players in ReviveQueue to the closest graveyard
+ void RelocateDeadPlayers(uint64 queueIndex);
+
void StartBattleground();
GameObject* GetBGObject(uint32 type);
@@ -419,7 +434,7 @@ class Battleground
void RewardHonorToTeam(uint32 Honor, uint32 TeamID);
void RewardReputationToTeam(uint32 faction_id, uint32 Reputation, uint32 TeamID);
void UpdateWorldState(uint32 Field, uint32 Value);
- void UpdateWorldStateForPlayer(uint32 Field, uint32 Value, Player* Source);
+ void UpdateWorldStateForPlayer(uint32 Field, uint32 Value, Player* player);
void EndBattleground(uint32 winner);
void BlockMovement(Player* player);
@@ -434,7 +449,7 @@ class Battleground
Group* GetBgRaid(uint32 TeamID) const { return TeamID == ALLIANCE ? m_BgRaids[TEAM_ALLIANCE] : m_BgRaids[TEAM_HORDE]; }
void SetBgRaid(uint32 TeamID, Group* bg_raid);
- virtual void UpdatePlayerScore(Player* Source, uint32 type, uint32 value, bool doAddHonor = true);
+ virtual void UpdatePlayerScore(Player* player, uint32 type, uint32 value, bool doAddHonor = true);
static TeamId GetTeamIndexByTeamId(uint32 Team) { return Team == ALLIANCE ? TEAM_ALLIANCE : TEAM_HORDE; }
uint32 GetPlayersCountByTeam(uint32 Team) const { return m_PlayersCount[GetTeamIndexByTeamId(Team)]; }
@@ -463,7 +478,7 @@ class Battleground
// Triggers handle
// must be implemented in BG subclass
- virtual void HandleAreaTrigger(Player* /*Source*/, uint32 /*Trigger*/);
+ virtual void HandleAreaTrigger(Player* /*player*/, uint32 /*Trigger*/);
// must be implemented in BG subclass if need AND call base class generic code
virtual void HandleKillPlayer(Player* player, Player* killer);
virtual void HandleKillUnit(Creature* /*unit*/, Player* /*killer*/);
@@ -527,6 +542,9 @@ class Battleground
virtual uint64 GetFlagPickerGUID(int32 /*team*/ = -1) const { return 0; }
virtual void SetDroppedFlagGUID(uint64 /*guid*/, int32 /*team*/ = -1) {}
+ virtual void HandleQuestComplete(uint32 /*questid*/, Player* /*player*/) {}
+ virtual bool CanActivateGO(int32 /*entry*/, uint32 /*team*/) const { return true; }
+ virtual bool IsSpellAllowed(uint32 /*spellId*/, Player const* /*player*/) const { return true; }
uint32 GetTeamScore(uint32 TeamID) const;
virtual uint32 GetPrematureWinner();
diff --git a/src/server/game/Battlegrounds/BattlegroundMgr.cpp b/src/server/game/Battlegrounds/BattlegroundMgr.cpp
index db1956ef0a4..efd7e0f3d73 100644
--- a/src/server/game/Battlegrounds/BattlegroundMgr.cpp
+++ b/src/server/game/Battlegrounds/BattlegroundMgr.cpp
@@ -327,6 +327,7 @@ void BattlegroundMgr::BuildPvpLogDataPacket(WorldPacket* data, Battleground* bg)
*data << uint32(0);
break;
}
+ break;
case BATTLEGROUND_AV:
*data << uint32(0x00000005); // count of next fields
*data << uint32(((BattlegroundAVScore*)itr2->second)->GraveyardsAssaulted); // GraveyardsAssaulted
@@ -517,6 +518,7 @@ Battleground* BattlegroundMgr::CreateNewBattleground(BattlegroundTypeId original
{
case BATTLEGROUND_RB:
isRandom = true;
+ /// Intentional fallback, "All Arenas" is random too
case BATTLEGROUND_AA:
bgTypeId = GetRandomBG(originalBgTypeId);
break;
@@ -1031,7 +1033,7 @@ void BattlegroundMgr::ScheduleQueueUpdate(uint32 arenaMatchmakerRating, uint8 ar
{
//This method must be atomic, @todo add mutex
//we will use only 1 number created of bgTypeId and bracket_id
- uint64 const scheduleId = ((uint64)arenaMatchmakerRating << 32) | (arenaType << 24) | (bgQueueTypeId << 16) | (bgTypeId << 8) | bracket_id;
+ uint64 const scheduleId = ((uint64)arenaMatchmakerRating << 32) | (uint32(arenaType) << 24) | (bgQueueTypeId << 16) | (bgTypeId << 8) | bracket_id;
if (std::find(m_QueueUpdateScheduler.begin(), m_QueueUpdateScheduler.end(), scheduleId) == m_QueueUpdateScheduler.end())
m_QueueUpdateScheduler.push_back(scheduleId);
}
diff --git a/src/server/game/Battlegrounds/BattlegroundQueue.cpp b/src/server/game/Battlegrounds/BattlegroundQueue.cpp
index 1dc9189d80c..e52d64a4f72 100644
--- a/src/server/game/Battlegrounds/BattlegroundQueue.cpp
+++ b/src/server/game/Battlegrounds/BattlegroundQueue.cpp
@@ -171,7 +171,7 @@ GroupQueueInfo* BattlegroundQueue::AddGroup(Player* leader, Group* grp, Battlegr
{
for (GroupReference* itr = grp->GetFirstMember(); itr != NULL; itr = itr->next())
{
- Player* member = itr->getSource();
+ Player* member = itr->GetSource();
if (!member)
continue; // this should never happen
PlayerQueueInfo& pl_info = m_QueuedPlayers[member->GetGUID()];
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundAB.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundAB.cpp
index f986a52e3c9..da292d050e9 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundAB.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundAB.cpp
@@ -111,23 +111,28 @@ void BattlegroundAB::PostUpdateImpl(uint32 diff)
int points = team_points[team];
if (!points)
continue;
+
m_lastTick[team] += diff;
+
if (m_lastTick[team] > BG_AB_TickIntervals[points])
{
m_lastTick[team] -= BG_AB_TickIntervals[points];
m_TeamScores[team] += BG_AB_TickPoints[points];
m_HonorScoreTics[team] += BG_AB_TickPoints[points];
m_ReputationScoreTics[team] += BG_AB_TickPoints[points];
+
if (m_ReputationScoreTics[team] >= m_ReputationTics)
{
(team == TEAM_ALLIANCE) ? RewardReputationToTeam(509, 10, ALLIANCE) : RewardReputationToTeam(510, 10, HORDE);
m_ReputationScoreTics[team] -= m_ReputationTics;
}
+
if (m_HonorScoreTics[team] >= m_HonorTics)
{
RewardHonorToTeam(GetBonusHonorFromKill(1), (team == TEAM_ALLIANCE) ? ALLIANCE : HORDE);
m_HonorScoreTics[team] -= m_HonorTics;
}
+
if (!m_IsInformedNearVictory && m_TeamScores[team] > BG_AB_WARNING_NEAR_VICTORY_SCORE)
{
if (team == TEAM_ALLIANCE)
@@ -140,9 +145,10 @@ void BattlegroundAB::PostUpdateImpl(uint32 diff)
if (m_TeamScores[team] > BG_AB_MAX_TEAM_SCORE)
m_TeamScores[team] = BG_AB_MAX_TEAM_SCORE;
+
if (team == TEAM_ALLIANCE)
UpdateWorldState(BG_AB_OP_RESOURCES_ALLY, m_TeamScores[team]);
- if (team == TEAM_HORDE)
+ else if (team == TEAM_HORDE)
UpdateWorldState(BG_AB_OP_RESOURCES_HORDE, m_TeamScores[team]);
// update achievement flags
// we increased m_TeamScores[team] so we just need to check if it is 500 more than other teams resources
@@ -155,7 +161,7 @@ void BattlegroundAB::PostUpdateImpl(uint32 diff)
// Test win condition
if (m_TeamScores[TEAM_ALLIANCE] >= BG_AB_MAX_TEAM_SCORE)
EndBattleground(ALLIANCE);
- if (m_TeamScores[TEAM_HORDE] >= BG_AB_MAX_TEAM_SCORE)
+ else if (m_TeamScores[TEAM_HORDE] >= BG_AB_MAX_TEAM_SCORE)
EndBattleground(HORDE);
}
}
@@ -359,21 +365,19 @@ void BattlegroundAB::_NodeOccupied(uint8 node, Team team)
if (!AddSpiritGuide(node, BG_AB_SpiritGuidePos[node][0], BG_AB_SpiritGuidePos[node][1], BG_AB_SpiritGuidePos[node][2], BG_AB_SpiritGuidePos[node][3], team))
TC_LOG_ERROR(LOG_FILTER_BATTLEGROUND, "Failed to spawn spirit guide! point: %u, team: %u, ", node, team);
+ if (node >= BG_AB_DYNAMIC_NODES_COUNT)//only dynamic nodes, no start points
+ return;
+
uint8 capturedNodes = 0;
for (uint8 i = 0; i < BG_AB_DYNAMIC_NODES_COUNT; ++i)
- {
- if (m_Nodes[node] == GetTeamIndexByTeamId(team) + BG_AB_NODE_TYPE_OCCUPIED && !m_NodeTimers[i])
+ if (m_Nodes[i] == GetTeamIndexByTeamId(team) + BG_AB_NODE_TYPE_OCCUPIED && !m_NodeTimers[i])
++capturedNodes;
- }
if (capturedNodes >= 5)
CastSpellOnTeam(SPELL_AB_QUEST_REWARD_5_BASES, team);
if (capturedNodes >= 4)
CastSpellOnTeam(SPELL_AB_QUEST_REWARD_4_BASES, team);
- if (node >= BG_AB_DYNAMIC_NODES_COUNT)//only dynamic nodes, no start points
- return;
-
Creature* trigger = BgCreatures[node+7] ? GetBGCreature(node+7) : NULL;//0-6 spirit guides
if (!trigger)
trigger = AddCreature(WORLD_TRIGGER, node+7, team, BG_AB_NodePositions[node][0], BG_AB_NodePositions[node][1], BG_AB_NodePositions[node][2], BG_AB_NodePositions[node][3]);
@@ -397,27 +401,9 @@ void BattlegroundAB::_NodeDeOccupied(uint8 node)
if (node < BG_AB_DYNAMIC_NODES_COUNT)//only dynamic nodes, no start points
DelCreature(node+7);//NULL checks are in DelCreature! 0-6 spirit guides
- // Those who are waiting to resurrect at this node are taken to the closest own node's graveyard
- std::vector<uint64> ghost_list = m_ReviveQueue[BgCreatures[node]];
- if (!ghost_list.empty())
- {
- WorldSafeLocsEntry const* ClosestGrave = NULL;
- for (std::vector<uint64>::const_iterator itr = ghost_list.begin(); itr != ghost_list.end(); ++itr)
- {
- Player* player = ObjectAccessor::FindPlayer(*itr);
- if (!player)
- continue;
-
- if (!ClosestGrave) // cache
- ClosestGrave = GetClosestGraveYard(player);
-
- if (ClosestGrave)
- player->TeleportTo(GetMapId(), ClosestGrave->x, ClosestGrave->y, ClosestGrave->z, player->GetOrientation());
- }
- }
+ RelocateDeadPlayers(BgCreatures[node]);
- if (BgCreatures[node])
- DelCreature(node);
+ DelCreature(node);
// buff object isn't despawned
}
@@ -715,7 +701,7 @@ void BattlegroundAB::UpdatePlayerScore(Player* Source, uint32 type, uint32 value
}
}
-bool BattlegroundAB::IsAllNodesConrolledByTeam(uint32 team) const
+bool BattlegroundAB::IsAllNodesControlledByTeam(uint32 team) const
{
uint32 count = 0;
for (int i = 0; i < BG_AB_DYNAMIC_NODES_COUNT; ++i)
@@ -725,3 +711,14 @@ bool BattlegroundAB::IsAllNodesConrolledByTeam(uint32 team) const
return count == BG_AB_DYNAMIC_NODES_COUNT;
}
+
+bool BattlegroundAB::CheckAchievementCriteriaMeet(uint32 criteriaId, Player const* player, Unit const* target, uint32 miscvalue)
+{
+ switch (criteriaId)
+ {
+ case BG_CRITERIA_CHECK_RESILIENT_VICTORY:
+ return m_TeamScores500Disadvantage[GetTeamIndexByTeamId(player->GetTeam())];
+ }
+
+ return Battleground::CheckAchievementCriteriaMeet(criteriaId, player, target, miscvalue);
+}
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundAB.h b/src/server/game/Battlegrounds/Zones/BattlegroundAB.h
index 3467cf56ba6..81a2e899634 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundAB.h
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundAB.h
@@ -270,8 +270,8 @@ class BattlegroundAB : public Battleground
void EventPlayerClickedOnFlag(Player* source, GameObject* target_obj);
/* achievement req. */
- bool IsAllNodesConrolledByTeam(uint32 team) const; // overwrited
- bool IsTeamScores500Disadvantage(uint32 team) const { return m_TeamScores500Disadvantage[GetTeamIndexByTeamId(team)]; }
+ bool IsAllNodesControlledByTeam(uint32 team) const;
+ bool CheckAchievementCriteriaMeet(uint32 /*criteriaId*/, Player const* /*player*/, Unit const* /*target*/ = NULL, uint32 /*miscvalue1*/ = 0);
uint32 GetPrematureWinner();
private:
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp
index 5dc20ab8f07..3be95a86ca8 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp
@@ -445,7 +445,7 @@ void BattlegroundAV::StartingEventOpenDoors()
DoorOpen(BG_AV_OBJECT_DOOR_A);
// Achievement: The Alterac Blitz
- StartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, AV_EVENT_START_BATTLE);
+ StartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, BG_AV_EVENT_START_BATTLE);
}
void BattlegroundAV::AddPlayer(Player* player)
@@ -733,7 +733,7 @@ void BattlegroundAV::ChangeMineOwner(uint8 mine, uint32 team, bool initial)
return;
}
-bool BattlegroundAV::PlayerCanDoMineQuest(int32 GOId, uint32 team)
+bool BattlegroundAV::CanActivateGO(int32 GOId, uint32 team) const
{
if (GOId == BG_AV_OBJECTID_MINE_N)
return (m_Mine_Owner[AV_NORTH_MINE] == team);
@@ -1049,25 +1049,8 @@ void BattlegroundAV::EventPlayerAssaultsPoint(Player* player, uint32 object)
//spawning/despawning of aura
SpawnBGObject(BG_AV_OBJECT_AURA_N_FIRSTAID_STATION+3*node, RESPAWN_IMMEDIATELY); //neutral aura spawn
SpawnBGObject(BG_AV_OBJECT_AURA_A_FIRSTAID_STATION+GetTeamIndexByTeamId(owner)+3*node, RESPAWN_ONE_DAY); //teeamaura despawn
- // Those who are waiting to resurrect at this object are taken to the closest own object's graveyard
- std::vector<uint64> ghost_list = m_ReviveQueue[BgCreatures[node]];
- if (!ghost_list.empty())
- {
- Player* waitingPlayer; // player waiting at graveyard for resurrection
- WorldSafeLocsEntry const* closestGrave = NULL;
- for (std::vector<uint64>::iterator itr = ghost_list.begin(); itr != ghost_list.end(); ++itr)
- {
- waitingPlayer = ObjectAccessor::FindPlayer(*ghost_list.begin());
- if (!waitingPlayer)
- continue;
- if (!closestGrave)
- closestGrave = GetClosestGraveYard(waitingPlayer);
- else
- waitingPlayer->TeleportTo(GetMapId(), closestGrave->x, closestGrave->y, closestGrave->z, player->GetOrientation());
- }
- m_ReviveQueue[BgCreatures[node]].clear();
- }
+ RelocateDeadPlayers(BgCreatures[node]);
}
DePopulateNode(node);
}
@@ -1638,63 +1621,67 @@ void BattlegroundAV::ResetBGSubclass()
DelCreature(i);
}
-bool BattlegroundAV::IsBothMinesControlledByTeam(uint32 team) const
+bool BattlegroundAV::CheckAchievementCriteriaMeet(uint32 criteriaId, Player const* source, Unit const* target, uint32 miscValue)
{
- for (uint8 mine = 0; mine < 2; mine++)
- if (m_Mine_Owner[mine] != team)
- return false;
-
- return true;
-}
-
-bool BattlegroundAV::IsAllTowersControlledAndCaptainAlive(uint32 team) const
-{
- if (team == ALLIANCE)
+ uint8 team = source->GetTeam();
+ switch (criteriaId)
{
- for (BG_AV_Nodes i = BG_AV_NODES_DUNBALDAR_SOUTH; i <= BG_AV_NODES_STONEHEART_BUNKER; ++i) // alliance towers controlled
- {
- if (m_Nodes[i].State == POINT_CONTROLED)
- {
- if (m_Nodes[i].Owner != ALLIANCE)
+ case BG_CRITERIA_CHECK_EVERYTHING_COUNTS:
+ for (uint8 mine = 0; mine < 2; mine++)
+ if (m_Mine_Owner[mine] != team)
return false;
- }
- else
- return false;
- }
- for (BG_AV_Nodes i = BG_AV_NODES_ICEBLOOD_TOWER; i <= BG_AV_NODES_FROSTWOLF_WTOWER; ++i) // horde towers destroyed
- if (m_Nodes[i].State != POINT_DESTROYED)
- return false;
-
- if (!m_CaptainAlive[0])
- return false;
-
- return true;
- }
- else if (team == HORDE)
- {
- for (BG_AV_Nodes i = BG_AV_NODES_ICEBLOOD_TOWER; i <= BG_AV_NODES_FROSTWOLF_WTOWER; ++i) // horde towers controlled
+ return true;
+ case BG_CRITERIA_CHECK_AV_PERFECTION:
{
- if (m_Nodes[i].State == POINT_CONTROLED)
+ if (team == ALLIANCE)
{
- if (m_Nodes[i].Owner != HORDE)
+ for (BG_AV_Nodes i = BG_AV_NODES_DUNBALDAR_SOUTH; i <= BG_AV_NODES_STONEHEART_BUNKER; ++i) // alliance towers controlled
+ {
+ if (m_Nodes[i].State == POINT_CONTROLED)
+ {
+ if (m_Nodes[i].Owner != ALLIANCE)
+ return false;
+ }
+ else
+ return false;
+ }
+
+ for (BG_AV_Nodes i = BG_AV_NODES_ICEBLOOD_TOWER; i <= BG_AV_NODES_FROSTWOLF_WTOWER; ++i) // horde towers destroyed
+ if (m_Nodes[i].State != POINT_DESTROYED)
+ return false;
+
+ if (!m_CaptainAlive[0])
return false;
+
+ return true;
}
- else
- return false;
- }
+ else if (team == HORDE)
+ {
+ for (BG_AV_Nodes i = BG_AV_NODES_ICEBLOOD_TOWER; i <= BG_AV_NODES_FROSTWOLF_WTOWER; ++i) // horde towers controlled
+ {
+ if (m_Nodes[i].State == POINT_CONTROLED)
+ {
+ if (m_Nodes[i].Owner != HORDE)
+ return false;
+ }
+ else
+ return false;
+ }
- for (BG_AV_Nodes i = BG_AV_NODES_DUNBALDAR_SOUTH; i <= BG_AV_NODES_STONEHEART_BUNKER; ++i) // alliance towers destroyed
- if (m_Nodes[i].State != POINT_DESTROYED)
- return false;
+ for (BG_AV_Nodes i = BG_AV_NODES_DUNBALDAR_SOUTH; i <= BG_AV_NODES_STONEHEART_BUNKER; ++i) // alliance towers destroyed
+ if (m_Nodes[i].State != POINT_DESTROYED)
+ return false;
- if (!m_CaptainAlive[1])
- return false;
+ if (!m_CaptainAlive[1])
+ return false;
- return true;
+ return true;
+ }
+ }
}
- return false;
+ return Battleground::CheckAchievementCriteriaMeet(criteriaId, source, target, miscValue);
}
uint32 BattlegroundAV::GetPrematureWinner()
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundAV.h b/src/server/game/Battlegrounds/Zones/BattlegroundAV.h
index 7a0af0b06d7..439fc656925 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundAV.h
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundAV.h
@@ -50,7 +50,7 @@
#define BG_AV_KILL_SURVIVING_CAPTAIN 2
#define BG_AV_REP_SURVIVING_CAPTAIN 125
-#define AV_EVENT_START_BATTLE 9166 // Achievement: The Alterac Blitz
+#define BG_AV_EVENT_START_BATTLE 9166 // Achievement: The Alterac Blitz
enum BG_AV_Sounds
{ /// @todo: get out if there comes a sound when neutral team captures mine
@@ -1046,7 +1046,7 @@ const uint32 BG_AV_CreatureInfo[AV_NPC_INFO_MAX][4] =
{ 13326, 1216, 59, 59 }, //Seasoned Defender
{ 13331, 1216, 60, 60 }, //Veteran Defender
{ 13422, 1216, 61, 61 }, //Champion Defender
- { 13358, 1216, 59, 60 }, //Stormpike Bowman /// @todo: Confirm if this is correct. Author assumpted 60,61 & 69,70, but wouldn't work here
+ { 13358, 1216, 59, 60 }, //Stormpike Bowman /// @todo: Confirm if this is correct. Author assumpted 60, 61 & 69, 70, but wouldn't work here
{ 11949, 469, 0, 0}, //not spawned with this data, but used for handlekillunit
{ 11948, 469, 0, 0}, //not spawned with this data, but used for handlekillunit
{ 12053, 1214, 58, 58 }, //Frostwolf Guardian
@@ -1527,7 +1527,8 @@ inline BG_AV_Nodes &operator++(BG_AV_Nodes &i){ return i = BG_AV_Nodes(i + 1); }
struct BattlegroundAVScore : public BattlegroundScore
{
- BattlegroundAVScore() : GraveyardsAssaulted(0), GraveyardsDefended(0), TowersAssaulted(0), TowersDefended(0), MinesCaptured(0), LeadersKilled(0), SecondaryObjectives(0) { }
+ BattlegroundAVScore() : GraveyardsAssaulted(0), GraveyardsDefended(0), TowersAssaulted(0),
+ TowersDefended(0), MinesCaptured(0), LeadersKilled(0), SecondaryObjectives(0) { }
~BattlegroundAVScore() { }
uint32 GraveyardsAssaulted;
uint32 GraveyardsDefended;
@@ -1550,28 +1551,27 @@ class BattlegroundAV : public Battleground
void StartingEventOpenDoors();
void RemovePlayer(Player* player, uint64 guid, uint32 team);
- void HandleAreaTrigger(Player* Source, uint32 Trigger);
+ void HandleAreaTrigger(Player* player, uint32 trigger);
bool SetupBattleground();
void ResetBGSubclass();
/*general stuff*/
void UpdateScore(uint16 team, int16 points);
- void UpdatePlayerScore(Player* Source, uint32 type, uint32 value, bool doAddHonor = true);
+ void UpdatePlayerScore(Player* player, uint32 type, uint32 value, bool doAddHonor = true);
/*handlestuff*/ //these are functions which get called from extern
void EventPlayerClickedOnFlag(Player* source, GameObject* target_obj);
void HandleKillPlayer(Player* player, Player* killer);
void HandleKillUnit(Creature* unit, Player* killer);
void HandleQuestComplete(uint32 questid, Player* player);
- bool PlayerCanDoMineQuest(int32 GOId, uint32 team);
+ bool CanActivateGO(int32 GOId, uint32 team) const;
void EndBattleground(uint32 winner);
WorldSafeLocsEntry const* GetClosestGraveYard(Player* player);
- /* achievement req. */
- bool IsBothMinesControlledByTeam(uint32 team) const;
- bool IsAllTowersControlledAndCaptainAlive(uint32 team) const;
+ // Achievement: Av perfection and Everything counts
+ bool CheckAchievementCriteriaMeet(uint32 criteriaId, Player const* source, Unit const* target = NULL, uint32 miscvalue1 = 0);
uint32 GetPrematureWinner();
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundBE.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundBE.cpp
index 41b372bfee8..b49ae97493c 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundBE.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundBE.cpp
@@ -142,12 +142,10 @@ bool BattlegroundBE::SetupBattleground()
void BattlegroundBE::UpdatePlayerScore(Player* Source, uint32 type, uint32 value, bool doAddHonor)
{
-
BattlegroundScoreMap::iterator itr = PlayerScores.find(Source->GetGUID());
if (itr == PlayerScores.end()) // player not found...
return;
//there is nothing special in this score
Battleground::UpdatePlayerScore(Source, type, value, doAddHonor);
-
}
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundDS.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundDS.cpp
index fac4c08d70d..83965884029 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundDS.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundDS.cpp
@@ -33,7 +33,6 @@ BattlegroundDS::BattlegroundDS()
StartDelayTimes[BG_STARTING_EVENT_SECOND] = BG_START_DELAY_30S;
StartDelayTimes[BG_STARTING_EVENT_THIRD] = BG_START_DELAY_15S;
StartDelayTimes[BG_STARTING_EVENT_FOURTH] = BG_START_DELAY_NONE;
- //we must set messageIds
StartMessageIds[BG_STARTING_EVENT_FIRST] = LANG_ARENA_ONE_MINUTE;
StartMessageIds[BG_STARTING_EVENT_SECOND] = LANG_ARENA_THIRTY_SECONDS;
StartMessageIds[BG_STARTING_EVENT_THIRD] = LANG_ARENA_FIFTEEN_SECONDS;
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp
index 0ececf6c6f7..95808065d62 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp
@@ -122,7 +122,7 @@ void BattlegroundEY::StartingEventOpenDoors()
}
// Achievement: Flurry
- StartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, EY_EVENT_START_BATTLE);
+ StartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, BG_EY_EVENT_START_BATTLE);
}
void BattlegroundEY::AddPoints(uint32 Team, uint32 Points)
@@ -381,7 +381,7 @@ void BattlegroundEY::HandleAreaTrigger(Player* player, uint32 trigger)
if (GetStatus() != STATUS_IN_PROGRESS)
return;
- if (!player->isAlive()) //hack code, must be removed later
+ if (!player->IsAlive()) //hack code, must be removed later
return;
switch (trigger)
@@ -591,16 +591,16 @@ void BattlegroundEY::HandleKillPlayer(Player* player, Player* killer)
EventPlayerDroppedFlag(player);
}
-void BattlegroundEY::EventPlayerDroppedFlag(Player* Source)
+void BattlegroundEY::EventPlayerDroppedFlag(Player* player)
{
if (GetStatus() != STATUS_IN_PROGRESS)
{
// if not running, do not cast things at the dropper player, neither send unnecessary messages
// just take off the aura
- if (IsFlagPickedup() && GetFlagPickerGUID() == Source->GetGUID())
+ if (IsFlagPickedup() && GetFlagPickerGUID() == player->GetGUID())
{
SetFlagPicker(0);
- Source->RemoveAurasDueToSpell(BG_EY_NETHERSTORM_FLAG_SPELL);
+ player->RemoveAurasDueToSpell(BG_EY_NETHERSTORM_FLAG_SPELL);
}
return;
}
@@ -608,31 +608,31 @@ void BattlegroundEY::EventPlayerDroppedFlag(Player* Source)
if (!IsFlagPickedup())
return;
- if (GetFlagPickerGUID() != Source->GetGUID())
+ if (GetFlagPickerGUID() != player->GetGUID())
return;
SetFlagPicker(0);
- Source->RemoveAurasDueToSpell(BG_EY_NETHERSTORM_FLAG_SPELL);
+ player->RemoveAurasDueToSpell(BG_EY_NETHERSTORM_FLAG_SPELL);
m_FlagState = BG_EY_FLAG_STATE_ON_GROUND;
m_FlagsTimer = BG_EY_FLAG_RESPAWN_TIME;
- Source->CastSpell(Source, SPELL_RECENTLY_DROPPED_FLAG, true);
- Source->CastSpell(Source, BG_EY_PLAYER_DROPPED_FLAG_SPELL, true);
+ player->CastSpell(player, SPELL_RECENTLY_DROPPED_FLAG, true);
+ player->CastSpell(player, BG_EY_PLAYER_DROPPED_FLAG_SPELL, true);
//this does not work correctly :((it should remove flag carrier name)
UpdateWorldState(NETHERSTORM_FLAG_STATE_HORDE, BG_EY_FLAG_STATE_WAIT_RESPAWN);
UpdateWorldState(NETHERSTORM_FLAG_STATE_ALLIANCE, BG_EY_FLAG_STATE_WAIT_RESPAWN);
- if (Source->GetTeam() == ALLIANCE)
+ if (player->GetTeam() == ALLIANCE)
SendMessageToAll(LANG_BG_EY_DROPPED_FLAG, CHAT_MSG_BG_SYSTEM_ALLIANCE, NULL);
else
SendMessageToAll(LANG_BG_EY_DROPPED_FLAG, CHAT_MSG_BG_SYSTEM_HORDE, NULL);
}
-void BattlegroundEY::EventPlayerClickedOnFlag(Player* Source, GameObject* target_obj)
+void BattlegroundEY::EventPlayerClickedOnFlag(Player* player, GameObject* target_obj)
{
- if (GetStatus() != STATUS_IN_PROGRESS || IsFlagPickedup() || !Source->IsWithinDistInMap(target_obj, 10))
+ if (GetStatus() != STATUS_IN_PROGRESS || IsFlagPickedup() || !player->IsWithinDistInMap(target_obj, 10))
return;
- if (Source->GetTeam() == ALLIANCE)
+ if (player->GetTeam() == ALLIANCE)
{
UpdateWorldState(NETHERSTORM_FLAG_STATE_ALLIANCE, BG_EY_FLAG_STATE_ON_PLAYER);
PlaySoundToAll(BG_EY_SOUND_FLAG_PICKED_UP_ALLIANCE);
@@ -648,18 +648,18 @@ void BattlegroundEY::EventPlayerClickedOnFlag(Player* Source, GameObject* target
m_FlagState = BG_EY_FLAG_STATE_ON_PLAYER;
SpawnBGObject(BG_EY_OBJECT_FLAG_NETHERSTORM, RESPAWN_ONE_DAY);
- SetFlagPicker(Source->GetGUID());
+ SetFlagPicker(player->GetGUID());
//get flag aura on player
- Source->CastSpell(Source, BG_EY_NETHERSTORM_FLAG_SPELL, true);
- Source->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_ENTER_PVP_COMBAT);
+ player->CastSpell(player, BG_EY_NETHERSTORM_FLAG_SPELL, true);
+ player->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_ENTER_PVP_COMBAT);
- if (Source->GetTeam() == ALLIANCE)
- PSendMessageToAll(LANG_BG_EY_HAS_TAKEN_FLAG, CHAT_MSG_BG_SYSTEM_ALLIANCE, NULL, Source->GetName().c_str());
+ if (player->GetTeam() == ALLIANCE)
+ PSendMessageToAll(LANG_BG_EY_HAS_TAKEN_FLAG, CHAT_MSG_BG_SYSTEM_ALLIANCE, NULL, player->GetName().c_str());
else
- PSendMessageToAll(LANG_BG_EY_HAS_TAKEN_FLAG, CHAT_MSG_BG_SYSTEM_HORDE, NULL, Source->GetName().c_str());
+ PSendMessageToAll(LANG_BG_EY_HAS_TAKEN_FLAG, CHAT_MSG_BG_SYSTEM_HORDE, NULL, player->GetName().c_str());
}
-void BattlegroundEY::EventTeamLostPoint(Player* Source, uint32 Point)
+void BattlegroundEY::EventTeamLostPoint(Player* player, uint32 Point)
{
if (GetStatus() != STATUS_IN_PROGRESS)
return;
@@ -695,9 +695,9 @@ void BattlegroundEY::EventTeamLostPoint(Player* Source, uint32 Point)
m_PointState[Point] = EY_POINT_NO_OWNER;
if (Team == ALLIANCE)
- SendMessageToAll(m_LosingPointTypes[Point].MessageIdAlliance, CHAT_MSG_BG_SYSTEM_ALLIANCE, Source);
+ SendMessageToAll(m_LosingPointTypes[Point].MessageIdAlliance, CHAT_MSG_BG_SYSTEM_ALLIANCE, player);
else
- SendMessageToAll(m_LosingPointTypes[Point].MessageIdHorde, CHAT_MSG_BG_SYSTEM_HORDE, Source);
+ SendMessageToAll(m_LosingPointTypes[Point].MessageIdHorde, CHAT_MSG_BG_SYSTEM_HORDE, player);
UpdatePointsIcons(Team, Point);
UpdatePointsCount(Team);
@@ -707,12 +707,12 @@ void BattlegroundEY::EventTeamLostPoint(Player* Source, uint32 Point)
DelCreature(Point + 6);//NULL checks are in DelCreature! 0-5 spirit guides
}
-void BattlegroundEY::EventTeamCapturedPoint(Player* Source, uint32 Point)
+void BattlegroundEY::EventTeamCapturedPoint(Player* player, uint32 Point)
{
if (GetStatus() != STATUS_IN_PROGRESS)
return;
- uint32 Team = Source->GetTeam();
+ uint32 Team = player->GetTeam();
SpawnBGObject(m_CapturingPointTypes[Point].DespawnNeutralObjectType, RESPAWN_ONE_DAY);
SpawnBGObject(m_CapturingPointTypes[Point].DespawnNeutralObjectType + 1, RESPAWN_ONE_DAY);
@@ -739,9 +739,9 @@ void BattlegroundEY::EventTeamCapturedPoint(Player* Source, uint32 Point)
m_PointState[Point] = EY_POINT_UNDER_CONTROL;
if (Team == ALLIANCE)
- SendMessageToAll(m_CapturingPointTypes[Point].MessageIdAlliance, CHAT_MSG_BG_SYSTEM_ALLIANCE, Source);
+ SendMessageToAll(m_CapturingPointTypes[Point].MessageIdAlliance, CHAT_MSG_BG_SYSTEM_ALLIANCE, player);
else
- SendMessageToAll(m_CapturingPointTypes[Point].MessageIdHorde, CHAT_MSG_BG_SYSTEM_HORDE, Source);
+ SendMessageToAll(m_CapturingPointTypes[Point].MessageIdHorde, CHAT_MSG_BG_SYSTEM_HORDE, player);
if (BgCreatures[Point])
DelCreature(Point);
@@ -774,18 +774,18 @@ void BattlegroundEY::EventTeamCapturedPoint(Player* Source, uint32 Point)
}
}
-void BattlegroundEY::EventPlayerCapturedFlag(Player* Source, uint32 BgObjectType)
+void BattlegroundEY::EventPlayerCapturedFlag(Player* player, uint32 BgObjectType)
{
- if (GetStatus() != STATUS_IN_PROGRESS || GetFlagPickerGUID() != Source->GetGUID())
+ if (GetStatus() != STATUS_IN_PROGRESS || GetFlagPickerGUID() != player->GetGUID())
return;
SetFlagPicker(0);
m_FlagState = BG_EY_FLAG_STATE_WAIT_RESPAWN;
- Source->RemoveAurasDueToSpell(BG_EY_NETHERSTORM_FLAG_SPELL);
+ player->RemoveAurasDueToSpell(BG_EY_NETHERSTORM_FLAG_SPELL);
- Source->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_ENTER_PVP_COMBAT);
+ player->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_ENTER_PVP_COMBAT);
- if (Source->GetTeam() == ALLIANCE)
+ if (player->GetTeam() == ALLIANCE)
PlaySoundToAll(BG_EY_SOUND_FLAG_CAPTURED_ALLIANCE);
else
PlaySoundToAll(BG_EY_SOUND_FLAG_CAPTURED_HORDE);
@@ -796,26 +796,26 @@ void BattlegroundEY::EventPlayerCapturedFlag(Player* Source, uint32 BgObjectType
m_FlagCapturedBgObjectType = BgObjectType;
uint8 team_id = 0;
- if (Source->GetTeam() == ALLIANCE)
+ if (player->GetTeam() == ALLIANCE)
{
team_id = TEAM_ALLIANCE;
- SendMessageToAll(LANG_BG_EY_CAPTURED_FLAG_A, CHAT_MSG_BG_SYSTEM_ALLIANCE, Source);
+ SendMessageToAll(LANG_BG_EY_CAPTURED_FLAG_A, CHAT_MSG_BG_SYSTEM_ALLIANCE, player);
}
else
{
team_id = TEAM_HORDE;
- SendMessageToAll(LANG_BG_EY_CAPTURED_FLAG_H, CHAT_MSG_BG_SYSTEM_HORDE, Source);
+ SendMessageToAll(LANG_BG_EY_CAPTURED_FLAG_H, CHAT_MSG_BG_SYSTEM_HORDE, player);
}
if (m_TeamPointsCount[team_id] > 0)
- AddPoints(Source->GetTeam(), BG_EY_FlagPoints[m_TeamPointsCount[team_id] - 1]);
+ AddPoints(player->GetTeam(), BG_EY_FlagPoints[m_TeamPointsCount[team_id] - 1]);
- UpdatePlayerScore(Source, SCORE_FLAG_CAPTURES, 1);
+ UpdatePlayerScore(player, SCORE_FLAG_CAPTURES, 1);
}
-void BattlegroundEY::UpdatePlayerScore(Player* Source, uint32 type, uint32 value, bool doAddHonor)
+void BattlegroundEY::UpdatePlayerScore(Player* player, uint32 type, uint32 value, bool doAddHonor)
{
- BattlegroundScoreMap::iterator itr = PlayerScores.find(Source->GetGUID());
+ BattlegroundScoreMap::iterator itr = PlayerScores.find(player->GetGUID());
if (itr == PlayerScores.end()) // player not found
return;
@@ -823,10 +823,10 @@ void BattlegroundEY::UpdatePlayerScore(Player* Source, uint32 type, uint32 value
{
case SCORE_FLAG_CAPTURES: // flags captured
((BattlegroundEYScore*)itr->second)->FlagCaptures += value;
- Source->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE, EY_OBJECTIVE_CAPTURE_FLAG);
+ player->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE, EY_OBJECTIVE_CAPTURE_FLAG);
break;
default:
- Battleground::UpdatePlayerScore(Source, type, value, doAddHonor);
+ Battleground::UpdatePlayerScore(player, type, value, doAddHonor);
break;
}
}
@@ -934,7 +934,7 @@ WorldSafeLocsEntry const* BattlegroundEY::GetClosestGraveYard(Player* player)
return nearestEntry;
}
-bool BattlegroundEY::IsAllNodesConrolledByTeam(uint32 team) const
+bool BattlegroundEY::IsAllNodesControlledByTeam(uint32 team) const
{
uint32 count = 0;
for (int i = 0; i < EY_POINTS_MAX; ++i)
@@ -952,4 +952,4 @@ uint32 BattlegroundEY::GetPrematureWinner()
return HORDE;
return Battleground::GetPrematureWinner();
-} \ No newline at end of file
+}
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundEY.h b/src/server/game/Battlegrounds/Zones/BattlegroundEY.h
index 72c6a42b5db..f03b458e7ff 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundEY.h
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundEY.h
@@ -24,6 +24,7 @@
enum BG_EY_Misc
{
+ BG_EY_EVENT_START_BATTLE = 13180, // Achievement: Flurry
BG_EY_FLAG_RESPAWN_TIME = (8*IN_MILLISECONDS),
BG_EY_FPOINTS_TICK_TIME = (2*IN_MILLISECONDS)
};
@@ -219,8 +220,6 @@ enum EYBattlegroundObjectTypes
#define BG_EY_NotEYWeekendHonorTicks 260
#define BG_EY_EYWeekendHonorTicks 160
-#define EY_EVENT_START_BATTLE 13180 // Achievement: Flurry
-
enum BG_EY_Score
{
BG_EY_WARNING_NEAR_VICTORY_SCORE = 1400,
@@ -368,7 +367,7 @@ class BattlegroundEY : public Battleground
void EventPlayerDroppedFlag(Player* Source);
/* achievement req. */
- bool IsAllNodesConrolledByTeam(uint32 team) const;
+ bool IsAllNodesControlledByTeam(uint32 team) const;
uint32 GetPrematureWinner();
private:
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp
index da43c492738..6fc68c62d1f 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp
@@ -84,7 +84,7 @@ void BattlegroundIC::SendTransportInit(Player* player)
WorldPacket packet;
transData.BuildPacket(&packet);
- player->GetSession()->SendPacket(&packet);
+ player->SendDirectMessage(&packet);
}
void BattlegroundIC::DoAction(uint32 action, uint64 var)
@@ -101,10 +101,10 @@ void BattlegroundIC::DoAction(uint32 action, uint64 var)
player->SetTransport(player->GetTeamId() == TEAM_ALLIANCE ? gunshipAlliance : gunshipHorde);
- player->m_movementInfo.t_pos.m_positionX = TransportMovementInfo.GetPositionX();
- player->m_movementInfo.t_pos.m_positionY = TransportMovementInfo.GetPositionY();
- player->m_movementInfo.t_pos.m_positionZ = TransportMovementInfo.GetPositionZ();
- player->m_movementInfo.t_guid = (player->GetTeamId() == TEAM_ALLIANCE ? gunshipAlliance : gunshipHorde)->GetGUID();
+ player->m_movementInfo.transport.pos.m_positionX = TransportMovementInfo.GetPositionX();
+ player->m_movementInfo.transport.pos.m_positionY = TransportMovementInfo.GetPositionY();
+ player->m_movementInfo.transport.pos.m_positionZ = TransportMovementInfo.GetPositionZ();
+ player->m_movementInfo.transport.guid = (player->GetTeamId() == TEAM_ALLIANCE ? gunshipAlliance : gunshipHorde)->GetGUID();
if (player->TeleportTo(GetMapId(), TeleportToTransportPosition.GetPositionX(),
TeleportToTransportPosition.GetPositionY(),
@@ -151,7 +151,7 @@ void BattlegroundIC::PostUpdateImpl(uint32 diff)
{
if (Creature* catapult = GetBGCreature(u))
{
- if (!catapult->isAlive())
+ if (!catapult->IsAlive())
catapult->Respawn(true);
}
}
@@ -161,7 +161,7 @@ void BattlegroundIC::PostUpdateImpl(uint32 diff)
{
if (Creature* glaiveThrower = GetBGCreature(u))
{
- if (!glaiveThrower->isAlive())
+ if (!glaiveThrower->IsAlive())
glaiveThrower->Respawn(true);
}
}
@@ -182,7 +182,7 @@ void BattlegroundIC::PostUpdateImpl(uint32 diff)
if (Creature* siege = GetBGCreature(siegeType)) // this always should be true
{
- if (siege->isAlive())
+ if (siege->IsAlive())
{
if (siege->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE|UNIT_FLAG_UNK_14|UNIT_FLAG_IMMUNE_TO_PC))
// following sniffs the vehicle always has UNIT_FLAG_UNK_14
@@ -199,7 +199,7 @@ void BattlegroundIC::PostUpdateImpl(uint32 diff)
{
if (Creature* demolisher = GetBGCreature(u))
{
- if (!demolisher->isAlive())
+ if (!demolisher->IsAlive())
demolisher->Respawn(true);
}
}
@@ -290,19 +290,6 @@ void BattlegroundIC::StartingEventOpenDoors()
}
}
-bool BattlegroundIC::IsAllNodesConrolledByTeam(uint32 team) const
-{
- uint32 count = 0;
- ICNodeState controlledState = team == ALLIANCE ? NODE_STATE_CONTROLLED_A : NODE_STATE_CONTROLLED_H;
- for (int i = 0; i < NODE_TYPE_WORKSHOP; ++i)
- {
- if (nodePoint[i].nodeState == controlledState)
- ++count;
- }
-
- return count == NODE_TYPE_WORKSHOP;
-}
-
void BattlegroundIC::AddPlayer(Player* player)
{
Battleground::AddPlayer(player);
@@ -326,16 +313,32 @@ void BattlegroundIC::RemovePlayer(Player* player, uint64 /*guid*/, uint32 /*team
}
}
-void BattlegroundIC::HandleAreaTrigger(Player* /*Source*/, uint32 /*Trigger*/)
+void BattlegroundIC::HandleAreaTrigger(Player* player, uint32 trigger)
{
// this is wrong way to implement these things. On official it done by gameobject spell cast.
if (GetStatus() != STATUS_IN_PROGRESS)
return;
+
+ /// @hack: this spell should be cast by npc 22515 (World Trigger) and not by the player
+ if (trigger == 5555 && player->GetTeamId() == TEAM_HORDE)
+ {
+ if (GateStatus[BG_IC_A_FRONT] != BG_IC_GATE_DESTROYED
+ && GateStatus[BG_IC_A_WEST] != BG_IC_GATE_DESTROYED
+ && GateStatus[BG_IC_A_EAST] != BG_IC_GATE_DESTROYED)
+ player->CastSpell(player, SPELL_BACK_DOOR_JOB_ACHIEVEMENT, true);
+ }
+ else if (trigger == 5535 && player->GetTeamId() == TEAM_ALLIANCE)
+ {
+ if (GateStatus[BG_IC_H_FRONT] != BG_IC_GATE_DESTROYED
+ && GateStatus[BG_IC_H_WEST] != BG_IC_GATE_DESTROYED
+ && GateStatus[BG_IC_H_EAST] != BG_IC_GATE_DESTROYED)
+ player->CastSpell(player, SPELL_BACK_DOOR_JOB_ACHIEVEMENT, true);
+ }
}
-void BattlegroundIC::UpdatePlayerScore(Player* Source, uint32 type, uint32 value, bool doAddHonor)
+void BattlegroundIC::UpdatePlayerScore(Player* player, uint32 type, uint32 value, bool doAddHonor)
{
- std::map<uint64, BattlegroundScore*>::iterator itr = PlayerScores.find(Source->GetGUID());
+ std::map<uint64, BattlegroundScore*>::iterator itr = PlayerScores.find(player->GetGUID());
if (itr == PlayerScores.end()) // player not found...
return;
@@ -349,7 +352,7 @@ void BattlegroundIC::UpdatePlayerScore(Player* Source, uint32 type, uint32 value
((BattlegroundICScore*)itr->second)->BasesDefended += value;
break;
default:
- Battleground::UpdatePlayerScore(Source, type, value, doAddHonor);
+ Battleground::UpdatePlayerScore(player, type, value, doAddHonor);
break;
}
}
@@ -481,28 +484,6 @@ void BattlegroundIC::EndBattleground(uint32 winner)
Battleground::EndBattleground(winner);
}
-void BattlegroundIC::RealocatePlayers(ICNodePointType nodeType)
-{
- // Those who are waiting to resurrect at this node are taken to the closest own node's graveyard
- std::vector<uint64> ghost_list = m_ReviveQueue[BgCreatures[BG_IC_NPC_SPIRIT_GUIDE_1+nodeType-2]];
- if (!ghost_list.empty())
- {
- WorldSafeLocsEntry const* ClosestGrave = NULL;
- for (std::vector<uint64>::const_iterator itr = ghost_list.begin(); itr != ghost_list.end(); ++itr)
- {
- Player* player = ObjectAccessor::FindPlayer(*itr);
- if (!player)
- continue;
-
- if (!ClosestGrave) // cache
- ClosestGrave = GetClosestGraveYard(player);
-
- if (ClosestGrave)
- player->TeleportTo(GetMapId(), ClosestGrave->x, ClosestGrave->y, ClosestGrave->z, player->GetOrientation());
- }
- }
-}
-
void BattlegroundIC::EventPlayerClickedOnFlag(Player* player, GameObject* target_obj)
{
if (GetStatus() != STATUS_IN_PROGRESS)
@@ -531,7 +512,7 @@ void BattlegroundIC::EventPlayerClickedOnFlag(Player* player, GameObject* target
nodePoint[i].timer = BANNER_STATE_CHANGE_TIME; // 1 minute for last change (real faction banner)
nodePoint[i].needChange = true;
- RealocatePlayers(nodePoint[i].nodeType);
+ RelocateDeadPlayers(BgCreatures[BG_IC_NPC_SPIRIT_GUIDE_1 + nodePoint[i].nodeType - 2]);
// if we are here means that the point has been lost, or it is the first capture
@@ -718,7 +699,7 @@ void BattlegroundIC::HandleCapturedNodes(ICNodePoint* nodePoint, bool recapture)
{
uint8 type = (nodePoint->faction == TEAM_ALLIANCE ? BG_IC_NPC_GLAIVE_THROWER_1_A : BG_IC_NPC_GLAIVE_THROWER_1_H)+i;
- if (GetBGCreature(type) && GetBGCreature(type)->isAlive())
+ if (GetBGCreature(type) && GetBGCreature(type)->IsAlive())
continue;
if (AddCreature(nodePoint->faction == TEAM_ALLIANCE ? NPC_GLAIVE_THROWER_A : NPC_GLAIVE_THROWER_H, type, nodePoint->faction,
@@ -733,7 +714,7 @@ void BattlegroundIC::HandleCapturedNodes(ICNodePoint* nodePoint, bool recapture)
{
uint8 type = (nodePoint->faction == TEAM_ALLIANCE ? BG_IC_NPC_CATAPULT_1_A : BG_IC_NPC_CATAPULT_1_H)+i;
- if (GetBGCreature(type) && GetBGCreature(type)->isAlive())
+ if (GetBGCreature(type) && GetBGCreature(type)->IsAlive())
continue;
if (AddCreature(NPC_CATAPULT, type, nodePoint->faction,
@@ -768,7 +749,7 @@ void BattlegroundIC::HandleCapturedNodes(ICNodePoint* nodePoint, bool recapture)
{
uint8 type = (nodePoint->faction == TEAM_ALLIANCE ? BG_IC_NPC_DEMOLISHER_1_A : BG_IC_NPC_DEMOLISHER_1_H)+i;
- if (GetBGCreature(type) && GetBGCreature(type)->isAlive())
+ if (GetBGCreature(type) && GetBGCreature(type)->IsAlive())
continue;
if (AddCreature(NPC_DEMOLISHER, type, nodePoint->faction,
@@ -792,7 +773,7 @@ void BattlegroundIC::HandleCapturedNodes(ICNodePoint* nodePoint, bool recapture)
}
uint8 siegeType = (nodePoint->faction == TEAM_ALLIANCE ? BG_IC_NPC_SIEGE_ENGINE_A : BG_IC_NPC_SIEGE_ENGINE_H);
- if (!GetBGCreature(siegeType) || !GetBGCreature(siegeType)->isAlive())
+ if (!GetBGCreature(siegeType) || !GetBGCreature(siegeType)->IsAlive())
{
AddCreature((nodePoint->faction == TEAM_ALLIANCE ? NPC_SIEGE_ENGINE_A : NPC_SIEGE_ENGINE_H), siegeType, nodePoint->faction,
BG_IC_WorkshopVehicles[4].GetPositionX(), BG_IC_WorkshopVehicles[4].GetPositionY(),
@@ -894,8 +875,8 @@ WorldSafeLocsEntry const* BattlegroundIC::GetClosestGraveYard(Player* player)
// If so, select the closest node to place ghost on
if (!nodes.empty())
{
- float plr_x = player->GetPositionX();
- float plr_y = player->GetPositionY();
+ float player_x = player->GetPositionX();
+ float player_y = player->GetPositionY();
float mindist = 999999.0f;
for (uint8 i = 0; i < nodes.size(); ++i)
@@ -903,7 +884,7 @@ WorldSafeLocsEntry const* BattlegroundIC::GetClosestGraveYard(Player* player)
WorldSafeLocsEntry const*entry = sWorldSafeLocsStore.LookupEntry(BG_IC_GraveyardIds[nodes[i]]);
if (!entry)
continue;
- float dist = (entry->x - plr_x)*(entry->x - plr_x)+(entry->y - plr_y)*(entry->y - plr_y);
+ float dist = (entry->x - player_x)*(entry->x - player_x)+(entry->y - player_y)*(entry->y - player_y);
if (mindist > dist)
{
mindist = dist;
@@ -964,3 +945,35 @@ Transport* BattlegroundIC::CreateTransport(uint32 goEntry, uint32 period)
return t;
}
+
+bool BattlegroundIC::IsAllNodesControlledByTeam(uint32 team) const
+{
+ uint32 count = 0;
+ ICNodeState controlledState = team == ALLIANCE ? NODE_STATE_CONTROLLED_A : NODE_STATE_CONTROLLED_H;
+ for (int i = 0; i < NODE_TYPE_WORKSHOP; ++i)
+ {
+ if (nodePoint[i].nodeState == controlledState)
+ ++count;
+ }
+
+ return count == NODE_TYPE_WORKSHOP;
+}
+
+bool BattlegroundIC::IsSpellAllowed(uint32 spellId, Player const* player) const
+{
+ switch (spellId)
+ {
+ case SPELL_OIL_REFINERY:
+ case SPELL_QUARRY:
+ {
+ uint32 team = player->GetTeamId();
+ uint8 nodeType = spellId = SPELL_OIL_REFINERY ? NODE_TYPE_REFINERY : NODE_TYPE_QUARRY;
+ uint8 nodeState = team == TEAM_ALLIANCE ? NODE_STATE_CONTROLLED_A : NODE_STATE_CONTROLLED_H;
+ return GetNodeState(nodeType) == nodeState;
+ }
+ default:
+ break;
+ }
+
+ return true;
+} \ No newline at end of file
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundIC.h b/src/server/game/Battlegrounds/Zones/BattlegroundIC.h
index 7845c002155..34d03a5d92c 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundIC.h
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundIC.h
@@ -661,6 +661,7 @@ enum Spells
SPELL_PARACHUTE = 66656,
SPELL_SLOW_FALL = 12438,
SPELL_DESTROYED_VEHICLE_ACHIEVEMENT = 68357,
+ SPELL_BACK_DOOR_JOB_ACHIEVEMENT = 68502,
SPELL_DRIVING_CREDIT_DEMOLISHER = 68365,
SPELL_DRIVING_CREDIT_GLAIVE = 68363,
SPELL_DRIVING_CREDIT_SIEGE = 68364,
@@ -867,7 +868,7 @@ class BattlegroundIC : public Battleground
void PostUpdateImpl(uint32 diff);
void RemovePlayer(Player* player, uint64 guid, uint32 team);
- void HandleAreaTrigger(Player* Source, uint32 Trigger);
+ void HandleAreaTrigger(Player* player, uint32 trigger);
bool SetupBattleground();
void SpawnLeader(uint32 teamid);
void HandleKillUnit(Creature* unit, Player* killer);
@@ -881,7 +882,7 @@ class BattlegroundIC : public Battleground
WorldSafeLocsEntry const* GetClosestGraveYard(Player* player);
/* Scorekeeping */
- void UpdatePlayerScore(Player* Source, uint32 type, uint32 value, bool doAddHonor = true);
+ void UpdatePlayerScore(Player* player, uint32 type, uint32 value, bool doAddHonor = true);
void FillInitialWorldStates(WorldPacket& data);
@@ -891,7 +892,9 @@ class BattlegroundIC : public Battleground
uint32 GetNodeState(uint8 nodeType) const { return (uint8)nodePoint[nodeType].nodeState; }
- bool IsAllNodesConrolledByTeam(uint32 team) const; // overwrited
+ bool IsAllNodesControlledByTeam(uint32 team) const;
+
+ bool IsSpellAllowed(uint32 spellId, Player const* player) const;
private:
uint32 closeFortressDoorsTimer;
bool doorsClosed;
@@ -950,7 +953,6 @@ class BattlegroundIC : public Battleground
return uws;
}
- void RealocatePlayers(ICNodePointType nodeType);
void UpdateNodeWorldState(ICNodePoint* nodePoint);
void HandleCapturedNodes(ICNodePoint* nodePoint, bool recapture);
void HandleContestedNodes(ICNodePoint* nodePoint);
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp
index 08eb582b954..d13fc6d697b 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp
@@ -56,8 +56,8 @@ void BattlegroundSA::Reset()
GateStatus[i] = BG_SA_GATE_OK;
ShipsStarted = false;
gateDestroyed = false;
- _notEvenAScratch[TEAM_ALLIANCE] = true;
- _notEvenAScratch[TEAM_HORDE] = true;
+ _allVehiclesAlive[TEAM_ALLIANCE] = true;
+ _allVehiclesAlive[TEAM_HORDE] = true;
Status = BG_SA_WARMUP;
}
@@ -274,7 +274,7 @@ void BattlegroundSA::StartShips()
WorldPacket pkt;
GetBGObject(i)->BuildValuesUpdateBlockForPlayer(&data, p);
data.BuildPacket(&pkt);
- p->GetSession()->SendPacket(&pkt);
+ p->SendDirectMessage(&pkt);
}
}
}
@@ -507,7 +507,7 @@ void BattlegroundSA::TeleportPlayers()
if (player->HasAuraType(SPELL_AURA_SPIRIT_OF_REDEMPTION))
player->RemoveAurasByType(SPELL_AURA_MOD_SHAPESHIFT);
- if (!player->isAlive())
+ if (!player->IsAlive())
{
player->ResurrectPlayer(1.0f);
player->SpawnCorpseBones();
@@ -566,7 +566,7 @@ void BattlegroundSA::HandleKillUnit(Creature* creature, Player* killer)
if (creature->GetEntry() == NPC_DEMOLISHER_SA)
{
UpdatePlayerScore(killer, SCORE_DESTROYED_DEMOLISHER, 1);
- _notEvenAScratch[Attackers] = false;
+ _allVehiclesAlive[Attackers] = false;
}
}
@@ -947,7 +947,7 @@ void BattlegroundSA::SendTransportInit(Player* player)
GetBGObject(BG_SA_BOAT_TWO)->BuildCreateUpdateBlockForPlayer(&transData, player);
WorldPacket packet;
transData.BuildPacket(&packet);
- player->GetSession()->SendPacket(&packet);
+ player->SendDirectMessage(&packet);
}
}
@@ -962,6 +962,20 @@ void BattlegroundSA::SendTransportsRemove(Player* player)
GetBGObject(BG_SA_BOAT_TWO)->BuildOutOfRangeUpdateBlock(&transData);
WorldPacket packet;
transData.BuildPacket(&packet);
- player->GetSession()->SendPacket(&packet);
+ player->SendDirectMessage(&packet);
}
}
+
+bool BattlegroundSA::CheckAchievementCriteriaMeet(uint32 criteriaId, Player const* source, Unit const* target, uint32 miscValue)
+{
+ switch (criteriaId)
+ {
+ case BG_CRITERIA_CHECK_NOT_EVEN_A_SCRATCH:
+ return _allVehiclesAlive[GetTeamIndexByTeamId(source->GetTeam())];
+ case BG_CRITERIA_CHECK_DEFENSE_OF_THE_ANCIENTS:
+ if (source->GetTeamId() != Attackers && !gateDestroyed)
+ return true;
+ }
+
+ return Battleground::CheckAchievementCriteriaMeet(criteriaId, source, target, miscValue);
+}
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundSA.h b/src/server/game/Battlegrounds/Zones/BattlegroundSA.h
index aa3106d237f..c50721c4591 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundSA.h
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundSA.h
@@ -543,7 +543,7 @@ class BattlegroundSA : public Battleground
bool gateDestroyed;
// Achievement: Not Even a Scratch
- bool notEvenAScratch(uint32 team) const { return _notEvenAScratch[GetTeamIndexByTeamId(team)]; }
+ bool CheckAchievementCriteriaMeet(uint32 criteriaId, Player const* source, Unit const* target = NULL, uint32 miscvalue1 = 0);
/// Id of attacker team
TeamId Attackers;
@@ -627,6 +627,6 @@ class BattlegroundSA : public Battleground
std::map<uint32/*id*/, uint32/*timer*/> DemoliserRespawnList;
// Achievement: Not Even a Scratch
- bool _notEvenAScratch[BG_TEAMS_COUNT];
+ bool _allVehiclesAlive[BG_TEAMS_COUNT];
};
#endif
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundWS.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundWS.cpp
index 03027b8500f..419a4eff84c 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundWS.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundWS.cpp
@@ -274,15 +274,15 @@ void BattlegroundWS::RespawnFlagAfterDrop(uint32 team)
_bothFlagsKept = false;
}
-void BattlegroundWS::EventPlayerCapturedFlag(Player* Source)
+void BattlegroundWS::EventPlayerCapturedFlag(Player* player)
{
if (GetStatus() != STATUS_IN_PROGRESS)
return;
uint32 winner = 0;
- Source->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_ENTER_PVP_COMBAT);
- if (Source->GetTeam() == ALLIANCE)
+ player->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_ENTER_PVP_COMBAT);
+ if (player->GetTeam() == ALLIANCE)
{
if (!IsHordeFlagPickedup())
return;
@@ -290,11 +290,12 @@ void BattlegroundWS::EventPlayerCapturedFlag(Player* Source)
// horde flag in base (but not respawned yet)
_flagState[TEAM_HORDE] = BG_WS_FLAG_STATE_WAIT_RESPAWN;
// Drop Horde Flag from Player
- Source->RemoveAurasDueToSpell(BG_WS_SPELL_WARSONG_FLAG);
+ player->RemoveAurasDueToSpell(BG_WS_SPELL_WARSONG_FLAG);
if (_flagDebuffState == 1)
- Source->RemoveAurasDueToSpell(WS_SPELL_FOCUSED_ASSAULT);
- if (_flagDebuffState == 2)
- Source->RemoveAurasDueToSpell(WS_SPELL_BRUTAL_ASSAULT);
+ player->RemoveAurasDueToSpell(WS_SPELL_FOCUSED_ASSAULT);
+ else if (_flagDebuffState == 2)
+ player->RemoveAurasDueToSpell(WS_SPELL_BRUTAL_ASSAULT);
+
if (GetTeamScore(TEAM_ALLIANCE) < BG_WS_MAX_TEAM_SCORE)
AddPoint(ALLIANCE, 1);
PlaySoundToAll(BG_WS_SOUND_FLAG_CAPTURED_ALLIANCE);
@@ -308,34 +309,35 @@ void BattlegroundWS::EventPlayerCapturedFlag(Player* Source)
// alliance flag in base (but not respawned yet)
_flagState[TEAM_ALLIANCE] = BG_WS_FLAG_STATE_WAIT_RESPAWN;
// Drop Alliance Flag from Player
- Source->RemoveAurasDueToSpell(BG_WS_SPELL_SILVERWING_FLAG);
+ player->RemoveAurasDueToSpell(BG_WS_SPELL_SILVERWING_FLAG);
if (_flagDebuffState == 1)
- Source->RemoveAurasDueToSpell(WS_SPELL_FOCUSED_ASSAULT);
- if (_flagDebuffState == 2)
- Source->RemoveAurasDueToSpell(WS_SPELL_BRUTAL_ASSAULT);
+ player->RemoveAurasDueToSpell(WS_SPELL_FOCUSED_ASSAULT);
+ else if (_flagDebuffState == 2)
+ player->RemoveAurasDueToSpell(WS_SPELL_BRUTAL_ASSAULT);
+
if (GetTeamScore(TEAM_HORDE) < BG_WS_MAX_TEAM_SCORE)
AddPoint(HORDE, 1);
PlaySoundToAll(BG_WS_SOUND_FLAG_CAPTURED_HORDE);
RewardReputationToTeam(889, m_ReputationCapture, HORDE);
}
//for flag capture is reward 2 honorable kills
- RewardHonorToTeam(GetBonusHonorFromKill(2), Source->GetTeam());
+ RewardHonorToTeam(GetBonusHonorFromKill(2), player->GetTeam());
SpawnBGObject(BG_WS_OBJECT_H_FLAG, BG_WS_FLAG_RESPAWN_TIME);
SpawnBGObject(BG_WS_OBJECT_A_FLAG, BG_WS_FLAG_RESPAWN_TIME);
- if (Source->GetTeam() == ALLIANCE)
- SendMessageToAll(LANG_BG_WS_CAPTURED_HF, CHAT_MSG_BG_SYSTEM_ALLIANCE, Source);
+ if (player->GetTeam() == ALLIANCE)
+ SendMessageToAll(LANG_BG_WS_CAPTURED_HF, CHAT_MSG_BG_SYSTEM_ALLIANCE, player);
else
- SendMessageToAll(LANG_BG_WS_CAPTURED_AF, CHAT_MSG_BG_SYSTEM_HORDE, Source);
+ SendMessageToAll(LANG_BG_WS_CAPTURED_AF, CHAT_MSG_BG_SYSTEM_HORDE, player);
- UpdateFlagState(Source->GetTeam(), 1); // flag state none
- UpdateTeamScore(Source->GetTeamId());
+ UpdateFlagState(player->GetTeam(), 1); // flag state none
+ UpdateTeamScore(player->GetTeamId());
// only flag capture should be updated
- UpdatePlayerScore(Source, SCORE_FLAG_CAPTURES, 1); // +1 flag captures
+ UpdatePlayerScore(player, SCORE_FLAG_CAPTURES, 1); // +1 flag captures
// update last flag capture to be used if teamscore is equal
- SetLastFlagCapture(Source->GetTeam());
+ SetLastFlagCapture(player->GetTeam());
if (GetTeamScore(TEAM_ALLIANCE) == BG_WS_MAX_TEAM_SCORE)
winner = ALLIANCE;
@@ -356,34 +358,36 @@ void BattlegroundWS::EventPlayerCapturedFlag(Player* Source)
}
else
{
- _flagsTimer[GetTeamIndexByTeamId(Source->GetTeam()) ? 0 : 1] = BG_WS_FLAG_RESPAWN_TIME;
+ _flagsTimer[GetTeamIndexByTeamId(player->GetTeam()) ? 0 : 1] = BG_WS_FLAG_RESPAWN_TIME;
}
}
-void BattlegroundWS::EventPlayerDroppedFlag(Player* Source)
+void BattlegroundWS::EventPlayerDroppedFlag(Player* player)
{
if (GetStatus() != STATUS_IN_PROGRESS)
{
// if not running, do not cast things at the dropper player (prevent spawning the "dropped" flag), neither send unnecessary messages
// just take off the aura
- if (Source->GetTeam() == ALLIANCE)
+ if (player->GetTeam() == ALLIANCE)
{
if (!IsHordeFlagPickedup())
return;
- if (GetFlagPickerGUID(TEAM_HORDE) == Source->GetGUID())
+
+ if (GetFlagPickerGUID(TEAM_HORDE) == player->GetGUID())
{
SetHordeFlagPicker(0);
- Source->RemoveAurasDueToSpell(BG_WS_SPELL_WARSONG_FLAG);
+ player->RemoveAurasDueToSpell(BG_WS_SPELL_WARSONG_FLAG);
}
}
else
{
if (!IsAllianceFlagPickedup())
return;
- if (GetFlagPickerGUID(TEAM_ALLIANCE) == Source->GetGUID())
+
+ if (GetFlagPickerGUID(TEAM_ALLIANCE) == player->GetGUID())
{
SetAllianceFlagPicker(0);
- Source->RemoveAurasDueToSpell(BG_WS_SPELL_SILVERWING_FLAG);
+ player->RemoveAurasDueToSpell(BG_WS_SPELL_SILVERWING_FLAG);
}
}
return;
@@ -391,20 +395,20 @@ void BattlegroundWS::EventPlayerDroppedFlag(Player* Source)
bool set = false;
- if (Source->GetTeam() == ALLIANCE)
+ if (player->GetTeam() == ALLIANCE)
{
if (!IsHordeFlagPickedup())
return;
- if (GetFlagPickerGUID(TEAM_HORDE) == Source->GetGUID())
+ if (GetFlagPickerGUID(TEAM_HORDE) == player->GetGUID())
{
SetHordeFlagPicker(0);
- Source->RemoveAurasDueToSpell(BG_WS_SPELL_WARSONG_FLAG);
+ player->RemoveAurasDueToSpell(BG_WS_SPELL_WARSONG_FLAG);
if (_flagDebuffState == 1)
- Source->RemoveAurasDueToSpell(WS_SPELL_FOCUSED_ASSAULT);
- if (_flagDebuffState == 2)
- Source->RemoveAurasDueToSpell(WS_SPELL_BRUTAL_ASSAULT);
+ player->RemoveAurasDueToSpell(WS_SPELL_FOCUSED_ASSAULT);
+ else if (_flagDebuffState == 2)
+ player->RemoveAurasDueToSpell(WS_SPELL_BRUTAL_ASSAULT);
_flagState[TEAM_HORDE] = BG_WS_FLAG_STATE_ON_GROUND;
- Source->CastSpell(Source, BG_WS_SPELL_WARSONG_FLAG_DROPPED, true);
+ player->CastSpell(player, BG_WS_SPELL_WARSONG_FLAG_DROPPED, true);
set = true;
}
}
@@ -412,41 +416,41 @@ void BattlegroundWS::EventPlayerDroppedFlag(Player* Source)
{
if (!IsAllianceFlagPickedup())
return;
- if (GetFlagPickerGUID(TEAM_ALLIANCE) == Source->GetGUID())
+ if (GetFlagPickerGUID(TEAM_ALLIANCE) == player->GetGUID())
{
SetAllianceFlagPicker(0);
- Source->RemoveAurasDueToSpell(BG_WS_SPELL_SILVERWING_FLAG);
+ player->RemoveAurasDueToSpell(BG_WS_SPELL_SILVERWING_FLAG);
if (_flagDebuffState == 1)
- Source->RemoveAurasDueToSpell(WS_SPELL_FOCUSED_ASSAULT);
- if (_flagDebuffState == 2)
- Source->RemoveAurasDueToSpell(WS_SPELL_BRUTAL_ASSAULT);
+ player->RemoveAurasDueToSpell(WS_SPELL_FOCUSED_ASSAULT);
+ else if (_flagDebuffState == 2)
+ player->RemoveAurasDueToSpell(WS_SPELL_BRUTAL_ASSAULT);
_flagState[TEAM_ALLIANCE] = BG_WS_FLAG_STATE_ON_GROUND;
- Source->CastSpell(Source, BG_WS_SPELL_SILVERWING_FLAG_DROPPED, true);
+ player->CastSpell(player, BG_WS_SPELL_SILVERWING_FLAG_DROPPED, true);
set = true;
}
}
if (set)
{
- Source->CastSpell(Source, SPELL_RECENTLY_DROPPED_FLAG, true);
- UpdateFlagState(Source->GetTeam(), 1);
+ player->CastSpell(player, SPELL_RECENTLY_DROPPED_FLAG, true);
+ UpdateFlagState(player->GetTeam(), 1);
- if (Source->GetTeam() == ALLIANCE)
+ if (player->GetTeam() == ALLIANCE)
{
- SendMessageToAll(LANG_BG_WS_DROPPED_HF, CHAT_MSG_BG_SYSTEM_HORDE, Source);
+ SendMessageToAll(LANG_BG_WS_DROPPED_HF, CHAT_MSG_BG_SYSTEM_HORDE, player);
UpdateWorldState(BG_WS_FLAG_UNK_HORDE, uint32(-1));
}
else
{
- SendMessageToAll(LANG_BG_WS_DROPPED_AF, CHAT_MSG_BG_SYSTEM_ALLIANCE, Source);
+ SendMessageToAll(LANG_BG_WS_DROPPED_AF, CHAT_MSG_BG_SYSTEM_ALLIANCE, player);
UpdateWorldState(BG_WS_FLAG_UNK_ALLIANCE, uint32(-1));
}
- _flagsDropTimer[GetTeamIndexByTeamId(Source->GetTeam()) ? 0 : 1] = BG_WS_FLAG_DROP_TIME;
+ _flagsDropTimer[GetTeamIndexByTeamId(player->GetTeam()) ? 0 : 1] = BG_WS_FLAG_DROP_TIME;
}
}
-void BattlegroundWS::EventPlayerClickedOnFlag(Player* Source, GameObject* target_obj)
+void BattlegroundWS::EventPlayerClickedOnFlag(Player* player, GameObject* target_obj)
{
if (GetStatus() != STATUS_IN_PROGRESS)
return;
@@ -455,48 +459,48 @@ void BattlegroundWS::EventPlayerClickedOnFlag(Player* Source, GameObject* target
ChatMsg type = CHAT_MSG_BG_SYSTEM_NEUTRAL;
//alliance flag picked up from base
- if (Source->GetTeam() == HORDE && GetFlagState(ALLIANCE) == BG_WS_FLAG_STATE_ON_BASE
+ if (player->GetTeam() == HORDE && GetFlagState(ALLIANCE) == BG_WS_FLAG_STATE_ON_BASE
&& BgObjects[BG_WS_OBJECT_A_FLAG] == target_obj->GetGUID())
{
message_id = LANG_BG_WS_PICKEDUP_AF;
type = CHAT_MSG_BG_SYSTEM_HORDE;
PlaySoundToAll(BG_WS_SOUND_ALLIANCE_FLAG_PICKED_UP);
SpawnBGObject(BG_WS_OBJECT_A_FLAG, RESPAWN_ONE_DAY);
- SetAllianceFlagPicker(Source->GetGUID());
+ SetAllianceFlagPicker(player->GetGUID());
_flagState[TEAM_ALLIANCE] = BG_WS_FLAG_STATE_ON_PLAYER;
//update world state to show correct flag carrier
UpdateFlagState(HORDE, BG_WS_FLAG_STATE_ON_PLAYER);
UpdateWorldState(BG_WS_FLAG_UNK_ALLIANCE, 1);
- Source->CastSpell(Source, BG_WS_SPELL_SILVERWING_FLAG, true);
- Source->StartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_SPELL_TARGET, BG_WS_SPELL_SILVERWING_FLAG_PICKED);
+ player->CastSpell(player, BG_WS_SPELL_SILVERWING_FLAG, true);
+ player->StartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_SPELL_TARGET, BG_WS_SPELL_SILVERWING_FLAG_PICKED);
if (_flagState[1] == BG_WS_FLAG_STATE_ON_PLAYER)
_bothFlagsKept = true;
}
//horde flag picked up from base
- if (Source->GetTeam() == ALLIANCE && GetFlagState(HORDE) == BG_WS_FLAG_STATE_ON_BASE
+ if (player->GetTeam() == ALLIANCE && GetFlagState(HORDE) == BG_WS_FLAG_STATE_ON_BASE
&& BgObjects[BG_WS_OBJECT_H_FLAG] == target_obj->GetGUID())
{
message_id = LANG_BG_WS_PICKEDUP_HF;
type = CHAT_MSG_BG_SYSTEM_ALLIANCE;
PlaySoundToAll(BG_WS_SOUND_HORDE_FLAG_PICKED_UP);
SpawnBGObject(BG_WS_OBJECT_H_FLAG, RESPAWN_ONE_DAY);
- SetHordeFlagPicker(Source->GetGUID());
+ SetHordeFlagPicker(player->GetGUID());
_flagState[TEAM_HORDE] = BG_WS_FLAG_STATE_ON_PLAYER;
//update world state to show correct flag carrier
UpdateFlagState(ALLIANCE, BG_WS_FLAG_STATE_ON_PLAYER);
UpdateWorldState(BG_WS_FLAG_UNK_HORDE, 1);
- Source->CastSpell(Source, BG_WS_SPELL_WARSONG_FLAG, true);
- Source->StartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_SPELL_TARGET, BG_WS_SPELL_WARSONG_FLAG_PICKED);
+ player->CastSpell(player, BG_WS_SPELL_WARSONG_FLAG, true);
+ player->StartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_SPELL_TARGET, BG_WS_SPELL_WARSONG_FLAG_PICKED);
if (_flagState[0] == BG_WS_FLAG_STATE_ON_PLAYER)
_bothFlagsKept = true;
}
//Alliance flag on ground(not in base) (returned or picked up again from ground!)
- if (GetFlagState(ALLIANCE) == BG_WS_FLAG_STATE_ON_GROUND && Source->IsWithinDistInMap(target_obj, 10)
+ if (GetFlagState(ALLIANCE) == BG_WS_FLAG_STATE_ON_GROUND && player->IsWithinDistInMap(target_obj, 10)
&& target_obj->GetGOInfo()->entry == BG_OBJECT_A_FLAG_GROUND_WS_ENTRY)
{
- if (Source->GetTeam() == ALLIANCE)
+ if (player->GetTeam() == ALLIANCE)
{
message_id = LANG_BG_WS_RETURNED_AF;
type = CHAT_MSG_BG_SYSTEM_ALLIANCE;
@@ -504,7 +508,7 @@ void BattlegroundWS::EventPlayerClickedOnFlag(Player* Source, GameObject* target
RespawnFlag(ALLIANCE, false);
SpawnBGObject(BG_WS_OBJECT_A_FLAG, RESPAWN_IMMEDIATELY);
PlaySoundToAll(BG_WS_SOUND_FLAG_RETURNED);
- UpdatePlayerScore(Source, SCORE_FLAG_RETURNS, 1);
+ UpdatePlayerScore(player, SCORE_FLAG_RETURNS, 1);
_bothFlagsKept = false;
}
else
@@ -513,14 +517,14 @@ void BattlegroundWS::EventPlayerClickedOnFlag(Player* Source, GameObject* target
type = CHAT_MSG_BG_SYSTEM_HORDE;
PlaySoundToAll(BG_WS_SOUND_ALLIANCE_FLAG_PICKED_UP);
SpawnBGObject(BG_WS_OBJECT_A_FLAG, RESPAWN_ONE_DAY);
- SetAllianceFlagPicker(Source->GetGUID());
- Source->CastSpell(Source, BG_WS_SPELL_SILVERWING_FLAG, true);
+ SetAllianceFlagPicker(player->GetGUID());
+ player->CastSpell(player, BG_WS_SPELL_SILVERWING_FLAG, true);
_flagState[TEAM_ALLIANCE] = BG_WS_FLAG_STATE_ON_PLAYER;
UpdateFlagState(HORDE, BG_WS_FLAG_STATE_ON_PLAYER);
if (_flagDebuffState == 1)
- Source->CastSpell(Source, WS_SPELL_FOCUSED_ASSAULT, true);
- if (_flagDebuffState == 2)
- Source->CastSpell(Source, WS_SPELL_BRUTAL_ASSAULT, true);
+ player->CastSpell(player, WS_SPELL_FOCUSED_ASSAULT, true);
+ else if (_flagDebuffState == 2)
+ player->CastSpell(player, WS_SPELL_BRUTAL_ASSAULT, true);
UpdateWorldState(BG_WS_FLAG_UNK_ALLIANCE, 1);
}
//called in HandleGameObjectUseOpcode:
@@ -528,10 +532,10 @@ void BattlegroundWS::EventPlayerClickedOnFlag(Player* Source, GameObject* target
}
//Horde flag on ground(not in base) (returned or picked up again)
- if (GetFlagState(HORDE) == BG_WS_FLAG_STATE_ON_GROUND && Source->IsWithinDistInMap(target_obj, 10)
+ if (GetFlagState(HORDE) == BG_WS_FLAG_STATE_ON_GROUND && player->IsWithinDistInMap(target_obj, 10)
&& target_obj->GetGOInfo()->entry == BG_OBJECT_H_FLAG_GROUND_WS_ENTRY)
{
- if (Source->GetTeam() == HORDE)
+ if (player->GetTeam() == HORDE)
{
message_id = LANG_BG_WS_RETURNED_HF;
type = CHAT_MSG_BG_SYSTEM_HORDE;
@@ -539,7 +543,7 @@ void BattlegroundWS::EventPlayerClickedOnFlag(Player* Source, GameObject* target
RespawnFlag(HORDE, false);
SpawnBGObject(BG_WS_OBJECT_H_FLAG, RESPAWN_IMMEDIATELY);
PlaySoundToAll(BG_WS_SOUND_FLAG_RETURNED);
- UpdatePlayerScore(Source, SCORE_FLAG_RETURNS, 1);
+ UpdatePlayerScore(player, SCORE_FLAG_RETURNS, 1);
_bothFlagsKept = false;
}
else
@@ -548,14 +552,14 @@ void BattlegroundWS::EventPlayerClickedOnFlag(Player* Source, GameObject* target
type = CHAT_MSG_BG_SYSTEM_ALLIANCE;
PlaySoundToAll(BG_WS_SOUND_HORDE_FLAG_PICKED_UP);
SpawnBGObject(BG_WS_OBJECT_H_FLAG, RESPAWN_ONE_DAY);
- SetHordeFlagPicker(Source->GetGUID());
- Source->CastSpell(Source, BG_WS_SPELL_WARSONG_FLAG, true);
+ SetHordeFlagPicker(player->GetGUID());
+ player->CastSpell(player, BG_WS_SPELL_WARSONG_FLAG, true);
_flagState[TEAM_HORDE] = BG_WS_FLAG_STATE_ON_PLAYER;
UpdateFlagState(ALLIANCE, BG_WS_FLAG_STATE_ON_PLAYER);
if (_flagDebuffState == 1)
- Source->CastSpell(Source, WS_SPELL_FOCUSED_ASSAULT, true);
- if (_flagDebuffState == 2)
- Source->CastSpell(Source, WS_SPELL_BRUTAL_ASSAULT, true);
+ player->CastSpell(player, WS_SPELL_FOCUSED_ASSAULT, true);
+ else if (_flagDebuffState == 2)
+ player->CastSpell(player, WS_SPELL_BRUTAL_ASSAULT, true);
UpdateWorldState(BG_WS_FLAG_UNK_HORDE, 1);
}
//called in HandleGameObjectUseOpcode:
@@ -565,8 +569,8 @@ void BattlegroundWS::EventPlayerClickedOnFlag(Player* Source, GameObject* target
if (!message_id)
return;
- SendMessageToAll(message_id, type, Source);
- Source->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_ENTER_PVP_COMBAT);
+ SendMessageToAll(message_id, type, player);
+ player->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_ENTER_PVP_COMBAT);
}
void BattlegroundWS::RemovePlayer(Player* player, uint64 guid, uint32 /*team*/)
@@ -660,7 +664,7 @@ void BattlegroundWS::HandleAreaTrigger(Player* player, uint32 trigger)
}
//if (buff_guid)
- // HandleTriggerBuff(buff_guid, Source);
+ // HandleTriggerBuff(buff_guid, player);
}
bool BattlegroundWS::SetupBattleground()
@@ -773,9 +777,9 @@ void BattlegroundWS::HandleKillPlayer(Player* player, Player* killer)
Battleground::HandleKillPlayer(player, killer);
}
-void BattlegroundWS::UpdatePlayerScore(Player* Source, uint32 type, uint32 value, bool doAddHonor)
+void BattlegroundWS::UpdatePlayerScore(Player* player, uint32 type, uint32 value, bool doAddHonor)
{
- BattlegroundScoreMap::iterator itr = PlayerScores.find(Source->GetGUID());
+ BattlegroundScoreMap::iterator itr = PlayerScores.find(player->GetGUID());
if (itr == PlayerScores.end()) // player not found
return;
@@ -783,14 +787,14 @@ void BattlegroundWS::UpdatePlayerScore(Player* Source, uint32 type, uint32 value
{
case SCORE_FLAG_CAPTURES: // flags captured
((BattlegroundWGScore*)itr->second)->FlagCaptures += value;
- Source->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE, WS_OBJECTIVE_CAPTURE_FLAG);
+ player->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE, WS_OBJECTIVE_CAPTURE_FLAG);
break;
case SCORE_FLAG_RETURNS: // flags returned
((BattlegroundWGScore*)itr->second)->FlagReturns += value;
- Source->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE, WS_OBJECTIVE_RETURN_FLAG);
+ player->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE, WS_OBJECTIVE_RETURN_FLAG);
break;
default:
- Battleground::UpdatePlayerScore(Source, type, value, doAddHonor);
+ Battleground::UpdatePlayerScore(player, type, value, doAddHonor);
break;
}
}
@@ -867,3 +871,16 @@ uint32 BattlegroundWS::GetPrematureWinner()
return Battleground::GetPrematureWinner();
}
+
+bool BattlegroundWS::CheckAchievementCriteriaMeet(uint32 criteriaId, Player const* player, Unit const* target, uint32 miscValue)
+{
+ switch (criteriaId)
+ {
+ case BG_CRITERIA_CHECK_SAVE_THE_DAY:
+ if (GetFlagState(player->GetTeam()) == BG_WS_FLAG_STATE_ON_BASE)
+ return true;
+ break;
+ }
+
+ return Battleground::CheckAchievementCriteriaMeet(criteriaId, player, target, miscValue);
+}
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundWS.h b/src/server/game/Battlegrounds/Zones/BattlegroundWS.h
index 3501999963f..4b95fcf6afd 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundWS.h
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundWS.h
@@ -182,12 +182,12 @@ class BattlegroundWS : public Battleground
uint8 GetFlagState(uint32 team) { return _flagState[GetTeamIndexByTeamId(team)]; }
/* Battleground Events */
- void EventPlayerDroppedFlag(Player* Source);
- void EventPlayerClickedOnFlag(Player* Source, GameObject* target_obj);
- void EventPlayerCapturedFlag(Player* Source);
+ void EventPlayerDroppedFlag(Player* player);
+ void EventPlayerClickedOnFlag(Player* player, GameObject* target_obj);
+ void EventPlayerCapturedFlag(Player* player);
void RemovePlayer(Player* player, uint64 guid, uint32 team);
- void HandleAreaTrigger(Player* Source, uint32 Trigger);
+ void HandleAreaTrigger(Player* player, uint32 trigger);
void HandleKillPlayer(Player* player, Player* killer);
bool SetupBattleground();
void Reset();
@@ -197,7 +197,7 @@ class BattlegroundWS : public Battleground
void UpdateFlagState(uint32 team, uint32 value);
void SetLastFlagCapture(uint32 team) { _lastFlagCaptureTeam = team; }
void UpdateTeamScore(uint32 team);
- void UpdatePlayerScore(Player* Source, uint32 type, uint32 value, bool doAddHonor = true);
+ void UpdatePlayerScore(Player* player, uint32 type, uint32 value, bool doAddHonor = true);
void SetDroppedFlagGUID(uint64 guid, int32 team = -1)
{
if (team == TEAM_ALLIANCE || team == TEAM_HORDE)
@@ -213,6 +213,10 @@ class BattlegroundWS : public Battleground
void RemovePoint(uint32 TeamID, uint32 Points = 1) { m_TeamScores[GetTeamIndexByTeamId(TeamID)] -= Points; }
uint32 GetPrematureWinner();
+
+ /* Achievements*/
+ bool CheckAchievementCriteriaMeet(uint32 criteriaId, Player const* source, Unit const* target = NULL, uint32 miscvalue1 = 0);
+
private:
uint64 m_FlagKeepers[2]; // 0 - alliance, 1 - horde
uint64 m_DroppedFlagGUID[2];
diff --git a/src/server/game/Calendar/CalendarMgr.cpp b/src/server/game/Calendar/CalendarMgr.cpp
index fef79937ebb..d2a166c492c 100644
--- a/src/server/game/Calendar/CalendarMgr.cpp
+++ b/src/server/game/Calendar/CalendarMgr.cpp
@@ -159,20 +159,20 @@ void CalendarMgr::RemoveEvent(uint64 eventId, uint64 remover)
PreparedStatement* stmt;
MailDraft mail(calendarEvent->BuildCalendarMailSubject(remover), calendarEvent->BuildCalendarMailBody());
- CalendarInviteStore::iterator itr = _invites[eventId].begin();
- while (itr != _invites[eventId].end())
+ CalendarInviteStore& eventInvites = _invites[eventId];
+ for (size_t i = 0; i < eventInvites.size(); ++i)
{
+ CalendarInvite* invite = eventInvites[i];
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CALENDAR_INVITE);
- stmt->setUInt64(0, (*itr)->GetInviteId());
+ stmt->setUInt64(0, invite->GetInviteId());
trans->Append(stmt);
// guild events only? check invite status here?
// When an event is deleted, all invited (accepted/declined? - verify) guildies are notified via in-game mail. (wowwiki)
- if (remover && (*itr)->GetInviteeGUID() != remover)
- mail.SendMailTo(trans, MailReceiver((*itr)->GetInviteeGUID()), calendarEvent, MAIL_CHECK_MASK_COPIED);
+ if (remover && invite->GetInviteeGUID() != remover)
+ mail.SendMailTo(trans, MailReceiver(invite->GetInviteeGUID()), calendarEvent, MAIL_CHECK_MASK_COPIED);
- delete *itr;
- _invites[eventId].erase(itr);
+ delete invite;
}
_invites.erase(eventId);
diff --git a/src/server/game/Chat/Chat.cpp b/src/server/game/Chat/Chat.cpp
index c374352acd8..0b18a04c5ca 100644
--- a/src/server/game/Chat/Chat.cpp
+++ b/src/server/game/Chat/Chat.cpp
@@ -80,8 +80,8 @@ ChatCommand* ChatHandler::getCommandTable()
// cache top-level commands
size_t added = 0;
commandTableCache = (ChatCommand*)malloc(sizeof(ChatCommand) * total);
+ ASSERT(commandTableCache);
memset(commandTableCache, 0, sizeof(ChatCommand) * total);
- ACE_ASSERT(commandTableCache);
for (std::vector<ChatCommand*>::const_iterator it = dynamic.begin(); it != dynamic.end(); ++it)
added += appendCommandTable(commandTableCache + added, *it);
}
@@ -143,7 +143,7 @@ bool ChatHandler::isAvailable(ChatCommand const& cmd) const
return m_session->GetSecurity() >= AccountTypes(cmd.SecurityLevel);
}
- return m_session->HasPermission(permission);
+ return HasPermission(permission);
}
bool ChatHandler::HasLowerSecurity(Player* target, uint64 guid, bool strong)
@@ -205,7 +205,7 @@ bool ChatHandler::hasStringAbbr(const char* name, const char* part)
if (!*part)
return false;
- for (;;)
+ while (true)
{
if (!*part)
return true;
diff --git a/src/server/game/Chat/Chat.h b/src/server/game/Chat/Chat.h
index 4b93ddc1f42..b6798a9e391 100644
--- a/src/server/game/Chat/Chat.h
+++ b/src/server/game/Chat/Chat.h
@@ -86,6 +86,7 @@ class ChatHandler
// function with different implementation for chat/console
virtual bool isAvailable(ChatCommand const& cmd) const;
+ virtual bool HasPermission(uint32 permission) const { return m_session->HasPermission(permission); }
virtual std::string GetNameLink() const { return GetNameLink(m_session->GetPlayer()); }
virtual bool needReportToTarget(Player* chr) const;
virtual LocaleConstant GetSessionDbcLocale() const;
@@ -149,6 +150,7 @@ class CliHandler : public ChatHandler
// overwrite functions
const char *GetTrinityString(int32 entry) const;
bool isAvailable(ChatCommand const& cmd) const;
+ bool HasPermission(uint32 /*permission*/) const { return true; }
void SendSysMessage(const char *str);
std::string GetNameLink() const;
bool needReportToTarget(Player* chr) const;
diff --git a/src/server/game/Combat/HostileRefManager.cpp b/src/server/game/Combat/HostileRefManager.cpp
index 5b228229e89..4cd76b4e7a2 100644
--- a/src/server/game/Combat/HostileRefManager.cpp
+++ b/src/server/game/Combat/HostileRefManager.cpp
@@ -40,8 +40,8 @@ void HostileRefManager::threatAssist(Unit* victim, float baseThreat, SpellInfo c
threat /= getSize();
while (ref)
{
- if (ThreatCalcHelper::isValidProcess(victim, ref->getSource()->getOwner(), threatSpell))
- ref->getSource()->doAddThreat(victim, threat);
+ if (ThreatCalcHelper::isValidProcess(victim, ref->GetSource()->GetOwner(), threatSpell))
+ ref->GetSource()->doAddThreat(victim, threat);
ref = ref->next();
}
@@ -130,7 +130,7 @@ void HostileRefManager::deleteReferencesForFaction(uint32 faction)
while (ref)
{
HostileReference* nextRef = ref->next();
- if (ref->getSource()->getOwner()->getFactionTemplateEntry()->faction == faction)
+ if (ref->GetSource()->GetOwner()->GetFactionTemplateEntry()->faction == faction)
{
ref->removeReference();
delete ref;
@@ -148,7 +148,7 @@ void HostileRefManager::deleteReference(Unit* creature)
while (ref)
{
HostileReference* nextRef = ref->next();
- if (ref->getSource()->getOwner() == creature)
+ if (ref->GetSource()->GetOwner() == creature)
{
ref->removeReference();
delete ref;
@@ -167,7 +167,7 @@ void HostileRefManager::setOnlineOfflineState(Unit* creature, bool isOnline)
while (ref)
{
HostileReference* nextRef = ref->next();
- if (ref->getSource()->getOwner() == creature)
+ if (ref->GetSource()->GetOwner() == creature)
{
ref->setOnlineOfflineState(isOnline);
break;
@@ -184,7 +184,7 @@ void HostileRefManager::UpdateVisibility()
while (ref)
{
HostileReference* nextRef = ref->next();
- if (!ref->getSource()->getOwner()->canSeeOrDetect(getOwner()))
+ if (!ref->GetSource()->GetOwner()->CanSeeOrDetect(GetOwner()))
{
nextRef = ref->next();
ref->removeReference();
diff --git a/src/server/game/Combat/HostileRefManager.h b/src/server/game/Combat/HostileRefManager.h
index e1d3fd5ed84..84c8db8bff0 100644
--- a/src/server/game/Combat/HostileRefManager.h
+++ b/src/server/game/Combat/HostileRefManager.h
@@ -37,7 +37,7 @@ class HostileRefManager : public RefManager<Unit, ThreatManager>
explicit HostileRefManager(Unit* owner) { iOwner = owner; }
~HostileRefManager();
- Unit* getOwner() { return iOwner; }
+ Unit* GetOwner() { return iOwner; }
// send threat to all my hateres for the victim
// The victim is hated than by them as well
diff --git a/src/server/game/Combat/ThreatManager.cpp b/src/server/game/Combat/ThreatManager.cpp
index 249c1696348..b24979d9131 100644
--- a/src/server/game/Combat/ThreatManager.cpp
+++ b/src/server/game/Combat/ThreatManager.cpp
@@ -67,11 +67,11 @@ bool ThreatCalcHelper::isValidProcess(Unit* hatedUnit, Unit* hatingUnit, SpellIn
return false;
// not to GM
- if (hatedUnit->GetTypeId() == TYPEID_PLAYER && hatedUnit->ToPlayer()->isGameMaster())
+ if (hatedUnit->GetTypeId() == TYPEID_PLAYER && hatedUnit->ToPlayer()->IsGameMaster())
return false;
// not to dead and not for dead
- if (!hatedUnit->isAlive() || !hatingUnit->isAlive())
+ if (!hatedUnit->IsAlive() || !hatingUnit->IsAlive())
return false;
// not in same map or phase
@@ -128,8 +128,8 @@ void HostileReference::sourceObjectDestroyLink()
void HostileReference::fireStatusChanged(ThreatRefStatusChangeEvent& threatRefStatusChangeEvent)
{
- if (getSource())
- getSource()->processThreatEvent(&threatRefStatusChangeEvent);
+ if (GetSource())
+ GetSource()->processThreatEvent(&threatRefStatusChangeEvent);
}
//============================================================
@@ -150,8 +150,8 @@ void HostileReference::addThreat(float modThreat)
if (isValid() && modThreat >= 0.0f)
{
Unit* victimOwner = getTarget()->GetCharmerOrOwner();
- if (victimOwner && victimOwner->isAlive())
- getSource()->addThreat(victimOwner, 0.0f); // create a threat to the owner of a pet, if the pet attacks
+ if (victimOwner && victimOwner->IsAlive())
+ GetSource()->addThreat(victimOwner, 0.0f); // create a threat to the owner of a pet, if the pet attacks
}
}
@@ -171,21 +171,21 @@ void HostileReference::updateOnlineStatus()
bool accessible = false;
if (!isValid())
- if (Unit* target = ObjectAccessor::GetUnit(*getSourceUnit(), getUnitGuid()))
- link(target, getSource());
+ if (Unit* target = ObjectAccessor::GetUnit(*GetSourceUnit(), getUnitGuid()))
+ link(target, GetSource());
// only check for online status if
// ref is valid
// target is no player or not gamemaster
// target is not in flight
if (isValid()
- && (getTarget()->GetTypeId() != TYPEID_PLAYER || !getTarget()->ToPlayer()->isGameMaster())
+ && (getTarget()->GetTypeId() != TYPEID_PLAYER || !getTarget()->ToPlayer()->IsGameMaster())
&& !getTarget()->HasUnitState(UNIT_STATE_IN_FLIGHT)
- && getTarget()->IsInMap(getSourceUnit())
- && getTarget()->InSamePhase(getSourceUnit())
+ && getTarget()->IsInMap(GetSourceUnit())
+ && getTarget()->InSamePhase(GetSourceUnit())
)
{
- Creature* creature = getSourceUnit()->ToCreature();
+ Creature* creature = GetSourceUnit()->ToCreature();
online = getTarget()->isInAccessiblePlaceFor(creature);
if (!online)
{
@@ -242,9 +242,9 @@ void HostileReference::removeReference()
//============================================================
-Unit* HostileReference::getSourceUnit()
+Unit* HostileReference::GetSourceUnit()
{
- return (getSource()->getOwner());
+ return (GetSource()->GetOwner());
}
//============================================================
@@ -350,14 +350,14 @@ HostileReference* ThreatContainer::selectNextVictim(Creature* attacker, HostileR
}
}
- if (attacker->canCreatureAttack(target)) // skip non attackable currently targets
+ if (attacker->CanCreatureAttack(target)) // skip non attackable currently targets
{
if (currentVictim) // select 1.3/1.1 better target in comparison current target
{
// list sorted and and we check current target, then this is best case
if (currentVictim == currentRef || currentRef->getThreat() <= 1.1f * currentVictim->getThreat())
{
- if (currentVictim != currentRef && attacker->canCreatureAttack(currentVictim->getTarget()))
+ if (currentVictim != currentRef && attacker->CanCreatureAttack(currentVictim->getTarget()))
currentRef = currentVictim; // for second case, if currentvictim is attackable
found = true;
@@ -408,7 +408,7 @@ void ThreatManager::clearReferences()
void ThreatManager::addThreat(Unit* victim, float threat, SpellSchoolMask schoolMask, SpellInfo const* threatSpell)
{
- if (!ThreatCalcHelper::isValidProcess(victim, getOwner(), threatSpell))
+ if (!ThreatCalcHelper::isValidProcess(victim, GetOwner(), threatSpell))
return;
doAddThreat(victim, ThreatCalcHelper::calcThreat(victim, iOwner, threat, schoolMask, threatSpell));
@@ -445,7 +445,7 @@ void ThreatManager::_addThreat(Unit* victim, float threat)
HostileReference* hostileRef = new HostileReference(victim, this, 0);
iThreatContainer.addReference(hostileRef);
hostileRef->addThreat(threat); // now we add the real threat
- if (victim->GetTypeId() == TYPEID_PLAYER && victim->ToPlayer()->isGameMaster())
+ if (victim->GetTypeId() == TYPEID_PLAYER && victim->ToPlayer()->IsGameMaster())
hostileRef->setOnlineOfflineState(false); // GM is always offline
}
}
@@ -462,7 +462,7 @@ void ThreatManager::modifyThreatPercent(Unit* victim, int32 percent)
Unit* ThreatManager::getHostilTarget()
{
iThreatContainer.update();
- HostileReference* nextVictim = iThreatContainer.selectNextVictim(getOwner()->ToCreature(), getCurrentVictim());
+ HostileReference* nextVictim = iThreatContainer.selectNextVictim(GetOwner()->ToCreature(), getCurrentVictim());
setCurrentVictim(nextVictim);
return getCurrentVictim() != NULL ? getCurrentVictim()->getTarget() : NULL;
}
diff --git a/src/server/game/Combat/ThreatManager.h b/src/server/game/Combat/ThreatManager.h
index 8162ad50eb7..9b249bd4bee 100644
--- a/src/server/game/Combat/ThreatManager.h
+++ b/src/server/game/Combat/ThreatManager.h
@@ -128,7 +128,7 @@ class HostileReference : public Reference<Unit, ThreatManager>
// Inform the source, that the status of that reference was changed
void fireStatusChanged(ThreatRefStatusChangeEvent& threatRefStatusChangeEvent);
- Unit* getSourceUnit();
+ Unit* GetSourceUnit();
private:
float iThreat;
float iTempThreatModifier; // used for taunt
@@ -224,7 +224,7 @@ class ThreatManager
HostileReference* getCurrentVictim() const { return iCurrentVictim; }
- Unit* getOwner() const { return iOwner; }
+ Unit* GetOwner() const { return iOwner; }
Unit* getHostilTarget();
diff --git a/src/server/game/Conditions/ConditionMgr.cpp b/src/server/game/Conditions/ConditionMgr.cpp
index 9b1cfed7038..ada7909e9ff 100644
--- a/src/server/game/Conditions/ConditionMgr.cpp
+++ b/src/server/game/Conditions/ConditionMgr.cpp
@@ -275,7 +275,7 @@ bool Condition::Meets(ConditionSourceInfo& sourceInfo)
case CONDITION_ALIVE:
{
if (Unit* unit = object->ToUnit())
- condMeets = unit->isAlive();
+ condMeets = unit->IsAlive();
break;
}
case CONDITION_HP_VAL:
@@ -317,6 +317,12 @@ bool Condition::Meets(ConditionSourceInfo& sourceInfo)
condMeets = unit->HasUnitState(ConditionValue1);
break;
}
+ case CONDITION_CREATURE_TYPE:
+ {
+ if (Creature* creature = object->ToCreature())
+ condMeets = creature->GetCreatureTemplate()->type == ConditionValue1;
+ break;
+ }
default:
condMeets = false;
break;
@@ -478,6 +484,9 @@ uint32 Condition::GetSearcherTypeMaskForCondition()
case CONDITION_UNIT_STATE:
mask |= GRID_MAP_TYPE_MASK_CREATURE | GRID_MAP_TYPE_MASK_PLAYER;
break;
+ case CONDITION_CREATURE_TYPE:
+ mask |= GRID_MAP_TYPE_MASK_CREATURE;
+ break;
default:
ASSERT(false && "Condition::GetSearcherTypeMaskForCondition - missing condition handling!");
break;
@@ -1110,6 +1119,9 @@ bool ConditionMgr::addToSpellImplicitTargetConditions(Condition* cond)
if ((1<<firstEffIndex) & *itr)
break;
+ if (firstEffIndex >= MAX_SPELL_EFFECTS)
+ return false;
+
// get shared data
ConditionList* sharedList = spellInfo->Effects[firstEffIndex].ImplicitTargetConditions;
@@ -1129,9 +1141,18 @@ bool ConditionMgr::addToSpellImplicitTargetConditions(Condition* cond)
{
// add new list, create new shared mask
sharedList = new ConditionList();
+ bool assigned = false;
for (uint8 i = firstEffIndex; i < MAX_SPELL_EFFECTS; ++i)
+ {
if ((1<<i) & commonMask)
+ {
spellInfo->Effects[i].ImplicitTargetConditions = sharedList;
+ assigned = true;
+ }
+ }
+
+ if (!assigned)
+ delete sharedList;
}
sharedList->push_back(cond);
break;
@@ -1612,7 +1633,7 @@ bool ConditionMgr::isConditionTypeValid(Condition* cond)
if (cond->ConditionValue2 < 1 || cond->ConditionValue2 > sWorld->GetConfigMaxSkillValue())
{
- TC_LOG_ERROR(LOG_FILTER_SQL, "Skill condition specifies invalid skill value (%u), skipped", cond->ConditionValue2);
+ TC_LOG_ERROR(LOG_FILTER_SQL, "Skill condition specifies skill (%u) with invalid value (%u), skipped", cond->ConditionValue1, cond->ConditionValue2);
return false;
}
if (cond->ConditionValue3)
@@ -1626,7 +1647,8 @@ bool ConditionMgr::isConditionTypeValid(Condition* cond)
{
if (!sObjectMgr->GetQuestTemplate(cond->ConditionValue1))
{
- TC_LOG_ERROR(LOG_FILTER_SQL, "Quest condition specifies non-existing quest (%u), skipped", cond->ConditionValue1);
+ TC_LOG_ERROR(LOG_FILTER_SQL, "Quest condition (Type: %u) points to non-existing quest (%u) for Source Entry %u. SourceGroup: %u, SourceTypeOrReferenceId: %u",
+ cond->ConditionType, cond->ConditionValue1, cond->SourceEntry, cond->SourceGroup, cond->SourceType);
return false;
}
@@ -1976,9 +1998,15 @@ bool ConditionMgr::isConditionTypeValid(Condition* cond)
}
break;
}
- case CONDITION_UNUSED_24:
- TC_LOG_ERROR(LOG_FILTER_SQL, "Found ConditionTypeOrReference = CONDITION_UNUSED_24 in `conditions` table - ignoring");
- return false;
+ case CONDITION_CREATURE_TYPE:
+ {
+ if (!cond->ConditionValue1 || cond->ConditionValue1 > CREATURE_TYPE_GAS_CLOUD)
+ {
+ TC_LOG_ERROR(LOG_FILTER_SQL, "CreatureType condition has non existing CreatureType in value1 (%u), skipped", cond->ConditionValue1);
+ return false;
+ }
+ break;
+ }
default:
break;
}
diff --git a/src/server/game/Conditions/ConditionMgr.h b/src/server/game/Conditions/ConditionMgr.h
index b49626747a6..07eab29e53a 100644
--- a/src/server/game/Conditions/ConditionMgr.h
+++ b/src/server/game/Conditions/ConditionMgr.h
@@ -57,7 +57,7 @@ enum ConditionTypes
CONDITION_UNIT_STATE = 21, // unitState 0 0 true if unit has unitState
CONDITION_MAPID = 22, // map_id 0 0 true if in map_id
CONDITION_AREAID = 23, // area_id 0 0 true if in area_id
- CONDITION_UNUSED_24 = 24, //
+ CONDITION_CREATURE_TYPE = 24, // cinfo.type 0 0 true if creature_template.type = value1
CONDITION_SPELL = 25, // spell_id 0 0 true if player has learned spell
CONDITION_PHASEMASK = 26, // phasemask 0 0 true if object is in phasemask
CONDITION_LEVEL = 27, // level ComparisonType 0 true if unit's level is equal to param1 (param2 can modify the statement)
@@ -160,7 +160,7 @@ enum InstanceInfo
INSTANCE_INFO_BOSS_STATE
};
-enum
+enum MaxConditionTargets
{
MAX_CONDITION_TARGETS = 3
};
diff --git a/src/server/game/Conditions/DisableMgr.cpp b/src/server/game/Conditions/DisableMgr.cpp
index 45bbfe565fc..529ca8dc9ec 100644
--- a/src/server/game/Conditions/DisableMgr.cpp
+++ b/src/server/game/Conditions/DisableMgr.cpp
@@ -309,7 +309,7 @@ bool IsDisabledFor(DisableType type, uint32 entry, Unit const* unit, uint8 flags
if (unit)
{
if ((spellFlags & SPELL_DISABLE_PLAYER && unit->GetTypeId() == TYPEID_PLAYER) ||
- (unit->GetTypeId() == TYPEID_UNIT && ((unit->ToCreature()->isPet() && spellFlags & SPELL_DISABLE_PET) || spellFlags & SPELL_DISABLE_CREATURE)))
+ (unit->GetTypeId() == TYPEID_UNIT && ((unit->ToCreature()->IsPet() && spellFlags & SPELL_DISABLE_PET) || spellFlags & SPELL_DISABLE_CREATURE)))
{
if (spellFlags & SPELL_DISABLE_MAP)
{
@@ -372,7 +372,7 @@ bool IsDisabledFor(DisableType type, uint32 entry, Unit const* unit, uint8 flags
if (!unit)
return true;
if (Player const* player = unit->ToPlayer())
- if (player->isGameMaster())
+ if (player->IsGameMaster())
return false;
return true;
case DISABLE_TYPE_BATTLEGROUND:
diff --git a/src/server/game/DataStores/DBCEnums.h b/src/server/game/DataStores/DBCEnums.h
index c4283bbca8a..a7189ea415a 100644
--- a/src/server/game/DataStores/DBCEnums.h
+++ b/src/server/game/DataStores/DBCEnums.h
@@ -409,7 +409,7 @@ enum VehicleSeatFlags
VEHICLE_SEAT_FLAG_UNK18 = 0x00020000, // Needs research and support (28 vehicles): Allow entering vehicles while keeping specific permanent(?) auras that impose visuals (states like beeing under freeze/stun mechanic, emote state animations).
VEHICLE_SEAT_FLAG_HAS_VEH_EXIT_ANIM_VOLUNTARY_EXIT = 0x00040000,
VEHICLE_SEAT_FLAG_HAS_VEH_EXIT_ANIM_FORCED_EXIT = 0x00080000,
- VEHICLE_SEAT_FLAG_UNK21 = 0x00100000,
+ VEHICLE_SEAT_FLAG_PASSENGER_NOT_SELECTABLE = 0x00100000,
VEHICLE_SEAT_FLAG_UNK22 = 0x00200000,
VEHICLE_SEAT_FLAG_REC_HAS_VEHICLE_ENTER_ANIM = 0x00400000,
VEHICLE_SEAT_FLAG_IS_USING_VEHICLE_CONTROLS = 0x00800000, // Lua_IsUsingVehicleControls
diff --git a/src/server/game/DataStores/DBCStores.cpp b/src/server/game/DataStores/DBCStores.cpp
index ebe3792420b..71fbf1c62b2 100644
--- a/src/server/game/DataStores/DBCStores.cpp
+++ b/src/server/game/DataStores/DBCStores.cpp
@@ -508,10 +508,9 @@ void LoadDBCStores(const std::string& dataPath)
continue;
// store class talent tab pages
- uint32 cls = 1;
- for (uint32 m=1; !(m & talentTabInfo->ClassMask) && cls < MAX_CLASSES; m <<= 1, ++cls) {}
-
- sTalentTabPages[cls][talentTabInfo->tabpage]=talentTabId;
+ for (uint32 cls = 1; cls < MAX_CLASSES; ++cls)
+ if (talentTabInfo->ClassMask & (1 << (cls - 1)))
+ sTalentTabPages[cls][talentTabInfo->tabpage] = talentTabId;
}
}
@@ -723,6 +722,18 @@ AreaTableEntry const* GetAreaEntryByAreaFlagAndMap(uint32 area_flag, uint32 map_
return NULL;
}
+char const* GetRaceName(uint8 race, uint8 locale)
+{
+ ChrRacesEntry const* raceEntry = sChrRacesStore.LookupEntry(race);
+ return raceEntry ? raceEntry->name[locale] : NULL;
+}
+
+char const* GetClassName(uint8 class_, uint8 locale)
+{
+ ChrClassesEntry const* classEntry = sChrClassesStore.LookupEntry(class_);
+ return classEntry ? classEntry->name[locale] : NULL;
+}
+
uint32 GetAreaFlagByMapId(uint32 mapid)
{
AreaFlagByMapID::iterator i = sAreaFlagByMapID.find(mapid);
@@ -902,7 +913,7 @@ LFGDungeonEntry const* GetLFGDungeon(uint32 mapId, Difficulty difficulty)
if (!dungeon)
continue;
- if (dungeon->map == (int)mapId && Difficulty(dungeon->difficulty) == difficulty)
+ if (dungeon->map == int32(mapId) && Difficulty(dungeon->difficulty) == difficulty)
return dungeon;
}
diff --git a/src/server/game/DataStores/DBCStores.h b/src/server/game/DataStores/DBCStores.h
index 3efdeec0268..cac93a120a5 100644
--- a/src/server/game/DataStores/DBCStores.h
+++ b/src/server/game/DataStores/DBCStores.h
@@ -37,6 +37,9 @@ AreaTableEntry const* GetAreaEntryByAreaID(uint32 area_id);
AreaTableEntry const* GetAreaEntryByAreaFlagAndMap(uint32 area_flag, uint32 map_id);
uint32 GetAreaFlagByMapId(uint32 mapid);
+char const* GetRaceName(uint8 race, uint8 locale);
+char const* GetClassName(uint8 class_, uint8 locale);
+
WMOAreaTableEntry const* GetWMOAreaTableEntryByTripple(int32 rootid, int32 adtid, int32 groupid);
uint32 GetVirtualMapForMapAndZone(uint32 mapid, uint32 zoneId);
diff --git a/src/server/game/DataStores/DBCStructure.h b/src/server/game/DataStores/DBCStructure.h
index a8c2f1b132e..c371fc781fd 100644
--- a/src/server/game/DataStores/DBCStructure.h
+++ b/src/server/game/DataStores/DBCStructure.h
@@ -674,7 +674,7 @@ struct ChrClassesEntry
// 1, unused
uint32 powerType; // 2
// 3-4, unused
- //char* name[16]; // 5-20 unused
+ char* name[16]; // 5-20 unused
// 21 string flag, unused
//char* nameFemale[16]; // 21-36 unused, if different from base (male) case
// 37 string flag, unused
diff --git a/src/server/game/DataStores/DBCfmt.h b/src/server/game/DataStores/DBCfmt.h
index a07d3abb52a..a81eec51338 100644
--- a/src/server/game/DataStores/DBCfmt.h
+++ b/src/server/game/DataStores/DBCfmt.h
@@ -35,7 +35,7 @@ char const BattlemasterListEntryfmt[] = "niiiiiiiiixssssssssssssssssxiixx";
char const CharStartOutfitEntryfmt[] = "dbbbXiiiiiiiiiiiiiiiiiiiiiiiixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
char const CharTitlesEntryfmt[] = "nxssssssssssssssssxxxxxxxxxxxxxxxxxxi";
char const ChatChannelsEntryfmt[] = "nixssssssssssssssssxxxxxxxxxxxxxxxxxx";
-char const ChrClassesEntryfmt[] = "nxixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxixii";
+char const ChrClassesEntryfmt[] = "nxixssssssssssssssssxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxixii";
char const ChrRacesEntryfmt[] = "nxixiixixxxxixssssssssssssssssxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxi";
char const CinematicSequencesEntryfmt[] = "nxxxxxxxxx";
char const CreatureDisplayInfofmt[] = "nixxfxxxxxxxxxxx";
diff --git a/src/server/game/DungeonFinding/LFGMgr.cpp b/src/server/game/DungeonFinding/LFGMgr.cpp
index 52e3ab25319..9579165d712 100644
--- a/src/server/game/DungeonFinding/LFGMgr.cpp
+++ b/src/server/game/DungeonFinding/LFGMgr.cpp
@@ -447,7 +447,7 @@ void LFGMgr::InitializeLockedDungeons(Player* player, uint8 level /* = 0 */)
void LFGMgr::JoinLfg(Player* player, uint8 roles, LfgDungeonSet& dungeons, const std::string& comment)
{
if (!player || !player->GetSession() || dungeons.empty())
- return;
+ return;
Group* grp = player->GetGroup();
uint64 guid = player->GetGUID();
@@ -492,7 +492,7 @@ void LFGMgr::JoinLfg(Player* player, uint8 roles, LfgDungeonSet& dungeons, const
uint8 memberCount = 0;
for (GroupReference* itr = grp->GetFirstMember(); itr != NULL && joinData.result == LFG_JOIN_OK; itr = itr->next())
{
- if (Player* plrg = itr->getSource())
+ if (Player* plrg = itr->GetSource())
{
if (!plrg->GetSession()->HasPermission(RBAC_PERM_JOIN_DUNGEON_FINDER))
joinData.result = LFG_JOIN_PARTY_NOT_MEET_REQS;
@@ -602,7 +602,7 @@ void LFGMgr::JoinLfg(Player* player, uint8 roles, LfgDungeonSet& dungeons, const
LfgUpdateData updateData = LfgUpdateData(LFG_UPDATETYPE_JOIN_QUEUE, dungeons, comment);
for (GroupReference* itr = grp->GetFirstMember(); itr != NULL; itr = itr->next())
{
- if (Player* plrg = itr->getSource())
+ if (Player* plrg = itr->GetSource())
{
uint64 pguid = plrg->GetGUID();
plrg->GetSession()->SendLfgUpdateParty(updateData);
@@ -1327,7 +1327,7 @@ void LFGMgr::TeleportPlayer(Player* player, bool out, bool fromOpcode /*= false*
LfgTeleportError error = LFG_TELEPORTERROR_OK;
- if (!player->isAlive())
+ if (!player->IsAlive())
error = LFG_TELEPORTERROR_PLAYER_DEAD;
else if (player->IsFalling() || player->HasUnitState(UNIT_STATE_JUMPING))
error = LFG_TELEPORTERROR_FALLING;
@@ -1350,7 +1350,7 @@ void LFGMgr::TeleportPlayer(Player* player, bool out, bool fromOpcode /*= false*
// Select a player inside to be teleported to
for (GroupReference* itr = group->GetFirstMember(); itr != NULL && !mapid; itr = itr->next())
{
- Player* plrg = itr->getSource();
+ Player* plrg = itr->GetSource();
if (plrg && plrg != player && plrg->GetMapId() == uint32(dungeon->map))
{
mapid = plrg->GetMapId();
@@ -1366,7 +1366,7 @@ void LFGMgr::TeleportPlayer(Player* player, bool out, bool fromOpcode /*= false*
if (!player->GetMap()->IsDungeon())
player->SetBattlegroundEntryPoint();
- if (player->isInFlight())
+ if (player->IsInFlight())
{
player->GetMotionMaster()->MovementExpired();
player->CleanupAfterTaxiFlight();
diff --git a/src/server/game/DungeonFinding/LFGScripts.cpp b/src/server/game/DungeonFinding/LFGScripts.cpp
index 98b5265a8ba..9dfbb0e9fb3 100644
--- a/src/server/game/DungeonFinding/LFGScripts.cpp
+++ b/src/server/game/DungeonFinding/LFGScripts.cpp
@@ -110,7 +110,7 @@ void LFGPlayerScript::OnMapChanged(Player* player)
}
for (GroupReference* itr = group->GetFirstMember(); itr != NULL; itr = itr->next())
- if (Player* member = itr->getSource())
+ if (Player* member = itr->GetSource())
player->GetSession()->SendNameQueryOpcode(member->GetGUID());
if (sLFGMgr->selectedRandomLfgDungeon(player->GetGUID()))
diff --git a/src/server/game/Entities/Corpse/Corpse.cpp b/src/server/game/Entities/Corpse/Corpse.cpp
index c38082bb542..ccceec7185b 100644
--- a/src/server/game/Entities/Corpse/Corpse.cpp
+++ b/src/server/game/Entities/Corpse/Corpse.cpp
@@ -122,7 +122,7 @@ void Corpse::SaveToDB()
stmt->setUInt32(index++, uint32(m_time)); // time
stmt->setUInt8 (index++, GetType()); // corpseType
stmt->setUInt32(index++, GetInstanceId()); // instanceId
- stmt->setUInt16(index++, GetPhaseMask()); // phaseMask
+ stmt->setUInt32(index++, GetPhaseMask()); // phaseMask
trans->Append(stmt);
CharacterDatabase.CommitTransaction(trans);
@@ -186,7 +186,7 @@ bool Corpse::LoadCorpseFromDB(uint32 guid, Field* fields)
m_time = time_t(fields[12].GetUInt32());
uint32 instanceId = fields[14].GetUInt32();
- uint32 phaseMask = fields[15].GetUInt16();
+ uint32 phaseMask = fields[15].GetUInt32();
// place
SetLocationInstanceId(instanceId);
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp
index 50f745669a7..b46ee4703db 100644
--- a/src/server/game/Entities/Creature/Creature.cpp
+++ b/src/server/game/Entities/Creature/Creature.cpp
@@ -210,14 +210,14 @@ void Creature::DisappearAndDie()
DestroyForNearbyPlayers();
//SetVisibility(VISIBILITY_OFF);
//ObjectAccessor::UpdateObjectVisibility(this);
- if (isAlive())
+ if (IsAlive())
setDeathState(JUST_DIED);
RemoveCorpse(false);
}
void Creature::SearchFormation()
{
- if (isSummon())
+ if (IsSummon())
return;
uint32 lowguid = GetDBTableGUIDLow();
@@ -330,9 +330,6 @@ bool Creature::InitEntry(uint32 entry, uint32 /*team*/, const CreatureData* data
SetName(normalInfo->Name); // at normal entry always
- SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, minfo->bounding_radius);
- SetFloatValue(UNIT_FIELD_COMBATREACH, minfo->combat_reach);
-
SetFloatValue(UNIT_MOD_CAST_SPEED, 1.0f);
SetSpeed(MOVE_WALK, cinfo->speed_walk);
@@ -340,6 +337,7 @@ bool Creature::InitEntry(uint32 entry, uint32 /*team*/, const CreatureData* data
SetSpeed(MOVE_SWIM, 1.0f); // using 1.0 rate
SetSpeed(MOVE_FLIGHT, 1.0f); // using 1.0 rate
+ // Will set UNIT_FIELD_BOUNDINGRADIUS and UNIT_FIELD_COMBATREACH
SetObjectScale(cinfo->scale);
SetFloatValue(UNIT_FIELD_HOVERHEIGHT, cinfo->HoverHeight);
@@ -427,7 +425,7 @@ bool Creature::UpdateEntry(uint32 Entry, uint32 team, const CreatureData* data)
}
// trigger creature is always not selectable and can not be attacked
- if (isTrigger())
+ if (IsTrigger())
SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
InitializeReactState();
@@ -438,27 +436,7 @@ bool Creature::UpdateEntry(uint32 Entry, uint32 team, const CreatureData* data)
ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_ATTACK_ME, true);
}
- // Set the movement flags if the creature is in that mode. (Only fly if actually in air, only swim if in water, etc)
- float ground = GetPositionZ();
- GetMap()->GetWaterOrGroundLevel(GetPositionX(), GetPositionY(), GetPositionZ(), &ground);
-
- bool isInAir = G3D::fuzzyGt(GetPositionZ(), ground + 0.05f) || G3D::fuzzyLt(GetPositionZ(), ground - 0.05f); // Can be underground too, prevent the falling
-
- if (cInfo->InhabitType & INHABIT_AIR && cInfo->InhabitType & INHABIT_GROUND && isInAir)
- SetCanFly(true);
- else if (cInfo->InhabitType & INHABIT_AIR && isInAir)
- SetDisableGravity(true);
- else
- {
- SetCanFly(false);
- SetDisableGravity(false);
- }
-
- if (cInfo->InhabitType & INHABIT_WATER && IsInWater())
- AddUnitMovementFlag(MOVEMENTFLAG_SWIMMING);
- else
- RemoveUnitMovementFlag(MOVEMENTFLAG_SWIMMING);
-
+ UpdateMovementFlags();
return true;
}
@@ -472,33 +450,7 @@ void Creature::Update(uint32 diff)
m_vehicleKit->Reset();
}
- if (IsInWater())
- {
- if (canSwim())
- AddUnitMovementFlag(MOVEMENTFLAG_SWIMMING);
- }
- else
- {
- if (canWalk())
- RemoveUnitMovementFlag(MOVEMENTFLAG_SWIMMING);
- }
-
- // Set the movement flags if the creature is in that mode. (Only fly if actually in air, only swim if in water, etc)
- float ground = GetPositionZ();
- GetMap()->GetWaterOrGroundLevel(GetPositionX(), GetPositionY(), GetPositionZ(), &ground);
-
- bool isInAir = G3D::fuzzyGt(GetPositionZ(), ground + 0.05f) || G3D::fuzzyLt(GetPositionZ(), ground - 0.05f); // Can be underground too, prevent the falling
- CreatureTemplate const* cinfo = GetCreatureTemplate();
-
- if (cinfo->InhabitType & INHABIT_AIR && cinfo->InhabitType & INHABIT_GROUND && isInAir)
- SetCanFly(true);
- else if (cinfo->InhabitType & INHABIT_AIR && isInAir)
- SetDisableGravity(true);
- else
- {
- SetCanFly(false);
- SetDisableGravity(false);
- }
+ UpdateMovementFlags();
switch (m_deathState)
{
@@ -567,7 +519,7 @@ void Creature::Update(uint32 diff)
// creature can be dead after Unit::Update call
// CORPSE/DEAD state will processed at next tick (in other case death timer will be updated unexpectedly)
- if (!isAlive())
+ if (!IsAlive())
break;
// if creature is charmed, switch to charmed AI
@@ -588,7 +540,7 @@ void Creature::Update(uint32 diff)
// creature can be dead after UpdateAI call
// CORPSE/DEAD state will processed at next tick (in other case death timer will be updated unexpectedly)
- if (!isAlive())
+ if (!IsAlive())
break;
if (m_regenTimer > 0)
@@ -602,9 +554,9 @@ void Creature::Update(uint32 diff)
if (m_regenTimer != 0)
break;
- bool bInCombat = isInCombat() && (!getVictim() || // if isInCombat() is true and this has no victim
- !getVictim()->GetCharmerOrOwnerPlayerOrPlayerItself() || // or the victim/owner/charmer is not a player
- !getVictim()->GetCharmerOrOwnerPlayerOrPlayerItself()->isGameMaster()); // or the victim/owner/charmer is not a GameMaster
+ bool bInCombat = IsInCombat() && (!GetVictim() || // if IsInCombat() is true and this has no victim
+ !GetVictim()->GetCharmerOrOwnerPlayerOrPlayerItself() || // or the victim/owner/charmer is not a player
+ !GetVictim()->GetCharmerOrOwnerPlayerOrPlayerItself()->IsGameMaster()); // or the victim/owner/charmer is not a GameMaster
/*if (m_regenTimer <= diff)
{*/
@@ -646,7 +598,7 @@ void Creature::RegenerateMana()
uint32 addvalue = 0;
// Combat and any controlled creature
- if (isInCombat() || GetCharmerOrOwnerGUID())
+ if (IsInCombat() || GetCharmerOrOwnerGUID())
{
if (!IsUnderLastManaUseEffect())
{
@@ -709,7 +661,7 @@ void Creature::RegenerateHealth()
void Creature::DoFleeToGetAssistance()
{
- if (!getVictim())
+ if (!GetVictim())
return;
if (HasAuraType(SPELL_AURA_PREVENTS_FLEEING))
@@ -723,7 +675,7 @@ void Creature::DoFleeToGetAssistance()
CellCoord p(Trinity::ComputeCellCoord(GetPositionX(), GetPositionY()));
Cell cell(p);
cell.SetNoCreate();
- Trinity::NearestAssistCreatureInCreatureRangeCheck u_check(this, getVictim(), radius);
+ Trinity::NearestAssistCreatureInCreatureRangeCheck u_check(this, GetVictim(), radius);
Trinity::CreatureLastSearcher<Trinity::NearestAssistCreatureInCreatureRangeCheck> searcher(this, creature, u_check);
TypeContainerVisitor<Trinity::CreatureLastSearcher<Trinity::NearestAssistCreatureInCreatureRangeCheck>, GridTypeMapContainer > grid_creature_searcher(searcher);
@@ -734,7 +686,7 @@ void Creature::DoFleeToGetAssistance()
UpdateSpeed(MOVE_RUN, false);
if (!creature)
- //SetFeared(true, getVictim()->GetGUID(), 0, sWorld->getIntConfig(CONFIG_CREATURE_FAMILY_FLEE_DELAY));
+ //SetFeared(true, GetVictim()->GetGUID(), 0, sWorld->getIntConfig(CONFIG_CREATURE_FAMILY_FLEE_DELAY));
/// @todo use 31365
SetControlled(true, UNIT_STATE_FLEEING);
else
@@ -839,7 +791,7 @@ bool Creature::Create(uint32 guidlow, Map* map, uint32 phaseMask, uint32 Entry,
uint32 displayID = GetNativeDisplayId();
CreatureModelInfo const* minfo = sObjectMgr->GetCreatureModelRandomGender(&displayID);
- if (minfo && !isTotem()) // Cancel load if no model defined or if totem
+ if (minfo && !IsTotem()) // Cancel load if no model defined or if totem
{
SetDisplayId(displayID);
SetNativeDisplayId(displayID);
@@ -849,7 +801,7 @@ bool Creature::Create(uint32 guidlow, Map* map, uint32 phaseMask, uint32 Entry,
LastUsedScriptID = GetCreatureTemplate()->ScriptID;
/// @todo Replace with spell, handle from DB
- if (isSpiritHealer() || isSpiritGuide())
+ if (IsSpiritHealer() || IsSpiritGuide())
{
m_serverSideVisibility.SetValue(SERVERSIDE_VISIBILITY_GHOST, GHOST_VISIBILITY_GHOST);
m_serverSideVisibilityDetect.SetValue(SERVERSIDE_VISIBILITY_GHOST, GHOST_VISIBILITY_GHOST);
@@ -863,103 +815,17 @@ bool Creature::Create(uint32 guidlow, Map* map, uint32 phaseMask, uint32 Entry,
void Creature::InitializeReactState()
{
- if (isTotem() || isTrigger() || GetCreatureType() == CREATURE_TYPE_CRITTER || isSpiritService())
+ if (IsTotem() || IsTrigger() || GetCreatureType() == CREATURE_TYPE_CRITTER || IsSpiritService())
SetReactState(REACT_PASSIVE);
else
SetReactState(REACT_AGGRESSIVE);
- /*else if (isCivilian())
+ /*else if (IsCivilian())
SetReactState(REACT_DEFENSIVE);*/;
}
-bool Creature::isCanTrainingOf(Player* player, bool msg) const
-{
- if (!isTrainer())
- return false;
-
- TrainerSpellData const* trainer_spells = GetTrainerSpells();
-
- if ((!trainer_spells || trainer_spells->spellList.empty()) && GetCreatureTemplate()->trainer_type != TRAINER_TYPE_PETS)
- {
- TC_LOG_ERROR(LOG_FILTER_SQL, "Creature %u (Entry: %u) have UNIT_NPC_FLAG_TRAINER but have empty trainer spell list.",
- GetGUIDLow(), GetEntry());
- return false;
- }
-
- switch (GetCreatureTemplate()->trainer_type)
- {
- case TRAINER_TYPE_CLASS:
- if (player->getClass() != GetCreatureTemplate()->trainer_class)
- {
- if (msg)
- {
- player->PlayerTalkClass->ClearMenus();
- switch (GetCreatureTemplate()->trainer_class)
- {
- case CLASS_DRUID: player->PlayerTalkClass->SendGossipMenu(4913, GetGUID()); break;
- case CLASS_HUNTER: player->PlayerTalkClass->SendGossipMenu(10090, GetGUID()); break;
- case CLASS_MAGE: player->PlayerTalkClass->SendGossipMenu(328, GetGUID()); break;
- case CLASS_PALADIN:player->PlayerTalkClass->SendGossipMenu(1635, GetGUID()); break;
- case CLASS_PRIEST: player->PlayerTalkClass->SendGossipMenu(4436, GetGUID()); break;
- case CLASS_ROGUE: player->PlayerTalkClass->SendGossipMenu(4797, GetGUID()); break;
- case CLASS_SHAMAN: player->PlayerTalkClass->SendGossipMenu(5003, GetGUID()); break;
- case CLASS_WARLOCK:player->PlayerTalkClass->SendGossipMenu(5836, GetGUID()); break;
- case CLASS_WARRIOR:player->PlayerTalkClass->SendGossipMenu(4985, GetGUID()); break;
- }
- }
- return false;
- }
- break;
- case TRAINER_TYPE_PETS:
- if (player->getClass() != CLASS_HUNTER)
- {
- player->PlayerTalkClass->ClearMenus();
- player->PlayerTalkClass->SendGossipMenu(3620, GetGUID());
- return false;
- }
- break;
- case TRAINER_TYPE_MOUNTS:
- if (GetCreatureTemplate()->trainer_race && player->getRace() != GetCreatureTemplate()->trainer_race)
- {
- if (msg)
- {
- player->PlayerTalkClass->ClearMenus();
- switch (GetCreatureTemplate()->trainer_race)
- {
- case RACE_DWARF: player->PlayerTalkClass->SendGossipMenu(5865, GetGUID()); break;
- case RACE_GNOME: player->PlayerTalkClass->SendGossipMenu(4881, GetGUID()); break;
- case RACE_HUMAN: player->PlayerTalkClass->SendGossipMenu(5861, GetGUID()); break;
- case RACE_NIGHTELF: player->PlayerTalkClass->SendGossipMenu(5862, GetGUID()); break;
- case RACE_ORC: player->PlayerTalkClass->SendGossipMenu(5863, GetGUID()); break;
- case RACE_TAUREN: player->PlayerTalkClass->SendGossipMenu(5864, GetGUID()); break;
- case RACE_TROLL: player->PlayerTalkClass->SendGossipMenu(5816, GetGUID()); break;
- case RACE_UNDEAD_PLAYER:player->PlayerTalkClass->SendGossipMenu(624, GetGUID()); break;
- case RACE_BLOODELF: player->PlayerTalkClass->SendGossipMenu(5862, GetGUID()); break;
- case RACE_DRAENEI: player->PlayerTalkClass->SendGossipMenu(5864, GetGUID()); break;
- }
- }
- return false;
- }
- break;
- case TRAINER_TYPE_TRADESKILLS:
- if (GetCreatureTemplate()->trainer_spell && !player->HasSpell(GetCreatureTemplate()->trainer_spell))
- {
- if (msg)
- {
- player->PlayerTalkClass->ClearMenus();
- player->PlayerTalkClass->SendGossipMenu(11031, GetGUID());
- }
- return false;
- }
- break;
- default:
- return false; // checked and error output at creature_template loading
- }
- return true;
-}
-
bool Creature::isCanInteractWithBattleMaster(Player* player, bool msg) const
{
- if (!isBattleMaster())
+ if (!IsBattleMaster())
return false;
BattlegroundTypeId bgTypeId = sBattlegroundMgr->GetBattleMasterBG(GetEntry());
@@ -1133,7 +999,7 @@ void Creature::SaveToDB(uint32 mapid, uint8 spawnMask, uint32 phaseMask)
stmt->setUInt32(index++, GetEntry());
stmt->setUInt16(index++, uint16(mapid));
stmt->setUInt8(index++, spawnMask);
- stmt->setUInt16(index++, uint16(GetPhaseMask()));
+ stmt->setUInt32(index++, GetPhaseMask());
stmt->setUInt32(index++, displayId);
stmt->setInt32(index++, int32(GetCurrentEquipmentId()));
stmt->setFloat(index++, GetPositionX());
@@ -1156,7 +1022,7 @@ void Creature::SaveToDB(uint32 mapid, uint8 spawnMask, uint32 phaseMask)
void Creature::SelectLevel(const CreatureTemplate* cinfo)
{
- uint32 rank = isPet()? 0 : cinfo->rank;
+ uint32 rank = IsPet()? 0 : cinfo->rank;
// level
uint8 minlevel = std::min(cinfo->maxlevel, cinfo->minlevel);
@@ -1453,7 +1319,7 @@ bool Creature::IsInvisibleDueToDespawn() const
if (Unit::IsInvisibleDueToDespawn())
return true;
- if (isAlive() || m_corpseRemoveTime > time(NULL))
+ if (IsAlive() || m_corpseRemoveTime > time(NULL))
return false;
return true;
@@ -1467,9 +1333,9 @@ bool Creature::CanAlwaysSee(WorldObject const* obj) const
return false;
}
-bool Creature::canStartAttack(Unit const* who, bool force) const
+bool Creature::CanStartAttack(Unit const* who, bool force) const
{
- if (isCivilian())
+ if (IsCivilian())
return false;
if (HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC))
@@ -1490,7 +1356,7 @@ bool Creature::canStartAttack(Unit const* who, bool force) const
if (!_IsTargetAcceptable(who))
return false;
- if (who->isInCombat() && IsWithinDist(who, ATTACK_DISTANCE))
+ if (who->IsInCombat() && IsWithinDist(who, ATTACK_DISTANCE))
if (Unit* victim = who->getAttackerForHelper())
if (IsWithinDistInMap(victim, sWorld->getFloatConfig(CONFIG_CREATURE_FAMILY_ASSISTANCE_RADIUS)))
force = true;
@@ -1499,7 +1365,7 @@ bool Creature::canStartAttack(Unit const* who, bool force) const
return false;
}
- if (!canCreatureAttack(who, force))
+ if (!CanCreatureAttack(who, force))
return false;
return IsWithinLOSInMap(who);
@@ -1561,7 +1427,7 @@ void Creature::setDeathState(DeathState s)
setActive(false);
- if (!isPet() && GetCreatureTemplate()->SkinLootId)
+ if (!IsPet() && GetCreatureTemplate()->SkinLootId)
if (LootTemplates_Skinning.HaveLootFor(GetCreatureTemplate()->SkinLootId))
if (hasLootRecipient())
SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SKINNABLE);
@@ -1583,35 +1449,15 @@ void Creature::setDeathState(DeathState s)
}
else if (s == JUST_RESPAWNED)
{
- //if (isPet())
+ //if (IsPet())
// setActive(true);
SetFullHealth();
SetLootRecipient(NULL);
ResetPlayerDamageReq();
- CreatureTemplate const* cinfo = GetCreatureTemplate();
- SetWalk(true);
- // Set the movement flags if the creature is in that mode. (Only fly if actually in air, only swim if in water, etc)
- float ground = GetPositionZ();
- GetMap()->GetWaterOrGroundLevel(GetPositionX(), GetPositionY(), GetPositionZ(), &ground);
-
- bool isInAir = G3D::fuzzyGt(GetPositionZ(), ground + 0.05f) || G3D::fuzzyLt(GetPositionZ(), ground - 0.05f); // Can be underground too, prevent the falling
-
- if (cinfo->InhabitType & INHABIT_AIR && cinfo->InhabitType & INHABIT_GROUND && isInAir)
- SetCanFly(true);
- else if (cinfo->InhabitType & INHABIT_AIR && isInAir)
- SetDisableGravity(true);
- else
- {
- SetCanFly(false);
- SetDisableGravity(false);
- }
-
- if (cinfo->InhabitType & INHABIT_WATER && IsInWater())
- AddUnitMovementFlag(MOVEMENTFLAG_SWIMMING);
- else
- RemoveUnitMovementFlag(MOVEMENTFLAG_SWIMMING);
+ UpdateMovementFlags();
+ CreatureTemplate const* cinfo = GetCreatureTemplate();
SetUInt32Value(UNIT_NPC_FLAGS, cinfo->npcflag);
ClearUnitState(uint32(UNIT_STATE_ALL_STATE));
SetMeleeDamageSchool(SpellSchools(cinfo->dmgschool));
@@ -1629,7 +1475,7 @@ void Creature::Respawn(bool force)
if (force)
{
- if (isAlive())
+ if (IsAlive())
setDeathState(JUST_DIED);
else if (getDeathState() != CORPSE)
setDeathState(CORPSE);
@@ -1692,7 +1538,7 @@ void Creature::ForcedDespawn(uint32 timeMSToDespawn)
return;
}
- if (isAlive())
+ if (IsAlive())
setDeathState(JUST_DIED);
RemoveCorpse(false);
@@ -1747,7 +1593,7 @@ bool Creature::IsImmunedToSpellEffect(SpellInfo const* spellInfo, uint32 index)
bool Creature::isElite() const
{
- if (isPet())
+ if (IsPet())
return false;
uint32 rank = GetCreatureTemplate()->rank;
@@ -1756,7 +1602,7 @@ bool Creature::isElite() const
bool Creature::isWorldBoss() const
{
- if (isPet())
+ if (IsPet())
return false;
return GetCreatureTemplate()->type_flags & CREATURE_TYPEFLAGS_BOSS;
@@ -1937,7 +1783,7 @@ void Creature::SendAIReaction(AiReaction reactionType)
void Creature::CallAssistance()
{
- if (!m_AlreadyCallAssistance && getVictim() && !isPet() && !isCharmed())
+ if (!m_AlreadyCallAssistance && GetVictim() && !IsPet() && !IsCharmed())
{
SetNoCallAssistance(true);
@@ -1952,7 +1798,7 @@ void Creature::CallAssistance()
Cell cell(p);
cell.SetNoCreate();
- Trinity::AnyAssistCreatureInRangeCheck u_check(this, getVictim(), radius);
+ Trinity::AnyAssistCreatureInRangeCheck u_check(this, GetVictim(), radius);
Trinity::CreatureListSearcher<Trinity::AnyAssistCreatureInRangeCheck> searcher(this, assistList, u_check);
TypeContainerVisitor<Trinity::CreatureListSearcher<Trinity::AnyAssistCreatureInRangeCheck>, GridTypeMapContainer > grid_creature_searcher(searcher);
@@ -1962,7 +1808,7 @@ void Creature::CallAssistance()
if (!assistList.empty())
{
- AssistDelayEvent* e = new AssistDelayEvent(getVictim()->GetGUID(), *this);
+ AssistDelayEvent* e = new AssistDelayEvent(GetVictim()->GetGUID(), *this);
while (!assistList.empty())
{
// Pushing guids because in delay can happen some creature gets despawned => invalid pointer
@@ -1977,14 +1823,14 @@ void Creature::CallAssistance()
void Creature::CallForHelp(float radius)
{
- if (radius <= 0.0f || !getVictim() || isPet() || isCharmed())
+ if (radius <= 0.0f || !GetVictim() || IsPet() || IsCharmed())
return;
CellCoord p(Trinity::ComputeCellCoord(GetPositionX(), GetPositionY()));
Cell cell(p);
cell.SetNoCreate();
- Trinity::CallOfHelpCreatureInRangeDo u_do(this, getVictim(), radius);
+ Trinity::CallOfHelpCreatureInRangeDo u_do(this, GetVictim(), radius);
Trinity::CreatureWorker<Trinity::CallOfHelpCreatureInRangeDo> worker(this, u_do);
TypeContainerVisitor<Trinity::CreatureWorker<Trinity::CallOfHelpCreatureInRangeDo>, GridTypeMapContainer > grid_creature_searcher(worker);
@@ -1999,18 +1845,18 @@ bool Creature::CanAssistTo(const Unit* u, const Unit* enemy, bool checkfaction /
return false;
// we don't need help from zombies :)
- if (!isAlive())
+ if (!IsAlive())
return false;
// we don't need help from non-combatant ;)
- if (isCivilian())
+ if (IsCivilian())
return false;
if (HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_IMMUNE_TO_NPC))
return false;
// skip fighting creature
- if (isInCombat())
+ if (IsInCombat())
return false;
// only free creature
@@ -2051,7 +1897,7 @@ bool Creature::_IsTargetAcceptable(const Unit* target) const
if (target->HasUnitState(UNIT_STATE_DIED))
{
// guards can detect fake death
- if (isGuard() && target->HasFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH))
+ if (IsGuard() && target->HasFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH))
return true;
else
return false;
@@ -2074,14 +1920,14 @@ bool Creature::_IsTargetAcceptable(const Unit* target) const
void Creature::SaveRespawnTime()
{
- if (isSummon() || !m_DBTableGuid || (m_creatureData && !m_creatureData->dbData))
+ if (IsSummon() || !m_DBTableGuid || (m_creatureData && !m_creatureData->dbData))
return;
GetMap()->SaveCreatureRespawnTime(m_DBTableGuid, m_respawnTime);
}
// this should not be called by petAI or
-bool Creature::canCreatureAttack(Unit const* victim, bool /*force*/) const
+bool Creature::CanCreatureAttack(Unit const* victim, bool /*force*/) const
{
if (!victim->IsInMap(this))
return false;
@@ -2234,12 +2080,12 @@ void Creature::SetInCombatWithZone()
for (Map::PlayerList::const_iterator i = PlList.begin(); i != PlList.end(); ++i)
{
- if (Player* player = i->getSource())
+ if (Player* player = i->GetSource())
{
- if (player->isGameMaster())
+ if (player->IsGameMaster())
continue;
- if (player->isAlive())
+ if (player->IsAlive())
{
this->SetInCombatWith(player);
player->SetInCombatWith(this);
@@ -2456,19 +2302,18 @@ uint32 Creature::GetVendorItemCurrentCount(VendorItem const* vItem)
time_t ptime = time(NULL);
if (time_t(vCount->lastIncrementTime + vItem->incrtime) <= ptime)
- {
- ItemTemplate const* pProto = sObjectMgr->GetItemTemplate(vItem->item);
-
- uint32 diff = uint32((ptime - vCount->lastIncrementTime)/vItem->incrtime);
- if ((vCount->count + diff * pProto->BuyCount) >= vItem->maxcount)
+ if (ItemTemplate const* pProto = sObjectMgr->GetItemTemplate(vItem->item))
{
- m_vendorItemCounts.erase(itr);
- return vItem->maxcount;
- }
+ uint32 diff = uint32((ptime - vCount->lastIncrementTime)/vItem->incrtime);
+ if ((vCount->count + diff * pProto->BuyCount) >= vItem->maxcount)
+ {
+ m_vendorItemCounts.erase(itr);
+ return vItem->maxcount;
+ }
- vCount->count += diff * pProto->BuyCount;
- vCount->lastIncrementTime = ptime;
- }
+ vCount->count += diff * pProto->BuyCount;
+ vCount->lastIncrementTime = ptime;
+ }
return vCount->count;
}
@@ -2495,15 +2340,14 @@ uint32 Creature::UpdateVendorItemCurrentCount(VendorItem const* vItem, uint32 us
time_t ptime = time(NULL);
if (time_t(vCount->lastIncrementTime + vItem->incrtime) <= ptime)
- {
- ItemTemplate const* pProto = sObjectMgr->GetItemTemplate(vItem->item);
-
- uint32 diff = uint32((ptime - vCount->lastIncrementTime)/vItem->incrtime);
- if ((vCount->count + diff * pProto->BuyCount) < vItem->maxcount)
- vCount->count += diff * pProto->BuyCount;
- else
- vCount->count = vItem->maxcount;
- }
+ if (ItemTemplate const* pProto = sObjectMgr->GetItemTemplate(vItem->item))
+ {
+ uint32 diff = uint32((ptime - vCount->lastIncrementTime)/vItem->incrtime);
+ if ((vCount->count + diff * pProto->BuyCount) < vItem->maxcount)
+ vCount->count += diff * pProto->BuyCount;
+ else
+ vCount->count = vItem->maxcount;
+ }
vCount->count = vCount->count > used_count ? vCount->count-used_count : 0;
vCount->lastIncrementTime = ptime;
@@ -2597,9 +2441,65 @@ bool Creature::SetDisableGravity(bool disable, bool packetOnly/*=false*/)
return true;
}
-bool Creature::SetHover(bool enable)
+bool Creature::SetSwim(bool enable)
+{
+ if (!Unit::SetSwim(enable))
+ return false;
+
+ if (!movespline->Initialized())
+ return true;
+
+ WorldPacket data(enable ? SMSG_SPLINE_MOVE_START_SWIM : SMSG_SPLINE_MOVE_STOP_SWIM);
+ data.append(GetPackGUID());
+ SendMessageToSet(&data, true);
+ return true;
+}
+
+bool Creature::SetCanFly(bool enable)
+{
+ if (!Unit::SetCanFly(enable))
+ return false;
+
+ if (!movespline->Initialized())
+ return true;
+
+ WorldPacket data(enable ? SMSG_SPLINE_MOVE_SET_FLYING : SMSG_SPLINE_MOVE_UNSET_FLYING, 9);
+ data.append(GetPackGUID());
+ SendMessageToSet(&data, false);
+ return true;
+}
+
+bool Creature::SetWaterWalking(bool enable, bool packetOnly /* = false */)
+{
+ if (!packetOnly && !Unit::SetWaterWalking(enable))
+ return false;
+
+ if (!movespline->Initialized())
+ return true;
+
+ WorldPacket data(enable ? SMSG_SPLINE_MOVE_WATER_WALK : SMSG_SPLINE_MOVE_LAND_WALK);
+ data.append(GetPackGUID());
+ SendMessageToSet(&data, true);
+ return true;
+}
+
+bool Creature::SetFeatherFall(bool enable, bool packetOnly /* = false */)
{
- if (!Unit::SetHover(enable))
+ if (!packetOnly && !Unit::SetFeatherFall(enable))
+ return false;
+
+ if (!movespline->Initialized())
+ return true;
+
+ WorldPacket data(enable ? SMSG_SPLINE_MOVE_FEATHER_FALL : SMSG_SPLINE_MOVE_NORMAL_FALL);
+ data.append(GetPackGUID());
+ SendMessageToSet(&data, true);
+ return true;
+}
+
+bool Creature::SetHover(bool enable, bool packetOnly /*= false*/)
+{
+ if (!packetOnly && !Unit::SetHover(enable))
return false;
//! Unconfirmed for players:
@@ -2623,7 +2523,7 @@ float Creature::GetAggroRange(Unit const* target) const
// Determines the aggro range for creatures (usually pets), used mainly for aggressive pet target selection.
// Based on data from wowwiki due to lack of 3.3.5a data
- if (target && this->isPet())
+ if (target && this->IsPet())
{
uint32 targetLevel = 0;
@@ -2683,3 +2583,55 @@ Unit* Creature::SelectNearestHostileUnitInAggroRange(bool useLOS) const
return target;
}
+
+void Creature::UpdateMovementFlags()
+{
+ // Do not update movement flags if creature is controlled by a player (charm/vehicle)
+ if (m_movedPlayer)
+ return;
+
+ // Set the movement flags if the creature is in that mode. (Only fly if actually in air, only swim if in water, etc)
+ float ground = GetMap()->GetHeight(GetPositionX(), GetPositionY(), GetPositionZMinusOffset());
+
+ bool isInAir = (G3D::fuzzyGt(GetPositionZMinusOffset(), ground + 0.05f) || G3D::fuzzyLt(GetPositionZMinusOffset(), ground - 0.05f)); // Can be underground too, prevent the falling
+
+ if (GetCreatureTemplate()->InhabitType & INHABIT_AIR && isInAir && !IsFalling())
+ {
+ if (GetCreatureTemplate()->InhabitType & INHABIT_GROUND)
+ SetCanFly(true);
+ else
+ SetDisableGravity(true);
+ }
+ else
+ {
+ SetCanFly(false);
+ SetDisableGravity(false);
+ }
+
+ if (!isInAir)
+ RemoveUnitMovementFlag(MOVEMENTFLAG_FALLING);
+
+ SetSwim(GetCreatureTemplate()->InhabitType & INHABIT_WATER && IsInWater());
+}
+
+void Creature::SetObjectScale(float scale)
+{
+ Unit::SetObjectScale(scale);
+
+ if (CreatureModelInfo const* minfo = sObjectMgr->GetCreatureModelInfo(GetDisplayId()))
+ {
+ SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, minfo->bounding_radius * scale);
+ SetFloatValue(UNIT_FIELD_COMBATREACH, minfo->combat_reach * scale);
+ }
+}
+
+void Creature::SetDisplayId(uint32 modelId)
+{
+ Unit::SetDisplayId(modelId);
+
+ if (CreatureModelInfo const* minfo = sObjectMgr->GetCreatureModelInfo(modelId))
+ {
+ SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, minfo->bounding_radius * GetFloatValue(OBJECT_FIELD_SCALE_X));
+ SetFloatValue(UNIT_FIELD_COMBATREACH, minfo->combat_reach * GetFloatValue(OBJECT_FIELD_SCALE_X));
+ }
+}
diff --git a/src/server/game/Entities/Creature/Creature.h b/src/server/game/Entities/Creature/Creature.h
index 1b59c273d52..34084dd662b 100644
--- a/src/server/game/Entities/Creature/Creature.h
+++ b/src/server/game/Entities/Creature/Creature.h
@@ -155,18 +155,18 @@ struct CreatureTemplate
return SKILL_SKINNING; // normal case
}
- bool isExotic() const
+ bool IsExotic() const
{
return (type_flags & CREATURE_TYPEFLAGS_EXOTIC) != 0;
}
- bool isTameable(bool canTameExotic) const
+ bool IsTameable(bool canTameExotic) const
{
if (type != CREATURE_TYPE_BEAST || family == 0 || (type_flags & CREATURE_TYPEFLAGS_TAMEABLE) == 0)
return false;
// if can tame exotic then can tame any tameable
- return canTameExotic || !isExotic();
+ return canTameExotic || !IsExotic();
}
};
@@ -249,7 +249,7 @@ struct CreatureData
CreatureData() : dbData(true) {}
uint32 id; // entry in creature_template
uint16 mapid;
- uint16 phaseMask;
+ uint32 phaseMask;
uint32 displayid;
int8 equipmentId;
float posX;
@@ -454,6 +454,9 @@ class Creature : public Unit, public GridObject<Creature>, public MapCreature
void AddToWorld();
void RemoveFromWorld();
+ void SetObjectScale(float scale);
+ void SetDisplayId(uint32 modelId);
+
void DisappearAndDie();
bool Create(uint32 guidlow, Map* map, uint32 phaseMask, uint32 Entry, uint32 vehId, uint32 team, float x, float y, float z, float ang, const CreatureData* data = NULL);
@@ -468,12 +471,12 @@ class Creature : public Unit, public GridObject<Creature>, public MapCreature
void SetCorpseDelay(uint32 delay) { m_corpseDelay = delay; }
uint32 GetCorpseDelay() const { return m_corpseDelay; }
- bool isRacialLeader() const { return GetCreatureTemplate()->RacialLeader; }
- bool isCivilian() const { return GetCreatureTemplate()->flags_extra & CREATURE_FLAG_EXTRA_CIVILIAN; }
- bool isTrigger() const { return GetCreatureTemplate()->flags_extra & CREATURE_FLAG_EXTRA_TRIGGER; }
- bool isGuard() const { return GetCreatureTemplate()->flags_extra & CREATURE_FLAG_EXTRA_GUARD; }
- bool canWalk() const { return GetCreatureTemplate()->InhabitType & INHABIT_GROUND; }
- bool canSwim() const { return GetCreatureTemplate()->InhabitType & INHABIT_WATER; }
+ bool IsRacialLeader() const { return GetCreatureTemplate()->RacialLeader; }
+ bool IsCivilian() const { return GetCreatureTemplate()->flags_extra & CREATURE_FLAG_EXTRA_CIVILIAN; }
+ bool IsTrigger() const { return GetCreatureTemplate()->flags_extra & CREATURE_FLAG_EXTRA_TRIGGER; }
+ bool IsGuard() const { return GetCreatureTemplate()->flags_extra & CREATURE_FLAG_EXTRA_GUARD; }
+ bool CanWalk() const { return GetCreatureTemplate()->InhabitType & INHABIT_GROUND; }
+ bool CanSwim() const { return GetCreatureTemplate()->InhabitType & INHABIT_WATER; }
bool CanFly() const { return GetCreatureTemplate()->InhabitType & INHABIT_AIR; }
void SetReactState(ReactStates st) { m_reactState = st; }
@@ -482,10 +485,9 @@ class Creature : public Unit, public GridObject<Creature>, public MapCreature
void InitializeReactState();
/// @todo Rename these properly
- bool isCanTrainingOf(Player* player, bool msg) const;
bool isCanInteractWithBattleMaster(Player* player, bool msg) const;
bool isCanTrainingAndResetTalentsOf(Player* player) const;
- bool canCreatureAttack(Unit const* victim, bool force = true) const;
+ bool CanCreatureAttack(Unit const* victim, bool force = true) const;
bool IsImmunedToSpell(SpellInfo const* spellInfo) const; // override Unit::IsImmunedToSpell
bool IsImmunedToSpellEffect(SpellInfo const* spellInfo, uint32 index) const; // override Unit::IsImmunedToSpellEffect
bool isElite() const;
@@ -504,7 +506,11 @@ class Creature : public Unit, public GridObject<Creature>, public MapCreature
bool SetWalk(bool enable);
bool SetDisableGravity(bool disable, bool packetOnly = false);
- bool SetHover(bool enable);
+ bool SetSwim(bool enable);
+ bool SetCanFly(bool enable);
+ bool SetWaterWalking(bool enable, bool packetOnly = false);
+ bool SetFeatherFall(bool enable, bool packetOnly = false);
+ bool SetHover(bool enable, bool packetOnly = false);
uint32 GetShieldBlockValue() const;
@@ -522,6 +528,9 @@ class Creature : public Unit, public GridObject<Creature>, public MapCreature
bool HasSpell(uint32 spellID) const;
bool UpdateEntry(uint32 entry, uint32 team=ALLIANCE, const CreatureData* data=NULL);
+
+ void UpdateMovementFlags();
+
bool UpdateStats(Stats stat);
bool UpdateAllStats();
void UpdateResistances(uint32 school);
@@ -594,7 +603,7 @@ class Creature : public Unit, public GridObject<Creature>, public MapCreature
CreatureSpellCooldowns m_CreatureSpellCooldowns;
CreatureSpellCooldowns m_CreatureCategoryCooldowns;
- bool canStartAttack(Unit const* u, bool force) const;
+ bool CanStartAttack(Unit const* u, bool force) const;
float GetAttackDistance(Unit const* player) const;
float GetAggroRange(Unit const* target) const;
diff --git a/src/server/game/Entities/Creature/CreatureGroups.cpp b/src/server/game/Entities/Creature/CreatureGroups.cpp
index 5b3f7a15d47..f8966ba1923 100644
--- a/src/server/game/Entities/Creature/CreatureGroups.cpp
+++ b/src/server/game/Entities/Creature/CreatureGroups.cpp
@@ -180,10 +180,10 @@ void CreatureGroup::MemberAttackStart(Creature* member, Unit* target)
if (itr->first == member)
continue;
- if (!itr->first->isAlive())
+ if (!itr->first->IsAlive())
continue;
- if (itr->first->getVictim())
+ if (itr->first->GetVictim())
continue;
if (itr->first->IsValidAttackTarget(target) && itr->first->AI())
@@ -195,7 +195,7 @@ void CreatureGroup::FormationReset(bool dismiss)
{
for (CreatureGroupMemberType::iterator itr = m_members.begin(); itr != m_members.end(); ++itr)
{
- if (itr->first != m_leader && itr->first->isAlive())
+ if (itr->first != m_leader && itr->first->IsAlive())
{
if (dismiss)
itr->first->GetMotionMaster()->Initialize();
@@ -219,7 +219,7 @@ void CreatureGroup::LeaderMoveTo(float x, float y, float z)
for (CreatureGroupMemberType::iterator itr = m_members.begin(); itr != m_members.end(); ++itr)
{
Creature* member = itr->first;
- if (member == m_leader || !member->isAlive() || member->getVictim())
+ if (member == m_leader || !member->IsAlive() || member->GetVictim())
continue;
float angle = itr->second->follow_angle;
diff --git a/src/server/game/Entities/Creature/GossipDef.cpp b/src/server/game/Entities/Creature/GossipDef.cpp
index 8a8c9ad895f..e86935f49f8 100644
--- a/src/server/game/Entities/Creature/GossipDef.cpp
+++ b/src/server/game/Entities/Creature/GossipDef.cpp
@@ -184,7 +184,9 @@ void PlayerMenu::SendGossipMenu(uint32 titleTextId, uint64 objectGUID) const
data << item.BoxMessage; // accept text (related to money) pop up box, 2.0.3
}
- data << uint32(_questMenu.GetMenuItemCount()); // max count 0x20
+ size_t count_pos = data.wpos();
+ data << uint32(0); // max count 0x20
+ uint32 count = 0;
// Store this instead of checking the Singleton every loop iteration
bool questLevelInTitle = sWorld->getBoolConfig(CONFIG_UI_QUESTLEVELS_IN_DIALOGS);
@@ -193,26 +195,29 @@ void PlayerMenu::SendGossipMenu(uint32 titleTextId, uint64 objectGUID) const
{
QuestMenuItem const& item = _questMenu.GetItem(i);
uint32 questID = item.QuestId;
- Quest const* quest = sObjectMgr->GetQuestTemplate(questID);
-
- data << uint32(questID);
- data << uint32(item.QuestIcon);
- data << int32(quest->GetQuestLevel());
- data << uint32(quest->GetFlags()); // 3.3.3 quest flags
- data << uint8(0); // 3.3.3 changes icon: blue question or yellow exclamation
- std::string title = quest->GetTitle();
+ if (Quest const* quest = sObjectMgr->GetQuestTemplate(questID))
+ {
+ ++count;
+ data << uint32(questID);
+ data << uint32(item.QuestIcon);
+ data << int32(quest->GetQuestLevel());
+ data << uint32(quest->GetFlags()); // 3.3.3 quest flags
+ data << uint8(0); // 3.3.3 changes icon: blue question or yellow exclamation
+ std::string title = quest->GetTitle();
- int32 locale = _session->GetSessionDbLocaleIndex();
- if (locale >= 0)
- if (QuestLocale const* localeData = sObjectMgr->GetQuestLocale(questID))
- ObjectMgr::GetLocaleString(localeData->Title, locale, title);
+ int32 locale = _session->GetSessionDbLocaleIndex();
+ if (locale >= 0)
+ if (QuestLocale const* localeData = sObjectMgr->GetQuestLocale(questID))
+ ObjectMgr::GetLocaleString(localeData->Title, locale, title);
- if (questLevelInTitle)
- AddQuestLevelToTitle(title, quest->GetQuestLevel());
+ if (questLevelInTitle)
+ AddQuestLevelToTitle(title, quest->GetQuestLevel());
- data << title; // max 0x200
+ data << title; // max 0x200
+ }
}
+ data.put<uint8>(count_pos, count);
_session->SendPacket(&data);
}
@@ -300,20 +305,21 @@ void PlayerMenu::SendQuestGiverQuestList(QEmote eEmote, const std::string& Title
data << uint32(eEmote._Emote); // NPC emote
size_t count_pos = data.wpos();
- data << uint8 (_questMenu.GetMenuItemCount());
+ data << uint8 (0);
uint32 count = 0;
// Store this instead of checking the Singleton every loop iteration
bool questLevelInTitle = sWorld->getBoolConfig(CONFIG_UI_QUESTLEVELS_IN_DIALOGS);
- for (; count < _questMenu.GetMenuItemCount(); ++count)
+ for (uint32 i = 0; i < _questMenu.GetMenuItemCount(); ++i)
{
- QuestMenuItem const& qmi = _questMenu.GetItem(count);
+ QuestMenuItem const& qmi = _questMenu.GetItem(i);
uint32 questID = qmi.QuestId;
if (Quest const* quest = sObjectMgr->GetQuestTemplate(questID))
{
+ ++count;
std::string title = quest->GetTitle();
int32 locale = _session->GetSessionDbLocaleIndex();
@@ -372,7 +378,7 @@ void PlayerMenu::SendQuestGiverQuestDetails(Quest const* quest, uint64 npcGUID,
WorldPacket data(SMSG_QUESTGIVER_QUEST_DETAILS, 100); // guess size
data << uint64(npcGUID);
- data << uint64(0); // wotlk, something todo with quest sharing?
+ data << uint64(_session->GetPlayer()->GetDivider());
data << uint32(quest->GetQuestId());
data << questTitle;
data << questDetails;
diff --git a/src/server/game/Entities/Creature/TemporarySummon.cpp b/src/server/game/Entities/Creature/TemporarySummon.cpp
index eb6bc1bba88..05bedf907a0 100644
--- a/src/server/game/Entities/Creature/TemporarySummon.cpp
+++ b/src/server/game/Entities/Creature/TemporarySummon.cpp
@@ -68,7 +68,7 @@ void TempSummon::Update(uint32 diff)
}
case TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT:
{
- if (!isInCombat())
+ if (!IsInCombat())
{
if (m_timer <= diff)
{
@@ -127,7 +127,7 @@ void TempSummon::Update(uint32 diff)
return;
}
- if (!isInCombat())
+ if (!IsInCombat())
{
if (m_timer <= diff)
{
@@ -150,7 +150,7 @@ void TempSummon::Update(uint32 diff)
return;
}
- if (!isInCombat() && isAlive())
+ if (!IsInCombat() && IsAlive())
{
if (m_timer <= diff)
{
@@ -173,7 +173,7 @@ void TempSummon::Update(uint32 diff)
void TempSummon::InitStats(uint32 duration)
{
- ASSERT(!isPet());
+ ASSERT(!IsPet());
m_timer = duration;
m_lifetime = duration;
@@ -183,7 +183,7 @@ void TempSummon::InitStats(uint32 duration)
Unit* owner = GetSummoner();
- if (owner && isTrigger() && m_spells[0])
+ if (owner && IsTrigger() && m_spells[0])
{
setFaction(owner->getFaction());
SetLevel(owner->getLevel());
@@ -201,7 +201,7 @@ void TempSummon::InitStats(uint32 duration)
if (owner->m_SummonSlot[slot] && owner->m_SummonSlot[slot] != GetGUID())
{
Creature* oldSummon = GetMap()->GetCreature(owner->m_SummonSlot[slot]);
- if (oldSummon && oldSummon->isSummon())
+ if (oldSummon && oldSummon->IsSummon())
oldSummon->ToTempSummon()->UnSummon();
}
owner->m_SummonSlot[slot] = GetGUID();
@@ -241,8 +241,8 @@ void TempSummon::UnSummon(uint32 msTime)
return;
}
- //ASSERT(!isPet());
- if (isPet())
+ //ASSERT(!IsPet());
+ if (IsPet())
{
((Pet*)this)->Remove(PET_SAVE_NOT_IN_SLOT);
ASSERT(!IsInWorld());
@@ -310,7 +310,7 @@ void Minion::RemoveFromWorld()
bool Minion::IsGuardianPet() const
{
- return isPet() || (m_Properties && m_Properties->Category == SUMMON_CATEGORY_PET);
+ return IsPet() || (m_Properties && m_Properties->Category == SUMMON_CATEGORY_PET);
}
Guardian::Guardian(SummonPropertiesEntry const* properties, Unit* owner, bool isWorldObject) : Minion(properties, owner, isWorldObject)
@@ -376,7 +376,7 @@ void Puppet::Update(uint32 time)
//check if caster is channelling?
if (IsInWorld())
{
- if (!isAlive())
+ if (!IsAlive())
{
UnSummon();
/// @todo why long distance .die does not remove it
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp
index cc9e87052f7..906c1f281bc 100644
--- a/src/server/game/Entities/GameObject/GameObject.cpp
+++ b/src/server/game/Entities/GameObject/GameObject.cpp
@@ -17,21 +17,21 @@
*/
#include "GameObjectAI.h"
-#include "ObjectMgr.h"
+#include "Battleground.h"
+#include "CellImpl.h"
+#include "CreatureAISelector.h"
+#include "DynamicTree.h"
+#include "GameObjectModel.h"
+#include "GridNotifiersImpl.h"
+#include "Group.h"
#include "GroupMgr.h"
+#include "ObjectMgr.h"
+#include "OutdoorPvPMgr.h"
#include "PoolMgr.h"
+#include "ScriptMgr.h"
#include "SpellMgr.h"
+#include "UpdateFieldFlags.h"
#include "World.h"
-#include "GridNotifiersImpl.h"
-#include "CellImpl.h"
-#include "OutdoorPvPMgr.h"
-#include "BattlegroundAV.h"
-#include "ScriptMgr.h"
-#include "CreatureAISelector.h"
-#include "Group.h"
-
-#include "GameObjectModel.h"
-#include "DynamicTree.h"
GameObject::GameObject(): WorldObject(false), m_model(NULL), m_goValue(), m_AI(NULL)
{
@@ -87,7 +87,10 @@ bool GameObject::AIM_Initialize()
std::string GameObject::GetAIName() const
{
- return sObjectMgr->GetGameObjectTemplate(GetEntry())->AIName;
+ if (GameObjectTemplate const* got = sObjectMgr->GetGameObjectTemplate(GetEntry()))
+ return got->AIName;
+
+ return "";
}
void GameObject::CleanupsBeforeDelete(bool /*finalCleanup*/)
@@ -299,7 +302,7 @@ void GameObject::Update(uint32 diff)
m_cooldownTime = time(NULL) + 10; // Hardcoded tooltip value
else if (Unit* owner = GetOwner())
{
- if (owner->isInCombat())
+ if (owner->IsInCombat())
m_cooldownTime = time(NULL) + goInfo->trap.startDelay;
}
m_lootState = GO_READY;
@@ -321,7 +324,7 @@ void GameObject::Update(uint32 diff)
WorldPacket packet;
BuildValuesUpdateBlockForPlayer(&udata, caster->ToPlayer());
udata.BuildPacket(&packet);
- caster->ToPlayer()->GetSession()->SendPacket(&packet);
+ caster->ToPlayer()->SendDirectMessage(&packet);
SendCustomAnim(GetGoAnimProgress());
}
@@ -370,7 +373,7 @@ void GameObject::Update(uint32 diff)
caster->ToPlayer()->RemoveGameObject(this, false);
WorldPacket data(SMSG_FISH_ESCAPED, 0);
- caster->ToPlayer()->GetSession()->SendPacket(&data);
+ caster->ToPlayer()->SendDirectMessage(&data);
}
// can be delete
m_lootState = GO_JUST_DEACTIVATED;
@@ -709,7 +712,7 @@ void GameObject::SaveToDB(uint32 mapid, uint8 spawnMask, uint32 phaseMask)
stmt->setUInt32(index++, GetEntry());
stmt->setUInt16(index++, uint16(mapid));
stmt->setUInt8(index++, spawnMask);
- stmt->setUInt16(index++, uint16(GetPhaseMask()));
+ stmt->setUInt32(index++, GetPhaseMask());
stmt->setFloat(index++, GetPositionX());
stmt->setFloat(index++, GetPositionY());
stmt->setFloat(index++, GetPositionZ());
@@ -869,7 +872,9 @@ bool GameObject::IsDynTransport() const
bool GameObject::IsDestructibleBuilding() const
{
GameObjectTemplate const* gInfo = GetGOInfo();
- if (!gInfo) return false;
+ if (!gInfo)
+ return false;
+
return gInfo->type == GAMEOBJECT_TYPE_DESTRUCTIBLE_BUILDING;
}
@@ -945,12 +950,8 @@ bool GameObject::ActivateToQuest(Player* target) const
{
if (LootTemplates_Gameobject.HaveQuestLootForPlayer(GetGOInfo()->GetLootId(), target))
{
- /// @todo fix this hack
- //look for battlegroundAV for some objects which are only activated after mine gots captured by own team
- if (GetEntry() == BG_AV_OBJECTID_MINE_N || GetEntry() == BG_AV_OBJECTID_MINE_S)
- if (Battleground* bg = target->GetBattleground())
- if (bg->GetTypeID(true) == BATTLEGROUND_AV && !(((BattlegroundAV*)bg)->PlayerCanDoMineQuest(GetEntry(), target->GetTeam())))
- return false;
+ if (Battleground const* bg = target->GetBattleground())
+ return bg->CanActivateGO(GetEntry(), target->GetTeam());
return true;
}
break;
@@ -1239,7 +1240,7 @@ void GameObject::Use(Unit* user)
{
WorldPacket data(SMSG_GAMEOBJECT_PAGETEXT, 8);
data << GetGUID();
- player->GetSession()->SendPacket(&data);
+ player->SendDirectMessage(&data);
}
else if (info->goober.gossipID)
{
@@ -1381,7 +1382,7 @@ void GameObject::Use(Unit* user)
SetLootState(GO_JUST_DEACTIVATED);
WorldPacket data(SMSG_FISH_NOT_HOOKED, 0);
- player->GetSession()->SendPacket(&data);
+ player->SendDirectMessage(&data);
break;
}
}
@@ -1644,7 +1645,7 @@ void GameObject::Use(Unit* user)
player->TeleportTo(GetMapId(), GetPositionX(), GetPositionY(), GetPositionZ(), GetOrientation(), TELE_TO_NOT_LEAVE_TRANSPORT | TELE_TO_NOT_LEAVE_COMBAT | TELE_TO_NOT_UNSUMMON_PET);
WorldPacket data(SMSG_ENABLE_BARBER_SHOP, 0);
- player->GetSession()->SendPacket(&data);
+ player->SendDirectMessage(&data);
player->SetStandState(UNIT_STAND_STATE_SIT_LOW_CHAIR+info->barberChair.chairheight);
return;
@@ -1840,7 +1841,7 @@ void GameObject::ModifyHealth(int32 change, Unit* attackerOrHealer /*= NULL*/, u
data << uint32(-change); // change < 0 triggers SPELL_BUILDING_HEAL combat log event
// change >= 0 triggers SPELL_BUILDING_DAMAGE event
data << uint32(spellId);
- player->GetSession()->SendPacket(&data);
+ player->SendDirectMessage(&data);
}
GameObjectDestructibleState newState = GetDestructibleState();
@@ -2080,3 +2081,71 @@ bool GameObject::IsLootAllowedFor(Player const* player) const
return true;
}
+
+void GameObject::BuildValuesUpdate(uint8 updateType, ByteBuffer* data, Player* target) const
+{
+ if (!target)
+ return;
+
+ bool forcedFlags = GetGoType() == GAMEOBJECT_TYPE_CHEST && GetGOInfo()->chest.groupLootRules && HasLootRecipient();
+ bool targetIsGM = target->IsGameMaster();
+
+ ByteBuffer fieldBuffer;
+
+ UpdateMask updateMask;
+ updateMask.SetCount(m_valuesCount);
+
+ uint32* flags = GameObjectUpdateFieldFlags;
+ uint32 visibleFlag = UF_FLAG_PUBLIC;
+ if (GetOwnerGUID() == target->GetGUID())
+ visibleFlag |= UF_FLAG_OWNER;
+
+ for (uint16 index = 0; index < m_valuesCount; ++index)
+ {
+ if (_fieldNotifyFlags & flags[index] ||
+ ((updateType == UPDATETYPE_VALUES ? _changesMask.GetBit(index) : m_uint32Values[index]) && (flags[index] & visibleFlag)) ||
+ (index == GAMEOBJECT_FLAGS && forcedFlags))
+ {
+ updateMask.SetBit(index);
+
+ if (index == GAMEOBJECT_DYNAMIC)
+ {
+ uint16 dynFlags = 0;
+ switch (GetGoType())
+ {
+ case GAMEOBJECT_TYPE_CHEST:
+ case GAMEOBJECT_TYPE_GOOBER:
+ if (ActivateToQuest(target))
+ dynFlags |= GO_DYNFLAG_LO_ACTIVATE | GO_DYNFLAG_LO_SPARKLE;
+ else if (targetIsGM)
+ dynFlags |= GO_DYNFLAG_LO_ACTIVATE;
+ break;
+ case GAMEOBJECT_TYPE_GENERIC:
+ if (ActivateToQuest(target))
+ dynFlags |= GO_DYNFLAG_LO_SPARKLE;
+ break;
+ default:
+ break;
+ }
+
+ fieldBuffer << uint16(dynFlags);
+ fieldBuffer << uint16(-1);
+ }
+ else if (index == GAMEOBJECT_FLAGS)
+ {
+ uint32 flags = m_uint32Values[GAMEOBJECT_FLAGS];
+ if (GetGoType() == GAMEOBJECT_TYPE_CHEST)
+ if (GetGOInfo()->chest.groupLootRules && !IsLootAllowedFor(target))
+ flags |= GO_FLAG_LOCKED | GO_FLAG_NOT_SELECTABLE;
+
+ fieldBuffer << flags;
+ }
+ else
+ fieldBuffer << m_uint32Values[index]; // other cases
+ }
+ }
+
+ *data << uint8(updateMask.GetBlockCount());
+ updateMask.AppendToPacket(data);
+ data->append(fieldBuffer);
+}
diff --git a/src/server/game/Entities/GameObject/GameObject.h b/src/server/game/Entities/GameObject/GameObject.h
index 164735a56b5..3bddac81ee9 100644
--- a/src/server/game/Entities/GameObject/GameObject.h
+++ b/src/server/game/Entities/GameObject/GameObject.h
@@ -582,7 +582,7 @@ struct GameObjectData
explicit GameObjectData() : dbData(true) {}
uint32 id; // entry in gamobject_template
uint16 mapid;
- uint16 phaseMask;
+ uint32 phaseMask;
float posX;
float posY;
float posZ;
@@ -623,6 +623,8 @@ class GameObject : public WorldObject, public GridObject<GameObject>
explicit GameObject();
~GameObject();
+ void BuildValuesUpdate(uint8 updatetype, ByteBuffer* data, Player* target) const;
+
void AddToWorld();
void RemoveFromWorld();
void CleanupsBeforeDelete(bool finalCleanup = true);
diff --git a/src/server/game/Entities/Item/Item.cpp b/src/server/game/Entities/Item/Item.cpp
index e1ca398c7f3..ed4341dea8a 100644
--- a/src/server/game/Entities/Item/Item.cpp
+++ b/src/server/game/Entities/Item/Item.cpp
@@ -877,16 +877,26 @@ bool Item::IsFitToSpellRequirements(SpellInfo const* spellInfo) const
return true;
}
-void Item::SetEnchantment(EnchantmentSlot slot, uint32 id, uint32 duration, uint32 charges)
+void Item::SetEnchantment(EnchantmentSlot slot, uint32 id, uint32 duration, uint32 charges, uint64 caster /*= 0*/)
{
// Better lost small time at check in comparison lost time at item save to DB.
if ((GetEnchantmentId(slot) == id) && (GetEnchantmentDuration(slot) == duration) && (GetEnchantmentCharges(slot) == charges))
return;
+ Player* owner = GetOwner();
+ if (slot < MAX_INSPECTED_ENCHANTMENT_SLOT)
+ {
+ if (uint32 oldEnchant = GetEnchantmentId(slot))
+ owner->GetSession()->SendEnchantmentLog(GetOwnerGUID(), 0, GetEntry(), oldEnchant);
+
+ if (id)
+ owner->GetSession()->SendEnchantmentLog(GetOwnerGUID(), caster, GetEntry(), id);
+ }
+
SetUInt32Value(ITEM_FIELD_ENCHANTMENT_1_1 + slot*MAX_ENCHANTMENT_OFFSET + ENCHANTMENT_ID_OFFSET, id);
SetUInt32Value(ITEM_FIELD_ENCHANTMENT_1_1 + slot*MAX_ENCHANTMENT_OFFSET + ENCHANTMENT_DURATION_OFFSET, duration);
SetUInt32Value(ITEM_FIELD_ENCHANTMENT_1_1 + slot*MAX_ENCHANTMENT_OFFSET + ENCHANTMENT_CHARGES_OFFSET, charges);
- SetState(ITEM_CHANGED, GetOwner());
+ SetState(ITEM_CHANGED, owner);
}
void Item::SetEnchantmentDuration(EnchantmentSlot slot, uint32 duration, Player* owner)
@@ -1003,6 +1013,16 @@ bool Item::IsLimitedToAnotherMapOrZone(uint32 cur_mapId, uint32 cur_zoneId) cons
return proto && ((proto->Map && proto->Map != cur_mapId) || (proto->Area && proto->Area != cur_zoneId));
}
+void Item::SendUpdateSockets()
+{
+ WorldPacket data(SMSG_SOCKET_GEMS_RESULT, 8+4+4+4+4);
+ data << uint64(GetGUID());
+ for (uint32 i = SOCK_ENCHANTMENT_SLOT; i <= BONUS_ENCHANTMENT_SLOT; ++i)
+ data << uint32(GetEnchantmentId(EnchantmentSlot(i)));
+
+ GetOwner()->GetSession()->SendPacket(&data);
+}
+
// Though the client has the information in the item's data field,
// we have to send SMSG_ITEM_TIME_UPDATE to display the remaining
// time.
@@ -1258,7 +1278,7 @@ void Item::ItemContainerSaveLootToDB()
stmt_items->setBool(6, _li->is_counted);
stmt_items->setBool(7, _li->is_underthreshold);
stmt_items->setBool(8, _li->needs_quest);
- stmt_items->setUInt32(9, _li->randomPropertyId);
+ stmt_items->setInt32(9, _li->randomPropertyId);
stmt_items->setUInt32(10, _li->randomSuffix);
trans->Append(stmt_items);
}
@@ -1319,7 +1339,7 @@ bool Item::ItemContainerLoadLootFromDB()
loot_item.canSave = true;
loot_item.is_underthreshold = fields[6].GetBool();
loot_item.needs_quest = fields[7].GetBool();
- loot_item.randomPropertyId = fields[8].GetUInt32();
+ loot_item.randomPropertyId = fields[8].GetInt32();
loot_item.randomSuffix = fields[9].GetUInt32();
// Copy the extra loot conditions from the item in the loot template
diff --git a/src/server/game/Entities/Item/Item.h b/src/server/game/Entities/Item/Item.h
index 0d34305d15c..b18dfe694d6 100644
--- a/src/server/game/Entities/Item/Item.h
+++ b/src/server/game/Entities/Item/Item.h
@@ -289,7 +289,7 @@ class Item : public Object
void SetItemRandomProperties(int32 randomPropId);
void UpdateItemSuffixFactor();
static int32 GenerateItemRandomPropertyId(uint32 item_id);
- void SetEnchantment(EnchantmentSlot slot, uint32 id, uint32 duration, uint32 charges);
+ void SetEnchantment(EnchantmentSlot slot, uint32 id, uint32 duration, uint32 charges, uint64 caster = 0);
void SetEnchantmentDuration(EnchantmentSlot slot, uint32 duration, Player* owner);
void SetEnchantmentCharges(EnchantmentSlot slot, uint32 charges);
void ClearEnchantment(EnchantmentSlot slot);
@@ -300,6 +300,8 @@ class Item : public Object
std::string const& GetText() const { return m_text; }
void SetText(std::string const& text) { m_text = text; }
+ void SendUpdateSockets();
+
void SendTimeUpdate(Player* owner);
void UpdateDuration(Player* owner, uint32 diff);
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index 6d6c0be5666..ec6a3e518c4 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -194,7 +194,7 @@ void Object::BuildMovementUpdateBlock(UpdateData* data, uint32 flags) const
buf << uint8(UPDATETYPE_MOVEMENT);
buf.append(GetPackGUID());
- _BuildMovementUpdate(&buf, flags);
+ BuildMovementUpdate(&buf, flags);
data->AddUpdateBlock(buf);
}
@@ -242,7 +242,7 @@ void Object::BuildCreateUpdateBlockForPlayer(UpdateData* data, Player* target) c
if (isType(TYPEMASK_UNIT))
{
- if (ToUnit()->getVictim())
+ if (ToUnit()->GetVictim())
flags |= UPDATEFLAG_HAS_TARGET;
}
}
@@ -254,12 +254,8 @@ void Object::BuildCreateUpdateBlockForPlayer(UpdateData* data, Player* target) c
buf.append(GetPackGUID());
buf << uint8(m_objectTypeId);
- _BuildMovementUpdate(&buf, flags);
-
- UpdateMask updateMask;
- updateMask.SetCount(m_valuesCount);
- _SetCreateBits(&updateMask, target);
- _BuildValuesUpdate(updateType, &buf, &updateMask, target);
+ BuildMovementUpdate(&buf, flags);
+ BuildValuesUpdate(updateType, &buf, target);
data->AddUpdateBlock(buf);
}
@@ -281,11 +277,7 @@ void Object::BuildValuesUpdateBlockForPlayer(UpdateData* data, Player* target) c
buf << uint8(UPDATETYPE_VALUES);
buf.append(GetPackGUID());
- UpdateMask updateMask;
- updateMask.SetCount(m_valuesCount);
-
- _SetUpdateBits(&updateMask, target);
- _BuildValuesUpdate(UPDATETYPE_VALUES, &buf, &updateMask, target);
+ BuildValuesUpdate(UPDATETYPE_VALUES, &buf, target);
data->AddUpdateBlock(buf);
}
@@ -358,7 +350,7 @@ uint16 Object::GetUInt16Value(uint16 index, uint8 offset) const
return *(((uint16*)&m_uint32Values[index])+offset);
}
-void Object::_BuildMovementUpdate(ByteBuffer* data, uint16 flags) const
+void Object::BuildMovementUpdate(ByteBuffer* data, uint16 flags) const
{
Unit const* unit = NULL;
WorldObject const* object = NULL;
@@ -485,7 +477,7 @@ void Object::_BuildMovementUpdate(ByteBuffer* data, uint16 flags) const
// 0x4
if (flags & UPDATEFLAG_HAS_TARGET)
{
- if (Unit* victim = unit->getVictim())
+ if (Unit* victim = unit->GetVictim())
data->append(victim->GetPackGUID());
else
*data << uint8(0);
@@ -510,295 +502,31 @@ void Object::_BuildMovementUpdate(ByteBuffer* data, uint16 flags) const
*data << int64(ToGameObject()->GetRotation());
}
-void Object::_BuildValuesUpdate(uint8 updateType, ByteBuffer* data, UpdateMask* updateMask, Player* target) const
+void Object::BuildValuesUpdate(uint8 updateType, ByteBuffer* data, Player* target) const
{
if (!target)
return;
- bool IsActivateToQuest = false;
-
- // Before trying to convert to each type there is a check, so safe
- Unit const* unit = ToUnit();
- GameObject const* go = ToGameObject();
-
- if (unit)
- {
- if (unit->HasFlag(UNIT_FIELD_AURASTATE, PER_CASTER_AURA_STATE_MASK))
- updateMask->SetBit(UNIT_FIELD_AURASTATE);
- }
- else if (go)
- {
- if (updateType == UPDATETYPE_CREATE_OBJECT || updateType == UPDATETYPE_CREATE_OBJECT2)
- {
- if (!go->IsDynTransport())
- {
- if (go->ActivateToQuest(target) || target->isGameMaster())
- IsActivateToQuest = true;
-
- if (go->GetGoArtKit())
- updateMask->SetBit(GAMEOBJECT_BYTES_1);
- }
- }
- else
- {
- if (!go->IsTransport())
- {
- if (go->ActivateToQuest(target) || target->isGameMaster())
- IsActivateToQuest = true;
-
- updateMask->SetBit(GAMEOBJECT_BYTES_1);
-
- if (go->GetGoType() == GAMEOBJECT_TYPE_CHEST && go->GetGOInfo()->chest.groupLootRules &&
- go->HasLootRecipient())
- {
- updateMask->SetBit(GAMEOBJECT_FLAGS);
- }
- }
- }
- }
-
- ASSERT(updateMask && updateMask->GetCount() == m_valuesCount);
+ ByteBuffer fieldBuffer;
+ UpdateMask updateMask;
+ updateMask.SetCount(m_valuesCount);
- *data << uint8(updateMask->GetBlockCount());
- updateMask->AppendToPacket(data);
+ uint32* flags = NULL;
+ uint32 visibleFlag = GetUpdateFieldData(target, flags);
- // 2 specialized loops for speed optimization in non-unit case
- if (unit) // unit (creature/player) case
+ for (uint16 index = 0; index < m_valuesCount; ++index)
{
- Creature const* creature = ToCreature();
- for (uint16 index = 0; index < m_valuesCount; ++index)
+ if (_fieldNotifyFlags & flags[index] ||
+ ((updateType == UPDATETYPE_VALUES ? _changesMask.GetBit(index) : m_uint32Values[index]) && (flags[index] & visibleFlag)))
{
- if (updateMask->GetBit(index))
- {
- if (index == UNIT_NPC_FLAGS)
- {
- // remove custom flag before sending
- uint32 appendValue = m_uint32Values[index];
-
- if (GetTypeId() == TYPEID_UNIT)
- {
- if (!target->canSeeSpellClickOn(this->ToCreature()))
- appendValue &= ~UNIT_NPC_FLAG_SPELLCLICK;
-
- if (appendValue & UNIT_NPC_FLAG_TRAINER)
- {
- if (!creature->isCanTrainingOf(target, false))
- appendValue &= ~(UNIT_NPC_FLAG_TRAINER | UNIT_NPC_FLAG_TRAINER_CLASS | UNIT_NPC_FLAG_TRAINER_PROFESSION);
- }
- }
-
- *data << uint32(appendValue);
- }
- else if (index == UNIT_FIELD_AURASTATE)
- {
- // Check per caster aura states to not enable using a spell in client if specified aura is not by target
- *data << unit->BuildAuraStateUpdateForTarget(target);
- }
- // FIXME: Some values at server stored in float format but must be sent to client in uint32 format
- else if (index >= UNIT_FIELD_BASEATTACKTIME && index <= UNIT_FIELD_RANGEDATTACKTIME)
- {
- // convert from float to uint32 and send
- *data << uint32(m_floatValues[index] < 0 ? 0 : m_floatValues[index]);
- }
- // there are some float values which may be negative or can't get negative due to other checks
- else if ((index >= UNIT_FIELD_NEGSTAT0 && index <= UNIT_FIELD_NEGSTAT4) ||
- (index >= UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE && index <= (UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE + 6)) ||
- (index >= UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE && index <= (UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE + 6)) ||
- (index >= UNIT_FIELD_POSSTAT0 && index <= UNIT_FIELD_POSSTAT4))
- {
- *data << uint32(m_floatValues[index]);
- }
- // Gamemasters should be always able to select units - remove not selectable flag
- else if (index == UNIT_FIELD_FLAGS)
- {
- if (target->isGameMaster())
- *data << (m_uint32Values[index] & ~UNIT_FLAG_NOT_SELECTABLE);
- else
- *data << m_uint32Values[index];
- }
- // use modelid_a if not gm, _h if gm for CREATURE_FLAG_EXTRA_TRIGGER creatures
- else if (index == UNIT_FIELD_DISPLAYID)
- {
- if (GetTypeId() == TYPEID_UNIT)
- {
- CreatureTemplate const* cinfo = creature->GetCreatureTemplate();
-
- // this also applies for transform auras
- if (SpellInfo const* transform = sSpellMgr->GetSpellInfo(ToUnit()->getTransForm()))
- for (uint8 i = 0; i < MAX_SPELL_EFFECTS; ++i)
- if (transform->Effects[i].IsAura(SPELL_AURA_TRANSFORM))
- if (CreatureTemplate const* transformInfo = sObjectMgr->GetCreatureTemplate(transform->Effects[i].MiscValue))
- {
- cinfo = transformInfo;
- break;
- }
-
- if (cinfo->flags_extra & CREATURE_FLAG_EXTRA_TRIGGER)
- {
- if (target->isGameMaster())
- {
- if (cinfo->Modelid1)
- *data << cinfo->Modelid1;//Modelid1 is a visible model for gms
- else
- *data << 17519; // world invisible trigger's model
- }
- else
- {
- if (cinfo->Modelid2)
- *data << cinfo->Modelid2;//Modelid2 is an invisible model for players
- else
- *data << 11686; // world invisible trigger's model
- }
- }
- else
- *data << m_uint32Values[index];
- }
- else
- *data << m_uint32Values[index];
- }
- // hide lootable animation for unallowed players
- else if (index == UNIT_DYNAMIC_FLAGS)
- {
- uint32 dynamicFlags = m_uint32Values[index];
-
- if (creature)
- {
- if (creature->hasLootRecipient())
- {
- if (creature->isTappedBy(target))
- {
- dynamicFlags |= (UNIT_DYNFLAG_TAPPED | UNIT_DYNFLAG_TAPPED_BY_PLAYER);
- }
- else
- {
- dynamicFlags |= UNIT_DYNFLAG_TAPPED;
- dynamicFlags &= ~UNIT_DYNFLAG_TAPPED_BY_PLAYER;
- }
- }
- else
- {
- dynamicFlags &= ~UNIT_DYNFLAG_TAPPED;
- dynamicFlags &= ~UNIT_DYNFLAG_TAPPED_BY_PLAYER;
- }
-
- if (!target->isAllowedToLoot(creature))
- dynamicFlags &= ~UNIT_DYNFLAG_LOOTABLE;
- }
-
- // unit UNIT_DYNFLAG_TRACK_UNIT should only be sent to caster of SPELL_AURA_MOD_STALKED auras
- if (dynamicFlags & UNIT_DYNFLAG_TRACK_UNIT)
- if (!unit->HasAuraTypeWithCaster(SPELL_AURA_MOD_STALKED, target->GetGUID()))
- dynamicFlags &= ~UNIT_DYNFLAG_TRACK_UNIT;
- *data << dynamicFlags;
- }
- // FG: pretend that OTHER players in own group are friendly ("blue")
- else if (index == UNIT_FIELD_BYTES_2 || index == UNIT_FIELD_FACTIONTEMPLATE)
- {
- if (unit->IsControlledByPlayer() && target != this && sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_GROUP) && unit->IsInRaidWith(target))
- {
- FactionTemplateEntry const* ft1 = unit->getFactionTemplateEntry();
- FactionTemplateEntry const* ft2 = target->getFactionTemplateEntry();
- if (ft1 && ft2 && !ft1->IsFriendlyTo(*ft2))
- {
- if (index == UNIT_FIELD_BYTES_2)
- {
- // Allow targetting opposite faction in party when enabled in config
- *data << (m_uint32Values[index] & ((UNIT_BYTE2_FLAG_SANCTUARY /*| UNIT_BYTE2_FLAG_AURAS | UNIT_BYTE2_FLAG_UNK5*/) << 8)); // this flag is at uint8 offset 1 !!
- }
- else
- {
- // pretend that all other HOSTILE players have own faction, to allow follow, heal, rezz (trade wont work)
- uint32 faction = target->getFaction();
- *data << uint32(faction);
- }
- }
- else
- *data << m_uint32Values[index];
- }
- else
- *data << m_uint32Values[index];
- }
- else
- {
- // send in current format (float as float, uint32 as uint32)
- *data << m_uint32Values[index];
- }
- }
+ updateMask.SetBit(index);
+ fieldBuffer << m_uint32Values[index];
}
}
- else if (go) // gameobject case
- {
- for (uint16 index = 0; index < m_valuesCount; ++index)
- {
- if (updateMask->GetBit(index))
- {
- // send in current format (float as float, uint32 as uint32)
- if (index == GAMEOBJECT_DYNAMIC)
- {
- if (IsActivateToQuest)
- {
- switch (go->GetGoType())
- {
- case GAMEOBJECT_TYPE_CHEST:
- if (target->isGameMaster())
- *data << uint16(GO_DYNFLAG_LO_ACTIVATE);
- else
- *data << uint16(GO_DYNFLAG_LO_ACTIVATE | GO_DYNFLAG_LO_SPARKLE);
- *data << uint16(-1);
- break;
- case GAMEOBJECT_TYPE_GENERIC:
- if (target->isGameMaster())
- *data << uint16(0);
- else
- *data << uint16(GO_DYNFLAG_LO_SPARKLE);
- *data << uint16(-1);
- break;
- case GAMEOBJECT_TYPE_GOOBER:
- if (target->isGameMaster())
- *data << uint16(GO_DYNFLAG_LO_ACTIVATE);
- else
- *data << uint16(GO_DYNFLAG_LO_ACTIVATE | GO_DYNFLAG_LO_SPARKLE);
- *data << uint16(-1);
- break;
- default:
- // unknown, not happen.
- *data << uint16(0);
- *data << uint16(-1);
- break;
- }
- }
- else
- {
- // disable quest object
- *data << uint16(0);
- *data << uint16(-1);
- }
- }
- else if (index == GAMEOBJECT_FLAGS)
- {
- uint32 flags = m_uint32Values[index];
- if (go->GetGoType() == GAMEOBJECT_TYPE_CHEST)
- if (go->GetGOInfo()->chest.groupLootRules && !go->IsLootAllowedFor(target))
- flags |= GO_FLAG_LOCKED | GO_FLAG_NOT_SELECTABLE;
- *data << flags;
- }
- else
- *data << m_uint32Values[index]; // other cases
- }
- }
- }
- else // other objects case (no special index checks)
- {
- for (uint16 index = 0; index < m_valuesCount; ++index)
- {
- if (updateMask->GetBit(index))
- {
- // send in current format (float as float, uint32 as uint32)
- *data << m_uint32Values[index];
- }
- }
- }
+ *data << uint8(updateMask.GetBlockCount());
+ updateMask.AppendToPacket(data);
+ data->append(fieldBuffer);
}
void Object::ClearUpdateMask(bool remove)
@@ -897,27 +625,6 @@ void Object::_LoadIntoDataField(std::string const& data, uint32 startOffset, uin
}
}
-void Object::_SetUpdateBits(UpdateMask* updateMask, Player* target) const
-{
- uint32* flags = NULL;
- uint32 visibleFlag = GetUpdateFieldData(target, flags);
-
- for (uint16 index = 0; index < m_valuesCount; ++index)
- if (_fieldNotifyFlags & flags[index] || ((flags[index] & visibleFlag) & UF_FLAG_SPECIAL_INFO) || (_changesMask.GetBit(index) && (flags[index] & visibleFlag)))
- updateMask->SetBit(index);
-}
-
-void Object::_SetCreateBits(UpdateMask* updateMask, Player* target) const
-{
- uint32* value = m_uint32Values;
- uint32* flags = NULL;
- uint32 visibleFlag = GetUpdateFieldData(target, flags);
-
- for (uint16 index = 0; index < m_valuesCount; ++index, ++value)
- if (_fieldNotifyFlags & flags[index] || ((flags[index] & visibleFlag) & UF_FLAG_SPECIAL_INFO) || (*value && (flags[index] & visibleFlag)))
- updateMask->SetBit(index);
-}
-
void Object::SetInt32Value(uint16 index, int32 value)
{
ASSERT(index < m_valuesCount || PrintIndexError(index, true));
@@ -1371,12 +1078,12 @@ void MovementInfo::OutDebug()
if (flags & MOVEMENTFLAG_ONTRANSPORT)
{
TC_LOG_INFO(LOG_FILTER_GENERAL, "TRANSPORT:");
- TC_LOG_INFO(LOG_FILTER_GENERAL, "guid: " UI64FMTD, t_guid);
- TC_LOG_INFO(LOG_FILTER_GENERAL, "position: `%s`", t_pos.ToString().c_str());
- TC_LOG_INFO(LOG_FILTER_GENERAL, "seat: %i", t_seat);
- TC_LOG_INFO(LOG_FILTER_GENERAL, "time: %u", t_time);
+ TC_LOG_INFO(LOG_FILTER_GENERAL, "guid: " UI64FMTD, transport.guid);
+ TC_LOG_INFO(LOG_FILTER_GENERAL, "position: `%s`", transport.pos.ToString().c_str());
+ TC_LOG_INFO(LOG_FILTER_GENERAL, "seat: %i", transport.seat);
+ TC_LOG_INFO(LOG_FILTER_GENERAL, "time: %u", transport.time);
if (flags2 & MOVEMENTFLAG2_INTERPOLATED_MOVEMENT)
- TC_LOG_INFO(LOG_FILTER_GENERAL, "time2: %u", t_time2);
+ TC_LOG_INFO(LOG_FILTER_GENERAL, "time2: %u", transport.time2);
}
if ((flags & (MOVEMENTFLAG_SWIMMING | MOVEMENTFLAG_FLYING)) || (flags2 & MOVEMENTFLAG2_ALWAYS_ALLOW_PITCHING))
@@ -1384,7 +1091,7 @@ void MovementInfo::OutDebug()
TC_LOG_INFO(LOG_FILTER_GENERAL, "fallTime: %u", fallTime);
if (flags & MOVEMENTFLAG_FALLING)
- TC_LOG_INFO(LOG_FILTER_GENERAL, "j_zspeed: %f j_sinAngle: %f j_cosAngle: %f j_xyspeed: %f", j_zspeed, j_sinAngle, j_cosAngle, j_xyspeed);
+ TC_LOG_INFO(LOG_FILTER_GENERAL, "j_zspeed: %f j_sinAngle: %f j_cosAngle: %f j_xyspeed: %f", jump.zspeed, jump.sinAngle, jump.cosAngle, jump.xyspeed);
if (flags & MOVEMENTFLAG_SPLINE_ELEVATION)
TC_LOG_INFO(LOG_FILTER_GENERAL, "splineElevation: %f", splineElevation);
@@ -1509,12 +1216,12 @@ bool WorldObject::_IsWithinDist(WorldObject const* obj, float dist2compare, bool
if (m_transport && obj->GetTransport() && obj->GetTransport()->GetGUIDLow() == m_transport->GetGUIDLow())
{
- float dtx = m_movementInfo.t_pos.m_positionX - obj->m_movementInfo.t_pos.m_positionX;
- float dty = m_movementInfo.t_pos.m_positionY - obj->m_movementInfo.t_pos.m_positionY;
+ float dtx = m_movementInfo.transport.pos.m_positionX - obj->m_movementInfo.transport.pos.m_positionX;
+ float dty = m_movementInfo.transport.pos.m_positionY - obj->m_movementInfo.transport.pos.m_positionY;
float disttsq = dtx * dtx + dty * dty;
if (is3D)
{
- float dtz = m_movementInfo.t_pos.m_positionZ - obj->m_movementInfo.t_pos.m_positionZ;
+ float dtz = m_movementInfo.transport.pos.m_positionZ - obj->m_movementInfo.transport.pos.m_positionZ;
disttsq += dtz * dtz;
}
return disttsq < (maxdist * maxdist);
@@ -1871,7 +1578,7 @@ void WorldObject::UpdateAllowedPositionZ(float x, float y, float &z) const
// non swim unit must be at ground (mostly speedup, because it don't must be in water and water level check less fast
if (!ToCreature()->CanFly())
{
- bool canSwim = ToCreature()->canSwim();
+ bool canSwim = ToCreature()->CanSwim();
float ground_z = z;
float max_z = canSwim
? GetBaseMap()->GetWaterOrGroundLevel(x, y, z, &ground_z, !ToUnit()->HasAuraType(SPELL_AURA_WATER_WALK))
@@ -1968,7 +1675,7 @@ float WorldObject::GetSightRange(const WorldObject* target) const
return 0.0f;
}
-bool WorldObject::canSeeOrDetect(WorldObject const* obj, bool ignoreStealth, bool distanceCheck) const
+bool WorldObject::CanSeeOrDetect(WorldObject const* obj, bool ignoreStealth, bool distanceCheck) const
{
if (this == obj)
return true;
@@ -2291,8 +1998,8 @@ void WorldObject::MonsterYellToZone(int32 textId, uint32 language, uint64 Target
Map::PlayerList const& pList = GetMap()->GetPlayers();
for (Map::PlayerList::const_iterator itr = pList.begin(); itr != pList.end(); ++itr)
- if (itr->getSource()->GetZoneId() == zoneid)
- say_do(itr->getSource());
+ if (itr->GetSource()->GetZoneId() == zoneid)
+ say_do(itr->GetSource());
}
void WorldObject::MonsterTextEmote(const char* text, uint64 TargetGuid, bool IsBossEmote)
@@ -2749,7 +2456,7 @@ namespace Trinity
float x, y, z;
- if (!c->isAlive() || c->HasUnitState(UNIT_STATE_ROOT | UNIT_STATE_STUNNED | UNIT_STATE_DISTRACTED) ||
+ if (!c->IsAlive() || c->HasUnitState(UNIT_STATE_ROOT | UNIT_STATE_STUNNED | UNIT_STATE_DISTRACTED) ||
!c->GetMotionMaster()->GetDestination(x, y, z))
{
x = c->GetPositionX();
@@ -3165,7 +2872,7 @@ struct WorldObjectChangeAccumulator
Player* source = NULL;
for (PlayerMapType::iterator iter = m.begin(); iter != m.end(); ++iter)
{
- source = iter->getSource();
+ source = iter->GetSource();
BuildPacket(source);
@@ -3183,7 +2890,7 @@ struct WorldObjectChangeAccumulator
Creature* source = NULL;
for (CreatureMapType::iterator iter = m.begin(); iter != m.end(); ++iter)
{
- source = iter->getSource();
+ source = iter->GetSource();
if (!source->GetSharedVisionList().empty())
{
SharedVisionList::const_iterator it = source->GetSharedVisionList().begin();
@@ -3198,7 +2905,7 @@ struct WorldObjectChangeAccumulator
DynamicObject* source = NULL;
for (DynamicObjectMapType::iterator iter = m.begin(); iter != m.end(); ++iter)
{
- source = iter->getSource();
+ source = iter->GetSource();
uint64 guid = source->GetCasterGUID();
if (IS_PLAYER_GUID(guid))
diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h
index 9acd3cc3026..2bfb9633066 100644
--- a/src/server/game/Entities/Object/Object.h
+++ b/src/server/game/Entities/Object/Object.h
@@ -134,7 +134,7 @@ class Object
uint32 GetEntry() const { return GetUInt32Value(OBJECT_FIELD_ENTRY); }
void SetEntry(uint32 entry) { SetUInt32Value(OBJECT_FIELD_ENTRY, entry); }
- void SetObjectScale(float scale) { SetFloatValue(OBJECT_FIELD_SCALE_X, scale); }
+ virtual void SetObjectScale(float scale) { SetFloatValue(OBJECT_FIELD_SCALE_X, scale); }
TypeID GetTypeId() const { return m_objectTypeId; }
bool isType(uint16 mask) const { return (mask & m_objectType); }
@@ -236,10 +236,8 @@ class Object
uint32 GetUpdateFieldData(Player const* target, uint32*& flags) const;
- void _SetUpdateBits(UpdateMask* updateMask, Player* target) const;
- void _SetCreateBits(UpdateMask* updateMask, Player* target) const;
- void _BuildMovementUpdate(ByteBuffer * data, uint16 flags) const;
- void _BuildValuesUpdate(uint8 updatetype, ByteBuffer *data, UpdateMask* updateMask, Player* target) const;
+ void BuildMovementUpdate(ByteBuffer* data, uint16 flags) const;
+ virtual void BuildValuesUpdate(uint8 updatetype, ByteBuffer* data, Player* target) const;
uint16 m_objectType;
@@ -409,26 +407,54 @@ struct MovementInfo
uint16 flags2;
Position pos;
uint32 time;
+
// transport
- uint64 t_guid;
- Position t_pos;
- int8 t_seat;
- uint32 t_time;
- uint32 t_time2;
+ struct TransportInfo
+ {
+ void Reset()
+ {
+ guid = 0;
+ pos.Relocate(0.0f, 0.0f, 0.0f, 0.0f);
+ seat = -1;
+ time = 0;
+ time2 = 0;
+ }
+
+ uint64 guid;
+ Position pos;
+ int8 seat;
+ uint32 time;
+ uint32 time2;
+ } transport;
+
// swimming/flying
float pitch;
+
// falling
uint32 fallTime;
- // jumping
- float j_zspeed, j_sinAngle, j_cosAngle, j_xyspeed;
+
+ // jumping
+ struct JumpInfo
+ {
+ void Reset()
+ {
+ zspeed = sinAngle = cosAngle = xyspeed = 0.0f;
+ }
+
+ float zspeed, sinAngle, cosAngle, xyspeed;
+
+ } jump;
+
// spline
float splineElevation;
MovementInfo() :
- guid(), flags(), flags2(), pos(), time(), t_guid(), t_pos(),
- t_seat(-1), t_time(), t_time2(), pitch(), fallTime(),
- j_zspeed(), j_sinAngle(), j_cosAngle(), j_xyspeed()
- { }
+ guid(0), flags(0), flags2(0), time(0), pitch(0.0f)
+ {
+ pos.Relocate(0.0f, 0.0f, 0.0f, 0.0f);
+ transport.Reset();
+ jump.Reset();
+ }
uint32 GetMovementFlags() const { return flags; }
void SetMovementFlags(uint32 flag) { flags = flag; }
@@ -600,7 +626,7 @@ class WorldObject : public Object, public WorldLocation
float GetGridActivationRange() const;
float GetVisibilityRange() const;
float GetSightRange(WorldObject const* target = NULL) const;
- bool canSeeOrDetect(WorldObject const* obj, bool ignoreStealth = false, bool distanceCheck = false) const;
+ bool CanSeeOrDetect(WorldObject const* obj, bool ignoreStealth = false, bool distanceCheck = false) const;
FlaggedValuesArray32<int32, uint32, StealthType, TOTAL_STEALTH_TYPES> m_stealth;
FlaggedValuesArray32<int32, uint32, StealthType, TOTAL_STEALTH_TYPES> m_stealthDetect;
diff --git a/src/server/game/Entities/Pet/Pet.cpp b/src/server/game/Entities/Pet/Pet.cpp
index 0af3fab8434..4c8d48222e5 100644
--- a/src/server/game/Entities/Pet/Pet.cpp
+++ b/src/server/game/Entities/Pet/Pet.cpp
@@ -161,7 +161,7 @@ bool Pet::LoadPetFromDB(Player* owner, uint32 petEntry, uint32 petnumber, bool c
if (petType == HUNTER_PET)
{
CreatureTemplate const* creatureInfo = sObjectMgr->GetCreatureTemplate(petEntry);
- if (!creatureInfo || !creatureInfo->isTameable(owner->CanTameExoticPets()))
+ if (!creatureInfo || !creatureInfo->IsTameable(owner->CanTameExoticPets()))
return false;
}
@@ -372,7 +372,7 @@ void Pet::SavePetToDB(PetSaveMode mode)
if (!IS_PLAYER_GUID(GetOwnerGUID()))
return;
- Player* owner = (Player*)GetOwner();
+ Player* owner = GetOwner();
if (!owner)
return;
@@ -666,7 +666,7 @@ void Creature::Regenerate(Powers power)
if (Powers((*i)->GetMiscValue()) == power)
AddPct(addvalue, (*i)->GetAmount());
- addvalue += GetTotalAuraModifierByMiscValue(SPELL_AURA_MOD_POWER_REGEN, power) * (isHunterPet()? PET_FOCUS_REGEN_INTERVAL : CREATURE_REGEN_INTERVAL) / (5 * IN_MILLISECONDS);
+ addvalue += GetTotalAuraModifierByMiscValue(SPELL_AURA_MOD_POWER_REGEN, power) * (IsHunterPet()? PET_FOCUS_REGEN_INTERVAL : CREATURE_REGEN_INTERVAL) / (5 * IN_MILLISECONDS);
ModifyPower(power, int32(addvalue));
}
@@ -677,7 +677,7 @@ void Pet::LoseHappiness()
if (curValue <= 0)
return;
int32 addvalue = 670; //value is 70/35/17/8/4 (per min) * 1000 / 8 (timer 7.5 secs)
- if (isInCombat()) //we know in combat happiness fades faster, multiplier guess
+ if (IsInCombat()) //we know in combat happiness fades faster, multiplier guess
addvalue = int32(addvalue * 1.5f);
ModifyPower(POWER_HAPPINESS, -addvalue);
}
@@ -705,7 +705,7 @@ void Pet::GivePetXP(uint32 xp)
if (xp < 1)
return;
- if (!isAlive())
+ if (!IsAlive())
return;
uint8 maxlevel = std::min((uint8)sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL), GetOwner()->getLevel());
@@ -832,7 +832,7 @@ bool Guardian::InitStatsForLevel(uint8 petlevel)
//Determine pet type
PetType petType = MAX_PET_TYPE;
- if (isPet() && GetOwner()->GetTypeId() == TYPEID_PLAYER)
+ if (IsPet() && GetOwner()->GetTypeId() == TYPEID_PLAYER)
{
if (GetOwner()->getClass() == CLASS_WARLOCK
|| GetOwner()->getClass() == CLASS_SHAMAN // Fire Elemental
@@ -1142,7 +1142,7 @@ void Pet::_LoadSpellCooldowns()
while (result->NextRow());
if (!m_CreatureSpellCooldowns.empty() && GetOwner())
- ((Player*)GetOwner())->GetSession()->SendPacket(&data);
+ GetOwner()->GetSession()->SendPacket(&data);
}
}
@@ -2078,3 +2078,16 @@ Player* Pet::GetOwner() const
{
return Minion::GetOwner()->ToPlayer();
}
+
+void Pet::SetDisplayId(uint32 modelId)
+{
+ Guardian::SetDisplayId(modelId);
+
+ if (!isControlled())
+ return;
+
+ if (Unit* owner = GetOwner())
+ if (Player* player = owner->ToPlayer())
+ if (player->GetGroup())
+ player->SetGroupUpdateFlag(GROUP_UPDATE_FLAG_PET_MODEL_ID);
+}
diff --git a/src/server/game/Entities/Pet/Pet.h b/src/server/game/Entities/Pet/Pet.h
index c7e4e850ae3..e0afef2b8e3 100644
--- a/src/server/game/Entities/Pet/Pet.h
+++ b/src/server/game/Entities/Pet/Pet.h
@@ -46,6 +46,8 @@ class Pet : public Guardian
void AddToWorld();
void RemoveFromWorld();
+ void SetDisplayId(uint32 modelId);
+
PetType getPetType() const { return m_petType; }
void setPetType(PetType type) { m_petType = type; }
bool isControlled() const { return getPetType() == SUMMON_PET || getPetType() == HUNTER_PET; }
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 353ba8f7f7c..ed08e5f55e7 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -24,7 +24,6 @@
#include "Battlefield.h"
#include "BattlefieldMgr.h"
#include "BattlefieldWG.h"
-#include "BattlegroundAV.h"
#include "Battleground.h"
#include "BattlegroundMgr.h"
#include "CellImpl.h"
@@ -32,7 +31,6 @@
#include "ChannelMgr.h"
#include "CharacterDatabaseCleaner.h"
#include "Chat.h"
-#include <cmath>
#include "Common.h"
#include "ConditionMgr.h"
#include "CreatureAI.h"
@@ -49,8 +47,8 @@
#include "GuildMgr.h"
#include "InstanceSaveMgr.h"
#include "InstanceScript.h"
-#include "Language.h"
#include "LFGMgr.h"
+#include "Language.h"
#include "Log.h"
#include "MapInstanced.h"
#include "MapManager.h"
@@ -59,17 +57,18 @@
#include "Opcodes.h"
#include "OutdoorPvP.h"
#include "OutdoorPvPMgr.h"
-#include "ReputationMgr.h"
#include "Pet.h"
#include "QuestDef.h"
+#include "ReputationMgr.h"
#include "SkillDiscovery.h"
#include "SocialMgr.h"
+#include "Spell.h"
#include "SpellAuraEffects.h"
#include "SpellAuras.h"
-#include "Spell.h"
#include "SpellMgr.h"
#include "Transport.h"
#include "UpdateData.h"
+#include "UpdateFieldFlags.h"
#include "UpdateMask.h"
#include "Util.h"
#include "Vehicle.h"
@@ -455,8 +454,8 @@ inline void KillRewarder::_InitGroupData()
{
// 2. In case when player is in group, initialize variables necessary for group calculations:
for (GroupReference* itr = _group->GetFirstMember(); itr != NULL; itr = itr->next())
- if (Player* member = itr->getSource())
- if (member->isAlive() && member->IsAtGroupRewardDistance(_victim))
+ if (Player* member = itr->GetSource())
+ if (member->IsAlive() && member->IsAtGroupRewardDistance(_victim))
{
const uint8 lvl = member->getLevel();
// 2.1. _count - number of alive group members within reward distance;
@@ -494,7 +493,7 @@ inline void KillRewarder::_InitXP(Player* player)
inline void KillRewarder::_RewardHonor(Player* player)
{
// Rewarded player must be alive.
- if (player->isAlive())
+ if (player->IsAlive())
player->RewardHonor(_victim, _count, -1, true);
}
@@ -506,7 +505,7 @@ inline void KillRewarder::_RewardXP(Player* player, float rate)
// 4.2.1. If player is in group, adjust XP:
// * set to 0 if player's level is more than maximum level of not gray member;
// * cut XP in half if _isFullXP is false.
- if (_maxNotGrayMember && player->isAlive() &&
+ if (_maxNotGrayMember && player->IsAlive() &&
_maxNotGrayMember->getLevel() >= player->getLevel())
xp = _isFullXP ?
uint32(xp * rate) : // Reward FULL XP if all group members are not gray.
@@ -539,7 +538,7 @@ inline void KillRewarder::_RewardReputation(Player* player, float rate)
inline void KillRewarder::_RewardKillCredit(Player* player)
{
// 4.4. Give kill credit (player must not be in group, or he must be alive or without corpse).
- if (!_group || player->isAlive() || !player->GetCorpse())
+ if (!_group || player->IsAlive() || !player->GetCorpse())
if (_victim->GetTypeId() == TYPEID_UNIT)
player->KilledMonster(_victim->ToCreature()->GetCreatureTemplate(), _victim->GetGUID());
}
@@ -598,7 +597,7 @@ void KillRewarder::_RewardGroup()
// 3.1.3. Reward each group member (even dead or corpse) within reward distance.
for (GroupReference* itr = _group->GetFirstMember(); itr != NULL; itr = itr->next())
{
- if (Player* member = itr->getSource())
+ if (Player* member = itr->GetSource())
{
if (member->IsAtGroupRewardDistance(_victim))
{
@@ -965,8 +964,7 @@ bool Player::Create(uint32 guidlow, CharacterCreateInfo* createInfo)
uint8 powertype = cEntry->powerType;
- SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, DEFAULT_WORLD_OBJECT_SIZE);
- SetFloatValue(UNIT_FIELD_COMBATREACH, 1.5f);
+ SetObjectScale(1.0f);
setFactionForRace(createInfo->Race);
@@ -1291,7 +1289,7 @@ uint32 Player::EnvironmentalDamage(EnviromentalDamage type, uint32 damage)
uint32 final_damage = DealDamage(this, damage, NULL, SELF_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
- if (!isAlive())
+ if (!IsAlive())
{
if (type == DAMAGE_FALL) // DealDamage not apply item durability loss at self damage
{
@@ -1316,7 +1314,7 @@ int32 Player::getMaxTimer(MirrorTimerType timer)
return MINUTE * IN_MILLISECONDS;
case BREATH_TIMER:
{
- if (!isAlive() || HasAuraType(SPELL_AURA_WATER_BREATHING) || GetSession()->GetSecurity() >= AccountTypes(sWorld->getIntConfig(CONFIG_DISABLE_BREATHING)))
+ if (!IsAlive() || HasAuraType(SPELL_AURA_WATER_BREATHING) || GetSession()->GetSecurity() >= AccountTypes(sWorld->getIntConfig(CONFIG_DISABLE_BREATHING)))
return DISABLED_MIRROR_TIMER;
int32 UnderWaterTime = 3 * MINUTE * IN_MILLISECONDS;
AuraEffectList const& mModWaterBreathing = GetAuraEffectsByType(SPELL_AURA_MOD_WATER_BREATHING);
@@ -1326,7 +1324,7 @@ int32 Player::getMaxTimer(MirrorTimerType timer)
}
case FIRE_TIMER:
{
- if (!isAlive())
+ if (!IsAlive())
return DISABLED_MIRROR_TIMER;
return 1 * IN_MILLISECONDS;
}
@@ -1389,7 +1387,7 @@ void Player::HandleDrowning(uint32 time_diff)
int32 UnderWaterTime = getMaxTimer(BREATH_TIMER);
// Need breath regen
m_MirrorTimer[BREATH_TIMER]+=10*time_diff;
- if (m_MirrorTimer[BREATH_TIMER] >= UnderWaterTime || !isAlive())
+ if (m_MirrorTimer[BREATH_TIMER] >= UnderWaterTime || !IsAlive())
StopMirrorTimer(BREATH_TIMER);
else if (m_MirrorTimerFlagsLast & UNDERWATER_INWATER)
SendMirrorTimer(BREATH_TIMER, UnderWaterTime, m_MirrorTimer[BREATH_TIMER], 10);
@@ -1411,7 +1409,7 @@ void Player::HandleDrowning(uint32 time_diff)
if (m_MirrorTimer[FATIGUE_TIMER] < 0)
{
m_MirrorTimer[FATIGUE_TIMER]+= 1*IN_MILLISECONDS;
- if (isAlive()) // Calculate and deal damage
+ if (IsAlive()) // Calculate and deal damage
{
uint32 damage = GetMaxHealth() / 5 + urand(0, getLevel()-1);
EnvironmentalDamage(DAMAGE_EXHAUSTED, damage);
@@ -1427,7 +1425,7 @@ void Player::HandleDrowning(uint32 time_diff)
{
int32 DarkWaterTime = getMaxTimer(FATIGUE_TIMER);
m_MirrorTimer[FATIGUE_TIMER]+=10*time_diff;
- if (m_MirrorTimer[FATIGUE_TIMER] >= DarkWaterTime || !isAlive())
+ if (m_MirrorTimer[FATIGUE_TIMER] >= DarkWaterTime || !IsAlive())
StopMirrorTimer(FATIGUE_TIMER);
else if (m_MirrorTimerFlagsLast & UNDERWARER_INDARKWATER)
SendMirrorTimer(FATIGUE_TIMER, DarkWaterTime, m_MirrorTimer[FATIGUE_TIMER], 10);
@@ -1568,9 +1566,9 @@ void Player::Update(uint32 p_time)
UpdateAfkReport(now);
- if (isCharmed())
+ if (IsCharmed())
if (Unit* charmer = GetCharmer())
- if (charmer->GetTypeId() == TYPEID_UNIT && charmer->isAlive())
+ if (charmer->GetTypeId() == TYPEID_UNIT && charmer->IsAlive())
UpdateCharmedAI();
// Update items that have just a limited lifetime
@@ -1618,7 +1616,7 @@ void Player::Update(uint32 p_time)
if (HasUnitState(UNIT_STATE_MELEE_ATTACKING) && !HasUnitState(UNIT_STATE_CASTING))
{
- if (Unit* victim = getVictim())
+ if (Unit* victim = GetVictim())
{
// default combat reach 10
/// @todo add weapon, skill check
@@ -1741,7 +1739,7 @@ void Player::Update(uint32 p_time)
m_timeSyncTimer -= p_time;
}
- if (isAlive())
+ if (IsAlive())
{
m_regenTimer += p_time;
RegenerateAll();
@@ -1832,7 +1830,7 @@ void Player::Update(uint32 p_time)
//we should execute delayed teleports only for alive(!) players
//because we don't want player's ghost teleported from graveyard
- if (IsHasDelayedTeleport() && isAlive())
+ if (IsHasDelayedTeleport() && IsAlive())
TeleportTo(m_teleport_dest, m_teleport_options);
}
@@ -1840,7 +1838,7 @@ void Player::setDeathState(DeathState s)
{
uint32 ressSpellId = 0;
- bool cur = isAlive();
+ bool cur = IsAlive();
if (s == JUST_DIED)
{
@@ -1880,7 +1878,7 @@ void Player::setDeathState(DeathState s)
if (s == JUST_DIED && cur && ressSpellId)
SetUInt32Value(PLAYER_SELF_RES_SPELL, ressSpellId);
- if (isAlive() && !cur)
+ if (IsAlive() && !cur)
//clear aura case after resurrection by another way (spells will be applied before next death)
SetUInt32Value(PLAYER_SELF_RES_SPELL, 0);
}
@@ -2116,9 +2114,7 @@ bool Player::TeleportTo(uint32 mapid, float x, float y, float z, float orientati
{
m_transport->RemovePassenger(this);
m_transport = NULL;
- m_movementInfo.t_pos.Relocate(0.0f, 0.0f, 0.0f, 0.0f);
- m_movementInfo.t_time = 0;
- m_movementInfo.t_seat = -1;
+ m_movementInfo.transport.Reset();
RepopAtGraveyard(); // teleport to near graveyard if on transport, looks blizz like :)
}
@@ -2133,7 +2129,7 @@ bool Player::TeleportTo(uint32 mapid, float x, float y, float z, float orientati
ExitVehicle();
// reset movement flags at teleport, because player will continue move with these flags after teleport
- SetUnitMovementFlags(0);
+ SetUnitMovementFlags(GetUnitMovementFlags() & MOVEMENTFLAG_MASK_HAS_PLAYER_STATUS_OPCODE);
DisableSpline();
if (m_transport)
@@ -2144,9 +2140,7 @@ bool Player::TeleportTo(uint32 mapid, float x, float y, float z, float orientati
{
m_transport->RemovePassenger(this);
m_transport = NULL;
- m_movementInfo.t_pos.Relocate(0.0f, 0.0f, 0.0f, 0.0f);
- m_movementInfo.t_time = 0;
- m_movementInfo.t_seat = -1;
+ m_movementInfo.transport.Reset();
}
}
@@ -2202,7 +2196,7 @@ bool Player::TeleportTo(uint32 mapid, float x, float y, float z, float orientati
}
else
{
- if (getClass() == CLASS_DEATH_KNIGHT && GetMapId() == 609 && !isGameMaster() && !HasSpell(50977))
+ if (getClass() == CLASS_DEATH_KNIGHT && GetMapId() == 609 && !IsGameMaster() && !HasSpell(50977))
return false;
// far teleport to another map
@@ -2299,10 +2293,10 @@ bool Player::TeleportTo(uint32 mapid, float x, float y, float z, float orientati
if (m_transport)
{
- final_x += m_movementInfo.t_pos.GetPositionX();
- final_y += m_movementInfo.t_pos.GetPositionY();
- final_z += m_movementInfo.t_pos.GetPositionZ();
- final_o += m_movementInfo.t_pos.GetOrientation();
+ final_x += m_movementInfo.transport.pos.GetPositionX();
+ final_y += m_movementInfo.transport.pos.GetPositionY();
+ final_z += m_movementInfo.transport.pos.GetPositionZ();
+ final_o += m_movementInfo.transport.pos.GetOrientation();
}
m_teleport_dest = WorldLocation(mapid, final_x, final_y, final_z, final_o);
@@ -2315,7 +2309,7 @@ bool Player::TeleportTo(uint32 mapid, float x, float y, float z, float orientati
WorldPacket data(SMSG_NEW_WORLD, 4 + 4 + 4 + 4 + 4);
data << uint32(mapid);
if (m_transport)
- data << m_movementInfo.t_pos.PositionXYZOStream();
+ data << m_movementInfo.transport.pos.PositionXYZOStream();
else
data << m_teleport_dest.PositionXYZOStream();
@@ -2481,7 +2475,7 @@ void Player::RegenerateAll()
if (m_regenTimerCount >= 2000)
{
// Not in combat or they have regeneration
- if (!isInCombat() || IsPolymorphed() || m_baseHealthRegen ||
+ if (!IsInCombat() || IsPolymorphed() || m_baseHealthRegen ||
HasAuraType(SPELL_AURA_MOD_REGEN_DURING_COMBAT) ||
HasAuraType(SPELL_AURA_MOD_HEALTH_REGEN_IN_COMBAT))
{
@@ -2529,7 +2523,7 @@ void Player::Regenerate(Powers power)
} break;
case POWER_RAGE: // Regenerate rage
{
- if (!isInCombat() && !HasAuraType(SPELL_AURA_INTERRUPT_REGEN))
+ if (!IsInCombat() && !HasAuraType(SPELL_AURA_INTERRUPT_REGEN))
{
float RageDecreaseRate = sWorld->getRate(RATE_POWER_RAGE_LOSS);
addvalue += -20 * RageDecreaseRate; // 2 rage by tick (= 2 seconds => 1 rage/sec)
@@ -2540,7 +2534,7 @@ void Player::Regenerate(Powers power)
break;
case POWER_RUNIC_POWER:
{
- if (!isInCombat() && !HasAuraType(SPELL_AURA_INTERRUPT_REGEN))
+ if (!IsInCombat() && !HasAuraType(SPELL_AURA_INTERRUPT_REGEN))
{
float RunicPowerDecreaseRate = sWorld->getRate(RATE_POWER_RUNICPOWER_LOSS);
addvalue += -30 * RunicPowerDecreaseRate; // 3 RunicPower by tick
@@ -2549,8 +2543,9 @@ void Player::Regenerate(Powers power)
case POWER_RUNE:
case POWER_FOCUS:
case POWER_HAPPINESS:
- case POWER_HEALTH:
break;
+ case POWER_HEALTH:
+ return;
default:
break;
}
@@ -2564,7 +2559,7 @@ void Player::Regenerate(Powers power)
AddPct(addvalue, (*i)->GetAmount());
// Butchery requires combat for this effect
- if (power != POWER_RUNIC_POWER || isInCombat())
+ if (power != POWER_RUNIC_POWER || IsInCombat())
addvalue += GetTotalAuraModifierByMiscValue(SPELL_AURA_MOD_POWER_REGEN, power) * ((power != POWER_ENERGY) ? m_regenTimerCount : m_regenTimer) / (5 * IN_MILLISECONDS);
}
@@ -2634,10 +2629,10 @@ void Player::RegenerateHealth()
if (IsPolymorphed())
addvalue = (float)GetMaxHealth()/3;
// normal regen case (maybe partly in combat case)
- else if (!isInCombat() || HasAuraType(SPELL_AURA_MOD_REGEN_DURING_COMBAT))
+ else if (!IsInCombat() || HasAuraType(SPELL_AURA_MOD_REGEN_DURING_COMBAT))
{
addvalue = OCTRegenHPPerSpirit() * HealthIncreaseRate;
- if (!isInCombat())
+ if (!IsInCombat())
{
AuraEffectList const& mModHealthRegenPct = GetAuraEffectsByType(SPELL_AURA_MOD_HEALTH_REGEN_PERCENT);
for (AuraEffectList::const_iterator i = mModHealthRegenPct.begin(); i != mModHealthRegenPct.end(); ++i)
@@ -2693,9 +2688,9 @@ bool Player::CanInteractWithQuestGiver(Object* questGiver)
case TYPEID_GAMEOBJECT:
return GetGameObjectIfCanInteractWith(questGiver->GetGUID(), GAMEOBJECT_TYPE_QUESTGIVER) != NULL;
case TYPEID_PLAYER:
- return isAlive() && questGiver->ToPlayer()->isAlive();
+ return IsAlive() && questGiver->ToPlayer()->IsAlive();
case TYPEID_ITEM:
- return isAlive();
+ return IsAlive();
default:
break;
}
@@ -2711,7 +2706,7 @@ Creature* Player::GetNPCIfCanInteractWith(uint64 guid, uint32 npcflagmask)
if (!IsInWorld())
return NULL;
- if (isInFlight())
+ if (IsInFlight())
return NULL;
// exist (we need look pets also for some interaction (quest/etc)
@@ -2720,11 +2715,11 @@ Creature* Player::GetNPCIfCanInteractWith(uint64 guid, uint32 npcflagmask)
return NULL;
// Deathstate checks
- if (!isAlive() && !(creature->GetCreatureTemplate()->type_flags & CREATURE_TYPEFLAGS_GHOST))
+ if (!IsAlive() && !(creature->GetCreatureTemplate()->type_flags & CREATURE_TYPEFLAGS_GHOST))
return NULL;
// alive or spirit healer
- if (!creature->isAlive() && !(creature->GetCreatureTemplate()->type_flags & CREATURE_TYPEFLAGS_DEAD_INTERACT))
+ if (!creature->IsAlive() && !(creature->GetCreatureTemplate()->type_flags & CREATURE_TYPEFLAGS_DEAD_INTERACT))
return NULL;
// appropriate npc type
@@ -2970,7 +2965,7 @@ void Player::GiveXP(uint32 xp, Unit* victim, float group_rate)
if (xp < 1)
return;
- if (!isAlive() && !GetBattlegroundId())
+ if (!IsAlive() && !GetBattlegroundId())
return;
if (HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_NO_XP_GAIN))
@@ -4148,6 +4143,7 @@ void Player::removeSpell(uint32 spell_id, bool disabled, bool learn_low_rank)
// learnSpell(prev_id, false);
}
// if ranked non-stackable spell: need activate lesser rank and update dendence state
+ /// No need to check for spellInfo != NULL here because if cur_active is true, then that means that the spell was already in m_spells, and only valid spells can be pushed there.
else if (cur_active && !spellInfo->IsStackableWithRanks() && spellInfo->IsRanked())
{
// need manually update dependence state (learn spell ignore like attempts)
@@ -4501,7 +4497,7 @@ bool Player::resetTalents(bool no_cost)
/* when prev line will dropped use next line
if (Pet* pet = GetPet())
{
- if (pet->getPetType() == HUNTER_PET && !pet->GetCreatureTemplate()->isTameable(CanTameExoticPets()))
+ if (pet->getPetType() == HUNTER_PET && !pet->GetCreatureTemplate()->IsTameable(CanTameExoticPets()))
RemovePet(NULL, PET_SAVE_NOT_IN_SLOT, true);
}
*/
@@ -4526,16 +4522,16 @@ Mail* Player::GetMail(uint32 id)
void Player::BuildCreateUpdateBlockForPlayer(UpdateData* data, Player* target) const
{
- for (uint8 i = 0; i < EQUIPMENT_SLOT_END; ++i)
+ if (target == this)
{
- if (m_items[i] == NULL)
- continue;
+ for (uint8 i = 0; i < EQUIPMENT_SLOT_END; ++i)
+ {
+ if (m_items[i] == NULL)
+ continue;
- m_items[i]->BuildCreateUpdateBlockForPlayer(data, target);
- }
+ m_items[i]->BuildCreateUpdateBlockForPlayer(data, target);
+ }
- if (target == this)
- {
for (uint8 i = INVENTORY_SLOT_BAG_START; i < BANK_SLOT_BAG_END; ++i)
{
if (m_items[i] == NULL)
@@ -4700,12 +4696,6 @@ void Player::DeleteFromDB(uint64 playerguid, uint32 accountId, bool updateRealmC
charDelete_method = CHAR_DELETE_REMOVE;
else if (CharacterNameData const* nameData = sWorld->GetCharacterNameData(guid)) // To avoid a query, we select loaded data. If it doesn't exist, return.
{
- if (!nameData)
- {
- TC_LOG_ERROR(LOG_FILTER_PLAYER, "Cannot find CharacterNameData entry for player %u from account %u. Could not delete character.", guid, accountId);
- return;
- }
-
// Define the required variables
uint32 charDelete_minLvl = sWorld->getIntConfig(nameData->m_class != CLASS_DEATH_KNIGHT ? CONFIG_CHARDELETE_MIN_LEVEL : CONFIG_CHARDELETE_HEROIC_MIN_LEVEL);
@@ -5133,8 +5123,6 @@ void Player::BuildPlayerRepop()
StopMirrorTimers(); //disable timers(bars)
- SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, float(1.0f)); //see radius of death player?
-
// set and clear other
SetByteValue(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND);
}
@@ -5532,7 +5520,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() || GetPositionZ() < -500.0f)
+ if ((!IsAlive() && zone && zone->flags & AREA_FLAG_NEED_FLY) || GetTransport() || GetPositionZ() < -500.0f)
{
ResurrectPlayer(0.5f);
SpawnCorpseBones();
@@ -6270,7 +6258,7 @@ bool Player::UpdateSkillPro(uint16 SkillId, int32 Chance, uint32 step)
void Player::UpdateWeaponSkill(WeaponAttackType attType)
{
// no skill gain in pvp
- Unit* victim = getVictim();
+ Unit* victim = GetVictim();
if (victim && victim->GetTypeId() == TYPEID_PLAYER)
return;
@@ -6835,10 +6823,10 @@ void Player::SendMovieStart(uint32 MovieId)
void Player::CheckAreaExploreAndOutdoor()
{
- if (!isAlive())
+ if (!IsAlive())
return;
- if (isInFlight())
+ if (IsInFlight())
return;
bool isOutdoor;
@@ -7231,7 +7219,7 @@ bool Player::RewardHonor(Unit* victim, uint32 groupsize, int32 honor, bool pvpto
}
else
{
- if (!victim->ToCreature()->isRacialLeader())
+ if (!victim->ToCreature()->IsRacialLeader())
return false;
honor_f = 100.0f; // ??? need more info
@@ -7588,7 +7576,7 @@ void Player::UpdateZone(uint32 newZone, uint32 newArea)
// remove items with area/map limitations (delete only for alive player to allow back in ghost mode)
// if player resurrected at teleport this will be applied in resurrect code
- if (isAlive())
+ if (IsAlive())
DestroyZoneLimitedItem(true, newZone);
// check some item equip limitations (in result lost CanTitanGrip at talent reset, for example)
@@ -7637,7 +7625,7 @@ void Player::CheckDuelDistance(time_t currTime)
bool Player::IsOutdoorPvPActive()
{
- return isAlive() && !HasInvisibilityAura() && !HasStealthAura() && IsPvP() && !HasUnitMovementFlag(MOVEMENTFLAG_FLYING) && !isInFlight();
+ return IsAlive() && !HasInvisibilityAura() && !HasStealthAura() && IsPvP() && !HasUnitMovementFlag(MOVEMENTFLAG_FLYING) && !IsInFlight();
}
void Player::DuelComplete(DuelCompleteType type)
@@ -7692,6 +7680,10 @@ void Player::DuelComplete(DuelCompleteType type)
if (getClass() == CLASS_DEATH_KNIGHT && duel->opponent->GetQuestStatus(12733) == QUEST_STATUS_INCOMPLETE)
duel->opponent->CastSpell(duel->opponent, 52994, true);
+ // Honor points after duel (the winner) - ImpConfig
+ if (uint32 amount = sWorld->getIntConfig(CONFIG_HONOR_AFTER_DUEL))
+ duel->opponent->RewardHonor(NULL, 1, amount);
+
break;
default:
break;
@@ -7738,10 +7730,6 @@ void Player::DuelComplete(DuelCompleteType type)
else if (duel->opponent->GetComboTarget() == GetPetGUID())
duel->opponent->ClearComboPoints();
- // Honor points after duel (the winner) - ImpConfig
- if (uint32 amount = sWorld->getIntConfig(CONFIG_HONOR_AFTER_DUEL))
- duel->opponent->RewardHonor(NULL, 1, amount);
-
//cleanups
SetUInt64Value(PLAYER_DUEL_ARBITER, 0);
SetUInt32Value(PLAYER_DUEL_TEAM, 0);
@@ -8314,7 +8302,7 @@ void Player::UpdateEquipSpellsAtFormChange()
}
void Player::CastItemCombatSpell(Unit* target, WeaponAttackType attType, uint32 procVictim, uint32 procEx)
{
- if (!target || !target->isAlive() || target == this)
+ if (!target || !target->IsAlive() || target == this)
return;
for (uint8 i = EQUIPMENT_SLOT_START; i < EQUIPMENT_SLOT_END; ++i)
@@ -8781,16 +8769,12 @@ void Player::SendLoot(uint64 guid, LootType loot_type)
if (go->getLootState() == GO_READY)
{
uint32 lootid = go->GetGOInfo()->GetLootId();
-
- /// @todo fix this big hack
- if ((go->GetEntry() == BG_AV_OBJECTID_MINE_N || go->GetEntry() == BG_AV_OBJECTID_MINE_S))
- if (Battleground* bg = GetBattleground())
- if (bg->GetTypeID(true) == BATTLEGROUND_AV)
- if (!(((BattlegroundAV*)bg)->PlayerCanDoMineQuest(go->GetEntry(), GetTeam())))
- {
- SendLootRelease(guid);
- return;
- }
+ if (Battleground* bg = GetBattleground())
+ if (!bg->CanActivateGO(go->GetEntry(), GetTeam()))
+ {
+ SendLootRelease(guid);
+ return;
+ }
if (lootid)
{
@@ -8942,7 +8926,7 @@ void Player::SendLoot(uint64 guid, LootType loot_type)
Creature* creature = GetMap()->GetCreature(guid);
// must be in range and creature must be alive for pickpocket and must be dead for another loot
- if (!creature || creature->isAlive() != (loot_type == LOOT_PICKPOCKETING) || !creature->IsWithinDistInMap(this, INTERACTION_DISTANCE))
+ if (!creature || creature->IsAlive() != (loot_type == LOOT_PICKPOCKETING) || !creature->IsWithinDistInMap(this, INTERACTION_DISTANCE))
{
SendLootRelease(guid);
return;
@@ -9675,6 +9659,16 @@ void Player::SendInitWorldStates(uint32 zoneid, uint32 areaid)
bf->FillInitialWorldStates(data);
break;
}
+ case 4820:
+ if (instance && mapid == 668)
+ instance->FillInitialWorldStates(data);
+ else
+ {
+ data << uint32(4884) << uint32(0); // 9 WORLD_STATE_HOR_WAVES_ENABLED
+ data << uint32(4882) << uint32(0); // 10 WORLD_STATE_HOR_WAVE_COUNT
+ }
+ break;
+
// No break here, intended.
default:
data << uint32(0x914) << uint32(0x0); // 7
@@ -11529,7 +11523,7 @@ InventoryResult Player::CanEquipItem(uint8 slot, uint16 &dest, Item* pItem, bool
// - in-progress arenas
if (!pProto->CanChangeEquipStateInCombat())
{
- if (isInCombat())
+ if (IsInCombat())
return EQUIP_ERR_NOT_IN_COMBAT;
if (Battleground* bg = GetBattleground())
@@ -11537,7 +11531,7 @@ InventoryResult Player::CanEquipItem(uint8 slot, uint16 &dest, Item* pItem, bool
return EQUIP_ERR_NOT_DURING_ARENA_MATCH;
}
- if (isInCombat()&& (pProto->Class == ITEM_CLASS_WEAPON || pProto->InventoryType == INVTYPE_RELIC) && m_weaponChangeTimer != 0)
+ if (IsInCombat()&& (pProto->Class == ITEM_CLASS_WEAPON || pProto->InventoryType == INVTYPE_RELIC) && m_weaponChangeTimer != 0)
return EQUIP_ERR_CANT_DO_RIGHT_NOW; // maybe exist better err
if (IsNonMeleeSpellCasted(false))
@@ -11685,7 +11679,7 @@ InventoryResult Player::CanUnequipItem(uint16 pos, bool swap) const
// - in-progress arenas
if (!pProto->CanChangeEquipStateInCombat())
{
- if (isInCombat())
+ if (IsInCombat())
return EQUIP_ERR_NOT_IN_COMBAT;
if (Battleground* bg = GetBattleground())
@@ -11892,7 +11886,7 @@ InventoryResult Player::CanUseItem(Item* pItem, bool not_loading) const
{
TC_LOG_DEBUG(LOG_FILTER_PLAYER_ITEMS, "STORAGE: CanUseItem item = %u", pItem->GetEntry());
- if (!isAlive() && not_loading)
+ if (!IsAlive() && not_loading)
return EQUIP_ERR_YOU_ARE_DEAD;
//if (isStunned())
@@ -12064,7 +12058,7 @@ InventoryResult Player::CanRollForItemInLFG(ItemTemplate const* proto, WorldObje
InventoryResult Player::CanUseAmmo(uint32 item) const
{
TC_LOG_DEBUG(LOG_FILTER_PLAYER_ITEMS, "STORAGE: CanUseAmmo item = %u", item);
- if (!isAlive())
+ if (!IsAlive())
return EQUIP_ERR_YOU_ARE_DEAD;
//if (isStunned())
// return EQUIP_ERR_YOU_ARE_STUNNED;
@@ -12328,7 +12322,7 @@ Item* Player::EquipItem(uint16 pos, Item* pItem, bool update)
{
VisualizeItem(slot, pItem);
- if (isAlive())
+ if (IsAlive())
{
ItemTemplate const* pProto = pItem->GetTemplate();
@@ -12338,7 +12332,7 @@ Item* Player::EquipItem(uint16 pos, Item* pItem, bool update)
_ApplyItemMods(pItem, slot, true);
- if (pProto && isInCombat() && (pProto->Class == ITEM_CLASS_WEAPON || pProto->InventoryType == INVTYPE_RELIC) && m_weaponChangeTimer == 0)
+ if (pProto && IsInCombat() && (pProto->Class == ITEM_CLASS_WEAPON || pProto->InventoryType == INVTYPE_RELIC) && m_weaponChangeTimer == 0)
{
uint32 cooldownSpell = getClass() == CLASS_ROGUE ? 6123 : 6119;
SpellInfo const* spellProto = sSpellMgr->GetSpellInfo(cooldownSpell);
@@ -13143,7 +13137,7 @@ void Player::SwapItem(uint16 src, uint16 dst)
TC_LOG_DEBUG(LOG_FILTER_PLAYER_ITEMS, "STORAGE: SwapItem bag = %u, slot = %u, item = %u", dstbag, dstslot, pSrcItem->GetEntry());
- if (!isAlive())
+ if (!IsAlive())
{
SendEquipError(EQUIP_ERR_YOU_ARE_DEAD, pSrcItem, pDstItem);
return;
@@ -14363,15 +14357,11 @@ void Player::PrepareGossipMenu(WorldObject* source, uint32 menuId /*= 0*/, bool
VendorItemData const* vendorItems = creature->GetVendorItems();
if (!vendorItems || vendorItems->Empty())
{
- TC_LOG_ERROR(LOG_FILTER_SQL, "Creature (GUID: %u, Entry: %u) have UNIT_NPC_FLAG_VENDOR but have empty trading item list.", creature->GetGUIDLow(), creature->GetEntry());
+ TC_LOG_ERROR(LOG_FILTER_SQL, "Creature %s (Entry: %u GUID: %u DB GUID: %u) has UNIT_NPC_FLAG_VENDOR set but has an empty trading item list.", creature->GetName().c_str(), creature->GetEntry(), creature->GetGUIDLow(), creature->GetDBTableGUIDLow());
canTalk = false;
}
break;
}
- case GOSSIP_OPTION_TRAINER:
- if (!creature->isCanTrainingOf(this, false))
- canTalk = false;
- break;
case GOSSIP_OPTION_LEARNDUALSPEC:
if (!(GetSpecsCount() == 1 && creature->isCanTrainingAndResetTalentsOf(this) && !(getLevel() < sWorld->getIntConfig(CONFIG_MIN_DUALSPEC_LEVEL))))
canTalk = false;
@@ -14399,6 +14389,11 @@ void Player::PrepareGossipMenu(WorldObject* source, uint32 menuId /*= 0*/, bool
case GOSSIP_OPTION_QUESTGIVER:
canTalk = false;
break;
+ case GOSSIP_OPTION_TRAINER:
+ if (getClass() != creature->GetCreatureTemplate()->trainer_class && creature->GetCreatureTemplate()->trainer_type == TRAINER_TYPE_CLASS)
+ TC_LOG_ERROR(LOG_FILTER_SQL, "GOSSIP_OPTION_TRAINER:: Player %s (GUID: %u) request wrong gossip menu: %u with wrong class: %u at Creature: %s (Entry: %u, Trainer Class: %u)",
+ GetName().c_str(), GetGUIDLow(), menu->GetGossipMenu().GetMenuId(), getClass(), creature->GetName().c_str(), creature->GetEntry(), creature->GetCreatureTemplate()->trainer_class);
+ // no break;
case GOSSIP_OPTION_GOSSIP:
case GOSSIP_OPTION_SPIRITGUIDE:
case GOSSIP_OPTION_INNKEEPER:
@@ -14412,7 +14407,7 @@ void Player::PrepareGossipMenu(WorldObject* source, uint32 menuId /*= 0*/, bool
canTalk = false;
break;
default:
- TC_LOG_ERROR(LOG_FILTER_SQL, "Creature entry %u have unknown gossip option %u for menu %u", creature->GetEntry(), itr->second.OptionType, itr->second.MenuId);
+ TC_LOG_ERROR(LOG_FILTER_SQL, "Creature entry %u has unknown gossip option %u for menu %u", creature->GetEntry(), itr->second.OptionType, itr->second.MenuId);
canTalk = false;
break;
}
@@ -16066,7 +16061,7 @@ void Player::GroupEventHappens(uint32 questId, WorldObject const* pEventObject)
{
for (GroupReference* itr = group->GetFirstMember(); itr != NULL; itr = itr->next())
{
- Player* player = itr->getSource();
+ Player* player = itr->GetSource();
// for any leave or dead (with not released body) group member at appropriate distance
if (player && player->IsAtGroupRewardDistance(pEventObject) && !player->GetCorpse())
@@ -16173,7 +16168,7 @@ void Player::KilledMonster(CreatureTemplate const* cInfo, uint64 guid)
KilledMonsterCredit(cInfo->KillCredit[i], 0);
}
-void Player::KilledMonsterCredit(uint32 entry, uint64 guid)
+void Player::KilledMonsterCredit(uint32 entry, uint64 guid /*= 0*/)
{
uint16 addkillcount = 1;
uint32 real_entry = entry;
@@ -16653,11 +16648,11 @@ void Player::SendQuestConfirmAccept(const Quest* quest, Player* pReceiver)
}
}
-void Player::SendPushToPartyResponse(Player* player, uint32 msg)
+void Player::SendPushToPartyResponse(Player* player, uint8 msg)
{
if (player)
{
- WorldPacket data(MSG_QUEST_PUSH_RESULT, (8+1));
+ WorldPacket data(MSG_QUEST_PUSH_RESULT, 8 + 1);
data << uint64(player->GetGUID());
data << uint8(msg); // valid values: 0-8
GetSession()->SendPacket(&data);
@@ -16986,8 +16981,7 @@ bool Player::LoadFromDB(uint32 guid, SQLQueryHolder *holder)
_LoadIntoDataField(fields[61].GetCString(), PLAYER_EXPLORED_ZONES_1, PLAYER_EXPLORED_ZONES_SIZE);
_LoadIntoDataField(fields[64].GetCString(), PLAYER__FIELD_KNOWN_TITLES, KNOWN_TITLES_SIZE*2);
- SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, DEFAULT_WORLD_OBJECT_SIZE);
- SetFloatValue(UNIT_FIELD_COMBATREACH, 1.5f);
+ SetObjectScale(1.0f);
SetFloatValue(UNIT_FIELD_HOVERHEIGHT, 1.0f);
// load achievements before anything else to prevent multiple gains for the same achievement/criteria on every loading (as loading does call UpdateAchievementCriteria)
@@ -17146,18 +17140,18 @@ bool Player::LoadFromDB(uint32 guid, SQLQueryHolder *holder)
// currently we do not support transport in bg
else if (transGUID)
{
- m_movementInfo.t_guid = MAKE_NEW_GUID(transGUID, 0, HIGHGUID_MO_TRANSPORT);
- m_movementInfo.t_pos.Relocate(fields[26].GetFloat(), fields[27].GetFloat(), fields[28].GetFloat(), fields[29].GetFloat());
+ m_movementInfo.transport.guid = MAKE_NEW_GUID(transGUID, 0, HIGHGUID_MO_TRANSPORT);
+ m_movementInfo.transport.pos.Relocate(fields[26].GetFloat(), fields[27].GetFloat(), fields[28].GetFloat(), fields[29].GetFloat());
if (!Trinity::IsValidMapCoord(
- GetPositionX()+m_movementInfo.t_pos.m_positionX, GetPositionY()+m_movementInfo.t_pos.m_positionY,
- GetPositionZ()+m_movementInfo.t_pos.m_positionZ, GetOrientation()+m_movementInfo.t_pos.m_orientation) ||
+ GetPositionX()+m_movementInfo.transport.pos.m_positionX, GetPositionY()+m_movementInfo.transport.pos.m_positionY,
+ GetPositionZ()+m_movementInfo.transport.pos.m_positionZ, GetOrientation()+m_movementInfo.transport.pos.m_orientation) ||
// transport size limited
- m_movementInfo.t_pos.m_positionX > 250 || m_movementInfo.t_pos.m_positionY > 250 || m_movementInfo.t_pos.m_positionZ > 250)
+ m_movementInfo.transport.pos.m_positionX > 250 || m_movementInfo.transport.pos.m_positionY > 250 || m_movementInfo.transport.pos.m_positionZ > 250)
{
TC_LOG_ERROR(LOG_FILTER_PLAYER, "Player (guidlow %d) have invalid transport coordinates (X: %f Y: %f Z: %f O: %f). Teleport to bind location.",
- guid, GetPositionX()+m_movementInfo.t_pos.m_positionX, GetPositionY()+m_movementInfo.t_pos.m_positionY,
- GetPositionZ()+m_movementInfo.t_pos.m_positionZ, GetOrientation()+m_movementInfo.t_pos.m_orientation);
+ guid, GetPositionX()+m_movementInfo.transport.pos.m_positionX, GetPositionY()+m_movementInfo.transport.pos.m_positionY,
+ GetPositionZ()+m_movementInfo.transport.pos.m_positionZ, GetOrientation()+m_movementInfo.transport.pos.m_orientation);
RelocateToHomebind();
}
@@ -17467,7 +17461,7 @@ bool Player::LoadFromDB(uint32 guid, SQLQueryHolder *holder)
// Spell code allow apply any auras to dead character in load time in aura/spell/item loading
// Do now before stats re-calculation cleanup for ghost state unexpected auras
- if (!isAlive())
+ if (!IsAlive())
RemoveAllAurasOnDeath();
else
RemoveAllAurasRequiringDeadTarget();
@@ -17734,7 +17728,7 @@ void Player::_LoadGlyphAuras()
void Player::LoadCorpse()
{
- if (isAlive())
+ if (IsAlive())
sObjectAccessor->ConvertCorpseForPlayer(GetGUID());
else
{
@@ -17873,7 +17867,7 @@ void Player::_LoadInventory(PreparedQueryResult result, uint32 timeDiff)
}
CharacterDatabase.CommitTransaction(trans);
}
- //if (isAlive())
+ //if (IsAlive())
_ApplyAllItemMods();
}
@@ -17891,7 +17885,7 @@ Item* Player::_LoadItem(SQLTransaction& trans, uint32 zoneId, uint32 timeDiff, F
PreparedStatement* stmt = NULL;
// Do not allow to have item limited to another map/zone in alive state
- if (isAlive() && item->IsLimitedToAnotherMapOrZone(GetMapId(), zoneId))
+ if (IsAlive() && item->IsLimitedToAnotherMapOrZone(GetMapId(), zoneId))
{
TC_LOG_DEBUG(LOG_FILTER_PLAYER_LOADING, "Player::_LoadInventory: player (GUID: %u, name: '%s', map: %u) has item (GUID: %u, entry: %u) limited to another map (%u). Deleting item.",
GetGUIDLow(), GetName().c_str(), GetMapId(), item->GetGUIDLow(), item->GetEntry(), zoneId);
@@ -18699,7 +18693,9 @@ void Player::ConvertInstancesToGroup(Player* player, Group* group, bool switchLe
{
for (BoundInstancesMap::iterator itr = player->m_boundInstances[i].begin(); itr != player->m_boundInstances[i].end();)
{
- group->BindToInstance(itr->second.save, itr->second.perm, false);
+ if (!switchLeader || !group->GetBoundInstance(itr->second.save->GetDifficulty(), itr->first))
+ group->BindToInstance(itr->second.save, itr->second.perm, false);
+
// permanent binds are not removed
if (switchLeader && !itr->second.perm)
{
@@ -18714,7 +18710,7 @@ void Player::ConvertInstancesToGroup(Player* player, Group* group, bool switchLe
bool Player::Satisfy(AccessRequirement const* ar, uint32 target_map, bool report)
{
- if (!isGameMaster() && ar)
+ if (!IsGameMaster() && ar)
{
uint8 LevelMin = 0;
uint8 LevelMax = 0;
@@ -18786,10 +18782,10 @@ bool Player::Satisfy(AccessRequirement const* ar, uint32 target_map, bool report
bool Player::CheckInstanceLoginValid()
{
- if (!GetMap())
+ if (!FindMap())
return false;
- if (!GetMap()->IsDungeon() || isGameMaster())
+ if (!GetMap()->IsDungeon() || IsGameMaster())
return true;
if (GetMap()->IsRaid())
@@ -20065,7 +20061,7 @@ void Player::UpdateAfkReport(time_t currTime)
void Player::UpdateContestedPvP(uint32 diff)
{
- if (!m_contestedPvPTimer||isInCombat())
+ if (!m_contestedPvPTimer||IsInCombat())
return;
if (m_contestedPvPTimer <= diff)
{
@@ -20304,7 +20300,7 @@ void Player::Whisper(const std::string& text, uint32 language, uint64 receiver)
rPlayer->BuildPlayerChat(&data, CHAT_MSG_WHISPER_INFORM, _text, language);
GetSession()->SendPacket(&data);
- if (!isAcceptWhispers() && !isGameMaster() && !rPlayer->isGameMaster())
+ if (!isAcceptWhispers() && !IsGameMaster() && !rPlayer->IsGameMaster())
{
SetAcceptWhispers(true);
ChatHandler(GetSession()).SendSysMessage(LANG_COMMAND_WHISPERON);
@@ -20462,7 +20458,7 @@ void Player::VehicleSpellInitialize()
WorldPacket data(SMSG_PET_SPELLS, 8 + 2 + 4 + 4 + 4 * 10 + 1 + 1 + cooldownCount * (4 + 2 + 4 + 4));
data << uint64(vehicle->GetGUID()); // Guid
data << uint16(0); // Pet Family (0 for all vehicles)
- data << uint32(vehicle->isSummon() ? vehicle->ToTempSummon()->GetTimer() : 0); // Duration
+ data << uint32(vehicle->IsSummon() ? vehicle->ToTempSummon()->GetTimer() : 0); // Duration
// The following three segments are read by the client as one uint32
data << uint8(vehicle->GetReactState()); // React State
data << uint8(0); // Command State
@@ -20912,7 +20908,7 @@ bool Player::ActivateTaxiPathTo(std::vector<uint32> const& nodes, Creature* npc
return false;
// not let cheating with start flight in time of logout process || while in combat || has type state: stunned || has type state: root
- if (GetSession()->isLogingOut() || isInCombat() || HasUnitState(UNIT_STATE_STUNNED) || HasUnitState(UNIT_STATE_ROOT))
+ if (GetSession()->isLogingOut() || IsInCombat() || HasUnitState(UNIT_STATE_STUNNED) || HasUnitState(UNIT_STATE_ROOT))
{
GetSession()->SendActivateTaxiReply(ERR_TAXIPLAYERBUSY);
return false;
@@ -21352,7 +21348,7 @@ bool Player::BuyItemFromVendorSlot(uint64 vendorguid, uint32 vendorslot, uint32
if (slot > MAX_BAG_SIZE && slot != NULL_SLOT)
return false;
- if (!isAlive())
+ if (!IsAlive())
return false;
ItemTemplate const* pProto = sObjectMgr->GetItemTemplate(item);
@@ -21517,7 +21513,7 @@ uint32 Player::GetMaxPersonalArenaRatingRequirement(uint32 minarenaslot) const
void Player::UpdateHomebindTime(uint32 time)
{
// GMs never get homebind timer online
- if (m_InstanceValid || isGameMaster())
+ if (m_InstanceValid || IsGameMaster())
{
if (m_HomebindTimer) // instance valid, but timer not reset
{
@@ -21557,7 +21553,7 @@ void Player::UpdatePvPState(bool onlyFFA)
{
/// @todo should we always synchronize UNIT_FIELD_BYTES_2, 1 of controller and controlled?
// no, we shouldn't, those are checked for affecting player by client
- if (!pvpInfo.IsInNoPvPArea && !isGameMaster()
+ if (!pvpInfo.IsInNoPvPArea && !IsGameMaster()
&& (pvpInfo.IsInFFAPvPArea || sWorld->IsFFAPvPRealm()))
{
if (!HasByteFlag(UNIT_FIELD_BYTES_2, 1, UNIT_BYTE2_FLAG_FFA_PVP))
@@ -21743,7 +21739,7 @@ void Player::SendCooldownEvent(SpellInfo const* spellInfo, uint32 itemId /*= 0*/
void Player::UpdatePotionCooldown(Spell* spell)
{
// no potion used i combat or still in combat
- if (!m_lastPotionId || isInCombat())
+ if (!m_lastPotionId || IsInCombat())
return;
// Call not from spell cast, send cooldown event for item spells if no in combat
@@ -21994,7 +21990,7 @@ void Player::LeaveBattleground(bool teleportToEntryPoint)
bg->RemovePlayerAtLeave(GetGUID(), teleportToEntryPoint, true);
// call after remove to be sure that player resurrected for correct cast
- if (bg->isBattleground() && !isGameMaster() && sWorld->getBoolConfig(CONFIG_BATTLEGROUND_CAST_DESERTER))
+ if (bg->isBattleground() && !IsGameMaster() && sWorld->getBoolConfig(CONFIG_BATTLEGROUND_CAST_DESERTER))
{
if (bg->GetStatus() == STATUS_IN_PROGRESS || bg->GetStatus() == STATUS_WAIT_JOIN)
{
@@ -22105,10 +22101,10 @@ bool Player::IsAlwaysDetectableFor(WorldObject const* seer) const
if (const Player* seerPlayer = seer->ToPlayer())
if (IsGroupVisibleFor(seerPlayer))
- return true;
+ return !(seerPlayer->duel && seerPlayer->duel->startTime != 0 && seerPlayer->duel->opponent == this);
- return false;
- }
+ return false;
+}
bool Player::IsVisibleGloballyFor(Player const* u) const
{
@@ -22171,7 +22167,7 @@ inline void BeforeVisibilityDestroy(T* /*t*/, Player* /*p*/)
template<>
inline void BeforeVisibilityDestroy<Creature>(Creature* t, Player* p)
{
- if (p->GetPetGUID() == t->GetGUID() && t->ToCreature()->isPet())
+ if (p->GetPetGUID() == t->GetGUID() && t->ToCreature()->IsPet())
((Pet*)t)->Remove(PET_SAVE_NOT_IN_SLOT, true);
}
@@ -22179,7 +22175,7 @@ void Player::UpdateVisibilityOf(WorldObject* target)
{
if (HaveAtClient(target))
{
- if (!canSeeOrDetect(target, false, true))
+ if (!CanSeeOrDetect(target, false, true))
{
if (target->GetTypeId() == TYPEID_UNIT)
BeforeVisibilityDestroy<Creature>(target->ToCreature(), this);
@@ -22194,7 +22190,7 @@ void Player::UpdateVisibilityOf(WorldObject* target)
}
else
{
- if (canSeeOrDetect(target, false, true))
+ if (CanSeeOrDetect(target, false, true))
{
//if (target->isType(TYPEMASK_UNIT) && ((Unit*)target)->m_Vehicle)
// UpdateVisibilityOf(((Unit*)target)->m_Vehicle);
@@ -22228,14 +22224,30 @@ void Player::UpdateTriggerVisibility()
{
if (IS_CREATURE_GUID(*itr))
{
- Creature* obj = GetMap()->GetCreature(*itr);
- if (!obj || !(obj->isTrigger() || obj->HasAuraType(SPELL_AURA_TRANSFORM))) // can transform into triggers
+ Creature* creature = GetMap()->GetCreature(*itr);
+ // Update fields of triggers, transformed units or unselectable units (values dependent on GM state)
+ if (!creature || (!creature->IsTrigger() && !creature->HasAuraType(SPELL_AURA_TRANSFORM) && !creature->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE)))
+ continue;
+
+ creature->SetFieldNotifyFlag(UF_FLAG_PUBLIC);
+ creature->BuildValuesUpdateBlockForPlayer(&udata, this);
+ creature->RemoveFieldNotifyFlag(UF_FLAG_PUBLIC);
+ }
+ else if (IS_GAMEOBJECT_GUID((*itr)))
+ {
+ GameObject* go = GetMap()->GetGameObject(*itr);
+ if (!go)
continue;
- obj->BuildCreateUpdateBlockForPlayer(&udata, this);
+ go->SetFieldNotifyFlag(UF_FLAG_PUBLIC);
+ go->BuildValuesUpdateBlockForPlayer(&udata, this);
+ go->RemoveFieldNotifyFlag(UF_FLAG_PUBLIC);
}
}
+ if (!udata.HasData())
+ return;
+
udata.BuildPacket(&packet);
GetSession()->SendPacket(&packet);
}
@@ -22243,10 +22255,10 @@ void Player::UpdateTriggerVisibility()
void Player::SendInitialVisiblePackets(Unit* target)
{
SendAurasForTarget(target);
- if (target->isAlive())
+ if (target->IsAlive())
{
- if (target->HasUnitState(UNIT_STATE_MELEE_ATTACKING) && target->getVictim())
- target->SendMeleeAttackStart(target->getVictim());
+ if (target->HasUnitState(UNIT_STATE_MELEE_ATTACKING) && target->GetVictim())
+ target->SendMeleeAttackStart(target->GetVictim());
}
}
@@ -22255,7 +22267,7 @@ void Player::UpdateVisibilityOf(T* target, UpdateData& data, std::set<Unit*>& vi
{
if (HaveAtClient(target))
{
- if (!canSeeOrDetect(target, false, true))
+ if (!CanSeeOrDetect(target, false, true))
{
BeforeVisibilityDestroy<T>(target, this);
@@ -22269,7 +22281,7 @@ void Player::UpdateVisibilityOf(T* target, UpdateData& data, std::set<Unit*>& vi
}
else //if (visibleNow.size() < 30 || target->GetTypeId() == TYPEID_UNIT && target->ToCreature()->IsVehicle())
{
- if (canSeeOrDetect(target, false, true))
+ if (CanSeeOrDetect(target, false, true))
{
//if (target->isType(TYPEMASK_UNIT) && ((Unit*)target)->m_Vehicle)
// UpdateVisibilityOf(((Unit*)target)->m_Vehicle, data, visibleNow);
@@ -22661,6 +22673,11 @@ void Player::ApplyEquipCooldown(Item* pItem)
if (spellData.SpellTrigger != ITEM_SPELLTRIGGER_ON_USE)
continue;
+ // Don't replace longer cooldowns by equip cooldown if we have any.
+ SpellCooldowns::iterator itr = m_spellCooldowns.find(spellData.SpellId);
+ if (itr != m_spellCooldowns.end() && itr->second.itemid == pItem->GetEntry() && itr->second.end > time(NULL) + 30)
+ continue;
+
AddSpellCooldown(spellData.SpellId, pItem->GetEntry(), time(NULL) + 30);
WorldPacket data(SMSG_ITEM_COOLDOWN, 12);
@@ -22708,8 +22725,8 @@ void Player::resetSpells(bool myClassOnly)
continue;
// skip spells with first rank learned as talent (and all talents then also)
- uint32 first_rank = sSpellMgr->GetFirstSpellInChain(spellInfo->Id);
- if (GetTalentSpellCost(first_rank) > 0)
+ uint32 firstRank = spellInfo->GetFirstRankSpell()->Id;
+ if (GetTalentSpellCost(firstRank) > 0)
continue;
// skip broken spells
@@ -22779,15 +22796,14 @@ void Player::learnQuestRewardedSpells(Quest const* quest)
uint32 learned_0 = spellInfo->Effects[0].TriggerSpell;
if (sSpellMgr->GetSpellRank(learned_0) > 1 && !HasSpell(learned_0))
{
- // not have first rank learned (unlearned prof?)
- uint32 first_spell = sSpellMgr->GetFirstSpellInChain(learned_0);
- if (!HasSpell(first_spell))
- return;
-
SpellInfo const* learnedInfo = sSpellMgr->GetSpellInfo(learned_0);
if (!learnedInfo)
return;
+ // not have first rank learned (unlearned prof?)
+ if (!HasSpell(learnedInfo->GetFirstRankSpell()->Id))
+ return;
+
SpellsRequiringSpellMapBounds spellsRequired = sSpellMgr->GetSpellsRequiredForSpellBounds(learned_0);
for (SpellsRequiringSpellMap::const_iterator itr2 = spellsRequired.first; itr2 != spellsRequired.second; ++itr2)
{
@@ -22873,13 +22889,13 @@ void Player::SendAurasForTarget(Unit* target)
These movement packets are usually found in SMSG_COMPRESSED_MOVES
*/
if (target->HasAuraType(SPELL_AURA_FEATHER_FALL))
- target->SendMovementFeatherFall();
+ target->SetFeatherFall(true, true);
if (target->HasAuraType(SPELL_AURA_WATER_WALK))
- target->SendMovementWaterWalking();
+ target->SetWaterWalking(true, true);
if (target->HasAuraType(SPELL_AURA_HOVER))
- target->SendMovementHover();
+ target->SetHover(true, true);
WorldPacket data(SMSG_AURA_UPDATE_ALL);
data.append(target->GetPackGUID());
@@ -23110,7 +23126,7 @@ bool Player::GetBGAccessByLevel(BattlegroundTypeId bgTypeId) const
float Player::GetReputationPriceDiscount(Creature const* creature) const
{
- FactionTemplateEntry const* vendor_faction = creature->getFactionTemplateEntry();
+ FactionTemplateEntry const* vendor_faction = creature->GetFactionTemplateEntry();
if (!vendor_faction || !vendor_faction->faction)
return 1.0f;
@@ -23219,7 +23235,7 @@ void Player::UpdateForQuestWorldObjects()
if (buildUpdateBlock)
{
- obj->BuildCreateUpdateBlockForPlayer(&udata, this);
+ obj->BuildValuesUpdateBlockForPlayer(&udata, this);
break;
}
}
@@ -23251,7 +23267,7 @@ void Player::SummonIfPossible(bool agree)
return;
// stop taxi flight at summon
- if (isInFlight())
+ if (IsInFlight())
{
GetMotionMaster()->MovementExpired();
CleanupAfterTaxiFlight();
@@ -23479,8 +23495,8 @@ bool Player::isHonorOrXPTarget(Unit* victim)
if (victim->GetTypeId() == TYPEID_UNIT)
{
- if (victim->ToCreature()->isTotem() ||
- victim->ToCreature()->isPet() ||
+ if (victim->ToCreature()->IsTotem() ||
+ victim->ToCreature()->IsPet() ||
victim->ToCreature()->GetCreatureTemplate()->flags_extra & CREATURE_FLAG_EXTRA_NO_XP_AT_KILL)
return false;
}
@@ -23496,7 +23512,7 @@ bool Player::GetsRecruitAFriendBonus(bool forXP)
{
for (GroupReference* itr = group->GetFirstMember(); itr != NULL; itr = itr->next())
{
- Player* player = itr->getSource();
+ Player* player = itr->GetSource();
if (!player)
continue;
@@ -23544,7 +23560,7 @@ void Player::RewardPlayerAndGroupAtEvent(uint32 creature_id, WorldObject* pRewar
{
for (GroupReference* itr = group->GetFirstMember(); itr != NULL; itr = itr->next())
{
- Player* player = itr->getSource();
+ Player* player = itr->GetSource();
if (!player)
continue;
@@ -23552,7 +23568,7 @@ void Player::RewardPlayerAndGroupAtEvent(uint32 creature_id, WorldObject* pRewar
continue; // member (alive or dead) or his corpse at req. distance
// quest objectives updated only for alive group member or dead but with not released body
- if (player->isAlive()|| !player->GetCorpse())
+ if (player->IsAlive()|| !player->GetCorpse())
player->KilledMonsterCredit(creature_id, creature_guid);
}
}
@@ -23565,7 +23581,7 @@ bool Player::IsAtGroupRewardDistance(WorldObject const* pRewardSource) const
if (!pRewardSource)
return false;
const WorldObject* player = GetCorpse();
- if (!player || isAlive())
+ if (!player || IsAlive())
player = this;
if (player->GetMapId() != pRewardSource->GetMapId() || player->GetInstanceId() != pRewardSource->GetInstanceId())
@@ -23579,7 +23595,7 @@ bool Player::IsAtRecruitAFriendDistance(WorldObject const* pOther) const
if (!pOther)
return false;
const WorldObject* player = GetCorpse();
- if (!player || isAlive())
+ if (!player || IsAlive())
player = this;
if (player->GetMapId() != pOther->GetMapId() || player->GetInstanceId() != pOther->GetInstanceId())
@@ -23789,7 +23805,7 @@ Player* Player::GetNextRandomRaidMember(float radius)
for (GroupReference* itr = group->GetFirstMember(); itr != NULL; itr = itr->next())
{
- Player* Target = itr->getSource();
+ Player* Target = itr->GetSource();
// IsHostileTo check duel and controlled by enemy
if (Target && Target != this && IsWithinDistInMap(Target, radius) &&
@@ -23831,7 +23847,7 @@ PartyResult Player::CanUninviteFromGroup() const
/// @todo Should also be sent when anyone has recently left combat, with an aprox ~5 seconds timer.
for (GroupReference const* itr = grp->GetFirstMember(); itr != NULL; itr = itr->next())
- if (itr->getSource() && itr->getSource()->isInCombat())
+ if (itr->GetSource() && itr->GetSource()->IsInCombat())
return ERR_PARTY_LFG_BOOT_IN_COMBAT;
/* Missing support for these types
@@ -23952,7 +23968,7 @@ void Player::UpdateUnderwaterState(Map* m, float x, float y, float z)
}
// Allow travel in dark water on taxi or transport
- if ((liquid_status.type_flags & MAP_LIQUID_TYPE_DARK_WATER) && !isInFlight() && !GetTransport())
+ if ((liquid_status.type_flags & MAP_LIQUID_TYPE_DARK_WATER) && !IsInFlight() && !GetTransport())
m_MirrorTimerFlags |= UNDERWARER_INDARKWATER;
else
m_MirrorTimerFlags &= ~UNDERWARER_INDARKWATER;
@@ -24065,7 +24081,7 @@ bool Player::CanUseBattlegroundObject(GameObject* gameobject)
// It is possible to call this method with a null pointer, only skipping faction check.
if (gameobject)
{
- FactionTemplateEntry const* playerFaction = getFactionTemplateEntry();
+ FactionTemplateEntry const* playerFaction = GetFactionTemplateEntry();
FactionTemplateEntry const* faction = sFactionTemplateStore.LookupEntry(gameobject->GetUInt32Value(GAMEOBJECT_FACTION));
if (playerFaction && faction && !playerFaction->IsFriendlyTo(*faction))
@@ -24076,14 +24092,14 @@ bool Player::CanUseBattlegroundObject(GameObject* gameobject)
// Note: Mount, stealth and invisibility will be removed when used
return (!isTotalImmune() && // Damage immune
!HasAura(SPELL_RECENTLY_DROPPED_FLAG) && // Still has recently held flag debuff
- isAlive()); // Alive
+ IsAlive()); // Alive
}
bool Player::CanCaptureTowerPoint()
{
return (!HasStealthAura() && // not stealthed
!HasInvisibilityAura() && // not invisible
- isAlive()); // live player
+ IsAlive()); // live player
}
uint32 Player::GetBarberShopCost(uint8 newhairstyle, uint8 newhaircolor, uint8 newfacialhair, BarberShopStyleEntry const* newSkin)
@@ -24245,10 +24261,10 @@ void Player::UpdateCharmedAI()
}
}
- if (!charmer->isInCombat())
+ if (!charmer->IsInCombat())
GetMotionMaster()->MoveFollow(charmer, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE);
- Unit* target = getVictim();
+ Unit* target = GetVictim();
if (!target || !charmer->IsValidAttackTarget(target))
{
target = charmer->SelectNearestTarget();
@@ -24636,7 +24652,7 @@ void Player::_LoadSkills(PreparedQueryResult result)
uint32 Player::GetPhaseMaskForSpawn() const
{
uint32 phase = PHASEMASK_NORMAL;
- if (!isGameMaster())
+ if (!IsGameMaster())
phase = GetPhaseMask();
else
{
@@ -24729,7 +24745,7 @@ void Player::HandleFall(MovementInfo const& movementInfo)
//Players with low fall distance, Feather Fall or physical immunity (charges used) are ignored
// 14.57 can be calculated by resolving damageperc formula below to 0
- if (z_diff >= 14.57f && !isDead() && !isGameMaster() &&
+ if (z_diff >= 14.57f && !isDead() && !IsGameMaster() &&
!HasAuraType(SPELL_AURA_HOVER) && !HasAuraType(SPELL_AURA_FEATHER_FALL) &&
!HasAuraType(SPELL_AURA_FLY) && !IsImmunedToDamage(SPELL_SCHOOL_MASK_NORMAL))
{
@@ -24759,7 +24775,7 @@ void Player::HandleFall(MovementInfo const& movementInfo)
uint32 final_damage = EnvironmentalDamage(DAMAGE_FALL, damage);
// recheck alive, might have died of EnvironmentalDamage, avoid cases when player die in fact like Spirit of Redemption case
- if (isAlive() && final_damage < original_health)
+ if (IsAlive() && final_damage < original_health)
UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_FALL_WITHOUT_DYING, uint32(z_diff*100));
}
@@ -25109,10 +25125,10 @@ void Player::ResummonPetTemporaryUnSummonedIfAny()
bool Player::IsPetNeedBeTemporaryUnsummoned() const
{
- return !IsInWorld() || !isAlive() || IsMounted() /*+in flight*/;
+ return !IsInWorld() || !IsAlive() || IsMounted() /*+in flight*/;
}
-bool Player::canSeeSpellClickOn(Creature const* c) const
+bool Player::CanSeeSpellClickOn(Creature const* c) const
{
if (!c->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK))
return false;
@@ -26121,53 +26137,95 @@ void Player::_SaveInstanceTimeRestrictions(SQLTransaction& trans)
bool Player::IsInWhisperWhiteList(uint64 guid)
{
for (WhisperListContainer::const_iterator itr = WhisperList.begin(); itr != WhisperList.end(); ++itr)
- {
if (*itr == guid)
return true;
- }
+
return false;
}
-void Player::SendMovementSetCanFly(bool apply)
+bool Player::SetDisableGravity(bool disable, bool packetOnly /*= false*/)
{
- WorldPacket data(apply ? SMSG_MOVE_SET_CAN_FLY : SMSG_MOVE_UNSET_CAN_FLY, 12);
+ if (!packetOnly && !Unit::SetDisableGravity(disable))
+ return false;
+
+ WorldPacket data(disable ? SMSG_MOVE_GRAVITY_DISABLE : SMSG_MOVE_GRAVITY_ENABLE, 12);
data.append(GetPackGUID());
data << uint32(0); //! movement counter
SendDirectMessage(&data);
+
+ data.Initialize(MSG_MOVE_GRAVITY_CHNG, 64);
+ data.append(GetPackGUID());
+ BuildMovementPacket(&data);
+ SendMessageToSet(&data, false);
+ return true;
}
-void Player::SendMovementSetCanTransitionBetweenSwimAndFly(bool apply)
+bool Player::SetCanFly(bool apply)
{
- WorldPacket data(apply ?
- SMSG_MOVE_SET_CAN_TRANSITION_BETWEEN_SWIM_AND_FLY :
- SMSG_MOVE_UNSET_CAN_TRANSITION_BETWEEN_SWIM_AND_FLY, 12);
+ if (!Unit::SetCanFly(apply))
+ return false;
+
+ WorldPacket data(apply ? SMSG_MOVE_SET_CAN_FLY : SMSG_MOVE_UNSET_CAN_FLY, 12);
data.append(GetPackGUID());
data << uint32(0); //! movement counter
SendDirectMessage(&data);
+
+ data.Initialize(MSG_MOVE_UPDATE_CAN_FLY, 64);
+ data.append(GetPackGUID());
+ BuildMovementPacket(&data);
+ SendMessageToSet(&data, false);
+ return true;
}
-void Player::SendMovementSetHover(bool apply)
+bool Player::SetHover(bool apply, bool packetOnly /*= false*/)
{
+ if (!packetOnly && !Unit::SetHover(apply))
+ return false;
+
WorldPacket data(apply ? SMSG_MOVE_SET_HOVER : SMSG_MOVE_UNSET_HOVER, 12);
data.append(GetPackGUID());
data << uint32(0); //! movement counter
SendDirectMessage(&data);
+
+ data.Initialize(MSG_MOVE_HOVER, 64);
+ data.append(GetPackGUID());
+ BuildMovementPacket(&data);
+ SendMessageToSet(&data, false);
+ return true;
}
-void Player::SendMovementSetWaterWalking(bool apply)
+bool Player::SetWaterWalking(bool apply, bool packetOnly /*= false*/)
{
+ if (!packetOnly && !Unit::SetWaterWalking(apply))
+ return false;
+
WorldPacket data(apply ? SMSG_MOVE_WATER_WALK : SMSG_MOVE_LAND_WALK, 12);
data.append(GetPackGUID());
data << uint32(0); //! movement counter
SendDirectMessage(&data);
+
+ data.Initialize(MSG_MOVE_WATER_WALK, 64);
+ data.append(GetPackGUID());
+ BuildMovementPacket(&data);
+ SendMessageToSet(&data, false);
+ return true;
}
-void Player::SendMovementSetFeatherFall(bool apply)
+bool Player::SetFeatherFall(bool apply, bool packetOnly /*= false*/)
{
+ if (!packetOnly && !Unit::SetFeatherFall(apply))
+ return false;
+
WorldPacket data(apply ? SMSG_MOVE_FEATHER_FALL : SMSG_MOVE_NORMAL_FALL, 12);
data.append(GetPackGUID());
data << uint32(0); //! movement counter
SendDirectMessage(&data);
+
+ data.Initialize(MSG_MOVE_FEATHER_FALL, 64);
+ data.append(GetPackGUID());
+ BuildMovementPacket(&data);
+ SendMessageToSet(&data, false);
+ return true;
}
float Player::GetCollisionHeight(bool mounted) const
@@ -26203,6 +26261,31 @@ float Player::GetCollisionHeight(bool mounted) const
}
}
+std::string Player::GetMapAreaAndZoneString()
+{
+ uint32 areaId = GetAreaId();
+ std::string areaName = "Unknown";
+ std::string zoneName = "Unknown";
+ if (AreaTableEntry const* area = GetAreaEntryByAreaID(areaId))
+ {
+ int locale = GetSession()->GetSessionDbcLocale();
+ areaName = area->area_name[locale];
+ if (AreaTableEntry const* zone = GetAreaEntryByAreaID(area->zone))
+ zoneName = zone->area_name[locale];
+ }
+
+ std::ostringstream str;
+ str << "Map: " << GetMapId() << " (" << (FindMap() ? FindMap()->GetMapName() : "Unknown") << ") Area: " << areaId << " (" << areaName.c_str() << ") Zone: " << zoneName.c_str();
+ return str.str();
+}
+
+std::string Player::GetCoordsMapAreaAndZoneString()
+{
+ std::ostringstream str;
+ str << Position::ToString() << " " << GetMapAreaAndZoneString();
+ return str.str();
+}
+
Guild* Player::GetGuild()
{
uint32 guildId = GetGuildId();
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index 1c0fa4ea93d..c26d2d80336 100644
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -1063,7 +1063,7 @@ class Player : public Unit, public GridObject<Player>
friend void Item::AddToUpdateQueueOf(Player* player);
friend void Item::RemoveFromUpdateQueueOf(Player* player);
public:
- explicit Player (WorldSession* session);
+ explicit Player(WorldSession* session);
~Player();
void CleanupsBeforeDelete(bool finalCleanup = true);
@@ -1071,6 +1071,13 @@ class Player : public Unit, public GridObject<Player>
void AddToWorld();
void RemoveFromWorld();
+ void SetObjectScale(float scale)
+ {
+ Unit::SetObjectScale(scale);
+ SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, scale * DEFAULT_WORLD_OBJECT_SIZE);
+ SetFloatValue(UNIT_FIELD_COMBATREACH, scale * DEFAULT_COMBAT_REACH);
+ }
+
bool TeleportTo(uint32 mapid, float x, float y, float z, float orientation, uint32 options = 0);
bool TeleportTo(WorldLocation const &loc, uint32 options = 0);
bool TeleportToBGEntryPoint();
@@ -1119,7 +1126,7 @@ class Player : public Unit, public GridObject<Player>
// mount_id can be used in scripting calls
bool isAcceptWhispers() const { return m_ExtraFlags & PLAYER_EXTRA_ACCEPT_WHISPERS; }
void SetAcceptWhispers(bool on) { if (on) m_ExtraFlags |= PLAYER_EXTRA_ACCEPT_WHISPERS; else m_ExtraFlags &= ~PLAYER_EXTRA_ACCEPT_WHISPERS; }
- bool isGameMaster() const { return m_ExtraFlags & PLAYER_EXTRA_GM_ON; }
+ bool IsGameMaster() const { return m_ExtraFlags & PLAYER_EXTRA_GM_ON; }
void SetGameMaster(bool on);
bool isGMChat() const { return m_ExtraFlags & PLAYER_EXTRA_GM_CHAT; }
void SetGMChat(bool on) { if (on) m_ExtraFlags |= PLAYER_EXTRA_GM_CHAT; else m_ExtraFlags &= ~PLAYER_EXTRA_GM_CHAT; }
@@ -1406,7 +1413,7 @@ class Player : public Unit, public GridObject<Player>
void ItemAddedQuestCheck(uint32 entry, uint32 count);
void ItemRemovedQuestCheck(uint32 entry, uint32 count);
void KilledMonster(CreatureTemplate const* cInfo, uint64 guid);
- void KilledMonsterCredit(uint32 entry, uint64 guid);
+ void KilledMonsterCredit(uint32 entry, uint64 guid = 0);
void KilledPlayerCredit();
void CastedCreatureOrGO(uint32 entry, uint64 guid, uint32 spell_id);
void TalkedToCreature(uint32 entry, uint64 guid);
@@ -1424,7 +1431,7 @@ class Player : public Unit, public GridObject<Player>
void SendQuestTimerFailed(uint32 quest_id);
void SendCanTakeQuestResponse(uint32 msg) const;
void SendQuestConfirmAccept(Quest const* quest, Player* pReceiver);
- void SendPushToPartyResponse(Player* player, uint32 msg);
+ void SendPushToPartyResponse(Player* player, uint8 msg);
void SendQuestUpdateAddItem(Quest const* quest, uint32 item_idx, uint16 count);
void SendQuestUpdateAddCreatureOrGo(Quest const* quest, uint64 guid, uint32 creatureOrGO_idx, uint16 old_count, uint16 add_count);
void SendQuestUpdateAddPlayer(Quest const* quest, uint16 old_count, uint16 add_count);
@@ -1937,7 +1944,7 @@ class Player : public Unit, public GridObject<Player>
void SetCanBlock(bool value);
bool CanTitanGrip() const { return m_canTitanGrip; }
void SetCanTitanGrip(bool value) { m_canTitanGrip = value; }
- bool CanTameExoticPets() const { return isGameMaster() || HasAuraType(SPELL_AURA_ALLOW_TAME_PET_TYPE); }
+ bool CanTameExoticPets() const { return IsGameMaster() || HasAuraType(SPELL_AURA_ALLOW_TAME_PET_TYPE); }
void SetRegularAttackTime();
void SetBaseModValue(BaseModGroup modGroup, BaseModType modType, float value) { m_auraBaseMod[modGroup][modType] = value; }
@@ -2259,7 +2266,7 @@ class Player : public Unit, public GridObject<Player>
void SetTitle(CharTitlesEntry const* title, bool lost = false);
//bool isActiveObject() const { return true; }
- bool canSeeSpellClickOn(Creature const* creature) const;
+ bool CanSeeSpellClickOn(Creature const* creature) const;
uint32 GetChampioningFaction() const { return m_ChampioningFaction; }
void SetChampioningFaction(uint32 faction) { m_ChampioningFaction = faction; }
@@ -2273,20 +2280,20 @@ class Player : public Unit, public GridObject<Player>
bool IsInWhisperWhiteList(uint64 guid);
void RemoveFromWhisperWhiteList(uint64 guid) { WhisperList.remove(guid); }
- /*! These methods send different packets to the client in apply and unapply case.
- These methods are only sent to the current unit.
- */
- void SendMovementSetCanFly(bool apply);
- void SendMovementSetCanTransitionBetweenSwimAndFly(bool apply);
- void SendMovementSetHover(bool apply);
- void SendMovementSetWaterWalking(bool apply);
- void SendMovementSetFeatherFall(bool apply);
+ bool SetDisableGravity(bool disable, bool packetOnly /* = false */);
+ bool SetCanFly(bool apply);
+ bool SetWaterWalking(bool apply, bool packetOnly = false);
+ bool SetFeatherFall(bool apply, bool packetOnly = false);
+ bool SetHover(bool enable, bool packetOnly = false);
bool CanFly() const { return m_movementInfo.HasMovementFlag(MOVEMENTFLAG_CAN_FLY); }
//! Return collision height sent to client
float GetCollisionHeight(bool mounted) const;
+ std::string GetMapAreaAndZoneString();
+ std::string GetCoordsMapAreaAndZoneString();
+
protected:
// Gamemaster whisper whitelist
WhisperListContainer WhisperList;
diff --git a/src/server/game/Entities/Totem/Totem.cpp b/src/server/game/Entities/Totem/Totem.cpp
index 9526d8755a5..3b283ca39c2 100644
--- a/src/server/game/Entities/Totem/Totem.cpp
+++ b/src/server/game/Entities/Totem/Totem.cpp
@@ -35,7 +35,7 @@ Totem::Totem(SummonPropertiesEntry const* properties, Unit* owner) : Minion(prop
void Totem::Update(uint32 time)
{
- if (!GetOwner()->isAlive() || !isAlive())
+ if (!GetOwner()->IsAlive() || !IsAlive())
{
UnSummon(); // remove self
return;
@@ -136,7 +136,7 @@ void Totem::UnSummon(uint32 msTime)
{
for (GroupReference* itr = group->GetFirstMember(); itr != NULL; itr = itr->next())
{
- Player* target = itr->getSource();
+ Player* target = itr->GetSource();
if (target && group->SameSubGroup(owner, target))
target->RemoveAurasDueToSpell(GetSpell(), GetGUID());
}
diff --git a/src/server/game/Entities/Transport/Transport.cpp b/src/server/game/Entities/Transport/Transport.cpp
index 74842d8d80d..23197b40ad0 100644
--- a/src/server/game/Entities/Transport/Transport.cpp
+++ b/src/server/game/Entities/Transport/Transport.cpp
@@ -574,13 +574,13 @@ void Transport::UpdateForMap(Map const* targetMap)
{
for (Map::PlayerList::const_iterator itr = player.begin(); itr != player.end(); ++itr)
{
- if (this != itr->getSource()->GetTransport())
+ if (this != itr->GetSource()->GetTransport())
{
UpdateData transData;
- BuildCreateUpdateBlockForPlayer(&transData, itr->getSource());
+ BuildCreateUpdateBlockForPlayer(&transData, itr->GetSource());
WorldPacket packet;
transData.BuildPacket(&packet);
- itr->getSource()->SendDirectMessage(&packet);
+ itr->GetSource()->SendDirectMessage(&packet);
}
}
}
@@ -592,8 +592,8 @@ void Transport::UpdateForMap(Map const* targetMap)
transData.BuildPacket(&out_packet);
for (Map::PlayerList::const_iterator itr = player.begin(); itr != player.end(); ++itr)
- if (this != itr->getSource()->GetTransport())
- itr->getSource()->SendDirectMessage(&out_packet);
+ if (this != itr->GetSource()->GetTransport())
+ itr->GetSource()->SendDirectMessage(&out_packet);
}
}
@@ -636,7 +636,7 @@ uint32 Transport::AddNPCPassenger(uint32 tguid, uint32 entry, float x, float y,
creature->SetTransport(this);
creature->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT);
creature->m_movementInfo.guid = GetGUID();
- creature->m_movementInfo.t_pos.Relocate(x, y, z, o);
+ creature->m_movementInfo.transport.pos.Relocate(x, y, z, o);
if (anim)
creature->SetUInt32Value(UNIT_NPC_EMOTESTATE, anim);
@@ -648,7 +648,7 @@ uint32 Transport::AddNPCPassenger(uint32 tguid, uint32 entry, float x, float y,
o + GetOrientation());
creature->SetHomePosition(creature->GetPositionX(), creature->GetPositionY(), creature->GetPositionZ(), creature->GetOrientation());
- creature->SetTransportHomePosition(creature->m_movementInfo.t_pos);
+ creature->SetTransportHomePosition(creature->m_movementInfo.transport.pos);
if (!creature->IsPositionValid())
{
@@ -675,10 +675,10 @@ uint32 Transport::AddNPCPassenger(uint32 tguid, uint32 entry, float x, float y,
void Transport::UpdatePosition(MovementInfo* mi)
{
- float transport_o = mi->pos.GetOrientation() - mi->t_pos.GetOrientation();
- float transport_x = mi->pos.m_positionX - (mi->t_pos.m_positionX * std::cos(transport_o) - mi->t_pos.m_positionY * std::sin(transport_o));
- float transport_y = mi->pos.m_positionY - (mi->t_pos.m_positionY * std::cos(transport_o) + mi->t_pos.m_positionX * std::sin(transport_o));
- float transport_z = mi->pos.m_positionZ - mi->t_pos.m_positionZ;
+ float transport_o = mi->pos.GetOrientation() - mi->transport.pos.GetOrientation();
+ float transport_x = mi->pos.m_positionX - (mi->transport.pos.m_positionX * std::cos(transport_o) - mi->transport.pos.m_positionY * std::sin(transport_o));
+ float transport_y = mi->pos.m_positionY - (mi->transport.pos.m_positionY * std::cos(transport_o) + mi->transport.pos.m_positionX * std::sin(transport_o));
+ float transport_z = mi->pos.m_positionZ - mi->transport.pos.m_positionZ;
Relocate(transport_x, transport_y, transport_z, transport_o);
UpdatePassengerPositions();
@@ -691,31 +691,35 @@ void Transport::UpdatePassengerPositions()
Creature* npc = *itr;
float x, y, z, o;
- npc->m_movementInfo.t_pos.GetPosition(x, y, z, o);
- CalculatePassengerPosition(x, y, z, o);
+ npc->m_movementInfo.transport.pos.GetPosition(x, y, z, o);
+ CalculatePassengerPosition(x, y, z, &o);
GetMap()->CreatureRelocation(npc, x, y, z, o, false);
npc->GetTransportHomePosition(x, y, z, o);
- CalculatePassengerPosition(x, y, z, o);
+ CalculatePassengerPosition(x, y, z, &o);
npc->SetHomePosition(x, y, z, o);
}
}
-void Transport::CalculatePassengerPosition(float& x, float& y, float& z, float& o) const
+void Transport::CalculatePassengerPosition(float& x, float& y, float& z, float* o /*= NULL*/) const
{
- float inx = x, iny = y, inz = z, ino = o;
- o = GetOrientation() + ino;
+ float inx = x, iny = y, inz = z;
+ if (o)
+ *o = Position::NormalizeOrientation(GetOrientation() + *o);
+
x = GetPositionX() + inx * std::cos(GetOrientation()) - iny * std::sin(GetOrientation());
y = GetPositionY() + iny * std::cos(GetOrientation()) + inx * std::sin(GetOrientation());
z = GetPositionZ() + inz;
}
-void Transport::CalculatePassengerOffset(float& x, float& y, float& z, float& o) const
+void Transport::CalculatePassengerOffset(float& x, float& y, float& z, float* o /*= NULL*/) const
{
- o -= GetOrientation();
+ if (o)
+ *o = Position::NormalizeOrientation(*o - GetOrientation());
+
z -= GetPositionZ();
y -= GetPositionY(); // y = searchedY * std::cos(o) + searchedX * std::sin(o)
x -= GetPositionX(); // x = searchedX * std::cos(o) + searchedY * std::sin(o + pi)
float inx = x, iny = y;
- y = (iny - inx * tan(GetOrientation())) / (cos(GetOrientation()) + std::sin(GetOrientation()) * tan(GetOrientation()));
- x = (inx + iny * tan(GetOrientation())) / (cos(GetOrientation()) + std::sin(GetOrientation()) * tan(GetOrientation()));
+ y = (iny - inx * std::tan(GetOrientation())) / (std::cos(GetOrientation()) + std::sin(GetOrientation()) * std::tan(GetOrientation()));
+ x = (inx + iny * std::tan(GetOrientation())) / (std::cos(GetOrientation()) + std::sin(GetOrientation()) * std::tan(GetOrientation()));
}
diff --git a/src/server/game/Entities/Transport/Transport.h b/src/server/game/Entities/Transport/Transport.h
index bae09335f62..445bec456fd 100644
--- a/src/server/game/Entities/Transport/Transport.h
+++ b/src/server/game/Entities/Transport/Transport.h
@@ -50,10 +50,10 @@ class Transport : public GameObject, public TransportBase
void UpdatePassengerPositions();
/// This method transforms supplied transport offsets into global coordinates
- void CalculatePassengerPosition(float& x, float& y, float& z, float& o) const;
+ void CalculatePassengerPosition(float& x, float& y, float& z, float* o = NULL) const;
/// This method transforms supplied global coordinates into local offsets
- void CalculatePassengerOffset(float& x, float& y, float& z, float& o) const;
+ void CalculatePassengerOffset(float& x, float& y, float& z, float* o = NULL) const;
void BuildStartMovePacket(Map const* targetMap);
void BuildStopMovePacket(Map const* targetMap);
diff --git a/src/server/game/Entities/Unit/StatSystem.cpp b/src/server/game/Entities/Unit/StatSystem.cpp
index c30fa910f76..7651297a078 100644
--- a/src/server/game/Entities/Unit/StatSystem.cpp
+++ b/src/server/game/Entities/Unit/StatSystem.cpp
@@ -24,6 +24,7 @@
#include "SpellAuras.h"
#include "SpellAuraEffects.h"
#include "SpellMgr.h"
+#include "World.h"
inline bool _ModifyUInt32(bool apply, uint32& baseValue, int32& amount)
{
@@ -446,7 +447,7 @@ void Player::UpdateAttackPowerAndDamage(bool ranged)
if (ranged)
{
UpdateDamagePhysical(RANGED_ATTACK);
- if (pet && pet->isHunterPet()) // At ranged attack change for hunter pet
+ if (pet && pet->IsHunterPet()) // At ranged attack change for hunter pet
pet->UpdateAttackPowerAndDamage();
}
else
@@ -575,6 +576,10 @@ void Player::UpdateBlockPercentage()
value += GetTotalAuraModifier(SPELL_AURA_MOD_BLOCK_PERCENT);
// Increase from rating
value += GetRatingBonusValue(CR_BLOCK);
+
+ if (sWorld->getBoolConfig(CONFIG_STATS_LIMITS_ENABLE))
+ value = value > sWorld->getFloatConfig(CONFIG_STATS_LIMITS_BLOCK) ? sWorld->getFloatConfig(CONFIG_STATS_LIMITS_BLOCK) : value;
+
value = value < 0.0f ? 0.0f : value;
}
SetStatFloatValue(PLAYER_BLOCK_PERCENTAGE, value);
@@ -609,6 +614,10 @@ void Player::UpdateCritPercentage(WeaponAttackType attType)
float value = GetTotalPercentageModValue(modGroup) + GetRatingBonusValue(cr);
// Modify crit from weapon skill and maximized defense skill of same level victim difference
value += (int32(GetWeaponSkillValue(attType)) - int32(GetMaxSkillValueForLevel())) * 0.04f;
+
+ if (sWorld->getBoolConfig(CONFIG_STATS_LIMITS_ENABLE))
+ value = value > sWorld->getFloatConfig(CONFIG_STATS_LIMITS_CRIT) ? sWorld->getFloatConfig(CONFIG_STATS_LIMITS_CRIT) : value;
+
value = value < 0.0f ? 0.0f : value;
SetStatFloatValue(index, value);
}
@@ -700,6 +709,10 @@ void Player::UpdateParryPercentage()
nondiminishing += GetTotalAuraModifier(SPELL_AURA_MOD_PARRY_PERCENT);
// apply diminishing formula to diminishing parry chance
value = nondiminishing + diminishing * parry_cap[pclass] / (diminishing + parry_cap[pclass] * m_diminishing_k[pclass]);
+
+ if (sWorld->getBoolConfig(CONFIG_STATS_LIMITS_ENABLE))
+ value = value > sWorld->getFloatConfig(CONFIG_STATS_LIMITS_PARRY) ? sWorld->getFloatConfig(CONFIG_STATS_LIMITS_PARRY) : value;
+
value = value < 0.0f ? 0.0f : value;
}
SetStatFloatValue(PLAYER_PARRY_PERCENTAGE, value);
@@ -735,6 +748,9 @@ void Player::UpdateDodgePercentage()
uint32 pclass = getClass()-1;
float value = nondiminishing + (diminishing * dodge_cap[pclass] / (diminishing + dodge_cap[pclass] * m_diminishing_k[pclass]));
+ if (sWorld->getBoolConfig(CONFIG_STATS_LIMITS_ENABLE))
+ value = value > sWorld->getFloatConfig(CONFIG_STATS_LIMITS_DODGE) ? sWorld->getFloatConfig(CONFIG_STATS_LIMITS_DODGE) : value;
+
value = value < 0.0f ? 0.0f : value;
SetStatFloatValue(PLAYER_DODGE_PERCENTAGE, value);
}
@@ -1110,7 +1126,7 @@ bool Guardian::UpdateStats(Stats stat)
}
else if (stat == STAT_STAMINA)
{
- if (owner->getClass() == CLASS_WARLOCK && isPet())
+ if (owner->getClass() == CLASS_WARLOCK && IsPet())
{
ownersBonus = CalculatePct(owner->GetStat(STAT_STAMINA), 75);
value += ownersBonus;
@@ -1118,7 +1134,7 @@ bool Guardian::UpdateStats(Stats stat)
else
{
mod = 0.45f;
- if (isPet())
+ if (IsPet())
{
PetSpellMap::const_iterator itr = (ToPet()->m_spells.find(62758)); // Wild Hunt rank 1
if (itr == ToPet()->m_spells.end())
@@ -1190,7 +1206,7 @@ void Guardian::UpdateResistances(uint32 school)
float value = GetTotalAuraModValue(UnitMods(UNIT_MOD_RESISTANCE_START + school));
// hunter and warlock pets gain 40% of owner's resistance
- if (isPet())
+ if (IsPet())
value += float(CalculatePct(m_owner->GetResistance(SpellSchools(school)), 40));
SetResistance(SpellSchools(school), int32(value));
@@ -1206,7 +1222,7 @@ void Guardian::UpdateArmor()
UnitMods unitMod = UNIT_MOD_ARMOR;
// hunter and warlock pets gain 35% of owner's armor value
- if (isPet())
+ if (IsPet())
bonus_armor = float(CalculatePct(m_owner->GetArmor(), 35));
value = GetModifierValue(unitMod, BASE_VALUE);
@@ -1285,10 +1301,10 @@ void Guardian::UpdateAttackPowerAndDamage(bool ranged)
Unit* owner = GetOwner();
if (owner && owner->GetTypeId() == TYPEID_PLAYER)
{
- if (isHunterPet()) //hunter pets benefit from owner's attack power
+ if (IsHunterPet()) //hunter pets benefit from owner's attack power
{
float mod = 1.0f; //Hunter contribution modifier
- if (isPet())
+ if (IsPet())
{
PetSpellMap::const_iterator itr = ToPet()->m_spells.find(62758); //Wild Hunt rank 1
if (itr == ToPet()->m_spells.end())
@@ -1318,7 +1334,7 @@ void Guardian::UpdateAttackPowerAndDamage(bool ranged)
SetBonusDamage(int32(owner->GetTotalAttackPowerValue(BASE_ATTACK) * dmg_multiplier));
}
//demons benefit from warlocks shadow or fire damage
- else if (isPet())
+ else if (IsPet())
{
int32 fire = int32(owner->GetUInt32Value(PLAYER_FIELD_MOD_DAMAGE_DONE_POS + SPELL_SCHOOL_FIRE)) - owner->GetUInt32Value(PLAYER_FIELD_MOD_DAMAGE_DONE_NEG + SPELL_SCHOOL_FIRE);
int32 shadow = int32(owner->GetUInt32Value(PLAYER_FIELD_MOD_DAMAGE_DONE_POS + SPELL_SCHOOL_SHADOW)) - owner->GetUInt32Value(PLAYER_FIELD_MOD_DAMAGE_DONE_NEG + SPELL_SCHOOL_SHADOW);
@@ -1396,7 +1412,7 @@ void Guardian::UpdateDamagePhysical(WeaponAttackType attType)
float maxdamage = ((base_value + weapon_maxdamage) * base_pct + total_value) * total_pct;
// Pet's base damage changes depending on happiness
- if (isHunterPet() && attType == BASE_ATTACK)
+ if (IsHunterPet() && attType == BASE_ATTACK)
{
switch (ToPet()->GetHappinessState())
{
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 3872f9154b9..327c4b96c34 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -333,7 +333,7 @@ void Unit::Update(uint32 p_time)
SendThreatListUpdate();
// update combat timer only for players and pets (only pets with PetAI)
- if (isInCombat() && (GetTypeId() == TYPEID_PLAYER || (ToCreature()->isPet() && IsControlledByPlayer())))
+ if (IsInCombat() && (GetTypeId() == TYPEID_PLAYER || (ToCreature()->IsPet() && IsControlledByPlayer())))
{
// Check UNIT_STATE_MELEE_ATTACKING or UNIT_STATE_CHASE (without UNIT_STATE_FOLLOW in this case) so pets can reach far away
// targets without stopping half way there and running off.
@@ -359,7 +359,7 @@ void Unit::Update(uint32 p_time)
// update abilities available only for fraction of time
UpdateReactives(p_time);
- if (isAlive())
+ if (IsAlive())
{
ModifyAuraState(AURA_STATE_HEALTHLESS_20_PERCENT, HealthBelowPct(20));
ModifyAuraState(AURA_STATE_HEALTHLESS_35_PERCENT, HealthBelowPct(35));
@@ -407,14 +407,14 @@ void Unit::UpdateSplineMovement(uint32 t_diff)
if (HasUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT))
{
- Position& pos = m_movementInfo.t_pos;
+ Position& pos = m_movementInfo.transport.pos;
pos.m_positionX = loc.x;
pos.m_positionY = loc.y;
pos.m_positionZ = loc.z;
pos.m_orientation = loc.orientation;
if (TransportBase* transport = GetDirectTransport())
- transport->CalculatePassengerPosition(loc.x, loc.y, loc.z, loc.orientation);
+ transport->CalculatePassengerPosition(loc.x, loc.y, loc.z, &loc.orientation);
}
if (HasUnitState(UNIT_STATE_CANNOT_TURN))
@@ -554,7 +554,7 @@ bool Unit::HasBreakableByDamageCrowdControlAura(Unit* excludeCasterChannel) cons
void Unit::DealDamageMods(Unit* victim, uint32 &damage, uint32* absorb)
{
- if (!victim || !victim->isAlive() || victim->HasUnitState(UNIT_STATE_IN_FLIGHT) || (victim->GetTypeId() == TYPEID_UNIT && victim->ToCreature()->IsInEvadeMode()))
+ if (!victim || !victim->IsAlive() || victim->HasUnitState(UNIT_STATE_IN_FLIGHT) || (victim->GetTypeId() == TYPEID_UNIT && victim->ToCreature()->IsInEvadeMode()))
{
if (absorb)
*absorb += damage;
@@ -575,7 +575,7 @@ uint32 Unit::DealDamage(Unit* victim, uint32 damage, CleanDamage const* cleanDam
// Signal to pets that their owner was attacked
Pet* pet = victim->ToPlayer()->GetPet();
- if (pet && pet->isAlive())
+ if (pet && pet->IsAlive())
pet->AI()->OwnerAttackedBy(this);
if (victim->ToPlayer()->GetCommandStatus(CHEAT_GOD))
@@ -583,7 +583,7 @@ uint32 Unit::DealDamage(Unit* victim, uint32 damage, CleanDamage const* cleanDam
}
// Signal the pet it was attacked so the AI can respond if needed
- if (victim->GetTypeId() == TYPEID_UNIT && this != victim && victim->isPet() && victim->isAlive())
+ if (victim->GetTypeId() == TYPEID_UNIT && this != victim && victim->IsPet() && victim->IsAlive())
victim->ToPet()->AI()->AttackedBy(this);
if (damagetype != NODAMAGE)
@@ -738,10 +738,14 @@ uint32 Unit::DealDamage(Unit* victim, uint32 damage, CleanDamage const* cleanDam
if (victim->GetTypeId() == TYPEID_PLAYER)
victim->ToPlayer()->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_TOTAL_DAMAGE_RECEIVED, damage);
- victim->ModifyHealth(- (int32)damage);
+ victim->ModifyHealth(-(int32)damage);
if (damagetype == DIRECT_DAMAGE || damagetype == SPELL_DIRECT_DAMAGE)
+ {
victim->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_DIRECT_DAMAGE, spellProto ? spellProto->Id : 0);
+ if (victim->GetTypeId() == TYPEID_UNIT && !victim->IsPet())
+ victim->SetLastDamagedTime(time(NULL));
+ }
if (victim->GetTypeId() != TYPEID_PLAYER)
victim->AddThreat(this, float(damage), damageSchoolMask, spellProto);
@@ -969,7 +973,7 @@ void Unit::CalculateSpellDamageTaken(SpellNonMeleeDamage* damageInfo, int32 dama
return;
Unit* victim = damageInfo->target;
- if (!victim || !victim->isAlive())
+ if (!victim || !victim->IsAlive())
return;
SpellSchoolMask damageSchoolMask = SpellSchoolMask(damageInfo->schoolMask);
@@ -1082,7 +1086,7 @@ void Unit::DealSpellDamage(SpellNonMeleeDamage* damageInfo, bool durabilityLoss)
if (!victim)
return;
- if (!victim->isAlive() || victim->HasUnitState(UNIT_STATE_IN_FLIGHT) || (victim->GetTypeId() == TYPEID_UNIT && victim->ToCreature()->IsInEvadeMode()))
+ if (!victim->IsAlive() || victim->HasUnitState(UNIT_STATE_IN_FLIGHT) || (victim->GetTypeId() == TYPEID_UNIT && victim->ToCreature()->IsInEvadeMode()))
return;
SpellInfo const* spellProto = sSpellMgr->GetSpellInfo(damageInfo->SpellID);
@@ -1120,7 +1124,7 @@ void Unit::CalculateMeleeDamage(Unit* victim, uint32 damage, CalcDamageInfo* dam
if (!victim)
return;
- if (!isAlive() || !victim->isAlive())
+ if (!IsAlive() || !victim->IsAlive())
return;
// Select HitInfo/procAttacker/procVictim flag based on attack type
@@ -1310,7 +1314,7 @@ void Unit::DealMeleeDamage(CalcDamageInfo* damageInfo, bool durabilityLoss)
{
Unit* victim = damageInfo->target;
- if (!victim->isAlive() || victim->HasUnitState(UNIT_STATE_IN_FLIGHT) || (victim->GetTypeId() == TYPEID_UNIT && victim->ToCreature()->IsInEvadeMode()))
+ if (!victim->IsAlive() || victim->HasUnitState(UNIT_STATE_IN_FLIGHT) || (victim->GetTypeId() == TYPEID_UNIT && victim->ToCreature()->IsInEvadeMode()))
return;
// Hmmmm dont like this emotes client must by self do all animations
@@ -1548,7 +1552,7 @@ uint32 Unit::CalcArmorReducedDamage(Unit* victim, const uint32 damage, SpellInfo
void Unit::CalcAbsorbResist(Unit* victim, SpellSchoolMask schoolMask, DamageEffectType damagetype, uint32 const damage, uint32 *absorb, uint32 *resist, SpellInfo const* spellInfo)
{
- if (!victim || !victim->isAlive() || !damage)
+ if (!victim || !victim->IsAlive() || !damage)
return;
DamageInfo dmgInfo = DamageInfo(this, victim, damage, spellInfo, schoolMask, damagetype);
@@ -1769,7 +1773,7 @@ void Unit::CalcAbsorbResist(Unit* victim, SpellSchoolMask schoolMask, DamageEffe
// Damage can be splitted only if aura has an alive caster
Unit* caster = (*itr)->GetCaster();
- if (!caster || (caster == victim) || !caster->IsInWorld() || !caster->isAlive())
+ if (!caster || (caster == victim) || !caster->IsInWorld() || !caster->IsAlive())
continue;
int32 splitDamage = (*itr)->GetAmount();
@@ -1805,7 +1809,7 @@ void Unit::CalcAbsorbResist(Unit* victim, SpellSchoolMask schoolMask, DamageEffe
// Damage can be splitted only if aura has an alive caster
Unit* caster = (*itr)->GetCaster();
- if (!caster || (caster == victim) || !caster->IsInWorld() || !caster->isAlive())
+ if (!caster || (caster == victim) || !caster->IsInWorld() || !caster->IsAlive())
continue;
uint32 splitDamage = CalculatePct(dmgInfo.GetDamage(), (*itr)->GetAmount());
@@ -1898,7 +1902,7 @@ void Unit::AttackerStateUpdate (Unit* victim, WeaponAttackType attType, bool ext
if (HasUnitState(UNIT_STATE_CANNOT_AUTOATTACK) || HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED))
return;
- if (!victim->isAlive())
+ if (!victim->IsAlive())
return;
if ((attType == BASE_ATTACK || attType == OFF_ATTACK) && !IsWithinLOSInMap(victim))
@@ -2085,8 +2089,8 @@ MeleeHitOutcome Unit::RollMeleeOutcomeAgainst (const Unit* victim, WeaponAttackT
// Max 40% chance to score a glancing blow against mobs that are higher level (can do only players and pets and not with ranged weapon)
if (attType != RANGED_ATTACK &&
- (GetTypeId() == TYPEID_PLAYER || ToCreature()->isPet()) &&
- victim->GetTypeId() != TYPEID_PLAYER && !victim->ToCreature()->isPet() &&
+ (GetTypeId() == TYPEID_PLAYER || ToCreature()->IsPet()) &&
+ victim->GetTypeId() != TYPEID_PLAYER && !victim->ToCreature()->IsPet() &&
getLevel() < victim->getLevelForTarget(this))
{
// cap possible value (with bonuses > max skill)
@@ -2455,14 +2459,14 @@ SpellMissInfo Unit::MeleeSpellHitResult(Unit* victim, SpellInfo const* spell)
SpellMissInfo Unit::MagicSpellHitResult(Unit* victim, SpellInfo const* spell)
{
// Can`t miss on dead target (on skinning for example)
- if (!victim->isAlive() && victim->GetTypeId() != TYPEID_PLAYER)
+ if (!victim->IsAlive() && victim->GetTypeId() != TYPEID_PLAYER)
return SPELL_MISS_NONE;
SpellSchoolMask schoolMask = spell->GetSchoolMask();
// PvP - PvE spell misschances per leveldif > 2
int32 lchance = victim->GetTypeId() == TYPEID_PLAYER ? 7 : 11;
int32 thisLevel = getLevelForTarget(victim);
- if (GetTypeId() == TYPEID_UNIT && ToCreature()->isTrigger())
+ if (GetTypeId() == TYPEID_UNIT && ToCreature()->IsTrigger())
thisLevel = std::max<int32>(thisLevel, spell->SpellLevel);
int32 leveldif = int32(victim->getLevelForTarget(this)) - thisLevel;
@@ -2658,7 +2662,7 @@ float Unit::GetUnitDodgeChance() const
return GetFloatValue(PLAYER_DODGE_PERCENTAGE);
else
{
- if (ToCreature()->isTotem())
+ if (ToCreature()->IsTotem())
return 0.0f;
else
{
@@ -2733,7 +2737,7 @@ float Unit::GetUnitBlockChance() const
}
else
{
- if (ToCreature()->isTotem())
+ if (ToCreature()->IsTotem())
return 0.0f;
else
{
@@ -3131,9 +3135,9 @@ bool Unit::isInBackInMap(Unit const* target, float distance, float arc) const
bool Unit::isInAccessiblePlaceFor(Creature const* c) const
{
if (IsInWater())
- return c->canSwim();
+ return c->CanSwim();
else
- return c->canWalk() || c->CanFly();
+ return c->CanWalk() || c->CanFly();
}
bool Unit::IsInWater() const
@@ -3148,7 +3152,7 @@ bool Unit::IsUnderWater() const
void Unit::UpdateUnderwaterState(Map* m, float x, float y, float z)
{
- if (!isPet() && !IsVehicle())
+ if (!IsPet() && !IsVehicle())
return;
LiquidData liquid_status;
@@ -3263,10 +3267,16 @@ void Unit::_AddAura(UnitAura* aura, Unit* caster)
if (aura->IsRemoved())
return;
- aura->SetIsSingleTarget(caster && aura->GetSpellInfo()->IsSingleTarget());
+ aura->SetIsSingleTarget(caster && (aura->GetSpellInfo()->IsSingleTarget() || aura->HasEffectType(SPELL_AURA_CONTROL_VEHICLE)));
if (aura->IsSingleTarget())
{
- ASSERT((IsInWorld() && !IsDuringRemoveFromWorld()) || (aura->GetCasterGUID() == GetGUID()));
+ ASSERT((IsInWorld() && !IsDuringRemoveFromWorld()) || (aura->GetCasterGUID() == GetGUID()) ||
+ (isBeingLoaded() && aura->HasEffectType(SPELL_AURA_CONTROL_VEHICLE)));
+ /* @HACK: Player is not in world during loading auras.
+ * Single target auras are not saved or loaded from database
+ * but may be created as a result of aura links (player mounts with passengers)
+ */
+
// register single target aura
caster->GetSingleCastAuras().push_back(aura);
// remove other single target auras
@@ -3274,7 +3284,7 @@ void Unit::_AddAura(UnitAura* aura, Unit* caster)
for (Unit::AuraList::iterator itr = scAuras.begin(); itr != scAuras.end();)
{
if ((*itr) != aura &&
- (*itr)->GetSpellInfo()->IsSingleTargetWith(aura->GetSpellInfo()))
+ (*itr)->IsSingleTargetWith(aura))
{
(*itr)->Remove();
itr = scAuras.begin();
@@ -3301,7 +3311,7 @@ AuraApplication * Unit::_CreateAuraApplication(Aura* aura, uint8 effMask)
uint32 aurId = aurSpellInfo->Id;
// ghost spell check, allow apply any auras at player loading in ghost mode (will be cleanup after load)
- if (!isAlive() && !aurSpellInfo->IsDeathPersistent() &&
+ if (!IsAlive() && !aurSpellInfo->IsDeathPersistent() &&
(GetTypeId() != TYPEID_PLAYER || !ToPlayer()->GetSession()->PlayerLoading()))
return NULL;
@@ -3434,7 +3444,7 @@ void Unit::_UnapplyAura(AuraApplicationMap::iterator &i, AuraRemoveMode removeMo
ASSERT(!aurApp->GetEffectMask());
// Remove totem at next update if totem loses its aura
- if (aurApp->GetRemoveMode() == AURA_REMOVE_BY_EXPIRE && GetTypeId() == TYPEID_UNIT && ToCreature()->isTotem()&& ToTotem()->GetSummonerGUID() == aura->GetCasterGUID())
+ if (aurApp->GetRemoveMode() == AURA_REMOVE_BY_EXPIRE && GetTypeId() == TYPEID_UNIT && ToCreature()->IsTotem()&& ToTotem()->GetSummonerGUID() == aura->GetCasterGUID())
{
if (ToTotem()->GetSpell() == aura->GetId() && ToTotem()->GetTotemType() == TOTEM_PASSIVE)
ToTotem()->setDeathState(JUST_DIED);
@@ -4919,7 +4929,7 @@ void Unit::ProcDamageAndSpell(Unit* victim, uint32 procAttacker, uint32 procVict
ProcDamageAndSpellFor(false, victim, procAttacker, procExtra, attType, procSpell, amount, procAura);
// Now go on with a victim's events'n'auras
// Not much to do if no flags are set or there is no victim
- if (victim && victim->isAlive() && procVictim)
+ if (victim && victim->IsAlive() && procVictim)
victim->ProcDamageAndSpellFor(true, this, procVictim, procExtra, attType, procSpell, amount, procAura);
}
@@ -5161,7 +5171,7 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere
// 41409 Dementia: Every 5 seconds either gives you -5% damage/healing. (Druid, Shaman, Priest, Warlock, Mage, Paladin)
case 39446:
{
- if (GetTypeId() != TYPEID_PLAYER || !isAlive())
+ if (GetTypeId() != TYPEID_PLAYER || !IsAlive())
return false;
// Select class defined buff
@@ -5224,7 +5234,7 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere
// triggered at positive/self casts also, current attack target used then
if (target && IsFriendlyTo(target))
{
- target = getVictim();
+ target = GetVictim();
if (!target)
{
uint64 selected_guid = ToPlayer()->GetSelection();
@@ -5347,7 +5357,7 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere
case 31872:
{
// Roll chane
- if (!victim || !victim->isAlive() || !roll_chance_i(triggerAmount))
+ if (!victim || !victim->IsAlive() || !roll_chance_i(triggerAmount))
return false;
// Remove any stun effect on target
@@ -5664,7 +5674,7 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere
// Glyph of Sunder Armor
if (dummySpell->Id == 58387)
{
- if (!victim || !victim->isAlive() || !procSpell)
+ if (!victim || !victim->IsAlive() || !procSpell)
return false;
target = SelectNearbyTarget(victim);
@@ -5727,12 +5737,6 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere
}
switch (dummySpell->Id)
{
- // Glyph of Shadowflame
- case 63310:
- {
- triggered_spell_id = 63311;
- break;
- }
// Nightfall
case 18094:
case 18095:
@@ -5823,7 +5827,7 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere
// Vampiric Touch
if (dummySpell->SpellFamilyFlags[1] & 0x00000400)
{
- if (!victim || !victim->isAlive())
+ if (!victim || !victim->IsAlive())
return false;
if (effIndex != 0)
@@ -5852,7 +5856,7 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere
// Vampiric Embrace
case 15286:
{
- if (!victim || !victim->isAlive() || procSpell->SpellFamilyFlags[1] & 0x80000)
+ if (!victim || !victim->IsAlive() || procSpell->SpellFamilyFlags[1] & 0x80000)
return false;
// heal amount
@@ -6318,7 +6322,7 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere
{
for (GroupReference* itr = group->GetFirstMember(); itr != NULL; itr = itr->next())
{
- if (Player* member = itr->getSource())
+ if (Player* member = itr->GetSource())
{
// check if it was heal by paladin which casted this beacon of light
if (member->GetAura(53563, victim->GetGUID()))
@@ -6424,7 +6428,7 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere
// Judgement of Wisdom
case 20186:
{
- if (victim && victim->isAlive() && victim->getPowerType() == POWER_MANA)
+ if (victim && victim->IsAlive() && victim->getPowerType() == POWER_MANA)
{
// 2% of base mana
basepoints0 = int32(CalculatePct(victim->GetCreateMana(), 2));
@@ -6588,7 +6592,7 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere
case 71406: // Tiny Abomination in a Jar
case 71545: // Tiny Abomination in a Jar (Heroic)
{
- if (!victim || !victim->isAlive())
+ if (!victim || !victim->IsAlive())
return false;
CastSpell(this, 71432, true, NULL, triggeredByAura);
@@ -6707,7 +6711,7 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere
case 33757:
{
Player* player = ToPlayer();
- if (!player || !castItem || !castItem->IsEquipped() || !victim || !victim->isAlive())
+ if (!player || !castItem || !castItem->IsEquipped() || !victim || !victim->IsAlive())
return false;
// custom cooldown processing case
@@ -6968,7 +6972,7 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere
// Flametongue Weapon (Passive)
if (dummySpell->SpellFamilyFlags[0] & 0x200000)
{
- if (GetTypeId() != TYPEID_PLAYER || !victim || !victim->isAlive() || !castItem || !castItem->IsEquipped())
+ if (GetTypeId() != TYPEID_PLAYER || !victim || !victim->IsAlive() || !castItem || !castItem->IsEquipped())
return false;
WeaponAttackType attType = WeaponAttackType(Player::GetAttackBySlot(castItem->GetSlot()));
@@ -7126,7 +7130,7 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere
// Blood-Caked Strike - Blood-Caked Blade
if (dummySpell->SpellIconID == 138)
{
- if (!target || !target->isAlive())
+ if (!target || !target->IsAlive())
return false;
triggered_spell_id = dummySpell->Effects[effIndex].TriggerSpell;
@@ -7163,11 +7167,11 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere
break;
}
- if (pPet && pPet->getVictim() && damage && procSpell)
+ if (pPet && pPet->GetVictim() && damage && procSpell)
{
uint32 procDmg = damage / 2;
- pPet->SendSpellNonMeleeDamageLog(pPet->getVictim(), procSpell->Id, procDmg, procSpell->GetSchoolMask(), 0, 0, false, 0, false);
- pPet->DealDamage(pPet->getVictim(), procDmg, NULL, SPELL_DIRECT_DAMAGE, procSpell->GetSchoolMask(), procSpell, true);
+ pPet->SendSpellNonMeleeDamageLog(pPet->GetVictim(), procSpell->Id, procDmg, procSpell->GetSchoolMask(), 0, 0, false, 0, false);
+ pPet->DealDamage(pPet->GetVictim(), procDmg, NULL, SPELL_DIRECT_DAMAGE, procSpell->GetSchoolMask(), procSpell, true);
break;
}
else
@@ -7478,7 +7482,7 @@ bool Unit::HandleAuraProc(Unit* victim, uint32 damage, Aura* triggeredByAura, Sp
case SPELLFAMILY_PALADIN:
{
// Infusion of Light
- if (dummySpell->SpellIconID == 3021)
+ if (procSpell && dummySpell->SpellIconID == 3021)
{
// Flash of Light HoT on Flash of Light when Sacred Shield active
if (procSpell->SpellFamilyFlags[0] & 0x40000000 && procSpell->SpellIconID == 242)
@@ -7509,6 +7513,8 @@ bool Unit::HandleAuraProc(Unit* victim, uint32 damage, Aura* triggeredByAura, Sp
// Glyph of Divinity
else if (dummySpell->Id == 54939)
{
+ if (!procSpell)
+ return false;
*handled = true;
// Check if we are the target and prevent mana gain
if (victim && triggeredByAura->GetCasterGUID() == victim->GetGUID())
@@ -7704,12 +7710,6 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg
case SPELLFAMILY_GENERIC:
switch (auraSpellInfo->Id)
{
- case 23780: // Aegis of Preservation (Aegis of Preservation trinket)
- trigger_spell_id = 23781;
- break;
- case 33896: // Desperate Defense (Stonescythe Whelp, Stonescythe Alpha, Stonescythe Ambusher)
- trigger_spell_id = 33898;
- break;
case 43820: // Charm of the Witch Doctor (Amani Charm of the Witch Doctor trinket)
// Pct value stored in dummy
basepoints0 = victim->GetCreateHealth() * auraSpellInfo->Effects[1].CalcValue() / 100;
@@ -7760,9 +7760,9 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg
case 40336:
{
// On successful melee or ranged attack gain $29471s1 mana and if possible drain $27526s1 mana from the target.
- if (isAlive())
+ if (IsAlive())
CastSpell(this, 29471, true, castItem, triggeredByAura);
- if (victim && victim->isAlive())
+ if (victim && victim->IsAlive())
CastSpell(victim, 27526, true, castItem, triggeredByAura);
return true;
}
@@ -7792,14 +7792,6 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg
}
}
break;
- case SPELLFAMILY_WARRIOR:
- if (auraSpellInfo->Id == 50421) // Scent of Blood
- {
- CastSpell(this, 50422, true);
- RemoveAuraFromStack(auraSpellInfo->Id);
- return false;
- }
- break;
case SPELLFAMILY_WARLOCK:
{
// Drain Soul
@@ -7845,11 +7837,8 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg
}
case SPELLFAMILY_PRIEST:
{
- // Greater Heal Refund
- if (auraSpellInfo->Id == 37594)
- trigger_spell_id = 37595;
// Blessed Recovery
- else if (auraSpellInfo->SpellIconID == 1875)
+ if (auraSpellInfo->SpellIconID == 1875)
{
switch (auraSpellInfo->Id)
{
@@ -7941,13 +7930,6 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg
{
switch (auraSpellInfo->Id)
{
- // Healing Discount
- case 37705:
- {
- trigger_spell_id = 37706;
- target = this;
- break;
- }
// Soul Preserver
case 60510:
{
@@ -7975,7 +7957,7 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg
case 67712: // Item - Coliseum 25 Normal Caster Trinket
case 67758: // Item - Coliseum 25 Heroic Caster Trinket
{
- if (!victim || !victim->isAlive() || GetTypeId() != TYPEID_PLAYER)
+ if (!victim || !victim->IsAlive() || GetTypeId() != TYPEID_PLAYER)
return false;
uint32 stack_spell_id = 0;
@@ -8054,29 +8036,6 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg
{
switch (auraSpellInfo->Id)
{
- // Lightning Shield (The Ten Storms set)
- case 23551:
- {
- trigger_spell_id = 23552;
- target = victim;
- break;
- }
- // Damage from Lightning Shield (The Ten Storms set)
- case 23552:
- {
- trigger_spell_id = 27635;
- break;
- }
- // Mana Surge (The Earthfury set)
- case 23572:
- {
- if (!procSpell)
- return false;
- basepoints0 = int32(CalculatePct(procSpell->ManaCost, 35));
- trigger_spell_id = 23571;
- target = this;
- break;
- }
case 30881: // Nature's Guardian Rank 1
case 30883: // Nature's Guardian Rank 2
case 30884: // Nature's Guardian Rank 3
@@ -8108,7 +8067,7 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg
if (!HealthBelowPctDamaged(30, damage))
return false;
- if (victim && victim->isAlive())
+ if (victim && victim->IsAlive())
victim->getThreatManager().modifyThreatPercent(this, -10);
basepoints0 = int32(CountPctFromMaxHealth(triggerAmount));
@@ -8266,7 +8225,7 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg
case 31255:
{
// whenever you deal damage to a target who is below 20% health.
- if (!victim || !victim->isAlive() || victim->HealthAbovePct(20))
+ if (!victim || !victim->IsAlive() || victim->HealthAbovePct(20))
return false;
target = this;
@@ -8275,7 +8234,7 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg
// Greater Heal Refund (Avatar Raiment set)
case 37594:
{
- if (!victim || !victim->isAlive())
+ if (!victim || !victim->IsAlive())
return false;
// Doesn't proc if target already has full health
@@ -8290,7 +8249,7 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg
case 40971:
{
// If your target is below $s1% health
- if (!victim || !victim->isAlive() || victim->HealthAbovePct(triggerAmount))
+ if (!victim || !victim->IsAlive() || victim->HealthAbovePct(triggerAmount))
return false;
break;
}
@@ -8440,7 +8399,7 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg
case 48090:
{
// Get talent aura from owner
- if (isPet())
+ if (IsPet())
if (Unit* owner = GetOwner())
{
if (AuraEffect* aurEff = owner->GetDummyAuraEffect(SPELLFAMILY_WARLOCK, 3220, 0))
@@ -8585,7 +8544,7 @@ bool Unit::HandleOverrideClassScriptAuraProc(Unit* victim, uint32 /*damage*/, Au
{
int32 scriptId = triggeredByAura->GetMiscValue();
- if (!victim || !victim->isAlive())
+ if (!victim || !victim->IsAlive())
return false;
Item* castItem = triggeredByAura->GetBase()->GetCastItemGUID() && GetTypeId() == TYPEID_PLAYER
@@ -8725,7 +8684,7 @@ void Unit::setPowerType(Powers new_powertype)
}
}
-FactionTemplateEntry const* Unit::getFactionTemplateEntry() const
+FactionTemplateEntry const* Unit::GetFactionTemplateEntry() const
{
FactionTemplateEntry const* entry = sFactionTemplateStore.LookupEntry(getFaction());
if (!entry)
@@ -8779,7 +8738,7 @@ ReputationRank Unit::GetReactionTo(Unit const* target) const
if (selfPlayerOwner->IsInRaidWith(targetPlayerOwner))
return REP_FRIENDLY; // return true to allow config option AllowTwoSide.Interaction.Group to work
// however client seems to allow mixed group parties, because in 13850 client it works like:
- // return GetFactionReactionTo(getFactionTemplateEntry(), target);
+ // return GetFactionReactionTo(GetFactionTemplateEntry(), target);
}
// check FFA_PVP
@@ -8789,7 +8748,7 @@ ReputationRank Unit::GetReactionTo(Unit const* target) const
if (selfPlayerOwner)
{
- if (FactionTemplateEntry const* targetFactionTemplateEntry = target->getFactionTemplateEntry())
+ if (FactionTemplateEntry const* targetFactionTemplateEntry = target->GetFactionTemplateEntry())
{
if (ReputationRank const* repRank = selfPlayerOwner->GetReputationMgr().GetForcedRankIfAny(targetFactionTemplateEntry))
return *repRank;
@@ -8816,7 +8775,7 @@ ReputationRank Unit::GetReactionTo(Unit const* target) const
}
}
// do checks dependant only on our faction
- return GetFactionReactionTo(getFactionTemplateEntry(), target);
+ return GetFactionReactionTo(GetFactionTemplateEntry(), target);
}
ReputationRank Unit::GetFactionReactionTo(FactionTemplateEntry const* factionTemplateEntry, Unit const* target)
@@ -8825,7 +8784,7 @@ ReputationRank Unit::GetFactionReactionTo(FactionTemplateEntry const* factionTem
if (!factionTemplateEntry)
return REP_NEUTRAL;
- FactionTemplateEntry const* targetFactionTemplateEntry = target->getFactionTemplateEntry();
+ FactionTemplateEntry const* targetFactionTemplateEntry = target->GetFactionTemplateEntry();
if (!targetFactionTemplateEntry)
return REP_NEUTRAL;
@@ -8878,7 +8837,7 @@ bool Unit::IsFriendlyTo(Unit const* unit) const
bool Unit::IsHostileToPlayers() const
{
- FactionTemplateEntry const* my_faction = getFactionTemplateEntry();
+ FactionTemplateEntry const* my_faction = GetFactionTemplateEntry();
if (!my_faction || !my_faction->faction)
return false;
@@ -8891,7 +8850,7 @@ bool Unit::IsHostileToPlayers() const
bool Unit::IsNeutralToAll() const
{
- FactionTemplateEntry const* my_faction = getFactionTemplateEntry();
+ FactionTemplateEntry const* my_faction = GetFactionTemplateEntry();
if (!my_faction || !my_faction->faction)
return true;
@@ -8914,8 +8873,8 @@ void Unit::_removeAttacker(Unit* pAttacker)
Unit* Unit::getAttackerForHelper() const // If someone wants to help, who to give them
{
- if (getVictim() != NULL)
- return getVictim();
+ if (GetVictim() != NULL)
+ return GetVictim();
if (!m_attackers.empty())
return *(m_attackers.begin());
@@ -8929,7 +8888,7 @@ bool Unit::Attack(Unit* victim, bool meleeAttack)
return false;
// dead units can neither attack nor be attacked
- if (!isAlive() || !victim->IsInWorld() || !victim->isAlive())
+ if (!IsAlive() || !victim->IsInWorld() || !victim->IsAlive())
return false;
// player cannot attack in mount state
@@ -8939,7 +8898,7 @@ bool Unit::Attack(Unit* victim, bool meleeAttack)
// nobody can attack GM in GM-mode
if (victim->GetTypeId() == TYPEID_PLAYER)
{
- if (victim->ToPlayer()->isGameMaster())
+ if (victim->ToPlayer()->IsGameMaster())
return false;
}
else
@@ -8997,7 +8956,7 @@ bool Unit::Attack(Unit* victim, bool meleeAttack)
//if (GetTypeId() == TYPEID_UNIT)
// ToCreature()->SetCombatStartPosition(GetPositionX(), GetPositionY(), GetPositionZ());
- if (GetTypeId() == TYPEID_UNIT && !ToCreature()->isPet())
+ if (GetTypeId() == TYPEID_UNIT && !ToCreature()->IsPet())
{
// should not let player enter combat by right clicking target - doesn't helps
SetInCombatWith(victim);
@@ -9022,7 +8981,7 @@ bool Unit::Attack(Unit* victim, bool meleeAttack)
{
Pet* playerPet = this->ToPlayer()->GetPet();
- if (playerPet && playerPet->isAlive())
+ if (playerPet && playerPet->IsAlive())
playerPet->AI()->OwnerAttacked(victim);
}
@@ -9256,16 +9215,17 @@ Player* Unit::GetCharmerOrOwnerPlayerOrPlayerItself() const
if (IS_PLAYER_GUID(guid))
return ObjectAccessor::GetPlayer(*this, guid);
- return GetTypeId() == TYPEID_PLAYER ? (Player*)this : NULL;
+ return const_cast<Unit*>(this)->ToPlayer();
}
Player* Unit::GetAffectingPlayer() const
{
if (!GetCharmerOrOwnerGUID())
- return GetTypeId() == TYPEID_PLAYER ? (Player*)this : NULL;
+ return const_cast<Unit*>(this)->ToPlayer();
if (Unit* owner = GetCharmerOrOwner())
return owner->GetCharmerOrOwnerPlayerOrPlayerItself();
+
return NULL;
}
@@ -9353,10 +9313,10 @@ void Unit::SetMinion(Minion *minion, bool apply)
{
if (Guardian* oldPet = GetGuardianPet())
{
- if (oldPet != minion && (oldPet->isPet() || minion->isPet() || oldPet->GetEntry() != minion->GetEntry()))
+ if (oldPet != minion && (oldPet->IsPet() || minion->IsPet() || oldPet->GetEntry() != minion->GetEntry()))
{
// remove existing minion pet
- if (oldPet->isPet())
+ if (oldPet->IsPet())
((Pet*)oldPet)->Remove(PET_SAVE_AS_CURRENT);
else
oldPet->UnSummon();
@@ -9387,7 +9347,7 @@ void Unit::SetMinion(Minion *minion, bool apply)
minion->SetByteValue(UNIT_FIELD_BYTES_2, 1, GetByteValue(UNIT_FIELD_BYTES_2, 1));
// FIXME: hack, speed must be set only at follow
- if (GetTypeId() == TYPEID_PLAYER && minion->isPet())
+ if (GetTypeId() == TYPEID_PLAYER && minion->IsPet())
for (uint8 i = 0; i < MAX_MOVE_TYPE; ++i)
minion->SetSpeed(UnitMoveType(i), m_speed_rate[i], true);
@@ -9425,7 +9385,7 @@ void Unit::SetMinion(Minion *minion, bool apply)
if (GetPetGUID() == minion->GetGUID())
SetPetGUID(0);
}
- else if (minion->isTotem())
+ else if (minion->IsTotem())
{
// All summoned by totem minions must disappear when it is removed.
if (SpellInfo const* spInfo = sSpellMgr->GetSpellInfo(minion->ToTotem()->GetSpell()))
@@ -9475,7 +9435,7 @@ void Unit::SetMinion(Minion *minion, bool apply)
// show another pet bar if there is no charm bar
if (GetTypeId() == TYPEID_PLAYER && !GetCharmGUID())
{
- if ((*itr)->isPet())
+ if ((*itr)->IsPet())
ToPlayer()->PetSpellInitialize();
else
ToPlayer()->CharmSpellInitialize();
@@ -9495,7 +9455,7 @@ void Unit::GetAllMinionsByEntry(std::list<Creature*>& Minions, uint32 entry)
Unit* unit = *itr;
++itr;
if (unit->GetEntry() == entry && unit->GetTypeId() == TYPEID_UNIT
- && unit->ToCreature()->isSummon()) // minion, actually
+ && unit->ToCreature()->IsSummon()) // minion, actually
Minions.push_back(unit->ToCreature());
}
}
@@ -9507,7 +9467,7 @@ void Unit::RemoveAllMinionsByEntry(uint32 entry)
Unit* unit = *itr;
++itr;
if (unit->GetEntry() == entry && unit->GetTypeId() == TYPEID_UNIT
- && unit->ToCreature()->isSummon()) // minion, actually
+ && unit->ToCreature()->IsSummon()) // minion, actually
unit->ToTempSummon()->UnSummon();
// i think this is safe because i have never heard that a despawned minion will trigger a same minion
}
@@ -9604,7 +9564,7 @@ int32 Unit::DealHeal(Unit* victim, uint32 addhealth)
Unit* unit = this;
- if (GetTypeId() == TYPEID_UNIT && ToCreature()->isTotem())
+ if (GetTypeId() == TYPEID_UNIT && ToCreature()->IsTotem())
unit = GetOwner();
if (Player* player = unit->ToPlayer())
@@ -9691,7 +9651,7 @@ void Unit::RemoveAllControlled()
m_Controlled.erase(m_Controlled.begin());
if (target->GetCharmerGUID() == GetGUID())
target->RemoveCharmAuras();
- else if (target->GetOwnerGUID() == GetGUID() && target->isSummon())
+ else if (target->GetOwnerGUID() == GetGUID() && target->IsSummon())
target->ToTempSummon()->UnSummon();
else
TC_LOG_ERROR(LOG_FILTER_UNITS, "Unit %u is trying to release unit %u which is neither charmed nor owned by it", GetEntry(), target->GetEntry());
@@ -9728,7 +9688,7 @@ Unit* Unit::GetNextRandomRaidMemberOrPet(float radius)
if (GetTypeId() == TYPEID_PLAYER)
player = ToPlayer();
// Should we enable this also for charmed units?
- else if (GetTypeId() == TYPEID_UNIT && ToCreature()->isPet())
+ else if (GetTypeId() == TYPEID_UNIT && ToCreature()->IsPet())
player = GetOwner()->ToPlayer();
if (!player)
@@ -9753,15 +9713,15 @@ Unit* Unit::GetNextRandomRaidMemberOrPet(float radius)
nearMembers.reserve(group->GetMembersCount() * 2);
for (GroupReference* itr = group->GetFirstMember(); itr != NULL; itr = itr->next())
- if (Player* Target = itr->getSource())
+ if (Player* Target = itr->GetSource())
{
// IsHostileTo check duel and controlled by enemy
- if (Target != this && Target->isAlive() && IsWithinDistInMap(Target, radius) && !IsHostileTo(Target))
+ if (Target != this && Target->IsAlive() && IsWithinDistInMap(Target, radius) && !IsHostileTo(Target))
nearMembers.push_back(Target);
// Push player's pet to vector
if (Unit* pet = Target->GetGuardianPet())
- if (pet != this && pet->isAlive() && IsWithinDistInMap(pet, radius) && !IsHostileTo(pet))
+ if (pet != this && pet->IsAlive() && IsWithinDistInMap(pet, radius) && !IsHostileTo(pet))
nearMembers.push_back(pet);
}
@@ -9816,7 +9776,7 @@ void Unit::UnsummonAllTotems()
continue;
if (Creature* OldTotem = GetMap()->GetCreature(m_SummonSlot[i]))
- if (OldTotem->isSummon())
+ if (OldTotem->IsSummon())
OldTotem->ToTempSummon()->UnSummon();
}
}
@@ -9883,7 +9843,7 @@ uint32 Unit::SpellDamageBonusDone(Unit* victim, SpellInfo const* spellProto, uin
return pdamage;
// For totems get damage bonus from owner
- if (GetTypeId() == TYPEID_UNIT && ToCreature()->isTotem())
+ if (GetTypeId() == TYPEID_UNIT && ToCreature()->IsTotem())
if (Unit* owner = GetOwner())
return owner->SpellDamageBonusDone(victim, spellProto, pdamage, damagetype);
@@ -9893,7 +9853,7 @@ uint32 Unit::SpellDamageBonusDone(Unit* victim, SpellInfo const* spellProto, uin
int32 DoneTotal = 0;
// Pet damage?
- if (GetTypeId() == TYPEID_UNIT && !ToCreature()->isPet())
+ if (GetTypeId() == TYPEID_UNIT && !ToCreature()->IsPet())
DoneTotalMod *= ToCreature()->GetSpellDamageMod(ToCreature()->GetCreatureTemplate()->rank);
// Some spells don't benefit from pct done mods
@@ -10172,7 +10132,7 @@ uint32 Unit::SpellDamageBonusDone(Unit* victim, SpellInfo const* spellProto, uin
if (HasAura(100001))
DoneTotalMod *= 4;
// Shadow Bite (15% increase from each dot)
- if (spellProto->SpellFamilyFlags[1] & 0x00400000 && isPet())
+ if (spellProto->SpellFamilyFlags[1] & 0x00400000 && IsPet())
if (uint8 count = victim->GetDoTsByCaster(GetOwnerGUID()))
AddPct(DoneTotalMod, 15 * count);
break;
@@ -10441,7 +10401,7 @@ bool Unit::isSpellCrit(Unit* victim, SpellInfo const* spellProto, SpellSchoolMas
{
//! Mobs can't crit with spells. Player Totems can
//! Fire Elemental (from totem) can too - but this part is a hack and needs more research
- if (IS_CREATURE_GUID(GetGUID()) && !(isTotem() && IS_PLAYER_GUID(GetOwnerGUID())) && GetEntry() != 15438)
+ if (IS_CREATURE_GUID(GetGUID()) && !(IsTotem() && IS_PLAYER_GUID(GetOwnerGUID())) && GetEntry() != 15438)
return false;
// not critting spell
@@ -10464,6 +10424,7 @@ bool Unit::isSpellCrit(Unit* victim, SpellInfo const* spellProto, SpellSchoolMas
default:
return false;
}
+ break;
case SPELL_DAMAGE_CLASS_MAGIC:
{
if (schoolMask & SPELL_SCHOOL_MASK_NORMAL)
@@ -10610,6 +10571,7 @@ bool Unit::isSpellCrit(Unit* victim, SpellInfo const* spellProto, SpellSchoolMas
break;
}
}
+ /// Intentional fallback. Calculate critical strike chance for both Ranged and Melee spells
case SPELL_DAMAGE_CLASS_RANGED:
{
if (victim)
@@ -10706,7 +10668,7 @@ uint32 Unit::SpellCriticalHealingBonus(SpellInfo const* spellProto, uint32 damag
uint32 Unit::SpellHealingBonusDone(Unit* victim, SpellInfo const* spellProto, uint32 healamount, DamageEffectType damagetype, uint32 stack) const
{
// For totems get healing bonus from owner (statue isn't totem in fact)
- if (GetTypeId() == TYPEID_UNIT && isTotem())
+ if (GetTypeId() == TYPEID_UNIT && IsTotem())
if (Unit* owner = GetOwner())
return owner->SpellHealingBonusDone(victim, spellProto, healamount, damagetype, stack);
@@ -11625,7 +11587,7 @@ void Unit::Dismount()
}
}
-bool Unit::isServiceProvider() const
+bool Unit::IsServiceProvider() const
{
return HasFlag(UNIT_NPC_FLAGS,
UNIT_NPC_FLAG_VENDOR | UNIT_NPC_FLAG_TRAINER | UNIT_NPC_FLAG_FLIGHTMASTER |
@@ -11663,10 +11625,10 @@ void Unit::CombatStart(Unit* target, bool initialAggro)
if (!target->IsStandState())
target->SetStandState(UNIT_STAND_STATE_STAND);
- if (!target->isInCombat() && target->GetTypeId() != TYPEID_PLAYER
+ if (!target->IsInCombat() && target->GetTypeId() != TYPEID_PLAYER
&& !target->ToCreature()->HasReactState(REACT_PASSIVE) && target->ToCreature()->IsAIEnabled)
{
- if (target->isPet())
+ if (target->IsPet())
target->ToCreature()->AI()->AttackedBy(this); // PetAI has special handler before AttackStart()
else
target->ToCreature()->AI()->AttackStart(this);
@@ -11692,13 +11654,13 @@ void Unit::CombatStart(Unit* target, bool initialAggro)
void Unit::SetInCombatState(bool PvP, Unit* enemy)
{
// only alive units can be in combat
- if (!isAlive())
+ if (!IsAlive())
return;
if (PvP)
m_CombatTimer = 5000;
- if (isInCombat() || HasUnitState(UNIT_STATE_EVADE))
+ if (IsInCombat() || HasUnitState(UNIT_STATE_EVADE))
return;
SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT);
@@ -11722,7 +11684,7 @@ void Unit::SetInCombatState(bool PvP, Unit* enemy)
creature->GetFormation()->MemberAttackStart(creature, enemy);
}
- if (isPet())
+ if (IsPet())
{
UpdateSpeed(MOVE_RUN, true);
UpdateSpeed(MOVE_SWIM, true);
@@ -11755,14 +11717,14 @@ void Unit::ClearInCombat()
if (HasFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_TAPPED))
SetUInt32Value(UNIT_DYNAMIC_FLAGS, creature->GetCreatureTemplate()->dynamicflags);
- if (creature->isPet())
+ if (creature->IsPet())
{
if (Unit* owner = GetOwner())
for (uint8 i = 0; i < MAX_MOVE_TYPE; ++i)
if (owner->GetSpeedRate(UnitMoveType(i)) > GetSpeedRate(UnitMoveType(i)))
SetSpeed(UnitMoveType(i), owner->GetSpeedRate(UnitMoveType(i)), true);
}
- else if (!isCharmed())
+ else if (!IsCharmed())
return;
}
else
@@ -11773,14 +11735,14 @@ void Unit::ClearInCombat()
bool Unit::isTargetableForAttack(bool checkFakeDeath) const
{
- if (!isAlive())
+ if (!IsAlive())
return false;
if (HasFlag(UNIT_FIELD_FLAGS,
UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_IMMUNE_TO_PC))
return false;
- if (GetTypeId() == TYPEID_PLAYER && ToPlayer()->isGameMaster())
+ if (GetTypeId() == TYPEID_PLAYER && ToPlayer()->IsGameMaster())
return false;
return !HasUnitState(UNIT_STATE_UNATTACKABLE) && (!checkFakeDeath || !HasUnitState(UNIT_STATE_DIED));
@@ -11802,7 +11764,7 @@ bool Unit::_IsValidAttackTarget(Unit const* target, SpellInfo const* bySpell, Wo
// can't attack unattackable units or GMs
if (target->HasUnitState(UNIT_STATE_UNATTACKABLE)
- || (target->GetTypeId() == TYPEID_PLAYER && target->ToPlayer()->isGameMaster()))
+ || (target->GetTypeId() == TYPEID_PLAYER && target->ToPlayer()->IsGameMaster()))
return false;
// can't attack own vehicle or passenger
@@ -11811,11 +11773,11 @@ bool Unit::_IsValidAttackTarget(Unit const* target, SpellInfo const* bySpell, Wo
return false;
// can't attack invisible (ignore stealth for aoe spells) also if the area being looked at is from a spell use the dynamic object created instead of the casting unit.
- if ((!bySpell || !(bySpell->AttributesEx6 & SPELL_ATTR6_CAN_TARGET_INVISIBLE)) && (obj ? !obj->canSeeOrDetect(target, bySpell && bySpell->IsAffectingArea()) : !canSeeOrDetect(target, bySpell && bySpell->IsAffectingArea())))
+ if ((!bySpell || !(bySpell->AttributesEx6 & SPELL_ATTR6_CAN_TARGET_INVISIBLE)) && (obj ? !obj->CanSeeOrDetect(target, bySpell && bySpell->IsAffectingArea()) : !CanSeeOrDetect(target, bySpell && bySpell->IsAffectingArea())))
return false;
// can't attack dead
- if ((!bySpell || !bySpell->IsAllowingDeadTarget()) && !target->isAlive())
+ if ((!bySpell || !bySpell->IsAllowingDeadTarget()) && !target->IsAlive())
return false;
// can't attack untargetable
@@ -11857,7 +11819,7 @@ bool Unit::_IsValidAttackTarget(Unit const* target, SpellInfo const* bySpell, Wo
Player const* player = target->GetTypeId() == TYPEID_PLAYER ? target->ToPlayer() : ToPlayer();
Unit const* creature = target->GetTypeId() == TYPEID_UNIT ? target : this;
- if (FactionTemplateEntry const* factionTemplate = creature->getFactionTemplateEntry())
+ if (FactionTemplateEntry const* factionTemplate = creature->GetFactionTemplateEntry())
{
if (!(player->GetReputationMgr().GetForcedRankIfAny(factionTemplate)))
if (FactionEntry const* factionEntry = sFactionStore.LookupEntry(factionTemplate->faction))
@@ -11919,7 +11881,7 @@ bool Unit::_IsValidAssistTarget(Unit const* target, SpellInfo const* bySpell) co
// can't assist unattackable units or GMs
if (target->HasUnitState(UNIT_STATE_UNATTACKABLE)
- || (target->GetTypeId() == TYPEID_PLAYER && target->ToPlayer()->isGameMaster()))
+ || (target->GetTypeId() == TYPEID_PLAYER && target->ToPlayer()->IsGameMaster()))
return false;
// can't assist own vehicle or passenger
@@ -11928,11 +11890,11 @@ bool Unit::_IsValidAssistTarget(Unit const* target, SpellInfo const* bySpell) co
return false;
// can't assist invisible
- if ((!bySpell || !(bySpell->AttributesEx6 & SPELL_ATTR6_CAN_TARGET_INVISIBLE)) && !canSeeOrDetect(target, bySpell && bySpell->IsAffectingArea()))
+ if ((!bySpell || !(bySpell->AttributesEx6 & SPELL_ATTR6_CAN_TARGET_INVISIBLE)) && !CanSeeOrDetect(target, bySpell && bySpell->IsAffectingArea()))
return false;
// can't assist dead
- if ((!bySpell || !bySpell->IsAllowingDeadTarget()) && !target->isAlive())
+ if ((!bySpell || !bySpell->IsAllowingDeadTarget()) && !target->IsAlive())
return false;
// can't assist untargetable
@@ -12003,10 +11965,6 @@ int32 Unit::ModifyHealth(int32 dVal)
if (dVal == 0)
return 0;
- // Part of Evade mechanics. Only track health lost, not gained.
- if (dVal < 0 && GetTypeId() != TYPEID_PLAYER && !isPet())
- SetLastDamagedTime(time(NULL));
-
int32 curHealth = (int32)GetHealth();
int32 val = dVal + curHealth;
@@ -12236,7 +12194,7 @@ void Unit::UpdateSpeed(UnitMoveType mtype, bool forced)
if (GetTypeId() == TYPEID_UNIT)
{
Unit* pOwner = GetCharmerOrOwner();
- if ((isPet() || isGuardian()) && !isInCombat() && pOwner) // Must check for owner or crash on "Tame Beast"
+ if ((IsPet() || IsGuardian()) && !IsInCombat() && pOwner) // Must check for owner or crash on "Tame Beast"
{
// For every yard over 5, increase speed by 0.01
// to help prevent pet from lagging behind and despawning
@@ -12358,7 +12316,7 @@ void Unit::SetSpeed(UnitMoveType mtype, float rate, bool forced)
// and do it only for real sent packets and use run for run/mounted as client expected
++ToPlayer()->m_forced_speed_changes[mtype];
- if (!isInCombat())
+ if (!IsInCombat())
if (Pet* pet = ToPlayer()->GetPet())
pet->SetSpeed(mtype, m_speed_rate[mtype], forced);
}
@@ -12450,7 +12408,7 @@ void Unit::setDeathState(DeathState s)
SetPower(getPowerType(), 0);
// players in instance don't have ZoneScript, but they have InstanceScript
- if (ZoneScript* zoneScript = GetZoneScript() ? GetZoneScript() : (ZoneScript*)GetInstanceScript())
+ if (ZoneScript* zoneScript = GetZoneScript() ? GetZoneScript() : GetInstanceScript())
zoneScript->OnUnitDeath(this);
}
else if (s == JUST_RESPAWNED)
@@ -12471,11 +12429,11 @@ bool Unit::CanHaveThreatList() const
return false;
// only alive units can have threat list
- if (!isAlive() || isDying())
+ if (!IsAlive() || isDying())
return false;
// totems can not have threat list
- if (ToCreature()->isTotem())
+ if (ToCreature()->IsTotem())
return false;
// vehicles can not have threat list
@@ -12525,7 +12483,7 @@ void Unit::TauntApply(Unit* taunter)
{
ASSERT(GetTypeId() == TYPEID_UNIT);
- if (!taunter || (taunter->GetTypeId() == TYPEID_PLAYER && taunter->ToPlayer()->isGameMaster()))
+ if (!taunter || (taunter->GetTypeId() == TYPEID_PLAYER && taunter->ToPlayer()->IsGameMaster()))
return;
if (!CanHaveThreatList())
@@ -12536,7 +12494,7 @@ void Unit::TauntApply(Unit* taunter)
if (creature->HasReactState(REACT_PASSIVE))
return;
- Unit* target = getVictim();
+ Unit* target = GetVictim();
if (target && target == taunter)
return;
@@ -12553,7 +12511,7 @@ void Unit::TauntFadeOut(Unit* taunter)
{
ASSERT(GetTypeId() == TYPEID_UNIT);
- if (!taunter || (taunter->GetTypeId() == TYPEID_PLAYER && taunter->ToPlayer()->isGameMaster()))
+ if (!taunter || (taunter->GetTypeId() == TYPEID_PLAYER && taunter->ToPlayer()->IsGameMaster()))
return;
if (!CanHaveThreatList())
@@ -12564,7 +12522,7 @@ void Unit::TauntFadeOut(Unit* taunter)
if (creature->HasReactState(REACT_PASSIVE))
return;
- Unit* target = getVictim();
+ Unit* target = GetVictim();
if (!target || target != taunter)
return;
@@ -12601,8 +12559,8 @@ Unit* Creature::SelectVictim()
Unit* caster = tauntAuras.back()->GetCaster();
// The last taunt aura caster is alive an we are happy to attack him
- if (caster && caster->isAlive())
- return getVictim();
+ if (caster && caster->IsAlive())
+ return GetVictim();
else if (tauntAuras.size() > 1)
{
// We do not have last taunt aura caster but we have more taunt auras,
@@ -12614,7 +12572,7 @@ Unit* Creature::SelectVictim()
{
--aura;
caster = (*aura)->GetCaster();
- if (caster && canSeeOrDetect(caster, true) && IsValidAttackTarget(caster) && caster->isInAccessiblePlaceFor(ToCreature()))
+ if (caster && CanSeeOrDetect(caster, true) && IsValidAttackTarget(caster) && caster->isInAccessiblePlaceFor(ToCreature()))
{
target = caster;
break;
@@ -12622,7 +12580,7 @@ Unit* Creature::SelectVictim()
} while (aura != tauntAuras.begin());
}
else
- target = getVictim();
+ target = GetVictim();
}
if (CanHaveThreatList())
@@ -12635,17 +12593,17 @@ Unit* Creature::SelectVictim()
{
// We have player pet probably
target = getAttackerForHelper();
- if (!target && isSummon())
+ if (!target && IsSummon())
{
if (Unit* owner = ToTempSummon()->GetOwner())
{
- if (owner->isInCombat())
+ if (owner->IsInCombat())
target = owner->getAttackerForHelper();
if (!target)
{
for (ControlList::const_iterator itr = owner->m_Controlled.begin(); itr != owner->m_Controlled.end(); ++itr)
{
- if ((*itr)->isInCombat())
+ if ((*itr)->IsInCombat())
{
target = (*itr)->getAttackerForHelper();
if (target)
@@ -12659,7 +12617,7 @@ Unit* Creature::SelectVictim()
else
return NULL;
- if (target && _IsTargetAcceptable(target) && canCreatureAttack(target))
+ if (target && _IsTargetAcceptable(target) && CanCreatureAttack(target))
{
SetInFront(target);
return target;
@@ -12679,7 +12637,7 @@ Unit* Creature::SelectVictim()
// Note: creature does not have targeted movement generator but has attacker in this case
for (AttackerSet::const_iterator itr = m_attackers.begin(); itr != m_attackers.end(); ++itr)
{
- if ((*itr) && !canCreatureAttack(*itr) && (*itr)->GetTypeId() != TYPEID_PLAYER
+ if ((*itr) && !CanCreatureAttack(*itr) && (*itr)->GetTypeId() != TYPEID_PLAYER
&& !(*itr)->ToCreature()->HasUnitTypeMask(UNIT_MASK_CONTROLABLE_GUARDIAN))
return NULL;
}
@@ -12693,7 +12651,7 @@ Unit* Creature::SelectVictim()
{
target = SelectNearestTargetInAttackDistance(m_CombatDistance ? m_CombatDistance : ATTACK_DISTANCE);
- if (target && _IsTargetAcceptable(target) && canCreatureAttack(target))
+ if (target && _IsTargetAcceptable(target) && CanCreatureAttack(target))
return target;
}
@@ -12929,13 +12887,13 @@ float Unit::ApplyDiminishingToDuration(DiminishingGroup group, int32 &duration,
return 1.0f;
// test pet/charm masters instead pets/charmeds
- Unit const* targetOwner = GetCharmerOrOwner();
+ Unit const* tarGetOwner = GetCharmerOrOwner();
Unit const* casterOwner = caster->GetCharmerOrOwner();
// Duration of crowd control abilities on pvp target is limited by 10 sec. (2.2.0)
if (limitduration > 0 && duration > limitduration)
{
- Unit const* target = targetOwner ? targetOwner : this;
+ Unit const* target = tarGetOwner ? tarGetOwner : this;
Unit const* source = casterOwner ? casterOwner : caster;
if ((target->GetTypeId() == TYPEID_PLAYER
@@ -12964,7 +12922,7 @@ float Unit::ApplyDiminishingToDuration(DiminishingGroup group, int32 &duration,
}
// Some diminishings applies to mobs too (for example, Stun)
else if ((GetDiminishingReturnsGroupType(group) == DRTYPE_PLAYER
- && ((targetOwner ? (targetOwner->GetTypeId() == TYPEID_PLAYER) : (GetTypeId() == TYPEID_PLAYER))
+ && ((tarGetOwner ? (tarGetOwner->GetTypeId() == TYPEID_PLAYER) : (GetTypeId() == TYPEID_PLAYER))
|| (GetTypeId() == TYPEID_UNIT && ToCreature()->GetCreatureTemplate()->flags_extra & CREATURE_FLAG_EXTRA_ALL_DIMINISH)))
|| GetDiminishingReturnsGroupType(group) == DRTYPE_ALL)
{
@@ -13424,9 +13382,9 @@ uint32 Unit::GetCreatePowers(Powers power) const
{
case POWER_MANA: return GetCreateMana();
case POWER_RAGE: return 1000;
- case POWER_FOCUS: return (GetTypeId() == TYPEID_PLAYER || !((Creature const*)this)->isPet() || ((Pet const*)this)->getPetType() != HUNTER_PET ? 0 : 100);
+ case POWER_FOCUS: return (GetTypeId() == TYPEID_PLAYER || !((Creature const*)this)->IsPet() || ((Pet const*)this)->getPetType() != HUNTER_PET ? 0 : 100);
case POWER_ENERGY: return 100;
- case POWER_HAPPINESS: return (GetTypeId() == TYPEID_PLAYER || !((Creature const*)this)->isPet() || ((Pet const*)this)->getPetType() != HUNTER_PET ? 0 : 1050000);
+ case POWER_HAPPINESS: return (GetTypeId() == TYPEID_PLAYER || !((Creature const*)this)->IsPet() || ((Pet const*)this)->getPetType() != HUNTER_PET ? 0 : 1050000);
case POWER_RUNIC_POWER: return 1000;
case POWER_RUNE: return 0;
case POWER_HEALTH: return 0;
@@ -13531,7 +13489,7 @@ void Unit::UpdateCharmAI()
if (i_disabledAI) // disabled AI must be primary AI
{
- if (!isCharmed())
+ if (!IsCharmed())
{
delete i_AI;
i_AI = i_disabledAI;
@@ -13540,7 +13498,7 @@ void Unit::UpdateCharmAI()
}
else
{
- if (isCharmed())
+ if (IsCharmed())
{
i_disabledAI = i_AI;
if (isPossessed() || IsVehicle())
@@ -14376,13 +14334,14 @@ uint64 Unit::GetCharmerOrOwnerOrOwnGUID() const
Player* Unit::GetSpellModOwner() const
{
- if (GetTypeId() == TYPEID_PLAYER)
- return (Player*)this;
- if (ToCreature()->isPet() || ToCreature()->isTotem())
+ if (Player* player = const_cast<Unit*>(this)->ToPlayer())
+ return player;
+
+ if (ToCreature()->IsPet() || ToCreature()->IsTotem())
{
- Unit* owner = GetOwner();
- if (owner && owner->GetTypeId() == TYPEID_PLAYER)
- return (Player*)owner;
+ if (Unit* owner = GetOwner())
+ if (Player* player = owner->ToPlayer())
+ return player;
}
return NULL;
}
@@ -14508,16 +14467,6 @@ bool Unit::IsPolymorphed() const
void Unit::SetDisplayId(uint32 modelId)
{
SetUInt32Value(UNIT_FIELD_DISPLAYID, modelId);
-
- if (GetTypeId() == TYPEID_UNIT && ToCreature()->isPet())
- {
- Pet* pet = ToPet();
- if (!pet->isControlled())
- return;
- Unit* owner = GetOwner();
- if (owner && (owner->GetTypeId() == TYPEID_PLAYER) && owner->ToPlayer()->GetGroup())
- owner->ToPlayer()->SetGroupUpdateFlag(GROUP_UPDATE_FLAG_PET_MODEL_ID);
- }
}
void Unit::RestoreDisplayId()
@@ -14627,8 +14576,8 @@ Unit* Unit::SelectNearbyTarget(Unit* exclude, float dist) const
VisitNearbyObject(dist, searcher);
// remove current target
- if (getVictim())
- targets.remove(getVictim());
+ if (GetVictim())
+ targets.remove(GetVictim());
if (exclude)
targets.remove(exclude);
@@ -14636,7 +14585,7 @@ Unit* Unit::SelectNearbyTarget(Unit* exclude, float dist) const
// remove not LoS targets
for (std::list<Unit*>::iterator tIter = targets.begin(); tIter != targets.end();)
{
- if (!IsWithinLOSInMap(*tIter) || (*tIter)->isTotem() || (*tIter)->isSpiritService() || (*tIter)->GetCreatureType() == CREATURE_TYPE_CRITTER)
+ if (!IsWithinLOSInMap(*tIter) || (*tIter)->IsTotem() || (*tIter)->IsSpiritService() || (*tIter)->GetCreatureType() == CREATURE_TYPE_CRITTER)
targets.erase(tIter++);
else
++tIter;
@@ -14677,7 +14626,7 @@ void Unit::ApplyCastTimePercentMod(float val, bool apply)
uint32 Unit::GetCastingTimeForBonus(SpellInfo const* spellProto, DamageEffectType damagetype, uint32 CastingTime) const
{
// Not apply this to creature casted spells with casttime == 0
- if (CastingTime == 0 && GetTypeId() == TYPEID_UNIT && !ToCreature()->isPet())
+ if (CastingTime == 0 && GetTypeId() == TYPEID_UNIT && !ToCreature()->IsPet())
return 3500;
if (CastingTime > 7000) CastingTime = 7000;
@@ -14777,7 +14726,7 @@ void Unit::UpdateAuraForGroup(uint8 slot)
player->SetAuraUpdateMaskForRaid(slot);
}
}
- else if (GetTypeId() == TYPEID_UNIT && ToCreature()->isPet())
+ else if (GetTypeId() == TYPEID_UNIT && ToCreature()->IsPet())
{
Pet* pet = ((Pet*)this);
if (pet->isControlled())
@@ -14904,7 +14853,7 @@ Pet* Unit::CreateTamedPetFrom(Creature* creatureTarget, uint32 spell_id)
if (GetTypeId() != TYPEID_PLAYER)
return NULL;
- Pet* pet = new Pet((Player*)this, HUNTER_PET);
+ Pet* pet = new Pet(ToPlayer(), HUNTER_PET);
if (!pet->CreateBaseAtCreature(creatureTarget))
{
@@ -14928,7 +14877,7 @@ Pet* Unit::CreateTamedPetFrom(uint32 creatureEntry, uint32 spell_id)
if (!creatureInfo)
return NULL;
- Pet* pet = new Pet((Player*)this, HUNTER_PET);
+ Pet* pet = new Pet(ToPlayer(), HUNTER_PET);
if (!pet->CreateBaseAtCreatureInfo(creatureInfo, this) || !InitTamedPet(pet, getLevel(), spell_id))
{
@@ -15246,7 +15195,7 @@ void Unit::Kill(Unit* victim, bool durabilityLoss)
}
// Do KILL and KILLED procs. KILL proc is called only for the unit who landed the killing blow (and its owner - for pets and totems) regardless of who tapped the victim
- if (isPet() || isTotem())
+ if (IsPet() || IsTotem())
if (Unit* owner = GetOwner())
owner->ProcDamageAndSpell(victim, PROC_FLAG_KILL, PROC_FLAG_NONE, PROC_EX_NONE, 0);
@@ -15300,7 +15249,7 @@ void Unit::Kill(Unit* victim, bool durabilityLoss)
if (player)
{
Pet* pet = player->GetPet();
- if (pet && pet->isAlive() && pet->isControlled())
+ if (pet && pet->IsAlive() && pet->isControlled())
pet->AI()->KilledUnit(victim);
}
@@ -15337,7 +15286,7 @@ void Unit::Kill(Unit* victim, bool durabilityLoss)
{
TC_LOG_DEBUG(LOG_FILTER_UNITS, "DealDamageNotPlayer");
- if (!creature->isPet())
+ if (!creature->IsPet())
{
creature->DeleteThreatList();
CreatureTemplate const* cInfo = creature->GetCreatureTemplate();
@@ -15404,8 +15353,8 @@ void Unit::Kill(Unit* victim, bool durabilityLoss)
{
if (Battleground* bg = player->GetBattleground())
{
- if (victim->GetTypeId() == TYPEID_PLAYER)
- bg->HandleKillPlayer((Player*)victim, player);
+ if (Player* playerVictim = victim->ToPlayer())
+ bg->HandleKillPlayer(playerVictim, player);
else
bg->HandleKillUnit(victim->ToCreature(), player);
}
@@ -15563,8 +15512,8 @@ void Unit::SetStunned(bool apply)
}
else
{
- if (isAlive() && getVictim())
- SetTarget(getVictim()->GetGUID());
+ if (IsAlive() && GetVictim())
+ SetTarget(GetVictim()->GetGUID());
// don't remove UNIT_FLAG_STUNNED for pet when owner is mounted (disabled pet's interface)
Unit* owner = GetOwner();
@@ -15650,12 +15599,12 @@ void Unit::SetFeared(bool apply)
}
else
{
- if (isAlive())
+ if (IsAlive())
{
if (GetMotionMaster()->GetCurrentMovementGeneratorType() == FLEEING_MOTION_TYPE)
GetMotionMaster()->MovementExpired();
- if (getVictim())
- SetTarget(getVictim()->GetGUID());
+ if (GetVictim())
+ SetTarget(GetVictim()->GetGUID());
}
}
@@ -15672,12 +15621,12 @@ void Unit::SetConfused(bool apply)
}
else
{
- if (isAlive())
+ if (IsAlive())
{
if (GetMotionMaster()->GetCurrentMovementGeneratorType() == CONFUSED_MOTION_TYPE)
GetMotionMaster()->MovementExpired();
- if (getVictim())
- SetTarget(getVictim()->GetGUID());
+ if (GetVictim())
+ SetTarget(GetVictim()->GetGUID());
}
}
@@ -15838,7 +15787,7 @@ bool Unit::SetCharmedBy(Unit* charmer, CharmType type, AuraApplication const* au
void Unit::RemoveCharmedBy(Unit* charmer)
{
- if (!isCharmed())
+ if (!IsCharmed())
return;
if (!charmer)
@@ -15883,7 +15832,7 @@ void Unit::RemoveCharmedBy(Unit* charmer)
{
creature->AIM_Initialize();
- if (creature->AI() && charmer && charmer->isAlive())
+ if (creature->AI() && charmer && charmer->IsAlive())
creature->AI()->AttackStart(charmer);
}
}
@@ -15941,7 +15890,7 @@ void Unit::RemoveCharmedBy(Unit* charmer)
// a guardian should always have charminfo
if (charmer->GetTypeId() == TYPEID_PLAYER && this != charmer->GetFirstControlled())
charmer->ToPlayer()->SendRemoveControlBar();
- else if (GetTypeId() == TYPEID_PLAYER || (GetTypeId() == TYPEID_UNIT && !ToCreature()->isGuardian()))
+ else if (GetTypeId() == TYPEID_PLAYER || (GetTypeId() == TYPEID_UNIT && !ToCreature()->IsGuardian()))
DeleteCharmInfo();
}
@@ -15962,7 +15911,7 @@ void Unit::RestoreFaction()
if (CreatureTemplate const* cinfo = ToCreature()->GetCreatureTemplate()) // normal creature
{
- FactionTemplateEntry const* faction = getFactionTemplateEntry();
+ FactionTemplateEntry const* faction = GetFactionTemplateEntry();
setFaction((faction && faction->friendlyMask & 0x004) ? cinfo->faction_H : cinfo->faction_A);
}
}
@@ -16088,33 +16037,33 @@ void Unit::GetPartyMembers(std::list<Unit*> &TagUnitMap)
for (GroupReference* itr = group->GetFirstMember(); itr != NULL; itr = itr->next())
{
- Player* Target = itr->getSource();
+ Player* Target = itr->GetSource();
// IsHostileTo check duel and controlled by enemy
if (Target && Target->GetSubGroup() == subgroup && !IsHostileTo(Target))
{
- if (Target->isAlive() && IsInMap(Target))
+ if (Target->IsAlive() && IsInMap(Target))
TagUnitMap.push_back(Target);
if (Guardian* pet = Target->GetGuardianPet())
- if (pet->isAlive() && IsInMap(Target))
+ if (pet->IsAlive() && IsInMap(Target))
TagUnitMap.push_back(pet);
}
}
}
else
{
- if (owner->isAlive() && (owner == this || IsInMap(owner)))
+ if (owner->IsAlive() && (owner == this || IsInMap(owner)))
TagUnitMap.push_back(owner);
if (Guardian* pet = owner->GetGuardianPet())
- if (pet->isAlive() && (pet == this || IsInMap(pet)))
+ if (pet->IsAlive() && (pet == this || IsInMap(pet)))
TagUnitMap.push_back(pet);
}
}
bool Unit::IsContestedGuard() const
{
- if (FactionTemplateEntry const* entry = getFactionTemplateEntry())
+ if (FactionTemplateEntry const* entry = GetFactionTemplateEntry())
return entry->IsContestedGuardFaction();
return false;
@@ -16137,7 +16086,7 @@ Aura* Unit::AddAura(uint32 spellId, Unit* target)
if (!spellInfo)
return NULL;
- if (!target->isAlive() && !(spellInfo->Attributes & SPELL_ATTR0_PASSIVE) && !(spellInfo->AttributesEx2 & SPELL_ATTR2_CAN_TARGET_DEAD))
+ if (!target->IsAlive() && !(spellInfo->Attributes & SPELL_ATTR0_PASSIVE) && !(spellInfo->AttributesEx2 & SPELL_ATTR2_CAN_TARGET_DEAD))
return NULL;
return AddAura(spellInfo, MAX_EFFECT_MASK, target);
@@ -16306,14 +16255,14 @@ void Unit::SetPhaseMask(uint32 newPhaseMask, bool update)
RemoveNotOwnSingleTargetAuras(newPhaseMask); // we can lost access to caster or target
// modify hostile references for new phasemask, some special cases deal with hostile references themselves
- if (GetTypeId() == TYPEID_UNIT || (!ToPlayer()->isGameMaster() && !ToPlayer()->GetSession()->PlayerLogout()))
+ if (GetTypeId() == TYPEID_UNIT || (!ToPlayer()->IsGameMaster() && !ToPlayer()->GetSession()->PlayerLogout()))
{
HostileRefManager& refManager = getHostileRefManager();
HostileReference* ref = refManager.getFirst();
while (ref)
{
- if (Unit* unit = ref->getSource()->getOwner())
+ if (Unit* unit = ref->GetSource()->GetOwner())
if (Creature* creature = unit->ToCreature())
refManager.setOnlineOfflineState(creature, creature->InSamePhase(newPhaseMask));
@@ -16368,14 +16317,15 @@ void Unit::UpdateObjectVisibility(bool forced)
void Unit::KnockbackFrom(float x, float y, float speedXY, float speedZ)
{
- Player* player = NULL;
- if (GetTypeId() == TYPEID_PLAYER)
- player = (Player*)this;
- else if (Unit* charmer = GetCharmer())
+ Player* player = ToPlayer();
+ if (!player)
{
- player = charmer->ToPlayer();
- if (player && player->m_mover != this)
- player = NULL;
+ if (Unit* charmer = GetCharmer())
+ {
+ player = charmer->ToPlayer();
+ if (player && player->m_mover != this)
+ player = NULL;
+ }
}
if (!player)
@@ -16404,7 +16354,7 @@ float Unit::GetCombatRatingReduction(CombatRating cr) const
if (Player const* player = ToPlayer())
return player->GetRatingBonusValue(cr);
// Player's pet get resilience from owner
- else if (isPet() && GetOwner())
+ else if (IsPet() && GetOwner())
if (Player* owner = GetOwner()->ToPlayer())
return owner->GetRatingBonusValue(cr);
@@ -16797,12 +16747,9 @@ bool Unit::HandleSpellClick(Unit* clicker, int8 seatId)
result = true;
}
- if (result)
- {
- Creature* creature = ToCreature();
- if (creature && creature->IsAIEnabled)
- creature->AI()->OnSpellClick(clicker);
- }
+ Creature* creature = ToCreature();
+ if (creature && creature->IsAIEnabled)
+ creature->AI()->OnSpellClick(clicker, result);
return result;
}
@@ -16815,34 +16762,28 @@ void Unit::EnterVehicle(Unit* base, int8 seatId)
void Unit::_EnterVehicle(Vehicle* vehicle, int8 seatId, AuraApplication const* aurApp)
{
// Must be called only from aura handler
- if (!isAlive() || GetVehicleKit() == vehicle || vehicle->GetBase()->IsOnVehicle(this))
+ ASSERT(aurApp);
+
+ if (!IsAlive() || GetVehicleKit() == vehicle || vehicle->GetBase()->IsOnVehicle(this))
return;
if (m_vehicle)
{
- if (m_vehicle == vehicle)
- {
- if (seatId >= 0 && seatId != GetTransSeat())
- {
- TC_LOG_DEBUG(LOG_FILTER_VEHICLES, "EnterVehicle: %u leave vehicle %u seat %d and enter %d.", GetEntry(), m_vehicle->GetBase()->GetEntry(), GetTransSeat(), seatId);
- ChangeSeat(seatId);
- }
-
- return;
- }
- else
+ if (m_vehicle != vehicle)
{
TC_LOG_DEBUG(LOG_FILTER_VEHICLES, "EnterVehicle: %u exit %u and enter %u.", GetEntry(), m_vehicle->GetBase()->GetEntry(), vehicle->GetBase()->GetEntry());
ExitVehicle();
}
+ else if (seatId >= 0 && seatId == GetTransSeat())
+ return;
}
- if (aurApp && aurApp->GetRemoveMode())
+ if (aurApp->GetRemoveMode())
return;
if (Player* player = ToPlayer())
{
- if (vehicle->GetBase()->GetTypeId() == TYPEID_PLAYER && player->isInCombat())
+ if (vehicle->GetBase()->GetTypeId() == TYPEID_PLAYER && player->IsInCombat())
{
vehicle->GetBase()->RemoveAura(const_cast<AuraApplication*>(aurApp));
return;
@@ -16864,19 +16805,25 @@ void Unit::ChangeSeat(int8 seatId, bool next)
SeatMap::const_iterator seat = (seatId < 0 ? m_vehicle->GetNextEmptySeat(GetTransSeat(), next) : m_vehicle->Seats.find(seatId));
// The second part of the check will only return true if seatId >= 0. @Vehicle::GetNextEmptySeat makes sure of that.
- if (seat == m_vehicle->Seats.end() || seat->second.Passenger)
+ if (seat == m_vehicle->Seats.end() || !seat->second.IsEmpty())
return;
- // Todo: the functions below could be consolidated and refactored to take
- // SeatMap::const_iterator as parameter, to save redundant map lookups.
- m_vehicle->RemovePassenger(this);
+ AuraEffect* rideVehicleEffect = NULL;
+ AuraEffectList const& vehicleAuras = m_vehicle->GetBase()->GetAuraEffectsByType(SPELL_AURA_CONTROL_VEHICLE);
+ for (AuraEffectList::const_iterator itr = vehicleAuras.begin(); itr != vehicleAuras.end(); ++itr)
+ {
+ if ((*itr)->GetCasterGUID() != GetGUID())
+ continue;
- // Set m_vehicle to NULL before adding passenger as adding new passengers is handled asynchronously
- // and someone may call ExitVehicle again before passenger is added to new seat
- Vehicle* veh = m_vehicle;
- m_vehicle = NULL;
- if (!veh->AddPassenger(this, seatId))
- ASSERT(false);
+ // Make sure there is only one ride vehicle aura on target cast by the unit changing seat
+ ASSERT(!rideVehicleEffect);
+ rideVehicleEffect = *itr;
+ }
+
+ // Unit riding a vehicle must always have control vehicle aura on target
+ ASSERT(rideVehicleEffect);
+
+ rideVehicleEffect->ChangeAmount(seat->first + 1);
}
void Unit::ExitVehicle(Position const* /*exitPosition*/)
@@ -16906,7 +16853,8 @@ void Unit::_ExitVehicle(Position const* exitPosition)
if (!m_vehicle)
return;
- m_vehicle->RemovePassenger(this);
+ // This should be done before dismiss, because there may be some aura removal
+ Vehicle* vehicle = m_vehicle->RemovePassenger(this);
Player* player = ToPlayer();
@@ -16914,10 +16862,6 @@ void Unit::_ExitVehicle(Position const* exitPosition)
if (player && player->duel && player->duel->isMounted)
player->DuelComplete(DUEL_FLED);
- // This should be done before dismiss, because there may be some aura removal
- Vehicle* vehicle = m_vehicle;
- m_vehicle = NULL;
-
SetControlled(false, UNIT_STATE_ROOT); // SMSG_MOVE_FORCE_UNROOT, ~MOVEMENTFLAG_ROOT
Position pos;
@@ -16997,7 +16941,7 @@ void Unit::BuildMovementPacket(ByteBuffer *data) const
*data << uint8 (GetTransSeat());
if (GetExtraUnitMovementFlags() & MOVEMENTFLAG2_INTERPOLATED_MOVEMENT)
- *data << uint32(m_movementInfo.t_time2);
+ *data << uint32(m_movementInfo.transport.time2);
}
// 0x02200000
@@ -17010,10 +16954,10 @@ void Unit::BuildMovementPacket(ByteBuffer *data) const
// 0x00001000
if (GetUnitMovementFlags() & MOVEMENTFLAG_FALLING)
{
- *data << (float)m_movementInfo.j_zspeed;
- *data << (float)m_movementInfo.j_sinAngle;
- *data << (float)m_movementInfo.j_cosAngle;
- *data << (float)m_movementInfo.j_xyspeed;
+ *data << (float)m_movementInfo.jump.zspeed;
+ *data << (float)m_movementInfo.jump.sinAngle;
+ *data << (float)m_movementInfo.jump.cosAngle;
+ *data << (float)m_movementInfo.jump.xyspeed;
}
// 0x04000000
@@ -17021,12 +16965,9 @@ void Unit::BuildMovementPacket(ByteBuffer *data) const
*data << (float)m_movementInfo.splineElevation;
}
-void Unit::SetCanFly(bool apply)
+bool Unit::IsFalling() const
{
- if (apply)
- AddUnitMovementFlag(MOVEMENTFLAG_CAN_FLY);
- else
- RemoveUnitMovementFlag(MOVEMENTFLAG_CAN_FLY);
+ return m_movementInfo.HasMovementFlag(MOVEMENTFLAG_FALLING | MOVEMENTFLAG_FALLING_FAR) || movespline->isFalling();
}
void Unit::NearTeleportTo(float x, float y, float z, float orientation, bool casting /*= false*/)
@@ -17205,9 +17146,9 @@ void Unit::RewardRage(uint32 damage, uint32 weaponSpeedHitFactor, bool attacker)
void Unit::StopAttackFaction(uint32 faction_id)
{
- if (Unit* victim = getVictim())
+ if (Unit* victim = GetVictim())
{
- if (victim->getFactionTemplateEntry()->faction == faction_id)
+ if (victim->GetFactionTemplateEntry()->faction == faction_id)
{
AttackStop();
if (IsNonMeleeSpellCasted(false))
@@ -17222,7 +17163,7 @@ void Unit::StopAttackFaction(uint32 faction_id)
AttackerSet const& attackers = getAttackers();
for (AttackerSet::const_iterator itr = attackers.begin(); itr != attackers.end();)
{
- if ((*itr)->getFactionTemplateEntry()->faction == faction_id)
+ if ((*itr)->GetFactionTemplateEntry()->faction == faction_id)
{
(*itr)->AttackStop();
itr = attackers.begin();
@@ -17270,7 +17211,7 @@ void Unit::OutDebugInfo() const
{
o << "Passenger List: ";
for (SeatMap::iterator itr = GetVehicleKit()->Seats.begin(); itr != GetVehicleKit()->Seats.end(); ++itr)
- if (Unit* passenger = ObjectAccessor::GetUnit(*GetVehicleBase(), itr->second.Passenger))
+ if (Unit* passenger = ObjectAccessor::GetUnit(*GetVehicleBase(), itr->second.Passenger.Guid))
o << passenger->GetGUID() << ", ";
TC_LOG_INFO(LOG_FILTER_UNITS, "%s", o.str().c_str());
}
@@ -17421,103 +17362,109 @@ bool Unit::SetDisableGravity(bool disable, bool /*packetOnly = false*/)
return false;
if (disable)
+ {
AddUnitMovementFlag(MOVEMENTFLAG_DISABLE_GRAVITY);
+ RemoveUnitMovementFlag(MOVEMENTFLAG_FALLING);
+ }
else
+ {
RemoveUnitMovementFlag(MOVEMENTFLAG_DISABLE_GRAVITY);
+ if (!HasUnitMovementFlag(MOVEMENTFLAG_CAN_FLY))
+ {
+ m_movementInfo.SetFallTime(0);
+ AddUnitMovementFlag(MOVEMENTFLAG_FALLING);
+ }
+ }
return true;
}
-bool Unit::SetHover(bool enable)
+bool Unit::SetSwim(bool enable)
{
- if (enable == HasUnitMovementFlag(MOVEMENTFLAG_HOVER))
+ if (enable == HasUnitMovementFlag(MOVEMENTFLAG_SWIMMING))
+ return false;
+
+ if (enable)
+ AddUnitMovementFlag(MOVEMENTFLAG_SWIMMING);
+ else
+ RemoveUnitMovementFlag(MOVEMENTFLAG_SWIMMING);
+
+ return true;
+}
+
+bool Unit::SetCanFly(bool enable)
+{
+ if (enable == HasUnitMovementFlag(MOVEMENTFLAG_CAN_FLY))
return false;
if (enable)
{
- //! No need to check height on ascent
- AddUnitMovementFlag(MOVEMENTFLAG_HOVER);
- if (float hh = GetFloatValue(UNIT_FIELD_HOVERHEIGHT))
- UpdateHeight(GetPositionZ() + hh);
+ AddUnitMovementFlag(MOVEMENTFLAG_CAN_FLY);
+ RemoveUnitMovementFlag(MOVEMENTFLAG_FALLING);
}
else
{
- RemoveUnitMovementFlag(MOVEMENTFLAG_HOVER);
- if (float hh = GetFloatValue(UNIT_FIELD_HOVERHEIGHT))
+ RemoveUnitMovementFlag(MOVEMENTFLAG_CAN_FLY | MOVEMENTFLAG_MASK_MOVING_FLY);
+ if (!IsLevitating())
{
- float newZ = GetPositionZ() - hh;
- UpdateAllowedPositionZ(GetPositionX(), GetPositionY(), newZ);
- UpdateHeight(newZ);
+ m_movementInfo.SetFallTime(0);
+ AddUnitMovementFlag(MOVEMENTFLAG_FALLING);
}
}
return true;
}
-void Unit::SendMovementHover()
+bool Unit::SetWaterWalking(bool enable, bool /*packetOnly = false */)
{
- if (GetTypeId() == TYPEID_PLAYER)
- ToPlayer()->SendMovementSetHover(HasUnitMovementFlag(MOVEMENTFLAG_HOVER));
-
- WorldPacket data(MSG_MOVE_HOVER, 64);
- data.append(GetPackGUID());
- BuildMovementPacket(&data);
- SendMessageToSet(&data, false);
-}
+ if (enable == HasUnitMovementFlag(MOVEMENTFLAG_WATERWALKING))
+ return false;
-void Unit::SendMovementWaterWalking()
-{
- if (GetTypeId() == TYPEID_PLAYER)
- ToPlayer()->SendMovementSetWaterWalking(HasUnitMovementFlag(MOVEMENTFLAG_WATERWALKING));
+ if (enable)
+ AddUnitMovementFlag(MOVEMENTFLAG_WATERWALKING);
+ else
+ RemoveUnitMovementFlag(MOVEMENTFLAG_WATERWALKING);
- WorldPacket data(MSG_MOVE_WATER_WALK, 64);
- data.append(GetPackGUID());
- BuildMovementPacket(&data);
- SendMessageToSet(&data, false);
+ return true;
}
-void Unit::SendMovementFeatherFall()
+bool Unit::SetFeatherFall(bool enable, bool /*packetOnly = false */)
{
- if (GetTypeId() == TYPEID_PLAYER)
- ToPlayer()->SendMovementSetFeatherFall(HasUnitMovementFlag(MOVEMENTFLAG_FALLING_SLOW));
+ if (enable == HasUnitMovementFlag(MOVEMENTFLAG_FALLING_SLOW))
+ return false;
- WorldPacket data(MSG_MOVE_FEATHER_FALL, 64);
- data.append(GetPackGUID());
- BuildMovementPacket(&data);
- SendMessageToSet(&data, false);
-}
+ if (enable)
+ AddUnitMovementFlag(MOVEMENTFLAG_FALLING_SLOW);
+ else
+ RemoveUnitMovementFlag(MOVEMENTFLAG_FALLING_SLOW);
-void Unit::SendMovementGravityChange()
-{
- WorldPacket data(MSG_MOVE_GRAVITY_CHNG, 64);
- data.append(GetPackGUID());
- BuildMovementPacket(&data);
- SendMessageToSet(&data, false);
+ return true;
}
-void Unit::SendMovementCanFlyChange()
+bool Unit::SetHover(bool enable, bool /*packetOnly = false*/)
{
- /*!
- if ( a3->MoveFlags & MOVEMENTFLAG_CAN_FLY )
- {
- v4->MoveFlags |= 0x1000000u;
- result = 1;
- }
- else
+ if (enable == HasUnitMovementFlag(MOVEMENTFLAG_HOVER))
+ return false;
+
+ if (enable)
+ {
+ //! No need to check height on ascent
+ AddUnitMovementFlag(MOVEMENTFLAG_HOVER);
+ if (float hh = GetFloatValue(UNIT_FIELD_HOVERHEIGHT))
+ UpdateHeight(GetPositionZ() + hh);
+ }
+ else
+ {
+ RemoveUnitMovementFlag(MOVEMENTFLAG_HOVER);
+ if (float hh = GetFloatValue(UNIT_FIELD_HOVERHEIGHT))
{
- if ( v4->MoveFlags & MOVEMENTFLAG_FLYING )
- CMovement::DisableFlying(v4);
- v4->MoveFlags &= 0xFEFFFFFFu;
- result = 1;
+ float newZ = GetPositionZ() - hh;
+ UpdateAllowedPositionZ(GetPositionX(), GetPositionY(), newZ);
+ UpdateHeight(newZ);
}
- */
- if (GetTypeId() == TYPEID_PLAYER)
- ToPlayer()->SendMovementSetCanFly(CanFly());
+ }
- WorldPacket data(MSG_MOVE_UPDATE_CAN_FLY, 64);
- data.append(GetPackGUID());
- BuildMovementPacket(&data);
- SendMessageToSet(&data, false);
+ return true;
}
void Unit::SetTarget(uint64 guid)
@@ -17548,7 +17495,7 @@ void Unit::ReleaseFocus(Spell const* focusSpell)
return;
_focusSpell = NULL;
- if (Unit* victim = getVictim())
+ if (Unit* victim = GetVictim())
SetUInt64Value(UNIT_FIELD_TARGET, victim->GetGUID());
else
SetUInt64Value(UNIT_FIELD_TARGET, 0);
@@ -17556,3 +17503,177 @@ void Unit::ReleaseFocus(Spell const* focusSpell)
if (focusSpell->GetSpellInfo()->AttributesEx5 & SPELL_ATTR5_DONT_TURN_DURING_CAST)
ClearUnitState(UNIT_STATE_ROTATING);
}
+
+void Unit::BuildValuesUpdate(uint8 updateType, ByteBuffer* data, Player* target) const
+{
+ if (!target)
+ return;
+
+ ByteBuffer fieldBuffer;
+
+ UpdateMask updateMask;
+ updateMask.SetCount(m_valuesCount);
+
+ uint32* flags = UnitUpdateFieldFlags;
+ uint32 visibleFlag = UF_FLAG_PUBLIC;
+
+ if (target == this)
+ visibleFlag |= UF_FLAG_PRIVATE;
+
+ Player* plr = GetCharmerOrOwnerPlayerOrPlayerItself();
+ if (GetOwnerGUID() == target->GetGUID())
+ visibleFlag |= UF_FLAG_OWNER;
+
+ if (HasFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_SPECIALINFO))
+ if (HasAuraTypeWithCaster(SPELL_AURA_EMPATHY, target->GetGUID()))
+ visibleFlag |= UF_FLAG_SPECIAL_INFO;
+
+ if (plr && plr->IsInSameRaidWith(target))
+ visibleFlag |= UF_FLAG_PARTY_MEMBER;
+
+ Creature const* creature = ToCreature();
+ for (uint16 index = 0; index < m_valuesCount; ++index)
+ {
+ if (_fieldNotifyFlags & flags[index] ||
+ ((flags[index] & visibleFlag) & UF_FLAG_SPECIAL_INFO) ||
+ ((updateType == UPDATETYPE_VALUES ? _changesMask.GetBit(index) : m_uint32Values[index]) && (flags[index] & visibleFlag)) ||
+ (index == UNIT_FIELD_AURASTATE && HasFlag(UNIT_FIELD_AURASTATE, PER_CASTER_AURA_STATE_MASK)))
+ {
+ updateMask.SetBit(index);
+
+ if (index == UNIT_NPC_FLAGS)
+ {
+ uint32 appendValue = m_uint32Values[UNIT_NPC_FLAGS];
+
+ if (creature)
+ if (!target->CanSeeSpellClickOn(creature))
+ appendValue &= ~UNIT_NPC_FLAG_SPELLCLICK;
+
+ fieldBuffer << uint32(appendValue);
+ }
+ else if (index == UNIT_FIELD_AURASTATE)
+ {
+ // Check per caster aura states to not enable using a spell in client if specified aura is not by target
+ fieldBuffer << BuildAuraStateUpdateForTarget(target);
+ }
+ // FIXME: Some values at server stored in float format but must be sent to client in uint32 format
+ else if (index >= UNIT_FIELD_BASEATTACKTIME && index <= UNIT_FIELD_RANGEDATTACKTIME)
+ {
+ // convert from float to uint32 and send
+ fieldBuffer << uint32(m_floatValues[index] < 0 ? 0 : m_floatValues[index]);
+ }
+ // there are some float values which may be negative or can't get negative due to other checks
+ else if ((index >= UNIT_FIELD_NEGSTAT0 && index <= UNIT_FIELD_NEGSTAT4) ||
+ (index >= UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE && index <= (UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE + 6)) ||
+ (index >= UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE && index <= (UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE + 6)) ||
+ (index >= UNIT_FIELD_POSSTAT0 && index <= UNIT_FIELD_POSSTAT4))
+ {
+ fieldBuffer << uint32(m_floatValues[index]);
+ }
+ // Gamemasters should be always able to select units - remove not selectable flag
+ else if (index == UNIT_FIELD_FLAGS)
+ {
+ uint32 appendValue = m_uint32Values[UNIT_FIELD_FLAGS];
+ if (target->IsGameMaster())
+ appendValue &= ~UNIT_FLAG_NOT_SELECTABLE;
+
+ fieldBuffer << uint32(appendValue);
+ }
+ // use modelid_a if not gm, _h if gm for CREATURE_FLAG_EXTRA_TRIGGER creatures
+ else if (index == UNIT_FIELD_DISPLAYID)
+ {
+ uint32 displayId = m_uint32Values[UNIT_FIELD_DISPLAYID];
+ if (creature)
+ {
+ CreatureTemplate const* cinfo = creature->GetCreatureTemplate();
+
+ // this also applies for transform auras
+ if (SpellInfo const* transform = sSpellMgr->GetSpellInfo(getTransForm()))
+ for (uint8 i = 0; i < MAX_SPELL_EFFECTS; ++i)
+ if (transform->Effects[i].IsAura(SPELL_AURA_TRANSFORM))
+ if (CreatureTemplate const* transformInfo = sObjectMgr->GetCreatureTemplate(transform->Effects[i].MiscValue))
+ {
+ cinfo = transformInfo;
+ break;
+ }
+
+ if (cinfo->flags_extra & CREATURE_FLAG_EXTRA_TRIGGER)
+ {
+ if (target->IsGameMaster())
+ {
+ if (cinfo->Modelid1)
+ displayId = cinfo->Modelid1; // Modelid1 is a visible model for gms
+ else
+ displayId = 17519; // world visible trigger's model
+ }
+ else
+ {
+ if (cinfo->Modelid2)
+ displayId = cinfo->Modelid2; // Modelid2 is an invisible model for players
+ else
+ displayId = 11686; // world invisible trigger's model
+ }
+ }
+ }
+
+ fieldBuffer << uint32(displayId);
+ }
+ // hide lootable animation for unallowed players
+ else if (index == UNIT_DYNAMIC_FLAGS)
+ {
+ uint32 dynamicFlags = m_uint32Values[UNIT_DYNAMIC_FLAGS] & ~(UNIT_DYNFLAG_TAPPED | UNIT_DYNFLAG_TAPPED_BY_PLAYER);
+
+ if (creature)
+ {
+ if (creature->hasLootRecipient())
+ {
+ dynamicFlags |= UNIT_DYNFLAG_TAPPED;
+ if (creature->isTappedBy(target))
+ dynamicFlags |= UNIT_DYNFLAG_TAPPED_BY_PLAYER;
+ }
+
+ if (!target->isAllowedToLoot(creature))
+ dynamicFlags &= ~UNIT_DYNFLAG_LOOTABLE;
+ }
+
+ // unit UNIT_DYNFLAG_TRACK_UNIT should only be sent to caster of SPELL_AURA_MOD_STALKED auras
+ if (dynamicFlags & UNIT_DYNFLAG_TRACK_UNIT)
+ if (!HasAuraTypeWithCaster(SPELL_AURA_MOD_STALKED, target->GetGUID()))
+ dynamicFlags &= ~UNIT_DYNFLAG_TRACK_UNIT;
+
+ fieldBuffer << dynamicFlags;
+ }
+ // FG: pretend that OTHER players in own group are friendly ("blue")
+ else if (index == UNIT_FIELD_BYTES_2 || index == UNIT_FIELD_FACTIONTEMPLATE)
+ {
+ if (IsControlledByPlayer() && target != this && sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_GROUP) && IsInRaidWith(target))
+ {
+ FactionTemplateEntry const* ft1 = GetFactionTemplateEntry();
+ FactionTemplateEntry const* ft2 = target->GetFactionTemplateEntry();
+ if (ft1 && ft2 && !ft1->IsFriendlyTo(*ft2))
+ {
+ if (index == UNIT_FIELD_BYTES_2)
+ // Allow targetting opposite faction in party when enabled in config
+ fieldBuffer << (m_uint32Values[UNIT_FIELD_BYTES_2] & ((UNIT_BYTE2_FLAG_SANCTUARY /*| UNIT_BYTE2_FLAG_AURAS | UNIT_BYTE2_FLAG_UNK5*/) << 8)); // this flag is at uint8 offset 1 !!
+ else
+ // pretend that all other HOSTILE players have own faction, to allow follow, heal, rezz (trade wont work)
+ fieldBuffer << uint32(target->getFaction());
+ }
+ else
+ fieldBuffer << m_uint32Values[index];
+ }
+ else
+ fieldBuffer << m_uint32Values[index];
+ }
+ else
+ {
+ // send in current format (float as float, uint32 as uint32)
+ fieldBuffer << m_uint32Values[index];
+ }
+ }
+ }
+
+ *data << uint8(updateMask.GetBlockCount());
+ updateMask.AppendToPacket(data);
+ data->append(fieldBuffer);
+}
diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h
index 67a6fa2a994..56f4e7142a2 100644
--- a/src/server/game/Entities/Unit/Unit.h
+++ b/src/server/game/Entities/Unit/Unit.h
@@ -505,7 +505,6 @@ enum UnitState
UNIT_STATE_POSSESSED = 0x00010000,
UNIT_STATE_CHARGING = 0x00020000,
UNIT_STATE_JUMPING = 0x00040000,
- UNIT_STATE_ONVEHICLE = 0x00080000,
UNIT_STATE_MOVE = 0x00100000,
UNIT_STATE_ROTATING = 0x00200000,
UNIT_STATE_EVADE = 0x00400000,
@@ -515,7 +514,7 @@ enum UnitState
UNIT_STATE_CHASE_MOVE = 0x04000000,
UNIT_STATE_FOLLOW_MOVE = 0x08000000,
UNIT_STATE_IGNORE_PATHFINDING = 0x10000000, // do not use pathfinding in any MovementGenerator
- UNIT_STATE_UNATTACKABLE = (UNIT_STATE_IN_FLIGHT | UNIT_STATE_ONVEHICLE),
+ UNIT_STATE_UNATTACKABLE = UNIT_STATE_IN_FLIGHT,
// for real move using movegen check and stop (except unstoppable flight)
UNIT_STATE_MOVING = UNIT_STATE_ROAMING_MOVE | UNIT_STATE_CONFUSED_MOVE | UNIT_STATE_FLEEING_MOVE | UNIT_STATE_CHASE_MOVE | UNIT_STATE_FOLLOW_MOVE,
UNIT_STATE_CONTROLLED = (UNIT_STATE_CONFUSED | UNIT_STATE_STUNNED | UNIT_STATE_FLEEING),
@@ -629,7 +628,8 @@ enum UnitFlags
UNIT_FLAG_UNK_28 = 0x10000000,
UNIT_FLAG_UNK_29 = 0x20000000, // used in Feing Death spell
UNIT_FLAG_SHEATHE = 0x40000000,
- UNIT_FLAG_UNK_31 = 0x80000000
+ UNIT_FLAG_UNK_31 = 0x80000000,
+ MAX_UNIT_FLAGS = 33
};
// Value masks for UNIT_FIELD_FLAGS_2
@@ -736,8 +736,13 @@ enum MovementFlags
/// @todo if needed: add more flags to this masks that are exclusive to players
MOVEMENTFLAG_MASK_PLAYER_ONLY =
- MOVEMENTFLAG_FLYING
+ MOVEMENTFLAG_FLYING,
+
+ /// Movement flags that have change status opcodes associated for players
+ MOVEMENTFLAG_MASK_HAS_PLAYER_STATUS_OPCODE = MOVEMENTFLAG_DISABLE_GRAVITY | MOVEMENTFLAG_ROOT |
+ MOVEMENTFLAG_CAN_FLY | MOVEMENTFLAG_WATERWALKING | MOVEMENTFLAG_FALLING_SLOW | MOVEMENTFLAG_HOVER
};
+
enum MovementFlags2
{
MOVEMENTFLAG2_NONE = 0x00000000,
@@ -1309,7 +1314,7 @@ class Unit : public WorldObject
void RemoveAllAttackers();
AttackerSet const& getAttackers() const { return m_attackers; }
bool isAttackingPlayer() const;
- Unit* getVictim() const { return m_attacking; }
+ Unit* GetVictim() const { return m_attacking; }
void CombatStop(bool includingCast = false);
void CombatStopWithPets(bool includingCast = false);
@@ -1325,11 +1330,11 @@ class Unit : public WorldObject
uint32 HasUnitTypeMask(uint32 mask) const { return mask & m_unitTypeMask; }
void AddUnitTypeMask(uint32 mask) { m_unitTypeMask |= mask; }
- bool isSummon() const { return m_unitTypeMask & UNIT_MASK_SUMMON; }
- bool isGuardian() const { return m_unitTypeMask & UNIT_MASK_GUARDIAN; }
- bool isPet() const { return m_unitTypeMask & UNIT_MASK_PET; }
- bool isHunterPet() const{ return m_unitTypeMask & UNIT_MASK_HUNTER_PET; }
- bool isTotem() const { return m_unitTypeMask & UNIT_MASK_TOTEM; }
+ bool IsSummon() const { return m_unitTypeMask & UNIT_MASK_SUMMON; }
+ bool IsGuardian() const { return m_unitTypeMask & UNIT_MASK_GUARDIAN; }
+ bool IsPet() const { return m_unitTypeMask & UNIT_MASK_PET; }
+ bool IsHunterPet() const{ return m_unitTypeMask & UNIT_MASK_HUNTER_PET; }
+ bool IsTotem() const { return m_unitTypeMask & UNIT_MASK_TOTEM; }
bool IsVehicle() const { return m_unitTypeMask & UNIT_MASK_VEHICLE; }
uint8 getLevel() const { return uint8(GetUInt32Value(UNIT_FIELD_LEVEL)); }
@@ -1389,7 +1394,7 @@ class Unit : public WorldObject
// faction template id
uint32 getFaction() const { return GetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE); }
void setFaction(uint32 faction) { SetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE, faction); }
- FactionTemplateEntry const* getFactionTemplateEntry() const;
+ FactionTemplateEntry const* GetFactionTemplateEntry() const;
ReputationRank GetReactionTo(Unit const* target) const;
ReputationRank static GetFactionReactionTo(FactionTemplateEntry const* factionTemplateEntry, Unit const* target);
@@ -1488,26 +1493,26 @@ class Unit : public WorldObject
MeleeHitOutcome RollMeleeOutcomeAgainst (const Unit* victim, WeaponAttackType attType) const;
MeleeHitOutcome RollMeleeOutcomeAgainst (const Unit* victim, WeaponAttackType attType, int32 crit_chance, int32 miss_chance, int32 dodge_chance, int32 parry_chance, int32 block_chance) const;
- bool isVendor() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_VENDOR); }
- bool isTrainer() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_TRAINER); }
- bool isQuestGiver() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); }
- bool isGossip() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); }
- bool isTaxi() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_FLIGHTMASTER); }
- bool isGuildMaster() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_PETITIONER); }
- bool isBattleMaster() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_BATTLEMASTER); }
- bool isBanker() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_BANKER); }
- bool isInnkeeper() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_INNKEEPER); }
- bool isSpiritHealer() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPIRITHEALER); }
- bool isSpiritGuide() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPIRITGUIDE); }
- bool isTabardDesigner()const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_TABARDDESIGNER); }
- bool isAuctioner() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_AUCTIONEER); }
- bool isArmorer() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_REPAIR); }
- bool isServiceProvider() const;
- bool isSpiritService() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPIRITHEALER | UNIT_NPC_FLAG_SPIRITGUIDE); }
-
- bool isInFlight() const { return HasUnitState(UNIT_STATE_IN_FLIGHT); }
-
- bool isInCombat() const { return HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT); }
+ bool IsVendor() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_VENDOR); }
+ bool IsTrainer() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_TRAINER); }
+ bool IsQuestGiver() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); }
+ bool IsGossip() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); }
+ bool IsTaxi() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_FLIGHTMASTER); }
+ bool IsGuildMaster() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_PETITIONER); }
+ bool IsBattleMaster() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_BATTLEMASTER); }
+ bool IsBanker() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_BANKER); }
+ bool IsInnkeeper() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_INNKEEPER); }
+ bool IsSpiritHealer() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPIRITHEALER); }
+ bool IsSpiritGuide() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPIRITGUIDE); }
+ bool IsTabardDesigner()const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_TABARDDESIGNER); }
+ bool IsAuctioner() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_AUCTIONEER); }
+ bool IsArmorer() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_REPAIR); }
+ bool IsServiceProvider() const;
+ bool IsSpiritService() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPIRITHEALER | UNIT_NPC_FLAG_SPIRITGUIDE); }
+
+ bool IsInFlight() const { return HasUnitState(UNIT_STATE_IN_FLIGHT); }
+
+ bool IsInCombat() const { return HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT); }
void CombatStart(Unit* target, bool initialAggro = true);
void SetInCombatState(bool PvP, Unit* enemy = NULL);
void SetInCombatWith(Unit* enemy);
@@ -1591,22 +1596,15 @@ class Unit : public WorldObject
//void SendMonsterMove(float NewPosX, float NewPosY, float NewPosZ, uint8 type, uint32 MovementFlags, uint32 Time, Player* player = NULL);
void SendMovementFlagUpdate(bool self = false);
- /*! These methods send the same packet to the client in apply and unapply case.
- The client-side interpretation of this packet depends on the presence of relevant movementflags
- which are sent with movementinfo. Furthermore, these packets are broadcast to nearby players as well
- as the current unit.
- */
- void SendMovementHover();
- void SendMovementFeatherFall();
- void SendMovementWaterWalking();
- void SendMovementGravityChange();
- void SendMovementCanFlyChange();
-
- bool IsLevitating() const { return m_movementInfo.HasMovementFlag(MOVEMENTFLAG_DISABLE_GRAVITY);}
- bool IsWalking() const { return m_movementInfo.HasMovementFlag(MOVEMENTFLAG_WALKING);}
+ bool IsLevitating() const { return m_movementInfo.HasMovementFlag(MOVEMENTFLAG_DISABLE_GRAVITY); }
+ bool IsWalking() const { return m_movementInfo.HasMovementFlag(MOVEMENTFLAG_WALKING); }
virtual bool SetWalk(bool enable);
virtual bool SetDisableGravity(bool disable, bool packetOnly = false);
- virtual bool SetHover(bool enable);
+ virtual bool SetSwim(bool enable);
+ virtual bool SetCanFly(bool enable);
+ virtual bool SetWaterWalking(bool enable, bool packetOnly = false);
+ virtual bool SetFeatherFall(bool enable, bool packetOnly = false);
+ virtual bool SetHover(bool enable, bool packetOnly = false);
void SetInFront(WorldObject const* target);
void SetFacingTo(float ori);
@@ -1621,7 +1619,7 @@ class Unit : public WorldObject
void BuildHeartBeatMsg(WorldPacket* data) const;
- bool isAlive() const { return (m_deathState == ALIVE); }
+ bool IsAlive() const { return (m_deathState == ALIVE); }
bool isDying() const { return (m_deathState == JUST_DIED); }
bool isDead() const { return (m_deathState == DEAD || m_deathState == CORPSE); }
DeathState getDeathState() const { return m_deathState; }
@@ -1644,7 +1642,7 @@ class Unit : public WorldObject
bool IsControlledByPlayer() const { return m_ControlledByPlayer; }
uint64 GetCharmerOrOwnerGUID() const;
uint64 GetCharmerOrOwnerOrOwnGUID() const;
- bool isCharmedOwnedByPlayerOrPlayer() const { return IS_PLAYER_GUID(GetCharmerOrOwnerOrOwnGUID()); }
+ bool IsCharmedOwnedByPlayerOrPlayer() const { return IS_PLAYER_GUID(GetCharmerOrOwnerOrOwnGUID()); }
Player* GetSpellModOwner() const;
@@ -1671,7 +1669,7 @@ class Unit : public WorldObject
Unit* GetFirstControlled() const;
void RemoveAllControlled();
- bool isCharmed() const { return GetCharmerGUID() != 0; }
+ bool IsCharmed() const { return GetCharmerGUID() != 0; }
bool isPossessed() const { return HasUnitState(UNIT_STATE_POSSESSED); }
bool isPossessedByPlayer() const;
bool isPossessing() const;
@@ -1921,7 +1919,7 @@ class Unit : public WorldObject
void UpdateInterruptMask();
uint32 GetDisplayId() const { return GetUInt32Value(UNIT_FIELD_DISPLAYID); }
- void SetDisplayId(uint32 modelId);
+ virtual void SetDisplayId(uint32 modelId);
uint32 GetNativeDisplayId() const { return GetUInt32Value(UNIT_FIELD_NATIVEDISPLAYID); }
void RestoreDisplayId();
void SetNativeDisplayId(uint32 modelId) { SetUInt32Value(UNIT_FIELD_NATIVEDISPLAYID, modelId); }
@@ -2082,15 +2080,16 @@ class Unit : public WorldObject
void RemoveVehicleKit();
Vehicle* GetVehicleKit()const { return m_vehicleKit; }
Vehicle* GetVehicle() const { return m_vehicle; }
+ void SetVehicle(Vehicle* vehicle) { m_vehicle = vehicle; }
bool IsOnVehicle(const Unit* vehicle) const;
Unit* GetVehicleBase() const;
Creature* GetVehicleCreatureBase() const;
- float GetTransOffsetX() const { return m_movementInfo.t_pos.GetPositionX(); }
- float GetTransOffsetY() const { return m_movementInfo.t_pos.GetPositionY(); }
- float GetTransOffsetZ() const { return m_movementInfo.t_pos.GetPositionZ(); }
- float GetTransOffsetO() const { return m_movementInfo.t_pos.GetOrientation(); }
- uint32 GetTransTime() const { return m_movementInfo.t_time; }
- int8 GetTransSeat() const { return m_movementInfo.t_seat; }
+ float GetTransOffsetX() const { return m_movementInfo.transport.pos.GetPositionX(); }
+ float GetTransOffsetY() const { return m_movementInfo.transport.pos.GetPositionY(); }
+ float GetTransOffsetZ() const { return m_movementInfo.transport.pos.GetPositionZ(); }
+ float GetTransOffsetO() const { return m_movementInfo.transport.pos.GetOrientation(); }
+ uint32 GetTransTime() const { return m_movementInfo.transport.time; }
+ int8 GetTransSeat() const { return m_movementInfo.transport.seat; }
uint64 GetTransGUID() const;
/// Returns the transport this unit is on directly (if on vehicle and transport, return vehicle)
TransportBase* GetDirectTransport() const;
@@ -2112,7 +2111,7 @@ class Unit : public WorldObject
bool isTurning() const { return m_movementInfo.HasMovementFlag(MOVEMENTFLAG_MASK_TURNING); }
virtual bool CanFly() const = 0;
bool IsFlying() const { return m_movementInfo.HasMovementFlag(MOVEMENTFLAG_FLYING | MOVEMENTFLAG_DISABLE_GRAVITY); }
- void SetCanFly(bool apply);
+ bool IsFalling() const;
void RewardRage(uint32 damage, uint32 weaponSpeedHitFactor, bool attacker);
@@ -2122,14 +2121,14 @@ class Unit : public WorldObject
virtual bool isBeingLoaded() const { return false;}
bool IsDuringRemoveFromWorld() const {return m_duringRemoveFromWorld;}
- Pet* ToPet() { if (isPet()) return reinterpret_cast<Pet*>(this); else return NULL; }
- Pet const* ToPet() const { if (isPet()) return reinterpret_cast<Pet const*>(this); else return NULL; }
+ Pet* ToPet() { if (IsPet()) return reinterpret_cast<Pet*>(this); else return NULL; }
+ Pet const* ToPet() const { if (IsPet()) return reinterpret_cast<Pet const*>(this); else return NULL; }
- Totem* ToTotem() { if (isTotem()) return reinterpret_cast<Totem*>(this); else return NULL; }
- Totem const* ToTotem() const { if (isTotem()) return reinterpret_cast<Totem const*>(this); else return NULL; }
+ Totem* ToTotem() { if (IsTotem()) return reinterpret_cast<Totem*>(this); else return NULL; }
+ Totem const* ToTotem() const { if (IsTotem()) return reinterpret_cast<Totem const*>(this); else return NULL; }
- TempSummon* ToTempSummon() { if (isSummon()) return reinterpret_cast<TempSummon*>(this); else return NULL; }
- TempSummon const* ToTempSummon() const { if (isSummon()) return reinterpret_cast<TempSummon const*>(this); else return NULL; }
+ TempSummon* ToTempSummon() { if (IsSummon()) return reinterpret_cast<TempSummon*>(this); else return NULL; }
+ TempSummon const* ToTempSummon() const { if (IsSummon()) return reinterpret_cast<TempSummon const*>(this); else return NULL; }
void SetTarget(uint64 guid);
@@ -2147,6 +2146,8 @@ class Unit : public WorldObject
protected:
explicit Unit (bool isWorldObject);
+ void BuildValuesUpdate(uint8 updatetype, ByteBuffer* data, Player* target) const;
+
UnitAI* i_AI, *i_disabledAI;
void _UpdateSpells(uint32 time);
diff --git a/src/server/game/Entities/Vehicle/Vehicle.cpp b/src/server/game/Entities/Vehicle/Vehicle.cpp
index d8965218980..88c9ab203b0 100755
--- a/src/server/game/Entities/Vehicle/Vehicle.cpp
+++ b/src/server/game/Entities/Vehicle/Vehicle.cpp
@@ -62,7 +62,7 @@ Vehicle::~Vehicle()
/// @Uninstall must be called before this.
ASSERT(_status == STATUS_UNINSTALLING);
for (SeatMap::const_iterator itr = Seats.begin(); itr != Seats.end(); ++itr)
- ASSERT(!itr->second.Passenger);
+ ASSERT(itr->second.IsEmpty());
}
/**
@@ -299,7 +299,7 @@ bool Vehicle::HasEmptySeat(int8 seatId) const
SeatMap::const_iterator seat = Seats.find(seatId);
if (seat == Seats.end())
return false;
- return !seat->second.Passenger;
+ return seat->second.IsEmpty();
}
/**
@@ -321,7 +321,7 @@ Unit* Vehicle::GetPassenger(int8 seatId) const
if (seat == Seats.end())
return NULL;
- return ObjectAccessor::GetUnit(*GetBase(), seat->second.Passenger);
+ return ObjectAccessor::GetUnit(*GetBase(), seat->second.Passenger.Guid);
}
/**
@@ -344,7 +344,7 @@ SeatMap::const_iterator Vehicle::GetNextEmptySeat(int8 seatId, bool next) const
if (seat == Seats.end())
return seat;
- while (seat->second.Passenger || (!seat->second.SeatInfo->CanEnterOrExit() && !seat->second.SeatInfo->IsUsableByOverride()))
+ while (!seat->second.IsEmpty() || (!seat->second.SeatInfo->CanEnterOrExit() && !seat->second.SeatInfo->IsUsableByOverride()))
{
if (next)
{
@@ -353,8 +353,9 @@ SeatMap::const_iterator Vehicle::GetNextEmptySeat(int8 seatId, bool next) const
}
else
{
- if (seat-- == Seats.begin())
+ if (seat == Seats.begin())
seat = Seats.end();
+ --seat;
}
// Make sure we don't loop indefinetly
@@ -417,7 +418,7 @@ void Vehicle::InstallAccessory(uint32 entry, int8 seatId, bool minion, uint8 typ
* @author Machiavelli
* @date 17-2-2013
*
- * @param [in,out] The prospective passenger.
+ * @param [in, out] The prospective passenger.
* @param seatId Identifier for the seat. Value of -1 indicates the next available seat.
*
* @return true if it succeeds, false if it fails.
@@ -448,7 +449,7 @@ bool Vehicle::AddPassenger(Unit* unit, int8 seatId)
if (seatId < 0) // no specific seat requirement
{
for (seat = Seats.begin(); seat != Seats.end(); ++seat)
- if (!seat->second.Passenger && (seat->second.SeatInfo->CanEnterOrExit() || seat->second.SeatInfo->IsUsableByOverride()))
+ if (seat->second.IsEmpty() && (seat->second.SeatInfo->CanEnterOrExit() || seat->second.SeatInfo->IsUsableByOverride()))
break;
if (seat == Seats.end()) // no available seat
@@ -471,14 +472,14 @@ bool Vehicle::AddPassenger(Unit* unit, int8 seatId)
e->Seat = seat;
_pendingJoinEvents.push_back(e);
- if (seat->second.Passenger)
+ if (!seat->second.IsEmpty())
{
- Unit* passenger = ObjectAccessor::GetUnit(*GetBase(), seat->second.Passenger);
+ Unit* passenger = ObjectAccessor::GetUnit(*GetBase(), seat->second.Passenger.Guid);
ASSERT(passenger);
passenger->ExitVehicle();
}
- ASSERT(!seat->second.Passenger);
+ ASSERT(seat->second.IsEmpty());
}
return true;
@@ -492,13 +493,13 @@ bool Vehicle::AddPassenger(Unit* unit, int8 seatId)
* @author Machiavelli
* @date 17-2-2013
*
- * @param [in,out] unit The passenger to remove.
+ * @param [in, out] unit The passenger to remove.
*/
-void Vehicle::RemovePassenger(Unit* unit)
+Vehicle* Vehicle::RemovePassenger(Unit* unit)
{
if (unit->GetVehicle() != this)
- return;
+ return NULL;
SeatMap::iterator seat = GetSeatIteratorForPassenger(unit);
ASSERT(seat != Seats.end());
@@ -506,11 +507,14 @@ void Vehicle::RemovePassenger(Unit* unit)
TC_LOG_DEBUG(LOG_FILTER_VEHICLES, "Unit %s exit vehicle entry %u id %u dbguid %u seat %d",
unit->GetName().c_str(), _me->GetEntry(), _vehicleInfo->m_ID, _me->GetGUIDLow(), (int32)seat->first);
- seat->second.Passenger = 0;
if (seat->second.SeatInfo->CanEnterOrExit() && ++UsableSeatNum)
_me->SetFlag(UNIT_NPC_FLAGS, (_me->GetTypeId() == TYPEID_PLAYER ? UNIT_NPC_FLAG_PLAYER_VEHICLE : UNIT_NPC_FLAG_SPELLCLICK));
- unit->ClearUnitState(UNIT_STATE_ONVEHICLE);
+ // Remove UNIT_FLAG_NOT_SELECTABLE if passenger did not have it before entering vehicle
+ if (seat->second.SeatInfo->m_flags & VEHICLE_SEAT_FLAG_PASSENGER_NOT_SELECTABLE && !seat->second.Passenger.IsUnselectable)
+ unit->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+
+ seat->second.Passenger.Reset();
if (_me->GetTypeId() == TYPEID_UNIT && unit->GetTypeId() == TYPEID_PLAYER && seat->second.SeatInfo->m_flags & VEHICLE_SEAT_FLAG_CAN_CONTROL)
_me->RemoveCharmedBy(unit);
@@ -518,9 +522,7 @@ void Vehicle::RemovePassenger(Unit* unit)
if (_me->IsInWorld())
{
unit->RemoveUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT);
- unit->m_movementInfo.t_pos.Relocate(0.0f, 0.0f, 0.0f, 0.0f);
- unit->m_movementInfo.t_time = 0;
- unit->m_movementInfo.t_seat = 0;
+ unit->m_movementInfo.transport.Reset();
}
// only for flyable vehicles
@@ -532,6 +534,9 @@ void Vehicle::RemovePassenger(Unit* unit)
if (GetBase()->GetTypeId() == TYPEID_UNIT)
sScriptMgr->OnRemovePassenger(this, unit);
+
+ unit->SetVehicle(NULL);
+ return this;
}
/**
@@ -550,13 +555,13 @@ void Vehicle::RelocatePassengers()
// not sure that absolute position calculation is correct, it must depend on vehicle pitch angle
for (SeatMap::const_iterator itr = Seats.begin(); itr != Seats.end(); ++itr)
{
- if (Unit* passenger = ObjectAccessor::GetUnit(*GetBase(), itr->second.Passenger))
+ if (Unit* passenger = ObjectAccessor::GetUnit(*GetBase(), itr->second.Passenger.Guid))
{
ASSERT(passenger->IsInWorld());
float px, py, pz, po;
- passenger->m_movementInfo.t_pos.GetPosition(px, py, pz, po);
- CalculatePassengerPosition(px, py, pz, po);
+ passenger->m_movementInfo.transport.pos.GetPosition(px, py, pz, po);
+ CalculatePassengerPosition(px, py, pz, &po);
passenger->UpdatePosition(px, py, pz, po);
}
}
@@ -576,7 +581,7 @@ void Vehicle::RelocatePassengers()
bool Vehicle::IsVehicleInUse() const
{
for (SeatMap::const_iterator itr = Seats.begin(); itr != Seats.end(); ++itr)
- if (itr->second.Passenger)
+ if (!itr->second.IsEmpty())
return true;
return false;
@@ -615,7 +620,7 @@ void Vehicle::InitMovementInfoForBase()
* @author Machiavelli
* @date 17-2-2013
*
- * @param [in,out] The passenger for which we check the seat info.
+ * @param [in, out] The passenger for which we check the seat info.
*
* @return null if passenger not found on vehicle, else the DBC record for the seat.
*/
@@ -623,7 +628,7 @@ void Vehicle::InitMovementInfoForBase()
VehicleSeatEntry const* Vehicle::GetSeatForPassenger(Unit const* passenger) const
{
for (SeatMap::const_iterator itr = Seats.begin(); itr != Seats.end(); ++itr)
- if (itr->second.Passenger == passenger->GetGUID())
+ if (itr->second.Passenger.Guid == passenger->GetGUID())
return itr->second.SeatInfo;
return NULL;
@@ -637,7 +642,7 @@ VehicleSeatEntry const* Vehicle::GetSeatForPassenger(Unit const* passenger) cons
* @author Machiavelli
* @date 17-2-2013
*
- * @param [in,out] passenger Passenger to look up.
+ * @param [in, out] passenger Passenger to look up.
*
* @return The seat iterator for specified passenger if it's found on the vehicle. Otherwise Seats.end() (invalid iterator).
*/
@@ -646,7 +651,7 @@ SeatMap::iterator Vehicle::GetSeatIteratorForPassenger(Unit* passenger)
{
SeatMap::iterator itr;
for (itr = Seats.begin(); itr != Seats.end(); ++itr)
- if (itr->second.Passenger == passenger->GetGUID())
+ if (itr->second.Passenger.Guid == passenger->GetGUID())
return itr;
return Seats.end();
@@ -668,30 +673,34 @@ uint8 Vehicle::GetAvailableSeatCount() const
uint8 ret = 0;
SeatMap::const_iterator itr;
for (itr = Seats.begin(); itr != Seats.end(); ++itr)
- if (!itr->second.Passenger && (itr->second.SeatInfo->CanEnterOrExit() || itr->second.SeatInfo->IsUsableByOverride()))
+ if (itr->second.IsEmpty() && (itr->second.SeatInfo->CanEnterOrExit() || itr->second.SeatInfo->IsUsableByOverride()))
++ret;
return ret;
}
-void Vehicle::CalculatePassengerPosition(float& x, float& y, float& z, float& o) const
+void Vehicle::CalculatePassengerPosition(float& x, float& y, float& z, float* o /*= NULL*/) const
{
- float inx = x, iny = y, inz = z, ino = o;
- o = GetBase()->GetOrientation() + ino;
+ float inx = x, iny = y, inz = z;
+ if (o)
+ *o = Position::NormalizeOrientation(GetBase()->GetOrientation() + *o);
+
x = GetBase()->GetPositionX() + inx * std::cos(GetBase()->GetOrientation()) - iny * std::sin(GetBase()->GetOrientation());
y = GetBase()->GetPositionY() + iny * std::cos(GetBase()->GetOrientation()) + inx * std::sin(GetBase()->GetOrientation());
z = GetBase()->GetPositionZ() + inz;
}
-void Vehicle::CalculatePassengerOffset(float& x, float& y, float& z, float& o) const
+void Vehicle::CalculatePassengerOffset(float& x, float& y, float& z, float* o /*= NULL*/) const
{
- o -= GetBase()->GetOrientation();
+ if (o)
+ *o = Position::NormalizeOrientation(*o - GetBase()->GetOrientation());
+
z -= GetBase()->GetPositionZ();
y -= GetBase()->GetPositionY(); // y = searchedY * std::cos(o) + searchedX * std::sin(o)
x -= GetBase()->GetPositionX(); // x = searchedX * std::cos(o) + searchedY * std::sin(o + pi)
float inx = x, iny = y;
- y = (iny - inx * tan(GetBase()->GetOrientation())) / (cos(GetBase()->GetOrientation()) + std::sin(GetBase()->GetOrientation()) * tan(GetBase()->GetOrientation()));
- x = (inx + iny * tan(GetBase()->GetOrientation())) / (cos(GetBase()->GetOrientation()) + std::sin(GetBase()->GetOrientation()) * tan(GetBase()->GetOrientation()));
+ y = (iny - inx * std::tan(GetBase()->GetOrientation())) / (std::cos(GetBase()->GetOrientation()) + std::sin(GetBase()->GetOrientation()) * std::tan(GetBase()->GetOrientation()));
+ x = (inx + iny * std::tan(GetBase()->GetOrientation())) / (std::cos(GetBase()->GetOrientation()) + std::sin(GetBase()->GetOrientation()) * std::tan(GetBase()->GetOrientation()));
}
/**
@@ -797,9 +806,11 @@ bool VehicleJoinEvent::Execute(uint64, uint32)
ASSERT(Target->GetBase()->HasAuraTypeWithCaster(SPELL_AURA_CONTROL_VEHICLE, Passenger->GetGUID()));
Target->RemovePendingEventsForSeat(Seat->first);
+ Target->RemovePendingEventsForPassenger(Passenger);
- Passenger->m_vehicle = Target;
- Seat->second.Passenger = Passenger->GetGUID();
+ Passenger->SetVehicle(Target);
+ Seat->second.Passenger.Guid = Passenger->GetGUID();
+ Seat->second.Passenger.IsUnselectable = Passenger->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
if (Seat->second.SeatInfo->CanEnterOrExit())
{
ASSERT(Target->UsableSeatNum);
@@ -829,15 +840,15 @@ bool VehicleJoinEvent::Execute(uint64, uint32)
player->UnsummonPetTemporaryIfAny();
}
- if (Seat->second.SeatInfo->m_flags && !(Seat->second.SeatInfo->m_flags & VEHICLE_SEAT_FLAG_ALLOW_TURNING))
- Passenger->AddUnitState(UNIT_STATE_ONVEHICLE);
+ if (Seat->second.SeatInfo->m_flags & VEHICLE_SEAT_FLAG_PASSENGER_NOT_SELECTABLE)
+ Passenger->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
Passenger->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT);
VehicleSeatEntry const* veSeat = Seat->second.SeatInfo;
- Passenger->m_movementInfo.t_pos.Relocate(veSeat->m_attachmentOffsetX, veSeat->m_attachmentOffsetY, veSeat->m_attachmentOffsetZ);
- Passenger->m_movementInfo.t_time = 0; // 1 for player
- Passenger->m_movementInfo.t_seat = Seat->first;
- Passenger->m_movementInfo.t_guid = Target->GetBase()->GetGUID();
+ Passenger->m_movementInfo.transport.pos.Relocate(veSeat->m_attachmentOffsetX, veSeat->m_attachmentOffsetY, veSeat->m_attachmentOffsetZ);
+ Passenger->m_movementInfo.transport.time = 0;
+ Passenger->m_movementInfo.transport.seat = Seat->first;
+ Passenger->m_movementInfo.transport.guid = Target->GetBase()->GetGUID();
if (Target->GetBase()->GetTypeId() == TYPEID_UNIT && Passenger->GetTypeId() == TYPEID_PLAYER &&
Seat->second.SeatInfo->m_flags & VEHICLE_SEAT_FLAG_CAN_CONTROL)
diff --git a/src/server/game/Entities/Vehicle/Vehicle.h b/src/server/game/Entities/Vehicle/Vehicle.h
index 3e4a2fd3a78..9fb1b6614b5 100644
--- a/src/server/game/Entities/Vehicle/Vehicle.h
+++ b/src/server/game/Entities/Vehicle/Vehicle.h
@@ -59,7 +59,7 @@ class Vehicle : public TransportBase
bool AddPassenger(Unit* passenger, int8 seatId = -1);
void EjectPassenger(Unit* passenger, Unit* controller);
- void RemovePassenger(Unit* passenger);
+ Vehicle* RemovePassenger(Unit* passenger);
void RelocatePassengers();
void RemoveAllPassengers();
bool IsVehicleInUse() const;
@@ -89,10 +89,10 @@ class Vehicle : public TransportBase
void InitMovementInfoForBase();
/// This method transforms supplied transport offsets into global coordinates
- void CalculatePassengerPosition(float& x, float& y, float& z, float& o) const;
+ void CalculatePassengerPosition(float& x, float& y, float& z, float* o = NULL) const;
/// This method transforms supplied global coordinates into local offsets
- void CalculatePassengerOffset(float& x, float& y, float& z, float& o) const;
+ void CalculatePassengerOffset(float& x, float& y, float& z, float* o = NULL) const;
void RemovePendingEvent(VehicleJoinEvent* e);
void RemovePendingEventsForSeat(int8 seatId);
diff --git a/src/server/game/Entities/Vehicle/VehicleDefines.h b/src/server/game/Entities/Vehicle/VehicleDefines.h
index b02448b2d96..ce922b550c1 100644
--- a/src/server/game/Entities/Vehicle/VehicleDefines.h
+++ b/src/server/game/Entities/Vehicle/VehicleDefines.h
@@ -53,11 +53,29 @@ enum VehicleSpells
VEHICLE_SPELL_PARACHUTE = 45472
};
+struct PassengerInfo
+{
+ uint64 Guid;
+ bool IsUnselectable;
+
+ void Reset()
+ {
+ Guid = 0;
+ IsUnselectable = false;
+ }
+};
+
struct VehicleSeat
{
- explicit VehicleSeat(VehicleSeatEntry const* seatInfo) : SeatInfo(seatInfo), Passenger(0) {}
+ explicit VehicleSeat(VehicleSeatEntry const* seatInfo) : SeatInfo(seatInfo)
+ {
+ Passenger.Reset();
+ }
+
+ bool IsEmpty() const { return !Passenger.Guid; }
+
VehicleSeatEntry const* SeatInfo;
- uint64 Passenger;
+ PassengerInfo Passenger;
};
struct VehicleAccessory
@@ -83,10 +101,10 @@ protected:
public:
/// This method transforms supplied transport offsets into global coordinates
- virtual void CalculatePassengerPosition(float& x, float& y, float& z, float& o) const = 0;
+ virtual void CalculatePassengerPosition(float& x, float& y, float& z, float* o = NULL) const = 0;
/// This method transforms supplied global coordinates into local offsets
- virtual void CalculatePassengerOffset(float& x, float& y, float& z, float& o) const = 0;
+ virtual void CalculatePassengerOffset(float& x, float& y, float& z, float* o = NULL) const = 0;
};
#endif
diff --git a/src/server/game/Events/GameEventMgr.cpp b/src/server/game/Events/GameEventMgr.cpp
index 7213a807168..0d59b7fa2f4 100644
--- a/src/server/game/Events/GameEventMgr.cpp
+++ b/src/server/game/Events/GameEventMgr.cpp
@@ -272,10 +272,7 @@ void GameEventMgr::LoadFromDB()
QueryResult result = CharacterDatabase.Query("SELECT eventEntry, state, next_start FROM game_event_save");
if (!result)
- {
TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, ">> Loaded 0 game event saves in game events. DB table `game_event_save` is empty.");
-
- }
else
{
uint32 count = 0;
@@ -318,10 +315,7 @@ void GameEventMgr::LoadFromDB()
// 0 1
QueryResult result = WorldDatabase.Query("SELECT eventEntry, prerequisite_event FROM game_event_prerequisite");
if (!result)
- {
TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, ">> Loaded 0 game event prerequisites in game events. DB table `game_event_prerequisite` is empty.");
-
- }
else
{
uint32 count = 0;
@@ -366,15 +360,11 @@ void GameEventMgr::LoadFromDB()
{
uint32 oldMSTime = getMSTime();
- // 0 1
- QueryResult result = WorldDatabase.Query("SELECT creature.guid, game_event_creature.eventEntry FROM creature"
- " JOIN game_event_creature ON creature.guid = game_event_creature.guid");
+ // 0 1
+ QueryResult result = WorldDatabase.Query("SELECT guid, eventEntry FROM game_event_creature");
if (!result)
- {
TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, ">> Loaded 0 creatures in game events. DB table `game_event_creature` is empty");
-
- }
else
{
uint32 count = 0;
@@ -387,6 +377,13 @@ void GameEventMgr::LoadFromDB()
int32 internal_event_id = mGameEvent.size() + event_id - 1;
+ CreatureData const* data = sObjectMgr->GetCreatureData(guid);
+ if (!data)
+ {
+ TC_LOG_ERROR(LOG_FILTER_SQL, "`game_event_creature` contains creature (GUID: %u) not found in `creature` table.", guid);
+ continue;
+ }
+
if (internal_event_id < 0 || internal_event_id >= int32(mGameEventCreatureGuids.size()))
{
TC_LOG_ERROR(LOG_FILTER_SQL, "`game_event_creature` game event id (%i) is out of range compared to max event id in `game_event`", event_id);
@@ -409,15 +406,11 @@ void GameEventMgr::LoadFromDB()
{
uint32 oldMSTime = getMSTime();
- // 0 1
- QueryResult result = WorldDatabase.Query("SELECT gameobject.guid, game_event_gameobject.eventEntry FROM gameobject"
- " JOIN game_event_gameobject ON gameobject.guid=game_event_gameobject.guid");
+ // 0 1
+ QueryResult result = WorldDatabase.Query("SELECT guid, eventEntry FROM game_event_gameobject");
if (!result)
- {
TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, ">> Loaded 0 gameobjects in game events. DB table `game_event_gameobject` is empty.");
-
- }
else
{
uint32 count = 0;
@@ -430,6 +423,13 @@ void GameEventMgr::LoadFromDB()
int32 internal_event_id = mGameEvent.size() + event_id - 1;
+ GameObjectData const* data = sObjectMgr->GetGOData(guid);
+ if (!data)
+ {
+ TC_LOG_ERROR(LOG_FILTER_SQL, "`game_event_gameobject` contains gameobject (GUID: %u) not found in `gameobject` table.", guid);
+ continue;
+ }
+
if (internal_event_id < 0 || internal_event_id >= int32(mGameEventGameobjectGuids.size()))
{
TC_LOG_ERROR(LOG_FILTER_SQL, "`game_event_gameobject` game event id (%i) is out of range compared to max event id in `game_event`", event_id);
@@ -456,9 +456,7 @@ void GameEventMgr::LoadFromDB()
"FROM creature JOIN game_event_model_equip ON creature.guid=game_event_model_equip.guid");
if (!result)
- {
TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, ">> Loaded 0 model/equipment changes in game events. DB table `game_event_model_equip` is empty.");
- }
else
{
uint32 count = 0;
@@ -512,9 +510,7 @@ void GameEventMgr::LoadFromDB()
QueryResult result = WorldDatabase.Query("SELECT id, quest, eventEntry FROM game_event_creature_quest");
if (!result)
- {
TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, ">> Loaded 0 quests additions in game events. DB table `game_event_creature_quest` is empty.");
- }
else
{
uint32 count = 0;
@@ -551,9 +547,7 @@ void GameEventMgr::LoadFromDB()
QueryResult result = WorldDatabase.Query("SELECT id, quest, eventEntry FROM game_event_gameobject_quest");
if (!result)
- {
TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, ">> Loaded 0 go quests additions in game events. DB table `game_event_gameobject_quest` is empty.");
- }
else
{
uint32 count = 0;
@@ -590,9 +584,7 @@ void GameEventMgr::LoadFromDB()
QueryResult result = WorldDatabase.Query("SELECT quest, eventEntry, condition_id, num FROM game_event_quest_condition");
if (!result)
- {
TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, ">> Loaded 0 quest event conditions in game events. DB table `game_event_quest_condition` is empty.");
- }
else
{
uint32 count = 0;
@@ -631,9 +623,7 @@ void GameEventMgr::LoadFromDB()
QueryResult result = WorldDatabase.Query("SELECT eventEntry, condition_id, req_num, max_world_state_field, done_world_state_field FROM game_event_condition");
if (!result)
- {
TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, ">> Loaded 0 conditions in game events. DB table `game_event_condition` is empty.");
- }
else
{
uint32 count = 0;
@@ -671,9 +661,7 @@ void GameEventMgr::LoadFromDB()
QueryResult result = CharacterDatabase.Query("SELECT eventEntry, condition_id, done FROM game_event_condition_save");
if (!result)
- {
TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, ">> Loaded 0 condition saves in game events. DB table `game_event_condition_save` is empty.");
- }
else
{
uint32 count = 0;
@@ -717,9 +705,7 @@ void GameEventMgr::LoadFromDB()
QueryResult result = WorldDatabase.Query("SELECT guid, eventEntry, npcflag FROM game_event_npcflag");
if (!result)
- {
TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, ">> Loaded 0 npcflags in game events. DB table `game_event_npcflag` is empty.");
- }
else
{
uint32 count = 0;
@@ -755,9 +741,7 @@ void GameEventMgr::LoadFromDB()
QueryResult result = WorldDatabase.Query("SELECT questId, eventEntry FROM game_event_seasonal_questrelation");
if (!result)
- {
TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, ">> Loaded 0 seasonal quests additions in game events. DB table `game_event_seasonal_questrelation` is empty.");
- }
else
{
uint32 count = 0;
@@ -859,9 +843,7 @@ void GameEventMgr::LoadFromDB()
QueryResult result = WorldDatabase.Query("SELECT eventEntry, bgflag FROM game_event_battleground_holiday");
if (!result)
- {
TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, ">> Loaded 0 battleground holidays in game events. DB table `game_event_battleground_holiday` is empty.");
- }
else
{
uint32 count = 0;
@@ -896,9 +878,7 @@ void GameEventMgr::LoadFromDB()
" JOIN game_event_pool ON pool_template.entry = game_event_pool.pool_entry");
if (!result)
- {
TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, ">> Loaded 0 pools for game events. DB table `game_event_pool` is empty.");
- }
else
{
uint32 count = 0;
@@ -1329,31 +1309,21 @@ void GameEventMgr::ChangeEquipOrModel(int16 event_id, bool activate)
itr->second.equipement_id_prev = creature->GetCurrentEquipmentId();
itr->second.modelid_prev = creature->GetDisplayId();
creature->LoadEquipment(itr->second.equipment_id, true);
- if (itr->second.modelid > 0 && itr->second.modelid_prev != itr->second.modelid)
+ if (itr->second.modelid > 0 && itr->second.modelid_prev != itr->second.modelid &&
+ sObjectMgr->GetCreatureModelInfo(itr->second.modelid))
{
- CreatureModelInfo const* minfo = sObjectMgr->GetCreatureModelInfo(itr->second.modelid);
- if (minfo)
- {
- creature->SetDisplayId(itr->second.modelid);
- creature->SetNativeDisplayId(itr->second.modelid);
- creature->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, minfo->bounding_radius);
- creature->SetFloatValue(UNIT_FIELD_COMBATREACH, minfo->combat_reach);
- }
+ creature->SetDisplayId(itr->second.modelid);
+ creature->SetNativeDisplayId(itr->second.modelid);
}
}
else
{
creature->LoadEquipment(itr->second.equipement_id_prev, true);
- if (itr->second.modelid_prev > 0 && itr->second.modelid_prev != itr->second.modelid)
+ if (itr->second.modelid_prev > 0 && itr->second.modelid_prev != itr->second.modelid &&
+ sObjectMgr->GetCreatureModelInfo(itr->second.modelid_prev))
{
- CreatureModelInfo const* minfo = sObjectMgr->GetCreatureModelInfo(itr->second.modelid_prev);
- if (minfo)
- {
- creature->SetDisplayId(itr->second.modelid_prev);
- creature->SetNativeDisplayId(itr->second.modelid_prev);
- creature->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, minfo->bounding_radius);
- creature->SetFloatValue(UNIT_FIELD_COMBATREACH, minfo->combat_reach);
- }
+ creature->SetDisplayId(itr->second.modelid_prev);
+ creature->SetNativeDisplayId(itr->second.modelid_prev);
}
}
}
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index e684de730da..88a8664e8a4 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -193,7 +193,7 @@ bool SpellClickInfo::IsFitToRequirements(Unit const* clicker, Unit const* clicke
Unit const* summoner = NULL;
// Check summoners for party
- if (clickee->isSummon())
+ if (clickee->IsSummon())
summoner = clickee->ToTempSummon()->GetSummoner();
if (!summoner)
summoner = clickee;
@@ -1561,7 +1561,7 @@ void ObjectMgr::LoadCreatures()
data.curmana = fields[13].GetUInt32();
data.movementType = fields[14].GetUInt8();
data.spawnMask = fields[15].GetUInt8();
- data.phaseMask = fields[16].GetUInt16();
+ data.phaseMask = fields[16].GetUInt32();
int16 gameEvent = fields[17].GetInt8();
uint32 PoolId = fields[18].GetUInt32();
data.npcflag = fields[19].GetUInt32();
@@ -1913,7 +1913,7 @@ void ObjectMgr::LoadGameobjects()
if (data.spawnMask & ~spawnMasks[data.mapid])
TC_LOG_ERROR(LOG_FILTER_SQL, "Table `gameobject` has gameobject (GUID: %u Entry: %u) that has wrong spawn mask %u including not supported difficulty modes for map (Id: %u), skip", guid, data.id, data.spawnMask, data.mapid);
- data.phaseMask = fields[15].GetUInt16();
+ data.phaseMask = fields[15].GetUInt32();
int16 gameEvent = fields[16].GetInt8();
uint32 PoolId = fields[17].GetUInt32();
@@ -2000,7 +2000,7 @@ uint64 ObjectMgr::GetPlayerGUIDByName(std::string const& name) const
return guid;
}
-bool ObjectMgr::GetPlayerNameByGUID(uint64 guid, std::string &name) const
+bool ObjectMgr::GetPlayerNameByGUID(uint64 guid, std::string& name) const
{
// prevent DB access for online player
if (Player* player = ObjectAccessor::FindPlayer(guid))
@@ -2179,7 +2179,7 @@ void ObjectMgr::LoadItemTemplates()
itemTemplate.Name1 = fields[4].GetString();
itemTemplate.DisplayInfoID = fields[5].GetUInt32();
itemTemplate.Quality = uint32(fields[6].GetUInt8());
- itemTemplate.Flags = uint32(fields[7].GetInt64());
+ itemTemplate.Flags = fields[7].GetUInt32();
itemTemplate.Flags2 = fields[8].GetUInt32();
itemTemplate.BuyCount = uint32(fields[9].GetUInt8());
itemTemplate.BuyPrice = int32(fields[10].GetInt64());
@@ -4862,10 +4862,10 @@ void ObjectMgr::LoadSpellScriptNames()
Field* fields = result->Fetch();
int32 spellId = fields[0].GetInt32();
- const char *scriptName = fields[1].GetCString();
+ char const* scriptName = fields[1].GetCString();
bool allRanks = false;
- if (spellId <= 0)
+ if (spellId < 0)
{
allRanks = true;
spellId = -spellId;
@@ -4874,25 +4874,35 @@ void ObjectMgr::LoadSpellScriptNames()
SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spellId);
if (!spellInfo)
{
- TC_LOG_ERROR(LOG_FILTER_SQL, "Scriptname:`%s` spell (spell_id:%d) does not exist in `Spell.dbc`.", scriptName, fields[0].GetInt32());
+ TC_LOG_ERROR(LOG_FILTER_SQL, "Scriptname: `%s` spell (Id: %d) does not exist.", scriptName, spellId);
continue;
}
if (allRanks)
{
- if (sSpellMgr->GetFirstSpellInChain(spellId) != uint32(spellId))
+ if (!spellInfo->IsRanked())
+ TC_LOG_ERROR(LOG_FILTER_SQL, "Scriptname: `%s` spell (Id: %d) has no ranks of spell.", scriptName, fields[0].GetInt32());
+
+ if (spellInfo->GetFirstRankSpell()->Id != uint32(spellId))
{
- TC_LOG_ERROR(LOG_FILTER_SQL, "Scriptname:`%s` spell (spell_id:%d) is not first rank of spell.", scriptName, fields[0].GetInt32());
+ TC_LOG_ERROR(LOG_FILTER_SQL, "Scriptname: `%s` spell (Id: %d) is not first rank of spell.", scriptName, fields[0].GetInt32());
continue;
}
+
while (spellInfo)
{
_spellScriptsStore.insert(SpellScriptsContainer::value_type(spellInfo->Id, GetScriptId(scriptName)));
- spellInfo = sSpellMgr->GetSpellInfo(spellInfo->Id)->GetNextRankSpell();
+ spellInfo = spellInfo->GetNextRankSpell();
}
}
else
+ {
+ if (spellInfo->IsRanked())
+ TC_LOG_ERROR(LOG_FILTER_SQL, "Scriptname: `%s` spell (Id: %d) is ranked spell. Perhaps not all ranks are assigned to this script.", scriptName, spellId);
+
_spellScriptsStore.insert(SpellScriptsContainer::value_type(spellInfo->Id, GetScriptId(scriptName)));
+ }
+
++count;
}
while (result->NextRow());
@@ -5724,7 +5734,7 @@ WorldSafeLocsEntry const* ObjectMgr::GetClosestGraveYard(float x, float y, float
MapEntry const* map = sMapStore.LookupEntry(MapId);
// not need to check validity of map object; MapId _MUST_ be valid here
- if (range.first == range.second && !map->IsBattleArena())
+ if (range.first == range.second && !map->IsBattlegroundOrArena())
{
TC_LOG_ERROR(LOG_FILTER_SQL, "Table `game_graveyard_zone` incomplete: Zone %u Team %u does not have a linked graveyard.", zoneId, team);
return GetDefaultGraveYard(team);
@@ -6967,6 +6977,7 @@ void ObjectMgr::LoadPointsOfInterest()
uint32 point_id = fields[0].GetUInt32();
PointOfInterest POI;
+ POI.entry = point_id;
POI.x = fields[1].GetFloat();
POI.y = fields[2].GetFloat();
POI.icon = fields[3].GetUInt32();
@@ -7201,59 +7212,59 @@ void ObjectMgr::LoadQuestRelationsHelper(QuestRelations& map, std::string const&
TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, ">> Loaded %u quest relations from %s in %u ms", count, table.c_str(), GetMSTimeDiffToNow(oldMSTime));
}
-void ObjectMgr::LoadGameobjectQuestRelations()
+void ObjectMgr::LoadGameobjectQuestStarters()
{
- LoadQuestRelationsHelper(_goQuestRelations, "gameobject_questrelation", true, true);
+ LoadQuestRelationsHelper(_goQuestRelations, "gameobject_queststarter", true, true);
for (QuestRelations::iterator itr = _goQuestRelations.begin(); itr != _goQuestRelations.end(); ++itr)
{
GameObjectTemplate const* goInfo = GetGameObjectTemplate(itr->first);
if (!goInfo)
- TC_LOG_ERROR(LOG_FILTER_SQL, "Table `gameobject_questrelation` have data for not existed gameobject entry (%u) and existed quest %u", itr->first, itr->second);
+ TC_LOG_ERROR(LOG_FILTER_SQL, "Table `gameobject_queststarter` have data for not existed gameobject entry (%u) and existed quest %u", itr->first, itr->second);
else if (goInfo->type != GAMEOBJECT_TYPE_QUESTGIVER)
- TC_LOG_ERROR(LOG_FILTER_SQL, "Table `gameobject_questrelation` have data gameobject entry (%u) for quest %u, but GO is not GAMEOBJECT_TYPE_QUESTGIVER", itr->first, itr->second);
+ TC_LOG_ERROR(LOG_FILTER_SQL, "Table `gameobject_queststarter` have data gameobject entry (%u) for quest %u, but GO is not GAMEOBJECT_TYPE_QUESTGIVER", itr->first, itr->second);
}
}
-void ObjectMgr::LoadGameobjectInvolvedRelations()
+void ObjectMgr::LoadGameobjectQuestEnders()
{
- LoadQuestRelationsHelper(_goQuestInvolvedRelations, "gameobject_involvedrelation", false, true);
+ LoadQuestRelationsHelper(_goQuestInvolvedRelations, "gameobject_questender", false, true);
for (QuestRelations::iterator itr = _goQuestInvolvedRelations.begin(); itr != _goQuestInvolvedRelations.end(); ++itr)
{
GameObjectTemplate const* goInfo = GetGameObjectTemplate(itr->first);
if (!goInfo)
- TC_LOG_ERROR(LOG_FILTER_SQL, "Table `gameobject_involvedrelation` have data for not existed gameobject entry (%u) and existed quest %u", itr->first, itr->second);
+ TC_LOG_ERROR(LOG_FILTER_SQL, "Table `gameobject_questender` have data for not existed gameobject entry (%u) and existed quest %u", itr->first, itr->second);
else if (goInfo->type != GAMEOBJECT_TYPE_QUESTGIVER)
- TC_LOG_ERROR(LOG_FILTER_SQL, "Table `gameobject_involvedrelation` have data gameobject entry (%u) for quest %u, but GO is not GAMEOBJECT_TYPE_QUESTGIVER", itr->first, itr->second);
+ TC_LOG_ERROR(LOG_FILTER_SQL, "Table `gameobject_questender` have data gameobject entry (%u) for quest %u, but GO is not GAMEOBJECT_TYPE_QUESTGIVER", itr->first, itr->second);
}
}
-void ObjectMgr::LoadCreatureQuestRelations()
+void ObjectMgr::LoadCreatureQuestStarters()
{
- LoadQuestRelationsHelper(_creatureQuestRelations, "creature_questrelation", true, false);
+ LoadQuestRelationsHelper(_creatureQuestRelations, "creature_queststarter", true, false);
for (QuestRelations::iterator itr = _creatureQuestRelations.begin(); itr != _creatureQuestRelations.end(); ++itr)
{
CreatureTemplate const* cInfo = GetCreatureTemplate(itr->first);
if (!cInfo)
- TC_LOG_ERROR(LOG_FILTER_SQL, "Table `creature_questrelation` have data for not existed creature entry (%u) and existed quest %u", itr->first, itr->second);
+ TC_LOG_ERROR(LOG_FILTER_SQL, "Table `creature_queststarter` have data for not existed creature entry (%u) and existed quest %u", itr->first, itr->second);
else if (!(cInfo->npcflag & UNIT_NPC_FLAG_QUESTGIVER))
- TC_LOG_ERROR(LOG_FILTER_SQL, "Table `creature_questrelation` has creature entry (%u) for quest %u, but npcflag does not include UNIT_NPC_FLAG_QUESTGIVER", itr->first, itr->second);
+ TC_LOG_ERROR(LOG_FILTER_SQL, "Table `creature_queststarter` has creature entry (%u) for quest %u, but npcflag does not include UNIT_NPC_FLAG_QUESTGIVER", itr->first, itr->second);
}
}
-void ObjectMgr::LoadCreatureInvolvedRelations()
+void ObjectMgr::LoadCreatureQuestEnders()
{
- LoadQuestRelationsHelper(_creatureQuestInvolvedRelations, "creature_involvedrelation", false, false);
+ LoadQuestRelationsHelper(_creatureQuestInvolvedRelations, "creature_questender", false, false);
for (QuestRelations::iterator itr = _creatureQuestInvolvedRelations.begin(); itr != _creatureQuestInvolvedRelations.end(); ++itr)
{
CreatureTemplate const* cInfo = GetCreatureTemplate(itr->first);
if (!cInfo)
- TC_LOG_ERROR(LOG_FILTER_SQL, "Table `creature_involvedrelation` have data for not existed creature entry (%u) and existed quest %u", itr->first, itr->second);
+ TC_LOG_ERROR(LOG_FILTER_SQL, "Table `creature_questender` have data for not existed creature entry (%u) and existed quest %u", itr->first, itr->second);
else if (!(cInfo->npcflag & UNIT_NPC_FLAG_QUESTGIVER))
- TC_LOG_ERROR(LOG_FILTER_SQL, "Table `creature_involvedrelation` has creature entry (%u) for quest %u, but npcflag does not include UNIT_NPC_FLAG_QUESTGIVER", itr->first, itr->second);
+ TC_LOG_ERROR(LOG_FILTER_SQL, "Table `creature_questender` has creature entry (%u) for quest %u, but npcflag does not include UNIT_NPC_FLAG_QUESTGIVER", itr->first, itr->second);
}
}
@@ -8362,15 +8373,6 @@ bool ObjectMgr::IsVendorItemValid(uint32 vendor_entry, uint32 item_id, int32 max
return false;
}
- if (vItems->GetItemCount() >= MAX_VENDOR_ITEMS)
- {
- if (player)
- ChatHandler(player->GetSession()).SendSysMessage(LANG_COMMAND_ADDVENDORITEMITEMS);
- else
- TC_LOG_ERROR(LOG_FILTER_SQL, "Table `npc_vendor` has too many items (%u >= %i) for vendor (Entry: %u), ignore", vItems->GetItemCount(), MAX_VENDOR_ITEMS, vendor_entry);
- return false;
- }
-
return true;
}
diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h
index 266fe8ee35c..aad699fe9c1 100644
--- a/src/server/game/Globals/ObjectMgr.h
+++ b/src/server/game/Globals/ObjectMgr.h
@@ -716,7 +716,21 @@ class ObjectMgr
void GetPlayerLevelInfo(uint32 race, uint32 class_, uint8 level, PlayerLevelInfo* info) const;
uint64 GetPlayerGUIDByName(std::string const& name) const;
- bool GetPlayerNameByGUID(uint64 guid, std::string &name) const;
+
+ /**
+ * Retrieves the player name by guid.
+ *
+ * If the player is online, the name is retrieved immediately otherwise
+ * a database query is done.
+ *
+ * @remark Use sWorld->GetCharacterNameData because it doesn't require a database query when player is offline
+ *
+ * @param guid player full guid
+ * @param name returned name
+ *
+ * @return true if player was found, false otherwise
+ */
+ bool GetPlayerNameByGUID(uint64 guid, std::string& name) const;
uint32 GetPlayerTeamByGUID(uint64 guid) const;
uint32 GetPlayerAccountIdByGUID(uint64 guid) const;
uint32 GetPlayerAccountIdByPlayerName(std::string const& name) const;
@@ -837,21 +851,21 @@ class ObjectMgr
}
void LoadQuests();
- void LoadQuestRelations()
+ void LoadQuestStartersAndEnders()
{
TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, "Loading GO Start Quest Data...");
- LoadGameobjectQuestRelations();
+ LoadGameobjectQuestStarters();
TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, "Loading GO End Quest Data...");
- LoadGameobjectInvolvedRelations();
+ LoadGameobjectQuestEnders();
TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, "Loading Creature Start Quest Data...");
- LoadCreatureQuestRelations();
+ LoadCreatureQuestStarters();
TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, "Loading Creature End Quest Data...");
- LoadCreatureInvolvedRelations();
+ LoadCreatureQuestEnders();
}
- void LoadGameobjectQuestRelations();
- void LoadGameobjectInvolvedRelations();
- void LoadCreatureQuestRelations();
- void LoadCreatureInvolvedRelations();
+ void LoadGameobjectQuestStarters();
+ void LoadGameobjectQuestEnders();
+ void LoadCreatureQuestStarters();
+ void LoadCreatureQuestEnders();
QuestRelations* GetGOQuestRelationMap()
{
diff --git a/src/server/game/Grids/GridDefines.h b/src/server/game/Grids/GridDefines.h
index ad48e4fd128..9250c784dd9 100644
--- a/src/server/game/Grids/GridDefines.h
+++ b/src/server/game/Grids/GridDefines.h
@@ -35,7 +35,7 @@ class Player;
#define MAX_NUMBER_OF_GRIDS 64
-#define SIZE_OF_GRIDS 533.33333f
+#define SIZE_OF_GRIDS 533.3333f
#define CENTER_GRID_ID (MAX_NUMBER_OF_GRIDS/2)
#define CENTER_GRID_OFFSET (SIZE_OF_GRIDS/2)
diff --git a/src/server/game/Grids/Notifiers/GridNotifiers.cpp b/src/server/game/Grids/Notifiers/GridNotifiers.cpp
index 24f8cbda1a2..b8ab75f213b 100644
--- a/src/server/game/Grids/Notifiers/GridNotifiers.cpp
+++ b/src/server/game/Grids/Notifiers/GridNotifiers.cpp
@@ -76,17 +76,17 @@ void VisibleChangesNotifier::Visit(PlayerMapType &m)
{
for (PlayerMapType::iterator iter = m.begin(); iter != m.end(); ++iter)
{
- if (iter->getSource() == &i_object)
+ if (iter->GetSource() == &i_object)
continue;
- iter->getSource()->UpdateVisibilityOf(&i_object);
+ iter->GetSource()->UpdateVisibilityOf(&i_object);
- if (iter->getSource()->HasSharedVision())
+ if (iter->GetSource()->HasSharedVision())
{
- for (SharedVisionList::const_iterator i = iter->getSource()->GetSharedVisionList().begin();
- i != iter->getSource()->GetSharedVisionList().end(); ++i)
+ for (SharedVisionList::const_iterator i = iter->GetSource()->GetSharedVisionList().begin();
+ i != iter->GetSource()->GetSharedVisionList().end(); ++i)
{
- if ((*i)->m_seer == iter->getSource())
+ if ((*i)->m_seer == iter->GetSource())
(*i)->UpdateVisibilityOf(&i_object);
}
}
@@ -96,29 +96,29 @@ void VisibleChangesNotifier::Visit(PlayerMapType &m)
void VisibleChangesNotifier::Visit(CreatureMapType &m)
{
for (CreatureMapType::iterator iter = m.begin(); iter != m.end(); ++iter)
- if (iter->getSource()->HasSharedVision())
- for (SharedVisionList::const_iterator i = iter->getSource()->GetSharedVisionList().begin();
- i != iter->getSource()->GetSharedVisionList().end(); ++i)
- if ((*i)->m_seer == iter->getSource())
+ if (iter->GetSource()->HasSharedVision())
+ for (SharedVisionList::const_iterator i = iter->GetSource()->GetSharedVisionList().begin();
+ i != iter->GetSource()->GetSharedVisionList().end(); ++i)
+ if ((*i)->m_seer == iter->GetSource())
(*i)->UpdateVisibilityOf(&i_object);
}
void VisibleChangesNotifier::Visit(DynamicObjectMapType &m)
{
for (DynamicObjectMapType::iterator iter = m.begin(); iter != m.end(); ++iter)
- if (IS_PLAYER_GUID(iter->getSource()->GetCasterGUID()))
- if (Player* caster = (Player*)iter->getSource()->GetCaster())
- if (caster->m_seer == iter->getSource())
- caster->UpdateVisibilityOf(&i_object);
+ if (Unit* caster = iter->GetSource()->GetCaster())
+ if (Player* player = caster->ToPlayer())
+ if (player->m_seer == iter->GetSource())
+ player->UpdateVisibilityOf(&i_object);
}
inline void CreatureUnitRelocationWorker(Creature* c, Unit* u)
{
- if (!u->isAlive() || !c->isAlive() || c == u || u->isInFlight())
+ if (!u->IsAlive() || !c->IsAlive() || c == u || u->IsInFlight())
return;
if (c->HasReactState(REACT_AGGRESSIVE) && !c->HasUnitState(UNIT_STATE_SIGHTLESS))
- if (c->IsAIEnabled && c->canSeeOrDetect(u, false, true))
+ if (c->IsAIEnabled && c->CanSeeOrDetect(u, false, true))
c->AI()->MoveInLineOfSight_Safe(u);
}
@@ -126,7 +126,7 @@ void PlayerRelocationNotifier::Visit(PlayerMapType &m)
{
for (PlayerMapType::iterator iter = m.begin(); iter != m.end(); ++iter)
{
- Player* player = iter->getSource();
+ Player* player = iter->GetSource();
vis_guids.erase(player->GetGUID());
@@ -145,7 +145,7 @@ void PlayerRelocationNotifier::Visit(CreatureMapType &m)
for (CreatureMapType::iterator iter=m.begin(); iter != m.end(); ++iter)
{
- Creature* c = iter->getSource();
+ Creature* c = iter->GetSource();
vis_guids.erase(c->GetGUID());
@@ -160,7 +160,7 @@ void CreatureRelocationNotifier::Visit(PlayerMapType &m)
{
for (PlayerMapType::iterator iter = m.begin(); iter != m.end(); ++iter)
{
- Player* player = iter->getSource();
+ Player* player = iter->GetSource();
if (!player->m_seer->isNeedNotify(NOTIFY_VISIBILITY_CHANGED))
player->UpdateVisibilityOf(&i_creature);
@@ -171,12 +171,12 @@ void CreatureRelocationNotifier::Visit(PlayerMapType &m)
void CreatureRelocationNotifier::Visit(CreatureMapType &m)
{
- if (!i_creature.isAlive())
+ if (!i_creature.IsAlive())
return;
for (CreatureMapType::iterator iter = m.begin(); iter != m.end(); ++iter)
{
- Creature* c = iter->getSource();
+ Creature* c = iter->GetSource();
CreatureUnitRelocationWorker(&i_creature, c);
if (!c->isNeedNotify(NOTIFY_VISIBILITY_CHANGED))
@@ -188,7 +188,7 @@ void DelayedUnitRelocation::Visit(CreatureMapType &m)
{
for (CreatureMapType::iterator iter = m.begin(); iter != m.end(); ++iter)
{
- Creature* unit = iter->getSource();
+ Creature* unit = iter->GetSource();
if (!unit->isNeedNotify(NOTIFY_VISIBILITY_CHANGED))
continue;
@@ -206,7 +206,7 @@ void DelayedUnitRelocation::Visit(PlayerMapType &m)
{
for (PlayerMapType::iterator iter = m.begin(); iter != m.end(); ++iter)
{
- Player* player = iter->getSource();
+ Player* player = iter->GetSource();
WorldObject const* viewPoint = player->m_seer;
if (!viewPoint->isNeedNotify(NOTIFY_VISIBILITY_CHANGED))
@@ -234,7 +234,7 @@ void AIRelocationNotifier::Visit(CreatureMapType &m)
{
for (CreatureMapType::iterator iter = m.begin(); iter != m.end(); ++iter)
{
- Creature* c = iter->getSource();
+ Creature* c = iter->GetSource();
CreatureUnitRelocationWorker(c, &i_unit);
if (isCreature)
CreatureUnitRelocationWorker((Creature*)&i_unit, c);
@@ -245,7 +245,7 @@ void MessageDistDeliverer::Visit(PlayerMapType &m)
{
for (PlayerMapType::iterator iter = m.begin(); iter != m.end(); ++iter)
{
- Player* target = iter->getSource();
+ Player* target = iter->GetSource();
if (!target->InSamePhase(i_phaseMask))
continue;
@@ -270,7 +270,7 @@ void MessageDistDeliverer::Visit(CreatureMapType &m)
{
for (CreatureMapType::iterator iter = m.begin(); iter != m.end(); ++iter)
{
- Creature* target = iter->getSource();
+ Creature* target = iter->GetSource();
if (!target->InSamePhase(i_phaseMask))
continue;
@@ -292,19 +292,19 @@ void MessageDistDeliverer::Visit(DynamicObjectMapType &m)
{
for (DynamicObjectMapType::iterator iter = m.begin(); iter != m.end(); ++iter)
{
- DynamicObject* target = iter->getSource();
+ DynamicObject* target = iter->GetSource();
if (!target->InSamePhase(i_phaseMask))
continue;
if (target->GetExactDist2dSq(i_source) > i_distSq)
continue;
- if (IS_PLAYER_GUID(target->GetCasterGUID()))
+ if (Unit* caster = target->GetCaster())
{
// Send packet back to the caster if the caster has vision of dynamic object
- Player* caster = (Player*)target->GetCaster();
- if (caster && caster->m_seer == target)
- SendPacket(caster);
+ Player* player = caster->ToPlayer();
+ if (player && player->m_seer == target)
+ SendPacket(player);
}
}
}
@@ -325,14 +325,14 @@ void ObjectUpdater::Visit(GridRefManager<T> &m)
{
for (typename GridRefManager<T>::iterator iter = m.begin(); iter != m.end(); ++iter)
{
- if (iter->getSource()->IsInWorld())
- iter->getSource()->Update(i_timeDiff);
+ if (iter->GetSource()->IsInWorld())
+ iter->GetSource()->Update(i_timeDiff);
}
}
bool AnyDeadUnitObjectInRangeCheck::operator()(Player* u)
{
- return !u->isAlive() && !u->HasAuraType(SPELL_AURA_GHOST) && i_searchObj->IsWithinDistInMap(u, i_range);
+ return !u->IsAlive() && !u->HasAuraType(SPELL_AURA_GHOST) && i_searchObj->IsWithinDistInMap(u, i_range);
}
bool AnyDeadUnitObjectInRangeCheck::operator()(Corpse* u)
@@ -342,7 +342,7 @@ bool AnyDeadUnitObjectInRangeCheck::operator()(Corpse* u)
bool AnyDeadUnitObjectInRangeCheck::operator()(Creature* u)
{
- return !u->isAlive() && i_searchObj->IsWithinDistInMap(u, i_range);
+ return !u->IsAlive() && i_searchObj->IsWithinDistInMap(u, i_range);
}
bool AnyDeadUnitSpellTargetInRangeCheck::operator()(Player* u)
diff --git a/src/server/game/Grids/Notifiers/GridNotifiers.h b/src/server/game/Grids/Notifiers/GridNotifiers.h
index fad1e77ed3a..c2492f160c0 100644
--- a/src/server/game/Grids/Notifiers/GridNotifiers.h
+++ b/src/server/game/Grids/Notifiers/GridNotifiers.h
@@ -110,7 +110,7 @@ namespace Trinity
template<class T> void updateObjects(GridRefManager<T> &m)
{
for (typename GridRefManager<T>::iterator iter = m.begin(); iter != m.end(); ++iter)
- iter->getSource()->Update(i_timeDiff);
+ iter->GetSource()->Update(i_timeDiff);
}
void Visit(PlayerMapType &m) { updateObjects<Player>(m); }
@@ -130,10 +130,14 @@ namespace Trinity
Player const* skipped_receiver;
MessageDistDeliverer(WorldObject* src, WorldPacket* msg, float dist, bool own_team_only = false, Player const* skipped = NULL)
: i_source(src), i_message(msg), i_phaseMask(src->GetPhaseMask()), i_distSq(dist * dist)
- , team((own_team_only && src->GetTypeId() == TYPEID_PLAYER) ? ((Player*)src)->GetTeam() : 0)
+ , team(0)
, skipped_receiver(skipped)
{
+ if (own_team_only)
+ if (Player* player = src->ToPlayer())
+ team = player->GetTeam();
}
+
void Visit(PlayerMapType &m);
void Visit(CreatureMapType &m);
void Visit(DynamicObjectMapType &m);
@@ -242,8 +246,8 @@ namespace Trinity
if (!(i_mapTypeMask & GRID_MAP_TYPE_MASK_GAMEOBJECT))
return;
for (GameObjectMapType::iterator itr=m.begin(); itr != m.end(); ++itr)
- if (itr->getSource()->InSamePhase(i_phaseMask))
- i_do(itr->getSource());
+ if (itr->GetSource()->InSamePhase(i_phaseMask))
+ i_do(itr->GetSource());
}
void Visit(PlayerMapType &m)
@@ -251,16 +255,16 @@ namespace Trinity
if (!(i_mapTypeMask & GRID_MAP_TYPE_MASK_PLAYER))
return;
for (PlayerMapType::iterator itr=m.begin(); itr != m.end(); ++itr)
- if (itr->getSource()->InSamePhase(i_phaseMask))
- i_do(itr->getSource());
+ if (itr->GetSource()->InSamePhase(i_phaseMask))
+ i_do(itr->GetSource());
}
void Visit(CreatureMapType &m)
{
if (!(i_mapTypeMask & GRID_MAP_TYPE_MASK_CREATURE))
return;
for (CreatureMapType::iterator itr=m.begin(); itr != m.end(); ++itr)
- if (itr->getSource()->InSamePhase(i_phaseMask))
- i_do(itr->getSource());
+ if (itr->GetSource()->InSamePhase(i_phaseMask))
+ i_do(itr->GetSource());
}
void Visit(CorpseMapType &m)
@@ -268,8 +272,8 @@ namespace Trinity
if (!(i_mapTypeMask & GRID_MAP_TYPE_MASK_CORPSE))
return;
for (CorpseMapType::iterator itr=m.begin(); itr != m.end(); ++itr)
- if (itr->getSource()->InSamePhase(i_phaseMask))
- i_do(itr->getSource());
+ if (itr->GetSource()->InSamePhase(i_phaseMask))
+ i_do(itr->GetSource());
}
void Visit(DynamicObjectMapType &m)
@@ -277,8 +281,8 @@ namespace Trinity
if (!(i_mapTypeMask & GRID_MAP_TYPE_MASK_DYNAMICOBJECT))
return;
for (DynamicObjectMapType::iterator itr=m.begin(); itr != m.end(); ++itr)
- if (itr->getSource()->InSamePhase(i_phaseMask))
- i_do(itr->getSource());
+ if (itr->GetSource()->InSamePhase(i_phaseMask))
+ i_do(itr->GetSource());
}
template<class NOT_INTERESTED> void Visit(GridRefManager<NOT_INTERESTED> &) {}
@@ -341,8 +345,8 @@ namespace Trinity
void Visit(GameObjectMapType& m)
{
for (GameObjectMapType::iterator itr = m.begin(); itr != m.end(); ++itr)
- if (itr->getSource()->InSamePhase(_phaseMask))
- _func(itr->getSource());
+ if (itr->GetSource()->InSamePhase(_phaseMask))
+ _func(itr->GetSource());
}
template<class NOT_INTERESTED> void Visit(GridRefManager<NOT_INTERESTED> &) {}
@@ -465,8 +469,8 @@ namespace Trinity
void Visit(CreatureMapType &m)
{
for (CreatureMapType::iterator itr=m.begin(); itr != m.end(); ++itr)
- if (itr->getSource()->InSamePhase(i_phaseMask))
- i_do(itr->getSource());
+ if (itr->GetSource()->InSamePhase(i_phaseMask))
+ i_do(itr->GetSource());
}
template<class NOT_INTERESTED> void Visit(GridRefManager<NOT_INTERESTED> &) {}
@@ -532,8 +536,8 @@ namespace Trinity
void Visit(PlayerMapType &m)
{
for (PlayerMapType::iterator itr=m.begin(); itr != m.end(); ++itr)
- if (itr->getSource()->InSamePhase(i_phaseMask))
- i_do(itr->getSource());
+ if (itr->GetSource()->InSamePhase(i_phaseMask))
+ i_do(itr->GetSource());
}
template<class NOT_INTERESTED> void Visit(GridRefManager<NOT_INTERESTED> &) {}
@@ -552,8 +556,8 @@ namespace Trinity
void Visit(PlayerMapType &m)
{
for (PlayerMapType::iterator itr=m.begin(); itr != m.end(); ++itr)
- if (itr->getSource()->InSamePhase(i_searcher) && itr->getSource()->IsWithinDist(i_searcher, i_dist))
- i_do(itr->getSource());
+ if (itr->GetSource()->InSamePhase(i_searcher) && itr->GetSource()->IsWithinDist(i_searcher, i_dist))
+ i_do(itr->GetSource());
}
template<class NOT_INTERESTED> void Visit(GridRefManager<NOT_INTERESTED> &) {}
@@ -740,7 +744,7 @@ namespace Trinity
MostHPMissingInRange(Unit const* obj, float range, uint32 hp) : i_obj(obj), i_range(range), i_hp(hp) {}
bool operator()(Unit* u)
{
- if (u->isAlive() && u->isInCombat() && !i_obj->IsHostileTo(u) && i_obj->IsWithinDistInMap(u, i_range) && u->GetMaxHealth() - u->GetHealth() > i_hp)
+ if (u->IsAlive() && u->IsInCombat() && !i_obj->IsHostileTo(u) && i_obj->IsWithinDistInMap(u, i_range) && u->GetMaxHealth() - u->GetHealth() > i_hp)
{
i_hp = u->GetMaxHealth() - u->GetHealth();
return true;
@@ -759,8 +763,8 @@ namespace Trinity
FriendlyCCedInRange(Unit const* obj, float range) : i_obj(obj), i_range(range) {}
bool operator()(Unit* u)
{
- if (u->isAlive() && u->isInCombat() && !i_obj->IsHostileTo(u) && i_obj->IsWithinDistInMap(u, i_range) &&
- (u->isFeared() || u->isCharmed() || u->isFrozen() || u->HasUnitState(UNIT_STATE_STUNNED) || u->HasUnitState(UNIT_STATE_CONFUSED)))
+ if (u->IsAlive() && u->IsInCombat() && !i_obj->IsHostileTo(u) && i_obj->IsWithinDistInMap(u, i_range) &&
+ (u->isFeared() || u->IsCharmed() || u->isFrozen() || u->HasUnitState(UNIT_STATE_STUNNED) || u->HasUnitState(UNIT_STATE_CONFUSED)))
{
return true;
}
@@ -777,7 +781,7 @@ namespace Trinity
FriendlyMissingBuffInRange(Unit const* obj, float range, uint32 spellid) : i_obj(obj), i_range(range), i_spell(spellid) {}
bool operator()(Unit* u)
{
- if (u->isAlive() && u->isInCombat() && !i_obj->IsHostileTo(u) && i_obj->IsWithinDistInMap(u, i_range) &&
+ if (u->IsAlive() && u->IsInCombat() && !i_obj->IsHostileTo(u) && i_obj->IsWithinDistInMap(u, i_range) &&
!(u->HasAura(i_spell)))
{
return true;
@@ -796,7 +800,7 @@ namespace Trinity
AnyUnfriendlyUnitInObjectRangeCheck(WorldObject const* obj, Unit const* funit, float range) : i_obj(obj), i_funit(funit), i_range(range) {}
bool operator()(Unit* u)
{
- if (u->isAlive() && i_obj->IsWithinDistInMap(u, i_range) && !i_funit->IsFriendlyTo(u))
+ if (u->IsAlive() && i_obj->IsWithinDistInMap(u, i_range) && !i_funit->IsFriendlyTo(u))
return true;
else
return false;
@@ -813,13 +817,13 @@ namespace Trinity
AnyUnfriendlyNoTotemUnitInObjectRangeCheck(WorldObject const* obj, Unit const* funit, float range) : i_obj(obj), i_funit(funit), i_range(range) {}
bool operator()(Unit* u)
{
- if (!u->isAlive())
+ if (!u->IsAlive())
return false;
if (u->GetCreatureType() == CREATURE_TYPE_NON_COMBAT_PET)
return false;
- if (u->GetTypeId() == TYPEID_UNIT && ((Creature*)u)->isTotem())
+ if (u->GetTypeId() == TYPEID_UNIT && ((Creature*)u)->IsTotem())
return false;
if (!u->isTargetableForAttack(false))
@@ -841,12 +845,12 @@ namespace Trinity
bool operator()(const Unit* u)
{
- return u->isAlive()
+ return u->IsAlive()
&& i_funit->IsWithinDistInMap(u, i_range)
&& !i_funit->IsFriendlyTo(u)
&& i_funit->IsValidAttackTarget(u)
&& u->GetCreatureType() != CREATURE_TYPE_CRITTER
- && i_funit->canSeeOrDetect(u);
+ && i_funit->CanSeeOrDetect(u);
}
private:
Unit const* i_funit;
@@ -872,7 +876,7 @@ namespace Trinity
AnyFriendlyUnitInObjectRangeCheck(WorldObject const* obj, Unit const* funit, float range) : i_obj(obj), i_funit(funit), i_range(range) {}
bool operator()(Unit* u)
{
- if (u->isAlive() && i_obj->IsWithinDistInMap(u, i_range) && i_funit->IsFriendlyTo(u))
+ if (u->IsAlive() && i_obj->IsWithinDistInMap(u, i_range) && i_funit->IsFriendlyTo(u))
return true;
else
return false;
@@ -900,7 +904,7 @@ namespace Trinity
else if (!_refUnit->IsInPartyWith(u))
return false;
- return !_refUnit->IsHostileTo(u) && u->isAlive() && _source->IsWithinDistInMap(u, _range);
+ return !_refUnit->IsHostileTo(u) && u->IsAlive() && _source->IsWithinDistInMap(u, _range);
}
private:
@@ -916,7 +920,7 @@ namespace Trinity
AnyUnitInObjectRangeCheck(WorldObject const* obj, float range) : i_obj(obj), i_range(range) {}
bool operator()(Unit* u)
{
- if (u->isAlive() && i_obj->IsWithinDistInMap(u, i_range))
+ if (u->IsAlive() && i_obj->IsWithinDistInMap(u, i_range))
return true;
return false;
@@ -934,7 +938,7 @@ namespace Trinity
bool operator()(Unit* u)
{
if (u->isTargetableForAttack() && i_obj->IsWithinDistInMap(u, i_range) &&
- !i_funit->IsFriendlyTo(u) && i_funit->canSeeOrDetect(u))
+ !i_funit->IsFriendlyTo(u) && i_funit->CanSeeOrDetect(u))
{
i_range = i_obj->GetDistance(u); // use found unit range as new range limit for next check
return true;
@@ -968,7 +972,7 @@ namespace Trinity
bool operator()(Unit* u)
{
// Check contains checks for: live, non-selectable, non-attackable flags, flight check and GM check, ignore totems
- if (u->GetTypeId() == TYPEID_UNIT && ((Creature*)u)->isTotem())
+ if (u->GetTypeId() == TYPEID_UNIT && ((Creature*)u)->IsTotem())
return false;
if (i_funit->_IsValidAttackTarget(u, _spellInfo, i_obj->GetTypeId() == TYPEID_DYNAMICOBJECT ? i_obj : NULL) && i_obj->IsWithinDistInMap(u, i_range))
@@ -1018,7 +1022,7 @@ namespace Trinity
struct AnyDeadUnitCheck
{
- bool operator()(Unit* u) { return !u->isAlive(); }
+ bool operator()(Unit* u) { return !u->IsAlive(); }
};
/*
@@ -1068,7 +1072,7 @@ namespace Trinity
if (!me->IsWithinDistInMap(u, m_range))
return false;
- if (!me->canSeeOrDetect(u))
+ if (!me->CanSeeOrDetect(u))
return false;
if (m_force)
@@ -1076,7 +1080,7 @@ namespace Trinity
if (!me->IsValidAttackTarget(u))
return false;
}
- else if (!me->canStartAttack(u, false))
+ else if (!me->CanStartAttack(u, false))
return false;
m_range = me->GetDistance(u); // use found unit range as new range limit for next check
@@ -1191,7 +1195,7 @@ namespace Trinity
bool operator()(Creature* u)
{
- if (u->GetEntry() == i_entry && u->isAlive() == i_alive && i_obj.IsWithinDistInMap(u, i_range))
+ if (u->GetEntry() == i_entry && u->IsAlive() == i_alive && i_obj.IsWithinDistInMap(u, i_range))
{
i_range = i_obj.GetDistance(u); // use found unit range as new range limit for next check
return true;
@@ -1215,7 +1219,7 @@ namespace Trinity
AnyPlayerInObjectRangeCheck(WorldObject const* obj, float range, bool reqAlive = true) : _obj(obj), _range(range), _reqAlive(reqAlive) {}
bool operator()(Player* u)
{
- if (_reqAlive && !u->isAlive())
+ if (_reqAlive && !u->IsAlive())
return false;
if (!_obj->IsWithinDistInMap(u, _range))
@@ -1239,7 +1243,7 @@ namespace Trinity
bool operator()(Player* u)
{
- if (u->isAlive() && i_obj->IsWithinDistInMap(u, i_range))
+ if (u->IsAlive() && i_obj->IsWithinDistInMap(u, i_range))
{
i_range = i_obj->GetDistance(u);
return true;
@@ -1260,7 +1264,7 @@ namespace Trinity
AllFriendlyCreaturesInGrid(Unit const* obj) : unit(obj) {}
bool operator() (Unit* u)
{
- if (u->isAlive() && u->IsVisible() && u->IsFriendlyTo(unit))
+ if (u->IsAlive() && u->IsVisible() && u->IsFriendlyTo(unit))
return true;
return false;
@@ -1311,7 +1315,7 @@ namespace Trinity
bool operator() (Player* player)
{
//No threat list check, must be done explicit if expected to be in combat with creature
- if (!player->isGameMaster() && player->isAlive() && !unit->IsWithinDist(player, fRange, false))
+ if (!player->IsGameMaster() && player->IsAlive() && !unit->IsWithinDist(player, fRange, false))
return true;
return false;
diff --git a/src/server/game/Grids/Notifiers/GridNotifiersImpl.h b/src/server/game/Grids/Notifiers/GridNotifiersImpl.h
index 40b2df3706b..deb8fa49a6c 100644
--- a/src/server/game/Grids/Notifiers/GridNotifiersImpl.h
+++ b/src/server/game/Grids/Notifiers/GridNotifiersImpl.h
@@ -33,16 +33,16 @@ inline void Trinity::VisibleNotifier::Visit(GridRefManager<T> &m)
{
for (typename GridRefManager<T>::iterator iter = m.begin(); iter != m.end(); ++iter)
{
- vis_guids.erase(iter->getSource()->GetGUID());
- i_player.UpdateVisibilityOf(iter->getSource(), i_data, i_visibleNow);
+ vis_guids.erase(iter->GetSource()->GetGUID());
+ i_player.UpdateVisibilityOf(iter->GetSource(), i_data, i_visibleNow);
}
}
inline void Trinity::ObjectUpdater::Visit(CreatureMapType &m)
{
for (CreatureMapType::iterator iter = m.begin(); iter != m.end(); ++iter)
- if (iter->getSource()->IsInWorld())
- iter->getSource()->Update(i_timeDiff);
+ if (iter->GetSource()->IsInWorld())
+ iter->GetSource()->Update(i_timeDiff);
}
// SEARCHERS & LIST SEARCHERS & WORKERS
@@ -61,12 +61,12 @@ void Trinity::WorldObjectSearcher<Check>::Visit(GameObjectMapType &m)
for (GameObjectMapType::iterator itr=m.begin(); itr != m.end(); ++itr)
{
- if (!itr->getSource()->InSamePhase(i_phaseMask))
+ if (!itr->GetSource()->InSamePhase(i_phaseMask))
continue;
- if (i_check(itr->getSource()))
+ if (i_check(itr->GetSource()))
{
- i_object = itr->getSource();
+ i_object = itr->GetSource();
return;
}
}
@@ -84,12 +84,12 @@ void Trinity::WorldObjectSearcher<Check>::Visit(PlayerMapType &m)
for (PlayerMapType::iterator itr=m.begin(); itr != m.end(); ++itr)
{
- if (!itr->getSource()->InSamePhase(i_phaseMask))
+ if (!itr->GetSource()->InSamePhase(i_phaseMask))
continue;
- if (i_check(itr->getSource()))
+ if (i_check(itr->GetSource()))
{
- i_object = itr->getSource();
+ i_object = itr->GetSource();
return;
}
}
@@ -107,12 +107,12 @@ void Trinity::WorldObjectSearcher<Check>::Visit(CreatureMapType &m)
for (CreatureMapType::iterator itr=m.begin(); itr != m.end(); ++itr)
{
- if (!itr->getSource()->InSamePhase(i_phaseMask))
+ if (!itr->GetSource()->InSamePhase(i_phaseMask))
continue;
- if (i_check(itr->getSource()))
+ if (i_check(itr->GetSource()))
{
- i_object = itr->getSource();
+ i_object = itr->GetSource();
return;
}
}
@@ -130,12 +130,12 @@ void Trinity::WorldObjectSearcher<Check>::Visit(CorpseMapType &m)
for (CorpseMapType::iterator itr=m.begin(); itr != m.end(); ++itr)
{
- if (!itr->getSource()->InSamePhase(i_phaseMask))
+ if (!itr->GetSource()->InSamePhase(i_phaseMask))
continue;
- if (i_check(itr->getSource()))
+ if (i_check(itr->GetSource()))
{
- i_object = itr->getSource();
+ i_object = itr->GetSource();
return;
}
}
@@ -153,12 +153,12 @@ void Trinity::WorldObjectSearcher<Check>::Visit(DynamicObjectMapType &m)
for (DynamicObjectMapType::iterator itr=m.begin(); itr != m.end(); ++itr)
{
- if (!itr->getSource()->InSamePhase(i_phaseMask))
+ if (!itr->GetSource()->InSamePhase(i_phaseMask))
continue;
- if (i_check(itr->getSource()))
+ if (i_check(itr->GetSource()))
{
- i_object = itr->getSource();
+ i_object = itr->GetSource();
return;
}
}
@@ -173,11 +173,11 @@ void Trinity::WorldObjectLastSearcher<Check>::Visit(GameObjectMapType &m)
for (GameObjectMapType::iterator itr=m.begin(); itr != m.end(); ++itr)
{
- if (!itr->getSource()->InSamePhase(i_phaseMask))
+ if (!itr->GetSource()->InSamePhase(i_phaseMask))
continue;
- if (i_check(itr->getSource()))
- i_object = itr->getSource();
+ if (i_check(itr->GetSource()))
+ i_object = itr->GetSource();
}
}
@@ -189,11 +189,11 @@ void Trinity::WorldObjectLastSearcher<Check>::Visit(PlayerMapType &m)
for (PlayerMapType::iterator itr=m.begin(); itr != m.end(); ++itr)
{
- if (!itr->getSource()->InSamePhase(i_phaseMask))
+ if (!itr->GetSource()->InSamePhase(i_phaseMask))
continue;
- if (i_check(itr->getSource()))
- i_object = itr->getSource();
+ if (i_check(itr->GetSource()))
+ i_object = itr->GetSource();
}
}
@@ -205,11 +205,11 @@ void Trinity::WorldObjectLastSearcher<Check>::Visit(CreatureMapType &m)
for (CreatureMapType::iterator itr=m.begin(); itr != m.end(); ++itr)
{
- if (!itr->getSource()->InSamePhase(i_phaseMask))
+ if (!itr->GetSource()->InSamePhase(i_phaseMask))
continue;
- if (i_check(itr->getSource()))
- i_object = itr->getSource();
+ if (i_check(itr->GetSource()))
+ i_object = itr->GetSource();
}
}
@@ -221,11 +221,11 @@ void Trinity::WorldObjectLastSearcher<Check>::Visit(CorpseMapType &m)
for (CorpseMapType::iterator itr=m.begin(); itr != m.end(); ++itr)
{
- if (!itr->getSource()->InSamePhase(i_phaseMask))
+ if (!itr->GetSource()->InSamePhase(i_phaseMask))
continue;
- if (i_check(itr->getSource()))
- i_object = itr->getSource();
+ if (i_check(itr->GetSource()))
+ i_object = itr->GetSource();
}
}
@@ -237,11 +237,11 @@ void Trinity::WorldObjectLastSearcher<Check>::Visit(DynamicObjectMapType &m)
for (DynamicObjectMapType::iterator itr=m.begin(); itr != m.end(); ++itr)
{
- if (!itr->getSource()->InSamePhase(i_phaseMask))
+ if (!itr->GetSource()->InSamePhase(i_phaseMask))
continue;
- if (i_check(itr->getSource()))
- i_object = itr->getSource();
+ if (i_check(itr->GetSource()))
+ i_object = itr->GetSource();
}
}
@@ -252,8 +252,8 @@ void Trinity::WorldObjectListSearcher<Check>::Visit(PlayerMapType &m)
return;
for (PlayerMapType::iterator itr=m.begin(); itr != m.end(); ++itr)
- if (i_check(itr->getSource()))
- i_objects.push_back(itr->getSource());
+ if (i_check(itr->GetSource()))
+ i_objects.push_back(itr->GetSource());
}
template<class Check>
@@ -263,8 +263,8 @@ void Trinity::WorldObjectListSearcher<Check>::Visit(CreatureMapType &m)
return;
for (CreatureMapType::iterator itr=m.begin(); itr != m.end(); ++itr)
- if (i_check(itr->getSource()))
- i_objects.push_back(itr->getSource());
+ if (i_check(itr->GetSource()))
+ i_objects.push_back(itr->GetSource());
}
template<class Check>
@@ -274,8 +274,8 @@ void Trinity::WorldObjectListSearcher<Check>::Visit(CorpseMapType &m)
return;
for (CorpseMapType::iterator itr=m.begin(); itr != m.end(); ++itr)
- if (i_check(itr->getSource()))
- i_objects.push_back(itr->getSource());
+ if (i_check(itr->GetSource()))
+ i_objects.push_back(itr->GetSource());
}
template<class Check>
@@ -285,8 +285,8 @@ void Trinity::WorldObjectListSearcher<Check>::Visit(GameObjectMapType &m)
return;
for (GameObjectMapType::iterator itr=m.begin(); itr != m.end(); ++itr)
- if (i_check(itr->getSource()))
- i_objects.push_back(itr->getSource());
+ if (i_check(itr->GetSource()))
+ i_objects.push_back(itr->GetSource());
}
template<class Check>
@@ -296,8 +296,8 @@ void Trinity::WorldObjectListSearcher<Check>::Visit(DynamicObjectMapType &m)
return;
for (DynamicObjectMapType::iterator itr=m.begin(); itr != m.end(); ++itr)
- if (i_check(itr->getSource()))
- i_objects.push_back(itr->getSource());
+ if (i_check(itr->GetSource()))
+ i_objects.push_back(itr->GetSource());
}
// Gameobject searchers
@@ -311,12 +311,12 @@ void Trinity::GameObjectSearcher<Check>::Visit(GameObjectMapType &m)
for (GameObjectMapType::iterator itr=m.begin(); itr != m.end(); ++itr)
{
- if (!itr->getSource()->InSamePhase(i_phaseMask))
+ if (!itr->GetSource()->InSamePhase(i_phaseMask))
continue;
- if (i_check(itr->getSource()))
+ if (i_check(itr->GetSource()))
{
- i_object = itr->getSource();
+ i_object = itr->GetSource();
return;
}
}
@@ -327,11 +327,11 @@ void Trinity::GameObjectLastSearcher<Check>::Visit(GameObjectMapType &m)
{
for (GameObjectMapType::iterator itr=m.begin(); itr != m.end(); ++itr)
{
- if (!itr->getSource()->InSamePhase(i_phaseMask))
+ if (!itr->GetSource()->InSamePhase(i_phaseMask))
continue;
- if (i_check(itr->getSource()))
- i_object = itr->getSource();
+ if (i_check(itr->GetSource()))
+ i_object = itr->GetSource();
}
}
@@ -339,9 +339,9 @@ template<class Check>
void Trinity::GameObjectListSearcher<Check>::Visit(GameObjectMapType &m)
{
for (GameObjectMapType::iterator itr=m.begin(); itr != m.end(); ++itr)
- if (itr->getSource()->InSamePhase(i_phaseMask))
- if (i_check(itr->getSource()))
- i_objects.push_back(itr->getSource());
+ if (itr->GetSource()->InSamePhase(i_phaseMask))
+ if (i_check(itr->GetSource()))
+ i_objects.push_back(itr->GetSource());
}
// Unit searchers
@@ -355,12 +355,12 @@ void Trinity::UnitSearcher<Check>::Visit(CreatureMapType &m)
for (CreatureMapType::iterator itr=m.begin(); itr != m.end(); ++itr)
{
- if (!itr->getSource()->InSamePhase(i_phaseMask))
+ if (!itr->GetSource()->InSamePhase(i_phaseMask))
continue;
- if (i_check(itr->getSource()))
+ if (i_check(itr->GetSource()))
{
- i_object = itr->getSource();
+ i_object = itr->GetSource();
return;
}
}
@@ -375,12 +375,12 @@ void Trinity::UnitSearcher<Check>::Visit(PlayerMapType &m)
for (PlayerMapType::iterator itr=m.begin(); itr != m.end(); ++itr)
{
- if (!itr->getSource()->InSamePhase(i_phaseMask))
+ if (!itr->GetSource()->InSamePhase(i_phaseMask))
continue;
- if (i_check(itr->getSource()))
+ if (i_check(itr->GetSource()))
{
- i_object = itr->getSource();
+ i_object = itr->GetSource();
return;
}
}
@@ -391,11 +391,11 @@ void Trinity::UnitLastSearcher<Check>::Visit(CreatureMapType &m)
{
for (CreatureMapType::iterator itr=m.begin(); itr != m.end(); ++itr)
{
- if (!itr->getSource()->InSamePhase(i_phaseMask))
+ if (!itr->GetSource()->InSamePhase(i_phaseMask))
continue;
- if (i_check(itr->getSource()))
- i_object = itr->getSource();
+ if (i_check(itr->GetSource()))
+ i_object = itr->GetSource();
}
}
@@ -404,11 +404,11 @@ void Trinity::UnitLastSearcher<Check>::Visit(PlayerMapType &m)
{
for (PlayerMapType::iterator itr=m.begin(); itr != m.end(); ++itr)
{
- if (!itr->getSource()->InSamePhase(i_phaseMask))
+ if (!itr->GetSource()->InSamePhase(i_phaseMask))
continue;
- if (i_check(itr->getSource()))
- i_object = itr->getSource();
+ if (i_check(itr->GetSource()))
+ i_object = itr->GetSource();
}
}
@@ -416,18 +416,18 @@ template<class Check>
void Trinity::UnitListSearcher<Check>::Visit(PlayerMapType &m)
{
for (PlayerMapType::iterator itr=m.begin(); itr != m.end(); ++itr)
- if (itr->getSource()->InSamePhase(i_phaseMask))
- if (i_check(itr->getSource()))
- i_objects.push_back(itr->getSource());
+ if (itr->GetSource()->InSamePhase(i_phaseMask))
+ if (i_check(itr->GetSource()))
+ i_objects.push_back(itr->GetSource());
}
template<class Check>
void Trinity::UnitListSearcher<Check>::Visit(CreatureMapType &m)
{
for (CreatureMapType::iterator itr=m.begin(); itr != m.end(); ++itr)
- if (itr->getSource()->InSamePhase(i_phaseMask))
- if (i_check(itr->getSource()))
- i_objects.push_back(itr->getSource());
+ if (itr->GetSource()->InSamePhase(i_phaseMask))
+ if (i_check(itr->GetSource()))
+ i_objects.push_back(itr->GetSource());
}
// Creature searchers
@@ -441,12 +441,12 @@ void Trinity::CreatureSearcher<Check>::Visit(CreatureMapType &m)
for (CreatureMapType::iterator itr=m.begin(); itr != m.end(); ++itr)
{
- if (!itr->getSource()->InSamePhase(i_phaseMask))
+ if (!itr->GetSource()->InSamePhase(i_phaseMask))
continue;
- if (i_check(itr->getSource()))
+ if (i_check(itr->GetSource()))
{
- i_object = itr->getSource();
+ i_object = itr->GetSource();
return;
}
}
@@ -457,11 +457,11 @@ void Trinity::CreatureLastSearcher<Check>::Visit(CreatureMapType &m)
{
for (CreatureMapType::iterator itr=m.begin(); itr != m.end(); ++itr)
{
- if (!itr->getSource()->InSamePhase(i_phaseMask))
+ if (!itr->GetSource()->InSamePhase(i_phaseMask))
continue;
- if (i_check(itr->getSource()))
- i_object = itr->getSource();
+ if (i_check(itr->GetSource()))
+ i_object = itr->GetSource();
}
}
@@ -469,18 +469,18 @@ template<class Check>
void Trinity::CreatureListSearcher<Check>::Visit(CreatureMapType &m)
{
for (CreatureMapType::iterator itr=m.begin(); itr != m.end(); ++itr)
- if (itr->getSource()->InSamePhase(i_phaseMask))
- if (i_check(itr->getSource()))
- i_objects.push_back(itr->getSource());
+ if (itr->GetSource()->InSamePhase(i_phaseMask))
+ if (i_check(itr->GetSource()))
+ i_objects.push_back(itr->GetSource());
}
template<class Check>
void Trinity::PlayerListSearcher<Check>::Visit(PlayerMapType &m)
{
for (PlayerMapType::iterator itr=m.begin(); itr != m.end(); ++itr)
- if (itr->getSource()->InSamePhase(i_phaseMask))
- if (i_check(itr->getSource()))
- i_objects.push_back(itr->getSource());
+ if (itr->GetSource()->InSamePhase(i_phaseMask))
+ if (i_check(itr->GetSource()))
+ i_objects.push_back(itr->GetSource());
}
template<class Check>
@@ -492,12 +492,12 @@ void Trinity::PlayerSearcher<Check>::Visit(PlayerMapType &m)
for (PlayerMapType::iterator itr=m.begin(); itr != m.end(); ++itr)
{
- if (!itr->getSource()->InSamePhase(i_phaseMask))
+ if (!itr->GetSource()->InSamePhase(i_phaseMask))
continue;
- if (i_check(itr->getSource()))
+ if (i_check(itr->GetSource()))
{
- i_object = itr->getSource();
+ i_object = itr->GetSource();
return;
}
}
@@ -508,11 +508,11 @@ void Trinity::PlayerLastSearcher<Check>::Visit(PlayerMapType& m)
{
for (PlayerMapType::iterator itr = m.begin(); itr != m.end(); ++itr)
{
- if (!itr->getSource()->InSamePhase(i_phaseMask))
+ if (!itr->GetSource()->InSamePhase(i_phaseMask))
continue;
- if (i_check(itr->getSource()))
- i_object = itr->getSource();
+ if (i_check(itr->GetSource()))
+ i_object = itr->GetSource();
}
}
diff --git a/src/server/game/Grids/ObjectGridLoader.cpp b/src/server/game/Grids/ObjectGridLoader.cpp
index 09c9f40899b..dacb72d5de6 100644
--- a/src/server/game/Grids/ObjectGridLoader.cpp
+++ b/src/server/game/Grids/ObjectGridLoader.cpp
@@ -35,10 +35,10 @@ void ObjectGridEvacuator::Visit(CreatureMapType &m)
// move to respawn point to prevent this case. For player view in respawn grid this will be normal respawn.
for (CreatureMapType::iterator iter = m.begin(); iter != m.end();)
{
- Creature* c = iter->getSource();
+ Creature* c = iter->GetSource();
++iter;
- ASSERT(!c->isPet() && "ObjectGridRespawnMover must not be called for pets");
+ ASSERT(!c->IsPet() && "ObjectGridRespawnMover must not be called for pets");
c->GetMap()->CreatureRespawnRelocation(c, true);
}
}
@@ -193,7 +193,7 @@ void ObjectGridUnloader::Visit(GridRefManager<T> &m)
{
while (!m.isEmpty())
{
- T *obj = m.getFirst()->getSource();
+ T *obj = m.getFirst()->GetSource();
// if option set then object already saved at this moment
if (!sWorld->getBoolConfig(CONFIG_SAVE_RESPAWN_TIME_IMMEDIATELY))
obj->SaveRespawnTime();
@@ -212,13 +212,13 @@ void ObjectGridStoper::Visit(CreatureMapType &m)
// stop any fights at grid de-activation and remove dynobjects created at cast by creatures
for (CreatureMapType::iterator iter = m.begin(); iter != m.end(); ++iter)
{
- iter->getSource()->RemoveAllDynObjects();
- if (iter->getSource()->isInCombat())
+ iter->GetSource()->RemoveAllDynObjects();
+ if (iter->GetSource()->IsInCombat())
{
- iter->getSource()->CombatStop();
- iter->getSource()->DeleteThreatList();
- if (iter->getSource()->IsAIEnabled)
- iter->getSource()->AI()->EnterEvadeMode();
+ iter->GetSource()->CombatStop();
+ iter->GetSource()->DeleteThreatList();
+ if (iter->GetSource()->IsAIEnabled)
+ iter->GetSource()->AI()->EnterEvadeMode();
}
}
}
@@ -227,7 +227,7 @@ template<class T>
void ObjectGridCleaner::Visit(GridRefManager<T> &m)
{
for (typename GridRefManager<T>::iterator iter = m.begin(); iter != m.end(); ++iter)
- iter->getSource()->CleanupsBeforeDelete();
+ iter->GetSource()->CleanupsBeforeDelete();
}
template void ObjectGridUnloader::Visit(CreatureMapType &);
diff --git a/src/server/game/Groups/Group.cpp b/src/server/game/Groups/Group.cpp
index 50c50fd4b1d..f43e49a3440 100644
--- a/src/server/game/Groups/Group.cpp
+++ b/src/server/game/Groups/Group.cpp
@@ -365,24 +365,21 @@ bool Group::AddMember(Player* player)
SubGroupCounterIncrease(subGroup);
- if (player)
+ player->SetGroupInvite(NULL);
+ if (player->GetGroup())
{
- player->SetGroupInvite(NULL);
- if (player->GetGroup())
- {
- if (isBGGroup() || isBFGroup()) // if player is in group and he is being added to BG raid group, then call SetBattlegroundRaid()
- player->SetBattlegroundOrBattlefieldRaid(this, subGroup);
- else //if player is in bg raid and we are adding him to normal group, then call SetOriginalGroup()
- player->SetOriginalGroup(this, subGroup);
- }
- else //if player is not in group, then call set group
- player->SetGroup(this, subGroup);
-
- // if the same group invites the player back, cancel the homebind timer
- InstanceGroupBind* bind = GetBoundInstance(player);
- if (bind && bind->save->GetInstanceId() == player->GetInstanceId())
- player->m_InstanceValid = true;
+ if (isBGGroup() || isBFGroup()) // if player is in group and he is being added to BG raid group, then call SetBattlegroundRaid()
+ player->SetBattlegroundOrBattlefieldRaid(this, subGroup);
+ else //if player is in bg raid and we are adding him to normal group, then call SetOriginalGroup()
+ player->SetOriginalGroup(this, subGroup);
}
+ else //if player is not in group, then call set group
+ player->SetGroup(this, subGroup);
+
+ // if the same group invites the player back, cancel the homebind timer
+ InstanceGroupBind* bind = GetBoundInstance(player);
+ if (bind && bind->save->GetInstanceId() == player->GetInstanceId())
+ player->m_InstanceValid = true;
if (!isRaidGroup()) // reset targetIcons for non-raid-groups
{
@@ -408,89 +405,86 @@ bool Group::AddMember(Player* player)
SendUpdate();
sScriptMgr->OnGroupAddMember(this, player->GetGUID());
- if (player)
+ if (!IsLeader(player->GetGUID()) && !isBGGroup() && !isBFGroup())
{
- if (!IsLeader(player->GetGUID()) && !isBGGroup() && !isBFGroup())
- {
- // reset the new member's instances, unless he is currently in one of them
- // including raid/heroic instances that they are not permanently bound to!
- player->ResetInstances(INSTANCE_RESET_GROUP_JOIN, false);
- player->ResetInstances(INSTANCE_RESET_GROUP_JOIN, true);
+ // reset the new member's instances, unless he is currently in one of them
+ // including raid/heroic instances that they are not permanently bound to!
+ player->ResetInstances(INSTANCE_RESET_GROUP_JOIN, false);
+ player->ResetInstances(INSTANCE_RESET_GROUP_JOIN, true);
- if (player->getLevel() >= LEVELREQUIREMENT_HEROIC)
+ if (player->getLevel() >= LEVELREQUIREMENT_HEROIC)
+ {
+ if (player->GetDungeonDifficulty() != GetDungeonDifficulty())
{
- if (player->GetDungeonDifficulty() != GetDungeonDifficulty())
- {
- player->SetDungeonDifficulty(GetDungeonDifficulty());
- player->SendDungeonDifficulty(true);
- }
- if (player->GetRaidDifficulty() != GetRaidDifficulty())
- {
- player->SetRaidDifficulty(GetRaidDifficulty());
- player->SendRaidDifficulty(true);
- }
+ player->SetDungeonDifficulty(GetDungeonDifficulty());
+ player->SendDungeonDifficulty(true);
+ }
+ if (player->GetRaidDifficulty() != GetRaidDifficulty())
+ {
+ player->SetRaidDifficulty(GetRaidDifficulty());
+ player->SendRaidDifficulty(true);
}
}
- player->SetGroupUpdateFlag(GROUP_UPDATE_FULL);
- UpdatePlayerOutOfRange(player);
+ }
+ player->SetGroupUpdateFlag(GROUP_UPDATE_FULL);
+ UpdatePlayerOutOfRange(player);
- // quest related GO state dependent from raid membership
- if (isRaidGroup())
- player->UpdateForQuestWorldObjects();
+ // quest related GO state dependent from raid membership
+ if (isRaidGroup())
+ player->UpdateForQuestWorldObjects();
- {
- // Broadcast new player group member fields to rest of the group
- player->SetFieldNotifyFlag(UF_FLAG_PARTY_MEMBER);
+ {
+ // Broadcast new player group member fields to rest of the group
+ player->SetFieldNotifyFlag(UF_FLAG_PARTY_MEMBER);
- UpdateData groupData;
- WorldPacket groupDataPacket;
+ UpdateData groupData;
+ WorldPacket groupDataPacket;
- // Broadcast group members' fields to player
- for (GroupReference* itr = GetFirstMember(); itr != NULL; itr = itr->next())
- {
- if (itr->getSource() == player)
- continue;
+ // Broadcast group members' fields to player
+ for (GroupReference* itr = GetFirstMember(); itr != NULL; itr = itr->next())
+ {
+ if (itr->GetSource() == player)
+ continue;
- if (Player* member = itr->getSource())
+ if (Player* member = itr->GetSource())
+ {
+ if (player->HaveAtClient(member))
{
- if (player->HaveAtClient(member))
- {
- member->SetFieldNotifyFlag(UF_FLAG_PARTY_MEMBER);
- member->BuildValuesUpdateBlockForPlayer(&groupData, player);
- member->RemoveFieldNotifyFlag(UF_FLAG_PARTY_MEMBER);
- }
+ member->SetFieldNotifyFlag(UF_FLAG_PARTY_MEMBER);
+ member->BuildValuesUpdateBlockForPlayer(&groupData, player);
+ member->RemoveFieldNotifyFlag(UF_FLAG_PARTY_MEMBER);
+ }
- if (member->HaveAtClient(player))
+ if (member->HaveAtClient(player))
+ {
+ UpdateData newData;
+ WorldPacket newDataPacket;
+ player->BuildValuesUpdateBlockForPlayer(&newData, member);
+ if (newData.HasData())
{
- UpdateData newData;
- WorldPacket newDataPacket;
- player->BuildValuesUpdateBlockForPlayer(&newData, member);
- if (newData.HasData())
- {
- newData.BuildPacket(&newDataPacket);
- member->SendDirectMessage(&newDataPacket);
- }
+ newData.BuildPacket(&newDataPacket);
+ member->SendDirectMessage(&newDataPacket);
}
}
}
+ }
- if (groupData.HasData())
- {
- groupData.BuildPacket(&groupDataPacket);
- player->SendDirectMessage(&groupDataPacket);
- }
-
- player->RemoveFieldNotifyFlag(UF_FLAG_PARTY_MEMBER);
+ if (groupData.HasData())
+ {
+ groupData.BuildPacket(&groupDataPacket);
+ player->SendDirectMessage(&groupDataPacket);
}
- if (m_maxEnchantingLevel < player->GetSkillValue(SKILL_ENCHANTING))
- m_maxEnchantingLevel = player->GetSkillValue(SKILL_ENCHANTING);
+ player->RemoveFieldNotifyFlag(UF_FLAG_PARTY_MEMBER);
}
+ if (m_maxEnchantingLevel < player->GetSkillValue(SKILL_ENCHANTING))
+ m_maxEnchantingLevel = player->GetSkillValue(SKILL_ENCHANTING);
+
return true;
}
-bool Group::RemoveMember(uint64 guid, const RemoveMethod &method /*= GROUP_REMOVEMETHOD_DEFAULT*/, uint64 kicker /*= 0*/, const char* reason /*= NULL*/)
+bool Group::RemoveMember(uint64 guid, const RemoveMethod& method /*= GROUP_REMOVEMETHOD_DEFAULT*/, uint64 kicker /*= 0*/, const char* reason /*= NULL*/)
{
BroadcastGroupUpdate();
@@ -601,7 +595,7 @@ bool Group::RemoveMember(uint64 guid, const RemoveMethod &method /*= GROUP_REMOV
{
Player* leader = ObjectAccessor::FindPlayer(GetLeaderGUID());
uint32 mapId = sLFGMgr->GetDungeonMapId(GetGUID());
- if (!mapId || !leader || (leader->isAlive() && leader->GetMapId() != mapId))
+ if (!mapId || !leader || (leader->IsAlive() && leader->GetMapId() != mapId))
{
Disband();
return false;
@@ -621,30 +615,39 @@ bool Group::RemoveMember(uint64 guid, const RemoveMethod &method /*= GROUP_REMOV
}
}
-void Group::ChangeLeader(uint64 guid)
+void Group::ChangeLeader(uint64 newLeaderGuid)
{
- member_witerator slot = _getMemberWSlot(guid);
+ member_witerator slot = _getMemberWSlot(newLeaderGuid);
if (slot == m_memberSlots.end())
return;
- Player* player = ObjectAccessor::FindPlayer(slot->guid);
+ Player* newLeader = ObjectAccessor::FindPlayer(slot->guid);
// Don't allow switching leader to offline players
- if (!player)
+ if (!newLeader)
return;
- sScriptMgr->OnGroupChangeLeader(this, guid, m_leaderGuid);
+ sScriptMgr->OnGroupChangeLeader(this, newLeaderGuid, m_leaderGuid);
if (!isBGGroup() && !isBFGroup())
{
+ SQLTransaction trans = CharacterDatabase.BeginTransaction();
+
// Remove the groups permanent instance bindings
for (uint8 i = 0; i < MAX_DIFFICULTY; ++i)
{
for (BoundInstancesMap::iterator itr = m_boundInstances[i].begin(); itr != m_boundInstances[i].end();)
{
- if (itr->second.perm)
+ // Do not unbind saves of instances that already had map created (a newLeader entered)
+ // forcing a new instance with another leader requires group disbanding (confirmed on retail)
+ if (itr->second.perm && !sMapMgr->FindMap(itr->first, itr->second.save->GetInstanceId()))
{
+ PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GROUP_INSTANCE_PERM_BINDING);
+ stmt->setUInt32(0, m_dbStoreId);
+ stmt->setUInt32(1, itr->second.save->GetInstanceId());
+ trans->Append(stmt);
+
itr->second.save->RemoveGroup(this);
m_boundInstances[i].erase(itr++);
}
@@ -653,29 +656,22 @@ void Group::ChangeLeader(uint64 guid)
}
}
- // Same in the database
-
- PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GROUP_INSTANCE_PERM_BINDING);
-
- stmt->setUInt32(0, m_dbStoreId);
- stmt->setUInt32(1, player->GetGUIDLow());
-
- CharacterDatabase.Execute(stmt);
-
// Copy the permanent binds from the new leader to the group
- Player::ConvertInstancesToGroup(player, this, true);
+ Player::ConvertInstancesToGroup(newLeader, this, true);
// Update the group leader
- stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_GROUP_LEADER);
+ PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_GROUP_LEADER);
- stmt->setUInt32(0, player->GetGUIDLow());
+ stmt->setUInt32(0, newLeader->GetGUIDLow());
stmt->setUInt32(1, m_dbStoreId);
- CharacterDatabase.Execute(stmt);
+ trans->Append(stmt);
+
+ CharacterDatabase.CommitTransaction(trans);
}
- m_leaderGuid = player->GetGUID();
- m_leaderName = player->GetName();
+ m_leaderGuid = newLeader->GetGUID();
+ m_leaderName = newLeader->GetName();
ToggleGroupMemberFlag(slot, MEMBER_FLAG_ASSISTANT, false);
WorldPacket data(SMSG_GROUP_SET_LEADER, m_leaderName.size()+1);
@@ -930,7 +926,7 @@ void Group::GroupLoot(Loot* loot, WorldObject* pLootedObject)
//a vector is filled with only near party members
for (GroupReference* itr = GetFirstMember(); itr != NULL; itr = itr->next())
{
- Player* member = itr->getSource();
+ Player* member = itr->GetSource();
if (!member || !member->GetSession())
continue;
if (i->AllowedForPlayer(member))
@@ -1014,7 +1010,7 @@ void Group::GroupLoot(Loot* loot, WorldObject* pLootedObject)
//a vector is filled with only near party members
for (GroupReference* itr = GetFirstMember(); itr != NULL; itr = itr->next())
{
- Player* member = itr->getSource();
+ Player* member = itr->GetSource();
if (!member || !member->GetSession())
continue;
@@ -1074,7 +1070,7 @@ void Group::NeedBeforeGreed(Loot* loot, WorldObject* lootedObject)
for (GroupReference* itr = GetFirstMember(); itr != NULL; itr = itr->next())
{
- Player* playerToRoll = itr->getSource();
+ Player* playerToRoll = itr->GetSource();
if (!playerToRoll || !playerToRoll->GetSession())
continue;
@@ -1149,7 +1145,7 @@ void Group::NeedBeforeGreed(Loot* loot, WorldObject* lootedObject)
for (GroupReference* itr = GetFirstMember(); itr != NULL; itr = itr->next())
{
- Player* playerToRoll = itr->getSource();
+ Player* playerToRoll = itr->GetSource();
if (!playerToRoll || !playerToRoll->GetSession())
continue;
@@ -1210,7 +1206,7 @@ void Group::MasterLoot(Loot* /*loot*/, WorldObject* pLootedObject)
for (GroupReference* itr = GetFirstMember(); itr != NULL; itr = itr->next())
{
- Player* looter = itr->getSource();
+ Player* looter = itr->GetSource();
if (!looter->IsInWorld())
continue;
@@ -1225,7 +1221,7 @@ void Group::MasterLoot(Loot* /*loot*/, WorldObject* pLootedObject)
for (GroupReference* itr = GetFirstMember(); itr != NULL; itr = itr->next())
{
- Player* looter = itr->getSource();
+ Player* looter = itr->GetSource();
if (looter->IsWithinDistInMap(pLootedObject, sWorld->getFloatConfig(CONFIG_GROUP_XP_DISTANCE), false))
looter->GetSession()->SendPacket(&data);
}
@@ -1545,7 +1541,7 @@ void Group::UpdatePlayerOutOfRange(Player* player)
Player* member;
for (GroupReference* itr = GetFirstMember(); itr != NULL; itr = itr->next())
{
- member = itr->getSource();
+ member = itr->GetSource();
if (member && !member->IsWithinDist(player, member->GetSightRange(), false))
member->GetSession()->SendPacket(&data);
}
@@ -1555,7 +1551,7 @@ void Group::BroadcastPacket(WorldPacket* packet, bool ignorePlayersInBGRaid, int
{
for (GroupReference* itr = GetFirstMember(); itr != NULL; itr = itr->next())
{
- Player* player = itr->getSource();
+ Player* player = itr->GetSource();
if (!player || (ignore != 0 && player->GetGUID() == ignore) || (ignorePlayersInBGRaid && player->GetGroup() != this))
continue;
@@ -1568,7 +1564,7 @@ void Group::BroadcastReadyCheck(WorldPacket* packet)
{
for (GroupReference* itr = GetFirstMember(); itr != NULL; itr = itr->next())
{
- Player* player = itr->getSource();
+ Player* player = itr->GetSource();
if (player && player->GetSession())
if (IsLeader(player->GetGUID()) || IsAssistant(player->GetGUID()))
player->GetSession()->SendPacket(packet);
@@ -1774,7 +1770,7 @@ GroupJoinBattlegroundResult Group::CanJoinBattlegroundQueue(Battleground const*
return ERR_BATTLEGROUND_NONE; // ERR_GROUP_JOIN_BATTLEGROUND_TOO_MANY handled on client side
// get a player as reference, to compare other players' stats to (arena team id, queue id based on level, etc.)
- Player* reference = GetFirstMember()->getSource();
+ Player* reference = GetFirstMember()->GetSource();
// no reference found, can't join this way
if (!reference)
return ERR_BATTLEGROUND_JOIN_FAILED;
@@ -1792,7 +1788,7 @@ GroupJoinBattlegroundResult Group::CanJoinBattlegroundQueue(Battleground const*
memberscount = 0;
for (GroupReference* itr = GetFirstMember(); itr != NULL; itr = itr->next(), ++memberscount)
{
- Player* member = itr->getSource();
+ Player* member = itr->GetSource();
// offline member? don't let join
if (!member)
return ERR_BATTLEGROUND_JOIN_FAILED;
@@ -1858,7 +1854,7 @@ void Group::SetDungeonDifficulty(Difficulty difficulty)
for (GroupReference* itr = GetFirstMember(); itr != NULL; itr = itr->next())
{
- Player* player = itr->getSource();
+ Player* player = itr->GetSource();
if (!player->GetSession())
continue;
@@ -1882,7 +1878,7 @@ void Group::SetRaidDifficulty(Difficulty difficulty)
for (GroupReference* itr = GetFirstMember(); itr != NULL; itr = itr->next())
{
- Player* player = itr->getSource();
+ Player* player = itr->GetSource();
if (!player->GetSession())
continue;
@@ -1895,7 +1891,7 @@ bool Group::InCombatToInstance(uint32 instanceId)
{
for (GroupReference* itr = GetFirstMember(); itr != NULL; itr = itr->next())
{
- Player* player = itr->getSource();
+ Player* player = itr->GetSource();
if (player && !player->getAttackers().empty() && player->GetInstanceId() == instanceId && (player->GetMap()->IsRaidOrHeroicDungeon()))
for (std::set<Unit*>::const_iterator i = player->getAttackers().begin(); i != player->getAttackers().end(); ++i)
if ((*i) && (*i)->GetTypeId() == TYPEID_UNIT && (*i)->ToCreature()->GetCreatureTemplate()->flags_extra & CREATURE_FLAG_EXTRA_INSTANCE_BIND)
@@ -2070,7 +2066,7 @@ void Group::UnbindInstance(uint32 mapid, uint8 difficulty, bool unload)
void Group::_homebindIfInstance(Player* player)
{
- if (player && !player->isGameMaster() && sMapStore.LookupEntry(player->GetMapId())->IsDungeon())
+ if (player && !player->IsGameMaster() && sMapStore.LookupEntry(player->GetMapId())->IsDungeon())
player->m_InstanceValid = false;
}
@@ -2338,7 +2334,7 @@ void Group::DelinkMember(uint64 guid)
while (ref)
{
GroupReference* nextRef = ref->next();
- if (ref->getSource()->GetGUID() == guid)
+ if (ref->GetSource()->GetGUID() == guid)
{
ref->unlink();
break;
diff --git a/src/server/game/Guilds/Guild.cpp b/src/server/game/Guilds/Guild.cpp
index 6f118126b3b..d31b4b74b2e 100644
--- a/src/server/game/Guilds/Guild.cpp
+++ b/src/server/game/Guilds/Guild.cpp
@@ -2123,7 +2123,7 @@ bool Guild::Validate()
_SetLeaderGUID(pLeader);
// Check config if multiple guildmasters are allowed
- if (!ConfigMgr::GetBoolDefault("Guild.AllowMultipleGuildMaster", 0))
+ if (!sConfigMgr->GetBoolDefault("Guild.AllowMultipleGuildMaster", 0))
for (Members::iterator itr = m_members.begin(); itr != m_members.end(); ++itr)
if (itr->second->GetRankId() == GR_GUILDMASTER && !itr->second->IsSamePlayer(m_leaderGuid))
itr->second->ChangeRank(GR_OFFICER);
@@ -2571,7 +2571,7 @@ inline int32 Guild::_GetMemberRemainingSlots(Member const* member, uint8 tabId)
uint8 rankId = member->GetRankId();
if (rankId == GR_GUILDMASTER)
return GUILD_WITHDRAW_SLOT_UNLIMITED;
- if ((_GetRankBankTabRights(rankId, tabId) & GUILD_BANK_RIGHT_VIEW_TAB) != GR_RIGHT_EMPTY)
+ if ((_GetRankBankTabRights(rankId, tabId) & GUILD_BANK_RIGHT_VIEW_TAB) != 0)
{
int32 remaining = _GetRankBankTabSlotsPerDay(rankId, tabId) - member->GetBankWithdrawValue(tabId);
if (remaining > 0)
@@ -2589,7 +2589,7 @@ inline int32 Guild::_GetMemberRemainingMoney(Member const* member) const
if (rankId == GR_GUILDMASTER)
return GUILD_WITHDRAW_MONEY_UNLIMITED;
- if ((_GetRankRights(rankId) & (GR_RIGHT_WITHDRAW_REPAIR | GR_RIGHT_WITHDRAW_GOLD)) != GR_RIGHT_EMPTY)
+ if ((_GetRankRights(rankId) & (GR_RIGHT_WITHDRAW_REPAIR | GR_RIGHT_WITHDRAW_GOLD)) != 0)
{
int32 remaining = _GetRankBankMoneyPerDay(rankId) - member->GetBankWithdrawValue(GUILD_BANK_MAX_TABS);
if (remaining > 0)
diff --git a/src/server/game/Guilds/GuildMgr.cpp b/src/server/game/Guilds/GuildMgr.cpp
index 583cfa11be9..3fc4e839651 100644
--- a/src/server/game/Guilds/GuildMgr.cpp
+++ b/src/server/game/Guilds/GuildMgr.cpp
@@ -199,7 +199,7 @@ void GuildMgr::LoadGuilds()
}
while (result->NextRow());
- TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, ">> Loaded %u guild members int %u ms", count, GetMSTimeDiffToNow(oldMSTime));
+ TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, ">> Loaded %u guild members in %u ms", count, GetMSTimeDiffToNow(oldMSTime));
}
}
diff --git a/src/server/game/Handlers/AuctionHouseHandler.cpp b/src/server/game/Handlers/AuctionHouseHandler.cpp
index cd914951ae8..d193852eb1c 100644
--- a/src/server/game/Handlers/AuctionHouseHandler.cpp
+++ b/src/server/game/Handlers/AuctionHouseHandler.cpp
@@ -30,9 +30,6 @@
#include "Util.h"
#include "AccountMgr.h"
-//please DO NOT use iterator++, because it is slower than ++iterator!!!
-//post-incrementation is always slower than pre-incrementation !
-
//void called when player click on auctioneer npc
void WorldSession::HandleAuctionHelloOpcode(WorldPacket& recvData)
{
@@ -230,140 +227,137 @@ void WorldSession::HandleAuctionSellItem(WorldPacket& recvData)
}
}
- for (uint32 i = 0; i < itemsCount; ++i)
+ Item* item = items[0];
+
+ uint32 auctionTime = uint32(etime * sWorld->getRate(RATE_AUCTION_TIME));
+ AuctionHouseObject* auctionHouse = sAuctionMgr->GetAuctionsMap(creature->getFaction());
+
+ uint32 deposit = sAuctionMgr->GetAuctionDeposit(auctionHouseEntry, etime, item, finalCount);
+ if (!_player->HasEnoughMoney(deposit))
{
- Item* item = items[i];
+ SendAuctionCommandResult(0, AUCTION_SELL_ITEM, ERR_AUCTION_NOT_ENOUGHT_MONEY);
+ return;
+ }
+
+ AuctionEntry* AH = new AuctionEntry();
- uint32 auctionTime = uint32(etime * sWorld->getRate(RATE_AUCTION_TIME));
- AuctionHouseObject* auctionHouse = sAuctionMgr->GetAuctionsMap(creature->getFaction());
+ if (sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_AUCTION))
+ AH->auctioneer = 23442; ///@TODO - HARDCODED DB GUID, BAD BAD BAD
+ else
+ AH->auctioneer = GUID_LOPART(auctioneer);
- uint32 deposit = sAuctionMgr->GetAuctionDeposit(auctionHouseEntry, etime, item, finalCount);
- if (!_player->HasEnoughMoney(deposit))
+ // Required stack size of auction matches to current item stack size, just move item to auctionhouse
+ if (itemsCount == 1 && item->GetCount() == count[0])
+ {
+ if (HasPermission(RBAC_PERM_LOG_GM_TRADE))
{
- SendAuctionCommandResult(0, AUCTION_SELL_ITEM, ERR_AUCTION_NOT_ENOUGHT_MONEY);
- return;
+ sLog->outCommand(GetAccountId(), "GM %s (Account: %u) create auction: %s (Entry: %u Count: %u)",
+ GetPlayerName().c_str(), GetAccountId(), item->GetTemplate()->Name1.c_str(), item->GetEntry(), item->GetCount());
}
- _player->ModifyMoney(-int32(deposit));
-
- AuctionEntry* AH = new AuctionEntry;
AH->Id = sObjectMgr->GenerateAuctionID();
-
- if (sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_AUCTION))
- AH->auctioneer = 23442;
- else
- AH->auctioneer = GUID_LOPART(auctioneer);
-
- // Required stack size of auction matches to current item stack size, just move item to auctionhouse
- if (itemsCount == 1 && item->GetCount() == count[i])
+ AH->itemGUIDLow = item->GetGUIDLow();
+ AH->itemEntry = item->GetEntry();
+ AH->itemCount = item->GetCount();
+ AH->owner = _player->GetGUIDLow();
+ AH->startbid = bid;
+ AH->bidder = 0;
+ AH->bid = 0;
+ AH->buyout = buyout;
+ AH->expire_time = time(NULL) + auctionTime;
+ AH->deposit = deposit;
+ AH->auctionHouseEntry = auctionHouseEntry;
+
+ TC_LOG_INFO(LOG_FILTER_NETWORKIO, "CMSG_AUCTION_SELL_ITEM: Player %s (guid %d) is selling item %s entry %u (guid %d) to auctioneer %u with count %u with initial bid %u with buyout %u and with time %u (in sec) in auctionhouse %u", _player->GetName().c_str(), _player->GetGUIDLow(), item->GetTemplate()->Name1.c_str(), item->GetEntry(), item->GetGUIDLow(), AH->auctioneer, item->GetCount(), bid, buyout, auctionTime, AH->GetHouseId());
+ sAuctionMgr->AddAItem(item);
+ auctionHouse->AddAuction(AH);
+
+ _player->MoveItemFromInventory(item->GetBagSlot(), item->GetSlot(), true);
+
+ SQLTransaction trans = CharacterDatabase.BeginTransaction();
+ item->DeleteFromInventoryDB(trans);
+ item->SaveToDB(trans);
+ AH->SaveToDB(trans);
+ _player->SaveInventoryAndGoldToDB(trans);
+ CharacterDatabase.CommitTransaction(trans);
+
+ SendAuctionCommandResult(AH->Id, AUCTION_SELL_ITEM, ERR_AUCTION_OK);
+
+ GetPlayer()->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_CREATE_AUCTION, 1);
+ }
+ else // Required stack size of auction does not match to current item stack size, clone item and set correct stack size
+ {
+ Item* newItem = item->CloneItem(finalCount, _player);
+ if (!newItem)
{
- if (HasPermission(RBAC_PERM_LOG_GM_TRADE))
- {
- sLog->outCommand(GetAccountId(), "GM %s (Account: %u) create auction: %s (Entry: %u Count: %u)",
- GetPlayerName().c_str(), GetAccountId(), item->GetTemplate()->Name1.c_str(), item->GetEntry(), item->GetCount());
- }
-
- AH->itemGUIDLow = item->GetGUIDLow();
- AH->itemEntry = item->GetEntry();
- AH->itemCount = item->GetCount();
- AH->owner = _player->GetGUIDLow();
- AH->startbid = bid;
- AH->bidder = 0;
- AH->bid = 0;
- AH->buyout = buyout;
- AH->expire_time = time(NULL) + auctionTime;
- AH->deposit = deposit;
- AH->auctionHouseEntry = auctionHouseEntry;
-
- TC_LOG_INFO(LOG_FILTER_NETWORKIO, "CMSG_AUCTION_SELL_ITEM: Player %s (guid %d) is selling item %s entry %u (guid %d) to auctioneer %u with count %u with initial bid %u with buyout %u and with time %u (in sec) in auctionhouse %u", _player->GetName().c_str(), _player->GetGUIDLow(), item->GetTemplate()->Name1.c_str(), item->GetEntry(), item->GetGUIDLow(), AH->auctioneer, item->GetCount(), bid, buyout, auctionTime, AH->GetHouseId());
- sAuctionMgr->AddAItem(item);
- auctionHouse->AddAuction(AH);
-
- _player->MoveItemFromInventory(item->GetBagSlot(), item->GetSlot(), true);
-
- SQLTransaction trans = CharacterDatabase.BeginTransaction();
- item->DeleteFromInventoryDB(trans);
- item->SaveToDB(trans);
- AH->SaveToDB(trans);
- _player->SaveInventoryAndGoldToDB(trans);
- CharacterDatabase.CommitTransaction(trans);
-
- SendAuctionCommandResult(AH->Id, AUCTION_SELL_ITEM, ERR_AUCTION_OK);
-
- GetPlayer()->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_CREATE_AUCTION, 1);
+ TC_LOG_ERROR(LOG_FILTER_NETWORKIO, "CMSG_AUCTION_SELL_ITEM: Could not create clone of item %u", item->GetEntry());
+ SendAuctionCommandResult(0, AUCTION_SELL_ITEM, ERR_AUCTION_DATABASE_ERROR);
+ delete AH;
return;
}
- else // Required stack size of auction does not match to current item stack size, clone item and set correct stack size
+
+ if (HasPermission(RBAC_PERM_LOG_GM_TRADE))
{
- Item* newItem = item->CloneItem(finalCount, _player);
- if (!newItem)
- {
- TC_LOG_ERROR(LOG_FILTER_NETWORKIO, "CMSG_AUCTION_SELL_ITEM: Could not create clone of item %u", item->GetEntry());
- SendAuctionCommandResult(0, AUCTION_SELL_ITEM, ERR_AUCTION_DATABASE_ERROR);
- return;
- }
+ sLog->outCommand(GetAccountId(), "GM %s (Account: %u) create auction: %s (Entry: %u Count: %u)",
+ GetPlayerName().c_str(), GetAccountId(), newItem->GetTemplate()->Name1.c_str(), newItem->GetEntry(), newItem->GetCount());
+ }
- if (HasPermission(RBAC_PERM_LOG_GM_TRADE))
+ AH->Id = sObjectMgr->GenerateAuctionID();
+ AH->itemGUIDLow = newItem->GetGUIDLow();
+ AH->itemEntry = newItem->GetEntry();
+ AH->itemCount = newItem->GetCount();
+ AH->owner = _player->GetGUIDLow();
+ AH->startbid = bid;
+ AH->bidder = 0;
+ AH->bid = 0;
+ AH->buyout = buyout;
+ AH->expire_time = time(NULL) + auctionTime;
+ AH->deposit = deposit;
+ AH->auctionHouseEntry = auctionHouseEntry;
+
+ TC_LOG_INFO(LOG_FILTER_NETWORKIO, "CMSG_AUCTION_SELL_ITEM: Player %s (guid %d) is selling item %s entry %u (guid %d) to auctioneer %u with count %u with initial bid %u with buyout %u and with time %u (in sec) in auctionhouse %u", _player->GetName().c_str(), _player->GetGUIDLow(), newItem->GetTemplate()->Name1.c_str(), newItem->GetEntry(), newItem->GetGUIDLow(), AH->auctioneer, newItem->GetCount(), bid, buyout, auctionTime, AH->GetHouseId());
+ sAuctionMgr->AddAItem(newItem);
+ auctionHouse->AddAuction(AH);
+
+ for (uint32 j = 0; j < itemsCount; ++j)
+ {
+ Item* item2 = items[j];
+
+ // Item stack count equals required count, ready to delete item - cloned item will be used for auction
+ if (item2->GetCount() == count[j])
{
- sLog->outCommand(GetAccountId(), "GM %s (Account: %u) create auction: %s (Entry: %u Count: %u)",
- GetPlayerName().c_str(), GetAccountId(), newItem->GetTemplate()->Name1.c_str(), newItem->GetEntry(), newItem->GetCount());
- }
+ _player->MoveItemFromInventory(item2->GetBagSlot(), item2->GetSlot(), true);
- AH->itemGUIDLow = newItem->GetGUIDLow();
- AH->itemEntry = newItem->GetEntry();
- AH->itemCount = newItem->GetCount();
- AH->owner = _player->GetGUIDLow();
- AH->startbid = bid;
- AH->bidder = 0;
- AH->bid = 0;
- AH->buyout = buyout;
- AH->expire_time = time(NULL) + auctionTime;
- AH->deposit = deposit;
- AH->auctionHouseEntry = auctionHouseEntry;
-
- TC_LOG_INFO(LOG_FILTER_NETWORKIO, "CMSG_AUCTION_SELL_ITEM: Player %s (guid %d) is selling item %s entry %u (guid %d) to auctioneer %u with count %u with initial bid %u with buyout %u and with time %u (in sec) in auctionhouse %u", _player->GetName().c_str(), _player->GetGUIDLow(), newItem->GetTemplate()->Name1.c_str(), newItem->GetEntry(), newItem->GetGUIDLow(), AH->auctioneer, newItem->GetCount(), bid, buyout, auctionTime, AH->GetHouseId());
- sAuctionMgr->AddAItem(newItem);
- auctionHouse->AddAuction(AH);
-
- for (uint32 j = 0; j < itemsCount; ++j)
+ SQLTransaction trans = CharacterDatabase.BeginTransaction();
+ item2->DeleteFromInventoryDB(trans);
+ item2->DeleteFromDB(trans);
+ CharacterDatabase.CommitTransaction(trans);
+ }
+ else // Item stack count is bigger than required count, update item stack count and save to database - cloned item will be used for auction
{
- Item* item2 = items[j];
-
- // Item stack count equals required count, ready to delete item - cloned item will be used for auction
- if (item2->GetCount() == count[j])
- {
- _player->MoveItemFromInventory(item2->GetBagSlot(), item2->GetSlot(), true);
-
- SQLTransaction trans = CharacterDatabase.BeginTransaction();
- item2->DeleteFromInventoryDB(trans);
- item2->DeleteFromDB(trans);
- CharacterDatabase.CommitTransaction(trans);
- }
- else // Item stack count is bigger than required count, update item stack count and save to database - cloned item will be used for auction
- {
- item2->SetCount(item2->GetCount() - count[j]);
- item2->SetState(ITEM_CHANGED, _player);
- _player->ItemRemovedQuestCheck(item2->GetEntry(), count[j]);
- item2->SendUpdateToPlayer(_player);
-
- SQLTransaction trans = CharacterDatabase.BeginTransaction();
- item2->SaveToDB(trans);
- CharacterDatabase.CommitTransaction(trans);
- }
+ item2->SetCount(item2->GetCount() - count[j]);
+ item2->SetState(ITEM_CHANGED, _player);
+ _player->ItemRemovedQuestCheck(item2->GetEntry(), count[j]);
+ item2->SendUpdateToPlayer(_player);
+
+ SQLTransaction trans = CharacterDatabase.BeginTransaction();
+ item2->SaveToDB(trans);
+ CharacterDatabase.CommitTransaction(trans);
}
+ }
- SQLTransaction trans = CharacterDatabase.BeginTransaction();
- newItem->SaveToDB(trans);
- AH->SaveToDB(trans);
- _player->SaveInventoryAndGoldToDB(trans);
- CharacterDatabase.CommitTransaction(trans);
+ SQLTransaction trans = CharacterDatabase.BeginTransaction();
+ newItem->SaveToDB(trans);
+ AH->SaveToDB(trans);
+ _player->SaveInventoryAndGoldToDB(trans);
+ CharacterDatabase.CommitTransaction(trans);
- SendAuctionCommandResult(AH->Id, AUCTION_SELL_ITEM, ERR_AUCTION_OK);
+ SendAuctionCommandResult(AH->Id, AUCTION_SELL_ITEM, ERR_AUCTION_OK);
- GetPlayer()->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_CREATE_AUCTION, 1);
- return;
- }
+ GetPlayer()->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_CREATE_AUCTION, 1);
}
+
+ _player->ModifyMoney(-int32(deposit));
}
//this function is called when client bids or buys out auction
diff --git a/src/server/game/Handlers/BattleGroundHandler.cpp b/src/server/game/Handlers/BattleGroundHandler.cpp
index 61197cb10b0..db96c50347c 100644
--- a/src/server/game/Handlers/BattleGroundHandler.cpp
+++ b/src/server/game/Handlers/BattleGroundHandler.cpp
@@ -45,7 +45,7 @@ void WorldSession::HandleBattlemasterHelloOpcode(WorldPacket& recvData)
if (!unit)
return;
- if (!unit->isBattleMaster()) // it's not battlemaster
+ if (!unit->IsBattleMaster()) // it's not battlemaster
return;
// Stop the npc if moving
@@ -216,7 +216,7 @@ void WorldSession::HandleBattlemasterJoinOpcode(WorldPacket& recvData)
for (GroupReference* itr = grp->GetFirstMember(); itr != NULL; itr = itr->next())
{
- Player* member = itr->getSource();
+ Player* member = itr->GetSource();
if (!member)
continue; // this should never happen
@@ -441,13 +441,13 @@ void WorldSession::HandleBattleFieldPortOpcode(WorldPacket &recvData)
_player->SetBattlegroundEntryPoint();
// resurrect the player
- if (!_player->isAlive())
+ if (!_player->IsAlive())
{
_player->ResurrectPlayer(1.0f);
_player->SpawnCorpseBones();
}
// stop taxi flight at port
- if (_player->isInFlight())
+ if (_player->IsInFlight())
{
_player->GetMotionMaster()->MovementExpired();
_player->CleanupAfterTaxiFlight();
@@ -511,7 +511,7 @@ void WorldSession::HandleBattlefieldLeaveOpcode(WorldPacket& recvData)
recvData.read_skip<uint16>(); // unk3
// not allow leave battleground in combat
- if (_player->isInCombat())
+ if (_player->IsInCombat())
if (Battleground* bg = _player->GetBattleground())
if (bg->GetStatus() != STATUS_WAIT_LEAVE)
return;
@@ -603,7 +603,7 @@ void WorldSession::HandleBattlemasterJoinArena(WorldPacket& recvData)
if (!unit)
return;
- if (!unit->isBattleMaster()) // it's not battle master
+ if (!unit->IsBattleMaster()) // it's not battle master
return;
uint8 arenatype = 0;
@@ -712,7 +712,7 @@ void WorldSession::HandleBattlemasterJoinArena(WorldPacket& recvData)
for (GroupReference* itr = grp->GetFirstMember(); itr != NULL; itr = itr->next())
{
- Player* member = itr->getSource();
+ Player* member = itr->GetSource();
if (!member)
continue;
diff --git a/src/server/game/Handlers/CalendarHandler.cpp b/src/server/game/Handlers/CalendarHandler.cpp
index d0c8d3e3f1f..b47e085ab6c 100644
--- a/src/server/game/Handlers/CalendarHandler.cpp
+++ b/src/server/game/Handlers/CalendarHandler.cpp
@@ -446,8 +446,8 @@ void WorldSession::HandleCalendarEventInvite(WorldPacket& recvData)
}
// 946684800 is 01/01/2000 00:00:00 - default response time
- CalendarInvite* invite = new CalendarInvite(inviteId, 0, inviteeGuid, playerGuid, 946684800, CALENDAR_STATUS_INVITED, CALENDAR_RANK_PLAYER, "");
- sCalendarMgr->SendCalendarEventInvite(*invite);
+ CalendarInvite invite(inviteId, 0, inviteeGuid, playerGuid, 946684800, CALENDAR_STATUS_INVITED, CALENDAR_RANK_PLAYER, "");
+ sCalendarMgr->SendCalendarEventInvite(invite);
}
}
diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp
index e3f5893a871..415b67467c0 100644
--- a/src/server/game/Handlers/CharacterHandler.cpp
+++ b/src/server/game/Handlers/CharacterHandler.cpp
@@ -977,7 +977,7 @@ void WorldSession::HandlePlayerLogin(LoginQueryHolder* holder)
pCurrChar->LoadPet();
// Set FFA PvP for non GM in non-rest mode
- if (sWorld->IsFFAPvPRealm() && !pCurrChar->isGameMaster() && !pCurrChar->HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_RESTING))
+ if (sWorld->IsFFAPvPRealm() && !pCurrChar->IsGameMaster() && !pCurrChar->HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_RESTING))
pCurrChar->SetByteFlag(UNIT_FIELD_BYTES_2, 1, UNIT_BYTE2_FLAG_FFA_PVP);
if (pCurrChar->HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_CONTESTED_PVP))
@@ -1007,7 +1007,7 @@ void WorldSession::HandlePlayerLogin(LoginQueryHolder* holder)
if (sWorld->getBoolConfig(CONFIG_ALL_TAXI_PATHS))
pCurrChar->SetTaxiCheater(true);
- if (pCurrChar->isGameMaster())
+ if (pCurrChar->IsGameMaster())
SendNotification(LANG_GM_ON);
std::string IP_str = GetRemoteAddress();
@@ -1579,7 +1579,7 @@ void WorldSession::HandleEquipmentSetDelete(WorldPacket &recvData)
void WorldSession::HandleEquipmentSetUse(WorldPacket &recvData)
{
- if (_player->isInCombat())
+ if (_player->IsInCombat())
return;
TC_LOG_DEBUG(LOG_FILTER_NETWORKIO, "CMSG_EQUIPMENT_SET_USE");
diff --git a/src/server/game/Handlers/ChatHandler.cpp b/src/server/game/Handlers/ChatHandler.cpp
index 68f00a28cf1..4ebccc5bdef 100644
--- a/src/server/game/Handlers/ChatHandler.cpp
+++ b/src/server/game/Handlers/ChatHandler.cpp
@@ -125,7 +125,7 @@ void WorldSession::HandleMessagechatOpcode(WorldPacket& recvData)
else
{
// send in universal language if player in .gmon mode (ignore spell effects)
- if (sender->isGameMaster())
+ if (sender->IsGameMaster())
lang = LANG_UNIVERSAL;
else
{
@@ -269,7 +269,7 @@ void WorldSession::HandleMessagechatOpcode(WorldPacket& recvData)
SendPlayerNotFoundNotice(to);
return;
}
- if (!sender->isGameMaster() && sender->getLevel() < sWorld->getIntConfig(CONFIG_CHAT_WHISPER_LEVEL_REQ) && !receiver->IsInWhisperWhiteList(sender->GetGUID()))
+ if (!sender->IsGameMaster() && sender->getLevel() < sWorld->getIntConfig(CONFIG_CHAT_WHISPER_LEVEL_REQ) && !receiver->IsInWhisperWhiteList(sender->GetGUID()))
{
SendNotification(GetTrinityString(LANG_WHISPER_REQ), sWorld->getIntConfig(CONFIG_CHAT_WHISPER_LEVEL_REQ));
return;
@@ -281,7 +281,7 @@ void WorldSession::HandleMessagechatOpcode(WorldPacket& recvData)
return;
}
- if (GetPlayer()->HasAura(1852) && !receiver->isGameMaster())
+ if (GetPlayer()->HasAura(1852) && !receiver->IsGameMaster())
{
SendNotification(GetTrinityString(LANG_GM_SILENCE), GetPlayer()->GetName().c_str());
return;
@@ -289,7 +289,7 @@ void WorldSession::HandleMessagechatOpcode(WorldPacket& recvData)
// If player is a Gamemaster and doesn't accept whisper, we auto-whitelist every player that the Gamemaster is talking to
// We also do that if a player is under the required level for whispers.
- if (receiver->getLevel() < sWorld->getIntConfig(CONFIG_CHAT_WHISPER_LEVEL_REQ) ||
+ if (receiver->getLevel() < sWorld->getIntConfig(CONFIG_CHAT_WHISPER_LEVEL_REQ) ||
(HasPermission(RBAC_PERM_CAN_FILTER_WHISPERS) && !sender->isAcceptWhispers() && !sender->IsInWhisperWhiteList(receiver->GetGUID())))
sender->AddWhisperWhiteList(receiver->GetGUID());
@@ -435,7 +435,7 @@ void WorldSession::HandleMessagechatOpcode(WorldPacket& recvData)
} break;
case CHAT_MSG_AFK:
{
- if (!_player->isInCombat())
+ if (!_player->IsInCombat())
{
if (_player->isAFK()) // Already AFK
{
@@ -488,7 +488,7 @@ void WorldSession::HandleMessagechatOpcode(WorldPacket& recvData)
void WorldSession::HandleEmoteOpcode(WorldPacket& recvData)
{
- if (!GetPlayer()->isAlive() || GetPlayer()->HasUnitState(UNIT_STATE_DIED))
+ if (!GetPlayer()->IsAlive() || GetPlayer()->HasUnitState(UNIT_STATE_DIED))
return;
uint32 emote;
@@ -531,7 +531,7 @@ namespace Trinity
void WorldSession::HandleTextEmoteOpcode(WorldPacket& recvData)
{
- if (!GetPlayer()->isAlive())
+ if (!GetPlayer()->IsAlive())
return;
if (!GetPlayer()->CanSpeak())
diff --git a/src/server/game/Handlers/GroupHandler.cpp b/src/server/game/Handlers/GroupHandler.cpp
index 0bf76555567..27ef4960f79 100644
--- a/src/server/game/Handlers/GroupHandler.cpp
+++ b/src/server/game/Handlers/GroupHandler.cpp
@@ -84,14 +84,14 @@ void WorldSession::HandleGroupInviteOpcode(WorldPacket& recvData)
}
// restrict invite to GMs
- if (!sWorld->getBoolConfig(CONFIG_ALLOW_GM_GROUP) && !GetPlayer()->isGameMaster() && player->isGameMaster())
+ if (!sWorld->getBoolConfig(CONFIG_ALLOW_GM_GROUP) && !GetPlayer()->IsGameMaster() && player->IsGameMaster())
{
SendPartyResult(PARTY_OP_INVITE, membername, ERR_BAD_PLAYER_NAME_S);
return;
}
// can't group with
- if (!GetPlayer()->isGameMaster() && !sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_GROUP) && GetPlayer()->GetTeam() != player->GetTeam())
+ if (!GetPlayer()->IsGameMaster() && !sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_GROUP) && GetPlayer()->GetTeam() != player->GetTeam())
{
SendPartyResult(PARTY_OP_INVITE, membername, ERR_PLAYER_WRONG_FACTION);
return;
@@ -729,33 +729,28 @@ void WorldSession::BuildPartyMemberStatsChangedPacket(Player* player, WorldPacke
if (mask & GROUP_UPDATE_FLAG_STATUS)
{
- if (player)
- {
- uint16 playerStatus = MEMBER_STATUS_ONLINE;
- if (player->IsPvP())
- playerStatus |= MEMBER_STATUS_PVP;
+ uint16 playerStatus = MEMBER_STATUS_ONLINE;
+ if (player->IsPvP())
+ playerStatus |= MEMBER_STATUS_PVP;
- if (!player->isAlive())
- {
- if (player->HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_GHOST))
- playerStatus |= MEMBER_STATUS_GHOST;
- else
- playerStatus |= MEMBER_STATUS_DEAD;
- }
+ if (!player->IsAlive())
+ {
+ if (player->HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_GHOST))
+ playerStatus |= MEMBER_STATUS_GHOST;
+ else
+ playerStatus |= MEMBER_STATUS_DEAD;
+ }
- if (player->HasByteFlag(UNIT_FIELD_BYTES_2, 1, UNIT_BYTE2_FLAG_FFA_PVP))
- playerStatus |= MEMBER_STATUS_PVP_FFA;
+ if (player->HasByteFlag(UNIT_FIELD_BYTES_2, 1, UNIT_BYTE2_FLAG_FFA_PVP))
+ playerStatus |= MEMBER_STATUS_PVP_FFA;
- if (player->isAFK())
- playerStatus |= MEMBER_STATUS_AFK;
+ if (player->isAFK())
+ playerStatus |= MEMBER_STATUS_AFK;
- if (player->isDND())
- playerStatus |= MEMBER_STATUS_DND;
+ if (player->isDND())
+ playerStatus |= MEMBER_STATUS_DND;
- *data << uint16(playerStatus);
- }
- else
- *data << uint16(MEMBER_STATUS_OFFLINE);
+ *data << uint16(playerStatus);
}
if (mask & GROUP_UPDATE_FLAG_CUR_HP)
@@ -889,7 +884,7 @@ void WorldSession::BuildPartyMemberStatsChangedPacket(Player* player, WorldPacke
if (mask & GROUP_UPDATE_FLAG_VEHICLE_SEAT)
{
if (Vehicle* veh = player->GetVehicle())
- *data << uint32(veh->GetVehicleInfo()->m_seatID[player->m_movementInfo.t_seat]);
+ *data << uint32(veh->GetVehicleInfo()->m_seatID[player->m_movementInfo.transport.seat]);
else
*data << uint32(0);
}
@@ -940,7 +935,7 @@ void WorldSession::HandleRequestPartyMemberStatsOpcode(WorldPacket &recvData)
if (player->IsPvP())
playerStatus |= MEMBER_STATUS_PVP;
- if (!player->isAlive())
+ if (!player->IsAlive())
{
if (player->HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_GHOST))
playerStatus |= MEMBER_STATUS_GHOST;
@@ -1026,7 +1021,7 @@ void WorldSession::HandleRequestPartyMemberStatsOpcode(WorldPacket &recvData)
data.put<uint64>(maskPos, petAuraMask); // GROUP_UPDATE_FLAG_PET_AURAS
if (updateFlags & GROUP_UPDATE_FLAG_VEHICLE_SEAT)
- data << uint32(player->GetVehicle()->GetVehicleInfo()->m_seatID[player->m_movementInfo.t_seat]);
+ data << uint32(player->GetVehicle()->GetVehicleInfo()->m_seatID[player->m_movementInfo.transport.seat]);
SendPacket(&data);
}
diff --git a/src/server/game/Handlers/ItemHandler.cpp b/src/server/game/Handlers/ItemHandler.cpp
index e1a9dd27450..5f458edbb07 100644
--- a/src/server/game/Handlers/ItemHandler.cpp
+++ b/src/server/game/Handlers/ItemHandler.cpp
@@ -709,7 +709,7 @@ void WorldSession::HandleListInventoryOpcode(WorldPacket& recvData)
recvData >> guid;
- if (!GetPlayer()->isAlive())
+ if (!GetPlayer()->IsAlive())
return;
TC_LOG_DEBUG(LOG_FILTER_NETWORKIO, "WORLD: Recvd CMSG_LIST_INVENTORY");
@@ -765,16 +765,16 @@ void WorldSession::SendListInventory(uint64 vendorGuid)
{
if (ItemTemplate const* itemTemplate = sObjectMgr->GetItemTemplate(item->item))
{
- if (!(itemTemplate->AllowableClass & _player->getClassMask()) && itemTemplate->Bonding == BIND_WHEN_PICKED_UP && !_player->isGameMaster())
+ if (!(itemTemplate->AllowableClass & _player->getClassMask()) && itemTemplate->Bonding == BIND_WHEN_PICKED_UP && !_player->IsGameMaster())
continue;
// Only display items in vendor lists for the team the
// player is on. If GM on, display all items.
- if (!_player->isGameMaster() && ((itemTemplate->Flags2 & ITEM_FLAGS_EXTRA_HORDE_ONLY && _player->GetTeam() == ALLIANCE) || (itemTemplate->Flags2 == ITEM_FLAGS_EXTRA_ALLIANCE_ONLY && _player->GetTeam() == HORDE)))
+ if (!_player->IsGameMaster() && ((itemTemplate->Flags2 & ITEM_FLAGS_EXTRA_HORDE_ONLY && _player->GetTeam() == ALLIANCE) || (itemTemplate->Flags2 == ITEM_FLAGS_EXTRA_ALLIANCE_ONLY && _player->GetTeam() == HORDE)))
continue;
// Items sold out are not displayed in list
uint32 leftInStock = !item->maxcount ? 0xFFFFFFFF : vendor->GetVendorItemCurrentCount(item);
- if (!_player->isGameMaster() && !leftInStock)
+ if (!_player->IsGameMaster() && !leftInStock)
continue;
ConditionList conditions = sConditionMgr->GetConditionsForNpcVendorEvent(vendor->GetEntry(), item->item);
@@ -784,8 +784,6 @@ void WorldSession::SendListInventory(uint64 vendorGuid)
continue;
}
- ++count;
-
// reputation discount
int32 price = item->IsGoldRequired(itemTemplate) ? uint32(floor(itemTemplate->BuyPrice * discountMod)) : 0;
@@ -797,6 +795,9 @@ void WorldSession::SendListInventory(uint64 vendorGuid)
data << uint32(itemTemplate->MaxDurability);
data << uint32(itemTemplate->BuyCount);
data << uint32(item->ExtendedCost);
+
+ if (++count >= MAX_VENDOR_ITEMS)
+ break;
}
}
}
@@ -990,7 +991,7 @@ void WorldSession::HandleAutoStoreBankItemOpcode(WorldPacket& recvPacket)
void WorldSession::HandleSetAmmoOpcode(WorldPacket& recvData)
{
- if (!GetPlayer()->isAlive())
+ if (!GetPlayer()->IsAlive())
{
GetPlayer()->SendEquipError(EQUIP_ERR_YOU_ARE_DEAD, NULL, NULL);
return;
@@ -1007,15 +1008,14 @@ void WorldSession::HandleSetAmmoOpcode(WorldPacket& recvData)
GetPlayer()->SetAmmo(item);
}
-void WorldSession::SendEnchantmentLog(uint64 Target, uint64 Caster, uint32 ItemID, uint32 SpellID)
+void WorldSession::SendEnchantmentLog(uint64 target, uint64 caster, uint32 itemId, uint32 enchantId)
{
- WorldPacket data(SMSG_ENCHANTMENTLOG, (8+8+4+4+1)); // last check 2.0.10
- data << uint64(Target);
- data << uint64(Caster);
- data << uint32(ItemID);
- data << uint32(SpellID);
- data << uint8(0);
- SendPacket(&data);
+ WorldPacket data(SMSG_ENCHANTMENTLOG, (8+8+4+4)); // last check 2.0.10
+ data.appendPackGUID(target);
+ data.appendPackGUID(caster);
+ data << uint32(itemId);
+ data << uint32(enchantId);
+ GetPlayer()->SendMessageToSet(&data, true);
}
void WorldSession::SendItemEnchantTimeUpdate(uint64 Playerguid, uint64 Itemguid, uint32 slot, uint32 Duration)
@@ -1334,7 +1334,7 @@ void WorldSession::HandleSocketOpcode(WorldPacket& recvData)
{
if (GemEnchants[i])
{
- itemTarget->SetEnchantment(EnchantmentSlot(SOCK_ENCHANTMENT_SLOT+i), GemEnchants[i], 0, 0);
+ itemTarget->SetEnchantment(EnchantmentSlot(SOCK_ENCHANTMENT_SLOT+i), GemEnchants[i], 0, 0, _player->GetGUID());
if (Item* guidItem = _player->GetItemByGuid(gem_guids[i]))
_player->DestroyItem(guidItem->GetBagSlot(), guidItem->GetSlot(), true);
}
@@ -1347,7 +1347,7 @@ void WorldSession::HandleSocketOpcode(WorldPacket& recvData)
if (SocketBonusActivated ^ SocketBonusToBeActivated) //if there was a change...
{
_player->ApplyEnchantment(itemTarget, BONUS_ENCHANTMENT_SLOT, false);
- itemTarget->SetEnchantment(BONUS_ENCHANTMENT_SLOT, (SocketBonusToBeActivated ? itemTarget->GetTemplate()->socketBonus : 0), 0, 0);
+ itemTarget->SetEnchantment(BONUS_ENCHANTMENT_SLOT, (SocketBonusToBeActivated ? itemTarget->GetTemplate()->socketBonus : 0), 0, 0, _player->GetGUID());
_player->ApplyEnchantment(itemTarget, BONUS_ENCHANTMENT_SLOT, true);
//it is not displayed, client has an inbuilt system to determine if the bonus is activated
}
@@ -1356,6 +1356,8 @@ void WorldSession::HandleSocketOpcode(WorldPacket& recvData)
_player->RemoveTradeableItem(itemTarget);
itemTarget->ClearSoulboundTradeable(_player); // clear tradeable flag
+
+ itemTarget->SendUpdateSockets();
}
void WorldSession::HandleCancelTempEnchantmentOpcode(WorldPacket& recvData)
diff --git a/src/server/game/Handlers/LFGHandler.cpp b/src/server/game/Handlers/LFGHandler.cpp
index 4885fa38bb5..d289d0f65b8 100644
--- a/src/server/game/Handlers/LFGHandler.cpp
+++ b/src/server/game/Handlers/LFGHandler.cpp
@@ -244,7 +244,7 @@ void WorldSession::HandleLfgPartyLockInfoRequestOpcode(WorldPacket& /*recvData*
lfg::LfgLockPartyMap lockMap;
for (GroupReference* itr = group->GetFirstMember(); itr != NULL; itr = itr->next())
{
- Player* plrg = itr->getSource();
+ Player* plrg = itr->GetSource();
if (!plrg)
continue;
diff --git a/src/server/game/Handlers/LootHandler.cpp b/src/server/game/Handlers/LootHandler.cpp
index 6c87b9486f2..cdcf4c53dd3 100644
--- a/src/server/game/Handlers/LootHandler.cpp
+++ b/src/server/game/Handlers/LootHandler.cpp
@@ -81,7 +81,7 @@ void WorldSession::HandleAutostoreLootItemOpcode(WorldPacket& recvData)
{
Creature* creature = GetPlayer()->GetMap()->GetCreature(lguid);
- bool lootAllowed = creature && creature->isAlive() == (player->getClass() == CLASS_ROGUE && creature->lootForPickPocketed);
+ bool lootAllowed = creature && creature->IsAlive() == (player->getClass() == CLASS_ROGUE && creature->lootForPickPocketed);
if (!lootAllowed || !creature->IsWithinDistInMap(_player, INTERACTION_DISTANCE))
{
@@ -148,11 +148,11 @@ void WorldSession::HandleLootMoneyOpcode(WorldPacket& /*recvData*/)
case HIGHGUID_VEHICLE:
{
Creature* creature = player->GetMap()->GetCreature(guid);
- bool lootAllowed = creature && creature->isAlive() == (player->getClass() == CLASS_ROGUE && creature->lootForPickPocketed);
+ bool lootAllowed = creature && creature->IsAlive() == (player->getClass() == CLASS_ROGUE && creature->lootForPickPocketed);
if (lootAllowed && creature->IsWithinDistInMap(player, INTERACTION_DISTANCE))
{
loot = &creature->loot;
- if (creature->isAlive())
+ if (creature->IsAlive())
shareMoney = false;
}
break;
@@ -171,7 +171,7 @@ void WorldSession::HandleLootMoneyOpcode(WorldPacket& /*recvData*/)
std::vector<Player*> playersNear;
for (GroupReference* itr = group->GetFirstMember(); itr != NULL; itr = itr->next())
{
- Player* member = itr->getSource();
+ Player* member = itr->GetSource();
if (!member)
continue;
@@ -223,7 +223,7 @@ void WorldSession::HandleLootOpcode(WorldPacket& recvData)
recvData >> guid;
// Check possible cheat
- if (!_player->isAlive())
+ if (!_player->IsAlive())
return;
GetPlayer()->SendLoot(guid, LOOT_CORPSE);
@@ -357,7 +357,7 @@ void WorldSession::DoLootRelease(uint64 lguid)
{
Creature* creature = GetPlayer()->GetMap()->GetCreature(lguid);
- bool lootAllowed = creature && creature->isAlive() == (player->getClass() == CLASS_ROGUE && creature->lootForPickPocketed);
+ bool lootAllowed = creature && creature->IsAlive() == (player->getClass() == CLASS_ROGUE && creature->lootForPickPocketed);
if (!lootAllowed || !creature->IsWithinDistInMap(_player, INTERACTION_DISTANCE))
return;
@@ -365,7 +365,7 @@ void WorldSession::DoLootRelease(uint64 lguid)
if (loot->isLooted())
{
// skip pickpocketing loot for speed, skinning timer reduction is no-op in fact
- if (!creature->isAlive())
+ if (!creature->IsAlive())
creature->AllLootRemovedFromCorpse();
creature->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
diff --git a/src/server/game/Handlers/MailHandler.cpp b/src/server/game/Handlers/MailHandler.cpp
index f75c96c0898..2bec62f026d 100644
--- a/src/server/game/Handlers/MailHandler.cpp
+++ b/src/server/game/Handlers/MailHandler.cpp
@@ -105,7 +105,7 @@ void WorldSession::HandleSendMail(WorldPacket& recvData)
uint32 reqmoney = cost + money;
- if (!player->HasEnoughMoney(reqmoney) && !player->isGameMaster())
+ if (!player->HasEnoughMoney(reqmoney) && !player->IsGameMaster())
{
player->SendMailResult(0, MAIL_SEND, MAIL_ERR_NOT_ENOUGH_MONEY);
return;
@@ -259,10 +259,10 @@ void WorldSession::HandleSendMail(WorldPacket& recvData)
Item* item = items[i];
if (log)
{
- sLog->outCommand(GetAccountId(), "GM %s (Account: %u) mail item: %s (Entry: %u Count: %u) "
- "to player: %s (Account: %u)", GetPlayerName().c_str(), GetAccountId(),
+ sLog->outCommand(GetAccountId(), "GM %s (GUID: %u) (Account: %u) mail item: %s (Entry: %u Count: %u) "
+ "to player: %s (GUID: %u) (Account: %u)", GetPlayerName().c_str(), GetGuidLow(), GetAccountId(),
item->GetTemplate()->Name1.c_str(), item->GetEntry(), item->GetCount(),
- receiverName.c_str(), receiverAccountId);
+ receiverName.c_str(), GUID_LOPART(receiverGuid), receiverAccountId);
}
item->SetNotRefundable(GetPlayer()); // makes the item no longer refundable
@@ -281,8 +281,8 @@ void WorldSession::HandleSendMail(WorldPacket& recvData)
if (log && money > 0)
{
- sLog->outCommand(GetAccountId(), "GM %s (Account: %u) mail money: %u to player: %s (Account: %u)",
- GetPlayerName().c_str(), GetAccountId(), money, receiverName.c_str(), receiverAccountId);
+ sLog->outCommand(GetAccountId(), "GM %s (GUID: %u) (Account: %u) mail money: %u to player: %s (GUID: %u) (Account: %u)",
+ GetPlayerName().c_str(), GetGuidLow(), GetAccountId(), money, receiverName.c_str(), GUID_LOPART(receiverGuid), receiverAccountId);
}
}
diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp
index a17b455506a..e8d781a8f60 100644
--- a/src/server/game/Handlers/MiscHandler.cpp
+++ b/src/server/game/Handlers/MiscHandler.cpp
@@ -62,7 +62,7 @@ void WorldSession::HandleRepopRequestOpcode(WorldPacket& recvData)
recvData.read_skip<uint8>();
- if (GetPlayer()->isAlive() || GetPlayer()->HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_GHOST))
+ if (GetPlayer()->IsAlive() || GetPlayer()->HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_GHOST))
return;
if (GetPlayer()->HasAuraType(SPELL_AURA_PREVENT_RESURRECTION))
@@ -372,14 +372,14 @@ void WorldSession::HandleLogoutRequestOpcode(WorldPacket& /*recvData*/)
if (uint64 lguid = GetPlayer()->GetLootGUID())
DoLootRelease(lguid);
- bool instantLogout = (GetPlayer()->HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_RESTING) && !GetPlayer()->isInCombat()) ||
- GetPlayer()->isInFlight() || HasPermission(RBAC_PERM_INSTANT_LOGOUT);
+ bool instantLogout = (GetPlayer()->HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_RESTING) && !GetPlayer()->IsInCombat()) ||
+ GetPlayer()->IsInFlight() || HasPermission(RBAC_PERM_INSTANT_LOGOUT);
/// TODO: Possibly add RBAC permission to log out in combat
bool canLogoutInCombat = GetPlayer()->HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_RESTING);
uint32 reason = 0;
- if (GetPlayer()->isInCombat() && !canLogoutInCombat)
+ if (GetPlayer()->IsInCombat() && !canLogoutInCombat)
reason = 1;
else if (GetPlayer()->m_movementInfo.HasMovementFlag(MOVEMENTFLAG_FALLING | MOVEMENTFLAG_FALLING_FAR))
reason = 3; // is jumping or falling
@@ -734,7 +734,7 @@ void WorldSession::HandleReclaimCorpseOpcode(WorldPacket& recvData)
uint64 guid;
recvData >> guid;
- if (GetPlayer()->isAlive())
+ if (GetPlayer()->IsAlive())
return;
// do not allow corpse reclaim in arena
@@ -773,7 +773,7 @@ void WorldSession::HandleResurrectResponseOpcode(WorldPacket& recvData)
recvData >> guid;
recvData >> status;
- if (GetPlayer()->isAlive())
+ if (GetPlayer()->IsAlive())
return;
if (status == 0)
@@ -813,7 +813,7 @@ void WorldSession::HandleAreaTriggerOpcode(WorldPacket& recvData)
TC_LOG_DEBUG(LOG_FILTER_NETWORKIO, "CMSG_AREATRIGGER. Trigger ID: %u", triggerId);
Player* player = GetPlayer();
- if (player->isInFlight())
+ if (player->IsInFlight())
{
TC_LOG_DEBUG(LOG_FILTER_NETWORKIO, "HandleAreaTriggerOpcode: Player '%s' (GUID: %u) in flight, ignore Area Trigger ID:%u",
player->GetName().c_str(), player->GetGUIDLow(), triggerId);
@@ -887,7 +887,7 @@ void WorldSession::HandleAreaTriggerOpcode(WorldPacket& recvData)
if (sScriptMgr->OnAreaTrigger(player, atEntry))
return;
- if (player->isAlive())
+ if (player->IsAlive())
if (uint32 questId = sObjectMgr->GetQuestForAreaTrigger(triggerId))
if (player->GetQuestStatus(questId) == QUEST_STATUS_INCOMPLETE)
player->AreaExploredOrEventHappens(questId);
@@ -999,7 +999,7 @@ void WorldSession::HandleRequestAccountData(WorldPacket& recvData)
TC_LOG_DEBUG(LOG_FILTER_NETWORKIO, "RAD: type %u", type);
- if (type > NUM_ACCOUNT_DATA_TYPES)
+ if (type >= NUM_ACCOUNT_DATA_TYPES)
return;
AccountData* adata = GetAccountData(AccountDataType(type));
@@ -1181,7 +1181,7 @@ void WorldSession::HandleInspectOpcode(WorldPacket& recvData)
WorldPacket data(SMSG_INSPECT_TALENT, guid_size+4+talent_points);
data.append(player->GetPackGUID());
- if (sWorld->getBoolConfig(CONFIG_TALENTS_INSPECTING) || _player->isGameMaster())
+ if (sWorld->getBoolConfig(CONFIG_TALENTS_INSPECTING) || _player->IsGameMaster())
player->BuildPlayerTalentsInfoData(&data);
else
{
@@ -1235,7 +1235,7 @@ void WorldSession::HandleWorldTeleportOpcode(WorldPacket& recvData)
TC_LOG_DEBUG(LOG_FILTER_NETWORKIO, "WORLD: Received CMSG_WORLD_TELEPORT");
- if (GetPlayer()->isInFlight())
+ if (GetPlayer()->IsInFlight())
{
TC_LOG_DEBUG(LOG_FILTER_NETWORKIO, "Player '%s' (GUID: %u) in flight, ignore worldport command.",
GetPlayer()->GetName().c_str(), GetPlayer()->GetGUIDLow());
@@ -1480,7 +1480,7 @@ void WorldSession::HandleSetDungeonDifficultyOpcode(WorldPacket& recvData)
{
for (GroupReference* itr = group->GetFirstMember(); itr != NULL; itr = itr->next())
{
- Player* groupGuy = itr->getSource();
+ Player* groupGuy = itr->GetSource();
if (!groupGuy)
continue;
@@ -1538,7 +1538,7 @@ void WorldSession::HandleSetRaidDifficultyOpcode(WorldPacket& recvData)
{
for (GroupReference* itr = group->GetFirstMember(); itr != NULL; itr = itr->next())
{
- Player* groupGuy = itr->getSource();
+ Player* groupGuy = itr->GetSource();
if (!groupGuy)
continue;
@@ -1575,7 +1575,7 @@ void WorldSession::HandleCancelMountAuraOpcode(WorldPacket& /*recvData*/)
return;
}
- if (_player->isInFlight()) // not blizz like; no any messages on blizz
+ if (_player->IsInFlight()) // not blizz like; no any messages on blizz
{
ChatHandler(this).SendSysMessage(LANG_YOU_IN_FLIGHT);
return;
@@ -1670,7 +1670,7 @@ void WorldSession::HandleAreaSpiritHealerQueryOpcode(WorldPacket& recvData)
if (!unit)
return;
- if (!unit->isSpiritService()) // it's not spirit service
+ if (!unit->IsSpiritService()) // it's not spirit service
return;
if (bg)
@@ -1693,7 +1693,7 @@ void WorldSession::HandleAreaSpiritHealerQueueOpcode(WorldPacket& recvData)
if (!unit)
return;
- if (!unit->isSpiritService()) // it's not spirit service
+ if (!unit->IsSpiritService()) // it's not spirit service
return;
if (bg)
@@ -1705,7 +1705,7 @@ void WorldSession::HandleAreaSpiritHealerQueueOpcode(WorldPacket& recvData)
void WorldSession::HandleHearthAndResurrect(WorldPacket& /*recvData*/)
{
- if (_player->isInFlight())
+ if (_player->IsInFlight())
return;
if (/*Battlefield* bf = */sBattlefieldMgr->GetBattlefieldToZoneId(_player->GetZoneId()))
diff --git a/src/server/game/Handlers/MovementHandler.cpp b/src/server/game/Handlers/MovementHandler.cpp
index abb4b9310be..7a17e715063 100644
--- a/src/server/game/Handlers/MovementHandler.cpp
+++ b/src/server/game/Handlers/MovementHandler.cpp
@@ -283,14 +283,14 @@ void WorldSession::HandleMovementOpcodes(WorldPacket& recvData)
{
// transports size limited
// (also received at zeppelin leave by some reason with t_* as absolute in continent coordinates, can be safely skipped)
- if (movementInfo.t_pos.GetPositionX() > 50 || movementInfo.t_pos.GetPositionY() > 50 || movementInfo.t_pos.GetPositionZ() > 50)
+ if (movementInfo.transport.pos.GetPositionX() > 50 || movementInfo.transport.pos.GetPositionY() > 50 || movementInfo.transport.pos.GetPositionZ() > 50)
{
recvData.rfinish(); // prevent warnings spam
return;
}
- if (!Trinity::IsValidMapCoord(movementInfo.pos.GetPositionX() + movementInfo.t_pos.GetPositionX(), movementInfo.pos.GetPositionY() + movementInfo.t_pos.GetPositionY(),
- movementInfo.pos.GetPositionZ() + movementInfo.t_pos.GetPositionZ(), movementInfo.pos.GetOrientation() + movementInfo.t_pos.GetOrientation()))
+ if (!Trinity::IsValidMapCoord(movementInfo.pos.GetPositionX() + movementInfo.transport.pos.GetPositionX(), movementInfo.pos.GetPositionY() + movementInfo.transport.pos.GetPositionY(),
+ movementInfo.pos.GetPositionZ() + movementInfo.transport.pos.GetPositionZ(), movementInfo.pos.GetOrientation() + movementInfo.transport.pos.GetOrientation()))
{
recvData.rfinish(); // prevent warnings spam
return;
@@ -304,7 +304,7 @@ void WorldSession::HandleMovementOpcodes(WorldPacket& recvData)
// elevators also cause the client to send MOVEMENTFLAG_ONTRANSPORT - just dismount if the guid can be found in the transport list
for (MapManager::TransportSet::const_iterator iter = sMapMgr->m_Transports.begin(); iter != sMapMgr->m_Transports.end(); ++iter)
{
- if ((*iter)->GetGUID() == movementInfo.t_guid)
+ if ((*iter)->GetGUID() == movementInfo.transport.guid)
{
plrMover->m_transport = *iter;
(*iter)->AddPassenger(plrMover);
@@ -312,13 +312,13 @@ void WorldSession::HandleMovementOpcodes(WorldPacket& recvData)
}
}
}
- else if (plrMover->GetTransport()->GetGUID() != movementInfo.t_guid)
+ else if (plrMover->GetTransport()->GetGUID() != movementInfo.transport.guid)
{
bool foundNewTransport = false;
plrMover->m_transport->RemovePassenger(plrMover);
for (MapManager::TransportSet::const_iterator iter = sMapMgr->m_Transports.begin(); iter != sMapMgr->m_Transports.end(); ++iter)
{
- if ((*iter)->GetGUID() == movementInfo.t_guid)
+ if ((*iter)->GetGUID() == movementInfo.transport.guid)
{
foundNewTransport = true;
plrMover->m_transport = *iter;
@@ -330,16 +330,14 @@ void WorldSession::HandleMovementOpcodes(WorldPacket& recvData)
if (!foundNewTransport)
{
plrMover->m_transport = NULL;
- movementInfo.t_pos.Relocate(0.0f, 0.0f, 0.0f, 0.0f);
- movementInfo.t_time = 0;
- movementInfo.t_seat = -1;
+ movementInfo.transport.Reset();
}
}
}
if (!mover->GetTransport() && !mover->GetVehicle())
{
- GameObject* go = mover->GetMap()->GetGameObject(movementInfo.t_guid);
+ GameObject* go = mover->GetMap()->GetGameObject(movementInfo.transport.guid);
if (!go || go->GetGoType() != GAMEOBJECT_TYPE_TRANSPORT)
movementInfo.flags &= ~MOVEMENTFLAG_ONTRANSPORT;
}
@@ -348,13 +346,11 @@ void WorldSession::HandleMovementOpcodes(WorldPacket& recvData)
{
plrMover->m_transport->RemovePassenger(plrMover);
plrMover->m_transport = NULL;
- movementInfo.t_pos.Relocate(0.0f, 0.0f, 0.0f, 0.0f);
- movementInfo.t_time = 0;
- movementInfo.t_seat = -1;
+ movementInfo.transport.Reset();
}
// fall damage generation (ignore in flight case that can be triggered also at lags in moment teleportation to another map).
- if (opcode == MSG_MOVE_FALL_LAND && plrMover && !plrMover->isInFlight())
+ if (opcode == MSG_MOVE_FALL_LAND && plrMover && !plrMover->IsInFlight())
plrMover->HandleFall(movementInfo);
if (plrMover && ((movementInfo.flags & MOVEMENTFLAG_SWIMMING) != 0) != plrMover->IsInWater())
@@ -394,13 +390,13 @@ void WorldSession::HandleMovementOpcodes(WorldPacket& recvData)
// NOTE: this is actually called many times while falling
// even after the player has been teleported away
/// @todo discard movement packets after the player is rooted
- if (plrMover->isAlive())
+ if (plrMover->IsAlive())
{
plrMover->EnvironmentalDamage(DAMAGE_FALL_TO_VOID, GetPlayer()->GetMaxHealth());
// player can be alive if GM/etc
// change the death state to CORPSE to prevent the death timer from
// starting in the next player update
- if (!plrMover->isAlive())
+ if (!plrMover->IsAlive())
plrMover->KillPlayer();
}
}
@@ -546,10 +542,10 @@ void WorldSession::HandleMoveKnockBackAck(WorldPacket& recvData)
_player->BuildMovementPacket(&data);
// knockback specific info
- data << movementInfo.j_sinAngle;
- data << movementInfo.j_cosAngle;
- data << movementInfo.j_xyspeed;
- data << movementInfo.j_zspeed;
+ data << movementInfo.jump.sinAngle;
+ data << movementInfo.jump.cosAngle;
+ data << movementInfo.jump.xyspeed;
+ data << movementInfo.jump.zspeed;
_player->SendMessageToSet(&data, false);
}
@@ -586,7 +582,7 @@ void WorldSession::HandleMoveWaterWalkAck(WorldPacket& recvData)
void WorldSession::HandleSummonResponseOpcode(WorldPacket& recvData)
{
- if (!_player->isAlive() || _player->isInCombat())
+ if (!_player->IsAlive() || _player->IsInCombat())
return;
uint64 summoner_guid;
diff --git a/src/server/game/Handlers/NPCHandler.cpp b/src/server/game/Handlers/NPCHandler.cpp
index e08373b642b..e3921eec02f 100644
--- a/src/server/game/Handlers/NPCHandler.cpp
+++ b/src/server/game/Handlers/NPCHandler.cpp
@@ -132,10 +132,6 @@ void WorldSession::SendTrainerList(uint64 guid, const std::string& strTitle)
if (GetPlayer()->HasUnitState(UNIT_STATE_DIED))
GetPlayer()->RemoveAurasByType(SPELL_AURA_FEIGN_DEATH);
- // trainer list loaded at check;
- if (!unit->isCanTrainingOf(_player, true))
- return;
-
CreatureTemplate const* ci = unit->GetCreatureTemplate();
if (!ci)
@@ -254,9 +250,6 @@ void WorldSession::HandleTrainerBuySpellOpcode(WorldPacket& recvData)
if (GetPlayer()->HasUnitState(UNIT_STATE_DIED))
GetPlayer()->RemoveAurasByType(SPELL_AURA_FEIGN_DEATH);
- if (!unit->isCanTrainingOf(_player, true))
- return;
-
// check present spell in trainer spell list
TrainerSpellData const* trainer_spells = unit->GetTrainerSpells();
if (!trainer_spells)
@@ -318,13 +311,13 @@ void WorldSession::HandleGossipHelloOpcode(WorldPacket& recvData)
//if (GetPlayer()->HasUnitState(UNIT_STATE_DIED))
// GetPlayer()->RemoveAurasByType(SPELL_AURA_FEIGN_DEATH);
- if (unit->isArmorer() || unit->isCivilian() || unit->isQuestGiver() || unit->isServiceProvider() || unit->isGuard())
+ if (unit->IsArmorer() || unit->IsCivilian() || unit->IsQuestGiver() || unit->IsServiceProvider() || unit->IsGuard())
{
unit->StopMoving();
}
// If spiritguide, no need for gossip menu, just put player into resurrect queue
- if (unit->isSpiritGuide())
+ if (unit->IsSpiritGuide())
{
Battleground* bg = _player->GetBattleground();
if (bg)
@@ -445,7 +438,7 @@ void WorldSession::HandleBinderActivateOpcode(WorldPacket& recvData)
uint64 npcGUID;
recvData >> npcGUID;
- if (!GetPlayer()->IsInWorld() || !GetPlayer()->isAlive())
+ if (!GetPlayer()->IsInWorld() || !GetPlayer()->IsAlive())
return;
Creature* unit = GetPlayer()->GetNPCIfCanInteractWith(npcGUID, UNIT_NPC_FLAG_INNKEEPER);
@@ -535,7 +528,7 @@ void WorldSession::SendStablePetCallback(PreparedQueryResult result, uint64 guid
uint8 num = 0; // counter for place holder
// not let move dead pet in slot
- if (pet && pet->isAlive() && pet->getPetType() == HUNTER_PET)
+ if (pet && pet->IsAlive() && pet->getPetType() == HUNTER_PET)
{
data << uint32(pet->GetCharmInfo()->GetPetNumber());
data << uint32(pet->GetEntry());
@@ -581,7 +574,7 @@ void WorldSession::HandleStablePet(WorldPacket& recvData)
recvData >> npcGUID;
- if (!GetPlayer()->isAlive())
+ if (!GetPlayer()->IsAlive())
{
SendStableResult(STABLE_ERR_STABLE);
return;
@@ -600,7 +593,7 @@ void WorldSession::HandleStablePet(WorldPacket& recvData)
Pet* pet = _player->GetPet();
// can't place in stable dead pet
- if (!pet || !pet->isAlive() || pet->getPetType() != HUNTER_PET)
+ if (!pet || !pet->IsAlive() || pet->getPetType() != HUNTER_PET)
{
SendStableResult(STABLE_ERR_STABLE);
return;
@@ -697,10 +690,10 @@ void WorldSession::HandleUnstablePetCallback(PreparedQueryResult result, uint32
}
CreatureTemplate const* creatureInfo = sObjectMgr->GetCreatureTemplate(petEntry);
- if (!creatureInfo || !creatureInfo->isTameable(_player->CanTameExoticPets()))
+ if (!creatureInfo || !creatureInfo->IsTameable(_player->CanTameExoticPets()))
{
// if problem in exotic pet
- if (creatureInfo && creatureInfo->isTameable(true))
+ if (creatureInfo && creatureInfo->IsTameable(true))
SendStableResult(STABLE_ERR_EXOTIC);
else
SendStableResult(STABLE_ERR_STABLE);
@@ -708,7 +701,7 @@ void WorldSession::HandleUnstablePetCallback(PreparedQueryResult result, uint32
}
Pet* pet = _player->GetPet();
- if (pet && pet->isAlive())
+ if (pet && pet->IsAlive())
{
SendStableResult(STABLE_ERR_STABLE);
return;
@@ -828,10 +821,10 @@ void WorldSession::HandleStableSwapPetCallback(PreparedQueryResult result, uint3
}
CreatureTemplate const* creatureInfo = sObjectMgr->GetCreatureTemplate(petEntry);
- if (!creatureInfo || !creatureInfo->isTameable(_player->CanTameExoticPets()))
+ if (!creatureInfo || !creatureInfo->IsTameable(_player->CanTameExoticPets()))
{
// if problem in exotic pet
- if (creatureInfo && creatureInfo->isTameable(true))
+ if (creatureInfo && creatureInfo->IsTameable(true))
SendStableResult(STABLE_ERR_EXOTIC);
else
SendStableResult(STABLE_ERR_STABLE);
@@ -847,7 +840,7 @@ void WorldSession::HandleStableSwapPetCallback(PreparedQueryResult result, uint3
}
// move alive pet to slot or delete dead pet
- _player->RemovePet(pet, pet->isAlive() ? PetSaveMode(slot) : PET_SAVE_AS_DELETED);
+ _player->RemovePet(pet, pet->IsAlive() ? PetSaveMode(slot) : PET_SAVE_AS_DELETED);
// summon unstabled pet
Pet* newPet = new Pet(_player);
diff --git a/src/server/game/Handlers/PetHandler.cpp b/src/server/game/Handlers/PetHandler.cpp
index a8046f2f441..84bdaf4104f 100644
--- a/src/server/game/Handlers/PetHandler.cpp
+++ b/src/server/game/Handlers/PetHandler.cpp
@@ -51,7 +51,7 @@ void WorldSession::HandleDismissCritter(WorldPacket& recvData)
if (_player->GetCritterGUID() == pet->GetGUID())
{
- if (pet->GetTypeId() == TYPEID_UNIT && pet->ToCreature()->isSummon())
+ if (pet->GetTypeId() == TYPEID_UNIT && pet->ToCreature()->IsSummon())
pet->ToTempSummon()->UnSummon();
}
}
@@ -84,7 +84,7 @@ void WorldSession::HandlePetAction(WorldPacket& recvData)
return;
}
- if (!pet->isAlive())
+ if (!pet->IsAlive())
{
SpellInfo const* spell = (flag == ACT_ENABLED || flag == ACT_PASSIVE) ? sSpellMgr->GetSpellInfo(spellid) : NULL;
if (!spell)
@@ -104,7 +104,7 @@ void WorldSession::HandlePetAction(WorldPacket& recvData)
//If a pet is dismissed, m_Controlled will change
std::vector<Unit*> controlled;
for (Unit::ControlList::iterator itr = GetPlayer()->m_Controlled.begin(); itr != GetPlayer()->m_Controlled.end(); ++itr)
- if ((*itr)->GetEntry() == pet->GetEntry() && (*itr)->isAlive())
+ if ((*itr)->GetEntry() == pet->GetEntry() && (*itr)->IsAlive())
controlled.push_back(*itr);
for (std::vector<Unit*>::iterator itr = controlled.begin(); itr != controlled.end(); ++itr)
HandlePetActionHelper(*itr, guid1, spellid, flag, guid2);
@@ -133,7 +133,7 @@ void WorldSession::HandlePetStopAttack(WorldPacket &recvData)
return;
}
- if (!pet->isAlive())
+ if (!pet->IsAlive())
return;
pet->AttackStop();
@@ -200,9 +200,9 @@ void WorldSession::HandlePetActionHelper(Unit* pet, uint64 guid1, uint32 spellid
pet->ClearUnitState(UNIT_STATE_FOLLOW);
// This is true if pet has no target or has target but targets differs.
- if (pet->getVictim() != TargetUnit || (pet->getVictim() == TargetUnit && !pet->GetCharmInfo()->IsCommandAttack()))
+ if (pet->GetVictim() != TargetUnit || (pet->GetVictim() == TargetUnit && !pet->GetCharmInfo()->IsCommandAttack()))
{
- if (pet->getVictim())
+ if (pet->GetVictim())
pet->AttackStop();
if (pet->GetTypeId() != TYPEID_PLAYER && pet->ToCreature()->IsAIEnabled)
@@ -216,7 +216,7 @@ void WorldSession::HandlePetActionHelper(Unit* pet, uint64 guid1, uint32 spellid
pet->ToCreature()->AI()->AttackStart(TargetUnit);
//10% chance to play special pet attack talk, else growl
- if (pet->ToCreature()->isPet() && ((Pet*)pet)->getPetType() == SUMMON_PET && pet != TargetUnit && urand(0, 100) < 10)
+ if (pet->ToCreature()->IsPet() && ((Pet*)pet)->getPetType() == SUMMON_PET && pet != TargetUnit && urand(0, 100) < 10)
pet->SendPetTalk((uint32)PET_TALK_ATTACK);
else
{
@@ -226,7 +226,7 @@ void WorldSession::HandlePetActionHelper(Unit* pet, uint64 guid1, uint32 spellid
}
else // charmed player
{
- if (pet->getVictim() && pet->getVictim() != TargetUnit)
+ if (pet->GetVictim() && pet->GetVictim() != TargetUnit)
pet->AttackStop();
charmInfo->SetIsCommandAttack(true);
@@ -247,7 +247,7 @@ void WorldSession::HandlePetActionHelper(Unit* pet, uint64 guid1, uint32 spellid
else if (pet->GetOwnerGUID() == GetPlayer()->GetGUID())
{
ASSERT(pet->GetTypeId() == TYPEID_UNIT);
- if (pet->isPet())
+ if (pet->IsPet())
{
if (((Pet*)pet)->getPetType() == HUNTER_PET)
GetPlayer()->RemovePet((Pet*)pet, PET_SAVE_AS_DELETED);
@@ -329,19 +329,19 @@ void WorldSession::HandlePetActionHelper(Unit* pet, uint64 guid1, uint32 spellid
if (unit_target)
{
pet->SetInFront(unit_target);
- if (unit_target->GetTypeId() == TYPEID_PLAYER)
- pet->SendUpdateToPlayer((Player*)unit_target);
+ if (Player* player = unit_target->ToPlayer())
+ pet->SendUpdateToPlayer(player);
}
else if (Unit* unit_target2 = spell->m_targets.GetUnitTarget())
{
pet->SetInFront(unit_target2);
- if (unit_target2->GetTypeId() == TYPEID_PLAYER)
- pet->SendUpdateToPlayer((Player*)unit_target2);
+ if (Player* player = unit_target2->ToPlayer())
+ pet->SendUpdateToPlayer(player);
}
if (Unit* powner = pet->GetCharmerOrOwner())
- if (powner->GetTypeId() == TYPEID_PLAYER)
- pet->SendUpdateToPlayer(powner->ToPlayer());
+ if (Player* player = powner->ToPlayer())
+ pet->SendUpdateToPlayer(player);
result = SPELL_CAST_OK;
}
@@ -354,7 +354,7 @@ void WorldSession::HandlePetActionHelper(Unit* pet, uint64 guid1, uint32 spellid
//10% chance to play special pet attack talk, else growl
//actually this only seems to happen on special spells, fire shield for imp, torment for voidwalker, but it's stupid to check every spell
- if (pet->ToCreature()->isPet() && (((Pet*)pet)->getPetType() == SUMMON_PET) && (pet != unit_target) && (urand(0, 100) < 10))
+ if (pet->ToCreature()->IsPet() && (((Pet*)pet)->getPetType() == SUMMON_PET) && (pet != unit_target) && (urand(0, 100) < 10))
pet->SendPetTalk((uint32)PET_TALK_SPECIAL_SPELL);
else
{
@@ -364,9 +364,9 @@ void WorldSession::HandlePetActionHelper(Unit* pet, uint64 guid1, uint32 spellid
if (unit_target && !GetPlayer()->IsFriendlyTo(unit_target) && !pet->isPossessed() && !pet->IsVehicle())
{
// This is true if pet has no target or has target but targets differs.
- if (pet->getVictim() != unit_target)
+ if (pet->GetVictim() != unit_target)
{
- if (pet->getVictim())
+ if (pet->GetVictim())
pet->AttackStop();
pet->GetMotionMaster()->Clear();
if (pet->ToCreature()->IsAIEnabled)
@@ -432,7 +432,7 @@ void WorldSession::SendPetNameQuery(uint64 petguid, uint32 petnumber)
data << pet->GetName();
data << uint32(pet->GetUInt32Value(UNIT_FIELD_PET_NAME_TIMESTAMP));
- if (pet->isPet() && ((Pet*)pet)->GetDeclinedNames())
+ if (pet->IsPet() && ((Pet*)pet)->GetDeclinedNames())
{
data << uint8(1);
for (uint8 i = 0; i < MAX_DECLINED_NAME_CASES; ++i)
@@ -449,7 +449,7 @@ bool WorldSession::CheckStableMaster(uint64 guid)
// spell case or GM
if (guid == GetPlayer()->GetGUID())
{
- if (!GetPlayer()->isGameMaster() && !GetPlayer()->HasAuraType(SPELL_AURA_OPEN_STABLE))
+ if (!GetPlayer()->IsGameMaster() && !GetPlayer()->HasAuraType(SPELL_AURA_OPEN_STABLE))
{
TC_LOG_DEBUG(LOG_FILTER_NETWORKIO, "Player (GUID:%u) attempt open stable in cheating way.", GUID_LOPART(guid));
return false;
@@ -560,7 +560,7 @@ void WorldSession::HandlePetSetAction(WorldPacket& recvData)
//sign for autocast
if (act_state == ACT_ENABLED)
{
- if (pet->GetTypeId() == TYPEID_UNIT && pet->ToCreature()->isPet())
+ if (pet->GetTypeId() == TYPEID_UNIT && pet->ToCreature()->IsPet())
((Pet*)pet)->ToggleAutocast(spellInfo, true);
else
for (Unit::ControlList::iterator itr = GetPlayer()->m_Controlled.begin(); itr != GetPlayer()->m_Controlled.end(); ++itr)
@@ -570,7 +570,7 @@ void WorldSession::HandlePetSetAction(WorldPacket& recvData)
//sign for no/turn off autocast
else if (act_state == ACT_DISABLED)
{
- if (pet->GetTypeId() == TYPEID_UNIT && pet->ToCreature()->isPet())
+ if (pet->GetTypeId() == TYPEID_UNIT && pet->ToCreature()->IsPet())
((Pet*)pet)->ToggleAutocast(spellInfo, false);
else
for (Unit::ControlList::iterator itr = GetPlayer()->m_Controlled.begin(); itr != GetPlayer()->m_Controlled.end(); ++itr)
@@ -600,7 +600,7 @@ void WorldSession::HandlePetRename(WorldPacket& recvData)
Pet* pet = ObjectAccessor::FindPet(petguid);
// check it!
- if (!pet || !pet->isPet() || ((Pet*)pet)->getPetType()!= HUNTER_PET ||
+ if (!pet || !pet->IsPet() || ((Pet*)pet)->getPetType()!= HUNTER_PET ||
!pet->HasByteFlag(UNIT_FIELD_BYTES_2, 2, UNIT_CAN_BE_RENAMED) ||
pet->GetOwnerGUID() != _player->GetGUID() || !pet->GetCharmInfo())
return;
@@ -620,9 +620,9 @@ void WorldSession::HandlePetRename(WorldPacket& recvData)
pet->SetName(name);
- Unit* owner = pet->GetOwner();
- if (owner && (owner->GetTypeId() == TYPEID_PLAYER) && owner->ToPlayer()->GetGroup())
- owner->ToPlayer()->SetGroupUpdateFlag(GROUP_UPDATE_FLAG_PET_NAME);
+ Player* owner = pet->GetOwner();
+ if (owner && owner->GetGroup())
+ owner->SetGroupUpdateFlag(GROUP_UPDATE_FLAG_PET_NAME);
pet->RemoveByteFlag(UNIT_FIELD_BYTES_2, 2, UNIT_CAN_BE_RENAMED);
@@ -682,7 +682,7 @@ void WorldSession::HandlePetAbandon(WorldPacket& recvData)
Creature* pet = ObjectAccessor::GetCreatureOrPetOrVehicle(*_player, guid);
if (pet)
{
- if (pet->isPet())
+ if (pet->IsPet())
{
if (pet->GetGUID() == _player->GetPetGUID())
{
@@ -731,7 +731,7 @@ void WorldSession::HandlePetSpellAutocastOpcode(WorldPacket& recvPacket)
return;
}
- if (pet->isPet())
+ if (pet->IsPet())
((Pet*)pet)->ToggleAutocast(spellInfo, state);
else
pet->GetCharmInfo()->ToggleCreatureAutocast(spellInfo, state);
@@ -804,7 +804,7 @@ void WorldSession::HandlePetCastSpellOpcode(WorldPacket& recvPacket)
{
Creature* pet = caster->ToCreature();
pet->AddCreatureSpellCooldown(spellId);
- if (pet->isPet())
+ if (pet->IsPet())
{
Pet* p = (Pet*)pet;
// 10% chance to play special pet attack talk, else growl
diff --git a/src/server/game/Handlers/PetitionsHandler.cpp b/src/server/game/Handlers/PetitionsHandler.cpp
index cabdf657120..3b2a76a4b04 100644
--- a/src/server/game/Handlers/PetitionsHandler.cpp
+++ b/src/server/game/Handlers/PetitionsHandler.cpp
@@ -98,7 +98,7 @@ void WorldSession::HandlePetitionBuyOpcode(WorldPacket& recvData)
uint32 charterid = 0;
uint32 cost = 0;
uint32 type = 0;
- if (creature->isTabardDesigner())
+ if (creature->IsTabardDesigner())
{
// if tabard designer, then trying to buy a guild charter.
// do not let if already in guild.
@@ -941,7 +941,7 @@ void WorldSession::SendPetitionShowList(uint64 guid)
WorldPacket data(SMSG_PETITION_SHOWLIST, 8+1+4*6);
data << guid; // npc guid
- if (creature->isTabardDesigner())
+ if (creature->IsTabardDesigner())
{
data << uint8(1); // count
data << uint32(1); // index
diff --git a/src/server/game/Handlers/QuestHandler.cpp b/src/server/game/Handlers/QuestHandler.cpp
index 4e4ec1350cb..e51d87c7733 100644
--- a/src/server/game/Handlers/QuestHandler.cpp
+++ b/src/server/game/Handlers/QuestHandler.cpp
@@ -29,7 +29,6 @@
#include "ObjectAccessor.h"
#include "Group.h"
#include "Battleground.h"
-#include "BattlegroundAV.h"
#include "ScriptMgr.h"
#include "GameObjectAI.h"
@@ -120,15 +119,37 @@ void WorldSession::HandleQuestgiverAcceptQuestOpcode(WorldPacket& recvData)
Object* object = ObjectAccessor::GetObjectByTypeMask(*_player, guid, TYPEMASK_UNIT|TYPEMASK_GAMEOBJECT|TYPEMASK_ITEM|TYPEMASK_PLAYER);
+#define CLOSE_GOSSIP_CLEAR_DIVIDER() \
+ do { \
+ _player->PlayerTalkClass->SendCloseGossip(); \
+ _player->SetDivider(0); \
+ } while (0)
+
// no or incorrect quest giver
- if (!object || (object->GetTypeId() != TYPEID_PLAYER && !object->hasQuest(questId)) ||
- (object->GetTypeId() == TYPEID_PLAYER && object != _player && !object->ToPlayer()->CanShareQuest(questId)))
+ if (!object)
{
- _player->PlayerTalkClass->SendCloseGossip();
- _player->SetDivider(0);
+ CLOSE_GOSSIP_CLEAR_DIVIDER();
return;
}
+ if (Player* playerQuestObject = object->ToPlayer())
+ {
+ if ((_player->GetDivider() && _player->GetDivider() != guid) ||
+ ((object != _player && !playerQuestObject->CanShareQuest(questId))))
+ {
+ CLOSE_GOSSIP_CLEAR_DIVIDER();
+ return;
+ }
+ }
+ else
+ {
+ if (!object->hasQuest(questId))
+ {
+ CLOSE_GOSSIP_CLEAR_DIVIDER();
+ return;
+ }
+ }
+
// some kind of WPE protection
if (!_player->CanInteractWithQuestGiver(object))
return;
@@ -138,8 +159,7 @@ void WorldSession::HandleQuestgiverAcceptQuestOpcode(WorldPacket& recvData)
// prevent cheating
if (!GetPlayer()->CanTakeQuest(quest, true))
{
- _player->PlayerTalkClass->SendCloseGossip();
- _player->SetDivider(0);
+ CLOSE_GOSSIP_CLEAR_DIVIDER();
return;
}
@@ -163,7 +183,7 @@ void WorldSession::HandleQuestgiverAcceptQuestOpcode(WorldPacket& recvData)
{
for (GroupReference* itr = group->GetFirstMember(); itr != NULL; itr = itr->next())
{
- Player* player = itr->getSource();
+ Player* player = itr->GetSource();
if (!player || player == _player) // not self
continue;
@@ -188,18 +208,19 @@ void WorldSession::HandleQuestgiverAcceptQuestOpcode(WorldPacket& recvData)
{
case TYPEID_UNIT:
sScriptMgr->OnQuestAccept(_player, (object->ToCreature()), quest);
- (object->ToCreature())->AI()->sQuestAccept(_player, quest);
+ object->ToCreature()->AI()->sQuestAccept(_player, quest);
break;
case TYPEID_ITEM:
case TYPEID_CONTAINER:
{
- sScriptMgr->OnQuestAccept(_player, ((Item*)object), quest);
+ Item* item = (Item*)object;
+ sScriptMgr->OnQuestAccept(_player, item, quest);
// destroy not required for quest finish quest starting item
bool destroyItem = true;
for (int i = 0; i < QUEST_ITEM_OBJECTIVES_COUNT; ++i)
{
- if ((quest->RequiredItemId[i] == ((Item*)object)->GetEntry()) && (((Item*)object)->GetTemplate()->MaxCount > 0))
+ if (quest->RequiredItemId[i] == item->GetEntry() && item->GetTemplate()->MaxCount > 0)
{
destroyItem = false;
break;
@@ -207,13 +228,13 @@ void WorldSession::HandleQuestgiverAcceptQuestOpcode(WorldPacket& recvData)
}
if (destroyItem)
- _player->DestroyItem(((Item*)object)->GetBagSlot(), ((Item*)object)->GetSlot(), true);
+ _player->DestroyItem(item->GetBagSlot(), item->GetSlot(), true);
break;
}
case TYPEID_GAMEOBJECT:
- sScriptMgr->OnQuestAccept(_player, ((GameObject*)object), quest);
- (object->ToGameObject())->AI()->QuestAccept(_player, quest);
+ sScriptMgr->OnQuestAccept(_player, object->ToGameObject(), quest);
+ object->ToGameObject()->AI()->QuestAccept(_player, quest);
break;
default:
break;
@@ -228,6 +249,8 @@ void WorldSession::HandleQuestgiverAcceptQuestOpcode(WorldPacket& recvData)
}
_player->PlayerTalkClass->SendCloseGossip();
+
+#undef CLOSE_GOSSIP_CLEAR_DIVIDER
}
void WorldSession::HandleQuestgiverQueryQuestOpcode(WorldPacket& recvData)
@@ -486,6 +509,10 @@ void WorldSession::HandleQuestgiverCompleteQuest(WorldPacket& recvData)
TC_LOG_DEBUG(LOG_FILTER_NETWORKIO, "WORLD: Received CMSG_QUESTGIVER_COMPLETE_QUEST npc = %u, quest = %u", uint32(GUID_LOPART(guid)), questId);
+ Quest const* quest = sObjectMgr->GetQuestTemplate(questId);
+ if (!quest)
+ return;
+
Object* object = ObjectAccessor::GetObjectByTypeMask(*_player, guid, TYPEMASK_UNIT|TYPEMASK_GAMEOBJECT);
if (!object || !object->hasInvolvedQuest(questId))
return;
@@ -494,35 +521,33 @@ void WorldSession::HandleQuestgiverCompleteQuest(WorldPacket& recvData)
if (!_player->CanInteractWithQuestGiver(object))
return;
- if (Quest const* quest = sObjectMgr->GetQuestTemplate(questId))
+ if (!_player->CanSeeStartQuest(quest) && _player->GetQuestStatus(questId) == QUEST_STATUS_NONE)
{
- if (!_player->CanSeeStartQuest(quest) && _player->GetQuestStatus(questId) == QUEST_STATUS_NONE)
- {
- TC_LOG_ERROR(LOG_FILTER_NETWORKIO, "Possible hacking attempt: Player %s [guid: %u] tried to complete quest [entry: %u] without being in possession of the quest!",
- _player->GetName().c_str(), _player->GetGUIDLow(), questId);
- return;
- }
- /// @todo need a virtual function
- if (_player->InBattleground())
- if (Battleground* bg = _player->GetBattleground())
- if (bg->GetTypeID() == BATTLEGROUND_AV)
- ((BattlegroundAV*)bg)->HandleQuestComplete(questId, _player);
+ TC_LOG_ERROR(LOG_FILTER_NETWORKIO, "Possible hacking attempt: Player %s [guid: %u] tried to complete quest [entry: %u] without being in possession of the quest!",
+ _player->GetName().c_str(), _player->GetGUIDLow(), questId);
+ return;
+ }
- if (_player->GetQuestStatus(questId) != QUEST_STATUS_COMPLETE)
- {
- if (quest->IsRepeatable())
- _player->PlayerTalkClass->SendQuestGiverRequestItems(quest, guid, _player->CanCompleteRepeatableQuest(quest), false);
- else
- _player->PlayerTalkClass->SendQuestGiverRequestItems(quest, guid, _player->CanRewardQuest(quest, false), false);
- }
+ if (Battleground* bg = _player->GetBattleground())
+ bg->HandleQuestComplete(questId, _player);
+
+ if (_player->GetQuestStatus(questId) != QUEST_STATUS_COMPLETE)
+ {
+ if (quest->IsRepeatable())
+ _player->PlayerTalkClass->SendQuestGiverRequestItems(quest, guid, _player->CanCompleteRepeatableQuest(quest), false);
else
- {
- if (quest->GetReqItemsCount()) // some items required
- _player->PlayerTalkClass->SendQuestGiverRequestItems(quest, guid, _player->CanRewardQuest(quest, false), false);
- else // no items required
- _player->PlayerTalkClass->SendQuestGiverOfferReward(quest, guid, true);
- }
+ _player->PlayerTalkClass->SendQuestGiverRequestItems(quest, guid, _player->CanRewardQuest(quest, false), false);
+ }
+ else
+ {
+ if (quest->GetReqItemsCount()) // some items required
+ _player->PlayerTalkClass->SendQuestGiverRequestItems(quest, guid, _player->CanRewardQuest(quest, false), false);
+ else // no items required
+ _player->PlayerTalkClass->SendQuestGiverOfferReward(quest, guid, true);
}
+
+ if (Creature* creature = object->ToCreature())
+ sScriptMgr->OnQuestComplete(_player, creature, quest);
}
void WorldSession::HandleQuestgiverQuestAutoLaunch(WorldPacket& /*recvPacket*/)
@@ -535,54 +560,73 @@ void WorldSession::HandlePushQuestToParty(WorldPacket& recvPacket)
uint32 questId;
recvPacket >> questId;
- TC_LOG_DEBUG(LOG_FILTER_NETWORKIO, "WORLD: Received CMSG_PUSHQUESTTOPARTY quest = %u", questId);
+ if (!_player->CanShareQuest(questId))
+ return;
- if (Quest const* quest = sObjectMgr->GetQuestTemplate(questId))
+ TC_LOG_DEBUG(LOG_FILTER_NETWORKIO, "WORLD: Received CMSG_PUSHQUESTTOPARTY questId = %u", questId);
+
+ Quest const* quest = sObjectMgr->GetQuestTemplate(questId);
+ if (!quest)
+ return;
+
+ Player * const sender = GetPlayer();
+
+ Group* group = sender->GetGroup();
+ if (!group)
+ return;
+
+ for (GroupReference* itr = group->GetFirstMember(); itr != NULL; itr = itr->next())
{
- if (Group* group = _player->GetGroup())
- {
- for (GroupReference* itr = group->GetFirstMember(); itr != NULL; itr = itr->next())
- {
- Player* player = itr->getSource();
+ Player* receiver = itr->GetSource();
- if (!player || player == _player) // skip self
- continue;
+ if (!receiver || receiver == sender)
+ continue;
- _player->SendPushToPartyResponse(player, QUEST_PARTY_MSG_SHARING_QUEST);
+ if (!receiver->SatisfyQuestStatus(quest, false))
+ {
+ sender->SendPushToPartyResponse(receiver, QUEST_PARTY_MSG_HAVE_QUEST);
+ continue;
+ }
- if (!player->SatisfyQuestStatus(quest, false))
- {
- _player->SendPushToPartyResponse(player, QUEST_PARTY_MSG_HAVE_QUEST);
- continue;
- }
+ if (receiver->GetQuestStatus(questId) == QUEST_STATUS_COMPLETE)
+ {
+ sender->SendPushToPartyResponse(receiver, QUEST_PARTY_MSG_FINISH_QUEST);
+ continue;
+ }
- if (player->GetQuestStatus(questId) == QUEST_STATUS_COMPLETE)
- {
- _player->SendPushToPartyResponse(player, QUEST_PARTY_MSG_FINISH_QUEST);
- continue;
- }
+ if (!receiver->CanTakeQuest(quest, false))
+ {
+ sender->SendPushToPartyResponse(receiver, QUEST_PARTY_MSG_CANT_TAKE_QUEST);
+ continue;
+ }
- if (!player->CanTakeQuest(quest, false))
- {
- _player->SendPushToPartyResponse(player, QUEST_PARTY_MSG_CANT_TAKE_QUEST);
- continue;
- }
+ if (!receiver->SatisfyQuestLog(false))
+ {
+ sender->SendPushToPartyResponse(receiver, QUEST_PARTY_MSG_LOG_FULL);
+ continue;
+ }
- if (!player->SatisfyQuestLog(false))
- {
- _player->SendPushToPartyResponse(player, QUEST_PARTY_MSG_LOG_FULL);
- continue;
- }
+ if (receiver->GetDivider() != 0)
+ {
+ sender->SendPushToPartyResponse(receiver, QUEST_PARTY_MSG_BUSY);
+ continue;
+ }
- if (player->GetDivider() != 0)
- {
- _player->SendPushToPartyResponse(player, QUEST_PARTY_MSG_BUSY);
- continue;
- }
+ sender->SendPushToPartyResponse(receiver, QUEST_PARTY_MSG_SHARING_QUEST);
- player->PlayerTalkClass->SendQuestGiverQuestDetails(quest, player->GetGUID(), true);
- player->SetDivider(_player->GetGUID());
- }
+ if (quest->IsAutoAccept() && receiver->CanAddQuest(quest, true) && receiver->CanTakeQuest(quest, true))
+ {
+ receiver->AddQuest(quest, sender);
+ if (receiver->CanCompleteQuest(questId))
+ receiver->CompleteQuest(questId);
+ }
+
+ if ((quest->IsAutoComplete() && quest->IsRepeatable() && !quest->IsDailyOrWeekly()) || quest->HasFlag(QUEST_FLAGS_AUTOCOMPLETE))
+ receiver->PlayerTalkClass->SendQuestGiverRequestItems(quest, sender->GetGUID(), receiver->CanCompleteRepeatableQuest(quest), true);
+ else
+ {
+ receiver->SetDivider(sender->GetGUID());
+ receiver->PlayerTalkClass->SendQuestGiverQuestDetails(quest, sender->GetGUID(), true);
}
}
}
@@ -590,20 +634,21 @@ void WorldSession::HandlePushQuestToParty(WorldPacket& recvPacket)
void WorldSession::HandleQuestPushResult(WorldPacket& recvPacket)
{
uint64 guid;
+ uint32 questId;
uint8 msg;
- recvPacket >> guid >> msg;
+ recvPacket >> guid >> questId >> msg;
TC_LOG_DEBUG(LOG_FILTER_NETWORKIO, "WORLD: Received MSG_QUEST_PUSH_RESULT");
- if (_player->GetDivider() != 0)
+ if (_player->GetDivider() && _player->GetDivider() == guid)
{
Player* player = ObjectAccessor::FindPlayer(_player->GetDivider());
if (player)
{
- WorldPacket data(MSG_QUEST_PUSH_RESULT, (8+1));
- data << uint64(guid);
+ WorldPacket data(MSG_QUEST_PUSH_RESULT, 8 + 4 + 1);
+ data << uint64(_player->GetGUID());
data << uint8(msg); // valid values: 0-8
- player->GetSession()->SendPacket(&data);
+ player->SendDirectMessage(&data);
_player->SetDivider(0);
}
}
diff --git a/src/server/game/Handlers/SpellHandler.cpp b/src/server/game/Handlers/SpellHandler.cpp
index f7c2bf0f87d..418709c8407 100644
--- a/src/server/game/Handlers/SpellHandler.cpp
+++ b/src/server/game/Handlers/SpellHandler.cpp
@@ -130,7 +130,7 @@ void WorldSession::HandleUseItemOpcode(WorldPacket& recvPacket)
return;
}
- if (pUser->isInCombat())
+ if (pUser->IsInCombat())
{
for (int i = 0; i < MAX_ITEM_PROTO_SPELLS; ++i)
{
@@ -465,7 +465,7 @@ void WorldSession::HandlePetCancelAuraOpcode(WorldPacket& recvPacket)
return;
}
- if (!pet->isAlive())
+ if (!pet->IsAlive())
{
pet->SendPetActionFeedback(FEEDBACK_PET_DEAD);
return;
@@ -518,7 +518,7 @@ void WorldSession::HandleTotemDestroyed(WorldPacket& recvPacket)
Creature* totem = GetPlayer()->GetMap()->GetCreature(_player->m_SummonSlot[slotId]);
- if (totem && totem->isTotem())
+ if (totem && totem->IsTotem())
totem->ToTotem()->UnSummon();
}
diff --git a/src/server/game/Handlers/TicketHandler.cpp b/src/server/game/Handlers/TicketHandler.cpp
index d39099485a5..57d41be9e23 100644
--- a/src/server/game/Handlers/TicketHandler.cpp
+++ b/src/server/game/Handlers/TicketHandler.cpp
@@ -83,6 +83,7 @@ void WorldSession::HandleGMTicketCreateOpcode(WorldPacket& recvData)
{
TC_LOG_ERROR(LOG_FILTER_NETWORKIO, "CMSG_GMTICKET_CREATE possibly corrupt. Uncompression failed.");
recvData.rfinish();
+ delete ticket;
return;
}
diff --git a/src/server/game/Handlers/TradeHandler.cpp b/src/server/game/Handlers/TradeHandler.cpp
index 6983585878b..4cf7a428c97 100644
--- a/src/server/game/Handlers/TradeHandler.cpp
+++ b/src/server/game/Handlers/TradeHandler.cpp
@@ -568,7 +568,7 @@ void WorldSession::HandleInitiateTradeOpcode(WorldPacket& recvPacket)
if (GetPlayer()->m_trade)
return;
- if (!GetPlayer()->isAlive())
+ if (!GetPlayer()->IsAlive())
{
SendTradeStatus(TRADE_STATUS_YOU_DEAD);
return;
@@ -586,7 +586,7 @@ void WorldSession::HandleInitiateTradeOpcode(WorldPacket& recvPacket)
return;
}
- if (GetPlayer()->isInFlight())
+ if (GetPlayer()->IsInFlight())
{
SendTradeStatus(TRADE_STATUS_TARGET_TO_FAR);
return;
@@ -612,13 +612,13 @@ void WorldSession::HandleInitiateTradeOpcode(WorldPacket& recvPacket)
return;
}
- if (!pOther->isAlive())
+ if (!pOther->IsAlive())
{
SendTradeStatus(TRADE_STATUS_TARGET_DEAD);
return;
}
- if (pOther->isInFlight())
+ if (pOther->IsInFlight())
{
SendTradeStatus(TRADE_STATUS_TARGET_TO_FAR);
return;
diff --git a/src/server/game/Instances/InstanceScript.cpp b/src/server/game/Instances/InstanceScript.cpp
index a1b439387ef..c8b57c9924e 100644
--- a/src/server/game/Instances/InstanceScript.cpp
+++ b/src/server/game/Instances/InstanceScript.cpp
@@ -91,15 +91,15 @@ void InstanceScript::UpdateMinionState(Creature* minion, EncounterState state)
switch (state)
{
case NOT_STARTED:
- if (!minion->isAlive())
+ if (!minion->IsAlive())
minion->Respawn();
- else if (minion->isInCombat())
+ else if (minion->IsInCombat())
minion->AI()->EnterEvadeMode();
break;
case IN_PROGRESS:
- if (!minion->isAlive())
+ if (!minion->IsAlive())
minion->Respawn();
- else if (!minion->getVictim())
+ else if (!minion->GetVictim())
minion->AI()->DoZoneInCombat();
break;
default:
@@ -210,7 +210,7 @@ bool InstanceScript::SetBossState(uint32 id, EncounterState state)
if (state == DONE)
for (MinionSet::iterator i = bossInfo->minion.begin(); i != bossInfo->minion.end(); ++i)
- if ((*i)->isWorldBoss() && (*i)->isAlive())
+ if ((*i)->isWorldBoss() && (*i)->IsAlive())
return false;
bossInfo->state = state;
@@ -297,7 +297,7 @@ void InstanceScript::DoUpdateWorldState(uint32 uiStateId, uint32 uiStateData)
if (!lPlayers.isEmpty())
{
for (Map::PlayerList::const_iterator itr = lPlayers.begin(); itr != lPlayers.end(); ++itr)
- if (Player* player = itr->getSource())
+ if (Player* player = itr->GetSource())
player->SendUpdateWorldState(uiStateId, uiStateData);
}
else
@@ -317,7 +317,7 @@ void InstanceScript::DoSendNotifyToInstance(char const* format, ...)
vsnprintf(buff, 1024, format, ap);
va_end(ap);
for (Map::PlayerList::const_iterator i = players.begin(); i != players.end(); ++i)
- if (Player* player = i->getSource())
+ if (Player* player = i->GetSource())
if (WorldSession* session = player->GetSession())
session->SendNotification("%s", buff);
}
@@ -330,7 +330,7 @@ void InstanceScript::DoUpdateAchievementCriteria(AchievementCriteriaTypes type,
if (!PlayerList.isEmpty())
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
- if (Player* player = i->getSource())
+ if (Player* player = i->GetSource())
player->UpdateAchievementCriteria(type, miscValue1, miscValue2, unit);
}
@@ -341,7 +341,7 @@ void InstanceScript::DoStartTimedAchievement(AchievementCriteriaTimedTypes type,
if (!PlayerList.isEmpty())
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
- if (Player* player = i->getSource())
+ if (Player* player = i->GetSource())
player->StartTimedAchievement(type, entry);
}
@@ -352,7 +352,7 @@ void InstanceScript::DoStopTimedAchievement(AchievementCriteriaTimedTypes type,
if (!PlayerList.isEmpty())
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
- if (Player* player = i->getSource())
+ if (Player* player = i->GetSource())
player->RemoveTimedAchievement(type, entry);
}
@@ -364,7 +364,7 @@ void InstanceScript::DoRemoveAurasDueToSpellOnPlayers(uint32 spell)
{
for (Map::PlayerList::const_iterator itr = PlayerList.begin(); itr != PlayerList.end(); ++itr)
{
- if (Player* player = itr->getSource())
+ if (Player* player = itr->GetSource())
{
player->RemoveAurasDueToSpell(spell);
if (Pet* pet = player->GetPet())
@@ -381,7 +381,7 @@ void InstanceScript::DoCastSpellOnPlayers(uint32 spell)
if (!PlayerList.isEmpty())
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
- if (Player* player = i->getSource())
+ if (Player* player = i->GetSource())
player->CastSpell(player, spell, true);
}
@@ -453,7 +453,7 @@ void InstanceScript::UpdateEncounterState(EncounterCreditType type, uint32 credi
Map::PlayerList const& players = instance->GetPlayers();
for (Map::PlayerList::const_iterator i = players.begin(); i != players.end(); ++i)
{
- if (Player* player = i->getSource())
+ if (Player* player = i->GetSource())
if (Group* grp = player->GetGroup())
if (grp->isLFGGroup())
{
diff --git a/src/server/game/Loot/LootMgr.cpp b/src/server/game/Loot/LootMgr.cpp
index 92b6ddf6909..33c21163a4a 100644
--- a/src/server/game/Loot/LootMgr.cpp
+++ b/src/server/game/Loot/LootMgr.cpp
@@ -158,6 +158,12 @@ uint32 LootStore::LoadLootTable()
continue; // error already printed to log/console.
}
+ if (group >= 1 << 7) // it stored in 7 bit field
+ {
+ TC_LOG_ERROR(LOG_FILTER_SQL, "Table '%s' entry %d item %d: group (%u) must be less %u - skipped", GetName(), entry, item, group, 1 << 7);
+ return false;
+ }
+
LootStoreItem* storeitem = new LootStoreItem(item, chanceOrQuestChance, lootmode, group, mincountOrRef, maxcount);
if (!storeitem->IsValid(*this, entry)) // Validity checks
@@ -293,12 +299,6 @@ bool LootStoreItem::Roll(bool rate) const
// Checks correctness of values
bool LootStoreItem::IsValid(LootStore const& store, uint32 entry) const
{
- if (group >= 1 << 7) // it stored in 7 bit field
- {
- TC_LOG_ERROR(LOG_FILTER_SQL, "Table '%s' entry %d item %d: group (%u) must be less %u - skipped", store.GetName(), entry, itemid, group, 1 << 7);
- return false;
- }
-
if (mincountOrRef == 0)
{
TC_LOG_ERROR(LOG_FILTER_SQL, "Table '%s' entry %d item %d: wrong mincountOrRef (%d) - skipped", store.GetName(), entry, itemid, mincountOrRef);
@@ -417,7 +417,7 @@ void Loot::AddItem(LootStoreItem const& item)
return;
uint32 count = urand(item.mincountOrRef, item.maxcount);
- uint32 stacks = count / proto->GetMaxStackSize() + (count % proto->GetMaxStackSize() ? 1 : 0);
+ uint32 stacks = count / proto->GetMaxStackSize() + ((count % proto->GetMaxStackSize()) ? 1 : 0);
std::vector<LootItem>& lootItems = item.needs_quest ? quest_items : items;
uint32 limit = item.needs_quest ? MAX_NR_QUEST_ITEMS : MAX_NR_LOOT_ITEMS;
@@ -465,7 +465,7 @@ bool Loot::FillLoot(uint32 lootId, LootStore const& store, Player* lootOwner, bo
roundRobinPlayer = lootOwner->GetGUID();
for (GroupReference* itr = group->GetFirstMember(); itr != NULL; itr = itr->next())
- if (Player* player = itr->getSource()) // should actually be looted object instead of lootOwner but looter has to be really close so doesnt really matter
+ if (Player* player = itr->GetSource()) // should actually be looted object instead of lootOwner but looter has to be really close so doesnt really matter
FillNotNormalLootFor(player, player->IsAtGroupRewardDistance(lootOwner));
for (uint8 i = 0; i < items.size(); ++i)
diff --git a/src/server/game/Mails/Mail.cpp b/src/server/game/Mails/Mail.cpp
index 2526364cef6..2fa0a03e63f 100644
--- a/src/server/game/Mails/Mail.cpp
+++ b/src/server/game/Mails/Mail.cpp
@@ -69,7 +69,7 @@ MailSender::MailSender(AuctionEntry* sender)
MailSender::MailSender(Player* sender)
{
m_messageType = MAIL_NORMAL;
- m_stationery = sender->isGameMaster() ? MAIL_STATIONERY_GM : MAIL_STATIONERY_DEFAULT;
+ m_stationery = sender->IsGameMaster() ? MAIL_STATIONERY_GM : MAIL_STATIONERY_DEFAULT;
m_senderId = sender->GetGUIDLow();
}
@@ -200,7 +200,7 @@ void MailDraft::SendMailTo(SQLTransaction& trans, MailReceiver const& receiver,
if (m_COD)
expire_delay = 3 * DAY;
else
- expire_delay = pSender && pSender->isGameMaster() ? 90 * DAY : 30 * DAY;
+ expire_delay = pSender && pSender->IsGameMaster() ? 90 * DAY : 30 * DAY;
time_t expire_time = deliver_time + expire_delay;
diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp
index b28873d2e4d..5ce4c05abb6 100644
--- a/src/server/game/Maps/Map.cpp
+++ b/src/server/game/Maps/Map.cpp
@@ -520,7 +520,7 @@ void Map::Update(const uint32 t_diff)
/// update worldsessions for existing players
for (m_mapRefIter = m_mapRefManager.begin(); m_mapRefIter != m_mapRefManager.end(); ++m_mapRefIter)
{
- Player* player = m_mapRefIter->getSource();
+ Player* player = m_mapRefIter->GetSource();
if (player && player->IsInWorld())
{
//player->Update(t_diff);
@@ -542,7 +542,7 @@ void Map::Update(const uint32 t_diff)
// to make sure calls to Map::Remove don't invalidate it
for (m_mapRefIter = m_mapRefManager.begin(); m_mapRefIter != m_mapRefManager.end(); ++m_mapRefIter)
{
- Player* player = m_mapRefIter->getSource();
+ Player* player = m_mapRefIter->GetSource();
if (!player || !player->IsInWorld())
continue;
@@ -586,7 +586,7 @@ struct ResetNotifier
template<class T>inline void resetNotify(GridRefManager<T> &m)
{
for (typename GridRefManager<T>::iterator iter=m.begin(); iter != m.end(); ++iter)
- iter->getSource()->ResetAllNotifies();
+ iter->GetSource()->ResetAllNotifies();
}
template<class T> void Visit(GridRefManager<T> &) {}
void Visit(CreatureMapType &m) { resetNotify<Creature>(m);}
@@ -597,7 +597,7 @@ void Map::ProcessRelocationNotifies(const uint32 diff)
{
for (GridRefManager<NGridType>::iterator i = GridRefManager<NGridType>::begin(); i != GridRefManager<NGridType>::end(); ++i)
{
- NGridType *grid = i->getSource();
+ NGridType *grid = i->GetSource();
if (grid->GetGridState() != GRID_STATE_ACTIVE)
continue;
@@ -637,7 +637,7 @@ void Map::ProcessRelocationNotifies(const uint32 diff)
TypeContainerVisitor<ResetNotifier, WorldTypeMapContainer > world_notifier(reset);
for (GridRefManager<NGridType>::iterator i = GridRefManager<NGridType>::begin(); i != GridRefManager<NGridType>::end(); ++i)
{
- NGridType *grid = i->getSource();
+ NGridType *grid = i->GetSource();
if (grid->GetGridState() != GRID_STATE_ACTIVE)
continue;
@@ -672,6 +672,8 @@ void Map::ProcessRelocationNotifies(const uint32 diff)
void Map::RemovePlayerFromMap(Player* player, bool remove)
{
+ sScriptMgr->OnPlayerLeaveMap(this, player);
+
player->RemoveFromWorld();
SendRemoveTransports(player);
@@ -682,11 +684,7 @@ void Map::RemovePlayerFromMap(Player* player, bool remove)
ASSERT(remove); //maybe deleted in logoutplayer when player is not in a map
if (remove)
- {
DeleteFromWorld(player);
-
- sScriptMgr->OnPlayerLeaveMap(this, player);
- }
}
template<class T>
@@ -822,6 +820,8 @@ void Map::MoveAllCreaturesInMoveList()
{
// update pos
c->Relocate(c->_newPosition);
+ if (c->IsVehicle())
+ c->GetVehicleKit()->RelocatePassengers();
//CreatureRelocationNotify(c, new_cell, new_cell.cellCoord());
c->UpdateObjectVisibility(false);
}
@@ -841,7 +841,7 @@ void Map::MoveAllCreaturesInMoveList()
//But this check is always needed to ensure safety
/// @todo pets will disappear if this is outside CreatureRespawnRelocation
//need to check why pet is frequently relocated to an unloaded cell
- if (c->isPet())
+ if (c->IsPet())
((Pet*)c)->Remove(PET_SAVE_NOT_IN_SLOT, true);
else
AddObjectToRemoveList(c);
@@ -1026,7 +1026,7 @@ void Map::RemoveAllPlayers()
{
for (MapRefManager::iterator itr = m_mapRefManager.begin(); itr != m_mapRefManager.end(); ++itr)
{
- Player* player = itr->getSource();
+ Player* player = itr->GetSource();
if (!player->IsBeingTeleportedFar())
{
// this is happening for bg
@@ -1044,7 +1044,7 @@ void Map::UnloadAll()
for (GridRefManager<NGridType>::iterator i = GridRefManager<NGridType>::begin(); i != GridRefManager<NGridType>::end();)
{
- NGridType &grid(*i->getSource());
+ NGridType &grid(*i->GetSource());
++i;
UnloadGrid(grid, true); // deletes the grid and removes it from the GridRefManager
}
@@ -1936,25 +1936,14 @@ float Map::GetHeight(uint32 phasemask, float x, float y, float z, bool vmap/*=tr
bool Map::IsInWater(float x, float y, float pZ, LiquidData* data) const
{
- // Check surface in x, y point for liquid
- if (const_cast<Map*>(this)->GetGrid(x, y))
- {
- LiquidData liquid_status;
- LiquidData* liquid_ptr = data ? data : &liquid_status;
- if (getLiquidStatus(x, y, pZ, MAP_ALL_LIQUIDS, liquid_ptr))
- return true;
- }
- return false;
+ LiquidData liquid_status;
+ LiquidData* liquid_ptr = data ? data : &liquid_status;
+ return getLiquidStatus(x, y, pZ, MAP_ALL_LIQUIDS, liquid_ptr) & (LIQUID_MAP_IN_WATER | LIQUID_MAP_UNDER_WATER);
}
bool Map::IsUnderWater(float x, float y, float z) const
{
- if (const_cast<Map*>(this)->GetGrid(x, y))
- {
- if (getLiquidStatus(x, y, z, MAP_LIQUID_TYPE_WATER|MAP_LIQUID_TYPE_OCEAN)&LIQUID_MAP_UNDER_WATER)
- return true;
- }
- return false;
+ return getLiquidStatus(x, y, z, MAP_LIQUID_TYPE_WATER|MAP_LIQUID_TYPE_OCEAN) & LIQUID_MAP_UNDER_WATER;
}
bool Map::CheckGridIntegrity(Creature* c, bool moved) const
@@ -2103,8 +2092,8 @@ void Map::DelayedUpdate(const uint32 t_diff)
{
for (GridRefManager<NGridType>::iterator i = GridRefManager<NGridType>::begin(); i != GridRefManager<NGridType>::end();)
{
- NGridType *grid = i->getSource();
- GridInfo* info = i->getSource()->getGridInfoRef();
+ NGridType *grid = i->GetSource();
+ GridInfo* info = i->GetSource()->getGridInfoRef();
++i; // The update might delete the map and we need the next map before the iterator gets invalid
ASSERT(grid->GetGridState() >= 0 && grid->GetGridState() < MAX_GRID_STATE);
si_GridStates[grid->GetGridState()]->Update(*this, *grid, *info, t_diff);
@@ -2192,7 +2181,7 @@ uint32 Map::GetPlayersCountExceptGMs() const
{
uint32 count = 0;
for (MapRefManager::const_iterator itr = m_mapRefManager.begin(); itr != m_mapRefManager.end(); ++itr)
- if (!itr->getSource()->isGameMaster())
+ if (!itr->GetSource()->IsGameMaster())
++count;
return count;
}
@@ -2200,7 +2189,7 @@ uint32 Map::GetPlayersCountExceptGMs() const
void Map::SendToPlayers(WorldPacket const* data) const
{
for (MapRefManager::const_iterator itr = m_mapRefManager.begin(); itr != m_mapRefManager.end(); ++itr)
- itr->getSource()->GetSession()->SendPacket(data);
+ itr->GetSource()->GetSession()->SendPacket(data);
}
bool Map::ActiveObjectsNearGrid(NGridType const& ngrid) const
@@ -2219,7 +2208,7 @@ bool Map::ActiveObjectsNearGrid(NGridType const& ngrid) const
for (MapRefManager::const_iterator iter = m_mapRefManager.begin(); iter != m_mapRefManager.end(); ++iter)
{
- Player* player = iter->getSource();
+ Player* player = iter->GetSource();
CellCoord p = Trinity::ComputeCellCoord(player->GetPositionX(), player->GetPositionY());
if ((cell_min.x_coord <= p.x_coord && p.x_coord <= cell_max.x_coord) &&
@@ -2245,7 +2234,7 @@ void Map::AddToActive(Creature* c)
AddToActiveHelper(c);
// also not allow unloading spawn grid to prevent creating creature clone at load
- if (!c->isPet() && c->GetDBTableGUIDLow())
+ if (!c->IsPet() && c->GetDBTableGUIDLow())
{
float x, y, z;
c->GetRespawnPosition(x, y, z);
@@ -2266,7 +2255,7 @@ void Map::RemoveFromActive(Creature* c)
RemoveFromActiveHelper(c);
// also allow unloading spawn grid
- if (!c->isPet() && c->GetDBTableGUIDLow())
+ if (!c->IsPet() && c->GetDBTableGUIDLow())
{
float x, y, z;
c->GetRespawnPosition(x, y, z);
@@ -2333,7 +2322,7 @@ bool InstanceMap::CanEnter(Player* player)
}
// allow GM's to enter
- if (player->isGameMaster())
+ if (player->IsGameMaster())
return Map::CanEnter(player);
// cannot enter if the instance is full (player cap), GMs don't count
@@ -2347,7 +2336,7 @@ bool InstanceMap::CanEnter(Player* player)
// cannot enter while an encounter is in progress on raids
/*Group* group = player->GetGroup();
- if (!player->isGameMaster() && group && group->InCombatToInstance(GetInstanceId()) && player->GetMapId() != GetId())*/
+ if (!player->IsGameMaster() && group && group->InCombatToInstance(GetInstanceId()) && player->GetMapId() != GetId())*/
if (IsRaid() && GetInstanceScript() && GetInstanceScript()->IsEncounterInProgress())
{
player->SendTransferAborted(GetId(), TRANSFER_ABORT_ZONE_IN_COMBAT);
@@ -2361,9 +2350,9 @@ bool InstanceMap::CanEnter(Player* player)
if (!playerList.isEmpty())
for (PlayerList::const_iterator i = playerList.begin(); i != playerList.end(); ++i)
- if (Player* iPlayer = i->getSource())
+ if (Player* iPlayer = i->GetSource())
{
- if (iPlayer->isGameMaster()) // bypass GMs
+ if (iPlayer->IsGameMaster()) // bypass GMs
continue;
if (!player->GetGroup()) // player has not group and there is someone inside, deny entry
{
@@ -2575,14 +2564,14 @@ bool InstanceMap::Reset(uint8 method)
{
// notify the players to leave the instance so it can be reset
for (MapRefManager::iterator itr = m_mapRefManager.begin(); itr != m_mapRefManager.end(); ++itr)
- itr->getSource()->SendResetFailedNotify(GetId());
+ itr->GetSource()->SendResetFailedNotify(GetId());
}
else
{
if (method == INSTANCE_RESET_GLOBAL)
// set the homebind timer for players inside (1 minute)
for (MapRefManager::iterator itr = m_mapRefManager.begin(); itr != m_mapRefManager.end(); ++itr)
- itr->getSource()->m_InstanceValid = false;
+ itr->GetSource()->m_InstanceValid = false;
// the unload timer is not started
// instead the map will unload immediately after the players have left
@@ -2616,7 +2605,7 @@ void InstanceMap::PermBindAllPlayers(Player* source)
// group members outside the instance group don't get bound
for (MapRefManager::iterator itr = m_mapRefManager.begin(); itr != m_mapRefManager.end(); ++itr)
{
- Player* player = itr->getSource();
+ Player* player = itr->GetSource();
// players inside an instance cannot be bound to other instances
// some players may already be permanently bound, in this case nothing happens
InstancePlayerBind* bind = player->GetBoundInstance(save->GetMapId(), save->GetDifficulty());
@@ -2649,7 +2638,7 @@ void InstanceMap::UnloadAll()
void InstanceMap::SendResetWarnings(uint32 timeLeft) const
{
for (MapRefManager::const_iterator itr = m_mapRefManager.begin(); itr != m_mapRefManager.end(); ++itr)
- itr->getSource()->SendInstanceResetWarning(GetId(), itr->getSource()->GetDifficulty(IsRaid()), timeLeft);
+ itr->GetSource()->SendInstanceResetWarning(GetId(), itr->GetSource()->GetDifficulty(IsRaid()), timeLeft);
}
void InstanceMap::SetResetSchedule(bool on)
@@ -2765,7 +2754,7 @@ void BattlegroundMap::RemoveAllPlayers()
{
if (HavePlayers())
for (MapRefManager::iterator itr = m_mapRefManager.begin(); itr != m_mapRefManager.end(); ++itr)
- if (Player* player = itr->getSource())
+ if (Player* player = itr->GetSource())
if (!player->IsBeingTeleportedFar())
player->TeleportTo(player->GetBattlegroundEntryPoint());
}
diff --git a/src/server/game/Maps/MapManager.cpp b/src/server/game/Maps/MapManager.cpp
index e7b0b997f07..60ebd3f8699 100644
--- a/src/server/game/Maps/MapManager.cpp
+++ b/src/server/game/Maps/MapManager.cpp
@@ -183,7 +183,7 @@ bool MapManager::CanPlayerEnter(uint32 mapid, Player* player, bool loginCheck)
// FIXME: mapDiff is never used
//Bypass checks for GMs
- if (player->isGameMaster())
+ if (player->IsGameMaster())
return true;
char const* mapName = entry->name[player->GetSession()->GetSessionDbcLocale()];
@@ -202,7 +202,7 @@ bool MapManager::CanPlayerEnter(uint32 mapid, Player* player, bool loginCheck)
}
}
- if (!player->isAlive())
+ if (!player->IsAlive())
{
if (Corpse* corpse = player->GetCorpse())
{
diff --git a/src/server/game/Miscellaneous/Formulas.h b/src/server/game/Miscellaneous/Formulas.h
index e3e85d45603..f779e3dcb78 100644
--- a/src/server/game/Miscellaneous/Formulas.h
+++ b/src/server/game/Miscellaneous/Formulas.h
@@ -163,7 +163,7 @@ namespace Trinity
uint32 gain;
if (u->GetTypeId() == TYPEID_UNIT &&
- (((Creature*)u)->isTotem() || ((Creature*)u)->isPet() ||
+ (((Creature*)u)->IsTotem() || ((Creature*)u)->IsPet() ||
(((Creature*)u)->GetCreatureTemplate()->flags_extra & CREATURE_FLAG_EXTRA_NO_XP_AT_KILL) ||
((Creature*)u)->GetCreatureTemplate()->type == CREATURE_TYPE_CRITTER))
gain = 0;
diff --git a/src/server/game/Miscellaneous/Language.h b/src/server/game/Miscellaneous/Language.h
index e04e9208a05..772d5bcfb75 100644
--- a/src/server/game/Miscellaneous/Language.h
+++ b/src/server/game/Miscellaneous/Language.h
@@ -444,7 +444,7 @@ enum TrinityStrings
LANG_COMMAND_GRAVEYARDALRLINKED = 450,
LANG_COMMAND_GRAVEYARDLINKED = 451,
LANG_COMMAND_GRAVEYARDWRONGZONE = 452,
- // = 453, see LANG_PINFO_BAN
+ // = 453, see LANG_PINFO_PLAYER
LANG_COMMAND_GRAVEYARDERROR = 454,
LANG_COMMAND_GRAVEYARD_NOTEAM = 455,
LANG_COMMAND_GRAVEYARD_ANY = 456,
@@ -555,13 +555,9 @@ enum TrinityStrings
LANG_NPCINFO_TRAINER = 546,
LANG_NPCINFO_DUNGEON_ID = 547,
- LANG_PINFO_ACCOUNT = 548,
- LANG_PINFO_LEVEL = 549,
- LANG_PINFO_MUTE = 550,
- LANG_PINFO_BAN = 453,
- LANG_PINFO_MAP_ONLINE = 714,
- LANG_PINFO_MAP_OFFLINE = 716,
- LANG_PINFO_GUILD_INFO = 749,
+ // = 548, see LANG_PINFO_GM_ACTIVE
+ // = 549, see LANG_PINFO_BANNED
+ // = 550, see LANG_PINFO_MUTED
LANG_YOU_SET_EXPLORE_ALL = 551,
LANG_YOU_SET_EXPLORE_NOTHING = 552,
@@ -709,9 +705,9 @@ enum TrinityStrings
LANG_BG_QUEUE_ANNOUNCE_SELF = 711,
LANG_BG_QUEUE_ANNOUNCE_WORLD = 712,
LANG_YOUR_ARENA_LEVEL_REQ_ERROR = 713,
-// = 714, see LANG_PINFO_MAP_ONLINE
+// = 714, see LANG_PINFO_ACC_ACCOUNT
LANG_YOUR_BG_LEVEL_REQ_ERROR = 715,
-// = 716, see LANG_PINFO_MAP_OFFLINE
+// = 716, see LANG_PINFO_ACC_LASTLOGIN
LANG_BG_STARTED_ANNOUNCE_WORLD = 717,
LANG_ARENA_QUEUE_ANNOUNCE_WORLD_JOIN= 718,
LANG_ARENA_QUEUE_ANNOUNCE_WORLD_EXIT= 719,
@@ -746,10 +742,10 @@ enum TrinityStrings
LANG_DIST_ARENA_POINTS_END = 746,
LANG_BG_DISABLED = 747,
LANG_ARENA_DISABLED = 748,
-// = 749, not used
+// = 749, see LANG_PINFO_ACC_OS
LANG_BATTLEGROUND_PREMATURE_FINISH_WARNING = 750, // "Not enough players. This game will close in %u mins."
LANG_BATTLEGROUND_PREMATURE_FINISH_WARNING_SECS = 751, // "Not enough players. This game will close in %u seconds."
-// = 752, not used
+// = 752, see LANG_PINFO_ACC_IP
// LANG_BG_WS_START_TWO_MINUTES = 753, - defined above
// LANG_BG_AB_START_TWO_MINUTES = 754, - defined above
// LANG_BG_EY_START_TWO_MINUTES = 755, - defined above
@@ -807,7 +803,48 @@ enum TrinityStrings
LANG_NPCINFO_MAILBOX = 841,
LANG_NPCINFO_PLAYER_VEHICLE = 842,
- // Room for in-game strings 843-999 not used
+ // Pinfo commands
+ LANG_PINFO_PLAYER = 453,
+ LANG_PINFO_GM_ACTIVE = 548,
+ LANG_PINFO_BANNED = 549,
+ LANG_PINFO_MUTED = 550,
+ LANG_PINFO_ACC_ACCOUNT = 714,
+ LANG_PINFO_ACC_LASTLOGIN = 716,
+ LANG_PINFO_ACC_OS = 749,
+ LANG_PINFO_ACC_IP = 752,
+ LANG_PINFO_CHR_LEVEL_LOW = 843,
+ LANG_PINFO_CHR_RACE = 844,
+ LANG_PINFO_CHR_ALIVE = 845,
+ LANG_PINFO_CHR_PHASE = 846,
+ LANG_PINFO_CHR_MONEY = 847,
+ LANG_PINFO_CHR_MAP = 848,
+ LANG_PINFO_CHR_GUILD = 849,
+ LANG_PINFO_CHR_GUILD_RANK = 850,
+ LANG_PINFO_CHR_GUILD_NOTE = 851,
+ LANG_PINFO_CHR_GUILD_ONOTE = 852,
+ LANG_PINFO_CHR_PLAYEDTIME = 853,
+ LANG_PINFO_CHR_MAILS = 854,
+ LANG_PINFO_CHR_LEVEL_HIGH = 871,
+
+ LANG_CHARACTER_GENDER_MALE = 855,
+ LANG_CHARACTER_GENDER_FEMALE = 856,
+
+ LANG_ARENA_ERROR_NOT_FOUND = 857,
+ LANG_ARENA_ERROR_NAME_EXISTS = 858,
+ LANG_ARENA_ERROR_SIZE = 859,
+ LANG_ARENA_ERROR_COMBAT = 860,
+ LANG_AREAN_ERROR_NAME_NOT_FOUND = 861,
+ LANG_ARENA_ERROR_NOT_MEMBER = 862,
+ LANG_ARENA_ERROR_CAPTAIN = 863,
+ LANG_ARENA_CREATE = 864,
+ LANG_ARENA_DISBAND = 865,
+ LANG_ARENA_RENAME = 866,
+ LANG_ARENA_CAPTAIN = 867,
+ LANG_ARENA_INFO_HEADER = 868,
+ LANG_ARENA_INFO_MEMBERS = 869,
+ LANG_ARENA_LOOKUP = 870,
+ // = 871, see LANG_PINFO_CHR_LEVEL_HIGH
+ // Room for in-game strings 872-999 not used
// Level 4 (CLI only commands)
LANG_COMMAND_EXIT = 1000,
@@ -1046,7 +1083,9 @@ enum TrinityStrings
LANG_COMMAND_NO_OUTDOOR_PVP_FORUND = 5034,
LANG_CALL_FOR_HELP = 5035,
LANG_NPCINFO_EQUIPMENT = 5036,
- // Room for more Trinity strings 5037-9999
+ LANG_NPCINFO_MECHANIC_IMMUNE = 5037,
+ LANG_NPCINFO_UNIT_FIELD_FLAGS = 5038,
+ // Room for more Trinity strings 5039-9999
// Level requirement notifications
LANG_SAY_REQ = 6604,
diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h
index caf504944c6..e561d37ed36 100644
--- a/src/server/game/Miscellaneous/SharedDefines.h
+++ b/src/server/game/Miscellaneous/SharedDefines.h
@@ -1233,7 +1233,8 @@ enum Mechanics
MECHANIC_DISCOVERY = 28,
MECHANIC_IMMUNE_SHIELD = 29, // Divine (Blessing) Shield/Protection and Ice Block
MECHANIC_SAPPED = 30,
- MECHANIC_ENRAGED = 31
+ MECHANIC_ENRAGED = 31,
+ MAX_MECHANIC = 32
};
// Used for spell 42292 Immune Movement Impairment and Loss of Control (0x49967ca6)
@@ -3540,7 +3541,7 @@ enum PartyResult
};
const uint32 MMAP_MAGIC = 0x4d4d4150; // 'MMAP'
-#define MMAP_VERSION 3
+#define MMAP_VERSION 4
struct MmapTileHeader
{
diff --git a/src/server/game/Movement/FollowerReference.cpp b/src/server/game/Movement/FollowerReference.cpp
index 30797bbaaca..84c6c266cea 100644
--- a/src/server/game/Movement/FollowerReference.cpp
+++ b/src/server/game/Movement/FollowerReference.cpp
@@ -32,5 +32,5 @@ void FollowerReference::targetObjectDestroyLink()
void FollowerReference::sourceObjectDestroyLink()
{
- getSource()->stopFollowing();
+ GetSource()->stopFollowing();
}
diff --git a/src/server/game/Movement/MotionMaster.h b/src/server/game/Movement/MotionMaster.h
index f2f3959dba5..156813f56fb 100644
--- a/src/server/game/Movement/MotionMaster.h
+++ b/src/server/game/Movement/MotionMaster.h
@@ -153,8 +153,8 @@ class MotionMaster //: private std::stack<MovementGenerator *>
void MoveChase(Unit* target, float dist = 0.0f, float angle = 0.0f);
void MoveConfused();
void MoveFleeing(Unit* enemy, uint32 time = 0);
- void MovePoint(uint32 id, const Position &pos)
- { MovePoint(id, pos.m_positionX, pos.m_positionY, pos.m_positionZ); }
+ void MovePoint(uint32 id, Position const& pos, bool generatePath = true)
+ { MovePoint(id, pos.m_positionX, pos.m_positionY, pos.m_positionZ, generatePath); }
void MovePoint(uint32 id, float x, float y, float z, bool generatePath = true);
// These two movement types should only be used with creatures having landing/takeoff animations
diff --git a/src/server/game/Movement/MovementGenerators/ConfusedMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/ConfusedMovementGenerator.cpp
index 72537f0898c..ef24b112253 100755
--- a/src/server/game/Movement/MovementGenerators/ConfusedMovementGenerator.cpp
+++ b/src/server/game/Movement/MovementGenerators/ConfusedMovementGenerator.cpp
@@ -37,7 +37,7 @@ void ConfusedMovementGenerator<T>::DoInitialize(T* unit)
unit->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_CONFUSED);
unit->GetPosition(i_x, i_y, i_z);
- if (!unit->isAlive() || unit->IsStopped())
+ if (!unit->IsAlive() || unit->IsStopped())
return;
unit->StopMoving();
@@ -49,7 +49,7 @@ void ConfusedMovementGenerator<T>::DoReset(T* unit)
{
i_nextMoveTime.Reset(0);
- if (!unit->isAlive() || unit->IsStopped())
+ if (!unit->IsAlive() || unit->IsStopped())
return;
unit->StopMoving();
@@ -117,8 +117,8 @@ void ConfusedMovementGenerator<Creature>::DoFinalize(Creature* unit)
{
unit->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_CONFUSED);
unit->ClearUnitState(UNIT_STATE_CONFUSED | UNIT_STATE_CONFUSED_MOVE);
- if (unit->getVictim())
- unit->SetTarget(unit->getVictim()->GetGUID());
+ if (unit->GetVictim())
+ unit->SetTarget(unit->GetVictim()->GetGUID());
}
template void ConfusedMovementGenerator<Player>::DoInitialize(Player*);
diff --git a/src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp
index 216fffbfee1..f78411fc547 100644
--- a/src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp
+++ b/src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp
@@ -125,8 +125,8 @@ void FleeingMovementGenerator<Creature>::DoFinalize(Creature* owner)
{
owner->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_FLEEING);
owner->ClearUnitState(UNIT_STATE_FLEEING|UNIT_STATE_FLEEING_MOVE);
- if (owner->getVictim())
- owner->SetTarget(owner->getVictim()->GetGUID());
+ if (owner->GetVictim())
+ owner->SetTarget(owner->GetVictim()->GetGUID());
}
template<class T>
@@ -138,7 +138,7 @@ void FleeingMovementGenerator<T>::DoReset(T* owner)
template<class T>
bool FleeingMovementGenerator<T>::DoUpdate(T* owner, uint32 time_diff)
{
- if (!owner || !owner->isAlive())
+ if (!owner || !owner->IsAlive())
return false;
if (owner->HasUnitState(UNIT_STATE_ROOT | UNIT_STATE_STUNNED))
@@ -169,9 +169,9 @@ void TimedFleeingMovementGenerator::Finalize(Unit* owner)
{
owner->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_FLEEING);
owner->ClearUnitState(UNIT_STATE_FLEEING|UNIT_STATE_FLEEING_MOVE);
- if (Unit* victim = owner->getVictim())
+ if (Unit* victim = owner->GetVictim())
{
- if (owner->isAlive())
+ if (owner->IsAlive())
{
owner->AttackStop();
owner->ToCreature()->AI()->AttackStart(victim);
@@ -181,7 +181,7 @@ void TimedFleeingMovementGenerator::Finalize(Unit* owner)
bool TimedFleeingMovementGenerator::Update(Unit* owner, uint32 time_diff)
{
- if (!owner->isAlive())
+ if (!owner->IsAlive())
return false;
if (owner->HasUnitState(UNIT_STATE_ROOT | UNIT_STATE_STUNNED))
diff --git a/src/server/game/Movement/MovementGenerators/IdleMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/IdleMovementGenerator.cpp
index 81442570940..3cba9068139 100755
--- a/src/server/game/Movement/MovementGenerators/IdleMovementGenerator.cpp
+++ b/src/server/game/Movement/MovementGenerators/IdleMovementGenerator.cpp
@@ -40,8 +40,8 @@ void RotateMovementGenerator::Initialize(Unit* owner)
if (!owner->IsStopped())
owner->StopMoving();
- if (owner->getVictim())
- owner->SetInFront(owner->getVictim());
+ if (owner->GetVictim())
+ owner->SetInFront(owner->GetVictim());
owner->AddUnitState(UNIT_STATE_ROTATING);
@@ -61,8 +61,8 @@ bool RotateMovementGenerator::Update(Unit* owner, uint32 diff)
angle -= (float)diff * static_cast<float>(M_PI * 2) / m_maxDuration;
while (angle < 0) angle += static_cast<float>(M_PI * 2);
}
- owner->SetOrientation(angle);
- owner->SendMovementFlagUpdate(); // this is a hack. we do not have anything correct to send in the beginning
+
+ owner->SetFacingTo(angle);
if (m_duration > diff)
m_duration -= diff;
diff --git a/src/server/game/Movement/MovementGenerators/PointMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/PointMovementGenerator.cpp
index ea7a8c4c710..917872c5960 100755
--- a/src/server/game/Movement/MovementGenerators/PointMovementGenerator.cpp
+++ b/src/server/game/Movement/MovementGenerators/PointMovementGenerator.cpp
@@ -24,6 +24,7 @@
#include "MoveSplineInit.h"
#include "MoveSpline.h"
#include "Player.h"
+#include "CreatureGroups.h"
//----- Point Movement Generator
template<class T>
@@ -42,6 +43,11 @@ void PointMovementGenerator<T>::DoInitialize(T* unit)
if (speed > 0.0f)
init.SetVelocity(speed);
init.Launch();
+
+ // Call for creature group update
+ if (Creature* creature = unit->ToCreature())
+ if (creature->GetFormation() && creature->GetFormation()->getLeader() == creature)
+ creature->GetFormation()->LeaderMoveTo(i_x, i_y, i_z);
}
template<class T>
@@ -66,6 +72,11 @@ bool PointMovementGenerator<T>::DoUpdate(T* unit, uint32 /*diff*/)
if (speed > 0.0f) // Default value for point motion type is 0.0, if 0.0 spline will use GetSpeed on unit
init.SetVelocity(speed);
init.Launch();
+
+ // Call for creature group update
+ if (Creature* creature = unit->ToCreature())
+ if (creature->GetFormation() && creature->GetFormation()->getLeader() == creature)
+ creature->GetFormation()->LeaderMoveTo(i_x, i_y, i_z);
}
return !unit->movespline->Finalized();
@@ -114,7 +125,7 @@ void AssistanceMovementGenerator::Finalize(Unit* unit)
{
unit->ToCreature()->SetNoCallAssistance(false);
unit->ToCreature()->CallAssistance();
- if (unit->isAlive())
+ if (unit->IsAlive())
unit->GetMotionMaster()->MoveSeekAssistanceDistract(sWorld->getIntConfig(CONFIG_CREATURE_FAMILY_ASSISTANCE_DELAY));
}
@@ -129,9 +140,9 @@ void EffectMovementGenerator::Finalize(Unit* unit)
return;
// Need restore previous movement since we have no proper states system
- if (unit->isAlive() && !unit->HasUnitState(UNIT_STATE_CONFUSED | UNIT_STATE_FLEEING))
+ if (unit->IsAlive() && !unit->HasUnitState(UNIT_STATE_CONFUSED | UNIT_STATE_FLEEING))
{
- if (Unit* victim = unit->getVictim())
+ if (Unit* victim = unit->GetVictim())
unit->GetMotionMaster()->MoveChase(victim);
else
unit->GetMotionMaster()->Initialize();
diff --git a/src/server/game/Movement/MovementGenerators/RandomMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/RandomMovementGenerator.cpp
index 723b0748494..24fd38a3a8f 100644
--- a/src/server/game/Movement/MovementGenerators/RandomMovementGenerator.cpp
+++ b/src/server/game/Movement/MovementGenerators/RandomMovementGenerator.cpp
@@ -116,7 +116,7 @@ void RandomMovementGenerator<Creature>::_setRandomLocation(Creature* creature)
template<>
void RandomMovementGenerator<Creature>::DoInitialize(Creature* creature)
{
- if (!creature->isAlive())
+ if (!creature->IsAlive())
return;
if (!wander_distance)
diff --git a/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp
index abb4ac9964b..f457443dc8c 100644
--- a/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp
+++ b/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp
@@ -27,7 +27,7 @@
#include "Player.h"
template<class T, typename D>
-void TargetedMovementGeneratorMedium<T,D>::_setTargetLocation(T* owner, bool updateDestination)
+void TargetedMovementGeneratorMedium<T, D>::_setTargetLocation(T* owner, bool updateDestination)
{
if (!i_target.isValid() || !i_target->IsInWorld())
return;
@@ -58,7 +58,7 @@ void TargetedMovementGeneratorMedium<T,D>::_setTargetLocation(T* owner, bool upd
// be (GetCombatReach() + i_offset) away.
// Only applies when i_target is pet's owner otherwise pets and mobs end up
// doing a "dance" while fighting
- if (owner->isPet() && i_target->GetTypeId() == TYPEID_PLAYER)
+ if (owner->IsPet() && i_target->GetTypeId() == TYPEID_PLAYER)
{
dist = i_target->GetCombatReach();
size = i_target->GetCombatReach() - i_target->GetObjectSize();
@@ -89,7 +89,7 @@ void TargetedMovementGeneratorMedium<T,D>::_setTargetLocation(T* owner, bool upd
i_path = new PathGenerator(owner);
// allow pets to use shortcut if no path found when following their master
- bool forceDest = (owner->GetTypeId() == TYPEID_UNIT && owner->ToCreature()->isPet()
+ bool forceDest = (owner->GetTypeId() == TYPEID_UNIT && owner->ToCreature()->IsPet()
&& owner->HasUnitState(UNIT_STATE_FOLLOW));
bool result = i_path->CalculatePath(x, y, z, forceDest);
@@ -117,12 +117,12 @@ void TargetedMovementGeneratorMedium<T,D>::_setTargetLocation(T* owner, bool upd
}
template<class T, typename D>
-bool TargetedMovementGeneratorMedium<T,D>::DoUpdate(T* owner, uint32 time_diff)
+bool TargetedMovementGeneratorMedium<T, D>::DoUpdate(T* owner, uint32 time_diff)
{
if (!i_target.isValid() || !i_target->IsInWorld())
return false;
- if (!owner || !owner->isAlive())
+ if (!owner || !owner->IsAlive())
return false;
if (owner->HasUnitState(UNIT_STATE_NOT_MOVE))
@@ -185,7 +185,7 @@ template<class T>
void ChaseMovementGenerator<T>::_reachTarget(T* owner)
{
if (owner->IsWithinMeleeRange(this->i_target.getTarget()))
- owner->Attack(this->i_target.getTarget(),true);
+ owner->Attack(this->i_target.getTarget(), true);
}
template<>
@@ -252,7 +252,7 @@ void FollowMovementGenerator<Creature>::_updateSpeed(Creature* owner)
{
// pet only sync speed with owner
/// Make sure we are not in the process of a map change (IsInWorld)
- if (!owner->isPet() || !owner->IsInWorld() || !i_target.isValid() || i_target->GetGUID() != owner->GetOwnerGUID())
+ if (!owner->IsPet() || !owner->IsInWorld() || !i_target.isValid() || i_target->GetGUID() != owner->GetOwnerGUID())
return;
owner->UpdateSpeed(MOVE_RUN, true);
@@ -303,14 +303,14 @@ void FollowMovementGenerator<Creature>::MovementInform(Creature* unit)
}
//-----------------------------------------------//
-template void TargetedMovementGeneratorMedium<Player,ChaseMovementGenerator<Player> >::_setTargetLocation(Player*, bool);
-template void TargetedMovementGeneratorMedium<Player,FollowMovementGenerator<Player> >::_setTargetLocation(Player*, bool);
-template void TargetedMovementGeneratorMedium<Creature,ChaseMovementGenerator<Creature> >::_setTargetLocation(Creature*, bool);
-template void TargetedMovementGeneratorMedium<Creature,FollowMovementGenerator<Creature> >::_setTargetLocation(Creature*, bool);
-template bool TargetedMovementGeneratorMedium<Player,ChaseMovementGenerator<Player> >::DoUpdate(Player*, uint32);
-template bool TargetedMovementGeneratorMedium<Player,FollowMovementGenerator<Player> >::DoUpdate(Player*, uint32);
-template bool TargetedMovementGeneratorMedium<Creature,ChaseMovementGenerator<Creature> >::DoUpdate(Creature*, uint32);
-template bool TargetedMovementGeneratorMedium<Creature,FollowMovementGenerator<Creature> >::DoUpdate(Creature*, uint32);
+template void TargetedMovementGeneratorMedium<Player, ChaseMovementGenerator<Player> >::_setTargetLocation(Player*, bool);
+template void TargetedMovementGeneratorMedium<Player, FollowMovementGenerator<Player> >::_setTargetLocation(Player*, bool);
+template void TargetedMovementGeneratorMedium<Creature, ChaseMovementGenerator<Creature> >::_setTargetLocation(Creature*, bool);
+template void TargetedMovementGeneratorMedium<Creature, FollowMovementGenerator<Creature> >::_setTargetLocation(Creature*, bool);
+template bool TargetedMovementGeneratorMedium<Player, ChaseMovementGenerator<Player> >::DoUpdate(Player*, uint32);
+template bool TargetedMovementGeneratorMedium<Player, FollowMovementGenerator<Player> >::DoUpdate(Player*, uint32);
+template bool TargetedMovementGeneratorMedium<Creature, ChaseMovementGenerator<Creature> >::DoUpdate(Creature*, uint32);
+template bool TargetedMovementGeneratorMedium<Creature, FollowMovementGenerator<Creature> >::DoUpdate(Creature*, uint32);
template void ChaseMovementGenerator<Player>::_reachTarget(Player*);
template void ChaseMovementGenerator<Creature>::_reachTarget(Creature*);
diff --git a/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.h b/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.h
index 3edeb348d54..14d0ab0ec66 100755
--- a/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.h
+++ b/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.h
@@ -83,7 +83,7 @@ class ChaseMovementGenerator : public TargetedMovementGeneratorMedium<T, ChaseMo
static void _clearUnitStateMove(T* u) { u->ClearUnitState(UNIT_STATE_CHASE_MOVE); }
static void _addUnitStateMove(T* u) { u->AddUnitState(UNIT_STATE_CHASE_MOVE); }
bool EnableWalking() const { return false;}
- bool _lostTarget(T* u) const { return u->getVictim() != this->GetTarget(); }
+ bool _lostTarget(T* u) const { return u->GetVictim() != this->GetTarget(); }
void _reachTarget(T*);
};
diff --git a/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp
index 3e0274255fa..861b986dcdb 100755
--- a/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp
+++ b/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp
@@ -40,8 +40,8 @@ void WaypointMovementGenerator<Creature>::LoadPath(Creature* creature)
if (!i_path)
{
- // No movement found for entry
- TC_LOG_ERROR(LOG_FILTER_SQL, "WaypointMovementGenerator::LoadPath: creature %s (Entry: %u GUID: %u) doesn't have waypoint path id: %u", creature->GetName().c_str(), creature->GetEntry(), creature->GetGUIDLow(), path_id);
+ // No path id found for entry
+ TC_LOG_ERROR(LOG_FILTER_SQL, "WaypointMovementGenerator::LoadPath: creature %s (Entry: %u GUID: %u DB GUID: %u) doesn't have waypoint path id: %u", creature->GetName().c_str(), creature->GetEntry(), creature->GetGUIDLow(), creature->GetDBTableGUIDLow(), path_id);
return;
}
diff --git a/src/server/game/Movement/PathGenerator.cpp b/src/server/game/Movement/PathGenerator.cpp
index 80e8f1e1f44..ed30b59f0ec 100644
--- a/src/server/game/Movement/PathGenerator.cpp
+++ b/src/server/game/Movement/PathGenerator.cpp
@@ -97,7 +97,7 @@ dtPolyRef PathGenerator::GetPathPolyByPosition(dtPolyRef const* polyPath, uint32
for (uint32 i = 0; i < polyPathSize; ++i)
{
float closestPoint[VERTEX_SIZE];
- if (DT_SUCCESS != _navMeshQuery->closestPointOnPoly(polyPath[i], point, closestPoint))
+ if (dtStatusFailed(_navMeshQuery->closestPointOnPoly(polyPath[i], point, closestPoint)))
continue;
float d = dtVdist2DSqr(point, closestPoint);
@@ -132,8 +132,7 @@ dtPolyRef PathGenerator::GetPolyByLocation(float const* point, float* distance)
// first try with low search box
float extents[VERTEX_SIZE] = {3.0f, 5.0f, 3.0f}; // bounds of poly search area
float closestPoint[VERTEX_SIZE] = {0.0f, 0.0f, 0.0f};
- dtStatus result = _navMeshQuery->findNearestPoly(point, extents, &_filter, &polyRef, closestPoint);
- if (DT_SUCCESS == result && polyRef != INVALID_POLYREF)
+ if (dtStatusSucceed(_navMeshQuery->findNearestPoly(point, extents, &_filter, &polyRef, closestPoint)) && polyRef != INVALID_POLYREF)
{
*distance = dtVdist(closestPoint, point);
return polyRef;
@@ -141,9 +140,10 @@ dtPolyRef PathGenerator::GetPolyByLocation(float const* point, float* distance)
// still nothing ..
// try with bigger search box
- extents[1] = 200.0f;
- result = _navMeshQuery->findNearestPoly(point, extents, &_filter, &polyRef, closestPoint);
- if (DT_SUCCESS == result && polyRef != INVALID_POLYREF)
+ // Note that the extent should not overlap more than 128 polygons in the navmesh (see dtNavMeshQuery::findNearestPoly)
+ extents[1] = 50.0f;
+
+ if (dtStatusSucceed(_navMeshQuery->findNearestPoly(point, extents, &_filter, &polyRef, closestPoint)) && polyRef != INVALID_POLYREF)
{
*distance = dtVdist(closestPoint, point);
return polyRef;
@@ -172,7 +172,7 @@ void PathGenerator::BuildPolyPath(G3D::Vector3 const& startPos, G3D::Vector3 con
BuildShortcut();
bool path = _sourceUnit->GetTypeId() == TYPEID_UNIT && _sourceUnit->ToCreature()->CanFly();
- bool waterPath = _sourceUnit->GetTypeId() == TYPEID_UNIT && _sourceUnit->ToCreature()->canSwim();
+ bool waterPath = _sourceUnit->GetTypeId() == TYPEID_UNIT && _sourceUnit->ToCreature()->CanSwim();
if (waterPath)
{
// Check both start and end points, if they're both in water, then we can *safely* let the creature move
@@ -207,7 +207,7 @@ void PathGenerator::BuildPolyPath(G3D::Vector3 const& startPos, G3D::Vector3 con
if (_sourceUnit->GetBaseMap()->IsUnderWater(p.x, p.y, p.z))
{
TC_LOG_DEBUG(LOG_FILTER_MAPS, "++ BuildPolyPath :: underWater case\n");
- if (owner->canSwim())
+ if (owner->CanSwim())
buildShotrcut = true;
}
else
@@ -228,7 +228,7 @@ void PathGenerator::BuildPolyPath(G3D::Vector3 const& startPos, G3D::Vector3 con
{
float closestPoint[VERTEX_SIZE];
// we may want to use closestPointOnPolyBoundary instead
- if (DT_SUCCESS == _navMeshQuery->closestPointOnPoly(endPoly, endPoint, closestPoint))
+ if (dtStatusSucceed(_navMeshQuery->closestPointOnPoly(endPoly, endPoint, closestPoint)))
{
dtVcopy(endPoint, closestPoint);
SetActualEndPosition(G3D::Vector3(endPoint[2], endPoint[0], endPoint[1]));
@@ -319,13 +319,13 @@ void PathGenerator::BuildPolyPath(G3D::Vector3 const& startPos, G3D::Vector3 con
// we need any point on our suffix start poly to generate poly-path, so we need last poly in prefix data
float suffixEndPoint[VERTEX_SIZE];
- if (DT_SUCCESS != _navMeshQuery->closestPointOnPoly(suffixStartPoly, endPoint, suffixEndPoint))
+ if (dtStatusFailed(_navMeshQuery->closestPointOnPoly(suffixStartPoly, endPoint, suffixEndPoint)))
{
// we can hit offmesh connection as last poly - closestPointOnPoly() don't like that
// try to recover by using prev polyref
--prefixPolyLength;
suffixStartPoly = _pathPolyRefs[prefixPolyLength-1];
- if (DT_SUCCESS != _navMeshQuery->closestPointOnPoly(suffixStartPoly, endPoint, suffixEndPoint))
+ if (dtStatusFailed(_navMeshQuery->closestPointOnPoly(suffixStartPoly, endPoint, suffixEndPoint)))
{
// suffixStartPoly is still invalid, error state
BuildShortcut();
@@ -346,7 +346,7 @@ void PathGenerator::BuildPolyPath(G3D::Vector3 const& startPos, G3D::Vector3 con
(int*)&suffixPolyLength,
MAX_PATH_LENGTH-prefixPolyLength); // max number of polygons in output path
- if (!suffixPolyLength || dtResult != DT_SUCCESS)
+ if (!suffixPolyLength || dtStatusFailed(dtResult))
{
// this is probably an error state, but we'll leave it
// and hopefully recover on the next Update
@@ -380,7 +380,7 @@ void PathGenerator::BuildPolyPath(G3D::Vector3 const& startPos, G3D::Vector3 con
(int*)&_polyLength,
MAX_PATH_LENGTH); // max number of polygons in output path
- if (!_polyLength || dtResult != DT_SUCCESS)
+ if (!_polyLength || dtStatusFailed(dtResult))
{
// only happens if we passed bad data to findPath(), or navmesh is messed up
TC_LOG_ERROR(LOG_FILTER_MAPS, "%u's Path Build failed: 0 length path", _sourceUnit->GetGUIDLow());
@@ -430,7 +430,7 @@ void PathGenerator::BuildPointPath(const float *startPoint, const float *endPoin
_pointPathLimit); // maximum number of points
}
- if (pointCount < 2 || dtResult != DT_SUCCESS)
+ if (pointCount < 2 || dtStatusFailed(dtResult))
{
// only happens if pass bad data to findStraightPath or navmesh is broken
// single point paths can be generated here
@@ -511,11 +511,11 @@ void PathGenerator::CreateFilter()
if (_sourceUnit->GetTypeId() == TYPEID_UNIT)
{
Creature* creature = (Creature*)_sourceUnit;
- if (creature->canWalk())
+ if (creature->CanWalk())
includeFlags |= NAV_GROUND; // walk
// creatures don't take environmental damage
- if (creature->canSwim())
+ if (creature->CanSwim())
includeFlags |= (NAV_WATER | NAV_MAGMA | NAV_SLIME); // swim
}
else // assume Player
@@ -577,7 +577,7 @@ bool PathGenerator::HaveTile(const G3D::Vector3& p) const
if (tx < 0 || ty < 0)
return false;
- return (_navMesh->getTileAt(tx, ty) != NULL);
+ return (_navMesh->getTileAt(tx, ty, 0) != NULL);
}
uint32 PathGenerator::FixupCorridor(dtPolyRef* path, uint32 npath, uint32 maxPath, dtPolyRef const* visited, uint32 nvisited)
@@ -637,7 +637,7 @@ bool PathGenerator::GetSteerTarget(float const* startPos, float const* endPos,
uint32 nsteerPath = 0;
dtStatus dtResult = _navMeshQuery->findStraightPath(startPos, endPos, path, pathSize,
steerPath, steerPathFlags, steerPathPolys, (int*)&nsteerPath, MAX_STEER_POINTS);
- if (!nsteerPath || DT_SUCCESS != dtResult)
+ if (!nsteerPath || dtStatusFailed(dtResult))
return false;
// Find vertex far enough to steer to.
@@ -674,10 +674,10 @@ dtStatus PathGenerator::FindSmoothPath(float const* startPos, float const* endPo
uint32 npolys = polyPathSize;
float iterPos[VERTEX_SIZE], targetPos[VERTEX_SIZE];
- if (DT_SUCCESS != _navMeshQuery->closestPointOnPolyBoundary(polys[0], startPos, iterPos))
+ if (dtStatusFailed(_navMeshQuery->closestPointOnPolyBoundary(polys[0], startPos, iterPos)))
return DT_FAILURE;
- if (DT_SUCCESS != _navMeshQuery->closestPointOnPolyBoundary(polys[npolys-1], endPos, targetPos))
+ if (dtStatusFailed(_navMeshQuery->closestPointOnPolyBoundary(polys[npolys-1], endPos, targetPos)))
return DT_FAILURE;
dtVcopy(&smoothPath[nsmoothPath*VERTEX_SIZE], iterPos);
@@ -701,7 +701,7 @@ dtStatus PathGenerator::FindSmoothPath(float const* startPos, float const* endPo
// Find movement delta.
float delta[VERTEX_SIZE];
dtVsub(delta, steerPos, iterPos);
- float len = dtSqrt(dtVdot(delta,delta));
+ float len = dtSqrt(dtVdot(delta, delta));
// If the steer target is end of path or off-mesh link, do not move past the location.
if ((endOfPath || offMeshConnection) && len < SMOOTH_PATH_STEP_SIZE)
len = 1.0f;
@@ -756,7 +756,7 @@ dtStatus PathGenerator::FindSmoothPath(float const* startPos, float const* endPo
// Handle the connection.
float startPos[VERTEX_SIZE], endPos[VERTEX_SIZE];
- if (DT_SUCCESS == _navMesh->getOffMeshConnectionPolyEndPoints(prevRef, polyRef, startPos, endPos))
+ if (dtStatusSucceed(_navMesh->getOffMeshConnectionPolyEndPoints(prevRef, polyRef, startPos, endPos)))
{
if (nsmoothPath < maxSmoothPathSize)
{
diff --git a/src/server/game/Movement/Spline/MoveSpline.cpp b/src/server/game/Movement/Spline/MoveSpline.cpp
index 04c88c784ed..e786b78143a 100644
--- a/src/server/game/Movement/Spline/MoveSpline.cpp
+++ b/src/server/game/Movement/Spline/MoveSpline.cpp
@@ -23,10 +23,6 @@
namespace Movement{
-extern float computeFallTime(float path_length, bool isSafeFall);
-extern float computeFallElevation(float time_passed, bool isSafeFall, float start_velocy);
-extern float computeFallElevation(float time_passed);
-
Location MoveSpline::ComputePosition() const
{
ASSERT(Initialized());
@@ -84,12 +80,9 @@ void MoveSpline::computeParabolicElevation(float& el) const
void MoveSpline::computeFallElevation(float& el) const
{
- float z_now = spline.getPoint(spline.first()).z - Movement::computeFallElevation(MSToSec(time_passed));
+ float z_now = spline.getPoint(spline.first()).z - Movement::computeFallElevation(MSToSec(time_passed), false);
float final_z = FinalDestination().z;
- if (z_now < final_z)
- el = final_z;
- else
- el = z_now;
+ el = std::max(z_now, final_z);
}
inline uint32 computeDuration(float length, float velocity)
@@ -160,7 +153,7 @@ void MoveSpline::init_spline(const MoveSplineInitArgs& args)
point_Idx = spline.first();
}
-void MoveSpline::Initialize(const MoveSplineInitArgs& args)
+void MoveSpline::Initialize(MoveSplineInitArgs const& args)
{
splineflags = args.flags;
facing = args.facing;
@@ -168,7 +161,6 @@ void MoveSpline::Initialize(const MoveSplineInitArgs& args)
point_Idx_offset = args.path_Idx_offset;
initialOrientation = args.initialOrientation;
- onTransport = false;
time_passed = 0;
vertical_acceleration = 0.f;
effect_start_time = 0;
@@ -189,7 +181,8 @@ void MoveSpline::Initialize(const MoveSplineInitArgs& args)
}
MoveSpline::MoveSpline() : m_Id(0), time_passed(0),
- vertical_acceleration(0.f), initialOrientation(0.f), effect_start_time(0), point_Idx(0), point_Idx_offset(0)
+ vertical_acceleration(0.f), initialOrientation(0.f), effect_start_time(0), point_Idx(0), point_Idx_offset(0),
+ onTransport(false)
{
splineflags.done = true;
}
diff --git a/src/server/game/Movement/Spline/MoveSpline.h b/src/server/game/Movement/Spline/MoveSpline.h
index b18166ea615..75ea89bee81 100644
--- a/src/server/game/Movement/Spline/MoveSpline.h
+++ b/src/server/game/Movement/Spline/MoveSpline.h
@@ -49,6 +49,7 @@ namespace Movement
Result_NextSegment = 0x08
};
friend class PacketBuilder;
+
protected:
MySpline spline;
@@ -69,30 +70,30 @@ namespace Movement
int32 point_Idx_offset;
void init_spline(const MoveSplineInitArgs& args);
- protected:
- const MySpline::ControlArray& getPath() const { return spline.getPoints(); }
+ protected:
+ MySpline::ControlArray const& getPath() const { return spline.getPoints(); }
void computeParabolicElevation(float& el) const;
void computeFallElevation(float& el) const;
UpdateResult _updateState(int32& ms_time_diff);
- int32 next_timestamp() const { return spline.length(point_Idx+1); }
- int32 segment_time_elapsed() const { return next_timestamp()-time_passed; }
+ int32 next_timestamp() const { return spline.length(point_Idx + 1); }
+ int32 segment_time_elapsed() const { return next_timestamp() - time_passed; }
int32 timeElapsed() const { return Duration() - time_passed; }
int32 timePassed() const { return time_passed; }
public:
int32 Duration() const { return spline.length(); }
- const MySpline& _Spline() const { return spline; }
+ MySpline const& _Spline() const { return spline; }
int32 _currentSplineIdx() const { return point_Idx; }
void _Finalize();
- void _Interrupt() { splineflags.done = true;}
+ void _Interrupt() { splineflags.done = true; }
public:
void Initialize(const MoveSplineInitArgs&);
bool Initialized() const { return !spline.empty(); }
- explicit MoveSpline();
+ MoveSpline();
template<class UpdateHandler>
void updateState(int32 difftime, UpdateHandler& handler)
@@ -115,8 +116,9 @@ namespace Movement
uint32 GetId() const { return m_Id; }
bool Finalized() const { return splineflags.done; }
bool isCyclic() const { return splineflags.cyclic; }
- const Vector3 FinalDestination() const { return Initialized() ? spline.getPoint(spline.last()) : Vector3(); }
- const Vector3 CurrentDestination() const { return Initialized() ? spline.getPoint(point_Idx+1) : Vector3(); }
+ bool isFalling() const { return splineflags.falling; }
+ Vector3 FinalDestination() const { return Initialized() ? spline.getPoint(spline.last()) : Vector3(); }
+ Vector3 CurrentDestination() const { return Initialized() ? spline.getPoint(point_Idx + 1) : Vector3(); }
int32 currentPathIdx() const;
bool onTransport;
diff --git a/src/server/game/Movement/Spline/MoveSplineFlag.h b/src/server/game/Movement/Spline/MoveSplineFlag.h
index ec7eaf7e763..2cac9034c84 100644
--- a/src/server/game/Movement/Spline/MoveSplineFlag.h
+++ b/src/server/game/Movement/Spline/MoveSplineFlag.h
@@ -101,8 +101,8 @@ namespace Movement
void EnableAnimation(uint8 anim) { raw() = (raw() & ~(Mask_Animations | Falling | Parabolic)) | Animation | anim; }
void EnableParabolic() { raw() = (raw() & ~(Mask_Animations | Falling | Animation)) | Parabolic; }
- void EnableFalling() { raw() = (raw() & ~(Mask_Animations | Parabolic | Animation)) | Falling; }
- void EnableFlying() { raw() = (raw() & ~Catmullrom) | Flying; }
+ void EnableFalling() { raw() = (raw() & ~(Mask_Animations | Parabolic | Flying | Animation)) | Falling; }
+ void EnableFlying() { raw() = (raw() & ~(Falling | Catmullrom)) | Flying; }
void EnableCatmullRom() { raw() = (raw() & ~Flying) | Catmullrom; }
void EnableFacingPoint() { raw() = (raw() & ~Mask_Final_Facing) | Final_Point; }
void EnableFacingAngle() { raw() = (raw() & ~Mask_Final_Facing) | Final_Angle; }
diff --git a/src/server/game/Movement/Spline/MoveSplineInit.cpp b/src/server/game/Movement/Spline/MoveSplineInit.cpp
index 4b1af78a799..4209b9dd202 100644
--- a/src/server/game/Movement/Spline/MoveSplineInit.cpp
+++ b/src/server/game/Movement/Spline/MoveSplineInit.cpp
@@ -29,11 +29,7 @@ namespace Movement
{
UnitMoveType SelectSpeedType(uint32 moveFlags)
{
- /*! Not sure about MOVEMENTFLAG_CAN_FLY here - do creatures that can fly
- but are on ground right now also have it? If yes, this needs a more
- dynamic check, such as is flying now
- */
- if (moveFlags & (MOVEMENTFLAG_FLYING | MOVEMENTFLAG_CAN_FLY | MOVEMENTFLAG_DISABLE_GRAVITY))
+ if (moveFlags & MOVEMENTFLAG_FLYING)
{
if (moveFlags & MOVEMENTFLAG_BACKWARD /*&& speed_obj.flight >= speed_obj.flight_back*/)
return MOVE_FLIGHT_BACK;
@@ -55,6 +51,8 @@ namespace Movement
else if (moveFlags & MOVEMENTFLAG_BACKWARD /*&& speed_obj.run >= speed_obj.run_back*/)
return MOVE_RUN_BACK;
+ // Flying creatures use MOVEMENTFLAG_CAN_FLY or MOVEMENTFLAG_DISABLE_GRAVITY
+ // Run speed is their default flight speed.
return MOVE_RUN;
}
@@ -90,22 +88,27 @@ namespace Movement
move_spline.onTransport = transport;
uint32 moveFlags = unit->m_movementInfo.GetMovementFlags();
- if (args.flags.walkmode)
- moveFlags |= MOVEMENTFLAG_WALKING;
- else
- moveFlags &= ~MOVEMENTFLAG_WALKING;
-
moveFlags |= (MOVEMENTFLAG_SPLINE_ENABLED|MOVEMENTFLAG_FORWARD);
+ if (moveFlags & MOVEMENTFLAG_ROOT)
+ moveFlags &= ~MOVEMENTFLAG_MASK_MOVING;
+
if (!args.HasVelocity)
- args.velocity = unit->GetSpeed(SelectSpeedType(moveFlags));
+ {
+ // If spline is initialized with SetWalk method it only means we need to select
+ // walk move speed for it but not add walk flag to unit
+ uint32 moveFlagsForSpeed = moveFlags;
+ if (args.flags.walkmode)
+ moveFlagsForSpeed |= MOVEMENTFLAG_WALKING;
+ else
+ moveFlagsForSpeed &= ~MOVEMENTFLAG_WALKING;
+
+ args.velocity = unit->GetSpeed(SelectSpeedType(moveFlagsForSpeed));
+ }
if (!args.Validate(unit))
return 0;
- if (moveFlags & MOVEMENTFLAG_ROOT)
- moveFlags &= ~MOVEMENTFLAG_MASK_MOVING;
-
unit->m_movementInfo.SetMovementFlags((MovementFlags)moveFlags);
move_spline.Initialize(args);
@@ -118,7 +121,7 @@ namespace Movement
}
PacketBuilder::WriteMonsterMove(move_spline, data);
- unit->SendMessageToSet(&data,true);
+ unit->SendMessageToSet(&data, true);
return move_spline.Duration();
}
@@ -175,13 +178,8 @@ namespace Movement
Vector3 TransportPathTransform::operator()(Vector3 input)
{
if (_transformForTransport)
- {
if (TransportBase* transport = _owner->GetDirectTransport())
- {
- float unused = 0.0f; // need reference
- transport->CalculatePassengerOffset(input.x, input.y, input.z, unused);
- }
- }
+ transport->CalculatePassengerOffset(input.x, input.y, input.z);
return input;
}
diff --git a/src/server/game/Movement/Spline/MoveSplineInit.h b/src/server/game/Movement/Spline/MoveSplineInit.h
index 441bad66142..7b0527bb3a0 100644
--- a/src/server/game/Movement/Spline/MoveSplineInit.h
+++ b/src/server/game/Movement/Spline/MoveSplineInit.h
@@ -145,7 +145,7 @@ namespace Movement
inline void MoveSplineInit::SetWalk(bool enable) { args.flags.walkmode = enable; }
inline void MoveSplineInit::SetSmooth() { args.flags.EnableCatmullRom(); }
inline void MoveSplineInit::SetCyclic() { args.flags.cyclic = true; }
- inline void MoveSplineInit::SetFall() { args.flags.EnableFalling();}
+ inline void MoveSplineInit::SetFall() { args.flags.EnableFalling(); }
inline void MoveSplineInit::SetVelocity(float vel) { args.velocity = vel; args.HasVelocity = true; }
inline void MoveSplineInit::SetOrientationInversed() { args.flags.orientationInversed = true;}
inline void MoveSplineInit::SetTransportEnter() { args.flags.EnableTransportEnter(); }
diff --git a/src/server/game/Movement/Spline/MoveSplineInitArgs.h b/src/server/game/Movement/Spline/MoveSplineInitArgs.h
index 4a086094c3f..474541cbf15 100644
--- a/src/server/game/Movement/Spline/MoveSplineInitArgs.h
+++ b/src/server/game/Movement/Spline/MoveSplineInitArgs.h
@@ -30,9 +30,9 @@ namespace Movement
union FacingInfo
{
- struct{
+ struct {
float x, y, z;
- }f;
+ } f;
uint64 target;
float angle;
@@ -43,8 +43,8 @@ namespace Movement
struct MoveSplineInitArgs
{
- MoveSplineInitArgs(size_t path_capacity = 16) : path_Idx_offset(0),
- velocity(0.f), parabolic_amplitude(0.f), time_perc(0.f), splineId(0), initialOrientation(0.f),
+ MoveSplineInitArgs(size_t path_capacity = 16) : path_Idx_offset(0), velocity(0.f),
+ parabolic_amplitude(0.f), time_perc(0.f), splineId(0), initialOrientation(0.f),
HasVelocity(false), TransformForTransport(true)
{
path.reserve(path_capacity);
@@ -64,6 +64,7 @@ namespace Movement
/** Returns true to show that the arguments were configured correctly and MoveSpline initialization will succeed. */
bool Validate(Unit* unit) const;
+
private:
bool _checkPathBounds() const;
};
diff --git a/src/server/game/Movement/Spline/MovementTypedefs.h b/src/server/game/Movement/Spline/MovementTypedefs.h
index 51679260ebb..ffc19f10454 100644
--- a/src/server/game/Movement/Spline/MovementTypedefs.h
+++ b/src/server/game/Movement/Spline/MovementTypedefs.h
@@ -44,6 +44,9 @@ namespace Movement
return ms / 1000.f;
}
+ float computeFallTime(float path_length, bool isSafeFall);
+ float computeFallElevation(float t_passed, bool isSafeFall, float start_velocity = 0.0f);
+
#ifndef static_assert
#define CONCAT(x, y) CONCAT1 (x, y)
#define CONCAT1(x, y) x##y
@@ -75,7 +78,6 @@ namespace Movement
typedef counter<uint32, 0xFFFFFFFF> UInt32Counter;
extern double gravity;
- extern float computeFallElevation(float t_passed, bool isSafeFall, float start_velocity);
extern UInt32Counter splineIdGen;
}
diff --git a/src/server/game/Movement/Spline/MovementUtil.cpp b/src/server/game/Movement/Spline/MovementUtil.cpp
index 3531b629454..f68a776d485 100644
--- a/src/server/game/Movement/Spline/MovementUtil.cpp
+++ b/src/server/game/Movement/Spline/MovementUtil.cpp
@@ -30,8 +30,9 @@ namespace Movement
float terminalSafefallVelocity = 7.0f;
const float terminal_length = float(terminalVelocity * terminalVelocity) / (2.0f * gravity);
- const float terminal_safefall_length = (terminalSafefallVelocity * terminalSafefallVelocity) / (2.0f * gravity);
- const float terminalFallTime = float(terminalVelocity / gravity); // the time that needed to reach terminalVelocity
+ const float terminal_safeFall_length = (terminalSafefallVelocity * terminalSafefallVelocity) / (2.0f * gravity);
+ const float terminal_fallTime = float(terminalVelocity / gravity); // the time that needed to reach terminalVelocity
+ const float terminal_safeFall_fallTime = float(terminalSafefallVelocity / gravity); // the time that needed to reach terminalVelocity with safefall
float computeFallTime(float path_length, bool isSafeFall)
{
@@ -41,15 +42,15 @@ namespace Movement
float time;
if (isSafeFall)
{
- if (path_length >= terminal_safefall_length)
- time = (path_length - terminal_safefall_length) / terminalSafefallVelocity + terminalSafefallVelocity / gravity;
+ if (path_length >= terminal_safeFall_length)
+ time = (path_length - terminal_safeFall_length) / terminalSafefallVelocity + terminal_safeFall_fallTime;
else
time = sqrtf(2.0f * path_length / gravity);
}
else
{
if (path_length >= terminal_length)
- time = (path_length - terminal_length) / terminalVelocity + terminalFallTime;
+ time = (path_length - terminal_length) / terminalVelocity + terminal_fallTime;
else
time = sqrtf(2.0f * path_length / gravity);
}
@@ -57,7 +58,7 @@ namespace Movement
return time;
}
- float computeFallElevation(float t_passed, bool isSafeFall, float start_velocity)
+ float computeFallElevation(float t_passed, bool isSafeFall, float start_velocity /*= 0.0f*/)
{
float termVel;
float result;
@@ -70,11 +71,11 @@ namespace Movement
if (start_velocity > termVel)
start_velocity = termVel;
- float terminal_time = terminalFallTime - start_velocity / gravity; // the time that needed to reach terminalVelocity
+ float terminal_time = (isSafeFall ? terminal_safeFall_fallTime : terminal_fallTime) - start_velocity / gravity; // the time that needed to reach terminalVelocity
if (t_passed > terminal_time)
{
- result = terminalVelocity * (t_passed - terminal_time) +
+ result = termVel * (t_passed - terminal_time) +
start_velocity * terminal_time +
gravity * terminal_time * terminal_time*0.5f;
}
@@ -84,22 +85,6 @@ namespace Movement
return result;
}
- float computeFallElevation(float t_passed)
- {
- float result;
-
- if (t_passed > terminalFallTime)
- {
- //result = terminalVelocity * (t_passed - terminal_time) + gravity*terminal_time*terminal_time*0.5f;
- // simplified view:
- result = terminalVelocity * (t_passed - terminalFallTime) + terminal_length;
- }
- else
- result = t_passed * t_passed * gravity * 0.5f;
-
- return result;
- }
-
#define STR(x) #x
char const* g_MovementFlag_names[] =
diff --git a/src/server/game/Movement/Spline/Spline.h b/src/server/game/Movement/Spline/Spline.h
index 2a2f3fa8f43..42090cae71b 100644
--- a/src/server/game/Movement/Spline/Spline.h
+++ b/src/server/game/Movement/Spline/Spline.h
@@ -91,13 +91,13 @@ public:
@param t - percent of segment length, assumes that t in range [0, 1]
@param Idx - spline segment index, should be in range [first, last)
*/
- void evaluate_percent(index_type Idx, float u, Vector3& c) const {(this->*evaluators[m_mode])(Idx, u,c);}
+ void evaluate_percent(index_type Idx, float u, Vector3& c) const {(this->*evaluators[m_mode])(Idx, u, c);}
/** Caclulates derivation in index Idx, and percent of segment length t
@param Idx - spline segment index, should be in range [first, last)
@param t - percent of spline segment length, assumes that t in range [0, 1]
*/
- void evaluate_derivative(index_type Idx, float u, Vector3& hermite) const {(this->*derivative_evaluators[m_mode])(Idx, u,hermite);}
+ void evaluate_derivative(index_type Idx, float u, Vector3& hermite) const {(this->*derivative_evaluators[m_mode])(Idx, u, hermite);}
/** Bounds for spline indexes. All indexes should be in range [first, last). */
index_type first() const { return index_lo;}
@@ -156,12 +156,12 @@ public:
/** Calculates the position for given segment Idx, and percent of segment length t
@param t = partial_segment_length / whole_segment_length
@param Idx - spline segment index, should be in range [first, last). */
- void evaluate_percent(index_type Idx, float u, Vector3& c) const { SplineBase::evaluate_percent(Idx, u,c);}
+ void evaluate_percent(index_type Idx, float u, Vector3& c) const { SplineBase::evaluate_percent(Idx, u, c);}
/** Caclulates derivation for index Idx, and percent of segment length t
@param Idx - spline segment index, should be in range [first, last)
@param t - percent of spline segment length, assumes that t in range [0, 1]. */
- void evaluate_derivative(index_type Idx, float u, Vector3& c) const { SplineBase::evaluate_derivative(Idx, u,c);}
+ void evaluate_derivative(index_type Idx, float u, Vector3& c) const { SplineBase::evaluate_derivative(Idx, u, c);}
// Assumes that t in range [0, 1]
index_type computeIndexInBounds(float t) const;
@@ -169,7 +169,7 @@ public:
/** Initializes spline. Don't call other methods while spline not initialized. */
void init_spline(const Vector3 * controls, index_type count, EvaluationMode m) { SplineBase::init_spline(controls, count, m);}
- void init_cyclic_spline(const Vector3 * controls, index_type count, EvaluationMode m, index_type cyclic_point) { SplineBase::init_cyclic_spline(controls, count, m,cyclic_point);}
+ void init_cyclic_spline(const Vector3 * controls, index_type count, EvaluationMode m, index_type cyclic_point) { SplineBase::init_cyclic_spline(controls, count, m, cyclic_point);}
/** Initializes lengths with SplineBase::SegLength method. */
void initLengths();
diff --git a/src/server/game/Movement/Waypoints/Path.h b/src/server/game/Movement/Waypoints/Path.h
index 39f05184cf6..9814d1c65e1 100644
--- a/src/server/game/Movement/Waypoints/Path.h
+++ b/src/server/game/Movement/Waypoints/Path.h
@@ -40,13 +40,13 @@ class Path
void erase(uint32 idx) { i_nodes.erase(i_nodes.begin()+idx); }
void crop(unsigned int start, unsigned int end)
{
- while(start && !i_nodes.empty())
+ while (start && !i_nodes.empty())
{
i_nodes.pop_front();
--start;
}
- while(end && !i_nodes.empty())
+ while (end && !i_nodes.empty())
{
i_nodes.pop_back();
--end;
diff --git a/src/server/game/OutdoorPvP/OutdoorPvP.cpp b/src/server/game/OutdoorPvP/OutdoorPvP.cpp
index 6cc26483320..73b5399fa89 100644
--- a/src/server/game/OutdoorPvP/OutdoorPvP.cpp
+++ b/src/server/game/OutdoorPvP/OutdoorPvP.cpp
@@ -441,7 +441,7 @@ void OutdoorPvP::HandleKill(Player* killer, Unit* killed)
{
for (GroupReference* itr = group->GetFirstMember(); itr != NULL; itr = itr->next())
{
- Player* groupGuy = itr->getSource();
+ Player* groupGuy = itr->GetSource();
if (!groupGuy)
continue;
@@ -453,18 +453,14 @@ void OutdoorPvP::HandleKill(Player* killer, Unit* killed)
// creature kills must be notified, even if not inside objective / not outdoor pvp active
// player kills only count if active and inside objective
if ((groupGuy->IsOutdoorPvPActive() && IsInsideObjective(groupGuy)) || killed->GetTypeId() == TYPEID_UNIT)
- {
HandleKillImpl(groupGuy, killed);
- }
}
}
else
{
// creature kills must be notified, even if not inside objective / not outdoor pvp active
- if (killer && ((killer->IsOutdoorPvPActive() && IsInsideObjective(killer)) || killed->GetTypeId() == TYPEID_UNIT))
- {
+ if ((killer->IsOutdoorPvPActive() && IsInsideObjective(killer)) || killed->GetTypeId() == TYPEID_UNIT)
HandleKillImpl(killer, killed);
- }
}
}
diff --git a/src/server/game/Scripting/MapScripts.cpp b/src/server/game/Scripting/MapScripts.cpp
index 9eb6dbed73b..c37cdf80730 100644
--- a/src/server/game/Scripting/MapScripts.cpp
+++ b/src/server/game/Scripting/MapScripts.cpp
@@ -579,7 +579,7 @@ void Map::ScriptsProcess()
}
// quest id and flags checked at script loading
- if ((worldObject->GetTypeId() != TYPEID_UNIT || ((Unit*)worldObject)->isAlive()) &&
+ if ((worldObject->GetTypeId() != TYPEID_UNIT || ((Unit*)worldObject)->IsAlive()) &&
(step.script->QuestExplored.Distance == 0 || worldObject->IsWithinDistInMap(player, float(step.script->QuestExplored.Distance))))
player->AreaExploredOrEventHappens(step.script->QuestExplored.QuestID);
else
@@ -886,12 +886,10 @@ void Map::ScriptsProcess()
if (!targetUnit)
break;
- sourceUnit->SetInFront(targetUnit);
+ sourceUnit->SetFacingToObject(targetUnit);
}
else
- sourceUnit->SetOrientation(step.script->Orientation.Orientation);
-
- sourceUnit->SendMovementFlagUpdate();
+ sourceUnit->SetFacingTo(step.script->Orientation.Orientation);
}
break;
diff --git a/src/server/game/Scripting/ScriptLoader.cpp b/src/server/game/Scripting/ScriptLoader.cpp
index 5f5024729ca..8e2fc2953c9 100644
--- a/src/server/game/Scripting/ScriptLoader.cpp
+++ b/src/server/game/Scripting/ScriptLoader.cpp
@@ -46,6 +46,7 @@ void AddSC_SmartSCripts();
//Commands
void AddSC_account_commandscript();
void AddSC_achievement_commandscript();
+void AddSC_arena_commandscript();
void AddSC_ban_commandscript();
void AddSC_bf_commandscript();
void AddSC_cast_commandscript();
@@ -124,19 +125,22 @@ void AddSC_boss_quatermasterzigris();
void AddSC_boss_pyroguard_emberseer();
void AddSC_boss_gyth();
void AddSC_boss_rend_blackhand();
+void AddSC_boss_gizrul_the_slavener();
+void AddSC_boss_urok_doomhowl();
+void AddSC_boss_lord_valthalak();
void AddSC_instance_blackrock_spire();
void AddSC_boss_razorgore(); //Blackwing lair
-void AddSC_boss_vael();
+void AddSC_boss_vaelastrasz();
void AddSC_boss_broodlord();
void AddSC_boss_firemaw();
void AddSC_boss_ebonroc();
void AddSC_boss_flamegor();
void AddSC_boss_chromaggus();
void AddSC_boss_nefarian();
-void AddSC_boss_victor_nefarius();
-void AddSC_boss_mr_smite();
+void AddSC_instance_blackwing_lair();
void AddSC_deadmines(); //Deadmines
void AddSC_instance_deadmines();
+void AddSC_boss_mr_smite();
void AddSC_gnomeregan(); //Gnomeregan
void AddSC_instance_gnomeregan();
void AddSC_boss_attumen(); //Karazhan
@@ -293,11 +297,11 @@ void AddSC_boss_epoch_hunter();
void AddSC_boss_lieutenant_drake();
void AddSC_instance_old_hillsbrad();
void AddSC_old_hillsbrad();
-void AddSC_boss_aeonus(); //CoT The Dark Portal
+void AddSC_boss_aeonus(); //CoT The Black Morass
void AddSC_boss_chrono_lord_deja();
void AddSC_boss_temporus();
-void AddSC_dark_portal();
-void AddSC_instance_dark_portal();
+void AddSC_the_black_morass();
+void AddSC_instance_the_black_morass();
void AddSC_boss_epoch(); //CoT Culling Of Stratholme
void AddSC_boss_infinite_corruptor();
void AddSC_boss_salramm();
@@ -332,7 +336,7 @@ void AddSC_boss_sartura();
void AddSC_boss_skeram();
void AddSC_boss_twinemperors();
void AddSC_boss_ouro();
-void AddSC_mob_anubisath_sentinel();
+void AddSC_npc_anubisath_sentinel();
void AddSC_instance_temple_of_ahnqiraj();
void AddSC_wailing_caverns(); //Wailing caverns
void AddSC_instance_wailing_caverns();
@@ -465,9 +469,9 @@ void AddSC_boss_toravon();
void AddSC_instance_archavon();
void AddSC_boss_trollgore(); //Drak'Tharon Keep
void AddSC_boss_novos();
-void AddSC_boss_dred();
+void AddSC_boss_king_dred();
void AddSC_boss_tharon_ja();
-void AddSC_instance_drak_tharon();
+void AddSC_instance_drak_tharon_keep();
void AddSC_boss_cyanigosa(); //Violet Hold
void AddSC_boss_erekem();
void AddSC_boss_ichoron();
@@ -531,6 +535,7 @@ void AddSC_boss_nexusprince_shaffar(); //Auchindoun Mana Tombs
void AddSC_boss_pandemonius();
void AddSC_boss_darkweaver_syth(); //Auchindoun Sekketh Halls
void AddSC_boss_talon_king_ikiss();
+void AddSC_boss_anzu();
void AddSC_instance_sethekk_halls();
void AddSC_instance_shadow_labyrinth(); //Auchindoun Shadow Labyrinth
void AddSC_boss_ambassador_hellmaw();
@@ -680,6 +685,7 @@ void AddCommandScripts()
{
AddSC_account_commandscript();
AddSC_achievement_commandscript();
+ AddSC_arena_commandscript();
AddSC_ban_commandscript();
AddSC_bf_commandscript();
AddSC_cast_commandscript();
@@ -765,18 +771,21 @@ void AddEasternKingdomsScripts()
AddSC_boss_pyroguard_emberseer();
AddSC_boss_gyth();
AddSC_boss_rend_blackhand();
+ AddSC_boss_gizrul_the_slavener();
+ AddSC_boss_urok_doomhowl();
+ AddSC_boss_lord_valthalak();
AddSC_instance_blackrock_spire();
AddSC_boss_razorgore(); //Blackwing lair
- AddSC_boss_vael();
+ AddSC_boss_vaelastrasz();
AddSC_boss_broodlord();
AddSC_boss_firemaw();
AddSC_boss_ebonroc();
AddSC_boss_flamegor();
AddSC_boss_chromaggus();
AddSC_boss_nefarian();
- AddSC_boss_victor_nefarius();
- AddSC_boss_mr_smite();
+ AddSC_instance_blackwing_lair();
AddSC_deadmines(); //Deadmines
+ AddSC_boss_mr_smite();
AddSC_instance_deadmines();
AddSC_gnomeregan(); //Gnomeregan
AddSC_instance_gnomeregan();
@@ -938,11 +947,11 @@ void AddKalimdorScripts()
AddSC_boss_lieutenant_drake();
AddSC_instance_old_hillsbrad();
AddSC_old_hillsbrad();
- AddSC_boss_aeonus(); //CoT The Dark Portal
+ AddSC_boss_aeonus(); //CoT The Black Morass
AddSC_boss_chrono_lord_deja();
AddSC_boss_temporus();
- AddSC_dark_portal();
- AddSC_instance_dark_portal();
+ AddSC_the_black_morass();
+ AddSC_instance_the_black_morass();
AddSC_boss_epoch(); //CoT Culling Of Stratholme
AddSC_boss_infinite_corruptor();
AddSC_boss_salramm();
@@ -977,7 +986,7 @@ void AddKalimdorScripts()
AddSC_boss_skeram();
AddSC_boss_twinemperors();
AddSC_boss_ouro();
- AddSC_mob_anubisath_sentinel();
+ AddSC_npc_anubisath_sentinel();
AddSC_instance_temple_of_ahnqiraj();
AddSC_wailing_caverns(); //Wailing caverns
AddSC_instance_wailing_caverns();
@@ -1019,6 +1028,7 @@ void AddOutlandScripts()
AddSC_boss_pandemonius();
AddSC_boss_darkweaver_syth(); //Auchindoun Sekketh Halls
AddSC_boss_talon_king_ikiss();
+ AddSC_boss_anzu();
AddSC_instance_sethekk_halls();
AddSC_instance_shadow_labyrinth(); //Auchindoun Shadow Labyrinth
AddSC_boss_ambassador_hellmaw();
@@ -1205,9 +1215,9 @@ void AddNorthrendScripts()
AddSC_instance_archavon();
AddSC_boss_trollgore(); //Drak'Tharon Keep
AddSC_boss_novos();
- AddSC_boss_dred();
+ AddSC_boss_king_dred();
AddSC_boss_tharon_ja();
- AddSC_instance_drak_tharon();
+ AddSC_instance_drak_tharon_keep();
AddSC_boss_cyanigosa(); //Violet Hold
AddSC_boss_erekem();
AddSC_boss_ichoron();
diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h
index a6d68c62ef2..e7946501616 100644
--- a/src/server/game/Scripting/ScriptMgr.h
+++ b/src/server/game/Scripting/ScriptMgr.h
@@ -195,7 +195,7 @@ class SpellScriptLoader : public ScriptObject
public:
- bool IsDatabaseBound() const { return true; }
+ bool IsDatabaseBound() const FINAL { return true; }
// Should return a fully valid SpellScript pointer.
virtual SpellScript* GetSpellScript() const { return NULL; }
@@ -336,9 +336,6 @@ template<class TMap> class MapScript : public UpdatableScript<TMap>
// Called when a player leaves the map.
virtual void OnPlayerLeave(TMap* /*map*/, Player* /*player*/) { }
-
- // Called on every map update tick.
- virtual void OnUpdate(TMap* /*map*/, uint32 /*diff*/) { }
};
class WorldMapScript : public ScriptObject, public MapScript<Map>
@@ -356,7 +353,7 @@ class InstanceMapScript : public ScriptObject, public MapScript<InstanceMap>
public:
- bool IsDatabaseBound() const { return true; }
+ bool IsDatabaseBound() const FINAL { return true; }
// Gets an InstanceScript object for this instance.
virtual InstanceScript* GetInstanceScript(InstanceMap* /*map*/) const { return NULL; }
@@ -377,7 +374,7 @@ class ItemScript : public ScriptObject
public:
- bool IsDatabaseBound() const { return true; }
+ bool IsDatabaseBound() const FINAL { return true; }
// Called when a dummy spell effect is triggered on the item.
virtual bool OnDummyEffect(Unit* /*caster*/, uint32 /*spellId*/, SpellEffIndex /*effIndex*/, Item* /*target*/) { return false; }
@@ -417,7 +414,7 @@ class CreatureScript : public UnitScript, public UpdatableScript<Creature>
public:
- bool IsDatabaseBound() const { return true; }
+ bool IsDatabaseBound() const FINAL { return true; }
// Called when a dummy spell effect is triggered on the creature.
virtual bool OnDummyEffect(Unit* /*caster*/, uint32 /*spellId*/, SpellEffIndex /*effIndex*/, Creature* /*target*/) { return false; }
@@ -458,7 +455,7 @@ class GameObjectScript : public ScriptObject, public UpdatableScript<GameObject>
public:
- bool IsDatabaseBound() const { return true; }
+ bool IsDatabaseBound() const FINAL { return true; }
// Called when a dummy spell effect is triggered on the gameobject.
virtual bool OnDummyEffect(Unit* /*caster*/, uint32 /*spellId*/, SpellEffIndex /*effIndex*/, GameObject* /*target*/) { return false; }
@@ -505,7 +502,7 @@ class AreaTriggerScript : public ScriptObject
public:
- bool IsDatabaseBound() const { return true; }
+ bool IsDatabaseBound() const FINAL { return true; }
// Called when the area trigger is activated by a player.
virtual bool OnTrigger(Player* /*player*/, AreaTriggerEntry const* /*trigger*/) { return false; }
@@ -519,7 +516,7 @@ class BattlegroundScript : public ScriptObject
public:
- bool IsDatabaseBound() const { return true; }
+ bool IsDatabaseBound() const FINAL { return true; }
// Should return a fully valid Battleground object for the type ID.
virtual Battleground* GetBattleground() const = 0;
@@ -533,7 +530,7 @@ class OutdoorPvPScript : public ScriptObject
public:
- bool IsDatabaseBound() const { return true; }
+ bool IsDatabaseBound() const FINAL { return true; }
// Should return a fully valid OutdoorPvP object for the type ID.
virtual OutdoorPvP* GetOutdoorPvP() const = 0;
@@ -559,7 +556,7 @@ class WeatherScript : public ScriptObject, public UpdatableScript<Weather>
public:
- bool IsDatabaseBound() const { return true; }
+ bool IsDatabaseBound() const FINAL { return true; }
// Called when the weather changes in the zone this script is associated with.
virtual void OnChange(Weather* /*weather*/, WeatherState /*state*/, float /*grade*/) { }
@@ -594,7 +591,7 @@ class ConditionScript : public ScriptObject
public:
- bool IsDatabaseBound() const { return true; }
+ bool IsDatabaseBound() const FINAL { return true; }
// Called when a single condition is checked for a player.
virtual bool OnConditionCheck(Condition* /*condition*/, ConditionSourceInfo& /*sourceInfo*/) { return true; }
@@ -642,7 +639,7 @@ class TransportScript : public ScriptObject, public UpdatableScript<Transport>
public:
- bool IsDatabaseBound() const { return true; }
+ bool IsDatabaseBound() const FINAL { return true; }
// Called when a player boards the transport.
virtual void OnAddPassenger(Transport* /*transport*/, Player* /*player*/) { }
@@ -665,7 +662,7 @@ class AchievementCriteriaScript : public ScriptObject
public:
- bool IsDatabaseBound() const { return true; }
+ bool IsDatabaseBound() const FINAL { return true; }
// Called when an additional criteria is checked.
virtual bool OnCheck(Player* source, Unit* target) = 0;
@@ -688,8 +685,8 @@ class PlayerScript : public UnitScript
// Called when a player is killed by a creature
virtual void OnPlayerKilledByCreature(Creature* /*killer*/, Player* /*killed*/) { }
- // Called when a player's level changes (right before the level is applied)
- virtual void OnLevelChanged(Player* /*player*/, uint8 /*newLevel*/) { }
+ // Called when a player's level changes (after the level is applied)
+ virtual void OnLevelChanged(Player* /*player*/, uint8 /*oldLevel*/) { }
// Called when a player's free talent points change (right before the change is applied)
virtual void OnFreeTalentPointsChanged(Player* /*player*/, uint32 /*points*/) { }
@@ -767,7 +764,7 @@ class GuildScript : public ScriptObject
public:
- bool IsDatabaseBound() const { return false; }
+ bool IsDatabaseBound() const FINAL { return false; }
// Called when a member is added to the guild.
virtual void OnAddMember(Guild* /*guild*/, Player* /*player*/, uint8& /*plRank*/) { }
@@ -810,7 +807,7 @@ class GroupScript : public ScriptObject
public:
- bool IsDatabaseBound() const { return false; }
+ bool IsDatabaseBound() const FINAL { return false; }
// Called when a member is added to a group.
virtual void OnAddMember(Group* /*group*/, uint64 /*guid*/) { }
diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp
index 7237d5f74f7..065b80cb08f 100644
--- a/src/server/game/Server/Protocol/Opcodes.cpp
+++ b/src/server/game/Server/Protocol/Opcodes.cpp
@@ -1317,7 +1317,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x508*/ { "CMSG_SET_ALLOW_LOW_LEVEL_RAID1", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL },
/*0x509*/ { "CMSG_SET_ALLOW_LOW_LEVEL_RAID2", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL },
/*0x50A*/ { "SMSG_CAMERA_SHAKE", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide },
- /*0x50B*/ { "SMSG_UPDATE_ITEM_ENCHANTMENTS", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide },
+ /*0x50B*/ { "SMSG_SOCKET_GEMS_RESULT", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide },
/*0x50C*/ { "CMSG_SET_CHARACTER_MODEL", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL },
/*0x50D*/ { "SMSG_REDIRECT_CLIENT", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide },
/*0x50E*/ { "CMSG_REDIRECTION_FAILED", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL },
diff --git a/src/server/game/Server/Protocol/Opcodes.h b/src/server/game/Server/Protocol/Opcodes.h
index 30c5b1dcdf4..254f9fe5350 100644
--- a/src/server/game/Server/Protocol/Opcodes.h
+++ b/src/server/game/Server/Protocol/Opcodes.h
@@ -1325,7 +1325,7 @@ enum Opcodes
CMSG_SET_ALLOW_LOW_LEVEL_RAID1 = 0x508,
CMSG_SET_ALLOW_LOW_LEVEL_RAID2 = 0x509,
SMSG_CAMERA_SHAKE = 0x50A, // uint32 SpellEffectCameraShakes.dbc index, uint32
- SMSG_UPDATE_ITEM_ENCHANTMENTS = 0x50B, // some item update packet?
+ SMSG_SOCKET_GEMS_RESULT = 0x50B,
CMSG_SET_CHARACTER_MODEL = 0x50C,
SMSG_REDIRECT_CLIENT = 0x50D, // uint32 ip, uint16 port, uint32 unk, uint8[20] hash (ip + port, seed=sessionkey)
CMSG_REDIRECTION_FAILED = 0x50E, // something with networking
diff --git a/src/server/game/Server/Protocol/PacketLog.cpp b/src/server/game/Server/Protocol/PacketLog.cpp
index fe8b6804020..aeeb0a285a4 100644
--- a/src/server/game/Server/Protocol/PacketLog.cpp
+++ b/src/server/game/Server/Protocol/PacketLog.cpp
@@ -35,13 +35,13 @@ PacketLog::~PacketLog()
void PacketLog::Initialize()
{
- std::string logsDir = ConfigMgr::GetStringDefault("LogsDir", "");
+ std::string logsDir = sConfigMgr->GetStringDefault("LogsDir", "");
if (!logsDir.empty())
if ((logsDir.at(logsDir.length()-1) != '/') && (logsDir.at(logsDir.length()-1) != '\\'))
logsDir.push_back('/');
- std::string logname = ConfigMgr::GetStringDefault("PacketLogFile", "");
+ std::string logname = sConfigMgr->GetStringDefault("PacketLogFile", "");
if (!logname.empty())
_file = fopen((logsDir + logname).c_str(), "wb");
}
diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp
index b5e22f011a1..5519f1d4d0e 100644
--- a/src/server/game/Server/WorldSession.cpp
+++ b/src/server/game/Server/WorldSession.cpp
@@ -450,7 +450,7 @@ void WorldSession::LogoutPlayer(bool save)
bg->EventPlayerLoggedOut(_player);
///- Teleport to home if the player is in an invalid instance
- if (!_player->m_InstanceValid && !_player->isGameMaster())
+ if (!_player->m_InstanceValid && !_player->IsGameMaster())
_player->TeleportTo(_player->m_homebindMapId, _player->m_homebindX, _player->m_homebindY, _player->m_homebindZ, _player->GetOrientation());
sOutdoorPvPMgr->HandlePlayerLeaveZone(_player, _player->GetZoneId());
@@ -769,16 +769,16 @@ void WorldSession::ReadMovementInfo(WorldPacket &data, MovementInfo* mi)
if (mi->HasMovementFlag(MOVEMENTFLAG_ONTRANSPORT))
{
- data.readPackGUID(mi->t_guid);
+ data.readPackGUID(mi->transport.guid);
- data >> mi->t_pos.PositionXYZOStream();
- data >> mi->t_time;
- data >> mi->t_seat;
+ data >> mi->transport.pos.PositionXYZOStream();
+ data >> mi->transport.time;
+ data >> mi->transport.seat;
if (mi->HasExtraMovementFlag(MOVEMENTFLAG2_INTERPOLATED_MOVEMENT))
- data >> mi->t_time2;
+ data >> mi->transport.time2;
- if (mi->pos.m_positionX != mi->t_pos.m_positionX)
+ if (mi->pos.m_positionX != mi->transport.pos.m_positionX)
if (GetPlayer()->GetTransport())
GetPlayer()->GetTransport()->UpdatePosition(mi);
}
@@ -790,10 +790,10 @@ void WorldSession::ReadMovementInfo(WorldPacket &data, MovementInfo* mi)
if (mi->HasMovementFlag(MOVEMENTFLAG_FALLING))
{
- data >> mi->j_zspeed;
- data >> mi->j_sinAngle;
- data >> mi->j_cosAngle;
- data >> mi->j_xyspeed;
+ data >> mi->jump.zspeed;
+ data >> mi->jump.sinAngle;
+ data >> mi->jump.cosAngle;
+ data >> mi->jump.xyspeed;
}
if (mi->HasMovementFlag(MOVEMENTFLAG_SPLINE_ELEVATION))
@@ -869,6 +869,10 @@ void WorldSession::ReadMovementInfo(WorldPacket &data, MovementInfo* mi)
!GetPlayer()->m_mover->HasAuraType(SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED),
MOVEMENTFLAG_FLYING | MOVEMENTFLAG_CAN_FLY);
+ //! Cannot fly and fall at the same time
+ REMOVE_VIOLATING_FLAGS(mi->HasMovementFlag(MOVEMENTFLAG_CAN_FLY | MOVEMENTFLAG_DISABLE_GRAVITY) && mi->HasMovementFlag(MOVEMENTFLAG_FALLING),
+ MOVEMENTFLAG_FALLING);
+
#undef REMOVE_VIOLATING_FLAGS
}
@@ -883,14 +887,14 @@ void WorldSession::WriteMovementInfo(WorldPacket* data, MovementInfo* mi)
if (mi->HasMovementFlag(MOVEMENTFLAG_ONTRANSPORT))
{
- data->appendPackGUID(mi->t_guid);
+ data->appendPackGUID(mi->transport.guid);
- *data << mi->t_pos.PositionXYZOStream();
- *data << mi->t_time;
- *data << mi->t_seat;
+ *data << mi->transport.pos.PositionXYZOStream();
+ *data << mi->transport.time;
+ *data << mi->transport.seat;
if (mi->HasExtraMovementFlag(MOVEMENTFLAG2_INTERPOLATED_MOVEMENT))
- *data << mi->t_time2;
+ *data << mi->transport.time2;
}
if (mi->HasMovementFlag(MovementFlags(MOVEMENTFLAG_SWIMMING | MOVEMENTFLAG_FLYING)) || mi->HasExtraMovementFlag(MOVEMENTFLAG2_ALWAYS_ALLOW_PITCHING))
@@ -900,10 +904,10 @@ void WorldSession::WriteMovementInfo(WorldPacket* data, MovementInfo* mi)
if (mi->HasMovementFlag(MOVEMENTFLAG_FALLING))
{
- *data << mi->j_zspeed;
- *data << mi->j_sinAngle;
- *data << mi->j_cosAngle;
- *data << mi->j_xyspeed;
+ *data << mi->jump.zspeed;
+ *data << mi->jump.sinAngle;
+ *data << mi->jump.cosAngle;
+ *data << mi->jump.xyspeed;
}
if (mi->HasMovementFlag(MOVEMENTFLAG_SPLINE_ELEVATION))
diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h
index b714cd71e6d..bf79b34822d 100644
--- a/src/server/game/Server/WorldSession.h
+++ b/src/server/game/Server/WorldSession.h
@@ -322,7 +322,7 @@ class WorldSession
void SendAuctionOwnerNotification(AuctionEntry* auction);
//Item Enchantment
- void SendEnchantmentLog(uint64 Target, uint64 Caster, uint32 ItemID, uint32 SpellID);
+ void SendEnchantmentLog(uint64 target, uint64 caster, uint32 itemId, uint32 enchantId);
void SendItemEnchantTimeUpdate(uint64 Playerguid, uint64 Itemguid, uint32 slot, uint32 Duration);
//Taxi
diff --git a/src/server/game/Server/WorldSocketMgr.cpp b/src/server/game/Server/WorldSocketMgr.cpp
index ce89243c005..57a77773d52 100644
--- a/src/server/game/Server/WorldSocketMgr.cpp
+++ b/src/server/game/Server/WorldSocketMgr.cpp
@@ -230,9 +230,9 @@ WorldSocketMgr::~WorldSocketMgr()
int
WorldSocketMgr::StartReactiveIO (ACE_UINT16 port, const char* address)
{
- m_UseNoDelay = ConfigMgr::GetBoolDefault ("Network.TcpNodelay", true);
+ m_UseNoDelay = sConfigMgr->GetBoolDefault ("Network.TcpNodelay", true);
- int num_threads = ConfigMgr::GetIntDefault ("Network.Threads", 1);
+ int num_threads = sConfigMgr->GetIntDefault ("Network.Threads", 1);
if (num_threads <= 0)
{
@@ -247,9 +247,9 @@ WorldSocketMgr::StartReactiveIO (ACE_UINT16 port, const char* address)
TC_LOG_DEBUG(LOG_FILTER_GENERAL, "Max allowed socket connections %d", ACE::max_handles());
// -1 means use default
- m_SockOutKBuff = ConfigMgr::GetIntDefault ("Network.OutKBuff", -1);
+ m_SockOutKBuff = sConfigMgr->GetIntDefault ("Network.OutKBuff", -1);
- m_SockOutUBuff = ConfigMgr::GetIntDefault ("Network.OutUBuff", 65536);
+ m_SockOutUBuff = sConfigMgr->GetIntDefault ("Network.OutUBuff", 65536);
if (m_SockOutUBuff <= 0)
{
diff --git a/src/server/game/Skills/SkillExtraItems.cpp b/src/server/game/Skills/SkillExtraItems.cpp
index f0f2f787e60..66ad6fc190a 100644
--- a/src/server/game/Skills/SkillExtraItems.cpp
+++ b/src/server/game/Skills/SkillExtraItems.cpp
@@ -112,7 +112,7 @@ void LoadSkillExtraItemTable()
TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, ">> Loaded %u spell specialization definitions in %u ms", count, GetMSTimeDiffToNow(oldMSTime));
}
-bool canCreateExtraItems(Player* player, uint32 spellId, float &additionalChance, uint8 &additionalMax)
+bool CanCreateExtraItems(Player* player, uint32 spellId, float &additionalChance, uint8 &additionalMax)
{
// get the info for the specified spell
SkillExtraItemMap::const_iterator ret = SkillExtraItemStore.find(spellId);
diff --git a/src/server/game/Skills/SkillExtraItems.h b/src/server/game/Skills/SkillExtraItems.h
index fd73cdbeab6..507d513dd02 100644
--- a/src/server/game/Skills/SkillExtraItems.h
+++ b/src/server/game/Skills/SkillExtraItems.h
@@ -24,7 +24,7 @@
// predef classes used in functions
class Player;
// returns true and sets the appropriate info if the player can create extra items with the given spellId
-bool canCreateExtraItems(Player* player, uint32 spellId, float &additionalChance, uint8 &additionalMax);
+bool CanCreateExtraItems(Player* player, uint32 spellId, float &additionalChance, uint8 &additionalMax);
// function to load the extra item creation info from DB
void LoadSkillExtraItemTable();
#endif
diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
index 09da8885076..20b6e67c5db 100644
--- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp
+++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
@@ -588,7 +588,7 @@ void AuraEffect::CalculateSpellMod()
m_spellmod->op = SpellModOp(GetMiscValue());
ASSERT(m_spellmod->op < MAX_SPELLMOD);
- m_spellmod->type = SpellModType(GetAuraType()); // SpellModType value == spell aura types
+ m_spellmod->type = SpellModType(uint32(GetAuraType())); // SpellModType value == spell aura types
m_spellmod->spellId = GetId();
m_spellmod->mask = GetSpellInfo()->Effects[GetEffIndex()].SpellClassMask;
m_spellmod->charges = GetBase()->GetCharges();
@@ -1492,7 +1492,7 @@ void AuraEffect::HandleSpiritOfRedemption(AuraApplication const* aurApp, uint8 m
target->SetHealth(1);
}
// die at aura end
- else if (target->isAlive())
+ else if (target->IsAlive())
// call functions which may have additional effects after chainging state of unit
target->setDeathState(JUST_DIED);
}
@@ -1544,7 +1544,7 @@ void AuraEffect::HandlePhase(AuraApplication const* aurApp, uint8 mode, bool app
newPhase = PHASEMASK_NORMAL;
// GM-mode have mask 0xFFFFFFFF
- if (player->isGameMaster())
+ if (player->IsGameMaster())
newPhase = 0xFFFFFFFF;
player->SetPhaseMask(newPhase, false);
@@ -1701,18 +1701,19 @@ void AuraEffect::HandleAuraModShapeshift(AuraApplication const* aurApp, uint8 mo
int32 basePoints = int32(std::min(oldPower, FurorChance));
target->SetPower(POWER_ENERGY, 0);
target->CastCustomSpell(target, 17099, &basePoints, NULL, NULL, true, NULL, this);
+ break;
}
- break;
case FORM_BEAR:
case FORM_DIREBEAR:
- if (urand(0, 99) < FurorChance)
- target->CastSpell(target, 17057, true);
+ if (urand(0, 99) < FurorChance)
+ target->CastSpell(target, 17057, true);
+ break;
default:
{
uint32 newEnergy = std::min(target->GetPower(POWER_ENERGY), FurorChance);
target->SetPower(POWER_ENERGY, newEnergy);
+ break;
}
- break;
}
break;
}
@@ -2068,7 +2069,9 @@ void AuraEffect::HandleAuraModScale(AuraApplication const* aurApp, uint8 mode, b
Unit* target = aurApp->GetTarget();
- target->ApplyPercentModFloatValue(OBJECT_FIELD_SCALE_X, (float)GetAmount(), apply);
+ float scale = target->GetFloatValue(OBJECT_FIELD_SCALE_X);
+ ApplyPercentModFloatVar(scale, float(GetAmount()), apply);
+ target->SetObjectScale(scale);
}
void AuraEffect::HandleAuraCloneCaster(AuraApplication const* aurApp, uint8 mode, bool apply) const
@@ -2555,24 +2558,10 @@ void AuraEffect::HandleAuraAllowFlight(AuraApplication const* aurApp, uint8 mode
return;
}
- //! Not entirely sure if this should be sent for creatures as well, but I don't think so.
target->SetCanFly(apply);
- if (!apply)
- {
- target->RemoveUnitMovementFlag(MOVEMENTFLAG_MASK_MOVING_FLY);
- target->GetMotionMaster()->MoveFall();
- target->m_movementInfo.SetFallTime(0);
- }
- Player* player = target->ToPlayer();
- if (!player)
- player = target->m_movedPlayer;
-
- if (player)
- player->SendMovementCanFlyChange();
-
- //! We still need to initiate a server-side MoveFall here,
- //! which requires MSG_MOVE_FALL_LAND on landing.
+ if (!apply && target->GetTypeId() == TYPEID_UNIT && !target->IsLevitating())
+ target->GetMotionMaster()->MoveFall();
}
void AuraEffect::HandleAuraWaterWalk(AuraApplication const* aurApp, uint8 mode, bool apply) const
@@ -2589,12 +2578,7 @@ void AuraEffect::HandleAuraWaterWalk(AuraApplication const* aurApp, uint8 mode,
return;
}
- if (apply)
- target->AddUnitMovementFlag(MOVEMENTFLAG_WATERWALKING);
- else
- target->RemoveUnitMovementFlag(MOVEMENTFLAG_WATERWALKING);
-
- target->SendMovementWaterWalking();
+ target->SetWaterWalking(apply);
}
void AuraEffect::HandleAuraFeatherFall(AuraApplication const* aurApp, uint8 mode, bool apply) const
@@ -2611,12 +2595,7 @@ void AuraEffect::HandleAuraFeatherFall(AuraApplication const* aurApp, uint8 mode
return;
}
- if (apply)
- target->AddUnitMovementFlag(MOVEMENTFLAG_FALLING_SLOW);
- else
- target->RemoveUnitMovementFlag(MOVEMENTFLAG_FALLING_SLOW);
-
- target->SendMovementFeatherFall();
+ target->SetFeatherFall(apply);
// start fall from current height
if (!apply && target->GetTypeId() == TYPEID_PLAYER)
@@ -2638,7 +2617,6 @@ void AuraEffect::HandleAuraHover(AuraApplication const* aurApp, uint8 mode, bool
}
target->SetHover(apply); //! Sets movementflags
- target->SendMovementHover();
}
void AuraEffect::HandleWaterBreathing(AuraApplication const* aurApp, uint8 mode, bool /*apply*/) const
@@ -2693,11 +2671,11 @@ void AuraEffect::HandleAuraModTotalThreat(AuraApplication const* aurApp, uint8 m
Unit* target = aurApp->GetTarget();
- if (!target->isAlive() || target->GetTypeId() != TYPEID_PLAYER)
+ if (!target->IsAlive() || target->GetTypeId() != TYPEID_PLAYER)
return;
Unit* caster = GetCaster();
- if (caster && caster->isAlive())
+ if (caster && caster->IsAlive())
target->getHostileRefManager().addTempThreat((float)GetAmount(), apply);
}
@@ -2708,11 +2686,11 @@ void AuraEffect::HandleModTaunt(AuraApplication const* aurApp, uint8 mode, bool
Unit* target = aurApp->GetTarget();
- if (!target->isAlive() || !target->CanHaveThreatList())
+ if (!target->IsAlive() || !target->CanHaveThreatList())
return;
Unit* caster = GetCaster();
- if (!caster || !caster->isAlive())
+ if (!caster || !caster->IsAlive())
return;
if (apply)
@@ -2821,7 +2799,7 @@ void AuraEffect::HandleModPossessPet(AuraApplication const* aurApp, uint8 mode,
// return;
Unit* target = aurApp->GetTarget();
- if (target->GetTypeId() != TYPEID_UNIT || !target->ToCreature()->isPet())
+ if (target->GetTypeId() != TYPEID_UNIT || !target->ToCreature()->IsPet())
return;
Pet* pet = target->ToPet();
@@ -2850,7 +2828,7 @@ void AuraEffect::HandleModPossessPet(AuraApplication const* aurApp, uint8 mode,
// Follow owner only if not fighting or owner didn't click "stay" at new location
// This may be confusing because pet bar shows "stay" when under the spell but it retains
// the "follow" flag. Player MUST click "stay" while under the spell.
- if (!pet->getVictim() && !pet->GetCharmInfo()->HasCommandState(COMMAND_STAY))
+ if (!pet->GetVictim() && !pet->GetCharmInfo()->HasCommandState(COMMAND_STAY))
{
pet->GetMotionMaster()->MoveFollow(caster, PET_FOLLOW_DIST, pet->GetFollowAngle());
}
@@ -2925,7 +2903,12 @@ void AuraEffect::HandleAuraControlVehicle(AuraApplication const* aurApp, uint8 m
if (caster->GetTypeId() == TYPEID_UNIT)
caster->ToCreature()->RemoveCorpse();
}
- caster->_ExitVehicle();
+
+ if (!(mode & AURA_EFFECT_HANDLE_CHANGE_AMOUNT))
+ caster->_ExitVehicle();
+ else
+ target->GetVehicleKit()->RemovePassenger(caster); // Only remove passenger from vehicle without launching exit movement or despawning the vehicle
+
// some SPELL_AURA_CONTROL_VEHICLE auras have a dummy effect on the player - remove them
caster->RemoveAurasDueToSpell(GetId());
}
@@ -2955,6 +2938,8 @@ void AuraEffect::HandleAuraModIncreaseFlightSpeed(AuraApplication const* aurApp,
return;
Unit* target = aurApp->GetTarget();
+ if (mode & AURA_EFFECT_HANDLE_CHANGE_AMOUNT_MASK)
+ target->UpdateSpeed(MOVE_FLIGHT, true);
//! Update ability to fly
if (GetAuraType() == SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED)
@@ -2963,21 +2948,9 @@ void AuraEffect::HandleAuraModIncreaseFlightSpeed(AuraApplication const* aurApp,
if (mode & AURA_EFFECT_HANDLE_SEND_FOR_CLIENT_MASK && (apply || (!target->HasAuraType(SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED) && !target->HasAuraType(SPELL_AURA_FLY))))
{
target->SetCanFly(apply);
- if (!apply)
- {
- target->m_movementInfo.SetFallTime(0);
- target->RemoveUnitMovementFlag(MOVEMENTFLAG_MASK_MOVING_FLY);
- }
-
- Player* player = target->ToPlayer();
- if (!player)
- player = target->m_movedPlayer;
-
- if (player)
- player->SendMovementCanFlyChange();
- //! We still need to initiate a server-side MoveFall here,
- //! which requires MSG_MOVE_FALL_LAND on landing.
+ if (!apply && target->GetTypeId() == TYPEID_UNIT && !target->IsLevitating())
+ target->GetMotionMaster()->MoveFall();
}
//! Someone should clean up these hacks and remove it from this function. It doesn't even belong here.
@@ -2992,9 +2965,6 @@ void AuraEffect::HandleAuraModIncreaseFlightSpeed(AuraApplication const* aurApp,
target->SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, 16314);
}
}
-
- if (mode & AURA_EFFECT_HANDLE_CHANGE_AMOUNT_MASK)
- target->UpdateSpeed(MOVE_FLIGHT, true);
}
void AuraEffect::HandleAuraModIncreaseSwimSpeed(AuraApplication const* aurApp, uint8 mode, bool /*apply*/) const
@@ -3490,7 +3460,7 @@ void AuraEffect::HandleAuraModResistance(AuraApplication const* aurApp, uint8 mo
if (GetMiscValue() & int32(1<<x))
{
target->HandleStatModifier(UnitMods(UNIT_MOD_RESISTANCE_START + x), TOTAL_VALUE, float(GetAmount()), apply);
- if (target->GetTypeId() == TYPEID_PLAYER || target->ToCreature()->isPet())
+ if (target->GetTypeId() == TYPEID_PLAYER || target->ToCreature()->IsPet())
target->ApplyResistanceBuffModsMod(SpellSchools(x), GetAmount() > 0, (float)GetAmount(), apply);
}
}
@@ -3507,7 +3477,7 @@ void AuraEffect::HandleAuraModBaseResistancePCT(AuraApplication const* aurApp, u
if (target->GetTypeId() != TYPEID_PLAYER)
{
//pets only have base armor
- if (target->ToCreature()->isPet() && (GetMiscValue() & SPELL_SCHOOL_MASK_NORMAL))
+ if (target->ToCreature()->IsPet() && (GetMiscValue() & SPELL_SCHOOL_MASK_NORMAL))
target->HandleStatModifier(UNIT_MOD_ARMOR, BASE_PCT, float(GetAmount()), apply);
}
else
@@ -3532,7 +3502,7 @@ void AuraEffect::HandleModResistancePercent(AuraApplication const* aurApp, uint8
if (GetMiscValue() & int32(1<<i))
{
target->HandleStatModifier(UnitMods(UNIT_MOD_RESISTANCE_START + i), TOTAL_PCT, float(GetAmount()), apply);
- if (target->GetTypeId() == TYPEID_PLAYER || target->ToCreature()->isPet())
+ if (target->GetTypeId() == TYPEID_PLAYER || target->ToCreature()->IsPet())
{
target->ApplyResistanceBuffModsPercentMod(SpellSchools(i), true, (float)GetAmount(), apply);
target->ApplyResistanceBuffModsPercentMod(SpellSchools(i), false, (float)GetAmount(), apply);
@@ -3552,7 +3522,7 @@ void AuraEffect::HandleModBaseResistance(AuraApplication const* aurApp, uint8 mo
if (target->GetTypeId() != TYPEID_PLAYER)
{
//only pets have base stats
- if (target->ToCreature()->isPet() && (GetMiscValue() & SPELL_SCHOOL_MASK_NORMAL))
+ if (target->ToCreature()->IsPet() && (GetMiscValue() & SPELL_SCHOOL_MASK_NORMAL))
target->HandleStatModifier(UNIT_MOD_ARMOR, TOTAL_VALUE, float(GetAmount()), apply);
}
else
@@ -3605,7 +3575,7 @@ void AuraEffect::HandleAuraModStat(AuraApplication const* aurApp, uint8 mode, bo
{
//target->ApplyStatMod(Stats(i), m_amount, apply);
target->HandleStatModifier(UnitMods(UNIT_MOD_STAT_START + i), TOTAL_VALUE, float(GetAmount()), apply);
- if (target->GetTypeId() == TYPEID_PLAYER || target->ToCreature()->isPet())
+ if (target->GetTypeId() == TYPEID_PLAYER || target->ToCreature()->IsPet())
target->ApplyStatBuffMod(Stats(i), (float)GetAmount(), apply);
}
}
@@ -3724,14 +3694,14 @@ void AuraEffect::HandleModTotalPercentStat(AuraApplication const* aurApp, uint8
// save current health state
float healthPct = target->GetHealthPct();
- bool alive = target->isAlive();
+ bool alive = target->IsAlive();
for (int32 i = STAT_STRENGTH; i < MAX_STATS; i++)
{
if (GetMiscValue() == i || GetMiscValue() == -1)
{
target->HandleStatModifier(UnitMods(UNIT_MOD_STAT_START + i), TOTAL_PCT, float(GetAmount()), apply);
- if (target->GetTypeId() == TYPEID_PLAYER || target->ToCreature()->isPet())
+ if (target->GetTypeId() == TYPEID_PLAYER || target->ToCreature()->IsPet())
target->ApplyStatPercentBuffMod(Stats(i), float(GetAmount()), apply);
}
}
@@ -3923,7 +3893,7 @@ void AuraEffect::HandleAuraModIncreaseHealthPercent(AuraApplication const* aurAp
// Unit will keep hp% after MaxHealth being modified if unit is alive.
float percent = target->GetHealthPct();
target->HandleStatModifier(UNIT_MOD_HEALTH, TOTAL_PCT, float(GetAmount()), apply);
- if (target->isAlive())
+ if (target->IsAlive())
target->SetHealth(target->CountPctFromMaxHealth(int32(percent)));
}
@@ -4686,7 +4656,7 @@ void AuraEffect::HandleAuraDummy(AuraApplication const* aurApp, uint8 mode, bool
// AT REMOVE
else
{
- if ((GetSpellInfo()->IsQuestTame()) && caster && caster->isAlive() && target->isAlive())
+ if ((GetSpellInfo()->IsQuestTame()) && caster && caster->IsAlive() && target->IsAlive())
{
uint32 finalSpelId = 0;
switch (GetId())
@@ -5029,20 +4999,19 @@ void AuraEffect::HandleForceReaction(AuraApplication const* aurApp, uint8 mode,
Unit* target = aurApp->GetTarget();
- if (target->GetTypeId() != TYPEID_PLAYER)
+ Player* player = target->ToPlayer();
+ if (!player)
return;
- Player* player = (Player*)target;
-
- uint32 faction_id = GetMiscValue();
- ReputationRank faction_rank = ReputationRank(m_amount);
+ uint32 factionId = GetMiscValue();
+ ReputationRank factionRank = ReputationRank(m_amount);
- player->GetReputationMgr().ApplyForceReaction(faction_id, faction_rank, apply);
+ player->GetReputationMgr().ApplyForceReaction(factionId, factionRank, apply);
player->GetReputationMgr().SendForceReactions();
// stop fighting if at apply forced rank friendly or at remove real rank friendly
- if ((apply && faction_rank >= REP_FRIENDLY) || (!apply && player->GetReputationRank(faction_id) >= REP_FRIENDLY))
- player->StopAttackFaction(faction_id);
+ if ((apply && factionRank >= REP_FRIENDLY) || (!apply && player->GetReputationRank(factionId) >= REP_FRIENDLY))
+ player->StopAttackFaction(factionId);
}
void AuraEffect::HandleAuraEmpathy(AuraApplication const* aurApp, uint8 mode, bool apply) const
@@ -5108,11 +5077,10 @@ void AuraEffect::HandleAuraConvertRune(AuraApplication const* aurApp, uint8 mode
Unit* target = aurApp->GetTarget();
- if (target->GetTypeId() != TYPEID_PLAYER)
+ Player* player = target->ToPlayer();
+ if (!player)
return;
- Player* player = (Player*)target;
-
if (player->getClass() != CLASS_DEATH_KNIGHT)
return;
@@ -5435,12 +5403,12 @@ void AuraEffect::HandlePeriodicDummyAuraTick(Unit* target, Unit* caster) const
{
// Feeding Frenzy Rank 1
case 53511:
- if (target->getVictim() && target->getVictim()->HealthBelowPct(35))
+ if (target->GetVictim() && target->GetVictim()->HealthBelowPct(35))
target->CastSpell(target, 60096, true, 0, this);
return;
// Feeding Frenzy Rank 2
case 53512:
- if (target->getVictim() && target->getVictim()->HealthBelowPct(35))
+ if (target->GetVictim() && target->GetVictim()->HealthBelowPct(35))
target->CastSpell(target, 60097, true, 0, this);
return;
default:
@@ -5509,10 +5477,6 @@ void AuraEffect::HandlePeriodicTriggerSpellAuraTick(Unit* target, Unit* caster)
{
switch (auraId)
{
- // Thaumaturgy Channel
- case 9712:
- triggerSpellId = 21029;
- break;
// Brood Affliction: Bronze
case 23170:
triggerSpellId = 23171;
@@ -5805,7 +5769,7 @@ void AuraEffect::HandlePeriodicTriggerSpellWithValueAuraTick(Unit* target, Unit*
void AuraEffect::HandlePeriodicDamageAurasTick(Unit* target, Unit* caster) const
{
- if (!caster || !target->isAlive())
+ if (!caster || !target->IsAlive())
return;
if (target->HasUnitState(UNIT_STATE_ISOLATED) || target->IsImmunedToDamage(GetSpellInfo()))
@@ -5950,7 +5914,7 @@ void AuraEffect::HandlePeriodicDamageAurasTick(Unit* target, Unit* caster) const
void AuraEffect::HandlePeriodicHealthLeechAuraTick(Unit* target, Unit* caster) const
{
- if (!caster || !target->isAlive())
+ if (!caster || !target->IsAlive())
return;
if (target->HasUnitState(UNIT_STATE_ISOLATED) || target->IsImmunedToDamage(GetSpellInfo()))
@@ -6005,10 +5969,10 @@ void AuraEffect::HandlePeriodicHealthLeechAuraTick(Unit* target, Unit* caster) c
damage = (damage <= absorb+resist) ? 0 : (damage-absorb-resist);
if (damage)
procVictim |= PROC_FLAG_TAKEN_DAMAGE;
- if (caster->isAlive())
+ if (caster->IsAlive())
caster->ProcDamageAndSpell(target, procAttacker, procVictim, procEx, damage, BASE_ATTACK, GetSpellInfo());
int32 new_damage = caster->DealDamage(target, damage, &cleanDamage, DOT, GetSpellInfo()->GetSchoolMask(), GetSpellInfo(), false);
- if (caster->isAlive())
+ if (caster->IsAlive())
{
float gainMultiplier = GetSpellInfo()->Effects[GetEffIndex()].CalcValueMultiplier(caster);
@@ -6022,7 +5986,7 @@ void AuraEffect::HandlePeriodicHealthLeechAuraTick(Unit* target, Unit* caster) c
void AuraEffect::HandlePeriodicHealthFunnelAuraTick(Unit* target, Unit* caster) const
{
- if (!caster || !caster->isAlive() || !target->isAlive())
+ if (!caster || !caster->IsAlive() || !target->IsAlive())
return;
if (target->HasUnitState(UNIT_STATE_ISOLATED))
@@ -6050,7 +6014,7 @@ void AuraEffect::HandlePeriodicHealthFunnelAuraTick(Unit* target, Unit* caster)
void AuraEffect::HandlePeriodicHealAurasTick(Unit* target, Unit* caster) const
{
- if (!caster || !target->isAlive())
+ if (!caster || !target->IsAlive())
return;
if (target->HasUnitState(UNIT_STATE_ISOLATED))
@@ -6060,7 +6024,7 @@ void AuraEffect::HandlePeriodicHealAurasTick(Unit* target, Unit* caster) const
}
// heal for caster damage (must be alive)
- if (target != caster && GetSpellInfo()->AttributesEx2 & SPELL_ATTR2_HEALTH_FUNNEL && !caster->isAlive())
+ if (target != caster && GetSpellInfo()->AttributesEx2 & SPELL_ATTR2_HEALTH_FUNNEL && !caster->IsAlive())
return;
// don't regen when permanent aura target has full power
@@ -6167,7 +6131,7 @@ void AuraEffect::HandlePeriodicManaLeechAuraTick(Unit* target, Unit* caster) con
{
Powers powerType = Powers(GetMiscValue());
- if (!caster || !caster->isAlive() || !target->isAlive() || target->getPowerType() != powerType)
+ if (!caster || !caster->IsAlive() || !target->IsAlive() || target->getPowerType() != powerType)
return;
if (target->HasUnitState(UNIT_STATE_ISOLATED) || target->IsImmunedToDamage(GetSpellInfo()))
@@ -6240,7 +6204,7 @@ void AuraEffect::HandleObsModPowerAuraTick(Unit* target, Unit* caster) const
else
powerType = Powers(GetMiscValue());
- if (!target->isAlive() || !target->GetMaxPower(powerType))
+ if (!target->IsAlive() || !target->GetMaxPower(powerType))
return;
if (target->HasUnitState(UNIT_STATE_ISOLATED))
@@ -6271,7 +6235,7 @@ void AuraEffect::HandlePeriodicEnergizeAuraTick(Unit* target, Unit* caster) cons
{
Powers powerType = Powers(GetMiscValue());
- if (!target->isAlive() || !target->GetMaxPower(powerType))
+ if (!target->IsAlive() || !target->GetMaxPower(powerType))
return;
if (target->HasUnitState(UNIT_STATE_ISOLATED))
@@ -6303,7 +6267,7 @@ void AuraEffect::HandlePeriodicPowerBurnAuraTick(Unit* target, Unit* caster) con
{
Powers powerType = Powers(GetMiscValue());
- if (!caster || !target->isAlive() || target->getPowerType() != powerType)
+ if (!caster || !target->IsAlive() || target->getPowerType() != powerType)
return;
if (target->HasUnitState(UNIT_STATE_ISOLATED) || target->IsImmunedToDamage(GetSpellInfo()))
diff --git a/src/server/game/Spells/Auras/SpellAuras.cpp b/src/server/game/Spells/Auras/SpellAuras.cpp
index 732cb50e274..2846137ad95 100644
--- a/src/server/game/Spells/Auras/SpellAuras.cpp
+++ b/src/server/game/Spells/Auras/SpellAuras.cpp
@@ -347,6 +347,14 @@ m_isRemoved(false), m_isSingleTarget(false), m_isUsingCharges(false)
// m_casterLevel = cast item level/caster level, caster level should be saved to db, confirmed with sniffs
}
+AuraScript* Aura::GetScriptByName(std::string const& scriptName) const
+{
+ for (std::list<AuraScript*>::const_iterator itr = m_loadedScripts.begin(); itr != m_loadedScripts.end(); ++itr)
+ if ((*itr)->_GetScriptName()->compare(scriptName) == 0)
+ return *itr;
+ return NULL;
+}
+
void Aura::_InitEffects(uint8 effMask, Unit* caster, int32 *baseAmount)
{
// shouldn't be in constructor - functions in AuraEffect::AuraEffect use polymorphism
@@ -535,7 +543,7 @@ void Aura::UpdateTargetMap(Unit* caster, bool apply)
// persistent area aura does not hit flying targets
if (GetType() == DYNOBJ_AURA_TYPE)
{
- if (itr->first->isInFlight())
+ if (itr->first->IsInFlight())
addUnit = false;
}
// unit auras can not stack with each other
@@ -937,6 +945,31 @@ bool Aura::CanBeSentToClient() const
return !IsPassive() || GetSpellInfo()->HasAreaAuraEffect() || HasEffectType(SPELL_AURA_ABILITY_IGNORE_AURASTATE);
}
+bool Aura::IsSingleTargetWith(Aura const* aura) const
+{
+ // Same spell?
+ if (GetSpellInfo()->IsRankOf(aura->GetSpellInfo()))
+ return true;
+
+ SpellSpecificType spec = GetSpellInfo()->GetSpellSpecific();
+ // spell with single target specific types
+ switch (spec)
+ {
+ case SPELL_SPECIFIC_JUDGEMENT:
+ case SPELL_SPECIFIC_MAGE_POLYMORPH:
+ if (aura->GetSpellInfo()->GetSpellSpecific() == spec)
+ return true;
+ break;
+ default:
+ break;
+ }
+
+ if (HasEffectType(SPELL_AURA_CONTROL_VEHICLE) && aura->HasEffectType(SPELL_AURA_CONTROL_VEHICLE))
+ return true;
+
+ return false;
+}
+
void Aura::UnregisterSingleTarget()
{
ASSERT(m_isSingleTarget);
@@ -1046,7 +1079,7 @@ void Aura::HandleAuraSpecificMods(AuraApplication const* aurApp, Unit* caster, b
for (SpellAreaForAreaMap::const_iterator itr = saBounds.first; itr != saBounds.second; ++itr)
{
// some auras remove at aura remove
- if (!itr->second->IsFitToRequirements((Player*)target, zone, area))
+ if (!itr->second->IsFitToRequirements(target->ToPlayer(), zone, area))
target->RemoveAurasDueToSpell(itr->second->spellId);
// some auras applied at aura apply
else if (itr->second->autocast)
@@ -1599,32 +1632,6 @@ void Aura::HandleAuraSpecificMods(AuraApplication const* aurApp, Unit* caster, b
case SPELLFAMILY_PALADIN:
switch (GetId())
{
- case 19746:
- // Improved concentration aura - linked aura
- if (caster->HasAura(20254) || caster->HasAura(20255) || caster->HasAura(20256))
- {
- if (apply)
- target->CastSpell(target, 63510, true);
- else
- target->RemoveAura(63510);
- }
- case 31821:
- // Aura Mastery Triggered Spell Handler
- // If apply Concentration Aura -> trigger -> apply Aura Mastery Immunity
- // If remove Concentration Aura -> trigger -> remove Aura Mastery Immunity
- // If remove Aura Mastery -> trigger -> remove Aura Mastery Immunity
- // Do effects only on aura owner
- if (GetCasterGUID() != target->GetGUID())
- break;
-
- if (apply)
- {
- if ((GetSpellInfo()->Id == 31821 && target->HasAura(19746, GetCasterGUID())) || (GetSpellInfo()->Id == 19746 && target->HasAura(31821)))
- target->CastSpell(target, 64364, true);
- }
- else
- target->RemoveAurasDueToSpell(64364, GetCasterGUID());
- break;
case 31842: // Divine Illumination
// Item - Paladin T10 Holy 2P Bonus
if (target->HasAura(70755))
@@ -1636,118 +1643,6 @@ void Aura::HandleAuraSpecificMods(AuraApplication const* aurApp, Unit* caster, b
}
break;
}
- if (GetSpellInfo()->GetSpellSpecific() == SPELL_SPECIFIC_AURA)
- {
- if (!caster)
- break;
-
- // Improved devotion aura
- if (caster->HasAura(20140) || caster->HasAura(20138) || caster->HasAura(20139))
- {
- if (apply)
- caster->CastSpell(target, 63514, true);
- else
- target->RemoveAura(63514);
- }
- // 63531 - linked aura for both Sanctified Retribution and Swift Retribution talents
- // Not allow for Retribution Aura (prevent stacking)
- if ((GetSpellInfo()->SpellIconID != 555) && (caster->HasAura(53648) || caster->HasAura(53484) || caster->HasAura(53379) || caster->HasAura(31869)))
- {
- if (apply)
- caster->CastSpell(target, 63531, true);
- else
- target->RemoveAura(63531);
- }
- }
- break;
- case SPELLFAMILY_DEATHKNIGHT:
- if (GetSpellInfo()->GetSpellSpecific() == SPELL_SPECIFIC_PRESENCE)
- {
- AuraEffect* bloodPresenceAura=0; // healing by damage done
- AuraEffect* frostPresenceAura=0; // increased health
- AuraEffect* unholyPresenceAura=0; // increased movement speed, faster rune recovery
-
- // Improved Presences
- Unit::AuraEffectList const& vDummyAuras = target->GetAuraEffectsByType(SPELL_AURA_DUMMY);
- for (Unit::AuraEffectList::const_iterator itr = vDummyAuras.begin(); itr != vDummyAuras.end(); ++itr)
- {
- switch ((*itr)->GetId())
- {
- // Improved Blood Presence
- case 50365:
- case 50371:
- {
- bloodPresenceAura = (*itr);
- break;
- }
- // Improved Frost Presence
- case 50384:
- case 50385:
- {
- frostPresenceAura = (*itr);
- break;
- }
- // Improved Unholy Presence
- case 50391:
- case 50392:
- {
- unholyPresenceAura = (*itr);
- break;
- }
- }
- }
-
- uint32 presence = GetId();
- if (apply)
- {
- // Blood Presence bonus
- if (presence == 48266)
- target->CastSpell(target, 63611, true);
- else if (bloodPresenceAura)
- {
- int32 basePoints1 = bloodPresenceAura->GetAmount();
- target->CastCustomSpell(target, 63611, NULL, &basePoints1, NULL, true, 0, bloodPresenceAura);
- }
- // Frost Presence bonus
- if (presence == 48263)
- target->CastSpell(target, 61261, true);
- else if (frostPresenceAura)
- {
- int32 basePoints0 = frostPresenceAura->GetAmount();
- target->CastCustomSpell(target, 61261, &basePoints0, NULL, NULL, true, 0, frostPresenceAura);
- }
- // Unholy Presence bonus
- if (presence == 48265)
- {
- if (unholyPresenceAura)
- {
- // Not listed as any effect, only base points set
- int32 basePoints0 = unholyPresenceAura->GetSpellInfo()->Effects[EFFECT_1].CalcValue();
- target->CastCustomSpell(target, 63622, &basePoints0, &basePoints0, &basePoints0, true, 0, unholyPresenceAura);
- }
- target->CastSpell(target, 49772, true);
- }
- else if (unholyPresenceAura)
- {
- int32 basePoints0 = unholyPresenceAura->GetAmount();
- target->CastCustomSpell(target, 49772, &basePoints0, NULL, NULL, true, 0, unholyPresenceAura);
- }
- }
- else
- {
- // Remove passive auras
- if (presence == 48266 || bloodPresenceAura)
- target->RemoveAurasDueToSpell(63611);
- if (presence == 48263 || frostPresenceAura)
- target->RemoveAurasDueToSpell(61261);
- if (presence == 48265 || unholyPresenceAura)
- {
- if (presence == 48265 && unholyPresenceAura)
- target->RemoveAurasDueToSpell(63622);
- target->RemoveAurasDueToSpell(49772);
- }
- }
- }
break;
case SPELLFAMILY_WARLOCK:
// Drain Soul - If the target is at or below 25% health, Drain Soul causes four times the normal damage
@@ -1874,20 +1769,7 @@ bool Aura::CanStackWith(Aura const* existingAura) const
}
}
- bool isVehicleAura1 = false;
- bool isVehicleAura2 = false;
- uint8 i = 0;
- while (i < MAX_SPELL_EFFECTS && !(isVehicleAura1 && isVehicleAura2))
- {
- if (m_spellInfo->Effects[i].ApplyAuraName == SPELL_AURA_CONTROL_VEHICLE)
- isVehicleAura1 = true;
- if (existingSpellInfo->Effects[i].ApplyAuraName == SPELL_AURA_CONTROL_VEHICLE)
- isVehicleAura2 = true;
-
- ++i;
- }
-
- if (isVehicleAura1 && isVehicleAura2)
+ if (HasEffectType(SPELL_AURA_CONTROL_VEHICLE) && existingAura->HasEffectType(SPELL_AURA_CONTROL_VEHICLE))
{
Vehicle* veh = NULL;
if (GetOwner()->ToUnit())
@@ -1899,7 +1781,7 @@ bool Aura::CanStackWith(Aura const* existingAura) const
if (!veh->GetAvailableSeatCount())
return false; // No empty seat available
- return true; // Empty seat available (skip rest)
+ return true; // Empty seat available (skip rest)
}
// spell of same spell rank chain
diff --git a/src/server/game/Spells/Auras/SpellAuras.h b/src/server/game/Spells/Auras/SpellAuras.h
index 73832a632c3..e865d415438 100644
--- a/src/server/game/Spells/Auras/SpellAuras.h
+++ b/src/server/game/Spells/Auras/SpellAuras.h
@@ -165,8 +165,9 @@ class Aura
bool IsRemoved() const { return m_isRemoved; }
bool CanBeSentToClient() const;
// Single cast aura helpers
- bool IsSingleTarget() const {return m_isSingleTarget;}
- void SetIsSingleTarget(bool val) { m_isSingleTarget = val;}
+ bool IsSingleTarget() const {return m_isSingleTarget; }
+ bool IsSingleTargetWith(Aura const* aura) const;
+ void SetIsSingleTarget(bool val) { m_isSingleTarget = val; }
void UnregisterSingleTarget();
int32 CalcDispelChance(Unit* auraTarget, bool offensive) const;
@@ -233,6 +234,8 @@ class Aura
bool CallScriptEffectProcHandlers(AuraEffect const* aurEff, AuraApplication const* aurApp, ProcEventInfo& eventInfo);
void CallScriptAfterEffectProcHandlers(AuraEffect const* aurEff, AuraApplication const* aurApp, ProcEventInfo& eventInfo);
+ AuraScript* GetScriptByName(std::string const& scriptName) const;
+
std::list<AuraScript*> m_loadedScripts;
private:
void _DeleteRemovedApplications();
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index dfec24f3996..13a6cffeb12 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -649,7 +649,7 @@ void Spell::InitExplicitTargets(SpellCastTargets const& targets)
}
// try to use attacked unit as a target
else if ((m_caster->GetTypeId() == TYPEID_UNIT) && neededTargets & (TARGET_FLAG_UNIT_ENEMY | TARGET_FLAG_UNIT))
- unit = m_caster->getVictim();
+ unit = m_caster->GetVictim();
// didn't find anything - let's use self as target
if (!unit && neededTargets & (TARGET_FLAG_UNIT_RAID | TARGET_FLAG_UNIT_PARTY | TARGET_FLAG_UNIT_ALLY))
@@ -820,7 +820,8 @@ void Spell::SelectEffectImplicitTargets(SpellEffIndex effIndex, SpellImplicitTar
for (uint32 j = effIndex + 1; j < MAX_SPELL_EFFECTS; ++j)
{
SpellEffectInfo const* effects = GetSpellInfo()->Effects;
- if (effects[effIndex].TargetA.GetTarget() == effects[j].TargetA.GetTarget() &&
+ if (effects[j].IsEffect() &&
+ effects[effIndex].TargetA.GetTarget() == effects[j].TargetA.GetTarget() &&
effects[effIndex].TargetB.GetTarget() == effects[j].TargetB.GetTarget() &&
effects[effIndex].ImplicitTargetConditions == effects[j].ImplicitTargetConditions &&
effects[effIndex].CalcRadius(m_caster) == effects[j].CalcRadius(m_caster) &&
@@ -1169,7 +1170,7 @@ void Spell::SelectImplicitAreaTargets(SpellEffIndex effIndex, SpellImplicitTarge
case TYPEID_PLAYER:
{
Unit* unitTarget = (*itr)->ToUnit();
- if (unitTarget->isAlive() || !playerCaster->isHonorOrXPTarget(unitTarget)
+ if (unitTarget->IsAlive() || !playerCaster->isHonorOrXPTarget(unitTarget)
|| ((unitTarget->GetCreatureTypeMask() & (1 << (CREATURE_TYPE_HUMANOID-1))) == 0)
|| (unitTarget->GetDisplayId() != unitTarget->GetNativeDisplayId()))
break;
@@ -1414,7 +1415,26 @@ void Spell::SelectImplicitCasterDestTargets(SpellEffIndex effIndex, SpellImplici
float x, y, z, angle;
angle = (float)rand_norm() * static_cast<float>(M_PI * 35.0f / 180.0f) - static_cast<float>(M_PI * 17.5f / 180.0f);
m_caster->GetClosePoint(x, y, z, DEFAULT_WORLD_OBJECT_SIZE, dis, angle);
- m_targets.SetDst(x, y, z, m_caster->GetOrientation());
+
+ float ground = z;
+ float liquidLevel = m_caster->GetMap()->GetWaterOrGroundLevel(x, y, z, &ground);
+ if (liquidLevel <= ground) // When there is no liquid Map::GetWaterOrGroundLevel returns ground level
+ {
+ SendCastResult(SPELL_FAILED_NOT_HERE);
+ SendChannelUpdate(0);
+ finish(false);
+ return;
+ }
+
+ if (ground + 0.75 > liquidLevel)
+ {
+ SendCastResult(SPELL_FAILED_TOO_SHALLOW);
+ SendChannelUpdate(0);
+ finish(false);
+ return;
+ }
+
+ m_targets.SetDst(x, y, liquidLevel, m_caster->GetOrientation());
return;
}
default:
@@ -1521,7 +1541,7 @@ void Spell::SelectImplicitCasterObjectTargets(SpellEffIndex effIndex, SpellImpli
target = m_caster->GetGuardianPet();
break;
case TARGET_UNIT_SUMMONER:
- if (m_caster->isSummon())
+ if (m_caster->IsSummon())
target = m_caster->ToTempSummon()->GetSummoner();
break;
case TARGET_UNIT_VEHICLE:
@@ -2093,7 +2113,7 @@ void Spell::prepareDataForTriggerSystem(AuraEffect const* /*triggeredByAura*/)
m_procEx |= PROC_EX_INTERNAL_TRIGGERED;
}
// Totem casts require spellfamilymask defined in spell_proc_event to proc
- if (m_originalCaster && m_caster != m_originalCaster && m_caster->GetTypeId() == TYPEID_UNIT && m_caster->ToCreature()->isTotem() && m_caster->IsControlledByPlayer())
+ if (m_originalCaster && m_caster != m_originalCaster && m_caster->GetTypeId() == TYPEID_UNIT && m_caster->ToCreature()->IsTotem() && m_caster->IsControlledByPlayer())
m_procEx |= PROC_EX_INTERNAL_REQ_FAMILY;
}
@@ -2135,7 +2155,7 @@ void Spell::AddUnitTarget(Unit* target, uint32 effectMask, bool checkIfValid /*=
ihit->scaleAura = false;
if (m_auraScaleMask && ihit->effectMask == m_auraScaleMask && m_caster != target)
{
- SpellInfo const* auraSpell = sSpellMgr->GetSpellInfo(sSpellMgr->GetFirstSpellInChain(m_spellInfo->Id));
+ SpellInfo const* auraSpell = m_spellInfo->GetFirstRankSpell();
if (uint32(target->getLevel() + 10) >= auraSpell->SpellLevel)
ihit->scaleAura = true;
}
@@ -2150,13 +2170,13 @@ void Spell::AddUnitTarget(Unit* target, uint32 effectMask, bool checkIfValid /*=
targetInfo.targetGUID = targetGUID; // Store target GUID
targetInfo.effectMask = effectMask; // Store all effects not immune
targetInfo.processed = false; // Effects not apply on target
- targetInfo.alive = target->isAlive();
+ targetInfo.alive = target->IsAlive();
targetInfo.damage = 0;
targetInfo.crit = false;
targetInfo.scaleAura = false;
if (m_auraScaleMask && targetInfo.effectMask == m_auraScaleMask && m_caster != target)
{
- SpellInfo const* auraSpell = sSpellMgr->GetSpellInfo(sSpellMgr->GetFirstSpellInChain(m_spellInfo->Id));
+ SpellInfo const* auraSpell = m_spellInfo->GetFirstRankSpell();
if (uint32(target->getLevel() + 10) >= auraSpell->SpellLevel)
targetInfo.scaleAura = true;
}
@@ -2340,7 +2360,7 @@ void Spell::DoAllEffectOnTarget(TargetInfo* target)
return;
}
- if (unit->isAlive() != target->alive)
+ if (unit->IsAlive() != target->alive)
return;
if (getState() == SPELL_STATE_DELAYED && !m_spellInfo->IsPositive() && (getMSTime() - target->timeDelay) <= unit->m_lastSanctuaryTime)
@@ -2546,7 +2566,7 @@ void Spell::DoAllEffectOnTarget(TargetInfo* target)
// cast at creature (or GO) quest objectives update at successful cast finished (+channel finished)
// ignore pets or autorepeat/melee casts for speed (not exist quest for spells (hm...)
- if (m_originalCaster && m_originalCaster->IsControlledByPlayer() && !spellHitTarget->ToCreature()->isPet() && !IsAutoRepeat() && !IsNextMeleeSwingSpell() && !IsChannelActive())
+ if (m_originalCaster && m_originalCaster->IsControlledByPlayer() && !spellHitTarget->ToCreature()->IsPet() && !IsAutoRepeat() && !IsNextMeleeSwingSpell() && !IsChannelActive())
if (Player* p = m_originalCaster->GetCharmerOrOwnerPlayerOrPlayerItself())
p->CastedCreatureOrGO(spellHitTarget->GetEntry(), spellHitTarget->GetGUID(), m_spellInfo->Id);
}
@@ -2644,7 +2664,7 @@ SpellMissInfo Spell::DoSpellHitOnUnit(Unit* unit, uint32 effectMask, bool scaleA
if (m_caster->GetTypeId() == TYPEID_PLAYER)
m_caster->ToPlayer()->UpdatePvP(true);
}
- if (unit->isInCombat() && !(m_spellInfo->AttributesEx3 & SPELL_ATTR3_NO_INITIAL_AGGRO))
+ if (unit->IsInCombat() && !(m_spellInfo->AttributesEx3 & SPELL_ATTR3_NO_INITIAL_AGGRO))
{
m_caster->SetInCombatState(unit->GetCombatTimer() > 0, unit);
unit->getHostileRefManager().threatAssist(m_caster, 0.0f);
@@ -3100,6 +3120,7 @@ void Spell::cancel()
CancelGlobalCooldown();
if (m_caster->GetTypeId() == TYPEID_PLAYER)
m_caster->ToPlayer()->RestoreSpellMods(this);
+ // no break
case SPELL_STATE_DELAYED:
SendInterrupted(0);
SendCastResult(SPELL_FAILED_INTERRUPTED);
@@ -3163,7 +3184,7 @@ void Spell::cast(bool skipCheck)
// This prevents spells such as Hunter's Mark from triggering pet attack
if (this->GetSpellInfo()->DmgClass != SPELL_DAMAGE_CLASS_NONE)
if (Pet* playerPet = playerCaster->GetPet())
- if (playerPet->isAlive() && playerPet->isControlled() && (m_targets.GetTargetMask() & TARGET_FLAG_UNIT))
+ if (playerPet->IsAlive() && playerPet->isControlled() && (m_targets.GetTargetMask() & TARGET_FLAG_UNIT))
playerPet->AI()->OwnerAttacked(m_targets.GetObjectTarget()->ToUnit());
}
@@ -3342,7 +3363,7 @@ void Spell::handle_immediate()
if (m_spellInfo->IsChanneled())
{
int32 duration = m_spellInfo->GetDuration();
- if (duration)
+ if (duration > 0)
{
// First mod_duration then haste - see Missile Barrage
// Apply duration mod
@@ -3516,18 +3537,17 @@ void Spell::_handle_finish_phase()
}
if (m_caster->m_extraAttacks && GetSpellInfo()->HasEffect(SPELL_EFFECT_ADD_EXTRA_ATTACKS))
- m_caster->HandleProcExtraAttackFor(m_caster->getVictim());
+ m_caster->HandleProcExtraAttackFor(m_caster->GetVictim());
/// @todo trigger proc phase finish here
}
void Spell::SendSpellCooldown()
{
- if (m_caster->GetTypeId() != TYPEID_PLAYER)
+ Player* _player = m_caster->ToPlayer();
+ if (!_player)
return;
- Player* _player = (Player*)m_caster;
-
// mana/health/etc potions, disabled by client (until combat out as declarate)
if (m_CastItem && m_CastItem->IsPotion())
{
@@ -3680,7 +3700,7 @@ void Spell::finish(bool ok)
if (!ok)
return;
- if (m_caster->GetTypeId() == TYPEID_UNIT && m_caster->ToCreature()->isSummon())
+ if (m_caster->GetTypeId() == TYPEID_UNIT && m_caster->ToCreature()->IsSummon())
{
// Unsummon statue
uint32 spell = m_caster->GetUInt32Value(UNIT_CREATED_BY_SPELL);
@@ -3874,7 +3894,7 @@ void Spell::SendSpellStart()
if (m_spellInfo->Attributes & SPELL_ATTR0_REQ_AMMO)
castFlags |= CAST_FLAG_AMMO;
if ((m_caster->GetTypeId() == TYPEID_PLAYER ||
- (m_caster->GetTypeId() == TYPEID_UNIT && m_caster->ToCreature()->isPet()))
+ (m_caster->GetTypeId() == TYPEID_UNIT && m_caster->ToCreature()->IsPet()))
&& m_spellInfo->PowerType != POWER_HEALTH)
castFlags |= CAST_FLAG_POWER_LEFT_SELF;
@@ -3928,7 +3948,7 @@ void Spell::SendSpellGo()
castFlags |= CAST_FLAG_AMMO; // arrows/bullets visual
if ((m_caster->GetTypeId() == TYPEID_PLAYER ||
- (m_caster->GetTypeId() == TYPEID_UNIT && m_caster->ToCreature()->isPet()))
+ (m_caster->GetTypeId() == TYPEID_UNIT && m_caster->ToCreature()->IsPet()))
&& m_spellInfo->PowerType != POWER_HEALTH)
castFlags |= CAST_FLAG_POWER_LEFT_SELF; // should only be sent to self, but the current messaging doesn't make that possible
@@ -4324,7 +4344,11 @@ void Spell::SendResurrectRequest(Player* target)
void Spell::TakeCastItem()
{
- if (!m_CastItem || m_caster->GetTypeId() != TYPEID_PLAYER)
+ if (!m_CastItem)
+ return;
+
+ Player* player = m_caster->ToPlayer();
+ if (!player)
return;
// not remove cast item at triggered spell (equipping, weapon damage, etc)
@@ -4362,7 +4386,7 @@ void Spell::TakeCastItem()
(charges > 0) ? --charges : ++charges; // abs(charges) less at 1 after use
if (proto->Stackable == 1)
m_CastItem->SetSpellCharges(i, charges);
- m_CastItem->SetState(ITEM_CHANGED, (Player*)m_caster);
+ m_CastItem->SetState(ITEM_CHANGED, player);
}
// all charges used
@@ -4482,16 +4506,14 @@ SpellCastResult Spell::CheckRuneCost(uint32 runeCostID)
if (m_spellInfo->PowerType != POWER_RUNE || !runeCostID)
return SPELL_CAST_OK;
- if (m_caster->GetTypeId() != TYPEID_PLAYER)
+ Player* player = m_caster->ToPlayer();
+ if (!player)
return SPELL_CAST_OK;
- Player* player = (Player*)m_caster;
-
if (player->getClass() != CLASS_DEATH_KNIGHT)
return SPELL_CAST_OK;
SpellRuneCostEntry const* src = sSpellRuneCostStore.LookupEntry(runeCostID);
-
if (!src)
return SPELL_CAST_OK;
@@ -4714,7 +4736,7 @@ void Spell::HandleEffects(Unit* pUnitTarget, Item* pItemTarget, GameObject* pGOT
SpellCastResult Spell::CheckCast(bool strict)
{
// check death state
- if (!m_caster->isAlive() && !(m_spellInfo->Attributes & SPELL_ATTR0_PASSIVE) && !((m_spellInfo->Attributes & SPELL_ATTR0_CASTABLE_WHILE_DEAD) || (IsTriggered() && !m_triggeredByAuraSpell)))
+ if (!m_caster->IsAlive() && !(m_spellInfo->Attributes & SPELL_ATTR0_PASSIVE) && !((m_spellInfo->Attributes & SPELL_ATTR0_CASTABLE_WHILE_DEAD) || (IsTriggered() && !m_triggeredByAuraSpell)))
return SPELL_FAILED_CASTER_DEAD;
// check cooldowns to prevent cheating
@@ -4821,7 +4843,7 @@ SpellCastResult Spell::CheckCast(bool strict)
if (m_spellInfo->ExcludeCasterAuraSpell && m_caster->HasAura(sSpellMgr->GetSpellIdForDifficulty(m_spellInfo->ExcludeCasterAuraSpell, m_caster)))
return SPELL_FAILED_CASTER_AURASTATE;
- if (reqCombat && m_caster->isInCombat() && !m_spellInfo->CanBeUsedInCombat())
+ if (reqCombat && m_caster->IsInCombat() && !m_spellInfo->CanBeUsedInCombat())
return SPELL_FAILED_AFFECTING_COMBAT;
}
@@ -4938,7 +4960,7 @@ SpellCastResult Spell::CheckCast(bool strict)
return SPELL_FAILED_NOT_IN_ARENA;
// zone check
- if (m_caster->GetTypeId() == TYPEID_UNIT || !m_caster->ToPlayer()->isGameMaster())
+ if (m_caster->GetTypeId() == TYPEID_UNIT || !m_caster->ToPlayer()->IsGameMaster())
{
uint32 zone, area;
m_caster->GetZoneAndAreaId(zone, area);
@@ -4953,7 +4975,7 @@ SpellCastResult Spell::CheckCast(bool strict)
if (m_caster->IsMounted() && m_caster->GetTypeId() == TYPEID_PLAYER && !(_triggeredCastFlags & TRIGGERED_IGNORE_CASTER_MOUNTED_OR_ON_VEHICLE) &&
!m_spellInfo->IsPassive() && !(m_spellInfo->Attributes & SPELL_ATTR0_CASTABLE_WHILE_MOUNTED))
{
- if (m_caster->isInFlight())
+ if (m_caster->IsInFlight())
return SPELL_FAILED_NOT_ON_TAXI;
else
return SPELL_FAILED_NOT_MOUNTED;
@@ -5103,7 +5125,7 @@ SpellCastResult Spell::CheckCast(bool strict)
if (!pet->GetCurrentFoodBenefitLevel(foodItem->GetTemplate()->ItemLevel))
return SPELL_FAILED_FOOD_LOWLEVEL;
- if (m_caster->isInCombat() || pet->isInCombat())
+ if (m_caster->IsInCombat() || pet->IsInCombat())
return SPELL_FAILED_AFFECTING_COMBAT;
break;
@@ -5245,7 +5267,7 @@ SpellCastResult Spell::CheckCast(bool strict)
{
Creature* pet = m_caster->GetGuardianPet();
- if (pet && pet->isAlive())
+ if (pet && pet->IsAlive())
return SPELL_FAILED_ALREADY_HAVE_SUMMON;
break;
@@ -5475,7 +5497,7 @@ SpellCastResult Spell::CheckCast(bool strict)
{
// not allow cast fly spells if not have req. skills (all spells is self target)
// allow always ghost flight spells
- if (m_originalCaster && m_originalCaster->GetTypeId() == TYPEID_PLAYER && m_originalCaster->isAlive())
+ if (m_originalCaster && m_originalCaster->GetTypeId() == TYPEID_PLAYER && m_originalCaster->IsAlive())
{
Battlefield* Bf = sBattlefieldMgr->GetBattlefieldToZoneId(m_originalCaster->GetZoneId());
if (AreaTableEntry const* area = GetAreaEntryByAreaID(m_originalCaster->GetAreaId()))
@@ -5545,7 +5567,7 @@ SpellCastResult Spell::CheckPetCast(Unit* target)
// dead owner (pets still alive when owners ressed?)
if (Unit* owner = m_caster->GetCharmerOrOwner())
- if (!owner->isAlive())
+ if (!owner->IsAlive())
return SPELL_FAILED_CASTER_DEAD;
if (!target && m_targets.GetUnitTarget())
@@ -5832,11 +5854,10 @@ SpellCastResult Spell::CheckPower()
SpellCastResult Spell::CheckItems()
{
- if (m_caster->GetTypeId() != TYPEID_PLAYER)
+ Player* player = m_caster->ToPlayer();
+ if (!player)
return SPELL_CAST_OK;
- Player* p_caster = (Player*)m_caster;
-
if (!m_CastItem)
{
if (m_castItemGUID)
@@ -5845,14 +5866,14 @@ SpellCastResult Spell::CheckItems()
else
{
uint32 itemid = m_CastItem->GetEntry();
- if (!p_caster->HasItemCount(itemid))
+ if (!player->HasItemCount(itemid))
return SPELL_FAILED_ITEM_NOT_READY;
ItemTemplate const* proto = m_CastItem->GetTemplate();
if (!proto)
return SPELL_FAILED_ITEM_NOT_READY;
- for (int i = 0; i < MAX_ITEM_SPELLS; ++i)
+ for (uint8 i = 0; i < MAX_ITEM_SPELLS; ++i)
if (proto->Spells[i].SpellCharges)
if (m_CastItem->GetSpellCharges(i) == 0)
return SPELL_FAILED_NO_CHARGES_REMAIN;
@@ -5862,10 +5883,10 @@ SpellCastResult Spell::CheckItems()
{
// such items should only fail if there is no suitable effect at all - see Rejuvenation Potions for example
SpellCastResult failReason = SPELL_CAST_OK;
- for (int i = 0; i < MAX_SPELL_EFFECTS; i++)
+ for (uint8 i = 0; i < MAX_SPELL_EFFECTS; ++i)
{
- // skip check, pet not required like checks, and for TARGET_UNIT_PET m_targets.GetUnitTarget() is not the real target but the caster
- if (m_spellInfo->Effects[i].TargetA.GetTarget() == TARGET_UNIT_PET)
+ // skip check, pet not required like checks, and for TARGET_UNIT_PET m_targets.GetUnitTarget() is not the real target but the caster
+ if (m_spellInfo->Effects[i].TargetA.GetTarget() == TARGET_UNIT_PET)
continue;
if (m_spellInfo->Effects[i].Effect == SPELL_EFFECT_HEAL)
@@ -5912,9 +5933,6 @@ SpellCastResult Spell::CheckItems()
// check target item
if (m_targets.GetItemTargetGUID())
{
- if (m_caster->GetTypeId() != TYPEID_PLAYER)
- return SPELL_FAILED_BAD_TARGETS;
-
if (!m_targets.GetItemTarget())
return SPELL_FAILED_ITEM_GONE;
@@ -5925,7 +5943,7 @@ SpellCastResult Spell::CheckItems()
else
{
if (!(_triggeredCastFlags & TRIGGERED_IGNORE_EQUIPPED_ITEM_REQUIREMENT))
- if (m_caster->GetTypeId() == TYPEID_PLAYER && !m_caster->ToPlayer()->HasItemFitToSpellRequirements(m_spellInfo))
+ if (!player->HasItemFitToSpellRequirements(m_spellInfo))
return SPELL_FAILED_EQUIPPED_ITEM_CLASS;
}
@@ -5952,7 +5970,7 @@ SpellCastResult Spell::CheckItems()
// do not take reagents for these item casts
if (!(m_CastItem && m_CastItem->GetTemplate()->Flags & ITEM_PROTO_FLAG_TRIGGERED_CAST))
{
- bool checkReagents = !(_triggeredCastFlags & TRIGGERED_IGNORE_POWER_AND_REAGENT_COST) && !p_caster->CanNoReagentCast(m_spellInfo);
+ bool checkReagents = !(_triggeredCastFlags & TRIGGERED_IGNORE_POWER_AND_REAGENT_COST) && !player->CanNoReagentCast(m_spellInfo);
// Not own traded item (in trader trade slot) requires reagents even if triggered spell
if (!checkReagents)
if (Item* targetItem = m_targets.GetItemTarget())
@@ -5976,7 +5994,7 @@ SpellCastResult Spell::CheckItems()
ItemTemplate const* proto = m_CastItem->GetTemplate();
if (!proto)
return SPELL_FAILED_ITEM_NOT_READY;
- for (int s=0; s < MAX_ITEM_PROTO_SPELLS; ++s)
+ for (uint8 s = 0; s < MAX_ITEM_PROTO_SPELLS; ++s)
{
// CastItem will be used up and does not count as reagent
int32 charges = m_CastItem->GetSpellCharges(s);
@@ -5987,35 +6005,36 @@ SpellCastResult Spell::CheckItems()
}
}
}
- if (!p_caster->HasItemCount(itemid, itemcount))
+ if (!player->HasItemCount(itemid, itemcount))
return SPELL_FAILED_REAGENTS;
}
}
// check totem-item requirements (items presence in inventory)
uint32 totems = 2;
- for (int i = 0; i < 2; ++i)
+ for (uint8 i = 0; i < 2; ++i)
{
if (m_spellInfo->Totem[i] != 0)
{
- if (p_caster->HasItemCount(m_spellInfo->Totem[i]))
+ if (player->HasItemCount(m_spellInfo->Totem[i]))
{
totems -= 1;
continue;
}
- }else
- totems -= 1;
+ }
+ else
+ totems -= 1;
}
if (totems != 0)
return SPELL_FAILED_TOTEMS; //0x7C
// Check items for TotemCategory (items presence in inventory)
uint32 TotemCategory = 2;
- for (int i= 0; i < 2; ++i)
+ for (uint8 i = 0; i < 2; ++i)
{
if (m_spellInfo->TotemCategory[i] != 0)
{
- if (p_caster->HasItemTotemCategory(m_spellInfo->TotemCategory[i]))
+ if (player->HasItemTotemCategory(m_spellInfo->TotemCategory[i]))
{
TotemCategory -= 1;
continue;
@@ -6029,7 +6048,7 @@ SpellCastResult Spell::CheckItems()
}
// special checks for spell effects
- for (int i = 0; i < MAX_SPELL_EFFECTS; i++)
+ for (uint8 i = 0; i < MAX_SPELL_EFFECTS; ++i)
{
switch (m_spellInfo->Effects[i].Effect)
{
@@ -6039,24 +6058,24 @@ SpellCastResult Spell::CheckItems()
if (!IsTriggered() && m_spellInfo->Effects[i].ItemType)
{
ItemPosCountVec dest;
- InventoryResult msg = p_caster->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, m_spellInfo->Effects[i].ItemType, 1);
+ InventoryResult msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, m_spellInfo->Effects[i].ItemType, 1);
if (msg != EQUIP_ERR_OK)
{
ItemTemplate const* pProto = sObjectMgr->GetItemTemplate(m_spellInfo->Effects[i].ItemType);
/// @todo Needs review
if (pProto && !(pProto->ItemLimitCategory))
{
- p_caster->SendEquipError(msg, NULL, NULL, m_spellInfo->Effects[i].ItemType);
+ player->SendEquipError(msg, NULL, NULL, m_spellInfo->Effects[i].ItemType);
return SPELL_FAILED_DONT_REPORT;
}
else
{
if (!(m_spellInfo->SpellFamilyName == SPELLFAMILY_MAGE && (m_spellInfo->SpellFamilyFlags[0] & 0x40000000)))
return SPELL_FAILED_TOO_MANY_OF_ITEM;
- else if (!(p_caster->HasItemCount(m_spellInfo->Effects[i].ItemType)))
+ else if (!(player->HasItemCount(m_spellInfo->Effects[i].ItemType)))
return SPELL_FAILED_TOO_MANY_OF_ITEM;
else
- p_caster->CastSpell(m_caster, m_spellInfo->Effects[EFFECT_1].CalcValue(), false); // move this to anywhere
+ player->CastSpell(m_caster, m_spellInfo->Effects[EFFECT_1].CalcValue(), false); // move this to anywhere
return SPELL_FAILED_DONT_REPORT;
}
}
@@ -6074,10 +6093,10 @@ SpellCastResult Spell::CheckItems()
if (m_CastItem && m_CastItem->GetTemplate()->Flags & ITEM_PROTO_FLAG_TRIGGERED_CAST)
return SPELL_FAILED_TOTEM_CATEGORY;
ItemPosCountVec dest;
- InventoryResult msg = p_caster->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, m_spellInfo->Effects[i].ItemType, 1);
+ InventoryResult msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, m_spellInfo->Effects[i].ItemType, 1);
if (msg != EQUIP_ERR_OK)
{
- p_caster->SendEquipError(msg, NULL, NULL, m_spellInfo->Effects[i].ItemType);
+ player->SendEquipError(msg, NULL, NULL, m_spellInfo->Effects[i].ItemType);
return SPELL_FAILED_DONT_REPORT;
}
}
@@ -6158,7 +6177,7 @@ SpellCastResult Spell::CheckItems()
uint32 item_disenchantskilllevel = itemProto->RequiredDisenchantSkill;
if (item_disenchantskilllevel == uint32(-1))
return SPELL_FAILED_CANT_BE_DISENCHANTED;
- if (item_disenchantskilllevel > p_caster->GetSkillValue(SKILL_ENCHANTING))
+ if (item_disenchantskilllevel > player->GetSkillValue(SKILL_ENCHANTING))
return SPELL_FAILED_LOW_CASTLEVEL;
if (item_quality > 4 || item_quality < 2)
return SPELL_FAILED_CANT_BE_DISENCHANTED;
@@ -6180,7 +6199,7 @@ SpellCastResult Spell::CheckItems()
return SPELL_FAILED_CANT_BE_PROSPECTED;
//Check for enough skill in jewelcrafting
uint32 item_prospectingskilllevel = m_targets.GetItemTarget()->GetTemplate()->RequiredSkillRank;
- if (item_prospectingskilllevel >p_caster->GetSkillValue(SKILL_JEWELCRAFTING))
+ if (item_prospectingskilllevel >player->GetSkillValue(SKILL_JEWELCRAFTING))
return SPELL_FAILED_LOW_CASTLEVEL;
//make sure the player has the required ores in inventory
if (m_targets.GetItemTarget()->GetCount() < 5)
@@ -6203,7 +6222,7 @@ SpellCastResult Spell::CheckItems()
return SPELL_FAILED_CANT_BE_MILLED;
//Check for enough skill in inscription
uint32 item_millingskilllevel = m_targets.GetItemTarget()->GetTemplate()->RequiredSkillRank;
- if (item_millingskilllevel >p_caster->GetSkillValue(SKILL_INSCRIPTION))
+ if (item_millingskilllevel > player->GetSkillValue(SKILL_INSCRIPTION))
return SPELL_FAILED_LOW_CASTLEVEL;
//make sure the player has the required herbs in inventory
if (m_targets.GetItemTarget()->GetCount() < 5)
@@ -6217,13 +6236,10 @@ SpellCastResult Spell::CheckItems()
case SPELL_EFFECT_WEAPON_DAMAGE:
case SPELL_EFFECT_WEAPON_DAMAGE_NOSCHOOL:
{
- if (m_caster->GetTypeId() != TYPEID_PLAYER)
- return SPELL_FAILED_TARGET_NOT_PLAYER;
-
if (m_attackType != RANGED_ATTACK)
break;
- Item* pItem = m_caster->ToPlayer()->GetWeaponForAttack(m_attackType);
+ Item* pItem = player->GetWeaponForAttack(m_attackType);
if (!pItem || pItem->IsBroken())
return SPELL_FAILED_EQUIPPED_ITEM;
@@ -6232,15 +6248,15 @@ SpellCastResult Spell::CheckItems()
case ITEM_SUBCLASS_WEAPON_THROWN:
{
uint32 ammo = pItem->GetEntry();
- if (!m_caster->ToPlayer()->HasItemCount(ammo))
+ if (!player->HasItemCount(ammo))
return SPELL_FAILED_NO_AMMO;
- };
- break;
+ break;
+ }
case ITEM_SUBCLASS_WEAPON_GUN:
case ITEM_SUBCLASS_WEAPON_BOW:
case ITEM_SUBCLASS_WEAPON_CROSSBOW:
{
- uint32 ammo = m_caster->ToPlayer()->GetUInt32Value(PLAYER_AMMO_ID);
+ uint32 ammo = player->GetUInt32Value(PLAYER_AMMO_ID);
if (!ammo)
{
// Requires No Ammo
@@ -6273,12 +6289,13 @@ SpellCastResult Spell::CheckItems()
return SPELL_FAILED_NO_AMMO;
}
- if (!m_caster->ToPlayer()->HasItemCount(ammo))
+ if (!player->HasItemCount(ammo))
{
- m_caster->ToPlayer()->SetUInt32Value(PLAYER_AMMO_ID, 0);
+ player->SetUInt32Value(PLAYER_AMMO_ID, 0);
return SPELL_FAILED_NO_AMMO;
}
- }; break;
+ break;
+ }
case ITEM_SUBCLASS_WEAPON_WAND:
break;
default:
@@ -6294,7 +6311,7 @@ SpellCastResult Spell::CheckItems()
if (!pProto)
return SPELL_FAILED_ITEM_AT_MAX_CHARGES;
- if (Item* pitem = p_caster->GetItemByEntry(item_id))
+ if (Item* pitem = player->GetItemByEntry(item_id))
{
for (int x = 0; x < MAX_ITEM_PROTO_SPELLS; ++x)
if (pProto->Spells[x].SpellCharges != 0 && pitem->GetSpellCharges(x) == pProto->Spells[x].SpellCharges)
@@ -6698,7 +6715,7 @@ bool SpellEvent::IsDeletable() const
bool Spell::IsValidDeadOrAliveTarget(Unit const* target) const
{
- if (target->isAlive())
+ if (target->IsAlive())
return !m_spellInfo->IsRequiringDeadTarget();
if (m_spellInfo->IsAllowingDeadTarget())
return true;
@@ -7327,19 +7344,19 @@ bool WorldObjectSpellTargetCheck::operator()(WorldObject* target)
switch (_targetSelectionType)
{
case TARGET_CHECK_ENEMY:
- if (unitTarget->isTotem())
+ if (unitTarget->IsTotem())
return false;
if (!_caster->_IsValidAttackTarget(unitTarget, _spellInfo))
return false;
break;
case TARGET_CHECK_ALLY:
- if (unitTarget->isTotem())
+ if (unitTarget->IsTotem())
return false;
if (!_caster->_IsValidAssistTarget(unitTarget, _spellInfo))
return false;
break;
case TARGET_CHECK_PARTY:
- if (unitTarget->isTotem())
+ if (unitTarget->IsTotem())
return false;
if (!_caster->_IsValidAssistTarget(unitTarget, _spellInfo))
return false;
@@ -7351,7 +7368,7 @@ bool WorldObjectSpellTargetCheck::operator()(WorldObject* target)
return false;
// nobreak;
case TARGET_CHECK_RAID:
- if (unitTarget->isTotem())
+ if (unitTarget->IsTotem())
return false;
if (!_caster->_IsValidAssistTarget(unitTarget, _spellInfo))
return false;
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index e96156d85b5..80d326e2c7a 100644
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -45,8 +45,6 @@
#include "CreatureAI.h"
#include "BattlegroundMgr.h"
#include "Battleground.h"
-#include "BattlegroundEY.h"
-#include "BattlegroundWS.h"
#include "OutdoorPvPMgr.h"
#include "Language.h"
#include "SocialMgr.h"
@@ -250,7 +248,7 @@ void Spell::EffectResurrectNew(SpellEffIndex effIndex)
if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET)
return;
- if (!unitTarget || unitTarget->isAlive())
+ if (!unitTarget || unitTarget->IsAlive())
return;
if (unitTarget->GetTypeId() != TYPEID_PLAYER)
@@ -276,7 +274,7 @@ void Spell::EffectInstaKill(SpellEffIndex /*effIndex*/)
if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET)
return;
- if (!unitTarget || !unitTarget->isAlive())
+ if (!unitTarget || !unitTarget->IsAlive())
return;
if (unitTarget->GetTypeId() == TYPEID_PLAYER)
@@ -300,7 +298,7 @@ void Spell::EffectEnvironmentalDMG(SpellEffIndex /*effIndex*/)
if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET)
return;
- if (!unitTarget || !unitTarget->isAlive())
+ if (!unitTarget || !unitTarget->IsAlive())
return;
uint32 absorb = 0;
@@ -318,7 +316,7 @@ void Spell::EffectSchoolDMG(SpellEffIndex effIndex)
if (effectHandleMode != SPELL_EFFECT_HANDLE_LAUNCH_TARGET)
return;
- if (unitTarget && unitTarget->isAlive())
+ if (unitTarget && unitTarget->IsAlive())
{
bool apply_direct_bonus = true;
switch (m_spellInfo->SpellFamilyName)
@@ -452,7 +450,7 @@ void Spell::EffectSchoolDMG(SpellEffIndex effIndex)
// Shadow Bite
else if (m_spellInfo->SpellFamilyFlags[1] & 0x400000)
{
- if (m_caster->GetTypeId() == TYPEID_UNIT && m_caster->ToCreature()->isPet())
+ if (m_caster->GetTypeId() == TYPEID_UNIT && m_caster->ToCreature()->IsPet())
{
if (Player* owner = m_caster->GetOwner()->ToPlayer())
{
@@ -547,7 +545,7 @@ void Spell::EffectSchoolDMG(SpellEffIndex effIndex)
if (needConsume)
for (uint32 i = 0; i < doses; ++i)
- unitTarget->RemoveAuraFromStack(spellId);
+ unitTarget->RemoveAuraFromStack(spellId, m_caster->GetGUID());
damage *= doses;
damage += int32(player->GetTotalAttackPowerValue(BASE_ATTACK) * 0.09f * combo);
@@ -562,9 +560,9 @@ void Spell::EffectSchoolDMG(SpellEffIndex effIndex)
// Eviscerate
else if (m_spellInfo->SpellFamilyFlags[0] & 0x00020000)
{
- if (m_caster->GetTypeId() == TYPEID_PLAYER)
+ if (Player* player = m_caster->ToPlayer())
{
- if (uint32 combo = ((Player*)m_caster)->GetComboPoints())
+ if (uint32 combo = player->GetComboPoints())
{
float ap = m_caster->GetTotalAttackPowerValue(BASE_ATTACK);
damage += irand(int32(ap * combo * 0.03f), int32(ap * combo * 0.07f));
@@ -1079,7 +1077,7 @@ void Spell::EffectJump(SpellEffIndex effIndex)
if (effectHandleMode != SPELL_EFFECT_HANDLE_LAUNCH_TARGET)
return;
- if (m_caster->isInFlight())
+ if (m_caster->IsInFlight())
return;
if (!unitTarget)
@@ -1098,7 +1096,7 @@ void Spell::EffectJumpDest(SpellEffIndex effIndex)
if (effectHandleMode != SPELL_EFFECT_HANDLE_LAUNCH)
return;
- if (m_caster->isInFlight())
+ if (m_caster->IsInFlight())
return;
if (!m_targets.HasDst())
@@ -1129,7 +1127,7 @@ void Spell::EffectTeleportUnits(SpellEffIndex /*effIndex*/)
if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET)
return;
- if (!unitTarget || unitTarget->isInFlight())
+ if (!unitTarget || unitTarget->IsInFlight())
return;
// Pre effects
@@ -1322,7 +1320,7 @@ void Spell::EffectPowerDrain(SpellEffIndex effIndex)
Powers powerType = Powers(m_spellInfo->Effects[effIndex].MiscValue);
- if (!unitTarget || !unitTarget->isAlive() || unitTarget->getPowerType() != powerType || damage < 0)
+ if (!unitTarget || !unitTarget->IsAlive() || unitTarget->getPowerType() != powerType || damage < 0)
return;
// add spell damage bonus
@@ -1338,7 +1336,7 @@ void Spell::EffectPowerDrain(SpellEffIndex effIndex)
float gainMultiplier = 0.0f;
- // Don`t restore from self drain
+ // Don't restore from self drain
if (m_caster != unitTarget)
{
gainMultiplier = m_spellInfo->Effects[effIndex].CalcValueMultiplier(m_originalCaster, this);
@@ -1401,7 +1399,7 @@ void Spell::EffectPowerBurn(SpellEffIndex effIndex)
Powers powerType = Powers(m_spellInfo->Effects[effIndex].MiscValue);
- if (!unitTarget || !unitTarget->isAlive() || unitTarget->getPowerType() != powerType || damage < 0)
+ if (!unitTarget || !unitTarget->IsAlive() || unitTarget->getPowerType() != powerType || damage < 0)
return;
// burn x% of target's mana, up to maximum of 2x% of caster's mana (Mana Burn)
@@ -1435,7 +1433,7 @@ void Spell::EffectHeal(SpellEffIndex /*effIndex*/)
if (effectHandleMode != SPELL_EFFECT_HANDLE_LAUNCH_TARGET)
return;
- if (unitTarget && unitTarget->isAlive() && damage >= 0)
+ if (unitTarget && unitTarget->IsAlive() && damage >= 0)
{
// Try to get original caster
Unit* caster = m_originalCasterGUID ? m_originalCaster : m_caster;
@@ -1548,7 +1546,7 @@ void Spell::EffectHealPct(SpellEffIndex /*effIndex*/)
if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET)
return;
- if (!unitTarget || !unitTarget->isAlive() || damage < 0)
+ if (!unitTarget || !unitTarget->IsAlive() || damage < 0)
return;
// Skip if m_originalCaster not available
@@ -1566,7 +1564,7 @@ void Spell::EffectHealMechanical(SpellEffIndex /*effIndex*/)
if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET)
return;
- if (!unitTarget || !unitTarget->isAlive() || damage < 0)
+ if (!unitTarget || !unitTarget->IsAlive() || damage < 0)
return;
// Skip if m_originalCaster not available
@@ -1583,7 +1581,7 @@ void Spell::EffectHealthLeech(SpellEffIndex effIndex)
if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET)
return;
- if (!unitTarget || !unitTarget->isAlive() || damage < 0)
+ if (!unitTarget || !unitTarget->IsAlive() || damage < 0)
return;
damage = m_caster->SpellDamageBonusDone(unitTarget, m_spellInfo, uint32(damage), SPELL_DIRECT_DAMAGE);
@@ -1597,7 +1595,7 @@ void Spell::EffectHealthLeech(SpellEffIndex effIndex)
// get max possible damage, don't count overkill for heal
uint32 healthGain = uint32(-unitTarget->GetHealthGain(-damage) * healMultiplier);
- if (m_caster->isAlive())
+ if (m_caster->IsAlive())
{
healthGain = m_caster->SpellHealingBonusDone(m_caster, m_spellInfo, healthGain, HEAL);
healthGain = m_caster->SpellHealingBonusTaken(m_caster, m_spellInfo, healthGain, HEAL);
@@ -1655,7 +1653,7 @@ void Spell::DoCreateItem(uint32 /*i*/, uint32 itemtype)
// the maximum number of created additional items
uint8 additionalMaxNum=0;
// get the chance and maximum number for creating extra items
- if (canCreateExtraItems(player, m_spellInfo->Id, additionalCreateChance, additionalMaxNum))
+ if (CanCreateExtraItems(player, m_spellInfo->Id, additionalCreateChance, additionalMaxNum))
{
// roll with this chance till we roll not to create or we create the max num
while (roll_chance_f(additionalCreateChance) && items_count <= additionalMaxNum)
@@ -1815,7 +1813,7 @@ void Spell::EffectEnergize(SpellEffIndex effIndex)
if (!unitTarget)
return;
- if (!unitTarget->isAlive())
+ if (!unitTarget->IsAlive())
return;
if (m_spellInfo->Effects[effIndex].MiscValue < 0 || m_spellInfo->Effects[effIndex].MiscValue >= int8(MAX_POWERS))
@@ -1927,7 +1925,7 @@ void Spell::EffectEnergizePct(SpellEffIndex effIndex)
if (!unitTarget)
return;
- if (!unitTarget->isAlive())
+ if (!unitTarget->IsAlive())
return;
if (m_spellInfo->Effects[effIndex].MiscValue < 0 || m_spellInfo->Effects[effIndex].MiscValue >= int8(MAX_POWERS))
@@ -1952,7 +1950,7 @@ void Spell::SendLoot(uint64 guid, LootType loottype)
if (gameObjTarget)
{
// Players shouldn't be able to loot gameobjects that are currently despawned
- if (!gameObjTarget->isSpawned() && !player->isGameMaster())
+ if (!gameObjTarget->isSpawned() && !player->IsGameMaster())
{
TC_LOG_ERROR(LOG_FILTER_SPELLS_AURAS, "Possible hacking attempt: Player %s [guid: %u] tried to loot a gameobject [entry: %u id: %u] which is on respawn time without being in GM mode!",
player->GetName().c_str(), player->GetGUIDLow(), gameObjTarget->GetEntry(), gameObjTarget->GetGUIDLow());
@@ -2323,7 +2321,7 @@ void Spell::EffectSummonType(SpellEffIndex effIndex)
case SUMMON_TYPE_TOTEM:
{
summon = m_caster->GetMap()->SummonCreature(entry, *destTarget, properties, duration, m_originalCaster, m_spellInfo->Id);
- if (!summon || !summon->isTotem())
+ if (!summon || !summon->IsTotem())
return;
// Mana Tide Totem
@@ -2571,7 +2569,7 @@ void Spell::EffectDistract(SpellEffIndex /*effIndex*/)
return;
// Check for possible target
- if (!unitTarget || unitTarget->isInCombat())
+ if (!unitTarget || unitTarget->IsInCombat())
return;
// target must be OK to do this
@@ -2598,7 +2596,7 @@ void Spell::EffectPickPocket(SpellEffIndex /*effIndex*/)
return;
// victim have to be alive and humanoid or undead
- if (unitTarget->isAlive() && (unitTarget->GetCreatureTypeMask() &CREATURE_TYPEMASK_HUMANOID_OR_UNDEAD) != 0)
+ if (unitTarget->IsAlive() && (unitTarget->GetCreatureTypeMask() &CREATURE_TYPEMASK_HUMANOID_OR_UNDEAD) != 0)
m_caster->ToPlayer()->SendLoot(unitTarget->GetGUID(), LOOT_PICKPOCKETING);
}
@@ -2647,7 +2645,7 @@ void Spell::EffectTeleUnitsFaceCaster(SpellEffIndex effIndex)
if (!unitTarget)
return;
- if (unitTarget->isInFlight())
+ if (unitTarget->IsInFlight())
return;
float dis = m_spellInfo->Effects[effIndex].CalcRadius(m_caster);
@@ -2722,30 +2720,30 @@ void Spell::EffectEnchantItemPerm(SpellEffIndex effIndex)
if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET)
return;
- if (m_caster->GetTypeId() != TYPEID_PLAYER)
- return;
if (!itemTarget)
return;
- Player* p_caster = (Player*)m_caster;
+ Player* player = m_caster->ToPlayer();
+ if (!player)
+ return;
// Handle vellums
if (itemTarget->IsWeaponVellum() || itemTarget->IsArmorVellum())
{
// destroy one vellum from stack
uint32 count = 1;
- p_caster->DestroyItemCount(itemTarget, count, true);
- unitTarget=p_caster;
+ player->DestroyItemCount(itemTarget, count, true);
+ unitTarget = player;
// and add a scroll
DoCreateItem(effIndex, m_spellInfo->Effects[effIndex].ItemType);
- itemTarget=NULL;
+ itemTarget = NULL;
m_targets.SetItemTarget(NULL);
}
else
{
// do not increase skill if vellum used
if (!(m_CastItem && m_CastItem->GetTemplate()->Flags & ITEM_PROTO_FLAG_TRIGGERED_CAST))
- p_caster->UpdateCraftSkill(m_spellInfo->Id);
+ player->UpdateCraftSkill(m_spellInfo->Id);
uint32 enchant_id = m_spellInfo->Effects[effIndex].MiscValue;
if (!enchant_id)
@@ -2760,10 +2758,10 @@ void Spell::EffectEnchantItemPerm(SpellEffIndex effIndex)
if (!item_owner)
return;
- if (item_owner != p_caster && p_caster->GetSession()->HasPermission(RBAC_PERM_LOG_GM_TRADE))
+ if (item_owner != player && player->GetSession()->HasPermission(RBAC_PERM_LOG_GM_TRADE))
{
- sLog->outCommand(p_caster->GetSession()->GetAccountId(), "GM %s (Account: %u) enchanting(perm): %s (Entry: %d) for player: %s (Account: %u)",
- p_caster->GetName().c_str(), p_caster->GetSession()->GetAccountId(),
+ sLog->outCommand(player->GetSession()->GetAccountId(), "GM %s (Account: %u) enchanting(perm): %s (Entry: %d) for player: %s (Account: %u)",
+ player->GetName().c_str(), player->GetSession()->GetAccountId(),
itemTarget->GetTemplate()->Name1.c_str(), itemTarget->GetEntry(),
item_owner->GetName().c_str(), item_owner->GetSession()->GetAccountId());
}
@@ -2771,7 +2769,7 @@ void Spell::EffectEnchantItemPerm(SpellEffIndex effIndex)
// remove old enchanting before applying new if equipped
item_owner->ApplyEnchantment(itemTarget, PERM_ENCHANTMENT_SLOT, false);
- itemTarget->SetEnchantment(PERM_ENCHANTMENT_SLOT, enchant_id, 0, 0);
+ itemTarget->SetEnchantment(PERM_ENCHANTMENT_SLOT, enchant_id, 0, 0, m_caster->GetGUID());
// add new enchanting if equipped
item_owner->ApplyEnchantment(itemTarget, PERM_ENCHANTMENT_SLOT, true);
@@ -2786,19 +2784,19 @@ void Spell::EffectEnchantItemPrismatic(SpellEffIndex effIndex)
if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET)
return;
- if (m_caster->GetTypeId() != TYPEID_PLAYER)
- return;
if (!itemTarget)
return;
- Player* p_caster = (Player*)m_caster;
+ Player* player = m_caster->ToPlayer();
+ if (!player)
+ return;
- uint32 enchant_id = m_spellInfo->Effects[effIndex].MiscValue;
- if (!enchant_id)
+ uint32 enchantId = m_spellInfo->Effects[effIndex].MiscValue;
+ if (!enchantId)
return;
- SpellItemEnchantmentEntry const* pEnchant = sSpellItemEnchantmentStore.LookupEntry(enchant_id);
- if (!pEnchant)
+ SpellItemEnchantmentEntry const* enchant = sSpellItemEnchantmentStore.LookupEntry(enchantId);
+ if (!enchant)
return;
// support only enchantings with add socket in this slot
@@ -2806,7 +2804,7 @@ void Spell::EffectEnchantItemPrismatic(SpellEffIndex effIndex)
bool add_socket = false;
for (uint8 i = 0; i < MAX_ITEM_ENCHANTMENT_EFFECTS; ++i)
{
- if (pEnchant->type[i] == ITEM_ENCHANTMENT_TYPE_PRISMATIC_SOCKET)
+ if (enchant->type[i] == ITEM_ENCHANTMENT_TYPE_PRISMATIC_SOCKET)
{
add_socket = true;
break;
@@ -2825,10 +2823,10 @@ void Spell::EffectEnchantItemPrismatic(SpellEffIndex effIndex)
if (!item_owner)
return;
- if (item_owner != p_caster && p_caster->GetSession()->HasPermission(RBAC_PERM_LOG_GM_TRADE))
+ if (item_owner != player && player->GetSession()->HasPermission(RBAC_PERM_LOG_GM_TRADE))
{
- sLog->outCommand(p_caster->GetSession()->GetAccountId(), "GM %s (Account: %u) enchanting(perm): %s (Entry: %d) for player: %s (Account: %u)",
- p_caster->GetName().c_str(), p_caster->GetSession()->GetAccountId(),
+ sLog->outCommand(player->GetSession()->GetAccountId(), "GM %s (Account: %u) enchanting(perm): %s (Entry: %d) for player: %s (Account: %u)",
+ player->GetName().c_str(), player->GetSession()->GetAccountId(),
itemTarget->GetTemplate()->Name1.c_str(), itemTarget->GetEntry(),
item_owner->GetName().c_str(), item_owner->GetSession()->GetAccountId());
}
@@ -2836,7 +2834,7 @@ void Spell::EffectEnchantItemPrismatic(SpellEffIndex effIndex)
// remove old enchanting before applying new if equipped
item_owner->ApplyEnchantment(itemTarget, PRISMATIC_ENCHANTMENT_SLOT, false);
- itemTarget->SetEnchantment(PRISMATIC_ENCHANTMENT_SLOT, enchant_id, 0, 0);
+ itemTarget->SetEnchantment(PRISMATIC_ENCHANTMENT_SLOT, enchantId, 0, 0, m_caster->GetGUID());
// add new enchanting if equipped
item_owner->ApplyEnchantment(itemTarget, PRISMATIC_ENCHANTMENT_SLOT, true);
@@ -2850,11 +2848,10 @@ void Spell::EffectEnchantItemTmp(SpellEffIndex effIndex)
if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET)
return;
- if (m_caster->GetTypeId() != TYPEID_PLAYER)
+ Player* player = m_caster->ToPlayer();
+ if (!player)
return;
- Player* p_caster = (Player*)m_caster;
-
// Rockbiter Weapon apply to both weapon
if (!itemTarget)
return;
@@ -2894,7 +2891,7 @@ void Spell::EffectEnchantItemTmp(SpellEffIndex effIndex)
for (int j = BASE_ATTACK; j <= OFF_ATTACK; ++j)
{
- if (Item* item = p_caster->GetWeaponForAttack(WeaponAttackType(j)))
+ if (Item* item = player->GetWeaponForAttack(WeaponAttackType(j)))
{
if (item->IsFitToSpellRequirements(m_spellInfo))
{
@@ -2959,10 +2956,10 @@ void Spell::EffectEnchantItemTmp(SpellEffIndex effIndex)
if (!item_owner)
return;
- if (item_owner != p_caster && p_caster->GetSession()->HasPermission(RBAC_PERM_LOG_GM_TRADE))
+ if (item_owner != player && player->GetSession()->HasPermission(RBAC_PERM_LOG_GM_TRADE))
{
- sLog->outCommand(p_caster->GetSession()->GetAccountId(), "GM %s (Account: %u) enchanting(temp): %s (Entry: %d) for player: %s (Account: %u)",
- p_caster->GetName().c_str(), p_caster->GetSession()->GetAccountId(),
+ sLog->outCommand(player->GetSession()->GetAccountId(), "GM %s (Account: %u) enchanting(temp): %s (Entry: %d) for player: %s (Account: %u)",
+ player->GetName().c_str(), player->GetSession()->GetAccountId(),
itemTarget->GetTemplate()->Name1.c_str(), itemTarget->GetEntry(),
item_owner->GetName().c_str(), item_owner->GetSession()->GetAccountId());
}
@@ -2970,7 +2967,7 @@ void Spell::EffectEnchantItemTmp(SpellEffIndex effIndex)
// remove old enchanting before applying new if equipped
item_owner->ApplyEnchantment(itemTarget, TEMP_ENCHANTMENT_SLOT, false);
- itemTarget->SetEnchantment(TEMP_ENCHANTMENT_SLOT, enchant_id, duration * 1000, 0);
+ itemTarget->SetEnchantment(TEMP_ENCHANTMENT_SLOT, enchant_id, duration * 1000, 0, m_caster->GetGUID());
// add new enchanting if equipped
item_owner->ApplyEnchantment(itemTarget, TEMP_ENCHANTMENT_SLOT, true);
@@ -2992,7 +2989,7 @@ void Spell::EffectTameCreature(SpellEffIndex /*effIndex*/)
Creature* creatureTarget = unitTarget->ToCreature();
- if (creatureTarget->isPet())
+ if (creatureTarget->IsPet())
return;
if (m_caster->getClass() != CLASS_HUNTER)
@@ -3041,7 +3038,7 @@ void Spell::EffectSummonPet(SpellEffIndex effIndex)
if (m_originalCaster)
{
owner = m_originalCaster->ToPlayer();
- if (!owner && m_originalCaster->ToCreature()->isTotem())
+ if (!owner && m_originalCaster->ToCreature()->IsTotem())
owner = m_originalCaster->GetCharmerOrOwnerPlayerOrPlayerItself();
}
@@ -3098,7 +3095,7 @@ void Spell::EffectSummonPet(SpellEffIndex effIndex)
if (m_caster->GetTypeId() == TYPEID_UNIT)
{
- if (m_caster->ToCreature()->isTotem())
+ if (m_caster->ToCreature()->IsTotem())
pet->SetReactState(REACT_AGGRESSIVE);
else
pet->SetReactState(REACT_DEFENSIVE);
@@ -3151,7 +3148,7 @@ void Spell::EffectTaunt(SpellEffIndex /*effIndex*/)
// this effect use before aura Taunt apply for prevent taunt already attacking target
// for spell as marked "non effective at already attacking target"
if (!unitTarget || !unitTarget->CanHaveThreatList()
- || unitTarget->getVictim() == m_caster)
+ || unitTarget->GetVictim() == m_caster)
{
SendCastResult(SPELL_FAILED_DONT_REPORT);
return;
@@ -3183,7 +3180,7 @@ void Spell::EffectWeaponDmg(SpellEffIndex effIndex)
if (effectHandleMode != SPELL_EFFECT_HANDLE_LAUNCH_TARGET)
return;
- if (!unitTarget || !unitTarget->isAlive())
+ if (!unitTarget || !unitTarget->IsAlive())
return;
// multiple weapon dmg effect workaround
@@ -3479,7 +3476,7 @@ void Spell::EffectThreat(SpellEffIndex /*effIndex*/)
if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET)
return;
- if (!unitTarget || !unitTarget->isAlive() || !m_caster->isAlive())
+ if (!unitTarget || !unitTarget->IsAlive() || !m_caster->IsAlive())
return;
if (!unitTarget->CanHaveThreatList())
@@ -3493,7 +3490,7 @@ void Spell::EffectHealMaxHealth(SpellEffIndex /*effIndex*/)
if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET)
return;
- if (!unitTarget || !unitTarget->isAlive())
+ if (!unitTarget || !unitTarget->IsAlive())
return;
int32 addhealth = 0;
@@ -3512,7 +3509,7 @@ void Spell::EffectInterruptCast(SpellEffIndex effIndex)
if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET)
return;
- if (!unitTarget || !unitTarget->isAlive())
+ if (!unitTarget || !unitTarget->IsAlive())
return;
/// @todo not all spells that used this effect apply cooldown at school spells
@@ -3712,7 +3709,7 @@ void Spell::EffectScriptEffect(SpellEffIndex effIndex)
case 22984:
case 22985:
{
- if (!unitTarget || !unitTarget->isAlive())
+ if (!unitTarget || !unitTarget->IsAlive())
return;
// Onyxia Scale Cloak
@@ -3941,7 +3938,7 @@ void Spell::EffectScriptEffect(SpellEffIndex effIndex)
}
case 52173: // Coyote Spirit Despawn
case 60243: // Blood Parrot Despawn
- if (unitTarget->GetTypeId() == TYPEID_UNIT && unitTarget->ToCreature()->isSummon())
+ if (unitTarget->GetTypeId() == TYPEID_UNIT && unitTarget->ToCreature()->IsSummon())
unitTarget->ToTempSummon()->UnSummon();
return;
case 52479: // Gift of the Harvester
@@ -4056,7 +4053,7 @@ void Spell::EffectScriptEffect(SpellEffIndex effIndex)
}
case 60123: // Lightwell
{
- if (m_caster->GetTypeId() != TYPEID_UNIT || !m_caster->ToCreature()->isSummon())
+ if (m_caster->GetTypeId() != TYPEID_UNIT || !m_caster->ToCreature()->IsSummon())
return;
uint32 spell_heal;
@@ -4104,7 +4101,7 @@ void Spell::EffectScriptEffect(SpellEffIndex effIndex)
continue;
Creature* totem = unitTarget->GetMap()->GetCreature(unitTarget->m_SummonSlot[slot]);
- if (totem && totem->isTotem())
+ if (totem && totem->IsTotem())
{
m_caster->CastCustomSpell(totem, 55277, &basepoints0, NULL, NULL, true);
}
@@ -4163,7 +4160,7 @@ void Spell::EffectScriptEffect(SpellEffIndex effIndex)
// Judgement (seal trigger)
if (m_spellInfo->Category == SPELLCATEGORY_JUDGEMENT)
{
- if (!unitTarget || !unitTarget->isAlive())
+ if (!unitTarget || !unitTarget->IsAlive())
return;
uint32 spellId1 = 0;
uint32 spellId2 = 0;
@@ -4215,6 +4212,7 @@ void Spell::EffectScriptEffect(SpellEffIndex effIndex)
m_caster->CastSpell(unitTarget, spellId2, true);
return;
}
+ break;
}
case SPELLFAMILY_DEATHKNIGHT:
{
@@ -4256,7 +4254,7 @@ void Spell::EffectSanctuary(SpellEffIndex /*effIndex*/)
Unit::AttackerSet const& attackers = unitTarget->getAttackers();
for (Unit::AttackerSet::const_iterator itr = attackers.begin(); itr != attackers.end();)
{
- if (!(*itr)->canSeeOrDetect(unitTarget))
+ if (!(*itr)->CanSeeOrDetect(unitTarget))
(*(itr++))->AttackStop();
else
++itr;
@@ -4387,21 +4385,20 @@ void Spell::EffectStuck(SpellEffIndex /*effIndex*/)
if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT)
return;
- if (!m_caster || m_caster->GetTypeId() != TYPEID_PLAYER)
- return;
-
if (!sWorld->getBoolConfig(CONFIG_CAST_UNSTUCK))
return;
- Player* target = (Player*)m_caster;
+ Player* player = m_caster->ToPlayer();
+ if (!player)
+ return;
TC_LOG_DEBUG(LOG_FILTER_SPELLS_AURAS, "Spell Effect: Stuck");
- TC_LOG_INFO(LOG_FILTER_SPELLS_AURAS, "Player %s (guid %u) used auto-unstuck future at map %u (%f, %f, %f)", target->GetName().c_str(), target->GetGUIDLow(), m_caster->GetMapId(), m_caster->GetPositionX(), target->GetPositionY(), target->GetPositionZ());
+ TC_LOG_INFO(LOG_FILTER_SPELLS_AURAS, "Player %s (guid %u) used auto-unstuck future at map %u (%f, %f, %f)", player->GetName().c_str(), player->GetGUIDLow(), player->GetMapId(), player->GetPositionX(), player->GetPositionY(), player->GetPositionZ());
- if (target->isInFlight())
+ if (player->IsInFlight())
return;
- target->TeleportTo(target->GetStartPosition(), TELE_TO_SPELL);
+ player->TeleportTo(player->GetStartPosition(), TELE_TO_SPELL);
// homebind location is loaded always
// target->TeleportTo(target->m_homebindMapId, target->m_homebindX, target->m_homebindY, target->m_homebindZ, target->GetOrientation(), (m_caster == m_caster ? TELE_TO_SPELL : 0));
@@ -4409,7 +4406,7 @@ void Spell::EffectStuck(SpellEffIndex /*effIndex*/)
SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(8690);
if (!spellInfo)
return;
- Spell spell(target, spellInfo, TRIGGERED_FULL_MASK);
+ Spell spell(player, spellInfo, TRIGGERED_FULL_MASK);
spell.SendSpellCooldown();
}
@@ -4459,10 +4456,12 @@ void Spell::EffectApplyGlyph(SpellEffIndex effIndex)
if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT)
return;
- if (m_caster->GetTypeId() != TYPEID_PLAYER || m_glyphIndex >= MAX_GLYPH_SLOT_INDEX)
+ if (m_glyphIndex >= MAX_GLYPH_SLOT_INDEX)
return;
- Player* player = (Player*)m_caster;
+ Player* player = m_caster->ToPlayer();
+ if (!player)
+ return;
// glyph sockets level requirement
uint8 minLevel = 0;
@@ -4521,7 +4520,7 @@ void Spell::EffectEnchantHeldItem(SpellEffIndex effIndex)
if (!unitTarget || unitTarget->GetTypeId() != TYPEID_PLAYER)
return;
- Player* item_owner = (Player*)unitTarget;
+ Player* item_owner = unitTarget->ToPlayer();
Item* item = item_owner->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND);
if (!item)
@@ -4552,7 +4551,7 @@ void Spell::EffectEnchantHeldItem(SpellEffIndex effIndex)
return;
// Apply the temporary enchantment
- item->SetEnchantment(slot, enchant_id, duration*IN_MILLISECONDS, 0);
+ item->SetEnchantment(slot, enchant_id, duration*IN_MILLISECONDS, 0, m_caster->GetGUID());
item_owner->ApplyEnchantment(item, slot, true);
}
}
@@ -4614,7 +4613,7 @@ void Spell::EffectFeedPet(SpellEffIndex effIndex)
if (!pet)
return;
- if (!pet->isAlive())
+ if (!pet->IsAlive())
return;
int32 benefit = pet->GetCurrentFoodBenefitLevel(foodItem->GetTemplate()->ItemLevel);
@@ -4635,7 +4634,7 @@ void Spell::EffectDismissPet(SpellEffIndex effIndex)
if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET)
return;
- if (!unitTarget || !unitTarget->isPet())
+ if (!unitTarget || !unitTarget->IsPet())
return;
Pet* pet = unitTarget->ToPet();
@@ -4650,25 +4649,11 @@ void Spell::EffectSummonObject(SpellEffIndex effIndex)
return;
uint32 go_id = m_spellInfo->Effects[effIndex].MiscValue;
+ uint8 slot = m_spellInfo->Effects[effIndex].Effect - SPELL_EFFECT_SUMMON_OBJECT_SLOT1;
- uint8 slot = 0;
- switch (m_spellInfo->Effects[effIndex].Effect)
- {
- case SPELL_EFFECT_SUMMON_OBJECT_SLOT1: slot = 0; break;
- case SPELL_EFFECT_SUMMON_OBJECT_SLOT2: slot = 1; break;
- case SPELL_EFFECT_SUMMON_OBJECT_SLOT3: slot = 2; break;
- case SPELL_EFFECT_SUMMON_OBJECT_SLOT4: slot = 3; break;
- default: return;
- }
-
- uint64 guid = m_caster->m_ObjectSlot[slot];
- if (guid != 0)
+ if (uint64 guid = m_caster->m_ObjectSlot[slot])
{
- GameObject* obj = NULL;
- if (m_caster)
- obj = m_caster->GetMap()->GetGameObject(guid);
-
- if (obj)
+ if (GameObject* obj = m_caster->GetMap()->GetGameObject(guid))
{
// Recast case - null spell id to make auras not be removed on object remove from world
if (m_spellInfo->Id == obj->GetSpellId())
@@ -4678,7 +4663,7 @@ void Spell::EffectSummonObject(SpellEffIndex effIndex)
m_caster->m_ObjectSlot[slot] = 0;
}
- GameObject* pGameObj = new GameObject;
+ GameObject* go = new GameObject();
float x, y, z;
// If dest location if present
@@ -4689,24 +4674,24 @@ void Spell::EffectSummonObject(SpellEffIndex effIndex)
m_caster->GetClosePoint(x, y, z, DEFAULT_WORLD_OBJECT_SIZE);
Map* map = m_caster->GetMap();
- if (!pGameObj->Create(sObjectMgr->GenerateLowGuid(HIGHGUID_GAMEOBJECT), go_id, map,
+ if (!go->Create(sObjectMgr->GenerateLowGuid(HIGHGUID_GAMEOBJECT), go_id, map,
m_caster->GetPhaseMask(), x, y, z, m_caster->GetOrientation(), 0.0f, 0.0f, 0.0f, 0.0f, 0, GO_STATE_READY))
{
- delete pGameObj;
+ delete go;
return;
}
//pGameObj->SetUInt32Value(GAMEOBJECT_LEVEL, m_caster->getLevel());
int32 duration = m_spellInfo->GetDuration();
- pGameObj->SetRespawnTime(duration > 0 ? duration/IN_MILLISECONDS : 0);
- pGameObj->SetSpellId(m_spellInfo->Id);
- m_caster->AddGameObject(pGameObj);
+ go->SetRespawnTime(duration > 0 ? duration/IN_MILLISECONDS : 0);
+ go->SetSpellId(m_spellInfo->Id);
+ m_caster->AddGameObject(go);
- ExecuteLogEffectSummonObject(effIndex, pGameObj);
+ ExecuteLogEffectSummonObject(effIndex, go);
- map->AddToMap(pGameObj);
+ map->AddToMap(go);
- m_caster->m_ObjectSlot[slot] = pGameObj->GetGUID();
+ m_caster->m_ObjectSlot[slot] = go->GetGUID();
}
void Spell::EffectResurrect(SpellEffIndex effIndex)
@@ -4717,7 +4702,7 @@ void Spell::EffectResurrect(SpellEffIndex effIndex)
if (!unitTarget || unitTarget->GetTypeId() != TYPEID_PLAYER)
return;
- if (unitTarget->isAlive() || !unitTarget->IsInWorld())
+ if (unitTarget->IsAlive() || !unitTarget->IsInWorld())
return;
Player* target = unitTarget->ToPlayer();
@@ -4739,7 +4724,7 @@ void Spell::EffectAddExtraAttacks(SpellEffIndex effIndex)
if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET)
return;
- if (!unitTarget || !unitTarget->isAlive() || !unitTarget->getVictim())
+ if (!unitTarget || !unitTarget->IsAlive() || !unitTarget->GetVictim())
return;
if (unitTarget->m_extraAttacks)
@@ -4747,7 +4732,7 @@ void Spell::EffectAddExtraAttacks(SpellEffIndex effIndex)
unitTarget->m_extraAttacks = damage;
- ExecuteLogEffectExtraAttacks(effIndex, unitTarget->getVictim(), damage);
+ ExecuteLogEffectExtraAttacks(effIndex, unitTarget->GetVictim(), damage);
}
void Spell::EffectParry(SpellEffIndex /*effIndex*/)
@@ -4773,7 +4758,7 @@ void Spell::EffectLeap(SpellEffIndex /*effIndex*/)
if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET)
return;
- if (!unitTarget || unitTarget->isInFlight())
+ if (!unitTarget || unitTarget->IsInFlight())
return;
if (!m_targets.HasDst())
@@ -4847,7 +4832,7 @@ void Spell::EffectSelfResurrect(SpellEffIndex effIndex)
if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT)
return;
- if (!m_caster || m_caster->isAlive())
+ if (!m_caster || m_caster->IsAlive())
return;
if (m_caster->GetTypeId() != TYPEID_PLAYER)
return;
@@ -5127,7 +5112,7 @@ void Spell::EffectSummonDeadPet(SpellEffIndex /*effIndex*/)
return;
Pet* pet = player->GetPet();
- if (pet && pet->isAlive())
+ if (pet && pet->IsAlive())
return;
if (damage < 0)
@@ -5168,7 +5153,7 @@ void Spell::EffectDestroyAllTotems(SpellEffIndex /*effIndex*/)
continue;
Creature* totem = m_caster->GetMap()->GetCreature(m_caster->m_SummonSlot[slot]);
- if (totem && totem->isTotem())
+ if (totem && totem->IsTotem())
{
uint32 spell_id = totem->GetUInt32Value(UNIT_CREATED_BY_SPELL);
SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spell_id);
@@ -5290,25 +5275,9 @@ void Spell::EffectTransmitted(SpellEffIndex effIndex)
}
Map* cMap = m_caster->GetMap();
- if (goinfo->type == GAMEOBJECT_TYPE_FISHINGNODE || goinfo->type == GAMEOBJECT_TYPE_FISHINGHOLE)
- {
- LiquidData liqData;
- if (!cMap->IsInWater(fx, fy, fz + 1.f/* -0.5f */, &liqData)) // Hack to prevent fishing bobber from failing to land on fishing hole
- { // but this is not proper, we really need to ignore not materialized objects
- SendCastResult(SPELL_FAILED_NOT_HERE);
- SendChannelUpdate(0);
- return;
- }
-
- // replace by water level in this case
- //fz = cMap->GetWaterLevel(fx, fy);
- fz = liqData.level;
- }
// if gameobject is summoning object, it should be spawned right on caster's position
- else if (goinfo->type == GAMEOBJECT_TYPE_SUMMONING_RITUAL)
- {
+ if (goinfo->type == GAMEOBJECT_TYPE_SUMMONING_RITUAL)
m_caster->GetPosition(fx, fy, fz);
- }
GameObject* pGameObj = new GameObject;
@@ -5404,10 +5373,10 @@ void Spell::EffectProspecting(SpellEffIndex /*effIndex*/)
if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET)
return;
- if (m_caster->GetTypeId() != TYPEID_PLAYER)
+ Player* player = m_caster->ToPlayer();
+ if (!player)
return;
- Player* p_caster = (Player*)m_caster;
if (!itemTarget || !(itemTarget->GetTemplate()->Flags & ITEM_PROTO_FLAG_PROSPECTABLE))
return;
@@ -5416,12 +5385,12 @@ void Spell::EffectProspecting(SpellEffIndex /*effIndex*/)
if (sWorld->getBoolConfig(CONFIG_SKILL_PROSPECTING))
{
- uint32 SkillValue = p_caster->GetPureSkillValue(SKILL_JEWELCRAFTING);
+ uint32 SkillValue = player->GetPureSkillValue(SKILL_JEWELCRAFTING);
uint32 reqSkillValue = itemTarget->GetTemplate()->RequiredSkillRank;
- p_caster->UpdateGatherSkill(SKILL_JEWELCRAFTING, SkillValue, reqSkillValue);
+ player->UpdateGatherSkill(SKILL_JEWELCRAFTING, SkillValue, reqSkillValue);
}
- m_caster->ToPlayer()->SendLoot(itemTarget->GetGUID(), LOOT_PROSPECTING);
+ player->SendLoot(itemTarget->GetGUID(), LOOT_PROSPECTING);
}
void Spell::EffectMilling(SpellEffIndex /*effIndex*/)
@@ -5429,10 +5398,10 @@ void Spell::EffectMilling(SpellEffIndex /*effIndex*/)
if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET)
return;
- if (m_caster->GetTypeId() != TYPEID_PLAYER)
+ Player* player = m_caster->ToPlayer();
+ if (!player)
return;
- Player* p_caster = (Player*)m_caster;
if (!itemTarget || !(itemTarget->GetTemplate()->Flags & ITEM_PROTO_FLAG_MILLABLE))
return;
@@ -5441,12 +5410,12 @@ void Spell::EffectMilling(SpellEffIndex /*effIndex*/)
if (sWorld->getBoolConfig(CONFIG_SKILL_MILLING))
{
- uint32 SkillValue = p_caster->GetPureSkillValue(SKILL_INSCRIPTION);
+ uint32 SkillValue = player->GetPureSkillValue(SKILL_INSCRIPTION);
uint32 reqSkillValue = itemTarget->GetTemplate()->RequiredSkillRank;
- p_caster->UpdateGatherSkill(SKILL_INSCRIPTION, SkillValue, reqSkillValue);
+ player->UpdateGatherSkill(SKILL_INSCRIPTION, SkillValue, reqSkillValue);
}
- m_caster->ToPlayer()->SendLoot(itemTarget->GetGUID(), LOOT_MILLING);
+ player->SendLoot(itemTarget->GetGUID(), LOOT_MILLING);
}
void Spell::EffectSkill(SpellEffIndex /*effIndex*/)
@@ -5486,10 +5455,13 @@ void Spell::EffectSkinPlayerCorpse(SpellEffIndex /*effIndex*/)
return;
TC_LOG_DEBUG(LOG_FILTER_SPELLS_AURAS, "Effect: SkinPlayerCorpse");
- if ((m_caster->GetTypeId() != TYPEID_PLAYER) || (unitTarget->GetTypeId() != TYPEID_PLAYER) || (unitTarget->isAlive()))
+
+ Player* player = m_caster->ToPlayer();
+ Player* target = unitTarget->ToPlayer();
+ if (!player || !target || target->IsAlive())
return;
- unitTarget->ToPlayer()->RemovedInsignia((Player*)m_caster);
+ target->RemovedInsignia(player);
}
void Spell::EffectStealBeneficialBuff(SpellEffIndex effIndex)
@@ -5695,7 +5667,7 @@ void Spell::EffectActivateRune(SpellEffIndex effIndex)
if ((player->GetRuneCooldown(l) && player->GetCurrentRune(l) == RuneType(m_spellInfo->Effects[effIndex].MiscValueB)) && (player->GetRuneCooldown(l+1) && player->GetCurrentRune(l+1) == RuneType(m_spellInfo->Effects[effIndex].MiscValueB)))
{
// Should always update the rune with the lowest cd
- if (player->GetRuneCooldown(l) >= player->GetRuneCooldown(l+1))
+ if (l + 1 < MAX_RUNES && player->GetRuneCooldown(l) >= player->GetRuneCooldown(l+1))
l++;
player->SetRuneCooldown(l, 0);
--count;
@@ -5792,7 +5764,7 @@ void Spell::EffectGameObjectDamage(SpellEffIndex /*effIndex*/)
if (!caster)
return;
- FactionTemplateEntry const* casterFaction = caster->getFactionTemplateEntry();
+ FactionTemplateEntry const* casterFaction = caster->GetFactionTemplateEntry();
FactionTemplateEntry const* targetFaction = sFactionTemplateStore.LookupEntry(gameObjTarget->GetUInt32Value(GAMEOBJECT_FACTION));
// Do not allow to damage GO's of friendly factions (ie: Wintergrasp Walls/Ulduar Storm Beacons)
if ((casterFaction && targetFaction && !casterFaction->IsFriendlyTo(*targetFaction)) || !targetFaction)
@@ -5828,7 +5800,7 @@ void Spell::SummonGuardian(uint32 i, uint32 entry, SummonPropertiesEntry const*
if (!caster)
return;
- if (caster->isTotem())
+ if (caster->IsTotem())
caster = caster->ToTotem()->GetOwner();
// in another case summon new
@@ -5894,7 +5866,7 @@ void Spell::EffectRenamePet(SpellEffIndex /*effIndex*/)
return;
if (!unitTarget || unitTarget->GetTypeId() != TYPEID_UNIT ||
- !unitTarget->ToCreature()->isPet() || ((Pet*)unitTarget)->getPetType() != HUNTER_PET)
+ !unitTarget->ToCreature()->IsPet() || ((Pet*)unitTarget)->getPetType() != HUNTER_PET)
return;
unitTarget->SetByteFlag(UNIT_FIELD_BYTES_2, 2, UNIT_CAN_BE_RENAMED);
diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp
index 6a4fe9abbdd..a58c2ee19e4 100644
--- a/src/server/game/Spells/SpellInfo.cpp
+++ b/src/server/game/Spells/SpellInfo.cpp
@@ -816,23 +816,30 @@ SpellInfo::SpellInfo(SpellEntry const* spellEntry)
StackAmount = spellEntry->StackAmount;
for (uint8 i = 0; i < 2; ++i)
Totem[i] = spellEntry->Totem[i];
+
for (uint8 i = 0; i < MAX_SPELL_REAGENTS; ++i)
Reagent[i] = spellEntry->Reagent[i];
+
for (uint8 i = 0; i < MAX_SPELL_REAGENTS; ++i)
ReagentCount[i] = spellEntry->ReagentCount[i];
+
EquippedItemClass = spellEntry->EquippedItemClass;
EquippedItemSubClassMask = spellEntry->EquippedItemSubClassMask;
EquippedItemInventoryTypeMask = spellEntry->EquippedItemInventoryTypeMask;
for (uint8 i = 0; i < 2; ++i)
TotemCategory[i] = spellEntry->TotemCategory[i];
+
for (uint8 i = 0; i < 2; ++i)
SpellVisual[i] = spellEntry->SpellVisual[i];
+
SpellIconID = spellEntry->SpellIconID;
ActiveIconID = spellEntry->activeIconID;
for (uint8 i = 0; i < 16; ++i)
SpellName[i] = spellEntry->SpellName[i];
+
for (uint8 i = 0; i < 16; ++i)
Rank[i] = spellEntry->Rank[i];
+
MaxTargetLevel = spellEntry->MaxTargetLevel;
MaxAffectedTargets = spellEntry->MaxAffectedTargets;
SpellFamilyName = spellEntry->SpellFamilyName;
@@ -843,7 +850,7 @@ SpellInfo::SpellInfo(SpellEntry const* spellEntry)
SchoolMask = spellEntry->SchoolMask;
for (uint8 i = 0; i < MAX_SPELL_EFFECTS; ++i)
Effects[i] = SpellEffectInfo(spellEntry, this, i);
- ExplicitTargetMask = _GetExplicitTargetMask();
+
ChainEntry = NULL;
}
@@ -1212,28 +1219,6 @@ bool SpellInfo::IsSingleTarget() const
return false;
}
-bool SpellInfo::IsSingleTargetWith(SpellInfo const* spellInfo) const
-{
- // Same spell?
- if (IsRankOf(spellInfo))
- return true;
-
- SpellSpecificType spec = GetSpellSpecific();
- // spell with single target specific types
- switch (spec)
- {
- case SPELL_SPECIFIC_JUDGEMENT:
- case SPELL_SPECIFIC_MAGE_POLYMORPH:
- if (spellInfo->GetSpellSpecific() == spec)
- return true;
- break;
- default:
- break;
- }
-
- return false;
-}
-
bool SpellInfo::IsAuraExclusiveBySpecificWith(SpellInfo const* spellInfo) const
{
SpellSpecificType spellSpec1 = GetSpellSpecific();
@@ -1482,7 +1467,7 @@ SpellCastResult SpellInfo::CheckTarget(Unit const* caster, WorldObject const* ta
return SPELL_FAILED_BAD_TARGETS;
// check visibility - ignore stealth for implicit (area) targets
- if (!(AttributesEx6 & SPELL_ATTR6_CAN_TARGET_INVISIBLE) && !caster->canSeeOrDetect(target, implicit))
+ if (!(AttributesEx6 & SPELL_ATTR6_CAN_TARGET_INVISIBLE) && !caster->CanSeeOrDetect(target, implicit))
return SPELL_FAILED_BAD_TARGETS;
Unit const* unitTarget = target->ToUnit();
@@ -1490,7 +1475,7 @@ SpellCastResult SpellInfo::CheckTarget(Unit const* caster, WorldObject const* ta
// creature/player specific target checks
if (unitTarget)
{
- if (AttributesEx & SPELL_ATTR1_CANT_TARGET_IN_COMBAT && unitTarget->isInCombat())
+ if (AttributesEx & SPELL_ATTR1_CANT_TARGET_IN_COMBAT && unitTarget->IsInCombat())
return SPELL_FAILED_TARGET_AFFECTING_COMBAT;
// only spells with SPELL_ATTR3_ONLY_TARGET_GHOSTS can target ghosts
@@ -1555,7 +1540,7 @@ SpellCastResult SpellInfo::CheckTarget(Unit const* caster, WorldObject const* ta
if (AttributesEx3 & SPELL_ATTR3_ONLY_TARGET_PLAYERS && !unitTarget->ToPlayer())
return SPELL_FAILED_TARGET_NOT_PLAYER;
- if (!IsAllowingDeadTarget() && !unitTarget->isAlive())
+ if (!IsAllowingDeadTarget() && !unitTarget->IsAlive())
return SPELL_FAILED_TARGETS_DEAD;
// check this flag only for implicit targets (chain and area), allow to explicitly target units for spells like Shield of Righteousness
@@ -1582,7 +1567,7 @@ SpellCastResult SpellInfo::CheckTarget(Unit const* caster, WorldObject const* ta
if (!unitTarget->ToPlayer()->IsVisible())
return SPELL_FAILED_BM_OR_INVISGOD;
- if (unitTarget->ToPlayer()->isGameMaster())
+ if (unitTarget->ToPlayer()->IsGameMaster())
return SPELL_FAILED_BM_OR_INVISGOD;
}
@@ -2292,15 +2277,14 @@ bool SpellInfo::IsDifferentRankOf(SpellInfo const* spellInfo) const
bool SpellInfo::IsHighRankOf(SpellInfo const* spellInfo) const
{
if (ChainEntry && spellInfo->ChainEntry)
- {
if (ChainEntry->first == spellInfo->ChainEntry->first)
if (ChainEntry->rank > spellInfo->ChainEntry->rank)
return true;
- }
+
return false;
}
-uint32 SpellInfo::_GetExplicitTargetMask() const
+void SpellInfo::_InitializeExplicitTargetMask()
{
bool srcSet = false;
bool dstSet = false;
@@ -2310,6 +2294,7 @@ uint32 SpellInfo::_GetExplicitTargetMask() const
{
if (!Effects[i].IsEffect())
continue;
+
targetMask |= Effects[i].TargetA.GetExplicitTargetMask(srcSet, dstSet);
targetMask |= Effects[i].TargetB.GetExplicitTargetMask(srcSet, dstSet);
@@ -2323,9 +2308,11 @@ uint32 SpellInfo::_GetExplicitTargetMask() const
// don't add explicit object/dest flags when spell has no max range
if (GetMaxRange(true) == 0.0f && GetMaxRange(false) == 0.0f)
effectTargetMask &= ~(TARGET_FLAG_UNIT_MASK | TARGET_FLAG_GAMEOBJECT | TARGET_FLAG_CORPSE_MASK | TARGET_FLAG_DEST_LOCATION);
+
targetMask |= effectTargetMask;
}
- return targetMask;
+
+ ExplicitTargetMask = targetMask;
}
bool SpellInfo::_IsPositiveEffect(uint8 effIndex, bool deep) const
diff --git a/src/server/game/Spells/SpellInfo.h b/src/server/game/Spells/SpellInfo.h
index 3e6ba0023b1..6ed742a3b8e 100644
--- a/src/server/game/Spells/SpellInfo.h
+++ b/src/server/game/Spells/SpellInfo.h
@@ -198,7 +198,7 @@ class SpellImplicitTargetInfo
private:
Targets _target;
public:
- SpellImplicitTargetInfo() {}
+ SpellImplicitTargetInfo() : _target(Targets(0)) { }
SpellImplicitTargetInfo(uint32 target);
bool IsArea() const;
@@ -413,7 +413,6 @@ public:
bool CanDispelAura(SpellInfo const* aura) const;
bool IsSingleTarget() const;
- bool IsSingleTargetWith(SpellInfo const* spellInfo) const;
bool IsAuraExclusiveBySpecificWith(SpellInfo const* spellInfo) const;
bool IsAuraExclusiveBySpecificPerCasterWith(SpellInfo const* spellInfo) const;
@@ -462,7 +461,7 @@ public:
bool IsHighRankOf(SpellInfo const* spellInfo) const;
// loading helpers
- uint32 _GetExplicitTargetMask() const;
+ void _InitializeExplicitTargetMask();
bool _IsPositiveEffect(uint8 effIndex, bool deep) const;
bool _IsPositiveSpell() const;
static bool _IsPositiveTarget(uint32 targetA, uint32 targetB);
diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp
index 026c61d4965..63827c11107 100644
--- a/src/server/game/Spells/SpellMgr.cpp
+++ b/src/server/game/Spells/SpellMgr.cpp
@@ -29,7 +29,6 @@
#include "BattlegroundMgr.h"
#include "CreatureAI.h"
#include "MapManager.h"
-#include "BattlegroundIC.h"
#include "BattlefieldWG.h"
#include "BattlefieldMgr.h"
#include "Player.h"
@@ -358,7 +357,7 @@ bool SpellMgr::IsSpellValid(SpellInfo const* spellInfo, Player* player, bool msg
if (!spellInfo)
return false;
- bool need_check_reagents = false;
+ bool needCheckReagents = false;
// check effects
for (uint8 i = 0; i < MAX_SPELL_EFFECTS; ++i)
@@ -401,7 +400,7 @@ bool SpellMgr::IsSpellValid(SpellInfo const* spellInfo, Player* player, bool msg
return false;
}
- need_check_reagents = true;
+ needCheckReagents = true;
break;
}
case SPELL_EFFECT_LEARN_SPELL:
@@ -423,7 +422,7 @@ bool SpellMgr::IsSpellValid(SpellInfo const* spellInfo, Player* player, bool msg
}
}
- if (need_check_reagents)
+ if (needCheckReagents)
{
for (uint8 j = 0; j < MAX_SPELL_REAGENTS; ++j)
{
@@ -447,7 +446,7 @@ bool SpellMgr::IsSpellValid(SpellInfo const* spellInfo, Player* player, bool msg
uint32 SpellMgr::GetSpellDifficultyId(uint32 spellId) const
{
SpellDifficultySearcherMap::const_iterator i = mSpellDifficultySearcherMap.find(spellId);
- return i == mSpellDifficultySearcherMap.end() ? 0 : (*i).second;
+ return i == mSpellDifficultySearcherMap.end() ? 0 : i->second;
}
void SpellMgr::SetSpellDifficultyId(uint32 spellId, uint32 id)
@@ -499,6 +498,9 @@ uint32 SpellMgr::GetSpellIdForDifficulty(uint32 spellId, Unit const* caster) con
SpellInfo const* SpellMgr::GetSpellForDifficultyFromSpell(SpellInfo const* spell, Unit const* caster) const
{
+ if (!spell)
+ return NULL;
+
uint32 newSpellId = GetSpellIdForDifficulty(spell->Id, caster);
SpellInfo const* newSpell = GetSpellInfo(newSpellId);
if (!newSpell)
@@ -1099,7 +1101,13 @@ bool SpellArea::IsFitToRequirements(Player const* player, uint32 newZone, uint32
if (!player || (auraSpell > 0 && !player->HasAura(auraSpell)) || (auraSpell < 0 && player->HasAura(-auraSpell)))
return false;
- // Extra conditions -- leaving the possibility add extra conditions...
+ if (player)
+ {
+ if (Battleground* bg = player->GetBattleground())
+ return bg->IsSpellAllowed(spellId, player);
+ }
+
+ // Extra conditions
switch (spellId)
{
case 58600: // No fly Zone - Dalaran
@@ -1124,41 +1132,26 @@ bool SpellArea::IsFitToRequirements(Player const* player, uint32 newZone, uint32
return false;
break;
}
- case 68719: // Oil Refinery - Isle of Conquest.
- case 68720: // Quarry - Isle of Conquest.
- {
- if (!player || player->GetBattlegroundTypeId() != BATTLEGROUND_IC || !player->GetBattleground())
- return false;
-
- uint8 nodeType = spellId == 68719 ? NODE_TYPE_REFINERY : NODE_TYPE_QUARRY;
- uint8 nodeState = player->GetTeamId() == TEAM_ALLIANCE ? NODE_STATE_CONTROLLED_A : NODE_STATE_CONTROLLED_H;
-
- BattlegroundIC* pIC = static_cast<BattlegroundIC*>(player->GetBattleground());
- if (pIC->GetNodeState(nodeType) == nodeState)
- return true;
-
- return false;
- }
case 56618: // Horde Controls Factory Phase Shift
case 56617: // Alliance Controls Factory Phase Shift
- {
- if (!player)
- return false;
+ {
+ if (!player)
+ return false;
- Battlefield* bf = sBattlefieldMgr->GetBattlefieldToZoneId(player->GetZoneId());
+ Battlefield* bf = sBattlefieldMgr->GetBattlefieldToZoneId(player->GetZoneId());
- if (!bf || bf->GetTypeId() != BATTLEFIELD_WG)
- return false;
+ if (!bf || bf->GetTypeId() != BATTLEFIELD_WG)
+ return false;
- // team that controls the workshop in the specified area
- uint32 team = bf->GetData(newArea);
+ // team that controls the workshop in the specified area
+ uint32 team = bf->GetData(newArea);
- if (team == TEAM_HORDE)
- return spellId == 56618;
- else if (team == TEAM_ALLIANCE)
- return spellId == 56617;
- }
+ if (team == TEAM_HORDE)
+ return spellId == 56618;
+ else if (team == TEAM_ALLIANCE)
+ return spellId == 56617;
break;
+ }
case 57940: // Essence of Wintergrasp - Northrend
case 58045: // Essence of Wintergrasp - Wintergrasp
{
@@ -1184,23 +1177,88 @@ bool SpellArea::IsFitToRequirements(Player const* player, uint32 newZone, uint32
return true;
}
-void SpellMgr::LoadSpellRanks()
+void SpellMgr::UnloadSpellInfoChains()
{
- uint32 oldMSTime = getMSTime();
+ for (SpellChainMap::iterator itr = mSpellChains.begin(); itr != mSpellChains.end(); ++itr)
+ mSpellInfoMap[itr->first]->ChainEntry = NULL;
+
+ mSpellChains.clear();
+}
+void SpellMgr::LoadSpellTalentRanks()
+{
// cleanup core data before reload - remove reference to ChainNode from SpellInfo
- for (SpellChainMap::iterator itr = mSpellChains.begin(); itr != mSpellChains.end(); ++itr)
+ UnloadSpellInfoChains();
+
+ for (uint32 i = 0; i < sTalentStore.GetNumRows(); ++i)
{
- mSpellInfoMap[itr->first]->ChainEntry = NULL;
+ TalentEntry const* talentInfo = sTalentStore.LookupEntry(i);
+ if (!talentInfo)
+ continue;
+
+ SpellInfo const* lastSpell = NULL;
+ for (uint8 rank = MAX_TALENT_RANK - 1; rank > 0; --rank)
+ {
+ if (talentInfo->RankID[rank])
+ {
+ lastSpell = GetSpellInfo(talentInfo->RankID[rank]);
+ break;
+ }
+ }
+
+ if (!lastSpell)
+ continue;
+
+ SpellInfo const* firstSpell = GetSpellInfo(talentInfo->RankID[0]);
+ if (!firstSpell)
+ {
+ TC_LOG_ERROR(LOG_FILTER_SPELLS_AURAS, "SpellMgr::LoadSpellTalentRanks: First Rank Spell %u for TalentEntry %u does not exist.", talentInfo->RankID[0], i);
+ continue;
+ }
+
+ SpellInfo const* prevSpell = NULL;
+ for (uint8 rank = 0; rank < MAX_TALENT_RANK; ++rank)
+ {
+ uint32 spellId = talentInfo->RankID[rank];
+ if (!spellId)
+ break;
+
+ SpellInfo const* currentSpell = GetSpellInfo(spellId);
+ if (!currentSpell)
+ {
+ TC_LOG_ERROR(LOG_FILTER_SPELLS_AURAS, "SpellMgr::LoadSpellTalentRanks: Spell %u (Rank: %u) for TalentEntry %u does not exist.", spellId, rank + 1, i);
+ break;
+ }
+
+ SpellChainNode node;
+ node.first = firstSpell;
+ node.last = lastSpell;
+ node.rank = rank + 1;
+
+ node.prev = prevSpell;
+ node.next = node.rank < MAX_TALENT_RANK ? GetSpellInfo(talentInfo->RankID[rank + 1]) : NULL;
+
+ mSpellChains[spellId] = node;
+ mSpellInfoMap[spellId]->ChainEntry = &mSpellChains[spellId];
+
+ prevSpell = currentSpell;
+ }
}
- mSpellChains.clear();
+}
+
+void SpellMgr::LoadSpellRanks()
+{
+ // cleanup data and load spell ranks for talents from dbc
+ LoadSpellTalentRanks();
+
+ uint32 oldMSTime = getMSTime();
+
// 0 1 2
QueryResult result = WorldDatabase.Query("SELECT first_spell_id, spell_id, rank from spell_ranks ORDER BY first_spell_id, rank");
if (!result)
{
TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, ">> Loaded 0 spell rank records. DB table `spell_ranks` is empty.");
-
return;
}
@@ -1277,6 +1335,10 @@ void SpellMgr::LoadSpellRanks()
{
++count;
int32 addedSpell = itr->first;
+
+ if (mSpellInfoMap[addedSpell]->ChainEntry)
+ TC_LOG_ERROR(LOG_FILTER_SQL, "Spell %u (rank: %u, first: %u) listed in `spell_ranks` has already ChainEntry from dbc.", addedSpell, itr->second, lastSpell);
+
mSpellChains[addedSpell].first = GetSpellInfo(lastSpell);
mSpellChains[addedSpell].last = GetSpellInfo(rankChain.back().first);
mSpellChains[addedSpell].rank = itr->second;
@@ -1284,6 +1346,7 @@ void SpellMgr::LoadSpellRanks()
mSpellInfoMap[addedSpell]->ChainEntry = &mSpellChains[addedSpell];
prevRank = addedSpell;
++itr;
+
if (itr == rankChain.end())
{
mSpellChains[addedSpell].next = NULL;
@@ -1293,10 +1356,10 @@ void SpellMgr::LoadSpellRanks()
mSpellChains[addedSpell].next = GetSpellInfo(itr->first);
}
while (true);
- } while (!finished);
+ }
+ while (!finished);
TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, ">> Loaded %u spell rank records in %u ms", count, GetMSTimeDiffToNow(oldMSTime));
-
}
void SpellMgr::LoadSpellRequired()
@@ -1332,14 +1395,14 @@ void SpellMgr::LoadSpellRequired()
continue;
}
- SpellInfo const* req_spell = GetSpellInfo(spell_req);
- if (!req_spell)
+ SpellInfo const* reqSpell = GetSpellInfo(spell_req);
+ if (!reqSpell)
{
TC_LOG_ERROR(LOG_FILTER_SQL, "req_spell %u in `spell_required` table is not found in dbcs, skipped", spell_req);
continue;
}
- if (GetFirstSpellInChain(spell_id) == GetFirstSpellInChain(spell_req))
+ if (spell->IsRankOf(reqSpell))
{
TC_LOG_ERROR(LOG_FILTER_SQL, "req_spell %u and spell_id %u in `spell_required` table are ranks of the same spell, entry not needed, skipped", spell_req, spell_id);
continue;
@@ -1544,7 +1607,7 @@ void SpellMgr::LoadSpellTargetPositions()
SpellInfo const* spellInfo = GetSpellInfo(Spell_ID);
if (!spellInfo)
{
- TC_LOG_ERROR(LOG_FILTER_SQL, "Spell (ID:%u) listed in `spell_target_position` does not exist.", Spell_ID);
+ TC_LOG_ERROR(LOG_FILTER_SQL, "Spell (Id: %u) listed in `spell_target_position` does not exist.", Spell_ID);
continue;
}
@@ -1738,52 +1801,76 @@ void SpellMgr::LoadSpellProcEvents()
}
uint32 count = 0;
- uint32 customProc = 0;
+
do
{
Field* fields = result->Fetch();
- uint32 entry = fields[0].GetUInt32();
+ int32 spellId = fields[0].GetInt32();
- SpellInfo const* spell = GetSpellInfo(entry);
- if (!spell)
+ bool allRanks = false;
+ if (spellId < 0)
+ {
+ allRanks = true;
+ spellId = -spellId;
+ }
+
+ SpellInfo const* spellInfo = GetSpellInfo(spellId);
+ if (!spellInfo)
{
- TC_LOG_ERROR(LOG_FILTER_SQL, "Spell %u listed in `spell_proc_event` does not exist", entry);
+ TC_LOG_ERROR(LOG_FILTER_SQL, "Spell %u listed in `spell_proc_event` does not exist", spellId);
continue;
}
- SpellProcEventEntry spe;
+ if (allRanks)
+ {
+ if (!spellInfo->IsRanked())
+ TC_LOG_ERROR(LOG_FILTER_SQL, "Spell %u listed in `spell_proc_event` with all ranks, but spell has no ranks.", spellId);
+
+ if (spellInfo->GetFirstRankSpell()->Id != uint32(spellId))
+ {
+ TC_LOG_ERROR(LOG_FILTER_SQL, "Spell %u listed in `spell_proc_event` is not first rank of spell.", spellId);
+ continue;
+ }
+ }
- spe.schoolMask = fields[1].GetInt8();
- spe.spellFamilyName = fields[2].GetUInt16();
- spe.spellFamilyMask[0] = fields[3].GetUInt32();
- spe.spellFamilyMask[1] = fields[4].GetUInt32();
- spe.spellFamilyMask[2] = fields[5].GetUInt32();
- spe.procFlags = fields[6].GetUInt32();
- spe.procEx = fields[7].GetUInt32();
- spe.ppmRate = fields[8].GetFloat();
- spe.customChance = fields[9].GetFloat();
- spe.cooldown = fields[10].GetUInt32();
+ SpellProcEventEntry spellProcEvent;
- mSpellProcEventMap[entry] = spe;
+ spellProcEvent.schoolMask = fields[1].GetInt8();
+ spellProcEvent.spellFamilyName = fields[2].GetUInt16();
+ spellProcEvent.spellFamilyMask[0] = fields[3].GetUInt32();
+ spellProcEvent.spellFamilyMask[1] = fields[4].GetUInt32();
+ spellProcEvent.spellFamilyMask[2] = fields[5].GetUInt32();
+ spellProcEvent.procFlags = fields[6].GetUInt32();
+ spellProcEvent.procEx = fields[7].GetUInt32();
+ spellProcEvent.ppmRate = fields[8].GetFloat();
+ spellProcEvent.customChance = fields[9].GetFloat();
+ spellProcEvent.cooldown = fields[10].GetUInt32();
- if (spell->ProcFlags == 0)
+ while (spellInfo)
{
- if (spe.procFlags == 0)
+ if (mSpellProcEventMap.find(spellInfo->Id) != mSpellProcEventMap.end())
{
- TC_LOG_ERROR(LOG_FILTER_SQL, "Spell %u listed in `spell_proc_event` probally not triggered spell", entry);
- continue;
+ TC_LOG_ERROR(LOG_FILTER_SQL, "Spell %u listed in `spell_proc_event` already has its first rank in table.", spellInfo->Id);
+ break;
}
- customProc++;
+
+ if (!spellInfo->ProcFlags && !spellProcEvent.procFlags)
+ TC_LOG_ERROR(LOG_FILTER_SQL, "Spell %u listed in `spell_proc_event` probally not triggered spell", spellInfo->Id);
+
+ mSpellProcEventMap[spellInfo->Id] = spellProcEvent;
+
+ if (allRanks)
+ spellInfo = spellInfo->GetNextRankSpell();
+ else
+ break;
}
- ++count;
- } while (result->NextRow());
- if (customProc)
- TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, ">> Loaded %u extra and %u custom spell proc event conditions in %u ms", count, customProc, GetMSTimeDiffToNow(oldMSTime));
- else
- TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, ">> Loaded %u extra spell proc event conditions in %u ms", count, GetMSTimeDiffToNow(oldMSTime));
+ ++count;
+ }
+ while (result->NextRow());
+ TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, ">> Loaded %u extra spell proc event conditions in %u ms", count, GetMSTimeDiffToNow(oldMSTime));
}
void SpellMgr::LoadSpellProcs()
@@ -1823,6 +1910,9 @@ void SpellMgr::LoadSpellProcs()
if (allRanks)
{
+ if (!spellInfo->IsRanked())
+ TC_LOG_ERROR(LOG_FILTER_SQL, "Spell %u listed in `spell_proc` with all ranks, but spell has no ranks.", spellId);
+
if (spellInfo->GetFirstRankSpell()->Id != uint32(spellId))
{
TC_LOG_ERROR(LOG_FILTER_SQL, "Spell %u listed in `spell_proc` is not first rank of spell.", spellId);
@@ -1852,9 +1942,10 @@ void SpellMgr::LoadSpellProcs()
{
if (mSpellProcMap.find(spellInfo->Id) != mSpellProcMap.end())
{
- TC_LOG_ERROR(LOG_FILTER_SQL, "Spell %u listed in `spell_proc` has duplicate entry in the table", spellInfo->Id);
+ TC_LOG_ERROR(LOG_FILTER_SQL, "Spell %u listed in `spell_proc` already has its first rank in table.", spellInfo->Id);
break;
}
+
SpellProcEntry procEntry = SpellProcEntry(baseProcEntry);
// take defaults from dbcs
@@ -2593,34 +2684,28 @@ void SpellMgr::LoadSpellInfoStore()
mSpellInfoMap.resize(sSpellStore.GetNumRows(), NULL);
for (uint32 i = 0; i < sSpellStore.GetNumRows(); ++i)
- {
if (SpellEntry const* spellEntry = sSpellStore.LookupEntry(i))
mSpellInfoMap[i] = new SpellInfo(spellEntry);
- }
- TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, ">> Loaded spell custom attributes in %u ms", GetMSTimeDiffToNow(oldMSTime));
+ TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, ">> Loaded SpellInfo store in %u ms", GetMSTimeDiffToNow(oldMSTime));
}
void SpellMgr::UnloadSpellInfoStore()
{
- for (uint32 i = 0; i < mSpellInfoMap.size(); ++i)
- {
- if (mSpellInfoMap[i])
- delete mSpellInfoMap[i];
- }
+ for (uint32 i = 0; i < GetSpellInfoStoreSize(); ++i)
+ delete mSpellInfoMap[i];
+
mSpellInfoMap.clear();
}
void SpellMgr::UnloadSpellInfoImplicitTargetConditionLists()
{
- for (uint32 i = 0; i < mSpellInfoMap.size(); ++i)
- {
+ for (uint32 i = 0; i < GetSpellInfoStoreSize(); ++i)
if (mSpellInfoMap[i])
mSpellInfoMap[i]->_UnloadImplicitTargetConditionLists();
- }
}
-void SpellMgr::LoadSpellCustomAttr()
+void SpellMgr::LoadSpellInfoCustomAttributes()
{
uint32 oldMSTime = getMSTime();
@@ -2702,7 +2787,7 @@ void SpellMgr::LoadSpellCustomAttr()
if (enchant->type[s] != ITEM_ENCHANTMENT_TYPE_COMBAT_SPELL)
continue;
- SpellInfo* procInfo = (SpellInfo*)GetSpellInfo(enchant->spellid[s]);
+ SpellInfo* procInfo = _GetSpellInfo(enchant->spellid[s]);
if (!procInfo)
continue;
@@ -2910,40 +2995,42 @@ void SpellMgr::LoadSpellCustomAttr()
default:
break;
}
+
+ spellInfo->_InitializeExplicitTargetMask();
}
CreatureAI::FillAISpellInfo();
- TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, ">> Loaded spell custom attributes in %u ms", GetMSTimeDiffToNow(oldMSTime));
+ TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, ">> Loaded SpellInfo custom attributes in %u ms", GetMSTimeDiffToNow(oldMSTime));
}
-void SpellMgr::LoadDbcDataCorrections()
+void SpellMgr::LoadSpellInfoCorrections()
{
uint32 oldMSTime = getMSTime();
- SpellEntry* spellInfo = NULL;
- for (uint32 i = 0; i < sSpellStore.GetNumRows(); ++i)
+ SpellInfo* spellInfo = NULL;
+ for (uint32 i = 0; i < GetSpellInfoStoreSize(); ++i)
{
- spellInfo = (SpellEntry*)sSpellStore.LookupEntry(i);
+ spellInfo = mSpellInfoMap[i];
if (!spellInfo)
continue;
for (uint8 j = 0; j < MAX_SPELL_EFFECTS; ++j)
{
- switch (spellInfo->Effect[j])
+ switch (spellInfo->Effects[j].Effect)
{
case SPELL_EFFECT_CHARGE:
case SPELL_EFFECT_CHARGE_DEST:
case SPELL_EFFECT_JUMP:
case SPELL_EFFECT_JUMP_DEST:
case SPELL_EFFECT_LEAP_BACK:
- if (!spellInfo->speed && !spellInfo->SpellFamilyName)
- spellInfo->speed = SPEED_CHARGE;
+ if (!spellInfo->Speed && !spellInfo->SpellFamilyName)
+ spellInfo->Speed = SPEED_CHARGE;
break;
}
}
- if (spellInfo->activeIconID == 2158) // flight
+ if (spellInfo->ActiveIconID == 2158) // flight
spellInfo->Attributes |= SPELL_ATTR0_PASSIVE;
switch (spellInfo->Id)
@@ -2952,28 +3039,28 @@ void SpellMgr::LoadDbcDataCorrections()
spellInfo->MaxAffectedTargets = 1;
break;
case 42730:
- spellInfo->EffectTriggerSpell[EFFECT_1] = 42739;
+ spellInfo->Effects[EFFECT_1].TriggerSpell = 42739;
break;
case 59735:
- spellInfo->EffectTriggerSpell[EFFECT_1] = 59736;
+ spellInfo->Effects[EFFECT_1].TriggerSpell = 59736;
break;
case 52611: // Summon Skeletons
case 52612: // Summon Skeletons
- spellInfo->EffectMiscValueB[0] = 64;
+ spellInfo->Effects[EFFECT_0].MiscValueB = 64;
break;
case 40244: // Simon Game Visual
case 40245: // Simon Game Visual
case 40246: // Simon Game Visual
case 40247: // Simon Game Visual
case 42835: // Spout, remove damage effect, only anim is needed
- spellInfo->Effect[0] = 0;
+ spellInfo->Effects[EFFECT_0].Effect = 0;
break;
case 30657: // Quake
- spellInfo->EffectTriggerSpell[0] = 30571;
+ spellInfo->Effects[EFFECT_0].TriggerSpell = 30571;
break;
case 30541: // Blaze (needs conditions entry)
- spellInfo->EffectImplicitTargetA[0] = TARGET_UNIT_TARGET_ENEMY;
- spellInfo->EffectImplicitTargetB[0] = 0;
+ spellInfo->Effects[EFFECT_0].TargetA = SpellImplicitTargetInfo(TARGET_UNIT_TARGET_ENEMY);
+ spellInfo->Effects[EFFECT_0].TargetB = SpellImplicitTargetInfo();
break;
case 63665: // Charge (Argent Tournament emote on riders)
case 31298: // Sleep (needs target selection script)
@@ -2981,18 +3068,18 @@ void SpellMgr::LoadDbcDataCorrections()
case 2895: // Wrath of Air Totem rank 1 (Aura)
case 68933: // Wrath of Air Totem rank 2 (Aura)
case 29200: // Purify Helboar Meat
- spellInfo->EffectImplicitTargetA[0] = TARGET_UNIT_CASTER;
- spellInfo->EffectImplicitTargetB[0] = 0;
+ spellInfo->Effects[EFFECT_0].TargetA = SpellImplicitTargetInfo(TARGET_UNIT_CASTER);
+ spellInfo->Effects[EFFECT_0].TargetB = SpellImplicitTargetInfo();
break;
case 31344: // Howl of Azgalor
- spellInfo->EffectRadiusIndex[0] = EFFECT_RADIUS_100_YARDS; // 100yards instead of 50000?!
+ spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_100_YARDS); // 100yards instead of 50000?!
break;
case 42818: // Headless Horseman - Wisp Flight Port
case 42821: // Headless Horseman - Wisp Flight Missile
- spellInfo->rangeIndex = 6; // 100 yards
+ spellInfo->RangeEntry = sSpellRangeStore.LookupEntry(6); // 100 yards
break;
- case 36350: //They Must Burn Bomb Aura (self)
- spellInfo->EffectTriggerSpell[0] = 36325; // They Must Burn Bomb Drop (DND)
+ case 36350: // They Must Burn Bomb Aura (self)
+ spellInfo->Effects[EFFECT_0].TriggerSpell = 36325; // They Must Burn Bomb Drop (DND)
break;
case 49838: // Stop Time
spellInfo->AttributesEx3 |= SPELL_ATTR3_NO_INITIAL_AGGRO;
@@ -3001,15 +3088,15 @@ void SpellMgr::LoadDbcDataCorrections()
case 62136: // Energize Cores
case 54069: // Energize Cores
case 56251: // Energize Cores
- spellInfo->EffectImplicitTargetA[0] = TARGET_UNIT_SRC_AREA_ENTRY;
+ spellInfo->Effects[EFFECT_0].TargetA = SpellImplicitTargetInfo(TARGET_UNIT_SRC_AREA_ENTRY);
break;
case 50785: // Energize Cores
case 59372: // Energize Cores
- spellInfo->EffectImplicitTargetA[0] = TARGET_UNIT_SRC_AREA_ENEMY;
+ spellInfo->Effects[EFFECT_0].TargetA = SpellImplicitTargetInfo(TARGET_UNIT_SRC_AREA_ENEMY);
break;
case 8494: // Mana Shield (rank 2)
// because of bug in dbc
- spellInfo->procChance = 0;
+ spellInfo->ProcChance = 0;
break;
case 20335: // Heart of the Crusader
case 20336:
@@ -3020,8 +3107,8 @@ void SpellMgr::LoadDbcDataCorrections()
break;
case 59725: // Improved Spell Reflection - aoe aura
// Target entry seems to be wrong for this spell :/
- spellInfo->EffectImplicitTargetA[0] = TARGET_UNIT_CASTER_AREA_PARTY;
- spellInfo->EffectRadiusIndex[0] = EFFECT_RADIUS_10_YARDS_2;
+ spellInfo->Effects[EFFECT_0].TargetA = SpellImplicitTargetInfo(TARGET_UNIT_CASTER_AREA_PARTY);
+ spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_10_YARDS_2);
break;
case 44978: // Wild Magic
case 45001:
@@ -3092,7 +3179,7 @@ void SpellMgr::LoadDbcDataCorrections()
case 33711: // Murmur's Touch
case 38794:
spellInfo->MaxAffectedTargets = 1;
- spellInfo->EffectTriggerSpell[0] = 33760;
+ spellInfo->Effects[EFFECT_0].TriggerSpell = 33760;
break;
case 17941: // Shadow Trance
case 22008: // Netherwind Focus
@@ -3107,17 +3194,17 @@ void SpellMgr::LoadDbcDataCorrections()
case 64823: // Item - Druid T8 Balance 4P Bonus
case 34477: // Misdirection
case 44401: // Missile Barrage
- spellInfo->procCharges = 1;
+ spellInfo->ProcCharges = 1;
break;
case 44544: // Fingers of Frost
- spellInfo->EffectSpellClassMask[0] = flag96(685904631, 1151048, 0);
+ spellInfo->Effects[EFFECT_0].SpellClassMask = flag96(685904631, 1151048, 0);
break;
case 74396: // Fingers of Frost visual buff
- spellInfo->procCharges = 2;
+ spellInfo->ProcCharges = 2;
spellInfo->StackAmount = 0;
break;
case 28200: // Ascendance (Talisman of Ascendance trinket)
- spellInfo->procCharges = 6;
+ spellInfo->ProcCharges = 6;
break;
case 47201: // Everlasting Affliction
case 47202:
@@ -3125,16 +3212,16 @@ void SpellMgr::LoadDbcDataCorrections()
case 47204:
case 47205:
// add corruption to affected spells
- spellInfo->EffectSpellClassMask[1][0] |= 2;
+ spellInfo->Effects[EFFECT_1].SpellClassMask[0] |= 2;
break;
case 51852: // The Eye of Acherus (no spawn in phase 2 in db)
- spellInfo->EffectMiscValue[0] |= 1;
+ spellInfo->Effects[EFFECT_0].MiscValue |= 1;
break;
case 51912: // Crafty's Ultra-Advanced Proto-Typical Shortening Blaster
- spellInfo->EffectAmplitude[0] = 3000;
+ spellInfo->Effects[EFFECT_0].Amplitude = 3000;
break;
case 29809: // Desecration Arm - 36 instead of 37 - typo? :/
- spellInfo->EffectRadiusIndex[0] = EFFECT_RADIUS_7_YARDS;
+ spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_7_YARDS);
break;
// Master Shapeshifter: missing stance data for forms other than bear - bear version has correct data
// To prevent aura staying on target after talent unlearned
@@ -3149,37 +3236,37 @@ void SpellMgr::LoadDbcDataCorrections()
break;
case 51466: // Elemental Oath (Rank 1)
case 51470: // Elemental Oath (Rank 2)
- spellInfo->Effect[EFFECT_1] = SPELL_EFFECT_APPLY_AURA;
- spellInfo->EffectApplyAuraName[EFFECT_1] = SPELL_AURA_ADD_FLAT_MODIFIER;
- spellInfo->EffectMiscValue[EFFECT_1] = SPELLMOD_EFFECT2;
- spellInfo->EffectSpellClassMask[EFFECT_1] = flag96(0x00000000, 0x00004000, 0x00000000);
+ spellInfo->Effects[EFFECT_1].Effect = SPELL_EFFECT_APPLY_AURA;
+ spellInfo->Effects[EFFECT_1].ApplyAuraName = SPELL_AURA_ADD_FLAT_MODIFIER;
+ spellInfo->Effects[EFFECT_1].MiscValue = SPELLMOD_EFFECT2;
+ spellInfo->Effects[EFFECT_1].SpellClassMask = flag96(0x00000000, 0x00004000, 0x00000000);
break;
case 47569: // Improved Shadowform (Rank 1)
// with this spell atrribute aura can be stacked several times
spellInfo->Attributes &= ~SPELL_ATTR0_NOT_SHAPESHIFT;
break;
case 64904: // Hymn of Hope
- spellInfo->EffectApplyAuraName[EFFECT_1] = SPELL_AURA_MOD_INCREASE_ENERGY_PERCENT;
+ spellInfo->Effects[EFFECT_1].ApplyAuraName = SPELL_AURA_MOD_INCREASE_ENERGY_PERCENT;
break;
case 19465: // Improved Stings (Rank 2)
- spellInfo->EffectImplicitTargetA[EFFECT_2] = TARGET_UNIT_CASTER;
+ spellInfo->Effects[EFFECT_2].TargetA = SpellImplicitTargetInfo(TARGET_UNIT_CASTER);
break;
case 30421: // Nether Portal - Perseverence
- spellInfo->EffectBasePoints[2] += 30000;
+ spellInfo->Effects[EFFECT_2].BasePoints += 30000;
break;
case 16834: // Natural shapeshifter
case 16835:
- spellInfo->DurationIndex = 21;
+ spellInfo->DurationEntry = sSpellDurationStore.LookupEntry(21);
break;
case 51735: // Ebon Plague
case 51734:
case 51726:
spellInfo->AttributesEx3 |= SPELL_ATTR3_STACK_FOR_DIFF_CASTERS;
spellInfo->SpellFamilyFlags[2] = 0x10;
- spellInfo->EffectApplyAuraName[1] = SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN;
+ spellInfo->Effects[EFFECT_1].ApplyAuraName = SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN;
break;
case 41913: // Parasitic Shadowfiend Passive
- spellInfo->EffectApplyAuraName[0] = SPELL_AURA_DUMMY; // proc debuff, and summon infinite fiends
+ spellInfo->Effects[EFFECT_0].ApplyAuraName = SPELL_AURA_DUMMY; // proc debuff, and summon infinite fiends
break;
case 27892: // To Anchor 1
case 27928: // To Anchor 1
@@ -3187,18 +3274,18 @@ void SpellMgr::LoadDbcDataCorrections()
case 27915: // Anchor to Skulls
case 27931: // Anchor to Skulls
case 27937: // Anchor to Skulls
- spellInfo->rangeIndex = 13;
+ spellInfo->RangeEntry = sSpellRangeStore.LookupEntry(13);
break;
// target allys instead of enemies, target A is src_caster, spells with effect like that have ally target
// this is the only known exception, probably just wrong data
case 29214: // Wrath of the Plaguebringer
case 54836: // Wrath of the Plaguebringer
- spellInfo->EffectImplicitTargetB[0] = TARGET_UNIT_SRC_AREA_ALLY;
- spellInfo->EffectImplicitTargetB[1] = TARGET_UNIT_SRC_AREA_ALLY;
+ spellInfo->Effects[EFFECT_0].TargetB = SpellImplicitTargetInfo(TARGET_UNIT_SRC_AREA_ALLY);
+ spellInfo->Effects[EFFECT_1].TargetB = SpellImplicitTargetInfo(TARGET_UNIT_SRC_AREA_ALLY);
break;
case 57994: // Wind Shear - improper data for EFFECT_1 in 3.3.5 DBC, but is correct in 4.x
- spellInfo->Effect[EFFECT_1] = SPELL_EFFECT_MODIFY_THREAT_PERCENT;
- spellInfo->EffectBasePoints[EFFECT_1] = -6; // -5%
+ spellInfo->Effects[EFFECT_1].Effect = SPELL_EFFECT_MODIFY_THREAT_PERCENT;
+ spellInfo->Effects[EFFECT_1].BasePoints = -6; // -5%
break;
case 63675: // Improved Devouring Plague
spellInfo->AttributesEx3 |= SPELL_ATTR3_NO_DONE_BONUS;
@@ -3215,55 +3302,55 @@ void SpellMgr::LoadDbcDataCorrections()
case 58651: // Flametongue Totem rank 6 (Aura)
case 58654: // Flametongue Totem rank 7 (Aura)
case 58655: // Flametongue Totem rank 8 (Aura)
- spellInfo->EffectImplicitTargetA[0] = TARGET_UNIT_CASTER;
- spellInfo->EffectImplicitTargetA[1] = TARGET_UNIT_CASTER;
- spellInfo->EffectImplicitTargetB[0] = 0;
- spellInfo->EffectImplicitTargetB[1] = 0;
+ spellInfo->Effects[EFFECT_0].TargetA = SpellImplicitTargetInfo(TARGET_UNIT_CASTER);
+ spellInfo->Effects[EFFECT_1].TargetA = SpellImplicitTargetInfo(TARGET_UNIT_CASTER);
+ spellInfo->Effects[EFFECT_0].TargetB = SpellImplicitTargetInfo();
+ spellInfo->Effects[EFFECT_1].TargetB = SpellImplicitTargetInfo();
break;
case 53241: // Marked for Death (Rank 1)
case 53243: // Marked for Death (Rank 2)
case 53244: // Marked for Death (Rank 3)
case 53245: // Marked for Death (Rank 4)
case 53246: // Marked for Death (Rank 5)
- spellInfo->EffectSpellClassMask[0] = flag96(0x00067801, 0x10820001, 0x00000801);
+ spellInfo->Effects[EFFECT_0].SpellClassMask = flag96(0x00067801, 0x10820001, 0x00000801);
break;
case 70728: // Exploit Weakness (needs target selection script)
case 70840: // Devious Minds (needs target selection script)
- spellInfo->EffectImplicitTargetA[0] = TARGET_UNIT_CASTER;
- spellInfo->EffectImplicitTargetB[0] = TARGET_UNIT_PET;
+ spellInfo->Effects[EFFECT_0].TargetA = SpellImplicitTargetInfo(TARGET_UNIT_CASTER);
+ spellInfo->Effects[EFFECT_0].TargetB = SpellImplicitTargetInfo(TARGET_UNIT_PET);
break;
case 70893: // Culling The Herd (needs target selection script)
- spellInfo->EffectImplicitTargetA[0] = TARGET_UNIT_CASTER;
- spellInfo->EffectImplicitTargetB[0] = TARGET_UNIT_MASTER;
+ spellInfo->Effects[EFFECT_0].TargetA = SpellImplicitTargetInfo(TARGET_UNIT_CASTER);
+ spellInfo->Effects[EFFECT_0].TargetB = SpellImplicitTargetInfo(TARGET_UNIT_MASTER);
break;
case 54800: // Sigil of the Frozen Conscience - change class mask to custom extended flags of Icy Touch
// this is done because another spell also uses the same SpellFamilyFlags as Icy Touch
// SpellFamilyFlags[0] & 0x00000040 in SPELLFAMILY_DEATHKNIGHT is currently unused (3.3.5a)
// this needs research on modifier applying rules, does not seem to be in Attributes fields
- spellInfo->EffectSpellClassMask[0] = flag96(0x00000040, 0x00000000, 0x00000000);
+ spellInfo->Effects[EFFECT_0].SpellClassMask = flag96(0x00000040, 0x00000000, 0x00000000);
break;
case 64949: // Idol of the Flourishing Life
- spellInfo->EffectSpellClassMask[EFFECT_0] = flag96(0x00000000, 0x02000000, 0x00000000);
- spellInfo->EffectApplyAuraName[EFFECT_0] = SPELL_AURA_ADD_FLAT_MODIFIER;
+ spellInfo->Effects[EFFECT_0].SpellClassMask = flag96(0x00000000, 0x02000000, 0x00000000);
+ spellInfo->Effects[EFFECT_0].ApplyAuraName = SPELL_AURA_ADD_FLAT_MODIFIER;
break;
case 34231: // Libram of the Lightbringer
case 60792: // Libram of Tolerance
case 64956: // Libram of the Resolute
- spellInfo->EffectSpellClassMask[EFFECT_0] = flag96(0x80000000, 0x00000000, 0x00000000);
- spellInfo->EffectApplyAuraName[EFFECT_0] = SPELL_AURA_ADD_FLAT_MODIFIER;
+ spellInfo->Effects[EFFECT_0].SpellClassMask = flag96(0x80000000, 0x00000000, 0x00000000);
+ spellInfo->Effects[EFFECT_0].ApplyAuraName = SPELL_AURA_ADD_FLAT_MODIFIER;
break;
case 28851: // Libram of Light
case 28853: // Libram of Divinity
case 32403: // Blessed Book of Nagrand
- spellInfo->EffectSpellClassMask[EFFECT_0] = flag96(0x40000000, 0x00000000, 0x00000000);
- spellInfo->EffectApplyAuraName[EFFECT_0] = SPELL_AURA_ADD_FLAT_MODIFIER;
+ spellInfo->Effects[EFFECT_0].SpellClassMask = flag96(0x40000000, 0x00000000, 0x00000000);
+ spellInfo->Effects[EFFECT_0].ApplyAuraName = SPELL_AURA_ADD_FLAT_MODIFIER;
break;
case 45602: // Ride Carpet
- spellInfo->EffectBasePoints[EFFECT_0] = 0; // force seat 0, vehicle doesn't have the required seat flags for "no seat specified (-1)"
+ spellInfo->Effects[EFFECT_0].BasePoints = 0; // force seat 0, vehicle doesn't have the required seat flags for "no seat specified (-1)"
break;
case 64745: // Item - Death Knight T8 Tank 4P Bonus
case 64936: // Item - Warrior T8 Protection 4P Bonus
- spellInfo->EffectBasePoints[0] = 100; // 100% chance of procc'ing, not -10% (chance calculated in PrepareTriggersExecutedOnHit)
+ spellInfo->Effects[EFFECT_0].BasePoints = 100; // 100% chance of procc'ing, not -10% (chance calculated in PrepareTriggersExecutedOnHit)
break;
case 19970: // Entangling Roots (Rank 6) -- Nature's Grasp Proc
case 19971: // Entangling Roots (Rank 5) -- Nature's Grasp Proc
@@ -3273,7 +3360,7 @@ void SpellMgr::LoadDbcDataCorrections()
case 19975: // Entangling Roots (Rank 1) -- Nature's Grasp Proc
case 27010: // Entangling Roots (Rank 7) -- Nature's Grasp Proc
case 53313: // Entangling Roots (Rank 8) -- Nature's Grasp Proc
- spellInfo->CastingTimeIndex = 1;
+ spellInfo->CastTimeEntry = sSpellCastTimesStore.LookupEntry(1);
break;
case 59414: // Pulsing Shockwave Aura (Loken)
// this flag breaks movement, remove it
@@ -3283,7 +3370,7 @@ void SpellMgr::LoadDbcDataCorrections()
spellInfo->AuraInterruptFlags = AURA_INTERRUPT_FLAG_HITBYSPELL | AURA_INTERRUPT_FLAG_TAKE_DAMAGE;
break;
case 70650: // Death Knight T10 Tank 2P Bonus
- spellInfo->EffectApplyAuraName[0] = SPELL_AURA_ADD_PCT_MODIFIER;
+ spellInfo->Effects[EFFECT_0].ApplyAuraName = SPELL_AURA_ADD_PCT_MODIFIER;
break;
case 71838: // Drain Life - Bryntroll Normal
case 71839: // Drain Life - Bryntroll Heroic
@@ -3295,7 +3382,7 @@ void SpellMgr::LoadDbcDataCorrections()
// ULDUAR SPELLS
//
case 62374: // Pursued (Flame Leviathan)
- spellInfo->EffectRadiusIndex[0] = EFFECT_RADIUS_50000_YARDS; // 50000yd
+ spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_50000_YARDS); // 50000yd
break;
case 63342: // Focused Eyebeam Summon Trigger (Kologarn)
spellInfo->MaxAffectedTargets = 1;
@@ -3317,12 +3404,12 @@ void SpellMgr::LoadDbcDataCorrections()
// then EFFECT_1, etc - instead of applying each effect on target1, then target2, etc.
// The above situation causes the visual for this spell to be bugged, so we remove the instakill
// effect and implement a script hack for that.
- spellInfo->Effect[EFFECT_1] = 0;
+ spellInfo->Effects[EFFECT_1].Effect = 0;
break;
case 64386: // Terrifying Screech (Auriaya)
case 64389: // Sentinel Blast (Auriaya)
case 64678: // Sentinel Blast (Auriaya)
- spellInfo->DurationIndex = 28; // 5 seconds, wrong DBC data?
+ spellInfo->DurationEntry = sSpellDurationStore.LookupEntry(28); // 5 seconds, wrong DBC data?
break;
case 64321: // Potent Pheromones (Freya)
// spell should dispel area aura, but doesn't have the attribute
@@ -3332,7 +3419,7 @@ void SpellMgr::LoadDbcDataCorrections()
break;
case 61791: // Ride Vehicle (Yogg-Saron)
// TODO: remove this when basepoints of all Ride Vehicle auras are calculated correctly
- spellInfo->EffectBasePoints[0] = 1;
+ spellInfo->Effects[EFFECT_0].BasePoints = 1;
break;
case 64468: // Empowering Shadows (Yogg-Saron)
case 64486: // Empowering Shadows (Yogg-Saron)
@@ -3345,11 +3432,11 @@ void SpellMgr::LoadDbcDataCorrections()
spellInfo->MaxAffectedTargets = 3;
break;
case 62293: // Cosmic Smash (Algalon the Observer)
- spellInfo->EffectImplicitTargetB[0] = TARGET_DEST_CASTER;
+ spellInfo->Effects[EFFECT_0].TargetB = SpellImplicitTargetInfo(TARGET_DEST_CASTER);
break;
case 62311: // Cosmic Smash (Algalon the Observer)
case 64596: // Cosmic Smash (Algalon the Observer)
- spellInfo->rangeIndex = 6; // 100yd
+ spellInfo->RangeEntry = sSpellRangeStore.LookupEntry(6); // 100yd
break;
case 64014: // Expedition Base Camp Teleport
case 64024: // Conservatory Teleport
@@ -3360,7 +3447,7 @@ void SpellMgr::LoadDbcDataCorrections()
case 64031: // Scrapyard Teleport
case 64032: // Formation Grounds Teleport
case 65042: // Prison of Yogg-Saron Teleport
- spellInfo->EffectImplicitTargetA[0] = TARGET_DEST_DB;
+ spellInfo->Effects[0].TargetA = SpellImplicitTargetInfo(TARGET_DEST_DB);
break;
// ENDOF ULDUAR SPELLS
//
@@ -3370,7 +3457,7 @@ void SpellMgr::LoadDbcDataCorrections()
case 67901: // Infernal Eruption (25N)
// increase duration from 15 to 18 seconds because caster is already
// unsummoned when spell missile hits the ground so nothing happen in result
- spellInfo->DurationIndex = 85;
+ spellInfo->DurationEntry = sSpellDurationStore.LookupEntry(85);
break;
// ENDOF TRIAL OF THE CRUSADER SPELLS
//
@@ -3386,11 +3473,11 @@ void SpellMgr::LoadDbcDataCorrections()
case 70859: // Upper Spire Teleport
case 70860: // Frozen Throne Teleport
case 70861: // Sindragosa's Lair Teleport
- spellInfo->EffectImplicitTargetA[0] = TARGET_DEST_DB;
+ spellInfo->Effects[EFFECT_0].TargetA = SpellImplicitTargetInfo(TARGET_DEST_DB);
break;
case 69055: // Bone Slice (Lord Marrowgar)
case 70814: // Bone Slice (Lord Marrowgar)
- spellInfo->EffectRadiusIndex[0] = EFFECT_RADIUS_8_YARDS; // 5yd
+ spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_5_YARDS); // 5yd
break;
case 69075: // Bone Storm (Lord Marrowgar)
case 70834: // Bone Storm (Lord Marrowgar)
@@ -3400,62 +3487,62 @@ void SpellMgr::LoadDbcDataCorrections()
case 71160: // Plague Stench (Stinky)
case 71161: // Plague Stench (Stinky)
case 71123: // Decimate (Stinky & Precious)
- spellInfo->EffectRadiusIndex[0] = EFFECT_RADIUS_100_YARDS; // 100yd
+ spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_100_YARDS); // 100yd
break;
case 71169: // Shadow's Fate
spellInfo->AttributesEx3 |= SPELL_ATTR3_STACK_FOR_DIFF_CASTERS;
break;
case 72378: // Blood Nova (Deathbringer Saurfang)
case 73058: // Blood Nova (Deathbringer Saurfang)
- spellInfo->EffectRadiusIndex[0] = EFFECT_RADIUS_200_YARDS;
- spellInfo->EffectRadiusIndex[1] = EFFECT_RADIUS_200_YARDS;
+ spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_200_YARDS);
+ spellInfo->Effects[EFFECT_1].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_200_YARDS);
break;
case 72769: // Scent of Blood (Deathbringer Saurfang)
- spellInfo->EffectRadiusIndex[0] = EFFECT_RADIUS_200_YARDS;
+ spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_200_YARDS);
// no break
case 72771: // Scent of Blood (Deathbringer Saurfang)
- spellInfo->EffectRadiusIndex[1] = EFFECT_RADIUS_200_YARDS;
+ spellInfo->Effects[EFFECT_1].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_200_YARDS);
break;
case 72723: // Resistant Skin (Deathbringer Saurfang adds)
// this spell initially granted Shadow damage immunity, however it was removed but the data was left in client
- spellInfo->Effect[2] = 0;
+ spellInfo->Effects[EFFECT_2].Effect = 0;
break;
case 70460: // Coldflame Jets (Traps after Saurfang)
- spellInfo->DurationIndex = 1; // 10 seconds
+ spellInfo->DurationEntry = sSpellDurationStore.LookupEntry(1); // 10 seconds
break;
case 71412: // Green Ooze Summon (Professor Putricide)
case 71415: // Orange Ooze Summon (Professor Putricide)
- spellInfo->EffectImplicitTargetA[0] = TARGET_UNIT_TARGET_ANY;
+ spellInfo->Effects[EFFECT_0].TargetA = SpellImplicitTargetInfo(TARGET_UNIT_TARGET_ANY);
break;
case 71159: // Awaken Plagued Zombies
- spellInfo->DurationIndex = 21;
+ spellInfo->DurationEntry = sSpellDurationStore.LookupEntry(21);
break;
case 70530: // Volatile Ooze Beam Protection (Professor Putricide)
- spellInfo->Effect[0] = SPELL_EFFECT_APPLY_AURA; // for an unknown reason this was SPELL_EFFECT_APPLY_AREA_AURA_RAID
+ spellInfo->Effects[EFFECT_0].Effect = SPELL_EFFECT_APPLY_AURA; // for an unknown reason this was SPELL_EFFECT_APPLY_AREA_AURA_RAID
break;
// THIS IS HERE BECAUSE COOLDOWN ON CREATURE PROCS IS NOT IMPLEMENTED
case 71604: // Mutated Strength (Professor Putricide)
case 72673: // Mutated Strength (Professor Putricide)
case 72674: // Mutated Strength (Professor Putricide)
case 72675: // Mutated Strength (Professor Putricide)
- spellInfo->Effect[1] = 0;
+ spellInfo->Effects[EFFECT_1].Effect = 0;
break;
case 72454: // Mutated Plague (Professor Putricide)
case 72464: // Mutated Plague (Professor Putricide)
case 72506: // Mutated Plague (Professor Putricide)
case 72507: // Mutated Plague (Professor Putricide)
- spellInfo->EffectRadiusIndex[0] = EFFECT_RADIUS_50000_YARDS; // 50000yd
+ spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_50000_YARDS); // 50000yd
break;
case 70911: // Unbound Plague (Professor Putricide) (needs target selection script)
case 72854: // Unbound Plague (Professor Putricide) (needs target selection script)
case 72855: // Unbound Plague (Professor Putricide) (needs target selection script)
case 72856: // Unbound Plague (Professor Putricide) (needs target selection script)
- spellInfo->EffectImplicitTargetB[0] = TARGET_UNIT_TARGET_ENEMY;
+ spellInfo->Effects[EFFECT_0].TargetB = SpellImplicitTargetInfo(TARGET_UNIT_TARGET_ENEMY);
break;
case 71518: // Unholy Infusion Quest Credit (Professor Putricide)
case 72934: // Blood Infusion Quest Credit (Blood-Queen Lana'thel)
case 72289: // Frost Infusion Quest Credit (Sindragosa)
- spellInfo->EffectRadiusIndex[0] = EFFECT_RADIUS_200_YARDS; // another missing radius
+ spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_200_YARDS); // another missing radius
break;
case 71708: // Empowered Flare (Blood Prince Council)
case 72785: // Empowered Flare (Blood Prince Council)
@@ -3472,98 +3559,98 @@ void SpellMgr::LoadDbcDataCorrections()
spellInfo->AttributesEx3 |= SPELL_ATTR3_STACK_FOR_DIFF_CASTERS;
break;
case 70715: // Column of Frost (visual marker)
- spellInfo->DurationIndex = 32; // 6 seconds (missing)
+ spellInfo->DurationEntry = sSpellDurationStore.LookupEntry(32); // 6 seconds (missing)
break;
case 71085: // Mana Void (periodic aura)
- spellInfo->DurationIndex = 9; // 30 seconds (missing)
+ spellInfo->DurationEntry = sSpellDurationStore.LookupEntry(9); // 30 seconds (missing)
break;
case 72015: // Frostbolt Volley (only heroic)
case 72016: // Frostbolt Volley (only heroic)
- spellInfo->EffectRadiusIndex[2] = EFFECT_RADIUS_40_YARDS;
+ spellInfo->Effects[EFFECT_2].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_40_YARDS);
break;
case 70936: // Summon Suppressor (needs target selection script)
- spellInfo->EffectImplicitTargetA[0] = TARGET_UNIT_TARGET_ANY;
- spellInfo->EffectImplicitTargetB[0] = 0;
+ spellInfo->Effects[EFFECT_0].TargetA = SpellImplicitTargetInfo(TARGET_UNIT_TARGET_ANY);
+ spellInfo->Effects[EFFECT_0].TargetB = SpellImplicitTargetInfo();
break;
case 72706: // Achievement Check (Valithria Dreamwalker)
case 71357: // Order Whelp
- spellInfo->EffectRadiusIndex[0] = EFFECT_RADIUS_200_YARDS; // 200yd
+ spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_200_YARDS); // 200yd
break;
case 70598: // Sindragosa's Fury
- spellInfo->EffectImplicitTargetA[0] = TARGET_DEST_DEST;
+ spellInfo->Effects[EFFECT_0].TargetA = SpellImplicitTargetInfo(TARGET_DEST_DEST);
break;
case 69846: // Frost Bomb
- spellInfo->speed = 0.0f; // This spell's summon happens instantly
+ spellInfo->Speed = 0.0f; // This spell's summon happens instantly
break;
case 71614: // Ice Lock
spellInfo->Mechanic = MECHANIC_STUN;
break;
case 72762: // Defile
- spellInfo->DurationIndex = 559; // 53 seconds
+ spellInfo->DurationEntry = sSpellDurationStore.LookupEntry(559); // 53 seconds
break;
case 72743: // Defile
- spellInfo->DurationIndex = 22; // 45 seconds
+ spellInfo->DurationEntry = sSpellDurationStore.LookupEntry(22); // 45 seconds
break;
case 72754: // Defile
case 73708: // Defile
case 73709: // Defile
case 73710: // Defile
- spellInfo->EffectRadiusIndex[0] = EFFECT_RADIUS_200_YARDS; // 200yd
- spellInfo->EffectRadiusIndex[1] = EFFECT_RADIUS_200_YARDS; // 200yd
+ spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_200_YARDS); // 200yd
+ spellInfo->Effects[EFFECT_1].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_200_YARDS); // 200yd
break;
case 69030: // Val'kyr Target Search
- spellInfo->EffectRadiusIndex[0] = EFFECT_RADIUS_200_YARDS; // 200yd
- spellInfo->EffectRadiusIndex[1] = EFFECT_RADIUS_200_YARDS; // 200yd
+ spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_200_YARDS); // 200yd
+ spellInfo->Effects[EFFECT_1].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_200_YARDS); // 200yd
break;
case 69198: // Raging Spirit Visual
- spellInfo->rangeIndex = 13; // 50000yd
+ spellInfo->RangeEntry = sSpellRangeStore.LookupEntry(13); // 50000yd
break;
case 73654: // Harvest Souls
case 74295: // Harvest Souls
case 74296: // Harvest Souls
case 74297: // Harvest Souls
- spellInfo->EffectRadiusIndex[0] = EFFECT_RADIUS_50000_YARDS; // 50000yd
- spellInfo->EffectRadiusIndex[1] = EFFECT_RADIUS_50000_YARDS; // 50000yd
- spellInfo->EffectRadiusIndex[2] = EFFECT_RADIUS_50000_YARDS; // 50000yd
+ spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_50000_YARDS); // 50000yd
+ spellInfo->Effects[EFFECT_1].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_50000_YARDS); // 50000yd
+ spellInfo->Effects[EFFECT_2].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_50000_YARDS); // 50000yd
break;
case 73655: // Harvest Soul
spellInfo->AttributesEx3 |= SPELL_ATTR3_NO_DONE_BONUS;
break;
case 73540: // Summon Shadow Trap
- spellInfo->DurationIndex = 23; // 90 seconds
+ spellInfo->DurationEntry = sSpellDurationStore.LookupEntry(23); // 90 seconds
break;
case 73530: // Shadow Trap (visual)
- spellInfo->DurationIndex = 28; // 5 seconds
+ spellInfo->DurationEntry = sSpellDurationStore.LookupEntry(28); // 5 seconds
break;
case 73529: // Shadow Trap
- spellInfo->EffectRadiusIndex[1] = EFFECT_RADIUS_10_YARDS; // 10yd
+ spellInfo->Effects[EFFECT_1].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_10_YARDS); // 10yd
break;
case 74282: // Shadow Trap (searcher)
- spellInfo->EffectRadiusIndex[0] = EFFECT_RADIUS_3_YARDS; // 3yd
+ spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_3_YARDS); // 3yd
break;
case 72595: // Restore Soul
case 73650: // Restore Soul
- spellInfo->EffectRadiusIndex[0] = EFFECT_RADIUS_200_YARDS; // 200yd
+ spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_200_YARDS); // 200yd
break;
case 74086: // Destroy Soul
- spellInfo->EffectRadiusIndex[0] = EFFECT_RADIUS_200_YARDS; // 200yd
+ spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_200_YARDS); // 200yd
break;
case 74302: // Summon Spirit Bomb
case 74342: // Summon Spirit Bomb
- spellInfo->EffectRadiusIndex[0] = EFFECT_RADIUS_200_YARDS; // 200yd
+ spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_200_YARDS); // 200yd
spellInfo->MaxAffectedTargets = 1;
break;
case 74341: // Summon Spirit Bomb
case 74343: // Summon Spirit Bomb
- spellInfo->EffectRadiusIndex[0] = EFFECT_RADIUS_200_YARDS; // 200yd
+ spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_200_YARDS); // 200yd
spellInfo->MaxAffectedTargets = 3;
break;
case 73579: // Summon Spirit Bomb
- spellInfo->EffectRadiusIndex[0] = EFFECT_RADIUS_25_YARDS; // 25yd
+ spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_25_YARDS); // 25yd
break;
case 72350: // Fury of Frostmourne
- spellInfo->EffectRadiusIndex[0] = EFFECT_RADIUS_50000_YARDS; // 50000yd
- spellInfo->EffectRadiusIndex[1] = EFFECT_RADIUS_50000_YARDS; // 50000yd
+ spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_50000_YARDS); // 50000yd
+ spellInfo->Effects[EFFECT_1].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_50000_YARDS); // 50000yd
break;
case 75127: // Kill Frostmourne Players
case 72351: // Fury of Frostmourne
@@ -3571,18 +3658,18 @@ void SpellMgr::LoadDbcDataCorrections()
case 72429: // Mass Resurrection
case 73159: // Play Movie
case 73582: // Trigger Vile Spirit (Inside, Heroic)
- spellInfo->EffectRadiusIndex[0] = EFFECT_RADIUS_50000_YARDS; // 50000yd
+ spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_50000_YARDS); // 50000yd
break;
case 72376: // Raise Dead
spellInfo->MaxAffectedTargets = 3;
- spellInfo->EffectRadiusIndex[0] = EFFECT_RADIUS_50000_YARDS; // 50000yd
+ spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_50000_YARDS); // 50000yd
break;
case 71809: // Jump
- spellInfo->rangeIndex = 3; // 20yd
- spellInfo->EffectRadiusIndex[0] = EFFECT_RADIUS_25_YARDS; // 25yd
+ spellInfo->RangeEntry = sSpellRangeStore.LookupEntry(3); // 20yd
+ spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_25_YARDS); // 25yd
break;
case 72405: // Broken Frostmourne
- spellInfo->EffectRadiusIndex[1] = EFFECT_RADIUS_200_YARDS; // 200yd
+ spellInfo->Effects[EFFECT_1].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_200_YARDS); // 200yd
break;
// ENDOF ICECROWN CITADEL SPELLS
//
@@ -3592,7 +3679,7 @@ void SpellMgr::LoadDbcDataCorrections()
case 77844: // Twilight Cutter
case 77845: // Twilight Cutter
case 77846: // Twilight Cutter
- spellInfo->EffectRadiusIndex[0] = EFFECT_RADIUS_100_YARDS; // 100yd
+ spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_100_YARDS); // 100yd
break;
case 75509: // Twilight Mending
spellInfo->AttributesEx6 |= SPELL_ATTR6_CAN_TARGET_INVISIBLE;
@@ -3629,7 +3716,7 @@ void SpellMgr::LoadDbcDataCorrections()
case 49462: // Call Ruby Drake
case 49461: // Call Amber Drake
case 49345: // Call Emerald Drake
- spellInfo->Effect[1] = 0;
+ spellInfo->Effects[EFFECT_1].Effect = 0;
break;
// ENDOF OCULUS SPELLS
//
@@ -3640,11 +3727,11 @@ void SpellMgr::LoadDbcDataCorrections()
spellInfo->Attributes |= SPELL_ATTR0_NEGATIVE_1;
break;
case 45524: // Chains of Ice
- spellInfo->EffectImplicitTargetA[EFFECT_2] = 0;
+ spellInfo->Effects[EFFECT_2].TargetA = SpellImplicitTargetInfo();
break;
case 2378: // Minor Fortitude
- spellInfo->manaCost = 0;
- spellInfo->manaPerSecond = 0;
+ spellInfo->ManaCost = 0;
+ spellInfo->ManaPerSecond = 0;
break;
case 24314: // Threatening Gaze
spellInfo->AuraInterruptFlags |= AURA_INTERRUPT_FLAG_CAST | AURA_INTERRUPT_FLAG_MOVE | AURA_INTERRUPT_FLAG_JUMP;
@@ -3657,7 +3744,7 @@ void SpellMgr::LoadDbcDataCorrections()
case SPELLFAMILY_PALADIN:
// Seals of the Pure should affect Seal of Righteousness
if (spellInfo->SpellIconID == 25 && spellInfo->Attributes & SPELL_ATTR0_PASSIVE)
- spellInfo->EffectSpellClassMask[0][1] |= 0x20000000;
+ spellInfo->Effects[EFFECT_0].SpellClassMask[1] |= 0x20000000;
break;
case SPELLFAMILY_DEATHKNIGHT:
// Icy Touch - extend FamilyFlags (unused value) for Sigil of the Frozen Conscience to use
@@ -3672,5 +3759,5 @@ void SpellMgr::LoadDbcDataCorrections()
properties = const_cast<SummonPropertiesEntry*>(sSummonPropertiesStore.LookupEntry(647)); // 52893
properties->Type = SUMMON_TYPE_TOTEM;
- TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, ">> Loaded spell dbc data corrections in %u ms", GetMSTimeDiffToNow(oldMSTime));
+ TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, ">> Loaded SpellInfo corrections in %u ms", GetMSTimeDiffToNow(oldMSTime));
}
diff --git a/src/server/game/Spells/SpellMgr.h b/src/server/game/Spells/SpellMgr.h
index b7a3294efe3..677a6e2f758 100644
--- a/src/server/game/Spells/SpellMgr.h
+++ b/src/server/game/Spells/SpellMgr.h
@@ -692,10 +692,15 @@ class SpellMgr
SpellInfo const* GetSpellInfo(uint32 spellId) const { return spellId < GetSpellInfoStoreSize() ? mSpellInfoMap[spellId] : NULL; }
uint32 GetSpellInfoStoreSize() const { return mSpellInfoMap.size(); }
+ private:
+ SpellInfo* _GetSpellInfo(uint32 spellId) { return spellId < GetSpellInfoStoreSize() ? mSpellInfoMap[spellId] : NULL; }
+
// Modifiers
public:
// Loading data at server startup
+ void UnloadSpellInfoChains();
+ void LoadSpellTalentRanks();
void LoadSpellRanks();
void LoadSpellRequired();
void LoadSpellLearnSkills();
@@ -718,8 +723,8 @@ class SpellMgr
void LoadSpellInfoStore();
void UnloadSpellInfoStore();
void UnloadSpellInfoImplicitTargetConditionLists();
- void LoadSpellCustomAttr();
- void LoadDbcDataCorrections();
+ void LoadSpellInfoCustomAttributes();
+ void LoadSpellInfoCorrections();
private:
SpellDifficultySearcherMap mSpellDifficultySearcherMap;
diff --git a/src/server/game/Spells/SpellScript.cpp b/src/server/game/Spells/SpellScript.cpp
index 404c62efb53..5fb4d69cd02 100644
--- a/src/server/game/Spells/SpellScript.cpp
+++ b/src/server/game/Spells/SpellScript.cpp
@@ -136,7 +136,7 @@ bool _SpellScript::EffectAuraNameCheck::Check(SpellInfo const* spellEntry, uint8
return true;
if (!spellEntry->Effects[effIndex].ApplyAuraName)
return false;
- return (effAurName == SPELL_EFFECT_ANY) || (spellEntry->Effects[effIndex].ApplyAuraName == effAurName);
+ return (effAurName == SPELL_AURA_ANY) || (spellEntry->Effects[effIndex].ApplyAuraName == effAurName);
}
std::string _SpellScript::EffectAuraNameCheck::ToString()
diff --git a/src/server/game/Texts/CreatureTextMgr.cpp b/src/server/game/Texts/CreatureTextMgr.cpp
index 5844a120e47..06989544f55 100644
--- a/src/server/game/Texts/CreatureTextMgr.cpp
+++ b/src/server/game/Texts/CreatureTextMgr.cpp
@@ -377,8 +377,8 @@ void CreatureTextMgr::SendNonChatPacket(WorldObject* source, WorldPacket* data,
uint32 areaId = source->GetAreaId();
Map::PlayerList const& players = source->GetMap()->GetPlayers();
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
- if (itr->getSource()->GetAreaId() == areaId && (!team || Team(itr->getSource()->GetTeam()) == team) && (!gmOnly || itr->getSource()->isGameMaster()))
- itr->getSource()->GetSession()->SendPacket(data);
+ if (itr->GetSource()->GetAreaId() == areaId && (!team || Team(itr->GetSource()->GetTeam()) == team) && (!gmOnly || itr->GetSource()->IsGameMaster()))
+ itr->GetSource()->GetSession()->SendPacket(data);
return;
}
case TEXT_RANGE_ZONE:
@@ -386,16 +386,16 @@ void CreatureTextMgr::SendNonChatPacket(WorldObject* source, WorldPacket* data,
uint32 zoneId = source->GetZoneId();
Map::PlayerList const& players = source->GetMap()->GetPlayers();
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
- if (itr->getSource()->GetZoneId() == zoneId && (!team || Team(itr->getSource()->GetTeam()) == team) && (!gmOnly || itr->getSource()->isGameMaster()))
- itr->getSource()->GetSession()->SendPacket(data);
+ if (itr->GetSource()->GetZoneId() == zoneId && (!team || Team(itr->GetSource()->GetTeam()) == team) && (!gmOnly || itr->GetSource()->IsGameMaster()))
+ itr->GetSource()->GetSession()->SendPacket(data);
return;
}
case TEXT_RANGE_MAP:
{
Map::PlayerList const& players = source->GetMap()->GetPlayers();
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
- if ((!team || Team(itr->getSource()->GetTeam()) == team) && (!gmOnly || itr->getSource()->isGameMaster()))
- itr->getSource()->GetSession()->SendPacket(data);
+ if ((!team || Team(itr->GetSource()->GetTeam()) == team) && (!gmOnly || itr->GetSource()->IsGameMaster()))
+ itr->GetSource()->GetSession()->SendPacket(data);
return;
}
case TEXT_RANGE_WORLD:
@@ -403,7 +403,7 @@ void CreatureTextMgr::SendNonChatPacket(WorldObject* source, WorldPacket* data,
SessionMap const& smap = sWorld->GetAllSessions();
for (SessionMap::const_iterator iter = smap.begin(); iter != smap.end(); ++iter)
if (Player* player = iter->second->GetPlayer())
- if (player->GetSession() && (!team || Team(player->GetTeam()) == team) && (!gmOnly || player->isGameMaster()))
+ if (player->GetSession() && (!team || Team(player->GetTeam()) == team) && (!gmOnly || player->IsGameMaster()))
player->GetSession()->SendPacket(data);
return;
}
diff --git a/src/server/game/Texts/CreatureTextMgr.h b/src/server/game/Texts/CreatureTextMgr.h
index 6edcbf9a88a..c32e35e8770 100644
--- a/src/server/game/Texts/CreatureTextMgr.h
+++ b/src/server/game/Texts/CreatureTextMgr.h
@@ -207,8 +207,8 @@ void CreatureTextMgr::SendChatPacket(WorldObject* source, Builder const& builder
uint32 areaId = source->GetAreaId();
Map::PlayerList const& players = source->GetMap()->GetPlayers();
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
- if (itr->getSource()->GetAreaId() == areaId && (!team || Team(itr->getSource()->GetTeam()) == team) && (!gmOnly || itr->getSource()->isGameMaster()))
- localizer(itr->getSource());
+ if (itr->GetSource()->GetAreaId() == areaId && (!team || Team(itr->GetSource()->GetTeam()) == team) && (!gmOnly || itr->GetSource()->IsGameMaster()))
+ localizer(itr->GetSource());
return;
}
case TEXT_RANGE_ZONE:
@@ -216,16 +216,16 @@ void CreatureTextMgr::SendChatPacket(WorldObject* source, Builder const& builder
uint32 zoneId = source->GetZoneId();
Map::PlayerList const& players = source->GetMap()->GetPlayers();
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
- if (itr->getSource()->GetZoneId() == zoneId && (!team || Team(itr->getSource()->GetTeam()) == team) && (!gmOnly || itr->getSource()->isGameMaster()))
- localizer(itr->getSource());
+ if (itr->GetSource()->GetZoneId() == zoneId && (!team || Team(itr->GetSource()->GetTeam()) == team) && (!gmOnly || itr->GetSource()->IsGameMaster()))
+ localizer(itr->GetSource());
return;
}
case TEXT_RANGE_MAP:
{
Map::PlayerList const& players = source->GetMap()->GetPlayers();
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
- if ((!team || Team(itr->getSource()->GetTeam()) == team) && (!gmOnly || itr->getSource()->isGameMaster()))
- localizer(itr->getSource());
+ if ((!team || Team(itr->GetSource()->GetTeam()) == team) && (!gmOnly || itr->GetSource()->IsGameMaster()))
+ localizer(itr->GetSource());
return;
}
case TEXT_RANGE_WORLD:
@@ -233,7 +233,7 @@ void CreatureTextMgr::SendChatPacket(WorldObject* source, Builder const& builder
SessionMap const& smap = sWorld->GetAllSessions();
for (SessionMap::const_iterator iter = smap.begin(); iter != smap.end(); ++iter)
if (Player* player = iter->second->GetPlayer())
- if (player->GetSession() && (!team || Team(player->GetTeam()) == team) && (!gmOnly || player->isGameMaster()))
+ if (player->GetSession() && (!team || Team(player->GetTeam()) == team) && (!gmOnly || player->IsGameMaster()))
localizer(player);
return;
}
diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp
index 870f749aa07..410fbee9931 100644
--- a/src/server/game/World/World.cpp
+++ b/src/server/game/World/World.cpp
@@ -397,123 +397,123 @@ void World::LoadConfigSettings(bool reload)
{
if (reload)
{
- if (!ConfigMgr::Load())
+ if (!sConfigMgr->Reload())
{
- TC_LOG_ERROR(LOG_FILTER_GENERAL, "World settings reload fail: can't read settings from %s.", ConfigMgr::GetFilename().c_str());
+ TC_LOG_ERROR(LOG_FILTER_GENERAL, "World settings reload fail: can't read settings from %s.", sConfigMgr->GetFilename().c_str());
return;
}
sLog->LoadFromConfig();
}
///- Read the player limit and the Message of the day from the config file
- SetPlayerAmountLimit(ConfigMgr::GetIntDefault("PlayerLimit", 100));
- SetMotd(ConfigMgr::GetStringDefault("Motd", "Welcome to a Trinity Core Server."));
+ SetPlayerAmountLimit(sConfigMgr->GetIntDefault("PlayerLimit", 100));
+ SetMotd(sConfigMgr->GetStringDefault("Motd", "Welcome to a Trinity Core Server."));
///- Read ticket system setting from the config file
- m_bool_configs[CONFIG_ALLOW_TICKETS] = ConfigMgr::GetBoolDefault("AllowTickets", true);
+ m_bool_configs[CONFIG_ALLOW_TICKETS] = sConfigMgr->GetBoolDefault("AllowTickets", true);
///- Get string for new logins (newly created characters)
- SetNewCharString(ConfigMgr::GetStringDefault("PlayerStart.String", ""));
+ SetNewCharString(sConfigMgr->GetStringDefault("PlayerStart.String", ""));
///- Send server info on login?
- m_int_configs[CONFIG_ENABLE_SINFO_LOGIN] = ConfigMgr::GetIntDefault("Server.LoginInfo", 0);
+ m_int_configs[CONFIG_ENABLE_SINFO_LOGIN] = sConfigMgr->GetIntDefault("Server.LoginInfo", 0);
///- Read all rates from the config file
- rate_values[RATE_HEALTH] = ConfigMgr::GetFloatDefault("Rate.Health", 1);
+ rate_values[RATE_HEALTH] = sConfigMgr->GetFloatDefault("Rate.Health", 1);
if (rate_values[RATE_HEALTH] < 0)
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "Rate.Health (%f) must be > 0. Using 1 instead.", rate_values[RATE_HEALTH]);
rate_values[RATE_HEALTH] = 1;
}
- rate_values[RATE_POWER_MANA] = ConfigMgr::GetFloatDefault("Rate.Mana", 1);
+ rate_values[RATE_POWER_MANA] = sConfigMgr->GetFloatDefault("Rate.Mana", 1);
if (rate_values[RATE_POWER_MANA] < 0)
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "Rate.Mana (%f) must be > 0. Using 1 instead.", rate_values[RATE_POWER_MANA]);
rate_values[RATE_POWER_MANA] = 1;
}
- rate_values[RATE_POWER_RAGE_INCOME] = ConfigMgr::GetFloatDefault("Rate.Rage.Income", 1);
- rate_values[RATE_POWER_RAGE_LOSS] = ConfigMgr::GetFloatDefault("Rate.Rage.Loss", 1);
+ rate_values[RATE_POWER_RAGE_INCOME] = sConfigMgr->GetFloatDefault("Rate.Rage.Income", 1);
+ rate_values[RATE_POWER_RAGE_LOSS] = sConfigMgr->GetFloatDefault("Rate.Rage.Loss", 1);
if (rate_values[RATE_POWER_RAGE_LOSS] < 0)
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "Rate.Rage.Loss (%f) must be > 0. Using 1 instead.", rate_values[RATE_POWER_RAGE_LOSS]);
rate_values[RATE_POWER_RAGE_LOSS] = 1;
}
- rate_values[RATE_POWER_RUNICPOWER_INCOME] = ConfigMgr::GetFloatDefault("Rate.RunicPower.Income", 1);
- rate_values[RATE_POWER_RUNICPOWER_LOSS] = ConfigMgr::GetFloatDefault("Rate.RunicPower.Loss", 1);
+ rate_values[RATE_POWER_RUNICPOWER_INCOME] = sConfigMgr->GetFloatDefault("Rate.RunicPower.Income", 1);
+ rate_values[RATE_POWER_RUNICPOWER_LOSS] = sConfigMgr->GetFloatDefault("Rate.RunicPower.Loss", 1);
if (rate_values[RATE_POWER_RUNICPOWER_LOSS] < 0)
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "Rate.RunicPower.Loss (%f) must be > 0. Using 1 instead.", rate_values[RATE_POWER_RUNICPOWER_LOSS]);
rate_values[RATE_POWER_RUNICPOWER_LOSS] = 1;
}
- rate_values[RATE_POWER_FOCUS] = ConfigMgr::GetFloatDefault("Rate.Focus", 1.0f);
- rate_values[RATE_POWER_ENERGY] = ConfigMgr::GetFloatDefault("Rate.Energy", 1.0f);
-
- rate_values[RATE_SKILL_DISCOVERY] = ConfigMgr::GetFloatDefault("Rate.Skill.Discovery", 1.0f);
-
- rate_values[RATE_DROP_ITEM_POOR] = ConfigMgr::GetFloatDefault("Rate.Drop.Item.Poor", 1.0f);
- rate_values[RATE_DROP_ITEM_NORMAL] = ConfigMgr::GetFloatDefault("Rate.Drop.Item.Normal", 1.0f);
- rate_values[RATE_DROP_ITEM_UNCOMMON] = ConfigMgr::GetFloatDefault("Rate.Drop.Item.Uncommon", 1.0f);
- rate_values[RATE_DROP_ITEM_RARE] = ConfigMgr::GetFloatDefault("Rate.Drop.Item.Rare", 1.0f);
- rate_values[RATE_DROP_ITEM_EPIC] = ConfigMgr::GetFloatDefault("Rate.Drop.Item.Epic", 1.0f);
- rate_values[RATE_DROP_ITEM_LEGENDARY] = ConfigMgr::GetFloatDefault("Rate.Drop.Item.Legendary", 1.0f);
- rate_values[RATE_DROP_ITEM_ARTIFACT] = ConfigMgr::GetFloatDefault("Rate.Drop.Item.Artifact", 1.0f);
- rate_values[RATE_DROP_ITEM_REFERENCED] = ConfigMgr::GetFloatDefault("Rate.Drop.Item.Referenced", 1.0f);
- rate_values[RATE_DROP_ITEM_REFERENCED_AMOUNT] = ConfigMgr::GetFloatDefault("Rate.Drop.Item.ReferencedAmount", 1.0f);
- rate_values[RATE_DROP_MONEY] = ConfigMgr::GetFloatDefault("Rate.Drop.Money", 1.0f);
- rate_values[RATE_XP_KILL] = ConfigMgr::GetFloatDefault("Rate.XP.Kill", 1.0f);
- rate_values[RATE_XP_QUEST] = ConfigMgr::GetFloatDefault("Rate.XP.Quest", 1.0f);
- rate_values[RATE_XP_EXPLORE] = ConfigMgr::GetFloatDefault("Rate.XP.Explore", 1.0f);
- rate_values[RATE_REPAIRCOST] = ConfigMgr::GetFloatDefault("Rate.RepairCost", 1.0f);
+ rate_values[RATE_POWER_FOCUS] = sConfigMgr->GetFloatDefault("Rate.Focus", 1.0f);
+ rate_values[RATE_POWER_ENERGY] = sConfigMgr->GetFloatDefault("Rate.Energy", 1.0f);
+
+ rate_values[RATE_SKILL_DISCOVERY] = sConfigMgr->GetFloatDefault("Rate.Skill.Discovery", 1.0f);
+
+ rate_values[RATE_DROP_ITEM_POOR] = sConfigMgr->GetFloatDefault("Rate.Drop.Item.Poor", 1.0f);
+ rate_values[RATE_DROP_ITEM_NORMAL] = sConfigMgr->GetFloatDefault("Rate.Drop.Item.Normal", 1.0f);
+ rate_values[RATE_DROP_ITEM_UNCOMMON] = sConfigMgr->GetFloatDefault("Rate.Drop.Item.Uncommon", 1.0f);
+ rate_values[RATE_DROP_ITEM_RARE] = sConfigMgr->GetFloatDefault("Rate.Drop.Item.Rare", 1.0f);
+ rate_values[RATE_DROP_ITEM_EPIC] = sConfigMgr->GetFloatDefault("Rate.Drop.Item.Epic", 1.0f);
+ rate_values[RATE_DROP_ITEM_LEGENDARY] = sConfigMgr->GetFloatDefault("Rate.Drop.Item.Legendary", 1.0f);
+ rate_values[RATE_DROP_ITEM_ARTIFACT] = sConfigMgr->GetFloatDefault("Rate.Drop.Item.Artifact", 1.0f);
+ rate_values[RATE_DROP_ITEM_REFERENCED] = sConfigMgr->GetFloatDefault("Rate.Drop.Item.Referenced", 1.0f);
+ rate_values[RATE_DROP_ITEM_REFERENCED_AMOUNT] = sConfigMgr->GetFloatDefault("Rate.Drop.Item.ReferencedAmount", 1.0f);
+ rate_values[RATE_DROP_MONEY] = sConfigMgr->GetFloatDefault("Rate.Drop.Money", 1.0f);
+ rate_values[RATE_XP_KILL] = sConfigMgr->GetFloatDefault("Rate.XP.Kill", 1.0f);
+ rate_values[RATE_XP_QUEST] = sConfigMgr->GetFloatDefault("Rate.XP.Quest", 1.0f);
+ rate_values[RATE_XP_EXPLORE] = sConfigMgr->GetFloatDefault("Rate.XP.Explore", 1.0f);
+ rate_values[RATE_REPAIRCOST] = sConfigMgr->GetFloatDefault("Rate.RepairCost", 1.0f);
if (rate_values[RATE_REPAIRCOST] < 0.0f)
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "Rate.RepairCost (%f) must be >=0. Using 0.0 instead.", rate_values[RATE_REPAIRCOST]);
rate_values[RATE_REPAIRCOST] = 0.0f;
}
- rate_values[RATE_REPUTATION_GAIN] = ConfigMgr::GetFloatDefault("Rate.Reputation.Gain", 1.0f);
- rate_values[RATE_REPUTATION_LOWLEVEL_KILL] = ConfigMgr::GetFloatDefault("Rate.Reputation.LowLevel.Kill", 1.0f);
- rate_values[RATE_REPUTATION_LOWLEVEL_QUEST] = ConfigMgr::GetFloatDefault("Rate.Reputation.LowLevel.Quest", 1.0f);
- rate_values[RATE_REPUTATION_RECRUIT_A_FRIEND_BONUS] = ConfigMgr::GetFloatDefault("Rate.Reputation.RecruitAFriendBonus", 0.1f);
- rate_values[RATE_CREATURE_NORMAL_DAMAGE] = ConfigMgr::GetFloatDefault("Rate.Creature.Normal.Damage", 1.0f);
- rate_values[RATE_CREATURE_ELITE_ELITE_DAMAGE] = ConfigMgr::GetFloatDefault("Rate.Creature.Elite.Elite.Damage", 1.0f);
- rate_values[RATE_CREATURE_ELITE_RAREELITE_DAMAGE] = ConfigMgr::GetFloatDefault("Rate.Creature.Elite.RAREELITE.Damage", 1.0f);
- rate_values[RATE_CREATURE_ELITE_WORLDBOSS_DAMAGE] = ConfigMgr::GetFloatDefault("Rate.Creature.Elite.WORLDBOSS.Damage", 1.0f);
- rate_values[RATE_CREATURE_ELITE_RARE_DAMAGE] = ConfigMgr::GetFloatDefault("Rate.Creature.Elite.RARE.Damage", 1.0f);
- rate_values[RATE_CREATURE_NORMAL_HP] = ConfigMgr::GetFloatDefault("Rate.Creature.Normal.HP", 1.0f);
- rate_values[RATE_CREATURE_ELITE_ELITE_HP] = ConfigMgr::GetFloatDefault("Rate.Creature.Elite.Elite.HP", 1.0f);
- rate_values[RATE_CREATURE_ELITE_RAREELITE_HP] = ConfigMgr::GetFloatDefault("Rate.Creature.Elite.RAREELITE.HP", 1.0f);
- rate_values[RATE_CREATURE_ELITE_WORLDBOSS_HP] = ConfigMgr::GetFloatDefault("Rate.Creature.Elite.WORLDBOSS.HP", 1.0f);
- rate_values[RATE_CREATURE_ELITE_RARE_HP] = ConfigMgr::GetFloatDefault("Rate.Creature.Elite.RARE.HP", 1.0f);
- rate_values[RATE_CREATURE_NORMAL_SPELLDAMAGE] = ConfigMgr::GetFloatDefault("Rate.Creature.Normal.SpellDamage", 1.0f);
- rate_values[RATE_CREATURE_ELITE_ELITE_SPELLDAMAGE] = ConfigMgr::GetFloatDefault("Rate.Creature.Elite.Elite.SpellDamage", 1.0f);
- rate_values[RATE_CREATURE_ELITE_RAREELITE_SPELLDAMAGE] = ConfigMgr::GetFloatDefault("Rate.Creature.Elite.RAREELITE.SpellDamage", 1.0f);
- rate_values[RATE_CREATURE_ELITE_WORLDBOSS_SPELLDAMAGE] = ConfigMgr::GetFloatDefault("Rate.Creature.Elite.WORLDBOSS.SpellDamage", 1.0f);
- rate_values[RATE_CREATURE_ELITE_RARE_SPELLDAMAGE] = ConfigMgr::GetFloatDefault("Rate.Creature.Elite.RARE.SpellDamage", 1.0f);
- rate_values[RATE_CREATURE_AGGRO] = ConfigMgr::GetFloatDefault("Rate.Creature.Aggro", 1.0f);
- rate_values[RATE_REST_INGAME] = ConfigMgr::GetFloatDefault("Rate.Rest.InGame", 1.0f);
- rate_values[RATE_REST_OFFLINE_IN_TAVERN_OR_CITY] = ConfigMgr::GetFloatDefault("Rate.Rest.Offline.InTavernOrCity", 1.0f);
- rate_values[RATE_REST_OFFLINE_IN_WILDERNESS] = ConfigMgr::GetFloatDefault("Rate.Rest.Offline.InWilderness", 1.0f);
- rate_values[RATE_DAMAGE_FALL] = ConfigMgr::GetFloatDefault("Rate.Damage.Fall", 1.0f);
- rate_values[RATE_AUCTION_TIME] = ConfigMgr::GetFloatDefault("Rate.Auction.Time", 1.0f);
- rate_values[RATE_AUCTION_DEPOSIT] = ConfigMgr::GetFloatDefault("Rate.Auction.Deposit", 1.0f);
- rate_values[RATE_AUCTION_CUT] = ConfigMgr::GetFloatDefault("Rate.Auction.Cut", 1.0f);
- rate_values[RATE_HONOR] = ConfigMgr::GetFloatDefault("Rate.Honor", 1.0f);
- rate_values[RATE_INSTANCE_RESET_TIME] = ConfigMgr::GetFloatDefault("Rate.InstanceResetTime", 1.0f);
- rate_values[RATE_TALENT] = ConfigMgr::GetFloatDefault("Rate.Talent", 1.0f);
+ rate_values[RATE_REPUTATION_GAIN] = sConfigMgr->GetFloatDefault("Rate.Reputation.Gain", 1.0f);
+ rate_values[RATE_REPUTATION_LOWLEVEL_KILL] = sConfigMgr->GetFloatDefault("Rate.Reputation.LowLevel.Kill", 1.0f);
+ rate_values[RATE_REPUTATION_LOWLEVEL_QUEST] = sConfigMgr->GetFloatDefault("Rate.Reputation.LowLevel.Quest", 1.0f);
+ rate_values[RATE_REPUTATION_RECRUIT_A_FRIEND_BONUS] = sConfigMgr->GetFloatDefault("Rate.Reputation.RecruitAFriendBonus", 0.1f);
+ rate_values[RATE_CREATURE_NORMAL_DAMAGE] = sConfigMgr->GetFloatDefault("Rate.Creature.Normal.Damage", 1.0f);
+ rate_values[RATE_CREATURE_ELITE_ELITE_DAMAGE] = sConfigMgr->GetFloatDefault("Rate.Creature.Elite.Elite.Damage", 1.0f);
+ rate_values[RATE_CREATURE_ELITE_RAREELITE_DAMAGE] = sConfigMgr->GetFloatDefault("Rate.Creature.Elite.RAREELITE.Damage", 1.0f);
+ rate_values[RATE_CREATURE_ELITE_WORLDBOSS_DAMAGE] = sConfigMgr->GetFloatDefault("Rate.Creature.Elite.WORLDBOSS.Damage", 1.0f);
+ rate_values[RATE_CREATURE_ELITE_RARE_DAMAGE] = sConfigMgr->GetFloatDefault("Rate.Creature.Elite.RARE.Damage", 1.0f);
+ rate_values[RATE_CREATURE_NORMAL_HP] = sConfigMgr->GetFloatDefault("Rate.Creature.Normal.HP", 1.0f);
+ rate_values[RATE_CREATURE_ELITE_ELITE_HP] = sConfigMgr->GetFloatDefault("Rate.Creature.Elite.Elite.HP", 1.0f);
+ rate_values[RATE_CREATURE_ELITE_RAREELITE_HP] = sConfigMgr->GetFloatDefault("Rate.Creature.Elite.RAREELITE.HP", 1.0f);
+ rate_values[RATE_CREATURE_ELITE_WORLDBOSS_HP] = sConfigMgr->GetFloatDefault("Rate.Creature.Elite.WORLDBOSS.HP", 1.0f);
+ rate_values[RATE_CREATURE_ELITE_RARE_HP] = sConfigMgr->GetFloatDefault("Rate.Creature.Elite.RARE.HP", 1.0f);
+ rate_values[RATE_CREATURE_NORMAL_SPELLDAMAGE] = sConfigMgr->GetFloatDefault("Rate.Creature.Normal.SpellDamage", 1.0f);
+ rate_values[RATE_CREATURE_ELITE_ELITE_SPELLDAMAGE] = sConfigMgr->GetFloatDefault("Rate.Creature.Elite.Elite.SpellDamage", 1.0f);
+ rate_values[RATE_CREATURE_ELITE_RAREELITE_SPELLDAMAGE] = sConfigMgr->GetFloatDefault("Rate.Creature.Elite.RAREELITE.SpellDamage", 1.0f);
+ rate_values[RATE_CREATURE_ELITE_WORLDBOSS_SPELLDAMAGE] = sConfigMgr->GetFloatDefault("Rate.Creature.Elite.WORLDBOSS.SpellDamage", 1.0f);
+ rate_values[RATE_CREATURE_ELITE_RARE_SPELLDAMAGE] = sConfigMgr->GetFloatDefault("Rate.Creature.Elite.RARE.SpellDamage", 1.0f);
+ rate_values[RATE_CREATURE_AGGRO] = sConfigMgr->GetFloatDefault("Rate.Creature.Aggro", 1.0f);
+ rate_values[RATE_REST_INGAME] = sConfigMgr->GetFloatDefault("Rate.Rest.InGame", 1.0f);
+ rate_values[RATE_REST_OFFLINE_IN_TAVERN_OR_CITY] = sConfigMgr->GetFloatDefault("Rate.Rest.Offline.InTavernOrCity", 1.0f);
+ rate_values[RATE_REST_OFFLINE_IN_WILDERNESS] = sConfigMgr->GetFloatDefault("Rate.Rest.Offline.InWilderness", 1.0f);
+ rate_values[RATE_DAMAGE_FALL] = sConfigMgr->GetFloatDefault("Rate.Damage.Fall", 1.0f);
+ rate_values[RATE_AUCTION_TIME] = sConfigMgr->GetFloatDefault("Rate.Auction.Time", 1.0f);
+ rate_values[RATE_AUCTION_DEPOSIT] = sConfigMgr->GetFloatDefault("Rate.Auction.Deposit", 1.0f);
+ rate_values[RATE_AUCTION_CUT] = sConfigMgr->GetFloatDefault("Rate.Auction.Cut", 1.0f);
+ rate_values[RATE_HONOR] = sConfigMgr->GetFloatDefault("Rate.Honor", 1.0f);
+ rate_values[RATE_INSTANCE_RESET_TIME] = sConfigMgr->GetFloatDefault("Rate.InstanceResetTime", 1.0f);
+ rate_values[RATE_TALENT] = sConfigMgr->GetFloatDefault("Rate.Talent", 1.0f);
if (rate_values[RATE_TALENT] < 0.0f)
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "Rate.Talent (%f) must be > 0. Using 1 instead.", rate_values[RATE_TALENT]);
rate_values[RATE_TALENT] = 1.0f;
}
- rate_values[RATE_MOVESPEED] = ConfigMgr::GetFloatDefault("Rate.MoveSpeed", 1.0f);
+ rate_values[RATE_MOVESPEED] = sConfigMgr->GetFloatDefault("Rate.MoveSpeed", 1.0f);
if (rate_values[RATE_MOVESPEED] < 0)
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "Rate.MoveSpeed (%f) must be > 0. Using 1 instead.", rate_values[RATE_MOVESPEED]);
rate_values[RATE_MOVESPEED] = 1.0f;
}
for (uint8 i = 0; i < MAX_MOVE_TYPE; ++i) playerBaseMoveSpeed[i] = baseMoveSpeed[i] * rate_values[RATE_MOVESPEED];
- rate_values[RATE_CORPSE_DECAY_LOOTED] = ConfigMgr::GetFloatDefault("Rate.Corpse.Decay.Looted", 0.5f);
+ rate_values[RATE_CORPSE_DECAY_LOOTED] = sConfigMgr->GetFloatDefault("Rate.Corpse.Decay.Looted", 0.5f);
- rate_values[RATE_TARGET_POS_RECALCULATION_RANGE] = ConfigMgr::GetFloatDefault("TargetPosRecalculateRange", 1.5f);
+ rate_values[RATE_TARGET_POS_RECALCULATION_RANGE] = sConfigMgr->GetFloatDefault("TargetPosRecalculateRange", 1.5f);
if (rate_values[RATE_TARGET_POS_RECALCULATION_RANGE] < CONTACT_DISTANCE)
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "TargetPosRecalculateRange (%f) must be >= %f. Using %f instead.", rate_values[RATE_TARGET_POS_RECALCULATION_RANGE], CONTACT_DISTANCE, CONTACT_DISTANCE);
@@ -526,7 +526,7 @@ void World::LoadConfigSettings(bool reload)
rate_values[RATE_TARGET_POS_RECALCULATION_RANGE] = NOMINAL_MELEE_RANGE;
}
- rate_values[RATE_DURABILITY_LOSS_ON_DEATH] = ConfigMgr::GetFloatDefault("DurabilityLoss.OnDeath", 10.0f);
+ rate_values[RATE_DURABILITY_LOSS_ON_DEATH] = sConfigMgr->GetFloatDefault("DurabilityLoss.OnDeath", 10.0f);
if (rate_values[RATE_DURABILITY_LOSS_ON_DEATH] < 0.0f)
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "DurabilityLoss.OnDeath (%f) must be >=0. Using 0.0 instead.", rate_values[RATE_DURABILITY_LOSS_ON_DEATH]);
@@ -539,25 +539,25 @@ void World::LoadConfigSettings(bool reload)
}
rate_values[RATE_DURABILITY_LOSS_ON_DEATH] = rate_values[RATE_DURABILITY_LOSS_ON_DEATH] / 100.0f;
- rate_values[RATE_DURABILITY_LOSS_DAMAGE] = ConfigMgr::GetFloatDefault("DurabilityLossChance.Damage", 0.5f);
+ rate_values[RATE_DURABILITY_LOSS_DAMAGE] = sConfigMgr->GetFloatDefault("DurabilityLossChance.Damage", 0.5f);
if (rate_values[RATE_DURABILITY_LOSS_DAMAGE] < 0.0f)
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "DurabilityLossChance.Damage (%f) must be >=0. Using 0.0 instead.", rate_values[RATE_DURABILITY_LOSS_DAMAGE]);
rate_values[RATE_DURABILITY_LOSS_DAMAGE] = 0.0f;
}
- rate_values[RATE_DURABILITY_LOSS_ABSORB] = ConfigMgr::GetFloatDefault("DurabilityLossChance.Absorb", 0.5f);
+ rate_values[RATE_DURABILITY_LOSS_ABSORB] = sConfigMgr->GetFloatDefault("DurabilityLossChance.Absorb", 0.5f);
if (rate_values[RATE_DURABILITY_LOSS_ABSORB] < 0.0f)
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "DurabilityLossChance.Absorb (%f) must be >=0. Using 0.0 instead.", rate_values[RATE_DURABILITY_LOSS_ABSORB]);
rate_values[RATE_DURABILITY_LOSS_ABSORB] = 0.0f;
}
- rate_values[RATE_DURABILITY_LOSS_PARRY] = ConfigMgr::GetFloatDefault("DurabilityLossChance.Parry", 0.05f);
+ rate_values[RATE_DURABILITY_LOSS_PARRY] = sConfigMgr->GetFloatDefault("DurabilityLossChance.Parry", 0.05f);
if (rate_values[RATE_DURABILITY_LOSS_PARRY] < 0.0f)
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "DurabilityLossChance.Parry (%f) must be >=0. Using 0.0 instead.", rate_values[RATE_DURABILITY_LOSS_PARRY]);
rate_values[RATE_DURABILITY_LOSS_PARRY] = 0.0f;
}
- rate_values[RATE_DURABILITY_LOSS_BLOCK] = ConfigMgr::GetFloatDefault("DurabilityLossChance.Block", 0.05f);
+ rate_values[RATE_DURABILITY_LOSS_BLOCK] = sConfigMgr->GetFloatDefault("DurabilityLossChance.Block", 0.05f);
if (rate_values[RATE_DURABILITY_LOSS_BLOCK] < 0.0f)
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "DurabilityLossChance.Block (%f) must be >=0. Using 0.0 instead.", rate_values[RATE_DURABILITY_LOSS_BLOCK]);
@@ -565,39 +565,39 @@ void World::LoadConfigSettings(bool reload)
}
///- Read other configuration items from the config file
- m_bool_configs[CONFIG_DURABILITY_LOSS_IN_PVP] = ConfigMgr::GetBoolDefault("DurabilityLoss.InPvP", false);
+ m_bool_configs[CONFIG_DURABILITY_LOSS_IN_PVP] = sConfigMgr->GetBoolDefault("DurabilityLoss.InPvP", false);
- m_int_configs[CONFIG_COMPRESSION] = ConfigMgr::GetIntDefault("Compression", 1);
+ m_int_configs[CONFIG_COMPRESSION] = sConfigMgr->GetIntDefault("Compression", 1);
if (m_int_configs[CONFIG_COMPRESSION] < 1 || m_int_configs[CONFIG_COMPRESSION] > 9)
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "Compression level (%i) must be in range 1..9. Using default compression level (1).", m_int_configs[CONFIG_COMPRESSION]);
m_int_configs[CONFIG_COMPRESSION] = 1;
}
- m_bool_configs[CONFIG_ADDON_CHANNEL] = ConfigMgr::GetBoolDefault("AddonChannel", true);
- m_bool_configs[CONFIG_CLEAN_CHARACTER_DB] = ConfigMgr::GetBoolDefault("CleanCharacterDB", false);
- m_int_configs[CONFIG_PERSISTENT_CHARACTER_CLEAN_FLAGS] = ConfigMgr::GetIntDefault("PersistentCharacterCleanFlags", 0);
- m_int_configs[CONFIG_CHAT_CHANNEL_LEVEL_REQ] = ConfigMgr::GetIntDefault("ChatLevelReq.Channel", 1);
- m_int_configs[CONFIG_CHAT_WHISPER_LEVEL_REQ] = ConfigMgr::GetIntDefault("ChatLevelReq.Whisper", 1);
- m_int_configs[CONFIG_CHAT_SAY_LEVEL_REQ] = ConfigMgr::GetIntDefault("ChatLevelReq.Say", 1);
- m_int_configs[CONFIG_TRADE_LEVEL_REQ] = ConfigMgr::GetIntDefault("LevelReq.Trade", 1);
- m_int_configs[CONFIG_TICKET_LEVEL_REQ] = ConfigMgr::GetIntDefault("LevelReq.Ticket", 1);
- m_int_configs[CONFIG_AUCTION_LEVEL_REQ] = ConfigMgr::GetIntDefault("LevelReq.Auction", 1);
- m_int_configs[CONFIG_MAIL_LEVEL_REQ] = ConfigMgr::GetIntDefault("LevelReq.Mail", 1);
- m_bool_configs[CONFIG_PRESERVE_CUSTOM_CHANNELS] = ConfigMgr::GetBoolDefault("PreserveCustomChannels", false);
- m_int_configs[CONFIG_PRESERVE_CUSTOM_CHANNEL_DURATION] = ConfigMgr::GetIntDefault("PreserveCustomChannelDuration", 14);
- m_bool_configs[CONFIG_GRID_UNLOAD] = ConfigMgr::GetBoolDefault("GridUnload", true);
- m_int_configs[CONFIG_INTERVAL_SAVE] = ConfigMgr::GetIntDefault("PlayerSaveInterval", 15 * MINUTE * IN_MILLISECONDS);
- m_int_configs[CONFIG_INTERVAL_DISCONNECT_TOLERANCE] = ConfigMgr::GetIntDefault("DisconnectToleranceInterval", 0);
- m_bool_configs[CONFIG_STATS_SAVE_ONLY_ON_LOGOUT] = ConfigMgr::GetBoolDefault("PlayerSave.Stats.SaveOnlyOnLogout", true);
-
- m_int_configs[CONFIG_MIN_LEVEL_STAT_SAVE] = ConfigMgr::GetIntDefault("PlayerSave.Stats.MinLevel", 0);
+ m_bool_configs[CONFIG_ADDON_CHANNEL] = sConfigMgr->GetBoolDefault("AddonChannel", true);
+ m_bool_configs[CONFIG_CLEAN_CHARACTER_DB] = sConfigMgr->GetBoolDefault("CleanCharacterDB", false);
+ m_int_configs[CONFIG_PERSISTENT_CHARACTER_CLEAN_FLAGS] = sConfigMgr->GetIntDefault("PersistentCharacterCleanFlags", 0);
+ m_int_configs[CONFIG_CHAT_CHANNEL_LEVEL_REQ] = sConfigMgr->GetIntDefault("ChatLevelReq.Channel", 1);
+ m_int_configs[CONFIG_CHAT_WHISPER_LEVEL_REQ] = sConfigMgr->GetIntDefault("ChatLevelReq.Whisper", 1);
+ m_int_configs[CONFIG_CHAT_SAY_LEVEL_REQ] = sConfigMgr->GetIntDefault("ChatLevelReq.Say", 1);
+ m_int_configs[CONFIG_TRADE_LEVEL_REQ] = sConfigMgr->GetIntDefault("LevelReq.Trade", 1);
+ m_int_configs[CONFIG_TICKET_LEVEL_REQ] = sConfigMgr->GetIntDefault("LevelReq.Ticket", 1);
+ m_int_configs[CONFIG_AUCTION_LEVEL_REQ] = sConfigMgr->GetIntDefault("LevelReq.Auction", 1);
+ m_int_configs[CONFIG_MAIL_LEVEL_REQ] = sConfigMgr->GetIntDefault("LevelReq.Mail", 1);
+ m_bool_configs[CONFIG_PRESERVE_CUSTOM_CHANNELS] = sConfigMgr->GetBoolDefault("PreserveCustomChannels", false);
+ m_int_configs[CONFIG_PRESERVE_CUSTOM_CHANNEL_DURATION] = sConfigMgr->GetIntDefault("PreserveCustomChannelDuration", 14);
+ m_bool_configs[CONFIG_GRID_UNLOAD] = sConfigMgr->GetBoolDefault("GridUnload", true);
+ m_int_configs[CONFIG_INTERVAL_SAVE] = sConfigMgr->GetIntDefault("PlayerSaveInterval", 15 * MINUTE * IN_MILLISECONDS);
+ m_int_configs[CONFIG_INTERVAL_DISCONNECT_TOLERANCE] = sConfigMgr->GetIntDefault("DisconnectToleranceInterval", 0);
+ m_bool_configs[CONFIG_STATS_SAVE_ONLY_ON_LOGOUT] = sConfigMgr->GetBoolDefault("PlayerSave.Stats.SaveOnlyOnLogout", true);
+
+ m_int_configs[CONFIG_MIN_LEVEL_STAT_SAVE] = sConfigMgr->GetIntDefault("PlayerSave.Stats.MinLevel", 0);
if (m_int_configs[CONFIG_MIN_LEVEL_STAT_SAVE] > MAX_LEVEL)
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "PlayerSave.Stats.MinLevel (%i) must be in range 0..80. Using default, do not save character stats (0).", m_int_configs[CONFIG_MIN_LEVEL_STAT_SAVE]);
m_int_configs[CONFIG_MIN_LEVEL_STAT_SAVE] = 0;
}
- m_int_configs[CONFIG_INTERVAL_GRIDCLEAN] = ConfigMgr::GetIntDefault("GridCleanUpDelay", 5 * MINUTE * IN_MILLISECONDS);
+ m_int_configs[CONFIG_INTERVAL_GRIDCLEAN] = sConfigMgr->GetIntDefault("GridCleanUpDelay", 5 * MINUTE * IN_MILLISECONDS);
if (m_int_configs[CONFIG_INTERVAL_GRIDCLEAN] < MIN_GRID_DELAY)
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "GridCleanUpDelay (%i) must be greater %u. Use this minimal value.", m_int_configs[CONFIG_INTERVAL_GRIDCLEAN], MIN_GRID_DELAY);
@@ -606,7 +606,7 @@ void World::LoadConfigSettings(bool reload)
if (reload)
sMapMgr->SetGridCleanUpDelay(m_int_configs[CONFIG_INTERVAL_GRIDCLEAN]);
- m_int_configs[CONFIG_INTERVAL_MAPUPDATE] = ConfigMgr::GetIntDefault("MapUpdateInterval", 100);
+ m_int_configs[CONFIG_INTERVAL_MAPUPDATE] = sConfigMgr->GetIntDefault("MapUpdateInterval", 100);
if (m_int_configs[CONFIG_INTERVAL_MAPUPDATE] < MIN_MAP_UPDATE_DELAY)
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "MapUpdateInterval (%i) must be greater %u. Use this minimal value.", m_int_configs[CONFIG_INTERVAL_MAPUPDATE], MIN_MAP_UPDATE_DELAY);
@@ -615,81 +615,81 @@ void World::LoadConfigSettings(bool reload)
if (reload)
sMapMgr->SetMapUpdateInterval(m_int_configs[CONFIG_INTERVAL_MAPUPDATE]);
- m_int_configs[CONFIG_INTERVAL_CHANGEWEATHER] = ConfigMgr::GetIntDefault("ChangeWeatherInterval", 10 * MINUTE * IN_MILLISECONDS);
+ m_int_configs[CONFIG_INTERVAL_CHANGEWEATHER] = sConfigMgr->GetIntDefault("ChangeWeatherInterval", 10 * MINUTE * IN_MILLISECONDS);
if (reload)
{
- uint32 val = ConfigMgr::GetIntDefault("WorldServerPort", 8085);
+ uint32 val = sConfigMgr->GetIntDefault("WorldServerPort", 8085);
if (val != m_int_configs[CONFIG_PORT_WORLD])
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "WorldServerPort option can't be changed at worldserver.conf reload, using current value (%u).", m_int_configs[CONFIG_PORT_WORLD]);
}
else
- m_int_configs[CONFIG_PORT_WORLD] = ConfigMgr::GetIntDefault("WorldServerPort", 8085);
+ m_int_configs[CONFIG_PORT_WORLD] = sConfigMgr->GetIntDefault("WorldServerPort", 8085);
- m_int_configs[CONFIG_SOCKET_TIMEOUTTIME] = ConfigMgr::GetIntDefault("SocketTimeOutTime", 900000);
- m_int_configs[CONFIG_SESSION_ADD_DELAY] = ConfigMgr::GetIntDefault("SessionAddDelay", 10000);
+ m_int_configs[CONFIG_SOCKET_TIMEOUTTIME] = sConfigMgr->GetIntDefault("SocketTimeOutTime", 900000);
+ m_int_configs[CONFIG_SESSION_ADD_DELAY] = sConfigMgr->GetIntDefault("SessionAddDelay", 10000);
- m_float_configs[CONFIG_GROUP_XP_DISTANCE] = ConfigMgr::GetFloatDefault("MaxGroupXPDistance", 74.0f);
- m_float_configs[CONFIG_MAX_RECRUIT_A_FRIEND_DISTANCE] = ConfigMgr::GetFloatDefault("MaxRecruitAFriendBonusDistance", 100.0f);
+ m_float_configs[CONFIG_GROUP_XP_DISTANCE] = sConfigMgr->GetFloatDefault("MaxGroupXPDistance", 74.0f);
+ m_float_configs[CONFIG_MAX_RECRUIT_A_FRIEND_DISTANCE] = sConfigMgr->GetFloatDefault("MaxRecruitAFriendBonusDistance", 100.0f);
/// @todo Add MonsterSight and GuarderSight (with meaning) in worldserver.conf or put them as define
- m_float_configs[CONFIG_SIGHT_MONSTER] = ConfigMgr::GetFloatDefault("MonsterSight", 50);
- m_float_configs[CONFIG_SIGHT_GUARDER] = ConfigMgr::GetFloatDefault("GuarderSight", 50);
+ m_float_configs[CONFIG_SIGHT_MONSTER] = sConfigMgr->GetFloatDefault("MonsterSight", 50);
+ m_float_configs[CONFIG_SIGHT_GUARDER] = sConfigMgr->GetFloatDefault("GuarderSight", 50);
if (reload)
{
- uint32 val = ConfigMgr::GetIntDefault("GameType", 0);
+ uint32 val = sConfigMgr->GetIntDefault("GameType", 0);
if (val != m_int_configs[CONFIG_GAME_TYPE])
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "GameType option can't be changed at worldserver.conf reload, using current value (%u).", m_int_configs[CONFIG_GAME_TYPE]);
}
else
- m_int_configs[CONFIG_GAME_TYPE] = ConfigMgr::GetIntDefault("GameType", 0);
+ m_int_configs[CONFIG_GAME_TYPE] = sConfigMgr->GetIntDefault("GameType", 0);
if (reload)
{
- uint32 val = ConfigMgr::GetIntDefault("RealmZone", REALM_ZONE_DEVELOPMENT);
+ uint32 val = sConfigMgr->GetIntDefault("RealmZone", REALM_ZONE_DEVELOPMENT);
if (val != m_int_configs[CONFIG_REALM_ZONE])
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "RealmZone option can't be changed at worldserver.conf reload, using current value (%u).", m_int_configs[CONFIG_REALM_ZONE]);
}
else
- m_int_configs[CONFIG_REALM_ZONE] = ConfigMgr::GetIntDefault("RealmZone", REALM_ZONE_DEVELOPMENT);
-
- m_bool_configs[CONFIG_ALLOW_TWO_SIDE_INTERACTION_CALENDAR]= ConfigMgr::GetBoolDefault("AllowTwoSide.Interaction.Calendar", false);
- m_bool_configs[CONFIG_ALLOW_TWO_SIDE_INTERACTION_CHANNEL] = ConfigMgr::GetBoolDefault("AllowTwoSide.Interaction.Channel", false);
- m_bool_configs[CONFIG_ALLOW_TWO_SIDE_INTERACTION_GROUP] = ConfigMgr::GetBoolDefault("AllowTwoSide.Interaction.Group", false);
- m_bool_configs[CONFIG_ALLOW_TWO_SIDE_INTERACTION_GUILD] = ConfigMgr::GetBoolDefault("AllowTwoSide.Interaction.Guild", false);
- m_bool_configs[CONFIG_ALLOW_TWO_SIDE_INTERACTION_AUCTION] = ConfigMgr::GetBoolDefault("AllowTwoSide.Interaction.Auction", false);
- m_bool_configs[CONFIG_ALLOW_TWO_SIDE_TRADE] = ConfigMgr::GetBoolDefault("AllowTwoSide.trade", false);
- m_int_configs[CONFIG_STRICT_PLAYER_NAMES] = ConfigMgr::GetIntDefault ("StrictPlayerNames", 0);
- m_int_configs[CONFIG_STRICT_CHARTER_NAMES] = ConfigMgr::GetIntDefault ("StrictCharterNames", 0);
- m_int_configs[CONFIG_STRICT_PET_NAMES] = ConfigMgr::GetIntDefault ("StrictPetNames", 0);
-
- m_int_configs[CONFIG_MIN_PLAYER_NAME] = ConfigMgr::GetIntDefault ("MinPlayerName", 2);
+ m_int_configs[CONFIG_REALM_ZONE] = sConfigMgr->GetIntDefault("RealmZone", REALM_ZONE_DEVELOPMENT);
+
+ m_bool_configs[CONFIG_ALLOW_TWO_SIDE_INTERACTION_CALENDAR]= sConfigMgr->GetBoolDefault("AllowTwoSide.Interaction.Calendar", false);
+ m_bool_configs[CONFIG_ALLOW_TWO_SIDE_INTERACTION_CHANNEL] = sConfigMgr->GetBoolDefault("AllowTwoSide.Interaction.Channel", false);
+ m_bool_configs[CONFIG_ALLOW_TWO_SIDE_INTERACTION_GROUP] = sConfigMgr->GetBoolDefault("AllowTwoSide.Interaction.Group", false);
+ m_bool_configs[CONFIG_ALLOW_TWO_SIDE_INTERACTION_GUILD] = sConfigMgr->GetBoolDefault("AllowTwoSide.Interaction.Guild", false);
+ m_bool_configs[CONFIG_ALLOW_TWO_SIDE_INTERACTION_AUCTION] = sConfigMgr->GetBoolDefault("AllowTwoSide.Interaction.Auction", false);
+ m_bool_configs[CONFIG_ALLOW_TWO_SIDE_TRADE] = sConfigMgr->GetBoolDefault("AllowTwoSide.trade", false);
+ m_int_configs[CONFIG_STRICT_PLAYER_NAMES] = sConfigMgr->GetIntDefault ("StrictPlayerNames", 0);
+ m_int_configs[CONFIG_STRICT_CHARTER_NAMES] = sConfigMgr->GetIntDefault ("StrictCharterNames", 0);
+ m_int_configs[CONFIG_STRICT_PET_NAMES] = sConfigMgr->GetIntDefault ("StrictPetNames", 0);
+
+ m_int_configs[CONFIG_MIN_PLAYER_NAME] = sConfigMgr->GetIntDefault ("MinPlayerName", 2);
if (m_int_configs[CONFIG_MIN_PLAYER_NAME] < 1 || m_int_configs[CONFIG_MIN_PLAYER_NAME] > MAX_PLAYER_NAME)
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "MinPlayerName (%i) must be in range 1..%u. Set to 2.", m_int_configs[CONFIG_MIN_PLAYER_NAME], MAX_PLAYER_NAME);
m_int_configs[CONFIG_MIN_PLAYER_NAME] = 2;
}
- m_int_configs[CONFIG_MIN_CHARTER_NAME] = ConfigMgr::GetIntDefault ("MinCharterName", 2);
+ m_int_configs[CONFIG_MIN_CHARTER_NAME] = sConfigMgr->GetIntDefault ("MinCharterName", 2);
if (m_int_configs[CONFIG_MIN_CHARTER_NAME] < 1 || m_int_configs[CONFIG_MIN_CHARTER_NAME] > MAX_CHARTER_NAME)
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "MinCharterName (%i) must be in range 1..%u. Set to 2.", m_int_configs[CONFIG_MIN_CHARTER_NAME], MAX_CHARTER_NAME);
m_int_configs[CONFIG_MIN_CHARTER_NAME] = 2;
}
- m_int_configs[CONFIG_MIN_PET_NAME] = ConfigMgr::GetIntDefault ("MinPetName", 2);
+ m_int_configs[CONFIG_MIN_PET_NAME] = sConfigMgr->GetIntDefault ("MinPetName", 2);
if (m_int_configs[CONFIG_MIN_PET_NAME] < 1 || m_int_configs[CONFIG_MIN_PET_NAME] > MAX_PET_NAME)
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "MinPetName (%i) must be in range 1..%u. Set to 2.", m_int_configs[CONFIG_MIN_PET_NAME], MAX_PET_NAME);
m_int_configs[CONFIG_MIN_PET_NAME] = 2;
}
- m_int_configs[CONFIG_CHARACTER_CREATING_DISABLED] = ConfigMgr::GetIntDefault("CharacterCreating.Disabled", 0);
- m_int_configs[CONFIG_CHARACTER_CREATING_DISABLED_RACEMASK] = ConfigMgr::GetIntDefault("CharacterCreating.Disabled.RaceMask", 0);
- m_int_configs[CONFIG_CHARACTER_CREATING_DISABLED_CLASSMASK] = ConfigMgr::GetIntDefault("CharacterCreating.Disabled.ClassMask", 0);
+ m_int_configs[CONFIG_CHARACTER_CREATING_DISABLED] = sConfigMgr->GetIntDefault("CharacterCreating.Disabled", 0);
+ m_int_configs[CONFIG_CHARACTER_CREATING_DISABLED_RACEMASK] = sConfigMgr->GetIntDefault("CharacterCreating.Disabled.RaceMask", 0);
+ m_int_configs[CONFIG_CHARACTER_CREATING_DISABLED_CLASSMASK] = sConfigMgr->GetIntDefault("CharacterCreating.Disabled.ClassMask", 0);
- m_int_configs[CONFIG_CHARACTERS_PER_REALM] = ConfigMgr::GetIntDefault("CharactersPerRealm", 10);
+ m_int_configs[CONFIG_CHARACTERS_PER_REALM] = sConfigMgr->GetIntDefault("CharactersPerRealm", 10);
if (m_int_configs[CONFIG_CHARACTERS_PER_REALM] < 1 || m_int_configs[CONFIG_CHARACTERS_PER_REALM] > 10)
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "CharactersPerRealm (%i) must be in range 1..10. Set to 10.", m_int_configs[CONFIG_CHARACTERS_PER_REALM]);
@@ -697,23 +697,23 @@ void World::LoadConfigSettings(bool reload)
}
// must be after CONFIG_CHARACTERS_PER_REALM
- m_int_configs[CONFIG_CHARACTERS_PER_ACCOUNT] = ConfigMgr::GetIntDefault("CharactersPerAccount", 50);
+ m_int_configs[CONFIG_CHARACTERS_PER_ACCOUNT] = sConfigMgr->GetIntDefault("CharactersPerAccount", 50);
if (m_int_configs[CONFIG_CHARACTERS_PER_ACCOUNT] < m_int_configs[CONFIG_CHARACTERS_PER_REALM])
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "CharactersPerAccount (%i) can't be less than CharactersPerRealm (%i).", m_int_configs[CONFIG_CHARACTERS_PER_ACCOUNT], m_int_configs[CONFIG_CHARACTERS_PER_REALM]);
m_int_configs[CONFIG_CHARACTERS_PER_ACCOUNT] = m_int_configs[CONFIG_CHARACTERS_PER_REALM];
}
- m_int_configs[CONFIG_HEROIC_CHARACTERS_PER_REALM] = ConfigMgr::GetIntDefault("HeroicCharactersPerRealm", 1);
+ m_int_configs[CONFIG_HEROIC_CHARACTERS_PER_REALM] = sConfigMgr->GetIntDefault("HeroicCharactersPerRealm", 1);
if (int32(m_int_configs[CONFIG_HEROIC_CHARACTERS_PER_REALM]) < 0 || m_int_configs[CONFIG_HEROIC_CHARACTERS_PER_REALM] > 10)
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "HeroicCharactersPerRealm (%i) must be in range 0..10. Set to 1.", m_int_configs[CONFIG_HEROIC_CHARACTERS_PER_REALM]);
m_int_configs[CONFIG_HEROIC_CHARACTERS_PER_REALM] = 1;
}
- m_int_configs[CONFIG_CHARACTER_CREATING_MIN_LEVEL_FOR_HEROIC_CHARACTER] = ConfigMgr::GetIntDefault("CharacterCreating.MinLevelForHeroicCharacter", 55);
+ m_int_configs[CONFIG_CHARACTER_CREATING_MIN_LEVEL_FOR_HEROIC_CHARACTER] = sConfigMgr->GetIntDefault("CharacterCreating.MinLevelForHeroicCharacter", 55);
- m_int_configs[CONFIG_SKIP_CINEMATICS] = ConfigMgr::GetIntDefault("SkipCinematics", 0);
+ m_int_configs[CONFIG_SKIP_CINEMATICS] = sConfigMgr->GetIntDefault("SkipCinematics", 0);
if (int32(m_int_configs[CONFIG_SKIP_CINEMATICS]) < 0 || m_int_configs[CONFIG_SKIP_CINEMATICS] > 2)
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "SkipCinematics (%i) must be in range 0..2. Set to 0.", m_int_configs[CONFIG_SKIP_CINEMATICS]);
@@ -722,12 +722,12 @@ void World::LoadConfigSettings(bool reload)
if (reload)
{
- uint32 val = ConfigMgr::GetIntDefault("MaxPlayerLevel", DEFAULT_MAX_LEVEL);
+ uint32 val = sConfigMgr->GetIntDefault("MaxPlayerLevel", DEFAULT_MAX_LEVEL);
if (val != m_int_configs[CONFIG_MAX_PLAYER_LEVEL])
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "MaxPlayerLevel option can't be changed at config reload, using current value (%u).", m_int_configs[CONFIG_MAX_PLAYER_LEVEL]);
}
else
- m_int_configs[CONFIG_MAX_PLAYER_LEVEL] = ConfigMgr::GetIntDefault("MaxPlayerLevel", DEFAULT_MAX_LEVEL);
+ m_int_configs[CONFIG_MAX_PLAYER_LEVEL] = sConfigMgr->GetIntDefault("MaxPlayerLevel", DEFAULT_MAX_LEVEL);
if (m_int_configs[CONFIG_MAX_PLAYER_LEVEL] > MAX_LEVEL)
{
@@ -735,9 +735,9 @@ void World::LoadConfigSettings(bool reload)
m_int_configs[CONFIG_MAX_PLAYER_LEVEL] = MAX_LEVEL;
}
- m_int_configs[CONFIG_MIN_DUALSPEC_LEVEL] = ConfigMgr::GetIntDefault("MinDualSpecLevel", 40);
+ m_int_configs[CONFIG_MIN_DUALSPEC_LEVEL] = sConfigMgr->GetIntDefault("MinDualSpecLevel", 40);
- m_int_configs[CONFIG_START_PLAYER_LEVEL] = ConfigMgr::GetIntDefault("StartPlayerLevel", 1);
+ m_int_configs[CONFIG_START_PLAYER_LEVEL] = sConfigMgr->GetIntDefault("StartPlayerLevel", 1);
if (m_int_configs[CONFIG_START_PLAYER_LEVEL] < 1)
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "StartPlayerLevel (%i) must be in range 1..MaxPlayerLevel(%u). Set to 1.", m_int_configs[CONFIG_START_PLAYER_LEVEL], m_int_configs[CONFIG_MAX_PLAYER_LEVEL]);
@@ -749,7 +749,7 @@ void World::LoadConfigSettings(bool reload)
m_int_configs[CONFIG_START_PLAYER_LEVEL] = m_int_configs[CONFIG_MAX_PLAYER_LEVEL];
}
- m_int_configs[CONFIG_START_HEROIC_PLAYER_LEVEL] = ConfigMgr::GetIntDefault("StartHeroicPlayerLevel", 55);
+ m_int_configs[CONFIG_START_HEROIC_PLAYER_LEVEL] = sConfigMgr->GetIntDefault("StartHeroicPlayerLevel", 55);
if (m_int_configs[CONFIG_START_HEROIC_PLAYER_LEVEL] < 1)
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "StartHeroicPlayerLevel (%i) must be in range 1..MaxPlayerLevel(%u). Set to 55.",
@@ -763,7 +763,7 @@ void World::LoadConfigSettings(bool reload)
m_int_configs[CONFIG_START_HEROIC_PLAYER_LEVEL] = m_int_configs[CONFIG_MAX_PLAYER_LEVEL];
}
- m_int_configs[CONFIG_START_PLAYER_MONEY] = ConfigMgr::GetIntDefault("StartPlayerMoney", 0);
+ m_int_configs[CONFIG_START_PLAYER_MONEY] = sConfigMgr->GetIntDefault("StartPlayerMoney", 0);
if (int32(m_int_configs[CONFIG_START_PLAYER_MONEY]) < 0)
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "StartPlayerMoney (%i) must be in range 0..%u. Set to %u.", m_int_configs[CONFIG_START_PLAYER_MONEY], MAX_MONEY_AMOUNT, 0);
@@ -776,14 +776,14 @@ void World::LoadConfigSettings(bool reload)
m_int_configs[CONFIG_START_PLAYER_MONEY] = MAX_MONEY_AMOUNT;
}
- m_int_configs[CONFIG_MAX_HONOR_POINTS] = ConfigMgr::GetIntDefault("MaxHonorPoints", 75000);
+ m_int_configs[CONFIG_MAX_HONOR_POINTS] = sConfigMgr->GetIntDefault("MaxHonorPoints", 75000);
if (int32(m_int_configs[CONFIG_MAX_HONOR_POINTS]) < 0)
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "MaxHonorPoints (%i) can't be negative. Set to 0.", m_int_configs[CONFIG_MAX_HONOR_POINTS]);
m_int_configs[CONFIG_MAX_HONOR_POINTS] = 0;
}
- m_int_configs[CONFIG_START_HONOR_POINTS] = ConfigMgr::GetIntDefault("StartHonorPoints", 0);
+ m_int_configs[CONFIG_START_HONOR_POINTS] = sConfigMgr->GetIntDefault("StartHonorPoints", 0);
if (int32(m_int_configs[CONFIG_START_HONOR_POINTS]) < 0)
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "StartHonorPoints (%i) must be in range 0..MaxHonorPoints(%u). Set to %u.",
@@ -797,14 +797,14 @@ void World::LoadConfigSettings(bool reload)
m_int_configs[CONFIG_START_HONOR_POINTS] = m_int_configs[CONFIG_MAX_HONOR_POINTS];
}
- m_int_configs[CONFIG_MAX_ARENA_POINTS] = ConfigMgr::GetIntDefault("MaxArenaPoints", 10000);
+ m_int_configs[CONFIG_MAX_ARENA_POINTS] = sConfigMgr->GetIntDefault("MaxArenaPoints", 10000);
if (int32(m_int_configs[CONFIG_MAX_ARENA_POINTS]) < 0)
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "MaxArenaPoints (%i) can't be negative. Set to 0.", m_int_configs[CONFIG_MAX_ARENA_POINTS]);
m_int_configs[CONFIG_MAX_ARENA_POINTS] = 0;
}
- m_int_configs[CONFIG_START_ARENA_POINTS] = ConfigMgr::GetIntDefault("StartArenaPoints", 0);
+ m_int_configs[CONFIG_START_ARENA_POINTS] = sConfigMgr->GetIntDefault("StartArenaPoints", 0);
if (int32(m_int_configs[CONFIG_START_ARENA_POINTS]) < 0)
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "StartArenaPoints (%i) must be in range 0..MaxArenaPoints(%u). Set to %u.",
@@ -818,7 +818,7 @@ void World::LoadConfigSettings(bool reload)
m_int_configs[CONFIG_START_ARENA_POINTS] = m_int_configs[CONFIG_MAX_ARENA_POINTS];
}
- m_int_configs[CONFIG_MAX_RECRUIT_A_FRIEND_BONUS_PLAYER_LEVEL] = ConfigMgr::GetIntDefault("RecruitAFriend.MaxLevel", 60);
+ m_int_configs[CONFIG_MAX_RECRUIT_A_FRIEND_BONUS_PLAYER_LEVEL] = sConfigMgr->GetIntDefault("RecruitAFriend.MaxLevel", 60);
if (m_int_configs[CONFIG_MAX_RECRUIT_A_FRIEND_BONUS_PLAYER_LEVEL] > m_int_configs[CONFIG_MAX_PLAYER_LEVEL])
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "RecruitAFriend.MaxLevel (%i) must be in the range 0..MaxLevel(%u). Set to %u.",
@@ -826,33 +826,33 @@ void World::LoadConfigSettings(bool reload)
m_int_configs[CONFIG_MAX_RECRUIT_A_FRIEND_BONUS_PLAYER_LEVEL] = 60;
}
- m_int_configs[CONFIG_MAX_RECRUIT_A_FRIEND_BONUS_PLAYER_LEVEL_DIFFERENCE] = ConfigMgr::GetIntDefault("RecruitAFriend.MaxDifference", 4);
- m_bool_configs[CONFIG_ALL_TAXI_PATHS] = ConfigMgr::GetBoolDefault("AllFlightPaths", false);
- m_bool_configs[CONFIG_INSTANT_TAXI] = ConfigMgr::GetBoolDefault("InstantFlightPaths", false);
+ m_int_configs[CONFIG_MAX_RECRUIT_A_FRIEND_BONUS_PLAYER_LEVEL_DIFFERENCE] = sConfigMgr->GetIntDefault("RecruitAFriend.MaxDifference", 4);
+ m_bool_configs[CONFIG_ALL_TAXI_PATHS] = sConfigMgr->GetBoolDefault("AllFlightPaths", false);
+ m_bool_configs[CONFIG_INSTANT_TAXI] = sConfigMgr->GetBoolDefault("InstantFlightPaths", false);
- m_bool_configs[CONFIG_INSTANCE_IGNORE_LEVEL] = ConfigMgr::GetBoolDefault("Instance.IgnoreLevel", false);
- m_bool_configs[CONFIG_INSTANCE_IGNORE_RAID] = ConfigMgr::GetBoolDefault("Instance.IgnoreRaid", false);
+ m_bool_configs[CONFIG_INSTANCE_IGNORE_LEVEL] = sConfigMgr->GetBoolDefault("Instance.IgnoreLevel", false);
+ m_bool_configs[CONFIG_INSTANCE_IGNORE_RAID] = sConfigMgr->GetBoolDefault("Instance.IgnoreRaid", false);
- m_bool_configs[CONFIG_CAST_UNSTUCK] = ConfigMgr::GetBoolDefault("CastUnstuck", true);
- m_int_configs[CONFIG_INSTANCE_RESET_TIME_HOUR] = ConfigMgr::GetIntDefault("Instance.ResetTimeHour", 4);
- m_int_configs[CONFIG_INSTANCE_UNLOAD_DELAY] = ConfigMgr::GetIntDefault("Instance.UnloadDelay", 30 * MINUTE * IN_MILLISECONDS);
+ m_bool_configs[CONFIG_CAST_UNSTUCK] = sConfigMgr->GetBoolDefault("CastUnstuck", true);
+ m_int_configs[CONFIG_INSTANCE_RESET_TIME_HOUR] = sConfigMgr->GetIntDefault("Instance.ResetTimeHour", 4);
+ m_int_configs[CONFIG_INSTANCE_UNLOAD_DELAY] = sConfigMgr->GetIntDefault("Instance.UnloadDelay", 30 * MINUTE * IN_MILLISECONDS);
- m_int_configs[CONFIG_MAX_PRIMARY_TRADE_SKILL] = ConfigMgr::GetIntDefault("MaxPrimaryTradeSkill", 2);
- m_int_configs[CONFIG_MIN_PETITION_SIGNS] = ConfigMgr::GetIntDefault("MinPetitionSigns", 9);
+ m_int_configs[CONFIG_MAX_PRIMARY_TRADE_SKILL] = sConfigMgr->GetIntDefault("MaxPrimaryTradeSkill", 2);
+ m_int_configs[CONFIG_MIN_PETITION_SIGNS] = sConfigMgr->GetIntDefault("MinPetitionSigns", 9);
if (m_int_configs[CONFIG_MIN_PETITION_SIGNS] > 9)
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "MinPetitionSigns (%i) must be in range 0..9. Set to 9.", m_int_configs[CONFIG_MIN_PETITION_SIGNS]);
m_int_configs[CONFIG_MIN_PETITION_SIGNS] = 9;
}
- m_int_configs[CONFIG_GM_LOGIN_STATE] = ConfigMgr::GetIntDefault("GM.LoginState", 2);
- m_int_configs[CONFIG_GM_VISIBLE_STATE] = ConfigMgr::GetIntDefault("GM.Visible", 2);
- m_int_configs[CONFIG_GM_CHAT] = ConfigMgr::GetIntDefault("GM.Chat", 2);
- m_int_configs[CONFIG_GM_WHISPERING_TO] = ConfigMgr::GetIntDefault("GM.WhisperingTo", 2);
+ m_int_configs[CONFIG_GM_LOGIN_STATE] = sConfigMgr->GetIntDefault("GM.LoginState", 2);
+ m_int_configs[CONFIG_GM_VISIBLE_STATE] = sConfigMgr->GetIntDefault("GM.Visible", 2);
+ m_int_configs[CONFIG_GM_CHAT] = sConfigMgr->GetIntDefault("GM.Chat", 2);
+ m_int_configs[CONFIG_GM_WHISPERING_TO] = sConfigMgr->GetIntDefault("GM.WhisperingTo", 2);
- m_int_configs[CONFIG_GM_LEVEL_IN_GM_LIST] = ConfigMgr::GetIntDefault("GM.InGMList.Level", SEC_ADMINISTRATOR);
- m_int_configs[CONFIG_GM_LEVEL_IN_WHO_LIST] = ConfigMgr::GetIntDefault("GM.InWhoList.Level", SEC_ADMINISTRATOR);
- m_int_configs[CONFIG_START_GM_LEVEL] = ConfigMgr::GetIntDefault("GM.StartLevel", 1);
+ m_int_configs[CONFIG_GM_LEVEL_IN_GM_LIST] = sConfigMgr->GetIntDefault("GM.InGMList.Level", SEC_ADMINISTRATOR);
+ m_int_configs[CONFIG_GM_LEVEL_IN_WHO_LIST] = sConfigMgr->GetIntDefault("GM.InWhoList.Level", SEC_ADMINISTRATOR);
+ m_int_configs[CONFIG_START_GM_LEVEL] = sConfigMgr->GetIntDefault("GM.StartLevel", 1);
if (m_int_configs[CONFIG_START_GM_LEVEL] < m_int_configs[CONFIG_START_PLAYER_LEVEL])
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "GM.StartLevel (%i) must be in range StartPlayerLevel(%u)..%u. Set to %u.",
@@ -864,15 +864,15 @@ void World::LoadConfigSettings(bool reload)
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "GM.StartLevel (%i) must be in range 1..%u. Set to %u.", m_int_configs[CONFIG_START_GM_LEVEL], MAX_LEVEL, MAX_LEVEL);
m_int_configs[CONFIG_START_GM_LEVEL] = MAX_LEVEL;
}
- m_bool_configs[CONFIG_ALLOW_GM_GROUP] = ConfigMgr::GetBoolDefault("GM.AllowInvite", false);
- m_bool_configs[CONFIG_GM_LOWER_SECURITY] = ConfigMgr::GetBoolDefault("GM.LowerSecurity", false);
- m_float_configs[CONFIG_CHANCE_OF_GM_SURVEY] = ConfigMgr::GetFloatDefault("GM.TicketSystem.ChanceOfGMSurvey", 50.0f);
+ m_bool_configs[CONFIG_ALLOW_GM_GROUP] = sConfigMgr->GetBoolDefault("GM.AllowInvite", false);
+ m_bool_configs[CONFIG_GM_LOWER_SECURITY] = sConfigMgr->GetBoolDefault("GM.LowerSecurity", false);
+ m_float_configs[CONFIG_CHANCE_OF_GM_SURVEY] = sConfigMgr->GetFloatDefault("GM.TicketSystem.ChanceOfGMSurvey", 50.0f);
- m_int_configs[CONFIG_GROUP_VISIBILITY] = ConfigMgr::GetIntDefault("Visibility.GroupMode", 1);
+ m_int_configs[CONFIG_GROUP_VISIBILITY] = sConfigMgr->GetIntDefault("Visibility.GroupMode", 1);
- m_int_configs[CONFIG_MAIL_DELIVERY_DELAY] = ConfigMgr::GetIntDefault("MailDeliveryDelay", HOUR);
+ m_int_configs[CONFIG_MAIL_DELIVERY_DELAY] = sConfigMgr->GetIntDefault("MailDeliveryDelay", HOUR);
- m_int_configs[CONFIG_UPTIME_UPDATE] = ConfigMgr::GetIntDefault("UpdateUptimeInterval", 10);
+ m_int_configs[CONFIG_UPTIME_UPDATE] = sConfigMgr->GetIntDefault("UpdateUptimeInterval", 10);
if (int32(m_int_configs[CONFIG_UPTIME_UPDATE]) <= 0)
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "UpdateUptimeInterval (%i) must be > 0, set to default 10.", m_int_configs[CONFIG_UPTIME_UPDATE]);
@@ -885,7 +885,7 @@ void World::LoadConfigSettings(bool reload)
}
// log db cleanup interval
- m_int_configs[CONFIG_LOGDB_CLEARINTERVAL] = ConfigMgr::GetIntDefault("LogDB.Opt.ClearInterval", 10);
+ m_int_configs[CONFIG_LOGDB_CLEARINTERVAL] = sConfigMgr->GetIntDefault("LogDB.Opt.ClearInterval", 10);
if (int32(m_int_configs[CONFIG_LOGDB_CLEARINTERVAL]) <= 0)
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "LogDB.Opt.ClearInterval (%i) must be > 0, set to default 10.", m_int_configs[CONFIG_LOGDB_CLEARINTERVAL]);
@@ -896,146 +896,146 @@ void World::LoadConfigSettings(bool reload)
m_timers[WUPDATE_CLEANDB].SetInterval(m_int_configs[CONFIG_LOGDB_CLEARINTERVAL] * MINUTE * IN_MILLISECONDS);
m_timers[WUPDATE_CLEANDB].Reset();
}
- m_int_configs[CONFIG_LOGDB_CLEARTIME] = ConfigMgr::GetIntDefault("LogDB.Opt.ClearTime", 1209600); // 14 days default
+ m_int_configs[CONFIG_LOGDB_CLEARTIME] = sConfigMgr->GetIntDefault("LogDB.Opt.ClearTime", 1209600); // 14 days default
TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, "Will clear `logs` table of entries older than %i seconds every %u minutes.",
m_int_configs[CONFIG_LOGDB_CLEARTIME], m_int_configs[CONFIG_LOGDB_CLEARINTERVAL]);
- m_int_configs[CONFIG_SKILL_CHANCE_ORANGE] = ConfigMgr::GetIntDefault("SkillChance.Orange", 100);
- m_int_configs[CONFIG_SKILL_CHANCE_YELLOW] = ConfigMgr::GetIntDefault("SkillChance.Yellow", 75);
- m_int_configs[CONFIG_SKILL_CHANCE_GREEN] = ConfigMgr::GetIntDefault("SkillChance.Green", 25);
- m_int_configs[CONFIG_SKILL_CHANCE_GREY] = ConfigMgr::GetIntDefault("SkillChance.Grey", 0);
+ m_int_configs[CONFIG_SKILL_CHANCE_ORANGE] = sConfigMgr->GetIntDefault("SkillChance.Orange", 100);
+ m_int_configs[CONFIG_SKILL_CHANCE_YELLOW] = sConfigMgr->GetIntDefault("SkillChance.Yellow", 75);
+ m_int_configs[CONFIG_SKILL_CHANCE_GREEN] = sConfigMgr->GetIntDefault("SkillChance.Green", 25);
+ m_int_configs[CONFIG_SKILL_CHANCE_GREY] = sConfigMgr->GetIntDefault("SkillChance.Grey", 0);
- m_int_configs[CONFIG_SKILL_CHANCE_MINING_STEPS] = ConfigMgr::GetIntDefault("SkillChance.MiningSteps", 75);
- m_int_configs[CONFIG_SKILL_CHANCE_SKINNING_STEPS] = ConfigMgr::GetIntDefault("SkillChance.SkinningSteps", 75);
+ m_int_configs[CONFIG_SKILL_CHANCE_MINING_STEPS] = sConfigMgr->GetIntDefault("SkillChance.MiningSteps", 75);
+ m_int_configs[CONFIG_SKILL_CHANCE_SKINNING_STEPS] = sConfigMgr->GetIntDefault("SkillChance.SkinningSteps", 75);
- m_bool_configs[CONFIG_SKILL_PROSPECTING] = ConfigMgr::GetBoolDefault("SkillChance.Prospecting", false);
- m_bool_configs[CONFIG_SKILL_MILLING] = ConfigMgr::GetBoolDefault("SkillChance.Milling", false);
+ m_bool_configs[CONFIG_SKILL_PROSPECTING] = sConfigMgr->GetBoolDefault("SkillChance.Prospecting", false);
+ m_bool_configs[CONFIG_SKILL_MILLING] = sConfigMgr->GetBoolDefault("SkillChance.Milling", false);
- m_int_configs[CONFIG_SKILL_GAIN_CRAFTING] = ConfigMgr::GetIntDefault("SkillGain.Crafting", 1);
+ m_int_configs[CONFIG_SKILL_GAIN_CRAFTING] = sConfigMgr->GetIntDefault("SkillGain.Crafting", 1);
- m_int_configs[CONFIG_SKILL_GAIN_DEFENSE] = ConfigMgr::GetIntDefault("SkillGain.Defense", 1);
+ m_int_configs[CONFIG_SKILL_GAIN_DEFENSE] = sConfigMgr->GetIntDefault("SkillGain.Defense", 1);
- m_int_configs[CONFIG_SKILL_GAIN_GATHERING] = ConfigMgr::GetIntDefault("SkillGain.Gathering", 1);
+ m_int_configs[CONFIG_SKILL_GAIN_GATHERING] = sConfigMgr->GetIntDefault("SkillGain.Gathering", 1);
- m_int_configs[CONFIG_SKILL_GAIN_WEAPON] = ConfigMgr::GetIntDefault("SkillGain.Weapon", 1);
+ m_int_configs[CONFIG_SKILL_GAIN_WEAPON] = sConfigMgr->GetIntDefault("SkillGain.Weapon", 1);
- m_int_configs[CONFIG_MAX_OVERSPEED_PINGS] = ConfigMgr::GetIntDefault("MaxOverspeedPings", 2);
+ m_int_configs[CONFIG_MAX_OVERSPEED_PINGS] = sConfigMgr->GetIntDefault("MaxOverspeedPings", 2);
if (m_int_configs[CONFIG_MAX_OVERSPEED_PINGS] != 0 && m_int_configs[CONFIG_MAX_OVERSPEED_PINGS] < 2)
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "MaxOverspeedPings (%i) must be in range 2..infinity (or 0 to disable check). Set to 2.", m_int_configs[CONFIG_MAX_OVERSPEED_PINGS]);
m_int_configs[CONFIG_MAX_OVERSPEED_PINGS] = 2;
}
- m_bool_configs[CONFIG_SAVE_RESPAWN_TIME_IMMEDIATELY] = ConfigMgr::GetBoolDefault("SaveRespawnTimeImmediately", true);
- m_bool_configs[CONFIG_WEATHER] = ConfigMgr::GetBoolDefault("ActivateWeather", true);
+ m_bool_configs[CONFIG_SAVE_RESPAWN_TIME_IMMEDIATELY] = sConfigMgr->GetBoolDefault("SaveRespawnTimeImmediately", true);
+ m_bool_configs[CONFIG_WEATHER] = sConfigMgr->GetBoolDefault("ActivateWeather", true);
- m_int_configs[CONFIG_DISABLE_BREATHING] = ConfigMgr::GetIntDefault("DisableWaterBreath", SEC_CONSOLE);
+ m_int_configs[CONFIG_DISABLE_BREATHING] = sConfigMgr->GetIntDefault("DisableWaterBreath", SEC_CONSOLE);
- m_bool_configs[CONFIG_ALWAYS_MAX_SKILL_FOR_LEVEL] = ConfigMgr::GetBoolDefault("AlwaysMaxSkillForLevel", false);
+ m_bool_configs[CONFIG_ALWAYS_MAX_SKILL_FOR_LEVEL] = sConfigMgr->GetBoolDefault("AlwaysMaxSkillForLevel", false);
if (reload)
{
- uint32 val = ConfigMgr::GetIntDefault("Expansion", 1);
+ uint32 val = sConfigMgr->GetIntDefault("Expansion", 1);
if (val != m_int_configs[CONFIG_EXPANSION])
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "Expansion option can't be changed at worldserver.conf reload, using current value (%u).", m_int_configs[CONFIG_EXPANSION]);
}
else
- m_int_configs[CONFIG_EXPANSION] = ConfigMgr::GetIntDefault("Expansion", 1);
+ m_int_configs[CONFIG_EXPANSION] = sConfigMgr->GetIntDefault("Expansion", 1);
- m_int_configs[CONFIG_CHATFLOOD_MESSAGE_COUNT] = ConfigMgr::GetIntDefault("ChatFlood.MessageCount", 10);
- m_int_configs[CONFIG_CHATFLOOD_MESSAGE_DELAY] = ConfigMgr::GetIntDefault("ChatFlood.MessageDelay", 1);
- m_int_configs[CONFIG_CHATFLOOD_MUTE_TIME] = ConfigMgr::GetIntDefault("ChatFlood.MuteTime", 10);
+ m_int_configs[CONFIG_CHATFLOOD_MESSAGE_COUNT] = sConfigMgr->GetIntDefault("ChatFlood.MessageCount", 10);
+ m_int_configs[CONFIG_CHATFLOOD_MESSAGE_DELAY] = sConfigMgr->GetIntDefault("ChatFlood.MessageDelay", 1);
+ m_int_configs[CONFIG_CHATFLOOD_MUTE_TIME] = sConfigMgr->GetIntDefault("ChatFlood.MuteTime", 10);
- m_bool_configs[CONFIG_EVENT_ANNOUNCE] = ConfigMgr::GetIntDefault("Event.Announce", false);
+ m_bool_configs[CONFIG_EVENT_ANNOUNCE] = sConfigMgr->GetIntDefault("Event.Announce", false);
- m_float_configs[CONFIG_CREATURE_FAMILY_FLEE_ASSISTANCE_RADIUS] = ConfigMgr::GetFloatDefault("CreatureFamilyFleeAssistanceRadius", 30.0f);
- m_float_configs[CONFIG_CREATURE_FAMILY_ASSISTANCE_RADIUS] = ConfigMgr::GetFloatDefault("CreatureFamilyAssistanceRadius", 10.0f);
- m_int_configs[CONFIG_CREATURE_FAMILY_ASSISTANCE_DELAY] = ConfigMgr::GetIntDefault("CreatureFamilyAssistanceDelay", 1500);
- m_int_configs[CONFIG_CREATURE_FAMILY_FLEE_DELAY] = ConfigMgr::GetIntDefault("CreatureFamilyFleeDelay", 7000);
+ m_float_configs[CONFIG_CREATURE_FAMILY_FLEE_ASSISTANCE_RADIUS] = sConfigMgr->GetFloatDefault("CreatureFamilyFleeAssistanceRadius", 30.0f);
+ m_float_configs[CONFIG_CREATURE_FAMILY_ASSISTANCE_RADIUS] = sConfigMgr->GetFloatDefault("CreatureFamilyAssistanceRadius", 10.0f);
+ m_int_configs[CONFIG_CREATURE_FAMILY_ASSISTANCE_DELAY] = sConfigMgr->GetIntDefault("CreatureFamilyAssistanceDelay", 1500);
+ m_int_configs[CONFIG_CREATURE_FAMILY_FLEE_DELAY] = sConfigMgr->GetIntDefault("CreatureFamilyFleeDelay", 7000);
- m_int_configs[CONFIG_WORLD_BOSS_LEVEL_DIFF] = ConfigMgr::GetIntDefault("WorldBossLevelDiff", 3);
+ m_int_configs[CONFIG_WORLD_BOSS_LEVEL_DIFF] = sConfigMgr->GetIntDefault("WorldBossLevelDiff", 3);
// note: disable value (-1) will assigned as 0xFFFFFFF, to prevent overflow at calculations limit it to max possible player level MAX_LEVEL(100)
- m_int_configs[CONFIG_QUEST_LOW_LEVEL_HIDE_DIFF] = ConfigMgr::GetIntDefault("Quests.LowLevelHideDiff", 4);
+ m_int_configs[CONFIG_QUEST_LOW_LEVEL_HIDE_DIFF] = sConfigMgr->GetIntDefault("Quests.LowLevelHideDiff", 4);
if (m_int_configs[CONFIG_QUEST_LOW_LEVEL_HIDE_DIFF] > MAX_LEVEL)
m_int_configs[CONFIG_QUEST_LOW_LEVEL_HIDE_DIFF] = MAX_LEVEL;
- m_int_configs[CONFIG_QUEST_HIGH_LEVEL_HIDE_DIFF] = ConfigMgr::GetIntDefault("Quests.HighLevelHideDiff", 7);
+ m_int_configs[CONFIG_QUEST_HIGH_LEVEL_HIDE_DIFF] = sConfigMgr->GetIntDefault("Quests.HighLevelHideDiff", 7);
if (m_int_configs[CONFIG_QUEST_HIGH_LEVEL_HIDE_DIFF] > MAX_LEVEL)
m_int_configs[CONFIG_QUEST_HIGH_LEVEL_HIDE_DIFF] = MAX_LEVEL;
- m_bool_configs[CONFIG_QUEST_IGNORE_RAID] = ConfigMgr::GetBoolDefault("Quests.IgnoreRaid", false);
- m_bool_configs[CONFIG_QUEST_IGNORE_AUTO_ACCEPT] = ConfigMgr::GetBoolDefault("Quests.IgnoreAutoAccept", false);
- m_bool_configs[CONFIG_QUEST_IGNORE_AUTO_COMPLETE] = ConfigMgr::GetBoolDefault("Quests.IgnoreAutoComplete", false);
+ m_bool_configs[CONFIG_QUEST_IGNORE_RAID] = sConfigMgr->GetBoolDefault("Quests.IgnoreRaid", false);
+ m_bool_configs[CONFIG_QUEST_IGNORE_AUTO_ACCEPT] = sConfigMgr->GetBoolDefault("Quests.IgnoreAutoAccept", false);
+ m_bool_configs[CONFIG_QUEST_IGNORE_AUTO_COMPLETE] = sConfigMgr->GetBoolDefault("Quests.IgnoreAutoComplete", false);
- m_int_configs[CONFIG_RANDOM_BG_RESET_HOUR] = ConfigMgr::GetIntDefault("Battleground.Random.ResetHour", 6);
+ m_int_configs[CONFIG_RANDOM_BG_RESET_HOUR] = sConfigMgr->GetIntDefault("Battleground.Random.ResetHour", 6);
if (m_int_configs[CONFIG_RANDOM_BG_RESET_HOUR] > 23)
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "Battleground.Random.ResetHour (%i) can't be load. Set to 6.", m_int_configs[CONFIG_RANDOM_BG_RESET_HOUR]);
m_int_configs[CONFIG_RANDOM_BG_RESET_HOUR] = 6;
}
- m_int_configs[CONFIG_GUILD_RESET_HOUR] = ConfigMgr::GetIntDefault("Guild.ResetHour", 6);
+ m_int_configs[CONFIG_GUILD_RESET_HOUR] = sConfigMgr->GetIntDefault("Guild.ResetHour", 6);
if (m_int_configs[CONFIG_GUILD_RESET_HOUR] > 23)
{
TC_LOG_ERROR(LOG_FILTER_GENERAL, "Guild.ResetHour (%i) can't be load. Set to 6.", m_int_configs[CONFIG_GUILD_RESET_HOUR]);
m_int_configs[CONFIG_GUILD_RESET_HOUR] = 6;
}
- m_bool_configs[CONFIG_DETECT_POS_COLLISION] = ConfigMgr::GetBoolDefault("DetectPosCollision", true);
+ m_bool_configs[CONFIG_DETECT_POS_COLLISION] = sConfigMgr->GetBoolDefault("DetectPosCollision", true);
- m_bool_configs[CONFIG_RESTRICTED_LFG_CHANNEL] = ConfigMgr::GetBoolDefault("Channel.RestrictedLfg", true);
- m_bool_configs[CONFIG_TALENTS_INSPECTING] = ConfigMgr::GetBoolDefault("TalentsInspecting", true);
- m_bool_configs[CONFIG_CHAT_FAKE_MESSAGE_PREVENTING] = ConfigMgr::GetBoolDefault("ChatFakeMessagePreventing", false);
- m_int_configs[CONFIG_CHAT_STRICT_LINK_CHECKING_SEVERITY] = ConfigMgr::GetIntDefault("ChatStrictLinkChecking.Severity", 0);
- m_int_configs[CONFIG_CHAT_STRICT_LINK_CHECKING_KICK] = ConfigMgr::GetIntDefault("ChatStrictLinkChecking.Kick", 0);
+ m_bool_configs[CONFIG_RESTRICTED_LFG_CHANNEL] = sConfigMgr->GetBoolDefault("Channel.RestrictedLfg", true);
+ m_bool_configs[CONFIG_TALENTS_INSPECTING] = sConfigMgr->GetBoolDefault("TalentsInspecting", true);
+ m_bool_configs[CONFIG_CHAT_FAKE_MESSAGE_PREVENTING] = sConfigMgr->GetBoolDefault("ChatFakeMessagePreventing", false);
+ m_int_configs[CONFIG_CHAT_STRICT_LINK_CHECKING_SEVERITY] = sConfigMgr->GetIntDefault("ChatStrictLinkChecking.Severity", 0);
+ m_int_configs[CONFIG_CHAT_STRICT_LINK_CHECKING_KICK] = sConfigMgr->GetIntDefault("ChatStrictLinkChecking.Kick", 0);
- m_int_configs[CONFIG_CORPSE_DECAY_NORMAL] = ConfigMgr::GetIntDefault("Corpse.Decay.NORMAL", 60);
- m_int_configs[CONFIG_CORPSE_DECAY_RARE] = ConfigMgr::GetIntDefault("Corpse.Decay.RARE", 300);
- m_int_configs[CONFIG_CORPSE_DECAY_ELITE] = ConfigMgr::GetIntDefault("Corpse.Decay.ELITE", 300);
- m_int_configs[CONFIG_CORPSE_DECAY_RAREELITE] = ConfigMgr::GetIntDefault("Corpse.Decay.RAREELITE", 300);
- m_int_configs[CONFIG_CORPSE_DECAY_WORLDBOSS] = ConfigMgr::GetIntDefault("Corpse.Decay.WORLDBOSS", 3600);
+ m_int_configs[CONFIG_CORPSE_DECAY_NORMAL] = sConfigMgr->GetIntDefault("Corpse.Decay.NORMAL", 60);
+ m_int_configs[CONFIG_CORPSE_DECAY_RARE] = sConfigMgr->GetIntDefault("Corpse.Decay.RARE", 300);
+ m_int_configs[CONFIG_CORPSE_DECAY_ELITE] = sConfigMgr->GetIntDefault("Corpse.Decay.ELITE", 300);
+ m_int_configs[CONFIG_CORPSE_DECAY_RAREELITE] = sConfigMgr->GetIntDefault("Corpse.Decay.RAREELITE", 300);
+ m_int_configs[CONFIG_CORPSE_DECAY_WORLDBOSS] = sConfigMgr->GetIntDefault("Corpse.Decay.WORLDBOSS", 3600);
- m_int_configs[CONFIG_DEATH_SICKNESS_LEVEL] = ConfigMgr::GetIntDefault ("Death.SicknessLevel", 11);
- m_bool_configs[CONFIG_DEATH_CORPSE_RECLAIM_DELAY_PVP] = ConfigMgr::GetBoolDefault("Death.CorpseReclaimDelay.PvP", true);
- m_bool_configs[CONFIG_DEATH_CORPSE_RECLAIM_DELAY_PVE] = ConfigMgr::GetBoolDefault("Death.CorpseReclaimDelay.PvE", true);
- m_bool_configs[CONFIG_DEATH_BONES_WORLD] = ConfigMgr::GetBoolDefault("Death.Bones.World", true);
- m_bool_configs[CONFIG_DEATH_BONES_BG_OR_ARENA] = ConfigMgr::GetBoolDefault("Death.Bones.BattlegroundOrArena", true);
+ m_int_configs[CONFIG_DEATH_SICKNESS_LEVEL] = sConfigMgr->GetIntDefault ("Death.SicknessLevel", 11);
+ m_bool_configs[CONFIG_DEATH_CORPSE_RECLAIM_DELAY_PVP] = sConfigMgr->GetBoolDefault("Death.CorpseReclaimDelay.PvP", true);
+ m_bool_configs[CONFIG_DEATH_CORPSE_RECLAIM_DELAY_PVE] = sConfigMgr->GetBoolDefault("Death.CorpseReclaimDelay.PvE", true);
+ m_bool_configs[CONFIG_DEATH_BONES_WORLD] = sConfigMgr->GetBoolDefault("Death.Bones.World", true);
+ m_bool_configs[CONFIG_DEATH_BONES_BG_OR_ARENA] = sConfigMgr->GetBoolDefault("Death.Bones.BattlegroundOrArena", true);
- m_bool_configs[CONFIG_DIE_COMMAND_MODE] = ConfigMgr::GetBoolDefault("Die.Command.Mode", true);
+ m_bool_configs[CONFIG_DIE_COMMAND_MODE] = sConfigMgr->GetBoolDefault("Die.Command.Mode", true);
- m_float_configs[CONFIG_THREAT_RADIUS] = ConfigMgr::GetFloatDefault("ThreatRadius", 60.0f);
+ m_float_configs[CONFIG_THREAT_RADIUS] = sConfigMgr->GetFloatDefault("ThreatRadius", 60.0f);
// always use declined names in the russian client
m_bool_configs[CONFIG_DECLINED_NAMES_USED] =
- (m_int_configs[CONFIG_REALM_ZONE] == REALM_ZONE_RUSSIAN) ? true : ConfigMgr::GetBoolDefault("DeclinedNames", false);
-
- m_float_configs[CONFIG_LISTEN_RANGE_SAY] = ConfigMgr::GetFloatDefault("ListenRange.Say", 25.0f);
- m_float_configs[CONFIG_LISTEN_RANGE_TEXTEMOTE] = ConfigMgr::GetFloatDefault("ListenRange.TextEmote", 25.0f);
- m_float_configs[CONFIG_LISTEN_RANGE_YELL] = ConfigMgr::GetFloatDefault("ListenRange.Yell", 300.0f);
-
- m_bool_configs[CONFIG_BATTLEGROUND_CAST_DESERTER] = ConfigMgr::GetBoolDefault("Battleground.CastDeserter", true);
- m_bool_configs[CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_ENABLE] = ConfigMgr::GetBoolDefault("Battleground.QueueAnnouncer.Enable", false);
- m_bool_configs[CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_PLAYERONLY] = ConfigMgr::GetBoolDefault("Battleground.QueueAnnouncer.PlayerOnly", false);
- m_int_configs[CONFIG_BATTLEGROUND_INVITATION_TYPE] = ConfigMgr::GetIntDefault ("Battleground.InvitationType", 0);
- m_int_configs[CONFIG_BATTLEGROUND_PREMATURE_FINISH_TIMER] = ConfigMgr::GetIntDefault ("Battleground.PrematureFinishTimer", 5 * MINUTE * IN_MILLISECONDS);
- m_int_configs[CONFIG_BATTLEGROUND_PREMADE_GROUP_WAIT_FOR_MATCH] = ConfigMgr::GetIntDefault ("Battleground.PremadeGroupWaitForMatch", 30 * MINUTE * IN_MILLISECONDS);
- m_bool_configs[CONFIG_BG_XP_FOR_KILL] = ConfigMgr::GetBoolDefault("Battleground.GiveXPForKills", false);
- m_int_configs[CONFIG_ARENA_MAX_RATING_DIFFERENCE] = ConfigMgr::GetIntDefault ("Arena.MaxRatingDifference", 150);
- m_int_configs[CONFIG_ARENA_RATING_DISCARD_TIMER] = ConfigMgr::GetIntDefault ("Arena.RatingDiscardTimer", 10 * MINUTE * IN_MILLISECONDS);
- m_int_configs[CONFIG_ARENA_RATED_UPDATE_TIMER] = ConfigMgr::GetIntDefault ("Arena.RatedUpdateTimer", 5 * IN_MILLISECONDS);
- m_bool_configs[CONFIG_ARENA_AUTO_DISTRIBUTE_POINTS] = ConfigMgr::GetBoolDefault("Arena.AutoDistributePoints", false);
- m_int_configs[CONFIG_ARENA_AUTO_DISTRIBUTE_INTERVAL_DAYS] = ConfigMgr::GetIntDefault ("Arena.AutoDistributeInterval", 7);
- m_bool_configs[CONFIG_ARENA_QUEUE_ANNOUNCER_ENABLE] = ConfigMgr::GetBoolDefault("Arena.QueueAnnouncer.Enable", false);
- m_bool_configs[CONFIG_ARENA_QUEUE_ANNOUNCER_PLAYERONLY] = ConfigMgr::GetBoolDefault("Arena.QueueAnnouncer.PlayerOnly", false);
- m_int_configs[CONFIG_ARENA_SEASON_ID] = ConfigMgr::GetIntDefault ("Arena.ArenaSeason.ID", 1);
- m_int_configs[CONFIG_ARENA_START_RATING] = ConfigMgr::GetIntDefault ("Arena.ArenaStartRating", 0);
- m_int_configs[CONFIG_ARENA_START_PERSONAL_RATING] = ConfigMgr::GetIntDefault ("Arena.ArenaStartPersonalRating", 1000);
- m_int_configs[CONFIG_ARENA_START_MATCHMAKER_RATING] = ConfigMgr::GetIntDefault ("Arena.ArenaStartMatchmakerRating", 1500);
- m_bool_configs[CONFIG_ARENA_SEASON_IN_PROGRESS] = ConfigMgr::GetBoolDefault("Arena.ArenaSeason.InProgress", true);
- m_bool_configs[CONFIG_ARENA_LOG_EXTENDED_INFO] = ConfigMgr::GetBoolDefault("ArenaLog.ExtendedInfo", false);
-
- m_bool_configs[CONFIG_OFFHAND_CHECK_AT_SPELL_UNLEARN] = ConfigMgr::GetBoolDefault("OffhandCheckAtSpellUnlearn", true);
-
- if (int32 clientCacheId = ConfigMgr::GetIntDefault("ClientCacheVersion", 0))
+ (m_int_configs[CONFIG_REALM_ZONE] == REALM_ZONE_RUSSIAN) ? true : sConfigMgr->GetBoolDefault("DeclinedNames", false);
+
+ m_float_configs[CONFIG_LISTEN_RANGE_SAY] = sConfigMgr->GetFloatDefault("ListenRange.Say", 25.0f);
+ m_float_configs[CONFIG_LISTEN_RANGE_TEXTEMOTE] = sConfigMgr->GetFloatDefault("ListenRange.TextEmote", 25.0f);
+ m_float_configs[CONFIG_LISTEN_RANGE_YELL] = sConfigMgr->GetFloatDefault("ListenRange.Yell", 300.0f);
+
+ m_bool_configs[CONFIG_BATTLEGROUND_CAST_DESERTER] = sConfigMgr->GetBoolDefault("Battleground.CastDeserter", true);
+ m_bool_configs[CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_ENABLE] = sConfigMgr->GetBoolDefault("Battleground.QueueAnnouncer.Enable", false);
+ m_bool_configs[CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_PLAYERONLY] = sConfigMgr->GetBoolDefault("Battleground.QueueAnnouncer.PlayerOnly", false);
+ m_int_configs[CONFIG_BATTLEGROUND_INVITATION_TYPE] = sConfigMgr->GetIntDefault ("Battleground.InvitationType", 0);
+ m_int_configs[CONFIG_BATTLEGROUND_PREMATURE_FINISH_TIMER] = sConfigMgr->GetIntDefault ("Battleground.PrematureFinishTimer", 5 * MINUTE * IN_MILLISECONDS);
+ m_int_configs[CONFIG_BATTLEGROUND_PREMADE_GROUP_WAIT_FOR_MATCH] = sConfigMgr->GetIntDefault ("Battleground.PremadeGroupWaitForMatch", 30 * MINUTE * IN_MILLISECONDS);
+ m_bool_configs[CONFIG_BG_XP_FOR_KILL] = sConfigMgr->GetBoolDefault("Battleground.GiveXPForKills", false);
+ m_int_configs[CONFIG_ARENA_MAX_RATING_DIFFERENCE] = sConfigMgr->GetIntDefault ("Arena.MaxRatingDifference", 150);
+ m_int_configs[CONFIG_ARENA_RATING_DISCARD_TIMER] = sConfigMgr->GetIntDefault ("Arena.RatingDiscardTimer", 10 * MINUTE * IN_MILLISECONDS);
+ m_int_configs[CONFIG_ARENA_RATED_UPDATE_TIMER] = sConfigMgr->GetIntDefault ("Arena.RatedUpdateTimer", 5 * IN_MILLISECONDS);
+ m_bool_configs[CONFIG_ARENA_AUTO_DISTRIBUTE_POINTS] = sConfigMgr->GetBoolDefault("Arena.AutoDistributePoints", false);
+ m_int_configs[CONFIG_ARENA_AUTO_DISTRIBUTE_INTERVAL_DAYS] = sConfigMgr->GetIntDefault ("Arena.AutoDistributeInterval", 7);
+ m_bool_configs[CONFIG_ARENA_QUEUE_ANNOUNCER_ENABLE] = sConfigMgr->GetBoolDefault("Arena.QueueAnnouncer.Enable", false);
+ m_bool_configs[CONFIG_ARENA_QUEUE_ANNOUNCER_PLAYERONLY] = sConfigMgr->GetBoolDefault("Arena.QueueAnnouncer.PlayerOnly", false);
+ m_int_configs[CONFIG_ARENA_SEASON_ID] = sConfigMgr->GetIntDefault ("Arena.ArenaSeason.ID", 1);
+ m_int_configs[CONFIG_ARENA_START_RATING] = sConfigMgr->GetIntDefault ("Arena.ArenaStartRating", 0);
+ m_int_configs[CONFIG_ARENA_START_PERSONAL_RATING] = sConfigMgr->GetIntDefault ("Arena.ArenaStartPersonalRating", 1000);
+ m_int_configs[CONFIG_ARENA_START_MATCHMAKER_RATING] = sConfigMgr->GetIntDefault ("Arena.ArenaStartMatchmakerRating", 1500);
+ m_bool_configs[CONFIG_ARENA_SEASON_IN_PROGRESS] = sConfigMgr->GetBoolDefault("Arena.ArenaSeason.InProgress", true);
+ m_bool_configs[CONFIG_ARENA_LOG_EXTENDED_INFO] = sConfigMgr->GetBoolDefault("ArenaLog.ExtendedInfo", false);
+
+ m_bool_configs[CONFIG_OFFHAND_CHECK_AT_SPELL_UNLEARN] = sConfigMgr->GetBoolDefault("OffhandCheckAtSpellUnlearn", true);
+
+ if (int32 clientCacheId = sConfigMgr->GetIntDefault("ClientCacheVersion", 0))
{
// overwrite DB/old value
if (clientCacheId > 0)
@@ -1047,15 +1047,15 @@ void World::LoadConfigSettings(bool reload)
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "ClientCacheVersion can't be negative %d, ignored.", clientCacheId);
}
- m_int_configs[CONFIG_GUILD_EVENT_LOG_COUNT] = ConfigMgr::GetIntDefault("Guild.EventLogRecordsCount", GUILD_EVENTLOG_MAX_RECORDS);
+ m_int_configs[CONFIG_GUILD_EVENT_LOG_COUNT] = sConfigMgr->GetIntDefault("Guild.EventLogRecordsCount", GUILD_EVENTLOG_MAX_RECORDS);
if (m_int_configs[CONFIG_GUILD_EVENT_LOG_COUNT] > GUILD_EVENTLOG_MAX_RECORDS)
m_int_configs[CONFIG_GUILD_EVENT_LOG_COUNT] = GUILD_EVENTLOG_MAX_RECORDS;
- m_int_configs[CONFIG_GUILD_BANK_EVENT_LOG_COUNT] = ConfigMgr::GetIntDefault("Guild.BankEventLogRecordsCount", GUILD_BANKLOG_MAX_RECORDS);
+ m_int_configs[CONFIG_GUILD_BANK_EVENT_LOG_COUNT] = sConfigMgr->GetIntDefault("Guild.BankEventLogRecordsCount", GUILD_BANKLOG_MAX_RECORDS);
if (m_int_configs[CONFIG_GUILD_BANK_EVENT_LOG_COUNT] > GUILD_BANKLOG_MAX_RECORDS)
m_int_configs[CONFIG_GUILD_BANK_EVENT_LOG_COUNT] = GUILD_BANKLOG_MAX_RECORDS;
//visibility on continents
- m_MaxVisibleDistanceOnContinents = ConfigMgr::GetFloatDefault("Visibility.Distance.Continents", DEFAULT_VISIBILITY_DISTANCE);
+ m_MaxVisibleDistanceOnContinents = sConfigMgr->GetFloatDefault("Visibility.Distance.Continents", DEFAULT_VISIBILITY_DISTANCE);
if (m_MaxVisibleDistanceOnContinents < 45*sWorld->getRate(RATE_CREATURE_AGGRO))
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "Visibility.Distance.Continents can't be less max aggro radius %f", 45*sWorld->getRate(RATE_CREATURE_AGGRO));
@@ -1068,7 +1068,7 @@ void World::LoadConfigSettings(bool reload)
}
//visibility in instances
- m_MaxVisibleDistanceInInstances = ConfigMgr::GetFloatDefault("Visibility.Distance.Instances", DEFAULT_VISIBILITY_INSTANCE);
+ m_MaxVisibleDistanceInInstances = sConfigMgr->GetFloatDefault("Visibility.Distance.Instances", DEFAULT_VISIBILITY_INSTANCE);
if (m_MaxVisibleDistanceInInstances < 45*sWorld->getRate(RATE_CREATURE_AGGRO))
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "Visibility.Distance.Instances can't be less max aggro radius %f", 45*sWorld->getRate(RATE_CREATURE_AGGRO));
@@ -1081,7 +1081,7 @@ void World::LoadConfigSettings(bool reload)
}
//visibility in BG/Arenas
- m_MaxVisibleDistanceInBGArenas = ConfigMgr::GetFloatDefault("Visibility.Distance.BGArenas", DEFAULT_VISIBILITY_BGARENAS);
+ m_MaxVisibleDistanceInBGArenas = sConfigMgr->GetFloatDefault("Visibility.Distance.BGArenas", DEFAULT_VISIBILITY_BGARENAS);
if (m_MaxVisibleDistanceInBGArenas < 45*sWorld->getRate(RATE_CREATURE_AGGRO))
{
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "Visibility.Distance.BGArenas can't be less max aggro radius %f", 45*sWorld->getRate(RATE_CREATURE_AGGRO));
@@ -1093,18 +1093,18 @@ void World::LoadConfigSettings(bool reload)
m_MaxVisibleDistanceInBGArenas = MAX_VISIBILITY_DISTANCE;
}
- m_visibility_notify_periodOnContinents = ConfigMgr::GetIntDefault("Visibility.Notify.Period.OnContinents", DEFAULT_VISIBILITY_NOTIFY_PERIOD);
- m_visibility_notify_periodInInstances = ConfigMgr::GetIntDefault("Visibility.Notify.Period.InInstances", DEFAULT_VISIBILITY_NOTIFY_PERIOD);
- m_visibility_notify_periodInBGArenas = ConfigMgr::GetIntDefault("Visibility.Notify.Period.InBGArenas", DEFAULT_VISIBILITY_NOTIFY_PERIOD);
+ m_visibility_notify_periodOnContinents = sConfigMgr->GetIntDefault("Visibility.Notify.Period.OnContinents", DEFAULT_VISIBILITY_NOTIFY_PERIOD);
+ m_visibility_notify_periodInInstances = sConfigMgr->GetIntDefault("Visibility.Notify.Period.InInstances", DEFAULT_VISIBILITY_NOTIFY_PERIOD);
+ m_visibility_notify_periodInBGArenas = sConfigMgr->GetIntDefault("Visibility.Notify.Period.InBGArenas", DEFAULT_VISIBILITY_NOTIFY_PERIOD);
///- Load the CharDelete related config options
- m_int_configs[CONFIG_CHARDELETE_METHOD] = ConfigMgr::GetIntDefault("CharDelete.Method", 0);
- m_int_configs[CONFIG_CHARDELETE_MIN_LEVEL] = ConfigMgr::GetIntDefault("CharDelete.MinLevel", 0);
- m_int_configs[CONFIG_CHARDELETE_HEROIC_MIN_LEVEL] = ConfigMgr::GetIntDefault("CharDelete.Heroic.MinLevel", 0);
- m_int_configs[CONFIG_CHARDELETE_KEEP_DAYS] = ConfigMgr::GetIntDefault("CharDelete.KeepDays", 30);
+ m_int_configs[CONFIG_CHARDELETE_METHOD] = sConfigMgr->GetIntDefault("CharDelete.Method", 0);
+ m_int_configs[CONFIG_CHARDELETE_MIN_LEVEL] = sConfigMgr->GetIntDefault("CharDelete.MinLevel", 0);
+ m_int_configs[CONFIG_CHARDELETE_HEROIC_MIN_LEVEL] = sConfigMgr->GetIntDefault("CharDelete.Heroic.MinLevel", 0);
+ m_int_configs[CONFIG_CHARDELETE_KEEP_DAYS] = sConfigMgr->GetIntDefault("CharDelete.KeepDays", 30);
///- Read the "Data" directory from the config file
- std::string dataPath = ConfigMgr::GetStringDefault("DataDir", "./");
+ std::string dataPath = sConfigMgr->GetStringDefault("DataDir", "./");
if (dataPath.at(dataPath.length()-1) != '/' && dataPath.at(dataPath.length()-1) != '\\')
dataPath.push_back('/');
@@ -1128,13 +1128,13 @@ void World::LoadConfigSettings(bool reload)
TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, "Using DataDir %s", m_dataPath.c_str());
}
- m_bool_configs[CONFIG_ENABLE_MMAPS] = ConfigMgr::GetBoolDefault("mmap.enablePathFinding", false);
+ m_bool_configs[CONFIG_ENABLE_MMAPS] = sConfigMgr->GetBoolDefault("mmap.enablePathFinding", false);
TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, "WORLD: MMap data directory is: %smmaps", m_dataPath.c_str());
- m_bool_configs[CONFIG_VMAP_INDOOR_CHECK] = ConfigMgr::GetBoolDefault("vmap.enableIndoorCheck", 0);
- bool enableIndoor = ConfigMgr::GetBoolDefault("vmap.enableIndoorCheck", true);
- bool enableLOS = ConfigMgr::GetBoolDefault("vmap.enableLOS", true);
- bool enableHeight = ConfigMgr::GetBoolDefault("vmap.enableHeight", true);
+ m_bool_configs[CONFIG_VMAP_INDOOR_CHECK] = sConfigMgr->GetBoolDefault("vmap.enableIndoorCheck", 0);
+ bool enableIndoor = sConfigMgr->GetBoolDefault("vmap.enableIndoorCheck", true);
+ bool enableLOS = sConfigMgr->GetBoolDefault("vmap.enableLOS", true);
+ bool enableHeight = sConfigMgr->GetBoolDefault("vmap.enableHeight", true);
if (!enableHeight)
TC_LOG_ERROR(LOG_FILTER_SERVER_LOADING, "VMap height checking disabled! Creatures movements and other various things WILL be broken! Expect no support.");
@@ -1144,61 +1144,61 @@ void World::LoadConfigSettings(bool reload)
TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, "VMap support included. LineOfSight: %i, getHeight: %i, indoorCheck: %i", enableLOS, enableHeight, enableIndoor);
TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, "VMap data directory is: %svmaps", m_dataPath.c_str());
- m_int_configs[CONFIG_MAX_WHO] = ConfigMgr::GetIntDefault("MaxWhoListReturns", 49);
- m_bool_configs[CONFIG_START_ALL_SPELLS] = ConfigMgr::GetBoolDefault("PlayerStart.AllSpells", false);
+ m_int_configs[CONFIG_MAX_WHO] = sConfigMgr->GetIntDefault("MaxWhoListReturns", 49);
+ m_bool_configs[CONFIG_START_ALL_SPELLS] = sConfigMgr->GetBoolDefault("PlayerStart.AllSpells", false);
if (m_bool_configs[CONFIG_START_ALL_SPELLS])
TC_LOG_WARN(LOG_FILTER_SERVER_LOADING, "PlayerStart.AllSpells enabled - may not function as intended!");
- m_int_configs[CONFIG_HONOR_AFTER_DUEL] = ConfigMgr::GetIntDefault("HonorPointsAfterDuel", 0);
- m_bool_configs[CONFIG_START_ALL_EXPLORED] = ConfigMgr::GetBoolDefault("PlayerStart.MapsExplored", false);
- m_bool_configs[CONFIG_START_ALL_REP] = ConfigMgr::GetBoolDefault("PlayerStart.AllReputation", false);
- m_bool_configs[CONFIG_ALWAYS_MAXSKILL] = ConfigMgr::GetBoolDefault("AlwaysMaxWeaponSkill", false);
- m_bool_configs[CONFIG_PVP_TOKEN_ENABLE] = ConfigMgr::GetBoolDefault("PvPToken.Enable", false);
- m_int_configs[CONFIG_PVP_TOKEN_MAP_TYPE] = ConfigMgr::GetIntDefault("PvPToken.MapAllowType", 4);
- m_int_configs[CONFIG_PVP_TOKEN_ID] = ConfigMgr::GetIntDefault("PvPToken.ItemID", 29434);
- m_int_configs[CONFIG_PVP_TOKEN_COUNT] = ConfigMgr::GetIntDefault("PvPToken.ItemCount", 1);
+ m_int_configs[CONFIG_HONOR_AFTER_DUEL] = sConfigMgr->GetIntDefault("HonorPointsAfterDuel", 0);
+ m_bool_configs[CONFIG_START_ALL_EXPLORED] = sConfigMgr->GetBoolDefault("PlayerStart.MapsExplored", false);
+ m_bool_configs[CONFIG_START_ALL_REP] = sConfigMgr->GetBoolDefault("PlayerStart.AllReputation", false);
+ m_bool_configs[CONFIG_ALWAYS_MAXSKILL] = sConfigMgr->GetBoolDefault("AlwaysMaxWeaponSkill", false);
+ m_bool_configs[CONFIG_PVP_TOKEN_ENABLE] = sConfigMgr->GetBoolDefault("PvPToken.Enable", false);
+ m_int_configs[CONFIG_PVP_TOKEN_MAP_TYPE] = sConfigMgr->GetIntDefault("PvPToken.MapAllowType", 4);
+ m_int_configs[CONFIG_PVP_TOKEN_ID] = sConfigMgr->GetIntDefault("PvPToken.ItemID", 29434);
+ m_int_configs[CONFIG_PVP_TOKEN_COUNT] = sConfigMgr->GetIntDefault("PvPToken.ItemCount", 1);
if (m_int_configs[CONFIG_PVP_TOKEN_COUNT] < 1)
m_int_configs[CONFIG_PVP_TOKEN_COUNT] = 1;
- m_bool_configs[CONFIG_NO_RESET_TALENT_COST] = ConfigMgr::GetBoolDefault("NoResetTalentsCost", false);
- m_bool_configs[CONFIG_SHOW_KICK_IN_WORLD] = ConfigMgr::GetBoolDefault("ShowKickInWorld", false);
- m_int_configs[CONFIG_INTERVAL_LOG_UPDATE] = ConfigMgr::GetIntDefault("RecordUpdateTimeDiffInterval", 60000);
- m_int_configs[CONFIG_MIN_LOG_UPDATE] = ConfigMgr::GetIntDefault("MinRecordUpdateTimeDiff", 100);
- m_int_configs[CONFIG_NUMTHREADS] = ConfigMgr::GetIntDefault("MapUpdate.Threads", 1);
- m_int_configs[CONFIG_MAX_RESULTS_LOOKUP_COMMANDS] = ConfigMgr::GetIntDefault("Command.LookupMaxResults", 0);
+ m_bool_configs[CONFIG_NO_RESET_TALENT_COST] = sConfigMgr->GetBoolDefault("NoResetTalentsCost", false);
+ m_bool_configs[CONFIG_SHOW_KICK_IN_WORLD] = sConfigMgr->GetBoolDefault("ShowKickInWorld", false);
+ m_int_configs[CONFIG_INTERVAL_LOG_UPDATE] = sConfigMgr->GetIntDefault("RecordUpdateTimeDiffInterval", 60000);
+ m_int_configs[CONFIG_MIN_LOG_UPDATE] = sConfigMgr->GetIntDefault("MinRecordUpdateTimeDiff", 100);
+ m_int_configs[CONFIG_NUMTHREADS] = sConfigMgr->GetIntDefault("MapUpdate.Threads", 1);
+ m_int_configs[CONFIG_MAX_RESULTS_LOOKUP_COMMANDS] = sConfigMgr->GetIntDefault("Command.LookupMaxResults", 0);
// chat logging
- m_bool_configs[CONFIG_CHATLOG_CHANNEL] = ConfigMgr::GetBoolDefault("ChatLogs.Channel", false);
- m_bool_configs[CONFIG_CHATLOG_WHISPER] = ConfigMgr::GetBoolDefault("ChatLogs.Whisper", false);
- m_bool_configs[CONFIG_CHATLOG_SYSCHAN] = ConfigMgr::GetBoolDefault("ChatLogs.SysChan", false);
- m_bool_configs[CONFIG_CHATLOG_PARTY] = ConfigMgr::GetBoolDefault("ChatLogs.Party", false);
- m_bool_configs[CONFIG_CHATLOG_RAID] = ConfigMgr::GetBoolDefault("ChatLogs.Raid", false);
- m_bool_configs[CONFIG_CHATLOG_GUILD] = ConfigMgr::GetBoolDefault("ChatLogs.Guild", false);
- m_bool_configs[CONFIG_CHATLOG_PUBLIC] = ConfigMgr::GetBoolDefault("ChatLogs.Public", false);
- m_bool_configs[CONFIG_CHATLOG_ADDON] = ConfigMgr::GetBoolDefault("ChatLogs.Addon", false);
- m_bool_configs[CONFIG_CHATLOG_BGROUND] = ConfigMgr::GetBoolDefault("ChatLogs.Battleground", false);
+ m_bool_configs[CONFIG_CHATLOG_CHANNEL] = sConfigMgr->GetBoolDefault("ChatLogs.Channel", false);
+ m_bool_configs[CONFIG_CHATLOG_WHISPER] = sConfigMgr->GetBoolDefault("ChatLogs.Whisper", false);
+ m_bool_configs[CONFIG_CHATLOG_SYSCHAN] = sConfigMgr->GetBoolDefault("ChatLogs.SysChan", false);
+ m_bool_configs[CONFIG_CHATLOG_PARTY] = sConfigMgr->GetBoolDefault("ChatLogs.Party", false);
+ m_bool_configs[CONFIG_CHATLOG_RAID] = sConfigMgr->GetBoolDefault("ChatLogs.Raid", false);
+ m_bool_configs[CONFIG_CHATLOG_GUILD] = sConfigMgr->GetBoolDefault("ChatLogs.Guild", false);
+ m_bool_configs[CONFIG_CHATLOG_PUBLIC] = sConfigMgr->GetBoolDefault("ChatLogs.Public", false);
+ m_bool_configs[CONFIG_CHATLOG_ADDON] = sConfigMgr->GetBoolDefault("ChatLogs.Addon", false);
+ m_bool_configs[CONFIG_CHATLOG_BGROUND] = sConfigMgr->GetBoolDefault("ChatLogs.Battleground", false);
// Warden
- m_bool_configs[CONFIG_WARDEN_ENABLED] = ConfigMgr::GetBoolDefault("Warden.Enabled", false);
- m_int_configs[CONFIG_WARDEN_NUM_MEM_CHECKS] = ConfigMgr::GetIntDefault("Warden.NumMemChecks", 3);
- m_int_configs[CONFIG_WARDEN_NUM_OTHER_CHECKS] = ConfigMgr::GetIntDefault("Warden.NumOtherChecks", 7);
- m_int_configs[CONFIG_WARDEN_CLIENT_BAN_DURATION] = ConfigMgr::GetIntDefault("Warden.BanDuration", 86400);
- m_int_configs[CONFIG_WARDEN_CLIENT_CHECK_HOLDOFF] = ConfigMgr::GetIntDefault("Warden.ClientCheckHoldOff", 30);
- m_int_configs[CONFIG_WARDEN_CLIENT_FAIL_ACTION] = ConfigMgr::GetIntDefault("Warden.ClientCheckFailAction", 0);
- m_int_configs[CONFIG_WARDEN_CLIENT_RESPONSE_DELAY] = ConfigMgr::GetIntDefault("Warden.ClientResponseDelay", 600);
+ m_bool_configs[CONFIG_WARDEN_ENABLED] = sConfigMgr->GetBoolDefault("Warden.Enabled", false);
+ m_int_configs[CONFIG_WARDEN_NUM_MEM_CHECKS] = sConfigMgr->GetIntDefault("Warden.NumMemChecks", 3);
+ m_int_configs[CONFIG_WARDEN_NUM_OTHER_CHECKS] = sConfigMgr->GetIntDefault("Warden.NumOtherChecks", 7);
+ m_int_configs[CONFIG_WARDEN_CLIENT_BAN_DURATION] = sConfigMgr->GetIntDefault("Warden.BanDuration", 86400);
+ m_int_configs[CONFIG_WARDEN_CLIENT_CHECK_HOLDOFF] = sConfigMgr->GetIntDefault("Warden.ClientCheckHoldOff", 30);
+ m_int_configs[CONFIG_WARDEN_CLIENT_FAIL_ACTION] = sConfigMgr->GetIntDefault("Warden.ClientCheckFailAction", 0);
+ m_int_configs[CONFIG_WARDEN_CLIENT_RESPONSE_DELAY] = sConfigMgr->GetIntDefault("Warden.ClientResponseDelay", 600);
// Dungeon finder
- m_int_configs[CONFIG_LFG_OPTIONSMASK] = ConfigMgr::GetIntDefault("DungeonFinder.OptionsMask", 1);
+ m_int_configs[CONFIG_LFG_OPTIONSMASK] = sConfigMgr->GetIntDefault("DungeonFinder.OptionsMask", 1);
// DBC_ItemAttributes
- m_bool_configs[CONFIG_DBC_ENFORCE_ITEM_ATTRIBUTES] = ConfigMgr::GetBoolDefault("DBC.EnforceItemAttributes", true);
+ m_bool_configs[CONFIG_DBC_ENFORCE_ITEM_ATTRIBUTES] = sConfigMgr->GetBoolDefault("DBC.EnforceItemAttributes", true);
// Max instances per hour
- m_int_configs[CONFIG_MAX_INSTANCES_PER_HOUR] = ConfigMgr::GetIntDefault("AccountInstancesPerHour", 5);
+ m_int_configs[CONFIG_MAX_INSTANCES_PER_HOUR] = sConfigMgr->GetIntDefault("AccountInstancesPerHour", 5);
// AutoBroadcast
- m_bool_configs[CONFIG_AUTOBROADCAST] = ConfigMgr::GetBoolDefault("AutoBroadcast.On", false);
- m_int_configs[CONFIG_AUTOBROADCAST_CENTER] = ConfigMgr::GetIntDefault("AutoBroadcast.Center", 0);
- m_int_configs[CONFIG_AUTOBROADCAST_INTERVAL] = ConfigMgr::GetIntDefault("AutoBroadcast.Timer", 60000);
+ m_bool_configs[CONFIG_AUTOBROADCAST] = sConfigMgr->GetBoolDefault("AutoBroadcast.On", false);
+ m_int_configs[CONFIG_AUTOBROADCAST_CENTER] = sConfigMgr->GetIntDefault("AutoBroadcast.Center", 0);
+ m_int_configs[CONFIG_AUTOBROADCAST_INTERVAL] = sConfigMgr->GetIntDefault("AutoBroadcast.Timer", 60000);
if (reload)
{
m_timers[WUPDATE_AUTOBROADCAST].SetInterval(m_int_configs[CONFIG_AUTOBROADCAST_INTERVAL]);
@@ -1206,21 +1206,28 @@ void World::LoadConfigSettings(bool reload)
}
// MySQL ping time interval
- m_int_configs[CONFIG_DB_PING_INTERVAL] = ConfigMgr::GetIntDefault("MaxPingTime", 30);
+ m_int_configs[CONFIG_DB_PING_INTERVAL] = sConfigMgr->GetIntDefault("MaxPingTime", 30);
// misc
- m_bool_configs[CONFIG_PDUMP_NO_PATHS] = ConfigMgr::GetBoolDefault("PlayerDump.DisallowPaths", true);
- m_bool_configs[CONFIG_PDUMP_NO_OVERWRITE] = ConfigMgr::GetBoolDefault("PlayerDump.DisallowOverwrite", true);
- m_bool_configs[CONFIG_UI_QUESTLEVELS_IN_DIALOGS] = ConfigMgr::GetBoolDefault("UI.ShowQuestLevelsInDialogs", false);
+ m_bool_configs[CONFIG_PDUMP_NO_PATHS] = sConfigMgr->GetBoolDefault("PlayerDump.DisallowPaths", true);
+ m_bool_configs[CONFIG_PDUMP_NO_OVERWRITE] = sConfigMgr->GetBoolDefault("PlayerDump.DisallowOverwrite", true);
+ m_bool_configs[CONFIG_UI_QUESTLEVELS_IN_DIALOGS] = sConfigMgr->GetBoolDefault("UI.ShowQuestLevelsInDialogs", false);
// Wintergrasp battlefield
- m_bool_configs[CONFIG_WINTERGRASP_ENABLE] = ConfigMgr::GetBoolDefault("Wintergrasp.Enable", false);
- m_int_configs[CONFIG_WINTERGRASP_PLR_MAX] = ConfigMgr::GetIntDefault("Wintergrasp.PlayerMax", 100);
- m_int_configs[CONFIG_WINTERGRASP_PLR_MIN] = ConfigMgr::GetIntDefault("Wintergrasp.PlayerMin", 0);
- m_int_configs[CONFIG_WINTERGRASP_PLR_MIN_LVL] = ConfigMgr::GetIntDefault("Wintergrasp.PlayerMinLvl", 77);
- m_int_configs[CONFIG_WINTERGRASP_BATTLETIME] = ConfigMgr::GetIntDefault("Wintergrasp.BattleTimer", 30);
- m_int_configs[CONFIG_WINTERGRASP_NOBATTLETIME] = ConfigMgr::GetIntDefault("Wintergrasp.NoBattleTimer", 150);
- m_int_configs[CONFIG_WINTERGRASP_RESTART_AFTER_CRASH] = ConfigMgr::GetIntDefault("Wintergrasp.CrashRestartTimer", 10);
+ m_bool_configs[CONFIG_WINTERGRASP_ENABLE] = sConfigMgr->GetBoolDefault("Wintergrasp.Enable", false);
+ m_int_configs[CONFIG_WINTERGRASP_PLR_MAX] = sConfigMgr->GetIntDefault("Wintergrasp.PlayerMax", 100);
+ m_int_configs[CONFIG_WINTERGRASP_PLR_MIN] = sConfigMgr->GetIntDefault("Wintergrasp.PlayerMin", 0);
+ m_int_configs[CONFIG_WINTERGRASP_PLR_MIN_LVL] = sConfigMgr->GetIntDefault("Wintergrasp.PlayerMinLvl", 77);
+ m_int_configs[CONFIG_WINTERGRASP_BATTLETIME] = sConfigMgr->GetIntDefault("Wintergrasp.BattleTimer", 30);
+ m_int_configs[CONFIG_WINTERGRASP_NOBATTLETIME] = sConfigMgr->GetIntDefault("Wintergrasp.NoBattleTimer", 150);
+ m_int_configs[CONFIG_WINTERGRASP_RESTART_AFTER_CRASH] = sConfigMgr->GetIntDefault("Wintergrasp.CrashRestartTimer", 10);
+
+ // Stats limits
+ m_bool_configs[CONFIG_STATS_LIMITS_ENABLE] = sConfigMgr->GetBoolDefault("Stats.Limits.Enable", false);
+ m_float_configs[CONFIG_STATS_LIMITS_DODGE] = sConfigMgr->GetFloatDefault("Stats.Limits.Dodge", 95.0f);
+ m_float_configs[CONFIG_STATS_LIMITS_PARRY] = sConfigMgr->GetFloatDefault("Stats.Limits.Parry", 95.0f);
+ m_float_configs[CONFIG_STATS_LIMITS_BLOCK] = sConfigMgr->GetFloatDefault("Stats.Limits.Block", 95.0f);
+ m_float_configs[CONFIG_STATS_LIMITS_CRIT] = sConfigMgr->GetFloatDefault("Stats.Limits.Crit", 95.0f);
// call ScriptMgr if we're reloading the configuration
if (reload)
@@ -1296,17 +1303,17 @@ void World::SetInitialWorldSettings()
LoadDBCStores(m_dataPath);
DetectDBCLang();
- TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, "Loading spell dbc data corrections...");
- sSpellMgr->LoadDbcDataCorrections();
-
TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, "Loading SpellInfo store...");
sSpellMgr->LoadSpellInfoStore();
+ TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, "Loading SpellInfo corrections...");
+ sSpellMgr->LoadSpellInfoCorrections();
+
TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, "Loading SkillLineAbilityMultiMap Data...");
sSpellMgr->LoadSkillLineAbilityMap();
- TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, "Loading spell custom attributes...");
- sSpellMgr->LoadSpellCustomAttr();
+ TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, "Loading SpellInfo custom attributes...");
+ sSpellMgr->LoadSpellInfoCustomAttributes();
TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, "Loading GameObject models...");
LoadGameObjectModelList();
@@ -1453,8 +1460,8 @@ void World::SetInitialWorldSettings()
TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, "Loading Quest POI");
sObjectMgr->LoadQuestPOI();
- TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, "Loading Quests Relations...");
- sObjectMgr->LoadQuestRelations(); // must be after quest load
+ TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, "Loading Quests Starters and Enders...");
+ sObjectMgr->LoadQuestStartersAndEnders(); // must be after quest load
TC_LOG_INFO(LOG_FILTER_SERVER_LOADING, "Loading Objects Pooling Data...");
sPoolMgr->LoadFromDB();
@@ -1789,13 +1796,13 @@ void World::SetInitialWorldSettings()
TC_LOG_INFO(LOG_FILTER_WORLDSERVER, "World initialized in %u minutes %u seconds", (startupDuration / 60000), ((startupDuration % 60000) / 1000));
- if (uint32 realmId = ConfigMgr::GetIntDefault("RealmID", 0)) // 0 reserved for auth
+ if (uint32 realmId = sConfigMgr->GetIntDefault("RealmID", 0)) // 0 reserved for auth
sLog->SetRealmId(realmId);
}
void World::DetectDBCLang()
{
- uint8 m_lang_confid = ConfigMgr::GetIntDefault("DBC.Locale", 255);
+ uint8 m_lang_confid = sConfigMgr->GetIntDefault("DBC.Locale", 255);
if (m_lang_confid != 255 && m_lang_confid >= TOTAL_LOCALES)
{
@@ -1869,7 +1876,7 @@ void World::LoadAutobroadcasts()
m_Autobroadcasts.clear();
m_AutobroadcastsWeights.clear();
- uint32 realmId = ConfigMgr::GetIntDefault("RealmID", 0);
+ uint32 realmId = sConfigMgr->GetIntDefault("RealmID", 0);
PreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_AUTOBROADCAST);
stmt->setInt32(0, realmId);
PreparedQueryResult result = LoginDatabase.Query(stmt);
@@ -2167,7 +2174,7 @@ namespace Trinity
{
WorldPacket* data = new WorldPacket();
- uint32 lineLength = (line ? strlen(line) : 0) + 1;
+ uint32 lineLength = strlen(line) + 1;
data->Initialize(SMSG_MESSAGECHAT, 100); // guess size
*data << uint8(CHAT_MSG_SYSTEM);
@@ -2675,14 +2682,12 @@ void World::SendAutoBroadcast()
if (abcenter == 0)
sWorld->SendWorldText(LANG_AUTO_BROADCAST, msg.c_str());
-
else if (abcenter == 1)
{
WorldPacket data(SMSG_NOTIFICATION, (msg.size()+1));
data << msg;
sWorld->SendGlobalMessage(&data);
}
-
else if (abcenter == 2)
{
sWorld->SendWorldText(LANG_AUTO_BROADCAST, msg.c_str());
diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h
index 984a1709ac8..12586ed4969 100644
--- a/src/server/game/World/World.h
+++ b/src/server/game/World/World.h
@@ -159,6 +159,7 @@ enum WorldBoolConfigs
CONFIG_WINTERGRASP_ENABLE,
CONFIG_UI_QUESTLEVELS_IN_DIALOGS, // Should we add quest levels to the title in the NPC dialogs?
CONFIG_EVENT_ANNOUNCE,
+ CONFIG_STATS_LIMITS_ENABLE,
BOOL_CONFIG_VALUE_COUNT
};
@@ -175,6 +176,10 @@ enum WorldFloatConfigs
CONFIG_CREATURE_FAMILY_ASSISTANCE_RADIUS,
CONFIG_THREAT_RADIUS,
CONFIG_CHANCE_OF_GM_SURVEY,
+ CONFIG_STATS_LIMITS_DODGE,
+ CONFIG_STATS_LIMITS_PARRY,
+ CONFIG_STATS_LIMITS_BLOCK,
+ CONFIG_STATS_LIMITS_CRIT,
FLOAT_CONFIG_VALUE_COUNT
};
diff --git a/src/server/scripts/Commands/CMakeLists.txt b/src/server/scripts/Commands/CMakeLists.txt
index 15e16c2caf1..ce31fa1f4d3 100644
--- a/src/server/scripts/Commands/CMakeLists.txt
+++ b/src/server/scripts/Commands/CMakeLists.txt
@@ -12,6 +12,7 @@ set(scripts_STAT_SRCS
${scripts_STAT_SRCS}
Commands/cs_account.cpp
Commands/cs_achievement.cpp
+ Commands/cs_arena.cpp
Commands/cs_ban.cpp
Commands/cs_bf.cpp
Commands/cs_cast.cpp
diff --git a/src/server/scripts/Commands/cs_account.cpp b/src/server/scripts/Commands/cs_account.cpp
index 9aa68e0892c..9b98fb5d151 100644
--- a/src/server/scripts/Commands/cs_account.cpp
+++ b/src/server/scripts/Commands/cs_account.cpp
@@ -33,7 +33,7 @@ class account_commandscript : public CommandScript
public:
account_commandscript() : CommandScript("account_commandscript") { }
- ChatCommand* GetCommands() const
+ ChatCommand* GetCommands() const OVERRIDE
{
static ChatCommand accountSetCommandTable[] =
{
@@ -482,7 +482,7 @@ public:
char* arg3 = strtok(NULL, " ");
bool isAccountNameGiven = true;
- if (arg1 && !arg3)
+ if (!arg3)
{
if (!handler->getSelectedPlayer())
return false;
diff --git a/src/server/scripts/Commands/cs_achievement.cpp b/src/server/scripts/Commands/cs_achievement.cpp
index fa97792b85c..8b7151046b3 100644
--- a/src/server/scripts/Commands/cs_achievement.cpp
+++ b/src/server/scripts/Commands/cs_achievement.cpp
@@ -33,7 +33,7 @@ class achievement_commandscript : public CommandScript
public:
achievement_commandscript() : CommandScript("achievement_commandscript") { }
- ChatCommand* GetCommands() const
+ ChatCommand* GetCommands() const OVERRIDE
{
static ChatCommand achievementCommandTable[] =
{
diff --git a/src/server/scripts/Commands/cs_arena.cpp b/src/server/scripts/Commands/cs_arena.cpp
new file mode 100644
index 00000000000..4dbdab25747
--- /dev/null
+++ b/src/server/scripts/Commands/cs_arena.cpp
@@ -0,0 +1,361 @@
+/*
+ * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/* ScriptData
+Name: arena_commandscript
+%Complete: 100
+Comment: All arena team related commands
+Category: commandscripts
+EndScriptData */
+
+#include "ObjectMgr.h"
+#include "Chat.h"
+#include "Language.h"
+#include "ArenaTeamMgr.h"
+#include "Player.h"
+#include "ScriptMgr.h"
+
+class arena_commandscript : public CommandScript
+{
+public:
+ arena_commandscript() : CommandScript("arena_commandscript") { }
+
+ ChatCommand* GetCommands() const OVERRIDE
+ {
+ static ChatCommand arenaCommandTable[] =
+ {
+ { "create", SEC_ADMINISTRATOR, true, &HandleArenaCreateCommand, "", NULL },
+ { "disband", SEC_ADMINISTRATOR, true, &HandleArenaDisbandCommand, "", NULL },
+ { "rename", SEC_ADMINISTRATOR, true, &HandleArenaRenameCommand, "", NULL },
+ { "captain", SEC_ADMINISTRATOR, false, &HandleArenaCaptainCommand, "", NULL },
+ { "info", SEC_GAMEMASTER, true, &HandleArenaInfoCommand, "", NULL },
+ { "lookup", SEC_GAMEMASTER, false, &HandleArenaLookupCommand, "", NULL },
+ { NULL, SEC_GAMEMASTER, false, NULL, "", NULL }
+ };
+ static ChatCommand commandTable[] =
+ {
+ { "arena", SEC_GAMEMASTER, false, NULL, "", arenaCommandTable },
+ { NULL, SEC_PLAYER, false, NULL, "", NULL }
+ };
+ return commandTable;
+ }
+
+ static bool HandleArenaCreateCommand(ChatHandler* handler, char const* args)
+ {
+ if (!*args)
+ return false;
+
+ Player* target;
+ if (!handler->extractPlayerTarget(*args != '"' ? (char*)args : NULL, &target))
+ return false;
+
+ char* tailStr = *args != '"' ? strtok(NULL, "") : (char*)args;
+ if (!tailStr)
+ return false;
+
+ char* name = handler->extractQuotedArg(tailStr);
+ if (!name)
+ return false;
+
+ char* typeStr = strtok(NULL, "");
+ if (!typeStr)
+ return false;
+
+ int8 type = atoi(typeStr);
+ if (sArenaTeamMgr->GetArenaTeamByName(name))
+ {
+ handler->PSendSysMessage(LANG_ARENA_ERROR_NAME_EXISTS, name);
+ handler->SetSentErrorMessage(true);
+ return false;
+ }
+
+ if (type == 2 || type == 3 || type == 5 )
+ {
+ if (Player::GetArenaTeamIdFromDB(target->GetGUID(), type) != 0)
+ {
+ handler->PSendSysMessage(LANG_ARENA_ERROR_SIZE, target->GetName().c_str());
+ handler->SetSentErrorMessage(true);
+ return false;
+ }
+
+ ArenaTeam* arena = new ArenaTeam();
+
+ if (!arena->Create(target->GetGUID(), type, name, 4293102085, 101, 4293253939, 4, 4284049911))
+ {
+ delete arena;
+ handler->SendSysMessage(LANG_BAD_VALUE);
+ handler->SetSentErrorMessage(true);
+ return false;
+ }
+
+ sArenaTeamMgr->AddArenaTeam(arena);
+ handler->PSendSysMessage(LANG_ARENA_CREATE, arena->GetName().c_str(), arena->GetId(), arena->GetType(), arena->GetCaptain());
+ }
+ else
+ {
+ handler->SendSysMessage(LANG_BAD_VALUE);
+ handler->SetSentErrorMessage(true);
+ return false;
+ }
+
+ return true;
+ }
+
+ static bool HandleArenaDisbandCommand(ChatHandler* handler, char const* args)
+ {
+ if (!*args)
+ return false;
+
+ uint32 teamId = atoi((char*)args);
+ if (!teamId)
+ return false;
+
+ ArenaTeam* arena = sArenaTeamMgr->GetArenaTeamById(teamId);
+
+ if (!arena)
+ {
+ handler->PSendSysMessage(LANG_ARENA_ERROR_NOT_FOUND, teamId);
+ handler->SetSentErrorMessage(true);
+ return false;
+ }
+
+ if (arena->IsFighting())
+ {
+ handler->SendSysMessage(LANG_ARENA_ERROR_COMBAT);
+ handler->SetSentErrorMessage(true);
+ return false;
+ }
+
+ std::string name = arena->GetName();
+ arena->Disband();
+ if (handler->GetSession())
+ TC_LOG_DEBUG(LOG_FILTER_ARENAS, "GameMaster: %s [GUID: %u] disbanded arena team type: %u [Id: %u].",
+ handler->GetSession()->GetPlayer()->GetName().c_str(), handler->GetSession()->GetPlayer()->GetGUIDLow(), arena->GetType(), teamId);
+ else
+ TC_LOG_DEBUG(LOG_FILTER_ARENAS, "Console: disbanded arena team type: %u [Id: %u].", arena->GetType(), teamId);
+
+ delete(arena);
+
+ handler->PSendSysMessage(LANG_ARENA_DISBAND, name.c_str(), teamId);
+ return true;
+ }
+
+ static bool HandleArenaRenameCommand(ChatHandler* handler, char const* _args)
+ {
+ if (!*_args)
+ return false;
+
+ char* args = (char *)_args;
+
+ char const* oldArenaStr = handler->extractQuotedArg(args);
+ if (!oldArenaStr)
+ {
+ handler->SendSysMessage(LANG_BAD_VALUE);
+ handler->SetSentErrorMessage(true);
+ return false;
+ }
+
+ char const* newArenaStr = handler->extractQuotedArg(strtok(NULL, ""));
+ if (!newArenaStr)
+ {
+ handler->SendSysMessage(LANG_BAD_VALUE);
+ handler->SetSentErrorMessage(true);
+ return false;
+ }
+
+ ArenaTeam* arena = sArenaTeamMgr->GetArenaTeamByName(oldArenaStr);
+ if (!arena)
+ {
+ handler->PSendSysMessage(LANG_AREAN_ERROR_NAME_NOT_FOUND, oldArenaStr);
+ handler->SetSentErrorMessage(true);
+ return false;
+ }
+
+ if (sArenaTeamMgr->GetArenaTeamByName(newArenaStr))
+ {
+ handler->PSendSysMessage(LANG_ARENA_ERROR_NAME_EXISTS, oldArenaStr);
+ handler->SetSentErrorMessage(true);
+ return false;
+ }
+
+ if (arena->IsFighting())
+ {
+ handler->SendSysMessage(LANG_ARENA_ERROR_COMBAT);
+ handler->SetSentErrorMessage(true);
+ return false;
+ }
+
+ if (!arena->SetName(newArenaStr))
+ {
+ handler->SendSysMessage(LANG_BAD_VALUE);
+ handler->SetSentErrorMessage(true);
+ return false;
+ }
+
+ handler->PSendSysMessage(LANG_ARENA_RENAME, arena->GetId(), oldArenaStr, newArenaStr);
+ if (handler->GetSession())
+ TC_LOG_DEBUG(LOG_FILTER_ARENAS, "GameMaster: %s [GUID: %u] rename arena team \"%s\"[Id: %u] to \"%s\"",
+ handler->GetSession()->GetPlayer()->GetName().c_str(), handler->GetSession()->GetPlayer()->GetGUIDLow(), oldArenaStr, arena->GetId(), newArenaStr);
+ else
+ TC_LOG_DEBUG(LOG_FILTER_ARENAS, "Console: rename arena team \"%s\"[Id: %u] to \"%s\"", oldArenaStr, arena->GetId(), newArenaStr);
+
+ return true;
+ }
+
+ static bool HandleArenaCaptainCommand(ChatHandler* handler, char const* args)
+ {
+ if (!*args)
+ return false;
+
+ char* idStr;
+ char* nameStr;
+ handler->extractOptFirstArg((char*)args, &idStr, &nameStr);
+ if (!idStr)
+ return false;
+
+ uint32 teamId = atoi(idStr);
+ if (!teamId)
+ return false;
+
+ Player* target;
+ uint64 targetGuid;
+ if (!handler->extractPlayerTarget(nameStr, &target, &targetGuid))
+ return false;
+
+ ArenaTeam* arena = sArenaTeamMgr->GetArenaTeamById(teamId);
+
+ if (!arena)
+ {
+ handler->PSendSysMessage(LANG_ARENA_ERROR_NOT_FOUND, teamId);
+ handler->SetSentErrorMessage(true);
+ return false;
+ }
+
+ if (!target)
+ {
+ handler->PSendSysMessage(LANG_PLAYER_NOT_EXIST_OR_OFFLINE, nameStr);
+ handler->SetSentErrorMessage(true);
+ return false;
+ }
+
+ if (arena->IsFighting())
+ {
+ handler->SendSysMessage(LANG_ARENA_ERROR_COMBAT);
+ handler->SetSentErrorMessage(true);
+ return false;
+ }
+
+ if (!arena->IsMember(targetGuid))
+ {
+ handler->PSendSysMessage(LANG_ARENA_ERROR_NOT_MEMBER, nameStr, arena->GetName().c_str());
+ handler->SetSentErrorMessage(true);
+ return false;
+ }
+
+ if (arena->GetCaptain() == targetGuid)
+ {
+ handler->PSendSysMessage(LANG_ARENA_ERROR_CAPTAIN, nameStr, arena->GetName().c_str());
+ handler->SetSentErrorMessage(true);
+ return false;
+ }
+
+ arena->SetCaptain(targetGuid);
+
+ CharacterNameData const* oldCaptainNameData = sWorld->GetCharacterNameData(GUID_LOPART(arena->GetCaptain()));
+ if (!oldCaptainNameData)
+ {
+ handler->SetSentErrorMessage(true);
+ return false;
+ }
+
+ handler->PSendSysMessage(LANG_ARENA_CAPTAIN, arena->GetName().c_str(), arena->GetId(), oldCaptainNameData->m_name.c_str(), target->GetName().c_str());
+ if (handler->GetSession())
+ TC_LOG_DEBUG(LOG_FILTER_ARENAS, "GameMaster: %s [GUID: %u] promoted player: %s [GUID: %u] to leader of arena team \"%s\"[Id: %u]",
+ handler->GetSession()->GetPlayer()->GetName().c_str(), handler->GetSession()->GetPlayer()->GetGUIDLow(), target->GetName().c_str(), target->GetGUIDLow(), arena->GetName().c_str(), arena->GetId());
+ else
+ TC_LOG_DEBUG(LOG_FILTER_ARENAS, "Console: promoted player: %s [GUID: %u] to leader of arena team \"%s\"[Id: %u]",
+ target->GetName().c_str(), target->GetGUIDLow(), arena->GetName().c_str(), arena->GetId());
+
+ return true;
+ }
+
+ static bool HandleArenaInfoCommand(ChatHandler* handler, char const* args)
+ {
+ if (!*args)
+ return false;
+
+ uint32 teamId = atoi((char*)args);
+ if (!teamId)
+ return false;
+
+ ArenaTeam* arena = sArenaTeamMgr->GetArenaTeamById(teamId);
+
+ if (!arena)
+ {
+ handler->PSendSysMessage(LANG_ARENA_ERROR_NOT_FOUND, teamId);
+ handler->SetSentErrorMessage(true);
+ return false;
+ }
+
+ handler->PSendSysMessage(LANG_ARENA_INFO_HEADER, arena->GetName().c_str(), arena->GetId(), arena->GetRating(), arena->GetType(), arena->GetType());
+ for (ArenaTeam::MemberList::iterator itr = arena->m_membersBegin(); itr != arena->m_membersEnd(); ++itr)
+ handler->PSendSysMessage(LANG_ARENA_INFO_MEMBERS, itr->Name.c_str(), GUID_LOPART(itr->Guid), itr->PersonalRating, (arena->GetCaptain() == itr->Guid ? "- Captain" : ""));
+
+ return true;
+ }
+
+ static bool HandleArenaLookupCommand(ChatHandler* handler, char const* args)
+ {
+ if (!*args)
+ return false;
+
+ std::string namepart = args;
+ std::wstring wnamepart;
+
+ if (!Utf8toWStr(namepart, wnamepart))
+ return false;
+
+ wstrToLower(wnamepart);
+
+ bool found = false;
+ ArenaTeamMgr::ArenaTeamContainer::const_iterator i = sArenaTeamMgr->GetArenaTeamMapBegin();
+ for (; i != sArenaTeamMgr->GetArenaTeamMapEnd(); ++i)
+ {
+ ArenaTeam* arena = i->second;
+
+ if (Utf8FitTo(arena->GetName(), wnamepart))
+ {
+ if (handler->GetSession())
+ {
+ handler->PSendSysMessage(LANG_ARENA_LOOKUP, arena->GetName().c_str(), arena->GetId(), arena->GetType(), arena->GetType());
+ found = true;
+ continue;
+ }
+ }
+ }
+
+ if (!found)
+ handler->PSendSysMessage(LANG_AREAN_ERROR_NAME_NOT_FOUND, namepart.c_str());
+
+ return true;
+ }
+};
+
+void AddSC_arena_commandscript()
+{
+ new arena_commandscript();
+}
diff --git a/src/server/scripts/Commands/cs_ban.cpp b/src/server/scripts/Commands/cs_ban.cpp
index 0ed19a76984..c3eb92cae32 100644
--- a/src/server/scripts/Commands/cs_ban.cpp
+++ b/src/server/scripts/Commands/cs_ban.cpp
@@ -35,7 +35,7 @@ class ban_commandscript : public CommandScript
public:
ban_commandscript() : CommandScript("ban_commandscript") { }
- ChatCommand* GetCommands() const
+ ChatCommand* GetCommands() const OVERRIDE
{
static ChatCommand unbanCommandTable[] =
{
diff --git a/src/server/scripts/Commands/cs_bf.cpp b/src/server/scripts/Commands/cs_bf.cpp
index 6f5c00940f4..4593a88cc90 100644
--- a/src/server/scripts/Commands/cs_bf.cpp
+++ b/src/server/scripts/Commands/cs_bf.cpp
@@ -31,7 +31,7 @@ class bf_commandscript : public CommandScript
public:
bf_commandscript() : CommandScript("bf_commandscript") { }
- ChatCommand* GetCommands() const
+ ChatCommand* GetCommands() const OVERRIDE
{
static ChatCommand battlefieldcommandTable[] =
{
diff --git a/src/server/scripts/Commands/cs_cast.cpp b/src/server/scripts/Commands/cs_cast.cpp
index cb4f0ecf68d..1dbfb0c2b8a 100644
--- a/src/server/scripts/Commands/cs_cast.cpp
+++ b/src/server/scripts/Commands/cs_cast.cpp
@@ -33,7 +33,7 @@ class cast_commandscript : public CommandScript
public:
cast_commandscript() : CommandScript("cast_commandscript") { }
- ChatCommand* GetCommands() const
+ ChatCommand* GetCommands() const OVERRIDE
{
static ChatCommand castCommandTable[] =
{
@@ -230,7 +230,7 @@ public:
return false;
}
- if (!caster->getVictim())
+ if (!caster->GetVictim())
{
handler->SendSysMessage(LANG_SELECTED_TARGET_NOT_HAVE_VICTIM);
handler->SetSentErrorMessage(true);
@@ -256,7 +256,7 @@ public:
bool triggered = (triggeredStr != NULL);
- caster->CastSpell(caster->getVictim(), spellId, triggered);
+ caster->CastSpell(caster->GetVictim(), spellId, triggered);
return true;
}
diff --git a/src/server/scripts/Commands/cs_character.cpp b/src/server/scripts/Commands/cs_character.cpp
index fdcf88177a9..7a49fc2d191 100644
--- a/src/server/scripts/Commands/cs_character.cpp
+++ b/src/server/scripts/Commands/cs_character.cpp
@@ -35,7 +35,7 @@ class character_commandscript : public CommandScript
public:
character_commandscript() : CommandScript("character_commandscript") { }
- ChatCommand* GetCommands() const
+ ChatCommand* GetCommands() const OVERRIDE
{
static ChatCommand pdumpCommandTable[] =
{
@@ -281,7 +281,7 @@ public:
if (name.empty())
continue;
- char const* activeStr = target && target->GetUInt32Value(PLAYER_CHOSEN_TITLE) == titleInfo->bit_index
+ char const* activeStr = target->GetUInt32Value(PLAYER_CHOSEN_TITLE) == titleInfo->bit_index
? handler->GetTrinityString(LANG_ACTIVE)
: "";
@@ -320,7 +320,7 @@ public:
// check online security
if (handler->HasLowerSecurity(target, 0))
return false;
-
+
playerOldName = target->GetName();
}
else
@@ -345,7 +345,7 @@ public:
handler->SetSentErrorMessage(true);
return false;
}
-
+
if (WorldSession* session = handler->GetSession())
{
if (!session->HasPermission(RBAC_PERM_SKIP_CHECK_CHARACTER_CREATION_RESERVEDNAME) && sObjectMgr->IsReservedName(newName))
diff --git a/src/server/scripts/Commands/cs_cheat.cpp b/src/server/scripts/Commands/cs_cheat.cpp
index 9dbc9900e58..36d03797426 100644
--- a/src/server/scripts/Commands/cs_cheat.cpp
+++ b/src/server/scripts/Commands/cs_cheat.cpp
@@ -33,7 +33,7 @@ class cheat_commandscript : public CommandScript
public:
cheat_commandscript() : CommandScript("cheat_commandscript") { }
- ChatCommand* GetCommands() const
+ ChatCommand* GetCommands() const OVERRIDE
{
static ChatCommand cheatCommandTable[] =
diff --git a/src/server/scripts/Commands/cs_debug.cpp b/src/server/scripts/Commands/cs_debug.cpp
index 4719a460c4f..f6ee0faaa31 100644
--- a/src/server/scripts/Commands/cs_debug.cpp
+++ b/src/server/scripts/Commands/cs_debug.cpp
@@ -40,7 +40,7 @@ class debug_commandscript : public CommandScript
public:
debug_commandscript() : CommandScript("debug_commandscript") { }
- ChatCommand* GetCommands() const
+ ChatCommand* GetCommands() const OVERRIDE
{
static ChatCommand debugPlayCommandTable[] =
{
@@ -258,7 +258,7 @@ public:
if (!unit || (unit->GetTypeId() != TYPEID_PLAYER))
player = handler->GetSession()->GetPlayer();
else
- player = (Player*)unit;
+ player = unit->ToPlayer();
if (!unit)
unit = player;
@@ -796,7 +796,7 @@ public:
static bool HandleDebugThreatListCommand(ChatHandler* handler, char const* /*args*/)
{
Creature* target = handler->getSelectedCreature();
- if (!target || target->isTotem() || target->isPet())
+ if (!target || target->IsTotem() || target->IsPet())
return false;
ThreatContainer::StorageType const &threatList = target->getThreatManager().getThreatList();
@@ -825,7 +825,7 @@ public:
handler->PSendSysMessage("Hostil reference list of %s (guid %u)", target->GetName().c_str(), target->GetGUIDLow());
while (ref)
{
- if (Unit* unit = ref->getSource()->getOwner())
+ if (Unit* unit = ref->GetSource()->GetOwner())
{
++count;
handler->PSendSysMessage(" %u. %s (guid %u) - threat %f", count, unit->GetName().c_str(), unit->GetGUIDLow(), ref->getThreat());
diff --git a/src/server/scripts/Commands/cs_deserter.cpp b/src/server/scripts/Commands/cs_deserter.cpp
index ef2cd7b45b9..285b68a6162 100644
--- a/src/server/scripts/Commands/cs_deserter.cpp
+++ b/src/server/scripts/Commands/cs_deserter.cpp
@@ -43,7 +43,7 @@ public:
* @brief Returns the command structure for the system.
*/
- ChatCommand* GetCommands() const
+ ChatCommand* GetCommands() const OVERRIDE
{
static ChatCommand deserterInstanceCommandTable[] =
{
diff --git a/src/server/scripts/Commands/cs_disable.cpp b/src/server/scripts/Commands/cs_disable.cpp
index 34738777c85..e6acb17373f 100644
--- a/src/server/scripts/Commands/cs_disable.cpp
+++ b/src/server/scripts/Commands/cs_disable.cpp
@@ -37,7 +37,7 @@ class disable_commandscript : public CommandScript
public:
disable_commandscript() : CommandScript("disable_commandscript") { }
- ChatCommand* GetCommands() const
+ ChatCommand* GetCommands() const OVERRIDE
{
static ChatCommand removeDisableCommandTable[] =
{
diff --git a/src/server/scripts/Commands/cs_event.cpp b/src/server/scripts/Commands/cs_event.cpp
index 8d1370b16c6..7a5977074a3 100644
--- a/src/server/scripts/Commands/cs_event.cpp
+++ b/src/server/scripts/Commands/cs_event.cpp
@@ -33,7 +33,7 @@ class event_commandscript : public CommandScript
public:
event_commandscript() : CommandScript("event_commandscript") { }
- ChatCommand* GetCommands() const
+ ChatCommand* GetCommands() const OVERRIDE
{
static ChatCommand eventCommandTable[] =
{
diff --git a/src/server/scripts/Commands/cs_gm.cpp b/src/server/scripts/Commands/cs_gm.cpp
index 168a5ec60b8..f3669f7cffd 100644
--- a/src/server/scripts/Commands/cs_gm.cpp
+++ b/src/server/scripts/Commands/cs_gm.cpp
@@ -36,7 +36,7 @@ class gm_commandscript : public CommandScript
public:
gm_commandscript() : CommandScript("gm_commandscript") { }
- ChatCommand* GetCommands() const
+ ChatCommand* GetCommands() const OVERRIDE
{
static ChatCommand gmCommandTable[] =
{
@@ -128,7 +128,7 @@ public:
for (HashMapHolder<Player>::MapType::const_iterator itr = m.begin(); itr != m.end(); ++itr)
{
AccountTypes itrSec = itr->second->GetSession()->GetSecurity();
- if ((itr->second->isGameMaster() ||
+ if ((itr->second->IsGameMaster() ||
(itr->second->GetSession()->HasPermission(RBAC_PERM_COMMANDS_APPEAR_IN_GM_LIST) &&
itrSec <= AccountTypes(sWorld->getIntConfig(CONFIG_GM_LEVEL_IN_GM_LIST)))) &&
(!handler->GetSession() || itr->second->IsVisibleGloballyFor(handler->GetSession()->GetPlayer())))
@@ -238,7 +238,7 @@ public:
{
if (!*args)
{
- if (handler->GetSession()->GetPlayer()->isGameMaster())
+ if (handler->GetSession()->GetPlayer()->IsGameMaster())
handler->GetSession()->SendNotification(LANG_GM_ON);
else
handler->GetSession()->SendNotification(LANG_GM_OFF);
diff --git a/src/server/scripts/Commands/cs_go.cpp b/src/server/scripts/Commands/cs_go.cpp
index 11aa02ce648..762e37dbae7 100644
--- a/src/server/scripts/Commands/cs_go.cpp
+++ b/src/server/scripts/Commands/cs_go.cpp
@@ -35,7 +35,7 @@ class go_commandscript : public CommandScript
public:
go_commandscript() : CommandScript("go_commandscript") { }
- ChatCommand* GetCommands() const
+ ChatCommand* GetCommands() const OVERRIDE
{
static ChatCommand goCommandTable[] =
{
@@ -154,7 +154,7 @@ public:
}
// stop flight if need
- if (player->isInFlight())
+ if (player->IsInFlight())
{
player->GetMotionMaster()->MovementExpired();
player->CleanupAfterTaxiFlight();
@@ -199,7 +199,7 @@ public:
}
// stop flight if need
- if (player->isInFlight())
+ if (player->IsInFlight())
{
player->GetMotionMaster()->MovementExpired();
player->CleanupAfterTaxiFlight();
@@ -241,7 +241,7 @@ public:
}
// stop flight if need
- if (player->isInFlight())
+ if (player->IsInFlight())
{
player->GetMotionMaster()->MovementExpired();
player->CleanupAfterTaxiFlight();
@@ -301,7 +301,7 @@ public:
}
// stop flight if need
- if (player->isInFlight())
+ if (player->IsInFlight())
{
player->GetMotionMaster()->MovementExpired();
player->CleanupAfterTaxiFlight();
@@ -346,7 +346,7 @@ public:
}
// stop flight if need
- if (player->isInFlight())
+ if (player->IsInFlight())
{
player->GetMotionMaster()->MovementExpired();
player->CleanupAfterTaxiFlight();
@@ -391,7 +391,7 @@ public:
}
// stop flight if need
- if (player->isInFlight())
+ if (player->IsInFlight())
{
player->GetMotionMaster()->MovementExpired();
player->CleanupAfterTaxiFlight();
@@ -461,7 +461,7 @@ public:
}
// stop flight if need
- if (player->isInFlight())
+ if (player->IsInFlight())
{
player->GetMotionMaster()->MovementExpired();
player->CleanupAfterTaxiFlight();
@@ -522,7 +522,7 @@ public:
}
// stop flight if need
- if (player->isInFlight())
+ if (player->IsInFlight())
{
player->GetMotionMaster()->MovementExpired();
player->CleanupAfterTaxiFlight();
@@ -556,7 +556,7 @@ public:
}
Player* player = handler->GetSession()->GetPlayer();
- if (player->isInFlight())
+ if (player->IsInFlight())
{
player->GetMotionMaster()->MovementExpired();
player->CleanupAfterTaxiFlight();
diff --git a/src/server/scripts/Commands/cs_gobject.cpp b/src/server/scripts/Commands/cs_gobject.cpp
index 18dee2ea324..8ae2e7b4dfb 100644
--- a/src/server/scripts/Commands/cs_gobject.cpp
+++ b/src/server/scripts/Commands/cs_gobject.cpp
@@ -279,8 +279,8 @@ public:
bool found = false;
float x, y, z, o;
- uint32 guidLow, id;
- uint16 mapId, phase;
+ uint32 guidLow, id, phase;
+ uint16 mapId;
uint32 poolId;
do
@@ -293,7 +293,7 @@ public:
z = fields[4].GetFloat();
o = fields[5].GetFloat();
mapId = fields[6].GetUInt16();
- phase = fields[7].GetUInt16();
+ phase = fields[7].GetUInt32();
poolId = sPoolMgr->IsPartOfAPool<GameObject>(guidLow);
if (!poolId || sPoolMgr->IsSpawnedObject<GameObject>(guidLow))
found = true;
diff --git a/src/server/scripts/Commands/cs_honor.cpp b/src/server/scripts/Commands/cs_honor.cpp
index 44ebee4f044..75c7fcf71e2 100644
--- a/src/server/scripts/Commands/cs_honor.cpp
+++ b/src/server/scripts/Commands/cs_honor.cpp
@@ -33,7 +33,7 @@ class honor_commandscript : public CommandScript
public:
honor_commandscript() : CommandScript("honor_commandscript") { }
- ChatCommand* GetCommands() const
+ ChatCommand* GetCommands() const OVERRIDE
{
static ChatCommand honorAddCommandTable[] =
{
@@ -90,8 +90,9 @@ public:
}
// check online security
- if (target->GetTypeId() == TYPEID_PLAYER && handler->HasLowerSecurity((Player*)target, 0))
- return false;
+ if (Player* player = target->ToPlayer())
+ if (handler->HasLowerSecurity(player, 0))
+ return false;
handler->GetSession()->GetPlayer()->RewardHonor(target, 1);
return true;
diff --git a/src/server/scripts/Commands/cs_instance.cpp b/src/server/scripts/Commands/cs_instance.cpp
index f1fd9d53423..a0cd306c631 100644
--- a/src/server/scripts/Commands/cs_instance.cpp
+++ b/src/server/scripts/Commands/cs_instance.cpp
@@ -35,7 +35,7 @@ class instance_commandscript : public CommandScript
public:
instance_commandscript() : CommandScript("instance_commandscript") { }
- ChatCommand* GetCommands() const
+ ChatCommand* GetCommands() const OVERRIDE
{
static ChatCommand instanceCommandTable[] =
{
diff --git a/src/server/scripts/Commands/cs_learn.cpp b/src/server/scripts/Commands/cs_learn.cpp
index 4c01b89a3ae..baebc3d0bd5 100644
--- a/src/server/scripts/Commands/cs_learn.cpp
+++ b/src/server/scripts/Commands/cs_learn.cpp
@@ -36,7 +36,7 @@ class learn_commandscript : public CommandScript
public:
learn_commandscript() : CommandScript("learn_commandscript") { }
- ChatCommand* GetCommands() const
+ ChatCommand* GetCommands() const OVERRIDE
{
static ChatCommand learnAllMyCommandTable[] =
{
@@ -116,8 +116,7 @@ public:
else
targetPlayer->learnSpell(spell, false);
- uint32 firstSpell = sSpellMgr->GetFirstSpellInChain(spell);
- if (GetTalentSpellCost(firstSpell))
+ if (GetTalentSpellCost(spellInfo->GetFirstRankSpell()->Id))
targetPlayer->SendTalentsInfoData(false);
return true;
@@ -178,8 +177,7 @@ public:
continue;
// skip spells with first rank learned as talent (and all talents then also)
- uint32 firstRank = sSpellMgr->GetFirstSpellInChain(spellInfo->Id);
- if (GetTalentSpellCost(firstRank) > 0)
+ if (GetTalentSpellCost(spellInfo->GetFirstRankSpell()->Id) > 0)
continue;
// skip broken spells
@@ -493,7 +491,7 @@ public:
}
if (allRanks)
- spellId = sSpellMgr->GetFirstSpellInChain (spellId);
+ spellId = sSpellMgr->GetFirstSpellInChain(spellId);
if (target->HasSpell(spellId))
target->removeSpell(spellId, false, !allRanks);
diff --git a/src/server/scripts/Commands/cs_lfg.cpp b/src/server/scripts/Commands/cs_lfg.cpp
index aa9d9308bcd..3a9e7a67214 100644
--- a/src/server/scripts/Commands/cs_lfg.cpp
+++ b/src/server/scripts/Commands/cs_lfg.cpp
@@ -41,7 +41,7 @@ class lfg_commandscript : public CommandScript
public:
lfg_commandscript() : CommandScript("lfg_commandscript") { }
- ChatCommand* GetCommands() const
+ ChatCommand* GetCommands() const OVERRIDE
{
static ChatCommand lfgCommandTable[] =
{
@@ -92,7 +92,7 @@ public:
state.c_str(), sLFGMgr->GetDungeon(guid));
for (GroupReference* itr = grp->GetFirstMember(); itr != NULL; itr = itr->next())
- GetPlayerInfo(handler, itr->getSource());
+ GetPlayerInfo(handler, itr->GetSource());
return true;
}
diff --git a/src/server/scripts/Commands/cs_list.cpp b/src/server/scripts/Commands/cs_list.cpp
index 81608ebd458..7595932ecbb 100644
--- a/src/server/scripts/Commands/cs_list.cpp
+++ b/src/server/scripts/Commands/cs_list.cpp
@@ -36,7 +36,7 @@ class list_commandscript : public CommandScript
public:
list_commandscript() : CommandScript("list_commandscript") { }
- ChatCommand* GetCommands() const
+ ChatCommand* GetCommands() const OVERRIDE
{
static ChatCommand listCommandTable[] =
{
@@ -518,7 +518,7 @@ public:
uint32 copp = (money % GOLD) % SILVER;
std::string receiverStr = handler->playerLink(receiver);
std::string senderStr = handler->playerLink(sender);
- handler->PSendSysMessage(LANG_LIST_MAIL_INFO_1 , messageId, subject.c_str(),gold, silv, copp);
+ handler->PSendSysMessage(LANG_LIST_MAIL_INFO_1, messageId, subject.c_str(), gold, silv, copp);
handler->PSendSysMessage(LANG_LIST_MAIL_INFO_2, senderStr.c_str(), senderId, receiverStr.c_str(), receiverId);
handler->PSendSysMessage(LANG_LIST_MAIL_INFO_3, TimeToTimestampStr(deliverTime).c_str(), TimeToTimestampStr(expireTime).c_str());
if (hasItem == 1)
@@ -541,7 +541,7 @@ public:
uint32 item_entry = fields[0].GetUInt32();
uint32 item_count = fields[1].GetUInt32();
QueryResult result4;
- result4 = WorldDatabase.PQuery("SELECT name,quality FROM item_template WHERE entry = '%u'", item_entry);
+ result4 = WorldDatabase.PQuery("SELECT name, quality FROM item_template WHERE entry = '%u'", item_entry);
Field* fields1 = result4->Fetch();
std::string item_name = fields1[0].GetString();
int item_quality = fields1[1].GetUInt8();
diff --git a/src/server/scripts/Commands/cs_lookup.cpp b/src/server/scripts/Commands/cs_lookup.cpp
index 2130e61cb47..91f3e5451c4 100644
--- a/src/server/scripts/Commands/cs_lookup.cpp
+++ b/src/server/scripts/Commands/cs_lookup.cpp
@@ -37,7 +37,7 @@ class lookup_commandscript : public CommandScript
public:
lookup_commandscript() : CommandScript("lookup_commandscript") { }
- ChatCommand* GetCommands() const
+ ChatCommand* GetCommands() const OVERRIDE
{
static ChatCommand lookupPlayerCommandTable[] =
{
@@ -962,12 +962,7 @@ public:
uint32 id = atoi((char*)args);
- bool found = false;
- uint32 count = 0;
- uint32 maxResults = 1;
-
- SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(id);
- if (spellInfo)
+ if (SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(id))
{
int locale = handler->GetSessionDbcLocale();
std::string name = spellInfo->SpellName[locale];
@@ -977,14 +972,6 @@ public:
return true;
}
- if (locale < TOTAL_LOCALES)
- {
- if (maxResults && count++ == maxResults)
- {
- handler->PSendSysMessage(LANG_COMMAND_LOOKUP_MAX_RESULTS, maxResults);
- return true;
- }
-
bool known = target && target->HasSpell(id);
bool learn = (spellInfo->Effects[0].Effect == SPELL_EFFECT_LEARN_SPELL);
@@ -1028,13 +1015,8 @@ public:
ss << handler->GetTrinityString(LANG_ACTIVE);
handler->SendSysMessage(ss.str().c_str());
-
- if (!found)
- found = true;
- }
}
-
- if (!found)
+ else
handler->SendSysMessage(LANG_COMMAND_NOSPELLFOUND);
return true;
diff --git a/src/server/scripts/Commands/cs_misc.cpp b/src/server/scripts/Commands/cs_misc.cpp
index cadaeff5262..6c7e8386bdf 100644
--- a/src/server/scripts/Commands/cs_misc.cpp
+++ b/src/server/scripts/Commands/cs_misc.cpp
@@ -42,7 +42,7 @@ class misc_commandscript : public CommandScript
public:
misc_commandscript() : CommandScript("misc_commandscript") { }
- ChatCommand* GetCommands() const
+ ChatCommand* GetCommands() const OVERRIDE
{
static ChatCommand groupCommandTable[] =
{
@@ -319,7 +319,7 @@ public:
if (map->IsBattlegroundOrArena())
{
// only allow if gm mode is on
- if (!_player->isGameMaster())
+ if (!_player->IsGameMaster())
{
handler->PSendSysMessage(LANG_CANNOT_GO_TO_BG_GM, chrNameLink.c_str());
handler->SetSentErrorMessage(true);
@@ -354,7 +354,7 @@ public:
else
{
// we are not in group, let's verify our GM mode
- if (!_player->isGameMaster())
+ if (!_player->IsGameMaster())
{
handler->PSendSysMessage(LANG_CANNOT_GO_TO_INST_GM, chrNameLink.c_str());
handler->SetSentErrorMessage(true);
@@ -384,7 +384,7 @@ public:
handler->PSendSysMessage(LANG_APPEARING_AT, chrNameLink.c_str());
// stop flight if need
- if (_player->isInFlight())
+ if (_player->IsInFlight())
{
_player->GetMotionMaster()->MovementExpired();
_player->CleanupAfterTaxiFlight();
@@ -418,7 +418,7 @@ public:
return false;
// stop flight if need
- if (_player->isInFlight())
+ if (_player->IsInFlight())
{
_player->GetMotionMaster()->MovementExpired();
_player->CleanupAfterTaxiFlight();
@@ -468,7 +468,7 @@ public:
if (map->IsBattlegroundOrArena())
{
// only allow if gm mode is on
- if (!_player->isGameMaster())
+ if (!_player->IsGameMaster())
{
handler->PSendSysMessage(LANG_CANNOT_GO_TO_BG_GM, nameLink.c_str());
handler->SetSentErrorMessage(true);
@@ -509,7 +509,7 @@ public:
ChatHandler(target->GetSession()).PSendSysMessage(LANG_SUMMONED_BY, handler->playerLink(_player->GetName()).c_str());
// stop flight if need
- if (target->isInFlight())
+ if (target->IsInFlight())
{
target->GetMotionMaster()->MovementExpired();
target->CleanupAfterTaxiFlight();
@@ -584,7 +584,7 @@ public:
for (GroupReference* itr = group->GetFirstMember(); itr != NULL; itr = itr->next())
{
- Player* player = itr->getSource();
+ Player* player = itr->GetSource();
if (!player || player == handler->GetSession()->GetPlayer() || !player->GetSession())
continue;
@@ -620,7 +620,7 @@ public:
ChatHandler(player->GetSession()).PSendSysMessage(LANG_SUMMONED_BY, handler->GetNameLink().c_str());
// stop flight if need
- if (player->isInFlight())
+ if (player->IsInFlight())
{
player->GetMotionMaster()->MovementExpired();
player->CleanupAfterTaxiFlight();
@@ -655,13 +655,11 @@ public:
return false;
}
- if (target->GetTypeId() == TYPEID_PLAYER)
- {
- if (handler->HasLowerSecurity((Player*)target, 0, false))
+ if (Player* player = target->ToPlayer())
+ if (handler->HasLowerSecurity(player, 0, false))
return false;
- }
- if (target->isAlive())
+ if (target->IsAlive())
{
if (sWorld->getBoolConfig(CONFIG_DIE_COMMAND_MODE))
handler->GetSession()->GetPlayer()->Kill(target);
@@ -704,7 +702,7 @@ public:
return false;
}
- if (player->isInFlight())
+ if (player->IsInFlight())
{
handler->SendSysMessage(LANG_YOU_IN_FLIGHT);
handler->SetSentErrorMessage(true);
@@ -869,7 +867,7 @@ public:
}
// stop flight if need
- if (target->isInFlight())
+ if (target->IsInFlight())
{
target->GetMotionMaster()->MovementExpired();
target->CleanupAfterTaxiFlight();
@@ -965,7 +963,7 @@ public:
if (!handler->extractPlayerTarget(player_str, &player))
return false;
- if (player->isInFlight() || player->isInCombat())
+ if (player->IsInFlight() || player->IsInCombat())
{
SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(7355);
if (!spellInfo)
@@ -1071,9 +1069,7 @@ public:
Player* player = handler->GetSession()->GetPlayer();
uint32 zone_id = player->GetZoneId();
- WorldSafeLocsEntry const* graveyard = sObjectMgr->GetClosestGraveYard(
- player->GetPositionX(), player->GetPositionY(), player->GetPositionZ(), player->GetMapId(), team);
-
+ WorldSafeLocsEntry const* graveyard = sObjectMgr->GetClosestGraveYard(player->GetPositionX(), player->GetPositionY(), player->GetPositionZ(), player->GetMapId(), team);
if (graveyard)
{
uint32 graveyardId = graveyard->ID;
@@ -1103,14 +1099,12 @@ public:
{
std::string team_name;
- if (team == 0)
- team_name = handler->GetTrinityString(LANG_COMMAND_GRAVEYARD_ANY);
- else if (team == HORDE)
+ if (team == HORDE)
team_name = handler->GetTrinityString(LANG_COMMAND_GRAVEYARD_HORDE);
else if (team == ALLIANCE)
team_name = handler->GetTrinityString(LANG_COMMAND_GRAVEYARD_ALLIANCE);
- if (team == ~uint32(0))
+ if (!team)
handler->PSendSysMessage(LANG_COMMAND_ZONENOGRAVEYARDS, zone_id);
else
handler->PSendSysMessage(LANG_COMMAND_ZONENOGRAFACTION, zone_id, team_name.c_str());
@@ -1477,37 +1471,130 @@ public:
return true;
}
- // show info of player
+
+ /**
+ * @name Player command: .pinfo
+ * @date 05/19/2013
+ *
+ * @brief Prints information about a character and it's linked account to the commander
+ *
+ * Non-applying information, e.g. a character that is not in gm mode right now or
+ * that is not banned/muted, is not printed
+ *
+ * This can be done either by giving a name or by targeting someone, else, it'll use the commander
+ *
+ * @param args name Prints information according to the given name to the commander
+ * target Prints information on the target to the commander
+ * none No given args results in printing information on the commander
+ *
+ * @return Several pieces of information about the character and the account
+ **/
+
static bool HandlePInfoCommand(ChatHandler* handler, char const* args)
{
+ // Define ALL the player variables!
Player* target;
uint64 targetGuid;
std::string targetName;
+ // To make sure we get a target, we convert our guid to an omniversal...
uint32 parseGUID = MAKE_NEW_GUID(atol((char*)args), 0, HIGHGUID_PLAYER);
+ // ... and make sure we get a target, somehow.
if (sObjectMgr->GetPlayerNameByGUID(parseGUID, targetName))
{
target = sObjectMgr->GetPlayerByLowGUID(parseGUID);
targetGuid = parseGUID;
}
+ // if not, then return false. Which shouldn't happen, now should it ?
else if (!handler->extractPlayerTarget((char*)args, &target, &targetGuid, &targetName))
return false;
- uint32 accId = 0;
- uint32 money = 0;
- uint32 totalPlayerTime = 0;
- uint8 level = 0;
- uint32 latency = 0;
- uint8 race;
- uint8 Class;
- int64 muteTime = 0;
- int64 banTime = -1;
+ /* The variables we extract for the command. They are
+ * default as "does not exist" to prevent problems
+ * The output is printed in the follow manner:
+ *
+ * Player %s %s (guid: %u) - I. LANG_PINFO_PLAYER
+ * ** GM Mode active, Phase: -1 - II. LANG_PINFO_GM_ACTIVE (if GM)
+ * ** Banned: (Type, Reason, Time, By) - III. LANG_PINFO_BANNED (if banned)
+ * ** Muted: (Time, Reason, By) - IV. LANG_PINFO_MUTED (if muted)
+ * * Account: %s (id: %u), GM Level: %u - V. LANG_PINFO_ACC_ACCOUNT
+ * * Last Login: %u (Failed Logins: %u) - VI. LANG_PINFO_ACC_LASTLOGIN
+ * * Uses OS: %s - Latency: %u ms - Email %s - VII. LANG_PINFO_ACC_OS
+ * * Last IP: %u (Locked: %s) - VIII. LANG_PINFO_ACC_IP
+ * * Level: %u (%u/%u XP (%u XP left) - IX. LANG_PINFO_CHR_LEVEL
+ * * Race: %s %s, Class %s - X. LANG_PINFO_CHR_RACE
+ * * Alive ?: %s - XI. LANG_PINFO_CHR_ALIVE
+ * * Phase: %s - XII. LANG_PINFO_CHR_PHASE (if not GM)
+ * * Money: %ug%us%uc - XIII. LANG_PINFO_CHR_MONEY
+ * * Map: %s, Area: %s - XIV. LANG_PINFO_CHR_MAP
+ * * Guild: %s (Id: %u) - XV. LANG_PINFO_CHR_GUILD (if in guild)
+ * ** Rank: %s - XVI. LANG_PINFO_CHR_GUILD_RANK (if in guild)
+ * ** Note: %s - XVII. LANG_PINFO_CHR_GUILD_NOTE (if in guild and has note)
+ * ** O. Note: %s - XVIII.LANG_PINFO_CHR_GUILD_ONOTE (if in guild and has officer note)
+ * * Played time: %s - XIX. LANG_PINFO_CHR_PLAYEDTIME
+ * * Mails: %u Read/%u Total - XX. LANG_PINFO_CHR_MAILS (if has mails)
+ *
+ * Not all of them can be moved to the top. These should
+ * place the most important ones to the head, though.
+ *
+ * For a cleaner overview, I segment each output in Roman numerals
+ */
+
+ // Account data print variables
+ std::string userName = handler->GetTrinityString(LANG_ERROR);
+ uint32 accId = 0;
+ uint32 lowguid = GUID_LOPART(targetGuid);
+ std::string eMail = handler->GetTrinityString(LANG_ERROR);
+ uint32 security = 0;
+ std::string lastIp = handler->GetTrinityString(LANG_ERROR);
+ uint8 locked = 0;
+ std::string lastLogin = handler->GetTrinityString(LANG_ERROR);
+ uint32 failedLogins = 0;
+ uint32 latency = 0;
+ std::string OS = "None";
+
+ // Mute data print variables
+ int64 muteTime = -1;
+ std::string muteReason = "unknown";
+ std::string muteBy = "unknown";
+
+ // Ban data print variables
+ int64 banTime = -1;
+ std::string banType = "None";
+ std::string banReason = "Unknown";
+ std::string bannedBy = "Unknown";
+
+ // Character data print variables
+ uint8 raceid, classid = 0; //RACE_NONE, CLASS_NONE
+ std::string raceStr, classStr = "None";
+ uint8 gender = 0;
+ int8 locale = handler->GetSessionDbcLocale();
+ std::string genderStr = handler->GetTrinityString(LANG_ERROR);
+ uint32 totalPlayerTime = 0;
+ uint8 level = 0;
+ std::string alive = handler->GetTrinityString(LANG_ERROR);
+ uint32 money = 0;
+ uint32 xp = 0;
+ uint32 xptotal = 0;
+
+ // Position data print
uint32 mapId;
uint32 areaId;
uint32 phase = 0;
+ std::string areaName = "<unknown>";
+ std::string zoneName = "<unknown>";
+
+ // Guild data print variables defined so that they exist, but are not necessarily used
+ uint32 guildId = 0;
+ uint8 guildRankId = 0;
+ std::string guildName;
+ std::string guildRank;
+ std::string note;
+ std::string officeNote;
+
+ // Mail data print is only defined if you have a mail
- // get additional information from Player object
if (target)
{
// check online security
@@ -1519,11 +1606,13 @@ public:
totalPlayerTime = target->GetTotalPlayedTime();
level = target->getLevel();
latency = target->GetSession()->GetLatency();
- race = target->getRace();
- Class = target->getClass();
+ raceid = target->getRace();
+ classid = target->getClass();
muteTime = target->GetSession()->m_muteTime;
mapId = target->GetMapId();
areaId = target->GetAreaId();
+ alive = target->IsAlive() ? "Yes" : "No";
+ gender = target->getGender();
phase = target->GetPhaseMask();
}
// get additional information from DB
@@ -1533,32 +1622,34 @@ public:
if (handler->HasLowerSecurity(NULL, targetGuid))
return false;
+ // Query informations from the DB
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_PINFO);
- stmt->setUInt32(0, GUID_LOPART(targetGuid));
+ stmt->setUInt32(0, lowguid);
PreparedQueryResult result = CharacterDatabase.Query(stmt);
if (!result)
return false;
- Field* fields = result->Fetch();
- totalPlayerTime = fields[0].GetUInt32();
- level = fields[1].GetUInt8();
- money = fields[2].GetUInt32();
- accId = fields[3].GetUInt32();
- race = fields[4].GetUInt8();
- Class = fields[5].GetUInt8();
- mapId = fields[6].GetUInt16();
- areaId = fields[7].GetUInt16();
- }
-
- std::string userName = handler->GetTrinityString(LANG_ERROR);
- std::string eMail = handler->GetTrinityString(LANG_ERROR);
- std::string muteReason = "";
- std::string muteBy = "";
- std::string lastIp = handler->GetTrinityString(LANG_ERROR);
- uint32 security = 0;
- std::string lastLogin = handler->GetTrinityString(LANG_ERROR);
+ Field* fields = result->Fetch();
+ totalPlayerTime = fields[0].GetUInt32();
+ level = fields[1].GetUInt8();
+ money = fields[2].GetUInt32();
+ accId = fields[3].GetUInt32();
+ raceid = fields[4].GetUInt8();
+ classid = fields[5].GetUInt8();
+ mapId = fields[6].GetUInt16();
+ areaId = fields[7].GetUInt16();
+ gender = fields[8].GetUInt8();
+ uint32 health = fields[9].GetUInt32();
+ uint32 playerFlags = fields[10].GetUInt32();
+
+ if (!health || playerFlags & PLAYER_FLAGS_GHOST)
+ alive = "No";
+ else
+ alive = "Yes";
+ }
+ // Query the prepared statement for login data
PreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_PINFO);
stmt->setInt32(0, int32(realmID));
stmt->setUInt32(1, accId);
@@ -1569,24 +1660,19 @@ public:
Field* fields = result->Fetch();
userName = fields[0].GetString();
security = fields[1].GetUInt8();
- eMail = fields[2].GetString();
- muteTime = fields[5].GetUInt64();
- muteReason = fields[6].GetString();
- muteBy = fields[7].GetString();
-
- if (eMail.empty())
- eMail = "-";
- if (!handler->GetSession() || handler->GetSession()->GetSecurity() >= AccountTypes(security))
+ // Only fetch these fields if commander has sufficient rights)
+ if (handler->HasPermission(RBAC_PERM_COMMANDS_PINFO_CHECK_PERSONAL_DATA) && // RBAC Perm. 48, Role 39
+ (!handler->GetSession() || handler->GetSession()->GetSecurity() >= AccountTypes(security)))
{
- lastIp = fields[3].GetString();
+ eMail = fields[2].GetString();
+ lastIp = fields[3].GetString();
lastLogin = fields[4].GetString();
uint32 ip = inet_addr(lastIp.c_str());
-#if TRINITY_ENDIAN == BIGENDIAN
EndianConvertReverse(ip);
-#endif
+ // If ip2nation table is populated, it displays the country
PreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_IP2NATION_COUNTRY);
stmt->setUInt32(0, ip);
if (PreparedQueryResult result2 = LoginDatabase.Query(stmt))
@@ -1599,25 +1685,30 @@ public:
}
else
{
- lastIp = "-";
- lastLogin = "-";
+ eMail = "Unauthorized";
+ lastIp = "Unauthorized";
+ lastLogin = "Unauthorized";
}
+ muteTime = fields[5].GetUInt64();
+ muteReason = fields[6].GetString();
+ muteBy = fields[7].GetString();
+ failedLogins = fields[8].GetUInt32();
+ locked = fields[9].GetUInt8();
+ OS = fields[10].GetString();
}
+ // Creates a chat link to the character. Returns nameLink
std::string nameLink = handler->playerLink(targetName);
- handler->PSendSysMessage(LANG_PINFO_ACCOUNT, (target ? "" : handler->GetTrinityString(LANG_OFFLINE)), nameLink.c_str(), GUID_LOPART(targetGuid), userName.c_str(), accId, eMail.c_str(), security, lastIp.c_str(), lastLogin.c_str(), latency);
-
- std::string bannedby = "unknown";
- std::string banreason = "";
-
- stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_PINFO_BANS);
- stmt->setUInt32(0, accId);
- PreparedQueryResult result2 = LoginDatabase.Query(stmt);
+ // Returns banType, banTime, bannedBy, banreason
+ PreparedStatement* stmt2 = LoginDatabase.GetPreparedStatement(LOGIN_SEL_PINFO_BANS);
+ stmt2->setUInt32(0, accId);
+ PreparedQueryResult result2 = LoginDatabase.Query(stmt2);
if (!result2)
{
+ banType = "Character";
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_PINFO_BANS);
- stmt->setUInt32(0, GUID_LOPART(targetGuid));
+ stmt->setUInt32(0, lowguid);
result2 = CharacterDatabase.Query(stmt);
}
@@ -1625,98 +1716,105 @@ public:
{
Field* fields = result2->Fetch();
banTime = int64(fields[1].GetUInt64() ? 0 : fields[0].GetUInt32());
- bannedby = fields[2].GetString();
- banreason = fields[3].GetString();
+ bannedBy = fields[2].GetString();
+ banReason = fields[3].GetString();
}
- if (muteTime > 0)
- handler->PSendSysMessage(LANG_PINFO_MUTE, secsToTimeString(muteTime - time(NULL), true).c_str(), muteBy.c_str(), muteReason.c_str());
+ // Can be used to query data from World database
+ stmt2 = WorldDatabase.GetPreparedStatement(WORLD_SEL_REQ_XP);
+ stmt2->setUInt8(0, level);
+ PreparedQueryResult result3 = WorldDatabase.Query(stmt2);
+
+ if (result3)
+ {
+ Field* fields = result3->Fetch();
+ xptotal = fields[0].GetUInt32();
+ }
+
+ // Can be used to query data from Characters database
+ stmt2 = CharacterDatabase.GetPreparedStatement(CHAR_SEL_PINFO_XP);
+ stmt2->setUInt32(0, lowguid);
+ PreparedQueryResult result4 = CharacterDatabase.Query(stmt2);
+ if (result4)
+ {
+ Field* fields = result4->Fetch();
+ xp = fields[0].GetUInt32(); // Used for "current xp" output and "%u XP Left" calculation
+ uint32 gguid = fields[1].GetUInt32(); // We check if have a guild for the person, so we might not require to query it at all
+
+ if (gguid != 0)
+ {
+ // Guild Data - an own query, because it may not happen.
+ PreparedStatement* stmt3 = CharacterDatabase.GetPreparedStatement(CHAR_SEL_GUILD_MEMBER_EXTENDED);
+ stmt3->setUInt32(0, lowguid);
+ PreparedQueryResult result5 = CharacterDatabase.Query(stmt3);
+ if (result5)
+ {
+ Field* fields = result5->Fetch();
+ guildId = fields[0].GetUInt32();
+ guildName = fields[1].GetString();
+ guildRank = fields[2].GetString();
+ guildRankId = fields[3].GetUInt8();
+ note = fields[4].GetString();
+ officeNote = fields[5].GetString();
+ }
+ }
+ }
+
+ // Initiate output
+ // Output I. LANG_PINFO_PLAYER
+ handler->PSendSysMessage(LANG_PINFO_PLAYER, target ? "" : handler->GetTrinityString(LANG_OFFLINE), nameLink.c_str(), lowguid);
+
+ // Output II. LANG_PINFO_GM_ACTIVE if character is gamemaster
+ if (target && target->IsGameMaster())
+ handler->PSendSysMessage(LANG_PINFO_GM_ACTIVE);
+
+ // Output III. LANG_PINFO_BANNED if ban exists and is applied
if (banTime >= 0)
- handler->PSendSysMessage(LANG_PINFO_BAN, banTime > 0 ? secsToTimeString(banTime - time(NULL), true).c_str() : "permanently", bannedby.c_str(), banreason.c_str());
-
- std::string raceStr, ClassStr;
- switch (race)
- {
- case RACE_HUMAN:
- raceStr = "Human";
- break;
- case RACE_ORC:
- raceStr = "Orc";
- break;
- case RACE_DWARF:
- raceStr = "Dwarf";
- break;
- case RACE_NIGHTELF:
- raceStr = "Night Elf";
- break;
- case RACE_UNDEAD_PLAYER:
- raceStr = "Undead";
- break;
- case RACE_TAUREN:
- raceStr = "Tauren";
- break;
- case RACE_GNOME:
- raceStr = "Gnome";
- break;
- case RACE_TROLL:
- raceStr = "Troll";
- break;
- case RACE_BLOODELF:
- raceStr = "Blood Elf";
- break;
- case RACE_DRAENEI:
- raceStr = "Draenei";
- break;
- }
-
- switch (Class)
- {
- case CLASS_WARRIOR:
- ClassStr = "Warrior";
- break;
- case CLASS_PALADIN:
- ClassStr = "Paladin";
- break;
- case CLASS_HUNTER:
- ClassStr = "Hunter";
- break;
- case CLASS_ROGUE:
- ClassStr = "Rogue";
- break;
- case CLASS_PRIEST:
- ClassStr = "Priest";
- break;
- case CLASS_DEATH_KNIGHT:
- ClassStr = "Death Knight";
- break;
- case CLASS_SHAMAN:
- ClassStr = "Shaman";
- break;
- case CLASS_MAGE:
- ClassStr = "Mage";
- break;
- case CLASS_WARLOCK:
- ClassStr = "Warlock";
- break;
- case CLASS_DRUID:
- ClassStr = "Druid";
- break;
- }
-
- std::string timeStr = secsToTimeString(totalPlayerTime, true, true);
- uint32 gold = money /GOLD;
- uint32 silv = (money % GOLD) / SILVER;
- uint32 copp = (money % GOLD) % SILVER;
- handler->PSendSysMessage(LANG_PINFO_LEVEL, raceStr.c_str(), ClassStr.c_str(), timeStr.c_str(), level, gold, silv, copp);
-
- // Add map, zone, subzone and phase to output
- int locale = handler->GetSessionDbcLocale();
- std::string areaName = "<unknown>";
- std::string zoneName = "";
+ handler->PSendSysMessage(LANG_PINFO_BANNED, banType.c_str(), banTime > 0 ? secsToTimeString(banTime - time(NULL), true).c_str() : "permanently", banReason.c_str(), bannedBy.c_str());
- MapEntry const* map = sMapStore.LookupEntry(mapId);
+ // Output IV. LANG_PINFO_MUTED if mute is applied
+ if (muteTime > 0)
+ handler->PSendSysMessage(LANG_PINFO_MUTED, secsToTimeString(muteTime - time(NULL), true).c_str(), muteReason.c_str(), muteBy.c_str());
+
+ // Output V. LANG_PINFO_ACC_ACCOUNT
+ handler->PSendSysMessage(LANG_PINFO_ACC_ACCOUNT, userName.c_str(), accId, security);
+
+ // Output VI. LANG_PINFO_ACC_LASTLOGIN
+ handler->PSendSysMessage(LANG_PINFO_ACC_LASTLOGIN, lastLogin.c_str(), failedLogins);
+ // Output VIII. LANG_PINFO_ACC_OS
+ handler->PSendSysMessage(LANG_PINFO_ACC_OS, OS.c_str(), latency, eMail.c_str());
+
+ // Output IX. LANG_PINFO_ACC_IP
+ handler->PSendSysMessage(LANG_PINFO_ACC_IP, lastIp.c_str(), locked ? "Yes" : "No");
+
+ // Output X. LANG_PINFO_CHR_LEVEL
+ if (level != sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL))
+ handler->PSendSysMessage(LANG_PINFO_CHR_LEVEL_LOW, level, xp, xptotal, (xptotal - xp));
+ else
+ handler->PSendSysMessage(LANG_PINFO_CHR_LEVEL_HIGH, level);
+
+ // Output XI. LANG_PINFO_CHR_RACE
+ raceStr = GetRaceName(raceid, locale);
+ classStr = GetClassName(classid, locale);
+ handler->PSendSysMessage(LANG_PINFO_CHR_RACE, (gender == 0 ? handler->GetTrinityString(LANG_CHARACTER_GENDER_MALE) : handler->GetTrinityString(LANG_CHARACTER_GENDER_FEMALE)), raceStr.c_str(), classStr.c_str());
+
+ // Output XII. LANG_PINFO_CHR_ALIVE
+ handler->PSendSysMessage(LANG_PINFO_CHR_ALIVE, alive.c_str());
+
+ // Output XIII. LANG_PINFO_CHR_PHASE if player is not in GM mode (GM is in every phase)
+ if (target && !target->IsGameMaster()) // IsInWorld() returns false on loadingscreen, so it's more
+ handler->PSendSysMessage(LANG_PINFO_CHR_PHASE, phase); // precise than just target (safer ?).
+ // However, as we usually just require a target here, we use target instead.
+ // Output XIV. LANG_PINFO_CHR_MONEY
+ uint32 gold = money / GOLD;
+ uint32 silv = (money % GOLD) / SILVER;
+ uint32 copp = (money % GOLD) % SILVER;
+ handler->PSendSysMessage(LANG_PINFO_CHR_MONEY, gold, silv, copp);
+
+ // Position data
+ MapEntry const* map = sMapStore.LookupEntry(mapId);
AreaTableEntry const* area = GetAreaEntryByAreaID(areaId);
if (area)
{
@@ -1728,30 +1826,44 @@ public:
}
if (target)
+ handler->PSendSysMessage(LANG_PINFO_CHR_MAP, map->name[locale], (!zoneName.empty() ? zoneName.c_str() : "<Unknown>"), (!areaName.empty() ? areaName.c_str() : "<Unknown>"));
+
+ // Output XVII. - XX. if they are not empty
+ if (!guildName.empty())
{
- if (!zoneName.empty())
- handler->PSendSysMessage(LANG_PINFO_MAP_ONLINE, map->name[locale], zoneName.c_str(), areaName.c_str(), phase);
- else
- handler->PSendSysMessage(LANG_PINFO_MAP_ONLINE, map->name[locale], areaName.c_str(), "<unknown>", phase);
+ handler->PSendSysMessage(LANG_PINFO_CHR_GUILD, guildName.c_str(), guildId);
+ handler->PSendSysMessage(LANG_PINFO_CHR_GUILD_RANK, guildRank.c_str(), uint32(guildRankId));
+ if (!note.empty())
+ handler->PSendSysMessage(LANG_PINFO_CHR_GUILD_NOTE, note.c_str());
+ if (!officeNote.empty())
+ handler->PSendSysMessage(LANG_PINFO_CHR_GUILD_ONOTE, officeNote.c_str());
}
- else
- handler->PSendSysMessage(LANG_PINFO_MAP_OFFLINE, map->name[locale], areaName.c_str());
- stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_GUILD_MEMBER_EXTENDED);
- stmt->setUInt32(0, GUID_LOPART(targetGuid));
+ // Output XXI. LANG_PINFO_CHR_PLAYEDTIME
+ handler->PSendSysMessage(LANG_PINFO_CHR_PLAYEDTIME, (secsToTimeString(totalPlayerTime, true, true)).c_str());
- result = CharacterDatabase.Query(stmt);
- if (result)
+ // Mail Data - an own query, because it may or may not be useful.
+ // SQL: "SELECT SUM(CASE WHEN (checked & 1) THEN 1 ELSE 0 END) AS 'readmail', COUNT(*) AS 'totalmail' FROM mail WHERE `receiver` = ?"
+ PreparedStatement* stmt4 = CharacterDatabase.GetPreparedStatement(CHAR_SEL_PINFO_MAILS);
+ stmt4->setUInt32(0, lowguid);
+ PreparedQueryResult result6 = CharacterDatabase.Query(stmt4);
+ if (result6)
{
- Field* fields = result->Fetch();
+ // Define the variables, so the compiler knows they exist
+ uint32 rmailint = 0;
+
+ // Fetch the fields - readmail is a SUM(x) and given out as char! Thus...
+ // ... while totalmail is a COUNT(x), which is given out as INt64, which we just convert on fetch...
+ Field* fields = result6->Fetch();
+ std::string readmail = fields[0].GetString();
+ uint32 totalmail = uint32(fields[1].GetUInt64());
- uint32 guildId = fields[0].GetUInt32();
- std::string guildName = fields[1].GetString();
- std::string guildRank = fields[2].GetString();
- std::string note = fields[3].GetString();
- std::string officeNote = fields[4].GetString();
+ // ... we have to convert it from Char to int. We can use totalmail as it is
+ rmailint = atol(readmail.c_str());
- handler->PSendSysMessage(LANG_PINFO_GUILD_INFO, guildName.c_str(), guildId, guildRank.c_str(), note.c_str(), officeNote.c_str());
+ // Output XXII. LANG_INFO_CHR_MAILS if at least one mail is given
+ if (totalmail >= 1)
+ handler->PSendSysMessage(LANG_PINFO_CHR_MAILS, rmailint, totalmail);
}
return true;
@@ -1765,7 +1877,7 @@ public:
Unit* target = handler->getSelectedUnit();
if (player->GetSelection() && target)
{
- if (target->GetTypeId() != TYPEID_UNIT || target->isPet())
+ if (target->GetTypeId() != TYPEID_UNIT || target->IsPet())
{
handler->SendSysMessage(LANG_SELECT_CREATURE);
handler->SetSentErrorMessage(true);
@@ -1789,6 +1901,7 @@ public:
return true;
}
+
// mute player for some times
static bool HandleMuteCommand(ChatHandler* handler, char const* args)
{
@@ -2114,13 +2227,11 @@ public:
return false;
}
- if (target->GetTypeId() == TYPEID_PLAYER)
- {
- if (handler->HasLowerSecurity((Player*)target, 0, false))
+ if (Player* player = target->ToPlayer())
+ if (handler->HasLowerSecurity(player, 0, false))
return false;
- }
- if (!target->isAlive())
+ if (!target->IsAlive())
return true;
char* damageStr = strtok((char*)args, " ");
@@ -2144,7 +2255,7 @@ public:
return true;
}
- uint32 school = schoolStr ? atoi((char*)schoolStr) : SPELL_SCHOOL_NORMAL;
+ uint32 school = atoi((char*)schoolStr);
if (school >= MAX_SPELL_SCHOOL)
return false;
@@ -2481,7 +2592,7 @@ public:
Player* player = handler->GetSession()->GetPlayer();
Creature* creatureTarget = handler->getSelectedCreature();
- if (!creatureTarget || creatureTarget->isPet() || creatureTarget->GetTypeId() == TYPEID_PLAYER)
+ if (!creatureTarget || creatureTarget->IsPet() || creatureTarget->GetTypeId() == TYPEID_PLAYER)
{
handler->PSendSysMessage(LANG_SELECT_CREATURE);
handler->SetSentErrorMessage(true);
@@ -2667,7 +2778,7 @@ public:
{
pet->SavePetToDB(PET_SAVE_AS_CURRENT);
// not let dismiss dead pet
- if (pet->isAlive())
+ if (pet->IsAlive())
player->RemovePet(pet, PET_SAVE_NOT_IN_SLOT);
}
}
diff --git a/src/server/scripts/Commands/cs_mmaps.cpp b/src/server/scripts/Commands/cs_mmaps.cpp
index 55b6edbadbe..4d7b42e1885 100644
--- a/src/server/scripts/Commands/cs_mmaps.cpp
+++ b/src/server/scripts/Commands/cs_mmaps.cpp
@@ -41,7 +41,7 @@ class mmaps_commandscript : public CommandScript
public:
mmaps_commandscript() : CommandScript("mmaps_commandscript") { }
- ChatCommand* GetCommands() const
+ ChatCommand* GetCommands() const OVERRIDE
{
static ChatCommand mmapCommandTable[] =
{
@@ -108,7 +108,7 @@ public:
handler->PSendSysMessage("EndPosition (%.3f, %.3f, %.3f)", end.x, end.y, end.z);
handler->PSendSysMessage("ActualEndPosition (%.3f, %.3f, %.3f)", actualEnd.x, actualEnd.y, actualEnd.z);
- if (!player->isGameMaster())
+ if (!player->IsGameMaster())
handler->PSendSysMessage("Enable GM mode to see the path points.");
for (uint32 i = 0; i < pointPath.size(); ++i)
@@ -128,7 +128,7 @@ public:
int32 gy = 32 - player->GetPositionY() / SIZE_OF_GRIDS;
handler->PSendSysMessage("%03u%02i%02i.mmtile", player->GetMapId(), gy, gx);
- handler->PSendSysMessage("gridloc [%i,%i]", gx, gy);
+ handler->PSendSysMessage("gridloc [%i, %i]", gx, gy);
// calculate navmesh tile location
dtNavMesh const* navmesh = MMAP::MMapFactory::createOrGetMMapManager()->GetNavMesh(handler->GetSession()->GetPlayer()->GetMapId());
@@ -148,24 +148,33 @@ public:
int32 tilex = int32((y - min[0]) / SIZE_OF_GRIDS);
int32 tiley = int32((x - min[2]) / SIZE_OF_GRIDS);
- handler->PSendSysMessage("Calc [%02i,%02i]", tilex, tiley);
+ handler->PSendSysMessage("Calc [%02i, %02i]", tilex, tiley);
// navmesh poly -> navmesh tile location
dtQueryFilter filter = dtQueryFilter();
dtPolyRef polyRef = INVALID_POLYREF;
- navmeshquery->findNearestPoly(location, extents, &filter, &polyRef, NULL);
+ if (dtStatusFailed(navmeshquery->findNearestPoly(location, extents, &filter, &polyRef, NULL)))
+ {
+ handler->PSendSysMessage("Dt [??,??] (invalid poly, probably no tile loaded)");
+ return true;
+ }
if (polyRef == INVALID_POLYREF)
- handler->PSendSysMessage("Dt [??,??] (invalid poly, probably no tile loaded)");
+ handler->PSendSysMessage("Dt [??, ??] (invalid poly, probably no tile loaded)");
else
{
dtMeshTile const* tile;
dtPoly const* poly;
- navmesh->getTileAndPolyByRef(polyRef, &tile, &poly);
- if (tile)
- handler->PSendSysMessage("Dt [%02i,%02i]", tile->header->x, tile->header->y);
- else
- handler->PSendSysMessage("Dt [??,??] (no tile loaded)");
+ if (dtStatusSucceed(navmesh->getTileAndPolyByRef(polyRef, &tile, &poly)))
+ {
+ if (tile)
+ {
+ handler->PSendSysMessage("Dt [%02i,%02i]", tile->header->x, tile->header->y);
+ return false;
+ }
+ }
+
+ handler->PSendSysMessage("Dt [??,??] (no tile loaded)");
}
return true;
@@ -190,7 +199,7 @@ public:
if (!tile || !tile->header)
continue;
- handler->PSendSysMessage("[%02i,%02i]", tile->header->x, tile->header->y);
+ handler->PSendSysMessage("[%02i, %02i]", tile->header->x, tile->header->y);
}
return true;
diff --git a/src/server/scripts/Commands/cs_modify.cpp b/src/server/scripts/Commands/cs_modify.cpp
index 8ef88d459e2..bac6447a0e6 100644
--- a/src/server/scripts/Commands/cs_modify.cpp
+++ b/src/server/scripts/Commands/cs_modify.cpp
@@ -36,7 +36,7 @@ class modify_commandscript : public CommandScript
public:
modify_commandscript() : CommandScript("modify_commandscript") { }
- ChatCommand* GetCommands() const
+ ChatCommand* GetCommands() const OVERRIDE
{
static ChatCommand modifyspeedCommandTable[] =
{
@@ -309,24 +309,14 @@ public:
if (!pfactionid)
{
- if (target)
- {
- uint32 factionid = target->getFaction();
- uint32 flag = target->GetUInt32Value(UNIT_FIELD_FLAGS);
- uint32 npcflag = target->GetUInt32Value(UNIT_NPC_FLAGS);
- uint32 dyflag = target->GetUInt32Value(UNIT_DYNAMIC_FLAGS);
- handler->PSendSysMessage(LANG_CURRENT_FACTION, target->GetGUIDLow(), factionid, flag, npcflag, dyflag);
- }
+ uint32 factionid = target->getFaction();
+ uint32 flag = target->GetUInt32Value(UNIT_FIELD_FLAGS);
+ uint32 npcflag = target->GetUInt32Value(UNIT_NPC_FLAGS);
+ uint32 dyflag = target->GetUInt32Value(UNIT_DYNAMIC_FLAGS);
+ handler->PSendSysMessage(LANG_CURRENT_FACTION, target->GetGUIDLow(), factionid, flag, npcflag, dyflag);
return true;
}
- if (!target)
- {
- handler->SendSysMessage(LANG_NO_CHAR_SELECTED);
- handler->SetSentErrorMessage(true);
- return false;
- }
-
uint32 factionid = atoi(pfactionid);
uint32 flag;
@@ -340,7 +330,7 @@ public:
uint32 npcflag;
if (!pnpcflag)
- npcflag = target->GetUInt32Value(UNIT_NPC_FLAGS);
+ npcflag = target->GetUInt32Value(UNIT_NPC_FLAGS);
else
npcflag = atoi(pnpcflag);
@@ -348,7 +338,7 @@ public:
uint32 dyflag;
if (!pdyflag)
- dyflag = target->GetUInt32Value(UNIT_DYNAMIC_FLAGS);
+ dyflag = target->GetUInt32Value(UNIT_DYNAMIC_FLAGS);
else
dyflag = atoi(pdyflag);
@@ -452,7 +442,7 @@ public:
target->ToPlayer()->SendTalentsInfoData(false);
return true;
}
- else if (target->ToCreature()->isPet())
+ else if (target->ToCreature()->IsPet())
{
Unit* owner = target->GetOwner();
if (owner && owner->GetTypeId() == TYPEID_PLAYER && ((Pet*)target)->IsPermanentPetFor(owner->ToPlayer()))
@@ -500,7 +490,7 @@ public:
std::string targetNameLink = handler->GetNameLink(target);
- if (target->isInFlight())
+ if (target->IsInFlight())
{
handler->PSendSysMessage(LANG_CHAR_IN_FLIGHT, targetNameLink.c_str());
handler->SetSentErrorMessage(true);
@@ -548,7 +538,7 @@ public:
std::string targetNameLink = handler->GetNameLink(target);
- if (target->isInFlight())
+ if (target->IsInFlight())
{
handler->PSendSysMessage(LANG_CHAR_IN_FLIGHT, targetNameLink.c_str());
handler->SetSentErrorMessage(true);
@@ -593,7 +583,7 @@ public:
std::string targetNameLink = handler->GetNameLink(target);
- if (target->isInFlight())
+ if (target->IsInFlight())
{
handler->PSendSysMessage(LANG_CHAR_IN_FLIGHT, targetNameLink.c_str());
handler->SetSentErrorMessage(true);
@@ -638,7 +628,7 @@ public:
std::string targetNameLink = handler->GetNameLink(target);
- if (target->isInFlight())
+ if (target->IsInFlight())
{
handler->PSendSysMessage(LANG_CHAR_IN_FLIGHT, targetNameLink.c_str());
handler->SetSentErrorMessage(true);
diff --git a/src/server/scripts/Commands/cs_npc.cpp b/src/server/scripts/Commands/cs_npc.cpp
index ea387ef17be..f708acc3dee 100644
--- a/src/server/scripts/Commands/cs_npc.cpp
+++ b/src/server/scripts/Commands/cs_npc.cpp
@@ -41,7 +41,7 @@ struct NpcFlagText
#define NPCFLAG_COUNT 24
-const NpcFlagText npcFlagTexts[NPCFLAG_COUNT] =
+NpcFlagText const npcFlagTexts[NPCFLAG_COUNT] =
{
{ UNIT_NPC_FLAG_AUCTIONEER, LANG_NPCINFO_AUCTIONEER },
{ UNIT_NPC_FLAG_BANKER, LANG_NPCINFO_BANKER },
@@ -69,12 +69,97 @@ const NpcFlagText npcFlagTexts[NPCFLAG_COUNT] =
{ UNIT_NPC_FLAG_VENDOR_REAGENT, LANG_NPCINFO_VENDOR_REAGENT }
};
+struct MechanicImmune
+{
+ uint32 flag;
+ char const* text;
+};
+
+MechanicImmune const mechanicImmunes[MAX_MECHANIC] =
+{
+ { MECHANIC_NONE , "MECHANIC_NONE" },
+ { MECHANIC_CHARM , "MECHANIC_CHARM" },
+ { MECHANIC_DISORIENTED , "MECHANIC_DISORIENTED" },
+ { MECHANIC_DISARM , "MECHANIC_DISARM" },
+ { MECHANIC_DISTRACT , "MECHANIC_DISTRACT" },
+ { MECHANIC_FEAR , "MECHANIC_FEAR" },
+ { MECHANIC_GRIP , "MECHANIC_GRIP" },
+ { MECHANIC_ROOT , "MECHANIC_ROOT" },
+ { MECHANIC_SLOW_ATTACK , "MECHANIC_SLOW_ATTACK" },
+ { MECHANIC_SILENCE , "MECHANIC_SILENCE" },
+ { MECHANIC_SLEEP , "MECHANIC_SLEEP" },
+ { MECHANIC_SNARE , "MECHANIC_SNARE" },
+ { MECHANIC_STUN , "MECHANIC_STUN" },
+ { MECHANIC_FREEZE , "MECHANIC_FREEZE" },
+ { MECHANIC_KNOCKOUT , "MECHANIC_KNOCKOUT" },
+ { MECHANIC_BLEED , "MECHANIC_BLEED" },
+ { MECHANIC_BANDAGE , "MECHANIC_BANDAGE" },
+ { MECHANIC_POLYMORPH , "MECHANIC_POLYMORPH" },
+ { MECHANIC_BANISH , "MECHANIC_BANISH" },
+ { MECHANIC_SHIELD , "MECHANIC_SHIELD" },
+ { MECHANIC_SHACKLE , "MECHANIC_SHACKLE" },
+ { MECHANIC_MOUNT , "MECHANIC_MOUNT" },
+ { MECHANIC_INFECTED , "MECHANIC_INFECTED" },
+ { MECHANIC_TURN , "MECHANIC_TURN" },
+ { MECHANIC_HORROR , "MECHANIC_HORROR" },
+ { MECHANIC_INVULNERABILITY , "MECHANIC_INVULNERABILITY" },
+ { MECHANIC_INTERRUPT , "MECHANIC_INTERRUPT" },
+ { MECHANIC_DAZE , "MECHANIC_DAZE" },
+ { MECHANIC_DISCOVERY , "MECHANIC_DISCOVERY" },
+ { MECHANIC_IMMUNE_SHIELD , "MECHANIC_IMMUNE_SHIELD" },
+ { MECHANIC_SAPPED , "MECHANIC_SAPPED" },
+ { MECHANIC_ENRAGED , "MECHANIC_ENRAGED" }
+};
+
+
+struct UnitFlag
+{
+ uint32 flag;
+ char const* text;
+};
+
+UnitFlag const unitFlags[MAX_UNIT_FLAGS] =
+{
+ { UNIT_FLAG_SERVER_CONTROLLED , "UNIT_FLAG_SERVER_CONTROLLED" },
+ { UNIT_FLAG_NON_ATTACKABLE , "UNIT_FLAG_NON_ATTACKABLE" },
+ { UNIT_FLAG_DISABLE_MOVE , "UNIT_FLAG_DISABLE_MOVE" },
+ { UNIT_FLAG_PVP_ATTACKABLE , "UNIT_FLAG_PVP_ATTACKABLE" },
+ { UNIT_FLAG_RENAME , "UNIT_FLAG_RENAME" },
+ { UNIT_FLAG_PREPARATION , "UNIT_FLAG_PREPARATION" },
+ { UNIT_FLAG_UNK_6 , "UNIT_FLAG_UNK_6" },
+ { UNIT_FLAG_NOT_ATTACKABLE_1 , "UNIT_FLAG_NOT_ATTACKABLE_1" },
+ { UNIT_FLAG_IMMUNE_TO_PC , "UNIT_FLAG_IMMUNE_TO_PC" },
+ { UNIT_FLAG_IMMUNE_TO_NPC , "UNIT_FLAG_IMMUNE_TO_NPC" },
+ { UNIT_FLAG_LOOTING , "UNIT_FLAG_LOOTING" },
+ { UNIT_FLAG_PET_IN_COMBAT , "UNIT_FLAG_PET_IN_COMBAT" },
+ { UNIT_FLAG_PVP , "UNIT_FLAG_PVP" },
+ { UNIT_FLAG_SILENCED , "UNIT_FLAG_SILENCED" },
+ { UNIT_FLAG_UNK_14 , "UNIT_FLAG_UNK_14" },
+ { UNIT_FLAG_UNK_15 , "UNIT_FLAG_UNK_15" },
+ { UNIT_FLAG_UNK_16 , "UNIT_FLAG_UNK_16" },
+ { UNIT_FLAG_PACIFIED , "UNIT_FLAG_PACIFIED" },
+ { UNIT_FLAG_STUNNED , "UNIT_FLAG_STUNNED" },
+ { UNIT_FLAG_IN_COMBAT , "UNIT_FLAG_IN_COMBAT" },
+ { UNIT_FLAG_TAXI_FLIGHT , "UNIT_FLAG_TAXI_FLIGHT" },
+ { UNIT_FLAG_DISARMED , "UNIT_FLAG_DISARMED" },
+ { UNIT_FLAG_CONFUSED , "UNIT_FLAG_CONFUSED" },
+ { UNIT_FLAG_FLEEING , "UNIT_FLAG_FLEEING" },
+ { UNIT_FLAG_PLAYER_CONTROLLED , "UNIT_FLAG_PLAYER_CONTROLLED" },
+ { UNIT_FLAG_NOT_SELECTABLE , "UNIT_FLAG_NOT_SELECTABLE" },
+ { UNIT_FLAG_SKINNABLE , "UNIT_FLAG_SKINNABLE" },
+ { UNIT_FLAG_MOUNT , "UNIT_FLAG_MOUNT" },
+ { UNIT_FLAG_UNK_28 , "UNIT_FLAG_UNK_28" },
+ { UNIT_FLAG_UNK_29 , "UNIT_FLAG_UNK_29" },
+ { UNIT_FLAG_SHEATHE , "UNIT_FLAG_SHEATHE" },
+ { UNIT_FLAG_UNK_31 , "UNIT_FLAG_UNK_31" }
+};
+
class npc_commandscript : public CommandScript
{
public:
npc_commandscript() : CommandScript("npc_commandscript") { }
- ChatCommand* GetCommands() const
+ ChatCommand* GetCommands() const OVERRIDE
{
static ChatCommand npcAddCommandTable[] =
{
@@ -252,7 +337,7 @@ public:
return false;
}
- uint32 vendor_entry = vendor ? vendor->GetEntry() : 0;
+ uint32 vendor_entry = vendor->GetEntry();
if (!sObjectMgr->IsVendorItemValid(vendor_entry, itemId, maxcount, incrtime, extendedcost, handler->GetSession()->GetPlayer()))
{
@@ -320,7 +405,7 @@ public:
{
creature->SetDefaultMovementType(WAYPOINT_MOTION_TYPE);
creature->GetMotionMaster()->Initialize();
- if (creature->isAlive()) // dead creature will reset movement generator at respawn
+ if (creature->IsAlive()) // dead creature will reset movement generator at respawn
{
creature->setDeathState(JUST_DIED);
creature->Respawn(true);
@@ -394,7 +479,7 @@ public:
return false;
}
- if (creature->isPet())
+ if (creature->IsPet())
{
if (((Pet*)creature)->getPetType() == HUNTER_PET)
{
@@ -435,7 +520,7 @@ public:
else
unit = handler->getSelectedCreature();
- if (!unit || unit->isPet() || unit->isTotem())
+ if (!unit || unit->IsPet() || unit->IsTotem())
{
handler->SendSysMessage(LANG_SELECT_CREATURE);
handler->SetSentErrorMessage(true);
@@ -459,7 +544,7 @@ public:
return false;
Creature* vendor = handler->getSelectedCreature();
- if (!vendor || !vendor->isVendor())
+ if (!vendor || !vendor->IsVendor())
{
handler->SendSysMessage(LANG_COMMAND_VENDORSELECTION);
handler->SetSentErrorMessage(true);
@@ -630,12 +715,14 @@ public:
return false;
}
+ CreatureTemplate const* cInfo = target->GetCreatureTemplate();
+
uint32 faction = target->getFaction();
uint32 npcflags = target->GetUInt32Value(UNIT_NPC_FLAGS);
+ uint32 mechanicImmuneMask = cInfo->MechanicImmuneMask;
uint32 displayid = target->GetDisplayId();
uint32 nativeid = target->GetNativeDisplayId();
uint32 Entry = target->GetEntry();
- CreatureTemplate const* cInfo = target->GetCreatureTemplate();
int64 curRespawnDelay = target->GetRespawnTimeEx()-time(NULL);
if (curRespawnDelay < 0)
@@ -647,7 +734,13 @@ public:
handler->PSendSysMessage(LANG_NPCINFO_LEVEL, target->getLevel());
handler->PSendSysMessage(LANG_NPCINFO_EQUIPMENT, target->GetCurrentEquipmentId(), target->GetOriginalEquipmentId());
handler->PSendSysMessage(LANG_NPCINFO_HEALTH, target->GetCreateHealth(), target->GetMaxHealth(), target->GetHealth());
- handler->PSendSysMessage(LANG_NPCINFO_FLAGS, target->GetUInt32Value(UNIT_FIELD_FLAGS), target->GetUInt32Value(UNIT_FIELD_FLAGS_2), target->GetUInt32Value(UNIT_DYNAMIC_FLAGS), target->getFaction());
+
+ handler->PSendSysMessage(LANG_NPCINFO_UNIT_FIELD_FLAGS, target->GetUInt32Value(UNIT_FIELD_FLAGS));
+ for (uint8 i = 0; i < MAX_UNIT_FLAGS; ++i)
+ if (target->GetUInt32Value(UNIT_FIELD_FLAGS) & unitFlags[i].flag)
+ handler->PSendSysMessage(unitFlags[i].text, unitFlags[i].flag);
+
+ handler->PSendSysMessage(LANG_NPCINFO_FLAGS, target->GetUInt32Value(UNIT_FIELD_FLAGS_2), target->GetUInt32Value(UNIT_DYNAMIC_FLAGS), target->getFaction());
handler->PSendSysMessage(LANG_COMMAND_RAWPAWNTIMES, defRespawnDelayStr.c_str(), curRespawnDelayStr.c_str());
handler->PSendSysMessage(LANG_NPCINFO_LOOT, cInfo->lootid, cInfo->pickpocketLootId, cInfo->SkinLootId);
handler->PSendSysMessage(LANG_NPCINFO_DUNGEON_ID, target->GetInstanceId());
@@ -660,6 +753,11 @@ public:
if (npcflags & npcFlagTexts[i].flag)
handler->PSendSysMessage(npcFlagTexts[i].text, npcFlagTexts[i].flag);
+ handler->PSendSysMessage(LANG_NPCINFO_MECHANIC_IMMUNE, mechanicImmuneMask);
+ for (uint8 i = 0; i < MAX_MECHANIC; ++i)
+ if ((mechanicImmuneMask << 1) & mechanicImmunes[i].flag)
+ handler->PSendSysMessage(mechanicImmunes[i].text, mechanicImmunes[i].flag);
+
return true;
}
@@ -776,7 +874,7 @@ public:
}
creature->SetPosition(x, y, z, o);
creature->GetMotionMaster()->Initialize();
- if (creature->isAlive()) // dead creature will reset movement generator at respawn
+ if (creature->IsAlive()) // dead creature will reset movement generator at respawn
{
creature->setDeathState(JUST_DIED);
creature->Respawn();
@@ -836,7 +934,7 @@ public:
Creature* creature = handler->getSelectedCreature();
- if (!creature || creature->isPet())
+ if (!creature || creature->IsPet())
{
handler->SendSysMessage(LANG_SELECT_CREATURE);
handler->SetSentErrorMessage(true);
@@ -920,7 +1018,7 @@ public:
{
type_str = guid_str;
creature = handler->getSelectedCreature();
- if (!creature || creature->isPet())
+ if (!creature || creature->IsPet())
return false;
lowguid = creature->GetDBTableGUIDLow();
}
@@ -978,7 +1076,7 @@ public:
creature->SetDefaultMovementType(move_type);
creature->GetMotionMaster()->Initialize();
- if (creature->isAlive()) // dead creature will reset movement generator at respawn
+ if (creature->IsAlive()) // dead creature will reset movement generator at respawn
{
creature->setDeathState(JUST_DIED);
creature->Respawn();
@@ -1022,7 +1120,7 @@ public:
creature->SetPhaseMask(phasemask, true);
- if (!creature->isPet())
+ if (!creature->IsPet())
creature->SaveToDB();
return true;
@@ -1056,7 +1154,7 @@ public:
creature->SetRespawnRadius((float)option);
creature->SetDefaultMovementType(mtype);
creature->GetMotionMaster()->Initialize();
- if (creature->isAlive()) // dead creature will reset movement generator at respawn
+ if (creature->IsAlive()) // dead creature will reset movement generator at respawn
{
creature->setDeathState(JUST_DIED);
creature->Respawn();
@@ -1272,7 +1370,7 @@ public:
static bool HandleNpcTameCommand(ChatHandler* handler, char const* /*args*/)
{
Creature* creatureTarget = handler->getSelectedCreature();
- if (!creatureTarget || creatureTarget->isPet())
+ if (!creatureTarget || creatureTarget->IsPet())
{
handler->PSendSysMessage (LANG_SELECT_CREATURE);
handler->SetSentErrorMessage (true);
@@ -1290,7 +1388,7 @@ public:
CreatureTemplate const* cInfo = creatureTarget->GetCreatureTemplate();
- if (!cInfo->isTameable (player->CanTameExoticPets()))
+ if (!cInfo->IsTameable (player->CanTameExoticPets()))
{
handler->PSendSysMessage (LANG_CREATURE_NON_TAMEABLE, cInfo->Entry);
handler->SetSentErrorMessage (true);
diff --git a/src/server/scripts/Commands/cs_quest.cpp b/src/server/scripts/Commands/cs_quest.cpp
index e0d67b55989..6b7d10ff7b1 100644
--- a/src/server/scripts/Commands/cs_quest.cpp
+++ b/src/server/scripts/Commands/cs_quest.cpp
@@ -33,7 +33,7 @@ class quest_commandscript : public CommandScript
public:
quest_commandscript() : CommandScript("quest_commandscript") { }
- ChatCommand* GetCommands() const
+ ChatCommand* GetCommands() const OVERRIDE
{
static ChatCommand questCommandTable[] =
{
diff --git a/src/server/scripts/Commands/cs_rbac.cpp b/src/server/scripts/Commands/cs_rbac.cpp
index 604218c2e68..667815ce16c 100644
--- a/src/server/scripts/Commands/cs_rbac.cpp
+++ b/src/server/scripts/Commands/cs_rbac.cpp
@@ -32,6 +32,12 @@ EndScriptData */
struct RBACCommandData
{
RBACCommandData(): id(0), realmId(0), rbac(NULL), needDelete(false) { }
+ ~RBACCommandData()
+ {
+ if (needDelete)
+ delete rbac;
+ }
+
uint32 id;
int32 realmId;
RBACData* rbac;
@@ -230,8 +236,7 @@ public:
break;
}
- if (command->needDelete)
- delete command;
+ delete command;
return true;
}
@@ -266,8 +271,7 @@ public:
break;
}
- if (command->needDelete)
- delete command;
+ delete command;
return true;
}
@@ -295,8 +299,7 @@ public:
}
}
- if (command->needDelete)
- delete command;
+ delete command;
return true;
}
@@ -335,8 +338,7 @@ public:
break;
}
- if (command->needDelete)
- delete command;
+ delete command;
return true;
}
@@ -375,8 +377,7 @@ public:
break;
}
- if (command->needDelete)
- delete command;
+ delete command;
return true;
}
@@ -411,8 +412,7 @@ public:
break;
}
- if (command->needDelete)
- delete command;
+ delete command;
return true;
}
@@ -453,8 +453,7 @@ public:
}
}
- if (command->needDelete)
- delete command;
+ delete command;
return true;
}
@@ -493,8 +492,7 @@ public:
break;
}
- if (command->needDelete)
- delete command;
+ delete command;
return true;
}
@@ -533,8 +531,7 @@ public:
break;
}
- if (command->needDelete)
- delete command;
+ delete command;
return true;
}
@@ -569,8 +566,7 @@ public:
break;
}
- if (command->needDelete)
- delete command;
+ delete command;
return true;
}
@@ -613,8 +609,7 @@ public:
}
}
- if (command->needDelete)
- delete command;
+ delete command;
return true;
}
@@ -643,8 +638,7 @@ public:
}
}
- if (command->needDelete)
- delete command;
+ delete command;
return true;
}
diff --git a/src/server/scripts/Commands/cs_reload.cpp b/src/server/scripts/Commands/cs_reload.cpp
index 5351f3edda0..829152b7fa7 100644
--- a/src/server/scripts/Commands/cs_reload.cpp
+++ b/src/server/scripts/Commands/cs_reload.cpp
@@ -82,11 +82,11 @@ public:
{ "creature_text", SEC_ADMINISTRATOR, true, &HandleReloadCreatureText, "", NULL },
{ "creature_ai_scripts", SEC_ADMINISTRATOR, true, &HandleReloadEventAIScriptsCommand, "", NULL },
{ "creature_ai_texts", SEC_ADMINISTRATOR, true, &HandleReloadEventAITextsCommand, "", NULL },
- { "creature_involvedrelation", SEC_ADMINISTRATOR, true, &HandleReloadCreatureQuestInvRelationsCommand, "", NULL },
+ { "creature_questender", SEC_ADMINISTRATOR, true, &HandleReloadCreatureQuestEnderCommand, "", NULL },
{ "creature_linked_respawn", SEC_GAMEMASTER, true, &HandleReloadLinkedRespawnCommand, "", NULL },
{ "creature_loot_template", SEC_ADMINISTRATOR, true, &HandleReloadLootTemplatesCreatureCommand, "", NULL },
{ "creature_onkill_reputation", SEC_ADMINISTRATOR, true, &HandleReloadOnKillReputationCommand, "", NULL },
- { "creature_questrelation", SEC_ADMINISTRATOR, true, &HandleReloadCreatureQuestRelationsCommand, "", NULL },
+ { "creature_queststarter", SEC_ADMINISTRATOR, true, &HandleReloadCreatureQuestStarterCommand, "", NULL },
{ "creature_summon_groups", SEC_ADMINISTRATOR, true, &HandleReloadCreatureSummonGroupsCommand, "", NULL },
{ "creature_template", SEC_ADMINISTRATOR, true, &HandleReloadCreatureTemplateCommand, "", NULL },
//{ "db_script_string", SEC_ADMINISTRATOR, true, &HandleReloadDbScriptStringCommand, "", NULL },
@@ -96,9 +96,9 @@ public:
{ "fishing_loot_template", SEC_ADMINISTRATOR, true, &HandleReloadLootTemplatesFishingCommand, "", NULL },
{ "game_graveyard_zone", SEC_ADMINISTRATOR, true, &HandleReloadGameGraveyardZoneCommand, "", NULL },
{ "game_tele", SEC_ADMINISTRATOR, true, &HandleReloadGameTeleCommand, "", NULL },
- { "gameobject_involvedrelation", SEC_ADMINISTRATOR, true, &HandleReloadGOQuestInvRelationsCommand, "", NULL },
+ { "gameobject_questender", SEC_ADMINISTRATOR, true, &HandleReloadGOQuestEnderCommand, "", NULL },
{ "gameobject_loot_template", SEC_ADMINISTRATOR, true, &HandleReloadLootTemplatesGameobjectCommand, "", NULL },
- { "gameobject_questrelation", SEC_ADMINISTRATOR, true, &HandleReloadGOQuestRelationsCommand, "", NULL },
+ { "gameobject_queststarter", SEC_ADMINISTRATOR, true, &HandleReloadGOQuestStarterCommand, "", NULL },
{ "gm_tickets", SEC_ADMINISTRATOR, true, &HandleReloadGMTicketsCommand, "", NULL },
{ "gossip_menu", SEC_ADMINISTRATOR, true, &HandleReloadGossipMenuCommand, "", NULL },
{ "gossip_menu_option", SEC_ADMINISTRATOR, true, &HandleReloadGossipMenuOptionCommand, "", NULL },
@@ -249,8 +249,8 @@ public:
HandleReloadQuestTemplateCommand(handler, "a");
TC_LOG_INFO(LOG_FILTER_GENERAL, "Re-Loading Quests Relations...");
- sObjectMgr->LoadQuestRelations();
- handler->SendGlobalGMSysMessage("DB tables `*_questrelation` and `*_involvedrelation` reloaded.");
+ sObjectMgr->LoadQuestStartersAndEnders();
+ handler->SendGlobalGMSysMessage("DB tables `*_queststarter` and `*_questender` reloaded.");
return true;
}
@@ -532,11 +532,11 @@ public:
return true;
}
- static bool HandleReloadCreatureQuestRelationsCommand(ChatHandler* handler, const char* /*args*/)
+ static bool HandleReloadCreatureQuestStarterCommand(ChatHandler* handler, const char* /*args*/)
{
- TC_LOG_INFO(LOG_FILTER_GENERAL, "Loading Quests Relations... (`creature_questrelation`)");
- sObjectMgr->LoadCreatureQuestRelations();
- handler->SendGlobalGMSysMessage("DB table `creature_questrelation` (creature quest givers) reloaded.");
+ TC_LOG_INFO(LOG_FILTER_GENERAL, "Loading Quests Relations... (`creature_queststarter`)");
+ sObjectMgr->LoadCreatureQuestStarters();
+ handler->SendGlobalGMSysMessage("DB table `creature_queststarter` reloaded.");
return true;
}
@@ -548,11 +548,11 @@ public:
return true;
}
- static bool HandleReloadCreatureQuestInvRelationsCommand(ChatHandler* handler, const char* /*args*/)
+ static bool HandleReloadCreatureQuestEnderCommand(ChatHandler* handler, const char* /*args*/)
{
- TC_LOG_INFO(LOG_FILTER_GENERAL, "Loading Quests Relations... (`creature_involvedrelation`)");
- sObjectMgr->LoadCreatureInvolvedRelations();
- handler->SendGlobalGMSysMessage("DB table `creature_involvedrelation` (creature quest takers) reloaded.");
+ TC_LOG_INFO(LOG_FILTER_GENERAL, "Loading Quests Relations... (`creature_questender`)");
+ sObjectMgr->LoadCreatureQuestEnders();
+ handler->SendGlobalGMSysMessage("DB table `creature_questender` reloaded.");
return true;
}
@@ -574,19 +574,19 @@ public:
return true;
}
- static bool HandleReloadGOQuestRelationsCommand(ChatHandler* handler, const char* /*args*/)
+ static bool HandleReloadGOQuestStarterCommand(ChatHandler* handler, const char* /*args*/)
{
- TC_LOG_INFO(LOG_FILTER_GENERAL, "Loading Quests Relations... (`gameobject_questrelation`)");
- sObjectMgr->LoadGameobjectQuestRelations();
- handler->SendGlobalGMSysMessage("DB table `gameobject_questrelation` (gameobject quest givers) reloaded.");
+ TC_LOG_INFO(LOG_FILTER_GENERAL, "Loading Quests Relations... (`gameobject_queststarter`)");
+ sObjectMgr->LoadGameobjectQuestStarters();
+ handler->SendGlobalGMSysMessage("DB table `gameobject_queststarter` reloaded.");
return true;
}
- static bool HandleReloadGOQuestInvRelationsCommand(ChatHandler* handler, const char* /*args*/)
+ static bool HandleReloadGOQuestEnderCommand(ChatHandler* handler, const char* /*args*/)
{
- TC_LOG_INFO(LOG_FILTER_GENERAL, "Loading Quests Relations... (`gameobject_involvedrelation`)");
- sObjectMgr->LoadGameobjectInvolvedRelations();
- handler->SendGlobalGMSysMessage("DB table `gameobject_involvedrelation` (gameobject quest takers) reloaded.");
+ TC_LOG_INFO(LOG_FILTER_GENERAL, "Loading Quests Relations... (`gameobject_questender`)");
+ sObjectMgr->LoadGameobjectQuestEnders();
+ handler->SendGlobalGMSysMessage("DB table `gameobject_questender` reloaded.");
return true;
}
diff --git a/src/server/scripts/Commands/cs_reset.cpp b/src/server/scripts/Commands/cs_reset.cpp
index b0f57a3f609..10877c49d55 100644
--- a/src/server/scripts/Commands/cs_reset.cpp
+++ b/src/server/scripts/Commands/cs_reset.cpp
@@ -35,7 +35,7 @@ class reset_commandscript : public CommandScript
public:
reset_commandscript() : CommandScript("reset_commandscript") { }
- ChatCommand* GetCommands() const
+ ChatCommand* GetCommands() const OVERRIDE
{
static ChatCommand resetCommandTable[] =
{
@@ -102,9 +102,6 @@ public:
if (!player->HasAuraType(SPELL_AURA_MOD_SHAPESHIFT))
player->SetShapeshiftForm(FORM_NONE);
- player->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, DEFAULT_WORLD_OBJECT_SIZE);
- player->SetFloatValue(UNIT_FIELD_COMBATREACH, DEFAULT_COMBAT_REACH);
-
player->setFactionForRace(player->getRace());
player->SetUInt32Value(UNIT_FIELD_BYTES_0, ((player->getRace()) | (player->getClass() << 8) | (player->getGender() << 16) | (powerType << 24)));
@@ -119,8 +116,6 @@ public:
//-1 is default value
player->SetUInt32Value(PLAYER_FIELD_WATCHED_FACTION_INDEX, uint32(-1));
-
- //player->SetUInt32Value(PLAYER_FIELD_BYTES, 0xEEE00000);
return true;
}
@@ -216,7 +211,7 @@ public:
{
// Try reset talents as Hunter Pet
Creature* creature = handler->getSelectedCreature();
- if (!*args && creature && creature->isPet())
+ if (!*args && creature && creature->IsPet())
{
Unit* owner = creature->GetOwner();
if (owner && owner->GetTypeId() == TYPEID_PLAYER && creature->ToPet()->IsPermanentPetFor(owner->ToPlayer()))
diff --git a/src/server/scripts/Commands/cs_server.cpp b/src/server/scripts/Commands/cs_server.cpp
index 309380a9cbb..ec8771cc2f4 100644
--- a/src/server/scripts/Commands/cs_server.cpp
+++ b/src/server/scripts/Commands/cs_server.cpp
@@ -35,7 +35,7 @@ class server_commandscript : public CommandScript
public:
server_commandscript() : CommandScript("server_commandscript") { }
- ChatCommand* GetCommands() const
+ ChatCommand* GetCommands() const OVERRIDE
{
static ChatCommand serverIdleRestartCommandTable[] =
{
@@ -153,7 +153,7 @@ public:
sWorld->SetPlayerSecurityLimit(SEC_ADMINISTRATOR);
else if (strncmp(paramStr, "reset", limit) == 0)
{
- sWorld->SetPlayerAmountLimit(ConfigMgr::GetIntDefault("PlayerLimit", 100));
+ sWorld->SetPlayerAmountLimit(sConfigMgr->GetIntDefault("PlayerLimit", 100));
sWorld->LoadDBAllowedSecurityLevel();
}
else
@@ -338,7 +338,8 @@ public:
}
else
sWorld->ShutdownServ(time, SHUTDOWN_MASK_IDLE, SHUTDOWN_EXIT_CODE);
- return true;
+
+ return true;
}
// Exit the realm
diff --git a/src/server/scripts/Commands/cs_tele.cpp b/src/server/scripts/Commands/cs_tele.cpp
index fcc0875ca4f..12276102df1 100644
--- a/src/server/scripts/Commands/cs_tele.cpp
+++ b/src/server/scripts/Commands/cs_tele.cpp
@@ -35,7 +35,7 @@ class tele_commandscript : public CommandScript
public:
tele_commandscript() : CommandScript("tele_commandscript") { }
- ChatCommand* GetCommands() const
+ ChatCommand* GetCommands() const OVERRIDE
{
static ChatCommand teleCommandTable[] =
{
@@ -183,7 +183,7 @@ public:
ChatHandler(target->GetSession()).PSendSysMessage(LANG_TELEPORTED_TO_BY, handler->GetNameLink().c_str());
// stop flight if need
- if (target->isInFlight())
+ if (target->IsInFlight())
{
target->GetMotionMaster()->MovementExpired();
target->CleanupAfterTaxiFlight();
@@ -257,7 +257,7 @@ public:
for (GroupReference* itr = grp->GetFirstMember(); itr != NULL; itr = itr->next())
{
- Player* player = itr->getSource();
+ Player* player = itr->GetSource();
if (!player || !player->GetSession())
continue;
@@ -279,7 +279,7 @@ public:
ChatHandler(player->GetSession()).PSendSysMessage(LANG_TELEPORTED_TO_BY, nameLink.c_str());
// stop flight if need
- if (player->isInFlight())
+ if (player->IsInFlight())
{
player->GetMotionMaster()->MovementExpired();
player->CleanupAfterTaxiFlight();
@@ -311,7 +311,7 @@ public:
return false;
}
- if (me->isInCombat())
+ if (me->IsInCombat())
{
handler->SendSysMessage(LANG_YOU_IN_COMBAT);
handler->SetSentErrorMessage(true);
@@ -327,7 +327,7 @@ public:
}
// stop flight if need
- if (me->isInFlight())
+ if (me->IsInFlight())
{
me->GetMotionMaster()->MovementExpired();
me->CleanupAfterTaxiFlight();
diff --git a/src/server/scripts/Commands/cs_titles.cpp b/src/server/scripts/Commands/cs_titles.cpp
index 4c80f669312..93545c07728 100644
--- a/src/server/scripts/Commands/cs_titles.cpp
+++ b/src/server/scripts/Commands/cs_titles.cpp
@@ -33,7 +33,7 @@ class titles_commandscript : public CommandScript
public:
titles_commandscript() : CommandScript("titles_commandscript") { }
- ChatCommand* GetCommands() const
+ ChatCommand* GetCommands() const OVERRIDE
{
static ChatCommand titlesSetCommandTable[] =
{
diff --git a/src/server/scripts/Commands/cs_wp.cpp b/src/server/scripts/Commands/cs_wp.cpp
index bb48e94f744..38c12e75e7e 100644
--- a/src/server/scripts/Commands/cs_wp.cpp
+++ b/src/server/scripts/Commands/cs_wp.cpp
@@ -34,7 +34,7 @@ class wp_commandscript : public CommandScript
public:
wp_commandscript() : CommandScript("wp_commandscript") { }
- ChatCommand* GetCommands() const
+ ChatCommand* GetCommands() const OVERRIDE
{
static ChatCommand wpCommandTable[] =
{
@@ -796,7 +796,7 @@ public:
if (show == "info")
{
// Check if the user did specify a visual waypoint
- if (target->GetEntry() != VISUAL_WAYPOINT)
+ if (!target || target->GetEntry() != VISUAL_WAYPOINT)
{
handler->PSendSysMessage(LANG_WAYPOINT_VP_SELECT);
handler->SetSentErrorMessage(true);
diff --git a/src/server/scripts/EasternKingdoms/AlteracValley/alterac_valley.cpp b/src/server/scripts/EasternKingdoms/AlteracValley/alterac_valley.cpp
index d301e702174..7bc08b9a7c6 100644
--- a/src/server/scripts/EasternKingdoms/AlteracValley/alterac_valley.cpp
+++ b/src/server/scripts/EasternKingdoms/AlteracValley/alterac_valley.cpp
@@ -77,16 +77,16 @@ SpellPair const _auraPairs[MAX_SPELL_PAIRS] =
{ NPC_ICEBLOOD_WARMASTER, SPELL_ICEBLOOD_WARMASTER }
};
-class mob_av_marshal_or_warmaster : public CreatureScript
+class npc_av_marshal_or_warmaster : public CreatureScript
{
public:
- mob_av_marshal_or_warmaster() : CreatureScript("mob_av_marshal_or_warmaster") { }
+ npc_av_marshal_or_warmaster() : CreatureScript("npc_av_marshal_or_warmaster") { }
- struct mob_av_marshal_or_warmasterAI : public ScriptedAI
+ struct npc_av_marshal_or_warmasterAI : public ScriptedAI
{
- mob_av_marshal_or_warmasterAI(Creature* creature) : ScriptedAI(creature) { }
+ npc_av_marshal_or_warmasterAI(Creature* creature) : ScriptedAI(creature) { }
- void Reset()
+ void Reset() OVERRIDE
{
events.Reset();
events.ScheduleEvent(EVENT_CHARGE_TARGET, urand(2 * IN_MILLISECONDS, 12 * IN_MILLISECONDS));
@@ -99,12 +99,12 @@ class mob_av_marshal_or_warmaster : public CreatureScript
_hasAura = false;
}
- void JustRespawned()
+ void JustRespawned() OVERRIDE
{
Reset();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
// I have a feeling this isn't blizzlike, but owell, I'm only passing by and cleaning up.
if (!_hasAura)
@@ -129,11 +129,11 @@ class mob_av_marshal_or_warmaster : public CreatureScript
switch (eventId)
{
case EVENT_CHARGE_TARGET:
- DoCast(me->getVictim(), SPELL_CHARGE);
+ DoCastVictim(SPELL_CHARGE);
events.ScheduleEvent(EVENT_CHARGE, urand(10 * IN_MILLISECONDS, 25 * IN_MILLISECONDS));
break;
case EVENT_CLEAVE:
- DoCast(me->getVictim(), SPELL_CLEAVE);
+ DoCastVictim(SPELL_CLEAVE);
events.ScheduleEvent(EVENT_CLEAVE, urand(10 * IN_MILLISECONDS, 16 * IN_MILLISECONDS));
break;
case EVENT_DEMORALIZING_SHOUT:
@@ -170,13 +170,13 @@ class mob_av_marshal_or_warmaster : public CreatureScript
bool _hasAura;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_av_marshal_or_warmasterAI(creature);
+ return new npc_av_marshal_or_warmasterAI(creature);
}
};
void AddSC_alterac_valley()
{
- new mob_av_marshal_or_warmaster();
+ new npc_av_marshal_or_warmaster();
}
diff --git a/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp b/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp
index 6dec1796500..a1f33e57907 100644
--- a/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp
+++ b/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp
@@ -43,33 +43,33 @@ enum WaterElementalSpells
SPELL_WATERBOLT = 46983
};
-class mob_water_elemental : public CreatureScript
+class npc_water_elemental : public CreatureScript
{
public:
- mob_water_elemental() : CreatureScript("mob_water_elemental") { }
+ npc_water_elemental() : CreatureScript("npc_water_elemental") { }
- struct mob_water_elementalAI : public ScriptedAI
+ struct npc_water_elementalAI : public ScriptedAI
{
- mob_water_elementalAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_water_elementalAI(Creature* creature) : ScriptedAI(creature) {}
uint32 waterBoltTimer;
uint64 balindaGUID;
uint32 resetTimer;
- void Reset()
+ void Reset() OVERRIDE
{
waterBoltTimer = 3 * IN_MILLISECONDS;
resetTimer = 5 * IN_MILLISECONDS;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
if (waterBoltTimer < diff)
{
- DoCast(me->getVictim(), SPELL_WATERBOLT);
+ DoCastVictim(SPELL_WATERBOLT);
waterBoltTimer = 5 * IN_MILLISECONDS;
} else waterBoltTimer -= diff;
@@ -86,9 +86,9 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_water_elementalAI(creature);
+ return new npc_water_elementalAI(creature);
}
};
@@ -110,7 +110,7 @@ public:
SummonList summons;
- void Reset()
+ void Reset() OVERRIDE
{
arcaneExplosionTimer = urand(5 * IN_MILLISECONDS, 15 * IN_MILLISECONDS);
coneOfColdTimer = 8 * IN_MILLISECONDS;
@@ -122,30 +122,30 @@ public:
summons.DespawnAll();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(YELL_AGGRO);
}
- void JustRespawned()
+ void JustRespawned() OVERRIDE
{
Reset();
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
- CAST_AI(mob_water_elemental::mob_water_elementalAI, summoned->AI())->balindaGUID = me->GetGUID();
+ CAST_AI(npc_water_elemental::npc_water_elementalAI, summoned->AI())->balindaGUID = me->GetGUID();
summoned->AI()->AttackStart(SelectTarget(SELECT_TARGET_RANDOM, 0, 50, true));
summoned->setFaction(me->getFaction());
summons.Summon(summoned);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
summons.DespawnAll();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -159,25 +159,25 @@ public:
if (arcaneExplosionTimer < diff)
{
- DoCast(me->getVictim(), SPELL_ARCANE_EXPLOSION);
+ DoCastVictim(SPELL_ARCANE_EXPLOSION);
arcaneExplosionTimer = urand(5 * IN_MILLISECONDS, 15 * IN_MILLISECONDS);
} else arcaneExplosionTimer -= diff;
if (coneOfColdTimer < diff)
{
- DoCast(me->getVictim(), SPELL_CONE_OF_COLD);
+ DoCastVictim(SPELL_CONE_OF_COLD);
coneOfColdTimer = urand(10 * IN_MILLISECONDS, 20 * IN_MILLISECONDS);
} else coneOfColdTimer -= diff;
if (fireBoltTimer < diff)
{
- DoCast(me->getVictim(), SPELL_FIREBALL);
+ DoCastVictim(SPELL_FIREBALL);
fireBoltTimer = urand(5 * IN_MILLISECONDS, 9 * IN_MILLISECONDS);
} else fireBoltTimer -= diff;
if (frostboltTimer < diff)
{
- DoCast(me->getVictim(), SPELL_FROSTBOLT);
+ DoCastVictim(SPELL_FROSTBOLT);
frostboltTimer = urand(4 * IN_MILLISECONDS, 12 * IN_MILLISECONDS);
} else frostboltTimer -= diff;
@@ -196,7 +196,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_balindaAI(creature);
}
@@ -205,5 +205,5 @@ public:
void AddSC_boss_balinda()
{
new boss_balinda;
- new mob_water_elemental;
+ new npc_water_elemental;
};
diff --git a/src/server/scripts/EasternKingdoms/AlteracValley/boss_drekthar.cpp b/src/server/scripts/EasternKingdoms/AlteracValley/boss_drekthar.cpp
index 745c310d35c..8bddff621fa 100644
--- a/src/server/scripts/EasternKingdoms/AlteracValley/boss_drekthar.cpp
+++ b/src/server/scripts/EasternKingdoms/AlteracValley/boss_drekthar.cpp
@@ -54,7 +54,7 @@ public:
uint32 YellTimer;
uint32 ResetTimer;
- void Reset()
+ void Reset() OVERRIDE
{
WhirlwindTimer = urand(1 * IN_MILLISECONDS, 20 * IN_MILLISECONDS);
Whirlwind2Timer = urand(1 * IN_MILLISECONDS, 20 * IN_MILLISECONDS);
@@ -64,43 +64,43 @@ public:
YellTimer = urand(20 * IN_MILLISECONDS, 30 * IN_MILLISECONDS); //20 to 30 seconds
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(YELL_AGGRO);
}
- void JustRespawned()
+ void JustRespawned() OVERRIDE
{
Reset();
Talk(YELL_RESPAWN);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
if (WhirlwindTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_WHIRLWIND);
+ DoCastVictim(SPELL_WHIRLWIND);
WhirlwindTimer = urand(8 * IN_MILLISECONDS, 18 * IN_MILLISECONDS);
} else WhirlwindTimer -= diff;
if (Whirlwind2Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_WHIRLWIND2);
+ DoCastVictim(SPELL_WHIRLWIND2);
Whirlwind2Timer = urand(7 * IN_MILLISECONDS, 25 * IN_MILLISECONDS);
} else Whirlwind2Timer -= diff;
if (KnockdownTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_KNOCKDOWN);
+ DoCastVictim(SPELL_KNOCKDOWN);
KnockdownTimer = urand(10 * IN_MILLISECONDS, 15 * IN_MILLISECONDS);
} else KnockdownTimer -= diff;
if (FrenzyTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_FRENZY);
+ DoCastVictim(SPELL_FRENZY);
FrenzyTimer = urand(20 * IN_MILLISECONDS, 30 * IN_MILLISECONDS);
} else FrenzyTimer -= diff;
@@ -125,7 +125,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_drektharAI(creature);
}
diff --git a/src/server/scripts/EasternKingdoms/AlteracValley/boss_galvangar.cpp b/src/server/scripts/EasternKingdoms/AlteracValley/boss_galvangar.cpp
index 2cf7d7cafef..1dcf70d28b9 100644
--- a/src/server/scripts/EasternKingdoms/AlteracValley/boss_galvangar.cpp
+++ b/src/server/scripts/EasternKingdoms/AlteracValley/boss_galvangar.cpp
@@ -49,7 +49,7 @@ public:
uint32 MortalStrikeTimer;
uint32 ResetTimer;
- void Reset()
+ void Reset() OVERRIDE
{
CleaveTimer = urand(1 * IN_MILLISECONDS, 9 * IN_MILLISECONDS);
FrighteningShoutTimer = urand(2 * IN_MILLISECONDS, 19 * IN_MILLISECONDS);
@@ -59,48 +59,48 @@ public:
ResetTimer = 5 * IN_MILLISECONDS;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(YELL_AGGRO);
}
- void JustRespawned()
+ void JustRespawned() OVERRIDE
{
Reset();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
if (CleaveTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_CLEAVE);
+ DoCastVictim(SPELL_CLEAVE);
CleaveTimer = urand(10 * IN_MILLISECONDS, 16 * IN_MILLISECONDS);
} else CleaveTimer -= diff;
if (FrighteningShoutTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_FRIGHTENING_SHOUT);
+ DoCastVictim(SPELL_FRIGHTENING_SHOUT);
FrighteningShoutTimer = urand(10 * IN_MILLISECONDS, 15 * IN_MILLISECONDS);
} else FrighteningShoutTimer -= diff;
if (Whirlwind1Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_WHIRLWIND1);
+ DoCastVictim(SPELL_WHIRLWIND1);
Whirlwind1Timer = urand(6 * IN_MILLISECONDS, 10 * IN_MILLISECONDS);
} else Whirlwind1Timer -= diff;
if (Whirlwind2Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_WHIRLWIND2);
+ DoCastVictim(SPELL_WHIRLWIND2);
Whirlwind2Timer = urand(10 * IN_MILLISECONDS, 25 * IN_MILLISECONDS);
} else Whirlwind2Timer -= diff;
if (MortalStrikeTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_MORTAL_STRIKE);
+ DoCastVictim(SPELL_MORTAL_STRIKE);
MortalStrikeTimer = urand(10 * IN_MILLISECONDS, 30 * IN_MILLISECONDS);
} else MortalStrikeTimer -= diff;
@@ -119,7 +119,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_galvangarAI(creature);
}
diff --git a/src/server/scripts/EasternKingdoms/AlteracValley/boss_vanndar.cpp b/src/server/scripts/EasternKingdoms/AlteracValley/boss_vanndar.cpp
index 6939890a702..f2ba479ac86 100644
--- a/src/server/scripts/EasternKingdoms/AlteracValley/boss_vanndar.cpp
+++ b/src/server/scripts/EasternKingdoms/AlteracValley/boss_vanndar.cpp
@@ -50,7 +50,7 @@ public:
uint32 ResetTimer;
uint32 YellTimer;
- void Reset()
+ void Reset() OVERRIDE
{
AvatarTimer = 3 * IN_MILLISECONDS;
ThunderclapTimer = 4 * IN_MILLISECONDS;
@@ -59,31 +59,31 @@ public:
YellTimer = urand(20 * IN_MILLISECONDS, 30 * IN_MILLISECONDS);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(YELL_AGGRO);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
if (AvatarTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_AVATAR);
+ DoCastVictim(SPELL_AVATAR);
AvatarTimer = urand(15 * IN_MILLISECONDS, 20 * IN_MILLISECONDS);
} else AvatarTimer -= diff;
if (ThunderclapTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_THUNDERCLAP);
+ DoCastVictim(SPELL_THUNDERCLAP);
ThunderclapTimer = urand(5 * IN_MILLISECONDS, 15 * IN_MILLISECONDS);
} else ThunderclapTimer -= diff;
if (StormboltTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_STORMBOLT);
+ DoCastVictim(SPELL_STORMBOLT);
StormboltTimer = urand(10 * IN_MILLISECONDS, 25 * IN_MILLISECONDS);
} else StormboltTimer -= diff;
@@ -108,7 +108,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_vanndarAI(creature);
}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/blackrock_depths.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp
index 905c0c5997d..e9a6b15dcf8 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockDepths/blackrock_depths.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp
@@ -29,7 +29,7 @@ class go_shadowforge_brazier : public GameObjectScript
public:
go_shadowforge_brazier() : GameObjectScript("go_shadowforge_brazier") { }
- bool OnGossipHello(Player* /*player*/, GameObject* go)
+ bool OnGossipHello(Player* /*player*/, GameObject* go) OVERRIDE
{
if (InstanceScript* instance = go->GetInstanceScript())
{
@@ -48,13 +48,13 @@ public:
};
// npc_grimstone
-enum eGrimstone
+enum Grimstone
{
NPC_GRIMSTONE = 10096,
NPC_THELDREN = 16059,
//4 or 6 in total? 1+2+1 / 2+2+2 / 3+3. Depending on this, code should be changed.
- MAX_MOB_AMOUNT = 4
+ MAX_NPC_AMOUNT = 4
};
uint32 RingMob[]=
@@ -82,7 +82,7 @@ class at_ring_of_law : public AreaTriggerScript
public:
at_ring_of_law() : AreaTriggerScript("at_ring_of_law") { }
- bool OnTrigger(Player* player, const AreaTriggerEntry* /*at*/)
+ bool OnTrigger(Player* player, const AreaTriggerEntry* /*at*/) OVERRIDE
{
if (InstanceScript* instance = player->GetInstanceScript())
{
@@ -115,7 +115,7 @@ class npc_grimstone : public CreatureScript
public:
npc_grimstone() : CreatureScript("npc_grimstone") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_grimstoneAI(creature);
}
@@ -142,7 +142,7 @@ public:
bool CanWalk;
- void Reset()
+ void Reset() OVERRIDE
{
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
@@ -152,7 +152,7 @@ public:
MobCount = 0;
MobDeath_Timer = 0;
- for (uint8 i = 0; i < MAX_MOB_AMOUNT; ++i)
+ for (uint8 i = 0; i < MAX_NPC_AMOUNT; ++i)
RingMobGUID[i] = 0;
RingBossGUID = 0;
@@ -168,7 +168,7 @@ public:
++MobCount;
- if (MobCount == MAX_MOB_AMOUNT)
+ if (MobCount == MAX_NPC_AMOUNT)
MobDeath_Timer = 2500;
}
@@ -181,7 +181,7 @@ public:
MobDeath_Timer = 2500;
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
switch (waypointId)
{
@@ -222,7 +222,7 @@ public:
instance->HandleGameObject(instance->GetData64(id), open);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!instance)
return;
@@ -236,7 +236,7 @@ public:
if (RingBossGUID)
{
Creature* boss = Unit::GetCreature(*me, RingBossGUID);
- if (boss && !boss->isAlive() && boss->isDead())
+ if (boss && !boss->IsAlive() && boss->isDead())
{
RingBossGUID = 0;
Event_Timer = 5000;
@@ -246,10 +246,10 @@ public:
return;
}
- for (uint8 i = 0; i < MAX_MOB_AMOUNT; ++i)
+ for (uint8 i = 0; i < MAX_NPC_AMOUNT; ++i)
{
Creature* mob = Unit::GetCreature(*me, RingMobGUID[i]);
- if (mob && !mob->isAlive() && mob->isDead())
+ if (mob && !mob->IsAlive() && mob->isDead())
{
RingMobGUID[i] = 0;
--MobCount;
@@ -339,7 +339,7 @@ public:
};
};
-// mob_phalanx
+// npc_phalanx
enum PhalanxSpells
{
SPELL_THUNDERCLAP = 8732,
@@ -347,32 +347,32 @@ enum PhalanxSpells
SPELL_MIGHTYBLOW = 14099
};
-class mob_phalanx : public CreatureScript
+class npc_phalanx : public CreatureScript
{
public:
- mob_phalanx() : CreatureScript("mob_phalanx") { }
+ npc_phalanx() : CreatureScript("npc_phalanx") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_phalanxAI (creature);
+ return new npc_phalanxAI(creature);
}
- struct mob_phalanxAI : public ScriptedAI
+ struct npc_phalanxAI : public ScriptedAI
{
- mob_phalanxAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_phalanxAI(Creature* creature) : ScriptedAI(creature) {}
uint32 ThunderClap_Timer;
uint32 FireballVolley_Timer;
uint32 MightyBlow_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
ThunderClap_Timer = 12000;
FireballVolley_Timer = 0;
MightyBlow_Timer = 15000;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -381,7 +381,7 @@ public:
//ThunderClap_Timer
if (ThunderClap_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_THUNDERCLAP);
+ DoCastVictim(SPELL_THUNDERCLAP);
ThunderClap_Timer = 10000;
} else ThunderClap_Timer -= diff;
@@ -390,7 +390,7 @@ public:
{
if (FireballVolley_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_FIREBALLVOLLEY);
+ DoCastVictim(SPELL_FIREBALLVOLLEY);
FireballVolley_Timer = 15000;
} else FireballVolley_Timer -= diff;
}
@@ -398,7 +398,7 @@ public:
//MightyBlow_Timer
if (MightyBlow_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_MIGHTYBLOW);
+ DoCastVictim(SPELL_MIGHTYBLOW);
MightyBlow_Timer = 10000;
} else MightyBlow_Timer -= diff;
@@ -430,7 +430,7 @@ class npc_kharan_mighthammer : public CreatureScript
public:
npc_kharan_mighthammer() : CreatureScript("npc_kharan_mighthammer") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -479,9 +479,9 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
if (player->GetQuestStatus(QUEST_4001) == QUEST_STATUS_INCOMPLETE)
@@ -524,7 +524,7 @@ class npc_lokhtos_darkbargainer : public CreatureScript
public:
npc_lokhtos_darkbargainer() : CreatureScript("npc_lokhtos_darkbargainer") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF + 1)
@@ -538,12 +538,12 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
- if (creature->isVendor() && player->GetReputationRank(59) >= REP_FRIENDLY)
+ if (creature->IsVendor() && player->GetReputationRank(59) >= REP_FRIENDLY)
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_ITEM_SHOW_ACCESS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
if (player->GetQuestRewardStatus(QUEST_A_BINDING_CONTRACT) != 1 &&
@@ -577,7 +577,7 @@ class npc_dughal_stormwing : public CreatureScript
public:
npc_dughal_stormwing() : CreatureScript("npc_dughal_stormwing") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
npc_dughal_stormwingAI* dughal_stormwingAI = new npc_dughal_stormwingAI(creature);
@@ -588,7 +588,7 @@ public:
return dughal_stormwingAI;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF + 1)
@@ -601,7 +601,7 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
if (player->GetQuestStatus(QUEST_JAIL_BREAK) == QUEST_STATUS_INCOMPLETE && instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_IN_PROGRESS)
{
@@ -615,7 +615,7 @@ public:
{
npc_dughal_stormwingAI(Creature* creature) : npc_escortAI(creature) {}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
switch (waypointId)
{
@@ -634,10 +634,10 @@ public:
}
}
- void EnterCombat(Unit* who) {}
- void Reset() {}
+ void EnterCombat(Unit* who) OVERRIDE {}
+ void Reset() OVERRIDE {}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
if (IsBeingEscorted && killer == me)
{
@@ -648,7 +648,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_NOT_STARTED) return;
if ((instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_IN_PROGRESS || instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_FAILED || instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_ENDED)&& instance->GetData(DATA_DUGHAL) == ENCOUNTER_STATE_ENDED)
@@ -680,7 +680,11 @@ public:
#define SAY_WINDSOR_4_3 "Good work! We're almost there, $N. This way."
#define SAY_WINDSOR_6 "This is it, $N. My stuff should be in that room. Cover me, I'm going in!"
#define SAY_WINDSOR_9 "Ah, there it is!"
-#define MOB_ENTRY_REGINALD_WINDSOR 9682
+
+enum MarshalWindsor
+{
+ NPC_REGINALD_WINDSOR = 9682
+};
/*
Player* playerStart;
@@ -689,7 +693,7 @@ class npc_marshal_windsor : public CreatureScript
public:
npc_marshal_windsor() : CreatureScript("npc_marshal_windsor") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
npc_marshal_windsorAI* marshal_windsorAI = new npc_marshal_windsorAI(creature);
@@ -717,7 +721,7 @@ public:
return marshal_windsorAI;
}
- bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == 4322)
{
@@ -739,7 +743,7 @@ public:
instance = creature->GetInstanceScript();
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
switch (waypointId)
{
@@ -778,13 +782,13 @@ public:
me->SetVisible(false);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- me->SummonCreature(MOB_ENTRY_REGINALD_WINDSOR, 403.61f, -51.71f, -63.92f, 3.600434f, TEMPSUMMON_DEAD_DESPAWN, 0);
+ me->SummonCreature(NPC_REGINALD_WINDSOR, 403.61f, -51.71f, -63.92f, 3.600434f, TEMPSUMMON_DEAD_DESPAWN, 0);
instance->SetData(DATA_SUPPLY_ROOM, ENCOUNTER_STATE_ENDED);
break;
}
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
switch (urand(0, 2))
{
@@ -800,14 +804,14 @@ public:
}
}
- void Reset() {}
+ void Reset() OVERRIDE {}
- void JustDied(Unit* slayer)
+ void JustDied(Unit* slayer) OVERRIDE
{
instance->SetData(DATA_QUEST_JAIL_BREAK, ENCOUNTER_STATE_FAILED);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_NOT_STARTED)
return;
@@ -859,8 +863,12 @@ public:
#define SAY_REGINALD_WINDSOR_14_2 "Excellent work, $N. Let's find the exit. I think I know the way. Follow me!"
#define SAY_REGINALD_WINDSOR_20_1 "We made it!"
#define SAY_REGINALD_WINDSOR_20_2 "Meet me at Maxwell's encampment. We'll go over the next stages of the plan there and figure out a way to decode my tablets without the decryption ring."
-#define MOB_ENTRY_SHILL_DINGER 9678
-#define MOB_ENTRY_CREST_KILLER 9680
+
+enum MarshalReginaldWindor
+{
+ NPC_SHILL_DINGER = 9678,
+ NPC_CREST_KILLER = 9680
+};
/*
int wp = 0;
@@ -869,7 +877,7 @@ class npc_marshal_reginald_windsor : public CreatureScript
public:
npc_marshal_reginald_windsor() : CreatureScript("npc_marshal_reginald_windsor") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
npc_marshal_reginald_windsorAI* marshal_reginald_windsorAI = new npc_marshal_reginald_windsorAI(creature);
@@ -918,7 +926,7 @@ public:
{
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
wp = waypointId;
switch (waypointId)
@@ -976,7 +984,8 @@ public:
}
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (HasEscortState(STATE_ESCORT_ESCORTING))
return;
@@ -995,7 +1004,7 @@ public:
}
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
switch (urand(0, 2))
{
@@ -1010,14 +1019,14 @@ public:
break;
}
}
- void Reset() {}
+ void Reset() OVERRIDE {}
- void JustDied(Unit* slayer)
+ void JustDied(Unit* slayer) OVERRIDE
{
instance->SetData(DATA_QUEST_JAIL_BREAK, ENCOUNTER_STATE_FAILED);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_NOT_STARTED)
return;
@@ -1026,10 +1035,10 @@ public:
{
if (!instance->GetData(DATA_GATE_J) && instance->GetData(DATA_JAZ) == ENCOUNTER_STATE_NOT_STARTED)
{
- instance->SetData(DATA_CREATURE_JAZ, 1);
+ instance->SetData(DATA_NPC_JAZ, 1);
instance->SetData(DATA_JAZ, ENCOUNTER_STATE_IN_PROGRESS);
}
- if (instance->GetData(DATA_CREATURE_JAZ) && instance->GetData(DATA_CREATURE_OGRABISI) && instance->GetData(DATA_JAZ) == ENCOUNTER_STATE_IN_PROGRESS)
+ if (instance->GetData(DATA_NPC_JAZ) && instance->GetData(DATA_NPC_OGRABISI) && instance->GetData(DATA_JAZ) == ENCOUNTER_STATE_IN_PROGRESS)
{
SetEscortPaused(false);
instance->SetData(DATA_JAZ, ENCOUNTER_STATE_ENDED);
@@ -1039,10 +1048,10 @@ public:
{
if (!instance->GetData(DATA_GATE_S) && instance->GetData(DATA_SHILL) == ENCOUNTER_STATE_NOT_STARTED)
{
- instance->SetData(DATA_CREATURE_SHILL, 1);
+ instance->SetData(DATA_NPC_SHILL, 1);
instance->SetData(DATA_SHILL, ENCOUNTER_STATE_IN_PROGRESS);
}
- if (instance->GetData(DATA_CREATURE_SHILL) && instance->GetData(DATA_SHILL) == ENCOUNTER_STATE_IN_PROGRESS)
+ if (instance->GetData(DATA_NPC_SHILL) && instance->GetData(DATA_SHILL) == ENCOUNTER_STATE_IN_PROGRESS)
{
instance->SetData(DATA_SHILL, ENCOUNTER_STATE_ENDED);
SetEscortPaused(false);
@@ -1052,11 +1061,11 @@ public:
{
if (!instance->GetData(DATA_GATE_C) && instance->GetData(DATA_CREST) == ENCOUNTER_STATE_NOT_STARTED)
{
- instance->SetData(DATA_CREATURE_CREST, 1);
+ instance->SetData(DATA_NPC_CREST, 1);
me->Say(SAY_REGINALD_WINDSOR_13_2, LANG_UNIVERSAL, PlayerGUID);
instance->SetData(DATA_CREST, ENCOUNTER_STATE_IN_PROGRESS);
}
- if (instance->GetData(DATA_CREATURE_CREST) && instance->GetData(DATA_CREST) == ENCOUNTER_STATE_IN_PROGRESS)
+ if (instance->GetData(DATA_NPC_CREST) && instance->GetData(DATA_CREST) == ENCOUNTER_STATE_IN_PROGRESS)
{
SetEscortPaused(false);
instance->SetData(DATA_CREST, ENCOUNTER_STATE_ENDED);
@@ -1078,7 +1087,7 @@ class npc_tobias_seecher : public CreatureScript
public:
npc_tobias_seecher() : CreatureScript("npc_tobias_seecher") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
npc_tobias_seecherAI* tobias_seecherAI = new npc_tobias_seecherAI(creature);
@@ -1091,7 +1100,7 @@ public:
return tobias_seecherAI;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF + 1)
@@ -1104,7 +1113,7 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
if (player->GetQuestStatus(QUEST_JAIL_BREAK) == QUEST_STATUS_INCOMPLETE && instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_IN_PROGRESS)
{
@@ -1118,10 +1127,10 @@ public:
{
npc_tobias_seecherAI(Creature* creature) : npc_escortAI(creature) {}
- void EnterCombat(Unit* who) {}
- void Reset() {}
+ void EnterCombat(Unit* who) OVERRIDE {}
+ void Reset() OVERRIDE {}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
if (IsBeingEscorted && killer == me)
{
@@ -1132,7 +1141,7 @@ public:
}
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
switch (waypointId)
{
@@ -1151,7 +1160,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_NOT_STARTED)
return;
@@ -1196,7 +1205,7 @@ class npc_rocknot : public CreatureScript
public:
npc_rocknot() : CreatureScript("npc_rocknot") { }
- bool OnQuestReward(Player* /*player*/, Creature* creature, Quest const* quest, uint32 /*item*/)
+ bool OnQuestReward(Player* /*player*/, Creature* creature, Quest const* quest, uint32 /*item*/) OVERRIDE
{
InstanceScript* instance = creature->GetInstanceScript();
if (!instance)
@@ -1226,7 +1235,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_rocknotAI(creature);
}
@@ -1243,7 +1252,7 @@ public:
uint32 BreakKeg_Timer;
uint32 BreakDoor_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
if (HasEscortState(STATE_ESCORT_ESCORTING))
return;
@@ -1258,7 +1267,7 @@ public:
go->SetGoState((GOState)state);
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
if (!instance)
return;
@@ -1284,7 +1293,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!instance)
return;
@@ -1328,7 +1337,7 @@ void AddSC_blackrock_depths()
new go_shadowforge_brazier();
new at_ring_of_law();
new npc_grimstone();
- new mob_phalanx();
+ new npc_phalanx();
new npc_kharan_mighthammer();
new npc_lokhtos_darkbargainer();
new npc_rocknot();
diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/blackrock_depths.h b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.h
index dcce7d0c374..b279012bbf7 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockDepths/blackrock_depths.h
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.h
@@ -19,11 +19,14 @@
#ifndef DEF_BRD_H
#define DEF_BRD_H
-#define FACTION_NEUTRAL 734
-#define FACTION_HOSTILE 754
-#define FACTION_FRIEND 35
+enum FactionIds
+{
+ FACTION_NEUTRAL = 734,
+ FACTION_HOSTILE = 754,
+ FACTION_FRIEND = 35
+};
-enum eTypes
+enum DataTypes
{
TYPE_RING_OF_LAW = 1,
TYPE_VAULT = 2,
@@ -57,4 +60,5 @@ enum eTypes
DATA_SF_BRAZIER_S = 26,
DATA_MOIRA = 27,
};
+
#endif
diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_ambassador_flamelash.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_ambassador_flamelash.cpp
index c5d93ad0c85..3a4f734429c 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_ambassador_flamelash.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_ambassador_flamelash.cpp
@@ -29,9 +29,9 @@ class boss_ambassador_flamelash : public CreatureScript
public:
boss_ambassador_flamelash() : CreatureScript("boss_ambassador_flamelash") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_ambassador_flamelashAI (creature);
+ return new boss_ambassador_flamelashAI(creature);
}
struct boss_ambassador_flamelashAI : public ScriptedAI
@@ -41,13 +41,13 @@ public:
uint32 FireBlast_Timer;
uint32 Spirit_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
FireBlast_Timer = 2000;
Spirit_Timer = 24000;
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
void SummonSpirits(Unit* victim)
{
@@ -55,7 +55,7 @@ public:
Spirit->AI()->AttackStart(victim);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -64,17 +64,17 @@ public:
//FireBlast_Timer
if (FireBlast_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_FIREBLAST);
+ DoCastVictim(SPELL_FIREBLAST);
FireBlast_Timer = 7000;
} else FireBlast_Timer -= diff;
//Spirit_Timer
if (Spirit_Timer <= diff)
{
- SummonSpirits(me->getVictim());
- SummonSpirits(me->getVictim());
- SummonSpirits(me->getVictim());
- SummonSpirits(me->getVictim());
+ SummonSpirits(me->GetVictim());
+ SummonSpirits(me->GetVictim());
+ SummonSpirits(me->GetVictim());
+ SummonSpirits(me->GetVictim());
Spirit_Timer = 30000;
} else Spirit_Timer -= diff;
diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_anubshiah.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_anubshiah.cpp
index bb4de5b347a..63a94ca616a 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_anubshiah.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_anubshiah.cpp
@@ -33,9 +33,9 @@ class boss_anubshiah : public CreatureScript
public:
boss_anubshiah() : CreatureScript("boss_anubshiah") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_anubshiahAI (creature);
+ return new boss_anubshiahAI(creature);
}
struct boss_anubshiahAI : public ScriptedAI
@@ -48,7 +48,7 @@ public:
uint32 DemonArmor_Timer;
uint32 EnvelopingWeb_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
ShadowBolt_Timer = 7000;
CurseOfTongues_Timer = 24000;
@@ -57,9 +57,9 @@ public:
EnvelopingWeb_Timer = 16000;
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -68,7 +68,7 @@ public:
//ShadowBolt_Timer
if (ShadowBolt_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_SHADOWBOLT);
+ DoCastVictim(SPELL_SHADOWBOLT);
ShadowBolt_Timer = 7000;
} else ShadowBolt_Timer -= diff;
@@ -83,7 +83,7 @@ public:
//CurseOfWeakness_Timer
if (CurseOfWeakness_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_CURSEOFWEAKNESS);
+ DoCastVictim(SPELL_CURSEOFWEAKNESS);
CurseOfWeakness_Timer = 45000;
} else CurseOfWeakness_Timer -= diff;
diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp
index aaf0adc57c4..25f93a2b6b7 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp
@@ -37,9 +37,9 @@ class boss_emperor_dagran_thaurissan : public CreatureScript
public:
boss_emperor_dagran_thaurissan() : CreatureScript("boss_emperor_dagran_thaurissan") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_draganthaurissanAI (creature);
+ return new boss_draganthaurissanAI(creature);
}
struct boss_draganthaurissanAI : public ScriptedAI
@@ -54,25 +54,25 @@ public:
uint32 AvatarOfFlame_Timer;
//uint32 Counter;
- void Reset()
+ void Reset() OVERRIDE
{
HandOfThaurissan_Timer = 4000;
AvatarOfFlame_Timer = 25000;
//Counter= 0;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
me->CallForHelp(VISIBLE_RANGE);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (Creature* Moira = ObjectAccessor::GetCreature(*me, instance ? instance->GetData64(DATA_MOIRA) : 0))
{
@@ -81,7 +81,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -108,7 +108,7 @@ public:
//AvatarOfFlame_Timer
if (AvatarOfFlame_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_AVATAROFFLAME);
+ DoCastVictim(SPELL_AVATAROFFLAME);
AvatarOfFlame_Timer = 18000;
} else AvatarOfFlame_Timer -= diff;
diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_general_angerforge.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_general_angerforge.cpp
index bd5a06bf46c..80bfa651301 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_general_angerforge.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_general_angerforge.cpp
@@ -31,9 +31,9 @@ class boss_general_angerforge : public CreatureScript
public:
boss_general_angerforge() : CreatureScript("boss_general_angerforge") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_general_angerforgeAI (creature);
+ return new boss_general_angerforgeAI(creature);
}
struct boss_general_angerforgeAI : public ScriptedAI
@@ -46,7 +46,7 @@ public:
uint32 Adds_Timer;
bool Medics;
- void Reset()
+ void Reset() OVERRIDE
{
MightyBlow_Timer = 8000;
HamString_Timer = 12000;
@@ -55,7 +55,7 @@ public:
Medics = false;
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
void SummonAdds(Unit* victim)
{
@@ -69,7 +69,7 @@ public:
SummonedMedic->AI()->AttackStart(victim);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -78,21 +78,21 @@ public:
//MightyBlow_Timer
if (MightyBlow_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_MIGHTYBLOW);
+ DoCastVictim(SPELL_MIGHTYBLOW);
MightyBlow_Timer = 18000;
} else MightyBlow_Timer -= diff;
//HamString_Timer
if (HamString_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_HAMSTRING);
+ DoCastVictim(SPELL_HAMSTRING);
HamString_Timer = 15000;
} else HamString_Timer -= diff;
//Cleave_Timer
if (Cleave_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_CLEAVE);
+ DoCastVictim(SPELL_CLEAVE);
Cleave_Timer = 9000;
} else Cleave_Timer -= diff;
@@ -102,9 +102,9 @@ public:
if (Adds_Timer <= diff)
{
// summon 3 Adds every 25s
- SummonAdds(me->getVictim());
- SummonAdds(me->getVictim());
- SummonAdds(me->getVictim());
+ SummonAdds(me->GetVictim());
+ SummonAdds(me->GetVictim());
+ SummonAdds(me->GetVictim());
Adds_Timer = 25000;
} else Adds_Timer -= diff;
@@ -113,8 +113,8 @@ public:
//Summon Medics
if (!Medics && HealthBelowPct(21))
{
- SummonMedics(me->getVictim());
- SummonMedics(me->getVictim());
+ SummonMedics(me->GetVictim());
+ SummonMedics(me->GetVictim());
Medics = true;
}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_gorosh_the_dervish.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_gorosh_the_dervish.cpp
index 02c00b4958c..d79c4d191b6 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_gorosh_the_dervish.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_gorosh_the_dervish.cpp
@@ -30,9 +30,9 @@ class boss_gorosh_the_dervish : public CreatureScript
public:
boss_gorosh_the_dervish() : CreatureScript("boss_gorosh_the_dervish") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_gorosh_the_dervishAI (creature);
+ return new boss_gorosh_the_dervishAI(creature);
}
struct boss_gorosh_the_dervishAI : public ScriptedAI
@@ -42,17 +42,17 @@ public:
uint32 WhirlWind_Timer;
uint32 MortalStrike_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
WhirlWind_Timer = 12000;
MortalStrike_Timer = 22000;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -68,7 +68,7 @@ public:
//MortalStrike_Timer
if (MortalStrike_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_MORTALSTRIKE);
+ DoCastVictim(SPELL_MORTALSTRIKE);
MortalStrike_Timer = 15000;
} else MortalStrike_Timer -= diff;
diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_grizzle.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_grizzle.cpp
index a0ab6f9939c..504fca44c4c 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_grizzle.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_grizzle.cpp
@@ -31,9 +31,9 @@ class boss_grizzle : public CreatureScript
public:
boss_grizzle() : CreatureScript("boss_grizzle") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_grizzleAI (creature);
+ return new boss_grizzleAI(creature);
}
struct boss_grizzleAI : public ScriptedAI
@@ -43,15 +43,15 @@ public:
uint32 GroundTremor_Timer;
uint32 Frenzy_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
GroundTremor_Timer = 12000;
Frenzy_Timer =0;
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -60,7 +60,7 @@ public:
//GroundTremor_Timer
if (GroundTremor_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_GROUNDTREMOR);
+ DoCastVictim(SPELL_GROUNDTREMOR);
GroundTremor_Timer = 8000;
} else GroundTremor_Timer -= diff;
diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_high_interrogator_gerstahn.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_high_interrogator_gerstahn.cpp
index a901bc3d5e3..7a98cc321dc 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_high_interrogator_gerstahn.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_high_interrogator_gerstahn.cpp
@@ -32,9 +32,9 @@ class boss_high_interrogator_gerstahn : public CreatureScript
public:
boss_high_interrogator_gerstahn() : CreatureScript("boss_high_interrogator_gerstahn") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_high_interrogator_gerstahnAI (creature);
+ return new boss_high_interrogator_gerstahnAI(creature);
}
struct boss_high_interrogator_gerstahnAI : public ScriptedAI
@@ -46,7 +46,7 @@ public:
uint32 PsychicScream_Timer;
uint32 ShadowShield_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
ShadowWordPain_Timer = 4000;
ManaBurn_Timer = 14000;
@@ -54,9 +54,9 @@ public:
ShadowShield_Timer = 8000;
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -81,7 +81,7 @@ public:
//PsychicScream_Timer
if (PsychicScream_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_PSYCHICSCREAM);
+ DoCastVictim(SPELL_PSYCHICSCREAM);
PsychicScream_Timer = 30000;
} else PsychicScream_Timer -= diff;
diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_magmus.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_magmus.cpp
index 5c496ed597b..998e7b17897 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_magmus.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_magmus.cpp
@@ -25,7 +25,7 @@ enum Spells
SPELL_WARSTOMP = 24375
};
-enum eEnums
+enum Misc
{
DATA_THRONE_DOOR = 24 // not id or guid of doors but number of enum in blackrock_depths.h
};
@@ -35,9 +35,9 @@ class boss_magmus : public CreatureScript
public:
boss_magmus() : CreatureScript("boss_magmus") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_magmusAI (creature);
+ return new boss_magmusAI(creature);
}
struct boss_magmusAI : public ScriptedAI
@@ -47,15 +47,15 @@ public:
uint32 FieryBurst_Timer;
uint32 WarStomp_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
FieryBurst_Timer = 5000;
WarStomp_Timer =0;
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -64,7 +64,7 @@ public:
//FieryBurst_Timer
if (FieryBurst_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_FIERYBURST);
+ DoCastVictim(SPELL_FIERYBURST);
FieryBurst_Timer = 6000;
} else FieryBurst_Timer -= diff;
@@ -73,7 +73,7 @@ public:
{
if (WarStomp_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_WARSTOMP);
+ DoCastVictim(SPELL_WARSTOMP);
WarStomp_Timer = 8000;
} else WarStomp_Timer -= diff;
}
@@ -81,7 +81,7 @@ public:
DoMeleeAttackIfReady();
}
// When he die open door to last chamber
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
if (InstanceScript* instance = killer->GetInstanceScript())
instance->HandleGameObject(instance->GetData64(DATA_THRONE_DOOR), true);
diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_moira_bronzebeard.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_moira_bronzebeard.cpp
index bb528de9dca..9021649a61e 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_moira_bronzebeard.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_moira_bronzebeard.cpp
@@ -34,9 +34,9 @@ class boss_moira_bronzebeard : public CreatureScript
public:
boss_moira_bronzebeard() : CreatureScript("boss_moira_bronzebeard") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_moira_bronzebeardAI (creature);
+ return new boss_moira_bronzebeardAI(creature);
}
struct boss_moira_bronzebeardAI : public ScriptedAI
@@ -48,7 +48,7 @@ public:
uint32 ShadowWordPain_Timer;
uint32 Smite_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
Heal_Timer = 12000; //These times are probably wrong
MindBlast_Timer = 16000;
@@ -56,9 +56,9 @@ public:
Smite_Timer = 8000;
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -67,21 +67,21 @@ public:
//MindBlast_Timer
if (MindBlast_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_MINDBLAST);
+ DoCastVictim(SPELL_MINDBLAST);
MindBlast_Timer = 14000;
} else MindBlast_Timer -= diff;
//ShadowWordPain_Timer
if (ShadowWordPain_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_SHADOWWORDPAIN);
+ DoCastVictim(SPELL_SHADOWWORDPAIN);
ShadowWordPain_Timer = 18000;
} else ShadowWordPain_Timer -= diff;
//Smite_Timer
if (Smite_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_SMITE);
+ DoCastVictim(SPELL_SMITE);
Smite_Timer = 10000;
} else Smite_Timer -= diff;
}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_tomb_of_seven.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp
index 2767c76a69e..55e6862bda7 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_tomb_of_seven.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp
@@ -48,7 +48,7 @@ class boss_gloomrel : public CreatureScript
public:
boss_gloomrel() : CreatureScript("boss_gloomrel") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -77,7 +77,7 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
if (player->GetQuestRewardStatus(QUEST_SPECTRAL_CHALICE) == 1 && player->GetSkillValue(SKILL_MINING) >= DATA_SKILLPOINT_MIN && !player->HasSpell(SPELL_SMELT_DARK_IRON))
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_TEACH_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
@@ -107,7 +107,7 @@ class boss_doomrel : public CreatureScript
public:
boss_doomrel() : CreatureScript("boss_doomrel") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -130,7 +130,7 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_CHALLENGE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
player->SEND_GOSSIP_MENU(2601, creature->GetGUID());
@@ -138,9 +138,9 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_doomrelAI (creature);
+ return new boss_doomrelAI(creature);
}
struct boss_doomrelAI : public ScriptedAI
@@ -157,7 +157,7 @@ public:
uint32 DemonArmor_Timer;
bool Voidwalkers;
- void Reset()
+ void Reset() OVERRIDE
{
ShadowVolley_Timer = 10000;
Immolate_Timer = 18000;
@@ -179,30 +179,30 @@ public:
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
me->RemoveAllAuras();
me->DeleteThreatList();
me->CombatStop(true);
me->LoadCreaturesAddon();
- if (me->isAlive())
+ if (me->IsAlive())
me->GetMotionMaster()->MoveTargetedHome();
me->SetLootRecipient(NULL);
if (instance)
instance->SetData64(DATA_EVENSTARTER, 0);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
instance->SetData(DATA_GHOSTKILL, 1);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -210,7 +210,7 @@ public:
//ShadowVolley_Timer
if (ShadowVolley_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_SHADOWBOLTVOLLEY);
+ DoCastVictim(SPELL_SHADOWBOLTVOLLEY);
ShadowVolley_Timer = 12000;
} else ShadowVolley_Timer -= diff;
@@ -226,7 +226,7 @@ public:
//CurseOfWeakness_Timer
if (CurseOfWeakness_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_CURSEOFWEAKNESS);
+ DoCastVictim(SPELL_CURSEOFWEAKNESS);
CurseOfWeakness_Timer = 45000;
} else CurseOfWeakness_Timer -= diff;
@@ -240,7 +240,7 @@ public:
//Summon Voidwalkers
if (!Voidwalkers && HealthBelowPct(51))
{
- DoCast(me->getVictim(), SPELL_SUMMON_VOIDWALKERS, true);
+ DoCastVictim(SPELL_SUMMON_VOIDWALKERS, true);
Voidwalkers = true;
}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/instance_blackrock_depths.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/instance_blackrock_depths.cpp
index c748533565b..b9ff40f8285 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockDepths/instance_blackrock_depths.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/instance_blackrock_depths.cpp
@@ -22,11 +22,10 @@
#include "blackrock_depths.h"
#define TIMER_TOMBOFTHESEVEN 15000
+#define MAX_ENCOUNTER 6
-enum eEnums
+enum Creatures
{
- MAX_ENCOUNTER = 6,
-
NPC_EMPEROR = 9019,
NPC_PHALANX = 9502,
NPC_ANGERREL = 9035,
@@ -37,8 +36,11 @@ enum eEnums
NPC_GLOOMREL = 9037,
NPC_DOOMREL = 9039,
NPC_MAGMUS = 9938,
- NPC_MOIRA = 8929,
+ NPC_MOIRA = 8929
+};
+enum GameObjects
+{
GO_ARENA1 = 161525,
GO_ARENA2 = 161522,
GO_ARENA3 = 161524,
@@ -67,7 +69,7 @@ class instance_blackrock_depths : public InstanceMapScript
public:
instance_blackrock_depths() : InstanceMapScript("instance_blackrock_depths", 230) { }
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_blackrock_depths_InstanceMapScript(map);
}
@@ -170,7 +172,7 @@ public:
case NPC_ANGERREL: TombBossGUIDs[6] = creature->GetGUID(); break;
case NPC_MAGMUS:
MagmusGUID = creature->GetGUID();
- if (!creature->isAlive())
+ if (!creature->IsAlive())
HandleGameObject(GetData64(DATA_THRONE_DOOR), true); // if Magmus is dead open door to last boss
break;
}
@@ -210,7 +212,7 @@ public:
}
}
- void SetData64(uint32 type, uint64 data)
+ void SetData64(uint32 type, uint64 data) OVERRIDE
{
TC_LOG_DEBUG(LOG_FILTER_TSCR, "Instance Blackrock Depths: SetData64 update (Type: %u Data " UI64FMTD ")", type, data);
@@ -226,7 +228,7 @@ public:
}
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
TC_LOG_DEBUG(LOG_FILTER_TSCR, "Instance Blackrock Depths: SetData update (Type: %u Data %u)", type, data);
@@ -273,7 +275,7 @@ public:
}
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -298,7 +300,7 @@ public:
return 0;
}
- uint64 GetData64(uint32 data) const
+ uint64 GetData64(uint32 data) const OVERRIDE
{
switch (data)
{
@@ -392,7 +394,7 @@ public:
{
if (Creature* boss = instance->GetCreature(TombBossGUIDs[i]))
{
- if (!boss->isAlive())
+ if (!boss->IsAlive())
{//do not call EnterEvadeMode(), it will create infinit loops
boss->Respawn();
boss->RemoveAllAuras();
@@ -441,7 +443,7 @@ public:
{
if (Creature* boss = instance->GetCreature(TombBossGUIDs[i]))
{
- if (!boss->isAlive())
+ if (!boss->IsAlive())
{
GhostKillCount = i+1;
}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/blackrock_spire.h b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/blackrock_spire.h
index 82500ab90b0..e2295521a5b 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockSpire/blackrock_spire.h
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/blackrock_spire.h
@@ -18,27 +18,41 @@
#ifndef DEF_BLACKROCK_SPIRE_H
#define DEF_BLACKROCK_SPIRE_H
-enum Data
+uint32 const EncounterCount = 23;
+
+#define BRSScriptName "instance_blackrock_spire"
+
+enum DataTypes
{
- DATA_OMOKK,
- DATA_SHADOW_HUNTER_VOSHGAJIN,
- DATA_WARMASTER_VOONE,
- DATA_MOTHER_SMOLDERWEB,
- DATA_UROK_DOOMHOWL, // not scripted
- DATA_QUARTERMASTER_ZIGRIS,
- DATA_GIZRUL_THE_SLAVENER, // not scripted
- DATA_HALYCON,
- DATA_OVERLORD_WYRMTHALAK,
- DATA_PYROGAURD_EMBERSEER,
- DATA_WARCHIEF_REND_BLACKHAND,
- DATA_GYTH,
- DATA_THE_BEAST,
- DATA_GENERAL_DRAKKISATH,
- DATA_DRAGONSPIRE_ROOM,
+ DATA_HIGHLORD_OMOKK = 0,
+ DATA_SHADOW_HUNTER_VOSHGAJIN = 1,
+ DATA_WARMASTER_VOONE = 2,
+ DATA_MOTHER_SMOLDERWEB = 3,
+ DATA_UROK_DOOMHOWL = 4,
+ DATA_QUARTERMASTER_ZIGRIS = 5,
+ DATA_GIZRUL_THE_SLAVENER = 6,
+ DATA_HALYCON = 7,
+ DATA_OVERLORD_WYRMTHALAK = 8,
+ DATA_PYROGAURD_EMBERSEER = 9,
+ DATA_WARCHIEF_REND_BLACKHAND = 10,
+ DATA_GYTH = 11,
+ DATA_THE_BEAST = 12,
+ DATA_GENERAL_DRAKKISATH = 13,
+ DATA_LORD_VALTHALAK = 14,
+ // Extra
+ DATA_DRAGONSPIRE_ROOM = 15,
+ DATA_HALL_RUNE_1 = 16,
+ DATA_HALL_RUNE_2 = 17,
+ DATA_HALL_RUNE_3 = 18,
+ DATA_HALL_RUNE_4 = 19,
+ DATA_HALL_RUNE_5 = 20,
+ DATA_HALL_RUNE_6 = 21,
+ DATA_HALL_RUNE_7 = 22
};
-enum Npc
+
+enum CreaturesIds
{
- NPC_OMOKK = 9196,
+ NPC_HIGHLORD_OMOKK = 9196,
NPC_SHADOW_HUNTER_VOSHGAJIN = 9236,
NPC_WARMASTER_VOONE = 9237,
NPC_MOTHER_SMOLDERWEB = 10596,
@@ -55,22 +69,23 @@ enum Npc
NPC_BLACKHAND_DREADWEAVER = 9817,
NPC_BLACKHAND_SUMMONER = 9818,
NPC_BLACKHAND_VETERAN = 9819,
+ NPC_BLACKHAND_INCARCERATOR = 10316,
+ NPC_LORD_VICTOR_NEFARIUS = 10162
};
enum AdditionalData
{
SPELL_SUMMON_ROOKERY_WHELP = 15745,
- MAX_ENCOUNTER = 14,
- MAX_DRAGONSPIRE_HALL_RUNES = 7,
+ EVENT_UROK_DOOMHOWL = 4845,
EVENT_PYROGUARD_EMBERSEER = 4884,
- AREATRIGGER_ENTER_UBRS = 2046,
- AREATRIGGER_STADIUM = 2026,
+ AREATRIGGER = 1,
+ AREATRIGGER_DRAGONSPIRE_HALL = 2046,
+ AREATRIGGER_BLACKROCK_STADIUM = 2026
};
-enum GameObjects
+enum GameObjectsIds
{
GO_WHELP_SPAWNER = 175622, // trap spawned by go id 175124
-
// Doors
GO_EMBERSEER_IN = 175244, // First door to Pyroguard Emberseer
GO_DOORS = 175705, // Second door to Pyroguard Emberseer
@@ -80,16 +95,15 @@ enum GameObjects
GO_GYTH_EXIT_DOOR = 175186,
GO_DRAKKISATH_DOOR_1 = 175946,
GO_DRAKKISATH_DOOR_2 = 175947,
-
- // Runes
- GO_ROOM_1_RUNE = 175197,
- GO_ROOM_2_RUNE = 175199,
- GO_ROOM_3_RUNE = 175195,
- GO_ROOM_4_RUNE = 175200,
- GO_ROOM_5_RUNE = 175198,
- GO_ROOM_6_RUNE = 175196,
- GO_ROOM_7_RUNE = 175194,
-
+ // Runes in dragonspire hall
+ GO_HALL_RUNE_1 = 175197,
+ GO_HALL_RUNE_2 = 175199,
+ GO_HALL_RUNE_3 = 175195,
+ GO_HALL_RUNE_4 = 175200,
+ GO_HALL_RUNE_5 = 175198,
+ GO_HALL_RUNE_6 = 175196,
+ GO_HALL_RUNE_7 = 175194,
+ // Runes in emberseers room
GO_EMBERSEER_RUNE_1 = 175266,
GO_EMBERSEER_RUNE_2 = 175267,
GO_EMBERSEER_RUNE_3 = 175268,
@@ -97,7 +111,10 @@ enum GameObjects
GO_EMBERSEER_RUNE_5 = 175270,
GO_EMBERSEER_RUNE_6 = 175271,
GO_EMBERSEER_RUNE_7 = 175272,
+ // For Gyth event
+ GO_DR_PORTCULLIS = 175185,
+ GO_PORTCULLIS_ACTIVE = 164726,
+ GO_PORTCULLIS_TOBOSSROOMS = 175186
};
#endif
-
diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_drakkisath.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_drakkisath.cpp
index 7081974195f..59581204b05 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_drakkisath.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_drakkisath.cpp
@@ -41,35 +41,30 @@ class boss_drakkisath : public CreatureScript
public:
boss_drakkisath() : CreatureScript("boss_drakkisath") { }
- CreatureAI* GetAI(Creature* creature) const
- {
- return new boss_drakkisathAI(creature);
- }
-
struct boss_drakkisathAI : public BossAI
{
boss_drakkisathAI(Creature* creature) : BossAI(creature, DATA_GENERAL_DRAKKISATH) {}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
- events.ScheduleEvent(EVENT_FIRE_NOVA, 6 * IN_MILLISECONDS);
- events.ScheduleEvent(EVENT_CLEAVE, 8 * IN_MILLISECONDS);
- events.ScheduleEvent(EVENT_CONFLIGURATION, 15 * IN_MILLISECONDS);
- events.ScheduleEvent(EVENT_THUNDERCLAP, 17 * IN_MILLISECONDS);
+ events.ScheduleEvent(EVENT_FIRE_NOVA, 6000);
+ events.ScheduleEvent(EVENT_CLEAVE, 8000);
+ events.ScheduleEvent(EVENT_CONFLIGURATION, 15000);
+ events.ScheduleEvent(EVENT_THUNDERCLAP, 17000);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -84,26 +79,31 @@ public:
switch (eventId)
{
case EVENT_FIRE_NOVA:
- DoCast(me->getVictim(), SPELL_FIRENOVA);
- events.ScheduleEvent(EVENT_FIRE_NOVA, 10 * IN_MILLISECONDS);
+ DoCastVictim(SPELL_FIRENOVA);
+ events.ScheduleEvent(EVENT_FIRE_NOVA, 10000);
break;
case EVENT_CLEAVE:
- DoCast(me->getVictim(), SPELL_CLEAVE);
- events.ScheduleEvent(EVENT_CLEAVE, 8 * IN_MILLISECONDS);
+ DoCastVictim(SPELL_CLEAVE);
+ events.ScheduleEvent(EVENT_CLEAVE, 8000);
break;
case EVENT_CONFLIGURATION:
- DoCast(me->getVictim(), SPELL_CONFLIGURATION);
- events.ScheduleEvent(EVENT_CONFLIGURATION, 18 * IN_MILLISECONDS);
+ DoCastVictim(SPELL_CONFLIGURATION);
+ events.ScheduleEvent(EVENT_CONFLIGURATION, 18000);
break;
case EVENT_THUNDERCLAP:
- DoCast(me->getVictim(), SPELL_THUNDERCLAP);
- events.ScheduleEvent(EVENT_THUNDERCLAP, 20 * IN_MILLISECONDS);
+ DoCastVictim(SPELL_THUNDERCLAP);
+ events.ScheduleEvent(EVENT_THUNDERCLAP, 20000);
break;
}
}
DoMeleeAttackIfReady();
}
};
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new boss_drakkisathAI(creature);
+ }
};
void AddSC_boss_drakkisath()
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gizrul_the_slavener.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gizrul_the_slavener.cpp
new file mode 100644
index 00000000000..f1bd81f2e6a
--- /dev/null
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gizrul_the_slavener.cpp
@@ -0,0 +1,112 @@
+/*
+ * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "blackrock_spire.h"
+#include "TemporarySummon.h"
+
+enum Spells
+{
+ SPELL_FATAL_BITE = 16495,
+ SPELL_INFECTED_BITE = 16128,
+ SPELL_FRENZY = 8269
+};
+
+enum Paths
+{
+ GIZRUL_PATH = 402450
+};
+
+enum Events
+{
+ EVENT_FATAL_BITE = 1,
+ EVENT_INFECTED_BITE = 2,
+ EVENT_FRENZY = 3
+};
+
+class boss_gizrul_the_slavener : public CreatureScript
+{
+public:
+ boss_gizrul_the_slavener() : CreatureScript("boss_gizrul_the_slavener") { }
+
+ struct boss_gizrul_the_slavenerAI : public BossAI
+ {
+ boss_gizrul_the_slavenerAI(Creature* creature) : BossAI(creature, DATA_GIZRUL_THE_SLAVENER) {}
+
+ void Reset() OVERRIDE
+ {
+ _Reset();
+ }
+
+ void IsSummonedBy(Unit* /*summoner*/) OVERRIDE
+ {
+ me->GetMotionMaster()->MovePath(GIZRUL_PATH, false);
+ }
+
+ void EnterCombat(Unit* /*who*/) OVERRIDE
+ {
+ _EnterCombat();
+ events.ScheduleEvent(EVENT_FATAL_BITE, urand(17000,20000));
+ events.ScheduleEvent(EVENT_INFECTED_BITE, urand(10000,12000));
+ }
+
+ void JustDied(Unit* /*killer*/) OVERRIDE
+ {
+ _JustDied();
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ if (!UpdateVictim())
+ return;
+
+ events.Update(diff);
+
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_FATAL_BITE:
+ DoCastVictim(SPELL_FATAL_BITE);
+ events.ScheduleEvent(EVENT_FATAL_BITE, urand(8000,10000));
+ break;
+ case EVENT_INFECTED_BITE:
+ DoCast(me, SPELL_INFECTED_BITE);
+ events.ScheduleEvent(EVENT_FATAL_BITE, urand(8000,10000));
+ break;
+ default:
+ break;
+ }
+ }
+ DoMeleeAttackIfReady();
+ }
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new boss_gizrul_the_slavenerAI(creature);
+ }
+};
+
+void AddSC_boss_gizrul_the_slavener()
+{
+ new boss_gizrul_the_slavener();
+}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gyth.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gyth.cpp
new file mode 100644
index 00000000000..dbc3056b1ff
--- /dev/null
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gyth.cpp
@@ -0,0 +1,172 @@
+/*
+ * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "blackrock_spire.h"
+
+enum Spells
+{
+ SPELL_REND_MOUNTS = 16167, // Change model
+ SPELL_CORROSIVE_ACID = 16359, // Combat (self cast)
+ SPELL_FLAMEBREATH = 16390, // Combat (Self cast)
+ SPELL_FREEZE = 16350, // Combat (Self cast)
+ SPELL_KNOCK_AWAY = 10101, // Combat
+ SPELL_SUMMON_REND = 16328 // Summons Rend near death
+};
+
+enum Misc
+{
+ NEFARIUS_PATH_2 = 1379671,
+ NEFARIUS_PATH_3 = 1379672,
+ GYTH_PATH_1 = 1379681,
+};
+
+enum Events
+{
+ EVENT_CORROSIVE_ACID = 1,
+ EVENT_FREEZE = 2,
+ EVENT_FLAME_BREATH = 3,
+ EVENT_KNOCK_AWAY = 4,
+ EVENT_SUMMONED_1 = 5,
+ EVENT_SUMMONED_2 = 6
+};
+
+class boss_gyth : public CreatureScript
+{
+public:
+ boss_gyth() : CreatureScript("boss_gyth") { }
+
+ struct boss_gythAI : public BossAI
+ {
+ boss_gythAI(Creature* creature) : BossAI(creature, DATA_GYTH) { }
+
+ bool SummonedRend;
+
+ void Reset() OVERRIDE
+ {
+ SummonedRend = false;
+ if (instance->GetBossState(DATA_GYTH) == IN_PROGRESS)
+ {
+ instance->SetBossState(DATA_GYTH, DONE);
+ me->DespawnOrUnsummon();
+ }
+ }
+
+ void EnterCombat(Unit* /*who*/) OVERRIDE
+ {
+ _EnterCombat();
+
+ events.ScheduleEvent(EVENT_CORROSIVE_ACID, urand(8000, 16000));
+ events.ScheduleEvent(EVENT_FREEZE, urand(8000, 16000));
+ events.ScheduleEvent(EVENT_FLAME_BREATH, urand(8000, 16000));
+ events.ScheduleEvent(EVENT_KNOCK_AWAY, urand(12000, 18000));
+ }
+
+ void JustDied(Unit* /*killer*/) OVERRIDE
+ {
+ instance->SetBossState(DATA_GYTH, DONE);
+ }
+
+ void SetData(uint32 /*type*/, uint32 data) OVERRIDE
+ {
+ switch (data)
+ {
+ case 1:
+ events.ScheduleEvent(EVENT_SUMMONED_1, 1000);
+ break;
+ default:
+ break;
+ }
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+
+ if (!SummonedRend && HealthBelowPct(5))
+ {
+ DoCast(me, SPELL_SUMMON_REND);
+ me->RemoveAura(SPELL_REND_MOUNTS);
+ SummonedRend = true;
+ }
+
+ if (!UpdateVictim())
+ {
+ events.Update(diff);
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_SUMMONED_1:
+ me->AddAura(SPELL_REND_MOUNTS, me);
+ if (GameObject* portcullis = me->FindNearestGameObject(GO_DR_PORTCULLIS, 40.0f))
+ portcullis->UseDoorOrButton();
+ if (Creature* victor = me->FindNearestCreature(NPC_LORD_VICTOR_NEFARIUS, 75.0f, true))
+ victor->AI()->SetData(1, 1);
+ events.ScheduleEvent(EVENT_SUMMONED_2, 2000);
+ break;
+ case EVENT_SUMMONED_2:
+ me->GetMotionMaster()->MovePath(GYTH_PATH_1, false);
+ break;
+ default:
+ break;
+ }
+ }
+ return;
+ }
+
+ events.Update(diff);
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_CORROSIVE_ACID:
+ DoCast(me, SPELL_CORROSIVE_ACID);
+ events.ScheduleEvent(EVENT_CORROSIVE_ACID, urand(10000, 16000));
+ break;
+ case EVENT_FREEZE:
+ DoCast(me, SPELL_FREEZE);
+ events.ScheduleEvent(EVENT_FREEZE, urand(10000, 16000));
+ break;
+ case EVENT_FLAME_BREATH:
+ DoCast(me, SPELL_FLAMEBREATH);
+ events.ScheduleEvent(EVENT_FLAME_BREATH, urand(10000, 16000));
+ break;
+ case EVENT_KNOCK_AWAY:
+ DoCastVictim(SPELL_KNOCK_AWAY);
+ events.ScheduleEvent(EVENT_KNOCK_AWAY, urand(14000, 20000));
+ break;
+ default:
+ break;
+ }
+ }
+ DoMeleeAttackIfReady();
+ }
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new boss_gythAI(creature);
+ }
+};
+
+void AddSC_boss_gyth()
+{
+ new boss_gyth();
+}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_halycon.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_halycon.cpp
index af0e5110523..630d6ff2a0d 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_halycon.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_halycon.cpp
@@ -1,6 +1,5 @@
/*
* Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
- * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
@@ -22,64 +21,58 @@
enum Spells
{
- SPELL_CROWDPUMMEL = 10887,
- SPELL_MIGHTYBLOW = 14099,
+ SPELL_REND = 13738,
+ SPELL_THRASH = 3391,
+};
+
+enum Says
+{
+ EMOTE_DEATH = 0
};
enum Events
{
- EVENT_CROWD_PUMMEL = 1,
- EVENT_MIGHTY_BLOW = 2,
+ EVENT_REND = 1,
+ EVENT_THRASH = 2,
};
-const Position SummonLocation = { -169.839f, -324.961f, 64.401f, 3.124f };
+const Position SummonLocation = { -167.9561f, -411.7844f, 76.23057f, 1.53589f };
class boss_halycon : public CreatureScript
{
public:
boss_halycon() : CreatureScript("boss_halycon") { }
- CreatureAI* GetAI(Creature* creature) const
- {
- return new boss_halyconAI(creature);
- }
-
struct boss_halyconAI : public BossAI
{
boss_halyconAI(Creature* creature) : BossAI(creature, DATA_HALYCON) {}
- bool Summoned;
-
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
Summoned = false;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
- events.ScheduleEvent(EVENT_CROWD_PUMMEL, 8 * IN_MILLISECONDS);
- events.ScheduleEvent(EVENT_MIGHTY_BLOW, 14 * IN_MILLISECONDS);
+ events.ScheduleEvent(EVENT_REND, urand(17000,20000));
+ events.ScheduleEvent(EVENT_THRASH, urand(10000,12000));
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
- _JustDied();
+ me->SummonCreature(NPC_GIZRUL_THE_SLAVENER, SummonLocation, TEMPSUMMON_TIMED_DESPAWN, 300000);
+ Talk(EMOTE_DEATH);
+
+ Summoned = true;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
- //Summon Gizrul
- if (!Summoned && HealthBelowPct(25))
- {
- me->SummonCreature(NPC_GIZRUL_THE_SLAVENER, SummonLocation, TEMPSUMMON_TIMED_DESPAWN, 300 * IN_MILLISECONDS);
- Summoned = true;
- }
-
events.Update(diff);
if (me->HasUnitState(UNIT_STATE_CASTING))
@@ -89,20 +82,27 @@ public:
{
switch (eventId)
{
- case EVENT_CROWD_PUMMEL:
- DoCast(me->getVictim(), SPELL_CROWDPUMMEL);
- events.ScheduleEvent(EVENT_CROWD_PUMMEL, 14 * IN_MILLISECONDS);
+ case EVENT_REND:
+ DoCastVictim(SPELL_REND);
+ events.ScheduleEvent(EVENT_REND, urand(8000,10000));
break;
- case EVENT_MIGHTY_BLOW:
- DoCast(me->getVictim(), SPELL_MIGHTYBLOW);
- events.ScheduleEvent(EVENT_MIGHTY_BLOW, 10 * IN_MILLISECONDS);
+ case EVENT_THRASH:
+ DoCast(me, SPELL_THRASH);
+ break;
+ default:
break;
}
}
DoMeleeAttackIfReady();
}
+ private:
+ bool Summoned;
};
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new boss_halyconAI(creature);
+ }
};
void AddSC_boss_halycon()
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_highlord_omokk.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_highlord_omokk.cpp
new file mode 100644
index 00000000000..54ed5d44e34
--- /dev/null
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_highlord_omokk.cpp
@@ -0,0 +1,101 @@
+/*
+ * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
+ * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "blackrock_spire.h"
+
+enum Spells
+{
+ SPELL_FRENZY = 8269,
+ SPELL_KNOCK_AWAY = 10101
+};
+
+enum Events
+{
+ EVENT_FRENZY = 1,
+ EVENT_KNOCK_AWAY = 2
+};
+
+class boss_highlord_omokk : public CreatureScript
+{
+public:
+ boss_highlord_omokk() : CreatureScript("boss_highlord_omokk") { }
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new boss_highlordomokkAI(creature);
+ }
+
+ struct boss_highlordomokkAI : public BossAI
+ {
+ boss_highlordomokkAI(Creature* creature) : BossAI(creature, DATA_HIGHLORD_OMOKK) {}
+
+ void Reset() OVERRIDE
+ {
+ _Reset();
+ }
+
+ void EnterCombat(Unit* /*who*/) OVERRIDE
+ {
+ _EnterCombat();
+ events.ScheduleEvent(EVENT_FRENZY, 20000);
+ events.ScheduleEvent(EVENT_KNOCK_AWAY, 18000);
+ }
+
+ void JustDied(Unit* /*killer*/) OVERRIDE
+ {
+ _JustDied();
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ if (!UpdateVictim())
+ return;
+
+ events.Update(diff);
+
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_FRENZY:
+ DoCastVictim(SPELL_FRENZY);
+ events.ScheduleEvent(EVENT_FRENZY, 60000);
+ break;
+ case EVENT_KNOCK_AWAY:
+ DoCastVictim(SPELL_KNOCK_AWAY);
+ events.ScheduleEvent(EVENT_KNOCK_AWAY, 12000);
+ break;
+ default:
+ break;
+ }
+ }
+ DoMeleeAttackIfReady();
+ }
+ };
+
+};
+
+void AddSC_boss_highlordomokk()
+{
+ new boss_highlord_omokk();
+}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_lord_valthalak.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_lord_valthalak.cpp
new file mode 100644
index 00000000000..b54c8f11f34
--- /dev/null
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_lord_valthalak.cpp
@@ -0,0 +1,138 @@
+/*
+ * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "blackrock_spire.h"
+
+enum Spells
+{
+ SPELL_FRENZY = 8269,
+ SPELL_SUMMON_SPECTRAL_ASSASSIN = 27249,
+ SPELL_SHADOW_BOLT_VOLLEY = 27382,
+ SPELL_SHADOW_WRATH = 27286
+};
+
+enum Says
+{
+ EMOTE_FRENZY = 0
+};
+
+enum Events
+{
+ EVENT_SUMMON_SPECTRAL_ASSASSIN = 1,
+ EVENT_SHADOW_BOLT_VOLLEY = 2,
+ EVENT_SHADOW_WRATH = 3
+};
+
+class boss_lord_valthalak : public CreatureScript
+{
+public:
+ boss_lord_valthalak() : CreatureScript("boss_lord_valthalak") { }
+
+ struct boss_lord_valthalakAI : public BossAI
+ {
+ boss_lord_valthalakAI(Creature* creature) : BossAI(creature, DATA_LORD_VALTHALAK) {}
+
+ void Reset() OVERRIDE
+ {
+ _Reset();
+ frenzy40 = false;
+ frenzy15 = false;
+ }
+
+ void EnterCombat(Unit* /*who*/) OVERRIDE
+ {
+ _EnterCombat();
+ events.ScheduleEvent(EVENT_SUMMON_SPECTRAL_ASSASSIN, urand(6000,8000));
+ events.ScheduleEvent(EVENT_SHADOW_WRATH, urand(9000,18000));
+ }
+
+ void JustDied(Unit* /*killer*/) OVERRIDE
+ {
+ if (instance)
+ instance->SetData(DATA_LORD_VALTHALAK, DONE);
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ if (!UpdateVictim())
+ return;
+
+ events.Update(diff);
+
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_SUMMON_SPECTRAL_ASSASSIN:
+ DoCast(me, SPELL_SUMMON_SPECTRAL_ASSASSIN);
+ events.ScheduleEvent(EVENT_SUMMON_SPECTRAL_ASSASSIN, urand(30000,35000));
+ break;
+ case EVENT_SHADOW_BOLT_VOLLEY:
+ DoCastVictim(SPELL_SHADOW_BOLT_VOLLEY);
+ events.ScheduleEvent(EVENT_SHADOW_BOLT_VOLLEY, urand(4000,6000));
+ break;
+ case EVENT_SHADOW_WRATH:
+ DoCastVictim(SPELL_SHADOW_WRATH);
+ events.ScheduleEvent(EVENT_SHADOW_WRATH, urand(19000,24000));
+ break;
+ default:
+ break;
+ }
+ }
+
+ if (!frenzy40)
+ {
+ if (HealthBelowPct(40))
+ {
+ DoCast(me, SPELL_FRENZY);
+ events.CancelEvent(EVENT_SUMMON_SPECTRAL_ASSASSIN);
+ frenzy40 = true;
+ }
+ }
+
+ if (!frenzy15)
+ {
+ if (HealthBelowPct(15))
+ {
+ DoCast(me, SPELL_FRENZY);
+ events.ScheduleEvent(EVENT_SHADOW_BOLT_VOLLEY, urand(7000,14000));
+ frenzy15 = true;
+ }
+ }
+
+ DoMeleeAttackIfReady();
+ }
+ private:
+ bool frenzy40;
+ bool frenzy15;
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new boss_lord_valthalakAI(creature);
+ }
+};
+
+void AddSC_boss_lord_valthalak()
+{
+ new boss_lord_valthalak();
+}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_mother_smolderweb.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_mother_smolderweb.cpp
index fc6d3f7d4db..608cb75bbb2 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_mother_smolderweb.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_mother_smolderweb.cpp
@@ -38,7 +38,7 @@ class boss_mother_smolderweb : public CreatureScript
public:
boss_mother_smolderweb() : CreatureScript("boss_mother_smolderweb") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_mothersmolderwebAI(creature);
}
@@ -47,30 +47,30 @@ public:
{
boss_mothersmolderwebAI(Creature* creature) : BossAI(creature, DATA_MOTHER_SMOLDERWEB) {}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
events.ScheduleEvent(EVENT_CRYSTALIZE, 20 * IN_MILLISECONDS);
events.ScheduleEvent(EVENT_MOTHERS_MILK, 10 * IN_MILLISECONDS);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
}
- void DamageTaken(Unit* /*done_by*/, uint32 &damage)
+ void DamageTaken(Unit* /*done_by*/, uint32 &damage) OVERRIDE
{
if (me->GetHealth() <= damage)
DoCast(me, SPELL_SUMMON_SPIRE_SPIDERLING, true);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_overlord_wyrmthalak.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_overlord_wyrmthalak.cpp
index 09d85a680b8..2b68b640720 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_overlord_wyrmthalak.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_overlord_wyrmthalak.cpp
@@ -50,7 +50,7 @@ class boss_overlord_wyrmthalak : public CreatureScript
public:
boss_overlord_wyrmthalak() : CreatureScript("boss_overlord_wyrmthalak") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_overlordwyrmthalakAI(creature);
}
@@ -61,13 +61,13 @@ public:
bool Summoned;
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
Summoned = false;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
events.ScheduleEvent(EVENT_BLAST_WAVE, 20 * IN_MILLISECONDS);
@@ -76,12 +76,12 @@ public:
events.ScheduleEvent(EVENT_KNOCK_AWAY, 12 * IN_MILLISECONDS);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -108,19 +108,19 @@ public:
switch (eventId)
{
case EVENT_BLAST_WAVE:
- DoCast(me->getVictim(), SPELL_BLASTWAVE);
+ DoCastVictim(SPELL_BLASTWAVE);
events.ScheduleEvent(EVENT_BLAST_WAVE, 20 * IN_MILLISECONDS);
break;
case EVENT_SHOUT:
- DoCast(me->getVictim(), SPELL_SHOUT);
+ DoCastVictim(SPELL_SHOUT);
events.ScheduleEvent(EVENT_SHOUT, 10 * IN_MILLISECONDS);
break;
case EVENT_CLEAVE:
- DoCast(me->getVictim(), SPELL_CLEAVE);
+ DoCastVictim(SPELL_CLEAVE);
events.ScheduleEvent(EVENT_CLEAVE, 7 * IN_MILLISECONDS);
break;
case EVENT_KNOCK_AWAY:
- DoCast(me->getVictim(), SPELL_KNOCKAWAY);
+ DoCastVictim(SPELL_KNOCKAWAY);
events.ScheduleEvent(EVENT_KNOCK_AWAY, 14 * IN_MILLISECONDS);
break;
}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp
new file mode 100644
index 00000000000..57c3dfac7ff
--- /dev/null
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp
@@ -0,0 +1,453 @@
+/*
+ * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "ObjectMgr.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "Player.h"
+#include "Spell.h"
+#include "blackrock_spire.h"
+
+enum Text
+{
+ EMOTE_ONE_STACK = 0,
+ EMOTE_TEN_STACK = 1,
+ EMOTE_FREE_OF_BONDS = 2,
+ YELL_FREE_OF_BONDS = 3
+};
+
+enum Spells
+{
+ SPELL_ENCAGED_EMBERSEER = 15282, // Self on spawn
+ SPELL_FIRE_SHIELD_TRIGGER = 13377, // Self on spawn missing from 335 dbc triggers SPELL_FIRE_SHIELD every 3 sec
+ SPELL_FIRE_SHIELD = 13376, // Triggered by SPELL_FIRE_SHIELD_TRIGGER
+ SPELL_FREEZE_ANIM = 16245, // Self on event start
+ SPELL_EMBERSEER_GROWING = 16048, // Self on event start
+ SPELL_EMBERSEER_GROWING_TRIGGER = 16049, // Triggered by SPELL_EMBERSEER_GROWING
+ SPELL_EMBERSEER_FULL_STRENGTH = 16047, // Emberseer Full Strength
+ SPELL_FIRENOVA = 23462, // Combat
+ SPELL_FLAMEBUFFET = 23341, // Combat
+ SPELL_PYROBLAST = 17274, // Combat
+ // Blackhand Incarcerator Spells
+ SPELL_ENCAGE_EMBERSEER = 15281, // Emberseer on spawn
+ SPELL_STRIKE = 15580, // Combat
+ SPELL_ENCAGE = 16045, // Combat
+ // Cast on player by altar
+ SPELL_EMBERSEER_OBJECT_VISUAL = 16532
+};
+
+enum Events
+{
+ // Respawn
+ EVENT_RESPAWN = 1,
+ // Pre fight
+ EVENT_PRE_FIGHT_1 = 2,
+ EVENT_PRE_FIGHT_2 = 3,
+ // Combat
+ EVENT_FIRENOVA = 4,
+ EVENT_FLAMEBUFFET = 5,
+ EVENT_PYROBLAST = 6,
+ // Hack due to trigger spell not in dbc
+ EVENT_FIRE_SHIELD = 7,
+ // Make sure all players have aura from altar
+ EVENT_PLAYER_CHECK = 8,
+ EVENT_ENTER_COMBAT = 9
+};
+
+class boss_pyroguard_emberseer : public CreatureScript
+{
+public:
+ boss_pyroguard_emberseer() : CreatureScript("boss_pyroguard_emberseer") { }
+
+ struct boss_pyroguard_emberseerAI : public BossAI
+ {
+ boss_pyroguard_emberseerAI(Creature* creature) : BossAI(creature, DATA_PYROGAURD_EMBERSEER) {}
+
+ void Reset() OVERRIDE
+ {
+ if (instance)
+ {
+ me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_NOT_SELECTABLE);
+ events.Reset();
+ // Apply auras on spawn and reset
+ // DoCast(me, SPELL_FIRE_SHIELD_TRIGGER); // Need to find this in old DBC if possible
+ me->RemoveAura(SPELL_EMBERSEER_FULL_STRENGTH);
+ me->RemoveAura(SPELL_EMBERSEER_GROWING);
+ me->RemoveAura(SPELL_EMBERSEER_GROWING_TRIGGER);
+ events.ScheduleEvent(EVENT_RESPAWN, 5000);
+ // Hack for missing trigger spell
+ events.ScheduleEvent(EVENT_FIRE_SHIELD, 3000);
+
+ // Open doors on reset
+ if (instance->GetBossState(DATA_PYROGAURD_EMBERSEER) == IN_PROGRESS)
+ OpenDoors(false); // Opens 2 entrance doors
+ }
+ }
+
+ void SetData(uint32 /*type*/, uint32 data) OVERRIDE
+ {
+ switch (data)
+ {
+ case 1:
+ events.ScheduleEvent(EVENT_PLAYER_CHECK, 5000);
+ break;
+ case 2:
+ // Close these two doors on Blackhand Incarcerators aggro
+ if (GameObject* door1 = me->GetMap()->GetGameObject(instance->GetData64(GO_EMBERSEER_IN)))
+ if (door1->GetGoState() == GO_STATE_ACTIVE)
+ door1->SetGoState(GO_STATE_READY);
+ if (GameObject* door2 = me->GetMap()->GetGameObject(instance->GetData64(GO_DOORS)))
+ if (door2->GetGoState() == GO_STATE_ACTIVE)
+ door2->SetGoState(GO_STATE_READY);
+ break;
+ case 3:
+ Reset();
+ break;
+ default:
+ break;
+ }
+ }
+
+ void EnterCombat(Unit* /*who*/) OVERRIDE
+ {
+ // ### TODO Check combat timing ###
+ events.ScheduleEvent(EVENT_FIRENOVA, 6000);
+ events.ScheduleEvent(EVENT_FLAMEBUFFET, 3000);
+ events.ScheduleEvent(EVENT_PYROBLAST, 14000);
+ }
+
+ void JustDied(Unit* /*killer*/) OVERRIDE
+ {
+ if (instance)
+ {
+ // Activate all the runes
+ UpdateRunes(GO_STATE_READY);
+ // Opens all 3 doors
+ OpenDoors(true);
+ // Complete encounter
+ instance->SetBossState(DATA_PYROGAURD_EMBERSEER, DONE);
+ }
+ }
+
+ void SpellHit(Unit* /*caster*/, SpellInfo const* spell) OVERRIDE
+ {
+ if (spell->Id == SPELL_ENCAGE_EMBERSEER)
+ {
+ if (!me->GetAuraCount(SPELL_ENCAGED_EMBERSEER))
+ me->CastSpell(me, SPELL_ENCAGED_EMBERSEER);
+ }
+
+ if (spell->Id == SPELL_EMBERSEER_GROWING_TRIGGER)
+ {
+ if (me->GetAuraCount(SPELL_EMBERSEER_GROWING_TRIGGER) == 10)
+ Talk(EMOTE_TEN_STACK);
+
+ if (me->GetAuraCount(SPELL_EMBERSEER_GROWING_TRIGGER) == 20)
+ {
+ me->RemoveAura(SPELL_ENCAGED_EMBERSEER);
+ me->RemoveAura(SPELL_FREEZE_ANIM);
+ me->CastSpell(me, SPELL_EMBERSEER_FULL_STRENGTH);
+ Talk(EMOTE_FREE_OF_BONDS);
+ Talk(YELL_FREE_OF_BONDS);
+ me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_NOT_SELECTABLE);
+ events.ScheduleEvent(EVENT_ENTER_COMBAT, 2000);
+ }
+ }
+ }
+
+ void OpenDoors(bool Boss_Killed)
+ {
+ // These two doors reopen on reset or boss kill
+ if (GameObject* door1 = me->GetMap()->GetGameObject(instance->GetData64(GO_EMBERSEER_IN)))
+ door1->SetGoState(GO_STATE_ACTIVE);
+ if (GameObject* door2 = me->GetMap()->GetGameObject(instance->GetData64(GO_DOORS)))
+ door2->SetGoState(GO_STATE_ACTIVE);
+
+ // This door opens on boss kill
+ if (Boss_Killed)
+ if (GameObject* door3 = me->GetMap()->GetGameObject(instance->GetData64(GO_EMBERSEER_OUT)))
+ door3->SetGoState(GO_STATE_ACTIVE);
+ }
+
+ void UpdateRunes(GOState state)
+ {
+ if (instance)
+ {
+ // update all runes
+ if (GameObject* rune1 = me->GetMap()->GetGameObject(instance->GetData64(GO_EMBERSEER_RUNE_1)))
+ rune1->SetGoState(state);
+ if (GameObject* rune2 = me->GetMap()->GetGameObject(instance->GetData64(GO_EMBERSEER_RUNE_2)))
+ rune2->SetGoState(state);
+ if (GameObject* rune3 = me->GetMap()->GetGameObject(instance->GetData64(GO_EMBERSEER_RUNE_3)))
+ rune3->SetGoState(state);
+ if (GameObject* rune4 = me->GetMap()->GetGameObject(instance->GetData64(GO_EMBERSEER_RUNE_4)))
+ rune4->SetGoState(state);
+ if (GameObject* rune5 = me->GetMap()->GetGameObject(instance->GetData64(GO_EMBERSEER_RUNE_5)))
+ rune5->SetGoState(state);
+ if (GameObject* rune6 = me->GetMap()->GetGameObject(instance->GetData64(GO_EMBERSEER_RUNE_6)))
+ rune6->SetGoState(state);
+ if (GameObject* rune7 = me->GetMap()->GetGameObject(instance->GetData64(GO_EMBERSEER_RUNE_7)))
+ rune7->SetGoState(state);
+ }
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ if (!UpdateVictim())
+ {
+ events.Update(diff);
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_RESPAWN:
+ {
+ // Respawn all Blackhand Incarcerators
+ std::list<Creature*> creatureList;
+ GetCreatureListWithEntryInGrid(creatureList, me, NPC_BLACKHAND_INCARCERATOR, 35.0f);
+ for (std::list<Creature*>::iterator itr = creatureList.begin(); itr != creatureList.end(); ++itr)
+ if (Creature* creatureList = *itr)
+ {
+ if (!creatureList->IsAlive())
+ {
+ creatureList->Respawn();
+ }
+ creatureList->AI()->SetData(1, 1);
+ }
+ me->AddAura(SPELL_ENCAGED_EMBERSEER, me);
+ instance->SetBossState(DATA_PYROGAURD_EMBERSEER, NOT_STARTED);
+ break;
+ }
+ case EVENT_PRE_FIGHT_1:
+ {
+ // Set data on all Blackhand Incarcerators
+ std::list<Creature*> creatureList;
+ GetCreatureListWithEntryInGrid(creatureList, me, NPC_BLACKHAND_INCARCERATOR, 35.0f);
+ for (std::list<Creature*>::iterator itr = creatureList.begin(); itr != creatureList.end(); ++itr)
+ {
+ if (Creature* creatureList = *itr)
+ creatureList->AI()->SetData(1, 1);
+ }
+ events.ScheduleEvent(EVENT_PRE_FIGHT_2, 32000);
+ break;
+ }
+ case EVENT_PRE_FIGHT_2:
+ me->CastSpell(me, SPELL_FREEZE_ANIM);
+ me->CastSpell(me, SPELL_EMBERSEER_GROWING);
+ Talk(EMOTE_ONE_STACK);
+ break;
+ case EVENT_FIRE_SHIELD:
+ // #### Spell isn't doing any damage ??? ####
+ DoCast(me, SPELL_FIRE_SHIELD);
+ events.ScheduleEvent(EVENT_FIRE_SHIELD, 3000);
+ break;
+ case EVENT_PLAYER_CHECK:
+ {
+ // Check to see if all players in instance have aura SPELL_EMBERSEER_START before starting event
+ bool _hasAura = true;
+ Map::PlayerList const &players = me->GetMap()->GetPlayers();
+ for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
+ if (Player* player = itr->GetSource()->ToPlayer())
+ if (!player->HasAura(SPELL_EMBERSEER_OBJECT_VISUAL))
+ _hasAura = false;
+
+ if (_hasAura)
+ {
+ events.ScheduleEvent(EVENT_PRE_FIGHT_1, 1000);
+ instance->SetBossState(DATA_PYROGAURD_EMBERSEER, IN_PROGRESS);
+ }
+ break;
+ }
+ case EVENT_ENTER_COMBAT:
+ AttackStart(me->SelectNearestPlayer(30.0f));
+ break;
+ default:
+ break;
+ }
+ }
+ return;
+ }
+
+ events.Update(diff);
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_FIRE_SHIELD:
+ DoCast(me, SPELL_FIRE_SHIELD);
+ events.ScheduleEvent(EVENT_FIRE_SHIELD, 3000);
+ break;
+ case EVENT_FIRENOVA:
+ DoCast(me, SPELL_FIRENOVA);
+ events.ScheduleEvent(EVENT_FIRENOVA, 6000);
+ break;
+ case EVENT_FLAMEBUFFET:
+ DoCast(me, SPELL_FLAMEBUFFET);
+ events.ScheduleEvent(EVENT_FLAMEBUFFET, 14000);
+ break;
+ case EVENT_PYROBLAST:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
+ DoCast(target, SPELL_PYROBLAST);
+ events.ScheduleEvent(EVENT_PYROBLAST, 15000);
+ break;
+ default:
+ break;
+ }
+ }
+ DoMeleeAttackIfReady();
+ }
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new boss_pyroguard_emberseerAI(creature);
+ }
+};
+
+/*####
+## npc_blackhand_incarcerator
+####*/
+
+enum IncarceratorEvents
+{
+ // OOC
+ EVENT_ENCAGED_EMBERSEER = 1,
+ // Combat
+ EVENT_STRIKE = 2,
+ EVENT_ENCAGE = 3
+};
+
+class npc_blackhand_incarcerator : public CreatureScript
+{
+public:
+ npc_blackhand_incarcerator() : CreatureScript("npc_blackhand_incarcerator") { }
+
+ struct npc_blackhand_incarceratorAI : public ScriptedAI
+ {
+ npc_blackhand_incarceratorAI(Creature* creature) : ScriptedAI(creature) {}
+
+ void Reset() OVERRIDE
+ {
+ me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_IMMUNE_TO_NPC);
+ if (Creature* Emberseer = me->FindNearestCreature(NPC_PYROGAURD_EMBERSEER, 30.0f, true))
+ Emberseer->AI()->SetData(1, 3);
+ }
+
+ void JustDied(Unit* /*killer*/) OVERRIDE
+ {
+ me->DespawnOrUnsummon(10000);
+ }
+
+ void SetData(uint32 data, uint32 value) OVERRIDE
+ {
+ if (data == 1 && value == 1)
+ {
+ me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_IMMUNE_TO_NPC);
+ me->InterruptSpell(CURRENT_CHANNELED_SPELL);
+ _events.CancelEvent(EVENT_ENCAGED_EMBERSEER);
+ }
+
+ if (data == 1 && value == 2)
+ {
+ _events.ScheduleEvent(EVENT_ENCAGED_EMBERSEER, 1000);
+ }
+ }
+
+ void EnterCombat(Unit* /*who*/) OVERRIDE
+ {
+ // Used to close doors
+ if (Creature* Emberseer = me->FindNearestCreature(NPC_PYROGAURD_EMBERSEER, 30.0f, true))
+ Emberseer->AI()->SetData(1, 2);
+
+ // Had to do this because CallForHelp will ignore any npcs without LOS
+ std::list<Creature*> creatureList;
+ GetCreatureListWithEntryInGrid(creatureList, me, NPC_BLACKHAND_INCARCERATOR, 60.0f);
+ for (std::list<Creature*>::iterator itr = creatureList.begin(); itr != creatureList.end(); ++itr)
+ {
+ if (Creature* creatureList = *itr)
+ creatureList->SetInCombatWithZone(); // AI()->AttackStart(me->GetVictim());
+ }
+
+ _events.ScheduleEvent(EVENT_STRIKE, urand(8000, 16000));
+ _events.ScheduleEvent(EVENT_ENCAGE, urand(10000, 20000));
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+
+
+ if (!UpdateVictim())
+ {
+ _events.Update(diff);
+
+ while (uint32 eventId = _events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_ENCAGED_EMBERSEER:
+ {
+ if (me->GetPositionX() == me->GetHomePosition().GetPositionX())
+ if (!me->HasAura(SPELL_ENCAGE_EMBERSEER))
+ if (Creature* Emberseer = me->FindNearestCreature(NPC_PYROGAURD_EMBERSEER, 30.0f, true))
+ DoCast(Emberseer, SPELL_ENCAGE_EMBERSEER);
+ break;
+
+ }
+ }
+ }
+ return;
+ }
+
+ _events.Update(diff);
+
+ while (uint32 eventId = _events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_STRIKE:
+ DoCastVictim(SPELL_STRIKE, true);
+ _events.ScheduleEvent(EVENT_STRIKE, urand(14000, 23000));
+ break;
+ case EVENT_ENCAGE:
+ DoCast(SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true), EVENT_ENCAGE, true);
+ _events.ScheduleEvent(EVENT_ENCAGE, urand(6000, 12000));
+ break;
+ default:
+ break;
+ }
+ }
+
+ DoMeleeAttackIfReady();
+ }
+
+ private:
+ EventMap _events;
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_blackhand_incarceratorAI(creature);
+ }
+};
+
+void AddSC_boss_pyroguard_emberseer()
+{
+ new boss_pyroguard_emberseer();
+ new npc_blackhand_incarcerator();
+}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_quartermaster_zigris.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_quartermaster_zigris.cpp
index 8828fcfe753..a20822839e6 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_quartermaster_zigris.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_quartermaster_zigris.cpp
@@ -1,6 +1,5 @@
/*
* Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
- * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
@@ -39,33 +38,28 @@ class quartermaster_zigris : public CreatureScript
public:
quartermaster_zigris() : CreatureScript("quartermaster_zigris") { }
- CreatureAI* GetAI(Creature* creature) const
- {
- return new boss_quatermasterzigrisAI(creature);
- }
-
struct boss_quatermasterzigrisAI : public BossAI
{
boss_quatermasterzigrisAI(Creature* creature) : BossAI(creature, DATA_QUARTERMASTER_ZIGRIS) {}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
- events.ScheduleEvent(EVENT_SHOOT, 1 * IN_MILLISECONDS);
- events.ScheduleEvent(EVENT_STUN_BOMB, 16 * IN_MILLISECONDS);
+ events.ScheduleEvent(EVENT_SHOOT, 1000);
+ events.ScheduleEvent(EVENT_STUN_BOMB, 16000);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -80,18 +74,23 @@ public:
switch (eventId)
{
case EVENT_SHOOT:
- DoCast(me->getVictim(), SPELL_SHOOT);
+ DoCastVictim(SPELL_SHOOT);
events.ScheduleEvent(EVENT_SHOOT, 500);
break;
case EVENT_STUN_BOMB:
- DoCast(me->getVictim(), SPELL_STUNBOMB);
- events.ScheduleEvent(EVENT_STUN_BOMB, 14 * IN_MILLISECONDS);
+ DoCastVictim(SPELL_STUNBOMB);
+ events.ScheduleEvent(EVENT_STUN_BOMB, 14000);
break;
}
}
DoMeleeAttackIfReady();
}
};
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new boss_quatermasterzigrisAI(creature);
+ }
};
void AddSC_boss_quatermasterzigris()
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp
new file mode 100644
index 00000000000..275b3802764
--- /dev/null
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp
@@ -0,0 +1,447 @@
+/*
+ * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
+ * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "Player.h"
+#include "blackrock_spire.h"
+
+enum Spells
+{
+ SPELL_WHIRLWIND = 13736, // sniffed
+ SPELL_CLEAVE = 15284,
+ SPELL_MORTAL_STRIKE = 16856,
+ SPELL_FRENZY = 8269,
+ SPELL_KNOCKDOWN = 13360 // On spawn during Gyth fight
+};
+
+enum Says
+{
+ // Rend Blackhand
+ SAY_BLACKHAND_1 = 0,
+ SAY_BLACKHAND_2 = 1,
+ EMOTE_BLACKHAND_DISMOUNT = 2,
+ // Victor Nefarius
+ SAY_NEFARIUS_0 = 0,
+ SAY_NEFARIUS_1 = 1,
+ SAY_NEFARIUS_2 = 2,
+ SAY_NEFARIUS_3 = 3,
+ SAY_NEFARIUS_4 = 4,
+ SAY_NEFARIUS_5 = 5,
+ SAY_NEFARIUS_6 = 6,
+ SAY_NEFARIUS_7 = 7,
+ SAY_NEFARIUS_8 = 8,
+ SAY_NEFARIUS_9 = 9,
+};
+
+enum Adds
+{
+ NPC_CHROMATIC_WHELP = 10442,
+ NPC_CHROMATIC_DRAGONSPAWN = 10447,
+ NPC_BLACKHAND_DRAGON_HANDLER = 10742
+};
+
+enum Misc
+{
+ NEFARIUS_PATH_1 = 1379670,
+ NEFARIUS_PATH_2 = 1379671,
+ NEFARIUS_PATH_3 = 1379672,
+ REND_PATH_1 = 1379680,
+ REND_PATH_2 = 1379681,
+};
+
+/*
+struct Wave
+{
+ uint32 entry;
+ float x_pos;
+ float y_pos;
+ float z_pos;
+ float o_pos;
+};
+
+static Wave Wave2[]= // 22 sec
+{
+ { 10447, 209.8637f, -428.2729f, 110.9877f, 0.6632251f },
+ { 10442, 209.3122f, -430.8724f, 110.9814f, 2.9147f },
+ { 10442, 211.3309f, -425.9111f, 111.0006f, 1.727876f }
+};
+
+static Wave Wave3[]= // 60 sec
+{
+ { 10742, 208.6493f, -424.5787f, 110.9872f, 5.8294f },
+ { 10447, 203.9482f, -428.9446f, 110.982f, 4.677482f },
+ { 10442, 203.3441f, -426.8668f, 110.9772f, 4.712389f },
+ { 10442, 206.3079f, -424.7509f, 110.9943f, 4.08407f }
+};
+
+static Wave Wave4[]= // 49 sec
+{
+ { 10742, 212.3541f, -412.6826f, 111.0352f, 5.88176f },
+ { 10447, 212.5754f, -410.2841f, 111.0296f, 2.740167f },
+ { 10442, 212.3449f, -414.8659f, 111.0348f, 2.356194f },
+ { 10442, 210.6568f, -412.1552f, 111.0124f, 0.9773844f }
+};
+
+static Wave Wave5[]= // 60 sec
+{
+ { 10742, 210.2188f, -410.6686f, 111.0211f, 5.8294f },
+ { 10447, 209.4078f, -414.13f, 111.0264f, 4.677482f },
+ { 10442, 208.0858f, -409.3145f, 111.0118f, 4.642576f },
+ { 10442, 207.9811f, -413.0728f, 111.0098f, 5.288348f },
+ { 10442, 208.0854f, -412.1505f, 111.0057f, 4.08407f }
+};
+
+static Wave Wave6[]= // 27 sec
+{
+ { 10742, 213.9138f, -426.512f, 111.0013f, 3.316126f },
+ { 10447, 213.7121f, -429.8102f, 110.9888f, 1.413717f },
+ { 10447, 213.7157f, -424.4268f, 111.009f, 3.001966f },
+ { 10442, 210.8935f, -423.913f, 111.0125f, 5.969026f },
+ { 10442, 212.2642f, -430.7648f, 110.9807f, 5.934119f }
+};
+*/
+
+Position const GythLoc = { 211.762f, -397.5885f, 111.1817f, 4.747295f };
+Position const Teleport1Loc = { 194.2993f, -474.0814f, 121.4505f, -0.01225555f };
+Position const Teleport2Loc = { 216.485f, -434.93f, 110.888f, -0.01225555f };
+
+enum Events
+{
+ EVENT_START_1 = 1,
+ EVENT_START_2 = 2,
+ EVENT_START_3 = 3,
+ EVENT_START_4 = 4,
+ EVENT_TURN_TO_REND = 5,
+ EVENT_TURN_TO_PLAYER = 6,
+ EVENT_TURN_TO_FACING_1 = 7,
+ EVENT_TURN_TO_FACING_2 = 8,
+ EVENT_TURN_TO_FACING_3 = 9,
+ EVENT_WAVE_1 = 10,
+ EVENT_WAVE_2 = 11,
+ EVENT_WAVE_3 = 12,
+ EVENT_WAVE_4 = 13,
+ EVENT_WAVE_5 = 14,
+ EVENT_WAVE_6 = 15,
+ EVENT_WAVES_TEXT_1 = 16,
+ EVENT_WAVES_TEXT_2 = 17,
+ EVENT_WAVES_TEXT_3 = 18,
+ EVENT_WAVES_TEXT_4 = 19,
+ EVENT_WAVES_TEXT_5 = 20,
+ EVENT_WAVES_COMPLETE_TEXT_1 = 21,
+ EVENT_WAVES_COMPLETE_TEXT_2 = 22,
+ EVENT_WAVES_COMPLETE_TEXT_3 = 23,
+ EVENT_WAVES_EMOTE_1 = 24,
+ EVENT_WAVES_EMOTE_2 = 25,
+ EVENT_PATH_REND = 26,
+ EVENT_PATH_NEFARIUS = 27,
+ EVENT_TELEPORT_1 = 28,
+ EVENT_TELEPORT_2 = 29,
+ EVENT_WHIRLWIND = 30,
+ EVENT_CLEAVE = 31,
+ EVENT_MORTAL_STRIKE = 32,
+};
+
+class boss_rend_blackhand : public CreatureScript
+{
+public:
+ boss_rend_blackhand() : CreatureScript("boss_rend_blackhand") { }
+
+ struct boss_rend_blackhandAI : public BossAI
+ {
+ boss_rend_blackhandAI(Creature* creature) : BossAI(creature, DATA_WARCHIEF_REND_BLACKHAND) { }
+
+ void Reset() OVERRIDE
+ {
+ _Reset();
+ gythEvent = false;
+ victorGUID = 0;
+ }
+
+ void EnterCombat(Unit* /*who*/) OVERRIDE
+ {
+ _EnterCombat();
+ events.ScheduleEvent(EVENT_WHIRLWIND, urand(13000, 15000));
+ events.ScheduleEvent(EVENT_CLEAVE, urand(15000, 17000));
+ events.ScheduleEvent(EVENT_MORTAL_STRIKE, urand(17000, 19000));
+ }
+
+ void JustDied(Unit* /*killer*/) OVERRIDE
+ {
+ _JustDied();
+ if (Creature* victor = me->FindNearestCreature(NPC_LORD_VICTOR_NEFARIUS, 75.0f, true))
+ victor->AI()->SetData(1, 2);
+ }
+
+ void SetData(uint32 type, uint32 data) OVERRIDE
+ {
+ if (instance && type == AREATRIGGER && data == AREATRIGGER_BLACKROCK_STADIUM)
+ {
+ if (!gythEvent)
+ {
+ gythEvent = true;
+
+ if (Creature* victor = me->FindNearestCreature(NPC_LORD_VICTOR_NEFARIUS, 5.0f, true))
+ victorGUID = victor->GetGUID();
+
+ if (GameObject* portcullis = me->FindNearestGameObject(GO_DR_PORTCULLIS, 50.0f))
+ portcullisGUID = portcullis->GetGUID();
+
+ events.ScheduleEvent(EVENT_TURN_TO_PLAYER, 0);
+ events.ScheduleEvent(EVENT_START_1, 1000);
+ }
+ }
+ }
+
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
+ {
+ if (type == WAYPOINT_MOTION_TYPE)
+ {
+ switch (id)
+ {
+ case 5:
+ events.ScheduleEvent(EVENT_TELEPORT_1, 2000);
+ break;
+ case 11:
+ if (Creature* gyth = me->FindNearestCreature(NPC_GYTH, 10.0f, true))
+ gyth->AI()->SetData(1, 1);
+ me->DespawnOrUnsummon(1000);
+ break;
+ }
+ }
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ if (gythEvent)
+ {
+ events.Update(diff);
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_START_1:
+ if (Creature* victor = me->GetCreature(*me, victorGUID))
+ victor->AI()->Talk(SAY_NEFARIUS_0);
+ events.ScheduleEvent(EVENT_START_2, 4000);
+ break;
+ case EVENT_START_2:
+ events.ScheduleEvent(EVENT_TURN_TO_PLAYER, 0);
+ if (Creature* victor = me->GetCreature(*me, victorGUID))
+ victor->HandleEmoteCommand(EMOTE_ONESHOT_POINT);
+ events.ScheduleEvent(EVENT_START_3, 4000);
+ break;
+ case EVENT_START_3:
+ if (Creature* victor = me->GetCreature(*me, victorGUID))
+ victor->AI()->Talk(SAY_NEFARIUS_1);
+ events.ScheduleEvent(EVENT_WAVE_1, 2000);
+ events.ScheduleEvent(EVENT_TURN_TO_REND, 4000);
+ events.ScheduleEvent(EVENT_WAVES_TEXT_1, 20000);
+ break;
+ case EVENT_TURN_TO_REND:
+ if (Creature* victor = me->GetCreature(*me, victorGUID))
+ {
+ victor->SetFacingToObject(me);
+ victor->HandleEmoteCommand(EMOTE_ONESHOT_TALK);
+ }
+ break;
+ case EVENT_TURN_TO_PLAYER:
+ if (Creature* victor = me->GetCreature(*me, victorGUID))
+ if (Unit* player = victor->SelectNearestPlayer(60.0f))
+ victor->SetFacingToObject(player);
+ break;
+ case EVENT_TURN_TO_FACING_1:
+ if (Creature* victor = me->GetCreature(*me, victorGUID))
+ victor->SetFacingTo(1.518436f);
+ break;
+ case EVENT_TURN_TO_FACING_2:
+ me->SetFacingTo(1.658063f);
+ break;
+ case EVENT_TURN_TO_FACING_3:
+ me->SetFacingTo(1.500983f);
+ break;
+ case EVENT_WAVES_EMOTE_1:
+ if (Creature* victor = me->GetCreature(*me, victorGUID))
+ victor->HandleEmoteCommand(EMOTE_ONESHOT_QUESTION);
+ break;
+ case EVENT_WAVES_EMOTE_2:
+ me->HandleEmoteCommand(EMOTE_ONESHOT_ROAR);
+ break;
+ case EVENT_WAVES_TEXT_1:
+ events.ScheduleEvent(EVENT_TURN_TO_PLAYER, 0);
+ if (Creature* victor = me->GetCreature(*me, victorGUID))
+ victor->AI()->Talk(SAY_NEFARIUS_2);
+ me->HandleEmoteCommand(EMOTE_ONESHOT_TALK);
+ events.ScheduleEvent(EVENT_TURN_TO_FACING_1, 4000);
+ events.ScheduleEvent(EVENT_WAVES_EMOTE_1, 5000);
+ events.ScheduleEvent(EVENT_WAVE_2, 2000);
+ events.ScheduleEvent(EVENT_WAVES_TEXT_2, 20000);
+ break;
+ case EVENT_WAVES_TEXT_2:
+ events.ScheduleEvent(EVENT_TURN_TO_PLAYER, 0);
+ if (Creature* victor = me->GetCreature(*me, victorGUID))
+ victor->AI()->Talk(SAY_NEFARIUS_3);
+ events.ScheduleEvent(EVENT_TURN_TO_FACING_1, 4000);
+ events.ScheduleEvent(EVENT_WAVE_3, 2000);
+ events.ScheduleEvent(EVENT_WAVES_TEXT_3, 20000);
+ break;
+ case EVENT_WAVES_TEXT_3:
+ events.ScheduleEvent(EVENT_TURN_TO_PLAYER, 0);
+ if (Creature* victor = me->GetCreature(*me, victorGUID))
+ victor->AI()->Talk(SAY_NEFARIUS_4);
+ events.ScheduleEvent(EVENT_TURN_TO_FACING_1, 4000);
+ events.ScheduleEvent(EVENT_WAVE_4, 2000);
+ events.ScheduleEvent(EVENT_WAVES_TEXT_4, 20000);
+ break;
+ case EVENT_WAVES_TEXT_4:
+ Talk(SAY_BLACKHAND_1);
+ events.ScheduleEvent(EVENT_WAVES_EMOTE_2, 4000);
+ events.ScheduleEvent(EVENT_TURN_TO_FACING_3, 8000);
+ events.ScheduleEvent(EVENT_WAVE_5, 2000);
+ events.ScheduleEvent(EVENT_WAVES_TEXT_5, 20000);
+ break;
+ case EVENT_WAVES_TEXT_5:
+ events.ScheduleEvent(EVENT_TURN_TO_PLAYER, 0);
+ if (Creature* victor = me->GetCreature(*me, victorGUID))
+ victor->AI()->Talk(SAY_NEFARIUS_5);
+ events.ScheduleEvent(EVENT_TURN_TO_FACING_1, 4000);
+ events.ScheduleEvent(EVENT_WAVE_6, 2000);
+ events.ScheduleEvent(EVENT_WAVES_COMPLETE_TEXT_1, 20000);
+ break;
+ case EVENT_WAVES_COMPLETE_TEXT_1:
+ events.ScheduleEvent(EVENT_TURN_TO_PLAYER, 0);
+ if (Creature* victor = me->GetCreature(*me, victorGUID))
+ victor->AI()->Talk(SAY_NEFARIUS_6);
+ events.ScheduleEvent(EVENT_TURN_TO_FACING_1, 4000);
+ events.ScheduleEvent(EVENT_WAVES_COMPLETE_TEXT_2, 13000);
+ break;
+ case EVENT_WAVES_COMPLETE_TEXT_2:
+ if (Creature* victor = me->GetCreature(*me, victorGUID))
+ victor->AI()->Talk(SAY_NEFARIUS_7);
+ Talk(SAY_BLACKHAND_2);
+ events.ScheduleEvent(EVENT_PATH_REND, 1000);
+ events.ScheduleEvent(EVENT_WAVES_COMPLETE_TEXT_3, 4000);
+ break;
+ case EVENT_WAVES_COMPLETE_TEXT_3:
+ if (Creature* victor = me->GetCreature(*me, victorGUID))
+ victor->AI()->Talk(SAY_NEFARIUS_8);
+ events.ScheduleEvent(EVENT_PATH_NEFARIUS, 1000);
+ events.ScheduleEvent(EVENT_PATH_REND, 1000);
+ break;
+ case EVENT_PATH_NEFARIUS:
+ if (Creature* victor = me->GetCreature(*me, victorGUID))
+ victor->GetMotionMaster()->MovePath(NEFARIUS_PATH_1, true);
+ break;
+ case EVENT_PATH_REND:
+ me->GetMotionMaster()->MovePath(REND_PATH_1, false);
+ break;
+ case EVENT_TELEPORT_1:
+ me->NearTeleportTo(194.2993f, -474.0814f, 121.4505f, -0.01225555f);
+ events.ScheduleEvent(EVENT_TELEPORT_2, 50000);
+ break;
+ case EVENT_TELEPORT_2:
+ me->NearTeleportTo(216.485f, -434.93f, 110.888f, -0.01225555f);
+ me->SummonCreature(NPC_GYTH, 211.762f, -397.5885f, 111.1817f, 4.747295f);
+ break;
+ case EVENT_WAVE_1:
+ if (GameObject* portcullis = me->GetMap()->GetGameObject(portcullisGUID))
+ portcullis->UseDoorOrButton();
+ // move wave
+ break;
+ case EVENT_WAVE_2:
+ // spawn wave
+ if (GameObject* portcullis = me->GetMap()->GetGameObject(portcullisGUID))
+ portcullis->UseDoorOrButton();
+ // move wave
+ break;
+ case EVENT_WAVE_3:
+ // spawn wave
+ if (GameObject* portcullis = me->GetMap()->GetGameObject(portcullisGUID))
+ portcullis->UseDoorOrButton();
+ // move wave
+ break;
+ case EVENT_WAVE_4:
+ // spawn wave
+ if (GameObject* portcullis = me->GetMap()->GetGameObject(portcullisGUID))
+ portcullis->UseDoorOrButton();
+ // move wave
+ break;
+ case EVENT_WAVE_5:
+ // spawn wave
+ if (GameObject* portcullis = me->GetMap()->GetGameObject(portcullisGUID))
+ portcullis->UseDoorOrButton();
+ // move wave
+ break;
+ case EVENT_WAVE_6:
+ // spawn wave
+ if (GameObject* portcullis = me->GetMap()->GetGameObject(portcullisGUID))
+ portcullis->UseDoorOrButton();
+ // move wave
+ break;
+ default:
+ break;
+ }
+ }
+ }
+
+ if (!UpdateVictim())
+ return;
+
+ events.Update(diff);
+
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_WHIRLWIND:
+ DoCast(SPELL_WHIRLWIND);
+ events.ScheduleEvent(EVENT_WHIRLWIND, urand(13000, 18000));
+ break;
+ case EVENT_CLEAVE:
+ DoCastVictim(SPELL_CLEAVE);
+ events.ScheduleEvent(EVENT_CLEAVE, urand(10000, 14000));
+ break;
+ case EVENT_MORTAL_STRIKE:
+ DoCastVictim(SPELL_MORTAL_STRIKE);
+ events.ScheduleEvent(EVENT_MORTAL_STRIKE, urand(14000, 16000));
+ break;
+ }
+ }
+ DoMeleeAttackIfReady();
+ }
+
+ private:
+ bool gythEvent;
+ uint64 victorGUID;
+ uint64 portcullisGUID;
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new boss_rend_blackhandAI(creature);
+ }
+};
+
+void AddSC_boss_rend_blackhand()
+{
+ new boss_rend_blackhand();
+}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_shadow_hunter_voshgajin.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_shadow_hunter_voshgajin.cpp
index c429931d42b..1936e5e72d0 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_shadow_hunter_voshgajin.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_shadow_hunter_voshgajin.cpp
@@ -39,7 +39,7 @@ class boss_shadow_hunter_voshgajin : public CreatureScript
public:
boss_shadow_hunter_voshgajin() : CreatureScript("boss_shadow_hunter_voshgajin") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_shadowvoshAI(creature);
}
@@ -48,13 +48,13 @@ public:
{
boss_shadowvoshAI(Creature* creature) : BossAI(creature, DATA_SHADOW_HUNTER_VOSHGAJIN) {}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
//DoCast(me, SPELL_ICEARMOR, true);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
events.ScheduleEvent(EVENT_CURSE_OF_BLOOD, 2 * IN_MILLISECONDS);
@@ -62,12 +62,12 @@ public:
events.ScheduleEvent(EVENT_CLEAVE, 14 * IN_MILLISECONDS);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -82,7 +82,7 @@ public:
switch (eventId)
{
case EVENT_CURSE_OF_BLOOD:
- DoCast(me->getVictim(), SPELL_CURSEOFBLOOD);
+ DoCastVictim(SPELL_CURSEOFBLOOD);
events.ScheduleEvent(EVENT_CURSE_OF_BLOOD, 45 * IN_MILLISECONDS);
break;
case EVENT_HEX:
@@ -91,7 +91,7 @@ public:
events.ScheduleEvent(EVENT_HEX, 15 * IN_MILLISECONDS);
break;
case EVENT_CLEAVE:
- DoCast(me->getVictim(), SPELL_CLEAVE);
+ DoCastVictim(SPELL_CLEAVE);
events.ScheduleEvent(EVENT_CLEAVE, 7 * IN_MILLISECONDS);
break;
}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_the_beast.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_the_beast.cpp
index a32fefeca40..c4abaac158c 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_the_beast.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_the_beast.cpp
@@ -39,7 +39,7 @@ class boss_the_beast : public CreatureScript
public:
boss_the_beast() : CreatureScript("boss_the_beast") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_thebeastAI(creature);
}
@@ -48,12 +48,12 @@ public:
{
boss_thebeastAI(Creature* creature) : BossAI(creature, DATA_THE_BEAST) {}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
events.ScheduleEvent(EVENT_FLAME_BREAK, 12 * IN_MILLISECONDS);
@@ -61,12 +61,12 @@ public:
events.ScheduleEvent(EVENT_TERRIFYING_ROAR, 23 * IN_MILLISECONDS);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -81,7 +81,7 @@ public:
switch (eventId)
{
case EVENT_FLAME_BREAK:
- DoCast(me->getVictim(), SPELL_FLAMEBREAK);
+ DoCastVictim(SPELL_FLAMEBREAK);
events.ScheduleEvent(EVENT_FLAME_BREAK, 10 * IN_MILLISECONDS);
break;
case EVENT_IMMOLATE:
@@ -90,7 +90,7 @@ public:
events.ScheduleEvent(EVENT_IMMOLATE, 8 * IN_MILLISECONDS);
break;
case EVENT_TERRIFYING_ROAR:
- DoCast(me->getVictim(), SPELL_TERRIFYINGROAR);
+ DoCastVictim(SPELL_TERRIFYINGROAR);
events.ScheduleEvent(EVENT_TERRIFYING_ROAR, 20 * IN_MILLISECONDS);
break;
}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_urok_doomhowl.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_urok_doomhowl.cpp
new file mode 100644
index 00000000000..afee357aad5
--- /dev/null
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_urok_doomhowl.cpp
@@ -0,0 +1,108 @@
+/*
+ * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "blackrock_spire.h"
+
+enum Spells
+{
+ SPELL_REND = 16509,
+ SPELL_STRIKE = 15580,
+ SPELL_INTIMIDATING_ROAR = 16508
+};
+
+enum Says
+{
+ SAY_SUMMON = 0,
+ SAY_AGGRO = 1,
+};
+
+enum Events
+{
+ EVENT_REND = 1,
+ EVENT_STRIKE = 2,
+ EVENT_INTIMIDATING_ROAR = 3
+};
+
+class boss_urok_doomhowl : public CreatureScript
+{
+public:
+ boss_urok_doomhowl() : CreatureScript("boss_urok_doomhowl") { }
+
+ struct boss_urok_doomhowlAI : public BossAI
+ {
+ boss_urok_doomhowlAI(Creature* creature) : BossAI(creature, DATA_UROK_DOOMHOWL) {}
+
+ void Reset() OVERRIDE
+ {
+ _Reset();
+ }
+
+ void EnterCombat(Unit* /*who*/) OVERRIDE
+ {
+ _EnterCombat();
+ events.ScheduleEvent(SPELL_REND, urand(17000,20000));
+ events.ScheduleEvent(SPELL_STRIKE, urand(10000,12000));
+ Talk(SAY_AGGRO);
+ }
+
+ void JustDied(Unit* /*killer*/) OVERRIDE
+ {
+ _JustDied();
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ if (!UpdateVictim())
+ return;
+
+ events.Update(diff);
+
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case SPELL_REND:
+ DoCastVictim(SPELL_REND);
+ events.ScheduleEvent(SPELL_REND, urand(8000,10000));
+ break;
+ case SPELL_STRIKE:
+ DoCastVictim(SPELL_STRIKE);
+ events.ScheduleEvent(SPELL_STRIKE, urand(8000,10000));
+ break;
+ default:
+ break;
+ }
+ }
+ DoMeleeAttackIfReady();
+ }
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new boss_urok_doomhowlAI(creature);
+ }
+};
+
+void AddSC_boss_urok_doomhowl()
+{
+ new boss_urok_doomhowl();
+}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_warmaster_voone.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_warmaster_voone.cpp
index 056448854dc..e3423fd02b6 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_warmaster_voone.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_warmaster_voone.cpp
@@ -45,7 +45,7 @@ class boss_warmaster_voone : public CreatureScript
public:
boss_warmaster_voone() : CreatureScript("boss_warmaster_voone") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_warmastervooneAI(creature);
}
@@ -54,12 +54,12 @@ public:
{
boss_warmastervooneAI(Creature* creature) : BossAI(creature, DATA_WARMASTER_VOONE) {}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
events.ScheduleEvent(EVENT_SNAP_KICK, 8 * IN_MILLISECONDS);
@@ -70,12 +70,12 @@ public:
events.ScheduleEvent(EVENT_THROW_AXE, 1 * IN_MILLISECONDS);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -90,27 +90,27 @@ public:
switch (eventId)
{
case EVENT_SNAP_KICK:
- DoCast(me->getVictim(), SPELL_SNAPKICK);
+ DoCastVictim(SPELL_SNAPKICK);
events.ScheduleEvent(EVENT_SNAP_KICK, 6 * IN_MILLISECONDS);
break;
case EVENT_CLEAVE:
- DoCast(me->getVictim(), SPELL_CLEAVE);
+ DoCastVictim(SPELL_CLEAVE);
events.ScheduleEvent(EVENT_CLEAVE, 12 * IN_MILLISECONDS);
break;
case EVENT_UPPERCUT:
- DoCast(me->getVictim(), SPELL_UPPERCUT);
+ DoCastVictim(SPELL_UPPERCUT);
events.ScheduleEvent(EVENT_UPPERCUT, 14 * IN_MILLISECONDS);
break;
case EVENT_MORTAL_STRIKE:
- DoCast(me->getVictim(), SPELL_MORTALSTRIKE);
+ DoCastVictim(SPELL_MORTALSTRIKE);
events.ScheduleEvent(EVENT_MORTAL_STRIKE, 10 * IN_MILLISECONDS);
break;
case EVENT_PUMMEL:
- DoCast(me->getVictim(), SPELL_PUMMEL);
+ DoCastVictim(SPELL_PUMMEL);
events.ScheduleEvent(EVENT_MORTAL_STRIKE, 16 * IN_MILLISECONDS);
break;
case EVENT_THROW_AXE:
- DoCast(me->getVictim(), SPELL_THROWAXE);
+ DoCastVictim(SPELL_THROWAXE);
events.ScheduleEvent(EVENT_THROW_AXE, 8 * IN_MILLISECONDS);
break;
}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp
new file mode 100644
index 00000000000..f0d252a5c5e
--- /dev/null
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp
@@ -0,0 +1,671 @@
+/*
+ * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "ObjectMgr.h"
+#include "ScriptMgr.h"
+#include "ObjectDefines.h"
+#include "Cell.h"
+#include "CellImpl.h"
+#include "GridNotifiers.h"
+#include "GridNotifiersImpl.h"
+#include "InstanceScript.h"
+#include "ScriptedCreature.h"
+#include "blackrock_spire.h"
+
+uint32 const DragonspireRunes[7] = { GO_HALL_RUNE_1, GO_HALL_RUNE_2, GO_HALL_RUNE_3, GO_HALL_RUNE_4, GO_HALL_RUNE_5, GO_HALL_RUNE_6, GO_HALL_RUNE_7 };
+
+uint32 const DragonspireMobs[3] = { NPC_BLACKHAND_DREADWEAVER, NPC_BLACKHAND_SUMMONER, NPC_BLACKHAND_VETERAN };
+
+enum EventIds
+{
+ EVENT_DARGONSPIRE_ROOM_STORE = 1,
+ EVENT_DARGONSPIRE_ROOM_CHECK = 2,
+ EVENT_UROK_DOOMHOWL_SPAWNS_1 = 3,
+ EVENT_UROK_DOOMHOWL_SPAWNS_2 = 4,
+ EVENT_UROK_DOOMHOWL_SPAWNS_3 = 5,
+ EVENT_UROK_DOOMHOWL_SPAWNS_4 = 6,
+ EVENT_UROK_DOOMHOWL_SPAWNS_5 = 7,
+ EVENT_UROK_DOOMHOWL_SPAWN_IN = 8
+};
+
+class instance_blackrock_spire : public InstanceMapScript
+{
+public:
+ instance_blackrock_spire() : InstanceMapScript(BRSScriptName, 229) { }
+
+ struct instance_blackrock_spireMapScript : public InstanceScript
+ {
+ instance_blackrock_spireMapScript(InstanceMap* map) : InstanceScript(map)
+ {
+ SetBossNumber(EncounterCount);
+ HighlordOmokk = 0;
+ ShadowHunterVoshgajin = 0;
+ WarMasterVoone = 0;
+ MotherSmolderweb = 0;
+ UrokDoomhowl = 0;
+ QuartermasterZigris = 0;
+ GizrultheSlavener = 0;
+ Halycon = 0;
+ OverlordWyrmthalak = 0;
+ PyroguardEmberseer = 0;
+ WarchiefRendBlackhand = 0;
+ Gyth = 0;
+ LordVictorNefarius = 0;
+ TheBeast = 0;
+ GeneralDrakkisath = 0;
+ go_emberseerin = 0;
+ go_doors = 0;
+ go_emberseerout = 0;
+ go_blackrockaltar = 0;
+ go_portcullis_active = 0;
+ go_portcullis_tobossrooms = 0;
+ }
+
+ void OnCreatureCreate(Creature* creature)
+ {
+ switch (creature->GetEntry())
+ {
+ case NPC_HIGHLORD_OMOKK:
+ HighlordOmokk = creature->GetGUID();
+ break;
+ case NPC_SHADOW_HUNTER_VOSHGAJIN:
+ ShadowHunterVoshgajin = creature->GetGUID();
+ break;
+ case NPC_WARMASTER_VOONE:
+ WarMasterVoone = creature->GetGUID();
+ break;
+ case NPC_MOTHER_SMOLDERWEB:
+ MotherSmolderweb = creature->GetGUID();
+ break;
+ case NPC_UROK_DOOMHOWL:
+ UrokDoomhowl = creature->GetGUID();
+ break;
+ case NPC_QUARTERMASTER_ZIGRIS:
+ QuartermasterZigris = creature->GetGUID();
+ break;
+ case NPC_GIZRUL_THE_SLAVENER:
+ GizrultheSlavener = creature->GetGUID();
+ break;
+ case NPC_HALYCON:
+ Halycon = creature->GetGUID();
+ break;
+ case NPC_OVERLORD_WYRMTHALAK:
+ OverlordWyrmthalak = creature->GetGUID();
+ break;
+ case NPC_PYROGAURD_EMBERSEER:
+ PyroguardEmberseer = creature->GetGUID();
+ if (GetBossState(DATA_PYROGAURD_EMBERSEER) == DONE)
+ creature->DisappearAndDie();
+ break;
+ case NPC_WARCHIEF_REND_BLACKHAND:
+ WarchiefRendBlackhand = creature->GetGUID();
+ if (GetBossState(DATA_GYTH) == DONE)
+ creature->DisappearAndDie();
+ break;
+ case NPC_GYTH:
+ Gyth = creature->GetGUID();
+ break;
+ case NPC_THE_BEAST:
+ TheBeast = creature->GetGUID();
+ break;
+ case NPC_GENERAL_DRAKKISATH:
+ GeneralDrakkisath = creature->GetGUID();
+ break;
+ case NPC_LORD_VICTOR_NEFARIUS:
+ LordVictorNefarius = creature->GetGUID();
+ if (GetBossState(DATA_GYTH) == DONE)
+ creature->DisappearAndDie();
+ break;
+ }
+ }
+
+ void OnGameObjectCreate(GameObject* go)
+ {
+ switch (go->GetEntry())
+ {
+ case GO_WHELP_SPAWNER:
+ go->CastSpell(NULL, SPELL_SUMMON_ROOKERY_WHELP);
+ break;
+ case GO_EMBERSEER_IN:
+ go_emberseerin = go->GetGUID();
+ if (GetBossState(DATA_DRAGONSPIRE_ROOM) == DONE)
+ HandleGameObject(0, true, go);
+ break;
+ case GO_DOORS:
+ go_doors = go->GetGUID();
+ if (GetBossState(DATA_DRAGONSPIRE_ROOM) == DONE)
+ HandleGameObject(0, true, go);
+ break;
+ case GO_EMBERSEER_OUT:
+ go_emberseerout = go->GetGUID();
+ if (GetBossState(DATA_PYROGAURD_EMBERSEER) == DONE)
+ HandleGameObject(0, true, go);
+ break;
+ case GO_HALL_RUNE_1:
+ go_roomrunes[0] = go->GetGUID();
+ if (GetBossState(DATA_HALL_RUNE_1) == DONE)
+ HandleGameObject(0, false, go);
+ break;
+ case GO_HALL_RUNE_2:
+ go_roomrunes[1] = go->GetGUID();
+ if (GetBossState(DATA_HALL_RUNE_2) == DONE)
+ HandleGameObject(0, false, go);
+ break;
+ case GO_HALL_RUNE_3:
+ go_roomrunes[2] = go->GetGUID();
+ if (GetBossState(DATA_HALL_RUNE_3) == DONE)
+ HandleGameObject(0, false, go);
+ break;
+ case GO_HALL_RUNE_4:
+ go_roomrunes[3] = go->GetGUID();
+ if (GetBossState(DATA_HALL_RUNE_4) == DONE)
+ HandleGameObject(0, false, go);
+ break;
+ case GO_HALL_RUNE_5:
+ go_roomrunes[4] = go->GetGUID();
+ if (GetBossState(DATA_HALL_RUNE_5) == DONE)
+ HandleGameObject(0, false, go);
+ break;
+ case GO_HALL_RUNE_6:
+ go_roomrunes[5] = go->GetGUID();
+ if (GetBossState(DATA_HALL_RUNE_6) == DONE)
+ HandleGameObject(0, false, go);
+ break;
+ case GO_HALL_RUNE_7:
+ go_roomrunes[6] = go->GetGUID();
+ if (GetBossState(DATA_HALL_RUNE_7) == DONE)
+ HandleGameObject(0, false, go);
+ break;
+ case GO_EMBERSEER_RUNE_1:
+ go_emberseerrunes[0] = go->GetGUID();
+ if (GetBossState(DATA_PYROGAURD_EMBERSEER) == DONE)
+ HandleGameObject(0, false, go);
+ break;
+ case GO_EMBERSEER_RUNE_2:
+ go_emberseerrunes[1] = go->GetGUID();
+ if (GetBossState(DATA_PYROGAURD_EMBERSEER) == DONE)
+ HandleGameObject(0, false, go);
+ break;
+ case GO_EMBERSEER_RUNE_3:
+ go_emberseerrunes[2] = go->GetGUID();
+ if (GetBossState(DATA_PYROGAURD_EMBERSEER) == DONE)
+ HandleGameObject(0, false, go);
+ break;
+ case GO_EMBERSEER_RUNE_4:
+ go_emberseerrunes[3] = go->GetGUID();
+ if (GetBossState(DATA_PYROGAURD_EMBERSEER) == DONE)
+ HandleGameObject(0, false, go);
+ break;
+ case GO_EMBERSEER_RUNE_5:
+ go_emberseerrunes[4] = go->GetGUID();
+ if (GetBossState(DATA_PYROGAURD_EMBERSEER) == DONE)
+ HandleGameObject(0, false, go);
+ break;
+ case GO_EMBERSEER_RUNE_6:
+ go_emberseerrunes[5] = go->GetGUID();
+ if (GetBossState(DATA_PYROGAURD_EMBERSEER) == DONE)
+ HandleGameObject(0, false, go);
+ break;
+ case GO_EMBERSEER_RUNE_7:
+ go_emberseerrunes[6] = go->GetGUID();
+ if (GetBossState(DATA_PYROGAURD_EMBERSEER) == DONE)
+ HandleGameObject(0, false, go);
+ break;
+ case GO_PORTCULLIS_ACTIVE:
+ go_portcullis_active = go->GetGUID();
+ if (GetBossState(DATA_GYTH) == DONE)
+ HandleGameObject(0, true, go);
+ break;
+ case GO_PORTCULLIS_TOBOSSROOMS:
+ go_portcullis_tobossrooms = go->GetGUID();
+ if (GetBossState(DATA_GYTH) == DONE)
+ HandleGameObject(0, true, go);
+ break;
+ default:
+ break;
+ }
+ }
+
+ bool SetBossState(uint32 type, EncounterState state)
+ {
+ if (!InstanceScript::SetBossState(type, state))
+ return false;
+
+ switch (type)
+ {
+ case DATA_HIGHLORD_OMOKK:
+ case DATA_SHADOW_HUNTER_VOSHGAJIN:
+ case DATA_WARMASTER_VOONE:
+ case DATA_MOTHER_SMOLDERWEB:
+ case DATA_UROK_DOOMHOWL:
+ case DATA_QUARTERMASTER_ZIGRIS:
+ case DATA_GIZRUL_THE_SLAVENER:
+ case DATA_HALYCON:
+ case DATA_OVERLORD_WYRMTHALAK:
+ case DATA_PYROGAURD_EMBERSEER:
+ case DATA_WARCHIEF_REND_BLACKHAND:
+ case DATA_GYTH:
+ case DATA_THE_BEAST:
+ case DATA_GENERAL_DRAKKISATH:
+ case DATA_DRAGONSPIRE_ROOM:
+ break;
+ default:
+ break;
+ }
+
+ return true;
+ }
+
+ void ProcessEvent(WorldObject* /*gameObject*/, uint32 eventId)
+ {
+ switch (eventId)
+ {
+ case EVENT_PYROGUARD_EMBERSEER:
+ if (GetBossState(DATA_PYROGAURD_EMBERSEER) == NOT_STARTED)
+ {
+ if (Creature* Emberseer = instance->GetCreature(PyroguardEmberseer))
+ Emberseer->AI()->SetData(1, 1);
+ }
+ break;
+ case EVENT_UROK_DOOMHOWL:
+ if (GetBossState(NPC_UROK_DOOMHOWL) == NOT_STARTED)
+ {
+
+ }
+ break;
+ default:
+ break;
+ }
+ }
+
+ void SetData(uint32 type, uint32 data) OVERRIDE
+ {
+ switch (type)
+ {
+ case AREATRIGGER:
+ if (data == AREATRIGGER_DRAGONSPIRE_HALL)
+ {
+ if (GetBossState(DATA_DRAGONSPIRE_ROOM) != DONE)
+ Events.ScheduleEvent(EVENT_DARGONSPIRE_ROOM_STORE, 1000);
+ }
+ default:
+ break;
+ }
+ }
+
+ uint64 GetData64(uint32 type) const OVERRIDE
+ {
+ switch (type)
+ {
+ case DATA_HIGHLORD_OMOKK:
+ return HighlordOmokk;
+ break;
+ case DATA_SHADOW_HUNTER_VOSHGAJIN:
+ return ShadowHunterVoshgajin;
+ break;
+ case DATA_WARMASTER_VOONE:
+ return WarMasterVoone;
+ break;
+ case DATA_MOTHER_SMOLDERWEB:
+ return MotherSmolderweb;
+ break;
+ case DATA_UROK_DOOMHOWL:
+ return UrokDoomhowl;
+ break;
+ case DATA_QUARTERMASTER_ZIGRIS:
+ return QuartermasterZigris;
+ break;
+ case DATA_GIZRUL_THE_SLAVENER:
+ return GizrultheSlavener;
+ break;
+ case DATA_HALYCON:
+ return Halycon;
+ break;
+ case DATA_OVERLORD_WYRMTHALAK:
+ return OverlordWyrmthalak;
+ break;
+ case DATA_PYROGAURD_EMBERSEER:
+ return PyroguardEmberseer;
+ break;
+ case DATA_WARCHIEF_REND_BLACKHAND:
+ return WarchiefRendBlackhand;
+ break;
+ case DATA_GYTH:
+ return Gyth;
+ break;
+ case DATA_THE_BEAST:
+ return TheBeast;
+ break;
+ case DATA_GENERAL_DRAKKISATH:
+ return GeneralDrakkisath;
+ break;
+ case GO_EMBERSEER_IN:
+ return go_emberseerin;
+ break;
+ case GO_DOORS:
+ return go_doors;
+ break;
+ case GO_EMBERSEER_OUT:
+ return go_emberseerout;
+ break;
+ case GO_HALL_RUNE_1:
+ return go_roomrunes[0];
+ break;
+ case GO_HALL_RUNE_2:
+ return go_roomrunes[1];
+ break;
+ case GO_HALL_RUNE_3:
+ return go_roomrunes[2];
+ break;
+ case GO_HALL_RUNE_4:
+ return go_roomrunes[3];
+ break;
+ case GO_HALL_RUNE_5:
+ return go_roomrunes[4];
+ break;
+ case GO_HALL_RUNE_6:
+ return go_roomrunes[5];
+ break;
+ case GO_HALL_RUNE_7:
+ return go_roomrunes[6];
+ break;
+ case GO_EMBERSEER_RUNE_1:
+ return go_emberseerrunes[0];
+ break;
+ case GO_EMBERSEER_RUNE_2:
+ return go_emberseerrunes[1];
+ break;
+ case GO_EMBERSEER_RUNE_3:
+ return go_emberseerrunes[2];
+ break;
+ case GO_EMBERSEER_RUNE_4:
+ return go_emberseerrunes[3];
+ break;
+ case GO_EMBERSEER_RUNE_5:
+ return go_emberseerrunes[4];
+ break;
+ case GO_EMBERSEER_RUNE_6:
+ return go_emberseerrunes[5];
+ break;
+ case GO_EMBERSEER_RUNE_7:
+ return go_emberseerrunes[6];
+ break;
+ case GO_PORTCULLIS_ACTIVE:
+ return go_portcullis_active;
+ break;
+ case GO_PORTCULLIS_TOBOSSROOMS:
+ return go_portcullis_tobossrooms;
+ break;
+ }
+ return 0;
+ }
+
+ void Update(uint32 diff)
+ {
+ Events.Update(diff);
+
+ while (uint32 eventId = Events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_DARGONSPIRE_ROOM_STORE:
+ Dragonspireroomstore();
+ Events.ScheduleEvent(EVENT_DARGONSPIRE_ROOM_CHECK, 3000);
+ break;
+ case EVENT_DARGONSPIRE_ROOM_CHECK:
+ Dragonspireroomcheck();
+ if ((GetBossState(DATA_DRAGONSPIRE_ROOM) != DONE))
+ Events.ScheduleEvent(EVENT_DARGONSPIRE_ROOM_CHECK, 3000);
+ break;
+ default:
+ break;
+ }
+ }
+ }
+
+ void Dragonspireroomstore()
+ {
+ uint8 creaturecount;
+
+ for (uint8 i = 0; i < 7; ++i)
+ {
+ creaturecount = 0;
+
+ if (GameObject* rune = instance->GetGameObject(go_roomrunes[i]))
+ {
+ for (uint8 ii = 0; ii < 3; ++ii)
+ {
+ std::list<Creature*> creatureList;
+ GetCreatureListWithEntryInGrid(creatureList, rune, DragonspireMobs[ii], 15.0f);
+ for (std::list<Creature*>::iterator itr = creatureList.begin(); itr != creatureList.end(); ++itr)
+ {
+ if (Creature* creatureList = *itr)
+ {
+ runecreaturelist[i] [creaturecount] = creatureList->GetGUID();
+ ++creaturecount;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ void Dragonspireroomcheck()
+ {
+ Creature* mob = NULL;
+ GameObject* rune = NULL;
+
+ for (uint8 i = 0; i < 7; ++i)
+ {
+ bool _mobAlive = false;
+ rune = instance->GetGameObject(go_roomrunes[i]);
+ if (!rune)
+ continue;
+
+ if (rune->GetGoState() == GO_STATE_ACTIVE)
+ {
+ for (uint8 ii = 0; ii < 5; ++ii)
+ {
+ mob = instance->GetCreature(runecreaturelist[i][ii]);
+ if (mob && mob->IsAlive())
+ _mobAlive = true;
+ }
+ }
+
+ if (!_mobAlive && rune->GetGoState() == GO_STATE_ACTIVE)
+ {
+ HandleGameObject(0, false, rune);
+
+ switch (rune->GetEntry())
+ {
+ case GO_HALL_RUNE_1:
+ SetBossState(DATA_HALL_RUNE_1, DONE);
+ break;
+ case GO_HALL_RUNE_2:
+ SetBossState(DATA_HALL_RUNE_2, DONE);
+ break;
+ case GO_HALL_RUNE_3:
+ SetBossState(DATA_HALL_RUNE_3, DONE);
+ break;
+ case GO_HALL_RUNE_4:
+ SetBossState(DATA_HALL_RUNE_4, DONE);
+ break;
+ case GO_HALL_RUNE_5:
+ SetBossState(DATA_HALL_RUNE_5, DONE);
+ break;
+ case GO_HALL_RUNE_6:
+ SetBossState(DATA_HALL_RUNE_6, DONE);
+ break;
+ case GO_HALL_RUNE_7:
+ SetBossState(DATA_HALL_RUNE_7, DONE);
+ break;
+ default:
+ break;
+ }
+ }
+ }
+
+ if (GetBossState(DATA_HALL_RUNE_1) == DONE && GetBossState(DATA_HALL_RUNE_2) == DONE && GetBossState(DATA_HALL_RUNE_3) == DONE &&
+ GetBossState(DATA_HALL_RUNE_4) == DONE && GetBossState(DATA_HALL_RUNE_5) == DONE && GetBossState(DATA_HALL_RUNE_6) == DONE &&
+ GetBossState(DATA_HALL_RUNE_7) == DONE)
+ {
+ SetBossState(DATA_DRAGONSPIRE_ROOM, DONE);
+ if (GameObject* door1 = instance->GetGameObject(go_emberseerin))
+ HandleGameObject(0, true, door1);
+ if (GameObject* door2 = instance->GetGameObject(go_doors))
+ HandleGameObject(0, true, door2);
+ }
+ }
+
+ std::string GetSaveData()
+ {
+ OUT_SAVE_INST_DATA;
+
+ std::ostringstream saveStream;
+ saveStream << "B S " << GetBossSaveData();
+
+ OUT_SAVE_INST_DATA_COMPLETE;
+ return saveStream.str();
+ }
+
+ void Load(const char* strIn)
+ {
+ if (!strIn)
+ {
+ OUT_LOAD_INST_DATA_FAIL;
+ return;
+ }
+
+ OUT_LOAD_INST_DATA(strIn);
+
+ char dataHead1, dataHead2;
+
+ std::istringstream loadStream(strIn);
+ loadStream >> dataHead1 >> dataHead2;
+
+ if (dataHead1 == 'B' && dataHead2 == 'S')
+ {
+ for (uint8 i = 0; i < EncounterCount; ++i)
+ {
+ uint32 tmpState;
+ loadStream >> tmpState;
+ if (tmpState == IN_PROGRESS || tmpState > SPECIAL)
+ tmpState = NOT_STARTED;
+
+ SetBossState(i, EncounterState(tmpState));
+ }
+ }
+ else
+ OUT_LOAD_INST_DATA_FAIL;
+
+ OUT_LOAD_INST_DATA_COMPLETE;
+ }
+
+ protected:
+ EventMap Events;
+ uint32 encounter[EncounterCount];
+ std::string m_strInstData;
+ uint64 HighlordOmokk;
+ uint64 ShadowHunterVoshgajin;
+ uint64 WarMasterVoone;
+ uint64 MotherSmolderweb;
+ uint64 UrokDoomhowl;
+ uint64 QuartermasterZigris;
+ uint64 GizrultheSlavener;
+ uint64 Halycon;
+ uint64 OverlordWyrmthalak;
+ uint64 PyroguardEmberseer;
+ uint64 WarchiefRendBlackhand;
+ uint64 Gyth;
+ uint64 LordVictorNefarius;
+ uint64 TheBeast;
+ uint64 GeneralDrakkisath;
+ uint64 go_emberseerin;
+ uint64 go_doors;
+ uint64 go_emberseerout;
+ uint64 go_blackrockaltar;
+ uint64 go_roomrunes[7];
+ uint64 go_emberseerrunes[7];
+ uint64 runecreaturelist[7][5];
+ uint64 go_portcullis_active;
+ uint64 go_portcullis_tobossrooms;
+ };
+
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
+ {
+ return new instance_blackrock_spireMapScript(map);
+ }
+};
+
+/*#####
+# at_dragonspire_hall
+#####*/
+
+class at_dragonspire_hall : public AreaTriggerScript
+{
+public:
+ at_dragonspire_hall() : AreaTriggerScript("at_dragonspire_hall") { }
+
+ bool OnTrigger(Player* player, const AreaTriggerEntry* /*at*/) OVERRIDE
+ {
+ if (player && player->IsAlive())
+ {
+ if (InstanceScript* instance = player->GetInstanceScript())
+ {
+ instance->SetData(AREATRIGGER, AREATRIGGER_DRAGONSPIRE_HALL);
+ return true;
+ }
+ }
+
+ return false;
+ }
+};
+
+/*#####
+# at_blackrock_stadium
+#####*/
+
+class at_blackrock_stadium : public AreaTriggerScript
+{
+public:
+ at_blackrock_stadium() : AreaTriggerScript("at_blackrock_stadium") { }
+
+ bool OnTrigger(Player* player, const AreaTriggerEntry* /*at*/) OVERRIDE
+ {
+ if (player && player->IsAlive())
+ {
+ InstanceScript* instance = player->GetInstanceScript();
+ if (!instance)
+ return false;
+
+ if (Creature* rend = player->FindNearestCreature(NPC_WARCHIEF_REND_BLACKHAND, 50.0f))
+ {
+ rend->AI()->SetData(AREATRIGGER, AREATRIGGER_BLACKROCK_STADIUM);
+ return true;
+ }
+ }
+
+ return false;
+ }
+};
+
+void AddSC_instance_blackrock_spire()
+{
+ new instance_blackrock_spire();
+ new at_dragonspire_hall();
+ new at_blackrock_stadium();
+}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/blackwing_lair.h b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/blackwing_lair.h
new file mode 100644
index 00000000000..acdbf0cd483
--- /dev/null
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/blackwing_lair.h
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef DEF_BLACKWING_LAIR_H
+#define DEF_BLACKWING_LAIR_H
+
+uint32 const EncounterCount = 8;
+
+#define BRLScriptName "instance_blackwing_lair"
+
+enum BWLEncounter
+{
+ BOSS_RAZORGORE = 0,
+ BOSS_VAELASTRAZ = 1,
+ BOSS_BROODLORD = 2,
+ BOSS_FIREMAW = 3,
+ BOSS_EBONROC = 4,
+ BOSS_FLAMEGOR = 5,
+ BOSS_CHROMAGGUS = 6,
+ BOSS_NEFARIAN = 7
+};
+
+enum CreatureIds
+{
+ NPC_RAZORGORE = 12435,
+ NPC_BLACKWING_DRAGON = 12422,
+ NPC_BLACKWING_TASKMASTER = 12458,
+ NPC_BLACKWING_LEGIONAIRE = 12416,
+ NPC_BLACKWING_WARLOCK = 12459,
+ NPC_VAELASTRAZ = 13020,
+ NPC_BROODLORD = 12017,
+ NPC_FIRENAW = 11983,
+ NPC_EBONROC = 14601,
+ NPC_FLAMEGOR = 11981,
+ NPC_CHROMAGGUS = 14020,
+ NPC_VICTOR_NEFARIUS = 10162,
+ NPC_NEFARIAN = 11583
+};
+
+enum BWLData64
+{
+ DATA_RAZORGORE_THE_UNTAMED = 1,
+ DATA_VAELASTRAZ_THE_CORRUPT,
+ DATA_BROODLORD_LASHLAYER,
+ DATA_FIRENAW,
+ DATA_EBONROC,
+ DATA_FLAMEGOR,
+ DATA_CHROMAGGUS,
+ DATA_LORD_VICTOR_NEFARIUS,
+ DATA_NEFARIAN
+};
+
+enum BWLEvents
+{
+ EVENT_RAZOR_SPAWN = 1,
+ EVENT_RAZOR_PHASE_TWO = 2,
+ EVENT_RESPAWN_NEFARIUS = 3
+};
+
+enum BWLMisc
+{
+ // Razorgore Egg Event
+ ACTION_PHASE_TWO = 1,
+ DATA_EGG_EVENT
+};
+
+#endif \ No newline at end of file
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_broodlord_lashlayer.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_broodlord_lashlayer.cpp
new file mode 100644
index 00000000000..c9dc3d8f134
--- /dev/null
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_broodlord_lashlayer.cpp
@@ -0,0 +1,126 @@
+/*
+ * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
+ * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "blackwing_lair.h"
+
+enum Say
+{
+ SAY_AGGRO = 0,
+ SAY_LEASH = 1
+};
+
+enum Spells
+{
+ SPELL_CLEAVE = 26350,
+ SPELL_BLASTWAVE = 23331,
+ SPELL_MORTALSTRIKE = 24573,
+ SPELL_KNOCKBACK = 25778
+};
+
+enum Events
+{
+ EVENT_CLEAVE = 1,
+ EVENT_BLASTWAVE = 2,
+ EVENT_MORTALSTRIKE = 3,
+ EVENT_KNOCKBACK = 4,
+ EVENT_CHECK = 5
+};
+
+class boss_broodlord : public CreatureScript
+{
+public:
+ boss_broodlord() : CreatureScript("boss_broodlord") { }
+
+ struct boss_broodlordAI : public BossAI
+ {
+ boss_broodlordAI(Creature* creature) : BossAI(creature, BOSS_BROODLORD) { }
+
+ void EnterCombat(Unit* /*who*/) OVERRIDE
+ {
+ if (instance->GetBossState(BOSS_VAELASTRAZ) != DONE)
+ {
+ EnterEvadeMode();
+ return;
+ }
+
+ _EnterCombat();
+ Talk(SAY_AGGRO);
+
+ events.ScheduleEvent(EVENT_CLEAVE, 8000);
+ events.ScheduleEvent(EVENT_BLASTWAVE, 12000);
+ events.ScheduleEvent(EVENT_MORTALSTRIKE, 20000);
+ events.ScheduleEvent(EVENT_KNOCKBACK, 30000);
+ events.ScheduleEvent(EVENT_CHECK, 1000);
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ if (!UpdateVictim())
+ return;
+
+ events.Update(diff);
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_CLEAVE:
+ DoCastVictim(SPELL_CLEAVE);
+ events.ScheduleEvent(EVENT_CLEAVE, 7000);
+ break;
+ case EVENT_BLASTWAVE:
+ DoCastVictim(SPELL_BLASTWAVE);
+ events.ScheduleEvent(EVENT_BLASTWAVE, urand(8000, 16000));
+ break;
+ case EVENT_MORTALSTRIKE:
+ DoCastVictim(SPELL_MORTALSTRIKE);
+ events.ScheduleEvent(EVENT_MORTALSTRIKE, urand(25000, 35000));
+ break;
+ case EVENT_KNOCKBACK:
+ DoCastVictim(SPELL_KNOCKBACK);
+ if (DoGetThreat(me->GetVictim()))
+ DoModifyThreatPercent(me->GetVictim(), -50);
+ events.ScheduleEvent(EVENT_KNOCKBACK, urand(15000, 30000));
+ break;
+ case EVENT_CHECK:
+ if (me->GetDistance(me->GetHomePosition()) > 150.0f)
+ {
+ Talk(SAY_LEASH);
+ EnterEvadeMode();
+ }
+ events.ScheduleEvent(EVENT_CHECK, 1000);
+ break;
+ }
+ }
+
+ DoMeleeAttackIfReady();
+ }
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new boss_broodlordAI(creature);
+ }
+};
+
+void AddSC_boss_broodlord()
+{
+ new boss_broodlord();
+}
diff --git a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_chromaggus.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp
index c7459ed2f7d..05effabe557 100644
--- a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_chromaggus.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp
@@ -16,15 +16,10 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-/* ScriptData
-SDName: Boss_Chromaggus
-SD%Complete: 95
-SDComment: Chromatic Mutation disabled due to lack of core support
-SDCategory: Blackwing Lair
-EndScriptData */
-
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
+#include "Player.h"
+#include "blackwing_lair.h"
enum Emotes
{
@@ -34,22 +29,22 @@ enum Emotes
enum Spells
{
- //These spells are actually called elemental shield
- //What they do is decrease all damage by 75% then they increase
- //One school of damage by 1100%
+ // These spells are actually called elemental shield
+ // What they do is decrease all damage by 75% then they increase
+ // One school of damage by 1100%
SPELL_FIRE_VULNERABILITY = 22277,
SPELL_FROST_VULNERABILITY = 22278,
SPELL_SHADOW_VULNERABILITY = 22279,
SPELL_NATURE_VULNERABILITY = 22280,
SPELL_ARCANE_VULNERABILITY = 22281,
- //Other spells
+ // Other spells
SPELL_INCINERATE = 23308, //Incinerate 23308, 23309
SPELL_TIMELAPSE = 23310, //Time lapse 23310, 23311(old threat mod that was removed in 2.01)
SPELL_CORROSIVEACID = 23313, //Corrosive Acid 23313, 23314
SPELL_IGNITEFLESH = 23315, //Ignite Flesh 23315, 23316
SPELL_FROSTBURN = 23187, //Frost burn 23187, 23189
- //Brood Affliction 23173 - Scripted Spell that cycles through all targets within 100 yards and has a chance to cast one of the afflictions on them
- //Since Scripted spells arn't coded I'll just write a function that does the same thing
+ // Brood Affliction 23173 - Scripted Spell that cycles through all targets within 100 yards and has a chance to cast one of the afflictions on them
+ // Since Scripted spells arn't coded I'll just write a function that does the same thing
SPELL_BROODAF_BLUE = 23153, //Blue affliction 23153
SPELL_BROODAF_BLACK = 23154, //Black affliction 23154
SPELL_BROODAF_RED = 23155, //Red affliction 23155 (23168 on death)
@@ -60,27 +55,31 @@ enum Spells
SPELL_ENRAGE = 28747
};
+enum Events
+{
+ EVENT_SHIMMER = 1,
+ EVENT_BREATH_1 = 2,
+ EVENT_BREATH_2 = 3,
+ EVENT_AFFLICTION = 4,
+ EVENT_FRENZY = 5
+};
+
class boss_chromaggus : public CreatureScript
{
public:
boss_chromaggus() : CreatureScript("boss_chromaggus") { }
- CreatureAI* GetAI(Creature* creature) const
- {
- return new boss_chromaggusAI (creature);
- }
-
- struct boss_chromaggusAI : public ScriptedAI
+ struct boss_chromaggusAI : public BossAI
{
- boss_chromaggusAI(Creature* creature) : ScriptedAI(creature)
+ boss_chromaggusAI(Creature* creature) : BossAI(creature, BOSS_CHROMAGGUS)
{
- //Select the 2 breaths that we are going to use until despawned
- //5 possiblities for the first breath, 4 for the second, 20 total possiblites
- //This way we don't end up casting 2 of the same breath
- //TL TL would be stupid
+ // Select the 2 breaths that we are going to use until despawned
+ // 5 possiblities for the first breath, 4 for the second, 20 total possiblites
+ // This way we don't end up casting 2 of the same breath
+ // TL TL would be stupid
switch (urand(0, 19))
{
- //B1 - Incin
+ // B1 - Incin
case 0:
Breath1_Spell = SPELL_INCINERATE;
Breath2_Spell = SPELL_TIMELAPSE;
@@ -98,7 +97,7 @@ public:
Breath2_Spell = SPELL_FROSTBURN;
break;
- //B1 - TL
+ // B1 - TL
case 4:
Breath1_Spell = SPELL_TIMELAPSE;
Breath2_Spell = SPELL_INCINERATE;
@@ -174,117 +173,97 @@ public:
EnterEvadeMode();
}
- uint32 Breath1_Spell;
- uint32 Breath2_Spell;
- uint32 CurrentVurln_Spell;
-
- uint32 Shimmer_Timer;
- uint32 Breath1_Timer;
- uint32 Breath2_Timer;
- uint32 Affliction_Timer;
- uint32 Frenzy_Timer;
- bool Enraged;
-
- void Reset()
+ void Reset() OVERRIDE
{
- CurrentVurln_Spell = 0; //We use this to store our last vulnerabilty spell so we can remove it later
-
- Shimmer_Timer = 0; //Time till we change vurlnerabilites
- Breath1_Timer = 30000; //First breath is 30 seconds
- Breath2_Timer = 60000; //Second is 1 minute so that we can alternate
- Affliction_Timer = 10000; //This is special - 5 seconds means that we cast this on 1 player every 5 sconds
- Frenzy_Timer = 15000;
+ _Reset();
+ CurrentVurln_Spell = 0; // We use this to store our last vulnerabilty spell so we can remove it later
Enraged = false;
}
- void EnterCombat(Unit* /*who*/) {}
-
- void UpdateAI(uint32 diff)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
- if (!UpdateVictim())
- return;
-
- //Shimmer_Timer Timer
- if (Shimmer_Timer <= diff)
+ if (instance && instance->GetBossState(BOSS_FLAMEGOR) != DONE)
{
- //Remove old vulnerabilty spell
- if (CurrentVurln_Spell)
- me->RemoveAurasDueToSpell(CurrentVurln_Spell);
-
- //Cast new random vulnerabilty on self
- uint32 spell = RAND(SPELL_FIRE_VULNERABILITY, SPELL_FROST_VULNERABILITY,
- SPELL_SHADOW_VULNERABILITY, SPELL_NATURE_VULNERABILITY, SPELL_ARCANE_VULNERABILITY);
+ EnterEvadeMode();
+ return;
+ }
+ _EnterCombat();
- DoCast(me, spell);
- CurrentVurln_Spell = spell;
+ events.ScheduleEvent(EVENT_SHIMMER, 0);
+ events.ScheduleEvent(EVENT_BREATH_1, 30000);
+ events.ScheduleEvent(EVENT_BREATH_2, 60000);
+ events.ScheduleEvent(EVENT_AFFLICTION, 10000);
+ events.ScheduleEvent(EVENT_FRENZY, 15000);
+ }
- Talk(EMOTE_SHIMMER);
- Shimmer_Timer = 45000;
- } else Shimmer_Timer -= diff;
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ if (!UpdateVictim())
+ return;
- //Breath1_Timer
- if (Breath1_Timer <= diff)
- {
- DoCast(me->getVictim(), Breath1_Spell);
- Breath1_Timer = 60000;
- } else Breath1_Timer -= diff;
+ events.Update(diff);
- //Breath2_Timer
- if (Breath2_Timer <= diff)
- {
- DoCast(me->getVictim(), Breath2_Spell);
- Breath2_Timer = 60000;
- } else Breath2_Timer -= diff;
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
- //Affliction_Timer
- if (Affliction_Timer <= diff)
+ while (uint32 eventId = events.ExecuteEvent())
{
- ThreatContainer::StorageType threatlist = me->getThreatManager().getThreatList();
- for (ThreatContainer::StorageType::const_iterator i = threatlist.begin(); i != threatlist.end(); ++i)
+ switch (eventId)
{
- if ((*i) && (*i)->getSource())
- {
- if (Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid()))
+ case EVENT_SHIMMER:
{
- //Cast affliction
- DoCast(unit, RAND(SPELL_BROODAF_BLUE, SPELL_BROODAF_BLACK,
- SPELL_BROODAF_RED, SPELL_BROODAF_BRONZE, SPELL_BROODAF_GREEN), true);
-
- //Chromatic mutation if target is effected by all afflictions
- if (unit->HasAura(SPELL_BROODAF_BLUE)
- && unit->HasAura(SPELL_BROODAF_BLACK)
- && unit->HasAura(SPELL_BROODAF_RED)
- && unit->HasAura(SPELL_BROODAF_BRONZE)
- && unit->HasAura(SPELL_BROODAF_GREEN))
+ // Remove old vulnerabilty spell
+ if (CurrentVurln_Spell)
+ me->RemoveAurasDueToSpell(CurrentVurln_Spell);
+
+ // Cast new random vulnerabilty on self
+ uint32 spell = RAND(SPELL_FIRE_VULNERABILITY, SPELL_FROST_VULNERABILITY, SPELL_SHADOW_VULNERABILITY, SPELL_NATURE_VULNERABILITY, SPELL_ARCANE_VULNERABILITY);
+ DoCast(me, spell);
+ CurrentVurln_Spell = spell;
+ Talk(EMOTE_SHIMMER);
+ events.ScheduleEvent(EVENT_SHIMMER, 45000);
+ break;
+ }
+ case EVENT_BREATH_1:
+ DoCastVictim(Breath1_Spell);
+ events.ScheduleEvent(EVENT_BREATH_1, 60000);
+ break;
+ case EVENT_BREATH_2:
+ DoCastVictim(Breath2_Spell);
+ events.ScheduleEvent(EVENT_BREATH_2, 60000);
+ break;
+ case EVENT_AFFLICTION:
+ {
+ Map::PlayerList const &players = me->GetMap()->GetPlayers();
+ for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
{
- //target->RemoveAllAuras();
- //DoCast(target, SPELL_CHROMATIC_MUT_1);
-
- //Chromatic mutation is causing issues
- //Assuming it is caused by a lack of core support for Charm
- //So instead we instant kill our target
-
- //WORKAROUND
- if (unit->GetTypeId() == TYPEID_PLAYER)
- unit->CastSpell(unit, 5, false);
+ if (Player* player = itr->GetSource()->ToPlayer())
+ {
+ DoCast(player, RAND(SPELL_BROODAF_BLUE, SPELL_BROODAF_BLACK, SPELL_BROODAF_RED, SPELL_BROODAF_BRONZE, SPELL_BROODAF_GREEN), true);
+
+ if (player->HasAura(SPELL_BROODAF_BLUE) &&
+ player->HasAura(SPELL_BROODAF_BLACK) &&
+ player->HasAura(SPELL_BROODAF_RED) &&
+ player->HasAura(SPELL_BROODAF_BRONZE) &&
+ player->HasAura(SPELL_BROODAF_GREEN))
+ {
+ DoCast(player, SPELL_CHROMATIC_MUT_1);
+ }
+
+ }
}
}
- }
+ events.ScheduleEvent(EVENT_AFFLICTION, 10000);
+ break;
+ case EVENT_FRENZY:
+ DoCast(me, SPELL_FRENZY);
+ events.ScheduleEvent(EVENT_FRENZY, urand(10000, 15000));
+ break;
}
+ }
- Affliction_Timer = 10000;
- } else Affliction_Timer -= diff;
-
- //Frenzy_Timer
- if (Frenzy_Timer <= diff)
- {
- DoCast(me, SPELL_FRENZY);
- Talk(EMOTE_FRENZY);
- Frenzy_Timer = urand(10000, 15000);
- } else Frenzy_Timer -= diff;
-
- //Enrage if not already enraged and below 20%
+ // Enrage if not already enraged and below 20%
if (!Enraged && HealthBelowPct(20))
{
DoCast(me, SPELL_ENRAGE);
@@ -293,7 +272,18 @@ public:
DoMeleeAttackIfReady();
}
+
+ private:
+ uint32 Breath1_Spell;
+ uint32 Breath2_Spell;
+ uint32 CurrentVurln_Spell;
+ bool Enraged;
};
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new boss_chromaggusAI(creature);
+ }
};
void AddSC_boss_chromaggus()
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_ebonroc.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_ebonroc.cpp
new file mode 100644
index 00000000000..0d79f3faeee
--- /dev/null
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_ebonroc.cpp
@@ -0,0 +1,102 @@
+/*
+ * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
+ * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "blackwing_lair.h"
+
+enum Spells
+{
+ SPELL_SHADOWFLAME = 22539,
+ SPELL_WINGBUFFET = 23339,
+ SPELL_SHADOWOFEBONROC = 23340
+};
+
+enum Events
+{
+ EVENT_SHADOWFLAME = 1,
+ EVENT_WINGBUFFET = 2,
+ EVENT_SHADOWOFEBONROC = 3
+};
+
+class boss_ebonroc : public CreatureScript
+{
+public:
+ boss_ebonroc() : CreatureScript("boss_ebonroc") { }
+
+ struct boss_ebonrocAI : public BossAI
+ {
+ boss_ebonrocAI(Creature* creature) : BossAI(creature, BOSS_EBONROC) { }
+
+ void EnterCombat(Unit* /*who*/) OVERRIDE
+ {
+ if (instance && instance->GetBossState(BOSS_BROODLORD) != DONE)
+ {
+ EnterEvadeMode();
+ return;
+ }
+ _EnterCombat();
+
+ events.ScheduleEvent(EVENT_SHADOWFLAME, urand(10000, 20000));
+ events.ScheduleEvent(EVENT_WINGBUFFET, 30000);
+ events.ScheduleEvent(EVENT_SHADOWOFEBONROC, urand(8000, 10000));
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ if (!UpdateVictim())
+ return;
+
+ events.Update(diff);
+
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_SHADOWFLAME:
+ DoCastVictim(SPELL_SHADOWFLAME);
+ events.ScheduleEvent(EVENT_SHADOWFLAME, urand(10000, 20000));
+ break;
+ case EVENT_WINGBUFFET:
+ DoCastVictim(SPELL_WINGBUFFET);
+ events.ScheduleEvent(EVENT_WINGBUFFET, 30000);
+ break;
+ case EVENT_SHADOWOFEBONROC:
+ DoCastVictim(SPELL_SHADOWOFEBONROC);
+ events.ScheduleEvent(EVENT_SHADOWOFEBONROC, urand(8000, 10000));
+ break;
+ }
+ }
+
+ DoMeleeAttackIfReady();
+ }
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new boss_ebonrocAI(creature);
+ }
+};
+
+void AddSC_boss_ebonroc()
+{
+ new boss_ebonroc();
+}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_firemaw.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_firemaw.cpp
new file mode 100644
index 00000000000..369e4e02f5a
--- /dev/null
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_firemaw.cpp
@@ -0,0 +1,104 @@
+/*
+ * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
+ * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "blackwing_lair.h"
+
+enum Spells
+{
+ SPELL_SHADOWFLAME = 22539,
+ SPELL_WINGBUFFET = 23339,
+ SPELL_FLAMEBUFFET = 23341
+};
+
+enum Events
+{
+ EVENT_SHADOWFLAME = 1,
+ EVENT_WINGBUFFET = 2,
+ EVENT_FLAMEBUFFET = 3
+};
+
+class boss_firemaw : public CreatureScript
+{
+public:
+ boss_firemaw() : CreatureScript("boss_firemaw") { }
+
+ struct boss_firemawAI : public BossAI
+ {
+ boss_firemawAI(Creature* creature) : BossAI(creature, BOSS_FIREMAW) { }
+
+ void EnterCombat(Unit* /*who*/) OVERRIDE
+ {
+ if (instance && instance->GetBossState(BOSS_BROODLORD) != DONE)
+ {
+ EnterEvadeMode();
+ return;
+ }
+ _EnterCombat();
+
+ events.ScheduleEvent(EVENT_SHADOWFLAME, urand(10000, 20000));
+ events.ScheduleEvent(EVENT_WINGBUFFET, 30000);
+ events.ScheduleEvent(EVENT_FLAMEBUFFET, 5000);
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ if (!UpdateVictim())
+ return;
+
+ events.Update(diff);
+
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_SHADOWFLAME:
+ DoCastVictim(SPELL_SHADOWFLAME);
+ events.ScheduleEvent(EVENT_SHADOWFLAME, urand(10000, 20000));
+ break;
+ case EVENT_WINGBUFFET:
+ DoCastVictim(SPELL_WINGBUFFET);
+ if (DoGetThreat(me->GetVictim()))
+ DoModifyThreatPercent(me->GetVictim(), -75);
+ events.ScheduleEvent(EVENT_WINGBUFFET, 30000);
+ break;
+ case EVENT_FLAMEBUFFET:
+ DoCastVictim(SPELL_FLAMEBUFFET);
+ events.ScheduleEvent(EVENT_FLAMEBUFFET, 5000);
+ break;
+ }
+ }
+
+ DoMeleeAttackIfReady();
+ }
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new boss_firemawAI(creature);
+ }
+};
+
+void AddSC_boss_firemaw()
+{
+ new boss_firemaw();
+}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_flamegor.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_flamegor.cpp
new file mode 100644
index 00000000000..060bfeb60b3
--- /dev/null
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_flamegor.cpp
@@ -0,0 +1,110 @@
+/*
+ * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
+ * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "blackwing_lair.h"
+
+enum Emotes
+{
+ EMOTE_FRENZY = 0,
+};
+
+enum Spells
+{
+ SPELL_SHADOWFLAME = 22539,
+ SPELL_WINGBUFFET = 23339,
+ SPELL_FRENZY = 23342 //This spell periodically triggers fire nova
+};
+
+enum Events
+{
+ EVENT_SHADOWFLAME = 1,
+ EVENT_WINGBUFFET = 2,
+ EVENT_FRENZY = 3
+};
+
+class boss_flamegor : public CreatureScript
+{
+public:
+ boss_flamegor() : CreatureScript("boss_flamegor") { }
+
+ struct boss_flamegorAI : public BossAI
+ {
+ boss_flamegorAI(Creature* creature) : BossAI(creature, BOSS_FLAMEGOR) { }
+
+ void EnterCombat(Unit* /*who*/) OVERRIDE
+ {
+ if (instance && instance->GetBossState(BOSS_BROODLORD) != DONE)
+ {
+ EnterEvadeMode();
+ return;
+ }
+ _EnterCombat();
+
+ events.ScheduleEvent(EVENT_SHADOWFLAME, urand(10000, 20000));
+ events.ScheduleEvent(EVENT_WINGBUFFET, 30000);
+ events.ScheduleEvent(EVENT_FRENZY, 10000);
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ if (!UpdateVictim())
+ return;
+
+ events.Update(diff);
+
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_SHADOWFLAME:
+ DoCastVictim(SPELL_SHADOWFLAME);
+ events.ScheduleEvent(EVENT_SHADOWFLAME, urand(10000, 20000));
+ break;
+ case EVENT_WINGBUFFET:
+ DoCastVictim(SPELL_WINGBUFFET);
+ if (DoGetThreat(me->GetVictim()))
+ DoModifyThreatPercent(me->GetVictim(), -75);
+ events.ScheduleEvent(EVENT_WINGBUFFET, 30000);
+ break;
+ case EVENT_FRENZY:
+ Talk(EMOTE_FRENZY);
+ DoCast(me, SPELL_FRENZY);
+ events.ScheduleEvent(EVENT_FRENZY, urand(8000, 10000));
+ break;
+ }
+ }
+
+ DoMeleeAttackIfReady();
+ }
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new boss_flamegorAI(creature);
+ }
+};
+
+void AddSC_boss_flamegor()
+{
+ new boss_flamegor();
+}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp
new file mode 100644
index 00000000000..d49cca2045f
--- /dev/null
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp
@@ -0,0 +1,584 @@
+/*
+ * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
+ * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "ScriptMgr.h"
+#include "ScriptedGossip.h"
+#include "ScriptedCreature.h"
+#include "blackwing_lair.h"
+#include "Player.h"
+
+enum Events
+{
+ // Victor Nefarius
+ EVENT_SPAWN_ADD = 1,
+ EVENT_SHADOW_BOLT = 2,
+ EVENT_FEAR = 3,
+ EVENT_MIND_CONTROL = 4,
+ // Nefarian
+ EVENT_SHADOWFLAME = 5,
+ EVENT_VEILOFSHADOW = 6,
+ EVENT_CLEAVE = 7,
+ EVENT_TAILLASH = 8,
+ EVENT_CLASSCALL = 9,
+ // UBRS
+ EVENT_CHAOS_1 = 10,
+ EVENT_CHAOS_2 = 11,
+ EVENT_PATH_2 = 12,
+ EVENT_PATH_3 = 13,
+ EVENT_SUCCESS_1 = 14,
+ EVENT_SUCCESS_2 = 15,
+ EVENT_SUCCESS_3 = 16,
+};
+
+enum Says
+{
+ // Nefarius
+ // UBRS
+ SAY_CHAOS_SPELL = 9,
+ SAY_SUCCESS = 10,
+ SAY_FAILURE = 11,
+ // BWL
+ SAY_GAMESBEGIN_1 = 12,
+ SAY_GAMESBEGIN_2 = 13,
+ // SAY_VAEL_INTRO = 14, Not used - when he corrupts Vaelastrasz
+
+ // Nefarian
+ SAY_RANDOM = 0,
+ SAY_RAISE_SKELETONS = 1,
+ SAY_SLAY = 2,
+ SAY_DEATH = 3,
+
+ SAY_MAGE = 4,
+ SAY_WARRIOR = 5,
+ SAY_DRUID = 6,
+ SAY_PRIEST = 7,
+ SAY_PALADIN = 8,
+ SAY_SHAMAN = 9,
+ SAY_WARLOCK = 10,
+ SAY_HUNTER = 11,
+ SAY_ROGUE = 12,
+ SAY_DEATH_KNIGHT = 13
+};
+
+enum Gossip
+{
+ GOSSIP_ID = 21332,
+ GOSSIP_OPTION_ID = 0
+};
+
+enum Paths
+{
+ NEFARIUS_PATH_2 = 1379671,
+ NEFARIUS_PATH_3 = 1379672
+};
+
+enum GameObjects
+{
+ GO_PORTCULLIS_ACTIVE = 164726,
+ GO_PORTCULLIS_TOBOSSROOMS = 175186
+};
+
+enum Creatures
+{
+ NPC_BRONZE_DRAKANOID = 14263,
+ NPC_BLUE_DRAKANOID = 14261,
+ NPC_RED_DRAKANOID = 14264,
+ NPC_GREEN_DRAKANOID = 14262,
+ NPC_BLACK_DRAKANOID = 14265,
+ NPC_CHROMATIC_DRAKANOID = 14302,
+ NPC_BONE_CONSTRUCT = 14605,
+ // UBRS
+ NPC_GYTH = 10339
+};
+
+enum Spells
+{
+ // Victor Nefarius
+ // UBRS Spells
+ SPELL_CHROMATIC_CHAOS = 16337, // Self Cast hits 10339
+ SPELL_VAELASTRASZZ_SPAWN = 16354, // Self Cast Depawn one sec after
+ // BWL Spells
+ SPELL_SHADOWBOLT = 22677,
+ SPELL_SHADOWBOLT_VOLLEY = 22665,
+ SPELL_SHADOW_COMMAND = 22667,
+ SPELL_FEAR = 22678,
+
+ SPELL_NEFARIANS_BARRIER = 22663,
+
+ // Nefarian
+ SPELL_SHADOWFLAME_INITIAL = 22992,
+ SPELL_SHADOWFLAME = 22539,
+ SPELL_BELLOWINGROAR = 22686,
+ SPELL_VEILOFSHADOW = 7068,
+ SPELL_CLEAVE = 20691,
+ SPELL_TAILLASH = 23364,
+
+ SPELL_MAGE = 23410, // wild magic
+ SPELL_WARRIOR = 23397, // beserk
+ SPELL_DRUID = 23398, // cat form
+ SPELL_PRIEST = 23401, // corrupted healing
+ SPELL_PALADIN = 23418, // syphon blessing
+ SPELL_SHAMAN = 23425, // totems
+ SPELL_WARLOCK = 23427, // infernals
+ SPELL_HUNTER = 23436, // bow broke
+ SPELL_ROGUE = 23414, // Paralise
+ SPELL_DEATH_KNIGHT = 49576 // Death Grip
+
+// 19484
+// 22664
+// 22674
+// 22666
+};
+
+Position const DrakeSpawnLoc[2] = // drakonid
+{
+ {-7591.151855f, -1204.051880f, 476.800476f, 3.0f},
+ {-7514.598633f, -1150.448853f, 476.796570f, 3.0f}
+};
+
+Position const NefarianLoc[2] =
+{
+ {-7449.763672f, -1387.816040f, 526.783691f, 3.0f}, // nefarian spawn
+ {-7535.456543f, -1279.562500f, 476.798706f, 3.0f} // nefarian move
+};
+
+uint32 const Entry[5] = {NPC_BRONZE_DRAKANOID, NPC_BLUE_DRAKANOID, NPC_RED_DRAKANOID, NPC_GREEN_DRAKANOID, NPC_BLACK_DRAKANOID};
+
+class boss_victor_nefarius : public CreatureScript
+{
+public:
+ boss_victor_nefarius() : CreatureScript("boss_victor_nefarius") { }
+
+ struct boss_victor_nefariusAI : public BossAI
+ {
+ boss_victor_nefariusAI(Creature* creature) : BossAI(creature, BOSS_NEFARIAN) { }
+
+ void Reset() OVERRIDE
+ {
+ if (me->GetMapId() == 469)
+ {
+ if (!me->FindNearestCreature(NPC_NEFARIAN, 1000.0f, true))
+ _Reset();
+ SpawnedAdds = 0;
+
+ me->SetVisible(true);
+ me->SetPhaseMask(1, true);
+ me->SetUInt32Value(UNIT_NPC_FLAGS, 1);
+ me->setFaction(35);
+ me->SetStandState(UNIT_STAND_STATE_SIT_HIGH_CHAIR);
+ me->RemoveAura(SPELL_NEFARIANS_BARRIER);
+ }
+ }
+
+ void JustReachedHome() OVERRIDE
+ {
+ Reset();
+ }
+
+ void BeginEvent(Player* target)
+ {
+ _EnterCombat();
+
+ Talk(SAY_GAMESBEGIN_2);
+
+ me->setFaction(103);
+ me->SetUInt32Value(UNIT_NPC_FLAGS, 0);
+ DoCast(me, SPELL_NEFARIANS_BARRIER);
+ me->SetStandState(UNIT_STAND_STATE_STAND);
+ AttackStart(target);
+ events.ScheduleEvent(EVENT_SHADOW_BOLT, urand(3000, 10000));
+ events.ScheduleEvent(EVENT_FEAR, urand(10000, 20000));
+ //events.ScheduleEvent(EVENT_MIND_CONTROL, urand(30000, 35000));
+ events.ScheduleEvent(EVENT_SPAWN_ADD, 10000);
+ }
+
+ void SummonedCreatureDies(Creature* summon, Unit* /*killer*/) OVERRIDE
+ {
+ if (summon->GetEntry() != NPC_NEFARIAN)
+ {
+ summon->UpdateEntry(NPC_BONE_CONSTRUCT);
+ summon->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ summon->SetReactState(REACT_PASSIVE);
+ summon->SetStandState(UNIT_STAND_STATE_DEAD);
+ }
+ }
+
+ void JustSummoned(Creature* /*summon*/) OVERRIDE {}
+
+ void SetData(uint32 type, uint32 data) OVERRIDE
+ {
+ if (instance && type == 1 && data == 1)
+ {
+ me->StopMoving();
+ events.ScheduleEvent(EVENT_PATH_2, 9000);
+ }
+
+ if (instance && type == 1 && data == 2)
+ {
+ events.ScheduleEvent(EVENT_SUCCESS_1, 5000);
+ }
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ if (!UpdateVictim())
+ {
+ events.Update(diff);
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_PATH_2:
+ me->GetMotionMaster()->MovePath(NEFARIUS_PATH_2, false);
+ events.ScheduleEvent(EVENT_CHAOS_1, 7000);
+ break;
+ case EVENT_CHAOS_1:
+ if (Creature* gyth = me->FindNearestCreature(NPC_GYTH, 75.0f, true))
+ {
+ me->SetFacingToObject(gyth);
+ Talk(SAY_CHAOS_SPELL);
+ }
+ events.ScheduleEvent(EVENT_CHAOS_2, 2000);
+ break;
+ case EVENT_CHAOS_2:
+ DoCast(SPELL_CHROMATIC_CHAOS);
+ me->SetFacingTo(1.570796f);
+ break;
+ case EVENT_SUCCESS_1:
+ if (Unit* player = me->SelectNearestPlayer(60.0f))
+ {
+ me->SetInFront(player);
+ me->SendMovementFlagUpdate();
+ Talk(SAY_SUCCESS);
+ if (GameObject* portcullis1 = me->FindNearestGameObject(GO_PORTCULLIS_ACTIVE, 65.0f))
+ portcullis1->SetGoState(GO_STATE_ACTIVE);
+ if (GameObject* portcullis2 = me->FindNearestGameObject(GO_PORTCULLIS_TOBOSSROOMS, 80.0f))
+ portcullis2->SetGoState(GO_STATE_ACTIVE);
+ }
+ events.ScheduleEvent(EVENT_SUCCESS_2, 4000);
+ break;
+ case EVENT_SUCCESS_2:
+ DoCast(me, SPELL_VAELASTRASZZ_SPAWN);
+ me->DespawnOrUnsummon(1000);
+ break;
+ case EVENT_PATH_3:
+ me->GetMotionMaster()->MovePath(NEFARIUS_PATH_3, false);
+ break;
+ default:
+ break;
+ }
+ }
+ return;
+ }
+
+ // Only do this if we haven't spawned nefarian yet
+ if (UpdateVictim() && SpawnedAdds <= 42)
+ {
+ events.Update(diff);
+
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_SHADOW_BOLT:
+ switch (urand(0, 1))
+ {
+ case 0:
+ DoCastVictim(SPELL_SHADOWBOLT_VOLLEY);
+ break;
+ case 1:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 40, true))
+ DoCast(target, SPELL_SHADOWBOLT);
+ break;
+ }
+ DoResetThreat();
+ events.ScheduleEvent(EVENT_SHADOW_BOLT, urand(3000, 10000));
+ break;
+ case EVENT_FEAR:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 40, true))
+ DoCast(target, SPELL_FEAR);
+ events.ScheduleEvent(EVENT_FEAR, urand(10000, 20000));
+ break;
+ case EVENT_MIND_CONTROL:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 40, true))
+ DoCast(target, SPELL_SHADOW_COMMAND);
+ events.ScheduleEvent(EVENT_MIND_CONTROL, urand(30000, 35000));
+ break;
+ case EVENT_SPAWN_ADD:
+ for (uint8 i=0; i<2; ++i)
+ {
+ uint32 CreatureID;
+ if (urand(0, 2) == 0)
+ CreatureID = NPC_CHROMATIC_DRAKANOID;
+ else
+ CreatureID = Entry[urand(0, 4)];
+ if (Creature* dragon = me->SummonCreature(CreatureID, DrakeSpawnLoc[i]))
+ {
+ dragon->setFaction(103);
+ dragon->AI()->AttackStart(me->GetVictim());
+ }
+
+ if (++SpawnedAdds >= 42)
+ {
+ if (Creature* nefarian = me->SummonCreature(NPC_NEFARIAN, NefarianLoc[0]))
+ {
+ nefarian->setActive(true);
+ nefarian->SetCanFly(true);
+ nefarian->SetDisableGravity(true);
+ nefarian->AI()->DoCastAOE(SPELL_SHADOWFLAME_INITIAL);
+ nefarian->GetMotionMaster()->MovePoint(1, NefarianLoc[1]);
+ }
+ events.CancelEvent(EVENT_MIND_CONTROL);
+ events.CancelEvent(EVENT_FEAR);
+ events.CancelEvent(EVENT_SHADOW_BOLT);
+ me->SetVisible(false);
+ return;
+ }
+ }
+ events.ScheduleEvent(EVENT_SPAWN_ADD, 4000);
+ break;
+ }
+ }
+ }
+ }
+
+ void sGossipSelect(Player* player, uint32 sender, uint32 action) OVERRIDE
+ {
+ if (sender == GOSSIP_ID && action == GOSSIP_OPTION_ID)
+ {
+ player->CLOSE_GOSSIP_MENU();
+ Talk(SAY_GAMESBEGIN_1);
+ BeginEvent(player);
+ }
+ }
+
+ private:
+ uint32 SpawnedAdds;
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new boss_victor_nefariusAI(creature);
+ }
+};
+
+class boss_nefarian : public CreatureScript
+{
+public:
+ boss_nefarian() : CreatureScript("boss_nefarian") { }
+
+ struct boss_nefarianAI : public BossAI
+ {
+ boss_nefarianAI(Creature* creature) : BossAI(creature, BOSS_NEFARIAN) { }
+
+ void Reset() OVERRIDE
+ {
+ Phase3 = false;
+ canDespawn = false;
+ DespawnTimer = 30000;
+ }
+
+ void JustReachedHome() OVERRIDE
+ {
+ canDespawn = true;
+ }
+
+ void EnterCombat(Unit* /*who*/) OVERRIDE
+ {
+ events.ScheduleEvent(EVENT_SHADOWFLAME, 12000);
+ events.ScheduleEvent(EVENT_FEAR, urand(25000, 35000));
+ events.ScheduleEvent(EVENT_VEILOFSHADOW, urand(25000, 35000));
+ events.ScheduleEvent(EVENT_CLEAVE, 7000);
+ //events.ScheduleEvent(EVENT_TAILLASH, 10000);
+ events.ScheduleEvent(EVENT_CLASSCALL, urand(30000, 35000));
+ Talk(SAY_RANDOM);
+ }
+
+ void JustDied(Unit* /*Killer*/) OVERRIDE
+ {
+ _JustDied();
+ Talk(SAY_DEATH);
+ }
+
+ void KilledUnit(Unit* victim) OVERRIDE
+ {
+ if (rand()%5)
+ return;
+
+ Talk(SAY_SLAY, victim->GetGUID());
+ }
+
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
+ {
+ if (type != POINT_MOTION_TYPE)
+ return;
+
+ if (id == 1)
+ {
+ me->SetInCombatWithZone();
+ if (me->GetVictim())
+ AttackStart(me->GetVictim());
+ }
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ if (canDespawn && DespawnTimer <= diff)
+ {
+ if (instance)
+ instance->SetBossState(BOSS_NEFARIAN, FAIL);
+
+ std::list<Creature*> constructList;
+ me->GetCreatureListWithEntryInGrid(constructList, NPC_BONE_CONSTRUCT, 500.0f);
+ for (std::list<Creature*>::const_iterator itr = constructList.begin(); itr != constructList.end(); ++itr)
+ (*itr)->DespawnOrUnsummon();
+
+ } else DespawnTimer -= diff;
+
+ if (!UpdateVictim())
+ return;
+
+ if (canDespawn)
+ canDespawn = false;
+
+ events.Update(diff);
+
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_SHADOWFLAME:
+ DoCastVictim(SPELL_SHADOWFLAME);
+ events.ScheduleEvent(EVENT_SHADOWFLAME, 12000);
+ break;
+ case EVENT_FEAR:
+ DoCastVictim(SPELL_BELLOWINGROAR);
+ events.ScheduleEvent(EVENT_FEAR, urand(25000, 35000));
+ break;
+ case EVENT_VEILOFSHADOW:
+ DoCastVictim(SPELL_VEILOFSHADOW);
+ events.ScheduleEvent(EVENT_VEILOFSHADOW, urand(25000, 35000));
+ break;
+ case EVENT_CLEAVE:
+ DoCastVictim(SPELL_CLEAVE);
+ events.ScheduleEvent(EVENT_CLEAVE, 7000);
+ break;
+ case EVENT_TAILLASH:
+ // Cast NYI since we need a better check for behind target
+ DoCastVictim(SPELL_TAILLASH);
+ events.ScheduleEvent(EVENT_TAILLASH, 10000);
+ break;
+ case EVENT_CLASSCALL:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100.0f, true))
+ switch (target->getClass())
+ {
+ case CLASS_MAGE:
+ Talk(SAY_MAGE);
+ DoCast(me, SPELL_MAGE);
+ break;
+ case CLASS_WARRIOR:
+ Talk(SAY_WARRIOR);
+ DoCast(me, SPELL_WARRIOR);
+ break;
+ case CLASS_DRUID:
+ Talk(SAY_DRUID);
+ DoCast(target, SPELL_DRUID);
+ break;
+ case CLASS_PRIEST:
+ Talk(SAY_PRIEST);
+ DoCast(me, SPELL_PRIEST);
+ break;
+ case CLASS_PALADIN:
+ Talk(SAY_PALADIN);
+ DoCast(me, SPELL_PALADIN);
+ break;
+ case CLASS_SHAMAN:
+ Talk(SAY_SHAMAN);
+ DoCast(me, SPELL_SHAMAN);
+ break;
+ case CLASS_WARLOCK:
+ Talk(SAY_WARLOCK);
+ DoCast(me, SPELL_WARLOCK);
+ break;
+ case CLASS_HUNTER:
+ Talk(SAY_HUNTER);
+ DoCast(me, SPELL_HUNTER);
+ break;
+ case CLASS_ROGUE:
+ Talk(SAY_ROGUE);
+ DoCast(me, SPELL_ROGUE);
+ break;
+ case CLASS_DEATH_KNIGHT:
+ Talk(SAY_DEATH_KNIGHT);
+ DoCast(me, SPELL_DEATH_KNIGHT);
+ break;
+ default:
+ break;
+ }
+ events.ScheduleEvent(EVENT_CLASSCALL, urand(30000, 35000));
+ break;
+ }
+ }
+
+ // Phase3 begins when health below 20 pct
+ if (!Phase3 && HealthBelowPct(20))
+ {
+ std::list<Creature*> constructList;
+ me->GetCreatureListWithEntryInGrid(constructList, NPC_BONE_CONSTRUCT, 500.0f);
+ for (std::list<Creature*>::const_iterator itr = constructList.begin(); itr != constructList.end(); ++itr)
+ if ((*itr) && !(*itr)->IsAlive())
+ {
+ (*itr)->Respawn();
+ (*itr)->SetInCombatWithZone();
+ (*itr)->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ (*itr)->SetReactState(REACT_AGGRESSIVE);
+ (*itr)->SetStandState(UNIT_STAND_STATE_STAND);
+ }
+
+ Phase3 = true;
+ Talk(SAY_RAISE_SKELETONS);
+ }
+
+ DoMeleeAttackIfReady();
+ }
+
+ private:
+ bool canDespawn;
+ uint32 DespawnTimer;
+ bool Phase3;
+
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new boss_nefarianAI(creature);
+ }
+};
+
+void AddSC_boss_nefarian()
+{
+ new boss_victor_nefarius();
+ new boss_nefarian();
+}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp
new file mode 100644
index 00000000000..be2aeb9e223
--- /dev/null
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp
@@ -0,0 +1,213 @@
+/*
+ * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
+ * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "SpellScript.h"
+#include "blackwing_lair.h"
+#include "Player.h"
+
+enum Say
+{
+ SAY_EGGS_BROKEN1 = 0,
+ SAY_EGGS_BROKEN2 = 1,
+ SAY_EGGS_BROKEN3 = 2,
+ SAY_DEATH = 3,
+};
+
+enum Spells
+{
+ SPELL_MINDCONTROL = 42013,
+ SPELL_CHANNEL = 45537,
+ SPELL_EGG_DESTROY = 19873,
+
+ SPELL_CLEAVE = 22540,
+ SPELL_WARSTOMP = 24375,
+ SPELL_FIREBALLVOLLEY = 22425,
+ SPELL_CONFLAGRATION = 23023
+};
+
+enum Summons
+{
+ NPC_ELITE_DRACHKIN = 12422,
+ NPC_ELITE_WARRIOR = 12458,
+ NPC_WARRIOR = 12416,
+ NPC_MAGE = 12420,
+ NPC_WARLOCK = 12459,
+
+ GO_EGG = 177807
+};
+
+enum EVENTS
+{
+ EVENT_CLEAVE = 1,
+ EVENT_STOMP = 2,
+ EVENT_FIREBALL = 3,
+ EVENT_CONFLAGRATION = 4
+};
+
+class boss_razorgore : public CreatureScript
+{
+public:
+ boss_razorgore() : CreatureScript("boss_razorgore") { }
+
+ struct boss_razorgoreAI : public BossAI
+ {
+ boss_razorgoreAI(Creature* creature) : BossAI(creature, BOSS_RAZORGORE) { }
+
+ void Reset() OVERRIDE
+ {
+ _Reset();
+
+ secondPhase = false;
+ if (instance)
+ instance->SetData(DATA_EGG_EVENT, NOT_STARTED);
+ }
+
+ void JustDied(Unit* /*killer*/) OVERRIDE
+ {
+ _JustDied();
+ Talk(SAY_DEATH);
+
+ if (instance)
+ instance->SetData(DATA_EGG_EVENT, NOT_STARTED);
+ }
+
+ void DoChangePhase()
+ {
+ events.ScheduleEvent(EVENT_CLEAVE, 15000);
+ events.ScheduleEvent(EVENT_STOMP, 35000);
+ events.ScheduleEvent(EVENT_FIREBALL, 7000);
+ events.ScheduleEvent(EVENT_CONFLAGRATION, 12000);
+
+ secondPhase = true;
+ me->RemoveAllAuras();
+ me->SetHealth(me->GetMaxHealth());
+ }
+
+ void DoAction(int32 action) OVERRIDE
+ {
+ if (action == ACTION_PHASE_TWO)
+ DoChangePhase();
+ }
+
+ void DamageTaken(Unit* /*who*/, uint32& damage) OVERRIDE
+ {
+ if (!secondPhase)
+ damage = 0;
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ if (!UpdateVictim())
+ return;
+
+ events.Update(diff);
+
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_CLEAVE:
+ DoCastVictim(SPELL_CLEAVE);
+ events.ScheduleEvent(EVENT_CLEAVE, urand(7000, 10000));
+ break;
+ case EVENT_STOMP:
+ DoCastVictim(SPELL_WARSTOMP);
+ events.ScheduleEvent(EVENT_STOMP, urand(15000, 25000));
+ break;
+ case EVENT_FIREBALL:
+ DoCastVictim(SPELL_FIREBALLVOLLEY);
+ events.ScheduleEvent(EVENT_FIREBALL, urand(12000, 15000));
+ break;
+ case EVENT_CONFLAGRATION:
+ DoCastVictim(SPELL_CONFLAGRATION);
+ if (me->GetVictim() && me->GetVictim()->HasAura(SPELL_CONFLAGRATION))
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 100, true))
+ me->TauntApply(target);
+ events.ScheduleEvent(EVENT_CONFLAGRATION, 30000);
+ break;
+ }
+ }
+ DoMeleeAttackIfReady();
+ }
+
+ private:
+ bool secondPhase;
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new boss_razorgoreAI(creature);
+ }
+};
+
+class go_orb_of_domination : public GameObjectScript
+{
+public:
+ go_orb_of_domination() : GameObjectScript("go_orb_of_domination") { }
+
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
+ {
+ if (InstanceScript* instance = go->GetInstanceScript())
+ if (instance->GetData(DATA_EGG_EVENT) != DONE)
+ if (Creature* razor = Unit::GetCreature(*go, instance ? instance->GetData64(DATA_RAZORGORE_THE_UNTAMED) : 0))
+ {
+ razor->Attack(player, true);
+ player->CastSpell(razor, SPELL_MINDCONTROL);
+ }
+ return true;
+ }
+};
+
+class spell_egg_event : public SpellScriptLoader
+{
+ public:
+ spell_egg_event() : SpellScriptLoader("spell_egg_event") { }
+
+ class spell_egg_eventSpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_egg_eventSpellScript);
+
+ void HandleOnHit()
+ {
+ if (InstanceScript* instance = GetCaster()->GetInstanceScript())
+ instance->SetData(DATA_EGG_EVENT, SPECIAL);
+ }
+
+ void Register() OVERRIDE
+ {
+ OnHit += SpellHitFn(spell_egg_eventSpellScript::HandleOnHit);
+ }
+ };
+
+ SpellScript* GetSpellScript() const OVERRIDE
+ {
+ return new spell_egg_eventSpellScript();
+ }
+};
+
+void AddSC_boss_razorgore()
+{
+ new boss_razorgore();
+ new go_orb_of_domination();
+ new spell_egg_event();
+}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp
new file mode 100644
index 00000000000..c595f3acaff
--- /dev/null
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp
@@ -0,0 +1,242 @@
+/*
+ * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
+ * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "blackwing_lair.h"
+#include "ScriptedGossip.h"
+#include "Player.h"
+
+enum Says
+{
+ SAY_LINE1 = 0,
+ SAY_LINE2 = 1,
+ SAY_LINE3 = 2,
+ SAY_HALFLIFE = 3,
+ SAY_KILLTARGET = 4
+};
+
+enum Gossip
+{
+ GOSSIP_ID = 21334,
+};
+
+enum Spells
+{
+ SPELL_ESSENCEOFTHERED = 23513,
+ SPELL_FLAMEBREATH = 23461,
+ SPELL_FIRENOVA = 23462,
+ SPELL_TAILSWIPE = 15847,
+ SPELL_BURNINGADRENALINE = 23620,
+ SPELL_CLEAVE = 20684 //Chain cleave is most likely named something different and contains a dummy effect
+};
+
+enum Events
+{
+ EVENT_SPEECH_1 = 1,
+ EVENT_SPEECH_2 = 2,
+ EVENT_SPEECH_3 = 3,
+ EVENT_SPEECH_4 = 4,
+ EVENT_ESSENCEOFTHERED = 5,
+ EVENT_FLAMEBREATH = 6,
+ EVENT_FIRENOVA = 7,
+ EVENT_TAILSWIPE = 8,
+ EVENT_CLEAVE = 9,
+ EVENT_BURNINGADRENALINE_CASTER = 10,
+ EVENT_BURNINGADRENALINE_TANK = 11
+};
+
+class boss_vaelastrasz : public CreatureScript
+{
+public:
+ boss_vaelastrasz() : CreatureScript("boss_vaelastrasz") { }
+
+ struct boss_vaelAI : public BossAI
+ {
+ boss_vaelAI(Creature* creature) : BossAI(creature, BOSS_VAELASTRAZ)
+ {
+ creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ creature->setFaction(35);
+ creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ }
+
+ void Reset() OVERRIDE
+ {
+ _Reset();
+
+ me->SetStandState(UNIT_STAND_STATE_DEAD);
+ PlayerGUID = 0;
+
+ HasYelled = false;
+ }
+
+ void EnterCombat(Unit* /*who*/) OVERRIDE
+ {
+ _EnterCombat();
+
+ DoCast(me, SPELL_ESSENCEOFTHERED);
+ me->SetHealth(me->CountPctFromMaxHealth(30));
+ // now drop damage requirement to be able to take loot
+ me->ResetPlayerDamageReq();
+
+ events.ScheduleEvent(EVENT_CLEAVE, 10000);
+ events.ScheduleEvent(EVENT_FLAMEBREATH, 15000);
+ events.ScheduleEvent(EVENT_FIRENOVA, 20000);
+ events.ScheduleEvent(EVENT_TAILSWIPE, 11000);
+ events.ScheduleEvent(EVENT_BURNINGADRENALINE_CASTER, 15000);
+ events.ScheduleEvent(EVENT_BURNINGADRENALINE_TANK, 45000);
+ }
+
+ void BeginSpeech(Unit* target)
+ {
+ PlayerGUID = target->GetGUID();
+ me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ events.ScheduleEvent(EVENT_SPEECH_1, 1000);
+ }
+
+ void KilledUnit(Unit* victim) OVERRIDE
+ {
+ if (rand()%5)
+ return;
+
+ Talk(SAY_KILLTARGET, victim->GetGUID());
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ events.Update(diff);
+
+ // Speech
+ if (!UpdateVictim())
+ {
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_SPEECH_1:
+ Talk(SAY_LINE1);
+ me->SetStandState(UNIT_STAND_STATE_STAND);
+ me->HandleEmoteCommand(EMOTE_ONESHOT_TALK);
+ events.ScheduleEvent(EVENT_SPEECH_2, 12000);
+ break;
+ case EVENT_SPEECH_2:
+ Talk(SAY_LINE2);
+ me->HandleEmoteCommand(EMOTE_ONESHOT_TALK);
+ events.ScheduleEvent(EVENT_SPEECH_3, 12000);
+ break;
+ case EVENT_SPEECH_3:
+ Talk(SAY_LINE3);
+ me->HandleEmoteCommand(EMOTE_ONESHOT_TALK);
+ events.ScheduleEvent(EVENT_SPEECH_4, 16000);
+ break;
+ case EVENT_SPEECH_4:
+ me->setFaction(103);
+ if (PlayerGUID && Unit::GetUnit(*me, PlayerGUID))
+ AttackStart(Unit::GetUnit(*me, PlayerGUID));;
+ break;
+ }
+ }
+ return;
+ }
+
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_CLEAVE:
+ events.ScheduleEvent(EVENT_CLEAVE, 15000);
+ DoCastVictim(SPELL_CLEAVE);
+ break;
+ case EVENT_FLAMEBREATH:
+ DoCastVictim(SPELL_FLAMEBREATH);
+ events.ScheduleEvent(EVENT_FLAMEBREATH, urand(8000, 14000));
+ break;
+ case EVENT_FIRENOVA:
+ DoCastVictim(SPELL_FIRENOVA);
+ events.ScheduleEvent(EVENT_FIRENOVA, 15000);
+ break;
+ case EVENT_TAILSWIPE:
+ //Only cast if we are behind
+ /*if (!me->HasInArc(M_PI, me->GetVictim()))
+ {
+ DoCast(me->GetVictim(), SPELL_TAILSWIPE);
+ }*/
+ events.ScheduleEvent(EVENT_TAILSWIPE, 15000);
+ break;
+ case EVENT_BURNINGADRENALINE_CASTER:
+ {
+ Unit* target = NULL;
+
+ uint8 i = 0;
+ while (i < 3) // max 3 tries to get a random target with power_mana
+ {
+ ++i;
+ target = SelectTarget(SELECT_TARGET_RANDOM, 1, 100, true); // not aggro leader
+ if (target && target->getPowerType() == POWER_MANA)
+ i = 3;
+ }
+ if (target) // cast on self (see below)
+ target->CastSpell(target, SPELL_BURNINGADRENALINE, true);
+ }
+ events.ScheduleEvent(EVENT_BURNINGADRENALINE_CASTER, 15000);
+ break;
+ case EVENT_BURNINGADRENALINE_TANK:
+ // have the victim cast the spell on himself otherwise the third effect aura will be applied to Vael instead of the player
+ me->GetVictim()->CastSpell(me->GetVictim(), SPELL_BURNINGADRENALINE, true);
+ events.ScheduleEvent(EVENT_BURNINGADRENALINE_TANK, 45000);
+ break;
+ }
+ }
+
+ // Yell if hp lower than 15%
+ if (HealthBelowPct(15) && !HasYelled)
+ {
+ Talk(SAY_HALFLIFE);
+ HasYelled = true;
+ }
+
+ DoMeleeAttackIfReady();
+ }
+
+ void sGossipSelect(Player* player, uint32 sender, uint32 action) OVERRIDE
+ {
+ if (sender == GOSSIP_ID && action == 0)
+ {
+ player->CLOSE_GOSSIP_MENU();
+ BeginSpeech(player);
+ }
+ }
+
+ private:
+ uint64 PlayerGUID;
+ bool HasYelled;
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new boss_vaelAI(creature);
+ }
+};
+
+void AddSC_boss_vaelastrasz()
+{
+ new boss_vaelastrasz();
+}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp
new file mode 100644
index 00000000000..d904e0a89f8
--- /dev/null
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp
@@ -0,0 +1,355 @@
+/*
+ * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "PassiveAI.h"
+#include "blackwing_lair.h"
+#include "Player.h"
+
+/*
+Blackwing Lair Encounter:
+1 - boss_razorgore.cpp
+2 - boss_vaelastrasz.cpp
+3 - boss_broodlord_lashlayer.cpp
+4 - boss_firemaw.cpp
+5 - boss_ebonroc.cpp
+6 - boss_flamegor.cpp
+7 - boss_chromaggus.cpp
+8 - boss_nefarian.cpp
+*/
+
+Position const SummonPosition[8] =
+{
+ {-7661.207520f, -1043.268188f, 407.199554f, 6.280452f},
+ {-7644.145020f, -1065.628052f, 407.204956f, 0.501492f},
+ {-7624.260742f, -1095.196899f, 407.205017f, 0.544694f},
+ {-7608.501953f, -1116.077271f, 407.199921f, 0.816443f},
+ {-7531.841797f, -1063.765381f, 407.199615f, 2.874187f},
+ {-7547.319336f, -1040.971924f, 407.205078f, 3.789175f},
+ {-7568.547852f, -1013.112488f, 407.204926f, 3.773467f},
+ {-7584.175781f, -989.6691289f, 407.199585f, 4.527447f},
+};
+
+uint32 const Entry[5] = {12422, 12458, 12416, 12420, 12459};
+
+class instance_blackwing_lair : public InstanceMapScript
+{
+public:
+ instance_blackwing_lair() : InstanceMapScript(BRLScriptName, 469) { }
+
+ struct instance_blackwing_lair_InstanceMapScript : public InstanceScript
+ {
+ instance_blackwing_lair_InstanceMapScript(Map* map) : InstanceScript(map)
+ {
+ SetBossNumber(EncounterCount);
+ }
+
+ void Initialize()
+ {
+ // Razorgore
+ EggCount = 0;
+ RazorgoreTheUntamedGUID = 0;
+ RazorgoreDoorGUID = 0;
+ EggList.clear();
+ // Vaelastrasz the Corrupt
+ VaelastraszTheCorruptGUID = 0;
+ VaelastraszDoorGUID = 0;
+ // Broodlord Lashlayer
+ BroodlordLashlayerGUID = 0;
+ BroodlordDoorGUID = 0;
+ // 3 Dragons
+ FiremawGUID = 0;
+ EbonrocGUID = 0;
+ FlamegorGUID = 0;
+ ChrommagusDoorGUID = 0;
+ // Chormaggus
+ ChromaggusGUID = 0;
+ NefarianDoorGUID = 0;
+ // Nefarian
+ LordVictorNefariusGUID = 0;
+ NefarianGUID = 0;
+ }
+
+ void OnCreatureCreate(Creature* creature)
+ {
+ switch (creature->GetEntry())
+ {
+ case NPC_RAZORGORE:
+ RazorgoreTheUntamedGUID = creature->GetGUID();
+ break;
+ case NPC_BLACKWING_DRAGON:
+ case NPC_BLACKWING_TASKMASTER:
+ case NPC_BLACKWING_LEGIONAIRE:
+ case NPC_BLACKWING_WARLOCK:
+ if (Creature* razor = instance->GetCreature(RazorgoreTheUntamedGUID))
+ razor->AI()->JustSummoned(creature);
+ break;
+ case NPC_VAELASTRAZ:
+ VaelastraszTheCorruptGUID = creature->GetGUID();
+ break;
+ case NPC_BROODLORD:
+ BroodlordLashlayerGUID = creature->GetGUID();
+ break;
+ case NPC_FIRENAW:
+ FiremawGUID = creature->GetGUID();
+ break;
+ case NPC_EBONROC:
+ EbonrocGUID = creature->GetGUID();
+ break;
+ case NPC_FLAMEGOR:
+ FlamegorGUID = creature->GetGUID();
+ break;
+ case NPC_CHROMAGGUS:
+ ChromaggusGUID = creature->GetGUID();
+ break;
+ case NPC_VICTOR_NEFARIUS:
+ LordVictorNefariusGUID = creature->GetGUID();
+ break;
+ case NPC_NEFARIAN:
+ NefarianGUID = creature->GetGUID();
+ break;
+ }
+ }
+
+ void OnGameObjectCreate(GameObject* go)
+ {
+ switch (go->GetEntry())
+ {
+ case 177807: // Egg
+ if (GetBossState(BOSS_FIREMAW) == DONE)
+ go->SetPhaseMask(2, true);
+ else
+ EggList.push_back(go->GetGUID());
+ break;
+ case 175946: // Door
+ RazorgoreDoorGUID = go->GetGUID();
+ HandleGameObject(0, GetBossState(BOSS_RAZORGORE) == DONE, go);
+ break;
+ case 175185: // Door
+ VaelastraszDoorGUID = go->GetGUID();
+ HandleGameObject(0, GetBossState(BOSS_VAELASTRAZ) == DONE, go);
+ break;
+ case 180424: // Door
+ BroodlordDoorGUID = go->GetGUID();
+ HandleGameObject(0, GetBossState(BOSS_BROODLORD) == DONE, go);
+ break;
+ case 185483: // Door
+ ChrommagusDoorGUID = go->GetGUID();
+ HandleGameObject(0, GetBossState(BOSS_FIREMAW) == DONE && GetBossState(BOSS_EBONROC) == DONE && GetBossState(BOSS_FLAMEGOR) == DONE, go);
+ break;
+ case 181125: // Door
+ NefarianDoorGUID = go->GetGUID();
+ HandleGameObject(0, GetBossState(BOSS_CHROMAGGUS) == DONE, go);
+ break;
+ }
+ }
+
+ void OnGameObjectRemove(GameObject* go)
+ {
+ if (go->GetEntry() == 177807) // Egg
+ EggList.remove(go->GetGUID());
+ }
+
+ bool SetBossState(uint32 type, EncounterState state)
+ {
+ if (!InstanceScript::SetBossState(type, state))
+ return false;
+
+ switch (type)
+ {
+ case BOSS_RAZORGORE:
+ HandleGameObject(RazorgoreDoorGUID, state == DONE);
+ if (state == DONE)
+ {
+ for (std::list<uint64>::const_iterator itr = EggList.begin(); itr != EggList.end(); ++itr)
+ if (GameObject* egg = instance->GetGameObject((*itr)))
+ egg->SetPhaseMask(2, true);
+ }
+ SetData(DATA_EGG_EVENT, NOT_STARTED);
+ break;
+ case BOSS_VAELASTRAZ:
+ HandleGameObject(VaelastraszDoorGUID, state == DONE);
+ break;
+ case BOSS_BROODLORD:
+ HandleGameObject(BroodlordDoorGUID, state == DONE);
+ break;
+ case BOSS_FIREMAW:
+ case BOSS_EBONROC:
+ case BOSS_FLAMEGOR:
+ HandleGameObject(ChrommagusDoorGUID, GetBossState(BOSS_FIREMAW) == DONE && GetBossState(BOSS_EBONROC) == DONE && GetBossState(BOSS_FLAMEGOR) == DONE);
+ break;
+ case BOSS_CHROMAGGUS:
+ HandleGameObject(NefarianDoorGUID, state == DONE);
+ break;
+ case BOSS_NEFARIAN:
+ switch (state)
+ {
+ case NOT_STARTED:
+ if (Creature* nefarian = instance->GetCreature(NefarianGUID))
+ nefarian->DespawnOrUnsummon();
+ break;
+ case FAIL:
+ _events.ScheduleEvent(EVENT_RESPAWN_NEFARIUS, 15*IN_MILLISECONDS*MINUTE);
+ SetBossState(BOSS_NEFARIAN, NOT_STARTED);
+ break;
+ default:
+ break;
+ }
+ break;
+ }
+ return true;
+ }
+
+ uint64 GetData64(uint32 id) const OVERRIDE
+ {
+ switch (id)
+ {
+ case DATA_RAZORGORE_THE_UNTAMED: return RazorgoreTheUntamedGUID;
+ case DATA_VAELASTRAZ_THE_CORRUPT: return VaelastraszTheCorruptGUID;
+ case DATA_BROODLORD_LASHLAYER: return BroodlordLashlayerGUID;
+ case DATA_FIRENAW: return FiremawGUID;
+ case DATA_EBONROC: return EbonrocGUID;
+ case DATA_FLAMEGOR: return FlamegorGUID;
+ case DATA_CHROMAGGUS: return ChromaggusGUID;
+ case DATA_LORD_VICTOR_NEFARIUS: return LordVictorNefariusGUID;
+ case DATA_NEFARIAN: return NefarianGUID;
+ }
+
+ return 0;
+ }
+
+ void SetData(uint32 type, uint32 data) OVERRIDE
+ {
+ if (type == DATA_EGG_EVENT)
+ {
+ switch (data)
+ {
+ case IN_PROGRESS:
+ _events.ScheduleEvent(EVENT_RAZOR_SPAWN, 45*IN_MILLISECONDS);
+ EggEvent = data;
+ EggCount = 0;
+ break;
+ case NOT_STARTED:
+ _events.CancelEvent(EVENT_RAZOR_SPAWN);
+ EggEvent = data;
+ EggCount = 0;
+ break;
+ case SPECIAL:
+ if (++EggCount == 15)
+ {
+ if (Creature* razor = instance->GetCreature(RazorgoreTheUntamedGUID))
+ {
+ SetData(DATA_EGG_EVENT, DONE);
+ razor->RemoveAurasDueToSpell(42013); // MindControl
+ DoRemoveAurasDueToSpellOnPlayers(42013);
+ }
+ _events.ScheduleEvent(EVENT_RAZOR_PHASE_TWO, IN_MILLISECONDS);
+ _events.CancelEvent(EVENT_RAZOR_SPAWN);
+ }
+ if (EggEvent == NOT_STARTED)
+ SetData(DATA_EGG_EVENT, IN_PROGRESS);
+ break;
+ }
+ }
+ }
+
+ void OnUnitDeath(Unit* unit)
+ {
+ //! HACK, needed because of buggy CreatureAI after charm
+ if (unit->GetEntry() == NPC_RAZORGORE && GetBossState(BOSS_RAZORGORE) != DONE)
+ SetBossState(BOSS_RAZORGORE, DONE);
+ }
+
+ void Update(uint32 diff)
+ {
+ if (_events.Empty())
+ return;
+
+ _events.Update(diff);
+
+ while (uint32 eventId = _events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_RAZOR_SPAWN:
+ for (uint8 i = urand(2, 5); i > 0 ; --i)
+ if (Creature* summon = instance->SummonCreature(Entry[urand(0, 4)], SummonPosition[urand(0, 7)]))
+ summon->SetInCombatWithZone();
+ _events.ScheduleEvent(EVENT_RAZOR_SPAWN, urand(12, 17)*IN_MILLISECONDS);
+ break;
+ case EVENT_RAZOR_PHASE_TWO:
+ _events.CancelEvent(EVENT_RAZOR_SPAWN);
+ if (Creature* razor = instance->GetCreature(RazorgoreTheUntamedGUID))
+ razor->AI()->DoAction(ACTION_PHASE_TWO);
+ break;
+ case EVENT_RESPAWN_NEFARIUS:
+ if (Creature* nefarius = instance->GetCreature(LordVictorNefariusGUID))
+ {
+ nefarius->SetPhaseMask(1, true);
+ nefarius->setActive(true);
+ nefarius->Respawn();
+ nefarius->GetMotionMaster()->MoveTargetedHome();
+ }
+ break;
+ }
+ }
+ }
+
+ protected:
+ // Misc
+ EventMap _events;
+ // Razorgore
+ uint8 EggCount;
+ uint32 EggEvent;
+ uint64 RazorgoreTheUntamedGUID;
+ uint64 RazorgoreDoorGUID;
+ std::list<uint64> EggList;
+
+ // Vaelastrasz the Corrupt
+ uint64 VaelastraszTheCorruptGUID;
+ uint64 VaelastraszDoorGUID;
+
+ // Broodlord Lashlayer
+ uint64 BroodlordLashlayerGUID;
+ uint64 BroodlordDoorGUID;
+
+ // 3 Dragons
+ uint64 FiremawGUID;
+ uint64 EbonrocGUID;
+ uint64 FlamegorGUID;
+ uint64 ChrommagusDoorGUID;
+
+ // Chormaggus
+ uint64 ChromaggusGUID;
+ uint64 NefarianDoorGUID;
+
+ // Nefarian
+ uint64 LordVictorNefariusGUID;
+ uint64 NefarianGUID;
+ };
+
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
+ {
+ return new instance_blackwing_lair_InstanceMapScript(map);
+ }
+};
+
+void AddSC_instance_blackwing_lair()
+{
+ new instance_blackwing_lair();
+}
diff --git a/src/server/scripts/EasternKingdoms/MoltenCore/boss_baron_geddon.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_baron_geddon.cpp
index 645322768e3..e9ac15147f9 100644
--- a/src/server/scripts/EasternKingdoms/MoltenCore/boss_baron_geddon.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_baron_geddon.cpp
@@ -59,7 +59,7 @@ class boss_baron_geddon : public CreatureScript
{
}
- void EnterCombat(Unit* victim)
+ void EnterCombat(Unit* victim) OVERRIDE
{
BossAI::EnterCombat(victim);
events.ScheduleEvent(EVENT_INFERNO, 45000);
@@ -67,7 +67,7 @@ class boss_baron_geddon : public CreatureScript
events.ScheduleEvent(EVENT_LIVING_BOMB, 35000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -113,9 +113,9 @@ class boss_baron_geddon : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_baron_geddonAI (creature);
+ return new boss_baron_geddonAI(creature);
}
};
diff --git a/src/server/scripts/EasternKingdoms/MoltenCore/boss_garr.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_garr.cpp
index aa563bf3180..5eabc11618b 100644
--- a/src/server/scripts/EasternKingdoms/MoltenCore/boss_garr.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_garr.cpp
@@ -57,14 +57,14 @@ class boss_garr : public CreatureScript
{
}
- void EnterCombat(Unit* victim)
+ void EnterCombat(Unit* victim) OVERRIDE
{
BossAI::EnterCombat(victim);
events.ScheduleEvent(EVENT_ANTIMAGIC_PULSE, 25000);
events.ScheduleEvent(EVENT_MAGMA_SHACKLES, 15000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -95,29 +95,29 @@ class boss_garr : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_garrAI(creature);
}
};
-class mob_firesworn : public CreatureScript
+class npc_firesworn : public CreatureScript
{
public:
- mob_firesworn() : CreatureScript("mob_firesworn") { }
+ npc_firesworn() : CreatureScript("npc_firesworn") { }
- struct mob_fireswornAI : public ScriptedAI
+ struct npc_fireswornAI : public ScriptedAI
{
- mob_fireswornAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_fireswornAI(Creature* creature) : ScriptedAI(creature) {}
uint32 immolateTimer;
- void Reset()
+ void Reset() OVERRIDE
{
immolateTimer = 4000; //These times are probably wrong
}
- void DamageTaken(Unit* /*attacker*/, uint32& damage)
+ void DamageTaken(Unit* /*attacker*/, uint32& damage) OVERRIDE
{
uint32 const health10pct = me->CountPctFromMaxHealth(10);
uint32 health = me->GetHealth();
@@ -129,7 +129,7 @@ class mob_firesworn : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -147,14 +147,14 @@ class mob_firesworn : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_fireswornAI(creature);
+ return new npc_fireswornAI(creature);
}
};
void AddSC_boss_garr()
{
new boss_garr();
- new mob_firesworn();
+ new npc_firesworn();
}
diff --git a/src/server/scripts/EasternKingdoms/MoltenCore/boss_gehennas.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_gehennas.cpp
index 9007d16d2f9..15079953a34 100644
--- a/src/server/scripts/EasternKingdoms/MoltenCore/boss_gehennas.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_gehennas.cpp
@@ -53,7 +53,7 @@ class boss_gehennas : public CreatureScript
{
}
- void EnterCombat(Unit* victim)
+ void EnterCombat(Unit* victim) OVERRIDE
{
BossAI::EnterCombat(victim);
events.ScheduleEvent(EVENT_GEHENNAS_CURSE, 12000);
@@ -61,7 +61,7 @@ class boss_gehennas : public CreatureScript
events.ScheduleEvent(EVENT_SHADOW_BOLT, 6000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -98,7 +98,7 @@ class boss_gehennas : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_gehennasAI(creature);
}
diff --git a/src/server/scripts/EasternKingdoms/MoltenCore/boss_golemagg.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_golemagg.cpp
index a21ca66543e..0fdb88923b3 100644
--- a/src/server/scripts/EasternKingdoms/MoltenCore/boss_golemagg.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_golemagg.cpp
@@ -63,19 +63,19 @@ class boss_golemagg : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
BossAI::Reset();
DoCast(me, SPELL_MAGMASPLASH, true);
}
- void EnterCombat(Unit* victim)
+ void EnterCombat(Unit* victim) OVERRIDE
{
BossAI::EnterCombat(victim);
events.ScheduleEvent(EVENT_PYROBLAST, 7000);
}
- void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/)
+ void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/) OVERRIDE
{
if (!HealthBelowPct(10) || me->HasAura(SPELL_ENRAGE))
return;
@@ -84,7 +84,7 @@ class boss_golemagg : public CreatureScript
events.ScheduleEvent(EVENT_EARTHQUAKE, 3000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -116,37 +116,37 @@ class boss_golemagg : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_golemaggAI(creature);
}
};
-class mob_core_rager : public CreatureScript
+class npc_core_rager : public CreatureScript
{
public:
- mob_core_rager() : CreatureScript("mob_core_rager") { }
+ npc_core_rager() : CreatureScript("npc_core_rager") { }
- struct mob_core_ragerAI : public ScriptedAI
+ struct npc_core_ragerAI : public ScriptedAI
{
- mob_core_ragerAI(Creature* creature) : ScriptedAI(creature)
+ npc_core_ragerAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
- void Reset()
+ void Reset() OVERRIDE
{
mangleTimer = 7*IN_MILLISECONDS; // These times are probably wrong
}
- void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/)
+ void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/) OVERRIDE
{
if (HealthAbovePct(50) || !instance)
return;
if (Creature* pGolemagg = instance->instance->GetCreature(instance->GetData64(BOSS_GOLEMAGG_THE_INCINERATOR)))
{
- if (pGolemagg->isAlive())
+ if (pGolemagg->IsAlive())
{
me->AddAura(SPELL_GOLEMAGG_TRUST, me);
Talk(EMOTE_LOWHP);
@@ -155,7 +155,7 @@ class mob_core_rager : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -163,7 +163,7 @@ class mob_core_rager : public CreatureScript
// Mangle
if (mangleTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_MANGLE);
+ DoCastVictim(SPELL_MANGLE);
mangleTimer = 10*IN_MILLISECONDS;
}
else
@@ -177,14 +177,14 @@ class mob_core_rager : public CreatureScript
uint32 mangleTimer;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_core_ragerAI(creature);
+ return new npc_core_ragerAI(creature);
}
};
void AddSC_boss_golemagg()
{
new boss_golemagg();
- new mob_core_rager();
+ new npc_core_rager();
}
diff --git a/src/server/scripts/EasternKingdoms/MoltenCore/boss_lucifron.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_lucifron.cpp
index cb91cfc3cae..31f4e40552f 100644
--- a/src/server/scripts/EasternKingdoms/MoltenCore/boss_lucifron.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_lucifron.cpp
@@ -53,7 +53,7 @@ class boss_lucifron : public CreatureScript
{
}
- void EnterCombat(Unit* victim)
+ void EnterCombat(Unit* victim) OVERRIDE
{
BossAI::EnterCombat(victim);
events.ScheduleEvent(EVENT_IMPENDING_DOOM, 10000);
@@ -61,7 +61,7 @@ class boss_lucifron : public CreatureScript
events.ScheduleEvent(EVENT_SHADOW_SHOCK, 6000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -96,7 +96,7 @@ class boss_lucifron : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_lucifronAI(creature);
}
diff --git a/src/server/scripts/EasternKingdoms/MoltenCore/boss_magmadar.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_magmadar.cpp
index c4b338d635d..7d40b9630ae 100644
--- a/src/server/scripts/EasternKingdoms/MoltenCore/boss_magmadar.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_magmadar.cpp
@@ -59,13 +59,13 @@ class boss_magmadar : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
BossAI::Reset();
DoCast(me, SPELL_MAGMA_SPIT, true);
}
- void EnterCombat(Unit* victim)
+ void EnterCombat(Unit* victim) OVERRIDE
{
BossAI::EnterCombat(victim);
events.ScheduleEvent(EVENT_FRENZY, 30000);
@@ -73,7 +73,7 @@ class boss_magmadar : public CreatureScript
events.ScheduleEvent(EVENT_LAVA_BOMB, 12000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -110,7 +110,7 @@ class boss_magmadar : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_magmadarAI(creature);
}
diff --git a/src/server/scripts/EasternKingdoms/MoltenCore/boss_majordomo_executus.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_majordomo_executus.cpp
index a221e2829dd..1001516d42e 100644
--- a/src/server/scripts/EasternKingdoms/MoltenCore/boss_majordomo_executus.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_majordomo_executus.cpp
@@ -78,13 +78,13 @@ class boss_majordomo : public CreatureScript
{
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
if (urand(0, 99) < 25)
Talk(SAY_SLAY);
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
BossAI::EnterCombat(who);
Talk(SAY_AGGRO);
@@ -94,7 +94,7 @@ class boss_majordomo : public CreatureScript
events.ScheduleEvent(EVENT_TELEPORT, 20000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (instance && instance->GetBossState(BOSS_MAJORDOMO_EXECUTUS) != DONE)
{
@@ -174,7 +174,7 @@ class boss_majordomo : public CreatureScript
}
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
if (action == ACTION_START_RAGNAROS)
{
@@ -191,21 +191,21 @@ class boss_majordomo : public CreatureScript
}
};
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SELECT, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
player->SEND_GOSSIP_MENU(GOSSIP_HELLO, creature->GetGUID());
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 /*action*/)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 /*action*/) OVERRIDE
{
player->CLOSE_GOSSIP_MENU();
creature->AI()->DoAction(ACTION_START_RAGNAROS);
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_majordomoAI(creature);
}
diff --git a/src/server/scripts/EasternKingdoms/MoltenCore/boss_ragnaros.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp
index 63764b5de01..d03f756f366 100644
--- a/src/server/scripts/EasternKingdoms/MoltenCore/boss_ragnaros.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp
@@ -87,7 +87,7 @@ class boss_ragnaros : public CreatureScript
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
}
- void Reset()
+ void Reset() OVERRIDE
{
BossAI::Reset();
_emergeTimer = 90000;
@@ -97,7 +97,7 @@ class boss_ragnaros : public CreatureScript
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
}
- void EnterCombat(Unit* victim)
+ void EnterCombat(Unit* victim) OVERRIDE
{
BossAI::EnterCombat(victim);
events.ScheduleEvent(EVENT_ERUPTION, 15000);
@@ -109,13 +109,13 @@ class boss_ragnaros : public CreatureScript
events.ScheduleEvent(EVENT_SUBMERGE, 180000);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
if (urand(0, 99) < 25)
Talk(SAY_KILL);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (_introState != 2)
{
@@ -223,7 +223,7 @@ class boss_ragnaros : public CreatureScript
events.ScheduleEvent(EVENT_ELEMENTAL_FIRE, urand(10000, 14000));
break;
case EVENT_MAGMA_BLAST:
- if (me->IsWithinMeleeRange(me->getVictim()))
+ if (me->IsWithinMeleeRange(me->GetVictim()))
{
DoCastVictim(SPELL_MAGMA_BLAST);
if (!_hasYelledMagmaBurst)
@@ -304,31 +304,31 @@ class boss_ragnaros : public CreatureScript
bool _isBanished;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_ragnarosAI(creature);
}
};
-class mob_son_of_flame : public CreatureScript
+class npc_son_of_flame : public CreatureScript
{
public:
- mob_son_of_flame() : CreatureScript("mob_SonOfFlame") { }
+ npc_son_of_flame() : CreatureScript("npc_SonOfFlame") { }
- struct mob_son_of_flameAI : public ScriptedAI //didnt work correctly in EAI for me...
+ struct npc_son_of_flameAI : public ScriptedAI //didnt work correctly in EAI for me...
{
- mob_son_of_flameAI(Creature* creature) : ScriptedAI(creature)
+ npc_son_of_flameAI(Creature* creature) : ScriptedAI(creature)
{
instance = me->GetInstanceScript();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
instance->SetData(DATA_RAGNAROS_ADDS, 1);
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -340,14 +340,14 @@ class mob_son_of_flame : public CreatureScript
InstanceScript* instance;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_son_of_flameAI(creature);
+ return new npc_son_of_flameAI(creature);
}
};
void AddSC_boss_ragnaros()
{
new boss_ragnaros();
- new mob_son_of_flame();
+ new npc_son_of_flame();
}
diff --git a/src/server/scripts/EasternKingdoms/MoltenCore/boss_shazzrah.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_shazzrah.cpp
index 435082b5a98..7c1d1af7d29 100644
--- a/src/server/scripts/EasternKingdoms/MoltenCore/boss_shazzrah.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_shazzrah.cpp
@@ -56,7 +56,7 @@ class boss_shazzrah : public CreatureScript
{
}
- void EnterCombat(Unit* target)
+ void EnterCombat(Unit* target) OVERRIDE
{
BossAI::EnterCombat(target);
events.ScheduleEvent(EVENT_ARCANE_EXPLOSION, 6000);
@@ -66,7 +66,7 @@ class boss_shazzrah : public CreatureScript
events.ScheduleEvent(EVENT_BLINK, 30000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -117,7 +117,7 @@ class boss_shazzrah : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_shazzrahAI(creature);
}
diff --git a/src/server/scripts/EasternKingdoms/MoltenCore/boss_sulfuron_harbinger.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_sulfuron_harbinger.cpp
index b4c2372a015..681f4f72bc6 100644
--- a/src/server/scripts/EasternKingdoms/MoltenCore/boss_sulfuron_harbinger.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_sulfuron_harbinger.cpp
@@ -67,7 +67,7 @@ class boss_sulfuron : public CreatureScript
{
}
- void EnterCombat(Unit* victim)
+ void EnterCombat(Unit* victim) OVERRIDE
{
BossAI::EnterCombat(victim);
events.ScheduleEvent(EVENT_DARK_STRIKE, 10000);
@@ -77,7 +77,7 @@ class boss_sulfuron : public CreatureScript
events.ScheduleEvent(EVENT_FLAMESPEAR, 2000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -127,34 +127,34 @@ class boss_sulfuron : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_sulfuronAI(creature);
}
};
-class mob_flamewaker_priest : public CreatureScript
+class npc_flamewaker_priest : public CreatureScript
{
public:
- mob_flamewaker_priest() : CreatureScript("mob_flamewaker_priest") { }
+ npc_flamewaker_priest() : CreatureScript("npc_flamewaker_priest") { }
- struct mob_flamewaker_priestAI : public ScriptedAI
+ struct npc_flamewaker_priestAI : public ScriptedAI
{
- mob_flamewaker_priestAI(Creature* creature) : ScriptedAI(creature)
+ npc_flamewaker_priestAI(Creature* creature) : ScriptedAI(creature)
{
}
- void Reset()
+ void Reset() OVERRIDE
{
events.Reset();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
events.Reset();
}
- void EnterCombat(Unit* victim)
+ void EnterCombat(Unit* victim) OVERRIDE
{
ScriptedAI::EnterCombat(victim);
events.ScheduleEvent(EVENT_HEAL, urand(15000, 30000));
@@ -162,7 +162,7 @@ class mob_flamewaker_priest : public CreatureScript
events.ScheduleEvent(EVENT_IMMOLATE, 8000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -203,14 +203,14 @@ class mob_flamewaker_priest : public CreatureScript
EventMap events;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_flamewaker_priestAI(creature);
+ return new npc_flamewaker_priestAI(creature);
}
};
void AddSC_boss_sulfuron()
{
new boss_sulfuron();
- new mob_flamewaker_priest();
+ new npc_flamewaker_priest();
}
diff --git a/src/server/scripts/EasternKingdoms/MoltenCore/instance_molten_core.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/instance_molten_core.cpp
index ec912440fa7..04e652b7f80 100644
--- a/src/server/scripts/EasternKingdoms/MoltenCore/instance_molten_core.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/instance_molten_core.cpp
@@ -106,7 +106,7 @@ class instance_molten_core : public InstanceMapScript
}
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
if (type == DATA_RAGNAROS_ADDS)
{
@@ -117,7 +117,7 @@ class instance_molten_core : public InstanceMapScript
}
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -128,7 +128,7 @@ class instance_molten_core : public InstanceMapScript
return 0;
}
- uint64 GetData64(uint32 type) const
+ uint64 GetData64(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -252,7 +252,7 @@ class instance_molten_core : public InstanceMapScript
bool _summonedExecutus;
};
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_molten_core_InstanceMapScript(map);
}
diff --git a/src/server/scripts/EasternKingdoms/MoltenCore/molten_core.h b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/molten_core.h
index 407e3ee5204..407e3ee5204 100644
--- a/src/server/scripts/EasternKingdoms/MoltenCore/molten_core.h
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/molten_core.h
diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_gyth.cpp b/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_gyth.cpp
deleted file mode 100644
index 667265cdba0..00000000000
--- a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_gyth.cpp
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
- * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "blackrock_spire.h"
-
-enum Spells
-{
- SPELL_CORROSIVE_ACID = 20667,
- SPELL_FREEZE = 18763,
- SPELL_FLAMEBREATH = 20712,
- SPELL_SELF_ROOT_FOREVER = 33356,
-};
-
-enum Adds
-{
- MODEL_REND_ON_DRAKE = 9723, /// @todo use creature_template 10459 instead of its modelid
- NPC_RAGE_TALON_FIRE_TONG = 10372,
- NPC_CHROMATIC_WHELP = 10442,
- NPC_CHROMATIC_DRAGONSPAWN = 10447,
- NPC_BLACKHAND_ELITE = 10317,
-};
-
-enum Events
-{
- EVENT_SUMMON_REND = 1,
- EVENT_AGGRO = 2,
- EVENT_SUMMON_DRAGON_PACK = 3,
- EVENT_SUMMON_ORC_PACK = 4,
- EVENT_CORROSIVE_ACID = 5,
- EVENT_FREEZE = 6,
- EVENT_FLAME_BREATH = 7,
-};
-
-class boss_gyth : public CreatureScript
-{
-public:
- boss_gyth() : CreatureScript("boss_gyth") { }
-
- struct boss_gythAI : public BossAI
- {
- boss_gythAI(Creature* creature) : BossAI(creature, DATA_GYTH)
- {
- DoCast(me, SPELL_SELF_ROOT_FOREVER);
- }
-
- bool SummonedRend;
-
- void Reset()
- {
- _Reset();
- SummonedRend = false;
- //Invisible for event start
- me->SetVisible(false);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- }
-
- void EnterCombat(Unit* /*who*/)
- {
- _EnterCombat();
- events.ScheduleEvent(EVENT_SUMMON_DRAGON_PACK, 3 * IN_MILLISECONDS);
- events.ScheduleEvent(EVENT_SUMMON_ORC_PACK, 60 * IN_MILLISECONDS);
- events.ScheduleEvent(EVENT_AGGRO, 60 * IN_MILLISECONDS);
- }
-
- void JustDied(Unit* /*killer*/)
- {
- _JustDied();
- }
-
- void SummonCreatureWithRandomTarget(uint32 creatureId, uint8 count)
- {
- for (uint8 n = 0; n < count; n++)
- if (Unit* Summoned = me->SummonCreature(creatureId, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 240 * IN_MILLISECONDS))
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 50.0f, true))
- Summoned->AddThreat(target, 250.0f);
- }
-
- void UpdateAI(uint32 diff)
- {
- if (!UpdateVictim())
- return;
-
- if (!SummonedRend && HealthBelowPct(11))
- {
- events.ScheduleEvent(EVENT_SUMMON_REND, 8 * IN_MILLISECONDS);
- SummonedRend = true;
- }
-
- events.Update(diff);
-
- if (me->HasUnitState(UNIT_STATE_CASTING))
- return;
-
- while (uint32 eventId = events.ExecuteEvent())
- {
- switch (eventId)
- {
- case EVENT_SUMMON_REND:
- // Summon Rend and Change model to normal Gyth
- // Interrupt any spell casting
- me->InterruptNonMeleeSpells(false);
- // Gyth model
- me->SetDisplayId(me->GetCreatureTemplate()->Modelid1);
- me->SummonCreature(NPC_WARCHIEF_REND_BLACKHAND, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 900 * IN_MILLISECONDS);
- events.ScheduleEvent(EVENT_CORROSIVE_ACID, 8 * IN_MILLISECONDS);
- events.ScheduleEvent(EVENT_FREEZE, 11 * IN_MILLISECONDS);
- events.ScheduleEvent(EVENT_FLAME_BREATH, 4 * IN_MILLISECONDS);
- events.CancelEvent(EVENT_SUMMON_REND);
- break;
- case EVENT_AGGRO:
- me->SetVisible(true);
- me->SetDisplayId(MODEL_REND_ON_DRAKE);
- me->setFaction(14);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- events.CancelEvent(EVENT_AGGRO);
- break;
- // Summon Dragon pack. 2 Dragons and 3 Whelps
- case EVENT_SUMMON_DRAGON_PACK:
- for (uint8 i = 0; i < urand(0, 3) + 2; ++i)
- {
- SummonCreatureWithRandomTarget(NPC_RAGE_TALON_FIRE_TONG, 2);
- SummonCreatureWithRandomTarget(NPC_CHROMATIC_WHELP, 3);
- }
- events.CancelEvent(EVENT_SUMMON_DRAGON_PACK);
- break;
- // Summon Orc pack. 1 Orc Handler 1 Elite Dragonkin and 3 Whelps
- case EVENT_SUMMON_ORC_PACK:
- for (uint8 i = 0; i < urand (0, 5) + 2; ++i)
- {
- SummonCreatureWithRandomTarget(NPC_CHROMATIC_DRAGONSPAWN, 1);
- SummonCreatureWithRandomTarget(NPC_BLACKHAND_ELITE, 1);
- SummonCreatureWithRandomTarget(NPC_CHROMATIC_WHELP, 3);
- }
- events.CancelEvent(EVENT_SUMMON_ORC_PACK);
- break;
- case EVENT_CORROSIVE_ACID:
- DoCast(me->getVictim(), SPELL_CORROSIVE_ACID);
- events.ScheduleEvent(EVENT_CORROSIVE_ACID, 7 * IN_MILLISECONDS);
- break;
- case EVENT_FREEZE:
- DoCast(me->getVictim(), SPELL_FREEZE);
- events.ScheduleEvent(EVENT_FREEZE, 16 * IN_MILLISECONDS);
- break;
- case EVENT_FLAME_BREATH:
- DoCast(me->getVictim(), SPELL_FLAMEBREATH);
- events.ScheduleEvent(EVENT_FLAME_BREATH, 10500);
- break;
- }
- }
- DoMeleeAttackIfReady();
- }
- };
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new boss_gythAI(creature);
- }
-};
-
-void AddSC_boss_gyth()
-{
- new boss_gyth();
-}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_highlord_omokk.cpp b/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_highlord_omokk.cpp
deleted file mode 100644
index 082e1f8e79b..00000000000
--- a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_highlord_omokk.cpp
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
- * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "blackrock_spire.h"
-
-enum Spells
-{
- SPELL_WARSTOMP = 24375,
- SPELL_CLEAVE = 15579,
- SPELL_STRIKE = 18368,
- SPELL_REND = 18106,
- SPELL_SUNDERARMOR = 24317,
- SPELL_KNOCKAWAY = 20686,
- SPELL_SLOW = 22356,
-};
-
-enum Events
-{
- EVENT_WARSTOMP = 1,
- EVENT_CLEAVE = 2,
- EVENT_STRIKE = 3,
- EVENT_REND = 4,
- EVENT_SUNDER_ARMOR = 5,
- EVENT_KNOCK_AWAY = 6,
- EVENT_SLOW = 7,
-};
-
-class boss_highlord_omokk : public CreatureScript
-{
-public:
- boss_highlord_omokk() : CreatureScript("boss_highlord_omokk") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new boss_highlordomokkAI(creature);
- }
-
- struct boss_highlordomokkAI : public BossAI
- {
- boss_highlordomokkAI(Creature* creature) : BossAI(creature, DATA_OMOKK) {}
-
- void Reset()
- {
- _Reset();
- }
-
- void EnterCombat(Unit* /*who*/)
- {
- _EnterCombat();
- events.ScheduleEvent(EVENT_WARSTOMP, 15 * IN_MILLISECONDS);
- events.ScheduleEvent(EVENT_CLEAVE, 6 * IN_MILLISECONDS);
- events.ScheduleEvent(EVENT_STRIKE, 10 * IN_MILLISECONDS);
- events.ScheduleEvent(EVENT_REND, 14 * IN_MILLISECONDS);
- events.ScheduleEvent(EVENT_SUNDER_ARMOR, 2 * IN_MILLISECONDS);
- events.ScheduleEvent(EVENT_KNOCK_AWAY, 18 * IN_MILLISECONDS);
- events.ScheduleEvent(EVENT_SLOW, 24 * IN_MILLISECONDS);
- }
-
- void JustDied(Unit* /*killer*/)
- {
- _JustDied();
- }
-
- void UpdateAI(uint32 diff)
- {
- if (!UpdateVictim())
- return;
-
- events.Update(diff);
-
- if (me->HasUnitState(UNIT_STATE_CASTING))
- return;
-
- while (uint32 eventId = events.ExecuteEvent())
- {
- switch (eventId)
- {
- case EVENT_WARSTOMP:
- DoCast(me->getVictim(), SPELL_WARSTOMP);
- events.ScheduleEvent(EVENT_WARSTOMP, 14 * IN_MILLISECONDS);
- break;
- case EVENT_CLEAVE:
- DoCast(me->getVictim(), SPELL_CLEAVE);
- events.ScheduleEvent(EVENT_CLEAVE, 8 * IN_MILLISECONDS);
- break;
- case EVENT_STRIKE:
- DoCast(me->getVictim(), SPELL_STRIKE);
- events.ScheduleEvent(EVENT_STRIKE, 10 * IN_MILLISECONDS);
- break;
- case EVENT_REND:
- DoCast(me->getVictim(), SPELL_REND);
- events.ScheduleEvent(EVENT_REND, 18 * IN_MILLISECONDS);
- break;
- case EVENT_SUNDER_ARMOR:
- DoCast(me->getVictim(), SPELL_SUNDERARMOR);
- events.ScheduleEvent(EVENT_SUNDER_ARMOR, 25 * IN_MILLISECONDS);
- break;
- case EVENT_KNOCK_AWAY:
- DoCast(me->getVictim(), SPELL_KNOCKAWAY);
- events.ScheduleEvent(EVENT_KNOCK_AWAY, 12 * IN_MILLISECONDS);
- break;
- case EVENT_SLOW:
- DoCast(me->getVictim(), SPELL_SLOW);
- events.ScheduleEvent(EVENT_SLOW, 18 * IN_MILLISECONDS);
- break;
- }
- }
- DoMeleeAttackIfReady();
- }
- };
-
-};
-
-void AddSC_boss_highlordomokk()
-{
- new boss_highlord_omokk();
-}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_pyroguard_emberseer.cpp b/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_pyroguard_emberseer.cpp
deleted file mode 100644
index 44a27e6938f..00000000000
--- a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_pyroguard_emberseer.cpp
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
- * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "blackrock_spire.h"
-
-enum Text
-{
- EMOTE_ONE_STACK = 0,
- EMOTE_TEN_STACK = 1,
- EMOTE_FREE_OF_BONDS = 2,
- YELL_FREE_OF_BONDS = 3
-};
-
-enum Spells
-{
- SPELL_ENCAGED_EMBERSEER = 15282, // Self on spawn
- SPELL_FIRE_SHIELD_TRIGGER = 13377, // Self on spawn missing from 335 dbc
- SPELL_FREEZE_ANIM = 16245, // Self on event start
- SPELL_EMBERSEER_GROWING = 16048, // Self on event start
- SPELL_EMBERSEER_FULL_STRENGTH = 16047, // Emberseer Full Strength
- SPELL_FIRENOVA = 23462, // Combat
- SPELL_FLAMEBUFFET = 23341, // Combat
- SPELL_PYROBLAST = 17274 // Combat
-};
-
-enum Events
-{
- EVENT_FIRENOVA = 1,
- EVENT_FLAMEBUFFET = 2,
- EVENT_PYROBLAST = 3
-};
-
-
-class boss_pyroguard_emberseer : public CreatureScript
-{
-public:
- boss_pyroguard_emberseer() : CreatureScript("boss_pyroguard_emberseer") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new boss_pyroguard_emberseerAI(creature);
- }
-
- struct boss_pyroguard_emberseerAI : public BossAI
- {
- boss_pyroguard_emberseerAI(Creature* creature) : BossAI(creature, DATA_PYROGAURD_EMBERSEER) {}
-
- void Reset()
- {
- if (instance->GetBossState(DATA_PYROGAURD_EMBERSEER) == IN_PROGRESS)
- OpenDoors(false);
- // respawn any dead Blackhand Incarcerators
- DoCast(me, SPELL_ENCAGED_EMBERSEER);
- //DoCast(me, SPELL_FIRE_SHIELD_TRIGGER);
- _Reset();
- }
-
- void EnterCombat(Unit* /*who*/)
- {
- _EnterCombat();
- events.ScheduleEvent(EVENT_FIRENOVA, 6 * IN_MILLISECONDS);
- events.ScheduleEvent(EVENT_FLAMEBUFFET, 3 * IN_MILLISECONDS);
- events.ScheduleEvent(EVENT_PYROBLAST, 14 * IN_MILLISECONDS);
- }
-
- void JustDied(Unit* /*killer*/)
- {
- OpenDoors(true);
- _JustDied();
- }
-
- void OpenDoors(bool Boss_Killed)
- {
- if (GameObject* door1 = me->GetMap()->GetGameObject(instance->GetData64(GO_EMBERSEER_IN)))
- door1->SetGoState(GO_STATE_ACTIVE);
- if (GameObject* door2 = me->GetMap()->GetGameObject(instance->GetData64(GO_DOORS)))
- door2->SetGoState(GO_STATE_ACTIVE);
- if (Boss_Killed)
- if (GameObject* door3 = me->GetMap()->GetGameObject(instance->GetData64(GO_EMBERSEER_OUT)))
- door3->SetGoState(GO_STATE_ACTIVE);
- }
-
- void UpdateAI(uint32 diff)
- {
- if (!UpdateVictim())
- return;
-
- events.Update(diff);
-
- if (me->HasUnitState(UNIT_STATE_CASTING))
- return;
-
- while (uint32 eventId = events.ExecuteEvent())
- {
- switch (eventId)
- {
- case EVENT_FIRENOVA:
- DoCastVictim(SPELL_FIRENOVA);
- events.ScheduleEvent(EVENT_FIRENOVA, 6 * IN_MILLISECONDS);
- break;
- case EVENT_FLAMEBUFFET:
- DoCastVictim(SPELL_FLAMEBUFFET);
- events.ScheduleEvent(EVENT_FLAMEBUFFET, 14 * IN_MILLISECONDS);
- break;
- case EVENT_PYROBLAST:
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
- DoCast(target, SPELL_PYROBLAST);
- events.ScheduleEvent(EVENT_PYROBLAST, 15 * IN_MILLISECONDS);
- break;
- }
- }
-
- DoMeleeAttackIfReady();
- }
- };
-};
-
-void AddSC_boss_pyroguard_emberseer()
-{
- new boss_pyroguard_emberseer();
-}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_rend_blackhand.cpp b/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_rend_blackhand.cpp
deleted file mode 100644
index b8d9377d7c4..00000000000
--- a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_rend_blackhand.cpp
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
- * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "blackrock_spire.h"
-
-enum Spells
-{
- SPELL_WHIRLWIND = 26038,
- SPELL_CLEAVE = 20691,
- SPELL_THUNDERCLAP = 23931, //Not sure if he cast this spell
-};
-
-enum Events
-{
- EVENT_WHIRLWIND = 1,
- EVENT_CLEAVE = 2,
- EVENT_THUNDERCLAP = 3,
-};
-
-class boss_rend_blackhand : public CreatureScript
-{
-public:
- boss_rend_blackhand() : CreatureScript("boss_rend_blackhand") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new boss_rend_blackhandAI(creature);
- }
-
- struct boss_rend_blackhandAI : public BossAI
- {
- boss_rend_blackhandAI(Creature* creature) : BossAI(creature, DATA_WARCHIEF_REND_BLACKHAND) {}
-
- void Reset()
- {
- _Reset();
- }
-
- void EnterCombat(Unit* /*who*/)
- {
- _EnterCombat();
- events.ScheduleEvent(EVENT_WHIRLWIND, 20 * IN_MILLISECONDS);
- events.ScheduleEvent(EVENT_CLEAVE, 5 * IN_MILLISECONDS);
- events.ScheduleEvent(EVENT_THUNDERCLAP, 9 * IN_MILLISECONDS);
- }
-
- void JustDied(Unit* /*killer*/)
- {
- _JustDied();
- }
-
- void UpdateAI(uint32 diff)
- {
- if (!UpdateVictim())
- return;
-
- events.Update(diff);
-
- if (me->HasUnitState(UNIT_STATE_CASTING))
- return;
-
- while (uint32 eventId = events.ExecuteEvent())
- {
- switch (eventId)
- {
- case EVENT_WHIRLWIND:
- DoCast(me->getVictim(), SPELL_WHIRLWIND);
- events.ScheduleEvent(EVENT_WHIRLWIND, 18 * IN_MILLISECONDS);
- break;
- case EVENT_CLEAVE:
- DoCast(me->getVictim(), SPELL_CLEAVE);
- events.ScheduleEvent(EVENT_CLEAVE, 10 * IN_MILLISECONDS);
- break;
- case EVENT_THUNDERCLAP:
- DoCast(me->getVictim(), SPELL_THUNDERCLAP);
- events.ScheduleEvent(EVENT_THUNDERCLAP, 16 * IN_MILLISECONDS);
- break;
- }
- }
- DoMeleeAttackIfReady();
- }
- };
-};
-
-void AddSC_boss_rend_blackhand()
-{
- new boss_rend_blackhand();
-}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/instance_blackrock_spire.cpp b/src/server/scripts/EasternKingdoms/BlackrockSpire/instance_blackrock_spire.cpp
deleted file mode 100644
index 06ba0036ef3..00000000000
--- a/src/server/scripts/EasternKingdoms/BlackrockSpire/instance_blackrock_spire.cpp
+++ /dev/null
@@ -1,329 +0,0 @@
-/*
- * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "blackrock_spire.h"
-
-class instance_blackrock_spire : public InstanceMapScript
-{
-public:
- instance_blackrock_spire() : InstanceMapScript("instance_blackrock_spire", 229) { }
-
- InstanceScript* GetInstanceScript(InstanceMap* map) const
- {
- return new instance_blackrock_spireMapScript(map);
- }
-
- struct instance_blackrock_spireMapScript : public InstanceScript
- {
- instance_blackrock_spireMapScript(InstanceMap* map) : InstanceScript(map) {}
-
- uint32 encounter[MAX_ENCOUNTER];
- std::string m_strInstData;
- uint64 HighlordOmokk;
- uint64 ShadowHunterVoshgajin;
- uint64 WarMasterVoone;
- uint64 MotherSmolderweb;
- uint64 UrokDoomhowl;
- uint64 QuartermasterZigris;
- uint64 GizrultheSlavener;
- uint64 Halycon;
- uint64 OverlordWyrmthalak;
- uint64 PyroguardEmberseer;
- uint64 WarchiefRendBlackhand;
- uint64 Gyth;
- uint64 TheBeast;
- uint64 GeneralDrakkisath;
- uint64 go_emberseerin;
- uint64 go_doors;
- uint64 go_emberseerout;
- uint64 go_roomrunes[MAX_DRAGONSPIRE_HALL_RUNES];
- uint8 Runemaxprotectors[MAX_DRAGONSPIRE_HALL_RUNES];
- uint8 Runeprotectorsdead[MAX_DRAGONSPIRE_HALL_RUNES];
-
- void Initialize()
- {
- SetBossNumber(MAX_ENCOUNTER);
- HighlordOmokk = 0;
- ShadowHunterVoshgajin = 0;
- WarMasterVoone = 0;
- MotherSmolderweb = 0;
- UrokDoomhowl = 0;
- QuartermasterZigris = 0;
- GizrultheSlavener = 0;
- Halycon = 0;
- OverlordWyrmthalak = 0;
- PyroguardEmberseer = 0;
- WarchiefRendBlackhand = 0;
- Gyth = 0;
- TheBeast = 0;
- GeneralDrakkisath = 0;
- go_emberseerin = 0;
- go_doors = 0;
- go_emberseerout = 0;
- }
-
- bool IsEncounterInProgress() const
- {
- for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
- {
- if (encounter[i] == IN_PROGRESS)
- return true;
- }
- return false;
- }
-
- void OnCreatureCreate(Creature* creature)
- {
- switch (creature->GetEntry())
- {
- case NPC_OMOKK:
- HighlordOmokk = creature->GetGUID();
- break;
- case NPC_SHADOW_HUNTER_VOSHGAJIN:
- ShadowHunterVoshgajin = creature->GetGUID();
- break;
- case NPC_WARMASTER_VOONE:
- WarMasterVoone = creature->GetGUID();
- break;
- case NPC_MOTHER_SMOLDERWEB:
- MotherSmolderweb = creature->GetGUID();
- break;
- case NPC_UROK_DOOMHOWL:
- UrokDoomhowl = creature->GetGUID();
- break;
- case NPC_QUARTERMASTER_ZIGRIS:
- QuartermasterZigris = creature->GetGUID();
- break;
- case NPC_GIZRUL_THE_SLAVENER:
- GizrultheSlavener = creature->GetGUID();
- break;
- case NPC_HALYCON:
- Halycon = creature->GetGUID();
- break;
- case NPC_OVERLORD_WYRMTHALAK:
- OverlordWyrmthalak = creature->GetGUID();
- break;
- case NPC_PYROGAURD_EMBERSEER:
- PyroguardEmberseer = creature->GetGUID();
- break;
- case NPC_WARCHIEF_REND_BLACKHAND:
- WarchiefRendBlackhand = creature->GetGUID();
- break;
- case NPC_GYTH:
- Gyth = creature->GetGUID();
- break;
- case NPC_THE_BEAST:
- TheBeast = creature->GetGUID();
- break;
- case NPC_GENERAL_DRAKKISATH:
- GeneralDrakkisath = creature->GetGUID();
- break;
- case NPC_BLACKHAND_DREADWEAVER:
- case NPC_BLACKHAND_SUMMONER:
- case NPC_BLACKHAND_VETERAN:
- break;
- }
- }
-
- void OnGameObjectCreate(GameObject* go)
- {
- switch (go->GetEntry())
- {
- case GO_WHELP_SPAWNER:
- go->CastSpell(NULL, SPELL_SUMMON_ROOKERY_WHELP);
- break;
- case GO_EMBERSEER_IN:
- go_emberseerin = go->GetGUID();
- break;
- case GO_DOORS:
- go_doors = go->GetGUID();
- break;
- case GO_EMBERSEER_OUT:
- go_emberseerout = go->GetGUID();
- break;
- case GO_ROOM_1_RUNE:
- go_roomrunes[0] = go->GetGUID();
- break;
- case GO_ROOM_2_RUNE:
- go_roomrunes[1] = go->GetGUID();
- break;
- case GO_ROOM_3_RUNE:
- go_roomrunes[2] = go->GetGUID();
- break;
- case GO_ROOM_4_RUNE:
- go_roomrunes[3] = go->GetGUID();
- break;
- case GO_ROOM_5_RUNE:
- go_roomrunes[4] = go->GetGUID();
- break;
- case GO_ROOM_6_RUNE:
- go_roomrunes[5] = go->GetGUID();
- break;
- case GO_ROOM_7_RUNE:
- go_roomrunes[6] = go->GetGUID();
- break;
- }
- }
-
- bool SetBossState(uint32 type, EncounterState state)
- {
- if (!InstanceScript::SetBossState(type, state))
- return false;
-
- switch (type)
- {
- case DATA_OMOKK:
- case DATA_SHADOW_HUNTER_VOSHGAJIN:
- case DATA_WARMASTER_VOONE:
- case DATA_MOTHER_SMOLDERWEB:
- case DATA_UROK_DOOMHOWL:
- case DATA_QUARTERMASTER_ZIGRIS:
- case DATA_GIZRUL_THE_SLAVENER:
- case DATA_HALYCON:
- case DATA_OVERLORD_WYRMTHALAK:
- case DATA_PYROGAURD_EMBERSEER:
- case DATA_WARCHIEF_REND_BLACKHAND:
- case DATA_GYTH:
- case DATA_THE_BEAST:
- case DATA_GENERAL_DRAKKISATH:
- break;
- default:
- break;
- }
-
- return true;
- }
-
- void ProcessEvent(WorldObject* /*gameObject*/, uint32 eventId)
- {
- switch (eventId)
- {
- case EVENT_PYROGUARD_EMBERSEER:
- if (GetBossState(DATA_PYROGAURD_EMBERSEER) == NOT_STARTED)
- SetBossState(DATA_PYROGAURD_EMBERSEER, IN_PROGRESS);
- break;
- default:
- break;
- }
- }
-
- uint64 GetData64(uint32 type) const
- {
- switch (type)
- {
- case DATA_OMOKK:
- return HighlordOmokk;
- case DATA_SHADOW_HUNTER_VOSHGAJIN:
- return ShadowHunterVoshgajin;
- case DATA_WARMASTER_VOONE:
- return WarMasterVoone;
- case DATA_MOTHER_SMOLDERWEB:
- return MotherSmolderweb;
- case DATA_UROK_DOOMHOWL:
- return UrokDoomhowl;
- case DATA_QUARTERMASTER_ZIGRIS:
- return QuartermasterZigris;
- case DATA_GIZRUL_THE_SLAVENER:
- return GizrultheSlavener;
- case DATA_HALYCON:
- return Halycon;
- case DATA_OVERLORD_WYRMTHALAK:
- return OverlordWyrmthalak;
- case DATA_PYROGAURD_EMBERSEER:
- return PyroguardEmberseer;
- case DATA_WARCHIEF_REND_BLACKHAND:
- return WarchiefRendBlackhand;
- case DATA_GYTH:
- return Gyth;
- case DATA_THE_BEAST:
- return TheBeast;
- case DATA_GENERAL_DRAKKISATH:
- return GeneralDrakkisath;
- case GO_EMBERSEER_IN:
- return go_emberseerin;
- case GO_DOORS:
- return go_doors;
- case GO_EMBERSEER_OUT:
- return go_emberseerout;
- case GO_ROOM_1_RUNE:
- return go_roomrunes[0];
- case GO_ROOM_2_RUNE:
- return go_roomrunes[1];
- case GO_ROOM_3_RUNE:
- return go_roomrunes[2];
- case GO_ROOM_4_RUNE:
- return go_roomrunes[3];
- case GO_ROOM_5_RUNE:
- return go_roomrunes[4];
- case GO_ROOM_6_RUNE:
- return go_roomrunes[5];
- case GO_ROOM_7_RUNE:
- return go_roomrunes[6];
- }
-
- return 0;
- }
-
- std::string GetSaveData()
- {
- OUT_SAVE_INST_DATA;
-
- std::ostringstream saveStream;
- saveStream << "B S " << GetBossSaveData();
-
- OUT_SAVE_INST_DATA_COMPLETE;
- return saveStream.str();
- }
-
- void Load(const char* strIn)
- {
- if (!strIn)
- {
- OUT_LOAD_INST_DATA_FAIL;
- return;
- }
-
- OUT_LOAD_INST_DATA(strIn);
-
- char dataHead1, dataHead2;
-
- std::istringstream loadStream(strIn);
- loadStream >> dataHead1 >> dataHead2;
-
- if (dataHead1 == 'B' && dataHead2 == 'S')
- {
- for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
- {
- uint32 tmpState;
- loadStream >> tmpState;
- if (tmpState == IN_PROGRESS || tmpState > SPECIAL)
- tmpState = NOT_STARTED;
- }
- }
-
- OUT_LOAD_INST_DATA_COMPLETE;
- }
- };
-
-};
-
-void AddSC_instance_blackrock_spire()
-{
- new instance_blackrock_spire();
-}
diff --git a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_broodlord_lashlayer.cpp b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_broodlord_lashlayer.cpp
deleted file mode 100644
index 73afebfa9f3..00000000000
--- a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_broodlord_lashlayer.cpp
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
- * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/* ScriptData
-SDName: Boss_Broodlord_Lashlayer
-SD%Complete: 100
-SDComment:
-SDCategory: Blackwing Lair
-EndScriptData */
-
-#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-
-enum Say
-{
- SAY_AGGRO = 0,
- SAY_LEASH = 1,
-};
-
-enum Events
-{
- EVENT_CLEAVE = 1,
- EVENT_MORTAL_STRIKE = 2,
- EVENT_BLAST_WAVE = 3,
- EVENT_KNOCK_BACK = 4,
-};
-
-enum Spells
-{
- SPELL_CLEAVE = 26350,
- SPELL_BLAST_WAVE = 23331,
- SPELL_MORTAL_STRIKE = 24573,
- SPELL_KNOCK_BACK = 25778
-};
-
-class boss_broodlord : public CreatureScript
-{
-public:
- boss_broodlord() : CreatureScript("boss_broodlord") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new boss_broodlordAI (creature);
- }
-
- struct boss_broodlordAI : public ScriptedAI
- {
- boss_broodlordAI(Creature* creature) : ScriptedAI(creature) {}
-
- void Reset()
- {
- // These timers are probably wrong
- events.ScheduleEvent(EVENT_CLEAVE, 8000);
- events.ScheduleEvent(EVENT_BLAST_WAVE, 12000);
- events.ScheduleEvent(EVENT_MORTAL_STRIKE, 20000);
- events.ScheduleEvent(EVENT_KNOCK_BACK, 30000);
- }
-
- void EnterCombat(Unit* /*who*/)
- {
- Talk(SAY_AGGRO);
- DoZoneInCombat();
- }
-
- void UpdateAI(uint32 diff)
- {
- if (!UpdateVictim())
- return;
-
- if (EnterEvadeIfOutOfCombatArea(diff))
- Talk(SAY_LEASH);
-
- if (me->HasUnitState(UNIT_STATE_CASTING))
- return;
-
- while (uint32 eventId = events.ExecuteEvent())
- {
- switch (eventId)
- {
- case EVENT_CLEAVE:
- DoCastVictim(SPELL_CLEAVE);
- events.ScheduleEvent(EVENT_CLEAVE, 8000);
- break;
- case EVENT_MORTAL_STRIKE:
- DoCastVictim(SPELL_MORTAL_STRIKE);
- events.ScheduleEvent(EVENT_MORTAL_STRIKE, 20000);
- break;
- case EVENT_BLAST_WAVE:
- DoCastVictim(SPELL_BLAST_WAVE);
- events.ScheduleEvent(EVENT_BLAST_WAVE, 12000);
- break;
- case EVENT_KNOCK_BACK:
- if (Unit* target = me->getVictim())
- {
- DoCast(target, SPELL_BLAST_WAVE);
- // Drop 50% of threat
- if (DoGetThreat(target))
- DoModifyThreatPercent(target, -50);
- }
- events.ScheduleEvent(EVENT_KNOCK_BACK, 30000);
- break;
- default:
- break;
- }
- }
-
- if (EnterEvadeIfOutOfCombatArea(diff))
- Talk(SAY_LEASH);
-
- DoMeleeAttackIfReady();
- }
-
- private:
- EventMap events; /// @todo: change BWL to instance script and bosses to BossAI
- };
-};
-
-void AddSC_boss_broodlord()
-{
- new boss_broodlord();
-}
diff --git a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_ebonroc.cpp b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_ebonroc.cpp
deleted file mode 100644
index d1670171d67..00000000000
--- a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_ebonroc.cpp
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
- * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/* ScriptData
-SDName: Boss_Ebonroc
-SD%Complete: 50
-SDComment: Shadow of Ebonroc needs core support
-SDCategory: Blackwing Lair
-EndScriptData */
-
-#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-
-#define SPELL_SHADOWFLAME 22539
-#define SPELL_WINGBUFFET 23339
-#define SPELL_SHADOWOFEBONROC 23340
-#define SPELL_HEAL 41386 //The Heal spell of his Shadow
-#define SPELL_THRASH 3391
-
-class boss_ebonroc : public CreatureScript
-{
-public:
- boss_ebonroc() : CreatureScript("boss_ebonroc") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new boss_ebonrocAI (creature);
- }
-
- struct boss_ebonrocAI : public ScriptedAI
- {
- boss_ebonrocAI(Creature* creature) : ScriptedAI(creature) {}
-
- uint32 ShadowFlame_Timer;
- uint32 WingBuffet_Timer;
- uint32 ShadowOfEbonroc_Timer;
- uint32 Heal_Timer;
- uint32 Thrash_Timer;
-
- void Reset()
- {
- ShadowFlame_Timer = 15000; //These times are probably wrong
- WingBuffet_Timer = 30000;
- ShadowOfEbonroc_Timer = 45000;
- Heal_Timer = 1000;
- Thrash_Timer = 10000;
- }
-
- void EnterCombat(Unit* /*who*/)
- {
- DoZoneInCombat();
- }
-
- void UpdateAI(uint32 diff)
- {
- if (!UpdateVictim())
- return;
-
- //Shadowflame Timer
- if (ShadowFlame_Timer <= diff)
- {
- DoCastVictim(SPELL_SHADOWFLAME);
- ShadowFlame_Timer = urand(12000, 15000);
- } else ShadowFlame_Timer -= diff;
-
- //Thrash Timer
- if (Thrash_Timer <= diff)
- {
- DoCastVictim(SPELL_THRASH);
- Thrash_Timer = urand(10000, 15000);
- } else Thrash_Timer -= diff;
-
- //Wing Buffet Timer
- if (WingBuffet_Timer <= diff)
- {
- DoCastVictim(SPELL_WINGBUFFET);
- WingBuffet_Timer = 25000;
- } else WingBuffet_Timer -= diff;
-
- //Shadow of Ebonroc Timer
- if (ShadowOfEbonroc_Timer <= diff)
- {
- DoCastVictim(SPELL_SHADOWOFEBONROC);
- ShadowOfEbonroc_Timer = urand(25000, 350000);
- } else ShadowOfEbonroc_Timer -= diff;
-
- if (me->getVictim() && me->getVictim()->HasAura(SPELL_SHADOWOFEBONROC))
- {
- if (Heal_Timer <= diff)
- {
- DoCast(me, SPELL_HEAL);
- Heal_Timer = urand(1000, 3000);
- } else Heal_Timer -= diff;
- }
-
- DoMeleeAttackIfReady();
- }
- };
-};
-
-void AddSC_boss_ebonroc()
-{
- new boss_ebonroc();
-}
diff --git a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_firemaw.cpp b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_firemaw.cpp
deleted file mode 100644
index 3b63d67814e..00000000000
--- a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_firemaw.cpp
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
- * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/* ScriptData
-SDName: Boss_Firemaw
-SD%Complete: 100
-SDComment:
-SDCategory: Blackwing Lair
-EndScriptData */
-
-#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-
-#define SPELL_SHADOWFLAME 22539
-#define SPELL_WINGBUFFET 23339
-#define SPELL_FLAMEBUFFET 23341
-
-class boss_firemaw : public CreatureScript
-{
-public:
- boss_firemaw() : CreatureScript("boss_firemaw") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new boss_firemawAI (creature);
- }
-
- struct boss_firemawAI : public ScriptedAI
- {
- boss_firemawAI(Creature* creature) : ScriptedAI(creature) {}
-
- uint32 ShadowFlame_Timer;
- uint32 WingBuffet_Timer;
- uint32 FlameBuffet_Timer;
-
- void Reset()
- {
- ShadowFlame_Timer = 30000; //These times are probably wrong
- WingBuffet_Timer = 24000;
- FlameBuffet_Timer = 5000;
- }
-
- void EnterCombat(Unit* /*who*/)
- {
- DoZoneInCombat();
- }
-
- void UpdateAI(uint32 diff)
- {
- if (!UpdateVictim())
- return;
-
- //ShadowFlame_Timer
- if (ShadowFlame_Timer <= diff)
- {
- DoCastVictim(SPELL_SHADOWFLAME);
- ShadowFlame_Timer = urand(15000, 18000);
- } else ShadowFlame_Timer -= diff;
-
- //WingBuffet_Timer
- if (WingBuffet_Timer <= diff)
- {
- if (Unit* target = me->getVictim())
- {
- DoCast(target, SPELL_WINGBUFFET);
- if (DoGetThreat(target))
- DoModifyThreatPercent(target, -75);
- }
- WingBuffet_Timer = 25000;
- } else WingBuffet_Timer -= diff;
-
- //FlameBuffet_Timer
- if (FlameBuffet_Timer <= diff)
- {
- DoCastVictim(SPELL_FLAMEBUFFET);
- FlameBuffet_Timer = 5000;
- } else FlameBuffet_Timer -= diff;
-
- DoMeleeAttackIfReady();
- }
- };
-};
-
-void AddSC_boss_firemaw()
-{
- new boss_firemaw();
-}
diff --git a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_flamegor.cpp b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_flamegor.cpp
deleted file mode 100644
index f90389bc4eb..00000000000
--- a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_flamegor.cpp
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
- * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/* ScriptData
-SDName: Boss_Flamegor
-SD%Complete: 100
-SDComment:
-SDCategory: Blackwing Lair
-EndScriptData */
-
-#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-
-enum Emotes
-{
- EMOTE_FRENZY = 0,
-};
-
-enum Spells
-{
- SPELL_SHADOWFLAME = 22539,
- SPELL_WINGBUFFET = 23339,
- SPELL_FRENZY = 23342 //This spell periodically triggers fire nova
-};
-
-class boss_flamegor : public CreatureScript
-{
-public:
- boss_flamegor() : CreatureScript("boss_flamegor") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new boss_flamegorAI (creature);
- }
-
- struct boss_flamegorAI : public ScriptedAI
- {
- boss_flamegorAI(Creature* creature) : ScriptedAI(creature) {}
-
- uint32 ShadowFlame_Timer;
- uint32 WingBuffet_Timer;
- uint32 Frenzy_Timer;
-
- void Reset()
- {
- ShadowFlame_Timer = 21000; //These times are probably wrong
- WingBuffet_Timer = 35000;
- Frenzy_Timer = 10000;
- }
-
- void EnterCombat(Unit* /*who*/)
- {
- DoZoneInCombat();
- }
-
- void UpdateAI(uint32 diff)
- {
- if (!UpdateVictim())
- return;
-
- //ShadowFlame_Timer
- if (ShadowFlame_Timer <= diff)
- {
- DoCastVictim(SPELL_SHADOWFLAME);
- ShadowFlame_Timer = urand(15000, 22000);
- } else ShadowFlame_Timer -= diff;
-
- //WingBuffet_Timer
- if (WingBuffet_Timer <= diff)
- {
- if (Unit* target = me->getVictim())
- {
- DoCast(target, SPELL_WINGBUFFET);
- if (DoGetThreat(target))
- DoModifyThreatPercent(target, -75);
- }
- WingBuffet_Timer = 25000;
- } else WingBuffet_Timer -= diff;
-
- //Frenzy_Timer
- if (Frenzy_Timer <= diff)
- {
- Talk(EMOTE_FRENZY);
- DoCast(me, SPELL_FRENZY);
- Frenzy_Timer = urand(8000, 10000);
- } else Frenzy_Timer -= diff;
-
- DoMeleeAttackIfReady();
- }
- };
-};
-
-void AddSC_boss_flamegor()
-{
- new boss_flamegor();
-}
diff --git a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_nefarian.cpp b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_nefarian.cpp
deleted file mode 100644
index f96d6c4a562..00000000000
--- a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_nefarian.cpp
+++ /dev/null
@@ -1,240 +0,0 @@
-/*
- * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
- * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/* ScriptData
-SDName: Boss_Nefarian
-SD%Complete: 80
-SDComment: Some issues with class calls effecting more than one class
-SDCategory: Blackwing Lair
-EndScriptData */
-
-#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-
-enum Say
-{
- SAY_RANDOM = 0,
- SAY_RAISE_SKELETONS = 1,
- SAY_SLAY = 2,
- SAY_DEATH = 3,
-
- SAY_MAGE = 4,
- SAY_WARRIOR = 5,
- SAY_DRUID = 6,
- SAY_PRIEST = 7,
- SAY_PALADIN = 8,
- SAY_SHAMAN = 9,
- SAY_WARLOCK = 10,
- SAY_HUNTER = 11,
- SAY_ROGUE = 12,
-};
-
-enum Spells
-{
- SPELL_SHADOWFLAME_INITIAL = 22972,
- SPELL_SHADOWFLAME = 22539,
- SPELL_BELLOWINGROAR = 22686,
- SPELL_VEILOFSHADOW = 7068,
- SPELL_CLEAVE = 20691,
- SPELL_TAILLASH = 23364,
- SPELL_BONECONTRUST = 23363, //23362, 23361
-
- SPELL_MAGE = 23410, //wild magic
- SPELL_WARRIOR = 23397, //beserk
- SPELL_DRUID = 23398, // cat form
- SPELL_PRIEST = 23401, // corrupted healing
- SPELL_PALADIN = 23418, //syphon blessing
- SPELL_SHAMAN = 23425, //totems
- SPELL_WARLOCK = 23427, //infernals
- SPELL_HUNTER = 23436, //bow broke
- SPELL_ROGUE = 23414 //Paralise
-};
-
-class boss_nefarian : public CreatureScript
-{
-public:
- boss_nefarian() : CreatureScript("boss_nefarian") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new boss_nefarianAI (creature);
- }
-
- struct boss_nefarianAI : public ScriptedAI
- {
- boss_nefarianAI(Creature* creature) : ScriptedAI(creature) {}
-
- uint32 ShadowFlame_Timer;
- uint32 BellowingRoar_Timer;
- uint32 VeilOfShadow_Timer;
- uint32 Cleave_Timer;
- uint32 TailLash_Timer;
- uint32 ClassCall_Timer;
- bool Phase3;
-
- uint32 DespawnTimer;
-
- void Reset()
- {
- ShadowFlame_Timer = 12000; // These times are probably wrong
- BellowingRoar_Timer = 30000;
- VeilOfShadow_Timer = 15000;
- Cleave_Timer = 7000;
- TailLash_Timer = 10000;
- ClassCall_Timer = 35000; // 35-40 seconds
- Phase3 = false;
-
- DespawnTimer = 5000;
- }
-
- void KilledUnit(Unit* Victim)
- {
- if (rand()%5)
- return;
-
- Talk(SAY_SLAY, Victim->GetGUID());
- }
-
- void JustDied(Unit* /*killer*/)
- {
- Talk(SAY_DEATH);
- }
-
- void EnterCombat(Unit* who)
- {
- Talk(SAY_RANDOM);
-
- DoCast(who, SPELL_SHADOWFLAME_INITIAL);
- DoZoneInCombat();
- }
-
- void UpdateAI(uint32 diff)
- {
- if (DespawnTimer <= diff)
- {
- if (!UpdateVictim())
- me->DespawnOrUnsummon();
- DespawnTimer = 5000;
- } else DespawnTimer -= diff;
-
- if (!UpdateVictim())
- return;
-
- //ShadowFlame_Timer
- if (ShadowFlame_Timer <= diff)
- {
- DoCast(me->getVictim(), SPELL_SHADOWFLAME);
- ShadowFlame_Timer = 12000;
- } else ShadowFlame_Timer -= diff;
-
- //BellowingRoar_Timer
- if (BellowingRoar_Timer <= diff)
- {
- DoCast(me->getVictim(), SPELL_BELLOWINGROAR);
- BellowingRoar_Timer = 30000;
- } else BellowingRoar_Timer -= diff;
-
- //VeilOfShadow_Timer
- if (VeilOfShadow_Timer <= diff)
- {
- DoCast(me->getVictim(), SPELL_VEILOFSHADOW);
- VeilOfShadow_Timer = 15000;
- } else VeilOfShadow_Timer -= diff;
-
- //Cleave_Timer
- if (Cleave_Timer <= diff)
- {
- DoCast(me->getVictim(), SPELL_CLEAVE);
- Cleave_Timer = 7000;
- } else Cleave_Timer -= diff;
-
- //TailLash_Timer
- if (TailLash_Timer <= diff)
- {
- //Cast NYI since we need a better check for behind target
- //DoCast(me->getVictim(), SPELL_TAILLASH);
-
- TailLash_Timer = 10000;
- } else TailLash_Timer -= diff;
-
- //ClassCall_Timer
- if (ClassCall_Timer <= diff)
- {
- //Cast a random class call
- //On official it is based on what classes are currently on the hostil list
- //but we can't do that yet so just randomly call one
-
- switch (urand(0, 8))
- {
- case 0:
- Talk(SAY_MAGE);
- DoCast(me, SPELL_MAGE);
- break;
- case 1:
- Talk(SAY_WARRIOR);
- DoCast(me, SPELL_WARRIOR);
- break;
- case 2:
- Talk(SAY_DRUID);
- DoCast(me, SPELL_DRUID);
- break;
- case 3:
- Talk(SAY_PRIEST);
- DoCast(me, SPELL_PRIEST);
- break;
- case 4:
- Talk(SAY_PALADIN);
- DoCast(me, SPELL_PALADIN);
- break;
- case 5:
- Talk(SAY_SHAMAN);
- DoCast(me, SPELL_SHAMAN);
- break;
- case 6:
- Talk(SAY_WARLOCK);
- DoCast(me, SPELL_WARLOCK);
- break;
- case 7:
- Talk(SAY_HUNTER);
- DoCast(me, SPELL_HUNTER);
- break;
- case 8:
- Talk(SAY_ROGUE);
- DoCast(me, SPELL_ROGUE);
- break;
- }
-
- ClassCall_Timer = 35000 + (rand() % 5000);
- } else ClassCall_Timer -= diff;
-
- //Phase3 begins when we are below X health
- if (!Phase3 && HealthBelowPct(20))
- {
- Phase3 = true;
- Talk(SAY_RAISE_SKELETONS);
- }
-
- DoMeleeAttackIfReady();
- }
- };
-};
-
-void AddSC_boss_nefarian()
-{
- new boss_nefarian();
-}
diff --git a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_razorgore.cpp b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_razorgore.cpp
deleted file mode 100644
index ebf6298b79d..00000000000
--- a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_razorgore.cpp
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
- * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/* ScriptData
-SDName: Boss_Razorgore
-SD%Complete: 50
-SDComment: Needs additional review. Phase 1 NYI (Grethok the Controller)
-SDCategory: Blackwing Lair
-EndScriptData */
-
-#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-
-//Razorgore Phase 2 Script
-
-enum Say
-{
- SAY_EGGS_BROKEN1 = 0,
- SAY_EGGS_BROKEN2 = 1,
- SAY_EGGS_BROKEN3 = 2,
- SAY_DEATH = 3,
-};
-
-enum Spells
-{
- SPELL_CLEAVE = 22540,
- SPELL_WARSTOMP = 24375,
- SPELL_FIREBALLVOLLEY = 22425,
- SPELL_CONFLAGRATION = 23023
-};
-
-class boss_razorgore : public CreatureScript
-{
-public:
- boss_razorgore() : CreatureScript("boss_razorgore") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new boss_razorgoreAI (creature);
- }
-
- struct boss_razorgoreAI : public ScriptedAI
- {
- boss_razorgoreAI(Creature* creature) : ScriptedAI(creature) {}
-
- uint32 Cleave_Timer;
- uint32 WarStomp_Timer;
- uint32 FireballVolley_Timer;
- uint32 Conflagration_Timer;
-
- void Reset()
- {
- Cleave_Timer = 15000; //These times are probably wrong
- WarStomp_Timer = 35000;
- FireballVolley_Timer = 7000;
- Conflagration_Timer = 12000;
- }
-
- void EnterCombat(Unit* /*who*/)
- {
- DoZoneInCombat();
- }
-
- void JustDied(Unit* /*killer*/)
- {
- Talk(SAY_DEATH);
- }
-
- void UpdateAI(uint32 diff)
- {
- if (!UpdateVictim())
- return;
-
- //Cleave_Timer
- if (Cleave_Timer <= diff)
- {
- DoCast(me->getVictim(), SPELL_CLEAVE);
- Cleave_Timer = urand(7000, 10000);
- } else Cleave_Timer -= diff;
-
- //WarStomp_Timer
- if (WarStomp_Timer <= diff)
- {
- DoCast(me->getVictim(), SPELL_WARSTOMP);
- WarStomp_Timer = urand(15000, 25000);
- } else WarStomp_Timer -= diff;
-
- //FireballVolley_Timer
- if (FireballVolley_Timer <= diff)
- {
- DoCast(me->getVictim(), SPELL_FIREBALLVOLLEY);
- FireballVolley_Timer = urand(12000, 15000);
- } else FireballVolley_Timer -= diff;
-
- //Conflagration_Timer
- if (Conflagration_Timer <= diff)
- {
- DoCast(me->getVictim(), SPELL_CONFLAGRATION);
- //We will remove this threat reduction and add an aura check.
-
- //if (DoGetThreat(me->getVictim()))
- //DoModifyThreatPercent(me->getVictim(), -50);
-
- Conflagration_Timer = 12000;
- } else Conflagration_Timer -= diff;
-
- // Aura Check. If the gamer is affected by confliguration we attack a random gamer.
- if (me->getVictim() && me->getVictim()->HasAura(SPELL_CONFLAGRATION))
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 100, true))
- me->TauntApply(target);
-
- DoMeleeAttackIfReady();
- }
- };
-};
-
-void AddSC_boss_razorgore()
-{
- new boss_razorgore();
-}
diff --git a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_vaelastrasz.cpp b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_vaelastrasz.cpp
deleted file mode 100644
index e07da353e90..00000000000
--- a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_vaelastrasz.cpp
+++ /dev/null
@@ -1,275 +0,0 @@
-/*
- * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
- * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/* ScriptData
-SDName: Boss_Vaelastrasz
-SD%Complete: 75
-SDComment: Burning Adrenaline not correctly implemented in core
-SDCategory: Blackwing Lair
-EndScriptData */
-
-#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "ScriptedGossip.h"
-#include "Player.h"
-
-enum Says
-{
- SAY_LINE1 = 0,
- SAY_LINE2 = 1,
- SAY_LINE3 = 2,
- SAY_HALFLIFE = 3,
- SAY_KILLTARGET = 4
-};
-
-#define GOSSIP_ITEM "Start Event <Needs Gossip Text>"
-
-enum Spells
-{
- SPELL_ESSENCEOFTHERED = 23513,
- SPELL_FLAMEBREATH = 23461,
- SPELL_FIRENOVA = 23462,
- SPELL_TAILSWIPE = 15847,
- SPELL_BURNINGADRENALINE = 23620,
- SPELL_CLEAVE = 20684 //Chain cleave is most likely named something different and contains a dummy effect
-};
-
-class boss_vaelastrasz : public CreatureScript
-{
-public:
- boss_vaelastrasz() : CreatureScript("boss_vaelastrasz") { }
-
- void SendDefaultMenu(Player* player, Creature* creature, uint32 action)
- {
- if (action == GOSSIP_ACTION_INFO_DEF + 1) //Fight time
- {
- player->CLOSE_GOSSIP_MENU();
- CAST_AI(boss_vaelastrasz::boss_vaelAI, creature->AI())->BeginSpeech(player);
- }
- }
-
- bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action)
- {
- player->PlayerTalkClass->ClearMenus();
- if (sender == GOSSIP_SENDER_MAIN)
- SendDefaultMenu(player, creature, action);
-
- return true;
- }
-
- bool OnGossipHello(Player* player, Creature* creature)
- {
- if (creature->isQuestGiver())
- player->PrepareQuestMenu(creature->GetGUID());
-
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
- player->SEND_GOSSIP_MENU(907, creature->GetGUID());
-
- return true;
- }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new boss_vaelAI (creature);
- }
-
- struct boss_vaelAI : public ScriptedAI
- {
- boss_vaelAI(Creature* creature) : ScriptedAI(creature)
- {
- creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
- creature->setFaction(35);
- creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- }
-
- uint64 PlayerGUID;
- uint32 SpeechTimer;
- uint32 SpeechNum;
- uint32 Cleave_Timer;
- uint32 FlameBreath_Timer;
- uint32 FireNova_Timer;
- uint32 BurningAdrenalineCaster_Timer;
- uint32 BurningAdrenalineTank_Timer;
- uint32 TailSwipe_Timer;
- bool HasYelled;
- bool DoingSpeech;
-
- void Reset()
- {
- PlayerGUID = 0;
- SpeechTimer = 0;
- SpeechNum = 0;
- Cleave_Timer = 8000; // These times are probably wrong
- FlameBreath_Timer = 11000;
- BurningAdrenalineCaster_Timer = 15000;
- BurningAdrenalineTank_Timer = 45000;
- FireNova_Timer = 5000;
- TailSwipe_Timer = 20000;
- HasYelled = false;
- DoingSpeech = false;
- }
-
- void BeginSpeech(Unit* target)
- {
- //Stand up and begin speach
- PlayerGUID = target->GetGUID();
-
- //10 seconds
- Talk(SAY_LINE1);
-
- SpeechTimer = 10000;
- SpeechNum = 0;
- DoingSpeech = true;
-
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
- }
-
- void KilledUnit(Unit* victim)
- {
- if (rand()%5)
- return;
-
- Talk(SAY_KILLTARGET, victim->GetGUID());
- }
-
- void EnterCombat(Unit* /*who*/)
- {
- DoCast(me, SPELL_ESSENCEOFTHERED);
- DoZoneInCombat();
- me->SetHealth(me->CountPctFromMaxHealth(30));
- // now drop damage requirement to be able to take loot
- me->ResetPlayerDamageReq();
- }
-
- void UpdateAI(uint32 diff)
- {
- //Speech
- if (DoingSpeech)
- {
- if (SpeechTimer <= diff)
- {
- switch (SpeechNum)
- {
- case 0:
- //16 seconds till next line
- Talk(SAY_LINE2);
- SpeechTimer = 16000;
- ++SpeechNum;
- break;
- case 1:
- //This one is actually 16 seconds but we only go to 10 seconds because he starts attacking after he says "I must fight this!"
- Talk(SAY_LINE3);
- SpeechTimer = 10000;
- ++SpeechNum;
- break;
- case 2:
- me->setFaction(103);
- if (PlayerGUID && Unit::GetUnit(*me, PlayerGUID))
- {
- AttackStart(Unit::GetUnit(*me, PlayerGUID));
- DoCast(me, SPELL_ESSENCEOFTHERED);
- }
- SpeechTimer = 0;
- DoingSpeech = false;
- break;
- }
- } else SpeechTimer -= diff;
- }
-
- //Return since we have no target
- if (!UpdateVictim())
- return;
-
- // Yell if hp lower than 15%
- if (HealthBelowPct(15) && !HasYelled)
- {
- Talk(SAY_HALFLIFE);
- HasYelled = true;
- }
-
- //Cleave_Timer
- if (Cleave_Timer <= diff)
- {
- DoCast(me->getVictim(), SPELL_CLEAVE);
- Cleave_Timer = 15000;
- } else Cleave_Timer -= diff;
-
- //FlameBreath_Timer
- if (FlameBreath_Timer <= diff)
- {
- DoCast(me->getVictim(), SPELL_FLAMEBREATH);
- FlameBreath_Timer = urand(4000, 8000);
- } else FlameBreath_Timer -= diff;
-
- //BurningAdrenalineCaster_Timer
- if (BurningAdrenalineCaster_Timer <= diff)
- {
- Unit* target = NULL;
-
- uint8 i = 0;
- while (i < 3) // max 3 tries to get a random target with power_mana
- {
- ++i;
- target = SelectTarget(SELECT_TARGET_RANDOM, 1, 100, true); //not aggro leader
- if (target && target->getPowerType() == POWER_MANA)
- i = 3;
- }
- if (target) // cast on self (see below)
- target->CastSpell(target, SPELL_BURNINGADRENALINE, 1);
-
- BurningAdrenalineCaster_Timer = 15000;
- } else BurningAdrenalineCaster_Timer -= diff;
-
- //BurningAdrenalineTank_Timer
- if (BurningAdrenalineTank_Timer <= diff)
- {
- // have the victim cast the spell on himself otherwise the third effect aura will be applied
- // to Vael instead of the player
- me->getVictim()->CastSpell(me->getVictim(), SPELL_BURNINGADRENALINE, 1);
-
- BurningAdrenalineTank_Timer = 45000;
- } else BurningAdrenalineTank_Timer -= diff;
-
- //FireNova_Timer
- if (FireNova_Timer <= diff)
- {
- DoCast(me->getVictim(), SPELL_FIRENOVA);
- FireNova_Timer = 5000;
- } else FireNova_Timer -= diff;
-
- //TailSwipe_Timer
- if (TailSwipe_Timer <= diff)
- {
- //Only cast if we are behind
- /*if (!me->HasInArc(M_PI, me->getVictim()))
- {
- DoCast(me->getVictim(), SPELL_TAILSWIPE);
- }*/
-
- TailSwipe_Timer = 20000;
- } else TailSwipe_Timer -= diff;
-
- DoMeleeAttackIfReady();
- }
- };
-};
-
-void AddSC_boss_vael()
-{
- new boss_vaelastrasz();
-}
diff --git a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_victor_nefarius.cpp b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_victor_nefarius.cpp
deleted file mode 100644
index 087a1a032bb..00000000000
--- a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_victor_nefarius.cpp
+++ /dev/null
@@ -1,398 +0,0 @@
-/*
- * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
- * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/* ScriptData
-SDName: Boss_Victor_Nefarius
-SD%Complete: 75
-SDComment: Missing some text, Vael beginning event, and spawns Nef in wrong place
-SDCategory: Blackwing Lair
-EndScriptData */
-
-#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "ScriptedGossip.h"
-#include "Player.h"
-
-enum Says
-{
- SAY_GAMESBEGIN_1 = 0,
- SAY_GAMESBEGIN_2 = 1,
- //SAY_VAEL_INTRO = 2, Not used - when he corrupts Vaelastrasz
-};
-
-#define GOSSIP_ITEM_1 "I've made no mistakes."
-#define GOSSIP_ITEM_2 "You have lost your mind, Nefarius. You speak in riddles."
-#define GOSSIP_ITEM_3 "Please do."
-
-enum Creatures
-{
- CREATURE_BRONZE_DRAKANOID = 14263,
- CREATURE_BLUE_DRAKANOID = 14261,
- CREATURE_RED_DRAKANOID = 14264,
- CREATURE_GREEN_DRAKANOID = 14262,
- CREATURE_BLACK_DRAKANOID = 14265,
-
- CREATURE_CHROMATIC_DRAKANOID = 14302,
- CREATURE_NEFARIAN = 11583
-};
-
-#define ADD_X1 -7591.151855f
-#define ADD_X2 -7514.598633f
-#define ADD_Y1 -1204.051880f
-#define ADD_Y2 -1150.448853f
-#define ADD_Z1 476.800476f
-#define ADD_Z2 476.796570f
-
-#define NEF_X -7445
-#define NEF_Y -1332
-#define NEF_Z 536
-
-#define HIDE_X -7592
-#define HIDE_Y -1264
-#define HIDE_Z 481
-
-enum Spells
-{
- SPELL_SHADOWBOLT = 21077,
- SPELL_FEAR = 26070
-};
-
-//This script is complicated
-//Instead of morphing Victor Nefarius we will have him control phase 1
-//And then have him spawn "Nefarian" for phase 2
-//When phase 2 starts Victor Nefarius will go into hiding and stop attacking
-//If Nefarian despawns because he killed the players then this guy will EnterEvadeMode
-//and allow players to start the event over
-//If nefarian dies then he will kill himself then he will kill himself in his hiding place
-//To prevent players from doing the event twice
-
-class boss_victor_nefarius : public CreatureScript
-{
-public:
- boss_victor_nefarius() : CreatureScript("boss_victor_nefarius") { }
-
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
- {
- player->PlayerTalkClass->ClearMenus();
- switch (action)
- {
- case GOSSIP_ACTION_INFO_DEF+1:
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
- player->SEND_GOSSIP_MENU(7198, creature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF+2:
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3);
- player->SEND_GOSSIP_MENU(7199, creature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF+3:
- player->CLOSE_GOSSIP_MENU();
- creature->AI()->Talk(SAY_GAMESBEGIN_1);
- CAST_AI(boss_victor_nefarius::boss_victor_nefariusAI, creature->AI())->BeginEvent(player);
- break;
- }
- return true;
- }
-
- bool OnGossipHello(Player* player, Creature* creature)
- {
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
- player->SEND_GOSSIP_MENU(7134, creature->GetGUID());
- return true;
- }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new boss_victor_nefariusAI (creature);
- }
-
- struct boss_victor_nefariusAI : public ScriptedAI
- {
- boss_victor_nefariusAI(Creature* creature) : ScriptedAI(creature)
- {
- NefarianGUID = 0;
- switch (urand(0, 19))
- {
- case 0:
- DrakType1 = CREATURE_BRONZE_DRAKANOID;
- DrakType2 = CREATURE_BLUE_DRAKANOID;
- break;
- case 1:
- DrakType1 = CREATURE_BRONZE_DRAKANOID;
- DrakType2 = CREATURE_RED_DRAKANOID;
- break;
- case 2:
- DrakType1 = CREATURE_BRONZE_DRAKANOID;
- DrakType2 = CREATURE_GREEN_DRAKANOID;
- break;
- case 3:
- DrakType1 = CREATURE_BRONZE_DRAKANOID;
- DrakType2 = CREATURE_BLACK_DRAKANOID;
- break;
- case 4:
- DrakType1 = CREATURE_BLUE_DRAKANOID;
- DrakType2 = CREATURE_BRONZE_DRAKANOID;
- break;
- case 5:
- DrakType1 = CREATURE_BLUE_DRAKANOID;
- DrakType2 = CREATURE_RED_DRAKANOID;
- break;
- case 6:
- DrakType1 = CREATURE_BLUE_DRAKANOID;
- DrakType2 = CREATURE_GREEN_DRAKANOID;
- break;
- case 7:
- DrakType1 = CREATURE_BLUE_DRAKANOID;
- DrakType2 = CREATURE_BLACK_DRAKANOID;
- break;
- case 8:
- DrakType1 = CREATURE_RED_DRAKANOID;
- DrakType2 = CREATURE_BRONZE_DRAKANOID;
- break;
- case 9:
- DrakType1 = CREATURE_RED_DRAKANOID;
- DrakType2 = CREATURE_BLUE_DRAKANOID;
- break;
- case 10:
- DrakType1 = CREATURE_RED_DRAKANOID;
- DrakType2 = CREATURE_GREEN_DRAKANOID;
- break;
- case 11:
- DrakType1 = CREATURE_RED_DRAKANOID;
- DrakType2 = CREATURE_BLACK_DRAKANOID;
- break;
- case 12:
- DrakType1 = CREATURE_GREEN_DRAKANOID;
- DrakType2 = CREATURE_BRONZE_DRAKANOID;
- break;
- case 13:
- DrakType1 = CREATURE_GREEN_DRAKANOID;
- DrakType2 = CREATURE_BLUE_DRAKANOID;
- break;
- case 14:
- DrakType1 = CREATURE_GREEN_DRAKANOID;
- DrakType2 = CREATURE_RED_DRAKANOID;
- break;
- case 15:
- DrakType1 = CREATURE_GREEN_DRAKANOID;
- DrakType2 = CREATURE_BLACK_DRAKANOID;
- break;
- case 16:
- DrakType1 = CREATURE_BLACK_DRAKANOID;
- DrakType2 = CREATURE_BRONZE_DRAKANOID;
- break;
- case 17:
- DrakType1 = CREATURE_BLACK_DRAKANOID;
- DrakType2 = CREATURE_BLUE_DRAKANOID;
- break;
- case 18:
- DrakType1 = CREATURE_BLACK_DRAKANOID;
- DrakType2 = CREATURE_GREEN_DRAKANOID;
- break;
- case 19:
- DrakType1 = CREATURE_BLACK_DRAKANOID;
- DrakType2 = CREATURE_RED_DRAKANOID;
- break;
- }
- }
-
- uint32 SpawnedAdds;
- uint32 AddSpawnTimer;
- uint32 ShadowBoltTimer;
- uint32 FearTimer;
- uint32 MindControlTimer;
- uint32 ResetTimer;
- uint32 DrakType1;
- uint32 DrakType2;
- uint64 NefarianGUID;
- uint32 NefCheckTime;
-
- void Reset()
- {
- SpawnedAdds = 0;
- AddSpawnTimer = 10000;
- ShadowBoltTimer = 5000;
- FearTimer = 8000;
- ResetTimer = 900000; // On official it takes him 15 minutes(900 seconds) to reset. We are only doing 1 minute to make testing easier
- NefarianGUID = 0;
- NefCheckTime = 2000;
-
- me->SetUInt32Value(UNIT_NPC_FLAGS, 1);
- me->setFaction(35);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- }
-
- void BeginEvent(Player* target)
- {
- Talk(SAY_GAMESBEGIN_2);
-
- //Trinity::Singleton<MapManager>::Instance().GetMap(me->GetMapId(), me)->GetPlayers().begin();
- /*
- list <Player*>::const_iterator i = sMapMgr->GetMap(me->GetMapId(), me)->GetPlayers().begin();
-
- for (i = sMapMgr->GetMap(me->GetMapId(), me)->GetPlayers().begin(); i != sMapMgr->GetMap(me->GetMapId(), me)->GetPlayers().end(); ++i)
- {
- AttackStart((*i));
- }
- */
- me->SetUInt32Value(UNIT_NPC_FLAGS, 0);
- me->setFaction(103);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- AttackStart(target);
- }
-
- void EnterCombat(Unit* /*who*/)
- {
- }
-
- void MoveInLineOfSight(Unit* who)
- {
- //We simply use this function to find players until we can use map->GetPlayers()
-
- if (who && who->GetTypeId() == TYPEID_PLAYER && me->IsHostileTo(who))
- {
- //Add them to our threat list
- me->AddThreat(who, 0.0f);
- }
- }
-
- void UpdateAI(uint32 diff)
- {
- if (!UpdateVictim())
- return;
-
- //Only do this if we haven't spawned nef yet
- if (SpawnedAdds < 42)
- {
- //ShadowBoltTimer
- if (ShadowBoltTimer <= diff)
- {
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
- DoCast(target, SPELL_SHADOWBOLT);
-
- ShadowBoltTimer = urand(3000, 10000);
- } else ShadowBoltTimer -= diff;
-
- //FearTimer
- if (FearTimer <= diff)
- {
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
- DoCast(target, SPELL_FEAR);
-
- FearTimer = 10000 + (rand()%10000);
- } else FearTimer -= diff;
-
- //Add spawning mechanism
- if (AddSpawnTimer <= diff)
- {
- //Spawn 2 random types of creatures at the 2 locations
- uint32 CreatureID;
- Creature* Spawned = NULL;
- Unit* target = NULL;
-
- //1 in 3 chance it will be a chromatic
- if (urand(0, 2) == 0)
- CreatureID = CREATURE_CHROMATIC_DRAKANOID;
- else
- CreatureID = DrakType1;
-
- ++SpawnedAdds;
-
- //Spawn Creature and force it to start attacking a random target
- Spawned = me->SummonCreature(CreatureID, ADD_X1, ADD_Y1, ADD_Z1, 5.000f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
- target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true);
- if (target && Spawned)
- {
- Spawned->AI()->AttackStart(target);
- Spawned->setFaction(103);
- }
-
- //1 in 3 chance it will be a chromatic
- if (urand(0, 2) == 0)
- CreatureID = CREATURE_CHROMATIC_DRAKANOID;
- else
- CreatureID = DrakType2;
-
- ++SpawnedAdds;
-
- Spawned = me->SummonCreature(CreatureID, ADD_X2, ADD_Y2, ADD_Z2, 5.000f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
- target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true);
- if (target && Spawned)
- {
- Spawned->AI()->AttackStart(target);
- Spawned->setFaction(103);
- }
-
- //Begin phase 2 by spawning Nefarian and what not
- if (SpawnedAdds >= 42)
- {
- //Teleport Victor Nefarius way out of the map
- //sMapMgr->GetMap(me->GetMapId(), me)->CreatureRelocation(me, 0, 0, -5000, 0);
-
- //Interrupt any spell casting
- me->InterruptNonMeleeSpells(false);
-
- //Root self
- DoCast(me, 33356);
-
- //Make super invis
- DoCast(me, 8149);
-
- //Teleport self to a hiding spot (this causes errors in the Trinity log but no real issues)
- DoTeleportTo(HIDE_X, HIDE_Y, HIDE_Z);
- me->AddUnitState(UNIT_STATE_FLEEING);
-
- //Spawn nef and have him attack a random target
- Creature* Nefarian = me->SummonCreature(CREATURE_NEFARIAN, NEF_X, NEF_Y, NEF_Z, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 120000);
- target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true);
- if (target && Nefarian)
- {
- Nefarian->AI()->AttackStart(target);
- Nefarian->setFaction(103);
- NefarianGUID = Nefarian->GetGUID();
- }
- else TC_LOG_ERROR(LOG_FILTER_TSCR, "Blackwing Lair: Unable to spawn nefarian properly.");
- }
-
- AddSpawnTimer = 4000;
- } else AddSpawnTimer -= diff;
- }
- else if (NefarianGUID)
- {
- if (NefCheckTime <= diff)
- {
- Unit* Nefarian = Unit::GetCreature((*me), NefarianGUID);
-
- //If nef is dead then we die to so the players get out of combat
- //and cannot repeat the event
- if (!Nefarian || !Nefarian->isAlive())
- {
- NefarianGUID = 0;
- me->DespawnOrUnsummon();
- }
-
- NefCheckTime = 2000;
- } else NefCheckTime -= diff;
- }
- }
- };
-};
-
-void AddSC_boss_victor_nefarius()
-{
- new boss_victor_nefarius();
-}
diff --git a/src/server/scripts/EasternKingdoms/BlackwingLair/instance_blackwing_lair.cpp b/src/server/scripts/EasternKingdoms/BlackwingLair/instance_blackwing_lair.cpp
deleted file mode 100644
index 279375be228..00000000000
--- a/src/server/scripts/EasternKingdoms/BlackwingLair/instance_blackwing_lair.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
- * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/* ScriptData
-SDName: Instance_Blackwing_Lair
-SD%Complete: 0
-SDComment:
-SDCategory: Blackwing Lair
-EndScriptData */
-
-#include "ScriptMgr.h"
-#include "InstanceScript.h"
diff --git a/src/server/scripts/EasternKingdoms/CMakeLists.txt b/src/server/scripts/EasternKingdoms/CMakeLists.txt
index f581baa31fa..53d37d83610 100644
--- a/src/server/scripts/EasternKingdoms/CMakeLists.txt
+++ b/src/server/scripts/EasternKingdoms/CMakeLists.txt
@@ -17,6 +17,58 @@ set(scripts_STAT_SRCS
EasternKingdoms/AlteracValley/boss_drekthar.cpp
EasternKingdoms/AlteracValley/boss_vanndar.cpp
EasternKingdoms/AlteracValley/alterac_valley.cpp
+ EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_high_interrogator_gerstahn.cpp
+ EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_gorosh_the_dervish.cpp
+ EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp
+ EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_anubshiah.cpp
+ EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp
+ EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_general_angerforge.cpp
+ EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_grizzle.cpp
+ EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_ambassador_flamelash.cpp
+ EasternKingdoms/BlackrockMountain/BlackrockDepths/instance_blackrock_depths.cpp
+ EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_moira_bronzebeard.cpp
+ EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.h
+ EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp
+ EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_magmus.cpp
+ EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp
+ EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp
+ EasternKingdoms/BlackrockMountain/BlackwingLair/boss_firemaw.cpp
+ EasternKingdoms/BlackrockMountain/BlackwingLair/boss_broodlord_lashlayer.cpp
+ EasternKingdoms/BlackrockMountain/BlackwingLair/boss_ebonroc.cpp
+ EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp
+ EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp
+ EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp
+ EasternKingdoms/BlackrockMountain/BlackwingLair/boss_flamegor.cpp
+ EasternKingdoms/BlackrockMountain/BlackwingLair/blackwing_lair.h
+ EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp
+ EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_drakkisath.cpp
+ EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_warmaster_voone.cpp
+ EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_mother_smolderweb.cpp
+ EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_quartermaster_zigris.cpp
+ EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_halycon.cpp
+ EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_overlord_wyrmthalak.cpp
+ EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_shadow_hunter_voshgajin.cpp
+ EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gyth.cpp
+ EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp
+ EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_highlord_omokk.cpp
+ EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_the_beast.cpp
+ EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gizrul_the_slavener.cpp
+ EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_urok_doomhowl.cpp
+ EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_lord_valthalak.cpp
+ EasternKingdoms/BlackrockMountain/BlackrockSpire/blackrock_spire.h
+ EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp
+ EasternKingdoms/BlackrockMountain/MoltenCore/boss_gehennas.cpp
+ EasternKingdoms/BlackrockMountain/MoltenCore/boss_lucifron.cpp
+ EasternKingdoms/BlackrockMountain/MoltenCore/boss_golemagg.cpp
+ EasternKingdoms/BlackrockMountain/MoltenCore/boss_majordomo_executus.cpp
+ EasternKingdoms/BlackrockMountain/MoltenCore/boss_baron_geddon.cpp
+ EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp
+ EasternKingdoms/BlackrockMountain/MoltenCore/boss_garr.cpp
+ EasternKingdoms/BlackrockMountain/MoltenCore/molten_core.h
+ EasternKingdoms/BlackrockMountain/MoltenCore/instance_molten_core.cpp
+ EasternKingdoms/BlackrockMountain/MoltenCore/boss_sulfuron_harbinger.cpp
+ EasternKingdoms/BlackrockMountain/MoltenCore/boss_magmadar.cpp
+ EasternKingdoms/BlackrockMountain/MoltenCore/boss_shazzrah.cpp
EasternKingdoms/Scholomance/boss_the_ravenian.cpp
EasternKingdoms/Scholomance/boss_instructor_malicia.cpp
EasternKingdoms/Scholomance/boss_death_knight_darkreaver.cpp
@@ -55,37 +107,12 @@ set(scripts_STAT_SRCS
EasternKingdoms/Gnomeregan/gnomeregan.cpp
EasternKingdoms/Gnomeregan/gnomeregan.h
EasternKingdoms/zone_redridge_mountains.cpp
- EasternKingdoms/BlackrockDepths/boss_high_interrogator_gerstahn.cpp
- EasternKingdoms/BlackrockDepths/boss_gorosh_the_dervish.cpp
- EasternKingdoms/BlackrockDepths/blackrock_depths.cpp
- EasternKingdoms/BlackrockDepths/boss_anubshiah.cpp
- EasternKingdoms/BlackrockDepths/boss_tomb_of_seven.cpp
- EasternKingdoms/BlackrockDepths/boss_general_angerforge.cpp
- EasternKingdoms/BlackrockDepths/boss_grizzle.cpp
- EasternKingdoms/BlackrockDepths/boss_ambassador_flamelash.cpp
- EasternKingdoms/BlackrockDepths/instance_blackrock_depths.cpp
- EasternKingdoms/BlackrockDepths/boss_moira_bronzebeard.cpp
- EasternKingdoms/BlackrockDepths/blackrock_depths.h
- EasternKingdoms/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp
- EasternKingdoms/BlackrockDepths/boss_magmus.cpp
EasternKingdoms/zone_ironforge.cpp
EasternKingdoms/ScarletEnclave/chapter2.cpp
EasternKingdoms/ScarletEnclave/chapter5.cpp
EasternKingdoms/ScarletEnclave/chapter1.cpp
EasternKingdoms/ScarletEnclave/zone_the_scarlet_enclave.cpp
EasternKingdoms/zone_eastern_plaguelands.cpp
- EasternKingdoms/MoltenCore/boss_gehennas.cpp
- EasternKingdoms/MoltenCore/boss_lucifron.cpp
- EasternKingdoms/MoltenCore/boss_golemagg.cpp
- EasternKingdoms/MoltenCore/boss_majordomo_executus.cpp
- EasternKingdoms/MoltenCore/boss_baron_geddon.cpp
- EasternKingdoms/MoltenCore/boss_ragnaros.cpp
- EasternKingdoms/MoltenCore/boss_garr.cpp
- EasternKingdoms/MoltenCore/molten_core.h
- EasternKingdoms/MoltenCore/instance_molten_core.cpp
- EasternKingdoms/MoltenCore/boss_sulfuron_harbinger.cpp
- EasternKingdoms/MoltenCore/boss_magmadar.cpp
- EasternKingdoms/MoltenCore/boss_shazzrah.cpp
EasternKingdoms/Stratholme/boss_baroness_anastari.cpp
EasternKingdoms/Stratholme/boss_nerubenkan.cpp
EasternKingdoms/Stratholme/instance_stratholme.cpp
@@ -117,20 +144,6 @@ set(scripts_STAT_SRCS
EasternKingdoms/Uldaman/instance_uldaman.cpp
EasternKingdoms/Uldaman/boss_archaedas.cpp
EasternKingdoms/zone_swamp_of_sorrows.cpp
- EasternKingdoms/BlackrockSpire/boss_pyroguard_emberseer.cpp
- EasternKingdoms/BlackrockSpire/boss_drakkisath.cpp
- EasternKingdoms/BlackrockSpire/boss_warmaster_voone.cpp
- EasternKingdoms/BlackrockSpire/boss_mother_smolderweb.cpp
- EasternKingdoms/BlackrockSpire/boss_quartermaster_zigris.cpp
- EasternKingdoms/BlackrockSpire/boss_halycon.cpp
- EasternKingdoms/BlackrockSpire/boss_overlord_wyrmthalak.cpp
- EasternKingdoms/BlackrockSpire/boss_shadow_hunter_voshgajin.cpp
- EasternKingdoms/BlackrockSpire/boss_gyth.cpp
- EasternKingdoms/BlackrockSpire/boss_rend_blackhand.cpp
- EasternKingdoms/BlackrockSpire/boss_highlord_omokk.cpp
- EasternKingdoms/BlackrockSpire/boss_the_beast.cpp
- EasternKingdoms/BlackrockSpire/blackrock_spire.h
- EasternKingdoms/BlackrockSpire/instance_blackrock_spire.cpp
EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp
EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp
EasternKingdoms/SunwellPlateau/sunwell_plateau.h
@@ -165,16 +178,6 @@ set(scripts_STAT_SRCS
EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp
EasternKingdoms/ShadowfangKeep/shadowfang_keep.h
EasternKingdoms/zone_burning_steppes.cpp
- EasternKingdoms/BlackwingLair/boss_chromaggus.cpp
- EasternKingdoms/BlackwingLair/boss_razorgore.cpp
- EasternKingdoms/BlackwingLair/boss_firemaw.cpp
- EasternKingdoms/BlackwingLair/boss_broodlord_lashlayer.cpp
- EasternKingdoms/BlackwingLair/boss_ebonroc.cpp
- EasternKingdoms/BlackwingLair/instance_blackwing_lair.cpp
- EasternKingdoms/BlackwingLair/boss_vaelastrasz.cpp
- EasternKingdoms/BlackwingLair/boss_nefarian.cpp
- EasternKingdoms/BlackwingLair/boss_flamegor.cpp
- EasternKingdoms/BlackwingLair/boss_victor_nefarius.cpp
EasternKingdoms/zone_blasted_lands.cpp
EasternKingdoms/zone_stormwind_city.cpp
EasternKingdoms/ZulAman/boss_halazzi.cpp
diff --git a/src/server/scripts/EasternKingdoms/Deadmines/boss_mr_smite.cpp b/src/server/scripts/EasternKingdoms/Deadmines/boss_mr_smite.cpp
index 060c2e0506f..8a7836b310e 100644
--- a/src/server/scripts/EasternKingdoms/Deadmines/boss_mr_smite.cpp
+++ b/src/server/scripts/EasternKingdoms/Deadmines/boss_mr_smite.cpp
@@ -25,7 +25,7 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "deadmines.h"
-enum eSpels
+enum Spels
{
SPELL_TRASH = 3391,
SPELL_SMITE_STOMP = 6432,
@@ -43,9 +43,9 @@ class boss_mr_smite : public CreatureScript
public:
boss_mr_smite() : CreatureScript("boss_mr_smite") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_mr_smiteAI (creature);
+ return new boss_mr_smiteAI(creature);
}
struct boss_mr_smiteAI : public ScriptedAI
@@ -66,7 +66,7 @@ public:
uint32 uiPhase;
uint32 uiTimer;
- void Reset()
+ void Reset() OVERRIDE
{
uiTrashTimer = urand(5000, 9000);
uiSlamTimer = 9000;
@@ -80,7 +80,7 @@ public:
SetEquipmentSlots(false, EQUIP_SWORD, EQUIP_UNEQUIP, EQUIP_NO_CHANGE);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
}
@@ -94,7 +94,7 @@ public:
return true;
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -110,7 +110,7 @@ public:
if (uiSlamTimer <= uiDiff)
{
if (bCheckChances())
- DoCast(me->getVictim(), SPELL_SMITE_SLAM);
+ DoCastVictim(SPELL_SMITE_SLAM);
uiSlamTimer = 11000;
} else uiSlamTimer -= uiDiff;
@@ -156,7 +156,7 @@ public:
break;
case 3:
SetCombatMovement(true);
- me->GetMotionMaster()->MoveChase(me->getVictim(), me->m_CombatDistance);
+ me->GetMotionMaster()->MoveChase(me->GetVictim(), me->m_CombatDistance);
uiPhase = 0;
break;
}
@@ -166,7 +166,7 @@ public:
DoMeleeAttackIfReady();
}
- void MovementInform(uint32 uiType, uint32 /*uiId*/)
+ void MovementInform(uint32 uiType, uint32 /*uiId*/) OVERRIDE
{
if (uiType != POINT_MOTION_TYPE)
return;
diff --git a/src/server/scripts/EasternKingdoms/Deadmines/deadmines.cpp b/src/server/scripts/EasternKingdoms/Deadmines/deadmines.cpp
index 991056d0ce0..38d10107094 100644
--- a/src/server/scripts/EasternKingdoms/Deadmines/deadmines.cpp
+++ b/src/server/scripts/EasternKingdoms/Deadmines/deadmines.cpp
@@ -39,7 +39,7 @@ class item_defias_gunpowder : public ItemScript
public:
item_defias_gunpowder() : ItemScript("item_defias_gunpowder") { }
- bool OnUse(Player* player, Item* item, SpellCastTargets const& targets)
+ bool OnUse(Player* player, Item* item, SpellCastTargets const& targets) OVERRIDE
{
InstanceScript* instance = player->GetInstanceScript();
diff --git a/src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp b/src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp
index 210fb11a269..b9073a35abf 100644
--- a/src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp
+++ b/src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp
@@ -200,7 +200,7 @@ class instance_deadmines : public InstanceMapScript
}
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
switch (type)
{
@@ -216,7 +216,7 @@ class instance_deadmines : public InstanceMapScript
}
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -227,7 +227,7 @@ class instance_deadmines : public InstanceMapScript
return 0;
}
- uint64 GetData64(uint32 data) const
+ uint64 GetData64(uint32 data) const OVERRIDE
{
switch (data)
{
@@ -246,7 +246,7 @@ class instance_deadmines : public InstanceMapScript
}
};
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_deadmines_InstanceMapScript(map);
}
diff --git a/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp b/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp
index cd4eaa78e9d..46683442a60 100644
--- a/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp
+++ b/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp
@@ -88,12 +88,12 @@ class npc_blastmaster_emi_shortfuse : public CreatureScript
public:
npc_blastmaster_emi_shortfuse() : CreatureScript("npc_blastmaster_emi_shortfuse") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_blastmaster_emi_shortfuseAI(creature);
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF+1)
@@ -109,7 +109,7 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
InstanceScript* instance = creature->GetInstanceScript();
@@ -138,7 +138,7 @@ public:
std::list<uint64> SummonList;
std::list<uint64> GoSummonList;
- void Reset()
+ void Reset() OVERRIDE
{
if (!HasEscortState(STATE_ESCORT_ESCORTING))
{
@@ -232,7 +232,7 @@ public:
{
if (Creature* summon = Unit::GetCreature(*me, *itr))
{
- if (summon->isAlive())
+ if (summon->IsAlive())
summon->DisappearAndDie();
else
summon->RemoveCorpse();
@@ -249,12 +249,12 @@ public:
for (Map::PlayerList::const_iterator i = PlList.begin(); i != PlList.end(); ++i)
{
- if (Player* player = i->getSource())
+ if (Player* player = i->GetSource())
{
- if (player->isGameMaster())
+ if (player->IsGameMaster())
continue;
- if (player->isAlive())
+ if (player->IsAlive())
{
temp->SetInCombatWith(player);
player->SetInCombatWith(temp);
@@ -264,7 +264,7 @@ public:
}
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
//just in case
if (GetPlayerForEscort())
@@ -308,7 +308,7 @@ public:
}
}
- void SetData(uint32 uiI, uint32 uiValue)
+ void SetData(uint32 uiI, uint32 uiValue) OVERRIDE
{
switch (uiI)
{
@@ -408,7 +408,7 @@ public:
}
}
- void UpdateEscortAI(const uint32 uiDiff)
+ void UpdateEscortAI(const uint32 uiDiff) OVERRIDE
{
if (uiPhase)
{
@@ -537,7 +537,7 @@ public:
DoMeleeAttackIfReady();
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
SummonList.push_back(summon->GetGUID());
AggroAllPlayers(summon);
@@ -551,7 +551,7 @@ class boss_grubbis : public CreatureScript
public:
boss_grubbis() : CreatureScript("boss_grubbis") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_grubbisAI(creature);
}
@@ -565,7 +565,7 @@ public:
void SetDataSummoner()
{
- if (!me->isSummon())
+ if (!me->IsSummon())
return;
if (Unit* summon = me->ToTempSummon()->GetSummoner())
@@ -573,7 +573,7 @@ public:
creature->AI()->SetData(2, 1);
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -581,9 +581,9 @@ public:
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
- if (!me->isSummon())
+ if (!me->IsSummon())
return;
if (Unit* summoner = me->ToTempSummon()->GetSummoner())
diff --git a/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.h b/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.h
index 328f22656f6..c0d4f1d57cf 100644
--- a/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.h
+++ b/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.h
@@ -18,14 +18,14 @@
#ifndef DEF_GNOMEREGAN_H
#define DEF_GNOMEREGAN_H
-enum eGameObjects
+enum GameObjectIds
{
GO_CAVE_IN_LEFT = 146085,
GO_CAVE_IN_RIGHT = 146086,
GO_RED_ROCKET = 103820
};
-enum eCreatures
+enum CreatureIds
{
NPC_BLASTMASTER_EMI_SHORTFUSE = 7998,
NPC_CAVERNDEEP_AMBUSHER = 6207,
@@ -33,12 +33,12 @@ enum eCreatures
NPC_CHOMPER = 6215
};
-enum eData
+enum Data
{
TYPE_EVENT = 1
};
-enum eData64
+enum Data64
{
DATA_GO_CAVE_IN_LEFT,
DATA_GO_CAVE_IN_RIGHT,
diff --git a/src/server/scripts/EasternKingdoms/Gnomeregan/instance_gnomeregan.cpp b/src/server/scripts/EasternKingdoms/Gnomeregan/instance_gnomeregan.cpp
index de3606b7b55..a00e9d9abe5 100644
--- a/src/server/scripts/EasternKingdoms/Gnomeregan/instance_gnomeregan.cpp
+++ b/src/server/scripts/EasternKingdoms/Gnomeregan/instance_gnomeregan.cpp
@@ -27,7 +27,7 @@ class instance_gnomeregan : public InstanceMapScript
public:
instance_gnomeregan() : InstanceMapScript("instance_gnomeregan", 90) { }
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_gnomeregan_InstanceMapScript(map);
}
@@ -102,7 +102,7 @@ public:
}
}
- void SetData(uint32 uiType, uint32 uiData)
+ void SetData(uint32 uiType, uint32 uiData) OVERRIDE
{
switch (uiType)
{
@@ -114,7 +114,7 @@ public:
}
}
- uint32 GetData(uint32 uiType) const
+ uint32 GetData(uint32 uiType) const OVERRIDE
{
switch (uiType)
{
@@ -123,7 +123,7 @@ public:
return 0;
}
- uint64 GetData64(uint32 uiType) const
+ uint64 GetData64(uint32 uiType) const OVERRIDE
{
switch (uiType)
{
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp
index 9dab7439136..6599af7c2aa 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp
@@ -53,9 +53,9 @@ class boss_curator : public CreatureScript
public:
boss_curator() : CreatureScript("boss_curator") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_curatorAI (creature);
+ return new boss_curatorAI(creature);
}
struct boss_curatorAI : public ScriptedAI
@@ -69,7 +69,7 @@ public:
bool Enraged;
bool Evocating;
- void Reset()
+ void Reset() OVERRIDE
{
AddTimer = 10000;
HatefulBoltTimer = 15000; //This time may be wrong
@@ -80,22 +80,22 @@ public:
me->ApplySpellImmune(0, IMMUNITY_DAMAGE, SPELL_SCHOOL_MASK_ARCANE, true);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_KILL);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp
index 52d9c697452..0a9aee6269c 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp
@@ -45,9 +45,9 @@ class boss_maiden_of_virtue : public CreatureScript
public:
boss_maiden_of_virtue() : CreatureScript("boss_maiden_of_virtue") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_maiden_of_virtueAI (creature);
+ return new boss_maiden_of_virtueAI(creature);
}
struct boss_maiden_of_virtueAI : public ScriptedAI
@@ -62,7 +62,7 @@ public:
bool Enraged;
- void Reset()
+ void Reset() OVERRIDE
{
Repentance_Timer = 25000+(rand()%15000);
Holyfire_Timer = 8000+(rand()%17000);
@@ -73,23 +73,23 @@ public:
Enraged = false;
}
- void KilledUnit(Unit* /*Victim*/)
+ void KilledUnit(Unit* /*Victim*/) OVERRIDE
{
if (urand(0, 1) == 0)
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -108,7 +108,7 @@ public:
if (Repentance_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_REPENTANCE);
+ DoCastVictim(SPELL_REPENTANCE);
Talk(SAY_REPENTANCE);
Repentance_Timer = urand(25000, 35000); //A little randomness on that spell
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp
index 19023f70c80..0b11d425e85 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp
@@ -53,9 +53,9 @@ class boss_attumen : public CreatureScript
public:
boss_attumen() : CreatureScript("boss_attumen") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_attumenAI (creature);
+ return new boss_attumenAI(creature);
}
struct boss_attumenAI : public ScriptedAI
@@ -79,34 +79,34 @@ public:
uint32 ChargeTimer; //only when mounted
uint32 ResetTimer;
- void Reset()
+ void Reset() OVERRIDE
{
ResetTimer = 0;
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
ScriptedAI::EnterEvadeMode();
ResetTimer = 2000;
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_KILL);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
if (Unit* midnight = Unit::GetUnit(*me, Midnight))
midnight->Kill(midnight);
}
- void UpdateAI(uint32 diff);
+ void UpdateAI(uint32 diff) OVERRIDE;
- void SpellHit(Unit* /*source*/, const SpellInfo* spell)
+ void SpellHit(Unit* /*source*/, const SpellInfo* spell) OVERRIDE
{
if (spell->Mechanic == MECHANIC_DISARM)
Talk(SAY_DISARMED);
@@ -119,7 +119,7 @@ class boss_midnight : public CreatureScript
public:
boss_midnight() : CreatureScript("boss_midnight") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_midnightAI(creature);
}
@@ -132,7 +132,7 @@ public:
uint8 Phase;
uint32 Mount_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
Phase = 1;
Attumen = 0;
@@ -142,9 +142,9 @@ public:
me->SetVisible(true);
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
if (Phase == 2)
{
@@ -153,7 +153,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -164,7 +164,7 @@ public:
if (Creature* attumen = me->SummonCreature(SUMMON_ATTUMEN, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 30000))
{
Attumen = attumen->GetGUID();
- attumen->AI()->AttackStart(me->getVictim());
+ attumen->AI()->AttackStart(me->GetVictim());
SetMidnight(attumen, me->GetGUID());
Talk(SAY_APPEAR, Attumen);
}
@@ -187,10 +187,10 @@ public:
{
pAttumen->SetDisplayId(MOUNTED_DISPLAYID);
pAttumen->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- if (pAttumen->getVictim())
+ if (pAttumen->GetVictim())
{
- pAttumen->GetMotionMaster()->MoveChase(pAttumen->getVictim());
- pAttumen->SetTarget(pAttumen->getVictim()->GetGUID());
+ pAttumen->GetMotionMaster()->MoveChase(pAttumen->GetVictim());
+ pAttumen->SetTarget(pAttumen->GetVictim()->GetGUID());
}
pAttumen->SetObjectScale(1);
}
@@ -262,13 +262,13 @@ void boss_attumen::boss_attumenAI::UpdateAI(uint32 diff)
if (CleaveTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_SHADOWCLEAVE);
+ DoCastVictim(SPELL_SHADOWCLEAVE);
CleaveTimer = urand(10000, 15000);
} else CleaveTimer -= diff;
if (CurseTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_INTANGIBLE_PRESENCE);
+ DoCastVictim(SPELL_INTANGIBLE_PRESENCE);
CurseTimer = 30000;
} else CurseTimer -= diff;
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp
index f3bc733e722..473fe000939 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp
@@ -27,20 +27,51 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "karazhan.h"
-enum Moroes
+enum Yells
{
SAY_AGGRO = 0,
SAY_SPECIAL = 1,
SAY_KILL = 2,
- SAY_DEATH = 3,
-
- SPELL_VANISH = 29448,
- SPELL_GARROTE = 37066,
- SPELL_BLIND = 34694,
- SPELL_GOUGE = 29425,
- SPELL_FRENZY = 37023,
+ SAY_DEATH = 3
};
+enum Spells
+{
+ SPELL_VANISH = 29448,
+ SPELL_GARROTE = 37066,
+ SPELL_BLIND = 34694,
+ SPELL_GOUGE = 29425,
+ SPELL_FRENZY = 37023,
+
+ // Adds
+ SPELL_MANABURN = 29405,
+ SPELL_MINDFLY = 29570,
+ SPELL_SWPAIN = 34441,
+ SPELL_SHADOWFORM = 29406,
+
+ SPELL_HAMMEROFJUSTICE = 13005,
+ SPELL_JUDGEMENTOFCOMMAND = 29386,
+ SPELL_SEALOFCOMMAND = 29385,
+
+ SPELL_DISPELMAGIC = 15090,
+ SPELL_GREATERHEAL = 29564,
+ SPELL_HOLYFIRE = 29563,
+ SPELL_PWSHIELD = 29408,
+
+ SPELL_CLEANSE = 29380,
+ SPELL_GREATERBLESSOFMIGHT = 29381,
+ SPELL_HOLYLIGHT = 29562,
+ SPELL_DIVINESHIELD = 41367,
+
+ SPELL_HAMSTRING = 9080,
+ SPELL_MORTALSTRIKE = 29572,
+ SPELL_WHIRLWIND = 29573,
+
+ SPELL_DISARM = 8379,
+ SPELL_HEROICSTRIKE = 29567,
+ SPELL_SHIELDBASH = 11972,
+ SPELL_SHIELDWALL = 29390
+};
#define POS_Z 81.73f
@@ -67,9 +98,9 @@ class boss_moroes : public CreatureScript
public:
boss_moroes() : CreatureScript("boss_moroes") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_moroesAI (creature);
+ return new boss_moroesAI(creature);
}
struct boss_moroesAI : public ScriptedAI
@@ -96,7 +127,7 @@ public:
bool InVanish;
bool Enrage;
- void Reset()
+ void Reset() OVERRIDE
{
Vanish_Timer = 30000;
Blind_Timer = 35000;
@@ -121,7 +152,7 @@ public:
DoZoneInCombat();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
StartEvent();
@@ -130,12 +161,12 @@ public:
DoZoneInCombat();
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_KILL);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -205,7 +236,7 @@ public:
if (AddGUID[i])
{
Creature* temp = Creature::GetCreature((*me), AddGUID[i]);
- if (temp && temp->isAlive())
+ if (temp && temp->IsAlive())
temp->DisappearAndDie();
}
}
@@ -218,9 +249,9 @@ public:
if (AddGUID[i])
{
Creature* temp = Creature::GetCreature((*me), AddGUID[i]);
- if (temp && temp->isAlive())
+ if (temp && temp->IsAlive())
{
- temp->AI()->AttackStart(me->getVictim());
+ temp->AI()->AttackStart(me->GetVictim());
DoZoneInCombat(temp);
} else
EnterEvadeMode();
@@ -228,7 +259,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -252,9 +283,9 @@ public:
if (AddGUID[i])
{
Creature* temp = Unit::GetCreature((*me), AddGUID[i]);
- if (temp && temp->isAlive())
- if (!temp->getVictim())
- temp->AI()->AttackStart(me->getVictim());
+ if (temp && temp->IsAlive())
+ if (!temp->GetVictim())
+ temp->AI()->AttackStart(me->GetVictim());
}
}
CheckAdds_Timer = 5000;
@@ -324,7 +355,7 @@ struct boss_moroes_guestAI : public ScriptedAI
instance = creature->GetInstanceScript();
}
- void Reset()
+ void Reset() OVERRIDE
{
if (instance)
instance->SetData(TYPE_MOROES, NOT_STARTED);
@@ -347,14 +378,14 @@ struct boss_moroes_guestAI : public ScriptedAI
if (TempGUID)
{
Unit* unit = Unit::GetUnit(*me, TempGUID);
- if (unit && unit->isAlive())
+ if (unit && unit->IsAlive())
return unit;
}
return me;
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
if (instance && !instance->GetData(TYPE_MOROES))
EnterEvadeMode();
@@ -363,42 +394,14 @@ struct boss_moroes_guestAI : public ScriptedAI
}
};
-#define SPELL_MANABURN 29405
-#define SPELL_MINDFLY 29570
-#define SPELL_SWPAIN 34441
-#define SPELL_SHADOWFORM 29406
-
-#define SPELL_HAMMEROFJUSTICE 13005
-#define SPELL_JUDGEMENTOFCOMMAND 29386
-#define SPELL_SEALOFCOMMAND 29385
-
-#define SPELL_DISPELMAGIC 15090 //Self or other guest+Moroes
-#define SPELL_GREATERHEAL 29564 //Self or other guest+Moroes
-#define SPELL_HOLYFIRE 29563
-#define SPELL_PWSHIELD 29408
-
-#define SPELL_CLEANSE 29380 //Self or other guest+Moroes
-#define SPELL_GREATERBLESSOFMIGHT 29381 //Self or other guest+Moroes
-#define SPELL_HOLYLIGHT 29562 //Self or other guest+Moroes
-#define SPELL_DIVINESHIELD 41367
-
-#define SPELL_HAMSTRING 9080
-#define SPELL_MORTALSTRIKE 29572
-#define SPELL_WHIRLWIND 29573
-
-#define SPELL_DISARM 8379
-#define SPELL_HEROICSTRIKE 29567
-#define SPELL_SHIELDBASH 11972
-#define SPELL_SHIELDWALL 29390
-
class boss_baroness_dorothea_millstipe : public CreatureScript
{
public:
boss_baroness_dorothea_millstipe() : CreatureScript("boss_baroness_dorothea_millstipe") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_baroness_dorothea_millstipeAI (creature);
+ return new boss_baroness_dorothea_millstipeAI(creature);
}
struct boss_baroness_dorothea_millstipeAI : public boss_moroes_guestAI
@@ -410,7 +413,7 @@ public:
uint32 MindFlay_Timer;
uint32 ShadowWordPain_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
ManaBurn_Timer = 7000;
MindFlay_Timer = 1000;
@@ -421,7 +424,7 @@ public:
boss_moroes_guestAI::Reset();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -430,7 +433,7 @@ public:
if (MindFlay_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_MINDFLY);
+ DoCastVictim(SPELL_MINDFLY);
MindFlay_Timer = 12000; // 3 sec channeled
} else MindFlay_Timer -= diff;
@@ -459,9 +462,9 @@ class boss_baron_rafe_dreuger : public CreatureScript
public:
boss_baron_rafe_dreuger() : CreatureScript("boss_baron_rafe_dreuger") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_baron_rafe_dreugerAI (creature);
+ return new boss_baron_rafe_dreugerAI(creature);
}
struct boss_baron_rafe_dreugerAI : public boss_moroes_guestAI
@@ -473,7 +476,7 @@ public:
uint32 SealOfCommand_Timer;
uint32 JudgementOfCommand_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
HammerOfJustice_Timer = 1000;
SealOfCommand_Timer = 7000;
@@ -482,7 +485,7 @@ public:
boss_moroes_guestAI::Reset();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -498,13 +501,13 @@ public:
if (JudgementOfCommand_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_JUDGEMENTOFCOMMAND);
+ DoCastVictim(SPELL_JUDGEMENTOFCOMMAND);
JudgementOfCommand_Timer = SealOfCommand_Timer + 29000;
} else JudgementOfCommand_Timer -= diff;
if (HammerOfJustice_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_HAMMEROFJUSTICE);
+ DoCastVictim(SPELL_HAMMEROFJUSTICE);
HammerOfJustice_Timer = 12000;
} else HammerOfJustice_Timer -= diff;
}
@@ -516,9 +519,9 @@ class boss_lady_catriona_von_indi : public CreatureScript
public:
boss_lady_catriona_von_indi() : CreatureScript("boss_lady_catriona_von_indi") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_lady_catriona_von_indiAI (creature);
+ return new boss_lady_catriona_von_indiAI(creature);
}
struct boss_lady_catriona_von_indiAI : public boss_moroes_guestAI
@@ -531,7 +534,7 @@ public:
uint32 HolyFire_Timer;
uint32 PowerWordShield_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
DispelMagic_Timer = 11000;
GreaterHeal_Timer = 1500;
@@ -543,7 +546,7 @@ public:
boss_moroes_guestAI::Reset();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -566,7 +569,7 @@ public:
if (HolyFire_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_HOLYFIRE);
+ DoCastVictim(SPELL_HOLYFIRE);
HolyFire_Timer = 22000;
} else HolyFire_Timer -= diff;
@@ -586,9 +589,9 @@ class boss_lady_keira_berrybuck : public CreatureScript
public:
boss_lady_keira_berrybuck() : CreatureScript("boss_lady_keira_berrybuck") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_lady_keira_berrybuckAI (creature);
+ return new boss_lady_keira_berrybuckAI(creature);
}
struct boss_lady_keira_berrybuckAI : public boss_moroes_guestAI
@@ -601,7 +604,7 @@ public:
uint32 HolyLight_Timer;
uint32 DivineShield_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
Cleanse_Timer = 13000;
GreaterBless_Timer = 1000;
@@ -613,7 +616,7 @@ public:
boss_moroes_guestAI::Reset();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -660,9 +663,9 @@ class boss_lord_robin_daris : public CreatureScript
public:
boss_lord_robin_daris() : CreatureScript("boss_lord_robin_daris") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_lord_robin_darisAI (creature);
+ return new boss_lord_robin_darisAI(creature);
}
struct boss_lord_robin_darisAI : public boss_moroes_guestAI
@@ -674,7 +677,7 @@ public:
uint32 MortalStrike_Timer;
uint32 WhirlWind_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
Hamstring_Timer = 7000;
MortalStrike_Timer = 10000;
@@ -683,7 +686,7 @@ public:
boss_moroes_guestAI::Reset();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -692,13 +695,13 @@ public:
if (Hamstring_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_HAMSTRING);
+ DoCastVictim(SPELL_HAMSTRING);
Hamstring_Timer = 12000;
} else Hamstring_Timer -= diff;
if (MortalStrike_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_MORTALSTRIKE);
+ DoCastVictim(SPELL_MORTALSTRIKE);
MortalStrike_Timer = 18000;
} else MortalStrike_Timer -= diff;
@@ -716,9 +719,9 @@ class boss_lord_crispin_ference : public CreatureScript
public:
boss_lord_crispin_ference() : CreatureScript("boss_lord_crispin_ference") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_lord_crispin_ferenceAI (creature);
+ return new boss_lord_crispin_ferenceAI(creature);
}
struct boss_lord_crispin_ferenceAI : public boss_moroes_guestAI
@@ -731,7 +734,7 @@ public:
uint32 ShieldBash_Timer;
uint32 ShieldWall_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
Disarm_Timer = 6000;
HeroicStrike_Timer = 10000;
@@ -741,7 +744,7 @@ public:
boss_moroes_guestAI::Reset();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -750,19 +753,19 @@ public:
if (Disarm_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_DISARM);
+ DoCastVictim(SPELL_DISARM);
Disarm_Timer = 12000;
} else Disarm_Timer -= diff;
if (HeroicStrike_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_HEROICSTRIKE);
+ DoCastVictim(SPELL_HEROICSTRIKE);
HeroicStrike_Timer = 10000;
} else HeroicStrike_Timer -= diff;
if (ShieldBash_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_SHIELDBASH);
+ DoCastVictim(SPELL_SHIELDBASH);
ShieldBash_Timer = 13000;
} else ShieldBash_Timer -= diff;
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp
index 305e37a72d3..f80ff5b6028 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp
@@ -69,7 +69,7 @@ class boss_netherspite : public CreatureScript
public:
boss_netherspite() : CreatureScript("boss_netherspite") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_netherspiteAI(creature);
}
@@ -127,7 +127,7 @@ public:
return sqrt((xa-xb)*(xa-xb) + (ya-yb)*(ya-yb));
}
- void Reset()
+ void Reset() OVERRIDE
{
Berserk = false;
NetherInfusionTimer = 540000;
@@ -184,8 +184,8 @@ public:
// get the best suitable target
for (Map::PlayerList::const_iterator i = players.begin(); i != players.end(); ++i)
{
- Player* p = i->getSource();
- if (p && p->isAlive() // alive
+ Player* p = i->GetSource();
+ if (p && p->IsAlive() // alive
&& (!target || target->GetDistance2d(portal)>p->GetDistance2d(portal)) // closer than current best
&& !p->HasAura(PlayerDebuff[j], 0) // not exhausted
&& !p->HasAura(PlayerBuff[(j+1)%3], 0) // not on another beam
@@ -219,8 +219,8 @@ public:
}
}
// aggro target if Red Beam
- if (j == RED_PORTAL && me->getVictim() != target && target->GetTypeId() == TYPEID_PLAYER)
- me->getThreatManager().addThreat(target, 100000.0f+DoGetThreat(me->getVictim()));
+ if (j == RED_PORTAL && me->GetVictim() != target && target->GetTypeId() == TYPEID_PLAYER)
+ me->getThreatManager().addThreat(target, 100000.0f+DoGetThreat(me->GetVictim()));
}
}
@@ -257,19 +257,19 @@ public:
Door->SetGoState(open ? GO_STATE_ACTIVE : GO_STATE_READY);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
HandleDoors(false);
SwitchToPortalPhase();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
HandleDoors(true);
DestroyPortals();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp
index 8165ba5c53b..984ef902f05 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp
@@ -69,9 +69,9 @@ class boss_nightbane : public CreatureScript
public:
boss_nightbane() : CreatureScript("boss_nightbane") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_nightbaneAI (creature);
+ return new boss_nightbaneAI(creature);
}
struct boss_nightbaneAI : public ScriptedAI
@@ -109,7 +109,7 @@ public:
uint32 WaitTimer;
uint32 MovePhase;
- void Reset()
+ void Reset() OVERRIDE
{
BellowingRoarTimer = 30000;
CharredEarthTimer = 15000;
@@ -160,7 +160,7 @@ public:
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (instance)
instance->SetData(TYPE_NIGHTBANE, IN_PROGRESS);
@@ -169,13 +169,13 @@ public:
Talk(YELL_AGGRO);
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (!Intro && !Flying)
ScriptedAI::AttackStart(who);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
instance->SetData(TYPE_NIGHTBANE, DONE);
@@ -183,13 +183,14 @@ public:
HandleTerraceDoors(true);
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (!Intro && !Flying)
ScriptedAI::MoveInLineOfSight(who);
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type != POINT_MOTION_TYPE)
return;
@@ -235,9 +236,9 @@ public:
}
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
- summoned->AI()->AttackStart(me->getVictim());
+ summoned->AI()->AttackStart(me->GetVictim());
}
void TakeOff()
@@ -260,7 +261,7 @@ public:
Skeletons = false;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
/* The timer for this was never setup apparently, not sure if the code works properly:
if (WaitTimer <= diff)
@@ -309,19 +310,19 @@ public:
{
if (Movement)
{
- DoStartMovement(me->getVictim());
+ DoStartMovement(me->GetVictim());
Movement = false;
}
if (BellowingRoarTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_BELLOWING_ROAR);
+ DoCastVictim(SPELL_BELLOWING_ROAR);
BellowingRoarTimer = urand(30000, 40000);
} else BellowingRoarTimer -= diff;
if (SmolderingBreathTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_SMOLDERING_BREATH);
+ DoCastVictim(SPELL_SMOLDERING_BREATH);
SmolderingBreathTimer = 20000;
} else SmolderingBreathTimer -= diff;
@@ -370,14 +371,14 @@ public:
{
for (uint8 i = 0; i <= 3; ++i)
{
- DoCast(me->getVictim(), SPELL_SUMMON_SKELETON);
+ DoCastVictim(SPELL_SUMMON_SKELETON);
Skeletons = true;
}
}
if (RainofBonesTimer < diff && !RainBones) // only once at the beginning of phase 2
{
- DoCast(me->getVictim(), SPELL_RAIN_OF_BONES);
+ DoCastVictim(SPELL_RAIN_OF_BONES);
RainBones = true;
SmokingBlastTimer = 20000;
} else RainofBonesTimer -= diff;
@@ -394,7 +395,7 @@ public:
{
if (SmokingBlastTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_SMOKING_BLAST);
+ DoCastVictim(SPELL_SMOKING_BLAST);
SmokingBlastTimer = 1500; //timer wrong
} else SmokingBlastTimer -= diff;
}
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp
index e2227c3f304..2abfcead826 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp
@@ -102,9 +102,9 @@ class netherspite_infernal : public CreatureScript
public:
netherspite_infernal() : CreatureScript("netherspite_infernal") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new netherspite_infernalAI (creature);
+ return new netherspite_infernalAI(creature);
}
struct netherspite_infernalAI : public ScriptedAI
@@ -117,11 +117,12 @@ public:
uint64 malchezaar;
InfernalPoint *point;
- void Reset() {}
- void EnterCombat(Unit* /*who*/) {}
- void MoveInLineOfSight(Unit* /*who*/) {}
+ void Reset() OVERRIDE {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (HellfireTimer)
{
@@ -143,14 +144,14 @@ public:
}
}
- void KilledUnit(Unit* who)
+ void KilledUnit(Unit* who) OVERRIDE
{
if (Unit* unit = Unit::GetUnit(*me, malchezaar))
if (Creature* creature = unit->ToCreature())
creature->AI()->KilledUnit(who);
}
- void SpellHit(Unit* /*who*/, const SpellInfo* spell)
+ void SpellHit(Unit* /*who*/, const SpellInfo* spell) OVERRIDE
{
if (spell->Id == SPELL_INFERNAL_RELAY)
{
@@ -161,7 +162,7 @@ public:
}
}
- void DamageTaken(Unit* done_by, uint32 &damage)
+ void DamageTaken(Unit* done_by, uint32 &damage) OVERRIDE
{
if (done_by->GetGUID() != malchezaar)
damage = 0;
@@ -176,9 +177,9 @@ class boss_malchezaar : public CreatureScript
public:
boss_malchezaar() : CreatureScript("boss_malchezaar") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_malchezaarAI (creature);
+ return new boss_malchezaarAI(creature);
}
struct boss_malchezaarAI : public ScriptedAI
@@ -210,7 +211,7 @@ public:
uint32 phase;
- void Reset()
+ void Reset() OVERRIDE
{
AxesCleanup();
ClearWeapons();
@@ -242,12 +243,12 @@ public:
instance->HandleGameObject(instance->GetData64(DATA_GO_NETHER_DOOR), true);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -263,7 +264,7 @@ public:
instance->HandleGameObject(instance->GetData64(DATA_GO_NETHER_DOOR), true);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
@@ -276,7 +277,7 @@ public:
//Infernal Cleanup
for (std::vector<uint64>::const_iterator itr = infernals.begin(); itr != infernals.end(); ++itr)
if (Unit* pInfernal = Unit::GetUnit(*me, *itr))
- if (pInfernal->isAlive())
+ if (pInfernal->IsAlive())
{
pInfernal->SetVisible(false);
pInfernal->setDeathState(JUST_DIED);
@@ -290,7 +291,7 @@ public:
for (uint8 i = 0; i < 2; ++i)
{
Unit* axe = Unit::GetUnit(*me, axes[i]);
- if (axe && axe->isAlive())
+ if (axe && axe->IsAlive())
axe->Kill(axe);
axes[i] = 0;
}
@@ -324,7 +325,7 @@ public:
std::advance(itr, 1);
for (; itr != t_list.end(); ++itr) //store the threat list in a different container
if (Unit* target = Unit::GetUnit(*me, (*itr)->getUnitGuid()))
- if (target->isAlive() && target->GetTypeId() == TYPEID_PLAYER)
+ if (target->IsAlive() && target->GetTypeId() == TYPEID_PLAYER)
targets.push_back(target);
//cut down to size if we have more than 5 targets
@@ -348,7 +349,7 @@ public:
for (uint8 i = 0; i < 5; ++i)
{
Unit* target = Unit::GetUnit(*me, enfeeble_targets[i]);
- if (target && target->isAlive())
+ if (target && target->IsAlive())
target->SetHealth(enfeeble_health[i]);
enfeeble_targets[i] = 0;
enfeeble_health[i] = 0;
@@ -386,7 +387,7 @@ public:
Talk(SAY_SUMMON);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -400,8 +401,8 @@ public:
if (me->HasUnitState(UNIT_STATE_STUNNED)) // While shifting to phase 2 malchezaar stuns himself
return;
- if (me->GetUInt64Value(UNIT_FIELD_TARGET) != me->getVictim()->GetGUID())
- me->SetTarget(me->getVictim()->GetGUID());
+ if (me->GetUInt64Value(UNIT_FIELD_TARGET) != me->GetVictim()->GetGUID())
+ me->SetTarget(me->GetVictim()->GetGUID());
if (phase == 1)
{
@@ -480,13 +481,13 @@ public:
if (SunderArmorTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_SUNDER_ARMOR);
+ DoCastVictim(SPELL_SUNDER_ARMOR);
SunderArmorTimer = urand(10000, 18000);
} else SunderArmorTimer -= diff;
if (Cleave_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_CLEAVE);
+ DoCastVictim(SPELL_CLEAVE);
Cleave_Timer = urand(6000, 12000);
} else Cleave_Timer -= diff;
}
@@ -502,11 +503,11 @@ public:
{
if (Unit* axe = Unit::GetUnit(*me, axes[i]))
{
- if (axe->getVictim())
- DoModifyThreatPercent(axe->getVictim(), -100);
+ if (axe->GetVictim())
+ DoModifyThreatPercent(axe->GetVictim(), -100);
if (target)
axe->AddThreat(target, 1000000.0f);
- //axe->getThreatManager().tauntFadeOut(axe->getVictim());
+ //axe->getThreatManager().tauntFadeOut(axe->GetVictim());
//axe->getThreatManager().tauntApply(target);
}
}
@@ -530,7 +531,7 @@ public:
if (ShadowNovaTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_SHADOWNOVA);
+ DoCastVictim(SPELL_SHADOWNOVA);
ShadowNovaTimer = phase == 3 ? 31000 : uint32(-1);
} else ShadowNovaTimer -= diff;
@@ -540,7 +541,7 @@ public:
{
Unit* target = NULL;
if (phase == 1)
- target = me->getVictim(); // the tank
+ target = me->GetVictim(); // the tank
else // anyone but the tank
target = SelectTarget(SELECT_TARGET_RANDOM, 1, 100, true);
@@ -570,18 +571,18 @@ public:
void DoMeleeAttacksIfReady()
{
- if (me->IsWithinMeleeRange(me->getVictim()) && !me->IsNonMeleeSpellCasted(false))
+ if (me->IsWithinMeleeRange(me->GetVictim()) && !me->IsNonMeleeSpellCasted(false))
{
//Check for base attack
- if (me->isAttackReady() && me->getVictim())
+ if (me->isAttackReady() && me->GetVictim())
{
- me->AttackerStateUpdate(me->getVictim());
+ me->AttackerStateUpdate(me->GetVictim());
me->resetAttackTimer();
}
//Check for offhand attack
- if (me->isAttackReady(OFF_ATTACK) && me->getVictim())
+ if (me->isAttackReady(OFF_ATTACK) && me->GetVictim())
{
- me->AttackerStateUpdate(me->getVictim(), OFF_ATTACK);
+ me->AttackerStateUpdate(me->GetVictim(), OFF_ATTACK);
me->resetAttackTimer(OFF_ATTACK);
}
}
@@ -605,7 +606,7 @@ void netherspite_infernal::netherspite_infernalAI::Cleanup()
{
Creature* pMalchezaar = Unit::GetCreature(*me, malchezaar);
- if (pMalchezaar && pMalchezaar->isAlive())
+ if (pMalchezaar && pMalchezaar->IsAlive())
CAST_AI(boss_malchezaar::boss_malchezaarAI, pMalchezaar->AI())->Cleanup(me, point);
}
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp
index 2a349297860..7999524f853 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp
@@ -84,9 +84,9 @@ class boss_shade_of_aran : public CreatureScript
public:
boss_shade_of_aran() : CreatureScript("boss_shade_of_aran") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_aranAI (creature);
+ return new boss_aranAI(creature);
}
struct boss_aranAI : public ScriptedAI
@@ -123,7 +123,7 @@ public:
bool Drinking;
bool DrinkInturrupted;
- void Reset()
+ void Reset() OVERRIDE
{
SecondarySpellTimer = 5000;
NormalCastTimer = 0;
@@ -155,12 +155,12 @@ public:
}
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_KILL);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -171,7 +171,7 @@ public:
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
@@ -195,7 +195,7 @@ public:
{
Unit* target = Unit::GetUnit(*me, (*itr)->getUnitGuid());
//only on alive players
- if (target && target->isAlive() && target->GetTypeId() == TYPEID_PLAYER)
+ if (target && target->IsAlive() && target->GetTypeId() == TYPEID_PLAYER)
targets.push_back(target);
}
@@ -217,7 +217,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -424,7 +424,7 @@ public:
{
if (Creature* unit = me->SummonCreature(CREATURE_WATER_ELEMENTAL, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN, 90000))
{
- unit->Attack(me->getVictim(), true);
+ unit->Attack(me->GetVictim(), true);
unit->setFaction(me->getFaction());
}
}
@@ -438,7 +438,7 @@ public:
{
if (Creature* unit = me->SummonCreature(CREATURE_SHADOW_OF_ARAN, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
{
- unit->Attack(me->getVictim(), true);
+ unit->Attack(me->GetVictim(), true);
unit->setFaction(me->getFaction());
}
}
@@ -478,13 +478,13 @@ public:
DoMeleeAttackIfReady();
}
- void DamageTaken(Unit* /*pAttacker*/, uint32 &damage)
+ void DamageTaken(Unit* /*pAttacker*/, uint32 &damage) OVERRIDE
{
if (!DrinkInturrupted && Drinking && damage)
DrinkInturrupted = true;
}
- void SpellHit(Unit* /*pAttacker*/, const SpellInfo* Spell)
+ void SpellHit(Unit* /*pAttacker*/, const SpellInfo* Spell) OVERRIDE
{
//We only care about interrupt effects and only if they are durring a spell currently being casted
if ((Spell->Effects[0].Effect != SPELL_EFFECT_INTERRUPT_CAST &&
@@ -508,14 +508,14 @@ public:
};
};
-class mob_aran_elemental : public CreatureScript
+class npc_aran_elemental : public CreatureScript
{
public:
- mob_aran_elemental() : CreatureScript("mob_aran_elemental") { }
+ npc_aran_elemental() : CreatureScript("npc_aran_elemental") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new water_elementalAI (creature);
+ return new water_elementalAI(creature);
}
struct water_elementalAI : public ScriptedAI
@@ -524,21 +524,21 @@ public:
uint32 CastTimer;
- void Reset()
+ void Reset() OVERRIDE
{
CastTimer = 2000 + (rand()%3000);
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
if (CastTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_WATERBOLT);
+ DoCastVictim(SPELL_WATERBOLT);
CastTimer = urand(2000, 5000);
} else CastTimer -= diff;
}
@@ -548,5 +548,5 @@ public:
void AddSC_boss_shade_of_aran()
{
new boss_shade_of_aran();
- new mob_aran_elemental();
+ new npc_aran_elemental();
}
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp
index fe773a1e3a2..f348cf95a82 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp
@@ -34,8 +34,11 @@ enum TerestianIllhoof
SAY_DEATH = 2,
SAY_AGGRO = 3,
SAY_SACRIFICE = 4,
- SAY_SUMMON = 5,
+ SAY_SUMMON = 5
+};
+enum Spells
+{
SPELL_SUMMON_DEMONCHAINS = 30120, // Summons demonic chains that maintain the ritual of sacrifice.
SPELL_DEMON_CHAINS = 30206, // Instant - Visual Effect
SPELL_ENRAGE = 23537, // Increases the caster's attack speed by 50% and the Physical damage it deals by 219 to 281 for 10 min.
@@ -51,27 +54,30 @@ enum TerestianIllhoof
SPELL_FIREBOLT = 30050, // Blasts a target for 150 Fire damage.
SPELL_BROKEN_PACT = 30065, // All damage taken increased by 25%.
SPELL_AMPLIFY_FLAMES = 30053, // Increases the Fire damage taken by an enemy by 500 for 25 sec.
+};
- CREATURE_DEMONCHAINS = 17248,
- CREATURE_FIENDISHIMP = 17267,
- CREATURE_PORTAL = 17265,
- CREATURE_KILREK = 17229,
+enum Creatures
+{
+ NPC_DEMONCHAINS = 17248,
+ NPC_FIENDISHIMP = 17267,
+ NPC_PORTAL = 17265,
+ NPC_KILREK = 17229
};
-class mob_kilrek : public CreatureScript
+class npc_kilrek : public CreatureScript
{
public:
- mob_kilrek() : CreatureScript("mob_kilrek") { }
+ npc_kilrek() : CreatureScript("npc_kilrek") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_kilrekAI (creature);
+ return new npc_kilrekAI(creature);
}
- struct mob_kilrekAI : public ScriptedAI
+ struct npc_kilrekAI : public ScriptedAI
{
- mob_kilrekAI(Creature* creature) : ScriptedAI(creature)
+ npc_kilrekAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -82,13 +88,13 @@ public:
uint32 AmplifyTimer;
- void Reset()
+ void Reset() OVERRIDE
{
TerestianGUID = 0;
AmplifyTimer = 2000;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (!instance)
{
@@ -97,7 +103,7 @@ public:
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
{
@@ -105,13 +111,13 @@ public:
if (TerestianGUID)
{
Unit* Terestian = Unit::GetUnit(*me, TerestianGUID);
- if (Terestian && Terestian->isAlive())
+ if (Terestian && Terestian->IsAlive())
DoCast(Terestian, SPELL_BROKEN_PACT, true);
}
} else ERROR_INST_DATA(me);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -120,7 +126,7 @@ public:
if (AmplifyTimer <= diff)
{
me->InterruptNonMeleeSpells(false);
- DoCast(me->getVictim(), SPELL_AMPLIFY_FLAMES);
+ DoCastVictim(SPELL_AMPLIFY_FLAMES);
AmplifyTimer = urand(10000, 20000);
} else AmplifyTimer -= diff;
@@ -130,32 +136,33 @@ public:
};
};
-class mob_demon_chain : public CreatureScript
+class npc_demon_chain : public CreatureScript
{
public:
- mob_demon_chain() : CreatureScript("mob_demon_chain") { }
+ npc_demon_chain() : CreatureScript("npc_demon_chain") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_demon_chainAI(creature);
+ return new npc_demon_chainAI(creature);
}
- struct mob_demon_chainAI : public ScriptedAI
+ struct npc_demon_chainAI : public ScriptedAI
{
- mob_demon_chainAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_demon_chainAI(Creature* creature) : ScriptedAI(creature) {}
uint64 SacrificeGUID;
- void Reset()
+ void Reset() OVERRIDE
{
SacrificeGUID = 0;
}
- void EnterCombat(Unit* /*who*/) {}
- void AttackStart(Unit* /*who*/) {}
- void MoveInLineOfSight(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+ void AttackStart(Unit* /*who*/) OVERRIDE {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
+
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (SacrificeGUID)
{
@@ -167,28 +174,28 @@ public:
};
};
-class mob_fiendish_portal : public CreatureScript
+class npc_fiendish_portal : public CreatureScript
{
public:
- mob_fiendish_portal() : CreatureScript("mob_fiendish_portal") { }
+ npc_fiendish_portal() : CreatureScript("npc_fiendish_portal") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_fiendish_portalAI (creature);
+ return new npc_fiendish_portalAI(creature);
}
- struct mob_fiendish_portalAI : public PassiveAI
+ struct npc_fiendish_portalAI : public PassiveAI
{
- mob_fiendish_portalAI(Creature* creature) : PassiveAI(creature), summons(me){}
+ npc_fiendish_portalAI(Creature* creature) : PassiveAI(creature), summons(me){}
SummonList summons;
- void Reset()
+ void Reset() OVERRIDE
{
DespawnAllImp();
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
summons.Summon(summon);
DoZoneInCombat(summon);
@@ -201,34 +208,32 @@ public:
};
};
-#define SPELL_FIREBOLT 30050 // Blasts a target for 181-209 Fire damage.
-
-class mob_fiendish_imp : public CreatureScript
+class npc_fiendish_imp : public CreatureScript
{
public:
- mob_fiendish_imp() : CreatureScript("mob_fiendish_imp") { }
+ npc_fiendish_imp() : CreatureScript("npc_fiendish_imp") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_fiendish_impAI (creature);
+ return new npc_fiendish_impAI(creature);
}
- struct mob_fiendish_impAI : public ScriptedAI
+ struct npc_fiendish_impAI : public ScriptedAI
{
- mob_fiendish_impAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_fiendish_impAI(Creature* creature) : ScriptedAI(creature) {}
uint32 FireboltTimer;
- void Reset()
+ void Reset() OVERRIDE
{
FireboltTimer = 2000;
me->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_FIRE, true);
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -236,7 +241,7 @@ public:
if (FireboltTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_FIREBOLT);
+ DoCastVictim(SPELL_FIREBOLT);
FireboltTimer = 2200;
} else FireboltTimer -= diff;
@@ -250,9 +255,9 @@ class boss_terestian_illhoof : public CreatureScript
public:
boss_terestian_illhoof() : CreatureScript("boss_terestian_illhoof") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_terestianAI (creature);
+ return new boss_terestianAI(creature);
}
struct boss_terestianAI : public ScriptedAI
@@ -277,7 +282,7 @@ public:
bool SummonedPortals;
bool Berserk;
- void Reset()
+ void Reset() OVERRIDE
{
for (uint8 i = 0; i < 2; ++i)
{
@@ -285,7 +290,7 @@ public:
{
if (Creature* pPortal = Unit::GetCreature(*me, PortalGUID[i]))
{
- CAST_AI(mob_fiendish_portal::mob_fiendish_portalAI, pPortal->AI())->DespawnAllImp();
+ CAST_AI(npc_fiendish_portal::npc_fiendish_portalAI, pPortal->AI())->DespawnAllImp();
pPortal->DespawnOrUnsummon();
}
@@ -309,7 +314,7 @@ public:
if (Minion* Kilrek = me->GetFirstMinion())
{
- if (!Kilrek->isAlive())
+ if (!Kilrek->IsAlive())
{
Kilrek->UnSummon();
DoCast(me, SPELL_SUMMON_IMP, true);
@@ -318,14 +323,14 @@ public:
else DoCast(me, SPELL_SUMMON_IMP, true);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
- if (summoned->GetEntry() == CREATURE_PORTAL)
+ if (summoned->GetEntry() == NPC_PORTAL)
{
PortalGUID[PortalsCount] = summoned->GetGUID();
++PortalsCount;
@@ -338,12 +343,12 @@ public:
}
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
for (uint8 i = 0; i < 2; ++i)
{
@@ -362,7 +367,7 @@ public:
instance->SetData(TYPE_TERESTIAN, DONE);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -370,14 +375,14 @@ public:
if (SacrificeTimer <= diff)
{
Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 100, true);
- if (target && target->isAlive())
+ if (target && target->IsAlive())
{
DoCast(target, SPELL_SACRIFICE, true);
DoCast(target, SPELL_SUMMON_DEMONCHAINS, true);
- if (Creature* Chains = me->FindNearestCreature(CREATURE_DEMONCHAINS, 5000))
+ if (Creature* Chains = me->FindNearestCreature(NPC_DEMONCHAINS, 5000))
{
- CAST_AI(mob_demon_chain::mob_demon_chainAI, Chains->AI())->SacrificeGUID = target->GetGUID();
+ CAST_AI(npc_demon_chain::npc_demon_chainAI, Chains->AI())->SacrificeGUID = target->GetGUID();
Chains->CastSpell(Chains, SPELL_DEMON_CHAINS, true);
Talk(SAY_SACRIFICE);
SacrificeTimer = 30000;
@@ -394,15 +399,15 @@ public:
if (SummonTimer <= diff)
{
if (!PortalGUID[0])
- DoCast(me->getVictim(), SPELL_FIENDISH_PORTAL, false);
+ DoCastVictim(SPELL_FIENDISH_PORTAL, false);
if (!PortalGUID[1])
- DoCast(me->getVictim(), SPELL_FIENDISH_PORTAL_1, false);
+ DoCastVictim(SPELL_FIENDISH_PORTAL_1, false);
if (PortalGUID[0] && PortalGUID[1])
{
if (Creature* pPortal = Unit::GetCreature(*me, PortalGUID[urand(0, 1)]))
- pPortal->CastSpell(me->getVictim(), SPELL_SUMMON_FIENDISIMP, false);
+ pPortal->CastSpell(me->GetVictim(), SPELL_SUMMON_FIENDISIMP, false);
SummonTimer = 5000;
}
} else SummonTimer -= diff;
@@ -424,8 +429,8 @@ public:
void AddSC_boss_terestian_illhoof()
{
new boss_terestian_illhoof();
- new mob_fiendish_imp();
- new mob_fiendish_portal();
- new mob_kilrek();
- new mob_demon_chain();
+ new npc_fiendish_imp();
+ new npc_fiendish_portal();
+ new npc_kilrek();
+ new npc_demon_chain();
}
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp
index d1659a07851..29ae4890fdc 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp
@@ -105,8 +105,8 @@ void SummonCroneIfReady(InstanceScript* instance, Creature* creature)
{
if (Creature* pCrone = creature->SummonCreature(CREATURE_CRONE, -10891.96f, -1755.95f, creature->GetPositionZ(), 4.64f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, HOUR*2*IN_MILLISECONDS))
{
- if (creature->getVictim())
- pCrone->AI()->AttackStart(creature->getVictim());
+ if (creature->GetVictim())
+ pCrone->AI()->AttackStart(creature->GetVictim());
}
}
};
@@ -116,7 +116,7 @@ class boss_dorothee : public CreatureScript
public:
boss_dorothee() : CreatureScript("boss_dorothee") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_dorotheeAI(creature);
}
@@ -139,7 +139,7 @@ public:
bool SummonedTito;
bool TitoDied;
- void Reset()
+ void Reset() OVERRIDE
{
AggroTimer = 500;
@@ -151,19 +151,19 @@ public:
TitoDied = false;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_DOROTHEE_AGGRO);
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
me->DespawnOrUnsummon();
}
void SummonTito();
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DOROTHEE_DEATH);
@@ -171,7 +171,7 @@ public:
SummonCroneIfReady(instance, me);
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
return;
@@ -179,7 +179,8 @@ public:
ScriptedAI::AttackStart(who);
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
return;
@@ -187,7 +188,7 @@ public:
ScriptedAI::MoveInLineOfSight(who);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (AggroTimer)
{
@@ -209,7 +210,7 @@ public:
if (FearTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_SCREAM);
+ DoCastVictim(SPELL_SCREAM);
FearTimer = 30000;
} else FearTimer -= diff;
@@ -225,37 +226,37 @@ public:
};
};
-class mob_tito : public CreatureScript
+class npc_tito : public CreatureScript
{
public:
- mob_tito() : CreatureScript("mob_tito") { }
+ npc_tito() : CreatureScript("npc_tito") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_titoAI(creature);
+ return new npc_titoAI(creature);
}
- struct mob_titoAI : public ScriptedAI
+ struct npc_titoAI : public ScriptedAI
{
- mob_titoAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_titoAI(Creature* creature) : ScriptedAI(creature) {}
uint64 DorotheeGUID;
uint32 YipTimer;
- void Reset()
+ void Reset() OVERRIDE
{
DorotheeGUID = 0;
YipTimer = 10000;
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (DorotheeGUID)
{
Creature* Dorothee = (Unit::GetCreature((*me), DorotheeGUID));
- if (Dorothee && Dorothee->isAlive())
+ if (Dorothee && Dorothee->IsAlive())
{
CAST_AI(boss_dorothee::boss_dorotheeAI, Dorothee->AI())->TitoDied = true;
Talk(SAY_DOROTHEE_TITO_DEATH, Dorothee->GetGUID());
@@ -263,14 +264,14 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
if (YipTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_YIPPING);
+ DoCastVictim(SPELL_YIPPING);
YipTimer = 10000;
} else YipTimer -= diff;
@@ -284,8 +285,8 @@ void boss_dorothee::boss_dorotheeAI::SummonTito()
if (Creature* pTito = me->SummonCreature(CREATURE_TITO, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000))
{
Talk(SAY_DOROTHEE_SUMMON);
- CAST_AI(mob_tito::mob_titoAI, pTito->AI())->DorotheeGUID = me->GetGUID();
- pTito->AI()->AttackStart(me->getVictim());
+ CAST_AI(npc_tito::npc_titoAI, pTito->AI())->DorotheeGUID = me->GetGUID();
+ pTito->AI()->AttackStart(me->GetVictim());
SummonedTito = true;
TitoDied = false;
}
@@ -296,7 +297,7 @@ class boss_strawman : public CreatureScript
public:
boss_strawman() : CreatureScript("boss_strawman") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_strawmanAI(creature);
}
@@ -314,14 +315,14 @@ public:
uint32 BrainBashTimer;
uint32 BrainWipeTimer;
- void Reset()
+ void Reset() OVERRIDE
{
AggroTimer = 13000;
BrainBashTimer = 5000;
BrainWipeTimer = 7000;
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
return;
@@ -329,7 +330,8 @@ public:
ScriptedAI::AttackStart(who);
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
return;
@@ -337,17 +339,17 @@ public:
ScriptedAI::MoveInLineOfSight(who);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_STRAWMAN_AGGRO);
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
me->DespawnOrUnsummon();
}
- void SpellHit(Unit* /*caster*/, const SpellInfo* Spell)
+ void SpellHit(Unit* /*caster*/, const SpellInfo* Spell) OVERRIDE
{
if ((Spell->SchoolMask == SPELL_SCHOOL_MASK_FIRE) && (!(rand()%10)))
{
@@ -360,7 +362,7 @@ public:
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_STRAWMAN_DEATH);
@@ -368,12 +370,12 @@ public:
SummonCroneIfReady(instance, me);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_STRAWMAN_SLAY);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (AggroTimer)
{
@@ -389,7 +391,7 @@ public:
if (BrainBashTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_BRAIN_BASH);
+ DoCastVictim(SPELL_BRAIN_BASH);
BrainBashTimer = 15000;
} else BrainBashTimer -= diff;
@@ -410,7 +412,7 @@ class boss_tinhead : public CreatureScript
public:
boss_tinhead() : CreatureScript("boss_tinhead") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_tinheadAI(creature);
}
@@ -430,7 +432,7 @@ public:
uint8 RustCount;
- void Reset()
+ void Reset() OVERRIDE
{
AggroTimer = 15000;
CleaveTimer = 5000;
@@ -439,17 +441,17 @@ public:
RustCount = 0;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_TINHEAD_AGGRO);
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
me->DespawnOrUnsummon();
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
return;
@@ -457,7 +459,8 @@ public:
ScriptedAI::AttackStart(who);
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
return;
@@ -465,7 +468,7 @@ public:
ScriptedAI::MoveInLineOfSight(who);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_TINHEAD_DEATH);
@@ -473,12 +476,12 @@ public:
SummonCroneIfReady(instance, me);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_TINHEAD_SLAY);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (AggroTimer)
{
@@ -494,7 +497,7 @@ public:
if (CleaveTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_CLEAVE);
+ DoCastVictim(SPELL_CLEAVE);
CleaveTimer = 5000;
} else CleaveTimer -= diff;
@@ -519,7 +522,7 @@ class boss_roar : public CreatureScript
public:
boss_roar() : CreatureScript("boss_roar") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_roarAI(creature);
}
@@ -538,7 +541,7 @@ public:
uint32 ShredTimer;
uint32 ScreamTimer;
- void Reset()
+ void Reset() OVERRIDE
{
AggroTimer = 20000;
MangleTimer = 5000;
@@ -546,7 +549,8 @@ public:
ScreamTimer = 15000;
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
return;
@@ -554,7 +558,7 @@ public:
ScriptedAI::MoveInLineOfSight(who);
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
return;
@@ -562,17 +566,17 @@ public:
ScriptedAI::AttackStart(who);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_ROAR_AGGRO);
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
me->DespawnOrUnsummon();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_ROAR_DEATH);
@@ -580,12 +584,12 @@ public:
SummonCroneIfReady(instance, me);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_ROAR_SLAY);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (AggroTimer)
{
@@ -601,19 +605,19 @@ public:
if (MangleTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_MANGLE);
+ DoCastVictim(SPELL_MANGLE);
MangleTimer = urand(5000, 8000);
} else MangleTimer -= diff;
if (ShredTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_SHRED);
+ DoCastVictim(SPELL_SHRED);
ShredTimer = urand(10000, 15000);
} else ShredTimer -= diff;
if (ScreamTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_FRIGHTENED_SCREAM);
+ DoCastVictim(SPELL_FRIGHTENED_SCREAM);
ScreamTimer = urand(20000, 30000);
} else ScreamTimer -= diff;
@@ -627,7 +631,7 @@ class boss_crone : public CreatureScript
public:
boss_crone() : CreatureScript("boss_crone") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_croneAI(creature);
}
@@ -644,30 +648,30 @@ public:
uint32 CycloneTimer;
uint32 ChainLightningTimer;
- void Reset()
+ void Reset() OVERRIDE
{
CycloneTimer = 30000;
ChainLightningTimer = 10000;
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
me->DespawnOrUnsummon();
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_CRONE_SLAY);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_CRONE_AGGRO);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_CRONE_DEATH);
@@ -682,7 +686,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -699,7 +703,7 @@ public:
if (ChainLightningTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_CHAIN_LIGHTNING);
+ DoCastVictim(SPELL_CHAIN_LIGHTNING);
ChainLightningTimer = 15000;
} else ChainLightningTimer -= diff;
@@ -708,34 +712,35 @@ public:
};
};
-class mob_cyclone : public CreatureScript
+class npc_cyclone : public CreatureScript
{
public:
- mob_cyclone() : CreatureScript("mob_cyclone") { }
+ npc_cyclone() : CreatureScript("npc_cyclone") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_cycloneAI(creature);
+ return new npc_cycloneAI(creature);
}
- struct mob_cycloneAI : public ScriptedAI
+ struct npc_cycloneAI : public ScriptedAI
{
- mob_cycloneAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_cycloneAI(Creature* creature) : ScriptedAI(creature) {}
uint32 MoveTimer;
- void Reset()
+ void Reset() OVERRIDE
{
MoveTimer = 1000;
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE
- void MoveInLineOfSight(Unit* /*who*/)
{
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!me->HasAura(SPELL_KNOCKBACK))
DoCast(me, SPELL_KNOCKBACK, true);
@@ -778,7 +783,7 @@ class npc_grandmother : public CreatureScript
public:
npc_grandmother() : CreatureScript("npc_grandmother") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF)
@@ -792,7 +797,7 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_GRANDMA, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
player->SEND_GOSSIP_MENU(8990, creature->GetGUID());
@@ -806,7 +811,7 @@ class boss_bigbadwolf : public CreatureScript
public:
boss_bigbadwolf() : CreatureScript("boss_bigbadwolf") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_bigbadwolfAI(creature);
}
@@ -829,7 +834,7 @@ public:
bool IsChasing;
- void Reset()
+ void Reset() OVERRIDE
{
ChaseTimer = 30000;
FearTimer = urand(25000, 35000);
@@ -841,22 +846,22 @@ public:
IsChasing = false;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_WOLF_AGGRO);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_WOLF_SLAY);
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
me->DespawnOrUnsummon();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
DoPlaySoundToSet(me, SOUND_WOLF_DEATH);
@@ -871,7 +876,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -917,13 +922,13 @@ public:
if (FearTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_TERRIFYING_HOWL);
+ DoCastVictim(SPELL_TERRIFYING_HOWL);
FearTimer = urand(25000, 35000);
} else FearTimer -= diff;
if (SwipeTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_WIDE_SWIPE);
+ DoCastVictim(SPELL_WIDE_SWIPE);
SwipeTimer = urand(25000, 30000);
} else SwipeTimer -= diff;
}
@@ -994,10 +999,10 @@ void Resurrect(Creature* target)
target->SetFullHealth();
target->SetStandState(UNIT_STAND_STATE_STAND);
target->CastSpell(target, SPELL_RES_VISUAL, true);
- if (target->getVictim())
+ if (target->GetVictim())
{
- target->GetMotionMaster()->MoveChase(target->getVictim());
- target->AI()->AttackStart(target->getVictim());
+ target->GetMotionMaster()->MoveChase(target->GetVictim());
+ target->AI()->AttackStart(target->GetVictim());
}
else
target->GetMotionMaster()->Initialize();
@@ -1008,7 +1013,7 @@ class boss_julianne : public CreatureScript
public:
boss_julianne() : CreatureScript("boss_julianne") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_julianneAI(creature);
}
@@ -1045,7 +1050,7 @@ public:
bool SummonedRomulo;
bool RomuloDead;
- void Reset()
+ void Reset() OVERRIDE
{
RomuloGUID = 0;
Phase = PHASE_JULIANNE;
@@ -1068,9 +1073,9 @@ public:
RomuloDead = false;
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
return;
@@ -1078,7 +1083,8 @@ public:
ScriptedAI::AttackStart(who);
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
return;
@@ -1086,12 +1092,12 @@ public:
ScriptedAI::MoveInLineOfSight(who);
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
me->DespawnOrUnsummon();
}
- void SpellHit(Unit* /*caster*/, const SpellInfo* Spell)
+ void SpellHit(Unit* /*caster*/, const SpellInfo* Spell) OVERRIDE
{
if (Spell->Id == SPELL_DRINK_POISON)
{
@@ -1100,9 +1106,9 @@ public:
}
}
- void DamageTaken(Unit* /*done_by*/, uint32 &damage);
+ void DamageTaken(Unit* /*done_by*/, uint32 &damage) OVERRIDE;
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_JULIANNE_DEATH02);
@@ -1116,12 +1122,12 @@ public:
}
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_JULIANNE_SLAY);
}
- void UpdateAI(uint32 diff);
+ void UpdateAI(uint32 diff) OVERRIDE;
};
};
@@ -1130,7 +1136,7 @@ class boss_romulo : public CreatureScript
public:
boss_romulo() : CreatureScript("boss_romulo") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_romuloAI(creature);
}
@@ -1160,7 +1166,7 @@ public:
bool IsFakingDeath;
bool JulianneDead;
- void Reset()
+ void Reset() OVERRIDE
{
JulianneGUID = 0;
Phase = PHASE_ROMULO;
@@ -1175,12 +1181,12 @@ public:
JulianneDead = false;
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
me->DespawnOrUnsummon();
}
- void DamageTaken(Unit* /*done_by*/, uint32 &damage)
+ void DamageTaken(Unit* /*done_by*/, uint32 &damage) OVERRIDE
{
if (damage < me->GetHealth())
return;
@@ -1234,21 +1240,22 @@ public:
TC_LOG_ERROR(LOG_FILTER_TSCR, "boss_romuloAI: DamageTaken reach end of code, that should not happen.");
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_ROMULO_AGGRO);
if (JulianneGUID)
{
Creature* Julianne = (Unit::GetCreature((*me), JulianneGUID));
- if (Julianne && Julianne->getVictim())
+ if (Julianne && Julianne->GetVictim())
{
- me->AddThreat(Julianne->getVictim(), 1.0f);
- AttackStart(Julianne->getVictim());
+ me->AddThreat(Julianne->GetVictim(), 1.0f);
+ AttackStart(Julianne->GetVictim());
}
}
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
return;
@@ -1256,7 +1263,7 @@ public:
ScriptedAI::MoveInLineOfSight(who);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_ROMULO_DEATH);
@@ -1271,12 +1278,12 @@ public:
}
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_ROMULO_SLAY);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim() || IsFakingDeath)
return;
@@ -1322,7 +1329,7 @@ public:
if (PoisonThrustTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_POISON_THRUST);
+ DoCastVictim(SPELL_POISON_THRUST);
PoisonThrustTimer = urand(10000, 20000);
} else PoisonThrustTimer -= diff;
@@ -1390,8 +1397,8 @@ void boss_julianne::boss_julianneAI::UpdateAI(uint32 diff)
Phase = PHASE_BOTH;
IsFakingDeath = false;
- if (me->getVictim())
- AttackStart(me->getVictim());
+ if (me->GetVictim())
+ AttackStart(me->GetVictim());
ResurrectSelfTimer = 0;
ResurrectTimer = 1000;
@@ -1441,7 +1448,7 @@ void boss_julianne::boss_julianneAI::UpdateAI(uint32 diff)
if (urand(0, 1) && SummonedRomulo)
{
Creature* Romulo = (Unit::GetCreature((*me), RomuloGUID));
- if (Romulo && Romulo->isAlive() && !RomuloDead)
+ if (Romulo && Romulo->IsAlive() && !RomuloDead)
DoCast(Romulo, SPELL_ETERNAL_AFFECTION);
} else DoCast(me, SPELL_ETERNAL_AFFECTION);
@@ -1520,8 +1527,8 @@ void AddSC_bosses_opera()
new boss_tinhead();
new boss_roar();
new boss_crone();
- new mob_tito();
- new mob_cyclone();
+ new npc_tito();
+ new npc_cyclone();
new npc_grandmother();
new boss_bigbadwolf();
new boss_julianne();
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp b/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp
index 412fcae76b1..eef61f0c051 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp
@@ -49,7 +49,7 @@ class instance_karazhan : public InstanceMapScript
public:
instance_karazhan() : InstanceMapScript("instance_karazhan", 532) { }
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_karazhan_InstanceMapScript(map);
}
@@ -127,7 +127,7 @@ public:
}
}
- void SetData(uint32 type, uint32 uiData)
+ void SetData(uint32 type, uint32 uiData) OVERRIDE
{
switch (type)
{
@@ -182,7 +182,7 @@ public:
}
}
- void SetData64(uint32 identifier, uint64 data)
+ void SetData64(uint32 identifier, uint64 data) OVERRIDE
{
switch (identifier)
{
@@ -241,7 +241,7 @@ public:
return strSaveData;
}
- uint32 GetData(uint32 uiData) const
+ uint32 GetData(uint32 uiData) const OVERRIDE
{
switch (uiData)
{
@@ -264,7 +264,7 @@ public:
return 0;
}
- uint64 GetData64(uint32 uiData) const
+ uint64 GetData64(uint32 uiData) const OVERRIDE
{
switch (uiData)
{
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp
index 8514503a952..679f52343eb 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp
@@ -36,6 +36,28 @@ EndContentData */
#include "ScriptedEscortAI.h"
#include "Player.h"
+enum Spells
+{
+ // Barnes
+ SPELL_SPOTLIGHT = 25824,
+ SPELL_TUXEDO = 32616,
+
+ // Berthold
+ SPELL_TELEPORT = 39567,
+
+ // Image of Medivh
+ SPELL_FIRE_BALL = 30967,
+ SPELL_UBER_FIREBALL = 30971,
+ SPELL_CONFLAGRATION_BLAST = 30977,
+ SPELL_MANA_SHIELD = 31635
+};
+
+enum Creatures
+{
+ NPC_ARCANAGOS = 17652,
+ NPC_SPOTLIGHT = 19525
+};
+
/*######
# npc_barnesAI
######*/
@@ -96,11 +118,6 @@ float Spawns[6][2]=
{17534, -10900}, // Julianne
};
-#define CREATURE_SPOTLIGHT 19525
-
-#define SPELL_SPOTLIGHT 25824
-#define SPELL_TUXEDO 32616
-
#define SPAWN_Z 90.5f
#define SPAWN_Y -1758
#define SPAWN_O 4.738f
@@ -131,7 +148,7 @@ public:
bool PerformanceReady;
bool RaidWiped;
- void Reset()
+ void Reset() OVERRIDE
{
m_uiSpotlightGUID = 0;
@@ -159,9 +176,9 @@ public:
Start(false, false);
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
if (!instance)
return;
@@ -176,13 +193,13 @@ public:
TalkCount = 0;
SetEscortPaused(true);
- if (Creature* pSpotlight = me->SummonCreature(CREATURE_SPOTLIGHT,
+ if (Creature* spotlight = me->SummonCreature(NPC_SPOTLIGHT,
me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0.0f,
TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 60000))
{
- pSpotlight->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- pSpotlight->CastSpell(pSpotlight, SPELL_SPOTLIGHT, false);
- m_uiSpotlightGUID = pSpotlight->GetGUID();
+ spotlight->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ spotlight->CastSpell(spotlight, SPELL_SPOTLIGHT, false);
+ m_uiSpotlightGUID = spotlight->GetGUID();
}
break;
case 8:
@@ -266,7 +283,7 @@ public:
RaidWiped = false;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
npc_escortAI::UpdateAI(diff);
@@ -305,7 +322,7 @@ public:
RaidWiped = true;
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
{
- if (i->getSource()->isAlive() && !i->getSource()->isGameMaster())
+ if (i->GetSource()->IsAlive() && !i->GetSource()->IsGameMaster())
{
RaidWiped = false;
break;
@@ -326,7 +343,7 @@ public:
}
};
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
npc_barnesAI* pBarnesAI = CAST_AI(npc_barnes::npc_barnesAI, creature->AI());
@@ -361,7 +378,7 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
if (InstanceScript* instance = creature->GetInstanceScript())
{
@@ -370,7 +387,7 @@ public:
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, OZ_GOSSIP1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
- if (player->isGameMaster())
+ if (player->IsGameMaster())
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, OZ_GM_GOSSIP1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, OZ_GM_GOSSIP2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
@@ -393,7 +410,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_barnesAI(creature);
}
@@ -403,11 +420,6 @@ public:
# npc_berthold
####*/
-enum eBerthold
-{
- SPELL_TELEPORT = 39567
-};
-
#define GOSSIP_ITEM_TELEPORT "Teleport me to the Guardian's Library"
class npc_berthold : public CreatureScript
@@ -415,7 +427,7 @@ class npc_berthold : public CreatureScript
public:
npc_berthold() : CreatureScript("npc_berthold") { }
- bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF + 1)
@@ -425,7 +437,7 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
if (InstanceScript* instance = creature->GetInstanceScript())
{
@@ -453,11 +465,6 @@ public:
#define SAY_DIALOG_ARCANAGOS_8 "What have you done, wizard? This cannot be! I'm burning from... within!"
#define SAY_DIALOG_MEDIVH_9 "He should not have angered me. I must go... recover my strength now..."
-#define MOB_ARCANAGOS 17652
-#define SPELL_FIRE_BALL 30967
-#define SPELL_UBER_FIREBALL 30971
-#define SPELL_CONFLAGRATION_BLAST 30977
-#define SPELL_MANA_SHIELD 31635
static float MedivPos[4] = {-11161.49f, -1902.24f, 91.48f, 1.94f};
static float ArcanagosPos[4] = {-11169.75f, -1881.48f, 95.39f, 4.83f};
@@ -467,7 +474,7 @@ class npc_image_of_medivh : public CreatureScript
public:
npc_image_of_medivh() : CreatureScript("npc_image_of_medivh") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_image_of_medivhAI(creature);
}
@@ -490,7 +497,7 @@ public:
bool EventStarted;
- void Reset()
+ void Reset() OVERRIDE
{
ArcanagosGUID = 0;
@@ -505,9 +512,9 @@ public:
me->RemoveCorpse();
}
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type != POINT_MOTION_TYPE)
return;
@@ -523,7 +530,7 @@ public:
{
Step = 1;
EventStarted = true;
- Creature* Arcanagos = me->SummonCreature(MOB_ARCANAGOS, ArcanagosPos[0], ArcanagosPos[1], ArcanagosPos[2], 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 20000);
+ Creature* Arcanagos = me->SummonCreature(NPC_ARCANAGOS, ArcanagosPos[0], ArcanagosPos[1], ArcanagosPos[2], 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 20000);
if (!Arcanagos)
return;
ArcanagosGUID = Arcanagos->GetGUID();
@@ -598,10 +605,10 @@ public:
InstanceMap::PlayerList const &PlayerList = map->GetPlayers();
for (InstanceMap::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
{
- if (i->getSource()->isAlive())
+ if (i->GetSource()->IsAlive())
{
- if (i->getSource()->GetQuestStatus(9645) == QUEST_STATUS_INCOMPLETE)
- i->getSource()->CompleteQuest(9645);
+ if (i->GetSource()->GetQuestStatus(9645) == QUEST_STATUS_INCOMPLETE)
+ i->GetSource()->CompleteQuest(9645);
}
}
}
@@ -613,7 +620,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (YellTimer <= diff)
{
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.h b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.h
index 208971f85dd..d50aac36bca 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.h
+++ b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.h
@@ -19,7 +19,7 @@
#ifndef DEF_KARAZHAN_H
#define DEF_KARAZHAN_H
-enum eEnums
+enum DataTypes
{
TYPE_ATTUMEN = 1,
TYPE_MOROES = 2,
diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp
index 308ff45fac5..74d65480611 100644
--- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp
+++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp
@@ -94,7 +94,7 @@ class boss_felblood_kaelthas : public CreatureScript
public:
boss_felblood_kaelthas() : CreatureScript("boss_felblood_kaelthas") { }
- CreatureAI* GetAI(Creature* c) const
+ CreatureAI* GetAI(Creature* c) const OVERRIDE
{
return new boss_felblood_kaelthasAI(c);
}
@@ -132,7 +132,7 @@ public:
// 1 = Fireball; Summon Phoenix; Flamestrike
// 2 = Gravity Lapses
- void Reset()
+ void Reset() OVERRIDE
{
/// @todo Timers
FireballTimer = 0;
@@ -154,7 +154,7 @@ public:
instance->SetData(DATA_KAELTHAS_EVENT, NOT_STARTED);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -168,13 +168,13 @@ public:
escapeOrb->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
}
- void DamageTaken(Unit* /*done_by*/, uint32 &damage)
+ void DamageTaken(Unit* /*done_by*/, uint32 &damage) OVERRIDE
{
if (damage > me->GetHealth())
RemoveGravityLapse(); // Remove Gravity Lapse so that players fall to ground if they kill him when in air.
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (!instance)
return;
@@ -182,7 +182,8 @@ public:
instance->SetData(DATA_KAELTHAS_EVENT, IN_PROGRESS);
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (!HasTaunted && me->IsWithinDistInMap(who, 40.0f))
{
@@ -203,7 +204,7 @@ public:
for (i = threatlist.begin(); i != threatlist.end(); ++i)
{
Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid());
- if (unit && unit->isAlive())
+ if (unit && unit->IsAlive())
{
float threat = me->getThreatManager().getThreat(unit);
summonedUnit->AddThreat(unit, threat);
@@ -280,7 +281,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -298,14 +299,14 @@ public:
me->InterruptSpell(CURRENT_CHANNELED_SPELL);
me->InterruptSpell(CURRENT_GENERIC_SPELL);
DoCast(me, SPELL_SHOCK_BARRIER, true);
- DoCast(me->getVictim(), SPELL_PYROBLAST);
+ DoCastVictim(SPELL_PYROBLAST);
PyroblastTimer = 60000;
} else PyroblastTimer -= diff;
}
if (FireballTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_FIREBALL_NORMAL);
+ DoCastVictim(SPELL_FIREBALL_NORMAL);
FireballTimer = urand(2000, 6000);
} else FireballTimer -= diff;
@@ -432,25 +433,25 @@ public:
};
};
-class mob_felkael_flamestrike : public CreatureScript
+class npc_felkael_flamestrike : public CreatureScript
{
public:
- mob_felkael_flamestrike() : CreatureScript("mob_felkael_flamestrike") { }
+ npc_felkael_flamestrike() : CreatureScript("npc_felkael_flamestrike") { }
- CreatureAI* GetAI(Creature* c) const
+ CreatureAI* GetAI(Creature* c) const OVERRIDE
{
- return new mob_felkael_flamestrikeAI(c);
+ return new npc_felkael_flamestrikeAI(c);
}
- struct mob_felkael_flamestrikeAI : public ScriptedAI
+ struct npc_felkael_flamestrikeAI : public ScriptedAI
{
- mob_felkael_flamestrikeAI(Creature* creature) : ScriptedAI(creature)
+ npc_felkael_flamestrikeAI(Creature* creature) : ScriptedAI(creature)
{
}
uint32 FlameStrikeTimer;
- void Reset()
+ void Reset() OVERRIDE
{
FlameStrikeTimer = 5000;
@@ -460,9 +461,10 @@ public:
DoCast(me, SPELL_FLAMESTRIKE2, true);
}
- void EnterCombat(Unit* /*who*/) {}
- void MoveInLineOfSight(Unit* /*who*/) {}
- void UpdateAI(uint32 diff)
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
+
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (FlameStrikeTimer <= diff)
{
@@ -473,19 +475,19 @@ public:
};
};
-class mob_felkael_phoenix : public CreatureScript
+class npc_felkael_phoenix : public CreatureScript
{
public:
- mob_felkael_phoenix() : CreatureScript("mob_felkael_phoenix") { }
+ npc_felkael_phoenix() : CreatureScript("npc_felkael_phoenix") { }
- CreatureAI* GetAI(Creature* c) const
+ CreatureAI* GetAI(Creature* c) const OVERRIDE
{
- return new mob_felkael_phoenixAI(c);
+ return new npc_felkael_phoenixAI(c);
}
- struct mob_felkael_phoenixAI : public ScriptedAI
+ struct npc_felkael_phoenixAI : public ScriptedAI
{
- mob_felkael_phoenixAI(Creature* creature) : ScriptedAI(creature)
+ npc_felkael_phoenixAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -496,7 +498,7 @@ public:
bool Rebirth;
bool FakeDeath;
- void Reset()
+ void Reset() OVERRIDE
{
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE + UNIT_FLAG_NON_ATTACKABLE);
me->SetDisableGravity(true);
@@ -507,9 +509,9 @@ public:
FakeDeath = false;
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void DamageTaken(Unit* /*killer*/, uint32 &damage)
+ void DamageTaken(Unit* /*killer*/, uint32 &damage) OVERRIDE
{
if (damage < me->GetHealth())
return;
@@ -543,12 +545,12 @@ public:
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
me->SummonCreature(CREATURE_PHOENIX_EGG, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 45000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//If we are fake death, we cast revbirth and after that we kill the phoenix to spawn the egg.
if (FakeDeath)
@@ -586,31 +588,32 @@ public:
};
};
-class mob_felkael_phoenix_egg : public CreatureScript
+class npc_felkael_phoenix_egg : public CreatureScript
{
public:
- mob_felkael_phoenix_egg() : CreatureScript("mob_felkael_phoenix_egg") { }
+ npc_felkael_phoenix_egg() : CreatureScript("npc_felkael_phoenix_egg") { }
- CreatureAI* GetAI(Creature* c) const
+ CreatureAI* GetAI(Creature* c) const OVERRIDE
{
- return new mob_felkael_phoenix_eggAI(c);
+ return new npc_felkael_phoenix_eggAI(c);
}
- struct mob_felkael_phoenix_eggAI : public ScriptedAI
+ struct npc_felkael_phoenix_eggAI : public ScriptedAI
{
- mob_felkael_phoenix_eggAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_felkael_phoenix_eggAI(Creature* creature) : ScriptedAI(creature) {}
uint32 HatchTimer;
- void Reset()
+ void Reset() OVERRIDE
{
HatchTimer = 10000;
}
- void EnterCombat(Unit* /*who*/) {}
- void MoveInLineOfSight(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
+
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (HatchTimer <= diff)
{
@@ -621,24 +624,24 @@ public:
};
};
-class mob_arcane_sphere : public CreatureScript
+class npc_arcane_sphere : public CreatureScript
{
public:
- mob_arcane_sphere() : CreatureScript("mob_arcane_sphere") { }
+ npc_arcane_sphere() : CreatureScript("npc_arcane_sphere") { }
- CreatureAI* GetAI(Creature* c) const
+ CreatureAI* GetAI(Creature* c) const OVERRIDE
{
- return new mob_arcane_sphereAI(c);
+ return new npc_arcane_sphereAI(c);
}
- struct mob_arcane_sphereAI : public ScriptedAI
+ struct npc_arcane_sphereAI : public ScriptedAI
{
- mob_arcane_sphereAI(Creature* creature) : ScriptedAI(creature) { Reset(); }
+ npc_arcane_sphereAI(Creature* creature) : ScriptedAI(creature) { Reset(); }
uint32 DespawnTimer;
uint32 ChangeTargetTimer;
- void Reset()
+ void Reset() OVERRIDE
{
DespawnTimer = 30000;
ChangeTargetTimer = urand(6000, 12000);
@@ -649,9 +652,9 @@ public:
DoCast(me, SPELL_ARCANE_SPHERE_PASSIVE, true);
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (DespawnTimer <= diff)
me->Kill(me);
@@ -680,8 +683,8 @@ public:
void AddSC_boss_felblood_kaelthas()
{
new boss_felblood_kaelthas();
- new mob_arcane_sphere();
- new mob_felkael_phoenix();
- new mob_felkael_phoenix_egg();
- new mob_felkael_flamestrike();
+ new npc_arcane_sphere();
+ new npc_felkael_phoenix();
+ new npc_felkael_phoenix_egg();
+ new npc_felkael_flamestrike();
}
diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp
index 36324e6b042..03c06664edf 100644
--- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp
+++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp
@@ -49,19 +49,34 @@ static Speech PlayerDeath[]=
{9},
};
-enum eEnums
+enum Yells
{
SAY_AGGRO = 0,
SAY_DEATH = 10,
+};
- SPELL_DISPEL_MAGIC = 27609,
- SPELL_FLASH_HEAL = 17843,
- SPELL_SW_PAIN_NORMAL = 14032,
- SPELL_SW_PAIN_HEROIC = 15654,
- SPELL_SHIELD = 44291,
- SPELL_RENEW_NORMAL = 44174,
- SPELL_RENEW_HEROIC = 46192,
+enum Spells
+{
+ SPELL_DISPEL_MAGIC = 27609,
+ SPELL_FLASH_HEAL = 17843,
+ SPELL_SW_PAIN_NORMAL = 14032,
+ SPELL_SW_PAIN_HEROIC = 15654,
+ SPELL_SHIELD = 44291,
+ SPELL_RENEW_NORMAL = 44174,
+ SPELL_RENEW_HEROIC = 46192,
+
+ // Apoko
+ SPELL_WINDFURY_TOTEM = 27621,
+ SPELL_WAR_STOMP = 46026,
+ SPELL_PURGE = 27626,
+ SPELL_LESSER_HEALING_WAVE = 44256,
+ SPELL_FROST_SHOCK = 21401,
+ SPELL_FIRE_NOVA_TOTEM = 44257,
+ SPELL_EARTHBIND_TOTEM = 15786
+};
+enum Misc
+{
MAX_ACTIVE_LACKEY = 4
};
@@ -93,7 +108,7 @@ class boss_priestess_delrissa : public CreatureScript
public:
boss_priestess_delrissa() : CreatureScript("boss_priestess_delrissa") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_priestess_delrissaAI(creature);
}
@@ -121,7 +136,7 @@ public:
uint32 DispelTimer;
uint32 ResetTimer;
- void Reset()
+ void Reset() OVERRIDE
{
PlayersKilled = 0;
@@ -136,13 +151,13 @@ public:
}
//this mean she at some point evaded
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
if (instance)
instance->SetData(DATA_DELRISSA_EVENT, FAIL);
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
Talk(SAY_AGGRO);
@@ -150,7 +165,7 @@ public:
{
if (Unit* pAdd = Unit::GetUnit(*me, m_auiLackeyGUID[i]))
{
- if (!pAdd->getVictim())
+ if (!pAdd->GetVictim())
{
who->SetInCombatWith(pAdd);
pAdd->AddThreat(who, 0.0f);
@@ -165,7 +180,7 @@ public:
void InitializeLackeys()
{
//can be called if Creature are dead, so avoid
- if (!me->isAlive())
+ if (!me->IsAlive())
return;
uint8 j = 0;
@@ -211,7 +226,7 @@ public:
}
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
if (victim->GetTypeId() != TYPEID_PLAYER)
return;
@@ -222,7 +237,7 @@ public:
++PlayersKilled;
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -238,7 +253,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -263,7 +278,7 @@ public:
{
if (Unit* pAdd = Unit::GetUnit(*me, m_auiLackeyGUID[i]))
{
- if (pAdd->isAlive() && pAdd->GetHealth() < health)
+ if (pAdd->IsAlive() && pAdd->GetHealth() < health)
target = pAdd;
}
}
@@ -278,7 +293,7 @@ public:
if (urand(0, 1))
if (Unit* pAdd = Unit::GetUnit(*me, m_auiLackeyGUID[rand()%MAX_ACTIVE_LACKEY]))
- if (pAdd->isAlive())
+ if (pAdd->IsAlive())
target = pAdd;
DoCast(target, SPELL_RENEW_NORMAL);
@@ -291,7 +306,7 @@ public:
if (urand(0, 1))
if (Unit* pAdd = Unit::GetUnit(*me, m_auiLackeyGUID[rand()%MAX_ACTIVE_LACKEY]))
- if (pAdd->isAlive() && !pAdd->HasAura(SPELL_SHIELD))
+ if (pAdd->IsAlive() && !pAdd->HasAura(SPELL_SHIELD))
target = pAdd;
DoCast(target, SPELL_SHIELD);
@@ -310,7 +325,7 @@ public:
target = me;
else
if (Unit* pAdd = Unit::GetUnit(*me, m_auiLackeyGUID[rand()%MAX_ACTIVE_LACKEY]))
- if (pAdd->isAlive())
+ if (pAdd->IsAlive())
target = pAdd;
}
@@ -333,7 +348,7 @@ public:
};
};
-enum eHealingPotion
+enum HealingPotion
{
SPELL_HEALING_POTION = 15503
};
@@ -355,7 +370,7 @@ struct boss_priestess_lackey_commonAI : public ScriptedAI
bool UsedPotion;
- void Reset()
+ void Reset() OVERRIDE
{
UsedPotion = false;
@@ -368,12 +383,12 @@ struct boss_priestess_lackey_commonAI : public ScriptedAI
// in case she is not alive and Reset was for some reason called, respawn her (most likely party wipe after killing her)
if (Creature* pDelrissa = Unit::GetCreature(*me, instance ? instance->GetData64(DATA_DELRISSA) : 0))
{
- if (!pDelrissa->isAlive())
+ if (!pDelrissa->IsAlive())
pDelrissa->Respawn();
}
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (!who)
return;
@@ -384,7 +399,7 @@ struct boss_priestess_lackey_commonAI : public ScriptedAI
{
if (Unit* pAdd = Unit::GetUnit(*me, m_auiLackeyGUIDs[i]))
{
- if (!pAdd->getVictim() && pAdd != me)
+ if (!pAdd->GetVictim() && pAdd != me)
{
who->SetInCombatWith(pAdd);
pAdd->AddThreat(who, 0.0f);
@@ -394,7 +409,7 @@ struct boss_priestess_lackey_commonAI : public ScriptedAI
if (Creature* pDelrissa = Unit::GetCreature(*me, instance->GetData64(DATA_DELRISSA)))
{
- if (pDelrissa->isAlive() && !pDelrissa->getVictim())
+ if (pDelrissa->IsAlive() && !pDelrissa->GetVictim())
{
who->SetInCombatWith(pDelrissa);
pDelrissa->AddThreat(who, 0.0f);
@@ -403,7 +418,7 @@ struct boss_priestess_lackey_commonAI : public ScriptedAI
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (!instance)
return;
@@ -425,7 +440,7 @@ struct boss_priestess_lackey_commonAI : public ScriptedAI
if (uiLackeyDeathCount == MAX_ACTIVE_LACKEY)
{
//time to make her lootable and complete event if she died before lackeys
- if (!pDelrissa->isAlive())
+ if (!pDelrissa->IsAlive())
{
if (!pDelrissa->HasFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE))
pDelrissa->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
@@ -435,7 +450,7 @@ struct boss_priestess_lackey_commonAI : public ScriptedAI
}
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
if (!instance)
return;
@@ -456,7 +471,7 @@ struct boss_priestess_lackey_commonAI : public ScriptedAI
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UsedPotion && HealthBelowPct(25))
{
@@ -472,7 +487,7 @@ struct boss_priestess_lackey_commonAI : public ScriptedAI
}
};
-enum eRogueSpells
+enum RogueSpells
{
SPELL_KIDNEY_SHOT = 27615,
SPELL_GOUGE = 12540,
@@ -487,7 +502,7 @@ class boss_kagani_nightstrike : public CreatureScript
public:
boss_kagani_nightstrike() : CreatureScript("boss_kagani_nightstrike") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_kagani_nightstrikeAI(creature);
}
@@ -504,7 +519,7 @@ public:
uint32 Wait_Timer;
bool InVanish;
- void Reset()
+ void Reset() OVERRIDE
{
Gouge_Timer = 5500;
Kick_Timer = 7000;
@@ -517,7 +532,7 @@ public:
boss_priestess_lackey_commonAI::Reset();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -544,8 +559,8 @@ public:
{
if (Wait_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_BACKSTAB, true);
- DoCast(me->getVictim(), SPELL_KIDNEY_SHOT, true);
+ DoCastVictim(SPELL_BACKSTAB, true);
+ DoCastVictim(SPELL_KIDNEY_SHOT, true);
me->SetVisible(true); // ...? Hacklike
InVanish = false;
} else Wait_Timer -= diff;
@@ -553,19 +568,19 @@ public:
if (Gouge_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_GOUGE);
+ DoCastVictim(SPELL_GOUGE);
Gouge_Timer = 5500;
} else Gouge_Timer -= diff;
if (Kick_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_KICK);
+ DoCastVictim(SPELL_KICK);
Kick_Timer = 7000;
} else Kick_Timer -= diff;
if (Eviscerate_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_EVISCERATE);
+ DoCastVictim(SPELL_EVISCERATE);
Eviscerate_Timer = 4000;
} else Eviscerate_Timer -= diff;
@@ -575,7 +590,7 @@ public:
};
};
-enum eWarlockSpells
+enum WarlockSpells
{
SPELL_IMMOLATE = 44267,
SPELL_SHADOW_BOLT = 12471,
@@ -591,7 +606,7 @@ class boss_ellris_duskhallow : public CreatureScript
public:
boss_ellris_duskhallow() : CreatureScript("boss_ellris_duskhallow") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_ellris_duskhallowAI(creature);
}
@@ -607,7 +622,7 @@ public:
uint32 Curse_of_Agony_Timer;
uint32 Fear_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
Immolate_Timer = 6000;
Shadow_Bolt_Timer = 3000;
@@ -618,12 +633,12 @@ public:
boss_priestess_lackey_commonAI::Reset();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
DoCast(me, SPELL_SUMMON_IMP);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -632,13 +647,13 @@ public:
if (Immolate_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_IMMOLATE);
+ DoCastVictim(SPELL_IMMOLATE);
Immolate_Timer = 6000;
} else Immolate_Timer -= diff;
if (Shadow_Bolt_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_SHADOW_BOLT);
+ DoCastVictim(SPELL_SHADOW_BOLT);
Shadow_Bolt_Timer = 5000;
} else Shadow_Bolt_Timer -= diff;
@@ -671,7 +686,7 @@ public:
};
};
-enum eKickDown
+enum KickDown
{
SPELL_KNOCKDOWN = 11428,
SPELL_SNAP_KICK = 46182
@@ -682,7 +697,7 @@ class boss_eramas_brightblaze : public CreatureScript
public:
boss_eramas_brightblaze() : CreatureScript("boss_eramas_brightblaze") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_eramas_brightblazeAI(creature);
}
@@ -695,7 +710,7 @@ public:
uint32 Knockdown_Timer;
uint32 Snap_Kick_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
Knockdown_Timer = 6000;
Snap_Kick_Timer = 4500;
@@ -703,7 +718,7 @@ public:
boss_priestess_lackey_commonAI::Reset();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -712,13 +727,13 @@ public:
if (Knockdown_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_KNOCKDOWN);
+ DoCastVictim(SPELL_KNOCKDOWN);
Knockdown_Timer = 6000;
} else Knockdown_Timer -= diff;
if (Snap_Kick_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_SNAP_KICK);
+ DoCastVictim(SPELL_SNAP_KICK);
Snap_Kick_Timer = 4500;
} else Snap_Kick_Timer -= diff;
@@ -727,7 +742,7 @@ public:
};
};
-enum eMageSpells
+enum MageSpells
{
SPELL_POLYMORPH = 13323,
SPELL_ICE_BLOCK = 27619,
@@ -743,7 +758,7 @@ class boss_yazzai : public CreatureScript
public:
boss_yazzai() : CreatureScript("boss_yazzai") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_yazzaiAI(creature);
}
@@ -764,7 +779,7 @@ public:
uint32 Frostbolt_Timer;
uint32 Blink_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
HasIceBlocked = false;
@@ -780,7 +795,7 @@ public:
boss_priestess_lackey_commonAI::Reset();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -812,19 +827,19 @@ public:
if (Ice_Lance_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_ICE_LANCE);
+ DoCastVictim(SPELL_ICE_LANCE);
Ice_Lance_Timer = 12000;
} else Ice_Lance_Timer -= diff;
if (Cone_of_Cold_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_CONE_OF_COLD);
+ DoCastVictim(SPELL_CONE_OF_COLD);
Cone_of_Cold_Timer = 10000;
} else Cone_of_Cold_Timer -= diff;
if (Frostbolt_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_FROSTBOLT);
+ DoCastVictim(SPELL_FROSTBOLT);
Frostbolt_Timer = 8000;
} else Frostbolt_Timer -= diff;
@@ -857,7 +872,7 @@ public:
};
};
-enum eWarriorSpells
+enum WarriorSpells
{
SPELL_INTERCEPT_STUN = 27577,
SPELL_DISARM = 27581,
@@ -873,7 +888,7 @@ class boss_warlord_salaris : public CreatureScript
public:
boss_warlord_salaris() : CreatureScript("boss_warlord_salaris") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_warlord_salarisAI(creature);
}
@@ -890,7 +905,7 @@ public:
uint32 Hamstring_Timer;
uint32 Mortal_Strike_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
Intercept_Stun_Timer = 500;
Disarm_Timer = 6000;
@@ -902,12 +917,12 @@ public:
boss_priestess_lackey_commonAI::Reset();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
DoCast(me, SPELL_BATTLE_SHOUT);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -943,31 +958,31 @@ public:
if (Disarm_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_DISARM);
+ DoCastVictim(SPELL_DISARM);
Disarm_Timer = 6000;
} else Disarm_Timer -= diff;
if (Hamstring_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_HAMSTRING);
+ DoCastVictim(SPELL_HAMSTRING);
Hamstring_Timer = 4500;
} else Hamstring_Timer -= diff;
if (Mortal_Strike_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_MORTAL_STRIKE);
+ DoCastVictim(SPELL_MORTAL_STRIKE);
Mortal_Strike_Timer = 4500;
} else Mortal_Strike_Timer -= diff;
if (Piercing_Howl_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_PIERCING_HOWL);
+ DoCastVictim(SPELL_PIERCING_HOWL);
Piercing_Howl_Timer = 10000;
} else Piercing_Howl_Timer -= diff;
if (Frightening_Shout_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_FRIGHTENING_SHOUT);
+ DoCastVictim(SPELL_FRIGHTENING_SHOUT);
Frightening_Shout_Timer = 18000;
} else Frightening_Shout_Timer -= diff;
@@ -976,7 +991,7 @@ public:
};
};
-enum eHunterSpells
+enum HunterSpells
{
SPELL_AIMED_SHOT = 44271,
SPELL_SHOOT = 15620,
@@ -993,7 +1008,7 @@ class boss_garaxxas : public CreatureScript
public:
boss_garaxxas() : CreatureScript("boss_garaxxas") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_garaxxasAI(creature);
}
@@ -1015,7 +1030,7 @@ public:
uint32 Wing_Clip_Timer;
uint32 Freezing_Trap_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
Aimed_Shot_Timer = 6000;
Shoot_Timer = 2500;
@@ -1031,23 +1046,23 @@ public:
boss_priestess_lackey_commonAI::Reset();
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
m_uiPetGUID = summoned->GetGUID();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
boss_priestess_lackey_commonAI::UpdateAI(diff);
- if (me->IsWithinDistInMap(me->getVictim(), ATTACK_DISTANCE))
+ if (me->IsWithinDistInMap(me->GetVictim(), ATTACK_DISTANCE))
{
if (Wing_Clip_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_WING_CLIP);
+ DoCastVictim(SPELL_WING_CLIP);
Wing_Clip_Timer = 4000;
} else Wing_Clip_Timer -= diff;
@@ -1062,7 +1077,7 @@ public:
else
{
//if go does not exist, then we can cast
- DoCast(me->getVictim(), SPELL_FREEZING_TRAP);
+ DoCastVictim(SPELL_FREEZING_TRAP);
Freezing_Trap_Timer = 15000;
}
} else Freezing_Trap_Timer -= diff;
@@ -1073,25 +1088,25 @@ public:
{
if (Concussive_Shot_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_CONCUSSIVE_SHOT);
+ DoCastVictim(SPELL_CONCUSSIVE_SHOT);
Concussive_Shot_Timer = 8000;
} else Concussive_Shot_Timer -= diff;
if (Multi_Shot_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_MULTI_SHOT);
+ DoCastVictim(SPELL_MULTI_SHOT);
Multi_Shot_Timer = 10000;
} else Multi_Shot_Timer -= diff;
if (Aimed_Shot_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_AIMED_SHOT);
+ DoCastVictim(SPELL_AIMED_SHOT);
Aimed_Shot_Timer = 6000;
} else Aimed_Shot_Timer -= diff;
if (Shoot_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_SHOOT);
+ DoCastVictim(SPELL_SHOOT);
Shoot_Timer = 2500;
} else Shoot_Timer -= diff;
}
@@ -1099,23 +1114,12 @@ public:
};
};
-enum Spells
-{
- SPELL_WINDFURY_TOTEM = 27621,
- SPELL_WAR_STOMP = 46026,
- SPELL_PURGE = 27626,
- SPELL_LESSER_HEALING_WAVE = 44256,
- SPELL_FROST_SHOCK = 21401,
- SPELL_FIRE_NOVA_TOTEM = 44257,
- SPELL_EARTHBIND_TOTEM = 15786
-};
-
class boss_apoko : public CreatureScript
{
public:
boss_apoko() : CreatureScript("boss_apoko") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_apokoAI(creature);
}
@@ -1132,7 +1136,7 @@ public:
uint32 Healing_Wave_Timer;
uint32 Frost_Shock_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
Totem_Timer = 2000;
Totem_Amount = 1;
@@ -1144,7 +1148,7 @@ public:
boss_priestess_lackey_commonAI::Reset();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -1174,7 +1178,7 @@ public:
if (Frost_Shock_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_FROST_SHOCK);
+ DoCastVictim(SPELL_FROST_SHOCK);
Frost_Shock_Timer = 7000;
} else Frost_Shock_Timer -= diff;
@@ -1185,7 +1189,7 @@ public:
// if (guid)
// {
// Unit* pAdd = Unit::GetUnit(*me, (*itr)->guid);
- // if (pAdd && pAdd->isAlive())
+ // if (pAdd && pAdd->IsAlive())
// {
DoCast(me, SPELL_LESSER_HEALING_WAVE);
Healing_Wave_Timer = 5000;
@@ -1198,7 +1202,7 @@ public:
};
};
-enum eEngineerSpells
+enum EngineerSpells
{
SPELL_GOBLIN_DRAGON_GUN = 44272,
SPELL_ROCKET_LAUNCH = 44137,
@@ -1213,7 +1217,7 @@ class boss_zelfan : public CreatureScript
public:
boss_zelfan() : CreatureScript("boss_zelfan") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_zelfanAI(creature);
}
@@ -1229,7 +1233,7 @@ public:
uint32 High_Explosive_Sheep_Timer;
uint32 Fel_Iron_Bomb_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
Goblin_Dragon_Gun_Timer = 20000;
Rocket_Launch_Timer = 7000;
@@ -1240,7 +1244,7 @@ public:
boss_priestess_lackey_commonAI::Reset();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -1249,19 +1253,19 @@ public:
if (Goblin_Dragon_Gun_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_GOBLIN_DRAGON_GUN);
+ DoCastVictim(SPELL_GOBLIN_DRAGON_GUN);
Goblin_Dragon_Gun_Timer = 10000;
} else Goblin_Dragon_Gun_Timer -= diff;
if (Rocket_Launch_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_ROCKET_LAUNCH);
+ DoCastVictim(SPELL_ROCKET_LAUNCH);
Rocket_Launch_Timer = 9000;
} else Rocket_Launch_Timer -= diff;
if (Fel_Iron_Bomb_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_FEL_IRON_BOMB);
+ DoCastVictim(SPELL_FEL_IRON_BOMB);
Fel_Iron_Bomb_Timer = 15000;
} else Fel_Iron_Bomb_Timer -= diff;
@@ -1293,14 +1297,14 @@ public:
};
/*
-class mob_high_explosive_sheep : public CreatureScript
+class npc_high_explosive_sheep : public CreatureScript
{
public:
- mob_high_explosive_sheep() : CreatureScript("mob_high_explosive_sheep") { }
+ npc_high_explosive_sheep() : CreatureScript("npc_high_explosive_sheep") { }
- //CreatureAI* GetAI(Creature* creature) const
+ //CreatureAI* GetAI(Creature* creature) const OVERRIDE
//{
- // return new mob_high_explosive_sheepAI (creature);
+ // return new npc_high_explosive_sheepAI(creature);
//};
};
*/
@@ -1316,5 +1320,5 @@ void AddSC_boss_priestess_delrissa()
new boss_garaxxas();
new boss_apoko();
new boss_zelfan();
- // new mob_high_explosive_sheep();
+ // new npc_high_explosive_sheep();
}
diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp
index 5040aaafc4d..668f7ec58f4 100644
--- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp
+++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp
@@ -64,9 +64,9 @@ class boss_selin_fireheart : public CreatureScript
public:
boss_selin_fireheart() : CreatureScript("boss_selin_fireheart") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_selin_fireheartAI (creature);
+ return new boss_selin_fireheartAI(creature);
};
struct boss_selin_fireheartAI : public ScriptedAI
@@ -105,7 +105,7 @@ public:
uint64 CrystalGUID; // This will help us create a pointer to the crystal we are draining. We store GUIDs, never units in case unit is deleted/offline (offline if player of course).
- void Reset()
+ void Reset() OVERRIDE
{
if (instance)
{
@@ -115,7 +115,7 @@ public:
//Unit* unit = Unit::GetUnit(*me, FelCrystals[i]);
if (Creature* creature = Unit::GetCreature(*me, *itr))
{
- if (!creature->isAlive())
+ if (!creature->IsAlive())
creature->Respawn(); // Let the core 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.
@@ -156,7 +156,7 @@ public:
pCrystal = NULL;
//pCrystal = Unit::GetUnit(*me, FelCrystals[i]);
pCrystal = Unit::GetUnit(*me, *itr);
- if (pCrystal && pCrystal->isAlive())
+ if (pCrystal && pCrystal->IsAlive())
{
// select nearest
if (!CrystalChosen || me->GetDistanceOrder(pCrystal, CrystalChosen, false))
@@ -192,29 +192,29 @@ public:
{
//Creature* pCrystal = (Unit::GetCreature(*me, FelCrystals[i]));
Creature* pCrystal = Unit::GetCreature(*me, *itr);
- if (pCrystal && pCrystal->isAlive())
+ if (pCrystal && pCrystal->IsAlive())
pCrystal->Kill(pCrystal);
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
if (instance)
instance->SetData(DATA_SELIN_EVENT, IN_PROGRESS);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_KILL);
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type == POINT_MOTION_TYPE && id == 1)
{
Unit* CrystalChosen = Unit::GetUnit(*me, CrystalGUID);
- if (CrystalChosen && CrystalChosen->isAlive())
+ if (CrystalChosen && CrystalChosen->IsAlive())
{
// Make the crystal attackable
// We also remove NON_ATTACKABLE in case the database has it set.
@@ -231,7 +231,7 @@ public:
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -242,7 +242,7 @@ public:
ShatterRemainingCrystals();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -303,14 +303,14 @@ public:
Talk(SAY_EMPOWERED);
Unit* CrystalChosen = Unit::GetUnit(*me, CrystalGUID);
- if (CrystalChosen && CrystalChosen->isAlive())
+ if (CrystalChosen && CrystalChosen->IsAlive())
// Use Deal Damage to kill it, not setDeathState.
CrystalChosen->Kill(CrystalChosen);
CrystalGUID = 0;
me->GetMotionMaster()->Clear();
- me->GetMotionMaster()->MoveChase(me->getVictim());
+ me->GetMotionMaster()->MoveChase(me->GetVictim());
} else EmpowerTimer -= diff;
}
}
@@ -320,32 +320,33 @@ public:
};
};
-class mob_fel_crystal : public CreatureScript
+class npc_fel_crystal : public CreatureScript
{
public:
- mob_fel_crystal() : CreatureScript("mob_fel_crystal") { }
+ npc_fel_crystal() : CreatureScript("npc_fel_crystal") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_fel_crystalAI (creature);
+ return new npc_fel_crystalAI(creature);
};
- struct mob_fel_crystalAI : public ScriptedAI
+ struct npc_fel_crystalAI : public ScriptedAI
{
- mob_fel_crystalAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_fel_crystalAI(Creature* creature) : ScriptedAI(creature) {}
- void Reset() {}
- void EnterCombat(Unit* /*who*/) {}
- void AttackStart(Unit* /*who*/) {}
- void MoveInLineOfSight(Unit* /*who*/) {}
- void UpdateAI(uint32 /*diff*/) {}
+ void Reset() OVERRIDE {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+ void AttackStart(Unit* /*who*/) OVERRIDE {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
- void JustDied(Unit* /*killer*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE {}
+
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (InstanceScript* instance = me->GetInstanceScript())
{
Creature* Selin = (Unit::GetCreature(*me, instance->GetData64(DATA_SELIN)));
- if (Selin && Selin->isAlive())
+ if (Selin && Selin->IsAlive())
{
if (CAST_AI(boss_selin_fireheart::boss_selin_fireheartAI, Selin->AI())->CrystalGUID == me->GetGUID())
{
@@ -353,10 +354,10 @@ public:
CAST_AI(boss_selin_fireheart::boss_selin_fireheartAI, Selin->AI())->DrainingCrystal = false;
CAST_AI(boss_selin_fireheart::boss_selin_fireheartAI, Selin->AI())->IsDraining = false;
CAST_AI(boss_selin_fireheart::boss_selin_fireheartAI, Selin->AI())->EmpowerTimer = 10000;
- if (Selin->getVictim())
+ if (Selin->GetVictim())
{
- Selin->AI()->AttackStart(Selin->getVictim());
- Selin->GetMotionMaster()->MoveChase(Selin->getVictim());
+ Selin->AI()->AttackStart(Selin->GetVictim());
+ Selin->GetMotionMaster()->MoveChase(Selin->GetVictim());
}
}
}
@@ -368,5 +369,5 @@ public:
void AddSC_boss_selin_fireheart()
{
new boss_selin_fireheart();
- new mob_fel_crystal();
+ new npc_fel_crystal();
}
diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp
index 8958246f1cf..3694fa4a864 100644
--- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp
+++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp
@@ -27,35 +27,44 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "magisters_terrace.h"
-enum eEnums
+enum Yells
{
SAY_AGGRO = 0,
SAY_ENERGY = 1,
SAY_OVERLOAD = 2,
SAY_KILL = 3,
- EMOTE_DISCHARGE_ENERGY = 4,
+ EMOTE_DISCHARGE_ENERGY = 4
//is this text for real?
//#define SAY_DEATH "What...happen...ed."
+};
- //Pure energy spell info
+enum Spells
+{
+ // Pure energy spell info
SPELL_ENERGY_BOLT = 46156,
SPELL_ENERGY_FEEDBACK = 44335,
- //Vexallus spell info
+ // Vexallus spell info
SPELL_CHAIN_LIGHTNING = 44318,
- SPELL_H_CHAIN_LIGHTNING = 46380, //heroic spell
+ SPELL_H_CHAIN_LIGHTNING = 46380, // heroic spell
SPELL_OVERLOAD = 44353,
SPELL_ARCANE_SHOCK = 44319,
- SPELL_H_ARCANE_SHOCK = 46381, //heroic spell
+ SPELL_H_ARCANE_SHOCK = 46381, // heroic spell
- SPELL_SUMMON_PURE_ENERGY = 44322, //mod scale -10
- H_SPELL_SUMMON_PURE_ENERGY1 = 46154, //mod scale -5
- H_SPELL_SUMMON_PURE_ENERGY2 = 46159, //mod scale -5
+ SPELL_SUMMON_PURE_ENERGY = 44322, // mod scale -10
+ H_SPELL_SUMMON_PURE_ENERGY1 = 46154, // mod scale -5
+ H_SPELL_SUMMON_PURE_ENERGY2 = 46159 // mod scale -5
+
+};
- //Creatures
+enum Creatures
+{
NPC_PURE_ENERGY = 24745,
+};
+enum Misc
+{
INTERVAL_MODIFIER = 15,
INTERVAL_SWITCH = 6
};
@@ -65,9 +74,9 @@ class boss_vexallus : public CreatureScript
public:
boss_vexallus() : CreatureScript("boss_vexallus") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_vexallusAI (creature);
+ return new boss_vexallusAI(creature);
};
struct boss_vexallusAI : public BossAI
@@ -85,7 +94,7 @@ public:
uint32 IntervalHealthAmount;
bool Enraged;
- void Reset()
+ void Reset() OVERRIDE
{
summons.DespawnAll();
ChainLightningTimer = 8000;
@@ -98,19 +107,19 @@ public:
instance->SetData(DATA_VEXALLUS_EVENT, NOT_STARTED);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_KILL);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
summons.DespawnAll();
if (instance)
instance->SetData(DATA_VEXALLUS_EVENT, DONE);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
@@ -118,7 +127,7 @@ public:
instance->SetData(DATA_VEXALLUS_EVENT, IN_PROGRESS);
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
if (Unit* temp = SelectTarget(SELECT_TARGET_RANDOM, 0))
summoned->GetMotionMaster()->MoveFollow(temp, 0, 0);
@@ -127,7 +136,7 @@ public:
summoned->CastSpell(summoned, SPELL_ENERGY_BOLT, false, 0, 0, me->GetGUID());
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -185,7 +194,7 @@ public:
{
if (OverloadTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_OVERLOAD);
+ DoCastVictim(SPELL_OVERLOAD);
OverloadTimer = 2000;
} else OverloadTimer -= diff;
@@ -196,42 +205,43 @@ public:
};
};
-class mob_pure_energy : public CreatureScript
+class npc_pure_energy : public CreatureScript
{
public:
- mob_pure_energy() : CreatureScript("mob_pure_energy") { }
+ npc_pure_energy() : CreatureScript("npc_pure_energy") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_pure_energyAI (creature);
+ return new npc_pure_energyAI(creature);
};
- struct mob_pure_energyAI : public ScriptedAI
+ struct npc_pure_energyAI : public ScriptedAI
{
- mob_pure_energyAI(Creature* creature) : ScriptedAI(creature)
+ npc_pure_energyAI(Creature* creature) : ScriptedAI(creature)
{
me->SetDisplayId(me->GetCreatureTemplate()->Modelid2);
}
- void Reset() {}
+ void Reset() OVERRIDE {}
- void JustDied(Unit* slayer)
+ void JustDied(Unit* slayer) OVERRIDE
{
if (Unit* temp = me->GetOwner())
{
- if (temp && temp->isAlive())
+ if (temp && temp->IsAlive())
slayer->CastSpell(slayer, SPELL_ENERGY_FEEDBACK, true, 0, 0, temp->GetGUID());
}
}
- void EnterCombat(Unit* /*who*/) {}
- void MoveInLineOfSight(Unit* /*who*/) {}
- void AttackStart(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
+
+ void AttackStart(Unit* /*who*/) OVERRIDE {}
};
};
void AddSC_boss_vexallus()
{
new boss_vexallus();
- new mob_pure_energy();
+ new npc_pure_energy();
}
diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp
index daaa7d94d18..6fcc050a55e 100644
--- a/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp
+++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp
@@ -37,11 +37,19 @@ EndContentData */
## npc_kalecgos
######*/
-enum eEnums
+enum Spells
{
SPELL_TRANSFORM_TO_KAEL = 44670,
- SPELL_ORB_KILL_CREDIT = 46307,
- NPC_KAEL = 24848, //human form entry
+ SPELL_ORB_KILL_CREDIT = 46307
+};
+
+enum Creatures
+{
+ NPC_KAEL = 24848 //human form entry
+};
+
+enum Misc
+{
POINT_ID_LAND = 1
};
@@ -60,7 +68,7 @@ class npc_kalecgos : public CreatureScript
public:
npc_kalecgos() : CreatureScript("npc_kalecgos") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -89,9 +97,9 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_KAEL_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
@@ -100,7 +108,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_kalecgosAI(creature);
}
@@ -111,7 +119,7 @@ public:
uint32 m_uiTransformTimer;
- void Reset()
+ void Reset() OVERRIDE
{
m_uiTransformTimer = 0;
@@ -120,7 +128,7 @@ public:
me->GetMotionMaster()->MovePoint(POINT_ID_LAND, afKaelLandPoint[0], afKaelLandPoint[1], afKaelLandPoint[2]);
}
- void MovementInform(uint32 uiType, uint32 uiPointId)
+ void MovementInform(uint32 uiType, uint32 uiPointId) OVERRIDE
{
if (uiType != POINT_MOTION_TYPE)
return;
@@ -146,7 +154,7 @@ public:
for (Map::PlayerList::const_iterator i = lList.begin(); i != lList.end(); ++i)
{
- if (Player* player = i->getSource())
+ if (Player* player = i->GetSource())
{
if (spell && spell->Effects[0].MiscValue)
player->KilledMonsterCredit(spell->Effects[0].MiscValue, 0);
@@ -154,7 +162,7 @@ public:
}
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (m_uiTransformTimer)
{
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
index fdbbcaf8216..c0db8e3eb0f 100644
--- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
@@ -92,7 +92,7 @@ class npc_unworthy_initiate : public CreatureScript
public:
npc_unworthy_initiate() : CreatureScript("npc_unworthy_initiate") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_unworthy_initiateAI(creature);
}
@@ -114,7 +114,7 @@ public:
EventMap events;
- void Reset()
+ void Reset() OVERRIDE
{
anchorGUID = 0;
phase = PHASE_CHAINED;
@@ -125,7 +125,7 @@ public:
me->LoadEquipment(0, true);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
events.ScheduleEvent(EVENT_ICY_TOUCH, 1000, GCD_CAST);
events.ScheduleEvent(EVENT_PLAGUE_STRIKE, 3000, GCD_CAST);
@@ -133,7 +133,7 @@ public:
events.ScheduleEvent(EVENT_DEATH_COIL, 5000, GCD_CAST);
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type != POINT_MOTION_TYPE)
return;
@@ -166,7 +166,7 @@ public:
Talk(SAY_EVENT_START);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
switch (phase)
{
@@ -245,22 +245,22 @@ public:
switch (eventId)
{
case EVENT_ICY_TOUCH:
- DoCast(me->getVictim(), SPELL_ICY_TOUCH);
+ DoCastVictim(SPELL_ICY_TOUCH);
events.DelayEvents(1000, GCD_CAST);
events.ScheduleEvent(EVENT_ICY_TOUCH, 5000, GCD_CAST);
break;
case EVENT_PLAGUE_STRIKE:
- DoCast(me->getVictim(), SPELL_PLAGUE_STRIKE);
+ DoCastVictim(SPELL_PLAGUE_STRIKE);
events.DelayEvents(1000, GCD_CAST);
- events.ScheduleEvent(SPELL_PLAGUE_STRIKE, 5000, GCD_CAST);
+ events.ScheduleEvent(EVENT_PLAGUE_STRIKE, 5000, GCD_CAST);
break;
case EVENT_BLOOD_STRIKE:
- DoCast(me->getVictim(), SPELL_BLOOD_STRIKE);
+ DoCastVictim(SPELL_BLOOD_STRIKE);
events.DelayEvents(1000, GCD_CAST);
events.ScheduleEvent(EVENT_BLOOD_STRIKE, 5000, GCD_CAST);
break;
case EVENT_DEATH_COIL:
- DoCast(me->getVictim(), SPELL_DEATH_COIL);
+ DoCastVictim(SPELL_DEATH_COIL);
events.DelayEvents(1000, GCD_CAST);
events.ScheduleEvent(EVENT_DEATH_COIL, 5000, GCD_CAST);
break;
@@ -281,7 +281,7 @@ class npc_unworthy_initiate_anchor : public CreatureScript
public:
npc_unworthy_initiate_anchor() : CreatureScript("npc_unworthy_initiate_anchor") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_unworthy_initiate_anchorAI(creature);
}
@@ -292,13 +292,13 @@ public:
uint64 prisonerGUID;
- void SetGUID(uint64 guid, int32 /*id*/)
+ void SetGUID(uint64 guid, int32 /*id*/) OVERRIDE
{
if (!prisonerGUID)
prisonerGUID = guid;
}
- uint64 GetGUID(int32 /*id*/) const
+ uint64 GetGUID(int32 /*id*/) const OVERRIDE
{
return prisonerGUID;
}
@@ -310,7 +310,7 @@ class go_acherus_soul_prison : public GameObjectScript
public:
go_acherus_soul_prison() : GameObjectScript("go_acherus_soul_prison") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
if (Creature* anchor = go->FindNearestCreature(29521, 15))
if (uint64 prisonerGUID = anchor->AI()->GetGUID())
@@ -352,14 +352,14 @@ class npc_death_knight_initiate : public CreatureScript
public:
npc_death_knight_initiate() : CreatureScript("npc_death_knight_initiate") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF)
{
player->CLOSE_GOSSIP_MENU();
- if (player->isInCombat() || creature->isInCombat())
+ if (player->IsInCombat() || creature->IsInCombat())
return true;
if (npc_death_knight_initiateAI* pInitiateAI = CAST_AI(npc_death_knight_initiate::npc_death_knight_initiateAI, creature->AI()))
@@ -379,14 +379,14 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
if (player->GetQuestStatus(QUEST_DEATH_CHALLENGE) == QUEST_STATUS_INCOMPLETE && creature->IsFullHealth())
{
if (player->HealthBelowPct(10))
return true;
- if (player->isInCombat() || creature->isInCombat())
+ if (player->IsInCombat() || creature->IsInCombat())
return true;
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ACCEPT_DUEL, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
@@ -395,7 +395,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_death_knight_initiateAI(creature);
}
@@ -412,7 +412,7 @@ public:
uint32 m_uiDuelTimer;
bool m_bIsDuelInProgress;
- void Reset()
+ void Reset() OVERRIDE
{
lose = false;
me->RestoreFaction();
@@ -425,7 +425,7 @@ public:
m_bIsDuelInProgress = false;
}
- void SpellHit(Unit* pCaster, const SpellInfo* pSpell)
+ void SpellHit(Unit* pCaster, const SpellInfo* pSpell) OVERRIDE
{
if (!m_bIsDuelInProgress && pSpell->Id == SPELL_DUEL)
{
@@ -434,7 +434,7 @@ public:
}
}
- void DamageTaken(Unit* pDoneBy, uint32 &uiDamage)
+ void DamageTaken(Unit* pDoneBy, uint32 &uiDamage) OVERRIDE
{
if (m_bIsDuelInProgress && pDoneBy->IsControlledByPlayer())
{
@@ -457,7 +457,7 @@ public:
}
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (!UpdateVictim())
{
@@ -484,10 +484,10 @@ public:
EnterEvadeMode();
return;
}
- else if (me->getVictim()->GetTypeId() == TYPEID_PLAYER && me->getVictim()->HealthBelowPct(10))
+ else if (me->GetVictim()->GetTypeId() == TYPEID_PLAYER && me->GetVictim()->HealthBelowPct(10))
{
- me->getVictim()->CastSpell(me->getVictim(), 7267, true); // beg
- me->getVictim()->RemoveGameObject(SPELL_DUEL_FLAG, true);
+ me->GetVictim()->CastSpell(me->GetVictim(), 7267, true); // beg
+ me->GetVictim()->RemoveGameObject(SPELL_DUEL_FLAG, true);
EnterEvadeMode();
return;
}
@@ -520,7 +520,7 @@ class npc_dark_rider_of_acherus : public CreatureScript
public:
npc_dark_rider_of_acherus() : CreatureScript("npc_dark_rider_of_acherus") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_dark_rider_of_acherusAI(creature);
}
@@ -534,7 +534,7 @@ public:
bool Intro;
uint64 TargetGUID;
- void Reset()
+ void Reset() OVERRIDE
{
PhaseTimer = 4000;
Phase = 0;
@@ -542,7 +542,7 @@ public:
TargetGUID = 0;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!Intro || !TargetGUID)
return;
@@ -612,7 +612,7 @@ class npc_salanar_the_horseman : public CreatureScript
public:
npc_salanar_the_horseman() : CreatureScript("npc_salanar_the_horseman") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_salanar_the_horsemanAI(creature);
}
@@ -621,7 +621,7 @@ public:
{
npc_salanar_the_horsemanAI(Creature* creature) : ScriptedAI(creature) {}
- void SpellHit(Unit* caster, const SpellInfo* spell)
+ void SpellHit(Unit* caster, const SpellInfo* spell) OVERRIDE
{
if (spell->Id == SPELL_DELIVER_STOLEN_HORSE)
{
@@ -643,7 +643,8 @@ public:
}
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
ScriptedAI::MoveInLineOfSight(who);
@@ -684,7 +685,7 @@ class npc_ros_dark_rider : public CreatureScript
public:
npc_ros_dark_rider() : CreatureScript("npc_ros_dark_rider") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_ros_dark_riderAI(creature);
}
@@ -693,12 +694,12 @@ public:
{
npc_ros_dark_riderAI(Creature* creature) : ScriptedAI(creature) {}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
me->ExitVehicle();
}
- void Reset()
+ void Reset() OVERRIDE
{
Creature* deathcharger = me->FindNearestCreature(28782, 30);
if (!deathcharger)
@@ -711,7 +712,7 @@ public:
me->EnterVehicle(deathcharger);
}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
Creature* deathcharger = me->FindNearestCreature(28782, 30);
if (!deathcharger)
@@ -739,7 +740,7 @@ class npc_dkc1_gothik : public CreatureScript
public:
npc_dkc1_gothik() : CreatureScript("npc_dkc1_gothik") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_dkc1_gothikAI(creature);
}
@@ -748,7 +749,8 @@ public:
{
npc_dkc1_gothikAI(Creature* creature) : ScriptedAI(creature) {}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
ScriptedAI::MoveInLineOfSight(who);
@@ -782,7 +784,7 @@ class npc_scarlet_ghoul : public CreatureScript
public:
npc_scarlet_ghoul() : CreatureScript("npc_scarlet_ghoul") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_scarlet_ghoulAI(creature);
}
@@ -809,7 +811,7 @@ public:
{
if ((*itr)->GetOwner()->GetGUID() == me->GetOwner()->GetGUID())
{
- if ((*itr)->isInCombat() && (*itr)->getAttackerForHelper())
+ if ((*itr)->IsInCombat() && (*itr)->getAttackerForHelper())
{
AttackStart((*itr)->getAttackerForHelper());
}
@@ -818,14 +820,14 @@ public:
}
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
- if (!me->isInCombat())
+ if (!me->IsInCombat())
{
if (Unit* owner = me->GetOwner())
{
Player* plrOwner = owner->ToPlayer();
- if (plrOwner && plrOwner->isInCombat())
+ if (plrOwner && plrOwner->IsInCombat())
{
if (plrOwner->getAttackerForHelper() && plrOwner->getAttackerForHelper()->GetEntry() == NPC_GHOSTS)
AttackStart(plrOwner->getAttackerForHelper());
@@ -840,14 +842,14 @@ public:
//ScriptedAI::UpdateAI(diff);
//Check if we have a current target
- if (me->getVictim()->GetEntry() == NPC_GHOSTS)
+ if (me->GetVictim()->GetEntry() == NPC_GHOSTS)
{
if (me->isAttackReady())
{
//If we are within range melee the target
- if (me->IsWithinMeleeRange(me->getVictim()))
+ if (me->IsWithinMeleeRange(me->GetVictim()))
{
- me->AttackerStateUpdate(me->getVictim());
+ me->AttackerStateUpdate(me->GetVictim());
me->resetAttackTimer();
}
}
@@ -884,7 +886,7 @@ class npc_scarlet_miner_cart : public CreatureScript
me->SetDisplayId(me->GetCreatureTemplate()->Modelid1); // Modelid2 is a horse.
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
if (summon->GetEntry() == NPC_MINER)
{
@@ -893,13 +895,13 @@ class npc_scarlet_miner_cart : public CreatureScript
}
}
- void SummonedCreatureDespawn(Creature* summon)
+ void SummonedCreatureDespawn(Creature* summon) OVERRIDE
{
if (summon->GetEntry() == NPC_MINER)
_minerGUID = 0;
}
- void DoAction(int32 /*param*/)
+ void DoAction(int32 /*param*/) OVERRIDE
{
if (Creature* miner = ObjectAccessor::GetCreature(*me, _minerGUID))
{
@@ -913,7 +915,7 @@ class npc_scarlet_miner_cart : public CreatureScript
}
}
- void PassengerBoarded(Unit* who, int8 /*seatId*/, bool apply)
+ void PassengerBoarded(Unit* who, int8 /*seatId*/, bool apply) OVERRIDE
{
if (apply)
{
@@ -933,7 +935,7 @@ class npc_scarlet_miner_cart : public CreatureScript
uint64 _playerGUID;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_scarlet_miner_cartAI(creature);
}
@@ -965,14 +967,14 @@ class npc_scarlet_miner : public CreatureScript
uint32 IntroPhase;
uint64 carGUID;
- void Reset()
+ void Reset() OVERRIDE
{
carGUID = 0;
IntroTimer = 0;
IntroPhase = 0;
}
- void IsSummonedBy(Unit* summoner)
+ void IsSummonedBy(Unit* summoner) OVERRIDE
{
carGUID = summoner->GetGUID();
}
@@ -1010,14 +1012,14 @@ class npc_scarlet_miner : public CreatureScript
}
}
- void SetGUID(uint64 guid, int32 /*id = 0*/)
+ void SetGUID(uint64 guid, int32 /*id = 0*/) OVERRIDE
{
InitWaypoint();
Start(false, false, guid);
SetDespawnAtFar(false);
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
switch (waypointId)
{
@@ -1042,7 +1044,7 @@ class npc_scarlet_miner : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (IntroPhase)
{
@@ -1069,7 +1071,7 @@ class npc_scarlet_miner : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_scarlet_minerAI(creature);
}
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp
index 1f87d6f65cc..44eef7602c8 100644
--- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp
@@ -44,9 +44,9 @@ class npc_crusade_persuaded : public CreatureScript
public:
npc_crusade_persuaded() : CreatureScript("npc_crusade_persuaded") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_crusade_persuadedAI (creature);
+ return new npc_crusade_persuadedAI(creature);
}
struct npc_crusade_persuadedAI : public ScriptedAI
@@ -57,7 +57,7 @@ public:
uint32 speechCounter;
uint64 playerGUID;
- void Reset()
+ void Reset() OVERRIDE
{
speechTimer = 0;
speechCounter = 0;
@@ -66,9 +66,9 @@ public:
me->RestoreFaction();
}
- void SpellHit(Unit* caster, const SpellInfo* spell)
+ void SpellHit(Unit* caster, const SpellInfo* spell) OVERRIDE
{
- if (spell->Id == SPELL_PERSUASIVE_STRIKE && caster->GetTypeId() == TYPEID_PLAYER && me->isAlive() && !speechCounter)
+ if (spell->Id == SPELL_PERSUASIVE_STRIKE && caster->GetTypeId() == TYPEID_PLAYER && me->IsAlive() && !speechCounter)
{
if (Player* player = caster->ToPlayer())
{
@@ -90,7 +90,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (speechCounter)
{
@@ -191,7 +191,7 @@ class npc_koltira_deathweaver : public CreatureScript
public:
npc_koltira_deathweaver() : CreatureScript("npc_koltira_deathweaver") { }
- bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_BREAKOUT)
{
@@ -210,7 +210,7 @@ public:
me->SetReactState(REACT_DEFENSIVE);
}
- void Reset()
+ void Reset() OVERRIDE
{
if (!HasEscortState(STATE_ESCORT_ESCORTING))
{
@@ -224,7 +224,7 @@ public:
}
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
switch (waypointId)
{
@@ -258,7 +258,7 @@ public:
}
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
if (Player* player = GetPlayerForEscort())
summoned->AI()->AttackStart(player);
@@ -275,7 +275,7 @@ public:
me->SummonCreature(NPC_CRIMSON_ACOLYTE, 1642.329f, -6045.818f, 127.583f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
npc_escortAI::UpdateAI(uiDiff);
@@ -309,7 +309,7 @@ public:
{
Creature* temp = Unit::GetCreature(*me, valrothGUID);
- if (!temp || !temp->isAlive())
+ if (!temp || !temp->IsAlive())
{
Talk(SAY_BREAKOUT8);
waveTimer = 5000;
@@ -347,7 +347,7 @@ public:
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_koltira_deathweaverAI(creature);
}
@@ -363,38 +363,38 @@ enum ScarletCourierEnum
NPC_SCARLET_COURIER = 29076
};
-class mob_scarlet_courier : public CreatureScript
+class npc_scarlet_courier : public CreatureScript
{
public:
- mob_scarlet_courier() : CreatureScript("mob_scarlet_courier") { }
+ npc_scarlet_courier() : CreatureScript("npc_scarlet_courier") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_scarlet_courierAI (creature);
+ return new npc_scarlet_courierAI(creature);
}
- struct mob_scarlet_courierAI : public ScriptedAI
+ struct npc_scarlet_courierAI : public ScriptedAI
{
- mob_scarlet_courierAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_scarlet_courierAI(Creature* creature) : ScriptedAI(creature) {}
uint32 uiStage;
uint32 uiStage_timer;
- void Reset()
+ void Reset() OVERRIDE
{
me->Mount(14338); // not sure about this id
uiStage = 1;
uiStage_timer = 3000;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_TREE2);
me->Dismount();
uiStage = 0;
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type != POINT_MOTION_TYPE)
return;
@@ -403,9 +403,9 @@ public:
uiStage = 2;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
- if (uiStage && !me->isInCombat())
+ if (uiStage && !me->IsInCombat())
{
if (uiStage_timer <= diff)
{
@@ -455,38 +455,38 @@ enum valroth
SPELL_SUMMON_VALROTH_REMAINS = 52929
};
-class mob_high_inquisitor_valroth : public CreatureScript
+class npc_high_inquisitor_valroth : public CreatureScript
{
public:
- mob_high_inquisitor_valroth() : CreatureScript("mob_high_inquisitor_valroth") { }
+ npc_high_inquisitor_valroth() : CreatureScript("npc_high_inquisitor_valroth") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_high_inquisitor_valrothAI (creature);
+ return new npc_high_inquisitor_valrothAI(creature);
}
- struct mob_high_inquisitor_valrothAI : public ScriptedAI
+ struct npc_high_inquisitor_valrothAI : public ScriptedAI
{
- mob_high_inquisitor_valrothAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_high_inquisitor_valrothAI(Creature* creature) : ScriptedAI(creature) {}
uint32 uiRenew_timer;
uint32 uiInquisitor_Penance_timer;
uint32 uiValroth_Smite_timer;
- void Reset()
+ void Reset() OVERRIDE
{
uiRenew_timer = 1000;
uiInquisitor_Penance_timer = 2000;
uiValroth_Smite_timer = 1000;
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
Talk(SAY_VALROTH_AGGRO);
DoCast(who, SPELL_VALROTH_SMITE);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (uiRenew_timer <= diff)
{
@@ -498,14 +498,14 @@ public:
if (uiInquisitor_Penance_timer <= diff)
{
Shout();
- DoCast(me->getVictim(), SPELL_INQUISITOR_PENANCE);
+ DoCastVictim(SPELL_INQUISITOR_PENANCE);
uiInquisitor_Penance_timer = urand(2000, 7000);
} else uiInquisitor_Penance_timer -= diff;
if (uiValroth_Smite_timer <= diff)
{
Shout();
- DoCast(me->getVictim(), SPELL_VALROTH_SMITE);
+ DoCastVictim(SPELL_VALROTH_SMITE);
uiValroth_Smite_timer = urand(1000, 6000);
} else uiValroth_Smite_timer -= diff;
@@ -518,7 +518,7 @@ public:
Talk(SAY_VALROTH_RAND);
}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
Talk(SAY_VALROTH_DEATH);
killer->CastSpell(me, SPELL_SUMMON_VALROTH_REMAINS, true);
@@ -596,7 +596,7 @@ class npc_a_special_surprise : public CreatureScript
public:
npc_a_special_surprise() : CreatureScript("npc_a_special_surprise") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_a_special_surpriseAI(creature);
}
@@ -609,7 +609,7 @@ public:
uint32 ExecuteSpeech_Counter;
uint64 PlayerGUID;
- void Reset()
+ void Reset() OVERRIDE
{
ExecuteSpeech_Timer = 0;
ExecuteSpeech_Counter = 0;
@@ -667,7 +667,8 @@ public:
return false;
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (PlayerGUID || who->GetTypeId() != TYPEID_PLAYER || !who->IsWithinDist(me, INTERACTION_DISTANCE))
return;
@@ -676,9 +677,9 @@ public:
PlayerGUID = who->GetGUID();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
- if (PlayerGUID && !me->getVictim() && me->isAlive())
+ if (PlayerGUID && !me->GetVictim() && me->IsAlive())
{
if (ExecuteSpeech_Timer <= diff)
{
@@ -1013,8 +1014,8 @@ public:
void AddSC_the_scarlet_enclave_c2()
{
new npc_crusade_persuaded();
- new mob_scarlet_courier();
+ new npc_scarlet_courier();
new npc_koltira_deathweaver();
- new mob_high_inquisitor_valroth();
+ new npc_high_inquisitor_valroth();
new npc_a_special_surprise();
}
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp
index 3d91e81644e..382a0002065 100644
--- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp
@@ -230,7 +230,7 @@ void UpdateWorldState(Map* map, uint32 id, uint32 state)
{
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
{
- if (Player* player = itr->getSource())
+ if (Player* player = itr->GetSource())
player->SendUpdateWorldState(id, state);
}
}
@@ -275,7 +275,7 @@ class npc_highlord_darion_mograine : public CreatureScript
public:
npc_highlord_darion_mograine() : CreatureScript("npc_highlord_darion_mograine") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -289,9 +289,9 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
if (player->GetQuestStatus(12801) == QUEST_STATUS_INCOMPLETE)
@@ -302,7 +302,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_highlord_darion_mograineAI(creature);
}
@@ -353,7 +353,7 @@ public:
uint64 uiGhoulGUID[ENCOUNTER_GHOUL_NUMBER];
uint64 uiWarriorGUID[ENCOUNTER_WARRIOR_NUMBER];
- void Reset()
+ void Reset() OVERRIDE
{
if (!HasEscortState(STATE_ESCORT_ESCORTING))
{
@@ -453,7 +453,7 @@ public:
}
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (!who)
return;
@@ -470,7 +470,8 @@ public:
}
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (!who)
return;
@@ -485,7 +486,7 @@ public:
SetEscortPaused(bOnHold);
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
switch (waypointId)
{
@@ -600,13 +601,13 @@ public:
}
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
if (!bIsBattle)//do not reset self if we are in battle
npc_escortAI::EnterEvadeMode();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
npc_escortAI::UpdateAI(diff);
@@ -1302,8 +1303,8 @@ public:
if (!PlayerList.isEmpty())
{
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
- if (i->getSource()->isAlive() && me->IsWithinDistInMap(i->getSource(), 50))
- i->getSource()->CastSpell(i->getSource(), SPELL_THE_LIGHT_OF_DAWN_Q, false);
+ if (i->GetSource()->IsAlive() && me->IsWithinDistInMap(i->GetSource(), 50))
+ i->GetSource()->CastSpell(i->GetSource(), SPELL_THE_LIGHT_OF_DAWN_Q, false);
}
}
me->SetVisible(false); // respawns another Darion for quest turn in
@@ -1343,25 +1344,25 @@ public:
if (uiDeath_strike <= diff)
{
- DoCast(me->getVictim(), SPELL_DEATH_STRIKE);
+ DoCastVictim(SPELL_DEATH_STRIKE);
uiDeath_strike = urand(5000, 10000);
} else uiDeath_strike -= diff;
if (uiDeath_embrace <= diff)
{
- DoCast(me->getVictim(), SPELL_DEATH_EMBRACE);
+ DoCastVictim(SPELL_DEATH_EMBRACE);
uiDeath_embrace = urand(5000, 10000);
} else uiDeath_embrace -= diff;
if (uiIcy_touch <= diff)
{
- DoCast(me->getVictim(), SPELL_ICY_TOUCH1);
+ DoCastVictim(SPELL_ICY_TOUCH1);
uiIcy_touch = urand(5000, 10000);
} else uiIcy_touch -= diff;
if (uiUnholy_blight <= diff)
{
- DoCast(me->getVictim(), SPELL_UNHOLY_BLIGHT);
+ DoCastVictim(SPELL_UNHOLY_BLIGHT);
uiUnholy_blight = urand(5000, 10000);
} else uiUnholy_blight -= diff;
@@ -1515,9 +1516,9 @@ public:
void NPCChangeTarget(uint64 ui_GUID)
{
if (Creature* temp = Unit::GetCreature(*me, ui_GUID))
- if (temp->isAlive())
+ if (temp->IsAlive())
if (Unit* pTarger = SelectTarget(SELECT_TARGET_RANDOM, 0))
- if (pTarger->isAlive())
+ if (pTarger->IsAlive())
{
// temp->DeleteThreatList();
temp->AddThreat(pTarger, 0.0f);
@@ -1634,7 +1635,7 @@ public:
void DespawnNPC(uint64 pGUID)
{
if (Creature* temp = Unit::GetCreature(*me, pGUID))
- if (temp->isAlive())
+ if (temp->IsAlive())
{
temp->SetVisible(false);
temp->Kill(temp);
@@ -1652,18 +1653,18 @@ class npc_the_lich_king_tirion_dawn : public CreatureScript
public:
npc_the_lich_king_tirion_dawn() : CreatureScript("npc_the_lich_king_tirion_dawn") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_the_lich_king_tirion_dawnAI (creature);
+ return new npc_the_lich_king_tirion_dawnAI(creature);
}
struct npc_the_lich_king_tirion_dawnAI : public ScriptedAI
{
npc_the_lich_king_tirion_dawnAI(Creature* creature) : ScriptedAI(creature) { Reset(); }
- void Reset() {}
- void AttackStart(Unit* /*who*/) {} // very sample, just don't make them aggreesive
- void UpdateAI(uint32 /*diff*/) {}
- void JustDied(Unit* /*killer*/) {}
+ void Reset() OVERRIDE {}
+ void AttackStart(Unit* /*who*/) {} // very sample, just don't make them aggreesive OVERRIDE
+ void UpdateAI(uint32 /*diff*/) OVERRIDE {}
+ void JustDied(Unit* /*killer*/) OVERRIDE {}
};
};
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/zone_the_scarlet_enclave.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/zone_the_scarlet_enclave.cpp
index 326c02630ac..aa4be5d2523 100644
--- a/src/server/scripts/EasternKingdoms/ScarletEnclave/zone_the_scarlet_enclave.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/zone_the_scarlet_enclave.cpp
@@ -39,9 +39,9 @@ class npc_valkyr_battle_maiden : public CreatureScript
public:
npc_valkyr_battle_maiden() : CreatureScript("npc_valkyr_battle_maiden") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_valkyr_battle_maidenAI (creature);
+ return new npc_valkyr_battle_maidenAI(creature);
}
struct npc_valkyr_battle_maidenAI : public PassiveAI
@@ -52,7 +52,7 @@ public:
float x, y, z;
uint32 phase;
- void Reset()
+ void Reset() OVERRIDE
{
me->setActive(true);
me->SetVisible(false);
@@ -69,12 +69,12 @@ public:
me->SetPosition(x, y, z, 0.0f);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (FlyBackTimer <= diff)
{
Player* player = NULL;
- if (me->isSummon())
+ if (me->IsSummon())
if (Unit* summoner = me->ToTempSummon()->GetSummoner())
player = summoner->ToPlayer();
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_arcanist_doan.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_arcanist_doan.cpp
index db08df50148..4cf6c069648 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_arcanist_doan.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_arcanist_doan.cpp
@@ -26,16 +26,19 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
-enum eEnums
+enum Yells
{
SAY_AGGRO = 0,
- SAY_SPECIALAE = 1,
+ SAY_SPECIALAE = 1
+};
+enum Spells
+{
SPELL_POLYMORPH = 13323,
SPELL_AOESILENCE = 8988,
SPELL_ARCANEEXPLOSION = 9433,
SPELL_FIREAOE = 9435,
- SPELL_ARCANEBUBBLE = 9438,
+ SPELL_ARCANEBUBBLE = 9438
};
class boss_arcanist_doan : public CreatureScript
@@ -43,9 +46,9 @@ class boss_arcanist_doan : public CreatureScript
public:
boss_arcanist_doan() : CreatureScript("boss_arcanist_doan") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_arcanist_doanAI (creature);
+ return new boss_arcanist_doanAI(creature);
}
struct boss_arcanist_doanAI : public ScriptedAI
@@ -58,7 +61,7 @@ public:
bool bCanDetonate;
bool bShielded;
- void Reset()
+ void Reset() OVERRIDE
{
Polymorph_Timer = 20000;
AoESilence_Timer = 15000;
@@ -67,12 +70,12 @@ public:
bShielded = false;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -112,7 +115,7 @@ public:
//AoESilence_Timer
if (AoESilence_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_AOESILENCE);
+ DoCastVictim(SPELL_AOESILENCE);
AoESilence_Timer = urand(15000, 20000);
}
else AoESilence_Timer -= diff;
@@ -120,7 +123,7 @@ public:
//ArcaneExplosion_Timer
if (ArcaneExplosion_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_ARCANEEXPLOSION);
+ DoCastVictim(SPELL_ARCANEEXPLOSION);
ArcaneExplosion_Timer = 8000;
}
else ArcaneExplosion_Timer -= diff;
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_azshir_the_sleepless.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_azshir_the_sleepless.cpp
index 384ffeb6bf3..a88ff8b2977 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_azshir_the_sleepless.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_azshir_the_sleepless.cpp
@@ -38,9 +38,9 @@ class boss_azshir_the_sleepless : public CreatureScript
public:
boss_azshir_the_sleepless() : CreatureScript("boss_azshir_the_sleepless") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_azshir_the_sleeplessAI (creature);
+ return new boss_azshir_the_sleeplessAI(creature);
}
struct boss_azshir_the_sleeplessAI : public ScriptedAI
@@ -51,16 +51,16 @@ public:
uint32 CallOftheGrave_Timer;
uint32 Terrify_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
SoulSiphon_Timer = 1;
CallOftheGrave_Timer = 30000;
Terrify_Timer = 20000;
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -71,7 +71,7 @@ public:
//SoulSiphon_Timer
if (SoulSiphon_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_SOULSIPHON);
+ DoCastVictim(SPELL_SOULSIPHON);
return;
//SoulSiphon_Timer = 20000;
@@ -82,7 +82,7 @@ public:
//CallOfTheGrave_Timer
if (CallOftheGrave_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_CALLOFTHEGRAVE);
+ DoCastVictim(SPELL_CALLOFTHEGRAVE);
CallOftheGrave_Timer = 30000;
}
else CallOftheGrave_Timer -= diff;
@@ -90,7 +90,7 @@ public:
//Terrify_Timer
if (Terrify_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_TERRIFY);
+ DoCastVictim(SPELL_TERRIFY);
Terrify_Timer = 20000;
}
else Terrify_Timer -= diff;
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_bloodmage_thalnos.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_bloodmage_thalnos.cpp
index cae033f2a30..f10ac0b5ba2 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_bloodmage_thalnos.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_bloodmage_thalnos.cpp
@@ -26,12 +26,15 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
-enum eEnums
+enum Yells
{
SAY_AGGRO = 0,
SAY_HEALTH = 1,
- SAY_KILL = 2,
+ SAY_KILL = 2
+};
+enum Spells
+{
SPELL_FLAMESHOCK = 8053,
SPELL_SHADOWBOLT = 1106,
SPELL_FLAMESPIKE = 8814,
@@ -43,9 +46,9 @@ class boss_bloodmage_thalnos : public CreatureScript
public:
boss_bloodmage_thalnos() : CreatureScript("boss_bloodmage_thalnos") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_bloodmage_thalnosAI (creature);
+ return new boss_bloodmage_thalnosAI(creature);
}
struct boss_bloodmage_thalnosAI : public ScriptedAI
@@ -58,7 +61,7 @@ public:
uint32 FlameSpike_Timer;
uint32 FireNova_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
HpYell = false;
FlameShock_Timer = 10000;
@@ -67,17 +70,17 @@ public:
FireNova_Timer = 40000;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
}
- void KilledUnit(Unit* /*Victim*/)
+ void KilledUnit(Unit* /*Victim*/) OVERRIDE
{
Talk(SAY_KILL);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -92,7 +95,7 @@ public:
//FlameShock_Timer
if (FlameShock_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_FLAMESHOCK);
+ DoCastVictim(SPELL_FLAMESHOCK);
FlameShock_Timer = urand(10000, 15000);
}
else FlameShock_Timer -= diff;
@@ -100,7 +103,7 @@ public:
//FlameSpike_Timer
if (FlameSpike_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_FLAMESPIKE);
+ DoCastVictim(SPELL_FLAMESPIKE);
FlameSpike_Timer = 30000;
}
else FlameSpike_Timer -= diff;
@@ -108,7 +111,7 @@ public:
//FireNova_Timer
if (FireNova_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_FIRENOVA);
+ DoCastVictim(SPELL_FIRENOVA);
FireNova_Timer = 40000;
}
else FireNova_Timer -= diff;
@@ -116,7 +119,7 @@ public:
//ShadowBolt_Timer
if (ShadowBolt_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_SHADOWBOLT);
+ DoCastVictim(SPELL_SHADOWBOLT);
ShadowBolt_Timer = 2000;
}
else ShadowBolt_Timer -= diff;
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp
index 32e8af3821b..fb2d8374c18 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp
@@ -141,19 +141,19 @@ static char const* Text[]=
#define EMOTE_LAUGHS "Headless Horseman laughs" // needs assigned to db.
-class mob_wisp_invis : public CreatureScript
+class npc_wisp_invis : public CreatureScript
{
public:
- mob_wisp_invis() : CreatureScript("mob_wisp_invis") { }
+ npc_wisp_invis() : CreatureScript("npc_wisp_invis") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_wisp_invisAI (creature);
+ return new npc_wisp_invisAI(creature);
}
- struct mob_wisp_invisAI : public ScriptedAI
+ struct npc_wisp_invisAI : public ScriptedAI
{
- mob_wisp_invisAI(Creature* creature) : ScriptedAI(creature)
+ npc_wisp_invisAI(Creature* creature) : ScriptedAI(creature)
{
Creaturetype = delay = spell = spell2 = 0;
}
@@ -162,8 +162,8 @@ public:
uint32 delay;
uint32 spell;
uint32 spell2;
- void Reset() {}
- void EnterCombat(Unit* /*who*/) {}
+ void Reset() OVERRIDE {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
void SetType(uint32 _type)
{
switch (Creaturetype = _type)
@@ -189,13 +189,14 @@ public:
DoCast(me, spell);
}
- void SpellHit(Unit* /*caster*/, const SpellInfo* spell)
+ void SpellHit(Unit* /*caster*/, const SpellInfo* spell) OVERRIDE
{
if (spell->Id == SPELL_WISP_FLIGHT_PORT && Creaturetype == 4)
me->SetDisplayId(2027);
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (!who || Creaturetype != 1 || !who->isTargetableForAttack())
return;
@@ -204,7 +205,7 @@ public:
DoCast(who, SPELL_SQUASH_SOUL);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (delay)
{
@@ -220,19 +221,19 @@ public:
};
};
-class mob_head : public CreatureScript
+class npc_head : public CreatureScript
{
public:
- mob_head() : CreatureScript("mob_head") { }
+ npc_head() : CreatureScript("npc_head") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_headAI (creature);
+ return new npc_headAI(creature);
}
- struct mob_headAI : public ScriptedAI
+ struct npc_headAI : public ScriptedAI
{
- mob_headAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_headAI(Creature* creature) : ScriptedAI(creature) {}
uint64 bodyGUID;
@@ -243,7 +244,7 @@ public:
bool withbody;
bool die;
- void Reset()
+ void Reset() OVERRIDE
{
Phase = 0;
bodyGUID = 0;
@@ -253,7 +254,7 @@ public:
laugh = urand(15000, 30000);
}
- void EnterCombat(Unit* /*who*/) { }
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
void SaySound(uint8 textEntry, Unit* target = 0)
{
@@ -268,7 +269,7 @@ public:
laugh += 3000;
}
- void DamageTaken(Unit* /*done_by*/, uint32 &damage)
+ void DamageTaken(Unit* /*done_by*/, uint32 &damage) OVERRIDE
{
if (withbody)
return;
@@ -299,7 +300,7 @@ public:
}
}
- void SpellHit(Unit* caster, const SpellInfo* spell)
+ void SpellHit(Unit* caster, const SpellInfo* spell) OVERRIDE
{
if (!withbody)
return;
@@ -320,22 +321,22 @@ public:
DoCast(me, SPELL_HEAD, false);
SaySound(SAY_LOST_HEAD);
me->GetMotionMaster()->Clear(false);
- me->GetMotionMaster()->MoveFleeing(caster->getVictim());
+ me->GetMotionMaster()->MoveFleeing(caster->GetVictim());
}
}
void Disappear();
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!withbody)
{
if (wait <= diff)
{
wait = 1000;
- if (!me->getVictim())
+ if (!me->GetVictim())
return;
me->GetMotionMaster()->Clear(false);
- me->GetMotionMaster()->MoveFleeing(me->getVictim());
+ me->GetMotionMaster()->MoveFleeing(me->GetVictim());
}
else wait -= diff;
@@ -374,9 +375,9 @@ class boss_headless_horseman : public CreatureScript
public:
boss_headless_horseman() : CreatureScript("boss_headless_horseman") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_headless_horsemanAI (creature);
+ return new boss_headless_horsemanAI(creature);
}
struct boss_headless_horsemanAI : public ScriptedAI
@@ -410,7 +411,7 @@ public:
bool wp_reached;
bool burned;
- void Reset()
+ void Reset() OVERRIDE
{
Phase = 1;
conflagrate = 15000;
@@ -435,6 +436,7 @@ public:
headGUID = 0;
}
+ me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
//if (instance)
// instance->SetData(DATA_HORSEMAN_EVENT, NOT_STARTED);
}
@@ -443,7 +445,7 @@ public:
{
me->SetVisible(false);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- me->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT | MOVEMENTFLAG_DISABLE_GRAVITY);
+ me->SetDisableGravity(true);
me->SetSpeed(MOVE_WALK, 5.0f, true);
wp_reached = false;
count = 0;
@@ -452,7 +454,7 @@ public:
Phase = 0;
}
- void MovementInform(uint32 type, uint32 i)
+ void MovementInform(uint32 type, uint32 i) OVERRIDE
{
if (type != POINT_MOTION_TYPE || !IsFlying || i != id)
return;
@@ -467,7 +469,7 @@ public:
case 1:
{
if (Creature* smoke = me->SummonCreature(HELPER, Spawn[1].x, Spawn[1].y, Spawn[1].z, 0, TEMPSUMMON_TIMED_DESPAWN, 20000))
- CAST_AI(mob_wisp_invis::mob_wisp_invisAI, smoke->AI())->SetType(3);
+ CAST_AI(npc_wisp_invis::npc_wisp_invisAI, smoke->AI())->SetType(3);
DoCast(me, SPELL_RHYME_BIG);
break;
}
@@ -476,7 +478,7 @@ public:
instance->SetData(GAMEOBJECT_PUMPKIN_SHRINE, 0); //hide gameobject
break;
case 19:
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT | MOVEMENTFLAG_DISABLE_GRAVITY);
+ me->SetDisableGravity(false);
break;
case 20:
{
@@ -493,25 +495,26 @@ public:
++id;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (instance)
instance->SetData(DATA_HORSEMAN_EVENT, IN_PROGRESS);
DoZoneInCombat();
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
ScriptedAI::AttackStart(who);
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (withhead && Phase != 0)
ScriptedAI::MoveInLineOfSight(who);
}
- void KilledUnit(Unit* player)
+ void KilledUnit(Unit* player) OVERRIDE
{
if (player->GetTypeId() == TYPEID_PLAYER)
{
@@ -519,7 +522,7 @@ public:
SaySound(SAY_PLAYER_DEATH);
//maybe possible when player dies from conflagration
else if (Creature* Head = Unit::GetCreature((*me), headGUID))
- CAST_AI(mob_head::mob_headAI, Head->AI())->SaySound(SAY_PLAYER_DEATH);
+ CAST_AI(npc_head::npc_headAI, Head->AI())->SaySound(SAY_PLAYER_DEATH);
}
}
@@ -544,9 +547,9 @@ public:
std::list<Player*> temp;
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
- if ((me->IsWithinLOSInMap(i->getSource()) || !checkLoS) && me->getVictim() != i->getSource() &&
- me->IsWithinDistInMap(i->getSource(), range) && i->getSource()->isAlive())
- temp.push_back(i->getSource());
+ if ((me->IsWithinLOSInMap(i->GetSource()) || !checkLoS) && me->GetVictim() != i->GetSource() &&
+ me->IsWithinDistInMap(i->GetSource(), range) && i->GetSource()->IsAlive())
+ temp.push_back(i->GetSource());
if (!temp.empty())
{
@@ -557,13 +560,13 @@ public:
return NULL;
}
- void SpellHitTarget(Unit* unit, const SpellInfo* spell)
+ void SpellHitTarget(Unit* unit, const SpellInfo* spell) OVERRIDE
{
if (spell->Id == SPELL_CONFLAGRATION && unit->HasAura(SPELL_CONFLAGRATION))
SaySound(SAY_CONFLAGRATION, unit);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
me->StopMoving();
//me->GetMotionMaster()->MoveIdle();
@@ -571,16 +574,16 @@ public:
if (Creature* flame = DoSpawnCreature(HELPER, 0, 0, 0, 0, TEMPSUMMON_TIMED_DESPAWN, 60000))
flame->CastSpell(flame, SPELL_BODY_FLAME, false);
if (Creature* wisp = DoSpawnCreature(WISP_INVIS, 0, 0, 0, 0, TEMPSUMMON_TIMED_DESPAWN, 60000))
- CAST_AI(mob_wisp_invis::mob_wisp_invisAI, wisp->AI())->SetType(4);
+ CAST_AI(npc_wisp_invis::npc_wisp_invisAI, wisp->AI())->SetType(4);
if (instance)
instance->SetData(DATA_HORSEMAN_EVENT, DONE);
Map::PlayerList const& players = me->GetMap()->GetPlayers();
if (!players.isEmpty())
- sLFGMgr->FinishDungeon(players.begin()->getSource()->GetGroup()->GetGUID(), 285);
+ sLFGMgr->FinishDungeon(players.begin()->GetSource()->GetGroup()->GetGUID(), 285);
}
- void SpellHit(Unit* caster, const SpellInfo* spell)
+ void SpellHit(Unit* caster, const SpellInfo* spell) OVERRIDE
{
if (withhead)
return;
@@ -604,13 +607,13 @@ public:
for (ThreatContainer::StorageType::const_iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr)
{
Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid());
- if (unit && unit->isAlive() && unit != caster)
+ if (unit && unit->IsAlive() && unit != caster)
me->AddThreat(unit, caster->getThreatManager().getThreat(unit));
}
}
}
- void DamageTaken(Unit* /*done_by*/, uint32 &damage)
+ void DamageTaken(Unit* /*done_by*/, uint32 &damage) OVERRIDE
{
if (damage >= me->GetHealth() && withhead)
{
@@ -624,7 +627,7 @@ public:
headGUID = DoSpawnCreature(HEAD, float(rand()%6), float(rand()%6), 0, 0, TEMPSUMMON_DEAD_DESPAWN, 0)->GetGUID();
Unit* Head = Unit::GetUnit(*me, headGUID);
- if (Head && Head->isAlive())
+ if (Head && Head->IsAlive())
{
Head->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
//Head->CastSpell(Head, SPELL_HEAD_INVIS, false);
@@ -639,7 +642,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (withhead)
{
@@ -692,7 +695,7 @@ public:
if (burn <= diff)
{
if (Creature* flame = me->SummonCreature(HELPER, Spawn[0].x, Spawn[0].y, Spawn[0].z, 0, TEMPSUMMON_TIMED_DESPAWN, 17000))
- CAST_AI(mob_wisp_invis::mob_wisp_invisAI, flame->AI())->SetType(2);
+ CAST_AI(npc_wisp_invis::npc_wisp_invisAI, flame->AI())->SetType(2);
burned = true;
}
else burn -= diff;
@@ -731,7 +734,7 @@ public:
DoMeleeAttackIfReady();
if (cleave <= diff)
{
- DoCast(me->getVictim(), SPELL_CLEAVE);
+ DoCastVictim(SPELL_CLEAVE);
cleave = urand(2000, 6000); //1 cleave per 2.0f-6.0fsec
}
else cleave -= diff;
@@ -749,10 +752,10 @@ public:
else
Phase = 1;
Creature* Head = Unit::GetCreature((*me), headGUID);
- if (Head && Head->isAlive())
+ if (Head && Head->IsAlive())
{
- CAST_AI(mob_head::mob_headAI, Head->AI())->Phase = Phase;
- CAST_AI(mob_head::mob_headAI, Head->AI())->Disappear();
+ CAST_AI(npc_head::npc_headAI, Head->AI())->Phase = Phase;
+ CAST_AI(npc_head::npc_headAI, Head->AI())->Disappear();
}
return;
}
@@ -777,24 +780,24 @@ public:
};
};
-class mob_pulsing_pumpkin : public CreatureScript
+class npc_pulsing_pumpkin : public CreatureScript
{
public:
- mob_pulsing_pumpkin() : CreatureScript("mob_pulsing_pumpkin") { }
+ npc_pulsing_pumpkin() : CreatureScript("npc_pulsing_pumpkin") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_pulsing_pumpkinAI (creature);
+ return new npc_pulsing_pumpkinAI(creature);
}
- struct mob_pulsing_pumpkinAI : public ScriptedAI
+ struct npc_pulsing_pumpkinAI : public ScriptedAI
{
- mob_pulsing_pumpkinAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_pulsing_pumpkinAI(Creature* creature) : ScriptedAI(creature) {}
bool sprouted;
uint64 debuffGUID;
- void Reset()
+ void Reset() OVERRIDE
{
float x, y, z;
me->GetPosition(x, y, z); //this visual aura some under ground
@@ -805,7 +808,7 @@ public:
{
debuff->SetDisplayId(me->GetDisplayId());
debuff->CastSpell(debuff, SPELL_PUMPKIN_AURA_GREEN, false);
- CAST_AI(mob_wisp_invis::mob_wisp_invisAI, debuff->AI())->SetType(1);
+ CAST_AI(npc_wisp_invis::npc_wisp_invisAI, debuff->AI())->SetType(1);
debuffGUID = debuff->GetGUID();
}
sprouted = false;
@@ -814,9 +817,9 @@ public:
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED);
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void SpellHit(Unit* /*caster*/, const SpellInfo* spell)
+ void SpellHit(Unit* /*caster*/, const SpellInfo* spell) OVERRIDE
{
if (spell->Id == SPELL_SPROUTING)
{
@@ -825,7 +828,7 @@ public:
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED);
DoCast(me, SPELL_SPROUT_BODY, true);
me->UpdateEntry(PUMPKIN_FIEND);
- DoStartMovement(me->getVictim());
+ DoStartMovement(me->GetVictim());
}
}
@@ -842,15 +845,16 @@ public:
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (!sprouted)
Despawn();
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
- if (!who || !me->IsValidAttackTarget(who) || me->getVictim())
+ if (!who || !me->IsValidAttackTarget(who) || me->GetVictim())
return;
me->AddThreat(who, 0.0f);
@@ -858,7 +862,7 @@ public:
DoStartMovement(who);
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
if (sprouted && UpdateVictim())
DoMeleeAttackIfReady();
@@ -871,7 +875,7 @@ class go_loosely_turned_soil : public GameObjectScript
public:
go_loosely_turned_soil() : GameObjectScript("go_loosely_turned_soil") { }
- bool OnGossipHello(Player* player, GameObject* soil)
+ bool OnGossipHello(Player* player, GameObject* soil) OVERRIDE
{
InstanceScript* instance = player->GetInstanceScript();
if (instance)
@@ -898,7 +902,7 @@ public:
}
};
-void mob_head::mob_headAI::Disappear()
+void npc_head::npc_headAI::Disappear()
{
if (withbody)
return;
@@ -906,7 +910,7 @@ void mob_head::mob_headAI::Disappear()
if (bodyGUID)
{
Creature* body = Unit::GetCreature((*me), bodyGUID);
- if (body && body->isAlive())
+ if (body && body->IsAlive())
{
withbody = true;
me->RemoveAllAuras();
@@ -924,8 +928,8 @@ void mob_head::mob_headAI::Disappear()
void AddSC_boss_headless_horseman()
{
new boss_headless_horseman();
- new mob_head();
- new mob_pulsing_pumpkin();
- new mob_wisp_invis();
+ new npc_head();
+ new npc_pulsing_pumpkin();
+ new npc_wisp_invis();
new go_loosely_turned_soil();
}
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_herod.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_herod.cpp
index 4929e0fbb3d..3c662fae9f8 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_herod.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_herod.cpp
@@ -55,7 +55,7 @@ class boss_herod : public CreatureScript
public:
boss_herod() : CreatureScript("boss_herod") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_herodAI(creature);
}
@@ -69,31 +69,31 @@ public:
uint32 Cleave_Timer;
uint32 Whirlwind_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
Enrage = false;
Cleave_Timer = 12000;
Whirlwind_Timer = 60000;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
DoCast(me, SPELL_RUSHINGCHARGE);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_KILL);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
for (uint8 i = 0; i < 20; ++i)
me->SummonCreature(ENTRY_SCARLET_TRAINEE, 1939.18f, -431.58f, 17.09f, 6.22f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 600000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -110,7 +110,7 @@ public:
//Cleave_Timer
if (Cleave_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_CLEAVE);
+ DoCastVictim(SPELL_CLEAVE);
Cleave_Timer = 12000;
}
else Cleave_Timer -= diff;
@@ -119,7 +119,7 @@ public:
if (Whirlwind_Timer <= diff)
{
Talk(SAY_WHIRLWIND);
- DoCast(me->getVictim(), SPELL_WHIRLWIND);
+ DoCastVictim(SPELL_WHIRLWIND);
Whirlwind_Timer = 30000;
}
else Whirlwind_Timer -= diff;
@@ -129,30 +129,30 @@ public:
};
};
-class mob_scarlet_trainee : public CreatureScript
+class npc_scarlet_trainee : public CreatureScript
{
public:
- mob_scarlet_trainee() : CreatureScript("mob_scarlet_trainee") { }
+ npc_scarlet_trainee() : CreatureScript("npc_scarlet_trainee") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_scarlet_traineeAI(creature);
+ return new npc_scarlet_traineeAI(creature);
}
- struct mob_scarlet_traineeAI : public npc_escortAI
+ struct npc_scarlet_traineeAI : public npc_escortAI
{
- mob_scarlet_traineeAI(Creature* creature) : npc_escortAI(creature)
+ npc_scarlet_traineeAI(Creature* creature) : npc_escortAI(creature)
{
Start_Timer = urand(1000, 6000);
}
uint32 Start_Timer;
- void Reset() {}
- void WaypointReached(uint32 /*waypointId*/) {}
- void EnterCombat(Unit* /*who*/) {}
+ void Reset() OVERRIDE {}
+ void WaypointReached(uint32 /*waypointId*/) OVERRIDE {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (Start_Timer)
{
@@ -171,5 +171,5 @@ public:
void AddSC_boss_herod()
{
new boss_herod();
- new mob_scarlet_trainee();
+ new npc_scarlet_trainee();
}
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_high_inquisitor_fairbanks.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_high_inquisitor_fairbanks.cpp
index 235add380de..38fb663a073 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_high_inquisitor_fairbanks.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_high_inquisitor_fairbanks.cpp
@@ -26,7 +26,7 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
-enum eSpells
+enum Spells
{
SPELL_CURSEOFBLOOD = 8282,
SPELL_DISPELMAGIC = 15090,
@@ -41,9 +41,9 @@ class boss_high_inquisitor_fairbanks : public CreatureScript
public:
boss_high_inquisitor_fairbanks() : CreatureScript("boss_high_inquisitor_fairbanks") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_high_inquisitor_fairbanksAI (creature);
+ return new boss_high_inquisitor_fairbanksAI(creature);
}
struct boss_high_inquisitor_fairbanksAI : public ScriptedAI
@@ -58,7 +58,7 @@ public:
uint32 Dispel_Timer;
bool PowerWordShield;
- void Reset()
+ void Reset() OVERRIDE
{
CurseOfBlood_Timer = 10000;
DispelMagic_Timer = 30000;
@@ -71,13 +71,13 @@ public:
me->SetUInt32Value(UNIT_FIELD_BYTES_1, 7);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
me->SetStandState(UNIT_STAND_STATE_STAND);
me->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -130,7 +130,7 @@ public:
//CurseOfBlood_Timer
if (CurseOfBlood_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_CURSEOFBLOOD);
+ DoCastVictim(SPELL_CURSEOFBLOOD);
CurseOfBlood_Timer = 25000;
}
else CurseOfBlood_Timer -= diff;
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_houndmaster_loksey.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_houndmaster_loksey.cpp
index 6bdf1a16b03..10d60eb15cd 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_houndmaster_loksey.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_houndmaster_loksey.cpp
@@ -26,9 +26,13 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
-enum eEnums
+enum Yells
{
SAY_AGGRO = 0,
+};
+
+enum Spells
+{
SPELL_SUMMONSCARLETHOUND = 17164,
SPELL_BLOODLUST = 6742
};
@@ -38,9 +42,9 @@ class boss_houndmaster_loksey : public CreatureScript
public:
boss_houndmaster_loksey() : CreatureScript("boss_houndmaster_loksey") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_houndmaster_lokseyAI (creature);
+ return new boss_houndmaster_lokseyAI(creature);
}
struct boss_houndmaster_lokseyAI : public ScriptedAI
@@ -49,17 +53,17 @@ public:
uint32 BloodLust_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
BloodLust_Timer = 20000;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_interrogator_vishas.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_interrogator_vishas.cpp
index 4206e958f3c..a57c237c21a 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_interrogator_vishas.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_interrogator_vishas.cpp
@@ -46,9 +46,9 @@ class boss_interrogator_vishas : public CreatureScript
public:
boss_interrogator_vishas() : CreatureScript("boss_interrogator_vishas") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_interrogator_vishasAI (creature);
+ return new boss_interrogator_vishasAI(creature);
}
struct boss_interrogator_vishasAI : public ScriptedAI
@@ -64,22 +64,22 @@ public:
bool Yell60;
uint32 ShadowWordPain_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
ShadowWordPain_Timer = 5000;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
}
- void KilledUnit(Unit* /*Victim*/)
+ void KilledUnit(Unit* /*Victim*/) OVERRIDE
{
Talk(SAY_KILL);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (!instance)
return;
@@ -89,7 +89,7 @@ public:
vorrel->AI()->Talk(SAY_TRIGGER_VORREL);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -110,7 +110,7 @@ public:
//ShadowWordPain_Timer
if (ShadowWordPain_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_SHADOWWORDPAIN);
+ DoCastVictim(SPELL_SHADOWWORDPAIN);
ShadowWordPain_Timer = urand(5000, 15000);
}
else ShadowWordPain_Timer -= diff;
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp
index c6fdc6e651b..403416bb202 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp
@@ -63,9 +63,9 @@ class boss_scarlet_commander_mograine : public CreatureScript
public:
boss_scarlet_commander_mograine() : CreatureScript("boss_scarlet_commander_mograine") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_scarlet_commander_mograineAI (creature);
+ return new boss_scarlet_commander_mograineAI(creature);
}
struct boss_scarlet_commander_mograineAI : public ScriptedAI
@@ -84,7 +84,7 @@ public:
bool _bHeal;
bool _bFakeDeath;
- void Reset()
+ void Reset() OVERRIDE
{
CrusaderStrike_Timer = 10000;
HammerOfJustice_Timer = 10000;
@@ -95,7 +95,7 @@ public:
me->SetStandState(UNIT_STAND_STATE_STAND);
if (instance)
- if (me->isAlive())
+ if (me->IsAlive())
instance->SetData(TYPE_MOGRAINE_AND_WHITE_EVENT, NOT_STARTED);
_bHasDied = false;
@@ -103,7 +103,7 @@ public:
_bFakeDeath = false;
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
if (instance)
{
@@ -112,7 +112,7 @@ public:
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_MO_AGGRO);
DoCast(me, SPELL_RETRIBUTIONAURA);
@@ -120,12 +120,12 @@ public:
me->CallForHelp(VISIBLE_RANGE);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_MO_KILL);
}
- void DamageTaken(Unit* /*doneBy*/, uint32 &damage)
+ void DamageTaken(Unit* /*doneBy*/, uint32 &damage) OVERRIDE
{
if (damage < me->GetHealth() || _bHasDied || _bFakeDeath)
return;
@@ -162,7 +162,7 @@ public:
}
}
- void SpellHit(Unit* /*who*/, const SpellInfo* spell)
+ void SpellHit(Unit* /*who*/, const SpellInfo* spell) OVERRIDE
{
//When hit with ressurection say text
if (spell->Id == SPELL_SCARLETRESURRECTION)
@@ -175,7 +175,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -192,8 +192,8 @@ public:
CrusaderStrike_Timer = 10000;
HammerOfJustice_Timer = 10000;
- if (me->getVictim())
- me->GetMotionMaster()->MoveChase(me->getVictim());
+ if (me->GetVictim())
+ me->GetMotionMaster()->MoveChase(me->GetVictim());
_bHeal = true;
}
@@ -206,7 +206,7 @@ public:
//CrusaderStrike_Timer
if (CrusaderStrike_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_CRUSADERSTRIKE);
+ DoCastVictim(SPELL_CRUSADERSTRIKE);
CrusaderStrike_Timer = 10000;
}
else CrusaderStrike_Timer -= diff;
@@ -214,7 +214,7 @@ public:
//HammerOfJustice_Timer
if (HammerOfJustice_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_HAMMEROFJUSTICE);
+ DoCastVictim(SPELL_HAMMEROFJUSTICE);
HammerOfJustice_Timer = 60000;
}
else HammerOfJustice_Timer -= diff;
@@ -229,9 +229,9 @@ class boss_high_inquisitor_whitemane : public CreatureScript
public:
boss_high_inquisitor_whitemane() : CreatureScript("boss_high_inquisitor_whitemane") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_high_inquisitor_whitemaneAI (creature);
+ return new boss_high_inquisitor_whitemaneAI(creature);
}
struct boss_high_inquisitor_whitemaneAI : public ScriptedAI
@@ -251,7 +251,7 @@ public:
bool _bCanResurrectCheck;
bool _bCanResurrect;
- void Reset()
+ void Reset() OVERRIDE
{
Wait_Timer = 7000;
Heal_Timer = 10000;
@@ -262,11 +262,11 @@ public:
_bCanResurrect = false;
if (instance)
- if (me->isAlive())
+ if (me->IsAlive())
instance->SetData(TYPE_MOGRAINE_AND_WHITE_EVENT, NOT_STARTED);
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (instance && instance->GetData(TYPE_MOGRAINE_AND_WHITE_EVENT) == NOT_STARTED)
return;
@@ -274,23 +274,23 @@ public:
ScriptedAI::AttackStart(who);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_WH_INTRO);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_WH_KILL);
}
- void DamageTaken(Unit* /*attacker*/, uint32& damage)
+ void DamageTaken(Unit* /*attacker*/, uint32& damage) OVERRIDE
{
if (!_bCanResurrectCheck && damage >= me->GetHealth())
damage = me->GetHealth() - 1;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -316,7 +316,7 @@ public:
if (me->IsNonMeleeSpellCasted(false))
me->InterruptNonMeleeSpells(false);
- DoCast(me->getVictim(), SPELL_DEEPSLEEP);
+ DoCastVictim(SPELL_DEEPSLEEP);
_bCanResurrectCheck = true;
_bCanResurrect = true;
return;
@@ -339,7 +339,7 @@ public:
if (Creature* mograine = Unit::GetCreature((*me), instance->GetData64(DATA_MOGRAINE)))
{
// checking _bCanResurrectCheck prevents her healing Mograine while he is "faking death"
- if (_bCanResurrectCheck && mograine->isAlive() && !mograine->HealthAbovePct(75))
+ if (_bCanResurrectCheck && mograine->IsAlive() && !mograine->HealthAbovePct(75))
target = mograine;
}
}
@@ -362,7 +362,7 @@ public:
//HolySmite_Timer
if (HolySmite_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_HOLYSMITE);
+ DoCastVictim(SPELL_HOLYSMITE);
HolySmite_Timer = 6000;
}
else HolySmite_Timer -= diff;
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_scorn.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_scorn.cpp
index 639db4571cb..fcd0975fbc0 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_scorn.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_scorn.cpp
@@ -39,9 +39,9 @@ class boss_scorn : public CreatureScript
public:
boss_scorn() : CreatureScript("boss_scorn") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_scornAI (creature);
+ return new boss_scornAI(creature);
}
struct boss_scornAI : public ScriptedAI
@@ -53,7 +53,7 @@ public:
uint32 MindFlay_Timer;
uint32 FrostNova_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
LichSlap_Timer = 45000;
FrostboltVolley_Timer = 30000;
@@ -61,9 +61,9 @@ public:
FrostNova_Timer = 30000;
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -71,7 +71,7 @@ public:
//LichSlap_Timer
if (LichSlap_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_LICHSLAP);
+ DoCastVictim(SPELL_LICHSLAP);
LichSlap_Timer = 45000;
}
else LichSlap_Timer -= diff;
@@ -79,7 +79,7 @@ public:
//FrostboltVolley_Timer
if (FrostboltVolley_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_FROSTBOLTVOLLEY);
+ DoCastVictim(SPELL_FROSTBOLTVOLLEY);
FrostboltVolley_Timer = 20000;
}
else FrostboltVolley_Timer -= diff;
@@ -87,7 +87,7 @@ public:
//MindFlay_Timer
if (MindFlay_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_MINDFLAY);
+ DoCastVictim(SPELL_MINDFLAY);
MindFlay_Timer = 20000;
}
else MindFlay_Timer -= diff;
@@ -95,7 +95,7 @@ public:
//FrostNova_Timer
if (FrostNova_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_FROSTNOVA);
+ DoCastVictim(SPELL_FROSTNOVA);
FrostNova_Timer = 15000;
}
else FrostNova_Timer -= diff;
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp
index 8c45231ecbf..3bd00cf243f 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp
@@ -42,7 +42,7 @@ class instance_scarlet_monastery : public InstanceMapScript
public:
instance_scarlet_monastery() : InstanceMapScript("instance_scarlet_monastery", 189) { }
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_scarlet_monastery_InstanceMapScript(map);
}
@@ -100,7 +100,7 @@ public:
}
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
switch (type)
{
@@ -122,7 +122,7 @@ public:
for (std::set<uint64>::const_iterator itr = HorsemanAdds.begin(); itr != HorsemanAdds.end(); ++itr)
{
Creature* add = instance->GetCreature(*itr);
- if (add && add->isAlive())
+ if (add && add->IsAlive())
add->Kill(add);
}
HorsemanAdds.clear();
@@ -132,7 +132,7 @@ public:
}
}
- uint64 GetData64(uint32 type) const
+ uint64 GetData64(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -147,7 +147,7 @@ public:
return 0;
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
if (type == TYPE_MOGRAINE_AND_WHITE_EVENT)
return encounter[0];
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/scarlet_monastery.h b/src/server/scripts/EasternKingdoms/ScarletMonastery/scarlet_monastery.h
index 52710cd348e..fbbca46738c 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/scarlet_monastery.h
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/scarlet_monastery.h
@@ -16,10 +16,10 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef DEF_SCARLET_M
-#define DEF_SCARLET_M
+#ifndef SCARLET_M_
+#define SCARLET_M_
-enum eEnums
+enum DataTypes
{
TYPE_MOGRAINE_AND_WHITE_EVENT = 1,
@@ -32,4 +32,5 @@ enum eEnums
DATA_VORREL = 7
};
-#endif
+
+#endif // SCARLET_M_
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_darkmaster_gandling.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_darkmaster_gandling.cpp
index dccb7ccbaa0..cb6da60bf28 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_darkmaster_gandling.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_darkmaster_gandling.cpp
@@ -56,21 +56,21 @@ class boss_darkmaster_gandling : public CreatureScript
{
boss_darkmaster_gandlingAI(Creature* creature) : BossAI(creature, DATA_DARKMASTERGANDLING) {}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
if (GameObject* gate = me->GetMap()->GetGameObject(instance->GetData64(GO_GATE_GANDLING)))
gate->SetGoState(GO_STATE_ACTIVE);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
if (GameObject* gate = me->GetMap()->GetGameObject(instance->GetData64(GO_GATE_GANDLING)))
gate->SetGoState(GO_STATE_ACTIVE);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
events.ScheduleEvent(EVENT_ARCANEMISSILES, 4500);
@@ -82,13 +82,13 @@ class boss_darkmaster_gandling : public CreatureScript
gate->SetGoState(GO_STATE_READY);
}
- void IsSummonedBy(Unit* /*summoner*/)
+ void IsSummonedBy(Unit* /*summoner*/) OVERRIDE
{
Talk(YELL_SUMMONED);
me->GetMotionMaster()->MoveRandom(5);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -126,9 +126,9 @@ class boss_darkmaster_gandling : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_darkmaster_gandlingAI (creature);
+ return new boss_darkmaster_gandlingAI(creature);
}
};
@@ -211,13 +211,13 @@ class spell_shadow_portal : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_shadow_portal_SpellScript::HandleCast, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_shadow_portal_SpellScript();
}
@@ -341,13 +341,13 @@ class spell_shadow_portal_rooms : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHit += SpellEffectFn(spell_shadow_portal_rooms_SpellScript::HandleSendEvent, EFFECT_1, SPELL_EFFECT_SEND_EVENT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_shadow_portal_rooms_SpellScript();
}
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_death_knight_darkreaver.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_death_knight_darkreaver.cpp
index fffcc7cdf11..8ca8f04f33a 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_death_knight_darkreaver.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_death_knight_darkreaver.cpp
@@ -31,26 +31,26 @@ class boss_death_knight_darkreaver : public CreatureScript
public:
boss_death_knight_darkreaver() : CreatureScript("boss_death_knight_darkreaver") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_death_knight_darkreaverAI (creature);
+ return new boss_death_knight_darkreaverAI(creature);
}
struct boss_death_knight_darkreaverAI : public ScriptedAI
{
boss_death_knight_darkreaverAI(Creature* creature) : ScriptedAI(creature) {}
- void Reset()
+ void Reset() OVERRIDE
{
}
- void DamageTaken(Unit* /*done_by*/, uint32 &damage)
+ void DamageTaken(Unit* /*done_by*/, uint32 &damage) OVERRIDE
{
if (me->GetHealth() <= damage)
DoCast(me, 23261, true); //Summon Darkreaver's Fallen Charger
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
};
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_doctor_theolen_krastinov.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_doctor_theolen_krastinov.cpp
index 0f1999b112f..3dae50ebf44 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_doctor_theolen_krastinov.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_doctor_theolen_krastinov.cpp
@@ -53,7 +53,7 @@ class boss_doctor_theolen_krastinov : public CreatureScript
{
boss_theolenkrastinovAI(Creature* creature) : BossAI(creature, DATA_DOCTORTHEOLENKRASTINOV) {}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
events.ScheduleEvent(EVENT_REND, 8000);
@@ -61,7 +61,7 @@ class boss_doctor_theolen_krastinov : public CreatureScript
events.ScheduleEvent(EVENT_FRENZY, 1000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -97,9 +97,9 @@ class boss_doctor_theolen_krastinov : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_theolenkrastinovAI (creature);
+ return new boss_theolenkrastinovAI(creature);
}
};
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_illucia_barov.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_illucia_barov.cpp
index 5ea6c86d23e..5da1bf14c7d 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_illucia_barov.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_illucia_barov.cpp
@@ -50,7 +50,7 @@ class boss_illucia_barov : public CreatureScript
{
boss_illuciabarovAI(Creature* creature) : BossAI(creature, DATA_LADYILLUCIABAROV) {}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
events.ScheduleEvent(EVENT_CURSEOFAGONY, 18000);
@@ -59,7 +59,7 @@ class boss_illucia_barov : public CreatureScript
events.ScheduleEvent(EVENT_FEAR, 30000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -98,9 +98,9 @@ class boss_illucia_barov : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_illuciabarovAI (creature);
+ return new boss_illuciabarovAI(creature);
}
};
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_instructor_malicia.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_instructor_malicia.cpp
index 1d311a7bd2c..c3bd97c9a0b 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_instructor_malicia.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_instructor_malicia.cpp
@@ -55,14 +55,14 @@ class boss_instructor_malicia : public CreatureScript
uint32 FlashCounter;
uint32 TouchCounter;
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
FlashCounter = 0;
TouchCounter = 0;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
events.ScheduleEvent(EVENT_CALLOFGRAVES, 4000);
@@ -72,7 +72,7 @@ class boss_instructor_malicia : public CreatureScript
events.ScheduleEvent(EVENT_HEALINGTOUCH, 45000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -135,9 +135,9 @@ class boss_instructor_malicia : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_instructormaliciaAI (creature);
+ return new boss_instructormaliciaAI(creature);
}
};
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_jandice_barov.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_jandice_barov.cpp
index 3f083a30987..ab259680c07 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_jandice_barov.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_jandice_barov.cpp
@@ -26,20 +26,23 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
-#define SPELL_CURSEOFBLOOD 24673
-//#define SPELL_ILLUSION 17773
+enum Spells
+{
+ SPELL_CURSEOFBLOOD = 24673,
+ //SPELL_ILLUSION = 17773,
-//Spells of Illusion of Jandice Barov
-#define SPELL_CLEAVE 15584
+ // Spells of Illusion of Jandice Barov
+ SPELL_CLEAVE = 15584
+};
class boss_jandice_barov : public CreatureScript
{
public:
boss_jandice_barov() : CreatureScript("boss_jandice_barov") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_jandicebarovAI (creature);
+ return new boss_jandicebarovAI(creature);
}
struct boss_jandicebarovAI : public ScriptedAI
@@ -52,7 +55,7 @@ public:
uint32 Invisible_Timer;
bool Invisible;
- void Reset()
+ void Reset() OVERRIDE
{
CurseOfBlood_Timer = 15000;
Illusion_Timer = 30000;
@@ -60,7 +63,7 @@ public:
Invisible = false;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
@@ -70,7 +73,7 @@ public:
Illusion->AI()->AttackStart(victim);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (Invisible && Invisible_Timer <= diff)
{
@@ -94,7 +97,7 @@ public:
if (CurseOfBlood_Timer <= diff)
{
//Cast
- DoCast(me->getVictim(), SPELL_CURSEOFBLOOD);
+ DoCastVictim(SPELL_CURSEOFBLOOD);
//45 seconds
CurseOfBlood_Timer = 30000;
@@ -109,7 +112,7 @@ public:
me->setFaction(35);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->SetDisplayId(11686); // Invisible Model
- DoModifyThreatPercent(me->getVictim(), -99);
+ DoModifyThreatPercent(me->GetVictim(), -99);
//Summon 10 Illusions attacking random gamers
Unit* target = NULL;
@@ -130,7 +133,7 @@ public:
// if (Illusion_Timer <= diff)
// {
// //Cast
- // DoCast(me->getVictim(), SPELL_ILLUSION);
+ // DoCastVictim(SPELL_ILLUSION);
//
// //3 Illusion will be summoned
// if (Illusioncounter < 3)
@@ -154,33 +157,33 @@ public:
// Illusion of Jandice Barov Script
-class mob_illusionofjandicebarov : public CreatureScript
+class npc_illusionofjandicebarov : public CreatureScript
{
public:
- mob_illusionofjandicebarov() : CreatureScript("mob_illusionofjandicebarov") { }
+ npc_illusionofjandicebarov() : CreatureScript("npc_illusionofjandicebarov") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_illusionofjandicebarovAI (creature);
+ return new npc_illusionofjandicebarovAI(creature);
}
- struct mob_illusionofjandicebarovAI : public ScriptedAI
+ struct npc_illusionofjandicebarovAI : public ScriptedAI
{
- mob_illusionofjandicebarovAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_illusionofjandicebarovAI(Creature* creature) : ScriptedAI(creature) {}
uint32 Cleave_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
Cleave_Timer = urand(2000, 8000);
me->ApplySpellImmune(0, IMMUNITY_DAMAGE, SPELL_SCHOOL_MASK_MAGIC, true);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -190,7 +193,7 @@ public:
if (Cleave_Timer <= diff)
{
//Cast
- DoCast(me->getVictim(), SPELL_CLEAVE);
+ DoCastVictim(SPELL_CLEAVE);
//5-8 seconds
Cleave_Timer = urand(5000, 8000);
@@ -205,5 +208,5 @@ public:
void AddSC_boss_jandicebarov()
{
new boss_jandice_barov();
- new mob_illusionofjandicebarov();
+ new npc_illusionofjandicebarov();
}
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp
index 97b8e0334ee..2433390f8f5 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp
@@ -57,7 +57,7 @@ enum Events
EVENT_KIRTONOS_TRANSFORM = 14
};
-enum eMisc
+enum Misc
{
WEAPON_KIRTONOS_STAFF = 11365,
POINT_KIRTONOS_LAND = 13,
@@ -78,12 +78,12 @@ class boss_kirtonos_the_herald : public CreatureScript
{
boss_kirtonos_the_heraldAI(Creature* creature) : BossAI(creature, DATA_KIRTONOS) { }
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
events.ScheduleEvent(EVENT_SWOOP, urand(8000, 8000));
events.ScheduleEvent(EVENT_WING_FLAP, urand(15000, 15000));
@@ -96,7 +96,7 @@ class boss_kirtonos_the_herald : public CreatureScript
_EnterCombat();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (GameObject* gate = me->GetMap()->GetGameObject(instance->GetData64(GO_GATE_KIRTONOS)))
gate->SetGoState(GO_STATE_ACTIVE);
@@ -108,7 +108,7 @@ class boss_kirtonos_the_herald : public CreatureScript
_JustDied();
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
if (GameObject* gate = me->GetMap()->GetGameObject(instance->GetData64(GO_GATE_KIRTONOS)))
gate->SetGoState(GO_STATE_ACTIVE);
@@ -120,7 +120,7 @@ class boss_kirtonos_the_herald : public CreatureScript
me->DespawnOrUnsummon(5000);
}
- void IsSummonedBy(Unit* /*summoner*/)
+ void IsSummonedBy(Unit* /*summoner*/) OVERRIDE
{
events.ScheduleEvent(INTRO_1, 500);
me->SetDisableGravity(true);
@@ -129,12 +129,12 @@ class boss_kirtonos_the_herald : public CreatureScript
Talk(EMOTE_SUMMONED);
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
BossAI::JustSummoned(summon);
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type == WAYPOINT_MOTION_TYPE && id == POINT_KIRTONOS_LAND)
{
@@ -142,53 +142,55 @@ class boss_kirtonos_the_herald : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
events.Update(diff);
- while (uint32 eventId = events.ExecuteEvent() && !UpdateVictim())
+ if (!UpdateVictim())
{
- switch (eventId)
+ while (uint32 eventId = events.ExecuteEvent())
{
- case INTRO_1:
- me->GetMotionMaster()->MovePath(KIRTONOS_PATH, false);
- break;
- case INTRO_2:
- me->GetMotionMaster()->MovePoint(0, PosMove[0]);
- events.ScheduleEvent(INTRO_3, 1000);
- break;
- case INTRO_3:
- if (GameObject* gate = me->GetMap()->GetGameObject(instance->GetData64(GO_GATE_KIRTONOS)))
- gate->SetGoState(GO_STATE_READY);
- me->SetFacingTo(0.01745329f);
- events.ScheduleEvent(INTRO_4, 3000);
- break;
- case INTRO_4:
- if (GameObject* brazier = me->GetMap()->GetGameObject(instance->GetData64(GO_BRAZIER_OF_THE_HERALD)))
- brazier->SetGoState(GO_STATE_READY);
- me->SetWalk(true);
- me->SetDisableGravity(false);
- DoCast(me, SPELL_KIRTONOS_TRANSFORM);
- me->SetCanFly(false);
- events.ScheduleEvent(INTRO_5, 1000);
- break;
- case INTRO_5:
- me->HandleEmoteCommand(EMOTE_ONESHOT_ROAR);
- me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(WEAPON_KIRTONOS_STAFF));
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE);
- me->SetReactState(REACT_AGGRESSIVE);
- events.ScheduleEvent(INTRO_6, 5000);
- break;
- case INTRO_6:
- me->GetMotionMaster()->MovePoint(0, PosMove[1]);
- break;
- default:
- break;
+ switch (eventId)
+ {
+ case INTRO_1:
+ me->GetMotionMaster()->MovePath(KIRTONOS_PATH, false);
+ break;
+ case INTRO_2:
+ me->GetMotionMaster()->MovePoint(0, PosMove[0]);
+ events.ScheduleEvent(INTRO_3, 1000);
+ break;
+ case INTRO_3:
+ if (GameObject* gate = me->GetMap()->GetGameObject(instance->GetData64(GO_GATE_KIRTONOS)))
+ gate->SetGoState(GO_STATE_READY);
+ me->SetFacingTo(0.01745329f);
+ events.ScheduleEvent(INTRO_4, 3000);
+ break;
+ case INTRO_4:
+ if (GameObject* brazier = me->GetMap()->GetGameObject(instance->GetData64(GO_BRAZIER_OF_THE_HERALD)))
+ brazier->SetGoState(GO_STATE_READY);
+ me->SetWalk(true);
+ me->SetDisableGravity(false);
+ DoCast(me, SPELL_KIRTONOS_TRANSFORM);
+ me->SetCanFly(false);
+ events.ScheduleEvent(INTRO_5, 1000);
+ break;
+ case INTRO_5:
+ me->HandleEmoteCommand(EMOTE_ONESHOT_ROAR);
+ me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(WEAPON_KIRTONOS_STAFF));
+ me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE);
+ me->SetReactState(REACT_AGGRESSIVE);
+ events.ScheduleEvent(INTRO_6, 5000);
+ break;
+ case INTRO_6:
+ me->GetMotionMaster()->MovePoint(0, PosMove[1]);
+ break;
+ default:
+ break;
+ }
}
- }
- if (!UpdateVictim())
return;
+ }
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
@@ -249,7 +251,7 @@ class boss_kirtonos_the_herald : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_kirtonos_the_heraldAI(creature);
}
@@ -275,7 +277,7 @@ class go_brazier_of_the_herald : public GameObjectScript
public:
go_brazier_of_the_herald() : GameObjectScript("go_brazier_of_the_herald") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
go->UseDoorOrButton();
go->PlayDirectSound(SOUND_SCREECH, 0);
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_kormok.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_kormok.cpp
index 1167a945992..0ba0ab4cb92 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_kormok.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_kormok.cpp
@@ -26,17 +26,20 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
-#define SPELL_SHADOWBOLTVOLLEY 20741
-#define SPELL_BONESHIELD 27688
+enum Spells
+{
+ SPELL_SHADOWBOLTVOLLEY = 20741,
+ SPELL_BONESHIELD = 27688
+};
class boss_kormok : public CreatureScript
{
public:
boss_kormok() : CreatureScript("boss_kormok") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_kormokAI (creature);
+ return new boss_kormokAI(creature);
}
struct boss_kormokAI : public ScriptedAI
@@ -49,7 +52,7 @@ public:
uint32 Mage_Timer;
bool Mages;
- void Reset()
+ void Reset() OVERRIDE
{
ShadowVolley_Timer = 10000;
BoneShield_Timer = 2000;
@@ -58,7 +61,7 @@ public:
Mages = false;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
@@ -74,7 +77,7 @@ public:
SummonedMage->AI()->AttackStart(victim);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -82,14 +85,14 @@ public:
//ShadowVolley_Timer
if (ShadowVolley_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_SHADOWBOLTVOLLEY);
+ DoCastVictim(SPELL_SHADOWBOLTVOLLEY);
ShadowVolley_Timer = 15000;
} else ShadowVolley_Timer -= diff;
//BoneShield_Timer
if (BoneShield_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_BONESHIELD);
+ DoCastVictim(SPELL_BONESHIELD);
BoneShield_Timer = 45000;
} else BoneShield_Timer -= diff;
@@ -97,10 +100,10 @@ public:
if (Minion_Timer <= diff)
{
//Cast
- SummonMinions(me->getVictim());
- SummonMinions(me->getVictim());
- SummonMinions(me->getVictim());
- SummonMinions(me->getVictim());
+ SummonMinions(me->GetVictim());
+ SummonMinions(me->GetVictim());
+ SummonMinions(me->GetVictim());
+ SummonMinions(me->GetVictim());
Minion_Timer = 12000;
} else Minion_Timer -= diff;
@@ -109,8 +112,8 @@ public:
if (!Mages && HealthBelowPct(26))
{
//Cast
- SummonMages(me->getVictim());
- SummonMages(me->getVictim());
+ SummonMages(me->GetVictim());
+ SummonMages(me->GetVictim());
Mages = true;
}
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_lord_alexei_barov.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_lord_alexei_barov.cpp
index d0028894067..26028590f5c 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_lord_alexei_barov.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_lord_alexei_barov.cpp
@@ -46,20 +46,20 @@ class boss_lord_alexei_barov : public CreatureScript
{
boss_lordalexeibarovAI(Creature* creature) : BossAI(creature, DATA_LORDALEXEIBAROV) {}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
me->LoadCreaturesAddon();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
events.ScheduleEvent(EVENT_IMMOLATE, 7000);
events.ScheduleEvent(EVENT_VEILOFSHADOW, 15000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -90,9 +90,9 @@ class boss_lord_alexei_barov : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_lordalexeibarovAI (creature);
+ return new boss_lordalexeibarovAI(creature);
}
};
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_lorekeeper_polkelt.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_lorekeeper_polkelt.cpp
index f7170a0618f..bc6646be633 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_lorekeeper_polkelt.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_lorekeeper_polkelt.cpp
@@ -50,7 +50,7 @@ class boss_lorekeeper_polkelt : public CreatureScript
{
boss_lorekeeperpolkeltAI(Creature* creature) : BossAI(creature, DATA_LOREKEEPERPOLKELT) {}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
events.ScheduleEvent(EVENT_VOLATILEINFECTION, 38000);
@@ -59,7 +59,7 @@ class boss_lorekeeper_polkelt : public CreatureScript
events.ScheduleEvent(EVENT_NOXIOUSCATALYST, 35000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -98,9 +98,9 @@ class boss_lorekeeper_polkelt : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_lorekeeperpolkeltAI (creature);
+ return new boss_lorekeeperpolkeltAI(creature);
}
};
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_ras_frostwhisper.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_ras_frostwhisper.cpp
index 4483d5332d7..62922289821 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_ras_frostwhisper.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_ras_frostwhisper.cpp
@@ -41,9 +41,9 @@ class boss_boss_ras_frostwhisper : public CreatureScript
public:
boss_boss_ras_frostwhisper() : CreatureScript("boss_boss_ras_frostwhisper") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_rasfrostAI (creature);
+ return new boss_rasfrostAI(creature);
}
struct boss_rasfrostAI : public ScriptedAI
@@ -57,7 +57,7 @@ public:
uint32 ChillNova_Timer;
uint32 FrostVolley_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
IceArmor_Timer = 2000;
Frostbolt_Timer = 8000;
@@ -69,9 +69,9 @@ public:
DoCast(me, SPELL_ICEARMOR, true);
}
- void EnterCombat(Unit* /*who*/){}
+ void EnterCombat(Unit* /*who*/)OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -95,28 +95,28 @@ public:
//Freeze_Timer
if (Freeze_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_FREEZE);
+ DoCastVictim(SPELL_FREEZE);
Freeze_Timer = 24000;
} else Freeze_Timer -= diff;
//Fear_Timer
if (Fear_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_FEAR);
+ DoCastVictim(SPELL_FEAR);
Fear_Timer = 30000;
} else Fear_Timer -= diff;
//ChillNova_Timer
if (ChillNova_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_CHILLNOVA);
+ DoCastVictim(SPELL_CHILLNOVA);
ChillNova_Timer = 14000;
} else ChillNova_Timer -= diff;
//FrostVolley_Timer
if (FrostVolley_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_FROSTVOLLEY);
+ DoCastVictim(SPELL_FROSTVOLLEY);
FrostVolley_Timer = 15000;
} else FrostVolley_Timer -= diff;
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_the_ravenian.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_the_ravenian.cpp
index 14caccb8b00..1e2c38fc487 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_the_ravenian.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_the_ravenian.cpp
@@ -50,7 +50,7 @@ class boss_the_ravenian : public CreatureScript
{
boss_theravenianAI(Creature* creature) : BossAI(creature, DATA_THERAVENIAN) {}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
events.ScheduleEvent(EVENT_TRAMPLE, 24000);
@@ -59,7 +59,7 @@ class boss_the_ravenian : public CreatureScript
events.ScheduleEvent(EVENT_KNOCKAWAY, 32000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -98,9 +98,9 @@ class boss_the_ravenian : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_theravenianAI (creature);
+ return new boss_theravenianAI(creature);
}
};
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.cpp
index 85ae16499cf..e426fb4ec11 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.cpp
@@ -26,13 +26,17 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
-enum eEnums
+enum Emotes
+{
+ EMOTE_FRENZY_KILL = 0
+};
+
+enum Spells
{
- EMOTE_FRENZY_KILL = 0,
SPELL_FLAMESTRIKE = 18399,
SPELL_BLAST_WAVE = 16046,
SPELL_FIRESHIELD = 19626,
- SPELL_FRENZY = 8269 //28371,
+ SPELL_FRENZY = 8269 // 28371
};
class boss_vectus : public CreatureScript
@@ -40,9 +44,9 @@ class boss_vectus : public CreatureScript
public:
boss_vectus() : CreatureScript("boss_vectus") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_vectusAI (creature);
+ return new boss_vectusAI(creature);
}
struct boss_vectusAI : public ScriptedAI
@@ -53,14 +57,14 @@ public:
uint32 m_uiBlastWave_Timer;
uint32 m_uiFrenzy_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
m_uiFireShield_Timer = 2000;
m_uiBlastWave_Timer = 14000;
m_uiFrenzy_Timer = 0;
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -77,7 +81,7 @@ public:
//BlastWave_Timer
if (m_uiBlastWave_Timer <= uiDiff)
{
- DoCast(me->getVictim(), SPELL_BLAST_WAVE);
+ DoCastVictim(SPELL_BLAST_WAVE);
m_uiBlastWave_Timer = 12000;
}
else
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/instance_scholomance.cpp b/src/server/scripts/EasternKingdoms/Scholomance/instance_scholomance.cpp
index 0da31fbe428..abe79a89522 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/instance_scholomance.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/instance_scholomance.cpp
@@ -27,7 +27,7 @@ class instance_scholomance : public InstanceMapScript
public:
instance_scholomance() : InstanceMapScript("instance_scholomance", 289) { }
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_scholomance_InstanceMapScript(map);
}
@@ -106,7 +106,7 @@ class instance_scholomance : public InstanceMapScript
return true;
}
- uint64 GetData64(uint32 type) const
+ uint64 GetData64(uint32 type) const OVERRIDE
{
switch (type)
{
diff --git a/src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp b/src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp
index 1490005791e..346c9f0f038 100644
--- a/src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp
+++ b/src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp
@@ -31,21 +31,30 @@ EndScriptData */
#define MAX_ENCOUNTER 4
-enum eEnums
+enum Yells
{
SAY_BOSS_DIE_AD = 4,
SAY_BOSS_DIE_AS = 3,
- SAY_ARCHMAGE = 0,
+ SAY_ARCHMAGE = 0
+};
+enum Creatures
+{
NPC_ASH = 3850,
NPC_ADA = 3849,
NPC_ARCHMAGE_ARUGAL = 4275,
- NPC_ARUGAL_VOIDWALKER = 4627,
+ NPC_ARUGAL_VOIDWALKER = 4627
+};
- GO_COURTYARD_DOOR = 18895, //door to open when talking to NPC's
- GO_SORCERER_DOOR = 18972, //door to open when Fenrus the Devourer
- GO_ARUGAL_DOOR = 18971, //door to open when Wolf Master Nandos
+enum GameObjects
+{
+ GO_COURTYARD_DOOR = 18895, //door to open when talking to NPC's
+ GO_SORCERER_DOOR = 18972, //door to open when Fenrus the Devourer
+ GO_ARUGAL_DOOR = 18971 //door to open when Wolf Master Nandos
+};
+enum Spells
+{
SPELL_ASHCROMBE_TELEPORT = 15742
};
@@ -62,7 +71,7 @@ class instance_shadowfang_keep : public InstanceMapScript
public:
instance_shadowfang_keep() : InstanceMapScript("instance_shadowfang_keep", 33) { }
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_shadowfang_keep_InstanceMapScript(map);
}
@@ -138,14 +147,14 @@ public:
Creature* pAda = instance->GetCreature(uiAdaGUID);
Creature* pAsh = instance->GetCreature(uiAshGUID);
- if (pAda && pAda->isAlive() && pAsh && pAsh->isAlive())
+ if (pAda && pAda->IsAlive() && pAsh && pAsh->IsAlive())
{
pAda->AI()->Talk(SAY_BOSS_DIE_AD);
pAsh->AI()->Talk(SAY_BOSS_DIE_AS);
}
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
switch (type)
{
@@ -193,7 +202,7 @@ public:
}
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -243,7 +252,7 @@ public:
Creature* pArchmage = instance->GetCreature(uiArchmageArugalGUID);
- if (!pArchmage || !pArchmage->isAlive())
+ if (!pArchmage || !pArchmage->IsAlive())
return;
if (uiPhase)
diff --git a/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp b/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp
index 156d31c804f..d5c3d27eed3 100644
--- a/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp
+++ b/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp
@@ -40,7 +40,7 @@ EndContentData */
## npc_shadowfang_prisoner
######*/
-enum eEnums
+enum Yells
{
SAY_FREE_AS = 0,
SAY_OPEN_DOOR_AS = 1,
@@ -48,14 +48,21 @@ enum eEnums
SAY_FREE_AD = 0,
SAY_OPEN_DOOR_AD = 1,
SAY_POST1_DOOR_AD = 2,
- SAY_POST2_DOOR_AD = 3,
+ SAY_POST2_DOOR_AD = 3
+};
+enum Spells
+{
SPELL_UNLOCK = 6421,
- NPC_ASH = 3850,
SPELL_DARK_OFFERING = 7154
};
+enum Creatures
+{
+ NPC_ASH = 3850
+};
+
#define GOSSIP_ITEM_DOOR "Thanks, I'll follow you to the door."
class npc_shadowfang_prisoner : public CreatureScript
@@ -63,12 +70,12 @@ class npc_shadowfang_prisoner : public CreatureScript
public:
npc_shadowfang_prisoner() : CreatureScript("npc_shadowfang_prisoner") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_shadowfang_prisonerAI(creature);
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF+1)
@@ -81,7 +88,7 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
InstanceScript* instance = creature->GetInstanceScript();
@@ -102,7 +109,7 @@ public:
InstanceScript* instance;
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
switch (waypointId)
{
@@ -138,8 +145,8 @@ public:
}
}
- void Reset() {}
- void EnterCombat(Unit* /*who*/) {}
+ void Reset() OVERRIDE {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
};
};
@@ -149,7 +156,7 @@ class npc_arugal_voidwalker : public CreatureScript
public:
npc_arugal_voidwalker() : CreatureScript("npc_arugal_voidwalker") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_arugal_voidwalkerAI(creature);
}
@@ -165,12 +172,12 @@ public:
uint32 uiDarkOffering;
- void Reset()
+ void Reset() OVERRIDE
{
uiDarkOffering = urand(200, 1000);
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -187,7 +194,7 @@ public:
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
instance->SetData(TYPE_FENRUS, instance->GetData(TYPE_FENRUS) + 1);
@@ -221,7 +228,7 @@ class spell_shadowfang_keep_haunting_spirits : public SpellScriptLoader
aurEff->CalculatePeriodic(GetCaster());
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcPeriodic += AuraEffectCalcPeriodicFn(spell_shadowfang_keep_haunting_spirits_AuraScript::CalcPeriodic, EFFECT_0, SPELL_AURA_DUMMY);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_shadowfang_keep_haunting_spirits_AuraScript::HandleDummyTick, EFFECT_0, SPELL_AURA_DUMMY);
@@ -229,7 +236,7 @@ class spell_shadowfang_keep_haunting_spirits : public SpellScriptLoader
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_shadowfang_keep_haunting_spirits_AuraScript();
}
diff --git a/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.h b/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.h
index cee4e5ffc1e..1823d24ab2e 100644
--- a/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.h
+++ b/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.h
@@ -19,7 +19,7 @@
#ifndef DEF_SHADOWFANG_H
#define DEF_SHADOWFANG_H
-enum eData
+enum DataTypes
{
TYPE_FREE_NPC = 1,
TYPE_RETHILGORE = 2,
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_baron_rivendare.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_baron_rivendare.cpp
index 8b49df5ca84..16ec442d963 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/boss_baron_rivendare.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_baron_rivendare.cpp
@@ -66,9 +66,9 @@ class boss_baron_rivendare : public CreatureScript
public:
boss_baron_rivendare() : CreatureScript("boss_baron_rivendare") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_baron_rivendareAI (creature);
+ return new boss_baron_rivendareAI(creature);
}
struct boss_baron_rivendareAI : public ScriptedAI
@@ -86,7 +86,7 @@ public:
// uint32 RaiseDead_Timer;
uint32 SummonSkeletons_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
ShadowBolt_Timer = 5000;
Cleave_Timer = 8000;
@@ -97,26 +97,26 @@ public:
instance->SetData(TYPE_BARON, NOT_STARTED);
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (instance)//can't use entercombat(), boss' dmg aura sets near players in combat, before entering the room's door
instance->SetData(TYPE_BARON, IN_PROGRESS);
ScriptedAI::AttackStart(who);
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
summoned->AI()->AttackStart(target);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
instance->SetData(TYPE_BARON, DONE);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -125,7 +125,7 @@ public:
if (ShadowBolt_Timer <= diff)
{
if (SelectTarget(SELECT_TARGET_RANDOM, 0))
- DoCast(me->getVictim(), SPELL_SHADOWBOLT);
+ DoCastVictim(SPELL_SHADOWBOLT);
ShadowBolt_Timer = 10000;
} else ShadowBolt_Timer -= diff;
@@ -133,7 +133,7 @@ public:
//Cleave
if (Cleave_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_CLEAVE);
+ DoCastVictim(SPELL_CLEAVE);
//13 seconds until we should cast this again
Cleave_Timer = 7000 + (rand()%10000);
} else Cleave_Timer -= diff;
@@ -141,7 +141,7 @@ public:
//MortalStrike
if (MortalStrike_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_MORTALSTRIKE);
+ DoCastVictim(SPELL_MORTALSTRIKE);
MortalStrike_Timer = 10000 + (rand()%15000);
} else MortalStrike_Timer -= diff;
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_baroness_anastari.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_baroness_anastari.cpp
index b2adbecbe63..1812e2efd8d 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/boss_baroness_anastari.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_baroness_anastari.cpp
@@ -27,19 +27,22 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "stratholme.h"
-#define SPELL_BANSHEEWAIL 16565
-#define SPELL_BANSHEECURSE 16867
-#define SPELL_SILENCE 18327
-//#define SPELL_POSSESS 17244
+enum Spells
+{
+ SPELL_BANSHEEWAIL = 16565,
+ SPELL_BANSHEECURSE = 16867,
+ SPELL_SILENCE = 18327
+ //SPELL_POSSESS = 17244
+};
class boss_baroness_anastari : public CreatureScript
{
public:
boss_baroness_anastari() : CreatureScript("boss_baroness_anastari") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_baroness_anastariAI (creature);
+ return new boss_baroness_anastariAI(creature);
}
struct boss_baroness_anastariAI : public ScriptedAI
@@ -56,7 +59,7 @@ public:
uint32 Silence_Timer;
//uint32 Possess_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
BansheeWail_Timer = 1000;
BansheeCurse_Timer = 11000;
@@ -64,17 +67,17 @@ public:
//Possess_Timer = 35000;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
instance->SetData(TYPE_BARONESS, IN_PROGRESS);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -83,7 +86,7 @@ public:
if (BansheeWail_Timer <= diff)
{
if (rand()%100 < 95)
- DoCast(me->getVictim(), SPELL_BANSHEEWAIL);
+ DoCastVictim(SPELL_BANSHEEWAIL);
//4 seconds until we should cast this again
BansheeWail_Timer = 4000;
} else BansheeWail_Timer -= diff;
@@ -92,7 +95,7 @@ public:
if (BansheeCurse_Timer <= diff)
{
if (rand()%100 < 75)
- DoCast(me->getVictim(), SPELL_BANSHEECURSE);
+ DoCastVictim(SPELL_BANSHEECURSE);
//18 seconds until we should cast this again
BansheeCurse_Timer = 18000;
} else BansheeCurse_Timer -= diff;
@@ -101,7 +104,7 @@ public:
if (Silence_Timer <= diff)
{
if (rand()%100 < 80)
- DoCast(me->getVictim(), SPELL_SILENCE);
+ DoCastVictim(SPELL_SILENCE);
//13 seconds until we should cast this again
Silence_Timer = 13000;
} else Silence_Timer -= diff;
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_cannon_master_willey.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_cannon_master_willey.cpp
index 74819269415..319afb3deb2 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/boss_cannon_master_willey.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_cannon_master_willey.cpp
@@ -72,19 +72,22 @@ EndScriptData */
#define ADD_9Z 125.001015f
#define ADD_9O 0.592007f
-#define SPELL_KNOCKAWAY 10101
-#define SPELL_PUMMEL 15615
-#define SPELL_SHOOT 16496
-//#define SPELL_SUMMONCRIMSONRIFLEMAN 17279
+enum Spells
+{
+ SPELL_KNOCKAWAY = 10101,
+ SPELL_PUMMEL = 15615,
+ SPELL_SHOOT = 16496
+ //SPELL_SUMMONCRIMSONRIFLEMAN = 17279
+};
class boss_cannon_master_willey : public CreatureScript
{
public:
boss_cannon_master_willey() : CreatureScript("boss_cannon_master_willey") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_cannon_master_willeyAI (creature);
+ return new boss_cannon_master_willeyAI(creature);
}
struct boss_cannon_master_willeyAI : public ScriptedAI
@@ -96,7 +99,7 @@ public:
uint32 Shoot_Timer;
uint32 SummonRifleman_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
Shoot_Timer = 1000;
Pummel_Timer = 7000;
@@ -104,7 +107,7 @@ public:
SummonRifleman_Timer = 15000;
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
me->SummonCreature(11054, ADD_1X, ADD_1Y, ADD_1Z, ADD_1O, TEMPSUMMON_TIMED_DESPAWN, 240000);
me->SummonCreature(11054, ADD_2X, ADD_2Y, ADD_2Z, ADD_2O, TEMPSUMMON_TIMED_DESPAWN, 240000);
@@ -115,11 +118,11 @@ public:
me->SummonCreature(11054, ADD_9X, ADD_9Y, ADD_9Z, ADD_9O, TEMPSUMMON_TIMED_DESPAWN, 240000);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -131,7 +134,7 @@ public:
//Cast
if (rand()%100 < 90) //90% chance to cast
{
- DoCast(me->getVictim(), SPELL_PUMMEL);
+ DoCastVictim(SPELL_PUMMEL);
}
//12 seconds until we should cast this again
Pummel_Timer = 12000;
@@ -143,7 +146,7 @@ public:
//Cast
if (rand()%100 < 80) //80% chance to cast
{
- DoCast(me->getVictim(), SPELL_KNOCKAWAY);
+ DoCastVictim(SPELL_KNOCKAWAY);
}
//14 seconds until we should cast this again
KnockAway_Timer = 14000;
@@ -153,7 +156,7 @@ public:
if (Shoot_Timer <= diff)
{
//Cast
- DoCast(me->getVictim(), SPELL_SHOOT);
+ DoCastVictim(SPELL_SHOOT);
//1 seconds until we should cast this again
Shoot_Timer = 1000;
} else Shoot_Timer -= diff;
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_dathrohan_balnazzar.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_dathrohan_balnazzar.cpp
index f75a0c4a3dc..21320ed738f 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/boss_dathrohan_balnazzar.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_dathrohan_balnazzar.cpp
@@ -26,7 +26,7 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
-enum eEnums
+enum Spells
{
//Dathrohan spells
SPELL_CRUSADERSHAMMER = 17286, //AOE stun
@@ -41,8 +41,11 @@ enum eEnums
SPELL_MINDBLAST = 17287,
SPELL_PSYCHICSCREAM = 13704,
SPELL_SLEEP = 12098,
- SPELL_MINDCONTROL = 15690,
+ SPELL_MINDCONTROL = 15690
+};
+enum Creatures
+{
NPC_DATHROHAN = 10812,
NPC_BALNAZZAR = 10813,
NPC_ZOMBIE = 10698 //probably incorrect
@@ -71,9 +74,9 @@ class boss_dathrohan_balnazzar : public CreatureScript
public:
boss_dathrohan_balnazzar() : CreatureScript("boss_dathrohan_balnazzar") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_dathrohan_balnazzarAI (creature);
+ return new boss_dathrohan_balnazzarAI(creature);
}
struct boss_dathrohan_balnazzarAI : public ScriptedAI
@@ -90,7 +93,7 @@ public:
uint32 m_uiMindControl_Timer;
bool m_bTransformed;
- void Reset()
+ void Reset() OVERRIDE
{
m_uiCrusadersHammer_Timer = 8000;
m_uiCrusaderStrike_Timer = 12000;
@@ -106,7 +109,7 @@ public:
me->UpdateEntry(NPC_DATHROHAN);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
static uint32 uiCount = sizeof(m_aSummonPoint)/sizeof(SummonDef);
@@ -116,11 +119,11 @@ public:
TEMPSUMMON_TIMED_DESPAWN, HOUR*IN_MILLISECONDS);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -131,28 +134,28 @@ public:
//MindBlast
if (m_uiMindBlast_Timer <= uiDiff)
{
- DoCast(me->getVictim(), SPELL_MINDBLAST);
+ DoCastVictim(SPELL_MINDBLAST);
m_uiMindBlast_Timer = urand(15000, 20000);
} else m_uiMindBlast_Timer -= uiDiff;
//CrusadersHammer
if (m_uiCrusadersHammer_Timer <= uiDiff)
{
- DoCast(me->getVictim(), SPELL_CRUSADERSHAMMER);
+ DoCastVictim(SPELL_CRUSADERSHAMMER);
m_uiCrusadersHammer_Timer = 12000;
} else m_uiCrusadersHammer_Timer -= uiDiff;
//CrusaderStrike
if (m_uiCrusaderStrike_Timer <= uiDiff)
{
- DoCast(me->getVictim(), SPELL_CRUSADERSTRIKE);
+ DoCastVictim(SPELL_CRUSADERSTRIKE);
m_uiCrusaderStrike_Timer = 15000;
} else m_uiCrusaderStrike_Timer -= uiDiff;
//HolyStrike
if (m_uiHolyStrike_Timer <= uiDiff)
{
- DoCast(me->getVictim(), SPELL_HOLYSTRIKE);
+ DoCastVictim(SPELL_HOLYSTRIKE);
m_uiHolyStrike_Timer = 15000;
} else m_uiHolyStrike_Timer -= uiDiff;
@@ -173,14 +176,14 @@ public:
//MindBlast
if (m_uiMindBlast_Timer <= uiDiff)
{
- DoCast(me->getVictim(), SPELL_MINDBLAST);
+ DoCastVictim(SPELL_MINDBLAST);
m_uiMindBlast_Timer = urand(15000, 20000);
} else m_uiMindBlast_Timer -= uiDiff;
//ShadowShock
if (m_uiShadowShock_Timer <= uiDiff)
{
- DoCast(me->getVictim(), SPELL_SHADOWSHOCK);
+ DoCastVictim(SPELL_SHADOWSHOCK);
m_uiShadowShock_Timer = 11000;
} else m_uiShadowShock_Timer -= uiDiff;
@@ -205,7 +208,7 @@ public:
//MindControl
if (m_uiMindControl_Timer <= uiDiff)
{
- DoCast(me->getVictim(), SPELL_MINDCONTROL);
+ DoCastVictim(SPELL_MINDCONTROL);
m_uiMindControl_Timer = 15000;
} else m_uiMindControl_Timer -= uiDiff;
}
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_magistrate_barthilas.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_magistrate_barthilas.cpp
index 5f4d1cbc0b9..1c5f0c72153 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/boss_magistrate_barthilas.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_magistrate_barthilas.cpp
@@ -27,22 +27,28 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "stratholme.h"
-#define SPELL_DRAININGBLOW 16793
-#define SPELL_CROWDPUMMEL 10887
-#define SPELL_MIGHTYBLOW 14099
-#define SPELL_FURIOUS_ANGER 16791
+enum Spells
+{
+ SPELL_DRAININGBLOW = 16793,
+ SPELL_CROWDPUMMEL = 10887,
+ SPELL_MIGHTYBLOW = 14099,
+ SPELL_FURIOUS_ANGER = 16791
+};
-#define MODEL_NORMAL 10433
-#define MODEL_HUMAN 3637
+enum Models
+{
+ MODEL_NORMAL = 10433,
+ MODEL_HUMAN = 3637
+};
class boss_magistrate_barthilas : public CreatureScript
{
public:
boss_magistrate_barthilas() : CreatureScript("boss_magistrate_barthilas") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_magistrate_barthilasAI (creature);
+ return new boss_magistrate_barthilasAI(creature);
}
struct boss_magistrate_barthilasAI : public ScriptedAI
@@ -55,7 +61,7 @@ public:
uint32 FuriousAnger_Timer;
uint32 AngerCount;
- void Reset()
+ void Reset() OVERRIDE
{
DrainingBlow_Timer = 20000;
CrowdPummel_Timer = 15000;
@@ -63,29 +69,30 @@ public:
FuriousAnger_Timer = 5000;
AngerCount = 0;
- if (me->isAlive())
+ if (me->IsAlive())
me->SetDisplayId(MODEL_NORMAL);
else
me->SetDisplayId(MODEL_HUMAN);
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
//nothing to see here yet
ScriptedAI::MoveInLineOfSight(who);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
me->SetDisplayId(MODEL_HUMAN);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -104,21 +111,21 @@ public:
//DrainingBlow
if (DrainingBlow_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_DRAININGBLOW);
+ DoCastVictim(SPELL_DRAININGBLOW);
DrainingBlow_Timer = 15000;
} else DrainingBlow_Timer -= diff;
//CrowdPummel
if (CrowdPummel_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_CROWDPUMMEL);
+ DoCastVictim(SPELL_CROWDPUMMEL);
CrowdPummel_Timer = 15000;
} else CrowdPummel_Timer -= diff;
//MightyBlow
if (MightyBlow_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_MIGHTYBLOW);
+ DoCastVictim(SPELL_MIGHTYBLOW);
MightyBlow_Timer = 20000;
} else MightyBlow_Timer -= diff;
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_maleki_the_pallid.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_maleki_the_pallid.cpp
index 2812c1dd39b..0f8340891a8 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/boss_maleki_the_pallid.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_maleki_the_pallid.cpp
@@ -27,19 +27,23 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "stratholme.h"
-#define SPELL_FROSTBOLT 17503
-#define SPELL_DRAINLIFE 20743
-#define SPELL_DRAIN_MANA 17243
-#define SPELL_ICETOMB 16869
+enum Spells
+{
+ SPELL_FROSTBOLT = 17503,
+ SPELL_DRAINLIFE = 20743,
+ SPELL_DRAIN_MANA = 17243,
+ SPELL_ICETOMB = 16869
+
+};
class boss_maleki_the_pallid : public CreatureScript
{
public:
boss_maleki_the_pallid() : CreatureScript("boss_maleki_the_pallid") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_maleki_the_pallidAI (creature);
+ return new boss_maleki_the_pallidAI(creature);
}
struct boss_maleki_the_pallidAI : public ScriptedAI
@@ -55,24 +59,24 @@ public:
uint32 IceTomb_Timer;
uint32 DrainLife_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
Frostbolt_Timer = 1000;
IceTomb_Timer = 16000;
DrainLife_Timer = 31000;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
instance->SetData(TYPE_PALLID, IN_PROGRESS);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -82,7 +86,7 @@ public:
if (Frostbolt_Timer <= diff)
{
if (rand()%100 < 90)
- DoCast(me->getVictim(), SPELL_FROSTBOLT);
+ DoCastVictim(SPELL_FROSTBOLT);
Frostbolt_Timer = 3500;
} else Frostbolt_Timer -= diff;
@@ -90,7 +94,7 @@ public:
if (IceTomb_Timer <= diff)
{
if (rand()%100 < 65)
- DoCast(me->getVictim(), SPELL_ICETOMB);
+ DoCastVictim(SPELL_ICETOMB);
IceTomb_Timer = 28000;
} else IceTomb_Timer -= diff;
@@ -98,7 +102,7 @@ public:
if (DrainLife_Timer <= diff)
{
if (rand()%100 < 55)
- DoCast(me->getVictim(), SPELL_DRAINLIFE);
+ DoCastVictim(SPELL_DRAINLIFE);
DrainLife_Timer = 31000;
} else DrainLife_Timer -= diff;
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_nerubenkan.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_nerubenkan.cpp
index 2cc16bc2972..2cacf80e27c 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/boss_nerubenkan.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_nerubenkan.cpp
@@ -40,9 +40,9 @@ class boss_nerubenkan : public CreatureScript
public:
boss_nerubenkan() : CreatureScript("boss_nerubenkan") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_nerubenkanAI (creature);
+ return new boss_nerubenkanAI(creature);
}
struct boss_nerubenkanAI : public ScriptedAI
@@ -59,7 +59,7 @@ public:
uint32 CryptScarabs_Timer;
uint32 RaiseUndeadScarab_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
CryptScarabs_Timer = 3000;
EncasingWebs_Timer = 7000;
@@ -67,11 +67,11 @@ public:
RaiseUndeadScarab_Timer = 3000;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
instance->SetData(TYPE_NERUB, IN_PROGRESS);
@@ -84,7 +84,7 @@ public:
pUndeadScarab->AI()->AttackStart(victim);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -92,7 +92,7 @@ public:
//EncasingWebs
if (EncasingWebs_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_ENCASINGWEBS);
+ DoCastVictim(SPELL_ENCASINGWEBS);
EncasingWebs_Timer = 30000;
} else EncasingWebs_Timer -= diff;
@@ -100,21 +100,21 @@ public:
if (PierceArmor_Timer <= diff)
{
if (urand(0, 3) < 2)
- DoCast(me->getVictim(), SPELL_PIERCEARMOR);
+ DoCastVictim(SPELL_PIERCEARMOR);
PierceArmor_Timer = 35000;
} else PierceArmor_Timer -= diff;
//CryptScarabs_Timer
if (CryptScarabs_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_CRYPT_SCARABS);
+ DoCastVictim(SPELL_CRYPT_SCARABS);
CryptScarabs_Timer = 20000;
} else CryptScarabs_Timer -= diff;
//RaiseUndeadScarab
if (RaiseUndeadScarab_Timer <= diff)
{
- RaiseUndeadScarab(me->getVictim());
+ RaiseUndeadScarab(me->GetVictim());
RaiseUndeadScarab_Timer = 16000;
} else RaiseUndeadScarab_Timer -= diff;
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_order_of_silver_hand.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_order_of_silver_hand.cpp
index 7c6ea86dfa5..706c2e7b6fb 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/boss_order_of_silver_hand.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_order_of_silver_hand.cpp
@@ -56,9 +56,9 @@ class boss_silver_hand_bosses : public CreatureScript
public:
boss_silver_hand_bosses() : CreatureScript("boss_silver_hand_bosses") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_silver_hand_bossesAI (creature);
+ return new boss_silver_hand_bossesAI(creature);
}
struct boss_silver_hand_bossesAI : public ScriptedAI
@@ -73,7 +73,7 @@ public:
uint32 HolyLight_Timer;
uint32 DivineShield_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
HolyLight_Timer = 20000;
DivineShield_Timer = 20000;
@@ -101,11 +101,11 @@ public:
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
if (!instance)
return;
@@ -136,7 +136,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_postmaster_malown.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_postmaster_malown.cpp
index 3d0eaba9022..5f169ece0d5 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/boss_postmaster_malown.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_postmaster_malown.cpp
@@ -61,9 +61,9 @@ class boss_postmaster_malown : public CreatureScript
{
boss_postmaster_malownAI(Creature* creature) : BossAI(creature, TYPE_MALOWN) {}
- void Reset() {}
+ void Reset() OVERRIDE {}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
events.ScheduleEvent(EVENT_WAILINGDEAD, 19000); // lasts 6 sec
events.ScheduleEvent(EVENT_BACKHAND, 8000); // 2 sec stun
@@ -72,12 +72,12 @@ class boss_postmaster_malown : public CreatureScript
events.ScheduleEvent(EVENT_CALLOFTHEGRAVE, 25000);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_KILL);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -124,7 +124,7 @@ class boss_postmaster_malown : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_postmaster_malownAI(creature);
}
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_ramstein_the_gorger.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_ramstein_the_gorger.cpp
index 5cd69f561d6..79b8dd7dfe2 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/boss_ramstein_the_gorger.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_ramstein_the_gorger.cpp
@@ -43,9 +43,9 @@ class boss_ramstein_the_gorger : public CreatureScript
public:
boss_ramstein_the_gorger() : CreatureScript("boss_ramstein_the_gorger") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_ramstein_the_gorgerAI (creature);
+ return new boss_ramstein_the_gorgerAI(creature);
}
struct boss_ramstein_the_gorgerAI : public ScriptedAI
@@ -60,17 +60,17 @@ public:
uint32 Trample_Timer;
uint32 Knockout_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
Trample_Timer = 3000;
Knockout_Timer = 12000;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
for (uint8 i = 0; i < 30; ++i)
{
@@ -82,7 +82,7 @@ public:
instance->SetData(TYPE_RAMSTEIN, DONE);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -98,7 +98,7 @@ public:
//Knockout
if (Knockout_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_KNOCKOUT);
+ DoCastVictim(SPELL_KNOCKOUT);
Knockout_Timer = 10000;
} else Knockout_Timer -= diff;
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_timmy_the_cruel.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_timmy_the_cruel.cpp
index 27249e84892..020b14f4823 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/boss_timmy_the_cruel.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_timmy_the_cruel.cpp
@@ -41,9 +41,9 @@ class boss_timmy_the_cruel : public CreatureScript
public:
boss_timmy_the_cruel() : CreatureScript("boss_timmy_the_cruel") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_timmy_the_cruelAI (creature);
+ return new boss_timmy_the_cruelAI(creature);
}
struct boss_timmy_the_cruelAI : public ScriptedAI
@@ -53,13 +53,13 @@ public:
uint32 RavenousClaw_Timer;
bool HasYelled;
- void Reset()
+ void Reset() OVERRIDE
{
RavenousClaw_Timer = 10000;
HasYelled = false;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (!HasYelled)
{
@@ -68,7 +68,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -78,7 +78,7 @@ public:
if (RavenousClaw_Timer <= diff)
{
//Cast
- DoCast(me->getVictim(), SPELL_RAVENOUSCLAW);
+ DoCastVictim(SPELL_RAVENOUSCLAW);
//15 seconds until we should cast this again
RavenousClaw_Timer = 15000;
} else RavenousClaw_Timer -= diff;
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/instance_stratholme.cpp b/src/server/scripts/EasternKingdoms/Stratholme/instance_stratholme.cpp
index bd92617fe84..b0d5b0508eb 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/instance_stratholme.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/instance_stratholme.cpp
@@ -213,7 +213,7 @@ class instance_stratholme : public InstanceMapScript
}
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
switch (type)
{
@@ -246,23 +246,29 @@ class instance_stratholme : public InstanceMapScript
case TYPE_BARONESS:
EncounterState[1] = data;
if (data == IN_PROGRESS)
+ {
HandleGameObject(ziggurat1GUID, true);
- if (data == IN_PROGRESS) //change to DONE when crystals implemented
+ //change to DONE when crystals implemented
StartSlaugtherSquare();
+ }
break;
case TYPE_NERUB:
EncounterState[2] = data;
if (data == IN_PROGRESS)
+ {
HandleGameObject(ziggurat2GUID, true);
- if (data == IN_PROGRESS) //change to DONE when crystals implemented
+ //change to DONE when crystals implemented
StartSlaugtherSquare();
+ }
break;
case TYPE_PALLID:
EncounterState[3] = data;
if (data == IN_PROGRESS)
+ {
HandleGameObject(ziggurat3GUID, true);
- if (data == IN_PROGRESS) //change to DONE when crystals implemented
+ //change to DONE when crystals implemented
StartSlaugtherSquare();
+ }
break;
case TYPE_RAMSTEIN:
if (data == IN_PROGRESS)
@@ -273,7 +279,7 @@ class instance_stratholme : public InstanceMapScript
for (std::set<uint64>::const_iterator i = abomnationGUID.begin(); i != abomnationGUID.end(); ++i)
{
if (Creature* pAbom = instance->GetCreature(*i))
- if (!pAbom->isAlive())
+ if (!pAbom->IsAlive())
--count;
}
@@ -310,7 +316,7 @@ class instance_stratholme : public InstanceMapScript
Map::PlayerList const& players = instance->GetPlayers();
if (!players.isEmpty())
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
- if (Player* player = itr->getSource())
+ if (Player* player = itr->GetSource())
if (player->GetQuestStatus(QUEST_DEAD_MAN_PLEA) == QUEST_STATUS_INCOMPLETE)
player->AreaExploredOrEventHappens(QUEST_DEAD_MAN_PLEA);
@@ -384,7 +390,7 @@ class instance_stratholme : public InstanceMapScript
OUT_LOAD_INST_DATA_COMPLETE;
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -408,7 +414,7 @@ class instance_stratholme : public InstanceMapScript
return 0;
}
- uint64 GetData64(uint32 data) const
+ uint64 GetData64(uint32 data) const OVERRIDE
{
switch (data)
{
@@ -451,7 +457,7 @@ class instance_stratholme : public InstanceMapScript
}
};
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_stratholme_InstanceMapScript(map);
}
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/stratholme.cpp b/src/server/scripts/EasternKingdoms/Stratholme/stratholme.cpp
index f12a9c33ea9..ff2bc1cb15c 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/stratholme.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/stratholme.cpp
@@ -25,9 +25,9 @@ EndScriptData */
/* ContentData
go_gauntlet_gate
-mob_freed_soul
-mob_restless_soul
-mobs_spectral_ghostly_citizen
+npc_freed_soul
+npc_restless_soul
+npc_spectral_ghostly_citizen
EndContentData */
#include "ScriptMgr.h"
@@ -46,7 +46,7 @@ class go_gauntlet_gate : public GameObjectScript
public:
go_gauntlet_gate() : GameObjectScript("go_gauntlet_gate") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
InstanceScript* instance = go->GetInstanceScript();
@@ -60,7 +60,7 @@ public:
{
for (GroupReference* itr = group->GetFirstMember(); itr != NULL; itr = itr->next())
{
- Player* pGroupie = itr->getSource();
+ Player* pGroupie = itr->GetSource();
if (!pGroupie)
continue;
@@ -81,75 +81,83 @@ public:
};
/*######
-## mob_freed_soul
+## npc_freed_soul
######*/
enum FreedSoul
{
SAY_ZAPPED = 0
};
-class mob_freed_soul : public CreatureScript
+class npc_freed_soul : public CreatureScript
{
public:
- mob_freed_soul() : CreatureScript("mob_freed_soul") { }
+ npc_freed_soul() : CreatureScript("npc_freed_soul") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_freed_soulAI (creature);
+ return new npc_freed_soulAI(creature);
}
- struct mob_freed_soulAI : public ScriptedAI
+ struct npc_freed_soulAI : public ScriptedAI
{
- mob_freed_soulAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_freed_soulAI(Creature* creature) : ScriptedAI(creature) {}
- void Reset()
+ void Reset() OVERRIDE
{
Talk(SAY_ZAPPED);
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
};
};
/*######
-## mob_restless_soul
+## npc_restless_soul
######*/
-#define SPELL_EGAN_BLASTER 17368
-#define SPELL_SOUL_FREED 17370
-#define QUEST_RESTLESS_SOUL 5282
-#define ENTRY_RESTLESS 11122
-#define ENTRY_FREED 11136
+enum RestlessSoul
+{
+ // Spells
+ SPELL_EGAN_BLASTER = 17368,
+ SPELL_SOUL_FREED = 17370,
+
+ // Quest
+ QUEST_RESTLESS_SOUL = 5282,
+
+ // Creatures
+ NPC_RESTLESS = 11122,
+ NPC_FREED = 11136
+};
-class mob_restless_soul : public CreatureScript
+class npc_restless_soul : public CreatureScript
{
public:
- mob_restless_soul() : CreatureScript("mob_restless_soul") { }
+ npc_restless_soul() : CreatureScript("npc_restless_soul") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_restless_soulAI (creature);
+ return new npc_restless_soulAI(creature);
}
- struct mob_restless_soulAI : public ScriptedAI
+ struct npc_restless_soulAI : public ScriptedAI
{
- mob_restless_soulAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_restless_soulAI(Creature* creature) : ScriptedAI(creature) {}
uint64 Tagger;
uint32 Die_Timer;
bool Tagged;
- void Reset()
+ void Reset() OVERRIDE
{
Tagger = 0;
Die_Timer = 5000;
Tagged = false;
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void SpellHit(Unit* caster, const SpellInfo* spell)
+ void SpellHit(Unit* caster, const SpellInfo* spell) OVERRIDE
{
if (Tagged || spell->Id != SPELL_EGAN_BLASTER)
return;
@@ -162,18 +170,18 @@ public:
Tagger = caster->GetGUID();
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
summoned->CastSpell(summoned, SPELL_SOUL_FREED, false);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (Tagged)
- me->SummonCreature(ENTRY_FREED, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation(), TEMPSUMMON_TIMED_DESPAWN, 300000);
+ me->SummonCreature(NPC_FREED, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation(), TEMPSUMMON_TIMED_DESPAWN, 300000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (Tagged)
{
@@ -182,7 +190,7 @@ public:
if (Unit* temp = Unit::GetUnit(*me, Tagger))
{
if (Player* player = temp->ToPlayer())
- player->KilledMonsterCredit(ENTRY_RESTLESS, me->GetGUID());
+ player->KilledMonsterCredit(NPC_RESTLESS, me->GetGUID());
me->Kill(me);
}
}
@@ -195,47 +203,47 @@ public:
};
/*######
-## mobs_spectral_ghostly_citizen
+## npc_spectral_ghostly_citizen
######*/
-enum eGhostlyCitizenSpells
+enum GhostlyCitizenSpells
{
SPELL_HAUNTING_PHANTOM = 16336,
SPELL_SLAP = 6754
};
-class mobs_spectral_ghostly_citizen : public CreatureScript
+class npc_spectral_ghostly_citizen : public CreatureScript
{
public:
- mobs_spectral_ghostly_citizen() : CreatureScript("mobs_spectral_ghostly_citizen") { }
+ npc_spectral_ghostly_citizen() : CreatureScript("npc_spectral_ghostly_citizen") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mobs_spectral_ghostly_citizenAI (creature);
+ return new npc_spectral_ghostly_citizenAI(creature);
}
- struct mobs_spectral_ghostly_citizenAI : public ScriptedAI
+ struct npc_spectral_ghostly_citizenAI : public ScriptedAI
{
- mobs_spectral_ghostly_citizenAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_spectral_ghostly_citizenAI(Creature* creature) : ScriptedAI(creature) {}
uint32 Die_Timer;
bool Tagged;
- void Reset()
+ void Reset() OVERRIDE
{
Die_Timer = 5000;
Tagged = false;
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void SpellHit(Unit* /*caster*/, const SpellInfo* spell)
+ void SpellHit(Unit* /*caster*/, const SpellInfo* spell) OVERRIDE
{
if (!Tagged && spell->Id == SPELL_EGAN_BLASTER)
Tagged = true;
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (Tagged)
{
@@ -243,12 +251,12 @@ public:
{
//100%, 50%, 33%, 25% chance to spawn
if (urand(1, i) == 1)
- DoSummon(ENTRY_RESTLESS, me, 20.0f, 600000);
+ DoSummon(NPC_RESTLESS, me, 20.0f, 600000);
}
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (Tagged)
{
@@ -263,7 +271,7 @@ public:
DoMeleeAttackIfReady();
}
- void ReceiveEmote(Player* player, uint32 emote)
+ void ReceiveEmote(Player* player, uint32 emote) OVERRIDE
{
switch (emote)
{
@@ -294,7 +302,7 @@ public:
void AddSC_stratholme()
{
new go_gauntlet_gate();
- new mob_freed_soul();
- new mob_restless_soul();
- new mobs_spectral_ghostly_citizen();
+ new npc_freed_soul();
+ new npc_restless_soul();
+ new npc_spectral_ghostly_citizen();
}
diff --git a/src/server/scripts/EasternKingdoms/SunkenTemple/instance_sunken_temple.cpp b/src/server/scripts/EasternKingdoms/SunkenTemple/instance_sunken_temple.cpp
index ee0d9bb64f3..2239b4a6ed3 100644
--- a/src/server/scripts/EasternKingdoms/SunkenTemple/instance_sunken_temple.cpp
+++ b/src/server/scripts/EasternKingdoms/SunkenTemple/instance_sunken_temple.cpp
@@ -51,7 +51,7 @@ class instance_sunken_temple : public InstanceMapScript
public:
instance_sunken_temple() : InstanceMapScript("instance_sunken_temple", 109) { }
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_sunken_temple_InstanceMapScript(map);
}
@@ -193,13 +193,13 @@ public:
}
*/
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
if (type == EVENT_STATE)
State = data;
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
if (type == EVENT_STATE)
return State;
diff --git a/src/server/scripts/EasternKingdoms/SunkenTemple/sunken_temple.cpp b/src/server/scripts/EasternKingdoms/SunkenTemple/sunken_temple.cpp
index 027080404f6..ac0c3a556f3 100644
--- a/src/server/scripts/EasternKingdoms/SunkenTemple/sunken_temple.cpp
+++ b/src/server/scripts/EasternKingdoms/SunkenTemple/sunken_temple.cpp
@@ -41,7 +41,7 @@ class at_malfurion_stormrage : public AreaTriggerScript
public:
at_malfurion_stormrage() : AreaTriggerScript("at_malfurion_stormrage") { }
- bool OnTrigger(Player* player, const AreaTriggerEntry* /*at*/)
+ bool OnTrigger(Player* player, const AreaTriggerEntry* /*at*/) OVERRIDE
{
if (player->GetInstanceScript() && !player->FindNearestCreature(15362, 15))
player->SummonCreature(15362, player->GetPositionX(), player->GetPositionY(), player->GetPositionZ(), -1.52f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 100000);
@@ -58,7 +58,7 @@ class go_atalai_statue : public GameObjectScript
public:
go_atalai_statue() : GameObjectScript("go_atalai_statue") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
if (InstanceScript* instance = player->GetInstanceScript())
instance->SetData(EVENT_STATE, go->GetEntry());
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp
index 24c9a692a84..4460fb99f2b 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp
@@ -68,9 +68,9 @@ class boss_brutallus : public CreatureScript
public:
boss_brutallus() : CreatureScript("boss_brutallus") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_brutallusAI (creature);
+ return new boss_brutallusAI(creature);
}
struct boss_brutallusAI : public ScriptedAI
@@ -96,7 +96,7 @@ public:
bool IsIntro;
bool Enraged;
- void Reset()
+ void Reset() OVERRIDE
{
SlashTimer = 11000;
StompTimer = 30000;
@@ -116,7 +116,7 @@ public:
instance->SetData(DATA_BRUTALLUS_EVENT, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(YELL_AGGRO);
@@ -124,12 +124,12 @@ public:
instance->SetData(DATA_BRUTALLUS_EVENT, IN_PROGRESS);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(YELL_KILL);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(YELL_DEATH);
@@ -142,7 +142,7 @@ public:
}
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
if (!Intro)
ScriptedAI::EnterEvadeMode();
@@ -179,7 +179,7 @@ public:
IsIntro = false;
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (!who || Intro || IsIntro)
return;
@@ -264,7 +264,8 @@ public:
}
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (!me->IsValidAttackTarget(who))
return;
@@ -277,7 +278,7 @@ public:
ScriptedAI::MoveInLineOfSight(who);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (IsIntro)
{
@@ -306,14 +307,14 @@ public:
if (SlashTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_METEOR_SLASH);
+ DoCastVictim(SPELL_METEOR_SLASH);
SlashTimer = 11000;
} else SlashTimer -= diff;
if (StompTimer <= diff)
{
Talk(YELL_LOVE);
- DoCast(me->getVictim(), SPELL_STOMP);
+ DoCastVictim(SPELL_STOMP);
StompTimer = 30000;
} else StompTimer -= diff;
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp
index eb2e4f1ae8b..0e58cb85c4b 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp
@@ -84,9 +84,9 @@ class boss_sacrolash : public CreatureScript
public:
boss_sacrolash() : CreatureScript("boss_sacrolash") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_sacrolashAI (creature);
+ return new boss_sacrolashAI(creature);
};
struct boss_sacrolashAI : public ScriptedAI
@@ -108,7 +108,7 @@ public:
uint32 ConflagrationTimer;
uint32 EnrageTimer;
- void Reset()
+ void Reset() OVERRIDE
{
Enraged = false;
@@ -118,12 +118,12 @@ public:
{
if (temp->isDead())
temp->Respawn();
- else if (temp->getVictim())
- me->getThreatManager().addThreat(temp->getVictim(), 0.0f);
+ else if (temp->GetVictim())
+ me->getThreatManager().addThreat(temp->GetVictim(), 0.0f);
}
}
- if (!me->isInCombat())
+ if (!me->IsInCombat())
{
ShadowbladesTimer = 10000;
ShadownovaTimer = 30000;
@@ -139,14 +139,14 @@ public:
instance->SetData(DATA_EREDAR_TWINS_EVENT, NOT_STARTED);
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
DoZoneInCombat();
if (instance)
{
Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_ALYTHESS));
- if (temp && temp->isAlive() && !temp->getVictim())
+ if (temp && temp->IsAlive() && !temp->GetVictim())
temp->AI()->AttackStart(who);
}
@@ -154,13 +154,13 @@ public:
instance->SetData(DATA_EREDAR_TWINS_EVENT, IN_PROGRESS);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
if (rand()%4 == 0)
Talk(YELL_SAC_KILL);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
// only if ALY death
if (SisterDeath)
@@ -174,7 +174,7 @@ public:
me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
}
- void SpellHitTarget(Unit* target, const SpellInfo* spell)
+ void SpellHitTarget(Unit* target, const SpellInfo* spell) OVERRIDE
{
switch (spell->Id)
{
@@ -217,7 +217,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!SisterDeath)
{
@@ -294,7 +294,7 @@ public:
for (uint8 i = 0; i<3; ++i)
{
target = SelectTarget(SELECT_TARGET_RANDOM, 0);
- temp = DoSpawnCreature(MOB_SHADOW_IMAGE, 0, 0, 0, 0, TEMPSUMMON_CORPSE_DESPAWN, 10000);
+ temp = DoSpawnCreature(NPC_SHADOW_IMAGE, 0, 0, 0, 0, TEMPSUMMON_CORPSE_DESPAWN, 10000);
if (temp && target)
{
temp->AddThreat(target, 1000000);//don't change target(healers)
@@ -324,10 +324,10 @@ public:
if (me->isAttackReady() && !me->IsNonMeleeSpellCasted(false))
{
//If we are within range melee the target
- if (me->IsWithinMeleeRange(me->getVictim()))
+ if (me->IsWithinMeleeRange(me->GetVictim()))
{
- HandleTouchedSpells(me->getVictim(), SPELL_DARK_TOUCHED);
- me->AttackerStateUpdate(me->getVictim());
+ HandleTouchedSpells(me->GetVictim(), SPELL_DARK_TOUCHED);
+ me->AttackerStateUpdate(me->GetVictim());
me->resetAttackTimer();
}
}
@@ -340,9 +340,9 @@ class boss_alythess : public CreatureScript
public:
boss_alythess() : CreatureScript("boss_alythess") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_alythessAI (creature);
+ return new boss_alythessAI(creature);
};
struct boss_alythessAI : public ScriptedAI
@@ -370,7 +370,7 @@ public:
uint32 FlamesearTimer;
uint32 EnrageTimer;
- void Reset()
+ void Reset() OVERRIDE
{
Enraged = false;
@@ -380,12 +380,12 @@ public:
{
if (temp->isDead())
temp->Respawn();
- else if (temp->getVictim())
- me->getThreatManager().addThreat(temp->getVictim(), 0.0f);
+ else if (temp->GetVictim())
+ me->getThreatManager().addThreat(temp->GetVictim(), 0.0f);
}
}
- if (!me->isInCombat())
+ if (!me->IsInCombat())
{
ConflagrationTimer = 45000;
BlazeTimer = 100;
@@ -402,14 +402,14 @@ public:
instance->SetData(DATA_EREDAR_TWINS_EVENT, NOT_STARTED);
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
DoZoneInCombat();
if (instance)
{
Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_SACROLASH));
- if (temp && temp->isAlive() && !temp->getVictim())
+ if (temp && temp->IsAlive() && !temp->GetVictim())
temp->AI()->AttackStart(who);
}
@@ -417,23 +417,24 @@ public:
instance->SetData(DATA_EREDAR_TWINS_EVENT, IN_PROGRESS);
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
- if (!me->isInCombat())
+ if (!me->IsInCombat())
ScriptedAI::AttackStart(who);
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
- if (!who || me->getVictim())
+ if (!who || me->GetVictim())
return;
- if (me->canCreatureAttack(who))
+ if (me->CanCreatureAttack(who))
{
float attackRadius = me->GetAttackDistance(who);
if (me->IsWithinDistInMap(who, attackRadius) && me->GetDistanceZ(who) <= CREATURE_Z_ATTACK_RANGE && me->IsWithinLOSInMap(who))
{
- if (!me->isInCombat())
+ if (!me->IsInCombat())
{
DoStartNoMovement(who);
}
@@ -445,7 +446,7 @@ public:
}
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
if (rand()%4 == 0)
{
@@ -453,7 +454,7 @@ public:
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (SisterDeath)
{
@@ -466,7 +467,7 @@ public:
me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
}
- void SpellHitTarget(Unit* target, const SpellInfo* spell)
+ void SpellHitTarget(Unit* target, const SpellInfo* spell) OVERRIDE
{
switch (spell->Id)
{
@@ -542,7 +543,7 @@ public:
return 10000;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (IntroStepCounter < 9)
{
@@ -567,16 +568,16 @@ public:
}
}
}
- if (!me->getVictim())
+ if (!me->GetVictim())
{
if (instance)
{
Creature* sisiter = Unit::GetCreature((*me), instance->GetData64(DATA_SACROLASH));
- if (sisiter && !sisiter->isDead() && sisiter->getVictim())
+ if (sisiter && !sisiter->isDead() && sisiter->GetVictim())
{
- me->AddThreat(sisiter->getVictim(), 0.0f);
- DoStartNoMovement(sisiter->getVictim());
- me->Attack(sisiter->getVictim(), false);
+ me->AddThreat(sisiter->GetVictim(), 0.0f);
+ DoStartNoMovement(sisiter->GetVictim());
+ me->Attack(sisiter->GetVictim(), false);
}
}
}
@@ -645,7 +646,7 @@ public:
{
if (!me->IsNonMeleeSpellCasted(false))
{
- DoCast(me->getVictim(), SPELL_BLAZE);
+ DoCastVictim(SPELL_BLAZE);
BlazeTimer = 3800;
}
} else BlazeTimer -= diff;
@@ -661,25 +662,25 @@ public:
};
};
-class mob_shadow_image : public CreatureScript
+class npc_shadow_image : public CreatureScript
{
public:
- mob_shadow_image() : CreatureScript("mob_shadow_image") { }
+ npc_shadow_image() : CreatureScript("npc_shadow_image") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_shadow_imageAI (creature);
+ return new npc_shadow_imageAI(creature);
};
- struct mob_shadow_imageAI : public ScriptedAI
+ struct npc_shadow_imageAI : public ScriptedAI
{
- mob_shadow_imageAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_shadow_imageAI(Creature* creature) : ScriptedAI(creature) {}
uint32 ShadowfuryTimer;
uint32 KillTimer;
uint32 DarkstrikeTimer;
- void Reset()
+ void Reset() OVERRIDE
{
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
ShadowfuryTimer = 5000 + (rand()%15000);
@@ -687,9 +688,9 @@ public:
KillTimer = 15000;
}
- void EnterCombat(Unit* /*who*/){}
+ void EnterCombat(Unit* /*who*/)OVERRIDE {}
- void SpellHitTarget(Unit* target, const SpellInfo* spell)
+ void SpellHitTarget(Unit* target, const SpellInfo* spell) OVERRIDE
{
switch (spell->Id)
{
@@ -707,7 +708,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!me->HasAura(SPELL_IMAGE_VISUAL))
DoCast(me, SPELL_IMAGE_VISUAL);
@@ -732,8 +733,8 @@ public:
if (!me->IsNonMeleeSpellCasted(false))
{
//If we are within range melee the target
- if (me->IsWithinMeleeRange(me->getVictim()))
- DoCast(me->getVictim(), SPELL_DARK_STRIKE);
+ if (me->IsWithinMeleeRange(me->GetVictim()))
+ DoCastVictim(SPELL_DARK_STRIKE);
}
DarkstrikeTimer = 3000;
} else DarkstrikeTimer -= diff;
@@ -745,5 +746,5 @@ void AddSC_boss_eredar_twins()
{
new boss_sacrolash();
new boss_alythess();
- new mob_shadow_image();
+ new npc_shadow_image();
}
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp
index 6ac6b9a4812..a74e2cc87b1 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp
@@ -112,7 +112,7 @@ class boss_felmyst : public CreatureScript
public:
boss_felmyst() : CreatureScript("boss_felmyst") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_felmystAI(creature);
}
@@ -133,7 +133,7 @@ public:
float breathX, breathY;
- void Reset()
+ void Reset() OVERRIDE
{
phase = PHASE_NONE;
@@ -145,14 +145,14 @@ public:
me->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, 10);
me->SetFloatValue(UNIT_FIELD_COMBATREACH, 10);
- DespawnSummons(MOB_VAPOR_TRAIL);
+ DespawnSummons(NPC_VAPOR_TRAIL);
me->setActive(false);
if (instance)
instance->SetData(DATA_FELMYST_EVENT, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
events.ScheduleEvent(EVENT_BERSERK, 600000);
@@ -166,29 +166,30 @@ public:
instance->SetData(DATA_FELMYST_EVENT, IN_PROGRESS);
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (phase != PHASE_FLIGHT)
ScriptedAI::AttackStart(who);
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (phase != PHASE_FLIGHT)
ScriptedAI::MoveInLineOfSight(who);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(YELL_KILL);
}
- void JustRespawned()
+ void JustRespawned() OVERRIDE
{
Talk(YELL_BIRTH);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(YELL_DEATH);
@@ -196,7 +197,7 @@ public:
instance->SetData(DATA_FELMYST_EVENT, DONE);
}
- void SpellHit(Unit* caster, const SpellInfo* spell)
+ void SpellHit(Unit* caster, const SpellInfo* spell) OVERRIDE
{
// workaround for linked aura
/*if (spell->Id == SPELL_VAPOR_FORCE)
@@ -208,7 +209,7 @@ public:
{
float x, y, z;
caster->GetPosition(x, y, z);
- if (Unit* summon = me->SummonCreature(MOB_DEAD, x, y, z, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
+ if (Unit* summon = me->SummonCreature(NPC_DEAD, x, y, z, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
{
summon->SetMaxHealth(caster->GetMaxHealth());
summon->SetHealth(caster->GetMaxHealth());
@@ -219,9 +220,9 @@ public:
}
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
- if (summon->GetEntry() == MOB_DEAD)
+ if (summon->GetEntry() == NPC_DEAD)
{
summon->AI()->AttackStart(SelectTarget(SELECT_TARGET_RANDOM));
DoZoneInCombat(summon);
@@ -229,13 +230,13 @@ public:
}
}
- void MovementInform(uint32, uint32)
+ void MovementInform(uint32, uint32) OVERRIDE
{
if (phase == PHASE_FLIGHT)
events.ScheduleEvent(EVENT_FLIGHT_SEQUENCE, 1);
}
- void DamageTaken(Unit*, uint32 &damage)
+ void DamageTaken(Unit*, uint32 &damage) OVERRIDE
{
if (phase != PHASE_GROUND && damage >= me->GetHealth())
damage = 0;
@@ -248,7 +249,7 @@ public:
case PHASE_GROUND:
me->CastStop(SPELL_FOG_BREATH);
me->RemoveAurasDueToSpell(SPELL_FOG_BREATH);
- me->SetUnitMovementFlags(MOVEMENTFLAG_NONE);
+ me->StopMoving();
me->SetSpeed(MOVE_RUN, 2.0f);
events.ScheduleEvent(EVENT_CLEAVE, urand(5000, 10000));
@@ -258,7 +259,7 @@ public:
events.ScheduleEvent(EVENT_FLIGHT, 60000);
break;
case PHASE_FLIGHT:
- me->SetUnitMovementFlags(MOVEMENTFLAG_DISABLE_GRAVITY);
+ me->SetDisableGravity(true);
events.ScheduleEvent(EVENT_FLIGHT_SEQUENCE, 1000);
uiFlightCount = 0;
uiBreathCount = 0;
@@ -296,7 +297,7 @@ public:
return;
}
- Creature* Vapor = me->SummonCreature(MOB_VAPOR, target->GetPositionX()-5+rand()%10, target->GetPositionY()-5+rand()%10, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 9000);
+ Creature* Vapor = me->SummonCreature(NPC_VAPOR, target->GetPositionX()-5+rand()%10, target->GetPositionY()-5+rand()%10, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 9000);
if (Vapor)
{
Vapor->AI()->AttackStart(target);
@@ -310,7 +311,7 @@ public:
}
case 3:
{
- DespawnSummons(MOB_VAPOR_TRAIL);
+ DespawnSummons(NPC_VAPOR_TRAIL);
//DoCast(me, SPELL_VAPOR_SELECT); need core support
Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 150, true);
@@ -324,7 +325,7 @@ public:
}
//target->CastSpell(target, SPELL_VAPOR_SUMMON, true); need core support
- Creature* pVapor = me->SummonCreature(MOB_VAPOR, target->GetPositionX()-5+rand()%10, target->GetPositionY()-5+rand()%10, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 9000);
+ Creature* pVapor = me->SummonCreature(NPC_VAPOR, target->GetPositionX()-5+rand()%10, target->GetPositionY()-5+rand()%10, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 9000);
if (pVapor)
{
if (pVapor->AI())
@@ -338,7 +339,7 @@ public:
break;
}
case 4:
- DespawnSummons(MOB_VAPOR_TRAIL);
+ DespawnSummons(NPC_VAPOR_TRAIL);
events.ScheduleEvent(EVENT_FLIGHT_SEQUENCE, 1);
break;
case 5:
@@ -404,7 +405,7 @@ public:
++uiFlightCount;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
{
@@ -428,11 +429,11 @@ public:
events.ScheduleEvent(EVENT_BERSERK, 10000);
break;
case EVENT_CLEAVE:
- DoCast(me->getVictim(), SPELL_CLEAVE, false);
+ DoCastVictim(SPELL_CLEAVE, false);
events.ScheduleEvent(EVENT_CLEAVE, urand(5000, 10000));
break;
case EVENT_CORROSION:
- DoCast(me->getVictim(), SPELL_CORROSION, false);
+ DoCastVictim(SPELL_CORROSION, false);
events.ScheduleEvent(EVENT_CORROSION, urand(20000, 30000));
break;
case EVENT_GAS_NOVA:
@@ -469,7 +470,7 @@ public:
float x, y, z;
me->GetPosition(x, y, z);
me->UpdateGroundPositionZ(x, y, z);
- if (Creature* Fog = me->SummonCreature(MOB_VAPOR_TRAIL, x, y, z, 0, TEMPSUMMON_TIMED_DESPAWN, 10000))
+ if (Creature* Fog = me->SummonCreature(NPC_VAPOR_TRAIL, x, y, z, 0, TEMPSUMMON_TIMED_DESPAWN, 10000))
{
Fog->RemoveAurasDueToSpell(SPELL_TRAIL_TRIGGER);
Fog->CastSpell(Fog, SPELL_FOG_TRIGGER, true);
@@ -499,10 +500,10 @@ public:
for (std::list<Creature*>::const_iterator i = templist.begin(); i != templist.end(); ++i)
{
- if (entry == MOB_VAPOR_TRAIL && phase == PHASE_FLIGHT)
+ if (entry == NPC_VAPOR_TRAIL && phase == PHASE_FLIGHT)
{
(*i)->GetPosition(x, y, z);
- me->SummonCreature(MOB_DEAD, x, y, z, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
+ me->SummonCreature(NPC_DEAD, x, y, z, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
}
(*i)->SetVisible(false);
(*i)->setDeathState(JUST_DIED);
@@ -513,68 +514,69 @@ public:
};
};
-class mob_felmyst_vapor : public CreatureScript
+class npc_felmyst_vapor : public CreatureScript
{
public:
- mob_felmyst_vapor() : CreatureScript("mob_felmyst_vapor") { }
+ npc_felmyst_vapor() : CreatureScript("npc_felmyst_vapor") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_felmyst_vaporAI(creature);
+ return new npc_felmyst_vaporAI(creature);
}
- struct mob_felmyst_vaporAI : public ScriptedAI
+ struct npc_felmyst_vaporAI : public ScriptedAI
{
- mob_felmyst_vaporAI(Creature* creature) : ScriptedAI(creature)
+ npc_felmyst_vaporAI(Creature* creature) : ScriptedAI(creature)
{
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->SetSpeed(MOVE_RUN, 0.8f);
}
- void Reset() {}
- void EnterCombat(Unit* /*who*/)
+ void Reset() OVERRIDE {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
DoZoneInCombat();
//DoCast(me, SPELL_VAPOR_FORCE, true); core bug
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
- if (!me->getVictim())
+ if (!me->GetVictim())
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
AttackStart(target);
}
};
};
-class mob_felmyst_trail : public CreatureScript
+class npc_felmyst_trail : public CreatureScript
{
public:
- mob_felmyst_trail() : CreatureScript("mob_felmyst_trail") { }
+ npc_felmyst_trail() : CreatureScript("npc_felmyst_trail") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_felmyst_trailAI(creature);
+ return new npc_felmyst_trailAI(creature);
}
- struct mob_felmyst_trailAI : public ScriptedAI
+ struct npc_felmyst_trailAI : public ScriptedAI
{
- mob_felmyst_trailAI(Creature* creature) : ScriptedAI(creature)
+ npc_felmyst_trailAI(Creature* creature) : ScriptedAI(creature)
{
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
DoCast(me, SPELL_TRAIL_TRIGGER, true);
me->SetTarget(me->GetGUID());
me->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, 0.01f); // core bug
}
- void Reset() {}
- void EnterCombat(Unit* /*who*/) {}
- void AttackStart(Unit* /*who*/) {}
- void MoveInLineOfSight(Unit* /*who*/) {}
- void UpdateAI(uint32 /*diff*/) {}
+ void Reset() OVERRIDE {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+ void AttackStart(Unit* /*who*/) OVERRIDE {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
+
+ void UpdateAI(uint32 /*diff*/) OVERRIDE {}
};
};
void AddSC_boss_felmyst()
{
new boss_felmyst();
- new mob_felmyst_vapor();
- new mob_felmyst_trail();
+ new npc_felmyst_vapor();
+ new npc_felmyst_trail();
}
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp
index 9e312ef8f94..2895e85de71 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp
@@ -103,9 +103,9 @@ class boss_kalecgos : public CreatureScript
public:
boss_kalecgos() : CreatureScript("boss_kalecgos") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_kalecgosAI (creature);
+ return new boss_kalecgosAI(creature);
}
struct boss_kalecgosAI : public ScriptedAI
@@ -139,7 +139,7 @@ public:
uint64 SathGUID;
uint64 DoorGUID;
- void Reset()
+ void Reset() OVERRIDE
{
if (instance)
{
@@ -174,7 +174,7 @@ public:
isBanished = false;
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
bJustReset = true;
me->SetVisible(false);
@@ -182,7 +182,7 @@ public:
ScriptedAI::EnterEvadeMode();
}
- void DoAction(int32 param)
+ void DoAction(int32 param) OVERRIDE
{
switch (param)
{
@@ -197,7 +197,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (TalkTimer)
{
@@ -305,7 +305,7 @@ public:
Unit* target = (*itr)->getTarget();
if (target
&& target->GetTypeId() == TYPEID_PLAYER
- && target->GetGUID() != me->getVictim()->GetGUID()
+ && target->GetGUID() != me->GetVictim()->GetGUID()
&& target->GetPositionZ() > me->GetPositionZ() - 5
&& !target->HasAura(AURA_SPECTRAL_EXHAUSTION))
{
@@ -330,12 +330,13 @@ public:
}
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (bJustReset)//boss is invisible, don't attack
return;
- if (!me->getVictim() && me->IsValidAttackTarget(who))
+ if (!me->GetVictim() && me->IsValidAttackTarget(who))
{
float attackRadius = me->GetAttackDistance(who);
if (me->IsWithinDistInMap(who, attackRadius))
@@ -343,13 +344,13 @@ public:
}
}
- void DamageTaken(Unit* done_by, uint32 &damage)
+ void DamageTaken(Unit* done_by, uint32 &damage) OVERRIDE
{
if (damage >= me->GetHealth() && done_by != me)
damage = 0;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
me->SetStandState(UNIT_STAND_STATE_STAND);
Talk(SAY_EVIL_AGGRO);
@@ -359,12 +360,12 @@ public:
instance->SetData(DATA_KALECGOS_EVENT, IN_PROGRESS);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_EVIL_SLAY);
}
- void MovementInform(uint32 type, uint32 /*id*/)
+ void MovementInform(uint32 type, uint32 /*id*/) OVERRIDE
{
if (type != POINT_MOTION_TYPE)
return;
@@ -378,7 +379,7 @@ public:
{
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
{
- Player* player = itr->getSource();
+ Player* player = itr->GetSource();
if (player)
me->GetMap()->ToInstanceMap()->PermBindAllPlayers(player);
}
@@ -441,9 +442,9 @@ class boss_kalec : public CreatureScript
public:
boss_kalec() : CreatureScript("boss_kalec") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_kalecAI (creature);
+ return new boss_kalecAI(creature);
}
struct boss_kalecAI : public ScriptedAI
@@ -464,7 +465,7 @@ public:
instance = creature->GetInstanceScript();
}
- void Reset()
+ void Reset() OVERRIDE
{
if (instance)
SathGUID = instance->GetData64(DATA_SATHROVARR);
@@ -477,7 +478,7 @@ public:
isEnraged = false;
}
- void DamageTaken(Unit* done_by, uint32 &damage)
+ void DamageTaken(Unit* done_by, uint32 &damage) OVERRIDE
{
if (done_by->GetGUID() != SathGUID)
damage = 0;
@@ -485,7 +486,7 @@ public:
damage *= 3;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!me->HasAura(AURA_SPECTRAL_INVISIBILITY))
me->CastSpell(me, AURA_SPECTRAL_INVISIBILITY, true);
@@ -528,7 +529,7 @@ public:
if (HeroicStrikeTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_HEROIC_STRIKE);
+ DoCastVictim(SPELL_HEROIC_STRIKE);
HeroicStrikeTimer = 2000;
} else HeroicStrikeTimer -= diff;
@@ -542,24 +543,29 @@ class kalecgos_teleporter : public GameObjectScript
public:
kalecgos_teleporter() : GameObjectScript("kalecgos_teleporter") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
- uint8 SpectralPlayers = 0;
Map* map = go->GetMap();
if (!map->IsDungeon())
return true;
+#if MAX_PLAYERS_IN_SPECTRAL_REALM > 0
+ uint8 SpectralPlayers = 0;
Map::PlayerList const &PlayerList = map->GetPlayers();
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
{
- if (i->getSource() && i->getSource()->GetPositionZ() < DEMON_REALM_Z + 5)
+ if (i->GetSource() && i->GetSource()->GetPositionZ() < DEMON_REALM_Z + 5)
++SpectralPlayers;
}
- uint8 MaxSpectralPlayers = MAX_PLAYERS_IN_SPECTRAL_REALM;
- if (player->HasAura(AURA_SPECTRAL_EXHAUSTION) || (MaxSpectralPlayers && SpectralPlayers >= MaxSpectralPlayers))
+
+ if (player->HasAura(AURA_SPECTRAL_EXHAUSTION) || SpectralPlayers >= MAX_PLAYERS_IN_SPECTRAL_REALM)
+ {
player->GetSession()->SendNotification(GO_FAILED);
- else
- player->CastSpell(player, SPELL_TELEPORT_SPECTRAL, true);
+ return true;
+ }
+#endif
+
+ player->CastSpell(player, SPELL_TELEPORT_SPECTRAL, true);
return true;
}
};
@@ -569,9 +575,9 @@ class boss_sathrovarr : public CreatureScript
public:
boss_sathrovarr() : CreatureScript("boss_sathrovarr") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_sathrovarrAI (creature);
+ return new boss_sathrovarrAI(creature);
}
struct boss_sathrovarrAI : public ScriptedAI
@@ -597,7 +603,7 @@ public:
bool isEnraged;
bool isBanished;
- void Reset()
+ void Reset() OVERRIDE
{
me->SetFullHealth();//dunno why it does not resets health at evade..
me->setActive(true);
@@ -625,9 +631,9 @@ public:
TeleportAllPlayersBack();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
- if (Creature* Kalec = me->SummonCreature(MOB_KALEC, me->GetPositionX() + 10, me->GetPositionY() + 5, me->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 0))
+ if (Creature* Kalec = me->SummonCreature(NPC_KALEC, me->GetPositionX() + 10, me->GetPositionY() + 5, me->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 0))
{
KalecGUID = Kalec->GetGUID();
me->CombatStart(Kalec);
@@ -637,13 +643,13 @@ public:
Talk(SAY_SATH_AGGRO);
}
- void DamageTaken(Unit* done_by, uint32 &damage)
+ void DamageTaken(Unit* done_by, uint32 &damage) OVERRIDE
{
if (damage >= me->GetHealth() && done_by != me)
damage = 0;
}
- void KilledUnit(Unit* target)
+ void KilledUnit(Unit* target) OVERRIDE
{
if (target->GetGUID() == KalecGUID)
{
@@ -659,7 +665,7 @@ public:
Talk(SAY_SATH_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_SATH_DEATH);
me->SetPosition(me->GetPositionX(), me->GetPositionY(), DRAGON_REALM_Z, me->GetOrientation());
@@ -683,15 +689,15 @@ public:
Map::PlayerList const &PlayerList = map->GetPlayers();
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
{
- if (i->getSource()->GetPositionZ() <= DRAGON_REALM_Z-5)
+ if (i->GetSource()->GetPositionZ() <= DRAGON_REALM_Z-5)
{
- i->getSource()->RemoveAura(AURA_SPECTRAL_REALM);
- i->getSource()->TeleportTo(me->GetMap()->GetId(), i->getSource()->GetPositionX(), i->getSource()->GetPositionY(), DRAGON_REALM_Z+5, i->getSource()->GetOrientation());
+ i->GetSource()->RemoveAura(AURA_SPECTRAL_REALM);
+ i->GetSource()->TeleportTo(me->GetMap()->GetId(), i->GetSource()->GetPositionX(), i->GetSource()->GetPositionY(), DRAGON_REALM_Z+5, i->GetSource()->GetOrientation());
}
}
}
- void DoAction(int32 param)
+ void DoAction(int32 param) OVERRIDE
{
switch (param)
{
@@ -706,7 +712,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!me->HasAura(AURA_SPECTRAL_INVISIBILITY))
me->CastSpell(me, AURA_SPECTRAL_INVISIBILITY, true);
@@ -716,27 +722,27 @@ public:
if (CheckTimer <= diff)
{
Creature* Kalec = Unit::GetCreature(*me, KalecGUID);
- if (!Kalec || (Kalec && !Kalec->isAlive()))
+ if (!Kalec || !Kalec->IsAlive())
{
if (Creature* Kalecgos = Unit::GetCreature(*me, KalecgosGUID))
Kalecgos->AI()->EnterEvadeMode();
- return;
+ return;
}
+
if (HealthBelowPct(10) && !isEnraged)
{
if (Creature* Kalecgos = Unit::GetCreature(*me, KalecgosGUID))
Kalecgos->AI()->DoAction(DO_ENRAGE);
DoAction(DO_ENRAGE);
}
+
Creature* Kalecgos = Unit::GetCreature(*me, KalecgosGUID);
- if (Kalecgos)
+ if (Kalecgos && !Kalecgos->IsInCombat())
{
- if (!Kalecgos->isInCombat())
- {
- me->AI()->EnterEvadeMode();
- return;
- }
+ me->AI()->EnterEvadeMode();
+ return;
}
+
if (!isBanished && HealthBelowPct(1))
{
if (Kalecgos)
@@ -746,8 +752,7 @@ public:
me->DealDamage(me, me->GetHealth());
return;
}
- else
- DoAction(DO_BANISH);
+ DoAction(DO_BANISH);
}
else
{
@@ -782,7 +787,7 @@ public:
{
Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1);
if (!target)
- target = me->getVictim();
+ target = me->GetVictim();
DoCast(target, SPELL_AGONY_CURSE);
AgonyCurseTimer = 20000;
} else AgonyCurseTimer -= diff;
@@ -790,7 +795,7 @@ public:
if (CorruptionStrikeTimer <= diff)
{
if (!(rand()%5))Talk(SAY_SATH_SPELL2);
- DoCast(me->getVictim(), SPELL_CORRUPTION_STRIKE);
+ DoCastVictim(SPELL_CORRUPTION_STRIKE);
CorruptionStrikeTimer = 13000;
} else CorruptionStrikeTimer -= diff;
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp
index 499644ed250..855ed46e5cf 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp
@@ -234,9 +234,9 @@ class boss_kalecgos_kj : public CreatureScript
public:
boss_kalecgos_kj() : CreatureScript("boss_kalecgos_kj") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_kalecgos_kjAI (creature);
+ return new boss_kalecgos_kjAI(creature);
}
struct boss_kalecgos_kjAI : public ScriptedAI
@@ -250,11 +250,11 @@ public:
uint8 OrbsEmpowered;
uint8 EmpowerCount;
- void Reset()
+ void Reset() OVERRIDE
{
OrbsEmpowered = 0;
EmpowerCount = 0;
- me->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT | MOVEMENTFLAG_DISABLE_GRAVITY);
+ me->SetDisableGravity(true);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->setActive(true);
@@ -335,7 +335,7 @@ public:
}
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
}
@@ -363,7 +363,7 @@ class go_orb_of_the_blue_flight : public GameObjectScript
public:
go_orb_of_the_blue_flight() : GameObjectScript("go_orb_of_the_blue_flight") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
if (go->GetUInt32Value(GAMEOBJECT_FACTION) == 35)
{
@@ -382,19 +382,19 @@ public:
};
//AI for Kil'jaeden Event Controller
-class mob_kiljaeden_controller : public CreatureScript
+class npc_kiljaeden_controller : public CreatureScript
{
public:
- mob_kiljaeden_controller() : CreatureScript("mob_kiljaeden_controller") { }
+ npc_kiljaeden_controller() : CreatureScript("npc_kiljaeden_controller") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_kiljaeden_controllerAI (creature);
+ return new npc_kiljaeden_controllerAI(creature);
}
- struct mob_kiljaeden_controllerAI : public ScriptedAI
+ struct npc_kiljaeden_controllerAI : public ScriptedAI
{
- mob_kiljaeden_controllerAI(Creature* creature) : ScriptedAI(creature), summons(me)
+ npc_kiljaeden_controllerAI(Creature* creature) : ScriptedAI(creature), summons(me)
{
instance = creature->GetInstanceScript();
@@ -411,7 +411,7 @@ public:
uint32 phase;
uint8 deceiverDeathCount;
- void InitializeAI()
+ void InitializeAI() OVERRIDE
{
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
@@ -420,7 +420,7 @@ public:
ScriptedAI::InitializeAI();
}
- void Reset()
+ void Reset() OVERRIDE
{
phase = PHASE_DECEIVERS;
@@ -434,7 +434,7 @@ public:
summons.DespawnAll();
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
switch (summoned->GetEntry())
{
@@ -442,19 +442,19 @@ public:
summoned->CastSpell(summoned, SPELL_SHADOW_CHANNELING, false);
break;
case CREATURE_ANVEENA:
- summoned->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT | MOVEMENTFLAG_DISABLE_GRAVITY);
+ summoned->SetDisableGravity(true);
summoned->CastSpell(summoned, SPELL_ANVEENA_PRISON, true);
summoned->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
break;
case CREATURE_KILJAEDEN:
summoned->CastSpell(summoned, SPELL_REBIRTH, false);
- summoned->AddThreat(me->getVictim(), 1.0f);
+ summoned->AddThreat(me->GetVictim(), 1.0f);
break;
}
summons.Summon(summoned);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (uiRandomSayTimer < diff)
{
@@ -489,9 +489,9 @@ class boss_kiljaeden : public CreatureScript
public:
boss_kiljaeden() : CreatureScript("boss_kiljaeden") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_kiljaedenAI (creature);
+ return new boss_kiljaedenAI(creature);
}
struct boss_kiljaedenAI : public ScriptedAI
@@ -522,12 +522,12 @@ public:
bool OrbActivated;
bool SpeechBegins;
- void InitializeAI()
+ void InitializeAI() OVERRIDE
{
// Scripted_NoMovementAI::InitializeAI();
}
- void Reset()
+ void Reset() OVERRIDE
{
TimerIsDeactivated[TIMER_SPEECH] = false;
Timer[TIMER_SPEECH] = 0;
@@ -588,7 +588,7 @@ public:
TimerIsDeactivated[TIMER_SUMMON_SHILEDORB] = true;
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
if (summoned->GetEntry() == CREATURE_ARMAGEDDON_TARGET)
{
@@ -603,7 +603,7 @@ public:
summons.Summon(summoned);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_KJ_DEATH);
summons.DespawnAll();
@@ -612,12 +612,12 @@ public:
instance->SetData(DATA_KILJAEDEN_EVENT, DONE);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_KJ_SLAY);
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
ScriptedAI::EnterEvadeMode();
@@ -627,11 +627,11 @@ public:
if (instance)
{
if (Creature* pControl = Unit::GetCreature(*me, instance->GetData64(DATA_KILJAEDEN_CONTROLLER)))
- CAST_AI(mob_kiljaeden_controller::mob_kiljaeden_controllerAI, pControl->AI())->Reset();
+ CAST_AI(npc_kiljaeden_controller::npc_kiljaeden_controllerAI, pControl->AI())->Reset();
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
DoZoneInCombat();
}
@@ -666,7 +666,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim() || Phase < PHASE_NORMAL)
return;
@@ -710,12 +710,14 @@ public:
{
SpeechTimer = 0;
if (instance)
+ {
if (Creature* speechCreature = Unit::GetCreature(*me, instance->GetData64(Speeches[speechCount].creature)))
speechCreature->AI()->Talk(Speeches[speechCount].textid);
- if (speechCount == 12)
- if (Creature* pAnveena = Unit::GetCreature(*me, instance->GetData64(DATA_ANVEENA)))
- pAnveena->CastSpell(me, SPELL_SACRIFICE_OF_ANVEENA, false);
- // ChangeTimers(true, 10000); // Kil should do an emote while screaming without attacking for 10 seconds
+ if (speechCount == 12)
+ if (Creature* pAnveena = Unit::GetCreature(*me, instance->GetData64(DATA_ANVEENA)))
+ pAnveena->CastSpell(me, SPELL_SACRIFICE_OF_ANVEENA, false);
+ // ChangeTimers(true, 10000); // Kil should do an emote while screaming without attacking for 10 seconds
+ }
if (speechCount == speechPhaseEnd)
TimerIsDeactivated[TIMER_SPEECH]=true;
speechCount++;
@@ -725,8 +727,8 @@ public:
case TIMER_SOUL_FLAY:
if (!me->IsNonMeleeSpellCasted(false))
{
- DoCast(me->getVictim(), SPELL_SOUL_FLAY_SLOW, false);
- DoCast(me->getVictim(), SPELL_SOUL_FLAY, false);
+ DoCastVictim(SPELL_SOUL_FLAY_SLOW, false);
+ DoCastVictim(SPELL_SOUL_FLAY, false);
Timer[TIMER_SOUL_FLAY] = 3500;
}
break;
@@ -894,19 +896,19 @@ public:
};
//AI for Hand of the Deceiver
-class mob_hand_of_the_deceiver : public CreatureScript
+class npc_hand_of_the_deceiver : public CreatureScript
{
public:
- mob_hand_of_the_deceiver() : CreatureScript("mob_hand_of_the_deceiver") { }
+ npc_hand_of_the_deceiver() : CreatureScript("npc_hand_of_the_deceiver") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_hand_of_the_deceiverAI (creature);
+ return new npc_hand_of_the_deceiverAI(creature);
}
- struct mob_hand_of_the_deceiverAI : public ScriptedAI
+ struct npc_hand_of_the_deceiverAI : public ScriptedAI
{
- mob_hand_of_the_deceiverAI(Creature* creature) : ScriptedAI(creature)
+ npc_hand_of_the_deceiverAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -916,7 +918,7 @@ public:
uint32 ShadowBoltVolleyTimer;
uint32 FelfirePortalTimer;
- void Reset()
+ void Reset() OVERRIDE
{
/// @todo Timers!
ShadowBoltVolleyTimer = urand(8000, 14000); // So they don't all cast it in the same moment.
@@ -925,13 +927,13 @@ public:
instance->SetData(DATA_KILJAEDEN_EVENT, NOT_STARTED);
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
summoned->setFaction(me->getFaction());
summoned->SetLevel(me->getLevel());
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (instance)
{
@@ -942,18 +944,18 @@ public:
me->InterruptNonMeleeSpells(true);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (!instance)
return;
if (Creature* pControl = Unit::GetCreature(*me, instance->GetData64(DATA_KILJAEDEN_CONTROLLER)))
- ++(CAST_AI(mob_kiljaeden_controller::mob_kiljaeden_controllerAI, pControl->AI())->deceiverDeathCount);
+ ++(CAST_AI(npc_kiljaeden_controller::npc_kiljaeden_controllerAI, pControl->AI())->deceiverDeathCount);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
- if (!me->isInCombat())
+ if (!me->IsInCombat())
DoCast(me, SPELL_SHADOW_CHANNELING);
if (!UpdateVictim())
@@ -966,7 +968,7 @@ public:
// Shadow Bolt Volley - Shoots Shadow Bolts at all enemies within 30 yards, for ~2k Shadow damage.
if (ShadowBoltVolleyTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_SHADOW_BOLT_VOLLEY);
+ DoCastVictim(SPELL_SHADOW_BOLT_VOLLEY);
ShadowBoltVolleyTimer = 12000;
}
else
@@ -994,38 +996,38 @@ public:
};
//AI for Felfire Portal
-class mob_felfire_portal : public CreatureScript
+class npc_felfire_portal : public CreatureScript
{
public:
- mob_felfire_portal() : CreatureScript("mob_felfire_portal") { }
+ npc_felfire_portal() : CreatureScript("npc_felfire_portal") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_felfire_portalAI (creature);
+ return new npc_felfire_portalAI(creature);
}
- struct mob_felfire_portalAI : public ScriptedAI
+ struct npc_felfire_portalAI : public ScriptedAI
{
- mob_felfire_portalAI(Creature* creature) : ScriptedAI(creature)
+ npc_felfire_portalAI(Creature* creature) : ScriptedAI(creature)
{
SetCombatMovement(false);
}
uint32 uiSpawnFiendTimer;
- void Reset()
+ void Reset() OVERRIDE
{
uiSpawnFiendTimer = 5000;
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE|UNIT_FLAG_NON_ATTACKABLE);
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
summoned->setFaction(me->getFaction());
summoned->SetLevel(me->getLevel());
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -1041,44 +1043,44 @@ public:
};
//AI for Felfire Fiend
-class mob_volatile_felfire_fiend : public CreatureScript
+class npc_volatile_felfire_fiend : public CreatureScript
{
public:
- mob_volatile_felfire_fiend() : CreatureScript("mob_volatile_felfire_fiend") { }
+ npc_volatile_felfire_fiend() : CreatureScript("npc_volatile_felfire_fiend") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_volatile_felfire_fiendAI (creature);
+ return new npc_volatile_felfire_fiendAI(creature);
}
- struct mob_volatile_felfire_fiendAI : public ScriptedAI
+ struct npc_volatile_felfire_fiendAI : public ScriptedAI
{
- mob_volatile_felfire_fiendAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_volatile_felfire_fiendAI(Creature* creature) : ScriptedAI(creature) {}
uint32 uiExplodeTimer;
bool bLockedTarget;
- void Reset()
+ void Reset() OVERRIDE
{
uiExplodeTimer = 2000;
bLockedTarget = false;
}
- void DamageTaken(Unit* /*done_by*/, uint32 &damage)
+ void DamageTaken(Unit* /*done_by*/, uint32 &damage) OVERRIDE
{
if (damage > me->GetHealth())
DoCast(me, SPELL_FELFIRE_FISSION, true);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
if (!bLockedTarget)
{
- me->AddThreat(me->getVictim(), 10000000.0f);
+ me->AddThreat(me->GetVictim(), 10000000.0f);
bLockedTarget = true;
}
@@ -1088,9 +1090,9 @@ public:
uiExplodeTimer = 0;
else uiExplodeTimer -= diff;
}
- else if (me->IsWithinDistInMap(me->getVictim(), 3)) // Explode if it's close enough to it's target
+ else if (me->IsWithinDistInMap(me->GetVictim(), 3)) // Explode if it's close enough to it's target
{
- DoCast(me->getVictim(), SPELL_FELFIRE_FISSION);
+ DoCastVictim(SPELL_FELFIRE_FISSION);
me->Kill(me);
}
}
@@ -1098,19 +1100,19 @@ public:
};
//AI for Armageddon target
-class mob_armageddon : public CreatureScript
+class npc_armageddon : public CreatureScript
{
public:
- mob_armageddon() : CreatureScript("mob_armageddon") { }
+ npc_armageddon() : CreatureScript("npc_armageddon") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_armageddonAI (creature);
+ return new npc_armageddonAI(creature);
}
- struct mob_armageddonAI : public ScriptedAI
+ struct npc_armageddonAI : public ScriptedAI
{
- mob_armageddonAI(Creature* creature) : ScriptedAI(creature)
+ npc_armageddonAI(Creature* creature) : ScriptedAI(creature)
{
SetCombatMovement(false);
}
@@ -1118,13 +1120,13 @@ public:
uint8 spell;
uint32 uiTimer;
- void Reset()
+ void Reset() OVERRIDE
{
spell = 0;
uiTimer = 0;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (uiTimer <= diff)
{
@@ -1155,19 +1157,19 @@ public:
};
//AI for Shield Orbs
-class mob_shield_orb : public CreatureScript
+class npc_shield_orb : public CreatureScript
{
public:
- mob_shield_orb() : CreatureScript("mob_shield_orb") { }
+ npc_shield_orb() : CreatureScript("npc_shield_orb") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_shield_orbAI (creature);
+ return new npc_shield_orbAI(creature);
}
- struct mob_shield_orbAI : public ScriptedAI
+ struct npc_shield_orbAI : public ScriptedAI
{
- mob_shield_orbAI(Creature* creature) : ScriptedAI(creature)
+ npc_shield_orbAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -1180,7 +1182,7 @@ public:
uint32 uiCheckTimer;
float x, y, r, c, mx, my;
- void Reset()
+ void Reset() OVERRIDE
{
me->SetDisableGravity(true);
bPointReached = true;
@@ -1193,7 +1195,7 @@ public:
bClockwise = urand(0, 1);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (bPointReached)
{
@@ -1231,7 +1233,7 @@ public:
} else uiTimer -= diff;
}
- void MovementInform(uint32 type, uint32 /*id*/)
+ void MovementInform(uint32 type, uint32 /*id*/) OVERRIDE
{
if (type != POINT_MOTION_TYPE)
return;
@@ -1242,24 +1244,24 @@ public:
};
//AI for Sinister Reflection
-class mob_sinster_reflection : public CreatureScript
+class npc_sinster_reflection : public CreatureScript
{
public:
- mob_sinster_reflection() : CreatureScript("mob_sinster_reflection") { }
+ npc_sinster_reflection() : CreatureScript("npc_sinster_reflection") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_sinster_reflectionAI (creature);
+ return new npc_sinster_reflectionAI(creature);
}
- struct mob_sinster_reflectionAI : public ScriptedAI
+ struct npc_sinster_reflectionAI : public ScriptedAI
{
- mob_sinster_reflectionAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_sinster_reflectionAI(Creature* creature) : ScriptedAI(creature) {}
uint8 victimClass;
uint32 uiTimer[3];
- void Reset()
+ void Reset() OVERRIDE
{
uiTimer[0] = 0;
uiTimer[1] = 0;
@@ -1267,14 +1269,14 @@ public:
victimClass = 0;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
- if ((victimClass == 0) && me->getVictim())
+ if ((victimClass == 0) && me->GetVictim())
{
- victimClass = me->getVictim()->getClass();
+ victimClass = me->GetVictim()->getClass();
switch (victimClass)
{
case CLASS_DRUID:
@@ -1306,7 +1308,7 @@ public:
case CLASS_DRUID:
if (uiTimer[1] <= diff)
{
- DoCast(me->getVictim(), SPELL_SR_MOONFIRE, false);
+ DoCastVictim(SPELL_SR_MOONFIRE, false);
uiTimer[1] = urand(2000, 4000);
}
DoMeleeAttackIfReady();
@@ -1314,19 +1316,19 @@ public:
case CLASS_HUNTER:
if (uiTimer[1] <= diff)
{
- DoCast(me->getVictim(), SPELL_SR_MULTI_SHOT, false);
+ DoCastVictim(SPELL_SR_MULTI_SHOT, false);
uiTimer[1] = urand(8000, 10000);
}
if (uiTimer[2] <= diff)
{
- DoCast(me->getVictim(), SPELL_SR_SHOOT, false);
+ DoCastVictim(SPELL_SR_SHOOT, false);
uiTimer[2] = urand(4000, 6000);
}
- if (me->IsWithinMeleeRange(me->getVictim(), 6))
+ if (me->IsWithinMeleeRange(me->GetVictim(), 6))
{
if (uiTimer[0] <= diff)
{
- DoCast(me->getVictim(), SPELL_SR_MULTI_SHOT, false);
+ DoCastVictim(SPELL_SR_MULTI_SHOT, false);
uiTimer[0] = urand(6000, 8000);
}
DoMeleeAttackIfReady();
@@ -1335,7 +1337,7 @@ public:
case CLASS_MAGE:
if (uiTimer[1] <= diff)
{
- DoCast(me->getVictim(), SPELL_SR_FIREBALL, false);
+ DoCastVictim(SPELL_SR_FIREBALL, false);
uiTimer[1] = urand(2000, 4000);
}
DoMeleeAttackIfReady();
@@ -1343,7 +1345,7 @@ public:
case CLASS_WARLOCK:
if (uiTimer[1] <= diff)
{
- DoCast(me->getVictim(), SPELL_SR_SHADOW_BOLT, false);
+ DoCastVictim(SPELL_SR_SHADOW_BOLT, false);
uiTimer[1] = urand(3000, 5000);
}
if (uiTimer[2] <= diff)
@@ -1356,7 +1358,7 @@ public:
case CLASS_WARRIOR:
if (uiTimer[1] <= diff)
{
- DoCast(me->getVictim(), SPELL_SR_WHIRLWIND, false);
+ DoCastVictim(SPELL_SR_WHIRLWIND, false);
uiTimer[1] = urand(9000, 11000);
}
DoMeleeAttackIfReady();
@@ -1364,12 +1366,12 @@ public:
case CLASS_PALADIN:
if (uiTimer[1] <= diff)
{
- DoCast(me->getVictim(), SPELL_SR_HAMMER_OF_JUSTICE, false);
+ DoCastVictim(SPELL_SR_HAMMER_OF_JUSTICE, false);
uiTimer[1] = urand(6000, 8000);
}
if (uiTimer[2] <= diff)
{
- DoCast(me->getVictim(), SPELL_SR_HOLY_SHOCK, false);
+ DoCastVictim(SPELL_SR_HOLY_SHOCK, false);
uiTimer[2] = urand(2000, 4000);
}
DoMeleeAttackIfReady();
@@ -1377,7 +1379,7 @@ public:
case CLASS_PRIEST:
if (uiTimer[1] <= diff)
{
- DoCast(me->getVictim(), SPELL_SR_HOLY_SMITE, false);
+ DoCastVictim(SPELL_SR_HOLY_SMITE, false);
uiTimer[1] = urand(4000, 6000);
}
if (uiTimer[2] <= diff)
@@ -1390,7 +1392,7 @@ public:
case CLASS_SHAMAN:
if (uiTimer[1] <= diff)
{
- DoCast(me->getVictim(), SPELL_SR_EARTH_SHOCK, false);
+ DoCastVictim(SPELL_SR_EARTH_SHOCK, false);
uiTimer[1] = urand(4000, 6000);
}
DoMeleeAttackIfReady();
@@ -1398,7 +1400,7 @@ public:
case CLASS_ROGUE:
if (uiTimer[1] <= diff)
{
- DoCast(me->getVictim(), SPELL_SR_HEMORRHAGE, true);
+ DoCastVictim(SPELL_SR_HEMORRHAGE, true);
uiTimer[1] = urand(4000, 6000);
}
DoMeleeAttackIfReady();
@@ -1416,11 +1418,11 @@ void AddSC_boss_kiljaeden()
new go_orb_of_the_blue_flight();
new boss_kalecgos_kj();
new boss_kiljaeden();
- new mob_kiljaeden_controller();
- new mob_hand_of_the_deceiver();
- new mob_felfire_portal();
- new mob_volatile_felfire_fiend();
- new mob_armageddon();
- new mob_shield_orb();
- new mob_sinster_reflection();
+ new npc_kiljaeden_controller();
+ new npc_hand_of_the_deceiver();
+ new npc_felfire_portal();
+ new npc_volatile_felfire_fiend();
+ new npc_armageddon();
+ new npc_shield_orb();
+ new npc_sinster_reflection();
}
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp
index aa4acc24bfd..aa53790ee5f 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp
@@ -109,9 +109,9 @@ class boss_entropius : public CreatureScript
public:
boss_entropius() : CreatureScript("boss_entropius") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_entropiusAI (creature);
+ return new boss_entropiusAI(creature);
}
struct boss_entropiusAI : public ScriptedAI
@@ -126,7 +126,7 @@ public:
uint32 BlackHoleSummonTimer;
- void Reset()
+ void Reset() OVERRIDE
{
BlackHoleSummonTimer = 15000;
DoCastAOE(SPELL_NEGATIVE_ENERGY_E, false);
@@ -137,7 +137,7 @@ public:
instance->SetData(DATA_MURU_EVENT, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
DoCastAOE(SPELL_NEGATIVE_ENERGY_E, true);
DoCast(me, SPELL_ENTROPIUS_SPAWN, false);
@@ -146,7 +146,7 @@ public:
instance->SetData(DATA_MURU_EVENT, IN_PROGRESS);
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
switch (summoned->GetEntry())
{
@@ -164,7 +164,7 @@ public:
Summons.Summon(summoned);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Summons.DespawnAll();
@@ -172,7 +172,7 @@ public:
instance->SetData(DATA_MURU_EVENT, DONE);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -208,9 +208,9 @@ class boss_muru : public CreatureScript
public:
boss_muru() : CreatureScript("boss_muru") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_muruAI (creature);
+ return new boss_muruAI(creature);
}
struct boss_muruAI : public ScriptedAI
@@ -229,7 +229,7 @@ public:
bool DarkFiend;
- void Reset()
+ void Reset() OVERRIDE
{
DarkFiend = false;
Phase = 1;
@@ -249,7 +249,7 @@ public:
instance->SetData(DATA_MURU_EVENT, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
DoCastAOE(SPELL_NEGATIVE_ENERGY, false);
@@ -257,7 +257,7 @@ public:
instance->SetData(DATA_MURU_EVENT, IN_PROGRESS);
}
- void DamageTaken(Unit* /*done_by*/, uint32 &damage)
+ void DamageTaken(Unit* /*done_by*/, uint32 &damage) OVERRIDE
{
if (damage > me->GetHealth() && Phase == 1)
{
@@ -271,7 +271,7 @@ public:
damage = 0;
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
switch (summoned->GetEntry())
{
@@ -286,7 +286,7 @@ public:
Summons.Summon(summoned);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -373,9 +373,9 @@ class npc_muru_portal : public CreatureScript
public:
npc_muru_portal() : CreatureScript("npc_muru_portal") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_muru_portalAI (creature);
+ return new npc_muru_portalAI(creature);
}
struct npc_muru_portalAI : public ScriptedAI
@@ -395,7 +395,7 @@ public:
uint32 SummonTimer;
- void Reset()
+ void Reset() OVERRIDE
{
SummonTimer = 5000;
@@ -407,7 +407,7 @@ public:
Summons.DespawnAll();
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
if (instance)
if (Player* Target = Unit::GetPlayer(*me, instance->GetData64(DATA_PLAYER_GUID)))
@@ -416,7 +416,7 @@ public:
Summons.Summon(summoned);
}
- void SpellHit(Unit* /*caster*/, const SpellInfo* Spell)
+ void SpellHit(Unit* /*caster*/, const SpellInfo* Spell) OVERRIDE
{
float x, y, z, o;
me->GetHomePosition(x, y, z, o);
@@ -434,7 +434,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!SummonSentinel)
{
@@ -457,9 +457,9 @@ class npc_dark_fiend : public CreatureScript
public:
npc_dark_fiend() : CreatureScript("npc_dark_fiend") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_dark_fiendAI (creature);
+ return new npc_dark_fiendAI(creature);
}
struct npc_dark_fiendAI : public ScriptedAI
@@ -469,7 +469,7 @@ public:
uint32 WaitTimer;
bool InAction;
- void Reset()
+ void Reset() OVERRIDE
{
WaitTimer = 2000;
InAction = false;
@@ -477,14 +477,14 @@ public:
me->AddUnitState(UNIT_STATE_STUNNED);
}
- void SpellHit(Unit* /*caster*/, const SpellInfo* Spell)
+ void SpellHit(Unit* /*caster*/, const SpellInfo* Spell) OVERRIDE
{
for (uint8 i = 0; i < 3; ++i)
if (Spell->Effects[i].Effect == 38)
me->DisappearAndDie();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -501,7 +501,7 @@ public:
}
else
{
- if (me->IsWithinDist(me->getVictim(), 5))
+ if (me->IsWithinDist(me->GetVictim(), 5))
{
DoCastAOE(SPELL_DARKFIEND_AOE, false);
me->DisappearAndDie();
@@ -518,9 +518,9 @@ class npc_void_sentinel : public CreatureScript
public:
npc_void_sentinel() : CreatureScript("npc_void_sentinel") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_void_sentinelAI (creature);
+ return new npc_void_sentinelAI(creature);
}
struct npc_void_sentinelAI : public ScriptedAI
@@ -530,7 +530,7 @@ public:
uint32 PulseTimer;
uint32 VoidBlastTimer;
- void Reset()
+ void Reset() OVERRIDE
{
PulseTimer = 3000;
VoidBlastTimer = 45000; //is this a correct timer?
@@ -540,13 +540,13 @@ public:
DoTeleportTo(x, y, 71);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
for (uint8 i = 0; i < 8; ++i)
me->SummonCreature(CREATURE_VOID_SPAWN, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), float(rand()%6), TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 180000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -559,7 +559,7 @@ public:
if (VoidBlastTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_VOID_BLAST, false);
+ DoCastVictim(SPELL_VOID_BLAST, false);
VoidBlastTimer = 45000;
} else VoidBlastTimer -= diff;
@@ -573,9 +573,9 @@ class npc_blackhole : public CreatureScript
public:
npc_blackhole() : CreatureScript("npc_blackhole") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_blackholeAI (creature);
+ return new npc_blackholeAI(creature);
}
struct npc_blackholeAI : public ScriptedAI
@@ -592,7 +592,7 @@ public:
uint8 Phase;
uint8 NeedForAHack;
- void Reset()
+ void Reset() OVERRIDE
{
DespawnTimer = 15000;
SpellTimer = 5000;
@@ -602,7 +602,7 @@ public:
DoCastAOE(SPELL_BLACKHOLE_SPAWN, true);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (SpellTimer <= diff)
{
@@ -630,7 +630,7 @@ public:
case 3:
SpellTimer = urand(400, 900);
NeedForAHack = 1;
- if (Unit* Temp = me->getVictim())
+ if (Unit* Temp = me->GetVictim())
{
if (Temp->GetPositionZ() > 73 && Victim)
AttackStart(Victim);
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp
index cc3f48b72df..ac5adde9e73 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp
@@ -44,7 +44,7 @@ class instance_sunwell_plateau : public InstanceMapScript
public:
instance_sunwell_plateau() : InstanceMapScript("instance_sunwell_plateau", 580) { }
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_sunwell_plateau_InstanceMapScript(map);
}
@@ -130,7 +130,7 @@ public:
{
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
{
- Player* player = itr->getSource();
+ Player* player = itr->GetSource();
if (player && !player->HasAura(45839, 0))
return player;
}
@@ -182,7 +182,7 @@ public:
}
}
- uint32 GetData(uint32 id) const
+ uint32 GetData(uint32 id) const OVERRIDE
{
switch (id)
{
@@ -196,7 +196,7 @@ public:
return 0;
}
- uint64 GetData64(uint32 id) const
+ uint64 GetData64(uint32 id) const OVERRIDE
{
switch (id)
{
@@ -221,7 +221,7 @@ public:
return 0;
}
- void SetData(uint32 id, uint32 data)
+ void SetData(uint32 id, uint32 data) OVERRIDE
{
switch (id)
{
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/sunwell_plateau.h b/src/server/scripts/EasternKingdoms/SunwellPlateau/sunwell_plateau.h
index 2efffc816c0..343720dbdb1 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/sunwell_plateau.h
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/sunwell_plateau.h
@@ -62,20 +62,20 @@ enum Creatures
{
BOSS_MURU = 25741,
BOSS_ENTROPIUS = 25840,
- MOB_KALECGOS = 24850,
- MOB_KALEC = 24891,
- MOB_SATHROVARR = 24892,
+ NPC_KALECGOS = 24850,
+ NPC_KALEC = 24891,
+ NPC_SATHROVARR = 24892,
- MOB_DEAD = 25268,
- MOB_FLIGHT_LEFT = 25357,
- MOB_FLIGHT_RIGHT = 25358,
- MOB_DEATH_CLOUD = 25703,
- MOB_VAPOR = 25265,
- MOB_VAPOR_TRAIL = 25267,
+ NPC_DEAD = 25268,
+ NPC_FLIGHT_LEFT = 25357,
+ NPC_FLIGHT_RIGHT = 25358,
+ NPC_DEATH_CLOUD = 25703,
+ NPC_VAPOR = 25265,
+ NPC_VAPOR_TRAIL = 25267,
- MOB_GRAND_WARLOCK_ALYTHESS = 25166,
- MOB_SHADOW_IMAGE = 25214,
- MOB_LADY_SACROLASH = 25165,
+ NPC_GRAND_WARLOCK_ALYTHESS = 25166,
+ NPC_SHADOW_IMAGE = 25214,
+ NPC_LADY_SACROLASH = 25165,
CREATURE_ANVEENA = 26046, // Embodiment of the Sunwell
CREATURE_KALECGOS = 25319, // Helps the raid throughout the fight
diff --git a/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp b/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp
index ec9409af69f..69ee53f0762 100644
--- a/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp
+++ b/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp
@@ -76,7 +76,7 @@ class boss_archaedas : public CreatureScript
bool bVaultWalkersAwake;
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
uiTremorTimer = 60000;
iAwakenTimer = 0;
@@ -97,7 +97,7 @@ class boss_archaedas : public CreatureScript
{
Unit* minion = Unit::GetUnit(*me, uiGuid);
- if (minion && minion->isAlive())
+ if (minion && minion->IsAlive())
{
DoCast(minion, SPELL_AWAKEN_VAULT_WALKER, flag);
minion->CastSpell(minion, SPELL_ARCHAEDAS_AWAKEN, true);
@@ -107,14 +107,14 @@ class boss_archaedas : public CreatureScript
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
me->setFaction(14);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
}
- void SpellHit(Unit* /*caster*/, const SpellInfo* spell)
+ void SpellHit(Unit* /*caster*/, const SpellInfo* spell) OVERRIDE
{
// Being woken up from the altar, start the awaken sequence
if (spell == sSpellMgr->GetSpellInfo(SPELL_ARCHAEDAS_AWAKEN))
@@ -125,12 +125,12 @@ class boss_archaedas : public CreatureScript
}
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_KILL);
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (!instance)
return;
@@ -185,7 +185,7 @@ class boss_archaedas : public CreatureScript
if (uiTremorTimer <= uiDiff)
{
//Cast
- DoCast(me->getVictim(), SPELL_GROUND_TREMOR);
+ DoCastVictim(SPELL_GROUND_TREMOR);
//45 seconds until we should cast this agian
uiTremorTimer = 45000;
@@ -204,31 +204,31 @@ class boss_archaedas : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_archaedasAI(creature);
}
};
/* ScriptData
-SDName: mob_archaedas_minions
+SDName: npc_archaedas_minions
SD%Complete: 100
SDComment: These mobs are initially frozen until Archaedas awakens them
one at a time.
EndScriptData */
-class mob_archaedas_minions : public CreatureScript
+class npc_archaedas_minions : public CreatureScript
{
public:
- mob_archaedas_minions()
- : CreatureScript("mob_archaedas_minions")
+ npc_archaedas_minions()
+ : CreatureScript("npc_archaedas_minions")
{
}
- struct mob_archaedas_minionsAI : public ScriptedAI
+ struct npc_archaedas_minionsAI : public ScriptedAI
{
- mob_archaedas_minionsAI(Creature* creature) : ScriptedAI(creature)
+ npc_archaedas_minionsAI(Creature* creature) : ScriptedAI(creature)
{
instance = me->GetInstanceScript();
}
@@ -240,7 +240,7 @@ class mob_archaedas_minions : public CreatureScript
bool bAmIAwake;
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
uiArcing_Timer = 3000;
iAwakenTimer = 0;
@@ -254,7 +254,7 @@ class mob_archaedas_minions : public CreatureScript
me->RemoveAllAuras();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
me->setFaction (14);
me->RemoveAllAuras();
@@ -263,7 +263,8 @@ class mob_archaedas_minions : public CreatureScript
bAmIAwake = true;
}
- void SpellHit (Unit* /*caster*/, const SpellInfo* spell) {
+ void SpellHit(Unit * /*caster*/, const SpellInfo* spell) OVERRIDE
+ {
// time to wake up, start animation
if (spell == sSpellMgr->GetSpellInfo(SPELL_ARCHAEDAS_AWAKEN))
{
@@ -272,13 +273,14 @@ class mob_archaedas_minions : public CreatureScript
}
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (bAmIAwake)
ScriptedAI::MoveInLineOfSight(who);
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
// we're still in the awaken animation
if (bWakingUp && iAwakenTimer >= 0)
@@ -301,38 +303,38 @@ class mob_archaedas_minions : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_archaedas_minionsAI(creature);
+ return new npc_archaedas_minionsAI(creature);
}
};
/* ScriptData
-SDName: mob_stonekeepers
+SDName: npc_stonekeepers
SD%Complete: 100
SDComment: After activating the altar of the keepers, the stone keepers will
wake up one by one.
EndScriptData */
-class mob_stonekeepers : public CreatureScript
+class npc_stonekeepers : public CreatureScript
{
public:
- mob_stonekeepers()
- : CreatureScript("mob_stonekeepers")
+ npc_stonekeepers()
+ : CreatureScript("npc_stonekeepers")
{
}
- struct mob_stonekeepersAI : public ScriptedAI
+ struct npc_stonekeepersAI : public ScriptedAI
{
- mob_stonekeepersAI(Creature* creature) : ScriptedAI(creature)
+ npc_stonekeepersAI(Creature* creature) : ScriptedAI(creature)
{
instance = me->GetInstanceScript();
}
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
me->setFaction(35);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
@@ -340,14 +342,14 @@ class mob_stonekeepers : public CreatureScript
me->RemoveAllAuras();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
me->setFaction(14);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -356,7 +358,7 @@ class mob_stonekeepers : public CreatureScript
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*attacker*/)
+ void JustDied(Unit* /*attacker*/) OVERRIDE
{
DoCast (me, SPELL_SELF_DESTRUCT, true);
if (instance)
@@ -364,9 +366,9 @@ class mob_stonekeepers : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_stonekeepersAI(creature);
+ return new npc_stonekeepersAI(creature);
}
};
@@ -386,7 +388,7 @@ class go_altar_of_archaedas : public GameObjectScript
{
}
- bool OnGossipHello(Player* player, GameObject* /*go*/)
+ bool OnGossipHello(Player* player, GameObject* /*go*/) OVERRIDE
{
InstanceScript* instance = player->GetInstanceScript();
if (!instance)
@@ -404,8 +406,8 @@ class go_altar_of_archaedas : public GameObjectScript
void AddSC_boss_archaedas()
{
new boss_archaedas();
- new mob_archaedas_minions();
- new mob_stonekeepers();
+ new npc_archaedas_minions();
+ new npc_stonekeepers();
new go_altar_of_archaedas();
}
diff --git a/src/server/scripts/EasternKingdoms/Uldaman/boss_ironaya.cpp b/src/server/scripts/EasternKingdoms/Uldaman/boss_ironaya.cpp
index f40570d4130..1a41becfad5 100644
--- a/src/server/scripts/EasternKingdoms/Uldaman/boss_ironaya.cpp
+++ b/src/server/scripts/EasternKingdoms/Uldaman/boss_ironaya.cpp
@@ -51,19 +51,19 @@ class boss_ironaya : public CreatureScript
bool bHasCastedWstomp;
bool bHasCastedKnockaway;
- void Reset()
+ void Reset() OVERRIDE
{
uiArcingTimer = 3000;
bHasCastedKnockaway = false;
bHasCastedWstomp = false;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -72,12 +72,12 @@ class boss_ironaya : public CreatureScript
//If we are <50% hp do knockaway ONCE
if (!bHasCastedKnockaway && HealthBelowPct(50))
{
- DoCast(me->getVictim(), SPELL_KNOCKAWAY, true);
+ DoCastVictim(SPELL_KNOCKAWAY, true);
// current aggro target is knocked away pick new target
Unit* target = SelectTarget(SELECT_TARGET_TOPAGGRO, 0);
- if (!target || target == me->getVictim())
+ if (!target || target == me->GetVictim())
target = SelectTarget(SELECT_TARGET_TOPAGGRO, 1);
if (target)
@@ -104,7 +104,7 @@ class boss_ironaya : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_ironayaAI(creature);
}
diff --git a/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp b/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp
index df87eaca5a8..7da755b5313 100644
--- a/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp
+++ b/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp
@@ -27,7 +27,7 @@ EndScriptData */
#include "InstanceScript.h"
#include "uldaman.h"
-enum eSpells
+enum Spells
{
SPELL_ARCHAEDAS_AWAKEN = 10347,
SPELL_AWAKEN_VAULT_WALKER = 10258,
@@ -179,7 +179,7 @@ class instance_uldaman : public InstanceMapScript
for (std::vector<uint64>::const_iterator i = stoneKeepers.begin(); i != stoneKeepers.end(); ++i)
{
Creature* target = instance->GetCreature(*i);
- if (!target || !target->isAlive())
+ if (!target || !target->IsAlive())
continue;
target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
target->setFaction(14);
@@ -201,7 +201,7 @@ class instance_uldaman : public InstanceMapScript
for (std::vector<uint64>::const_iterator i = archaedasWallMinions.begin(); i != archaedasWallMinions.end(); ++i)
{
Creature* target = instance->GetCreature(*i);
- if (!target || !target->isAlive() || target->getFaction() == 14)
+ if (!target || !target->IsAlive() || target->getFaction() == 14)
continue;
archaedas->CastSpell(target, SPELL_AWAKEN_VAULT_WALKER, true);
target->CastSpell(target, SPELL_ARCHAEDAS_AWAKEN, true);
@@ -327,7 +327,7 @@ class instance_uldaman : public InstanceMapScript
ironayaSealDoorTimer -= diff;
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
switch (type)
{
@@ -393,7 +393,7 @@ class instance_uldaman : public InstanceMapScript
}
}
- void SetData64(uint32 type, uint64 data)
+ void SetData64(uint32 type, uint64 data) OVERRIDE
{
// Archaedas
if (type == 0)
@@ -469,7 +469,7 @@ class instance_uldaman : public InstanceMapScript
}
}
- uint64 GetData64(uint32 identifier) const
+ uint64 GetData64(uint32 identifier) const OVERRIDE
{
switch (identifier)
{
@@ -507,7 +507,7 @@ class instance_uldaman : public InstanceMapScript
}
};
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_uldaman_InstanceMapScript(map);
}
diff --git a/src/server/scripts/EasternKingdoms/Uldaman/uldaman.cpp b/src/server/scripts/EasternKingdoms/Uldaman/uldaman.cpp
index 9fdc2f26d9f..4dcb6af2392 100644
--- a/src/server/scripts/EasternKingdoms/Uldaman/uldaman.cpp
+++ b/src/server/scripts/EasternKingdoms/Uldaman/uldaman.cpp
@@ -24,8 +24,7 @@ SDCategory: Uldaman
EndScriptData */
/* ContentData
-mob_jadespine_basilisk
-npc_lore_keeper_of_norgannon
+npc_jadespine_basilisk
go_keystone_chamber
at_map_chamber
EndContentData */
@@ -36,39 +35,39 @@ EndContentData */
#include "Player.h"
/*######
-## mob_jadespine_basilisk
+## npc_jadespine_basilisk
######*/
-enum eSpells
+enum Spells
{
SPELL_CRYSTALLINE_SLUMBER = 3636,
};
-class mob_jadespine_basilisk : public CreatureScript
+class npc_jadespine_basilisk : public CreatureScript
{
public:
- mob_jadespine_basilisk()
- : CreatureScript("mob_jadespine_basilisk")
+ npc_jadespine_basilisk()
+ : CreatureScript("npc_jadespine_basilisk")
{
}
- struct mob_jadespine_basiliskAI : public ScriptedAI
+ struct npc_jadespine_basiliskAI : public ScriptedAI
{
- mob_jadespine_basiliskAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_jadespine_basiliskAI(Creature* creature) : ScriptedAI(creature) {}
uint32 uiCslumberTimer;
- void Reset()
+ void Reset() OVERRIDE
{
uiCslumberTimer = 2000;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -85,7 +84,7 @@ class mob_jadespine_basilisk : public CreatureScript
Unit* target = SelectTarget(SELECT_TARGET_TOPAGGRO, 0);
- if (!target || target == me->getVictim())
+ if (!target || target == me->GetVictim())
target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true);
if (target)
@@ -97,9 +96,9 @@ class mob_jadespine_basilisk : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_jadespine_basiliskAI(creature);
+ return new npc_jadespine_basiliskAI(creature);
}
};
@@ -112,7 +111,7 @@ class go_keystone_chamber : public GameObjectScript
public:
go_keystone_chamber() : GameObjectScript("go_keystone_chamber") { }
- bool OnGossipHello(Player* /*player*/, GameObject* go)
+ bool OnGossipHello(Player* /*player*/, GameObject* go) OVERRIDE
{
if (InstanceScript* instance = go->GetInstanceScript())
instance->SetData(DATA_IRONAYA_SEAL, IN_PROGRESS); //door animation and save state.
@@ -136,7 +135,7 @@ class AreaTrigger_at_map_chamber : public AreaTriggerScript
{
}
- bool OnTrigger(Player* player, AreaTriggerEntry const* /*trigger*/)
+ bool OnTrigger(Player* player, AreaTriggerEntry const* /*trigger*/) OVERRIDE
{
if (player->GetQuestStatus(QUEST_HIDDEN_CHAMBER) == QUEST_STATUS_INCOMPLETE)
player->AreaExploredOrEventHappens(QUEST_HIDDEN_CHAMBER);
@@ -147,7 +146,7 @@ class AreaTrigger_at_map_chamber : public AreaTriggerScript
void AddSC_uldaman()
{
- new mob_jadespine_basilisk();
+ new npc_jadespine_basilisk();
new go_keystone_chamber();
new AreaTrigger_at_map_chamber();
}
diff --git a/src/server/scripts/EasternKingdoms/Uldaman/uldaman.h b/src/server/scripts/EasternKingdoms/Uldaman/uldaman.h
index 86f3d3b6d1e..15583312f5a 100644
--- a/src/server/scripts/EasternKingdoms/Uldaman/uldaman.h
+++ b/src/server/scripts/EasternKingdoms/Uldaman/uldaman.h
@@ -19,16 +19,9 @@
#ifndef DEF_ULDAMAN_H
#define DEF_ULDAMAN_H
-enum eObjects
-{
- GO_ARCHAEDAS_TEMPLE_DOOR = 141869,
- GO_ALTAR_OF_THE_KEEPER_TEMPLE_DOOR = 124367,
- GO_ANCIENT_VAULT_DOOR = 124369,
- GO_IRONAYA_SEAL_DOOR = 124372,
- GO_KEYSTONE = 124371,
-};
+#define MAX_ENCOUNTER 3
-enum eData
+enum DataTypes
{
DATA_ALTAR_DOORS = 1,
DATA_ANCIENT_DOOR = 2,
@@ -38,6 +31,13 @@ enum eData
DATA_IRONAYA_SEAL = 6,
};
-#define MAX_ENCOUNTER 3
+enum GameObjectIds
+{
+ GO_ARCHAEDAS_TEMPLE_DOOR = 141869,
+ GO_ALTAR_OF_THE_KEEPER_TEMPLE_DOOR = 124367,
+ GO_ANCIENT_VAULT_DOOR = 124369,
+ GO_IRONAYA_SEAL_DOOR = 124372,
+ GO_KEYSTONE = 124371,
+};
#endif
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp
index ce526fb0ddc..380293d743c 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp
@@ -43,7 +43,9 @@ enum Spells
SPELL_ELECTRICAL_STORM = 43648,
SPELL_BERSERK = 45078,
SPELL_ELECTRICAL_OVERLOAD = 43658,
- SPELL_EAGLE_SWOOP = 44732
+ SPELL_EAGLE_SWOOP = 44732,
+ SPELL_ZAP = 43137,
+ SPELL_SAND_STORM = 25160
};
enum Says
@@ -58,109 +60,77 @@ enum Says
enum Misc
{
- MOB_SOARING_EAGLE = 24858,
+ NPC_SOARING_EAGLE = 24858,
SE_LOC_X_MAX = 400,
SE_LOC_X_MIN = 335,
SE_LOC_Y_MAX = 1435,
SE_LOC_Y_MIN = 1370
};
+enum Events
+{
+ EVENT_STATIC_DISRUPTION = 1,
+ EVENT_GUST_OF_WIND = 2,
+ EVENT_CALL_LIGHTNING = 3,
+ EVENT_ELECTRICAL_STORM = 4,
+ EVENT_RAIN = 5,
+ EVENT_SUMMON_EAGLES = 6,
+ EVENT_STORM_SEQUENCE = 7,
+ EVENT_ENRAGE = 8
+};
+
class boss_akilzon : public CreatureScript
{
public:
+ boss_akilzon() : CreatureScript("boss_akilzon") { }
- boss_akilzon()
- : CreatureScript("boss_akilzon")
- {
- }
-
- struct boss_akilzonAI : public ScriptedAI
+ struct boss_akilzonAI : public BossAI
{
- boss_akilzonAI(Creature* creature) : ScriptedAI(creature)
+ boss_akilzonAI(Creature* creature) : BossAI(creature, DATA_AKILZONEVENT)
{
- instance = creature->GetInstanceScript();
memset(BirdGUIDs, 0, sizeof(BirdGUIDs));
}
- InstanceScript* instance;
-
- uint64 BirdGUIDs[8];
- uint64 TargetGUID;
- uint64 CycloneGUID;
- uint64 CloudGUID;
-
- uint32 StaticDisruption_Timer;
- uint32 GustOfWind_Timer;
- uint32 CallLighting_Timer;
- uint32 ElectricalStorm_Timer;
- uint32 SummonEagles_Timer;
- uint32 Enrage_Timer;
-
- uint32 StormCount;
- uint32 StormSequenceTimer;
-
- bool isRaining;
-
- void Reset()
+ void Reset() OVERRIDE
{
- if (instance)
- instance->SetData(DATA_AKILZONEVENT, NOT_STARTED);
-
- StaticDisruption_Timer = urand(10000, 20000); //10 to 20 seconds (bosskillers)
- GustOfWind_Timer = urand(20000, 30000); //20 to 30 seconds(bosskillers)
- CallLighting_Timer = urand(10000, 20000); //totaly random timer. can't find any info on this
- ElectricalStorm_Timer = 60000; //60 seconds(bosskillers)
- Enrage_Timer = 10*MINUTE*IN_MILLISECONDS; //10 minutes till enrage(bosskillers)
- SummonEagles_Timer = 99999;
+ _Reset();
TargetGUID = 0;
CloudGUID = 0;
CycloneGUID = 0;
- DespawnSummons();
memset(BirdGUIDs, 0, sizeof(BirdGUIDs));
-
StormCount = 0;
- StormSequenceTimer = 0;
-
isRaining = false;
SetWeather(WEATHER_STATE_FINE, 0.0f);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
+ events.ScheduleEvent(EVENT_STATIC_DISRUPTION, urand(10000, 20000)); // 10 to 20 seconds (bosskillers)
+ events.ScheduleEvent(EVENT_GUST_OF_WIND, urand(20000, 30000)); // 20 to 30 seconds(bosskillers)
+ events.ScheduleEvent(EVENT_CALL_LIGHTNING, urand(10000, 20000)); // totaly random timer. can't find any info on this
+ events.ScheduleEvent(EVENT_ELECTRICAL_STORM, 60000); // 60 seconds(bosskillers)
+ events.ScheduleEvent(EVENT_RAIN, urand(47000, 52000));
+ events.ScheduleEvent(EVENT_ENRAGE, 10*MINUTE*IN_MILLISECONDS); // 10 minutes till enrage(bosskillers)
+
Talk(SAY_AGGRO);
//DoZoneInCombat();
if (instance)
instance->SetData(DATA_AKILZONEVENT, IN_PROGRESS);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
- if (instance)
- instance->SetData(DATA_AKILZONEVENT, DONE);
- DespawnSummons();
+ _JustDied();
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_KILL);
}
- void DespawnSummons()
- {
- for (uint8 i = 0; i < 8; ++i)
- {
- Unit* bird = Unit::GetUnit(*me, BirdGUIDs[i]);
- if (bird && bird->isAlive())
- {
- bird->SetVisible(false);
- bird->setDeathState(JUST_DIED);
- }
- }
- }
-
void SetWeather(uint32 weather, float grade)
{
Map* map = me->GetMap();
@@ -198,15 +168,17 @@ class boss_akilzon : public CreatureScript
cell.Visit(p, world_unit_searcher, *me->GetMap(), *me, SIZE_OF_GRIDS);
cell.Visit(p, grid_unit_searcher, *me->GetMap(), *me, SIZE_OF_GRIDS);
}
- //dealdamege
+
+ // deal damage
for (std::list<Unit*>::const_iterator i = tempUnitMap.begin(); i != tempUnitMap.end(); ++i)
{
if (Unit* target = (*i))
{
- if (!Cloud->IsWithinDist(target, 6, false))
- Cloud->CastCustomSpell(target, 43137, &bp0, NULL, NULL, true, 0, 0, me->GetGUID());
+ if (Cloud && !Cloud->IsWithinDist(target, 6, false))
+ Cloud->CastCustomSpell(target, SPELL_ZAP, &bp0, NULL, NULL, true, 0, 0, me->GetGUID());
}
}
+
// visual
float x, y, z;
z = me->GetPositionZ();
@@ -221,15 +193,17 @@ class boss_akilzon : public CreatureScript
trigger->SetHealth(100000);
trigger->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
if (Cloud)
- Cloud->CastCustomSpell(trigger, /*43661*/43137, &bp0, NULL, NULL, true, 0, 0, Cloud->GetGUID());
+ Cloud->CastCustomSpell(trigger, /*43661*/SPELL_ZAP, &bp0, NULL, NULL, true, 0, 0, Cloud->GetGUID());
}
}
}
+
++StormCount;
+
if (StormCount > 10)
{
StormCount = 0; // finish
- SummonEagles_Timer = 5000;
+ events.ScheduleEvent(EVENT_SUMMON_EAGLES, 5000);
me->InterruptNonMeleeSpells(false);
CloudGUID = 0;
if (Cloud)
@@ -237,178 +211,188 @@ class boss_akilzon : public CreatureScript
SetWeather(WEATHER_STATE_FINE, 0.0f);
isRaining = false;
}
- StormSequenceTimer = 1000;
+ events.ScheduleEvent(EVENT_STORM_SEQUENCE, 1000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
- if (StormCount)
- {
- Unit* target = Unit::GetUnit(*me, CloudGUID);
- if (!target || !target->isAlive())
- {
- EnterEvadeMode();
- return;
- }
- else if (Unit* Cyclone = Unit::GetUnit(*me, CycloneGUID))
- Cyclone->CastSpell(target, 25160, true); // keep casting or...
-
- if (StormSequenceTimer <= diff)
- HandleStormSequence(target);
- else
- StormSequenceTimer -= diff;
-
- return;
- }
-
- if (Enrage_Timer <= diff)
- {
- Talk(SAY_ENRAGE);
- DoCast(me, SPELL_BERSERK, true);
- Enrage_Timer = 600000;
- } else Enrage_Timer -= diff;
-
- if (StaticDisruption_Timer <= diff)
- {
- Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1);
- if (!target) target = me->getVictim();
- TargetGUID = target->GetGUID();
- DoCast(target, SPELL_STATIC_DISRUPTION, false);
- me->SetInFront(me->getVictim());
- StaticDisruption_Timer = (10+rand()%8)*1000; // < 20s
-
- /*if (float dist = me->IsWithinDist3d(target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 5.0f) dist = 5.0f;
- SDisruptAOEVisual_Timer = 1000 + floor(dist / 30 * 1000.0f);*/
- } else StaticDisruption_Timer -= diff;
-
- if (GustOfWind_Timer <= diff)
- {
- Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1);
- if (!target) target = me->getVictim();
- DoCast(target, SPELL_GUST_OF_WIND);
- GustOfWind_Timer = urand(20, 30) * 1000; //20 to 30 seconds(bosskillers)
- } else GustOfWind_Timer -= diff;
-
- if (CallLighting_Timer <= diff)
- {
- DoCast(me->getVictim(), SPELL_CALL_LIGHTNING);
- CallLighting_Timer = urand(12, 17) * 1000; //totaly random timer. can't find any info on this
- } else CallLighting_Timer -= diff;
-
- if (!isRaining && ElectricalStorm_Timer < uint32(8000 + rand() % 5000))
- {
- SetWeather(WEATHER_STATE_HEAVY_RAIN, 0.9999f);
- isRaining = true;
- }
-
- if (ElectricalStorm_Timer <= diff)
- {
- Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 50, true);
- if (!target)
- {
- EnterEvadeMode();
- return;
- }
- target->CastSpell(target, 44007, true);//cloud visual
- DoCast(target, SPELL_ELECTRICAL_STORM, false);//storm cyclon + visual
- float x, y, z;
- target->GetPosition(x, y, z);
- if (target)
- {
- target->SetUnitMovementFlags(MOVEMENTFLAG_DISABLE_GRAVITY);
- target->MonsterMoveWithSpeed(x, y, me->GetPositionZ()+15, 0);
- }
- Unit* Cloud = me->SummonTrigger(x, y, me->GetPositionZ()+16, 0, 15000);
- if (Cloud)
- {
- CloudGUID = Cloud->GetGUID();
- Cloud->SetUnitMovementFlags(MOVEMENTFLAG_DISABLE_GRAVITY);
- Cloud->StopMoving();
- Cloud->SetObjectScale(1.0f);
- Cloud->setFaction(35);
- Cloud->SetMaxHealth(9999999);
- Cloud->SetHealth(9999999);
- Cloud->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- }
- ElectricalStorm_Timer = 60000; //60 seconds(bosskillers)
- StormCount = 1;
- StormSequenceTimer = 0;
- } else ElectricalStorm_Timer -= diff;
+ events.Update(diff);
- if (SummonEagles_Timer <= diff)
+ while (uint32 eventId = events.ExecuteEvent())
{
- Talk(SAY_SUMMON);
-
- float x, y, z;
- me->GetPosition(x, y, z);
-
- for (uint8 i = 0; i < 8; ++i)
+ switch (eventId)
{
- Unit* bird = Unit::GetUnit(*me, BirdGUIDs[i]);
- if (!bird) //they despawned on die
- {
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
+ case EVENT_STATIC_DISRUPTION:
+ {
+ Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1);
+ if (!target) target = me->GetVictim();
+ TargetGUID = target->GetGUID();
+ DoCast(target, SPELL_STATIC_DISRUPTION, false);
+ me->SetInFront(me->GetVictim());
+ /*if (float dist = me->IsWithinDist3d(target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 5.0f) dist = 5.0f;
+ SDisruptAOEVisual_Timer = 1000 + floor(dist / 30 * 1000.0f);*/
+ events.ScheduleEvent(EVENT_STATIC_DISRUPTION, urand(10000, 18000));
+ break;
+ }
+ case EVENT_GUST_OF_WIND:
{
- x = target->GetPositionX() + irand(-10, 10);
- y = target->GetPositionY() + irand(-10, 10);
- z = target->GetPositionZ() + urand(16, 20);
- if (z > 95)
- z = 95.0f - urand(0, 5);
+ Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1);
+ if (!target) target = me->GetVictim();
+ DoCast(target, SPELL_GUST_OF_WIND);
+ events.ScheduleEvent(EVENT_GUST_OF_WIND, urand(20000, 30000));
+ break;
}
- Creature* creature = me->SummonCreature(MOB_SOARING_EAGLE, x, y, z, 0, TEMPSUMMON_CORPSE_DESPAWN, 0);
- if (creature)
+ case EVENT_CALL_LIGHTNING:
+ DoCastVictim(SPELL_CALL_LIGHTNING);
+ events.ScheduleEvent(EVENT_CALL_LIGHTNING, urand(12000, 17000)); // totaly random timer. can't find any info on this
+ break;
+ case EVENT_ELECTRICAL_STORM:
{
- creature->AddThreat(me->getVictim(), 1.0f);
- creature->AI()->AttackStart(me->getVictim());
- BirdGUIDs[i] = creature->GetGUID();
+ Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 50, true);
+ if (!target)
+ {
+ EnterEvadeMode();
+ return;
+ }
+ target->CastSpell(target, 44007, true); // cloud visual
+ DoCast(target, SPELL_ELECTRICAL_STORM, false); // storm cyclon + visual
+ float x, y, z;
+ target->GetPosition(x, y, z);
+ if (target)
+ {
+ target->SetDisableGravity(true);
+ target->MonsterMoveWithSpeed(x, y, me->GetPositionZ()+15, 0);
+ }
+
+ Unit* Cloud = me->SummonTrigger(x, y, me->GetPositionZ()+16, 0, 15000);
+ if (Cloud)
+ {
+ CloudGUID = Cloud->GetGUID();
+ Cloud->SetDisableGravity(true);
+ Cloud->StopMoving();
+ Cloud->SetObjectScale(1.0f);
+ Cloud->setFaction(35);
+ Cloud->SetMaxHealth(9999999);
+ Cloud->SetHealth(9999999);
+ Cloud->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ }
+ StormCount = 1;
+ events.ScheduleEvent(EVENT_ELECTRICAL_STORM, 60000); // 60 seconds(bosskillers)
+ events.ScheduleEvent(EVENT_RAIN, urand(47000, 52000));
+ break;
}
- }
+ case EVENT_RAIN:
+ if (!isRaining)
+ {
+ SetWeather(WEATHER_STATE_HEAVY_RAIN, 0.9999f);
+ isRaining = true;
+ }
+ else
+ events.ScheduleEvent(EVENT_RAIN, 1000);
+ break;
+ case EVENT_STORM_SEQUENCE:
+ {
+ Unit* target = Unit::GetUnit(*me, CloudGUID);
+ if (!target || !target->IsAlive())
+ {
+ EnterEvadeMode();
+ return;
+ }
+ else if (Unit* Cyclone = Unit::GetUnit(*me, CycloneGUID))
+ Cyclone->CastSpell(target, SPELL_SAND_STORM, true); // keep casting or...
+ HandleStormSequence(target);
+ break;
+ }
+ case EVENT_SUMMON_EAGLES:
+ Talk(SAY_SUMMON);
+
+ float x, y, z;
+ me->GetPosition(x, y, z);
+
+ for (uint8 i = 0; i < 8; ++i)
+ {
+ Unit* bird = Unit::GetUnit(*me, BirdGUIDs[i]);
+ if (!bird) //they despawned on die
+ {
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
+ {
+ x = target->GetPositionX() + irand(-10, 10);
+ y = target->GetPositionY() + irand(-10, 10);
+ z = target->GetPositionZ() + urand(16, 20);
+ if (z > 95)
+ z = 95.0f - urand(0, 5);
+ }
+ Creature* creature = me->SummonCreature(NPC_SOARING_EAGLE, x, y, z, 0, TEMPSUMMON_CORPSE_DESPAWN, 0);
+ if (creature)
+ {
+ creature->AddThreat(me->GetVictim(), 1.0f);
+ creature->AI()->AttackStart(me->GetVictim());
+ BirdGUIDs[i] = creature->GetGUID();
+ }
+ }
+ }
+ break;
+ case EVENT_ENRAGE:
+ Talk(SAY_ENRAGE);
+ DoCast(me, SPELL_BERSERK, true);
+ events.ScheduleEvent(EVENT_ENRAGE, 600000);
+ break;
+ default:
+ break;
}
- SummonEagles_Timer = 999999;
- } else SummonEagles_Timer -= diff;
+ }
DoMeleeAttackIfReady();
}
+
+ private:
+ uint64 BirdGUIDs[8];
+ uint64 TargetGUID;
+ uint64 CycloneGUID;
+ uint64 CloudGUID;
+ uint8 StormCount;
+ bool isRaining;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_akilzonAI(creature);
}
};
-class mob_akilzon_eagle : public CreatureScript
+class npc_akilzon_eagle : public CreatureScript
{
public:
- mob_akilzon_eagle() : CreatureScript("mob_akilzon_eagle") { }
+ npc_akilzon_eagle() : CreatureScript("npc_akilzon_eagle") { }
- struct mob_akilzon_eagleAI : public ScriptedAI
+ struct npc_akilzon_eagleAI : public ScriptedAI
{
- mob_akilzon_eagleAI(Creature* creature) : ScriptedAI(creature) { }
+ npc_akilzon_eagleAI(Creature* creature) : ScriptedAI(creature) { }
uint32 EagleSwoop_Timer;
bool arrived;
uint64 TargetGUID;
- void Reset()
+ void Reset() OVERRIDE
{
EagleSwoop_Timer = urand(5000, 10000);
arrived = true;
TargetGUID = 0;
- me->SetUnitMovementFlags(MOVEMENTFLAG_DISABLE_GRAVITY);
+ me->SetDisableGravity(true);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
DoZoneInCombat();
}
- void MoveInLineOfSight(Unit* /*who*/) {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
+
- void MovementInform(uint32, uint32)
+ void MovementInform(uint32, uint32) OVERRIDE
{
arrived = true;
if (TargetGUID)
@@ -421,7 +405,7 @@ class mob_akilzon_eagle : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (EagleSwoop_Timer <= diff)
EagleSwoop_Timer = 0;
@@ -455,15 +439,15 @@ class mob_akilzon_eagle : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_akilzon_eagleAI(creature);
+ return new npc_akilzon_eagleAI(creature);
}
};
void AddSC_boss_akilzon()
{
new boss_akilzon();
- new mob_akilzon_eagle();
+ new npc_akilzon_eagle();
}
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp
index 21392fda660..8bfe45a7f17 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp
@@ -109,7 +109,7 @@ class boss_halazzi : public CreatureScript
uint64 LynxGUID;
- void Reset()
+ void Reset() OVERRIDE
{
if (instance)
instance->SetData(DATA_HALAZZIEVENT, NOT_STARTED);
@@ -125,7 +125,7 @@ class boss_halazzi : public CreatureScript
EnterPhase(PHASE_LYNX);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (instance)
instance->SetData(DATA_HALAZZIEVENT, IN_PROGRESS);
@@ -136,26 +136,26 @@ class boss_halazzi : public CreatureScript
EnterPhase(PHASE_LYNX);
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
- summon->AI()->AttackStart(me->getVictim());
+ summon->AI()->AttackStart(me->GetVictim());
if (summon->GetEntry() == NPC_SPIRIT_LYNX)
LynxGUID = summon->GetGUID();
}
- void DamageTaken(Unit* /*done_by*/, uint32 &damage)
+ void DamageTaken(Unit* /*done_by*/, uint32 &damage) OVERRIDE
{
if (damage >= me->GetHealth() && Phase != PHASE_ENRAGE)
damage = 0;
}
- void SpellHit(Unit*, const SpellInfo* spell)
+ void SpellHit(Unit*, const SpellInfo* spell) OVERRIDE
{
if (spell->Id == SPELL_TRANSFORM_SPLIT2)
EnterPhase(PHASE_HUMAN);
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (Phase != PHASE_MERGE) ScriptedAI::AttackStart(who);
}
@@ -169,8 +169,8 @@ class boss_halazzi : public CreatureScript
if (Phase == PHASE_MERGE)
{
DoCast(me, SPELL_TRANSFORM_MERGE, true);
- me->Attack(me->getVictim(), true);
- me->GetMotionMaster()->MoveChase(me->getVictim());
+ me->Attack(me->GetVictim(), true);
+ me->GetMotionMaster()->MoveChase(me->GetVictim());
}
if (Creature* Lynx = Unit::GetCreature(*me, LynxGUID))
Lynx->DisappearAndDie();
@@ -213,7 +213,7 @@ class boss_halazzi : public CreatureScript
Phase = NextPhase;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -232,7 +232,7 @@ class boss_halazzi : public CreatureScript
{
// A tank with more than 490 defense skills should receive no critical hit
//DoCast(me, 41296, true);
- DoCast(me->getVictim(), SPELL_SABER_LASH, true);
+ DoCastVictim(SPELL_SABER_LASH, true);
//me->RemoveAurasDueToSpell(41296);
SaberlashTimer = 30000;
} else SaberlashTimer -= diff;
@@ -315,7 +315,7 @@ class boss_halazzi : public CreatureScript
DoMeleeAttackIfReady();
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
switch (urand(0, 1))
{
@@ -331,7 +331,7 @@ class boss_halazzi : public CreatureScript
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
instance->SetData(DATA_HALAZZIEVENT, DONE);
@@ -341,50 +341,50 @@ class boss_halazzi : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_halazziAI(creature);
}
};
// Spirits Lynx AI
-class mob_halazzi_lynx : public CreatureScript
+class npc_halazzi_lynx : public CreatureScript
{
public:
- mob_halazzi_lynx()
- : CreatureScript("mob_halazzi_lynx")
+ npc_halazzi_lynx()
+ : CreatureScript("npc_halazzi_lynx")
{
}
- struct mob_halazzi_lynxAI : public ScriptedAI
+ struct npc_halazzi_lynxAI : public ScriptedAI
{
- mob_halazzi_lynxAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_halazzi_lynxAI(Creature* creature) : ScriptedAI(creature) {}
uint32 FrenzyTimer;
uint32 shredder_timer;
- void Reset()
+ void Reset() OVERRIDE
{
FrenzyTimer = urand(30000, 50000); //frenzy every 30-50 seconds
shredder_timer = 4000;
}
- void DamageTaken(Unit* /*done_by*/, uint32 &damage)
+ void DamageTaken(Unit* /*done_by*/, uint32 &damage) OVERRIDE
{
if (damage >= me->GetHealth())
damage = 0;
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (!me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
ScriptedAI::AttackStart(who);
}
- void EnterCombat(Unit* /*who*/) {/*DoZoneInCombat();*/}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {/*DoZoneInCombat();*/ }
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -397,7 +397,7 @@ class mob_halazzi_lynx : public CreatureScript
if (shredder_timer <= diff)
{
- DoCast(me->getVictim(), SPELL_SHRED_ARMOR);
+ DoCastVictim(SPELL_SHRED_ARMOR);
shredder_timer = 4000;
} else shredder_timer -= diff;
@@ -406,16 +406,16 @@ class mob_halazzi_lynx : public CreatureScript
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_halazzi_lynxAI(creature);
+ return new npc_halazzi_lynxAI(creature);
}
};
void AddSC_boss_halazzi()
{
new boss_halazzi();
- new mob_halazzi_lynx();
+ new npc_halazzi_lynx();
}
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp
index 6fa7e94e55e..8a13e072be8 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp
@@ -42,16 +42,18 @@ EndScriptData */
#define YELL_DEATH "Dis not... da end of me..."
#define SOUND_YELL_DEATH 12051
-#define SPELL_SPIRIT_BOLTS 43383
-#define SPELL_DRAIN_POWER 44131
-#define SPELL_SIPHON_SOUL 43501
-#define MOB_TEMP_TRIGGER 23920
-
-//Defines for various powers he uses after using soul drain
+enum Creatures
+{
+ NPC_TEMP_TRIGGER = 23920
+};
enum Spells
{
+ SPELL_SPIRIT_BOLTS = 43383,
+ SPELL_DRAIN_POWER = 44131,
+ SPELL_SIPHON_SOUL = 43501,
+
// Druid
SPELL_DR_THORNS = 43420,
SPELL_DR_LIFEBLOOM = 43421,
@@ -100,7 +102,36 @@ enum Spells
// Warrior
SPELL_WR_MORTAL_STRIKE = 43441,
SPELL_WR_WHIRLWIND = 43442,
- SPELL_WR_SPELL_REFLECT = 43443
+ SPELL_WR_SPELL_REFLECT = 43443,
+
+ // Thurg
+ SPELL_BLOODLUST = 43578,
+ SPELL_CLEAVE = 15496,
+
+ // Gazakroth
+ SPELL_FIREBOLT = 43584,
+
+ // Alyson Antille
+ SPELL_FLASH_HEAL = 43575,
+ SPELL_DISPEL_MAGIC = 43577,
+
+ // Lord Raadan
+ SPELL_FLAME_BREATH = 43582,
+ SPELL_THUNDERCLAP = 43583,
+
+ // Darkheart
+ SPELL_PSYCHIC_WAIL = 43590,
+
+ // Slither
+ SPELL_VENOM_SPIT = 43579,
+
+ // Fenstalker
+ SPELL_VOLATILE_INFECTION = 43586,
+
+ // Koragg
+ SPELL_COLD_STARE = 43593,
+ SPELL_MIGHTY_BLOW = 43592
+
};
#define ORIENT 1.5696f
@@ -191,14 +222,14 @@ struct boss_hexlord_addAI : public ScriptedAI
instance = creature->GetInstanceScript();
}
- void Reset() {}
+ void Reset() OVERRIDE {}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
DoZoneInCombat();
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
if (instance && instance->GetData(DATA_HEXLORDEVENT) != IN_PROGRESS)
{
@@ -245,7 +276,7 @@ class boss_hexlord_malacrass : public CreatureScript
uint32 PlayerClass;
- void Reset()
+ void Reset() OVERRIDE
{
if (instance)
instance->SetData(DATA_HEXLORDEVENT, NOT_STARTED);
@@ -263,7 +294,7 @@ class boss_hexlord_malacrass : public CreatureScript
me->SetByteValue(UNIT_FIELD_BYTES_2, 0, SHEATH_STATE_MELEE);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (instance)
instance->SetData(DATA_HEXLORDEVENT, IN_PROGRESS);
@@ -275,8 +306,8 @@ class boss_hexlord_malacrass : public CreatureScript
for (uint8 i = 0; i < 4; ++i)
{
Creature* creature = Unit::GetCreature(*me, AddGUID[i]);
- if (creature && creature->isAlive())
- creature->AI()->AttackStart(me->getVictim());
+ if (creature && creature->IsAlive())
+ creature->AI()->AttackStart(me->GetVictim());
else
{
EnterEvadeMode();
@@ -285,7 +316,7 @@ class boss_hexlord_malacrass : public CreatureScript
}
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
switch (urand(0, 1))
{
@@ -300,7 +331,7 @@ class boss_hexlord_malacrass : public CreatureScript
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
instance->SetData(DATA_HEXLORDEVENT, DONE);
@@ -311,7 +342,7 @@ class boss_hexlord_malacrass : public CreatureScript
for (uint8 i = 0; i < 4; ++i)
{
Unit* Temp = Unit::GetUnit(*me, AddGUID[i]);
- if (Temp && Temp->isAlive())
+ if (Temp && Temp->IsAlive())
Temp->DealDamage(Temp, Temp->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
}
}
@@ -336,7 +367,7 @@ class boss_hexlord_malacrass : public CreatureScript
for (uint8 i = 0; i < 4; ++i)
{
Creature* creature = (Unit::GetCreature((*me), AddGUID[i]));
- if (!creature || !creature->isAlive())
+ if (!creature || !creature->IsAlive())
{
if (creature) creature->setDeathState(DEAD);
creature = me->SummonCreature(AddEntry[i], Pos_X[i], POS_Y, POS_Z, ORIENT, TEMPSUMMON_DEAD_DESPAWN, 0);
@@ -351,7 +382,7 @@ class boss_hexlord_malacrass : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -370,8 +401,8 @@ class boss_hexlord_malacrass : public CreatureScript
{
for (uint8 i = 0; i < 4; ++i)
if (Creature* temp = Unit::GetCreature(*me, AddGUID[i]))
- if (temp->isAlive() && !temp->getVictim())
- temp->AI()->AttackStart(me->getVictim());
+ if (temp->IsAlive() && !temp->GetVictim())
+ temp->AI()->AttackStart(me->GetVictim());
CheckAddState_Timer = 5000;
} else CheckAddState_Timer -= diff;
@@ -402,7 +433,7 @@ class boss_hexlord_malacrass : public CreatureScript
if (SiphonSoul_Timer <= diff)
{
Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 70, true);
- Unit* trigger = DoSpawnCreature(MOB_TEMP_TRIGGER, 0, 0, 0, 0, TEMPSUMMON_TIMED_DESPAWN, 30000);
+ Unit* trigger = DoSpawnCreature(NPC_TEMP_TRIGGER, 0, 0, 0, 0, TEMPSUMMON_TIMED_DESPAWN, 30000);
if (!target || !trigger)
{
EnterEvadeMode();
@@ -435,7 +466,7 @@ class boss_hexlord_malacrass : public CreatureScript
if (PlayerAbility_Timer <= diff)
{
//Unit* target = Unit::GetUnit(*me, PlayerGUID);
- //if (target && target->isAlive())
+ //if (target && target->IsAlive())
//{
UseAbility();
PlayerAbility_Timer = urand(8000, 10000);
@@ -455,7 +486,7 @@ class boss_hexlord_malacrass : public CreatureScript
target = me;
break;
case ABILITY_TARGET_VICTIM:
- target = me->getVictim();
+ target = me->GetVictim();
break;
case ABILITY_TARGET_ENEMY:
default:
@@ -477,15 +508,12 @@ class boss_hexlord_malacrass : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_hex_lord_malacrassAI(creature);
}
};
-#define SPELL_BLOODLUST 43578
-#define SPELL_CLEAVE 15496
-
class boss_thurg : public CreatureScript
{
public:
@@ -503,7 +531,7 @@ class boss_thurg : public CreatureScript
uint32 bloodlust_timer;
uint32 cleave_timer;
- void Reset()
+ void Reset() OVERRIDE
{
bloodlust_timer = 15000;
cleave_timer = 10000;
@@ -511,7 +539,7 @@ class boss_thurg : public CreatureScript
boss_hexlord_addAI::Reset();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -529,7 +557,7 @@ class boss_thurg : public CreatureScript
if (cleave_timer <= diff)
{
- DoCast(me->getVictim(), SPELL_CLEAVE, false);
+ DoCastVictim(SPELL_CLEAVE, false);
cleave_timer = 12000; //3 sec cast
} else cleave_timer -= diff;
@@ -537,15 +565,12 @@ class boss_thurg : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_thurgAI(creature);
}
};
-#define SPELL_FLASH_HEAL 43575
-#define SPELL_DISPEL_MAGIC 43577
-
class boss_alyson_antille : public CreatureScript
{
public:
@@ -563,7 +588,7 @@ class boss_alyson_antille : public CreatureScript
uint32 flashheal_timer;
uint32 dispelmagic_timer;
- void Reset()
+ void Reset() OVERRIDE
{
flashheal_timer = 2500;
dispelmagic_timer = 10000;
@@ -573,7 +598,7 @@ class boss_alyson_antille : public CreatureScript
boss_hexlord_addAI::Reset();
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (!who)
return;
@@ -588,7 +613,7 @@ class boss_alyson_antille : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -637,27 +662,25 @@ class boss_alyson_antille : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_alyson_antilleAI(creature);
}
};
-#define SPELL_FIREBOLT 43584
-
struct boss_gazakrothAI : public boss_hexlord_addAI
{
boss_gazakrothAI(Creature* creature) : boss_hexlord_addAI(creature) {}
uint32 firebolt_timer;
- void Reset()
+ void Reset() OVERRIDE
{
firebolt_timer = 2000;
boss_hexlord_addAI::Reset();
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (!who)
return;
@@ -672,14 +695,14 @@ struct boss_gazakrothAI : public boss_hexlord_addAI
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
if (firebolt_timer <= diff)
{
- DoCast(me->getVictim(), SPELL_FIREBOLT, false);
+ DoCastVictim(SPELL_FIREBOLT, false);
firebolt_timer = 700;
} else firebolt_timer -= diff;
@@ -687,9 +710,6 @@ struct boss_gazakrothAI : public boss_hexlord_addAI
}
};
-#define SPELL_FLAME_BREATH 43582
-#define SPELL_THUNDERCLAP 43583
-
class boss_lord_raadan : public CreatureScript
{
public:
@@ -706,7 +726,7 @@ class boss_lord_raadan : public CreatureScript
uint32 flamebreath_timer;
uint32 thunderclap_timer;
- void Reset()
+ void Reset() OVERRIDE
{
flamebreath_timer = 8000;
thunderclap_timer = 13000;
@@ -714,20 +734,20 @@ class boss_lord_raadan : public CreatureScript
boss_hexlord_addAI::Reset();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
if (thunderclap_timer <= diff)
{
- DoCast(me->getVictim(), SPELL_THUNDERCLAP, false);
+ DoCastVictim(SPELL_THUNDERCLAP, false);
thunderclap_timer = 12000;
} else thunderclap_timer -= diff;
if (flamebreath_timer <= diff)
{
- DoCast(me->getVictim(), SPELL_FLAME_BREATH, false);
+ DoCastVictim(SPELL_FLAME_BREATH, false);
flamebreath_timer = 12000;
} else flamebreath_timer -= diff;
@@ -735,14 +755,12 @@ class boss_lord_raadan : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_lord_raadanAI(creature);
}
};
-#define SPELL_PSYCHIC_WAIL 43590
-
class boss_darkheart : public CreatureScript
{
public:
@@ -758,19 +776,19 @@ class boss_darkheart : public CreatureScript
uint32 psychicwail_timer;
- void Reset()
+ void Reset() OVERRIDE
{
psychicwail_timer = 8000;
boss_hexlord_addAI::Reset();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
if (psychicwail_timer <= diff)
{
- DoCast(me->getVictim(), SPELL_PSYCHIC_WAIL, false);
+ DoCastVictim(SPELL_PSYCHIC_WAIL, false);
psychicwail_timer = 12000;
} else psychicwail_timer -= diff;
@@ -778,13 +796,12 @@ class boss_darkheart : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_darkheartAI(creature);
}
};
-#define SPELL_VENOM_SPIT 43579
class boss_slither : public CreatureScript
{
@@ -801,13 +818,13 @@ class boss_slither : public CreatureScript
uint32 venomspit_timer;
- void Reset()
+ void Reset() OVERRIDE
{
venomspit_timer = 5000;
boss_hexlord_addAI::Reset();
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (!who)
return;
@@ -822,7 +839,7 @@ class boss_slither : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -838,14 +855,12 @@ class boss_slither : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_slitherAI(creature);
}
};
-//Fenstalker
-#define SPELL_VOLATILE_INFECTION 43586
class boss_fenstalker : public CreatureScript
{
public:
@@ -861,13 +876,13 @@ class boss_fenstalker : public CreatureScript
uint32 volatileinf_timer;
- void Reset()
+ void Reset() OVERRIDE
{
volatileinf_timer = 15000;
boss_hexlord_addAI::Reset();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -875,7 +890,7 @@ class boss_fenstalker : public CreatureScript
if (volatileinf_timer <= diff)
{
// core bug
- me->getVictim()->CastSpell(me->getVictim(), SPELL_VOLATILE_INFECTION, false);
+ me->GetVictim()->CastSpell(me->GetVictim(), SPELL_VOLATILE_INFECTION, false);
volatileinf_timer = 12000;
} else volatileinf_timer -= diff;
@@ -883,16 +898,12 @@ class boss_fenstalker : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_fenstalkerAI(creature);
}
};
-//Koragg
-#define SPELL_COLD_STARE 43593
-#define SPELL_MIGHTY_BLOW 43592
-
class boss_koragg : public CreatureScript
{
public:
@@ -909,21 +920,21 @@ class boss_koragg : public CreatureScript
uint32 coldstare_timer;
uint32 mightyblow_timer;
- void Reset()
+ void Reset() OVERRIDE
{
coldstare_timer = 15000;
mightyblow_timer = 10000;
boss_hexlord_addAI::Reset();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
if (mightyblow_timer <= diff)
{
- DoCast(me->getVictim(), SPELL_MIGHTY_BLOW, false);
+ DoCastVictim(SPELL_MIGHTY_BLOW, false);
mightyblow_timer = 12000;
}
if (coldstare_timer <= diff)
@@ -937,7 +948,7 @@ class boss_koragg : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_koraggAI(creature);
}
@@ -952,7 +963,7 @@ class spell_hexlord_unstable_affliction : public SpellScriptLoader
{
PrepareAuraScript(spell_hexlord_unstable_affliction_AuraScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_WL_UNSTABLE_AFFL_DISPEL))
return false;
@@ -965,13 +976,13 @@ class spell_hexlord_unstable_affliction : public SpellScriptLoader
caster->CastSpell(dispelInfo->GetDispeller(), SPELL_WL_UNSTABLE_AFFL_DISPEL, true, NULL, GetEffect(EFFECT_0));
}
- void Register()
+ void Register() OVERRIDE
{
AfterDispel += AuraDispelFn(spell_hexlord_unstable_affliction_AuraScript::HandleDispel);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_hexlord_unstable_affliction_AuraScript();
}
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp
index 81d47148b23..329034a7682 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp
@@ -29,7 +29,7 @@ EndScriptData */
#include "GridNotifiers.h"
#include "CellImpl.h"
-enum eEnums
+enum Yells
{
SAY_AGGRO = 0,
SAY_FIRE_BOMBS = 1,
@@ -39,9 +39,12 @@ enum eEnums
SAY_SLAY = 5,
SAY_DEATH = 6,
SAY_EVENT_STRANGERS = 7,
- SAY_EVENT_FRIENDS = 8,
+ SAY_EVENT_FRIENDS = 8
+};
-// Jan'alai
+enum Spells
+{
+ // Jan'alai
SPELL_FLAME_BREATH = 43140,
SPELL_FIRE_WALL = 43113,
SPELL_ENRAGE = 44779,
@@ -50,26 +53,28 @@ enum eEnums
SPELL_HATCH_ALL = 43144,
SPELL_BERSERK = 45078,
-// -- Fire Bob Spells
+ // Fire Bob Spells
SPELL_FIRE_BOMB_CHANNEL = 42621, // last forever
SPELL_FIRE_BOMB_THROW = 42628, // throw visual
SPELL_FIRE_BOMB_DUMMY = 42629, // bomb visual
SPELL_FIRE_BOMB_DAMAGE = 42630,
-// --Summons
- MOB_AMANI_HATCHER = 23818,
- MOB_HATCHLING = 23598, // 42493
- MOB_EGG = 23817,
- MOB_FIRE_BOMB = 23920,
-
-// -- Hatcher Spells
+ // Hatcher Spells
SPELL_HATCH_EGG = 42471, // 43734
SPELL_SUMMON_HATCHLING = 42493,
-// -- Hatchling Spells
+ // Hatchling Spells
SPELL_FLAMEBUFFET = 43299
};
+enum Creatures
+{
+ NPC_AMANI_HATCHER = 23818,
+ NPC_HATCHLING = 23598, // 42493
+ NPC_EGG = 23817,
+ NPC_FIRE_BOMB = 23920
+};
+
const int area_dx = 44;
const int area_dy = 51;
@@ -136,7 +141,7 @@ class boss_janalai : public CreatureScript
uint64 FireBombGUIDs[40];
- void Reset()
+ void Reset() OVERRIDE
{
if (instance)
instance->SetData(DATA_JANALAIEVENT, NOT_STARTED);
@@ -160,7 +165,7 @@ class boss_janalai : public CreatureScript
HatchAllEggs(1);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -168,12 +173,12 @@ class boss_janalai : public CreatureScript
instance->SetData(DATA_JANALAIEVENT, DONE);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (instance)
instance->SetData(DATA_JANALAIEVENT, IN_PROGRESS);
@@ -182,7 +187,7 @@ class boss_janalai : public CreatureScript
// DoZoneInCombat();
}
- void DamageDealt(Unit* target, uint32 &damage, DamageEffectType /*damagetype*/)
+ void DamageDealt(Unit* target, uint32 &damage, DamageEffectType /*damagetype*/) OVERRIDE
{
if (isFlameBreathing)
{
@@ -205,9 +210,9 @@ class boss_janalai : public CreatureScript
for (uint8 j = 0; j < WallNum; j++)
{
if (WallNum == 3)
- wall = me->SummonCreature(MOB_FIRE_BOMB, FireWallCoords[i][0], FireWallCoords[i][1]+5*(j-1), FireWallCoords[i][2], FireWallCoords[i][3], TEMPSUMMON_TIMED_DESPAWN, 15000);
+ wall = me->SummonCreature(NPC_FIRE_BOMB, FireWallCoords[i][0], FireWallCoords[i][1]+5*(j-1), FireWallCoords[i][2], FireWallCoords[i][3], TEMPSUMMON_TIMED_DESPAWN, 15000);
else
- wall = me->SummonCreature(MOB_FIRE_BOMB, FireWallCoords[i][0]-2+4*j, FireWallCoords[i][1], FireWallCoords[i][2], FireWallCoords[i][3], TEMPSUMMON_TIMED_DESPAWN, 15000);
+ wall = me->SummonCreature(NPC_FIRE_BOMB, FireWallCoords[i][0]-2+4*j, FireWallCoords[i][1], FireWallCoords[i][2], FireWallCoords[i][3], TEMPSUMMON_TIMED_DESPAWN, 15000);
if (wall) wall->CastSpell(wall, SPELL_FIRE_WALL, true);
}
}
@@ -221,7 +226,7 @@ class boss_janalai : public CreatureScript
dx = float(irand(-area_dx/2, area_dx/2));
dy = float(irand(-area_dy/2, area_dy/2));
- Creature* bomb = DoSpawnCreature(MOB_FIRE_BOMB, dx, dy, 0, 0, TEMPSUMMON_TIMED_DESPAWN, 15000);
+ Creature* bomb = DoSpawnCreature(NPC_FIRE_BOMB, dx, dy, 0, 0, TEMPSUMMON_TIMED_DESPAWN, 15000);
if (bomb)
FireBombGUIDs[i] = bomb->GetGUID();
}
@@ -239,7 +244,7 @@ class boss_janalai : public CreatureScript
Cell cell(pair);
cell.SetNoCreate();
- Trinity::AllCreaturesOfEntryInRange check(me, MOB_EGG, 100);
+ Trinity::AllCreaturesOfEntryInRange check(me, NPC_EGG, 100);
Trinity::CreatureListSearcher<Trinity::AllCreaturesOfEntryInRange> searcher(me, templist, check);
TypeContainerVisitor<Trinity::CreatureListSearcher<Trinity::AllCreaturesOfEntryInRange>, GridTypeMapContainer> cSearcher(searcher);
@@ -272,7 +277,7 @@ class boss_janalai : public CreatureScript
Cell cell(pair);
cell.SetNoCreate();
- Trinity::AllCreaturesOfEntryInRange check(me, MOB_FIRE_BOMB, 100);
+ Trinity::AllCreaturesOfEntryInRange check(me, NPC_FIRE_BOMB, 100);
Trinity::CreatureListSearcher<Trinity::AllCreaturesOfEntryInRange> searcher(me, templist, check);
TypeContainerVisitor<Trinity::CreatureListSearcher<Trinity::AllCreaturesOfEntryInRange>, GridTypeMapContainer> cSearcher(searcher);
@@ -315,7 +320,7 @@ class boss_janalai : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (isFlameBreathing)
{
@@ -381,8 +386,8 @@ class boss_janalai : public CreatureScript
Map::PlayerList const &PlayerList = map->GetPlayers();
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
- if (Player* i_pl = i->getSource())
- if (i_pl->isAlive())
+ if (Player* i_pl = i->GetSource())
+ if (i_pl->IsAlive())
DoTeleportPlayer(i_pl, JanalainPos[0][0]-5+rand()%10, JanalainPos[0][1]-5+rand()%10, JanalainPos[0][2], 0);
//DoCast(Temp, SPELL_SUMMON_PLAYERS, true) // core bug, spell does not work if too far
return;
@@ -407,8 +412,8 @@ class boss_janalai : public CreatureScript
if (HatchAllEggs(0))
{
Talk(SAY_SUMMON_HATCHER);
- me->SummonCreature(MOB_AMANI_HATCHER, hatcherway[0][0][0], hatcherway[0][0][1], hatcherway[0][0][2], 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 10000);
- me->SummonCreature(MOB_AMANI_HATCHER, hatcherway[1][0][0], hatcherway[1][0][1], hatcherway[1][0][2], 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 10000);
+ me->SummonCreature(NPC_AMANI_HATCHER, hatcherway[0][0][0], hatcherway[0][0][1], hatcherway[0][0][2], 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 10000);
+ me->SummonCreature(NPC_AMANI_HATCHER, hatcherway[1][0][0], hatcherway[1][0][1], hatcherway[1][0][2], 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 10000);
HatcherTimer = 90000;
}
else
@@ -435,60 +440,61 @@ class boss_janalai : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_janalaiAI(creature);
}
};
-class mob_janalai_firebomb : public CreatureScript
+class npc_janalai_firebomb : public CreatureScript
{
public:
- mob_janalai_firebomb()
- : CreatureScript("mob_janalai_firebomb")
+ npc_janalai_firebomb()
+ : CreatureScript("npc_janalai_firebomb")
{
}
- struct mob_janalai_firebombAI : public ScriptedAI
+ struct npc_janalai_firebombAI : public ScriptedAI
{
- mob_janalai_firebombAI(Creature* creature) : ScriptedAI(creature){}
+ npc_janalai_firebombAI(Creature* creature) : ScriptedAI(creature){}
- void Reset() {}
+ void Reset() OVERRIDE {}
- void SpellHit(Unit* /*caster*/, const SpellInfo* spell)
+ void SpellHit(Unit* /*caster*/, const SpellInfo* spell) OVERRIDE
{
if (spell->Id == SPELL_FIRE_BOMB_THROW)
DoCast(me, SPELL_FIRE_BOMB_DUMMY, true);
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void AttackStart(Unit* /*who*/) {}
+ void AttackStart(Unit* /*who*/) OVERRIDE {}
- void MoveInLineOfSight(Unit* /*who*/) {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 /*diff*/) {}
+
+ void UpdateAI(uint32 /*diff*/) OVERRIDE {}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_janalai_firebombAI(creature);
+ return new npc_janalai_firebombAI(creature);
}
};
-class mob_janalai_hatcher : public CreatureScript
+class npc_janalai_hatcher : public CreatureScript
{
public:
- mob_janalai_hatcher()
- : CreatureScript("mob_janalai_hatcher")
+ npc_janalai_hatcher()
+ : CreatureScript("npc_janalai_hatcher")
{
}
- struct mob_janalai_hatcherAI : public ScriptedAI
+ struct npc_janalai_hatcherAI : public ScriptedAI
{
- mob_janalai_hatcherAI(Creature* creature) : ScriptedAI(creature)
+ npc_janalai_hatcherAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -503,7 +509,7 @@ class mob_janalai_hatcher : public CreatureScript
bool hasChangedSide;
bool isHatching;
- void Reset()
+ void Reset() OVERRIDE
{
me->SetWalk(true);
side =(me->GetPositionY() < 1150);
@@ -545,10 +551,11 @@ class mob_janalai_hatcher : public CreatureScript
return num == 0; // if num == 0, no more templist
}
- void EnterCombat(Unit* /*who*/) {}
- void AttackStart(Unit* /*who*/) {}
- void MoveInLineOfSight(Unit* /*who*/) {}
- void MovementInform(uint32, uint32)
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+ void AttackStart(Unit* /*who*/) OVERRIDE {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
+
+ void MovementInform(uint32, uint32) OVERRIDE
{
if (waypoint == 5)
{
@@ -560,7 +567,7 @@ class mob_janalai_hatcher : public CreatureScript
WaitTimer = 1;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!instance || !(instance->GetData(DATA_JANALAIEVENT) == IN_PROGRESS))
{
@@ -603,24 +610,24 @@ class mob_janalai_hatcher : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_janalai_hatcherAI(creature);
+ return new npc_janalai_hatcherAI(creature);
}
};
-class mob_janalai_hatchling : public CreatureScript
+class npc_janalai_hatchling : public CreatureScript
{
public:
- mob_janalai_hatchling()
- : CreatureScript("mob_janalai_hatchling")
+ npc_janalai_hatchling()
+ : CreatureScript("npc_janalai_hatchling")
{
}
- struct mob_janalai_hatchlingAI : public ScriptedAI
+ struct npc_janalai_hatchlingAI : public ScriptedAI
{
- mob_janalai_hatchlingAI(Creature* creature) : ScriptedAI(creature)
+ npc_janalai_hatchlingAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -628,7 +635,7 @@ class mob_janalai_hatchling : public CreatureScript
InstanceScript* instance;
uint32 BuffetTimer;
- void Reset()
+ void Reset() OVERRIDE
{
BuffetTimer = 7000;
if (me->GetPositionY() > 1150)
@@ -636,12 +643,12 @@ class mob_janalai_hatchling : public CreatureScript
else
me->GetMotionMaster()->MovePoint(0, hatcherway[1][3][0]+rand()%4-2, 1150.0f+rand()%4-2, hatcherway[1][3][2]);
- me->SetUnitMovementFlags(MOVEMENTFLAG_DISABLE_GRAVITY);
+ me->SetDisableGravity(true);
}
- void EnterCombat(Unit* /*who*/) {/*DoZoneInCombat();*/}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {/*DoZoneInCombat();*/ }
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!instance || !(instance->GetData(DATA_JANALAIEVENT) == IN_PROGRESS))
{
@@ -654,7 +661,7 @@ class mob_janalai_hatchling : public CreatureScript
if (BuffetTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_FLAMEBUFFET, false);
+ DoCastVictim(SPELL_FLAMEBUFFET, false);
BuffetTimer = 10000;
} else BuffetTimer -= diff;
@@ -662,31 +669,31 @@ class mob_janalai_hatchling : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_janalai_hatchlingAI(creature);
+ return new npc_janalai_hatchlingAI(creature);
}
};
-class mob_janalai_egg : public CreatureScript
+class npc_janalai_egg : public CreatureScript
{
public:
- mob_janalai_egg(): CreatureScript("mob_janalai_egg") {}
+ npc_janalai_egg(): CreatureScript("npc_janalai_egg") {}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_janalai_eggAI(creature);
+ return new npc_janalai_eggAI(creature);
}
- struct mob_janalai_eggAI : public ScriptedAI
+ struct npc_janalai_eggAI : public ScriptedAI
{
- mob_janalai_eggAI(Creature* creature) : ScriptedAI(creature){}
+ npc_janalai_eggAI(Creature* creature) : ScriptedAI(creature){}
- void Reset() {}
+ void Reset() OVERRIDE {}
- void UpdateAI(uint32 /*diff*/) {}
+ void UpdateAI(uint32 /*diff*/) OVERRIDE {}
- void SpellHit(Unit* /*caster*/, const SpellInfo* spell)
+ void SpellHit(Unit* /*caster*/, const SpellInfo* spell) OVERRIDE
{
if (spell->Id == SPELL_HATCH_EGG)
{
@@ -700,9 +707,9 @@ public:
void AddSC_boss_janalai()
{
new boss_janalai();
- new mob_janalai_firebomb();
- new mob_janalai_hatcher();
- new mob_janalai_hatchling();
- new mob_janalai_egg();
+ new npc_janalai_firebomb();
+ new npc_janalai_hatcher();
+ new npc_janalai_hatchling();
+ new npc_janalai_egg();
}
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp
index 6c8b1cd8aba..24b043775b1 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp
@@ -30,7 +30,24 @@ EndScriptData */
#include "GridNotifiersImpl.h"
#include "CellImpl.h"
-//Trash Waves
+enum Spells
+{
+ SPELL_BERSERK = 45078,
+
+ // Troll form
+ SPELL_BRUTALSWIPE = 42384,
+ SPELL_MANGLE = 42389,
+ SPELL_MANGLEEFFECT = 44955,
+ SPELL_SURGE = 42402,
+ SPELL_BEARFORM = 42377,
+
+ // Bear form
+ SPELL_LACERATINGSLASH = 42395,
+ SPELL_RENDFLESH = 42397,
+ SPELL_DEAFENINGROAR = 42398
+};
+
+// Trash Waves
float NalorakkWay[8][3] =
{
{ 18.569f, 1414.512f, 11.42f}, // waypoint 1
@@ -69,26 +86,12 @@ float NalorakkWay[8][3] =
#define SOUND_YELL_DEATH 12077
#define YELL_BERSERK "You had your chance, now it be too late!" //Never seen this being used, so just guessing from what I hear.
#define SOUND_YELL_BERSERK 12074
-
-#define SPELL_BERSERK 45078
-
-//Defines for Troll form
-#define SPELL_BRUTALSWIPE 42384
-#define SPELL_MANGLE 42389
-#define SPELL_MANGLEEFFECT 44955
-#define SPELL_SURGE 42402
-#define SPELL_BEARFORM 42377
-
#define YELL_SURGE "I bring da pain!"
#define SOUND_YELL_SURGE 12071
#define YELL_SHIFTEDTOTROLL "Make way for Nalorakk!"
#define SOUND_YELL_TOTROLL 12073
-//Defines for Bear form
-#define SPELL_LACERATINGSLASH 42395
-#define SPELL_RENDFLESH 42397
-#define SPELL_DEAFENINGROAR 42398
#define YELL_SHIFTEDTOBEAR "You call on da beast, you gonna get more dan you bargain for!"
#define SOUND_YELL_TOBEAR 12072
@@ -130,7 +133,7 @@ class boss_nalorakk : public CreatureScript
uint32 MovePhase;
uint32 waitTimer;
- void Reset()
+ void Reset() OVERRIDE
{
if (MoveEvent)
{
@@ -190,13 +193,14 @@ class boss_nalorakk : public CreatureScript
}
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (!MoveEvent)
ScriptedAI::AttackStart(who);
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (!MoveEvent)
{
@@ -269,7 +273,7 @@ class boss_nalorakk : public CreatureScript
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (instance)
instance->SetData(DATA_NALORAKKEVENT, IN_PROGRESS);
@@ -279,7 +283,7 @@ class boss_nalorakk : public CreatureScript
DoZoneInCombat();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
instance->SetData(DATA_NALORAKKEVENT, DONE);
@@ -288,7 +292,7 @@ class boss_nalorakk : public CreatureScript
DoPlaySoundToSet(me, SOUND_YELL_DEATH);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
switch (urand(0, 1))
{
@@ -303,7 +307,7 @@ class boss_nalorakk : public CreatureScript
}
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (MoveEvent)
{
@@ -343,7 +347,7 @@ class boss_nalorakk : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (waitTimer && inMove)
{
@@ -398,15 +402,15 @@ class boss_nalorakk : public CreatureScript
{
if (BrutalSwipe_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_BRUTALSWIPE);
+ DoCastVictim(SPELL_BRUTALSWIPE);
BrutalSwipe_Timer = urand(7000, 12000);
} else BrutalSwipe_Timer -= diff;
if (Mangle_Timer <= diff)
{
- if (me->getVictim() && !me->getVictim()->HasAura(SPELL_MANGLEEFFECT))
+ if (me->GetVictim() && !me->GetVictim()->HasAura(SPELL_MANGLEEFFECT))
{
- DoCast(me->getVictim(), SPELL_MANGLE);
+ DoCastVictim(SPELL_MANGLE);
Mangle_Timer = 1000;
}
else Mangle_Timer = urand(10000, 15000);
@@ -426,19 +430,19 @@ class boss_nalorakk : public CreatureScript
{
if (LaceratingSlash_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_LACERATINGSLASH);
+ DoCastVictim(SPELL_LACERATINGSLASH);
LaceratingSlash_Timer = urand(18000, 23000);
} else LaceratingSlash_Timer -= diff;
if (RendFlesh_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_RENDFLESH);
+ DoCastVictim(SPELL_RENDFLESH);
RendFlesh_Timer = urand(5000, 10000);
} else RendFlesh_Timer -= diff;
if (DeafeningRoar_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_DEAFENINGROAR);
+ DoCastVictim(SPELL_DEAFENINGROAR);
DeafeningRoar_Timer = urand(15000, 20000);
} else DeafeningRoar_Timer -= diff;
}
@@ -447,7 +451,7 @@ class boss_nalorakk : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_nalorakkAI(creature);
}
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp
index be88e67386b..11b18e9e5cc 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp
@@ -167,7 +167,7 @@ class boss_zuljin : public CreatureScript
SummonList Summons;
- void Reset()
+ void Reset() OVERRIDE
{
if (instance)
instance->SetData(DATA_ZULJINEVENT, NOT_STARTED);
@@ -204,7 +204,7 @@ class boss_zuljin : public CreatureScript
//me->SetByteValue(UNIT_FIELD_BYTES_2, 0, SHEATH_STATE_MELEE);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (instance)
instance->SetData(DATA_ZULJINEVENT, IN_PROGRESS);
@@ -216,7 +216,7 @@ class boss_zuljin : public CreatureScript
EnterPhase(0);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
if (Intro_Timer)
return;
@@ -224,7 +224,7 @@ class boss_zuljin : public CreatureScript
Talk(YELL_KILL);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
instance->SetData(DATA_ZULJINEVENT, DONE);
@@ -236,7 +236,7 @@ class boss_zuljin : public CreatureScript
Temp->SetUInt32Value(UNIT_FIELD_BYTES_1, UNIT_STAND_STATE_DEAD);
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (Phase == 2)
AttackStartNoMove(who);
@@ -248,18 +248,18 @@ class boss_zuljin : public CreatureScript
{
if (!me->IsNonMeleeSpellCasted(false))
{
- if (me->isAttackReady() && me->IsWithinMeleeRange(me->getVictim()))
+ if (me->isAttackReady() && me->IsWithinMeleeRange(me->GetVictim()))
{
if (Phase == 1 && !Overpower_Timer)
{
- uint32 health = me->getVictim()->GetHealth();
- me->AttackerStateUpdate(me->getVictim());
- if (me->getVictim() && health == me->getVictim()->GetHealth())
+ uint32 health = me->GetVictim()->GetHealth();
+ me->AttackerStateUpdate(me->GetVictim());
+ if (me->GetVictim() && health == me->GetVictim()->GetHealth())
{
- DoCast(me->getVictim(), SPELL_OVERPOWER, false);
+ DoCastVictim(SPELL_OVERPOWER, false);
Overpower_Timer = 5000;
}
- } else me->AttackerStateUpdate(me->getVictim());
+ } else me->AttackerStateUpdate(me->GetVictim());
me->resetAttackTimer();
}
}
@@ -297,12 +297,12 @@ class boss_zuljin : public CreatureScript
}
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
Summons.Summon(summon);
}
- void SummonedCreatureDespawn(Creature* summon)
+ void SummonedCreatureDespawn(Creature* summon) OVERRIDE
{
Summons.Despawn(summon);
}
@@ -349,12 +349,12 @@ class boss_zuljin : public CreatureScript
}
}
else
- me->AI()->AttackStart(me->getVictim());
+ me->AI()->AttackStart(me->GetVictim());
if (NextPhase == 3)
{
me->RemoveAurasDueToSpell(SPELL_ENERGY_STORM);
Summons.DespawnEntry(CREATURE_FEATHER_VORTEX);
- me->GetMotionMaster()->MoveChase(me->getVictim());
+ me->GetMotionMaster()->MoveChase(me->GetVictim());
}
break;
default:
@@ -363,7 +363,7 @@ class boss_zuljin : public CreatureScript
Phase = NextPhase;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!TankGUID)
{
@@ -431,7 +431,7 @@ class boss_zuljin : public CreatureScript
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
{
- TankGUID = me->getVictim()->GetGUID();
+ TankGUID = me->GetVictim()->GetGUID();
me->SetSpeed(MOVE_RUN, 5.0f);
AttackStart(target); // change victim
Claw_Rage_Timer = 0;
@@ -443,7 +443,7 @@ class boss_zuljin : public CreatureScript
{
if (Claw_Loop_Timer <= diff)
{
- Unit* target = me->getVictim();
+ Unit* target = me->GetVictim();
if (!target || !target->isTargetableForAttack()) target = Unit::GetUnit(*me, TankGUID);
if (!target || !target->isTargetableForAttack()) target = SelectTarget(SELECT_TARGET_RANDOM, 0);
if (target)
@@ -480,7 +480,7 @@ class boss_zuljin : public CreatureScript
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
{
- TankGUID = me->getVictim()->GetGUID();
+ TankGUID = me->GetVictim()->GetGUID();
me->SetSpeed(MOVE_RUN, 5.0f);
AttackStart(target); // change victim
Lynx_Rush_Timer = 0;
@@ -489,7 +489,7 @@ class boss_zuljin : public CreatureScript
}
else if (!Lynx_Rush_Timer)
{
- Unit* target = me->getVictim();
+ Unit* target = me->GetVictim();
if (!target || !target->isTargetableForAttack())
{
target = SelectTarget(SELECT_TARGET_RANDOM, 0);
@@ -553,52 +553,52 @@ class boss_zuljin : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_zuljinAI(creature);
}
};
-class mob_zuljin_vortex : public CreatureScript
+class npc_zuljin_vortex : public CreatureScript
{
public:
- mob_zuljin_vortex()
- : CreatureScript("mob_zuljin_vortex")
+ npc_zuljin_vortex()
+ : CreatureScript("npc_zuljin_vortex")
{
}
- struct mob_zuljin_vortexAI : public ScriptedAI
+ struct npc_zuljin_vortexAI : public ScriptedAI
{
- mob_zuljin_vortexAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_zuljin_vortexAI(Creature* creature) : ScriptedAI(creature) {}
- void Reset() {}
+ void Reset() OVERRIDE {}
- void EnterCombat(Unit* /*target*/) {}
+ void EnterCombat(Unit* /*target*/) OVERRIDE {}
- void SpellHit(Unit* caster, const SpellInfo* spell)
+ void SpellHit(Unit* caster, const SpellInfo* spell) OVERRIDE
{
if (spell->Id == SPELL_ZAP_INFORM)
DoCast(caster, SPELL_ZAP_DAMAGE, true);
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
//if the vortex reach the target, it change his target to another player
- if (me->IsWithinMeleeRange(me->getVictim()))
+ if (me->IsWithinMeleeRange(me->GetVictim()))
AttackStart(SelectTarget(SELECT_TARGET_RANDOM, 0));
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_zuljin_vortexAI(creature);
+ return new npc_zuljin_vortexAI(creature);
}
};
void AddSC_boss_zuljin()
{
new boss_zuljin();
- new mob_zuljin_vortex();
+ new npc_zuljin_vortex();
}
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp b/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp
index 44b1732f1a9..8068238b12e 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp
@@ -182,7 +182,7 @@ class instance_zulaman : public InstanceMapScript
return;
Map::PlayerList::const_iterator i = PlayerList.begin();
- if (Player* i_pl = i->getSource())
+ if (Player* i_pl = i->GetSource())
{
if (Unit* Hostage = i_pl->SummonCreature(HostageInfo[num].npc, HostageInfo[num].x, HostageInfo[num].y, HostageInfo[num].z, HostageInfo[num].o, TEMPSUMMON_DEAD_DESPAWN, 0))
{
@@ -231,7 +231,7 @@ class instance_zulaman : public InstanceMapScript
} else TC_LOG_ERROR(LOG_FILTER_TSCR, "Zul'aman: corrupted save data.");
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
switch (type)
{
@@ -313,7 +313,7 @@ class instance_zulaman : public InstanceMapScript
}
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -350,7 +350,7 @@ class instance_zulaman : public InstanceMapScript
}
}
- uint64 GetData64(uint32 type) const
+ uint64 GetData64(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -365,7 +365,7 @@ class instance_zulaman : public InstanceMapScript
};
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_zulaman_InstanceMapScript(map);
}
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp
index ff6d434fa40..bbc8d523cb8 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp
@@ -39,9 +39,16 @@ EndContentData */
## npc_forest_frog
######*/
-#define SPELL_REMOVE_AMANI_CURSE 43732
-#define SPELL_PUSH_MOJO 43923
-#define ENTRY_FOREST_FROG 24396
+enum ForestFrog
+{
+ // Spells
+ SPELL_REMOVE_AMANI_CURSE = 43732,
+ SPELL_PUSH_MOJO = 43923,
+
+ // Creatures
+ NPC_FOREST_FROG = 24396
+
+};
class npc_forest_frog : public CreatureScript
{
@@ -61,9 +68,9 @@ class npc_forest_frog : public CreatureScript
InstanceScript* instance;
- void Reset() {}
+ void Reset() OVERRIDE {}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
void DoSpawnRandom()
{
@@ -96,9 +103,9 @@ class npc_forest_frog : public CreatureScript
}
}
- void SpellHit(Unit* caster, const SpellInfo* spell)
+ void SpellHit(Unit* caster, const SpellInfo* spell) OVERRIDE
{
- if (spell->Id == SPELL_REMOVE_AMANI_CURSE && caster->GetTypeId() == TYPEID_PLAYER && me->GetEntry() == ENTRY_FOREST_FROG)
+ if (spell->Id == SPELL_REMOVE_AMANI_CURSE && caster->GetTypeId() == TYPEID_PLAYER && me->GetEntry() == NPC_FOREST_FROG)
{
//increase or decrease chance of mojo?
if (rand()%99 == 50) DoCast(caster, SPELL_PUSH_MOJO, true);
@@ -107,7 +114,7 @@ class npc_forest_frog : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_forest_frogAI(creature);
}
@@ -137,37 +144,37 @@ class npc_zulaman_hostage : public CreatureScript
bool IsLoot;
uint64 PlayerGUID;
- void Reset() {}
+ void Reset() OVERRIDE {}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Player* player = Unit::GetPlayer(*me, PlayerGUID);
if (player)
player->SendLoot(me->GetGUID(), LOOT_CORPSE);
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
if (IsLoot)
DoCast(me, 7, false);
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_zulaman_hostageAI(creature);
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HOSTAGE1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
@@ -265,8 +272,7 @@ class npc_harrison_jones : public CreatureScript
{
public:
- npc_harrison_jones()
- : CreatureScript("npc_harrison_jones")
+ npc_harrison_jones() : CreatureScript("npc_harrison_jones")
{
}
@@ -283,22 +289,21 @@ class npc_harrison_jones : public CreatureScript
uint32 _gongTimer;
uint64 uiTargetGUID;
- void Reset()
+ void Reset() OVERRIDE
{
_gongEvent = 0;
_gongTimer = 0;
uiTargetGUID = 0;
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void sGossipSelect(Player* player, uint32 sender, uint32 action)
+ void sGossipSelect(Player* player, uint32 sender, uint32 action) OVERRIDE
{
if (me->GetCreatureTemplate()->GossipMenuId == sender && !action)
{
player->CLOSE_GOSSIP_MENU();
- me->SetInFront(player);
- me->SendMovementFlagUpdate(true);
+ me->SetFacingToObject(player);
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
Talk(SAY_HARRISON_0);
_gongEvent = GONG_EVENT_1;
@@ -306,7 +311,7 @@ class npc_harrison_jones : public CreatureScript
}
}
- void SpellHit(Unit*, const SpellInfo* spell)
+ void SpellHit(Unit*, const SpellInfo* spell) OVERRIDE
{
if (spell->Id == SPELL_COSMETIC_SPEAR_THROW)
{
@@ -321,12 +326,15 @@ class npc_harrison_jones : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (_gongEvent)
{
if (_gongTimer <= diff)
{
+ if (!instance)
+ return;
+
switch (_gongEvent)
{
case GONG_EVENT_1:
@@ -356,8 +364,7 @@ class npc_harrison_jones : public CreatureScript
// trigger or gong will need to be scripted to set IN_PROGRESS after enough hits.
// This is temp workaround.
- if (instance)
- instance->SetData(DATA_GONGEVENT, IN_PROGRESS); // to be removed.
+ instance->SetData(DATA_GONGEVENT, IN_PROGRESS); // to be removed.
if (instance->GetData(DATA_GONGEVENT) == IN_PROGRESS)
{
@@ -404,9 +411,11 @@ class npc_harrison_jones : public CreatureScript
ptarget->AI()->SetData(0, 1);
}
else
+ {
ptarget->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
ptarget->SetReactState(REACT_PASSIVE);
ptarget->AI()->SetData(0, 2);
+ }
}
}
}
@@ -431,16 +440,16 @@ class npc_harrison_jones : public CreatureScript
_gongEvent = GONG_EVENT_10;
break;
case GONG_EVENT_10:
- me->SetFacingTo(1.59044f);
- _gongEvent = 11;
- _gongTimer = 6000;
+ me->SetFacingTo(1.59044f);
+ _gongEvent = 11;
+ _gongTimer = 6000;
break;
case GONG_EVENT_11:
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
- if (instance)
- instance->SetData(DATA_GONGEVENT, NOT_STARTED);
- _gongEvent = 0;
- _gongTimer = 1000;
+ me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+
+ instance->SetData(DATA_GONGEVENT, NOT_STARTED);
+ _gongEvent = 0;
+ _gongTimer = 1000;
break;
}
}
@@ -450,7 +459,7 @@ class npc_harrison_jones : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_harrison_jonesAI(creature);
}
@@ -471,13 +480,13 @@ class spell_banging_the_gong : public SpellScriptLoader
GetHitGObj()->SendCustomAnim(0);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_banging_the_gong_SpellScript::Activate, EFFECT_1, SPELL_EFFECT_ACTIVATE_OBJECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_banging_the_gong_SpellScript();
}
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp
index 97eeb385e15..2c48d18d112 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp
@@ -94,7 +94,7 @@ class boss_arlokk : public CreatureScript
{
boss_arlokkAI(Creature* creature) : BossAI(creature, DATA_ARLOKK) { }
- void Reset()
+ void Reset() OVERRIDE
{
_summonCountA = 0;
_summonCountB = 0;
@@ -110,7 +110,7 @@ class boss_arlokk : public CreatureScript
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
me->RemoveAllAuras();
@@ -122,7 +122,7 @@ class boss_arlokk : public CreatureScript
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, urand(7000, 9000), 0, PHASE_ONE);
@@ -159,7 +159,7 @@ class boss_arlokk : public CreatureScript
}
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
if (instance)
{
@@ -172,7 +172,7 @@ class boss_arlokk : public CreatureScript
me->DespawnOrUnsummon(4000);
}
- void SetData(uint32 id, uint32 /*value*/)
+ void SetData(uint32 id, uint32 /*value*/) OVERRIDE
{
if (id == 1)
--_summonCountA;
@@ -180,7 +180,7 @@ class boss_arlokk : public CreatureScript
--_summonCountB;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -222,9 +222,9 @@ class boss_arlokk : public CreatureScript
break;
case EVENT_MARK_OF_ARLOKK:
{
- Unit* target = SelectTarget(SELECT_TARGET_TOPAGGRO, urand(1,3), 0.0f, false, -SPELL_MARK_OF_ARLOKK);
+ Unit* target = SelectTarget(SELECT_TARGET_TOPAGGRO, urand(1, 3), 0.0f, false, -SPELL_MARK_OF_ARLOKK);
if (!target)
- target = me->getVictim();
+ target = me->GetVictim();
if (target)
{
DoCast(target, SPELL_MARK_OF_ARLOKK, true);
@@ -309,7 +309,7 @@ class boss_arlokk : public CreatureScript
uint64 _triggersSideBGUID[5];
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetZulGurubAI<boss_arlokkAI>(creature);
}
@@ -344,7 +344,7 @@ class npc_zulian_prowler : public CreatureScript
{
npc_zulian_prowlerAI(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()) { }
- void Reset()
+ void Reset() OVERRIDE
{
if (me->GetPositionY() < -1625.0f)
_sideData = 1;
@@ -360,33 +360,33 @@ class npc_zulian_prowler : public CreatureScript
_events.ScheduleEvent(EVENT_ATTACK, 6000);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
me->GetMotionMaster()->Clear(false);
me->RemoveAura(SPELL_SNEAK_RANK_1_1);
me->RemoveAura(SPELL_SNEAK_RANK_1_2);
}
- void SpellHit(Unit* caster, SpellInfo const* spell)
+ void SpellHit(Unit* caster, SpellInfo const* spell) OVERRIDE
{
if (spell->Id == SPELL_MARK_OF_ARLOKK_TRIGGER) // Should only hit if line of sight
me->Attack(caster, true);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (_instance)
{
if (Unit* arlokk = me->GetUnit(*me, _instance->GetData64(NPC_ARLOKK)))
{
- if (arlokk->isAlive())
+ if (arlokk->IsAlive())
arlokk->GetAI()->SetData(_sideData, 0);
}
}
me->DespawnOrUnsummon(4000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (UpdateVictim())
{
@@ -416,7 +416,7 @@ class npc_zulian_prowler : public CreatureScript
InstanceScript* _instance;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetZulGurubAI<npc_zulian_prowlerAI>(creature);
}
@@ -435,7 +435,7 @@ class go_gong_of_bethekk : public GameObjectScript
{
public: go_gong_of_bethekk() : GameObjectScript("go_gong_of_bethekk") {}
- bool OnGossipHello(Player* /*player*/, GameObject* go)
+ bool OnGossipHello(Player* /*player*/, GameObject* go) OVERRIDE
{
if (go->GetInstanceScript())
{
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_gahzranka.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_gahzranka.cpp
index e930d864940..a6ed3b72146 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_gahzranka.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_gahzranka.cpp
@@ -36,9 +36,9 @@ enum Spells
enum Events
{
- EVENT_FROSTBREATH = 0,
- EVENT_MASSIVEGEYSER = 1,
- EVENT_SLAM = 2
+ EVENT_FROSTBREATH = 1,
+ EVENT_MASSIVEGEYSER = 2,
+ EVENT_SLAM = 3
};
class boss_gahzranka : public CreatureScript // gahzranka
@@ -49,17 +49,17 @@ class boss_gahzranka : public CreatureScript // gahzranka
{
boss_gahzrankaAI(Creature* creature) : BossAI(creature, DATA_GAHZRANKA) {}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
events.ScheduleEvent(EVENT_FROSTBREATH, 8000);
@@ -67,7 +67,7 @@ class boss_gahzranka : public CreatureScript // gahzranka
events.ScheduleEvent(EVENT_SLAM, 17000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -102,7 +102,7 @@ class boss_gahzranka : public CreatureScript // gahzranka
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_gahzrankaAI(creature);
}
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp
index af8303e63e4..3c472b1e6d5 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp
@@ -35,8 +35,8 @@ enum Spells
enum Events
{
- EVENT_AVATAR = 0,
- EVENT_GROUND_TREMOR = 1
+ EVENT_AVATAR = 1,
+ EVENT_GROUND_TREMOR = 2
};
class boss_grilek : public CreatureScript // grilek
@@ -47,24 +47,24 @@ class boss_grilek : public CreatureScript // grilek
{
boss_grilekAI(Creature* creature) : BossAI(creature, DATA_EDGE_OF_MADNESS) {}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
events.ScheduleEvent(EVENT_AVATAR, urand(15000, 25000));
events.ScheduleEvent(EVENT_GROUND_TREMOR, urand(15000, 25000));
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -80,7 +80,7 @@ class boss_grilek : public CreatureScript // grilek
{
case EVENT_AVATAR:
DoCast(me, SPELL_AVATAR);
- if (Unit* victim = me->getVictim())
+ if (Unit* victim = me->GetVictim())
{
if (DoGetThreat(victim))
DoModifyThreatPercent(victim, -50);
@@ -103,7 +103,7 @@ class boss_grilek : public CreatureScript // grilek
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_grilekAI(creature);
}
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_hakkar.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_hakkar.cpp
index f9fe338d918..7603e14ea2a 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_hakkar.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_hakkar.cpp
@@ -51,17 +51,17 @@ enum Spells
enum Events
{
- EVENT_BLOOD_SIPHON = 0,
- EVENT_CORRUPTED_BLOOD = 1,
- EVENT_CAUSE_INSANITY = 2, // Spell needs scripting. Event disabled
- EVENT_WILL_OF_HAKKAR = 3,
- EVENT_ENRAGE = 4,
+ EVENT_BLOOD_SIPHON = 1,
+ EVENT_CORRUPTED_BLOOD = 2,
+ EVENT_CAUSE_INSANITY = 3, // Spell needs scripting. Event disabled
+ EVENT_WILL_OF_HAKKAR = 4,
+ EVENT_ENRAGE = 5,
// The Aspects of all High Priests events
- EVENT_ASPECT_OF_JEKLIK = 5,
- EVENT_ASPECT_OF_VENOXIS = 6,
- EVENT_ASPECT_OF_MARLI = 7,
- EVENT_ASPECT_OF_THEKAL = 8,
- EVENT_ASPECT_OF_ARLOKK = 9
+ EVENT_ASPECT_OF_JEKLIK = 6,
+ EVENT_ASPECT_OF_VENOXIS = 7,
+ EVENT_ASPECT_OF_MARLI = 8,
+ EVENT_ASPECT_OF_THEKAL = 9,
+ EVENT_ASPECT_OF_ARLOKK = 10
};
class boss_hakkar : public CreatureScript
@@ -72,17 +72,17 @@ class boss_hakkar : public CreatureScript
{
boss_hakkarAI(Creature* creature) : BossAI(creature, DATA_HAKKAR) {}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
events.ScheduleEvent(EVENT_BLOOD_SIPHON, 90000);
@@ -103,7 +103,7 @@ class boss_hakkar : public CreatureScript
Talk(SAY_AGGRO);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -167,7 +167,7 @@ class boss_hakkar : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_hakkarAI(creature);
}
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp
index b2282ba85da..27159a700cb 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp
@@ -35,9 +35,9 @@ enum Spells
enum Events
{
- EVENT_MANABURN = 0,
- EVENT_SLEEP = 1,
- EVENT_ILLUSIONS = 2
+ EVENT_MANABURN = 1,
+ EVENT_SLEEP = 2,
+ EVENT_ILLUSIONS = 3
};
class boss_hazzarah : public CreatureScript
@@ -48,17 +48,17 @@ class boss_hazzarah : public CreatureScript
{
boss_hazzarahAI(Creature* creature) : BossAI(creature, DATA_EDGE_OF_MADNESS) {}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
events.ScheduleEvent(EVENT_MANABURN, urand(4000, 10000));
@@ -66,7 +66,7 @@ class boss_hazzarah : public CreatureScript
events.ScheduleEvent(EVENT_ILLUSIONS, urand(10000, 18000));
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -111,7 +111,7 @@ class boss_hazzarah : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_hazzarahAI(creature);
}
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_jeklik.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_jeklik.cpp
index 73d2982aee6..2a04a03938d 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_jeklik.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_jeklik.cpp
@@ -68,7 +68,7 @@ class boss_jeklik : public CreatureScript //jeklik
bool PhaseTwo;
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
Charge_Timer = 20000;
@@ -84,25 +84,25 @@ class boss_jeklik : public CreatureScript //jeklik
PhaseTwo = false;
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
Talk(SAY_DEATH);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
Talk(SAY_AGGRO);
DoCast(me, SPELL_BAT_FORM);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
- if (me->getVictim() && me->isAlive())
+ if (me->GetVictim() && me->IsAlive())
{
if (HealthAbovePct(50))
{
@@ -119,13 +119,13 @@ class boss_jeklik : public CreatureScript //jeklik
if (SonicBurst_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_SONICBURST);
+ DoCastVictim(SPELL_SONICBURST);
SonicBurst_Timer = urand(8000, 13000);
} else SonicBurst_Timer -= diff;
if (Screech_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_SCREECH);
+ DoCastVictim(SPELL_SCREECH);
Screech_Timer = urand(18000, 26000);
} else Screech_Timer -= diff;
@@ -169,14 +169,14 @@ class boss_jeklik : public CreatureScript //jeklik
if (MindFlay_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_MIND_FLAY);
+ DoCastVictim(SPELL_MIND_FLAY);
MindFlay_Timer = 16000;
}MindFlay_Timer -=diff;
if (ChainMindFlay_Timer <= diff)
{
me->InterruptNonMeleeSpells(false);
- DoCast(me->getVictim(), SPELL_CHAIN_MIND_FLAY);
+ DoCastVictim(SPELL_CHAIN_MIND_FLAY);
ChainMindFlay_Timer = urand(15000, 30000);
}ChainMindFlay_Timer -=diff;
@@ -211,25 +211,25 @@ class boss_jeklik : public CreatureScript //jeklik
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_jeklikAI(creature);
}
};
//Flying Bat
-class mob_batrider : public CreatureScript
+class npc_batrider : public CreatureScript
{
public:
- mob_batrider()
- : CreatureScript("mob_batrider")
+ npc_batrider()
+ : CreatureScript("npc_batrider")
{
}
- struct mob_batriderAI : public ScriptedAI
+ struct npc_batriderAI : public ScriptedAI
{
- mob_batriderAI(Creature* creature) : ScriptedAI(creature)
+ npc_batriderAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -239,7 +239,7 @@ class mob_batrider : public CreatureScript
uint32 Bomb_Timer;
uint32 Check_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
Bomb_Timer = 2000;
Check_Timer = 1000;
@@ -247,9 +247,9 @@ class mob_batrider : public CreatureScript
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -284,15 +284,15 @@ class mob_batrider : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_batriderAI(creature);
+ return new npc_batriderAI(creature);
}
};
void AddSC_boss_jeklik()
{
new boss_jeklik();
- new mob_batrider();
+ new npc_batrider();
}
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp
index 166acc13f58..0bbfefc69fb 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp
@@ -48,11 +48,11 @@ enum Spells
enum Events
{
- EVENT_BRAINWASHTOTEM = 0,
- EVENT_POWERFULLHEALINGWARD = 1,
- EVENT_HEX = 2,
- EVENT_DELUSIONSOFJINDO = 3,
- EVENT_TELEPORT = 4
+ EVENT_BRAINWASHTOTEM = 1,
+ EVENT_POWERFULLHEALINGWARD = 2,
+ EVENT_HEX = 3,
+ EVENT_DELUSIONSOFJINDO = 4,
+ EVENT_TELEPORT = 5
};
Position const TeleportLoc = {-11583.7783f, -1249.4278f, 77.5471f, 4.745f};
@@ -65,17 +65,17 @@ class boss_jindo : public CreatureScript
{
boss_jindoAI(Creature* creature) : BossAI(creature, DATA_JINDO) {}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
events.ScheduleEvent(EVENT_BRAINWASHTOTEM, 20000);
@@ -86,7 +86,7 @@ class boss_jindo : public CreatureScript
Talk(SAY_AGGRO);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -110,7 +110,7 @@ class boss_jindo : public CreatureScript
events.ScheduleEvent(EVENT_POWERFULLHEALINGWARD, urand(14000, 20000));
break;
case EVENT_HEX:
- if (Unit* target = me->getVictim())
+ if (Unit* target = me->GetVictim())
{
DoCast(target, SPELL_HEX, true);
if (DoGetThreat(target))
@@ -134,7 +134,7 @@ class boss_jindo : public CreatureScript
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
{
DoTeleportPlayer(target, TeleportLoc.m_positionX, TeleportLoc.m_positionY, TeleportLoc.m_positionZ, TeleportLoc.m_orientation);
- if (DoGetThreat(me->getVictim()))
+ if (DoGetThreat(me->GetVictim()))
DoModifyThreatPercent(target, -100);
Creature* SacrificedTroll;
SacrificedTroll = me->SummonCreature(NPC_SACRIFICED_TROLL, target->GetPositionX()+2, target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
@@ -176,25 +176,25 @@ class boss_jindo : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_jindoAI(creature);
}
};
//Healing Ward
-class mob_healing_ward : public CreatureScript
+class npc_healing_ward : public CreatureScript
{
public:
- mob_healing_ward()
- : CreatureScript("mob_healing_ward")
+ npc_healing_ward()
+ : CreatureScript("npc_healing_ward")
{
}
- struct mob_healing_wardAI : public ScriptedAI
+ struct npc_healing_wardAI : public ScriptedAI
{
- mob_healing_wardAI(Creature* creature) : ScriptedAI(creature)
+ npc_healing_wardAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -203,16 +203,16 @@ class mob_healing_ward : public CreatureScript
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
Heal_Timer = 2000;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Heal_Timer
if (Heal_Timer <= diff)
@@ -230,43 +230,43 @@ class mob_healing_ward : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_healing_wardAI(creature);
+ return new npc_healing_wardAI(creature);
}
};
//Shade of Jindo
-class mob_shade_of_jindo : public CreatureScript
+class npc_shade_of_jindo : public CreatureScript
{
public:
- mob_shade_of_jindo()
- : CreatureScript("mob_shade_of_jindo")
+ npc_shade_of_jindo()
+ : CreatureScript("npc_shade_of_jindo")
{
}
- struct mob_shade_of_jindoAI : public ScriptedAI
+ struct npc_shade_of_jindoAI : public ScriptedAI
{
- mob_shade_of_jindoAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_shade_of_jindoAI(Creature* creature) : ScriptedAI(creature) {}
uint32 ShadowShock_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
ShadowShock_Timer = 1000;
DoCast(me, SPELL_INVISIBLE, true);
}
- void EnterCombat(Unit* /*who*/){}
+ void EnterCombat(Unit* /*who*/)OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//ShadowShock_Timer
if (ShadowShock_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_SHADOWSHOCK);
+ DoCastVictim(SPELL_SHADOWSHOCK);
ShadowShock_Timer = 2000;
} else ShadowShock_Timer -= diff;
@@ -274,15 +274,15 @@ class mob_shade_of_jindo : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_shade_of_jindoAI(creature);
+ return new npc_shade_of_jindoAI(creature);
}
};
void AddSC_boss_jindo()
{
new boss_jindo();
- new mob_healing_ward();
- new mob_shade_of_jindo();
+ new npc_healing_ward();
+ new npc_shade_of_jindo();
}
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp
index bd7b7a8798c..ac65842fa44 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp
@@ -112,7 +112,7 @@ class boss_mandokir : public CreatureScript
{
boss_mandokirAI(Creature* creature) : BossAI(creature, DATA_MANDOKIR) { }
- void Reset()
+ void Reset() OVERRIDE
{
if (me->GetPositionZ() > 140.0f)
{
@@ -121,14 +121,14 @@ class boss_mandokir : public CreatureScript
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_IMMUNE_TO_NPC);
events.ScheduleEvent(EVENT_CHECK_START, 1000);
if (Creature* speaker = Creature::GetCreature(*me, instance->GetData64(NPC_VILEBRANCH_SPEAKER)))
- if (!speaker->isAlive())
+ if (!speaker->IsAlive())
speaker->Respawn(true);
}
summons.DespawnAll();
me->Mount(MODEL_OHGAN_MOUNT);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
// Do not want to unsummon Ohgan
for (int i = 0; i < CHAINED_SPIRT_COUNT; ++i)
@@ -138,7 +138,7 @@ class boss_mandokir : public CreatureScript
instance->SaveToDB();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
events.ScheduleEvent(EVENT_OVERPOWER, urand(7000, 9000));
@@ -161,7 +161,7 @@ class boss_mandokir : public CreatureScript
DoZoneInCombat();
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
if (victim->GetTypeId() != TYPEID_PLAYER)
return;
@@ -170,14 +170,14 @@ class boss_mandokir : public CreatureScript
{
Talk(SAY_DING_KILL);
if (Creature* jindo = Creature::GetCreature(*me, instance->GetData64(DATA_JINDO)))
- if (jindo->isAlive())
+ if (jindo->IsAlive())
jindo->AI()->Talk(SAY_GRATS_JINDO);
DoCast(me, SPELL_LEVEL_UP, true);
killCount = 0;
}
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type == WAYPOINT_MOTION_TYPE)
{
@@ -191,7 +191,7 @@ class boss_mandokir : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
events.Update(diff);
@@ -236,7 +236,7 @@ class boss_mandokir : public CreatureScript
events.ScheduleEvent(EVENT_OVERPOWER, urand(6000, 12000));
break;
case EVENT_MORTAL_STRIKE:
- if (me->getVictim() && me->getVictim()->HealthBelowPct(50))
+ if (me->GetVictim() && me->GetVictim()->HealthBelowPct(50))
DoCastVictim(SPELL_MORTAL_STRIKE, true);
events.ScheduleEvent(EVENT_MORTAL_STRIKE, urand(12000, 18000));
break;
@@ -278,7 +278,7 @@ class boss_mandokir : public CreatureScript
uint64 chainedSpirtGUIDs[CHAINED_SPIRT_COUNT];
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetZulGurubAI<boss_mandokirAI>(creature);
}
@@ -291,27 +291,27 @@ enum OhganSpells
SPELL_SUNDERARMOR = 24317
};
-class mob_ohgan : public CreatureScript
+class npc_ohgan : public CreatureScript
{
- public: mob_ohgan() : CreatureScript("mob_ohgan") {}
+ public: npc_ohgan() : CreatureScript("npc_ohgan") {}
- struct mob_ohganAI : public ScriptedAI
+ struct npc_ohganAI : public ScriptedAI
{
- mob_ohganAI(Creature* creature) : ScriptedAI(creature), instance(creature->GetInstanceScript()) { }
+ npc_ohganAI(Creature* creature) : ScriptedAI(creature), instance(creature->GetInstanceScript()) { }
- void Reset()
+ void Reset() OVERRIDE
{
SunderArmor_Timer = 5000;
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
instance->SetBossState(DATA_OHGAN, DONE);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
// Return since we have no target
if (!UpdateVictim())
@@ -331,9 +331,9 @@ class mob_ohgan : public CreatureScript
InstanceScript* instance;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return GetZulGurubAI<mob_ohganAI>(creature);
+ return GetZulGurubAI<npc_ohganAI>(creature);
}
};
@@ -343,28 +343,28 @@ enum VilebranchSpells
SPELL_CLEAVE = 15284
};
-class mob_vilebranch_speaker : public CreatureScript
+class npc_vilebranch_speaker : public CreatureScript
{
- public: mob_vilebranch_speaker() : CreatureScript("mob_vilebranch_speaker") {}
+ public: npc_vilebranch_speaker() : CreatureScript("npc_vilebranch_speaker") {}
- struct mob_vilebranch_speakerAI : public ScriptedAI
+ struct npc_vilebranch_speakerAI : public ScriptedAI
{
- mob_vilebranch_speakerAI(Creature* creature) : ScriptedAI(creature), instance(creature->GetInstanceScript()) { }
+ npc_vilebranch_speakerAI(Creature* creature) : ScriptedAI(creature), instance(creature->GetInstanceScript()) { }
- void Reset()
+ void Reset() OVERRIDE
{
- demoralizing_Shout_Timer = urand (2000, 4000);
- cleave_Timer = urand (5000, 8000);
+ demoralizing_Shout_Timer = urand(2000, 4000);
+ cleave_Timer = urand(5000, 8000);
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
instance->SetBossState(DATA_MANDOKIR, SPECIAL);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
// Return since we have no target
if (!UpdateVictim())
@@ -391,9 +391,9 @@ class mob_vilebranch_speaker : public CreatureScript
InstanceScript* instance;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_vilebranch_speakerAI(creature);
+ return new npc_vilebranch_speakerAI(creature);
}
};
@@ -409,18 +409,18 @@ class spell_threatening_gaze : public SpellScriptLoader
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
if (Unit* caster = GetCaster())
- if(Unit* target = GetTarget())
+ if (Unit* target = GetTarget())
if (GetTargetApplication()->GetRemoveMode() != AURA_REMOVE_BY_EXPIRE && GetTargetApplication()->GetRemoveMode() != AURA_REMOVE_BY_DEATH)
caster->CastSpell(target, SPELL_WATCH_CHARGE);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectRemove += AuraEffectRemoveFn(spell_threatening_gaze_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_threatening_gaze_AuraScript();
}
@@ -429,7 +429,7 @@ class spell_threatening_gaze : public SpellScriptLoader
void AddSC_boss_mandokir()
{
new boss_mandokir();
- new mob_ohgan();
- new mob_vilebranch_speaker();
+ new npc_ohgan();
+ new npc_vilebranch_speaker();
new spell_threatening_gaze();
}
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_marli.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_marli.cpp
index b1200c2899e..c372cb0324d 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_marli.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_marli.cpp
@@ -48,13 +48,13 @@ enum Spells
enum Events
{
- EVENT_SPAWN_START_SPIDERS = 0, // Phase 1
- EVENT_POISON_VOLLEY = 1, // Phase All
- EVENT_SPAWN_SPIDER = 2, // Phase All
- EVENT_CHARGE_PLAYER = 3, // Phase 3
- EVENT_ASPECT_OF_MARLI = 4, // Phase 2
- EVENT_TRANSFORM = 5, // Phase 2
- EVENT_TRANSFORM_BACK = 6 // Phase 3
+ EVENT_SPAWN_START_SPIDERS = 1, // Phase 1
+ EVENT_POISON_VOLLEY = 2, // Phase All
+ EVENT_SPAWN_SPIDER = 3, // Phase All
+ EVENT_CHARGE_PLAYER = 4, // Phase 3
+ EVENT_ASPECT_OF_MARLI = 5, // Phase 2
+ EVENT_TRANSFORM = 6, // Phase 2
+ EVENT_TRANSFORM_BACK = 7 // Phase 3
};
enum Phases
@@ -77,25 +77,25 @@ class boss_marli : public CreatureScript
{
boss_marliAI(Creature* creature) : BossAI(creature, DATA_MARLI) {}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
Talk(SAY_DEATH);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
events.ScheduleEvent(EVENT_SPAWN_START_SPIDERS, 1000, 0, PHASE_ONE);
Talk(SAY_AGGRO);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -153,57 +153,54 @@ class boss_marli : public CreatureScript
events.ScheduleEvent(EVENT_SPAWN_SPIDER, urand(12000, 17000));
break;
case EVENT_TRANSFORM:
- {
- Talk(SAY_TRANSFORM);
- DoCast(me, SPELL_SPIDER_FORM);
- const CreatureTemplate* cinfo = me->GetCreatureTemplate();
- me->SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, (cinfo->mindmg +((cinfo->mindmg/100) * 35)));
- me->SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, (cinfo->maxdmg +((cinfo->maxdmg/100) * 35)));
- me->UpdateDamagePhysical(BASE_ATTACK);
- DoCast(me->getVictim(), SPELL_ENVOLWINGWEB);
- if (DoGetThreat(me->getVictim()))
- DoModifyThreatPercent(me->getVictim(), -100);
- events.ScheduleEvent(EVENT_CHARGE_PLAYER, 1500, 0, PHASE_THREE);
- events.ScheduleEvent(EVENT_TRANSFORM_BACK, 25000, 0, PHASE_THREE);
- events.SetPhase(PHASE_THREE);
- break;
- }
+ {
+ Talk(SAY_TRANSFORM);
+ DoCast(me, SPELL_SPIDER_FORM);
+ CreatureTemplate const* cinfo = me->GetCreatureTemplate();
+ me->SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, (cinfo->mindmg +((cinfo->mindmg/100) * 35)));
+ me->SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, (cinfo->maxdmg +((cinfo->maxdmg/100) * 35)));
+ me->UpdateDamagePhysical(BASE_ATTACK);
+ DoCastVictim(SPELL_ENVOLWINGWEB);
+ if (DoGetThreat(me->GetVictim()))
+ DoModifyThreatPercent(me->GetVictim(), -100);
+ events.ScheduleEvent(EVENT_CHARGE_PLAYER, 1500, 0, PHASE_THREE);
+ events.ScheduleEvent(EVENT_TRANSFORM_BACK, 25000, 0, PHASE_THREE);
+ events.SetPhase(PHASE_THREE);
+ break;
+ }
case EVENT_CHARGE_PLAYER:
+ {
+ Unit* target = NULL;
+ int i = 0;
+ while (i++ < 3) // max 3 tries to get a random target with power_mana
{
- Unit* target = NULL;
- int i = 0;
- while (i < 3) // max 3 tries to get a random target with power_mana
- {
- ++i;
- Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 100, true); // not aggro leader
- if (target && target->getPowerType() == POWER_MANA)
- i = 3;
- }
- if (target)
- {
- DoCast(target, SPELL_CHARGE);
- //me->SetPosition(target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0);
- //me->SendMonsterMove(target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, true, 1);
- AttackStart(target);
- }
- events.ScheduleEvent(EVENT_CHARGE_PLAYER, 8000, 0, PHASE_THREE);
- break;
+ target = SelectTarget(SELECT_TARGET_RANDOM, 1, 100, true); // not aggro leader
+ if (target && target->getPowerType() == POWER_MANA)
+ break;
}
- case EVENT_TRANSFORM_BACK:
+ if (target)
{
- me->SetDisplayId(MODEL_MARLI);
- const CreatureTemplate* cinfo = me->GetCreatureTemplate();
- me->SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, (cinfo->mindmg +((cinfo->mindmg/100) * 1)));
- me->SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, (cinfo->maxdmg +((cinfo->maxdmg/100) * 1)));
- me->UpdateDamagePhysical(BASE_ATTACK);
- events.ScheduleEvent(EVENT_ASPECT_OF_MARLI, 12000, 0, PHASE_TWO);
- events.ScheduleEvent(EVENT_TRANSFORM, 45000, 0, PHASE_TWO);
- events.ScheduleEvent(EVENT_POISON_VOLLEY, 15000);
- events.ScheduleEvent(EVENT_SPAWN_SPIDER, 30000);
- events.ScheduleEvent(EVENT_TRANSFORM, urand(35000, 60000), 0, PHASE_TWO);
- events.SetPhase(PHASE_TWO);
- break;
+ DoCast(target, SPELL_CHARGE);
+ AttackStart(target);
}
+ events.ScheduleEvent(EVENT_CHARGE_PLAYER, 8000, 0, PHASE_THREE);
+ break;
+ }
+ case EVENT_TRANSFORM_BACK:
+ {
+ me->SetDisplayId(MODEL_MARLI);
+ CreatureTemplate const* cinfo = me->GetCreatureTemplate();
+ me->SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, (cinfo->mindmg +((cinfo->mindmg/100) * 1)));
+ me->SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, (cinfo->maxdmg +((cinfo->maxdmg/100) * 1)));
+ me->UpdateDamagePhysical(BASE_ATTACK);
+ events.ScheduleEvent(EVENT_ASPECT_OF_MARLI, 12000, 0, PHASE_TWO);
+ events.ScheduleEvent(EVENT_TRANSFORM, 45000, 0, PHASE_TWO);
+ events.ScheduleEvent(EVENT_POISON_VOLLEY, 15000);
+ events.ScheduleEvent(EVENT_SPAWN_SPIDER, 30000);
+ events.ScheduleEvent(EVENT_TRANSFORM, urand(35000, 60000), 0, PHASE_TWO);
+ events.SetPhase(PHASE_TWO);
+ break;
+ }
default:
break;
}
@@ -213,33 +210,33 @@ class boss_marli : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_marliAI(creature);
}
};
// Spawn of Marli
-class mob_spawn_of_marli : public CreatureScript
+class npc_spawn_of_marli : public CreatureScript
{
- public: mob_spawn_of_marli() : CreatureScript("mob_spawn_of_marli") {}
+ public: npc_spawn_of_marli() : CreatureScript("npc_spawn_of_marli") {}
- struct mob_spawn_of_marliAI : public ScriptedAI
+ struct npc_spawn_of_marliAI : public ScriptedAI
{
- mob_spawn_of_marliAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_spawn_of_marliAI(Creature* creature) : ScriptedAI(creature) {}
uint32 LevelUp_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
LevelUp_Timer = 3000;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -256,14 +253,14 @@ class mob_spawn_of_marli : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_spawn_of_marliAI(creature);
+ return new npc_spawn_of_marliAI(creature);
}
};
void AddSC_boss_marli()
{
new boss_marli();
- new mob_spawn_of_marli();
+ new npc_spawn_of_marli();
}
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp
index 7e8c7dca7b4..4d9d446d823 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp
@@ -55,7 +55,7 @@ class boss_renataki : public CreatureScript
bool Invisible;
bool Ambushed;
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
Invisible_Timer = urand(8000, 18000);
@@ -68,17 +68,17 @@ class boss_renataki : public CreatureScript
Ambushed = false;
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -138,8 +138,8 @@ class boss_renataki : public CreatureScript
Unit* target = NULL;
target = SelectTarget(SELECT_TARGET_RANDOM, 1);
- if (DoGetThreat(me->getVictim()))
- DoModifyThreatPercent(me->getVictim(), -50);
+ if (DoGetThreat(me->GetVictim()))
+ DoModifyThreatPercent(me->GetVictim(), -50);
if (target)
AttackStart(target);
@@ -149,7 +149,7 @@ class boss_renataki : public CreatureScript
if (ThousandBlades_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_THOUSANDBLADES);
+ DoCastVictim(SPELL_THOUSANDBLADES);
ThousandBlades_Timer = urand(7000, 12000);
} else ThousandBlades_Timer -= diff;
}
@@ -158,7 +158,7 @@ class boss_renataki : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_renatakiAI(creature);
}
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp
index f115daf0fb0..6a945c545a0 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp
@@ -59,15 +59,15 @@ enum Spells
enum Events
{
- EVENT_MORTALCLEAVE = 0, // Phase 1
- EVENT_SILENCE = 1, // Phase 1
- EVENT_CHECK_TIMER = 2, // Phase 1
- EVENT_RESURRECT_TIMER = 3, // Phase 1
- EVENT_FRENZY = 4, // Phase 2
- EVENT_FORCEPUNCH = 5, // Phase 2
- EVENT_SPELL_CHARGE = 6, // Phase 2
- EVENT_ENRAGE = 7, // Phase 2
- EVENT_SUMMONTIGERS = 8 // Phase 2
+ EVENT_MORTALCLEAVE = 1, // Phase 1
+ EVENT_SILENCE = 2, // Phase 1
+ EVENT_CHECK_TIMER = 3, // Phase 1
+ EVENT_RESURRECT_TIMER = 4, // Phase 1
+ EVENT_FRENZY = 5, // Phase 2
+ EVENT_FORCEPUNCH = 6, // Phase 2
+ EVENT_SPELL_CHARGE = 7, // Phase 2
+ EVENT_ENRAGE = 8, // Phase 2
+ EVENT_SUMMONTIGERS = 9 // Phase 2
};
enum Phases
@@ -87,20 +87,20 @@ class boss_thekal : public CreatureScript
bool Enraged;
bool WasDead;
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
Enraged = false;
WasDead = false;
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
Talk(SAY_DEATH);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
events.ScheduleEvent(EVENT_MORTALCLEAVE, 4000, 0, PHASE_ONE); // Phase 1
@@ -110,13 +110,13 @@ class boss_thekal : public CreatureScript
Talk(SAY_AGGRO);
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
if (instance)
instance->SetBossState(DATA_THEKAL, NOT_STARTED);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -249,20 +249,20 @@ class boss_thekal : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_thekalAI(creature);
}
};
//Zealot Lor'Khan
-class mob_zealot_lorkhan : public CreatureScript
+class npc_zealot_lorkhan : public CreatureScript
{
- public: mob_zealot_lorkhan() : CreatureScript("mob_zealot_lorkhan") {}
+ public: npc_zealot_lorkhan() : CreatureScript("npc_zealot_lorkhan") {}
- struct mob_zealot_lorkhanAI : public ScriptedAI
+ struct npc_zealot_lorkhanAI : public ScriptedAI
{
- mob_zealot_lorkhanAI(Creature* creature) : ScriptedAI(creature)
+ npc_zealot_lorkhanAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -277,7 +277,7 @@ class mob_zealot_lorkhan : public CreatureScript
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
Shield_Timer = 1000;
BloodLust_Timer = 16000;
@@ -294,11 +294,11 @@ class mob_zealot_lorkhan : public CreatureScript
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -347,7 +347,7 @@ class mob_zealot_lorkhan : public CreatureScript
//Disarm_Timer
if (Disarm_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_DISARM);
+ DoCastVictim(SPELL_DISARM);
Disarm_Timer = 15000+rand()%10000;
} else Disarm_Timer -= diff;
@@ -404,25 +404,25 @@ class mob_zealot_lorkhan : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_zealot_lorkhanAI(creature);
+ return new npc_zealot_lorkhanAI(creature);
}
};
//Zealot Zath
-class mob_zealot_zath : public CreatureScript
+class npc_zealot_zath : public CreatureScript
{
public:
- mob_zealot_zath()
- : CreatureScript("mob_zealot_zath")
+ npc_zealot_zath()
+ : CreatureScript("npc_zealot_zath")
{
}
- struct mob_zealot_zathAI : public ScriptedAI
+ struct npc_zealot_zathAI : public ScriptedAI
{
- mob_zealot_zathAI(Creature* creature) : ScriptedAI(creature)
+ npc_zealot_zathAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -438,7 +438,7 @@ class mob_zealot_zath : public CreatureScript
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
SweepingStrikes_Timer = 13000;
SinisterStrike_Timer = 8000;
@@ -456,11 +456,11 @@ class mob_zealot_zath : public CreatureScript
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -468,24 +468,24 @@ class mob_zealot_zath : public CreatureScript
//SweepingStrikes_Timer
if (SweepingStrikes_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_SWEEPINGSTRIKES);
+ DoCastVictim(SPELL_SWEEPINGSTRIKES);
SweepingStrikes_Timer = 22000+rand()%4000;
} else SweepingStrikes_Timer -= diff;
//SinisterStrike_Timer
if (SinisterStrike_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_SINISTERSTRIKE);
+ DoCastVictim(SPELL_SINISTERSTRIKE);
SinisterStrike_Timer = 8000+rand()%8000;
} else SinisterStrike_Timer -= diff;
//Gouge_Timer
if (Gouge_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_GOUGE);
+ DoCastVictim(SPELL_GOUGE);
- if (DoGetThreat(me->getVictim()))
- DoModifyThreatPercent(me->getVictim(), -100);
+ if (DoGetThreat(me->GetVictim()))
+ DoModifyThreatPercent(me->GetVictim(), -100);
Gouge_Timer = 17000+rand()%10000;
} else Gouge_Timer -= diff;
@@ -493,14 +493,14 @@ class mob_zealot_zath : public CreatureScript
//Kick_Timer
if (Kick_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_KICK);
+ DoCastVictim(SPELL_KICK);
Kick_Timer = 15000+rand()%10000;
} else Kick_Timer -= diff;
//Blind_Timer
if (Blind_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_BLIND);
+ DoCastVictim(SPELL_BLIND);
Blind_Timer = 10000+rand()%10000;
} else Blind_Timer -= diff;
@@ -557,15 +557,15 @@ class mob_zealot_zath : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_zealot_zathAI(creature);
+ return new npc_zealot_zathAI(creature);
}
};
void AddSC_boss_thekal()
{
new boss_thekal();
- new mob_zealot_lorkhan();
- new mob_zealot_zath();
+ new npc_zealot_lorkhan();
+ new npc_zealot_zath();
}
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp
index 884e5bfad10..f57503fcac0 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp
@@ -91,7 +91,7 @@ class boss_venoxis : public CreatureScript
{
boss_venoxisAI(Creature* creature) : BossAI(creature, DATA_VENOXIS) {}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
// remove all spells and auras from previous attempts
@@ -104,14 +104,14 @@ class boss_venoxis : public CreatureScript
events.SetPhase(PHASE_ONE);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
Talk(SAY_VENOXIS_DEATH);
me->RemoveAllAuras();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
me->SetReactState(REACT_AGGRESSIVE);
@@ -130,7 +130,7 @@ class boss_venoxis : public CreatureScript
DoZoneInCombat();
}
- void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/)
+ void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/) OVERRIDE
{
// check if venoxis is ready to transform
if (!_transformed && !HealthAbovePct(50))
@@ -147,7 +147,7 @@ class boss_venoxis : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -190,7 +190,7 @@ class boss_venoxis : public CreatureScript
// trigger spellcast only if we have 3 or more targets to affect
if (_inMeleeRange >= 3)
- DoCast(me->getVictim(), SPELL_HOLY_NOVA);
+ DoCastVictim(SPELL_HOLY_NOVA);
events.ScheduleEvent(EVENT_HOLY_NOVA, urand(45000, 75000), 0, PHASE_ONE);
break;
@@ -262,7 +262,7 @@ class boss_venoxis : public CreatureScript
bool _frenzied;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_venoxisAI(creature);
}
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_wushoolay.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_wushoolay.cpp
index 945303f3d10..0e492f57588 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_wushoolay.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_wushoolay.cpp
@@ -35,8 +35,8 @@ enum Spells
enum Events
{
- EVENT_LIGHTNINGCLOUD = 0,
- EVENT_LIGHTNINGWAVE = 1
+ EVENT_LIGHTNINGCLOUD = 1,
+ EVENT_LIGHTNINGWAVE = 2
};
class boss_wushoolay : public CreatureScript
@@ -47,24 +47,24 @@ class boss_wushoolay : public CreatureScript
{
boss_wushoolayAI(Creature* creature) : BossAI(creature, DATA_EDGE_OF_MADNESS) {}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
events.ScheduleEvent(EVENT_LIGHTNINGCLOUD, urand(5000, 10000));
events.ScheduleEvent(EVENT_LIGHTNINGWAVE, urand(8000, 16000));
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -95,7 +95,7 @@ class boss_wushoolay : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_wushoolayAI(creature);
}
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/instance_zulgurub.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/instance_zulgurub.cpp
index 01c5ef998f5..27e1150818e 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/instance_zulgurub.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/instance_zulgurub.cpp
@@ -100,7 +100,7 @@ class instance_zulgurub : public InstanceMapScript
}
}
- uint64 GetData64(uint32 uiData) const
+ uint64 GetData64(uint32 uiData) const OVERRIDE
{
switch (uiData)
{
@@ -185,7 +185,7 @@ class instance_zulgurub : public InstanceMapScript
uint64 _goGongOfBethekkGUID;
};
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_zulgurub_InstanceMapScript(map);
}
diff --git a/src/server/scripts/EasternKingdoms/boss_kruul.cpp b/src/server/scripts/EasternKingdoms/boss_kruul.cpp
index 997417714e8..02fce8f3cf2 100644
--- a/src/server/scripts/EasternKingdoms/boss_kruul.cpp
+++ b/src/server/scripts/EasternKingdoms/boss_kruul.cpp
@@ -42,9 +42,9 @@ class boss_kruul : public CreatureScript
public:
boss_kruul() : CreatureScript("boss_kruul") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_kruulAI (creature);
+ return new boss_kruulAI(creature);
}
struct boss_kruulAI : public ScriptedAI
@@ -59,7 +59,7 @@ public:
uint32 Rage_Timer;
uint32 Hound_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
ShadowVolley_Timer = 10000;
Cleave_Timer = 14000;
@@ -70,11 +70,11 @@ public:
Hound_Timer = 8000;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
// When a player, pet or totem gets killed, Lord Kazzak casts this spell to instantly regenerate 70, 000 health.
DoCast(me, SPELL_CAPTURESOUL);
@@ -86,7 +86,7 @@ public:
Hound->AI()->AttackStart(victim);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -96,7 +96,7 @@ public:
if (ShadowVolley_Timer <= diff)
{
if (urand(0, 99) < 45)
- DoCast(me->getVictim(), SPELL_SHADOWVOLLEY);
+ DoCastVictim(SPELL_SHADOWVOLLEY);
ShadowVolley_Timer = 5000;
} else ShadowVolley_Timer -= diff;
@@ -105,7 +105,7 @@ public:
if (Cleave_Timer <= diff)
{
if (urand(0, 1))
- DoCast(me->getVictim(), SPELL_CLEAVE);
+ DoCastVictim(SPELL_CLEAVE);
Cleave_Timer = 10000;
} else Cleave_Timer -= diff;
@@ -114,7 +114,7 @@ public:
if (ThunderClap_Timer <= diff)
{
if (urand(0, 9) < 2)
- DoCast(me->getVictim(), SPELL_THUNDERCLAP);
+ DoCastVictim(SPELL_THUNDERCLAP);
ThunderClap_Timer = 12000;
} else ThunderClap_Timer -= diff;
@@ -122,7 +122,7 @@ public:
//TwistedReflection_Timer
if (TwistedReflection_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_TWISTEDREFLECTION);
+ DoCastVictim(SPELL_TWISTEDREFLECTION);
TwistedReflection_Timer = 30000;
} else TwistedReflection_Timer -= diff;
@@ -130,7 +130,7 @@ public:
if (VoidBolt_Timer <= diff)
{
if (urand(0, 9) < 4)
- DoCast(me->getVictim(), SPELL_VOIDBOLT);
+ DoCastVictim(SPELL_VOIDBOLT);
VoidBolt_Timer = 18000;
} else VoidBolt_Timer -= diff;
@@ -145,9 +145,9 @@ public:
//Hound_Timer
if (Hound_Timer <= diff)
{
- SummonHounds(me->getVictim());
- SummonHounds(me->getVictim());
- SummonHounds(me->getVictim());
+ SummonHounds(me->GetVictim());
+ SummonHounds(me->GetVictim());
+ SummonHounds(me->GetVictim());
Hound_Timer = 45000;
} else Hound_Timer -= diff;
diff --git a/src/server/scripts/EasternKingdoms/zone_arathi_highlands.cpp b/src/server/scripts/EasternKingdoms/zone_arathi_highlands.cpp
index 74344f28a9b..55d3cc927a5 100644
--- a/src/server/scripts/EasternKingdoms/zone_arathi_highlands.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_arathi_highlands.cpp
@@ -36,8 +36,9 @@ EndContentData */
## npc_professor_phizzlethorpe
######*/
-enum eEnums
+enum ProfessorPhizzlethorpe
{
+ // Yells
SAY_PROGRESS_1 = 0,
SAY_PROGRESS_2 = 1,
SAY_PROGRESS_3 = 2,
@@ -49,8 +50,11 @@ enum eEnums
EMOTE_PROGRESS_8 = 8,
SAY_PROGRESS_9 = 9,
+ // Quests
QUEST_SUNKEN_TREASURE = 665,
- MOB_VENGEFUL_SURGE = 2776
+
+ // Creatures
+ NPC_VENGEFUL_SURGE = 2776
};
class npc_professor_phizzlethorpe : public CreatureScript
@@ -66,7 +70,7 @@ class npc_professor_phizzlethorpe : public CreatureScript
{
npc_professor_phizzlethorpeAI(Creature* creature) : npc_escortAI(creature) {}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
Player* player = GetPlayerForEscort();
if (!player)
@@ -84,8 +88,8 @@ class npc_professor_phizzlethorpe : public CreatureScript
Talk(EMOTE_PROGRESS_4);
break;
case 9:
- me->SummonCreature(MOB_VENGEFUL_SURGE, -2052.96f, -2142.49f, 20.15f, 1.0f, TEMPSUMMON_CORPSE_DESPAWN, 0);
- me->SummonCreature(MOB_VENGEFUL_SURGE, -2052.96f, -2142.49f, 20.15f, 1.0f, TEMPSUMMON_CORPSE_DESPAWN, 0);
+ me->SummonCreature(NPC_VENGEFUL_SURGE, -2052.96f, -2142.49f, 20.15f, 1.0f, TEMPSUMMON_CORPSE_DESPAWN, 0);
+ me->SummonCreature(NPC_VENGEFUL_SURGE, -2052.96f, -2142.49f, 20.15f, 1.0f, TEMPSUMMON_CORPSE_DESPAWN, 0);
break;
case 10:
Talk(SAY_PROGRESS_5, player->GetGUID());
@@ -105,28 +109,28 @@ class npc_professor_phizzlethorpe : public CreatureScript
}
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
summoned->AI()->AttackStart(me);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
npc_escortAI::UpdateAI(diff);
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_professor_phizzlethorpeAI(creature);
}
- bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_SUNKEN_TREASURE)
{
diff --git a/src/server/scripts/EasternKingdoms/zone_blasted_lands.cpp b/src/server/scripts/EasternKingdoms/zone_blasted_lands.cpp
index 4f76edf4406..b102873e940 100644
--- a/src/server/scripts/EasternKingdoms/zone_blasted_lands.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_blasted_lands.cpp
@@ -38,16 +38,19 @@ EndContentData */
#define GOSSIP_ITEM_USHER "I wish to to visit the Rise of the Defiler."
-#define SPELL_TELEPORT_SINGLE 12885
-#define SPELL_TELEPORT_SINGLE_IN_GROUP 13142
-#define SPELL_TELEPORT_GROUP 27686
+enum DeathlyUsher
+{
+ SPELL_TELEPORT_SINGLE = 12885,
+ SPELL_TELEPORT_SINGLE_IN_GROUP = 13142,
+ SPELL_TELEPORT_GROUP = 27686
+};
class npc_deathly_usher : public CreatureScript
{
public:
npc_deathly_usher() : CreatureScript("npc_deathly_usher") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF)
@@ -59,7 +62,7 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
if (player->GetQuestStatus(3628) == QUEST_STATUS_INCOMPLETE && player->HasItemCount(10757))
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_USHER, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
diff --git a/src/server/scripts/EasternKingdoms/zone_burning_steppes.cpp b/src/server/scripts/EasternKingdoms/zone_burning_steppes.cpp
index 6bc316d1437..94f227a3de0 100644
--- a/src/server/scripts/EasternKingdoms/zone_burning_steppes.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_burning_steppes.cpp
@@ -54,7 +54,7 @@ class npc_ragged_john : public CreatureScript
public:
npc_ragged_john() : CreatureScript("npc_ragged_john") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -111,9 +111,9 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
if (player->GetQuestStatus(4224) == QUEST_STATUS_INCOMPLETE)
@@ -123,18 +123,19 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_ragged_johnAI (creature);
+ return new npc_ragged_johnAI(creature);
}
struct npc_ragged_johnAI : public ScriptedAI
{
npc_ragged_johnAI(Creature* creature) : ScriptedAI(creature) {}
- void Reset() {}
+ void Reset() OVERRIDE {}
+
+ void MoveInLineOfSight(Unit* who) OVERRIDE
- void MoveInLineOfSight(Unit* who)
{
if (who->HasAura(16468))
{
@@ -149,7 +150,7 @@ public:
ScriptedAI::MoveInLineOfSight(who);
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
};
};
diff --git a/src/server/scripts/EasternKingdoms/zone_duskwood.cpp b/src/server/scripts/EasternKingdoms/zone_duskwood.cpp
index 5bfb5edadc1..23b9d99935b 100644
--- a/src/server/scripts/EasternKingdoms/zone_duskwood.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_duskwood.cpp
@@ -44,7 +44,7 @@ class at_twilight_grove : public AreaTriggerScript
public:
at_twilight_grove() : AreaTriggerScript("at_twilight_grove") { }
- bool OnTrigger(Player* player, const AreaTriggerEntry* /*at*/)
+ bool OnTrigger(Player* player, const AreaTriggerEntry* /*at*/) OVERRIDE
{
if (player->HasQuestForItem(21149))
{
@@ -68,18 +68,21 @@ public:
# boss_twilight_corrupter
######*/
-#define SPELL_SOUL_CORRUPTION 25805
-#define SPELL_CREATURE_OF_NIGHTMARE 25806
-#define SPELL_LEVEL_UP 24312
+enum TwilightCorrupter
+{
+ SPELL_SOUL_CORRUPTION = 25805,
+ SPELL_CREATURE_OF_NIGHTMARE = 25806,
+ SPELL_LEVEL_UP = 24312
+};
class boss_twilight_corrupter : public CreatureScript
{
public:
boss_twilight_corrupter() : CreatureScript("boss_twilight_corrupter") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_twilight_corrupterAI (creature);
+ return new boss_twilight_corrupterAI(creature);
}
struct boss_twilight_corrupterAI : public ScriptedAI
@@ -90,18 +93,18 @@ public:
uint32 CreatureOfNightmare_Timer;
uint8 KillCount;
- void Reset()
+ void Reset() OVERRIDE
{
SoulCorruption_Timer = 15000;
CreatureOfNightmare_Timer = 30000;
KillCount = 0;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(YELL_TWILIGHTCORRUPTOR_AGGRO);
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
if (victim->GetTypeId() == TYPEID_PLAYER)
{
@@ -116,19 +119,19 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
if (SoulCorruption_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_SOUL_CORRUPTION);
+ DoCastVictim(SPELL_SOUL_CORRUPTION);
SoulCorruption_Timer = rand()%4000+15000; //gotta confirm Timers
} else SoulCorruption_Timer-=diff;
if (CreatureOfNightmare_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_CREATURE_OF_NIGHTMARE);
+ DoCastVictim(SPELL_CREATURE_OF_NIGHTMARE);
CreatureOfNightmare_Timer = 45000; //gotta confirm Timers
} else CreatureOfNightmare_Timer-=diff;
DoMeleeAttackIfReady();
diff --git a/src/server/scripts/EasternKingdoms/zone_eastern_plaguelands.cpp b/src/server/scripts/EasternKingdoms/zone_eastern_plaguelands.cpp
index a2522fd9495..ea8f3cd056a 100644
--- a/src/server/scripts/EasternKingdoms/zone_eastern_plaguelands.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_eastern_plaguelands.cpp
@@ -24,7 +24,7 @@ SDCategory: Eastern Plaguelands
EndScriptData */
/* ContentData
-mobs_ghoul_flayer
+npc_ghoul_flayer
npc_augustus_the_touched
npc_darrowshire_spirit
npc_tirion_fordring
@@ -36,29 +36,29 @@ EndContentData */
#include "Player.h"
#include "WorldSession.h"
-class mobs_ghoul_flayer : public CreatureScript
+class npc_ghoul_flayer : public CreatureScript
{
public:
- mobs_ghoul_flayer() : CreatureScript("mobs_ghoul_flayer") { }
+ npc_ghoul_flayer() : CreatureScript("npc_ghoul_flayer") { }
- struct mobs_ghoul_flayerAI : public ScriptedAI
+ struct npc_ghoul_flayerAI : public ScriptedAI
{
- mobs_ghoul_flayerAI(Creature* creature) : ScriptedAI(creature) { }
+ npc_ghoul_flayerAI(Creature* creature) : ScriptedAI(creature) { }
- void Reset() {}
+ void Reset() OVERRIDE {}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
if (killer->GetTypeId() == TYPEID_PLAYER)
me->SummonCreature(11064, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN, 60000);
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mobs_ghoul_flayerAI (creature);
+ return new npc_ghoul_flayerAI(creature);
}
};
@@ -71,7 +71,7 @@ class npc_augustus_the_touched : public CreatureScript
public:
npc_augustus_the_touched() : CreatureScript("npc_augustus_the_touched") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_TRADE)
@@ -79,12 +79,12 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
- if (creature->isVendor() && player->GetQuestRewardStatus(6164))
+ if (creature->IsVendor() && player->GetQuestRewardStatus(6164))
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
@@ -96,14 +96,17 @@ public:
## npc_darrowshire_spirit
######*/
-#define SPELL_SPIRIT_SPAWNIN 17321
+enum DarrowshireSpirit
+{
+ SPELL_SPIRIT_SPAWNIN = 17321
+};
class npc_darrowshire_spirit : public CreatureScript
{
public:
npc_darrowshire_spirit() : CreatureScript("npc_darrowshire_spirit") { }
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
player->SEND_GOSSIP_MENU(3873, creature->GetGUID());
player->TalkedToCreature(creature->GetEntry(), creature->GetGUID());
@@ -111,22 +114,22 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_darrowshire_spiritAI (creature);
+ return new npc_darrowshire_spiritAI(creature);
}
struct npc_darrowshire_spiritAI : public ScriptedAI
{
npc_darrowshire_spiritAI(Creature* creature) : ScriptedAI(creature) {}
- void Reset()
+ void Reset() OVERRIDE
{
DoCast(me, SPELL_SPIRIT_SPAWNIN);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
};
};
@@ -144,7 +147,7 @@ class npc_tirion_fordring : public CreatureScript
public:
npc_tirion_fordring() : CreatureScript("npc_tirion_fordring") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -169,9 +172,9 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
if (player->GetQuestStatus(5742) == QUEST_STATUS_INCOMPLETE && player->getStandState() == UNIT_STAND_STATE_SIT)
@@ -185,7 +188,7 @@ public:
void AddSC_eastern_plaguelands()
{
- new mobs_ghoul_flayer();
+ new npc_ghoul_flayer();
new npc_augustus_the_touched();
new npc_darrowshire_spirit();
new npc_tirion_fordring();
diff --git a/src/server/scripts/EasternKingdoms/zone_eversong_woods.cpp b/src/server/scripts/EasternKingdoms/zone_eversong_woods.cpp
index c148d485e1a..d8750a82bc4 100644
--- a/src/server/scripts/EasternKingdoms/zone_eversong_woods.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_eversong_woods.cpp
@@ -19,16 +19,13 @@
/* ScriptData
SDName: Eversong_Woods
SD%Complete: 100
-SDComment: Quest support: 8483, 8488, 8490, 9686
+SDComment: Quest support: 8488, 8490
SDCategory: Eversong Woods
EndScriptData */
/* ContentData
-npc_prospector_anvilward
npc_apprentice_mirveda
npc_infused_crystal
-npc_kelerun_bloodmourn
-go_harbinger_second_trial
EndContentData */
#include "ScriptMgr.h"
@@ -37,413 +34,22 @@ EndContentData */
#include "ScriptedEscortAI.h"
#include "Player.h"
-/*######
-## Quest 9686 Second Trial
-######*/
-
-enum SeconTrial
-{
- QUEST_SECOND_TRIAL = 9686,
- OFFSET_NEXT_ATTACK = 750,
-};
-
-enum eSpells
-{
- SPELL_FLASH_OF_LIGHT = 19939,
- SPELL_SEAL_OF_JUSTICE = 20164,
- SPELL_JUDGEMENT_OF_LIGHT = 20271,
- SPELL_SEAL_OF_COMMAND = 20375,
-};
-
-enum eNpc
-{
- MASTER_KELERUN_BLOODMOURN = 17807,
- CHAMPION_BLOODWRATH = 17809,
- CHAMPION_LIGHTREND = 17810,
- CHAMPION_SWIFTBLADE = 17811,
- CHAMPION_SUNSTRIKER = 17812,
-};
-
-enum eFaction
-{
- FACTION_HOSTILE = 45,
- FACTION_FRIENDLY = 7,
-};
-
-enum eSays
+enum UnexpectedResults
{
- TEXT_SECOND_TRIAL_1 = 0,
- TEXT_SECOND_TRIAL_2 = 1,
- TEXT_SECOND_TRIAL_3 = 2,
- TEXT_SECOND_TRIAL_4 = 3,
-};
-
-struct Locations
-{
- float x, y, z, o;
-};
-
-static Locations SpawnPosition[]=
-{
- {5.3f, -11.8f, 0.361f, 4.2f},
- {11.2f, -29.17f, 0.361f, 2.7f},
- {-5.7f, -34.85f, 0.361f, 1.09f},
- {-11.9f, -18, 0.361f, 5.87f}
-};
-
-static uint32 PaladinEntry[] = {CHAMPION_BLOODWRATH, CHAMPION_LIGHTREND, CHAMPION_SWIFTBLADE, CHAMPION_SUNSTRIKER};
-
-/*######
-## npc_second_trial_paladin
-######*/
-
-class npc_second_trial_paladin : public CreatureScript
-{
-public:
- npc_second_trial_paladin() : CreatureScript("npc_second_trial_paladin") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new npc_secondTrialAI (creature);
- }
-
- struct npc_secondTrialAI : public ScriptedAI
- {
- npc_secondTrialAI(Creature* creature) : ScriptedAI(creature) {}
-
- uint32 timer;
- uint8 questPhase;
- uint64 summonerGuid;
-
- bool spellFlashLight;
- bool spellJustice;
- bool spellJudLight;
- bool spellCommand;
-
- uint32 timerFlashLight;
- uint32 timerJustice;
- uint32 timerJudLight;
- uint32 timerCommand;
-
- void Reset()
- {
- timer = 2000;
- questPhase = 0;
- summonerGuid = 0;
-
- me->SetUInt32Value(UNIT_FIELD_BYTES_1, UNIT_STAND_STATE_KNEEL);
- me->setFaction(FACTION_FRIENDLY);
-
- spellFlashLight = false;
- spellJustice = false;
- spellJudLight = false;
- spellCommand = false;
-
- switch (me->GetEntry())
- {
- case CHAMPION_BLOODWRATH:
- spellFlashLight = true;
- timerFlashLight = 3225;
- break;
- case CHAMPION_LIGHTREND:
- spellJustice = true;
- timerJustice = 500;
- break;
- case CHAMPION_SWIFTBLADE:
- spellJudLight = false; // Misses Script Effect // http://www.wowhead.com/?spell=20271
- timerJudLight = 500;
- break;
- case CHAMPION_SUNSTRIKER:
- spellFlashLight = true;
- spellJudLight = false; // Misses Script Effect // http://www.wowhead.com/?spell=20271
- spellCommand = false; // Misses Dummy // http://www.wowhead.com/?spell=20375
- timerFlashLight = 3225;
- timerJudLight = 500;
- timerCommand = 1500;
- break;
- }
- }
-
- void EnterCombat(Unit* /*who*/) {}
-
- void UpdateAI(uint32 diff)
- {
- if (questPhase == 1)
- {
- if (timer <= diff)
- {
- me->SetUInt32Value(UNIT_FIELD_BYTES_1, UNIT_STAND_STATE_STAND);
- me->setFaction(FACTION_HOSTILE);
- questPhase = 0;
-
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
- {
- me->AddThreat(target, 5000000.0f);
- AttackStart(target);
- }
- }
- else
- timer -= diff;
- }
-
- if (!UpdateVictim())
- return;
-
- // healer
- if (spellFlashLight && HealthBelowPct(70))
- {
- if (timerFlashLight <= diff)
- {
- DoCast(me, SPELL_FLASH_OF_LIGHT);
- timerFlashLight = 3225 + rand()%3225;
- }
- else
- timerFlashLight -= diff;
- }
-
- if (spellJustice)
- {
- if (timerJustice <= diff)
- {
- DoCast(me, SPELL_SEAL_OF_JUSTICE);
- timerJustice = urand(10000, 20000);
- }
- else
- timerJustice -= diff;
- }
+ // Quest
+ QUEST_UNEXPECTED_RESULT = 8488,
- if (spellJudLight)
- {
- if (timerJudLight <= diff)
- {
- DoCast(me, SPELL_JUDGEMENT_OF_LIGHT);
- timerJudLight = urand(10000, 20000);
- }
- else
- timerJudLight -= diff;
- }
-
- if (spellCommand)
- {
- if (timerCommand <= diff)
- {
- DoCast(me, SPELL_SEAL_OF_COMMAND);
- timerCommand = urand(20000, 40000);
- }
- else
- timerCommand -= diff;
- }
-
- DoMeleeAttackIfReady();
- }
-
- void Activate(uint64 summonerguid)
- {
- questPhase = 1;
- summonerGuid = summonerguid;
- }
-
- void KilledUnit(Unit* unit)
- {
- if (Player* player = unit->ToPlayer())
- if (player->GetQuestStatus(QUEST_SECOND_TRIAL) == QUEST_STATUS_INCOMPLETE)
- player->FailQuest(QUEST_SECOND_TRIAL);
- }
-
- void JustDied(Unit* killer);
- };
+ // Creatures
+ NPC_GHARZUL = 15958,
+ NPC_ANGERSHADE = 15656
};
-/*######
-## npc_second_trial_controller
-######*/
-
-class npc_second_trial_controller : public CreatureScript
-{
-public:
- npc_second_trial_controller() : CreatureScript("npc_second_trial_controller") { }
-
- bool OnQuestAccept(Player* /*player*/, Creature* creature, Quest const* quest)
- {
- // One Player exclusive quest, wait for user go activation
- if (quest->GetQuestId() == QUEST_SECOND_TRIAL)
- CAST_AI(npc_second_trial_controller::master_kelerun_bloodmournAI, creature->AI())->questPhase = 1;
-
- return true;
- }
-
- bool OnGossipHello(Player* player, Creature* creature)
- {
- // quest only available if not already started
- // Quest_template flag is set to : QUEST_FLAGS_EVENT
- // 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 (CAST_AI(npc_second_trial_controller::master_kelerun_bloodmournAI, creature->AI())->questPhase == 0)
- {
- player->PrepareQuestMenu(creature->GetGUID());
- player->SendPreparedQuest(creature->GetGUID());
- }
-
- player->SEND_GOSSIP_MENU(creature->GetEntry(), creature->GetGUID());
- return true;
- }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new master_kelerun_bloodmournAI (creature);
- }
-
- struct master_kelerun_bloodmournAI : public ScriptedAI
- {
- master_kelerun_bloodmournAI(Creature* creature) : ScriptedAI(creature) {}
-
- uint8 questPhase;
- uint8 paladinPhase;
- uint32 timer;
-
- uint64 paladinGuid[4];
-
- void Reset()
- {
- questPhase = 0;
- timer = 60000;
- paladinPhase = 0;
- for (uint8 i = 0; i < 4; ++i)
- paladinGuid[i] = 0;
- }
-
- void EnterCombat(Unit* /*who*/) {}
-
- void UpdateAI(uint32 diff)
- {
- // Quest accepted but object not activated, object despawned (if in sync 1 minute!)
- if (questPhase == 1)
- {
- if (timer <= diff)
- Reset();
- else
- timer -= diff;
- }
- // fight the 4 paladin mobs phase
- else if (questPhase == 2)
- {
- if (timer <= diff)
- {
- if (Creature* paladinSpawn = Unit::GetCreature((*me), paladinGuid[paladinPhase]))
- {
- CAST_AI(npc_second_trial_paladin::npc_secondTrialAI, paladinSpawn->AI())->Activate(me->GetGUID());
-
- switch (paladinPhase)
- {
- case 0:
- Talk(TEXT_SECOND_TRIAL_1);
- break;
- case 1:
- Talk(TEXT_SECOND_TRIAL_2);
- break;
- case 2:
- Talk(TEXT_SECOND_TRIAL_3);
- break;
- case 3:
- Talk(TEXT_SECOND_TRIAL_4);
- break;
- }
- }
- else
- Reset();
-
- questPhase = 4;
- timer = OFFSET_NEXT_ATTACK;
- }
- else
- timer -= diff;
- }
-
- if (!UpdateVictim())
- return;
-
- DoMeleeAttackIfReady();
- }
-
- void StartEvent()
- {
- if (questPhase == 1)
- { // no player check, quest can be finished as group, so no complex PlayerGUID/group search code
- for (uint8 i = 0; i < 4; ++i)
- if (Creature* summoned = DoSpawnCreature(PaladinEntry[i], SpawnPosition[i].x, SpawnPosition[i].y, SpawnPosition[i].z, SpawnPosition[i].o, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 180000))
- paladinGuid[i] = summoned->GetGUID();
-
- timer = OFFSET_NEXT_ATTACK;
- questPhase = 2;
- }
- }
-
- void SecondTrialKill()
- {
- if (questPhase > 0)
- {
- ++paladinPhase;
-
- if (paladinPhase < 4)
- questPhase = 2;
- else
- Reset(); // Quest Complete, QuestComplete handler is
- }
- }
-
- void SummonedCreatureDespawn(Creature* /*c*/) {}
- };
-};
-
-void npc_second_trial_paladin::npc_secondTrialAI::JustDied(Unit* Killer)
-{
- if (Killer->GetTypeId() == TYPEID_PLAYER)
- {
- if (Creature* summoner = Unit::GetCreature((*me), summonerGuid))
- CAST_AI(npc_second_trial_controller::master_kelerun_bloodmournAI, summoner->AI())->SecondTrialKill();
-
- // last kill quest complete for group
- if (me->GetEntry() == CHAMPION_SUNSTRIKER)
- {
- if (Killer->GetTypeId() == TYPEID_PLAYER)
- Killer->ToPlayer()->GroupEventHappens(QUEST_SECOND_TRIAL, Killer);
- }
- }
-}
-
-/*######
-## go_second_trial
-######*/
-class go_second_trial : public GameObjectScript
-{
-public:
- go_second_trial() : GameObjectScript("go_second_trial") { }
-
- bool OnGossipHello(Player* /*player*/, GameObject* go)
- {
- // find spawn :: master_kelerun_bloodmourn
- if (Creature* creature = go->FindNearestCreature(MASTER_KELERUN_BLOODMOURN, 30.0f))
- CAST_AI(npc_second_trial_controller::master_kelerun_bloodmournAI, creature->AI())->StartEvent();
-
- return true;
- }
-};
-
-/*######
-## npc_apprentice_mirveda
-######*/
-
-#define QUEST_UNEXPECTED_RESULT 8488
-#define MOB_GHARZUL 15958
-#define MOB_ANGERSHADE 15656
-
class npc_apprentice_mirveda : public CreatureScript
{
public:
npc_apprentice_mirveda() : CreatureScript("npc_apprentice_mirveda") { }
- bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_UNEXPECTED_RESULT)
{
@@ -453,9 +59,9 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_apprentice_mirvedaAI (creature);
+ return new npc_apprentice_mirvedaAI(creature);
}
struct npc_apprentice_mirvedaAI : public ScriptedAI
@@ -467,7 +73,7 @@ public:
bool Summon;
SummonList Summons;
- void Reset()
+ void Reset() OVERRIDE
{
KillCount = 0;
PlayerGUID = 0;
@@ -475,28 +81,28 @@ public:
Summon = false;
}
- void EnterCombat(Unit* /*who*/){}
+ void EnterCombat(Unit* /*who*/)OVERRIDE {}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
summoned->AI()->AttackStart(me);
Summons.Summon(summoned);
}
- void SummonedCreatureDespawn(Creature* summoned)
+ void SummonedCreatureDespawn(Creature* summoned) OVERRIDE
{
Summons.Despawn(summoned);
++KillCount;
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (PlayerGUID)
if (Player* player = Unit::GetPlayer(*me, PlayerGUID))
player->FailQuest(QUEST_UNEXPECTED_RESULT);
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
if (KillCount >= 3 && PlayerGUID)
if (Player* player = Unit::GetPlayer(*me, PlayerGUID))
@@ -504,9 +110,9 @@ public:
if (Summon)
{
- me->SummonCreature(MOB_GHARZUL, 8745, -7134.32f, 35.22f, 0, TEMPSUMMON_CORPSE_DESPAWN, 4000);
- me->SummonCreature(MOB_ANGERSHADE, 8745, -7134.32f, 35.22f, 0, TEMPSUMMON_CORPSE_DESPAWN, 4000);
- me->SummonCreature(MOB_ANGERSHADE, 8745, -7134.32f, 35.22f, 0, TEMPSUMMON_CORPSE_DESPAWN, 4000);
+ me->SummonCreature(NPC_GHARZUL, 8745, -7134.32f, 35.22f, 0, TEMPSUMMON_CORPSE_DESPAWN, 4000);
+ me->SummonCreature(NPC_ANGERSHADE, 8745, -7134.32f, 35.22f, 0, TEMPSUMMON_CORPSE_DESPAWN, 4000);
+ me->SummonCreature(NPC_ANGERSHADE, 8745, -7134.32f, 35.22f, 0, TEMPSUMMON_CORPSE_DESPAWN, 4000);
Summon = false;
}
}
@@ -519,9 +125,14 @@ public:
enum InfusedCrystal
{
- MOB_ENRAGED_WRAITH = 17086,
- EMOTE = 0,
- QUEST_POWERING_OUR_DEFENSES = 8490
+ // Quest
+ QUEST_POWERING_OUR_DEFENSES = 8490,
+
+ // Says
+ EMOTE = 0,
+
+ // Creatures
+ NPC_ENRAGED_WRAITH = 17086
};
struct Location
@@ -546,9 +157,9 @@ class npc_infused_crystal : public CreatureScript
public:
npc_infused_crystal() : CreatureScript("npc_infused_crystal") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_infused_crystalAI (creature);
+ return new npc_infused_crystalAI(creature);
}
struct npc_infused_crystalAI : public ScriptedAI
@@ -564,7 +175,7 @@ public:
bool Progress;
uint64 PlayerGUID;
- void Reset()
+ void Reset() OVERRIDE
{
EndTimer = 0;
Completed = false;
@@ -573,7 +184,8 @@ public:
WaveTimer = 0;
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (!Progress && who->GetTypeId() == TYPEID_PLAYER && me->IsWithinDistInMap(who, 10.0f))
{
@@ -587,19 +199,19 @@ public:
}
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
summoned->AI()->AttackStart(me);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (PlayerGUID && !Completed)
if (Player* player = Unit::GetPlayer(*me, PlayerGUID))
player->FailQuest(QUEST_POWERING_OUR_DEFENSES);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (EndTimer < diff && Progress)
{
@@ -618,9 +230,9 @@ public:
uint32 ran1 = rand()%8;
uint32 ran2 = rand()%8;
uint32 ran3 = rand()%8;
- me->SummonCreature(MOB_ENRAGED_WRAITH, SpawnLocations[ran1].x, SpawnLocations[ran1].y, SpawnLocations[ran1].z, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10000);
- me->SummonCreature(MOB_ENRAGED_WRAITH, SpawnLocations[ran2].x, SpawnLocations[ran2].y, SpawnLocations[ran2].z, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10000);
- me->SummonCreature(MOB_ENRAGED_WRAITH, SpawnLocations[ran3].x, SpawnLocations[ran3].y, SpawnLocations[ran3].z, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10000);
+ me->SummonCreature(NPC_ENRAGED_WRAITH, SpawnLocations[ran1].x, SpawnLocations[ran1].y, SpawnLocations[ran1].z, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10000);
+ me->SummonCreature(NPC_ENRAGED_WRAITH, SpawnLocations[ran2].x, SpawnLocations[ran2].y, SpawnLocations[ran2].z, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10000);
+ me->SummonCreature(NPC_ENRAGED_WRAITH, SpawnLocations[ran3].x, SpawnLocations[ran3].y, SpawnLocations[ran3].z, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10000);
WaveTimer = 30000;
} else WaveTimer -= diff;
}
@@ -629,9 +241,6 @@ public:
void AddSC_eversong_woods()
{
- new npc_second_trial_controller();
- new npc_second_trial_paladin();
- new go_second_trial();
new npc_apprentice_mirveda();
new npc_infused_crystal();
}
diff --git a/src/server/scripts/EasternKingdoms/zone_ghostlands.cpp b/src/server/scripts/EasternKingdoms/zone_ghostlands.cpp
index 858aa287c61..ebbf8ef9f5b 100644
--- a/src/server/scripts/EasternKingdoms/zone_ghostlands.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_ghostlands.cpp
@@ -48,7 +48,7 @@ class npc_budd_nedreck : public CreatureScript
public:
npc_budd_nedreck() : CreatureScript("npc_budd_nedreck") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF)
@@ -59,9 +59,9 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
if (player->GetQuestStatus(11166) == QUEST_STATUS_INCOMPLETE)
@@ -81,7 +81,7 @@ class npc_rathis_tomber : public CreatureScript
public:
npc_rathis_tomber() : CreatureScript("npc_rathis_tomber") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_TRADE)
@@ -89,12 +89,12 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
- if (creature->isVendor() && player->GetQuestRewardStatus(9152))
+ if (creature->IsVendor() && player->GetQuestRewardStatus(9152))
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
player->SEND_GOSSIP_MENU(8432, creature->GetGUID());
@@ -109,8 +109,9 @@ public:
## npc_ranger_lilatha
######*/
-enum eEnums
+enum RangerLilatha
{
+ // Yells
SAY_START = 0,
SAY_PROGRESS1 = 1,
SAY_PROGRESS2 = 2,
@@ -119,9 +120,16 @@ enum eEnums
SAY_END2 = 5,
SAY_CAPTAIN_ANSWER = 0,
+ // Quests
QUEST_ESCAPE_FROM_THE_CATACOMBS = 9212,
+
+ // Gameobjects
GO_CAGE = 181152,
+
+ // Creature
NPC_CAPTAIN_HELIOS = 16220,
+
+ // Factions
FACTION_SMOON_E = 1603
};
@@ -134,7 +142,7 @@ public:
{
npc_ranger_lilathaAI(Creature* creature) : npc_escortAI(creature) {}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
Player* player = GetPlayerForEscort();
if (!player)
@@ -191,14 +199,14 @@ public:
}
}
- void Reset()
+ void Reset() OVERRIDE
{
if (GameObject* Cage = me->FindNearestGameObject(GO_CAGE, 20))
Cage->SetGoState(GO_STATE_READY);
}
};
- bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_ESCAPE_FROM_THE_CATACOMBS)
{
@@ -210,7 +218,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_ranger_lilathaAI(creature);
}
diff --git a/src/server/scripts/EasternKingdoms/zone_hinterlands.cpp b/src/server/scripts/EasternKingdoms/zone_hinterlands.cpp
index ffd31937677..f68ffb66f30 100644
--- a/src/server/scripts/EasternKingdoms/zone_hinterlands.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_hinterlands.cpp
@@ -37,7 +37,7 @@ EndContentData */
## npc_00x09hl
######*/
-enum eOOX
+enum OOX
{
SAY_OOX_START = 0,
SAY_OOX_AGGRO = 1,
@@ -59,7 +59,7 @@ class npc_00x09hl : public CreatureScript
public:
npc_00x09hl() : CreatureScript("npc_00x09hl") { }
- bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_RESQUE_OOX_09)
{
@@ -78,7 +78,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_00x09hlAI(creature);
}
@@ -87,9 +87,9 @@ public:
{
npc_00x09hlAI(Creature* creature) : npc_escortAI(creature) { }
- void Reset() { }
+ void Reset() OVERRIDE {}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
switch (waypointId)
{
@@ -107,7 +107,7 @@ public:
}
}
- void WaypointStart(uint32 uiPointId)
+ void WaypointStart(uint32 uiPointId) OVERRIDE
{
switch (uiPointId)
{
@@ -132,7 +132,7 @@ public:
}
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (who->GetEntry() == NPC_MARAUDING_OWL || who->GetEntry() == NPC_VILE_AMBUSHER)
return;
@@ -140,7 +140,7 @@ public:
Talk(SAY_OOX_AGGRO);
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
summoned->GetMotionMaster()->MovePoint(0, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ());
}
@@ -151,7 +151,7 @@ public:
## npc_rinji
######*/
-enum eRinji
+enum Rinji
{
SAY_RIN_BY_OUTRUNNER = 0,
@@ -189,7 +189,7 @@ class npc_rinji : public CreatureScript
public:
npc_rinji() : CreatureScript("npc_rinji") { }
- bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_RINJI_TRAPPED)
{
@@ -202,7 +202,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_rinjiAI(creature);
}
@@ -220,13 +220,13 @@ public:
uint32 m_uiPostEventTimer;
int m_iSpawnId;
- void Reset()
+ void Reset() OVERRIDE
{
m_uiPostEventCount = 0;
m_uiPostEventTimer = 3000;
}
- void JustRespawned()
+ void JustRespawned() OVERRIDE
{
m_bIsByOutrunner = false;
m_iSpawnId = 0;
@@ -234,7 +234,7 @@ public:
npc_escortAI::JustRespawned();
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (HasEscortState(STATE_ESCORT_ESCORTING))
{
@@ -270,13 +270,13 @@ public:
}
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
summoned->SetWalk(false);
summoned->GetMotionMaster()->MovePoint(0, m_afAmbushMoveTo[m_iSpawnId].m_fX, m_afAmbushMoveTo[m_iSpawnId].m_fY, m_afAmbushMoveTo[m_iSpawnId].m_fZ);
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
Player* player = GetPlayerForEscort();
if (!player)
@@ -302,7 +302,7 @@ public:
}
}
- void UpdateEscortAI(const uint32 uiDiff)
+ void UpdateEscortAI(const uint32 uiDiff) OVERRIDE
{
//Check if we have a current target
if (!UpdateVictim())
diff --git a/src/server/scripts/EasternKingdoms/zone_ironforge.cpp b/src/server/scripts/EasternKingdoms/zone_ironforge.cpp
index f9e8d4d16c6..90271c5658c 100644
--- a/src/server/scripts/EasternKingdoms/zone_ironforge.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_ironforge.cpp
@@ -1,6 +1,5 @@
/*
* Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
- * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
@@ -16,84 +15,9 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-/* ScriptData
-SDName: Ironforge
-SD%Complete: 100
-SDComment: Quest support: 3702
-SDCategory: Ironforge
-EndScriptData */
-
-/* ContentData
-npc_royal_historian_archesonus
-EndContentData */
-
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "Player.h"
-/*######
-## npc_royal_historian_archesonus
-######*/
-
-#define GOSSIP_ITEM_ROYAL "I am ready to listen"
-#define GOSSIP_ITEM_ROYAL_1 "That is tragic. How did this happen?"
-#define GOSSIP_ITEM_ROYAL_2 "Interesting, continue please."
-#define GOSSIP_ITEM_ROYAL_3 "Unbelievable! How dare they??"
-#define GOSSIP_ITEM_ROYAL_4 "Of course I will help!"
-
-class npc_royal_historian_archesonus : public CreatureScript
-{
-public:
- npc_royal_historian_archesonus() : CreatureScript("npc_royal_historian_archesonus") { }
-
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
- {
- player->PlayerTalkClass->ClearMenus();
- switch (action)
- {
- case GOSSIP_ACTION_INFO_DEF:
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_ROYAL_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
- player->SEND_GOSSIP_MENU(2236, creature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF+1:
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_ROYAL_2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
- player->SEND_GOSSIP_MENU(2237, creature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF+2:
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_ROYAL_3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
- player->SEND_GOSSIP_MENU(2238, creature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF+3:
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_ROYAL_4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
- player->SEND_GOSSIP_MENU(2239, creature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF+4:
- player->CLOSE_GOSSIP_MENU();
- player->AreaExploredOrEventHappens(3702);
- break;
- }
- return true;
- }
-
- bool OnGossipHello(Player* player, Creature* creature)
- {
- if (creature->isQuestGiver())
- player->PrepareQuestMenu(creature->GetGUID());
-
- if (player->GetQuestStatus(3702) == QUEST_STATUS_INCOMPLETE)
- {
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_ROYAL, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
- player->SEND_GOSSIP_MENU(2235, creature->GetGUID());
- }
- else
- player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
-
- return true;
- }
-};
-
-void AddSC_ironforge()
-{
- new npc_royal_historian_archesonus();
-}
+void AddSC_ironforge() { }
diff --git a/src/server/scripts/EasternKingdoms/zone_isle_of_queldanas.cpp b/src/server/scripts/EasternKingdoms/zone_isle_of_queldanas.cpp
index 45f5e17095f..3ebcd315eaf 100644
--- a/src/server/scripts/EasternKingdoms/zone_isle_of_queldanas.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_isle_of_queldanas.cpp
@@ -50,9 +50,9 @@ class npc_converted_sentry : public CreatureScript
public:
npc_converted_sentry() : CreatureScript("npc_converted_sentry") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_converted_sentryAI (creature);
+ return new npc_converted_sentryAI(creature);
}
struct npc_converted_sentryAI : public ScriptedAI
@@ -62,16 +62,17 @@ public:
bool Credit;
uint32 Timer;
- void Reset()
+ void Reset() OVERRIDE
{
Credit = false;
Timer = 2500;
}
- void MoveInLineOfSight(Unit* /*who*/) {}
- void EnterCombat(Unit* /*who*/) {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!Credit)
{
@@ -80,7 +81,7 @@ public:
Talk(SAY_CONVERTED);
DoCast(me, SPELL_CONVERT_CREDIT);
- if (me->isPet())
+ if (me->IsPet())
me->ToPet()->SetDuration(7500);
Credit = true;
} else Timer -= diff;
@@ -103,7 +104,7 @@ class npc_greengill_slave : public CreatureScript
public:
npc_greengill_slave() : CreatureScript("npc_greengill_slave") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_greengill_slaveAI(creature);
}
@@ -114,14 +115,14 @@ public:
uint64 PlayerGUID;
- void EnterCombat(Unit* /*who*/){}
+ void EnterCombat(Unit* /*who*/)OVERRIDE {}
- void Reset()
+ void Reset() OVERRIDE
{
PlayerGUID = 0;
}
- void SpellHit(Unit* caster, const SpellInfo* spell)
+ void SpellHit(Unit* caster, const SpellInfo* spell) OVERRIDE
{
if (!caster)
return;
@@ -145,7 +146,7 @@ public:
}
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
DoMeleeAttackIfReady();
}
diff --git a/src/server/scripts/EasternKingdoms/zone_loch_modan.cpp b/src/server/scripts/EasternKingdoms/zone_loch_modan.cpp
index 30f12718d64..afdfa496f7c 100644
--- a/src/server/scripts/EasternKingdoms/zone_loch_modan.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_loch_modan.cpp
@@ -50,7 +50,7 @@ class npc_mountaineer_pebblebitty : public CreatureScript
public:
npc_mountaineer_pebblebitty() : CreatureScript("npc_mountaineer_pebblebitty") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -86,9 +86,9 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
if (!player->GetQuestRewardStatus(3181) == 1)
diff --git a/src/server/scripts/EasternKingdoms/zone_redridge_mountains.cpp b/src/server/scripts/EasternKingdoms/zone_redridge_mountains.cpp
index fc5ee94a55f..20a47325a9c 100644
--- a/src/server/scripts/EasternKingdoms/zone_redridge_mountains.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_redridge_mountains.cpp
@@ -26,7 +26,7 @@ Script Data End */
#include "ScriptedEscortAI.h"
#include "Player.h"
-enum eCorporalKeeshan
+enum CorporalKeeshan
{
QUEST_MISSING_IN_ACTION = 219,
@@ -45,7 +45,7 @@ class npc_corporal_keeshan : public CreatureScript
public:
npc_corporal_keeshan() : CreatureScript("npc_corporal_keeshan") { }
- bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_MISSING_IN_ACTION)
{
@@ -56,7 +56,7 @@ public:
return false;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_corporal_keeshanAI(creature);
}
@@ -70,7 +70,7 @@ public:
uint32 uiMockingBlowTimer;
uint32 uiShieldBashTimer;
- void Reset()
+ void Reset() OVERRIDE
{
uiTimer = 0;
uiPhase = 0;
@@ -78,13 +78,13 @@ public:
uiShieldBashTimer = 8000;
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
Player* player = GetPlayerForEscort();
if (!player)
return;
- if (waypointId >= 65 && me->GetUnitMovementFlags() == MOVEMENTFLAG_WALKING)
+ if (waypointId >= 65)
me->SetWalk(false);
switch (waypointId)
@@ -105,7 +105,7 @@ public:
}
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (HasEscortState(STATE_ESCORT_NONE))
return;
@@ -152,13 +152,13 @@ public:
if (uiMockingBlowTimer <= uiDiff)
{
- DoCast(me->getVictim(), SPELL_MOCKING_BLOW);
+ DoCastVictim(SPELL_MOCKING_BLOW);
uiMockingBlowTimer = 5000;
} else uiMockingBlowTimer -= uiDiff;
if (uiShieldBashTimer <= uiDiff)
{
- DoCast(me->getVictim(), SPELL_MOCKING_BLOW);
+ DoCastVictim(SPELL_MOCKING_BLOW);
uiShieldBashTimer = 8000;
} else uiShieldBashTimer -= uiDiff;
diff --git a/src/server/scripts/EasternKingdoms/zone_silvermoon_city.cpp b/src/server/scripts/EasternKingdoms/zone_silvermoon_city.cpp
index 0e7472fc63b..b5f85d38105 100644
--- a/src/server/scripts/EasternKingdoms/zone_silvermoon_city.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_silvermoon_city.cpp
@@ -35,7 +35,7 @@ EndContentData */
/*#######
# npc_blood_knight_stillblade
#######*/
-enum eStillbladeData
+enum StillbladeData
{
SAY_HEAL = 0,
@@ -49,9 +49,9 @@ class npc_blood_knight_stillblade : public CreatureScript
public:
npc_blood_knight_stillblade() : CreatureScript("npc_blood_knight_stillblade") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_blood_knight_stillbladeAI (creature);
+ return new npc_blood_knight_stillbladeAI(creature);
}
struct npc_blood_knight_stillbladeAI : public ScriptedAI
@@ -61,7 +61,7 @@ public:
uint32 lifeTimer;
bool spellHit;
- void Reset()
+ void Reset() OVERRIDE
{
lifeTimer = 120000;
me->SetStandState(UNIT_STAND_STATE_DEAD);
@@ -69,15 +69,16 @@ public:
spellHit = false;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
- void MoveInLineOfSight(Unit* /*who*/)
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE
+
{
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (me->IsStandState())
{
@@ -88,7 +89,7 @@ public:
}
}
- void SpellHit(Unit* caster, const SpellInfo* Spellkind)
+ void SpellHit(Unit* caster, const SpellInfo* Spellkind) OVERRIDE
{
if (Spellkind->Id != SPELL_SHIMMERING_VESSEL || spellHit)
return;
diff --git a/src/server/scripts/EasternKingdoms/zone_silverpine_forest.cpp b/src/server/scripts/EasternKingdoms/zone_silverpine_forest.cpp
index a0daf31ced9..5fb8aca22e8 100644
--- a/src/server/scripts/EasternKingdoms/zone_silverpine_forest.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_silverpine_forest.cpp
@@ -37,7 +37,7 @@ EndContentData */
## npc_deathstalker_erland
######*/
-enum eErland
+enum Erland
{
SAY_QUESTACCEPT = 0,
SAY_START = 1,
@@ -67,7 +67,7 @@ public:
{
npc_deathstalker_erlandAI(Creature* creature) : npc_escortAI(creature) {}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
Player* player = GetPlayerForEscort();
if (!player)
@@ -108,15 +108,15 @@ public:
}
}
- void Reset() {}
+ void Reset() OVERRIDE {}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
Talk(SAY_AGGRO, who->GetGUID());
}
};
- bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_ESCORTING)
{
@@ -129,7 +129,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_deathstalker_erlandAI(creature);
}
@@ -166,7 +166,7 @@ class pyrewood_ambush : public CreatureScript
public:
pyrewood_ambush() : CreatureScript("pyrewood_ambush") { }
- bool OnQuestAccept(Player* player, Creature* creature, const Quest *quest)
+ bool OnQuestAccept(Player* player, Creature* creature, const Quest *quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_PYREWOOD_AMBUSH && !CAST_AI(pyrewood_ambush::pyrewood_ambushAI, creature->AI())->QuestInProgress)
{
@@ -179,9 +179,9 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new pyrewood_ambushAI (creature);
+ return new pyrewood_ambushAI(creature);
}
struct pyrewood_ambushAI : public ScriptedAI
@@ -199,7 +199,7 @@ public:
bool QuestInProgress;
- void Reset()
+ void Reset() OVERRIDE
{
WaitTimer = WAIT_SECS;
@@ -212,15 +212,15 @@ public:
}
}
- void EnterCombat(Unit* /*who*/){}
+ void EnterCombat(Unit* /*who*/)OVERRIDE {}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
Summons.Summon(summoned);
++KillCount;
}
- void SummonedCreatureDespawn(Creature* summoned)
+ void SummonedCreatureDespawn(Creature* summoned) OVERRIDE
{
Summons.Despawn(summoned);
--KillCount;
@@ -233,7 +233,7 @@ public:
Unit* target = NULL;
if (PlayerGUID)
if (Player* player = Unit::GetPlayer(*me, PlayerGUID))
- if (player->isAlive() && RAND(0, 1))
+ if (player->IsAlive() && RAND(0, 1))
target = player;
if (!target)
@@ -245,7 +245,7 @@ public:
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (PlayerGUID)
if (Player* player = Unit::GetPlayer(*me, PlayerGUID))
@@ -253,7 +253,7 @@ public:
player->FailQuest(QUEST_PYREWOOD_AMBUSH);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//TC_LOG_INFO(LOG_FILTER_TSCR, "DEBUG: p(%i) k(%i) d(%u) W(%i)", Phase, KillCount, diff, WaitTimer);
diff --git a/src/server/scripts/EasternKingdoms/zone_stormwind_city.cpp b/src/server/scripts/EasternKingdoms/zone_stormwind_city.cpp
index d8a2d765983..61c8e6aa28e 100644
--- a/src/server/scripts/EasternKingdoms/zone_stormwind_city.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_stormwind_city.cpp
@@ -50,7 +50,7 @@ class npc_archmage_malin : public CreatureScript
public:
npc_archmage_malin() : CreatureScript("npc_archmage_malin") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF)
@@ -62,9 +62,9 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
if (player->GetQuestStatus(11223) == QUEST_STATUS_COMPLETE)
@@ -80,7 +80,7 @@ public:
## npc_bartleby
######*/
-enum eBartleby
+enum Bartleby
{
FACTION_ENEMY = 168,
QUEST_BEAT = 1640
@@ -91,7 +91,7 @@ class npc_bartleby : public CreatureScript
public:
npc_bartleby() : CreatureScript("npc_bartleby") { }
- bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_BEAT)
{
@@ -101,7 +101,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_bartlebyAI(creature);
}
@@ -115,15 +115,15 @@ public:
uint32 m_uiNormalFaction;
- void Reset()
+ void Reset() OVERRIDE
{
if (me->getFaction() != m_uiNormalFaction)
me->setFaction(m_uiNormalFaction);
}
- void AttackedBy(Unit* pAttacker)
+ void AttackedBy(Unit* pAttacker) OVERRIDE
{
- if (me->getVictim())
+ if (me->GetVictim())
return;
if (me->IsFriendlyTo(pAttacker))
@@ -132,7 +132,7 @@ public:
AttackStart(pAttacker);
}
- void DamageTaken(Unit* pDoneBy, uint32 &uiDamage)
+ void DamageTaken(Unit* pDoneBy, uint32 &uiDamage) OVERRIDE
{
if (uiDamage > me->GetHealth() || me->HealthBelowPctDamaged(15, uiDamage))
{
@@ -161,7 +161,7 @@ class npc_lady_katrana_prestor : public CreatureScript
public:
npc_lady_katrana_prestor() : CreatureScript("npc_lady_katrana_prestor") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -186,9 +186,9 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
if (player->GetQuestStatus(4185) == QUEST_STATUS_INCOMPLETE)
@@ -204,7 +204,7 @@ public:
## npc_lord_gregor_lescovar
######*/
-enum eLordGregorLescovar
+enum LordGregorLescovar
{
SAY_GUARD_2 = 0,
SAY_LESCOVAR_2 = 0,
@@ -226,7 +226,7 @@ class npc_lord_gregor_lescovar : public CreatureScript
public:
npc_lord_gregor_lescovar() : CreatureScript("npc_lord_gregor_lescovar") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_lord_gregor_lescovarAI(creature);
}
@@ -243,7 +243,7 @@ public:
uint64 MarzonGUID;
- void Reset()
+ void Reset() OVERRIDE
{
uiTimer = 0;
uiPhase = 0;
@@ -251,27 +251,27 @@ public:
MarzonGUID = 0;
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
me->DisappearAndDie();
if (Creature* pMarzon = Unit::GetCreature(*me, MarzonGUID))
{
- if (pMarzon->isAlive())
+ if (pMarzon->IsAlive())
pMarzon->DisappearAndDie();
}
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (Creature* pMarzon = Unit::GetCreature(*me, MarzonGUID))
{
- if (pMarzon->isAlive() && !pMarzon->isInCombat())
+ if (pMarzon->IsAlive() && !pMarzon->IsInCombat())
pMarzon->AI()->AttackStart(who);
}
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
switch (waypointId)
{
@@ -308,7 +308,7 @@ public:
}
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (uiPhase)
{
@@ -381,7 +381,7 @@ class npc_marzon_silent_blade : public CreatureScript
public:
npc_marzon_silent_blade() : CreatureScript("npc_marzon_silent_blade") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_marzon_silent_bladeAI(creature);
}
@@ -393,45 +393,45 @@ public:
me->SetWalk(true);
}
- void Reset()
+ void Reset() OVERRIDE
{
me->RestoreFaction();
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
Talk(SAY_MARZON_2);
- if (me->isSummon())
+ if (me->IsSummon())
{
if (Unit* summoner = me->ToTempSummon()->GetSummoner())
{
- if (summoner->GetTypeId() == TYPEID_UNIT && summoner->isAlive() && !summoner->isInCombat())
+ if (summoner->GetTypeId() == TYPEID_UNIT && summoner->IsAlive() && !summoner->IsInCombat())
summoner->ToCreature()->AI()->AttackStart(who);
}
}
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
me->DisappearAndDie();
- if (me->isSummon())
+ if (me->IsSummon())
{
if (Unit* summoner = me->ToTempSummon()->GetSummoner())
{
- if (summoner->GetTypeId() == TYPEID_UNIT && summoner->isAlive())
+ if (summoner->GetTypeId() == TYPEID_UNIT && summoner->IsAlive())
summoner->ToCreature()->DisappearAndDie();
}
}
}
- void MovementInform(uint32 uiType, uint32 /*uiId*/)
+ void MovementInform(uint32 uiType, uint32 /*uiId*/) OVERRIDE
{
if (uiType != POINT_MOTION_TYPE)
return;
- if (me->isSummon())
+ if (me->IsSummon())
{
Unit* summoner = me->ToTempSummon()->GetSummoner();
if (summoner && summoner->GetTypeId() == TYPEID_UNIT && summoner->IsAIEnabled)
@@ -448,7 +448,7 @@ public:
}
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -462,7 +462,7 @@ public:
## npc_tyrion_spybot
######*/
-enum eTyrionSpybot
+enum TyrionSpybot
{
SAY_QUEST_ACCEPT_ATTACK = 0,
SAY_SPYBOT_1 = 1,
@@ -482,7 +482,7 @@ class npc_tyrion_spybot : public CreatureScript
public:
npc_tyrion_spybot() : CreatureScript("npc_tyrion_spybot") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_tyrion_spybotAI(creature);
}
@@ -494,13 +494,13 @@ public:
uint32 uiTimer;
uint32 uiPhase;
- void Reset()
+ void Reset() OVERRIDE
{
uiTimer = 0;
uiPhase = 0;
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
switch (waypointId)
{
@@ -524,7 +524,7 @@ public:
}
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (uiPhase)
{
@@ -610,7 +610,7 @@ public:
## npc_tyrion
######*/
-enum eTyrion
+enum Tyrion
{
NPC_TYRION_SPYBOT = 8856
};
@@ -620,7 +620,7 @@ class npc_tyrion : public CreatureScript
public:
npc_tyrion() : CreatureScript("npc_tyrion") { }
- bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_THE_ATTACK)
{
diff --git a/src/server/scripts/EasternKingdoms/zone_stranglethorn_vale.cpp b/src/server/scripts/EasternKingdoms/zone_stranglethorn_vale.cpp
index 66fb4819175..4dc41e5551c 100644
--- a/src/server/scripts/EasternKingdoms/zone_stranglethorn_vale.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_stranglethorn_vale.cpp
@@ -24,7 +24,7 @@ SDCategory: Stranglethorn Vale
EndScriptData */
/* ContentData
-mob_yenniku
+npc_yenniku
EndContentData */
#include "ScriptMgr.h"
@@ -33,22 +33,22 @@ EndContentData */
#include "SpellInfo.h"
/*######
-## mob_yenniku
+## npc_yenniku
######*/
-class mob_yenniku : public CreatureScript
+class npc_yenniku : public CreatureScript
{
public:
- mob_yenniku() : CreatureScript("mob_yenniku") { }
+ npc_yenniku() : CreatureScript("npc_yenniku") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_yennikuAI (creature);
+ return new npc_yennikuAI(creature);
}
- struct mob_yennikuAI : public ScriptedAI
+ struct npc_yennikuAI : public ScriptedAI
{
- mob_yennikuAI(Creature* creature) : ScriptedAI(creature)
+ npc_yennikuAI(Creature* creature) : ScriptedAI(creature)
{
bReset = false;
}
@@ -56,13 +56,13 @@ public:
uint32 Reset_Timer;
bool bReset;
- void Reset()
+ void Reset() OVERRIDE
{
Reset_Timer = 0;
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE);
}
- void SpellHit(Unit* caster, const SpellInfo* spell)
+ void SpellHit(Unit* caster, const SpellInfo* spell) OVERRIDE
{
if (bReset || spell->Id != 3607)
return;
@@ -82,9 +82,9 @@ public:
}
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (bReset)
{
@@ -98,9 +98,9 @@ public:
Reset_Timer -= diff;
- if (me->isInCombat() && me->getVictim())
+ if (me->IsInCombat() && me->GetVictim())
{
- if (Player* player = me->getVictim()->ToPlayer())
+ if (Player* player = me->GetVictim()->ToPlayer())
{
if (player->GetTeam() == HORDE)
{
@@ -126,5 +126,5 @@ public:
void AddSC_stranglethorn_vale()
{
- new mob_yenniku();
+ new npc_yenniku();
}
diff --git a/src/server/scripts/EasternKingdoms/zone_swamp_of_sorrows.cpp b/src/server/scripts/EasternKingdoms/zone_swamp_of_sorrows.cpp
index c7780bb0065..bec49e0f15c 100644
--- a/src/server/scripts/EasternKingdoms/zone_swamp_of_sorrows.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_swamp_of_sorrows.cpp
@@ -45,7 +45,7 @@ public:
npc_galen_goodward() : CreatureScript("npc_galen_goodward") { }
- bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_GALENS_ESCAPE)
{
@@ -56,7 +56,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_galen_goodwardAI(creature);
}
@@ -72,18 +72,18 @@ public:
uint64 m_uiGalensCageGUID;
uint32 m_uiPeriodicSay;
- void Reset()
+ void Reset() OVERRIDE
{
m_uiPeriodicSay = 6000;
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (HasEscortState(STATE_ESCORT_ESCORTING))
Talk(SAY_ATTACKED, who->GetGUID());
}
- void WaypointStart(uint32 uiPointId)
+ void WaypointStart(uint32 uiPointId) OVERRIDE
{
switch (uiPointId)
{
@@ -107,7 +107,7 @@ public:
}
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
switch (waypointId)
{
@@ -128,7 +128,7 @@ public:
}
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
npc_escortAI::UpdateAI(uiDiff);
diff --git a/src/server/scripts/EasternKingdoms/zone_tirisfal_glades.cpp b/src/server/scripts/EasternKingdoms/zone_tirisfal_glades.cpp
index 9a496fadb1e..d84b02d613e 100644
--- a/src/server/scripts/EasternKingdoms/zone_tirisfal_glades.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_tirisfal_glades.cpp
@@ -50,7 +50,7 @@ class npc_calvin_montague : public CreatureScript
public:
npc_calvin_montague() : CreatureScript("npc_calvin_montague") { }
- bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_590)
{
@@ -61,9 +61,9 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_calvin_montagueAI (creature);
+ return new npc_calvin_montagueAI(creature);
}
struct npc_calvin_montagueAI : public ScriptedAI
@@ -74,7 +74,7 @@ public:
uint32 m_uiPhaseTimer;
uint64 m_uiPlayerGUID;
- void Reset()
+ void Reset() OVERRIDE
{
m_uiPhase = 0;
m_uiPhaseTimer = 5000;
@@ -86,17 +86,17 @@ public:
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void AttackedBy(Unit* pAttacker)
+ void AttackedBy(Unit* pAttacker) OVERRIDE
{
- if (me->getVictim() || me->IsFriendlyTo(pAttacker))
+ if (me->GetVictim() || me->IsFriendlyTo(pAttacker))
return;
AttackStart(pAttacker);
}
- void DamageTaken(Unit* pDoneBy, uint32 &uiDamage)
+ void DamageTaken(Unit* pDoneBy, uint32 &uiDamage) OVERRIDE
{
if (uiDamage > me->GetHealth() || me->HealthBelowPctDamaged(15, uiDamage))
{
@@ -113,7 +113,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (m_uiPhase)
{
@@ -159,7 +159,7 @@ public:
## go_mausoleum_trigger
######*/
-enum eMausoleum
+enum Mausoleum
{
QUEST_ULAG = 1819,
NPC_ULAG = 6390,
@@ -172,7 +172,7 @@ class go_mausoleum_door : public GameObjectScript
public:
go_mausoleum_door() : GameObjectScript("go_mausoleum_door") { }
- bool OnGossipHello(Player* player, GameObject* /*go*/)
+ bool OnGossipHello(Player* player, GameObject* /*go*/) OVERRIDE
{
if (player->GetQuestStatus(QUEST_ULAG) != QUEST_STATUS_INCOMPLETE)
return false;
@@ -193,7 +193,7 @@ class go_mausoleum_trigger : public GameObjectScript
public:
go_mausoleum_trigger() : GameObjectScript("go_mausoleum_trigger") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
if (player->GetQuestStatus(QUEST_ULAG) != QUEST_STATUS_INCOMPLETE)
return false;
diff --git a/src/server/scripts/EasternKingdoms/zone_undercity.cpp b/src/server/scripts/EasternKingdoms/zone_undercity.cpp
index 43ee012ef40..33f884408e2 100644
--- a/src/server/scripts/EasternKingdoms/zone_undercity.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_undercity.cpp
@@ -77,7 +77,7 @@ class npc_lady_sylvanas_windrunner : public CreatureScript
public:
npc_lady_sylvanas_windrunner() : CreatureScript("npc_lady_sylvanas_windrunner") { }
- bool OnQuestReward(Player* /*player*/, Creature* creature, const Quest *_Quest, uint32 /*slot*/)
+ bool OnQuestReward(Player* /*player*/, Creature* creature, const Quest *_Quest, uint32 /*slot*/) OVERRIDE
{
if (_Quest->GetQuestId() == QUEST_JOURNEY_TO_UNDERCITY)
{
@@ -92,9 +92,9 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_lady_sylvanas_windrunnerAI (creature);
+ return new npc_lady_sylvanas_windrunnerAI(creature);
}
struct npc_lady_sylvanas_windrunnerAI : public ScriptedAI
@@ -111,7 +111,7 @@ public:
uint32 ShotTimer;
uint32 MultiShotTimer;
- void Reset()
+ void Reset() OVERRIDE
{
LamentEventTimer = 5000;
LamentEvent = false;
@@ -124,9 +124,9 @@ public:
MultiShotTimer = 10000;
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
if (summoned->GetEntry() == ENTRY_HIGHBORNE_BUNNY)
{
@@ -142,7 +142,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (LamentEvent)
{
@@ -172,7 +172,7 @@ public:
DoCast(me, SPELL_FADE_BLINK);
FadeTimer = 30000 + rand()%5000;
// if the victim is out of melee range she cast multi shot
- if (Unit* victim = me->getVictim())
+ if (Unit* victim = me->GetVictim())
if (me->GetDistance(victim) > 10.0f)
DoCast(victim, SPELL_MULTI_SHOT);
} else FadeTimer -= diff;
@@ -185,7 +185,7 @@ public:
if (BlackArrowTimer <= diff)
{
- if (Unit* victim = me->getVictim())
+ if (Unit* victim = me->GetVictim())
{
DoCast(victim, SPELL_BLACK_ARROW);
BlackArrowTimer = 15000 + rand()%5000;
@@ -194,7 +194,7 @@ public:
if (ShotTimer <= diff)
{
- if (Unit* victim = me->getVictim())
+ if (Unit* victim = me->GetVictim())
{
DoCast(victim, SPELL_SHOT);
ShotTimer = 8000 + rand()%2000;
@@ -203,7 +203,7 @@ public:
if (MultiShotTimer <= diff)
{
- if (Unit* victim = me->getVictim())
+ if (Unit* victim = me->GetVictim())
{
DoCast(victim, SPELL_MULTI_SHOT);
MultiShotTimer = 10000 + rand()%3000;
@@ -224,9 +224,9 @@ class npc_highborne_lamenter : public CreatureScript
public:
npc_highborne_lamenter() : CreatureScript("npc_highborne_lamenter") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_highborne_lamenterAI (creature);
+ return new npc_highborne_lamenterAI(creature);
}
struct npc_highborne_lamenterAI : public ScriptedAI
@@ -238,7 +238,7 @@ public:
bool EventMove;
bool EventCast;
- void Reset()
+ void Reset() OVERRIDE
{
EventMoveTimer = 10000;
EventCastTimer = 17500;
@@ -246,9 +246,9 @@ public:
EventCast = true;
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (EventMove)
{
@@ -276,18 +276,21 @@ public:
## npc_parqual_fintallas
######*/
-#define SPELL_MARK_OF_SHAME 6767
+enum ParqualFintallas
+{
+ SPELL_MARK_OF_SHAME = 6767
+};
-#define GOSSIP_HPF1 "Gul'dan"
-#define GOSSIP_HPF2 "Kel'Thuzad"
-#define GOSSIP_HPF3 "Ner'zhul"
+#define GOSSIP_HPF1 "Gul'dan"
+#define GOSSIP_HPF2 "Kel'Thuzad"
+#define GOSSIP_HPF3 "Ner'zhul"
class npc_parqual_fintallas : public CreatureScript
{
public:
npc_parqual_fintallas() : CreatureScript("npc_parqual_fintallas") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF+1)
@@ -303,9 +306,9 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
if (player->GetQuestStatus(6628) == QUEST_STATUS_INCOMPLETE && !player->HasAura(SPELL_MARK_OF_SHAME))
diff --git a/src/server/scripts/EasternKingdoms/zone_western_plaguelands.cpp b/src/server/scripts/EasternKingdoms/zone_western_plaguelands.cpp
index 0692330b87a..4057f4070b1 100644
--- a/src/server/scripts/EasternKingdoms/zone_western_plaguelands.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_western_plaguelands.cpp
@@ -53,7 +53,7 @@ class npcs_dithers_and_arbington : public CreatureScript
public:
npcs_dithers_and_arbington() : CreatureScript("npcs_dithers_and_arbington") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -85,12 +85,12 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
- if (creature->isVendor())
+ if (creature->IsVendor())
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
if (player->GetQuestRewardStatus(5237) || player->GetQuestRewardStatus(5238))
@@ -112,7 +112,7 @@ public:
## npc_myranda_the_hag
######*/
-enum eMyranda
+enum Myranda
{
QUEST_SUBTERFUGE = 5862,
QUEST_IN_DREAMS = 5944,
@@ -126,7 +126,7 @@ class npc_myranda_the_hag : public CreatureScript
public:
npc_myranda_the_hag() : CreatureScript("npc_myranda_the_hag") { }
- bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF + 1)
@@ -137,9 +137,9 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
if (player->GetQuestStatus(QUEST_SUBTERFUGE) == QUEST_STATUS_COMPLETE &&
@@ -165,18 +165,18 @@ class npc_the_scourge_cauldron : public CreatureScript
public:
npc_the_scourge_cauldron() : CreatureScript("npc_the_scourge_cauldron") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_the_scourge_cauldronAI (creature);
+ return new npc_the_scourge_cauldronAI(creature);
}
struct npc_the_scourge_cauldronAI : public ScriptedAI
{
npc_the_scourge_cauldronAI(Creature* creature) : ScriptedAI(creature) {}
- void Reset() {}
+ void Reset() OVERRIDE {}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
void DoDie()
{
@@ -188,7 +188,8 @@ public:
me->SetRespawnDelay(600);
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (!who)
return;
@@ -240,7 +241,7 @@ public:
## npcs_andorhal_tower
######*/
-enum eAndorhalTower
+enum AndorhalTower
{
GO_BEACON_TORCH = 176093
};
@@ -250,9 +251,9 @@ class npc_andorhal_tower : public CreatureScript
public:
npc_andorhal_tower() : CreatureScript("npc_andorhal_tower") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_andorhal_towerAI (creature);
+ return new npc_andorhal_towerAI(creature);
}
struct npc_andorhal_towerAI : public ScriptedAI
@@ -262,7 +263,8 @@ public:
SetCombatMovement(false);
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (!who || who->GetTypeId() != TYPEID_PLAYER)
return;
@@ -278,7 +280,7 @@ public:
## npc_anchorite_truuen
######*/
-enum eTruuen
+enum Truuen
{
NPC_GHOST_UTHER = 17233,
NPC_THEL_DANIS = 1854,
@@ -300,7 +302,7 @@ class npc_anchorite_truuen : public CreatureScript
public:
npc_anchorite_truuen() : CreatureScript("npc_anchorite_truuen") { }
- bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE
{
npc_escortAI* pEscortAI = CAST_AI(npc_anchorite_truuen::npc_anchorite_truuenAI, creature->AI());
@@ -309,7 +311,7 @@ public:
return false;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_anchorite_truuenAI(creature);
}
@@ -326,18 +328,18 @@ public:
Creature* Ughost;
Creature* Theldanis;
- void Reset()
+ void Reset() OVERRIDE
{
m_uiChatTimer = 7000;
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
if (summoned->GetEntry() == NPC_GHOUL)
summoned->AI()->AttackStart(me);
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
Player* player = GetPlayerForEscort();
@@ -392,15 +394,15 @@ public:
}
}
- void EnterCombat(Unit* /*who*/){}
+ void EnterCombat(Unit* /*who*/)OVERRIDE {}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (Player* player = GetPlayerForEscort())
player->FailQuest(QUEST_TOMB_LIGHTBRINGER);
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
npc_escortAI::UpdateAI(uiDiff);
DoMeleeAttackIfReady();
diff --git a/src/server/scripts/EasternKingdoms/zone_westfall.cpp b/src/server/scripts/EasternKingdoms/zone_westfall.cpp
index 1b93cf1be71..0ded937d5a8 100644
--- a/src/server/scripts/EasternKingdoms/zone_westfall.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_westfall.cpp
@@ -37,17 +37,25 @@ EndContentData */
## npc_daphne_stilwell
######*/
-enum eEnums
+enum DaphneStilwell
{
+ // Yells
SAY_DS_START = 0,
SAY_DS_DOWN_1 = 1,
SAY_DS_DOWN_2 = 2,
SAY_DS_DOWN_3 = 3,
SAY_DS_PROLOGUE = 4,
+ // Spells
SPELL_SHOOT = 6660,
+
+ // Quests
QUEST_TOME_VALOR = 1651,
+
+ // Creatures
NPC_DEFIAS_RAIDER = 6180,
+
+ // Equips
EQUIP_ID_RIFLE = 2511
};
@@ -56,7 +64,7 @@ class npc_daphne_stilwell : public CreatureScript
public:
npc_daphne_stilwell() : CreatureScript("npc_daphne_stilwell") { }
- bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_TOME_VALOR)
{
@@ -69,7 +77,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_daphne_stilwellAI(creature);
}
@@ -81,7 +89,7 @@ public:
uint32 uiWPHolder;
uint32 uiShootTimer;
- void Reset()
+ void Reset() OVERRIDE
{
if (HasEscortState(STATE_ESCORT_ESCORTING))
{
@@ -104,7 +112,7 @@ public:
uiShootTimer = 0;
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
Player* player = GetPlayerForEscort();
if (!player)
@@ -156,7 +164,7 @@ public:
}
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (!who)
return;
@@ -171,7 +179,7 @@ public:
}
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
summoned->AI()->AttackStart(me);
}
@@ -187,8 +195,8 @@ public:
{
uiShootTimer = 1500;
- if (!me->IsWithinDist(me->getVictim(), ATTACK_DISTANCE))
- DoCast(me->getVictim(), SPELL_SHOOT);
+ if (!me->IsWithinDist(me->GetVictim(), ATTACK_DISTANCE))
+ DoCastVictim(SPELL_SHOOT);
} else uiShootTimer -= diff;
}
};
@@ -213,7 +221,7 @@ class npc_defias_traitor : public CreatureScript
public:
npc_defias_traitor() : CreatureScript("npc_defias_traitor") { }
- bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_DEFIAS_BROTHERHOOD)
{
@@ -226,7 +234,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_defias_traitorAI(creature);
}
@@ -235,7 +243,7 @@ public:
{
npc_defias_traitorAI(Creature* creature) : npc_escortAI(creature) { Reset(); }
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
Player* player = GetPlayerForEscort();
if (!player)
@@ -256,12 +264,12 @@ public:
}
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
Talk(SAY_AGGRO, who->GetGUID());
}
- void Reset() {}
+ void Reset() OVERRIDE {}
};
};
diff --git a/src/server/scripts/EasternKingdoms/zone_wetlands.cpp b/src/server/scripts/EasternKingdoms/zone_wetlands.cpp
index ea7b995e8cf..dc4154c3d3e 100644
--- a/src/server/scripts/EasternKingdoms/zone_wetlands.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_wetlands.cpp
@@ -37,7 +37,7 @@ EndContentData */
## npc_tapoke_slim_jahn
######*/
-enum eTapokeSlim
+enum TapokeSlim
{
QUEST_MISSING_DIPLO_PT11 = 1249,
FACTION_ENEMY = 168,
@@ -52,7 +52,7 @@ class npc_tapoke_slim_jahn : public CreatureScript
public:
npc_tapoke_slim_jahn() : CreatureScript("npc_tapoke_slim_jahn") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_tapoke_slim_jahnAI(creature);
}
@@ -63,13 +63,13 @@ public:
bool IsFriendSummoned;
- void Reset()
+ void Reset() OVERRIDE
{
if (!HasEscortState(STATE_ESCORT_ESCORTING))
IsFriendSummoned = false;
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
switch (waypointId)
{
@@ -82,7 +82,7 @@ public:
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (HasEscortState(STATE_ESCORT_ESCORTING) && !IsFriendSummoned && GetPlayerForEscort())
{
@@ -93,15 +93,15 @@ public:
}
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
if (Player* player = GetPlayerForEscort())
summoned->AI()->AttackStart(player);
}
- void AttackedBy(Unit* pAttacker)
+ void AttackedBy(Unit* pAttacker) OVERRIDE
{
- if (me->getVictim())
+ if (me->GetVictim())
return;
if (me->IsFriendlyTo(pAttacker))
@@ -110,7 +110,7 @@ public:
AttackStart(pAttacker);
}
- void DamageTaken(Unit* /*pDoneBy*/, uint32& uiDamage)
+ void DamageTaken(Unit* /*pDoneBy*/, uint32& uiDamage) OVERRIDE
{
if (HealthBelowPct(20))
{
@@ -141,7 +141,7 @@ class npc_mikhail : public CreatureScript
public:
npc_mikhail() : CreatureScript("npc_mikhail") { }
- bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_MISSING_DIPLO_PT11)
{
diff --git a/src/server/scripts/Events/childrens_week.cpp b/src/server/scripts/Events/childrens_week.cpp
index 2ef776e4e76..655fa65f2f2 100644
--- a/src/server/scripts/Events/childrens_week.cpp
+++ b/src/server/scripts/Events/childrens_week.cpp
@@ -160,7 +160,8 @@ class npc_winterfin_playmate : public CreatureScript
orphanGUID = 0;
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (!phase && who && who->GetDistance2d(me) < 10.0f)
if (Player* player = who->ToPlayer())
@@ -258,7 +259,8 @@ class npc_snowfall_glade_playmate : public CreatureScript
orphanGUID = 0;
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (!phase && who && who->GetDistance2d(me) < 10.0f)
if (Player* player = who->ToPlayer())
@@ -358,7 +360,8 @@ class npc_the_biggest_tree : public CreatureScript
orphanGUID = 0;
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (!phase && who && who->GetDistance2d(me) < 10.0f)
if (Player* player = who->ToPlayer())
@@ -444,7 +447,8 @@ class npc_high_oracle_soo_roo : public CreatureScript
orphanGUID = 0;
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (!phase && who && who->GetDistance2d(me) < 10.0f)
if (Player* player = who->ToPlayer())
@@ -532,7 +536,8 @@ class npc_elder_kekek : public CreatureScript
orphanGUID = 0;
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (!phase && who && who->GetDistance2d(me) < 10.0f)
if (Player* player = who->ToPlayer())
@@ -620,7 +625,8 @@ class npc_the_etymidian : public CreatureScript
orphanGUID = 0;
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (!phase && who && who->GetDistance2d(me) < 10.0f)
if (Player* player = who->ToPlayer())
@@ -732,7 +738,8 @@ class npc_alexstraza_the_lifebinder : public CreatureScript
}
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (!phase && who && who->GetDistance2d(me) < 10.0f)
if (Player* player = who->ToPlayer())
@@ -926,7 +933,8 @@ class npc_cw_area_trigger : public CreatureScript
me->SetDisplayId(DISPLAY_INVISIBLE);
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (who && me->GetDistance2d(who) < 20.0f)
if (Player* player = who->ToPlayer())
@@ -1022,7 +1030,8 @@ class npc_grizzlemaw_cw_trigger : public CreatureScript
me->SetDisplayId(DISPLAY_INVISIBLE);
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (who && who->GetDistance2d(me) < 10.0f)
if (Player* player = who->ToPlayer())
diff --git a/src/server/scripts/Examples/example_commandscript.cpp b/src/server/scripts/Examples/example_commandscript.cpp
index a87b8c5a555..0c10cec5155 100644
--- a/src/server/scripts/Examples/example_commandscript.cpp
+++ b/src/server/scripts/Examples/example_commandscript.cpp
@@ -43,7 +43,7 @@ class example_commandscript : public CommandScript
return true;
}
- ChatCommand* GetCommands() const
+ ChatCommand* GetCommands() const OVERRIDE
{
static ChatCommand HelloWorldCommandTable[] =
{
diff --git a/src/server/scripts/Examples/example_creature.cpp b/src/server/scripts/Examples/example_creature.cpp
index d4e1b8d8ce2..92c248c1fc9 100644
--- a/src/server/scripts/Examples/example_creature.cpp
+++ b/src/server/scripts/Examples/example_creature.cpp
@@ -72,7 +72,7 @@ enum Spells
SPELL_BERSERK = 32965,
};
-enum eEnums
+enum Factions
{
// any other constants
FACTION_WORGEN = 24
@@ -111,7 +111,7 @@ class example_creature : public CreatureScript
// *** HANDLED FUNCTION ***
//This is called after spawn and whenever the core decides we need to evade
- void Reset()
+ void Reset() OVERRIDE
{
m_uiPhase = 1; // Start in phase 1
m_uiPhaseTimer = 60000; // 60 seconds
@@ -125,7 +125,7 @@ class example_creature : public CreatureScript
// *** HANDLED FUNCTION ***
// Enter Combat called once per combat
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
//Say some stuff
Talk(SAY_AGGRO, who->GetGUID());
@@ -134,21 +134,21 @@ class example_creature : public CreatureScript
// *** HANDLED FUNCTION ***
// Attack Start is called when victim change (including at start of combat)
// By default, attack who and start movement toward the victim.
- //void AttackStart(Unit* who)
+ //void AttackStart(Unit* who) OVERRIDE
//{
// ScriptedAI::AttackStart(who);
//}
// *** HANDLED FUNCTION ***
// Called when going out of combat. Reset is called just after.
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
Talk(SAY_EVADE);
}
// *** HANDLED FUNCTION ***
//Our Receive emote function
- void ReceiveEmote(Player* /*player*/, uint32 uiTextEmote)
+ void ReceiveEmote(Player* /*player*/, uint32 uiTextEmote) OVERRIDE
{
me->HandleEmoteCommand(uiTextEmote);
@@ -165,10 +165,10 @@ class example_creature : public CreatureScript
// *** HANDLED FUNCTION ***
//Update AI is called Every single map update (roughly once every 50ms if a player is within the grid)
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
//Out of combat timers
- if (!me->getVictim())
+ if (!me->GetVictim())
{
//Random Say timer
if (m_uiSayTimer <= uiDiff)
@@ -200,9 +200,9 @@ class example_creature : public CreatureScript
{
//Cast spell one on our current target.
if (rand()%50 > 10)
- DoCast(me->getVictim(), SPELL_ONE_ALT);
- else if (me->IsWithinDist(me->getVictim(), 25.0f))
- DoCast(me->getVictim(), SPELL_ONE);
+ DoCastVictim(SPELL_ONE_ALT);
+ else if (me->IsWithinDist(me->GetVictim(), 25.0f))
+ DoCastVictim(SPELL_ONE);
m_uiSpell1Timer = 5000;
}
@@ -213,7 +213,7 @@ class example_creature : public CreatureScript
if (m_uiSpell2Timer <= uiDiff)
{
//Cast spell two on our current target.
- DoCast(me->getVictim(), SPELL_TWO);
+ DoCastVictim(SPELL_TWO);
m_uiSpell2Timer = 37000;
}
else
@@ -226,7 +226,7 @@ class example_creature : public CreatureScript
if (m_uiSpell3Timer <= uiDiff)
{
//Cast spell one on our current target.
- DoCast(me->getVictim(), SPELL_THREE);
+ DoCastVictim(SPELL_THREE);
m_uiSpell3Timer = 19000;
}
@@ -236,8 +236,8 @@ class example_creature : public CreatureScript
if (m_uiBeserkTimer <= uiDiff)
{
//Say our line then cast uber death spell
- Talk(SAY_BERSERK, me->getVictim() ? me->getVictim()->GetGUID() : 0);
- DoCast(me->getVictim(), SPELL_BERSERK);
+ Talk(SAY_BERSERK, me->GetVictim() ? me->GetVictim()->GetGUID() : 0);
+ DoCastVictim(SPELL_BERSERK);
//Cast our beserk spell agian in 12 seconds if we didn't kill everyone
m_uiBeserkTimer = 12000;
@@ -262,12 +262,12 @@ class example_creature : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new example_creatureAI(creature);
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
player->SEND_GOSSIP_MENU(907, creature->GetGUID());
@@ -275,7 +275,7 @@ class example_creature : public CreatureScript
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF+1)
diff --git a/src/server/scripts/Examples/example_escort.cpp b/src/server/scripts/Examples/example_escort.cpp
index e911736036c..8cbd2fc4933 100644
--- a/src/server/scripts/Examples/example_escort.cpp
+++ b/src/server/scripts/Examples/example_escort.cpp
@@ -30,14 +30,8 @@ EndScriptData */
#include "Player.h"
#include "CreatureTextMgr.h"
-enum eEnums
+enum Yells
{
- NPC_FELBOAR = 21878,
-
- SPELL_DEATH_COIL = 33130,
- SPELL_ELIXIR_OF_FORTITUDE = 3593,
- SPELL_BLUE_FIREWORK = 11540,
-
SAY_AGGRO1 = 0,
SAY_AGGRO2 = 1,
SAY_WP_1 = 2,
@@ -52,6 +46,18 @@ enum eEnums
SAY_RAND_2 = 11
};
+enum Spells
+{
+ SPELL_DEATH_COIL = 33130,
+ SPELL_ELIXIR_OF_FORTITUDE = 3593,
+ SPELL_BLUE_FIREWORK = 11540
+};
+
+enum Creatures
+{
+ NPC_FELBOAR = 21878
+};
+
#define GOSSIP_ITEM_1 "Click to Test Escort(Attack, Run)"
#define GOSSIP_ITEM_2 "Click to Test Escort(NoAttack, Walk)"
#define GOSSIP_ITEM_3 "Click to Test Escort(NoAttack, Run)"
@@ -73,13 +79,13 @@ class example_escort : public CreatureScript
uint32 m_uiDeathCoilTimer;
uint32 m_uiChatTimer;
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
summoned->AI()->AttackStart(me);
}
// Pure Virtual Functions (Have to be implemented)
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
switch (waypointId)
{
@@ -102,7 +108,7 @@ class example_escort : public CreatureScript
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (HasEscortState(STATE_ESCORT_ESCORTING))
{
@@ -113,13 +119,13 @@ class example_escort : public CreatureScript
Talk(SAY_AGGRO2);
}
- void Reset()
+ void Reset() OVERRIDE
{
m_uiDeathCoilTimer = 4000;
m_uiChatTimer = 4000;
}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
if (HasEscortState(STATE_ESCORT_ESCORTING))
{
@@ -136,18 +142,18 @@ class example_escort : public CreatureScript
Talk(SAY_DEATH_3);
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
//Must update npc_escortAI
npc_escortAI::UpdateAI(uiDiff);
//Combat check
- if (me->getVictim())
+ if (me->GetVictim())
{
if (m_uiDeathCoilTimer <= uiDiff)
{
Talk(SAY_SPELL);
- DoCast(me->getVictim(), SPELL_DEATH_COIL, false);
+ DoCastVictim(SPELL_DEATH_COIL, false);
m_uiDeathCoilTimer = 4000;
}
else
@@ -180,12 +186,12 @@ class example_escort : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new example_escortAI(creature);
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
player->TalkedToCreature(creature->GetEntry(), creature->GetGUID());
player->PrepareGossipMenu(creature, 0);
@@ -199,7 +205,7 @@ class example_escort : public CreatureScript
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
npc_escortAI* pEscortAI = CAST_AI(example_escort::example_escortAI, creature->AI());
diff --git a/src/server/scripts/Examples/example_gossip_codebox.cpp b/src/server/scripts/Examples/example_gossip_codebox.cpp
index 1cfc1ef23ae..90aae21f807 100644
--- a/src/server/scripts/Examples/example_gossip_codebox.cpp
+++ b/src/server/scripts/Examples/example_gossip_codebox.cpp
@@ -29,17 +29,20 @@ EndScriptData */
#include "Player.h"
#include <cstring>
-enum eEnums
+enum Yells
{
- SPELL_POLYMORPH = 12826,
- SPELL_MARK_OF_THE_WILD = 26990,
-
- //These texts must be added to the creature texts of the npc for which the script is assigned.
+ // These texts must be added to the creature texts of the npc for which the script is assigned.
SAY_NOT_INTERESTED = 0, // "Normal select, guess you're not interested."
SAY_WRONG = 1, // "Wrong!"
SAY_CORRECT = 2 // "You're right, you are allowed to see my inner secrets."
};
+enum Spells
+{
+ SPELL_POLYMORPH = 12826,
+ SPELL_MARK_OF_THE_WILD = 26990
+};
+
#define GOSSIP_ITEM_1 "A quiz: what's your name?"
#define GOSSIP_ITEM_2 "I'm not interested"
@@ -52,7 +55,7 @@ class example_gossip_codebox : public CreatureScript
{
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_ITEM_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1, "", 0, true);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
@@ -62,7 +65,7 @@ class example_gossip_codebox : public CreatureScript
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF+2)
@@ -75,7 +78,7 @@ class example_gossip_codebox : public CreatureScript
return true;
}
- bool OnGossipSelectCode(Player* player, Creature* creature, uint32 sender, uint32 action, char const* code)
+ bool OnGossipSelectCode(Player* player, Creature* creature, uint32 sender, uint32 action, char const* code) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (sender == GOSSIP_SENDER_MAIN)
diff --git a/src/server/scripts/Examples/example_misc.cpp b/src/server/scripts/Examples/example_misc.cpp
index 5f329e94a31..980d52c729c 100644
--- a/src/server/scripts/Examples/example_misc.cpp
+++ b/src/server/scripts/Examples/example_misc.cpp
@@ -35,7 +35,7 @@ class AT_example_areatrigger : public AreaTriggerScript
{
}
- bool OnTrigger(Player* player, AreaTriggerEntry const* /*trigger*/)
+ bool OnTrigger(Player* player, AreaTriggerEntry const* /*trigger*/) OVERRIDE
{
player->Kill(player);
return true;
@@ -51,7 +51,7 @@ class ItemUse_example_item : public ItemScript
{
}
- bool OnUse(Player* /*player*/, Item* /*item*/, SpellCastTargets const& /*targets*/)
+ bool OnUse(Player* /*player*/, Item* /*item*/, SpellCastTargets const& /*targets*/) OVERRIDE
{
sScriptMgr->LoadDatabase();
return true;
@@ -67,7 +67,7 @@ class GOHello_example_go_teleporter : public GameObjectScript
{
}
- bool OnGossipHello(Player* player, GameObject* /*go*/)
+ bool OnGossipHello(Player* player, GameObject* /*go*/) OVERRIDE
{
player->TeleportTo(0, 1807.07f, 336.105f, 70.3975f, 0.0f);
return false;
diff --git a/src/server/scripts/Examples/example_spell.cpp b/src/server/scripts/Examples/example_spell.cpp
index c3a56e7a2cb..8e22c4b66c8 100644
--- a/src/server/scripts/Examples/example_spell.cpp
+++ b/src/server/scripts/Examples/example_spell.cpp
@@ -50,7 +50,7 @@ class spell_ex_5581 : public SpellScriptLoader
// function called on server startup
// checks if script has data required for it to work
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
// check if spellid 70522 exists in dbc, we will trigger it later
if (!sSpellMgr->GetSpellInfo(SPELL_TRIGGERED))
@@ -60,7 +60,7 @@ class spell_ex_5581 : public SpellScriptLoader
// function called just after script is added to spell
// we initialize local variables if needed
- bool Load()
+ bool Load() OVERRIDE
{
localVariable = "we're using local variable";
localVariable2 = new char();
@@ -73,7 +73,7 @@ class spell_ex_5581 : public SpellScriptLoader
// function called just before script delete
// we free allocated memory
- void Unload()
+ void Unload() OVERRIDE
{
delete localVariable2;
}
@@ -159,7 +159,7 @@ class spell_ex_5581 : public SpellScriptLoader
}
// register functions used in spell script - names of these functions do not matter
- void Register()
+ void Register() OVERRIDE
{
// we're registering our functions here
BeforeCast += SpellCastFn(spell_ex_5581SpellScript::HandleBeforeCast);
@@ -192,7 +192,7 @@ class spell_ex_5581 : public SpellScriptLoader
};
// function which creates SpellScript
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_ex_5581SpellScript();
}
@@ -208,7 +208,7 @@ class spell_ex_66244 : public SpellScriptLoader
PrepareAuraScript(spell_ex_66244AuraScript);
// function called on server startup
// checks if script has data required for it to work
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
// check if spellid exists in dbc, we will trigger it later
if (!sSpellMgr->GetSpellInfo(SPELL_TRIGGERED))
@@ -218,7 +218,7 @@ class spell_ex_66244 : public SpellScriptLoader
// function called in aura constructor
// we initialize local variables if needed
- bool Load()
+ bool Load() OVERRIDE
{
// do not load script if aura is casted by player or caster not avalible
if (Unit* caster = GetCaster())
@@ -316,7 +316,7 @@ class spell_ex_66244 : public SpellScriptLoader
}
// function registering
- void Register()
+ void Register() OVERRIDE
{
OnEffectApply += AuraEffectApplyFn(spell_ex_66244AuraScript::HandleOnEffectApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
OnEffectRemove += AuraEffectRemoveFn(spell_ex_66244AuraScript::HandleOnEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
@@ -347,7 +347,7 @@ class spell_ex_66244 : public SpellScriptLoader
};
// function which creates AuraScript
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_ex_66244AuraScript();
}
@@ -379,7 +379,7 @@ class spell_ex_absorb_aura : public SpellScriptLoader
}
// function registering
- void Register()
+ void Register() OVERRIDE
{
OnEffectAbsorb += AuraEffectAbsorbFn(spell_ex_absorb_auraAuraScript::HandleOnEffectAbsorb, EFFECT_0);
AfterEffectAbsorb += AuraEffectAbsorbFn(spell_ex_absorb_auraAuraScript::HandleAfterEffectAbsorb, EFFECT_0);
@@ -387,7 +387,7 @@ class spell_ex_absorb_aura : public SpellScriptLoader
};
// function which creates AuraScript
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_ex_absorb_auraAuraScript();
}
@@ -408,14 +408,14 @@ class spell_ex_463 : public SpellScriptLoader
// in our script we allow only players to be affected
return target->GetTypeId() == TYPEID_PLAYER;
}
- void Register()
+ void Register() OVERRIDE
{
DoCheckAreaTarget += AuraCheckAreaTargetFn(spell_ex_463AuraScript::CheckAreaTarget);
}
};
// function which creates AuraScript
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_ex_463AuraScript();
}
@@ -440,18 +440,18 @@ class spell_ex : public SpellScriptLoader
{
PrepareSpellScript(spell_ex_SpellScript);
- //bool Validate(SpellInfo const* spellEntry){return true;}
+ //bool Validate(SpellInfo const* spellEntry){return true;} OVERRIDE
//bool Load(){return true;}
//void Unload(){}
//void Function(SpellEffIndex effIndex) //OnEffect += SpellEffectFn(spell_ex_SpellScript::Function, EFFECT_ANY, SPELL_EFFECT_ANY);
//void Function() //OnHit += SpellEffectFn(spell_ex_SpellScript::Function);
- void Register()
+ void Register() OVERRIDE
{
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_ex_SpellScript();
}
@@ -467,7 +467,7 @@ class spell_ex : public SpellScriptLoader
class spell_ex_AuraScript : public AuraScript
{
PrepareAuraScript(spell_ex)
- //bool Validate(SpellInfo const* spellEntry){return true;}
+ //bool Validate(SpellInfo const* spellEntry){return true;} OVERRIDE
//bool Load(){return true;}
//void Unload(){}
@@ -478,12 +478,12 @@ class spell_ex : public SpellScriptLoader
//void spell_ex_SpellScript::Function(AuraEffect const* aurEff, int32& amount, bool& canBeRecalculated) //DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_ex_SpellScript::Function, EFFECT_ANY, SPELL_AURA_ANY);
//void spell_ex_SpellScript::Function(AuraEffect const* aurEff, bool& isPeriodic, int32& amplitude) //OnEffectCalcPeriodic += AuraEffectCalcPeriodicFn(spell_ex_SpellScript::Function, EFFECT_ANY, SPELL_AURA_ANY);
//void spell_ex_SpellScript::Function(AuraEffect const* aurEff, SpellModifier*& spellMod) //OnEffectCalcSpellMod += AuraEffectCalcSpellModFn(spell_ex_SpellScript::Function, EFFECT_ANY, SPELL_AURA_ANY);
- void Register()
+ void Register() OVERRIDE
{
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_ex_AuraScript();
}
diff --git a/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp b/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp
index 0f52daba991..e74ed93bc66 100644
--- a/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp
+++ b/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp
@@ -31,8 +31,6 @@ enum Spells
SPELL_TELEPORT_DARNASSUS = 9268
};
-#define GOSSIP_ITEM_MORRIDUNE "Please port me to Darnassus"
-
const Position HomePosition = {-815.817f, -145.299f, -25.870f, 0};
class go_blackfathom_altar : public GameObjectScript
@@ -40,7 +38,7 @@ class go_blackfathom_altar : public GameObjectScript
public:
go_blackfathom_altar() : GameObjectScript("go_blackfathom_altar") { }
- bool OnGossipHello(Player* player, GameObject* /*go*/)
+ bool OnGossipHello(Player* player, GameObject* /*go*/) OVERRIDE
{
if (!player->HasAura(SPELL_BLESSING_OF_BLACKFATHOM))
player->AddAura(SPELL_BLESSING_OF_BLACKFATHOM, player);
@@ -53,7 +51,7 @@ class go_blackfathom_fire : public GameObjectScript
public:
go_blackfathom_fire() : GameObjectScript("go_blackfathom_fire") { }
- bool OnGossipHello(Player* /*player*/, GameObject* go)
+ bool OnGossipHello(Player* /*player*/, GameObject* go) OVERRIDE
{
InstanceScript* instance = go->GetInstanceScript();
@@ -73,16 +71,16 @@ class npc_blackfathom_deeps_event : public CreatureScript
public:
npc_blackfathom_deeps_event() : CreatureScript("npc_blackfathom_deeps_event") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_blackfathom_deeps_eventAI (creature);
+ return new npc_blackfathom_deeps_eventAI(creature);
}
struct npc_blackfathom_deeps_eventAI : public ScriptedAI
{
npc_blackfathom_deeps_eventAI(Creature* creature) : ScriptedAI(creature)
{
- if (creature->isSummon())
+ if (creature->IsSummon())
{
creature->SetHomePosition(HomePosition);
AttackPlayer();
@@ -99,7 +97,7 @@ public:
bool Flee;
- void Reset()
+ void Reset() OVERRIDE
{
Flee = false;
@@ -117,12 +115,12 @@ public:
for (Map::PlayerList::const_iterator i = PlList.begin(); i != PlList.end(); ++i)
{
- if (Player* player = i->getSource())
+ if (Player* player = i->GetSource())
{
- if (player->isGameMaster())
+ if (player->IsGameMaster())
continue;
- if (player->isAlive())
+ if (player->IsAlive())
{
me->SetInCombatWith(player);
player->SetInCombatWith(me);
@@ -132,7 +130,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -181,9 +179,9 @@ public:
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
- if (me->isSummon()) //we are not a normal spawn.
+ if (me->IsSummon()) //we are not a normal spawn.
if (instance)
instance->SetData(DATA_EVENT, instance->GetData(DATA_EVENT) + 1);
}
@@ -201,32 +199,6 @@ class npc_morridune : public CreatureScript
public:
npc_morridune() : CreatureScript("npc_morridune") { }
- bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
- {
- player->PlayerTalkClass->ClearMenus();
- switch (action)
- {
- case GOSSIP_ACTION_INFO_DEF + 1:
- player->TeleportTo(1, 9952.239f, 2284.277f, 1341.394f, 1.595f);
- player->CLOSE_GOSSIP_MENU();
- break;
- }
- return true;
- }
-
- bool OnGossipHello(Player* player, Creature* creature)
- {
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_MORRIDUNE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
-
- player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
- return true;
- }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new npc_morriduneAI (creature);
- }
-
struct npc_morriduneAI : public npc_escortAI
{
npc_morriduneAI(Creature* creature) : npc_escortAI(creature)
@@ -236,20 +208,29 @@ public:
Start(false, false, 0);
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
switch (waypointId)
{
case 4:
SetEscortPaused(true);
- me->SetOrientation(1.775791f);
- me->SendMovementFlagUpdate();
+ me->SetFacingTo(1.775791f);
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
Talk(SAY_MORRIDUNE_2);
break;
}
}
+
+ void sGossipSelect(Player* player, uint32 /*sender*/, uint32 /*action*/) OVERRIDE
+ {
+ DoCast(player, SPELL_TELEPORT_DARNASSUS);
+ }
};
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_morriduneAI(creature);
+ }
};
void AddSC_blackfathom_deeps()
diff --git a/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.h b/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.h
index 0d926de79d8..46deda8e4c8 100644
--- a/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.h
+++ b/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.h
@@ -16,8 +16,8 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef DEF_BFD_H
-#define DEF_BFD_H
+#ifndef BFD_H_
+#define BFD_H_
enum Data64
{
@@ -41,7 +41,7 @@ enum Data
DATA_EVENT
};
-enum Creatures
+enum CreatureIds
{
NPC_TWILIGHT_LORD_KELRIS = 4832,
NPC_LORGUS_JETT = 12902,
@@ -54,7 +54,7 @@ enum Creatures
NPC_MORRIDUNE = 6729
};
-enum GameObjects
+enum GameObjectIds
{
GO_SHRINE_OF_GELIHAST = 103015,
GO_FIRE_OF_AKU_MAI_1 = 21118,
@@ -64,4 +64,5 @@ enum GameObjects
GO_AKU_MAI_DOOR = 21117,
GO_ALTAR_OF_THE_DEEPS = 103016
};
-#endif
+
+#endif // BFD_H_
diff --git a/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_aku_mai.cpp b/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_aku_mai.cpp
index 535d9a4425b..579bb7a8e95 100644
--- a/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_aku_mai.cpp
+++ b/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_aku_mai.cpp
@@ -21,8 +21,14 @@
enum Spells
{
- SPELL_POISON_CLOUD = 3815,
- SPELL_FRENZIED_RAGE = 3490
+ SPELL_POISON_CLOUD = 3815,
+ SPELL_FRENZIED_RAGE = 3490
+};
+
+enum Events
+{
+ EVENT_POISON_CLOUD = 1,
+ EVENT_FRENZIED_RAGE = 2
};
class boss_aku_mai : public CreatureScript
@@ -30,63 +36,64 @@ class boss_aku_mai : public CreatureScript
public:
boss_aku_mai() : CreatureScript("boss_aku_mai") { }
- CreatureAI* GetAI(Creature* creature) const
+ struct boss_aku_maiAI : public BossAI
{
- return new boss_aku_maiAI (creature);
- }
+ boss_aku_maiAI(Creature* creature) : BossAI(creature, TYPE_AKU_MAI) { }
- struct boss_aku_maiAI : public ScriptedAI
- {
- boss_aku_maiAI(Creature* creature) : ScriptedAI(creature)
+ void Reset() OVERRIDE
{
- instance = creature->GetInstanceScript();
- }
-
- uint32 poisonCloudTimer;
- bool IsEnraged;
-
- InstanceScript* instance;
-
- void Reset()
- {
- poisonCloudTimer = urand(5000, 9000);
IsEnraged = false;
- if (instance)
- instance->SetData(TYPE_AKU_MAI, NOT_STARTED);
+ _Reset();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
- if (instance)
- instance->SetData(TYPE_AKU_MAI, IN_PROGRESS);
+ events.ScheduleEvent(EVENT_POISON_CLOUD, urand(5000, 9000));
+ _EnterCombat();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
- if (instance)
- instance->SetData(TYPE_AKU_MAI, DONE);
+ _JustDied();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
- if (poisonCloudTimer < diff)
- {
- DoCastVictim(SPELL_POISON_CLOUD);
- poisonCloudTimer = urand(25000, 50000);
- } else poisonCloudTimer -= diff;
+ events.Update(diff);
if (!IsEnraged && HealthBelowPct(30))
+ events.ScheduleEvent(EVENT_FRENZIED_RAGE, 100);
+
+ while (uint32 eventId = events.ExecuteEvent())
{
- DoCast(me, SPELL_FRENZIED_RAGE);
- IsEnraged = true;
+ switch (eventId)
+ {
+ case EVENT_POISON_CLOUD:
+ DoCastVictim(SPELL_POISON_CLOUD);
+ events.ScheduleEvent(EVENT_POISON_CLOUD, urand(25000, 50000));
+ break;
+ case EVENT_FRENZIED_RAGE:
+ DoCast(me, SPELL_FRENZIED_RAGE);
+ IsEnraged = true;
+ break;
+ default:
+ break;
+ }
}
-
DoMeleeAttackIfReady();
}
+
+ private:
+ bool IsEnraged;
};
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new boss_aku_maiAI(creature);
+ }
};
void AddSC_boss_aku_mai()
diff --git a/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_gelihast.cpp b/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_gelihast.cpp
index 4fa9edd40c6..139eed963c1 100644
--- a/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_gelihast.cpp
+++ b/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_gelihast.cpp
@@ -29,9 +29,9 @@ class boss_gelihast : public CreatureScript
public:
boss_gelihast() : CreatureScript("boss_gelihast") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_gelihastAI (creature);
+ return new boss_gelihastAI(creature);
}
struct boss_gelihastAI : public ScriptedAI
@@ -45,26 +45,26 @@ public:
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
netTimer = urand(2000, 4000);
if (instance)
instance->SetData(TYPE_GELIHAST, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (instance)
instance->SetData(TYPE_GELIHAST, IN_PROGRESS);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
instance->SetData(TYPE_GELIHAST, DONE);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
diff --git a/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_kelris.cpp b/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_kelris.cpp
index 72992c477a8..8eeedb6e15f 100644
--- a/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_kelris.cpp
+++ b/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_kelris.cpp
@@ -34,9 +34,9 @@ class boss_kelris : public CreatureScript
public:
boss_kelris() : CreatureScript("boss_kelris") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_kelrisAI (creature);
+ return new boss_kelrisAI(creature);
}
struct boss_kelrisAI : public ScriptedAI
@@ -51,7 +51,7 @@ public:
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
mindBlastTimer = urand(2000, 5000);
sleepTimer = urand(9000, 12000);
@@ -59,21 +59,21 @@ public:
instance->SetData(TYPE_KELRIS, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
if (instance)
instance->SetData(TYPE_KELRIS, IN_PROGRESS);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
if (instance)
instance->SetData(TYPE_KELRIS, DONE);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
diff --git a/src/server/scripts/Kalimdor/BlackfathomDeeps/instance_blackfathom_deeps.cpp b/src/server/scripts/Kalimdor/BlackfathomDeeps/instance_blackfathom_deeps.cpp
index 2d64553454d..c403246cc04 100644
--- a/src/server/scripts/Kalimdor/BlackfathomDeeps/instance_blackfathom_deeps.cpp
+++ b/src/server/scripts/Kalimdor/BlackfathomDeeps/instance_blackfathom_deeps.cpp
@@ -57,7 +57,7 @@ class instance_blackfathom_deeps : public InstanceMapScript
public:
instance_blackfathom_deeps() : InstanceMapScript("instance_blackfathom_deeps", 48) { }
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_blackfathom_deeps_InstanceMapScript(map);
}
@@ -142,7 +142,7 @@ public:
}
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
switch (type)
{
@@ -212,7 +212,7 @@ public:
}
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -233,7 +233,7 @@ public:
return 0;
}
- uint64 GetData64(uint32 data) const
+ uint64 GetData64(uint32 data) const OVERRIDE
{
switch (data)
{
diff --git a/src/server/scripts/Kalimdor/CMakeLists.txt b/src/server/scripts/Kalimdor/CMakeLists.txt
index 536824e7a63..6a54d777c1e 100644
--- a/src/server/scripts/Kalimdor/CMakeLists.txt
+++ b/src/server/scripts/Kalimdor/CMakeLists.txt
@@ -46,12 +46,12 @@ set(scripts_STAT_SRCS
Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp
Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp
Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.h
- Kalimdor/CavernsOfTime/DarkPortal/dark_portal.h
- Kalimdor/CavernsOfTime/DarkPortal/instance_dark_portal.cpp
- Kalimdor/CavernsOfTime/DarkPortal/boss_chrono_lord_deja.cpp
- Kalimdor/CavernsOfTime/DarkPortal/dark_portal.cpp
- Kalimdor/CavernsOfTime/DarkPortal/boss_aeonus.cpp
- Kalimdor/CavernsOfTime/DarkPortal/boss_temporus.cpp
+ Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.h
+ Kalimdor/CavernsOfTime/TheBlackMorass/instance_the_black_morass.cpp
+ Kalimdor/CavernsOfTime/TheBlackMorass/boss_chrono_lord_deja.cpp
+ Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.cpp
+ Kalimdor/CavernsOfTime/TheBlackMorass/boss_aeonus.cpp
+ Kalimdor/CavernsOfTime/TheBlackMorass/boss_temporus.cpp
Kalimdor/BlackfathomDeeps/boss_kelris.cpp
Kalimdor/BlackfathomDeeps/instance_blackfathom_deeps.cpp
Kalimdor/BlackfathomDeeps/boss_gelihast.cpp
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp
index 6a697c3cc9c..164de89b017 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp
@@ -45,9 +45,9 @@ class boss_anetheron : public CreatureScript
public:
boss_anetheron() : CreatureScript("boss_anetheron") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_anetheronAI (creature);
+ return new boss_anetheronAI(creature);
}
struct boss_anetheronAI : public hyjal_trashAI
@@ -64,7 +64,7 @@ public:
uint32 InfernoTimer;
bool go;
- void Reset()
+ void Reset() OVERRIDE
{
damageTaken = 0;
SwarmTimer = 45000;
@@ -76,29 +76,29 @@ public:
instance->SetData(DATA_ANETHERONEVENT, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (instance && IsEvent)
instance->SetData(DATA_ANETHERONEVENT, IN_PROGRESS);
Talk(SAY_ONAGGRO);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_ONSLAY);
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
if (waypointId == 7 && instance)
{
Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE));
- if (target && target->isAlive())
+ if (target && target->IsAlive())
me->AddThreat(target, 0.0f);
}
}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
hyjal_trashAI::JustDied(killer);
if (instance && IsEvent)
@@ -106,7 +106,7 @@ public:
Talk(SAY_ONDEATH);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (IsEvent)
{
@@ -172,19 +172,19 @@ public:
};
-class mob_towering_infernal : public CreatureScript
+class npc_towering_infernal : public CreatureScript
{
public:
- mob_towering_infernal() : CreatureScript("mob_towering_infernal") { }
+ npc_towering_infernal() : CreatureScript("npc_towering_infernal") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_towering_infernalAI (creature);
+ return new npc_towering_infernalAI(creature);
}
- struct mob_towering_infernalAI : public ScriptedAI
+ struct npc_towering_infernalAI : public ScriptedAI
{
- mob_towering_infernalAI(Creature* creature) : ScriptedAI(creature)
+ npc_towering_infernalAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
if (instance)
@@ -196,32 +196,33 @@ public:
uint64 AnetheronGUID;
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
DoCast(me, SPELL_INFERNO_EFFECT);
ImmolationTimer = 5000;
CheckTimer = 5000;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
- if (me->IsWithinDist(who, 50) && !me->isInCombat() && me->IsValidAttackTarget(who))
+ if (me->IsWithinDist(who, 50) && !me->IsInCombat() && me->IsValidAttackTarget(who))
AttackStart(who);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (CheckTimer <= diff)
{
@@ -257,5 +258,5 @@ public:
void AddSC_boss_anetheron()
{
new boss_anetheron();
- new mob_towering_infernal();
+ new npc_towering_infernal();
}
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp
index dcf9605f101..3623ad88a0a 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp
@@ -76,19 +76,19 @@ enum Summons
Position const NordrassilLoc = {5503.713f, -3523.436f, 1608.781f, 0.0f};
-class mob_ancient_wisp : public CreatureScript
+class npc_ancient_wisp : public CreatureScript
{
public:
- mob_ancient_wisp() : CreatureScript("mob_ancient_wisp") { }
+ npc_ancient_wisp() : CreatureScript("npc_ancient_wisp") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_ancient_wispAI(creature);
+ return new npc_ancient_wispAI(creature);
}
- struct mob_ancient_wispAI : public ScriptedAI
+ struct npc_ancient_wispAI : public ScriptedAI
{
- mob_ancient_wispAI(Creature* creature) : ScriptedAI(creature)
+ npc_ancient_wispAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
ArchimondeGUID = 0;
@@ -98,7 +98,7 @@ public:
uint64 ArchimondeGUID;
uint32 CheckTimer;
- void Reset()
+ void Reset() OVERRIDE
{
CheckTimer = 1000;
@@ -108,20 +108,20 @@ public:
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void DamageTaken(Unit* /*done_by*/, uint32 &damage)
+ void DamageTaken(Unit* /*done_by*/, uint32 &damage) OVERRIDE
{
damage = 0;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (CheckTimer <= diff)
{
if (Unit* Archimonde = Unit::GetUnit(*me, ArchimondeGUID))
{
- if (Archimonde->HealthBelowPct(2) || !Archimonde->isAlive())
+ if (Archimonde->HealthBelowPct(2) || !Archimonde->IsAlive())
DoCast(me, SPELL_DENOUEMENT_WISP);
else
DoCast(Archimonde, SPELL_ANCIENT_SPARK);
@@ -134,26 +134,27 @@ public:
/* This script is merely a placeholder for the Doomfire that triggers Doomfire spell. It will
MoveChase the Doomfire Spirit always, until despawn (AttackStart is called upon it's spawn) */
-class mob_doomfire : public CreatureScript
+class npc_doomfire : public CreatureScript
{
public:
- mob_doomfire() : CreatureScript("mob_doomfire") { }
+ npc_doomfire() : CreatureScript("npc_doomfire") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_doomfireAI(creature);
+ return new npc_doomfireAI(creature);
}
- struct mob_doomfireAI : public ScriptedAI
+ struct npc_doomfireAI : public ScriptedAI
{
- mob_doomfireAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_doomfireAI(Creature* creature) : ScriptedAI(creature) {}
- void Reset() { }
+ void Reset() OVERRIDE {}
- void MoveInLineOfSight(Unit* /*who*/) {}
- void EnterCombat(Unit* /*who*/) {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
- void DamageTaken(Unit* /*done_by*/, uint32 &damage)
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+
+ void DamageTaken(Unit* /*done_by*/, uint32 &damage) OVERRIDE
{
damage = 0;
}
@@ -162,30 +163,31 @@ public:
/* This is the script for the Doomfire Spirit Mob. This mob simply follow players or
travels in random directions if target cannot be found. */
-class mob_doomfire_targetting : public CreatureScript
+class npc_doomfire_targetting : public CreatureScript
{
public:
- mob_doomfire_targetting() : CreatureScript("mob_doomfire_targetting") { }
+ npc_doomfire_targetting() : CreatureScript("npc_doomfire_targetting") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_doomfire_targettingAI(creature);
+ return new npc_doomfire_targettingAI(creature);
}
- struct mob_doomfire_targettingAI : public ScriptedAI
+ struct npc_doomfire_targettingAI : public ScriptedAI
{
- mob_doomfire_targettingAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_doomfire_targettingAI(Creature* creature) : ScriptedAI(creature) {}
uint64 TargetGUID;
uint32 ChangeTargetTimer;
- void Reset()
+ void Reset() OVERRIDE
{
TargetGUID = 0;
ChangeTargetTimer = 5000;
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
//will update once TargetGUID is 0. In case noone actually moves(not likely) and this is 0
//when UpdateAI needs it, it will be forced to select randomPoint
@@ -193,14 +195,14 @@ public:
TargetGUID = who->GetGUID();
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void DamageTaken(Unit* /*done_by*/, uint32 &damage)
+ void DamageTaken(Unit* /*done_by*/, uint32 &damage) OVERRIDE
{
damage = 0;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (ChangeTargetTimer <= diff)
{
@@ -235,9 +237,9 @@ class boss_archimonde : public CreatureScript
public:
boss_archimonde() : CreatureScript("boss_archimonde") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_archimondeAI (creature);
+ return new boss_archimondeAI(creature);
}
struct boss_archimondeAI : public hyjal_trashAI
@@ -271,7 +273,7 @@ public:
bool HasProtected;
bool IsChanneling;
- void Reset()
+ void Reset() OVERRIDE
{
if (instance)
instance->SetData(DATA_ARCHIMONDEEVENT, NOT_STARTED);
@@ -300,7 +302,7 @@ public:
IsChanneling = false;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
me->InterruptSpell(CURRENT_CHANNELED_SPELL);
Talk(SAY_AGGRO);
@@ -310,7 +312,7 @@ public:
instance->SetData(DATA_ARCHIMONDEEVENT, IN_PROGRESS);
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
Talk(SAY_SLAY);
@@ -343,7 +345,7 @@ public:
++SoulChargeCount;
}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
hyjal_trashAI::JustDied(killer);
Talk(SAY_DEATH);
@@ -355,7 +357,7 @@ public:
bool CanUseFingerOfDeath()
{
// First we check if our current victim is in melee range or not.
- Unit* victim = me->getVictim();
+ Unit* victim = me->GetVictim();
if (victim && me->IsWithinDistInMap(victim, me->GetAttackDistance(victim)))
return false;
@@ -368,7 +370,7 @@ public:
for (; itr != threatlist.end(); ++itr)
{
Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid());
- if (unit && unit->isAlive())
+ if (unit && unit->IsAlive())
targets.push_back(unit);
}
@@ -382,13 +384,13 @@ public:
if (!me->IsWithinDistInMap(target, me->GetAttackDistance(target)))
return true; // Cast Finger of Death
else // This target is closest, he is our new tank
- me->AddThreat(target, me->getThreatManager().getThreat(me->getVictim()));
+ me->AddThreat(target, me->getThreatManager().getThreat(me->GetVictim()));
}
return false;
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
if (summoned->GetEntry() == CREATURE_ANCIENT_WISP)
summoned->AI()->AttackStart(me);
@@ -456,7 +458,7 @@ public:
if (me->HasAura(chargeSpell))
{
me->RemoveAuraFromStack(chargeSpell);
- DoCast(me->getVictim(), unleashSpell);
+ DoCastVictim(unleashSpell);
HasCast = true;
SoulChargeCount--;
}
@@ -465,9 +467,9 @@ public:
SoulChargeTimer = urand(2000, 30000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
- if (!me->isInCombat())
+ if (!me->IsInCombat())
{
if (instance)
{
@@ -577,7 +579,7 @@ public:
{
if (HandOfDeathTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_HAND_OF_DEATH);
+ DoCastVictim(SPELL_HAND_OF_DEATH);
HandOfDeathTimer = 2000;
} else HandOfDeathTimer -= diff;
return; // Don't do anything after this point.
@@ -605,7 +607,7 @@ public:
if (FearTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_FEAR);
+ DoCastVictim(SPELL_FEAR);
FearTimer = 42000;
} else FearTimer -= diff;
@@ -614,7 +616,7 @@ public:
Talk(SAY_DOOMFIRE);
Unit* temp = SelectTarget(SELECT_TARGET_RANDOM, 1);
if (!temp)
- temp = me->getVictim();
+ temp = me->GetVictim();
//replace with spell cast 31903 once implicitTarget 73 implemented
SummonDoomfire(temp);
@@ -636,14 +638,14 @@ public:
DoMeleeAttackIfReady();
}
- void WaypointReached(uint32 /*waypointId*/) { }
+ void WaypointReached(uint32 /*waypointId*/) OVERRIDE {}
};
};
void AddSC_boss_archimonde()
{
new boss_archimonde();
- new mob_doomfire();
- new mob_doomfire_targetting();
- new mob_ancient_wisp();
+ new npc_doomfire();
+ new npc_doomfire_targetting();
+ new npc_ancient_wisp();
}
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp
index 15470716ea7..aaf2bb65ba0 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp
@@ -46,9 +46,9 @@ class boss_azgalor : public CreatureScript
public:
boss_azgalor() : CreatureScript("boss_azgalor") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_azgalorAI (creature);
+ return new boss_azgalorAI(creature);
}
struct boss_azgalorAI : public hyjal_trashAI
@@ -68,7 +68,7 @@ public:
bool go;
- void Reset()
+ void Reset() OVERRIDE
{
damageTaken = 0;
RainTimer = 20000;
@@ -82,29 +82,29 @@ public:
instance->SetData(DATA_AZGALOREVENT, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (instance && IsEvent)
instance->SetData(DATA_AZGALOREVENT, IN_PROGRESS);
Talk(SAY_ONAGGRO);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_ONSLAY);
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
if (waypointId == 7 && instance)
{
Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_THRALL));
- if (target && target->isAlive())
+ if (target && target->IsAlive())
me->AddThreat(target, 0.0f);
}
}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
hyjal_trashAI::JustDied(killer);
if (instance && IsEvent)
@@ -112,7 +112,7 @@ public:
Talk(SAY_ONDEATH);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (IsEvent)
{
@@ -161,7 +161,7 @@ public:
if (CleaveTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_CLEAVE);
+ DoCastVictim(SPELL_CLEAVE);
CleaveTimer = 10000+rand()%5000;
} else CleaveTimer -= diff;
@@ -179,19 +179,19 @@ public:
};
-class mob_lesser_doomguard : public CreatureScript
+class npc_lesser_doomguard : public CreatureScript
{
public:
- mob_lesser_doomguard() : CreatureScript("mob_lesser_doomguard") { }
+ npc_lesser_doomguard() : CreatureScript("npc_lesser_doomguard") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_lesser_doomguardAI (creature);
+ return new npc_lesser_doomguardAI(creature);
}
- struct mob_lesser_doomguardAI : public hyjal_trashAI
+ struct npc_lesser_doomguardAI : public hyjal_trashAI
{
- mob_lesser_doomguardAI(Creature* creature) : hyjal_trashAI(creature)
+ npc_lesser_doomguardAI(Creature* creature) : hyjal_trashAI(creature)
{
instance = creature->GetInstanceScript();
if (instance)
@@ -204,7 +204,7 @@ public:
uint64 AzgalorGUID;
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
CrippleTimer = 50000;
WarstompTimer = 10000;
@@ -212,29 +212,30 @@ public:
CheckTimer = 5000;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
}
- void WaypointReached(uint32 /*waypointId*/)
+ void WaypointReached(uint32 /*waypointId*/) OVERRIDE
{
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
- if (me->IsWithinDist(who, 50) && !me->isInCombat() && me->IsValidAttackTarget(who))
+ if (me->IsWithinDist(who, 50) && !me->IsInCombat() && me->IsValidAttackTarget(who))
AttackStart(who);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (CheckTimer <= diff)
{
@@ -276,5 +277,5 @@ public:
void AddSC_boss_azgalor()
{
new boss_azgalor();
- new mob_lesser_doomguard();
+ new npc_lesser_doomguard();
}
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp
index 0780b3dcf0d..66e276d25b6 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp
@@ -47,9 +47,9 @@ class boss_kazrogal : public CreatureScript
public:
boss_kazrogal() : CreatureScript("boss_kazrogal") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_kazrogalAI (creature);
+ return new boss_kazrogalAI(creature);
}
struct boss_kazrogalAI : public hyjal_trashAI
@@ -66,7 +66,7 @@ public:
uint32 MarkTimerBase;
bool go;
- void Reset()
+ void Reset() OVERRIDE
{
damageTaken = 0;
CleaveTimer = 5000;
@@ -78,29 +78,29 @@ public:
instance->SetData(DATA_KAZROGALEVENT, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (instance && IsEvent)
instance->SetData(DATA_KAZROGALEVENT, IN_PROGRESS);
Talk(SAY_ONAGGRO);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_ONSLAY);
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
if (waypointId == 7 && instance)
{
Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_THRALL));
- if (target && target->isAlive())
+ if (target && target->IsAlive())
me->AddThreat(target, 0.0f);
}
}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
hyjal_trashAI::JustDied(killer);
if (instance && IsEvent)
@@ -108,7 +108,7 @@ public:
DoPlaySoundToSet(me, SOUND_ONDEATH);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (IsEvent)
{
@@ -191,7 +191,7 @@ class spell_mark_of_kazrogal : public SpellScriptLoader
targets.remove_if(MarkTargetFilter());
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_mark_of_kazrogal_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
}
@@ -201,7 +201,7 @@ class spell_mark_of_kazrogal : public SpellScriptLoader
{
PrepareAuraScript(spell_mark_of_kazrogal_AuraScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_MARK_DAMAGE))
return false;
@@ -220,7 +220,7 @@ class spell_mark_of_kazrogal : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_mark_of_kazrogal_AuraScript::OnPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_MANA_LEECH);
}
@@ -231,7 +231,7 @@ class spell_mark_of_kazrogal : public SpellScriptLoader
return new spell_mark_of_kazrogal_SpellScript();
}
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_mark_of_kazrogal_AuraScript();
}
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp
index b35826c9d87..c163e7c0f1f 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp
@@ -42,9 +42,9 @@ class boss_rage_winterchill : public CreatureScript
public:
boss_rage_winterchill() : CreatureScript("boss_rage_winterchill") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_rage_winterchillAI (creature);
+ return new boss_rage_winterchillAI(creature);
}
struct boss_rage_winterchillAI : public hyjal_trashAI
@@ -61,7 +61,7 @@ public:
uint32 IceboltTimer;
bool go;
- void Reset()
+ void Reset() OVERRIDE
{
damageTaken = 0;
FrostArmorTimer = 37000;
@@ -73,29 +73,29 @@ public:
instance->SetData(DATA_RAGEWINTERCHILLEVENT, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (instance && IsEvent)
instance->SetData(DATA_RAGEWINTERCHILLEVENT, IN_PROGRESS);
Talk(SAY_ONAGGRO);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_ONSLAY);
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
if (waypointId == 7 && instance)
{
Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE));
- if (target && target->isAlive())
+ if (target && target->IsAlive())
me->AddThreat(target, 0.0f);
}
}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
hyjal_trashAI::JustDied(killer);
if (instance && IsEvent)
@@ -103,7 +103,7 @@ public:
Talk(SAY_ONDEATH);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (IsEvent)
{
@@ -139,13 +139,13 @@ public:
} else FrostArmorTimer -= diff;
if (DecayTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_DEATH_AND_DECAY);
+ DoCastVictim(SPELL_DEATH_AND_DECAY);
DecayTimer = 60000+rand()%20000;
Talk(SAY_DECAY);
} else DecayTimer -= diff;
if (NovaTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_FROST_NOVA);
+ DoCastVictim(SPELL_FROST_NOVA);
NovaTimer = 30000+rand()%15000;
Talk(SAY_NOVA);
} else NovaTimer -= diff;
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp
index 1544ceee857..336bee39da5 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp
@@ -53,7 +53,7 @@ class npc_jaina_proudmoore : public CreatureScript
public:
npc_jaina_proudmoore() : CreatureScript("npc_jaina_proudmoore") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
hyjalAI* ai = CAST_AI(hyjalAI, creature->AI());
@@ -78,7 +78,7 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
hyjalAI* ai = CAST_AI(hyjalAI, creature->AI());
if (ai->EventBegun)
@@ -93,14 +93,14 @@ public:
else if (RageEncounter == DONE && AnetheronEncounter == DONE)
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_RETREAT, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
- if (player->isGameMaster())
+ if (player->IsGameMaster())
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, GOSSIP_ITEM_GM1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
player->SEND_GOSSIP_MENU(907, creature->GetGUID());
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
hyjalAI* ai = new hyjalAI(creature);
@@ -129,7 +129,7 @@ class npc_thrall : public CreatureScript
public:
npc_thrall() : CreatureScript("npc_thrall") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
hyjalAI* ai = CAST_AI(hyjalAI, creature->AI());
@@ -155,7 +155,7 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
hyjalAI* ai = CAST_AI(hyjalAI, creature->AI());
if (ai->EventBegun)
@@ -175,14 +175,14 @@ public:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_RETREAT, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
}
- if (player->isGameMaster())
+ if (player->IsGameMaster())
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, GOSSIP_ITEM_GM1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
player->SEND_GOSSIP_MENU(907, creature->GetGUID());
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
hyjalAI* ai = new hyjalAI(creature);
@@ -207,7 +207,7 @@ class npc_tyrande_whisperwind : public CreatureScript
public:
npc_tyrande_whisperwind() : CreatureScript("npc_tyrande_whisperwind") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
hyjalAI* ai = new hyjalAI(creature);
ai->Reset();
@@ -215,7 +215,7 @@ public:
return ai;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF)
@@ -231,7 +231,7 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
hyjalAI* ai = CAST_AI(hyjalAI, creature->AI());
uint32 AzgalorEvent = ai->GetInstanceData(DATA_AZGALOREVENT);
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.h b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.h
index 0d23d1c700c..1f510ebec73 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.h
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.h
@@ -21,32 +21,73 @@
#define ERROR_INST_DATA "TSCR: Instance data not set properly for Mount Hyjal. Encounters will be buggy."
-enum Types
+uint32 const EncounterCount = 5;
+
+enum DataTypes
+{
+ DATA_ANETHERON = 1,
+ DATA_ANETHERONEVENT = 2,
+ DATA_ARCHIMONDE = 3,
+ DATA_ARCHIMONDEEVENT = 4,
+ DATA_AZGALOR = 5,
+ DATA_AZGALOREVENT = 6,
+ DATA_JAINAPROUDMOORE = 7,
+ DATA_KAZROGAL = 8,
+ DATA_KAZROGALEVENT = 9,
+ DATA_RAGEWINTERCHILL = 10,
+ DATA_RAGEWINTERCHILLEVENT = 11,
+ DATA_THRALL = 12,
+ DATA_TYRANDEWHISPERWIND = 13,
+ DATA_TRASH = 14,
+ DATA_RESET_TRASH_COUNT = 15,
+ DATA_ALLIANCE_RETREAT = 16,
+ DATA_HORDE_RETREAT = 17,
+ DATA_RAIDDAMAGE = 18,
+ DATA_RESET_RAIDDAMAGE = 19,
+ TYPE_RETREAT = 20
+};
+
+enum WorldStateIds
{
- WORLD_STATE_WAVES = 2842,
- WORLD_STATE_ENEMY = 2453,
- WORLD_STATE_ENEMYCOUNT = 2454,
-
- DATA_ANETHERON = 1,
- DATA_ANETHERONEVENT = 2,
- DATA_ARCHIMONDE = 3,
- DATA_ARCHIMONDEEVENT = 4,
- DATA_AZGALOR = 5,
- DATA_AZGALOREVENT = 6,
- DATA_JAINAPROUDMOORE = 7,
- DATA_KAZROGAL = 8,
- DATA_KAZROGALEVENT = 9,
- DATA_RAGEWINTERCHILL = 10,
- DATA_RAGEWINTERCHILLEVENT = 11,
- DATA_THRALL = 12,
- DATA_TYRANDEWHISPERWIND = 13,
- DATA_TRASH = 14,
- DATA_RESET_TRASH_COUNT = 15,
- DATA_ALLIANCE_RETREAT = 16,
- DATA_HORDE_RETREAT = 17,
- DATA_RAIDDAMAGE = 18,
- DATA_RESET_RAIDDAMAGE = 19,
- TYPE_RETREAT = 20
+ WORLD_STATE_WAVES = 2842,
+ WORLD_STATE_ENEMY = 2453,
+ WORLD_STATE_ENEMYCOUNT = 2454
};
+
+enum CreaturesIds
+{
+ // Trash Mobs summoned in waves
+ NECROMANCER = 17899,
+ ABOMINATION = 17898,
+ GHOUL = 17895,
+ BANSHEE = 17905,
+ CRYPT_FIEND = 17897,
+ GARGOYLE = 17906,
+ FROST_WYRM = 17907,
+ GIANT_INFERNAL = 17908,
+ FEL_STALKER = 17916,
+
+ JAINA = 17772,
+ THRALL = 17852,
+ TYRANDE = 17948,
+
+ // Bosses summoned after every 8 waves
+ RAGE_WINTERCHILL = 17767,
+ ANETHERON = 17808,
+ KAZROGAL = 17888,
+ AZGALOR = 17842,
+ ARCHIMONDE = 17968,
+ NPC_WORLD_TRIGGER_TINY = 21987
+};
+
+enum GameobjectIds
+{
+ GO_HORDE_ENCAMPMENT_PORTAL = 182060,
+ GO_NIGHT_ELF_VILLAGE_PORTAL = 182061,
+ GO_ANCIENT_GEM = 185557,
+ GO_ANCIENT_VEIN = 185557,
+ GO_ROARING_FLAME = 182592
+};
+
#endif
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp
index a624cd4a4f7..fb06a5ccaa5 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp
@@ -421,7 +421,7 @@ void hyjalAI::EnterEvadeMode()
me->CombatStop(true);
me->LoadCreaturesAddon();
- if (me->isAlive())
+ if (me->IsAlive())
me->GetMotionMaster()->MoveTargetedHome();
me->SetLootRecipient(NULL);
@@ -661,7 +661,7 @@ void hyjalAI::SpawnVeins()
return;
for (uint8 i = 0; i<7; ++i)
{
- GameObject* gem = me->SummonGameObject(ANCIENT_VEIN, VeinPos[i][0], VeinPos[i][1], VeinPos[i][2], VeinPos[i][3], VeinPos[i][4], VeinPos[i][5], VeinPos[i][6], VeinPos[i][7], 0);
+ GameObject* gem = me->SummonGameObject(GO_ANCIENT_VEIN, VeinPos[i][0], VeinPos[i][1], VeinPos[i][2], VeinPos[i][3], VeinPos[i][4], VeinPos[i][5], VeinPos[i][6], VeinPos[i][7], 0);
if (gem)
VeinGUID[i]=gem->GetGUID();
}
@@ -671,7 +671,7 @@ void hyjalAI::SpawnVeins()
return;
for (uint8 i = 7; i<14; ++i)
{
- GameObject* gem = me->SummonGameObject(ANCIENT_VEIN, VeinPos[i][0], VeinPos[i][1], VeinPos[i][2], VeinPos[i][3], VeinPos[i][4], VeinPos[i][5], VeinPos[i][6], VeinPos[i][7], 0);
+ GameObject* gem = me->SummonGameObject(GO_ANCIENT_VEIN, VeinPos[i][0], VeinPos[i][1], VeinPos[i][2], VeinPos[i][3], VeinPos[i][4], VeinPos[i][5], VeinPos[i][6], VeinPos[i][7], 0);
if (gem)
VeinGUID[i]=gem->GetGUID();
}
@@ -731,7 +731,7 @@ void hyjalAI::UpdateAI(uint32 diff)
HideNearPos(me->GetPositionX(), me->GetPositionY());
HideNearPos(5037.76f, -1889.71f);
for (uint8 i = 0; i < 92; ++i)//summon fires
- me->SummonGameObject(FLAMEOBJECT, AllianceFirePos[i][0], AllianceFirePos[i][1], AllianceFirePos[i][2], AllianceFirePos[i][3], AllianceFirePos[i][4], AllianceFirePos[i][5], AllianceFirePos[i][6], AllianceFirePos[i][7], 0);
+ me->SummonGameObject(GO_ROARING_FLAME, AllianceFirePos[i][0], AllianceFirePos[i][1], AllianceFirePos[i][2], AllianceFirePos[i][3], AllianceFirePos[i][4], AllianceFirePos[i][5], AllianceFirePos[i][6], AllianceFirePos[i][7], 0);
}
else me->SetVisible(true);
@@ -744,7 +744,7 @@ void hyjalAI::UpdateAI(uint32 diff)
HideNearPos(5563, -2763.19f);
HideNearPos(5542.2f, -2629.36f);
for (uint8 i = 0; i < 65; ++i)//summon fires
- me->SummonGameObject(FLAMEOBJECT, HordeFirePos[i][0], HordeFirePos[i][1], HordeFirePos[i][2], HordeFirePos[i][3], HordeFirePos[i][4], HordeFirePos[i][5], HordeFirePos[i][6], HordeFirePos[i][7], 0);
+ me->SummonGameObject(GO_ROARING_FLAME, HordeFirePos[i][0], HordeFirePos[i][1], HordeFirePos[i][2], HordeFirePos[i][3], HordeFirePos[i][4], HordeFirePos[i][5], HordeFirePos[i][6], HordeFirePos[i][7], 0);
}
else me->SetVisible(true);
@@ -825,7 +825,7 @@ void hyjalAI::UpdateAI(uint32 diff)
if (BossGUID[i])
{
Unit* unit = Unit::GetUnit(*me, BossGUID[i]);
- if (unit && (!unit->isAlive()))
+ if (unit && (!unit->IsAlive()))
{
if (BossGUID[i] == BossGUID[0])
{
@@ -874,11 +874,11 @@ void hyjalAI::UpdateAI(uint32 diff)
break;
case TARGETTYPE_VICTIM:
- target = me->getVictim();
+ target = me->GetVictim();
break;
}
- if (target && target->isAlive())
+ if (target && target->IsAlive())
{
DoCast(target, Spells[i].SpellId);
SpellTimer[i] = Spells[i].Cooldown;
@@ -988,7 +988,7 @@ void hyjalAI::WaypointReached(uint32 waypointId)
{
for (std::list<Creature*>::const_iterator itr = creatures.begin(); itr != creatures.end(); ++itr)
{
- if ((*itr) && (*itr)->isAlive() && (*itr) != me && (*itr)->GetEntry() != JAINA)
+ if ((*itr) && (*itr)->IsAlive() && (*itr) != me && (*itr)->GetEntry() != JAINA)
{
if (!(*itr)->IsWithinDist(me, 60))
(*itr)->SetWalk(false);
@@ -1028,7 +1028,7 @@ void hyjalAI::DoOverrun(uint32 faction, const uint32 diff)
{
for (std::list<Creature*>::const_iterator itr = creatures.begin(); itr != creatures.end(); ++itr)
{
- if ((*itr) && (*itr)->isAlive())
+ if ((*itr) && (*itr)->IsAlive())
{
(*itr)->CastSpell(*itr, SPELL_TELEPORT_VISUAL, true);
(*itr)->setFaction(35);//make them friendly so mobs won't attack them
@@ -1051,7 +1051,7 @@ void hyjalAI::DoOverrun(uint32 faction, const uint32 diff)
{
case 0://alliance
for (uint8 i = 0; i < 92; ++i)//summon fires
- me->SummonGameObject(FLAMEOBJECT, AllianceFirePos[i][0], AllianceFirePos[i][1], AllianceFirePos[i][2], AllianceFirePos[i][3], AllianceFirePos[i][4], AllianceFirePos[i][5], AllianceFirePos[i][6], AllianceFirePos[i][7], 0);
+ me->SummonGameObject(GO_ROARING_FLAME, AllianceFirePos[i][0], AllianceFirePos[i][1], AllianceFirePos[i][2], AllianceFirePos[i][3], AllianceFirePos[i][4], AllianceFirePos[i][5], AllianceFirePos[i][6], AllianceFirePos[i][7], 0);
for (uint8 i = 0; i < 25; ++i)//summon 25 ghouls
{
@@ -1092,7 +1092,7 @@ void hyjalAI::DoOverrun(uint32 faction, const uint32 diff)
break;
case 1://horde
for (uint8 i = 0; i < 65; ++i)//summon fires
- me->SummonGameObject(FLAMEOBJECT, HordeFirePos[i][0], HordeFirePos[i][1], HordeFirePos[i][2], HordeFirePos[i][3], HordeFirePos[i][4], HordeFirePos[i][5], HordeFirePos[i][6], HordeFirePos[i][7], 0);
+ me->SummonGameObject(GO_ROARING_FLAME, HordeFirePos[i][0], HordeFirePos[i][1], HordeFirePos[i][2], HordeFirePos[i][3], HordeFirePos[i][4], HordeFirePos[i][5], HordeFirePos[i][6], HordeFirePos[i][7], 0);
for (uint8 i = 0; i < 26; ++i)//summon infernals
{
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.h b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.h
index f40c868a96b..90dd277346a 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.h
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.h
@@ -24,34 +24,6 @@
#define HYJAL_AI_MAX_SPELLS 3
-enum CreaturesIds
-{
- // Trash Mobs summoned in waves
- NECROMANCER = 17899,
- ABOMINATION = 17898,
- GHOUL = 17895,
- BANSHEE = 17905,
- CRYPT_FIEND = 17897,
- GARGOYLE = 17906,
- FROST_WYRM = 17907,
- GIANT_INFERNAL = 17908,
- FEL_STALKER = 17916,
-
- JAINA = 17772,
- THRALL = 17852,
- TYRANDE = 17948,
-
- ANCIENT_VEIN = 185557,
- FLAMEOBJECT = 182592,
-
- // Bosses summoned after every 8 waves
- RAGE_WINTERCHILL = 17767,
- ANETHERON = 17808,
- KAZROGAL = 17888,
- AZGALOR = 17842,
- ARCHIMONDE = 17968,
-};
-
enum SpellIds
{
SPELL_TELEPORT_VISUAL = 41232,
@@ -65,7 +37,7 @@ enum SpellIds
//Thrall spells
SPELL_CHAIN_LIGHTNING = 31330,
- SPELL_SUMMON_DIRE_WOLF = 31331,
+ SPELL_SUMMON_DIRE_WOLF = 31331
};
struct Wave
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp
index 630c379e71e..24d0422e06e 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp
@@ -191,7 +191,7 @@ hyjal_trashAI::hyjal_trashAI(Creature* creature) : npc_escortAI(creature)
void hyjal_trashAI::DamageTaken(Unit* done_by, uint32 &damage)
{
- if (done_by->GetTypeId() == TYPEID_PLAYER || done_by->isPet())
+ if (done_by->GetTypeId() == TYPEID_PLAYER || done_by->IsPet())
{
damageTaken += damage;
if (instance)
@@ -408,14 +408,14 @@ void hyjal_trashAI::JustDied(Unit* /*killer*/)
me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);//no loot
}
-class mob_giant_infernal : public CreatureScript
+class npc_giant_infernal : public CreatureScript
{
public:
- mob_giant_infernal() : CreatureScript("mob_giant_infernal") { }
+ npc_giant_infernal() : CreatureScript("npc_giant_infernal") { }
- struct mob_giant_infernalAI : public hyjal_trashAI
+ struct npc_giant_infernalAI : public hyjal_trashAI
{
- mob_giant_infernalAI(Creature* creature) : hyjal_trashAI(creature)
+ npc_giant_infernalAI(Creature* creature) : hyjal_trashAI(creature)
{
instance = creature->GetInstanceScript();
meteor = false;//call once!
@@ -436,29 +436,29 @@ public:
uint32 FlameBuffetTimer;
bool imol;
- void Reset()
+ void Reset() OVERRIDE
{
spawnTimer = 2000;
FlameBuffetTimer= 2000;
imol = false;
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
if (waypointId == 0 && instance && !IsOverrun)
{
if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall
{
Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_THRALL));
- if (target && target->isAlive())
+ if (target && target->IsAlive())
me->AddThreat(target, 0.0f);
}
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (Delay <= diff)
{
@@ -493,7 +493,7 @@ public:
if (instance->GetData(DATA_ALLIANCE_RETREAT) && !instance->GetData(DATA_HORDE_RETREAT))
{
Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_THRALL));
- if (target && target->isAlive())
+ if (target && target->IsAlive())
me->AddThreat(target, 0.0f);
} else if (instance->GetData(DATA_ALLIANCE_RETREAT) && instance->GetData(DATA_HORDE_RETREAT)){
//do overrun
@@ -528,32 +528,32 @@ public:
}
if (FlameBuffetTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_FLAME_BUFFET, true);
+ DoCastVictim(SPELL_FLAME_BUFFET, true);
FlameBuffetTimer = 7000;
} else FlameBuffetTimer -= diff;
DoMeleeAttackIfReady();
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_giant_infernalAI(creature);
+ return new npc_giant_infernalAI(creature);
}
};
-class mob_abomination : public CreatureScript
+class npc_abomination : public CreatureScript
{
public:
- mob_abomination() : CreatureScript("mob_abomination") { }
+ npc_abomination() : CreatureScript("npc_abomination") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_abominationAI(creature);
+ return new npc_abominationAI(creature);
}
- struct mob_abominationAI : public hyjal_trashAI
+ struct npc_abominationAI : public hyjal_trashAI
{
- mob_abominationAI(Creature* creature) : hyjal_trashAI(creature)
+ npc_abominationAI(Creature* creature) : hyjal_trashAI(creature)
{
instance = creature->GetInstanceScript();
go = false;
@@ -562,25 +562,25 @@ public:
bool go;
uint32 KnockDownTimer;
- void Reset()
+ void Reset() OVERRIDE
{
KnockDownTimer = 10000;
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
if (waypointId == 7 && instance && !IsOverrun)
{
if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall
{
Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_THRALL));
- if (target && target->isAlive())
+ if (target && target->IsAlive())
me->AddThreat(target, 0.0f);
}
else
{
Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE));
- if (target && target->isAlive())
+ if (target && target->IsAlive())
me->AddThreat(target, 0.0f);
}
}
@@ -594,9 +594,9 @@ public:
}
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
hyjal_trashAI::UpdateAI(diff);
if (IsEvent || IsOverrun)
@@ -630,7 +630,7 @@ public:
return;
if (KnockDownTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_KNOCKDOWN);
+ DoCastVictim(SPELL_KNOCKDOWN);
KnockDownTimer = 15000+rand()%10000;
} else KnockDownTimer -= diff;
DoMeleeAttackIfReady();
@@ -639,19 +639,19 @@ public:
};
-class mob_ghoul : public CreatureScript
+class npc_ghoul : public CreatureScript
{
public:
- mob_ghoul() : CreatureScript("mob_ghoul") { }
+ npc_ghoul() : CreatureScript("npc_ghoul") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_ghoulAI(creature);
+ return new npc_ghoulAI(creature);
}
- struct mob_ghoulAI : public hyjal_trashAI
+ struct npc_ghoulAI : public hyjal_trashAI
{
- mob_ghoulAI(Creature* creature) : hyjal_trashAI(creature)
+ npc_ghoulAI(Creature* creature) : hyjal_trashAI(creature)
{
instance = creature->GetInstanceScript();
go = false;
@@ -662,27 +662,27 @@ public:
uint32 FrenzyTimer;
uint32 MoveTimer;
bool RandomMove;
- void Reset()
+ void Reset() OVERRIDE
{
FrenzyTimer = 5000+rand()%5000;
MoveTimer = 2000;
RandomMove = false;
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
if (waypointId == 7 && instance && !IsOverrun)
{
if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall
{
Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_THRALL));
- if (target && target->isAlive())
+ if (target && target->IsAlive())
me->AddThreat(target, 0.0f);
}
else
{
Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE));
- if (target && target->isAlive())
+ if (target && target->IsAlive())
me->AddThreat(target, 0.0f);
}
}
@@ -697,9 +697,9 @@ public:
}
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
hyjal_trashAI::UpdateAI(diff);
if (IsEvent || IsOverrun)
@@ -741,19 +741,19 @@ public:
};
-class mob_necromancer : public CreatureScript
+class npc_necromancer : public CreatureScript
{
public:
- mob_necromancer() : CreatureScript("mob_necromancer") { }
+ npc_necromancer() : CreatureScript("npc_necromancer") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_necromancerAI(creature);
+ return new npc_necromancerAI(creature);
}
- struct mob_necromancerAI : public hyjal_trashAI
+ struct npc_necromancerAI : public hyjal_trashAI
{
- mob_necromancerAI(Creature* creature) : hyjal_trashAI(creature), summons(me)
+ npc_necromancerAI(Creature* creature) : hyjal_trashAI(creature), summons(me)
{
instance = creature->GetInstanceScript();
go = false;
@@ -764,45 +764,45 @@ public:
bool go;
uint32 ShadowBoltTimer;
- void Reset()
+ void Reset() OVERRIDE
{
ShadowBoltTimer = 1000+rand()%5000;
summons.DespawnAll();
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 30, true);
- if (target && summon)
+ if (target)
summon->Attack(target, false);
summons.Summon(summon);
}
- void SummonedCreatureDespawn(Creature* summon)
+ void SummonedCreatureDespawn(Creature* summon) OVERRIDE
{
summons.Despawn(summon);
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
if (waypointId == 7 && instance && !IsOverrun)
{
if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall
{
Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_THRALL));
- if (target && target->isAlive())
+ if (target && target->IsAlive())
me->AddThreat(target, 0.0f);
}
else
{
Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE));
- if (target && target->isAlive())
+ if (target && target->IsAlive())
me->AddThreat(target, 0.0f);
}
}
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
switch (urand(0, 2))
{
@@ -820,9 +820,9 @@ public:
}
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
hyjal_trashAI::UpdateAI(diff);
@@ -858,7 +858,7 @@ public:
if (ShadowBoltTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_SHADOW_BOLT);
+ DoCastVictim(SPELL_SHADOW_BOLT);
ShadowBoltTimer = 20000+rand()%10000;
} else ShadowBoltTimer -= diff;
@@ -868,19 +868,19 @@ public:
};
-class mob_banshee : public CreatureScript
+class npc_banshee : public CreatureScript
{
public:
- mob_banshee() : CreatureScript("mob_banshee") { }
+ npc_banshee() : CreatureScript("npc_banshee") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_bansheeAI(creature);
+ return new npc_bansheeAI(creature);
}
- struct mob_bansheeAI : public hyjal_trashAI
+ struct npc_bansheeAI : public hyjal_trashAI
{
- mob_bansheeAI(Creature* creature) : hyjal_trashAI(creature)
+ npc_bansheeAI(Creature* creature) : hyjal_trashAI(creature)
{
instance = creature->GetInstanceScript();
go = false;
@@ -892,35 +892,35 @@ public:
uint32 WailTimer;
uint32 ShellTimer;
- void Reset()
+ void Reset() OVERRIDE
{
CourseTimer = 20000+rand()%5000;
WailTimer = 15000+rand()%5000;
ShellTimer = 50000+rand()%10000;
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
if (waypointId == 7 && instance && !IsOverrun)
{
if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall
{
Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_THRALL));
- if (target && target->isAlive())
+ if (target && target->IsAlive())
me->AddThreat(target, 0.0f);
}
else
{
Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE));
- if (target && target->isAlive())
+ if (target && target->IsAlive())
me->AddThreat(target, 0.0f);
}
}
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
hyjal_trashAI::UpdateAI(diff);
if (IsEvent || IsOverrun)
@@ -952,12 +952,12 @@ public:
return;
if (CourseTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_BANSHEE_CURSE);
+ DoCastVictim(SPELL_BANSHEE_CURSE);
CourseTimer = 20000+rand()%5000;
} else CourseTimer -= diff;
if (WailTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_BANSHEE_WAIL);
+ DoCastVictim(SPELL_BANSHEE_WAIL);
WailTimer = 15000+rand()%5000;
} else WailTimer -= diff;
if (ShellTimer <= diff)
@@ -971,19 +971,19 @@ public:
};
-class mob_crypt_fiend : public CreatureScript
+class npc_crypt_fiend : public CreatureScript
{
public:
- mob_crypt_fiend() : CreatureScript("mob_crypt_fiend") { }
+ npc_crypt_fiend() : CreatureScript("npc_crypt_fiend") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_crypt_fiendAI(creature);
+ return new npc_crypt_fiendAI(creature);
}
- struct mob_crypt_fiendAI : public hyjal_trashAI
+ struct npc_crypt_fiendAI : public hyjal_trashAI
{
- mob_crypt_fiendAI(Creature* creature) : hyjal_trashAI(creature)
+ npc_crypt_fiendAI(Creature* creature) : hyjal_trashAI(creature)
{
instance = creature->GetInstanceScript();
go = false;
@@ -993,33 +993,33 @@ public:
bool go;
uint32 WebTimer;
- void Reset()
+ void Reset() OVERRIDE
{
WebTimer = 20000+rand()%5000;
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
if (waypointId == 7 && instance && !IsOverrun)
{
if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall
{
Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_THRALL));
- if (target && target->isAlive())
+ if (target && target->IsAlive())
me->AddThreat(target, 0.0f);
}
else
{
Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE));
- if (target && target->isAlive())
+ if (target && target->IsAlive())
me->AddThreat(target, 0.0f);
}
}
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
hyjal_trashAI::UpdateAI(diff);
if (IsEvent || IsOverrun)
@@ -1052,7 +1052,7 @@ public:
return;
if (WebTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_WEB);
+ DoCastVictim(SPELL_WEB);
WebTimer = 20000+rand()%5000;
} else WebTimer -= diff;
DoMeleeAttackIfReady();
@@ -1061,19 +1061,19 @@ public:
};
-class mob_fel_stalker : public CreatureScript
+class npc_fel_stalker : public CreatureScript
{
public:
- mob_fel_stalker() : CreatureScript("mob_fel_stalker") { }
+ npc_fel_stalker() : CreatureScript("npc_fel_stalker") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_fel_stalkerAI(creature);
+ return new npc_fel_stalkerAI(creature);
}
- struct mob_fel_stalkerAI : public hyjal_trashAI
+ struct npc_fel_stalkerAI : public hyjal_trashAI
{
- mob_fel_stalkerAI(Creature* creature) : hyjal_trashAI(creature)
+ npc_fel_stalkerAI(Creature* creature) : hyjal_trashAI(creature)
{
instance = creature->GetInstanceScript();
go = false;
@@ -1083,33 +1083,33 @@ public:
bool go;
uint32 ManaBurnTimer;
- void Reset()
+ void Reset() OVERRIDE
{
ManaBurnTimer = 9000+rand()%5000;
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
if (waypointId == 7 && instance && !IsOverrun)
{
if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall
{
Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_THRALL));
- if (target && target->isAlive())
+ if (target && target->IsAlive())
me->AddThreat(target, 0.0f);
}
else
{
Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE));
- if (target && target->isAlive())
+ if (target && target->IsAlive())
me->AddThreat(target, 0.0f);
}
}
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
hyjal_trashAI::UpdateAI(diff);
if (IsEvent || IsOverrun)
@@ -1142,7 +1142,7 @@ public:
return;
if (ManaBurnTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_MANA_BURN);
+ DoCastVictim(SPELL_MANA_BURN);
ManaBurnTimer = 9000+rand()%5000;
} else ManaBurnTimer -= diff;
DoMeleeAttackIfReady();
@@ -1151,19 +1151,19 @@ public:
};
-class mob_frost_wyrm : public CreatureScript
+class npc_frost_wyrm : public CreatureScript
{
public:
- mob_frost_wyrm() : CreatureScript("mob_frost_wyrm") { }
+ npc_frost_wyrm() : CreatureScript("npc_frost_wyrm") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_frost_wyrmAI(creature);
+ return new npc_frost_wyrmAI(creature);
}
- struct mob_frost_wyrmAI : public hyjal_trashAI
+ struct npc_frost_wyrmAI : public hyjal_trashAI
{
- mob_frost_wyrmAI(Creature* creature) : hyjal_trashAI(creature)
+ npc_frost_wyrmAI(Creature* creature) : hyjal_trashAI(creature)
{
instance = creature->GetInstanceScript();
go = false;
@@ -1174,19 +1174,19 @@ public:
uint32 FrostBreathTimer;
uint32 MoveTimer;
- void Reset()
+ void Reset() OVERRIDE
{
FrostBreathTimer = 5000;
MoveTimer = 0;
me->SetDisableGravity(true);
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
if (waypointId == 2 && instance && !IsOverrun)
{
Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_THRALL));
- if (target && target->isAlive())
+ if (target && target->IsAlive())
{
me->AddThreat(target, 0.0f);
DoCast(target, SPELL_FROST_BREATH, true);
@@ -1194,7 +1194,7 @@ public:
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance && IsEvent)
instance->SetData(DATA_TRASH, 0);//signal trash is dead
@@ -1206,9 +1206,9 @@ public:
me->SetPosition(x, y, z, 0);
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
hyjal_trashAI::UpdateAI(diff);
if (IsEvent || IsOverrun)
@@ -1240,19 +1240,19 @@ public:
}
if (!UpdateVictim())
return;
- if (!me->IsWithinDist(me->getVictim(), 25)){
+ if (!me->IsWithinDist(me->GetVictim(), 25)){
if (MoveTimer <= diff)
{
- me->GetMotionMaster()->MoveChase(me->getVictim());
+ me->GetMotionMaster()->MoveChase(me->GetVictim());
MoveTimer = 2000;
} else MoveTimer-=diff;
}
if (FrostBreathTimer <= diff)
{
- if (!me->IsWithinDist(me->getVictim(), 25))
+ if (!me->IsWithinDist(me->GetVictim(), 25))
{
- DoCast(me->getVictim(), SPELL_FROST_BREATH);
+ DoCastVictim(SPELL_FROST_BREATH);
me->StopMoving();
me->GetMotionMaster()->Clear();
FrostBreathTimer = 4000;
@@ -1263,19 +1263,19 @@ public:
};
-class mob_gargoyle : public CreatureScript
+class npc_gargoyle : public CreatureScript
{
public:
- mob_gargoyle() : CreatureScript("mob_gargoyle") { }
+ npc_gargoyle() : CreatureScript("npc_gargoyle") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_gargoyleAI(creature);
+ return new npc_gargoyleAI(creature);
}
- struct mob_gargoyleAI : public hyjal_trashAI
+ struct npc_gargoyleAI : public hyjal_trashAI
{
- mob_gargoyleAI(Creature* creature) : hyjal_trashAI(creature)
+ npc_gargoyleAI(Creature* creature) : hyjal_trashAI(creature)
{
instance = creature->GetInstanceScript();
go = false;
@@ -1289,7 +1289,7 @@ public:
float Zpos;
bool forcemove;
- void Reset()
+ void Reset() OVERRIDE
{
forcemove = true;
Zpos = 10.0f;
@@ -1298,12 +1298,12 @@ public:
me->SetDisableGravity(true);
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
if (waypointId == 2 && instance && !IsOverrun)
{
Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_THRALL));
- if (target && target->isAlive())
+ if (target && target->IsAlive())
{
me->AddThreat(target, 0.0f);
DoCast(target, SPELL_GARGOYLE_STRIKE, true);
@@ -1311,7 +1311,7 @@ public:
}
}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
float x, y, z;
me->GetPosition(x, y, z);
@@ -1321,7 +1321,7 @@ public:
hyjal_trashAI::JustDied(killer);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
hyjal_trashAI::UpdateAI(diff);
if (IsEvent || IsOverrun)
@@ -1364,7 +1364,7 @@ public:
}
if (!UpdateVictim())
return;
- if (!me->IsWithinDist(me->getVictim(), 20) || forcemove)
+ if (!me->IsWithinDist(me->GetVictim(), 20) || forcemove)
{
forcemove = false;
if (forcemove)
@@ -1375,7 +1375,7 @@ public:
if (MoveTimer <= diff)
{
float x, y, z;
- me->getVictim()->GetPosition(x, y, z);
+ me->GetVictim()->GetPosition(x, y, z);
me->GetMotionMaster()->MovePoint(0, x, y, z+Zpos);
Zpos -= 1.0f;
if (Zpos <= 0)
@@ -1385,9 +1385,9 @@ public:
}
if (StrikeTimer <= diff)
{
- if (me->IsWithinDist(me->getVictim(), 20))
+ if (me->IsWithinDist(me->GetVictim(), 20))
{
- DoCast(me->getVictim(), SPELL_GARGOYLE_STRIKE);
+ DoCastVictim(SPELL_GARGOYLE_STRIKE);
me->StopMoving();
me->GetMotionMaster()->Clear();
StrikeTimer = 2000+rand()%1000;
@@ -1403,7 +1403,7 @@ class alliance_rifleman : public CreatureScript
public:
alliance_rifleman() : CreatureScript("alliance_rifleman") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new alliance_riflemanAI(creature);
}
@@ -1417,18 +1417,19 @@ public:
uint32 ExplodeTimer;
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
}
- void Reset()
+ void Reset() OVERRIDE
{
ExplodeTimer = 5000+rand()%5000;
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
- if (!who || me->getVictim())
+ if (!who || me->GetVictim())
return;
if (me->IsValidAttackTarget(who))
@@ -1439,24 +1440,24 @@ public:
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Check if we have a target
if (!UpdateVictim())
return;
if (ExplodeTimer <= diff)
{
- if (!me->IsWithinDistInMap(me->getVictim(), 30))
+ if (!me->IsWithinDistInMap(me->GetVictim(), 30))
{
EnterEvadeMode();
return;
}
int dmg = 500+rand()%700;
- me->CastCustomSpell(me->getVictim(), SPELL_EXPLODING_SHOT, &dmg, 0, 0, false);
+ me->CastCustomSpell(me->GetVictim(), SPELL_EXPLODING_SHOT, &dmg, 0, 0, false);
ExplodeTimer = 5000+rand()%5000;
} else ExplodeTimer -= diff;
DoMeleeAttackIfReady();
@@ -1467,14 +1468,14 @@ public:
void AddSC_hyjal_trash()
{
- new mob_giant_infernal();
- new mob_abomination();
- new mob_ghoul();
- new mob_necromancer();
- new mob_banshee();
- new mob_crypt_fiend();
- new mob_fel_stalker();
- new mob_frost_wyrm();
- new mob_gargoyle();
+ new npc_giant_infernal();
+ new npc_abomination();
+ new npc_ghoul();
+ new npc_necromancer();
+ new npc_banshee();
+ new npc_crypt_fiend();
+ new npc_fel_stalker();
+ new npc_frost_wyrm();
+ new npc_gargoyle();
new alliance_rifleman();
}
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp
index fb2c1b3e47d..65b146e4770 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp
@@ -31,12 +31,6 @@ EndScriptData */
#include "WorldPacket.h"
#include "Opcodes.h"
-enum Misc
-{
- MAX_ENCOUNTER = 5,
-
- GO_ANCIENT_GEM = 185557,
-};
/* Battle of Mount Hyjal encounters:
0 - Rage Winterchill event
1 - Anetheron event
@@ -45,12 +39,15 @@ enum Misc
4 - Archimonde event
*/
+#define YELL_EFFORTS "All of your efforts have been in vain, for the draining of the World Tree has already begun. Soon the heart of your world will beat no more."
+#define YELL_EFFORTS_NAME "Archimonde"
+
class instance_hyjal : public InstanceMapScript
{
public:
instance_hyjal() : InstanceMapScript("instance_hyjal", 534) { }
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_mount_hyjal_InstanceMapScript(map);
}
@@ -59,61 +56,33 @@ public:
{
instance_mount_hyjal_InstanceMapScript(Map* map) : InstanceScript(map) {}
- uint32 m_auiEncounter[MAX_ENCOUNTER];
- std::string str_data;
-
- std::list<uint64> m_uiAncientGemGUID;
-
- uint64 RageWinterchill;
- uint64 Anetheron;
- uint64 Kazrogal;
- uint64 Azgalor;
- uint64 Archimonde;
- uint64 JainaProudmoore;
- uint64 Thrall;
- uint64 TyrandeWhisperwind;
- uint64 HordeGate;
- uint64 ElfGate;
-
- uint32 Trash;
-
- uint32 hordeRetreat;
- uint32 allianceRetreat;
- bool ArchiYell;
-
- uint32 RaidDamage;
-
- #define YELL_EFFORTS "All of your efforts have been in vain, for the draining of the World Tree has already begun. Soon the heart of your world will beat no more."
- #define YELL_EFFORTS_NAME "Archimonde"
-
void Initialize()
{
memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
m_uiAncientGemGUID.clear();
- RageWinterchill = 0;
- Anetheron = 0;
- Kazrogal = 0;
- Azgalor = 0;
- Archimonde = 0;
- JainaProudmoore = 0;
- Thrall = 0;
+ RageWinterchill = 0;
+ Anetheron = 0;
+ Kazrogal = 0;
+ Azgalor = 0;
+ Archimonde = 0;
+ JainaProudmoore = 0;
+ Thrall = 0;
TyrandeWhisperwind = 0;
- HordeGate = 0;
- ElfGate = 0;
- ArchiYell = false;
- RaidDamage = 0;
-
- Trash = 0;
-
- hordeRetreat = 0;
- allianceRetreat = 0;
+ HordeGate = 0;
+ ElfGate = 0;
+ RaidDamage = 0;
+ Trash = 0;
+ hordeRetreat = 0;
+ allianceRetreat = 0;
+
+ ArchiYell = false;
}
bool IsEncounterInProgress() const
{
- for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
+ for (uint8 i = 0; i < EncounterCount; ++i)
if (m_auiEncounter[i] == IN_PROGRESS)
return true;
@@ -124,14 +93,14 @@ public:
{
switch (go->GetEntry())
{
- case 182060:
+ case GO_HORDE_ENCAMPMENT_PORTAL:
HordeGate = go->GetGUID();
if (allianceRetreat)
HandleGameObject(0, true, go);
else
HandleGameObject(0, false, go);
break;
- case 182061:
+ case GO_NIGHT_ELF_VILLAGE_PORTAL:
ElfGate = go->GetGUID();
if (hordeRetreat)
HandleGameObject(0, true, go);
@@ -148,35 +117,35 @@ public:
{
switch (creature->GetEntry())
{
- case 17767: RageWinterchill = creature->GetGUID(); break;
- case 17808: Anetheron = creature->GetGUID(); break;
- case 17888: Kazrogal = creature->GetGUID(); break;
- case 17842: Azgalor = creature->GetGUID(); break;
- case 17968: Archimonde = creature->GetGUID(); break;
- case 17772: JainaProudmoore = creature->GetGUID(); break;
- case 17852: Thrall = creature->GetGUID(); break;
- case 17948: TyrandeWhisperwind = creature->GetGUID(); break;
+ case RAGE_WINTERCHILL: RageWinterchill = creature->GetGUID(); break;
+ case ANETHERON: Anetheron = creature->GetGUID(); break;
+ case KAZROGAL: Kazrogal = creature->GetGUID(); break;
+ case AZGALOR: Azgalor = creature->GetGUID(); break;
+ case ARCHIMONDE: Archimonde = creature->GetGUID(); break;
+ case JAINA: JainaProudmoore = creature->GetGUID(); break;
+ case THRALL: Thrall = creature->GetGUID(); break;
+ case TYRANDE: TyrandeWhisperwind = creature->GetGUID(); break;
}
}
- uint64 GetData64(uint32 identifier) const
+ uint64 GetData64(uint32 identifier) const OVERRIDE
{
switch (identifier)
{
- case DATA_RAGEWINTERCHILL: return RageWinterchill;
- case DATA_ANETHERON: return Anetheron;
- case DATA_KAZROGAL: return Kazrogal;
- case DATA_AZGALOR: return Azgalor;
- case DATA_ARCHIMONDE: return Archimonde;
- case DATA_JAINAPROUDMOORE: return JainaProudmoore;
- case DATA_THRALL: return Thrall;
+ case DATA_RAGEWINTERCHILL: return RageWinterchill;
+ case DATA_ANETHERON: return Anetheron;
+ case DATA_KAZROGAL: return Kazrogal;
+ case DATA_AZGALOR: return Azgalor;
+ case DATA_ARCHIMONDE: return Archimonde;
+ case DATA_JAINAPROUDMOORE: return JainaProudmoore;
+ case DATA_THRALL: return Thrall;
case DATA_TYRANDEWHISPERWIND: return TyrandeWhisperwind;
}
return 0;
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
switch (type)
{
@@ -202,7 +171,7 @@ public:
Creature* creature = instance->GetCreature(Azgalor);
if (creature)
{
- Creature* unit = creature->SummonCreature(21987, creature->GetPositionX(), creature->GetPositionY(), creature->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 10000);
+ Creature* unit = creature->SummonCreature(NPC_WORLD_TRIGGER_TINY, creature->GetPositionX(), creature->GetPositionY(), creature->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 10000);
Map* map = creature->GetMap();
if (map->IsDungeon() && unit)
@@ -214,15 +183,15 @@ public:
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
{
- if (i->getSource())
+ if (i->GetSource())
{
WorldPacket packet(SMSG_MESSAGECHAT, 200);
- unit->BuildMonsterChat(&packet, CHAT_MSG_MONSTER_YELL, YELL_EFFORTS, 0, YELL_EFFORTS_NAME, i->getSource()->GetGUID());
- i->getSource()->GetSession()->SendPacket(&packet);
+ unit->BuildMonsterChat(&packet, CHAT_MSG_MONSTER_YELL, YELL_EFFORTS, 0, YELL_EFFORTS_NAME, i->GetSource()->GetGUID());
+ i->GetSource()->GetSession()->SendPacket(&packet);
WorldPacket data2(SMSG_PLAY_SOUND, 4);
data2 << 10986;
- i->getSource()->GetSession()->SendPacket(&data2);
+ i->GetSource()->GetSession()->SendPacket(&data2);
}
}
}
@@ -296,19 +265,19 @@ public:
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
case DATA_RAGEWINTERCHILLEVENT: return m_auiEncounter[0];
- case DATA_ANETHERONEVENT: return m_auiEncounter[1];
- case DATA_KAZROGALEVENT: return m_auiEncounter[2];
- case DATA_AZGALOREVENT: return m_auiEncounter[3];
- case DATA_ARCHIMONDEEVENT: return m_auiEncounter[4];
- case DATA_TRASH: return Trash;
- case DATA_ALLIANCE_RETREAT: return allianceRetreat;
- case DATA_HORDE_RETREAT: return hordeRetreat;
- case DATA_RAIDDAMAGE: return RaidDamage;
+ case DATA_ANETHERONEVENT: return m_auiEncounter[1];
+ case DATA_KAZROGALEVENT: return m_auiEncounter[2];
+ case DATA_AZGALOREVENT: return m_auiEncounter[3];
+ case DATA_ARCHIMONDEEVENT: return m_auiEncounter[4];
+ case DATA_TRASH: return Trash;
+ case DATA_ALLIANCE_RETREAT: return allianceRetreat;
+ case DATA_HORDE_RETREAT: return hordeRetreat;
+ case DATA_RAIDDAMAGE: return RaidDamage;
}
return 0;
}
@@ -329,13 +298,32 @@ public:
OUT_LOAD_INST_DATA(in);
std::istringstream loadStream(in);
loadStream >> m_auiEncounter[0] >> m_auiEncounter[1] >> m_auiEncounter[2] >> m_auiEncounter[3] >> m_auiEncounter[4] >> allianceRetreat >> hordeRetreat >> RaidDamage;
- for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
+ for (uint8 i = 0; i < EncounterCount; ++i)
if (m_auiEncounter[i] == IN_PROGRESS) // Do not load an encounter as IN_PROGRESS - reset it instead.
m_auiEncounter[i] = NOT_STARTED;
OUT_LOAD_INST_DATA_COMPLETE;
}
- };
+ protected:
+ uint32 m_auiEncounter[EncounterCount];
+ std::string str_data;
+ std::list<uint64> m_uiAncientGemGUID;
+ uint64 RageWinterchill;
+ uint64 Anetheron;
+ uint64 Kazrogal;
+ uint64 Azgalor;
+ uint64 Archimonde;
+ uint64 JainaProudmoore;
+ uint64 Thrall;
+ uint64 TyrandeWhisperwind;
+ uint64 HordeGate;
+ uint64 ElfGate;
+ uint32 Trash;
+ uint32 hordeRetreat;
+ uint32 allianceRetreat;
+ uint32 RaidDamage;
+ bool ArchiYell;
+ };
};
void AddSC_instance_mount_hyjal()
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_chrono_lord_epoch.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_chrono_lord_epoch.cpp
index 2259cc84e15..c049be0309b 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_chrono_lord_epoch.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_chrono_lord_epoch.cpp
@@ -50,9 +50,9 @@ class boss_epoch : public CreatureScript
public:
boss_epoch() : CreatureScript("boss_epoch") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_epochAI (creature);
+ return new boss_epochAI(creature);
}
struct boss_epochAI : public ScriptedAI
@@ -72,7 +72,7 @@ public:
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
uiStep = 1;
uiStepTimer = 26000;
@@ -85,7 +85,7 @@ public:
instance->SetData(DATA_EPOCH_EVENT, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
@@ -93,7 +93,7 @@ public:
instance->SetData(DATA_EPOCH_EVENT, IN_PROGRESS);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -128,7 +128,7 @@ public:
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -136,9 +136,9 @@ public:
instance->SetData(DATA_EPOCH_EVENT, DONE);
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
- if (victim == me)
+ if (victim->GetTypeId() != TYPEID_PLAYER)
return;
Talk(SAY_SLAY);
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_infinite_corruptor.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_infinite_corruptor.cpp
index 262f8a76509..54438e3b8a9 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_infinite_corruptor.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_infinite_corruptor.cpp
@@ -37,7 +37,7 @@ class boss_infinite_corruptor : public CreatureScript
public:
boss_infinite_corruptor() : CreatureScript("boss_infinite_corruptor") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_infinite_corruptorAI(creature);
}
@@ -51,20 +51,20 @@ public:
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
if (instance)
instance->SetData(DATA_INFINITE_EVENT, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
if (instance)
instance->SetData(DATA_INFINITE_EVENT, IN_PROGRESS);
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -73,7 +73,7 @@ public:
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
if (instance)
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp
index 8020d606532..e16ed882171 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp
@@ -64,9 +64,9 @@ class boss_mal_ganis : public CreatureScript
public:
boss_mal_ganis() : CreatureScript("boss_mal_ganis") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_mal_ganisAI (creature);
+ return new boss_mal_ganisAI(creature);
}
struct boss_mal_ganisAI : public ScriptedAI
@@ -91,7 +91,7 @@ public:
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
bYelled = false;
bYelled2 = false;
@@ -106,20 +106,20 @@ public:
instance->SetData(DATA_MAL_GANIS_EVENT, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
if (instance)
instance->SetData(DATA_MAL_GANIS_EVENT, IN_PROGRESS);
}
- void DamageTaken(Unit* done_by, uint32 &damage)
+ void DamageTaken(Unit* done_by, uint32 &damage) OVERRIDE
{
if (damage >= me->GetHealth() && done_by != me)
damage = me->GetHealth()-1;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
switch (Phase)
{
@@ -226,7 +226,7 @@ public:
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
{
@@ -237,9 +237,9 @@ public:
}
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
- if (victim == me)
+ if (victim->GetTypeId() != TYPEID_PLAYER)
return;
Talk(SAY_SLAY);
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp
index 7cf095d176c..aff076f4763 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp
@@ -49,9 +49,9 @@ class boss_meathook : public CreatureScript
public:
boss_meathook() : CreatureScript("boss_meathook") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_meathookAI (creature);
+ return new boss_meathookAI(creature);
}
struct boss_meathookAI : public ScriptedAI
@@ -69,7 +69,7 @@ public:
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
uiChainTimer = urand(12000, 17000); //seen on video 13, 17, 15, 12, 16
uiDiseaseTimer = urand(2000, 4000); //approx 3s
@@ -79,7 +79,7 @@ public:
instance->SetData(DATA_MEATHOOK_EVENT, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
@@ -87,7 +87,7 @@ public:
instance->SetData(DATA_MEATHOOK_EVENT, IN_PROGRESS);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -115,7 +115,7 @@ public:
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -123,9 +123,9 @@ public:
instance->SetData(DATA_MEATHOOK_EVENT, DONE);
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
- if (victim == me)
+ if (victim->GetTypeId() != TYPEID_PLAYER)
return;
Talk(SAY_SLAY);
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm_the_fleshcrafter.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm_the_fleshcrafter.cpp
index cda2175a22d..fc5b3c4a8b0 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm_the_fleshcrafter.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm_the_fleshcrafter.cpp
@@ -54,9 +54,9 @@ class boss_salramm : public CreatureScript
public:
boss_salramm() : CreatureScript("boss_salramm") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_salrammAI (creature);
+ return new boss_salrammAI(creature);
}
struct boss_salrammAI : public ScriptedAI
@@ -76,7 +76,7 @@ public:
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
uiCurseFleshTimer = 30000; //30s DBM
uiExplodeGhoulTimer = urand(25000, 28000); //approx 6 sec after summon ghouls
@@ -88,7 +88,7 @@ public:
instance->SetData(DATA_SALRAMM_EVENT, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
@@ -96,7 +96,7 @@ public:
instance->SetData(DATA_SALRAMM_EVENT, IN_PROGRESS);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -105,7 +105,7 @@ public:
//Curse of twisted flesh timer
if (uiCurseFleshTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_CURSE_OF_TWISTED_FLESH);
+ DoCastVictim(SPELL_CURSE_OF_TWISTED_FLESH);
uiCurseFleshTimer = 37000;
} else uiCurseFleshTimer -= diff;
@@ -138,7 +138,7 @@ public:
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -146,9 +146,9 @@ public:
instance->SetData(DATA_SALRAMM_EVENT, DONE);
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
- if (victim == me)
+ if (victim->GetTypeId() != TYPEID_PLAYER)
return;
Talk(SAY_SLAY);
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp
index d8df5d56888..dbead663cff 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp
@@ -255,7 +255,7 @@ class npc_arthas : public CreatureScript
public:
npc_arthas() : CreatureScript("npc_arthas") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
npc_arthasAI* ai = CAST_AI(npc_arthas::npc_arthasAI, creature->AI());
@@ -298,7 +298,7 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
npc_arthasAI* ai = CAST_AI(npc_arthas::npc_arthasAI, creature->AI());
@@ -342,7 +342,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_arthasAI(creature);
}
@@ -379,7 +379,7 @@ public:
uint32 exorcismTimer;
- void Reset()
+ void Reset() OVERRIDE
{
utherGUID = 0;
jainaGUID = 0;
@@ -417,12 +417,12 @@ public:
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
DoCast(me, SPELL_ARTHAS_AURA);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
instance->SetData(DATA_ARTHAS_EVENT, FAIL);
@@ -470,7 +470,7 @@ public:
++step;
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
switch (waypointId)
{
@@ -589,7 +589,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
npc_escortAI::UpdateAI(diff);
@@ -1069,7 +1069,7 @@ public:
case 72:
case 74:
case 76:
- if (me->isInCombat())
+ if (me->IsInCombat())
phaseTimer = 1000;
else
{
@@ -1083,7 +1083,7 @@ public:
}
break;
case 78:
- if (me->isInCombat())
+ if (me->IsInCombat())
phaseTimer = 1000;
else
{
@@ -1214,7 +1214,7 @@ public:
}
//Battling skills
- if (!me->getVictim())
+ if (!me->GetVictim())
return;
if (exorcismTimer < diff)
@@ -1243,7 +1243,7 @@ class npc_crate_helper : public CreatureScript
_marked = false;
}
- void SpellHit(Unit* /*caster*/, SpellInfo const* spell)
+ void SpellHit(Unit* /*caster*/, SpellInfo const* spell) OVERRIDE
{
if (spell->Id == SPELL_ARCANE_DISRUPTION && !_marked)
{
@@ -1262,7 +1262,7 @@ class npc_crate_helper : public CreatureScript
bool _marked;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_crate_helperAI(creature);
}
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp
index 109ff0f122b..7df66c89594 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp
@@ -45,7 +45,7 @@ class instance_culling_of_stratholme : public InstanceMapScript
public:
instance_culling_of_stratholme() : InstanceMapScript("instance_culling_of_stratholme", 595) { }
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_culling_of_stratholme_InstanceMapScript(map);
}
@@ -143,7 +143,7 @@ class instance_culling_of_stratholme : public InstanceMapScript
}
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
switch (type)
{
@@ -187,7 +187,7 @@ class instance_culling_of_stratholme : public InstanceMapScript
// Summon Chromie and global whisper
if (Creature* chromie = instance->SummonCreature(NPC_CHROMIE_2, ChromieSummonPos))
if (!instance->GetPlayers().isEmpty())
- if (Player* player = instance->GetPlayers().getFirst()->getSource())
+ if (Player* player = instance->GetPlayers().getFirst()->GetSource())
sCreatureTextMgr->SendChat(chromie, SAY_CRATES_COMPLETED, player->GetGUID(), CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_MAP);
}
DoUpdateWorldState(WORLDSTATE_CRATES_REVEALED, _crateCount);
@@ -198,7 +198,7 @@ class instance_culling_of_stratholme : public InstanceMapScript
SaveToDB();
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -218,7 +218,7 @@ class instance_culling_of_stratholme : public InstanceMapScript
return 0;
}
- uint64 GetData64(uint32 identifier) const
+ uint64 GetData64(uint32 identifier) const OVERRIDE
{
switch (identifier)
{
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/boss_chrono_lord_deja.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/boss_chrono_lord_deja.cpp
deleted file mode 100644
index ef0d7b1f418..00000000000
--- a/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/boss_chrono_lord_deja.cpp
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
- * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/* ScriptData
-SDName: Boss_Chrono_Lord_Deja
-SD%Complete: 65
-SDComment: All abilities not implemented
-SDCategory: Caverns of Time, The Dark Portal
-EndScriptData */
-
-#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "dark_portal.h"
-
-enum eEnums
-{
- SAY_ENTER = 0,
- SAY_AGGRO = 1,
- SAY_BANISH = 2,
- SAY_SLAY = 3,
- SAY_DEATH = 4,
-
- SPELL_ARCANE_BLAST = 31457,
- H_SPELL_ARCANE_BLAST = 38538,
- SPELL_ARCANE_DISCHARGE = 31472,
- H_SPELL_ARCANE_DISCHARGE = 38539,
- SPELL_TIME_LAPSE = 31467,
- SPELL_ATTRACTION = 38540 //Not Implemented (Heroic mode)
-};
-
-class boss_chrono_lord_deja : public CreatureScript
-{
-public:
- boss_chrono_lord_deja() : CreatureScript("boss_chrono_lord_deja") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new boss_chrono_lord_dejaAI (creature);
- }
-
- struct boss_chrono_lord_dejaAI : public ScriptedAI
- {
- boss_chrono_lord_dejaAI(Creature* creature) : ScriptedAI(creature)
- {
- instance = creature->GetInstanceScript();
- }
-
- InstanceScript* instance;
-
- uint32 ArcaneBlast_Timer;
- uint32 TimeLapse_Timer;
- uint32 Attraction_Timer;
- uint32 ArcaneDischarge_Timer;
-
- void Reset()
- {
- ArcaneBlast_Timer = 18000+rand()%5000;
- TimeLapse_Timer = 10000+rand()%5000;
- ArcaneDischarge_Timer = 20000+rand()%10000;
- Attraction_Timer = 25000+rand()%10000;
- }
-
- void EnterCombat(Unit* /*who*/)
- {
- Talk(SAY_AGGRO);
- }
-
- void MoveInLineOfSight(Unit* who)
- {
- //Despawn Time Keeper
- if (who->GetTypeId() == TYPEID_UNIT && who->GetEntry() == C_TIME_KEEPER)
- {
- if (me->IsWithinDistInMap(who, 20.0f))
- {
- Talk(SAY_BANISH);
- me->DealDamage(who, who->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
- }
- }
-
- ScriptedAI::MoveInLineOfSight(who);
- }
-
- void KilledUnit(Unit* /*victim*/)
- {
- Talk(SAY_SLAY);
- }
-
- void JustDied(Unit* /*killer*/)
- {
- Talk(SAY_DEATH);
-
- if (instance)
- instance->SetData(TYPE_RIFT, SPECIAL);
- }
-
- void UpdateAI(uint32 diff)
- {
- //Return since we have no target
- if (!UpdateVictim())
- return;
-
- //Arcane Blast
- if (ArcaneBlast_Timer <= diff)
- {
- DoCast(me->getVictim(), SPELL_ARCANE_BLAST);
- ArcaneBlast_Timer = 15000+rand()%10000;
- } else ArcaneBlast_Timer -= diff;
-
- //Arcane Discharge
- if (ArcaneDischarge_Timer <= diff)
- {
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- DoCast(target, SPELL_ARCANE_DISCHARGE);
- ArcaneDischarge_Timer = 20000+rand()%10000;
- } else ArcaneDischarge_Timer -= diff;
-
- //Time Lapse
- if (TimeLapse_Timer <= diff)
- {
- Talk(SAY_BANISH);
- DoCast(me, SPELL_TIME_LAPSE);
- TimeLapse_Timer = 15000+rand()%10000;
- } else TimeLapse_Timer -= diff;
-
- if (IsHeroic())
- {
- if (Attraction_Timer <= diff)
- {
- DoCast(me, SPELL_ATTRACTION);
- Attraction_Timer = 25000+rand()%10000;
- } else Attraction_Timer -= diff;
- }
-
- DoMeleeAttackIfReady();
- }
- };
-
-};
-
-void AddSC_boss_chrono_lord_deja()
-{
- new boss_chrono_lord_deja();
-}
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/boss_temporus.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/boss_temporus.cpp
deleted file mode 100644
index e224094b1f9..00000000000
--- a/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/boss_temporus.cpp
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
- * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/* ScriptData
-SDName: Boss_Temporus
-SD%Complete: 75
-SDComment: More abilities need to be implemented
-SDCategory: Caverns of Time, The Dark Portal
-EndScriptData */
-
-#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "dark_portal.h"
-
-enum eEnums
-{
- SAY_ENTER = 0,
- SAY_AGGRO = 1,
- SAY_BANISH = 2,
- SAY_SLAY = 3,
- SAY_DEATH = 4,
-
- SPELL_HASTE = 31458,
- SPELL_MORTAL_WOUND = 31464,
- SPELL_WING_BUFFET = 31475,
- H_SPELL_WING_BUFFET = 38593,
- SPELL_REFLECT = 38592 //Not Implemented (Heroic mod)
-};
-
-class boss_temporus : public CreatureScript
-{
-public:
- boss_temporus() : CreatureScript("boss_temporus") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new boss_temporusAI (creature);
- }
-
- struct boss_temporusAI : public ScriptedAI
- {
- boss_temporusAI(Creature* creature) : ScriptedAI(creature)
- {
- instance = creature->GetInstanceScript();
- }
-
- InstanceScript* instance;
-
- uint32 Haste_Timer;
- uint32 SpellReflection_Timer;
- uint32 MortalWound_Timer;
- uint32 WingBuffet_Timer;
-
- void Reset()
- {
- Haste_Timer = 15000+rand()%8000;
- SpellReflection_Timer = 30000;
- MortalWound_Timer = 8000;
- WingBuffet_Timer = 25000+rand()%10000;
- }
-
- void EnterCombat(Unit* /*who*/)
- {
- Talk(SAY_AGGRO);
- }
-
- void KilledUnit(Unit* /*victim*/)
- {
- Talk(SAY_SLAY);
- }
-
- void JustDied(Unit* /*killer*/)
- {
- Talk(SAY_DEATH);
-
- if (instance)
- instance->SetData(TYPE_RIFT, SPECIAL);
- }
-
- void MoveInLineOfSight(Unit* who)
- {
- //Despawn Time Keeper
- if (who->GetTypeId() == TYPEID_UNIT && who->GetEntry() == C_TIME_KEEPER)
- {
- if (me->IsWithinDistInMap(who, 20.0f))
- {
- Talk(SAY_BANISH);
-
- me->DealDamage(who, who->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
- }
- }
-
- ScriptedAI::MoveInLineOfSight(who);
- }
-
- void UpdateAI(uint32 diff)
- {
- //Return since we have no target
- if (!UpdateVictim())
- return;
-
- //Attack Haste
- if (Haste_Timer <= diff)
- {
- DoCast(me, SPELL_HASTE);
- Haste_Timer = 20000+rand()%5000;
- } else Haste_Timer -= diff;
-
- //MortalWound_Timer
- if (MortalWound_Timer <= diff)
- {
- DoCast(me, SPELL_MORTAL_WOUND);
- MortalWound_Timer = 10000+rand()%10000;
- } else MortalWound_Timer -= diff;
-
- //Wing ruffet
- if (WingBuffet_Timer <= diff)
- {
- DoCast(me, SPELL_WING_BUFFET);
- WingBuffet_Timer = 20000+rand()%10000;
- } else WingBuffet_Timer -= diff;
-
- if (IsHeroic())
- {
- if (SpellReflection_Timer <= diff)
- {
- DoCast(me, SPELL_REFLECT);
- SpellReflection_Timer = 25000+rand()%10000;
- } else SpellReflection_Timer -= diff;
- }
-
- DoMeleeAttackIfReady();
- }
- };
-
-};
-
-void AddSC_boss_temporus()
-{
- new boss_temporus();
-}
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/dark_portal.h b/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/dark_portal.h
deleted file mode 100644
index 490ac4c2e50..00000000000
--- a/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/dark_portal.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
- * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef DEF_DARKPORTAL_H
-#define DEF_DARKPORTAL_H
-
-#define TYPE_MEDIVH 1
-#define TYPE_RIFT 2
-
-#define DATA_MEDIVH 10
-#define DATA_PORTAL_COUNT 11
-#define DATA_SHIELD 12
-
-#define WORLD_STATE_BM 2541
-#define WORLD_STATE_BM_SHIELD 2540
-#define WORLD_STATE_BM_RIFT 2784
-
-#define QUEST_OPENING_PORTAL 10297
-#define QUEST_MASTER_TOUCH 9836
-
-#define C_TIME_KEEPER 17918
-#define C_RKEEP 21104
-#define C_RLORD 17839
-#define C_DEJA 17879
-#define C_TEMPO 17880
-#define C_AEONUS 17881
-#define C_ASSAS 17835
-#define C_WHELP 21818
-#define C_CHRON 17892
-#define C_EXECU 18994
-#define C_VANQU 18995
-
-#endif
-
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_captain_skarloc.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_captain_skarloc.cpp
index adbc7a14745..3b51f6d0f8f 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_captain_skarloc.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_captain_skarloc.cpp
@@ -52,9 +52,9 @@ class boss_captain_skarloc : public CreatureScript
public:
boss_captain_skarloc() : CreatureScript("boss_captain_skarloc") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_captain_skarlocAI (creature);
+ return new boss_captain_skarlocAI(creature);
}
struct boss_captain_skarlocAI : public ScriptedAI
@@ -73,7 +73,7 @@ public:
uint32 DevotionAura_Timer;
uint32 Consecration_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
Holy_Light_Timer = urand(20000, 30000);
Cleanse_Timer = 10000;
@@ -83,19 +83,19 @@ public:
Consecration_Timer = 8000;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
//This is not correct. Should taunt Thrall before engage in combat
Talk(SAY_TAUNT1);
Talk(SAY_TAUNT2);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -103,7 +103,7 @@ public:
instance->SetData(TYPE_THRALL_PART1, DONE);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -126,7 +126,7 @@ public:
//Hammer of Justice
if (HammerOfJustice_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_HAMMER_OF_JUSTICE);
+ DoCastVictim(SPELL_HAMMER_OF_JUSTICE);
HammerOfJustice_Timer = 60000;
} else HammerOfJustice_Timer -= diff;
@@ -147,7 +147,7 @@ public:
//Consecration
if (Consecration_Timer <= diff)
{
- //DoCast(me->getVictim(), SPELL_CONSECRATION);
+ //DoCastVictim(SPELL_CONSECRATION);
Consecration_Timer = urand(5000, 10000);
} else Consecration_Timer -= diff;
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_epoch_hunter.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_epoch_hunter.cpp
index b48e0b376ea..3e650bf4fe9 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_epoch_hunter.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_epoch_hunter.cpp
@@ -50,9 +50,9 @@ class boss_epoch_hunter : public CreatureScript
public:
boss_epoch_hunter() : CreatureScript("boss_epoch_hunter") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_epoch_hunterAI (creature);
+ return new boss_epoch_hunterAI(creature);
}
struct boss_epoch_hunterAI : public ScriptedAI
@@ -69,7 +69,7 @@ public:
uint32 WingBuffet_Timer;
uint32 Mda_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
SandBreath_Timer = urand(8000, 16000);
ImpendingDeath_Timer = urand(25000, 30000);
@@ -77,17 +77,17 @@ public:
Mda_Timer = 40000;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -95,7 +95,7 @@ public:
instance->SetData(TYPE_THRALL_PART4, DONE);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -107,7 +107,7 @@ public:
if (me->IsNonMeleeSpellCasted(false))
me->InterruptNonMeleeSpells(false);
- DoCast(me->getVictim(), SPELL_SAND_BREATH);
+ DoCastVictim(SPELL_SAND_BREATH);
Talk(SAY_BREATH);
@@ -116,7 +116,7 @@ public:
if (ImpendingDeath_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_IMPENDING_DEATH);
+ DoCastVictim(SPELL_IMPENDING_DEATH);
ImpendingDeath_Timer = 25000+rand()%5000;
} else ImpendingDeath_Timer -= diff;
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_leutenant_drake.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_leutenant_drake.cpp
index a4de0409573..681ed8e447f 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_leutenant_drake.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_leutenant_drake.cpp
@@ -37,7 +37,7 @@ class go_barrel_old_hillsbrad : public GameObjectScript
public:
go_barrel_old_hillsbrad() : GameObjectScript("go_barrel_old_hillsbrad") { }
- bool OnGossipHello(Player* /*player*/, GameObject* go)
+ bool OnGossipHello(Player* /*player*/, GameObject* go) OVERRIDE
{
if (InstanceScript* instance = go->GetInstanceScript())
{
@@ -107,9 +107,9 @@ class boss_lieutenant_drake : public CreatureScript
public:
boss_lieutenant_drake() : CreatureScript("boss_lieutenant_drake") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_lieutenant_drakeAI (creature);
+ return new boss_lieutenant_drakeAI(creature);
}
struct boss_lieutenant_drakeAI : public ScriptedAI
@@ -124,7 +124,7 @@ public:
uint32 MortalStrike_Timer;
uint32 ExplodingShout_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
CanPatrol = true;
wpId = 0;
@@ -135,22 +135,22 @@ public:
ExplodingShout_Timer = 25000;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
/// @todo make this work
if (CanPatrol && wpId == 0)
@@ -166,7 +166,7 @@ public:
//Whirlwind
if (Whirlwind_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_WHIRLWIND);
+ DoCastVictim(SPELL_WHIRLWIND);
Whirlwind_Timer = 20000+rand()%5000;
} else Whirlwind_Timer -= diff;
@@ -174,7 +174,7 @@ public:
if (Fear_Timer <= diff)
{
Talk(SAY_SHOUT);
- DoCast(me->getVictim(), SPELL_FRIGHTENING_SHOUT);
+ DoCastVictim(SPELL_FRIGHTENING_SHOUT);
Fear_Timer = 25000+rand()%10000;
} else Fear_Timer -= diff;
@@ -182,7 +182,7 @@ public:
if (MortalStrike_Timer <= diff)
{
Talk(SAY_MORTAL);
- DoCast(me->getVictim(), SPELL_MORTAL_STRIKE);
+ DoCastVictim(SPELL_MORTAL_STRIKE);
MortalStrike_Timer = 20000+rand()%10000;
} else MortalStrike_Timer -= diff;
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/instance_old_hillsbrad.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/instance_old_hillsbrad.cpp
index 05ce40f500b..add2c57335a 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/instance_old_hillsbrad.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/instance_old_hillsbrad.cpp
@@ -45,7 +45,7 @@ class instance_old_hillsbrad : public InstanceMapScript
public:
instance_old_hillsbrad() : InstanceMapScript("instance_old_hillsbrad", 560) { }
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_old_hillsbrad_InstanceMapScript(map);
}
@@ -81,7 +81,7 @@ public:
{
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
{
- if (Player* player = itr->getSource())
+ if (Player* player = itr->GetSource())
return player;
}
}
@@ -98,7 +98,7 @@ public:
{
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
{
- if (Player* player = itr->getSource())
+ if (Player* player = itr->GetSource())
player->KilledMonsterCredit(LODGE_QUEST_TRIGGER, 0);
}
}
@@ -120,7 +120,7 @@ public:
}
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
Player* player = GetPlayerInMap();
@@ -203,7 +203,7 @@ public:
}
}
- uint32 GetData(uint32 data) const
+ uint32 GetData(uint32 data) const OVERRIDE
{
switch (data)
{
@@ -223,7 +223,7 @@ public:
return 0;
}
- uint64 GetData64(uint32 data) const
+ uint64 GetData64(uint32 data) const OVERRIDE
{
switch (data)
{
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp
index b9820790d47..ffa0eea14f6 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp
@@ -56,7 +56,7 @@ class npc_erozion : public CreatureScript
public:
npc_erozion() : CreatureScript("npc_erozion") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF+1)
@@ -76,9 +76,9 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
InstanceScript* instance = creature->GetInstanceScript();
@@ -140,23 +140,23 @@ enum ThrallOldHillsbrad
ENTRY_ARMORER = 18764,
ENTRY_SCARLOC = 17862,
- MOB_ENTRY_RIFLE = 17820,
- MOB_ENTRY_WARDEN = 17833,
- MOB_ENTRY_VETERAN = 17860,
- MOB_ENTRY_WATCHMAN = 17814,
- MOB_ENTRY_SENTRY = 17815,
+ NPC_RIFLE = 17820,
+ NPC_WARDEN = 17833,
+ NPC_VETERAN = 17860,
+ NPC_WATCHMAN = 17814,
+ NPC_SENTRY = 17815,
- MOB_ENTRY_BARN_GUARDSMAN = 18092,
- MOB_ENTRY_BARN_PROTECTOR = 18093,
- MOB_ENTRY_BARN_LOOKOUT = 18094,
+ NPC_BARN_GUARDSMAN = 18092,
+ NPC_BARN_PROTECTOR = 18093,
+ NPC_BARN_LOOKOUT = 18094,
- MOB_ENTRY_CHURCH_GUARDSMAN = 23175,
- MOB_ENTRY_CHURCH_PROTECTOR = 23179,
- MOB_ENTRY_CHURCH_LOOKOUT = 23177,
+ NPC_CHURCH_GUARDSMAN = 23175,
+ NPC_CHURCH_PROTECTOR = 23179,
+ NPC_CHURCH_LOOKOUT = 23177,
- MOB_ENTRY_INN_GUARDSMAN = 23176,
- MOB_ENTRY_INN_PROTECTOR = 23180,
- MOB_ENTRY_INN_LOOKOUT = 23178,
+ NPC_INN_GUARDSMAN = 23176,
+ NPC_INN_PROTECTOR = 23180,
+ NPC_INN_LOOKOUT = 23178,
SKARLOC_MOUNT = 18798,
SKARLOC_MOUNT_MODEL = 18223,
@@ -186,12 +186,12 @@ class npc_thrall_old_hillsbrad : public CreatureScript
public:
npc_thrall_old_hillsbrad() : CreatureScript("npc_thrall_old_hillsbrad") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_thrall_old_hillsbradAI(creature);
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
InstanceScript* instance = creature->GetInstanceScript();
@@ -241,9 +241,9 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
{
player->PrepareQuestMenu(creature->GetGUID());
player->SendPreparedQuest(creature->GetGUID());
@@ -289,7 +289,7 @@ public:
bool LowHp;
bool HadMount;
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
if (!instance)
return;
@@ -316,22 +316,22 @@ public:
SetRun();
break;
case 15:
- me->SummonCreature(MOB_ENTRY_RIFLE, 2200.28f, 137.37f, 87.93f, 5.07f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
- me->SummonCreature(MOB_ENTRY_WARDEN, 2197.44f, 131.83f, 87.93f, 0.78f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
- me->SummonCreature(MOB_ENTRY_VETERAN, 2203.62f, 135.40f, 87.93f, 3.70f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
- me->SummonCreature(MOB_ENTRY_VETERAN, 2200.75f, 130.13f, 87.93f, 1.48f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
+ me->SummonCreature(NPC_RIFLE, 2200.28f, 137.37f, 87.93f, 5.07f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
+ me->SummonCreature(NPC_WARDEN, 2197.44f, 131.83f, 87.93f, 0.78f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
+ me->SummonCreature(NPC_VETERAN, 2203.62f, 135.40f, 87.93f, 3.70f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
+ me->SummonCreature(NPC_VETERAN, 2200.75f, 130.13f, 87.93f, 1.48f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
break;
case 21:
- me->SummonCreature(MOB_ENTRY_RIFLE, 2135.80f, 154.01f, 67.45f, 4.98f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
- me->SummonCreature(MOB_ENTRY_WARDEN, 2144.36f, 151.87f, 67.74f, 4.46f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
- me->SummonCreature(MOB_ENTRY_VETERAN, 2142.12f, 154.41f, 67.12f, 4.56f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
- me->SummonCreature(MOB_ENTRY_VETERAN, 2138.08f, 155.38f, 67.24f, 4.60f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
+ me->SummonCreature(NPC_RIFLE, 2135.80f, 154.01f, 67.45f, 4.98f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
+ me->SummonCreature(NPC_WARDEN, 2144.36f, 151.87f, 67.74f, 4.46f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
+ me->SummonCreature(NPC_VETERAN, 2142.12f, 154.41f, 67.12f, 4.56f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
+ me->SummonCreature(NPC_VETERAN, 2138.08f, 155.38f, 67.24f, 4.60f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
break;
case 25:
- me->SummonCreature(MOB_ENTRY_RIFLE, 2102.98f, 192.17f, 65.24f, 6.02f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
- me->SummonCreature(MOB_ENTRY_WARDEN, 2108.48f, 198.75f, 65.18f, 5.15f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
- me->SummonCreature(MOB_ENTRY_VETERAN, 2106.11f, 197.29f, 65.18f, 5.63f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
- me->SummonCreature(MOB_ENTRY_VETERAN, 2104.18f, 194.82f, 65.18f, 5.75f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
+ me->SummonCreature(NPC_RIFLE, 2102.98f, 192.17f, 65.24f, 6.02f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
+ me->SummonCreature(NPC_WARDEN, 2108.48f, 198.75f, 65.18f, 5.15f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
+ me->SummonCreature(NPC_VETERAN, 2106.11f, 197.29f, 65.18f, 5.63f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
+ me->SummonCreature(NPC_VETERAN, 2104.18f, 194.82f, 65.18f, 5.75f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
break;
case 29:
Talk(SAY_TH_SKARLOC_MEET);
@@ -350,9 +350,9 @@ public:
break;
case 37:
//possibly regular patrollers? If so, remove this and let database handle them
- me->SummonCreature(MOB_ENTRY_WATCHMAN, 2124.26f, 522.16f, 56.87f, 3.99f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
- me->SummonCreature(MOB_ENTRY_WATCHMAN, 2121.69f, 525.37f, 57.11f, 4.01f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
- me->SummonCreature(MOB_ENTRY_SENTRY, 2124.65f, 524.55f, 56.63f, 3.98f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
+ me->SummonCreature(NPC_WATCHMAN, 2124.26f, 522.16f, 56.87f, 3.99f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
+ me->SummonCreature(NPC_WATCHMAN, 2121.69f, 525.37f, 57.11f, 4.01f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
+ me->SummonCreature(NPC_SENTRY, 2124.65f, 524.55f, 56.63f, 3.98f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
break;
case 59:
me->SummonCreature(SKARLOC_MOUNT, 2488.64f, 625.77f, 58.26f, 4.71f, TEMPSUMMON_TIMED_DESPAWN, 10000);
@@ -372,10 +372,10 @@ public:
SetRun(false);
break;
case 68:
- me->SummonCreature(MOB_ENTRY_BARN_PROTECTOR, 2500.22f, 692.60f, 55.50f, 2.84f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
- me->SummonCreature(MOB_ENTRY_BARN_LOOKOUT, 2500.13f, 696.55f, 55.51f, 3.38f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
- me->SummonCreature(MOB_ENTRY_BARN_GUARDSMAN, 2500.55f, 693.64f, 55.50f, 3.14f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
- me->SummonCreature(MOB_ENTRY_BARN_GUARDSMAN, 2500.94f, 695.81f, 55.50f, 3.14f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
+ me->SummonCreature(NPC_BARN_PROTECTOR, 2500.22f, 692.60f, 55.50f, 2.84f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
+ me->SummonCreature(NPC_BARN_LOOKOUT, 2500.13f, 696.55f, 55.51f, 3.38f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
+ me->SummonCreature(NPC_BARN_GUARDSMAN, 2500.55f, 693.64f, 55.50f, 3.14f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
+ me->SummonCreature(NPC_BARN_GUARDSMAN, 2500.94f, 695.81f, 55.50f, 3.14f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
break;
case 71:
SetRun();
@@ -384,10 +384,10 @@ public:
SetRun(false);
break;
case 83:
- me->SummonCreature(MOB_ENTRY_CHURCH_PROTECTOR, 2627.33f, 646.82f, 56.03f, 4.28f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 5000);
- me->SummonCreature(MOB_ENTRY_CHURCH_LOOKOUT, 2624.14f, 648.03f, 56.03f, 4.50f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 5000);
- me->SummonCreature(MOB_ENTRY_CHURCH_GUARDSMAN, 2625.32f, 649.60f, 56.03f, 4.38f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 5000);
- me->SummonCreature(MOB_ENTRY_CHURCH_GUARDSMAN, 2627.22f, 649.00f, 56.03f, 4.34f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 5000);
+ me->SummonCreature(NPC_CHURCH_PROTECTOR, 2627.33f, 646.82f, 56.03f, 4.28f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 5000);
+ me->SummonCreature(NPC_CHURCH_LOOKOUT, 2624.14f, 648.03f, 56.03f, 4.50f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 5000);
+ me->SummonCreature(NPC_CHURCH_GUARDSMAN, 2625.32f, 649.60f, 56.03f, 4.38f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 5000);
+ me->SummonCreature(NPC_CHURCH_GUARDSMAN, 2627.22f, 649.00f, 56.03f, 4.34f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 5000);
break;
case 84:
Talk(SAY_TH_CHURCH_END);
@@ -398,10 +398,10 @@ public:
SetRun(false);
break;
case 93:
- me->SummonCreature(MOB_ENTRY_INN_PROTECTOR, 2652.71f, 660.31f, 61.93f, 1.67f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
- me->SummonCreature(MOB_ENTRY_INN_LOOKOUT, 2648.96f, 662.59f, 61.93f, 0.79f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
- me->SummonCreature(MOB_ENTRY_INN_GUARDSMAN, 2657.36f, 662.34f, 61.93f, 2.68f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
- me->SummonCreature(MOB_ENTRY_INN_GUARDSMAN, 2656.39f, 659.77f, 61.93f, 2.61f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
+ me->SummonCreature(NPC_INN_PROTECTOR, 2652.71f, 660.31f, 61.93f, 1.67f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
+ me->SummonCreature(NPC_INN_LOOKOUT, 2648.96f, 662.59f, 61.93f, 0.79f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
+ me->SummonCreature(NPC_INN_GUARDSMAN, 2657.36f, 662.34f, 61.93f, 2.68f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
+ me->SummonCreature(NPC_INN_GUARDSMAN, 2656.39f, 659.77f, 61.93f, 2.61f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
break;
case 94:
if (uint64 TarethaGUID = instance->GetData64(DATA_TARETHA))
@@ -442,7 +442,7 @@ public:
{
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
{
- if (Player* player = itr->getSource())
+ if (Player* player = itr->GetSource())
player->KilledMonsterCredit(20156, 0);
}
}
@@ -458,7 +458,7 @@ public:
}
}
- void Reset()
+ void Reset() OVERRIDE
{
LowHp = false;
@@ -493,7 +493,7 @@ public:
me->Dismount();
me->SetSpeed(MOVE_RUN, SPEED_RUN);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_TH_RANDOM_AGGRO);
if (me->IsMounted())
@@ -503,14 +503,14 @@ public:
}
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
switch (summoned->GetEntry())
{
/// @todo make Scarloc start into event instead, and not start attack directly
- case MOB_ENTRY_BARN_GUARDSMAN:
- case MOB_ENTRY_BARN_PROTECTOR:
- case MOB_ENTRY_BARN_LOOKOUT:
+ case NPC_BARN_GUARDSMAN:
+ case NPC_BARN_PROTECTOR:
+ case NPC_BARN_LOOKOUT:
case SKARLOC_MOUNT:
case EROZION_ENTRY:
break;
@@ -520,11 +520,11 @@ public:
}
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_TH_RANDOM_KILL);
}
- void JustDied(Unit* slayer)
+ void JustDied(Unit* slayer) OVERRIDE
{
if (instance)
instance->SetData(TYPE_THRALL_EVENT, FAIL);
@@ -536,7 +536,7 @@ public:
Talk(SAY_TH_RANDOM_DIE);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
npc_escortAI::UpdateAI(diff);
@@ -571,12 +571,12 @@ class npc_taretha : public CreatureScript
public:
npc_taretha() : CreatureScript("npc_taretha") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_tarethaAI(creature);
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
InstanceScript* instance = creature->GetInstanceScript();
@@ -606,7 +606,7 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
InstanceScript* instance = creature->GetInstanceScript();
if (instance && instance->GetData(TYPE_THRALL_PART3) == DONE && instance->GetData(TYPE_THRALL_PART4) == NOT_STARTED)
@@ -626,7 +626,7 @@ public:
InstanceScript* instance;
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
switch (waypointId)
{
@@ -639,10 +639,10 @@ public:
}
}
- void Reset() {}
- void EnterCombat(Unit* /*who*/) {}
+ void Reset() OVERRIDE {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
npc_escortAI::UpdateAI(diff);
}
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.h b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.h
index 056187d202e..7d8b06f1b02 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.h
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.h
@@ -19,15 +19,25 @@
#ifndef DEF_OLD_HILLSBRAD_H
#define DEF_OLD_HILLSBRAD_H
-#define TYPE_BARREL_DIVERSION 1
-#define TYPE_THRALL_EVENT 2
-#define TYPE_THRALL_PART1 3
-#define TYPE_THRALL_PART2 4
-#define TYPE_THRALL_PART3 5
-#define TYPE_THRALL_PART4 6
-#define DATA_THRALL 7
-#define DATA_TARETHA 8
-#define DATA_EPOCH 9
-#define WORLD_STATE_OH 2436
+enum DataTypes
+{
+ TYPE_BARREL_DIVERSION = 1,
+ TYPE_THRALL_EVENT = 2,
+ TYPE_THRALL_PART1 = 3,
+ TYPE_THRALL_PART2 = 4,
+ TYPE_THRALL_PART3 = 5,
+ TYPE_THRALL_PART4 = 6,
+
+ DATA_THRALL = 7,
+ DATA_TARETHA = 8,
+ DATA_EPOCH = 9
+
+};
+
+enum WorldStateIds
+{
+ WORLD_STATE_OH = 2436
+};
+
#endif
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/boss_aeonus.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_aeonus.cpp
index 7a18210791c..0d67426d039 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/boss_aeonus.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_aeonus.cpp
@@ -16,18 +16,18 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-/* ScriptData
-SDName: Boss_Aeonus
-SD%Complete: 80
-SDComment: Some spells not implemented
-SDCategory: Caverns of Time, The Dark Portal
-EndScriptData */
+/*
+Name: Boss_Aeonus
+%Complete: 80
+Comment: Some spells not implemented
+Category: Caverns of Time, The Dark Portal
+*/
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
-#include "dark_portal.h"
+#include "the_black_morass.h"
-enum eEnums
+enum Enums
{
SAY_ENTER = 0,
SAY_AGGRO = 1,
@@ -43,45 +43,38 @@ enum eEnums
H_SPELL_SAND_BREATH = 39049
};
+enum Events
+{
+ EVENT_SANDBREATH = 1,
+ EVENT_TIMESTOP = 2,
+ EVENT_FRENZY = 3
+};
+
class boss_aeonus : public CreatureScript
{
public:
boss_aeonus() : CreatureScript("boss_aeonus") { }
- CreatureAI* GetAI(Creature* creature) const
+ struct boss_aeonusAI : public BossAI
{
- return new boss_aeonusAI (creature);
- }
+ boss_aeonusAI(Creature* creature) : BossAI(creature, TYPE_AEONUS) { }
- struct boss_aeonusAI : public ScriptedAI
- {
- boss_aeonusAI(Creature* creature) : ScriptedAI(creature)
- {
- instance = creature->GetInstanceScript();
- }
-
- InstanceScript* instance;
+ void Reset() OVERRIDE {}
- uint32 SandBreath_Timer;
- uint32 TimeStop_Timer;
- uint32 Frenzy_Timer;
-
- void Reset()
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
- SandBreath_Timer = 15000+rand()%15000;
- TimeStop_Timer = 10000+rand()%5000;
- Frenzy_Timer = 30000+rand()%15000;
- }
+ events.ScheduleEvent(EVENT_SANDBREATH, urand(15000, 30000));
+ events.ScheduleEvent(EVENT_TIMESTOP, urand(10000, 15000));
+ events.ScheduleEvent(EVENT_FRENZY, urand(30000, 45000));
- void EnterCombat(Unit* /*who*/)
- {
Talk(SAY_AGGRO);
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
//Despawn Time Keeper
- if (who->GetTypeId() == TYPEID_UNIT && who->GetEntry() == C_TIME_KEEPER)
+ if (who->GetTypeId() == TYPEID_UNIT && who->GetEntry() == NPC_TIME_KEEPER)
{
if (me->IsWithinDistInMap(who, 20.0f))
{
@@ -93,54 +86,62 @@ public:
ScriptedAI::MoveInLineOfSight(who);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
if (instance)
{
instance->SetData(TYPE_RIFT, DONE);
- instance->SetData(TYPE_MEDIVH, DONE);//FIXME: later should be removed
+ instance->SetData(TYPE_MEDIVH, DONE); // FIXME: later should be removed
}
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
return;
- //Sand Breath
- if (SandBreath_Timer <= diff)
- {
- DoCast(me->getVictim(), SPELL_SAND_BREATH);
- SandBreath_Timer = 15000+rand()%10000;
- } else SandBreath_Timer -= diff;
-
- //Time Stop
- if (TimeStop_Timer <= diff)
- {
- DoCast(me->getVictim(), SPELL_TIME_STOP);
- TimeStop_Timer = 20000+rand()%15000;
- } else TimeStop_Timer -= diff;
+ events.Update(diff);
- //Frenzy
- if (Frenzy_Timer <= diff)
- {
- Talk(EMOTE_FRENZY);
- DoCast(me, SPELL_ENRAGE);
- Frenzy_Timer = 20000+rand()%15000;
- } else Frenzy_Timer -= diff;
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
- DoMeleeAttackIfReady();
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_SANDBREATH:
+ DoCastVictim(SPELL_SAND_BREATH);
+ events.ScheduleEvent(EVENT_SANDBREATH, urand(15000, 25000));
+ break;
+ case EVENT_TIMESTOP:
+ DoCastVictim(SPELL_TIME_STOP);
+ events.ScheduleEvent(EVENT_TIMESTOP, urand(20000, 35000));
+ break;
+ case EVENT_FRENZY:
+ Talk(EMOTE_FRENZY);
+ DoCast(me, SPELL_ENRAGE);
+ events.ScheduleEvent(EVENT_FRENZY, urand(20000, 35000));
+ break;
+ default:
+ break;
+ }
+ }
+ DoMeleeAttackIfReady();
}
};
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new boss_aeonusAI(creature);
+ }
};
void AddSC_boss_aeonus()
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_chrono_lord_deja.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_chrono_lord_deja.cpp
new file mode 100644
index 00000000000..a181c0fe43e
--- /dev/null
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_chrono_lord_deja.cpp
@@ -0,0 +1,155 @@
+/*
+ * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
+ * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+Name: Boss_Chrono_Lord_Deja
+%Complete: 65
+Comment: All abilities not implemented
+Category: Caverns of Time, The Black Morass
+*/
+
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "the_black_morass.h"
+
+enum Enums
+{
+ SAY_ENTER = 0,
+ SAY_AGGRO = 1,
+ SAY_BANISH = 2,
+ SAY_SLAY = 3,
+ SAY_DEATH = 4,
+
+ SPELL_ARCANE_BLAST = 31457,
+ H_SPELL_ARCANE_BLAST = 38538,
+ SPELL_ARCANE_DISCHARGE = 31472,
+ H_SPELL_ARCANE_DISCHARGE = 38539,
+ SPELL_TIME_LAPSE = 31467,
+ SPELL_ATTRACTION = 38540 //Not Implemented (Heroic mode)
+};
+
+enum Events
+{
+ EVENT_ARCANE_BLAST = 1,
+ EVENT_TIME_LAPSE = 2,
+ EVENT_ARCANE_DISCHARGE = 3,
+ EVENT_ATTRACTION = 4
+};
+
+class boss_chrono_lord_deja : public CreatureScript
+{
+public:
+ boss_chrono_lord_deja() : CreatureScript("boss_chrono_lord_deja") { }
+
+ struct boss_chrono_lord_dejaAI : public BossAI
+ {
+ boss_chrono_lord_dejaAI(Creature* creature) : BossAI(creature, TYPE_CRONO_LORD_DEJA) { }
+
+ void Reset() OVERRIDE {}
+
+ void EnterCombat(Unit* /*who*/) OVERRIDE
+ {
+ events.ScheduleEvent(EVENT_ARCANE_BLAST, urand(18000, 23000));
+ events.ScheduleEvent(EVENT_TIME_LAPSE, urand(10000, 15000));
+ events.ScheduleEvent(EVENT_ARCANE_DISCHARGE, urand(20000, 30000));
+ if (IsHeroic())
+ events.ScheduleEvent(EVENT_ATTRACTION, urand(25000, 35000));
+
+ Talk(SAY_AGGRO);
+ }
+
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
+ {
+ //Despawn Time Keeper
+ if (who->GetTypeId() == TYPEID_UNIT && who->GetEntry() == NPC_TIME_KEEPER)
+ {
+ if (me->IsWithinDistInMap(who, 20.0f))
+ {
+ Talk(SAY_BANISH);
+ me->DealDamage(who, who->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
+ }
+ }
+
+ ScriptedAI::MoveInLineOfSight(who);
+ }
+
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
+ {
+ Talk(SAY_SLAY);
+ }
+
+ void JustDied(Unit* /*killer*/) OVERRIDE
+ {
+ Talk(SAY_DEATH);
+
+ if (instance)
+ instance->SetData(TYPE_RIFT, SPECIAL);
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ if (!UpdateVictim())
+ return;
+
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
+
+ events.Update(diff);
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_ARCANE_BLAST:
+ DoCastVictim(SPELL_ARCANE_BLAST);
+ events.ScheduleEvent(EVENT_ARCANE_BLAST, urand(15000, 25000));
+ break;
+ case EVENT_TIME_LAPSE:
+ Talk(SAY_BANISH);
+ DoCast(me, SPELL_TIME_LAPSE);
+ events.ScheduleEvent(EVENT_TIME_LAPSE, urand(15000, 25000));
+ break;
+ case EVENT_ARCANE_DISCHARGE:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
+ DoCast(target, SPELL_ARCANE_DISCHARGE);
+ events.ScheduleEvent(EVENT_ARCANE_DISCHARGE, urand(20000, 30000));
+ break;
+ case EVENT_ATTRACTION: // Only in Heroic
+ DoCast(me, SPELL_ATTRACTION);
+ events.ScheduleEvent(EVENT_ATTRACTION, urand(25000, 35000));
+ break;
+ default:
+ break;
+ }
+ }
+
+ DoMeleeAttackIfReady();
+ }
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new boss_chrono_lord_dejaAI(creature);
+ }
+};
+
+void AddSC_boss_chrono_lord_deja()
+{
+ new boss_chrono_lord_deja();
+}
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_temporus.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_temporus.cpp
new file mode 100644
index 00000000000..4bd06546a88
--- /dev/null
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_temporus.cpp
@@ -0,0 +1,153 @@
+/*
+ * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
+ * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+Name: Boss_Temporus
+%Complete: 75
+Comment: More abilities need to be implemented
+Category: Caverns of Time, The Black Morass
+*/
+
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "the_black_morass.h"
+
+enum Enums
+{
+ SAY_ENTER = 0,
+ SAY_AGGRO = 1,
+ SAY_BANISH = 2,
+ SAY_SLAY = 3,
+ SAY_DEATH = 4,
+
+ SPELL_HASTE = 31458,
+ SPELL_MORTAL_WOUND = 31464,
+ SPELL_WING_BUFFET = 31475,
+ H_SPELL_WING_BUFFET = 38593,
+ SPELL_REFLECT = 38592 //Not Implemented (Heroic mod)
+};
+
+enum Events
+{
+ EVENT_HASTE = 1,
+ EVENT_MORTAL_WOUND = 2,
+ EVENT_WING_BUFFET = 3,
+ EVENT_SPELL_REFLECTION = 4
+};
+
+class boss_temporus : public CreatureScript
+{
+public:
+ boss_temporus() : CreatureScript("boss_temporus") { }
+
+ struct boss_temporusAI : public BossAI
+ {
+ boss_temporusAI(Creature* creature) : BossAI(creature, TYPE_TEMPORUS) { }
+
+ void Reset() OVERRIDE {}
+
+ void EnterCombat(Unit* /*who*/) OVERRIDE
+ {
+ events.ScheduleEvent(EVENT_HASTE, urand(15000, 23000));
+ events.ScheduleEvent(EVENT_MORTAL_WOUND, 8000);
+ events.ScheduleEvent(EVENT_WING_BUFFET, urand(25000, 35000));
+ if (IsHeroic())
+ events.ScheduleEvent(EVENT_SPELL_REFLECTION, 30000);
+
+ Talk(SAY_AGGRO);
+ }
+
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
+ {
+ Talk(SAY_SLAY);
+ }
+
+ void JustDied(Unit* /*killer*/) OVERRIDE
+ {
+ Talk(SAY_DEATH);
+
+ if (instance)
+ instance->SetData(TYPE_RIFT, SPECIAL);
+ }
+
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
+ {
+ //Despawn Time Keeper
+ if (who->GetTypeId() == TYPEID_UNIT && who->GetEntry() == NPC_TIME_KEEPER)
+ {
+ if (me->IsWithinDistInMap(who, 20.0f))
+ {
+ Talk(SAY_BANISH);
+
+ me->DealDamage(who, who->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
+ }
+ }
+
+ ScriptedAI::MoveInLineOfSight(who);
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ //Return since we have no target
+ if (!UpdateVictim())
+ return;
+
+ events.Update(diff);
+
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_HASTE:
+ DoCast(me, SPELL_HASTE);
+ events.ScheduleEvent(EVENT_HASTE, urand(20000, 25000));
+ break;
+ case EVENT_MORTAL_WOUND:
+ DoCast(me, SPELL_MORTAL_WOUND);
+ events.ScheduleEvent(EVENT_MORTAL_WOUND, urand(10000, 20000));
+ break;
+ case EVENT_WING_BUFFET:
+ DoCast(me, SPELL_WING_BUFFET);
+ events.ScheduleEvent(EVENT_WING_BUFFET, urand(20000, 30000));
+ break;
+ case EVENT_SPELL_REFLECTION: // Only in Heroic
+ DoCast(me, SPELL_REFLECT);
+ events.ScheduleEvent(EVENT_SPELL_REFLECTION, urand(25000, 35000));
+ break;
+ default:
+ break;
+ }
+ }
+ DoMeleeAttackIfReady();
+ }
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new boss_temporusAI(creature);
+ }
+};
+
+void AddSC_boss_temporus()
+{
+ new boss_temporus();
+}
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/instance_dark_portal.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/instance_the_black_morass.cpp
index 37b39b3a938..003207eeecf 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/instance_dark_portal.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/instance_the_black_morass.cpp
@@ -16,30 +16,28 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-/* ScriptData
-SDName: Instance_Dark_Portal
-SD%Complete: 50
-SDComment: Quest support: 9836, 10297. Currently in progress.
-SDCategory: Caverns of Time, The Dark Portal
-EndScriptData */
+/*
+Name: Instance_The_Black_Morass
+%Complete: 50
+Comment: Quest support: 9836, 10297. Currently in progress.
+Category: Caverns of Time, The Black Morass
+*/
#include "ScriptMgr.h"
#include "InstanceScript.h"
-#include "dark_portal.h"
+#include "the_black_morass.h"
#include "Player.h"
#include "TemporarySummon.h"
#include "SpellInfo.h"
+#include "ScriptedCreature.h"
-#define MAX_ENCOUNTER 2
-
-#define C_MEDIVH 15608
-#define C_TIME_RIFT 17838
-
-#define SPELL_RIFT_CHANNEL 31387
-
-#define RIFT_BOSS 1
+enum Misc
+{
+ SPELL_RIFT_CHANNEL = 31387,
+ RIFT_BOSS = 1
+};
-inline uint32 RandRiftBoss() { return ((rand()%2) ? C_RKEEP : C_RLORD); }
+inline uint32 RandRiftBoss() { return ((rand()%2) ? NPC_RIFT_KEEPER : NPC_RIFT_LORD); }
float PortalLocation[4][4]=
{
@@ -57,45 +55,46 @@ struct Wave
static Wave RiftWaves[]=
{
- {RIFT_BOSS, 0},
- {C_DEJA, 0},
- {RIFT_BOSS, 120000},
- {C_TEMPO, 140000},
- {RIFT_BOSS, 120000},
- {C_AEONUS, 0}
+ { RIFT_BOSS, 0 },
+ { NPC_CRONO_LORD_DEJA, 0 },
+ { RIFT_BOSS, 120000 },
+ { NPC_TEMPORUS, 140000 },
+ { RIFT_BOSS, 120000 },
+ { NPC_AEONUS, 0 }
+};
+
+enum EventIds
+{
+ EVENT_NEXT_PORTAL = 1
};
-class instance_dark_portal : public InstanceMapScript
+class instance_the_black_morass : public InstanceMapScript
{
public:
- instance_dark_portal() : InstanceMapScript("instance_dark_portal", 269) { }
+ instance_the_black_morass() : InstanceMapScript("instance_the_black_morass", 269) { }
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
- return new instance_dark_portal_InstanceMapScript(map);
+ return new instance_the_black_morass_InstanceMapScript(map);
}
- struct instance_dark_portal_InstanceMapScript : public InstanceScript
+ struct instance_the_black_morass_InstanceMapScript : public InstanceScript
{
- instance_dark_portal_InstanceMapScript(Map* map) : InstanceScript(map)
- {
- }
+ instance_the_black_morass_InstanceMapScript(Map* map) : InstanceScript(map) { }
- uint32 m_auiEncounter[MAX_ENCOUNTER];
+ uint32 m_auiEncounter[EncounterCount];
uint32 mRiftPortalCount;
uint32 mShieldPercent;
- uint8 mRiftWaveCount;
- uint8 mRiftWaveId;
-
- uint32 NextPortal_Timer;
+ uint8 mRiftWaveCount;
+ uint8 mRiftWaveId;
- uint64 MedivhGUID;
- uint8 CurrentRiftId;
+ uint64 _medivhGUID;
+ uint8 _currentRiftId;
void Initialize()
{
- MedivhGUID = 0;
+ _medivhGUID = 0;
Clear();
}
@@ -108,9 +107,7 @@ public:
mRiftWaveCount = 0;
mRiftWaveId = 0;
- CurrentRiftId = 0;
-
- NextPortal_Timer = 0;
+ _currentRiftId = 0;
}
void InitWorldState(bool Enable = true)
@@ -138,8 +135,8 @@ public:
void OnCreatureCreate(Creature* creature)
{
- if (creature->GetEntry() == C_MEDIVH)
- MedivhGUID = creature->GetGUID();
+ if (creature->GetEntry() == NPC_MEDIVH)
+ _medivhGUID = creature->GetGUID();
}
//what other conditions to check?
@@ -168,7 +165,7 @@ public:
}
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
switch (type)
{
@@ -181,11 +178,11 @@ public:
if (!mShieldPercent)
{
- if (Creature* pMedivh = instance->GetCreature(MedivhGUID))
+ if (Creature* medivh = instance->GetCreature(_medivhGUID))
{
- if (pMedivh->isAlive())
+ if (medivh->IsAlive())
{
- pMedivh->DealDamage(pMedivh, pMedivh->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
+ medivh->DealDamage(medivh, medivh->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
m_auiEncounter[0] = FAIL;
m_auiEncounter[1] = NOT_STARTED;
}
@@ -196,23 +193,23 @@ public:
{
if (data == IN_PROGRESS)
{
- TC_LOG_DEBUG(LOG_FILTER_TSCR, "Instance Dark Portal: Starting event.");
+ TC_LOG_DEBUG(LOG_FILTER_TSCR, "Instance The Black Morass: Starting event.");
InitWorldState();
m_auiEncounter[1] = IN_PROGRESS;
- NextPortal_Timer = 15000;
+ Events.ScheduleEvent(EVENT_NEXT_PORTAL, 15000);
}
if (data == DONE)
{
//this may be completed further out in the post-event
- TC_LOG_DEBUG(LOG_FILTER_TSCR, "Instance Dark Portal: Event completed.");
+ TC_LOG_DEBUG(LOG_FILTER_TSCR, "Instance The Black Morass: Event completed.");
Map::PlayerList const& players = instance->GetPlayers();
if (!players.isEmpty())
{
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
{
- if (Player* player = itr->getSource())
+ if (Player* player = itr->GetSource())
{
if (player->GetQuestStatus(QUEST_OPENING_PORTAL) == QUEST_STATUS_INCOMPLETE)
player->AreaExploredOrEventHappens(QUEST_OPENING_PORTAL);
@@ -231,7 +228,7 @@ public:
if (data == SPECIAL)
{
if (mRiftPortalCount < 7)
- NextPortal_Timer = 5000;
+ Events.ScheduleEvent(EVENT_NEXT_PORTAL, 5000);
}
else
m_auiEncounter[1] = data;
@@ -239,7 +236,7 @@ public:
}
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -255,10 +252,10 @@ public:
return 0;
}
- uint64 GetData64(uint32 data) const
+ uint64 GetData64(uint32 data) const OVERRIDE
{
if (data == DATA_MEDIVH)
- return MedivhGUID;
+ return _medivhGUID;
return 0;
}
@@ -270,7 +267,7 @@ public:
if (entry == RIFT_BOSS)
entry = RandRiftBoss();
- TC_LOG_DEBUG(LOG_FILTER_TSCR, "Instance Dark Portal: Summoning rift boss entry %u.", entry);
+ TC_LOG_DEBUG(LOG_FILTER_TSCR, "Instance The Black Morass: Summoning rift boss entry %u.", entry);
Position pos;
me->GetRandomNearPosition(pos, 10.0f);
@@ -281,24 +278,24 @@ public:
if (Creature* summon = me->SummonCreature(entry, pos, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 600000))
return summon;
- TC_LOG_DEBUG(LOG_FILTER_TSCR, "Instance Dark Portal: What just happened there? No boss, no loot, no fun...");
+ TC_LOG_DEBUG(LOG_FILTER_TSCR, "Instance The Black Morass: What just happened there? No boss, no loot, no fun...");
return NULL;
}
void DoSpawnPortal()
{
- if (Creature* pMedivh = instance->GetCreature(MedivhGUID))
+ if (Creature* medivh = instance->GetCreature(_medivhGUID))
{
uint8 tmp = urand(0, 2);
- if (tmp >= CurrentRiftId)
+ if (tmp >= _currentRiftId)
++tmp;
- TC_LOG_DEBUG(LOG_FILTER_TSCR, "Instance Dark Portal: Creating Time Rift at locationId %i (old locationId was %u).", tmp, CurrentRiftId);
+ TC_LOG_DEBUG(LOG_FILTER_TSCR, "Instance The Black Morass: Creating Time Rift at locationId %i (old locationId was %u).", tmp, _currentRiftId);
- CurrentRiftId = tmp;
+ _currentRiftId = tmp;
- Creature* temp = pMedivh->SummonCreature(C_TIME_RIFT,
+ Creature* temp = medivh->SummonCreature(NPC_TIME_RIFT,
PortalLocation[tmp][0], PortalLocation[tmp][1], PortalLocation[tmp][2], PortalLocation[tmp][3],
TEMPSUMMON_CORPSE_DESPAWN, 0);
if (temp)
@@ -306,14 +303,14 @@ public:
temp->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
temp->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- if (Creature* pBoss = SummonedPortalBoss(temp))
+ if (Creature* boss = SummonedPortalBoss(temp))
{
- if (pBoss->GetEntry() == C_AEONUS)
- pBoss->AddThreat(pMedivh, 0.0f);
+ if (boss->GetEntry() == NPC_AEONUS)
+ boss->AddThreat(medivh, 0.0f);
else
{
- pBoss->AddThreat(temp, 0.0f);
- temp->CastSpell(pBoss, SPELL_RIFT_CHANNEL, false);
+ boss->AddThreat(temp, 0.0f);
+ temp->CastSpell(boss, SPELL_RIFT_CHANNEL, false);
}
}
}
@@ -332,24 +329,24 @@ public:
return;
}
- if (NextPortal_Timer)
- {
- if (NextPortal_Timer <= diff)
- {
- ++mRiftPortalCount;
-
- DoUpdateWorldState(WORLD_STATE_BM_RIFT, mRiftPortalCount);
+ Events.Update(diff);
- DoSpawnPortal();
- NextPortal_Timer = RiftWaves[GetRiftWaveId()].NextPortalTime;
- } else NextPortal_Timer -= diff;
+ if (Events.ExecuteEvent() == EVENT_NEXT_PORTAL)
+ {
+ ++mRiftPortalCount;
+ DoUpdateWorldState(WORLD_STATE_BM_RIFT, mRiftPortalCount);
+ DoSpawnPortal();
+ Events.ScheduleEvent(EVENT_NEXT_PORTAL, RiftWaves[GetRiftWaveId()].NextPortalTime);
}
}
+
+ protected:
+ EventMap Events;
};
};
-void AddSC_instance_dark_portal()
+void AddSC_instance_the_black_morass()
{
- new instance_dark_portal();
+ new instance_the_black_morass();
}
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/dark_portal.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.cpp
index 8159b53741e..08adcc9ad6d 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/dark_portal.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.cpp
@@ -16,12 +16,12 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-/* ScriptData
-SDName: Dark_Portal
-SD%Complete: 30
-SDComment: Misc NPC's and mobs for instance. Most here far from complete.
-SDCategory: Caverns of Time, The Dark Portal
-EndScriptData */
+/*
+Name: The_Black_Morass
+%Complete: 30
+Comment: Misc NPC's and mobs for instance. Most here far from complete.
+Category: Caverns of Time, The Black Morass
+*/
/* ContentData
npc_medivh_bm
@@ -32,7 +32,7 @@ EndContentData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
-#include "dark_portal.h"
+#include "the_black_morass.h"
#include "Player.h"
#include "SpellInfo.h"
@@ -68,9 +68,9 @@ class npc_medivh_bm : public CreatureScript
public:
npc_medivh_bm() : CreatureScript("npc_medivh_bm") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_medivh_bmAI (creature);
+ return new npc_medivh_bmAI(creature);
}
struct npc_medivh_bmAI : public ScriptedAI
@@ -89,7 +89,7 @@ public:
bool Life50;
bool Life25;
- void Reset()
+ void Reset() OVERRIDE
{
SpellCorrupt_Timer = 0;
@@ -104,7 +104,8 @@ public:
DoCast(me, SPELL_PORTAL_RUNE, true);
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (!instance)
return;
@@ -125,12 +126,12 @@ public:
return;
uint32 entry = who->GetEntry();
- if (entry == C_ASSAS || entry == C_WHELP || entry == C_CHRON || entry == C_EXECU || entry == C_VANQU)
+ if (entry == NPC_INFINITE_ASSASIN || entry == NPC_INFINITE_WHELP || entry == NPC_INFINITE_CRONOMANCER || entry == NPC_INFINITE_EXECUTIONER || entry == NPC_INFINITE_VANQUISHER)
{
who->StopMoving();
who->CastSpell(me, SPELL_CORRUPT, false);
}
- else if (entry == C_AEONUS)
+ else if (entry == NPC_AEONUS)
{
who->StopMoving();
who->CastSpell(me, SPELL_CORRUPT_AEONUS, false);
@@ -138,7 +139,7 @@ public:
}
}
- void AttackStart(Unit* /*who*/)
+ void AttackStart(Unit* /*who*/) OVERRIDE
{
//if (instance && instance->GetData(TYPE_MEDIVH) == IN_PROGRESS)
//return;
@@ -146,9 +147,9 @@ public:
//ScriptedAI::AttackStart(who);
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void SpellHit(Unit* /*caster*/, const SpellInfo* spell)
+ void SpellHit(Unit* /*caster*/, const SpellInfo* spell) OVERRIDE
{
if (SpellCorrupt_Timer)
return;
@@ -160,7 +161,7 @@ public:
SpellCorrupt_Timer = 3000;
}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
if (killer->GetEntry() == me->GetEntry())
return;
@@ -168,7 +169,7 @@ public:
Talk(SAY_DEATH);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!instance)
return;
@@ -251,9 +252,9 @@ struct Wave
static Wave PortalWaves[]=
{
- { {C_ASSAS, C_WHELP, C_CHRON, 0} },
- { {C_EXECU, C_CHRON, C_WHELP, C_ASSAS} },
- { {C_EXECU, C_VANQU, C_CHRON, C_ASSAS} }
+ { {NPC_INFINITE_ASSASIN, NPC_INFINITE_WHELP, NPC_INFINITE_CRONOMANCER, 0} },
+ { {NPC_INFINITE_EXECUTIONER, NPC_INFINITE_CRONOMANCER, NPC_INFINITE_WHELP, NPC_INFINITE_ASSASIN} },
+ { {NPC_INFINITE_EXECUTIONER, NPC_INFINITE_VANQUISHER, NPC_INFINITE_CRONOMANCER, NPC_INFINITE_ASSASIN} }
};
class npc_time_rift : public CreatureScript
@@ -261,9 +262,9 @@ class npc_time_rift : public CreatureScript
public:
npc_time_rift() : CreatureScript("npc_time_rift") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_time_riftAI (creature);
+ return new npc_time_riftAI(creature);
}
struct npc_time_riftAI : public ScriptedAI
@@ -280,7 +281,7 @@ public:
uint8 mPortalCount;
uint8 mWaveId;
- void Reset()
+ void Reset() OVERRIDE
{
TimeRiftWave_Timer = 15000;
@@ -298,7 +299,7 @@ public:
else mWaveId = 1;
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
void DoSummonAtRift(uint32 creature_entry)
{
@@ -335,14 +336,14 @@ public:
++mRiftWaveCount;
- if (entry == C_WHELP)
+ if (entry == NPC_INFINITE_WHELP)
{
for (uint8 i = 0; i < 3; ++i)
DoSummonAtRift(entry);
} else DoSummonAtRift(entry);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!instance)
return;
@@ -379,7 +380,7 @@ class npc_saat : public CreatureScript
public:
npc_saat() : CreatureScript("npc_saat") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF+1)
@@ -390,9 +391,9 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
if (player->GetQuestStatus(QUEST_OPENING_PORTAL) == QUEST_STATUS_INCOMPLETE && !player->HasItemCount(ITEM_CHRONO_BEACON))
@@ -414,7 +415,7 @@ public:
};
-void AddSC_dark_portal()
+void AddSC_the_black_morass()
{
new npc_medivh_bm();
new npc_time_rift();
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.h b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.h
new file mode 100644
index 00000000000..729eb42e9c5
--- /dev/null
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.h
@@ -0,0 +1,67 @@
+/*
+ * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
+ * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef DEF_THEBLACKMORASS_H
+#define DEF_THEBLACKMORASS_H
+
+uint32 const EncounterCount = 2;
+
+enum DataTypes
+{
+ TYPE_MEDIVH = 1,
+ TYPE_RIFT = 2,
+ TYPE_AEONUS = 3,
+ TYPE_TEMPORUS = 4,
+ TYPE_CRONO_LORD_DEJA = 5,
+ DATA_MEDIVH = 10,
+ DATA_PORTAL_COUNT = 11,
+ DATA_SHIELD = 12
+};
+
+enum WorldStateIds
+{
+ WORLD_STATE_BM = 2541,
+ WORLD_STATE_BM_SHIELD = 2540,
+ WORLD_STATE_BM_RIFT = 2784
+};
+
+enum QuestIds
+{
+ QUEST_OPENING_PORTAL = 10297,
+ QUEST_MASTER_TOUCH = 9836
+};
+
+enum CreatureIds
+{
+ NPC_MEDIVH = 15608,
+ NPC_TIME_RIFT = 17838,
+ NPC_TIME_KEEPER = 17918,
+ NPC_RIFT_KEEPER = 21104,
+ NPC_RIFT_LORD = 17839,
+ NPC_CRONO_LORD_DEJA = 17879,
+ NPC_TEMPORUS = 17880,
+ NPC_AEONUS = 17881,
+ NPC_INFINITE_ASSASIN = 17835,
+ NPC_INFINITE_WHELP = 21818,
+ NPC_INFINITE_CRONOMANCER = 17892,
+ NPC_INFINITE_EXECUTIONER = 18994,
+ NPC_INFINITE_VANQUISHER = 18995
+};
+
+#endif
+
diff --git a/src/server/scripts/Kalimdor/Maraudon/boss_celebras_the_cursed.cpp b/src/server/scripts/Kalimdor/Maraudon/boss_celebras_the_cursed.cpp
index 695f9d2973e..b8c1b4746b2 100644
--- a/src/server/scripts/Kalimdor/Maraudon/boss_celebras_the_cursed.cpp
+++ b/src/server/scripts/Kalimdor/Maraudon/boss_celebras_the_cursed.cpp
@@ -38,9 +38,9 @@ class celebras_the_cursed : public CreatureScript
public:
celebras_the_cursed() : CreatureScript("celebras_the_cursed") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new celebras_the_cursedAI (creature);
+ return new celebras_the_cursedAI(creature);
}
struct celebras_the_cursedAI : public ScriptedAI
@@ -51,21 +51,21 @@ public:
uint32 EntanglingRootsTimer;
uint32 CorruptForcesTimer;
- void Reset()
+ void Reset() OVERRIDE
{
WrathTimer = 8000;
EntanglingRootsTimer = 2000;
CorruptForcesTimer = 30000;
}
- void EnterCombat(Unit* /*who*/) { }
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
me->SummonCreature(13716, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 600000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
diff --git a/src/server/scripts/Kalimdor/Maraudon/boss_landslide.cpp b/src/server/scripts/Kalimdor/Maraudon/boss_landslide.cpp
index eea34e1949f..3cf6e3fab33 100644
--- a/src/server/scripts/Kalimdor/Maraudon/boss_landslide.cpp
+++ b/src/server/scripts/Kalimdor/Maraudon/boss_landslide.cpp
@@ -38,9 +38,9 @@ class boss_landslide : public CreatureScript
public:
boss_landslide() : CreatureScript("boss_landslide") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_landslideAI (creature);
+ return new boss_landslideAI(creature);
}
struct boss_landslideAI : public ScriptedAI
@@ -51,18 +51,18 @@ public:
uint32 TrampleTimer;
uint32 LandslideTimer;
- void Reset()
+ void Reset() OVERRIDE
{
KnockAwayTimer = 8000;
TrampleTimer = 2000;
LandslideTimer = 0;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
diff --git a/src/server/scripts/Kalimdor/Maraudon/boss_noxxion.cpp b/src/server/scripts/Kalimdor/Maraudon/boss_noxxion.cpp
index 96c3c4a6c45..d512478a229 100644
--- a/src/server/scripts/Kalimdor/Maraudon/boss_noxxion.cpp
+++ b/src/server/scripts/Kalimdor/Maraudon/boss_noxxion.cpp
@@ -37,9 +37,9 @@ class boss_noxxion : public CreatureScript
public:
boss_noxxion() : CreatureScript("boss_noxxion") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_noxxionAI (creature);
+ return new boss_noxxionAI(creature);
}
struct boss_noxxionAI : public ScriptedAI
@@ -52,7 +52,7 @@ public:
uint32 InvisibleTimer;
bool Invisible;
- void Reset()
+ void Reset() OVERRIDE
{
ToxicVolleyTimer = 7000;
UppercutTimer = 16000;
@@ -61,7 +61,7 @@ public:
Invisible = false;
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
void SummonAdds(Unit* victim)
{
@@ -69,7 +69,7 @@ public:
Add->AI()->AttackStart(victim);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (Invisible && InvisibleTimer <= diff)
{
@@ -118,11 +118,11 @@ public:
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
// Invisible Model
me->SetDisplayId(11686);
- SummonAdds(me->getVictim());
- SummonAdds(me->getVictim());
- SummonAdds(me->getVictim());
- SummonAdds(me->getVictim());
- SummonAdds(me->getVictim());
+ SummonAdds(me->GetVictim());
+ SummonAdds(me->GetVictim());
+ SummonAdds(me->GetVictim());
+ SummonAdds(me->GetVictim());
+ SummonAdds(me->GetVictim());
Invisible = true;
InvisibleTimer = 15000;
diff --git a/src/server/scripts/Kalimdor/Maraudon/boss_princess_theradras.cpp b/src/server/scripts/Kalimdor/Maraudon/boss_princess_theradras.cpp
index ddce2f658e7..7098d0da3fb 100644
--- a/src/server/scripts/Kalimdor/Maraudon/boss_princess_theradras.cpp
+++ b/src/server/scripts/Kalimdor/Maraudon/boss_princess_theradras.cpp
@@ -40,9 +40,9 @@ class boss_princess_theradras : public CreatureScript
public:
boss_princess_theradras() : CreatureScript("boss_princess_theradras") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_ptheradrasAI (creature);
+ return new boss_ptheradrasAI(creature);
}
struct boss_ptheradrasAI : public ScriptedAI
@@ -54,7 +54,7 @@ public:
uint32 ThrashTimer;
uint32 RepulsiveGazeTimer;
- void Reset()
+ void Reset() OVERRIDE
{
DustfieldTimer = 8000;
BoulderTimer = 2000;
@@ -62,14 +62,14 @@ public:
RepulsiveGazeTimer = 23000;
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
me->SummonCreature(12238, 28.067f, 61.875f, -123.405f, 4.67f, TEMPSUMMON_TIMED_DESPAWN, 600000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
diff --git a/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp b/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp
index e01f2b097b0..79421ffe37e 100644
--- a/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp
+++ b/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp
@@ -40,7 +40,6 @@ enum Yells
SAY_KILL = 1,
SAY_PHASE_2_TRANS = 2,
SAY_PHASE_3_TRANS = 3,
-
// Emote
EMOTE_BREATH = 4
};
@@ -75,6 +74,20 @@ enum Spells
SPELL_BELLOWING_ROAR = 18431
};
+enum Events
+{
+ EVENT_BELLOWING_ROAR = 1,
+ EVENT_FLAME_BREATH = 2,
+ EVENT_TAIL_SWEEP = 3,
+ EVENT_CLEAVE = 4,
+ EVENT_WING_BUFFET = 5,
+ EVENT_DEEP_BREATH = 6,
+ EVENT_MOVEMENT = 7,
+ EVENT_FIREBALL = 8,
+ EVENT_LAIR_GUARD = 9,
+ EVENT_WHELP_SPAWN = 10
+};
+
struct OnyxMove
{
uint8 LocId;
@@ -113,99 +126,59 @@ class boss_onyxia : public CreatureScript
public:
boss_onyxia() : CreatureScript("boss_onyxia") { }
- CreatureAI* GetAI(Creature* creature) const
+ struct boss_onyxiaAI : public BossAI
{
- return new boss_onyxiaAI (creature);
- }
-
- struct boss_onyxiaAI : public ScriptedAI
- {
- boss_onyxiaAI(Creature* creature) : ScriptedAI(creature), Summons(me)
+ boss_onyxiaAI(Creature* creature) : BossAI(creature, DATA_ONYXIA), Summons(me)
{
- instance = creature->GetInstanceScript();
Reset();
}
- InstanceScript* instance;
- SummonList Summons;
-
- uint32 Phase;
-
- uint32 FlameBreathTimer;
- uint32 CleaveTimer;
- uint32 TailSweepTimer;
- uint32 WingBuffetTimer;
-
- uint8 MovePoint;
- uint32 MovementTimer;
- OnyxMove* PointData;
-
- uint32 FireballTimer;
- uint32 WhelpTimer;
- uint32 LairGuardTimer;
- uint32 DeepBreathTimer;
-
- uint32 BellowingRoarTimer;
-
- uint8 SummonWhelpCount;
- bool IsMoving;
-
- void Reset()
+ void Reset() OVERRIDE
{
if (!IsCombatMovementAllowed())
SetCombatMovement(true);
Phase = PHASE_START;
-
- FlameBreathTimer = urand(10000, 20000);
- TailSweepTimer = urand(15000, 20000);
- CleaveTimer = urand(2000, 5000);
- WingBuffetTimer = urand(10000, 20000);
-
MovePoint = urand(0, 5);
- MovementTimer = 14000;
PointData = GetMoveData();
-
- FireballTimer = 15000;
- WhelpTimer = 60000;
- LairGuardTimer = 60000;
- DeepBreathTimer = 85000;
-
- BellowingRoarTimer = 30000;
-
Summons.DespawnAll();
SummonWhelpCount = 0;
IsMoving = false;
if (instance)
{
- instance->SetData(DATA_ONYXIA, NOT_STARTED);
+ instance->SetBossState(DATA_ONYXIA, NOT_STARTED);
instance->SetData(DATA_ONYXIA_PHASE, Phase);
instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT);
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
me->SetInCombatWithZone();
+ events.ScheduleEvent(EVENT_FLAME_BREATH, urand (10000, 20000));
+ events.ScheduleEvent(EVENT_TAIL_SWEEP, urand (15000, 20000));
+ events.ScheduleEvent(EVENT_CLEAVE, urand (2000, 5000));
+ events.ScheduleEvent(EVENT_WING_BUFFET, urand (10000, 20000));
+
if (instance)
{
- instance->SetData(DATA_ONYXIA, IN_PROGRESS);
+ instance->SetBossState(DATA_ONYXIA, IN_PROGRESS);
instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT);
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
- instance->SetData(DATA_ONYXIA, DONE);
+ instance->SetBossState(DATA_ONYXIA, DONE);
Summons.DespawnAll();
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
summoned->SetInCombatWithZone();
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
@@ -223,17 +196,17 @@ public:
Summons.Summon(summoned);
}
- void SummonedCreatureDespawn(Creature* summon)
+ void SummonedCreatureDespawn(Creature* summon) OVERRIDE
{
Summons.Despawn(summon);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_KILL);
}
- void SpellHit(Unit* /*pCaster*/, const SpellInfo* Spell)
+ void SpellHit(Unit* /*pCaster*/, const SpellInfo* Spell) OVERRIDE
{
if (Spell->Id == SPELL_BREATH_EAST_TO_WEST ||
Spell->Id == SPELL_BREATH_WEST_TO_EAST ||
@@ -250,7 +223,7 @@ public:
}
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type == POINT_MOTION_TYPE)
{
@@ -265,8 +238,8 @@ public:
}
break;
case 9:
- me->GetMotionMaster()->MoveChase(me->getVictim());
- BellowingRoarTimer = 1000;
+ me->GetMotionMaster()->MoveChase(me->GetVictim());
+ events.ScheduleEvent(EVENT_BELLOWING_ROAR, 1000);
break;
case 10:
me->SetCanFly(true);
@@ -275,17 +248,15 @@ public:
Talk(SAY_PHASE_2_TRANS);
if (instance)
instance->SetData(DATA_ONYXIA_PHASE, Phase);
- WhelpTimer = 5000;
- LairGuardTimer = 15000;
+ events.ScheduleEvent(EVENT_WHELP_SPAWN, 5000);
+ events.ScheduleEvent(EVENT_LAIR_GUARD, 15000);
break;
case 11:
if (PointData)
me->GetMotionMaster()->MovePoint(PointData->LocId, PointData->fX, PointData->fY, PointData->fZ);
me->GetMotionMaster()->Clear(false);
me->GetMotionMaster()->MoveIdle();
-
break;
-
default:
IsMoving = false;
break;
@@ -293,7 +264,7 @@ public:
}
}
- void SpellHitTarget(Unit* target, const SpellInfo* Spell)
+ void SpellHitTarget(Unit* target, const SpellInfo* Spell) OVERRIDE
{
//Workaround - Couldn't find a way to group this spells (All Eruption)
if (((Spell->Id >= 17086 && Spell->Id <= 17095) ||
@@ -341,7 +312,7 @@ public:
MovePoint = iTemp;
}
- void UpdateAI(uint32 Diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -356,60 +327,55 @@ public:
{
SetCombatMovement(false);
Phase = PHASE_BREATH;
+ events.ScheduleEvent(EVENT_DEEP_BREATH, 85000);
+ events.ScheduleEvent(EVENT_MOVEMENT, 14000);
+ events.ScheduleEvent(EVENT_FIREBALL, 15000);
+ events.ScheduleEvent(EVENT_LAIR_GUARD, 60000);
+ events.ScheduleEvent(EVENT_WHELP_SPAWN, 60000);
me->GetMotionMaster()->MovePoint(10, Phase2Location);
return;
}
}
- else
- {
- if (BellowingRoarTimer <= Diff)
- {
- DoCastVictim(SPELL_BELLOWING_ROAR);
- // Eruption
- GameObject* Floor = NULL;
- Trinity::GameObjectInRangeCheck check(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 15);
- Trinity::GameObjectLastSearcher<Trinity::GameObjectInRangeCheck> searcher(me, Floor, check);
- me->VisitNearbyGridObject(30, searcher);
- if (instance && Floor)
- instance->SetData64(DATA_FLOOR_ERUPTION_GUID, Floor->GetGUID());
- BellowingRoarTimer = 30000;
- }
- else
- BellowingRoarTimer -= Diff;
- }
-
- if (FlameBreathTimer <= Diff)
- {
- DoCastVictim(SPELL_FLAME_BREATH);
- FlameBreathTimer = urand(10000, 20000);
- }
- else
- FlameBreathTimer -= Diff;
-
- if (TailSweepTimer <= Diff)
- {
- DoCastAOE(SPELL_TAIL_SWEEP);
- TailSweepTimer = urand(15000, 20000);
- }
- else
- TailSweepTimer -= Diff;
- if (CleaveTimer <= Diff)
- {
- DoCastVictim(SPELL_CLEAVE);
- CleaveTimer = urand(2000, 5000);
- }
- else
- CleaveTimer -= Diff;
+ events.Update(diff);
- if (WingBuffetTimer <= Diff)
+ while (uint32 eventId = events.ExecuteEvent())
{
- DoCastVictim(SPELL_WING_BUFFET);
- WingBuffetTimer = urand(15000, 30000);
+ switch (eventId)
+ {
+ case EVENT_BELLOWING_ROAR: // Phase PHASE_END
+ {
+ DoCastVictim(SPELL_BELLOWING_ROAR);
+ // Eruption
+ GameObject* Floor = NULL;
+ Trinity::GameObjectInRangeCheck check(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 15);
+ Trinity::GameObjectLastSearcher<Trinity::GameObjectInRangeCheck> searcher(me, Floor, check);
+ me->VisitNearbyGridObject(30, searcher);
+ if (instance && Floor)
+ instance->SetData64(DATA_FLOOR_ERUPTION_GUID, Floor->GetGUID());
+ events.ScheduleEvent(EVENT_BELLOWING_ROAR, 30000);
+ break;
+ }
+ case EVENT_FLAME_BREATH: // Phase PHASE_START and PHASE_END
+ DoCastVictim(SPELL_FLAME_BREATH);
+ events.ScheduleEvent(EVENT_FLAME_BREATH, urand (10000, 20000));
+ break;
+ case EVENT_TAIL_SWEEP: // Phase PHASE_START and PHASE_END
+ DoCastAOE(SPELL_TAIL_SWEEP);
+ events.ScheduleEvent(EVENT_TAIL_SWEEP, urand (15000, 20000));
+ break;
+ case EVENT_CLEAVE: // Phase PHASE_START and PHASE_END
+ DoCastVictim(SPELL_CLEAVE);
+ events.ScheduleEvent(EVENT_CLEAVE, urand (2000, 5000));
+ break;
+ case EVENT_WING_BUFFET: // Phase PHASE_START and PHASE_END
+ DoCastVictim(SPELL_WING_BUFFET);
+ events.ScheduleEvent(EVENT_WING_BUFFET, urand (15000, 30000));
+ break;
+ default:
+ break;
+ }
}
- else
- WingBuffetTimer -= Diff;
-
DoMeleeAttackIfReady();
}
else
@@ -418,88 +384,93 @@ public:
{
Phase = PHASE_END;
if (instance)
- instance->SetData(DATA_ONYXIA_PHASE, Phase);
+ instance->SetData(DATA_ONYXIA_PHASE, PHASE_END);
Talk(SAY_PHASE_3_TRANS);
SetCombatMovement(true);
me->SetCanFly(false);
IsMoving = false;
me->GetMotionMaster()->MovePoint(9, me->GetHomePosition());
+ events.ScheduleEvent(EVENT_BELLOWING_ROAR, 30000);
return;
}
- if (DeepBreathTimer <= Diff)
- {
- if (!IsMoving)
- {
- if (me->IsNonMeleeSpellCasted(false))
- me->InterruptNonMeleeSpells(false);
-
- Talk(EMOTE_BREATH);
- DoCast(me, PointData->SpellId);
- DeepBreathTimer = 70000;
- }
- }
- else
- DeepBreathTimer -= Diff;
-
- if (MovementTimer <= Diff)
- {
- if (!IsMoving)
- {
- SetNextRandomPoint();
- PointData = GetMoveData();
-
- if (!PointData)
- return;
-
- me->GetMotionMaster()->MovePoint(PointData->LocId, PointData->fX, PointData->fY, PointData->fZ);
- IsMoving = true;
- MovementTimer = 25000;
- }
- }
- else
- MovementTimer -= Diff;
-
- if (FireballTimer <= Diff)
- {
- if (me->GetMotionMaster()->GetCurrentMovementGeneratorType() != POINT_MOTION_TYPE)
- {
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- DoCast(target, SPELL_FIREBALL);
-
- FireballTimer = 8000;
- }
- }
- else
- FireballTimer -= Diff;
-
- if (LairGuardTimer <= Diff)
- {
- me->SummonCreature(NPC_LAIRGUARD, SpawnLocations[2], TEMPSUMMON_CORPSE_DESPAWN);
- LairGuardTimer = 30000;
- }
- else
- LairGuardTimer -= Diff;
+ events.Update(diff);
- if (WhelpTimer <= Diff)
+ while (uint32 eventId = events.ExecuteEvent())
{
- me->SummonCreature(NPC_WHELP, SpawnLocations[0], TEMPSUMMON_CORPSE_DESPAWN);
- me->SummonCreature(NPC_WHELP, SpawnLocations[1], TEMPSUMMON_CORPSE_DESPAWN);
- if (SummonWhelpCount >= RAID_MODE(20, 40))
+ switch (eventId)
{
- SummonWhelpCount = 0;
- WhelpTimer = 90000;
+ case EVENT_DEEP_BREATH: // Phase PHASE_BREATH
+ if (!IsMoving)
+ {
+ if (me->IsNonMeleeSpellCasted(false))
+ me->InterruptNonMeleeSpells(false);
+
+ Talk(EMOTE_BREATH);
+ if (PointData) /// @todo: In what cases is this null? What should we do?
+ DoCast(me, PointData->SpellId);
+ events.ScheduleEvent(EVENT_DEEP_BREATH, 70000);
+ }
+ break;
+ case EVENT_MOVEMENT: // Phase PHASE_BREATH
+ if (!IsMoving && !(me->HasUnitState(UNIT_STATE_CASTING)))
+ {
+ SetNextRandomPoint();
+ PointData = GetMoveData();
+
+ if (!PointData)
+ return;
+
+ me->GetMotionMaster()->MovePoint(PointData->LocId, PointData->fX, PointData->fY, PointData->fZ);
+ IsMoving = true;
+ events.ScheduleEvent(EVENT_MOVEMENT, 25000);
+ }
+ break;
+ case EVENT_FIREBALL: // Phase PHASE_BREATH
+ if (me->GetMotionMaster()->GetCurrentMovementGeneratorType() != POINT_MOTION_TYPE)
+ {
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
+ DoCast(target, SPELL_FIREBALL);
+
+ events.ScheduleEvent(EVENT_FIREBALL, 8000);
+ }
+ break;
+ case EVENT_LAIR_GUARD: // Phase PHASE_BREATH
+ me->SummonCreature(NPC_LAIRGUARD, SpawnLocations[2], TEMPSUMMON_CORPSE_DESPAWN);
+ events.ScheduleEvent(EVENT_LAIR_GUARD, 30000);
+ break;
+ case EVENT_WHELP_SPAWN: // Phase PHASE_BREATH
+ me->SummonCreature(NPC_WHELP, SpawnLocations[0], TEMPSUMMON_CORPSE_DESPAWN);
+ me->SummonCreature(NPC_WHELP, SpawnLocations[1], TEMPSUMMON_CORPSE_DESPAWN);
+ if (SummonWhelpCount >= RAID_MODE(20, 40))
+ {
+ SummonWhelpCount = 0;
+ events.ScheduleEvent(EVENT_WHELP_SPAWN, 90000);
+ }
+ else
+ events.ScheduleEvent(EVENT_WHELP_SPAWN, 500);
+ break;
+ default:
+ break;
}
- else
- WhelpTimer = 500;
}
- else
- WhelpTimer -= Diff;
}
}
+
+ private:
+ SummonList Summons;
+ OnyxMove* PointData;
+ uint8 Phase;
+ uint8 MovePoint;
+ uint8 SummonWhelpCount;
+ bool IsMoving;
};
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new boss_onyxiaAI(creature);
+ }
};
void AddSC_boss_onyxia()
diff --git a/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp b/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp
index a779186a5c8..eed8ab22eb1 100644
--- a/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp
+++ b/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp
@@ -36,7 +36,7 @@ class instance_onyxias_lair : public InstanceMapScript
public:
instance_onyxias_lair() : InstanceMapScript("instance_onyxias_lair", 249) { }
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_onyxias_lair_InstanceMapScript(map);
}
@@ -47,30 +47,18 @@ public:
//Eruption is a BFS graph problem
//One map to remember all floor, one map to keep floor that still need to erupt and one queue to know what needs to be removed
- std::map<uint64, uint32> FloorEruptionGUID[2];
- std::queue<uint64> FloorEruptionGUIDQueue;
-
- uint64 OnyxiasGUID;
- uint32 OnyxiaLiftoffTimer;
- uint32 ManyWhelpsCounter;
- uint32 EruptTimer;
-
- uint8 Encounter[MAX_ENCOUNTER];
-
- bool AchievManyWhelpsHandleIt;
- bool AchievSheDeepBreathMore;
void Initialize()
{
- memset(&Encounter, 0, sizeof(Encounter));
+ SetBossNumber(EncounterCount);
- OnyxiasGUID = 0;
- OnyxiaLiftoffTimer = 0;
- ManyWhelpsCounter = 0;
- AchievManyWhelpsHandleIt = false;
- AchievSheDeepBreathMore = true;
+ onyxiaGUID = 0;
+ onyxiaLiftoffTimer = 0;
+ manyWhelpsCounter = 0;
+ eruptTimer = 0;
- EruptTimer = 0;
+ achievManyWhelpsHandleIt = false;
+ achievSheDeepBreathMore = true;
}
void OnCreatureCreate(Creature* creature)
@@ -78,7 +66,7 @@ public:
switch (creature->GetEntry())
{
case NPC_ONYXIA:
- OnyxiasGUID = creature->GetGUID();
+ onyxiaGUID = creature->GetGUID();
break;
}
}
@@ -99,7 +87,7 @@ public:
if (Creature* temp = go->SummonCreature(NPC_WHELP, goPos, TEMPSUMMON_CORPSE_DESPAWN))
{
temp->SetInCombatWithZone();
- ++ManyWhelpsCounter;
+ ++manyWhelpsCounter;
}
break;
}
@@ -116,18 +104,18 @@ public:
void FloorEruption(uint64 floorEruptedGUID)
{
- if (GameObject* pFloorEruption = instance->GetGameObject(floorEruptedGUID))
+ if (GameObject* floorEruption = instance->GetGameObject(floorEruptedGUID))
{
//THIS GOB IS A TRAP - What shall i do? =(
//Cast it spell? Copyed Heigan method
- pFloorEruption->SendCustomAnim(pFloorEruption->GetGoAnimProgress());
- pFloorEruption->CastSpell(NULL, Difficulty(instance->GetSpawnMode()) == RAID_DIFFICULTY_10MAN_NORMAL ? 17731 : 69294); //pFloorEruption->GetGOInfo()->trap.spellId
+ floorEruption->SendCustomAnim(floorEruption->GetGoAnimProgress());
+ floorEruption->CastSpell(NULL, Difficulty(instance->GetSpawnMode()) == RAID_DIFFICULTY_10MAN_NORMAL ? 17731 : 69294); //pFloorEruption->GetGOInfo()->trap.spellId
//Get all immediatly nearby floors
std::list<GameObject*> nearFloorList;
- Trinity::GameObjectInRangeCheck check(pFloorEruption->GetPositionX(), pFloorEruption->GetPositionY(), pFloorEruption->GetPositionZ(), 15);
- Trinity::GameObjectListSearcher<Trinity::GameObjectInRangeCheck> searcher(pFloorEruption, nearFloorList, check);
- pFloorEruption->VisitNearbyGridObject(999, searcher);
+ Trinity::GameObjectInRangeCheck check(floorEruption->GetPositionX(), floorEruption->GetPositionY(), floorEruption->GetPositionZ(), 15);
+ Trinity::GameObjectListSearcher<Trinity::GameObjectInRangeCheck> searcher(floorEruption, nearFloorList, check);
+ floorEruption->VisitNearbyGridObject(999, searcher);
//remove all that are not present on FloorEruptionGUID[1] and update treeLen on each GUID
for (std::list<GameObject*>::const_iterator itr = nearFloorList.begin(); itr != nearFloorList.end(); ++itr)
{
@@ -145,88 +133,84 @@ public:
FloorEruptionGUID[1].erase(floorEruptedGUID);
}
- void SetData(uint32 Type, uint32 Data)
+ bool SetBossState(uint32 type, EncounterState state)
{
- switch (Type)
+ if (!InstanceScript::SetBossState(type, state))
+ return false;
+
+ switch (type)
{
case DATA_ONYXIA:
- Encounter[0] = Data;
- if (Data == IN_PROGRESS)
- SetData(DATA_SHE_DEEP_BREATH_MORE, IN_PROGRESS);
+ if (state == IN_PROGRESS)
+ SetBossState(DATA_SHE_DEEP_BREATH_MORE, IN_PROGRESS);
break;
+ }
+ return true;
+ }
+
+ void SetData(uint32 type, uint32 data) OVERRIDE
+ {
+ switch (type)
+ {
case DATA_ONYXIA_PHASE:
- if (Data == PHASE_BREATH) //Used to mark the liftoff phase
+ if (data == PHASE_BREATH) //Used to mark the liftoff phase
{
- AchievManyWhelpsHandleIt = false;
- ManyWhelpsCounter = 0;
- OnyxiaLiftoffTimer = 10*IN_MILLISECONDS;
+ achievManyWhelpsHandleIt = false;
+ manyWhelpsCounter = 0;
+ onyxiaLiftoffTimer = 10000;
}
break;
case DATA_SHE_DEEP_BREATH_MORE:
- if (Data == IN_PROGRESS)
+ if (data == IN_PROGRESS)
{
- AchievSheDeepBreathMore = true;
+ achievSheDeepBreathMore = true;
}
- else if (Data == FAIL)
+ else if (data == FAIL)
{
- AchievSheDeepBreathMore = false;
+ achievSheDeepBreathMore = false;
}
break;
}
-
- if (Type < MAX_ENCOUNTER && Data == DONE)
- SaveToDB();
}
- void SetData64(uint32 Type, uint64 Data)
+ void SetData64(uint32 type, uint64 data) OVERRIDE
{
- switch (Type)
+ switch (type)
{
case DATA_FLOOR_ERUPTION_GUID:
FloorEruptionGUID[1] = FloorEruptionGUID[0];
- FloorEruptionGUIDQueue.push(Data);
- EruptTimer = 2500;
+ FloorEruptionGUIDQueue.push(data);
+ eruptTimer = 2500;
break;
}
}
- uint32 GetData(uint32 Type) const
+ uint64 GetData64(uint32 data) const OVERRIDE
{
- switch (Type)
+ switch (data)
{
- case DATA_ONYXIA:
- return Encounter[0];
- }
-
- return 0;
- }
-
- uint64 GetData64(uint32 Data) const
- {
- switch (Data)
- {
- case DATA_ONYXIA_GUID:
- return OnyxiasGUID;
+ case NPC_ONYXIA:
+ return onyxiaGUID;
}
return 0;
}
- void Update(uint32 Diff)
+ void Update(uint32 diff)
{
- if (GetData(DATA_ONYXIA) == IN_PROGRESS)
+ if (GetBossState(DATA_ONYXIA) == IN_PROGRESS)
{
- if (OnyxiaLiftoffTimer && OnyxiaLiftoffTimer <= Diff)
+ if (onyxiaLiftoffTimer && onyxiaLiftoffTimer <= diff)
{
- OnyxiaLiftoffTimer = 0;
- if (ManyWhelpsCounter >= 50)
- AchievManyWhelpsHandleIt = true;
- } else OnyxiaLiftoffTimer -= Diff;
+ onyxiaLiftoffTimer = 0;
+ if (manyWhelpsCounter >= 50)
+ achievManyWhelpsHandleIt = true;
+ } else onyxiaLiftoffTimer -= diff;
}
if (!FloorEruptionGUIDQueue.empty())
{
- if (EruptTimer <= Diff)
+ if (eruptTimer <= diff)
{
uint32 treeHeight = 0;
do
@@ -235,10 +219,10 @@ public:
FloorEruption(FloorEruptionGUIDQueue.front());
FloorEruptionGUIDQueue.pop();
} while (!FloorEruptionGUIDQueue.empty() && (*FloorEruptionGUID[1].find(FloorEruptionGUIDQueue.front())).second == treeHeight);
- EruptTimer = 1000;
+ eruptTimer = 1000;
}
else
- EruptTimer -= Diff;
+ eruptTimer -= diff;
}
}
@@ -248,15 +232,68 @@ public:
{
case ACHIEV_CRITERIA_MANY_WHELPS_10_PLAYER: // Criteria for achievement 4403: Many Whelps! Handle It! (10 player) Hatch 50 eggs in 10s
case ACHIEV_CRITERIA_MANY_WHELPS_25_PLAYER: // Criteria for achievement 4406: Many Whelps! Handle It! (25 player) Hatch 50 eggs in 10s
- return AchievManyWhelpsHandleIt;
+ return achievManyWhelpsHandleIt;
case ACHIEV_CRITERIA_DEEP_BREATH_10_PLAYER: // Criteria for achievement 4404: She Deep Breaths More (10 player) Everybody evade Deep Breath
case ACHIEV_CRITERIA_DEEP_BREATH_25_PLAYER: // Criteria for achievement 4407: She Deep Breaths More (25 player) Everybody evade Deep Breath
- return AchievSheDeepBreathMore;
+ return achievSheDeepBreathMore;
}
return false;
}
- };
+ std::string GetSaveData()
+ {
+ OUT_SAVE_INST_DATA;
+
+ std::ostringstream saveStream;
+ saveStream << "O L " << GetBossSaveData();
+
+ OUT_SAVE_INST_DATA_COMPLETE;
+ return saveStream.str();
+ }
+
+ void Load(const char* strIn)
+ {
+ if (!strIn)
+ {
+ OUT_LOAD_INST_DATA_FAIL;
+ return;
+ }
+
+ OUT_LOAD_INST_DATA(strIn);
+
+ char dataHead1, dataHead2;
+
+ std::istringstream loadStream(strIn);
+ loadStream >> dataHead1 >> dataHead2;
+
+ if (dataHead1 == 'O' && dataHead2 == 'L')
+ {
+ for (uint8 i = 0; i < EncounterCount; ++i)
+ {
+ uint32 tmpState;
+ loadStream >> tmpState;
+ if (tmpState == IN_PROGRESS || tmpState > SPECIAL)
+ tmpState = NOT_STARTED;
+
+ SetBossState(i, EncounterState(tmpState));
+ }
+ }
+ else
+ OUT_LOAD_INST_DATA_FAIL;
+
+ OUT_LOAD_INST_DATA_COMPLETE;
+ }
+
+ protected:
+ std::map<uint64, uint32> FloorEruptionGUID[2];
+ std::queue<uint64> FloorEruptionGUIDQueue;
+ uint64 onyxiaGUID;
+ uint32 onyxiaLiftoffTimer;
+ uint32 manyWhelpsCounter;
+ uint32 eruptTimer;
+ bool achievManyWhelpsHandleIt;
+ bool achievSheDeepBreathMore;
+ };
};
void AddSC_instance_onyxias_lair()
diff --git a/src/server/scripts/Kalimdor/OnyxiasLair/onyxias_lair.h b/src/server/scripts/Kalimdor/OnyxiasLair/onyxias_lair.h
index 91faf6dedb0..bf5010e4658 100644
--- a/src/server/scripts/Kalimdor/OnyxiasLair/onyxias_lair.h
+++ b/src/server/scripts/Kalimdor/OnyxiasLair/onyxias_lair.h
@@ -18,28 +18,24 @@
#ifndef DEF_ONYXIAS_LAIR_H
#define DEF_ONYXIAS_LAIR_H
-enum Data64
+uint32 const EncounterCount = 1;
+
+enum DataTypes
{
- DATA_ONYXIA_GUID,
- DATA_FLOOR_ERUPTION_GUID
+ DATA_ONYXIA = 0,
};
-enum InstanceData
+enum Data32
{
- DATA_ONYXIA,
- MAX_ENCOUNTER,
-
- DATA_ONYXIA_PHASE,
- DATA_SHE_DEEP_BREATH_MORE,
- DATA_MANY_WHELPS_COUNT
+ DATA_ONYXIA_PHASE = 0,
+ DATA_SHE_DEEP_BREATH_MORE = 1,
+ DATA_MANY_WHELPS_COUNT = 2
};
-enum Creatures
+enum Data64
{
- NPC_WHELP = 11262,
- NPC_LAIRGUARD = 36561,
-
- NPC_ONYXIA = 10184
+ DATA_ONYXIA_GUID = 0,
+ DATA_FLOOR_ERUPTION_GUID = 1
};
enum OnyxiaPhases
@@ -49,7 +45,14 @@ enum OnyxiaPhases
PHASE_END = 3
};
-enum GameObjects
+enum CreatureIds
+{
+ NPC_WHELP = 11262,
+ NPC_LAIRGUARD = 36561,
+ NPC_ONYXIA = 10184
+};
+
+enum GameObjectIds
{
GO_WHELP_SPAWNER = 176510,
GO_WHELP_EGG = 176511
diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp
index 374652ee91d..15b1fa51548 100644
--- a/src/server/scripts/Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp
@@ -45,9 +45,9 @@ class boss_amnennar_the_coldbringer : public CreatureScript
public:
boss_amnennar_the_coldbringer() : CreatureScript("boss_amnennar_the_coldbringer") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_amnennar_the_coldbringerAI (creature);
+ return new boss_amnennar_the_coldbringerAI(creature);
}
struct boss_amnennar_the_coldbringerAI : public ScriptedAI
@@ -61,7 +61,7 @@ public:
bool Spectrals30;
bool Hp;
- void Reset()
+ void Reset() OVERRIDE
{
AmnenarsWrath_Timer = 8000;
FrostBolt_Timer = 1000;
@@ -71,17 +71,17 @@ public:
Hp = false;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_KILL);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -89,14 +89,14 @@ public:
//AmnenarsWrath_Timer
if (AmnenarsWrath_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_AMNENNARSWRATH);
+ DoCastVictim(SPELL_AMNENNARSWRATH);
AmnenarsWrath_Timer = 12000;
} else AmnenarsWrath_Timer -= diff;
//FrostBolt_Timer
if (FrostBolt_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_FROSTBOLT);
+ DoCastVictim(SPELL_FROSTBOLT);
FrostBolt_Timer = 8000;
} else FrostBolt_Timer -= diff;
@@ -109,7 +109,7 @@ public:
if (!Spectrals60 && HealthBelowPct(60))
{
Talk(SAY_SUMMON60);
- DoCast(me->getVictim(), SPELL_FROST_SPECTRES);
+ DoCastVictim(SPELL_FROST_SPECTRES);
Spectrals60 = true;
}
@@ -122,7 +122,7 @@ public:
if (!Spectrals30 && HealthBelowPct(30))
{
Talk(SAY_SUMMON30);
- DoCast(me->getVictim(), SPELL_FROST_SPECTRES);
+ DoCastVictim(SPELL_FROST_SPECTRES);
Spectrals30 = true;
}
diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/instance_razorfen_downs.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/instance_razorfen_downs.cpp
index b7419d53db2..0284cdfce62 100644
--- a/src/server/scripts/Kalimdor/RazorfenDowns/instance_razorfen_downs.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenDowns/instance_razorfen_downs.cpp
@@ -28,7 +28,7 @@ class instance_razorfen_downs : public InstanceMapScript
public:
instance_razorfen_downs() : InstanceMapScript("instance_razorfen_downs", 129) { }
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_razorfen_downs_InstanceMapScript(map);
}
@@ -115,7 +115,7 @@ public:
}
}
- void SetData(uint32 uiType, uint32 uiData)
+ void SetData(uint32 uiType, uint32 uiData) OVERRIDE
{
if (uiType == DATA_GONG_WAVES)
{
@@ -145,15 +145,15 @@ public:
switch (uiGongWaves)
{
case 1:
- uiCreature = CREATURE_TOMB_FIEND;
+ uiCreature = NPC_TOMB_FIEND;
uiSummonTimes = 7;
break;
case 10:
- uiCreature = CREATURE_TOMB_REAVER;
+ uiCreature = NPC_TOMB_REAVER;
uiSummonTimes = 3;
break;
case 16:
- uiCreature = CREATURE_TUTEN_KASH;
+ uiCreature = NPC_TUTEN_KASH;
break;
default:
break;
@@ -187,7 +187,7 @@ public:
}
}
- uint32 GetData(uint32 uiType) const
+ uint32 GetData(uint32 uiType) const OVERRIDE
{
switch (uiType)
{
@@ -198,7 +198,7 @@ public:
return 0;
}
- uint64 GetData64(uint32 uiType) const
+ uint64 GetData64(uint32 uiType) const OVERRIDE
{
switch (uiType)
{
diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp
index 78535b7c3b0..320c9970077 100644
--- a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp
@@ -37,52 +37,66 @@ EndContentData */
# npc_henry_stern
####*/
-enum eEnums
+enum Spells
{
- SPELL_GOLDTHORN_TEA = 13028,
SPELL_TEACHING_GOLDTHORN_TEA = 13029,
- SPELL_MIGHT_TROLLS_BLOOD_POTION = 3451,
- SPELL_TEACHING_MIGHTY_TROLLS_BLOOD_POTION = 13030,
- GOSSIP_TEXT_TEA_ANSWER = 2114,
- GOSSIP_TEXT_POTION_ANSWER = 2115,
+ SPELL_TEACHING_MIGHTY_TROLLS_BLOOD_POTION = 13030
};
-#define GOSSIP_ITEM_TEA "Teach me the cooking recipe"
-#define GOSSIP_ITEM_POTION "Teach me the alchemy recipe"
+enum Gossips
+{
+ GOSSIP_COOKING_SKILL_HIGH = 1444,
+ GOSSIP_COOKING_SKILL_LOW = 1501,
+ GOSSIP_ALCHEMY_SKILL_HIGH = 1442,
+ GOSSIP_ALCHEMY_SKILL_LOW = 1502
+};
class npc_henry_stern : public CreatureScript
{
public:
npc_henry_stern() : CreatureScript("npc_henry_stern") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ struct npc_henry_sternAI : public ScriptedAI
{
- player->PlayerTalkClass->ClearMenus();
- if (action == GOSSIP_ACTION_INFO_DEF + 1)
- {
- player->CastSpell(player, SPELL_TEACHING_GOLDTHORN_TEA, true);
- player->SEND_GOSSIP_MENU(GOSSIP_TEXT_TEA_ANSWER, creature->GetGUID());
- }
+ npc_henry_sternAI(Creature* creature) : ScriptedAI(creature) { }
- if (action == GOSSIP_ACTION_INFO_DEF + 2)
+ void sGossipSelect(Player* player, uint32 /*sender*/, uint32 action) OVERRIDE
{
- player->CastSpell(player, SPELL_TEACHING_MIGHTY_TROLLS_BLOOD_POTION, true);
- player->SEND_GOSSIP_MENU(GOSSIP_TEXT_POTION_ANSWER, creature->GetGUID());
- }
+ if (action == 0)
+ {
+ if (player->GetBaseSkillValue(SKILL_COOKING) >= 175)
+ {
+ player->PrepareGossipMenu(me, GOSSIP_COOKING_SKILL_HIGH);
+ player->SendPreparedGossip(me);
+ DoCast(player, SPELL_TEACHING_GOLDTHORN_TEA);
+ }
+ else
+ {
+ player->PrepareGossipMenu(me, GOSSIP_COOKING_SKILL_LOW);
+ player->SendPreparedGossip(me);
+ }
+ }
- return true;
- }
+ if (action == 1)
+ {
+ if (player->GetBaseSkillValue(SKILL_ALCHEMY) >= 180)
+ {
+ player->PrepareGossipMenu(me, GOSSIP_ALCHEMY_SKILL_HIGH);
+ player->SendPreparedGossip(me);
+ DoCast(player, SPELL_TEACHING_MIGHTY_TROLLS_BLOOD_POTION);
+ }
+ else
+ {
+ player->PrepareGossipMenu(me, GOSSIP_ALCHEMY_SKILL_LOW);
+ player->SendPreparedGossip(me);
+ }
+ }
+ }
+ };
- bool OnGossipHello(Player* player, Creature* creature)
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- if (player->GetBaseSkillValue(SKILL_COOKING) >= 175 && !player->HasSpell(SPELL_GOLDTHORN_TEA))
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_TEA, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
-
- if (player->GetBaseSkillValue(SKILL_ALCHEMY) >= 180 && !player->HasSpell(SPELL_MIGHT_TROLLS_BLOOD_POTION))
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_POTION, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
-
- player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
- return true;
+ return new npc_henry_sternAI(creature);
}
};
@@ -95,7 +109,7 @@ class go_gong : public GameObjectScript
public:
go_gong() : GameObjectScript("go_gong") { }
- bool OnGossipHello(Player* /*player*/, GameObject* go)
+ bool OnGossipHello(Player* /*player*/, GameObject* go) OVERRIDE
{
//basic support, not blizzlike data is missing...
InstanceScript* instance = go->GetInstanceScript();
@@ -111,7 +125,7 @@ public:
};
-enum eTombCreature
+enum TombCreature
{
SPELL_WEB = 745
};
@@ -121,9 +135,9 @@ class npc_tomb_creature : public CreatureScript
public:
npc_tomb_creature() : CreatureScript("npc_tomb_creature") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_tomb_creatureAI (creature);
+ return new npc_tomb_creatureAI(creature);
}
struct npc_tomb_creatureAI : public ScriptedAI
@@ -137,22 +151,22 @@ public:
uint32 uiWebTimer;
- void Reset()
+ void Reset() OVERRIDE
{
uiWebTimer = urand(5000, 8000);
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (!UpdateVictim())
return;
//from acid
- if (me->GetEntry() == CREATURE_TOMB_REAVER)
+ if (me->GetEntry() == NPC_TOMB_REAVER)
{
if (uiWebTimer <= uiDiff)
{
- DoCast(me->getVictim(), SPELL_WEB);
+ DoCastVictim(SPELL_WEB);
uiWebTimer = urand(7000, 16000);
} else uiWebTimer -= uiDiff;
}
@@ -160,7 +174,7 @@ public:
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
instance->SetData(DATA_GONG_WAVES, instance->GetData(DATA_GONG_WAVES)+1);
diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.h b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.h
index 3b132561deb..c0f63474f23 100644
--- a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.h
+++ b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.h
@@ -18,27 +18,27 @@
#ifndef DEF_RAZORFEN_DOWNS_H
#define DEF_RAZORFEN_DOWNS_H
-enum eData
+enum Data
{
BOSS_TUTEN_KASH,
DATA_GONG_WAVES
};
-enum eData64
+enum Data64
{
DATA_GONG
};
-enum eGameObject
+enum GameObjectIds
{
GO_GONG = 148917
};
-enum eCreature
+enum CreatureId
{
- CREATURE_TOMB_FIEND = 7349,
- CREATURE_TOMB_REAVER = 7351,
- CREATURE_TUTEN_KASH = 7355
+ NPC_TOMB_FIEND = 7349,
+ NPC_TOMB_REAVER = 7351,
+ NPC_TUTEN_KASH = 7355
};
#endif
diff --git a/src/server/scripts/Kalimdor/RazorfenKraul/instance_razorfen_kraul.cpp b/src/server/scripts/Kalimdor/RazorfenKraul/instance_razorfen_kraul.cpp
index b374ed47d55..dc2995540df 100644
--- a/src/server/scripts/Kalimdor/RazorfenKraul/instance_razorfen_kraul.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenKraul/instance_razorfen_kraul.cpp
@@ -35,7 +35,7 @@ class instance_razorfen_kraul : public InstanceMapScript
public:
instance_razorfen_kraul() : InstanceMapScript("instance_razorfen_kraul", 47) { }
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_razorfen_kraul_InstanceMapScript(map);
}
@@ -61,7 +61,7 @@ public:
{
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
{
- if (Player* player = itr->getSource())
+ if (Player* player = itr->GetSource())
return player;
}
}
@@ -74,6 +74,7 @@ public:
switch (go->GetEntry())
{
case 21099: DoorWardGUID = go->GetGUID(); break;
+ case 20920: go->SetUInt32Value(GAMEOBJECT_FACTION, 0); break; // big fat fugly hack
}
}
@@ -87,7 +88,7 @@ public:
}
}
- void SetData(uint32 type, uint32 /*data*/)
+ void SetData(uint32 type, uint32 /*data*/) OVERRIDE
{
switch (type)
{
diff --git a/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp b/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp
index 55e81f1408f..13ce8e8c964 100644
--- a/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
- * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
+ * Copyright (C) 2006-2013 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
@@ -16,22 +16,13 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-/* ScriptData
-SDName: Razorfen Kraul
-SD%Complete: 100
-SDComment: Quest support: 1144
-SDCategory: Razorfen Kraul
-EndScriptData */
-
-/* ContentData
-npc_willix
-EndContentData */
-
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedEscortAI.h"
#include "razorfen_kraul.h"
#include "Player.h"
+#include "PetAI.h"
+#include "SpellScript.h"
enum Willix
{
@@ -56,7 +47,7 @@ class npc_willix : public CreatureScript
public:
npc_willix() : CreatureScript("npc_willix") { }
- bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_WILLIX_THE_IMPORTER)
{
@@ -68,7 +59,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_willixAI(creature);
}
@@ -77,7 +68,7 @@ public:
{
npc_willixAI(Creature* creature) : npc_escortAI(creature) {}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
Player* player = GetPlayerForEscort();
if (!player)
@@ -127,19 +118,19 @@ public:
}
}
- void Reset() {}
+ void Reset() OVERRIDE {}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO1);
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
summoned->AI()->AttackStart(me);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (Player* player = GetPlayerForEscort())
player->FailQuest(QUEST_WILLIX_THE_IMPORTER);
@@ -148,7 +139,148 @@ public:
};
+enum SnufflenoseGopher
+{
+ NPC_SNUFFLENOSE_GOPHER = 4781,
+ GO_BLUELEAF_TUBBER = 20920,
+ ACTION_FIND_NEW_TUBBER = 0,
+ POINT_TUBBER = 0
+};
+
+struct DistanceOrder : public std::binary_function<GameObject, GameObject, bool>
+{
+ DistanceOrder(Creature* me) : me(me) {}
+
+ bool operator() (GameObject* first, GameObject* second)
+ {
+ return me->GetDistanceOrder(first, second);
+ }
+
+ Creature* me;
+};
+
+struct npc_snufflenose_gopher : public CreatureScript
+{
+public:
+ npc_snufflenose_gopher() : CreatureScript("npc_snufflenose_gopher") { }
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_snufflenose_gopherAI(creature);
+ }
+
+ struct npc_snufflenose_gopherAI : public PetAI
+ {
+ npc_snufflenose_gopherAI(Creature* creature) : PetAI(creature) { }
+
+ void Reset() OVERRIDE
+ {
+ IsMovementActive = false;
+ }
+
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
+ {
+ if (type == POINT_MOTION_TYPE && id == POINT_TUBBER)
+ {
+ if (GameObject* go = me->GetMap()->GetGameObject(TargetTubberGUID))
+ {
+ go->SetRespawnTime(5 * MINUTE);
+ go->Refresh();
+ go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_INTERACT_COND);
+ }
+
+ IsMovementActive = false;
+ }
+ else
+ PetAI::MovementInform(type, id);
+ }
+
+ void DoFindNewTubber()
+ {
+ std::list<GameObject*> tubbersInRange;
+ GetGameObjectListWithEntryInGrid(tubbersInRange, me, GO_BLUELEAF_TUBBER, 40.0f);
+
+ if (tubbersInRange.empty())
+ return;
+
+ tubbersInRange.sort(DistanceOrder(me));
+ GameObject* nearestTubber = NULL;
+
+ for (std::list<GameObject*>::const_iterator itr = tubbersInRange.begin(); itr != tubbersInRange.end(); ++itr)
+ {
+ if (!(*itr)->isSpawned() && (*itr)->HasFlag(GAMEOBJECT_FLAGS, GO_FLAG_INTERACT_COND))
+ {
+ nearestTubber = *itr;
+ break;
+ }
+ }
+
+ if (!nearestTubber)
+ return;
+
+ TargetTubberGUID = nearestTubber->GetGUID();
+
+ // XFurry was wrong...
+ me->GetMotionMaster()->MovePoint(POINT_TUBBER, nearestTubber->GetPositionX(),
+ nearestTubber->GetPositionY(),
+ nearestTubber->GetPositionZ());
+ IsMovementActive = true;
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ if (!IsMovementActive)
+ PetAI::UpdateAI(diff);
+ }
+
+ void DoAction(int32 action) OVERRIDE
+ {
+ if (action == ACTION_FIND_NEW_TUBBER)
+ DoFindNewTubber();
+ }
+
+
+ bool IsMovementActive;
+ uint64 TargetTubberGUID;
+ };
+};
+
+class spell_snufflenose_command : public SpellScriptLoader
+{
+ public:
+ spell_snufflenose_command() : SpellScriptLoader("spell_snufflenose_command") { }
+
+ class spell_snufflenose_commandSpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_snufflenose_commandSpellScript);
+
+ bool Load() OVERRIDE
+ {
+ return GetCaster()->GetTypeId() == TYPEID_PLAYER;
+ }
+
+ void HandleAfterCast()
+ {
+ if (Unit* target = GetCaster()->ToPlayer()->GetSelectedUnit())
+ if (target->GetEntry() == NPC_SNUFFLENOSE_GOPHER)
+ target->ToCreature()->AI()->DoAction(ACTION_FIND_NEW_TUBBER);
+ }
+
+ void Register() OVERRIDE
+ {
+ AfterCast += SpellCastFn(spell_snufflenose_commandSpellScript::HandleAfterCast);
+ }
+ };
+
+ SpellScript* GetSpellScript() const OVERRIDE
+ {
+ return new spell_snufflenose_commandSpellScript();
+ }
+};
+
void AddSC_razorfen_kraul()
{
+ new npc_snufflenose_gopher();
new npc_willix();
+ new spell_snufflenose_command();
}
diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp
index aec78581514..327fe0d1358 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp
@@ -34,13 +34,13 @@ enum Spells
enum Events
{
- EVENT_STINGER_SPRAY = 0,
- EVENT_POISON_STINGER = 1,
- EVENT_SUMMON_SWARMER = 2,
- EVENT_SWARMER_ATTACK = 3,
- EVENT_PARALYZE = 4,
- EVENT_LASH = 5,
- EVENT_TRASH = 6
+ EVENT_STINGER_SPRAY = 1,
+ EVENT_POISON_STINGER = 2,
+ EVENT_SUMMON_SWARMER = 3,
+ EVENT_SWARMER_ATTACK = 4,
+ EVENT_PARALYZE = 5,
+ EVENT_LASH = 6,
+ EVENT_TRASH = 7
};
enum Emotes
@@ -82,7 +82,7 @@ class boss_ayamiss : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
_phase = PHASE_AIR;
@@ -90,7 +90,7 @@ class boss_ayamiss : public CreatureScript
SetCombatMovement(false);
}
- void JustSummoned(Creature* who)
+ void JustSummoned(Creature* who) OVERRIDE
{
switch (who->GetEntry())
{
@@ -107,7 +107,7 @@ class boss_ayamiss : public CreatureScript
}
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type == POINT_MOTION_TYPE)
{
@@ -123,13 +123,13 @@ class boss_ayamiss : public CreatureScript
}
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
me->ClearUnitState(UNIT_STATE_ROOT);
BossAI::EnterEvadeMode();
}
- void EnterCombat(Unit* attacker)
+ void EnterCombat(Unit* attacker) OVERRIDE
{
BossAI::EnterCombat(attacker);
@@ -144,7 +144,7 @@ class boss_ayamiss : public CreatureScript
me->GetMotionMaster()->MovePoint(POINT_AIR, AyamissAirPos);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -157,7 +157,7 @@ class boss_ayamiss : public CreatureScript
SetCombatMovement(true);
me->SetCanFly(false);
Position VictimPos;
- me->getVictim()->GetPosition(&VictimPos);
+ me->GetVictim()->GetPosition(&VictimPos);
me->GetMotionMaster()->MovePoint(POINT_GROUND, VictimPos);
DoResetThreat();
events.ScheduleEvent(EVENT_LASH, urand(5000, 8000));
@@ -230,7 +230,7 @@ class boss_ayamiss : public CreatureScript
bool _enraged;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_ayamissAI(creature);
}
@@ -248,7 +248,7 @@ class npc_hive_zara_larva : public CreatureScript
_instance = me->GetInstanceScript();
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type == POINT_MOTION_TYPE)
if (id == POINT_PARALYZE)
@@ -256,7 +256,8 @@ class npc_hive_zara_larva : public CreatureScript
DoCast(target, SPELL_FEED); // Omnomnom
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (_instance->GetBossState(DATA_AYAMISS) == IN_PROGRESS)
return;
@@ -264,7 +265,7 @@ class npc_hive_zara_larva : public CreatureScript
ScriptedAI::MoveInLineOfSight(who);
}
- void AttackStart(Unit* victim)
+ void AttackStart(Unit* victim) OVERRIDE
{
if (_instance->GetBossState(DATA_AYAMISS) == IN_PROGRESS)
return;
@@ -272,7 +273,7 @@ class npc_hive_zara_larva : public CreatureScript
ScriptedAI::AttackStart(victim);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (_instance->GetBossState(DATA_AYAMISS) == IN_PROGRESS)
return;
@@ -283,7 +284,7 @@ class npc_hive_zara_larva : public CreatureScript
InstanceScript* _instance;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_hive_zara_larvaAI(creature);
}
diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp
index 0ad077aaa4e..a0a093246b6 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp
@@ -42,11 +42,11 @@ enum Spells
enum Events
{
- EVENT_DISMEMBER = 0,
- EVENT_GATHERING_SPEED = 1,
- EVENT_FULL_SPEED = 2,
- EVENT_CREEPING_PLAGUE = 3,
- EVENT_RESPAWN_EGG = 4
+ EVENT_DISMEMBER = 1,
+ EVENT_GATHERING_SPEED = 2,
+ EVENT_FULL_SPEED = 3,
+ EVENT_CREEPING_PLAGUE = 4,
+ EVENT_RESPAWN_EGG = 5
};
enum Phases
@@ -71,7 +71,7 @@ class boss_buru : public CreatureScript
{
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
BossAI::EnterEvadeMode();
@@ -82,7 +82,7 @@ class boss_buru : public CreatureScript
Eggs.clear();
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
_EnterCombat();
Talk(EMOTE_TARGET, who->GetGUID());
@@ -95,14 +95,14 @@ class boss_buru : public CreatureScript
_phase = PHASE_EGG;
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
if (action == ACTION_EXPLODE)
if (_phase == PHASE_EGG)
me->DealDamage(me, 45000);
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
if (victim->GetTypeId() == TYPEID_PLAYER)
ChaseNewVictim();
@@ -133,7 +133,7 @@ class boss_buru : public CreatureScript
events.ScheduleEvent(EVENT_RESPAWN_EGG, 100000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -186,7 +186,7 @@ class boss_buru : public CreatureScript
std::list<uint64> Eggs;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_buruAI(creature);
}
@@ -205,14 +205,14 @@ class npc_buru_egg : public CreatureScript
SetCombatMovement(false);
}
- void EnterCombat(Unit* attacker)
+ void EnterCombat(Unit* attacker) OVERRIDE
{
if (Creature* buru = me->GetMap()->GetCreature(_instance->GetData64(DATA_BURU)))
- if (!buru->isInCombat())
+ if (!buru->IsInCombat())
buru->AI()->AttackStart(attacker);
}
- void JustSummoned(Creature* who)
+ void JustSummoned(Creature* who) OVERRIDE
{
if (who->GetEntry() == NPC_HATCHLING)
if (Creature* buru = me->GetMap()->GetCreature(_instance->GetData64(DATA_BURU)))
@@ -220,7 +220,7 @@ class npc_buru_egg : public CreatureScript
who->AI()->AttackStart(target);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
DoCastAOE(SPELL_EXPLODE, true);
DoCastAOE(SPELL_EXPLODE_2, true); // Unknown purpose
@@ -234,7 +234,7 @@ class npc_buru_egg : public CreatureScript
InstanceScript* _instance;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_buru_eggAI(creature);
}
@@ -261,14 +261,14 @@ class spell_egg_explosion : public SpellScriptLoader
GetCaster()->DealDamage(target, -16 * GetCaster()->GetDistance(target) + 500);
}
- void Register()
+ void Register() OVERRIDE
{
AfterCast += SpellCastFn(spell_egg_explosion_SpellScript::HandleAfterCast);
OnEffectHitTarget += SpellEffectFn(spell_egg_explosion_SpellScript::HandleDummyHitTarget, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_egg_explosion_SpellScript();
}
diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp
index 033980d746b..c13ae5aa9c8 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp
@@ -55,7 +55,7 @@ class boss_kurinnaxx : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
_enraged = false;
@@ -65,7 +65,7 @@ class boss_kurinnaxx : public CreatureScript
events.ScheduleEvent(EVENT_WIDE_SLASH, 11000);
}
- void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/)
+ void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/) OVERRIDE
{
if (!_enraged && HealthBelowPct(30))
{
@@ -74,14 +74,14 @@ class boss_kurinnaxx : public CreatureScript
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
if (Creature* Ossirian = me->GetMap()->GetCreature(instance->GetData64(DATA_OSSIRIAN)))
sCreatureTextMgr->SendChat(Ossirian, SAY_KURINAXX_DEATH, 0, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_ZONE);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -102,7 +102,7 @@ class boss_kurinnaxx : public CreatureScript
case EVENT_SANDTRAP:
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
target->CastSpell(target, SPELL_SANDTRAP, true);
- else if (Unit* victim = me->getVictim())
+ else if (Unit* victim = me->GetVictim())
victim->CastSpell(victim, SPELL_SANDTRAP, true);
events.ScheduleEvent(EVENT_SANDTRAP, urand(5000, 15000));
break;
@@ -125,9 +125,9 @@ class boss_kurinnaxx : public CreatureScript
bool _enraged;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_kurinnaxxAI (creature);
+ return new boss_kurinnaxxAI(creature);
}
};
diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp
index dd52872e1da..6a1891e5c62 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp
@@ -62,7 +62,7 @@ class boss_moam : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
me->SetPower(POWER_MANA, 0);
@@ -71,7 +71,7 @@ class boss_moam : public CreatureScript
//events.ScheduleEvent(EVENT_WIDE_SLASH, 11000);
}
- void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/)
+ void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/) OVERRIDE
{
if (!_isStonePhase && HealthBelowPct(45))
{
@@ -80,7 +80,7 @@ class boss_moam : public CreatureScript
}
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -105,7 +105,7 @@ class boss_moam : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -175,7 +175,7 @@ class boss_moam : public CreatureScript
bool _isStonePhase;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_moamAI(creature);
}
diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp
index bd010849045..366f74f469e 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp
@@ -96,7 +96,7 @@ class boss_ossirian : public CreatureScript
uint8 CrystalIterator;
bool SaidIntro;
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
CrystalIterator = 0;
@@ -104,7 +104,7 @@ class boss_ossirian : public CreatureScript
CrystalGUID = 0;
}
- void SpellHit(Unit* caster, SpellInfo const* spell)
+ void SpellHit(Unit* caster, SpellInfo const* spell) OVERRIDE
{
for (uint8 i = 0; i < NUM_WEAKNESS; ++i)
{
@@ -117,7 +117,7 @@ class boss_ossirian : public CreatureScript
}
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
if (action == ACTION_TRIGGER_WEAKNESS)
if (Creature* Trigger = me->GetMap()->GetCreature(TriggerGUID))
@@ -125,7 +125,7 @@ class boss_ossirian : public CreatureScript
Trigger->CastSpell(Trigger, SpellWeakness[urand(0, 4)], false);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
events.Reset();
@@ -158,19 +158,19 @@ class boss_ossirian : public CreatureScript
}
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
Cleanup();
summons.DespawnAll();
BossAI::EnterEvadeMode();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Cleanup();
_JustDied();
@@ -202,7 +202,8 @@ class boss_ossirian : public CreatureScript
}
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (!SaidIntro)
{
@@ -212,7 +213,7 @@ class boss_ossirian : public CreatureScript
BossAI::MoveInLineOfSight(who);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -220,8 +221,8 @@ class boss_ossirian : public CreatureScript
events.Update(diff);
// No kiting!
- if (me->GetDistance(me->getVictim()) > 60.00f && me->GetDistance(me->getVictim()) < 120.00f)
- DoCast(me->getVictim(), SPELL_SUMMON);
+ if (me->GetDistance(me->GetVictim()) > 60.00f && me->GetDistance(me->GetVictim()) < 120.00f)
+ DoCastVictim(SPELL_SUMMON);
bool ApplySupreme = true;
@@ -254,7 +255,7 @@ class boss_ossirian : public CreatureScript
events.ScheduleEvent(EVENT_SILENCE, urand(20000, 30000));
break;
case EVENT_CYCLONE:
- DoCast(me->getVictim(), SPELL_CYCLONE);
+ DoCastVictim(SPELL_CYCLONE);
events.ScheduleEvent(EVENT_CYCLONE, 20000);
break;
case EVENT_STOMP:
@@ -270,9 +271,9 @@ class boss_ossirian : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_ossirianAI (creature);
+ return new boss_ossirianAI(creature);
}
};
@@ -281,7 +282,7 @@ class go_ossirian_crystal : public GameObjectScript
public:
go_ossirian_crystal() : GameObjectScript("go_ossirian_crystal") { }
- bool OnGossipHello(Player* player, GameObject* /*go*/)
+ bool OnGossipHello(Player* player, GameObject* /*go*/) OVERRIDE
{
InstanceScript* Instance = player->GetInstanceScript();
if (!Instance)
diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp
index a7151ec7c05..b8d91065d05 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp
@@ -67,7 +67,7 @@ class boss_rajaxx : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
enraged = false;
@@ -75,18 +75,18 @@ class boss_rajaxx : public CreatureScript
events.ScheduleEvent(EVENT_THUNDERCRASH, 12000);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
//SAY_DEATH
_JustDied();
}
- void EnterCombat(Unit* /*victim*/)
+ void EnterCombat(Unit* /*victim*/) OVERRIDE
{
_EnterCombat();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -119,9 +119,9 @@ class boss_rajaxx : public CreatureScript
bool enraged;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_rajaxxAI (creature);
+ return new boss_rajaxxAI(creature);
}
};
diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/instance_ruins_of_ahnqiraj.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/instance_ruins_of_ahnqiraj.cpp
index 658528f1fb4..87e0afeb8cc 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/instance_ruins_of_ahnqiraj.cpp
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/instance_ruins_of_ahnqiraj.cpp
@@ -72,13 +72,13 @@ class instance_ruins_of_ahnqiraj : public InstanceMapScript
return true;
}
- void SetData64(uint32 type, uint64 data)
+ void SetData64(uint32 type, uint64 data) OVERRIDE
{
if (type == DATA_PARALYZED)
_paralyzedGUID = data;
}
- uint64 GetData64(uint32 type) const
+ uint64 GetData64(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -154,7 +154,7 @@ class instance_ruins_of_ahnqiraj : public InstanceMapScript
uint64 _paralyzedGUID;
};
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_ruins_of_ahnqiraj_InstanceMapScript(map);
}
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp
index becbd126d9b..53e09c918ea 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp
@@ -27,25 +27,28 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "temple_of_ahnqiraj.h"
-#define SPELL_CLEAVE 26350
-#define SPELL_TOXIC_VOLLEY 25812
-#define SPELL_POISON_CLOUD 38718 //Only Spell with right dmg.
-#define SPELL_ENRAGE 34624 //Changed cause 25790 is casted on gamers too. Same prob with old explosion of twin emperors.
+enum Spells
+{
+ SPELL_CLEAVE = 26350,
+ SPELL_TOXIC_VOLLEY = 25812,
+ SPELL_POISON_CLOUD = 38718, //Only Spell with right dmg.
+ SPELL_ENRAGE = 34624, //Changed cause 25790 is casted on gamers too. Same prob with old explosion of twin emperors.
-#define SPELL_CHARGE 26561
-#define SPELL_KNOCKBACK 26027
+ SPELL_CHARGE = 26561,
+ SPELL_KNOCKBACK = 26027,
-#define SPELL_HEAL 25807
-#define SPELL_FEAR 19408
+ SPELL_HEAL = 25807,
+ SPELL_FEAR = 19408
+};
class boss_kri : public CreatureScript
{
public:
boss_kri() : CreatureScript("boss_kri") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_kriAI (creature);
+ return new boss_kriAI(creature);
}
struct boss_kriAI : public ScriptedAI
@@ -64,7 +67,7 @@ public:
bool VemDead;
bool Death;
- void Reset()
+ void Reset() OVERRIDE
{
Cleave_Timer = urand(4000, 8000);
ToxicVolley_Timer = urand(6000, 12000);
@@ -74,11 +77,11 @@ public:
Death = false;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
{
@@ -89,7 +92,7 @@ public:
instance->SetData(DATA_BUG_TRIO_DEATH, 1);
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -98,20 +101,20 @@ public:
//Cleave_Timer
if (Cleave_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_CLEAVE);
+ DoCastVictim(SPELL_CLEAVE);
Cleave_Timer = urand(5000, 12000);
} else Cleave_Timer -= diff;
//ToxicVolley_Timer
if (ToxicVolley_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_TOXIC_VOLLEY);
+ DoCastVictim(SPELL_TOXIC_VOLLEY);
ToxicVolley_Timer = urand(10000, 15000);
} else ToxicVolley_Timer -= diff;
if (!HealthAbovePct(5) && !Death)
{
- DoCast(me->getVictim(), SPELL_POISON_CLOUD);
+ DoCastVictim(SPELL_POISON_CLOUD);
Death = true;
}
@@ -140,9 +143,9 @@ class boss_vem : public CreatureScript
public:
boss_vem() : CreatureScript("boss_vem") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_vemAI (creature);
+ return new boss_vemAI(creature);
}
struct boss_vemAI : public ScriptedAI
@@ -160,7 +163,7 @@ public:
bool Enraged;
- void Reset()
+ void Reset() OVERRIDE
{
Charge_Timer = urand(15000, 27000);
KnockBack_Timer = urand(8000, 20000);
@@ -169,7 +172,7 @@ public:
Enraged = false;
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
{
@@ -181,11 +184,11 @@ public:
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -209,9 +212,9 @@ public:
//KnockBack_Timer
if (KnockBack_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_KNOCKBACK);
- if (DoGetThreat(me->getVictim()))
- DoModifyThreatPercent(me->getVictim(), -80);
+ DoCastVictim(SPELL_KNOCKBACK);
+ if (DoGetThreat(me->GetVictim()))
+ DoModifyThreatPercent(me->GetVictim(), -80);
KnockBack_Timer = urand(15000, 25000);
} else KnockBack_Timer -= diff;
@@ -233,9 +236,9 @@ class boss_yauj : public CreatureScript
public:
boss_yauj() : CreatureScript("boss_yauj") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_yaujAI (creature);
+ return new boss_yaujAI(creature);
}
struct boss_yaujAI : public ScriptedAI
@@ -253,7 +256,7 @@ public:
bool VemDead;
- void Reset()
+ void Reset() OVERRIDE
{
Heal_Timer = urand(25000, 40000);
Fear_Timer = urand(12000, 24000);
@@ -262,7 +265,7 @@ public:
VemDead = false;
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
{
@@ -282,11 +285,11 @@ public:
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -295,7 +298,7 @@ public:
//Fear_Timer
if (Fear_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_FEAR);
+ DoCastVictim(SPELL_FEAR);
DoResetThreat();
Fear_Timer = 20000;
} else Fear_Timer -= diff;
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp
index cd1f5c1befa..f98494c7c82 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp
@@ -92,7 +92,7 @@ enum Spells
// ***** Main Phase 2 ******
//Body spells
- //#define SPELL_CARAPACE_CTHUN 26156 //Was removed from client dbcs
+ //SPELL_CARAPACE_CTHUN = 26156 //Was removed from client dbcs
SPELL_TRANSFORM = 26232,
SPELL_PURPLE_COLORATION = 22581, //Probably not the right spell but looks similar
@@ -151,9 +151,9 @@ class boss_eye_of_cthun : public CreatureScript
public:
boss_eye_of_cthun() : CreatureScript("boss_eye_of_cthun") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new eye_of_cthunAI (creature);
+ return new eye_of_cthunAI(creature);
}
struct eye_of_cthunAI : public ScriptedAI
@@ -183,7 +183,7 @@ public:
float DarkGlareAngle;
bool ClockWise;
- void Reset()
+ void Reset() OVERRIDE
{
//Phase information
PhaseTimer = 50000; //First dark glare in 50 seconds
@@ -210,12 +210,12 @@ public:
instance->SetData(DATA_CTHUN_PHASE, PHASE_NOT_STARTED);
//to avoid having a following void zone
- Creature* pPortal= me->FindNearestCreature(MOB_CTHUN_PORTAL, 10);
+ Creature* pPortal= me->FindNearestCreature(NPC_CTHUN_PORTAL, 10);
if (pPortal)
pPortal->SetReactState(REACT_PASSIVE);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
DoZoneInCombat();
if (instance)
@@ -224,13 +224,13 @@ public:
void SpawnEyeTentacle(float x, float y)
{
- if (Creature* Spawned = DoSpawnCreature(MOB_EYE_TENTACLE, x, y, 0, 0, TEMPSUMMON_CORPSE_DESPAWN, 500))
+ if (Creature* Spawned = DoSpawnCreature(NPC_EYE_TENTACLE, x, y, 0, 0, TEMPSUMMON_CORPSE_DESPAWN, 500))
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
if (Spawned->AI())
Spawned->AI()->AttackStart(target);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Check if we have a target
if (!UpdateVictim())
@@ -289,7 +289,7 @@ public:
Creature* Spawned = NULL;
//Spawn claw tentacle on the random target
- Spawned = me->SummonCreature(MOB_CLAW_TENTACLE, *target, TEMPSUMMON_CORPSE_DESPAWN, 500);
+ Spawned = me->SummonCreature(NPC_CLAW_TENTACLE, *target, TEMPSUMMON_CORPSE_DESPAWN, 500);
if (Spawned && Spawned->AI())
Spawned->AI()->AttackStart(target);
@@ -393,7 +393,7 @@ public:
//Dead phase
case PHASE_CTHUN_DONE:
- Creature* pPortal= me->FindNearestCreature(MOB_CTHUN_PORTAL, 10);
+ Creature* pPortal= me->FindNearestCreature(NPC_CTHUN_PORTAL, 10);
if (pPortal)
pPortal->DespawnOrUnsummon();
@@ -402,7 +402,7 @@ public:
}
}
- void DamageTaken(Unit* /*done_by*/, uint32 &damage)
+ void DamageTaken(Unit* /*done_by*/, uint32 &damage) OVERRIDE
{
//No instance
if (!instance)
@@ -457,9 +457,9 @@ class boss_cthun : public CreatureScript
public:
boss_cthun() : CreatureScript("boss_cthun") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new cthunAI (creature);
+ return new cthunAI(creature);
}
struct cthunAI : public ScriptedAI
@@ -499,7 +499,7 @@ public:
//Stomach map, bool = true then in stomach
UNORDERED_MAP<uint64, bool> Stomach_Map;
- void Reset()
+ void Reset() OVERRIDE
{
//One random wisper every 90 - 300 seconds
WisperTimer = 90000;
@@ -532,7 +532,7 @@ public:
instance->SetData(DATA_CTHUN_PHASE, PHASE_NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
DoZoneInCombat();
}
@@ -540,7 +540,7 @@ public:
void SpawnEyeTentacle(float x, float y)
{
Creature* Spawned;
- Spawned = DoSpawnCreature(MOB_EYE_TENTACLE, x, y, 0, 0, TEMPSUMMON_CORPSE_DESPAWN, 500);
+ Spawned = DoSpawnCreature(NPC_EYE_TENTACLE, x, y, 0, 0, TEMPSUMMON_CORPSE_DESPAWN, 500);
if (Spawned && Spawned->AI())
if (Unit* target = SelectRandomNotStomach())
Spawned->AI()->AttackStart(target);
@@ -581,7 +581,7 @@ public:
return (*j);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Check if we have a target
if (!UpdateVictim())
@@ -601,7 +601,7 @@ public:
{
for (Map::PlayerList::const_iterator itr = PlayerList.begin(); itr != PlayerList.end(); ++itr)
{
- if (Player* pPlr = itr->getSource())
+ if (Player* pPlr = itr->GetSource())
pPlr->PlayDirectSound(RANDOM_SOUND_WHISPER, pPlr);
}
}
@@ -674,7 +674,7 @@ public:
//Spawn flesh tentacle
for (uint8 i = 0; i < 2; i++)
{
- Creature* spawned = me->SummonCreature(MOB_FLESH_TENTACLE, FleshTentaclePos[i], TEMPSUMMON_CORPSE_DESPAWN);
+ Creature* spawned = me->SummonCreature(NPC_FLESH_TENTACLE, FleshTentaclePos[i], TEMPSUMMON_CORPSE_DESPAWN);
if (!spawned)
++FleshTentaclesKilled;
}
@@ -804,7 +804,7 @@ public:
if (Unit* target = SelectRandomNotStomach())
{
//Spawn claw tentacle on the random target
- if (Creature* spawned = me->SummonCreature(MOB_GIANT_CLAW_TENTACLE, *target, TEMPSUMMON_CORPSE_DESPAWN, 500))
+ if (Creature* spawned = me->SummonCreature(NPC_GIANT_CLAW_TENTACLE, *target, TEMPSUMMON_CORPSE_DESPAWN, 500))
if (spawned->AI())
spawned->AI()->AttackStart(target);
}
@@ -819,7 +819,7 @@ public:
if (Unit* target = SelectRandomNotStomach())
{
//Spawn claw tentacle on the random target
- if (Creature* spawned = me->SummonCreature(MOB_GIANT_EYE_TENTACLE, *target, TEMPSUMMON_CORPSE_DESPAWN, 500))
+ if (Creature* spawned = me->SummonCreature(NPC_GIANT_EYE_TENTACLE, *target, TEMPSUMMON_CORPSE_DESPAWN, 500))
if (spawned->AI())
spawned->AI()->AttackStart(target);
}
@@ -847,7 +847,7 @@ public:
//Spawn flesh tentacle
for (uint8 i = 0; i < 2; i++)
{
- Creature* spawned = me->SummonCreature(MOB_FLESH_TENTACLE, FleshTentaclePos[i], TEMPSUMMON_CORPSE_DESPAWN);
+ Creature* spawned = me->SummonCreature(NPC_FLESH_TENTACLE, FleshTentaclePos[i], TEMPSUMMON_CORPSE_DESPAWN);
if (!spawned)
++FleshTentaclesKilled;
}
@@ -859,13 +859,13 @@ public:
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
instance->SetData(DATA_CTHUN_PHASE, PHASE_CTHUN_DONE);
}
- void DamageTaken(Unit* /*done_by*/, uint32 &damage)
+ void DamageTaken(Unit* /*done_by*/, uint32 &damage) OVERRIDE
{
//No instance
if (!instance)
@@ -895,7 +895,7 @@ public:
}
}
- void DoAction(int32 param)
+ void DoAction(int32 param) OVERRIDE
{
switch (param)
{
@@ -908,21 +908,21 @@ public:
};
-class mob_eye_tentacle : public CreatureScript
+class npc_eye_tentacle : public CreatureScript
{
public:
- mob_eye_tentacle() : CreatureScript("mob_eye_tentacle") { }
+ npc_eye_tentacle() : CreatureScript("npc_eye_tentacle") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new eye_tentacleAI (creature);
+ return new eye_tentacleAI(creature);
}
struct eye_tentacleAI : public ScriptedAI
{
eye_tentacleAI(Creature* creature) : ScriptedAI(creature)
{
- if (Creature* pPortal = me->SummonCreature(MOB_SMALL_PORTAL, *me, TEMPSUMMON_CORPSE_DESPAWN))
+ if (Creature* pPortal = me->SummonCreature(NPC_SMALL_PORTAL, *me, TEMPSUMMON_CORPSE_DESPAWN))
{
pPortal->SetReactState(REACT_PASSIVE);
Portal = pPortal->GetGUID();
@@ -935,13 +935,13 @@ public:
uint32 KillSelfTimer;
uint64 Portal;
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (Unit* p = Unit::GetUnit(*me, Portal))
p->Kill(p);
}
- void Reset()
+ void Reset() OVERRIDE
{
//Mind flay half a second after we spawn
MindflayTimer = 500;
@@ -950,12 +950,12 @@ public:
KillSelfTimer = 35000;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
DoZoneInCombat();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Check if we have a target
if (!UpdateVictim())
@@ -983,14 +983,14 @@ public:
};
-class mob_claw_tentacle : public CreatureScript
+class npc_claw_tentacle : public CreatureScript
{
public:
- mob_claw_tentacle() : CreatureScript("mob_claw_tentacle") { }
+ npc_claw_tentacle() : CreatureScript("npc_claw_tentacle") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new claw_tentacleAI (creature);
+ return new claw_tentacleAI(creature);
}
struct claw_tentacleAI : public ScriptedAI
@@ -999,7 +999,7 @@ public:
{
SetCombatMovement(false);
- if (Creature* pPortal = me->SummonCreature(MOB_SMALL_PORTAL, *me, TEMPSUMMON_CORPSE_DESPAWN))
+ if (Creature* pPortal = me->SummonCreature(NPC_SMALL_PORTAL, *me, TEMPSUMMON_CORPSE_DESPAWN))
{
pPortal->SetReactState(REACT_PASSIVE);
Portal = pPortal->GetGUID();
@@ -1011,13 +1011,13 @@ public:
uint32 EvadeTimer;
uint64 Portal;
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (Unit* p = Unit::GetUnit(*me, Portal))
p->Kill(p);
}
- void Reset()
+ void Reset() OVERRIDE
{
//First rupture should happen half a second after we spawn
GroundRuptureTimer = 500;
@@ -1025,19 +1025,19 @@ public:
EvadeTimer = 5000;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
DoZoneInCombat();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Check if we have a target
if (!UpdateVictim())
return;
//EvadeTimer
- if (!me->IsWithinMeleeRange(me->getVictim()))
+ if (!me->IsWithinMeleeRange(me->GetVictim()))
{
if (EvadeTimer <= diff)
{
@@ -1057,7 +1057,7 @@ public:
if (!target->HasAura(SPELL_DIGESTIVE_ACID))
{
me->SetPosition(target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0);
- if (Creature* pPortal = me->SummonCreature(MOB_SMALL_PORTAL, *me, TEMPSUMMON_CORPSE_DESPAWN))
+ if (Creature* pPortal = me->SummonCreature(NPC_SMALL_PORTAL, *me, TEMPSUMMON_CORPSE_DESPAWN))
{
pPortal->SetReactState(REACT_PASSIVE);
Portal = pPortal->GetGUID();
@@ -1076,14 +1076,14 @@ public:
//GroundRuptureTimer
if (GroundRuptureTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_GROUND_RUPTURE);
+ DoCastVictim(SPELL_GROUND_RUPTURE);
GroundRuptureTimer = 30000;
} else GroundRuptureTimer -= diff;
//HamstringTimer
if (HamstringTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_HAMSTRING);
+ DoCastVictim(SPELL_HAMSTRING);
HamstringTimer = 5000;
} else HamstringTimer -= diff;
@@ -1093,14 +1093,14 @@ public:
};
-class mob_giant_claw_tentacle : public CreatureScript
+class npc_giant_claw_tentacle : public CreatureScript
{
public:
- mob_giant_claw_tentacle() : CreatureScript("mob_giant_claw_tentacle") { }
+ npc_giant_claw_tentacle() : CreatureScript("npc_giant_claw_tentacle") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new giant_claw_tentacleAI (creature);
+ return new giant_claw_tentacleAI(creature);
}
struct giant_claw_tentacleAI : public ScriptedAI
@@ -1109,7 +1109,7 @@ public:
{
SetCombatMovement(false);
- if (Creature* pPortal = me->SummonCreature(MOB_GIANT_PORTAL, *me, TEMPSUMMON_CORPSE_DESPAWN))
+ if (Creature* pPortal = me->SummonCreature(NPC_GIANT_PORTAL, *me, TEMPSUMMON_CORPSE_DESPAWN))
{
pPortal->SetReactState(REACT_PASSIVE);
Portal = pPortal->GetGUID();
@@ -1122,13 +1122,13 @@ public:
uint32 EvadeTimer;
uint64 Portal;
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (Unit* p = Unit::GetUnit(*me, Portal))
p->Kill(p);
}
- void Reset()
+ void Reset() OVERRIDE
{
//First rupture should happen half a second after we spawn
GroundRuptureTimer = 500;
@@ -1137,19 +1137,19 @@ public:
EvadeTimer = 5000;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
DoZoneInCombat();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Check if we have a target
if (!UpdateVictim())
return;
//EvadeTimer
- if (!me->IsWithinMeleeRange(me->getVictim()))
+ if (!me->IsWithinMeleeRange(me->GetVictim()))
{
if (EvadeTimer <= diff)
{
@@ -1169,7 +1169,7 @@ public:
if (!target->HasAura(SPELL_DIGESTIVE_ACID))
{
me->SetPosition(target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0);
- if (Creature* pPortal = me->SummonCreature(MOB_GIANT_PORTAL, *me, TEMPSUMMON_CORPSE_DESPAWN))
+ if (Creature* pPortal = me->SummonCreature(NPC_GIANT_PORTAL, *me, TEMPSUMMON_CORPSE_DESPAWN))
{
pPortal->SetReactState(REACT_PASSIVE);
Portal = pPortal->GetGUID();
@@ -1188,21 +1188,21 @@ public:
//GroundRuptureTimer
if (GroundRuptureTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_GROUND_RUPTURE);
+ DoCastVictim(SPELL_GROUND_RUPTURE);
GroundRuptureTimer = 30000;
} else GroundRuptureTimer -= diff;
//ThrashTimer
if (ThrashTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_THRASH);
+ DoCastVictim(SPELL_THRASH);
ThrashTimer = 10000;
} else ThrashTimer -= diff;
//HamstringTimer
if (HamstringTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_HAMSTRING);
+ DoCastVictim(SPELL_HAMSTRING);
HamstringTimer = 10000;
} else HamstringTimer -= diff;
@@ -1212,14 +1212,14 @@ public:
};
-class mob_giant_eye_tentacle : public CreatureScript
+class npc_giant_eye_tentacle : public CreatureScript
{
public:
- mob_giant_eye_tentacle() : CreatureScript("mob_giant_eye_tentacle") { }
+ npc_giant_eye_tentacle() : CreatureScript("npc_giant_eye_tentacle") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new giant_eye_tentacleAI (creature);
+ return new giant_eye_tentacleAI(creature);
}
struct giant_eye_tentacleAI : public ScriptedAI
@@ -1228,7 +1228,7 @@ public:
{
SetCombatMovement(false);
- if (Creature* pPortal = me->SummonCreature(MOB_GIANT_PORTAL, *me, TEMPSUMMON_CORPSE_DESPAWN))
+ if (Creature* pPortal = me->SummonCreature(NPC_GIANT_PORTAL, *me, TEMPSUMMON_CORPSE_DESPAWN))
{
pPortal->SetReactState(REACT_PASSIVE);
Portal = pPortal->GetGUID();
@@ -1238,24 +1238,24 @@ public:
uint32 BeamTimer;
uint64 Portal;
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (Unit* p = Unit::GetUnit(*me, Portal))
p->Kill(p);
}
- void Reset()
+ void Reset() OVERRIDE
{
//Green Beam half a second after we spawn
BeamTimer = 500;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
DoZoneInCombat();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Check if we have a target
if (!UpdateVictim())
@@ -1276,14 +1276,14 @@ public:
};
-class mob_giant_flesh_tentacle : public CreatureScript
+class npc_giant_flesh_tentacle : public CreatureScript
{
public:
- mob_giant_flesh_tentacle() : CreatureScript("mob_giant_flesh_tentacle") { }
+ npc_giant_flesh_tentacle() : CreatureScript("npc_giant_flesh_tentacle") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new flesh_tentacleAI (creature);
+ return new flesh_tentacleAI(creature);
}
struct flesh_tentacleAI : public ScriptedAI
@@ -1293,7 +1293,7 @@ public:
SetCombatMovement(false);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (TempSummon* summon = me->ToTempSummon())
if (Unit* summoner = summon->GetSummoner())
@@ -1310,9 +1310,9 @@ void AddSC_boss_cthun()
{
new boss_eye_of_cthun();
new boss_cthun();
- new mob_eye_tentacle();
- new mob_claw_tentacle();
- new mob_giant_claw_tentacle();
- new mob_giant_eye_tentacle();
- new mob_giant_flesh_tentacle();
+ new npc_eye_tentacle();
+ new npc_claw_tentacle();
+ new npc_giant_claw_tentacle();
+ new npc_giant_eye_tentacle();
+ new npc_giant_flesh_tentacle();
}
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp
index de941ec266f..59c7565d060 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp
@@ -32,20 +32,23 @@ EndScriptData */
#define SOUND_TRESPASS 8591
#define SOUND_WILL_BE 8592
-#define SPELL_MORTAL_WOUND 28467
-#define SPELL_ROOT 28858
+enum Spells
+{
+ SPELL_MORTAL_WOUND = 28467,
+ SPELL_ROOT = 28858,
-// Enrage for his spawns
-#define SPELL_ENRAGE 28798
+ // Enrage for his spawns
+ SPELL_ENRAGE = 28798
+};
class boss_fankriss : public CreatureScript
{
public:
boss_fankriss() : CreatureScript("boss_fankriss") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_fankrissAI (creature);
+ return new boss_fankrissAI(creature);
}
struct boss_fankrissAI : public ScriptedAI
@@ -62,7 +65,7 @@ public:
Creature* Hatchling;
Creature* Spawn;
- void Reset()
+ void Reset() OVERRIDE
{
MortalWound_Timer = urand(10000, 15000);
SpawnHatchlings_Timer = urand(6000, 12000);
@@ -93,11 +96,11 @@ public:
Spawn->AI()->AttackStart(victim);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -106,7 +109,7 @@ public:
//MortalWound_Timer
if (MortalWound_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_MORTAL_WOUND);
+ DoCastVictim(SPELL_MORTAL_WOUND);
MortalWound_Timer = urand(10000, 20000);
} else MortalWound_Timer -= diff;
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_huhuran.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_huhuran.cpp
index f8cf0917c37..54da5a30802 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_huhuran.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_huhuran.cpp
@@ -44,9 +44,9 @@ class boss_huhuran : public CreatureScript
public:
boss_huhuran() : CreatureScript("boss_huhuran") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_huhuranAI (creature);
+ return new boss_huhuranAI(creature);
}
struct boss_huhuranAI : public ScriptedAI
@@ -63,7 +63,7 @@ public:
bool Frenzy;
bool Berserk;
- void Reset()
+ void Reset() OVERRIDE
{
Frenzy_Timer = urand(25000, 35000);
Wyvern_Timer = urand(18000, 28000);
@@ -76,11 +76,11 @@ public:
Berserk = false;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -107,14 +107,14 @@ public:
//Spit Timer
if (Spit_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_ACIDSPIT);
+ DoCastVictim(SPELL_ACIDSPIT);
Spit_Timer = urand(5000, 10000);
} else Spit_Timer -= diff;
//NoxiousPoison_Timer
if (NoxiousPoison_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_NOXIOUSPOISON);
+ DoCastVictim(SPELL_NOXIOUSPOISON);
NoxiousPoison_Timer = urand(12000, 24000);
} else NoxiousPoison_Timer -= diff;
@@ -123,7 +123,7 @@ public:
{
if (PoisonBolt_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_POISONBOLT);
+ DoCastVictim(SPELL_POISONBOLT);
PoisonBolt_Timer = 3000;
} else PoisonBolt_Timer -= diff;
}
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp
index 9b095b0100a..36dd93076e7 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp
@@ -41,9 +41,9 @@ class boss_ouro : public CreatureScript
public:
boss_ouro() : CreatureScript("boss_ouro") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_ouroAI (creature);
+ return new boss_ouroAI(creature);
}
struct boss_ouroAI : public ScriptedAI
@@ -60,7 +60,7 @@ public:
bool Enrage;
bool Submerged;
- void Reset()
+ void Reset() OVERRIDE
{
Sweep_Timer = urand(5000, 10000);
SandBlast_Timer = urand(20000, 35000);
@@ -73,12 +73,12 @@ public:
Submerged = false;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
- DoCast(me->getVictim(), SPELL_BIRTH);
+ DoCastVictim(SPELL_BIRTH);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -87,14 +87,14 @@ public:
//Sweep_Timer
if (!Submerged && Sweep_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_SWEEP);
+ DoCastVictim(SPELL_SWEEP);
Sweep_Timer = urand(15000, 30000);
} else Sweep_Timer -= diff;
//SandBlast_Timer
if (!Submerged && SandBlast_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_SANDBLAST);
+ DoCastVictim(SPELL_SANDBLAST);
SandBlast_Timer = urand(20000, 35000);
} else SandBlast_Timer -= diff;
@@ -129,7 +129,7 @@ public:
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->setFaction(14);
- DoCast(me->getVictim(), SPELL_GROUND_RUPTURE);
+ DoCastVictim(SPELL_GROUND_RUPTURE);
Submerged = false;
Submerge_Timer = urand(60000, 120000);
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp
index d4bb5416a4e..a12da4fabd1 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp
@@ -46,9 +46,9 @@ class boss_sartura : public CreatureScript
public:
boss_sartura() : CreatureScript("boss_sartura") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_sarturaAI (creature);
+ return new boss_sarturaAI(creature);
}
struct boss_sarturaAI : public ScriptedAI
@@ -67,7 +67,7 @@ public:
bool WhirlWind;
bool AggroReset;
- void Reset()
+ void Reset() OVERRIDE
{
WhirlWind_Timer = 30000;
WhirlWindRandom_Timer = urand(3000, 7000);
@@ -83,22 +83,22 @@ public:
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -184,19 +184,19 @@ public:
};
-class mob_sartura_royal_guard : public CreatureScript
+class npc_sartura_royal_guard : public CreatureScript
{
public:
- mob_sartura_royal_guard() : CreatureScript("mob_sartura_royal_guard") { }
+ npc_sartura_royal_guard() : CreatureScript("npc_sartura_royal_guard") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_sartura_royal_guardAI (creature);
+ return new npc_sartura_royal_guardAI(creature);
}
- struct mob_sartura_royal_guardAI : public ScriptedAI
+ struct npc_sartura_royal_guardAI : public ScriptedAI
{
- mob_sartura_royal_guardAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_sartura_royal_guardAI(Creature* creature) : ScriptedAI(creature) {}
uint32 WhirlWind_Timer;
uint32 WhirlWindRandom_Timer;
@@ -208,7 +208,7 @@ public:
bool WhirlWind;
bool AggroReset;
- void Reset()
+ void Reset() OVERRIDE
{
WhirlWind_Timer = 30000;
WhirlWindRandom_Timer = urand(3000, 7000);
@@ -221,11 +221,11 @@ public:
AggroReset = false;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -302,5 +302,5 @@ public:
void AddSC_boss_sartura()
{
new boss_sartura();
- new mob_sartura_royal_guard();
+ new npc_sartura_royal_guard();
}
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp
index 79bc0c5accf..1921cd77ce6 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp
@@ -40,10 +40,10 @@ enum Spells
enum Events
{
- EVENT_ARCANE_EXPLOSION = 0,
- EVENT_FULLFILMENT = 1,
- EVENT_BLINK = 2,
- EVENT_EARTH_SHOCK = 3
+ EVENT_ARCANE_EXPLOSION = 1,
+ EVENT_FULLFILMENT = 2,
+ EVENT_BLINK = 3,
+ EVENT_EARTH_SHOCK = 4
};
uint32 const BlinkSpells[3] = { 4801, 8195, 20449 };
@@ -57,26 +57,26 @@ class boss_skeram : public CreatureScript
{
boss_skeramAI(Creature* creature) : BossAI(creature, DATA_SKERAM) { }
- void Reset()
+ void Reset() OVERRIDE
{
_flag = 0;
_hpct = 75.0f;
me->SetVisible(true);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
ScriptedAI::EnterEvadeMode();
- if (me->isSummon())
+ if (me->IsSummon())
((TempSummon*)me)->UnSummon();
}
- void JustSummoned(Creature* creature)
+ void JustSummoned(Creature* creature) OVERRIDE
{
// Shift the boss and images (Get it? *Shift*?)
uint8 rand = 0;
@@ -113,15 +113,15 @@ class boss_skeram : public CreatureScript
creature->SetHealth(creature->GetMaxHealth() * (me->GetHealthPct() / 100.0f));
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
- if (!me->isSummon())
+ if (!me->IsSummon())
Talk(SAY_DEATH);
else
me->RemoveCorpse();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
events.Reset();
@@ -134,7 +134,7 @@ class boss_skeram : public CreatureScript
Talk(SAY_AGGRO);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -168,7 +168,7 @@ class boss_skeram : public CreatureScript
}
}
- if (!me->isSummon() && me->GetHealthPct() < _hpct)
+ if (!me->IsSummon() && me->GetHealthPct() < _hpct)
{
DoCast(me, SPELL_SUMMON_IMAGES);
Talk(SAY_SPLIT);
@@ -177,7 +177,7 @@ class boss_skeram : public CreatureScript
events.RescheduleEvent(EVENT_BLINK, 2000);
}
- if (me->IsWithinMeleeRange(me->getVictim()))
+ if (me->IsWithinMeleeRange(me->GetVictim()))
{
events.RescheduleEvent(EVENT_EARTH_SHOCK, 2000);
DoMeleeAttackIfReady();
@@ -189,7 +189,7 @@ class boss_skeram : public CreatureScript
uint8 _flag;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_skeramAI(creature);
}
@@ -201,7 +201,7 @@ class PlayerOrPetCheck
bool operator()(WorldObject* object) const
{
if (object->GetTypeId() != TYPEID_PLAYER)
- if (!object->ToCreature()->isPet())
+ if (!object->ToCreature()->IsPet())
return true;
return false;
@@ -222,13 +222,13 @@ class spell_skeram_arcane_explosion : public SpellScriptLoader
targets.remove_if(PlayerOrPetCheck());
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_skeram_arcane_explosion_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_skeram_arcane_explosion_SpellScript();
}
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp
index 5f677eedcf1..e9cf887f22b 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp
@@ -109,7 +109,7 @@ struct boss_twinemperorsAI : public ScriptedAI
return NULL;
}
- void DamageTaken(Unit* /*done_by*/, uint32 &damage)
+ void DamageTaken(Unit* /*done_by*/, uint32 &damage) OVERRIDE
{
Unit* pOtherBoss = GetOtherBoss();
if (pOtherBoss)
@@ -126,7 +126,7 @@ struct boss_twinemperorsAI : public ScriptedAI
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Creature* pOtherBoss = GetOtherBoss();
if (pOtherBoss)
@@ -140,12 +140,12 @@ struct boss_twinemperorsAI : public ScriptedAI
DoPlaySoundToSet(me, IAmVeklor() ? SOUND_VL_DEATH : SOUND_VN_DEATH);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
DoPlaySoundToSet(me, IAmVeklor() ? SOUND_VL_KILL : SOUND_VN_KILL);
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
DoZoneInCombat();
Creature* pOtherBoss = GetOtherBoss();
@@ -154,7 +154,7 @@ struct 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 = CAST_AI(ScriptedAI, pOtherBoss->AI());
- if (!pOtherBoss->isInCombat())
+ if (!pOtherBoss->IsInCombat())
{
DoPlaySoundToSet(me, IAmVeklor() ? SOUND_VL_AGGRO : SOUND_VN_AGGRO);
otherAI->AttackStart(who);
@@ -163,7 +163,7 @@ struct boss_twinemperorsAI : public ScriptedAI
}
}
- void SpellHit(Unit* caster, const SpellInfo* entry)
+ void SpellHit(Unit* caster, const SpellInfo* entry) OVERRIDE
{
if (caster == me)
return;
@@ -292,12 +292,13 @@ struct boss_twinemperorsAI : public ScriptedAI
}
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
- if (!who || me->getVictim())
+ if (!who || me->GetVictim())
return;
- if (me->canCreatureAttack(who))
+ if (me->CanCreatureAttack(who))
{
float attackRadius = me->GetAttackDistance(who);
if (attackRadius < PULL_RANGE)
@@ -391,9 +392,9 @@ class boss_veknilash : public CreatureScript
public:
boss_veknilash() : CreatureScript("boss_veknilash") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_veknilashAI (creature);
+ return new boss_veknilashAI(creature);
}
struct boss_veknilashAI : public boss_twinemperorsAI
@@ -410,7 +411,7 @@ public:
Creature* Summoned;
- void Reset()
+ void Reset() OVERRIDE
{
TwinReset();
UpperCut_Timer = urand(14000, 29000);
@@ -429,7 +430,7 @@ public:
target->SetFullHealth();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -441,7 +442,7 @@ public:
//UnbalancingStrike_Timer
if (UnbalancingStrike_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_UNBALANCING_STRIKE);
+ DoCastVictim(SPELL_UNBALANCING_STRIKE);
UnbalancingStrike_Timer = 8000+rand()%12000;
} else UnbalancingStrike_Timer -= diff;
@@ -477,9 +478,9 @@ class boss_veklor : public CreatureScript
public:
boss_veklor() : CreatureScript("boss_veklor") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_veklorAI (creature);
+ return new boss_veklorAI(creature);
}
struct boss_veklorAI : public boss_twinemperorsAI
@@ -497,7 +498,7 @@ public:
Creature* Summoned;
- void Reset()
+ void Reset() OVERRIDE
{
TwinReset();
ShadowBolt_Timer = 0;
@@ -518,7 +519,7 @@ public:
target->SetFullHealth();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -535,10 +536,10 @@ public:
//ShadowBolt_Timer
if (ShadowBolt_Timer <= diff)
{
- if (!me->IsWithinDist(me->getVictim(), 45.0f))
- me->GetMotionMaster()->MoveChase(me->getVictim(), VEKLOR_DIST, 0);
+ if (!me->IsWithinDist(me->GetVictim(), 45.0f))
+ me->GetMotionMaster()->MoveChase(me->GetVictim(), VEKLOR_DIST, 0);
else
- DoCast(me->getVictim(), SPELL_SHADOWBOLT);
+ DoCastVictim(SPELL_SHADOWBOLT);
ShadowBolt_Timer = 2000;
} else ShadowBolt_Timer -= diff;
@@ -579,7 +580,7 @@ public:
//DoMeleeAttackIfReady();
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (!who)
return;
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp
index ba93c3c2640..115d9d0d12c 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp
@@ -93,14 +93,14 @@ class boss_viscidus : public CreatureScript
{
boss_viscidusAI(Creature* creature) : BossAI(creature, DATA_VISCIDUS) { }
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
_hitcounter = 0;
_phase = PHASE_FROST;
}
- void DamageTaken(Unit* attacker, uint32& /*damage*/)
+ void DamageTaken(Unit* attacker, uint32& /*damage*/) OVERRIDE
{
if (_phase != PHASE_MELEE)
return;
@@ -139,7 +139,7 @@ class boss_viscidus : public CreatureScript
Talk(EMOTE_CRACK);
}
- void SpellHit(Unit* /*caster*/, SpellInfo const* spell)
+ void SpellHit(Unit* /*caster*/, SpellInfo const* spell) OVERRIDE
{
if ((spell->GetSchoolMask() & SPELL_SCHOOL_MASK_FROST) && _phase == PHASE_FROST && me->GetHealthPct() > 5.0f)
{
@@ -168,7 +168,7 @@ class boss_viscidus : public CreatureScript
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
events.Reset();
@@ -182,19 +182,19 @@ class boss_viscidus : public CreatureScript
events.ScheduleEvent(EVENT_POISON_SHOCK, urand(7000, 12000));
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
summons.DespawnAll();
ScriptedAI::EnterEvadeMode();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
DoCast(me, SPELL_VISCIDUS_SUICIDE);
summons.DespawnAll();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -245,7 +245,7 @@ class boss_viscidus : public CreatureScript
Phases _phase;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_viscidusAI(creature);
}
@@ -260,7 +260,7 @@ class npc_glob_of_viscidus : public CreatureScript
{
npc_glob_of_viscidusAI(Creature* creature) : ScriptedAI(creature) { }
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
InstanceScript* Instance = me->GetInstanceScript();
if (!Instance)
@@ -271,10 +271,10 @@ class npc_glob_of_viscidus : public CreatureScript
if (BossAI* ViscidusAI = dynamic_cast<BossAI*>(Viscidus->GetAI()))
ViscidusAI->SummonedCreatureDespawn(me);
- if (Viscidus->isAlive() && Viscidus->GetHealthPct() < 5.0f)
+ if (Viscidus->IsAlive() && Viscidus->GetHealthPct() < 5.0f)
{
Viscidus->SetVisible(true);
- Viscidus->getVictim()->Kill(Viscidus);
+ Viscidus->GetVictim()->Kill(Viscidus);
}
else
{
@@ -284,7 +284,7 @@ class npc_glob_of_viscidus : public CreatureScript
}
}
- void MovementInform(uint32 /*type*/, uint32 id)
+ void MovementInform(uint32 /*type*/, uint32 id) OVERRIDE
{
if (id == ROOM_CENTER)
{
@@ -294,7 +294,7 @@ class npc_glob_of_viscidus : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_glob_of_viscidusAI(creature);
}
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp
index 894849c5835..29b38befe29 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp
@@ -32,7 +32,7 @@ class instance_temple_of_ahnqiraj : public InstanceMapScript
public:
instance_temple_of_ahnqiraj() : InstanceMapScript("instance_temple_of_ahnqiraj", 531) { }
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_temple_of_ahnqiraj_InstanceMapScript(map);
}
@@ -105,7 +105,7 @@ class instance_temple_of_ahnqiraj : public InstanceMapScript
return false;
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -133,7 +133,7 @@ class instance_temple_of_ahnqiraj : public InstanceMapScript
return 0;
}
- uint64 GetData64(uint32 identifier) const
+ uint64 GetData64(uint32 identifier) const OVERRIDE
{
switch (identifier)
{
@@ -153,7 +153,7 @@ class instance_temple_of_ahnqiraj : public InstanceMapScript
return 0;
} // end GetData64
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
switch (type)
{
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/mob_anubisath_sentinel.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/mob_anubisath_sentinel.cpp
index a9419a727b3..d78f8bd609d 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/mob_anubisath_sentinel.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/mob_anubisath_sentinel.cpp
@@ -17,7 +17,7 @@
*/
/* ScriptData
-SDName: mob_anubisath_sentinel
+SDName: npc_anubisath_sentinel
SD%Complete: 95
SDComment: Shadow storm is not properly implemented in core it should only target ppl outside of melee range.
SDCategory: Temple of Ahn'Qiraj
@@ -36,34 +36,37 @@ EndScriptData */
#include "GridNotifiers.h"
#include "GridNotifiersImpl.h"
-#define SPELL_MENDING_BUFF 2147
+enum Spells
+{
+ SPELL_MENDING_BUFF = 2147,
-#define SPELL_KNOCK_BUFF 21737
-#define SPELL_KNOCK 25778
-#define SPELL_MANAB_BUFF 812
-#define SPELL_MANAB 25779
+ SPELL_KNOCK_BUFF = 21737,
+ SPELL_KNOCK = 25778,
+ SPELL_MANAB_BUFF = 812,
+ SPELL_MANAB = 25779,
-#define SPELL_REFLECTAF_BUFF 13022
-#define SPELL_REFLECTSFr_BUFF 19595
-#define SPELL_THORNS_BUFF 25777
+ SPELL_REFLECTAF_BUFF = 13022,
+ SPELL_REFLECTSFr_BUFF = 19595,
+ SPELL_THORNS_BUFF = 25777,
-#define SPELL_THUNDER_BUFF 2834
-#define SPELL_THUNDER 8732
+ SPELL_THUNDER_BUFF = 2834,
+ SPELL_THUNDER = 8732,
-#define SPELL_MSTRIKE_BUFF 9347
-#define SPELL_MSTRIKE 24573
+ SPELL_MSTRIKE_BUFF = 9347,
+ SPELL_MSTRIKE = 24573,
-#define SPELL_STORM_BUFF 2148
-#define SPELL_STORM 26546
+ SPELL_STORM_BUFF = 2148,
+ SPELL_STORM = 26546
+};
-class mob_anubisath_sentinel : public CreatureScript
+class npc_anubisath_sentinel : public CreatureScript
{
public:
- mob_anubisath_sentinel() : CreatureScript("mob_anubisath_sentinel") { }
+ npc_anubisath_sentinel() : CreatureScript("npc_anubisath_sentinel") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new aqsentinelAI (creature);
+ return new aqsentinelAI(creature);
}
struct aqsentinelAI : public ScriptedAI
@@ -140,7 +143,7 @@ public:
Creature* c = Unit::GetCreature(*me, NearbyGUID[i]);
if (c)
{
- if (!c->isInCombat())
+ if (!c->IsInCombat())
{
c->SetNoCallAssistance(true);
if (c->AI())
@@ -210,7 +213,7 @@ public:
bool gatherOthersWhenAggro;
- void Reset()
+ void Reset() OVERRIDE
{
if (!me->isDead())
{
@@ -234,7 +237,7 @@ public:
me->AddAura(id, me);
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (gatherOthersWhenAggro)
GetOtherSentinels(who);
@@ -243,7 +246,7 @@ public:
DoZoneInCombat();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
for (int ni=0; ni<3; ++ni)
{
@@ -259,7 +262,7 @@ public:
};
};
-void AddSC_mob_anubisath_sentinel()
+void AddSC_npc_anubisath_sentinel()
{
- new mob_anubisath_sentinel();
+ new npc_anubisath_sentinel();
}
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h
index eecdce51831..1a7ba226135 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h
@@ -40,15 +40,15 @@ enum DataTypes
enum Creatures
{
BOSS_EYE_OF_CTHUN = 15589,
- MOB_CTHUN_PORTAL = 15896,
- MOB_CLAW_TENTACLE = 15725,
- MOB_EYE_TENTACLE = 15726,
- MOB_SMALL_PORTAL = 15904,
- MOB_BODY_OF_CTHUN = 15809,
- MOB_GIANT_CLAW_TENTACLE = 15728,
- MOB_GIANT_EYE_TENTACLE = 15334,
- MOB_FLESH_TENTACLE = 15802,
- MOB_GIANT_PORTAL = 15910,
+ NPC_CTHUN_PORTAL = 15896,
+ NPC_CLAW_TENTACLE = 15725,
+ NPC_EYE_TENTACLE = 15726,
+ NPC_SMALL_PORTAL = 15904,
+ NPC_BODY_OF_CTHUN = 15809,
+ NPC_GIANT_CLAW_TENTACLE = 15728,
+ NPC_GIANT_EYE_TENTACLE = 15334,
+ NPC_FLESH_TENTACLE = 15802,
+ NPC_GIANT_PORTAL = 15910,
NPC_VISCIDUS = 15299,
NPC_GLOB_OF_VISCIDUS = 15667,
diff --git a/src/server/scripts/Kalimdor/WailingCaverns/instance_wailing_caverns.cpp b/src/server/scripts/Kalimdor/WailingCaverns/instance_wailing_caverns.cpp
index e09a7611f21..c477a82d085 100644
--- a/src/server/scripts/Kalimdor/WailingCaverns/instance_wailing_caverns.cpp
+++ b/src/server/scripts/Kalimdor/WailingCaverns/instance_wailing_caverns.cpp
@@ -34,7 +34,7 @@ class instance_wailing_caverns : public InstanceMapScript
public:
instance_wailing_caverns() : InstanceMapScript("instance_wailing_caverns", 43) { }
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_wailing_caverns_InstanceMapScript(map);
}
@@ -62,7 +62,7 @@ public:
NaralexGUID = creature->GetGUID();
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
switch (type)
{
@@ -80,7 +80,7 @@ public:
if (data == DONE)SaveToDB();
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -98,7 +98,7 @@ public:
return 0;
}
- uint64 GetData64(uint32 data) const
+ uint64 GetData64(uint32 data) const OVERRIDE
{
if (data == DATA_NARALEX)return NaralexGUID;
return 0;
diff --git a/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp b/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp
index a4a5e0d94be..706c6e1804d 100644
--- a/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp
+++ b/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp
@@ -79,12 +79,12 @@ class npc_disciple_of_naralex : public CreatureScript
public:
npc_disciple_of_naralex() : CreatureScript("npc_disciple_of_naralex") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_disciple_of_naralexAI(creature);
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
InstanceScript* instance = creature->GetInstanceScript();
@@ -106,7 +106,7 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
InstanceScript* instance = creature->GetInstanceScript();
@@ -150,7 +150,7 @@ public:
uint32 eventProgress;
InstanceScript* instance;
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
if (!instance)
return;
@@ -182,17 +182,17 @@ public:
}
}
- void Reset()
+ void Reset() OVERRIDE
{
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
Talk(SAY_ATTACKED, who->GetGUID());
}
- void JustDied(Unit* /*slayer*/)
+ void JustDied(Unit* /*slayer*/) OVERRIDE
{
if (instance)
{
@@ -203,12 +203,12 @@ public:
}
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
summoned->AI()->AttackStart(me);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (currentEvent != TYPE_NARALEX_PART3)
npc_escortAI::UpdateAI(diff);
diff --git a/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.h b/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.h
index c8a1d4b3159..0a1848acbf9 100644
--- a/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.h
+++ b/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.h
@@ -19,7 +19,7 @@
#ifndef DEF_WAILING_CAVERNS_H
#define DEF_WAILING_CAVERNS_H
-enum eTypes
+enum DataTypes
{
TYPE_LORD_COBRAHN = 1,
TYPE_LORD_PYTHAS = 2,
diff --git a/src/server/scripts/Kalimdor/ZulFarrak/instance_zulfarrak.cpp b/src/server/scripts/Kalimdor/ZulFarrak/instance_zulfarrak.cpp
index 8fd0d2e3621..de27368a227 100644
--- a/src/server/scripts/Kalimdor/ZulFarrak/instance_zulfarrak.cpp
+++ b/src/server/scripts/Kalimdor/ZulFarrak/instance_zulfarrak.cpp
@@ -21,8 +21,14 @@
#include "Player.h"
#include "TemporarySummon.h"
-#define NPC_GAHZRILLA 7273
-#define PATH_ADDS 81553
+enum Misc
+{
+ // Creatures
+ NPC_GAHZRILLA = 7273,
+
+ // Paths
+ PATH_ADDS = 81553
+};
int const pyramidSpawnTotal = 54;
/* list of wave spawns: 0 = wave ID, 1 = creature id, 2 = x, 3 = y
@@ -95,7 +101,7 @@ class instance_zulfarrak : public InstanceMapScript
public:
instance_zulfarrak() : InstanceMapScript("instance_zulfarrak", 209) { }
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_zulfarrak_InstanceMapScript(map);
}
@@ -181,7 +187,7 @@ public:
}
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -191,7 +197,7 @@ public:
return 0;
}
- uint64 GetData64(uint32 data) const
+ uint64 GetData64(uint32 data) const OVERRIDE
{
switch (data)
{
@@ -213,7 +219,7 @@ public:
return 0;
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
switch (type)
{
@@ -314,7 +320,7 @@ public:
{
if (Creature* npc = instance->GetCreature(GetData64(entry)))
{
- if (npc->isAlive())
+ if (npc->IsAlive())
{
npc->SetWalk(true);
npc->GetMotionMaster()->MovePoint(1, x, y, z);
@@ -343,7 +349,7 @@ public:
{
if (Creature* add = instance->GetCreature((*itr)))
{
- if (add->isAlive())
+ if (add->IsAlive())
return false;
}
}
@@ -351,7 +357,7 @@ public:
{
if (Creature* add = instance->GetCreature(((*itr))))
{
- if (add->isAlive())
+ if (add->IsAlive())
return false;
}
}
diff --git a/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp b/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp
index f3a74c620ae..c8d83a54e1e 100644
--- a/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp
+++ b/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp
@@ -64,7 +64,7 @@ class npc_sergeant_bly : public CreatureScript
public:
npc_sergeant_bly() : CreatureScript("npc_sergeant_bly") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF+1)
@@ -76,7 +76,7 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
if (InstanceScript* instance = creature->GetInstanceScript())
{
@@ -95,9 +95,9 @@ public:
return false;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_sergeant_blyAI (creature);
+ return new npc_sergeant_blyAI(creature);
}
struct npc_sergeant_blyAI : public ScriptedAI
@@ -113,10 +113,10 @@ public:
uint32 postGossipStep;
uint32 Text_Timer;
uint32 ShieldBash_Timer;
- uint32 Revenge_Timer; //this is wrong, spell should never be used unless me->getVictim() dodge, parry or block attack. Trinity support required.
+ uint32 Revenge_Timer; //this is wrong, spell should never be used unless me->GetVictim() dodge, parry or block attack. Trinity support required.
uint64 PlayerGUID;
- void Reset()
+ void Reset() OVERRIDE
{
ShieldBash_Timer = 5000;
Revenge_Timer = 8000;
@@ -124,7 +124,7 @@ public:
me->setFaction(FACTION_FRIENDLY);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (postGossipStep>0 && postGossipStep<4)
{
@@ -165,7 +165,7 @@ public:
if (ShieldBash_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_SHIELD_BASH);
+ DoCastVictim(SPELL_SHIELD_BASH);
ShieldBash_Timer = 15000;
}
else
@@ -173,7 +173,7 @@ public:
if (Revenge_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_REVENGE);
+ DoCastVictim(SPELL_REVENGE);
Revenge_Timer = 10000;
}
else
@@ -182,7 +182,7 @@ public:
DoMeleeAttackIfReady();
}
- void DoAction(int32 /*param*/)
+ void DoAction(int32 /*param*/) OVERRIDE
{
postGossipStep=1;
Text_Timer = 0;
@@ -191,7 +191,7 @@ public:
void switchFactionIfAlive(InstanceScript* instance, uint32 entry)
{
if (Creature* crew = instance->instance->GetCreature(instance->GetData64(entry)))
- if (crew->isAlive())
+ if (crew->IsAlive())
crew->setFaction(FACTION_HOSTILE);
}
};
@@ -207,7 +207,7 @@ class go_troll_cage : public GameObjectScript
public:
go_troll_cage() : GameObjectScript("go_troll_cage") { }
- bool OnGossipHello(Player* /*player*/, GameObject* go)
+ bool OnGossipHello(Player* /*player*/, GameObject* go) OVERRIDE
{
if (InstanceScript* instance = go->GetInstanceScript())
{
@@ -261,7 +261,7 @@ class npc_weegli_blastfuse : public CreatureScript
public:
npc_weegli_blastfuse() : CreatureScript("npc_weegli_blastfuse") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF+1)
@@ -273,7 +273,7 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
if (InstanceScript* instance = creature->GetInstanceScript())
{
@@ -294,9 +294,9 @@ public:
return false;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_weegli_blastfuseAI (creature);
+ return new npc_weegli_blastfuseAI(creature);
}
struct npc_weegli_blastfuseAI : public ScriptedAI
@@ -314,39 +314,39 @@ public:
bool destroyingDoor;
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
/*if (instance)
instance->SetData(0, NOT_STARTED);*/
}
- void AttackStart(Unit* victim)
+ void AttackStart(Unit* victim) OVERRIDE
{
AttackStartCaster(victim, 10);//keep back & toss bombs/shoot
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
/*if (instance)
instance->SetData(0, DONE);*/
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
if (Bomb_Timer < diff)
{
- DoCast(me->getVictim(), SPELL_BOMB);
+ DoCastVictim(SPELL_BOMB);
Bomb_Timer = 10000;
}
else
Bomb_Timer -= diff;
- if (me->isAttackReady() && !me->IsWithinMeleeRange(me->getVictim()))
+ if (me->isAttackReady() && !me->IsWithinMeleeRange(me->GetVictim()))
{
- DoCast(me->getVictim(), SPELL_SHOOT);
+ DoCastVictim(SPELL_SHOOT);
me->SetSheath(SHEATH_STATE_RANGED);
}
else
@@ -356,7 +356,7 @@ public:
}
}
- void MovementInform(uint32 /*type*/, uint32 /*id*/)
+ void MovementInform(uint32 /*type*/, uint32 /*id*/) OVERRIDE
{
if (instance)
{
@@ -376,14 +376,14 @@ public:
}
}
- void DoAction(int32 /*param*/)
+ void DoAction(int32 /*param*/) OVERRIDE
{
DestroyDoor();
}
void DestroyDoor()
{
- if (me->isAlive())
+ if (me->IsAlive())
{
me->setFaction(FACTION_FRIENDLY);
me->GetMotionMaster()->MovePoint(0, 1858.57f, 1146.35f, 14.745f);
@@ -400,12 +400,12 @@ public:
## go_shallow_grave
######*/
-enum
+enum ShallowGrave
{
- ZOMBIE = 7286,
- DEAD_HERO = 7276,
- ZOMBIE_CHANCE = 65,
- DEAD_HERO_CHANCE = 10
+ NPC_ZOMBIE = 7286,
+ NPC_DEAD_HERO = 7276,
+ CHANCE_ZOMBIE = 65,
+ CHANCE_DEAD_HERO = 10
};
class go_shallow_grave : public GameObjectScript
@@ -413,17 +413,17 @@ class go_shallow_grave : public GameObjectScript
public:
go_shallow_grave() : GameObjectScript("go_shallow_grave") { }
- bool OnGossipHello(Player* /*player*/, GameObject* go)
+ bool OnGossipHello(Player* /*player*/, GameObject* go) OVERRIDE
{
// randomly summon a zombie or dead hero the first time a grave is used
if (go->GetUseCount() == 0)
{
uint32 randomchance = urand(0, 100);
- if (randomchance < ZOMBIE_CHANCE)
- go->SummonCreature(ZOMBIE, go->GetPositionX(), go->GetPositionY(), go->GetPositionZ(), 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 30000);
+ if (randomchance < CHANCE_ZOMBIE)
+ go->SummonCreature(NPC_ZOMBIE, go->GetPositionX(), go->GetPositionY(), go->GetPositionZ(), 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 30000);
else
- if ((randomchance - ZOMBIE_CHANCE) < DEAD_HERO_CHANCE)
- go->SummonCreature(DEAD_HERO, go->GetPositionX(), go->GetPositionY(), go->GetPositionZ(), 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 30000);
+ if ((randomchance - CHANCE_ZOMBIE) < CHANCE_DEAD_HERO)
+ go->SummonCreature(NPC_DEAD_HERO, go->GetPositionX(), go->GetPositionY(), go->GetPositionZ(), 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 30000);
}
go->AddUse();
return false;
@@ -445,7 +445,7 @@ class at_zumrah : public AreaTriggerScript
public:
at_zumrah() : AreaTriggerScript("at_zumrah") { }
- bool OnTrigger(Player* player, const AreaTriggerEntry* /*at*/)
+ bool OnTrigger(Player* player, const AreaTriggerEntry* /*at*/) OVERRIDE
{
Creature* pZumrah = player->FindNearestCreature(ZUMRAH_ID, 30.0f);
diff --git a/src/server/scripts/Kalimdor/boss_azuregos.cpp b/src/server/scripts/Kalimdor/boss_azuregos.cpp
index dd202247aaa..56d380b7b46 100644
--- a/src/server/scripts/Kalimdor/boss_azuregos.cpp
+++ b/src/server/scripts/Kalimdor/boss_azuregos.cpp
@@ -47,9 +47,9 @@ class boss_azuregos : public CreatureScript
public:
boss_azuregos() : CreatureScript("boss_azuregos") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_azuregosAI (creature);
+ return new boss_azuregosAI(creature);
}
struct boss_azuregosAI : public ScriptedAI
@@ -66,7 +66,7 @@ public:
uint32 EnrageTimer;
bool Enraged;
- void Reset()
+ void Reset() OVERRIDE
{
MarkOfFrostTimer = 35000;
ManaStormTimer = urand(5000, 17000);
@@ -79,9 +79,9 @@ public:
Enraged = false;
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -108,21 +108,21 @@ public:
// //MarkOfFrostTimer
// if (MarkOfFrostTimer <= diff)
// {
- // DoCast(me->getVictim(), SPELL_MARKOFFROST);
+ // DoCastVictim(SPELL_MARKOFFROST);
// MarkOfFrostTimer = 25000;
// } else MarkOfFrostTimer -= diff;
//ChillTimer
if (ChillTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_CHILL);
+ DoCastVictim(SPELL_CHILL);
ChillTimer = urand(13000, 25000);
} else ChillTimer -= diff;
//BreathTimer
if (BreathTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_FROSTBREATH);
+ DoCastVictim(SPELL_FROSTBREATH);
BreathTimer = urand(10000, 15000);
} else BreathTimer -= diff;
@@ -144,7 +144,7 @@ public:
//CleaveTimer
if (CleaveTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_CLEAVE);
+ DoCastVictim(SPELL_CLEAVE);
CleaveTimer = 7000;
} else CleaveTimer -= diff;
diff --git a/src/server/scripts/Kalimdor/zone_ashenvale.cpp b/src/server/scripts/Kalimdor/zone_ashenvale.cpp
index 4d7ded57501..bd4c2f893c5 100644
--- a/src/server/scripts/Kalimdor/zone_ashenvale.cpp
+++ b/src/server/scripts/Kalimdor/zone_ashenvale.cpp
@@ -78,7 +78,7 @@ class npc_torek : public CreatureScript
uint32 Thunderclap_Timer;
bool Completed;
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
if (Player* player = GetPlayerForEscort())
{
@@ -108,23 +108,23 @@ class npc_torek : public CreatureScript
}
}
- void Reset()
+ void Reset() OVERRIDE
{
Rend_Timer = 5000;
Thunderclap_Timer = 8000;
Completed = false;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
summoned->AI()->AttackStart(me);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
npc_escortAI::UpdateAI(diff);
@@ -133,7 +133,7 @@ class npc_torek : public CreatureScript
if (Rend_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_REND);
+ DoCastVictim(SPELL_REND);
Rend_Timer = 20000;
} else Rend_Timer -= diff;
@@ -145,12 +145,12 @@ class npc_torek : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_torekAI(creature);
}
- bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_TOREK_ASSULT)
{
@@ -200,7 +200,7 @@ class npc_ruul_snowhoof : public CreatureScript
{
npc_ruul_snowhoofAI(Creature* creature) : npc_escortAI(creature) { }
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
Player* player = GetPlayerForEscort();
if (!player)
@@ -229,31 +229,31 @@ class npc_ruul_snowhoof : public CreatureScript
}
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void Reset()
+ void Reset() OVERRIDE
{
if (GameObject* Cage = me->FindNearestGameObject(GO_CAGE, 20))
Cage->SetGoState(GO_STATE_READY);
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
summoned->AI()->AttackStart(me);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
npc_escortAI::UpdateAI(diff);
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_ruul_snowhoofAI(creature);
}
- bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_FREEDOM_TO_RUUL)
{
@@ -325,12 +325,12 @@ class npc_muglash : public CreatureScript
uint32 EventTimer;
bool IsBrazierExtinguished;
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
summoned->AI()->AttackStart(me);
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
if (Player* player = GetPlayerForEscort())
{
@@ -362,7 +362,7 @@ class npc_muglash : public CreatureScript
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (Player* player = GetPlayerForEscort())
if (HasEscortState(STATE_ESCORT_PAUSED))
@@ -373,14 +373,14 @@ class npc_muglash : public CreatureScript
}
}
- void Reset()
+ void Reset() OVERRIDE
{
EventTimer = 10000;
WaveId = 0;
IsBrazierExtinguished = false;
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (HasEscortState(STATE_ESCORT_ESCORTING))
if (Player* player = GetPlayerForEscort())
@@ -411,11 +411,11 @@ class npc_muglash : public CreatureScript
}
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
npc_escortAI::UpdateAI(uiDiff);
- if (!me->getVictim())
+ if (!me->GetVictim())
{
if (HasEscortState(STATE_ESCORT_PAUSED) && IsBrazierExtinguished)
{
@@ -434,12 +434,12 @@ class npc_muglash : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_muglashAI(creature);
}
- bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_VORSHA)
{
@@ -460,7 +460,7 @@ class go_naga_brazier : public GameObjectScript
public:
go_naga_brazier() : GameObjectScript("go_naga_brazier") { }
- bool OnGossipHello(Player* /*player*/, GameObject* go)
+ bool OnGossipHello(Player* /*player*/, GameObject* go) OVERRIDE
{
if (Creature* creature = GetClosestCreatureWithEntry(go, NPC_MUGLASH, INTERACTION_DISTANCE*2))
{
diff --git a/src/server/scripts/Kalimdor/zone_azshara.cpp b/src/server/scripts/Kalimdor/zone_azshara.cpp
index 66834a68253..01b8b9c1bcf 100644
--- a/src/server/scripts/Kalimdor/zone_azshara.cpp
+++ b/src/server/scripts/Kalimdor/zone_azshara.cpp
@@ -24,10 +24,10 @@ SDCategory: Azshara
EndScriptData */
/* ContentData
-mobs_spitelashes
+npc_spitelashes
npc_loramus_thalipedes
-mob_rizzle_sprysprocket
-mob_depth_charge
+npc_rizzle_sprysprocket
+npc_depth_charge
EndContentData */
#include "ScriptMgr.h"
@@ -38,35 +38,35 @@ EndContentData */
#include "WorldSession.h"
/*######
-## mobs_spitelashes
+## npc_spitelashes
######*/
-class mobs_spitelashes : public CreatureScript
+class npc_spitelashes : public CreatureScript
{
public:
- mobs_spitelashes() : CreatureScript("mobs_spitelashes") { }
+ npc_spitelashes() : CreatureScript("npc_spitelashes") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mobs_spitelashesAI (creature);
+ return new npc_spitelashesAI(creature);
}
- struct mobs_spitelashesAI : public ScriptedAI
+ struct npc_spitelashesAI : public ScriptedAI
{
- mobs_spitelashesAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_spitelashesAI(Creature* creature) : ScriptedAI(creature) {}
uint32 morphtimer;
bool spellhit;
- void Reset()
+ void Reset() OVERRIDE
{
morphtimer = 0;
spellhit = false;
}
- void EnterCombat(Unit* /*who*/) { }
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void SpellHit(Unit* unit, const SpellInfo* spell)
+ void SpellHit(Unit* unit, const SpellInfo* spell) OVERRIDE
{
if (spellhit)
return;
@@ -89,7 +89,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
// we mustn't remove the Creature in the same round in which we cast the summon spell, otherwise there will be no summons
if (spellhit && morphtimer >= 5000)
@@ -134,7 +134,7 @@ class npc_loramus_thalipedes : public CreatureScript
public:
npc_loramus_thalipedes() : CreatureScript("npc_loramus_thalipedes") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -172,9 +172,9 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
if (player->GetQuestStatus(2744) == QUEST_STATUS_INCOMPLETE)
@@ -190,14 +190,14 @@ public:
};
/*####
-# mob_rizzle_sprysprocket
+# npc_rizzle_sprysprocket
####*/
enum RizzleSprysprocketData
{
QUEST_CHASING_THE_MOONSTONE = 10994,
- MOB_DEPTH_CHARGE = 23025,
+ NPC_DEPTH_CHARGE = 23025,
SPELL_RIZZLE_BLACKJACK = 39865,
SPELL_RIZZLE_ESCAPE = 39871,
@@ -276,25 +276,25 @@ Position const WPs[58] =
{1873.57f, -3695.32f, 33.9118f, 3.44f}
};
-class mob_rizzle_sprysprocket : public CreatureScript
+class npc_rizzle_sprysprocket : public CreatureScript
{
public:
- mob_rizzle_sprysprocket() : CreatureScript("mob_rizzle_sprysprocket") { }
+ npc_rizzle_sprysprocket() : CreatureScript("npc_rizzle_sprysprocket") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF + 1 && player->GetQuestStatus(QUEST_CHASING_THE_MOONSTONE) == QUEST_STATUS_INCOMPLETE)
{
player->CLOSE_GOSSIP_MENU();
creature->CastSpell(player, SPELL_GIVE_SOUTHFURY_MOONSTONE, true);
- CAST_AI(mob_rizzle_sprysprocket::mob_rizzle_sprysprocketAI, creature->AI())->MustDieTimer = 3000;
- CAST_AI(mob_rizzle_sprysprocket::mob_rizzle_sprysprocketAI, creature->AI())->MustDie = true;
+ CAST_AI(npc_rizzle_sprysprocket::npc_rizzle_sprysprocketAI, creature->AI())->MustDieTimer = 3000;
+ CAST_AI(npc_rizzle_sprysprocket::npc_rizzle_sprysprocketAI, creature->AI())->MustDie = true;
}
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
if (player->GetQuestStatus(QUEST_CHASING_THE_MOONSTONE) != QUEST_STATUS_INCOMPLETE)
return true;
@@ -303,14 +303,14 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_rizzle_sprysprocketAI (creature);
+ return new npc_rizzle_sprysprocketAI(creature);
}
- struct mob_rizzle_sprysprocketAI : public ScriptedAI
+ struct npc_rizzle_sprysprocketAI : public ScriptedAI
{
- mob_rizzle_sprysprocketAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_rizzle_sprysprocketAI(Creature* creature) : ScriptedAI(creature) {}
uint32 SpellEscapeTimer;
uint32 TeleportTimer;
@@ -326,7 +326,7 @@ public:
bool ContinueWP;
bool Reached;
- void Reset()
+ void Reset() OVERRIDE
{
SpellEscapeTimer = 1300;
TeleportTimer = 3500;
@@ -343,7 +343,7 @@ public:
Reached = false;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (MustDie)
{
@@ -377,7 +377,8 @@ public:
Talk(MSG_ESCAPE_NOTICE, player->GetGUID());
DoCast(me, SPELL_PERIODIC_DEPTH_CHARGE);
- me->SetUnitMovementFlags(MOVEMENTFLAG_HOVER | MOVEMENTFLAG_SWIMMING);
+ me->SetHover(true);
+ me->SetSwim(true);
me->SetSpeed(MOVE_RUN, 0.85f, true);
me->GetMotionMaster()->MovementExpired();
me->GetMotionMaster()->MovePoint(CurrWP, WPs[CurrWP]);
@@ -435,7 +436,7 @@ public:
sWorld->SendServerMessage(SERVER_MSG_STRING, text, player);
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (!who || PlayerGUID)
return;
@@ -451,9 +452,9 @@ public:
}
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type != POINT_MOTION_TYPE)
return;
@@ -471,34 +472,35 @@ public:
};
/*####
-# mob_depth_charge
+# npc_depth_charge
####*/
-class mob_depth_charge : public CreatureScript
+class npc_depth_charge : public CreatureScript
{
public:
- mob_depth_charge() : CreatureScript("mob_depth_charge") { }
+ npc_depth_charge() : CreatureScript("npc_depth_charge") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_depth_chargeAI (creature);
+ return new npc_depth_chargeAI(creature);
}
- struct mob_depth_chargeAI : public ScriptedAI
+ struct npc_depth_chargeAI : public ScriptedAI
{
- mob_depth_chargeAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_depth_chargeAI(Creature* creature) : ScriptedAI(creature) {}
bool WeMustDie;
uint32 WeMustDieTimer;
- void Reset()
+ void Reset() OVERRIDE
{
- me->SetUnitMovementFlags(MOVEMENTFLAG_HOVER | MOVEMENTFLAG_SWIMMING);
+ me->SetHover(true);
+ me->SetSwim(true);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
WeMustDie = false;
WeMustDieTimer = 1000;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (WeMustDie)
{
@@ -510,7 +512,8 @@ public:
return;
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (!who)
return;
@@ -523,16 +526,16 @@ public:
}
}
- void AttackStart(Unit* /*who*/) {}
+ void AttackStart(Unit* /*who*/) OVERRIDE {}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
};
};
void AddSC_azshara()
{
- new mobs_spitelashes();
+ new npc_spitelashes();
new npc_loramus_thalipedes();
- new mob_rizzle_sprysprocket();
- new mob_depth_charge();
+ new npc_rizzle_sprysprocket();
+ new npc_depth_charge();
}
diff --git a/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp b/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp
index cb5c36e4412..f5c8c90d921 100644
--- a/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp
+++ b/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp
@@ -61,9 +61,9 @@ class npc_draenei_survivor : public CreatureScript
public:
npc_draenei_survivor() : CreatureScript("npc_draenei_survivor") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_draenei_survivorAI (creature);
+ return new npc_draenei_survivorAI(creature);
}
struct npc_draenei_survivorAI : public ScriptedAI
@@ -78,7 +78,7 @@ public:
bool CanSayHelp;
- void Reset()
+ void Reset() OVERRIDE
{
pCaster = 0;
@@ -96,9 +96,10 @@ public:
me->SetStandState(UNIT_STAND_STATE_SLEEP);
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+
+ void MoveInLineOfSight(Unit* who) OVERRIDE
- void MoveInLineOfSight(Unit* who)
{
if (CanSayHelp && who->GetTypeId() == TYPEID_PLAYER && me->IsFriendlyTo(who) && me->IsWithinDistInMap(who, 25.0f))
{
@@ -110,7 +111,7 @@ public:
}
}
- void SpellHit(Unit* Caster, const SpellInfo* Spell)
+ void SpellHit(Unit* Caster, const SpellInfo* Spell) OVERRIDE
{
if (Spell->SpellFamilyFlags[2] & 0x080000000)
{
@@ -125,7 +126,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (SayThanksTimer)
{
@@ -194,7 +195,7 @@ class npc_engineer_spark_overgrind : public CreatureScript
public:
npc_engineer_spark_overgrind() : CreatureScript("npc_engineer_spark_overgrind") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF)
@@ -206,7 +207,7 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
if (player->GetQuestStatus(QUEST_GNOMERCY) == QUEST_STATUS_INCOMPLETE)
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_FIGHT, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
@@ -215,9 +216,9 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_engineer_spark_overgrindAI (creature);
+ return new npc_engineer_spark_overgrindAI(creature);
}
struct npc_engineer_spark_overgrindAI : public ScriptedAI
@@ -239,7 +240,7 @@ public:
bool IsTreeEvent;
- void Reset()
+ void Reset() OVERRIDE
{
DynamiteTimer = 8000;
EmoteTimer = urand(120000, 150000);
@@ -250,14 +251,14 @@ public:
IsTreeEvent = false;
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
Talk(ATTACK_YELL, who->GetGUID());
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
- if (!me->isInCombat() && !IsTreeEvent)
+ if (!me->IsInCombat() && !IsTreeEvent)
{
if (EmoteTimer <= diff)
{
@@ -274,7 +275,7 @@ public:
if (DynamiteTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_DYNAMITE);
+ DoCastVictim(SPELL_DYNAMITE);
DynamiteTimer = 8000;
} else DynamiteTimer -= diff;
@@ -293,16 +294,16 @@ class npc_injured_draenei : public CreatureScript
public:
npc_injured_draenei() : CreatureScript("npc_injured_draenei") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_injured_draeneiAI (creature);
+ return new npc_injured_draeneiAI(creature);
}
struct npc_injured_draeneiAI : public ScriptedAI
{
npc_injured_draeneiAI(Creature* creature) : ScriptedAI(creature) {}
- void Reset()
+ void Reset() OVERRIDE
{
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT);
me->SetHealth(me->CountPctFromMaxHealth(15));
@@ -318,11 +319,12 @@ public:
}
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
- void MoveInLineOfSight(Unit* /*who*/) {}
- void UpdateAI(uint32 /*diff*/) {}
+ void UpdateAI(uint32 /*diff*/) OVERRIDE {}
};
};
@@ -348,7 +350,7 @@ class npc_magwin : public CreatureScript
public:
npc_magwin() : CreatureScript("npc_magwin") { }
- bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_A_CRY_FOR_SAY_HELP)
{
@@ -359,7 +361,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_magwinAI(creature);
}
@@ -368,7 +370,7 @@ public:
{
npc_magwinAI(Creature* creature) : npc_escortAI(creature) {}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
if (Player* player = GetPlayerForEscort())
{
@@ -392,12 +394,12 @@ public:
}
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
Talk(SAY_AGGRO, who->GetGUID());
}
- void Reset() {}
+ void Reset() OVERRIDE {}
};
};
@@ -422,7 +424,7 @@ enum Geezle
EMOTE_SPARK = 7,
- MOB_SPARK = 17243,
+ NPC_SPARK = 17243,
GO_NAGA_FLAG = 181694
};
@@ -433,7 +435,7 @@ class npc_geezle : public CreatureScript
public:
npc_geezle() : CreatureScript("npc_geezle") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_geezleAI(creature);
}
@@ -449,20 +451,20 @@ public:
bool EventStarted;
- void Reset()
+ void Reset() OVERRIDE
{
SparkGUID = 0;
Step = 0;
StartEvent();
}
- void EnterCombat(Unit* /*who*/){}
+ void EnterCombat(Unit* /*who*/)OVERRIDE {}
void StartEvent()
{
Step = 0;
EventStarted = true;
- if (Creature* Spark = me->SummonCreature(MOB_SPARK, SparkPos, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 1000))
+ if (Creature* Spark = me->SummonCreature(NPC_SPARK, SparkPos, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 1000))
{
SparkGUID = Spark->GetGUID();
Spark->setActive(true);
@@ -534,7 +536,7 @@ public:
for (std::list<Player*>::const_iterator itr = players.begin(); itr != players.end(); ++itr)
if ((*itr)->GetQuestStatus(QUEST_TREES_COMPANY) == QUEST_STATUS_INCOMPLETE && (*itr)->HasAura(SPELL_TREE_DISGUISE))
- (*itr)->KilledMonsterCredit(MOB_SPARK, 0);
+ (*itr)->KilledMonsterCredit(NPC_SPARK, 0);
}
void DespawnNagaFlag(bool despawn)
@@ -556,7 +558,7 @@ public:
TC_LOG_ERROR(LOG_FILTER_TSCR, "SD2 ERROR: FlagList is empty!");
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (SayTimer <= diff)
{
@@ -585,7 +587,7 @@ class go_ravager_cage : public GameObjectScript
public:
go_ravager_cage() : GameObjectScript("go_ravager_cage") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
go->UseDoorOrButton();
if (player->GetQuestStatus(QUEST_STRENGTH_ONE) == QUEST_STATUS_INCOMPLETE)
@@ -606,7 +608,7 @@ class npc_death_ravager : public CreatureScript
public:
npc_death_ravager() : CreatureScript("npc_death_ravager") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_death_ravagerAI(creature);
}
@@ -618,7 +620,7 @@ public:
uint32 RendTimer;
uint32 EnragingBiteTimer;
- void Reset()
+ void Reset() OVERRIDE
{
RendTimer = 30000;
EnragingBiteTimer = 20000;
@@ -627,21 +629,21 @@ public:
me->SetReactState(REACT_PASSIVE);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
if (RendTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_REND);
+ DoCastVictim(SPELL_REND);
RendTimer = 30000;
}
else RendTimer -= diff;
if (EnragingBiteTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_ENRAGING_BITE);
+ DoCastVictim(SPELL_ENRAGING_BITE);
EnragingBiteTimer = 15000;
}
else EnragingBiteTimer -= diff;
@@ -677,7 +679,7 @@ class npc_stillpine_capitive : public CreatureScript
{
npc_stillpine_capitiveAI(Creature* creature) : ScriptedAI(creature) {}
- void Reset()
+ void Reset() OVERRIDE
{
if (GameObject* cage = me->FindNearestGameObject(GO_BRISTELIMB_CAGE, 5.0f))
{
@@ -701,7 +703,7 @@ class npc_stillpine_capitive : public CreatureScript
me->GetMotionMaster()->MovePoint(POINT_INIT, pos);
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type != POINT_MOTION_TYPE || id != POINT_INIT)
return;
@@ -713,7 +715,7 @@ class npc_stillpine_capitive : public CreatureScript
_events.ScheduleEvent(EVENT_DESPAWN, 3500);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!_movementComplete)
return;
@@ -730,7 +732,7 @@ class npc_stillpine_capitive : public CreatureScript
bool _movementComplete;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_stillpine_capitiveAI(creature);
}
@@ -741,7 +743,7 @@ class go_bristlelimb_cage : public GameObjectScript
public:
go_bristlelimb_cage() : GameObjectScript("go_bristlelimb_cage") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
go->SetGoState(GO_STATE_READY);
if (player->GetQuestStatus(QUEST_THE_PROPHECY_OF_AKIDA) == QUEST_STATUS_INCOMPLETE)
diff --git a/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp b/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp
index 102a9494a65..ab74a76a440 100644
--- a/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp
+++ b/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp
@@ -24,7 +24,7 @@ SDCategory: Bloodmyst Isle
EndScriptData */
/* ContentData
-mob_webbed_creature
+npc_webbed_creature
npc_captured_sunhawk_agent
EndContentData */
@@ -34,31 +34,31 @@ EndContentData */
#include "Player.h"
/*######
-## mob_webbed_creature
+## npc_webbed_creature
######*/
//possible creatures to be spawned
uint32 const possibleSpawns[32] = {17322, 17661, 17496, 17522, 17340, 17352, 17333, 17524, 17654, 17348, 17339, 17345, 17359, 17353, 17336, 17550, 17330, 17701, 17321, 17680, 17325, 17320, 17683, 17342, 17715, 17334, 17341, 17338, 17337, 17346, 17344, 17327};
-class mob_webbed_creature : public CreatureScript
+class npc_webbed_creature : public CreatureScript
{
public:
- mob_webbed_creature() : CreatureScript("mob_webbed_creature") { }
+ npc_webbed_creature() : CreatureScript("npc_webbed_creature") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_webbed_creatureAI (creature);
+ return new npc_webbed_creatureAI(creature);
}
- struct mob_webbed_creatureAI : public ScriptedAI
+ struct npc_webbed_creatureAI : public ScriptedAI
{
- mob_webbed_creatureAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_webbed_creatureAI(Creature* creature) : ScriptedAI(creature) {}
- void Reset() {}
+ void Reset() OVERRIDE {}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
uint32 spawnCreatureID = 0;
@@ -100,7 +100,7 @@ class npc_captured_sunhawk_agent : public CreatureScript
public:
npc_captured_sunhawk_agent() : CreatureScript("npc_captured_sunhawk_agent") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -133,7 +133,7 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
if (player->HasAura(31609) && player->GetQuestStatus(9756) == QUEST_STATUS_INCOMPLETE)
{
@@ -166,7 +166,7 @@ class go_princess_stillpines_cage : public GameObjectScript
public:
go_princess_stillpines_cage() : GameObjectScript("go_princess_stillpines_cage") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
go->SetGoState(GO_STATE_READY);
if (Creature* stillpine = go->FindNearestCreature(NPC_PRINCESS_STILLPINE, 25, true))
@@ -187,7 +187,7 @@ public:
{
npc_princess_stillpineAI(Creature* creature) : ScriptedAI(creature) {}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type == POINT_MOTION_TYPE && id == 1)
{
@@ -197,7 +197,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_princess_stillpineAI(creature);
}
@@ -205,7 +205,7 @@ public:
void AddSC_bloodmyst_isle()
{
- new mob_webbed_creature();
+ new npc_webbed_creature();
new npc_captured_sunhawk_agent();
new npc_princess_stillpine();
new go_princess_stillpines_cage();
diff --git a/src/server/scripts/Kalimdor/zone_darkshore.cpp b/src/server/scripts/Kalimdor/zone_darkshore.cpp
index c7115a9098b..5350693471b 100644
--- a/src/server/scripts/Kalimdor/zone_darkshore.cpp
+++ b/src/server/scripts/Kalimdor/zone_darkshore.cpp
@@ -63,7 +63,7 @@ class npc_kerlonian : public CreatureScript
public:
npc_kerlonian() : CreatureScript("npc_kerlonian") { }
- bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_SLEEPER_AWAKENED)
{
@@ -78,7 +78,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_kerlonianAI(creature);
}
@@ -89,16 +89,17 @@ public:
uint32 FallAsleepTimer;
- void Reset()
+ void Reset() OVERRIDE
{
FallAsleepTimer = urand(10000, 45000);
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
FollowerAI::MoveInLineOfSight(who);
- if (!me->getVictim() && !HasFollowState(STATE_FOLLOW_COMPLETE) && who->GetEntry() == NPC_LILADRIS)
+ if (!me->GetVictim() && !HasFollowState(STATE_FOLLOW_COMPLETE) && who->GetEntry() == NPC_LILADRIS)
{
if (me->IsWithinDistInMap(who, INTERACTION_DISTANCE*5))
{
@@ -115,7 +116,7 @@ public:
}
}
- void SpellHit(Unit* /*pCaster*/, const SpellInfo* pSpell)
+ void SpellHit(Unit* /*pCaster*/, const SpellInfo* pSpell) OVERRIDE
{
if (HasFollowState(STATE_FOLLOW_INPROGRESS | STATE_FOLLOW_PAUSED) && pSpell->Id == SPELL_AWAKEN)
ClearSleeping();
@@ -143,7 +144,7 @@ public:
SetFollowPaused(false);
}
- void UpdateFollowerAI(uint32 Diff)
+ void UpdateFollowerAI(uint32 Diff) OVERRIDE
{
if (!UpdateVictim())
{
@@ -202,7 +203,7 @@ class npc_prospector_remtravel : public CreatureScript
public:
npc_prospector_remtravel() : CreatureScript("npc_prospector_remtravel") { }
- bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_ABSENT_MINDED_PT2)
{
@@ -215,7 +216,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_prospector_remtravelAI(creature);
}
@@ -224,7 +225,7 @@ public:
{
npc_prospector_remtravelAI(Creature* creature) : npc_escortAI(creature) {}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
if (Player* player = GetPlayerForEscort())
{
@@ -285,15 +286,15 @@ public:
}
}
- void Reset() {}
+ void Reset() OVERRIDE {}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (urand(0, 1))
Talk(SAY_REM_AGGRO, who->GetGUID());
}
- void JustSummoned(Creature* /*pSummoned*/)
+ void JustSummoned(Creature* /*pSummoned*/) OVERRIDE
{
//unsure if it should be any
//pSummoned->AI()->AttackStart(me);
@@ -322,7 +323,7 @@ class npc_threshwackonator : public CreatureScript
public:
npc_threshwackonator() : CreatureScript("npc_threshwackonator") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF+1)
@@ -339,7 +340,7 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
if (player->GetQuestStatus(QUEST_GYROMAST_REV) == QUEST_STATUS_INCOMPLETE)
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_INSERT_KEY, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
@@ -348,7 +349,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_threshwackonatorAI(creature);
}
@@ -357,13 +358,14 @@ public:
{
npc_threshwackonatorAI(Creature* creature) : FollowerAI(creature) { }
- void Reset() { }
+ void Reset() OVERRIDE {}
+
+ void MoveInLineOfSight(Unit* who) OVERRIDE
- void MoveInLineOfSight(Unit* who)
{
FollowerAI::MoveInLineOfSight(who);
- if (!me->getVictim() && !HasFollowState(STATE_FOLLOW_COMPLETE) && who->GetEntry() == NPC_GELKAK)
+ if (!me->GetVictim() && !HasFollowState(STATE_FOLLOW_COMPLETE) && who->GetEntry() == NPC_GELKAK)
{
if (me->IsWithinDistInMap(who, 10.0f))
{
diff --git a/src/server/scripts/Kalimdor/zone_desolace.cpp b/src/server/scripts/Kalimdor/zone_desolace.cpp
index b21cb28e0d5..882bc176932 100644
--- a/src/server/scripts/Kalimdor/zone_desolace.cpp
+++ b/src/server/scripts/Kalimdor/zone_desolace.cpp
@@ -61,7 +61,7 @@ class npc_aged_dying_ancient_kodo : public CreatureScript
public:
npc_aged_dying_ancient_kodo() : CreatureScript("npc_aged_dying_ancient_kodo") { }
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
if (player->HasAura(SPELL_KODO_KOMBO_PLAYER_BUFF) && creature->HasAura(SPELL_KODO_KOMBO_DESPAWN_BUFF))
{
@@ -77,7 +77,8 @@ public:
{
npc_aged_dying_ancient_kodoAI(Creature* creature) : ScriptedAI(creature) {}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (who->GetEntry() == NPC_SMEED && me->IsWithinDistInMap(who, 10.0f) && !me->HasAura(SPELL_KODO_KOMBO_GOSSIP))
{
@@ -88,7 +89,7 @@ public:
}
}
- void SpellHit(Unit* caster, SpellInfo const* spell)
+ void SpellHit(Unit* caster, SpellInfo const* spell) OVERRIDE
{
if (spell->Id == SPELL_KODO_KOMBO_ITEM)
{
@@ -110,7 +111,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_aged_dying_ancient_kodoAI(creature);
}
@@ -133,7 +134,7 @@ class go_iruxos : public GameObjectScript
public:
go_iruxos() : GameObjectScript("go_iruxos") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
if (player->GetQuestStatus(QUEST_HAND_IRUXOS) == QUEST_STATUS_INCOMPLETE && !go->FindNearestCreature(NPC_DEMON_SPIRIT, 25.0f, true))
player->SummonCreature(NPC_DEMON_SPIRIT, go->GetPositionX(), go->GetPositionY(), go->GetPositionZ(), 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 10000);
@@ -156,7 +157,7 @@ class npc_dalinda : public CreatureScript
public:
npc_dalinda() : CreatureScript("npc_dalinda") { }
- bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_RETURN_TO_VAHLARRIEL)
{
@@ -169,7 +170,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_dalindaAI(creature);
}
@@ -178,7 +179,7 @@ public:
{
npc_dalindaAI(Creature* creature) : npc_escortAI(creature) { }
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
Player* player = GetPlayerForEscort();
@@ -194,18 +195,18 @@ public:
}
}
- void EnterCombat(Unit* /*who*/) { }
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void Reset() {}
+ void Reset() OVERRIDE {}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (Player* player = GetPlayerForEscort())
player->FailQuest(QUEST_RETURN_TO_VAHLARRIEL);
return;
}
- void UpdateAI(uint32 Diff)
+ void UpdateAI(uint32 Diff) OVERRIDE
{
npc_escortAI::UpdateAI(Diff);
if (!UpdateVictim())
@@ -231,7 +232,7 @@ class go_demon_portal : public GameObjectScript
public:
go_demon_portal() : GameObjectScript("go_demon_portal") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
if (player->GetQuestStatus(QUEST_PORTAL_OF_THE_LEGION) == QUEST_STATUS_INCOMPLETE && !go->FindNearestCreature(NPC_DEMON_GUARDIAN, 5.0f, true))
{
diff --git a/src/server/scripts/Kalimdor/zone_durotar.cpp b/src/server/scripts/Kalimdor/zone_durotar.cpp
index 801ffbc038e..1eec2c826ea 100644
--- a/src/server/scripts/Kalimdor/zone_durotar.cpp
+++ b/src/server/scripts/Kalimdor/zone_durotar.cpp
@@ -44,7 +44,7 @@ class npc_lazy_peon : public CreatureScript
public:
npc_lazy_peon() : CreatureScript("npc_lazy_peon") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_lazy_peonAI(creature);
}
@@ -58,20 +58,20 @@ public:
uint32 RebuffTimer;
bool work;
- void Reset()
+ void Reset() OVERRIDE
{
PlayerGUID = 0;
RebuffTimer = 0;
work = false;
}
- void MovementInform(uint32 /*type*/, uint32 id)
+ void MovementInform(uint32 /*type*/, uint32 id) OVERRIDE
{
if (id == 1)
work = true;
}
- void SpellHit(Unit* caster, const SpellInfo* spell)
+ void SpellHit(Unit* caster, const SpellInfo* spell) OVERRIDE
{
if (spell->Id != SPELL_AWAKEN_PEON)
return;
@@ -87,7 +87,7 @@ public:
}
}
- void UpdateAI(uint32 Diff)
+ void UpdateAI(uint32 Diff) OVERRIDE
{
if (work == true)
me->HandleEmoteCommand(EMOTE_ONESHOT_WORK_CHOPWOOD);
@@ -186,7 +186,7 @@ class npc_tiger_matriarch_credit : public CreatureScript
events.ScheduleEvent(EVENT_CHECK_SUMMON_AURA, 2000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
events.Update(diff);
@@ -198,12 +198,12 @@ class npc_tiger_matriarch_credit : public CreatureScript
{
for (std::list<Creature*>::iterator itr = tigers.begin(); itr != tigers.end(); ++itr)
{
- if (!(*itr)->isSummon())
+ if (!(*itr)->IsSummon())
continue;
if (Unit* summoner = (*itr)->ToTempSummon()->GetSummoner())
if (!summoner->HasAura(SPELL_NO_SUMMON_AURA) && !summoner->HasAura(SPELL_SUMMON_ZENTABRA_TRIGGER)
- && !summoner->isInCombat())
+ && !summoner->IsInCombat())
{
me->AddAura(SPELL_NO_SUMMON_AURA, summoner);
me->AddAura(SPELL_DETECT_INVIS, summoner);
@@ -221,7 +221,7 @@ class npc_tiger_matriarch_credit : public CreatureScript
EventMap events;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_tiger_matriarch_creditAI(creature);
}
@@ -239,14 +239,14 @@ class npc_tiger_matriarch : public CreatureScript
{
}
- void EnterCombat(Unit* /*target*/)
+ void EnterCombat(Unit* /*target*/) OVERRIDE
{
_events.Reset();
_events.ScheduleEvent(EVENT_POUNCE, 100);
_events.ScheduleEvent(EVENT_NOSUMMON, 50000);
}
- void IsSummonedBy(Unit* summoner)
+ void IsSummonedBy(Unit* summoner) OVERRIDE
{
if (summoner->GetTypeId() != TYPEID_PLAYER || !summoner->GetVehicle())
return;
@@ -259,9 +259,9 @@ class npc_tiger_matriarch : public CreatureScript
}
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
- if (victim->GetTypeId() != TYPEID_UNIT || !victim->isSummon())
+ if (victim->GetTypeId() != TYPEID_UNIT || !victim->IsSummon())
return;
if (Unit* vehSummoner = victim->ToTempSummon()->GetSummoner())
@@ -274,9 +274,9 @@ class npc_tiger_matriarch : public CreatureScript
me->DespawnOrUnsummon();
}
- void DamageTaken(Unit* attacker, uint32& damage)
+ void DamageTaken(Unit* attacker, uint32& damage) OVERRIDE
{
- if (!attacker->isSummon())
+ if (!attacker->IsSummon())
return;
if (HealthBelowPct(20))
@@ -298,7 +298,7 @@ class npc_tiger_matriarch : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -319,7 +319,7 @@ class npc_tiger_matriarch : public CreatureScript
case EVENT_NOSUMMON: // Reapply SPELL_NO_SUMMON_AURA
if (Unit* tiger = ObjectAccessor::GetUnit(*me, _tigerGuid))
{
- if (tiger->isSummon())
+ if (tiger->IsSummon())
if (Unit* vehSummoner = tiger->ToTempSummon()->GetSummoner())
me->AddAura(SPELL_NO_SUMMON_AURA, vehSummoner);
}
@@ -338,7 +338,7 @@ class npc_tiger_matriarch : public CreatureScript
uint64 _tigerGuid;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_tiger_matriarchAI(creature);
}
@@ -362,7 +362,7 @@ class npc_troll_volunteer : public CreatureScript
{
}
- void InitializeAI()
+ void InitializeAI() OVERRIDE
{
if (me->isDead() || !me->GetOwner())
return;
@@ -389,7 +389,7 @@ class npc_troll_volunteer : public CreatureScript
me->GetMotionMaster()->MoveFollow(player, 5.0f, float(rand_norm() + 1.0f) * M_PI / 3.0f * 4.0f);
}
- void Reset()
+ void Reset() OVERRIDE
{
_complete = false;
me->AddAura(SPELL_VOLUNTEER_AURA, me);
@@ -405,7 +405,7 @@ class npc_troll_volunteer : public CreatureScript
return _mountModel;
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type != POINT_MOTION_TYPE)
return;
@@ -413,7 +413,7 @@ class npc_troll_volunteer : public CreatureScript
me->DespawnOrUnsummon();
}
- void SpellHit(Unit* caster, SpellInfo const* spell)
+ void SpellHit(Unit* caster, SpellInfo const* spell) OVERRIDE
{
if (spell->Id == SPELL_AOE_TURNIN && caster->GetEntry() == NPC_URUZIN && !_complete)
{
@@ -432,7 +432,7 @@ class npc_troll_volunteer : public CreatureScript
bool _complete;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_troll_volunteerAI(creature);
}
@@ -448,7 +448,8 @@ class spell_mount_check : public SpellScriptLoader
class spell_mount_check_AuraScript : public AuraScript
{
PrepareAuraScript(spell_mount_check_AuraScript)
- bool Validate(SpellInfo const* /*spellEntry*/)
+
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_MOUNTING_CHECK))
return false;
@@ -475,13 +476,13 @@ class spell_mount_check : public SpellScriptLoader
target->SetSpeed(MOVE_WALK, owner->GetSpeedRate(MOVE_WALK));
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_mount_check_AuraScript::HandleEffectPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_mount_check_AuraScript();
}
@@ -495,7 +496,8 @@ class spell_voljin_war_drums : public SpellScriptLoader
class spell_voljin_war_drums_SpellScript : public SpellScript
{
PrepareSpellScript(spell_voljin_war_drums_SpellScript)
- bool Validate(SpellInfo const* /*spellEntry*/)
+
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_MOTIVATE_1))
return false;
@@ -519,13 +521,13 @@ class spell_voljin_war_drums : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_voljin_war_drums_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_voljin_war_drums_SpellScript();
}
@@ -552,7 +554,7 @@ class spell_voodoo : public SpellScriptLoader
{
PrepareSpellScript(spell_voodoo_SpellScript)
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_BREW) || !sSpellMgr->GetSpellInfo(SPELL_GHOSTLY) ||
!sSpellMgr->GetSpellInfo(SPELL_HEX1) || !sSpellMgr->GetSpellInfo(SPELL_HEX2) ||
@@ -569,13 +571,13 @@ class spell_voodoo : public SpellScriptLoader
GetCaster()->CastSpell(target, spellid, false);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_voodoo_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_voodoo_SpellScript();
}
diff --git a/src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp b/src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp
index 0e858c20d26..33cce095abf 100644
--- a/src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp
+++ b/src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp
@@ -24,7 +24,7 @@ SDCategory: Dustwallow Marsh
EndScriptData */
/* ContentData
-mobs_risen_husk_spirit
+npc_risen_husk_spirit
npc_lady_jaina_proudmoore
npc_nat_pagle
npc_private_hendel
@@ -40,7 +40,7 @@ EndContentData */
#include "WorldSession.h"
/*######
-## mobs_risen_husk_spirit
+## npc_risen_husk_spirit
######*/
enum HauntingWitchHill
@@ -61,20 +61,20 @@ enum HauntingWitchHill
NPC_RISEN_SPIRIT = 23554,
// Events
- EVENT_CONSUME_FLESH = 0,
- EVENT_INTANGIBLE_PRESENCE = 1,
+ EVENT_CONSUME_FLESH = 1,
+ EVENT_INTANGIBLE_PRESENCE = 2,
};
-class mobs_risen_husk_spirit : public CreatureScript
+class npc_risen_husk_spirit : public CreatureScript
{
public:
- mobs_risen_husk_spirit() : CreatureScript("mobs_risen_husk_spirit") { }
+ npc_risen_husk_spirit() : CreatureScript("npc_risen_husk_spirit") { }
- struct mobs_risen_husk_spiritAI : public ScriptedAI
+ struct npc_risen_husk_spiritAI : public ScriptedAI
{
- mobs_risen_husk_spiritAI(Creature* creature) : ScriptedAI(creature) { }
+ npc_risen_husk_spiritAI(Creature* creature) : ScriptedAI(creature) { }
- void Reset()
+ void Reset() OVERRIDE
{
events.Reset();
if (me->GetEntry() == NPC_RISEN_HUSK)
@@ -83,7 +83,7 @@ class mobs_risen_husk_spirit : public CreatureScript
events.ScheduleEvent(EVENT_INTANGIBLE_PRESENCE, 5000);
}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
if (killer->GetTypeId() == TYPEID_PLAYER)
{
@@ -95,7 +95,7 @@ class mobs_risen_husk_spirit : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -126,9 +126,9 @@ class mobs_risen_husk_spirit : public CreatureScript
EventMap events;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mobs_risen_husk_spiritAI (creature);
+ return new npc_risen_husk_spiritAI(creature);
}
};
@@ -157,7 +157,7 @@ class npc_theramore_guard : public CreatureScript
public:
npc_theramore_guard() : CreatureScript("npc_theramore_guard") { }
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
if (player->GetQuestStatus(QUEST_DISCREDITING_THE_DESERTERS) == QUEST_STATUS_INCOMPLETE)
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_THERAMORE_GUARD, GOSSIP_SENDER_MAIN, GOSSIP_SENDER_INFO);
@@ -167,7 +167,7 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
@@ -185,7 +185,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_theramore_guardAI(creature);
}
@@ -198,13 +198,13 @@ public:
uint32 Step;
bool bYellTimer;
- void Reset()
+ void Reset() OVERRIDE
{
bYellTimer = false;
Step = 0;
}
- void UpdateAI(uint32 Diff)
+ void UpdateAI(uint32 Diff) OVERRIDE
{
if (!me->HasAura(SPELL_PROPAGANDIZED))
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
@@ -249,7 +249,7 @@ class npc_lady_jaina_proudmoore : public CreatureScript
public:
npc_lady_jaina_proudmoore() : CreatureScript("npc_lady_jaina_proudmoore") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_SENDER_INFO)
@@ -260,9 +260,9 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
if (player->GetQuestStatus(QUEST_JAINAS_AUTOGRAPH) == QUEST_STATUS_INCOMPLETE)
@@ -289,7 +289,7 @@ class npc_nat_pagle : public CreatureScript
public:
npc_nat_pagle() : CreatureScript("npc_nat_pagle") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_TRADE)
@@ -298,12 +298,12 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
- if (creature->isVendor() && player->GetQuestRewardStatus(QUEST_NATS_MEASURING_TAPE))
+ if (creature->IsVendor() && player->GetQuestRewardStatus(QUEST_NATS_MEASURING_TAPE))
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
player->SEND_GOSSIP_MENU(7640, creature->GetGUID());
@@ -342,7 +342,7 @@ class npc_private_hendel : public CreatureScript
public:
npc_private_hendel() : CreatureScript("npc_private_hendel") { }
- bool OnQuestAccept(Player* /*player*/, Creature* creature, const Quest* quest)
+ bool OnQuestAccept(Player* /*player*/, Creature* creature, const Quest* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_MISSING_DIPLO_PT16)
creature->setFaction(FACTION_HOSTILE);
@@ -350,7 +350,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_private_hendelAI(creature);
}
@@ -359,14 +359,14 @@ public:
{
npc_private_hendelAI(Creature* creature) : ScriptedAI(creature) { }
- void Reset()
+ void Reset() OVERRIDE
{
me->RestoreFaction();
}
- void AttackedBy(Unit* pAttacker)
+ void AttackedBy(Unit* pAttacker) OVERRIDE
{
- if (me->getVictim())
+ if (me->GetVictim())
return;
if (me->IsFriendlyTo(pAttacker))
@@ -375,7 +375,7 @@ public:
AttackStart(pAttacker);
}
- void DamageTaken(Unit* pDoneBy, uint32 &Damage)
+ void DamageTaken(Unit* pDoneBy, uint32 &Damage) OVERRIDE
{
if (Damage > me->GetHealth() || me->HealthBelowPctDamaged(20, Damage))
{
@@ -409,7 +409,7 @@ class npc_zelfrax : public CreatureScript
public:
npc_zelfrax() : CreatureScript("npc_zelfrax") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_zelfraxAI(creature);
}
@@ -421,7 +421,7 @@ public:
MoveToDock();
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (!who)
return;
@@ -436,7 +436,7 @@ public:
}
}
- void MovementInform(uint32 Type, uint32 /*Id*/)
+ void MovementInform(uint32 Type, uint32 /*Id*/) OVERRIDE
{
if (Type != POINT_MOTION_TYPE)
return;
@@ -445,8 +445,8 @@ public:
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
SetCombatMovement(true);
- if (me->isInCombat())
- if (Unit* unit = me->getVictim())
+ if (me->IsInCombat())
+ if (Unit* unit = me->GetVictim())
me->GetMotionMaster()->MoveChase(unit);
}
@@ -458,7 +458,7 @@ public:
Talk(SAY_ZELFRAX2);
}
- void UpdateAI(uint32 /*Diff*/)
+ void UpdateAI(uint32 /*Diff*/) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -494,12 +494,12 @@ class npc_stinky : public CreatureScript
public:
npc_stinky() : CreatureScript("npc_stinky") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_stinkyAI(creature);
}
- bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_STINKYS_ESCAPE_H || quest->GetQuestId() == QUEST_STINKYS_ESCAPE_A)
{
@@ -518,7 +518,7 @@ public:
{
npc_stinkyAI(Creature* creature) : npc_escortAI(creature) { }
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
Player* player = GetPlayerForEscort();
if (!player)
@@ -563,14 +563,14 @@ public:
}
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
Talk(SAY_ATTACKED_1, who->GetGUID());
}
- void Reset() {}
+ void Reset() OVERRIDE {}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Player* player = GetPlayerForEscort();
if (player && HasEscortState(STATE_ESCORT_ESCORTING))
@@ -583,7 +583,7 @@ public:
}
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
npc_escortAI::UpdateAI(uiDiff);
@@ -612,7 +612,7 @@ class spell_ooze_zap : public SpellScriptLoader
{
PrepareSpellScript(spell_ooze_zap_SpellScript);
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_OOZE_ZAP))
return false;
@@ -637,14 +637,14 @@ class spell_ooze_zap : public SpellScriptLoader
GetCaster()->CastSpell(GetHitUnit(), uint32(GetEffectValue()), true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_ooze_zap_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
OnCheckCast += SpellCheckCastFn(spell_ooze_zap_SpellScript::CheckRequirement);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_ooze_zap_SpellScript();
}
@@ -659,7 +659,7 @@ class spell_ooze_zap_channel_end : public SpellScriptLoader
{
PrepareSpellScript(spell_ooze_zap_channel_end_SpellScript);
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_OOZE_ZAP_CHANNEL_END))
return false;
@@ -674,13 +674,13 @@ class spell_ooze_zap_channel_end : public SpellScriptLoader
GetHitUnit()->Kill(GetHitUnit());
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_ooze_zap_channel_end_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_ooze_zap_channel_end_SpellScript();
}
@@ -695,7 +695,7 @@ class spell_energize_aoe : public SpellScriptLoader
{
PrepareSpellScript(spell_energize_aoe_SpellScript);
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_ENERGIZED))
return false;
@@ -720,7 +720,7 @@ class spell_energize_aoe : public SpellScriptLoader
GetCaster()->CastSpell(GetCaster(), uint32(GetEffectValue()), true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_energize_aoe_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_energize_aoe_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENTRY);
@@ -728,7 +728,7 @@ class spell_energize_aoe : public SpellScriptLoader
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_energize_aoe_SpellScript();
}
@@ -749,7 +749,7 @@ class go_blackhoof_cage : public GameObjectScript
public:
go_blackhoof_cage() : GameObjectScript("go_blackhoof_cage") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
go->UseDoorOrButton();
if (Creature* prisoner = go->FindNearestCreature(NPC_THERAMORE_PRISONER, 1.0f))
@@ -766,7 +766,7 @@ public:
void AddSC_dustwallow_marsh()
{
- new mobs_risen_husk_spirit();
+ new npc_risen_husk_spirit();
new npc_lady_jaina_proudmoore();
new npc_nat_pagle();
new npc_private_hendel();
diff --git a/src/server/scripts/Kalimdor/zone_felwood.cpp b/src/server/scripts/Kalimdor/zone_felwood.cpp
index e23eaa961bb..45ef955ccbb 100644
--- a/src/server/scripts/Kalimdor/zone_felwood.cpp
+++ b/src/server/scripts/Kalimdor/zone_felwood.cpp
@@ -54,7 +54,7 @@ class npcs_riverbreeze_and_silversky : public CreatureScript
public:
npcs_riverbreeze_and_silversky() : CreatureScript("npcs_riverbreeze_and_silversky") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF+1)
@@ -65,9 +65,9 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
uint32 creatureId = creature->GetEntry();
diff --git a/src/server/scripts/Kalimdor/zone_feralas.cpp b/src/server/scripts/Kalimdor/zone_feralas.cpp
index 2d5b383cefc..3402722e2d7 100644
--- a/src/server/scripts/Kalimdor/zone_feralas.cpp
+++ b/src/server/scripts/Kalimdor/zone_feralas.cpp
@@ -42,7 +42,7 @@ class npc_gregan_brewspewer : public CreatureScript
public:
npc_gregan_brewspewer() : CreatureScript("npc_gregan_brewspewer") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF+1)
@@ -55,12 +55,12 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
- if (creature->isVendor() && player->GetQuestStatus(3909) == QUEST_STATUS_INCOMPLETE)
+ if (creature->IsVendor() && player->GetQuestStatus(3909) == QUEST_STATUS_INCOMPLETE)
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HELLO, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
player->SEND_GOSSIP_MENU(2433, creature->GetGUID());
@@ -97,7 +97,7 @@ class npc_oox22fe : public CreatureScript
public:
npc_oox22fe() : CreatureScript("npc_oox22fe") { }
- bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_RESCUE_OOX22FE)
{
@@ -118,7 +118,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_oox22feAI(creature);
}
@@ -127,7 +127,7 @@ public:
{
npc_oox22feAI(Creature* creature) : npc_escortAI(creature) { }
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
switch (waypointId)
{
@@ -162,20 +162,20 @@ public:
}
}
- void Reset()
+ void Reset() OVERRIDE
{
if (!HasEscortState(STATE_ESCORT_ESCORTING))
me->SetStandState(UNIT_STAND_STATE_DEAD);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
//For an small probability the npc says something when he get aggro
if (urand(0, 9) > 7)
Talk(SAY_OOX_AGGRO);
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
summoned->AI()->AttackStart(me);
}
@@ -192,7 +192,7 @@ class npc_screecher_spirit : public CreatureScript
public:
npc_screecher_spirit() : CreatureScript("npc_screecher_spirit") { }
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
player->SEND_GOSSIP_MENU(2039, creature->GetGUID());
player->TalkedToCreature(creature->GetEntry(), creature->GetGUID());
@@ -227,13 +227,13 @@ class spell_gordunni_trap : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnCast += SpellCastFn(spell_gordunni_trap_SpellScript::HandleDummy);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_gordunni_trap_SpellScript();
}
diff --git a/src/server/scripts/Kalimdor/zone_moonglade.cpp b/src/server/scripts/Kalimdor/zone_moonglade.cpp
index b6a0c1e9d1e..6885e44a245 100644
--- a/src/server/scripts/Kalimdor/zone_moonglade.cpp
+++ b/src/server/scripts/Kalimdor/zone_moonglade.cpp
@@ -62,7 +62,7 @@ class npc_bunthen_plainswind : public CreatureScript
public:
npc_bunthen_plainswind() : CreatureScript("npc_bunthen_plainswind") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -82,7 +82,7 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
if (player->getClass() != CLASS_DRUID)
player->SEND_GOSSIP_MENU(4916, creature->GetGUID());
@@ -121,7 +121,7 @@ class npc_great_bear_spirit : public CreatureScript
public:
npc_great_bear_spirit() : CreatureScript("npc_great_bear_spirit") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -149,7 +149,7 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
//ally or horde quest
if (player->GetQuestStatus(5929) == QUEST_STATUS_INCOMPLETE || player->GetQuestStatus(5930) == QUEST_STATUS_INCOMPLETE)
@@ -177,7 +177,7 @@ class npc_silva_filnaveth : public CreatureScript
public:
npc_silva_filnaveth() : CreatureScript("npc_silva_filnaveth") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -197,7 +197,7 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
if (player->getClass() != CLASS_DRUID)
player->SEND_GOSSIP_MENU(4913, creature->GetGUID());
@@ -288,9 +288,9 @@ class npc_clintar_spirit : public CreatureScript
public:
npc_clintar_spirit() : CreatureScript("npc_clintar_spirit") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_clintar_spiritAI (creature);
+ return new npc_clintar_spiritAI(creature);
}
struct npc_clintar_spiritAI : public npc_escortAI
@@ -310,7 +310,7 @@ public:
bool EventOnWait;
- void Reset()
+ void Reset() OVERRIDE
{
if (!PlayerGUID)
{
@@ -323,7 +323,7 @@ public:
}
}
- void IsSummonedBy(Unit* /*summoner*/)
+ void IsSummonedBy(Unit* /*summoner*/) OVERRIDE
{
std::list<Player*> playerOnQuestList;
Trinity::AnyPlayerInObjectRangeCheck checker(me, 5.0f);
@@ -345,7 +345,7 @@ public:
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (!PlayerGUID)
return;
@@ -359,10 +359,10 @@ public:
}
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
Player* player = Unit::GetPlayer(*me, PlayerGUID);
- if (player && player->isInCombat() && player->getAttackerForHelper())
+ if (player && player->IsInCombat() && player->getAttackerForHelper())
{
AttackStart(player->getAttackerForHelper());
return;
@@ -384,7 +384,7 @@ public:
return;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
npc_escortAI::UpdateAI(diff);
@@ -394,12 +394,12 @@ public:
return;
}
- if (!me->isInCombat() && !EventOnWait)
+ if (!me->IsInCombat() && !EventOnWait)
{
if (checkPlayerTimer <= diff)
{
Player* player = Unit::GetPlayer(*me, PlayerGUID);
- if (player && player->isInCombat() && player->getAttackerForHelper())
+ if (player && player->IsInCombat() && player->getAttackerForHelper())
AttackStart(player->getAttackerForHelper());
checkPlayerTimer = 1000;
} else checkPlayerTimer -= diff;
@@ -547,7 +547,7 @@ public:
} else if (EventOnWait) EventTimer -= diff;
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
CurrWP = waypointId;
EventTimer = 0;
@@ -594,7 +594,7 @@ public:
EventMap events;
- void MovementInform(uint32 type, uint32 pointId)
+ void MovementInform(uint32 type, uint32 pointId) OVERRIDE
{
if (type != POINT_MOTION_TYPE)
return;
@@ -608,19 +608,19 @@ public:
}
}
- void EnterCombat(Unit* /*attacker*/)
+ void EnterCombat(Unit* /*attacker*/) OVERRIDE
{
events.Reset();
events.ScheduleEvent(EVENT_CAST_CLEAVE, urand(3000, 5000));
events.ScheduleEvent(EVENT_CAST_STARFALL, urand(8000, 10000));
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
DoCast(SPELL_OMEN_SUMMON_SPOTLIGHT);
}
- void SpellHit(Unit* /*caster*/, const SpellInfo* spell)
+ void SpellHit(Unit* /*caster*/, const SpellInfo* spell) OVERRIDE
{
if (spell->Id == SPELL_ELUNE_CANDLE)
{
@@ -631,7 +631,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -655,7 +655,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_omenAI(creature);
}
@@ -672,13 +672,13 @@ public:
EventMap events;
- void Reset()
+ void Reset() OVERRIDE
{
events.Reset();
events.ScheduleEvent(EVENT_DESPAWN, 5*MINUTE*IN_MILLISECONDS);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
events.Update(diff);
@@ -698,7 +698,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_giant_spotlightAI(creature);
}
diff --git a/src/server/scripts/Kalimdor/zone_mulgore.cpp b/src/server/scripts/Kalimdor/zone_mulgore.cpp
index b81b8eb9eb7..5cd0b9f568b 100644
--- a/src/server/scripts/Kalimdor/zone_mulgore.cpp
+++ b/src/server/scripts/Kalimdor/zone_mulgore.cpp
@@ -46,7 +46,7 @@ class npc_skorn_whitecloud : public CreatureScript
public:
npc_skorn_whitecloud() : CreatureScript("npc_skorn_whitecloud") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF)
@@ -55,9 +55,9 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
if (!player->GetQuestRewardStatus(770))
@@ -91,9 +91,9 @@ class npc_kyle_frenzied : public CreatureScript
public:
npc_kyle_frenzied() : CreatureScript("npc_kyle_frenzied") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_kyle_frenziedAI (creature);
+ return new npc_kyle_frenziedAI(creature);
}
struct npc_kyle_frenziedAI : public ScriptedAI
@@ -106,7 +106,7 @@ public:
uint32 EventTimer;
uint8 EventPhase;
- void Reset()
+ void Reset() OVERRIDE
{
EventActive = false;
IsMovingToLunch = false;
@@ -118,9 +118,9 @@ public:
me->UpdateEntry(NPC_KYLE_FRENZIED);
}
- void SpellHit(Unit* Caster, SpellInfo const* Spell)
+ void SpellHit(Unit* Caster, SpellInfo const* Spell) OVERRIDE
{
- if (!me->getVictim() && !EventActive && Spell->Id == SPELL_LUNCH)
+ if (!me->GetVictim() && !EventActive && Spell->Id == SPELL_LUNCH)
{
if (Caster->GetTypeId() == TYPEID_PLAYER)
PlayerGUID = Caster->GetGUID();
@@ -138,7 +138,7 @@ public:
}
}
- void MovementInform(uint32 Type, uint32 PointId)
+ void MovementInform(uint32 Type, uint32 PointId) OVERRIDE
{
if (Type != POINT_MOTION_TYPE || !EventActive)
return;
@@ -147,7 +147,7 @@ public:
IsMovingToLunch = false;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (EventActive)
{
@@ -264,9 +264,9 @@ class npc_plains_vision : public CreatureScript
public:
npc_plains_vision() : CreatureScript("npc_plains_vision") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_plains_visionAI (creature);
+ return new npc_plains_visionAI(creature);
}
struct npc_plains_visionAI : public ScriptedAI
@@ -277,16 +277,16 @@ public:
uint8 WayPointId;
uint8 amountWP;
- void Reset()
+ void Reset() OVERRIDE
{
WayPointId = 0;
newWaypoint = true;
amountWP = 49;
}
- void EnterCombat(Unit* /*who*/){}
+ void EnterCombat(Unit* /*who*/)OVERRIDE {}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type != POINT_MOTION_TYPE)
return;
@@ -303,7 +303,7 @@ public:
}
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
if (newWaypoint)
{
diff --git a/src/server/scripts/Kalimdor/zone_orgrimmar.cpp b/src/server/scripts/Kalimdor/zone_orgrimmar.cpp
index bae229b1161..afd320af3ac 100644
--- a/src/server/scripts/Kalimdor/zone_orgrimmar.cpp
+++ b/src/server/scripts/Kalimdor/zone_orgrimmar.cpp
@@ -47,7 +47,7 @@ class npc_shenthul : public CreatureScript
public:
npc_shenthul() : CreatureScript("npc_shenthul") { }
- bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_SHATTERED_SALUTE)
{
@@ -57,9 +57,9 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_shenthulAI (creature);
+ return new npc_shenthulAI(creature);
}
struct npc_shenthulAI : public ScriptedAI
@@ -72,7 +72,7 @@ public:
uint32 ResetTimer;
uint64 PlayerGUID;
- void Reset()
+ void Reset() OVERRIDE
{
CanTalk = false;
CanEmote = false;
@@ -81,9 +81,9 @@ public:
PlayerGUID = 0;
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (CanEmote)
{
@@ -114,7 +114,7 @@ public:
DoMeleeAttackIfReady();
}
- void ReceiveEmote(Player* player, uint32 emote)
+ void ReceiveEmote(Player* player, uint32 emote) OVERRIDE
{
if (emote == TEXT_EMOTE_SALUTE && player->GetQuestStatus(QUEST_SHATTERED_SALUTE) == QUEST_STATUS_INCOMPLETE)
{
@@ -155,7 +155,7 @@ class npc_thrall_warchief : public CreatureScript
public:
npc_thrall_warchief() : CreatureScript("npc_thrall_warchief") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -192,9 +192,9 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
if (player->GetQuestStatus(QUEST_6566) == QUEST_STATUS_INCOMPLETE)
@@ -204,9 +204,9 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_thrall_warchiefAI (creature);
+ return new npc_thrall_warchiefAI(creature);
}
struct npc_thrall_warchiefAI : public ScriptedAI
@@ -216,28 +216,28 @@ public:
uint32 ChainLightningTimer;
uint32 ShockTimer;
- void Reset()
+ void Reset() OVERRIDE
{
ChainLightningTimer = 2000;
ShockTimer = 8000;
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
if (ChainLightningTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_CHAIN_LIGHTNING);
+ DoCastVictim(SPELL_CHAIN_LIGHTNING);
ChainLightningTimer = 9000;
} else ChainLightningTimer -= diff;
if (ShockTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_SHOCK);
+ DoCastVictim(SPELL_SHOCK);
ShockTimer = 15000;
} else ShockTimer -= diff;
diff --git a/src/server/scripts/Kalimdor/zone_silithus.cpp b/src/server/scripts/Kalimdor/zone_silithus.cpp
index 70e7f731fc4..154f8b0f80f 100644
--- a/src/server/scripts/Kalimdor/zone_silithus.cpp
+++ b/src/server/scripts/Kalimdor/zone_silithus.cpp
@@ -52,7 +52,7 @@ class npc_highlord_demitrian : public CreatureScript
public:
npc_highlord_demitrian() : CreatureScript("npc_highlord_demitrian") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -93,9 +93,9 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
if (player->GetQuestStatus(7785) == QUEST_STATUS_NONE &&
@@ -139,7 +139,7 @@ class npcs_rutgar_and_frankal : public CreatureScript
public:
npcs_rutgar_and_frankal() : CreatureScript("npcs_rutgar_and_frankal") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -203,9 +203,9 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
if (player->GetQuestStatus(8304) == QUEST_STATUS_INCOMPLETE &&
@@ -287,7 +287,7 @@ enum EternalBoard
/* ContentData
A Pawn on the Eternal Board - creatures, gameobjects and defines
-mob_qiraj_war_spawn : Adds that are summoned in the Qiraj gates battle.
+npc_qiraj_war_spawn : Adds that are summoned in the Qiraj gates battle.
npc_anachronos_the_ancient : Creature that controls the event.
npc_anachronos_quest_trigger: controls the spawning of the BG War mobs.
go_crystalline_tear : GameObject that begins the event and hands out quest
@@ -489,7 +489,7 @@ class npc_anachronos_the_ancient : public CreatureScript
public:
npc_anachronos_the_ancient() : CreatureScript("npc_anachronos_the_ancient") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_anachronos_the_ancientAI(creature);
}
@@ -509,7 +509,7 @@ public:
uint64 PlayerGUID;
bool eventEnd;
- void Reset()
+ void Reset() OVERRIDE
{
AnimationTimer = 1500;
AnimationCount = 0;
@@ -530,10 +530,10 @@ public:
if (!player)
return;
- Creature* Fandral = player->FindNearestCreature(C_FANDRAL_STAGHELM, 100.0f, me);
- Creature* Arygos = player->FindNearestCreature(C_ARYGOS, 100.0f, me);
- Creature* Caelestrasz = player->FindNearestCreature(C_CAELESTRASZ, 100.0f, me);
- Creature* Merithra = player->FindNearestCreature(C_MERITHRA, 100.0f, me);
+ Creature* Fandral = player->FindNearestCreature(C_FANDRAL_STAGHELM, 100.0f);
+ Creature* Arygos = player->FindNearestCreature(C_ARYGOS, 100.0f);
+ Creature* Caelestrasz = player->FindNearestCreature(C_CAELESTRASZ, 100.0f);
+ Creature* Merithra = player->FindNearestCreature(C_MERITHRA, 100.0f);
if (!Fandral || !Arygos || !Caelestrasz || !Merithra)
return;
@@ -791,7 +791,7 @@ public:
}
++AnimationCount;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (AnimationTimer)
{
@@ -809,22 +809,22 @@ public:
};
/*######
-# mob_qiraj_war_spawn
+# npc_qiraj_war_spawn
######*/
-class mob_qiraj_war_spawn : public CreatureScript
+class npc_qiraj_war_spawn : public CreatureScript
{
public:
- mob_qiraj_war_spawn() : CreatureScript("mob_qiraj_war_spawn") { }
+ npc_qiraj_war_spawn() : CreatureScript("npc_qiraj_war_spawn") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_qiraj_war_spawnAI(creature);
+ return new npc_qiraj_war_spawnAI(creature);
}
- struct mob_qiraj_war_spawnAI : public ScriptedAI
+ struct npc_qiraj_war_spawnAI : public ScriptedAI
{
- mob_qiraj_war_spawnAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_qiraj_war_spawnAI(Creature* creature) : ScriptedAI(creature) {}
uint64 MobGUID;
uint64 PlayerGUID;
@@ -832,7 +832,7 @@ public:
bool Timers;
bool hasTarget;
- void Reset()
+ void Reset() OVERRIDE
{
MobGUID = 0;
PlayerGUID = 0;
@@ -840,10 +840,10 @@ public:
hasTarget = false;
}
- void EnterCombat(Unit* /*who*/) {}
- void JustDied(Unit* /*slayer*/);
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+ void JustDied(Unit* /*slayer*/) OVERRIDE;
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!Timers)
{
@@ -930,7 +930,7 @@ class npc_anachronos_quest_trigger : public CreatureScript
public:
npc_anachronos_quest_trigger() : CreatureScript("npc_anachronos_quest_trigger") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_anachronos_quest_triggerAI(creature);
}
@@ -951,7 +951,7 @@ public:
bool Announced;
bool Failed;
- void Reset()
+ void Reset() OVERRIDE
{
PlayerGUID = 0;
@@ -987,7 +987,7 @@ public:
if (WaveCount < 5) //1-4 Wave
{
- if (mob_qiraj_war_spawn::mob_qiraj_war_spawnAI* spawnAI = CAST_AI(mob_qiraj_war_spawn::mob_qiraj_war_spawnAI, spawn->AI()))
+ if (npc_qiraj_war_spawn::npc_qiraj_war_spawnAI* spawnAI = CAST_AI(npc_qiraj_war_spawn::npc_qiraj_war_spawnAI, spawn->AI()))
{
spawnAI->MobGUID = me->GetGUID();
spawnAI->PlayerGUID = PlayerGUID;
@@ -1045,7 +1045,7 @@ public:
Announced = false;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!PlayerGUID || !EventStarted)
return;
@@ -1070,7 +1070,7 @@ public:
};
-void mob_qiraj_war_spawn::mob_qiraj_war_spawnAI::JustDied(Unit* /*slayer*/)
+void npc_qiraj_war_spawn::npc_qiraj_war_spawnAI::JustDied(Unit* /*slayer*/)
{
me->RemoveCorpse();
@@ -1092,7 +1092,7 @@ class go_crystalline_tear : public GameObjectScript
public:
go_crystalline_tear() : GameObjectScript("go_crystalline_tear") { }
- bool OnQuestAccept(Player* player, GameObject* go, Quest const* quest)
+ bool OnQuestAccept(Player* player, GameObject* go, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_A_PAWN_ON_THE_ETERNAL_BOARD)
{
@@ -1363,7 +1363,7 @@ class go_wind_stone : public GameObjectScript
}
public:
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
uint8 rank = GetPlayerRank(player);
@@ -1441,7 +1441,7 @@ class go_wind_stone : public GameObjectScript
return true;
}
- bool OnGossipSelect(Player* player, GameObject* go, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, GameObject* go, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
player->PlayerTalkClass->SendCloseGossip();
@@ -1508,7 +1508,7 @@ void AddSC_silithus()
new go_crystalline_tear();
new npc_anachronos_quest_trigger();
new npc_anachronos_the_ancient();
- new mob_qiraj_war_spawn();
+ new npc_qiraj_war_spawn();
new npc_highlord_demitrian();
new npcs_rutgar_and_frankal();
new go_wind_stone();
diff --git a/src/server/scripts/Kalimdor/zone_stonetalon_mountains.cpp b/src/server/scripts/Kalimdor/zone_stonetalon_mountains.cpp
index 26c92c7404c..058cd19e3b4 100644
--- a/src/server/scripts/Kalimdor/zone_stonetalon_mountains.cpp
+++ b/src/server/scripts/Kalimdor/zone_stonetalon_mountains.cpp
@@ -49,7 +49,7 @@ class npc_braug_dimspirit : public CreatureScript
public:
npc_braug_dimspirit() : CreatureScript("npc_braug_dimspirit") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF+1)
@@ -66,9 +66,9 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
if (player->GetQuestStatus(6627) == QUEST_STATUS_INCOMPLETE)
@@ -117,7 +117,7 @@ public:
{
npc_kaya_flathoofAI(Creature* creature) : npc_escortAI(creature) {}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
Player* player = GetPlayerForEscort();
if (!player)
@@ -139,15 +139,15 @@ public:
}
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
summoned->AI()->AttackStart(me);
}
- void Reset(){}
+ void Reset()OVERRIDE {}
};
- bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_PROTECT_KAYA)
{
@@ -161,7 +161,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_kaya_flathoofAI(creature);
}
diff --git a/src/server/scripts/Kalimdor/zone_tanaris.cpp b/src/server/scripts/Kalimdor/zone_tanaris.cpp
index a0e57a1092f..0b12e6bf48c 100644
--- a/src/server/scripts/Kalimdor/zone_tanaris.cpp
+++ b/src/server/scripts/Kalimdor/zone_tanaris.cpp
@@ -24,7 +24,7 @@ SDCategory: Tanaris
EndScriptData */
/* ContentData
-mob_aquementas
+npc_aquementas
npc_custodian_of_time
npc_marin_noggenfogger
npc_steward_of_time
@@ -42,7 +42,7 @@ EndContentData */
#include "WorldSession.h"
/*######
-## mob_aquementas
+## npc_aquementas
######*/
enum Aquementas
@@ -53,19 +53,19 @@ enum Aquementas
SPELL_FROST_SHOCK = 15089
};
-class mob_aquementas : public CreatureScript
+class npc_aquementas : public CreatureScript
{
public:
- mob_aquementas() : CreatureScript("mob_aquementas") { }
+ npc_aquementas() : CreatureScript("npc_aquementas") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_aquementasAI (creature);
+ return new npc_aquementasAI(creature);
}
- struct mob_aquementasAI : public ScriptedAI
+ struct npc_aquementasAI : public ScriptedAI
{
- mob_aquementasAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_aquementasAI(Creature* creature) : ScriptedAI(creature) {}
uint32 SendItemTimer;
uint32 SwitchFactionTimer;
@@ -74,7 +74,7 @@ public:
uint32 FrostShockTimer;
uint32 AquaJetTimer;
- void Reset()
+ void Reset() OVERRIDE
{
SendItemTimer = 0;
SwitchFactionTimer = 10000;
@@ -101,12 +101,12 @@ public:
}
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
Talk(AGGRO_YELL_AQUE, who->GetGUID());
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (isFriendly)
{
@@ -124,15 +124,15 @@ public:
{
if (SendItemTimer <= diff)
{
- if (me->getVictim()->GetTypeId() == TYPEID_PLAYER)
- SendItem(me->getVictim());
+ if (me->GetVictim()->GetTypeId() == TYPEID_PLAYER)
+ SendItem(me->GetVictim());
SendItemTimer = 5000;
} else SendItemTimer -= diff;
}
if (FrostShockTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_FROST_SHOCK);
+ DoCastVictim(SPELL_FROST_SHOCK);
FrostShockTimer = 15000;
} else FrostShockTimer -= diff;
@@ -175,7 +175,7 @@ class npc_custodian_of_time : public CreatureScript
public:
npc_custodian_of_time() : CreatureScript("npc_custodian_of_time") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_custodian_of_timeAI(creature);
}
@@ -184,7 +184,7 @@ public:
{
npc_custodian_of_timeAI(Creature* creature) : npc_escortAI(creature) {}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
if (Player* player = GetPlayerForEscort())
{
@@ -251,7 +251,8 @@ public:
}
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (HasEscortState(STATE_ESCORT_ESCORTING))
return;
@@ -269,10 +270,10 @@ public:
}
}
- void EnterCombat(Unit* /*who*/) {}
- void Reset() {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+ void Reset() OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
npc_escortAI::UpdateAI(diff);
}
@@ -289,7 +290,7 @@ class npc_marin_noggenfogger : public CreatureScript
public:
npc_marin_noggenfogger() : CreatureScript("npc_marin_noggenfogger") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_TRADE)
@@ -298,12 +299,12 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
- if (creature->isVendor() && player->GetQuestRewardStatus(2662))
+ if (creature->IsVendor() && player->GetQuestRewardStatus(2662))
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
@@ -324,7 +325,7 @@ class npc_steward_of_time : public CreatureScript
public:
npc_steward_of_time() : CreatureScript("npc_steward_of_time") { }
- bool OnQuestAccept(Player* player, Creature* /*creature*/, Quest const* quest)
+ bool OnQuestAccept(Player* player, Creature* /*creature*/, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == 10279) //Quest: To The Master's Lair
player->CastSpell(player, 34891, true); //(Flight through Caverns)
@@ -332,7 +333,7 @@ public:
return false;
}
- bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF + 1)
@@ -341,9 +342,9 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
if (player->GetQuestStatus(10279) == QUEST_STATUS_INCOMPLETE || player->GetQuestRewardStatus(10279))
@@ -375,7 +376,7 @@ class npc_stone_watcher_of_norgannon : public CreatureScript
public:
npc_stone_watcher_of_norgannon() : CreatureScript("npc_stone_watcher_of_norgannon") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -408,9 +409,9 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
if (player->GetQuestStatus(2954) == QUEST_STATUS_INCOMPLETE)
@@ -446,7 +447,7 @@ class npc_OOX17 : public CreatureScript
public:
npc_OOX17() : CreatureScript("npc_OOX17") { }
- bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == Q_OOX17)
{
@@ -462,7 +463,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_OOX17AI(creature);
}
@@ -471,7 +472,7 @@ public:
{
npc_OOX17AI(Creature* creature) : npc_escortAI(creature) {}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
if (Player* player = GetPlayerForEscort())
{
@@ -499,14 +500,14 @@ public:
}
}
- void Reset(){}
+ void Reset()OVERRIDE {}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_OOX_AGGRO);
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
summoned->AI()->AttackStart(me);
}
@@ -541,7 +542,7 @@ class npc_tooga : public CreatureScript
public:
npc_tooga() : CreatureScript("npc_tooga") { }
- bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_TOOGA)
{
@@ -552,7 +553,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_toogaAI(creature);
}
@@ -567,7 +568,7 @@ public:
uint64 TortaGUID;
- void Reset()
+ void Reset() OVERRIDE
{
CheckSpeechTimer = 2500;
PostEventTimer = 1000;
@@ -576,11 +577,12 @@ public:
TortaGUID = 0;
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
FollowerAI::MoveInLineOfSight(who);
- if (!me->getVictim() && !HasFollowState(STATE_FOLLOW_COMPLETE | STATE_FOLLOW_POSTEVENT) && who->GetEntry() == NPC_TORTA)
+ if (!me->GetVictim() && !HasFollowState(STATE_FOLLOW_COMPLETE | STATE_FOLLOW_POSTEVENT) && who->GetEntry() == NPC_TORTA)
{
if (me->IsWithinDistInMap(who, INTERACTION_DISTANCE))
{
@@ -594,7 +596,7 @@ public:
}
}
- void MovementInform(uint32 MotionType, uint32 PointId)
+ void MovementInform(uint32 MotionType, uint32 PointId) OVERRIDE
{
FollowerAI::MovementInform(MotionType, PointId);
@@ -605,7 +607,7 @@ public:
SetFollowComplete();
}
- void UpdateFollowerAI(uint32 Diff)
+ void UpdateFollowerAI(uint32 Diff) OVERRIDE
{
if (!UpdateVictim())
{
@@ -617,7 +619,7 @@ public:
PostEventTimer = 5000;
Creature* torta = Creature::GetCreature(*me, TortaGUID);
- if (!torta || !torta->isAlive())
+ if (!torta || !torta->IsAlive())
{
//something happened, so just complete
SetFollowComplete();
@@ -677,7 +679,7 @@ public:
void AddSC_tanaris()
{
- new mob_aquementas();
+ new npc_aquementas();
new npc_custodian_of_time();
new npc_marin_noggenfogger();
new npc_steward_of_time();
diff --git a/src/server/scripts/Kalimdor/zone_teldrassil.cpp b/src/server/scripts/Kalimdor/zone_teldrassil.cpp
index d7983c2cbe6..8cf08953fc2 100644
--- a/src/server/scripts/Kalimdor/zone_teldrassil.cpp
+++ b/src/server/scripts/Kalimdor/zone_teldrassil.cpp
@@ -50,7 +50,7 @@ class npc_mist : public CreatureScript
public:
npc_mist() : CreatureScript("npc_mist") { }
- bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_MIST)
if (npc_mistAI* pMistAI = CAST_AI(npc_mist::npc_mistAI, creature->AI()))
@@ -59,7 +59,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_mistAI(creature);
}
@@ -68,13 +68,14 @@ public:
{
npc_mistAI(Creature* creature) : FollowerAI(creature) { }
- void Reset() { }
+ void Reset() OVERRIDE {}
+
+ void MoveInLineOfSight(Unit* who) OVERRIDE
- void MoveInLineOfSight(Unit* who)
{
FollowerAI::MoveInLineOfSight(who);
- if (!me->getVictim() && !HasFollowState(STATE_FOLLOW_COMPLETE) && who->GetEntry() == NPC_ARYNIA)
+ if (!me->GetVictim() && !HasFollowState(STATE_FOLLOW_COMPLETE) && who->GetEntry() == NPC_ARYNIA)
{
if (me->IsWithinDistInMap(who, 10.0f))
{
@@ -97,7 +98,7 @@ public:
}
//call not needed here, no known abilities
- /*void UpdateFollowerAI(const uint32 Diff)
+ /*void UpdateFollowerAI(const uint32 Diff) OVERRIDE
{
if (!UpdateVictim())
return;
diff --git a/src/server/scripts/Kalimdor/zone_the_barrens.cpp b/src/server/scripts/Kalimdor/zone_the_barrens.cpp
index 4ab64846f1c..62867c46f78 100644
--- a/src/server/scripts/Kalimdor/zone_the_barrens.cpp
+++ b/src/server/scripts/Kalimdor/zone_the_barrens.cpp
@@ -55,7 +55,7 @@ class npc_beaten_corpse : public CreatureScript
public:
npc_beaten_corpse() : CreatureScript("npc_beaten_corpse") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF +1)
@@ -66,7 +66,7 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
if (player->GetQuestStatus(QUEST_LOST_IN_BATTLE) == QUEST_STATUS_INCOMPLETE || player->GetQuestStatus(QUEST_LOST_IN_BATTLE) == QUEST_STATUS_COMPLETE)
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_CORPSE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
@@ -102,7 +102,7 @@ class npc_gilthares : public CreatureScript
public:
npc_gilthares() : CreatureScript("npc_gilthares") { }
- bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_FREE_FROM_HOLD)
{
@@ -117,7 +117,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_giltharesAI(creature);
}
@@ -126,9 +126,9 @@ public:
{
npc_giltharesAI(Creature* creature) : npc_escortAI(creature) { }
- void Reset() { }
+ void Reset() OVERRIDE {}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
Player* player = GetPlayerForEscort();
if (!player)
@@ -158,7 +158,7 @@ public:
}
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
//not always use
if (rand()%4)
@@ -176,42 +176,6 @@ public:
};
/*######
-## npc_sputtervalve
-######*/
-
-#define GOSSIP_SPUTTERVALVE "Can you tell me about this shard?"
-
-class npc_sputtervalve : public CreatureScript
-{
-public:
- npc_sputtervalve() : CreatureScript("npc_sputtervalve") { }
-
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
- {
- player->PlayerTalkClass->ClearMenus();
- if (action == GOSSIP_ACTION_INFO_DEF)
- {
- player->SEND_GOSSIP_MENU(2013, creature->GetGUID());
- player->AreaExploredOrEventHappens(6981);
- }
- return true;
- }
-
- bool OnGossipHello(Player* player, Creature* creature)
- {
- if (creature->isQuestGiver())
- player->PrepareQuestMenu(creature->GetGUID());
-
- if (player->GetQuestStatus(6981) == QUEST_STATUS_INCOMPLETE)
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SPUTTERVALVE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
-
- player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
- return true;
- }
-
-};
-
-/*######
## npc_taskmaster_fizzule
######*/
@@ -227,7 +191,7 @@ class npc_taskmaster_fizzule : public CreatureScript
public:
npc_taskmaster_fizzule() : CreatureScript("npc_taskmaster_fizzule") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_taskmaster_fizzuleAI(creature);
}
@@ -244,7 +208,7 @@ public:
uint32 ResetTimer;
uint8 FlareCount;
- void Reset()
+ void Reset() OVERRIDE
{
IsFriend = false;
ResetTimer = 120000;
@@ -265,7 +229,7 @@ public:
me->HandleEmoteCommand(EMOTE_ONESHOT_SALUTE);
}
- void SpellHit(Unit* /*caster*/, const SpellInfo* spell)
+ void SpellHit(Unit* /*caster*/, const SpellInfo* spell) OVERRIDE
{
if (spell->Id == SPELL_FLARE || spell->Id == SPELL_FOLLY)
{
@@ -276,9 +240,9 @@ public:
}
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (IsFriend)
{
@@ -295,7 +259,7 @@ public:
DoMeleeAttackIfReady();
}
- void ReceiveEmote(Player* /*player*/, uint32 emote)
+ void ReceiveEmote(Player* /*player*/, uint32 emote) OVERRIDE
{
if (emote == TEXT_EMOTE_SALUTE)
{
@@ -343,9 +307,9 @@ class npc_twiggy_flathead : public CreatureScript
public:
npc_twiggy_flathead() : CreatureScript("npc_twiggy_flathead") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_twiggy_flatheadAI (creature);
+ return new npc_twiggy_flatheadAI(creature);
}
struct npc_twiggy_flatheadAI : public ScriptedAI
@@ -363,7 +327,7 @@ public:
uint64 AffrayChallenger[6];
uint64 BigWill;
- void Reset()
+ void Reset() OVERRIDE
{
EventInProgress = false;
EventGrate = false;
@@ -381,11 +345,12 @@ public:
BigWill = 0;
}
- void EnterCombat(Unit* /*who*/) { }
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+
+ void MoveInLineOfSight(Unit* who) OVERRIDE
- void MoveInLineOfSight(Unit* who)
{
- if (!who || !who->isAlive() || EventInProgress)
+ if (!who || !who->IsAlive() || EventInProgress)
return;
if (who->GetTypeId() == TYPEID_PLAYER && me->IsWithinDistInMap(who, 10.0f))
@@ -397,9 +362,9 @@ public:
}
}
- void KilledUnit(Unit* /*victim*/) { }
+ void KilledUnit(Unit* /*victim*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (EventInProgress) {
Player* pWarrior = NULL;
@@ -410,7 +375,7 @@ public:
if (!pWarrior)
return;
- if (!pWarrior->isAlive() && pWarrior->GetQuestStatus(1719) == QUEST_STATUS_INCOMPLETE) {
+ if (!pWarrior->IsAlive() && pWarrior->GetQuestStatus(1719) == QUEST_STATUS_INCOMPLETE) {
Talk(SAY_TWIGGY_FLATHEAD_DOWN);
pWarrior->FailQuest(1719);
@@ -419,7 +384,7 @@ public:
if (AffrayChallenger[i])
{
Creature* creature = Unit::GetCreature((*me), AffrayChallenger[i]);
- if (creature && creature->isAlive())
+ if (creature && creature->IsAlive())
creature->DisappearAndDie();
}
}
@@ -427,7 +392,7 @@ public:
if (BigWill) // unsummon bigWill
{
Creature* creature = Unit::GetCreature((*me), BigWill);
- if (creature && creature->isAlive())
+ if (creature && creature->IsAlive())
creature->DisappearAndDie();
}
Reset();
@@ -467,7 +432,7 @@ public:
if (AffrayChallenger[i])
{
Creature* creature = Unit::GetCreature((*me), AffrayChallenger[i]);
- if ((!creature || (!creature->isAlive())) && !ChallengerDown[i])
+ if ((!creature || (!creature->IsAlive())) && !ChallengerDown[i])
{
Talk(SAY_TWIGGY_FLATHEAD_DOWN);
ChallengerDown[i] = true;
@@ -483,7 +448,7 @@ public:
{
Talk(SAY_TWIGGY_FLATHEAD_FRAY);
Creature* creature = Unit::GetCreature((*me), AffrayChallenger[Wave]);
- if (creature && (creature->isAlive()))
+ if (creature && (creature->IsAlive()))
{
creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
@@ -509,7 +474,7 @@ public:
else if (Wave >= 6 && EventBigWill && BigWill)
{
Creature* creature = Unit::GetCreature((*me), BigWill);
- if (!creature || !creature->isAlive())
+ if (!creature || !creature->IsAlive())
{
Talk(SAY_TWIGGY_FLATHEAD_OVER);
Reset();
@@ -562,7 +527,7 @@ public:
uint32 PostEventTimer;
uint32 PostEventCount;
- void Reset()
+ void Reset() OVERRIDE
{
if (!HasEscortState(STATE_ESCORT_ESCORTING))
{
@@ -575,7 +540,7 @@ public:
}
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
switch (waypointId)
{
@@ -598,7 +563,7 @@ public:
}
}
- void WaypointStart(uint32 PointId)
+ void WaypointStart(uint32 PointId) OVERRIDE
{
Player* player = GetPlayerForEscort();
@@ -617,7 +582,7 @@ public:
}
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
if (summoned->GetEntry() == NPC_PILOT_WIZZ)
me->SetStandState(UNIT_STAND_STATE_DEAD);
@@ -626,7 +591,7 @@ public:
summoned->AI()->AttackStart(me);
}
- void UpdateEscortAI(const uint32 Diff)
+ void UpdateEscortAI(const uint32 Diff) OVERRIDE
{
if (!UpdateVictim())
{
@@ -668,7 +633,7 @@ public:
}
};
- bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_ESCAPE)
{
@@ -679,7 +644,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_wizzlecrank_shredderAI(creature);
}
@@ -690,7 +655,6 @@ void AddSC_the_barrens()
{
new npc_beaten_corpse();
new npc_gilthares();
- new npc_sputtervalve();
new npc_taskmaster_fizzule();
new npc_twiggy_flathead();
new npc_wizzlecrank_shredder();
diff --git a/src/server/scripts/Kalimdor/zone_thousand_needles.cpp b/src/server/scripts/Kalimdor/zone_thousand_needles.cpp
index 02e64421ecb..9afa825972f 100644
--- a/src/server/scripts/Kalimdor/zone_thousand_needles.cpp
+++ b/src/server/scripts/Kalimdor/zone_thousand_needles.cpp
@@ -57,7 +57,7 @@ class npc_kanati : public CreatureScript
public:
npc_kanati() : CreatureScript("npc_kanati") { }
- bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_PROTECT_KANATI)
if (npc_kanatiAI* pEscortAI = CAST_AI(npc_kanati::npc_kanatiAI, creature->AI()))
@@ -66,7 +66,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_kanatiAI(creature);
}
@@ -75,9 +75,9 @@ public:
{
npc_kanatiAI(Creature* creature) : npc_escortAI(creature) { }
- void Reset() {}
+ void Reset() OVERRIDE {}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
switch (waypointId)
{
@@ -98,7 +98,7 @@ public:
me->SummonCreature(NPC_GALAK_ASS, GalakLoc, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
summoned->AI()->AttackStart(me);
}
@@ -142,7 +142,7 @@ class npc_lakota_windsong : public CreatureScript
public:
npc_lakota_windsong() : CreatureScript("npc_lakota_windsong") { }
- bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_FREE_AT_LAST)
{
@@ -155,7 +155,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_lakota_windsongAI(creature);
}
@@ -164,9 +164,9 @@ public:
{
npc_lakota_windsongAI(Creature* creature) : npc_escortAI(creature) { }
- void Reset() {}
+ void Reset() OVERRIDE {}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
switch (waypointId)
{
@@ -225,7 +225,7 @@ class npc_paoka_swiftmountain : public CreatureScript
public:
npc_paoka_swiftmountain() : CreatureScript("npc_paoka_swiftmountain") { }
- bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_HOMEWARD)
{
@@ -238,7 +238,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_paoka_swiftmountainAI(creature);
}
@@ -247,9 +247,9 @@ public:
{
npc_paoka_swiftmountainAI(Creature* creature) : npc_escortAI(creature) { }
- void Reset() {}
+ void Reset() OVERRIDE {}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
switch (waypointId)
{
@@ -294,7 +294,7 @@ class npc_plucky : public CreatureScript
public:
npc_plucky() : CreatureScript("npc_plucky") { }
- bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -307,7 +307,7 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
if (player->GetQuestStatus(QUEST_SCOOP) == QUEST_STATUS_INCOMPLETE)
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_P, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
@@ -317,7 +317,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_pluckyAI(creature);
}
@@ -329,7 +329,7 @@ public:
uint32 NormFaction;
uint32 ResetTimer;
- void Reset()
+ void Reset() OVERRIDE
{
ResetTimer = 120000;
@@ -342,7 +342,7 @@ public:
DoCast(me, SPELL_PLUCKY_CHICKEN, false);
}
- void ReceiveEmote(Player* player, uint32 TextEmote)
+ void ReceiveEmote(Player* player, uint32 TextEmote) OVERRIDE
{
if (player->GetQuestStatus(QUEST_SCOOP) == QUEST_STATUS_INCOMPLETE)
{
@@ -368,13 +368,13 @@ public:
}
}
- void UpdateAI(uint32 Diff)
+ void UpdateAI(uint32 Diff) OVERRIDE
{
if (me->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP))
{
if (ResetTimer <= Diff)
{
- if (!me->getVictim())
+ if (!me->GetVictim())
EnterEvadeMode();
else
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
@@ -404,7 +404,7 @@ class go_panther_cage : public GameObjectScript
public:
go_panther_cage() : GameObjectScript("go_panther_cage") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
go->UseDoorOrButton();
if (player->GetQuestStatus(5151) == QUEST_STATUS_INCOMPLETE)
@@ -426,7 +426,7 @@ class npc_enraged_panther : public CreatureScript
public:
npc_enraged_panther() : CreatureScript("npc_enraged_panther") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_enraged_pantherAI(creature);
}
@@ -435,13 +435,13 @@ public:
{
npc_enraged_pantherAI(Creature* creature) : ScriptedAI(creature) {}
- void Reset()
+ void Reset() OVERRIDE
{
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
me->SetReactState(REACT_PASSIVE);
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
if (!UpdateVictim())
return;
diff --git a/src/server/scripts/Kalimdor/zone_thunder_bluff.cpp b/src/server/scripts/Kalimdor/zone_thunder_bluff.cpp
index c949a551118..7dda6ab027f 100644
--- a/src/server/scripts/Kalimdor/zone_thunder_bluff.cpp
+++ b/src/server/scripts/Kalimdor/zone_thunder_bluff.cpp
@@ -48,7 +48,7 @@ class npc_cairne_bloodhoof : public CreatureScript
public:
npc_cairne_bloodhoof() : CreatureScript("npc_cairne_bloodhoof") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_SENDER_INFO)
@@ -59,9 +59,9 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
if (player->GetQuestStatus(925) == QUEST_STATUS_INCOMPLETE)
@@ -72,9 +72,9 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_cairne_bloodhoofAI (creature);
+ return new npc_cairne_bloodhoofAI(creature);
}
struct npc_cairne_bloodhoofAI : public ScriptedAI
@@ -87,7 +87,7 @@ public:
uint32 ThunderclapTimer;
uint32 UppercutTimer;
- void Reset()
+ void Reset() OVERRIDE
{
BerserkerChargeTimer = 30000;
CleaveTimer = 5000;
@@ -96,9 +96,9 @@ public:
UppercutTimer = 10000;
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -112,25 +112,25 @@ public:
if (UppercutTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_UPPERCUT);
+ DoCastVictim(SPELL_UPPERCUT);
UppercutTimer = 20000;
} else UppercutTimer -= diff;
if (ThunderclapTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_THUNDERCLAP);
+ DoCastVictim(SPELL_THUNDERCLAP);
ThunderclapTimer = 15000;
} else ThunderclapTimer -= diff;
if (MortalStrikeTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_MORTAL_STRIKE);
+ DoCastVictim(SPELL_MORTAL_STRIKE);
MortalStrikeTimer = 15000;
} else MortalStrikeTimer -= diff;
if (CleaveTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_CLEAVE);
+ DoCastVictim(SPELL_CLEAVE);
CleaveTimer = 7000;
} else CleaveTimer -= diff;
diff --git a/src/server/scripts/Kalimdor/zone_ungoro_crater.cpp b/src/server/scripts/Kalimdor/zone_ungoro_crater.cpp
index 9c89ad6d53a..3dc77e0cf04 100644
--- a/src/server/scripts/Kalimdor/zone_ungoro_crater.cpp
+++ b/src/server/scripts/Kalimdor/zone_ungoro_crater.cpp
@@ -57,7 +57,7 @@ class npc_ame : public CreatureScript
public:
npc_ame() : CreatureScript("npc_ame") { }
- bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_CHASING_AME)
{
@@ -70,7 +70,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_ameAI(creature);
}
@@ -81,7 +81,7 @@ public:
uint32 DemoralizingShoutTimer;
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
if (Player* player = GetPlayerForEscort())
{
@@ -110,23 +110,23 @@ public:
}
}
- void Reset()
+ void Reset() OVERRIDE
{
DemoralizingShoutTimer = 5000;
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
summoned->AI()->AttackStart(me);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (Player* player = GetPlayerForEscort())
player->FailQuest(QUEST_CHASING_AME);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
npc_escortAI::UpdateAI(diff);
if (!UpdateVictim())
@@ -134,7 +134,7 @@ public:
if (DemoralizingShoutTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_DEMORALIZINGSHOUT);
+ DoCastVictim(SPELL_DEMORALIZINGSHOUT);
DemoralizingShoutTimer = 70000;
} else DemoralizingShoutTimer -= diff;
}
@@ -173,7 +173,7 @@ class npc_ringo : public CreatureScript
public:
npc_ringo() : CreatureScript("npc_ringo") { }
- bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_A_LITTLE_HELP)
{
@@ -187,7 +187,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_ringoAI(creature);
}
@@ -202,7 +202,7 @@ public:
uint64 SpraggleGUID;
- void Reset()
+ void Reset() OVERRIDE
{
FaintTimer = urand(30000, 60000);
EndEventProgress = 0;
@@ -210,11 +210,12 @@ public:
SpraggleGUID = 0;
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
FollowerAI::MoveInLineOfSight(who);
- if (!me->getVictim() && !HasFollowState(STATE_FOLLOW_COMPLETE) && who->GetEntry() == NPC_SPRAGGLE)
+ if (!me->GetVictim() && !HasFollowState(STATE_FOLLOW_COMPLETE) && who->GetEntry() == NPC_SPRAGGLE)
{
if (me->IsWithinDistInMap(who, INTERACTION_DISTANCE))
{
@@ -230,7 +231,7 @@ public:
}
}
- void SpellHit(Unit* /*pCaster*/, const SpellInfo* pSpell)
+ void SpellHit(Unit* /*pCaster*/, const SpellInfo* pSpell) OVERRIDE
{
if (HasFollowState(STATE_FOLLOW_INPROGRESS | STATE_FOLLOW_PAUSED) && pSpell->Id == SPELL_REVIVE_RINGO)
ClearFaint();
@@ -261,7 +262,7 @@ public:
SetFollowPaused(false);
}
- void UpdateFollowerAI(uint32 Diff)
+ void UpdateFollowerAI(uint32 Diff) OVERRIDE
{
if (!UpdateVictim())
{
@@ -270,7 +271,7 @@ public:
if (EndEventTimer <= Diff)
{
Creature* spraggle = Creature::GetCreature(*me, SpraggleGUID);
- if (!spraggle || !spraggle->isAlive())
+ if (!spraggle || !spraggle->IsAlive())
{
SetFollowComplete();
return;
diff --git a/src/server/scripts/Kalimdor/zone_winterspring.cpp b/src/server/scripts/Kalimdor/zone_winterspring.cpp
index 2b68c0a2cb6..e517afe6b46 100644
--- a/src/server/scripts/Kalimdor/zone_winterspring.cpp
+++ b/src/server/scripts/Kalimdor/zone_winterspring.cpp
@@ -45,7 +45,7 @@ class npc_rivern_frostwind : public CreatureScript
public:
npc_rivern_frostwind() : CreatureScript("npc_rivern_frostwind") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_TRADE)
@@ -54,12 +54,12 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
- if (creature->isVendor() && player->GetReputationRank(589) == REP_EXALTED)
+ if (creature->IsVendor() && player->GetReputationRank(589) == REP_EXALTED)
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
@@ -154,14 +154,14 @@ struct DialogueEntry
class DialogueHelper
{
public:
- // The array MUST be terminated by {0,0,0}
+ // The array MUST be terminated by {0, 0, 0}
DialogueHelper(DialogueEntry const* dialogueArray) :
_dialogueArray(dialogueArray),
_currentEntry(NULL),
_actionTimer(0),
_isFirstSide(true)
{}
- // The array MUST be terminated by {0,0,0,0,0}
+ // The array MUST be terminated by {0, 0, 0, 0, 0}
/// Function to initialize the dialogue helper for instances. If not used with instances, GetSpeakerByEntry MUST be overwritten to obtain the speakers
/// Set if take first entries or second entries
@@ -182,9 +182,7 @@ public:
}
if (!found)
- {
return;
- }
DoNextDialogueStep();
}
@@ -210,7 +208,7 @@ private:
void DoNextDialogueStep()
{
// Last Dialogue Entry done?
- if (_currentEntry && !_currentEntry->TextEntry)
+ if (!_currentEntry || !_currentEntry->TextEntry)
{
_actionTimer = 0;
return;
@@ -296,7 +294,7 @@ class npc_ranshalla : public CreatureScript
{
public:
npc_ranshalla() : CreatureScript("npc_ranshalla") { }
- bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_GUARDIANS_ALTAR)
{
@@ -311,7 +309,7 @@ public:
return false;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_ranshallaAI(creature);
}
@@ -332,7 +330,7 @@ public:
uint64 _voiceEluneGUID;
uint64 _altarGUID;
- void Reset()
+ void Reset() OVERRIDE
{
_delayTimer = 0;
}
@@ -398,9 +396,9 @@ public:
StartNextDialogueText(SAY_PRIESTESS_ALTAR_3);
}
- void WaypointReached(uint32 pointId)
+ void WaypointReached(uint32 pointId) OVERRIDE
{
- switch(pointId)
+ switch (pointId)
{
case 3:
Talk(SAY_ENTER_OWL_THICKET);
@@ -439,7 +437,7 @@ public:
SetEscortPaused(true);
DoSummonPriestess();
Talk(SAY_RANSHALLA_ALTAR_2);
- events.ScheduleEvent(EVENT_RESUME,2000);
+ events.ScheduleEvent(EVENT_RESUME, 2000);
break;
case 44:
// Stop the escort and turn towards the altar
@@ -567,7 +565,7 @@ public:
}
- void UpdateEscortAI(const uint32 diff)
+ void UpdateEscortAI(const uint32 diff) OVERRIDE
{
DialogueUpdate(diff);
@@ -600,7 +598,7 @@ class go_elune_fire : public GameObjectScript
{
public:
go_elune_fire() : GameObjectScript("go_elune_fire") { }
- bool OnGossipHello(Player* /*player*/, GameObject* go)
+ bool OnGossipHello(Player* /*player*/, GameObject* go) OVERRIDE
{
// Check if we are using the torches or the altar
bool isAltar = false;
diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/ahnkahet.h b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/ahnkahet.h
index 3a97117f520..8473ee1d39d 100644
--- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/ahnkahet.h
+++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/ahnkahet.h
@@ -15,8 +15,8 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef DEF_AHNKAHET_H
-#define DEF_AHNKAHET_H
+#ifndef AHNKAHET_H_
+#define AHNKAHET_H_
enum Data64
{
@@ -47,4 +47,4 @@ enum Data
DATA_ALL_INITIAND_DEAD
};
-#endif
+#endif // AHNKAHET_H_
diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_amanitar.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_amanitar.cpp
index 24335c0e469..7a20d1f581c 100644
--- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_amanitar.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_amanitar.cpp
@@ -40,7 +40,7 @@ enum Creatures
NPC_TRIGGER = 19656
};
-enum event
+enum Events
{
EVENT_SPAWN = 1,
EVENT_MINI,
@@ -59,7 +59,7 @@ public:
{
boss_amanitarAI(Creature* creature) : BossAI(creature, DATA_AMANITAR) { }
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
@@ -74,7 +74,7 @@ public:
}
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*Killer*/) OVERRIDE
{
if (instance)
{
@@ -85,7 +85,7 @@ public:
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
@@ -129,7 +129,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -171,24 +171,24 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_amanitarAI(creature);
}
};
-class mob_amanitar_mushrooms : public CreatureScript
+class npc_amanitar_mushrooms : public CreatureScript
{
public:
- mob_amanitar_mushrooms() : CreatureScript("mob_amanitar_mushrooms") { }
+ npc_amanitar_mushrooms() : CreatureScript("npc_amanitar_mushrooms") { }
- struct mob_amanitar_mushroomsAI : public ScriptedAI
+ struct npc_amanitar_mushroomsAI : public ScriptedAI
{
- mob_amanitar_mushroomsAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_amanitar_mushroomsAI(Creature* creature) : ScriptedAI(creature) {}
EventMap events;
- void Reset()
+ void Reset() OVERRIDE
{
events.Reset();
events.ScheduleEvent(EVENT_AURA, 1 * IN_MILLISECONDS);
@@ -202,16 +202,16 @@ public:
DoCast(SPELL_POWER_MUSHROOM_VISUAL_AURA);
}
- void DamageTaken(Unit* /*attacker*/, uint32 &damage)
+ void DamageTaken(Unit* /*attacker*/, uint32 &damage) OVERRIDE
{
if (damage >= me->GetHealth() && me->GetEntry() == NPC_HEALTHY_MUSHROOM)
DoCast(me, SPELL_HEALTHY_MUSHROOM_POTENT_FUNGUS, true);
}
- void EnterCombat(Unit* /*who*/) {}
- void AttackStart(Unit* /*victim*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+ void AttackStart(Unit* /*victim*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -240,14 +240,14 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_amanitar_mushroomsAI(creature);
+ return new npc_amanitar_mushroomsAI(creature);
}
};
void AddSC_boss_amanitar()
{
new boss_amanitar();
- new mob_amanitar_mushrooms();
+ new npc_amanitar_mushrooms();
}
diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_elder_nadox.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_elder_nadox.cpp
index a9fad9c5451..057ee41a3a0 100644
--- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_elder_nadox.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_elder_nadox.cpp
@@ -75,7 +75,7 @@ class boss_elder_nadox : public CreatureScript
SummonList summons;
EventMap events;
- void Reset()
+ void Reset() OVERRIDE
{
events.Reset();
summons.DespawnAll();
@@ -87,7 +87,7 @@ class boss_elder_nadox : public CreatureScript
instance->SetData(DATA_ELDER_NADOX_EVENT, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
@@ -104,19 +104,19 @@ class boss_elder_nadox : public CreatureScript
}
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
summons.Summon(summon);
summon->AI()->DoZoneInCombat();
}
- void SummonedCreatureDies(Creature* summon, Unit* /*killer*/)
+ void SummonedCreatureDies(Creature* summon, Unit* /*killer*/) OVERRIDE
{
if (summon->GetEntry() == NPC_AHNKAHAR_GUARDIAN)
GuardianDied = true;
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
if (type == DATA_RESPECT_YOUR_ELDERS)
return !GuardianDied ? 1 : 0;
@@ -124,12 +124,12 @@ class boss_elder_nadox : public CreatureScript
return 0;
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -139,7 +139,7 @@ class boss_elder_nadox : public CreatureScript
instance->SetData(DATA_ELDER_NADOX_EVENT, DONE);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -187,24 +187,24 @@ class boss_elder_nadox : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_elder_nadoxAI(creature);
}
};
-class mob_ahnkahar_nerubian : public CreatureScript
+class npc_ahnkahar_nerubian : public CreatureScript
{
public:
- mob_ahnkahar_nerubian() : CreatureScript("mob_ahnkahar_nerubian") { }
+ npc_ahnkahar_nerubian() : CreatureScript("npc_ahnkahar_nerubian") { }
- struct mob_ahnkahar_nerubianAI : public ScriptedAI
+ struct npc_ahnkahar_nerubianAI : public ScriptedAI
{
- mob_ahnkahar_nerubianAI(Creature* creature) : ScriptedAI(creature) { }
+ npc_ahnkahar_nerubianAI(Creature* creature) : ScriptedAI(creature) { }
EventMap events;
- void Reset()
+ void Reset() OVERRIDE
{
if (me->GetEntry() == NPC_AHNKAHAR_GUARDIAN)
DoCast(me, SPELL_GUARDIAN_AURA, true);
@@ -212,13 +212,13 @@ class mob_ahnkahar_nerubian : public CreatureScript
events.ScheduleEvent(EVENT_SPRINT, 13 * IN_MILLISECONDS);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (me->GetEntry() == NPC_AHNKAHAR_GUARDIAN)
me->RemoveAurasDueToSpell(SPELL_GUARDIAN_AURA);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -242,36 +242,37 @@ class mob_ahnkahar_nerubian : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_ahnkahar_nerubianAI(creature);
+ return new npc_ahnkahar_nerubianAI(creature);
}
};
//HACK: No, AI. Replace with proper db content?
-class mob_nadox_eggs : public CreatureScript
+class npc_nadox_eggs : public CreatureScript
{
public:
- mob_nadox_eggs() : CreatureScript("mob_nadox_eggs") { }
+ npc_nadox_eggs() : CreatureScript("npc_nadox_eggs") { }
- struct mob_nadox_eggsAI : public ScriptedAI
+ struct npc_nadox_eggsAI : public ScriptedAI
{
- mob_nadox_eggsAI(Creature* creature) : ScriptedAI(creature)
+ npc_nadox_eggsAI(Creature* creature) : ScriptedAI(creature)
{
creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE);
creature->UpdateAllStats();
}
- void Reset() {}
- void EnterCombat(Unit* /*who*/) {}
- void AttackStart(Unit* /*victim*/) {}
- void MoveInLineOfSight(Unit* /*who*/) {}
- void UpdateAI(uint32 /*diff*/) {}
+ void Reset() OVERRIDE {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+ void AttackStart(Unit* /*victim*/) OVERRIDE {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
+
+ void UpdateAI(uint32 /*diff*/) OVERRIDE {}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_nadox_eggsAI(creature);
+ return new npc_nadox_eggsAI(creature);
}
};
@@ -301,14 +302,14 @@ public:
targets.remove_if(GuardianCheck());
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_elder_nadox_guardian_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ALLY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_elder_nadox_guardian_SpellScript::FilterTargets, EFFECT_1, TARGET_UNIT_SRC_AREA_ALLY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_elder_nadox_guardian_SpellScript();
}
@@ -319,7 +320,7 @@ class achievement_respect_your_elders : public AchievementCriteriaScript
public:
achievement_respect_your_elders() : AchievementCriteriaScript("achievement_respect_your_elders") {}
- bool OnCheck(Player* /*player*/, Unit* target)
+ bool OnCheck(Player* /*player*/, Unit* target) OVERRIDE
{
if (!target)
return false;
@@ -335,8 +336,8 @@ public:
void AddSC_boss_elder_nadox()
{
new boss_elder_nadox();
- new mob_ahnkahar_nerubian();
- new mob_nadox_eggs();
+ new npc_ahnkahar_nerubian();
+ new npc_nadox_eggs();
new spell_elder_nadox_guardian();
new achievement_respect_your_elders();
}
diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp
index 82ac2e8387c..481df79c890 100644
--- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp
@@ -43,7 +43,7 @@ enum Spells
enum Creatures
{
- MOB_TWISTED_VISAGE = 30625
+ NPC_TWISTED_VISAGE = 30625
};
@@ -88,7 +88,7 @@ public:
return 100*(me->GetHealth()-damage)/me->GetMaxHealth();
}
- void DamageTaken(Unit* /*pAttacker*/, uint32 &damage)
+ void DamageTaken(Unit* /*pAttacker*/, uint32 &damage) OVERRIDE
{
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE))
damage = 0;
@@ -101,7 +101,7 @@ public:
}
}
- void SpellHitTarget(Unit* target, const SpellInfo* spell)
+ void SpellHitTarget(Unit* target, const SpellInfo* spell) OVERRIDE
{
if (spell->Id == SPELL_INSANITY)
{
@@ -123,11 +123,11 @@ public:
Map::PlayerList const &players = me->GetMap()->GetPlayers();
for (Map::PlayerList::const_iterator i = players.begin(); i != players.end(); ++i)
{
- Player* player = i->getSource();
- if (!player || !player->isAlive())
+ Player* player = i->GetSource();
+ if (!player || !player->IsAlive())
continue;
// Summon clone
- if (Unit* summon = me->SummonCreature(MOB_TWISTED_VISAGE, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation(), TEMPSUMMON_CORPSE_DESPAWN, 0))
+ if (Unit* summon = me->SummonCreature(NPC_TWISTED_VISAGE, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation(), TEMPSUMMON_CORPSE_DESPAWN, 0))
{
// clone
player->CastSpell(summon, SPELL_CLONE_PLAYER, true);
@@ -144,12 +144,12 @@ public:
Map::PlayerList const &players = me->GetMap()->GetPlayers();
for (Map::PlayerList::const_iterator i = players.begin(); i != players.end(); ++i)
{
- Player* player = i->getSource();
+ Player* player = i->GetSource();
player->RemoveAurasDueToSpell(GetSpellForPhaseMask(player->GetPhaseMask()));
}
}
- void Reset()
+ void Reset() OVERRIDE
{
uiMindFlayTimer = 8*IN_MILLISECONDS;
uiShadowBoltVolleyTimer = 5*IN_MILLISECONDS;
@@ -174,7 +174,7 @@ public:
me->SetControlled(false, UNIT_STATE_STUNNED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
@@ -185,7 +185,7 @@ public:
}
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
Summons.Summon(summon);
}
@@ -214,9 +214,9 @@ public:
return spell;
}
- void SummonedCreatureDespawn(Creature* summon)
+ void SummonedCreatureDespawn(Creature* summon) OVERRIDE
{
- uint32 phase= summon->GetPhaseMask();
+ uint32 phase = summon->GetPhaseMask();
uint32 nextPhase = 0;
Summons.Despawn(summon);
@@ -245,7 +245,7 @@ public:
{
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
{
- if (Player* player = i->getSource())
+ if (Player* player = i->GetSource())
{
if (player->HasAura(spell))
{
@@ -258,7 +258,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -277,13 +277,13 @@ public:
if (uiMindFlayTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_MIND_FLAY);
+ DoCastVictim(SPELL_MIND_FLAY);
uiMindFlayTimer = 20*IN_MILLISECONDS;
} else uiMindFlayTimer -= diff;
if (uiShadowBoltVolleyTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_SHADOW_BOLT_VOLLEY);
+ DoCastVictim(SPELL_SHADOW_BOLT_VOLLEY);
uiShadowBoltVolleyTimer = 5*IN_MILLISECONDS;
} else uiShadowBoltVolleyTimer -= diff;
@@ -297,7 +297,7 @@ public:
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -308,13 +308,13 @@ public:
ResetPlayersPhaseMask();
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_volazjAI(creature);
}
diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp
index e8b17224179..5095f590fdb 100644
--- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp
@@ -57,8 +57,11 @@ const Position JedogaPosition[2] =
{372.330994f, -705.278015f, -16.179716f, 5.427970f}
};
-#define ACTION_INITIAND_KILLED 1
-#define DATA_VOLUNTEER_WORK 2
+enum Misc
+{
+ ACTION_INITIAND_KILLED = 1,
+ DATA_VOLUNTEER_WORK = 2
+};
class boss_jedoga_shadowseeker : public CreatureScript
{
@@ -89,7 +92,7 @@ public:
bool volunteerWork;
bool bFirstTime;
- void Reset()
+ void Reset() OVERRIDE
{
uiOpFerTimer = urand(15*IN_MILLISECONDS, 20*IN_MILLISECONDS);
@@ -117,7 +120,7 @@ public:
bFirstTime = false;
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (!instance || (who->GetTypeId() == TYPEID_UNIT && who->GetEntry() == NPC_JEDOGA_CONTROLLER))
return;
@@ -127,7 +130,7 @@ public:
instance->SetData(DATA_JEDOGA_SHADOWSEEKER_EVENT, IN_PROGRESS);
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (!who || (who->GetTypeId() == TYPEID_UNIT && who->GetEntry() == NPC_JEDOGA_CONTROLLER))
return;
@@ -135,7 +138,7 @@ public:
ScriptedAI::AttackStart(who);
}
- void KilledUnit(Unit* Victim)
+ void KilledUnit(Unit* Victim) OVERRIDE
{
if (!Victim || Victim->GetTypeId() != TYPEID_PLAYER)
return;
@@ -143,20 +146,20 @@ public:
Talk(TEXT_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(TEXT_DEATH);
if (instance)
instance->SetData(DATA_JEDOGA_SHADOWSEEKER_EVENT, DONE);
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
if (action == ACTION_INITIAND_KILLED)
volunteerWork = false;
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
if (type == DATA_VOLUNTEER_WORK)
return volunteerWork ? 1 : 0;
@@ -164,7 +167,8 @@ public:
return 0;
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (!instance || !who || (who->GetTypeId() == TYPEID_UNIT && who->GetEntry() == NPC_JEDOGA_CONTROLLER))
return;
@@ -178,12 +182,12 @@ public:
if (instance->GetData(DATA_JEDOGA_SHADOWSEEKER_EVENT) != IN_PROGRESS || !bOnGround)
return;
- if (!me->getVictim() && me->canCreatureAttack(who))
+ if (!me->GetVictim() && me->CanCreatureAttack(who))
{
float attackRadius = me->GetAttackDistance(who);
if (me->IsWithinDistInMap(who, attackRadius) && me->IsWithinLOSInMap(who))
{
- if (!me->getVictim())
+ if (!me->GetVictim())
{
who->RemoveAurasByType(SPELL_AURA_MOD_STEALTH);
AttackStart(who);
@@ -216,8 +220,8 @@ public:
if (UpdateVictim())
{
- AttackStart(me->getVictim());
- me->GetMotionMaster()->MoveChase(me->getVictim());
+ AttackStart(me->GetVictim());
+ me->GetMotionMaster()->MoveChase(me->GetVictim());
}
else
{
@@ -228,7 +232,7 @@ public:
if (instance->GetData(DATA_JEDOGA_SHADOWSEEKER_EVENT) != IN_PROGRESS)
EnterCombat(target);
}
- else if (!me->isInCombat())
+ else if (!me->IsInCombat())
EnterEvadeMode();
}
}
@@ -280,7 +284,7 @@ public:
bCanDown = true;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!instance)
return;
@@ -336,20 +340,20 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_jedoga_shadowseekerAI(creature);
}
};
-class mob_jedoga_initiand : public CreatureScript
+class npc_jedoga_initiand : public CreatureScript
{
public:
- mob_jedoga_initiand() : CreatureScript("mob_jedoga_initiand") { }
+ npc_jedoga_initiand() : CreatureScript("npc_jedoga_initiand") { }
- struct mob_jedoga_initiandAI : public ScriptedAI
+ struct npc_jedoga_initiandAI : public ScriptedAI
{
- mob_jedoga_initiandAI(Creature* creature) : ScriptedAI(creature)
+ npc_jedoga_initiandAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -360,7 +364,7 @@ public:
bool bWalking;
- void Reset()
+ void Reset() OVERRIDE
{
if (!instance)
return;
@@ -384,7 +388,7 @@ public:
}
}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
if (!killer || !instance)
return;
@@ -408,13 +412,13 @@ public:
instance->SetData64(DATA_PL_JEDOGA_TARGET, killer->GetGUID());
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if ((instance && instance->GetData(DATA_JEDOGA_SHADOWSEEKER_EVENT) == IN_PROGRESS) || !who)
return;
}
- void AttackStart(Unit* victim)
+ void AttackStart(Unit* victim) OVERRIDE
{
if ((instance && instance->GetData(DATA_JEDOGA_SHADOWSEEKER_EVENT) == IN_PROGRESS) || !victim)
return;
@@ -422,7 +426,8 @@ public:
ScriptedAI::AttackStart(victim);
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if ((instance && instance->GetData(DATA_JEDOGA_SHADOWSEEKER_EVENT) == IN_PROGRESS) || !who)
return;
@@ -430,7 +435,7 @@ public:
ScriptedAI::MoveInLineOfSight(who);
}
- void MovementInform(uint32 uiType, uint32 uiPointId)
+ void MovementInform(uint32 uiType, uint32 uiPointId) OVERRIDE
{
if (uiType != POINT_MOTION_TYPE || !instance)
return;
@@ -451,7 +456,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (instance && bCheckTimer <= diff)
{
@@ -503,9 +508,9 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_jedoga_initiandAI(creature);
+ return new npc_jedoga_initiandAI(creature);
}
};
@@ -543,12 +548,13 @@ public:
bool bCasted;
bool bCasted2;
- void Reset() {}
- void EnterCombat(Unit* /*who*/) {}
- void AttackStart(Unit* /*victim*/) {}
- void MoveInLineOfSight(Unit* /*who*/) {}
+ void Reset() OVERRIDE {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+ void AttackStart(Unit* /*victim*/) OVERRIDE {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
+
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
if (!instance)
return;
@@ -588,7 +594,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_jedogas_aufseher_triggerAI(creature);
}
@@ -601,7 +607,7 @@ class achievement_volunteer_work : public AchievementCriteriaScript
{
}
- bool OnCheck(Player* /*player*/, Unit* target)
+ bool OnCheck(Player* /*player*/, Unit* target) OVERRIDE
{
if (!target)
return false;
@@ -617,7 +623,7 @@ class achievement_volunteer_work : public AchievementCriteriaScript
void AddSC_boss_jedoga_shadowseeker()
{
new boss_jedoga_shadowseeker();
- new mob_jedoga_initiand();
+ new npc_jedoga_initiand();
new npc_jedogas_aufseher_trigger();
new achievement_volunteer_work();
}
diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp
index a68cbcb7ee6..2cfc714c1f7 100644
--- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp
@@ -21,7 +21,7 @@
enum Spells
{
- SPELL_BLOODTHIRST = 55968, //Trigger Spell + add aura
+ SPELL_BLOODTHIRST = 55968, // Trigger Spell + add aura
SPELL_CONJURE_FLAME_SPHERE = 55931,
SPELL_FLAME_SPHERE_SUMMON_1 = 55895, // 1x 30106
H_SPELL_FLAME_SPHERE_SUMMON_1 = 59511, // 1x 31686
@@ -40,14 +40,16 @@ enum Spells
H_CREATURE_FLAME_SPHERE_2 = 31687,
SPELL_HOVER_FALL = 60425
};
+
enum Misc
{
DATA_EMBRACE_DMG = 20000,
H_DATA_EMBRACE_DMG = 40000,
- DATA_SPHERE_DISTANCE = 15
+ DATA_SPHERE_DISTANCE = 15
};
-#define DATA_SPHERE_ANGLE_OFFSET 0.7f
-#define DATA_GROUND_POSITION_Z 11.30809f
+
+#define DATA_SPHERE_ANGLE_OFFSET 0.7f
+#define DATA_GROUND_POSITION_Z 11.30809f
enum Yells
{
@@ -100,7 +102,7 @@ public:
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
uiBloodthirstTimer = 10*IN_MILLISECONDS;
uiVanishTimer = urand(25*IN_MILLISECONDS, 35*IN_MILLISECONDS);
@@ -114,14 +116,14 @@ public:
instance->SetData(DATA_PRINCE_TALDARAM_EVENT, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (instance)
instance->SetData(DATA_PRINCE_TALDARAM_EVENT, IN_PROGRESS);
Talk(SAY_AGGRO);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -184,7 +186,7 @@ public:
Talk(SAY_FEED);
me->GetMotionMaster()->Clear();
me->SetSpeed(MOVE_WALK, 1.0f, true);
- me->GetMotionMaster()->MoveChase(me->getVictim());
+ me->GetMotionMaster()->MoveChase(me->GetVictim());
Phase = FEEDING;
uiPhaseTimer = 20*IN_MILLISECONDS;
break;
@@ -219,7 +221,7 @@ public:
{
target = Unit::GetUnit(*me, (*itr)->getUnitGuid());
// exclude pets & totems
- if (target && target->GetTypeId() == TYPEID_PLAYER && target->isAlive())
+ if (target && target->GetTypeId() == TYPEID_PLAYER && target->IsAlive())
target_list.push_back(target);
target = NULL;
}
@@ -243,11 +245,11 @@ public:
} else uiPhaseTimer -= diff;
}
- void DamageTaken(Unit* /*done_by*/, uint32 &damage)
+ void DamageTaken(Unit* /*done_by*/, uint32 &damage) OVERRIDE
{
Unit* pEmbraceTarget = GetEmbraceTarget();
- if (Phase == FEEDING && pEmbraceTarget && pEmbraceTarget->isAlive())
+ if (Phase == FEEDING && pEmbraceTarget && pEmbraceTarget->IsAlive())
{
uiEmbraceTakenDamage += damage;
if (uiEmbraceTakenDamage > (uint32) DUNGEON_MODE(DATA_EMBRACE_DMG, H_DATA_EMBRACE_DMG))
@@ -260,7 +262,7 @@ public:
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -268,9 +270,9 @@ public:
instance->SetData(DATA_PRINCE_TALDARAM_EVENT, DONE);
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
- if (victim == me)
+ if (victim->GetTypeId() != TYPEID_PLAYER)
return;
Unit* pEmbraceTarget = GetEmbraceTarget();
@@ -328,20 +330,20 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_taldaramAI(creature);
}
};
-class mob_taldaram_flamesphere : public CreatureScript
+class npc_taldaram_flamesphere : public CreatureScript
{
public:
- mob_taldaram_flamesphere() : CreatureScript("mob_taldaram_flamesphere") { }
+ npc_taldaram_flamesphere() : CreatureScript("npc_taldaram_flamesphere") { }
- struct mob_taldaram_flamesphereAI : public ScriptedAI
+ struct npc_taldaram_flamesphereAI : public ScriptedAI
{
- mob_taldaram_flamesphereAI(Creature* creature) : ScriptedAI(creature)
+ npc_taldaram_flamesphereAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -349,7 +351,7 @@ public:
uint32 uiDespawnTimer;
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
//! HACK: Creature's can't have MOVEMENTFLAG_FLYING
@@ -362,15 +364,16 @@ public:
uiDespawnTimer = 10*IN_MILLISECONDS;
}
- void EnterCombat(Unit* /*who*/) {}
- void MoveInLineOfSight(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
+
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
DoCast(me, SPELL_FLAME_SPHERE_DEATH_EFFECT);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (uiDespawnTimer <= diff)
me->DisappearAndDie();
@@ -379,9 +382,9 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_taldaram_flamesphereAI(creature);
+ return new npc_taldaram_flamesphereAI(creature);
}
};
@@ -390,14 +393,14 @@ class prince_taldaram_sphere : public GameObjectScript
public:
prince_taldaram_sphere() : GameObjectScript("prince_taldaram_sphere") { }
- bool OnGossipHello(Player* /*player*/, GameObject* go)
+ bool OnGossipHello(Player* /*player*/, GameObject* go) OVERRIDE
{
InstanceScript* instance = go->GetInstanceScript();
if (!instance)
return true;
Creature* pPrinceTaldaram = Unit::GetCreature(*go, instance->GetData64(DATA_PRINCE_TALDARAM));
- if (pPrinceTaldaram && pPrinceTaldaram->isAlive())
+ if (pPrinceTaldaram && pPrinceTaldaram->IsAlive())
{
// maybe these are hacks :(
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
@@ -425,6 +428,6 @@ public:
void AddSC_boss_taldaram()
{
new boss_taldaram();
- new mob_taldaram_flamesphere();
+ new npc_taldaram_flamesphere();
new prince_taldaram_sphere();
}
diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/instance_ahnkahet.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/instance_ahnkahet.cpp
index 26a4aeeca01..655a1d94e59 100644
--- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/instance_ahnkahet.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/instance_ahnkahet.cpp
@@ -146,7 +146,7 @@ public:
}
}
- void SetData64(uint32 idx, uint64 guid)
+ void SetData64(uint32 idx, uint64 guid) OVERRIDE
{
switch (idx)
{
@@ -160,7 +160,7 @@ public:
}
}
- uint64 GetData64(uint32 identifier) const
+ uint64 GetData64(uint32 identifier) const OVERRIDE
{
switch (identifier)
{
@@ -179,7 +179,7 @@ public:
for (std::set<uint64>::const_iterator itr = InitiandGUIDs.begin(); itr != InitiandGUIDs.end(); ++itr)
{
Creature* cr = instance->GetCreature(*itr);
- if (cr && cr->isAlive())
+ if (cr && cr->IsAlive())
vInitiands.push_back(*itr);
}
if (vInitiands.empty())
@@ -193,7 +193,7 @@ public:
return 0;
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
switch (type)
{
@@ -212,7 +212,7 @@ public:
for (std::set<uint64>::const_iterator itr = InitiandGUIDs.begin(); itr != InitiandGUIDs.end(); ++itr)
{
Creature* cr = instance->GetCreature(*itr);
- if (cr && cr->isAlive())
+ if (cr && cr->IsAlive())
{
cr->SetVisible(false);
cr->setDeathState(JUST_DIED);
@@ -252,7 +252,7 @@ public:
SaveToDB();
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -267,7 +267,7 @@ public:
for (std::set<uint64>::const_iterator itr = InitiandGUIDs.begin(); itr != InitiandGUIDs.end(); ++itr)
{
Creature* cr = instance->GetCreature(*itr);
- if (!cr || (cr && cr->isAlive()))
+ if (!cr || (cr && cr->IsAlive()))
return 0;
}
return 1;
@@ -328,7 +328,7 @@ public:
}
};
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_ahnkahet_InstanceScript(map);
}
diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/azjol_nerub.h b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/azjol_nerub.h
index 344b0dfe03a..5970a85cc38 100644
--- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/azjol_nerub.h
+++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/azjol_nerub.h
@@ -27,6 +27,7 @@ enum Data64
DATA_WATCHER_SILTHIK,
DATA_WATCHER_NARJIL
};
+
enum Data
{
DATA_KRIKTHIR_THE_GATEWATCHER_EVENT,
diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp
index 1ec61488c1b..05e758f5cf9 100644
--- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp
@@ -52,7 +52,7 @@ enum Yells
SAY_INTRO = 5
};
-enum
+enum Misc
{
ACHIEV_TIMED_START_EVENT = 20381,
};
@@ -113,7 +113,7 @@ public:
SummonList Summons;
- void Reset()
+ void Reset() OVERRIDE
{
CarrionBeetlesTimer = 8*IN_MILLISECONDS;
LeechingSwarmTimer = 20*IN_MILLISECONDS;
@@ -154,7 +154,7 @@ public:
return NULL;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
DelayTimer = 0;
@@ -168,7 +168,7 @@ public:
instance->SetData(DATA_ANUBARAK_EVENT, IN_PROGRESS);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -217,7 +217,7 @@ public:
{
if (Creature* Guardian = me->SummonCreature(CREATURE_GUARDIAN, SpawnPointGuardian[i], TEMPSUMMON_CORPSE_DESPAWN, 0))
{
- Guardian->AddThreat(me->getVictim(), 0.0f);
+ Guardian->AddThreat(me->GetVictim(), 0.0f);
DoZoneInCombat(Guardian);
}
}
@@ -234,7 +234,7 @@ public:
{
if (Creature* Venomancer = me->SummonCreature(CREATURE_VENOMANCER, SpawnPoint[i], TEMPSUMMON_CORPSE_DESPAWN, 0))
{
- Venomancer->AddThreat(me->getVictim(), 0.0f);
+ Venomancer->AddThreat(me->GetVictim(), 0.0f);
DoZoneInCombat(Venomancer);
}
}
@@ -253,7 +253,7 @@ public:
{
if (Creature* Datter = me->SummonCreature(CREATURE_DATTER, SpawnPoint[i], TEMPSUMMON_CORPSE_DESPAWN, 0))
{
- Datter->AddThreat(me->getVictim(), 0.0f);
+ Datter->AddThreat(me->GetVictim(), 0.0f);
DoZoneInCombat(Datter);
}
}
@@ -300,7 +300,7 @@ public:
if (Channeling == true)
{
for (uint8 i = 0; i < 8; ++i)
- DoCast(me->getVictim(), SPELL_SUMMON_CARRION_BEETLES, true);
+ DoCastVictim(SPELL_SUMMON_CARRION_BEETLES, true);
Channeling = false;
}
else if (CarrionBeetlesTimer <= diff)
@@ -318,7 +318,7 @@ public:
if (PoundTimer <= diff)
{
- if (Unit* target = me->getVictim())
+ if (Unit* target = me->GetVictim())
{
if (Creature* pImpaleTarget = DoSummonImpaleTarget(target))
me->CastSpell(pImpaleTarget, SPELL_POUND, false);
@@ -331,7 +331,7 @@ public:
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
Summons.DespawnAll();
@@ -339,20 +339,21 @@ public:
instance->SetData(DATA_ANUBARAK_EVENT, DONE);
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
- if (victim == me)
+ if (victim->GetTypeId() != TYPEID_PLAYER)
return;
+
Talk(SAY_SLAY);
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
Summons.Summon(summon);
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_anub_arakAI(creature);
}
diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp
index eec7959f56f..6b556f4fe4d 100644
--- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp
@@ -72,7 +72,7 @@ public:
float fMaxDistance;
- void Reset()
+ void Reset() OVERRIDE
{
me->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, 9.0f);
me->SetFloatValue(UNIT_FIELD_COMBATREACH, 9.0f);
@@ -91,22 +91,22 @@ public:
}
//when Hadronox kills any enemy (that includes a party member) she will regain 10% of her HP if the target had Leech Poison on
- void KilledUnit(Unit* Victim)
+ void KilledUnit(Unit* Victim) OVERRIDE
{
// not sure if this aura check is correct, I think it is though
- if (!Victim || !Victim->HasAura(DUNGEON_MODE(SPELL_LEECH_POISON, H_SPELL_LEECH_POISON)) || !me->isAlive())
+ if (!Victim || !Victim->HasAura(DUNGEON_MODE(SPELL_LEECH_POISON, H_SPELL_LEECH_POISON)) || !me->IsAlive())
return;
me->ModifyHealth(int32(me->CountPctFromMaxHealth(10)));
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
instance->SetData(DATA_HADRONOX_EVENT, DONE);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (instance)
instance->SetData(DATA_HADRONOX_EVENT, IN_PROGRESS);
@@ -115,7 +115,7 @@ public:
void CheckDistance(float dist, const uint32 uiDiff)
{
- if (!me->isInCombat())
+ if (!me->IsInCombat())
return;
float x=0.0f, y=0.0f, z=0.0f;
@@ -128,13 +128,13 @@ public:
uiCheckDistanceTimer -= uiDiff;
return;
}
- if (me->IsInEvadeMode() || !me->getVictim())
+ if (me->IsInEvadeMode() || !me->GetVictim())
return;
if (me->GetDistance(x, y, z) > dist)
EnterEvadeMode();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -153,7 +153,7 @@ public:
if (uiPierceTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_PIERCE_ARMOR);
+ DoCastVictim(SPELL_PIERCE_ARMOR);
uiPierceTimer = 8*IN_MILLISECONDS;
} else uiPierceTimer -= diff;
@@ -190,7 +190,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_hadronoxAI(creature);
}
diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp
index 295f38658e2..2222d16f68b 100644
--- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp
@@ -54,9 +54,9 @@ enum Spells
enum Mobs
{
- MOB_SKITTERING_SWARMER = 28735,
- MOB_SKITTERING_SWARMER_CONTROLLER = 32593,
- MOB_SKITTERING_INFECTIOR = 28736
+ NPC_SKITTERING_SWARMER = 28735,
+ NPC_SKITTERING_SWARMER_CONTROLLER = 32593,
+ NPC_SKITTERING_INFECTIOR = 28736
};
enum Yells
@@ -99,7 +99,7 @@ public:
uint32 uiCurseFatigueTimer;
uint32 uiSummonTimer;
- void Reset()
+ void Reset() OVERRIDE
{
uiMindFlayTimer = 15*IN_MILLISECONDS;
uiCurseFatigueTimer = 12*IN_MILLISECONDS;
@@ -108,7 +108,7 @@ public:
instance->SetData(DATA_KRIKTHIR_THE_GATEWATCHER_EVENT, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
Summon();
@@ -120,25 +120,25 @@ public:
void Summon()
{
- me->SummonCreature(MOB_SKITTERING_SWARMER, SpawnPoint[0], TEMPSUMMON_TIMED_DESPAWN, 25*IN_MILLISECONDS);
- me->SummonCreature(MOB_SKITTERING_SWARMER, SpawnPoint[0], TEMPSUMMON_TIMED_DESPAWN, 25*IN_MILLISECONDS);
- me->SummonCreature(MOB_SKITTERING_SWARMER, SpawnPoint[1], TEMPSUMMON_TIMED_DESPAWN, 25*IN_MILLISECONDS);
- me->SummonCreature(MOB_SKITTERING_SWARMER, SpawnPoint[1], TEMPSUMMON_TIMED_DESPAWN, 25*IN_MILLISECONDS);
- me->SummonCreature(MOB_SKITTERING_SWARMER, SpawnPoint[2], TEMPSUMMON_TIMED_DESPAWN, 25*IN_MILLISECONDS);
- me->SummonCreature(MOB_SKITTERING_SWARMER, SpawnPoint[2], TEMPSUMMON_TIMED_DESPAWN, 25*IN_MILLISECONDS);
- me->SummonCreature(MOB_SKITTERING_SWARMER, SpawnPoint[3], TEMPSUMMON_TIMED_DESPAWN, 25*IN_MILLISECONDS);
- me->SummonCreature(MOB_SKITTERING_SWARMER, SpawnPoint[3], TEMPSUMMON_TIMED_DESPAWN, 25*IN_MILLISECONDS);
- me->SummonCreature(MOB_SKITTERING_INFECTIOR, SpawnPoint[4], TEMPSUMMON_TIMED_DESPAWN, 25*IN_MILLISECONDS);
- me->SummonCreature(MOB_SKITTERING_SWARMER, SpawnPoint[4], TEMPSUMMON_TIMED_DESPAWN, 25*IN_MILLISECONDS);
- me->SummonCreature(MOB_SKITTERING_INFECTIOR, SpawnPoint[5], TEMPSUMMON_TIMED_DESPAWN, 25*IN_MILLISECONDS);
- me->SummonCreature(MOB_SKITTERING_SWARMER, SpawnPoint[5], TEMPSUMMON_TIMED_DESPAWN, 25*IN_MILLISECONDS);
- me->SummonCreature(MOB_SKITTERING_INFECTIOR, SpawnPoint[6], TEMPSUMMON_TIMED_DESPAWN, 25*IN_MILLISECONDS);
- me->SummonCreature(MOB_SKITTERING_SWARMER, SpawnPoint[6], TEMPSUMMON_TIMED_DESPAWN, 25*IN_MILLISECONDS);
- me->SummonCreature(MOB_SKITTERING_SWARMER, SpawnPoint[7], TEMPSUMMON_TIMED_DESPAWN, 25*IN_MILLISECONDS);
- me->SummonCreature(MOB_SKITTERING_SWARMER, SpawnPoint[7], TEMPSUMMON_TIMED_DESPAWN, 25*IN_MILLISECONDS);
+ me->SummonCreature(NPC_SKITTERING_SWARMER, SpawnPoint[0], TEMPSUMMON_TIMED_DESPAWN, 25*IN_MILLISECONDS);
+ me->SummonCreature(NPC_SKITTERING_SWARMER, SpawnPoint[0], TEMPSUMMON_TIMED_DESPAWN, 25*IN_MILLISECONDS);
+ me->SummonCreature(NPC_SKITTERING_SWARMER, SpawnPoint[1], TEMPSUMMON_TIMED_DESPAWN, 25*IN_MILLISECONDS);
+ me->SummonCreature(NPC_SKITTERING_SWARMER, SpawnPoint[1], TEMPSUMMON_TIMED_DESPAWN, 25*IN_MILLISECONDS);
+ me->SummonCreature(NPC_SKITTERING_SWARMER, SpawnPoint[2], TEMPSUMMON_TIMED_DESPAWN, 25*IN_MILLISECONDS);
+ me->SummonCreature(NPC_SKITTERING_SWARMER, SpawnPoint[2], TEMPSUMMON_TIMED_DESPAWN, 25*IN_MILLISECONDS);
+ me->SummonCreature(NPC_SKITTERING_SWARMER, SpawnPoint[3], TEMPSUMMON_TIMED_DESPAWN, 25*IN_MILLISECONDS);
+ me->SummonCreature(NPC_SKITTERING_SWARMER, SpawnPoint[3], TEMPSUMMON_TIMED_DESPAWN, 25*IN_MILLISECONDS);
+ me->SummonCreature(NPC_SKITTERING_INFECTIOR, SpawnPoint[4], TEMPSUMMON_TIMED_DESPAWN, 25*IN_MILLISECONDS);
+ me->SummonCreature(NPC_SKITTERING_SWARMER, SpawnPoint[4], TEMPSUMMON_TIMED_DESPAWN, 25*IN_MILLISECONDS);
+ me->SummonCreature(NPC_SKITTERING_INFECTIOR, SpawnPoint[5], TEMPSUMMON_TIMED_DESPAWN, 25*IN_MILLISECONDS);
+ me->SummonCreature(NPC_SKITTERING_SWARMER, SpawnPoint[5], TEMPSUMMON_TIMED_DESPAWN, 25*IN_MILLISECONDS);
+ me->SummonCreature(NPC_SKITTERING_INFECTIOR, SpawnPoint[6], TEMPSUMMON_TIMED_DESPAWN, 25*IN_MILLISECONDS);
+ me->SummonCreature(NPC_SKITTERING_SWARMER, SpawnPoint[6], TEMPSUMMON_TIMED_DESPAWN, 25*IN_MILLISECONDS);
+ me->SummonCreature(NPC_SKITTERING_SWARMER, SpawnPoint[7], TEMPSUMMON_TIMED_DESPAWN, 25*IN_MILLISECONDS);
+ me->SummonCreature(NPC_SKITTERING_SWARMER, SpawnPoint[7], TEMPSUMMON_TIMED_DESPAWN, 25*IN_MILLISECONDS);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -151,7 +151,7 @@ public:
if (uiMindFlayTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_MIND_FLAY);
+ DoCastVictim(SPELL_MIND_FLAY);
uiMindFlayTimer = 15*IN_MILLISECONDS;
} else uiMindFlayTimer -= diff;
@@ -171,7 +171,7 @@ public:
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -179,21 +179,21 @@ public:
instance->SetData(DATA_KRIKTHIR_THE_GATEWATCHER_EVENT, DONE);
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
- if (victim == me)
+ if (victim->GetTypeId() != TYPEID_PLAYER)
return;
Talk(SAY_SLAY);
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
summoned->GetMotionMaster()->MovePoint(0, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ());
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_krik_thirAI(creature);
}
@@ -208,14 +208,14 @@ public:
{
npc_skittering_infectorAI(Creature* creature) : ScriptedAI(creature) {}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
//The spell is not working propperly
- DoCast(me->getVictim(), SPELL_ACID_SPLASH, true);
+ DoCastVictim(SPELL_ACID_SPLASH, true);
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_skittering_infectorAI(creature);
}
@@ -233,13 +233,13 @@ public:
uint32 uiChargeTimer;
uint32 uiBackstabTimer;
- void Reset()
+ void Reset() OVERRIDE
{
uiChargeTimer = 11*IN_MILLISECONDS;
uiBackstabTimer = 7*IN_MILLISECONDS;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -257,7 +257,7 @@ public:
if (uiBackstabTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_BACKSTAB);
+ DoCastVictim(SPELL_BACKSTAB);
uiBackstabTimer = 12*IN_MILLISECONDS;
} else uiBackstabTimer -= diff;
@@ -266,7 +266,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_anub_ar_skirmisherAI(creature);
}
@@ -284,13 +284,13 @@ public:
uint32 uiShadowBoltTimer;
uint32 uiShadowNovaTimer;
- void Reset()
+ void Reset() OVERRIDE
{
uiShadowBoltTimer = 6*IN_MILLISECONDS;
uiShadowNovaTimer = 15*IN_MILLISECONDS;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -304,7 +304,7 @@ public:
if (uiShadowNovaTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_SHADOW_NOVA, true);
+ DoCastVictim(SPELL_SHADOW_NOVA, true);
uiShadowNovaTimer = 17*IN_MILLISECONDS;
} else uiShadowNovaTimer -= diff;
@@ -312,7 +312,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_anub_ar_shadowcasterAI(creature);
}
@@ -330,26 +330,26 @@ public:
uint32 uiCleaveTimer;
uint32 uiStrikeTimer;
- void Reset()
+ void Reset() OVERRIDE
{
uiCleaveTimer = 11*IN_MILLISECONDS;
uiStrikeTimer = 6*IN_MILLISECONDS;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
if (uiStrikeTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_STRIKE, true);
+ DoCastVictim(SPELL_STRIKE, true);
uiStrikeTimer = 15*IN_MILLISECONDS;
} else uiStrikeTimer -= diff;
if (uiCleaveTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_CLEAVE, true);
+ DoCastVictim(SPELL_CLEAVE, true);
uiCleaveTimer = 17*IN_MILLISECONDS;
} else uiCleaveTimer -= diff;
@@ -357,7 +357,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_anub_ar_warriorAI(creature);
}
@@ -375,18 +375,18 @@ public:
uint32 uiWebWrapTimer;
uint32 uiInfectedBiteTimer;
- void Reset()
+ void Reset() OVERRIDE
{
uiWebWrapTimer = 11*IN_MILLISECONDS;
uiInfectedBiteTimer = 4*IN_MILLISECONDS;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
DoCast(me, SPELL_ENRAGE, true);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -400,7 +400,7 @@ public:
if (uiInfectedBiteTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_INFECTED_BITE, true);
+ DoCastVictim(SPELL_INFECTED_BITE, true);
uiInfectedBiteTimer = 15*IN_MILLISECONDS;
} else uiInfectedBiteTimer -= diff;
@@ -408,7 +408,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_watcher_gashraAI(creature);
}
@@ -427,14 +427,14 @@ public:
uint32 uiInfectedBiteTimer;
uint32 uiBindingWebsTimer;
- void Reset()
+ void Reset() OVERRIDE
{
uiWebWrapTimer = 11*IN_MILLISECONDS;
uiInfectedBiteTimer = 4*IN_MILLISECONDS;
uiBindingWebsTimer = 17*IN_MILLISECONDS;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -448,13 +448,13 @@ public:
if (uiInfectedBiteTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_INFECTED_BITE, true);
+ DoCastVictim(SPELL_INFECTED_BITE, true);
uiInfectedBiteTimer = 11*IN_MILLISECONDS;
} else uiInfectedBiteTimer -= diff;
if (uiBindingWebsTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_BLINDING_WEBS, true);
+ DoCastVictim(SPELL_BLINDING_WEBS, true);
uiBindingWebsTimer = 17*IN_MILLISECONDS;
} else uiBindingWebsTimer -= diff;
@@ -462,7 +462,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_watcher_narjilAI(creature);
}
@@ -481,14 +481,14 @@ public:
uint32 uiInfectedBiteTimer;
uint32 uiPoisonSprayTimer;
- void Reset()
+ void Reset() OVERRIDE
{
uiWebWrapTimer = 11*IN_MILLISECONDS;
uiInfectedBiteTimer = 4*IN_MILLISECONDS;
uiPoisonSprayTimer = 15*IN_MILLISECONDS;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -503,13 +503,13 @@ public:
if (uiInfectedBiteTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_INFECTED_BITE, true);
+ DoCastVictim(SPELL_INFECTED_BITE, true);
uiInfectedBiteTimer = 15*IN_MILLISECONDS;
} else uiInfectedBiteTimer -= diff;
if (uiPoisonSprayTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_POSION_SPRAY, true);
+ DoCastVictim(SPELL_POSION_SPRAY, true);
uiPoisonSprayTimer = 17*IN_MILLISECONDS;
} else uiPoisonSprayTimer -= diff;
@@ -518,7 +518,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_watcher_silthikAI(creature);
}
@@ -531,7 +531,7 @@ class achievement_watch_him_die : public AchievementCriteriaScript
{
}
- bool OnCheck(Player* /*player*/, Unit* target)
+ bool OnCheck(Player* /*player*/, Unit* target) OVERRIDE
{
if (!target)
return false;
@@ -544,7 +544,7 @@ class achievement_watch_him_die : public AchievementCriteriaScript
for (uint8 n = 0; n < 3; ++n)
{
Watcher[n] = ObjectAccessor::GetCreature(*target, instance->GetData64(DATA_WATCHER_GASHRA + n));
- if (Watcher[n] && !Watcher[n]->isAlive())
+ if (Watcher[n] && !Watcher[n]->IsAlive())
return false;
}
diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/instance_azjol_nerub.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/instance_azjol_nerub.cpp
index 875aafe9826..65f817f148d 100644
--- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/instance_azjol_nerub.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/instance_azjol_nerub.cpp
@@ -105,7 +105,7 @@ public:
}
}
- uint64 GetData64(uint32 identifier) const
+ uint64 GetData64(uint32 identifier) const OVERRIDE
{
switch (identifier)
{
@@ -120,7 +120,7 @@ public:
return 0;
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
switch (type)
{
@@ -149,7 +149,7 @@ public:
}
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -205,7 +205,7 @@ public:
}
};
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_azjol_nerub_InstanceScript(map);
}
diff --git a/src/server/scripts/Northrend/CMakeLists.txt b/src/server/scripts/Northrend/CMakeLists.txt
index 674c35836a2..e04a4c43479 100644
--- a/src/server/scripts/Northrend/CMakeLists.txt
+++ b/src/server/scripts/Northrend/CMakeLists.txt
@@ -193,7 +193,7 @@ set(scripts_STAT_SRCS
Northrend/DraktharonKeep/boss_novos.cpp
Northrend/DraktharonKeep/drak_tharon_keep.h
Northrend/DraktharonKeep/boss_tharon_ja.cpp
- Northrend/DraktharonKeep/boss_dred.cpp
+ Northrend/DraktharonKeep/boss_king_dred.cpp
)
message(" -> Prepared: Northrend")
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp
index bbec79ea43d..a9f92521ef8 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp
@@ -124,7 +124,10 @@ enum Enums
POINT_ID_LAND = 200,
};
-#define DATA_CAN_LOOT 0
+enum Misc
+{
+ DATA_CAN_LOOT = 0
+};
struct Waypoint
{
@@ -216,7 +219,7 @@ class boss_sartharion : public CreatureScript
public:
boss_sartharion() : CreatureScript("boss_sartharion") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_sartharionAI(creature);
}
@@ -252,7 +255,7 @@ public:
uint8 drakeCount;
- void Reset()
+ void Reset() OVERRIDE
{
m_bIsBerserk = false;
m_bIsSoftEnraged = false;
@@ -290,7 +293,7 @@ public:
if (pTenebron)
{
pTenebron->SetHomePosition(3239.07f, 657.235f, 86.8775f, 4.74729f);
- if (pTenebron->isAlive())
+ if (pTenebron->IsAlive())
{
if (pTenebron->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
pTenebron->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
@@ -308,7 +311,7 @@ public:
if (pShadron)
{
pShadron->SetHomePosition(3363.06f, 525.28f, 98.362f, 4.76475f);
- if (pShadron->isAlive())
+ if (pShadron->IsAlive())
{
if (pShadron->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
pShadron->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
@@ -326,7 +329,7 @@ public:
if (pVesperon)
{
pVesperon->SetHomePosition(3145.68f, 520.71f, 89.7f, 4.64258f);
- if (pVesperon->isAlive())
+ if (pVesperon->IsAlive())
{
if (pVesperon->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
pVesperon->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
@@ -344,13 +347,13 @@ public:
}
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
if (instance)
instance->SetData(TYPE_SARTHARION_EVENT, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_SARTHARION_AGGRO);
DoZoneInCombat();
@@ -362,7 +365,7 @@ public:
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_SARTHARION_DEATH);
@@ -371,18 +374,18 @@ public:
Creature* pTenebron = Unit::GetCreature(*me, instance->GetData64(DATA_TENEBRON));
Creature* pShadron = Unit::GetCreature(*me, instance->GetData64(DATA_SHADRON));
Creature* pVesperon = Unit::GetCreature(*me, instance->GetData64(DATA_VESPERON));
- if (pTenebron && pTenebron->isAlive())
+ if (pTenebron && pTenebron->IsAlive())
pTenebron->DisappearAndDie();
- if (pShadron && pShadron->isAlive())
+ if (pShadron && pShadron->IsAlive())
pShadron->DisappearAndDie();
- if (pVesperon && pVesperon->isAlive())
+ if (pVesperon && pVesperon->IsAlive())
pVesperon->DisappearAndDie();
instance->SetData(TYPE_SARTHARION_EVENT, DONE);
}
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SARTHARION_SLAY);
}
@@ -399,7 +402,7 @@ public:
me->AddLootMode(LOOT_MODE_HARD_MODE_1); // Add 1st Drake loot mode
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
if (type == TWILIGHT_ACHIEVEMENTS)
return drakeCount;
@@ -422,10 +425,10 @@ public:
//if at least one of the dragons are alive and are being called
bool bCanUseWill = false;
- if (pFetchTene && pFetchTene->isAlive() && !pFetchTene->getVictim())
+ if (pFetchTene && pFetchTene->IsAlive() && !pFetchTene->GetVictim())
{
bCanUseWill = true;
- if (!pFetchTene->isInCombat())
+ if (!pFetchTene->IsInCombat())
{
DoCast(me, SPELL_POWER_OF_TENEBRON);
AddDrakeLootMode();
@@ -437,10 +440,10 @@ public:
pFetchTene->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
}
- if (pFetchShad && pFetchShad->isAlive() && !pFetchShad->getVictim())
+ if (pFetchShad && pFetchShad->IsAlive() && !pFetchShad->GetVictim())
{
bCanUseWill = true;
- if (!pFetchShad->isInCombat())
+ if (!pFetchShad->IsInCombat())
{
DoCast(me, SPELL_POWER_OF_SHADRON);
AddDrakeLootMode();
@@ -452,10 +455,10 @@ public:
pFetchShad->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
}
- if (pFetchVesp && pFetchVesp->isAlive() && !pFetchVesp->getVictim())
+ if (pFetchVesp && pFetchVesp->IsAlive() && !pFetchVesp->GetVictim())
{
bCanUseWill = true;
- if (!pFetchVesp->isInCombat())
+ if (!pFetchVesp->IsInCombat())
{
DoCast(me, SPELL_POWER_OF_VESPERON);
AddDrakeLootMode();
@@ -477,10 +480,9 @@ public:
{
if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(uiDataId)))
{
- if (temp->isAlive() && !temp->getVictim())
+ if (temp->IsAlive() && !temp->GetVictim())
{
- if (temp->HasUnitMovementFlag(MOVEMENTFLAG_WALKING))
- temp->SetWalk(false);
+ temp->SetWalk(false);
if (temp->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
temp->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
@@ -521,8 +523,8 @@ public:
if (!PlayerList.isEmpty())
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
- if (i->getSource() && i->getSource()->isAlive())
- Talk(WHISPER_LAVA_CHURN, i->getSource()->GetGUID());
+ if (i->GetSource() && i->GetSource()->IsAlive())
+ Talk(WHISPER_LAVA_CHURN, i->GetSource()->GetGUID());
}
}
@@ -547,7 +549,7 @@ public:
(*itr)->CastSpell(target, SPELL_LAVA_STRIKE, true);
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -559,7 +561,7 @@ public:
//spell will target dragons, if they are still alive at 35%
if (!m_bIsBerserk && !HealthAbovePct(35)
- && ((pTene && pTene->isAlive()) || (pShad && pShad->isAlive()) || (pVesp && pVesp->isAlive())))
+ && ((pTene && pTene->IsAlive()) || (pShad && pShad->IsAlive()) || (pVesp && pVesp->IsAlive())))
{
Talk(SAY_SARTHARION_BERSERK);
DoCast(me, SPELL_BERSERK);
@@ -620,7 +622,7 @@ public:
if (m_uiFlameBreathTimer <= uiDiff)
{
Talk(SAY_SARTHARION_BREATH);
- DoCast(me->getVictim(), RAID_MODE(SPELL_FLAME_BREATH, SPELL_FLAME_BREATH_H));
+ DoCastVictim(RAID_MODE(SPELL_FLAME_BREATH, SPELL_FLAME_BREATH_H));
m_uiFlameBreathTimer = urand(25000, 35000);
}
else
@@ -629,7 +631,7 @@ public:
// Tail Sweep
if (m_uiTailSweepTimer <= uiDiff)
{
- DoCast(me->getVictim(), RAID_MODE(SPELL_TAIL_LASH, SPELL_TAIL_LASH_H));
+ DoCastVictim(RAID_MODE(SPELL_TAIL_LASH, SPELL_TAIL_LASH_H));
m_uiTailSweepTimer = urand(15000, 20000);
}
else
@@ -638,7 +640,7 @@ public:
// Cleave
if (m_uiCleaveTimer <= uiDiff)
{
- DoCast(me->getVictim(), SPELL_CLEAVE);
+ DoCastVictim(SPELL_CLEAVE);
m_uiCleaveTimer = urand(7000, 10000);
}
else
@@ -740,7 +742,7 @@ struct dummy_dragonAI : public ScriptedAI
bool m_bCanMoveFree;
bool m_bCanLoot;
- void Reset()
+ void Reset() OVERRIDE
{
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
@@ -752,13 +754,13 @@ struct dummy_dragonAI : public ScriptedAI
m_bCanLoot = true;
}
- void SetData(uint32 type, uint32 value)
+ void SetData(uint32 type, uint32 value) OVERRIDE
{
if (type == DATA_CAN_LOOT)
m_bCanLoot = value;
}
- void MovementInform(uint32 uiType, uint32 uiPointId)
+ void MovementInform(uint32 uiType, uint32 uiPointId) OVERRIDE
{
if (!instance || uiType != POINT_MOTION_TYPE)
return;
@@ -818,7 +820,7 @@ struct dummy_dragonAI : public ScriptedAI
if (!PlayerList.isEmpty())
{
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
- Talk(iTextId, i->getSource()->GetGUID());
+ Talk(iTextId, i->GetSource()->GetGUID());
}
}
}
@@ -898,7 +900,7 @@ struct dummy_dragonAI : public ScriptedAI
//Refresh respawnTime so time again are set to 30secs?
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (!m_bCanLoot)
me->SetLootRecipient(NULL);
@@ -946,7 +948,7 @@ struct dummy_dragonAI : public ScriptedAI
// Twilight Revenge to main boss
if (Unit* pSartharion = Unit::GetUnit(*me, instance->GetData64(DATA_SARTHARION)))
- if (pSartharion->isAlive())
+ if (pSartharion->IsAlive())
{
pSartharion->RemoveAurasDueToSpell(uiSpellId);
DoCast(pSartharion, SPELL_TWILIGHT_REVENGE, true);
@@ -954,7 +956,7 @@ struct dummy_dragonAI : public ScriptedAI
}
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (m_bCanMoveFree && m_uiMoveNextTimer)
{
@@ -977,19 +979,19 @@ struct dummy_dragonAI : public ScriptedAI
## Mob Tenebron
######*/
-class mob_tenebron : public CreatureScript
+class npc_tenebron : public CreatureScript
{
public:
- mob_tenebron() : CreatureScript("mob_tenebron") { }
+ npc_tenebron() : CreatureScript("npc_tenebron") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_tenebronAI(creature);
+ return new npc_tenebronAI(creature);
}
- struct mob_tenebronAI : public dummy_dragonAI
+ struct npc_tenebronAI : public dummy_dragonAI
{
- mob_tenebronAI(Creature* creature) : dummy_dragonAI(creature) {}
+ npc_tenebronAI(Creature* creature) : dummy_dragonAI(creature) {}
uint32 m_uiShadowBreathTimer;
uint32 m_uiShadowFissureTimer;
@@ -997,7 +999,7 @@ public:
bool m_bHasPortalOpen;
- void Reset()
+ void Reset() OVERRIDE
{
m_uiShadowBreathTimer = 20000;
m_uiShadowFissureTimer = 5000;
@@ -1006,18 +1008,18 @@ public:
m_bHasPortalOpen = false;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_TENEBRON_AGGRO);
DoZoneInCombat();
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_TENEBRON_SLAY);
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
//if no target, update dummy and return
if (!UpdateVictim())
@@ -1050,7 +1052,7 @@ public:
if (m_uiShadowBreathTimer <= uiDiff)
{
Talk(SAY_TENEBRON_BREATH);
- DoCast(me->getVictim(), RAID_MODE(SPELL_SHADOW_BREATH, SPELL_SHADOW_BREATH_H));
+ DoCastVictim(RAID_MODE(SPELL_SHADOW_BREATH, SPELL_SHADOW_BREATH_H));
m_uiShadowBreathTimer = urand(20000, 25000);
}
else
@@ -1066,19 +1068,19 @@ public:
## Mob Shadron
######*/
-class mob_shadron : public CreatureScript
+class npc_shadron : public CreatureScript
{
public:
- mob_shadron() : CreatureScript("mob_shadron") { }
+ npc_shadron() : CreatureScript("npc_shadron") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_shadronAI(creature);
+ return new npc_shadronAI(creature);
}
- struct mob_shadronAI : public dummy_dragonAI
+ struct npc_shadronAI : public dummy_dragonAI
{
- mob_shadronAI(Creature* creature) : dummy_dragonAI(creature) {}
+ npc_shadronAI(Creature* creature) : dummy_dragonAI(creature) {}
uint32 m_uiShadowBreathTimer;
uint32 m_uiShadowFissureTimer;
@@ -1086,7 +1088,7 @@ public:
bool m_bHasPortalOpen;
- void Reset()
+ void Reset() OVERRIDE
{
m_uiShadowBreathTimer = 20000;
m_uiShadowFissureTimer = 5000;
@@ -1101,18 +1103,18 @@ public:
m_bHasPortalOpen = false;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_SHADRON_AGGRO);
DoZoneInCombat();
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SHADRON_SLAY);
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
//if no target, update dummy and return
if (!UpdateVictim())
@@ -1154,7 +1156,7 @@ public:
if (m_uiShadowBreathTimer <= uiDiff)
{
Talk(SAY_SHADRON_BREATH);
- DoCast(me->getVictim(), RAID_MODE(SPELL_SHADOW_BREATH, SPELL_SHADOW_BREATH_H));
+ DoCastVictim(RAID_MODE(SPELL_SHADOW_BREATH, SPELL_SHADOW_BREATH_H));
m_uiShadowBreathTimer = urand(20000, 25000);
}
else
@@ -1170,19 +1172,19 @@ public:
## Mob Vesperon
######*/
-class mob_vesperon : public CreatureScript
+class npc_vesperon : public CreatureScript
{
public:
- mob_vesperon() : CreatureScript("mob_vesperon") { }
+ npc_vesperon() : CreatureScript("npc_vesperon") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_vesperonAI(creature);
+ return new npc_vesperonAI(creature);
}
- struct mob_vesperonAI : public dummy_dragonAI
+ struct npc_vesperonAI : public dummy_dragonAI
{
- mob_vesperonAI(Creature* creature) : dummy_dragonAI(creature) {}
+ npc_vesperonAI(Creature* creature) : dummy_dragonAI(creature) {}
uint32 m_uiShadowBreathTimer;
uint32 m_uiShadowFissureTimer;
@@ -1190,7 +1192,7 @@ public:
bool m_bHasPortalOpen;
- void Reset()
+ void Reset() OVERRIDE
{
m_uiShadowBreathTimer = 20000;
m_uiShadowFissureTimer = 5000;
@@ -1199,18 +1201,18 @@ public:
m_bHasPortalOpen = false;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_VESPERON_AGGRO);
DoZoneInCombat();
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_VESPERON_SLAY);
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
//if no target, update dummy and return
if (!UpdateVictim())
@@ -1238,7 +1240,7 @@ public:
else
{
OpenPortal();
- DoCast(me->getVictim(), SPELL_TWILIGHT_TORMENT_VESP);
+ DoCastVictim(SPELL_TWILIGHT_TORMENT_VESP);
m_uiAcolyteVesperonTimer = urand(60000, 70000);
}
}
@@ -1249,7 +1251,7 @@ public:
if (m_uiShadowBreathTimer <= uiDiff)
{
Talk(SAY_VESPERON_BREATH);
- DoCast(me->getVictim(), RAID_MODE(SPELL_SHADOW_BREATH, SPELL_SHADOW_BREATH_H));
+ DoCastVictim(RAID_MODE(SPELL_SHADOW_BREATH, SPELL_SHADOW_BREATH_H));
m_uiShadowBreathTimer = urand(20000, 25000);
}
else
@@ -1265,19 +1267,19 @@ public:
## Mob Acolyte of Shadron
######*/
-class mob_acolyte_of_shadron : public CreatureScript
+class npc_acolyte_of_shadron : public CreatureScript
{
public:
- mob_acolyte_of_shadron() : CreatureScript("mob_acolyte_of_shadron") { }
+ npc_acolyte_of_shadron() : CreatureScript("npc_acolyte_of_shadron") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_acolyte_of_shadronAI(creature);
+ return new npc_acolyte_of_shadronAI(creature);
}
- struct mob_acolyte_of_shadronAI : public ScriptedAI
+ struct npc_acolyte_of_shadronAI : public ScriptedAI
{
- mob_acolyte_of_shadronAI(Creature* creature) : ScriptedAI(creature)
+ npc_acolyte_of_shadronAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -1285,7 +1287,7 @@ public:
InstanceScript* instance;
uint32 uiDespawnTimer;
- void Reset()
+ void Reset() OVERRIDE
{
uiDespawnTimer = 28000;
if (instance)
@@ -1309,14 +1311,14 @@ public:
me->AddAura(SPELL_TWILIGHT_SHIFT_ENTER, me);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
{
Creature* Shadron = instance->instance->GetCreature(instance->GetData64(DATA_SHADRON));
if (Shadron)
{
- (CAST_AI(mob_shadron::mob_shadronAI, Shadron->AI()))->m_bHasPortalOpen = false;
+ (CAST_AI(npc_shadron::npc_shadronAI, Shadron->AI()))->m_bHasPortalOpen = false;
}
Creature* pDebuffTarget = NULL;
@@ -1330,29 +1332,29 @@ public:
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
{
- if (i->getSource()->isAlive() && i->getSource()->HasAura(SPELL_TWILIGHT_SHIFT, 0) && !i->getSource()->getVictim())
+ if (i->GetSource()->IsAlive() && i->GetSource()->HasAura(SPELL_TWILIGHT_SHIFT, 0) && !i->GetSource()->GetVictim())
{
- i->getSource()->CastSpell(i->getSource(), SPELL_TWILIGHT_SHIFT_REMOVAL_ALL, true);
- i->getSource()->CastSpell(i->getSource(), SPELL_TWILIGHT_RESIDUE, true);
- i->getSource()->RemoveAurasDueToSpell(SPELL_TWILIGHT_SHIFT);
- i->getSource()->RemoveAurasDueToSpell(SPELL_TWILIGHT_SHIFT_ENTER);
+ i->GetSource()->CastSpell(i->GetSource(), SPELL_TWILIGHT_SHIFT_REMOVAL_ALL, true);
+ i->GetSource()->CastSpell(i->GetSource(), SPELL_TWILIGHT_RESIDUE, true);
+ i->GetSource()->RemoveAurasDueToSpell(SPELL_TWILIGHT_SHIFT);
+ i->GetSource()->RemoveAurasDueToSpell(SPELL_TWILIGHT_SHIFT_ENTER);
}
}
}
//not solo fight, so main boss has deduff
pDebuffTarget = instance->instance->GetCreature(instance->GetData64(DATA_SARTHARION));
- if (pDebuffTarget && pDebuffTarget->isAlive() && pDebuffTarget->HasAura(SPELL_GIFT_OF_TWILIGTH_SAR))
+ if (pDebuffTarget && pDebuffTarget->IsAlive() && pDebuffTarget->HasAura(SPELL_GIFT_OF_TWILIGTH_SAR))
pDebuffTarget->RemoveAurasDueToSpell(SPELL_GIFT_OF_TWILIGTH_SAR);
//event not in progress, then solo fight and must remove debuff mini-boss
pDebuffTarget = instance->instance->GetCreature(instance->GetData64(DATA_SHADRON));
- if (pDebuffTarget && pDebuffTarget->isAlive() && pDebuffTarget->HasAura(SPELL_GIFT_OF_TWILIGTH_SHA))
+ if (pDebuffTarget && pDebuffTarget->IsAlive() && pDebuffTarget->HasAura(SPELL_GIFT_OF_TWILIGTH_SHA))
pDebuffTarget->RemoveAurasDueToSpell(SPELL_GIFT_OF_TWILIGTH_SHA);
}
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (uiDespawnTimer < uiDiff)
{
@@ -1375,19 +1377,19 @@ public:
## Mob Acolyte of Vesperon
######*/
-class mob_acolyte_of_vesperon : public CreatureScript
+class npc_acolyte_of_vesperon : public CreatureScript
{
public:
- mob_acolyte_of_vesperon() : CreatureScript("mob_acolyte_of_vesperon") { }
+ npc_acolyte_of_vesperon() : CreatureScript("npc_acolyte_of_vesperon") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_acolyte_of_vesperonAI(creature);
+ return new npc_acolyte_of_vesperonAI(creature);
}
- struct mob_acolyte_of_vesperonAI : public ScriptedAI
+ struct npc_acolyte_of_vesperonAI : public ScriptedAI
{
- mob_acolyte_of_vesperonAI(Creature* creature) : ScriptedAI(creature)
+ npc_acolyte_of_vesperonAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -1395,7 +1397,7 @@ public:
InstanceScript* instance;
uint32 uiDespawnTimer;
- void Reset()
+ void Reset() OVERRIDE
{
uiDespawnTimer = 28000;
if (instance)
@@ -1405,7 +1407,7 @@ public:
DoCast(me, SPELL_TWILIGHT_TORMENT_VESP_ACO);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
me->RemoveAurasDueToSpell(SPELL_TWILIGHT_TORMENT_VESP_ACO);
@@ -1414,9 +1416,9 @@ public:
{
Creature* pVesperon = instance->instance->GetCreature(instance->GetData64(DATA_VESPERON));
if (pVesperon)
- (CAST_AI(mob_vesperon::mob_vesperonAI, pVesperon->AI()))->m_bHasPortalOpen = false;
+ (CAST_AI(npc_vesperon::npc_vesperonAI, pVesperon->AI()))->m_bHasPortalOpen = false;
- if (pVesperon && pVesperon->isAlive() && pVesperon->HasAura(SPELL_TWILIGHT_TORMENT_VESP))
+ if (pVesperon && pVesperon->IsAlive() && pVesperon->HasAura(SPELL_TWILIGHT_TORMENT_VESP))
pVesperon->RemoveAurasDueToSpell(SPELL_TWILIGHT_TORMENT_VESP);
Map* map = me->GetMap();
@@ -1429,15 +1431,15 @@ public:
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
{
- if (i->getSource()->isAlive() && i->getSource()->HasAura(SPELL_TWILIGHT_SHIFT, 0) && !i->getSource()->getVictim())
+ if (i->GetSource()->IsAlive() && i->GetSource()->HasAura(SPELL_TWILIGHT_SHIFT, 0) && !i->GetSource()->GetVictim())
{
- i->getSource()->CastSpell(i->getSource(), SPELL_TWILIGHT_SHIFT_REMOVAL_ALL, true);
- i->getSource()->CastSpell(i->getSource(), SPELL_TWILIGHT_RESIDUE, true);
- i->getSource()->RemoveAurasDueToSpell(SPELL_TWILIGHT_SHIFT);
- i->getSource()->RemoveAurasDueToSpell(SPELL_TWILIGHT_SHIFT_ENTER);
+ i->GetSource()->CastSpell(i->GetSource(), SPELL_TWILIGHT_SHIFT_REMOVAL_ALL, true);
+ i->GetSource()->CastSpell(i->GetSource(), SPELL_TWILIGHT_RESIDUE, true);
+ i->GetSource()->RemoveAurasDueToSpell(SPELL_TWILIGHT_SHIFT);
+ i->GetSource()->RemoveAurasDueToSpell(SPELL_TWILIGHT_SHIFT_ENTER);
}
- if (i->getSource()->isAlive() && i->getSource()->HasAura(SPELL_TWILIGHT_TORMENT_VESP, 0) && !i->getSource()->getVictim())
- i->getSource()->RemoveAurasDueToSpell(SPELL_TWILIGHT_TORMENT_VESP);
+ if (i->GetSource()->IsAlive() && i->GetSource()->HasAura(SPELL_TWILIGHT_TORMENT_VESP, 0) && !i->GetSource()->GetVictim())
+ i->GetSource()->RemoveAurasDueToSpell(SPELL_TWILIGHT_TORMENT_VESP);
}
}
@@ -1447,7 +1449,7 @@ public:
}
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (uiDespawnTimer < uiDiff)
{
@@ -1470,19 +1472,19 @@ public:
## Mob Twilight Eggs
######*/
-class mob_twilight_eggs : public CreatureScript
+class npc_twilight_eggs : public CreatureScript
{
public:
- mob_twilight_eggs() : CreatureScript("mob_twilight_eggs") { }
+ npc_twilight_eggs() : CreatureScript("npc_twilight_eggs") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_twilight_eggsAI(creature);
+ return new npc_twilight_eggsAI(creature);
}
- struct mob_twilight_eggsAI : public ScriptedAI
+ struct npc_twilight_eggsAI : public ScriptedAI
{
- mob_twilight_eggsAI(Creature* creature) : ScriptedAI(creature)
+ npc_twilight_eggsAI(Creature* creature) : ScriptedAI(creature)
{
SetCombatMovement(false);
instance = creature->GetInstanceScript();
@@ -1493,7 +1495,7 @@ public:
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
if (instance)
{
@@ -1514,26 +1516,27 @@ public:
me->DealDamage(me, me->GetHealth());
}
- void JustSummoned(Creature* who)
+ void JustSummoned(Creature* who) OVERRIDE
{
who->SetInCombatWithZone();
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (m_uiHatchEggTimer <= uiDiff)
{
Creature* Tenebron = instance->instance->GetCreature(instance->GetData64(DATA_TENEBRON));
if (Tenebron)
- (CAST_AI(mob_tenebron::mob_tenebronAI, Tenebron->AI()))->m_bHasPortalOpen = false;
+ (CAST_AI(npc_tenebron::npc_tenebronAI, Tenebron->AI()))->m_bHasPortalOpen = false;
SpawnWhelps();
}
else
m_uiHatchEggTimer -= uiDiff;
}
- void AttackStart(Unit* /*who*/) {}
- void MoveInLineOfSight(Unit* /*who*/) {}
+ void AttackStart(Unit* /*who*/) OVERRIDE {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
+
};
};
@@ -1546,7 +1549,7 @@ class npc_flame_tsunami : public CreatureScript
public:
npc_flame_tsunami() : CreatureScript("npc_flame_tsunami") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_flame_tsunamiAI(creature);
}
@@ -1563,7 +1566,7 @@ public:
uint32 TsunamiBuff_timer;
uint32 entry;
- void Reset()
+ void Reset() OVERRIDE
{
me->SetReactState(REACT_PASSIVE);
Tsunami_Timer = 100;
@@ -1573,7 +1576,7 @@ public:
entry = 0;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (Tsunami_Timer <= diff)
{
@@ -1598,7 +1601,7 @@ class npc_twilight_fissure : public CreatureScript
public:
npc_twilight_fissure() : CreatureScript("npc_twilight_fissure") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_twilight_fissureAI(creature);
}
@@ -1612,7 +1615,7 @@ public:
uint32 VoidBlast_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
@@ -1621,14 +1624,14 @@ public:
VoidBlast_Timer = 5000;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (VoidBlast_Timer <= diff)
{
DoCastAOE(RAID_MODE(SPELL_VOID_BLAST, SPELL_VOID_BLAST_H));
////twilight realm
- //DoCast(me->getVictim(), 57620, true);
- //DoCast(me->getVictim(), 57874, true);
+ //DoCastVictim(57620, true);
+ //DoCastVictim(57874, true);
VoidBlast_Timer = 9000;
me->RemoveAllAuras();
me->Kill(me);
@@ -1642,33 +1645,33 @@ public:
## Mob Twilight Whelps
######*/
-class mob_twilight_whelp : public CreatureScript
+class npc_twilight_whelp : public CreatureScript
{
public:
- mob_twilight_whelp() : CreatureScript("mob_twilight_whelp") { }
+ npc_twilight_whelp() : CreatureScript("npc_twilight_whelp") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_twilight_whelpAI(creature);
+ return new npc_twilight_whelpAI(creature);
}
- struct mob_twilight_whelpAI : public ScriptedAI
+ struct npc_twilight_whelpAI : public ScriptedAI
{
- mob_twilight_whelpAI(Creature* creature) : ScriptedAI(creature)
+ npc_twilight_whelpAI(Creature* creature) : ScriptedAI(creature)
{
Reset();
}
uint32 m_uiFadeArmorTimer;
- void Reset()
+ void Reset() OVERRIDE
{
me->RemoveAllAuras();
me->SetInCombatWithZone();
m_uiFadeArmorTimer = 1000;
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -1677,7 +1680,7 @@ public:
// twilight torment
if (m_uiFadeArmorTimer <= uiDiff)
{
- DoCast(me->getVictim(), SPELL_FADE_ARMOR);
+ DoCastVictim(SPELL_FADE_ARMOR);
m_uiFadeArmorTimer = urand(5000, 10000);
}
else
@@ -1696,7 +1699,7 @@ class achievement_twilight_assist : public AchievementCriteriaScript
{
}
- bool OnCheck(Player* /*player*/, Unit* target)
+ bool OnCheck(Player* /*player*/, Unit* target) OVERRIDE
{
if (!target)
return false;
@@ -1716,7 +1719,7 @@ class achievement_twilight_duo : public AchievementCriteriaScript
{
}
- bool OnCheck(Player* /*player*/, Unit* target)
+ bool OnCheck(Player* /*player*/, Unit* target) OVERRIDE
{
if (!target)
return false;
@@ -1736,7 +1739,7 @@ class achievement_twilight_zone : public AchievementCriteriaScript
{
}
- bool OnCheck(Player* /*player*/, Unit* target)
+ bool OnCheck(Player* /*player*/, Unit* target) OVERRIDE
{
if (!target)
return false;
@@ -1752,15 +1755,15 @@ class achievement_twilight_zone : public AchievementCriteriaScript
void AddSC_boss_sartharion()
{
new boss_sartharion();
- new mob_vesperon();
- new mob_shadron();
- new mob_tenebron();
- new mob_acolyte_of_shadron();
- new mob_acolyte_of_vesperon();
- new mob_twilight_eggs();
+ new npc_vesperon();
+ new npc_shadron();
+ new npc_tenebron();
+ new npc_acolyte_of_shadron();
+ new npc_acolyte_of_vesperon();
+ new npc_twilight_eggs();
new npc_flame_tsunami();
new npc_twilight_fissure();
- new mob_twilight_whelp();
+ new npc_twilight_whelp();
new achievement_twilight_assist();
new achievement_twilight_duo();
new achievement_twilight_zone();
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/instance_obsidian_sanctum.cpp b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/instance_obsidian_sanctum.cpp
index c602e0b1a9e..b1d03b58bc9 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/instance_obsidian_sanctum.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/instance_obsidian_sanctum.cpp
@@ -30,7 +30,7 @@ class instance_obsidian_sanctum : public InstanceMapScript
public:
instance_obsidian_sanctum() : InstanceMapScript("instance_obsidian_sanctum", 615) { }
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_obsidian_sanctum_InstanceMapScript(map);
}
@@ -96,7 +96,7 @@ public:
}
}
- void SetData(uint32 uiType, uint32 uiData)
+ void SetData(uint32 uiType, uint32 uiData) OVERRIDE
{
if (uiType == TYPE_SARTHARION_EVENT)
m_auiEncounter[0] = uiData;
@@ -108,7 +108,7 @@ public:
m_bVesperonKilled = true;
}
- uint32 GetData(uint32 uiType) const
+ uint32 GetData(uint32 uiType) const OVERRIDE
{
if (uiType == TYPE_SARTHARION_EVENT)
return m_auiEncounter[0];
@@ -122,7 +122,7 @@ public:
return 0;
}
- uint64 GetData64(uint32 uiData) const
+ uint64 GetData64(uint32 uiData) const OVERRIDE
{
switch (uiData)
{
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.h b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.h
index 7318e73dea1..7d2403be469 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.h
+++ b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.h
@@ -18,7 +18,7 @@
#ifndef DEF_OBSIDIAN_SANCTUM_H
#define DEF_OBSIDIAN_SANCTUM_H
-enum eTypes
+enum DataTypes
{
TYPE_SARTHARION_EVENT = 1,
TYPE_TENEBRON_PREKILLED = 2,
@@ -28,12 +28,19 @@ enum eTypes
DATA_SARTHARION = 10,
DATA_TENEBRON = 11,
DATA_SHADRON = 12,
- DATA_VESPERON = 13,
+ DATA_VESPERON = 13
+};
+enum CreaturesIds
+{
NPC_SARTHARION = 28860,
NPC_TENEBRON = 30452,
NPC_SHADRON = 30451,
- NPC_VESPERON = 30449,
+ NPC_VESPERON = 30449
+};
+
+enum GameObjectIds
+{
GO_TWILIGHT_PORTAL = 193988
};
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_baltharus_the_warborn.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_baltharus_the_warborn.cpp
index d3a685bc6ba..a92df96113c 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_baltharus_the_warborn.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_baltharus_the_warborn.cpp
@@ -76,7 +76,7 @@ class boss_baltharus_the_warborn : public CreatureScript
_introDone = false;
}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
events.SetPhase(PHASE_INTRO);
@@ -85,7 +85,7 @@ class boss_baltharus_the_warborn : public CreatureScript
instance->SetData(DATA_BALTHARUS_SHARED_HEALTH, me->GetMaxHealth());
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -110,7 +110,7 @@ class boss_baltharus_the_warborn : public CreatureScript
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
me->InterruptNonMeleeSpells(false);
_EnterCombat();
@@ -122,7 +122,7 @@ class boss_baltharus_the_warborn : public CreatureScript
Talk(SAY_AGGRO);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
Talk(SAY_DEATH);
@@ -130,20 +130,20 @@ class boss_baltharus_the_warborn : public CreatureScript
xerestrasza->AI()->DoAction(ACTION_BALTHARUS_DEATH);
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
if (victim->GetTypeId() == TYPEID_PLAYER)
Talk(SAY_KILL);
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
summons.Summon(summon);
summon->SetHealth(me->GetHealth());
summon->CastSpell(summon, SPELL_SPAWN_EFFECT, true);
}
- void DamageTaken(Unit* /*attacker*/, uint32& damage)
+ void DamageTaken(Unit* /*attacker*/, uint32& damage) OVERRIDE
{
if (GetDifficulty() == RAID_DIFFICULTY_10MAN_NORMAL)
{
@@ -162,7 +162,7 @@ class boss_baltharus_the_warborn : public CreatureScript
instance->SetData(DATA_BALTHARUS_SHARED_HEALTH, me->GetHealth() - damage);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
bool introPhase = events.IsInPhase(PHASE_INTRO);
if (!UpdateVictim() && !introPhase)
@@ -215,7 +215,7 @@ class boss_baltharus_the_warborn : public CreatureScript
bool _introDone;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetRubySanctumAI<boss_baltharus_the_warbornAI>(creature);
}
@@ -233,7 +233,7 @@ class npc_baltharus_the_warborn_clone : public CreatureScript
{
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
DoZoneInCombat();
_events.Reset();
@@ -242,14 +242,14 @@ class npc_baltharus_the_warborn_clone : public CreatureScript
_events.ScheduleEvent(EVENT_ENERVATING_BRAND, urand(10000, 15000));
}
- void DamageTaken(Unit* /*attacker*/, uint32& damage)
+ void DamageTaken(Unit* /*attacker*/, uint32& damage) OVERRIDE
{
// Setting DATA_BALTHARUS_SHARED_HEALTH to 0 when killed would bug the boss.
if (_instance && me->GetHealth() > damage)
_instance->SetData(DATA_BALTHARUS_SHARED_HEALTH, me->GetHealth() - damage);
}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
// This is here because DamageTaken wont trigger if the damage is deadly.
if (_instance)
@@ -257,7 +257,7 @@ class npc_baltharus_the_warborn_clone : public CreatureScript
killer->Kill(baltharus);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -301,7 +301,7 @@ class npc_baltharus_the_warborn_clone : public CreatureScript
InstanceScript* _instance;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetRubySanctumAI<npc_baltharus_the_warborn_cloneAI>(creature);
}
@@ -325,13 +325,13 @@ class spell_baltharus_enervating_brand_trigger : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnHit += SpellHitFn(spell_baltharus_enervating_brand_trigger_SpellScript::CheckDistance);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_baltharus_enervating_brand_trigger_SpellScript();
}
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp
index c616d44816c..175a64f49a5 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp
@@ -94,14 +94,14 @@ class boss_general_zarithrian : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
if (instance->GetBossState(DATA_SAVIANA_RAGEFIRE) == DONE && instance->GetBossState(DATA_BALTHARUS_THE_WARBORN) == DONE)
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
Talk(SAY_AGGRO);
@@ -111,36 +111,36 @@ class boss_general_zarithrian : public CreatureScript
events.ScheduleEvent(EVENT_SUMMON_ADDS, 40000);
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
_JustReachedHome();
instance->SetBossState(DATA_GENERAL_ZARITHRIAN, FAIL);
}
// Override to not set adds in combat yet.
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
summons.Summon(summon);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
Talk(SAY_DEATH);
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
if (victim->GetTypeId() == TYPEID_PLAYER)
Talk(SAY_KILL);
}
- bool CanAIAttack(Unit const* /*target*/) const
+ bool CanAIAttack(Unit const* /*target*/) const OVERRIDE
{
return (instance->GetBossState(DATA_SAVIANA_RAGEFIRE) == DONE && instance->GetBossState(DATA_BALTHARUS_THE_WARBORN) == DONE);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -189,7 +189,7 @@ class boss_general_zarithrian : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetRubySanctumAI<boss_general_zarithrianAI>(creature);
}
@@ -207,7 +207,7 @@ class npc_onyx_flamecaller : public CreatureScript
npc_escortAI::SetDespawnAtEnd(false);
}
- void Reset()
+ void Reset() OVERRIDE
{
_lavaGoutCount = 0;
me->setActive(true);
@@ -215,26 +215,26 @@ class npc_onyx_flamecaller : public CreatureScript
Start(true, true);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_events.Reset();
_events.ScheduleEvent(EVENT_BLAST_NOVA, urand(20000, 30000));
_events.ScheduleEvent(EVENT_LAVA_GOUT, 5000);
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
// Prevent EvadeMode
}
- void IsSummonedBy(Unit* /*summoner*/)
+ void IsSummonedBy(Unit* /*summoner*/) OVERRIDE
{
// Let Zarithrian count as summoner. _instance cant be null since we got GetRubySanctumAI
if (Creature* zarithrian = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_GENERAL_ZARITHRIAN)))
zarithrian->AI()->JustSummoned(me);
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
if (waypointId == MAX_PATH_FLAMECALLER_WAYPOINTS || waypointId == MAX_PATH_FLAMECALLER_WAYPOINTS*2)
{
@@ -257,7 +257,7 @@ class npc_onyx_flamecaller : public CreatureScript
}
}
- void UpdateEscortAI(uint32 const diff)
+ void UpdateEscortAI(uint32 const diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -299,7 +299,7 @@ class npc_onyx_flamecaller : public CreatureScript
uint8 _lavaGoutCount;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetRubySanctumAI<npc_onyx_flamecallerAI>(creature);
}
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
index c36815b49f3..13c9bbd722c 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
@@ -221,7 +221,7 @@ struct generic_halionAI : public BossAI
{
generic_halionAI(Creature* creature, uint32 bossId) : BossAI(creature, bossId), _canEvade(false) { }
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
me->AddAura(SPELL_TWILIGHT_PRECISION, me);
@@ -231,19 +231,19 @@ struct generic_halionAI : public BossAI
events.ScheduleEvent(EVENT_BREATH, urand(10000, 15000));
}
- void Reset()
+ void Reset() OVERRIDE
{
_canEvade = false;
_Reset();
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
_JustReachedHome();
}
- void ExecuteEvent(uint32 eventId)
+ void ExecuteEvent(uint32 eventId) OVERRIDE
{
switch (eventId)
{
@@ -262,7 +262,7 @@ struct generic_halionAI : public BossAI
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim() || me->HasUnitState(UNIT_STATE_CASTING))
return;
@@ -275,7 +275,7 @@ struct generic_halionAI : public BossAI
DoMeleeAttackIfReady();
}
- void SetData(uint32 index, uint32 dataValue)
+ void SetData(uint32 index, uint32 dataValue) OVERRIDE
{
switch (index)
{
@@ -287,7 +287,7 @@ struct generic_halionAI : public BossAI
}
}
- void SpellHit(Unit* /*who*/, SpellInfo const* spellInfo)
+ void SpellHit(Unit* /*who*/, SpellInfo const* spellInfo) OVERRIDE
{
if (spellInfo->Id == SPELL_TWILIGHT_MENDING)
Talk(SAY_REGENERATE);
@@ -309,7 +309,7 @@ class boss_halion : public CreatureScript
me->SetHomePosition(HalionSpawnPos);
}
- void Reset()
+ void Reset() OVERRIDE
{
generic_halionAI::Reset();
me->SetReactState(REACT_DEFENSIVE);
@@ -317,14 +317,14 @@ class boss_halion : public CreatureScript
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
// Phase 1: We always can evade. Phase 2 & 3: We can evade if and only if the controller tells us to.
if (events.IsInPhase(PHASE_ONE) || _canEvade)
generic_halionAI::EnterEvadeMode();
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
Talk(SAY_AGGRO);
@@ -344,7 +344,7 @@ class boss_halion : public CreatureScript
controller->AI()->SetData(DATA_FIGHT_PHASE, PHASE_ONE);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
@@ -352,17 +352,17 @@ class boss_halion : public CreatureScript
instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
if (Creature* twilightHalion = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_TWILIGHT_HALION)))
- if (twilightHalion->isAlive())
+ if (twilightHalion->IsAlive())
twilightHalion->Kill(twilightHalion);
if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_HALION_CONTROLLER)))
- if (controller->isAlive())
+ if (controller->IsAlive())
controller->Kill(controller);
}
Position const* GetMeteorStrikePosition() const { return &_meteorStrikePos; }
- void DamageTaken(Unit* attacker, uint32& damage)
+ void DamageTaken(Unit* attacker, uint32& damage) OVERRIDE
{
if (me->HealthBelowPctDamaged(75, damage) && events.IsInPhase(PHASE_ONE))
{
@@ -389,7 +389,7 @@ class boss_halion : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (events.IsInPhase(PHASE_TWO))
return;
@@ -397,7 +397,7 @@ class boss_halion : public CreatureScript
generic_halionAI::UpdateAI(diff);
}
- void ExecuteEvent(uint32 eventId)
+ void ExecuteEvent(uint32 eventId) OVERRIDE
{
switch (eventId)
{
@@ -431,7 +431,7 @@ class boss_halion : public CreatureScript
}
}
- void SetData(uint32 index, uint32 value)
+ void SetData(uint32 index, uint32 value) OVERRIDE
{
switch (index)
{
@@ -447,7 +447,7 @@ class boss_halion : public CreatureScript
Position _meteorStrikePos;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetRubySanctumAI<boss_halionAI>(creature);
}
@@ -478,7 +478,7 @@ class boss_twilight_halion : public CreatureScript
me->SetReactState(REACT_AGGRESSIVE);
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
events.Reset();
events.SetPhase(PHASE_TWO);
@@ -491,9 +491,9 @@ class boss_twilight_halion : public CreatureScript
}
// Never evade
- void EnterEvadeMode() { }
+ void EnterEvadeMode() OVERRIDE {}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
if (victim->GetTypeId() == TYPEID_PLAYER)
Talk(SAY_KILL);
@@ -502,7 +502,7 @@ class boss_twilight_halion : public CreatureScript
me->CastSpell(victim, SPELL_LEAVE_TWILIGHT_REALM, true);
}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
if (Creature* halion = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_HALION)))
{
@@ -510,18 +510,18 @@ class boss_twilight_halion : public CreatureScript
if (me->IsDamageEnoughForLootingAndReward())
halion->LowerPlayerDamageReq(halion->GetMaxHealth());
- if (halion->isAlive())
+ if (halion->IsAlive())
killer->Kill(halion);
}
if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_HALION_CONTROLLER)))
- if (controller->isAlive())
+ if (controller->IsAlive())
controller->Kill(controller);
instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
}
- void DamageTaken(Unit* attacker, uint32& damage)
+ void DamageTaken(Unit* attacker, uint32& damage) OVERRIDE
{
if (me->HealthBelowPctDamaged(50, damage) && events.IsInPhase(PHASE_TWO))
{
@@ -543,7 +543,7 @@ class boss_twilight_halion : public CreatureScript
}
}
- void SpellHit(Unit* who, SpellInfo const* spell)
+ void SpellHit(Unit* who, SpellInfo const* spell) OVERRIDE
{
switch (spell->Id)
{
@@ -557,7 +557,7 @@ class boss_twilight_halion : public CreatureScript
}
}
- void ExecuteEvent(uint32 eventId)
+ void ExecuteEvent(uint32 eventId) OVERRIDE
{
switch (eventId)
{
@@ -576,7 +576,7 @@ class boss_twilight_halion : public CreatureScript
EventMap events;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetRubySanctumAI<boss_twilight_halionAI>(creature);
}
@@ -595,7 +595,7 @@ class npc_halion_controller : public CreatureScript
me->SetPhaseMask(me->GetPhaseMask() | 0x20, true);
}
- void Reset()
+ void Reset() OVERRIDE
{
_summons.DespawnAll();
_events.Reset();
@@ -606,12 +606,12 @@ class npc_halion_controller : public CreatureScript
DoCast(me, SPELL_CLEAR_DEBUFFS);
}
- void JustSummoned(Creature* who)
+ void JustSummoned(Creature* who) OVERRIDE
{
_summons.Summon(who);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_events.Reset();
_summons.DespawnAll();
@@ -619,7 +619,7 @@ class npc_halion_controller : public CreatureScript
DoCast(me, SPELL_CLEAR_DEBUFFS);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_twilightDamageTaken = 0;
_materialDamageTaken = 0;
@@ -627,7 +627,7 @@ class npc_halion_controller : public CreatureScript
_events.ScheduleEvent(EVENT_TRIGGER_BERSERK, 8 * MINUTE * IN_MILLISECONDS);
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
if (Creature* twilightHalion = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_TWILIGHT_HALION)))
twilightHalion->DespawnOrUnsummon();
@@ -641,7 +641,7 @@ class npc_halion_controller : public CreatureScript
_instance->SetBossState(DATA_HALION, FAIL);
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -683,12 +683,12 @@ class npc_halion_controller : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
- // The isInCombat() check is needed because that check should be false when Halion is
+ // The IsInCombat() check is needed because that check should be false when Halion is
// not engaged, while it would return true without as UpdateVictim() checks for
// combat state.
- if (!(_events.IsInPhase(PHASE_INTRO)) && me->isInCombat() && !UpdateVictim())
+ if (!(_events.IsInPhase(PHASE_INTRO)) && me->IsInCombat() && !UpdateVictim())
{
EnterEvadeMode();
return;
@@ -750,7 +750,7 @@ class npc_halion_controller : public CreatureScript
}
}
- void SetData(uint32 id, uint32 value)
+ void SetData(uint32 id, uint32 value) OVERRIDE
{
switch (id)
{
@@ -891,7 +891,7 @@ class npc_halion_controller : public CreatureScript
uint8 _materialCorporealityValue;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetRubySanctumAI<npc_halion_controllerAI>(creature);
}
@@ -912,7 +912,7 @@ class npc_orb_carrier : public CreatureScript
ASSERT(creature->GetVehicleKit());
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
/// According to sniffs this spell is cast every 1 or 2 seconds.
/// However, refreshing it looks bad, so just cast the spell if
@@ -928,7 +928,7 @@ class npc_orb_carrier : public CreatureScript
me->SetFacingToObject(rotationFocus); // setInFront
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
if (action == ACTION_SHOOT)
{
@@ -962,7 +962,7 @@ class npc_orb_carrier : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetRubySanctumAI<npc_orb_carrierAI>(creature);
}
@@ -981,7 +981,7 @@ class npc_meteor_strike_initial : public CreatureScript
SetCombatMovement(false);
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -994,7 +994,7 @@ class npc_meteor_strike_initial : public CreatureScript
}
}
- void IsSummonedBy(Unit* summoner)
+ void IsSummonedBy(Unit* summoner) OVERRIDE
{
Creature* owner = summoner->ToCreature();
if (!owner)
@@ -1029,14 +1029,14 @@ class npc_meteor_strike_initial : public CreatureScript
}
}
- void UpdateAI(uint32 /*diff*/) { }
- void EnterEvadeMode() { }
+ void UpdateAI(uint32 /*diff*/) OVERRIDE {}
+ void EnterEvadeMode() OVERRIDE {}
private:
InstanceScript* _instance;
std::list<Creature*> _meteorList;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetRubySanctumAI<npc_meteor_strike_initialAI>(creature);
}
@@ -1058,7 +1058,7 @@ class npc_meteor_strike : public CreatureScript
SetCombatMovement(false);
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
if (action == ACTION_METEOR_STRIKE_BURN)
{
@@ -1068,14 +1068,14 @@ class npc_meteor_strike : public CreatureScript
}
}
- void IsSummonedBy(Unit* /*summoner*/)
+ void IsSummonedBy(Unit* /*summoner*/) OVERRIDE
{
// Let Halion Controller count as summoner.
if (Creature* controller = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_HALION_CONTROLLER)))
controller->AI()->JustSummoned(me);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (_spawnCount > 5)
return;
@@ -1107,7 +1107,7 @@ class npc_meteor_strike : public CreatureScript
uint8 _spawnCount;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetRubySanctumAI<npc_meteor_strikeAI>(creature);
}
@@ -1147,7 +1147,7 @@ class npc_combustion_consumption : public CreatureScript
me->SetPhaseMask(0x01 | 0x20, true);
}
- void IsSummonedBy(Unit* summoner)
+ void IsSummonedBy(Unit* summoner) OVERRIDE
{
// Let Halion Controller count as summoner
if (Creature* controller = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_HALION_CONTROLLER)))
@@ -1156,7 +1156,7 @@ class npc_combustion_consumption : public CreatureScript
_summonerGuid = summoner->GetGUID();
}
- void SetData(uint32 type, uint32 stackAmount)
+ void SetData(uint32 type, uint32 stackAmount) OVERRIDE
{
Unit* summoner = ObjectAccessor::GetUnit(*me, _summonerGuid);
@@ -1170,7 +1170,7 @@ class npc_combustion_consumption : public CreatureScript
summoner->CastCustomSpell(_explosionSpell, SPELLVALUE_BASE_POINT0, damage, summoner);
}
- void UpdateAI(uint32 /*diff*/) { }
+ void UpdateAI(uint32 /*diff*/) OVERRIDE {}
private:
InstanceScript* _instance;
@@ -1179,7 +1179,7 @@ class npc_combustion_consumption : public CreatureScript
uint64 _summonerGuid;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetRubySanctumAI<npc_combustion_consumptionAI>(creature);
}
@@ -1194,7 +1194,7 @@ class npc_living_inferno : public CreatureScript
{
npc_living_infernoAI(Creature* creature) : ScriptedAI(creature) { }
- void IsSummonedBy(Unit* /*summoner*/)
+ void IsSummonedBy(Unit* /*summoner*/) OVERRIDE
{
me->SetInCombatWithZone();
me->CastSpell(me, SPELL_BLAZING_AURA, true);
@@ -1204,13 +1204,13 @@ class npc_living_inferno : public CreatureScript
controller->AI()->JustSummoned(me);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
me->DespawnOrUnsummon(1);
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetRubySanctumAI<npc_living_infernoAI>(creature);
}
@@ -1226,30 +1226,30 @@ class npc_living_ember : public CreatureScript
{
npc_living_emberAI(Creature* creature) : ScriptedAI(creature) { }
- void Reset()
+ void Reset() OVERRIDE
{
_hasEnraged = false;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_enrageTimer = 20000;
_hasEnraged = false;
}
- void IsSummonedBy(Unit* /*summoner*/)
+ void IsSummonedBy(Unit* /*summoner*/) OVERRIDE
{
if (InstanceScript* instance = me->GetInstanceScript())
if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_HALION_CONTROLLER)))
controller->AI()->JustSummoned(me);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
me->DespawnOrUnsummon(1);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim() || me->HasUnitState(UNIT_STATE_CASTING))
return;
@@ -1269,7 +1269,7 @@ class npc_living_ember : public CreatureScript
bool _hasEnraged;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetRubySanctumAI<npc_living_emberAI>(creature);
}
@@ -1303,14 +1303,14 @@ class go_twilight_portal : public GameObjectScript
}
}
- bool GossipHello(Player* player)
+ bool GossipHello(Player* player) OVERRIDE
{
if (_spellId != 0)
player->CastSpell(player, _spellId, true);
return true;
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
if (_instance->GetBossState(DATA_HALION) == IN_PROGRESS)
return;
@@ -1328,7 +1328,7 @@ class go_twilight_portal : public GameObjectScript
bool _deleted;
};
- GameObjectAI* GetAI(GameObject* gameobject) const
+ GameObjectAI* GetAI(GameObject* gameobject) const OVERRIDE
{
return GetRubySanctumAI<go_twilight_portalAI>(gameobject);
}
@@ -1353,13 +1353,13 @@ class spell_halion_meteor_strike_marker : public SpellScriptLoader
creCaster->AI()->DoAction(ACTION_METEOR_STRIKE_AOE);
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectRemove += AuraEffectRemoveFn(spell_halion_meteor_strike_marker_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_halion_meteor_strike_marker_AuraScript();
}
@@ -1377,7 +1377,7 @@ class spell_halion_combustion_consumption : public SpellScriptLoader
public:
spell_halion_combustion_consumption_AuraScript(uint32 spellID) : AuraScript(), _markSpell(spellID) { }
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(_markSpell))
return false;
@@ -1403,7 +1403,7 @@ class spell_halion_combustion_consumption : public SpellScriptLoader
GetTarget()->CastSpell(GetTarget(), _markSpell, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_halion_combustion_consumption_AuraScript::AddMarkStack, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE);
AfterEffectApply += AuraEffectApplyFn(spell_halion_combustion_consumption_AuraScript::OnApply, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAL);
@@ -1413,7 +1413,7 @@ class spell_halion_combustion_consumption : public SpellScriptLoader
uint32 _markSpell;
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_halion_combustion_consumption_AuraScript(_spellID);
}
@@ -1436,7 +1436,7 @@ class spell_halion_marks : public SpellScriptLoader
spell_halion_marks_AuraScript(uint32 summonSpell, uint32 removeSpell) : AuraScript(),
_summonSpellId(summonSpell), _removeSpellId(removeSpell) { }
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(_summonSpellId))
return false;
@@ -1463,7 +1463,7 @@ class spell_halion_marks : public SpellScriptLoader
GetTarget()->CastCustomSpell(_summonSpellId, SPELLVALUE_BASE_POINT1, aurEff->GetBase()->GetStackAmount(), GetTarget(), TRIGGERED_FULL_MASK, NULL, NULL, GetCasterGUID());
}
- void Register()
+ void Register() OVERRIDE
{
OnDispel += AuraDispelFn(spell_halion_marks_AuraScript::BeforeDispel);
AfterEffectRemove += AuraEffectRemoveFn(spell_halion_marks_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
@@ -1473,7 +1473,7 @@ class spell_halion_marks : public SpellScriptLoader
uint32 _removeSpellId;
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_halion_marks_AuraScript(_summonSpell, _removeSpell);
}
@@ -1507,13 +1507,13 @@ class spell_halion_damage_aoe_summon : public SpellScriptLoader
summon->AI()->SetData(DATA_STACKS_DISPELLED, GetSpellValue()->EffectBasePoints[EFFECT_1]);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHit += SpellEffectFn(spell_halion_damage_aoe_summon_SpellScript::HandleSummon, EFFECT_0, SPELL_EFFECT_SUMMON);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_halion_damage_aoe_summon_SpellScript();
}
@@ -1535,7 +1535,7 @@ class spell_halion_twilight_realm_handlers : public SpellScriptLoader
_isApply(isApplyHandler), _beforeHitSpellId(beforeHitSpell)
{ }
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(_beforeHitSpellId))
return false;
@@ -1560,7 +1560,7 @@ class spell_halion_twilight_realm_handlers : public SpellScriptLoader
instance->SendEncounterUnit(ENCOUNTER_FRAME_UNK7);
}
- void Register()
+ void Register() OVERRIDE
{
if (!_isApply)
{
@@ -1575,7 +1575,7 @@ class spell_halion_twilight_realm_handlers : public SpellScriptLoader
uint32 _beforeHitSpellId;
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_halion_twilight_realm_handlers_AuraScript(_beforeHitSpell, _isApplyHandler);
}
@@ -1594,7 +1594,7 @@ class spell_halion_clear_debuffs : public SpellScriptLoader
{
PrepareSpellScript(spell_halion_clear_debuffs_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_CLEAR_DEBUFFS))
return false;
@@ -1609,13 +1609,13 @@ class spell_halion_clear_debuffs : public SpellScriptLoader
GetHitUnit()->RemoveAurasDueToSpell(GetSpellInfo()->Effects[effIndex].CalcValue());
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_halion_clear_debuffs_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_halion_clear_debuffs_SpellScript();
}
@@ -1664,13 +1664,13 @@ class spell_halion_twilight_cutter : public SpellScriptLoader
unitList.clear();
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_halion_twilight_cutter_SpellScript::RemoveNotBetween, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_halion_twilight_cutter_SpellScript();
}
@@ -1692,13 +1692,13 @@ class spell_halion_twilight_phasing : public SpellScriptLoader
caster->GetMap()->SummonCreature(NPC_TWILIGHT_HALION, HalionSpawnPos);
}
- void Register()
+ void Register() OVERRIDE
{
OnHit += SpellHitFn(spell_halion_twilight_phasing_SpellScript::Phase);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_halion_twilight_phasing_SpellScript();
}
@@ -1726,14 +1726,14 @@ class spell_halion_summon_exit_portals : public SpellScriptLoader
GetHitDest()->RelocateOffset(offset);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectLaunch += SpellEffectFn(spell_halion_summon_exit_portals_SpellScript::OnSummon, EFFECT_0, SPELL_EFFECT_SUMMON_OBJECT_WILD);
OnEffectLaunch += SpellEffectFn(spell_halion_summon_exit_portals_SpellScript::OnSummon, EFFECT_1, SPELL_EFFECT_SUMMON_OBJECT_WILD);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_halion_summon_exit_portals_SpellScript();
}
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_saviana_ragefire.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_saviana_ragefire.cpp
index d391abb0d4d..9f20cb4062a 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_saviana_ragefire.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_saviana_ragefire.cpp
@@ -77,13 +77,13 @@ class boss_saviana_ragefire : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
me->SetReactState(REACT_AGGRESSIVE);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
Talk(SAY_AGGRO);
@@ -93,13 +93,13 @@ class boss_saviana_ragefire : public CreatureScript
events.ScheduleEvent(EVENT_FLIGHT, 60000);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
me->PlayDirectSound(SOUND_ID_DEATH);
}
- void MovementInform(uint32 type, uint32 point)
+ void MovementInform(uint32 type, uint32 point) OVERRIDE
{
if (type != POINT_MOTION_TYPE && type != EFFECT_MOTION_TYPE)
return;
@@ -118,7 +118,7 @@ class boss_saviana_ragefire : public CreatureScript
me->SetDisableGravity(false);
me->RemoveByteFlag(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND | UNIT_BYTE1_FLAG_HOVER);
me->SetReactState(REACT_AGGRESSIVE);
- DoStartMovement(me->getVictim());
+ DoStartMovement(me->GetVictim());
break;
case POINT_TAKEOFF:
events.ScheduleEvent(EVENT_AIR_MOVEMENT, 1);
@@ -128,20 +128,20 @@ class boss_saviana_ragefire : public CreatureScript
}
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
_JustReachedHome();
me->SetCanFly(false);
me->SetDisableGravity(false);
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
if (victim->GetTypeId() == TYPEID_PLAYER)
Talk(SAY_KILL);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -197,7 +197,7 @@ class boss_saviana_ragefire : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetRubySanctumAI<boss_saviana_ragefireAI>(creature);
}
@@ -238,14 +238,14 @@ class spell_saviana_conflagration_init : public SpellScriptLoader
GetCaster()->CastSpell(GetHitUnit(), SPELL_CONFLAGRATION_2, false);
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_saviana_conflagration_init_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnEffectHitTarget += SpellEffectFn(spell_saviana_conflagration_init_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_saviana_conflagration_init_SpellScript();
}
@@ -267,13 +267,13 @@ class spell_saviana_conflagration_throwback : public SpellScriptLoader
GetHitUnit()->GetMotionMaster()->MovePoint(POINT_LAND, SavianaRagefireFlyInPos);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_saviana_conflagration_throwback_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_saviana_conflagration_throwback_SpellScript();
}
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp
index abfa2df5c97..15e7c8227e9 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp
@@ -181,7 +181,7 @@ class instance_ruby_sanctum : public InstanceMapScript
}
}
- uint64 GetData64(uint32 type) const
+ uint64 GetData64(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -278,7 +278,7 @@ class instance_ruby_sanctum : public InstanceMapScript
return true;
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
if (type != DATA_BALTHARUS_SHARED_HEALTH)
return;
@@ -286,7 +286,7 @@ class instance_ruby_sanctum : public InstanceMapScript
BaltharusSharedHealth = data;
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
if (type != DATA_BALTHARUS_SHARED_HEALTH)
return 0;
@@ -365,7 +365,7 @@ class instance_ruby_sanctum : public InstanceMapScript
uint32 BaltharusSharedHealth;
};
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_ruby_sanctum_InstanceMapScript(map);
}
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.cpp
index 2623b2c542a..9794d8c729f 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.cpp
@@ -60,13 +60,13 @@ class npc_xerestrasza : public CreatureScript
_introDone = false;
}
- void Reset()
+ void Reset() OVERRIDE
{
_events.Reset();
me->RemoveFlag(UNIT_NPC_FLAGS, GOSSIP_OPTION_QUESTGIVER);
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
if (action == ACTION_BALTHARUS_DEATH)
{
@@ -92,7 +92,7 @@ class npc_xerestrasza : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (_isIntro)
return;
@@ -138,7 +138,7 @@ class npc_xerestrasza : public CreatureScript
bool _introDone;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetRubySanctumAI<npc_xerestraszaAI>(creature);
}
@@ -149,7 +149,7 @@ class at_baltharus_plateau : public AreaTriggerScript
public:
at_baltharus_plateau() : AreaTriggerScript("at_baltharus_plateau") { }
- bool OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/)
+ bool OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/) OVERRIDE
{
// Only trigger once
if (InstanceScript* instance = player->GetInstanceScript())
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp
index 553b836da8f..9bc9afa4fa8 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp
@@ -108,14 +108,14 @@ class spell_eadric_radiance : public SpellScriptLoader
unitList.remove_if(OrientationCheck(GetCaster()));
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_eadric_radiance_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_eadric_radiance_SpellScript::FilterTargets, EFFECT_1, TARGET_UNIT_SRC_AREA_ENEMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_eadric_radiance_SpellScript();
}
@@ -143,7 +143,7 @@ public:
bool bDone;
- void Reset()
+ void Reset() OVERRIDE
{
uiVenganceTimer = 10000;
uiRadianceTimer = 16000;
@@ -153,7 +153,7 @@ public:
bDone = false;
}
- void DamageTaken(Unit* /*done_by*/, uint32 &damage)
+ void DamageTaken(Unit* /*done_by*/, uint32 &damage) OVERRIDE
{
if (damage >= me->GetHealth())
{
@@ -164,7 +164,7 @@ public:
}
}
- void MovementInform(uint32 MovementType, uint32 /*Data*/)
+ void MovementInform(uint32 MovementType, uint32 /*Data*/) OVERRIDE
{
if (MovementType != POINT_MOTION_TYPE)
return;
@@ -175,7 +175,7 @@ public:
me->DisappearAndDie();
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (bDone && uiResetTimer <= uiDiff)
{
@@ -192,7 +192,7 @@ public:
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 250, true))
{
- if (target && target->isAlive())
+ if (target && target->IsAlive())
{
DoCast(target, SPELL_HAMMER_JUSTICE);
DoCast(target, SPELL_HAMMER_RIGHTEOUS);
@@ -219,7 +219,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_eadricAI(creature);
}
@@ -253,7 +253,7 @@ public:
uint32 uiRenewTimer;
uint32 uiResetTimer;
- void Reset()
+ void Reset() OVERRIDE
{
me->RemoveAllAuras();
@@ -267,17 +267,17 @@ public:
bDone = false;
if (Creature* pMemory = Unit::GetCreature(*me, MemoryGUID))
- if (pMemory->isAlive())
+ if (pMemory->IsAlive())
pMemory->RemoveFromWorld();
}
- void SetData(uint32 uiId, uint32 /*uiValue*/)
+ void SetData(uint32 uiId, uint32 /*uiValue*/) OVERRIDE
{
if (uiId == 1)
me->RemoveAura(SPELL_SHIELD);
}
- void DamageTaken(Unit* /*done_by*/, uint32 &damage)
+ void DamageTaken(Unit* /*done_by*/, uint32 &damage) OVERRIDE
{
if (damage >= me->GetHealth())
{
@@ -288,7 +288,7 @@ public:
}
}
- void MovementInform(uint32 MovementType, uint32 Point)
+ void MovementInform(uint32 MovementType, uint32 Point) OVERRIDE
{
if (MovementType != POINT_MOTION_TYPE || Point != 0)
return;
@@ -299,7 +299,7 @@ public:
me->DisappearAndDie();
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (bDone && uiResetTimer <= uiDiff)
{
@@ -314,7 +314,7 @@ public:
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 250, true))
{
- if (target && target->isAlive())
+ if (target && target->IsAlive())
DoCast(target, SPELL_HOLY_FIRE);
}
if (me->HasAura(SPELL_SHIELD))
@@ -327,7 +327,7 @@ public:
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 250, true))
{
- if (target && target->isAlive())
+ if (target && target->IsAlive())
DoCast(target, SPELL_SMITE);
}
if (me->HasAura(SPELL_SHIELD))
@@ -349,7 +349,7 @@ public:
break;
case 1:
if (Creature* pMemory = Unit::GetCreature(*me, MemoryGUID))
- if (pMemory->isAlive())
+ if (pMemory->IsAlive())
DoCast(pMemory, SPELL_RENEW);
break;
}
@@ -371,13 +371,13 @@ public:
DoMeleeAttackIfReady();
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
MemoryGUID = summon->GetGUID();
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_paletressAI(creature);
}
@@ -396,14 +396,14 @@ public:
uint32 uiShadowPastTimer;
uint32 uiWakingNightmare;
- void Reset()
+ void Reset() OVERRIDE
{
uiOldWoundsTimer = 12000;
uiShadowPastTimer = 5000;
uiWakingNightmare = 7000;
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -412,7 +412,7 @@ public:
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
{
- if (target && target->isAlive())
+ if (target && target->IsAlive())
DoCast(target, SPELL_OLD_WOUNDS);
}
uiOldWoundsTimer = 12000;
@@ -428,7 +428,7 @@ public:
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1))
{
- if (target && target->isAlive())
+ if (target && target->IsAlive())
DoCast(target, SPELL_SHADOWS_PAST);
}
uiShadowPastTimer = 5000;
@@ -437,16 +437,16 @@ public:
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (TempSummon* summ = me->ToTempSummon())
if (Unit* summoner = summ->GetSummoner())
- if (summoner->isAlive())
+ if (summoner->IsAlive())
summoner->GetAI()->SetData(1, 0);
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_memoryAI(creature);
}
@@ -472,28 +472,26 @@ public:
uint8 uiWaypoint;
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
if (waypointId == 0)
{
switch (uiWaypoint)
{
case 0:
- me->SetOrientation(5.81f);
+ me->SetFacingTo(5.81f);
break;
case 1:
- me->SetOrientation(4.60f);
+ me->SetFacingTo(4.60f);
break;
case 2:
- me->SetOrientation(2.79f);
+ me->SetFacingTo(2.79f);
break;
}
-
- me->SendMovementFlagUpdate();
}
}
- void SetData(uint32 uiType, uint32 /*uiData*/)
+ void SetData(uint32 uiType, uint32 /*uiData*/) OVERRIDE
{
switch (me->GetEntry())
{
@@ -545,7 +543,7 @@ public:
uiWaypoint = uiType;
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
npc_escortAI::UpdateAI(uiDiff);
@@ -555,14 +553,14 @@ public:
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
instance->SetData(DATA_ARGENT_SOLDIER_DEFEATED, instance->GetData(DATA_ARGENT_SOLDIER_DEFEATED) + 1);
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_argent_soldierAI(creature);
}
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp
index b253d15773d..970c53e56ee 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp
@@ -108,7 +108,7 @@ public:
uint32 uiDeathBiteTimer;
uint32 uiMarkedDeathTimer;
- void Reset()
+ void Reset() OVERRIDE
{
RemoveSummons();
me->SetDisplayId(me->GetNativeDisplayId());
@@ -129,8 +129,8 @@ public:
uiDeathArmyCheckTimer = 7000;
uiResurrectTimer = 4000;
uiGhoulExplodeTimer = 8000;
- uiDeathBiteTimer = urand (2000, 4000);
- uiMarkedDeathTimer = urand (5000, 7000);
+ uiDeathBiteTimer = urand(2000, 4000);
+ uiMarkedDeathTimer = urand(5000, 7000);
}
void RemoveSummons()
@@ -147,13 +147,13 @@ public:
SummonList.clear();
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
SummonList.push_back(summon->GetGUID());
- summon->AI()->AttackStart(me->getVictim());
+ summon->AI()->AttackStart(me->GetVictim());
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -200,7 +200,7 @@ public:
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
{
- if (target && target->isAlive())
+ if (target && target->IsAlive())
DoCast(target, SPELL_DEATH_RESPITE);
}
uiDeathRespiteTimer = urand(15000, 16000);
@@ -228,7 +228,7 @@ public:
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
{
- if (target && target->isAlive())
+ if (target && target->IsAlive())
DoCast(target, SPELL_DESECRATION);
}
uiDesecration = urand(15000, 16000);
@@ -249,16 +249,16 @@ public:
if (uiDeathBiteTimer <= uiDiff)
{
DoCastAOE(SPELL_DEATH_BITE);
- uiDeathBiteTimer = urand (2000, 4000);
+ uiDeathBiteTimer = urand(2000, 4000);
} else uiDeathBiteTimer -= uiDiff;
if (uiMarkedDeathTimer <= uiDiff)
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
{
- if (target && target->isAlive())
+ if (target && target->IsAlive())
DoCast(target, SPELL_MARKED_DEATH);
}
- uiMarkedDeathTimer = urand (5000, 7000);
+ uiMarkedDeathTimer = urand(5000, 7000);
} else uiMarkedDeathTimer -= uiDiff;
break;
}
@@ -268,7 +268,7 @@ public:
DoMeleeAttackIfReady();
}
- void DamageTaken(Unit* /*pDoneBy*/, uint32& uiDamage)
+ void DamageTaken(Unit* /*pDoneBy*/, uint32& uiDamage) OVERRIDE
{
if (uiDamage > me->GetHealth() && uiPhase <= PHASE_SKELETON)
{
@@ -289,7 +289,7 @@ public:
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
DoCast(me, SPELL_KILL_CREDIT);
@@ -298,9 +298,9 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_black_knightAI (creature);
+ return new boss_black_knightAI(creature);
}
};
@@ -315,12 +315,12 @@ public:
uint32 uiAttackTimer;
- void Reset()
+ void Reset() OVERRIDE
{
uiAttackTimer = 3500;
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -329,7 +329,7 @@ public:
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 100, true))
{
- if (target && target->isAlive())
+ if (target && target->IsAlive())
DoCast(target, (SPELL_LEAP));
}
uiAttackTimer = 3500;
@@ -339,7 +339,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_risen_ghoulAI(creature);
}
@@ -357,12 +357,12 @@ public:
Start(false, true, 0, NULL);
}
- void WaypointReached(uint32 /*waypointId*/)
+ void WaypointReached(uint32 /*waypointId*/) OVERRIDE
{
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
npc_escortAI::UpdateAI(uiDiff);
@@ -372,7 +372,7 @@ public:
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_black_knight_skeletal_gryphonAI(creature);
}
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp
index e637de75b4d..8bff123af75 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp
@@ -30,7 +30,7 @@ EndScriptData */
#include "trial_of_the_champion.h"
#include "Player.h"
-enum eSpells
+enum Spells
{
//Vehicle
SPELL_CHARGE = 63010,
@@ -75,7 +75,7 @@ enum eSpells
SPELL_POISON_BOTTLE = 67701
};
-enum eSeat
+enum Seats
{
SEAT_ID_0 = 0
};
@@ -102,12 +102,12 @@ void AggroAllPlayers(Creature* temp)
for (Map::PlayerList::const_iterator i = PlList.begin(); i != PlList.end(); ++i)
{
- if (Player* player = i->getSource())
+ if (Player* player = i->GetSource())
{
- if (player->isGameMaster())
+ if (player->IsGameMaster())
continue;
- if (player->isAlive())
+ if (player->IsAlive())
{
temp->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC);
temp->SetReactState(REACT_AGGRESSIVE);
@@ -169,14 +169,14 @@ public:
uint32 uiWaypointPath;
- void Reset()
+ void Reset() OVERRIDE
{
uiChargeTimer = 5000;
uiShieldBreakerTimer = 8000;
uiBuffTimer = urand(30000, 60000);
}
- void SetData(uint32 uiType, uint32 /*uiData*/)
+ void SetData(uint32 uiType, uint32 /*uiData*/) OVERRIDE
{
switch (uiType)
{
@@ -205,7 +205,7 @@ public:
Start(false, true, 0, NULL);
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
if (!instance)
return;
@@ -222,7 +222,7 @@ public:
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
DoCastSpellShield();
}
@@ -233,7 +233,7 @@ public:
DoCast(me, SPELL_SHIELD, true);
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
npc_escortAI::UpdateAI(uiDiff);
@@ -255,8 +255,8 @@ public:
{
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
{
- Player* player = itr->getSource();
- if (player && !player->isGameMaster() && me->IsInRange(player, 8.0f, 25.0f, false))
+ Player* player = itr->GetSource();
+ if (player && !player->IsGameMaster() && me->IsInRange(player, 8.0f, 25.0f, false))
{
DoResetThreat();
me->AddThreat(player, 1.0f);
@@ -282,8 +282,8 @@ public:
{
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
{
- Player* player = itr->getSource();
- if (player && !player->isGameMaster() && me->IsInRange(player, 10.0f, 30.0f, false))
+ Player* player = itr->GetSource();
+ if (player && !player->IsGameMaster() && me->IsInRange(player, 10.0f, 30.0f, false))
{
pPassenger->CastSpell(player, SPELL_SHIELD_BREAKER, true);
break;
@@ -298,7 +298,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new generic_vehicleAI_toc5AI(creature);
}
@@ -340,14 +340,14 @@ public:
bool bDone;
bool bHome;
- void Reset()
+ void Reset() OVERRIDE
{
uiBladeStormTimer = urand(15000, 20000);
uiInterceptTimer = 7000;
uiMortalStrikeTimer = urand(8000, 12000);
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
ScriptedAI::JustReachedHome();
@@ -360,7 +360,7 @@ public:
bHome = false;
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (!bDone && GrandChampionsOutVehicle(me))
{
@@ -396,8 +396,8 @@ public:
{
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
{
- Player* player = itr->getSource();
- if (player && !player->isGameMaster() && me->IsInRange(player, 8.0f, 25.0f, false))
+ Player* player = itr->GetSource();
+ if (player && !player->IsGameMaster() && me->IsInRange(player, 8.0f, 25.0f, false))
{
DoResetThreat();
me->AddThreat(player, 5.0f);
@@ -424,14 +424,14 @@ public:
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
instance->SetData(BOSS_GRAND_CHAMPIONS, DONE);
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_warrior_toc5AI(creature);
}
@@ -473,7 +473,7 @@ public:
bool bDone;
bool bHome;
- void Reset()
+ void Reset() OVERRIDE
{
uiFireBallTimer = 5000;
uiPolymorphTimer = 8000;
@@ -481,7 +481,7 @@ public:
uiHasteTimer = 22000;
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
ScriptedAI::JustReachedHome();
@@ -494,7 +494,7 @@ public:
bHome = false;
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (!bDone && GrandChampionsOutVehicle(me))
{
@@ -525,7 +525,7 @@ public:
if (uiFireBallTimer <= uiDiff)
{
- if (me->getVictim())
+ if (me->GetVictim())
DoCastVictim(SPELL_FIREBALL);
uiFireBallTimer = 5000;
} else uiFireBallTimer -= uiDiff;
@@ -563,14 +563,14 @@ public:
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
instance->SetData(BOSS_GRAND_CHAMPIONS, DONE);
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_mage_toc5AI(creature);
}
@@ -612,7 +612,7 @@ public:
bool bDone;
bool bHome;
- void Reset()
+ void Reset() OVERRIDE
{
uiChainLightningTimer = 16000;
uiHealingWaveTimer = 12000;
@@ -620,13 +620,13 @@ public:
uiHexMendingTimer = urand(20000, 25000);
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
DoCast(me, SPELL_EARTH_SHIELD);
DoCast(who, SPELL_HEX_OF_MENDING);
};
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
ScriptedAI::JustReachedHome();
@@ -639,7 +639,7 @@ public:
bHome = false;
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (!bDone && GrandChampionsOutVehicle(me))
{
@@ -710,14 +710,14 @@ public:
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
instance->SetData(BOSS_GRAND_CHAMPIONS, DONE);
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_shaman_toc5AI(creature);
}
@@ -761,7 +761,7 @@ public:
bool bDone;
bool bHome;
- void Reset()
+ void Reset() OVERRIDE
{
uiShootTimer = 12000;
uiMultiShotTimer = 0;
@@ -772,7 +772,7 @@ public:
bShoot = false;
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
ScriptedAI::JustReachedHome();
@@ -785,7 +785,7 @@ public:
bHome = false;
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (!bDone && GrandChampionsOutVehicle(me))
{
@@ -851,8 +851,8 @@ public:
{
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
{
- Player* player = itr->getSource();
- if (player && !player->isGameMaster() && me->IsInRange(player, 5.0f, 30.0f, false))
+ Player* player = itr->GetSource();
+ if (player && !player->IsGameMaster() && me->IsInRange(player, 5.0f, 30.0f, false))
{
DoCast(player, SPELL_MULTI_SHOT);
break;
@@ -866,14 +866,14 @@ public:
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
instance->SetData(BOSS_GRAND_CHAMPIONS, DONE);
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_hunter_toc5AI(creature);
}
@@ -913,14 +913,14 @@ public:
bool bDone;
bool bHome;
- void Reset()
+ void Reset() OVERRIDE
{
uiEviscerateTimer = 8000;
uiFanKivesTimer = 14000;
uiPosionBottleTimer = 19000;
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
ScriptedAI::JustReachedHome();
@@ -933,7 +933,7 @@ public:
bHome = false;
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (!bDone && GrandChampionsOutVehicle(me))
{
@@ -967,7 +967,7 @@ public:
if (uiEviscerateTimer <= uiDiff)
{
- DoCast(me->getVictim(), SPELL_EVISCERATE);
+ DoCastVictim(SPELL_EVISCERATE);
uiEviscerateTimer = 8000;
} else uiEviscerateTimer -= uiDiff;
@@ -987,14 +987,14 @@ public:
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
instance->SetData(BOSS_GRAND_CHAMPIONS, DONE);
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_rouge_toc5AI(creature);
}
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp
index 2cd4c7a9ee4..8aa5060609f 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp
@@ -34,7 +34,7 @@ class instance_trial_of_the_champion : public InstanceMapScript
public:
instance_trial_of_the_champion() : InstanceMapScript("instance_trial_of_the_champion", 650) { }
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_trial_of_the_champion_InstanceMapScript(map);
}
@@ -108,7 +108,7 @@ public:
if (!players.isEmpty())
{
- if (Player* player = players.begin()->getSource())
+ if (Player* player = players.begin()->GetSource())
TeamInInstance = player->GetTeam();
}
@@ -166,7 +166,7 @@ public:
}
}
- void SetData(uint32 uiType, uint32 uiData)
+ void SetData(uint32 uiType, uint32 uiData) OVERRIDE
{
switch (uiType)
{
@@ -235,7 +235,7 @@ public:
SaveToDB();
}
- uint32 GetData(uint32 uiData) const
+ uint32 GetData(uint32 uiData) const OVERRIDE
{
switch (uiData)
{
@@ -251,7 +251,7 @@ public:
return 0;
}
- uint64 GetData64(uint32 uiData) const
+ uint64 GetData64(uint32 uiData) const OVERRIDE
{
switch (uiData)
{
@@ -266,7 +266,7 @@ public:
return 0;
}
- void SetData64(uint32 uiType, uint64 uiData)
+ void SetData64(uint32 uiType, uint64 uiData) OVERRIDE
{
switch (uiType)
{
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp
index 472048501a5..00b312aa407 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp
@@ -130,7 +130,7 @@ public:
uiPhase = uiPhaseStep;
}
- void SetData(uint32 uiType, uint32 /*uiData*/)
+ void SetData(uint32 uiType, uint32 /*uiData*/) OVERRIDE
{
switch (uiType)
{
@@ -185,16 +185,13 @@ public:
}
}
- void MovementInform(uint32 uiType, uint32 uiPointId)
+ void MovementInform(uint32 uiType, uint32 uiPointId) OVERRIDE
{
if (uiType != POINT_MOTION_TYPE)
return;
if (uiPointId == 1)
- {
- me->SetOrientation(ORIENTATION);
- me->SendMovementFlagUpdate();
- }
+ me->SetFacingTo(ORIENTATION);
}
void DoSummonGrandChampion(uint32 uiBoss)
@@ -394,12 +391,12 @@ public:
for (Map::PlayerList::const_iterator i = PlList.begin(); i != PlList.end(); ++i)
{
- if (Player* player = i->getSource())
+ if (Player* player = i->GetSource())
{
- if (player->isGameMaster())
+ if (player->IsGameMaster())
continue;
- if (player->isAlive())
+ if (player->IsAlive())
{
temp->SetHomePosition(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation());
temp->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
@@ -412,7 +409,7 @@ public:
}
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
ScriptedAI::UpdateAI(uiDiff);
@@ -444,7 +441,7 @@ public:
return;
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
if (instance && instance->GetData(BOSS_GRAND_CHAMPIONS) == NOT_STARTED)
{
@@ -453,7 +450,7 @@ public:
}
}
- void SummonedCreatureDespawn(Creature* summon)
+ void SummonedCreatureDespawn(Creature* summon) OVERRIDE
{
switch (summon->GetEntry())
{
@@ -473,12 +470,12 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_announcer_toc5AI(creature);
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
InstanceScript* instance = creature->GetInstanceScript();
@@ -503,7 +500,7 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF+1)
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
index 9c6d481c207..f346c796976 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
@@ -168,7 +168,7 @@ class boss_anubarak_trial : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
events.SetPhase(PHASE_MELEE);
@@ -196,7 +196,7 @@ class boss_anubarak_trial : public CreatureScript
_burrowGUID.clear();
}
- void KilledUnit(Unit* who)
+ void KilledUnit(Unit* who) OVERRIDE
{
if (who->GetTypeId() == TYPEID_PLAYER)
{
@@ -206,7 +206,8 @@ class boss_anubarak_trial : public CreatureScript
}
}
- void MoveInLineOfSight(Unit* /*who*/)
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE
+
{
if (!_intro)
{
@@ -215,7 +216,7 @@ class boss_anubarak_trial : public CreatureScript
}
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
if (instance)
instance->SetBossState(BOSS_ANUBARAK, FAIL);
@@ -228,7 +229,7 @@ class boss_anubarak_trial : public CreatureScript
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
Talk(SAY_DEATH);
@@ -242,7 +243,7 @@ class boss_anubarak_trial : public CreatureScript
(*itr)->DespawnOrUnsummon();
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true);
switch (summoned->GetEntry())
@@ -264,7 +265,7 @@ class boss_anubarak_trial : public CreatureScript
summons.Summon(summoned);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
Talk(SAY_AGGRO);
@@ -284,7 +285,7 @@ class boss_anubarak_trial : public CreatureScript
_sphereGUID[i] = summoned->GetGUID();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -422,36 +423,36 @@ class boss_anubarak_trial : public CreatureScript
uint32 _berserkTimer;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_anubarak_trialAI(creature);
};
};
-class mob_swarm_scarab : public CreatureScript
+class npc_swarm_scarab : public CreatureScript
{
public:
- mob_swarm_scarab() : CreatureScript("mob_swarm_scarab") { }
+ npc_swarm_scarab() : CreatureScript("npc_swarm_scarab") { }
- struct mob_swarm_scarabAI : public ScriptedAI
+ struct npc_swarm_scarabAI : public ScriptedAI
{
- mob_swarm_scarabAI(Creature* creature) : ScriptedAI(creature)
+ npc_swarm_scarabAI(Creature* creature) : ScriptedAI(creature)
{
_instance = creature->GetInstanceScript();
}
- void Reset()
+ void Reset() OVERRIDE
{
me->SetCorpseDelay(0);
_determinationTimer = urand(5*IN_MILLISECONDS, 60*IN_MILLISECONDS);
DoCast(me, SPELL_ACID_MANDIBLE);
me->SetInCombatWithZone();
- if (me->isInCombat())
+ if (me->IsInCombat())
if (Creature* Anubarak = ObjectAccessor::GetCreature(*me, _instance->GetData64(NPC_ANUBARAK)))
Anubarak->AI()->JustSummoned(me);
}
- void DoAction(int32 actionId)
+ void DoAction(int32 actionId) OVERRIDE
{
switch (actionId)
{
@@ -464,12 +465,12 @@ class mob_swarm_scarab : public CreatureScript
}
}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
DoCast(killer, RAID_MODE(SPELL_TRAITOR_KING_10, SPELL_TRAITOR_KING_25));
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (_instance && _instance->GetBossState(BOSS_ANUBARAK) != IN_PROGRESS)
me->DisappearAndDie();
@@ -494,25 +495,25 @@ class mob_swarm_scarab : public CreatureScript
uint32 _determinationTimer;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_swarm_scarabAI(creature);
+ return new npc_swarm_scarabAI(creature);
};
};
-class mob_nerubian_burrower : public CreatureScript
+class npc_nerubian_burrower : public CreatureScript
{
public:
- mob_nerubian_burrower() : CreatureScript("mob_nerubian_burrower") { }
+ npc_nerubian_burrower() : CreatureScript("npc_nerubian_burrower") { }
- struct mob_nerubian_burrowerAI : public ScriptedAI
+ struct npc_nerubian_burrowerAI : public ScriptedAI
{
- mob_nerubian_burrowerAI(Creature* creature) : ScriptedAI(creature)
+ npc_nerubian_burrowerAI(Creature* creature) : ScriptedAI(creature)
{
_instance = creature->GetInstanceScript();
}
- void Reset()
+ void Reset() OVERRIDE
{
me->SetCorpseDelay(10);
_submergeTimer = 30*IN_MILLISECONDS;
@@ -520,12 +521,12 @@ class mob_nerubian_burrower : public CreatureScript
DoCast(me, SPELL_SPIDER_FRENZY);
DoCast(me, SPELL_AWAKENED);
me->SetInCombatWithZone();
- if (me->isInCombat())
+ if (me->IsInCombat())
if (Creature* Anubarak = ObjectAccessor::GetCreature(*me, _instance->GetData64(NPC_ANUBARAK)))
Anubarak->AI()->JustSummoned(me);
}
- void DoAction(int32 actionId)
+ void DoAction(int32 actionId) OVERRIDE
{
switch (actionId)
{
@@ -539,7 +540,7 @@ class mob_nerubian_burrower : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (_instance && _instance->GetBossState(BOSS_ANUBARAK) != IN_PROGRESS)
me->DisappearAndDie();
@@ -583,24 +584,24 @@ class mob_nerubian_burrower : public CreatureScript
InstanceScript* _instance;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_nerubian_burrowerAI(creature);
+ return new npc_nerubian_burrowerAI(creature);
};
};
-class mob_frost_sphere : public CreatureScript
+class npc_frost_sphere : public CreatureScript
{
public:
- mob_frost_sphere() : CreatureScript("mob_frost_sphere") { }
+ npc_frost_sphere() : CreatureScript("npc_frost_sphere") { }
- struct mob_frost_sphereAI : public ScriptedAI
+ struct npc_frost_sphereAI : public ScriptedAI
{
- mob_frost_sphereAI(Creature* creature) : ScriptedAI(creature)
+ npc_frost_sphereAI(Creature* creature) : ScriptedAI(creature)
{
}
- void Reset()
+ void Reset() OVERRIDE
{
me->SetReactState(REACT_PASSIVE);
DoCast(SPELL_FROST_SPHERE);
@@ -608,7 +609,7 @@ class mob_frost_sphere : public CreatureScript
me->GetMotionMaster()->MoveRandom(20.0f);
}
- void DamageTaken(Unit* /*who*/, uint32& damage)
+ void DamageTaken(Unit* /*who*/, uint32& damage) OVERRIDE
{
if (me->GetHealth() <= damage)
{
@@ -636,7 +637,7 @@ class mob_frost_sphere : public CreatureScript
}
}
- void MovementInform(uint32 type, uint32 pointId)
+ void MovementInform(uint32 type, uint32 pointId) OVERRIDE
{
if (type != EFFECT_MOTION_TYPE)
return;
@@ -656,24 +657,24 @@ class mob_frost_sphere : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_frost_sphereAI(creature);
+ return new npc_frost_sphereAI(creature);
};
};
-class mob_anubarak_spike : public CreatureScript
+class npc_anubarak_spike : public CreatureScript
{
public:
- mob_anubarak_spike() : CreatureScript("mob_anubarak_spike") { }
+ npc_anubarak_spike() : CreatureScript("npc_anubarak_spike") { }
- struct mob_anubarak_spikeAI : public ScriptedAI
+ struct npc_anubarak_spikeAI : public ScriptedAI
{
- mob_anubarak_spikeAI(Creature* creature) : ScriptedAI(creature)
+ npc_anubarak_spikeAI(Creature* creature) : ScriptedAI(creature)
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_phase = PHASE_NO_MOVEMENT;
_phaseSwitchTimer = 1;
@@ -681,12 +682,12 @@ class mob_anubarak_spike : public CreatureScript
me->SetInCombatWithZone();
}
- bool CanAIAttack(Unit const* victim) const
+ bool CanAIAttack(Unit const* victim) const OVERRIDE
{
return victim->GetTypeId() == TYPEID_PLAYER;
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true))
{
@@ -695,12 +696,12 @@ class mob_anubarak_spike : public CreatureScript
}
}
- void DamageTaken(Unit* /*who*/, uint32& uiDamage)
+ void DamageTaken(Unit* /*who*/, uint32& uiDamage) OVERRIDE
{
uiDamage = 0;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
{
@@ -744,7 +745,8 @@ class mob_anubarak_spike : public CreatureScript
}
}
- void MoveInLineOfSight(Unit* pWho)
+ void MoveInLineOfSight(Unit* pWho) OVERRIDE
+
{
if (!pWho)
return;
@@ -803,9 +805,9 @@ class mob_anubarak_spike : public CreatureScript
PursuingSpikesPhases _phase;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_anubarak_spikeAI(creature);
+ return new npc_anubarak_spikeAI(creature);
};
};
@@ -828,13 +830,13 @@ class spell_impale : public SpellScriptLoader
SetHitDamage(0);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_impale_SpellScript::HandleDamageCalc, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_impale_SpellScript();
}
@@ -849,7 +851,7 @@ class spell_anubarak_leeching_swarm : public SpellScriptLoader
{
PrepareAuraScript(spell_anubarak_leeching_swarm_AuraScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_LEECHING_SWARM_DMG) || !sSpellMgr->GetSpellInfo(SPELL_LEECHING_SWARM_HEAL))
return false;
@@ -871,13 +873,13 @@ class spell_anubarak_leeching_swarm : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_anubarak_leeching_swarm_AuraScript::HandleEffectPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_anubarak_leeching_swarm_AuraScript();
}
@@ -886,10 +888,10 @@ class spell_anubarak_leeching_swarm : public SpellScriptLoader
void AddSC_boss_anubarak_trial()
{
new boss_anubarak_trial();
- new mob_swarm_scarab();
- new mob_nerubian_burrower();
- new mob_anubarak_spike();
- new mob_frost_sphere();
+ new npc_swarm_scarab();
+ new npc_nerubian_burrower();
+ new npc_anubarak_spike();
+ new npc_frost_sphere();
new spell_impale();
new spell_anubarak_leeching_swarm();
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp
index f1bf0579187..ce0f8e4778c 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp
@@ -37,7 +37,7 @@ enum AIs
AI_PET = 3
};
-enum eSpells
+enum Spells
{
// generic
SPELL_ANTI_AOE = 68595,
@@ -351,7 +351,7 @@ class boss_toc_champion_controller : public CreatureScript
_instance = creature->GetInstanceScript();
}
- void Reset()
+ void Reset() OVERRIDE
{
_championsNotStarted = 0;
_championsFailed = 0;
@@ -469,7 +469,7 @@ class boss_toc_champion_controller : public CreatureScript
}
}
- void SetData(uint32 uiType, uint32 uiData)
+ void SetData(uint32 uiType, uint32 uiData) OVERRIDE
{
switch (uiType)
{
@@ -537,9 +537,9 @@ class boss_toc_champion_controller : public CreatureScript
bool _inProgress;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_toc_champion_controllerAI (creature);
+ return new boss_toc_champion_controllerAI(creature);
}
};
@@ -550,14 +550,14 @@ struct boss_faction_championsAI : public BossAI
_aiType = aitype;
}
- void Reset()
+ void Reset() OVERRIDE
{
_events.ScheduleEvent(EVENT_THREAT, 5*IN_MILLISECONDS);
if (IsHeroic() && (_aiType != AI_PET))
_events.ScheduleEvent(EVENT_REMOVE_CC, 5*IN_MILLISECONDS);
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
if (instance)
if (Creature* pChampionController = Unit::GetCreature((*me), instance->GetData64(NPC_CHAMPIONS_CONTROLLER)))
@@ -607,7 +607,7 @@ struct boss_faction_championsAI : public BossAI
//DoCast(me, SPELL_PVP_TRINKET);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (_aiType != AI_PET)
if (instance)
@@ -615,7 +615,7 @@ struct boss_faction_championsAI : public BossAI
pChampionController->AI()->SetData(2, DONE);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
DoCast(me, SPELL_ANTI_AOE, true);
_EnterCombat();
@@ -624,7 +624,7 @@ struct boss_faction_championsAI : public BossAI
pChampionController->AI()->SetData(2, IN_PROGRESS);
}
- void KilledUnit(Unit* who)
+ void KilledUnit(Unit* who) OVERRIDE
{
if (who->GetTypeId() == TYPEID_PLAYER)
{
@@ -632,7 +632,7 @@ struct boss_faction_championsAI : public BossAI
uint32 TeamInInstance = 0;
if (!players.isEmpty())
- if (Player* player = players.begin()->getSource())
+ if (Player* player = players.begin()->GetSource())
TeamInInstance = player->GetTeam();
if (instance)
@@ -691,7 +691,7 @@ struct boss_faction_championsAI : public BossAI
return count;
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (!who)
return;
@@ -710,7 +710,7 @@ struct boss_faction_championsAI : public BossAI
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
_events.Update(diff);
@@ -750,16 +750,16 @@ struct boss_faction_championsAI : public BossAI
/********************************************************************
HEALERS
********************************************************************/
-class mob_toc_druid : public CreatureScript
+class npc_toc_druid : public CreatureScript
{
public:
- mob_toc_druid() : CreatureScript("mob_toc_druid") { }
+ npc_toc_druid() : CreatureScript("npc_toc_druid") { }
- struct mob_toc_druidAI : public boss_faction_championsAI
+ struct npc_toc_druidAI : public boss_faction_championsAI
{
- mob_toc_druidAI(Creature* creature) : boss_faction_championsAI(creature, AI_HEALER) {}
+ npc_toc_druidAI(Creature* creature) : boss_faction_championsAI(creature, AI_HEALER) {}
- void Reset()
+ void Reset() OVERRIDE
{
boss_faction_championsAI::Reset();
events.ScheduleEvent(EVENT_LIFEBLOOM, urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS));
@@ -773,7 +773,7 @@ class mob_toc_druid : public CreatureScript
SetEquipmentSlots(false, 51799, EQUIP_NO_CHANGE, EQUIP_NO_CHANGE);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -837,22 +837,22 @@ class mob_toc_druid : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_toc_druidAI (creature);
+ return new npc_toc_druidAI(creature);
}
};
-class mob_toc_shaman : public CreatureScript
+class npc_toc_shaman : public CreatureScript
{
public:
- mob_toc_shaman() : CreatureScript("mob_toc_shaman") { }
+ npc_toc_shaman() : CreatureScript("npc_toc_shaman") { }
- struct mob_toc_shamanAI : public boss_faction_championsAI
+ struct npc_toc_shamanAI : public boss_faction_championsAI
{
- mob_toc_shamanAI(Creature* creature) : boss_faction_championsAI(creature, AI_HEALER) {}
+ npc_toc_shamanAI(Creature* creature) : boss_faction_championsAI(creature, AI_HEALER) {}
- void Reset()
+ void Reset() OVERRIDE
{
boss_faction_championsAI::Reset();
events.ScheduleEvent(EVENT_HEALING_WAVE, urand(5*IN_MILLISECONDS, 10*IN_MILLISECONDS));
@@ -865,7 +865,7 @@ class mob_toc_shaman : public CreatureScript
SetEquipmentSlots(false, 49992, EQUIP_NO_CHANGE, EQUIP_NO_CHANGE);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -930,22 +930,22 @@ class mob_toc_shaman : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_toc_shamanAI (creature);
+ return new npc_toc_shamanAI(creature);
}
};
-class mob_toc_paladin : public CreatureScript
+class npc_toc_paladin : public CreatureScript
{
public:
- mob_toc_paladin() : CreatureScript("mob_toc_paladin") { }
+ npc_toc_paladin() : CreatureScript("npc_toc_paladin") { }
- struct mob_toc_paladinAI : public boss_faction_championsAI
+ struct npc_toc_paladinAI : public boss_faction_championsAI
{
- mob_toc_paladinAI(Creature* creature) : boss_faction_championsAI(creature, AI_HEALER) {}
+ npc_toc_paladinAI(Creature* creature) : boss_faction_championsAI(creature, AI_HEALER) {}
- void Reset()
+ void Reset() OVERRIDE
{
boss_faction_championsAI::Reset();
events.ScheduleEvent(EVENT_HAND_OF_FREEDOM, urand(10*IN_MILLISECONDS, 20*IN_MILLISECONDS));
@@ -959,7 +959,7 @@ class mob_toc_paladin : public CreatureScript
SetEquipmentSlots(false, 50771, 47079, EQUIP_NO_CHANGE);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -1034,22 +1034,22 @@ class mob_toc_paladin : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_toc_paladinAI (creature);
+ return new npc_toc_paladinAI(creature);
}
};
-class mob_toc_priest : public CreatureScript
+class npc_toc_priest : public CreatureScript
{
public:
- mob_toc_priest() : CreatureScript("mob_toc_priest") { }
+ npc_toc_priest() : CreatureScript("npc_toc_priest") { }
- struct mob_toc_priestAI : public boss_faction_championsAI
+ struct npc_toc_priestAI : public boss_faction_championsAI
{
- mob_toc_priestAI(Creature* creature) : boss_faction_championsAI(creature, AI_HEALER) {}
+ npc_toc_priestAI(Creature* creature) : boss_faction_championsAI(creature, AI_HEALER) {}
- void Reset()
+ void Reset() OVERRIDE
{
boss_faction_championsAI::Reset();
events.ScheduleEvent(EVENT_RENEW, urand(3*IN_MILLISECONDS, 10*IN_MILLISECONDS));
@@ -1062,7 +1062,7 @@ class mob_toc_priest : public CreatureScript
SetEquipmentSlots(false, 49992, EQUIP_NO_CHANGE, EQUIP_NO_CHANGE);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -1119,25 +1119,25 @@ class mob_toc_priest : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_toc_priestAI (creature);
+ return new npc_toc_priestAI(creature);
}
};
/********************************************************************
RANGED
********************************************************************/
-class mob_toc_shadow_priest : public CreatureScript
+class npc_toc_shadow_priest : public CreatureScript
{
public:
- mob_toc_shadow_priest() : CreatureScript("mob_toc_shadow_priest") { }
+ npc_toc_shadow_priest() : CreatureScript("npc_toc_shadow_priest") { }
- struct mob_toc_shadow_priestAI : public boss_faction_championsAI
+ struct npc_toc_shadow_priestAI : public boss_faction_championsAI
{
- mob_toc_shadow_priestAI(Creature* creature) : boss_faction_championsAI(creature, AI_RANGED) {}
+ npc_toc_shadow_priestAI(Creature* creature) : boss_faction_championsAI(creature, AI_RANGED) {}
- void Reset()
+ void Reset() OVERRIDE
{
boss_faction_championsAI::Reset();
events.ScheduleEvent(EVENT_SILENCE, urand(10*IN_MILLISECONDS, 25*IN_MILLISECONDS));
@@ -1152,7 +1152,7 @@ class mob_toc_shadow_priest : public CreatureScript
DoCast(me, SPELL_SHADOWFORM);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -1217,22 +1217,22 @@ class mob_toc_shadow_priest : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_toc_shadow_priestAI (creature);
+ return new npc_toc_shadow_priestAI(creature);
}
};
-class mob_toc_warlock : public CreatureScript
+class npc_toc_warlock : public CreatureScript
{
public:
- mob_toc_warlock() : CreatureScript("mob_toc_warlock") { }
+ npc_toc_warlock() : CreatureScript("npc_toc_warlock") { }
- struct mob_toc_warlockAI : public boss_faction_championsAI
+ struct npc_toc_warlockAI : public boss_faction_championsAI
{
- mob_toc_warlockAI(Creature* creature) : boss_faction_championsAI(creature, AI_RANGED) {}
+ npc_toc_warlockAI(Creature* creature) : boss_faction_championsAI(creature, AI_RANGED) {}
- void Reset()
+ void Reset() OVERRIDE
{
boss_faction_championsAI::Reset();
events.ScheduleEvent(EVENT_HELLFIRE, urand(10*IN_MILLISECONDS, 30*IN_MILLISECONDS));
@@ -1245,13 +1245,13 @@ class mob_toc_warlock : public CreatureScript
SetEquipmentSlots(false, 49992, EQUIP_NO_CHANGE, EQUIP_NO_CHANGE);
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
boss_faction_championsAI::EnterCombat(who);
DoCast(SPELL_SUMMON_FELHUNTER);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -1308,22 +1308,22 @@ class mob_toc_warlock : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_toc_warlockAI (creature);
+ return new npc_toc_warlockAI(creature);
}
};
-class mob_toc_mage : public CreatureScript
+class npc_toc_mage : public CreatureScript
{
public:
- mob_toc_mage() : CreatureScript("mob_toc_mage") { }
+ npc_toc_mage() : CreatureScript("npc_toc_mage") { }
- struct mob_toc_mageAI : public boss_faction_championsAI
+ struct npc_toc_mageAI : public boss_faction_championsAI
{
- mob_toc_mageAI(Creature* creature) : boss_faction_championsAI(creature, AI_RANGED) {}
+ npc_toc_mageAI(Creature* creature) : boss_faction_championsAI(creature, AI_RANGED) {}
- void Reset()
+ void Reset() OVERRIDE
{
boss_faction_championsAI::Reset();
events.ScheduleEvent(EVENT_ARCANE_BARRAGE, urand(1*IN_MILLISECONDS, 5*IN_MILLISECONDS));
@@ -1337,7 +1337,7 @@ class mob_toc_mage : public CreatureScript
SetEquipmentSlots(false, 47524, EQUIP_NO_CHANGE, EQUIP_NO_CHANGE);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -1402,22 +1402,22 @@ class mob_toc_mage : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_toc_mageAI (creature);
+ return new npc_toc_mageAI(creature);
}
};
-class mob_toc_hunter : public CreatureScript
+class npc_toc_hunter : public CreatureScript
{
public:
- mob_toc_hunter() : CreatureScript("mob_toc_hunter") { }
+ npc_toc_hunter() : CreatureScript("npc_toc_hunter") { }
- struct mob_toc_hunterAI : public boss_faction_championsAI
+ struct npc_toc_hunterAI : public boss_faction_championsAI
{
- mob_toc_hunterAI(Creature* creature) : boss_faction_championsAI(creature, AI_RANGED) {}
+ npc_toc_hunterAI(Creature* creature) : boss_faction_championsAI(creature, AI_RANGED) {}
- void Reset()
+ void Reset() OVERRIDE
{
boss_faction_championsAI::Reset();
events.ScheduleEvent(EVENT_AIMED_SHOT, urand(5*IN_MILLISECONDS, 10*IN_MILLISECONDS));
@@ -1431,13 +1431,13 @@ class mob_toc_hunter : public CreatureScript
SetEquipmentSlots(false, 47156, EQUIP_NO_CHANGE, 48711);
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
boss_faction_championsAI::EnterCombat(who);
DoCast(SPELL_CALL_PET);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -1484,7 +1484,7 @@ class mob_toc_hunter : public CreatureScript
events.ScheduleEvent(EVENT_STEADY_SHOT, urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS));
return;
case EVENT_WING_CLIP:
- if (Unit* target = me->getVictim())
+ if (Unit* target = me->GetVictim())
{
if (me->GetDistance2d(target) < 6.0f)
DoCast(target, SPELL_WING_CLIP);
@@ -1504,22 +1504,22 @@ class mob_toc_hunter : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_toc_hunterAI (creature);
+ return new npc_toc_hunterAI(creature);
}
};
-class mob_toc_boomkin : public CreatureScript
+class npc_toc_boomkin : public CreatureScript
{
public:
- mob_toc_boomkin() : CreatureScript("mob_toc_boomkin") { }
+ npc_toc_boomkin() : CreatureScript("npc_toc_boomkin") { }
- struct mob_toc_boomkinAI : public boss_faction_championsAI
+ struct npc_toc_boomkinAI : public boss_faction_championsAI
{
- mob_toc_boomkinAI(Creature* creature) : boss_faction_championsAI(creature, AI_RANGED) {}
+ npc_toc_boomkinAI(Creature* creature) : boss_faction_championsAI(creature, AI_RANGED) {}
- void Reset()
+ void Reset() OVERRIDE
{
boss_faction_championsAI::Reset();
events.ScheduleEvent(EVENT_CYCLONE, urand(10*IN_MILLISECONDS, 20*IN_MILLISECONDS));
@@ -1534,7 +1534,7 @@ class mob_toc_boomkin : public CreatureScript
SetEquipmentSlots(false, 50966, EQUIP_NO_CHANGE, EQUIP_NO_CHANGE);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -1596,25 +1596,25 @@ class mob_toc_boomkin : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_toc_boomkinAI (creature);
+ return new npc_toc_boomkinAI(creature);
}
};
/********************************************************************
MELEE
********************************************************************/
-class mob_toc_warrior : public CreatureScript
+class npc_toc_warrior : public CreatureScript
{
public:
- mob_toc_warrior() : CreatureScript("mob_toc_warrior") { }
+ npc_toc_warrior() : CreatureScript("npc_toc_warrior") { }
- struct mob_toc_warriorAI : public boss_faction_championsAI
+ struct npc_toc_warriorAI : public boss_faction_championsAI
{
- mob_toc_warriorAI(Creature* creature) : boss_faction_championsAI(creature, AI_MELEE) {}
+ npc_toc_warriorAI(Creature* creature) : boss_faction_championsAI(creature, AI_MELEE) {}
- void Reset()
+ void Reset() OVERRIDE
{
boss_faction_championsAI::Reset();
events.ScheduleEvent(EVENT_BLADESTORM, urand(10*IN_MILLISECONDS, 15*IN_MILLISECONDS));
@@ -1629,7 +1629,7 @@ class mob_toc_warrior : public CreatureScript
SetEquipmentSlots(false, 47427, 46964, EQUIP_NO_CHANGE);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -1673,7 +1673,7 @@ class mob_toc_warrior : public CreatureScript
events.ScheduleEvent(EVENT_SUNDER_ARMOR, urand(2*IN_MILLISECONDS, 5*IN_MILLISECONDS));
return;
case EVENT_SHATTERING_THROW:
- if (Unit* target = me->getVictim())
+ if (Unit* target = me->GetVictim())
{
if (target->HasAuraWithMechanic(1 << MECHANIC_IMMUNE_SHIELD))
{
@@ -1700,22 +1700,22 @@ class mob_toc_warrior : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_toc_warriorAI (creature);
+ return new npc_toc_warriorAI(creature);
}
};
-class mob_toc_dk : public CreatureScript
+class npc_toc_dk : public CreatureScript
{
public:
- mob_toc_dk() : CreatureScript("mob_toc_dk") { }
+ npc_toc_dk() : CreatureScript("npc_toc_dk") { }
- struct mob_toc_dkAI : public boss_faction_championsAI
+ struct npc_toc_dkAI : public boss_faction_championsAI
{
- mob_toc_dkAI(Creature* creature) : boss_faction_championsAI(creature, AI_MELEE) {}
+ npc_toc_dkAI(Creature* creature) : boss_faction_championsAI(creature, AI_MELEE) {}
- void Reset()
+ void Reset() OVERRIDE
{
boss_faction_championsAI::Reset();
events.ScheduleEvent(EVENT_CHAINS_OF_ICE, urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS));
@@ -1728,7 +1728,7 @@ class mob_toc_dk : public CreatureScript
SetEquipmentSlots(false, 47518, 51021, EQUIP_NO_CHANGE);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -1752,7 +1752,7 @@ class mob_toc_dk : public CreatureScript
events.ScheduleEvent(EVENT_DEATH_COIL, urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS));
return;
case EVENT_DEATH_GRIP:
- if (Unit* target = me->getVictim())
+ if (Unit* target = me->GetVictim())
{
if (me->IsInRange(target, 5.0f, 30.0f, false))
{
@@ -1796,22 +1796,22 @@ class mob_toc_dk : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_toc_dkAI (creature);
+ return new npc_toc_dkAI(creature);
}
};
-class mob_toc_rogue : public CreatureScript
+class npc_toc_rogue : public CreatureScript
{
public:
- mob_toc_rogue() : CreatureScript("mob_toc_rogue") { }
+ npc_toc_rogue() : CreatureScript("npc_toc_rogue") { }
- struct mob_toc_rogueAI : public boss_faction_championsAI
+ struct npc_toc_rogueAI : public boss_faction_championsAI
{
- mob_toc_rogueAI(Creature* creature) : boss_faction_championsAI(creature, AI_MELEE) {}
+ npc_toc_rogueAI(Creature* creature) : boss_faction_championsAI(creature, AI_MELEE) {}
- void Reset()
+ void Reset() OVERRIDE
{
boss_faction_championsAI::Reset();
events.ScheduleEvent(EVENT_FAN_OF_KNIVES, urand(5*IN_MILLISECONDS, 10*IN_MILLISECONDS));
@@ -1827,7 +1827,7 @@ class mob_toc_rogue : public CreatureScript
me->SetMaxPower(POWER_ENERGY, 100);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -1871,7 +1871,7 @@ class mob_toc_rogue : public CreatureScript
events.RescheduleEvent(EVENT_BLADE_FLURRY, 5*IN_MILLISECONDS);
return;
case EVENT_SHADOWSTEP:
- if (Unit* target = me->getVictim())
+ if (Unit* target = me->GetVictim())
{
if (me->IsInRange(target, 10.0f, 40.0f, false))
{
@@ -1901,22 +1901,22 @@ class mob_toc_rogue : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_toc_rogueAI (creature);
+ return new npc_toc_rogueAI(creature);
}
};
-class mob_toc_enh_shaman : public CreatureScript
+class npc_toc_enh_shaman : public CreatureScript
{
public:
- mob_toc_enh_shaman() : CreatureScript("mob_toc_enh_shaman") { }
+ npc_toc_enh_shaman() : CreatureScript("npc_toc_enh_shaman") { }
- struct mob_toc_enh_shamanAI : public boss_faction_championsAI
+ struct npc_toc_enh_shamanAI : public boss_faction_championsAI
{
- mob_toc_enh_shamanAI(Creature* creature) : boss_faction_championsAI(creature, AI_MELEE) {}
+ npc_toc_enh_shamanAI(Creature* creature) : boss_faction_championsAI(creature, AI_MELEE) {}
- void Reset()
+ void Reset() OVERRIDE
{
boss_faction_championsAI::Reset();
events.ScheduleEvent(EVENT_DPS_EARTH_SHOCK, urand(5*IN_MILLISECONDS, 10*IN_MILLISECONDS));
@@ -1933,12 +1933,12 @@ class mob_toc_enh_shaman : public CreatureScript
summons.DespawnAll();
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
summons.Summon(summoned);
}
- void SummonedCreatureDespawn(Creature* /*pSummoned*/)
+ void SummonedCreatureDespawn(Creature* /*pSummoned*/) OVERRIDE
{
--_totemCount;
}
@@ -1961,13 +1961,13 @@ class mob_toc_enh_shaman : public CreatureScript
*/
}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
boss_faction_championsAI::JustDied(killer);
summons.DespawnAll();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -2027,22 +2027,22 @@ class mob_toc_enh_shaman : public CreatureScript
float _totemOldCenterX, _totemOldCenterY;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_toc_enh_shamanAI (creature);
+ return new npc_toc_enh_shamanAI(creature);
}
};
-class mob_toc_retro_paladin : public CreatureScript
+class npc_toc_retro_paladin : public CreatureScript
{
public:
- mob_toc_retro_paladin() : CreatureScript("mob_toc_retro_paladin") { }
+ npc_toc_retro_paladin() : CreatureScript("npc_toc_retro_paladin") { }
- struct mob_toc_retro_paladinAI : public boss_faction_championsAI
+ struct npc_toc_retro_paladinAI : public boss_faction_championsAI
{
- mob_toc_retro_paladinAI(Creature* creature) : boss_faction_championsAI(creature, AI_MELEE) {}
+ npc_toc_retro_paladinAI(Creature* creature) : boss_faction_championsAI(creature, AI_MELEE) {}
- void Reset()
+ void Reset() OVERRIDE
{
boss_faction_championsAI::Reset();
events.ScheduleEvent(EVENT_AVENGING_WRATH, urand(25*IN_MILLISECONDS, 35*IN_MILLISECONDS));
@@ -2056,13 +2056,13 @@ class mob_toc_retro_paladin : public CreatureScript
SetEquipmentSlots(false, 47519, EQUIP_NO_CHANGE, EQUIP_NO_CHANGE);
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
boss_faction_championsAI::EnterCombat(who);
DoCast(SPELL_SEAL_OF_COMMAND);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -2133,29 +2133,29 @@ class mob_toc_retro_paladin : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_toc_retro_paladinAI (creature);
+ return new npc_toc_retro_paladinAI(creature);
}
};
-class mob_toc_pet_warlock : public CreatureScript
+class npc_toc_pet_warlock : public CreatureScript
{
public:
- mob_toc_pet_warlock() : CreatureScript("mob_toc_pet_warlock") { }
+ npc_toc_pet_warlock() : CreatureScript("npc_toc_pet_warlock") { }
- struct mob_toc_pet_warlockAI : public boss_faction_championsAI
+ struct npc_toc_pet_warlockAI : public boss_faction_championsAI
{
- mob_toc_pet_warlockAI(Creature* creature) : boss_faction_championsAI(creature, AI_PET) {}
+ npc_toc_pet_warlockAI(Creature* creature) : boss_faction_championsAI(creature, AI_PET) {}
- void Reset()
+ void Reset() OVERRIDE
{
boss_faction_championsAI::Reset();
events.ScheduleEvent(EVENT_DEVOUR_MAGIC, urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS));
events.ScheduleEvent(EVENT_SPELL_LOCK, urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS));
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -2185,28 +2185,28 @@ class mob_toc_pet_warlock : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_toc_pet_warlockAI (creature);
+ return new npc_toc_pet_warlockAI(creature);
}
};
-class mob_toc_pet_hunter : public CreatureScript
+class npc_toc_pet_hunter : public CreatureScript
{
public:
- mob_toc_pet_hunter() : CreatureScript("mob_toc_pet_hunter") { }
+ npc_toc_pet_hunter() : CreatureScript("npc_toc_pet_hunter") { }
- struct mob_toc_pet_hunterAI : public boss_faction_championsAI
+ struct npc_toc_pet_hunterAI : public boss_faction_championsAI
{
- mob_toc_pet_hunterAI(Creature* creature) : boss_faction_championsAI(creature, AI_PET) {}
+ npc_toc_pet_hunterAI(Creature* creature) : boss_faction_championsAI(creature, AI_PET) {}
- void Reset()
+ void Reset() OVERRIDE
{
boss_faction_championsAI::Reset();
_clawTimer = urand(5*IN_MILLISECONDS, 10*IN_MILLISECONDS);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -2225,9 +2225,9 @@ class mob_toc_pet_hunter : public CreatureScript
uint32 _clawTimer;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_toc_pet_hunterAI (creature);
+ return new npc_toc_pet_hunterAI(creature);
}
};
@@ -2240,7 +2240,7 @@ class spell_faction_champion_warl_unstable_affliction : public SpellScriptLoader
{
PrepareAuraScript(spell_faction_champion_warl_unstable_affliction_AuraScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_UNSTABLE_AFFLICTION_DISPEL))
return false;
@@ -2253,13 +2253,13 @@ class spell_faction_champion_warl_unstable_affliction : public SpellScriptLoader
caster->CastSpell(dispelInfo->GetDispeller(), SPELL_UNSTABLE_AFFLICTION_DISPEL, true, NULL, GetEffect(EFFECT_0));
}
- void Register()
+ void Register() OVERRIDE
{
AfterDispel += AuraDispelFn(spell_faction_champion_warl_unstable_affliction_AuraScript::HandleDispel);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_faction_champion_warl_unstable_affliction_AuraScript();
}
@@ -2274,7 +2274,7 @@ class spell_faction_champion_death_grip : public SpellScriptLoader
{
PrepareSpellScript(spell_faction_champion_death_grip_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_DEATH_GRIP_PULL))
return false;
@@ -2290,14 +2290,14 @@ class spell_faction_champion_death_grip : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_faction_champion_death_grip_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_faction_champion_death_grip_SpellScript();
}
@@ -2312,7 +2312,7 @@ class spell_toc_bloodlust : public SpellScriptLoader
{
PrepareSpellScript(spell_toc_bloodlust_SpellScript);
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(AURA_SATED))
return false;
@@ -2330,7 +2330,7 @@ class spell_toc_bloodlust : public SpellScriptLoader
target->CastSpell(target, AURA_SATED, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_toc_bloodlust_SpellScript::RemoveInvalidTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ALLY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_toc_bloodlust_SpellScript::RemoveInvalidTargets, EFFECT_1, TARGET_UNIT_SRC_AREA_ALLY);
@@ -2338,7 +2338,7 @@ class spell_toc_bloodlust : public SpellScriptLoader
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_toc_bloodlust_SpellScript();
}
@@ -2353,7 +2353,7 @@ class spell_toc_heroism : public SpellScriptLoader
{
PrepareSpellScript(spell_toc_heroism_SpellScript);
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(AURA_EXHAUSTION))
return false;
@@ -2371,7 +2371,7 @@ class spell_toc_heroism : public SpellScriptLoader
target->CastSpell(target, AURA_EXHAUSTION, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_toc_heroism_SpellScript::RemoveInvalidTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ALLY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_toc_heroism_SpellScript::RemoveInvalidTargets, EFFECT_1, TARGET_UNIT_SRC_AREA_ALLY);
@@ -2379,7 +2379,7 @@ class spell_toc_heroism : public SpellScriptLoader
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_toc_heroism_SpellScript();
}
@@ -2388,22 +2388,22 @@ class spell_toc_heroism : public SpellScriptLoader
void AddSC_boss_faction_champions()
{
new boss_toc_champion_controller();
- new mob_toc_druid();
- new mob_toc_shaman();
- new mob_toc_paladin();
- new mob_toc_priest();
- new mob_toc_shadow_priest();
- new mob_toc_mage();
- new mob_toc_warlock();
- new mob_toc_hunter();
- new mob_toc_boomkin();
- new mob_toc_warrior();
- new mob_toc_dk();
- new mob_toc_rogue();
- new mob_toc_enh_shaman();
- new mob_toc_retro_paladin();
- new mob_toc_pet_warlock();
- new mob_toc_pet_hunter();
+ new npc_toc_druid();
+ new npc_toc_shaman();
+ new npc_toc_paladin();
+ new npc_toc_priest();
+ new npc_toc_shadow_priest();
+ new npc_toc_mage();
+ new npc_toc_warlock();
+ new npc_toc_hunter();
+ new npc_toc_boomkin();
+ new npc_toc_warrior();
+ new npc_toc_dk();
+ new npc_toc_rogue();
+ new npc_toc_enh_shaman();
+ new npc_toc_retro_paladin();
+ new npc_toc_pet_warlock();
+ new npc_toc_pet_hunter();
new spell_faction_champion_warl_unstable_affliction();
new spell_faction_champion_death_grip();
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
index 74324d6c515..7b0867b771c 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
@@ -101,7 +101,7 @@ class boss_jaraxxus : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
events.ScheduleEvent(EVENT_FEL_FIREBALL, 5*IN_MILLISECONDS);
@@ -113,7 +113,7 @@ class boss_jaraxxus : public CreatureScript
events.ScheduleEvent(EVENT_SUMMON_INFERNAL_ERUPTION, 80*IN_MILLISECONDS);
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
_JustReachedHome();
if (instance)
@@ -122,7 +122,7 @@ class boss_jaraxxus : public CreatureScript
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
}
- void KilledUnit(Unit* who)
+ void KilledUnit(Unit* who) OVERRIDE
{
if (who->GetTypeId() == TYPEID_PLAYER)
{
@@ -132,24 +132,24 @@ class boss_jaraxxus : public CreatureScript
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
Talk(SAY_DEATH);
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
summons.Summon(summoned);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
Talk(SAY_AGGRO);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -212,33 +212,33 @@ class boss_jaraxxus : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_jaraxxusAI(creature);
}
};
-class mob_legion_flame : public CreatureScript
+class npc_legion_flame : public CreatureScript
{
public:
- mob_legion_flame() : CreatureScript("mob_legion_flame") { }
+ npc_legion_flame() : CreatureScript("npc_legion_flame") { }
- struct mob_legion_flameAI : public ScriptedAI
+ struct npc_legion_flameAI : public ScriptedAI
{
- mob_legion_flameAI(Creature* creature) : ScriptedAI(creature)
+ npc_legion_flameAI(Creature* creature) : ScriptedAI(creature)
{
SetCombatMovement(false);
_instance = creature->GetInstanceScript();
}
- void Reset()
+ void Reset() OVERRIDE
{
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
me->SetInCombatWithZone();
DoCast(SPELL_LEGION_FLAME_EFFECT);
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
UpdateVictim();
if (_instance && _instance->GetBossState(BOSS_JARAXXUS) != IN_PROGRESS)
@@ -248,25 +248,25 @@ class mob_legion_flame : public CreatureScript
InstanceScript* _instance;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_legion_flameAI(creature);
+ return new npc_legion_flameAI(creature);
}
};
-class mob_infernal_volcano : public CreatureScript
+class npc_infernal_volcano : public CreatureScript
{
public:
- mob_infernal_volcano() : CreatureScript("mob_infernal_volcano") { }
+ npc_infernal_volcano() : CreatureScript("npc_infernal_volcano") { }
- struct mob_infernal_volcanoAI : public ScriptedAI
+ struct npc_infernal_volcanoAI : public ScriptedAI
{
- mob_infernal_volcanoAI(Creature* creature) : ScriptedAI(creature), _summons(me)
+ npc_infernal_volcanoAI(Creature* creature) : ScriptedAI(creature), _summons(me)
{
SetCombatMovement(false);
}
- void Reset()
+ void Reset() OVERRIDE
{
me->SetReactState(REACT_PASSIVE);
@@ -278,55 +278,55 @@ class mob_infernal_volcano : public CreatureScript
_summons.DespawnAll();
}
- void IsSummonedBy(Unit* /*summoner*/)
+ void IsSummonedBy(Unit* /*summoner*/) OVERRIDE
{
DoCast(SPELL_INFERNAL_ERUPTION_EFFECT);
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
_summons.Summon(summoned);
// makes immediate corpse despawn of summoned Felflame Infernals
summoned->SetCorpseDelay(0);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
// used to despawn corpse immediately
me->DespawnOrUnsummon();
}
- void UpdateAI(uint32 /*diff*/) {}
+ void UpdateAI(uint32 /*diff*/) OVERRIDE {}
private:
SummonList _summons;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_infernal_volcanoAI(creature);
+ return new npc_infernal_volcanoAI(creature);
}
};
-class mob_fel_infernal : public CreatureScript
+class npc_fel_infernal : public CreatureScript
{
public:
- mob_fel_infernal() : CreatureScript("mob_fel_infernal") { }
+ npc_fel_infernal() : CreatureScript("npc_fel_infernal") { }
- struct mob_fel_infernalAI : public ScriptedAI
+ struct npc_fel_infernalAI : public ScriptedAI
{
- mob_fel_infernalAI(Creature* creature) : ScriptedAI(creature)
+ npc_fel_infernalAI(Creature* creature) : ScriptedAI(creature)
{
_instance = creature->GetInstanceScript();
}
- void Reset()
+ void Reset() OVERRIDE
{
_felStreakTimer = 30*IN_MILLISECONDS;
me->SetInCombatWithZone();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (_instance && _instance->GetBossState(BOSS_JARAXXUS) != IN_PROGRESS)
{
@@ -353,24 +353,24 @@ class mob_fel_infernal : public CreatureScript
InstanceScript* _instance;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_fel_infernalAI(creature);
+ return new npc_fel_infernalAI(creature);
}
};
-class mob_nether_portal : public CreatureScript
+class npc_nether_portal : public CreatureScript
{
public:
- mob_nether_portal() : CreatureScript("mob_nether_portal") { }
+ npc_nether_portal() : CreatureScript("npc_nether_portal") { }
- struct mob_nether_portalAI : public ScriptedAI
+ struct npc_nether_portalAI : public ScriptedAI
{
- mob_nether_portalAI(Creature* creature) : ScriptedAI(creature), _summons(me)
+ npc_nether_portalAI(Creature* creature) : ScriptedAI(creature), _summons(me)
{
}
- void Reset()
+ void Reset() OVERRIDE
{
me->SetReactState(REACT_PASSIVE);
@@ -382,51 +382,51 @@ class mob_nether_portal : public CreatureScript
_summons.DespawnAll();
}
- void IsSummonedBy(Unit* /*summoner*/)
+ void IsSummonedBy(Unit* /*summoner*/) OVERRIDE
{
DoCast(SPELL_NETHER_PORTAL_EFFECT);
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
_summons.Summon(summoned);
// makes immediate corpse despawn of summoned Mistress of Pain
summoned->SetCorpseDelay(0);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
// used to despawn corpse immediately
me->DespawnOrUnsummon();
}
- void UpdateAI(uint32 /*diff*/) {}
+ void UpdateAI(uint32 /*diff*/) OVERRIDE {}
private:
SummonList _summons;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_nether_portalAI(creature);
+ return new npc_nether_portalAI(creature);
}
};
-class mob_mistress_of_pain : public CreatureScript
+class npc_mistress_of_pain : public CreatureScript
{
public:
- mob_mistress_of_pain() : CreatureScript("mob_mistress_of_pain") { }
+ npc_mistress_of_pain() : CreatureScript("npc_mistress_of_pain") { }
- struct mob_mistress_of_painAI : public ScriptedAI
+ struct npc_mistress_of_painAI : public ScriptedAI
{
- mob_mistress_of_painAI(Creature* creature) : ScriptedAI(creature)
+ npc_mistress_of_painAI(Creature* creature) : ScriptedAI(creature)
{
_instance = creature->GetInstanceScript();
if (_instance)
_instance->SetData(DATA_MISTRESS_OF_PAIN_COUNT, INCREASE);
}
- void Reset()
+ void Reset() OVERRIDE
{
_events.ScheduleEvent(EVENT_SHIVAN_SLASH, 30*IN_MILLISECONDS);
_events.ScheduleEvent(EVENT_SPINNING_STRIKE, 30*IN_MILLISECONDS);
@@ -435,13 +435,13 @@ class mob_mistress_of_pain : public CreatureScript
me->SetInCombatWithZone();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (_instance)
_instance->SetData(DATA_MISTRESS_OF_PAIN_COUNT, DECREASE);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (_instance && _instance->GetBossState(BOSS_JARAXXUS) != IN_PROGRESS)
{
@@ -486,9 +486,9 @@ class mob_mistress_of_pain : public CreatureScript
EventMap _events;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_mistress_of_painAI(creature);
+ return new npc_mistress_of_painAI(creature);
}
};
@@ -501,7 +501,7 @@ class spell_mistress_kiss : public SpellScriptLoader
{
PrepareAuraScript(spell_mistress_kiss_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
if (GetCaster())
if (sSpellMgr->GetSpellIdForDifficulty(SPELL_MISTRESS_KISS_DAMAGE_SILENCE, GetCaster()))
@@ -523,13 +523,13 @@ class spell_mistress_kiss : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_mistress_kiss_AuraScript::HandleDummyTick, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_mistress_kiss_AuraScript();
}
@@ -576,14 +576,14 @@ class spell_mistress_kiss_area : public SpellScriptLoader
GetCaster()->CastSpell(GetHitUnit(), uint32(GetEffectValue()), true);
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_mistress_kiss_area_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnEffectHitTarget += SpellEffectFn(spell_mistress_kiss_area_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_mistress_kiss_area_SpellScript();
}
@@ -592,11 +592,11 @@ class spell_mistress_kiss_area : public SpellScriptLoader
void AddSC_boss_jaraxxus()
{
new boss_jaraxxus();
- new mob_legion_flame();
- new mob_infernal_volcano();
- new mob_fel_infernal();
- new mob_nether_portal();
- new mob_mistress_of_pain();
+ new npc_legion_flame();
+ new npc_infernal_volcano();
+ new npc_fel_infernal();
+ new npc_nether_portal();
+ new npc_mistress_of_pain();
new spell_mistress_kiss();
new spell_mistress_kiss_area();
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
index c39b8403474..50179d138ae 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
@@ -160,7 +160,7 @@ class boss_gormok : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
events.ScheduleEvent(EVENT_IMPALE, urand(8*IN_MILLISECONDS, 10*IN_MILLISECONDS));
events.ScheduleEvent(EVENT_STAGGERING_STOMP, 15*IN_MILLISECONDS);
@@ -169,13 +169,13 @@ class boss_gormok : public CreatureScript
summons.DespawnAll();
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
ScriptedAI::EnterEvadeMode();
}
- void MovementInform(uint32 type, uint32 pointId)
+ void MovementInform(uint32 type, uint32 pointId) OVERRIDE
{
if (type != POINT_MOTION_TYPE)
return;
@@ -193,13 +193,13 @@ class boss_gormok : public CreatureScript
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
instance->SetData(TYPE_NORTHREND_BEASTS, GORMOK_DONE);
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
if (instance)
{
@@ -209,7 +209,7 @@ class boss_gormok : public CreatureScript
me->DespawnOrUnsummon();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
me->SetInCombatWithZone();
@@ -226,7 +226,7 @@ class boss_gormok : public CreatureScript
}
}
- void DamageTaken(Unit* /*who*/, uint32& damage)
+ void DamageTaken(Unit* /*who*/, uint32& damage) OVERRIDE
{
// despawn the remaining passengers on death
if (damage >= me->GetHealth())
@@ -235,7 +235,7 @@ class boss_gormok : public CreatureScript
pSnobold->ToCreature()->DespawnOrUnsummon();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -282,27 +282,27 @@ class boss_gormok : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_gormokAI(creature);
}
};
-class mob_snobold_vassal : public CreatureScript
+class npc_snobold_vassal : public CreatureScript
{
public:
- mob_snobold_vassal() : CreatureScript("mob_snobold_vassal") { }
+ npc_snobold_vassal() : CreatureScript("npc_snobold_vassal") { }
- struct mob_snobold_vassalAI : public ScriptedAI
+ struct npc_snobold_vassalAI : public ScriptedAI
{
- mob_snobold_vassalAI(Creature* creature) : ScriptedAI(creature)
+ npc_snobold_vassalAI(Creature* creature) : ScriptedAI(creature)
{
_instance = creature->GetInstanceScript();
if (_instance)
_instance->SetData(DATA_SNOBOLD_COUNT, INCREASE);
}
- void Reset()
+ void Reset() OVERRIDE
{
_events.ScheduleEvent(EVENT_BATTER, 5*IN_MILLISECONDS);
_events.ScheduleEvent(EVENT_HEAD_CRACK, 25*IN_MILLISECONDS);
@@ -316,25 +316,25 @@ class mob_snobold_vassal : public CreatureScript
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
ScriptedAI::EnterEvadeMode();
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
_targetGUID = who->GetGUID();
me->TauntApply(who);
DoCast(who, SPELL_SNOBOLLED);
}
- void DamageTaken(Unit* pDoneBy, uint32 &uiDamage)
+ void DamageTaken(Unit* pDoneBy, uint32 &uiDamage) OVERRIDE
{
if (pDoneBy->GetGUID() == _targetGUID)
uiDamage = 0;
}
- void MovementInform(uint32 type, uint32 pointId)
+ void MovementInform(uint32 type, uint32 pointId) OVERRIDE
{
if (type != POINT_MOTION_TYPE)
return;
@@ -350,16 +350,16 @@ class mob_snobold_vassal : public CreatureScript
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (Unit* target = Unit::GetPlayer(*me, _targetGUID))
- if (target->isAlive())
+ if (target->IsAlive())
target->RemoveAurasDueToSpell(SPELL_SNOBOLLED);
if (_instance)
_instance->SetData(DATA_SNOBOLD_COUNT, DECREASE);
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -374,19 +374,19 @@ class mob_snobold_vassal : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim() || _targetDied)
return;
if (Unit* target = Unit::GetPlayer(*me, _targetGUID))
{
- if (!target->isAlive())
+ if (!target->IsAlive())
{
if (_instance)
{
Unit* gormok = ObjectAccessor::GetCreature(*me, _instance->GetData64(NPC_GORMOK));
- if (gormok && gormok->isAlive())
+ if (gormok && gormok->IsAlive())
{
SetCombatMovement(false);
_targetDied = true;
@@ -455,9 +455,9 @@ class mob_snobold_vassal : public CreatureScript
bool _targetDied;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_snobold_vassalAI(creature);
+ return new npc_snobold_vassalAI(creature);
}
};
@@ -473,7 +473,7 @@ class npc_firebomb : public CreatureScript
_instance = creature->GetInstanceScript();
}
- void Reset()
+ void Reset() OVERRIDE
{
DoCast(me, SPELL_FIRE_BOMB_DOT, true);
SetCombatMovement(false);
@@ -481,7 +481,7 @@ class npc_firebomb : public CreatureScript
me->SetDisplayId(me->GetCreatureTemplate()->Modelid2);
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
if (_instance->GetData(TYPE_NORTHREND_BEASTS) != GORMOK_IN_PROGRESS)
me->DespawnOrUnsummon();
@@ -491,7 +491,7 @@ class npc_firebomb : public CreatureScript
InstanceScript* _instance;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_firebombAI(creature);
}
@@ -503,7 +503,7 @@ struct boss_jormungarAI : public BossAI
{
}
- void Reset()
+ void Reset() OVERRIDE
{
Enraged = false;
@@ -515,13 +515,13 @@ struct boss_jormungarAI : public BossAI
events.ScheduleEvent(EVENT_SLIME_POOL, 15*IN_MILLISECONDS, 0, PHASE_MOBILE);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
{
if (Creature* otherWorm = Unit::GetCreature(*me, instance->GetData64(OtherWormEntry)))
{
- if (!otherWorm->isAlive())
+ if (!otherWorm->IsAlive())
{
instance->SetData(TYPE_NORTHREND_BEASTS, SNAKES_DONE);
@@ -534,7 +534,7 @@ struct boss_jormungarAI : public BossAI
}
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
// prevent losing 2 attempts at once on heroics
if (instance && instance->GetData(TYPE_NORTHREND_BEASTS) != FAIL)
@@ -543,14 +543,14 @@ struct boss_jormungarAI : public BossAI
me->DespawnOrUnsummon();
}
- void KilledUnit(Unit* who)
+ void KilledUnit(Unit* who) OVERRIDE
{
if (who->GetTypeId() == TYPEID_PLAYER)
if (instance)
instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELIGIBLE, 0);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
me->SetInCombatWithZone();
@@ -558,7 +558,7 @@ struct boss_jormungarAI : public BossAI
instance->SetData(TYPE_NORTHREND_BEASTS, SNAKES_IN_PROGRESS);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -663,7 +663,7 @@ struct boss_jormungarAI : public BossAI
{
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
SetCombatMovement(true);
- me->GetMotionMaster()->MoveChase(me->getVictim());
+ me->GetMotionMaster()->MoveChase(me->GetVictim());
me->SetDisplayId(ModelMobile);
events.SetPhase(PHASE_MOBILE);
events.ScheduleEvent(EVENT_SUBMERGE, 45*IN_MILLISECONDS, 0, PHASE_MOBILE);
@@ -697,7 +697,7 @@ class boss_acidmaw : public CreatureScript
{
boss_acidmawAI(Creature* creature) : boss_jormungarAI(creature) { }
- void Reset()
+ void Reset() OVERRIDE
{
boss_jormungarAI::Reset();
BiteSpell = SPELL_PARALYTIC_BITE;
@@ -713,7 +713,7 @@ class boss_acidmaw : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_acidmawAI(creature);
}
@@ -730,7 +730,7 @@ class boss_dreadscale : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
boss_jormungarAI::Reset();
BiteSpell = SPELL_BURNING_BITE;
@@ -747,7 +747,7 @@ class boss_dreadscale : public CreatureScript
WasMobile = false;
}
- void MovementInform(uint32 type, uint32 pointId)
+ void MovementInform(uint32 type, uint32 pointId) OVERRIDE
{
if (type != POINT_MOTION_TYPE)
return;
@@ -765,13 +765,13 @@ class boss_dreadscale : public CreatureScript
}
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
boss_jormungarAI::EnterEvadeMode();
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
if (instance)
instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
@@ -780,31 +780,31 @@ class boss_dreadscale : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_dreadscaleAI(creature);
}
};
-class mob_slime_pool : public CreatureScript
+class npc_slime_pool : public CreatureScript
{
public:
- mob_slime_pool() : CreatureScript("mob_slime_pool") { }
+ npc_slime_pool() : CreatureScript("npc_slime_pool") { }
- struct mob_slime_poolAI : public ScriptedAI
+ struct npc_slime_poolAI : public ScriptedAI
{
- mob_slime_poolAI(Creature* creature) : ScriptedAI(creature)
+ npc_slime_poolAI(Creature* creature) : ScriptedAI(creature)
{
_instance = creature->GetInstanceScript();
}
- void Reset()
+ void Reset() OVERRIDE
{
_cast = false;
me->SetReactState(REACT_PASSIVE);
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
if (!_cast)
{
@@ -821,9 +821,9 @@ class mob_slime_pool : public CreatureScript
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_slime_poolAI(creature);
+ return new npc_slime_poolAI(creature);
}
};
@@ -845,13 +845,13 @@ class spell_gormok_fire_bomb : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHit += SpellEffectFn(spell_gormok_fire_bomb_SpellScript::TriggerFireBomb, EFFECT_0, SPELL_EFFECT_TRIGGER_MISSILE);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_gormok_fire_bomb_SpellScript();
}
@@ -868,7 +868,7 @@ class boss_icehowl : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
events.ScheduleEvent(EVENT_FEROCIOUS_BUTT, urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS));
events.ScheduleEvent(EVENT_ARCTIC_BREATH, urand(15*IN_MILLISECONDS, 25*IN_MILLISECONDS));
@@ -884,14 +884,14 @@ class boss_icehowl : public CreatureScript
_stage = 0;
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
if (instance)
instance->SetData(TYPE_NORTHREND_BEASTS, ICEHOWL_DONE);
}
- void MovementInform(uint32 type, uint32 pointId)
+ void MovementInform(uint32 type, uint32 pointId) OVERRIDE
{
if (type != POINT_MOTION_TYPE && type != EFFECT_MOTION_TYPE)
return;
@@ -928,13 +928,13 @@ class boss_icehowl : public CreatureScript
}
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
ScriptedAI::EnterEvadeMode();
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
if (instance)
{
@@ -944,7 +944,7 @@ class boss_icehowl : public CreatureScript
me->DespawnOrUnsummon();
}
- void KilledUnit(Unit* who)
+ void KilledUnit(Unit* who) OVERRIDE
{
if (who->GetTypeId() == TYPEID_PLAYER)
{
@@ -953,14 +953,14 @@ class boss_icehowl : public CreatureScript
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
if (instance)
instance->SetData(TYPE_NORTHREND_BEASTS, ICEHOWL_IN_PROGRESS);
}
- void SpellHitTarget(Unit* target, SpellInfo const* spell)
+ void SpellHitTarget(Unit* target, SpellInfo const* spell) OVERRIDE
{
if (spell->Id == SPELL_TRAMPLE && target->GetTypeId() == TYPEID_PLAYER)
{
@@ -972,7 +972,7 @@ class boss_icehowl : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -1089,9 +1089,9 @@ class boss_icehowl : public CreatureScript
Map::PlayerList const &lPlayers = me->GetMap()->GetPlayers();
for (Map::PlayerList::const_iterator itr = lPlayers.begin(); itr != lPlayers.end(); ++itr)
{
- if (Unit* player = itr->getSource())
+ if (Unit* player = itr->GetSource())
{
- if (player->isAlive() && player->IsWithinDistInMap(me, 6.0f))
+ if (player->IsAlive() && player->IsWithinDistInMap(me, 6.0f))
{
DoCastAOE(SPELL_TRAMPLE);
events.ScheduleEvent(EVENT_TRAMPLE, 4*IN_MILLISECONDS);
@@ -1117,8 +1117,8 @@ class boss_icehowl : public CreatureScript
SetCombatMovement(true);
me->GetMotionMaster()->MovementExpired();
me->GetMotionMaster()->Clear();
- me->GetMotionMaster()->MoveChase(me->getVictim());
- AttackStart(me->getVictim());
+ me->GetMotionMaster()->MoveChase(me->GetVictim());
+ AttackStart(me->GetVictim());
events.ScheduleEvent(EVENT_MASSIVE_CRASH, 40*IN_MILLISECONDS);
events.ScheduleEvent(EVENT_ARCTIC_BREATH, urand(15*IN_MILLISECONDS, 25*IN_MILLISECONDS));
_stage = 0;
@@ -1138,7 +1138,7 @@ class boss_icehowl : public CreatureScript
Unit* _target;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_icehowlAI(creature);
}
@@ -1147,13 +1147,13 @@ class boss_icehowl : public CreatureScript
void AddSC_boss_northrend_beasts()
{
new boss_gormok();
- new mob_snobold_vassal();
+ new npc_snobold_vassal();
new npc_firebomb();
new spell_gormok_fire_bomb();
new boss_acidmaw();
new boss_dreadscale();
- new mob_slime_pool();
+ new npc_slime_pool();
new boss_icehowl();
}
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
index b41e986741b..eb36c35d895 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
@@ -145,7 +145,7 @@ struct boss_twin_baseAI : public BossAI
{
}
- void Reset()
+ void Reset() OVERRIDE
{
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
me->SetReactState(REACT_PASSIVE);
@@ -163,7 +163,7 @@ struct boss_twin_baseAI : public BossAI
summons.DespawnAll();
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
if (instance)
instance->SetBossState(BOSS_VALKIRIES, FAIL);
@@ -172,7 +172,7 @@ struct boss_twin_baseAI : public BossAI
me->DespawnOrUnsummon();
}
- void MovementInform(uint32 uiType, uint32 uiId)
+ void MovementInform(uint32 uiType, uint32 uiId) OVERRIDE
{
if (uiType != POINT_MOTION_TYPE)
return;
@@ -188,7 +188,7 @@ struct boss_twin_baseAI : public BossAI
}
}
- void KilledUnit(Unit* who)
+ void KilledUnit(Unit* who) OVERRIDE
{
if (who->GetTypeId() == TYPEID_PLAYER)
{
@@ -198,12 +198,12 @@ struct boss_twin_baseAI : public BossAI
}
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
summons.Summon(summoned);
}
- void SummonedCreatureDespawn(Creature* summoned)
+ void SummonedCreatureDespawn(Creature* summoned) OVERRIDE
{
switch (summoned->GetEntry())
{
@@ -224,14 +224,14 @@ struct boss_twin_baseAI : public BossAI
summons.Despawn(summoned);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
if (instance)
{
if (Creature* pSister = GetSister())
{
- if (!pSister->isAlive())
+ if (!pSister->IsAlive())
{
me->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
pSister->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
@@ -253,7 +253,7 @@ struct boss_twin_baseAI : public BossAI
return Unit::GetCreature((*me), instance->GetData64(SisterNpcId));
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
me->SetInCombatWithZone();
if (instance)
@@ -270,7 +270,7 @@ struct boss_twin_baseAI : public BossAI
DoCast(me, SurgeSpellId);
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -292,7 +292,7 @@ struct boss_twin_baseAI : public BossAI
me->UpdateDamagePhysical(mode ? OFF_ATTACK : BASE_ATTACK);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!instance || !UpdateVictim())
return;
@@ -403,7 +403,7 @@ class boss_fjola : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
SetEquipmentSlots(false, EQUIP_MAIN_1, EQUIP_UNEQUIP, EQUIP_NO_CHANGE);
Stage = 0;
@@ -425,7 +425,7 @@ class boss_fjola : public CreatureScript
boss_twin_baseAI::Reset();
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (instance)
instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, EVENT_START_TWINS_FIGHT);
@@ -434,13 +434,13 @@ class boss_fjola : public CreatureScript
boss_twin_baseAI::EnterCombat(who);
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
boss_twin_baseAI::EnterEvadeMode();
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
if (instance)
instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
@@ -449,7 +449,7 @@ class boss_fjola : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_fjolaAI(creature);
}
@@ -464,7 +464,7 @@ class boss_eydis : public CreatureScript
{
boss_eydisAI(Creature* creature) : boss_twin_baseAI(creature) {}
- void Reset()
+ void Reset() OVERRIDE
{
SetEquipmentSlots(false, EQUIP_MAIN_2, EQUIP_UNEQUIP, EQUIP_NO_CHANGE);
Stage = 1;
@@ -484,22 +484,22 @@ class boss_eydis : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_eydisAI(creature);
}
};
-class mob_essence_of_twin : public CreatureScript
+class npc_essence_of_twin : public CreatureScript
{
public:
- mob_essence_of_twin() : CreatureScript("mob_essence_of_twin") { }
+ npc_essence_of_twin() : CreatureScript("npc_essence_of_twin") { }
- struct mob_essence_of_twinAI : public ScriptedAI
+ struct npc_essence_of_twinAI : public ScriptedAI
{
- mob_essence_of_twinAI(Creature* creature) : ScriptedAI(creature) { }
+ npc_essence_of_twinAI(Creature* creature) : ScriptedAI(creature) { }
- uint32 GetData(uint32 data) const
+ uint32 GetData(uint32 data) const OVERRIDE
{
uint32 spellReturned = 0;
switch (me->GetEntry())
@@ -518,12 +518,12 @@ class mob_essence_of_twin : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_essence_of_twinAI(creature);
+ return new npc_essence_of_twinAI(creature);
};
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
player->RemoveAurasDueToSpell(creature->GetAI()->GetData(ESSENCE_REMOVE));
player->CastSpell(player, creature->GetAI()->GetData(ESSENCE_APPLY), true);
@@ -532,9 +532,9 @@ class mob_essence_of_twin : public CreatureScript
}
};
-struct mob_unleashed_ballAI : public ScriptedAI
+struct npc_unleashed_ballAI : public ScriptedAI
{
- mob_unleashed_ballAI(Creature* creature) : ScriptedAI(creature)
+ npc_unleashed_ballAI(Creature* creature) : ScriptedAI(creature)
{
}
@@ -552,7 +552,7 @@ struct mob_unleashed_ballAI : public ScriptedAI
me->GetMotionMaster()->MovePoint(0, x, y, me->GetPositionZ());
}
- void Reset()
+ void Reset() OVERRIDE
{
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
me->SetReactState(REACT_PASSIVE);
@@ -563,7 +563,7 @@ struct mob_unleashed_ballAI : public ScriptedAI
RangeCheckTimer = 0.5*IN_MILLISECONDS;
}
- void MovementInform(uint32 uiType, uint32 uiId)
+ void MovementInform(uint32 uiType, uint32 uiId) OVERRIDE
{
if (uiType != POINT_MOTION_TYPE)
return;
@@ -585,16 +585,16 @@ struct mob_unleashed_ballAI : public ScriptedAI
uint32 RangeCheckTimer;
};
-class mob_unleashed_dark : public CreatureScript
+class npc_unleashed_dark : public CreatureScript
{
public:
- mob_unleashed_dark() : CreatureScript("mob_unleashed_dark") { }
+ npc_unleashed_dark() : CreatureScript("npc_unleashed_dark") { }
- struct mob_unleashed_darkAI : public mob_unleashed_ballAI
+ struct npc_unleashed_darkAI : public npc_unleashed_ballAI
{
- mob_unleashed_darkAI(Creature* creature) : mob_unleashed_ballAI(creature) {}
+ npc_unleashed_darkAI(Creature* creature) : npc_unleashed_ballAI(creature) {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (RangeCheckTimer < diff)
{
@@ -611,22 +611,22 @@ class mob_unleashed_dark : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_unleashed_darkAI(creature);
+ return new npc_unleashed_darkAI(creature);
}
};
-class mob_unleashed_light : public CreatureScript
+class npc_unleashed_light : public CreatureScript
{
public:
- mob_unleashed_light() : CreatureScript("mob_unleashed_light") { }
+ npc_unleashed_light() : CreatureScript("npc_unleashed_light") { }
- struct mob_unleashed_lightAI : public mob_unleashed_ballAI
+ struct npc_unleashed_lightAI : public npc_unleashed_ballAI
{
- mob_unleashed_lightAI(Creature* creature) : mob_unleashed_ballAI(creature) {}
+ npc_unleashed_lightAI(Creature* creature) : npc_unleashed_ballAI(creature) {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (RangeCheckTimer < diff)
{
@@ -643,38 +643,38 @@ class mob_unleashed_light : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_unleashed_lightAI(creature);
+ return new npc_unleashed_lightAI(creature);
}
};
-class mob_bullet_controller : public CreatureScript
+class npc_bullet_controller : public CreatureScript
{
public:
- mob_bullet_controller() : CreatureScript("mob_bullet_controller") { }
+ npc_bullet_controller() : CreatureScript("npc_bullet_controller") { }
- struct mob_bullet_controllerAI : public ScriptedAI
+ struct npc_bullet_controllerAI : public ScriptedAI
{
- mob_bullet_controllerAI(Creature* creature) : ScriptedAI(creature)
+ npc_bullet_controllerAI(Creature* creature) : ScriptedAI(creature)
{
SetCombatMovement(false);
}
- void Reset()
+ void Reset() OVERRIDE
{
DoCastAOE(SPELL_CONTROLLER_PERIODIC);
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
UpdateVictim();
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_bullet_controllerAI(creature);
+ return new npc_bullet_controllerAI(creature);
}
};
@@ -691,7 +691,7 @@ class spell_powering_up : public SpellScriptLoader
uint32 spellId;
uint32 poweringUp;
- bool Load()
+ bool Load() OVERRIDE
{
spellId = sSpellMgr->GetSpellIdForDifficulty(SPELL_SURGE_OF_SPEED, GetCaster());
if (!sSpellMgr->GetSpellInfo(spellId))
@@ -724,13 +724,13 @@ class spell_powering_up : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_powering_up_SpellScript::HandleScriptEffect, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_powering_up_SpellScript();
}
@@ -747,7 +747,7 @@ class spell_valkyr_essences : public SpellScriptLoader
uint32 spellId;
- bool Load()
+ bool Load() OVERRIDE
{
spellId = sSpellMgr->GetSpellIdForDifficulty(SPELL_SURGE_OF_SPEED, GetCaster());
if (!sSpellMgr->GetSpellInfo(spellId))
@@ -819,13 +819,13 @@ class spell_valkyr_essences : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectAbsorb += AuraEffectAbsorbFn(spell_valkyr_essences_AuraScript::Absorb, EFFECT_0);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_valkyr_essences_AuraScript();
}
@@ -840,7 +840,7 @@ class spell_power_of_the_twins : public SpellScriptLoader
{
PrepareAuraScript(spell_power_of_the_twins_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_UNIT;
}
@@ -863,7 +863,7 @@ class spell_power_of_the_twins : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectApply += AuraEffectApplyFn(spell_power_of_the_twins_AuraScript::HandleEffectApply, EFFECT_0, SPELL_AURA_MOD_DAMAGE_PERCENT_DONE, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_power_of_the_twins_AuraScript::HandleEffectRemove, EFFECT_0, SPELL_AURA_MOD_DAMAGE_PERCENT_DONE, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
@@ -871,7 +871,7 @@ class spell_power_of_the_twins : public SpellScriptLoader
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_power_of_the_twins_AuraScript();
}
@@ -881,10 +881,10 @@ void AddSC_boss_twin_valkyr()
{
new boss_fjola();
new boss_eydis();
- new mob_unleashed_light();
- new mob_unleashed_dark();
- new mob_essence_of_twin();
- new mob_bullet_controller();
+ new npc_unleashed_light();
+ new npc_unleashed_dark();
+ new npc_essence_of_twin();
+ new npc_bullet_controller();
new spell_powering_up();
new spell_valkyr_essences();
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp
index 1f461c8c285..6011b457a1c 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp
@@ -286,7 +286,7 @@ class instance_trial_of_the_crusader : public InstanceMapScript
state = DONE;
break;
case DONE:
- if (instance->GetPlayers().getFirst()->getSource()->GetTeam() == ALLIANCE)
+ if (instance->GetPlayers().getFirst()->GetSource()->GetTeam() == ALLIANCE)
EventStage = 4020;
else
EventStage = 4030;
@@ -375,7 +375,7 @@ class instance_trial_of_the_crusader : public InstanceMapScript
// decrease attempt counter at wipe
Map::PlayerList const &PlayerList = instance->GetPlayers();
for (Map::PlayerList::const_iterator itr = PlayerList.begin(); itr != PlayerList.end(); ++itr)
- if (Player* player = itr->getSource())
+ if (Player* player = itr->GetSource())
player->SendUpdateWorldState(UPDATE_STATE_UI_COUNT, TrialCounter);
// if theres no more attemps allowed
@@ -403,7 +403,7 @@ class instance_trial_of_the_crusader : public InstanceMapScript
return true;
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
switch (type)
{
@@ -472,7 +472,7 @@ class instance_trial_of_the_crusader : public InstanceMapScript
}
}
- uint64 GetData64(uint32 type) const
+ uint64 GetData64(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -523,7 +523,7 @@ class instance_trial_of_the_crusader : public InstanceMapScript
return 0;
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -774,7 +774,7 @@ class instance_trial_of_the_crusader : public InstanceMapScript
bool TributeToImmortalityEligible;
};
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_trial_of_the_crusader_InstanceMapScript(map);
}
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp
index a68ea1025d5..fdf39519409 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp
@@ -25,7 +25,7 @@
#include "trial_of_the_crusader.h"
#include "Player.h"
-enum eYells
+enum Yells
{
// Highlord Tirion Fordring - 34996
SAY_STAGE_0_01 = 0,
@@ -83,7 +83,7 @@ enum eYells
struct _Messages
{
- eAnnouncerMessages msgnum;
+ AnnouncerMessages msgnum;
uint32 id;
bool state;
uint32 encounter;
@@ -99,7 +99,7 @@ static _Messages _GossipMessage[]=
{MSG_ANUBARAK, GOSSIP_ACTION_INFO_DEF + 6, true, BOSS_ANUBARAK}
};
-enum
+enum Messages
{
NUM_MESSAGES = 6
};
@@ -115,7 +115,7 @@ class npc_announcer_toc10 : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
if (Creature* pAlly = GetClosestCreatureWithEntry(me, NPC_THRALL, 300.0f))
@@ -124,10 +124,10 @@ class npc_announcer_toc10 : public CreatureScript
pAlly->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
}
- void AttackStart(Unit* /*who*/) {}
+ void AttackStart(Unit* /*who*/) OVERRIDE {}
};
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
InstanceScript* instance = creature->GetInstanceScript();
if (!instance)
@@ -135,7 +135,7 @@ class npc_announcer_toc10 : public CreatureScript
char const* _message = "We are ready!";
- if (player->isInCombat() || instance->IsEncounterInProgress() || instance->GetData(TYPE_EVENT))
+ if (player->IsInCombat() || instance->IsEncounterInProgress() || instance->GetData(TYPE_EVENT))
return true;
uint8 i = 0;
@@ -149,11 +149,14 @@ class npc_announcer_toc10 : public CreatureScript
}
}
+ if (i >= NUM_MESSAGES)
+ return false;
+
player->SEND_GOSSIP_MENU(_GossipMessage[i].msgnum, creature->GetGUID());
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 /*action*/)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 /*action*/) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
player->CLOSE_GOSSIP_MENU();
@@ -205,7 +208,7 @@ class npc_announcer_toc10 : public CreatureScript
creature->CastSpell(creature, SPELL_DESTROY_FLOOR_KNOCKUP, false);
Creature* anubArak = Unit::GetCreature(*creature, instance->GetData64(NPC_ANUBARAK));
- if (!anubArak || !anubArak->isAlive())
+ if (!anubArak || !anubArak->IsAlive())
anubArak = creature->SummonCreature(NPC_ANUBARAK, AnubarakLoc[0].GetPositionX(), AnubarakLoc[0].GetPositionY(), AnubarakLoc[0].GetPositionZ(), 3, TEMPSUMMON_CORPSE_TIMED_DESPAWN, DESPAWN_TIME);
instance->SetBossState(BOSS_ANUBARAK, NOT_STARTED);
@@ -217,7 +220,7 @@ class npc_announcer_toc10 : public CreatureScript
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_announcer_toc10AI(creature);
}
@@ -235,7 +238,7 @@ class boss_lich_king_toc : public CreatureScript
_instance = creature->GetInstanceScript();
}
- void Reset()
+ void Reset() OVERRIDE
{
_updateTimer = 0;
me->SetReactState(REACT_PASSIVE);
@@ -249,7 +252,7 @@ class boss_lich_king_toc : public CreatureScript
me->SetWalk(true);
}
- void MovementInform(uint32 uiType, uint32 uiId)
+ void MovementInform(uint32 uiType, uint32 uiId) OVERRIDE
{
if (uiType != POINT_MOTION_TYPE || !_instance)
return;
@@ -267,7 +270,7 @@ class boss_lich_king_toc : public CreatureScript
}
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (!_instance)
return;
@@ -315,7 +318,8 @@ class boss_lich_king_toc : public CreatureScript
_instance->SetData(TYPE_EVENT, 5080);
break;
case 5080:
- if (GameObject* go = _instance->instance->GetGameObject(_instance->GetData64(GO_ARGENT_COLISEUM_FLOOR)))
+ {
+ if (GameObject* go = GameObject::GetGameObject(*me, _instance->GetData64(GO_ARGENT_COLISEUM_FLOOR)))
{
go->SetDisplayId(DISPLAYID_DESTROYED_FLOOR);
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED | GO_FLAG_NODESPAWN);
@@ -325,18 +329,17 @@ class boss_lich_king_toc : public CreatureScript
me->CastSpell(me, SPELL_CORPSE_TELEPORT, false);
me->CastSpell(me, SPELL_DESTROY_FLOOR_KNOCKUP, false);
- if (_instance)
- {
- _instance->SetBossState(BOSS_LICH_KING, DONE);
- Creature* temp = Unit::GetCreature(*me, _instance->GetData64(NPC_ANUBARAK));
- if (!temp || !temp->isAlive())
- temp = me->SummonCreature(NPC_ANUBARAK, AnubarakLoc[0].GetPositionX(), AnubarakLoc[0].GetPositionY(), AnubarakLoc[0].GetPositionZ(), 3, TEMPSUMMON_CORPSE_TIMED_DESPAWN, DESPAWN_TIME);
+ _instance->SetBossState(BOSS_LICH_KING, DONE);
+ Creature* temp = Unit::GetCreature(*me, _instance->GetData64(NPC_ANUBARAK));
+ if (!temp || !temp->IsAlive())
+ temp = me->SummonCreature(NPC_ANUBARAK, AnubarakLoc[0].GetPositionX(), AnubarakLoc[0].GetPositionY(), AnubarakLoc[0].GetPositionZ(), 3, TEMPSUMMON_CORPSE_TIMED_DESPAWN, DESPAWN_TIME);
+
+ _instance->SetData(TYPE_EVENT, 0);
- _instance->SetData(TYPE_EVENT, 0);
- }
me->DespawnOrUnsummon();
_updateTimer = 20*IN_MILLISECONDS;
break;
+ }
default:
break;
}
@@ -352,7 +355,7 @@ class boss_lich_king_toc : public CreatureScript
uint32 _updateTimer;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_lich_king_tocAI(creature);
}
@@ -370,7 +373,7 @@ class npc_fizzlebang_toc : public CreatureScript
_instance = me->GetInstanceScript();
}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
Talk(SAY_STAGE_1_06, killer->GetGUID());
_instance->SetData(TYPE_EVENT, 1180);
@@ -382,14 +385,14 @@ class npc_fizzlebang_toc : public CreatureScript
}
}
- void Reset()
+ void Reset() OVERRIDE
{
me->SetWalk(true);
_portalGUID = 0;
me->GetMotionMaster()->MovePoint(1, ToCCommonLoc[10].GetPositionX(), ToCCommonLoc[10].GetPositionY()-60, ToCCommonLoc[10].GetPositionZ());
}
- void MovementInform(uint32 uiType, uint32 uiId)
+ void MovementInform(uint32 uiType, uint32 uiId) OVERRIDE
{
if (uiType != POINT_MOTION_TYPE)
return;
@@ -410,12 +413,12 @@ class npc_fizzlebang_toc : public CreatureScript
}
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
_summons.Summon(summoned);
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (!_instance)
return;
@@ -526,7 +529,7 @@ class npc_fizzlebang_toc : public CreatureScript
uint64 _triggerGUID;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_fizzlebang_tocAI(creature);
}
@@ -544,11 +547,11 @@ class npc_tirion_toc : public CreatureScript
_instance = me->GetInstanceScript();
}
- void Reset() {}
+ void Reset() OVERRIDE {}
- void AttackStart(Unit* /*who*/) {}
+ void AttackStart(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (!_instance)
return;
@@ -814,7 +817,7 @@ class npc_tirion_toc : public CreatureScript
uint32 _updateTimer;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_tirion_tocAI(creature);
}
@@ -832,11 +835,11 @@ class npc_garrosh_toc : public CreatureScript
_instance = me->GetInstanceScript();
}
- void Reset() {}
+ void Reset() OVERRIDE {}
- void AttackStart(Unit* /*who*/) {}
+ void AttackStart(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (!_instance)
return;
@@ -898,7 +901,7 @@ class npc_garrosh_toc : public CreatureScript
uint32 _updateTimer;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_garrosh_tocAI(creature);
}
@@ -916,11 +919,11 @@ class npc_varian_toc : public CreatureScript
_instance = me->GetInstanceScript();
}
- void Reset() {}
+ void Reset() OVERRIDE {}
- void AttackStart(Unit* /*who*/) {}
+ void AttackStart(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (!_instance)
return;
@@ -982,7 +985,7 @@ class npc_varian_toc : public CreatureScript
uint32 _updateTimer;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_varian_tocAI(creature);
}
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h
index f42c985d3e5..17e4f2869c6 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h
@@ -5,7 +5,7 @@
#ifndef DEF_CRUSADER_H
#define DEF_CRUSADER_H
-enum
+enum DataTypes
{
BOSS_BEASTS = 0,
BOSS_JARAXXUS = 1,
@@ -28,12 +28,18 @@ enum
INCREASE = 501,
DECREASE = 502,
+};
+enum SpellIds
+{
SPELL_WILFRED_PORTAL = 68424,
SPELL_JARAXXUS_CHAINS = 67924,
SPELL_CORPSE_TELEPORT = 69016,
SPELL_DESTROY_FLOOR_KNOCKUP = 68193,
+};
+enum MiscData
+{
DESPAWN_TIME = 300000,
DISPLAYID_DESTROYED_FLOOR = 9060
@@ -140,13 +146,13 @@ const Position EndSpawnLoc[]=
{644.6250f, 149.2743f, 140.6015f, 0} // 2 - Portal to Dalaran
};
-enum euiWorldStates
+enum WorldStateIds
{
UPDATE_STATE_UI_SHOW = 4390,
UPDATE_STATE_UI_COUNT = 4389
};
-enum eNorthrendBeasts
+enum NorthrendBeasts
{
GORMOK_IN_PROGRESS = 1000,
GORMOK_DONE = 1001,
@@ -159,7 +165,7 @@ enum eNorthrendBeasts
ICEHOWL_DONE = 3001
};
-enum eAnnouncerMessages
+enum AnnouncerMessages
{
MSG_BEASTS = 724001,
MSG_JARAXXUS = 724002,
@@ -169,7 +175,7 @@ enum eAnnouncerMessages
MSG_ANUBARAK = 724006
};
-enum eCreature
+enum CreatureIds
{
NPC_BARRENT = 34816,
NPC_TIRION = 34996,
@@ -234,7 +240,7 @@ enum eCreature
NPC_ANUBARAK = 34564
};
-enum eGameObject
+enum GameObjectIds
{
GO_CRUSADERS_CACHE_10 = 195631,
GO_CRUSADERS_CACHE_25 = 195632,
@@ -260,7 +266,7 @@ enum eGameObject
GO_PORTAL_TO_DALARAN = 195682
};
-enum eAchievementData
+enum AchievementData
{
// Northrend Beasts
UPPER_BACK_PAIN_10_PLAYER = 11779,
diff --git a/src/server/scripts/Northrend/DraktharonKeep/boss_dred.cpp b/src/server/scripts/Northrend/DraktharonKeep/boss_dred.cpp
deleted file mode 100644
index 923f8a23d6f..00000000000
--- a/src/server/scripts/Northrend/DraktharonKeep/boss_dred.cpp
+++ /dev/null
@@ -1,304 +0,0 @@
-/*
- * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/*
- * Comment: MAYBE need more improve the "Raptor Call".
- */
-
-#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "drak_tharon_keep.h"
-
-enum Spells
-{
- SPELL_BELLOWING_ROAR = 22686, // fears the group, can be resisted/dispelled
- SPELL_GRIEVOUS_BITE = 48920,
- SPELL_MANGLING_SLASH = 48873, //casted on the current tank, adds debuf
- SPELL_FEARSOME_ROAR = 48849,
- H_SPELL_FEARSOME_ROAR = 59422, //Not stacking, debuff
- SPELL_PIERCING_SLASH = 48878, //debuff -->Armor reduced by 75%
- SPELL_RAPTOR_CALL = 59416, //dummy
- SPELL_GUT_RIP = 49710,
- SPELL_REND = 13738
-};
-
-enum Creatures
-{
- NPC_RAPTOR_1 = 26641,
- NPC_RAPTOR_2 = 26628
-};
-
-#define ACTION_RAPTOR_KILLED 1
-#define DATA_KING_DRED 2
-
-class boss_dred : public CreatureScript
-{
- public:
- boss_dred() : CreatureScript("boss_dred") { }
-
- struct boss_dredAI : public ScriptedAI
- {
- boss_dredAI(Creature* creature) : ScriptedAI(creature)
- {
- instance = me->GetInstanceScript();
- }
-
- uint32 uiBellowingRoarTimer;
- uint32 uiGrievousBiteTimer;
- uint32 uiManglingSlashTimer;
- uint32 uiFearsomeRoarTimer;
- uint32 uiPiercingSlashTimer;
- uint32 uiRaptorCallTimer;
- uint8 raptorsKilled;
-
- InstanceScript* instance;
-
- void Reset()
- {
- if (instance)
- instance->SetData(DATA_DRED_EVENT, NOT_STARTED);
-
- uiBellowingRoarTimer = 33000;
- uiGrievousBiteTimer = 20000;
- uiManglingSlashTimer = 18500;
- uiFearsomeRoarTimer = urand(10000, 20000);
- uiPiercingSlashTimer = 17000;
- uiRaptorCallTimer = urand(20000, 25000);
- }
-
- void EnterCombat(Unit* /*who*/)
- {
- if (instance)
- instance->SetData(DATA_DRED_EVENT, IN_PROGRESS);
- }
-
- void UpdateAI(uint32 diff)
- {
- if (!UpdateVictim())
- return;
-
- if (uiBellowingRoarTimer <= diff)
- {
- DoCastAOE(SPELL_BELLOWING_ROAR, false);
- uiBellowingRoarTimer = 40000;
- }
- else
- uiBellowingRoarTimer -=diff;
-
- if (uiGrievousBiteTimer <= diff)
- {
- DoCastVictim(SPELL_GRIEVOUS_BITE, false);
- uiGrievousBiteTimer = 20000;
- }
- else
- uiGrievousBiteTimer -= diff;
-
- if (uiManglingSlashTimer <= diff)
- {
- DoCastVictim(SPELL_MANGLING_SLASH, false);
- uiManglingSlashTimer = 20000;
- }
- else
- uiManglingSlashTimer -= diff;
-
- if (uiFearsomeRoarTimer <= diff)
- {
- DoCastAOE(SPELL_FEARSOME_ROAR, false);
- uiFearsomeRoarTimer = urand(16000, 18000);
- }
- else
- uiFearsomeRoarTimer -= diff;
-
- if (uiPiercingSlashTimer <= diff)
- {
- DoCastVictim(SPELL_PIERCING_SLASH, false);
- uiPiercingSlashTimer = 20000;
- }
- else
- uiPiercingSlashTimer -= diff;
-
- if (uiRaptorCallTimer <= diff)
- {
- DoCastVictim(SPELL_RAPTOR_CALL, false);
-
- float x, y, z;
-
- me->GetClosePoint(x, y, z, me->GetObjectSize() / 3, 10.0f);
- me->SummonCreature(RAND(NPC_RAPTOR_1, NPC_RAPTOR_2), x, y, z, 0, TEMPSUMMON_DEAD_DESPAWN, 1000);
-
- uiRaptorCallTimer = urand(20000, 25000);
- }
- else
- uiRaptorCallTimer -= diff;
-
- DoMeleeAttackIfReady();
- }
-
- void DoAction(int32 action)
- {
- if (action == ACTION_RAPTOR_KILLED)
- ++raptorsKilled;
- }
-
- uint32 GetData(uint32 type) const
- {
- if (type == DATA_KING_DRED)
- return raptorsKilled;
-
- return 0;
- }
-
- void JustDied(Unit* /*killer*/)
- {
- if (instance)
- instance->SetData(DATA_DRED_EVENT, DONE);
- }
- };
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new boss_dredAI(creature);
- }
-};
-
-class npc_drakkari_gutripper : public CreatureScript
-{
- public:
- npc_drakkari_gutripper() : CreatureScript("npc_drakkari_gutripper") { }
-
- struct npc_drakkari_gutripperAI : public ScriptedAI
- {
- npc_drakkari_gutripperAI(Creature* creature) : ScriptedAI(creature)
- {
- instance = me->GetInstanceScript();
- }
-
- InstanceScript* instance;
-
- uint32 GutRipTimer;
-
- void Reset()
- {
- GutRipTimer = urand(10000, 15000);
- }
-
- void UpdateAI(uint32 diff)
- {
- if (!UpdateVictim())
- return;
-
- if (GutRipTimer <= diff)
- {
- DoCastVictim(SPELL_GUT_RIP, false);
- GutRipTimer = urand(10000, 15000);
- }
- else
- GutRipTimer -= diff;
-
- DoMeleeAttackIfReady();
- }
-
- void JustDied(Unit* /*killer*/)
- {
- if (Creature* Dred = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DRED)))
- Dred->AI()->DoAction(ACTION_RAPTOR_KILLED);
- }
- };
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new npc_drakkari_gutripperAI(creature);
- }
-};
-
-class npc_drakkari_scytheclaw : public CreatureScript
-{
- public:
- npc_drakkari_scytheclaw() : CreatureScript("npc_drakkari_scytheclaw") { }
-
- struct npc_drakkari_scytheclawAI : public ScriptedAI
- {
- npc_drakkari_scytheclawAI(Creature* creature) : ScriptedAI(creature)
- {
- instance = me->GetInstanceScript();
- }
-
- InstanceScript* instance;
-
- uint32 uiRendTimer;
-
- void Reset()
- {
- uiRendTimer = urand(10000, 15000);
- }
-
- void UpdateAI(uint32 diff)
- {
- if (!UpdateVictim())
- return;
-
- if (uiRendTimer <= diff)
- {
- DoCastVictim(SPELL_REND, false);
- uiRendTimer = urand(10000, 15000);
- }
- else
- uiRendTimer -= diff;
-
- DoMeleeAttackIfReady();
- }
-
- void JustDied(Unit* /*killer*/)
- {
- if (Creature* Dred = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DRED)))
- Dred->AI()->DoAction(ACTION_RAPTOR_KILLED);
- }
- };
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new npc_drakkari_scytheclawAI(creature);
- }
-};
-
-class achievement_king_dred : public AchievementCriteriaScript
-{
- public:
- achievement_king_dred() : AchievementCriteriaScript("achievement_king_dred")
- {
- }
-
- bool OnCheck(Player* /*player*/, Unit* target)
- {
- if (!target)
- return false;
-
- if (Creature* Dred = target->ToCreature())
- if (Dred->AI()->GetData(DATA_KING_DRED) >= 6)
- return true;
-
- return false;
- }
-};
-
-void AddSC_boss_dred()
-{
- new boss_dred;
- new npc_drakkari_gutripper;
- new npc_drakkari_scytheclaw;
- new achievement_king_dred();
-}
diff --git a/src/server/scripts/Northrend/DraktharonKeep/boss_king_dred.cpp b/src/server/scripts/Northrend/DraktharonKeep/boss_king_dred.cpp
new file mode 100644
index 00000000000..f8f0752184e
--- /dev/null
+++ b/src/server/scripts/Northrend/DraktharonKeep/boss_king_dred.cpp
@@ -0,0 +1,286 @@
+/*
+ * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * Comment: MAYBE need more improve the "Raptor Call".
+ */
+
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "drak_tharon_keep.h"
+
+enum Spells
+{
+ SPELL_BELLOWING_ROAR = 22686, // fears the group, can be resisted/dispelled
+ SPELL_GRIEVOUS_BITE = 48920,
+ SPELL_MANGLING_SLASH = 48873, // casted on the current tank, adds debuf
+ SPELL_FEARSOME_ROAR = 48849,
+ SPELL_PIERCING_SLASH = 48878, // debuff --> Armor reduced by 75%
+ SPELL_RAPTOR_CALL = 59416, // dummy
+ SPELL_GUT_RIP = 49710,
+ SPELL_REND = 13738
+};
+
+enum Misc
+{
+ ACTION_RAPTOR_KILLED = 1,
+ DATA_RAPTORS_KILLED = 2
+};
+
+enum Events
+{
+ EVENT_BELLOWING_ROAR = 1,
+ EVENT_GRIEVOUS_BITE,
+ EVENT_MANGLING_SLASH,
+ EVENT_FEARSOME_ROAR,
+ EVENT_PIERCING_SLASH,
+ EVENT_RAPTOR_CALL
+};
+
+class boss_king_dred : public CreatureScript
+{
+ public:
+ boss_king_dred() : CreatureScript("boss_king_dred") { }
+
+ struct boss_king_dredAI : public BossAI
+ {
+ boss_king_dredAI(Creature* creature) : BossAI(creature, DATA_KING_DRED) { }
+
+ void Reset() OVERRIDE
+ {
+ _Reset();
+ }
+
+ void EnterCombat(Unit* /*who*/) OVERRIDE
+ {
+ _EnterCombat();
+
+ events.ScheduleEvent(EVENT_BELLOWING_ROAR, 33000);
+ events.ScheduleEvent(EVENT_GRIEVOUS_BITE, 20000);
+ events.ScheduleEvent(EVENT_MANGLING_SLASH, 18500);
+ events.ScheduleEvent(EVENT_FEARSOME_ROAR, urand(10000, 20000));
+ events.ScheduleEvent(EVENT_PIERCING_SLASH, 17000);
+ events.ScheduleEvent(EVENT_RAPTOR_CALL, urand(20000, 25000));
+ }
+
+ void DoAction(int32 action) OVERRIDE
+ {
+ if (action == ACTION_RAPTOR_KILLED)
+ ++raptorsKilled;
+ }
+
+ uint32 GetData(uint32 type) const OVERRIDE
+ {
+ if (type == DATA_RAPTORS_KILLED)
+ return raptorsKilled;
+
+ return 0;
+ }
+
+ void JustDied(Unit* /*killer*/) OVERRIDE
+ {
+ _JustDied();
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ if (!UpdateVictim())
+ return;
+
+ events.Update(diff);
+
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_BELLOWING_ROAR:
+ DoCastAOE(SPELL_BELLOWING_ROAR);
+ events.ScheduleEvent(EVENT_BELLOWING_ROAR, 33000);
+ break;
+ case EVENT_GRIEVOUS_BITE:
+ DoCastVictim(SPELL_GRIEVOUS_BITE);
+ events.ScheduleEvent(EVENT_GRIEVOUS_BITE, 20000);
+ break;
+ case EVENT_MANGLING_SLASH:
+ DoCastVictim(SPELL_MANGLING_SLASH);
+ events.ScheduleEvent(EVENT_MANGLING_SLASH, 18500);
+ break;
+ case EVENT_FEARSOME_ROAR:
+ DoCastAOE(SPELL_FEARSOME_ROAR);
+ events.ScheduleEvent(EVENT_FEARSOME_ROAR, urand(10000, 20000));
+ break;
+ case EVENT_PIERCING_SLASH:
+ DoCastVictim(SPELL_PIERCING_SLASH);
+ events.ScheduleEvent(EVENT_PIERCING_SLASH, 17000);
+ break;
+ case EVENT_RAPTOR_CALL:
+ DoCastVictim(SPELL_RAPTOR_CALL);
+
+ float x, y, z;
+
+ me->GetClosePoint(x, y, z, me->GetObjectSize() / 3, 10.0f);
+ me->SummonCreature(RAND(NPC_DRAKKARI_GUTRIPPER, NPC_DRAKKARI_SCYTHECLAW), x, y, z, 0, TEMPSUMMON_DEAD_DESPAWN, 1000);
+ events.ScheduleEvent(EVENT_RAPTOR_CALL, urand(20000, 25000));
+ break;
+ default:
+ break;
+ }
+ }
+
+ DoMeleeAttackIfReady();
+ }
+
+ private:
+ uint8 raptorsKilled;
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return GetDrakTharonKeepAI<boss_king_dredAI>(creature);
+ }
+};
+
+class npc_drakkari_gutripper : public CreatureScript
+{
+ public:
+ npc_drakkari_gutripper() : CreatureScript("npc_drakkari_gutripper") { }
+
+ struct npc_drakkari_gutripperAI : public ScriptedAI
+ {
+ npc_drakkari_gutripperAI(Creature* creature) : ScriptedAI(creature)
+ {
+ instance = me->GetInstanceScript();
+ }
+
+ InstanceScript* instance;
+
+ uint32 GutRipTimer;
+
+ void Reset() OVERRIDE
+ {
+ GutRipTimer = urand(10000, 15000);
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ if (!UpdateVictim())
+ return;
+
+ if (GutRipTimer <= diff)
+ {
+ DoCastVictim(SPELL_GUT_RIP, false);
+ GutRipTimer = urand(10000, 15000);
+ }
+ else
+ GutRipTimer -= diff;
+
+ DoMeleeAttackIfReady();
+ }
+
+ void JustDied(Unit* /*killer*/) OVERRIDE
+ {
+ if (Creature* Dred = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_KING_DRED)))
+ Dred->AI()->DoAction(ACTION_RAPTOR_KILLED);
+ }
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return GetDrakTharonKeepAI<npc_drakkari_gutripperAI>(creature);
+ }
+};
+
+class npc_drakkari_scytheclaw : public CreatureScript
+{
+ public:
+ npc_drakkari_scytheclaw() : CreatureScript("npc_drakkari_scytheclaw") { }
+
+ struct npc_drakkari_scytheclawAI : public ScriptedAI
+ {
+ npc_drakkari_scytheclawAI(Creature* creature) : ScriptedAI(creature)
+ {
+ instance = me->GetInstanceScript();
+ }
+
+ InstanceScript* instance;
+
+ uint32 uiRendTimer;
+
+ void Reset() OVERRIDE
+ {
+ uiRendTimer = urand(10000, 15000);
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ if (!UpdateVictim())
+ return;
+
+ if (uiRendTimer <= diff)
+ {
+ DoCastVictim(SPELL_REND, false);
+ uiRendTimer = urand(10000, 15000);
+ }
+ else
+ uiRendTimer -= diff;
+
+ DoMeleeAttackIfReady();
+ }
+
+ void JustDied(Unit* /*killer*/) OVERRIDE
+ {
+ if (Creature* Dred = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_KING_DRED)))
+ Dred->AI()->DoAction(ACTION_RAPTOR_KILLED);
+ }
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return GetDrakTharonKeepAI<npc_drakkari_scytheclawAI>(creature);
+ }
+};
+
+class achievement_king_dred : public AchievementCriteriaScript
+{
+ public:
+ achievement_king_dred() : AchievementCriteriaScript("achievement_king_dred")
+ {
+ }
+
+ bool OnCheck(Player* /*player*/, Unit* target) OVERRIDE
+ {
+ if (!target)
+ return false;
+
+ if (Creature* Dred = target->ToCreature())
+ if (Dred->AI()->GetData(DATA_RAPTORS_KILLED) >= 6)
+ return true;
+
+ return false;
+ }
+};
+
+void AddSC_boss_king_dred()
+{
+ new boss_king_dred();
+ new npc_drakkari_gutripper();
+ new npc_drakkari_scytheclaw();
+ new achievement_king_dred();
+}
diff --git a/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp b/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp
index 6eedfb357db..0160359f0f2 100644
--- a/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp
+++ b/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp
@@ -20,22 +20,14 @@
#include "ScriptedCreature.h"
#include "drak_tharon_keep.h"
-enum Misc
-{
- ACTION_RESET_CRYSTALS,
- ACTION_ACTIVATE_CRYSTAL,
- ACTION_DEACTIVATE,
- EVENT_ATTACK,
- EVENT_SUMMON_MINIONS,
- DATA_NOVOS_ACHIEV
-};
-
-enum Creatures
+enum Yells
{
- NPC_CRYSTAL_CHANNEL_TARGET = 26712,
- NPC_FETID_TROLL_CORPSE = 27597,
- NPC_RISEN_SHADOWCASTER = 27600,
- NPC_HULKING_CORPSE = 27597
+ SAY_AGGRO = 0,
+ SAY_KILL = 1,
+ SAY_DEATH = 2,
+ SAY_SUMMONING_ADDS = 3, // unused
+ SAY_ARCANE_FIELD = 4,
+ EMOTE_SUMMONING_ADDS = 5 // unused
};
enum Spells
@@ -47,6 +39,7 @@ enum Spells
SPELL_SUMMON_FETID_TROLL_CORPSE = 49103,
SPELL_SUMMON_HULKING_CORPSE = 49104,
SPELL_SUMMON_CRYSTAL_HANDLER = 49179,
+ SPELL_SUMMON_COPY_OF_MINIONS = 59933,
SPELL_ARCANE_BLAST = 49198,
SPELL_BLIZZARD = 49034,
@@ -55,6 +48,16 @@ enum Spells
SPELL_SUMMON_MINIONS = 59910
};
+enum Misc
+{
+ ACTION_RESET_CRYSTALS,
+ ACTION_ACTIVATE_CRYSTAL,
+ ACTION_DEACTIVATE,
+ EVENT_ATTACK,
+ EVENT_SUMMON_MINIONS,
+ DATA_NOVOS_ACHIEV
+};
+
struct SummonerInfo
{
uint32 data, spell, timer;
@@ -77,13 +80,11 @@ public:
struct boss_novosAI : public BossAI
{
- boss_novosAI(Creature* creature) : BossAI(creature, DATA_NOVOS_EVENT) {}
+ boss_novosAI(Creature* creature) : BossAI(creature, DATA_NOVOS) { }
- void Reset()
+ void Reset() OVERRIDE
{
- events.Reset();
- summons.DespawnAll();
- instance->SetData(DATA_NOVOS_EVENT, NOT_STARTED);
+ _Reset();
_ohNovos = true;
_crystalHandlerCount = 0;
@@ -92,18 +93,17 @@ public:
SetBubbled(false);
}
- void EnterCombat(Unit* /* victim */)
+ void EnterCombat(Unit* /* victim */) OVERRIDE
{
- me->setActive(true);
- DoZoneInCombat();
- instance->SetData(DATA_NOVOS_EVENT, IN_PROGRESS);
+ _EnterCombat();
+ Talk(SAY_AGGRO);
SetCrystalsStatus(true);
SetSummonerStatus(true);
SetBubbled(true);
}
- void AttackStart(Unit* target)
+ void AttackStart(Unit* target) OVERRIDE
{
if (!target)
return;
@@ -112,7 +112,19 @@ public:
DoStartNoMovement(target);
}
- void UpdateAI(uint32 diff)
+ void KilledUnit(Unit* who) OVERRIDE
+ {
+ if (who->GetTypeId() == TYPEID_PLAYER)
+ Talk(SAY_KILL);
+ }
+
+ void JustDied(Unit* /*killer*/) OVERRIDE
+ {
+ _JustDied();
+ Talk(SAY_DEATH);
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim() || _bubbled)
return;
@@ -141,13 +153,13 @@ public:
}
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
if (action == ACTION_CRYSTAL_HANDLER_DIED)
CrystalHandlerDied();
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
{
BossAI::MoveInLineOfSight(who);
@@ -159,12 +171,12 @@ public:
_ohNovos = false;
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
return type == DATA_NOVOS_ACHIEV && _ohNovos ? 1 : 0;
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
summons.Summon(summon);
}
@@ -215,9 +227,6 @@ public:
void SetCrystalStatus(GameObject* crystal, bool active)
{
- if (!crystal)
- return;
-
crystal->SetGoState(active ? GO_STATE_ACTIVE : GO_STATE_READY);
if (Creature* crystalChannelTarget = crystal->FindNearestCreature(NPC_CRYSTAL_CHANNEL_TARGET, 5.0f))
{
@@ -241,6 +250,7 @@ public:
if (++_crystalHandlerCount >= 4)
{
+ Talk(SAY_ARCANE_FIELD);
SetSummonerStatus(false);
SetBubbled(false);
events.ScheduleEvent(EVENT_ATTACK, 3000);
@@ -257,9 +267,9 @@ public:
bool _bubbled;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_novosAI(creature);
+ return GetDrakTharonKeepAI<boss_novosAI>(creature);
}
};
@@ -272,14 +282,14 @@ public:
{
npc_crystal_channel_targetAI(Creature* creature) : ScriptedAI(creature) {}
- void Reset()
+ void Reset() OVERRIDE
{
_spell = 0;
_timer = 0;
_temp = 0;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (_spell)
{
@@ -293,14 +303,14 @@ public:
}
}
- void SetData(uint32 id, uint32 value)
+ void SetData(uint32 id, uint32 value) OVERRIDE
{
_spell = id;
_timer = value;
_temp = value;
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
if (InstanceScript* instance = me->GetInstanceScript())
if (uint64 guid = instance->GetData64(DATA_NOVOS))
@@ -320,9 +330,9 @@ public:
uint32 _temp;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_crystal_channel_targetAI(creature);
+ return GetDrakTharonKeepAI<npc_crystal_channel_targetAI>(creature);
}
};
@@ -331,48 +341,50 @@ class achievement_oh_novos : public AchievementCriteriaScript
public:
achievement_oh_novos() : AchievementCriteriaScript("achievement_oh_novos") {}
- bool OnCheck(Player* /*player*/, Unit* target)
+ bool OnCheck(Player* /*player*/, Unit* target) OVERRIDE
{
return target && target->GetTypeId() == TYPEID_UNIT && target->ToCreature()->AI()->GetData(DATA_NOVOS_ACHIEV);
}
};
-enum SummonMinions
+class spell_novos_summon_minions : public SpellScriptLoader
{
- SPELL_COPY_OF_SUMMON_MINIONS = 59933
-};
+ public:
+ spell_novos_summon_minions() : SpellScriptLoader("spell_novos_summon_minions") { }
-class spell_summon_minions : public SpellScriptLoader
-{
-public:
- spell_summon_minions() : SpellScriptLoader("spell_summon_minions") { }
+ class spell_novos_summon_minions_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_novos_summon_minions_SpellScript);
- class spell_summon_minions_SpellScript : public SpellScript
- {
- PrepareSpellScript(spell_summon_minions_SpellScript);
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_SUMMON_COPY_OF_MINIONS))
+ return false;
+ return true;
+ }
- void HandleScript(SpellEffIndex /*effIndex*/)
- {
- GetCaster()->CastSpell((Unit*)NULL, SPELL_COPY_OF_SUMMON_MINIONS, true);
- GetCaster()->CastSpell((Unit*)NULL, SPELL_COPY_OF_SUMMON_MINIONS, true);
- }
+ void HandleScript(SpellEffIndex /*effIndex*/)
+ {
+ for (uint8 i = 0; i < 2; ++i)
+ GetCaster()->CastSpell((Unit*)NULL, SPELL_SUMMON_COPY_OF_MINIONS, true);
+ }
- void Register()
+ void Register() OVERRIDE
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_novos_summon_minions_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+ };
+
+ SpellScript* GetSpellScript() const OVERRIDE
{
- OnEffectHitTarget += SpellEffectFn(spell_summon_minions_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ return new spell_novos_summon_minions_SpellScript();
}
- };
-
- SpellScript* GetSpellScript() const
- {
- return new spell_summon_minions_SpellScript();
- }
};
void AddSC_boss_novos()
{
new boss_novos();
new npc_crystal_channel_target();
- new spell_summon_minions();
+ new spell_novos_summon_minions();
new achievement_oh_novos();
}
diff --git a/src/server/scripts/Northrend/DraktharonKeep/boss_tharon_ja.cpp b/src/server/scripts/Northrend/DraktharonKeep/boss_tharon_ja.cpp
index 0ca7ccd196a..e090f3db7c0 100644
--- a/src/server/scripts/Northrend/DraktharonKeep/boss_tharon_ja.cpp
+++ b/src/server/scripts/Northrend/DraktharonKeep/boss_tharon_ja.cpp
@@ -87,7 +87,7 @@ public:
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
uiPhaseTimer = 20*IN_MILLISECONDS;
uiCurseOfLifeTimer = 1*IN_MILLISECONDS;
@@ -95,19 +95,16 @@ public:
uiShadowVolleyTimer = urand(8*IN_MILLISECONDS, 10*IN_MILLISECONDS);
Phase = SKELETAL;
me->SetDisplayId(me->GetNativeDisplayId());
- if (instance)
- instance->SetData(DATA_THARON_JA_EVENT, NOT_STARTED);
+ instance->SetBossState(DATA_THARON_JA, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
-
- if (instance)
- instance->SetData(DATA_THARON_JA_EVENT, IN_PROGRESS);
+ instance->SetBossState(DATA_THARON_JA, IN_PROGRESS);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -219,12 +216,12 @@ public:
}
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_KILL);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -234,19 +231,19 @@ public:
Map::PlayerList const &PlayerList = instance->instance->GetPlayers();
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
- if (Player* player = i->getSource())
+ if (Player* player = i->GetSource())
player->DeMorph();
DoCast(me, SPELL_ACHIEVEMENT_CHECK);
- instance->SetData(DATA_THARON_JA_EVENT, DONE);
+ instance->SetBossState(DATA_THARON_JA, DONE);
}
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_tharon_jaAI(creature);
+ return GetDrakTharonKeepAI<boss_tharon_jaAI>(creature);
}
};
diff --git a/src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp b/src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp
index 2438273dcba..d0cec8a4f43 100644
--- a/src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp
+++ b/src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp
@@ -15,186 +15,313 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-/*
- * Comment: @todo spawn troll waves
- */
-
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
-#include "SpellAuras.h"
+#include "SpellScript.h"
+#include "SpellAuraEffects.h"
#include "drak_tharon_keep.h"
enum Spells
{
- SPELL_INFECTED_WOUND = 49637,
- SPELL_CRUSH = 49639,
- SPELL_CORPSE_EXPLODE = 49555,
- SPELL_CONSUME = 49380,
- SPELL_CONSUME_AURA = 49381,
- //Heroic spells
- H_SPELL_CORPSE_EXPLODE = 59807,
- H_SPELL_CONSUME = 59803,
- H_SPELL_CONSUME_AURA = 59805,
+ SPELL_INFECTED_WOUND = 49637,
+ SPELL_CRUSH = 49639,
+ SPELL_CORPSE_EXPLODE = 49555,
+ SPELL_CORPSE_EXPLODE_DAMAGE = 49618,
+ SPELL_CONSUME = 49380,
+ SPELL_CONSUME_BUFF = 49381,
+ SPELL_CONSUME_BUFF_H = 59805,
+
+ SPELL_SUMMON_INVADER_A = 49456,
+ SPELL_SUMMON_INVADER_B = 49457,
+ SPELL_SUMMON_INVADER_C = 49458, // can't find any sniffs
+
+ SPELL_INVADER_TAUNT = 49405
};
+#define SPELL_CONSUME_BUFF_HELPER DUNGEON_MODE<uint32>(SPELL_CONSUME_BUFF, SPELL_CONSUME_BUFF_H)
+
enum Yells
{
- SAY_AGGRO = 0,
- SAY_KILL = 1,
- SAY_CONSUME = 2,
- SAY_EXPLODE = 3,
- SAY_DEATH = 4
+ SAY_AGGRO = 0,
+ SAY_KILL = 1,
+ SAY_CONSUME = 2,
+ SAY_EXPLODE = 3,
+ SAY_DEATH = 4
};
-enum Creatures
+enum Misc
{
- NPC_DRAKKARI_INVADER_1 = 27753,
- NPC_DRAKKARI_INVADER_2 = 27709
+ DATA_CONSUMPTION_JUNCTION = 1,
+ POINT_LANDING = 1
};
-#define DATA_CONSUMPTION_JUNCTION 1
+enum Events
+{
+ EVENT_CONSUME = 1,
+ EVENT_CRUSH,
+ EVENT_INFECTED_WOUND,
+ EVENT_CORPSE_EXPLODE,
+ EVENT_SPAWN
+};
-Position AddSpawnPoint = { -260.493011f, -622.968018f, 26.605301f, 3.036870f };
+Position const Landing = { -263.0534f, -660.8658f, 26.50903f, 0.0f };
class boss_trollgore : public CreatureScript
{
-public:
- boss_trollgore() : CreatureScript("boss_trollgore") { }
+ public:
+ boss_trollgore() : CreatureScript("boss_trollgore") { }
- struct boss_trollgoreAI : public ScriptedAI
- {
- boss_trollgoreAI(Creature* creature) : ScriptedAI(creature), lSummons(me)
+ struct boss_trollgoreAI : public BossAI
{
- instance = creature->GetInstanceScript();
- }
+ boss_trollgoreAI(Creature* creature) : BossAI(creature, DATA_TROLLGORE) { }
- uint32 uiConsumeTimer;
- uint32 uiAuraCountTimer;
- uint32 uiCrushTimer;
- uint32 uiInfectedWoundTimer;
- uint32 uiExplodeCorpseTimer;
- uint32 uiSpawnTimer;
+ void Reset() OVERRIDE
+ {
+ _Reset();
+ _consumptionJunction = true;
+ }
- bool consumptionJunction;
+ void EnterCombat(Unit* /*who*/) OVERRIDE
+ {
+ _EnterCombat();
+ Talk(SAY_AGGRO);
+
+ events.ScheduleEvent(EVENT_CONSUME, 15000);
+ events.ScheduleEvent(EVENT_CRUSH, urand(1000, 5000));
+ events.ScheduleEvent(EVENT_INFECTED_WOUND, urand(10000, 60000));
+ events.ScheduleEvent(EVENT_CORPSE_EXPLODE, 3000);
+ events.ScheduleEvent(EVENT_SPAWN, urand(30000, 40000));
+ }
- SummonList lSummons;
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ if (!UpdateVictim())
+ return;
+
+ events.Update(diff);
+
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_CONSUME:
+ Talk(SAY_CONSUME);
+ DoCastAOE(SPELL_CONSUME);
+ events.ScheduleEvent(EVENT_CONSUME, 15000);
+ break;
+ case EVENT_CRUSH:
+ DoCastVictim(SPELL_CRUSH);
+ events.ScheduleEvent(EVENT_CRUSH, urand(10000, 15000));
+ break;
+ case EVENT_INFECTED_WOUND:
+ DoCastVictim(SPELL_INFECTED_WOUND);
+ events.ScheduleEvent(EVENT_INFECTED_WOUND, urand(25000, 35000));
+ break;
+ case EVENT_CORPSE_EXPLODE:
+ Talk(SAY_EXPLODE);
+ DoCastAOE(SPELL_CORPSE_EXPLODE);
+ events.ScheduleEvent(EVENT_CORPSE_EXPLODE, urand(15000, 19000));
+ break;
+ case EVENT_SPAWN:
+ for (uint8 i = 0; i < 3; ++i)
+ if (Creature* trigger = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_TROLLGORE_INVADER_SUMMONER_1 + i)))
+ trigger->CastSpell(trigger, RAND(SPELL_SUMMON_INVADER_A, SPELL_SUMMON_INVADER_B, SPELL_SUMMON_INVADER_C), true, NULL, NULL, me->GetGUID());
+
+ events.ScheduleEvent(EVENT_SPAWN, urand(30000, 40000));
+ break;
+ default:
+ break;
+ }
+ }
+
+ if (_consumptionJunction)
+ {
+ Aura* ConsumeAura = me->GetAura(SPELL_CONSUME_BUFF_HELPER);
+ if (ConsumeAura && ConsumeAura->GetStackAmount() > 9)
+ _consumptionJunction = false;
+ }
+
+ DoMeleeAttackIfReady();
+ }
- InstanceScript* instance;
+ void JustDied(Unit* /*killer*/) OVERRIDE
+ {
+ _JustDied();
+ Talk(SAY_DEATH);
+ }
- void Reset()
- {
- uiConsumeTimer = 15*IN_MILLISECONDS;
- uiAuraCountTimer = 15500;
- uiCrushTimer = urand(1*IN_MILLISECONDS, 5*IN_MILLISECONDS);
- uiInfectedWoundTimer = urand(10*IN_MILLISECONDS, 60*IN_MILLISECONDS);
- uiExplodeCorpseTimer = 3*IN_MILLISECONDS;
- uiSpawnTimer = urand(30*IN_MILLISECONDS, 40*IN_MILLISECONDS);
+ uint32 GetData(uint32 type) const OVERRIDE
+ {
+ if (type == DATA_CONSUMPTION_JUNCTION)
+ return _consumptionJunction ? 1 : 0;
- consumptionJunction = true;
+ return 0;
+ }
- lSummons.DespawnAll();
+ void KilledUnit(Unit* victim) OVERRIDE
+ {
+ if (victim->GetTypeId() != TYPEID_PLAYER)
+ return;
- me->RemoveAura(DUNGEON_MODE(SPELL_CONSUME_AURA, H_SPELL_CONSUME_AURA));
+ Talk(SAY_KILL);
+ }
- if (instance)
- instance->SetData(DATA_TROLLGORE_EVENT, NOT_STARTED);
+ void JustSummoned(Creature* summon) OVERRIDE
+ {
+ summon->GetMotionMaster()->MovePoint(POINT_LANDING, Landing);
+ summons.Summon(summon);
+ }
+
+ private:
+ bool _consumptionJunction;
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return GetDrakTharonKeepAI<boss_trollgoreAI>(creature);
}
+};
- void EnterCombat(Unit* /*who*/)
+class npc_drakkari_invader : public CreatureScript
+{
+ public:
+ npc_drakkari_invader() : CreatureScript("npc_drakkari_invader") { }
+
+ struct npc_drakkari_invaderAI : public ScriptedAI
{
- Talk(SAY_AGGRO);
+ npc_drakkari_invaderAI(Creature* creature) : ScriptedAI(creature) { }
- if (instance)
- instance->SetData(DATA_TROLLGORE_EVENT, IN_PROGRESS);
+ void MovementInform(uint32 type, uint32 pointId) OVERRIDE
+ {
+ if (type == POINT_MOTION_TYPE && pointId == POINT_LANDING)
+ {
+ me->Dismount();
+ me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
+ DoCastAOE(SPELL_INVADER_TAUNT);
+ }
+ }
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return GetDrakTharonKeepAI<npc_drakkari_invaderAI>(creature);
}
+};
+
+// 49380, 59803 - Consume
+class spell_trollgore_consume : public SpellScriptLoader
+{
+ public:
+ spell_trollgore_consume() : SpellScriptLoader("spell_trollgore_consume") { }
- void UpdateAI(uint32 diff)
+ class spell_trollgore_consume_SpellScript : public SpellScript
{
- //Return since we have no target
- if (!UpdateVictim())
- return;
+ PrepareSpellScript(spell_trollgore_consume_SpellScript);
- if (uiSpawnTimer <= diff)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
- uint32 spawnNumber = urand(2, DUNGEON_MODE(3, 5));
- for (uint8 i = 0; i < spawnNumber; ++i)
- DoSummon(RAND(NPC_DRAKKARI_INVADER_1, NPC_DRAKKARI_INVADER_2), AddSpawnPoint, 0, TEMPSUMMON_DEAD_DESPAWN);
- uiSpawnTimer = urand(30*IN_MILLISECONDS, 40*IN_MILLISECONDS);
- } else uiSpawnTimer -= diff;
+ if (!sSpellMgr->GetSpellInfo(SPELL_CONSUME_BUFF))
+ return false;
+ return true;
+ }
- if (uiConsumeTimer <= diff)
+ void HandleConsume(SpellEffIndex /*effIndex*/)
{
- Talk(SAY_CONSUME);
- DoCast(SPELL_CONSUME);
- uiConsumeTimer = 15*IN_MILLISECONDS;
- } else uiConsumeTimer -= diff;
+ if (Unit* target = GetHitUnit())
+ target->CastSpell(GetCaster(), SPELL_CONSUME_BUFF, true);
+ }
- if (consumptionJunction)
+ void Register() OVERRIDE
{
- Aura* ConsumeAura = me->GetAura(DUNGEON_MODE(SPELL_CONSUME_AURA, H_SPELL_CONSUME_AURA));
- if (ConsumeAura && ConsumeAura->GetStackAmount() > 9)
- consumptionJunction = false;
+ OnEffectHitTarget += SpellEffectFn(spell_trollgore_consume_SpellScript::HandleConsume, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT);
}
+ };
+
+ SpellScript* GetSpellScript() const OVERRIDE
+ {
+ return new spell_trollgore_consume_SpellScript();
+ }
+};
+
+// 49555, 59807 - Corpse Explode
+class spell_trollgore_corpse_explode : public SpellScriptLoader
+{
+ public:
+ spell_trollgore_corpse_explode() : SpellScriptLoader("spell_trollgore_corpse_explode") { }
- if (uiCrushTimer <= diff)
+ class spell_trollgore_corpse_explode_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_trollgore_corpse_explode_AuraScript);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
- DoCastVictim(SPELL_CRUSH);
- uiCrushTimer = urand(10*IN_MILLISECONDS, 15*IN_MILLISECONDS);
- } else uiCrushTimer -= diff;
+ if (!sSpellMgr->GetSpellInfo(SPELL_CORPSE_EXPLODE_DAMAGE))
+ return false;
+ return true;
+ }
- if (uiInfectedWoundTimer <= diff)
+ void PeriodicTick(AuraEffect const* aurEff)
{
- DoCastVictim(SPELL_INFECTED_WOUND);
- uiInfectedWoundTimer = urand(25*IN_MILLISECONDS, 35*IN_MILLISECONDS);
- } else uiInfectedWoundTimer -= diff;
+ if (aurEff->GetTickNumber() == 2)
+ if (Unit* caster = GetCaster())
+ caster->CastSpell(GetTarget(), SPELL_CORPSE_EXPLODE_DAMAGE, true, NULL, aurEff);
+ }
- if (uiExplodeCorpseTimer <= diff)
+ void HandleRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
- DoCast(SPELL_CORPSE_EXPLODE);
- Talk(SAY_EXPLODE);
- uiExplodeCorpseTimer = urand(15*IN_MILLISECONDS, 19*IN_MILLISECONDS);
- } else uiExplodeCorpseTimer -= diff;
+ if (Creature* target = GetTarget()->ToCreature())
+ target->DespawnOrUnsummon();
+ }
- DoMeleeAttackIfReady();
- }
+ void Register() OVERRIDE
+ {
+ OnEffectPeriodic += AuraEffectPeriodicFn(spell_trollgore_corpse_explode_AuraScript::PeriodicTick, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
+ AfterEffectRemove += AuraEffectRemoveFn(spell_trollgore_corpse_explode_AuraScript::HandleRemove, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY, AURA_EFFECT_HANDLE_REAL);
+ }
+ };
- void JustDied(Unit* /*killer*/)
+ AuraScript* GetAuraScript() const OVERRIDE
{
- Talk(SAY_DEATH);
-
- lSummons.DespawnAll();
-
- if (instance)
- instance->SetData(DATA_TROLLGORE_EVENT, DONE);
+ return new spell_trollgore_corpse_explode_AuraScript();
}
+};
- uint32 GetData(uint32 type) const
+// 49405 - Invader Taunt Trigger
+class spell_trollgore_invader_taunt : public SpellScriptLoader
+{
+ public:
+ spell_trollgore_invader_taunt() : SpellScriptLoader("spell_trollgore_invader_taunt") { }
+
+ class spell_trollgore_invader_taunt_SpellScript : public SpellScript
{
- if (type == DATA_CONSUMPTION_JUNCTION)
- return consumptionJunction ? 1 : 0;
+ PrepareSpellScript(spell_trollgore_invader_taunt_SpellScript);
- return 0;
- }
+ bool Validate(SpellInfo const* spellInfo) OVERRIDE
+ {
+ if (!sSpellMgr->GetSpellInfo(spellInfo->Effects[EFFECT_0].CalcValue()))
+ return false;
+ return true;
+ }
- void KilledUnit(Unit* victim)
- {
- if (victim == me)
- return;
- Talk(SAY_KILL);
- }
+ void HandleTaunt(SpellEffIndex /*effIndex*/)
+ {
+ if (Unit* target = GetHitUnit())
+ target->CastSpell(GetCaster(), uint32(GetEffectValue()), true);
+ }
- void JustSummoned(Creature* summon)
+ void Register() OVERRIDE
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_trollgore_invader_taunt_SpellScript::HandleTaunt, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+ };
+
+ SpellScript* GetSpellScript() const OVERRIDE
{
- lSummons.Summon(summon);
- if (summon->AI())
- summon->AI()->AttackStart(me);
+ return new spell_trollgore_invader_taunt_SpellScript();
}
- };
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new boss_trollgoreAI(creature);
- }
};
class achievement_consumption_junction : public AchievementCriteriaScript
@@ -204,7 +331,7 @@ class achievement_consumption_junction : public AchievementCriteriaScript
{
}
- bool OnCheck(Player* /*player*/, Unit* target)
+ bool OnCheck(Player* /*player*/, Unit* target) OVERRIDE
{
if (!target)
return false;
@@ -220,5 +347,9 @@ class achievement_consumption_junction : public AchievementCriteriaScript
void AddSC_boss_trollgore()
{
new boss_trollgore();
+ new npc_drakkari_invader();
+ new spell_trollgore_consume();
+ new spell_trollgore_corpse_explode();
+ new spell_trollgore_invader_taunt();
new achievement_consumption_junction();
}
diff --git a/src/server/scripts/Northrend/DraktharonKeep/drak_tharon_keep.h b/src/server/scripts/Northrend/DraktharonKeep/drak_tharon_keep.h
index e17cba4bccd..072a5f2f534 100644
--- a/src/server/scripts/Northrend/DraktharonKeep/drak_tharon_keep.h
+++ b/src/server/scripts/Northrend/DraktharonKeep/drak_tharon_keep.h
@@ -15,22 +15,30 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef DEF_DRAK_THARON_H
-#define DEF_DRAK_THARON_H
-enum Data
-{
- DATA_TROLLGORE_EVENT,
- DATA_NOVOS_EVENT,
- DATA_DRED_EVENT,
- DATA_THARON_JA_EVENT,
- DATA_KING_DRED_ACHIEV
-};
-enum Data64
+#ifndef DRAK_THARON_KEEP_H_
+#define DRAK_THARON_KEEP_H_
+
+#include "Map.h"
+#include "Creature.h"
+
+#define DrakTharonKeepScriptName "instance_drak_tharon_keep"
+
+uint32 const EncounterCount = 4;
+
+enum DataTypes
{
- DATA_TROLLGORE,
- DATA_NOVOS,
- DATA_DRED,
- DATA_THARON_JA,
+ // Encounter States/Boss GUIDs
+ DATA_TROLLGORE = 0,
+ DATA_NOVOS = 1,
+ DATA_KING_DRED = 2,
+ DATA_THARON_JA = 3,
+
+ // Additional data
+ //DATA_KING_DRED_ACHIEV,
+
+ DATA_TROLLGORE_INVADER_SUMMONER_1,
+ DATA_TROLLGORE_INVADER_SUMMONER_2,
+ DATA_TROLLGORE_INVADER_SUMMONER_3,
DATA_NOVOS_CRYSTAL_1,
DATA_NOVOS_CRYSTAL_2,
@@ -43,4 +51,49 @@ enum Data64
ACTION_CRYSTAL_HANDLER_DIED
};
-#endif
+
+enum CreatureIds
+{
+ NPC_TROLLGORE = 26630,
+ NPC_NOVOS = 26631,
+ NPC_KING_DRED = 27483,
+ NPC_THARON_JA = 26632,
+
+ // Trollgore
+ NPC_DRAKKARI_INVADER_A = 27709,
+ NPC_DRAKKARI_INVADER_B = 27753,
+ NPC_DRAKKARI_INVADER_C = 27754,
+
+ // Novos
+ NPC_CRYSTAL_CHANNEL_TARGET = 26712,
+ NPC_CRYSTAL_HANDLER = 26627,
+ NPC_HULKING_CORPSE = 27597,
+ NPC_FETID_TROLL_CORPSE = 27598,
+ NPC_RISEN_SHADOWCASTER = 27600,
+
+ // King Dred
+ NPC_DRAKKARI_GUTRIPPER = 26641,
+ NPC_DRAKKARI_SCYTHECLAW = 26628,
+
+ NPC_WORLD_TRIGGER = 22515
+};
+
+enum GameObjectIds
+{
+ GO_NOVOS_CRYSTAL_1 = 189299,
+ GO_NOVOS_CRYSTAL_2 = 189300,
+ GO_NOVOS_CRYSTAL_3 = 189301,
+ GO_NOVOS_CRYSTAL_4 = 189302
+};
+
+template<class AI>
+AI* GetDrakTharonKeepAI(Creature* creature)
+{
+ if (InstanceMap* instance = creature->GetMap()->ToInstanceMap())
+ if (instance->GetInstanceScript())
+ if (instance->GetScriptId() == sObjectMgr->GetScriptId(DrakTharonKeepScriptName))
+ return new AI(creature);
+ return NULL;
+}
+
+#endif // DRAK_THARON_KEEP_H_
diff --git a/src/server/scripts/Northrend/DraktharonKeep/instance_drak_tharon_keep.cpp b/src/server/scripts/Northrend/DraktharonKeep/instance_drak_tharon_keep.cpp
index 28bea60fb87..e2ed883ad08 100644
--- a/src/server/scripts/Northrend/DraktharonKeep/instance_drak_tharon_keep.cpp
+++ b/src/server/scripts/Northrend/DraktharonKeep/instance_drak_tharon_keep.cpp
@@ -20,279 +20,206 @@
#include "InstanceScript.h"
#include "drak_tharon_keep.h"
-#define MAX_ENCOUNTER 4
-
-/* Drak'Tharon Keep encounters:
-0 - Trollgore
-1 - Novos
-2 - King Dred
-3 - Tharon Ja
-*/
-
-enum Creatures
-{
- NPC_TROLLGORE = 26630,
- NPC_NOVOS = 26631,
- NPC_KING_DRED = 27483,
- NPC_THARON_JA = 26632,
- NPC_CRYSTAL_CHANNEL_TARGET = 26712,
- NPC_CRYSTAL_HANDLER = 26627
-};
-enum GameObjects
+class instance_drak_tharon_keep : public InstanceMapScript
{
- GO_NOVOS_CRYSTAL_1 = 189299,
- GO_NOVOS_CRYSTAL_2 = 189300,
- GO_NOVOS_CRYSTAL_3 = 189301,
- GO_NOVOS_CRYSTAL_4 = 189302
-};
-enum Achievements
-{
- ACM_CRITERIA_OH_NOVOS = 7361
-};
-
-class instance_drak_tharon : public InstanceMapScript
-{
-public:
- instance_drak_tharon() : InstanceMapScript("instance_drak_tharon", 600) { }
-
- struct instance_drak_tharon_InstanceScript : public InstanceScript
- {
- instance_drak_tharon_InstanceScript(Map* map) : InstanceScript(map) {}
-
- uint8 dredAchievCounter;
-
- uint64 trollgoreGUID;
- uint64 novosGUID;
- uint64 dredGUID;
- uint64 tharonJaGUID;
-
- uint64 novosCrystalGUID1;
- uint64 novosCrystalGUID2;
- uint64 novosCrystalGUID3;
- uint64 novosCrystalGUID4;
-
- uint64 novosSummonerGUID1;
- uint64 novosSummonerGUID2;
- uint64 novosSummonerGUID3;
- uint64 novosSummonerGUID4;
-
- uint16 m_auiEncounter[MAX_ENCOUNTER];
+ public:
+ instance_drak_tharon_keep() : InstanceMapScript(DrakTharonKeepScriptName, 600) { }
- std::string str_data;
-
- void Initialize()
+ struct instance_drak_tharon_keep_InstanceScript : public InstanceScript
{
- memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
-
- dredAchievCounter = 0;
-
- trollgoreGUID = 0;
- novosGUID = 0;
- dredGUID = 0;
- tharonJaGUID = 0;
-
- novosCrystalGUID1 = 0;
- novosCrystalGUID2 = 0;
- novosCrystalGUID3 = 0;
- novosCrystalGUID4 = 0;
-
- novosSummonerGUID1 = 0;
- novosSummonerGUID2 = 0;
- novosSummonerGUID3 = 0;
- novosSummonerGUID4 = 0;
- }
+ instance_drak_tharon_keep_InstanceScript(Map* map) : InstanceScript(map)
+ {
+ SetBossNumber(EncounterCount);
- bool IsEncounterInProgress() const
- {
- for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
- if (m_auiEncounter[i] == IN_PROGRESS)
- return true;
+ TrollgoreGUID = 0;
+ NovosGUID = 0;
+ KingDredGUID = 0;
+ TharonJaGUID = 0;
- return false;
- }
+ memset(TrollgoreInvaderSummonerGuids, 0, 4 * sizeof(uint64));
+ memset(NovosCrystalGUIDs, 0, 4 * sizeof(uint64));
+ memset(NovosSummonerGUIDs, 0, 4 * sizeof(uint64));
+ }
- void OnGameObjectCreate(GameObject* go)
- {
- switch (go->GetEntry())
+ void OnCreatureCreate(Creature* creature) OVERRIDE
{
- case GO_NOVOS_CRYSTAL_1:
- novosCrystalGUID1 = go->GetGUID();
- go->SetGoState(GO_STATE_READY);
- break;
- case GO_NOVOS_CRYSTAL_2:
- novosCrystalGUID2 = go->GetGUID();
- go->SetGoState(GO_STATE_READY);
- break;
- case GO_NOVOS_CRYSTAL_3:
- novosCrystalGUID3 = go->GetGUID();
- go->SetGoState(GO_STATE_READY);
- break;
- case GO_NOVOS_CRYSTAL_4:
- novosCrystalGUID4 = go->GetGUID();
- go->SetGoState(GO_STATE_READY);
- break;
+ switch (creature->GetEntry())
+ {
+ case NPC_TROLLGORE:
+ TrollgoreGUID = creature->GetGUID();
+ break;
+ case NPC_NOVOS:
+ NovosGUID = creature->GetGUID();
+ break;
+ case NPC_KING_DRED:
+ KingDredGUID = creature->GetGUID();
+ break;
+ case NPC_THARON_JA:
+ TharonJaGUID = creature->GetGUID();
+ break;
+ case NPC_WORLD_TRIGGER:
+ InitializeTrollgoreInvaderSummoner(creature);
+ break;
+ case NPC_CRYSTAL_CHANNEL_TARGET:
+ InitializeNovosSummoner(creature);
+ break;
+ default:
+ break;
+ }
}
- }
- void OnCreatureCreate(Creature* creature)
- {
- switch (creature->GetEntry())
+ void OnGameObjectCreate(GameObject* go) OVERRIDE
{
- case NPC_TROLLGORE:
- trollgoreGUID = creature->GetGUID();
- break;
- case NPC_NOVOS:
- novosGUID = creature->GetGUID();
- break;
- case NPC_KING_DRED:
- dredGUID = creature->GetGUID();
- break;
- case NPC_THARON_JA:
- tharonJaGUID = creature->GetGUID();
- break;
- case NPC_CRYSTAL_CHANNEL_TARGET:
- InitializeNovosSummoner(creature);
- break;
+ switch (go->GetEntry())
+ {
+ case GO_NOVOS_CRYSTAL_1:
+ NovosCrystalGUIDs[0] = go->GetGUID();
+ break;
+ case GO_NOVOS_CRYSTAL_2:
+ NovosCrystalGUIDs[1] = go->GetGUID();
+ break;
+ case GO_NOVOS_CRYSTAL_3:
+ NovosCrystalGUIDs[2] = go->GetGUID();
+ break;
+ case GO_NOVOS_CRYSTAL_4:
+ NovosCrystalGUIDs[3] = go->GetGUID();
+ break;
+ default:
+ break;
+ }
}
- }
- void InitializeNovosSummoner(Creature* creature)
- {
- float x = creature->GetPositionX();
- float y = creature->GetPositionY();
- float z = creature->GetPositionZ();
-
- if (x < -374.0f && x > -379.0f && y > -820.0f && y < -815.0f && z < 60.0f && z > 58.0f)
- novosSummonerGUID1 = creature->GetGUID();
- else if (x < -379.0f && x > -385.0f && y > -820.0f && y < -815.0f && z < 60.0f && z > 58.0f)
- novosSummonerGUID2 = creature->GetGUID();
- else if (x < -374.0f && x > -385.0f && y > -827.0f && y < -820.0f && z < 60.0f && z > 58.0f)
- novosSummonerGUID3 = creature->GetGUID();
- else if (x < -338.0f && x > -344.0f && y > -727.0f && y < 721.0f && z < 30.0f && z > 26.0f)
- novosSummonerGUID4 = creature->GetGUID();
- }
-
- uint64 GetData64(uint32 identifier) const
- {
- switch (identifier)
+ void InitializeTrollgoreInvaderSummoner(Creature* creature)
{
- case DATA_TROLLGORE: return trollgoreGUID;
- case DATA_NOVOS: return novosGUID;
- case DATA_DRED: return dredGUID;
- case DATA_THARON_JA: return tharonJaGUID;
- case DATA_NOVOS_CRYSTAL_1: return novosCrystalGUID1;
- case DATA_NOVOS_CRYSTAL_2: return novosCrystalGUID2;
- case DATA_NOVOS_CRYSTAL_3: return novosCrystalGUID3;
- case DATA_NOVOS_CRYSTAL_4: return novosCrystalGUID4;
- case DATA_NOVOS_SUMMONER_1: return novosSummonerGUID1;
- case DATA_NOVOS_SUMMONER_2: return novosSummonerGUID2;
- case DATA_NOVOS_SUMMONER_3: return novosSummonerGUID3;
- case DATA_NOVOS_SUMMONER_4: return novosSummonerGUID4;
+ float y = creature->GetPositionY();
+ float z = creature->GetPositionZ();
+
+ if (z < 50.0f)
+ return;
+
+ if (y < -650.0f && y > -660.0f)
+ TrollgoreInvaderSummonerGuids[0] = creature->GetGUID();
+ else if (y < -660.0f && y > -670.0f)
+ TrollgoreInvaderSummonerGuids[1] = creature->GetGUID();
+ else if (y < -675.0f && y > -685.0f)
+ TrollgoreInvaderSummonerGuids[2] = creature->GetGUID();
}
- return 0;
- }
-
- void SetData(uint32 type, uint32 data)
- {
- switch (type)
+ void InitializeNovosSummoner(Creature* creature)
{
- case DATA_TROLLGORE_EVENT:
- m_auiEncounter[0] = data;
- break;
- case DATA_NOVOS_EVENT:
- m_auiEncounter[1] = data;
- break;
- case DATA_DRED_EVENT:
- m_auiEncounter[2] = data;
- break;
- case DATA_THARON_JA_EVENT:
- m_auiEncounter[3] = data;
- break;
-
- case DATA_KING_DRED_ACHIEV:
- dredAchievCounter = data;
- break;
+ float x = creature->GetPositionX();
+ float y = creature->GetPositionY();
+ float z = creature->GetPositionZ();
+
+ if (x < -374.0f && x > -379.0f && y > -820.0f && y < -815.0f && z < 60.0f && z > 58.0f)
+ NovosSummonerGUIDs[0] = creature->GetGUID();
+ else if (x < -379.0f && x > -385.0f && y > -820.0f && y < -815.0f && z < 60.0f && z > 58.0f)
+ NovosSummonerGUIDs[1] = creature->GetGUID();
+ else if (x < -374.0f && x > -385.0f && y > -827.0f && y < -820.0f && z < 60.0f && z > 58.0f)
+ NovosSummonerGUIDs[2] = creature->GetGUID();
+ else if (x < -338.0f && x > -344.0f && y > -727.0f && y < 721.0f && z < 30.0f && z > 26.0f)
+ NovosSummonerGUIDs[3] = creature->GetGUID();
}
- if (data == DONE)
+ uint64 GetData64(uint32 type) const OVERRIDE
{
- SaveToDB();
+ switch (type)
+ {
+ case DATA_TROLLGORE:
+ return TrollgoreGUID;
+ case DATA_NOVOS:
+ return NovosGUID;
+ case DATA_KING_DRED:
+ return KingDredGUID;
+ case DATA_THARON_JA:
+ return TharonJaGUID;
+ case DATA_TROLLGORE_INVADER_SUMMONER_1:
+ case DATA_TROLLGORE_INVADER_SUMMONER_2:
+ case DATA_TROLLGORE_INVADER_SUMMONER_3:
+ return TrollgoreInvaderSummonerGuids[type - DATA_TROLLGORE_INVADER_SUMMONER_1];
+ case DATA_NOVOS_CRYSTAL_1:
+ case DATA_NOVOS_CRYSTAL_2:
+ case DATA_NOVOS_CRYSTAL_3:
+ case DATA_NOVOS_CRYSTAL_4:
+ return NovosCrystalGUIDs[type - DATA_NOVOS_CRYSTAL_1];
+ case DATA_NOVOS_SUMMONER_1:
+ case DATA_NOVOS_SUMMONER_2:
+ case DATA_NOVOS_SUMMONER_3:
+ case DATA_NOVOS_SUMMONER_4:
+ return NovosSummonerGUIDs[type - DATA_NOVOS_SUMMONER_1];
+ }
+
+ return 0;
}
- }
- uint32 GetData(uint32 type) const
- {
- switch (type)
+ void OnUnitDeath(Unit* unit) OVERRIDE
{
- case DATA_TROLLGORE_EVENT: return m_auiEncounter[0];
- case DATA_NOVOS_EVENT: return m_auiEncounter[1];
- case DATA_DRED_EVENT: return m_auiEncounter[2];
- case DATA_THARON_JA_EVENT: return m_auiEncounter[3];
- case DATA_KING_DRED_ACHIEV: return dredAchievCounter;
+ if (unit->GetEntry() == NPC_CRYSTAL_HANDLER)
+ if (Creature* novos = instance->GetCreature(NovosGUID))
+ novos->AI()->DoAction(ACTION_CRYSTAL_HANDLER_DIED);
}
- return 0;
- }
-
- std::string GetSaveData()
- {
- OUT_SAVE_INST_DATA;
- std::ostringstream saveStream;
- saveStream << "D K " << m_auiEncounter[0] << ' ' << m_auiEncounter[1] << ' '
- << m_auiEncounter[2] << ' ' << m_auiEncounter[3];
+ std::string GetSaveData() OVERRIDE
+ {
+ OUT_SAVE_INST_DATA;
- OUT_SAVE_INST_DATA_COMPLETE;
- return saveStream.str();
- }
+ std::ostringstream saveStream;
+ saveStream << "D K " << GetBossSaveData();
- void OnUnitDeath(Unit* unit)
- {
- if (unit->GetEntry() == NPC_CRYSTAL_HANDLER)
- if (novosGUID)
- if (Creature* novos = instance->GetCreature(novosGUID))
- novos->AI()->DoAction(ACTION_CRYSTAL_HANDLER_DIED);
- }
+ OUT_SAVE_INST_DATA_COMPLETE;
+ return saveStream.str();
+ }
- void Load(const char* in)
- {
- if (!in)
+ void Load(char const* str) OVERRIDE
{
- OUT_LOAD_INST_DATA_FAIL;
- return;
+ if (!str)
+ {
+ OUT_LOAD_INST_DATA_FAIL;
+ return;
+ }
+
+ OUT_LOAD_INST_DATA(str);
+
+ char dataHead1, dataHead2;
+
+ std::istringstream loadStream(str);
+ loadStream >> dataHead1 >> dataHead2;
+
+ if (dataHead1 == 'D' && dataHead2 == 'K')
+ {
+ for (uint32 i = 0; i < EncounterCount; ++i)
+ {
+ uint32 tmpState;
+ loadStream >> tmpState;
+ if (tmpState == IN_PROGRESS || tmpState > SPECIAL)
+ tmpState = NOT_STARTED;
+ SetBossState(i, EncounterState(tmpState));
+ }
+ }
+ else
+ OUT_LOAD_INST_DATA_FAIL;
+
+ OUT_LOAD_INST_DATA_COMPLETE;
}
- OUT_LOAD_INST_DATA(in);
-
- char dataHead1, dataHead2;
- uint16 data0, data1, data2, data3;
+ protected:
+ uint64 TrollgoreGUID;
+ uint64 NovosGUID;
+ uint64 KingDredGUID;
+ uint64 TharonJaGUID;
- std::istringstream loadStream(in);
- loadStream >> dataHead1 >> dataHead2 >> data0 >> data1 >> data2 >> data3;
-
- if (dataHead1 == 'D' && dataHead2 == 'K')
- {
- m_auiEncounter[0] = data0;
- m_auiEncounter[1] = data1;
- m_auiEncounter[2] = data2;
- m_auiEncounter[3] = data3;
+ uint64 TrollgoreInvaderSummonerGuids[3];
+ uint64 NovosCrystalGUIDs[4];
+ uint64 NovosSummonerGUIDs[4];
+ };
- for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
- if (m_auiEncounter[i] == IN_PROGRESS)
- m_auiEncounter[i] = NOT_STARTED;
- } else OUT_LOAD_INST_DATA_FAIL;
-
- OUT_LOAD_INST_DATA_COMPLETE;
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
+ {
+ return new instance_drak_tharon_keep_InstanceScript(map);
}
- };
-
- InstanceScript* GetInstanceScript(InstanceMap* map) const
- {
- return new instance_drak_tharon_InstanceScript(map);
- }
};
-void AddSC_instance_drak_tharon()
+void AddSC_instance_drak_tharon_keep()
{
- new instance_drak_tharon;
+ new instance_drak_tharon_keep();
}
diff --git a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_bronjahm.cpp b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_bronjahm.cpp
index 516a3e0f7c9..2dedc986b0c 100644
--- a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_bronjahm.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_bronjahm.cpp
@@ -71,7 +71,7 @@ class boss_bronjahm : public CreatureScript
DoCast(me, SPELL_SOULSTORM_CHANNEL, true);
}
- void InitializeAI()
+ void InitializeAI() OVERRIDE
{
if (!instance || static_cast<InstanceMap*>(me->GetMap())->GetScriptId() != sObjectMgr->GetScriptId(FoSScriptName))
me->IsAIEnabled = false;
@@ -79,7 +79,7 @@ class boss_bronjahm : public CreatureScript
Reset();
}
- void Reset()
+ void Reset() OVERRIDE
{
events.Reset();
events.SetPhase(PHASE_1);
@@ -90,12 +90,12 @@ class boss_bronjahm : public CreatureScript
instance->SetBossState(DATA_BRONJAHM, NOT_STARTED);
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
DoCast(me, SPELL_SOULSTORM_CHANNEL, true);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
me->RemoveAurasDueToSpell(SPELL_SOULSTORM_CHANNEL);
@@ -103,20 +103,20 @@ class boss_bronjahm : public CreatureScript
instance->SetBossState(DATA_BRONJAHM, IN_PROGRESS);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
instance->SetBossState(DATA_BRONJAHM, DONE);
}
- void KilledUnit(Unit* who)
+ void KilledUnit(Unit* who) OVERRIDE
{
if (who->GetTypeId() == TYPEID_PLAYER)
Talk(SAY_SLAY);
}
- void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/)
+ void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/) OVERRIDE
{
if (events.IsInPhase(PHASE_1) && !HealthAbovePct(30))
{
@@ -127,7 +127,7 @@ class boss_bronjahm : public CreatureScript
}
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
summons.Summon(summon);
summon->SetReactState(REACT_PASSIVE);
@@ -136,7 +136,7 @@ class boss_bronjahm : public CreatureScript
summon->CastSpell(summon, SPELL_PURPLE_BANISH_VISUAL, true);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -155,7 +155,7 @@ class boss_bronjahm : public CreatureScript
events.ScheduleEvent(EVENT_MAGIC_BANE, urand(8000, 20000));
break;
case EVENT_SHADOW_BOLT:
- if (!me->IsWithinMeleeRange(me->getVictim()))
+ if (!me->IsWithinMeleeRange(me->GetVictim()))
DoCastVictim(SPELL_SHADOW_BOLT);
events.ScheduleEvent(EVENT_SHADOW_BOLT, 2000);
break;
@@ -186,25 +186,25 @@ class boss_bronjahm : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_bronjahmAI(creature);
}
};
-class mob_corrupted_soul_fragment : public CreatureScript
+class npc_corrupted_soul_fragment : public CreatureScript
{
public:
- mob_corrupted_soul_fragment() : CreatureScript("mob_corrupted_soul_fragment") { }
+ npc_corrupted_soul_fragment() : CreatureScript("npc_corrupted_soul_fragment") { }
- struct mob_corrupted_soul_fragmentAI : public ScriptedAI
+ struct npc_corrupted_soul_fragmentAI : public ScriptedAI
{
- mob_corrupted_soul_fragmentAI(Creature* creature) : ScriptedAI(creature)
+ npc_corrupted_soul_fragmentAI(Creature* creature) : ScriptedAI(creature)
{
instance = me->GetInstanceScript();
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type != CHASE_MOTION_TYPE)
return;
@@ -229,9 +229,9 @@ class mob_corrupted_soul_fragment : public CreatureScript
InstanceScript* instance;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_corrupted_soul_fragmentAI(creature);
+ return new npc_corrupted_soul_fragmentAI(creature);
}
};
@@ -257,13 +257,13 @@ class spell_bronjahm_magic_bane : public SpellScriptLoader
SetHitDamage(newDamage);
}
- void Register()
+ void Register() OVERRIDE
{
OnHit += SpellHitFn(spell_bronjahm_magic_bane_SpellScript::RecalculateDamage);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_bronjahm_magic_bane_SpellScript();
}
@@ -284,13 +284,13 @@ class spell_bronjahm_consume_soul : public SpellScriptLoader
GetHitUnit()->CastSpell(GetHitUnit(), GetEffectValue(), true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_bronjahm_consume_soul_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_bronjahm_consume_soul_SpellScript();
}
@@ -312,13 +312,13 @@ class spell_bronjahm_soulstorm_channel : public SpellScriptLoader
GetTarget()->CastSpell(GetTarget(), i, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_bronjahm_soulstorm_channel_AuraScript::HandlePeriodicTick, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_bronjahm_soulstorm_channel_AuraScript();
}
@@ -343,13 +343,13 @@ class spell_bronjahm_soulstorm_visual : public SpellScriptLoader
GetTarget()->CastSpell(GetTarget(), i, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_bronjahm_soulstorm_visual_AuraScript::HandlePeriodicTick, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_bronjahm_soulstorm_visual_AuraScript();
}
@@ -391,7 +391,7 @@ class spell_bronjahm_soulstorm_targeting : public SpellScriptLoader
targets = sharedTargets;
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_bronjahm_soulstorm_targeting_SpellScript::FilterTargetsInitial, EFFECT_1, TARGET_UNIT_DEST_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_bronjahm_soulstorm_targeting_SpellScript::FilterTargetsSubsequent, EFFECT_2, TARGET_UNIT_DEST_AREA_ENEMY);
@@ -400,7 +400,7 @@ class spell_bronjahm_soulstorm_targeting : public SpellScriptLoader
std::list<WorldObject*> sharedTargets;
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_bronjahm_soulstorm_targeting_SpellScript();
}
@@ -409,7 +409,7 @@ class spell_bronjahm_soulstorm_targeting : public SpellScriptLoader
void AddSC_boss_bronjahm()
{
new boss_bronjahm();
- new mob_corrupted_soul_fragment();
+ new npc_corrupted_soul_fragment();
new spell_bronjahm_magic_bane();
new spell_bronjahm_consume_soul();
new spell_bronjahm_soulstorm_channel();
diff --git a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp
index 61a654ec2bb..b1ecdc5904e 100644
--- a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp
@@ -17,9 +17,11 @@
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
-#include "forge_of_souls.h"
#include "Player.h"
#include "SpellInfo.h"
+#include "SpellAuraEffects.h"
+#include "SpellScript.h"
+#include "forge_of_souls.h"
/*
* @todo
@@ -48,7 +50,10 @@ enum Spells
{
SPELL_PHANTOM_BLAST = 68982,
H_SPELL_PHANTOM_BLAST = 70322,
- SPELL_MIRRORED_SOUL = 69051,
+ SPELL_MIRRORED_SOUL_PROC_AURA = 69023,
+ SPELL_MIRRORED_SOUL_DAMAGE = 69034,
+ SPELL_MIRRORED_SOUL_TARGET_SELECTOR = 69048,
+ SPELL_MIRRORED_SOUL_BUFF = 69051,
SPELL_WELL_OF_SOULS = 68820,
SPELL_UNLEASHED_SOULS = 68939,
SPELL_WAILING_SOULS_STARTING = 68912, // Initial spell cast at begining of wailing souls phase
@@ -70,7 +75,7 @@ enum Events
EVENT_FACE_ANGER = 7,
};
-enum eEnum
+enum Models
{
DISPLAY_ANGER = 30148,
DISPLAY_SORROW = 30149,
@@ -111,7 +116,10 @@ struct outroPosition
Position const CrucibleSummonPos = {5672.294f, 2520.686f, 713.4386f, 0.9599311f};
-#define DATA_THREE_FACED 1
+enum Misc
+{
+ DATA_THREE_FACED = 1
+};
class boss_devourer_of_souls : public CreatureScript
{
@@ -124,7 +132,7 @@ class boss_devourer_of_souls : public CreatureScript
{
}
- void InitializeAI()
+ void InitializeAI() OVERRIDE
{
if (!instance || static_cast<InstanceMap*>(me->GetMap())->GetScriptId() != sObjectMgr->GetScriptId(FoSScriptName))
me->IsAIEnabled = false;
@@ -132,7 +140,7 @@ class boss_devourer_of_souls : public CreatureScript
Reset();
}
- void Reset()
+ void Reset() OVERRIDE
{
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
me->SetDisplayId(DISPLAY_ANGER);
@@ -142,12 +150,11 @@ class boss_devourer_of_souls : public CreatureScript
summons.DespawnAll();
threeFaced = true;
- mirroredSoulTarget = 0;
instance->SetData(DATA_DEVOURER_EVENT, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_FACE_AGGRO);
@@ -162,24 +169,7 @@ class boss_devourer_of_souls : public CreatureScript
instance->SetData(DATA_DEVOURER_EVENT, IN_PROGRESS);
}
- void DamageTaken(Unit* /*pDoneBy*/, uint32 &uiDamage)
- {
- if (mirroredSoulTarget && me->HasAura(SPELL_MIRRORED_SOUL))
- {
- if (Player* player = Unit::GetPlayer(*me, mirroredSoulTarget))
- {
- if (player->GetAura(SPELL_MIRRORED_SOUL))
- {
- int32 mirrorDamage = (uiDamage* 45)/100;
- me->CastCustomSpell(player, 69034, &mirrorDamage, 0, 0, true);
- }
- else
- mirroredSoulTarget = 0;
- }
- }
- }
-
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
if (victim->GetTypeId() != TYPEID_PLAYER)
return;
@@ -204,7 +194,7 @@ class boss_devourer_of_souls : public CreatureScript
Talk(textId);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
summons.DespawnAll();
@@ -233,13 +223,13 @@ class boss_devourer_of_souls : public CreatureScript
}
}
- void SpellHitTarget(Unit* /*target*/, const SpellInfo* spell)
+ void SpellHitTarget(Unit* /*target*/, const SpellInfo* spell) OVERRIDE
{
if (spell->Id == H_SPELL_PHANTOM_BLAST)
threeFaced = false;
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
if (type == DATA_THREE_FACED)
return threeFaced;
@@ -247,7 +237,7 @@ class boss_devourer_of_souls : public CreatureScript
return 0;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
// Return since we have no target
if (!UpdateVictim())
@@ -267,12 +257,8 @@ class boss_devourer_of_souls : public CreatureScript
events.ScheduleEvent(EVENT_PHANTOM_BLAST, 5000);
break;
case EVENT_MIRRORED_SOUL:
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0, true))
- {
- mirroredSoulTarget = target->GetGUID();
- DoCast(target, SPELL_MIRRORED_SOUL);
- Talk(EMOTE_MIRRORED_SOUL);
- }
+ DoCastAOE(SPELL_MIRRORED_SOUL_TARGET_SELECTOR);
+ Talk(EMOTE_MIRRORED_SOUL);
events.ScheduleEvent(EVENT_MIRRORED_SOUL, urand(15000, 30000));
break;
case EVENT_WELL_OF_SOULS:
@@ -300,8 +286,7 @@ class boss_devourer_of_souls : public CreatureScript
DoCast(me, SPELL_WAILING_SOULS_STARTING);
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
{
- me->SetOrientation(me->GetAngle(target));
- me->SendMovementFlagUpdate();
+ me->SetFacingToObject(target);
DoCast(me, SPELL_WAILING_SOULS_BEAM);
}
@@ -327,8 +312,7 @@ class boss_devourer_of_souls : public CreatureScript
case EVENT_WAILING_SOULS_TICK:
beamAngle += beamAngleDiff;
- me->SetOrientation(beamAngle);
- me->SendMovementFlagUpdate();
+ me->SetFacingTo(beamAngle);
me->StopMoving();
DoCast(me, SPELL_WAILING_SOULS);
@@ -340,7 +324,7 @@ class boss_devourer_of_souls : public CreatureScript
me->SetReactState(REACT_AGGRESSIVE);
me->SetDisplayId(DISPLAY_ANGER);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
- me->GetMotionMaster()->MoveChase(me->getVictim());
+ me->GetMotionMaster()->MoveChase(me->GetVictim());
events.ScheduleEvent(EVENT_WAILING_SOULS, urand(60000, 70000));
}
break;
@@ -357,16 +341,147 @@ class boss_devourer_of_souls : public CreatureScript
float beamAngle;
float beamAngleDiff;
int8 wailingSoulTick;
-
- uint64 mirroredSoulTarget;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_devourer_of_soulsAI(creature);
}
};
+// 69051 - Mirrored Soul
+class spell_devourer_of_souls_mirrored_soul : public SpellScriptLoader
+{
+ public:
+ spell_devourer_of_souls_mirrored_soul() : SpellScriptLoader("spell_devourer_of_souls_mirrored_soul") { }
+
+ class spell_devourer_of_souls_mirrored_soul_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_devourer_of_souls_mirrored_soul_SpellScript);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_MIRRORED_SOUL_PROC_AURA))
+ return false;
+ return true;
+ }
+
+ void HandleScript(SpellEffIndex /*effIndex*/)
+ {
+ if (Unit* target = GetHitUnit())
+ target->CastSpell(GetCaster(), SPELL_MIRRORED_SOUL_PROC_AURA, true);
+ }
+
+ void Register() OVERRIDE
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_devourer_of_souls_mirrored_soul_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+ };
+
+ SpellScript* GetSpellScript() const OVERRIDE
+ {
+ return new spell_devourer_of_souls_mirrored_soul_SpellScript();
+ }
+};
+
+// 69023 - Mirrored Soul (Proc)
+class spell_devourer_of_souls_mirrored_soul_proc : public SpellScriptLoader
+{
+ public:
+ spell_devourer_of_souls_mirrored_soul_proc() : SpellScriptLoader("spell_devourer_of_souls_mirrored_soul_proc") { }
+
+ class spell_devourer_of_souls_mirrored_soul_proc_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_devourer_of_souls_mirrored_soul_proc_AuraScript);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_MIRRORED_SOUL_DAMAGE))
+ return false;
+ return true;
+ }
+
+ bool Load() OVERRIDE
+ {
+ _procTarget = NULL;
+ return true;
+ }
+
+ bool CheckProc(ProcEventInfo& /*eventInfo*/)
+ {
+ _procTarget = GetCaster();
+ return _procTarget && _procTarget->IsAlive();
+ }
+
+ void HandleProc(AuraEffect const* /*aurEff*/, ProcEventInfo& eventInfo)
+ {
+ PreventDefaultAction();
+ int32 damage = int32(CalculatePct(eventInfo.GetDamageInfo()->GetDamage(), 45));
+ GetTarget()->CastCustomSpell(SPELL_MIRRORED_SOUL_DAMAGE, SPELLVALUE_BASE_POINT0, damage, _procTarget, true);
+ }
+
+ void Register() OVERRIDE
+ {
+ DoCheckProc += AuraCheckProcFn(spell_devourer_of_souls_mirrored_soul_proc_AuraScript::CheckProc);
+ OnEffectProc += AuraEffectProcFn(spell_devourer_of_souls_mirrored_soul_proc_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL);
+ }
+
+ private:
+ Unit* _procTarget;
+ };
+
+ AuraScript* GetAuraScript() const OVERRIDE
+ {
+ return new spell_devourer_of_souls_mirrored_soul_proc_AuraScript();
+ }
+};
+
+// 69048 - Mirrored Soul (Target Selector)
+class spell_devourer_of_souls_mirrored_soul_target_selector : public SpellScriptLoader
+{
+ public:
+ spell_devourer_of_souls_mirrored_soul_target_selector() : SpellScriptLoader("spell_devourer_of_souls_mirrored_soul_target_selector") { }
+
+ class spell_devourer_of_souls_mirrored_soul_target_selector_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_devourer_of_souls_mirrored_soul_target_selector_SpellScript);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_MIRRORED_SOUL_BUFF))
+ return false;
+ return true;
+ }
+
+ void FilterTargets(std::list<WorldObject*>& targets)
+ {
+ if (targets.empty())
+ return;
+
+ WorldObject* target = Trinity::Containers::SelectRandomContainerElement(targets);
+ targets.clear();
+ targets.push_back(target);
+ }
+
+ void HandleScript(SpellEffIndex /*effIndex*/)
+ {
+ if (Unit* target = GetHitUnit())
+ GetCaster()->CastSpell(target, SPELL_MIRRORED_SOUL_BUFF, false);
+ }
+
+ void Register() OVERRIDE
+ {
+ OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_devourer_of_souls_mirrored_soul_target_selector_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENTRY);
+ OnEffectHitTarget += SpellEffectFn(spell_devourer_of_souls_mirrored_soul_target_selector_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+ };
+
+ SpellScript* GetSpellScript() const OVERRIDE
+ {
+ return new spell_devourer_of_souls_mirrored_soul_target_selector_SpellScript();
+ }
+};
+
class achievement_three_faced : public AchievementCriteriaScript
{
public:
@@ -374,7 +489,7 @@ class achievement_three_faced : public AchievementCriteriaScript
{
}
- bool OnCheck(Player* /*player*/, Unit* target)
+ bool OnCheck(Player* /*player*/, Unit* target) OVERRIDE
{
if (!target)
return false;
@@ -390,5 +505,8 @@ class achievement_three_faced : public AchievementCriteriaScript
void AddSC_boss_devourer_of_souls()
{
new boss_devourer_of_souls();
+ new spell_devourer_of_souls_mirrored_soul();
+ new spell_devourer_of_souls_mirrored_soul_proc();
+ new spell_devourer_of_souls_mirrored_soul_target_selector();
new achievement_three_faced();
}
diff --git a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp
index efc687eb409..cfa149c134f 100644
--- a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp
@@ -59,7 +59,7 @@ enum Yells
SAY_SYLVANAS_INTRO_6 = 5,
};
-enum eSylvanas
+enum Misc
{
GOSSIP_SPEECHINTRO = 13525,
ACTION_INTRO,
@@ -89,13 +89,13 @@ public:
EventMap events;
Phase phase;
- void Reset()
+ void Reset() OVERRIDE
{
events.Reset();
phase = PHASE_NORMAL;
}
- void DoAction(int32 actionId)
+ void DoAction(int32 actionId) OVERRIDE
{
switch (actionId)
{
@@ -109,7 +109,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (phase == PHASE_INTRO)
{
@@ -161,9 +161,9 @@ public:
}
};
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
if (creature->GetEntry() == NPC_JAINA_PART1)
@@ -175,7 +175,7 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -191,7 +191,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_sylvanas_fosAI(creature);
}
@@ -215,13 +215,13 @@ public:
EventMap events;
Phase phase;
- void Reset()
+ void Reset() OVERRIDE
{
events.Reset();
phase = PHASE_NORMAL;
}
- void DoAction(int32 actionId)
+ void DoAction(int32 actionId) OVERRIDE
{
switch (actionId)
{
@@ -235,7 +235,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (phase == PHASE_INTRO)
{
@@ -298,9 +298,9 @@ public:
}
};
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
if (creature->GetEntry() == NPC_JAINA_PART1)
@@ -312,7 +312,7 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -328,7 +328,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_jaina_fosAI(creature);
}
diff --git a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/instance_forge_of_souls.cpp b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/instance_forge_of_souls.cpp
index 5014f78c9a3..ca4a9c43e60 100644
--- a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/instance_forge_of_souls.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/instance_forge_of_souls.cpp
@@ -47,7 +47,7 @@ class instance_forge_of_souls : public InstanceMapScript
{
Map::PlayerList const &players = instance->GetPlayers();
if (!players.isEmpty())
- if (Player* player = players.begin()->getSource())
+ if (Player* player = players.begin()->GetSource())
teamInInstance = player->GetTeam();
switch (creature->GetEntry())
@@ -73,7 +73,7 @@ class instance_forge_of_souls : public InstanceMapScript
}
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -86,7 +86,7 @@ class instance_forge_of_souls : public InstanceMapScript
return 0;
}
- uint64 GetData64(uint32 type) const
+ uint64 GetData64(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -149,7 +149,7 @@ class instance_forge_of_souls : public InstanceMapScript
uint32 teamInInstance;
};
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_forge_of_souls_InstanceScript(map);
}
diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/boss_falric.cpp b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/boss_falric.cpp
index 58dc74d0f0a..530741ea710 100644
--- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/boss_falric.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/boss_falric.cpp
@@ -19,7 +19,7 @@
#include "ScriptedCreature.h"
#include "halls_of_reflection.h"
-enum Yells
+enum Texts
{
SAY_AGGRO = 0,
SAY_SLAY = 1,
@@ -50,7 +50,7 @@ class boss_falric : public CreatureScript
public:
boss_falric() : CreatureScript("boss_falric") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_falricAI(creature);
}
@@ -61,41 +61,41 @@ public:
uint8 uiHopelessnessCount;
- void Reset()
+ void Reset() OVERRIDE
{
boss_horAI::Reset();
uiHopelessnessCount = 0;
if (instance)
- instance->SetData(DATA_FALRIC_EVENT, NOT_STARTED);
+ instance->SetBossState(DATA_FALRIC_EVENT, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
if (instance)
- instance->SetData(DATA_FALRIC_EVENT, IN_PROGRESS);
+ instance->SetBossState(DATA_FALRIC_EVENT, IN_PROGRESS);
events.ScheduleEvent(EVENT_QUIVERING_STRIKE, 23000);
events.ScheduleEvent(EVENT_IMPENDING_DESPAIR, 9000);
events.ScheduleEvent(EVENT_DEFILING_HORROR, urand(25000, 45000)); /// @todo adjust timer.
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
if (instance)
- instance->SetData(DATA_FALRIC_EVENT, DONE);
+ instance->SetBossState(DATA_FALRIC_EVENT, DONE);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
// Return since we have no target
if (!UpdateVictim())
diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/boss_marwyn.cpp b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/boss_marwyn.cpp
index 08d5cf70ee1..49fd7481dde 100644
--- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/boss_marwyn.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/boss_marwyn.cpp
@@ -19,7 +19,7 @@
#include "ScriptedCreature.h"
#include "halls_of_reflection.h"
-enum Yells
+enum Texts
{
SAY_AGGRO = 0,
SAY_SLAY = 1,
@@ -49,7 +49,7 @@ class boss_marwyn : public CreatureScript
public:
boss_marwyn() : CreatureScript("boss_marwyn") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_marwynAI(creature);
}
@@ -58,19 +58,19 @@ public:
{
boss_marwynAI(Creature* creature) : boss_horAI(creature) {}
- void Reset()
+ void Reset() OVERRIDE
{
boss_horAI::Reset();
if (instance)
- instance->SetData(DATA_MARWYN_EVENT, NOT_STARTED);
+ instance->SetBossState(DATA_MARWYN_EVENT, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
if (instance)
- instance->SetData(DATA_MARWYN_EVENT, IN_PROGRESS);
+ instance->SetBossState(DATA_MARWYN_EVENT, IN_PROGRESS);
events.ScheduleEvent(EVENT_OBLITERATE, 30000); /// @todo Check timer
events.ScheduleEvent(EVENT_WELL_OF_CORRUPTION, 13000);
@@ -78,20 +78,20 @@ public:
events.ScheduleEvent(EVENT_SHARED_SUFFERING, 20000); /// @todo Check timer
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
if (instance)
- instance->SetData(DATA_MARWYN_EVENT, DONE);
+ instance->SetBossState(DATA_MARWYN_EVENT, DONE);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
// Return since we have no target
if (!UpdateVictim())
diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp
index b140801d8f1..6408417e902 100644
--- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp
@@ -18,10 +18,10 @@
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
-#include "halls_of_reflection.h"
#include "Player.h"
+#include "halls_of_reflection.h"
-enum Yells
+enum Text
{
SAY_JAINA_INTRO_1 = 0,
SAY_JAINA_INTRO_2 = 1,
@@ -36,6 +36,17 @@ enum Yells
SAY_JAINA_INTRO_11 = 10,
SAY_JAINA_INTRO_END = 11,
+ SAY_JAINA_ESCAPE_1 = 0,
+ SAY_JAINA_ESCAPE_2 = 1,
+ SAY_JAINA_ESCAPE_3 = 2,
+ SAY_JAINA_ESCAPE_4 = 3,
+ SAY_JAINA_ESCAPE_5 = 4,
+ SAY_JAINA_ESCAPE_6 = 5,
+ SAY_JAINA_ESCAPE_7 = 6,
+ SAY_JAINA_ESCAPE_8 = 7,
+ SAY_JAINA_ESCAPE_9 = 8,
+ SAY_JAINA_ESCAPE_10 = 9,
+
SAY_SYLVANAS_INTRO_1 = 0,
SAY_SYLVANAS_INTRO_2 = 1,
SAY_SYLVANAS_INTRO_3 = 2,
@@ -46,6 +57,16 @@ enum Yells
SAY_SYLVANAS_INTRO_8 = 7,
SAY_SYLVANAS_INTRO_END = 8,
+ SAY_SYLVANAS_ESCAPE_1 = 0,
+ SAY_SYLVANAS_ESCAPE_2 = 1,
+ SAY_SYLVANAS_ESCAPE_3 = 2,
+ SAY_SYLVANAS_ESCAPE_4 = 3,
+ SAY_SYLVANAS_ESCAPE_5 = 4,
+ SAY_SYLVANAS_ESCAPE_6 = 5,
+ SAY_SYLVANAS_ESCAPE_7 = 6,
+ SAY_SYLVANAS_ESCAPE_8 = 7,
+ SAY_SYLVANAS_ESCAPE_9 = 8,
+
SAY_UTHER_INTRO_A2_1 = 0,
SAY_UTHER_INTRO_A2_2 = 1,
SAY_UTHER_INTRO_A2_3 = 2,
@@ -66,17 +87,31 @@ enum Yells
SAY_LK_INTRO_1 = 0,
SAY_LK_INTRO_2 = 1,
SAY_LK_INTRO_3 = 2,
+ SAY_LK_JAINA_INTRO_END = 3,
+ SAY_LK_SYLVANAS_INTRO_END = 4,
+
+ SAY_LK_ESCAPE_1 = 0,
+ SAY_LK_ESCAPE_2 = 1,
+ SAY_LK_ESCAPE_3 = 2,
+ SAY_LK_ESCAPE_4 = 3,
+ SAY_LK_ESCAPE_5 = 4,
+ SAY_LK_ESCAPE_6 = 5,
+ SAY_LK_ESCAPE_7 = 6,
+ SAY_LK_ESCAPE_8 = 7,
+ SAY_LK_ESCAPE_9 = 8,
+ SAY_LK_ESCAPE_10 = 9,
+ SAY_LK_ESCAPE_11 = 10,
SAY_FALRIC_INTRO_1 = 5,
SAY_FALRIC_INTRO_2 = 6,
- SAY_MARWYN_INTRO_1 = 4
+ SAY_MARWYN_INTRO_1 = 4,
};
enum Events
{
- EVENT_NONE,
-
+ EVENT_WALK_INTRO1 = 1,
+ EVENT_WALK_INTRO2,
EVENT_START_INTRO,
EVENT_SKIP_INTRO,
@@ -125,11 +160,45 @@ enum Events
EVENT_INTRO_LK_7,
EVENT_INTRO_LK_8,
EVENT_INTRO_LK_9,
+ EVENT_INTRO_LK_10,
+ EVENT_INTRO_LK_11,
EVENT_INTRO_END,
+
+ EVENT_ESCAPE,
+ EVENT_ESCAPE_1,
+ EVENT_ESCAPE_2,
+ EVENT_ESCAPE_3,
+ EVENT_ESCAPE_4,
+ EVENT_ESCAPE_5,
+ EVENT_ESCAPE_6,
+ EVENT_ESCAPE_7,
+ EVENT_ESCAPE_8,
+ EVENT_ESCAPE_9,
+ EVENT_ESCAPE_10,
+ EVENT_ESCAPE_11,
+ EVENT_ESCAPE_12,
+ EVENT_ESCAPE_13,
+ EVENT_ESCAPE_14,
+ EVENT_ESCAPE_15,
+ EVENT_ESCAPE_16,
+ EVENT_ESCAPE_17,
+ EVENT_ESCAPE_18,
+ EVENT_ESCAPE_19,
+ EVENT_ESCAPE_20,
+ EVENT_ESCAPE_21,
+ EVENT_ESCAPE_22,
+ EVENT_ESCAPE_23,
+ EVENT_ESCAPE_24,
+ EVENT_ESCAPE_25,
+ EVENT_ESCAPE_26,
+ EVENT_ESCAPE_27,
+
+ EVENT_OPEN_FROSTWORN_DOOR,
+ EVENT_CLOSE_FROSTWORN_DOOR,
};
-enum eEnum
+enum Misc
{
ACTION_START_INTRO,
ACTION_SKIP_INTRO,
@@ -140,419 +209,927 @@ enum eEnum
QUEST_WRATH_OF_THE_LICH_KING_H2 = 24802,
};
-const Position HallsofReflectionLocs[]=
+enum Spells
+{
+ SPELL_CAST_VISUAL = 65633, // Jaina/Sylavana
+ SPELL_BOSS_SPAWN_AURA = 72712, // Falric and Marwyn
+ SPELL_UTHER_DESPAWN = 70693,
+ SPELL_TAKE_FROSTMOURNE = 72729,
+ SPELL_FROSTMOURNE_DESPAWN = 72726,
+ SPELL_FROSTMOURNE_VISUAL = 73220,
+ SPELL_FROSTMOURNE_SOUNDS = 70667,
+ SPELL_JAINA_ICEBARRIER = 69787, // Jaina Ice Barrier
+ SPELL_JAINA_ICEPRISON = 69708, // Jaina Ice Prison
+ SPELL_SYLVANAS_CLOAKOFDARKNESS = 70188, // Sylvanas Cloak of Darkness
+ SPELL_SYLVANAS_DARKBINDING = 70194, // Sylvanas Dark Binding
+ SPELL_REMORSELESS_WINTER = 69780, // Lich King Remorseless Winter
+ SPELL_SOUL_REAPER = 69409, // Lich King Soul Reaper
+ SPELL_FURY_OF_FROSTMOURNE = 70063, // Lich King Fury of FrostMourne
+ SPELL_JAINA_DESTROY_ICE_WALL = 69784, // Jaina
+ SPELL_SYLVANAS_DESTROY_ICE_WALL = 70225, // Sylvanas
+ SPELL_SYLVANAS_JUMP = 68339, // Sylvanas Jump
+ SPELL_RAISE_DEAD = 69818,
+ SPELL_HARVEST_SOUL = 70070,
+ SPELL_SUMMON_RISE_WITCH_DOCTOR = 69836,
+ SPELL_SUMMON_LUMBERING_ABOMINATION = 69835,
+ SPELL_SUMMON_ICE_WALL = 69768, // Visual effect and icewall summoning
+
+ //Raging gnoul
+ SPELL_EMERGE_VISUAL = 50142,
+ SPELL_GHOUL_JUMP = 70150,
+
+ //Witch Doctor
+ SPELL_COURSE_OF_DOOM = 70144,
+ SPELL_SHADOW_BOLT_VOLLEY = 70145,
+ SPELL_SHADOW_BOLT = 70080,
+
+ //Lumbering Abomination
+ SPELL_ABON_STRIKE = 40505,
+ SPELL_VOMIT_SPRAY = 70176,
+};
+
+const Position HallsofReflectionLocs[] =
{
{5283.234863f, 1990.946777f, 707.695679f, 0.929097f}, // 2 Loralen Follows
{5408.031250f, 2102.918213f, 707.695251f, 0.792756f}, // 9 Sylvanas Follows
{5401.866699f, 2110.837402f, 707.695251f, 0.800610f}, // 10 Loralen follows
};
-const Position SpawnPos = {5262.540527f, 1949.693726f, 707.695007f, 0.808736f}; // Jaina/Sylvanas Beginning Position
-const Position MoveThronePos = {5306.952148f, 1998.499023f, 709.341431f, 1.277278f}; // Jaina/Sylvanas walks to throne
-const Position UtherSpawnPos = {5308.310059f, 2003.857178f, 709.341431f, 4.650315f};
-const Position LichKingSpawnPos = {5362.917480f, 2062.307129f, 707.695374f, 3.945812f};
-const Position LichKingMoveThronePos = {5312.080566f, 2009.172119f, 709.341431f, 3.973301f}; // Lich King walks to throne
-const Position LichKingMoveAwayPos = {5400.069824f, 2102.7131689f, 707.69525f, 0.843803f}; // Lich King walks away
-
-class npc_jaina_or_sylvanas_hor : public CreatureScript
+const Position NpcJainaOrSylvanasEscapeRoute[] =
{
-private:
- bool m_isSylvana;
-
-public:
- npc_jaina_or_sylvanas_hor(bool isSylvana, const char* name) : CreatureScript(name), m_isSylvana(isSylvana) { }
-
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
- {
- player->PlayerTalkClass->ClearMenus();
- switch (action)
- {
- case GOSSIP_ACTION_INFO_DEF+1:
- player->CLOSE_GOSSIP_MENU();
- if (creature->AI())
- creature->AI()->DoAction(ACTION_START_INTRO);
- creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
- break;
- case GOSSIP_ACTION_INFO_DEF+2:
- player->CLOSE_GOSSIP_MENU();
- if (creature->AI())
- creature->AI()->DoAction(ACTION_SKIP_INTRO);
- creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
- break;
- }
-
- return true;
- }
-
- bool OnGossipHello(Player* player, Creature* creature)
- {
- if (creature->isQuestGiver())
- player->PrepareQuestMenu(creature->GetGUID());
-
- QuestStatus status = player->GetQuestStatus(m_isSylvana ? QUEST_DELIVRANCE_FROM_THE_PIT_H2 : QUEST_DELIVRANCE_FROM_THE_PIT_A2);
- if (status == QUEST_STATUS_COMPLETE || status == QUEST_STATUS_REWARDED)
- player->ADD_GOSSIP_ITEM( 0, "Can you remove the sword?", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
+ {5601.217285f, 2207.652832f, 731.541931f, 5.223304f}, // leave the throne room
+ {5607.224375f, 2173.913330f, 731.126038f, 2.608723f}, // adjust route
+ {5583.427246f, 2138.784180f, 731.150391f, 4.260901f}, // stop for talking
+ {5560.281738f, 2104.025635f, 731.410889f, 4.058383f}, // attack the first icewall
+ {5510.990723f, 2000.772217f, 734.716064f, 3.973213f}, // attack the second icewall
+ {5452.641113f, 1905.762329f, 746.530579f, 4.118834f}, // attack the third icewall
+ {5338.126953f, 1768.429810f, 767.237244f, 3.855189f}, // attack the fourth icewall
+ {5257.712402f, 1669.379395f, 784.300110f, 0.908373f}, // face the Lich king
+ {5261.191895f, 1681.901611f, 784.285278f, 4.410465f}, // final position
+};
- // once last quest is completed, she offers this shortcut of the starting event
- status = player->GetQuestStatus(m_isSylvana ? QUEST_WRATH_OF_THE_LICH_KING_H2 : QUEST_WRATH_OF_THE_LICH_KING_A2);
- if (status == QUEST_STATUS_COMPLETE || status == QUEST_STATUS_REWARDED)
- player->ADD_GOSSIP_ITEM( 0, "Dark Lady, I think I hear Arthas coming. Whatever you're going to do, do it quickly.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
+const Position IceWalls[] =
+{
+ {5547.833f, 2083.701f,731.4332f,4.24115f}, // first icewall
+ {5503.213f, 1969.547f,737.0245f,4.293779f},// second icewall
+ {5439.976f, 1879.005f,752.7048f,4.207591f},// third icewall
+ {5318.289f, 1749.184f,771.9423f,4.054276f},// fourth icewall
+};
- player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, creature->GetGUID());
- return true;
- }
+const Position IntroPos = {5265.89f, 1952.98f, 707.6978f, 0.0f}; // Jaina/Sylvanas Intro Start Position
+const Position MoveThronePos = {5306.952148f, 1998.499023f, 709.341431f, 1.277278f}; // Jaina/Sylvanas walks to throne
+const Position UtherSpawnPos = {5308.310059f, 2003.857178f, 709.341431f, 4.650315f};
+const Position LichKingSpawnPos = {5362.917480f, 2062.307129f, 707.695374f, 3.945812f};
+const Position LichKingMoveThronePos = {5312.080566f, 2009.172119f, 709.341431f, 3.973301f}; // Lich King walks to throne
+const Position LichKingMoveAwayPos = {5400.069824f, 2102.7131689f, 707.69525f, 0.843803f}; // Lich King walks away
+const Position LichKingSpawnPos2 = {5552.733398f, 2262.718506f, 733.011047f, 4.009696f}; // Lich King Spawn Position 2
+const Position LichKingFirstSummon = {5600.076172f, 2192.270996f, 731.750488f, 4.330935f}; // Lich King First summons
+const Position JainaShadowThroneDoor = {5577.243f, 2235.852f, 733.0128f, 2.209562f}; // Jaina Spawn Position 2
+const Position SylvanasShadowThroneDoor = {5577.243f, 2235.852f, 733.0128f, 2.209562f}; // Sylvanas Spawn Position 2
+const Position FalricStartPos = {5283.878906f, 2030.459595f, 709.319641f, 5.506670f}; // Falric start position
+const Position MarwynStartPos = {5334.979980f, 1982.399536f, 709.320129f, 2.347014f}; // Marwyn start position
+const Position LichKingFinalPos = {5283.742188f, 1706.335693f, 783.293518f, 4.138510f}; // Lich King Final Pos
+const Position ChestPos = {5246.187500f, 1649.079468f, 784.301758f, 0.901268f}; // Chest position
+const Position FinalPortalPos = {5270.634277f ,1639.101196f, 784.303040f, 1.682743f}; // Final portal position
- CreatureAI* GetAI(Creature* creature) const
- {
- return new npc_jaina_or_sylvanas_horAI(creature);
- }
+class npc_jaina_or_sylvanas_hor : public CreatureScript
+{
+ public:
+ npc_jaina_or_sylvanas_hor() : CreatureScript("npc_jaina_or_sylvanas_hor") { }
- // AI of Part1: handle the intro till start of gauntlet event.
+ // AI of Part1
struct npc_jaina_or_sylvanas_horAI : public ScriptedAI
{
npc_jaina_or_sylvanas_horAI(Creature* creature) : ScriptedAI(creature)
{
- instance = me->GetInstanceScript();
+ _instance = me->GetInstanceScript();
}
- InstanceScript* instance;
- uint64 utherGUID;
- uint64 lichkingGUID;
+ InstanceScript* _instance;
+ uint64 _utherGUID;
+ uint64 _lichkingGUID;
- EventMap events;
+ EventMap _events;
- void Reset()
+ void sGossipSelect(Player* player, uint32 /*sender*/, uint32 action) OVERRIDE
{
- events.Reset();
+ player->PlayerTalkClass->ClearMenus();
+ switch (action)
+ {
+ case 0:
+ player->CLOSE_GOSSIP_MENU();
+ _events.ScheduleEvent(EVENT_START_INTRO, 1000);
+ me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP|UNIT_NPC_FLAG_QUESTGIVER);
+ break;
+ case 1:
+ player->CLOSE_GOSSIP_MENU();
+ _events.ScheduleEvent(EVENT_SKIP_INTRO, 1000);
+ me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP|UNIT_NPC_FLAG_QUESTGIVER);
+ break;
+ }
+ }
- utherGUID = 0;
- lichkingGUID = 0;
+ void Reset() OVERRIDE
+ {
+ _events.Reset();
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ _utherGUID = 0;
+ _lichkingGUID = 0;
+
+ me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP|UNIT_NPC_FLAG_QUESTGIVER);
me->SetStandState(UNIT_STAND_STATE_STAND);
- me->SetVisible(true);
+ _events.ScheduleEvent(EVENT_WALK_INTRO1, 3000);
}
- void DoAction(int32 actionId)
+ void UpdateAI(uint32 diff) OVERRIDE
{
- switch (actionId)
+ _events.Update(diff);
+ switch (_events.ExecuteEvent())
{
- case ACTION_START_INTRO:
- events.ScheduleEvent(EVENT_START_INTRO, 0);
+ case EVENT_WALK_INTRO1:
+ me->GetMotionMaster()->MovePoint(0, IntroPos);
+ if (_instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE)
+ {
+ Talk(SAY_JAINA_INTRO_1);
+ _events.ScheduleEvent(EVENT_WALK_INTRO2, 7000);
+ }
+ else
+ {
+ Talk(SAY_SYLVANAS_INTRO_1);
+ _events.ScheduleEvent(EVENT_WALK_INTRO2, 9000);
+ }
break;
- case ACTION_SKIP_INTRO:
- events.ScheduleEvent(EVENT_SKIP_INTRO, 0);
+ case EVENT_WALK_INTRO2:
+ if (_instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE)
+ Talk(SAY_JAINA_INTRO_2);
+ else
+ Talk(SAY_SYLVANAS_INTRO_2);
+ me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP|UNIT_NPC_FLAG_QUESTGIVER);
break;
- }
- }
-
- void UpdateAI(uint32 diff)
- {
- events.Update(diff);
- switch (events.ExecuteEvent())
- {
case EVENT_START_INTRO:
me->GetMotionMaster()->MovePoint(0, MoveThronePos);
// Begining of intro is differents between fActions as the speech sequence and timers are differents.
- if (instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE)
- events.ScheduleEvent(EVENT_INTRO_A2_1, 0);
+ if (_instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE)
+ _events.ScheduleEvent(EVENT_INTRO_A2_1, 0);
else
- events.ScheduleEvent(EVENT_INTRO_H2_1, 0);
+ _events.ScheduleEvent(EVENT_INTRO_H2_1, 0);
break;
-
- // A2 Intro Events
+ // A2 Intro Events
case EVENT_INTRO_A2_1:
Talk(SAY_JAINA_INTRO_3);
- events.ScheduleEvent(EVENT_INTRO_A2_2, 5000);
+ _events.ScheduleEvent(EVENT_INTRO_A2_2, 7000);
break;
case EVENT_INTRO_A2_2:
Talk(SAY_JAINA_INTRO_4);
- events.ScheduleEvent(EVENT_INTRO_A2_3, 10000);
+ _events.ScheduleEvent(EVENT_INTRO_A2_3, 10000);
break;
case EVENT_INTRO_A2_3:
- /// @todo she's doing some kind of spell casting emote
- instance->HandleGameObject(instance->GetData64(DATA_FROSTMOURNE), true);
- events.ScheduleEvent(EVENT_INTRO_A2_4, 10000);
+ me->CastSpell(me, SPELL_CAST_VISUAL, false);
+ me->CastSpell(me, SPELL_FROSTMOURNE_SOUNDS, true);
+ _instance->HandleGameObject(_instance->GetData64(DATA_FROSTMOURNE), true);
+ _events.ScheduleEvent(EVENT_INTRO_A2_4, 10000);
break;
case EVENT_INTRO_A2_4:
- // spawn UTHER during speach 2
if (Creature* uther = me->SummonCreature(NPC_UTHER, UtherSpawnPos, TEMPSUMMON_MANUAL_DESPAWN))
{
uther->GetMotionMaster()->MoveIdle();
- uther->SetReactState(REACT_PASSIVE); // be sure he will not aggro arthas
- utherGUID = uther->GetGUID();
+ _utherGUID = uther->GetGUID();
}
- events.ScheduleEvent(EVENT_INTRO_A2_5, 2000);
+ _events.ScheduleEvent(EVENT_INTRO_A2_5, 2000);
break;
case EVENT_INTRO_A2_5:
- if (Creature* uther = me->GetCreature(*me, utherGUID))
+ if (Creature* uther = me->GetCreature(*me, _utherGUID))
uther->AI()->Talk(SAY_UTHER_INTRO_A2_1);
- events.ScheduleEvent(EVENT_INTRO_A2_6, 3000);
+ _events.ScheduleEvent(EVENT_INTRO_A2_6, 3000);
break;
case EVENT_INTRO_A2_6:
Talk(SAY_JAINA_INTRO_5);
- events.ScheduleEvent(EVENT_INTRO_A2_7, 6000);
+ _events.ScheduleEvent(EVENT_INTRO_A2_7, 7000);
break;
case EVENT_INTRO_A2_7:
- if (Creature* uther = me->GetCreature(*me, utherGUID))
+ if (Creature* uther = me->GetCreature(*me, _utherGUID))
uther->AI()->Talk(SAY_UTHER_INTRO_A2_2);
- events.ScheduleEvent(EVENT_INTRO_A2_8, 6500);
+ _events.ScheduleEvent(EVENT_INTRO_A2_8, 7000);
break;
case EVENT_INTRO_A2_8:
Talk(SAY_JAINA_INTRO_6);
- events.ScheduleEvent(EVENT_INTRO_A2_9, 2000);
+ _events.ScheduleEvent(EVENT_INTRO_A2_9, 1200);
break;
case EVENT_INTRO_A2_9:
- if (Creature* uther = me->GetCreature(*me, utherGUID))
+ if (Creature* uther = me->GetCreature(*me, _utherGUID))
uther->AI()->Talk(SAY_UTHER_INTRO_A2_3);
- events.ScheduleEvent(EVENT_INTRO_A2_10, 9000);
+ _events.ScheduleEvent(EVENT_INTRO_A2_10, 11000);
break;
case EVENT_INTRO_A2_10:
Talk(SAY_JAINA_INTRO_7);
- events.ScheduleEvent(EVENT_INTRO_A2_11, 5000);
+ _events.ScheduleEvent(EVENT_INTRO_A2_11, 6000);
break;
case EVENT_INTRO_A2_11:
- if (Creature* uther = me->GetCreature(*me, utherGUID))
+ if (Creature* uther = me->GetCreature(*me, _utherGUID))
uther->AI()->Talk(SAY_UTHER_INTRO_A2_4);
- events.ScheduleEvent(EVENT_INTRO_A2_12, 11000);
+ _events.ScheduleEvent(EVENT_INTRO_A2_12, 12000);
break;
case EVENT_INTRO_A2_12:
Talk(SAY_JAINA_INTRO_8);
- events.ScheduleEvent(EVENT_INTRO_A2_13, 4000);
+ _events.ScheduleEvent(EVENT_INTRO_A2_13, 6000);
break;
case EVENT_INTRO_A2_13:
- if (Creature* uther = me->GetCreature(*me, utherGUID))
+ if (Creature* uther = me->GetCreature(*me, _utherGUID))
uther->AI()->Talk(SAY_UTHER_INTRO_A2_5);
- events.ScheduleEvent(EVENT_INTRO_A2_14, 12500);
+ _events.ScheduleEvent(EVENT_INTRO_A2_14, 13000);
break;
case EVENT_INTRO_A2_14:
Talk(SAY_JAINA_INTRO_9);
- events.ScheduleEvent(EVENT_INTRO_A2_15, 10000);
+ _events.ScheduleEvent(EVENT_INTRO_A2_15, 12000);
break;
case EVENT_INTRO_A2_15:
- if (Creature* uther = me->GetCreature(*me, utherGUID))
+ if (Creature* uther = me->GetCreature(*me, _utherGUID))
uther->AI()->Talk(SAY_UTHER_INTRO_A2_6);
- events.ScheduleEvent(EVENT_INTRO_A2_16, 22000);
+ _events.ScheduleEvent(EVENT_INTRO_A2_16, 25000);
break;
case EVENT_INTRO_A2_16:
- if (Creature* uther = me->GetCreature(*me, utherGUID))
+ if (Creature* uther = me->GetCreature(*me, _utherGUID))
uther->AI()->Talk(SAY_UTHER_INTRO_A2_7);
- events.ScheduleEvent(EVENT_INTRO_A2_17, 4000);
+ _events.ScheduleEvent(EVENT_INTRO_A2_17, 6000);
break;
case EVENT_INTRO_A2_17:
Talk(SAY_JAINA_INTRO_10);
- events.ScheduleEvent(EVENT_INTRO_A2_18, 2000);
+ _events.ScheduleEvent(EVENT_INTRO_A2_18, 5000);
break;
case EVENT_INTRO_A2_18:
- if (Creature* uther = me->GetCreature(*me, utherGUID))
+ if (Creature* uther = me->GetCreature(*me, _utherGUID))
{
uther->HandleEmoteCommand(EMOTE_ONESHOT_NO);
uther->AI()->Talk(SAY_UTHER_INTRO_A2_8);
}
- events.ScheduleEvent(EVENT_INTRO_A2_19, 11000);
+ _events.ScheduleEvent(EVENT_INTRO_A2_19, 12000);
break;
case EVENT_INTRO_A2_19:
Talk(SAY_JAINA_INTRO_11);
- events.ScheduleEvent(EVENT_INTRO_LK_1, 2000);
+ _events.ScheduleEvent(EVENT_INTRO_LK_1, 3000);
break;
-
- // H2 Intro Events
+ // H2 Intro Events
case EVENT_INTRO_H2_1:
Talk(SAY_SYLVANAS_INTRO_1);
- events.ScheduleEvent(EVENT_INTRO_H2_2, 8000);
+ _events.ScheduleEvent(EVENT_INTRO_H2_2, 8000);
break;
case EVENT_INTRO_H2_2:
Talk(SAY_SYLVANAS_INTRO_2);
- events.ScheduleEvent(EVENT_INTRO_H2_3, 6000);
+ _events.ScheduleEvent(EVENT_INTRO_H2_3, 6000);
break;
case EVENT_INTRO_H2_3:
Talk(SAY_SYLVANAS_INTRO_3);
- /// @todo she's doing some kind of spell casting emote
- events.ScheduleEvent(EVENT_INTRO_H2_4, 6000);
+ me->CastSpell(me, SPELL_CAST_VISUAL, false);
+ me->CastSpell(me, SPELL_FROSTMOURNE_SOUNDS, true);
+ _instance->HandleGameObject(_instance->GetData64(DATA_FROSTMOURNE), true);
+ _events.ScheduleEvent(EVENT_INTRO_H2_4, 6000);
break;
case EVENT_INTRO_H2_4:
// spawn UTHER during speach 2
if (Creature* uther = me->SummonCreature(NPC_UTHER, UtherSpawnPos, TEMPSUMMON_MANUAL_DESPAWN))
{
uther->GetMotionMaster()->MoveIdle();
- uther->SetReactState(REACT_PASSIVE); // be sure he will not aggro arthas
- utherGUID = uther->GetGUID();
+ _utherGUID = uther->GetGUID();
}
- events.ScheduleEvent(EVENT_INTRO_H2_5, 2000);
+ _events.ScheduleEvent(EVENT_INTRO_H2_5, 2000);
break;
case EVENT_INTRO_H2_5:
- if (Creature* uther = me->GetCreature(*me, utherGUID))
+ if (Creature* uther = me->GetCreature(*me, _utherGUID))
uther->AI()->Talk(SAY_UTHER_INTRO_H2_1);
- events.ScheduleEvent(EVENT_INTRO_H2_6, 11000);
+ _events.ScheduleEvent(EVENT_INTRO_H2_6, 11000);
break;
case EVENT_INTRO_H2_6:
Talk(SAY_SYLVANAS_INTRO_4);
- events.ScheduleEvent(EVENT_INTRO_H2_7, 3000);
+ _events.ScheduleEvent(EVENT_INTRO_H2_7, 3000);
break;
case EVENT_INTRO_H2_7:
- if (Creature* uther = me->GetCreature(*me, utherGUID))
+ if (Creature* uther = me->GetCreature(*me, _utherGUID))
uther->AI()->Talk(SAY_UTHER_INTRO_H2_2);
- events.ScheduleEvent(EVENT_INTRO_H2_8, 6000);
+ _events.ScheduleEvent(EVENT_INTRO_H2_8, 6000);
break;
case EVENT_INTRO_H2_8:
Talk(SAY_SYLVANAS_INTRO_5);
- events.ScheduleEvent(EVENT_INTRO_H2_9, 5000);
+ _events.ScheduleEvent(EVENT_INTRO_H2_9, 5000);
break;
case EVENT_INTRO_H2_9:
- if (Creature* uther = me->GetCreature(*me, utherGUID))
+ if (Creature* uther = me->GetCreature(*me, _utherGUID))
uther->AI()->Talk(SAY_UTHER_INTRO_H2_3);
- events.ScheduleEvent(EVENT_INTRO_H2_10, 19000);
+ _events.ScheduleEvent(EVENT_INTRO_H2_10, 19000);
break;
case EVENT_INTRO_H2_10:
Talk(SAY_SYLVANAS_INTRO_6);
- events.ScheduleEvent(EVENT_INTRO_H2_11, 1500);
+ _events.ScheduleEvent(EVENT_INTRO_H2_11, 1500);
break;
case EVENT_INTRO_H2_11:
- if (Creature* uther = me->GetCreature(*me, utherGUID))
+ if (Creature* uther = me->GetCreature(*me, _utherGUID))
uther->AI()->Talk(SAY_UTHER_INTRO_H2_4);
- events.ScheduleEvent(EVENT_INTRO_H2_12, 19500);
+ _events.ScheduleEvent(EVENT_INTRO_H2_12, 19500);
break;
case EVENT_INTRO_H2_12:
Talk(SAY_SYLVANAS_INTRO_7);
- events.ScheduleEvent(EVENT_INTRO_H2_13, 2000);
+ _events.ScheduleEvent(EVENT_INTRO_H2_13, 2000);
break;
case EVENT_INTRO_H2_13:
- if (Creature* uther = me->GetCreature(*me, utherGUID))
+ if (Creature* uther = me->GetCreature(*me, _utherGUID))
{
uther->HandleEmoteCommand(EMOTE_ONESHOT_NO);
uther->AI()->Talk(SAY_UTHER_INTRO_H2_5);
}
- events.ScheduleEvent(EVENT_INTRO_H2_14, 12000);
+ _events.ScheduleEvent(EVENT_INTRO_H2_14, 12000);
break;
case EVENT_INTRO_H2_14:
- if (Creature* uther = me->GetCreature(*me, utherGUID))
+ if (Creature* uther = me->GetCreature(*me, _utherGUID))
uther->AI()->Talk(SAY_UTHER_INTRO_H2_6);
- events.ScheduleEvent(EVENT_INTRO_H2_15, 8000);
+ _events.ScheduleEvent(EVENT_INTRO_H2_15, 8000);
break;
case EVENT_INTRO_H2_15:
Talk(SAY_SYLVANAS_INTRO_8);
- events.ScheduleEvent(EVENT_INTRO_LK_1, 2000);
+ _events.ScheduleEvent(EVENT_INTRO_LK_1, 2000);
break;
-
- // Remaining Intro Events common for both faction
+ // Remaining Intro Events common for both faction
case EVENT_INTRO_LK_1:
// Spawn LK in front of door, and make him move to the sword.
- if (Creature* lichking = me->SummonCreature(NPC_LICH_KING_EVENT, LichKingSpawnPos, TEMPSUMMON_MANUAL_DESPAWN))
+ if (Creature* lichking = me->SummonCreature(NPC_LICH_KING_PART1, LichKingSpawnPos, TEMPSUMMON_MANUAL_DESPAWN))
{
+ lichking->SetWalk(true);
lichking->GetMotionMaster()->MovePoint(0, LichKingMoveThronePos);
- lichking->SetReactState(REACT_PASSIVE);
- lichkingGUID = lichking->GetGUID();
+ _lichkingGUID = lichking->GetGUID();
+ _events.ScheduleEvent(EVENT_OPEN_FROSTWORN_DOOR, 0);
+ _events.ScheduleEvent(EVENT_CLOSE_FROSTWORN_DOOR, 4000);
}
-
- if (Creature* uther = me->GetCreature(*me, utherGUID))
+ if (Creature* uther = me->GetCreature(*me, _utherGUID))
{
- if (instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE)
+ uther->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_COWER);
+ if (_instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE)
uther->AI()->Talk(SAY_UTHER_INTRO_A2_9);
else
uther->AI()->Talk(SAY_UTHER_INTRO_H2_7);
}
-
- events.ScheduleEvent(EVENT_INTRO_LK_2, 11000);
+ _events.ScheduleEvent(EVENT_INTRO_LK_2, 10000);
break;
-
case EVENT_INTRO_LK_2:
- if (Creature* lichking = me->GetCreature(*me, lichkingGUID))
- lichking->AI()->Talk(SAY_LK_INTRO_1);
- events.ScheduleEvent(EVENT_INTRO_LK_3, 2000);
- break;
-
+ if (Creature* lichking = me->GetCreature(*me, _lichkingGUID))
+ lichking->AI()->Talk(SAY_LK_INTRO_1);
+ _events.ScheduleEvent(EVENT_INTRO_LK_3, 1000);
+ break;
case EVENT_INTRO_LK_3:
- // The Lich King banishes Uther to the abyss.
- if (Creature* uther = me->GetCreature(*me, utherGUID))
- {
- uther->DisappearAndDie();
- utherGUID = 0;
- }
-
- // He steps forward and removes the runeblade from the heap of skulls.
-
- events.ScheduleEvent(EVENT_INTRO_LK_4, 4000);
- break;
-
+ // The Lich King banishes Uther to the abyss.
+ if (Creature* uther = me->GetCreature(*me, _utherGUID))
+ {
+ uther->CastSpell(uther, SPELL_UTHER_DESPAWN, true);
+ uther->DespawnOrUnsummon(5000);
+ _utherGUID = 0;
+ }
+ _events.ScheduleEvent(EVENT_INTRO_LK_4, 9000);
+ break;
case EVENT_INTRO_LK_4:
- if (Creature* lichking = me->GetCreature(*me, lichkingGUID))
- lichking->AI()->Talk(SAY_LK_INTRO_2);
- events.ScheduleEvent(EVENT_INTRO_LK_5, 10000);
+ // He steps forward and removes the runeblade from the heap of skulls.
+ if (Creature* lichking = me->GetCreature(*me, _lichkingGUID))
+ {
+ if (GameObject* frostmourne = ObjectAccessor::GetGameObject(*me, _instance->GetData64(DATA_FROSTMOURNE)))
+ frostmourne->SetPhaseMask(2, true);
+ lichking->CastSpell(lichking, SPELL_TAKE_FROSTMOURNE, true);
+ lichking->CastSpell(lichking, SPELL_FROSTMOURNE_VISUAL, true);
+ }
+ _events.ScheduleEvent(EVENT_INTRO_LK_5, 8000);
break;
-
case EVENT_INTRO_LK_5:
+ if (Creature* lichking = me->GetCreature(*me, _lichkingGUID))
+ lichking->AI()->Talk(SAY_LK_INTRO_2);
+ _events.ScheduleEvent(EVENT_INTRO_LK_6, 10000);
+ break;
+ case EVENT_INTRO_LK_6:
// summon Falric and Marwyn. then go back to the door
- if (Creature* pFalric = me->GetCreature(*me, instance->GetData64(DATA_FALRIC)))
- pFalric->SetVisible(true);
- if (Creature* pMarwyn = me->GetCreature(*me, instance->GetData64(DATA_MARWYN)))
- pMarwyn->SetVisible(true);
-
- if (Creature* lichking = me->GetCreature(*me, lichkingGUID))
+ if (Creature* falric = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_FALRIC_EVENT)))
+ {
+ falric->CastSpell(falric, SPELL_BOSS_SPAWN_AURA, true);
+ falric->SetVisible(true);
+ }
+ if (Creature* marwyn = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_MARWYN_EVENT)))
+ {
+ marwyn->CastSpell(marwyn, SPELL_BOSS_SPAWN_AURA, true);
+ marwyn->SetVisible(true);
+ }
+ if (Creature* lichking = me->GetCreature(*me, _lichkingGUID))
{
- lichking->GetMotionMaster()->MovePoint(0, LichKingSpawnPos);
lichking->AI()->Talk(SAY_LK_INTRO_3);
+ lichking->SetWalk(true);
+ lichking->GetMotionMaster()->MovePoint(0, LichKingMoveAwayPos);
}
-
- events.ScheduleEvent(EVENT_INTRO_LK_6, 8000);
- break;
-
- case EVENT_INTRO_LK_6:
- if (Creature* falric = me->GetCreature(*me, instance->GetData64(DATA_FALRIC)))
- falric->AI()->Talk(SAY_FALRIC_INTRO_1);
-
- events.ScheduleEvent(EVENT_INTRO_LK_7, 2000);
+ _events.ScheduleEvent(EVENT_INTRO_LK_7, 10000);
+ _events.ScheduleEvent(EVENT_OPEN_FROSTWORN_DOOR, 5000);
break;
-
case EVENT_INTRO_LK_7:
- if (Creature* marwyn = me->GetCreature(*me, instance->GetData64(DATA_MARWYN)))
+ if (Creature* marwyn = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_MARWYN_EVENT)))
+ {
marwyn->AI()->Talk(SAY_MARWYN_INTRO_1);
-
- events.ScheduleEvent(EVENT_INTRO_LK_8, 2000);
+ marwyn->SetWalk(true);
+ marwyn->GetMotionMaster()->MovePoint(0, MarwynStartPos);
+ }
+ _events.ScheduleEvent(EVENT_INTRO_LK_8, 1000);
break;
-
case EVENT_INTRO_LK_8:
- if (Creature* falric = me->GetCreature(*me, instance->GetData64(DATA_FALRIC)))
- falric->AI()->Talk(SAY_FALRIC_INTRO_2);
-
- events.ScheduleEvent(EVENT_INTRO_LK_9, 5000);
+ if (Creature* falric = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_FALRIC_EVENT)))
+ {
+ falric->AI()->Talk(SAY_FALRIC_INTRO_1);
+ falric->SetWalk(true);
+ falric->GetMotionMaster()->MovePoint(0, FalricStartPos);
+ }
+ _events.ScheduleEvent(EVENT_INTRO_LK_9, 5000);
break;
-
case EVENT_INTRO_LK_9:
- if (instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE)
+ if (Creature* falric = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_FALRIC_EVENT)))
+ falric->AI()->Talk(SAY_FALRIC_INTRO_2);
+ _instance->ProcessEvent(0, EVENT_SPAWN_WAVES);
+ _events.ScheduleEvent(EVENT_INTRO_LK_10, 4000);
+ break;
+ case EVENT_INTRO_LK_10:
+ if (_instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE)
Talk(SAY_JAINA_INTRO_END);
else
Talk(SAY_SYLVANAS_INTRO_END);
-
- me->GetMotionMaster()->MovePoint(0, LichKingSpawnPos);
+ me->GetMotionMaster()->MovePoint(0, LichKingMoveAwayPos);
/// @todo Loralen/Koreln shall run also
- events.ScheduleEvent(EVENT_INTRO_END, 10000);
+ _events.ScheduleEvent(EVENT_INTRO_LK_11, 5000);
+ break;
+ case EVENT_INTRO_LK_11:
+ if (Creature* lichking = me->GetCreature(*me, _lichkingGUID))
+ {
+ if (_instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE)
+ lichking->AI()->Talk(SAY_LK_JAINA_INTRO_END);
+ else
+ lichking->AI()->Talk(SAY_LK_SYLVANAS_INTRO_END);
+ }
+ _events.ScheduleEvent(EVENT_INTRO_END, 5000);
break;
-
case EVENT_INTRO_END:
- if (instance)
- instance->SetData(DATA_WAVE_COUNT, SPECIAL); // start first wave
-
+ if (_instance)
+ _instance->SetData(DATA_INTRO_EVENT, DONE);
// Loralen or Koreln disappearAndDie()
- me->DisappearAndDie();
+ if (Creature* lichking = me->GetCreature(*me, _lichkingGUID))
+ {
+ lichking->DespawnOrUnsummon(5000);
+ _lichkingGUID = 0;
+ }
+ me->DespawnOrUnsummon(10000);
+ _events.ScheduleEvent(EVENT_CLOSE_FROSTWORN_DOOR, 7000);
break;
-
case EVENT_SKIP_INTRO:
- /// @todo implement
+ me->GetMotionMaster()->MovePoint(0, MoveThronePos);
+ /// @todo Loralen/Koreln shall run also
+ if (Creature* lichking = me->SummonCreature(NPC_LICH_KING_PART1, LichKingSpawnPos, TEMPSUMMON_MANUAL_DESPAWN))
+ {
+ lichking->SetWalk(true);
+ lichking->GetMotionMaster()->MovePoint(0, LichKingMoveThronePos);
+ lichking->SetReactState(REACT_PASSIVE);
+ _lichkingGUID = lichking->GetGUID();
+ _events.ScheduleEvent(EVENT_OPEN_FROSTWORN_DOOR, 0);
+ _events.ScheduleEvent(EVENT_CLOSE_FROSTWORN_DOOR, 4000);
+ }
+ _events.ScheduleEvent(EVENT_INTRO_LK_4, 15000);
+ break;
+ case EVENT_OPEN_FROSTWORN_DOOR:
+ if (GameObject* gate = ObjectAccessor::GetGameObject(*me, _instance->GetData64(DATA_FROSTWORN_DOOR)))
+ _instance->HandleGameObject(0, true, gate);
+ break;
+ case EVENT_CLOSE_FROSTWORN_DOOR:
+ if (GameObject* gate = ObjectAccessor::GetGameObject(*me, _instance->GetData64(DATA_FROSTWORN_DOOR)))
+ _instance->HandleGameObject(0, false, gate);
+ break;
+ }
+ }
+ };
- if (Creature* pFalric = me->GetCreature(*me, instance->GetData64(DATA_FALRIC)))
- pFalric->SetVisible(true);
- if (Creature* pMarwyn = me->GetCreature(*me, instance->GetData64(DATA_MARWYN)))
- pMarwyn->SetVisible(true);
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_jaina_or_sylvanas_horAI(creature);
+ }
+};
- me->GetMotionMaster()->MovePoint(0, LichKingSpawnPos);
- /// @todo Loralen/Koreln shall run also
+class npc_jaina_or_sylvanas_escape_hor : public CreatureScript
+{
+ public:
+ npc_jaina_or_sylvanas_escape_hor() : CreatureScript("npc_jaina_or_sylvanas_escape_hor") { }
+
+ // AI of Part2
+ struct npc_jaina_or_sylvanas_escape_horAI : public ScriptedAI
+ {
+ npc_jaina_or_sylvanas_escape_horAI(Creature* creature) : ScriptedAI(creature)
+ {
+ _instance = me->GetInstanceScript();
+ }
+
+ InstanceScript* _instance;
+ uint64 _lichkingGUID;
+ uint64 _walltargetGUID; // dummy
+ uint64 _icewallGUID; // object
+ uint32 _icewall; // icewall number
+ uint32 _isattackingwall; //sylvannas attacking icewall
+
+ EventMap _events;
+
+
+ void Reset() OVERRIDE
+ {
+ _events.Reset();
+ if (Creature* lichking = me->GetCreature(*me, _lichkingGUID))
+ lichking->DespawnOrUnsummon(1);
+ _lichkingGUID = 0;
+ _walltargetGUID = 0;
+ _icewallGUID = 0;
+ _icewall = 0;
+ _isattackingwall = false;
+ _events.ScheduleEvent(EVENT_ESCAPE, 0);
+ }
+
+ void JustDied(Unit* /*Killer*/) OVERRIDE
+ {
+ if (_instance)
+ _instance->SetData(DATA_ESCAPE_EVENT, FAIL);
+ }
+
+ void DoAction(int32 actionID) OVERRIDE
+ {
+ switch (actionID)
+ {
+ case ACTION_START_ESCAPING: // called by InstanceScript when we need to start the escaping event
+ _events.ScheduleEvent(EVENT_ESCAPE_1, 1000);
+ break;
+ case ACTION_WALL_BROKEN:
+ _icewall++;
+ if (_icewall != 4)
+ _events.ScheduleEvent(EVENT_ESCAPE_17,3000);
+ else
+ _events.ScheduleEvent(EVENT_ESCAPE_23,3000);
+ _isattackingwall = false;
+ break;
+ }
+ }
- events.ScheduleEvent(EVENT_INTRO_END, 15000);
+ void sGossipSelect(Player* player, uint32 /*sender*/, uint32 action) OVERRIDE
+ {
+ player->PlayerTalkClass->ClearMenus();
+ switch (action)
+ {
+ case 0:
+ player->CLOSE_GOSSIP_MENU();
+ me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP|UNIT_NPC_FLAG_QUESTGIVER);
+ _events.ScheduleEvent(EVENT_ESCAPE_7, 0);
break;
}
}
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ _events.Update(diff);
+
+ while (uint32 event = _events.ExecuteEvent())
+ {
+ switch (event)
+ {
+ case EVENT_ESCAPE:
+ if (Creature* lichking = me->SummonCreature(NPC_LICH_KING_PART2, LichKingSpawnPos2, TEMPSUMMON_MANUAL_DESPAWN))
+ {
+ me->Attack(lichking,true);
+ lichking->Attack(me,true);
+ me->SetReactState(REACT_PASSIVE);
+ lichking->SetReactState(REACT_PASSIVE);
+ _lichkingGUID = lichking->GetGUID();
+ if (_instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE)
+ me->AI()->DoCast(me, SPELL_JAINA_ICEBARRIER);
+ else
+ me->AI()->DoCast(me, SPELL_SYLVANAS_CLOAKOFDARKNESS);
+ }
+ me->SetHealth(252000);
+ break;
+ case EVENT_ESCAPE_1:
+ _instance->SetData(DATA_ESCAPE_EVENT, IN_PROGRESS);
+ if (Creature* lichking = me->GetCreature(*me, _lichkingGUID))
+ {
+ if (_instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE)
+ lichking->AI()->Talk(SAY_LK_ESCAPE_1);
+ else
+ lichking->AI()->Talk(SAY_LK_ESCAPE_2);
+ _events.ScheduleEvent(EVENT_ESCAPE_2, 8000);
+ }
+ break;
+ case EVENT_ESCAPE_2:
+ if (_instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE)
+ me->AI()->DoCast(me,SPELL_CAST_VISUAL,true);
+ else
+ me->AI()->DoCast(me,SPELL_SYLVANAS_JUMP,true);
+ _events.ScheduleEvent(EVENT_ESCAPE_3, 1000);
+ break;
+ case EVENT_ESCAPE_3:
+ if (Creature* lichking = me->GetCreature(*me, _lichkingGUID))
+ {
+ if (_instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE)
+ lichking->AI()->DoCast(lichking, SPELL_JAINA_ICEPRISON, true);
+ else
+ lichking->AI()->DoCast(lichking, SPELL_SYLVANAS_DARKBINDING, true);
+ }
+ _events.ScheduleEvent(EVENT_ESCAPE_4, 2000);
+ break;
+ case EVENT_ESCAPE_4:
+ if (_instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE)
+ me->AI()->Talk(SAY_JAINA_ESCAPE_1);
+ else
+ me->AI()->Talk(SAY_SYLVANAS_ESCAPE_1);
+ _events.ScheduleEvent(EVENT_ESCAPE_5, 2000);
+ break;
+ case EVENT_ESCAPE_5:
+ if (Creature* lichking = me->GetCreature(*me, _lichkingGUID))
+ lichking->CombatStop();
+ me->GetMotionMaster()->MovePoint(0, JainaShadowThroneDoor);
+ if (_instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE)
+ me->RemoveAurasDueToSpell(SPELL_JAINA_ICEBARRIER);
+ else
+ me->RemoveAurasDueToSpell(SPELL_SYLVANAS_CLOAKOFDARKNESS);
+ _events.ScheduleEvent(EVENT_ESCAPE_6, 5000);
+ break;
+ case EVENT_ESCAPE_6:
+ me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP|UNIT_NPC_FLAG_QUESTGIVER);
+ break;
+ case EVENT_ESCAPE_7:
+ if (Creature* lichking = me->GetCreature(*me, _lichkingGUID))
+ {
+ if (_instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE)
+ lichking->RemoveAurasDueToSpell(SPELL_JAINA_ICEPRISON);
+ else
+ lichking->RemoveAurasDueToSpell(SPELL_SYLVANAS_DARKBINDING);
+ }
+ _events.ScheduleEvent(EVENT_ESCAPE_8, 1000);
+ break;
+ case EVENT_ESCAPE_8:
+ if (Creature* lichking = me->GetCreature(*me, _lichkingGUID))
+ lichking->HandleEmoteCommand(TEXT_EMOTE_ROAR);
+ me->GetMotionMaster()->MovePoint(0, NpcJainaOrSylvanasEscapeRoute[0]);
+ _events.ScheduleEvent(EVENT_ESCAPE_9, 3000);
+ break;
+ case EVENT_ESCAPE_9:
+ if (Creature* lichking = me->GetCreature(*me, _lichkingGUID))
+ lichking->GetMotionMaster()->MovePoint(0, NpcJainaOrSylvanasEscapeRoute[0]);
+ _events.ScheduleEvent(EVENT_ESCAPE_10, 1000);
+ break;
+ case EVENT_ESCAPE_10:
+ me->GetMotionMaster()->MovePoint(0, NpcJainaOrSylvanasEscapeRoute[1]);
+ _events.ScheduleEvent(EVENT_ESCAPE_11, 5000);
+ break;
+ case EVENT_ESCAPE_11:
+ me->GetMotionMaster()->MovePoint(0, NpcJainaOrSylvanasEscapeRoute[2]);
+ if (Creature* lichking = me->GetCreature(*me, _lichkingGUID))
+ lichking->GetMotionMaster()->MovePoint(0, LichKingFirstSummon);
+ _events.ScheduleEvent(EVENT_ESCAPE_12, 6000);
+ break;
+ case EVENT_ESCAPE_12:
+ if (Creature* lichking = me->GetCreature(*me, _lichkingGUID))
+ {
+ lichking->AI()->Talk(SAY_LK_ESCAPE_3);
+ lichking->AI()->DoCast(me, SPELL_RAISE_DEAD);
+ lichking->Attack(me,true);
+ }
+ _events.ScheduleEvent(EVENT_ESCAPE_13, 4000);
+ break;
+ case EVENT_ESCAPE_13:
+ if (Creature* lichking = me->GetCreature(*me, _lichkingGUID))
+ {
+ lichking->AI()->DoCast(lichking, SPELL_REMORSELESS_WINTER, true);
+ lichking->AI()->DoCast(lichking, SPELL_SUMMON_RISE_WITCH_DOCTOR);
+ lichking->GetMotionMaster()->MoveIdle();
+ lichking->GetMotionMaster()->MoveChase(me);
+ }
+ if (Creature* walltarget = me->SummonCreature(NPC_ICE_WALL,IceWalls[0].GetPositionX(), IceWalls[0].GetPositionY(), IceWalls[0].GetPositionZ(), IceWalls[0].GetOrientation(), TEMPSUMMON_MANUAL_DESPAWN, 720000))
+ {
+ _walltargetGUID = walltarget->GetGUID();
+ walltarget->AI()->DoCast(walltarget, SPELL_SUMMON_ICE_WALL);
+ walltarget->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
+ me->Attack(walltarget,false);
+ }
+ me->GetMotionMaster()->MovePoint(0, NpcJainaOrSylvanasEscapeRoute[3]);
+ _events.ScheduleEvent(EVENT_ESCAPE_14, 8000);
+ break;
+ case EVENT_ESCAPE_14:
+ if (Creature* walltarget = me->GetCreature(*me, _walltargetGUID))
+ {
+ if (GameObject* icewall = walltarget->FindNearestGameObject(GO_ICE_WALL, 50.00f))
+ {
+ _icewallGUID = icewall->GetGUID();
+ icewall->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_INTERACT_COND);
+ _instance->HandleGameObject(0, false, icewall);
+ if (_instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE)
+ me->AI()->Talk(SAY_JAINA_ESCAPE_2);
+ else
+ me->AI()->Talk(SAY_SYLVANAS_ESCAPE_2);
+ }
+ }
+ _events.ScheduleEvent(EVENT_ESCAPE_15, 1000);
+ break;
+ case EVENT_ESCAPE_15:
+ if (Creature* lichking = me->GetCreature(*me, _lichkingGUID))
+ {
+ lichking->GetMotionMaster()->MoveIdle();
+ lichking->GetMotionMaster()->MoveChase(me);
+ lichking->SetReactState(REACT_PASSIVE);
+ }
+ if (_instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE)
+ me->AI()->DoCast(me, SPELL_JAINA_DESTROY_ICE_WALL, false);
+ else
+ {
+ _isattackingwall = true;
+ me->AI()->DoCast(me, SPELL_SYLVANAS_DESTROY_ICE_WALL, false);
+ _events.ScheduleEvent(EVENT_ESCAPE_16, 1000);
+ }
+ break;
+ case EVENT_ESCAPE_16:
+ if (_instance->GetData(DATA_TEAM_IN_INSTANCE) == HORDE)
+ {
+ me->AI()->DoCast(me, SPELL_SYLVANAS_DESTROY_ICE_WALL, false);
+ if (_isattackingwall)
+ _events.ScheduleEvent(EVENT_ESCAPE_16, 1000);
+ }
+ break;
+ case EVENT_ESCAPE_17:// ICEWALL BROKEN
+ me->GetMotionMaster()->MoveIdle();
+ if (Creature* lichking = me->GetCreature(*me, _lichkingGUID))
+ {
+ lichking->StopMoving();
+ lichking->AI()->Talk(SAY_LK_ESCAPE_3);
+ lichking->AI()->DoCast(me, SPELL_RAISE_DEAD);
+ }
+ if (Creature* walltarget = me->GetCreature(*me, _walltargetGUID))
+ walltarget->DespawnOrUnsummon(0);
+ if (GameObject* icewall = ObjectAccessor::GetGameObject(*me, _icewallGUID))
+ {
+ _instance->HandleGameObject(0 ,true, icewall);
+ if (_instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE)
+ me->RemoveAurasDueToSpell(SPELL_JAINA_DESTROY_ICE_WALL);
+ else
+ me->RemoveAurasDueToSpell(SPELL_SYLVANAS_DESTROY_ICE_WALL);
+ }
+ if (_icewall && _icewall < 4)
+ me->GetMotionMaster()->MovePoint(0, NpcJainaOrSylvanasEscapeRoute[_icewall + 3]);
+ _events.ScheduleEvent(EVENT_ESCAPE_18, 2000);
+ break;
+ case EVENT_ESCAPE_18:
+ if (Creature* lichking = me->GetCreature(*me, _lichkingGUID))
+ {
+ lichking->GetMotionMaster()->MoveIdle();
+ lichking->GetMotionMaster()->MoveChase(me);
+ }
+ _events.ScheduleEvent(EVENT_ESCAPE_19, 6000);
+ break;
+ case EVENT_ESCAPE_19:
+ if (Creature* lichking = me->GetCreature(*me, _lichkingGUID))
+ {
+ if (_icewall && _icewall < 4)
+ lichking->AI()->DoCast(lichking, SPELL_SUMMON_RISE_WITCH_DOCTOR);
+ lichking->GetMotionMaster()->MoveIdle();
+ lichking->GetMotionMaster()->MoveChase(me);
+ lichking->SetReactState(REACT_PASSIVE);
+ lichking->Attack(me,true);
+ }
+ if (Creature* walltarget = me->SummonCreature(NPC_ICE_WALL, IceWalls[_icewall].GetPositionX(), IceWalls[_icewall].GetPositionY(), IceWalls[_icewall].GetPositionZ(), IceWalls[_icewall].GetOrientation(), TEMPSUMMON_MANUAL_DESPAWN, 720000))
+ {
+ _walltargetGUID = walltarget->GetGUID();
+ walltarget->AI()->DoCast(walltarget, SPELL_SUMMON_ICE_WALL);
+ walltarget->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
+ me->Attack(walltarget,false);
+ }
+ _events.ScheduleEvent(EVENT_ESCAPE_20, 3000);
+ break;
+ case EVENT_ESCAPE_20:
+ if (Creature* walltarget = me->GetCreature(*me, _walltargetGUID))
+ {
+ if (GameObject* icewall = walltarget->FindNearestGameObject(GO_ICE_WALL, 50.00f))
+ {
+ _icewallGUID = icewall->GetGUID();
+ _instance->HandleGameObject(0, false, icewall);
+ icewall->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_INTERACT_COND);
+ if (_instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE)
+ {
+ if (_icewall == 1)
+ me->AI()->Talk(SAY_JAINA_ESCAPE_3);
+ else if (_icewall == 2)
+ me->AI()->Talk(SAY_JAINA_ESCAPE_4);
+ else if (_icewall == 3)
+ me->AI()->Talk(SAY_JAINA_ESCAPE_5);
+ }
+ else if (_instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE)
+ {
+ if (_icewall == 1)
+ me->AI()->Talk(SAY_SYLVANAS_ESCAPE_3);
+ else if (_icewall == 2)
+ me->AI()->Talk(SAY_SYLVANAS_ESCAPE_4);
+ else if (_icewall == 3)
+ me->AI()->Talk(SAY_SYLVANAS_ESCAPE_5);
+ }
+ }
+ }
+ if (Creature* lichking = me->GetCreature(*me, _lichkingGUID))
+ {
+ if (_icewall && _icewall < 3)
+ lichking->AI()->DoCast(lichking, SPELL_SUMMON_RISE_WITCH_DOCTOR);
+ else
+ lichking->AI()->DoCast(lichking, SPELL_SUMMON_LUMBERING_ABOMINATION);
+ }
+ if (_icewall == 3)
+ _events.ScheduleEvent(EVENT_ESCAPE_21, 16000); // last wall, really far
+ else
+ _events.ScheduleEvent(EVENT_ESCAPE_21, 9000);
+ break;
+ case EVENT_ESCAPE_21:
+ if (_instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE)
+ me->AI()->DoCast(me, SPELL_JAINA_DESTROY_ICE_WALL, false);
+ else
+ {
+ me->AI()->DoCast(me, SPELL_SYLVANAS_DESTROY_ICE_WALL, false);
+ _isattackingwall = true;
+ _events.ScheduleEvent(EVENT_ESCAPE_22, 1000);
+ }
+ if (Creature* lichking = me->GetCreature(*me, _lichkingGUID))
+ {
+ if (_icewall == 1)
+ lichking->AI()->DoCast(lichking, SPELL_SUMMON_LUMBERING_ABOMINATION);
+ else if (_icewall > 1 && _icewall < 4)
+ lichking->AI()->DoCast(lichking, SPELL_SUMMON_RISE_WITCH_DOCTOR);
+ }
+ break;
+ case EVENT_ESCAPE_22:
+ if (Creature* lichking = me->GetCreature(*me, _lichkingGUID))
+ {
+ if (_icewall >= 2 && _icewall < 4)
+ lichking->AI()->DoCast(lichking, SPELL_SUMMON_LUMBERING_ABOMINATION);
+ }
+ if (_instance->GetData(DATA_TEAM_IN_INSTANCE) == HORDE)
+ {
+ me->AI()->DoCast(me, SPELL_SYLVANAS_DESTROY_ICE_WALL, false);
+ if (_isattackingwall)
+ _events.ScheduleEvent(EVENT_ESCAPE_22, 1000);
+ }
+ break;
+
+ case EVENT_ESCAPE_23:// FINAL PART
+ if (Creature* walltarget = me->GetCreature(*me, _walltargetGUID))
+ walltarget->DespawnOrUnsummon(0);
+ if (GameObject* icewall = ObjectAccessor::GetGameObject(*me, _icewallGUID))
+ {
+ _instance->HandleGameObject(0 ,true, icewall);
+ if (_instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE)
+ {
+ me->RemoveAurasDueToSpell(SPELL_JAINA_DESTROY_ICE_WALL);
+ me->AI()->Talk(SAY_JAINA_ESCAPE_6);
+ }
+ else
+ {
+ me->RemoveAurasDueToSpell(SPELL_SYLVANAS_DESTROY_ICE_WALL);
+ me->AI()->Talk(SAY_SYLVANAS_ESCAPE_6);
+ }
+ }
+ if (Creature* lichking = me->GetCreature(*me, _lichkingGUID))
+ {
+ lichking->GetMotionMaster()->MovePoint(0, LichKingFinalPos);
+ lichking->AI()->Talk(SAY_LK_ESCAPE_11);
+ }
+ me->GetMotionMaster()->MovePoint(0, NpcJainaOrSylvanasEscapeRoute[8]);
+ _events.ScheduleEvent(EVENT_ESCAPE_24, 10000);
+ break;
+ case EVENT_ESCAPE_24:
+ if (_instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE)
+ me->AI()->Talk(SAY_JAINA_ESCAPE_8);
+ else
+ me->AI()->Talk(SAY_SYLVANAS_ESCAPE_8);
+ _events.ScheduleEvent(EVENT_ESCAPE_25, 5000);
+ break;
+ case EVENT_ESCAPE_25:
+ if (GameObject* cave = _instance->instance->GetGameObject(_instance->GetData64(DATA_CAVE_IN)))
+ cave->SetGoState(GO_STATE_READY);
+ _events.ScheduleEvent(EVENT_ESCAPE_26, 4000);
+ break;
+ case EVENT_ESCAPE_26:
+ if (_instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE)
+ me->AI()->Talk(SAY_JAINA_ESCAPE_10);
+ else
+ me->AI()->Talk(SAY_SYLVANAS_ESCAPE_9);
+ _events.ScheduleEvent(EVENT_ESCAPE_27, 4000);
+ break;
+ case EVENT_ESCAPE_27:
+ if (_instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE)
+ me->SummonGameObject(GO_CAPTAIN_CHEST_1, ChestPos.GetPositionX(), ChestPos.GetPositionY(), ChestPos.GetPositionZ(), ChestPos.GetOrientation(), 0, 0, 0, 0, 720000);
+ else
+ me->SummonGameObject(GO_CAPTAIN_CHEST_3, ChestPos.GetPositionX(), ChestPos.GetPositionY(), ChestPos.GetPositionZ(), ChestPos.GetOrientation(), 0, 0, 0, 0, 720000);
+ me->SummonGameObject(GO_PORTAL, FinalPortalPos.GetPositionX(), FinalPortalPos.GetPositionY(), FinalPortalPos.GetPositionZ(), FinalPortalPos.GetOrientation(), 0, 0, 0, 0, 720000);
+ if (Creature* lichking = me->GetCreature(*me, _lichkingGUID))
+ lichking->DespawnOrUnsummon(1);
+ break;
+ }
+ }
+ }
};
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_jaina_or_sylvanas_escape_horAI(creature);
+ }
};
enum TrashSpells
@@ -626,86 +1203,116 @@ enum TrashEvents
EVENT_ICE_SHOT,
};
-class npc_ghostly_priest : public CreatureScript
+struct npc_gauntlet_trash : public ScriptedAI
{
-public:
- npc_ghostly_priest() : CreatureScript("npc_ghostly_priest") { }
+ npc_gauntlet_trash(Creature* creature) : ScriptedAI(creature),
+ _instance(creature->GetInstanceScript())
+ {
+ }
- CreatureAI* GetAI(Creature* creature) const
+ void Reset() OVERRIDE
{
- return new npc_ghostly_priestAI(creature);
+ me->CastSpell(me, SPELL_WELL_OF_SOULS, true);
+ _events.Reset();
}
- struct npc_ghostly_priestAI: public ScriptedAI
+ void EnterEvadeMode() OVERRIDE
{
- npc_ghostly_priestAI(Creature* creature) : ScriptedAI(creature)
- {
- }
+ if (_instance->GetData(DATA_WAVE_COUNT) != NOT_STARTED)
+ _instance->SetData(DATA_WAVE_COUNT, NOT_STARTED);
+ }
+
+ void SetData(uint32 type, uint32 value) OVERRIDE
+ {
+ if (type)
+ return;
+
+ InternalWaveId = value;
+ }
+
+ uint32 GetData(uint32 type) const OVERRIDE
+ {
+ if (type)
+ return 0;
+
+ return InternalWaveId;
+ }
- EventMap events;
+protected:
+ EventMap _events;
+ InstanceScript* _instance;
+ uint32 InternalWaveId;
+};
- void Reset()
+class npc_ghostly_priest : public CreatureScript
+{
+public:
+ npc_ghostly_priest() : CreatureScript("npc_ghostly_priest") { }
+
+ struct npc_ghostly_priestAI : public npc_gauntlet_trash
+ {
+ npc_ghostly_priestAI(Creature* creature) : npc_gauntlet_trash(creature)
{
- events.Reset();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
- events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, 8000); /// @todo adjust timers
- events.ScheduleEvent(EVENT_CIRCLE_OF_DESTRUCTION, 12000);
- events.ScheduleEvent(EVENT_COWER_IN_FEAR, 10000);
- events.ScheduleEvent(EVENT_DARK_MENDING, 20000);
+ _events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, 8000); /// @todo adjust timers
+ _events.ScheduleEvent(EVENT_CIRCLE_OF_DESTRUCTION, 12000);
+ _events.ScheduleEvent(EVENT_COWER_IN_FEAR, 10000);
+ _events.ScheduleEvent(EVENT_DARK_MENDING, 20000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
- events.Update(diff);
+ _events.Update(diff);
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
- while (uint32 eventId = events.ExecuteEvent())
+ switch (_events.ExecuteEvent())
{
- switch (eventId)
- {
- case EVENT_SHADOW_WORD_PAIN:
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM))
- DoCast(target, SPELL_SHADOW_WORD_PAIN);
- events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, 8000);
- return;
- case EVENT_CIRCLE_OF_DESTRUCTION:
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM))
- DoCast(target, SPELL_CIRCLE_OF_DESTRUCTION);
- events.ScheduleEvent(EVENT_CIRCLE_OF_DESTRUCTION, 12000);
- return;
- case EVENT_COWER_IN_FEAR:
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM))
- DoCast(target, SPELL_COWER_IN_FEAR);
- events.ScheduleEvent(EVENT_COWER_IN_FEAR, 10000);
- return;
- case EVENT_DARK_MENDING:
- // find an ally with missing HP
- if (Unit* target = DoSelectLowestHpFriendly(40, DUNGEON_MODE(30000, 50000)))
- {
- DoCast(target, SPELL_DARK_MENDING);
- events.ScheduleEvent(EVENT_DARK_MENDING, 20000);
- }
- else
- {
- // no friendly unit with missing hp. re-check in just 5 sec.
- events.ScheduleEvent(EVENT_DARK_MENDING, 5000);
- }
- return;
- }
+ case EVENT_SHADOW_WORD_PAIN:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM))
+ DoCast(target, SPELL_SHADOW_WORD_PAIN);
+ _events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, 8000);
+ break;
+ case EVENT_CIRCLE_OF_DESTRUCTION:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM))
+ DoCast(target, SPELL_CIRCLE_OF_DESTRUCTION);
+ _events.ScheduleEvent(EVENT_CIRCLE_OF_DESTRUCTION, 12000);
+ break;
+ case EVENT_COWER_IN_FEAR:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM))
+ DoCast(target, SPELL_COWER_IN_FEAR);
+ _events.ScheduleEvent(EVENT_COWER_IN_FEAR, 10000);
+ break;
+ case EVENT_DARK_MENDING:
+ // find an ally with missing HP
+ if (Unit* target = DoSelectLowestHpFriendly(40, DUNGEON_MODE(30000, 50000)))
+ {
+ DoCast(target, SPELL_DARK_MENDING);
+ _events.ScheduleEvent(EVENT_DARK_MENDING, 20000);
+ }
+ else
+ {
+ // no friendly unit with missing hp. re-check in just 5 sec.
+ _events.ScheduleEvent(EVENT_DARK_MENDING, 5000);
+ }
+ break;
}
DoMeleeAttackIfReady();
}
};
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_ghostly_priestAI(creature);
+ }
};
class npc_phantom_mage : public CreatureScript
@@ -713,319 +1320,832 @@ class npc_phantom_mage : public CreatureScript
public:
npc_phantom_mage() : CreatureScript("npc_phantom_mage") { }
- CreatureAI* GetAI(Creature* creature) const
+ struct npc_phantom_mageAI : public npc_gauntlet_trash
+ {
+ npc_phantom_mageAI(Creature* creature) : npc_gauntlet_trash(creature)
+ {
+ }
+
+ void EnterCombat(Unit* /*who*/) OVERRIDE
+ {
+ _events.ScheduleEvent(EVENT_FIREBALL, 3000); /// @todo adjust timers
+ _events.ScheduleEvent(EVENT_FLAMESTRIKE, 6000);
+ _events.ScheduleEvent(EVENT_FROSTBOLT, 9000);
+ _events.ScheduleEvent(EVENT_CHAINS_OF_ICE, 12000);
+ _events.ScheduleEvent(EVENT_HALLUCINATION, 40000);
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ if (!UpdateVictim())
+ return;
+
+ _events.Update(diff);
+
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
+
+ switch (_events.ExecuteEvent())
+ {
+ case EVENT_FIREBALL:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM))
+ DoCast(target, SPELL_FIREBALL);
+ _events.ScheduleEvent(EVENT_FIREBALL, 15000);
+ break;
+ case EVENT_FLAMESTRIKE:
+ DoCast(SPELL_FLAMESTRIKE);
+ _events.ScheduleEvent(EVENT_FLAMESTRIKE, 15000);
+ break;
+ case EVENT_FROSTBOLT:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM))
+ DoCast(target, SPELL_FROSTBOLT);
+ _events.ScheduleEvent(EVENT_FROSTBOLT, 15000);
+ break;
+ case EVENT_CHAINS_OF_ICE:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM))
+ DoCast(target, SPELL_CHAINS_OF_ICE);
+ _events.ScheduleEvent(EVENT_CHAINS_OF_ICE, 15000);
+ break;
+ case EVENT_HALLUCINATION:
+ DoCast(SPELL_HALLUCINATION);
+ break;
+ }
+
+ DoMeleeAttackIfReady();
+ }
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_phantom_mageAI(creature);
}
+};
- struct npc_phantom_mageAI: public ScriptedAI
+class npc_phantom_hallucination : public CreatureScript
+{
+public:
+ npc_phantom_hallucination() : CreatureScript("npc_phantom_hallucination") { }
+
+ struct npc_phantom_hallucinationAI : public npc_phantom_mage::npc_phantom_mageAI
{
- npc_phantom_mageAI(Creature* creature) : ScriptedAI(creature)
+ npc_phantom_hallucinationAI(Creature* creature) : npc_phantom_mage::npc_phantom_mageAI(creature) {}
+
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
+ DoCast(SPELL_HALLUCINATION_2);
}
+ };
- EventMap events;
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_phantom_hallucinationAI(creature);
+ }
+};
+
+class npc_shadowy_mercenary : public CreatureScript
+{
+public:
+ npc_shadowy_mercenary() : CreatureScript("npc_shadowy_mercenary") { }
- void Reset()
+ struct npc_shadowy_mercenaryAI : public npc_gauntlet_trash
+ {
+ npc_shadowy_mercenaryAI(Creature* creature) : npc_gauntlet_trash(creature)
{
- events.Reset();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
- events.ScheduleEvent(EVENT_FIREBALL, 3000); /// @todo adjust timers
- events.ScheduleEvent(EVENT_FLAMESTRIKE, 6000);
- events.ScheduleEvent(EVENT_FROSTBOLT, 9000);
- events.ScheduleEvent(EVENT_CHAINS_OF_ICE, 12000);
- events.ScheduleEvent(EVENT_HALLUCINATION, 40000);
+ _events.ScheduleEvent(EVENT_SHADOW_STEP, 8000); /// @todo adjust timers
+ _events.ScheduleEvent(EVENT_DEADLY_POISON, 5000);
+ _events.ScheduleEvent(EVENT_ENVENOMED_DAGGER_THROW, 10000);
+ _events.ScheduleEvent(EVENT_KIDNEY_SHOT, 12000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
- events.Update(diff);
+ _events.Update(diff);
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
- while (uint32 eventId = events.ExecuteEvent())
+ switch (_events.ExecuteEvent())
{
- switch (eventId)
- {
- case EVENT_FIREBALL:
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM))
- DoCast(target, SPELL_FIREBALL);
- events.ScheduleEvent(EVENT_FIREBALL, 15000);
- return;
- case EVENT_FLAMESTRIKE:
- DoCast(SPELL_FLAMESTRIKE);
- events.ScheduleEvent(EVENT_FLAMESTRIKE, 15000);
- return;
- case EVENT_FROSTBOLT:
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM))
- DoCast(target, SPELL_FROSTBOLT);
- events.ScheduleEvent(EVENT_FROSTBOLT, 15000);
- return;
- case EVENT_CHAINS_OF_ICE:
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM))
- DoCast(target, SPELL_CHAINS_OF_ICE);
- events.ScheduleEvent(EVENT_CHAINS_OF_ICE, 15000);
- return;
- case EVENT_HALLUCINATION:
- DoCast(SPELL_HALLUCINATION);
- return;
- }
+ case EVENT_SHADOW_STEP:
+ DoCast(SPELL_SHADOW_STEP);
+ _events.ScheduleEvent(EVENT_SHADOW_STEP, 8000);
+ break;
+ case EVENT_DEADLY_POISON:
+ DoCastVictim(SPELL_DEADLY_POISON);
+ _events.ScheduleEvent(EVENT_DEADLY_POISON, 10000);
+ break;
+ case EVENT_ENVENOMED_DAGGER_THROW:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM))
+ DoCast(target, SPELL_ENVENOMED_DAGGER_THROW);
+ _events.ScheduleEvent(EVENT_ENVENOMED_DAGGER_THROW, 10000);
+ break;
+ case EVENT_KIDNEY_SHOT:
+ DoCastVictim(SPELL_KIDNEY_SHOT);
+ _events.ScheduleEvent(EVENT_KIDNEY_SHOT, 10000);
+ break;
}
DoMeleeAttackIfReady();
}
};
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_shadowy_mercenaryAI(creature);
+ }
};
-class npc_phantom_hallucination : public CreatureScript
+class npc_spectral_footman : public CreatureScript
{
public:
- npc_phantom_hallucination() : CreatureScript("npc_phantom_hallucination") { }
+ npc_spectral_footman() : CreatureScript("npc_spectral_footman") { }
- CreatureAI* GetAI(Creature* creature) const
+ struct npc_spectral_footmanAI : public npc_gauntlet_trash
{
- return new npc_phantom_hallucinationAI(creature);
- }
+ npc_spectral_footmanAI(Creature* creature) : npc_gauntlet_trash(creature)
+ {
+ }
- struct npc_phantom_hallucinationAI : public npc_phantom_mage::npc_phantom_mageAI
- {
- npc_phantom_hallucinationAI(Creature* creature) : npc_phantom_mage::npc_phantom_mageAI(creature)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
+ _events.ScheduleEvent(EVENT_SPECTRAL_STRIKE, 5000); /// @todo adjust timers
+ _events.ScheduleEvent(EVENT_SHIELD_BASH, 10000);
+ _events.ScheduleEvent(EVENT_TORTURED_ENRAGE, 15000);
}
- void JustDied(Unit* /*killer*/)
+ void UpdateAI(uint32 diff) OVERRIDE
{
- DoCast(SPELL_HALLUCINATION_2);
+ if (!UpdateVictim())
+ return;
+
+ _events.Update(diff);
+
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
+
+ switch (_events.ExecuteEvent())
+ {
+ case EVENT_SPECTRAL_STRIKE:
+ DoCastVictim(SPELL_SPECTRAL_STRIKE);
+ _events.ScheduleEvent(EVENT_SPECTRAL_STRIKE, 5000);
+ break;
+ case EVENT_SHIELD_BASH:
+ DoCastVictim(SPELL_SHIELD_BASH);
+ _events.ScheduleEvent(EVENT_SHIELD_BASH, 5000);
+ break;
+ case EVENT_TORTURED_ENRAGE:
+ DoCast(SPELL_TORTURED_ENRAGE);
+ _events.ScheduleEvent(EVENT_TORTURED_ENRAGE, 15000);
+ break;
+ }
+
+ DoMeleeAttackIfReady();
}
};
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_spectral_footmanAI(creature);
+ }
};
-class npc_shadowy_mercenary : public CreatureScript
+class npc_tortured_rifleman : public CreatureScript
{
public:
- npc_shadowy_mercenary() : CreatureScript("npc_shadowy_mercenary") { }
+ npc_tortured_rifleman() : CreatureScript("npc_tortured_rifleman") { }
- CreatureAI* GetAI(Creature* creature) const
+ struct npc_tortured_riflemanAI : public npc_gauntlet_trash
{
- return new npc_shadowy_mercenaryAI(creature);
+ npc_tortured_riflemanAI(Creature* creature) : npc_gauntlet_trash(creature)
+ {
+ }
+
+ void EnterCombat(Unit* /*who*/) OVERRIDE
+ {
+ _events.ScheduleEvent(EVENT_SHOOT, 1); /// @todo adjust timers
+ _events.ScheduleEvent(EVENT_CURSED_ARROW, 7000);
+ _events.ScheduleEvent(EVENT_FROST_TRAP, 10000);
+ _events.ScheduleEvent(EVENT_ICE_SHOT, 15000);
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ if (!UpdateVictim())
+ return;
+
+ _events.Update(diff);
+
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
+
+ switch (_events.ExecuteEvent())
+ {
+ case EVENT_SHOOT:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM))
+ DoCast(target, SPELL_SHOOT);
+ _events.ScheduleEvent(EVENT_SHOOT, 2000);
+ break;
+ case EVENT_CURSED_ARROW:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM))
+ DoCast(target, SPELL_CURSED_ARROW);
+ _events.ScheduleEvent(EVENT_CURSED_ARROW, 10000);
+ break;
+ case EVENT_FROST_TRAP:
+ DoCast(SPELL_FROST_TRAP);
+ _events.ScheduleEvent(EVENT_FROST_TRAP, 30000);
+ break;
+ case EVENT_ICE_SHOT:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM))
+ DoCast(target, SPELL_ICE_SHOT);
+ _events.ScheduleEvent(EVENT_ICE_SHOT, 15000);
+ break;
+ }
+ DoMeleeAttackIfReady();
+ }
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_tortured_riflemanAI(creature);
}
+};
+
+
+enum GeneralEvents
+{
+ //General
+ EVENT_SHIELD = 1,
+ EVENT_SPIKE = 2,
+ EVENT_CLONE = 3,
+
+ SAY_AGGRO = 0,
+ SAY_DEATH = 1,
+
+ SPELL_SHIELD_THROWN = 69222, // 73076 on hc
+ SPELL_SPIKE = 69184, // 70399 on hc
+ SPELL_CLONE_NAME = 57507,
+ SPELL_CLONE_MODEL = 45204,
+
+ // Reflection
+ EVENT_BALEFUL_STRIKE = 1,
+
+ SPELL_BALEFUL_STRIKE = 69933, // 70400 on hc
+ SPELL_SPIRIT_BURST = 69900, // 73046 on hc
+};
- struct npc_shadowy_mercenaryAI: public ScriptedAI
+class npc_frostworn_general : public CreatureScript
+{
+public:
+ npc_frostworn_general() : CreatureScript("npc_frostworn_general") { }
+
+ struct npc_frostworn_generalAI : public ScriptedAI
{
- npc_shadowy_mercenaryAI(Creature* creature) : ScriptedAI(creature)
+ npc_frostworn_generalAI(Creature* creature) : ScriptedAI(creature)
{
+ _instance = me->GetInstanceScript();
+ Reset();
}
- EventMap events;
+ InstanceScript* _instance;
+ EventMap _events;
- void Reset()
+ void Reset() OVERRIDE
{
- events.Reset();
+ _events.Reset();
+ _instance->SetData(DATA_FROSWORN_EVENT, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
- events.ScheduleEvent(EVENT_SHADOW_STEP, 8000); /// @todo adjust timers
- events.ScheduleEvent(EVENT_DEADLY_POISON, 5000);
- events.ScheduleEvent(EVENT_ENVENOMED_DAGGER_THROW, 10000);
- events.ScheduleEvent(EVENT_KIDNEY_SHOT, 12000);
+ Talk(SAY_DEATH);
+ _instance->SetData(DATA_FROSWORN_EVENT, DONE);
}
- void UpdateAI(uint32 diff)
+ void EnterCombat(Unit* /*victim*/) OVERRIDE
+ {
+ Talk(SAY_AGGRO);
+ _events.ScheduleEvent(EVENT_SHIELD, 5000);
+ _events.ScheduleEvent(EVENT_SPIKE, 14000);
+ _events.ScheduleEvent(EVENT_CLONE, 22000);
+ _instance->SetData(DATA_FROSWORN_EVENT, IN_PROGRESS);
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
- events.Update(diff);
+ _events.Update(diff);
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
- while (uint32 eventId = events.ExecuteEvent())
+ while (uint32 event = _events.ExecuteEvent())
{
- switch (eventId)
+ switch (event)
{
- case EVENT_SHADOW_STEP:
- DoCast(SPELL_SHADOW_STEP);
- events.ScheduleEvent(EVENT_SHADOW_STEP, 8000);
- return;
- case EVENT_DEADLY_POISON:
- DoCast(me->getVictim(), SPELL_DEADLY_POISON);
- events.ScheduleEvent(EVENT_DEADLY_POISON, 10000);
- return;
- case EVENT_ENVENOMED_DAGGER_THROW:
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM))
- DoCast(target, SPELL_ENVENOMED_DAGGER_THROW);
- events.ScheduleEvent(EVENT_ENVENOMED_DAGGER_THROW, 10000);
- return;
- case EVENT_KIDNEY_SHOT:
- DoCast(me->getVictim(), SPELL_KIDNEY_SHOT);
- events.ScheduleEvent(EVENT_KIDNEY_SHOT, 10000);
- return;
+ case EVENT_SHIELD:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
+ DoCast(target, SPELL_SHIELD_THROWN);
+ _events.ScheduleEvent(EVENT_SHIELD, urand(8000, 12000));
+ break;
+ case EVENT_SPIKE:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
+ DoCast(target, SPELL_SPIKE);
+ _events.ScheduleEvent(EVENT_SPIKE, urand(15000, 20000));
+ break;
+ case EVENT_CLONE:
+ SummonClones();
+ _events.ScheduleEvent(EVENT_CLONE, 60000);
+ break;
}
}
-
DoMeleeAttackIfReady();
}
+
+ void SummonClones()
+ {
+ std::list<Unit *> playerList;
+ SelectTargetList(playerList, 5, SELECT_TARGET_TOPAGGRO, 0, true);
+ for (std::list<Unit*>::const_iterator itr = playerList.begin(); itr != playerList.end(); ++itr)
+ {
+ Unit* temp = (*itr);
+ Creature* reflection = me->SummonCreature(NPC_REFLECTION, temp->GetPositionX(), temp->GetPositionY(), temp->GetPositionZ(), temp->GetOrientation(), TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 3000);
+ reflection->SetName(temp->GetName());
+ temp->CastSpell(reflection, SPELL_CLONE_NAME, true);
+ temp->CastSpell(reflection, SPELL_CLONE_MODEL, true);
+ reflection->setFaction(me->getFaction());
+ reflection->AI()->AttackStart(temp);
+ }
+ }
};
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_frostworn_generalAI(creature);
+ }
};
-class npc_spectral_footman : public CreatureScript
+class npc_spiritual_reflection : public CreatureScript
{
public:
- npc_spectral_footman() : CreatureScript("npc_spectral_footman") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new npc_spectral_footmanAI(creature);
- }
+ npc_spiritual_reflection() : CreatureScript("npc_spiritual_reflection") { }
- struct npc_spectral_footmanAI: public ScriptedAI
+ struct npc_spiritual_reflectionAI : public ScriptedAI
{
- npc_spectral_footmanAI(Creature* creature) : ScriptedAI(creature)
+ npc_spiritual_reflectionAI(Creature *creature) : ScriptedAI(creature)
{
+ Reset();
}
- EventMap events;
+ EventMap _events;
+
+ void Reset() OVERRIDE
+ {
+ _events.Reset();
+ }
- void Reset()
+ void EnterCombat(Unit* /*victim*/) OVERRIDE
{
- events.Reset();
+ _events.ScheduleEvent(EVENT_BALEFUL_STRIKE, 3000);
}
- void EnterCombat(Unit* /*who*/)
+ void JustDied(Unit* killer) OVERRIDE
{
- events.ScheduleEvent(EVENT_SPECTRAL_STRIKE, 5000); /// @todo adjust timers
- events.ScheduleEvent(EVENT_SHIELD_BASH, 10000);
- events.ScheduleEvent(EVENT_TORTURED_ENRAGE, 15000);
+ DoCast(killer, SPELL_SPIRIT_BURST);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
- events.Update(diff);
+ _events.Update(diff);
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
- while (uint32 eventId = events.ExecuteEvent())
+ switch (_events.ExecuteEvent())
{
- switch (eventId)
- {
- case EVENT_SPECTRAL_STRIKE:
- DoCast(me->getVictim(), SPELL_SPECTRAL_STRIKE);
- events.ScheduleEvent(EVENT_SPECTRAL_STRIKE, 5000);
- return;
- case EVENT_SHIELD_BASH:
- DoCast(me->getVictim(), SPELL_SHIELD_BASH);
- events.ScheduleEvent(EVENT_SHIELD_BASH, 5000);
- return;
- case EVENT_TORTURED_ENRAGE:
- DoCast(SPELL_TORTURED_ENRAGE);
- events.ScheduleEvent(EVENT_TORTURED_ENRAGE, 15000);
- return;
- }
+ case EVENT_BALEFUL_STRIKE:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
+ DoCast(target, SPELL_BALEFUL_STRIKE);
+ _events.ScheduleEvent(EVENT_BALEFUL_STRIKE, urand(3000, 8000));
}
DoMeleeAttackIfReady();
}
};
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_spiritual_reflectionAI(creature);
+ }
};
-class npc_tortured_rifleman : public CreatureScript
+class at_hor_intro_start : public AreaTriggerScript
{
public:
- npc_tortured_rifleman() : CreatureScript("npc_tortured_rifleman") { }
+ at_hor_intro_start() : AreaTriggerScript("at_hor_intro_start") {}
- CreatureAI* GetAI(Creature* creature) const
+ bool OnTrigger(Player* player, AreaTriggerEntry const* /*trigger*/) OVERRIDE
{
- return new npc_tortured_riflemanAI(creature);
+ InstanceScript* _instance = player->GetInstanceScript();
+
+ if (player->IsGameMaster())
+ return true;
+
+ if (_instance->GetData(DATA_INTRO_EVENT) == NOT_STARTED)
+ _instance->SetData(DATA_INTRO_EVENT, IN_PROGRESS);
+
+ return true;
}
+};
- struct npc_tortured_riflemanAI : public ScriptedAI
+class at_hor_waves_restarter : public AreaTriggerScript
+{
+public:
+ at_hor_waves_restarter() : AreaTriggerScript("at_hor_waves_restarter") {}
+
+ bool OnTrigger(Player* player, AreaTriggerEntry const* /*trigger*/) OVERRIDE
{
- npc_tortured_riflemanAI(Creature* creature) : ScriptedAI(creature)
+ InstanceScript* _instance = player->GetInstanceScript();
+
+ if (player->IsGameMaster())
+ return true;
+
+ if (_instance->GetData(DATA_WAVE_COUNT))
+ return true;
+
+ if (_instance->GetData(DATA_INTRO_EVENT) == DONE && _instance->GetBossState(DATA_MARWYN_EVENT) != DONE)
{
+ _instance->ProcessEvent(0, EVENT_SPAWN_WAVES);
+
+ if (Creature* falric = player->GetCreature(*player, _instance->GetData64(DATA_FALRIC_EVENT)))
+ {
+ falric->CastSpell(falric, SPELL_BOSS_SPAWN_AURA, true);
+ falric->SetVisible(true);
+ }
+ if (Creature* marwyn = player->GetCreature(*player, _instance->GetData64(DATA_MARWYN_EVENT)))
+ {
+ marwyn->CastSpell(marwyn, SPELL_BOSS_SPAWN_AURA, true);
+ marwyn->SetVisible(true);
+ }
+ }
+ return true;
+ }
+};
+
+class at_shadow_throne : public AreaTriggerScript
+{
+public:
+ at_shadow_throne() : AreaTriggerScript("at_shadow_throne") { }
+
+ bool OnTrigger(Player* player, const AreaTriggerEntry* /*at*/) OVERRIDE
+ {
+ InstanceScript* _instance = player->GetInstanceScript();
+
+ if (player->IsGameMaster())
+ return true;
+
+ if (_instance->GetData(DATA_ESCAPE_EVENT) == NOT_STARTED)
+ _instance->SetData(DATA_ESCAPE_EVENT, IN_PROGRESS);
+
+ return true;
+ }
+};
+
+class npc_raging_ghoul : public CreatureScript
+{
+public:
+ npc_raging_ghoul() : CreatureScript("npc_raging_ghoul") { }
+
+ struct npc_raging_ghoulAI : public ScriptedAI
+ {
+ npc_raging_ghoulAI(Creature* creature) : ScriptedAI(creature)
+ {
+ _instance = me->GetInstanceScript();
}
- EventMap events;
+ InstanceScript* _instance;
+ uint32 _emergeTimer;
+ bool _doEmerge;
+ bool _doJump;
+ uint64 _leaderGUID;
- void Reset()
+ void Reset() OVERRIDE
{
- events.Reset();
+ _emergeTimer = 4000;
+ _doEmerge = false;
+ _doJump = false;
+ if (_instance && _instance->GetData(DATA_ESCAPE_EVENT) == IN_PROGRESS)
+ _instance->SetData(DATA_SUMMONS, 1);
+
}
- void EnterCombat(Unit* /*who*/)
+ void IsSummonedBy(Unit*) OVERRIDE
{
- events.ScheduleEvent(EVENT_SHOOT, 2000); /// @todo adjust timers
- events.ScheduleEvent(EVENT_CURSED_ARROW, 10000);
- events.ScheduleEvent(EVENT_FROST_TRAP, 1000);
- events.ScheduleEvent(EVENT_ICE_SHOT, 15000);
+ DoCast(me, SPELL_EMERGE_VISUAL);
+ DoZoneInCombat(me, 100.00f);
}
- void UpdateAI(uint32 diff)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
- if (!UpdateVictim())
+ if (_instance)
+ _instance->SetData(DATA_SUMMONS, 0);
+ }
+
+ void AttackStart(Unit* who) OVERRIDE
+ {
+ if (!who)
return;
- events.Update(diff);
+ if (!_doEmerge)
+ return;
- if (me->HasUnitState(UNIT_STATE_CASTING))
+ ScriptedAI::AttackStart(who);
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ if (!_instance)
return;
- while (uint32 eventId = events.ExecuteEvent())
+ if (_instance->GetData(DATA_ESCAPE_EVENT) == IN_PROGRESS)
{
- switch (eventId)
+ _leaderGUID = _instance->GetData64(DATA_ESCAPE_LEADER);
+ Creature* leader = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_ESCAPE_LEADER));
+
+ if (_doEmerge != true)
{
- case EVENT_SHOOT:
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM))
- DoCast(target, SPELL_SHOOT);
- events.ScheduleEvent(EVENT_SHOOT, 2000);
- return;
- case EVENT_CURSED_ARROW:
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM))
- DoCast(target, SPELL_CURSED_ARROW);
- events.ScheduleEvent(EVENT_CURSED_ARROW, 10000);
- return;
- case EVENT_FROST_TRAP:
- DoCast(SPELL_FROST_TRAP);
- events.ScheduleEvent(EVENT_FROST_TRAP, 30000);
- return;
- case EVENT_ICE_SHOT:
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM))
- DoCast(target, SPELL_ICE_SHOT);
- events.ScheduleEvent(EVENT_ICE_SHOT, 15000);
- return;
+ if (_emergeTimer < diff)
+ {
+ _doEmerge = true;
+ if (leader)
+ {
+ DoResetThreat();
+ me->GetMotionMaster()->MoveIdle();
+ me->GetMotionMaster()->MoveChase(leader);
+ }
+ }
+ else
+ _emergeTimer -= diff;
+ }
+
+ if (me->Attack(leader,true))/*(Unit *target = SelectTarget(SELECT_TARGET_RANDOM, 0, 150.0f))*/
+ {
+ if (!_doJump && me->IsWithinDistInMap(leader, 30.0f) && !me->IsWithinDistInMap(leader, 5.0f))
+ {
+ _doJump = true;
+ DoCast(leader, SPELL_GHOUL_JUMP);
+ }
}
}
+ else if (_instance->GetData(DATA_ESCAPE_EVENT) == FAIL || _instance->GetData(DATA_ESCAPE_EVENT) == NOT_STARTED)
+ me->DespawnOrUnsummon();
+ DoMeleeAttackIfReady();
+ }
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_raging_ghoulAI(creature);
+ }
+};
+
+class npc_risen_witch_doctor : public CreatureScript
+{
+public:
+ npc_risen_witch_doctor() : CreatureScript("npc_risen_witch_doctor") { }
+ struct npc_risen_witch_doctorAI : public ScriptedAI
+ {
+ npc_risen_witch_doctorAI(Creature* creature) : ScriptedAI(creature)
+ {
+ _instance = me->GetInstanceScript();
+ }
+
+ InstanceScript* _instance;
+ uint32 _emergeTimer;
+ bool _doEmerge;
+ uint64 _leaderGUID;
+ uint32 _boltTimer;
+ uint32 _boltVolleyTimer;
+ uint32 _curseTimer;
+
+ void Reset() OVERRIDE
+ {
+ _emergeTimer = 5000;
+ _boltTimer = 6000;
+ _boltVolleyTimer = 15000;
+ _curseTimer = 7000;
+ _doEmerge = false;
+ if (_instance)
+ if (_instance->GetData(DATA_ESCAPE_EVENT) == IN_PROGRESS)
+ _instance->SetData(DATA_SUMMONS, 1);
+ }
+
+ void IsSummonedBy(Unit*) OVERRIDE
+ {
+ DoCast(me, SPELL_EMERGE_VISUAL);
+ DoZoneInCombat(me, 100.00f);
+ }
+
+ void JustDied(Unit* /*killer*/) OVERRIDE
+ {
+ if (_instance)
+ _instance->SetData(DATA_SUMMONS, 0);
+
+ }
+
+ void AttackStart(Unit* who) OVERRIDE
+ {
+ if (!who)
+ return;
+
+ if (_doEmerge == false)
+ return;
+
+ ScriptedAI::AttackStart(who);
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ if (!_instance)
+ return;
+
+ if (_instance->GetData(DATA_ESCAPE_EVENT) == IN_PROGRESS)
+ {
+ if (_doEmerge != true)
+ {
+ if (_emergeTimer < diff)
+ {
+ _doEmerge = true;
+ _leaderGUID = _instance->GetData64(DATA_ESCAPE_LEADER);
+
+ if (Creature* leader = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_ESCAPE_LEADER)))
+ {
+ DoResetThreat();
+ me->GetMotionMaster()->MoveIdle();
+ me->GetMotionMaster()->MoveChase(leader);
+ }
+ }
+ else
+ _emergeTimer -= diff;
+ }
+
+ if (_curseTimer < diff)
+ {
+ if (Unit *target = SelectTarget(SELECT_TARGET_RANDOM))
+ DoCast(target, SPELL_COURSE_OF_DOOM);
+ _curseTimer = urand(10000, 15000);
+ }
+ else
+ _curseTimer -= diff;
+
+ if (_boltTimer < diff)
+ {
+ if (Unit *target = SelectTarget(SELECT_TARGET_TOPAGGRO))
+ DoCast(target, SPELL_SHADOW_BOLT);
+ _boltTimer = urand(2000, 3000);
+ }
+ else
+ _boltTimer -= diff;
+
+ if (_boltVolleyTimer < diff)
+ {
+ if (Unit *target = SelectTarget(SELECT_TARGET_TOPAGGRO))
+ DoCast(target, SPELL_SHADOW_BOLT_VOLLEY);
+ _boltVolleyTimer = urand(15000, 22000);
+ }
+ else
+ _boltVolleyTimer -= diff;
+ }
+ else if (_instance->GetData(DATA_ESCAPE_EVENT) == FAIL || _instance->GetData(DATA_ESCAPE_EVENT) == NOT_STARTED)
+ me->DespawnOrUnsummon();
+ DoMeleeAttackIfReady();
+ }
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_risen_witch_doctorAI(creature);
+ }
+};
+
+
+class npc_lumbering_abomination : public CreatureScript
+{
+public:
+ npc_lumbering_abomination() : CreatureScript("npc_lumbering_abomination") { }
+
+ struct npc_lumbering_abominationAI : public ScriptedAI
+ {
+ npc_lumbering_abominationAI(Creature* creature) : ScriptedAI(creature)
+ {
+ _instance = me->GetInstanceScript();
+ }
+
+ InstanceScript* _instance;
+ uint64 _leaderGUID;
+ bool _doWalk;
+ uint32 _strikeTimer;
+ uint32 _vomitTimer;
+
+ void Reset() OVERRIDE
+ {
+ _doWalk = false;
+ _vomitTimer = 15000;
+ _strikeTimer = 6000;
+ if (_instance)
+ if (_instance->GetData(DATA_ESCAPE_EVENT) == IN_PROGRESS)
+ _instance->SetData(DATA_SUMMONS, 1);
+ }
+
+ void IsSummonedBy(Unit*) OVERRIDE
+ {
+ DoCast(me, SPELL_EMERGE_VISUAL);
+ DoZoneInCombat(me, 100.00f);
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ if (!_instance)
+ return;
+
+ if (_instance->GetData(DATA_ESCAPE_EVENT) == IN_PROGRESS)
+ {
+ if (_doWalk != true)
+ {
+ _doWalk = true;
+ _leaderGUID = _instance->GetData64(DATA_ESCAPE_LEADER);
+ if (Creature* leader = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_ESCAPE_LEADER)))
+ {
+ DoResetThreat();
+ me->GetMotionMaster()->MoveIdle();
+ me->GetMotionMaster()->MoveChase(leader);
+ }
+ }
+ if (_strikeTimer < diff)
+ {
+ if (Unit *target = SelectTarget(SELECT_TARGET_TOPAGGRO))
+ DoCast(target, SPELL_ABON_STRIKE);
+ _strikeTimer = urand(7000, 9000);
+ }
+ else
+ _strikeTimer -= diff;
+
+ if (_vomitTimer < diff)
+ {
+ if (Unit *target = SelectTarget(SELECT_TARGET_TOPAGGRO))
+ DoCast(target, SPELL_VOMIT_SPRAY);
+ _vomitTimer = urand(15000, 20000);
+ }
+ else
+ _vomitTimer -= diff;
+ }
+ else if (_instance->GetData(DATA_ESCAPE_EVENT) == FAIL || _instance->GetData(DATA_ESCAPE_EVENT) == NOT_STARTED)
+ me->DespawnOrUnsummon();
DoMeleeAttackIfReady();
}
+
+ void JustDied(Unit* /*killer*/) OVERRIDE
+ {
+ if (_instance)
+ _instance->SetData(DATA_SUMMONS, 0);
+ }
+
};
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_lumbering_abominationAI(creature);
+ }
};
void AddSC_halls_of_reflection()
{
- new npc_jaina_or_sylvanas_hor(true, "npc_sylvanas_hor_part1");
- new npc_jaina_or_sylvanas_hor(false, "npc_jaina_hor_part1");
+ new at_hor_intro_start();
+ new at_hor_waves_restarter();
+ new at_shadow_throne();
+ new npc_jaina_or_sylvanas_hor();
+ new npc_jaina_or_sylvanas_escape_hor();
new npc_ghostly_priest();
new npc_phantom_mage();
new npc_phantom_hallucination();
new npc_shadowy_mercenary();
new npc_spectral_footman();
new npc_tortured_rifleman();
+ new npc_raging_ghoul();
+ new npc_risen_witch_doctor();
+ new npc_lumbering_abomination();
+ new npc_frostworn_general();
+ new npc_spiritual_reflection();
}
diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.h b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.h
index 2cab1cca214..3223ecf66a5 100644
--- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.h
+++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.h
@@ -18,54 +18,92 @@
#ifndef DEF_HALLS_OF_REFLECTION_H
#define DEF_HALLS_OF_REFLECTION_H
-enum Data
-{
- DATA_FALRIC_EVENT,
- DATA_MARWYN_EVENT,
- DATA_LICHKING_EVENT,
- DATA_WAVE_COUNT,
- DATA_TEAM_IN_INSTANCE,
-};
+#define HoRScriptName "instance_halls_of_reflection"
+#define MAX_ENCOUNTER 3
-enum Data64
+/* Halls of Reflection encounters:
+0- Falric
+1- Marwyn
+2- The Lich King
+*/
+
+enum Data
{
- DATA_FALRIC,
- DATA_MARWYN,
- DATA_LICHKING,
- DATA_FROSTMOURNE,
+ DATA_FALRIC_EVENT = 0,
+ DATA_MARWYN_EVENT = 1,
+ DATA_LICHKING_EVENT = 2,
+ DATA_INTRO_EVENT = 3,
+ DATA_FROSWORN_EVENT = 4,
+
+ DATA_WAVE_COUNT = 5,
+ DATA_TEAM_IN_INSTANCE = 6,
+ DATA_FROSTMOURNE = 7,
+ DATA_FROSTWORN_DOOR = 8,
+ DATA_ESCAPE_EVENT = 9,
+ DATA_ESCAPE_LEADER = 10,
+ DATA_SUMMONS = 11,
+ DATA_ICEWALL = 12,
+ DATA_CAVE_IN = 13
};
enum Creatures
{
- NPC_FALRIC = 38112,
- NPC_MARWYN = 38113,
- NPC_LICH_KING_EVENT = 37226,
- NPC_LICH_KING_BOSS = 36954,
-
- NPC_UTHER = 37225,
NPC_JAINA_PART1 = 37221,
- NPC_JAINA_PART2 = 36955,
NPC_SYLVANAS_PART1 = 37223,
- NPC_SYLVANAS_PART2 = 37554,
+ NPC_UTHER = 37225,
+ NPC_LICH_KING_PART1 = 37226,
+ NPC_LORALEN = 37779,
+ NPC_KORELN = 37582,
+ NPC_FALRIC = 38112,
+ NPC_MARWYN = 38113,
NPC_WAVE_MERCENARY = 38177,
NPC_WAVE_FOOTMAN = 38173,
NPC_WAVE_RIFLEMAN = 38176,
NPC_WAVE_PRIEST = 38175,
NPC_WAVE_MAGE = 38172,
+
+ NPC_FROSTWORN_GENERAL = 36723,
+ NPC_REFLECTION = 37068, // 37107 for tank only?
+
+ NPC_JAINA_PART2 = 36955,
+ NPC_SYLVANAS_PART2 = 37554,
+ NPC_LICH_KING_PART2 = 36954,
+ NPC_BARTLETT = 37182, // High Captain Justin Bartlett
+ NPC_KORM = 37833, // Sky-Reaver Korm Blackscar
+ NPC_ICE_WALL = 37014, // Ice Wall Target
+
+ NPC_RAGING_GNOUL = 36940,
+ NPC_RISEN_WITCH_DOCTOR = 36941,
+ NPC_ABON = 37069
};
enum GameObjects
{
GO_FROSTMOURNE = 202302,
- GO_FROSTMOURNE_ALTAR = 202236,
- GO_FRONT_DOOR = 201976,
- GO_ARTHAS_DOOR = 197341,
+ GO_ENTRANCE_DOOR = 201976,
+ GO_FROSTWORN_DOOR = 197341,
+ GO_ARTHAS_DOOR = 197342,
+ //GO_ESCAPE_DOOR = 197343, // always open ?
+
+ GO_ICE_WALL = 201385,
+ GO_CAVE = 201596,
+
+ GO_STAIRS_SKYBREAKER = 201709,
+ GO_SKYBREAKER = 201598,
+ GO_STAIRS_ORGRIM_HAMMER = 202211,
+ GO_ORGRIM_HAMMER = 201599,
+ GO_PORTAL = 202079,
+
+ GO_CAPTAIN_CHEST_1 = 202212, //3145
+ GO_CAPTAIN_CHEST_2 = 201710, //30357
+ GO_CAPTAIN_CHEST_3 = 202337, //3246
+ GO_CAPTAIN_CHEST_4 = 202336, //3333
};
enum HorWorldStates
{
- WORLD_STATE_HOR = 4884,
+ WORLD_STATE_HOR_WAVES_ENABLED = 4884,
WORLD_STATE_HOR_WAVE_COUNT = 4882,
};
@@ -73,6 +111,23 @@ enum HorWorldStates
enum Actions
{
ACTION_ENTER_COMBAT,
+ ACTION_START_ESCAPING,
+ ACTION_WALL_BROKEN
+};
+
+enum TrashGeneralSpells
+{
+ // General spells
+ SPELL_WELL_OF_SOULS = 72630, // cast when spawn(become visible)
+ SPELL_SPIRIT_ACTIVATE = 72130, // cast when unit activates
+};
+
+enum InstanceEvents
+{
+ EVENT_SPAWN_WAVES = 1,
+ EVENT_NEXT_WAVE = 2,
+ EVENT_DO_WIPE = 3,
+ EVENT_ADD_WAVE = 4,
};
// Base class for FALRIC and MARWYN
@@ -92,14 +147,10 @@ struct boss_horAI : ScriptedAI
{
events.Reset();
me->SetVisible(false);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE);
+ me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_IMMUNE_TO_NPC);
me->SetReactState(REACT_PASSIVE);
- }
-
- void DamageTaken(Unit* /*who*/, uint32 &uiDamage)
- {
- if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
- uiDamage = 0;
+ if (instance && instance->GetData(DATA_WAVE_COUNT) != NOT_STARTED)
+ instance->ProcessEvent(0, EVENT_DO_WIPE);
}
void DoAction(int32 actionID)
@@ -107,11 +158,7 @@ struct boss_horAI : ScriptedAI
switch (actionID)
{
case ACTION_ENTER_COMBAT: // called by InstanceScript when boss shall enter in combat.
- // Just in case. Should have been done by InstanceScript
- me->SetVisible(true);
-
- // Reset flags
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE);
+ me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_IMMUNE_TO_NPC);
me->SetReactState(REACT_AGGRESSIVE);
if (Unit* unit = me->SelectNearestTarget())
@@ -125,32 +172,6 @@ struct boss_horAI : ScriptedAI
void JustSummoned(Creature* summoned)
{
summons.Summon(summoned);
-
- if (Unit* target = summoned->SelectNearestTarget())
- {
- if (summoned->AI())
- summoned->AI()->AttackStart(target);
- else
- {
- summoned->GetMotionMaster()->MoveChase(target);
- summoned->Attack(target, true);
- }
- }
-
- if (summoned->AI())
- summoned->AI()->DoZoneInCombat();
- }
-
- void SummonedCreatureDespawn(Creature* summoned)
- {
- summons.Despawn(summoned);
- if (summons.empty())
- {
- if (summoned->isAlive())
- instance->SetData(DATA_WAVE_COUNT, NOT_STARTED);
- else
- instance->SetData(DATA_WAVE_COUNT, SPECIAL);
- }
}
};
diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp
index dde3f7acc67..a026a6636d4 100644
--- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp
@@ -18,85 +18,52 @@
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "InstanceScript.h"
-#include "halls_of_reflection.h"
#include "Player.h"
+#include "WorldPacket.h"
+#include "halls_of_reflection.h"
-#define MAX_ENCOUNTER 3
-
-/* Halls of Reflection encounters:
-0- Falric
-1- Marwyn
-2- The Lich King
-*/
-
-enum eEnum
-{
- ENCOUNTER_WAVE_MERCENARY = 6,
- ENCOUNTER_WAVE_FOOTMAN = 10,
- ENCOUNTER_WAVE_RIFLEMAN = 6,
- ENCOUNTER_WAVE_PRIEST = 6,
- ENCOUNTER_WAVE_MAGE = 6,
-};
-
-enum Events
-{
- EVENT_NONE,
- EVENT_NEXT_WAVE,
- EVENT_START_LICH_KING,
-};
-
-static Position PriestSpawnPos[ENCOUNTER_WAVE_PRIEST] =
-{
- {5277.74f, 2016.88f, 707.778f, 5.96903f},
- {5295.88f, 2040.34f, 707.778f, 5.07891f},
- {5320.37f, 1980.13f, 707.778f, 2.00713f},
- {5280.51f, 1997.84f, 707.778f, 0.296706f},
- {5302.45f, 2042.22f, 707.778f, 4.90438f},
- {5306.57f, 1977.47f, 707.778f, 1.50098f},
-};
-
-static Position MageSpawnPos[ENCOUNTER_WAVE_MAGE] =
-{
- {5312.75f, 2037.12f, 707.778f, 4.59022f},
- {5309.58f, 2042.67f, 707.778f, 4.69494f},
- {5275.08f, 2008.72f, 707.778f, 6.21337f},
- {5279.65f, 2004.66f, 707.778f, 0.069813f},
- {5275.48f, 2001.14f, 707.778f, 0.174533f},
- {5316.7f, 2041.55f, 707.778f, 4.50295f},
-};
-
-static Position MercenarySpawnPos[ENCOUNTER_WAVE_MERCENARY] =
-{
- {5302.25f, 1972.41f, 707.778f, 1.37881f},
- {5311.03f, 1972.23f, 707.778f, 1.64061f},
- {5277.36f, 1993.23f, 707.778f, 0.401426f},
- {5318.7f, 2036.11f, 707.778f, 4.2237f},
- {5335.72f, 1996.86f, 707.778f, 2.74017f},
- {5299.43f, 1979.01f, 707.778f, 1.23918f},
-};
-
-static Position FootmenSpawnPos[ENCOUNTER_WAVE_FOOTMAN] =
-{
- {5306.06f, 2037, 707.778f, 4.81711f},
- {5344.15f, 2007.17f, 707.778f, 3.15905f},
- {5337.83f, 2010.06f, 707.778f, 3.22886f},
- {5343.29f, 1999.38f, 707.778f, 2.9147f},
- {5340.84f, 1992.46f, 707.778f, 2.75762f},
- {5325.07f, 1977.6f, 707.778f, 2.07694f},
- {5336.6f, 2017.28f, 707.778f, 3.47321f},
- {5313.82f, 1978.15f, 707.778f, 1.74533f},
- {5280.63f, 2012.16f, 707.778f, 6.05629f},
- {5322.96f, 2040.29f, 707.778f, 4.34587f},
-};
+Position const JainaSpawnPos = {5236.659f, 1929.894f, 707.7781f, 0.8726646f}; // Jaina Spawn Position
+Position const SylvanasSpawnPos = {5236.667f, 1929.906f, 707.7781f, 0.8377581f}; // Sylvanas Spawn Position
+Position const GeneralSpawnPos = {5415.538f, 2117.842f, 707.7781f, 3.944444f}; // Frostsworn General
+Position const JainaSpawnPos2 = {5549.011f, 2257.041f, 733.0120f, 1.153993f}; // Jaina Spawn Position 2
+Position const SylvanasSpawnPos2 = {5549.011f, 2257.041f, 733.0120f, 1.153993f}; // Sylvanas Spawn Position 2
-static Position RiflemanSpawnPos[ENCOUNTER_WAVE_RIFLEMAN] =
+Position const SpawnPos[] =
{
- {5343.47f, 2015.95f, 707.778f, 3.49066f},
- {5337.86f, 2003.4f, 707.778f, 2.98451f},
- {5319.16f, 1974, 707.778f, 1.91986f},
- {5299.25f, 2036, 707.778f, 5.02655f},
- {5295.64f, 1973.76f, 707.778f, 1.18682f},
- {5282.9f, 2019.6f, 707.778f, 5.88176f},
+ {5309.577f, 2042.668f, 707.7781f, 4.694936f},
+ {5295.885f, 2040.342f, 707.7781f, 5.078908f},
+ {5340.836f, 1992.458f, 707.7781f, 2.757620f},
+ {5325.072f, 1977.597f, 707.7781f, 2.076942f},
+ {5277.365f, 1993.229f, 707.7781f, 0.401426f},
+ {5275.479f, 2001.135f, 707.7781f, 0.174533f},
+ {5302.448f, 2042.222f, 707.7781f, 4.904375f},
+ {5343.293f, 1999.384f, 707.7781f, 2.914700f},
+ {5295.635f, 1973.757f, 707.7781f, 1.186824f},
+ {5311.031f, 1972.229f, 707.7781f, 1.640610f},
+ {5275.076f, 2008.724f, 707.7781f, 6.213372f},
+ {5316.701f, 2041.550f, 707.7781f, 4.502949f},
+ {5344.150f, 2007.168f, 707.7781f, 3.159046f},
+ {5319.158f, 1973.998f, 707.7781f, 1.919862f},
+ {5302.247f, 1972.415f, 707.7781f, 1.378810f},
+ {5277.739f, 2016.882f, 707.7781f, 5.969026f},
+ {5322.964f, 2040.288f, 707.7781f, 4.345870f},
+ {5343.467f, 2015.951f, 707.7781f, 3.490659f},
+ {5313.820f, 1978.146f, 707.7781f, 1.745329f},
+ {5279.649f, 2004.656f, 707.7781f, 0.069814f},
+ {5306.057f, 2037.002f, 707.7781f, 4.817109f},
+ {5337.865f, 2003.403f, 707.7781f, 2.984513f},
+ {5299.434f, 1979.009f, 707.7781f, 1.239184f},
+ {5312.752f, 2037.122f, 707.7781f, 4.590216f},
+ {5335.724f, 1996.859f, 707.7781f, 2.740167f},
+ {5280.632f, 2012.156f, 707.7781f, 6.056293f},
+ {5320.369f, 1980.125f, 707.7781f, 2.007129f},
+ {5306.572f, 1977.474f, 707.7781f, 1.500983f},
+ {5336.599f, 2017.278f, 707.7781f, 3.473205f},
+ {5282.897f, 2019.597f, 707.7781f, 5.881760f},
+ {5318.704f, 2036.108f, 707.7781f, 4.223697f},
+ {5280.513f, 1997.842f, 707.7781f, 0.296706f},
+ {5337.833f, 2010.057f, 707.7781f, 3.228859f},
+ {5299.250f, 2035.998f, 707.7781f, 5.026548f},
};
class instance_halls_of_reflection : public InstanceMapScript
@@ -104,186 +71,446 @@ class instance_halls_of_reflection : public InstanceMapScript
public:
instance_halls_of_reflection() : InstanceMapScript("instance_halls_of_reflection", 668) { }
- InstanceScript* GetInstanceScript(InstanceMap* map) const
- {
- return new instance_halls_of_reflection_InstanceMapScript(map);
- }
-
struct instance_halls_of_reflection_InstanceMapScript : public InstanceScript
{
- instance_halls_of_reflection_InstanceMapScript(Map* map) : InstanceScript(map) {};
-
- uint64 uiFalric;
- uint64 uiMarwyn;
- uint64 uiLichKingEvent;
- uint64 uiJainaPart1;
- uint64 uiSylvanasPart1;
-
- uint64 uiFrostmourne;
- uint64 uiFrostmourneAltar;
- uint64 uiArthasDoor;
- uint64 uiFrontDoor;
+ instance_halls_of_reflection_InstanceMapScript(Map* map) : InstanceScript(map) {}
- uint32 uiEncounter[MAX_ENCOUNTER];
- uint32 uiTeamInInstance;
- uint32 uiWaveCount;
- bool bIntroDone;
-
- EventMap events;
-
- void Initialize()
+ void Initialize() OVERRIDE
{
+ SetBossNumber(MAX_ENCOUNTER);
events.Reset();
+ _falricGUID = 0;
+ _marwynGUID = 0;
+ _jainaOrSylvanasPart1GUID = 0;
+ _frostwornGeneralGUID = 0;
+ _frostmourneGUID = 0;
+ _entranceDoorGUID = 0;
+ _frostwornDoorGUID = 0;
+ _arthasDoorGUID = 0;
+ _teamInInstance = 0;
+ _waveCount = 0;
+ _mobsaticewall = 0;
+ _introEvent = NOT_STARTED;
+ _frostwornGeneral = NOT_STARTED;
+ _escapeevent = NOT_STARTED;
+ }
- uiFalric = 0;
- uiMarwyn = 0;
- uiLichKingEvent = 0;
- uiJainaPart1 = 0;
- uiSylvanasPart1 = 0;
-
- uiFrostmourne = 0;
- uiFrostmourneAltar = 0;
- uiArthasDoor = 0;
- uiFrontDoor = 0;
- uiTeamInInstance = 0;
- uiWaveCount = 0;
- bIntroDone = false;
-
- for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
- uiEncounter[i] = NOT_STARTED;
+ void OnPlayerEnter(Player* player) OVERRIDE
+ {
+ if (!_teamInInstance)
+ _teamInInstance = player->GetTeam();
}
- void OnCreatureCreate(Creature* creature)
+ void OnCreatureCreate(Creature* creature) OVERRIDE
{
- Map::PlayerList const &players = instance->GetPlayers();
+ Map::PlayerList const& players = instance->GetPlayers();
if (!players.isEmpty())
- if (Player* player = players.begin()->getSource())
- uiTeamInInstance = player->GetTeam();
+ if (Player* player = players.begin()->GetSource())
+ _teamInInstance = player->GetTeam();
switch (creature->GetEntry())
{
+ case NPC_JAINA_PART1:
+ case NPC_SYLVANAS_PART1:
+ _jainaOrSylvanasPart1GUID = creature->GetGUID();
+ break;
case NPC_FALRIC:
- uiFalric = creature->GetGUID();
+ _falricGUID = creature->GetGUID();
break;
case NPC_MARWYN:
- uiMarwyn = creature->GetGUID();
+ _marwynGUID = creature->GetGUID();
break;
- case NPC_LICH_KING_EVENT:
- uiLichKingEvent = creature->GetGUID();
+ case NPC_FROSTWORN_GENERAL:
+ _frostwornGeneralGUID = creature->GetGUID();
+ if (GetBossState(DATA_MARWYN_EVENT) == DONE)
+ if (Creature* general = instance->GetCreature(_frostwornGeneralGUID))
+ general->SetPhaseMask(1, true);
break;
- case NPC_JAINA_PART1:
- uiJainaPart1 = creature->GetGUID();
+ case NPC_JAINA_PART2:
+ case NPC_SYLVANAS_PART2:
+ _jainaOrSylvanasPart2GUID = creature->GetGUID();
break;
- case NPC_SYLVANAS_PART1:
- uiSylvanasPart1 = creature->GetGUID();
+ }
+ }
+
+ void OnCreatureRemove(Creature* creature) OVERRIDE
+ {
+ switch (creature->GetEntry())
+ {
+ case NPC_WAVE_MERCENARY:
+ case NPC_WAVE_FOOTMAN:
+ case NPC_WAVE_RIFLEMAN:
+ case NPC_WAVE_PRIEST:
+ case NPC_WAVE_MAGE:
+ {
+ uint32 internalWaveId = creature->AI()->GetData(0);
+ waveGuidList[internalWaveId].erase(creature->GetGUID());
break;
+ }
}
}
- void OnGameObjectCreate(GameObject* go)
+ void OnGameObjectCreate(GameObject* go) OVERRIDE
{
- /// @todo init state depending on encounters
switch (go->GetEntry())
{
case GO_FROSTMOURNE:
- uiFrostmourne = go->GetGUID();
+ _frostmourneGUID = go->GetGUID();
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_INTERACT_COND);
HandleGameObject(0, false, go);
+ if (GetData(DATA_INTRO_EVENT) == DONE)
+ go->SetPhaseMask(2, true);
break;
- case GO_FROSTMOURNE_ALTAR:
- uiFrostmourneAltar = go->GetGUID();
+ case GO_ENTRANCE_DOOR:
+ _entranceDoorGUID = go->GetGUID();
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_INTERACT_COND);
HandleGameObject(0, true, go);
break;
- case GO_FRONT_DOOR:
- uiFrontDoor = go->GetGUID();
+ case GO_FROSTWORN_DOOR:
+ _frostwornDoorGUID = go->GetGUID();
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_INTERACT_COND);
- HandleGameObject(0, true, go);
+ if (GetBossState(DATA_MARWYN_EVENT) == DONE)
+ HandleGameObject(0, true, go);
+ else
+ HandleGameObject(0, false, go);
break;
case GO_ARTHAS_DOOR:
- uiArthasDoor = go->GetGUID();
+ _arthasDoorGUID = go->GetGUID();
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_INTERACT_COND);
-
- if (uiEncounter[1] == DONE)
+ if (GetBossState(DATA_FROSWORN_EVENT) == DONE)
HandleGameObject(0, true, go);
else
HandleGameObject(0, false, go);
break;
+ case GO_CAVE:
+ _caveGUID = go->GetGUID();
+ go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_INTERACT_COND);
+ break;
}
}
- void SetData(uint32 type, uint32 data)
+ void FillInitialWorldStates(WorldPacket& data) OVERRIDE
{
- if (type == DATA_WAVE_COUNT && data == SPECIAL)
- {
- bIntroDone = true;
- events.ScheduleEvent(EVENT_NEXT_WAVE, 10000);
- return;
- }
+ data << uint32(WORLD_STATE_HOR_WAVES_ENABLED) << uint32(0);
+ data << uint32(WORLD_STATE_HOR_WAVE_COUNT) << uint32(0);
+ }
- if (uiWaveCount && data == NOT_STARTED)
- DoWipe();
+ bool SetBossState(uint32 type, EncounterState state) OVERRIDE
+ {
+ if (!InstanceScript::SetBossState(type, state))
+ return false;
switch (type)
{
case DATA_FALRIC_EVENT:
- uiEncounter[0] = data;
- if (data == DONE)
+ if (state == DONE)
+ {
+ ++_waveCount;
events.ScheduleEvent(EVENT_NEXT_WAVE, 60000);
+ }
break;
case DATA_MARWYN_EVENT:
- uiEncounter[1] = data;
- if (data == DONE)
- HandleGameObject(uiArthasDoor, true);
+ if (state == DONE)
+ {
+ HandleGameObject(_entranceDoorGUID, true);
+ HandleGameObject(_frostwornDoorGUID, true);
+ DoUpdateWorldState(WORLD_STATE_HOR_WAVES_ENABLED, 0);
+ if (Creature* general = instance->GetCreature(_frostwornGeneralGUID))
+ general->SetPhaseMask(1, true);
+ }
break;
case DATA_LICHKING_EVENT:
- uiEncounter[2] = data;
+ default:
+ break;
+ }
+
+ return true;
+ }
+
+ void SetData(uint32 type, uint32 data) OVERRIDE
+ {
+ switch (type)
+ {
+ case DATA_INTRO_EVENT:
+ if (data == IN_PROGRESS)
+ {
+ if (!_introEvent)
+ {
+ if (_teamInInstance == ALLIANCE)
+ instance->SummonCreature(NPC_JAINA_PART1, JainaSpawnPos);
+ else
+ instance->SummonCreature(NPC_SYLVANAS_PART1, SylvanasSpawnPos);
+ }
+ }
+ _introEvent = data;
+ break;
+ case DATA_WAVE_COUNT:
+ if (_waveCount && data == NOT_STARTED)
+ ProcessEvent(NULL, EVENT_DO_WIPE);
+ break;
+ case DATA_FROSWORN_EVENT:
+ if (data == DONE)
+ {
+ HandleGameObject(_arthasDoorGUID, true);
+ if (_teamInInstance == ALLIANCE)
+ instance->SummonCreature(NPC_JAINA_PART2, JainaSpawnPos2);
+ else
+ instance->SummonCreature(NPC_SYLVANAS_PART2, SylvanasSpawnPos2);
+ }
+ _frostwornGeneral = data;
+ break;
+ case DATA_ESCAPE_EVENT:
+ if (data == IN_PROGRESS)
+ {
+ if (!_escapeevent)
+ if (Creature* jaina_or_sylvanas = instance->GetCreature(_jainaOrSylvanasPart2GUID))
+ jaina_or_sylvanas->AI()->DoAction(ACTION_START_ESCAPING);
+ }
+ else if (data == NOT_STARTED)
+ {
+ if (Creature* jaina_or_sylvanas = instance->GetCreature(_jainaOrSylvanasPart2GUID))
+ jaina_or_sylvanas->DespawnOrUnsummon(1);
+ if (_teamInInstance == ALLIANCE)
+ instance->SummonCreature(NPC_JAINA_PART2, JainaSpawnPos2);
+ else
+ instance->SummonCreature(NPC_SYLVANAS_PART2, SylvanasSpawnPos2);
+ SetData(DATA_ESCAPE_EVENT,IN_PROGRESS);
+ }
+ _escapeevent = data;
+ break;
+ case DATA_SUMMONS:
+ if (data == 0)
+ {
+ _mobsaticewall--;
+ if (_mobsaticewall == 0)
+ {
+ if (Creature* jaina_or_sylvanas = instance->GetCreature(_jainaOrSylvanasPart2GUID))
+ jaina_or_sylvanas->AI()->DoAction(ACTION_WALL_BROKEN);
+ }
+ }
+ else if (data == 1)
+ _mobsaticewall++;
+ break;
+ }
+
+ SaveToDB();
+ }
+
+
+ // wave scheduling,checked when wave npcs die
+ void OnUnitDeath(Unit* unit) OVERRIDE
+ {
+ Creature* creature = unit->ToCreature();
+ if (!creature)
+ return;
+
+ switch (creature->GetEntry())
+ {
+ case NPC_WAVE_MERCENARY:
+ case NPC_WAVE_FOOTMAN:
+ case NPC_WAVE_RIFLEMAN:
+ case NPC_WAVE_PRIEST:
+ case NPC_WAVE_MAGE:
+ {
+ uint32 deadNpcs = 0;
+ uint32 waveId = creature->AI()->GetData(0);
+ for (std::set<uint64>::const_iterator itr = waveGuidList[waveId].begin(); itr != waveGuidList[waveId].end(); ++itr)
+ {
+ Creature* npc = instance->GetCreature(*itr);
+ if (!npc || !npc->IsAlive())
+ ++deadNpcs;
+ }
+ // because the current npc returns IsAlive when OnUnitDeath happens
+ // we check if the number of dead npcs is equal to the list-1
+ if (deadNpcs == waveGuidList[waveId].size() - 1)
+ {
+ ++_waveCount;
+ events.ScheduleEvent(EVENT_NEXT_WAVE, 3000);
+ }
+ break;
+ }
+ }
+ }
+
+ void Update(uint32 diff) OVERRIDE
+ {
+ if (!instance->HavePlayers())
+ return;
+
+ events.Update(diff);
+
+ switch (events.ExecuteEvent())
+ {
+ case EVENT_NEXT_WAVE:
+ ProcessEvent(NULL, EVENT_ADD_WAVE);
break;
}
+ }
- if (data == DONE)
- SaveToDB();
+ void ProcessEvent(WorldObject* /*go*/, uint32 eventId) OVERRIDE
+ {
+ switch (eventId)
+ {
+ // spawning all wave npcs at once
+ case EVENT_SPAWN_WAVES:
+ _waveCount = 1;
+ DoUpdateWorldState(WORLD_STATE_HOR_WAVES_ENABLED, 1);
+ DoUpdateWorldState(WORLD_STATE_HOR_WAVE_COUNT, _waveCount);
+ {
+ std::list<uint32> possibilityList, tempList;
+ uint32 posIndex = 0;
+
+ possibilityList.push_back(NPC_WAVE_MERCENARY);
+ possibilityList.push_back(NPC_WAVE_FOOTMAN);
+ possibilityList.push_back(NPC_WAVE_RIFLEMAN);
+ possibilityList.push_back(NPC_WAVE_PRIEST);
+ possibilityList.push_back(NPC_WAVE_MAGE);
+
+ // iterate each wave
+ for (uint8 i = 0; i < 8; ++i)
+ {
+ tempList = possibilityList;
+
+ uint64 bossGuid = i <= 3 ? _falricGUID : _marwynGUID;
+
+ if (!i)
+ Trinity::Containers::RandomResizeList(tempList, 3);
+ else if (i < 6 && i != 3)
+ Trinity::Containers::RandomResizeList(tempList, 4);
+
+ for (std::list<uint32>::const_iterator itr = tempList.begin(); itr != tempList.end(); ++itr)
+ {
+ if (Creature* boss = instance->GetCreature(bossGuid))
+ {
+ if (Creature* temp = boss->SummonCreature(*itr, SpawnPos[posIndex], TEMPSUMMON_DEAD_DESPAWN))
+ {
+ temp->AI()->SetData(0, i);
+ waveGuidList[i].insert(temp->GetGUID());
+ }
+ }
+
+ ++posIndex;
+ }
+ }
+ }
+ events.ScheduleEvent(EVENT_NEXT_WAVE, 5000);
+ break;
+ case EVENT_ADD_WAVE:
+ DoUpdateWorldState(WORLD_STATE_HOR_WAVES_ENABLED, 1);
+ DoUpdateWorldState(WORLD_STATE_HOR_WAVE_COUNT, _waveCount);
+ HandleGameObject(_entranceDoorGUID, false);
+
+ if (_waveCount % 5)
+ {
+ uint32 internalWaveId = _waveCount - ((_waveCount < 5) ? 1 : 2);
+ for (std::set<uint64>::const_iterator itr = waveGuidList[internalWaveId].begin(); itr != waveGuidList[internalWaveId].end(); ++itr)
+ {
+ if (Creature* temp = instance->GetCreature(*itr))
+ {
+ temp->CastSpell(temp, SPELL_SPIRIT_ACTIVATE, true);
+ temp->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_IMMUNE_TO_NPC|UNIT_FLAG_NOT_SELECTABLE);
+ temp->AI()->DoZoneInCombat(temp, 100.00f);
+ }
+ }
+ }
+ else
+ {
+ uint32 bossIndex = (_waveCount / 5) - 1;
+ if (GetBossState(DATA_FALRIC_EVENT + bossIndex) != DONE)
+ {
+ if (Creature* boss = instance->GetCreature(bossIndex ? _marwynGUID : _falricGUID))
+ boss->AI()->DoAction(ACTION_ENTER_COMBAT);
+ }
+ else if (_waveCount != 10)
+ {
+ ++_waveCount;
+ events.ScheduleEvent(EVENT_NEXT_WAVE, 5000);
+ }
+ }
+ break;
+ case EVENT_DO_WIPE:
+ _waveCount = 0;
+ events.Reset();
+ DoUpdateWorldState(WORLD_STATE_HOR_WAVES_ENABLED, 1);
+ DoUpdateWorldState(WORLD_STATE_HOR_WAVE_COUNT, _waveCount);
+ HandleGameObject(_entranceDoorGUID, true);
+
+ if (Creature* falric = instance->GetCreature(_falricGUID))
+ falric->SetVisible(false);
+ if (Creature* marwyn = instance->GetCreature(_marwynGUID))
+ marwyn->SetVisible(false);
+ //despawn wave npcs
+ for (uint8 i = 0; i < 8; ++i)
+ {
+ for (std::set<uint64>::const_iterator itr = waveGuidList[i].begin(); itr != waveGuidList[i].end(); ++itr)
+ if (Creature* creature = instance->GetCreature(*itr))
+ creature->DespawnOrUnsummon(1);
+ waveGuidList[i].clear();
+ }
+ break;
+ }
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
- case DATA_FALRIC_EVENT: return uiEncounter[0];
- case DATA_MARWYN_EVENT: return uiEncounter[1];
- case DATA_LICHKING_EVENT: return uiEncounter[2];
- case DATA_WAVE_COUNT: return uiWaveCount;
- case DATA_TEAM_IN_INSTANCE: return uiTeamInInstance;
+ case DATA_WAVE_COUNT:
+ return _waveCount;
+ case DATA_TEAM_IN_INSTANCE:
+ return _teamInInstance;
+ case DATA_INTRO_EVENT:
+ return _introEvent;
+ case DATA_FROSWORN_EVENT:
+ return _frostwornGeneral;
+ case DATA_ESCAPE_EVENT:
+ return _escapeevent;
+ case DATA_SUMMONS:
+ return _mobsaticewall;
+ default:
+ break;
}
return 0;
}
- uint64 GetData64(uint32 identifier) const
+ uint64 GetData64(uint32 type) const OVERRIDE
{
- switch (identifier)
+ switch (type)
{
- case DATA_FALRIC: return uiFalric;
- case DATA_MARWYN: return uiMarwyn;
- case DATA_LICHKING: return uiLichKingEvent;
- case DATA_FROSTMOURNE: return uiFrostmourne;
+ case DATA_FALRIC_EVENT:
+ return _falricGUID;
+ case DATA_MARWYN_EVENT:
+ return _marwynGUID;
+ case DATA_FROSWORN_EVENT:
+ return _frostwornGeneralGUID;
+ case DATA_FROSTWORN_DOOR:
+ return _frostwornDoorGUID;
+ case DATA_FROSTMOURNE:
+ return _frostmourneGUID;
+ case DATA_ESCAPE_LEADER:
+ return _jainaOrSylvanasPart2GUID;
+ case DATA_CAVE_IN:
+ return _caveGUID;
+ default:
+ break;
}
return 0;
}
- std::string GetSaveData()
+ std::string GetSaveData() OVERRIDE
{
OUT_SAVE_INST_DATA;
std::ostringstream saveStream;
- saveStream << "H R 1 " << uiEncounter[0] << ' ' << uiEncounter[1] << ' ' << uiEncounter[2];
+ saveStream << "H R " << GetBossSaveData() << _introEvent << ' ' << _frostwornGeneral << _escapeevent;
OUT_SAVE_INST_DATA_COMPLETE;
return saveStream.str();
}
- void Load(const char* in)
+ void Load(char const* in) OVERRIDE
{
if (!in)
{
@@ -294,135 +521,78 @@ public:
OUT_LOAD_INST_DATA(in);
char dataHead1, dataHead2;
- uint16 version;
- uint16 data0, data1, data2;
std::istringstream loadStream(in);
- loadStream >> dataHead1 >> dataHead2 >> version >> data0 >> data1 >> data2;
+ loadStream >> dataHead1 >> dataHead2;
if (dataHead1 == 'H' && dataHead2 == 'R')
{
- uiEncounter[0] = data0;
- uiEncounter[1] = data1;
- uiEncounter[2] = data2;
-
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
- if (uiEncounter[i] == IN_PROGRESS)
- uiEncounter[i] = NOT_STARTED;
-
- } else OUT_LOAD_INST_DATA_FAIL;
-
- if (uiEncounter[0] == DONE || uiEncounter[1] == DONE)
- bIntroDone = true;
-
- OUT_LOAD_INST_DATA_COMPLETE;
- }
-
- void AddWave()
- {
- DoUpdateWorldState(WORLD_STATE_HOR, 1);
- DoUpdateWorldState(WORLD_STATE_HOR_WAVE_COUNT, uiWaveCount);
-
- switch (uiWaveCount)
- {
- case 1:
- case 2:
- case 3:
- case 4:
- if (Creature* pFalric = instance->GetCreature(uiFalric))
- SpawnWave(pFalric);
- break;
- case 5:
- if (GetData(DATA_FALRIC_EVENT) == DONE)
- events.ScheduleEvent(EVENT_NEXT_WAVE, 10000);
- else if (Creature* pFalric = instance->GetCreature(uiFalric))
- if (pFalric->AI())
- pFalric->AI()->DoAction(ACTION_ENTER_COMBAT);
- break;
- case 6:
- case 7:
- case 8:
- case 9:
- if (Creature* pMarwyn = instance->GetCreature(uiMarwyn))
- SpawnWave(pMarwyn);
- break;
- case 10:
- if (GetData(DATA_MARWYN_EVENT) != DONE) // wave should not have been started if DONE. Check anyway to avoid bug exploit!
- if (Creature* pMarwyn = instance->GetCreature(uiMarwyn))
- if (pMarwyn->AI())
- pMarwyn->AI()->DoAction(ACTION_ENTER_COMBAT);
- break;
+ {
+ uint32 tmpState;
+ loadStream >> tmpState;
+ if (tmpState == IN_PROGRESS || tmpState > SPECIAL)
+ tmpState = NOT_STARTED;
+
+ SetBossState(i, EncounterState(tmpState));
+ }
+
+ uint32 temp = 0;
+ loadStream >> temp;
+ if (temp == DONE)
+ SetData(DATA_INTRO_EVENT, DONE);
+ else
+ SetData(DATA_INTRO_EVENT, NOT_STARTED);
+
+ loadStream >> temp;
+ if (temp == DONE)
+ SetData(DATA_FROSWORN_EVENT, DONE);
+ else
+ SetData(DATA_FROSWORN_EVENT, NOT_STARTED);
+
+ loadStream >> temp;
+ if (temp == DONE)
+ SetData(DATA_ESCAPE_EVENT, DONE);
+ else
+ SetData(DATA_ESCAPE_EVENT, NOT_STARTED);
}
- }
-
- // Wipe has been detected. Perform cleanup and reset.
- void DoWipe()
- {
- uiWaveCount = 0;
- events.Reset();
- DoUpdateWorldState(WORLD_STATE_HOR, 1);
- DoUpdateWorldState(WORLD_STATE_HOR_WAVE_COUNT, uiWaveCount);
- HandleGameObject(uiFrontDoor, true);
-
- /// @todo
- // in case of wipe, the event is normally restarted by jumping into the center of the room.
- // As I can't find a trigger area there, just respawn Jaina/Sylvanas so the event may be restarted.
- if (Creature* pJaina = instance->GetCreature(uiJainaPart1))
- pJaina->Respawn();
- if (Creature* pSylvanas = instance->GetCreature(uiSylvanasPart1))
- pSylvanas->Respawn();
-
- if (Creature* pFalric = instance->GetCreature(uiFalric))
- pFalric->SetVisible(false);
- if (Creature* pMarwyn = instance->GetCreature(uiMarwyn))
- pMarwyn->SetVisible(false);
- }
-
- // spawn a wave on behalf of the summoner.
- void SpawnWave(Creature* summoner)
- {
- uint32 index;
-
- summoner->SetVisible(true);
-
- /// @todo do composition at random. # of spawn also depends on uiWaveCount
- // As of now, it is just one of each.
- index = urand(0, ENCOUNTER_WAVE_MERCENARY-1);
- summoner->SummonCreature(NPC_WAVE_MERCENARY, MercenarySpawnPos[index], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 0);
-
- index = urand(0, ENCOUNTER_WAVE_FOOTMAN-1);
- summoner->SummonCreature(NPC_WAVE_FOOTMAN, FootmenSpawnPos[index], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 0);
-
- index = urand(0, ENCOUNTER_WAVE_RIFLEMAN-1);
- summoner->SummonCreature(NPC_WAVE_RIFLEMAN, RiflemanSpawnPos[index], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 0);
-
- index = urand(0, ENCOUNTER_WAVE_PRIEST-1);
- summoner->SummonCreature(NPC_WAVE_PRIEST, PriestSpawnPos[index], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 0);
+ else
+ OUT_LOAD_INST_DATA_FAIL;
- index = urand(0, ENCOUNTER_WAVE_MAGE-1);
- summoner->SummonCreature(NPC_WAVE_MAGE, MageSpawnPos[index], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 0);
+ OUT_LOAD_INST_DATA_COMPLETE;
}
- void Update(uint32 diff)
- {
- if (!instance->HavePlayers())
- return;
+ private:
+ uint64 _falricGUID;
+ uint64 _marwynGUID;
+ uint64 _jainaOrSylvanasPart1GUID;
+ uint64 _jainaOrSylvanasPart2GUID;
+ uint64 _lichkingPart1GUID;
+ uint64 _frostwornGeneralGUID;
+
+ uint64 _frostmourneGUID;
+ uint64 _entranceDoorGUID;
+ uint64 _frostwornDoorGUID;
+ uint64 _arthasDoorGUID;
+ uint64 _escapeDoorGUID;
+ uint64 _caveGUID;
+
+ uint32 _teamInInstance;
+ uint32 _waveCount;
+ uint32 _introEvent;
+ uint32 _frostwornGeneral;
+ uint32 _escapeevent;
+ uint32 _mobsaticewall;
- events.Update(diff);
+ EventMap events;
- switch (events.ExecuteEvent())
- {
- case EVENT_NEXT_WAVE:
- uiWaveCount++;
- AddWave();
- break;
- case EVENT_START_LICH_KING:
- /// @todo
- break;
- }
- }
+ std::set<uint64> waveGuidList[8];
};
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
+ {
+ return new instance_halls_of_reflection_InstanceMapScript(map);
+ }
};
void AddSC_instance_halls_of_reflection()
diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp
index 822adbb9201..4bb989bf2e4 100644
--- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp
@@ -86,7 +86,7 @@ enum Events
{
}
- void InitializeAI()
+ void InitializeAI() OVERRIDE
{
if (!instance || static_cast<InstanceMap*>(me->GetMap())->GetScriptId() != sObjectMgr->GetScriptId(PoSScriptName))
me->IsAIEnabled = false;
@@ -94,7 +94,7 @@ enum Events
Reset();
}
- void Reset()
+ void Reset() OVERRIDE
{
events.Reset();
events.SetPhase(PHASE_ONE);
@@ -104,7 +104,7 @@ enum Events
instance->SetBossState(DATA_GARFROST, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
DoCast(me, SPELL_PERMAFROST);
@@ -114,13 +114,13 @@ enum Events
instance->SetBossState(DATA_GARFROST, IN_PROGRESS);
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
if (victim->GetTypeId() == TYPEID_PLAYER)
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -130,7 +130,7 @@ enum Events
instance->SetBossState(DATA_GARFROST, DONE);
}
- void DamageTaken(Unit* /*attacker*/, uint32& /*uiDamage*/)
+ void DamageTaken(Unit* /*attacker*/, uint32& /*uiDamage*/) OVERRIDE
{
if (events.IsInPhase(PHASE_ONE) && !HealthAbovePct(66))
{
@@ -153,7 +153,7 @@ enum Events
}
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type != EFFECT_MOTION_TYPE || id != POINT_FORGE)
return;
@@ -172,7 +172,7 @@ enum Events
events.ScheduleEvent(EVENT_RESUME_ATTACK, 5000);
}
- void SpellHitTarget(Unit* target, const SpellInfo* spell)
+ void SpellHitTarget(Unit* target, const SpellInfo* spell) OVERRIDE
{
if (spell->Id == SPELL_PERMAFROST_HELPER)
{
@@ -181,12 +181,12 @@ enum Events
}
}
- uint32 GetData(uint32 /*type*/) const
+ uint32 GetData(uint32 /*type*/) const OVERRIDE
{
return _permafrostStack;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -232,7 +232,7 @@ enum Events
events.ScheduleEvent(EVENT_CHILLING_WAVE, 5000, 0, PHASE_TWO);
else if (events.IsInPhase(PHASE_THREE))
events.ScheduleEvent(EVENT_DEEP_FREEZE, 10000, 0, PHASE_THREE);
- AttackStart(me->getVictim());
+ AttackStart(me->GetVictim());
break;
default:
break;
@@ -246,7 +246,7 @@ enum Events
uint32 _permafrostStack;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_garfrostAI(creature);
}
@@ -261,7 +261,7 @@ class spell_garfrost_permafrost : public SpellScriptLoader
{
PrepareSpellScript(spell_garfrost_permafrost_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
prevented = false;
return true;
@@ -307,7 +307,7 @@ class spell_garfrost_permafrost : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
BeforeHit += SpellHitFn(spell_garfrost_permafrost_SpellScript::PreventHitByLoS);
AfterHit += SpellHitFn(spell_garfrost_permafrost_SpellScript::RestoreImmunity);
@@ -316,7 +316,7 @@ class spell_garfrost_permafrost : public SpellScriptLoader
bool prevented;
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_garfrost_permafrost_SpellScript();
}
@@ -327,7 +327,7 @@ class achievement_doesnt_go_to_eleven : public AchievementCriteriaScript
public:
achievement_doesnt_go_to_eleven() : AchievementCriteriaScript("achievement_doesnt_go_to_eleven") { }
- bool OnCheck(Player* /*source*/, Unit* target)
+ bool OnCheck(Player* /*source*/, Unit* target) OVERRIDE
{
if (target)
if (Creature* garfrost = target->ToCreature())
diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp
index 31a1e94357e..b738f0c9358 100644
--- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp
@@ -142,7 +142,7 @@ class boss_ick : public CreatureScript
ASSERT(_vehicle);
}
- void InitializeAI()
+ void InitializeAI() OVERRIDE
{
if (!instance || static_cast<InstanceMap*>(me->GetMap())->GetScriptId() != sObjectMgr->GetScriptId(PoSScriptName))
me->IsAIEnabled = false;
@@ -150,7 +150,7 @@ class boss_ick : public CreatureScript
Reset();
}
- void Reset()
+ void Reset() OVERRIDE
{
events.Reset();
instance->SetBossState(DATA_ICK, NOT_STARTED);
@@ -161,7 +161,7 @@ class boss_ick : public CreatureScript
return ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_KRICK));
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (Creature* krick = GetKrick())
krick->AI()->Talk(SAY_KRICK_AGGRO);
@@ -174,13 +174,13 @@ class boss_ick : public CreatureScript
instance->SetBossState(DATA_ICK, IN_PROGRESS);
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
me->GetMotionMaster()->Clear();
ScriptedAI::EnterEvadeMode();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (Creature* krick = GetKrick())
{
@@ -203,12 +203,12 @@ class boss_ick : public CreatureScript
me->AddThreat(target, _tempThreat);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
- if (!me->isInCombat())
+ if (!me->IsInCombat())
return;
- if (!me->getVictim() && me->getThreatManager().isThreatListEmpty())
+ if (!me->GetVictim() && me->getThreatManager().isThreatListEmpty())
{
EnterEvadeMode();
return;
@@ -279,7 +279,7 @@ class boss_ick : public CreatureScript
float _tempThreat;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_ickAI(creature);
}
@@ -296,7 +296,7 @@ class boss_krick : public CreatureScript
{
}
- void InitializeAI()
+ void InitializeAI() OVERRIDE
{
if (!_instanceScript || static_cast<InstanceMap*>(me->GetMap())->GetScriptId() != sObjectMgr->GetScriptId(PoSScriptName))
me->IsAIEnabled = false;
@@ -304,7 +304,7 @@ class boss_krick : public CreatureScript
Reset();
}
- void Reset()
+ void Reset() OVERRIDE
{
_events.Reset();
_phase = PHASE_COMBAT;
@@ -320,7 +320,7 @@ class boss_krick : public CreatureScript
return ObjectAccessor::GetCreature(*me, _instanceScript->GetData64(DATA_ICK));
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
if (victim->GetTypeId() != TYPEID_PLAYER)
return;
@@ -328,7 +328,7 @@ class boss_krick : public CreatureScript
Talk(SAY_KRICK_SLAY);
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
_summons.Summon(summon);
if (summon->GetEntry() == NPC_EXPLODING_ORB)
@@ -338,7 +338,7 @@ class boss_krick : public CreatureScript
}
}
- void DoAction(int32 actionId)
+ void DoAction(int32 actionId) OVERRIDE
{
if (actionId == ACTION_OUTRO)
{
@@ -354,7 +354,7 @@ class boss_krick : public CreatureScript
}
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type != POINT_MOTION_TYPE || id != POINT_KRICK_INTRO)
return;
@@ -365,7 +365,7 @@ class boss_krick : public CreatureScript
_events.ScheduleEvent(EVENT_OUTRO_1, 1000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (_phase != PHASE_OUTRO)
return;
@@ -507,7 +507,7 @@ class boss_krick : public CreatureScript
uint64 _tyrannusGUID;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_krickAI(creature);
}
@@ -530,19 +530,19 @@ class spell_krick_explosive_barrage : public SpellScriptLoader
{
Map::PlayerList const &players = caster->GetMap()->GetPlayers();
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
- if (Player* player = itr->getSource())
+ if (Player* player = itr->GetSource())
if (player->IsWithinDist(caster, 60.0f)) // don't know correct range
caster->CastSpell(player, SPELL_EXPLOSIVE_BARRAGE_SUMMON, true);
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_krick_explosive_barrage_AuraScript::HandlePeriodicTick, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_krick_explosive_barrage_AuraScript();
}
@@ -570,18 +570,18 @@ class spell_ick_explosive_barrage : public SpellScriptLoader
if (caster->GetTypeId() == TYPEID_UNIT)
{
caster->GetMotionMaster()->Clear();
- caster->GetMotionMaster()->MoveChase(caster->getVictim());
+ caster->GetMotionMaster()->MoveChase(caster->GetVictim());
}
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectApply += AuraEffectApplyFn(spell_ick_explosive_barrage_AuraScript::HandleEffectApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_ick_explosive_barrage_AuraScript::HandleEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_ick_explosive_barrage_AuraScript();
}
@@ -610,13 +610,13 @@ class spell_exploding_orb_hasty_grow : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectApply += AuraEffectApplyFn(spell_exploding_orb_hasty_grow_AuraScript::OnStackChange, EFFECT_0, SPELL_AURA_MOD_SCALE, AURA_EFFECT_HANDLE_REAPPLY);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_exploding_orb_hasty_grow_AuraScript();
}
@@ -647,7 +647,7 @@ class spell_krick_pursuit : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_krick_pursuit_SpellScript::HandleScriptEffect, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT);
}
@@ -664,18 +664,18 @@ class spell_krick_pursuit : public SpellScriptLoader
CAST_AI(boss_ick::boss_ickAI, creCaster->AI())->_ResetThreat(GetTarget());
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectRemove += AuraEffectRemoveFn(spell_krick_pursuit_AuraScript::HandleExtraEffect, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_krick_pursuit_SpellScript();
}
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_krick_pursuit_AuraScript();
}
@@ -702,14 +702,14 @@ class spell_krick_pursuit_confusion : public SpellScriptLoader
GetTarget()->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_ATTACK_ME, false);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectApply += AuraEffectApplyFn(spell_krick_pursuit_confusion_AuraScript::OnApply, EFFECT_2, SPELL_AURA_LINKED, AURA_EFFECT_HANDLE_REAL);
OnEffectRemove += AuraEffectRemoveFn(spell_krick_pursuit_confusion_AuraScript::OnRemove, EFFECT_2, SPELL_AURA_LINKED, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_krick_pursuit_confusion_AuraScript();
}
diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp
index c335c90cc30..003b313d28c 100644
--- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp
@@ -134,7 +134,7 @@ class boss_tyrannus : public CreatureScript
{
}
- void InitializeAI()
+ void InitializeAI() OVERRIDE
{
if (instance->GetBossState(DATA_TYRANNUS) != DONE)
Reset();
@@ -142,7 +142,7 @@ class boss_tyrannus : public CreatureScript
me->DespawnOrUnsummon();
}
- void Reset()
+ void Reset() OVERRIDE
{
events.Reset();
events.SetPhase(PHASE_NONE);
@@ -156,12 +156,12 @@ class boss_tyrannus : public CreatureScript
return ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_RIMEFANG));
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
}
- void AttackStart(Unit* victim)
+ void AttackStart(Unit* victim) OVERRIDE
{
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
return;
@@ -170,7 +170,7 @@ class boss_tyrannus : public CreatureScript
me->GetMotionMaster()->MoveChase(victim);
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
instance->SetBossState(DATA_TYRANNUS, FAIL);
if (Creature* rimefang = GetRimefang())
@@ -179,13 +179,13 @@ class boss_tyrannus : public CreatureScript
me->DespawnOrUnsummon();
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
if (victim->GetTypeId() == TYPEID_PLAYER)
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
instance->SetBossState(DATA_TYRANNUS, DONE);
@@ -199,7 +199,7 @@ class boss_tyrannus : public CreatureScript
rimefang->AI()->DoAction(ACTION_END_COMBAT);
}
- void DoAction(int32 actionId)
+ void DoAction(int32 actionId) OVERRIDE
{
if (actionId == ACTION_START_INTRO)
{
@@ -213,7 +213,7 @@ class boss_tyrannus : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim() && !events.IsInPhase(PHASE_INTRO))
return;
@@ -277,7 +277,7 @@ class boss_tyrannus : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetPitOfSaronAI<boss_tyrannusAI>(creature);
}
@@ -295,7 +295,7 @@ class boss_rimefang : public CreatureScript
ASSERT(_vehicle);
}
- void Reset()
+ void Reset() OVERRIDE
{
_events.Reset();
_events.SetPhase(PHASE_NONE);
@@ -306,12 +306,12 @@ class boss_rimefang : public CreatureScript
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
_vehicle->InstallAllAccessories(false);
}
- void DoAction(int32 actionId)
+ void DoAction(int32 actionId) OVERRIDE
{
if (actionId == ACTION_START_RIMEFANG)
{
@@ -324,7 +324,7 @@ class boss_rimefang : public CreatureScript
_EnterEvadeMode();
}
- void SetGUID(uint64 guid, int32 type)
+ void SetGUID(uint64 guid, int32 type) OVERRIDE
{
if (type == GUID_HOARFROST)
{
@@ -333,7 +333,7 @@ class boss_rimefang : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim() && !_events.IsInPhase(PHASE_COMBAT))
return;
@@ -376,7 +376,7 @@ class boss_rimefang : public CreatureScript
uint8 _currentWaypoint;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_rimefangAI(creature);
}
@@ -389,25 +389,25 @@ class player_overlord_brandAI : public PlayerAI
{
}
- void SetGUID(uint64 guid, int32 /*type*/)
+ void SetGUID(uint64 guid, int32 /*type*/) OVERRIDE
{
_tyrannus = guid;
}
- void DamageDealt(Unit* /*victim*/, uint32& damage, DamageEffectType /*damageType*/)
+ void DamageDealt(Unit* /*victim*/, uint32& damage, DamageEffectType /*damageType*/) OVERRIDE
{
if (Creature* tyrannus = ObjectAccessor::GetCreature(*me, _tyrannus))
- if (tyrannus->getVictim())
- me->CastCustomSpell(SPELL_OVERLORD_BRAND_DAMAGE, SPELLVALUE_BASE_POINT0, damage, tyrannus->getVictim(), true, NULL, NULL, tyrannus->GetGUID());
+ if (tyrannus->GetVictim())
+ me->CastCustomSpell(SPELL_OVERLORD_BRAND_DAMAGE, SPELLVALUE_BASE_POINT0, damage, tyrannus->GetVictim(), true, NULL, NULL, tyrannus->GetGUID());
}
- void HealDone(Unit* /*target*/, uint32& addHealth)
+ void HealDone(Unit* /*target*/, uint32& addHealth) OVERRIDE
{
if (Creature* tyrannus = ObjectAccessor::GetCreature(*me, _tyrannus))
me->CastCustomSpell(SPELL_OVERLORD_BRAND_HEAL, SPELLVALUE_BASE_POINT0, int32(addHealth*5.5f), tyrannus, true, NULL, NULL, tyrannus->GetGUID());
}
- void UpdateAI(uint32 /*diff*/) { }
+ void UpdateAI(uint32 /*diff*/) OVERRIDE {}
private:
uint64 _tyrannus;
@@ -422,7 +422,7 @@ class spell_tyrannus_overlord_brand : public SpellScriptLoader
{
PrepareAuraScript(spell_tyrannus_overlord_brand_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster() && GetCaster()->GetEntry() == NPC_TYRANNUS;
}
@@ -449,7 +449,7 @@ class spell_tyrannus_overlord_brand : public SpellScriptLoader
delete thisAI;
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectApply += AuraEffectApplyFn(spell_tyrannus_overlord_brand_AuraScript::OnApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_tyrannus_overlord_brand_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
@@ -459,7 +459,7 @@ class spell_tyrannus_overlord_brand : public SpellScriptLoader
bool oldAIState;
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_tyrannus_overlord_brand_AuraScript();
}
@@ -485,13 +485,13 @@ class spell_tyrannus_mark_of_rimefang : public SpellScriptLoader
rimefang->AI()->SetGUID(GetTarget()->GetGUID(), GUID_HOARFROST);
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectApply += AuraEffectApplyFn(spell_tyrannus_mark_of_rimefang_AuraScript::OnApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_tyrannus_mark_of_rimefang_AuraScript();
}
@@ -502,10 +502,10 @@ class at_tyrannus_event_starter : public AreaTriggerScript
public:
at_tyrannus_event_starter() : AreaTriggerScript("at_tyrannus_event_starter") { }
- bool OnTrigger(Player* player, const AreaTriggerEntry* /*at*/)
+ bool OnTrigger(Player* player, const AreaTriggerEntry* /*at*/) OVERRIDE
{
InstanceScript* instance = player->GetInstanceScript();
- if (player->isGameMaster() || !instance)
+ if (player->IsGameMaster() || !instance)
return false;
if (instance->GetBossState(DATA_TYRANNUS) != IN_PROGRESS && instance->GetBossState(DATA_TYRANNUS) != DONE)
diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/instance_pit_of_saron.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/instance_pit_of_saron.cpp
index fa2805bdb4c..5efc2e6afaf 100644
--- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/instance_pit_of_saron.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/instance_pit_of_saron.cpp
@@ -65,7 +65,7 @@ class instance_pit_of_saron : public InstanceMapScript
{
Map::PlayerList const &players = instance->GetPlayers();
if (!players.isEmpty())
- if (Player* player = players.begin()->getSource())
+ if (Player* player = players.begin()->GetSource())
_teamInInstance = player->GetTeam();
}
@@ -224,7 +224,7 @@ class instance_pit_of_saron : public InstanceMapScript
return true;
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -237,7 +237,7 @@ class instance_pit_of_saron : public InstanceMapScript
return 0;
}
- uint64 GetData64(uint32 type) const
+ uint64 GetData64(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -322,7 +322,7 @@ class instance_pit_of_saron : public InstanceMapScript
uint32 _teamInInstance;
};
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_pit_of_saron_InstanceScript(map);
}
diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp
index 42d912e2bd2..82dfcb716b6 100644
--- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp
@@ -22,7 +22,7 @@
#include "pit_of_saron.h"
#include "Vehicle.h"
-enum eSpells
+enum Spells
{
SPELL_FIREBALL = 69583, //Ymirjar Flamebearer
SPELL_HELLFIRE = 69586,
@@ -31,36 +31,36 @@ enum eSpells
SPELL_LEAPING_FACE_MAUL = 69504, // Geist Ambusher
};
-enum eEvents
+enum Events
{
// Ymirjar Flamebearer
EVENT_FIREBALL = 1,
EVENT_TACTICAL_BLINK = 2,
};
-class mob_ymirjar_flamebearer : public CreatureScript
+class npc_ymirjar_flamebearer : public CreatureScript
{
public:
- mob_ymirjar_flamebearer() : CreatureScript("mob_ymirjar_flamebearer") { }
+ npc_ymirjar_flamebearer() : CreatureScript("npc_ymirjar_flamebearer") { }
- struct mob_ymirjar_flamebearerAI: public ScriptedAI
+ struct npc_ymirjar_flamebearerAI: public ScriptedAI
{
- mob_ymirjar_flamebearerAI(Creature* creature) : ScriptedAI(creature)
+ npc_ymirjar_flamebearerAI(Creature* creature) : ScriptedAI(creature)
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_events.Reset();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_events.ScheduleEvent(EVENT_FIREBALL, 4000);
_events.ScheduleEvent(EVENT_TACTICAL_BLINK, 15000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -97,35 +97,35 @@ class mob_ymirjar_flamebearer : public CreatureScript
EventMap _events;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_ymirjar_flamebearerAI(creature);
+ return new npc_ymirjar_flamebearerAI(creature);
}
};
-class mob_iceborn_protodrake : public CreatureScript
+class npc_iceborn_protodrake : public CreatureScript
{
public:
- mob_iceborn_protodrake() : CreatureScript("mob_iceborn_protodrake") { }
+ npc_iceborn_protodrake() : CreatureScript("npc_iceborn_protodrake") { }
- struct mob_iceborn_protodrakeAI: public ScriptedAI
+ struct npc_iceborn_protodrakeAI: public ScriptedAI
{
- mob_iceborn_protodrakeAI(Creature* creature) : ScriptedAI(creature), _vehicle(creature->GetVehicleKit())
+ npc_iceborn_protodrakeAI(Creature* creature) : ScriptedAI(creature), _vehicle(creature->GetVehicleKit())
{
ASSERT(_vehicle);
}
- void Reset()
+ void Reset() OVERRIDE
{
_frostBreathCooldown = 5000;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_vehicle->RemoveAllPassengers();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -146,29 +146,29 @@ class mob_iceborn_protodrake : public CreatureScript
uint32 _frostBreathCooldown;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_iceborn_protodrakeAI(creature);
+ return new npc_iceborn_protodrakeAI(creature);
}
};
-class mob_geist_ambusher : public CreatureScript
+class npc_geist_ambusher : public CreatureScript
{
public:
- mob_geist_ambusher() : CreatureScript("mob_geist_ambusher") { }
+ npc_geist_ambusher() : CreatureScript("npc_geist_ambusher") { }
- struct mob_geist_ambusherAI: public ScriptedAI
+ struct npc_geist_ambusherAI: public ScriptedAI
{
- mob_geist_ambusherAI(Creature* creature) : ScriptedAI(creature)
+ npc_geist_ambusherAI(Creature* creature) : ScriptedAI(creature)
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_leapingFaceMaulCooldown = 9000;
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (who->GetTypeId() != TYPEID_PLAYER)
return;
@@ -178,7 +178,7 @@ class mob_geist_ambusher : public CreatureScript
DoCast(who, SPELL_LEAPING_FACE_MAUL);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -199,20 +199,20 @@ class mob_geist_ambusher : public CreatureScript
uint32 _leapingFaceMaulCooldown;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_geist_ambusherAI(creature);
+ return new npc_geist_ambusherAI(creature);
}
};
-class spell_trash_mob_glacial_strike : public SpellScriptLoader
+class spell_trash_npc_glacial_strike : public SpellScriptLoader
{
public:
- spell_trash_mob_glacial_strike() : SpellScriptLoader("spell_trash_mob_glacial_strike") { }
+ spell_trash_npc_glacial_strike() : SpellScriptLoader("spell_trash_npc_glacial_strike") { }
- class spell_trash_mob_glacial_strike_AuraScript : public AuraScript
+ class spell_trash_npc_glacial_strike_AuraScript : public AuraScript
{
- PrepareAuraScript(spell_trash_mob_glacial_strike_AuraScript);
+ PrepareAuraScript(spell_trash_npc_glacial_strike_AuraScript);
void PeriodicTick(AuraEffect const* /*aurEff*/)
{
@@ -223,22 +223,22 @@ class spell_trash_mob_glacial_strike : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
- OnEffectPeriodic += AuraEffectPeriodicFn(spell_trash_mob_glacial_strike_AuraScript::PeriodicTick, EFFECT_2, SPELL_AURA_PERIODIC_DAMAGE_PERCENT);
+ OnEffectPeriodic += AuraEffectPeriodicFn(spell_trash_npc_glacial_strike_AuraScript::PeriodicTick, EFFECT_2, SPELL_AURA_PERIODIC_DAMAGE_PERCENT);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
- return new spell_trash_mob_glacial_strike_AuraScript();
+ return new spell_trash_npc_glacial_strike_AuraScript();
}
};
void AddSC_pit_of_saron()
{
- new mob_ymirjar_flamebearer();
- new mob_iceborn_protodrake();
- new mob_geist_ambusher();
- new spell_trash_mob_glacial_strike();
+ new npc_ymirjar_flamebearer();
+ new npc_iceborn_protodrake();
+ new npc_geist_ambusher();
+ new spell_trash_npc_glacial_strike();
}
diff --git a/src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp b/src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp
index 1ec29224763..93030492caf 100644
--- a/src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp
+++ b/src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp
@@ -86,13 +86,13 @@ class boss_drakkari_colossus : public CreatureScript
introDone = false;
}
- void InitializeAI()
+ void InitializeAI() OVERRIDE
{
if (!me->isDead())
Reset();
}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
@@ -113,7 +113,7 @@ class boss_drakkari_colossus : public CreatureScript
instance->SetData(DATA_DRAKKARI_COLOSSUS_EVENT, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
@@ -124,7 +124,7 @@ class boss_drakkari_colossus : public CreatureScript
instance->SetData(DATA_DRAKKARI_COLOSSUS_EVENT, IN_PROGRESS);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
@@ -133,14 +133,14 @@ class boss_drakkari_colossus : public CreatureScript
instance->SetData(DATA_DRAKKARI_COLOSSUS_EVENT, DONE);
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
// Note: This should not be called, but before use SetBossState function we should use BossAI
// in all the bosses of the instance
instance->SetData(DATA_DRAKKARI_COLOSSUS_EVENT, FAIL);
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -166,14 +166,14 @@ class boss_drakkari_colossus : public CreatureScript
me->SetInCombatWithZone();
- if (me->getVictim())
- me->GetMotionMaster()->MoveChase(me->getVictim(), 0, 0);
+ if (me->GetVictim())
+ me->GetMotionMaster()->MoveChase(me->GetVictim(), 0, 0);
break;
}
}
- void DamageTaken(Unit* /*attacker*/, uint32& damage)
+ void DamageTaken(Unit* /*attacker*/, uint32& damage) OVERRIDE
{
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC))
damage = 0;
@@ -192,7 +192,7 @@ class boss_drakkari_colossus : public CreatureScript
}
}
- uint32 GetData(uint32 data) const
+ uint32 GetData(uint32 data) const OVERRIDE
{
if (data == DATA_COLOSSUS_PHASE)
return phase;
@@ -202,13 +202,13 @@ class boss_drakkari_colossus : public CreatureScript
return 0;
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
if (type == DATA_INTRO_DONE)
introDone = data;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -223,7 +223,7 @@ class boss_drakkari_colossus : public CreatureScript
switch (eventId)
{
case EVENT_MIGHTY_BLOW:
- DoCast(me->getVictim(), SPELL_MIGHTY_BLOW);
+ DoCastVictim(SPELL_MIGHTY_BLOW);
events.ScheduleEvent(EVENT_MIGHTY_BLOW, urand(5000, 15000));
break;
}
@@ -233,7 +233,7 @@ class boss_drakkari_colossus : public CreatureScript
DoMeleeAttackIfReady();
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
summon->SetInCombatWithZone();
@@ -246,7 +246,7 @@ class boss_drakkari_colossus : public CreatureScript
bool introDone;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_drakkari_colossusAI(creature);
}
@@ -265,7 +265,7 @@ class boss_drakkari_elemental : public CreatureScript
instance = creature->GetInstanceScript();
}
- void Reset()
+ void Reset() OVERRIDE
{
events.Reset();
events.ScheduleEvent(EVENT_SURGE, urand(5000, 15000));
@@ -273,7 +273,7 @@ class boss_drakkari_elemental : public CreatureScript
me->AddAura(SPELL_MOJO_VOLLEY, me);
}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
if (killer == me)
return;
@@ -285,7 +285,7 @@ class boss_drakkari_elemental : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -311,7 +311,7 @@ class boss_drakkari_elemental : public CreatureScript
DoMeleeAttackIfReady();
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -327,7 +327,7 @@ class boss_drakkari_elemental : public CreatureScript
}
}
- void DamageTaken(Unit* /*attacker*/, uint32& damage)
+ void DamageTaken(Unit* /*attacker*/, uint32& damage) OVERRIDE
{
if (HealthBelowPct(50) && instance)
{
@@ -357,12 +357,12 @@ class boss_drakkari_elemental : public CreatureScript
}
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
me->DespawnOrUnsummon();
}
- void SpellHitTarget(Unit* target, SpellInfo const* spell)
+ void SpellHitTarget(Unit* target, SpellInfo const* spell) OVERRIDE
{
if (spell->Id == SPELL_MERGE)
{
@@ -379,7 +379,7 @@ class boss_drakkari_elemental : public CreatureScript
InstanceScript* instance;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_drakkari_elementalAI(creature);
}
@@ -390,9 +390,9 @@ class npc_living_mojo : public CreatureScript
public:
npc_living_mojo() : CreatureScript("npc_living_mojo") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_living_mojoAI (creature);
+ return new npc_living_mojoAI(creature);
}
struct npc_living_mojoAI : public ScriptedAI
@@ -402,7 +402,7 @@ public:
instance = creature->GetInstanceScript();
}
- void Reset()
+ void Reset() OVERRIDE
{
mojoWaveTimer = 2*IN_MILLISECONDS;
mojoPuddleTimer = 7*IN_MILLISECONDS;
@@ -422,7 +422,7 @@ public:
}
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type != POINT_MOTION_TYPE)
return;
@@ -440,7 +440,7 @@ public:
}
}
- void AttackStart(Unit* attacker)
+ void AttackStart(Unit* attacker) OVERRIDE
{
if (me->GetMotionMaster()->GetCurrentMovementGeneratorType() == POINT_MOTION_TYPE)
return;
@@ -466,7 +466,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -474,13 +474,13 @@ public:
if (mojoWaveTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_MOJO_WAVE);
+ DoCastVictim(SPELL_MOJO_WAVE);
mojoWaveTimer = 15*IN_MILLISECONDS;
} else mojoWaveTimer -= diff;
if (mojoPuddleTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_MOJO_PUDDLE);
+ DoCastVictim(SPELL_MOJO_PUDDLE);
mojoPuddleTimer = 18*IN_MILLISECONDS;
} else mojoPuddleTimer -= diff;
diff --git a/src/server/scripts/Northrend/Gundrak/boss_eck.cpp b/src/server/scripts/Northrend/Gundrak/boss_eck.cpp
index df949c7a962..c11db7146d1 100644
--- a/src/server/scripts/Northrend/Gundrak/boss_eck.cpp
+++ b/src/server/scripts/Northrend/Gundrak/boss_eck.cpp
@@ -35,9 +35,9 @@ class boss_eck : public CreatureScript
public:
boss_eck() : CreatureScript("boss_eck") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_eckAI (creature);
+ return new boss_eckAI(creature);
}
struct boss_eckAI : public ScriptedAI
@@ -56,7 +56,7 @@ public:
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
uiBerserkTimer = urand(60*IN_MILLISECONDS, 90*IN_MILLISECONDS); //60-90 secs according to wowwiki
uiBiteTimer = 5*IN_MILLISECONDS;
@@ -69,13 +69,13 @@ public:
instance->SetData(DATA_ECK_THE_FEROCIOUS_EVENT, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (instance)
instance->SetData(DATA_ECK_THE_FEROCIOUS_EVENT, IN_PROGRESS);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -83,13 +83,13 @@ public:
if (uiBiteTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_ECK_BITE);
+ DoCastVictim(SPELL_ECK_BITE);
uiBiteTimer = urand(8*IN_MILLISECONDS, 12*IN_MILLISECONDS);
} else uiBiteTimer -= diff;
if (uiSpitTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_ECK_SPIT);
+ DoCastVictim(SPELL_ECK_SPIT);
uiSpitTimer = urand(6*IN_MILLISECONDS, 14*IN_MILLISECONDS);
} else uiSpitTimer -= diff;
@@ -125,7 +125,7 @@ public:
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
instance->SetData(DATA_ECK_THE_FEROCIOUS_EVENT, DONE);
@@ -139,9 +139,9 @@ class npc_ruins_dweller : public CreatureScript
public:
npc_ruins_dweller() : CreatureScript("npc_ruins_dweller") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_ruins_dwellerAI (creature);
+ return new npc_ruins_dwellerAI(creature);
}
struct npc_ruins_dwellerAI : public ScriptedAI
@@ -153,7 +153,7 @@ public:
InstanceScript* instance;
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
{
diff --git a/src/server/scripts/Northrend/Gundrak/boss_gal_darah.cpp b/src/server/scripts/Northrend/Gundrak/boss_gal_darah.cpp
index e4cdf89c165..7a5520ab145 100644
--- a/src/server/scripts/Northrend/Gundrak/boss_gal_darah.cpp
+++ b/src/server/scripts/Northrend/Gundrak/boss_gal_darah.cpp
@@ -58,16 +58,19 @@ enum CombatPhase
RHINO
};
-#define DATA_SHARE_THE_LOVE 1
+enum Misc
+{
+ DATA_SHARE_THE_LOVE = 1
+};
class boss_gal_darah : public CreatureScript
{
public:
boss_gal_darah() : CreatureScript("boss_gal_darah") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_gal_darahAI (creature);
+ return new boss_gal_darahAI(creature);
}
struct boss_gal_darahAI : public ScriptedAI
@@ -95,7 +98,7 @@ public:
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
uiStampedeTimer = 10*IN_MILLISECONDS;
uiWhirlingSlashTimer = 21*IN_MILLISECONDS;
@@ -119,7 +122,7 @@ public:
instance->SetData(DATA_GAL_DARAH_EVENT, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
@@ -127,7 +130,7 @@ public:
instance->SetData(DATA_GAL_DARAH_EVENT, IN_PROGRESS);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -171,7 +174,7 @@ public:
if (uiWhirlingSlashTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_WHIRLING_SLASH);
+ DoCastVictim(SPELL_WHIRLING_SLASH);
uiWhirlingSlashTimer = 21*IN_MILLISECONDS;
++uiPhaseCounter;
} else uiWhirlingSlashTimer -= diff;
@@ -207,19 +210,19 @@ public:
{
if (uiPunctureTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_PUNCTURE);
+ DoCastVictim(SPELL_PUNCTURE);
uiPunctureTimer = 8*IN_MILLISECONDS;
} else uiPunctureTimer -= diff;
if (uiEnrageTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_ENRAGE);
+ DoCastVictim(SPELL_ENRAGE);
uiEnrageTimer = 20*IN_MILLISECONDS;
} else uiEnrageTimer -= diff;
if (uiStompTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_STOMP);
+ DoCastVictim(SPELL_STOMP);
uiStompTimer = 20*IN_MILLISECONDS;
} else uiStompTimer -= diff;
@@ -254,7 +257,7 @@ public:
impaledList.push_back(guid);
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
if (type == DATA_SHARE_THE_LOVE)
return shareTheLove;
@@ -262,7 +265,7 @@ public:
return 0;
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -270,9 +273,9 @@ public:
instance->SetData(DATA_GAL_DARAH_EVENT, DONE);
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
- if (victim == me)
+ if (victim->GetTypeId() != TYPEID_PLAYER)
return;
Talk(SAY_SLAY);
@@ -288,7 +291,7 @@ class achievement_share_the_love : public AchievementCriteriaScript
{
}
- bool OnCheck(Player* /*player*/, Unit* target)
+ bool OnCheck(Player* /*player*/, Unit* target) OVERRIDE
{
if (!target)
return false;
diff --git a/src/server/scripts/Northrend/Gundrak/boss_moorabi.cpp b/src/server/scripts/Northrend/Gundrak/boss_moorabi.cpp
index 97c75b5f391..0ccaea316ef 100644
--- a/src/server/scripts/Northrend/Gundrak/boss_moorabi.cpp
+++ b/src/server/scripts/Northrend/Gundrak/boss_moorabi.cpp
@@ -19,7 +19,7 @@
#include "ScriptedCreature.h"
#include "gundrak.h"
-enum eSpells
+enum Spells
{
SPELL_DETERMINED_STAB = 55104,
SPELL_GROUND_TREMOR = 55142,
@@ -32,7 +32,7 @@ enum eSpells
SPELL_TRANSFORMATION = 55098, //Periodic, The caster transforms into a powerful mammoth, increasing Physical damage done by 25% and granting immunity to Stun effects.
};
-enum eSays
+enum Says
{
SAY_AGGRO = 0,
SAY_SLAY = 1,
@@ -42,14 +42,17 @@ enum eSays
EMOTE_TRANSFORM = 5
};
-#define DATA_LESS_RABI 1
+enum Misc
+{
+ DATA_LESS_RABI = 1
+};
class boss_moorabi : public CreatureScript
{
public:
boss_moorabi() : CreatureScript("boss_moorabi") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_moorabiAI(creature);
}
@@ -70,7 +73,7 @@ public:
uint32 uiDeterminedStabTimer;
uint32 uiTransformationTImer;
- void Reset()
+ void Reset() OVERRIDE
{
uiGroundTremorTimer = 18*IN_MILLISECONDS;
uiNumblingShoutTimer = 10*IN_MILLISECONDS;
@@ -82,7 +85,7 @@ public:
instance->SetData(DATA_MOORABI_EVENT, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
DoCast(me, SPELL_MOJO_FRENZY, true);
@@ -91,7 +94,7 @@ public:
instance->SetData(DATA_MOORABI_EVENT, IN_PROGRESS);
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -107,27 +110,27 @@ public:
{
Talk(SAY_QUAKE);
if (bPhase)
- DoCast(me->getVictim(), SPELL_QUAKE, true);
+ DoCastVictim(SPELL_QUAKE, true);
else
- DoCast(me->getVictim(), SPELL_GROUND_TREMOR, true);
+ DoCastVictim(SPELL_GROUND_TREMOR, true);
uiGroundTremorTimer = 10*IN_MILLISECONDS;
} else uiGroundTremorTimer -= uiDiff;
if (uiNumblingShoutTimer <= uiDiff)
{
if (bPhase)
- DoCast(me->getVictim(), SPELL_NUMBING_ROAR, true);
+ DoCastVictim(SPELL_NUMBING_ROAR, true);
else
- DoCast(me->getVictim(), SPELL_NUMBING_SHOUT, true);
+ DoCastVictim(SPELL_NUMBING_SHOUT, true);
uiNumblingShoutTimer = 10*IN_MILLISECONDS;
} else uiNumblingShoutTimer -=uiDiff;
if (uiDeterminedStabTimer <= uiDiff)
{
if (bPhase)
- DoCast(me->getVictim(), SPELL_DETERMINED_GORE);
+ DoCastVictim(SPELL_DETERMINED_GORE);
else
- DoCast(me->getVictim(), SPELL_DETERMINED_STAB, true);
+ DoCastVictim(SPELL_DETERMINED_STAB, true);
uiDeterminedStabTimer = 8*IN_MILLISECONDS;
} else uiDeterminedStabTimer -=uiDiff;
@@ -142,7 +145,7 @@ public:
DoMeleeAttackIfReady();
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
if (type == DATA_LESS_RABI)
return bPhase ? 0 : 1;
@@ -150,7 +153,7 @@ public:
return 0;
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -158,9 +161,9 @@ public:
instance->SetData(DATA_MOORABI_EVENT, DONE);
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
- if (victim == me)
+ if (victim->GetTypeId() != TYPEID_PLAYER)
return;
Talk(SAY_SLAY);
@@ -176,7 +179,7 @@ class achievement_less_rabi : public AchievementCriteriaScript
{
}
- bool OnCheck(Player* /*player*/, Unit* target)
+ bool OnCheck(Player* /*player*/, Unit* target) OVERRIDE
{
if (!target)
return false;
diff --git a/src/server/scripts/Northrend/Gundrak/boss_slad_ran.cpp b/src/server/scripts/Northrend/Gundrak/boss_slad_ran.cpp
index 6deb0c20676..afd0e8a4342 100644
--- a/src/server/scripts/Northrend/Gundrak/boss_slad_ran.cpp
+++ b/src/server/scripts/Northrend/Gundrak/boss_slad_ran.cpp
@@ -21,7 +21,6 @@
#include "gundrak.h"
#include "Player.h"
-//Spells
enum Spells
{
SPELL_POISON_NOVA = 55081,
@@ -32,7 +31,6 @@ enum Spells
H_SPELL_VENOM_BOLT = 59839
};
-//Yell
enum Yells
{
SAY_AGGRO = 0,
@@ -43,14 +41,12 @@ enum Yells
EMOTE_NOVA = 5
};
-//Creatures
enum Creatures
{
CREATURE_SNAKE = 29680,
CREATURE_CONSTRICTORS = 29713
};
-//Creatures' spells
enum ConstrictorSpells
{
SPELL_GRIP_OF_SLAD_RAN = 55093,
@@ -68,16 +64,19 @@ static Position SpawnLoc[]=
{1716.76f, 635.159f, 129.282f, 0.191986f}
};
-#define DATA_SNAKES_WHYD_IT_HAVE_TO_BE_SNAKES 1
+enum Misc
+{
+ DATA_SNAKES_WHYD_IT_HAVE_TO_BE_SNAKES = 1
+};
class boss_slad_ran : public CreatureScript
{
public:
boss_slad_ran() : CreatureScript("boss_slad_ran") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_slad_ranAI (creature);
+ return new boss_slad_ranAI(creature);
}
struct boss_slad_ranAI : public ScriptedAI
@@ -99,7 +98,7 @@ public:
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
uiPoisonNovaTimer = 10*IN_MILLISECONDS;
uiPowerfullBiteTimer = 3*IN_MILLISECONDS;
@@ -114,7 +113,7 @@ public:
instance->SetData(DATA_SLAD_RAN_EVENT, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
@@ -122,7 +121,7 @@ public:
instance->SetData(DATA_SLAD_RAN_EVENT, IN_PROGRESS);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -130,20 +129,20 @@ public:
if (uiPoisonNovaTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_POISON_NOVA);
+ DoCastVictim(SPELL_POISON_NOVA);
Talk(EMOTE_NOVA);
uiPoisonNovaTimer = 15*IN_MILLISECONDS;
} else uiPoisonNovaTimer -= diff;
if (uiPowerfullBiteTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_POWERFULL_BITE);
+ DoCastVictim(SPELL_POWERFULL_BITE);
uiPowerfullBiteTimer = 10*IN_MILLISECONDS;
} else uiPowerfullBiteTimer -= diff;
if (uiVenomBoltTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_VENOM_BOLT);
+ DoCastVictim(SPELL_VENOM_BOLT);
uiVenomBoltTimer = 10*IN_MILLISECONDS;
} else uiVenomBoltTimer -= diff;
@@ -176,7 +175,7 @@ public:
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
lSummons.DespawnAll();
@@ -185,18 +184,18 @@ public:
instance->SetData(DATA_SLAD_RAN_EVENT, DONE);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
summoned->GetMotionMaster()->MovePoint(0, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ());
lSummons.Summon(summoned);
}
- void SetGUID(uint64 guid, int32 type)
+ void SetGUID(uint64 guid, int32 type) OVERRIDE
{
if (type == DATA_SNAKES_WHYD_IT_HAVE_TO_BE_SNAKES)
lWrappedPlayers.insert(guid);
@@ -210,35 +209,35 @@ public:
};
-class mob_slad_ran_constrictor : public CreatureScript
+class npc_slad_ran_constrictor : public CreatureScript
{
public:
- mob_slad_ran_constrictor() : CreatureScript("mob_slad_ran_constrictor") { }
+ npc_slad_ran_constrictor() : CreatureScript("npc_slad_ran_constrictor") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_slad_ran_constrictorAI (creature);
+ return new npc_slad_ran_constrictorAI(creature);
}
- struct mob_slad_ran_constrictorAI : public ScriptedAI
+ struct npc_slad_ran_constrictorAI : public ScriptedAI
{
- mob_slad_ran_constrictorAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_slad_ran_constrictorAI(Creature* creature) : ScriptedAI(creature) {}
uint32 uiGripOfSladRanTimer;
- void Reset()
+ void Reset() OVERRIDE
{
uiGripOfSladRanTimer = 1*IN_MILLISECONDS;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
if (uiGripOfSladRanTimer <= diff)
{
- Unit* target = me->getVictim();
+ Unit* target = me->GetVictim();
DoCast(target, SPELL_GRIP_OF_SLAD_RAN);
uiGripOfSladRanTimer = urand(3, 6)*IN_MILLISECONDS;
@@ -263,37 +262,37 @@ public:
};
-class mob_slad_ran_viper : public CreatureScript
+class npc_slad_ran_viper : public CreatureScript
{
public:
- mob_slad_ran_viper() : CreatureScript("mob_slad_ran_viper") { }
+ npc_slad_ran_viper() : CreatureScript("npc_slad_ran_viper") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_slad_ran_viperAI (creature);
+ return new npc_slad_ran_viperAI(creature);
}
- struct mob_slad_ran_viperAI : public ScriptedAI
+ struct npc_slad_ran_viperAI : public ScriptedAI
{
- mob_slad_ran_viperAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_slad_ran_viperAI(Creature* creature) : ScriptedAI(creature) {}
uint32 uiVenomousBiteTimer;
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
uiVenomousBiteTimer = 2*IN_MILLISECONDS;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
if (uiVenomousBiteTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_VENOMOUS_BITE);
+ DoCastVictim(SPELL_VENOMOUS_BITE);
uiVenomousBiteTimer = 10*IN_MILLISECONDS;
} else uiVenomousBiteTimer -= diff;
}
@@ -308,7 +307,7 @@ class achievement_snakes_whyd_it_have_to_be_snakes : public AchievementCriteriaS
{
}
- bool OnCheck(Player* player, Unit* target)
+ bool OnCheck(Player* player, Unit* target) OVERRIDE
{
if (!target)
return false;
@@ -322,7 +321,7 @@ class achievement_snakes_whyd_it_have_to_be_snakes : public AchievementCriteriaS
void AddSC_boss_slad_ran()
{
new boss_slad_ran();
- new mob_slad_ran_constrictor();
- new mob_slad_ran_viper();
+ new npc_slad_ran_constrictor();
+ new npc_slad_ran_viper();
new achievement_snakes_whyd_it_have_to_be_snakes();
}
diff --git a/src/server/scripts/Northrend/Gundrak/gundrak.h b/src/server/scripts/Northrend/Gundrak/gundrak.h
index 0c65b4d16de..f47b71cd48e 100644
--- a/src/server/scripts/Northrend/Gundrak/gundrak.h
+++ b/src/server/scripts/Northrend/Gundrak/gundrak.h
@@ -43,12 +43,31 @@ enum Data64
enum mainCreatures
{
- CREATURE_RUIN_DWELLER = 29920,
- CREATURE_SLAD_RAN = 29304,
- CREATURE_MOORABI = 29305,
- CREATURE_GALDARAH = 29306,
- CREATURE_DRAKKARICOLOSSUS = 29307,
- CREATURE_ECK = 29932
+ CREATURE_RUIN_DWELLER = 29920,
+ CREATURE_SLAD_RAN = 29304,
+ CREATURE_MOORABI = 29305,
+ CREATURE_GALDARAH = 29306,
+ CREATURE_DRAKKARICOLOSSUS = 29307,
+ CREATURE_ECK = 29932
+};
+
+enum Gameobjects
+{
+
+ GO_SLADRAN_ALTAR = 192518,
+ GO_MOORABI_ALTAR = 192519,
+ GO_DRAKKARI_COLOSSUS_ALTAR = 192520,
+ GO_SLADRAN_STATUE = 192564,
+ GO_MOORABI_STATUE = 192565,
+ GO_GALDARAH_STATUE = 192566,
+ GO_DRAKKARI_COLOSSUS_STATUE = 192567,
+ GO_ECK_THE_FEROCIOUS_DOOR = 192632,
+ GO_ECK_THE_FEROCIOUS_DOOR_BEHIND = 192569,
+ GO_GALDARAH_DOOR1 = 193208,
+ GO_GALDARAH_DOOR2 = 193209,
+ GO_GALDARAH_DOOR3 = 192568,
+ GO_BRIDGE = 193188,
+ GO_COLLISION = 192633
};
#endif
diff --git a/src/server/scripts/Northrend/Gundrak/instance_gundrak.cpp b/src/server/scripts/Northrend/Gundrak/instance_gundrak.cpp
index a9bbffa5fb0..681ffff46b3 100644
--- a/src/server/scripts/Northrend/Gundrak/instance_gundrak.cpp
+++ b/src/server/scripts/Northrend/Gundrak/instance_gundrak.cpp
@@ -36,7 +36,7 @@ class instance_gundrak : public InstanceMapScript
public:
instance_gundrak() : InstanceMapScript("instance_gundrak", 604) { }
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_gundrak_InstanceMapScript(map);
}
@@ -45,44 +45,45 @@ public:
{
instance_gundrak_InstanceMapScript(Map* map) : InstanceScript(map)
{
- bHeroicMode = map->IsHeroic();
+ isHeroic = map->IsHeroic();
}
- bool bHeroicMode;
+ bool isHeroic;
bool spawnSupport;
uint32 timer;
uint32 phase;
uint64 toActivate;
- uint64 uiSladRan;
- uint64 uiMoorabi;
- uint64 uiDrakkariColossus;
- uint64 uiGalDarah;
- uint64 uiEckTheFerocious;
-
- uint64 uiSladRanAltar;
- uint64 uiMoorabiAltar;
- uint64 uiDrakkariColossusAltar;
- uint64 uiSladRanStatue;
- uint64 uiMoorabiStatue;
- uint64 uiDrakkariColossusStatue;
- uint64 uiGalDarahStatue;
- uint64 uiEckTheFerociousDoor;
- uint64 uiEckTheFerociousDoorBehind;
- uint64 uiGalDarahDoor1;
- uint64 uiGalDarahDoor2;
- uint64 uiBridge;
- uint64 uiCollision;
+ uint64 sladRanGUID;
+ uint64 moorabiGUID;
+ uint64 drakkariColossusGUID;
+ uint64 galDarahGUID;
+ uint64 eckTheFerociousGUID;
+
+ uint64 sladRanAltarGUID;
+ uint64 moorabiAltarGUID;
+ uint64 drakkariColossusAltarGUID;
+ uint64 sladRanStatueGUID;
+ uint64 moorabiStatueGUID;
+ uint64 drakkariColossusStatueGUID;
+ uint64 galDarahStatueGUID;
+ uint64 eckTheFerociousDoorGUID;
+ uint64 eckTheFerociousDoorBehindGUID;
+ uint64 galDarahDoor1GUID;
+ uint64 galDarahDoor2GUID;
+ uint64 galDarahDoor3GUID;
+ uint64 bridgeGUID;
+ uint64 collisionGUID;
uint32 m_auiEncounter[MAX_ENCOUNTER];
- GOState uiSladRanStatueState;
- GOState uiMoorabiStatueState;
- GOState uiDrakkariColossusStatueState;
- GOState uiGalDarahStatueState;
- GOState uiBridgeState;
- GOState uiCollisionState;
+ GOState sladRanStatueState;
+ GOState moorabiStatueState;
+ GOState drakkariColossusStatueState;
+ GOState galDarahStatueState;
+ GOState bridgeState;
+ GOState collisionState;
std::set<uint64> DwellerGUIDs;
@@ -96,35 +97,36 @@ public:
phase = 0;
toActivate = 0;
- uiSladRan = 0;
- uiMoorabi = 0;
- uiDrakkariColossus = 0;
- uiGalDarah = 0;
- uiEckTheFerocious = 0;
-
- uiSladRanAltar = 0;
- uiMoorabiAltar = 0;
- uiDrakkariColossusAltar = 0;
-
- uiSladRanStatue = 0;
- uiMoorabiStatue = 0;
- uiDrakkariColossusStatue = 0;
- uiGalDarahStatue = 0;
-
- uiEckTheFerociousDoor = 0;
- uiEckTheFerociousDoorBehind = 0;
- uiGalDarahDoor1 = 0;
- uiGalDarahDoor2 = 0;
-
- uiBridge = 0;
- uiCollision = 0;
-
- uiSladRanStatueState = GO_STATE_ACTIVE;
- uiMoorabiStatueState = GO_STATE_ACTIVE;
- uiDrakkariColossusStatueState = GO_STATE_ACTIVE;
- uiGalDarahStatueState = GO_STATE_READY;
- uiBridgeState = GO_STATE_ACTIVE;
- uiCollisionState = GO_STATE_READY;
+ sladRanGUID = 0;
+ moorabiGUID = 0;
+ drakkariColossusGUID = 0;
+ galDarahGUID = 0;
+ eckTheFerociousGUID = 0;
+
+ sladRanAltarGUID = 0;
+ moorabiAltarGUID = 0;
+ drakkariColossusAltarGUID = 0;
+
+ sladRanStatueGUID = 0;
+ moorabiStatueGUID = 0;
+ drakkariColossusStatueGUID = 0;
+ galDarahStatueGUID = 0;
+
+ eckTheFerociousDoorGUID = 0;
+ eckTheFerociousDoorBehindGUID = 0;
+ galDarahDoor1GUID = 0;
+ galDarahDoor2GUID = 0;
+ galDarahDoor3GUID = 0;
+
+ bridgeGUID = 0;
+ collisionGUID = 0;
+
+ sladRanStatueState = GO_STATE_ACTIVE;
+ moorabiStatueState = GO_STATE_ACTIVE;
+ drakkariColossusStatueState = GO_STATE_ACTIVE;
+ galDarahStatueState = GO_STATE_READY;
+ bridgeState = GO_STATE_ACTIVE;
+ collisionState = GO_STATE_READY;
DwellerGUIDs.clear();
@@ -144,13 +146,23 @@ public:
{
switch (creature->GetEntry())
{
- case CREATURE_SLAD_RAN: uiSladRan = creature->GetGUID(); break;
- case CREATURE_MOORABI: uiMoorabi = creature->GetGUID(); break;
- case CREATURE_GALDARAH: uiGalDarah = creature->GetGUID(); break;
- case CREATURE_DRAKKARICOLOSSUS: uiDrakkariColossus = creature->GetGUID(); break;
- case CREATURE_ECK: uiEckTheFerocious = creature->GetGUID(); break;
+ case CREATURE_SLAD_RAN:
+ sladRanGUID = creature->GetGUID();
+ break;
+ case CREATURE_MOORABI:
+ moorabiGUID = creature->GetGUID();
+ break;
+ case CREATURE_GALDARAH:
+ galDarahGUID = creature->GetGUID();
+ break;
+ case CREATURE_DRAKKARICOLOSSUS:
+ drakkariColossusGUID = creature->GetGUID();
+ break;
+ case CREATURE_ECK:
+ eckTheFerociousGUID = creature->GetGUID();
+ break;
case CREATURE_RUIN_DWELLER:
- if (creature->isAlive())
+ if (creature->IsAlive())
DwellerGUIDs.insert(creature->GetGUID());
break;
}
@@ -160,13 +172,13 @@ public:
{
switch (go->GetEntry())
{
- case 192518:
- uiSladRanAltar = go->GetGUID();
+ case GO_SLADRAN_ALTAR:
+ sladRanAltarGUID = go->GetGUID();
// Make sure that they start out as unusuable
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
if (m_auiEncounter[0] == DONE)
{
- if (uiSladRanStatueState == GO_STATE_ACTIVE)
+ if (sladRanStatueState == GO_STATE_ACTIVE)
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
else
{
@@ -175,13 +187,13 @@ public:
}
}
break;
- case 192519:
- uiMoorabiAltar = go->GetGUID();
+ case GO_MOORABI_ALTAR:
+ moorabiAltarGUID = go->GetGUID();
// Make sure that they start out as unusuable
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
if (m_auiEncounter[0] == DONE)
{
- if (uiMoorabiStatueState == GO_STATE_ACTIVE)
+ if (moorabiStatueState == GO_STATE_ACTIVE)
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
else
{
@@ -190,13 +202,13 @@ public:
}
}
break;
- case 192520:
- uiDrakkariColossusAltar = go->GetGUID();
+ case GO_DRAKKARI_COLOSSUS_ALTAR:
+ drakkariColossusAltarGUID = go->GetGUID();
// Make sure that they start out as unusuable
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
if (m_auiEncounter[0] == DONE)
{
- if (uiDrakkariColossusStatueState == GO_STATE_ACTIVE)
+ if (drakkariColossusStatueState == GO_STATE_ACTIVE)
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
else
{
@@ -205,57 +217,63 @@ public:
}
}
break;
- case 192564:
- uiSladRanStatue = go->GetGUID();
- go->SetGoState(uiSladRanStatueState);
+ case GO_SLADRAN_STATUE:
+ sladRanStatueGUID = go->GetGUID();
+ go->SetGoState(sladRanStatueState);
break;
- case 192565:
- uiMoorabiStatue = go->GetGUID();
- go->SetGoState(uiMoorabiStatueState);
+ case GO_MOORABI_STATUE:
+ moorabiStatueGUID = go->GetGUID();
+ go->SetGoState(moorabiStatueState);
break;
- case 192566:
- uiGalDarahStatue = go->GetGUID();
- go->SetGoState(uiGalDarahStatueState);
+ case GO_GALDARAH_STATUE:
+ galDarahStatueGUID = go->GetGUID();
+ go->SetGoState(galDarahStatueState);
break;
- case 192567:
- uiDrakkariColossusStatue = go->GetGUID();
- go->SetGoState(uiDrakkariColossusStatueState);
+ case GO_DRAKKARI_COLOSSUS_STATUE:
+ drakkariColossusStatueGUID = go->GetGUID();
+ go->SetGoState(drakkariColossusStatueState);
break;
- case 192632:
- uiEckTheFerociousDoor = go->GetGUID();
- if (bHeroicMode && m_auiEncounter[1] == DONE)
+ case GO_ECK_THE_FEROCIOUS_DOOR:
+ eckTheFerociousDoorGUID = go->GetGUID();
+ if (isHeroic && m_auiEncounter[1] == DONE)
HandleGameObject(0, true, go);
break;
- case 192569:
- uiEckTheFerociousDoorBehind = go->GetGUID();
- if (bHeroicMode && m_auiEncounter[4] == DONE)
+ case GO_ECK_THE_FEROCIOUS_DOOR_BEHIND:
+ eckTheFerociousDoorBehindGUID = go->GetGUID();
+ if (isHeroic && m_auiEncounter[4] == DONE)
HandleGameObject(0, true, go);
- case 193208:
- uiGalDarahDoor1 = go->GetGUID();
+ break;
+ case GO_GALDARAH_DOOR1:
+ galDarahDoor1GUID = go->GetGUID();
if (m_auiEncounter[3] == DONE)
HandleGameObject(0, true, go);
break;
- case 193209:
- uiGalDarahDoor2 = go->GetGUID();
+ case GO_GALDARAH_DOOR2:
+ galDarahDoor2GUID = go->GetGUID();
if (m_auiEncounter[3] == DONE)
HandleGameObject(0, true, go);
break;
- case 193188:
- uiBridge = go->GetGUID();
- go->SetGoState(uiBridgeState);
+ case GO_BRIDGE:
+ bridgeGUID = go->GetGUID();
+ go->SetGoState(bridgeState);
break;
- case 192633:
- uiCollision = go->GetGUID();
- go->SetGoState(uiCollisionState);
+ case GO_COLLISION:
+ collisionGUID = go->GetGUID();
+ go->SetGoState(collisionState);
// Can't spawn here with SpawnGameObject because go isn't added to world yet...
- if (uiCollisionState == GO_STATE_ACTIVE_ALTERNATIVE)
+ if (collisionState == GO_STATE_ACTIVE_ALTERNATIVE)
spawnSupport = true;
break;
+ case GO_GALDARAH_DOOR3:
+ galDarahDoor3GUID = go->GetGUID();
+ if (m_auiEncounter[3] != IN_PROGRESS)
+ HandleGameObject(galDarahDoor3GUID, true, go);
+ break;
}
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
switch (type)
{
@@ -263,7 +281,7 @@ public:
m_auiEncounter[0] = data;
if (data == DONE)
{
- GameObject* go = instance->GetGameObject(uiSladRanAltar);
+ GameObject* go = instance->GetGameObject(sladRanAltarGUID);
if (go)
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
}
@@ -272,18 +290,18 @@ public:
m_auiEncounter[1] = data;
if (data == DONE)
{
- GameObject* go = instance->GetGameObject(uiMoorabiAltar);
+ GameObject* go = instance->GetGameObject(moorabiAltarGUID);
if (go)
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
- if (bHeroicMode)
- HandleGameObject(uiEckTheFerociousDoor, true);
+ if (isHeroic)
+ HandleGameObject(eckTheFerociousDoorGUID, true);
}
break;
case DATA_DRAKKARI_COLOSSUS_EVENT:
m_auiEncounter[2] = data;
if (data == DONE)
{
- GameObject* go = instance->GetGameObject(uiDrakkariColossusAltar);
+ GameObject* go = instance->GetGameObject(drakkariColossusAltarGUID);
if (go)
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
}
@@ -292,14 +310,15 @@ public:
m_auiEncounter[3] = data;
if (data == DONE)
{
- HandleGameObject(uiGalDarahDoor1, true);
- HandleGameObject(uiGalDarahDoor2, true);
+ HandleGameObject(galDarahDoor1GUID, true);
+ HandleGameObject(galDarahDoor2GUID, true);
}
+ HandleGameObject(galDarahDoor3GUID, data == IN_PROGRESS ? false : true);
break;
case DATA_ECK_THE_FEROCIOUS_EVENT:
m_auiEncounter[4] = data;
- if (bHeroicMode && data == DONE)
- HandleGameObject(uiEckTheFerociousDoorBehind, true);
+ if (isHeroic && data == DONE)
+ HandleGameObject(eckTheFerociousDoorBehindGUID, true);
break;
}
@@ -307,7 +326,7 @@ public:
SaveToDB();
}
- void SetData64(uint32 type, uint64 data)
+ void SetData64(uint32 type, uint64 data) OVERRIDE
{
if (type == DATA_RUIN_DWELLER_DIED)
DwellerGUIDs.erase(data);
@@ -319,7 +338,7 @@ public:
}
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -340,24 +359,24 @@ public:
return 0;
}
- uint64 GetData64(uint32 type) const
+ uint64 GetData64(uint32 type) const OVERRIDE
{
switch (type)
{
case DATA_SLAD_RAN_ALTAR:
- return uiSladRanAltar;
+ return sladRanAltarGUID;
case DATA_MOORABI_ALTAR:
- return uiMoorabiAltar;
+ return moorabiAltarGUID;
case DATA_DRAKKARI_COLOSSUS_ALTAR:
- return uiDrakkariColossusAltar;
+ return drakkariColossusAltarGUID;
case DATA_SLAD_RAN_STATUE:
- return uiSladRanStatue;
+ return sladRanStatueGUID;
case DATA_MOORABI_STATUE:
- return uiMoorabiStatue;
+ return moorabiStatueGUID;
case DATA_DRAKKARI_COLOSSUS_STATUE:
- return uiDrakkariColossusStatue;
+ return drakkariColossusStatueGUID;
case DATA_DRAKKARI_COLOSSUS:
- return uiDrakkariColossus;
+ return drakkariColossusGUID;
case DATA_STATUE_ACTIVATE:
return toActivate;
}
@@ -372,9 +391,9 @@ public:
std::ostringstream saveStream;
saveStream << "G D " << m_auiEncounter[0] << ' ' << m_auiEncounter[1] << ' '
<< m_auiEncounter[2] << ' ' << m_auiEncounter[3] << ' ' << m_auiEncounter[4] << ' '
- << (uiSladRanStatue ? GetObjState(uiSladRanStatue) : GO_STATE_ACTIVE) << ' ' << (uiMoorabiStatue ? GetObjState(uiMoorabiStatue) : GO_STATE_ACTIVE) << ' '
- << (uiDrakkariColossusStatue ? GetObjState(uiDrakkariColossusStatue) : GO_STATE_ACTIVE) << ' ' << (uiGalDarahStatue ? GetObjState(uiGalDarahStatue) : GO_STATE_READY) << ' '
- << (uiBridge ? GetObjState(uiBridge) : GO_STATE_ACTIVE) << ' ' << (uiCollision ? GetObjState(uiCollision) : GO_STATE_READY);
+ << (sladRanStatueGUID ? GetObjState(sladRanStatueGUID) : GO_STATE_ACTIVE) << ' ' << (moorabiStatueGUID ? GetObjState(moorabiStatueGUID) : GO_STATE_ACTIVE) << ' '
+ << (drakkariColossusStatueGUID ? GetObjState(drakkariColossusStatueGUID) : GO_STATE_ACTIVE) << ' ' << (galDarahStatueGUID ? GetObjState(galDarahStatueGUID) : GO_STATE_READY) << ' '
+ << (bridgeGUID ? GetObjState(bridgeGUID) : GO_STATE_ACTIVE) << ' ' << (collisionGUID ? GetObjState(collisionGUID) : GO_STATE_READY);
str_data = saveStream.str();
@@ -406,12 +425,12 @@ public:
m_auiEncounter[2] = data2;
m_auiEncounter[3] = data3;
m_auiEncounter[4] = data4;
- uiSladRanStatueState = GOState(data5);
- uiMoorabiStatueState = GOState(data6);
- uiDrakkariColossusStatueState = GOState(data7);
- uiGalDarahStatueState = GOState(data8);
- uiBridgeState = GOState(data9);
- uiCollisionState = GOState(data10);
+ sladRanStatueState = GOState(data5);
+ moorabiStatueState = GOState(data6);
+ drakkariColossusStatueState = GOState(data7);
+ galDarahStatueState = GOState(data8);
+ bridgeState = GOState(data9);
+ collisionState = GOState(data10);
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
if (m_auiEncounter[i] == IN_PROGRESS)
@@ -426,8 +445,8 @@ public:
// Spawn the support for the bridge if necessary
if (spawnSupport)
{
- if (GameObject* pCollision = instance->GetGameObject(uiCollision))
- pCollision->SummonGameObject(192743, pCollision->GetPositionX(), pCollision->GetPositionY(), pCollision->GetPositionZ(), pCollision->GetOrientation(), 0, 0, 0, 0, 0);
+ if (GameObject* collision = instance->GetGameObject(collisionGUID))
+ collision->SummonGameObject(192743, collision->GetPositionX(), collision->GetPositionY(), collision->GetPositionZ(), collision->GetOrientation(), 0, 0, 0, 0, 0);
spawnSupport = false;
}
@@ -438,25 +457,25 @@ public:
if (timer < diff)
{
timer = 0;
- if (toActivate == uiBridge)
+ if (toActivate == bridgeGUID)
{
- GameObject* pBridge = instance->GetGameObject(uiBridge);
- GameObject* pCollision = instance->GetGameObject(uiCollision);
- GameObject* pSladRanStatue = instance->GetGameObject(uiSladRanStatue);
- GameObject* pMoorabiStatue = instance->GetGameObject(uiMoorabiStatue);
- GameObject* pDrakkariColossusStatue = instance->GetGameObject(uiDrakkariColossusStatue);
- GameObject* pGalDarahStatue = instance->GetGameObject(uiGalDarahStatue);
+ GameObject* bridge = instance->GetGameObject(bridgeGUID);
+ GameObject* collision = instance->GetGameObject(collisionGUID);
+ GameObject* sladRanStatue = instance->GetGameObject(sladRanStatueGUID);
+ GameObject* moorabiStatue = instance->GetGameObject(moorabiStatueGUID);
+ GameObject* drakkariColossusStatue = instance->GetGameObject(drakkariColossusStatueGUID);
+ GameObject* galDarahStatue = instance->GetGameObject(galDarahStatueGUID);
toActivate = 0;
- if (pBridge && pCollision && pSladRanStatue && pMoorabiStatue && pDrakkariColossusStatue && pGalDarahStatue)
+ if (bridge && collision && sladRanStatue && moorabiStatue && drakkariColossusStatue && galDarahStatue)
{
- pBridge->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
- pCollision->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
- pSladRanStatue->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
- pMoorabiStatue->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
- pDrakkariColossusStatue->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
- pGalDarahStatue->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
+ bridge->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
+ collision->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
+ sladRanStatue->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
+ moorabiStatue->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
+ drakkariColossusStatue->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
+ galDarahStatue->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
// Add the GO that solidifies the bridge so you can walk on it
spawnSupport = true;
@@ -466,27 +485,27 @@ public:
else
{
uint32 spell = 0;
- GameObject* pAltar = NULL;
- if (toActivate == uiSladRanStatue)
+ GameObject* altar = NULL;
+ if (toActivate == sladRanStatueGUID)
{
spell = 57071;
- pAltar = instance->GetGameObject(uiSladRanAltar);
+ altar = instance->GetGameObject(sladRanAltarGUID);
}
- else if (toActivate == uiMoorabiStatue)
+ else if (toActivate == moorabiStatueGUID)
{
spell = 57068;
- pAltar = instance->GetGameObject(uiMoorabiAltar);
+ altar = instance->GetGameObject(moorabiAltarGUID);
}
- else if (toActivate == uiDrakkariColossusStatue)
+ else if (toActivate == drakkariColossusStatueGUID)
{
spell = 57072;
- pAltar = instance->GetGameObject(uiDrakkariColossusAltar);
+ altar = instance->GetGameObject(drakkariColossusAltarGUID);
}
// This is a workaround to make the beam cast properly. The caster should be ID 30298 but since the spells
// all are with scripted target for that same ID, it will hit itself.
- if (pAltar)
- if (Creature* trigger = pAltar->SummonCreature(18721, pAltar->GetPositionX(), pAltar->GetPositionY(), pAltar->GetPositionZ() + 3, pAltar->GetOrientation(), TEMPSUMMON_CORPSE_DESPAWN, 5000))
+ if (altar)
+ if (Creature* trigger = altar->SummonCreature(18721, altar->GetPositionX(), altar->GetPositionY(), altar->GetPositionZ() + 3, altar->GetOrientation(), TEMPSUMMON_CORPSE_DESPAWN, 5000))
{
// Set the trigger model to invisible
trigger->SetDisplayId(11686);
@@ -499,7 +518,7 @@ public:
toActivate = 0;
if (phase == 3)
- SetData64(DATA_STATUE_ACTIVATE, uiBridge);
+ SetData64(DATA_STATUE_ACTIVATE, bridgeGUID);
else
SaveToDB(); // Don't save in between last statue and bridge turning in case of crash leading to stuck instance
}
@@ -523,10 +542,10 @@ class go_gundrak_altar : public GameObjectScript
public:
go_gundrak_altar() : GameObjectScript("go_gundrak_altar") { }
- bool OnGossipHello(Player* /*player*/, GameObject* go)
+ bool OnGossipHello(Player* /*player*/, GameObject* go) OVERRIDE
{
InstanceScript* instance = go->GetInstanceScript();
- uint64 uiStatue = 0;
+ uint64 statueGUID = 0;
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
go->SetGoState(GO_STATE_ACTIVE);
@@ -535,20 +554,20 @@ public:
{
switch (go->GetEntry())
{
- case 192518:
- uiStatue = instance->GetData64(DATA_SLAD_RAN_STATUE);
+ case GO_SLADRAN_ALTAR:
+ statueGUID = instance->GetData64(DATA_SLAD_RAN_STATUE);
break;
- case 192519:
- uiStatue = instance->GetData64(DATA_MOORABI_STATUE);
+ case GO_MOORABI_ALTAR:
+ statueGUID = instance->GetData64(DATA_MOORABI_STATUE);
break;
- case 192520:
- uiStatue = instance->GetData64(DATA_DRAKKARI_COLOSSUS_STATUE);
+ case GO_DRAKKARI_COLOSSUS_ALTAR:
+ statueGUID = instance->GetData64(DATA_DRAKKARI_COLOSSUS_STATUE);
break;
}
if (!instance->GetData64(DATA_STATUE_ACTIVATE))
{
- instance->SetData64(DATA_STATUE_ACTIVATE, uiStatue);
+ instance->SetData64(DATA_STATUE_ACTIVATE, statueGUID);
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
go->SetGoState(GO_STATE_ACTIVE);
}
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp
index 833649b576d..0c859236965 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp
@@ -184,7 +184,7 @@ class boss_blood_council_controller : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
events.Reset();
me->SetReactState(REACT_PASSIVE);
@@ -194,7 +194,7 @@ class boss_blood_council_controller : public CreatureScript
instance->SetBossState(DATA_BLOOD_PRINCE_COUNCIL, NOT_STARTED);
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (instance->GetBossState(DATA_BLOOD_PRINCE_COUNCIL) == IN_PROGRESS)
return;
@@ -243,14 +243,14 @@ class boss_blood_council_controller : public CreatureScript
}
}
- void SetData(uint32 /*type*/, uint32 data)
+ void SetData(uint32 /*type*/, uint32 data) OVERRIDE
{
_resetCounter += uint8(data);
if (_resetCounter == 3)
EnterEvadeMode();
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
_resetCounter = 0;
if (Creature* keleseth = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PRINCE_KELESETH_GUID)))
@@ -263,7 +263,7 @@ class boss_blood_council_controller : public CreatureScript
valanar->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
_JustDied();
// kill all prices
@@ -282,7 +282,7 @@ class boss_blood_council_controller : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -349,7 +349,7 @@ class boss_blood_council_controller : public CreatureScript
uint32 _resetCounter;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<boss_blood_council_controllerAI>(creature);
}
@@ -368,7 +368,7 @@ class boss_prince_keleseth_icc : public CreatureScript
_spawnHealth = creature->GetMaxHealth();
}
- void InitializeAI()
+ void InitializeAI() OVERRIDE
{
if (CreatureData const* data = sObjectMgr->GetCreatureData(me->GetDBTableGUIDLow()))
if (data->curhealth)
@@ -380,7 +380,7 @@ class boss_prince_keleseth_icc : public CreatureScript
me->SetReactState(REACT_DEFENSIVE);
}
- void Reset()
+ void Reset() OVERRIDE
{
events.Reset();
summons.DespawnAll();
@@ -392,7 +392,7 @@ class boss_prince_keleseth_icc : public CreatureScript
me->SetReactState(REACT_DEFENSIVE);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_BLOOD_PRINCES_CONTROL)))
DoZoneInCombat(controller);
@@ -408,7 +408,7 @@ class boss_prince_keleseth_icc : public CreatureScript
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
events.Reset();
summons.DespawnAll();
@@ -417,7 +417,7 @@ class boss_prince_keleseth_icc : public CreatureScript
instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
me->SetHealth(_spawnHealth);
@@ -429,19 +429,19 @@ class boss_prince_keleseth_icc : public CreatureScript
}
}
- void JustRespawned()
+ void JustRespawned() OVERRIDE
{
DoCast(me, SPELL_FEIGN_DEATH);
me->SetHealth(_spawnHealth);
}
- void SpellHit(Unit* /*caster*/, SpellInfo const* spell)
+ void SpellHit(Unit* /*caster*/, SpellInfo const* spell) OVERRIDE
{
if (spell->Id == SPELL_INVOCATION_OF_BLOOD_KELESETH)
DoAction(ACTION_CAST_INVOCATION);
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
summons.Summon(summon);
Position pos;
@@ -453,7 +453,7 @@ class boss_prince_keleseth_icc : public CreatureScript
summon->ToTempSummon()->SetTempSummonType(TEMPSUMMON_CORPSE_DESPAWN);
}
- void DamageDealt(Unit* /*target*/, uint32& damage, DamageEffectType damageType)
+ void DamageDealt(Unit* /*target*/, uint32& damage, DamageEffectType damageType) OVERRIDE
{
if (damageType != SPELL_DIRECT_DAMAGE)
return;
@@ -462,7 +462,7 @@ class boss_prince_keleseth_icc : public CreatureScript
instance->SetData(DATA_ORB_WHISPERER_ACHIEVEMENT, uint32(false));
}
- void DamageTaken(Unit* attacker, uint32& damage)
+ void DamageTaken(Unit* attacker, uint32& damage) OVERRIDE
{
if (!_isEmpowered)
{
@@ -471,13 +471,13 @@ class boss_prince_keleseth_icc : public CreatureScript
}
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
if (victim->GetTypeId() == TYPEID_PLAYER)
Talk(SAY_KELESETH_KILL);
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -522,7 +522,7 @@ class boss_prince_keleseth_icc : public CreatureScript
return true;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim() || !CheckRoom())
return;
@@ -565,7 +565,7 @@ class boss_prince_keleseth_icc : public CreatureScript
bool _isEmpowered;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<boss_prince_kelesethAI>(creature);
}
@@ -584,7 +584,7 @@ class boss_prince_taldaram_icc : public CreatureScript
_spawnHealth = creature->GetMaxHealth();
}
- void InitializeAI()
+ void InitializeAI() OVERRIDE
{
if (CreatureData const* data = sObjectMgr->GetCreatureData(me->GetDBTableGUIDLow()))
if (data->curhealth)
@@ -596,7 +596,7 @@ class boss_prince_taldaram_icc : public CreatureScript
me->SetReactState(REACT_DEFENSIVE);
}
- void Reset()
+ void Reset() OVERRIDE
{
events.Reset();
summons.DespawnAll();
@@ -608,11 +608,12 @@ class boss_prince_taldaram_icc : public CreatureScript
me->SetReactState(REACT_DEFENSIVE);
}
- void MoveInLineOfSight(Unit* /*who*/)
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE
+
{
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_BLOOD_PRINCES_CONTROL)))
DoZoneInCombat(controller);
@@ -624,7 +625,7 @@ class boss_prince_taldaram_icc : public CreatureScript
me->AddAura(SPELL_SHADOW_PRISON, me);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
events.Reset();
summons.DespawnAll();
@@ -633,7 +634,7 @@ class boss_prince_taldaram_icc : public CreatureScript
instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
me->SetHealth(_spawnHealth);
@@ -645,19 +646,19 @@ class boss_prince_taldaram_icc : public CreatureScript
}
}
- void JustRespawned()
+ void JustRespawned() OVERRIDE
{
DoCast(me, SPELL_FEIGN_DEATH);
me->SetHealth(_spawnHealth);
}
- void SpellHit(Unit* /*caster*/, SpellInfo const* spell)
+ void SpellHit(Unit* /*caster*/, SpellInfo const* spell) OVERRIDE
{
if (spell->Id == SPELL_INVOCATION_OF_BLOOD_TALDARAM)
DoAction(ACTION_CAST_INVOCATION);
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
summons.Summon(summon);
Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, -10.0f, true); // first try at distance
@@ -671,7 +672,7 @@ class boss_prince_taldaram_icc : public CreatureScript
summon->AI()->SetGUID(target->GetGUID());
}
- void DamageDealt(Unit* /*target*/, uint32& damage, DamageEffectType damageType)
+ void DamageDealt(Unit* /*target*/, uint32& damage, DamageEffectType damageType) OVERRIDE
{
if (damageType != SPELL_DIRECT_DAMAGE)
return;
@@ -680,7 +681,7 @@ class boss_prince_taldaram_icc : public CreatureScript
instance->SetData(DATA_ORB_WHISPERER_ACHIEVEMENT, uint32(false));
}
- void DamageTaken(Unit* attacker, uint32& damage)
+ void DamageTaken(Unit* attacker, uint32& damage) OVERRIDE
{
if (!_isEmpowered)
{
@@ -689,13 +690,13 @@ class boss_prince_taldaram_icc : public CreatureScript
}
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
if (victim->GetTypeId() == TYPEID_PLAYER)
Talk(SAY_TALDARAM_KILL);
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -740,7 +741,7 @@ class boss_prince_taldaram_icc : public CreatureScript
return true;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim() || !CheckRoom())
return;
@@ -788,7 +789,7 @@ class boss_prince_taldaram_icc : public CreatureScript
bool _isEmpowered;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<boss_prince_taldaramAI>(creature);
}
@@ -807,7 +808,7 @@ class boss_prince_valanar_icc : public CreatureScript
_spawnHealth = creature->GetMaxHealth();
}
- void InitializeAI()
+ void InitializeAI() OVERRIDE
{
if (CreatureData const* data = sObjectMgr->GetCreatureData(me->GetDBTableGUIDLow()))
if (data->curhealth)
@@ -819,7 +820,7 @@ class boss_prince_valanar_icc : public CreatureScript
me->SetReactState(REACT_DEFENSIVE);
}
- void Reset()
+ void Reset() OVERRIDE
{
events.Reset();
summons.DespawnAll();
@@ -831,11 +832,12 @@ class boss_prince_valanar_icc : public CreatureScript
me->SetReactState(REACT_DEFENSIVE);
}
- void MoveInLineOfSight(Unit* /*who*/)
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE
+
{
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_BLOOD_PRINCES_CONTROL)))
DoZoneInCombat(controller);
@@ -847,7 +849,7 @@ class boss_prince_valanar_icc : public CreatureScript
me->AddAura(SPELL_SHADOW_PRISON, me);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
events.Reset();
summons.DespawnAll();
@@ -856,7 +858,7 @@ class boss_prince_valanar_icc : public CreatureScript
instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
me->SetHealth(me->GetMaxHealth());
@@ -868,13 +870,13 @@ class boss_prince_valanar_icc : public CreatureScript
}
}
- void JustRespawned()
+ void JustRespawned() OVERRIDE
{
DoCast(me, SPELL_FEIGN_DEATH);
me->SetHealth(_spawnHealth);
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
switch (summon->GetEntry())
{
@@ -899,17 +901,17 @@ class boss_prince_valanar_icc : public CreatureScript
break;
}
summons.Summon(summon);
- if (me->isInCombat())
+ if (me->IsInCombat())
DoZoneInCombat(summon);
}
- void SpellHit(Unit* /*caster*/, SpellInfo const* spell)
+ void SpellHit(Unit* /*caster*/, SpellInfo const* spell) OVERRIDE
{
if (spell->Id == SPELL_INVOCATION_OF_BLOOD_VALANAR)
DoAction(ACTION_CAST_INVOCATION);
}
- void DamageDealt(Unit* /*target*/, uint32& damage, DamageEffectType damageType)
+ void DamageDealt(Unit* /*target*/, uint32& damage, DamageEffectType damageType) OVERRIDE
{
if (damageType != SPELL_DIRECT_DAMAGE)
return;
@@ -918,7 +920,7 @@ class boss_prince_valanar_icc : public CreatureScript
instance->SetData(DATA_ORB_WHISPERER_ACHIEVEMENT, uint32(false));
}
- void DamageTaken(Unit* attacker, uint32& damage)
+ void DamageTaken(Unit* attacker, uint32& damage) OVERRIDE
{
if (!_isEmpowered)
{
@@ -927,13 +929,13 @@ class boss_prince_valanar_icc : public CreatureScript
}
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
if (victim->GetTypeId() == TYPEID_PLAYER)
Talk(SAY_VALANAR_KILL);
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -978,7 +980,7 @@ class boss_prince_valanar_icc : public CreatureScript
return true;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim() || !CheckRoom())
return;
@@ -1031,7 +1033,7 @@ class boss_prince_valanar_icc : public CreatureScript
bool _isEmpowered;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<boss_prince_valanarAI>(creature);
}
@@ -1050,7 +1052,7 @@ class npc_blood_queen_lana_thel : public CreatureScript
_instance = creature->GetInstanceScript();
}
- void Reset()
+ void Reset() OVERRIDE
{
_events.Reset();
me->SetDisableGravity(true);
@@ -1063,7 +1065,8 @@ class npc_blood_queen_lana_thel : public CreatureScript
me->SetVisible(true);
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (_introDone)
return;
@@ -1084,13 +1087,13 @@ class npc_blood_queen_lana_thel : public CreatureScript
}
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type == POINT_MOTION_TYPE && id == POINT_INTRO_DESPAWN)
me->SetVisible(false);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!_events.GetPhaseMask())
return;
@@ -1124,7 +1127,7 @@ class npc_blood_queen_lana_thel : public CreatureScript
bool _introDone;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_blood_queen_lana_thelAI>(creature);
}
@@ -1142,7 +1145,7 @@ class npc_ball_of_flame : public CreatureScript
_despawnTimer = 0;
}
- void Reset()
+ void Reset() OVERRIDE
{
me->CastSpell(me, SPELL_BALL_OF_FLAMES_VISUAL, true);
if (me->GetEntry() == NPC_BALL_OF_INFERNO_FLAME)
@@ -1152,7 +1155,7 @@ class npc_ball_of_flame : public CreatureScript
}
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type == CHASE_MOTION_TYPE && id == GUID_LOPART(_chaseGUID) && _chaseGUID)
{
@@ -1163,12 +1166,12 @@ class npc_ball_of_flame : public CreatureScript
}
}
- void SetGUID(uint64 guid, int32 /*type*/)
+ void SetGUID(uint64 guid, int32 /*type*/) OVERRIDE
{
_chaseGUID = guid;
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
if (action == ACTION_FLAME_BALL_CHASE)
if (Player* target = ObjectAccessor::GetPlayer(*me, _chaseGUID))
@@ -1180,7 +1183,7 @@ class npc_ball_of_flame : public CreatureScript
}
}
- void DamageDealt(Unit* /*target*/, uint32& damage, DamageEffectType damageType)
+ void DamageDealt(Unit* /*target*/, uint32& damage, DamageEffectType damageType) OVERRIDE
{
if (damageType != SPELL_DIRECT_DAMAGE)
return;
@@ -1189,7 +1192,7 @@ class npc_ball_of_flame : public CreatureScript
_instance->SetData(DATA_ORB_WHISPERER_ACHIEVEMENT, uint32(false));
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!_despawnTimer)
return;
@@ -1209,7 +1212,7 @@ class npc_ball_of_flame : public CreatureScript
uint32 _despawnTimer;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_ball_of_flameAI>(creature);
}
@@ -1224,7 +1227,7 @@ class npc_kinetic_bomb : public CreatureScript
{
npc_kinetic_bombAI(Creature* creature) : ScriptedAI(creature) { }
- void Reset()
+ void Reset() OVERRIDE
{
_events.Reset();
me->SetWalk(true);
@@ -1236,7 +1239,7 @@ class npc_kinetic_bomb : public CreatureScript
_groundZ = me->GetMap()->GetHeight(me->GetPhaseMask(), _x, _y, _groundZ, true, 500.0f);
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
if (action == SPELL_KINETIC_BOMB_EXPLOSION)
_events.ScheduleEvent(EVENT_BOMB_DESPAWN, 1000);
@@ -1248,7 +1251,7 @@ class npc_kinetic_bomb : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
_events.Update(diff);
@@ -1276,7 +1279,7 @@ class npc_kinetic_bomb : public CreatureScript
float _groundZ;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_kinetic_bombAI>(creature);
}
@@ -1295,13 +1298,13 @@ class npc_dark_nucleus : public CreatureScript
_targetAuraCheck = 0;
}
- void Reset()
+ void Reset() OVERRIDE
{
me->SetReactState(REACT_DEFENSIVE);
me->CastSpell(me, SPELL_SHADOW_RESONANCE_AURA, true);
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
_targetAuraCheck = 1000;
if (me->GetDistance(who) >= 15.0f)
@@ -1314,12 +1317,13 @@ class npc_dark_nucleus : public CreatureScript
me->ClearUnitState(UNIT_STATE_CASTING);
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
ScriptedAI::MoveInLineOfSight(who);
}
- void DamageTaken(Unit* attacker, uint32& /*damage*/)
+ void DamageTaken(Unit* attacker, uint32& /*damage*/) OVERRIDE
{
if (attacker == me)
return;
@@ -1328,7 +1332,7 @@ class npc_dark_nucleus : public CreatureScript
me->AddThreat(attacker, 500000000.0f);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -1336,7 +1340,7 @@ class npc_dark_nucleus : public CreatureScript
if (_targetAuraCheck <= diff)
{
_targetAuraCheck = 1000;
- if (Unit* victim = me->getVictim())
+ if (Unit* victim = me->GetVictim())
{
if (me->GetDistance(victim) < 15.0f &&
!victim->HasAura(SPELL_SHADOW_RESONANCE_RESIST, me->GetGUID()))
@@ -1345,7 +1349,7 @@ class npc_dark_nucleus : public CreatureScript
me->ClearUnitState(UNIT_STATE_CASTING);
}
else
- MoveInLineOfSight(me->getVictim());
+ MoveInLineOfSight(me->GetVictim());
}
}
else
@@ -1357,7 +1361,7 @@ class npc_dark_nucleus : public CreatureScript
bool _lockedTarget;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_dark_nucleusAI>(creature);
}
@@ -1378,13 +1382,13 @@ class spell_taldaram_glittering_sparks : public SpellScriptLoader
GetCaster()->CastSpell(GetCaster(), uint32(GetEffectValue()), true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_taldaram_glittering_sparks_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_taldaram_glittering_sparks_SpellScript();
}
@@ -1405,13 +1409,13 @@ class spell_taldaram_summon_flame_ball : public SpellScriptLoader
GetCaster()->CastSpell(GetCaster(), uint32(GetEffectValue()), true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_taldaram_summon_flame_ball_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_taldaram_summon_flame_ball_SpellScript();
}
@@ -1426,7 +1430,7 @@ class spell_taldaram_flame_ball_visual : public SpellScriptLoader
{
PrepareAuraScript(spell_flame_ball_visual_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
if (GetCaster()->GetEntry() == NPC_BALL_OF_FLAME || GetCaster()->GetEntry() == NPC_BALL_OF_INFERNO_FLAME)
return true;
@@ -1449,13 +1453,13 @@ class spell_taldaram_flame_ball_visual : public SpellScriptLoader
target->DespawnOrUnsummon();
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectRemove += AuraEffectRemoveFn(spell_flame_ball_visual_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_MOD_STUN, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_flame_ball_visual_AuraScript();
}
@@ -1476,13 +1480,13 @@ class spell_taldaram_ball_of_inferno_flame : public SpellScriptLoader
aur->SetStackAmount(uint8(GetSpellInfo()->StackAmount));
}
- void Register()
+ void Register() OVERRIDE
{
AfterHit += SpellHitFn(spell_taldaram_ball_of_inferno_flame_SpellScript::ModAuraStack);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_taldaram_ball_of_inferno_flame_SpellScript();
}
@@ -1506,7 +1510,7 @@ class spell_valanar_kinetic_bomb : public SpellScriptLoader
GetHitDest()->RelocateOffset(offset);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHit += SpellEffectFn(spell_valanar_kinetic_bomb_SpellScript::ChangeSummonPos, EFFECT_0, SPELL_EFFECT_SUMMON);
}
@@ -1531,18 +1535,18 @@ class spell_valanar_kinetic_bomb : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_valanar_kinetic_bomb_AuraScript::HandleDummyTick, EFFECT_1, SPELL_AURA_PERIODIC_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_valanar_kinetic_bomb_SpellScript();
}
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_valanar_kinetic_bomb_AuraScript();
}
@@ -1563,13 +1567,13 @@ class spell_valanar_kinetic_bomb_knockback : public SpellScriptLoader
target->AI()->DoAction(ACTION_KINETIC_BOMB_JUMP);
}
- void Register()
+ void Register() OVERRIDE
{
BeforeHit += SpellHitFn(spell_valanar_kinetic_bomb_knockback_SpellScript::KnockIntoAir);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_valanar_kinetic_bomb_knockback_SpellScript();
}
@@ -1591,13 +1595,13 @@ class spell_valanar_kinetic_bomb_absorb : public SpellScriptLoader
dmgInfo.AbsorbDamage(absorbAmount);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectAbsorb += AuraEffectAbsorbFn(spell_valanar_kinetic_bomb_absorb_AuraScript::OnAbsorb, EFFECT_0);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_valanar_kinetic_bomb_absorb_AuraScript();
}
@@ -1618,13 +1622,13 @@ class spell_blood_council_shadow_prison : public SpellScriptLoader
GetTarget()->CastSpell(GetTarget(), SPELL_SHADOW_PRISON_DAMAGE, true, NULL, aurEff);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_blood_council_shadow_prison_AuraScript::HandleDummyTick, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_blood_council_shadow_prison_AuraScript();
}
@@ -1646,13 +1650,13 @@ class spell_blood_council_shadow_prison_damage : public SpellScriptLoader
SetHitDamage(GetHitDamage() + eff->GetAmount());
}
- void Register()
+ void Register() OVERRIDE
{
OnHit += SpellHitFn(spell_blood_council_shadow_prison_SpellScript::AddExtraDamage);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_blood_council_shadow_prison_SpellScript();
}
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp
index 938b2e94d02..107b95c5990 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp
@@ -145,7 +145,7 @@ class boss_blood_queen_lana_thel : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
events.ScheduleEvent(EVENT_BERSERK, 330000);
@@ -157,14 +157,13 @@ class boss_blood_queen_lana_thel : public CreatureScript
events.ScheduleEvent(EVENT_TWILIGHT_BLOODBOLT, urand(20000, 25000), EVENT_GROUP_NORMAL);
events.ScheduleEvent(EVENT_AIR_PHASE, 124000 + uint32(Is25ManRaid() ? 3000 : 0));
CleanAuras();
- me->SetSpeed(MOVE_FLIGHT, 0.642857f, true);
_offtank = NULL;
_vampires.clear();
_creditBloodQuickening = false;
_killMinchar = false;
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (!instance->CheckRequiredBosses(DATA_BLOOD_QUEEN_LANA_THEL, who->ToPlayer()))
{
@@ -184,7 +183,7 @@ class boss_blood_queen_lana_thel : public CreatureScript
_creditBloodQuickening = instance->GetData(DATA_BLOOD_QUICKENING_STATE) == IN_PROGRESS;
}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
_JustDied();
Talk(SAY_DEATH);
@@ -204,7 +203,6 @@ class boss_blood_queen_lana_thel : public CreatureScript
minchar->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
minchar->RemoveByteFlag(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND);
minchar->SetCanFly(false);
- minchar->SendMovementFlagUpdate();
minchar->RemoveAllAuras();
minchar->GetMotionMaster()->MoveCharge(4629.3711f, 2782.6089f, 401.5301f, SPEED_CHARGE/3.0f);
}
@@ -225,7 +223,7 @@ class boss_blood_queen_lana_thel : public CreatureScript
instance->DoRemoveAurasDueToSpellOnPlayers(PRESENCE_OF_THE_DARKFALLEN);
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
if (action != ACTION_KILL_MINCHAR)
return;
@@ -236,13 +234,11 @@ class boss_blood_queen_lana_thel : public CreatureScript
{
me->SetDisableGravity(true);
me->SetByteFlag(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND);
- me->SetCanFly(true);
- me->SendMovementFlagUpdate();
me->GetMotionMaster()->MovePoint(POINT_MINCHAR, mincharPos);
}
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
_EnterEvadeMode();
CleanAuras();
@@ -251,7 +247,6 @@ class boss_blood_queen_lana_thel : public CreatureScript
_killMinchar = false;
me->SetDisableGravity(true);
me->SetByteFlag(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND);
- me->SetCanFly(true);
me->GetMotionMaster()->MovePoint(POINT_MINCHAR, mincharPos);
}
else
@@ -261,24 +256,23 @@ class boss_blood_queen_lana_thel : public CreatureScript
}
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
me->SetDisableGravity(false);
me->RemoveByteFlag(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND);
- me->SetCanFly(false);
me->SetReactState(REACT_AGGRESSIVE);
_JustReachedHome();
Talk(SAY_WIPE);
instance->SetBossState(DATA_BLOOD_QUEEN_LANA_THEL, FAIL);
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
if (victim->GetTypeId() == TYPEID_PLAYER)
Talk(SAY_KILL);
}
- void SetGUID(uint64 guid, int32 type = 0)
+ void SetGUID(uint64 guid, int32 type = 0) OVERRIDE
{
switch (type)
{
@@ -293,7 +287,7 @@ class boss_blood_queen_lana_thel : public CreatureScript
}
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type != POINT_MOTION_TYPE)
return;
@@ -316,8 +310,6 @@ class boss_blood_queen_lana_thel : public CreatureScript
case POINT_GROUND:
me->SetDisableGravity(false);
me->RemoveByteFlag(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND);
- me->SetCanFly(false);
- me->SendMovementFlagUpdate();
me->SetReactState(REACT_AGGRESSIVE);
if (Unit* victim = me->SelectVictim())
AttackStart(victim);
@@ -333,7 +325,7 @@ class boss_blood_queen_lana_thel : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim() || !CheckInRoom())
return;
@@ -371,7 +363,7 @@ class boss_blood_queen_lana_thel : public CreatureScript
case EVENT_BLOOD_MIRROR:
{
// victim can be NULL when this is processed in the same update tick as EVENT_AIR_PHASE
- if (me->getVictim())
+ if (me->GetVictim())
{
Player* newOfftank = SelectRandomTarget(true);
if (_offtank != newOfftank)
@@ -380,8 +372,8 @@ class boss_blood_queen_lana_thel : public CreatureScript
if (_offtank)
{
// both spells have SPELL_ATTR5_SINGLE_TARGET_SPELL, no manual removal needed
- _offtank->CastSpell(me->getVictim(), SPELL_BLOOD_MIRROR_DAMAGE, true);
- me->getVictim()->CastSpell(_offtank, SPELL_BLOOD_MIRROR_DUMMY, true);
+ _offtank->CastSpell(me->GetVictim(), SPELL_BLOOD_MIRROR_DAMAGE, true);
+ me->GetVictim()->CastSpell(_offtank, SPELL_BLOOD_MIRROR_DUMMY, true);
DoCastVictim(SPELL_BLOOD_MIRROR_VISUAL);
if (Is25ManRaid() && _offtank->GetQuestStatus(QUEST_BLOOD_INFUSION) == QUEST_STATUS_INCOMPLETE &&
_offtank->HasAura(SPELL_UNSATED_CRAVING) && !_offtank->HasAura(SPELL_THIRST_QUENCHED) &&
@@ -443,8 +435,6 @@ class boss_blood_queen_lana_thel : public CreatureScript
case EVENT_AIR_START_FLYING:
me->SetDisableGravity(true);
me->SetByteFlag(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND);
- me->SetCanFly(true);
- me->SendMovementFlagUpdate();
me->GetMotionMaster()->MovePoint(POINT_AIR, airPos);
break;
case EVENT_AIR_FLY_DOWN:
@@ -480,7 +470,7 @@ class boss_blood_queen_lana_thel : public CreatureScript
for (std::list<HostileReference*>::const_iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr)
if (Unit* refTarget = (*itr)->getTarget())
- if (refTarget != me->getVictim() && refTarget->GetTypeId() == TYPEID_PLAYER && (includeOfftank || (refTarget != _offtank)))
+ if (refTarget != me->GetVictim() && refTarget->GetTypeId() == TYPEID_PLAYER && (includeOfftank || (refTarget != _offtank)))
tempTargets.push_back(refTarget->ToPlayer());
if (tempTargets.empty())
@@ -494,7 +484,7 @@ class boss_blood_queen_lana_thel : public CreatureScript
if (includeOfftank)
{
- tempTargets.sort(Trinity::ObjectDistanceOrderPred(me->getVictim()));
+ tempTargets.sort(Trinity::ObjectDistanceOrderPred(me->GetVictim()));
return tempTargets.front();
}
@@ -508,7 +498,7 @@ class boss_blood_queen_lana_thel : public CreatureScript
bool _killMinchar;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<boss_blood_queen_lana_thelAI>(creature);
}
@@ -526,7 +516,7 @@ class spell_blood_queen_vampiric_bite : public SpellScriptLoader
{
PrepareSpellScript(spell_blood_queen_vampiric_bite_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_ESSENCE_OF_THE_BLOOD_QUEEN_PLR))
return false;
@@ -580,7 +570,7 @@ class spell_blood_queen_vampiric_bite : public SpellScriptLoader
GetHitUnit()->CastSpell(GetHitUnit(), SPELL_PRESENCE_OF_THE_DARKFALLEN_2, TRIGGERED_FULL_MASK);
}
- void Register()
+ void Register() OVERRIDE
{
OnCheckCast += SpellCheckCastFn(spell_blood_queen_vampiric_bite_SpellScript::CheckTarget);
BeforeHit += SpellHitFn(spell_blood_queen_vampiric_bite_SpellScript::OnCast);
@@ -588,7 +578,7 @@ class spell_blood_queen_vampiric_bite : public SpellScriptLoader
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_blood_queen_vampiric_bite_SpellScript();
}
@@ -626,14 +616,14 @@ class spell_blood_queen_frenzied_bloodthirst : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectApply += AuraEffectApplyFn(spell_blood_queen_frenzied_bloodthirst_AuraScript::OnApply, EFFECT_0, SPELL_AURA_OVERRIDE_SPELLS, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_blood_queen_frenzied_bloodthirst_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_OVERRIDE_SPELLS, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_blood_queen_frenzied_bloodthirst_AuraScript();
}
@@ -662,14 +652,14 @@ class spell_blood_queen_bloodbolt : public SpellScriptLoader
{
PrepareSpellScript(spell_blood_queen_bloodbolt_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_TWILIGHT_BLOODBOLT))
return false;
return true;
}
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetEntry() == NPC_BLOOD_QUEEN_LANA_THEL;
}
@@ -690,14 +680,14 @@ class spell_blood_queen_bloodbolt : public SpellScriptLoader
GetCaster()->CastSpell(GetHitUnit(), SPELL_TWILIGHT_BLOODBOLT, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_blood_queen_bloodbolt_SpellScript::FilterTargets, EFFECT_1, TARGET_UNIT_SRC_AREA_ENEMY);
OnEffectHitTarget += SpellEffectFn(spell_blood_queen_bloodbolt_SpellScript::HandleScript, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_blood_queen_bloodbolt_SpellScript();
}
@@ -713,7 +703,7 @@ class spell_blood_queen_essence_of_the_blood_queen : public SpellScriptLoader
{
PrepareAuraScript(spell_blood_queen_essence_of_the_blood_queen_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_ESSENCE_OF_THE_BLOOD_QUEEN_HEAL))
return false;
@@ -727,13 +717,13 @@ class spell_blood_queen_essence_of_the_blood_queen : public SpellScriptLoader
GetTarget()->CastCustomSpell(SPELL_ESSENCE_OF_THE_BLOOD_QUEEN_HEAL, SPELLVALUE_BASE_POINT0, heal, GetTarget(), TRIGGERED_FULL_MASK, NULL, aurEff);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectProc += AuraEffectProcFn(spell_blood_queen_essence_of_the_blood_queen_AuraScript::OnProc, EFFECT_1, SPELL_AURA_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_blood_queen_essence_of_the_blood_queen_AuraScript();
}
@@ -775,13 +765,13 @@ class spell_blood_queen_pact_of_the_darkfallen : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_blood_queen_pact_of_the_darkfallen_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ALLY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_blood_queen_pact_of_the_darkfallen_SpellScript();
}
@@ -796,7 +786,7 @@ class spell_blood_queen_pact_of_the_darkfallen_dmg : public SpellScriptLoader
{
PrepareAuraScript(spell_blood_queen_pact_of_the_darkfallen_dmg_AuraScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_PACT_OF_THE_DARKFALLEN_DAMAGE))
return false;
@@ -813,13 +803,13 @@ class spell_blood_queen_pact_of_the_darkfallen_dmg : public SpellScriptLoader
GetTarget()->CastCustomSpell(SPELL_PACT_OF_THE_DARKFALLEN_DAMAGE, SPELLVALUE_BASE_POINT0, damage, GetTarget(), true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_blood_queen_pact_of_the_darkfallen_dmg_AuraScript::PeriodicTick, EFFECT_1, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_blood_queen_pact_of_the_darkfallen_dmg_AuraScript();
}
@@ -840,13 +830,13 @@ class spell_blood_queen_pact_of_the_darkfallen_dmg_target : public SpellScriptLo
unitList.push_back(GetCaster());
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_blood_queen_pact_of_the_darkfallen_dmg_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ALLY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_blood_queen_pact_of_the_darkfallen_dmg_SpellScript();
}
@@ -857,7 +847,7 @@ class achievement_once_bitten_twice_shy_n : public AchievementCriteriaScript
public:
achievement_once_bitten_twice_shy_n() : AchievementCriteriaScript("achievement_once_bitten_twice_shy_n") { }
- bool OnCheck(Player* source, Unit* target)
+ bool OnCheck(Player* source, Unit* target) OVERRIDE
{
if (!target)
return false;
@@ -873,7 +863,7 @@ class achievement_once_bitten_twice_shy_v : public AchievementCriteriaScript
public:
achievement_once_bitten_twice_shy_v() : AchievementCriteriaScript("achievement_once_bitten_twice_shy_v") { }
- bool OnCheck(Player* source, Unit* target)
+ bool OnCheck(Player* source, Unit* target) OVERRIDE
{
if (!target)
return false;
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
index f01c28766f9..0f46888fbe7 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
@@ -199,7 +199,10 @@ enum Actions
ACTION_MARK_OF_THE_FALLEN_CHAMPION = -72293,
};
-#define DATA_MADE_A_MESS 45374613 // 4537, 4613 are achievement IDs
+enum Misc
+{
+ DATA_MADE_A_MESS = 45374613 // 4537, 4613 are achievement IDs
+};
enum MovePoints
{
@@ -251,7 +254,7 @@ class boss_deathbringer_saurfang : public CreatureScript
_fallenChampionCastCount = 0;
}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
me->SetReactState(REACT_DEFENSIVE);
@@ -268,7 +271,7 @@ class boss_deathbringer_saurfang : public CreatureScript
me->RemoveAurasDueToSpell(SPELL_FRENZY);
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (_dead)
return;
@@ -308,11 +311,11 @@ class boss_deathbringer_saurfang : public CreatureScript
instance->SetBossState(DATA_DEATHBRINGER_SAURFANG, IN_PROGRESS);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
}
- void AttackStart(Unit* victim)
+ void AttackStart(Unit* victim) OVERRIDE
{
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC))
return;
@@ -320,27 +323,27 @@ class boss_deathbringer_saurfang : public CreatureScript
ScriptedAI::AttackStart(victim);
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
ScriptedAI::EnterEvadeMode();
if (_introDone)
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
_JustReachedHome();
instance->SetBossState(DATA_DEATHBRINGER_SAURFANG, FAIL);
instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_MARK_OF_THE_FALLEN_CHAMPION);
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
if (victim->GetTypeId() == TYPEID_PLAYER)
Talk(SAY_KILL);
}
- void DamageTaken(Unit* /*attacker*/, uint32& damage)
+ void DamageTaken(Unit* /*attacker*/, uint32& damage) OVERRIDE
{
if (damage >= me->GetHealth())
damage = me->GetHealth() - 1;
@@ -370,7 +373,7 @@ class boss_deathbringer_saurfang : public CreatureScript
}
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 0.0f, true))
summon->AI()->AttackStart(target);
@@ -381,12 +384,12 @@ class boss_deathbringer_saurfang : public CreatureScript
DoZoneInCombat(summon);
}
- void SummonedCreatureDies(Creature* summon, Unit* /*killer*/)
+ void SummonedCreatureDies(Creature* summon, Unit* /*killer*/) OVERRIDE
{
summons.Despawn(summon);
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type != POINT_MOTION_TYPE && id != POINT_SAURFANG)
return;
@@ -394,7 +397,7 @@ class boss_deathbringer_saurfang : public CreatureScript
instance->HandleGameObject(instance->GetData64(GO_SAURFANG_S_DOOR), false);
}
- void SpellHitTarget(Unit* target, SpellInfo const* spell)
+ void SpellHitTarget(Unit* target, SpellInfo const* spell) OVERRIDE
{
switch (spell->Id)
{
@@ -413,14 +416,14 @@ class boss_deathbringer_saurfang : public CreatureScript
}
}
- void SpellHit(Unit* /*caster*/, SpellInfo const* spell)
+ void SpellHit(Unit* /*caster*/, SpellInfo const* spell) OVERRIDE
{
if (spell->Id == SPELL_BLOOD_LINK_POWER)
if (Aura* bloodPower = me->GetAura(SPELL_BLOOD_POWER))
bloodPower->RecalculateAmountOfEffects();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim() && !(events.IsInPhase(PHASE_INTRO_A) || events.IsInPhase(PHASE_INTRO_H)))
return;
@@ -502,7 +505,7 @@ class boss_deathbringer_saurfang : public CreatureScript
DoMeleeAttackIfReady();
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
if (type == DATA_MADE_A_MESS)
if (_fallenChampionCastCount < RAID_MODE<uint32>(3, 5, 3, 5))
@@ -512,7 +515,7 @@ class boss_deathbringer_saurfang : public CreatureScript
}
// intro setup
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -577,7 +580,7 @@ class boss_deathbringer_saurfang : public CreatureScript
bool _dead;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<boss_deathbringer_saurfangAI>(creature);
}
@@ -598,12 +601,12 @@ class npc_high_overlord_saurfang_icc : public CreatureScript
_instance = me->GetInstanceScript();
}
- void Reset()
+ void Reset() OVERRIDE
{
_events.Reset();
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -654,7 +657,7 @@ class npc_high_overlord_saurfang_icc : public CreatureScript
}
}
- void SpellHit(Unit* /*caster*/, SpellInfo const* spell)
+ void SpellHit(Unit* /*caster*/, SpellInfo const* spell) OVERRIDE
{
if (spell->Id == SPELL_GRIP_OF_AGONY)
{
@@ -663,7 +666,7 @@ class npc_high_overlord_saurfang_icc : public CreatureScript
}
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type == POINT_MOTION_TYPE)
{
@@ -708,7 +711,7 @@ class npc_high_overlord_saurfang_icc : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
_events.Update(diff);
while (uint32 eventId = _events.ExecuteEvent())
@@ -767,7 +770,7 @@ class npc_high_overlord_saurfang_icc : public CreatureScript
std::list<Creature*> _guardList;
};
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
InstanceScript* instance = creature->GetInstanceScript();
if (instance && instance->GetBossState(DATA_DEATHBRINGER_SAURFANG) != DONE)
@@ -779,7 +782,7 @@ class npc_high_overlord_saurfang_icc : public CreatureScript
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
player->CLOSE_GOSSIP_MENU();
@@ -789,7 +792,7 @@ class npc_high_overlord_saurfang_icc : public CreatureScript
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_high_overlord_saurfangAI>(creature);
}
@@ -807,12 +810,12 @@ class npc_muradin_bronzebeard_icc : public CreatureScript
_instance = me->GetInstanceScript();
}
- void Reset()
+ void Reset() OVERRIDE
{
_events.Reset();
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -859,7 +862,7 @@ class npc_muradin_bronzebeard_icc : public CreatureScript
}
}
- void SpellHit(Unit* /*caster*/, SpellInfo const* spell)
+ void SpellHit(Unit* /*caster*/, SpellInfo const* spell) OVERRIDE
{
if (spell->Id == SPELL_GRIP_OF_AGONY)
{
@@ -868,7 +871,7 @@ class npc_muradin_bronzebeard_icc : public CreatureScript
}
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type == POINT_MOTION_TYPE && id == POINT_FIRST_STEP)
{
@@ -888,7 +891,7 @@ class npc_muradin_bronzebeard_icc : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
_events.Update(diff);
while (uint32 eventId = _events.ExecuteEvent())
@@ -915,7 +918,7 @@ class npc_muradin_bronzebeard_icc : public CreatureScript
std::list<Creature*> _guardList;
};
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
InstanceScript* instance = creature->GetInstanceScript();
if (instance && instance->GetBossState(DATA_DEATHBRINGER_SAURFANG) != DONE)
@@ -927,7 +930,7 @@ class npc_muradin_bronzebeard_icc : public CreatureScript
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
player->CLOSE_GOSSIP_MENU();
@@ -937,7 +940,7 @@ class npc_muradin_bronzebeard_icc : public CreatureScript
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_muradin_bronzebeard_iccAI>(creature);
}
@@ -955,13 +958,13 @@ class npc_saurfang_event : public CreatureScript
_index = 0;
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
ASSERT(!type && data && data < 6);
_index = data;
}
- void SpellHit(Unit* /*caster*/, SpellInfo const* spell)
+ void SpellHit(Unit* /*caster*/, SpellInfo const* spell) OVERRIDE
{
if (spell->Id == SPELL_GRIP_OF_AGONY)
{
@@ -970,7 +973,7 @@ class npc_saurfang_event : public CreatureScript
}
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
if (action == ACTION_CHARGE && _index)
me->GetMotionMaster()->MoveCharge(chargePos[_index].GetPositionX(), chargePos[_index].GetPositionY(), chargePos[_index].GetPositionZ(), 13.0f, POINT_CHARGE);
@@ -982,7 +985,7 @@ class npc_saurfang_event : public CreatureScript
uint32 _index;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_saurfang_eventAI>(creature);
}
@@ -997,7 +1000,7 @@ class spell_deathbringer_blood_link : public SpellScriptLoader
{
PrepareSpellScript(spell_deathbringer_blood_link_SpellScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_BLOOD_LINK_POWER))
return false;
@@ -1012,13 +1015,13 @@ class spell_deathbringer_blood_link : public SpellScriptLoader
PreventHitDefaultEffect(EFFECT_0);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_deathbringer_blood_link_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_deathbringer_blood_link_SpellScript();
}
@@ -1033,7 +1036,7 @@ class spell_deathbringer_blood_link_aura : public SpellScriptLoader
{
PrepareAuraScript(spell_deathbringer_blood_link_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_MARK_OF_THE_FALLEN_CHAMPION))
return false;
@@ -1048,13 +1051,13 @@ class spell_deathbringer_blood_link_aura : public SpellScriptLoader
saurfang->AI()->DoAction(ACTION_MARK_OF_THE_FALLEN_CHAMPION);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_deathbringer_blood_link_AuraScript::HandlePeriodicTick, EFFECT_1, SPELL_AURA_PERIODIC_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_deathbringer_blood_link_AuraScript();
}
@@ -1075,7 +1078,7 @@ class spell_deathbringer_blood_power : public SpellScriptLoader
aura->RecalculateAmountOfEffects();
}
- void Register()
+ void Register() OVERRIDE
{
AfterHit += SpellHitFn(spell_deathbringer_blood_power_SpellScript::ModAuraValue);
}
@@ -1091,19 +1094,19 @@ class spell_deathbringer_blood_power : public SpellScriptLoader
canBeRecalculated = true;
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_deathbringer_blood_power_AuraScript::RecalculateHook, EFFECT_0, SPELL_AURA_MOD_SCALE);
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_deathbringer_blood_power_AuraScript::RecalculateHook, EFFECT_1, SPELL_AURA_MOD_DAMAGE_PERCENT_DONE);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_deathbringer_blood_power_SpellScript();
}
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_deathbringer_blood_power_AuraScript();
}
@@ -1118,7 +1121,7 @@ class spell_deathbringer_rune_of_blood : public SpellScriptLoader
{
PrepareSpellScript(spell_deathbringer_rune_of_blood_SpellScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_BLOOD_LINK_DUMMY))
return false;
@@ -1132,13 +1135,13 @@ class spell_deathbringer_rune_of_blood : public SpellScriptLoader
GetHitUnit()->CastCustomSpell(SPELL_BLOOD_LINK_DUMMY, SPELLVALUE_BASE_POINT0, 1, GetCaster(), true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_deathbringer_rune_of_blood_SpellScript::HandleScript, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_deathbringer_rune_of_blood_SpellScript();
}
@@ -1153,7 +1156,7 @@ class spell_deathbringer_blood_nova : public SpellScriptLoader
{
PrepareSpellScript(spell_deathbringer_blood_nova_SpellScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_BLOOD_LINK_DUMMY))
return false;
@@ -1167,13 +1170,13 @@ class spell_deathbringer_blood_nova : public SpellScriptLoader
GetHitUnit()->CastCustomSpell(SPELL_BLOOD_LINK_DUMMY, SPELLVALUE_BASE_POINT0, 2, GetCaster(), true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_deathbringer_blood_nova_SpellScript::HandleScript, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_deathbringer_blood_nova_SpellScript();
}
@@ -1188,7 +1191,7 @@ class spell_deathbringer_blood_nova_targeting : public SpellScriptLoader
{
PrepareSpellScript(spell_deathbringer_blood_nova_targeting_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
// initialize variable
target = NULL;
@@ -1242,7 +1245,7 @@ class spell_deathbringer_blood_nova_targeting : public SpellScriptLoader
GetCaster()->CastSpell(GetHitUnit(), uint32(GetEffectValue()), TRIGGERED_FULL_MASK);
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_deathbringer_blood_nova_targeting_SpellScript::FilterTargetsInitial, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_deathbringer_blood_nova_targeting_SpellScript::FilterTargetsSubsequent, EFFECT_1, TARGET_UNIT_SRC_AREA_ENEMY);
@@ -1252,7 +1255,7 @@ class spell_deathbringer_blood_nova_targeting : public SpellScriptLoader
WorldObject* target;
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_deathbringer_blood_nova_targeting_SpellScript();
}
@@ -1267,14 +1270,14 @@ class spell_deathbringer_boiling_blood : public SpellScriptLoader
{
PrepareSpellScript(spell_deathbringer_boiling_blood_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_UNIT;
}
void FilterTargets(std::list<WorldObject*>& targets)
{
- targets.remove(GetCaster()->getVictim());
+ targets.remove(GetCaster()->GetVictim());
if (targets.empty())
return;
@@ -1283,13 +1286,13 @@ class spell_deathbringer_boiling_blood : public SpellScriptLoader
targets.push_back(target);
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_deathbringer_boiling_blood_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_deathbringer_boiling_blood_SpellScript();
}
@@ -1310,13 +1313,13 @@ class spell_deathbringer_remove_marks : public SpellScriptLoader
GetHitUnit()->RemoveAurasDueToSpell(uint32(GetEffectValue()));
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_deathbringer_remove_marks_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_deathbringer_remove_marks_SpellScript();
}
@@ -1327,7 +1330,7 @@ class achievement_ive_gone_and_made_a_mess : public AchievementCriteriaScript
public:
achievement_ive_gone_and_made_a_mess() : AchievementCriteriaScript("achievement_ive_gone_and_made_a_mess") { }
- bool OnCheck(Player* /*source*/, Unit* target)
+ bool OnCheck(Player* /*source*/, Unit* target) OVERRIDE
{
if (target)
if (Creature* saurfang = target->ToCreature())
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp
index 4ec945fcb77..bf85fe455c7 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp
@@ -71,7 +71,10 @@ enum Events
EVENT_MORTAL_WOUND = 7,
};
-#define DATA_INOCULATED_STACK 69291
+enum Misc
+{
+ DATA_INOCULATED_STACK = 69291
+};
class boss_festergut : public CreatureScript
{
@@ -87,7 +90,7 @@ class boss_festergut : public CreatureScript
_gasDummyGUID = 0;
}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
me->SetReactState(REACT_DEFENSIVE);
@@ -109,7 +112,7 @@ class boss_festergut : public CreatureScript
}
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (!instance->CheckRequiredBosses(DATA_FESTERGUT, who->ToPlayer()))
{
@@ -127,7 +130,7 @@ class boss_festergut : public CreatureScript
DoZoneInCombat();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
Talk(SAY_DEATH);
@@ -137,32 +140,32 @@ class boss_festergut : public CreatureScript
RemoveBlight();
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
_JustReachedHome();
instance->SetBossState(DATA_FESTERGUT, FAIL);
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
ScriptedAI::EnterEvadeMode();
if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE)))
professor->AI()->EnterEvadeMode();
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
if (victim->GetTypeId() == TYPEID_PLAYER)
Talk(SAY_KILL);
}
- void SpellHitTarget(Unit* target, SpellInfo const* spell)
+ void SpellHitTarget(Unit* target, SpellInfo const* spell) OVERRIDE
{
if (spell->Id == PUNGENT_BLIGHT_HELPER)
target->RemoveAurasDueToSpell(INOCULATED_HELPER);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim() || !CheckInRoom())
return;
@@ -238,13 +241,13 @@ class boss_festergut : public CreatureScript
DoMeleeAttackIfReady();
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
if (type == DATA_INOCULATED_STACK && data > _maxInoculatedStack)
_maxInoculatedStack = data;
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
if (type == DATA_INOCULATED_STACK)
return uint32(_maxInoculatedStack);
@@ -268,7 +271,7 @@ class boss_festergut : public CreatureScript
uint32 _inhaleCounter;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<boss_festergutAI>(creature);
}
@@ -286,19 +289,19 @@ class npc_stinky_icc : public CreatureScript
_instance = creature->GetInstanceScript();
}
- void Reset()
+ void Reset() OVERRIDE
{
_events.Reset();
_events.ScheduleEvent(EVENT_DECIMATE, urand(20000, 25000));
_events.ScheduleEvent(EVENT_MORTAL_WOUND, urand(3000, 7000));
}
- void EnterCombat(Unit* /*target*/)
+ void EnterCombat(Unit* /*target*/) OVERRIDE
{
DoCast(me, SPELL_PLAGUE_STENCH);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -328,10 +331,10 @@ class npc_stinky_icc : public CreatureScript
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (Creature* festergut = me->GetCreature(*me, _instance->GetData64(DATA_FESTERGUT)))
- if (festergut->isAlive())
+ if (festergut->IsAlive())
festergut->AI()->Talk(SAY_STINKY_DEAD);
}
@@ -340,7 +343,7 @@ class npc_stinky_icc : public CreatureScript
InstanceScript* _instance;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_stinky_iccAI>(creature);
}
@@ -355,7 +358,7 @@ class spell_festergut_pungent_blight : public SpellScriptLoader
{
PrepareSpellScript(spell_festergut_pungent_blight_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_UNIT;
}
@@ -370,13 +373,13 @@ class spell_festergut_pungent_blight : public SpellScriptLoader
GetCaster()->ToCreature()->AI()->Talk(EMOTE_PUNGENT_BLIGHT);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_festergut_pungent_blight_SpellScript::HandleScript, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_festergut_pungent_blight_SpellScript();
}
@@ -391,7 +394,7 @@ class spell_festergut_gastric_bloat : public SpellScriptLoader
{
PrepareSpellScript(spell_festergut_gastric_bloat_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_GASTRIC_EXPLOSION))
return false;
@@ -408,13 +411,13 @@ class spell_festergut_gastric_bloat : public SpellScriptLoader
GetHitUnit()->CastSpell(GetHitUnit(), SPELL_GASTRIC_EXPLOSION, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_festergut_gastric_bloat_SpellScript::HandleScript, EFFECT_2, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_festergut_gastric_bloat_SpellScript();
}
@@ -429,7 +432,7 @@ class spell_festergut_blighted_spores : public SpellScriptLoader
{
PrepareAuraScript(spell_festergut_blighted_spores_AuraScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_INOCULATED))
return false;
@@ -444,13 +447,13 @@ class spell_festergut_blighted_spores : public SpellScriptLoader
festergut->AI()->SetData(DATA_INOCULATED_STACK, GetStackAmount());
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectApply += AuraEffectApplyFn(spell_festergut_blighted_spores_AuraScript::ExtraEffect, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_festergut_blighted_spores_AuraScript();
}
@@ -461,7 +464,7 @@ class achievement_flu_shot_shortage : public AchievementCriteriaScript
public:
achievement_flu_shot_shortage() : AchievementCriteriaScript("achievement_flu_shot_shortage") { }
- bool OnCheck(Player* /*source*/, Unit* target)
+ bool OnCheck(Player* /*source*/, Unit* target) OVERRIDE
{
if (target && target->GetTypeId() == TYPEID_UNIT)
return target->ToCreature()->AI()->GetData(DATA_INOCULATED_STACK) < 3;
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp
index 59c9393c934..0367a29bb30 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp
@@ -220,7 +220,7 @@ class boss_lady_deathwhisper : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
me->SetPower(POWER_MANA, me->GetMaxPower(POWER_MANA));
@@ -235,7 +235,8 @@ class boss_lady_deathwhisper : public CreatureScript
me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_ATTACK_ME, false);
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (!_introDone && me->IsWithinDistInMap(who, 110.0f))
{
@@ -251,7 +252,7 @@ class boss_lady_deathwhisper : public CreatureScript
}
}
- void AttackStart(Unit* victim)
+ void AttackStart(Unit* victim) OVERRIDE
{
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
return;
@@ -260,7 +261,7 @@ class boss_lady_deathwhisper : public CreatureScript
me->GetMotionMaster()->MoveChase(victim);
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (!instance->CheckRequiredBosses(DATA_LADY_DEATHWHISPER, who->ToPlayer()))
{
@@ -292,7 +293,7 @@ class boss_lady_deathwhisper : public CreatureScript
instance->SetBossState(DATA_LADY_DEATHWHISPER, IN_PROGRESS);
}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
Talk(SAY_DEATH);
@@ -300,7 +301,7 @@ class boss_lady_deathwhisper : public CreatureScript
// Full House achievement
for (SummonList::iterator itr = summons.begin(); itr != summons.end(); ++itr)
if (Unit* unit = ObjectAccessor::GetUnit(*me, *itr))
- if (unit->isAlive() && unit->GetEntry() != NPC_VENGEFUL_SHADE)
+ if (unit->IsAlive() && unit->GetEntry() != NPC_VENGEFUL_SHADE)
livingAddEntries.insert(unit->GetEntry());
if (livingAddEntries.size() >= 5)
@@ -308,7 +309,7 @@ class boss_lady_deathwhisper : public CreatureScript
if (Creature* darnavan = ObjectAccessor::GetCreature(*me, _darnavanGUID))
{
- if (darnavan->isAlive())
+ if (darnavan->IsAlive())
{
darnavan->setFaction(35);
darnavan->CombatStop(true);
@@ -321,7 +322,7 @@ class boss_lady_deathwhisper : public CreatureScript
if (Group* group = owner->GetGroup())
{
for (GroupReference* itr = group->GetFirstMember(); itr != NULL; itr = itr->next())
- if (Player* member = itr->getSource())
+ if (Player* member = itr->GetSource())
member->KilledMonsterCredit(NPC_DARNAVAN_CREDIT, 0);
}
else
@@ -333,7 +334,7 @@ class boss_lady_deathwhisper : public CreatureScript
_JustDied();
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
_JustReachedHome();
instance->SetBossState(DATA_LADY_DEATHWHISPER, FAIL);
@@ -346,20 +347,20 @@ class boss_lady_deathwhisper : public CreatureScript
}
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
if (victim->GetTypeId() == TYPEID_PLAYER)
Talk(SAY_KILL);
}
- void DamageTaken(Unit* /*damageDealer*/, uint32& damage)
+ void DamageTaken(Unit* /*damageDealer*/, uint32& damage) OVERRIDE
{
// phase transition
if (events.IsInPhase(PHASE_ONE) && damage > me->GetPower(POWER_MANA))
{
Talk(SAY_PHASE_2);
Talk(EMOTE_PHASE_2);
- DoStartMovement(me->getVictim());
+ DoStartMovement(me->GetVictim());
damage -= me->GetPower(POWER_MANA);
me->SetPower(POWER_MANA, 0);
me->RemoveAurasDueToSpell(SPELL_MANA_BARRIER);
@@ -378,7 +379,7 @@ class boss_lady_deathwhisper : public CreatureScript
}
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
if (summon->GetEntry() == NPC_DARNAVAN)
_darnavanGUID = summon->GetGUID();
@@ -401,7 +402,7 @@ class boss_lady_deathwhisper : public CreatureScript
summon->CastSpell(summon, SPELL_ADHERENT_S_DETERMINATION, true);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if ((!UpdateVictim() && !events.IsInPhase(PHASE_INTRO)) || !CheckInRoom())
return;
@@ -547,7 +548,7 @@ class boss_lady_deathwhisper : public CreatureScript
summon->AI()->DoCast(summon, SPELL_TELEPORT_VISUAL);
}
- void SetGUID(uint64 guid, int32 id/* = 0*/)
+ void SetGUID(uint64 guid, int32 id/* = 0*/) OVERRIDE
{
if (id != GUID_CULTIST)
return;
@@ -571,7 +572,7 @@ class boss_lady_deathwhisper : public CreatureScript
DoCast(cultist, SPELL_DARK_MARTYRDOM_T);
}
- void SpellHitTarget(Unit* target, SpellInfo const* spell)
+ void SpellHitTarget(Unit* target, SpellInfo const* spell) OVERRIDE
{
if (spell->Id == SPELL_DARK_MARTYRDOM_T)
{
@@ -595,7 +596,7 @@ class boss_lady_deathwhisper : public CreatureScript
std::list<Creature*> temp;
for (SummonList::iterator itr = summons.begin(); itr != summons.end(); ++itr)
if (Creature* cre = ObjectAccessor::GetCreature(*me, *itr))
- if (cre->isAlive() && (cre->GetEntry() == NPC_CULT_FANATIC || cre->GetEntry() == NPC_CULT_ADHERENT))
+ if (cre->IsAlive() && (cre->GetEntry() == NPC_CULT_FANATIC || cre->GetEntry() == NPC_CULT_ADHERENT))
temp.push_back(cre);
// noone to empower
@@ -617,7 +618,7 @@ class boss_lady_deathwhisper : public CreatureScript
bool _introDone;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<boss_lady_deathwhisperAI>(creature);
}
@@ -634,7 +635,7 @@ class npc_cult_fanatic : public CreatureScript
{
npc_cult_fanaticAI(Creature* creature) : ScriptedAI(creature) {}
- void Reset()
+ void Reset() OVERRIDE
{
Events.Reset();
Events.ScheduleEvent(EVENT_FANATIC_NECROTIC_STRIKE, urand(10000, 12000));
@@ -644,7 +645,7 @@ class npc_cult_fanatic : public CreatureScript
Events.ScheduleEvent(EVENT_CULTIST_DARK_MARTYRDOM, urand(18000, 32000));
}
- void SpellHit(Unit* /*caster*/, SpellInfo const* spell)
+ void SpellHit(Unit* /*caster*/, SpellInfo const* spell) OVERRIDE
{
if (spell->Id == SPELL_DARK_TRANSFORMATION)
me->UpdateEntry(NPC_DEFORMED_FANATIC);
@@ -656,7 +657,7 @@ class npc_cult_fanatic : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -672,7 +673,7 @@ class npc_cult_fanatic : public CreatureScript
{
case EVENT_FANATIC_NECROTIC_STRIKE:
DoCastVictim(SPELL_NECROTIC_STRIKE);
- Events.ScheduleEvent(SPELL_NECROTIC_STRIKE, urand(11000, 13000));
+ Events.ScheduleEvent(EVENT_FANATIC_NECROTIC_STRIKE, urand(11000, 13000));
break;
case EVENT_FANATIC_SHADOW_CLEAVE:
DoCastVictim(SPELL_SHADOW_CLEAVE);
@@ -696,7 +697,7 @@ class npc_cult_fanatic : public CreatureScript
EventMap Events;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_cult_fanaticAI>(creature);
}
@@ -711,7 +712,7 @@ class npc_cult_adherent : public CreatureScript
{
npc_cult_adherentAI(Creature* creature) : ScriptedAI(creature) {}
- void Reset()
+ void Reset() OVERRIDE
{
Events.Reset();
Events.ScheduleEvent(EVENT_ADHERENT_FROST_FEVER, urand(10000, 12000));
@@ -722,7 +723,7 @@ class npc_cult_adherent : public CreatureScript
Events.ScheduleEvent(EVENT_CULTIST_DARK_MARTYRDOM, urand(18000, 32000));
}
- void SpellHit(Unit* /*caster*/, SpellInfo const* spell)
+ void SpellHit(Unit* /*caster*/, SpellInfo const* spell) OVERRIDE
{
if (spell->Id == SPELL_DARK_EMPOWERMENT)
me->UpdateEntry(NPC_EMPOWERED_ADHERENT);
@@ -734,7 +735,7 @@ class npc_cult_adherent : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -782,7 +783,7 @@ class npc_cult_adherent : public CreatureScript
EventMap Events;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_cult_adherentAI>(creature);
}
@@ -801,12 +802,12 @@ class npc_vengeful_shade : public CreatureScript
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
}
- void Reset()
+ void Reset() OVERRIDE
{
me->AddAura(SPELL_VENGEFUL_BLAST_PASSIVE, me);
}
- void SpellHitTarget(Unit* /*target*/, SpellInfo const* spell)
+ void SpellHitTarget(Unit* /*target*/, SpellInfo const* spell) OVERRIDE
{
switch (spell->Id)
{
@@ -822,7 +823,7 @@ class npc_vengeful_shade : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_vengeful_shadeAI>(creature);
}
@@ -839,7 +840,7 @@ class npc_darnavan : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_events.Reset();
_events.ScheduleEvent(EVENT_DARNAVAN_BLADESTORM, 10000);
@@ -850,7 +851,7 @@ class npc_darnavan : public CreatureScript
_canShatter = true;
}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
_events.Reset();
if (Player* owner = killer->GetCharmerOrOwnerPlayerOrPlayerItself())
@@ -858,7 +859,7 @@ class npc_darnavan : public CreatureScript
if (Group* group = owner->GetGroup())
{
for (GroupReference* itr = group->GetFirstMember(); itr != NULL; itr = itr->next())
- if (Player* member = itr->getSource())
+ if (Player* member = itr->GetSource())
member->FailQuest(QUEST_DEPROGRAMMING);
}
else
@@ -866,7 +867,7 @@ class npc_darnavan : public CreatureScript
}
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type != POINT_MOTION_TYPE || id != POINT_DESPAWN)
return;
@@ -874,12 +875,12 @@ class npc_darnavan : public CreatureScript
me->DespawnOrUnsummon();
}
- void EnterCombat(Unit* /*victim*/)
+ void EnterCombat(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_DARNAVAN_AGGRO);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -889,7 +890,7 @@ class npc_darnavan : public CreatureScript
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
- if (_canShatter && me->getVictim() && me->getVictim()->IsImmunedToDamage(SPELL_SCHOOL_MASK_NORMAL))
+ if (_canShatter && me->GetVictim() && me->GetVictim()->IsImmunedToDamage(SPELL_SCHOOL_MASK_NORMAL))
{
DoCastVictim(SPELL_SHATTERING_THROW);
_canShatter = false;
@@ -897,7 +898,7 @@ class npc_darnavan : public CreatureScript
return;
}
- if (_canCharge && !me->IsWithinMeleeRange(me->getVictim()))
+ if (_canCharge && !me->IsWithinMeleeRange(me->GetVictim()))
{
DoCastVictim(SPELL_CHARGE);
_canCharge = false;
@@ -943,7 +944,7 @@ class npc_darnavan : public CreatureScript
bool _canShatter;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_darnavanAI>(creature);
}
@@ -969,13 +970,13 @@ class spell_deathwhisper_mana_barrier : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_deathwhisper_mana_barrier_AuraScript::HandlePeriodicTick, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_deathwhisper_mana_barrier_AuraScript();
}
@@ -992,7 +993,7 @@ class spell_cultist_dark_martyrdom : public SpellScriptLoader
void HandleEffect(SpellEffIndex /*effIndex*/)
{
- if (GetCaster()->isSummon())
+ if (GetCaster()->IsSummon())
if (Unit* owner = GetCaster()->ToTempSummon()->GetSummoner())
owner->GetAI()->SetGUID(GetCaster()->GetGUID(), GUID_CULTIST);
@@ -1000,13 +1001,13 @@ class spell_cultist_dark_martyrdom : public SpellScriptLoader
GetCaster()->SetDisplayId(uint32(GetCaster()->GetEntry() == NPC_CULT_FANATIC ? 38009 : 38010));
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_cultist_dark_martyrdom_SpellScript::HandleEffect, EFFECT_2, SPELL_EFFECT_FORCE_DESELECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_cultist_dark_martyrdom_SpellScript();
}
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp
index 7d508b154eb..42bb8acbf07 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp
@@ -135,7 +135,7 @@ class boss_lord_marrowgar : public CreatureScript
_boneSlice = false;
}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
me->SetSpeed(MOVE_RUN, _baseSpeed, true);
@@ -150,7 +150,7 @@ class boss_lord_marrowgar : public CreatureScript
_boneSpikeImmune.clear();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
@@ -159,27 +159,28 @@ class boss_lord_marrowgar : public CreatureScript
instance->SetBossState(DATA_LORD_MARROWGAR, IN_PROGRESS);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
_JustDied();
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
_JustReachedHome();
instance->SetBossState(DATA_LORD_MARROWGAR, FAIL);
instance->SetData(DATA_BONED_ACHIEVEMENT, uint32(true)); // reset
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
if (victim->GetTypeId() == TYPEID_PLAYER)
Talk(SAY_KILL);
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (!_introDone && me->IsWithinDistInMap(who, 70.0f))
{
@@ -188,7 +189,7 @@ class boss_lord_marrowgar : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim() || !CheckInRoom())
return;
@@ -245,7 +246,7 @@ class boss_lord_marrowgar : public CreatureScript
case EVENT_BONE_STORM_END:
if (me->GetMotionMaster()->GetCurrentMovementGeneratorType() == POINT_MOTION_TYPE)
me->GetMotionMaster()->MovementExpired();
- me->GetMotionMaster()->MoveChase(me->getVictim());
+ me->GetMotionMaster()->MoveChase(me->GetVictim());
me->SetSpeed(MOVE_RUN, _baseSpeed, true);
events.CancelEvent(EVENT_BONE_STORM_MOVE);
events.ScheduleEvent(EVENT_ENABLE_BONE_SLICE, 10000);
@@ -273,7 +274,7 @@ class boss_lord_marrowgar : public CreatureScript
DoMeleeAttackIfReady();
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type != POINT_MOTION_TYPE || id != POINT_TARGET_BONESTORM_PLAYER)
return;
@@ -287,7 +288,7 @@ class boss_lord_marrowgar : public CreatureScript
return &_coldflameLastPos;
}
- uint64 GetGUID(int32 type /*= 0 */) const
+ uint64 GetGUID(int32 type /*= 0 */) const OVERRIDE
{
switch (type)
{
@@ -308,7 +309,7 @@ class boss_lord_marrowgar : public CreatureScript
return 0LL;
}
- void SetGUID(uint64 guid, int32 type /*= 0 */)
+ void SetGUID(uint64 guid, int32 type /*= 0 */) OVERRIDE
{
switch (type)
{
@@ -321,7 +322,7 @@ class boss_lord_marrowgar : public CreatureScript
}
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
if (action != ACTION_CLEAR_SPIKE_IMMUNITIES)
return;
@@ -339,7 +340,7 @@ class boss_lord_marrowgar : public CreatureScript
bool _boneSlice;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<boss_lord_marrowgarAI>(creature);
}
@@ -358,7 +359,7 @@ class npc_coldflame : public CreatureScript
{
}
- void IsSummonedBy(Unit* owner)
+ void IsSummonedBy(Unit* owner) OVERRIDE
{
if (owner->GetTypeId() != TYPEID_UNIT)
return;
@@ -394,7 +395,7 @@ class npc_coldflame : public CreatureScript
_events.ScheduleEvent(EVENT_COLDFLAME_TRIGGER, 500);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
_events.Update(diff);
@@ -412,7 +413,7 @@ class npc_coldflame : public CreatureScript
EventMap _events;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_coldflameAI>(creature);
}
@@ -432,7 +433,7 @@ class npc_bone_spike : public CreatureScript
SetCombatMovement(false);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (TempSummon* summ = me->ToTempSummon())
if (Unit* trapped = summ->GetSummoner())
@@ -441,13 +442,13 @@ class npc_bone_spike : public CreatureScript
me->DespawnOrUnsummon();
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
me->DespawnOrUnsummon();
victim->RemoveAurasDueToSpell(SPELL_IMPALED);
}
- void IsSummonedBy(Unit* summoner)
+ void IsSummonedBy(Unit* summoner) OVERRIDE
{
DoCast(summoner, SPELL_IMPALED);
summoner->CastSpell(me, SPELL_RIDE_VEHICLE, true);
@@ -455,7 +456,7 @@ class npc_bone_spike : public CreatureScript
_hasTrappedUnit = true;
}
- void PassengerBoarded(Unit* passenger, int8 /*seat*/, bool apply)
+ void PassengerBoarded(Unit* passenger, int8 /*seat*/, bool apply) OVERRIDE
{
if (!apply)
return;
@@ -467,13 +468,9 @@ class npc_bone_spike : public CreatureScript
init.DisableTransportPathTransformations();
init.MoveTo(-0.02206125f, -0.02132235f, 5.514783f, false);
init.Launch();
-
- /// @WORKAROUND - Clear ON VEHICLE state to allow healing (Invalid target errors)
- /// Current rule for applying this state is questionable (seatFlags & VEHICLE_SEAT_FLAG_ALLOW_TURNING ???)
- passenger->ClearUnitState(UNIT_STATE_ONVEHICLE);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!_hasTrappedUnit)
return;
@@ -490,7 +487,7 @@ class npc_bone_spike : public CreatureScript
bool _hasTrappedUnit;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_bone_spikeAI>(creature);
}
@@ -525,14 +522,14 @@ class spell_marrowgar_coldflame : public SpellScriptLoader
GetCaster()->CastSpell(GetHitUnit(), uint32(GetEffectValue()), true);
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_marrowgar_coldflame_SpellScript::SelectTarget, EFFECT_0, TARGET_UNIT_DEST_AREA_ENEMY);
OnEffectHitTarget += SpellEffectFn(spell_marrowgar_coldflame_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_marrowgar_coldflame_SpellScript();
}
@@ -554,13 +551,13 @@ class spell_marrowgar_coldflame_bonestorm : public SpellScriptLoader
GetCaster()->CastSpell(GetHitUnit(), uint32(GetEffectValue() + i), true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_marrowgar_coldflame_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_marrowgar_coldflame_SpellScript();
}
@@ -590,13 +587,13 @@ class spell_marrowgar_coldflame_damage : public SpellScriptLoader
return true;
}
- void Register()
+ void Register() OVERRIDE
{
DoCheckAreaTarget += AuraCheckAreaTargetFn(spell_marrowgar_coldflame_damage_AuraScript::CanBeAppliedOn);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_marrowgar_coldflame_damage_AuraScript();
}
@@ -611,7 +608,7 @@ class spell_marrowgar_bone_spike_graveyard : public SpellScriptLoader
{
PrepareSpellScript(spell_marrowgar_bone_spike_graveyard_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
for (uint32 i = 0; i < 3; ++i)
if (!sSpellMgr->GetSpellInfo(BoneSpikeSummonId[i]))
@@ -620,7 +617,7 @@ class spell_marrowgar_bone_spike_graveyard : public SpellScriptLoader
return true;
}
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_UNIT && GetCaster()->IsAIEnabled;
}
@@ -654,14 +651,14 @@ class spell_marrowgar_bone_spike_graveyard : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnCheckCast += SpellCheckCastFn(spell_marrowgar_bone_spike_graveyard_SpellScript::CheckCast);
OnEffectHitTarget += SpellEffectFn(spell_marrowgar_bone_spike_graveyard_SpellScript::HandleSpikes, EFFECT_1, SPELL_EFFECT_APPLY_AURA);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_marrowgar_bone_spike_graveyard_SpellScript();
}
@@ -681,13 +678,13 @@ class spell_marrowgar_bone_storm : public SpellScriptLoader
SetHitDamage(int32(GetHitDamage() / std::max(sqrtf(GetHitUnit()->GetExactDist2d(GetCaster())), 1.0f)));
}
- void Register()
+ void Register() OVERRIDE
{
OnHit += SpellHitFn(spell_marrowgar_bone_storm_SpellScript::RecalculateDamage);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_marrowgar_bone_storm_SpellScript();
}
@@ -702,7 +699,7 @@ class spell_marrowgar_bone_slice : public SpellScriptLoader
{
PrepareSpellScript(spell_marrowgar_bone_slice_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
_targetCount = 0;
return true;
@@ -729,7 +726,7 @@ class spell_marrowgar_bone_slice : public SpellScriptLoader
SetHitDamage(GetHitDamage() / _targetCount);
}
- void Register()
+ void Register() OVERRIDE
{
BeforeCast += SpellCastFn(spell_marrowgar_bone_slice_SpellScript::ClearSpikeImmunities);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_marrowgar_bone_slice_SpellScript::CountTargets, EFFECT_0, TARGET_UNIT_DEST_AREA_ENEMY);
@@ -739,7 +736,7 @@ class spell_marrowgar_bone_slice : public SpellScriptLoader
uint32 _targetCount;
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_marrowgar_bone_slice_SpellScript();
}
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
index cab02c9ca75..8e783fa9361 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
@@ -228,7 +228,7 @@ class boss_professor_putricide : public CreatureScript
_phase = PHASE_NONE;
}
- void Reset()
+ void Reset() OVERRIDE
{
if (!(events.IsInPhase(PHASE_ROTFACE) || events.IsInPhase(PHASE_FESTERGUT)))
instance->SetBossState(DATA_PROFESSOR_PUTRICIDE, NOT_STARTED);
@@ -247,7 +247,7 @@ class boss_professor_putricide : public CreatureScript
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_NOT_SELECTABLE);
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (events.IsInPhase(PHASE_ROTFACE) || events.IsInPhase(PHASE_FESTERGUT))
return;
@@ -275,7 +275,7 @@ class boss_professor_putricide : public CreatureScript
instance->SetBossState(DATA_PROFESSOR_PUTRICIDE, IN_PROGRESS);
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
_JustReachedHome();
me->SetWalk(false);
@@ -283,13 +283,13 @@ class boss_professor_putricide : public CreatureScript
instance->SetBossState(DATA_PROFESSOR_PUTRICIDE, FAIL);
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
if (victim->GetTypeId() == TYPEID_PLAYER)
Talk(SAY_KILL);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
Talk(SAY_DEATH);
@@ -300,7 +300,7 @@ class boss_professor_putricide : public CreatureScript
DoCast(SPELL_MUTATED_PLAGUE_CLEAR);
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
summons.Summon(summon);
switch (summon->GetEntry())
@@ -337,11 +337,11 @@ class boss_professor_putricide : public CreatureScript
break;
}
- if (me->isInCombat())
+ if (me->IsInCombat())
DoZoneInCombat(summon);
}
- void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/)
+ void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/) OVERRIDE
{
switch (_phase)
{
@@ -362,7 +362,7 @@ class boss_professor_putricide : public CreatureScript
}
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type != POINT_MOTION_TYPE)
return;
@@ -413,7 +413,7 @@ class boss_professor_putricide : public CreatureScript
}
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -540,7 +540,7 @@ class boss_professor_putricide : public CreatureScript
}
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -557,13 +557,13 @@ class boss_professor_putricide : public CreatureScript
return 0;
}
- void SetData(uint32 id, uint32 data)
+ void SetData(uint32 id, uint32 data) OVERRIDE
{
if (id == DATA_EXPERIMENT_STAGE)
_experimentState = bool(data);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if ((!(events.IsInPhase(PHASE_ROTFACE) || events.IsInPhase(PHASE_FESTERGUT)) && !UpdateVictim()) || !CheckInRoom())
return;
@@ -624,7 +624,7 @@ class boss_professor_putricide : public CreatureScript
break;
case EVENT_RESUME_ATTACK:
me->SetReactState(REACT_DEFENSIVE);
- AttackStart(me->getVictim());
+ AttackStart(me->GetVictim());
// remove Tear Gas
me->RemoveAurasDueToSpell(SPELL_TEAR_GAS_PERIODIC_TRIGGER);
instance->DoRemoveAurasDueToSpellOnPlayers(71615);
@@ -716,7 +716,7 @@ class boss_professor_putricide : public CreatureScript
bool _experimentState;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<boss_professor_putricideAI>(creature);
}
@@ -730,19 +730,19 @@ class npc_putricide_oozeAI : public ScriptedAI
{
}
- void SpellHitTarget(Unit* /*target*/, SpellInfo const* spell)
+ void SpellHitTarget(Unit* /*target*/, SpellInfo const* spell) OVERRIDE
{
if (!_newTargetSelectTimer && spell->Id == sSpellMgr->GetSpellIdForDifficulty(_hitTargetSpellId, me))
_newTargetSelectTimer = 1000;
}
- void SpellHit(Unit* /*caster*/, SpellInfo const* spell)
+ void SpellHit(Unit* /*caster*/, SpellInfo const* spell) OVERRIDE
{
if (spell->Id == SPELL_TEAR_GAS_CREATURE)
_newTargetSelectTimer = 1000;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim() && !_newTargetSelectTimer)
return;
@@ -791,7 +791,7 @@ class npc_volatile_ooze : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_volatile_oozeAI>(creature);
}
@@ -818,7 +818,7 @@ class npc_gas_cloud : public CreatureScript
uint32 _newTargetSelectTimer;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_gas_cloudAI>(creature);
}
@@ -844,13 +844,13 @@ class spell_putricide_gaseous_bloat : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_putricide_gaseous_bloat_AuraScript::HandleExtraEffect, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_putricide_gaseous_bloat_AuraScript();
}
@@ -865,7 +865,7 @@ class spell_putricide_ooze_channel : public SpellScriptLoader
{
PrepareSpellScript(spell_putricide_ooze_channel_SpellScript);
- bool Validate(SpellInfo const* spell)
+ bool Validate(SpellInfo const* spell) OVERRIDE
{
if (!spell->ExcludeTargetAuraSpell)
return false;
@@ -876,7 +876,7 @@ class spell_putricide_ooze_channel : public SpellScriptLoader
// set up initial variables and check if caster is creature
// this will let use safely use ToCreature() casts in entire script
- bool Load()
+ bool Load() OVERRIDE
{
_target = NULL;
return GetCaster()->GetTypeId() == TYPEID_UNIT;
@@ -912,7 +912,7 @@ class spell_putricide_ooze_channel : public SpellScriptLoader
GetCaster()->AddThreat(GetHitUnit(), 500000000.0f); // value seen in sniff
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_putricide_ooze_channel_SpellScript::SelectTarget, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_putricide_ooze_channel_SpellScript::SetTarget, EFFECT_1, TARGET_UNIT_SRC_AREA_ENEMY);
@@ -923,7 +923,7 @@ class spell_putricide_ooze_channel : public SpellScriptLoader
WorldObject* _target;
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_putricide_ooze_channel_SpellScript();
}
@@ -958,14 +958,14 @@ class spell_putricide_slime_puddle : public SpellScriptLoader
targets.remove_if(ExactDistanceCheck(GetCaster(), 2.5f * GetCaster()->GetFloatValue(OBJECT_FIELD_SCALE_X)));
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_putricide_slime_puddle_SpellScript::ScaleRange, EFFECT_0, TARGET_UNIT_DEST_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_putricide_slime_puddle_SpellScript::ScaleRange, EFFECT_1, TARGET_UNIT_DEST_AREA_ENTRY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_putricide_slime_puddle_SpellScript();
}
@@ -987,13 +987,13 @@ class spell_putricide_slime_puddle_aura : public SpellScriptLoader
GetCaster()->AddAura((GetCaster()->GetMap()->GetSpawnMode() & 1) ? 72456 : 70346, target);
}
- void Register()
+ void Register() OVERRIDE
{
OnHit += SpellHitFn(spell_putricide_slime_puddle_aura_SpellScript::ReplaceAura);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_putricide_slime_puddle_aura_SpellScript();
}
@@ -1035,13 +1035,13 @@ class spell_putricide_unstable_experiment : public SpellScriptLoader
GetCaster()->CastSpell(target, uint32(GetSpellInfo()->Effects[stage].CalcValue()), true, NULL, NULL, GetCaster()->GetGUID());
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_putricide_unstable_experiment_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_putricide_unstable_experiment_SpellScript();
}
@@ -1066,13 +1066,13 @@ class spell_putricide_ooze_eruption_searcher : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_putricide_ooze_eruption_searcher_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_putricide_ooze_eruption_searcher_SpellScript();
}
@@ -1100,13 +1100,13 @@ class spell_putricide_choking_gas_bomb : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_putricide_choking_gas_bomb_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_putricide_choking_gas_bomb_SpellScript();
}
@@ -1121,7 +1121,7 @@ class spell_putricide_unbound_plague : public SpellScriptLoader
{
PrepareSpellScript(spell_putricide_unbound_plague_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_UNBOUND_PLAGUE))
return false;
@@ -1178,14 +1178,14 @@ class spell_putricide_unbound_plague : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_putricide_unbound_plague_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ALLY);
OnEffectHitTarget += SpellEffectFn(spell_putricide_unbound_plague_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_putricide_unbound_plague_SpellScript();
}
@@ -1230,14 +1230,14 @@ class spell_putricide_eat_ooze : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_putricide_eat_ooze_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_putricide_eat_ooze_SpellScript::SelectTarget, EFFECT_0, TARGET_UNIT_DEST_AREA_ENTRY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_putricide_eat_ooze_SpellScript();
}
@@ -1280,14 +1280,14 @@ class spell_putricide_mutated_plague : public SpellScriptLoader
GetTarget()->CastSpell(GetTarget(), healSpell, true, NULL, NULL, GetCasterGUID());
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_putricide_mutated_plague_AuraScript::HandleTriggerSpell, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
AfterEffectRemove += AuraEffectRemoveFn(spell_putricide_mutated_plague_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_putricide_mutated_plague_AuraScript();
}
@@ -1312,7 +1312,7 @@ class spell_putricide_mutation_init : public SpellScriptLoader
if (!professor)
return SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW;
- if (professor->AI()->GetData(DATA_PHASE) == PHASE_COMBAT_3 || !professor->isAlive())
+ if (professor->AI()->GetData(DATA_PHASE) == PHASE_COMBAT_3 || !professor->IsAlive())
{
extendedError = SPELL_CUSTOM_ERROR_ALL_POTIONS_USED;
return SPELL_FAILED_CUSTOM_ERROR;
@@ -1346,7 +1346,7 @@ class spell_putricide_mutation_init : public SpellScriptLoader
return SPELL_CAST_OK;
}
- void Register()
+ void Register() OVERRIDE
{
OnCheckCast += SpellCheckCastFn(spell_putricide_mutation_init_SpellScript::CheckRequirement);
}
@@ -1365,18 +1365,18 @@ class spell_putricide_mutation_init : public SpellScriptLoader
GetTarget()->CastSpell(GetTarget(), spellId, true);
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectRemove += AuraEffectRemoveFn(spell_putricide_mutation_init_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_putricide_mutation_init_SpellScript();
}
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_putricide_mutation_init_AuraScript();
}
@@ -1397,13 +1397,13 @@ class spell_putricide_mutated_transformation_dismiss : public SpellScriptLoader
veh->RemoveAllPassengers();
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectRemove += AuraEffectRemoveFn(spell_putricide_mutated_transformation_dismiss_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_putricide_mutated_transformation_dismiss_AuraScript();
}
@@ -1459,13 +1459,13 @@ class spell_putricide_mutated_transformation : public SpellScriptLoader
putricide->AI()->JustSummoned(summon);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHit += SpellEffectFn(spell_putricide_mutated_transformation_SpellScript::HandleSummon, EFFECT_0, SPELL_EFFECT_SUMMON);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_putricide_mutated_transformation_SpellScript();
}
@@ -1486,13 +1486,13 @@ class spell_putricide_mutated_transformation_dmg : public SpellScriptLoader
targets.remove(owner);
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_putricide_mutated_transformation_dmg_SpellScript::FilterTargetsInitial, EFFECT_0, TARGET_UNIT_SRC_AREA_ALLY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_putricide_mutated_transformation_dmg_SpellScript();
}
@@ -1514,13 +1514,13 @@ class spell_putricide_regurgitated_ooze : public SpellScriptLoader
instance->SetData(DATA_NAUSEA_ACHIEVEMENT, uint32(false));
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_putricide_regurgitated_ooze_SpellScript::ExtraEffect, EFFECT_0, SPELL_EFFECT_APPLY_AURA);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_putricide_regurgitated_ooze_SpellScript();
}
@@ -1543,13 +1543,13 @@ class spell_putricide_clear_aura_effect_value : public SpellScriptLoader
GetHitUnit()->RemoveAurasDueToSpell(auraId);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_putricide_clear_aura_effect_value_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_putricide_clear_aura_effect_value_SpellScript();
}
@@ -1574,13 +1574,13 @@ class spell_stinky_precious_decimate : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_stinky_precious_decimate_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_stinky_precious_decimate_SpellScript();
}
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp
index f398ad55603..97385b108b6 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp
@@ -96,7 +96,7 @@ class boss_rotface : public CreatureScript
infectionCooldown = 14000;
}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
events.ScheduleEvent(EVENT_SLIME_SPRAY, 20000);
@@ -106,7 +106,7 @@ class boss_rotface : public CreatureScript
infectionCooldown = 14000;
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (!instance->CheckRequiredBosses(DATA_ROTFACE, who->ToPlayer()))
{
@@ -122,7 +122,7 @@ class boss_rotface : public CreatureScript
DoZoneInCombat();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
instance->DoRemoveAurasDueToSpellOnPlayers(MUTATED_INFECTION);
_JustDied();
@@ -131,38 +131,39 @@ class boss_rotface : public CreatureScript
professor->AI()->DoAction(ACTION_ROTFACE_DEATH);
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
_JustReachedHome();
instance->SetBossState(DATA_ROTFACE, FAIL);
instance->SetData(DATA_OOZE_DANCE_ACHIEVEMENT, uint32(true)); // reset
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
if (victim->GetTypeId() == TYPEID_PLAYER)
Talk(SAY_KILL);
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
ScriptedAI::EnterEvadeMode();
if (Creature* professor = Unit::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE)))
professor->AI()->EnterEvadeMode();
}
- void SpellHitTarget(Unit* /*target*/, SpellInfo const* spell)
+ void SpellHitTarget(Unit* /*target*/, SpellInfo const* spell) OVERRIDE
{
if (spell->Id == SPELL_SLIME_SPRAY)
Talk(SAY_SLIME_SPRAY);
}
- void MoveInLineOfSight(Unit* /*who*/)
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE
+
{
// don't enter combat
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim() || !CheckInRoom())
return;
@@ -209,7 +210,7 @@ class boss_rotface : public CreatureScript
uint32 infectionStage;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<boss_rotfaceAI>(creature);
}
@@ -226,7 +227,7 @@ class npc_little_ooze : public CreatureScript
{
}
- void IsSummonedBy(Unit* summoner)
+ void IsSummonedBy(Unit* summoner) OVERRIDE
{
DoCast(me, SPELL_LITTLE_OOZE_COMBINE, true);
DoCast(me, SPELL_WEAK_RADIATING_OOZE, true);
@@ -234,12 +235,12 @@ class npc_little_ooze : public CreatureScript
me->AddThreat(summoner, 500000.0f);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
me->DespawnOrUnsummon();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -259,7 +260,7 @@ class npc_little_ooze : public CreatureScript
EventMap events;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_little_oozeAI>(creature);
}
@@ -276,7 +277,7 @@ class npc_big_ooze : public CreatureScript
{
}
- void IsSummonedBy(Unit* /*summoner*/)
+ void IsSummonedBy(Unit* /*summoner*/) OVERRIDE
{
DoCast(me, SPELL_LARGE_OOZE_COMBINE, true);
DoCast(me, SPELL_LARGE_OOZE_BUFF_COMBINE, true);
@@ -289,20 +290,20 @@ class npc_big_ooze : public CreatureScript
rotface->AI()->JustSummoned(me);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (Creature* rotface = Unit::GetCreature(*me, instance->GetData64(DATA_ROTFACE)))
rotface->AI()->SummonedCreatureDespawn(me);
me->DespawnOrUnsummon();
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
if (action == EVENT_STICKY_OOZE)
events.CancelEvent(EVENT_STICKY_OOZE);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -330,7 +331,7 @@ class npc_big_ooze : public CreatureScript
InstanceScript* instance;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_big_oozeAI>(creature);
}
@@ -348,7 +349,7 @@ class npc_precious_icc : public CreatureScript
_instance = creature->GetInstanceScript();
}
- void Reset()
+ void Reset() OVERRIDE
{
_events.Reset();
_events.ScheduleEvent(EVENT_DECIMATE, urand(20000, 25000));
@@ -357,27 +358,27 @@ class npc_precious_icc : public CreatureScript
_summons.DespawnAll();
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
_summons.Summon(summon);
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
summon->AI()->AttackStart(target);
}
- void SummonedCreatureDespawn(Creature* summon)
+ void SummonedCreatureDespawn(Creature* summon) OVERRIDE
{
_summons.Despawn(summon);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_summons.DespawnAll();
if (Creature* rotface = Unit::GetCreature(*me, _instance->GetData64(DATA_ROTFACE)))
- if (rotface->isAlive())
+ if (rotface->IsAlive())
rotface->AI()->Talk(SAY_PRECIOUS_DIES);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -419,7 +420,7 @@ class npc_precious_icc : public CreatureScript
InstanceScript* _instance;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_precious_iccAI>(creature);
}
@@ -462,14 +463,14 @@ class spell_rotface_ooze_flood : public SpellScriptLoader
targets.pop_front();
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_rotface_ooze_flood_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_rotface_ooze_flood_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENTRY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_rotface_ooze_flood_SpellScript();
}
@@ -484,7 +485,7 @@ class spell_rotface_mutated_infection : public SpellScriptLoader
{
PrepareSpellScript(spell_rotface_mutated_infection_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
_target = NULL;
return true;
@@ -518,7 +519,7 @@ class spell_rotface_mutated_infection : public SpellScriptLoader
caster->AI()->Talk(EMOTE_MUTATED_INFECTION, target->GetGUID());
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_rotface_mutated_infection_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_rotface_mutated_infection_SpellScript::ReplaceTargets, EFFECT_1, TARGET_UNIT_SRC_AREA_ENEMY);
@@ -529,7 +530,7 @@ class spell_rotface_mutated_infection : public SpellScriptLoader
WorldObject* _target;
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_rotface_mutated_infection_SpellScript();
}
@@ -546,7 +547,7 @@ class spell_rotface_little_ooze_combine : public SpellScriptLoader
void HandleScript(SpellEffIndex /*effIndex*/)
{
- if (!(GetHitCreature() && GetHitUnit()->isAlive()))
+ if (!(GetHitCreature() && GetHitUnit()->IsAlive()))
return;
GetCaster()->RemoveAurasDueToSpell(SPELL_LITTLE_OOZE_COMBINE);
@@ -555,13 +556,13 @@ class spell_rotface_little_ooze_combine : public SpellScriptLoader
GetHitCreature()->DespawnOrUnsummon();
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_rotface_little_ooze_combine_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_rotface_little_ooze_combine_SpellScript();
}
@@ -578,7 +579,7 @@ class spell_rotface_large_ooze_combine : public SpellScriptLoader
void HandleScript(SpellEffIndex /*effIndex*/)
{
- if (!(GetHitCreature() && GetHitCreature()->isAlive()))
+ if (!(GetHitCreature() && GetHitCreature()->IsAlive()))
return;
if (Aura* unstable = GetCaster()->GetAura(SPELL_UNSTABLE_OOZE))
@@ -597,13 +598,13 @@ class spell_rotface_large_ooze_combine : public SpellScriptLoader
GetHitCreature()->DespawnOrUnsummon();
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_rotface_large_ooze_combine_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_rotface_large_ooze_combine_SpellScript();
}
@@ -620,7 +621,7 @@ class spell_rotface_large_ooze_buff_combine : public SpellScriptLoader
void HandleScript(SpellEffIndex /*effIndex*/)
{
- if (!(GetHitCreature() && GetHitCreature()->isAlive()))
+ if (!(GetHitCreature() && GetHitCreature()->IsAlive()))
return;
if (Aura* unstable = GetCaster()->GetAura(SPELL_UNSTABLE_OOZE))
@@ -635,7 +636,7 @@ class spell_rotface_large_ooze_buff_combine : public SpellScriptLoader
GetCaster()->RemoveAurasDueToSpell(SPELL_LARGE_OOZE_COMBINE);
if (InstanceScript* instance = GetCaster()->GetInstanceScript())
if (Creature* rotface = Unit::GetCreature(*GetCaster(), instance->GetData64(DATA_ROTFACE)))
- if (rotface->isAlive())
+ if (rotface->IsAlive())
{
rotface->AI()->Talk(EMOTE_UNSTABLE_EXPLOSION);
rotface->AI()->Talk(SAY_UNSTABLE_EXPLOSION);
@@ -652,13 +653,13 @@ class spell_rotface_large_ooze_buff_combine : public SpellScriptLoader
GetHitCreature()->DespawnOrUnsummon();
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_rotface_large_ooze_buff_combine_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_rotface_large_ooze_buff_combine_SpellScript();
}
@@ -673,7 +674,7 @@ class spell_rotface_unstable_ooze_explosion_init : public SpellScriptLoader
{
PrepareSpellScript(spell_rotface_unstable_ooze_explosion_init_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_UNSTABLE_OOZE_EXPLOSION_TRIGGER))
return false;
@@ -692,13 +693,13 @@ class spell_rotface_unstable_ooze_explosion_init : public SpellScriptLoader
GetCaster()->CastSpell(dummy, SPELL_UNSTABLE_OOZE_EXPLOSION_TRIGGER, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_rotface_unstable_ooze_explosion_init_SpellScript::HandleCast, EFFECT_0, SPELL_EFFECT_FORCE_CAST);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_rotface_unstable_ooze_explosion_init_SpellScript();
}
@@ -729,13 +730,13 @@ class spell_rotface_unstable_ooze_explosion : public SpellScriptLoader
rotface->CastSpell(x, y, z, triggered_spell_id, true, NULL, NULL, GetCaster()->GetGUID());
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHit += SpellEffectFn(spell_rotface_unstable_ooze_explosion_SpellScript::CheckTarget, EFFECT_0, SPELL_EFFECT_TRIGGER_MISSILE);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_rotface_unstable_ooze_explosion_SpellScript();
}
@@ -762,13 +763,13 @@ class spell_rotface_unstable_ooze_explosion_suicide : public SpellScriptLoader
target->ToCreature()->DespawnOrUnsummon(60000);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_rotface_unstable_ooze_explosion_suicide_AuraScript::DespawnSelf, EFFECT_2, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_rotface_unstable_ooze_explosion_suicide_AuraScript();
}
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
index 7294e4a5571..999e7081d52 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
@@ -207,7 +207,7 @@ class boss_sindragosa : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
BossAI::Reset();
me->SetReactState(REACT_DEFENSIVE);
@@ -230,7 +230,7 @@ class boss_sindragosa : public CreatureScript
}
}
- void JustDied(Unit* /* killer */)
+ void JustDied(Unit* /* killer */) OVERRIDE
{
_JustDied();
Talk(SAY_DEATH);
@@ -240,7 +240,7 @@ class boss_sindragosa : public CreatureScript
}
- void EnterCombat(Unit* victim)
+ void EnterCombat(Unit* victim) OVERRIDE
{
if (!instance->CheckRequiredBosses(DATA_SINDRAGOSA, victim->ToPlayer()))
{
@@ -255,7 +255,7 @@ class boss_sindragosa : public CreatureScript
Talk(SAY_AGGRO);
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
BossAI::JustReachedHome();
instance->SetBossState(DATA_SINDRAGOSA, FAIL);
@@ -263,13 +263,13 @@ class boss_sindragosa : public CreatureScript
me->SetDisableGravity(false);
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
if (victim->GetTypeId() == TYPEID_PLAYER)
Talk(SAY_KILL);
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
if (action == ACTION_START_FROSTWYRM)
{
@@ -296,14 +296,14 @@ class boss_sindragosa : public CreatureScript
}
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
if (type == DATA_MYSTIC_BUFFET_STACK)
return _mysticBuffetStack;
return 0xFFFFFFFF;
}
- void MovementInform(uint32 type, uint32 point)
+ void MovementInform(uint32 type, uint32 point) OVERRIDE
{
if (type != POINT_MOTION_TYPE && type != EFFECT_MOTION_TYPE)
return;
@@ -357,7 +357,7 @@ class boss_sindragosa : public CreatureScript
}
}
- void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/)
+ void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/) OVERRIDE
{
if (!_isThirdPhase && !HealthAbovePct(35))
{
@@ -367,7 +367,7 @@ class boss_sindragosa : public CreatureScript
}
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
summons.Summon(summon);
if (summon->GetEntry() == NPC_FROST_BOMB)
@@ -378,14 +378,14 @@ class boss_sindragosa : public CreatureScript
}
}
- void SummonedCreatureDespawn(Creature* summon)
+ void SummonedCreatureDespawn(Creature* summon) OVERRIDE
{
BossAI::SummonedCreatureDespawn(summon);
if (summon->GetEntry() == NPC_ICE_TOMB)
summon->AI()->JustDied(summon);
}
- void SpellHitTarget(Unit* target, SpellInfo const* spell)
+ void SpellHitTarget(Unit* target, SpellInfo const* spell) OVERRIDE
{
if (uint32 spellId = sSpellMgr->GetSpellIdForDifficulty(70127, me))
if (spellId == spell->Id)
@@ -394,7 +394,7 @@ class boss_sindragosa : public CreatureScript
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim() || !CheckInRoom())
return;
@@ -526,7 +526,7 @@ class boss_sindragosa : public CreatureScript
bool _summoned;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<boss_sindragosaAI>(creature);
}
@@ -545,12 +545,12 @@ class npc_ice_tomb : public CreatureScript
SetCombatMovement(false);
}
- void Reset()
+ void Reset() OVERRIDE
{
me->SetReactState(REACT_PASSIVE);
}
- void SetGUID(uint64 guid, int32 type/* = 0 */)
+ void SetGUID(uint64 guid, int32 type/* = 0 */) OVERRIDE
{
if (type == DATA_TRAPPED_PLAYER)
{
@@ -559,14 +559,14 @@ class npc_ice_tomb : public CreatureScript
}
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
if (action == ACTION_TRIGGER_ASPHYXIATION)
if (Player* player = ObjectAccessor::GetPlayer(*me, _trappedPlayerGUID))
player->CastSpell(player, SPELL_ASPHYXIATION, true);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
me->RemoveAllGameObjects();
@@ -578,7 +578,7 @@ class npc_ice_tomb : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!_trappedPlayerGUID)
return;
@@ -604,7 +604,7 @@ class npc_ice_tomb : public CreatureScript
uint32 _existenceCheckTimer;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_ice_tombAI>(creature);
}
@@ -621,7 +621,7 @@ class npc_spinestalker : public CreatureScript
{
}
- void InitializeAI()
+ void InitializeAI() OVERRIDE
{
// Increase add count
if (!me->isDead())
@@ -631,7 +631,7 @@ class npc_spinestalker : public CreatureScript
}
}
- void Reset()
+ void Reset() OVERRIDE
{
_events.Reset();
_events.ScheduleEvent(EVENT_BELLOWING_ROAR, urand(20000, 25000));
@@ -646,18 +646,18 @@ class npc_spinestalker : public CreatureScript
}
}
- void JustRespawned()
+ void JustRespawned() OVERRIDE
{
ScriptedAI::JustRespawned();
_instance->SetData(DATA_SINDRAGOSA_FROSTWYRMS, me->GetDBTableGUIDLow()); // this cannot be in Reset because reset also happens on evade
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_events.Reset();
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
if (action == ACTION_START_FROSTWYRM)
{
@@ -680,7 +680,7 @@ class npc_spinestalker : public CreatureScript
}
}
- void MovementInform(uint32 type, uint32 point)
+ void MovementInform(uint32 type, uint32 point) OVERRIDE
{
if (type != EFFECT_MOTION_TYPE || point != POINT_FROSTWYRM_LAND)
return;
@@ -694,7 +694,7 @@ class npc_spinestalker : public CreatureScript
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -734,7 +734,7 @@ class npc_spinestalker : public CreatureScript
bool _summoned;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_spinestalkerAI>(creature);
}
@@ -751,7 +751,7 @@ class npc_rimefang : public CreatureScript
{
}
- void InitializeAI()
+ void InitializeAI() OVERRIDE
{
// Increase add count
if (!me->isDead())
@@ -761,7 +761,7 @@ class npc_rimefang : public CreatureScript
}
}
- void Reset()
+ void Reset() OVERRIDE
{
_events.Reset();
_events.ScheduleEvent(EVENT_FROST_BREATH_RIMEFANG, urand(12000, 15000));
@@ -776,18 +776,18 @@ class npc_rimefang : public CreatureScript
}
}
- void JustRespawned()
+ void JustRespawned() OVERRIDE
{
ScriptedAI::JustRespawned();
_instance->SetData(DATA_SINDRAGOSA_FROSTWYRMS, me->GetDBTableGUIDLow()); // this cannot be in Reset because reset also happens on evade
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_events.Reset();
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
if (action == ACTION_START_FROSTWYRM)
{
@@ -810,7 +810,7 @@ class npc_rimefang : public CreatureScript
}
}
- void MovementInform(uint32 type, uint32 point)
+ void MovementInform(uint32 type, uint32 point) OVERRIDE
{
if (type != EFFECT_MOTION_TYPE || point != POINT_FROSTWYRM_LAND)
return;
@@ -824,12 +824,12 @@ class npc_rimefang : public CreatureScript
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
}
- void EnterCombat(Unit* /*victim*/)
+ void EnterCombat(Unit* /*victim*/) OVERRIDE
{
DoCast(me, SPELL_FROST_AURA_RIMEFANG, true);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -891,7 +891,7 @@ class npc_rimefang : public CreatureScript
bool _summoned;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_rimefangAI>(creature);
}
@@ -909,7 +909,7 @@ class npc_sindragosa_trash : public CreatureScript
_instance = creature->GetInstanceScript();
}
- void InitializeAI()
+ void InitializeAI() OVERRIDE
{
_frostwyrmId = (me->GetHomePosition().GetPositionY() < 2484.35f) ? DATA_RIMEFANG : DATA_SPINESTALKER;
// Increase add count
@@ -921,7 +921,7 @@ class npc_sindragosa_trash : public CreatureScript
}
}
- void Reset()
+ void Reset() OVERRIDE
{
// This is shared AI for handler and whelps
if (me->GetEntry() == NPC_FROSTWARDEN_HANDLER)
@@ -933,7 +933,7 @@ class npc_sindragosa_trash : public CreatureScript
_isTaunted = false;
}
- void JustRespawned()
+ void JustRespawned() OVERRIDE
{
ScriptedAI::JustRespawned();
@@ -942,13 +942,13 @@ class npc_sindragosa_trash : public CreatureScript
_instance->SetData(_frostwyrmId, me->GetDBTableGUIDLow()); // this cannot be in Reset because reset also happens on evade
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
if (type == DATA_WHELP_MARKER)
_isTaunted = data != 0;
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
if (type == DATA_FROSTWYRM_OWNER)
return _frostwyrmId;
@@ -957,7 +957,7 @@ class npc_sindragosa_trash : public CreatureScript
return 0;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -994,7 +994,7 @@ class npc_sindragosa_trash : public CreatureScript
bool _isTaunted; // Frostwing Whelp only
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_sindragosa_trashAI>(creature);
}
@@ -1009,7 +1009,7 @@ class spell_sindragosa_s_fury : public SpellScriptLoader
{
PrepareSpellScript(spell_sindragosa_s_fury_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
_targetCount = 0;
@@ -1043,7 +1043,7 @@ class spell_sindragosa_s_fury : public SpellScriptLoader
{
PreventHitDefaultEffect(effIndex);
- if (!GetHitUnit()->isAlive() || !_targetCount)
+ if (!GetHitUnit()->IsAlive() || !_targetCount)
return;
float resistance = float(GetHitUnit()->GetResistance(SpellSchoolMask(GetSpellInfo()->SchoolMask)));
@@ -1058,7 +1058,7 @@ class spell_sindragosa_s_fury : public SpellScriptLoader
GetCaster()->DealSpellDamage(&damageInfo, false);
}
- void Register()
+ void Register() OVERRIDE
{
BeforeCast += SpellCastFn(spell_sindragosa_s_fury_SpellScript::SelectDest);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_sindragosa_s_fury_SpellScript::CountTargets, EFFECT_1, TARGET_UNIT_DEST_AREA_ENTRY);
@@ -1068,7 +1068,7 @@ class spell_sindragosa_s_fury : public SpellScriptLoader
uint32 _targetCount;
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_sindragosa_s_fury_SpellScript();
}
@@ -1104,13 +1104,13 @@ class spell_sindragosa_unchained_magic : public SpellScriptLoader
Trinity::Containers::RandomResizeList(unitList, maxSize);
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_sindragosa_unchained_magic_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_sindragosa_unchained_magic_SpellScript();
}
@@ -1149,13 +1149,13 @@ class spell_sindragosa_frost_breath : public SpellScriptLoader
target->CastSpell(target, SPELL_FROST_INFUSION, TRIGGERED_FULL_MASK);
}
- void Register()
+ void Register() OVERRIDE
{
AfterHit += SpellHitFn(spell_sindragosa_frost_breath_SpellScript::HandleInfusion);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_sindragosa_frost_breath_SpellScript();
}
@@ -1170,7 +1170,7 @@ class spell_sindragosa_instability : public SpellScriptLoader
{
PrepareAuraScript(spell_sindragosa_instability_AuraScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_BACKLASH))
return false;
@@ -1183,13 +1183,13 @@ class spell_sindragosa_instability : public SpellScriptLoader
GetTarget()->CastCustomSpell(SPELL_BACKLASH, SPELLVALUE_BASE_POINT0, aurEff->GetAmount(), GetTarget(), true, NULL, aurEff, GetCasterGUID());
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectRemove += AuraEffectRemoveFn(spell_sindragosa_instability_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_sindragosa_instability_AuraScript();
}
@@ -1204,7 +1204,7 @@ class spell_sindragosa_frost_beacon : public SpellScriptLoader
{
PrepareAuraScript(spell_sindragosa_frost_beacon_AuraScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_ICE_TOMB_DAMAGE))
return false;
@@ -1218,13 +1218,13 @@ class spell_sindragosa_frost_beacon : public SpellScriptLoader
caster->CastSpell(GetTarget(), SPELL_ICE_TOMB_DAMAGE, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_sindragosa_frost_beacon_AuraScript::PeriodicTick, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_sindragosa_frost_beacon_AuraScript();
}
@@ -1239,7 +1239,7 @@ class spell_sindragosa_ice_tomb : public SpellScriptLoader
{
PrepareSpellScript(spell_sindragosa_ice_tomb_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sObjectMgr->GetCreatureTemplate(NPC_ICE_TOMB))
return false;
@@ -1263,7 +1263,7 @@ class spell_sindragosa_ice_tomb : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
AfterHit += SpellHitFn(spell_sindragosa_ice_tomb_SpellScript::SummonTomb);
}
@@ -1278,18 +1278,18 @@ class spell_sindragosa_ice_tomb : public SpellScriptLoader
PreventDefaultAction();
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_sindragosa_ice_tomb_AuraScript::PeriodicTick, EFFECT_2, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_sindragosa_ice_tomb_SpellScript();
}
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_sindragosa_ice_tomb_AuraScript();
}
@@ -1304,7 +1304,7 @@ class spell_sindragosa_icy_grip : public SpellScriptLoader
{
PrepareSpellScript(spell_sindragosa_icy_grip_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_ICY_GRIP_JUMP))
return false;
@@ -1317,13 +1317,13 @@ class spell_sindragosa_icy_grip : public SpellScriptLoader
GetHitUnit()->CastSpell(GetCaster(), SPELL_ICY_GRIP_JUMP, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_sindragosa_icy_grip_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_sindragosa_icy_grip_SpellScript();
}
@@ -1357,13 +1357,13 @@ class spell_sindragosa_mystic_buffet : public SpellScriptLoader
targets.remove_if(MysticBuffetTargetFilter(GetCaster()));
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_sindragosa_mystic_buffet_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_sindragosa_mystic_buffet_SpellScript();
}
@@ -1378,7 +1378,7 @@ class spell_rimefang_icy_blast : public SpellScriptLoader
{
PrepareSpellScript(spell_rimefang_icy_blast_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_ICY_BLAST_AREA))
return false;
@@ -1393,13 +1393,13 @@ class spell_rimefang_icy_blast : public SpellScriptLoader
summon->CastSpell(summon, SPELL_ICY_BLAST_AREA, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHit += SpellEffectFn(spell_rimefang_icy_blast_SpellScript::HandleTriggerMissile, EFFECT_1, SPELL_EFFECT_TRIGGER_MISSILE);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_rimefang_icy_blast_SpellScript();
}
@@ -1430,7 +1430,7 @@ class spell_frostwarden_handler_order_whelp : public SpellScriptLoader
{
PrepareSpellScript(spell_frostwarden_handler_order_whelp_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_FOCUS_FIRE))
return false;
@@ -1463,14 +1463,14 @@ class spell_frostwarden_handler_order_whelp : public SpellScriptLoader
Trinity::Containers::SelectRandomContainerElement(unitList)->CastSpell(GetHitUnit(), uint32(GetEffectValue()), true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_frostwarden_handler_order_whelp_SpellScript::HandleForcedCast, EFFECT_0, SPELL_EFFECT_FORCE_CAST);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_frostwarden_handler_order_whelp_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_DEST_AREA_ENEMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_frostwarden_handler_order_whelp_SpellScript();
}
@@ -1492,7 +1492,7 @@ class spell_frostwarden_handler_focus_fire : public SpellScriptLoader
GetCaster()->GetAI()->SetData(DATA_WHELP_MARKER, 1);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_frostwarden_handler_focus_fire_SpellScript::HandleScript, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT);
}
@@ -1512,18 +1512,18 @@ class spell_frostwarden_handler_focus_fire : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_frostwarden_handler_focus_fire_AuraScript::PeriodicTick, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_frostwarden_handler_focus_fire_SpellScript();
}
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_frostwarden_handler_focus_fire_AuraScript();
}
@@ -1534,7 +1534,7 @@ class at_sindragosa_lair : public AreaTriggerScript
public:
at_sindragosa_lair() : AreaTriggerScript("at_sindragosa_lair") { }
- bool OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/)
+ bool OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/) OVERRIDE
{
if (InstanceScript* instance = player->GetInstanceScript())
{
@@ -1566,7 +1566,7 @@ class achievement_all_you_can_eat : public AchievementCriteriaScript
public:
achievement_all_you_can_eat() : AchievementCriteriaScript("achievement_all_you_can_eat") { }
- bool OnCheck(Player* /*source*/, Unit* target)
+ bool OnCheck(Player* /*source*/, Unit* target) OVERRIDE
{
if (!target)
return false;
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
index 033674767e6..3c28483337b 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
@@ -348,8 +348,11 @@ enum MiscData
MOVIE_FALL_OF_THE_LICH_KING = 16,
};
-#define DATA_PLAGUE_STACK 70337
-#define DATA_VILE 45814622
+enum Misc
+{
+ DATA_PLAGUE_STACK = 70337,
+ DATA_VILE = 45814622
+};
class NecroticPlagueTargetCheck : public std::unary_function<Unit*, bool>
{
@@ -361,7 +364,7 @@ class NecroticPlagueTargetCheck : public std::unary_function<Unit*, bool>
bool operator()(Unit* unit) const
{
- if (!unit || unit == _sourceObj || !unit->isTargetableForAttack() || unit->isTotem() || unit->HasAura(SPELL_PLAGUE_AVOIDANCE))
+ if (!unit || unit == _sourceObj || !unit->isTargetableForAttack() || unit->IsTotem() || unit->HasAura(SPELL_PLAGUE_AVOIDANCE))
return false;
if ((_notAura1 && unit->HasAura(_notAura1)) || (_notAura2 && unit->HasAura(_notAura2)))
return false;
@@ -503,7 +506,7 @@ class boss_the_lich_king : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
me->SetReactState(REACT_PASSIVE);
@@ -513,7 +516,7 @@ class boss_the_lich_king : public CreatureScript
SetEquipmentSlots(true);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
DoCastAOE(SPELL_PLAY_MOVIE, false);
@@ -524,7 +527,7 @@ class boss_the_lich_king : public CreatureScript
frostmourne->DespawnOrUnsummon();
}
- void EnterCombat(Unit* target)
+ void EnterCombat(Unit* target) OVERRIDE
{
if (!instance->CheckRequiredBosses(DATA_THE_LICH_KING, target->ToPlayer()))
{
@@ -546,7 +549,7 @@ class boss_the_lich_king : public CreatureScript
events.ScheduleEvent(EVENT_SHADOW_TRAP, 15500, 0, PHASE_ONE);
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
_JustReachedHome();
instance->SetBossState(DATA_THE_LICH_KING, NOT_STARTED);
@@ -560,13 +563,13 @@ class boss_the_lich_king : public CreatureScript
SendLightOverride(0, 5000);
}
- bool CanAIAttack(Unit const* target) const
+ bool CanAIAttack(Unit const* target) const OVERRIDE
{
// The Lich King must not select targets in frostmourne room if he killed everyone outside
return !target->HasAura(SPELL_IN_FROSTMOURNE_ROOM);
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
instance->SetBossState(DATA_THE_LICH_KING, FAIL);
BossAI::EnterEvadeMode();
@@ -577,13 +580,13 @@ class boss_the_lich_king : public CreatureScript
summons.DoAction(ACTION_TELEPORT_BACK, pred);
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
if (victim->GetTypeId() == TYPEID_PLAYER && !me->IsInEvadeMode() && !events.IsInPhase(PHASE_OUTRO))
Talk(SAY_LK_KILL);
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -627,7 +630,7 @@ class boss_the_lich_king : public CreatureScript
}
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -642,7 +645,7 @@ class boss_the_lich_king : public CreatureScript
return 0;
}
- void SetData(uint32 type, uint32 value)
+ void SetData(uint32 type, uint32 value) OVERRIDE
{
switch (type)
{
@@ -657,7 +660,7 @@ class boss_the_lich_king : public CreatureScript
}
}
- void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/)
+ void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/) OVERRIDE
{
if (events.IsInPhase(PHASE_ONE) && !HealthAbovePct(70))
{
@@ -702,7 +705,7 @@ class boss_the_lich_king : public CreatureScript
}
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
switch (summon->GetEntry())
{
@@ -762,7 +765,7 @@ class boss_the_lich_king : public CreatureScript
BossAI::JustSummoned(summon);
}
- void SummonedCreatureDies(Creature* summon, Unit* /*killer*/)
+ void SummonedCreatureDies(Creature* summon, Unit* /*killer*/) OVERRIDE
{
switch (summon->GetEntry())
{
@@ -779,13 +782,13 @@ class boss_the_lich_king : public CreatureScript
}
}
- void SpellHit(Unit* /*caster*/, SpellInfo const* spell)
+ void SpellHit(Unit* /*caster*/, SpellInfo const* spell) OVERRIDE
{
- if (spell->Id == SPELL_HARVESTED_SOUL && me->isInCombat() && !IsHeroic())
+ if (spell->Id == SPELL_HARVESTED_SOUL && me->IsInCombat() && !IsHeroic())
Talk(SAY_LK_FROSTMOURNE_KILL);
}
- void SpellHitTarget(Unit* /*target*/, SpellInfo const* spell)
+ void SpellHitTarget(Unit* /*target*/, SpellInfo const* spell) OVERRIDE
{
if (spell->Id == REMORSELESS_WINTER_1 || spell->Id == REMORSELESS_WINTER_2)
{
@@ -794,7 +797,7 @@ class boss_the_lich_king : public CreatureScript
}
}
- void MovementInform(uint32 type, uint32 pointId)
+ void MovementInform(uint32 type, uint32 pointId) OVERRIDE
{
if (type != POINT_MOTION_TYPE)
return;
@@ -860,7 +863,7 @@ class boss_the_lich_king : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
// check phase first to prevent updating victim and entering evade mode when not wanted
if (!(events.IsInPhase(PHASE_OUTRO) || events.IsInPhase(PHASE_INTRO) || events.IsInPhase(PHASE_FROSTMOURNE)))
@@ -1142,7 +1145,7 @@ class boss_the_lich_king : public CreatureScript
Map::PlayerList const& players = me->GetMap()->GetPlayers();
if (!players.isEmpty())
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
- if (Player* player = itr->getSource())
+ if (Player* player = itr->GetSource())
if (player->GetAreaId() == AREA_THE_FROZEN_THRONE)
player->GetSession()->SendPacket(data);
}
@@ -1151,7 +1154,7 @@ class boss_the_lich_king : public CreatureScript
uint32 _vileSpiritExplosions;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<boss_the_lich_kingAI>(creature);
}
@@ -1169,14 +1172,14 @@ class npc_tirion_fordring_tft : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_events.Reset();
if (_instance->GetBossState(DATA_THE_LICH_KING) == DONE)
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type != POINT_MOTION_TYPE)
return;
@@ -1194,7 +1197,7 @@ class npc_tirion_fordring_tft : public CreatureScript
}
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -1212,7 +1215,7 @@ class npc_tirion_fordring_tft : public CreatureScript
}
}
- void SpellHit(Unit* /*caster*/, SpellInfo const* spell)
+ void SpellHit(Unit* /*caster*/, SpellInfo const* spell) OVERRIDE
{
if (spell->Id == SPELL_ICE_LOCK)
me->SetFacingTo(3.085098f);
@@ -1220,7 +1223,7 @@ class npc_tirion_fordring_tft : public CreatureScript
SetEquipmentSlots(true); // remove glow on ashbringer
}
- void sGossipSelect(Player* /*player*/, uint32 sender, uint32 action)
+ void sGossipSelect(Player* /*player*/, uint32 sender, uint32 action) OVERRIDE
{
if (me->GetCreatureTemplate()->GossipMenuId == sender && !action)
{
@@ -1231,7 +1234,7 @@ class npc_tirion_fordring_tft : public CreatureScript
}
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
@@ -1241,7 +1244,7 @@ class npc_tirion_fordring_tft : public CreatureScript
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim() && !(_events.IsInPhase(PHASE_OUTRO) || _events.IsInPhase(PHASE_INTRO)))
return;
@@ -1301,7 +1304,7 @@ class npc_tirion_fordring_tft : public CreatureScript
InstanceScript* _instance;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_tirion_fordringAI>(creature);
}
@@ -1319,14 +1322,14 @@ class npc_shambling_horror_icc : public CreatureScript
_frenzied = false;
}
- void Reset()
+ void Reset() OVERRIDE
{
_events.Reset();
_events.ScheduleEvent(EVENT_SHOCKWAVE, urand(20000, 25000));
_events.ScheduleEvent(EVENT_ENRAGE, urand(11000, 14000));
}
- void DamageTaken(Unit* /*attacker*/, uint32& damage)
+ void DamageTaken(Unit* /*attacker*/, uint32& damage) OVERRIDE
{
if (!_frenzied && IsHeroic() && me->HealthBelowPctDamaged(20, damage))
{
@@ -1335,7 +1338,7 @@ class npc_shambling_horror_icc : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -1370,7 +1373,7 @@ class npc_shambling_horror_icc : public CreatureScript
bool _frenzied;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_shambling_horror_iccAI>(creature);
}
@@ -1388,7 +1391,7 @@ class npc_raging_spirit : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_events.Reset();
_events.ScheduleEvent(EVENT_SOUL_SHRIEK, urand(12000, 15000));
@@ -1400,14 +1403,14 @@ class npc_raging_spirit : public CreatureScript
DoCast(me, SPELL_BOSS_HITTIN_YA, true);
}
- void IsSummonedBy(Unit* /*summoner*/)
+ void IsSummonedBy(Unit* /*summoner*/) OVERRIDE
{
// player is the spellcaster so register summon manually
if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING)))
lichKing->AI()->JustSummoned(me);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING)))
lichKing->AI()->SummonedCreatureDespawn(me);
@@ -1415,7 +1418,7 @@ class npc_raging_spirit : public CreatureScript
summon->SetTempSummonType(TEMPSUMMON_CORPSE_DESPAWN);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -1446,7 +1449,7 @@ class npc_raging_spirit : public CreatureScript
InstanceScript* _instance;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_raging_spiritAI>(creature);
}
@@ -1464,7 +1467,7 @@ class npc_valkyr_shadowguard : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_events.Reset();
me->SetReactState(REACT_PASSIVE);
@@ -1472,13 +1475,13 @@ class npc_valkyr_shadowguard : public CreatureScript
me->SetSpeed(MOVE_FLIGHT, 0.642857f, true);
}
- void IsSummonedBy(Unit* /*summoner*/)
+ void IsSummonedBy(Unit* /*summoner*/) OVERRIDE
{
_events.Reset();
_events.ScheduleEvent(EVENT_GRAB_PLAYER, 2500);
}
- void DamageTaken(Unit* /*attacker*/, uint32& damage)
+ void DamageTaken(Unit* /*attacker*/, uint32& damage) OVERRIDE
{
if (!IsHeroic())
return;
@@ -1495,7 +1498,7 @@ class npc_valkyr_shadowguard : public CreatureScript
}
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
// schedule siphon life event (heroic only)
DoZoneInCombat();
@@ -1503,11 +1506,11 @@ class npc_valkyr_shadowguard : public CreatureScript
_events.ScheduleEvent(EVENT_LIFE_SIPHON, 2000);
}
- void AttackStart(Unit* /*target*/)
+ void AttackStart(Unit* /*target*/) OVERRIDE
{
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type != POINT_MOTION_TYPE)
return;
@@ -1545,12 +1548,12 @@ class npc_valkyr_shadowguard : public CreatureScript
}
}
- void SetGUID(uint64 guid, int32 /* = 0*/)
+ void SetGUID(uint64 guid, int32 /* = 0*/) OVERRIDE
{
_grabbedPlayer = guid;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -1594,7 +1597,7 @@ class npc_valkyr_shadowguard : public CreatureScript
InstanceScript* _instance;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_valkyr_shadowguardAI>(creature);
}
@@ -1612,7 +1615,7 @@ class npc_strangulate_vehicle : public CreatureScript
{
}
- void IsSummonedBy(Unit* summoner)
+ void IsSummonedBy(Unit* summoner) OVERRIDE
{
me->SetFacingToObject(summoner);
DoCast(summoner, SPELL_HARVEST_SOUL_VEHICLE);
@@ -1625,7 +1628,7 @@ class npc_strangulate_vehicle : public CreatureScript
lichKing->AI()->JustSummoned(me);
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
if (action != ACTION_TELEPORT_BACK)
return;
@@ -1643,7 +1646,7 @@ class npc_strangulate_vehicle : public CreatureScript
lichKing->AI()->SummonedCreatureDespawn(me);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
UpdateVictim();
@@ -1701,7 +1704,7 @@ class npc_strangulate_vehicle : public CreatureScript
InstanceScript* _instance;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_strangulate_vehicleAI>(creature);
}
@@ -1719,12 +1722,12 @@ class npc_terenas_menethil : public CreatureScript
{
}
- bool CanAIAttack(Unit const* target) const
+ bool CanAIAttack(Unit const* target) const OVERRIDE
{
return target->GetEntry() != NPC_THE_LICH_KING;
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -1751,17 +1754,17 @@ class npc_terenas_menethil : public CreatureScript
}
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
// no running back home
- if (!me->isAlive())
+ if (!me->IsAlive())
return;
me->DeleteThreatList();
me->CombatStop(false);
}
- void DamageTaken(Unit* /*attacker*/, uint32& damage)
+ void DamageTaken(Unit* /*attacker*/, uint32& damage) OVERRIDE
{
if (damage >= me->GetHealth())
{
@@ -1782,7 +1785,7 @@ class npc_terenas_menethil : public CreatureScript
}
}
- void IsSummonedBy(Unit* /*summoner*/)
+ void IsSummonedBy(Unit* /*summoner*/) OVERRIDE
{
_events.Reset();
_events.SetPhase(PHASE_OUTRO);
@@ -1793,7 +1796,7 @@ class npc_terenas_menethil : public CreatureScript
_events.ScheduleEvent(EVENT_OUTRO_TERENAS_TALK_2, 14000, 0, PHASE_OUTRO);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
UpdateVictim();
@@ -1845,7 +1848,7 @@ class npc_terenas_menethil : public CreatureScript
}
// fighting Spirit Warden
- if (me->isInCombat())
+ if (me->IsInCombat())
DoMeleeAttackIfReady();
}
@@ -1854,7 +1857,7 @@ class npc_terenas_menethil : public CreatureScript
InstanceScript* _instance;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_terenas_menethilAI>(creature);
}
@@ -1872,20 +1875,20 @@ class npc_spirit_warden : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_events.Reset();
_events.ScheduleEvent(EVENT_SOUL_RIP, urand(12000, 15000));
DoCast(SPELL_DARK_HUNGER);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (Creature* terenas = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_TERENAS_MENETHIL)))
terenas->AI()->DoAction(ACTION_TELEPORT_BACK);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -1913,7 +1916,7 @@ class npc_spirit_warden : public CreatureScript
InstanceScript* _instance;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_spirit_wardenAI>(creature);
}
@@ -1930,7 +1933,7 @@ class npc_spirit_bomb : public CreatureScript
{
}
- void IsSummonedBy(Unit* /*summoner*/)
+ void IsSummonedBy(Unit* /*summoner*/) OVERRIDE
{
float destX, destY, destZ;
me->GetPosition(destX, destY);
@@ -1939,7 +1942,7 @@ class npc_spirit_bomb : public CreatureScript
me->GetMotionMaster()->MovePoint(POINT_GROUND, destX, destY, destZ);
}
- void MovementInform(uint32 type, uint32 point)
+ void MovementInform(uint32 type, uint32 point) OVERRIDE
{
if (type != POINT_MOTION_TYPE || point != POINT_GROUND)
return;
@@ -1949,18 +1952,18 @@ class npc_spirit_bomb : public CreatureScript
me->DespawnOrUnsummon(1000);
}
- void AttackStart(Unit* /*victim*/)
+ void AttackStart(Unit* /*victim*/) OVERRIDE
{
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
UpdateVictim();
// no melee attacks
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_spirit_bombAI>(creature);
}
@@ -1977,28 +1980,28 @@ class npc_broken_frostmourne : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_events.Reset();
}
- void IsSummonedBy(Unit* /*summoner*/)
+ void IsSummonedBy(Unit* /*summoner*/) OVERRIDE
{
_events.SetPhase(PHASE_OUTRO);
_events.ScheduleEvent(EVENT_OUTRO_KNOCK_BACK, 3000, 0, PHASE_OUTRO);
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
if (action == ACTION_SUMMON_TERENAS)
_events.ScheduleEvent(EVENT_OUTRO_SUMMON_TERENAS, 6000, 0, PHASE_OUTRO);
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
UpdateVictim();
@@ -2026,7 +2029,7 @@ class npc_broken_frostmourne : public CreatureScript
EventMap _events;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_broken_frostmourneAI>(creature);
}
@@ -2059,14 +2062,14 @@ class spell_the_lich_king_infest : public SpellScriptLoader
aurEff->SetAmount(int32(aurEff->GetAmount() * 1.15f));
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_the_lich_king_infest_AuraScript::OnPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE);
OnEffectUpdatePeriodic += AuraEffectUpdatePeriodicFn(spell_the_lich_king_infest_AuraScript::OnUpdate, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_the_lich_king_infest_AuraScript();
}
@@ -2081,7 +2084,7 @@ class spell_the_lich_king_necrotic_plague : public SpellScriptLoader
{
PrepareAuraScript(spell_the_lich_king_necrotic_plague_AuraScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_NECROTIC_PLAGUE_JUMP))
return false;
@@ -2108,13 +2111,13 @@ class spell_the_lich_king_necrotic_plague : public SpellScriptLoader
caster->CastSpell(caster, SPELL_PLAGUE_SIPHON, true);
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectRemove += AuraEffectRemoveFn(spell_the_lich_king_necrotic_plague_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_the_lich_king_necrotic_plague_AuraScript();
}
@@ -2129,7 +2132,7 @@ class spell_the_lich_king_necrotic_plague_jump : public SpellScriptLoader
{
PrepareSpellScript(spell_the_lich_king_necrotic_plague_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
_hadAura = false;
return true;
@@ -2156,7 +2159,7 @@ class spell_the_lich_king_necrotic_plague_jump : public SpellScriptLoader
GetHitAura()->ModStackAmount(1);
}
- void Register()
+ void Register() OVERRIDE
{
BeforeHit += SpellHitFn(spell_the_lich_king_necrotic_plague_SpellScript::CheckAura);
OnHit += SpellHitFn(spell_the_lich_king_necrotic_plague_SpellScript::AddMissingStack);
@@ -2169,7 +2172,7 @@ class spell_the_lich_king_necrotic_plague_jump : public SpellScriptLoader
{
PrepareAuraScript(spell_the_lich_king_necrotic_plague_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
_lastAmount = 0;
return true;
@@ -2222,7 +2225,7 @@ class spell_the_lich_king_necrotic_plague_jump : public SpellScriptLoader
Remove(AURA_REMOVE_BY_ENEMY_SPELL);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectApply += AuraEffectApplyFn(spell_the_lich_king_necrotic_plague_AuraScript::OnApply, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
AfterEffectRemove += AuraEffectRemoveFn(spell_the_lich_king_necrotic_plague_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAL);
@@ -2233,12 +2236,12 @@ class spell_the_lich_king_necrotic_plague_jump : public SpellScriptLoader
int32 _lastAmount;
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_the_lich_king_necrotic_plague_SpellScript();
}
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_the_lich_king_necrotic_plague_AuraScript();
}
@@ -2259,13 +2262,13 @@ class spell_the_lich_king_shadow_trap_visual : public SpellScriptLoader
GetTarget()->CastSpell(GetTarget(), SPELL_SHADOW_TRAP_AURA, TRIGGERED_NONE);
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectRemove += AuraEffectRemoveFn(spell_the_lich_king_shadow_trap_visual_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_the_lich_king_shadow_trap_visual_AuraScript();
}
@@ -2288,13 +2291,13 @@ class spell_the_lich_king_shadow_trap_periodic : public SpellScriptLoader
GetCaster()->CastSpell((Unit*)NULL, SPELL_SHADOW_TRAP_KNOCKBACK, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_the_lich_king_shadow_trap_periodic_SpellScript::CheckTargetCount, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_the_lich_king_shadow_trap_periodic_SpellScript();
}
@@ -2309,7 +2312,7 @@ class spell_the_lich_king_quake : public SpellScriptLoader
{
PrepareSpellScript(spell_the_lich_king_quake_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetInstanceScript() != NULL;
}
@@ -2326,14 +2329,14 @@ class spell_the_lich_king_quake : public SpellScriptLoader
GetCaster()->GetAI()->DoAction(ACTION_START_ATTACK);
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_the_lich_king_quake_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENTRY);
OnEffectHit += SpellEffectFn(spell_the_lich_king_quake_SpellScript::HandleSendEvent, EFFECT_1, SPELL_EFFECT_SEND_EVENT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_the_lich_king_quake_SpellScript();
}
@@ -2348,7 +2351,7 @@ class spell_the_lich_king_ice_burst_target_search : public SpellScriptLoader
{
PrepareSpellScript(spell_the_lich_king_ice_burst_target_search_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_ICE_BURST))
return false;
@@ -2370,13 +2373,13 @@ class spell_the_lich_king_ice_burst_target_search : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_the_lich_king_ice_burst_target_search_SpellScript::CheckTargetCount, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_the_lich_king_ice_burst_target_search_SpellScript();
}
@@ -2391,7 +2394,7 @@ class spell_the_lich_king_raging_spirit : public SpellScriptLoader
{
PrepareSpellScript(spell_the_lich_king_raging_spirit_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_LIFE_SIPHON_HEAL))
return false;
@@ -2404,13 +2407,13 @@ class spell_the_lich_king_raging_spirit : public SpellScriptLoader
GetHitUnit()->CastSpell(GetHitUnit(), uint32(GetEffectValue()), true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_the_lich_king_raging_spirit_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_the_lich_king_raging_spirit_SpellScript();
}
@@ -2454,7 +2457,7 @@ class spell_the_lich_king_defile : public SpellScriptLoader
GetCaster()->CastSpell(GetCaster(), SPELL_DEFILE_GROW, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_the_lich_king_defile_SpellScript::CorrectRange, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_the_lich_king_defile_SpellScript::CorrectRange, EFFECT_1, TARGET_UNIT_SRC_AREA_ENEMY);
@@ -2462,7 +2465,7 @@ class spell_the_lich_king_defile : public SpellScriptLoader
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_the_lich_king_defile_SpellScript();
}
@@ -2491,13 +2494,13 @@ class spell_the_lich_king_summon_into_air : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHit += SpellEffectFn(spell_the_lich_king_summon_into_air_SpellScript::ModDestHeight, EFFECT_0, SPELL_EFFECT_SUMMON);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_the_lich_king_summon_into_air_SpellScript();
}
@@ -2512,7 +2515,7 @@ class spell_the_lich_king_soul_reaper : public SpellScriptLoader
{
PrepareAuraScript(spell_the_lich_king_soul_reaper_AuraScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_SOUL_REAPER_BUFF))
return false;
@@ -2525,13 +2528,13 @@ class spell_the_lich_king_soul_reaper : public SpellScriptLoader
GetTarget()->CastSpell(caster, SPELL_SOUL_REAPER_BUFF, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_the_lich_king_soul_reaper_AuraScript::OnPeriodic, EFFECT_1, SPELL_AURA_PERIODIC_DAMAGE);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_the_lich_king_soul_reaper_AuraScript();
}
@@ -2546,14 +2549,14 @@ class spell_the_lich_king_valkyr_target_search : public SpellScriptLoader
{
PrepareSpellScript(spell_the_lich_king_valkyr_target_search_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_ICE_BURST))
return false;
return true;
}
- bool Load()
+ bool Load() OVERRIDE
{
_target = NULL;
return true;
@@ -2587,7 +2590,7 @@ class spell_the_lich_king_valkyr_target_search : public SpellScriptLoader
GetCaster()->CastSpell(GetHitUnit(), SPELL_CHARGE, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_the_lich_king_valkyr_target_search_SpellScript::SelectTarget, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_the_lich_king_valkyr_target_search_SpellScript::ReplaceTarget, EFFECT_1, TARGET_UNIT_SRC_AREA_ENEMY);
@@ -2597,7 +2600,7 @@ class spell_the_lich_king_valkyr_target_search : public SpellScriptLoader
WorldObject* _target;
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_the_lich_king_valkyr_target_search_SpellScript();
}
@@ -2612,7 +2615,7 @@ class spell_the_lich_king_eject_all_passengers : public SpellScriptLoader
{
PrepareSpellScript(spell_the_lich_king_eject_all_passengers_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->IsVehicle();
}
@@ -2623,13 +2626,13 @@ class spell_the_lich_king_eject_all_passengers : public SpellScriptLoader
GetCaster()->GetVehicleKit()->RemoveAllPassengers();
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_the_lich_king_eject_all_passengers_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_the_lich_king_eject_all_passengers_SpellScript();
}
@@ -2649,13 +2652,13 @@ class spell_the_lich_king_cast_back_to_caster : public SpellScriptLoader
GetHitUnit()->CastSpell(GetCaster(), uint32(GetEffectValue()), true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_the_lich_king_cast_back_to_caster_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_the_lich_king_cast_back_to_caster_SpellScript();
}
@@ -2670,7 +2673,7 @@ class spell_the_lich_king_life_siphon : public SpellScriptLoader
{
PrepareSpellScript(spell_the_lich_king_life_siphon_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_LIFE_SIPHON_HEAL))
return false;
@@ -2682,13 +2685,13 @@ class spell_the_lich_king_life_siphon : public SpellScriptLoader
GetHitUnit()->CastCustomSpell(SPELL_LIFE_SIPHON_HEAL, SPELLVALUE_BASE_POINT0, GetHitDamage() * 10, GetCaster(), true);
}
- void Register()
+ void Register() OVERRIDE
{
AfterHit += SpellHitFn(spell_the_lich_king_life_siphon_SpellScript::TriggerHeal);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_the_lich_king_life_siphon_SpellScript();
}
@@ -2703,7 +2706,7 @@ class spell_the_lich_king_vile_spirits : public SpellScriptLoader
{
PrepareAuraScript(spell_the_lich_king_vile_spirits_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
_is25Man = GetUnitOwner()->GetMap()->Is25ManRaid();
return true;
@@ -2715,7 +2718,7 @@ class spell_the_lich_king_vile_spirits : public SpellScriptLoader
GetTarget()->CastSpell((Unit*)NULL, GetSpellInfo()->Effects[aurEff->GetEffIndex()].TriggerSpell, true, NULL, aurEff, GetCasterGUID());
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_the_lich_king_vile_spirits_AuraScript::OnPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
}
@@ -2723,7 +2726,7 @@ class spell_the_lich_king_vile_spirits : public SpellScriptLoader
bool _is25Man;
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_the_lich_king_vile_spirits_AuraScript();
}
@@ -2744,13 +2747,13 @@ class spell_the_lich_king_vile_spirits_visual : public SpellScriptLoader
const_cast<WorldLocation*>(GetExplTargetDest())->RelocateOffset(offset);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectLaunch += SpellEffectFn(spell_the_lich_king_vile_spirits_visual_SpellScript::ModDestHeight, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_the_lich_king_vile_spirits_visual_SpellScript();
}
@@ -2765,7 +2768,7 @@ class spell_the_lich_king_vile_spirit_move_target_search : public SpellScriptLoa
{
PrepareSpellScript(spell_the_lich_king_vile_spirit_move_target_search_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
_target = NULL;
return GetCaster()->GetTypeId() == TYPEID_UNIT;
@@ -2790,7 +2793,7 @@ class spell_the_lich_king_vile_spirit_move_target_search : public SpellScriptLoa
GetCaster()->AddThreat(GetHitUnit(), 100000.0f);
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_the_lich_king_vile_spirit_move_target_search_SpellScript::SelectTarget, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnEffectHitTarget += SpellEffectFn(spell_the_lich_king_vile_spirit_move_target_search_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
@@ -2799,7 +2802,7 @@ class spell_the_lich_king_vile_spirit_move_target_search : public SpellScriptLoa
WorldObject* _target;
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_the_lich_king_vile_spirit_move_target_search_SpellScript();
}
@@ -2814,7 +2817,7 @@ class spell_the_lich_king_vile_spirit_damage_target_search : public SpellScriptL
{
PrepareSpellScript(spell_the_lich_king_vile_spirit_damage_target_search_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_UNIT;
}
@@ -2834,13 +2837,13 @@ class spell_the_lich_king_vile_spirit_damage_target_search : public SpellScriptL
GetCaster()->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_the_lich_king_vile_spirit_damage_target_search_SpellScript::CheckTargetCount, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_the_lich_king_vile_spirit_damage_target_search_SpellScript();
}
@@ -2855,7 +2858,7 @@ class spell_the_lich_king_harvest_soul : public SpellScriptLoader
{
PrepareAuraScript(spell_the_lich_king_harvest_soul_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetOwner()->GetInstanceScript() != NULL;
}
@@ -2867,13 +2870,13 @@ class spell_the_lich_king_harvest_soul : public SpellScriptLoader
GetTarget()->CastSpell((Unit*)NULL, SPELL_HARVESTED_SOUL, true, NULL, NULL, GetTarget()->GetInstanceScript()->GetData64(DATA_THE_LICH_KING));
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectRemove += AuraEffectRemoveFn(spell_the_lich_king_harvest_soul_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_the_lich_king_harvest_soul_AuraScript();
}
@@ -2903,14 +2906,14 @@ class spell_the_lich_king_lights_favor : public SpellScriptLoader
amount = int32(caster->GetHealthPct());
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_the_lich_king_lights_favor_AuraScript::OnPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_HEAL);
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_the_lich_king_lights_favor_AuraScript::CalculateBonus, EFFECT_1, SPELL_AURA_MOD_DAMAGE_PERCENT_DONE);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_the_lich_king_lights_favor_AuraScript();
}
@@ -2933,13 +2936,13 @@ class spell_the_lich_king_soul_rip : public SpellScriptLoader
caster->CastCustomSpell(SPELL_SOUL_RIP_DAMAGE, SPELLVALUE_BASE_POINT0, 5000 * aurEff->GetTickNumber(), GetTarget(), true, NULL, aurEff, GetCasterGUID());
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_the_lich_king_soul_rip_AuraScript::OnPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_the_lich_king_soul_rip_AuraScript();
}
@@ -2954,7 +2957,7 @@ class spell_the_lich_king_restore_soul : public SpellScriptLoader
{
PrepareSpellScript(spell_the_lich_king_restore_soul_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
_instance = GetCaster()->GetInstanceScript();
return _instance != NULL;
@@ -2983,7 +2986,7 @@ class spell_the_lich_king_restore_soul : public SpellScriptLoader
target->RemoveAurasDueToSpell(target->GetMap()->IsHeroic() ? SPELL_HARVEST_SOULS_TELEPORT : SPELL_HARVEST_SOUL_TELEPORT);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHit += SpellEffectFn(spell_the_lich_king_restore_soul_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_APPLY_AURA);
BeforeHit += SpellHitFn(spell_the_lich_king_restore_soul_SpellScript::RemoveAura);
@@ -2992,7 +2995,7 @@ class spell_the_lich_king_restore_soul : public SpellScriptLoader
InstanceScript* _instance;
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_the_lich_king_restore_soul_SpellScript();
}
@@ -3007,7 +3010,7 @@ class spell_the_lich_king_dark_hunger : public SpellScriptLoader
{
PrepareAuraScript(spell_the_lich_king_dark_hunger_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_DARK_HUNGER_HEAL))
return false;
@@ -3021,13 +3024,13 @@ class spell_the_lich_king_dark_hunger : public SpellScriptLoader
GetTarget()->CastCustomSpell(SPELL_DARK_HUNGER_HEAL, SPELLVALUE_BASE_POINT0, heal, GetTarget(), true, NULL, aurEff);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectProc += AuraEffectProcFn(spell_the_lich_king_dark_hunger_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_the_lich_king_dark_hunger_AuraScript();
}
@@ -3042,7 +3045,7 @@ class spell_the_lich_king_in_frostmourne_room : public SpellScriptLoader
{
PrepareAuraScript(spell_the_lich_king_in_frostmourne_room_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetOwner()->GetInstanceScript() != NULL;
}
@@ -3054,13 +3057,13 @@ class spell_the_lich_king_in_frostmourne_room : public SpellScriptLoader
GetTarget()->CastSpell((Unit*)NULL, SPELL_HARVESTED_SOUL, true, NULL, NULL, GetTarget()->GetInstanceScript()->GetData64(DATA_THE_LICH_KING));
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectRemove += AuraEffectRemoveFn(spell_the_lich_king_in_frostmourne_room_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_the_lich_king_in_frostmourne_room_AuraScript();
}
@@ -3081,13 +3084,13 @@ class spell_the_lich_king_summon_spirit_bomb : public SpellScriptLoader
GetHitUnit()->CastSpell((Unit*)NULL, uint32(GetEffectValue()), true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_the_lich_king_summon_spirit_bomb_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_the_lich_king_summon_spirit_bomb_SpellScript();
}
@@ -3111,13 +3114,13 @@ class spell_the_lich_king_trigger_vile_spirit : public SpellScriptLoader
VileSpiritActivateEvent(target).Execute(0, 0);
}
- void Register()
+ void Register() OVERRIDE
{
OnHit += SpellHitFn(spell_the_lich_king_trigger_vile_spirit_SpellScript::ActivateSpirit);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_the_lich_king_trigger_vile_spirit_SpellScript();
}
@@ -3141,13 +3144,13 @@ class spell_the_lich_king_jump : public SpellScriptLoader
creature->AI()->DoAction(ACTION_BREAK_FROSTMOURNE);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_the_lich_king_jump_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_the_lich_king_jump_SpellScript();
}
@@ -3168,13 +3171,13 @@ class spell_the_lich_king_jump_remove_aura : public SpellScriptLoader
GetHitUnit()->RemoveAurasDueToSpell(uint32(GetEffectValue()));
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_the_lich_king_jump_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_the_lich_king_jump_SpellScript();
}
@@ -3189,7 +3192,7 @@ class spell_the_lich_king_play_movie : public SpellScriptLoader
{
PrepareSpellScript(spell_the_lich_king_play_movie_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sMovieStore.LookupEntry(MOVIE_FALL_OF_THE_LICH_KING))
return false;
@@ -3203,13 +3206,13 @@ class spell_the_lich_king_play_movie : public SpellScriptLoader
player->SendMovieStart(MOVIE_FALL_OF_THE_LICH_KING);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_the_lich_king_play_movie_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_the_lich_king_play_movie_SpellScript();
}
@@ -3220,7 +3223,7 @@ class achievement_been_waiting_long_time : public AchievementCriteriaScript
public:
achievement_been_waiting_long_time() : AchievementCriteriaScript("achievement_been_waiting_long_time") { }
- bool OnCheck(Player* /*source*/, Unit* target)
+ bool OnCheck(Player* /*source*/, Unit* target) OVERRIDE
{
if (!target)
return false;
@@ -3234,7 +3237,7 @@ class achievement_neck_deep_in_vile : public AchievementCriteriaScript
public:
achievement_neck_deep_in_vile() : AchievementCriteriaScript("achievement_neck_deep_in_vile") { }
- bool OnCheck(Player* /*source*/, Unit* target)
+ bool OnCheck(Player* /*source*/, Unit* target) OVERRIDE
{
if (!target)
return false;
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp
index 97a70f43c27..557d6768790 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp
@@ -155,8 +155,8 @@ class RisenArchmageCheck
// look for all permanently spawned Risen Archmages that are not yet in combat
bool operator()(Creature* creature)
{
- return creature->isAlive() && creature->GetEntry() == NPC_RISEN_ARCHMAGE &&
- creature->GetDBTableGUIDLow() && !creature->isInCombat();
+ return creature->IsAlive() && creature->GetEntry() == NPC_RISEN_ARCHMAGE &&
+ creature->GetDBTableGUIDLow() && !creature->IsInCombat();
}
};
@@ -284,7 +284,7 @@ class boss_valithria_dreamwalker : public CreatureScript
{
}
- void InitializeAI()
+ void InitializeAI() OVERRIDE
{
if (CreatureData const* data = sObjectMgr->GetCreatureData(me->GetDBTableGUIDLow()))
if (data->curhealth)
@@ -294,7 +294,7 @@ class boss_valithria_dreamwalker : public CreatureScript
Reset();
}
- void Reset()
+ void Reset() OVERRIDE
{
me->SetHealth(_spawnHealth);
me->SetReactState(REACT_PASSIVE);
@@ -312,11 +312,11 @@ class boss_valithria_dreamwalker : public CreatureScript
_done = false;
}
- void AttackStart(Unit* /*target*/)
+ void AttackStart(Unit* /*target*/) OVERRIDE
{
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
if (action != ACTION_ENTER_COMBAT)
return;
@@ -329,7 +329,7 @@ class boss_valithria_dreamwalker : public CreatureScript
_events.ScheduleEvent(EVENT_BERSERK, 420000);
}
- void HealReceived(Unit* healer, uint32& heal)
+ void HealReceived(Unit* healer, uint32& heal) OVERRIDE
{
if (!me->hasLootRecipient())
me->SetLootRecipient(healer);
@@ -359,7 +359,7 @@ class boss_valithria_dreamwalker : public CreatureScript
archmage->AI()->DoZoneInCombat(); // call EnterCombat on one of them, that will make it all start
}
- void DamageTaken(Unit* /*attacker*/, uint32& damage)
+ void DamageTaken(Unit* /*attacker*/, uint32& damage) OVERRIDE
{
if (me->HealthBelowPctDamaged(25, damage))
{
@@ -384,7 +384,7 @@ class boss_valithria_dreamwalker : public CreatureScript
}
}
- void SpellHit(Unit* /*caster*/, SpellInfo const* spell)
+ void SpellHit(Unit* /*caster*/, SpellInfo const* spell) OVERRIDE
{
if (spell->Id == SPELL_DREAM_SLIP)
{
@@ -402,7 +402,7 @@ class boss_valithria_dreamwalker : public CreatureScript
}
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
if (summon->GetEntry() == NPC_DREAM_PORTAL_PRE_EFFECT)
{
@@ -416,14 +416,14 @@ class boss_valithria_dreamwalker : public CreatureScript
}
}
- void SummonedCreatureDespawn(Creature* summon)
+ void SummonedCreatureDespawn(Creature* summon) OVERRIDE
{
if (summon->GetEntry() == NPC_DREAM_PORTAL || summon->GetEntry() == NPC_NIGHTMARE_PORTAL)
if (summon->AI()->GetData(MISSED_PORTALS))
++_missedPortals;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
// does not enter combat
if (_instance->GetBossState(DATA_VALITHRIA_DREAMWALKER) != IN_PROGRESS)
@@ -460,7 +460,7 @@ class boss_valithria_dreamwalker : public CreatureScript
}
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
if (type == MISSED_PORTALS)
return _missedPortals;
@@ -480,7 +480,7 @@ class boss_valithria_dreamwalker : public CreatureScript
bool _done;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<boss_valithria_dreamwalkerAI>(creature);
}
@@ -497,13 +497,13 @@ class npc_green_dragon_combat_trigger : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
me->SetReactState(REACT_PASSIVE);
}
- void EnterCombat(Unit* target)
+ void EnterCombat(Unit* target) OVERRIDE
{
if (!instance->CheckRequiredBosses(DATA_VALITHRIA_DREAMWALKER, target->ToPlayer()))
{
@@ -519,24 +519,24 @@ class npc_green_dragon_combat_trigger : public CreatureScript
valithria->AI()->DoAction(ACTION_ENTER_COMBAT);
}
- void AttackStart(Unit* target)
+ void AttackStart(Unit* target) OVERRIDE
{
if (target->GetTypeId() == TYPEID_PLAYER)
BossAI::AttackStart(target);
}
- bool CanAIAttack(Unit const* target) const
+ bool CanAIAttack(Unit const* target) const OVERRIDE
{
return target->GetTypeId() == TYPEID_PLAYER;
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
_JustReachedHome();
DoAction(ACTION_DEATH);
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
if (action == ACTION_DEATH)
{
@@ -545,9 +545,9 @@ class npc_green_dragon_combat_trigger : public CreatureScript
}
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
- if (!me->isInCombat())
+ if (!me->IsInCombat())
return;
std::list<HostileReference*> const& threatList = me->getThreatManager().getThreatList();
@@ -575,7 +575,7 @@ class npc_green_dragon_combat_trigger : public CreatureScript
bool _evadeCheck;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_green_dragon_combat_triggerAI>(creature);
}
@@ -593,7 +593,7 @@ class npc_the_lich_king_controller : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_events.Reset();
_events.ScheduleEvent(EVENT_GLUTTONOUS_ABOMINATION_SUMMONER, 5000);
@@ -604,18 +604,18 @@ class npc_the_lich_king_controller : public CreatureScript
me->SetReactState(REACT_PASSIVE);
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
me->setActive(false);
}
- void EnterCombat(Unit* /*target*/)
+ void EnterCombat(Unit* /*target*/) OVERRIDE
{
Talk(SAY_LICH_KING_INTRO);
me->setActive(true);
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
// must not be in dream phase
summon->SetPhaseMask((summon->GetPhaseMask() & ~0x10), true);
@@ -624,7 +624,7 @@ class npc_the_lich_king_controller : public CreatureScript
summon->AI()->AttackStart(target);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -664,7 +664,7 @@ class npc_the_lich_king_controller : public CreatureScript
InstanceScript* _instance;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_the_lich_king_controllerAI(creature);
}
@@ -682,12 +682,12 @@ class npc_risen_archmage : public CreatureScript
{
}
- bool CanAIAttack(Unit const* target) const
+ bool CanAIAttack(Unit const* target) const OVERRIDE
{
return target->GetEntry() != NPC_VALITHRIA_DREAMWALKER;
}
- void Reset()
+ void Reset() OVERRIDE
{
_events.Reset();
_events.ScheduleEvent(EVENT_FROSTBOLT_VOLLEY, urand(5000, 15000));
@@ -696,7 +696,7 @@ class npc_risen_archmage : public CreatureScript
_canCallEnterCombat = true;
}
- void EnterCombat(Unit* /*target*/)
+ void EnterCombat(Unit* /*target*/) OVERRIDE
{
me->FinishSpell(CURRENT_CHANNELED_SPELL, false);
if (me->GetDBTableGUIDLow() && _canCallEnterCombat)
@@ -716,7 +716,7 @@ class npc_risen_archmage : public CreatureScript
}
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
if (action != ACTION_ENTER_COMBAT)
return;
@@ -726,7 +726,7 @@ class npc_risen_archmage : public CreatureScript
_canCallEnterCombat = true;
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
if (summon->GetEntry() == NPC_COLUMN_OF_FROST)
summon->m_Events.AddEvent(new DelayedCastEvent(summon, SPELL_COLUMN_OF_FROST_DAMAGE, 0, 8000), summon->m_Events.CalculateTime(2000));
@@ -734,9 +734,9 @@ class npc_risen_archmage : public CreatureScript
summon->DespawnOrUnsummon(36000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
- if (!me->isInCombat())
+ if (!me->IsInCombat())
if (me->GetDBTableGUIDLow())
if (!me->GetCurrentSpell(CURRENT_CHANNELED_SPELL))
DoCast(me, SPELL_CORRUPTION);
@@ -781,7 +781,7 @@ class npc_risen_archmage : public CreatureScript
bool _canCallEnterCombat;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_risen_archmageAI>(creature);
}
@@ -798,14 +798,14 @@ class npc_blazing_skeleton : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_events.Reset();
_events.ScheduleEvent(EVENT_FIREBALL, urand(2000, 4000));
_events.ScheduleEvent(EVENT_LEY_WASTE, urand(15000, 20000));
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -820,7 +820,7 @@ class npc_blazing_skeleton : public CreatureScript
switch (eventId)
{
case EVENT_FIREBALL:
- if (!me->IsWithinMeleeRange(me->getVictim()))
+ if (!me->IsWithinMeleeRange(me->GetVictim()))
DoCastVictim(SPELL_FIREBALL);
_events.ScheduleEvent(EVENT_FIREBALL, urand(2000, 4000));
break;
@@ -840,7 +840,7 @@ class npc_blazing_skeleton : public CreatureScript
EventMap _events;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_blazing_skeletonAI>(creature);
}
@@ -858,20 +858,20 @@ class npc_suppresser : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_events.Reset();
_events.ScheduleEvent(EVENT_SUPPRESSION, urand(10000, 15000));
me->SetReactState(REACT_PASSIVE);
}
- void IsSummonedBy(Unit* /*summoner*/)
+ void IsSummonedBy(Unit* /*summoner*/) OVERRIDE
{
if (Creature* valithria = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_VALITHRIA_DREAMWALKER)))
AttackStart(valithria);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -896,7 +896,7 @@ class npc_suppresser : public CreatureScript
}
// this creature has REACT_PASSIVE so it does not always have victim here
- if (Unit* victim = me->getVictim())
+ if (Unit* victim = me->GetVictim())
if (victim->GetEntry() != NPC_VALITHRIA_DREAMWALKER)
DoMeleeAttackIfReady();
}
@@ -906,7 +906,7 @@ class npc_suppresser : public CreatureScript
InstanceScript* const _instance;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_suppresserAI>(creature);
}
@@ -923,12 +923,12 @@ class npc_blistering_zombie : public CreatureScript
{
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
DoCast(me, SPELL_ACID_BURST, true);
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -937,7 +937,7 @@ class npc_blistering_zombie : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_blistering_zombieAI>(creature);
}
@@ -954,18 +954,18 @@ class npc_gluttonous_abomination : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_events.Reset();
_events.ScheduleEvent(EVENT_GUT_SPRAY, urand(10000, 13000));
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
DoCast(me, SPELL_ROT_WORM_SPAWNER, true);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -995,7 +995,7 @@ class npc_gluttonous_abomination : public CreatureScript
EventMap _events;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_gluttonous_abominationAI>(creature);
}
@@ -1013,18 +1013,21 @@ class npc_dream_portal : public CreatureScript
{
}
- void OnSpellClick(Unit* /*clicker*/)
+ void OnSpellClick(Unit* /*clicker*/, bool& result) OVERRIDE
{
+ if (!result)
+ return;
+
_used = true;
me->DespawnOrUnsummon();
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
return (type == MISSED_PORTALS && _used) ? 0 : 1;
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
UpdateVictim();
}
@@ -1033,7 +1036,7 @@ class npc_dream_portal : public CreatureScript
bool _used;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_dream_portalAI>(creature);
}
@@ -1051,7 +1054,7 @@ class npc_dream_cloud : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_events.Reset();
_events.ScheduleEvent(EVENT_CHECK_PLAYER, 1000);
@@ -1059,7 +1062,7 @@ class npc_dream_cloud : public CreatureScript
me->LoadCreaturesAddon(true);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
// trigger
if (_instance->GetBossState(DATA_VALITHRIA_DREAMWALKER) != IN_PROGRESS)
@@ -1097,7 +1100,7 @@ class npc_dream_cloud : public CreatureScript
InstanceScript* _instance;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_dream_cloudAI>(creature);
}
@@ -1121,13 +1124,13 @@ class spell_dreamwalker_mana_void : public SpellScriptLoader
PreventDefaultAction();
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_dreamwalker_mana_void_AuraScript::PeriodicTick, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_dreamwalker_mana_void_AuraScript();
}
@@ -1142,7 +1145,7 @@ class spell_dreamwalker_decay_periodic_timer : public SpellScriptLoader
{
PrepareAuraScript(spell_dreamwalker_decay_periodic_timer_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
_decayRate = GetId() != SPELL_TIMER_BLAZING_SKELETON ? 1000 : 5000;
return true;
@@ -1157,7 +1160,7 @@ class spell_dreamwalker_decay_periodic_timer : public SpellScriptLoader
aurEff->SetPeriodicTimer(timer - _decayRate);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectUpdatePeriodic += AuraEffectUpdatePeriodicFn(spell_dreamwalker_decay_periodic_timer_AuraScript::DecayPeriodicTimer, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
}
@@ -1165,7 +1168,7 @@ class spell_dreamwalker_decay_periodic_timer : public SpellScriptLoader
int32 _decayRate;
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_dreamwalker_decay_periodic_timer_AuraScript();
}
@@ -1180,7 +1183,7 @@ class spell_dreamwalker_summoner : public SpellScriptLoader
{
PrepareSpellScript(spell_dreamwalker_summoner_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
if (!GetCaster()->GetInstanceScript())
return false;
@@ -1207,14 +1210,14 @@ class spell_dreamwalker_summoner : public SpellScriptLoader
GetHitUnit()->CastSpell(GetCaster(), GetSpellInfo()->Effects[effIndex].TriggerSpell, true, NULL, NULL, GetCaster()->GetInstanceScript()->GetData64(DATA_VALITHRIA_LICH_KING));
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_dreamwalker_summoner_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENTRY);
OnEffectHitTarget += SpellEffectFn(spell_dreamwalker_summoner_SpellScript::HandleForceCast, EFFECT_0, SPELL_EFFECT_FORCE_CAST);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_dreamwalker_summoner_SpellScript();
}
@@ -1249,13 +1252,13 @@ class spell_dreamwalker_summon_suppresser : public SpellScriptLoader
caster->CastSpell(summoners.back(), SPELL_SUMMON_SUPPRESSER, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_dreamwalker_summon_suppresser_AuraScript::PeriodicTick, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_dreamwalker_summon_suppresser_AuraScript();
}
@@ -1270,7 +1273,7 @@ class spell_dreamwalker_summon_suppresser_effect : public SpellScriptLoader
{
PrepareSpellScript(spell_dreamwalker_summon_suppresser_effect_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
if (!GetCaster()->GetInstanceScript())
return false;
@@ -1286,13 +1289,13 @@ class spell_dreamwalker_summon_suppresser_effect : public SpellScriptLoader
GetHitUnit()->CastSpell(GetCaster(), GetSpellInfo()->Effects[effIndex].TriggerSpell, true, NULL, NULL, GetCaster()->GetInstanceScript()->GetData64(DATA_VALITHRIA_LICH_KING));
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_dreamwalker_summon_suppresser_effect_SpellScript::HandleForceCast, EFFECT_0, SPELL_EFFECT_FORCE_CAST);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_dreamwalker_summon_suppresser_effect_SpellScript();
}
@@ -1317,13 +1320,13 @@ class spell_dreamwalker_summon_dream_portal : public SpellScriptLoader
GetHitUnit()->CastSpell(GetHitUnit(), spellId, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_dreamwalker_summon_dream_portal_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_dreamwalker_summon_dream_portal_SpellScript();
}
@@ -1348,13 +1351,13 @@ class spell_dreamwalker_summon_nightmare_portal : public SpellScriptLoader
GetHitUnit()->CastSpell(GetHitUnit(), spellId, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_dreamwalker_summon_nightmare_portal_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_dreamwalker_summon_nightmare_portal_SpellScript();
}
@@ -1369,7 +1372,7 @@ class spell_dreamwalker_nightmare_cloud : public SpellScriptLoader
{
PrepareAuraScript(spell_dreamwalker_nightmare_cloud_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
_instance = GetOwner()->GetInstanceScript();
return _instance != NULL;
@@ -1381,7 +1384,7 @@ class spell_dreamwalker_nightmare_cloud : public SpellScriptLoader
PreventDefaultAction();
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_dreamwalker_nightmare_cloud_AuraScript::PeriodicTick, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
}
@@ -1389,7 +1392,7 @@ class spell_dreamwalker_nightmare_cloud : public SpellScriptLoader
InstanceScript* _instance;
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_dreamwalker_nightmare_cloud_AuraScript();
}
@@ -1415,13 +1418,13 @@ class spell_dreamwalker_twisted_nightmares : public SpellScriptLoader
GetHitUnit()->CastSpell((Unit*)NULL, GetSpellInfo()->Effects[effIndex].TriggerSpell, true, NULL, NULL, instance->GetData64(DATA_VALITHRIA_DREAMWALKER));
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_dreamwalker_twisted_nightmares_SpellScript::HandleScript, EFFECT_2, SPELL_EFFECT_FORCE_CAST);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_dreamwalker_twisted_nightmares_SpellScript();
}
@@ -1432,7 +1435,7 @@ class achievement_portal_jockey : public AchievementCriteriaScript
public:
achievement_portal_jockey() : AchievementCriteriaScript("achievement_portal_jockey") { }
- bool OnCheck(Player* /*source*/, Unit* target)
+ bool OnCheck(Player* /*source*/, Unit* target) OVERRIDE
{
return target && !target->GetAI()->GetData(MISSED_PORTALS);
}
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp
index 3ffa6a0c4be..e3e1bfedc44 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp
@@ -292,7 +292,7 @@ class FrostwingVrykulSearcher
bool operator()(Unit* unit)
{
- if (!unit->isAlive())
+ if (!unit->IsAlive())
return false;
switch (unit->GetEntry())
@@ -387,7 +387,7 @@ class npc_highlord_tirion_fordring_lh : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_events.Reset();
_theLichKing = 0;
@@ -398,7 +398,7 @@ class npc_highlord_tirion_fordring_lh : public CreatureScript
// IMPORTANT NOTE: This is triggered from per-GUID scripts
// of The Damned SAI
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
if (type == DATA_DAMNED_KILLS && data == 1)
{
@@ -460,7 +460,7 @@ class npc_highlord_tirion_fordring_lh : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (_damnedKills != 2)
return;
@@ -581,7 +581,7 @@ class npc_highlord_tirion_fordring_lh : public CreatureScript
uint16 _damnedKills;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_highlord_tirion_fordringAI>(creature);
}
@@ -598,7 +598,7 @@ class npc_rotting_frost_giant : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_events.Reset();
_events.ScheduleEvent(EVENT_DEATH_PLAGUE, 15000);
@@ -606,12 +606,12 @@ class npc_rotting_frost_giant : public CreatureScript
_events.ScheduleEvent(EVENT_ARCTIC_BREATH, urand(10000, 15000));
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_events.Reset();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -653,7 +653,7 @@ class npc_rotting_frost_giant : public CreatureScript
EventMap _events;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_rotting_frost_giantAI>(creature);
}
@@ -671,7 +671,7 @@ class npc_frost_freeze_trap : public CreatureScript
SetCombatMovement(false);
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -684,7 +684,7 @@ class npc_frost_freeze_trap : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
_events.Update(diff);
@@ -699,7 +699,7 @@ class npc_frost_freeze_trap : public CreatureScript
EventMap _events;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_frost_freeze_trapAI>(creature);
}
@@ -710,7 +710,7 @@ class npc_alchemist_adrianna : public CreatureScript
public:
npc_alchemist_adrianna() : CreatureScript("npc_alchemist_adrianna") { }
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
if (!creature->FindCurrentSpellBySpellId(SPELL_HARVEST_BLIGHT_SPECIMEN) && !creature->FindCurrentSpellBySpellId(SPELL_HARVEST_BLIGHT_SPECIMEN25))
if (player->HasAura(SPELL_ORANGE_BLIGHT_RESIDUE) && player->HasAura(SPELL_GREEN_BLIGHT_RESIDUE))
@@ -731,7 +731,7 @@ class boss_sister_svalna : public CreatureScript
{
}
- void InitializeAI()
+ void InitializeAI() OVERRIDE
{
if (!me->isDead())
Reset();
@@ -739,14 +739,14 @@ class boss_sister_svalna : public CreatureScript
me->SetReactState(REACT_PASSIVE);
}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
me->SetReactState(REACT_DEFENSIVE);
_isEventInProgress = false;
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
Talk(SAY_SVALNA_DEATH);
@@ -756,7 +756,7 @@ class boss_sister_svalna : public CreatureScript
{
if (Creature* crusader = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_CAPTAIN_ARNATH + i)))
{
- if (crusader->isAlive() && crusader->GetEntry() == crusader->GetCreatureData()->id)
+ if (crusader->IsAlive() && crusader->GetEntry() == crusader->GetCreatureData()->id)
{
crusader->m_Events.AddEvent(new CaptainSurviveTalk(*crusader), crusader->m_Events.CalculateTime(delay));
delay += 6000;
@@ -765,7 +765,7 @@ class boss_sister_svalna : public CreatureScript
}
}
- void EnterCombat(Unit* /*attacker*/)
+ void EnterCombat(Unit* /*attacker*/) OVERRIDE
{
_EnterCombat();
if (Creature* crok = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_CROK_SCOURGEBANE)))
@@ -775,7 +775,7 @@ class boss_sister_svalna : public CreatureScript
events.ScheduleEvent(EVENT_AETHER_SHIELD, urand(100000, 110000));
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
switch (victim->GetTypeId())
{
@@ -800,7 +800,7 @@ class boss_sister_svalna : public CreatureScript
}
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
_JustReachedHome();
me->SetReactState(REACT_PASSIVE);
@@ -808,7 +808,7 @@ class boss_sister_svalna : public CreatureScript
me->SetHover(false);
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -836,7 +836,7 @@ class boss_sister_svalna : public CreatureScript
}
}
- void SpellHit(Unit* caster, SpellInfo const* spell)
+ void SpellHit(Unit* caster, SpellInfo const* spell) OVERRIDE
{
if (spell->Id == SPELL_HURL_SPEAR && me->HasAura(SPELL_AETHER_SHIELD))
{
@@ -845,7 +845,7 @@ class boss_sister_svalna : public CreatureScript
}
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type != EFFECT_MOTION_TYPE || id != POINT_LAND)
return;
@@ -857,7 +857,7 @@ class boss_sister_svalna : public CreatureScript
me->SetHover(false);
}
- void SpellHitTarget(Unit* target, SpellInfo const* spell)
+ void SpellHitTarget(Unit* target, SpellInfo const* spell) OVERRIDE
{
switch (spell->Id)
{
@@ -877,7 +877,7 @@ class boss_sister_svalna : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim() && !_isEventInProgress)
return;
@@ -922,7 +922,7 @@ class boss_sister_svalna : public CreatureScript
bool _isEventInProgress;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<boss_sister_svalnaAI>(creature);
}
@@ -946,7 +946,7 @@ class npc_crok_scourgebane : public CreatureScript
_didUnderTenPercentText = false;
}
- void Reset()
+ void Reset() OVERRIDE
{
_events.Reset();
_events.ScheduleEvent(EVENT_SCOURGE_STRIKE, urand(7500, 12500));
@@ -956,11 +956,11 @@ class npc_crok_scourgebane : public CreatureScript
_wipeCheckTimer = 1000;
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
if (action == ACTION_START_GAUNTLET)
{
- if (_isEventDone || !me->isAlive())
+ if (_isEventDone || !me->IsAlive())
return;
_isEventActive = true;
@@ -988,7 +988,7 @@ class npc_crok_scourgebane : public CreatureScript
}
}
- void SetGUID(uint64 guid, int32 type/* = 0*/)
+ void SetGUID(uint64 guid, int32 type/* = 0*/) OVERRIDE
{
if (type == ACTION_VRYKUL_DEATH)
{
@@ -1008,7 +1008,7 @@ class npc_crok_scourgebane : public CreatureScript
}
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
switch (waypointId)
{
@@ -1038,7 +1038,7 @@ class npc_crok_scourgebane : public CreatureScript
}
}
- void WaypointStart(uint32 waypointId)
+ void WaypointStart(uint32 waypointId) OVERRIDE
{
_currentWPid = waypointId;
switch (waypointId)
@@ -1086,7 +1086,7 @@ class npc_crok_scourgebane : public CreatureScript
}
}
- void DamageTaken(Unit* /*attacker*/, uint32& damage)
+ void DamageTaken(Unit* /*attacker*/, uint32& damage) OVERRIDE
{
// check wipe
if (!_wipeCheckTimer)
@@ -1128,7 +1128,7 @@ class npc_crok_scourgebane : public CreatureScript
}
}
- void UpdateEscortAI(uint32 const diff)
+ void UpdateEscortAI(uint32 const diff) OVERRIDE
{
if (_wipeCheckTimer <= diff)
_wipeCheckTimer = 0;
@@ -1186,7 +1186,7 @@ class npc_crok_scourgebane : public CreatureScript
DoMeleeAttackIfReady();
}
- bool CanAIAttack(Unit const* target) const
+ bool CanAIAttack(Unit const* target) const OVERRIDE
{
// do not see targets inside Frostwing Halls when we are not there
return (me->GetPositionY() > 2660.0f) == (target->GetPositionY() > 2660.0f);
@@ -1205,7 +1205,7 @@ class npc_crok_scourgebane : public CreatureScript
bool _didUnderTenPercentText;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_crok_scourgebaneAI>(creature);
}
@@ -1221,7 +1221,7 @@ struct npc_argent_captainAI : public ScriptedAI
IsUndead = false;
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (_firstDeath)
{
@@ -1232,13 +1232,13 @@ struct npc_argent_captainAI : public ScriptedAI
Talk(SAY_CAPTAIN_SECOND_DEATH);
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
if (victim->GetTypeId() == TYPEID_PLAYER)
Talk(SAY_CAPTAIN_KILL);
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
if (action == ACTION_START_GAUNTLET)
{
@@ -1258,20 +1258,20 @@ struct npc_argent_captainAI : public ScriptedAI
}
}
- void EnterCombat(Unit* /*target*/)
+ void EnterCombat(Unit* /*target*/) OVERRIDE
{
me->SetHomePosition(*me);
if (IsUndead)
DoZoneInCombat();
}
- bool CanAIAttack(Unit const* target) const
+ bool CanAIAttack(Unit const* target) const OVERRIDE
{
// do not see targets inside Frostwing Halls when we are not there
return (me->GetPositionY() > 2660.0f) == (target->GetPositionY() > 2660.0f);
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
// not yet following
if (me->GetMotionMaster()->GetMotionSlotType(MOTION_SLOT_IDLE) != CHASE_MOTION_TYPE || IsUndead)
@@ -1293,7 +1293,7 @@ struct npc_argent_captainAI : public ScriptedAI
Reset();
}
- void SpellHit(Unit* /*caster*/, SpellInfo const* spell)
+ void SpellHit(Unit* /*caster*/, SpellInfo const* spell) OVERRIDE
{
if (spell->Id == SPELL_REVIVE_CHAMPION && !IsUndead)
{
@@ -1346,7 +1346,7 @@ class npc_captain_arnath : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
Events.Reset();
Events.ScheduleEvent(EVENT_ARNATH_FLASH_HEAL, urand(4000, 7000));
@@ -1356,7 +1356,7 @@ class npc_captain_arnath : public CreatureScript
Events.ScheduleEvent(EVENT_ARNATH_DOMINATE_MIND, urand(22000, 27000));
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -1410,7 +1410,7 @@ class npc_captain_arnath : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_captain_arnathAI>(creature);
}
@@ -1427,7 +1427,7 @@ class npc_captain_brandon : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
Events.Reset();
Events.ScheduleEvent(EVENT_BRANDON_CRUSADER_STRIKE, urand(6000, 10000));
@@ -1437,7 +1437,7 @@ class npc_captain_brandon : public CreatureScript
Events.ScheduleEvent(EVENT_BRANDON_HAMMER_OF_BETRAYAL, urand(25000, 30000));
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -1478,7 +1478,7 @@ class npc_captain_brandon : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_captain_brandonAI>(creature);
}
@@ -1495,7 +1495,7 @@ class npc_captain_grondel : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
Events.Reset();
Events.ScheduleEvent(EVENT_GRONDEL_CHARGE_CHECK, 500);
@@ -1505,7 +1505,7 @@ class npc_captain_grondel : public CreatureScript
Events.ScheduleEvent(EVENT_GRONDEL_CONFLAGRATION, urand(12000, 17000));
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -1545,7 +1545,7 @@ class npc_captain_grondel : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_captain_grondelAI>(creature);
}
@@ -1562,7 +1562,7 @@ class npc_captain_rupert : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
Events.Reset();
Events.ScheduleEvent(EVENT_RUPERT_FEL_IRON_BOMB, urand(15000, 20000));
@@ -1570,7 +1570,7 @@ class npc_captain_rupert : public CreatureScript
Events.ScheduleEvent(EVENT_RUPERT_ROCKET_LAUNCH, urand(10000, 15000));
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -1608,7 +1608,7 @@ class npc_captain_rupert : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetIcecrownCitadelAI<npc_captain_rupertAI>(creature);
}
@@ -1625,14 +1625,14 @@ class npc_frostwing_vrykul : public CreatureScript
{
}
- bool CanAIAttack(Unit const* target) const
+ bool CanAIAttack(Unit const* target) const OVERRIDE
{
// do not see targets inside Frostwing Halls when we are not there
return (me->GetPositionY() > 2660.0f) == (target->GetPositionY() > 2660.0f) && SmartAI::CanAIAttack(target);
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_frostwing_vrykulAI(creature);
}
@@ -1649,13 +1649,13 @@ class npc_impaling_spear : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
me->SetReactState(REACT_PASSIVE);
_vehicleCheckTimer = 500;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (_vehicleCheckTimer <= diff)
{
@@ -1670,7 +1670,7 @@ class npc_impaling_spear : public CreatureScript
uint32 _vehicleCheckTimer;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_impaling_spearAI(creature);
}
@@ -1687,7 +1687,7 @@ class npc_arthas_teleport_visual : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_events.Reset();
if (_instance->GetBossState(DATA_PROFESSOR_PUTRICIDE) == DONE &&
@@ -1696,7 +1696,7 @@ class npc_arthas_teleport_visual : public CreatureScript
_events.ScheduleEvent(EVENT_SOUL_MISSILE, urand(1000, 6000));
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (_events.Empty())
return;
@@ -1715,7 +1715,7 @@ class npc_arthas_teleport_visual : public CreatureScript
EventMap _events;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
// Distance from the center of the spire
if (creature->GetExactDist2d(4357.052f, 2769.421f) < 100.0f && creature->GetHomePosition().GetPositionZ() < 315.0f)
@@ -1755,14 +1755,14 @@ class spell_icc_stoneform : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectApply += AuraEffectApplyFn(spell_icc_stoneform_AuraScript::OnApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
OnEffectRemove += AuraEffectRemoveFn(spell_icc_stoneform_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_icc_stoneform_AuraScript();
}
@@ -1807,7 +1807,7 @@ class spell_icc_sprit_alarm : public SpellScriptLoader
wards.sort(Trinity::ObjectDistanceOrderPred(GetCaster()));
for (std::list<Creature*>::iterator itr = wards.begin(); itr != wards.end(); ++itr)
{
- if ((*itr)->isAlive() && (*itr)->HasAura(SPELL_STONEFORM))
+ if ((*itr)->IsAlive() && (*itr)->HasAura(SPELL_STONEFORM))
{
(*itr)->AI()->Talk(SAY_TRAP_ACTIVATE);
(*itr)->RemoveAurasDueToSpell(SPELL_STONEFORM);
@@ -1818,13 +1818,13 @@ class spell_icc_sprit_alarm : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHit += SpellEffectFn(spell_icc_sprit_alarm_SpellScript::HandleEvent, EFFECT_2, SPELL_EFFECT_SEND_EVENT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_icc_sprit_alarm_SpellScript();
}
@@ -1862,7 +1862,7 @@ class spell_frost_giant_death_plague : public SpellScriptLoader
{
PrepareSpellScript(spell_frost_giant_death_plague_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
_failed = false;
return true;
@@ -1899,7 +1899,7 @@ class spell_frost_giant_death_plague : public SpellScriptLoader
GetCaster()->CastSpell(GetCaster(), SPELL_DEATH_PLAGUE_KILL, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_frost_giant_death_plague_SpellScript::CountTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ALLY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_frost_giant_death_plague_SpellScript::FilterTargets, EFFECT_1, TARGET_UNIT_SRC_AREA_ALLY);
@@ -1909,7 +1909,7 @@ class spell_frost_giant_death_plague : public SpellScriptLoader
bool _failed;
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_frost_giant_death_plague_SpellScript();
}
@@ -1935,14 +1935,14 @@ class spell_icc_harvest_blight_specimen : public SpellScriptLoader
GetHitUnit()->RemoveAurasDueToSpell(uint32(GetEffectValue()));
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_icc_harvest_blight_specimen_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
OnEffectHitTarget += SpellEffectFn(spell_icc_harvest_blight_specimen_SpellScript::HandleQuestComplete, EFFECT_1, SPELL_EFFECT_QUEST_COMPLETE);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_icc_harvest_blight_specimen_SpellScript();
}
@@ -1954,7 +1954,7 @@ class AliveCheck
bool operator()(WorldObject* object) const
{
if (Unit* unit = object->ToUnit())
- return unit->isAlive();
+ return unit->IsAlive();
return true;
}
};
@@ -1989,14 +1989,14 @@ class spell_svalna_revive_champion : public SpellScriptLoader
caster->GetMotionMaster()->MoveLand(POINT_LAND, pos);
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_svalna_revive_champion_SpellScript::RemoveAliveTarget, EFFECT_0, TARGET_UNIT_DEST_AREA_ENTRY);
OnEffectHit += SpellEffectFn(spell_svalna_revive_champion_SpellScript::Land, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_svalna_revive_champion_SpellScript();
}
@@ -2022,13 +2022,13 @@ class spell_svalna_remove_spear : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_svalna_remove_spear_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_svalna_remove_spear_SpellScript();
}
@@ -2049,13 +2049,13 @@ class spell_icc_soul_missile : public SpellScriptLoader
const_cast<WorldLocation*>(GetExplTargetDest())->RelocateOffset(offset);
}
- void Register()
+ void Register() OVERRIDE
{
OnCast += SpellCastFn(spell_icc_soul_missile_SpellScript::RelocateDest);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_icc_soul_missile_SpellScript();
}
@@ -2066,7 +2066,7 @@ class at_icc_saurfang_portal : public AreaTriggerScript
public:
at_icc_saurfang_portal() : AreaTriggerScript("at_icc_saurfang_portal") { }
- bool OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/)
+ bool OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/) OVERRIDE
{
InstanceScript* instance = player->GetInstanceScript();
if (!instance || instance->GetBossState(DATA_DEATHBRINGER_SAURFANG) != DONE)
@@ -2100,7 +2100,7 @@ class at_icc_shutdown_traps : public AreaTriggerScript
public:
at_icc_shutdown_traps() : AreaTriggerScript("at_icc_shutdown_traps") { }
- bool OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/)
+ bool OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/) OVERRIDE
{
if (InstanceScript* instance = player->GetInstanceScript())
instance->SetData(DATA_COLDFLAME_JETS, DONE);
@@ -2113,7 +2113,7 @@ class at_icc_start_blood_quickening : public AreaTriggerScript
public:
at_icc_start_blood_quickening() : AreaTriggerScript("at_icc_start_blood_quickening") { }
- bool OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/)
+ bool OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/) OVERRIDE
{
if (InstanceScript* instance = player->GetInstanceScript())
if (instance->GetData(DATA_BLOOD_QUICKENING_STATE) == NOT_STARTED)
@@ -2127,7 +2127,7 @@ class at_icc_start_frostwing_gauntlet : public AreaTriggerScript
public:
at_icc_start_frostwing_gauntlet() : AreaTriggerScript("at_icc_start_frostwing_gauntlet") { }
- bool OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/)
+ bool OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/) OVERRIDE
{
if (InstanceScript* instance = player->GetInstanceScript())
if (Creature* crok = ObjectAccessor::GetCreature(*player, instance->GetData64(DATA_CROK_SCOURGEBANE)))
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h
index 887a31baf9a..e328658b9af 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h
+++ b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h
@@ -472,7 +472,7 @@ class spell_trigger_spell_from_caster : public SpellScriptLoader
public:
spell_trigger_spell_from_caster_SpellScript(uint32 triggerId) : SpellScript(), _triggerId(triggerId) { }
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(_triggerId))
return false;
@@ -484,7 +484,7 @@ class spell_trigger_spell_from_caster : public SpellScriptLoader
GetCaster()->CastSpell(GetHitUnit(), _triggerId, true);
}
- void Register()
+ void Register() OVERRIDE
{
AfterHit += SpellHitFn(spell_trigger_spell_from_caster_SpellScript::HandleTrigger);
}
@@ -492,7 +492,7 @@ class spell_trigger_spell_from_caster : public SpellScriptLoader
uint32 _triggerId;
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_trigger_spell_from_caster_SpellScript(_triggerId);
}
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel_teleport.cpp b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel_teleport.cpp
index c528b8413af..72700a83a55 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel_teleport.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel_teleport.cpp
@@ -29,7 +29,7 @@ class icecrown_citadel_teleport : public GameObjectScript
public:
icecrown_citadel_teleport() : GameObjectScript("icecrown_citadel_teleport") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Teleport to Light's Hammer.", GOSSIP_SENDER_ICC_PORT, LIGHT_S_HAMMER_TELEPORT);
if (InstanceScript* instance = go->GetInstanceScript())
@@ -51,7 +51,7 @@ class icecrown_citadel_teleport : public GameObjectScript
return true;
}
- bool OnGossipSelect(Player* player, GameObject* /*go*/, uint32 sender, uint32 action)
+ bool OnGossipSelect(Player* player, GameObject* /*go*/, uint32 sender, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
player->CLOSE_GOSSIP_MENU();
@@ -59,7 +59,7 @@ class icecrown_citadel_teleport : public GameObjectScript
if (!spell)
return false;
- if (player->isInCombat())
+ if (player->IsInCombat())
{
Spell::SendCastResult(player, spell, 0, SPELL_FAILED_AFFECTING_COMBAT);
return true;
@@ -77,9 +77,9 @@ class at_frozen_throne_teleport : public AreaTriggerScript
public:
at_frozen_throne_teleport() : AreaTriggerScript("at_frozen_throne_teleport") { }
- bool OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/)
+ bool OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/) OVERRIDE
{
- if (player->isInCombat())
+ if (player->IsInCombat())
{
if (SpellInfo const* spell = sSpellMgr->GetSpellInfo(FROZEN_THRONE_TELEPORT))
Spell::SendCastResult(player, spell, 0, SPELL_FAILED_AFFECTING_COMBAT);
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
index db4ab2f32d2..d1a0e1a3e26 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
@@ -172,7 +172,7 @@ class instance_icecrown_citadel : public InstanceMapScript
{
Map::PlayerList const &players = instance->GetPlayers();
if (!players.isEmpty())
- if (Player* player = players.begin()->getSource())
+ if (Player* player = players.begin()->GetSource())
TeamInInstance = player->GetTeam();
}
@@ -592,7 +592,7 @@ class instance_icecrown_citadel : public InstanceMapScript
}
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -617,7 +617,7 @@ class instance_icecrown_citadel : public InstanceMapScript
return 0;
}
- uint64 GetData64(uint32 type) const
+ uint64 GetData64(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -846,7 +846,7 @@ class instance_icecrown_citadel : public InstanceMapScript
return true;
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
switch (type)
{
@@ -1314,7 +1314,7 @@ class instance_icecrown_citadel : public InstanceMapScript
bool IsOrbWhispererEligible;
};
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_icecrown_citadel_InstanceMapScript(map);
}
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_anubrekhan.cpp b/src/server/scripts/Northrend/Naxxramas/boss_anubrekhan.cpp
index 421dabf48ac..928ffd14dea 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_anubrekhan.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_anubrekhan.cpp
@@ -19,24 +19,21 @@
#include "ScriptedCreature.h"
#include "naxxramas.h"
-enum Anubrekhan
+enum Says
{
SAY_AGGRO = 0,
SAY_GREET = 1,
- SAY_SLAY = 2,
-
- MOB_CRYPT_GUARD = 16573
+ SAY_SLAY = 2
};
-const Position GuardSummonPos = {3333.72f, -3476.30f, 287.1f, 6.2801f};
+Position const GuardSummonPos = {3333.72f, -3476.30f, 287.1f, 6.2801f};
enum Events
{
- EVENT_NONE,
- EVENT_IMPALE,
+ EVENT_IMPALE = 1,
EVENT_LOCUST,
EVENT_SPAWN_GUARDIAN_NORMAL,
- EVENT_BERSERK,
+ EVENT_BERSERK
};
enum Spells
@@ -47,12 +44,12 @@ enum Spells
SPELL_LOCUST_SWARM_25 = 54021,
SPELL_SUMMON_CORPSE_SCARABS_PLR = 29105, // This spawns 5 corpse scarabs on top of player
SPELL_SUMMON_CORPSE_SCARABS_MOB = 28864, // This spawns 10 corpse scarabs on top of dead guards
- SPELL_BERSERK = 27680,
+ SPELL_BERSERK = 27680
};
-enum
+enum Misc
{
- ACHIEV_TIMED_START_EVENT = 9891,
+ ACHIEV_TIMED_START_EVENT = 9891
};
class boss_anubrekhan : public CreatureScript
@@ -60,9 +57,9 @@ class boss_anubrekhan : public CreatureScript
public:
boss_anubrekhan() : CreatureScript("boss_anubrekhan") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_anubrekhanAI (creature);
+ return new boss_anubrekhanAI(creature);
}
struct boss_anubrekhanAI : public BossAI
@@ -71,7 +68,7 @@ public:
bool hasTaunted;
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
@@ -85,15 +82,15 @@ public:
// otherwise, after a wipe, they respawn where boss was at wipe moment.
pos = me->GetHomePosition();
pos.m_positionY -= 10.0f;
- me->SummonCreature(MOB_CRYPT_GUARD, pos, TEMPSUMMON_CORPSE_DESPAWN);
+ me->SummonCreature(NPC_CRYPT_GUARD, pos, TEMPSUMMON_CORPSE_DESPAWN);
pos = me->GetHomePosition();
pos.m_positionY += 10.0f;
- me->SummonCreature(MOB_CRYPT_GUARD, pos, TEMPSUMMON_CORPSE_DESPAWN);
+ me->SummonCreature(NPC_CRYPT_GUARD, pos, TEMPSUMMON_CORPSE_DESPAWN);
}
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
/// Force the player to spawn corpse scarabs via spell, @todo Check percent chance for scarabs, 20% at the moment
if (!(rand()%5))
@@ -103,7 +100,7 @@ public:
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
@@ -111,7 +108,7 @@ public:
if (instance)
instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
Talk(SAY_AGGRO);
@@ -123,7 +120,8 @@ public:
events.ScheduleEvent(EVENT_SPAWN_GUARDIAN_NORMAL, urand(15000, 20000));
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (!hasTaunted && me->IsWithinDistInMap(who, 60.0f) && who->GetTypeId() == TYPEID_PLAYER)
{
@@ -133,18 +131,18 @@ public:
ScriptedAI::MoveInLineOfSight(who);
}
- void SummonedCreatureDespawn(Creature* summon)
+ void SummonedCreatureDespawn(Creature* summon) OVERRIDE
{
BossAI::SummonedCreatureDespawn(summon);
// check if it is an actual killed guard
- if (!me->isAlive() || summon->isAlive() || summon->GetEntry() != MOB_CRYPT_GUARD)
+ if (!me->IsAlive() || summon->IsAlive() || summon->GetEntry() != NPC_CRYPT_GUARD)
return;
summon->CastSpell(summon, SPELL_SUMMON_CORPSE_SCARABS_MOB, true, NULL, NULL, me->GetGUID());
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim() || !CheckInRoom())
return;
@@ -166,12 +164,12 @@ public:
case EVENT_LOCUST:
/// @todo Add Text
DoCast(me, RAID_MODE(SPELL_LOCUST_SWARM_10, SPELL_LOCUST_SWARM_25));
- DoSummon(MOB_CRYPT_GUARD, GuardSummonPos, 0, TEMPSUMMON_CORPSE_DESPAWN);
+ DoSummon(NPC_CRYPT_GUARD, GuardSummonPos, 0, TEMPSUMMON_CORPSE_DESPAWN);
events.ScheduleEvent(EVENT_LOCUST, 90000);
break;
case EVENT_SPAWN_GUARDIAN_NORMAL:
/// @todo Add Text
- DoSummon(MOB_CRYPT_GUARD, GuardSummonPos, 0, TEMPSUMMON_CORPSE_DESPAWN);
+ DoSummon(NPC_CRYPT_GUARD, GuardSummonPos, 0, TEMPSUMMON_CORPSE_DESPAWN);
break;
case EVENT_BERSERK:
DoCast(me, SPELL_BERSERK, true);
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_faerlina.cpp b/src/server/scripts/Northrend/Naxxramas/boss_faerlina.cpp
index 316ddee540c..b723c2f4139 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_faerlina.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_faerlina.cpp
@@ -49,7 +49,10 @@ enum Events
EVENT_FRENZY = 3
};
-#define DATA_FRENZY_DISPELS 1
+enum Misc
+{
+ DATA_FRENZY_DISPELS = 1
+};
class boss_faerlina : public CreatureScript
{
@@ -64,7 +67,7 @@ class boss_faerlina : public CreatureScript
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
Talk(SAY_AGGRO);
@@ -73,14 +76,15 @@ class boss_faerlina : public CreatureScript
events.ScheduleEvent(EVENT_FRENZY, urand(60000, 80000));
}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
_delayFrenzy = false;
_frenzyDispels = 0;
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (!_introDone && who->GetTypeId() == TYPEID_PLAYER)
{
@@ -91,19 +95,19 @@ class boss_faerlina : public CreatureScript
BossAI::MoveInLineOfSight(who);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
if (!urand(0, 2))
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
Talk(SAY_DEATH);
}
- void SpellHit(Unit* caster, SpellInfo const* spell)
+ void SpellHit(Unit* caster, SpellInfo const* spell) OVERRIDE
{
if (spell->Id == SPELL_WIDOWS_EMBRACE || spell->Id == H_SPELL_WIDOWS_EMBRACE)
{
@@ -114,7 +118,7 @@ class boss_faerlina : public CreatureScript
}
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
if (type == DATA_FRENZY_DISPELS)
return _frenzyDispels;
@@ -122,7 +126,7 @@ class boss_faerlina : public CreatureScript
return 0;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -173,25 +177,25 @@ class boss_faerlina : public CreatureScript
bool _delayFrenzy;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_faerlinaAI(creature);
}
};
-class mob_faerlina_add : public CreatureScript
+class npc_faerlina_add : public CreatureScript
{
public:
- mob_faerlina_add() : CreatureScript("mob_faerlina_add") { }
+ npc_faerlina_add() : CreatureScript("npc_faerlina_add") { }
- struct mob_faerlina_addAI : public ScriptedAI
+ struct npc_faerlina_addAI : public ScriptedAI
{
- mob_faerlina_addAI(Creature* creature) : ScriptedAI(creature),
+ npc_faerlina_addAI(Creature* creature) : ScriptedAI(creature),
_instance(creature->GetInstanceScript())
{
}
- void Reset()
+ void Reset() OVERRIDE
{
if (GetDifficulty() == RAID_DIFFICULTY_10MAN_NORMAL) {
me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_BIND, true);
@@ -199,7 +203,7 @@ class mob_faerlina_add : public CreatureScript
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (_instance && GetDifficulty() == RAID_DIFFICULTY_10MAN_NORMAL)
if (Creature* faerlina = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_FAERLINA)))
@@ -210,9 +214,9 @@ class mob_faerlina_add : public CreatureScript
InstanceScript* const _instance;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_faerlina_addAI(creature);
+ return new npc_faerlina_addAI(creature);
}
};
@@ -221,7 +225,7 @@ class achievement_momma_said_knock_you_out : public AchievementCriteriaScript
public:
achievement_momma_said_knock_you_out() : AchievementCriteriaScript("achievement_momma_said_knock_you_out") { }
- bool OnCheck(Player* /*source*/, Unit* target)
+ bool OnCheck(Player* /*source*/, Unit* target) OVERRIDE
{
return target && !target->GetAI()->GetData(DATA_FRENZY_DISPELS);
}
@@ -230,6 +234,6 @@ class achievement_momma_said_knock_you_out : public AchievementCriteriaScript
void AddSC_boss_faerlina()
{
new boss_faerlina();
- new mob_faerlina_add();
+ new npc_faerlina_add();
new achievement_momma_said_knock_you_out();
}
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp b/src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp
index 9013b051b9a..9b336a77e26 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp
@@ -62,7 +62,7 @@ const Position WaypointPositions[12] =
{2517.8f, -2896.6f, 241.28f, 2.315f},
};
-const uint32 MOB_HORSEMEN[] = {16064, 16065, 30549, 16063};
+const uint32 NPC_HORSEMEN[] = {16064, 16065, 30549, 16063};
const uint32 SPELL_MARK[] = {28832, 28833, 28834, 28835};
#define SPELL_PRIMARY(i) RAID_MODE(SPELL_PRIMARY_N[i], SPELL_PRIMARY_H[i])
const uint32 SPELL_PRIMARY_N[] = {28884, 28863, 28882, 28883};
@@ -87,9 +87,9 @@ class boss_four_horsemen : public CreatureScript
public:
boss_four_horsemen() : CreatureScript("boss_four_horsemen") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_four_horsemenAI (creature);
+ return new boss_four_horsemenAI(creature);
}
struct boss_four_horsemenAI : public BossAI
@@ -98,7 +98,7 @@ public:
{
id = Horsemen(0);
for (uint8 i = 0; i < 4; ++i)
- if (me->GetEntry() == MOB_HORSEMEN[i])
+ if (me->GetEntry() == NPC_HORSEMEN[i])
id = Horsemen(i);
caster = (id == HORSEMEN_LADY || id == HORSEMEN_SIR);
encounterActionReset = false;
@@ -116,7 +116,7 @@ public:
bool encounterActionReset;
bool doDelayPunish;
- void Reset()
+ void Reset() OVERRIDE
{
if (!encounterActionReset)
DoEncounteraction(NULL, false, true, false);
@@ -166,16 +166,16 @@ public:
{
if (instance->GetBossState(BOSS_HORSEMEN) != NOT_STARTED)
{
- if (!Thane->isAlive())
+ if (!Thane->IsAlive())
Thane->Respawn();
- if (!Lady->isAlive())
+ if (!Lady->IsAlive())
Lady->Respawn();
- if (!Baron->isAlive())
+ if (!Baron->IsAlive())
Baron->Respawn();
- if (!Sir->isAlive())
+ if (!Sir->IsAlive())
Sir->Respawn();
CAST_AI(boss_four_horsemen::boss_four_horsemenAI, Thane->AI())->encounterActionReset = true;
@@ -191,7 +191,7 @@ public:
}
if (checkAllDead)
- return !Thane->isAlive() && !Lady->isAlive() && !Baron->isAlive() && !Sir->isAlive();
+ return !Thane->IsAlive() && !Lady->IsAlive() && !Baron->IsAlive() && !Sir->IsAlive();
}
return false;
}
@@ -220,7 +220,7 @@ public:
}
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type != POINT_MOTION_TYPE)
return;
@@ -256,21 +256,22 @@ public:
// switch to "who" if nearer than current target.
void SelectNearestTarget(Unit* who)
{
- if (me->getVictim() && me->GetDistanceOrder(who, me->getVictim()) && me->IsValidAttackTarget(who))
+ if (me->GetVictim() && me->GetDistanceOrder(who, me->GetVictim()) && me->IsValidAttackTarget(who))
{
- me->getThreatManager().modifyThreatPercent(me->getVictim(), -100);
+ me->getThreatManager().modifyThreatPercent(me->GetVictim(), -100);
me->AddThreat(who, 1000000.0f);
}
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
BossAI::MoveInLineOfSight(who);
if (caster)
SelectNearestTarget(who);
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (!movementCompleted && !movementStarted)
{
@@ -289,13 +290,13 @@ public:
}
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
if (!(rand()%5))
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
events.Reset();
summons.DespawnAll();
@@ -316,7 +317,7 @@ public:
Talk(SAY_DEATH);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
Talk(SAY_AGGRO);
@@ -326,7 +327,7 @@ public:
events.ScheduleEvent(EVENT_BERSERK, 15*100*1000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (nextWP && movementStarted && !movementCompleted && !nextMovementStarted)
{
@@ -362,7 +363,7 @@ public:
DoCast(target, SPELL_PRIMARY(id));
}
else
- DoCast(me->getVictim(), SPELL_PRIMARY(id));
+ DoCastVictim(SPELL_PRIMARY(id));
events.ScheduleEvent(EVENT_CAST, 15000);
break;
@@ -385,7 +386,7 @@ public:
if (!caster)
DoMeleeAttackIfReady();
- else if ((!DoSpellAttackIfReady(SPELL_SECONDARY(id)) || !me->IsWithinLOSInMap(me->getVictim())) && movementCompleted && !doDelayPunish)
+ else if ((!DoSpellAttackIfReady(SPELL_SECONDARY(id)) || !me->IsWithinLOSInMap(me->GetVictim())) && movementCompleted && !doDelayPunish)
doDelayPunish = true;
}
};
@@ -435,13 +436,13 @@ class spell_four_horsemen_mark : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectApply += AuraEffectApplyFn(spell_four_horsemen_mark_AuraScript::OnApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_four_horsemen_mark_AuraScript();
}
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_gluth.cpp b/src/server/scripts/Northrend/Naxxramas/boss_gluth.cpp
index 86ea9ce929a..8980cd063c0 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_gluth.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_gluth.cpp
@@ -19,15 +19,21 @@
#include "ScriptedCreature.h"
#include "naxxramas.h"
-#define SPELL_MORTAL_WOUND 25646
-#define SPELL_ENRAGE RAID_MODE(28371, 54427)
-#define SPELL_DECIMATE RAID_MODE(28374, 54426)
-#define SPELL_BERSERK 26662
-#define SPELL_INFECTED_WOUND 29306
+enum Spells
+{
+ SPELL_MORTAL_WOUND = 25646,
+ SPELL_ENRAGE = 28371,
+ SPELL_DECIMATE = 28374,
+ SPELL_BERSERK = 26662,
+ SPELL_INFECTED_WOUND = 29306
+};
-#define MOB_ZOMBIE 16360
+enum Creatures
+{
+ NPC_ZOMBIE = 16360
+};
-const Position PosSummon[3] =
+Position const PosSummon[3] =
{
{3267.9f, -3172.1f, 297.42f, 0.94f},
{3253.2f, -3132.3f, 297.42f, 0},
@@ -36,8 +42,7 @@ const Position PosSummon[3] =
enum Events
{
- EVENT_NONE,
- EVENT_WOUND,
+ EVENT_WOUND = 1,
EVENT_ENRAGE,
EVENT_DECIMATE,
EVENT_BERSERK,
@@ -51,9 +56,9 @@ class boss_gluth : public CreatureScript
public:
boss_gluth() : CreatureScript("boss_gluth") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_gluthAI (creature);
+ return new boss_gluthAI(creature);
}
struct boss_gluthAI : public BossAI
@@ -64,9 +69,10 @@ public:
me->ApplySpellImmune(0, IMMUNITY_ID, SPELL_INFECTED_WOUND, true);
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
- if (who->GetEntry() == MOB_ZOMBIE && me->IsWithinDistInMap(who, 7))
+ if (who->GetEntry() == NPC_ZOMBIE && me->IsWithinDistInMap(who, 7))
{
SetGazeOn(who);
/// @todo use a script text
@@ -76,7 +82,7 @@ public:
BossAI::MoveInLineOfSight(who);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
events.ScheduleEvent(EVENT_WOUND, 10000);
@@ -86,14 +92,14 @@ public:
events.ScheduleEvent(EVENT_SUMMON, 15000);
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
- if (summon->GetEntry() == MOB_ZOMBIE)
+ if (summon->GetEntry() == NPC_ZOMBIE)
summon->AI()->AttackStart(me);
summons.Summon(summon);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictimWithGaze() || !CheckInRoom())
return;
@@ -105,7 +111,7 @@ public:
switch (eventId)
{
case EVENT_WOUND:
- DoCast(me->getVictim(), SPELL_MORTAL_WOUND);
+ DoCastVictim(SPELL_MORTAL_WOUND);
events.ScheduleEvent(EVENT_WOUND, 10000);
break;
case EVENT_ENRAGE:
@@ -124,17 +130,17 @@ public:
break;
case EVENT_SUMMON:
for (int32 i = 0; i < RAID_MODE(1, 2); ++i)
- DoSummon(MOB_ZOMBIE, PosSummon[rand() % RAID_MODE(1, 3)]);
+ DoSummon(NPC_ZOMBIE, PosSummon[rand() % RAID_MODE(1, 3)]);
events.ScheduleEvent(EVENT_SUMMON, 10000);
break;
}
}
- if (me->getVictim() && me->getVictim()->GetEntry() == MOB_ZOMBIE)
+ if (me->GetVictim() && me->GetVictim()->GetEntry() == NPC_ZOMBIE)
{
- if (me->IsWithinMeleeRange(me->getVictim()))
+ if (me->IsWithinMeleeRange(me->GetVictim()))
{
- me->Kill(me->getVictim());
+ me->Kill(me->GetVictim());
me->ModifyHealth(int32(me->CountPctFromMaxHealth(5)));
}
}
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp b/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp
index 2ce913e56fd..90f14bf43e4 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp
@@ -48,13 +48,13 @@ enum Spells
enum Creatures
{
- MOB_LIVE_TRAINEE = 16124,
- MOB_LIVE_KNIGHT = 16125,
- MOB_LIVE_RIDER = 16126,
- MOB_DEAD_TRAINEE = 16127,
- MOB_DEAD_KNIGHT = 16148,
- MOB_DEAD_RIDER = 16150,
- MOB_DEAD_HORSE = 16149
+ NPC_LIVE_TRAINEE = 16124,
+ NPC_LIVE_KNIGHT = 16125,
+ NPC_LIVE_RIDER = 16126,
+ NPC_DEAD_TRAINEE = 16127,
+ NPC_DEAD_KNIGHT = 16148,
+ NPC_DEAD_RIDER = 16150,
+ NPC_DEAD_HORSE = 16149
};
struct Waves { uint32 entry, time, mode; };
@@ -63,37 +63,37 @@ struct Waves { uint32 entry, time, mode; };
// but this is handled in DoGothikSummon function
const Waves waves[] =
{
- {MOB_LIVE_TRAINEE, 20000, 1},
- {MOB_LIVE_TRAINEE, 20000, 1},
- {MOB_LIVE_TRAINEE, 10000, 1},
- {MOB_LIVE_KNIGHT, 10000, 1},
- {MOB_LIVE_TRAINEE, 15000, 1},
- {MOB_LIVE_KNIGHT, 5000, 1},
- {MOB_LIVE_TRAINEE, 20000, 1},
- {MOB_LIVE_TRAINEE, 0, 1},
- {MOB_LIVE_KNIGHT, 10000, 1},
- {MOB_LIVE_TRAINEE, 10000, 2},
- {MOB_LIVE_RIDER, 10000, 0},
- {MOB_LIVE_RIDER, 5000, 2},
- {MOB_LIVE_TRAINEE, 5000, 0},
- {MOB_LIVE_TRAINEE, 15000, 2},
- {MOB_LIVE_KNIGHT, 15000, 0},
- {MOB_LIVE_TRAINEE, 0, 0},
- {MOB_LIVE_RIDER, 10000, 1},
- {MOB_LIVE_KNIGHT, 10000, 1},
- {MOB_LIVE_TRAINEE, 10000, 0},
- {MOB_LIVE_RIDER, 10000, 2},
- {MOB_LIVE_TRAINEE, 0, 2},
- {MOB_LIVE_RIDER, 5000, 1},
- {MOB_LIVE_TRAINEE, 0, 2},
- {MOB_LIVE_KNIGHT, 5000, 1},
- {MOB_LIVE_RIDER, 0, 2},
- {MOB_LIVE_TRAINEE, 20000, 1},
- {MOB_LIVE_RIDER, 0, 1},
- {MOB_LIVE_KNIGHT, 0, 1},
- {MOB_LIVE_TRAINEE, 25000, 2},
- {MOB_LIVE_TRAINEE, 15000, 0},
- {MOB_LIVE_TRAINEE, 25000, 0},
+ {NPC_LIVE_TRAINEE, 20000, 1},
+ {NPC_LIVE_TRAINEE, 20000, 1},
+ {NPC_LIVE_TRAINEE, 10000, 1},
+ {NPC_LIVE_KNIGHT, 10000, 1},
+ {NPC_LIVE_TRAINEE, 15000, 1},
+ {NPC_LIVE_KNIGHT, 5000, 1},
+ {NPC_LIVE_TRAINEE, 20000, 1},
+ {NPC_LIVE_TRAINEE, 0, 1},
+ {NPC_LIVE_KNIGHT, 10000, 1},
+ {NPC_LIVE_TRAINEE, 10000, 2},
+ {NPC_LIVE_RIDER, 10000, 0},
+ {NPC_LIVE_RIDER, 5000, 2},
+ {NPC_LIVE_TRAINEE, 5000, 0},
+ {NPC_LIVE_TRAINEE, 15000, 2},
+ {NPC_LIVE_KNIGHT, 15000, 0},
+ {NPC_LIVE_TRAINEE, 0, 0},
+ {NPC_LIVE_RIDER, 10000, 1},
+ {NPC_LIVE_KNIGHT, 10000, 1},
+ {NPC_LIVE_TRAINEE, 10000, 0},
+ {NPC_LIVE_RIDER, 10000, 2},
+ {NPC_LIVE_TRAINEE, 0, 2},
+ {NPC_LIVE_RIDER, 5000, 1},
+ {NPC_LIVE_TRAINEE, 0, 2},
+ {NPC_LIVE_KNIGHT, 5000, 1},
+ {NPC_LIVE_RIDER, 0, 2},
+ {NPC_LIVE_TRAINEE, 20000, 1},
+ {NPC_LIVE_RIDER, 0, 1},
+ {NPC_LIVE_KNIGHT, 0, 1},
+ {NPC_LIVE_TRAINEE, 25000, 2},
+ {NPC_LIVE_TRAINEE, 15000, 0},
+ {NPC_LIVE_TRAINEE, 25000, 0},
{0, 0, 1},
};
@@ -175,7 +175,7 @@ class boss_gothik : public CreatureScript
std::vector<uint64> LiveTriggerGUID;
std::vector<uint64> DeadTriggerGUID;
- void Reset()
+ void Reset() OVERRIDE
{
LiveTriggerGUID.clear();
DeadTriggerGUID.clear();
@@ -189,7 +189,7 @@ class boss_gothik : public CreatureScript
thirtyPercentReached = false;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
for (uint32 i = 0; i < POS_LIVE; ++i)
if (Creature* trigger = DoSummon(WORLD_TRIGGER, PosSummonLive[i]))
@@ -214,7 +214,7 @@ class boss_gothik : public CreatureScript
instance->SetData(DATA_GOTHIK_GATE, GO_STATE_READY);
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
if (summon->GetEntry() == WORLD_TRIGGER)
summon->setActive(true);
@@ -231,18 +231,18 @@ class boss_gothik : public CreatureScript
summons.Summon(summon);
}
- void SummonedCreatureDespawn(Creature* summon)
+ void SummonedCreatureDespawn(Creature* summon) OVERRIDE
{
summons.Despawn(summon);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
if (!(rand()%5))
Talk(SAY_KILL);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
LiveTriggerGUID.clear();
DeadTriggerGUID.clear();
@@ -258,28 +258,28 @@ class boss_gothik : public CreatureScript
{
switch (entry)
{
- case MOB_LIVE_TRAINEE:
+ case NPC_LIVE_TRAINEE:
{
if (Creature* liveTrigger = Unit::GetCreature(*me, LiveTriggerGUID[0]))
- DoSummon(MOB_LIVE_TRAINEE, liveTrigger, 1);
+ DoSummon(NPC_LIVE_TRAINEE, liveTrigger, 1);
if (Creature* liveTrigger1 = Unit::GetCreature(*me, LiveTriggerGUID[1]))
- DoSummon(MOB_LIVE_TRAINEE, liveTrigger1, 1);
+ DoSummon(NPC_LIVE_TRAINEE, liveTrigger1, 1);
if (Creature* liveTrigger2 = Unit::GetCreature(*me, LiveTriggerGUID[2]))
- DoSummon(MOB_LIVE_TRAINEE, liveTrigger2, 1);
+ DoSummon(NPC_LIVE_TRAINEE, liveTrigger2, 1);
break;
}
- case MOB_LIVE_KNIGHT:
+ case NPC_LIVE_KNIGHT:
{
if (Creature* liveTrigger3 = Unit::GetCreature(*me, LiveTriggerGUID[3]))
- DoSummon(MOB_LIVE_KNIGHT, liveTrigger3, 1);
+ DoSummon(NPC_LIVE_KNIGHT, liveTrigger3, 1);
if (Creature* liveTrigger5 = Unit::GetCreature(*me, LiveTriggerGUID[5]))
- DoSummon(MOB_LIVE_KNIGHT, liveTrigger5, 1);
+ DoSummon(NPC_LIVE_KNIGHT, liveTrigger5, 1);
break;
}
- case MOB_LIVE_RIDER:
+ case NPC_LIVE_RIDER:
{
if (Creature* liveTrigger4 = Unit::GetCreature(*me, LiveTriggerGUID[4]))
- DoSummon(MOB_LIVE_RIDER, liveTrigger4, 1);
+ DoSummon(NPC_LIVE_RIDER, liveTrigger4, 1);
break;
}
}
@@ -288,24 +288,24 @@ class boss_gothik : public CreatureScript
{
switch (entry)
{
- case MOB_LIVE_TRAINEE:
+ case NPC_LIVE_TRAINEE:
{
if (Creature* liveTrigger = Unit::GetCreature(*me, LiveTriggerGUID[4]))
- DoSummon(MOB_LIVE_TRAINEE, liveTrigger, 1);
+ DoSummon(NPC_LIVE_TRAINEE, liveTrigger, 1);
if (Creature* liveTrigger2 = Unit::GetCreature(*me, LiveTriggerGUID[4]))
- DoSummon(MOB_LIVE_TRAINEE, liveTrigger2, 1);
+ DoSummon(NPC_LIVE_TRAINEE, liveTrigger2, 1);
break;
}
- case MOB_LIVE_KNIGHT:
+ case NPC_LIVE_KNIGHT:
{
if (Creature* liveTrigger5 = Unit::GetCreature(*me, LiveTriggerGUID[4]))
- DoSummon(MOB_LIVE_KNIGHT, liveTrigger5, 1);
+ DoSummon(NPC_LIVE_KNIGHT, liveTrigger5, 1);
break;
}
- case MOB_LIVE_RIDER:
+ case NPC_LIVE_RIDER:
{
if (Creature* liveTrigger4 = Unit::GetCreature(*me, LiveTriggerGUID[4]))
- DoSummon(MOB_LIVE_RIDER, liveTrigger4, 1);
+ DoSummon(NPC_LIVE_RIDER, liveTrigger4, 1);
break;
}
}
@@ -324,19 +324,19 @@ class boss_gothik : public CreatureScript
bool checkdead = false;
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
{
- if (i->getSource() && i->getSource()->isAlive() &&
- i->getSource()->GetPositionX() <= POS_X_NORTH &&
- i->getSource()->GetPositionX() >= POS_X_SOUTH &&
- i->getSource()->GetPositionY() <= POS_Y_GATE &&
- i->getSource()->GetPositionY() >= POS_Y_EAST)
+ if (i->GetSource() && i->GetSource()->IsAlive() &&
+ i->GetSource()->GetPositionX() <= POS_X_NORTH &&
+ i->GetSource()->GetPositionX() >= POS_X_SOUTH &&
+ i->GetSource()->GetPositionY() <= POS_Y_GATE &&
+ i->GetSource()->GetPositionY() >= POS_Y_EAST)
{
checklife = true;
}
- else if (i->getSource() && i->getSource()->isAlive() &&
- i->getSource()->GetPositionX() <= POS_X_NORTH &&
- i->getSource()->GetPositionX() >= POS_X_SOUTH &&
- i->getSource()->GetPositionY() >= POS_Y_GATE &&
- i->getSource()->GetPositionY() <= POS_Y_WEST)
+ else if (i->GetSource() && i->GetSource()->IsAlive() &&
+ i->GetSource()->GetPositionX() <= POS_X_NORTH &&
+ i->GetSource()->GetPositionX() >= POS_X_SOUTH &&
+ i->GetSource()->GetPositionY() >= POS_Y_GATE &&
+ i->GetSource()->GetPositionY() <= POS_Y_WEST)
{
checkdead = true;
}
@@ -350,7 +350,7 @@ class boss_gothik : public CreatureScript
return false;
}
- void SpellHit(Unit* /*caster*/, SpellInfo const* spell)
+ void SpellHit(Unit* /*caster*/, SpellInfo const* spell) OVERRIDE
{
uint32 spellId = 0;
switch (spell->Id)
@@ -359,7 +359,7 @@ class boss_gothik : public CreatureScript
case SPELL_INFORM_LIVE_KNIGHT: spellId = SPELL_INFORM_DEAD_KNIGHT; break;
case SPELL_INFORM_LIVE_RIDER: spellId = SPELL_INFORM_DEAD_RIDER; break;
}
- if (spellId && me->isInCombat())
+ if (spellId && me->IsInCombat())
{
me->HandleEmoteCommand(EMOTE_ONESHOT_SPELL_CAST);
if (Creature* pRandomDeadTrigger = Unit::GetCreature(*me, DeadTriggerGUID[rand() % POS_DEAD]))
@@ -367,33 +367,33 @@ class boss_gothik : public CreatureScript
}
}
- void DamageTaken(Unit* /*who*/, uint32& damage)
+ void DamageTaken(Unit* /*who*/, uint32& damage) OVERRIDE
{
if (!phaseTwo)
damage = 0;
}
- void SpellHitTarget(Unit* target, SpellInfo const* spell)
+ void SpellHitTarget(Unit* target, SpellInfo const* spell) OVERRIDE
{
- if (!me->isInCombat())
+ if (!me->IsInCombat())
return;
switch (spell->Id)
{
case SPELL_INFORM_DEAD_TRAINEE:
- DoSummon(MOB_DEAD_TRAINEE, target, 0);
+ DoSummon(NPC_DEAD_TRAINEE, target, 0);
break;
case SPELL_INFORM_DEAD_KNIGHT:
- DoSummon(MOB_DEAD_KNIGHT, target, 0);
+ DoSummon(NPC_DEAD_KNIGHT, target, 0);
break;
case SPELL_INFORM_DEAD_RIDER:
- DoSummon(MOB_DEAD_RIDER, target, 1.0f);
- DoSummon(MOB_DEAD_HORSE, target, 1.0f);
+ DoSummon(NPC_DEAD_RIDER, target, 1.0f);
+ DoSummon(NPC_DEAD_HORSE, target, 1.0f);
break;
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim() || !CheckInRoom())
return;
@@ -464,11 +464,11 @@ class boss_gothik : public CreatureScript
}
break;
case EVENT_BOLT:
- DoCast(me->getVictim(), RAID_MODE(SPELL_SHADOW_BOLT, H_SPELL_SHADOW_BOLT));
+ DoCastVictim(RAID_MODE(SPELL_SHADOW_BOLT, H_SPELL_SHADOW_BOLT));
events.ScheduleEvent(EVENT_BOLT, 1000);
break;
case EVENT_HARVEST:
- DoCast(me->getVictim(), SPELL_HARVEST_SOUL, true);
+ DoCastVictim(SPELL_HARVEST_SOUL, true);
events.ScheduleEvent(EVENT_HARVEST, urand(20000, 25000));
break;
case EVENT_TELEPORT:
@@ -498,20 +498,20 @@ class boss_gothik : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_gothikAI(creature);
}
};
-class mob_gothik_minion : public CreatureScript
+class npc_gothik_minion : public CreatureScript
{
public:
- mob_gothik_minion() : CreatureScript("mob_gothik_minion") { }
+ npc_gothik_minion() : CreatureScript("npc_gothik_minion") { }
- struct mob_gothik_minionAI : public CombatAI
+ struct npc_gothik_minionAI : public CombatAI
{
- mob_gothik_minionAI(Creature* creature) : CombatAI(creature)
+ npc_gothik_minionAI(Creature* creature) : CombatAI(creature)
{
liveSide = IN_LIVE_SIDE(me);
}
@@ -524,25 +524,25 @@ class mob_gothik_minion : public CreatureScript
return (liveSide == IN_LIVE_SIDE(who));
}
- void DoAction(int32 param)
+ void DoAction(int32 param) OVERRIDE
{
gateClose = param;
}
- void DamageTaken(Unit* attacker, uint32 &damage)
+ void DamageTaken(Unit* attacker, uint32 &damage) OVERRIDE
{
if (gateClose && !isOnSameSide(attacker))
damage = 0;
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
- if (me->isSummon())
+ if (me->IsSummon())
if (Unit* owner = me->ToTempSummon()->GetSummoner())
CombatAI::JustDied(owner);
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
if (!gateClose)
{
@@ -561,9 +561,9 @@ class mob_gothik_minion : public CreatureScript
{
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
{
- if (i->getSource() && i->getSource()->isAlive() && isOnSameSide(i->getSource()))
+ if (i->GetSource() && i->GetSource()->IsAlive() && isOnSameSide(i->GetSource()))
{
- AttackStart(i->getSource());
+ AttackStart(i->GetSource());
return;
}
}
@@ -574,9 +574,9 @@ class mob_gothik_minion : public CreatureScript
Reset();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
- if (gateClose && (!isOnSameSide(me) || (me->getVictim() && !isOnSameSide(me->getVictim()))))
+ if (gateClose && (!isOnSameSide(me) || (me->GetVictim() && !isOnSameSide(me->GetVictim()))))
{
EnterEvadeMode();
return;
@@ -586,9 +586,9 @@ class mob_gothik_minion : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_gothik_minionAI(creature);
+ return new npc_gothik_minionAI(creature);
}
};
@@ -606,13 +606,13 @@ class spell_gothik_shadow_bolt_volley : public SpellScriptLoader
targets.remove_if(Trinity::UnitAuraCheck(false, SPELL_SHADOW_MARK));
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_gothik_shadow_bolt_volley_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_gothik_shadow_bolt_volley_SpellScript();
}
@@ -621,6 +621,6 @@ class spell_gothik_shadow_bolt_volley : public SpellScriptLoader
void AddSC_boss_gothik()
{
new boss_gothik();
- new mob_gothik_minion();
+ new npc_gothik_minion();
new spell_gothik_shadow_bolt_volley();
}
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp b/src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp
index 3e44fe9eba4..8371a5ad9a0 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp
@@ -33,24 +33,25 @@ enum Spells
enum Events
{
- EVENT_BERSERK = 0,
- EVENT_CLOUD = 1,
- EVENT_INJECT = 2,
- EVENT_SPRAY = 3
+ EVENT_BERSERK = 1,
+ EVENT_CLOUD = 2,
+ EVENT_INJECT = 3,
+ EVENT_SPRAY = 4
};
enum CreatureId
{
- MOB_FALLOUT_SLIME = 16290
+ NPC_FALLOUT_SLIME = 16290
};
class boss_grobbulus : public CreatureScript
{
-public: boss_grobbulus() : CreatureScript("boss_grobbulus") { }
+public:
+ boss_grobbulus() : CreatureScript("boss_grobbulus") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_grobbulusAI (creature);
+ return new boss_grobbulusAI(creature);
}
struct boss_grobbulusAI : public BossAI
@@ -60,7 +61,7 @@ public: boss_grobbulus() : CreatureScript("boss_grobbulus") { }
me->ApplySpellImmune(0, IMMUNITY_ID, SPELL_POISON_CLOUD_ADD, true);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
events.ScheduleEvent(EVENT_CLOUD, 15000);
@@ -69,16 +70,16 @@ public: boss_grobbulus() : CreatureScript("boss_grobbulus") { }
events.ScheduleEvent(EVENT_BERSERK, 12*60000);
}
- void SpellHitTarget(Unit* target, const SpellInfo* spell)
+ void SpellHitTarget(Unit* target, const SpellInfo* spell) OVERRIDE
{
if (spell->Id == uint32(SPELL_SLIME_SPRAY))
{
- if (TempSummon* slime = me->SummonCreature(MOB_FALLOUT_SLIME, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 0))
+ if (TempSummon* slime = me->SummonCreature(NPC_FALLOUT_SLIME, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 0))
DoZoneInCombat(slime);
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -120,7 +121,7 @@ class npc_grobbulus_poison_cloud : public CreatureScript
public:
npc_grobbulus_poison_cloud() : CreatureScript("npc_grobbulus_poison_cloud") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_grobbulus_poison_cloudAI(creature);
}
@@ -134,13 +135,13 @@ public:
uint32 Cloud_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
Cloud_Timer = 1000;
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (Cloud_Timer <= diff)
{
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp b/src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp
index 61640f1d225..14a7a03bd70 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp
@@ -48,17 +48,20 @@ enum Phases
PHASE_DANCE,
};
-#define ACTION_SAFETY_DANCE_FAIL 1
-#define DATA_SAFETY_DANCE 19962139
+enum Misc
+{
+ ACTION_SAFETY_DANCE_FAIL = 1,
+ DATA_SAFETY_DANCE = 19962139
+};
class boss_heigan : public CreatureScript
{
public:
boss_heigan() : CreatureScript("boss_heigan") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_heiganAI (creature);
+ return new boss_heiganAI(creature);
}
struct boss_heiganAI : public BossAI
@@ -70,7 +73,7 @@ public:
bool safetyDance;
Phases phase;
- void KilledUnit(Unit* who)
+ void KilledUnit(Unit* who) OVERRIDE
{
if (!(rand()%5))
Talk(SAY_SLAY);
@@ -78,13 +81,13 @@ public:
safetyDance = false;
}
- void SetData(uint32 id, uint32 data)
+ void SetData(uint32 id, uint32 data) OVERRIDE
{
if (id == DATA_SAFETY_DANCE)
safetyDance = data ? true : false;
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
if (type == DATA_SAFETY_DANCE)
return safetyDance ? 1 : 0;
@@ -92,13 +95,13 @@ public:
return 0;
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
Talk(SAY_DEATH);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
Talk(SAY_AGGRO);
@@ -117,7 +120,7 @@ public:
events.ScheduleEvent(EVENT_FEVER, urand(15000, 20000));
events.ScheduleEvent(EVENT_PHASE, 90000);
events.ScheduleEvent(EVENT_ERUPT, 15000);
- me->GetMotionMaster()->MoveChase(me->getVictim());
+ me->GetMotionMaster()->MoveChase(me->GetVictim());
}
else
{
@@ -133,7 +136,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim() || !CheckInRoom())
return;
@@ -199,13 +202,13 @@ class spell_heigan_eruption : public SpellScriptLoader
Heigan->AI()->SetData(DATA_SAFETY_DANCE, 0);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_heigan_eruption_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_heigan_eruption_SpellScript();
}
@@ -218,7 +221,7 @@ class achievement_safety_dance : public AchievementCriteriaScript
{
}
- bool OnCheck(Player* /*player*/, Unit* target)
+ bool OnCheck(Player* /*player*/, Unit* target) OVERRIDE
{
if (!target)
return false;
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp
index 9b5b26dd4f5..5578d199ec3 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp
@@ -252,7 +252,7 @@ struct NotCharmedTargetSelector : public std::unary_function<Unit*, bool>
bool operator()(Unit const* target) const
{
- return !target->isCharmed();
+ return !target->IsCharmed();
}
};
@@ -283,7 +283,7 @@ public:
SummonList spawns; // adds spawn by the trigger. kept in separated list (i.e. not in summons)
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
@@ -330,12 +330,12 @@ public:
nWeaver = 0;
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
Talk(SAY_DEATH);
@@ -349,7 +349,7 @@ public:
chained.clear();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
me->setFaction(uiFaction);
@@ -382,7 +382,7 @@ public:
KTTriggerGUID = instance ? instance->GetData64(DATA_KELTHUZAD_TRIGGER) : 0;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -431,7 +431,7 @@ public:
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_DISABLE_MOVE | UNIT_FLAG_NOT_SELECTABLE);
me->CastStop();
- DoStartMovement(me->getVictim());
+ DoStartMovement(me->GetVictim());
events.ScheduleEvent(EVENT_BOLT, urand(5000, 10000));
events.ScheduleEvent(EVENT_NOVA, 15000);
events.ScheduleEvent(EVENT_DETONATE, urand(30000, 40000));
@@ -504,7 +504,7 @@ public:
for (uint8 i = 1; i <= count; i++)
{
Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 200, true);
- if (target && !target->isCharmed() && (chained.find(target->GetGUID()) == chained.end()))
+ if (target && !target->IsCharmed() && (chained.find(target->GetGUID()) == chained.end()))
{
DoCast(target, SPELL_CHAINS_OF_KELTHUZAD);
float scale = target->GetFloatValue(OBJECT_FIELD_SCALE_X);
@@ -525,7 +525,7 @@ public:
{
if (Unit* player = Unit::GetPlayer(*me, (*itr).first))
{
- if (!player->isCharmed())
+ if (!player->IsCharmed())
{
player->SetObjectScale((*itr).second);
std::map<uint64, float>::iterator next = itr;
@@ -647,9 +647,9 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_kelthuzadAI (creature);
+ return new boss_kelthuzadAI(creature);
}
};
@@ -658,9 +658,9 @@ class at_kelthuzad_center : public AreaTriggerScript
public:
at_kelthuzad_center() : AreaTriggerScript("at_kelthuzad_center") { }
- bool OnTrigger(Player* player, const AreaTriggerEntry* /*at*/)
+ bool OnTrigger(Player* player, const AreaTriggerEntry* /*at*/) OVERRIDE
{
- if (player->isGameMaster())
+ if (player->IsGameMaster())
return false;
InstanceScript* instance = player->GetInstanceScript();
@@ -728,14 +728,14 @@ class npc_kelthuzad_abomination : public CreatureScript
_instance = creature->GetInstanceScript();
}
- void Reset()
+ void Reset() OVERRIDE
{
_events.Reset();
_events.ScheduleEvent(EVENT_MORTAL_WOUND, urand(2000, 5000));
DoCast(me, SPELL_FRENZY, true);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -756,7 +756,7 @@ class npc_kelthuzad_abomination : public CreatureScript
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (_instance)
_instance->SetData(DATA_ABOMINATION_KILLED, _instance->GetData(DATA_ABOMINATION_KILLED) + 1);
@@ -767,7 +767,7 @@ class npc_kelthuzad_abomination : public CreatureScript
EventMap _events;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_kelthuzad_abominationAI(creature);
}
@@ -782,7 +782,7 @@ class spell_kelthuzad_detonate_mana : public SpellScriptLoader
{
PrepareAuraScript(spell_kelthuzad_detonate_mana_AuraScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_MANA_DETONATION_DAMAGE))
return false;
@@ -801,13 +801,13 @@ class spell_kelthuzad_detonate_mana : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_kelthuzad_detonate_mana_AuraScript::HandleScript, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_kelthuzad_detonate_mana_AuraScript();
}
@@ -818,7 +818,7 @@ class achievement_just_cant_get_enough : public AchievementCriteriaScript
public:
achievement_just_cant_get_enough() : AchievementCriteriaScript("achievement_just_cant_get_enough") { }
- bool OnCheck(Player* /*player*/, Unit* target)
+ bool OnCheck(Player* /*player*/, Unit* target) OVERRIDE
{
if (!target)
return false;
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_loatheb.cpp b/src/server/scripts/Northrend/Naxxramas/boss_loatheb.cpp
index 3664a166a9f..93575e6367f 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_loatheb.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_loatheb.cpp
@@ -64,14 +64,14 @@ class boss_loatheb : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
_doomCounter = 0;
_sporeLoserData = true;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
events.ScheduleEvent(EVENT_NECROTIC_AURA, 17000);
@@ -80,12 +80,12 @@ class boss_loatheb : public CreatureScript
events.ScheduleEvent(EVENT_INEVITABLE_DOOM, 120000);
}
- void SummonedCreatureDies(Creature* /*summon*/, Unit* /*killer*/)
+ void SummonedCreatureDies(Creature* /*summon*/, Unit* /*killer*/) OVERRIDE
{
_sporeLoserData = false;
}
- uint32 GetData(uint32 id) const
+ uint32 GetData(uint32 id) const OVERRIDE
{
if (id != DATA_ACHIEVEMENT_SPORE_LOSER)
return 0;
@@ -93,7 +93,7 @@ class boss_loatheb : public CreatureScript
return uint32(_sporeLoserData);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -139,7 +139,7 @@ class boss_loatheb : public CreatureScript
uint8 _doomCounter;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_loathebAI(creature);
}
@@ -150,7 +150,7 @@ class achievement_spore_loser : public AchievementCriteriaScript
public:
achievement_spore_loser() : AchievementCriteriaScript("achievement_spore_loser") { }
- bool OnCheck(Player* /*source*/, Unit* target)
+ bool OnCheck(Player* /*source*/, Unit* target) OVERRIDE
{
return target && target->GetAI()->GetData(DATA_ACHIEVEMENT_SPORE_LOSER);
}
@@ -167,7 +167,7 @@ class spell_loatheb_necrotic_aura_warning : public SpellScriptLoader
{
PrepareAuraScript(spell_loatheb_necrotic_aura_warning_AuraScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellStore.LookupEntry(SPELL_WARN_NECROTIC_AURA))
return false;
@@ -186,14 +186,14 @@ class spell_loatheb_necrotic_aura_warning : public SpellScriptLoader
CAST_AI(LoathebAI, GetTarget()->GetAI())->Talk(SAY_NECROTIC_AURA_REMOVED);
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectApply += AuraEffectApplyFn(spell_loatheb_necrotic_aura_warning_AuraScript::HandleEffectApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_loatheb_necrotic_aura_warning_AuraScript::HandleEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_loatheb_necrotic_aura_warning_AuraScript();
}
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp b/src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp
index f1b2d9aeaed..468739894f6 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp
@@ -35,8 +35,8 @@ enum Spells
enum Creatures
{
- MOB_WEB_WRAP = 16486,
- MOB_SPIDERLING = 17055,
+ NPC_WEB_WRAP = 16486,
+ NPC_SPIDERLING = 17055,
};
#define MAX_POS_WRAP 3
@@ -63,9 +63,9 @@ class boss_maexxna : public CreatureScript
public:
boss_maexxna() : CreatureScript("boss_maexxna") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_maexxnaAI (creature);
+ return new boss_maexxnaAI(creature);
}
struct boss_maexxnaAI : public BossAI
@@ -74,7 +74,7 @@ public:
bool enraged;
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
enraged = false;
@@ -85,7 +85,7 @@ public:
events.ScheduleEvent(EVENT_SUMMON, 30000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim() || !CheckInRoom())
return;
@@ -111,7 +111,7 @@ public:
target->RemoveAura(RAID_MODE(SPELL_WEB_SPRAY_10, SPELL_WEB_SPRAY_25));
uint8 pos = rand()%MAX_POS_WRAP;
target->GetMotionMaster()->MoveJump(PosWrap[pos].GetPositionX(), PosWrap[pos].GetPositionY(), PosWrap[pos].GetPositionZ(), 20, 20);
- if (Creature* wrap = DoSummon(MOB_WEB_WRAP, PosWrap[pos], 0, TEMPSUMMON_CORPSE_DESPAWN))
+ if (Creature* wrap = DoSummon(NPC_WEB_WRAP, PosWrap[pos], 0, TEMPSUMMON_CORPSE_DESPAWN))
wrap->AI()->SetGUID(target->GetGUID());
}
}
@@ -126,7 +126,7 @@ public:
events.ScheduleEvent(EVENT_SHOCK, urand(10000, 20000));
break;
case EVENT_POISON:
- DoCast(me->getVictim(), RAID_MODE(SPELL_NECROTIC_POISON_10, SPELL_NECROTIC_POISON_25));
+ DoCastVictim(RAID_MODE(SPELL_NECROTIC_POISON_10, SPELL_NECROTIC_POISON_25));
events.ScheduleEvent(EVENT_POISON, urand(10000, 20000));
break;
case EVENT_FRENZY:
@@ -137,7 +137,7 @@ public:
/// @todo Add missing text
uint8 amount = urand(8, 10);
for (uint8 i = 0; i < amount; ++i)
- DoSummon(MOB_SPIDERLING, me, 0, TEMPSUMMON_CORPSE_DESPAWN);
+ DoSummon(NPC_SPIDERLING, me, 0, TEMPSUMMON_CORPSE_DESPAWN);
events.ScheduleEvent(EVENT_SUMMON, 40000);
break;
}
@@ -149,23 +149,23 @@ public:
};
-class mob_webwrap : public CreatureScript
+class npc_webwrap : public CreatureScript
{
public:
- mob_webwrap() : CreatureScript("mob_webwrap") { }
+ npc_webwrap() : CreatureScript("npc_webwrap") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_webwrapAI (creature);
+ return new npc_webwrapAI(creature);
}
- struct mob_webwrapAI : public NullCreatureAI
+ struct npc_webwrapAI : public NullCreatureAI
{
- mob_webwrapAI(Creature* creature) : NullCreatureAI(creature), victimGUID(0) {}
+ npc_webwrapAI(Creature* creature) : NullCreatureAI(creature), victimGUID(0) {}
uint64 victimGUID;
- void SetGUID(uint64 guid, int32 /*param*/)
+ void SetGUID(uint64 guid, int32 /*param*/) OVERRIDE
{
victimGUID = guid;
if (me->m_spells[0] && victimGUID)
@@ -173,7 +173,7 @@ public:
victim->CastSpell(victim, me->m_spells[0], true, NULL, NULL, me->GetGUID());
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (me->m_spells[0] && victimGUID)
if (Unit* victim = Unit::GetUnit(*me, victimGUID))
@@ -186,5 +186,5 @@ public:
void AddSC_boss_maexxna()
{
new boss_maexxna();
- new mob_webwrap();
+ new npc_webwrap();
}
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_noth.cpp b/src/server/scripts/Northrend/Naxxramas/boss_noth.cpp
index d0034628424..e01417574bb 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_noth.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_noth.cpp
@@ -32,9 +32,9 @@ enum Noth
SPELL_CRIPPLE = 29212, // 25-man: 54814
SPELL_TELEPORT = 29216,
- MOB_WARRIOR = 16984,
- MOB_CHAMPION = 16983,
- MOB_GUARDIAN = 16981
+ NPC_WARRIOR = 16984,
+ NPC_CHAMPION = 16983,
+ NPC_GUARDIAN = 16981
};
#define SPELL_BLINK RAND(29208, 29209, 29210, 29211)
@@ -73,9 +73,9 @@ class boss_noth : public CreatureScript
public:
boss_noth() : CreatureScript("boss_noth") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_nothAI (creature);
+ return new boss_nothAI(creature);
}
struct boss_nothAI : public BossAI
@@ -84,14 +84,14 @@ public:
uint32 waveCount, balconyCount;
- void Reset()
+ void Reset() OVERRIDE
{
me->SetReactState(REACT_AGGRESSIVE);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
_Reset();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
Talk(SAY_AGGRO);
@@ -116,20 +116,20 @@ public:
}
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
if (!(rand()%5))
Talk(SAY_SLAY);
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
summons.Summon(summon);
summon->setActive(true);
summon->AI()->DoZoneInCombat();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
Talk(SAY_DEATH);
@@ -145,7 +145,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim() || !CheckInRoom())
return;
@@ -162,7 +162,7 @@ public:
return;
case EVENT_WARRIOR:
Talk(SAY_SUMMON);
- SummonUndead(MOB_WARRIOR, RAID_MODE(2, 3));
+ SummonUndead(NPC_WARRIOR, RAID_MODE(2, 3));
events.ScheduleEvent(EVENT_WARRIOR, 30000);
return;
case EVENT_BLINK:
@@ -185,12 +185,12 @@ public:
Talk(SAY_SUMMON);
switch (balconyCount)
{
- case 0: SummonUndead(MOB_CHAMPION, RAID_MODE(2, 4)); break;
- case 1: SummonUndead(MOB_CHAMPION, RAID_MODE(1, 2));
- SummonUndead(MOB_GUARDIAN, RAID_MODE(1, 2)); break;
- case 2: SummonUndead(MOB_GUARDIAN, RAID_MODE(2, 4)); break;
- default:SummonUndead(MOB_CHAMPION, RAID_MODE(5, 10));
- SummonUndead(MOB_GUARDIAN, RAID_MODE(5, 10));break;
+ case 0: SummonUndead(NPC_CHAMPION, RAID_MODE(2, 4)); break;
+ case 1: SummonUndead(NPC_CHAMPION, RAID_MODE(1, 2));
+ SummonUndead(NPC_GUARDIAN, RAID_MODE(1, 2)); break;
+ case 2: SummonUndead(NPC_GUARDIAN, RAID_MODE(2, 4)); break;
+ default:SummonUndead(NPC_CHAMPION, RAID_MODE(5, 10));
+ SummonUndead(NPC_GUARDIAN, RAID_MODE(5, 10));break;
}
++waveCount;
events.ScheduleEvent(waveCount < 2 ? EVENT_WAVE : EVENT_GROUND, urand(30000, 45000));
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_patchwerk.cpp b/src/server/scripts/Northrend/Naxxramas/boss_patchwerk.cpp
index 13a5340fa8e..bf3e7706f4d 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_patchwerk.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_patchwerk.cpp
@@ -25,7 +25,7 @@ enum Spells
H_SPELL_HATEFUL_STRIKE = 59192,
SPELL_FRENZY = 28131,
SPELL_BERSERK = 26662,
- SPELL_SLIME_BOLT = 32309,
+ SPELL_SLIME_BOLT = 32309
};
enum Yells
@@ -45,9 +45,9 @@ enum Events
EVENT_SLIME
};
-enum
+enum Misc
{
- ACHIEV_MAKE_QUICK_WERK_OF_HIM_STARTING_EVENT = 10286,
+ ACHIEV_MAKE_QUICK_WERK_OF_HIM_STARTING_EVENT = 10286
};
class boss_patchwerk : public CreatureScript
@@ -55,9 +55,9 @@ class boss_patchwerk : public CreatureScript
public:
boss_patchwerk() : CreatureScript("boss_patchwerk") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_patchwerkAI (creature);
+ return new boss_patchwerkAI(creature);
}
struct boss_patchwerkAI : public BossAI
@@ -66,7 +66,7 @@ public:
bool Enraged;
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
@@ -74,19 +74,19 @@ public:
instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_MAKE_QUICK_WERK_OF_HIM_STARTING_EVENT);
}
- void KilledUnit(Unit* /*Victim*/)
+ void KilledUnit(Unit* /*Victim*/) OVERRIDE
{
if (!(rand()%5))
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
Talk(SAY_DEATH);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
Enraged = false;
@@ -98,7 +98,7 @@ public:
instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_MAKE_QUICK_WERK_OF_HIM_STARTING_EVENT);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -119,7 +119,7 @@ public:
for (; i != me->getThreatManager().getThreatList().end(); ++i)
{
Unit* target = (*i)->getTarget();
- if (target->isAlive() && target != me->getVictim() && target->GetHealth() > MostHP && me->IsWithinMeleeRange(target))
+ if (target->IsAlive() && target != me->GetVictim() && target->GetHealth() > MostHP && me->IsWithinMeleeRange(target))
{
MostHP = target->GetHealth();
pMostHPTarget = target;
@@ -127,7 +127,7 @@ public:
}
if (!pMostHPTarget)
- pMostHPTarget = me->getVictim();
+ pMostHPTarget = me->GetVictim();
DoCast(pMostHPTarget, RAID_MODE(SPELL_HATEFUL_STRIKE, H_SPELL_HATEFUL_STRIKE), true);
@@ -140,7 +140,7 @@ public:
events.ScheduleEvent(EVENT_SLIME, 2000);
break;
case EVENT_SLIME:
- DoCast(me->getVictim(), SPELL_SLIME_BOLT, true);
+ DoCastVictim(SPELL_SLIME_BOLT, true);
events.ScheduleEvent(EVENT_SLIME, 2000);
break;
}
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp b/src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp
index c78f7d0a757..5505b83d411 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp
@@ -39,10 +39,13 @@
#define SOUND_DEATH 8860
#define SOUND_AGGROMIX 8847
-#define SPELL_UNBALANCING_STRIKE 26613
-#define SPELL_DISRUPTING_SHOUT RAID_MODE(29107, 55543)
-#define SPELL_JAGGED_KNIFE 55550
-#define SPELL_HOPELESS 29125
+enum Spells
+{
+ SPELL_UNBALANCING_STRIKE = 26613,
+ SPELL_DISRUPTING_SHOUT = 29107,
+ SPELL_JAGGED_KNIFE = 55550,
+ SPELL_HOPELESS = 29125
+};
enum Events
{
@@ -58,22 +61,22 @@ class boss_razuvious : public CreatureScript
public:
boss_razuvious() : CreatureScript("boss_razuvious") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_razuviousAI (creature);
+ return new boss_razuviousAI(creature);
}
struct boss_razuviousAI : public BossAI
{
boss_razuviousAI(Creature* creature) : BossAI(creature, BOSS_RAZUVIOUS) {}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
if (!(rand()%3))
DoPlaySoundToSet(me, SOUND_SLAY);
}
- void DamageTaken(Unit* pDone_by, uint32& uiDamage)
+ void DamageTaken(Unit* pDone_by, uint32& uiDamage) OVERRIDE
{
// Damage done by the controlled Death Knight understudies should also count toward damage done by players
if (pDone_by->GetTypeId() == TYPEID_UNIT && (pDone_by->GetEntry() == 16803 || pDone_by->GetEntry() == 29941))
@@ -82,14 +85,14 @@ public:
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
DoPlaySoundToSet(me, SOUND_DEATH);
me->CastSpell(me, SPELL_HOPELESS, true); /// @todo this may affect other creatures
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
DoPlaySoundToSet(me, SOUND_AGGRO);
@@ -99,7 +102,7 @@ public:
events.ScheduleEvent(EVENT_KNIFE, 10000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -111,7 +114,7 @@ public:
switch (eventId)
{
case EVENT_STRIKE:
- DoCast(me->getVictim(), SPELL_UNBALANCING_STRIKE);
+ DoCastVictim(SPELL_UNBALANCING_STRIKE);
events.ScheduleEvent(EVENT_STRIKE, 30000);
return;
case EVENT_SHOUT:
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp b/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp
index 0e5941138a6..60620804db8 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp
@@ -94,7 +94,7 @@ class boss_sapphiron : public CreatureScript
_map(me->GetMap())
{ }
- void InitializeAI()
+ void InitializeAI() OVERRIDE
{
float x, y, z;
me->GetPosition(x, y, z);
@@ -106,7 +106,7 @@ class boss_sapphiron : public CreatureScript
BossAI::InitializeAI();
}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
@@ -119,7 +119,7 @@ class boss_sapphiron : public CreatureScript
_checkFrostResistTimer = 5 * IN_MILLISECONDS;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
@@ -131,7 +131,7 @@ class boss_sapphiron : public CreatureScript
CheckPlayersFrostResist();
}
- void SpellHitTarget(Unit* target, SpellInfo const* spell)
+ void SpellHitTarget(Unit* target, SpellInfo const* spell) OVERRIDE
{
if (spell->Id == SPELL_ICEBOLT)
{
@@ -144,7 +144,7 @@ class boss_sapphiron : public CreatureScript
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
me->CastSpell(me, SPELL_DIES, true);
@@ -152,13 +152,13 @@ class boss_sapphiron : public CreatureScript
CheckPlayersFrostResist();
}
- void MovementInform(uint32 /*type*/, uint32 id)
+ void MovementInform(uint32 /*type*/, uint32 id) OVERRIDE
{
if (id == 1)
events.ScheduleEvent(EVENT_LIFTOFF, 0);
}
- void DoAction(int32 param)
+ void DoAction(int32 param) OVERRIDE
{
if (param == DATA_SAPPHIRON_BIRTH)
{
@@ -174,7 +174,7 @@ class boss_sapphiron : public CreatureScript
Map::PlayerList const &players = _map->GetPlayers();
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
{
- if (itr->getSource()->GetResistance(SPELL_SCHOOL_FROST) > MAX_FROST_RESISTANCE)
+ if (itr->GetSource()->GetResistance(SPELL_SCHOOL_FROST) > MAX_FROST_RESISTANCE)
{
_canTheHundredClub = false;
break;
@@ -208,7 +208,7 @@ class boss_sapphiron : public CreatureScript
_iceblocks.clear();
}
- uint32 GetData(uint32 data) const
+ uint32 GetData(uint32 data) const OVERRIDE
{
if (data == DATA_THE_HUNDRED_CLUB)
return _canTheHundredClub;
@@ -216,7 +216,7 @@ class boss_sapphiron : public CreatureScript
return 0;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!_phase)
return;
@@ -294,7 +294,6 @@ class boss_sapphiron : public CreatureScript
case EVENT_LIFTOFF:
Talk(EMOTE_AIR_PHASE);
me->SetDisableGravity(true);
- me->SendMovementFlagUpdate();
events.ScheduleEvent(EVENT_ICEBOLT, 1500);
_iceboltCount = RAID_MODE(2, 3);
return;
@@ -339,7 +338,6 @@ class boss_sapphiron : public CreatureScript
me->HandleEmoteCommand(EMOTE_ONESHOT_LAND);
Talk(EMOTE_GROUND_PHASE);
me->SetDisableGravity(false);
- me->SendMovementFlagUpdate();
events.ScheduleEvent(EVENT_GROUND, 1500);
return;
case EVENT_GROUND:
@@ -403,9 +401,9 @@ class boss_sapphiron : public CreatureScript
Map* _map;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_sapphironAI (creature);
+ return new boss_sapphironAI(creature);
}
};
@@ -414,7 +412,7 @@ class achievement_the_hundred_club : public AchievementCriteriaScript
public:
achievement_the_hundred_club() : AchievementCriteriaScript("achievement_the_hundred_club") { }
- bool OnCheck(Player* /*source*/, Unit* target)
+ bool OnCheck(Player* /*source*/, Unit* target) OVERRIDE
{
return target && target->GetAI()->GetData(DATA_THE_HUNDRED_CLUB);
}
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp b/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp
index ea50c67ad1c..3d121887471 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp
@@ -108,9 +108,9 @@ class boss_thaddius : public CreatureScript
public:
boss_thaddius() : CreatureScript("boss_thaddius") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_thaddiusAI (creature);
+ return new boss_thaddiusAI(creature);
}
struct boss_thaddiusAI : public BossAI
@@ -124,11 +124,11 @@ public:
// and each mob will send its status at reset (meaning that it is alive)
checkFeugenAlive = false;
if (Creature* pFeugen = me->GetCreature(*me, instance->GetData64(DATA_FEUGEN)))
- checkFeugenAlive = pFeugen->isAlive();
+ checkFeugenAlive = pFeugen->IsAlive();
checkStalaggAlive = false;
if (Creature* pStalagg = me->GetCreature(*me, instance->GetData64(DATA_STALAGG)))
- checkStalaggAlive = pStalagg->isAlive();
+ checkStalaggAlive = pStalagg->IsAlive();
if (!checkFeugenAlive && !checkStalaggAlive)
{
@@ -147,19 +147,19 @@ public:
bool polaritySwitch;
uint32 uiAddsTimer;
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
if (!(rand()%5))
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
Talk(SAY_DEATH);
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -190,7 +190,7 @@ public:
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
Talk(SAY_AGGRO);
@@ -199,18 +199,18 @@ public:
events.ScheduleEvent(EVENT_BERSERK, 360000);
}
- void DamageTaken(Unit* /*pDoneBy*/, uint32 & /*uiDamage*/)
+ void DamageTaken(Unit* /*pDoneBy*/, uint32 & /*uiDamage*/) OVERRIDE
{
me->SetReactState(REACT_AGGRESSIVE);
}
- void SetData(uint32 id, uint32 data)
+ void SetData(uint32 id, uint32 data) OVERRIDE
{
if (id == DATA_POLARITY_SWITCH)
polaritySwitch = data ? true : false;
}
- uint32 GetData(uint32 id) const
+ uint32 GetData(uint32 id) const OVERRIDE
{
if (id != DATA_POLARITY_SWITCH)
return 0;
@@ -218,7 +218,7 @@ public:
return uint32(polaritySwitch);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (checkFeugenAlive && checkStalaggAlive)
uiAddsTimer = 0;
@@ -260,7 +260,7 @@ public:
events.ScheduleEvent(EVENT_SHIFT, 30000);
return;
case EVENT_CHAIN:
- DoCast(me->getVictim(), RAID_MODE(SPELL_CHAIN_LIGHTNING, H_SPELL_CHAIN_LIGHTNING));
+ DoCastVictim(RAID_MODE(SPELL_CHAIN_LIGHTNING, H_SPELL_CHAIN_LIGHTNING));
events.ScheduleEvent(EVENT_CHAIN, urand(10000, 20000));
return;
case EVENT_BERSERK:
@@ -269,8 +269,8 @@ public:
}
}
- if (events.GetTimer() > 15000 && !me->IsWithinMeleeRange(me->getVictim()))
- DoCast(me->getVictim(), SPELL_BALL_LIGHTNING);
+ if (events.GetTimer() > 15000 && !me->IsWithinMeleeRange(me->GetVictim()))
+ DoCastVictim(SPELL_BALL_LIGHTNING);
else
DoMeleeAttackIfReady();
}
@@ -278,19 +278,19 @@ public:
};
-class mob_stalagg : public CreatureScript
+class npc_stalagg : public CreatureScript
{
public:
- mob_stalagg() : CreatureScript("mob_stalagg") { }
+ npc_stalagg() : CreatureScript("npc_stalagg") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_stalaggAI(creature);
+ return new npc_stalaggAI(creature);
}
- struct mob_stalaggAI : public ScriptedAI
+ struct npc_stalaggAI : public ScriptedAI
{
- mob_stalaggAI(Creature* creature) : ScriptedAI(creature)
+ npc_stalaggAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -300,7 +300,7 @@ public:
uint32 powerSurgeTimer;
uint32 magneticPullTimer;
- void Reset()
+ void Reset() OVERRIDE
{
if (instance)
if (Creature* pThaddius = me->GetCreature(*me, instance->GetData64(DATA_THADDIUS)))
@@ -310,19 +310,19 @@ public:
magneticPullTimer = 20000;
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
if (!(rand()%5))
Talk(SAY_STAL_SLAY);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_STAL_AGGRO);
DoCast(SPELL_STALAGG_TESLA);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_STAL_DEATH);
if (instance)
@@ -331,7 +331,7 @@ public:
pThaddius->AI()->DoAction(ACTION_STALAGG_DIED);
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -340,8 +340,8 @@ public:
{
if (Creature* pFeugen = me->GetCreature(*me, instance->GetData64(DATA_FEUGEN)))
{
- Unit* pStalaggVictim = me->getVictim();
- Unit* pFeugenVictim = pFeugen->getVictim();
+ Unit* pStalaggVictim = me->GetVictim();
+ Unit* pFeugenVictim = pFeugen->GetVictim();
if (pFeugenVictim && pStalaggVictim)
{
@@ -372,19 +372,19 @@ public:
};
-class mob_feugen : public CreatureScript
+class npc_feugen : public CreatureScript
{
public:
- mob_feugen() : CreatureScript("mob_feugen") { }
+ npc_feugen() : CreatureScript("npc_feugen") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_feugenAI(creature);
+ return new npc_feugenAI(creature);
}
- struct mob_feugenAI : public ScriptedAI
+ struct npc_feugenAI : public ScriptedAI
{
- mob_feugenAI(Creature* creature) : ScriptedAI(creature)
+ npc_feugenAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -393,7 +393,7 @@ public:
uint32 staticFieldTimer;
- void Reset()
+ void Reset() OVERRIDE
{
if (instance)
if (Creature* pThaddius = me->GetCreature(*me, instance->GetData64(DATA_THADDIUS)))
@@ -402,19 +402,19 @@ public:
staticFieldTimer = 5000;
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
if (!(rand()%5))
Talk(SAY_FEUG_SLAY);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_FEUG_AGGRO);
DoCast(SPELL_FEUGEN_TESLA);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_FEUG_DEATH);
if (instance)
@@ -423,7 +423,7 @@ public:
pThaddius->AI()->DoAction(ACTION_FEUGEN_DIED);
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -449,7 +449,7 @@ class spell_thaddius_pos_neg_charge : public SpellScriptLoader
{
PrepareSpellScript(spell_thaddius_pos_neg_charge_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_POSITIVE_CHARGE))
return false;
@@ -462,7 +462,7 @@ class spell_thaddius_pos_neg_charge : public SpellScriptLoader
return true;
}
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_UNIT;
}
@@ -506,14 +506,14 @@ class spell_thaddius_pos_neg_charge : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_thaddius_pos_neg_charge_SpellScript::HandleDamage, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_thaddius_pos_neg_charge_SpellScript::HandleTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ALLY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_thaddius_pos_neg_charge_SpellScript();
}
@@ -528,7 +528,7 @@ class spell_thaddius_polarity_shift : public SpellScriptLoader
{
PrepareSpellScript(spell_thaddius_polarity_shift_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_POSITIVE_POLARITY) || !sSpellMgr->GetSpellInfo(SPELL_NEGATIVE_POLARITY))
return false;
@@ -542,13 +542,13 @@ class spell_thaddius_polarity_shift : public SpellScriptLoader
target->CastSpell(target, roll_chance_i(50) ? SPELL_POSITIVE_POLARITY : SPELL_NEGATIVE_POLARITY, true, NULL, NULL, caster->GetGUID());
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_thaddius_polarity_shift_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_thaddius_polarity_shift_SpellScript();
}
@@ -559,7 +559,7 @@ class achievement_polarity_switch : public AchievementCriteriaScript
public:
achievement_polarity_switch() : AchievementCriteriaScript("achievement_polarity_switch") { }
- bool OnCheck(Player* /*source*/, Unit* target)
+ bool OnCheck(Player* /*source*/, Unit* target) OVERRIDE
{
return target && target->GetAI()->GetData(DATA_POLARITY_SWITCH);
}
@@ -568,8 +568,8 @@ class achievement_polarity_switch : public AchievementCriteriaScript
void AddSC_boss_thaddius()
{
new boss_thaddius();
- new mob_stalagg();
- new mob_feugen();
+ new npc_stalagg();
+ new npc_feugen();
new spell_thaddius_pos_neg_charge();
new spell_thaddius_polarity_shift();
new achievement_polarity_switch();
diff --git a/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp b/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp
index d16252ad05e..fa50e478d5a 100644
--- a/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp
@@ -20,67 +20,61 @@
#include "InstanceScript.h"
#include "naxxramas.h"
-const DoorData doorData[] =
+DoorData const doorData[] =
{
- {181126, BOSS_ANUBREKHAN, DOOR_TYPE_ROOM, BOUNDARY_S},
- {181195, BOSS_ANUBREKHAN, DOOR_TYPE_PASSAGE, 0},
- {194022, BOSS_FAERLINA, DOOR_TYPE_PASSAGE, 0},
- {181209, BOSS_FAERLINA, DOOR_TYPE_PASSAGE, 0},
- {181209, BOSS_MAEXXNA, DOOR_TYPE_ROOM, BOUNDARY_SW},
- {181200, BOSS_NOTH, DOOR_TYPE_ROOM, BOUNDARY_N},
- {181201, BOSS_NOTH, DOOR_TYPE_PASSAGE, BOUNDARY_E},
- {181202, BOSS_NOTH, DOOR_TYPE_PASSAGE, 0},
- {181202, BOSS_HEIGAN, DOOR_TYPE_ROOM, BOUNDARY_N},
- {181203, BOSS_HEIGAN, DOOR_TYPE_PASSAGE, BOUNDARY_E},
- {181241, BOSS_HEIGAN, DOOR_TYPE_PASSAGE, 0},
- {181241, BOSS_LOATHEB, DOOR_TYPE_ROOM, BOUNDARY_W},
- {181123, BOSS_PATCHWERK, DOOR_TYPE_PASSAGE, 0},
- {181123, BOSS_GROBBULUS, DOOR_TYPE_ROOM, 0},
- {181120, BOSS_GLUTH, DOOR_TYPE_PASSAGE, BOUNDARY_NW},
- {181121, BOSS_GLUTH, DOOR_TYPE_PASSAGE, 0},
- {181121, BOSS_THADDIUS, DOOR_TYPE_ROOM, 0},
- {181124, BOSS_RAZUVIOUS, DOOR_TYPE_PASSAGE, 0},
- {181124, BOSS_GOTHIK, DOOR_TYPE_ROOM, BOUNDARY_N},
- {181125, BOSS_GOTHIK, DOOR_TYPE_PASSAGE, BOUNDARY_S},
- {181119, BOSS_GOTHIK, DOOR_TYPE_PASSAGE, 0},
- {181119, BOSS_HORSEMEN, DOOR_TYPE_ROOM, BOUNDARY_NE},
- {181225, BOSS_SAPPHIRON, DOOR_TYPE_PASSAGE, BOUNDARY_W},
- {181228, BOSS_KELTHUZAD, DOOR_TYPE_ROOM, BOUNDARY_S},
- {0, 0, DOOR_TYPE_ROOM, 0}, // EOF
+ { GO_ROOM_ANUBREKHAN, BOSS_ANUBREKHAN, DOOR_TYPE_ROOM, BOUNDARY_S },
+ { GO_PASSAGE_ANUBREKHAN, BOSS_ANUBREKHAN, DOOR_TYPE_PASSAGE, BOUNDARY_NONE },
+ { GO_PASSAGE_FAERLINA, BOSS_FAERLINA, DOOR_TYPE_PASSAGE, BOUNDARY_NONE },
+ { GO_ROOM_MAEXXNA, BOSS_FAERLINA, DOOR_TYPE_PASSAGE, BOUNDARY_NONE },
+ { GO_ROOM_MAEXXNA, BOSS_MAEXXNA, DOOR_TYPE_ROOM, BOUNDARY_SW },
+ { GO_ROOM_NOTH, BOSS_NOTH, DOOR_TYPE_ROOM, BOUNDARY_N },
+ { GO_PASSAGE_NOTH, BOSS_NOTH, DOOR_TYPE_PASSAGE, BOUNDARY_E },
+ { GO_ROOM_HEIGAN, BOSS_NOTH, DOOR_TYPE_PASSAGE, BOUNDARY_NONE },
+ { GO_ROOM_HEIGAN, BOSS_HEIGAN, DOOR_TYPE_ROOM, BOUNDARY_N },
+ { GO_PASSAGE_HEIGAN, BOSS_HEIGAN, DOOR_TYPE_PASSAGE, BOUNDARY_E },
+ { GO_ROOM_LOATHEB, BOSS_HEIGAN, DOOR_TYPE_PASSAGE, BOUNDARY_NONE },
+ { GO_ROOM_LOATHEB, BOSS_LOATHEB, DOOR_TYPE_ROOM, BOUNDARY_W },
+ { GO_ROOM_GROBBULUS, BOSS_PATCHWERK, DOOR_TYPE_PASSAGE, BOUNDARY_NONE },
+ { GO_ROOM_GROBBULUS, BOSS_GROBBULUS, DOOR_TYPE_ROOM, BOUNDARY_NONE },
+ { GO_PASSAGE_GLUTH, BOSS_GLUTH, DOOR_TYPE_PASSAGE, BOUNDARY_NW },
+ { GO_ROOM_THADDIUS, BOSS_GLUTH, DOOR_TYPE_PASSAGE, BOUNDARY_NONE },
+ { GO_ROOM_THADDIUS, BOSS_THADDIUS, DOOR_TYPE_ROOM, BOUNDARY_NONE },
+ { GO_ROOM_GOTHIK, BOSS_RAZUVIOUS, DOOR_TYPE_PASSAGE, BOUNDARY_NONE },
+ { GO_ROOM_GOTHIK, BOSS_GOTHIK, DOOR_TYPE_ROOM, BOUNDARY_N },
+ { GO_PASSAGE_GOTHIK, BOSS_GOTHIK, DOOR_TYPE_PASSAGE, BOUNDARY_S },
+ { GO_ROOM_HORSEMEN, BOSS_GOTHIK, DOOR_TYPE_PASSAGE, BOUNDARY_NONE },
+ { GO_GOTHIK_GATE, BOSS_GOTHIK, DOOR_TYPE_ROOM, BOUNDARY_NONE },
+ { GO_ROOM_HORSEMEN, BOSS_HORSEMEN, DOOR_TYPE_ROOM, BOUNDARY_NE },
+ { GO_PASSAGE_SAPPHIRON, BOSS_SAPPHIRON, DOOR_TYPE_PASSAGE, BOUNDARY_W },
+ { GO_ROOM_KELTHUZAD, BOSS_KELTHUZAD, DOOR_TYPE_ROOM, BOUNDARY_S },
+ { GO_ARAC_EYE_RAMP, BOSS_MAEXXNA, DOOR_TYPE_PASSAGE, BOUNDARY_NONE },
+ { GO_ARAC_EYE_RAMP_BOSS, BOSS_MAEXXNA, DOOR_TYPE_PASSAGE, BOUNDARY_NONE },
+ { GO_PLAG_EYE_RAMP, BOSS_LOATHEB, DOOR_TYPE_PASSAGE, BOUNDARY_NONE },
+ { GO_PLAG_EYE_RAMP_BOSS, BOSS_LOATHEB, DOOR_TYPE_PASSAGE, BOUNDARY_NONE },
+ { GO_MILI_EYE_RAMP, BOSS_HORSEMEN, DOOR_TYPE_PASSAGE, BOUNDARY_NONE },
+ { GO_MILI_EYE_RAMP_BOSS, BOSS_HORSEMEN, DOOR_TYPE_PASSAGE, BOUNDARY_NONE },
+ { GO_CONS_EYE_RAMP, BOSS_THADDIUS, DOOR_TYPE_PASSAGE, BOUNDARY_NONE },
+ { GO_CONS_EYE_RAMP_BOSS, BOSS_THADDIUS, DOOR_TYPE_PASSAGE, BOUNDARY_NONE },
+ { 0, 0, DOOR_TYPE_ROOM, BOUNDARY_NONE }
};
-const MinionData minionData[] =
+MinionData const minionData[] =
{
- //{16573, BOSS_ANUBREKHAN}, there is no spawn point in db, so we do not add them here
- {16506, BOSS_FAERLINA},
- {16803, BOSS_RAZUVIOUS},
- {16063, BOSS_HORSEMEN},
- {16064, BOSS_HORSEMEN},
- {16065, BOSS_HORSEMEN},
- {30549, BOSS_HORSEMEN},
- {0, 0, }
+ { NPC_FOLLOWER_WORSHIPPER, BOSS_FAERLINA },
+ { NPC_DK_UNDERSTUDY, BOSS_RAZUVIOUS },
+ { NPC_SIR, BOSS_HORSEMEN },
+ { NPC_THANE, BOSS_HORSEMEN },
+ { NPC_LADY, BOSS_HORSEMEN },
+ { NPC_BARON, BOSS_HORSEMEN },
+ { 0, 0, }
};
-enum eEnums
+float const HeiganPos[2] = { 2796.0f, -3707.0f };
+float const HeiganEruptionSlope[3] =
{
- GO_HORSEMEN_CHEST_HERO = 193426,
- GO_HORSEMEN_CHEST = 181366, //four horsemen event, DoRespawnGameObject() when event == DONE
- GO_GOTHIK_GATE = 181170,
- GO_KELTHUZAD_PORTAL01 = 181402,
- GO_KELTHUZAD_PORTAL02 = 181403,
- GO_KELTHUZAD_PORTAL03 = 181404,
- GO_KELTHUZAD_PORTAL04 = 181405,
- GO_KELTHUZAD_TRIGGER = 181444,
-
- SPELL_ERUPTION = 29371
-};
-
-const float HeiganPos[2] = {2796, -3707};
-const float HeiganEruptionSlope[3] =
-{
- (-3685 - HeiganPos[1]) /(2724 - HeiganPos[0]),
- (-3647 - HeiganPos[1]) /(2749 - HeiganPos[0]),
- (-3637 - HeiganPos[1]) /(2771 - HeiganPos[0]),
+ (-3685.0f - HeiganPos[1]) / (2724.0f - HeiganPos[0]),
+ (-3647.0f - HeiganPos[1]) / (2749.0f - HeiganPos[0]),
+ (-3637.0f - HeiganPos[1]) / (2771.0f - HeiganPos[0])
};
// 0 H x
@@ -106,367 +100,423 @@ inline uint32 GetEruptionSection(float x, float y)
class instance_naxxramas : public InstanceMapScript
{
-public:
- instance_naxxramas() : InstanceMapScript("instance_naxxramas", 533) { }
-
- InstanceScript* GetInstanceScript(InstanceMap* map) const
- {
- return new instance_naxxramas_InstanceMapScript(map);
- }
+ public:
+ instance_naxxramas() : InstanceMapScript("instance_naxxramas", 533) { }
- struct instance_naxxramas_InstanceMapScript : public InstanceScript
- {
- instance_naxxramas_InstanceMapScript(Map* map) : InstanceScript(map)
+ struct instance_naxxramas_InstanceMapScript : public InstanceScript
{
- SetBossNumber(MAX_BOSS_NUMBER);
- LoadDoorData(doorData);
- LoadMinionData(minionData);
- }
-
- std::set<uint64> heiganEruptionGUID[4];
- uint64 gothikGateGUID;
- uint64 horsemenChestGUID;
- uint64 sapphironGUID;
- uint64 faerlinaGUID;
- uint64 thaneGUID;
- uint64 ladyGUID;
- uint64 baronGUID;
- uint64 sirGUID;
-
- uint64 thaddiusGUID;
- uint64 heiganGUID;
- uint64 feugenGUID;
- uint64 stalaggGUID;
-
- uint64 kelthuzadGUID;
- uint64 kelthuzadTriggerGUID;
- uint64 portalsGUID[4];
+ instance_naxxramas_InstanceMapScript(Map* map) : InstanceScript(map)
+ {
+ SetBossNumber(EncounterCount);
+ LoadDoorData(doorData);
+ LoadMinionData(minionData);
+
+ GothikGateGUID = 0;
+ HorsemenChestGUID = 0;
+ FaerlinaGUID = 0;
+ ThaneGUID = 0;
+ LadyGUID = 0;
+ BaronGUID = 0;
+ SirGUID = 0;
+ ThaddiusGUID = 0;
+ HeiganGUID = 0;
+ FeugenGUID = 0;
+ StalaggGUID = 0;
+ SapphironGUID = 0;
+ KelthuzadGUID = 0;
+ KelthuzadTriggerGUID = 0;
+
+ playerDied = 0;
+
+ memset(PortalsGUID, 0, sizeof(PortalsGUID));
+ }
- uint32 AbominationCount;
+ void OnCreatureCreate(Creature* creature)
+ {
+ switch (creature->GetEntry())
+ {
+ case NPC_FAERLINA:
+ FaerlinaGUID = creature->GetGUID();
+ break;
+ case NPC_THANE:
+ ThaneGUID = creature->GetGUID();
+ break;
+ case NPC_LADY:
+ LadyGUID = creature->GetGUID();
+ break;
+ case NPC_BARON:
+ BaronGUID = creature->GetGUID();
+ break;
+ case NPC_SIR:
+ SirGUID = creature->GetGUID();
+ break;
+ case NPC_THADDIUS:
+ ThaddiusGUID = creature->GetGUID();
+ break;
+ case NPC_HEIGAN:
+ HeiganGUID = creature->GetGUID();
+ break;
+ case NPC_FEUGEN:
+ FeugenGUID = creature->GetGUID();
+ break;
+ case NPC_STALAGG:
+ StalaggGUID = creature->GetGUID();
+ break;
+ case NPC_SAPPHIRON:
+ SapphironGUID = creature->GetGUID();
+ break;
+ case NPC_KEL_THUZAD:
+ KelthuzadGUID = creature->GetGUID();
+ break;
+ default:
+ break;
+ }
- GOState gothikDoorState;
+ AddMinion(creature, true);
+ }
- time_t minHorsemenDiedTime;
- time_t maxHorsemenDiedTime;
+ void OnCreatureRemove(Creature* creature)
+ {
+ AddMinion(creature, false);
+ }
- uint32 playerDied;
+ void OnGameObjectCreate(GameObject* go)
+ {
+ if (go->GetGOInfo()->displayId == 6785 || go->GetGOInfo()->displayId == 1287)
+ {
+ uint32 section = GetEruptionSection(go->GetPositionX(), go->GetPositionY());
+ HeiganEruptionGUID[section].insert(go->GetGUID());
+ return;
+ }
- void Initialize()
- {
- gothikGateGUID = 0;
- horsemenChestGUID = 0;
- sapphironGUID = 0;
- faerlinaGUID = 0;
- thaneGUID = 0;
- ladyGUID = 0;
- baronGUID = 0;
- sirGUID = 0;
- thaddiusGUID = 0;
- heiganGUID = 0;
- feugenGUID = 0;
- stalaggGUID = 0;
- kelthuzadGUID = 0;
- kelthuzadTriggerGUID = 0;
-
- playerDied = 0;
- gothikDoorState = GO_STATE_ACTIVE;
-
- memset(portalsGUID, 0, sizeof(portalsGUID));
- }
+ switch (go->GetEntry())
+ {
+ case GO_GOTHIK_GATE:
+ GothikGateGUID = go->GetGUID();
+ break;
+ case GO_HORSEMEN_CHEST:
+ case GO_HORSEMEN_CHEST_HERO:
+ HorsemenChestGUID = go->GetGUID();
+ break;
+ case GO_KELTHUZAD_PORTAL01:
+ PortalsGUID[0] = go->GetGUID();
+ break;
+ case GO_KELTHUZAD_PORTAL02:
+ PortalsGUID[1] = go->GetGUID();
+ break;
+ case GO_KELTHUZAD_PORTAL03:
+ PortalsGUID[2] = go->GetGUID();
+ break;
+ case GO_KELTHUZAD_PORTAL04:
+ PortalsGUID[3] = go->GetGUID();
+ break;
+ case GO_KELTHUZAD_TRIGGER:
+ KelthuzadTriggerGUID = go->GetGUID();
+ break;
+ default:
+ break;
+ }
- void OnCreatureCreate(Creature* creature)
- {
- switch (creature->GetEntry())
- {
- case 15989: sapphironGUID = creature->GetGUID(); return;
- case 15953: faerlinaGUID = creature->GetGUID(); return;
- case 16064: thaneGUID = creature->GetGUID(); return;
- case 16065: ladyGUID = creature->GetGUID(); return;
- case 30549: baronGUID = creature->GetGUID(); return;
- case 16063: sirGUID = creature->GetGUID(); return;
- case 15928: thaddiusGUID = creature->GetGUID(); return;
- case 15936: heiganGUID = creature->GetGUID(); return;
- case 15930: feugenGUID = creature->GetGUID(); return;
- case 15929: stalaggGUID = creature->GetGUID(); return;
- case 15990: kelthuzadGUID = creature->GetGUID(); return;
+ AddDoor(go, true);
}
- AddMinion(creature, true);
- }
+ void OnGameObjectRemove(GameObject* go)
+ {
+ if (go->GetGOInfo()->displayId == 6785 || go->GetGOInfo()->displayId == 1287)
+ {
+ uint32 section = GetEruptionSection(go->GetPositionX(), go->GetPositionY());
- void OnCreatureRemove(Creature* creature)
- {
- AddMinion(creature, false);
- }
+ HeiganEruptionGUID[section].erase(go->GetGUID());
+ return;
+ }
- void OnGameObjectCreate(GameObject* go)
- {
- if (go->GetGOInfo()->displayId == 6785 || go->GetGOInfo()->displayId == 1287)
- {
- uint32 section = GetEruptionSection(go->GetPositionX(), go->GetPositionY());
- heiganEruptionGUID[section].insert(go->GetGUID());
+ switch (go->GetEntry())
+ {
+ case GO_BIRTH:
+ if (SapphironGUID)
+ {
+ if (Creature* sapphiron = instance->GetCreature(SapphironGUID))
+ sapphiron->AI()->DoAction(DATA_SAPPHIRON_BIRTH);
+ return;
+ }
+ break;
+ default:
+ break;
+ }
- return;
+ AddDoor(go, false);
}
- switch (go->GetEntry())
+ void OnUnitDeath(Unit* unit)
{
- case GO_GOTHIK_GATE:
- gothikGateGUID = go->GetGUID();
- go->SetGoState(gothikDoorState);
- break;
- case GO_HORSEMEN_CHEST:
- horsemenChestGUID = go->GetGUID();
- break;
- case GO_HORSEMEN_CHEST_HERO:
- horsemenChestGUID = go->GetGUID();
- break;
- case GO_KELTHUZAD_PORTAL01:
- portalsGUID[0] = go->GetGUID();
- break;
- case GO_KELTHUZAD_PORTAL02:
- portalsGUID[1] = go->GetGUID();
- break;
- case GO_KELTHUZAD_PORTAL03:
- portalsGUID[2] = go->GetGUID();
- break;
- case GO_KELTHUZAD_PORTAL04:
- portalsGUID[3] = go->GetGUID();
- break;
- case GO_KELTHUZAD_TRIGGER:
- kelthuzadTriggerGUID = go->GetGUID();
- break;
- default:
- break;
+ if (unit->GetTypeId() == TYPEID_PLAYER && IsEncounterInProgress())
+ {
+ playerDied = 1;
+ SaveToDB();
+ }
}
- AddDoor(go, true);
- }
-
- void OnGameObjectRemove(GameObject* go)
- {
- if (go->GetGOInfo()->displayId == 6785 || go->GetGOInfo()->displayId == 1287)
+ void SetData(uint32 id, uint32 value) OVERRIDE
{
- uint32 section = GetEruptionSection(go->GetPositionX(), go->GetPositionY());
-
- heiganEruptionGUID[section].erase(go->GetGUID());
- return;
+ switch (id)
+ {
+ case DATA_HEIGAN_ERUPT:
+ HeiganErupt(value);
+ break;
+ case DATA_GOTHIK_GATE:
+ if (GameObject* gate = instance->GetGameObject(GothikGateGUID))
+ gate->SetGoState(GOState(value));
+ break;
+ case DATA_HORSEMEN0:
+ case DATA_HORSEMEN1:
+ case DATA_HORSEMEN2:
+ case DATA_HORSEMEN3:
+ if (value == NOT_STARTED)
+ {
+ minHorsemenDiedTime = 0;
+ maxHorsemenDiedTime = 0;
+ }
+ else if (value == DONE)
+ {
+ time_t now = time(NULL);
+
+ if (minHorsemenDiedTime == 0)
+ minHorsemenDiedTime = now;
+
+ maxHorsemenDiedTime = now;
+ }
+ break;
+ case DATA_ABOMINATION_KILLED:
+ AbominationCount = value;
+ break;
+ }
}
- switch (go->GetEntry())
+ uint32 GetData(uint32 id) const OVERRIDE
{
- case GO_BIRTH:
- if (sapphironGUID)
- {
- if (Creature* pSapphiron = instance->GetCreature(sapphironGUID))
- pSapphiron->AI()->DoAction(DATA_SAPPHIRON_BIRTH);
- return;
- }
- break;
- default:
- break;
- }
+ switch (id)
+ {
+ case DATA_ABOMINATION_KILLED:
+ return AbominationCount;
+ default:
+ break;
+ }
- AddDoor(go, false);
- }
+ return 0;
+ }
- void OnUnitDeath(Unit* unit)
- {
- if (unit->GetTypeId() == TYPEID_PLAYER && IsEncounterInProgress())
+ uint64 GetData64(uint32 id) const OVERRIDE
{
- playerDied = 1;
- SaveToDB();
+ switch (id)
+ {
+ case DATA_FAERLINA:
+ return FaerlinaGUID;
+ case DATA_THANE:
+ return ThaneGUID;
+ case DATA_LADY:
+ return LadyGUID;
+ case DATA_BARON:
+ return BaronGUID;
+ case DATA_SIR:
+ return SirGUID;
+ case DATA_THADDIUS:
+ return ThaddiusGUID;
+ case DATA_HEIGAN:
+ return HeiganGUID;
+ case DATA_FEUGEN:
+ return FeugenGUID;
+ case DATA_STALAGG:
+ return StalaggGUID;
+ case DATA_KELTHUZAD:
+ return KelthuzadGUID;
+ case DATA_KELTHUZAD_PORTAL01:
+ return PortalsGUID[0];
+ case DATA_KELTHUZAD_PORTAL02:
+ return PortalsGUID[1];
+ case DATA_KELTHUZAD_PORTAL03:
+ return PortalsGUID[2];
+ case DATA_KELTHUZAD_PORTAL04:
+ return PortalsGUID[3];
+ case DATA_KELTHUZAD_TRIGGER:
+ return KelthuzadTriggerGUID;
+ }
+
+ return 0;
}
- }
- void SetData(uint32 id, uint32 value)
- {
- switch (id)
+ bool SetBossState(uint32 id, EncounterState state)
{
- case DATA_HEIGAN_ERUPT:
- HeiganErupt(value);
- break;
- case DATA_GOTHIK_GATE:
- if (GameObject* gothikGate = instance->GetGameObject(gothikGateGUID))
- gothikGate->SetGoState(GOState(value));
- gothikDoorState = GOState(value);
- break;
- case DATA_HORSEMEN0:
- case DATA_HORSEMEN1:
- case DATA_HORSEMEN2:
- case DATA_HORSEMEN3:
- if (value == NOT_STARTED)
+ if (!InstanceScript::SetBossState(id, state))
+ return false;
+
+ if (id == BOSS_HORSEMEN && state == DONE)
+ {
+ if (GameObject* horsemenChest = instance->GetGameObject(HorsemenChestGUID))
{
- minHorsemenDiedTime = 0;
- maxHorsemenDiedTime = 0;
+ horsemenChest->SetRespawnTime(horsemenChest->GetRespawnDelay());
+ horsemenChest->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
}
- else if (value == DONE)
- {
- time_t now = time(NULL);
+ }
+
+ return true;
+ }
- if (minHorsemenDiedTime == 0)
- minHorsemenDiedTime = now;
+ void HeiganErupt(uint32 section)
+ {
+ for (uint32 i = 0; i < 4; ++i)
+ {
+ if (i == section)
+ continue;
- maxHorsemenDiedTime = now;
+ for (std::set<uint64>::const_iterator itr = HeiganEruptionGUID[i].begin(); itr != HeiganEruptionGUID[i].end(); ++itr)
+ {
+ if (GameObject* heiganEruption = instance->GetGameObject(*itr))
+ {
+ heiganEruption->SendCustomAnim(heiganEruption->GetGoAnimProgress());
+ heiganEruption->CastSpell(NULL, SPELL_ERUPTION);
+ }
}
- break;
- case DATA_ABOMINATION_KILLED:
- AbominationCount = value;
- break;
+ }
}
- }
- uint32 GetData(uint32 id) const
- {
- switch (id)
+ // This Function is called in CheckAchievementCriteriaMeet and CheckAchievementCriteriaMeet is called before SetBossState(bossId, DONE),
+ // so to check if all bosses are done the checker must exclude 1 boss, the last done, if there is at most 1 encouter in progress when is
+ // called this function then all bosses are done. The one boss that check is the boss that calls this function, so it is dead.
+ bool AreAllEncoutersDone()
{
- case DATA_ABOMINATION_KILLED:
- return AbominationCount;
- default:
- break;
- }
+ uint32 numBossAlive = 0;
+ for (uint32 i = 0; i < EncounterCount; ++i)
+ if (GetBossState(i) != DONE)
+ numBossAlive++;
- return 0;
- }
+ if (numBossAlive > 1)
+ return false;
+ return true;
+ }
- uint64 GetData64(uint32 id) const
- {
- switch (id)
+ bool CheckAchievementCriteriaMeet(uint32 criteria_id, Player const* /*source*/, Unit const* /*target = NULL*/, uint32 /*miscvalue1 = 0*/)
{
- case DATA_FAERLINA:
- return faerlinaGUID;
- case DATA_THANE:
- return thaneGUID;
- case DATA_LADY:
- return ladyGUID;
- case DATA_BARON:
- return baronGUID;
- case DATA_SIR:
- return sirGUID;
- case DATA_THADDIUS:
- return thaddiusGUID;
- case DATA_HEIGAN:
- return heiganGUID;
- case DATA_FEUGEN:
- return feugenGUID;
- case DATA_STALAGG:
- return stalaggGUID;
- case DATA_KELTHUZAD:
- return kelthuzadGUID;
- case DATA_KELTHUZAD_PORTAL01:
- return portalsGUID[0];
- case DATA_KELTHUZAD_PORTAL02:
- return portalsGUID[1];
- case DATA_KELTHUZAD_PORTAL03:
- return portalsGUID[2];
- case DATA_KELTHUZAD_PORTAL04:
- return portalsGUID[3];
- case DATA_KELTHUZAD_TRIGGER:
- return kelthuzadTriggerGUID;
- }
- return 0;
- }
+ switch (criteria_id)
+ {
+ case 7600: // Criteria for achievement 2176: And They Would All Go Down Together 15sec of each other 10-man
+ if (Difficulty(instance->GetSpawnMode()) == RAID_DIFFICULTY_10MAN_NORMAL && (maxHorsemenDiedTime - minHorsemenDiedTime) < 15)
+ return true;
+ return false;
+ case 7601: // Criteria for achievement 2177: And They Would All Go Down Together 15sec of each other 25-man
+ if (Difficulty(instance->GetSpawnMode()) == RAID_DIFFICULTY_25MAN_NORMAL && (maxHorsemenDiedTime - minHorsemenDiedTime) < 15)
+ return true;
+ return false;
+ // Difficulty checks are done on DB.
+ // Criteria for achievement 2186: The Immortal (25-man)
+ case 13233: // The Four Horsemen
+ case 13234: // Maexxna
+ case 13235: // Thaddius
+ case 13236: // Loatheb
+ case 7616: // Kel'Thuzad
+ // Criteria for achievement 2187: The Undying (10-man)
+ case 13237: // The Four Horsemen
+ case 13238: // Maexxna
+ case 13239: // Loatheb
+ case 13240: // Thaddius
+ case 7617: // Kel'Thuzad
+ if (AreAllEncoutersDone() && !playerDied)
+ return true;
+ return false;
+ }
- bool SetBossState(uint32 id, EncounterState state)
- {
- if (!InstanceScript::SetBossState(id, state))
return false;
+ }
- if (id == BOSS_HORSEMEN && state == DONE)
+ std::string GetSaveData()
{
- if (GameObject* pHorsemenChest = instance->GetGameObject(horsemenChestGUID))
- pHorsemenChest->SetRespawnTime(pHorsemenChest->GetRespawnDelay());
- }
+ OUT_SAVE_INST_DATA;
- return true;
- }
+ std::ostringstream saveStream;
+ saveStream << "N X " << GetBossSaveData() << playerDied;
- void HeiganErupt(uint32 section)
- {
- for (uint32 i = 0; i < 4; ++i)
- {
- if (i == section)
- continue;
+ OUT_SAVE_INST_DATA_COMPLETE;
+ return saveStream.str();
+ }
- for (std::set<uint64>::const_iterator itr = heiganEruptionGUID[i].begin(); itr != heiganEruptionGUID[i].end(); ++itr)
+ void Load(const char* strIn)
+ {
+ if (!strIn)
{
- if (GameObject* pHeiganEruption = instance->GetGameObject(*itr))
- {
- pHeiganEruption->SendCustomAnim(pHeiganEruption->GetGoAnimProgress());
- pHeiganEruption->CastSpell(NULL, SPELL_ERUPTION);
- }
+ OUT_LOAD_INST_DATA_FAIL;
+ return;
}
- }
- }
- // This Function is called in CheckAchievementCriteriaMeet and CheckAchievementCriteriaMeet is called before SetBossState(bossId, DONE),
- // so to check if all bosses are done the checker must exclude 1 boss, the last done, if there is at most 1 encouter in progress when is
- // called this function then all bosses are done. The one boss that check is the boss that calls this function, so it is dead.
- bool AreAllEncoutersDone()
- {
- uint32 numBossAlive = 0;
- for (uint32 i = 0; i < MAX_BOSS_NUMBER; ++i)
- if (GetBossState(i) != DONE)
- numBossAlive++;
+ OUT_LOAD_INST_DATA(strIn);
- if (numBossAlive > 1)
- return false;
- return true;
- }
+ char dataHead1, dataHead2;
- bool CheckAchievementCriteriaMeet(uint32 criteria_id, Player const* /*source*/, Unit const* /*target = NULL*/, uint32 /*miscvalue1 = 0*/)
- {
- switch (criteria_id)
- {
- case 7600: // Criteria for achievement 2176: And They Would All Go Down Together 15sec of each other 10-man
- if (Difficulty(instance->GetSpawnMode()) == RAID_DIFFICULTY_10MAN_NORMAL && (maxHorsemenDiedTime - minHorsemenDiedTime) < 15)
- return true;
- return false;
- case 7601: // Criteria for achievement 2177: And They Would All Go Down Together 15sec of each other 25-man
- if (Difficulty(instance->GetSpawnMode()) == RAID_DIFFICULTY_25MAN_NORMAL && (maxHorsemenDiedTime - minHorsemenDiedTime) < 15)
- return true;
- return false;
- // Difficulty checks are done on DB.
- // Criteria for achievement 2186: The Immortal (25-man)
- case 13233: // The Four Horsemen
- case 13234: // Maexxna
- case 13235: // Thaddius
- case 13236: // Loatheb
- case 7616: // Kel'Thuzad
- // Criteria for achievement 2187: The Undying (10-man)
- case 13237: // The Four Horsemen
- case 13238: // Maexxna
- case 13239: // Loatheb
- case 13240: // Thaddius
- case 7617: // Kel'Thuzad
- if (AreAllEncoutersDone() && !playerDied)
- return true;
- return false;
- }
- return false;
- }
+ std::istringstream loadStream(strIn);
+ loadStream >> dataHead1 >> dataHead2;
- std::string GetSaveData()
- {
- std::ostringstream saveStream;
- saveStream << GetBossSaveData() << gothikDoorState << ' ' << playerDied;
- return saveStream.str();
- }
+ if (dataHead1 == 'N' && dataHead2 == 'X')
+ {
+ for (uint8 i = 0; i < EncounterCount; ++i)
+ {
+ uint32 tmpState;
+ loadStream >> tmpState;
+ if (tmpState == IN_PROGRESS || tmpState > SPECIAL)
+ tmpState = NOT_STARTED;
- void Load(const char * data)
- {
- std::istringstream loadStream(LoadBossState(data));
- uint32 temp, buff, buff2;
+ SetBossState(i, EncounterState(tmpState));
+ }
+
+ loadStream >> playerDied;
+ }
- for (uint32 i = 0; i < MAX_BOSS_NUMBER; ++i)
- loadStream >> temp;
+ OUT_LOAD_INST_DATA_COMPLETE;
+ }
- loadStream >> buff;
- gothikDoorState = GOState(buff);
- loadStream >> buff2;
- playerDied = buff2;
+ protected:
+ /* The Arachnid Quarter */
+ // Grand Widow Faerlina
+ uint64 FaerlinaGUID;
+
+ /* The Plague Quarter */
+ // Heigan the Unclean
+ std::set<uint64> HeiganEruptionGUID[4];
+ uint64 HeiganGUID;
+
+ /* The Military Quarter */
+ // Gothik the Harvester
+ uint64 GothikGateGUID;
+ // The Four Horsemen
+ uint64 ThaneGUID;
+ uint64 LadyGUID;
+ uint64 BaronGUID;
+ uint64 SirGUID;
+ uint64 HorsemenChestGUID;
+ uint64 HorsemenTeleporterGUID;
+ time_t minHorsemenDiedTime;
+ time_t maxHorsemenDiedTime;
+
+ /* The Construct Quarter */
+ // Thaddius
+ uint64 ThaddiusGUID;
+ uint64 FeugenGUID;
+ uint64 StalaggGUID;
+
+ /* Frostwyrm Lair */
+ // Sapphiron
+ uint64 SapphironGUID;
+ // Kel'Thuzad
+ uint64 KelthuzadGUID;
+ uint64 KelthuzadTriggerGUID;
+ uint64 PortalsGUID[4];
+ uint8 AbominationCount;
+
+ /* The Immortal / The Undying */
+ uint32 playerDied;
+ };
+
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
+ {
+ return new instance_naxxramas_InstanceMapScript(map);
}
- };
};
void AddSC_instance_naxxramas()
diff --git a/src/server/scripts/Northrend/Naxxramas/naxxramas.h b/src/server/scripts/Northrend/Naxxramas/naxxramas.h
index 1f4955f4ddb..a71d573bf20 100644
--- a/src/server/scripts/Northrend/Naxxramas/naxxramas.h
+++ b/src/server/scripts/Northrend/Naxxramas/naxxramas.h
@@ -18,6 +18,8 @@
#ifndef DEF_NAXXRAMAS_H
#define DEF_NAXXRAMAS_H
+uint32 const EncounterCount = 15;
+
enum Encounter
{
BOSS_ANUBREKHAN,
@@ -34,8 +36,7 @@ enum Encounter
BOSS_GOTHIK,
BOSS_HORSEMEN,
BOSS_SAPPHIRON,
- BOSS_KELTHUZAD,
- MAX_BOSS_NUMBER
+ BOSS_KELTHUZAD
};
enum Data
@@ -70,7 +71,86 @@ enum Data64
DATA_KELTHUZAD_TRIGGER,
};
-#define GO_BIRTH 181356
+enum CreaturesIds
+{
+ NPC_FAERLINA = 15953,
+ NPC_THANE = 16064,
+ NPC_LADY = 16065,
+ NPC_BARON = 30549,
+ NPC_SIR = 16063,
+ NPC_THADDIUS = 15928,
+ NPC_HEIGAN = 15936,
+ NPC_FEUGEN = 15930,
+ NPC_STALAGG = 15929,
+ NPC_SAPPHIRON = 15989,
+ NPC_KEL_THUZAD = 15990,
+ NPC_CRYPT_GUARD = 16573,
+ NPC_NAXXRAMAS_FOLLOWER = 16505,
+ NPC_FOLLOWER_WORSHIPPER = 16506,
+ NPC_DK_UNDERSTUDY = 16803
+};
-#endif
+enum GameObjectsIds
+{
+ GO_HORSEMEN_CHEST_HERO = 193426,
+ GO_HORSEMEN_CHEST = 181366,
+ GO_GOTHIK_GATE = 181170,
+ GO_KELTHUZAD_PORTAL01 = 181402,
+ GO_KELTHUZAD_PORTAL02 = 181403,
+ GO_KELTHUZAD_PORTAL03 = 181404,
+ GO_KELTHUZAD_PORTAL04 = 181405,
+ GO_KELTHUZAD_TRIGGER = 181444,
+ GO_ROOM_ANUBREKHAN = 181126,
+ GO_PASSAGE_ANUBREKHAN = 181195,
+ GO_PASSAGE_FAERLINA = 194022,
+ GO_ROOM_MAEXXNA = 181209,
+ GO_ROOM_NOTH = 181200,
+ GO_PASSAGE_NOTH = 181201,
+ GO_ROOM_HEIGAN = 181202,
+ GO_PASSAGE_HEIGAN = 181203,
+ GO_ROOM_LOATHEB = 181241,
+ GO_ROOM_GROBBULUS = 181123,
+ GO_PASSAGE_GLUTH = 181120,
+ GO_ROOM_THADDIUS = 181121,
+ GO_ROOM_GOTHIK = 181124,
+ GO_PASSAGE_GOTHIK = 181125,
+ GO_ROOM_HORSEMEN = 181119,
+ GO_PASSAGE_SAPPHIRON = 181225,
+ GO_ROOM_KELTHUZAD = 181228,
+ GO_ARAC_PORTAL = 181575,
+ GO_PLAG_PORTAL = 181577,
+ GO_MILI_PORTAL = 181578,
+ GO_CONS_PORTAL = 181576,
+ GO_ARAC_EYE_RAMP = 181212,
+ GO_PLAG_EYE_RAMP = 181211,
+ GO_MILI_EYE_RAMP = 181210,
+ GO_CONS_EYE_RAMP = 181213,
+ GO_ARAC_EYE_RAMP_BOSS = 181233,
+ GO_PLAG_EYE_RAMP_BOSS = 181231,
+ GO_MILI_EYE_RAMP_BOSS = 181230,
+ GO_CONS_EYE_RAMP_BOSS = 181232,
+ GO_CONS_NOX_TESLA_FEUGEN = 181477,
+ GO_CONS_NOX_TESLA_STALAGG = 181478,
+ GO_BIRTH = 181356
+};
+
+enum SpellIds
+{
+ SPELL_ERUPTION = 29371,
+ SPELL_SLIME = 28801
+};
+/*
+template<class AI>
+CreatureAI* GetNaxxramasAI(Creature* creature)
+{
+ if (InstanceMap* instance = creature->GetMap()->ToInstanceMap())
+ if (instance->GetInstanceScript())
+ if (instance->GetScriptId() == sObjectMgr->GetScriptId(NaxxramasScriptName))
+ return new AI(creature);
+
+ return NULL;
+}
+*/
+
+#endif
diff --git a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
index d861343116f..ef3162d892e 100644
--- a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
+++ b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
@@ -346,7 +346,7 @@ public:
_flySpeed = me->GetSpeed(MOVE_FLIGHT); // Get initial fly speed, otherwise on each wipe fly speed would add up if we get it
}
- void Reset()
+ void Reset() OVERRIDE
{
// EnterEvadeMode and Reset() links are cut for the sake of properly functioning despawner.
if (!_despawned)
@@ -380,7 +380,7 @@ public:
instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT);
}
- uint32 GetData(uint32 data) const
+ uint32 GetData(uint32 data) const OVERRIDE
{
switch (data)
{
@@ -393,7 +393,7 @@ public:
return 0;
}
- void SetData(uint32 data, uint32 value)
+ void SetData(uint32 data, uint32 value) OVERRIDE
{
if (data == DATA_SUMMON_DEATHS && _phase == PHASE_TWO && !_despawned)
{
@@ -418,7 +418,7 @@ public:
}
}
- uint64 GetGUID(int32 type) const
+ uint64 GetGUID(int32 type) const OVERRIDE
{
if (type >= DATA_FIRST_SURGE_TARGET_GUID && type < DATA_FIRST_SURGE_TARGET_GUID + NUM_MAX_SURGE_TARGETS)
return _surgeTargetGUID[type - DATA_FIRST_SURGE_TARGET_GUID];
@@ -428,7 +428,7 @@ public:
return 0;
}
- void SetGUID(uint64 guid, int32 type)
+ void SetGUID(uint64 guid, int32 type) OVERRIDE
{
switch (type)
{
@@ -445,7 +445,7 @@ public:
}
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -557,13 +557,13 @@ public:
}
// There are moments where boss will do nothing while being attacked
- void AttackStart(Unit* target)
+ void AttackStart(Unit* target) OVERRIDE
{
if (_canAttack)
BossAI::AttackStart(target);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
// We can't call full function here since it includes DoZoneInCombat(),
// if someone does it will be returned with a warning.
@@ -585,7 +585,7 @@ public:
instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT);
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
if (instance)
instance->SetBossState(DATA_MALYGOS_EVENT, FAIL);
@@ -632,7 +632,7 @@ public:
instance->SetBossState(DATA_MALYGOS_EVENT, NOT_STARTED);
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
if (victim->GetTypeId() != TYPEID_PLAYER)
return;
@@ -660,7 +660,7 @@ public:
}
}
- void SpellHit(Unit* caster, SpellInfo const* spell)
+ void SpellHit(Unit* caster, SpellInfo const* spell) OVERRIDE
{
if (spell->Id == SPELL_POWER_SPARK_MALYGOS)
{
@@ -673,9 +673,10 @@ public:
sCreatureTextMgr->SendChat(me, EMOTE_HIT_BERSERKER_TIMER, 0, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_MAP);
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
- if (!me->isInCombat() || _phase != PHASE_ONE)
+ if (!me->IsInCombat() || _phase != PHASE_ONE)
return;
if (who->GetEntry() == NPC_POWER_SPARK)
@@ -683,7 +684,7 @@ public:
who->CastSpell(me, SPELL_POWER_SPARK_MALYGOS, true);
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type != POINT_MOTION_TYPE && type != EFFECT_MOTION_TYPE)
return;
@@ -752,9 +753,9 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
- if (!UpdateVictim() && _phase != PHASE_NOT_STARTED && _phase != PHASE_TWO)
+ if (!instance || (!UpdateVictim() && _phase != PHASE_NOT_STARTED && _phase != PHASE_TWO))
return;
events.Update(diff);
@@ -819,7 +820,7 @@ public:
break;
}
- me->CastSpell(me->getVictim(), SPELL_ARCANE_BREATH);
+ me->CastSpell(me->GetVictim(), SPELL_ARCANE_BREATH);
events.ScheduleEvent(EVENT_ARCANE_BREATH, 20*IN_MILLISECONDS, 0, PHASE_ONE);
break;
case EVENT_ARCANE_STORM:
@@ -854,7 +855,7 @@ public:
}
}
- if (_arcaneReinforcements && instance)
+ if (_arcaneReinforcements)
{
for (uint8 rangeDisks = 0; rangeDisks < (GetDifficulty() == RAID_DIFFICULTY_10MAN_NORMAL ? 4 : 5); rangeDisks++)
{
@@ -995,7 +996,7 @@ public:
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
Talk(SAY_DEATH);
@@ -1046,7 +1047,7 @@ public:
Map::PlayerList const& players = me->GetMap()->GetPlayers();
if (!players.isEmpty())
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
- if (Player* player = itr->getSource())
+ if (Player* player = itr->GetSource())
if (player->GetAreaId() == AREA_EYE_OF_ETERNITY)
player->GetSession()->SendPacket(data);
}
@@ -1071,7 +1072,7 @@ public:
float _flySpeed; // Used to store base fly speed to prevent stacking on each evade.
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_malygosAI(creature);
}
@@ -1089,7 +1090,7 @@ public:
_instance = creature->GetInstanceScript();
}
- void SpellHit(Unit* /*caster*/, SpellInfo const* spell)
+ void SpellHit(Unit* /*caster*/, SpellInfo const* spell) OVERRIDE
{
if (spell->Id == SPELL_PORTAL_OPENED)
{
@@ -1101,7 +1102,7 @@ public:
}
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
// When duration of opened riff visual ends, closed one should be cast
if (!me->HasAura(SPELL_PORTAL_VISUAL_CLOSED) && !me->HasAura(SPELL_PORTAL_OPENED))
@@ -1124,7 +1125,7 @@ public:
InstanceScript* _instance;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_portal_eoeAI(creature);
}
@@ -1154,7 +1155,7 @@ public:
me->GetMotionMaster()->MoveFollow(malygos, 0.0f, 0.0f);
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
if (!_instance)
return;
@@ -1178,7 +1179,7 @@ public:
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
me->CastSpell(me, SPELL_POWER_SPARK_DEATH, true); // not supposed to hide the fact it's there by not selectable
}
@@ -1187,7 +1188,7 @@ public:
InstanceScript* _instance;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_power_sparkAI(creature);
}
@@ -1208,14 +1209,14 @@ public:
me->SetSpeed(MOVE_FLIGHT, 1.25f);
}
- void Reset()
+ void Reset() OVERRIDE
{
VehicleAI::Reset();
_wpCount = 0;
}
- void PassengerBoarded(Unit* unit, int8 /*seat*/, bool apply)
+ void PassengerBoarded(Unit* unit, int8 /*seat*/, bool apply) OVERRIDE
{
if (apply)
{
@@ -1248,7 +1249,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
_events.Update(diff);
@@ -1256,7 +1257,7 @@ public:
me->GetMotionMaster()->MovePoint(eventId, MeleeHoverDisksWaypoints[eventId]);
}
- void DoAction(int32 /*action*/)
+ void DoAction(int32 /*action*/) OVERRIDE
{
if (Vehicle* vehicleTemp = me->GetVehicleKit())
if (vehicleTemp->GetPassenger(0) && vehicleTemp->GetPassenger(0)->GetTypeId() == TYPEID_PLAYER)
@@ -1268,7 +1269,7 @@ public:
me->DespawnOrUnsummon(3*IN_MILLISECONDS);
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type != POINT_MOTION_TYPE)
return;
@@ -1289,7 +1290,7 @@ public:
EventMap _events;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_melee_hover_diskAI(creature);
}
@@ -1311,16 +1312,16 @@ public:
me->SetSpeed(MOVE_FLIGHT, 0.45f);
}
- void Reset()
+ void Reset() OVERRIDE
{
VehicleAI::Reset();
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
}
- void PassengerBoarded(Unit* unit, int8 /*seat*/, bool apply)
+ void PassengerBoarded(Unit* unit, int8 /*seat*/, bool apply) OVERRIDE
{
if (apply)
{
@@ -1336,7 +1337,7 @@ public:
}
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
if (action < ACTION_DELAYED_DESPAWN)
{
@@ -1371,7 +1372,7 @@ public:
InstanceScript* _instance;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_caster_hover_diskAI(creature);
}
@@ -1389,23 +1390,23 @@ class npc_nexus_lord : public CreatureScript
_instance = creature->GetInstanceScript();
}
- void Reset()
+ void Reset() OVERRIDE
{
_events.Reset();
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
}
- void DoAction(int32 /*action*/)
+ void DoAction(int32 /*action*/) OVERRIDE
{
_events.ScheduleEvent(EVENT_NUKE_DUMMY, 1);
_events.ScheduleEvent(EVENT_ARCANE_SHOCK, 2*IN_MILLISECONDS);
_events.ScheduleEvent(EVENT_HASTE_BUFF, 12*IN_MILLISECONDS);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -1426,7 +1427,7 @@ class npc_nexus_lord : public CreatureScript
_events.ScheduleEvent(EVENT_HASTE_BUFF, 15*IN_MILLISECONDS);
break;
case EVENT_NUKE_DUMMY:
- DoCast(me->getVictim(), SPELL_DUMMY_NUKE, true);
+ DoCastVictim(SPELL_DUMMY_NUKE, true);
DoCast(me, SPELL_ALIGN_DISK_AGGRO, true);
_events.ScheduleEvent(EVENT_NUKE_DUMMY, 1*IN_MILLISECONDS);
break;
@@ -1436,7 +1437,7 @@ class npc_nexus_lord : public CreatureScript
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (Creature* malygos = me->GetMap()->GetCreature(_instance->GetData64(DATA_MALYGOS)))
malygos->AI()->SetData(DATA_SUMMON_DEATHS, malygos->AI()->GetData(DATA_SUMMON_DEATHS) + 1);
@@ -1447,7 +1448,7 @@ class npc_nexus_lord : public CreatureScript
EventMap _events;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_nexus_lordAI(creature);
}
@@ -1465,29 +1466,29 @@ class npc_scion_of_eternity : public CreatureScript
_instance = creature->GetInstanceScript();
}
- void Reset()
+ void Reset() OVERRIDE
{
_events.Reset();
}
- void IsSummonedBy(Unit* /*summoner*/)
+ void IsSummonedBy(Unit* /*summoner*/) OVERRIDE
{
_events.ScheduleEvent(EVENT_ARCANE_BARRAGE, urand(14, 29)*IN_MILLISECONDS);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
- void AttackStart(Unit* /*target*/)
+ void AttackStart(Unit* /*target*/) OVERRIDE
{
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
_events.Update(diff);
@@ -1503,7 +1504,7 @@ class npc_scion_of_eternity : public CreatureScript
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (Creature* malygos = me->GetMap()->GetCreature(_instance->GetData64(DATA_MALYGOS)))
malygos->AI()->SetData(DATA_SUMMON_DEATHS, malygos->AI()->GetData(DATA_SUMMON_DEATHS) + 1);
@@ -1514,7 +1515,7 @@ class npc_scion_of_eternity : public CreatureScript
EventMap _events;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_scion_of_eternityAI(creature);
}
@@ -1533,7 +1534,7 @@ public:
me->SetReactState(REACT_PASSIVE);
}
- void IsSummonedBy(Unit* summoner)
+ void IsSummonedBy(Unit* summoner) OVERRIDE
{
if (Creature* creature = summoner->ToCreature())
{
@@ -1542,11 +1543,11 @@ public:
}
}
- void UpdateAI (uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/)
{
}
- void DoAction(int32 /*action*/)
+ void DoAction(int32 /*action*/) OVERRIDE
{
if (Creature* malygos = me->GetMap()->GetCreature(_instance->GetData64(DATA_MALYGOS)))
{
@@ -1558,7 +1559,7 @@ public:
}
}
- void SpellHit(Unit* /*caster*/, SpellInfo const* spell)
+ void SpellHit(Unit* /*caster*/, SpellInfo const* spell) OVERRIDE
{
if (spell->Id == SPELL_ARCANE_BOMB_TRIGGER)
{
@@ -1572,9 +1573,9 @@ public:
InstanceScript* _instance;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_arcane_overloadAI (creature);
+ return new npc_arcane_overloadAI(creature);
}
};
@@ -1590,7 +1591,7 @@ public:
{
}
- void IsSummonedBy(Unit* summoner)
+ void IsSummonedBy(Unit* summoner) OVERRIDE
{
_summoner = NULL;
if (Player* player = summoner->ToPlayer())
@@ -1600,7 +1601,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
VehicleAI::UpdateAI(diff);
_events.Update(diff);
@@ -1616,7 +1617,7 @@ public:
}
}
- void PassengerBoarded(Unit* /*unit*/, int8 /*seat*/, bool apply)
+ void PassengerBoarded(Unit* /*unit*/, int8 /*seat*/, bool apply) OVERRIDE
{
if (!apply)
{
@@ -1637,9 +1638,9 @@ public:
EventMap _events;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_wyrmrest_skytalonAI (creature);
+ return new npc_wyrmrest_skytalonAI(creature);
}
};
@@ -1656,16 +1657,16 @@ class npc_static_field : public CreatureScript
{
}
- void IsSummonedBy(Unit* /*summoner*/)
+ void IsSummonedBy(Unit* /*summoner*/) OVERRIDE
{
// For some great reason the spell doesn't time it...
me->DespawnOrUnsummon(30*IN_MILLISECONDS);
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_static_fieldAI (creature);
+ return new npc_static_fieldAI(creature);
}
};
@@ -1678,12 +1679,12 @@ class spell_malygos_portal_beam : public SpellScriptLoader
{
PrepareAuraScript(spell_malygos_portal_beam_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_UNIT;
}
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_PORTAL_OPENED))
return false;
@@ -1703,14 +1704,14 @@ class spell_malygos_portal_beam : public SpellScriptLoader
target->RemoveAura(SPELL_PORTAL_OPENED);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectApply += AuraEffectApplyFn(spell_malygos_portal_beam_AuraScript::OnApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_malygos_portal_beam_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_malygos_portal_beam_AuraScript();
}
@@ -1725,7 +1726,7 @@ class spell_malygos_random_portal : public SpellScriptLoader
{
PrepareSpellScript(spell_malygos_random_portal_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_UNIT;
}
@@ -1742,13 +1743,13 @@ class spell_malygos_random_portal : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_malygos_random_portal_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_malygos_random_portal_SpellScript();
}
@@ -1781,12 +1782,12 @@ class spell_malygos_arcane_storm : public SpellScriptLoader
{
PrepareSpellScript(spell_malygos_arcane_storm_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_UNIT;
}
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_ARCANE_STORM_EXTRA_VISUAL))
return false;
@@ -1819,14 +1820,14 @@ class spell_malygos_arcane_storm : public SpellScriptLoader
GetCaster()->CastSpell(GetHitUnit(), SPELL_ARCANE_STORM_EXTRA_VISUAL, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_malygos_arcane_storm_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnEffectLaunchTarget += SpellEffectFn(spell_malygos_arcane_storm_SpellScript::HandleVisual, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_malygos_arcane_storm_SpellScript();
}
@@ -1841,7 +1842,7 @@ public:
{
PrepareSpellScript(spell_malygos_vortex_dummy_SpellScript)
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_UNIT;
}
@@ -1857,13 +1858,13 @@ public:
// the rest of the vortex execution continues when SPELL_VORTEX_2 is removed.
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_malygos_vortex_dummy_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_malygos_vortex_dummy_SpellScript();
}
@@ -1878,12 +1879,12 @@ class spell_malygos_vortex_visual : public SpellScriptLoader
{
PrepareAuraScript(spell_malygos_vortex_visual_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_UNIT;
}
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_VORTEX_1) || !sSpellMgr->GetSpellInfo(SPELL_VORTEX_6))
return false;
@@ -1901,7 +1902,7 @@ class spell_malygos_vortex_visual : public SpellScriptLoader
if (Unit* target = (*itr)->getTarget())
{
Player* targetPlayer = target->ToPlayer();
- if (!targetPlayer || targetPlayer->isGameMaster())
+ if (!targetPlayer || targetPlayer->IsGameMaster())
continue;
if (InstanceScript* instance = caster->GetInstanceScript())
@@ -1921,13 +1922,13 @@ class spell_malygos_vortex_visual : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectRemove += AuraEffectRemoveFn(spell_malygos_vortex_visual_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_malygos_vortex_visual_AuraScript();
}
@@ -1957,7 +1958,7 @@ class spell_arcane_overload : public SpellScriptLoader
{
PrepareSpellScript(spell_arcane_overload_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_UNIT;
}
@@ -1969,13 +1970,13 @@ class spell_arcane_overload : public SpellScriptLoader
GetSpellInfo()->Effects[EFFECT_0].CalcRadius(arcaneOverload) * arcaneOverload->GetFloatValue(OBJECT_FIELD_SCALE_X)));
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_arcane_overload_SpellScript::ResizeEffectRadiusTargetChecker, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_arcane_overload_SpellScript();
}
@@ -1990,7 +1991,7 @@ class spell_nexus_lord_align_disk_aggro : public SpellScriptLoader
{
PrepareSpellScript(spell_nexus_lord_align_disk_aggro_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_UNIT;
}
@@ -1999,16 +2000,16 @@ class spell_nexus_lord_align_disk_aggro : public SpellScriptLoader
{
Creature* caster = GetCaster()->ToCreature();
if (Creature* target = GetHitCreature())
- target->GetMotionMaster()->MoveChase(caster->getVictim());
+ target->GetMotionMaster()->MoveChase(caster->GetVictim());
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_nexus_lord_align_disk_aggro_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_nexus_lord_align_disk_aggro_SpellScript();
}
@@ -2041,7 +2042,7 @@ class spell_scion_of_eternity_arcane_barrage : public SpellScriptLoader
{
PrepareSpellScript(spell_scion_of_eternity_arcane_barrage_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_UNIT && GetCaster()->GetInstanceScript() != NULL;
}
@@ -2103,14 +2104,14 @@ class spell_scion_of_eternity_arcane_barrage : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_scion_of_eternity_arcane_barrage_SpellScript::FilterMeleeHoverDiskPassangers, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnHit += SpellHitFn(spell_scion_of_eternity_arcane_barrage_SpellScript::TriggerDamageSpellFromPlayer);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_scion_of_eternity_arcane_barrage_SpellScript();
}
@@ -2125,12 +2126,12 @@ class spell_malygos_destroy_platform_channel : public SpellScriptLoader
{
PrepareAuraScript(spell_malygos_destroy_platform_channel_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_UNIT;
}
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_DESTROY_PLATFORM_BOOM_VISUAL))
return false;
@@ -2146,13 +2147,13 @@ class spell_malygos_destroy_platform_channel : public SpellScriptLoader
platformTrigger->CastSpell(platformTrigger, SPELL_DESTROY_PLATFORM_BOOM_VISUAL);
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectRemove += AuraEffectRemoveFn(spell_malygos_destroy_platform_channel_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_malygos_destroy_platform_channel_AuraScript();
}
@@ -2167,12 +2168,12 @@ class spell_alexstrasza_bunny_destroy_platform_boom_visual : public SpellScriptL
{
PrepareSpellScript(spell_alexstrasza_bunny_destroy_platform_boom_visual_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_UNIT;
}
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_DESTROY_PLATFORM_EVENT))
return false;
@@ -2186,13 +2187,13 @@ class spell_alexstrasza_bunny_destroy_platform_boom_visual : public SpellScriptL
target->CastSpell(target, SPELL_DESTROY_PLATFORM_EVENT);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_alexstrasza_bunny_destroy_platform_boom_visual_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_alexstrasza_bunny_destroy_platform_boom_visual_SpellScript();
}
@@ -2207,7 +2208,7 @@ class spell_alexstrasza_bunny_destroy_platform_event : public SpellScriptLoader
{
PrepareSpellScript(spell_alexstrasza_bunny_destroy_platform_event_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_UNIT;
}
@@ -2225,14 +2226,14 @@ class spell_alexstrasza_bunny_destroy_platform_event : public SpellScriptLoader
GetCaster()->CastSpell((Unit*)NULL, SPELL_SUMMON_RED_DRAGON_BUDDY_F_CAST);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHit += SpellEffectFn(spell_alexstrasza_bunny_destroy_platform_event_SpellScript::HandleSendEvent, EFFECT_0, SPELL_EFFECT_SEND_EVENT);
OnEffectHit += SpellEffectFn(spell_alexstrasza_bunny_destroy_platform_event_SpellScript::HandleScript, EFFECT_2, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_alexstrasza_bunny_destroy_platform_event_SpellScript();
}
@@ -2247,7 +2248,7 @@ class spell_wyrmrest_skytalon_summon_red_dragon_buddy : public SpellScriptLoader
{
PrepareSpellScript(spell_wyrmrest_skytalon_summon_red_dragon_buddy_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
}
@@ -2262,13 +2263,13 @@ class spell_wyrmrest_skytalon_summon_red_dragon_buddy : public SpellScriptLoader
GetHitDest()->RelocateOffset(offset);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHit += SpellEffectFn(spell_wyrmrest_skytalon_summon_red_dragon_buddy_SpellScript::ChangeSummonPos, EFFECT_0, SPELL_EFFECT_SUMMON);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_wyrmrest_skytalon_summon_red_dragon_buddy_SpellScript();
}
@@ -2283,7 +2284,7 @@ class spell_wyrmrest_skytalon_ride_red_dragon_buddy_trigger : public SpellScript
{
PrepareSpellScript(spell_wyrmrest_skytalon_ride_red_dragon_buddy_trigger_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_UNIT;
}
@@ -2294,13 +2295,13 @@ class spell_wyrmrest_skytalon_ride_red_dragon_buddy_trigger : public SpellScript
target->CastSpell(GetCaster(), GetEffectValue(), true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_wyrmrest_skytalon_ride_red_dragon_buddy_trigger_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_wyrmrest_skytalon_ride_red_dragon_buddy_trigger_SpellScript();
}
@@ -2315,12 +2316,12 @@ class spell_malygos_surge_of_power_warning_selector_25 : public SpellScriptLoade
{
PrepareSpellScript(spell_malygos_surge_of_power_warning_selector_25_SpellScript)
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_UNIT;
}
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_SURGE_OF_POWER_PHASE_3_25))
return false;
@@ -2359,14 +2360,14 @@ class spell_malygos_surge_of_power_warning_selector_25 : public SpellScriptLoade
GetCaster()->ToCreature()->AI()->DoCastAOE(SPELL_SURGE_OF_POWER_PHASE_3_25);
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_malygos_surge_of_power_warning_selector_25_SpellScript::SendThreeTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
AfterHit += SpellHitFn(spell_malygos_surge_of_power_warning_selector_25_SpellScript::ExecuteMainSpell);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_malygos_surge_of_power_warning_selector_25_SpellScript();
}
@@ -2381,7 +2382,7 @@ class spell_malygos_surge_of_power_25 : public SpellScriptLoader
{
PrepareSpellScript(spell_malygos_surge_of_power_25_SpellScript)
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_UNIT;
}
@@ -2411,13 +2412,13 @@ class spell_malygos_surge_of_power_25 : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_malygos_surge_of_power_25_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_malygos_surge_of_power_25_SpellScript();
}
@@ -2432,12 +2433,12 @@ class spell_alexstrasza_gift_beam : public SpellScriptLoader
{
PrepareAuraScript(spell_alexstrasza_gift_beam_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_UNIT;
}
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_ALEXSTRASZAS_GIFT_BEAM_VISUAL))
return false;
@@ -2457,14 +2458,14 @@ class spell_alexstrasza_gift_beam : public SpellScriptLoader
target->RemoveAura(SPELL_ALEXSTRASZAS_GIFT_BEAM_VISUAL);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectApply += AuraEffectApplyFn(spell_alexstrasza_gift_beam_AuraScript::OnApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_alexstrasza_gift_beam_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_alexstrasza_gift_beam_AuraScript();
}
@@ -2479,7 +2480,7 @@ class spell_alexstrasza_gift_beam_visual : public SpellScriptLoader
{
PrepareAuraScript(spell_alexstrasza_gift_beam_visual_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_UNIT;
}
@@ -2511,7 +2512,7 @@ class spell_alexstrasza_gift_beam_visual : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectApply += AuraEffectApplyFn(spell_alexstrasza_gift_beam_visual_AuraScript::OnApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_alexstrasza_gift_beam_visual_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
@@ -2520,7 +2521,7 @@ class spell_alexstrasza_gift_beam_visual : public SpellScriptLoader
GameObject* _alexstraszaGift;
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_alexstrasza_gift_beam_visual_AuraScript();
}
@@ -2531,7 +2532,7 @@ class achievement_denyin_the_scion : public AchievementCriteriaScript
public:
achievement_denyin_the_scion() : AchievementCriteriaScript("achievement_denyin_the_scion") { }
- bool OnCheck(Player* source, Unit* /*target*/)
+ bool OnCheck(Player* source, Unit* /*target*/) OVERRIDE
{
// Only melee disks can be used
if (Unit* disk = source->GetVehicleBase())
diff --git a/src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp b/src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp
index 079732b0f14..15d86cc9f25 100644
--- a/src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp
+++ b/src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp
@@ -26,7 +26,7 @@ class instance_eye_of_eternity : public InstanceMapScript
public:
instance_eye_of_eternity() : InstanceMapScript("instance_eye_of_eternity", 616) { }
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_eye_of_eternity_InstanceMapScript(map);
}
@@ -206,7 +206,7 @@ public:
{
Player* player = target->ToPlayer();
- if (!player || player->isGameMaster() || player->HasAura(SPELL_VORTEX_4))
+ if (!player || player->IsGameMaster() || player->HasAura(SPELL_VORTEX_4))
continue;
player->CastSpell(trigger, SPELL_VORTEX_4, true);
@@ -239,7 +239,7 @@ public:
}
}
- void SetData(uint32 data, uint32 /*value*/)
+ void SetData(uint32 data, uint32 /*value*/) OVERRIDE
{
switch (data)
{
@@ -255,7 +255,7 @@ public:
}
}
- uint64 GetData64(uint32 data) const
+ uint64 GetData64(uint32 data) const OVERRIDE
{
switch (data)
{
diff --git a/src/server/scripts/Northrend/Nexus/Nexus/boss_anomalus.cpp b/src/server/scripts/Northrend/Nexus/Nexus/boss_anomalus.cpp
index 8d1420ce12e..fdc4927763e 100644
--- a/src/server/scripts/Northrend/Nexus/Nexus/boss_anomalus.cpp
+++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_anomalus.cpp
@@ -32,8 +32,8 @@ enum Spells
enum Adds
{
- MOB_CRAZED_MANA_WRAITH = 26746,
- MOB_CHAOTIC_RIFT = 26918
+ NPC_CRAZED_MANA_WRAITH = 26746,
+ NPC_CHAOTIC_RIFT = 26918
};
enum Yells
@@ -61,7 +61,10 @@ Position const RiftLocation[6] =
{ 651.72f, -297.44f, -9.37f, 0.0f }
};
-#define DATA_CHAOS_THEORY 1
+enum Misc
+{
+ DATA_CHAOS_THEORY = 1
+};
class boss_anomalus : public CreatureScript
{
@@ -83,7 +86,7 @@ class boss_anomalus : public CreatureScript
uint64 uiChaoticRiftGUID;
bool chaosTheory;
- void Reset()
+ void Reset() OVERRIDE
{
Phase = 0;
uiSparkTimer = 5000;
@@ -94,7 +97,7 @@ class boss_anomalus : public CreatureScript
instance->SetData(DATA_ANOMALUS_EVENT, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
@@ -102,7 +105,7 @@ class boss_anomalus : public CreatureScript
instance->SetData(DATA_ANOMALUS_EVENT, IN_PROGRESS);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -110,7 +113,7 @@ class boss_anomalus : public CreatureScript
instance->SetData(DATA_ANOMALUS_EVENT, DONE);
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
if (type == DATA_CHAOS_THEORY)
return chaosTheory ? 1 : 0;
@@ -118,13 +121,13 @@ class boss_anomalus : public CreatureScript
return 0;
}
- void SummonedCreatureDies(Creature* summoned, Unit* /*who*/)
+ void SummonedCreatureDies(Creature* summoned, Unit* /*who*/) OVERRIDE
{
- if (summoned->GetEntry() == MOB_CHAOTIC_RIFT)
+ if (summoned->GetEntry() == NPC_CHAOTIC_RIFT)
chaosTheory = false;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -157,7 +160,7 @@ class boss_anomalus : public CreatureScript
Phase = 1;
Talk(SAY_SHIELD);
DoCast(me, SPELL_RIFT_SHIELD);
- if (Creature* Rift = me->SummonCreature(MOB_CHAOTIC_RIFT, RiftLocation[urand(0, 5)], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 1000))
+ if (Creature* Rift = me->SummonCreature(NPC_CHAOTIC_RIFT, RiftLocation[urand(0, 5)], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 1000))
{
//DoCast(Rift, SPELL_CHARGE_RIFT);
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
@@ -180,20 +183,20 @@ class boss_anomalus : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_anomalusAI(creature);
}
};
-class mob_chaotic_rift : public CreatureScript
+class npc_chaotic_rift : public CreatureScript
{
public:
- mob_chaotic_rift() : CreatureScript("mob_chaotic_rift") { }
+ npc_chaotic_rift() : CreatureScript("npc_chaotic_rift") { }
- struct mob_chaotic_riftAI : public ScriptedAI
+ struct npc_chaotic_riftAI : public ScriptedAI
{
- mob_chaotic_riftAI(Creature* creature) : ScriptedAI(creature)
+ npc_chaotic_riftAI(Creature* creature) : ScriptedAI(creature)
{
instance = me->GetInstanceScript();
SetCombatMovement(false);
@@ -204,7 +207,7 @@ class mob_chaotic_rift : public CreatureScript
uint32 uiChaoticEnergyBurstTimer;
uint32 uiSummonCrazedManaWraithTimer;
- void Reset()
+ void Reset() OVERRIDE
{
uiChaoticEnergyBurstTimer = 1000;
uiSummonCrazedManaWraithTimer = 5000;
@@ -212,7 +215,7 @@ class mob_chaotic_rift : public CreatureScript
DoCast(me, SPELL_ARCANEFORM, false);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -234,7 +237,7 @@ class mob_chaotic_rift : public CreatureScript
if (uiSummonCrazedManaWraithTimer <= diff)
{
- if (Creature* Wraith = me->SummonCreature(MOB_CRAZED_MANA_WRAITH, me->GetPositionX() + 1, me->GetPositionY() + 1, me->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 1000))
+ if (Creature* Wraith = me->SummonCreature(NPC_CRAZED_MANA_WRAITH, me->GetPositionX() + 1, me->GetPositionY() + 1, me->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 1000))
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
Wraith->AI()->AttackStart(target);
Creature* Anomalus = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ANOMALUS));
@@ -248,9 +251,9 @@ class mob_chaotic_rift : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_chaotic_riftAI(creature);
+ return new npc_chaotic_riftAI(creature);
}
};
@@ -261,7 +264,7 @@ class achievement_chaos_theory : public AchievementCriteriaScript
{
}
- bool OnCheck(Player* /*player*/, Unit* target)
+ bool OnCheck(Player* /*player*/, Unit* target) OVERRIDE
{
if (!target)
return false;
@@ -277,6 +280,6 @@ class achievement_chaos_theory : public AchievementCriteriaScript
void AddSC_boss_anomalus()
{
new boss_anomalus();
- new mob_chaotic_rift();
+ new npc_chaotic_rift();
new achievement_chaos_theory();
}
diff --git a/src/server/scripts/Northrend/Nexus/Nexus/boss_commander_kolurg.cpp b/src/server/scripts/Northrend/Nexus/Nexus/boss_commander_kolurg.cpp
index 7f32b2bc4a5..175816e3ae7 100644
--- a/src/server/scripts/Northrend/Nexus/Nexus/boss_commander_kolurg.cpp
+++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_commander_kolurg.cpp
@@ -26,11 +26,15 @@ Script Data End */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
-#define SPELL_BATTLE_SHOUT 31403
-#define SPELL_CHARGE 60067
-#define SPELL_FRIGHTENING_SHOUT 19134
-#define SPELL_WHIRLWIND_1 38619
-#define SPELL_WHIRLWIND_2 38618
+enum Spells
+{
+ SPELL_BATTLE_SHOUT = 31403,
+ SPELL_CHARGE = 60067,
+ SPELL_FRIGHTENING_SHOUT = 19134,
+ SPELL_WHIRLWIND_1 = 38619,
+ SPELL_WHIRLWIND_2 = 38618
+
+};
//not used
//Yell
@@ -43,20 +47,21 @@ class boss_commander_kolurg : public CreatureScript
public:
boss_commander_kolurg() : CreatureScript("boss_commander_kolurg") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_commander_kolurgAI (creature);
+ return new boss_commander_kolurgAI(creature);
}
struct boss_commander_kolurgAI : public ScriptedAI
{
boss_commander_kolurgAI(Creature* creature) : ScriptedAI(creature) {}
- void Reset() {}
- void EnterCombat(Unit* /*who*/) {}
- void AttackStart(Unit* /*who*/) {}
- void MoveInLineOfSight(Unit* /*who*/) {}
- void UpdateAI(uint32 /*diff*/)
+ void Reset() OVERRIDE {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+ void AttackStart(Unit* /*who*/) OVERRIDE {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
+
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -64,7 +69,7 @@ public:
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/) {}
+ void JustDied(Unit* /*killer*/) OVERRIDE {}
};
};
diff --git a/src/server/scripts/Northrend/Nexus/Nexus/boss_commander_stoutbeard.cpp b/src/server/scripts/Northrend/Nexus/Nexus/boss_commander_stoutbeard.cpp
index e257b898426..2f73c85a9cd 100644
--- a/src/server/scripts/Northrend/Nexus/Nexus/boss_commander_stoutbeard.cpp
+++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_commander_stoutbeard.cpp
@@ -41,19 +41,20 @@ class boss_commander_stoutbeard : public CreatureScript
public:
boss_commander_stoutbeard() : CreatureScript("boss_commander_stoutbeard") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_commander_stoutbeardAI (creature);
+ return new boss_commander_stoutbeardAI(creature);
}
struct boss_commander_stoutbeardAI : public ScriptedAI
{
boss_commander_stoutbeardAI(Creature* creature) : ScriptedAI(creature) {}
- void Reset() {}
- void AttackStart(Unit* /*who*/) {}
- void MoveInLineOfSight(Unit* /*who*/) {}
- void UpdateAI(uint32 /*diff*/)
+ void Reset() OVERRIDE {}
+ void AttackStart(Unit* /*who*/) OVERRIDE {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
+
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
diff --git a/src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp b/src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp
index e84431a0788..ef8f5c2d3c4 100644
--- a/src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp
+++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp
@@ -58,9 +58,9 @@ class boss_keristrasza : public CreatureScript
public:
boss_keristrasza() : CreatureScript("boss_keristrasza") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_keristraszaAI (creature);
+ return new boss_keristraszaAI(creature);
}
struct boss_keristraszaAI : public ScriptedAI
@@ -80,7 +80,7 @@ public:
bool intenseCold;
bool bEnrage;
- void Reset()
+ void Reset() OVERRIDE
{
uiCrystalfireBreathTimer = 14*IN_MILLISECONDS;
uiCrystalChainsCrystalizeTimer = DUNGEON_MODE(30*IN_MILLISECONDS, 11*IN_MILLISECONDS);
@@ -98,7 +98,7 @@ public:
instance->SetData(DATA_KERISTRASZA_EVENT, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
DoCastAOE(SPELL_INTENSE_COLD);
@@ -107,7 +107,7 @@ public:
instance->SetData(DATA_KERISTRASZA_EVENT, IN_PROGRESS);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -115,7 +115,7 @@ public:
instance->SetData(DATA_KERISTRASZA_EVENT, DONE);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
@@ -161,13 +161,13 @@ public:
}
}
- void SetGUID(uint64 guid, int32 id/* = 0 */)
+ void SetGUID(uint64 guid, int32 id/* = 0 */) OVERRIDE
{
if (id == DATA_INTENSE_COLD)
intenseColdList.push_back(guid);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -181,7 +181,7 @@ public:
if (uiCrystalfireBreathTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_CRYSTALFIRE_BREATH);
+ DoCastVictim(SPELL_CRYSTALFIRE_BREATH);
uiCrystalfireBreathTimer = 14*IN_MILLISECONDS;
} else uiCrystalfireBreathTimer -= diff;
@@ -212,12 +212,12 @@ class containment_sphere : public GameObjectScript
public:
containment_sphere() : GameObjectScript("containment_sphere") { }
- bool OnGossipHello(Player* /*player*/, GameObject* go)
+ bool OnGossipHello(Player* /*player*/, GameObject* go) OVERRIDE
{
InstanceScript* instance = go->GetInstanceScript();
Creature* pKeristrasza = Unit::GetCreature(*go, instance ? instance->GetData64(DATA_KERISTRASZA) : 0);
- if (pKeristrasza && pKeristrasza->isAlive())
+ if (pKeristrasza && pKeristrasza->IsAlive())
{
// maybe these are hacks :(
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
@@ -250,13 +250,13 @@ class spell_intense_cold : public SpellScriptLoader
caster->GetAI()->SetGUID(GetTarget()->GetGUID(), DATA_INTENSE_COLD);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_intense_cold_AuraScript::HandlePeriodicTick, EFFECT_1, SPELL_AURA_PERIODIC_DAMAGE);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_intense_cold_AuraScript();
}
@@ -269,7 +269,7 @@ class achievement_intense_cold : public AchievementCriteriaScript
{
}
- bool OnCheck(Player* player, Unit* target)
+ bool OnCheck(Player* player, Unit* target) OVERRIDE
{
if (!target)
return false;
diff --git a/src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp b/src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp
index 26bf80cb32e..8a01c40186e 100644
--- a/src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp
+++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp
@@ -36,9 +36,9 @@ enum Spells
enum Creatures
{
- MOB_FIRE_MAGUS = 26928,
- MOB_FROST_MAGUS = 26930,
- MOB_ARCANE_MAGUS = 26929
+ NPC_FIRE_MAGUS = 26928,
+ NPC_FROST_MAGUS = 26930,
+ NPC_ARCANE_MAGUS = 26929
};
enum Yells
@@ -50,8 +50,11 @@ enum Yells
SAY_SPLIT = 4
};
-#define ACTION_MAGUS_DEAD 1
-#define DATA_SPLIT_PERSONALITY 2
+enum Misc
+{
+ ACTION_MAGUS_DEAD = 1,
+ DATA_SPLIT_PERSONALITY = 2
+};
const Position CenterOfRoom = {504.80f, 89.07f, -16.12f, 6.27f};
@@ -60,9 +63,9 @@ class boss_magus_telestra : public CreatureScript
public:
boss_magus_telestra() : CreatureScript("boss_magus_telestra") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_magus_telestraAI (creature);
+ return new boss_magus_telestraAI(creature);
}
struct boss_magus_telestraAI : public ScriptedAI
@@ -93,7 +96,7 @@ public:
uint8 splitPersonality;
time_t time[3];
- void Reset()
+ void Reset() OVERRIDE
{
Phase = 0;
//These times are probably wrong
@@ -119,7 +122,7 @@ public:
instance->SetData(DATA_MAGUS_TELESTRA_EVENT, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
@@ -127,7 +130,7 @@ public:
instance->SetData(DATA_MAGUS_TELESTRA_EVENT, IN_PROGRESS);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -135,12 +138,12 @@ public:
instance->SetData(DATA_MAGUS_TELESTRA_EVENT, DONE);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_KILL);
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
if (action == ACTION_MAGUS_DEAD)
{
@@ -154,7 +157,7 @@ public:
}
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
if (type == DATA_SPLIT_PERSONALITY)
return splitPersonality;
@@ -168,17 +171,17 @@ public:
{
switch (entry)
{
- case MOB_FIRE_MAGUS:
+ case NPC_FIRE_MAGUS:
{
Summoned->CastSpell(Summoned, SPELL_FIRE_MAGUS_VISUAL, false);
break;
}
- case MOB_FROST_MAGUS:
+ case NPC_FROST_MAGUS:
{
Summoned->CastSpell(Summoned, SPELL_FROST_MAGUS_VISUAL, false);
break;
}
- case MOB_ARCANE_MAGUS:
+ case NPC_ARCANE_MAGUS:
{
Summoned->CastSpell(Summoned, SPELL_ARCANE_MAGUS_VISUAL, false);
break;
@@ -191,9 +194,9 @@ public:
return 0;
}
- void SummonedCreatureDespawn(Creature* summon)
+ void SummonedCreatureDespawn(Creature* summon) OVERRIDE
{
- if (summon->isAlive())
+ if (summon->IsAlive())
return;
if (summon->GetGUID() == uiFireMagusGUID)
@@ -213,7 +216,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -263,9 +266,9 @@ public:
me->RemoveAllAuras();
me->SetVisible(false);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- uiFireMagusGUID = SplitPersonality(MOB_FIRE_MAGUS);
- uiFrostMagusGUID = SplitPersonality(MOB_FROST_MAGUS);
- uiArcaneMagusGUID = SplitPersonality(MOB_ARCANE_MAGUS);
+ uiFireMagusGUID = SplitPersonality(NPC_FIRE_MAGUS);
+ uiFrostMagusGUID = SplitPersonality(NPC_FROST_MAGUS);
+ uiArcaneMagusGUID = SplitPersonality(NPC_ARCANE_MAGUS);
bFireMagusDead = false;
bFrostMagusDead = false;
bArcaneMagusDead = false;
@@ -280,9 +283,9 @@ public:
me->RemoveAllAuras();
me->SetVisible(false);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- uiFireMagusGUID = SplitPersonality(MOB_FIRE_MAGUS);
- uiFrostMagusGUID = SplitPersonality(MOB_FROST_MAGUS);
- uiArcaneMagusGUID = SplitPersonality(MOB_ARCANE_MAGUS);
+ uiFireMagusGUID = SplitPersonality(NPC_FIRE_MAGUS);
+ uiFrostMagusGUID = SplitPersonality(NPC_FROST_MAGUS);
+ uiArcaneMagusGUID = SplitPersonality(NPC_ARCANE_MAGUS);
bFireMagusDead = false;
bFrostMagusDead = false;
bArcaneMagusDead = false;
@@ -313,7 +316,7 @@ public:
if (uiGravityWellTimer <= diff)
{
- if (Unit* target = me->getVictim())
+ if (Unit* target = me->GetVictim())
{
DoCast(target, SPELL_GRAVITY_WELL);
uiCooldown = 6*IN_MILLISECONDS;
@@ -344,7 +347,7 @@ class achievement_split_personality : public AchievementCriteriaScript
{
}
- bool OnCheck(Player* /*player*/, Unit* target)
+ bool OnCheck(Player* /*player*/, Unit* target) OVERRIDE
{
if (!target)
return false;
diff --git a/src/server/scripts/Northrend/Nexus/Nexus/boss_ormorok.cpp b/src/server/scripts/Northrend/Nexus/Nexus/boss_ormorok.cpp
index 0f480b1d101..f26e70d6838 100644
--- a/src/server/scripts/Northrend/Nexus/Nexus/boss_ormorok.cpp
+++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_ormorok.cpp
@@ -69,7 +69,7 @@ public:
{
boss_ormorokAI(Creature* creature) : BossAI(creature, DATA_ORMOROK_EVENT) {}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
@@ -85,7 +85,7 @@ public:
instance->SetData(DATA_ORMOROK_EVENT, IN_PROGRESS);
}
- void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/)
+ void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/) OVERRIDE
{
if (!frenzy && HealthBelowPct(25))
{
@@ -94,7 +94,7 @@ public:
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
@@ -104,12 +104,12 @@ public:
instance->SetData(DATA_ORMOROK_EVENT, DONE);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_KILL);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -155,9 +155,9 @@ public:
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_ormorokAI (creature);
+ return new boss_ormorokAI(creature);
}
};
@@ -190,7 +190,7 @@ public:
{
npc_crystal_spike_triggerAI(Creature* creature) : ScriptedAI(creature) {}
- void IsSummonedBy(Unit* owner)
+ void IsSummonedBy(Unit* owner) OVERRIDE
{
switch (me->GetEntry())
{
@@ -214,12 +214,12 @@ public:
_despawntimer = 2000;
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
return type == DATA_COUNT ? _count : 0;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (_despawntimer <= diff)
{
@@ -239,7 +239,7 @@ public:
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_crystal_spike_triggerAI(creature);
}
@@ -266,13 +266,13 @@ class spell_crystal_spike : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_crystal_spike_AuraScript::HandlePeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_crystal_spike_AuraScript();
}
diff --git a/src/server/scripts/Northrend/Nexus/Nexus/instance_nexus.cpp b/src/server/scripts/Northrend/Nexus/Nexus/instance_nexus.cpp
index 81d5141a6a6..507e75b95f4 100644
--- a/src/server/scripts/Northrend/Nexus/Nexus/instance_nexus.cpp
+++ b/src/server/scripts/Northrend/Nexus/Nexus/instance_nexus.cpp
@@ -33,7 +33,7 @@ class instance_nexus : public InstanceMapScript
public:
instance_nexus() : InstanceMapScript("instance_nexus", 576) { }
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_nexus_InstanceMapScript(map);
}
@@ -71,7 +71,7 @@ public:
if (!players.isEmpty())
{
- if (Player* player = players.begin()->getSource())
+ if (Player* player = players.begin()->GetSource())
TeamInInstance = player->GetTeam();
}
switch (creature->GetEntry())
@@ -154,7 +154,7 @@ public:
}
}
- uint32 GetData(uint32 identifier) const
+ uint32 GetData(uint32 identifier) const OVERRIDE
{
switch (identifier)
{
@@ -166,7 +166,7 @@ public:
return 0;
}
- void SetData(uint32 identifier, uint32 data)
+ void SetData(uint32 identifier, uint32 data) OVERRIDE
{
switch (identifier)
{
@@ -221,7 +221,7 @@ public:
}
}
- uint64 GetData64(uint32 uiIdentifier) const
+ uint64 GetData64(uint32 uiIdentifier) const OVERRIDE
{
switch (uiIdentifier)
{
diff --git a/src/server/scripts/Northrend/Nexus/Nexus/nexus.h b/src/server/scripts/Northrend/Nexus/Nexus/nexus.h
index 7f3c96bcb33..58abfb3b63e 100644
--- a/src/server/scripts/Northrend/Nexus/Nexus/nexus.h
+++ b/src/server/scripts/Northrend/Nexus/Nexus/nexus.h
@@ -18,7 +18,7 @@
#ifndef DEF_NEXUS_H
#define DEF_NEXUS_H
-enum eTypes
+enum DataTypes
{
DATA_MAGUS_TELESTRA_EVENT,
DATA_ANOMALUS_EVENT,
diff --git a/src/server/scripts/Northrend/Nexus/Oculus/boss_drakos.cpp b/src/server/scripts/Northrend/Nexus/Oculus/boss_drakos.cpp
index 1a820cd3727..59652a7d4a1 100644
--- a/src/server/scripts/Northrend/Nexus/Oculus/boss_drakos.cpp
+++ b/src/server/scripts/Northrend/Nexus/Oculus/boss_drakos.cpp
@@ -55,16 +55,16 @@ class boss_drakos : public CreatureScript
public:
boss_drakos() : CreatureScript("boss_drakos") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_drakosAI (creature);
+ return new boss_drakosAI(creature);
}
struct boss_drakosAI : public BossAI
{
boss_drakosAI(Creature* creature) : BossAI(creature, DATA_DRAKOS_EVENT) {}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
@@ -75,13 +75,13 @@ public:
postPull = false;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
Talk(SAY_AGGRO);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -125,7 +125,7 @@ public:
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
@@ -135,7 +135,7 @@ public:
instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_KILL);
}
@@ -149,16 +149,16 @@ class npc_unstable_sphere : public CreatureScript
public:
npc_unstable_sphere() : CreatureScript("npc_unstable_sphere") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_unstable_sphereAI (creature);
+ return new npc_unstable_sphereAI(creature);
}
struct npc_unstable_sphereAI : public ScriptedAI
{
npc_unstable_sphereAI(Creature* creature) : ScriptedAI(creature) {}
- void Reset()
+ void Reset() OVERRIDE
{
me->SetReactState(REACT_PASSIVE);
me->GetMotionMaster()->MoveRandom(40.0f);
@@ -170,7 +170,7 @@ public:
deathTimer = 19000;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (pulseTimer <= diff)
{
diff --git a/src/server/scripts/Northrend/Nexus/Oculus/boss_eregos.cpp b/src/server/scripts/Northrend/Nexus/Oculus/boss_eregos.cpp
index d27909328a5..abf0d6537c3 100644
--- a/src/server/scripts/Northrend/Nexus/Oculus/boss_eregos.cpp
+++ b/src/server/scripts/Northrend/Nexus/Oculus/boss_eregos.cpp
@@ -83,16 +83,16 @@ class boss_eregos : public CreatureScript
public:
boss_eregos() : CreatureScript("boss_eregos") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_eregosAI (creature);
+ return new boss_eregosAI(creature);
}
struct boss_eregosAI : public BossAI
{
boss_eregosAI(Creature* creature) : BossAI(creature, DATA_EREGOS_EVENT) { }
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
_phase = PHASE_NORMAL;
@@ -104,12 +104,12 @@ public:
DoAction(ACTION_SET_NORMAL_EVENTS);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_KILL);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
@@ -125,7 +125,7 @@ public:
_amberVoid = false;
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -141,7 +141,7 @@ public:
return 0;
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
if (action != ACTION_SET_NORMAL_EVENTS)
return;
@@ -152,7 +152,7 @@ public:
events.ScheduleEvent(EVENT_SUMMON_LEY_WHELP, urand(15, 30) * IN_MILLISECONDS, 0, PHASE_NORMAL);
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
BossAI::JustSummoned(summon);
@@ -164,7 +164,7 @@ public:
summon->GetMotionMaster()->MoveRandom(100.0f);
}
- void SummonedCreatureDespawn(Creature* summon)
+ void SummonedCreatureDespawn(Creature* summon) OVERRIDE
{
if (summon->GetEntry() != NPC_PLANAR_ANOMALY)
return;
@@ -173,7 +173,7 @@ public:
summon->CastSpell(summon, SPELL_PLANAR_BLAST, true);
}
- void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/)
+ void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/) OVERRIDE
{
if (!me->GetMap()->IsHeroic())
return;
@@ -194,7 +194,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -210,7 +210,7 @@ public:
switch (eventId)
{
case EVENT_ARCANE_BARRAGE:
- DoCast(me->getVictim(), SPELL_ARCANE_BARRAGE);
+ DoCastVictim(SPELL_ARCANE_BARRAGE);
events.ScheduleEvent(EVENT_ARCANE_BARRAGE, urand(3, 10) * IN_MILLISECONDS, 0, PHASE_NORMAL);
break;
case EVENT_ARCANE_VOLLEY:
@@ -233,7 +233,7 @@ public:
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -264,13 +264,13 @@ class spell_eregos_planar_shift : public SpellScriptLoader
creatureCaster->AI()->DoAction(ACTION_SET_NORMAL_EVENTS);
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectRemove += AuraEffectRemoveFn(spell_eregos_planar_shift_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_SCHOOL_IMMUNITY, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_eregos_planar_shift_AuraScript();
}
@@ -281,7 +281,7 @@ class achievement_gen_eregos_void : public AchievementCriteriaScript
public:
achievement_gen_eregos_void(char const* name, uint32 data) : AchievementCriteriaScript(name), _data(data) { }
- bool OnCheck(Player* /*player*/, Unit* target)
+ bool OnCheck(Player* /*player*/, Unit* target) OVERRIDE
{
return target && target->GetAI()->GetData(_data);
}
diff --git a/src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp b/src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp
index 57a9c9958df..436a978d15e 100644
--- a/src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp
+++ b/src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp
@@ -55,7 +55,7 @@ enum Yells
SAY_PLAYER_KILL = 7
};
-enum eCreature
+enum Creatures
{
NPC_PHANTASMAL_CLOUDSCRAPER = 27645,
NPC_PHANTASMAL_MAMMOTH = 27642,
@@ -92,16 +92,16 @@ class boss_urom : public CreatureScript
public:
boss_urom() : CreatureScript("boss_urom") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_uromAI (creature);
+ return new boss_uromAI(creature);
}
struct boss_uromAI : public BossAI
{
boss_uromAI(Creature* creature) : BossAI(creature, DATA_UROM_EVENT) {}
- void Reset()
+ void Reset() OVERRIDE
{
me->CastSpell(me, SPELL_EVOCATE);
@@ -127,7 +127,7 @@ public:
timeBombTimer = urand(20000, 25000);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
@@ -139,7 +139,7 @@ public:
instance->SetData(DATA_UROM_PLATAFORM, instance->GetData(DATA_UROM_PLATAFORM)+1);
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (!who)
return;
@@ -235,12 +235,12 @@ public:
DoCast(TeleportSpells[instance->GetData(DATA_UROM_PLATAFORM)]);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_PLAYER_KILL);
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -273,11 +273,11 @@ public:
if (arcaneExplosionTimer <= uiDiff)
{
Position pPos;
- me->getVictim()->GetPosition(&pPos);
+ me->GetVictim()->GetPosition(&pPos);
me->NearTeleportTo(pPos.GetPositionX(), pPos.GetPositionY(), pPos.GetPositionZ(), pPos.GetOrientation());
- me->GetMotionMaster()->MoveChase(me->getVictim(), 0, 0);
- me->SetUnitMovementFlags(MOVEMENTFLAG_WALKING);
+ me->GetMotionMaster()->MoveChase(me->GetVictim(), 0, 0);
+ me->SetWalk(true);
Talk(EMOTE_ARCANE_EXPLOSION);
Talk(SAY_ARCANE_EXPLOSION);
@@ -308,7 +308,7 @@ public:
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
Talk(SAY_DEATH);
@@ -322,7 +322,7 @@ public:
me->DeleteThreatList();
}
- void SpellHit(Unit* /*pCaster*/, const SpellInfo* pSpell)
+ void SpellHit(Unit* /*pCaster*/, const SpellInfo* pSpell) OVERRIDE
{
switch (pSpell->Id)
{
diff --git a/src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp b/src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp
index 111e6b2c7aa..fbf39a705ee 100644
--- a/src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp
+++ b/src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp
@@ -57,9 +57,9 @@ class boss_varos : public CreatureScript
public:
boss_varos() : CreatureScript("boss_varos") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_varosAI (creature);
+ return new boss_varosAI(creature);
}
struct boss_varosAI : public BossAI
@@ -70,7 +70,7 @@ public:
DoCast(me, SPELL_CENTRIFUGE_SHIELD);
}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
@@ -83,7 +83,7 @@ public:
coreEnergizeOrientation = 0.0f;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
@@ -95,7 +95,7 @@ public:
return coreEnergizeOrientation;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -134,7 +134,7 @@ public:
events.ScheduleEvent(EVENT_CALL_AZURE, urand(20, 25) * IN_MILLISECONDS);
break;
case EVENT_AMPLIFY_MAGIC:
- DoCast(me->getVictim(), SPELL_CALL_AMPLIFY_MAGIC);
+ DoCastVictim(SPELL_CALL_AMPLIFY_MAGIC);
events.ScheduleEvent(EVENT_AMPLIFY_MAGIC, urand(17, 20) * IN_MILLISECONDS);
break;
}
@@ -143,7 +143,7 @@ public:
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
Talk(SAY_DEATH);
@@ -167,7 +167,7 @@ class npc_azure_ring_captain : public CreatureScript
instance = creature->GetInstanceScript();
}
- void Reset()
+ void Reset() OVERRIDE
{
targetGUID = 0;
@@ -177,7 +177,7 @@ class npc_azure_ring_captain : public CreatureScript
me->SetReactState(REACT_AGGRESSIVE);
}
- void SpellHitTarget(Unit* target, SpellInfo const* spell)
+ void SpellHitTarget(Unit* target, SpellInfo const* spell) OVERRIDE
{
if (spell->Id == SPELL_ICE_BEAM)
{
@@ -186,7 +186,7 @@ class npc_azure_ring_captain : public CreatureScript
}
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -194,7 +194,7 @@ class npc_azure_ring_captain : public CreatureScript
DoMeleeAttackIfReady();
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type != POINT_MOTION_TYPE ||
id != ACTION_CALL_DRAGON_EVENT)
@@ -206,7 +206,7 @@ class npc_azure_ring_captain : public CreatureScript
DoCast(target, SPELL_ICE_BEAM);
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -233,7 +233,7 @@ class npc_azure_ring_captain : public CreatureScript
InstanceScript* instance;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_azure_ring_captainAI(creature);
}
@@ -248,7 +248,7 @@ class spell_varos_centrifuge_shield : public SpellScriptLoader
{
PrepareAuraScript(spell_varos_centrifuge_shield_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
Unit* caster = GetCaster();
return (caster && caster->ToCreature());
@@ -277,14 +277,14 @@ class spell_varos_centrifuge_shield : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectRemove += AuraEffectRemoveFn(spell_varos_centrifuge_shield_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
OnEffectApply += AuraEffectApplyFn(spell_varos_centrifuge_shield_AuraScript::OnApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_varos_centrifuge_shield_AuraScript();
}
@@ -325,13 +325,13 @@ class spell_varos_energize_core_area_enemy : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_varos_energize_core_area_enemySpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_varos_energize_core_area_enemySpellScript();
}
@@ -372,13 +372,13 @@ class spell_varos_energize_core_area_entry : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_varos_energize_core_area_entrySpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENTRY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_varos_energize_core_area_entrySpellScript();
}
diff --git a/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp b/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp
index fcd23b0ce6d..d1f0105daf1 100644
--- a/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp
+++ b/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp
@@ -34,7 +34,7 @@ class instance_oculus : public InstanceMapScript
public:
instance_oculus() : InstanceMapScript("instance_oculus", 578) { }
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_oculus_InstanceMapScript(map);
}
@@ -131,34 +131,42 @@ public:
creature->SetPhaseMask(1, true);
break;
case NPC_CENTRIFUGE_CONSTRUCT:
- if (creature->isAlive())
+ if (creature->IsAlive())
DoUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT, ++centrifugueConstructCounter);
break;
case NPC_BELGARISTRASZ:
belgaristraszGUID = creature->GetGUID();
if (GetBossState(DATA_DRAKOS_EVENT) == DONE)
+ {
creature->SetWalk(true),
creature->GetMotionMaster()->MovePoint(0, 941.453f, 1044.1f, 359.967f),
creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ }
break;
case NPC_ETERNOS:
eternosGUID = creature->GetGUID();
if (GetBossState(DATA_DRAKOS_EVENT) == DONE)
+ {
creature->SetWalk(true),
creature->GetMotionMaster()->MovePoint(0, 943.202f, 1059.35f, 359.967f),
creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ }
break;
case NPC_VERDISA:
verdisaGUID = creature->GetGUID();
if (GetBossState(DATA_DRAKOS_EVENT) == DONE)
+ {
creature->SetWalk(true),
creature->GetMotionMaster()->MovePoint(0, 949.188f, 1032.91f, 359.967f),
creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ }
break;
case NPC_GREATER_WHELP:
if (GetBossState(DATA_UROM_EVENT) == DONE)
+ {
creature->SetPhaseMask(1, true);
gwhelpList.push_back(creature->GetGUID());
+ }
break;
}
}
@@ -209,9 +217,13 @@ public:
break;
case DATA_UROM_EVENT:
if (state == DONE)
+ {
if (Creature* eregos = instance->GetCreature(eregosGUID))
+ {
eregos->SetPhaseMask(1, true);
GreaterWhelps();
+ }
+ }
break;
case DATA_EREGOS_EVENT:
if (state == DONE)
@@ -222,7 +234,7 @@ public:
return true;
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
switch (type)
{
@@ -232,7 +244,7 @@ public:
}
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -244,7 +256,7 @@ public:
return 0;
}
- uint64 GetData64(uint32 identifier) const
+ uint64 GetData64(uint32 identifier) const OVERRIDE
{
switch (identifier)
{
@@ -288,10 +300,8 @@ public:
return;
for (std::list<uint64>::const_iterator itr = gwhelpList.begin(); itr != gwhelpList.end(); ++itr)
- {
if (Creature* gwhelp = instance->GetCreature(*itr))
gwhelp->SetPhaseMask(1, true);
- }
}
std::string GetSaveData()
diff --git a/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp b/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp
index 1f8ba3edade..fd15cd19b37 100644
--- a/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp
+++ b/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp
@@ -110,111 +110,115 @@ class npc_verdisa_beglaristrasz_eternos : public CreatureScript
public:
npc_verdisa_beglaristrasz_eternos() : CreatureScript("npc_verdisa_beglaristrasz_eternos") { }
- InstanceScript* instance;
-
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (creature->GetEntry())
{
- case NPC_VERDISA: //Verdisa
- switch (action)
+ case NPC_VERDISA: //Verdisa
{
- case GOSSIP_ACTION_INFO_DEF + 1:
- if (!HAS_ESSENCE(player))
- {
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_VERDISA1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_VERDISA2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
- player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_VERDISA1, creature->GetGUID());
- }
- else
+ switch (action)
{
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_VERDISA2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
- player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_VERDISA2, creature->GetGUID());
+ case GOSSIP_ACTION_INFO_DEF + 1:
+ if (!HAS_ESSENCE(player))
+ {
+ player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_VERDISA1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
+ player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_VERDISA2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
+ player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_VERDISA1, creature->GetGUID());
+ }
+ else
+ {
+ player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_VERDISA2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
+ player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_VERDISA2, creature->GetGUID());
+ }
+ break;
+ case GOSSIP_ACTION_INFO_DEF + 2:
+ {
+ ItemPosCountVec dest;
+ uint8 msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, ITEM_EMERALD_ESSENCE, 1);
+ if (msg == EQUIP_ERR_OK)
+ player->StoreNewItem(dest, ITEM_EMERALD_ESSENCE, true);
+ player->CLOSE_GOSSIP_MENU();
+ break;
+ }
+ case GOSSIP_ACTION_INFO_DEF + 3:
+ player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_VERDISA3, creature->GetGUID());
+ break;
}
break;
- case GOSSIP_ACTION_INFO_DEF + 2:
- {
- ItemPosCountVec dest;
- uint8 msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, ITEM_EMERALD_ESSENCE, 1);
- if (msg == EQUIP_ERR_OK)
- player->StoreNewItem(dest, ITEM_EMERALD_ESSENCE, true);
- player->CLOSE_GOSSIP_MENU();
- break;
}
- case GOSSIP_ACTION_INFO_DEF + 3:
- player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_VERDISA3, creature->GetGUID());
- break;
- }
- break;
- case NPC_BELGARISTRASZ: //Belgaristrasz
- switch (action)
+ case NPC_BELGARISTRASZ: //Belgaristrasz
{
- case GOSSIP_ACTION_INFO_DEF + 1:
- if (!HAS_ESSENCE(player))
- {
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_BELGARISTRASZ1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_BELGARISTRASZ2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
- player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_BELGARISTRASZ1, creature->GetGUID());
- }
- else
+ switch (action)
{
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_BELGARISTRASZ2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
- player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_BELGARISTRASZ2, creature->GetGUID());
+ case GOSSIP_ACTION_INFO_DEF + 1:
+ if (!HAS_ESSENCE(player))
+ {
+ player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_BELGARISTRASZ1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
+ player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_BELGARISTRASZ2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
+ player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_BELGARISTRASZ1, creature->GetGUID());
+ }
+ else
+ {
+ player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_BELGARISTRASZ2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
+ player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_BELGARISTRASZ2, creature->GetGUID());
+ }
+ break;
+ case GOSSIP_ACTION_INFO_DEF + 2:
+ {
+ ItemPosCountVec dest;
+ uint8 msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, ITEM_RUBY_ESSENCE, 1);
+ if (msg == EQUIP_ERR_OK)
+ player->StoreNewItem(dest, ITEM_RUBY_ESSENCE, true);
+ player->CLOSE_GOSSIP_MENU();
+ break;
+ }
+ case GOSSIP_ACTION_INFO_DEF + 3:
+ player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_BELGARISTRASZ3, creature->GetGUID());
+ break;
}
break;
- case GOSSIP_ACTION_INFO_DEF + 2:
- {
- ItemPosCountVec dest;
- uint8 msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, ITEM_RUBY_ESSENCE, 1);
- if (msg == EQUIP_ERR_OK)
- player->StoreNewItem(dest, ITEM_RUBY_ESSENCE, true);
- player->CLOSE_GOSSIP_MENU();
- break;
}
- case GOSSIP_ACTION_INFO_DEF + 3:
- player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_BELGARISTRASZ3, creature->GetGUID());
- break;
- }
- break;
- case NPC_ETERNOS: //Eternos
- switch (action)
+ case NPC_ETERNOS: //Eternos
{
- case GOSSIP_ACTION_INFO_DEF + 1:
- if (!HAS_ESSENCE(player))
- {
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_ETERNOS1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_ETERNOS2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
- player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_ETERNOS1, creature->GetGUID());
- }
- else
+ switch (action)
{
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_ETERNOS2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
- player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_ETERNOS2, creature->GetGUID());
+ case GOSSIP_ACTION_INFO_DEF + 1:
+ if (!HAS_ESSENCE(player))
+ {
+ player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_ETERNOS1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
+ player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_ETERNOS2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
+ player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_ETERNOS1, creature->GetGUID());
+ }
+ else
+ {
+ player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_ETERNOS2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
+ player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_ETERNOS2, creature->GetGUID());
+ }
+ break;
+ case GOSSIP_ACTION_INFO_DEF + 2:
+ {
+ ItemPosCountVec dest;
+ uint8 msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, ITEM_AMBER_ESSENCE, 1);
+ if (msg == EQUIP_ERR_OK)
+ player->StoreNewItem(dest, ITEM_AMBER_ESSENCE, true);
+ player->CLOSE_GOSSIP_MENU();
+ break;
+ }
+ case GOSSIP_ACTION_INFO_DEF + 3:
+ player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_ETERNOS3, creature->GetGUID());
+ break;
}
break;
- case GOSSIP_ACTION_INFO_DEF + 2:
- {
- ItemPosCountVec dest;
- uint8 msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, ITEM_AMBER_ESSENCE, 1);
- if (msg == EQUIP_ERR_OK)
- player->StoreNewItem(dest, ITEM_AMBER_ESSENCE, true);
- player->CLOSE_GOSSIP_MENU();
- break;
- }
- case GOSSIP_ACTION_INFO_DEF + 3:
- player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_ETERNOS3, creature->GetGUID());
- break;
}
- break;
}
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
if (InstanceScript* instance = creature->GetInstanceScript())
@@ -233,21 +237,21 @@ public:
{
npc_verdisa_beglaristrasz_eternosAI(Creature* creature) : ScriptedAI(creature) { }
- void MovementInform(uint32 /*type*/, uint32 id)
+ void MovementInform(uint32 /*type*/, uint32 id) OVERRIDE
{
+ if (id)
+ return;
+
// When Belgaristraz finish his moving say grateful text
if (me->GetEntry() == NPC_BELGARISTRASZ)
- if (id == 0)
- {
- Talk(SAY_BELGARISTRASZ);
- }
+ Talk(SAY_BELGARISTRASZ);
+
// The gossip flag should activate when Drakos die and not from DB
- if (id == 0)
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_verdisa_beglaristrasz_eternosAI(creature);
}
@@ -262,7 +266,7 @@ public:
{
npc_image_belgaristraszAI(Creature* creature) : ScriptedAI(creature) { }
- void IsSummonedBy(Unit* summoner)
+ void IsSummonedBy(Unit* summoner) OVERRIDE
{
if (summoner->GetEntry() == NPC_VAROS)
{
@@ -277,7 +281,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_image_belgaristraszAI(creature);
}
@@ -310,7 +314,7 @@ public:
bool HealthWarningOff;
bool DisableTakeOff;
- void Reset()
+ void Reset() OVERRIDE
{
summonerGUID = 0;
WelcomeTimer = 4500;
@@ -326,7 +330,7 @@ public:
DisableTakeOff = false;
}
- void IsSummonedBy(Unit* summoner)
+ void IsSummonedBy(Unit* summoner) OVERRIDE
{
if (instance->GetBossState(DATA_EREGOS_EVENT) == IN_PROGRESS)
if (Creature* eregos = me->FindNearestCreature(NPC_EREGOS, 450.0f, true))
@@ -347,15 +351,13 @@ public:
me->GetMotionMaster()->MovePoint(0, pos);
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type == POINT_MOTION_TYPE && id == 0)
- {
me->SetDisableGravity(false); // Needed this for proper animation after spawn, the summon in air fall to ground bug leave no other option for now, if this isn't used the drake will only walk on move.
- }
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!(instance->GetBossState(DATA_VAROS_EVENT) == DONE))
{
@@ -384,9 +386,7 @@ public:
}
else WelcomeSequelTimer -= diff;
}
- }
- if (me->HasAuraType(SPELL_AURA_CONTROL_VEHICLE))
- {
+
if (instance->GetBossState(DATA_UROM_EVENT) == DONE)
{
if (!(SpecialOff))
@@ -399,9 +399,7 @@ public:
else SpecialTimer -= diff;
}
}
- }
- if (me->HasAuraType(SPELL_AURA_CONTROL_VEHICLE))
- {
+
if (!(HealthWarningOff))
{
if (me->GetHealthPct() <= 40.0f)
@@ -410,9 +408,7 @@ public:
HealthWarningOff = true;
}
}
- }
- if (me->HasAuraType(SPELL_AURA_CONTROL_VEHICLE))
- {
+
if (HealthWarningOff)
{
if (WarningTimer <= diff)
@@ -423,6 +419,7 @@ public:
else WarningTimer -= diff;
}
}
+
if (!(me->HasAuraType(SPELL_AURA_CONTROL_VEHICLE)))
{
if (!(DisableTakeOff))
@@ -447,7 +444,7 @@ public:
};
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_ruby_emerald_amber_drakeAI(creature);
}
@@ -472,13 +469,13 @@ public:
caster->CastSpell(target, SPELL_SHOCK_CHARGE, false);
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectApply += AuraEffectApplyFn(spell_gen_stop_time_AuraScript::Apply, EFFECT_0, SPELL_AURA_MOD_STUN, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_gen_stop_time_AuraScript();
}
@@ -510,19 +507,76 @@ public:
const_cast<WorldLocation*>(GetExplTargetDest())->RelocateOffset(offset);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHit += SpellEffectFn(spell_call_ruby_emerald_amber_drake_SpellScript::ChangeSummonPos, EFFECT_0, SPELL_EFFECT_SUMMON);
OnEffectLaunch += SpellEffectFn(spell_call_ruby_emerald_amber_drake_SpellScript::ModDestHeight, EFFECT_0, SPELL_EFFECT_SUMMON);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_call_ruby_emerald_amber_drake_SpellScript();
}
};
+
+class spell_oculus_touch_the_nightmare : public SpellScriptLoader
+{
+ public:
+ spell_oculus_touch_the_nightmare() : SpellScriptLoader("spell_oculus_touch_the_nightmare") { }
+
+ class spell_oculus_touch_the_nightmare_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_oculus_touch_the_nightmare_SpellScript);
+
+ void HandleDamageCalc(SpellEffIndex /*effIndex*/)
+ {
+ SetHitDamage(int32(GetCaster()->CountPctFromMaxHealth(30)));
+ }
+
+ void Register() OVERRIDE
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_oculus_touch_the_nightmare_SpellScript::HandleDamageCalc, EFFECT_2, SPELL_EFFECT_SCHOOL_DAMAGE);
+ }
+ };
+
+ SpellScript* GetSpellScript() const OVERRIDE
+ {
+ return new spell_oculus_touch_the_nightmare_SpellScript();
+ }
+};
+
+class spell_oculus_dream_funnel: public SpellScriptLoader
+{
+ public:
+ spell_oculus_dream_funnel() : SpellScriptLoader("spell_oculus_dream_funnel") { }
+
+ class spell_oculus_dream_funnel_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_oculus_dream_funnel_AuraScript);
+
+ void HandleEffectCalcAmount(AuraEffect const* /*aurEff*/, int32& amount, bool& canBeRecalculated)
+ {
+ if (Unit* caster = GetCaster())
+ amount = int32(caster->CountPctFromMaxHealth(5));
+
+ canBeRecalculated = false;
+ }
+
+ void Register() OVERRIDE
+ {
+ DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_oculus_dream_funnel_AuraScript::HandleEffectCalcAmount, EFFECT_0, SPELL_AURA_PERIODIC_HEAL);
+ DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_oculus_dream_funnel_AuraScript::HandleEffectCalcAmount, EFFECT_2, SPELL_AURA_PERIODIC_DAMAGE);
+ }
+ };
+
+ AuraScript* GetAuraScript() const OVERRIDE
+ {
+ return new spell_oculus_dream_funnel_AuraScript();
+ }
+};
+
void AddSC_oculus()
{
new npc_verdisa_beglaristrasz_eternos();
@@ -530,4 +584,6 @@ void AddSC_oculus()
new npc_ruby_emerald_amber_drake();
new spell_gen_stop_time();
new spell_call_ruby_emerald_amber_drake();
+ new spell_oculus_touch_the_nightmare();
+ new spell_oculus_dream_funnel();
}
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_bjarngrim.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_bjarngrim.cpp
index e7c6e920970..2077049641f 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_bjarngrim.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_bjarngrim.cpp
@@ -27,9 +27,8 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "halls_of_lightning.h"
-enum eEnums
+enum Yells
{
- //Yell
SAY_AGGRO = 0,
SAY_DEFENSIVE_STANCE = 1,
SAY_BATTLE_STANCE = 2,
@@ -38,8 +37,11 @@ enum eEnums
SAY_DEATH = 5,
EMOTE_DEFENSIVE_STANCE = 6,
EMOTE_BATTLE_STANCE = 7,
- EMOTE_BERSEKER_STANCE = 8,
+ EMOTE_BERSEKER_STANCE = 8
+};
+enum Spells
+{
SPELL_DEFENSIVE_STANCE = 53790,
//SPELL_DEFENSIVE_AURA = 41105,
SPELL_SPELL_REFLECTION = 36096,
@@ -62,15 +64,25 @@ enum eEnums
//SPELL_CHARGE_UP = 52098, // only used when starting walk from one platform to the other
SPELL_TEMPORARY_ELECTRICAL_CHARGE = 52092, // triggered part of above
- NPC_STORMFORGED_LIEUTENANT = 29240,
SPELL_ARC_WELD = 59085,
SPELL_RENEW_STEEL_N = 52774,
- SPELL_RENEW_STEEL_H = 59160,
+ SPELL_RENEW_STEEL_H = 59160
+};
+enum Creatures
+{
+ NPC_STORMFORGED_LIEUTENANT = 29240
+};
+
+enum Equips
+{
EQUIP_SWORD = 37871,
EQUIP_SHIELD = 35642,
- EQUIP_MACE = 43623,
+ EQUIP_MACE = 43623
+};
+enum Stanges
+{
STANCE_DEFENSIVE = 0,
STANCE_BERSERKER = 1,
STANCE_BATTLE = 2
@@ -85,7 +97,7 @@ class boss_bjarngrim : public CreatureScript
public:
boss_bjarngrim() : CreatureScript("boss_bjarngrim") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_bjarngrimAI(creature);
}
@@ -125,7 +137,7 @@ public:
uint64 m_auiStormforgedLieutenantGUID[2];
- void Reset()
+ void Reset() OVERRIDE
{
if (canBuff)
if (!me->HasAura(SPELL_TEMPORARY_ELECTRICAL_CHARGE))
@@ -154,7 +166,7 @@ public:
{
if (Creature* pStormforgedLieutenant = (Unit::GetCreature((*me), m_auiStormforgedLieutenantGUID[i])))
{
- if (!pStormforgedLieutenant->isAlive())
+ if (!pStormforgedLieutenant->IsAlive())
pStormforgedLieutenant->Respawn();
}
}
@@ -172,7 +184,7 @@ public:
instance->SetData(TYPE_BJARNGRIM, NOT_STARTED);
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
if (me->HasAura(SPELL_TEMPORARY_ELECTRICAL_CHARGE))
canBuff = true;
@@ -182,7 +194,7 @@ public:
ScriptedAI::EnterEvadeMode();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
@@ -193,12 +205,12 @@ public:
instance->SetData(TYPE_BJARNGRIM, IN_PROGRESS);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -223,7 +235,7 @@ public:
}
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -295,7 +307,7 @@ public:
if (m_uiPummel_Timer <= uiDiff)
{
- DoCast(me->getVictim(), SPELL_PUMMEL);
+ DoCastVictim(SPELL_PUMMEL);
m_uiPummel_Timer = urand(10000, 11000);
}
else
@@ -316,7 +328,7 @@ public:
if (m_uiIntercept_Timer <= uiDiff)
{
//not much point is this, better random target and more often?
- DoCast(me->getVictim(), SPELL_INTERCEPT);
+ DoCastVictim(SPELL_INTERCEPT);
m_uiIntercept_Timer = urand(45000, 46000);
}
else
@@ -332,7 +344,7 @@ public:
if (m_uiCleave_Timer <= uiDiff)
{
- DoCast(me->getVictim(), SPELL_CLEAVE);
+ DoCastVictim(SPELL_CLEAVE);
m_uiCleave_Timer = urand(8000, 9000);
}
else
@@ -344,7 +356,7 @@ public:
{
if (m_uiMortalStrike_Timer <= uiDiff)
{
- DoCast(me->getVictim(), SPELL_MORTAL_STRIKE);
+ DoCastVictim(SPELL_MORTAL_STRIKE);
m_uiMortalStrike_Timer = urand(20000, 21000);
}
else
@@ -352,7 +364,7 @@ public:
if (m_uiSlam_Timer <= uiDiff)
{
- DoCast(me->getVictim(), SPELL_SLAM);
+ DoCastVictim(SPELL_SLAM);
m_uiSlam_Timer = urand(15000, 16000);
}
else
@@ -369,22 +381,22 @@ public:
};
/*######
-## mob_stormforged_lieutenant
+## npc_stormforged_lieutenant
######*/
-class mob_stormforged_lieutenant : public CreatureScript
+class npc_stormforged_lieutenant : public CreatureScript
{
public:
- mob_stormforged_lieutenant() : CreatureScript("mob_stormforged_lieutenant") { }
+ npc_stormforged_lieutenant() : CreatureScript("npc_stormforged_lieutenant") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_stormforged_lieutenantAI(creature);
+ return new npc_stormforged_lieutenantAI(creature);
}
- struct mob_stormforged_lieutenantAI : public ScriptedAI
+ struct npc_stormforged_lieutenantAI : public ScriptedAI
{
- mob_stormforged_lieutenantAI(Creature* creature) : ScriptedAI(creature)
+ npc_stormforged_lieutenantAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -394,25 +406,25 @@ public:
uint32 m_uiArcWeld_Timer;
uint32 m_uiRenewSteel_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
m_uiArcWeld_Timer = urand(20000, 21000);
m_uiRenewSteel_Timer = urand(10000, 11000);
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (instance)
{
if (Creature* pBjarngrim = instance->instance->GetCreature(instance->GetData64(DATA_BJARNGRIM)))
{
- if (pBjarngrim->isAlive() && !pBjarngrim->getVictim())
+ if (pBjarngrim->IsAlive() && !pBjarngrim->GetVictim())
pBjarngrim->AI()->AttackStart(who);
}
}
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -420,7 +432,7 @@ public:
if (m_uiArcWeld_Timer <= uiDiff)
{
- DoCast(me->getVictim(), SPELL_ARC_WELD);
+ DoCastVictim(SPELL_ARC_WELD);
m_uiArcWeld_Timer = urand(20000, 21000);
}
else
@@ -432,7 +444,7 @@ public:
{
if (Creature* pBjarngrim = instance->instance->GetCreature(instance->GetData64(DATA_BJARNGRIM)))
{
- if (pBjarngrim->isAlive())
+ if (pBjarngrim->IsAlive())
DoCast(pBjarngrim, SPELL_RENEW_STEEL_N);
}
}
@@ -450,5 +462,5 @@ public:
void AddSC_boss_bjarngrim()
{
new boss_bjarngrim();
- new mob_stormforged_lieutenant();
+ new npc_stormforged_lieutenant();
}
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp
index 9ce8ea3c52c..dfb21edf9af 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp
@@ -70,7 +70,7 @@ class boss_ionar : public CreatureScript
public:
boss_ionar() : CreatureScript("boss_ionar") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_ionarAI(creature);
}
@@ -96,7 +96,7 @@ public:
uint32 uiDisperseHealth;
- void Reset()
+ void Reset() OVERRIDE
{
lSparkList.DespawnAll();
@@ -119,7 +119,7 @@ public:
instance->SetData(TYPE_IONAR, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
@@ -127,7 +127,7 @@ public:
instance->SetData(TYPE_IONAR, IN_PROGRESS);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -137,12 +137,12 @@ public:
instance->SetData(TYPE_IONAR, DONE);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void SpellHit(Unit* /*caster*/, const SpellInfo* spell)
+ void SpellHit(Unit* /*caster*/, const SpellInfo* spell) OVERRIDE
{
if (spell->Id == SPELL_DISPERSE)
{
@@ -172,7 +172,7 @@ public:
{
if (Creature* pSpark = Unit::GetCreature(*me, *itr))
{
- if (pSpark->isAlive())
+ if (pSpark->IsAlive())
{
pSpark->SetSpeed(MOVE_RUN, 2.0f);
pSpark->GetMotionMaster()->Clear();
@@ -184,13 +184,13 @@ public:
}
}
- void DamageTaken(Unit* /*pDoneBy*/, uint32 &uiDamage)
+ void DamageTaken(Unit* /*pDoneBy*/, uint32 &uiDamage) OVERRIDE
{
if (!me->IsVisible())
uiDamage = 0;
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
if (summoned->GetEntry() == NPC_SPARK_OF_IONAR)
{
@@ -207,13 +207,13 @@ public:
}
}
- void SummonedCreatureDespawn(Creature* summoned)
+ void SummonedCreatureDespawn(Creature* summoned) OVERRIDE
{
if (summoned->GetEntry() == NPC_SPARK_OF_IONAR)
lSparkList.Despawn(summoned);
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -243,8 +243,8 @@ public:
uiSplitTimer = 25*IN_MILLISECONDS;
bIsSplitPhase = true;
- if (me->getVictim())
- me->GetMotionMaster()->MoveChase(me->getVictim());
+ if (me->GetVictim())
+ me->GetMotionMaster()->MoveChase(me->GetVictim());
}
}
else
@@ -265,7 +265,7 @@ public:
if (uiBallLightningTimer <= uiDiff)
{
- DoCast(me->getVictim(), SPELL_BALL_LIGHTNING);
+ DoCastVictim(SPELL_BALL_LIGHTNING);
uiBallLightningTimer = urand(10*IN_MILLISECONDS, 11*IN_MILLISECONDS);
}
else
@@ -291,22 +291,22 @@ public:
};
/*######
-## mob_spark_of_ionar
+## npc_spark_of_ionar
######*/
-class mob_spark_of_ionar : public CreatureScript
+class npc_spark_of_ionar : public CreatureScript
{
public:
- mob_spark_of_ionar() : CreatureScript("mob_spark_of_ionar") { }
+ npc_spark_of_ionar() : CreatureScript("npc_spark_of_ionar") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_spark_of_ionarAI(creature);
+ return new npc_spark_of_ionarAI(creature);
}
- struct mob_spark_of_ionarAI : public ScriptedAI
+ struct npc_spark_of_ionarAI : public ScriptedAI
{
- mob_spark_of_ionarAI(Creature* creature) : ScriptedAI(creature)
+ npc_spark_of_ionarAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -315,13 +315,13 @@ public:
uint32 uiCheckTimer;
- void Reset()
+ void Reset() OVERRIDE
{
uiCheckTimer = 2*IN_MILLISECONDS;
me->SetReactState(REACT_PASSIVE);
}
- void MovementInform(uint32 uiType, uint32 uiPointId)
+ void MovementInform(uint32 uiType, uint32 uiPointId) OVERRIDE
{
if (uiType != POINT_MOTION_TYPE || !instance)
return;
@@ -330,12 +330,12 @@ public:
me->DespawnOrUnsummon();
}
- void DamageTaken(Unit* /*pDoneBy*/, uint32 &uiDamage)
+ void DamageTaken(Unit* /*pDoneBy*/, uint32 &uiDamage) OVERRIDE
{
uiDamage = 0;
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
// Despawn if the encounter is not running
if (instance && instance->GetData(TYPE_IONAR) != IN_PROGRESS)
@@ -350,7 +350,7 @@ public:
if (instance)
{
Creature* pIonar = instance->instance->GetCreature(instance->GetData64(DATA_IONAR));
- if (pIonar && pIonar->isAlive())
+ if (pIonar && pIonar->IsAlive())
{
if (me->GetDistance(pIonar) > DATA_MAX_SPARK_DISTANCE)
{
@@ -379,5 +379,5 @@ public:
void AddSC_boss_ionar()
{
new boss_ionar();
- new mob_spark_of_ionar();
+ new npc_spark_of_ionar();
}
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_loken.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_loken.cpp
index fe6c1c27155..d8ab71870a8 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_loken.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_loken.cpp
@@ -28,10 +28,8 @@ EndScriptData */
#include "SpellScript.h"
#include "halls_of_lightning.h"
-enum eEnums
+enum Yells
{
- ACHIEV_TIMELY_DEATH_START_EVENT = 20384,
-
SAY_INTRO_1 = 0,
SAY_INTRO_2 = 1,
SAY_AGGRO = 2,
@@ -41,8 +39,11 @@ enum eEnums
SAY_50HEALTH = 6,
SAY_25HEALTH = 7,
SAY_DEATH = 8,
- EMOTE_NOVA = 9,
+ EMOTE_NOVA = 9
+};
+enum Spells
+{
SPELL_ARC_LIGHTNING = 52921,
SPELL_LIGHTNING_NOVA_N = 52960,
SPELL_LIGHTNING_NOVA_H = 59835,
@@ -52,6 +53,11 @@ enum eEnums
SPELL_PULSING_SHOCKWAVE_AURA = 59414
};
+enum Misc
+{
+ ACHIEV_TIMELY_DEATH_START_EVENT = 20384
+};
+
/*######
## Boss Loken
######*/
@@ -61,7 +67,7 @@ class boss_loken : public CreatureScript
public:
boss_loken() : CreatureScript("boss_loken") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_lokenAI(creature);
}
@@ -81,7 +87,7 @@ public:
uint32 m_uiHealthAmountModifier;
- void Reset()
+ void Reset() OVERRIDE
{
m_uiArcLightning_Timer = 15000;
m_uiLightningNova_Timer = 20000;
@@ -96,7 +102,7 @@ public:
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
@@ -107,7 +113,7 @@ public:
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -118,12 +124,12 @@ public:
}
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -203,13 +209,13 @@ class spell_loken_pulsing_shockwave : public SpellScriptLoader
SetHitDamage(int32(GetHitDamage() * distance));
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_loken_pulsing_shockwave_SpellScript::CalculateDamage, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_loken_pulsing_shockwave_SpellScript();
}
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp
index 1e41f346942..725293a7e60 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp
@@ -73,7 +73,7 @@ class boss_volkhan : public CreatureScript
public:
boss_volkhan() : CreatureScript("boss_volkhan") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_volkhanAI(creature);
}
@@ -102,7 +102,7 @@ public:
uint32 m_uiHealthAmountModifier;
- void Reset()
+ void Reset() OVERRIDE
{
m_bIsStriking = false;
m_bHasTemper = false;
@@ -124,7 +124,7 @@ public:
instance->SetData(TYPE_VOLKHAN, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
@@ -132,7 +132,7 @@ public:
instance->SetData(TYPE_VOLKHAN, IN_PROGRESS);
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (me->Attack(who, true))
{
@@ -145,7 +145,7 @@ public:
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
DespawnGolem();
@@ -154,7 +154,7 @@ public:
instance->SetData(TYPE_VOLKHAN, DONE);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
@@ -168,7 +168,7 @@ public:
{
if (Creature* temp = Unit::GetCreature(*me, *itr))
{
- if (temp->isAlive())
+ if (temp->IsAlive())
temp->DespawnOrUnsummon();
}
}
@@ -186,7 +186,7 @@ public:
if (Creature* temp = Unit::GetCreature(*me, *itr))
{
// Only shatter brittle golems
- if (temp->isAlive() && temp->GetEntry() == NPC_BRITTLE_GOLEM)
+ if (temp->IsAlive() && temp->GetEntry() == NPC_BRITTLE_GOLEM)
{
temp->CastSpell(temp, DUNGEON_MODE(SPELL_SHATTER_N, SPELL_SHATTER_H), false);
GolemsShattered += 1;
@@ -195,7 +195,7 @@ public:
}
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
if (summoned->GetEntry() == NPC_MOLTEN_GOLEM)
{
@@ -209,7 +209,7 @@ public:
}
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
if (m_uiSummonPhase == 2)
{
@@ -218,7 +218,7 @@ public:
}
}
- uint32 GetData(uint32 data) const
+ uint32 GetData(uint32 data) const OVERRIDE
{
if (data == DATA_SHATTER_RESISTANT)
return GolemsShattered;
@@ -226,7 +226,7 @@ public:
return 0;
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -236,8 +236,8 @@ public:
if (m_uiPause_Timer <= uiDiff)
{
if (me->GetMotionMaster()->GetCurrentMovementGeneratorType() != CHASE_MOTION_TYPE)
- if (me->getVictim())
- me->GetMotionMaster()->MoveChase(me->getVictim());
+ if (me->GetVictim())
+ me->GetMotionMaster()->MoveChase(me->GetVictim());
m_bHasTemper = false;
m_bIsStriking = false;
@@ -307,7 +307,7 @@ public:
case 2:
// 2 - Check if reached Anvil
- // This is handled in: void JustReachedHome()
+ // This is handled in: void JustReachedHome() OVERRIDE
break;
case 3:
@@ -356,21 +356,21 @@ public:
};
/*######
-## mob_molten_golem
+## npc_molten_golem
######*/
-class mob_molten_golem : public CreatureScript
+class npc_molten_golem : public CreatureScript
{
public:
- mob_molten_golem() : CreatureScript("mob_molten_golem") { }
+ npc_molten_golem() : CreatureScript("npc_molten_golem") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_molten_golemAI(creature);
+ return new npc_molten_golemAI(creature);
}
- struct mob_molten_golemAI : public ScriptedAI
+ struct npc_molten_golemAI : public ScriptedAI
{
- mob_molten_golemAI(Creature* creature) : ScriptedAI(creature) { }
+ npc_molten_golemAI(Creature* creature) : ScriptedAI(creature) { }
bool m_bIsFrozen;
@@ -378,7 +378,7 @@ public:
uint32 m_uiDeathDelay_Timer;
uint32 m_uiImmolation_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
m_bIsFrozen = false;
@@ -387,7 +387,7 @@ public:
m_uiImmolation_Timer = 5000;
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (me->Attack(who, true))
{
@@ -400,7 +400,7 @@ public:
}
}
- void DamageTaken(Unit* /*pDoneBy*/, uint32 &uiDamage)
+ void DamageTaken(Unit* /*pDoneBy*/, uint32 &uiDamage) OVERRIDE
{
if (uiDamage > me->GetHealth())
{
@@ -419,7 +419,7 @@ public:
}
}
- void SpellHit(Unit* /*pCaster*/, const SpellInfo* pSpell)
+ void SpellHit(Unit* /*pCaster*/, const SpellInfo* pSpell) OVERRIDE
{
// This is the dummy effect of the spells
if (pSpell->Id == SPELL_SHATTER_N || pSpell->Id == SPELL_SHATTER_H)
@@ -427,7 +427,7 @@ public:
me->DespawnOrUnsummon();
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
// Return since we have no target or if we are frozen
if (!UpdateVictim() || m_bIsFrozen)
@@ -443,7 +443,7 @@ public:
if (m_uiImmolation_Timer <= uiDiff)
{
- DoCast(me->getVictim(), SPELL_IMMOLATION_STRIKE_N);
+ DoCastVictim(SPELL_IMMOLATION_STRIKE_N);
m_uiImmolation_Timer = 5000;
}
else
@@ -459,7 +459,7 @@ class achievement_shatter_resistant : public AchievementCriteriaScript
public:
achievement_shatter_resistant() : AchievementCriteriaScript("achievement_shatter_resistant") { }
- bool OnCheck(Player* /*source*/, Unit* target)
+ bool OnCheck(Player* /*source*/, Unit* target) OVERRIDE
{
return target && target->GetAI()->GetData(DATA_SHATTER_RESISTANT) < 5;
}
@@ -468,6 +468,6 @@ class achievement_shatter_resistant : public AchievementCriteriaScript
void AddSC_boss_volkhan()
{
new boss_volkhan();
- new mob_molten_golem();
+ new npc_molten_golem();
new achievement_shatter_resistant();
}
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/halls_of_lightning.h b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/halls_of_lightning.h
index 9968a27da93..c45feab1e8a 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/halls_of_lightning.h
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/halls_of_lightning.h
@@ -19,7 +19,7 @@
#ifndef DEF_HALLS_OF_LIGHTNING_H
#define DEF_HALLS_OF_LIGHTNING_H
-enum eTypes
+enum Types
{
MAX_ENCOUNTER = 4,
@@ -32,12 +32,18 @@ enum eTypes
TYPE_IONAR = 11,
TYPE_LOKEN = 12,
TYPE_VOLKHAN = 13,
+};
+enum CreaturesIds
+{
NPC_BJARNGRIM = 28586,
NPC_VOLKHAN = 28587,
NPC_IONAR = 28546,
- NPC_LOKEN = 28923,
+ NPC_LOKEN = 28923
+};
+enum GameObjectIds
+{
GO_BJARNGRIM_DOOR = 191416, //_doors10
GO_VOLKHAN_DOOR = 191325, //_doors07
GO_IONAR_DOOR = 191326, //_doors05
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/instance_halls_of_lightning.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/instance_halls_of_lightning.cpp
index ddc0b7376ac..ab92d3e4616 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/instance_halls_of_lightning.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/instance_halls_of_lightning.cpp
@@ -39,7 +39,7 @@ class instance_halls_of_lightning : public InstanceMapScript
public:
instance_halls_of_lightning() : InstanceMapScript("instance_halls_of_lightning", 602) { }
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_halls_of_lightning_InstanceMapScript(map);
}
@@ -134,7 +134,7 @@ public:
}
}
- void SetData(uint32 uiType, uint32 uiData)
+ void SetData(uint32 uiType, uint32 uiData) OVERRIDE
{
switch (uiType)
{
@@ -174,7 +174,7 @@ public:
SaveToDB();
}
- uint32 GetData(uint32 uiType) const
+ uint32 GetData(uint32 uiType) const OVERRIDE
{
switch (uiType)
{
@@ -190,7 +190,7 @@ public:
return 0;
}
- uint64 GetData64(uint32 uiData) const
+ uint64 GetData64(uint32 uiData) const OVERRIDE
{
switch (uiData)
{
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_krystallus.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_krystallus.cpp
index adbc8827212..e1c9dec8540 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_krystallus.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_krystallus.cpp
@@ -56,9 +56,9 @@ class boss_krystallus : public CreatureScript
public:
boss_krystallus() : CreatureScript("boss_krystallus") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_krystallusAI (creature);
+ return new boss_krystallusAI(creature);
}
struct boss_krystallusAI : public ScriptedAI
@@ -78,7 +78,7 @@ public:
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
bIsSlam = false;
@@ -91,7 +91,7 @@ public:
if (instance)
instance->SetData(DATA_KRYSTALLUS_EVENT, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
@@ -99,7 +99,7 @@ public:
instance->SetData(DATA_KRYSTALLUS_EVENT, IN_PROGRESS);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -144,7 +144,7 @@ public:
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -152,14 +152,15 @@ public:
instance->SetData(DATA_KRYSTALLUS_EVENT, DONE);
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
- if (victim == me)
+ if (victim->GetTypeId() != TYPEID_PLAYER)
return;
+
Talk(SAY_KILL);
}
- void SpellHitTarget(Unit* /*target*/, const SpellInfo* pSpell)
+ void SpellHitTarget(Unit* /*target*/, const SpellInfo* pSpell) OVERRIDE
{
//this part should be in the core
if (pSpell->Id == SPELL_SHATTER || pSpell->Id == H_SPELL_SHATTER)
@@ -173,8 +174,8 @@ public:
//and correct movement, if not already
if (me->GetMotionMaster()->GetCurrentMovementGeneratorType() != CHASE_MOTION_TYPE)
{
- if (me->getVictim())
- me->GetMotionMaster()->MoveChase(me->getVictim());
+ if (me->GetVictim())
+ me->GetMotionMaster()->MoveChase(me->GetVictim());
}
}
}
@@ -201,13 +202,13 @@ class spell_krystallus_shatter : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_krystallus_shatter_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_krystallus_shatter_SpellScript();
}
@@ -236,13 +237,13 @@ class spell_krystallus_shatter_effect : public SpellScriptLoader
SetHitDamage(int32(GetHitDamage() * ((radius - distance) / radius)));
}
- void Register()
+ void Register() OVERRIDE
{
OnHit += SpellHitFn(spell_krystallus_shatter_effect_SpellScript::CalculateDamage);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_krystallus_shatter_effect_SpellScript();
}
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_maiden_of_grief.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_maiden_of_grief.cpp
index 71222aba88b..5b34db663d5 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_maiden_of_grief.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_maiden_of_grief.cpp
@@ -56,9 +56,9 @@ class boss_maiden_of_grief : public CreatureScript
public:
boss_maiden_of_grief() : CreatureScript("boss_maiden_of_grief") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_maiden_of_griefAI (creature);
+ return new boss_maiden_of_griefAI(creature);
}
struct boss_maiden_of_griefAI : public ScriptedAI
@@ -75,7 +75,7 @@ public:
uint32 ShockOfSorrowTimer;
uint32 PillarOfWoeTimer;
- void Reset()
+ void Reset() OVERRIDE
{
PartingSorrowTimer = urand(25000, 30000);
StormOfGriefTimer = 10000;
@@ -89,7 +89,7 @@ public:
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
@@ -107,7 +107,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -126,7 +126,7 @@ public:
if (StormOfGriefTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_STORM_OF_GRIEF_N, true);
+ DoCastVictim(SPELL_STORM_OF_GRIEF_N, true);
StormOfGriefTimer = urand(15000, 20000);
} else StormOfGriefTimer -= diff;
@@ -145,7 +145,7 @@ public:
if (target)
DoCast(target, SPELL_PILLAR_OF_WOE_N);
else
- DoCast(me->getVictim(), SPELL_PILLAR_OF_WOE_N);
+ DoCastVictim(SPELL_PILLAR_OF_WOE_N);
PillarOfWoeTimer = urand(5000, 25000);
} else PillarOfWoeTimer -= diff;
@@ -153,7 +153,7 @@ public:
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -161,9 +161,9 @@ public:
instance->SetData(DATA_MAIDEN_OF_GRIEF_EVENT, DONE);
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
- if (victim == me)
+ if (victim->GetTypeId() != TYPEID_PLAYER)
return;
Talk(SAY_SLAY);
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp
index 3b0faa08574..185d8e5fd0c 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp
@@ -59,7 +59,12 @@ enum SjonnirCreatures
CREATURE_IRON_SLUDGE = 28165
};
-#define DATA_TIME_BEFORE_OOZE 150000 //2min 30 secs
+enum Misc
+{
+ DATA_TIME_BEFORE_OOZE = 150000, // 2min 30 secs
+ ACTION_OOZE_DEAD = 1,
+ DATA_ABUSE_THE_OOZE = 2
+};
struct Locations
{
@@ -72,9 +77,6 @@ static Locations PipeLocations[] =
{1297.7f, 595.6f, 199.9f} //right
};
-#define ACTION_OOZE_DEAD 1
-#define DATA_ABUSE_THE_OOZE 2
-
static Locations CenterPoint = {1295.21f, 667.157f, 189.691f};
class boss_sjonnir : public CreatureScript
@@ -82,9 +84,9 @@ class boss_sjonnir : public CreatureScript
public:
boss_sjonnir() : CreatureScript("boss_sjonnir") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_sjonnirAI (creature);
+ return new boss_sjonnirAI(creature);
}
struct boss_sjonnirAI : public ScriptedAI
@@ -109,7 +111,7 @@ public:
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
bIsFrenzy = false;
@@ -128,7 +130,7 @@ public:
instance->SetData(DATA_SJONNIR_EVENT, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
@@ -147,7 +149,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -168,7 +170,7 @@ public:
if (uiStaticChargeTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_STATIC_CHARGE);
+ DoCastVictim(SPELL_STATIC_CHARGE);
uiStaticChargeTimer = urand(20000, 25000);
} uiStaticChargeTimer -= diff;
@@ -205,7 +207,7 @@ public:
DoMeleeAttackIfReady();
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
summon->GetMotionMaster()->MovePoint(0, CenterPoint.x, CenterPoint.y, CenterPoint.z);
/*if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
@@ -213,7 +215,7 @@ public:
lSummons.Summon(summon);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
lSummons.DespawnAll();
@@ -221,20 +223,22 @@ public:
if (instance)
instance->SetData(DATA_SJONNIR_EVENT, DONE);
}
- void KilledUnit(Unit* victim)
+
+ void KilledUnit(Unit* victim) OVERRIDE
{
- if (victim == me)
+ if (victim->GetTypeId() != TYPEID_PLAYER)
return;
+
Talk(SAY_SLAY);
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
if (action == ACTION_OOZE_DEAD)
++abuseTheOoze;
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
if (type == DATA_ABUSE_THE_OOZE)
return abuseTheOoze;
@@ -245,28 +249,28 @@ public:
};
-class mob_malformed_ooze : public CreatureScript
+class npc_malformed_ooze : public CreatureScript
{
public:
- mob_malformed_ooze() : CreatureScript("mob_malformed_ooze") { }
+ npc_malformed_ooze() : CreatureScript("npc_malformed_ooze") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_malformed_oozeAI(creature);
+ return new npc_malformed_oozeAI(creature);
}
- struct mob_malformed_oozeAI : public ScriptedAI
+ struct npc_malformed_oozeAI : public ScriptedAI
{
- mob_malformed_oozeAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_malformed_oozeAI(Creature* creature) : ScriptedAI(creature) {}
uint32 uiMergeTimer;
- void Reset()
+ void Reset() OVERRIDE
{
uiMergeTimer = 10000;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (uiMergeTimer <= diff)
{
@@ -288,26 +292,26 @@ public:
};
-class mob_iron_sludge : public CreatureScript
+class npc_iron_sludge : public CreatureScript
{
public:
- mob_iron_sludge() : CreatureScript("mob_iron_sludge") { }
+ npc_iron_sludge() : CreatureScript("npc_iron_sludge") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_iron_sludgeAI(creature);
+ return new npc_iron_sludgeAI(creature);
}
- struct mob_iron_sludgeAI : public ScriptedAI
+ struct npc_iron_sludgeAI : public ScriptedAI
{
- mob_iron_sludgeAI(Creature* creature) : ScriptedAI(creature)
+ npc_iron_sludgeAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
InstanceScript* instance;
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
if (Creature* Sjonnir = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SJONNIR)))
@@ -324,7 +328,7 @@ class achievement_abuse_the_ooze : public AchievementCriteriaScript
{
}
- bool OnCheck(Player* /*player*/, Unit* target)
+ bool OnCheck(Player* /*player*/, Unit* target) OVERRIDE
{
if (!target)
return false;
@@ -340,7 +344,7 @@ class achievement_abuse_the_ooze : public AchievementCriteriaScript
void AddSC_boss_sjonnir()
{
new boss_sjonnir();
- new mob_malformed_ooze();
- new mob_iron_sludge();
+ new npc_malformed_ooze();
+ new npc_iron_sludge();
new achievement_abuse_the_ooze();
}
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp
index 0a9ae889588..7b5c7f2e061 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp
@@ -85,41 +85,46 @@ enum Texts
TEXT_ID_PROGRESS = 13101
};
-enum BrannCreatures
+enum Creatures
{
- CREATURE_TRIBUNAL_OF_THE_AGES = 28234,
- CREATURE_BRANN_BRONZEBEARD = 28070,
- CREATURE_DARK_MATTER_TARGET = 28237,
- CREATURE_SEARING_GAZE_TARGET = 28265,
- CREATURE_DARK_RUNE_PROTECTOR = 27983,
- CREATURE_DARK_RUNE_STORMCALLER = 27984,
- CREATURE_IRON_GOLEM_CUSTODIAN = 27985,
+ NPC_TRIBUNAL_OF_THE_AGES = 28234,
+ NPC_BRANN_BRONZEBEARD = 28070,
+ NPC_DARK_MATTER_TARGET = 28237,
+ NPC_SEARING_GAZE_TARGET = 28265,
+ NPC_DARK_RUNE_PROTECTOR = 27983,
+ NPC_DARK_RUNE_STORMCALLER = 27984,
+ NPC_IRON_GOLEM_CUSTODIAN = 27985,
};
enum Spells
{
SPELL_STEALTH = 58506,
- //Kadrak
+
+ // Kadrak
SPELL_GLARE_OF_THE_TRIBUNAL = 50988,
H_SPELL_GLARE_OF_THE_TRIBUNAL = 59868,
- //Marnak
+
+ // Marnak
SPELL_DARK_MATTER = 51012,
H_SPELL_DARK_MATTER = 59868,
- //Abedneum
+
+ // Abedneum
SPELL_SEARING_GAZE = 51136,
H_SPELL_SEARING_GAZE = 59867,
SPELL_REWARD_ACHIEVEMENT = 59046,
};
-enum Quests
+enum Misc
{
- QUEST_HALLS_OF_STONE = 13207
+ QUEST_HALLS_OF_STONE = 13207,
+
+ DATA_BRANN_SPARKLIN_NEWS = 1
+
};
#define GOSSIP_ITEM_START "Brann, it would be our honor!"
#define GOSSIP_ITEM_PROGRESS "Let's move Brann, enough of the history lessons!"
-#define DATA_BRANN_SPARKLIN_NEWS 1
static Position SpawnLocations[]=
{
@@ -127,19 +132,19 @@ static Position SpawnLocations[]=
{960.748f, 382.944f, 208.374f, 0.0f},
};
-class mob_tribuna_controller : public CreatureScript
+class npc_tribuna_controller : public CreatureScript
{
public:
- mob_tribuna_controller() : CreatureScript("mob_tribuna_controller") { }
+ npc_tribuna_controller() : CreatureScript("npc_tribuna_controller") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_tribuna_controllerAI(creature);
+ return new npc_tribuna_controllerAI(creature);
}
- struct mob_tribuna_controllerAI : public ScriptedAI
+ struct npc_tribuna_controllerAI : public ScriptedAI
{
- mob_tribuna_controllerAI(Creature* creature) : ScriptedAI(creature)
+ npc_tribuna_controllerAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
SetCombatMovement(false);
@@ -157,7 +162,7 @@ public:
std::list<uint64> KaddrakGUIDList;
- void Reset()
+ void Reset() OVERRIDE
{
uiKaddrakEncounterTimer = 1500;
uiMarnakEncounterTimer = 10000;
@@ -186,7 +191,7 @@ public:
uint32 uiPositionCounter = 0;
for (std::list<Creature*>::const_iterator itr = lKaddrakGUIDList.begin(); itr != lKaddrakGUIDList.end(); ++itr)
{
- if ((*itr)->isAlive())
+ if ((*itr)->IsAlive())
{
if (uiPositionCounter == 0)
{
@@ -204,7 +209,7 @@ public:
}*/
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (bKaddrakActivated)
{
@@ -216,7 +221,7 @@ public:
{
if (Creature* pKaddrak = Unit::GetCreature(*me, *itr))
{
- if (pKaddrak->isAlive())
+ if (pKaddrak->IsAlive())
pKaddrak->CastSpell(target, DUNGEON_MODE(SPELL_GLARE_OF_THE_TRIBUNAL, H_SPELL_GLARE_OF_THE_TRIBUNAL), true);
}
}
@@ -229,7 +234,7 @@ public:
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
{
- if (Creature* summon = me->SummonCreature(CREATURE_DARK_MATTER_TARGET, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0.0f, TEMPSUMMON_TIMED_DESPAWN, 1000))
+ if (Creature* summon = me->SummonCreature(NPC_DARK_MATTER_TARGET, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0.0f, TEMPSUMMON_TIMED_DESPAWN, 1000))
{
summon->SetDisplayId(11686);
summon->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
@@ -245,7 +250,7 @@ public:
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
{
- if (Creature* summon = me->SummonCreature(CREATURE_SEARING_GAZE_TARGET, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0.0f, TEMPSUMMON_TIMED_DESPAWN, 1000))
+ if (Creature* summon = me->SummonCreature(NPC_SEARING_GAZE_TARGET, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0.0f, TEMPSUMMON_TIMED_DESPAWN, 1000))
{
summon->SetDisplayId(11686);
summon->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
@@ -265,7 +270,7 @@ class npc_brann_hos : public CreatureScript
public:
npc_brann_hos() : CreatureScript("npc_brann_hos") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF+1 || action == GOSSIP_ACTION_INFO_DEF+2)
@@ -277,9 +282,9 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_START, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
@@ -288,7 +293,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_brann_hosAI(creature);
}
@@ -312,7 +317,7 @@ public:
bool bIsLowHP;
bool brannSparklinNews;
- void Reset()
+ void Reset() OVERRIDE
{
if (!HasEscortState(STATE_ESCORT_ESCORTING))
{
@@ -337,22 +342,22 @@ public:
for (std::list<uint64>::const_iterator itr = lDwarfGUIDList.begin(); itr != lDwarfGUIDList.end(); ++itr)
{
Creature* temp = Unit::GetCreature(*me, instance ? (*itr) : 0);
- if (temp && temp->isAlive())
+ if (temp && temp->IsAlive())
temp->DespawnOrUnsummon();
}
lDwarfGUIDList.clear();
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
switch (waypointId)
{
case 7:
- if (Creature* creature = GetClosestCreatureWithEntry(me, CREATURE_TRIBUNAL_OF_THE_AGES, 100.0f))
+ if (Creature* creature = GetClosestCreatureWithEntry(me, NPC_TRIBUNAL_OF_THE_AGES, 100.0f))
{
- if (!creature->isAlive())
+ if (!creature->IsAlive())
creature->Respawn();
- CAST_AI(mob_tribuna_controller::mob_tribuna_controllerAI, creature->AI())->UpdateFacesList();
+ CAST_AI(npc_tribuna_controller::npc_tribuna_controllerAI, creature->AI())->UpdateFacesList();
uiControllerGUID = creature->GetGUID();
}
break;
@@ -383,21 +388,21 @@ public:
{
uint32 uiSpawnNumber = DUNGEON_MODE(2, 3);
for (uint8 i = 0; i < uiSpawnNumber; ++i)
- me->SummonCreature(CREATURE_DARK_RUNE_PROTECTOR, SpawnLocations[0], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 30000);
- me->SummonCreature(CREATURE_DARK_RUNE_STORMCALLER, SpawnLocations[0], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 30000);
+ me->SummonCreature(NPC_DARK_RUNE_PROTECTOR, SpawnLocations[0], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 30000);
+ me->SummonCreature(NPC_DARK_RUNE_STORMCALLER, SpawnLocations[0], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 30000);
break;
}
case 2:
for (uint8 i = 0; i < 2; ++i)
- me->SummonCreature(CREATURE_DARK_RUNE_STORMCALLER, SpawnLocations[0], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 30000);
+ me->SummonCreature(NPC_DARK_RUNE_STORMCALLER, SpawnLocations[0], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 30000);
break;
case 3:
- me->SummonCreature(CREATURE_IRON_GOLEM_CUSTODIAN, SpawnLocations[0], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 30000);
+ me->SummonCreature(NPC_IRON_GOLEM_CUSTODIAN, SpawnLocations[0], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 30000);
break;
}
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
lDwarfGUIDList.push_back(summoned->GetGUID());
summoned->AddThreat(me, 0.0f);
@@ -418,13 +423,13 @@ public:
Start();
}
- void DamageTaken(Unit* /*done_by*/, uint32 & /*damage*/)
+ void DamageTaken(Unit* /*done_by*/, uint32 & /*damage*/) OVERRIDE
{
if (brannSparklinNews)
brannSparklinNews = false;
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
if (type == DATA_BRANN_SPARKLIN_NEWS)
return brannSparklinNews ? 1 : 0;
@@ -432,7 +437,7 @@ public:
return 0;
}
- void UpdateEscortAI(const uint32 uiDiff)
+ void UpdateEscortAI(const uint32 uiDiff) OVERRIDE
{
if (uiPhaseTimer <= uiDiff)
{
@@ -475,7 +480,7 @@ public:
if (instance)
instance->HandleGameObject(instance->GetData64(DATA_GO_KADDRAK), true);
if (Creature* temp = Unit::GetCreature(*me, uiControllerGUID))
- CAST_AI(mob_tribuna_controller::mob_tribuna_controllerAI, temp->AI())->bKaddrakActivated = true;
+ CAST_AI(npc_tribuna_controller::npc_tribuna_controllerAI, temp->AI())->bKaddrakActivated = true;
JumpToNextStep(5000);
break;
case 9:
@@ -499,7 +504,7 @@ public:
if (instance)
instance->HandleGameObject(instance->GetData64(DATA_GO_MARNAK), true);
if (Creature* temp = Unit::GetCreature(*me, uiControllerGUID))
- CAST_AI(mob_tribuna_controller::mob_tribuna_controllerAI, temp->AI())->bMarnakActivated = true;
+ CAST_AI(npc_tribuna_controller::npc_tribuna_controllerAI, temp->AI())->bMarnakActivated = true;
JumpToNextStep(10000);
break;
case 13:
@@ -531,7 +536,7 @@ public:
if (instance)
instance->HandleGameObject(instance->GetData64(DATA_GO_ABEDNEUM), true);
if (Creature* temp = Unit::GetCreature(*me, uiControllerGUID))
- CAST_AI(mob_tribuna_controller::mob_tribuna_controllerAI, temp->AI())->bAbedneumActivated = true;
+ CAST_AI(npc_tribuna_controller::npc_tribuna_controllerAI, temp->AI())->bAbedneumActivated = true;
JumpToNextStep(5000);
break;
case 19:
@@ -739,7 +744,7 @@ class achievement_brann_spankin_new : public AchievementCriteriaScript
{
}
- bool OnCheck(Player* /*player*/, Unit* target)
+ bool OnCheck(Player* /*player*/, Unit* target) OVERRIDE
{
if (!target)
return false;
@@ -755,6 +760,6 @@ class achievement_brann_spankin_new : public AchievementCriteriaScript
void AddSC_halls_of_stone()
{
new npc_brann_hos();
- new mob_tribuna_controller();
+ new npc_tribuna_controller();
new achievement_brann_spankin_new();
}
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.h b/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.h
index d7c0b37b14e..d00649e409b 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.h
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.h
@@ -24,6 +24,7 @@ enum Data
DATA_SJONNIR_EVENT,
DATA_BRANN_EVENT
};
+
enum Data64
{
DATA_KRYSTALLUS,
@@ -40,7 +41,8 @@ enum Data64
DATA_SJONNIR_DOOR,
DATA_MAIDEN_DOOR
};
-enum Creatures
+
+enum CreaturesIds
{
CREATURE_MAIDEN = 27975,
CREATURE_KRYSTALLUS = 27977,
@@ -50,7 +52,8 @@ enum Creatures
CREATURE_ABEDNEUM = 30899,
CREATURE_BRANN = 28070
};
-enum GameObjects
+
+enum GameObjectIds
{
GO_ABEDNEUM = 191669,
GO_MARNAK = 192170,
@@ -62,4 +65,5 @@ enum GameObjects
GO_TRIBUNAL_CHEST = 190586,
GO_TRIBUNAL_CHEST_HERO = 193996
};
+
#endif
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/instance_halls_of_stone.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/instance_halls_of_stone.cpp
index 41339c9346d..b84d96a6712 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/instance_halls_of_stone.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/instance_halls_of_stone.cpp
@@ -33,7 +33,7 @@ class instance_halls_of_stone : public InstanceMapScript
public:
instance_halls_of_stone() : InstanceMapScript("instance_halls_of_stone", 599) { }
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_halls_of_stone_InstanceMapScript(map);
}
@@ -153,7 +153,7 @@ public:
}
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
switch (type)
{
@@ -186,7 +186,7 @@ public:
SaveToDB();
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -199,7 +199,7 @@ public:
return 0;
}
- uint64 GetData64(uint32 identifier) const
+ uint64 GetData64(uint32 identifier) const OVERRIDE
{
switch (identifier)
{
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp
index 5a5efc36b3c..8f69d905d6f 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp
@@ -305,7 +305,7 @@ class boss_algalon_the_observer : public CreatureScript
_fedOnTears = false;
}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
me->SetReactState(REACT_PASSIVE);
@@ -314,7 +314,7 @@ class boss_algalon_the_observer : public CreatureScript
_hasYelled = false;
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
if (victim->GetTypeId() == TYPEID_UNIT)
{
@@ -328,7 +328,7 @@ class boss_algalon_the_observer : public CreatureScript
}
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -360,7 +360,7 @@ class boss_algalon_the_observer : public CreatureScript
case EVENT_DESPAWN_ALGALON:
events.Reset();
events.SetPhase(PHASE_ROLE_PLAY);
- if (me->isInCombat())
+ if (me->IsInCombat())
events.ScheduleEvent(EVENT_ASCEND_TO_THE_HEAVENS, 1);
events.ScheduleEvent(EVENT_DESPAWN_ALGALON_1, 5000);
events.ScheduleEvent(EVENT_DESPAWN_ALGALON_2, 17000);
@@ -375,12 +375,12 @@ class boss_algalon_the_observer : public CreatureScript
}
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
return type == DATA_HAS_FED_ON_TEARS ? _fedOnTears : 1;
}
- void EnterCombat(Unit* /*target*/)
+ void EnterCombat(Unit* /*target*/) OVERRIDE
{
uint32 introDelay = 0;
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_IMMUNE_TO_NPC);
@@ -422,7 +422,7 @@ class boss_algalon_the_observer : public CreatureScript
(*itr)->m_Events.KillAllEvents(true);
}
- void MovementInform(uint32 movementType, uint32 pointId)
+ void MovementInform(uint32 movementType, uint32 pointId) OVERRIDE
{
if (movementType != POINT_MOTION_TYPE)
return;
@@ -444,7 +444,7 @@ class boss_algalon_the_observer : public CreatureScript
}
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
summons.Summon(summon);
switch (summon->GetEntry())
@@ -486,7 +486,7 @@ class boss_algalon_the_observer : public CreatureScript
}
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
instance->SetBossState(BOSS_ALGALON, FAIL);
BossAI::EnterEvadeMode();
@@ -494,7 +494,7 @@ class boss_algalon_the_observer : public CreatureScript
me->SetSheath(SHEATH_STATE_UNARMED);
}
- void DamageTaken(Unit* /*attacker*/, uint32& damage)
+ void DamageTaken(Unit* /*attacker*/, uint32& damage) OVERRIDE
{
if (_fightWon)
{
@@ -537,7 +537,7 @@ class boss_algalon_the_observer : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if ((!(events.IsInPhase(PHASE_ROLE_PLAY) || events.IsInPhase(PHASE_BIG_BANG)) && !UpdateVictim()) || !CheckInRoom())
return;
@@ -701,7 +701,7 @@ class boss_algalon_the_observer : public CreatureScript
bool _hasYelled;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<boss_algalon_the_observerAI>(creature);
}
@@ -718,19 +718,19 @@ class npc_living_constellation : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_events.Reset();
_events.ScheduleEvent(EVENT_ARCANE_BARRAGE, 2500);
_isActive = false;
}
- uint32 GetData(uint32 /*type*/) const
+ uint32 GetData(uint32 /*type*/) const OVERRIDE
{
return _isActive ? 1 : 0;
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -755,7 +755,7 @@ class npc_living_constellation : public CreatureScript
}
}
- void SpellHit(Unit* caster, SpellInfo const* spell)
+ void SpellHit(Unit* caster, SpellInfo const* spell) OVERRIDE
{
if (spell->Id != SPELL_CONSTELLATION_PHASE_EFFECT || caster->GetTypeId() != TYPEID_UNIT)
return;
@@ -767,7 +767,7 @@ class npc_living_constellation : public CreatureScript
caster->ToCreature()->DespawnOrUnsummon(1);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!(_events.IsInPhase(PHASE_ROLE_PLAY) || _events.IsInPhase(PHASE_BIG_BANG)) && !UpdateVictim())
return;
@@ -794,7 +794,7 @@ class npc_living_constellation : public CreatureScript
bool _isActive;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<npc_living_constellationAI>(creature);
}
@@ -812,7 +812,7 @@ class npc_collapsing_star : public CreatureScript
_dying = false;
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
if (summon->GetEntry() != NPC_BLACK_HOLE)
return;
@@ -824,7 +824,7 @@ class npc_collapsing_star : public CreatureScript
me->DespawnOrUnsummon(1);
}
- void DamageTaken(Unit* /*attacker*/, uint32& damage)
+ void DamageTaken(Unit* /*attacker*/, uint32& damage) OVERRIDE
{
if (_dying)
{
@@ -844,7 +844,7 @@ class npc_collapsing_star : public CreatureScript
bool _dying;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<npc_collapsing_starAI>(creature);
}
@@ -861,7 +861,7 @@ class npc_brann_bronzebeard_algalon : public CreatureScript
{
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -883,7 +883,7 @@ class npc_brann_bronzebeard_algalon : public CreatureScript
}
}
- void MovementInform(uint32 movementType, uint32 pointId)
+ void MovementInform(uint32 movementType, uint32 pointId) OVERRIDE
{
if (movementType != POINT_MOTION_TYPE)
return;
@@ -912,7 +912,7 @@ class npc_brann_bronzebeard_algalon : public CreatureScript
_events.ScheduleEvent(EVENT_BRANN_MOVE_INTRO, delay);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
UpdateVictim();
@@ -948,7 +948,7 @@ class npc_brann_bronzebeard_algalon : public CreatureScript
uint32 _currentPoint;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<npc_brann_bronzebeard_algalonAI>(creature);
}
@@ -965,7 +965,7 @@ class go_celestial_planetarium_access : public GameObjectScript
{
}
- bool GossipHello(Player* player)
+ bool GossipHello(Player* player) OVERRIDE
{
bool hasKey = true;
if (LockEntry const* lock = sLockStore.LookupEntry(go->GetGOInfo()->goober.lockId))
@@ -1006,7 +1006,7 @@ class go_celestial_planetarium_access : public GameObjectScript
return false;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (_events.Empty())
return;
@@ -1027,7 +1027,7 @@ class go_celestial_planetarium_access : public GameObjectScript
EventMap _events;
};
- GameObjectAI* GetAI(GameObject* go) const
+ GameObjectAI* GetAI(GameObject* go) const OVERRIDE
{
return GetUlduarAI<go_celestial_planetarium_accessAI>(go);
}
@@ -1058,14 +1058,14 @@ class spell_algalon_phase_punch : public SpellScriptLoader
GetTarget()->RemoveAurasDueToSpell(PhasePunchAlphaId[GetStackAmount() - 1]);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_algalon_phase_punch_AuraScript::HandlePeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
OnEffectRemove += AuraEffectRemoveFn(spell_algalon_phase_punch_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_algalon_phase_punch_AuraScript();
}
@@ -1074,7 +1074,7 @@ class spell_algalon_phase_punch : public SpellScriptLoader
class NotVictimFilter
{
public:
- NotVictimFilter(Unit* caster) : _victim(caster->getVictim())
+ NotVictimFilter(Unit* caster) : _victim(caster->GetVictim())
{
}
@@ -1101,13 +1101,13 @@ class spell_algalon_arcane_barrage : public SpellScriptLoader
targets.remove_if(NotVictimFilter(GetCaster()));
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_algalon_arcane_barrage_SpellScript::SelectTarget, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_algalon_arcane_barrage_SpellScript();
}
@@ -1146,13 +1146,13 @@ class spell_algalon_trigger_3_adds : public SpellScriptLoader
target->AI()->DoAction(ACTION_ACTIVATE_STAR);
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_algalon_trigger_3_adds_SpellScript::SelectTarget, EFFECT_0, TARGET_UNIT_SRC_AREA_ENTRY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_algalon_trigger_3_adds_SpellScript();
}
@@ -1173,13 +1173,13 @@ class spell_algalon_collapse : public SpellScriptLoader
GetTarget()->DealDamage(GetTarget(), GetTarget()->CountPctFromMaxHealth(1), NULL, NODAMAGE);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_algalon_collapse_AuraScript::HandlePeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_algalon_collapse_AuraScript();
}
@@ -1194,7 +1194,7 @@ class spell_algalon_big_bang : public SpellScriptLoader
{
PrepareSpellScript(spell_algalon_big_bang_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
_targetCount = 0;
return true;
@@ -1211,7 +1211,7 @@ class spell_algalon_big_bang : public SpellScriptLoader
GetCaster()->GetAI()->DoAction(ACTION_ASCEND);
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_algalon_big_bang_SpellScript::CountTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
AfterCast += SpellCastFn(spell_algalon_big_bang_SpellScript::CheckTargets);
@@ -1220,7 +1220,7 @@ class spell_algalon_big_bang : public SpellScriptLoader
uint32 _targetCount;
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_algalon_big_bang_SpellScript();
}
@@ -1241,13 +1241,13 @@ class spell_algalon_remove_phase : public SpellScriptLoader
GetTarget()->RemoveAurasByType(SPELL_AURA_PHASE);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_algalon_remove_phase_AuraScript::HandlePeriodic, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_algalon_remove_phase_AuraScript();
}
@@ -1269,13 +1269,13 @@ class spell_algalon_cosmic_smash : public SpellScriptLoader
GetHitDest()->RelocateOffset(offset);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectLaunch += SpellEffectFn(spell_algalon_cosmic_smash_SpellScript::ModDestHeight, EFFECT_0, SPELL_EFFECT_SUMMON);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_algalon_cosmic_smash_SpellScript();
}
@@ -1300,13 +1300,13 @@ class spell_algalon_cosmic_smash_damage : public SpellScriptLoader
SetHitDamage(int32(float(GetHitDamage()) / distance) * 2);
}
- void Register()
+ void Register() OVERRIDE
{
OnHit += SpellHitFn(spell_algalon_cosmic_smash_damage_SpellScript::RecalculateDamage);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_algalon_cosmic_smash_damage_SpellScript();
}
@@ -1329,13 +1329,13 @@ class spell_algalon_supermassive_fail : public SpellScriptLoader
GetHitPlayer()->ResetAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET, ACHIEVEMENT_CRITERIA_CONDITION_NO_SPELL_HIT, GetSpellInfo()->Id, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnHit += SpellHitFn(spell_algalon_supermassive_fail_SpellScript::RecalculateDamage);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_algalon_supermassive_fail_SpellScript();
}
@@ -1346,7 +1346,7 @@ class achievement_he_feeds_on_your_tears : public AchievementCriteriaScript
public:
achievement_he_feeds_on_your_tears() : AchievementCriteriaScript("achievement_he_feeds_on_your_tears") { }
- bool OnCheck(Player* /*source*/, Unit* target)
+ bool OnCheck(Player* /*source*/, Unit* target) OVERRIDE
{
return !target->GetAI()->GetData(DATA_HAS_FED_ON_TEARS);
}
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp
index 6ad70d38635..cf33906d6f1 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp
@@ -122,9 +122,11 @@ enum AssemblyYells
EMOTE_BRUNDIR_OVERLOAD = 7
};
-enum AssemblyNPCs
+enum Misc
{
- NPC_WORLD_TRIGGER = 22515
+ NPC_WORLD_TRIGGER = 22515,
+
+ DATA_PHASE_3 = 1
};
#define FLOOR_Z 427.28f
@@ -141,14 +143,14 @@ class boss_steelbreaker : public CreatureScript
uint32 phase;
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
phase = 0;
me->RemoveAllAuras();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
Talk(SAY_STEELBREAKER_AGGRO);
@@ -158,7 +160,15 @@ class boss_steelbreaker : public CreatureScript
events.ScheduleEvent(EVENT_FUSION_PUNCH, 15000);
}
- void DoAction(int32 action)
+ uint32 GetData(uint32 type) const OVERRIDE
+ {
+ if (type == DATA_PHASE_3)
+ return (phase >= 3) ? 1 : 0;
+
+ return 0;
+ }
+
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -178,13 +188,13 @@ class boss_steelbreaker : public CreatureScript
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
if (instance->GetBossState(BOSS_ASSEMBLY_OF_IRON) == DONE)
{
- DoCastAOE(SPELL_KILL_CREDIT);
+ DoCastAOE(SPELL_KILL_CREDIT, true);
Talk(SAY_STEELBREAKER_ENCOUNTER_DEFEATED);
}
else
@@ -194,16 +204,16 @@ class boss_steelbreaker : public CreatureScript
//DoCastAOE(SPELL_SUPERCHARGE, true);
if (Creature* Brundir = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_BRUNDIR)))
- if (Brundir->isAlive())
+ if (Brundir->IsAlive())
Brundir->AI()->DoAction(ACTION_SUPERCHARGE);
if (Creature* Molgeim = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MOLGEIM)))
- if (Molgeim->isAlive())
+ if (Molgeim->IsAlive())
Molgeim->AI()->DoAction(ACTION_SUPERCHARGE);
}
}
- void KilledUnit(Unit* who)
+ void KilledUnit(Unit* who) OVERRIDE
{
if (who->GetTypeId() == TYPEID_PLAYER)
Talk(SAY_STEELBREAKER_SLAY);
@@ -212,7 +222,7 @@ class boss_steelbreaker : public CreatureScript
DoCast(me, SPELL_ELECTRICAL_CHARGE);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -232,7 +242,7 @@ class boss_steelbreaker : public CreatureScript
events.CancelEvent(EVENT_BERSERK);
break;
case EVENT_FUSION_PUNCH:
- if (me->IsWithinMeleeRange(me->getVictim()))
+ if (me->IsWithinMeleeRange(me->GetVictim()))
DoCastVictim(SPELL_FUSION_PUNCH);
events.ScheduleEvent(EVENT_FUSION_PUNCH, urand(13000, 22000));
break;
@@ -253,7 +263,7 @@ class boss_steelbreaker : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<boss_steelbreakerAI>(creature);
}
@@ -270,14 +280,14 @@ class boss_runemaster_molgeim : public CreatureScript
uint32 phase;
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
phase = 0;
me->RemoveAllAuras();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
Talk(SAY_MOLGEIM_AGGRO);
@@ -287,7 +297,15 @@ class boss_runemaster_molgeim : public CreatureScript
events.ScheduleEvent(EVENT_RUNE_OF_POWER, 20000);
}
- void DoAction(int32 action)
+ uint32 GetData(uint32 type) const OVERRIDE
+ {
+ if (type == DATA_PHASE_3)
+ return (phase >= 3) ? 1 : 0;
+
+ return 0;
+ }
+
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -307,13 +325,13 @@ class boss_runemaster_molgeim : public CreatureScript
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
if (instance->GetBossState(BOSS_ASSEMBLY_OF_IRON) == DONE)
{
- DoCastAOE(SPELL_KILL_CREDIT);
+ DoCastAOE(SPELL_KILL_CREDIT, true);
Talk(SAY_MOLGEIM_ENCOUNTER_DEFEATED);
}
else
@@ -323,22 +341,22 @@ class boss_runemaster_molgeim : public CreatureScript
//DoCastAOE(SPELL_SUPERCHARGE, true);
if (Creature* Brundir = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_BRUNDIR)))
- if (Brundir->isAlive())
+ if (Brundir->IsAlive())
Brundir->AI()->DoAction(ACTION_SUPERCHARGE);
if (Creature* Steelbreaker = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_STEELBREAKER)))
- if (Steelbreaker->isAlive())
+ if (Steelbreaker->IsAlive())
Steelbreaker->AI()->DoAction(ACTION_SUPERCHARGE);
}
}
- void KilledUnit(Unit* who)
+ void KilledUnit(Unit* who) OVERRIDE
{
if (who->GetTypeId() == TYPEID_PLAYER)
Talk(SAY_MOLGEIM_SLAY);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -364,12 +382,12 @@ class boss_runemaster_molgeim : public CreatureScript
{
case 1:
if (Creature* Steelbreaker = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_STEELBREAKER)))
- if (Steelbreaker->isAlive())
+ if (Steelbreaker->IsAlive())
target = Steelbreaker;
break;
case 2:
if (Creature* Brundir = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_STEELBREAKER)))
- if (Brundir->isAlive())
+ if (Brundir->IsAlive())
target = Brundir;
break;
default:
@@ -402,7 +420,7 @@ class boss_runemaster_molgeim : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<boss_runemaster_molgeimAI>(creature);
}
@@ -419,7 +437,7 @@ class boss_stormcaller_brundir : public CreatureScript
uint32 phase;
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
phase = 0;
@@ -429,7 +447,15 @@ class boss_stormcaller_brundir : public CreatureScript
me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_STUN, false); // Reset immumity, Brundir should be stunnable by default
}
- void EnterCombat(Unit* /*who*/)
+ uint32 GetData(uint32 type) const OVERRIDE
+ {
+ if (type == DATA_PHASE_3)
+ return (phase >= 3) ? 1 : 0;
+
+ return 0;
+ }
+
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
Talk(SAY_BRUNDIR_AGGRO);
@@ -440,7 +466,7 @@ class boss_stormcaller_brundir : public CreatureScript
events.ScheduleEvent(EVENT_OVERLOAD, urand(60000, 120000));
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -464,13 +490,13 @@ class boss_stormcaller_brundir : public CreatureScript
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
if (instance->GetBossState(BOSS_ASSEMBLY_OF_IRON) == DONE)
{
- DoCastAOE(SPELL_KILL_CREDIT);
+ DoCastAOE(SPELL_KILL_CREDIT, true);
Talk(SAY_BRUNDIR_ENCOUNTER_DEFEATED);
}
else
@@ -480,11 +506,11 @@ class boss_stormcaller_brundir : public CreatureScript
//DoCastAOE(SPELL_SUPERCHARGE, true);
if (Creature* Molgeim = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MOLGEIM)))
- if (Molgeim->isAlive())
+ if (Molgeim->IsAlive())
Molgeim->AI()->DoAction(ACTION_SUPERCHARGE);
if (Creature* Steelbreaker = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_STEELBREAKER)))
- if (Steelbreaker->isAlive())
+ if (Steelbreaker->IsAlive())
Steelbreaker->AI()->DoAction(ACTION_SUPERCHARGE);
}
@@ -493,13 +519,13 @@ class boss_stormcaller_brundir : public CreatureScript
me->GetMotionMaster()->MoveFall();
}
- void KilledUnit(Unit* who)
+ void KilledUnit(Unit* who) OVERRIDE
{
if (who->GetTypeId() == TYPEID_PLAYER)
Talk(SAY_BRUNDIR_SLAY);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -568,12 +594,12 @@ class boss_stormcaller_brundir : public CreatureScript
//me->SetLevitate(false);
me->RemoveAurasDueToSpell(RAID_MODE(SPELL_LIGHTNING_TENDRILS_10M, SPELL_LIGHTNING_TENDRILS_25M));
me->RemoveAurasDueToSpell(SPELL_LIGHTNING_TENDRILS_VISUAL);
- DoStartMovement(me->getVictim());
+ DoStartMovement(me->GetVictim());
events.CancelEvent(EVENT_GROUND);
me->getThreatManager().resetAllAggro();
break;
case EVENT_MOVE_POSITION:
- if (me->IsWithinMeleeRange(me->getVictim()))
+ if (me->IsWithinMeleeRange(me->GetVictim()))
{
float x = float(irand(-25, 25));
float y = float(irand(-25, 25));
@@ -594,7 +620,7 @@ class boss_stormcaller_brundir : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<boss_stormcaller_brundirAI>(creature);
}
@@ -616,13 +642,13 @@ class spell_shield_of_runes : public SpellScriptLoader
caster->CastSpell(caster, SPELL_SHIELD_OF_RUNES_BUFF, false);
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectRemove += AuraEffectRemoveFn(spell_shield_of_runes_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_SCHOOL_ABSORB, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_shield_of_runes_AuraScript();
}
@@ -644,13 +670,13 @@ class spell_assembly_meltdown : public SpellScriptLoader
Steelbreaker->AI()->DoAction(ACTION_ADD_CHARGE);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_assembly_meltdown_SpellScript::HandleInstaKill, EFFECT_1, SPELL_EFFECT_INSTAKILL);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_assembly_meltdown_SpellScript();
}
@@ -665,7 +691,7 @@ class spell_assembly_rune_of_summoning : public SpellScriptLoader
{
PrepareAuraScript(spell_assembly_rune_of_summoning_AuraScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_RUNE_OF_SUMMONING_SUMMON))
return false;
@@ -675,7 +701,7 @@ class spell_assembly_rune_of_summoning : public SpellScriptLoader
void HandlePeriodic(AuraEffect const* aurEff)
{
PreventDefaultAction();
- GetTarget()->CastSpell(GetTarget(), SPELL_RUNE_OF_SUMMONING_SUMMON, true, NULL, aurEff, GetTarget()->isSummon() ? GetTarget()->ToTempSummon()->GetSummonerGUID() : 0);
+ GetTarget()->CastSpell(GetTarget(), SPELL_RUNE_OF_SUMMONING_SUMMON, true, NULL, aurEff, GetTarget()->IsSummon() ? GetTarget()->ToTempSummon()->GetSummonerGUID() : 0);
}
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
@@ -684,19 +710,30 @@ class spell_assembly_rune_of_summoning : public SpellScriptLoader
summ->DespawnOrUnsummon(1);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_assembly_rune_of_summoning_AuraScript::HandlePeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
OnEffectRemove += AuraEffectRemoveFn(spell_assembly_rune_of_summoning_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_assembly_rune_of_summoning_AuraScript();
}
};
+class achievement_assembly_i_choose_you : public AchievementCriteriaScript
+{
+ public:
+ achievement_assembly_i_choose_you() : AchievementCriteriaScript("achievement_assembly_i_choose_you") { }
+
+ bool OnCheck(Player* /*player*/, Unit* target) OVERRIDE
+ {
+ return target && target->GetAI()->GetData(DATA_PHASE_3);
+ }
+};
+
void AddSC_boss_assembly_of_iron()
{
new boss_steelbreaker();
@@ -705,4 +742,5 @@ void AddSC_boss_assembly_of_iron()
new spell_shield_of_runes();
new spell_assembly_meltdown();
new spell_assembly_rune_of_summoning();
+ new achievement_assembly_i_choose_you();
}
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp
index 5faa2cc4628..e2a8ab25cac 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp
@@ -91,8 +91,12 @@ enum AuriayaActions
};
#define SENTRY_NUMBER RAID_MODE<uint8>(2, 4)
-#define DATA_NINE_LIVES 30763077
-#define DATA_CRAZY_CAT_LADY 30063007
+
+enum Mis
+{
+ DATA_NINE_LIVES = 30763077,
+ DATA_CRAZY_CAT_LADY = 30063007
+};
class boss_auriaya : public CreatureScript
{
@@ -105,7 +109,7 @@ class boss_auriaya : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
DefenderGUID = 0;
@@ -114,7 +118,7 @@ class boss_auriaya : public CreatureScript
nineLives = false;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
Talk(SAY_AGGRO);
@@ -127,13 +131,13 @@ class boss_auriaya : public CreatureScript
events.ScheduleEvent(EVENT_BERSERK, 600000);
}
- void KilledUnit(Unit* who)
+ void KilledUnit(Unit* who) OVERRIDE
{
if (who->GetTypeId() == TYPEID_PLAYER)
Talk(SAY_SLAY);
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
summons.Summon(summoned);
@@ -146,15 +150,15 @@ class boss_auriaya : public CreatureScript
if (summoned->GetEntry() == NPC_FERAL_DEFENDER)
{
- if (!summoned->isInCombat() && me->getVictim())
- summoned->AI()->AttackStart(me->getVictim());
+ if (!summoned->IsInCombat() && me->GetVictim())
+ summoned->AI()->AttackStart(me->GetVictim());
summoned->SetAuraStack(SPELL_FERAL_ESSENCE, summoned, 9);
DefenderGUID = summoned->GetGUID();
DoZoneInCombat(summoned);
}
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -175,7 +179,7 @@ class boss_auriaya : public CreatureScript
}
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -188,7 +192,7 @@ class boss_auriaya : public CreatureScript
return 0;
}
- void SetData(uint32 id, uint32 data)
+ void SetData(uint32 id, uint32 data) OVERRIDE
{
switch (id)
{
@@ -201,13 +205,13 @@ class boss_auriaya : public CreatureScript
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
Talk(SAY_DEATH);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -247,8 +251,8 @@ class boss_auriaya : public CreatureScript
if (defenderLives)
Defender->SetAuraStack(SPELL_FERAL_ESSENCE, Defender, defenderLives);
Defender->SetInCombatWithZone();
- if (!Defender->isInCombat())
- Defender->AI()->AttackStart(me->getVictim());
+ if (!Defender->IsInCombat())
+ Defender->AI()->AttackStart(me->GetVictim());
events.CancelEvent(EVENT_RESPAWN_DEFENDER);
}
break;
@@ -275,7 +279,7 @@ class boss_auriaya : public CreatureScript
bool nineLives;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<boss_auriayaAI>(creature);
}
@@ -293,13 +297,13 @@ class npc_auriaya_seeping_trigger : public CreatureScript
instance = me->GetInstanceScript();
}
- void Reset()
+ void Reset() OVERRIDE
{
me->DespawnOrUnsummon(600000);
DoCast(me, SPELL_SEEPING_ESSENCE);
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
if (instance->GetBossState(BOSS_AURIAYA) != IN_PROGRESS)
me->DespawnOrUnsummon();
@@ -309,7 +313,7 @@ class npc_auriaya_seeping_trigger : public CreatureScript
InstanceScript* instance;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_auriaya_seeping_triggerAI(creature);
}
@@ -327,18 +331,18 @@ class npc_sanctum_sentry : public CreatureScript
instance = me->GetInstanceScript();
}
- void Reset()
+ void Reset() OVERRIDE
{
events.ScheduleEvent(EVENT_RIP, urand(4000, 8000));
events.ScheduleEvent(EVENT_POUNCE, urand(12000, 15000));
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
DoCast(me, SPELL_STRENGHT_PACK, true);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -373,7 +377,7 @@ class npc_sanctum_sentry : public CreatureScript
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (Creature* Auriaya = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_AURIAYA)))
Auriaya->AI()->DoAction(ACTION_CRAZY_CAT_LADY);
@@ -384,7 +388,7 @@ class npc_sanctum_sentry : public CreatureScript
EventMap events;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_sanctum_sentryAI(creature);
}
@@ -402,13 +406,13 @@ class npc_feral_defender : public CreatureScript
instance = me->GetInstanceScript();
}
- void Reset()
+ void Reset() OVERRIDE
{
events.ScheduleEvent(EVENT_FERAL_POUNCE, 5000);
events.ScheduleEvent(EVENT_RUSH, 10000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -448,7 +452,7 @@ class npc_feral_defender : public CreatureScript
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
DoCast(me, SPELL_SUMMON_ESSENCE);
if (Creature* Auriaya = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_AURIAYA)))
@@ -460,7 +464,7 @@ class npc_feral_defender : public CreatureScript
EventMap events;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_feral_defenderAI(creature);
}
@@ -492,13 +496,13 @@ class spell_auriaya_strenght_of_the_pack : public SpellScriptLoader
unitList.remove_if(SanctumSentryCheck());
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_auriaya_strenght_of_the_pack_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ALLY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_auriaya_strenght_of_the_pack_SpellScript();
}
@@ -518,14 +522,14 @@ class spell_auriaya_sentinel_blast : public SpellScriptLoader
unitList.remove_if(PlayerOrPetCheck());
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_auriaya_sentinel_blast_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_auriaya_sentinel_blast_SpellScript::FilterTargets, EFFECT_1, TARGET_UNIT_SRC_AREA_ENEMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_auriaya_sentinel_blast_SpellScript();
}
@@ -539,7 +543,7 @@ class achievement_nine_lives : public AchievementCriteriaScript
{
}
- bool OnCheck(Player* /*player*/, Unit* target)
+ bool OnCheck(Player* /*player*/, Unit* target) OVERRIDE
{
if (!target)
return false;
@@ -559,7 +563,7 @@ class achievement_crazy_cat_lady : public AchievementCriteriaScript
{
}
- bool OnCheck(Player* /*player*/, Unit* target)
+ bool OnCheck(Player* /*player*/, Unit* target) OVERRIDE
{
if (!target)
return false;
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp
index f89112e3d67..dec27808321 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp
@@ -141,10 +141,14 @@ enum Vehicles
VEHICLE_DEMOLISHER = 33109,
};
-#define DATA_SHUTOUT 29112912 // 2911, 2912 are achievement IDs
-#define DATA_ORBIT_ACHIEVEMENTS 1
-#define VEHICLE_SPAWNS 5
-#define FREYA_SPAWNS 4
+enum Misc
+{
+ DATA_SHUTOUT = 29112912, // 2911, 2912 are achievement IDs
+ DATA_ORBIT_ACHIEVEMENTS = 1,
+ VEHICLE_SPAWNS = 5,
+ FREYA_SPAWNS = 4
+
+};
enum Yells
{
@@ -224,7 +228,7 @@ class boss_flame_leviathan : public CreatureScript
{
}
- void InitializeAI()
+ void InitializeAI() OVERRIDE
{
ASSERT(vehicle);
if (!me->isDead())
@@ -257,7 +261,7 @@ class boss_flame_leviathan : public CreatureScript
bool Shutout;
bool Unbroken;
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
//resets shutdown counter to 0. 2 or 4 depending on raid mode
@@ -267,7 +271,7 @@ class boss_flame_leviathan : public CreatureScript
me->SetReactState(REACT_DEFENSIVE);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
me->SetReactState(REACT_PASSIVE);
@@ -317,7 +321,7 @@ class boss_flame_leviathan : public CreatureScript
Talk(SAY_AGGRO);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
// Set Field Flags 67108928 = 64 | 67108864 = UNIT_FLAG_UNK_6 | UNIT_FLAG_SKINNABLE
@@ -326,7 +330,7 @@ class boss_flame_leviathan : public CreatureScript
Talk(SAY_DEATH);
}
- void SpellHit(Unit* /*caster*/, SpellInfo const* spell)
+ void SpellHit(Unit* /*caster*/, SpellInfo const* spell) OVERRIDE
{
if (spell->Id == SPELL_START_THE_ENGINE)
vehicle->InstallAllAccessories(false);
@@ -338,7 +342,7 @@ class boss_flame_leviathan : public CreatureScript
++Shutdown;
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -356,13 +360,13 @@ class boss_flame_leviathan : public CreatureScript
return 0;
}
- void SetData(uint32 id, uint32 data)
+ void SetData(uint32 id, uint32 data) OVERRIDE
{
if (id == DATA_UNBROKEN)
Unbroken = data ? true : false;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim() || !CheckInRoom())
return;
@@ -461,13 +465,13 @@ class boss_flame_leviathan : public CreatureScript
DoBatteringRamIfReady();
}
- void SpellHitTarget(Unit* target, SpellInfo const* spell)
+ void SpellHitTarget(Unit* target, SpellInfo const* spell) OVERRIDE
{
if (spell->Id == SPELL_PURSUED)
_pursueTarget = target->GetGUID();
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
if (action && action <= 4) // Tower destruction, debuff leviathan loot and reduce active tower count
{
@@ -549,7 +553,7 @@ class boss_flame_leviathan : public CreatureScript
uint64 _pursueTarget;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<boss_flame_leviathanAI>(creature);
}
@@ -573,7 +577,7 @@ class boss_flame_leviathan_seat : public CreatureScript
InstanceScript* instance;
Vehicle* vehicle;
- void PassengerBoarded(Unit* who, int8 seatId, bool apply)
+ void PassengerBoarded(Unit* who, int8 seatId, bool apply) OVERRIDE
{
if (!me->GetVehicle())
return;
@@ -613,7 +617,7 @@ class boss_flame_leviathan_seat : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_flame_leviathan_seatAI(creature);
}
@@ -632,13 +636,13 @@ class boss_flame_leviathan_defense_cannon : public CreatureScript
uint32 NapalmTimer;
- void Reset()
+ void Reset() OVERRIDE
{
NapalmTimer = 5*IN_MILLISECONDS;
DoCast(me, AURA_STEALTH_DETECTION);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -655,7 +659,7 @@ class boss_flame_leviathan_defense_cannon : public CreatureScript
NapalmTimer -= diff;
}
- bool CanAIAttack(Unit const* who) const
+ bool CanAIAttack(Unit const* who) const OVERRIDE
{
if (who->GetTypeId() != TYPEID_PLAYER || !who->GetVehicle() || who->GetVehicleBase()->GetEntry() == NPC_SEAT)
return false;
@@ -663,7 +667,7 @@ class boss_flame_leviathan_defense_cannon : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_flame_leviathan_defense_cannonAI(creature);
}
@@ -678,13 +682,13 @@ class boss_flame_leviathan_defense_turret : public CreatureScript
{
boss_flame_leviathan_defense_turretAI(Creature* creature) : TurretAI(creature) {}
- void DamageTaken(Unit* who, uint32 &damage)
+ void DamageTaken(Unit* who, uint32 &damage) OVERRIDE
{
if (!CanAIAttack(who))
damage = 0;
}
- bool CanAIAttack(Unit const* who) const
+ bool CanAIAttack(Unit const* who) const OVERRIDE
{
if (who->GetTypeId() != TYPEID_PLAYER || !who->GetVehicle() || who->GetVehicleBase()->GetEntry() != NPC_SEAT)
return false;
@@ -692,7 +696,7 @@ class boss_flame_leviathan_defense_turret : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_flame_leviathan_defense_turretAI(creature);
}
@@ -709,8 +713,11 @@ class boss_flame_leviathan_overload_device : public CreatureScript
{
}
- void OnSpellClick(Unit* /*clicker*/)
+ void OnSpellClick(Unit* /*clicker*/, bool& result) OVERRIDE
{
+ if (!result)
+ return;
+
if (me->GetVehicle())
{
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK);
@@ -726,7 +733,7 @@ class boss_flame_leviathan_overload_device : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_flame_leviathan_overload_deviceAI(creature);
}
@@ -743,7 +750,7 @@ class boss_flame_leviathan_safety_container : public CreatureScript
{
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
float x, y, z;
me->GetPosition(x, y, z);
@@ -752,12 +759,12 @@ class boss_flame_leviathan_safety_container : public CreatureScript
me->SetPosition(x, y, z, 0);
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_flame_leviathan_safety_containerAI(creature);
}
@@ -777,13 +784,13 @@ class npc_mechanolift : public CreatureScript
uint32 MoveTimer;
- void Reset()
+ void Reset() OVERRIDE
{
MoveTimer = 0;
me->GetMotionMaster()->MoveRandom(50);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
me->GetMotionMaster()->MoveTargetedHome();
DoCast(SPELL_DUSTY_EXPLOSION);
@@ -795,14 +802,14 @@ class npc_mechanolift : public CreatureScript
}
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type == POINT_MOTION_TYPE && id == 1)
if (Creature* container = me->FindNearestCreature(NPC_CONTAINER, 5, true))
container->EnterVehicle(me);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (MoveTimer <= diff)
{
@@ -820,7 +827,7 @@ class npc_mechanolift : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_mechanoliftAI(creature);
}
@@ -840,21 +847,21 @@ class npc_pool_of_tar : public CreatureScript
me->CastSpell(me, SPELL_TAR_PASSIVE, true);
}
- void DamageTaken(Unit* /*who*/, uint32& damage)
+ void DamageTaken(Unit* /*who*/, uint32& damage) OVERRIDE
{
damage = 0;
}
- void SpellHit(Unit* /*caster*/, SpellInfo const* spell)
+ void SpellHit(Unit* /*caster*/, SpellInfo const* spell) OVERRIDE
{
if (spell->SchoolMask & SPELL_SCHOOL_MASK_FIRE && !me->HasAura(SPELL_BLAZE))
me->CastSpell(me, SPELL_BLAZE, true);
}
- void UpdateAI(uint32 /*diff*/) {}
+ void UpdateAI(uint32 /*diff*/) OVERRIDE {}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_pool_of_tarAI(creature);
}
@@ -874,13 +881,13 @@ class npc_colossus : public CreatureScript
InstanceScript* instance;
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (me->GetHomePosition().IsInDist(&Center, 50.f))
instance->SetData(DATA_COLOSSUS, instance->GetData(DATA_COLOSSUS)+1);
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -889,7 +896,7 @@ class npc_colossus : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_colossusAI(creature);
}
@@ -908,7 +915,8 @@ class npc_thorims_hammer : public CreatureScript
me->CastSpell(me, AURA_DUMMY_BLUE, true);
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (who->GetTypeId() == TYPEID_PLAYER && who->IsVehicle() && me->IsInRange(who, 0, 10, false))
{
@@ -917,7 +925,7 @@ class npc_thorims_hammer : public CreatureScript
}
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
if (!me->HasAura(AURA_DUMMY_BLUE))
me->CastSpell(me, AURA_DUMMY_BLUE, true);
@@ -926,7 +934,7 @@ class npc_thorims_hammer : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_thorims_hammerAI(creature);
}
@@ -937,7 +945,7 @@ class npc_mimirons_inferno : public CreatureScript
public:
npc_mimirons_inferno() : CreatureScript("npc_mimirons_inferno") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_mimirons_infernoAI(creature);
}
@@ -951,19 +959,19 @@ public:
me->SetReactState(REACT_PASSIVE);
}
- void WaypointReached(uint32 /*waypointId*/)
+ void WaypointReached(uint32 /*waypointId*/) OVERRIDE
{
}
- void Reset()
+ void Reset() OVERRIDE
{
infernoTimer = 2000;
}
uint32 infernoTimer;
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
npc_escortAI::UpdateAI(diff);
@@ -1003,7 +1011,8 @@ class npc_hodirs_fury : public CreatureScript
me->CastSpell(me, AURA_DUMMY_GREEN, true);
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (who->GetTypeId() == TYPEID_PLAYER && who->IsVehicle() && me->IsInRange(who, 0, 5, false))
{
@@ -1012,7 +1021,7 @@ class npc_hodirs_fury : public CreatureScript
}
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
if (!me->HasAura(AURA_DUMMY_GREEN))
me->CastSpell(me, AURA_DUMMY_GREEN, true);
@@ -1021,7 +1030,7 @@ class npc_hodirs_fury : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_hodirs_furyAI(creature);
}
@@ -1041,12 +1050,12 @@ class npc_freyas_ward : public CreatureScript
uint32 summonTimer;
- void Reset()
+ void Reset() OVERRIDE
{
summonTimer = 5000;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (summonTimer <= diff)
{
@@ -1064,7 +1073,7 @@ class npc_freyas_ward : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_freyas_wardAI(creature);
}
@@ -1084,12 +1093,12 @@ class npc_freya_ward_summon : public CreatureScript
uint32 lashTimer;
- void Reset()
+ void Reset() OVERRIDE
{
lashTimer = 5000;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -1106,7 +1115,7 @@ class npc_freya_ward_summon : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_freya_ward_summonAI(creature);
}
@@ -1127,7 +1136,7 @@ class npc_lorekeeper : public CreatureScript
{
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
// Start encounter
if (action == ACTION_SPAWN_VEHICLES)
@@ -1143,9 +1152,9 @@ class npc_lorekeeper : public CreatureScript
}
};
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
- player->PlayerTalkClass->ClearMenus();
+ player->CLOSE_GOSSIP_MENU();
InstanceScript* instance = creature->GetInstanceScript();
if (!instance)
return true;
@@ -1153,19 +1162,13 @@ class npc_lorekeeper : public CreatureScript
switch (action)
{
case GOSSIP_ACTION_INFO_DEF+1:
- if (player)
- {
- player->PrepareGossipMenu(creature);
- instance->instance->LoadGrid(364, -16); //make sure leviathan is loaded
+ player->PrepareGossipMenu(creature);
+ instance->instance->LoadGrid(364, -16); //make sure leviathan is loaded
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
- player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
- }
+ player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
+ player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
break;
case GOSSIP_ACTION_INFO_DEF+2:
- if (player)
- player->CLOSE_GOSSIP_MENU();
-
if (Creature* leviathan = instance->instance->GetCreature(instance->GetData64(BOSS_LEVIATHAN)))
{
leviathan->AI()->DoAction(ACTION_START_HARD_MODE);
@@ -1186,7 +1189,7 @@ class npc_lorekeeper : public CreatureScript
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
InstanceScript* instance = creature->GetInstanceScript();
if (instance && instance->GetData(BOSS_LEVIATHAN) !=DONE && player)
@@ -1199,7 +1202,7 @@ class npc_lorekeeper : public CreatureScript
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_lorekeeperAI(creature);
}
@@ -1216,7 +1219,7 @@ class npc_brann_bronzebeard : public CreatureScript
public:
npc_brann_bronzebeard() : CreatureScript("npc_brann_bronzebeard") { }
- //bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action)
+ //bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action) OVERRIDE
//{
// player->PlayerTalkClass->ClearMenus();
// switch (action)
@@ -1239,7 +1242,7 @@ public:
// }
// return true;
//}
- //bool OnGossipHello(Player* player, Creature* creature)
+ //bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
//{
// InstanceScript* instance = creature->GetInstanceScript();
// if (instance && instance->GetData(BOSS_LEVIATHAN) !=DONE)
@@ -1260,7 +1263,7 @@ class go_ulduar_tower : public GameObjectScript
public:
go_ulduar_tower() : GameObjectScript("go_ulduar_tower") { }
- void OnDestroyed(GameObject* go, Player* /*player*/)
+ void OnDestroyed(GameObject* go, Player* /*player*/) OVERRIDE
{
InstanceScript* instance = go->GetInstanceScript();
if (!instance)
@@ -1293,7 +1296,7 @@ class achievement_three_car_garage_demolisher : public AchievementCriteriaScript
public:
achievement_three_car_garage_demolisher() : AchievementCriteriaScript("achievement_three_car_garage_demolisher") { }
- bool OnCheck(Player* source, Unit* /*target*/)
+ bool OnCheck(Player* source, Unit* /*target*/) OVERRIDE
{
if (Creature* vehicle = source->GetVehicleCreatureBase())
{
@@ -1310,7 +1313,7 @@ class achievement_three_car_garage_chopper : public AchievementCriteriaScript
public:
achievement_three_car_garage_chopper() : AchievementCriteriaScript("achievement_three_car_garage_chopper") { }
- bool OnCheck(Player* source, Unit* /*target*/)
+ bool OnCheck(Player* source, Unit* /*target*/) OVERRIDE
{
if (Creature* vehicle = source->GetVehicleCreatureBase())
{
@@ -1327,7 +1330,7 @@ class achievement_three_car_garage_siege : public AchievementCriteriaScript
public:
achievement_three_car_garage_siege() : AchievementCriteriaScript("achievement_three_car_garage_siege") { }
- bool OnCheck(Player* source, Unit* /*target*/)
+ bool OnCheck(Player* source, Unit* /*target*/) OVERRIDE
{
if (Creature* vehicle = source->GetVehicleCreatureBase())
{
@@ -1344,7 +1347,7 @@ class achievement_shutout : public AchievementCriteriaScript
public:
achievement_shutout() : AchievementCriteriaScript("achievement_shutout") { }
- bool OnCheck(Player* /*source*/, Unit* target)
+ bool OnCheck(Player* /*source*/, Unit* target) OVERRIDE
{
if (target)
if (Creature* leviathan = target->ToCreature())
@@ -1360,7 +1363,7 @@ class achievement_unbroken : public AchievementCriteriaScript
public:
achievement_unbroken() : AchievementCriteriaScript("achievement_unbroken") { }
- bool OnCheck(Player* /*source*/, Unit* target)
+ bool OnCheck(Player* /*source*/, Unit* target) OVERRIDE
{
if (target)
if (InstanceScript* instance = target->GetInstanceScript())
@@ -1375,7 +1378,7 @@ class achievement_orbital_bombardment : public AchievementCriteriaScript
public:
achievement_orbital_bombardment() : AchievementCriteriaScript("achievement_orbital_bombardment") { }
- bool OnCheck(Player* /*source*/, Unit* target)
+ bool OnCheck(Player* /*source*/, Unit* target) OVERRIDE
{
if (!target)
return false;
@@ -1393,7 +1396,7 @@ class achievement_orbital_devastation : public AchievementCriteriaScript
public:
achievement_orbital_devastation() : AchievementCriteriaScript("achievement_orbital_devastation") { }
- bool OnCheck(Player* /*source*/, Unit* target)
+ bool OnCheck(Player* /*source*/, Unit* target) OVERRIDE
{
if (!target)
return false;
@@ -1411,7 +1414,7 @@ class achievement_nuked_from_orbit : public AchievementCriteriaScript
public:
achievement_nuked_from_orbit() : AchievementCriteriaScript("achievement_nuked_from_orbit") { }
- bool OnCheck(Player* /*source*/, Unit* target)
+ bool OnCheck(Player* /*source*/, Unit* target) OVERRIDE
{
if (!target)
return false;
@@ -1429,7 +1432,7 @@ class achievement_orbit_uary : public AchievementCriteriaScript
public:
achievement_orbit_uary() : AchievementCriteriaScript("achievement_orbit_uary") { }
- bool OnCheck(Player* /*source*/, Unit* target)
+ bool OnCheck(Player* /*source*/, Unit* target) OVERRIDE
{
if (!target)
return false;
@@ -1474,14 +1477,14 @@ class spell_load_into_catapult : public SpellScriptLoader
owner->RemoveAurasDueToSpell(SPELL_PASSENGER_LOADED);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectApply += AuraEffectApplyFn(spell_load_into_catapult_AuraScript::OnApply, EFFECT_0, SPELL_AURA_CONTROL_VEHICLE, AURA_EFFECT_HANDLE_REAL);
OnEffectRemove += AuraEffectRemoveFn(spell_load_into_catapult_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_CONTROL_VEHICLE, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_load_into_catapult_AuraScript();
}
@@ -1540,14 +1543,14 @@ class spell_auto_repair : public SpellScriptLoader
instance->SetData(DATA_UNBROKEN, 0);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_auto_repair_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
BeforeHit += SpellHitFn(spell_auto_repair_SpellScript::CheckCooldownForTarget);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_auto_repair_SpellScript();
}
@@ -1583,14 +1586,14 @@ class spell_systems_shutdown : public SpellScriptLoader
owner->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectApply += AuraEffectApplyFn(spell_systems_shutdown_AuraScript::OnApply, EFFECT_0, SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN, AURA_EFFECT_HANDLE_REAL);
OnEffectRemove += AuraEffectRemoveFn(spell_systems_shutdown_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_systems_shutdown_AuraScript();
}
@@ -1629,7 +1632,7 @@ class FlameLeviathanPursuedTargetSelector
//! Vehicle must be in use by player
bool playerFound = false;
for (SeatMap::const_iterator itr = vehicle->Seats.begin(); itr != vehicle->Seats.end() && !playerFound; ++itr)
- if (IS_PLAYER_GUID(itr->second.Passenger))
+ if (IS_PLAYER_GUID(itr->second.Passenger.Guid))
playerFound = true;
return !playerFound;
@@ -1648,7 +1651,7 @@ class spell_pursue : public SpellScriptLoader
{
PrepareSpellScript(spell_pursue_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
_target = NULL;
return true;
@@ -1687,15 +1690,15 @@ class spell_pursue : public SpellScriptLoader
for (SeatMap::const_iterator itr = caster->GetVehicleKit()->Seats.begin(); itr != caster->GetVehicleKit()->Seats.end(); ++itr)
{
- if (IS_PLAYER_GUID(itr->second.Passenger))
+ if (IS_PLAYER_GUID(itr->second.Passenger.Guid))
{
- caster->AI()->Talk(EMOTE_PURSUE, itr->second.Passenger);
+ caster->AI()->Talk(EMOTE_PURSUE, itr->second.Passenger.Guid);
return;
}
}
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_pursue_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_pursue_SpellScript::FilterTargetsSubsequently, EFFECT_1, TARGET_UNIT_SRC_AREA_ENEMY);
@@ -1705,7 +1708,7 @@ class spell_pursue : public SpellScriptLoader
WorldObject* _target;
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_pursue_SpellScript();
}
@@ -1764,13 +1767,13 @@ class spell_vehicle_throw_passenger : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_vehicle_throw_passenger_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_vehicle_throw_passenger_SpellScript();
}
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp
index 3299148ea43..549d496f19d 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp
@@ -229,7 +229,7 @@ class npc_iron_roots : public CreatureScript
summonerGUID = 0;
}
- void IsSummonedBy(Unit* summoner)
+ void IsSummonedBy(Unit* summoner) OVERRIDE
{
if (summoner->GetTypeId() != TYPEID_PLAYER)
return;
@@ -239,7 +239,7 @@ class npc_iron_roots : public CreatureScript
me->SetInCombatWith(summoner);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (Player* target = ObjectAccessor::GetPlayer(*me, summonerGUID))
{
@@ -254,7 +254,7 @@ class npc_iron_roots : public CreatureScript
uint64 summonerGUID;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_iron_rootsAI(creature);
}
@@ -284,7 +284,7 @@ class boss_freya : public CreatureScript
bool trioDefeated[2];
bool random[3];
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
trioWaveCount = 0;
@@ -307,13 +307,13 @@ class boss_freya : public CreatureScript
random[n] = false;
}
- void KilledUnit(Unit* who)
+ void KilledUnit(Unit* who) OVERRIDE
{
if (who->GetTypeId() == TYPEID_PLAYER)
Talk(SAY_SLAY);
}
- void DamageTaken(Unit* who, uint32& damage)
+ void DamageTaken(Unit* who, uint32& damage) OVERRIDE
{
if (damage >= me->GetHealth())
{
@@ -322,7 +322,7 @@ class boss_freya : public CreatureScript
}
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
_EnterCombat();
DoZoneInCombat();
@@ -330,7 +330,7 @@ class boss_freya : public CreatureScript
for (uint8 n = 0; n < 3; ++n)
{
Elder[n] = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_BRIGHTLEAF + n));
- if (Elder[n] && Elder[n]->isAlive())
+ if (Elder[n] && Elder[n]->IsAlive())
{
me->AddAura(SPELL_DRAINED_OF_POWER, Elder[n]);
Elder[n]->CastSpell(me, SPELL_IRONBRANCH_ESSENCE, true);
@@ -342,19 +342,19 @@ class boss_freya : public CreatureScript
}
}
- if (Elder[0] && Elder[0]->isAlive())
+ if (Elder[0] && Elder[0]->IsAlive())
{
Elder[0]->CastSpell(me, SPELL_BRIGHTLEAF_ESSENCE, true);
events.ScheduleEvent(EVENT_UNSTABLE_ENERGY, urand(10000, 20000));
}
- if (Elder[1] && Elder[1]->isAlive())
+ if (Elder[1] && Elder[1]->IsAlive())
{
Elder[1]->CastSpell(me, SPELL_STONEBARK_ESSENCE, true);
events.ScheduleEvent(EVENT_GROUND_TREMOR, urand(10000, 20000));
}
- if (Elder[2] && Elder[2]->isAlive())
+ if (Elder[2] && Elder[2]->IsAlive())
{
Elder[2]->CastSpell(me, SPELL_IRONBRANCH_ESSENCE, true);
events.ScheduleEvent(EVENT_STRENGTHENED_IRON_ROOTS, urand(10000, 20000));
@@ -373,7 +373,7 @@ class boss_freya : public CreatureScript
events.ScheduleEvent(EVENT_SUNBEAM, urand(5000, 15000));
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -386,7 +386,7 @@ class boss_freya : public CreatureScript
return 0;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -474,7 +474,7 @@ class boss_freya : public CreatureScript
{
for (uint8 n = 0; n < 3; ++n)
{
- if (Elemental[n][i]->isAlive())
+ if (Elemental[n][i]->IsAlive())
Elemental[n][i]->SetHealth(Elemental[n][i]->GetMaxHealth());
else
Elemental[n][i]->Respawn();
@@ -578,7 +578,7 @@ class boss_freya : public CreatureScript
waveCount++;
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
//! Freya's chest is dynamically spawned on death by different spells.
const uint32 summonSpell[2][4] =
@@ -605,7 +605,7 @@ class boss_freya : public CreatureScript
for (uint8 n = 0; n < 3; ++n)
{
Elder[n] = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_BRIGHTLEAF + n));
- if (Elder[n] && Elder[n]->isAlive())
+ if (Elder[n] && Elder[n]->IsAlive())
{
Elder[n]->RemoveAllAuras();
Elder[n]->AttackStop();
@@ -616,7 +616,7 @@ class boss_freya : public CreatureScript
}
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
switch (summoned->GetEntry())
{
@@ -645,7 +645,7 @@ class boss_freya : public CreatureScript
}
}
- void SummonedCreatureDies(Creature* summoned, Unit* who)
+ void SummonedCreatureDies(Creature* summoned, Unit* who) OVERRIDE
{
switch (summoned->GetEntry())
{
@@ -664,7 +664,7 @@ class boss_freya : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<boss_freyaAI>(creature);
}
@@ -681,7 +681,7 @@ class boss_elder_brightleaf : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
if (me->HasAura(SPELL_DRAINED_OF_POWER))
@@ -693,13 +693,13 @@ class boss_elder_brightleaf : public CreatureScript
lumberjack = false;
}
- void KilledUnit(Unit* who)
+ void KilledUnit(Unit* who) OVERRIDE
{
if (who->GetTypeId() == TYPEID_PLAYER)
Talk(SAY_ELDER_SLAY);
}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
_JustDied();
Talk(SAY_ELDER_DEATH);
@@ -714,14 +714,14 @@ class boss_elder_brightleaf : public CreatureScript
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
if (!me->HasAura(SPELL_DRAINED_OF_POWER))
Talk(SAY_ELDER_AGGRO);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim() || me->HasAura(SPELL_DRAINED_OF_POWER))
return;
@@ -764,7 +764,7 @@ class boss_elder_brightleaf : public CreatureScript
DoMeleeAttackIfReady();
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -785,7 +785,7 @@ class boss_elder_brightleaf : public CreatureScript
bool lumberjack;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<boss_elder_brightleafAI>(creature);
}
@@ -802,7 +802,7 @@ class boss_elder_stonebark : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
if (me->HasAura(SPELL_DRAINED_OF_POWER))
@@ -814,13 +814,13 @@ class boss_elder_stonebark : public CreatureScript
lumberjack = false;
}
- void KilledUnit(Unit* who)
+ void KilledUnit(Unit* who) OVERRIDE
{
if (who->GetTypeId() == TYPEID_PLAYER)
Talk(SAY_ELDER_SLAY);
}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
_JustDied();
Talk(SAY_ELDER_DEATH);
@@ -835,14 +835,14 @@ class boss_elder_stonebark : public CreatureScript
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
if (!me->HasAura(SPELL_DRAINED_OF_POWER))
Talk(SAY_ELDER_AGGRO);
}
- void DamageTaken(Unit* who, uint32& damage)
+ void DamageTaken(Unit* who, uint32& damage) OVERRIDE
{
if (who == me)
return;
@@ -855,7 +855,7 @@ class boss_elder_stonebark : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim() || me->HasAura(SPELL_DRAINED_OF_POWER))
return;
@@ -891,7 +891,7 @@ class boss_elder_stonebark : public CreatureScript
DoMeleeAttackIfReady();
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -912,7 +912,7 @@ class boss_elder_stonebark : public CreatureScript
bool lumberjack;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<boss_elder_stonebarkAI>(creature);
}
@@ -929,7 +929,7 @@ class boss_elder_ironbranch : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
if (me->HasAura(SPELL_DRAINED_OF_POWER))
@@ -941,13 +941,13 @@ class boss_elder_ironbranch : public CreatureScript
lumberjack = false;
}
- void KilledUnit(Unit* who)
+ void KilledUnit(Unit* who) OVERRIDE
{
if (who->GetTypeId() == TYPEID_PLAYER)
Talk(SAY_ELDER_SLAY);
}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
_JustDied();
Talk(SAY_ELDER_DEATH);
@@ -962,14 +962,14 @@ class boss_elder_ironbranch : public CreatureScript
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
if (!me->HasAura(SPELL_DRAINED_OF_POWER))
Talk(SAY_ELDER_AGGRO);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim() || me->HasAura(SPELL_DRAINED_OF_POWER))
return;
@@ -1005,7 +1005,7 @@ class boss_elder_ironbranch : public CreatureScript
DoMeleeAttackIfReady();
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -1026,7 +1026,7 @@ class boss_elder_ironbranch : public CreatureScript
bool lumberjack;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<boss_elder_ironbranchAI>(creature);
}
@@ -1044,13 +1044,13 @@ class npc_detonating_lasher : public CreatureScript
me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_TAUNT, true);
}
- void Reset()
+ void Reset() OVERRIDE
{
lashTimer = 5000;
changeTargetTimer = 7500;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -1068,7 +1068,7 @@ class npc_detonating_lasher : public CreatureScript
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100.0f, true))
{
// Switching to other target - modify aggro of new target by 20% from current target's aggro
- me->AddThreat(target, me->getThreatManager().getThreat(me->getVictim(), false) * 1.2f);
+ me->AddThreat(target, me->getThreatManager().getThreat(me->GetVictim(), false) * 1.2f);
me->AI()->AttackStart(target);
}
changeTargetTimer = urand(5000, 10000);
@@ -1084,7 +1084,7 @@ class npc_detonating_lasher : public CreatureScript
uint32 changeTargetTimer;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_detonating_lasherAI(creature);
}
@@ -1104,12 +1104,12 @@ class npc_ancient_water_spirit : public CreatureScript
waveCount = CAST_AI(boss_freya::boss_freyaAI, Freya->AI())->trioWaveCount;
}
- void Reset()
+ void Reset() OVERRIDE
{
tidalWaveTimer = 10000;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -1129,7 +1129,7 @@ class npc_ancient_water_spirit : public CreatureScript
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (Creature* Freya = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_FREYA)))
{
@@ -1144,7 +1144,7 @@ class npc_ancient_water_spirit : public CreatureScript
uint8 waveCount;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_ancient_water_spiritAI(creature);
}
@@ -1164,13 +1164,13 @@ class npc_storm_lasher : public CreatureScript
waveCount = CAST_AI(boss_freya::boss_freyaAI, Freya->AI())->trioWaveCount;
}
- void Reset()
+ void Reset() OVERRIDE
{
lightningLashTimer = 10000;
stormboltTimer = 5000;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -1195,7 +1195,7 @@ class npc_storm_lasher : public CreatureScript
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (Creature* Freya = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_FREYA)))
{
@@ -1211,7 +1211,7 @@ class npc_storm_lasher : public CreatureScript
uint8 waveCount;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_storm_lasherAI(creature);
}
@@ -1231,7 +1231,7 @@ class npc_snaplasher : public CreatureScript
waveCount = CAST_AI(boss_freya::boss_freyaAI, Freya->AI())->trioWaveCount;
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -1242,7 +1242,7 @@ class npc_snaplasher : public CreatureScript
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (Creature* Freya = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_FREYA)))
{
@@ -1256,7 +1256,7 @@ class npc_snaplasher : public CreatureScript
uint8 waveCount;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_snaplasherAI(creature);
}
@@ -1273,7 +1273,7 @@ class npc_ancient_conservator : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
natureFuryTimer = 7500;
healthySporeTimer = 3500;
@@ -1291,12 +1291,12 @@ class npc_ancient_conservator : public CreatureScript
}
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
DoCast(who, SPELL_CONSERVATOR_GRIP, true);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -1327,7 +1327,7 @@ class npc_ancient_conservator : public CreatureScript
uint32 healthySporeTimer;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_ancient_conservatorAI(creature);
}
@@ -1349,7 +1349,7 @@ class npc_sun_beam : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_sun_beamAI(creature);
}
@@ -1373,7 +1373,7 @@ class npc_healthy_spore : public CreatureScript
lifeTimer = urand(22000, 30000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (lifeTimer <= diff)
{
@@ -1389,7 +1389,7 @@ class npc_healthy_spore : public CreatureScript
uint32 lifeTimer;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_healthy_sporeAI(creature);
}
@@ -1412,7 +1412,7 @@ class npc_eonars_gift : public CreatureScript
DoCast(me, SPELL_EONAR_VISUAL, true);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (lifeBindersGiftTimer <= diff)
{
@@ -1429,7 +1429,7 @@ class npc_eonars_gift : public CreatureScript
uint32 lifeBindersGiftTimer;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_eonars_giftAI(creature);
}
@@ -1450,7 +1450,7 @@ class npc_nature_bomb : public CreatureScript
DoCast(SPELL_OBJECT_BOMB);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (bombTimer <= diff)
{
@@ -1471,7 +1471,7 @@ class npc_nature_bomb : public CreatureScript
uint32 bombTimer;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_nature_bombAI(creature);
}
@@ -1495,7 +1495,7 @@ class npc_unstable_sun_beam : public CreatureScript
me->SetReactState(REACT_PASSIVE);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (despawnTimer <= diff)
{
@@ -1506,7 +1506,7 @@ class npc_unstable_sun_beam : public CreatureScript
despawnTimer -= diff;
}
- void SpellHitTarget(Unit* target, SpellInfo const* spell)
+ void SpellHitTarget(Unit* target, SpellInfo const* spell) OVERRIDE
{
if (target && spell->Id == SPELL_UNSTABLE_ENERGY)
{
@@ -1520,7 +1520,7 @@ class npc_unstable_sun_beam : public CreatureScript
uint32 despawnTimer;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_unstable_sun_beamAI(creature);
}
@@ -1561,13 +1561,13 @@ class spell_freya_attuned_to_nature_dose_reduction : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_freya_attuned_to_nature_dose_reduction_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_freya_attuned_to_nature_dose_reduction_SpellScript();
}
@@ -1594,13 +1594,13 @@ class spell_freya_iron_roots : public SpellScriptLoader
GetCaster()->NearTeleportTo(Roots->GetPositionX(), Roots->GetPositionY(), Roots->GetPositionZ(), GetCaster()->GetOrientation());
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHit += SpellEffectFn(spell_freya_iron_roots_SpellScript::HandleSummon, EFFECT_0, SPELL_EFFECT_SUMMON);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_freya_iron_roots_SpellScript();
}
@@ -1611,7 +1611,7 @@ class achievement_getting_back_to_nature : public AchievementCriteriaScript
public:
achievement_getting_back_to_nature() : AchievementCriteriaScript("achievement_getting_back_to_nature") { }
- bool OnCheck(Player* /*player*/, Unit* target)
+ bool OnCheck(Player* /*player*/, Unit* target) OVERRIDE
{
return target && target->GetAI()->GetData(DATA_GETTING_BACK_TO_NATURE) >= 25;
}
@@ -1622,7 +1622,7 @@ class achievement_knock_on_wood : public AchievementCriteriaScript
public:
achievement_knock_on_wood() : AchievementCriteriaScript("achievement_knock_on_wood") { }
- bool OnCheck(Player* /*player*/, Unit* target)
+ bool OnCheck(Player* /*player*/, Unit* target) OVERRIDE
{
return target && target->GetAI()->GetData(DATA_KNOCK_ON_WOOD) >= 1;
}
@@ -1633,7 +1633,7 @@ class achievement_knock_knock_on_wood : public AchievementCriteriaScript
public:
achievement_knock_knock_on_wood() : AchievementCriteriaScript("achievement_knock_knock_on_wood") { }
- bool OnCheck(Player* /*player*/, Unit* target)
+ bool OnCheck(Player* /*player*/, Unit* target) OVERRIDE
{
return target && target->GetAI()->GetData(DATA_KNOCK_ON_WOOD) >= 2;
}
@@ -1644,7 +1644,7 @@ class achievement_knock_knock_knock_on_wood : public AchievementCriteriaScript
public:
achievement_knock_knock_knock_on_wood() : AchievementCriteriaScript("achievement_knock_knock_knock_on_wood") { }
- bool OnCheck(Player* /*player*/, Unit* target)
+ bool OnCheck(Player* /*player*/, Unit* target) OVERRIDE
{
return target && target->GetAI()->GetData(DATA_KNOCK_ON_WOOD) == 3;
}
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp
index 1642cc0483f..38864effe9f 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp
@@ -90,8 +90,11 @@ enum VezaxEvents
EVENT_RANDOM_MOVE = 8,
};
-#define DATA_SMELL_SARONITE 31813188
-#define DATA_SHADOWDODGER 29962997
+enum Misc
+{
+ DATA_SMELL_SARONITE = 31813188,
+ DATA_SHADOWDODGER = 29962997
+};
class boss_general_vezax : public CreatureScript
{
@@ -109,7 +112,7 @@ class boss_general_vezax : public CreatureScript
bool animusDead; // Check against getting a HardMode achievement before killing Saronite Animus
uint8 vaporCount;
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
@@ -119,7 +122,7 @@ class boss_general_vezax : public CreatureScript
vaporCount = 0;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
@@ -135,7 +138,7 @@ class boss_general_vezax : public CreatureScript
events.ScheduleEvent(EVENT_BERSERK, 600000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -204,19 +207,19 @@ class boss_general_vezax : public CreatureScript
DoMeleeAttackIfReady();
}
- void SpellHitTarget(Unit* who, SpellInfo const* spell)
+ void SpellHitTarget(Unit* who, SpellInfo const* spell) OVERRIDE
{
if (who && who->GetTypeId() == TYPEID_PLAYER && spell->Id == SPELL_SHADOW_CRASH_HIT)
shadowDodger = false;
}
- void KilledUnit(Unit* who)
+ void KilledUnit(Unit* who) OVERRIDE
{
if (who->GetTypeId() == TYPEID_PLAYER)
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
Talk(SAY_DEATH);
@@ -231,13 +234,13 @@ class boss_general_vezax : public CreatureScript
// If Shaman has Shamanistic Rage and use it during the fight, it will cast Corrupted Rage on him
Map::PlayerList const& Players = map->GetPlayers();
for (Map::PlayerList::const_iterator itr = Players.begin(); itr != Players.end(); ++itr)
- if (Player* player = itr->getSource())
+ if (Player* player = itr->GetSource())
if (player->HasSpell(SPELL_SHAMANTIC_RAGE))
player->CastSpell(player, SPELL_CORRUPTED_RAGE, false);
}
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -250,7 +253,7 @@ class boss_general_vezax : public CreatureScript
return 0;
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -278,7 +281,7 @@ class boss_general_vezax : public CreatureScript
Map::PlayerList const& Players = map->GetPlayers();
for (Map::PlayerList::const_iterator itr = Players.begin(); itr != Players.end(); ++itr)
{
- if (Player* player = itr->getSource())
+ if (Player* player = itr->GetSource())
{
float distance = player->GetDistance(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ());
if (rangeMin > distance || distance > rangeMax)
@@ -302,7 +305,7 @@ class boss_general_vezax : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<boss_general_vezaxAI>(creature);
}
@@ -320,20 +323,20 @@ class boss_saronite_animus : public CreatureScript
instance = me->GetInstanceScript();
}
- void Reset()
+ void Reset() OVERRIDE
{
DoCast(me, SPELL_VISUAL_SARONITE_ANIMUS);
events.Reset();
events.ScheduleEvent(EVENT_PROFOUND_OF_DARKNESS, 3000);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (Creature* Vezax = me->GetCreature(*me, instance->GetData64(BOSS_VEZAX)))
Vezax->AI()->DoAction(ACTION_ANIMUS_DIE);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -364,7 +367,7 @@ class boss_saronite_animus : public CreatureScript
EventMap events;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_saronite_animusAI(creature);
}
@@ -386,13 +389,13 @@ class npc_saronite_vapors : public CreatureScript
me->SetReactState(REACT_PASSIVE);
}
- void Reset()
+ void Reset() OVERRIDE
{
events.Reset();
events.ScheduleEvent(EVENT_RANDOM_MOVE, urand(5000, 7500));
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
events.Update(diff);
@@ -410,7 +413,7 @@ class npc_saronite_vapors : public CreatureScript
}
}
- void DamageTaken(Unit* /*who*/, uint32& damage)
+ void DamageTaken(Unit* /*who*/, uint32& damage) OVERRIDE
{
// This can't be on JustDied. In 63322 dummy handler caster needs to be this NPC
// if caster == target then damage mods will increase the damage taken
@@ -434,7 +437,7 @@ class npc_saronite_vapors : public CreatureScript
EventMap events;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_saronite_vaporsAI(creature);
}
@@ -455,13 +458,13 @@ class spell_mark_of_the_faceless : public SpellScriptLoader
caster->CastCustomSpell(SPELL_MARK_OF_THE_FACELESS_DAMAGE, SPELLVALUE_BASE_POINT1, aurEff->GetAmount(), GetTarget(), true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_mark_of_the_faceless_AuraScript::HandleEffectPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_mark_of_the_faceless_AuraScript();
}
@@ -476,7 +479,7 @@ class spell_general_vezax_saronite_vapors : public SpellScriptLoader
{
PrepareAuraScript(spell_general_vezax_saronite_vapors_AuraScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_SARONITE_VAPORS_ENERGIZE) || !sSpellMgr->GetSpellInfo(SPELL_SARONITE_VAPORS_DAMAGE))
return false;
@@ -494,13 +497,13 @@ class spell_general_vezax_saronite_vapors : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectApply += AuraEffectApplyFn(spell_general_vezax_saronite_vapors_AuraScript::HandleEffectApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_general_vezax_saronite_vapors_AuraScript();
}
@@ -513,7 +516,7 @@ class achievement_shadowdodger : public AchievementCriteriaScript
{
}
- bool OnCheck(Player* /*player*/, Unit* target)
+ bool OnCheck(Player* /*player*/, Unit* target) OVERRIDE
{
if (!target)
return false;
@@ -533,7 +536,7 @@ class achievement_smell_saronite : public AchievementCriteriaScript
{
}
- bool OnCheck(Player* /*player*/, Unit* target)
+ bool OnCheck(Player* /*player*/, Unit* target) OVERRIDE
{
if (!target)
return false;
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp
index 0f99ea9cc2d..2fb165b935e 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp
@@ -142,7 +142,11 @@ enum HodirActions
#define ACHIEVEMENT_THIS_CACHE_WAS_RARE RAID_MODE<uint8>(3182, 3184)
#define ACHIEVEMENT_COOLEST_FRIENDS RAID_MODE<uint8>(2963, 2965)
#define FRIENDS_COUNT RAID_MODE<uint8>(4, 8)
-#define DATA_GETTING_COLD_IN_HERE 29672968 // 2967, 2968 are achievement IDs
+
+enum Misc
+{
+ DATA_GETTING_COLD_IN_HERE = 29672968 // 2967, 2968 are achievement IDs
+};
Position const SummonPositions[8] =
{
@@ -187,24 +191,24 @@ class npc_flash_freeze : public CreatureScript
uint64 targetGUID;
uint32 checkDespawnTimer;
- void Reset()
+ void Reset() OVERRIDE
{
targetGUID = 0;
checkDespawnTimer = 1000;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
- if (!UpdateVictim() || me->getVictim()->HasAura(SPELL_BLOCK_OF_ICE) || me->getVictim()->HasAura(SPELL_FLASH_FREEZE_HELPER))
+ if (!UpdateVictim() || me->GetVictim()->HasAura(SPELL_BLOCK_OF_ICE) || me->GetVictim()->HasAura(SPELL_FLASH_FREEZE_HELPER))
return;
- if (me->getVictim()->GetGUID() != targetGUID || instance->GetBossState(BOSS_HODIR) != IN_PROGRESS)
+ if (me->GetVictim()->GetGUID() != targetGUID || instance->GetBossState(BOSS_HODIR) != IN_PROGRESS)
me->DespawnOrUnsummon();
if (checkDespawnTimer <= diff)
{
if (Unit* target = ObjectAccessor::GetUnit(*me, targetGUID))
- if (!target->isAlive())
+ if (!target->IsAlive())
me->DisappearAndDie();
checkDespawnTimer = 2500;
}
@@ -212,7 +216,7 @@ class npc_flash_freeze : public CreatureScript
checkDespawnTimer -= diff;
}
- void IsSummonedBy(Unit* summoner)
+ void IsSummonedBy(Unit* summoner) OVERRIDE
{
targetGUID = summoner->GetGUID();
me->SetInCombatWith(summoner);
@@ -229,7 +233,7 @@ class npc_flash_freeze : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_flash_freezeAI(creature);
}
@@ -254,7 +258,7 @@ class npc_ice_block : public CreatureScript
uint64 targetGUID;
- void IsSummonedBy(Unit* summoner)
+ void IsSummonedBy(Unit* summoner) OVERRIDE
{
targetGUID = summoner->GetGUID();
summoner->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE | UNIT_FLAG_STUNNED | UNIT_FLAG_PACIFIED);
@@ -269,7 +273,7 @@ class npc_ice_block : public CreatureScript
}
}
- void DamageTaken(Unit* who, uint32& /*damage*/)
+ void DamageTaken(Unit* who, uint32& /*damage*/) OVERRIDE
{
if (Creature* Helper = ObjectAccessor::GetCreature(*me, targetGUID))
{
@@ -277,7 +281,7 @@ class npc_ice_block : public CreatureScript
if (Creature* Hodir = ObjectAccessor::GetCreature(*me, instance ? instance->GetData64(BOSS_HODIR) : 0))
{
- if (!Hodir->isInCombat())
+ if (!Hodir->IsInCombat())
{
Hodir->SetReactState(REACT_AGGRESSIVE);
Hodir->AI()->DoZoneInCombat();
@@ -290,7 +294,7 @@ class npc_ice_block : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_ice_blockAI(creature);
}
@@ -315,7 +319,7 @@ class boss_hodir : public CreatureScript
bool iHaveTheCoolestFriends;
bool iCouldSayThatThisCacheWasRare;
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
me->SetReactState(REACT_PASSIVE);
@@ -325,7 +329,7 @@ class boss_hodir : public CreatureScript
FrozenHelper->CastSpell(FrozenHelper, SPELL_SUMMON_FLASH_FREEZE_HELPER, true);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
Talk(SAY_AGGRO);
@@ -345,13 +349,13 @@ class boss_hodir : public CreatureScript
events.ScheduleEvent(EVENT_BERSERK, 480000);
}
- void KilledUnit(Unit* who)
+ void KilledUnit(Unit* who) OVERRIDE
{
if (who->GetTypeId() == TYPEID_PLAYER)
Talk(SAY_SLAY);
}
- void DamageTaken(Unit* /*who*/, uint32& damage)
+ void DamageTaken(Unit* /*who*/, uint32& damage) OVERRIDE
{
if (damage >= me->GetHealth())
{
@@ -381,7 +385,7 @@ class boss_hodir : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -460,7 +464,7 @@ class boss_hodir : public CreatureScript
DoMeleeAttackIfReady();
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -484,7 +488,7 @@ class boss_hodir : public CreatureScript
for (std::list<Unit*>::iterator itr = TargetList.begin(); itr != TargetList.end(); ++itr)
{
Unit* target = *itr;
- if (!target || !target->isAlive() || GetClosestCreatureWithEntry(target, NPC_SNOWPACKED_ICICLE, 5.0f))
+ if (!target || !target->IsAlive() || GetClosestCreatureWithEntry(target, NPC_SNOWPACKED_ICICLE, 5.0f))
continue;
if (target->HasAura(SPELL_FLASH_FREEZE_HELPER) || target->HasAura(SPELL_BLOCK_OF_ICE))
@@ -498,7 +502,7 @@ class boss_hodir : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<boss_hodirAI>(creature);
};
@@ -520,12 +524,12 @@ class npc_icicle : public CreatureScript
uint32 icicleTimer;
- void Reset()
+ void Reset() OVERRIDE
{
icicleTimer = 2500;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (icicleTimer <= diff)
{
@@ -546,7 +550,7 @@ class npc_icicle : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<npc_icicleAI>(creature);
};
@@ -568,12 +572,12 @@ class npc_snowpacked_icicle : public CreatureScript
uint32 despawnTimer;
- void Reset()
+ void Reset() OVERRIDE
{
despawnTimer = 12000;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (despawnTimer <= diff)
{
@@ -586,7 +590,7 @@ class npc_snowpacked_icicle : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<npc_snowpacked_icicleAI>(creature);
};
@@ -604,14 +608,14 @@ class npc_hodir_priest : public CreatureScript
instance = me->GetInstanceScript();
}
- void Reset()
+ void Reset() OVERRIDE
{
events.Reset();
events.ScheduleEvent(EVENT_HEAL, urand(4000, 8000));
events.ScheduleEvent(EVENT_DISPEL_MAGIC, urand(15000, 20000));
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED))
return;
@@ -652,7 +656,7 @@ class npc_hodir_priest : public CreatureScript
DoSpellAttackIfReady(SPELL_SMITE);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (Creature* Hodir = ObjectAccessor::GetCreature(*me, instance ? instance->GetData64(BOSS_HODIR) : 0))
Hodir->AI()->DoAction(ACTION_I_HAVE_THE_COOLEST_FRIENDS);
@@ -663,7 +667,7 @@ class npc_hodir_priest : public CreatureScript
EventMap events;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<npc_hodir_priestAI>(creature);
};
@@ -681,13 +685,13 @@ class npc_hodir_shaman : public CreatureScript
instance = me->GetInstanceScript();
}
- void Reset()
+ void Reset() OVERRIDE
{
events.Reset();
events.ScheduleEvent(EVENT_STORM_CLOUD, urand(10000, 12500));
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED))
return;
@@ -714,7 +718,7 @@ class npc_hodir_shaman : public CreatureScript
DoSpellAttackIfReady(SPELL_LAVA_BURST);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (Creature* Hodir = ObjectAccessor::GetCreature(*me, instance ? instance->GetData64(BOSS_HODIR) : 0))
Hodir->AI()->DoAction(ACTION_I_HAVE_THE_COOLEST_FRIENDS);
@@ -725,7 +729,7 @@ class npc_hodir_shaman : public CreatureScript
EventMap events;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<npc_hodir_shamanAI>(creature);
};
@@ -743,13 +747,13 @@ class npc_hodir_druid : public CreatureScript
instance = me->GetInstanceScript();
}
- void Reset()
+ void Reset() OVERRIDE
{
events.Reset();
events.ScheduleEvent(EVENT_STARLIGHT, urand(15000, 17500));
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED))
return;
@@ -775,7 +779,7 @@ class npc_hodir_druid : public CreatureScript
DoSpellAttackIfReady(SPELL_WRATH);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (Creature* Hodir = ObjectAccessor::GetCreature(*me, instance ? instance->GetData64(BOSS_HODIR) : 0))
Hodir->AI()->DoAction(ACTION_I_HAVE_THE_COOLEST_FRIENDS);
@@ -786,7 +790,7 @@ class npc_hodir_druid : public CreatureScript
EventMap events;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<npc_hodir_druidAI>(creature);
};
@@ -804,7 +808,7 @@ class npc_hodir_mage : public CreatureScript
instance = me->GetInstanceScript();
}
- void Reset()
+ void Reset() OVERRIDE
{
events.Reset();
summons.DespawnAll();
@@ -812,19 +816,19 @@ class npc_hodir_mage : public CreatureScript
events.ScheduleEvent(EVENT_MELT_ICE, 5000);
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
if (summoned->GetEntry() == NPC_TOASTY_FIRE)
summons.Summon(summoned);
}
- void SummonedCreatureDespawn(Creature* summoned)
+ void SummonedCreatureDespawn(Creature* summoned) OVERRIDE
{
if (summoned->GetEntry() == NPC_TOASTY_FIRE)
summons.Despawn(summoned);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED))
return;
@@ -855,7 +859,7 @@ class npc_hodir_mage : public CreatureScript
DoSpellAttackIfReady(SPELL_FIREBALL);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (Creature* Hodir = ObjectAccessor::GetCreature(*me, instance ? instance->GetData64(BOSS_HODIR) : 0))
Hodir->AI()->DoAction(ACTION_I_HAVE_THE_COOLEST_FRIENDS);
@@ -867,7 +871,7 @@ class npc_hodir_mage : public CreatureScript
SummonList summons;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<npc_hodir_mageAI>(creature);
};
@@ -885,12 +889,12 @@ class npc_toasty_fire : public CreatureScript
me->SetDisplayId(me->GetCreatureTemplate()->Modelid2);
}
- void Reset()
+ void Reset() OVERRIDE
{
DoCast(me, SPELL_SINGED, true);
}
- void SpellHit(Unit* /*who*/, const SpellInfo* spell)
+ void SpellHit(Unit* /*who*/, const SpellInfo* spell) OVERRIDE
{
if (spell->Id == SPELL_BLOCK_OF_ICE || spell->Id == SPELL_ICE_SHARD || spell->Id == SPELL_ICE_SHARD_HIT)
{
@@ -901,7 +905,7 @@ class npc_toasty_fire : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<npc_toasty_fireAI>(creature);
};
@@ -924,7 +928,7 @@ class spell_biting_cold : public SpellScriptLoader
for (TargetList::iterator itr = listOfTargets.begin(); itr != listOfTargets.end(); ++itr)
{
if (itr->first != target->GetGUID())
- return;
+ continue;
if (itr->second >= 4)
{
@@ -947,7 +951,7 @@ class spell_biting_cold : public SpellScriptLoader
listOfTargets.push_back(std::make_pair(target->GetGUID(), 1));
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_biting_cold_AuraScript::HandleEffectPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
}
@@ -957,7 +961,7 @@ class spell_biting_cold : public SpellScriptLoader
TargetList listOfTargets;
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_biting_cold_AuraScript();
}
@@ -985,13 +989,13 @@ public:
caster->RemoveAuraFromStack(SPELL_BITING_COLD_TRIGGERED);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_biting_cold_dot_AuraScript::HandleEffectPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_biting_cold_dot_AuraScript();
}
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp
index b040a64c75a..45c35741c3c 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp
@@ -121,7 +121,7 @@ class boss_ignis : public CreatureScript
ASSERT(_vehicle);
}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
if (_vehicle)
@@ -130,7 +130,7 @@ class boss_ignis : public CreatureScript
instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEVEMENT_IGNIS_START_EVENT);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
Talk(SAY_AGGRO);
@@ -146,13 +146,13 @@ class boss_ignis : public CreatureScript
instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEVEMENT_IGNIS_START_EVENT);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
Talk(SAY_DEATH);
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
if (type == DATA_SHATTERED)
return _shattered ? 1 : 0;
@@ -160,13 +160,13 @@ class boss_ignis : public CreatureScript
return 0;
}
- void KilledUnit(Unit* who)
+ void KilledUnit(Unit* who) OVERRIDE
{
if (who->GetTypeId() == TYPEID_PLAYER)
Talk(SAY_SLAY);
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
if (summon->GetEntry() == NPC_IRON_CONSTRUCT)
{
@@ -175,12 +175,12 @@ class boss_ignis : public CreatureScript
summon->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_PACIFIED | UNIT_FLAG_STUNNED | UNIT_FLAG_DISABLE_MOVE);
}
- summon->AI()->AttackStart(me->getVictim());
+ summon->AI()->AttackStart(me->GetVictim());
summon->AI()->DoZoneInCombat();
summons.Summon(summon);
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
if (action != ACTION_REMOVE_BUFF)
return;
@@ -193,7 +193,7 @@ class boss_ignis : public CreatureScript
_firstConstructKill = secondKill;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -251,7 +251,7 @@ class boss_ignis : public CreatureScript
break;
case EVENT_SCORCH:
Talk(SAY_SCORCH);
- if (Unit* target = me->getVictim())
+ if (Unit* target = me->GetVictim())
me->SummonCreature(NPC_GROUND_SCORCH, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 45000);
DoCast(SPELL_SCORCH);
events.ScheduleEvent(EVENT_SCORCH, 25000);
@@ -283,7 +283,7 @@ class boss_ignis : public CreatureScript
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<boss_ignis_AI>(creature);
}
@@ -301,12 +301,12 @@ class npc_iron_construct : public CreatureScript
creature->SetReactState(REACT_PASSIVE);
}
- void Reset()
+ void Reset() OVERRIDE
{
_brittled = false;
}
- void DamageTaken(Unit* /*attacker*/, uint32& damage)
+ void DamageTaken(Unit* /*attacker*/, uint32& damage) OVERRIDE
{
if (me->HasAura(SPELL_BRITTLE) && damage >= 5000)
{
@@ -319,7 +319,7 @@ class npc_iron_construct : public CreatureScript
}
}
- void UpdateAI(uint32 /*uiDiff*/)
+ void UpdateAI(uint32 /*uiDiff*/) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -350,7 +350,7 @@ class npc_iron_construct : public CreatureScript
bool _brittled;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<npc_iron_constructAI>(creature);
}
@@ -369,7 +369,8 @@ class npc_scorch_ground : public CreatureScript
creature->SetDisplayId(16925); //model 2 in db cannot overwrite wdb fields
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (!_heat)
{
@@ -384,7 +385,7 @@ class npc_scorch_ground : public CreatureScript
}
}
- void Reset()
+ void Reset() OVERRIDE
{
_heat = false;
DoCast(me, SPELL_GROUND);
@@ -392,7 +393,7 @@ class npc_scorch_ground : public CreatureScript
_heatTimer = 0;
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (_heat)
{
@@ -416,7 +417,7 @@ class npc_scorch_ground : public CreatureScript
bool _heat;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<npc_scorch_groundAI>(creature);
}
@@ -431,11 +432,10 @@ class spell_ignis_slag_pot : public SpellScriptLoader
{
PrepareAuraScript(spell_ignis_slag_pot_AuraScript);
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
- if (!sSpellMgr->GetSpellInfo(SPELL_SLAG_POT_DAMAGE))
- return false;
- if (!sSpellMgr->GetSpellInfo(SPELL_SLAG_IMBUED))
+ if (!sSpellMgr->GetSpellInfo(SPELL_SLAG_POT_DAMAGE)
+ || !sSpellMgr->GetSpellInfo(SPELL_SLAG_IMBUED))
return false;
return true;
}
@@ -452,18 +452,18 @@ class spell_ignis_slag_pot : public SpellScriptLoader
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
- if (GetTarget()->isAlive())
+ if (GetTarget()->IsAlive())
GetTarget()->CastSpell(GetTarget(), SPELL_SLAG_IMBUED, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_ignis_slag_pot_AuraScript::HandleEffectPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
AfterEffectRemove += AuraEffectRemoveFn(spell_ignis_slag_pot_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_ignis_slag_pot_AuraScript();
}
@@ -474,7 +474,7 @@ class achievement_ignis_shattered : public AchievementCriteriaScript
public:
achievement_ignis_shattered() : AchievementCriteriaScript("achievement_ignis_shattered") { }
- bool OnCheck(Player* /*source*/, Unit* target)
+ bool OnCheck(Player* /*source*/, Unit* target) OVERRIDE
{
if (target && target->IsAIEnabled)
return target->GetAI()->GetData(DATA_SHATTERED);
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp
index b558508f78a..dfeeebaae99 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp
@@ -117,7 +117,7 @@ class boss_kologarn : public CreatureScript
bool left, right;
uint64 eyebeamTarget;
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
@@ -135,14 +135,14 @@ class boss_kologarn : public CreatureScript
_EnterCombat();
}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
eyebeamTarget = 0;
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
DoCast(SPELL_KOLOGARN_PACIFY);
@@ -152,13 +152,13 @@ class boss_kologarn : public CreatureScript
_JustDied();
}
- void KilledUnit(Unit* who)
+ void KilledUnit(Unit* who) OVERRIDE
{
if (who->GetTypeId() == TYPEID_PLAYER)
Talk(SAY_SLAY);
}
- void PassengerBoarded(Unit* who, int8 /*seatId*/, bool apply)
+ void PassengerBoarded(Unit* who, int8 /*seatId*/, bool apply) OVERRIDE
{
bool isEncounterInProgress = instance->GetBossState(BOSS_KOLOGARN) == IN_PROGRESS;
if (who->GetEntry() == NPC_LEFT_ARM)
@@ -208,7 +208,7 @@ class boss_kologarn : public CreatureScript
}
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
switch (summon->GetEntry())
{
@@ -242,7 +242,7 @@ class boss_kologarn : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -257,7 +257,7 @@ class boss_kologarn : public CreatureScript
switch (eventId)
{
case EVENT_MELEE_CHECK:
- if (!me->IsWithinMeleeRange(me->getVictim()))
+ if (!me->IsWithinMeleeRange(me->GetVictim()))
DoCast(SPELL_PETRIFY_BREATH);
events.ScheduleEvent(EVENT_MELEE_CHECK, 1 * IN_MILLISECONDS);
break;
@@ -318,7 +318,7 @@ class boss_kologarn : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<boss_kologarnAI>(creature);
}
@@ -345,13 +345,13 @@ class spell_ulduar_rubble_summon : public SpellScriptLoader
caster->CastSpell(caster, spellId, true, NULL, NULL, originalCaster);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_ulduar_rubble_summonSpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_ulduar_rubble_summonSpellScript();
}
@@ -387,7 +387,7 @@ class spell_ulduar_stone_grip_cast_target : public SpellScriptLoader
{
PrepareSpellScript(spell_ulduar_stone_grip_cast_target_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
if (GetCaster()->GetTypeId() != TYPEID_UNIT)
return false;
@@ -397,7 +397,7 @@ class spell_ulduar_stone_grip_cast_target : public SpellScriptLoader
void FilterTargetsInitial(std::list<WorldObject*>& unitList)
{
// Remove "main tank" and non-player targets
- unitList.remove_if(StoneGripTargetSelector(GetCaster()->ToCreature(), GetCaster()->getVictim()));
+ unitList.remove_if(StoneGripTargetSelector(GetCaster()->ToCreature(), GetCaster()->GetVictim()));
// Maximum affected targets per difficulty mode
uint32 maxTargets = 1;
if (GetSpellInfo()->Id == 63981)
@@ -420,7 +420,7 @@ class spell_ulduar_stone_grip_cast_target : public SpellScriptLoader
unitList = _unitList;
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_ulduar_stone_grip_cast_target_SpellScript::FilterTargetsInitial, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_ulduar_stone_grip_cast_target_SpellScript::FillTargetsSubsequential, EFFECT_1, TARGET_UNIT_SRC_AREA_ENEMY);
@@ -432,7 +432,7 @@ class spell_ulduar_stone_grip_cast_target : public SpellScriptLoader
std::list<WorldObject*> _unitList;
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_ulduar_stone_grip_cast_target_SpellScript();
}
@@ -466,13 +466,13 @@ class spell_ulduar_cancel_stone_grip : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_ulduar_cancel_stone_gripSpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_ulduar_cancel_stone_gripSpellScript();
}
@@ -504,13 +504,13 @@ class spell_ulduar_squeezed_lifeless : public SpellScriptLoader
GetHitPlayer()->UpdateObjectVisibility(false);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_ulduar_squeezed_lifeless_SpellScript::HandleInstaKill, EFFECT_1, SPELL_EFFECT_INSTAKILL);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_ulduar_squeezed_lifeless_SpellScript();
}
@@ -541,13 +541,13 @@ class spell_ulduar_stone_grip_absorb : public SpellScriptLoader
rubbleStalker->CastSpell(rubbleStalker, SPELL_STONE_GRIP_CANCEL, true);
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectRemove += AuraEffectRemoveFn(spell_ulduar_stone_grip_absorb_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_SCHOOL_ABSORB, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_ulduar_stone_grip_absorb_AuraScript();
}
@@ -594,14 +594,14 @@ class spell_ulduar_stone_grip : public SpellScriptLoader
caster->Relocate(oldPos);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectRemove += AuraEffectRemoveFn(spell_ulduar_stone_grip_AuraScript::OnRemoveVehicle, EFFECT_0, SPELL_AURA_CONTROL_VEHICLE, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_ulduar_stone_grip_AuraScript::OnRemoveStun, EFFECT_2, SPELL_AURA_MOD_STUN, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_ulduar_stone_grip_AuraScript();
}
@@ -621,13 +621,13 @@ class spell_kologarn_stone_shout : public SpellScriptLoader
unitList.remove_if(PlayerOrPetCheck());
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_kologarn_stone_shout_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_kologarn_stone_shout_SpellScript();
}
@@ -648,14 +648,14 @@ class spell_kologarn_summon_focused_eyebeam : public SpellScriptLoader
GetCaster()->CastSpell(GetCaster(), GetSpellInfo()->Effects[effIndex].TriggerSpell, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_kologarn_summon_focused_eyebeam_SpellScript::HandleForceCast, EFFECT_0, SPELL_EFFECT_FORCE_CAST);
OnEffectHitTarget += SpellEffectFn(spell_kologarn_summon_focused_eyebeam_SpellScript::HandleForceCast, EFFECT_1, SPELL_EFFECT_FORCE_CAST);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_kologarn_summon_focused_eyebeam_SpellScript();
}
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp
index fe7f72e3766..56fd4b310ee 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp
@@ -97,13 +97,13 @@ class spell_ulduar_proximity_mines : public SpellScriptLoader
GetCaster()->CastSpell(GetCaster(), SPELL_TRIGGER_MISSILE, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_ulduar_proximity_minesSpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_ulduar_proximity_minesSpellScript();
}
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp
index ac46fbc1227..fb835b5a4d9 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp
@@ -137,8 +137,12 @@ enum Events
#define GROUND_Z 391.517f
#define GOSSIP_ITEM_1 "Activate Harpoons!"
-#define DATA_QUICK_SHAVE 29192921 // 2919, 2921 are achievement IDs
-#define DATA_IRON_DWARF_MEDIUM_RARE 29232924
+
+enum Misc
+{
+ DATA_QUICK_SHAVE = 29192921, // 2919, 2921 are achievement IDs
+ DATA_IRON_DWARF_MEDIUM_RARE = 29232924
+};
const Position PosEngRepair[4] =
{
@@ -188,13 +192,13 @@ class boss_razorscale_controller : public CreatureScript
me->SetDisplayId(me->GetCreatureTemplate()->Modelid2);
}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
me->SetReactState(REACT_PASSIVE);
}
- void SpellHit(Unit* /*caster*/, SpellInfo const* spell)
+ void SpellHit(Unit* /*caster*/, SpellInfo const* spell) OVERRIDE
{
switch (spell->Id)
{
@@ -219,12 +223,12 @@ class boss_razorscale_controller : public CreatureScript
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
if (instance->GetBossState(BOSS_RAZORSCALE) != IN_PROGRESS)
return;
@@ -243,7 +247,7 @@ class boss_razorscale_controller : public CreatureScript
}
}
- void UpdateAI(uint32 Diff)
+ void UpdateAI(uint32 Diff) OVERRIDE
{
events.Update(Diff);
@@ -294,7 +298,7 @@ class boss_razorscale_controller : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_razorscale_controllerAI(creature);
}
@@ -305,7 +309,7 @@ class go_razorscale_harpoon : public GameObjectScript
public:
go_razorscale_harpoon() : GameObjectScript("go_razorscale_harpoon") {}
- bool OnGossipHello(Player* /*player*/, GameObject* go)
+ bool OnGossipHello(Player* /*player*/, GameObject* go) OVERRIDE
{
InstanceScript* instance = go->GetInstanceScript();
if (ObjectAccessor::GetCreature(*go, instance ? instance->GetData64(BOSS_RAZORSCALE) : 0))
@@ -335,7 +339,7 @@ class boss_razorscale : public CreatureScript
bool PermaGround;
bool Enraged;
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
me->SetCanFly(true);
@@ -347,7 +351,7 @@ class boss_razorscale : public CreatureScript
commander->AI()->DoAction(ACTION_COMMANDER_RESET);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
if (Creature* controller = ObjectAccessor::GetCreature(*me, instance ? instance->GetData64(DATA_RAZORSCALE_CONTROL) : 0))
@@ -362,20 +366,20 @@ class boss_razorscale : public CreatureScript
events.ScheduleEvent(EVENT_FLIGHT, 0, 0, PHASE_GROUND);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
if (Creature* controller = ObjectAccessor::GetCreature(*me, instance ? instance->GetData64(DATA_RAZORSCALE_CONTROL) : 0))
controller->AI()->Reset();
}
- void SpellHit(Unit* /*caster*/, SpellInfo const* spell)
+ void SpellHit(Unit* /*caster*/, SpellInfo const* spell) OVERRIDE
{
if (spell->Id == SPELL_HARPOON_TRIGGER)
++HarpoonCounter;
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type == EFFECT_MOTION_TYPE && id == 1)
{
@@ -385,7 +389,7 @@ class boss_razorscale : public CreatureScript
}
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
if (type == DATA_QUICK_SHAVE)
if (FlyCount <= 2)
@@ -394,7 +398,7 @@ class boss_razorscale : public CreatureScript
return 0;
}
- void UpdateAI(uint32 Diff)
+ void UpdateAI(uint32 Diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -494,7 +498,7 @@ class boss_razorscale : public CreatureScript
events.CancelEvent(EVENT_BUFFET);
return;
case EVENT_FUSE:
- DoCast(me->getVictim(), SPELL_FUSEARMOR);
+ DoCastVictim(SPELL_FUSEARMOR);
events.ScheduleEvent(EVENT_FUSE, 10000, 0, PHASE_PERMAGROUND);
return;
}
@@ -562,7 +566,7 @@ class boss_razorscale : public CreatureScript
}
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -575,7 +579,7 @@ class boss_razorscale : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<boss_razorscaleAI>(creature);
}
@@ -603,7 +607,7 @@ class npc_expedition_commander : public CreatureScript
Creature* Engineer[4];
Creature* Defender[4];
- void Reset()
+ void Reset() OVERRIDE
{
AttackStartTimer = 0;
Phase = 0;
@@ -611,7 +615,8 @@ class npc_expedition_commander : public CreatureScript
summons.clear();
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (!Greet && me->IsWithinDistInMap(who, 10.0f) && who->GetTypeId() == TYPEID_PLAYER)
{
@@ -620,12 +625,12 @@ class npc_expedition_commander : public CreatureScript
}
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
summons.push_back(summoned->GetGUID());
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -639,7 +644,7 @@ class npc_expedition_commander : public CreatureScript
}
}
- void UpdateAI(uint32 Diff)
+ void UpdateAI(uint32 Diff) OVERRIDE
{
if (AttackStartTimer <= Diff)
{
@@ -699,7 +704,7 @@ class npc_expedition_commander : public CreatureScript
}
};
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -712,7 +717,7 @@ class npc_expedition_commander : public CreatureScript
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
InstanceScript* instance = creature->GetInstanceScript();
if (instance && instance->GetBossState(BOSS_RAZORSCALE) == NOT_STARTED)
@@ -728,7 +733,7 @@ class npc_expedition_commander : public CreatureScript
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_expedition_commanderAI(creature);
}
@@ -753,7 +758,7 @@ class npc_mole_machine_trigger : public CreatureScript
bool GobSummoned;
bool NpcSummoned;
- void Reset()
+ void Reset() OVERRIDE
{
SummonGobTimer = 2000;
SummonNpcTimer = 6000;
@@ -762,7 +767,7 @@ class npc_mole_machine_trigger : public CreatureScript
NpcSummoned = false;
}
- void UpdateAI(uint32 Diff)
+ void UpdateAI(uint32 Diff) OVERRIDE
{
if (!GobSummoned && SummonGobTimer <= Diff)
{
@@ -802,13 +807,13 @@ class npc_mole_machine_trigger : public CreatureScript
DissapearTimer -= Diff;
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
summoned->AI()->DoZoneInCombat();
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_mole_machine_triggerAI(creature);
}
@@ -827,13 +832,13 @@ class npc_devouring_flame : public CreatureScript
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_PACIFIED);
}
- void Reset()
+ void Reset() OVERRIDE
{
DoCast(SPELL_FLAME_GROUND);
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_devouring_flameAI(creature);
}
@@ -851,20 +856,20 @@ class npc_darkrune_watcher : public CreatureScript
uint32 ChainTimer;
uint32 LightTimer;
- void Reset()
+ void Reset() OVERRIDE
{
ChainTimer = urand(10000, 15000);
LightTimer = urand(1000, 3000);
}
- void UpdateAI(uint32 Diff)
+ void UpdateAI(uint32 Diff) OVERRIDE
{
if (!UpdateVictim())
return;
if (ChainTimer <= Diff)
{
- DoCast(me->getVictim(), SPELL_CHAIN_LIGHTNING);
+ DoCastVictim(SPELL_CHAIN_LIGHTNING);
ChainTimer = urand(10000, 15000);
}
else
@@ -882,7 +887,7 @@ class npc_darkrune_watcher : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_darkrune_watcherAI(creature);
}
@@ -899,32 +904,32 @@ class npc_darkrune_guardian : public CreatureScript
uint32 StormTimer;
- void Reset()
+ void Reset() OVERRIDE
{
StormTimer = urand(3000, 6000);
killedByBreath = false;
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
return type == DATA_IRON_DWARF_MEDIUM_RARE ? killedByBreath : 0;
}
- void SetData(uint32 type, uint32 value)
+ void SetData(uint32 type, uint32 value) OVERRIDE
{
if (type == DATA_IRON_DWARF_MEDIUM_RARE)
killedByBreath = value;
}
- void UpdateAI(uint32 Diff)
+ void UpdateAI(uint32 Diff) OVERRIDE
{
if (!UpdateVictim())
return;
if (StormTimer <= Diff)
{
- DoCast(me->getVictim(), SPELL_STORMSTRIKE);
+ DoCastVictim(SPELL_STORMSTRIKE);
StormTimer = urand(4000, 8000);
}
else
@@ -937,7 +942,7 @@ class npc_darkrune_guardian : public CreatureScript
bool killedByBreath;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_darkrune_guardianAI(creature);
}
@@ -956,21 +961,21 @@ class npc_darkrune_sentinel : public CreatureScript
uint32 WhirlTimer;
uint32 ShoutTimer;
- void Reset()
+ void Reset() OVERRIDE
{
HeroicTimer = urand(4000, 8000);
WhirlTimer = urand(20000, 25000);
ShoutTimer = urand(15000, 30000);
}
- void UpdateAI(uint32 Diff)
+ void UpdateAI(uint32 Diff) OVERRIDE
{
if (!UpdateVictim())
return;
if (HeroicTimer <= Diff)
{
- DoCast(me->getVictim(), SPELL_HEROIC_STRIKE);
+ DoCastVictim(SPELL_HEROIC_STRIKE);
HeroicTimer = urand(4000, 6000);
}
else
@@ -978,7 +983,7 @@ class npc_darkrune_sentinel : public CreatureScript
if (WhirlTimer <= Diff)
{
- DoCast(me->getVictim(), SPELL_WHIRLWIND);
+ DoCastVictim(SPELL_WHIRLWIND);
WhirlTimer = urand(20000, 25000);
}
else
@@ -996,7 +1001,7 @@ class npc_darkrune_sentinel : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_darkrune_sentinelAI(creature);
}
@@ -1023,13 +1028,13 @@ class spell_razorscale_devouring_flame : public SpellScriptLoader
caster->SummonCreature(entry, summonLocation->GetPositionX(), summonLocation->GetPositionY(), GROUND_Z, 0.0f, TEMPSUMMON_TIMED_DESPAWN, 20000);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHit += SpellEffectFn(spell_razorscale_devouring_flame_SpellScript::HandleSummon, EFFECT_0, SPELL_EFFECT_SUMMON);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_razorscale_devouring_flame_SpellScript();
}
@@ -1054,13 +1059,13 @@ class spell_razorscale_flame_breath : public SpellScriptLoader
target->AI()->SetData(DATA_IRON_DWARF_MEDIUM_RARE, 1);
}
- void Register()
+ void Register() OVERRIDE
{
OnHit += SpellHitFn(spell_razorscale_flame_breath_SpellScript::CheckDamage);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_razorscale_flame_breath_SpellScript();
}
@@ -1073,7 +1078,7 @@ class achievement_iron_dwarf_medium_rare : public AchievementCriteriaScript
{
}
- bool OnCheck(Player* /*player*/, Unit* target)
+ bool OnCheck(Player* /*player*/, Unit* target) OVERRIDE
{
return target && target->IsAIEnabled && target->GetAI()->GetData(DATA_IRON_DWARF_MEDIUM_RARE);
}
@@ -1084,7 +1089,7 @@ class achievement_quick_shave : public AchievementCriteriaScript
public:
achievement_quick_shave() : AchievementCriteriaScript("achievement_quick_shave") { }
- bool OnCheck(Player* /*source*/, Unit* target)
+ bool OnCheck(Player* /*source*/, Unit* target) OVERRIDE
{
if (target)
if (Creature* razorscale = target->ToCreature())
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp
index 89ce6ab2733..c14cab88d76 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp
@@ -49,36 +49,36 @@ class boss_thorim : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
Talk(SAY_WIPE);
_EnterEvadeMode();
}
- void KilledUnit(Unit* who)
+ void KilledUnit(Unit* who) OVERRIDE
{
if (who->GetTypeId() == TYPEID_PLAYER)
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
_JustDied();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
_EnterCombat();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -91,7 +91,7 @@ class boss_thorim : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<boss_thorimAI>(creature);
}
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp
index 76a60607f7e..bed7bd86b91 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp
@@ -192,7 +192,7 @@ class boss_xt002 : public CreatureScript
public:
boss_xt002() : CreatureScript("boss_xt002") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<boss_xt002_AI>(creature);
}
@@ -203,7 +203,7 @@ class boss_xt002 : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
@@ -224,7 +224,7 @@ class boss_xt002 : public CreatureScript
instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_MUST_DECONSTRUCT_FASTER);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
_EnterCombat();
@@ -241,7 +241,7 @@ class boss_xt002 : public CreatureScript
instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_MUST_DECONSTRUCT_FASTER);
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -251,25 +251,25 @@ class boss_xt002 : public CreatureScript
}
}
- void KilledUnit(Unit* who)
+ void KilledUnit(Unit* who) OVERRIDE
{
if (who->GetTypeId() == TYPEID_PLAYER)
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
_JustDied();
}
- void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/)
+ void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/) OVERRIDE
{
if (!_hardMode && _phase == 1 && !HealthAbovePct(100 - 25 * (_heartExposed+1)))
ExposeHeart();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim() || !CheckInRoom())
return;
@@ -322,7 +322,7 @@ class boss_xt002 : public CreatureScript
DoMeleeAttackIfReady();
}
- void PassengerBoarded(Unit* who, int8 /*seatId*/, bool apply)
+ void PassengerBoarded(Unit* who, int8 /*seatId*/, bool apply) OVERRIDE
{
if (apply && who->GetEntry() == NPC_XS013_SCRAPBOT)
{
@@ -335,7 +335,7 @@ class boss_xt002 : public CreatureScript
}
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -350,7 +350,7 @@ class boss_xt002 : public CreatureScript
return 0;
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
switch (type)
{
@@ -446,22 +446,22 @@ class boss_xt002 : public CreatureScript
*
*///----------------------------------------------------
-class mob_xt002_heart : public CreatureScript
+class npc_xt002_heart : public CreatureScript
{
public:
- mob_xt002_heart() : CreatureScript("mob_xt002_heart") { }
+ npc_xt002_heart() : CreatureScript("npc_xt002_heart") { }
- struct mob_xt002_heartAI : public ScriptedAI
+ struct npc_xt002_heartAI : public ScriptedAI
{
- mob_xt002_heartAI(Creature* creature) : ScriptedAI(creature),
+ npc_xt002_heartAI(Creature* creature) : ScriptedAI(creature),
_instance(creature->GetInstanceScript())
{
SetCombatMovement(false);
}
- void UpdateAI(uint32 /*diff*/) { }
+ void UpdateAI(uint32 /*diff*/) OVERRIDE {}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Creature* xt002 = _instance ? me->GetCreature(*me, _instance->GetData64(BOSS_XT002)) : NULL;
if (!xt002 || !xt002->AI())
@@ -475,9 +475,9 @@ class mob_xt002_heart : public CreatureScript
InstanceScript* _instance;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_xt002_heartAI(creature);
+ return new npc_xt002_heartAI(creature);
}
};
@@ -486,24 +486,24 @@ class mob_xt002_heart : public CreatureScript
* XS-013 SCRAPBOT
*
*///----------------------------------------------------
-class mob_scrapbot : public CreatureScript
+class npc_scrapbot : public CreatureScript
{
public:
- mob_scrapbot() : CreatureScript("mob_scrapbot") { }
+ npc_scrapbot() : CreatureScript("npc_scrapbot") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_scrapbotAI(creature);
+ return new npc_scrapbotAI(creature);
}
- struct mob_scrapbotAI : public ScriptedAI
+ struct npc_scrapbotAI : public ScriptedAI
{
- mob_scrapbotAI(Creature* creature) : ScriptedAI(creature)
+ npc_scrapbotAI(Creature* creature) : ScriptedAI(creature)
{
_instance = me->GetInstanceScript();
}
- void Reset()
+ void Reset() OVERRIDE
{
me->SetReactState(REACT_PASSIVE);
@@ -513,7 +513,7 @@ class mob_scrapbot : public CreatureScript
me->GetMotionMaster()->MoveFollow(pXT002, 0.0f, 0.0f);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (_rangeCheckTimer <= diff)
{
@@ -543,24 +543,24 @@ class mob_scrapbot : public CreatureScript
* XM-024 PUMMELLER
*
*///----------------------------------------------------
-class mob_pummeller : public CreatureScript
+class npc_pummeller : public CreatureScript
{
public:
- mob_pummeller() : CreatureScript("mob_pummeller") { }
+ npc_pummeller() : CreatureScript("npc_pummeller") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_pummellerAI(creature);
+ return new npc_pummellerAI(creature);
}
- struct mob_pummellerAI : public ScriptedAI
+ struct npc_pummellerAI : public ScriptedAI
{
- mob_pummellerAI(Creature* creature) : ScriptedAI(creature)
+ npc_pummellerAI(Creature* creature) : ScriptedAI(creature)
{
_instance = creature->GetInstanceScript();
}
- void Reset()
+ void Reset() OVERRIDE
{
_arcingSmashTimer = TIMER_ARCING_SMASH;
_trampleTimer = TIMER_TRAMPLE;
@@ -574,16 +574,16 @@ class mob_pummeller : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
- if (me->IsWithinMeleeRange(me->getVictim()))
+ if (me->IsWithinMeleeRange(me->GetVictim()))
{
if (_arcingSmashTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_ARCING_SMASH);
+ DoCastVictim(SPELL_ARCING_SMASH);
_arcingSmashTimer = TIMER_ARCING_SMASH;
}
else
@@ -591,7 +591,7 @@ class mob_pummeller : public CreatureScript
if (_trampleTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_TRAMPLE);
+ DoCastVictim(SPELL_TRAMPLE);
_trampleTimer = TIMER_TRAMPLE;
}
else
@@ -599,7 +599,7 @@ class mob_pummeller : public CreatureScript
if (_uppercutTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_UPPERCUT);
+ DoCastVictim(SPELL_UPPERCUT);
_uppercutTimer = TIMER_UPPERCUT;
}
else
@@ -645,24 +645,24 @@ class BoomEvent : public BasicEvent
Creature* _me;
};
-class mob_boombot : public CreatureScript
+class npc_boombot : public CreatureScript
{
public:
- mob_boombot() : CreatureScript("mob_boombot") { }
+ npc_boombot() : CreatureScript("npc_boombot") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_boombotAI(creature);
+ return new npc_boombotAI(creature);
}
- struct mob_boombotAI : public ScriptedAI
+ struct npc_boombotAI : public ScriptedAI
{
- mob_boombotAI(Creature* creature) : ScriptedAI(creature)
+ npc_boombotAI(Creature* creature) : ScriptedAI(creature)
{
_instance = creature->GetInstanceScript();
}
- void Reset()
+ void Reset() OVERRIDE
{
_boomed = false;
@@ -679,7 +679,7 @@ class mob_boombot : public CreatureScript
me->GetMotionMaster()->MoveFollow(pXT002, 0.0f, 0.0f);
}
- void DamageTaken(Unit* /*who*/, uint32& damage)
+ void DamageTaken(Unit* /*who*/, uint32& damage) OVERRIDE
{
if (damage >= (me->GetHealth() - me->GetMaxHealth() * 0.5f) && !_boomed)
{
@@ -704,7 +704,7 @@ class mob_boombot : public CreatureScript
}
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -724,38 +724,38 @@ class mob_boombot : public CreatureScript
* LIFE SPARK
*
*///----------------------------------------------------
-class mob_life_spark : public CreatureScript
+class npc_life_spark : public CreatureScript
{
public:
- mob_life_spark() : CreatureScript("mob_life_spark") { }
+ npc_life_spark() : CreatureScript("npc_life_spark") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_life_sparkAI(creature);
+ return new npc_life_sparkAI(creature);
}
- struct mob_life_sparkAI : public ScriptedAI
+ struct npc_life_sparkAI : public ScriptedAI
{
- mob_life_sparkAI(Creature* creature) : ScriptedAI(creature)
+ npc_life_sparkAI(Creature* creature) : ScriptedAI(creature)
{
}
- void Reset()
+ void Reset() OVERRIDE
{
DoCast(me, RAID_MODE(SPELL_STATIC_CHARGED_10, SPELL_STATIC_CHARGED_25));
_shockTimer = 0; // first one is immediate.
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
if (_shockTimer <= diff)
{
- if (me->IsWithinMeleeRange(me->getVictim()))
+ if (me->IsWithinMeleeRange(me->GetVictim()))
{
- DoCast(me->getVictim(), SPELL_SHOCK);
+ DoCastVictim(SPELL_SHOCK);
_shockTimer = TIMER_SHOCK;
}
}
@@ -776,7 +776,7 @@ class spell_xt002_searing_light_spawn_life_spark : public SpellScriptLoader
{
PrepareAuraScript(spell_xt002_searing_light_spawn_life_spark_AuraScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_SUMMON_LIFE_SPARK))
return false;
@@ -791,13 +791,13 @@ class spell_xt002_searing_light_spawn_life_spark : public SpellScriptLoader
player->CastSpell(player, SPELL_SUMMON_LIFE_SPARK, true);
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectRemove += AuraEffectRemoveFn(spell_xt002_searing_light_spawn_life_spark_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_xt002_searing_light_spawn_life_spark_AuraScript();
}
@@ -812,7 +812,7 @@ class spell_xt002_gravity_bomb_aura : public SpellScriptLoader
{
PrepareAuraScript(spell_xt002_gravity_bomb_aura_AuraScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_SUMMON_VOID_ZONE))
return false;
@@ -842,14 +842,14 @@ class spell_xt002_gravity_bomb_aura : public SpellScriptLoader
xt002->GetAI()->SetData(DATA_GRAVITY_BOMB_CASUALTY, 1);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_xt002_gravity_bomb_aura_AuraScript::OnPeriodic, EFFECT_2, SPELL_AURA_PERIODIC_DAMAGE);
AfterEffectRemove += AuraEffectRemoveFn(spell_xt002_gravity_bomb_aura_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_xt002_gravity_bomb_aura_AuraScript();
}
@@ -875,13 +875,13 @@ class spell_xt002_gravity_bomb_damage : public SpellScriptLoader
caster->GetAI()->SetData(DATA_GRAVITY_BOMB_CASUALTY, 1);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_xt002_gravity_bomb_damage_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_xt002_gravity_bomb_damage_SpellScript();
}
@@ -896,7 +896,7 @@ class spell_xt002_heart_overload_periodic : public SpellScriptLoader
{
PrepareSpellScript(spell_xt002_heart_overload_periodic_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_ENERGY_ORB))
return false;
@@ -942,13 +942,13 @@ class spell_xt002_heart_overload_periodic : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHit += SpellEffectFn(spell_xt002_heart_overload_periodic_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_xt002_heart_overload_periodic_SpellScript();
}
@@ -973,7 +973,7 @@ class spell_xt002_tympanic_tantrum : public SpellScriptLoader
SetHitDamage(GetHitUnit()->CountPctFromMaxHealth(GetHitDamage()));
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_xt002_tympanic_tantrum_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_xt002_tympanic_tantrum_SpellScript::FilterTargets, EFFECT_1, TARGET_UNIT_SRC_AREA_ENEMY);
@@ -981,7 +981,7 @@ class spell_xt002_tympanic_tantrum : public SpellScriptLoader
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_xt002_tympanic_tantrum_SpellScript();
}
@@ -1006,13 +1006,13 @@ class spell_xt002_submerged : public SpellScriptLoader
target->SetByteValue(UNIT_FIELD_BYTES_1, 0, UNIT_STAND_STATE_SUBMERGED);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_xt002_submerged_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_xt002_submerged_SpellScript();
}
@@ -1037,13 +1037,13 @@ class spell_xt002_stand : public SpellScriptLoader
target->SetByteValue(UNIT_FIELD_BYTES_1, 0, UNIT_STAND_STATE_STAND);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_xt002_stand_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_xt002_stand_SpellScript();
}
@@ -1054,7 +1054,7 @@ class achievement_nerf_engineering : public AchievementCriteriaScript
public:
achievement_nerf_engineering() : AchievementCriteriaScript("achievement_nerf_engineering") { }
- bool OnCheck(Player* /*source*/, Unit* target)
+ bool OnCheck(Player* /*source*/, Unit* target) OVERRIDE
{
if (!target || !target->GetAI())
return false;
@@ -1068,7 +1068,7 @@ class achievement_heartbreaker : public AchievementCriteriaScript
public:
achievement_heartbreaker() : AchievementCriteriaScript("achievement_heartbreaker") { }
- bool OnCheck(Player* /*source*/, Unit* target)
+ bool OnCheck(Player* /*source*/, Unit* target) OVERRIDE
{
if (!target || !target->GetAI())
return false;
@@ -1082,7 +1082,7 @@ class achievement_nerf_gravity_bombs : public AchievementCriteriaScript
public:
achievement_nerf_gravity_bombs() : AchievementCriteriaScript("achievement_nerf_gravity_bombs") { }
- bool OnCheck(Player* /*source*/, Unit* target)
+ bool OnCheck(Player* /*source*/, Unit* target) OVERRIDE
{
if (!target || !target->GetAI())
return false;
@@ -1093,12 +1093,12 @@ class achievement_nerf_gravity_bombs : public AchievementCriteriaScript
void AddSC_boss_xt002()
{
- new mob_xt002_heart();
- new mob_scrapbot();
- new mob_pummeller();
- new mob_boombot();
+ new npc_xt002_heart();
+ new npc_scrapbot();
+ new npc_pummeller();
+ new npc_boombot();
- new mob_life_spark();
+ new npc_life_spark();
new boss_xt002();
new spell_xt002_searing_light_spawn_life_spark();
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp
index 64a315eb465..4c6b3ae8b3f 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp
@@ -95,7 +95,7 @@ enum Yells
SAY_STORMWIND_ROLEPLAY_2 = 1,
SAY_STORMWIND_ROLEPLAY_3 = 2,
SAY_STORMWIND_ROLEPLAY_6 = 3,
-
+
// King Llane
SAY_STORMWIND_ROLEPLAY_5 = 0,
};
@@ -430,17 +430,18 @@ class boss_voice_of_yogg_saron : public CreatureScript
SetCombatMovement(false);
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
// TODO: MoveInLineOfSight doesn't work for such a big distance
- if (who->GetTypeId() == TYPEID_PLAYER && me->GetDistance2d(who) < 99.0f && !me->isInCombat())
+ if (who->GetTypeId() == TYPEID_PLAYER && me->GetDistance2d(who) < 99.0f && !me->IsInCombat())
me->SetInCombatWithZone();
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
BossAI::EnterEvadeMode();
-
+
for (uint8 i = DATA_SARA; i <= DATA_MIMIRON_YS; ++i)
if (Creature* creature = ObjectAccessor::GetCreature(*me, instance->GetData64(i)))
creature->AI()->EnterEvadeMode();
@@ -448,7 +449,7 @@ class boss_voice_of_yogg_saron : public CreatureScript
// not sure, spoken by Sara (sound), regarding to wowwiki Voice whispers it
Map::PlayerList const& players = me->GetMap()->GetPlayers();
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
- if (Player *player = itr->getSource())
+ if (Player* player = itr->GetSource())
{
if (events.IsInPhase(PHASE_ONE))
Talk(WHISPER_VOICE_PHASE_1_WIPE, player->GetGUID());
@@ -458,7 +459,7 @@ class boss_voice_of_yogg_saron : public CreatureScript
}
}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
events.SetPhase(PHASE_ONE);
@@ -481,7 +482,7 @@ class boss_voice_of_yogg_saron : public CreatureScript
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (Creature* sara = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SARA)))
sara->SetInCombatWith(me);
@@ -500,7 +501,7 @@ class boss_voice_of_yogg_saron : public CreatureScript
events.ScheduleEvent(EVENT_EXTINGUISH_ALL_LIFE, 900000); // 15 minutes
}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
// don't despawn Yogg-Saron's corpse, remove him from SummonList!
if (Creature* yogg = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_YOGG_SARON)))
@@ -509,7 +510,7 @@ class boss_voice_of_yogg_saron : public CreatureScript
BossAI::JustDied(killer);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -584,7 +585,7 @@ class boss_voice_of_yogg_saron : public CreatureScript
}
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -614,7 +615,7 @@ class boss_voice_of_yogg_saron : public CreatureScript
}
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
switch (summon->GetEntry())
{
@@ -650,7 +651,7 @@ class boss_voice_of_yogg_saron : public CreatureScript
bool _illusionShattered;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<boss_voice_of_yogg_saronAI>(creature);
}
@@ -670,23 +671,23 @@ class boss_sara : public CreatureScript
std::map<uint64, uint64>::const_iterator itr = _linkData.find(guid);
if (itr != _linkData.end())
return itr->second;
-
+
return 0;
}
-
+
void SetLinkBetween(uint64 player1, uint64 player2)
{
_linkData[player1] = player2;
_linkData[player2] = player1;
}
-
+
// called once for each target on aura remove
void RemoveLinkFrom(uint64 player1)
{
_linkData.erase(player1);
}
- void DamageTaken(Unit* /*attacker*/, uint32& damage)
+ void DamageTaken(Unit* /*attacker*/, uint32& damage) OVERRIDE
{
if (_events.IsInPhase(PHASE_ONE) && damage >= me->GetHealth())
{
@@ -704,7 +705,7 @@ class boss_sara : public CreatureScript
}
}
- void SpellHitTarget(Unit* /*target*/, SpellInfo const* spell)
+ void SpellHitTarget(Unit* /*target*/, SpellInfo const* spell) OVERRIDE
{
if (!roll_chance_i(30) || _events.IsInPhase(PHASE_TRANSFORM))
return;
@@ -725,13 +726,13 @@ class boss_sara : public CreatureScript
}
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
if (victim->GetTypeId() == TYPEID_PLAYER && !me->IsInEvadeMode())
Talk(SAY_SARA_KILL);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_SARA_AGGRO);
_events.ScheduleEvent(EVENT_SARAS_FERVOR, 5000, 0, PHASE_ONE);
@@ -739,7 +740,7 @@ class boss_sara : public CreatureScript
_events.ScheduleEvent(EVENT_SARAS_ANGER, urand(15000, 25000), 0, PHASE_ONE);
}
- void Reset()
+ void Reset() OVERRIDE
{
me->RemoveAllAuras();
me->SetReactState(REACT_PASSIVE);
@@ -748,9 +749,9 @@ class boss_sara : public CreatureScript
_events.SetPhase(PHASE_ONE);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
- if (!me->isInCombat())
+ if (!me->IsInCombat())
return;
if (me->HasAura(SPELL_SHATTERED_ILLUSION))
@@ -825,7 +826,7 @@ class boss_sara : public CreatureScript
}
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
summon->SetReactState(REACT_PASSIVE);
@@ -854,7 +855,7 @@ class boss_sara : public CreatureScript
voice->AI()->JustSummoned(summon);
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -872,7 +873,7 @@ class boss_sara : public CreatureScript
std::map<uint64, uint64> _linkData;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<boss_saraAI>(creature);
}
@@ -887,7 +888,7 @@ class boss_yogg_saron : public CreatureScript
{
boss_yogg_saronAI(Creature* creature) : PassiveAI(creature), _instance(creature->GetInstanceScript()) { }
- void Reset()
+ void Reset() OVERRIDE
{
_events.Reset();
_events.SetPhase(PHASE_TWO);
@@ -909,13 +910,13 @@ class boss_yogg_saron : public CreatureScript
}
}
- void SpellHit(Unit* /*caster*/, SpellInfo const* spell)
+ void SpellHit(Unit* /*caster*/, SpellInfo const* spell) OVERRIDE
{
if (spell->Id == SPELL_IN_THE_MAWS_OF_THE_OLD_GOD)
me->AddLootMode(32);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_YOGG_SARON_DEATH);
@@ -932,14 +933,14 @@ class boss_yogg_saron : public CreatureScript
Map::PlayerList const& players = me->GetMap()->GetPlayers();
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
- if (Player *player = itr->getSource())
+ if (Player* player = itr->GetSource())
{
player->RemoveAurasDueToSpell(SPELL_SANITY);
player->RemoveAurasDueToSpell(SPELL_INSANE);
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
_events.Update(diff);
@@ -975,7 +976,7 @@ class boss_yogg_saron : public CreatureScript
}
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -999,7 +1000,7 @@ class boss_yogg_saron : public CreatureScript
InstanceScript* _instance;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<boss_yogg_saronAI>(creature);
}
@@ -1014,14 +1015,14 @@ class boss_brain_of_yogg_saron : public CreatureScript
{
boss_brain_of_yogg_saronAI(Creature* creature) : PassiveAI(creature), _instance(creature->GetInstanceScript()), _summons(creature) { }
- void Reset()
+ void Reset() OVERRIDE
{
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_NOT_SELECTABLE);
DoCast(me, SPELL_MATCH_HEALTH);
_summons.DespawnAll();
}
- void DamageTaken(Unit* /*attacker*/, uint32& damage)
+ void DamageTaken(Unit* /*attacker*/, uint32& damage) OVERRIDE
{
if (me->HealthBelowPctDamaged(30, damage) && !me->HasAura(SPELL_BRAIN_HURT_VISUAL))
{
@@ -1045,9 +1046,9 @@ class boss_brain_of_yogg_saron : public CreatureScript
}
}
- void UpdateAI(uint32 /*diff*/) { }
+ void UpdateAI(uint32 /*diff*/) OVERRIDE {}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -1069,7 +1070,7 @@ class boss_brain_of_yogg_saron : public CreatureScript
uint8 illusion = _instance->GetData(DATA_ILLUSION);
if (++_tentaclesKilled >= (illusion == ICECROWN_ILLUSION ? 9 : 8))
{
- sCreatureTextMgr->SendChat(me, EMOTE_BRAIN_ILLUSION_SHATTERED, NULL, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_AREA);
+ sCreatureTextMgr->SendChat(me, EMOTE_BRAIN_ILLUSION_SHATTERED, 0, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_AREA);
_summons.DespawnAll();
DoCastAOE(SPELL_SHATTERED_ILLUSION, true);
_instance->HandleGameObject(_instance->GetData64(GO_BRAIN_ROOM_DOOR_1 + illusion), true);
@@ -1084,7 +1085,7 @@ class boss_brain_of_yogg_saron : public CreatureScript
}
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
_summons.Summon(summon);
}
@@ -1095,7 +1096,7 @@ class boss_brain_of_yogg_saron : public CreatureScript
uint8 _tentaclesKilled;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<boss_brain_of_yogg_saronAI>(creature);
}
@@ -1110,7 +1111,7 @@ class npc_ominous_cloud : public CreatureScript
{
npc_ominous_cloudAI(Creature* creature) : PassiveAI(creature) { }
- void Reset()
+ void Reset() OVERRIDE
{
DoCast(me, SPELL_OMINOUS_CLOUD_VISUAL);
}
@@ -1130,9 +1131,9 @@ class npc_ominous_cloud : public CreatureScript
}
}
- void UpdateAI(uint32 /*diff*/) { }
+ void UpdateAI(uint32 /*diff*/) OVERRIDE {}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
Movement::MoveSplineInit init(me);
FillCirclePath(YoggSaronSpawnPos, me->GetDistance2d(YoggSaronSpawnPos.GetPositionX(), YoggSaronSpawnPos.GetPositionY()), me->GetPositionZ(), init.Path(), action);
@@ -1142,7 +1143,7 @@ class npc_ominous_cloud : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<npc_ominous_cloudAI>(creature);
}
@@ -1157,18 +1158,18 @@ class npc_guardian_of_yogg_saron : public CreatureScript
{
npc_guardian_of_yogg_saronAI(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()) { }
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
DoCastAOE(SPELL_SHADOW_NOVA);
DoCastAOE(SPELL_SHADOW_NOVA_2);
}
- void Reset()
+ void Reset() OVERRIDE
{
_events.ScheduleEvent(EVENT_DARK_VOLLEY, urand(10000, 15000));
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -1194,7 +1195,7 @@ class npc_guardian_of_yogg_saron : public CreatureScript
DoMeleeAttackIfReady();
}
- void IsSummonedBy(Unit* summoner)
+ void IsSummonedBy(Unit* summoner) OVERRIDE
{
if (summoner->GetEntry() != NPC_OMINOUS_CLOUD)
return;
@@ -1209,7 +1210,7 @@ class npc_guardian_of_yogg_saron : public CreatureScript
InstanceScript* _instance;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<npc_guardian_of_yogg_saronAI>(creature);
}
@@ -1227,14 +1228,14 @@ class npc_corruptor_tentacle : public CreatureScript
SetCombatMovement(false);
}
- void Reset()
+ void Reset() OVERRIDE
{
DoCast(me, SPELL_TENTACLE_VOID_ZONE);
DoCastAOE(SPELL_ERUPT);
_events.ScheduleEvent(EVENT_CAST_RANDOM_SPELL, 1);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -1266,7 +1267,7 @@ class npc_corruptor_tentacle : public CreatureScript
EventMap _events;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<npc_corruptor_tentacleAI>(creature);
}
@@ -1284,24 +1285,24 @@ class npc_constrictor_tentacle : public CreatureScript
SetCombatMovement(false);
}
- void Reset()
+ void Reset() OVERRIDE
{
DoCast(me, SPELL_TENTACLE_VOID_ZONE_2);
DoCastAOE(SPELL_ERUPT);
}
- void PassengerBoarded(Unit* passenger, int8 /*seatId*/, bool apply)
+ void PassengerBoarded(Unit* passenger, int8 /*seatId*/, bool apply) OVERRIDE
{
if (!apply)
passenger->RemoveAurasDueToSpell(SPELL_SQUEEZE);
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
UpdateVictim();
}
- void IsSummonedBy(Unit* /*summoner*/)
+ void IsSummonedBy(Unit* /*summoner*/) OVERRIDE
{
if (Creature* voice = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_VOICE_OF_YOGG_SARON)))
voice->AI()->JustSummoned(me);
@@ -1311,7 +1312,7 @@ class npc_constrictor_tentacle : public CreatureScript
InstanceScript* _instance;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<npc_constrictor_tentacleAI>(creature);
}
@@ -1329,7 +1330,7 @@ class npc_crusher_tentacle : public CreatureScript
SetCombatMovement(false);
}
- void Reset()
+ void Reset() OVERRIDE
{
DoCast(me, SPELL_CRUSH);
DoCast(me, SPELL_TENTACLE_VOID_ZONE);
@@ -1340,7 +1341,7 @@ class npc_crusher_tentacle : public CreatureScript
_events.ScheduleEvent(EVENT_DIMINISH_POWER, urand(6000, 8000));
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -1372,7 +1373,7 @@ class npc_crusher_tentacle : public CreatureScript
EventMap _events;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<npc_crusher_tentacleAI>(creature);
}
@@ -1387,24 +1388,24 @@ class npc_influence_tentacle : public CreatureScript
{
npc_influence_tentacleAI(Creature* creature) : PassiveAI(creature), _instance(creature->GetInstanceScript()) { }
- void Reset()
+ void Reset() OVERRIDE
{
DoCast(me, me->GetEntry() == NPC_SUIT_OF_ARMOR ? SPELL_NONDESCRIPT_1 : SPELL_NONDESCRIPT_2);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (Creature* brain = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_BRAIN_OF_YOGG_SARON)))
brain->AI()->DoAction(ACTION_TENTACLE_KILLED);
}
- void UpdateAI(uint32 /*diff*/) { }
+ void UpdateAI(uint32 /*diff*/) OVERRIDE {}
private:
InstanceScript* _instance;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<npc_influence_tentacleAI>(creature);
}
@@ -1421,19 +1422,21 @@ class npc_descend_into_madness : public CreatureScript
{
npc_descend_into_madnessAI(Creature* creature) : PassiveAI(creature), _instance(creature->GetInstanceScript()) { }
- void OnSpellClick(Unit* clicker)
+ void OnSpellClick(Unit* clicker, bool& result) OVERRIDE
{
+ if (!result)
+ return;
clicker->RemoveAurasDueToSpell(SPELL_BRAIN_LINK);
me->DespawnOrUnsummon();
}
- void UpdateAI(uint32 /*diff*/) { }
+ void UpdateAI(uint32 /*diff*/) OVERRIDE {}
private:
InstanceScript* _instance;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<npc_descend_into_madnessAI>(creature);
}
@@ -1448,20 +1451,20 @@ class npc_immortal_guardian : public CreatureScript
{
npc_immortal_guardianAI(Creature* creature) : ScriptedAI(creature) { }
- void Reset()
+ void Reset() OVERRIDE
{
DoCast(me, SPELL_EMPOWERED);
DoCast(me, SPELL_RECENTLY_SPAWNED);
_events.ScheduleEvent(EVENT_DRAIN_LIFE, urand(3000, 13000));
}
- void DamageTaken(Unit* /*attacker*/, uint32& damage)
+ void DamageTaken(Unit* /*attacker*/, uint32& damage) OVERRIDE
{
if (me->HealthBelowPctDamaged(1, damage))
damage = me->GetHealth() - me->CountPctFromMaxHealth(1); // or set immune to damage? should be done here or in SPELL_WEAKENED spell script?
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -1491,7 +1494,7 @@ class npc_immortal_guardian : public CreatureScript
EventMap _events;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<npc_immortal_guardianAI>(creature);
}
@@ -1506,13 +1509,13 @@ class npc_observation_ring_keeper : public CreatureScript
{
npc_observation_ring_keeperAI(Creature* creature) : ScriptedAI(creature) { }
- void Reset()
+ void Reset() OVERRIDE
{
DoCast(SPELL_SIMPLE_TELEPORT_KEEPERS); // not visible here
DoCast(SPELL_KEEPER_ACTIVE);
}
- void sGossipSelect(Player* player, uint32 sender, uint32 /*action*/)
+ void sGossipSelect(Player* player, uint32 sender, uint32 /*action*/) OVERRIDE
{
if (sender != 10333)
return;
@@ -1522,7 +1525,7 @@ class npc_observation_ring_keeper : public CreatureScript
DoCast(SPELL_TELEPORT);
Talk(SAY_KEEPER_CHOSEN_1, player->GetGUID());
Talk(SAY_KEEPER_CHOSEN_2, player->GetGUID());
-
+
switch (me->GetEntry())
{
case NPC_FREYA_OBSERVATION_RING:
@@ -1540,10 +1543,10 @@ class npc_observation_ring_keeper : public CreatureScript
}
}
- void UpdateAI(uint32 /*diff*/) { }
+ void UpdateAI(uint32 /*diff*/) OVERRIDE {}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<npc_observation_ring_keeperAI>(creature);
}
@@ -1558,12 +1561,12 @@ class npc_yogg_saron_keeper : public CreatureScript
{
npc_yogg_saron_keeperAI(Creature* creature) : ScriptedAI(creature) { }
- void IsSummonedBy(Unit* /*summoner*/)
+ void IsSummonedBy(Unit* /*summoner*/) OVERRIDE
{
DoCast(SPELL_SIMPLE_TELEPORT_KEEPERS);
}
- void Reset()
+ void Reset() OVERRIDE
{
_events.Reset();
_events.SetPhase(PHASE_ONE);
@@ -1584,7 +1587,7 @@ class npc_yogg_saron_keeper : public CreatureScript
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
switch (me->GetEntry())
{
@@ -1605,9 +1608,9 @@ class npc_yogg_saron_keeper : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
- if (!me->isInCombat())
+ if (!me->IsInCombat())
return;
_events.Update(diff);
@@ -1630,7 +1633,7 @@ class npc_yogg_saron_keeper : public CreatureScript
}
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -1666,7 +1669,7 @@ class npc_yogg_saron_keeper : public CreatureScript
EventMap _events;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<npc_yogg_saron_keeperAI>(creature);
}
@@ -1681,7 +1684,7 @@ class npc_yogg_saron_illusions : public CreatureScript
{
npc_yogg_saron_illusionsAI(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()) { }
- void IsSummonedBy(Unit* /*summoner*/)
+ void IsSummonedBy(Unit* /*summoner*/) OVERRIDE
{
switch (_instance->GetData(DATA_ILLUSION))
{
@@ -1714,7 +1717,7 @@ class npc_yogg_saron_illusions : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
_events.Update(diff);
@@ -1787,7 +1790,7 @@ class npc_yogg_saron_illusions : public CreatureScript
InstanceScript* _instance;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<npc_yogg_saron_illusionsAI>(creature);
}
@@ -1802,7 +1805,7 @@ class npc_garona : public CreatureScript
{
npc_garonaAI(Creature* creature) : ScriptedAI(creature) { }
- void Reset()
+ void Reset() OVERRIDE
{
_events.Reset();
@@ -1815,7 +1818,7 @@ class npc_garona : public CreatureScript
_events.ScheduleEvent(EVENT_STORMWIND_ROLEPLAY_6, 52700);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
_events.Update(diff);
@@ -1850,7 +1853,7 @@ class npc_garona : public CreatureScript
EventMap _events;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<npc_garonaAI>(creature);
}
@@ -1865,12 +1868,12 @@ class npc_turned_champion : public CreatureScript
{
npc_turned_championAI(Creature* creature) : ScriptedAI(creature) { }
- void Reset()
+ void Reset() OVERRIDE
{
DoCast(SPELL_VERTEX_COLOR_BLACK);
}
- void MovementInform(uint32 type, uint32 pointId)
+ void MovementInform(uint32 type, uint32 pointId) OVERRIDE
{
if (type != POINT_MOTION_TYPE || pointId != 0)
return;
@@ -1878,7 +1881,7 @@ class npc_turned_champion : public CreatureScript
me->HandleEmoteCommand(EMOTE_ONESHOT_SALUTE);
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
if (action != ACTION_START_ROLEPLAY)
return;
@@ -1888,7 +1891,7 @@ class npc_turned_champion : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<npc_turned_championAI>(creature);
}
@@ -1903,17 +1906,17 @@ class npc_laughing_skull : public CreatureScript
{
npc_laughing_skullAI(Creature* creature) : ScriptedAI(creature) { }
- void Reset()
+ void Reset() OVERRIDE
{
me->SetReactState(REACT_PASSIVE);
DoCast(me, SPELL_LUNATIC_GAZE_SKULL);
}
// don't evade, otherwise the Lunatic Gaze aura is removed
- void UpdateAI(uint32 /*diff*/) { }
+ void UpdateAI(uint32 /*diff*/) OVERRIDE {}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return GetUlduarAI<npc_laughing_skullAI>(creature);
}
@@ -1934,13 +1937,13 @@ class spell_yogg_saron_target_selectors : public SpellScriptLoader // 63744,
GetCaster()->CastSpell(target, uint32(GetEffectValue()));
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_yogg_saron_target_selectors_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_yogg_saron_target_selectors_SpellScript();
}
@@ -1986,7 +1989,7 @@ class spell_yogg_saron_psychosis : public SpellScriptLoader // 63795, 65301
{
PrepareSpellScript(spell_yogg_saron_psychosis_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
_stacks = GetSpellInfo()->Id == SPELL_PSYCHOSIS ? 9 : 12;
return true;
@@ -1998,7 +2001,7 @@ class spell_yogg_saron_psychosis : public SpellScriptLoader // 63795, 65301
targets.remove_if(Trinity::UnitAuraCheck(true, SPELL_ILLUSION_ROOM));
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_yogg_saron_psychosis_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_yogg_saron_psychosis_SpellScript::FilterTargets, EFFECT_1, TARGET_UNIT_SRC_AREA_ENEMY);
@@ -2006,7 +2009,7 @@ class spell_yogg_saron_psychosis : public SpellScriptLoader // 63795, 65301
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_yogg_saron_psychosis_SpellScript();
}
@@ -2024,21 +2027,15 @@ class spell_yogg_saron_malady_of_the_mind : public SpellScriptLoader // 63830
PrepareSpellScript(spell_yogg_saron_malady_of_the_mind_SpellScript);
- bool Load()
- {
- _applyHandlers = GetSpellInfo()->Id == SPELL_MALADY_OF_THE_MIND;
- return true;
- }
-
void FilterTargets(std::list<WorldObject*>& targets)
{
targets.remove_if(HighSanityTargetSelector());
targets.remove_if(Trinity::UnitAuraCheck(true, SPELL_ILLUSION_ROOM));
}
- void Register()
+ void Register() OVERRIDE
{
- if (_applyHandlers)
+ if (m_scriptSpellId == SPELL_MALADY_OF_THE_MIND)
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_yogg_saron_malady_of_the_mind_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_yogg_saron_malady_of_the_mind_SpellScript::FilterTargets, EFFECT_1, TARGET_UNIT_SRC_AREA_ENEMY);
@@ -2047,15 +2044,13 @@ class spell_yogg_saron_malady_of_the_mind : public SpellScriptLoader // 63830
OnEffectHitTarget += SpellEffectFn(spell_yogg_saron_malady_of_the_mind_SpellScript::RemoveSanity, EFFECT_2, SPELL_EFFECT_SCRIPT_EFFECT);
}
-
- bool _applyHandlers;
};
class spell_yogg_saron_malady_of_the_mind_AuraScript : public AuraScript
{
PrepareAuraScript(spell_yogg_saron_malady_of_the_mind_AuraScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_MALADY_OF_THE_MIND_JUMP))
return false;
@@ -2077,32 +2072,32 @@ class spell_yogg_saron_malady_of_the_mind : public SpellScriptLoader // 63830
GetTarget()->CastSpell(GetTarget(), SPELL_MALADY_OF_THE_MIND_JUMP);
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectRemove += AuraEffectRemoveFn(spell_yogg_saron_malady_of_the_mind_AuraScript::OnRemove, EFFECT_1, SPELL_AURA_MOD_FEAR, AURA_EFFECT_HANDLE_REAL);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_yogg_saron_malady_of_the_mind_SpellScript();
}
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_yogg_saron_malady_of_the_mind_AuraScript();
}
};
-
+
class spell_yogg_saron_brain_link : public SpellScriptLoader // 63802
{
public:
spell_yogg_saron_brain_link() : SpellScriptLoader("spell_yogg_saron_brain_link") { }
-
+
class spell_yogg_saron_brain_link_SpellScript : public SpellScript
{
PrepareSpellScript(spell_yogg_saron_brain_link_SpellScript);
-
+
void FilterTargets(std::list<WorldObject*>& targets)
{
targets.remove_if(Trinity::UnitAuraCheck(true, SPELL_ILLUSION_ROOM));
@@ -2112,22 +2107,22 @@ class spell_yogg_saron_brain_link : public SpellScriptLoader // 63802
targets.clear();
return;
}
-
+
if (SaraAI* ai = CAST_AI(SaraAI, GetCaster()->GetAI()))
ai->SetLinkBetween(targets.front()->GetGUID(), targets.back()->GetGUID());
}
-
- void Register()
+
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_yogg_saron_brain_link_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
}
};
-
+
class spell_yogg_saron_brain_link_AuraScript : public AuraScript
{
PrepareAuraScript(spell_yogg_saron_brain_link_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_BRAIN_LINK_DAMAGE))
return false;
@@ -2135,13 +2130,13 @@ class spell_yogg_saron_brain_link : public SpellScriptLoader // 63802
return false;
return true;
}
-
+
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
Unit* caster = GetCaster();
if (!caster)
return;
-
+
if (SaraAI* ai = CAST_AI(SaraAI, caster->GetAI()))
{
if (GetTargetApplication()->GetRemoveMode() == AURA_REMOVE_BY_EXPIRE)
@@ -2156,37 +2151,37 @@ class spell_yogg_saron_brain_link : public SpellScriptLoader // 63802
}
}
}
-
+
void DummyTick(AuraEffect const* aurEff)
{
Unit* caster = GetCaster();
if (!caster)
return;
-
+
SaraAI* ai = CAST_AI(SaraAI, caster->GetAI());
if (!ai)
return;
-
+
Player* linked = ObjectAccessor::GetPlayer(*GetTarget(), ai->GetLinkedPlayerGUID(GetTarget()->GetGUID()));
if (!linked)
return;
-
+
GetTarget()->CastSpell(linked, (GetTarget()->GetDistance(linked) > (float)aurEff->GetAmount()) ? SPELL_BRAIN_LINK_DAMAGE : SPELL_BRAIN_LINK_NO_DAMAGE, true);
}
-
- void Register()
+
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_yogg_saron_brain_link_AuraScript::DummyTick, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
OnEffectRemove += AuraEffectRemoveFn(spell_yogg_saron_brain_link_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
-
- SpellScript* GetSpellScript() const
+
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_yogg_saron_brain_link_SpellScript();
}
-
- AuraScript* GetAuraScript() const
+
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_yogg_saron_brain_link_AuraScript();
}
@@ -2204,13 +2199,13 @@ class spell_yogg_saron_brain_link_damage : public SpellScriptLoader // 6380
PrepareSpellScript(spell_yogg_saron_brain_link_damage_SpellScript);
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_yogg_saron_brain_link_damage_SpellScript::RemoveSanity, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_yogg_saron_brain_link_damage_SpellScript();
}
@@ -2220,18 +2215,18 @@ class spell_yogg_saron_boil_ominously : public SpellScriptLoader // 63030
{
public:
spell_yogg_saron_boil_ominously() : SpellScriptLoader("spell_yogg_saron_boil_ominously") { }
-
+
class spell_yogg_saron_boil_ominously_SpellScript : public SpellScript
{
PrepareSpellScript(spell_yogg_saron_boil_ominously_SpellScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_SUMMON_GUARDIAN_1))
return false;
return true;
}
-
+
void HandleDummy(SpellEffIndex /*effIndex*/)
{
if (Unit* target = GetHitUnit())
@@ -2243,14 +2238,14 @@ class spell_yogg_saron_boil_ominously : public SpellScriptLoader // 63030
GetCaster()->CastSpell(GetCaster(), SPELL_SUMMON_GUARDIAN_1, true);
}
}
-
- void Register()
+
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_yogg_saron_boil_ominously_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_yogg_saron_boil_ominously_SpellScript();
}
@@ -2277,14 +2272,14 @@ class spell_yogg_saron_shadow_beacon : public SpellScriptLoader // 64465
target->SetEntry(NPC_IMMORTAL_GUARDIAN);
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectApply += AuraEffectApplyFn(spell_yogg_saron_shadow_beacon_AuraScript::OnApply, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_yogg_saron_shadow_beacon_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_yogg_saron_shadow_beacon_AuraScript();
}
@@ -2305,13 +2300,13 @@ class spell_yogg_saron_empowering_shadows_range_check : public SpellScriptLoader
target->CastSpell(GetCaster(), uint32(GetEffectValue()), true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_yogg_saron_empowering_shadows_range_check_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_yogg_saron_empowering_shadows_range_check_SpellScript();
}
@@ -2326,7 +2321,7 @@ class spell_yogg_saron_empowering_shadows_missile : public SpellScriptLoader
{
PrepareSpellScript(spell_yogg_saron_empowering_shadows_missile_SpellScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_EMPOWERING_SHADOWS))
return false;
@@ -2339,13 +2334,13 @@ class spell_yogg_saron_empowering_shadows_missile : public SpellScriptLoader
target->CastSpell((Unit*)NULL, SPELL_EMPOWERING_SHADOWS, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_yogg_saron_empowering_shadows_missile_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_yogg_saron_empowering_shadows_missile_SpellScript();
}
@@ -2361,7 +2356,7 @@ class spell_yogg_saron_constrictor_tentacle : public SpellScriptLoader // 64
{
PrepareAuraScript(spell_yogg_saron_constrictor_tentacle_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_CONSTRICTOR_TENTACLE_SUMMON))
return false;
@@ -2373,13 +2368,13 @@ class spell_yogg_saron_constrictor_tentacle : public SpellScriptLoader // 64
GetTarget()->CastSpell(GetTarget(), SPELL_CONSTRICTOR_TENTACLE_SUMMON);
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectApply += AuraEffectApplyFn(spell_yogg_saron_constrictor_tentacle_AuraScript::OnApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_yogg_saron_constrictor_tentacle_AuraScript();
}
@@ -2394,7 +2389,7 @@ class spell_yogg_saron_lunge : public SpellScriptLoader // 64131
{
PrepareSpellScript(spell_yogg_saron_lunge_SpellScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_SQUEEZE))
return false;
@@ -2410,13 +2405,13 @@ class spell_yogg_saron_lunge : public SpellScriptLoader // 64131
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_yogg_saron_lunge_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_yogg_saron_lunge_SpellScript();
}
@@ -2434,17 +2429,17 @@ class spell_yogg_saron_squeeze : public SpellScriptLoader // 64125
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
if (Unit* vehicle = GetTarget()->GetVehicleBase())
- if (vehicle->isAlive())
+ if (vehicle->IsAlive())
vehicle->Kill(vehicle); // should tentacle die or just release its target?
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectRemove += AuraEffectRemoveFn(spell_yogg_saron_squeeze_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_yogg_saron_squeeze_AuraScript();
}
@@ -2467,13 +2462,13 @@ class spell_yogg_saron_diminsh_power : public SpellScriptLoader // 64148
GetTarget()->InterruptSpell(CURRENT_CHANNELED_SPELL);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectProc += AuraEffectProcFn(spell_yogg_saron_diminsh_power_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_yogg_saron_diminsh_power_AuraScript();
}
@@ -2489,7 +2484,7 @@ class spell_yogg_saron_empowered : public SpellScriptLoader // 64161
{
PrepareAuraScript(spell_yogg_saron_empowered_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_EMPOWERED_BUFF))
return false;
@@ -2518,14 +2513,14 @@ class spell_yogg_saron_empowered : public SpellScriptLoader // 64161
target->CastSpell(target, SPELL_WEAKENED, true);
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectApply += AuraEffectApplyFn(spell_yogg_saron_empowered_AuraScript::OnApply, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY, AURA_EFFECT_HANDLE_REAL);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_yogg_saron_empowered_AuraScript::OnPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_yogg_saron_empowered_AuraScript();
}
@@ -2546,13 +2541,13 @@ class spell_yogg_saron_match_health : public SpellScriptLoader // 64069
target->SetHealth(target->CountPctFromMaxHealth((int32)GetCaster()->GetHealthPct()));
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_yogg_saron_match_health_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_yogg_saron_match_health_SpellScript();
}
@@ -2573,13 +2568,13 @@ class spell_yogg_saron_shattered_illusion : public SpellScriptLoader // 65238
target->RemoveAurasDueToSpell(uint32(GetEffectValue()));
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_yogg_saron_shattered_illusion_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_yogg_saron_shattered_illusion_SpellScript();
}
@@ -2594,7 +2589,7 @@ class spell_yogg_saron_death_ray_warning_visual : public SpellScriptLoader /
{
PrepareAuraScript(spell_yogg_saron_death_ray_warning_visual_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_DEATH_RAY_PERIODIC))
return false;
@@ -2614,13 +2609,13 @@ class spell_yogg_saron_death_ray_warning_visual : public SpellScriptLoader /
}
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectRemove += AuraEffectRemoveFn(spell_yogg_saron_death_ray_warning_visual_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_yogg_saron_death_ray_warning_visual_AuraScript();
}
@@ -2635,7 +2630,7 @@ class spell_yogg_saron_cancel_illusion_room_aura : public SpellScriptLoader /
{
PrepareSpellScript(spell_yogg_saron_cancel_illusion_room_aura_SpellScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_TELEPORT_BACK_TO_MAIN_ROOM))
return false;
@@ -2651,13 +2646,13 @@ class spell_yogg_saron_cancel_illusion_room_aura : public SpellScriptLoader /
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_yogg_saron_cancel_illusion_room_aura_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_yogg_saron_cancel_illusion_room_aura_SpellScript();
}
@@ -2677,13 +2672,13 @@ class spell_yogg_saron_nondescript : public SpellScriptLoader // 64010, 6401
GetTarget()->CastSpell(GetTarget(), uint32(aurEff->GetAmount()), true);
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectRemove += AuraEffectRemoveFn(spell_yogg_saron_nondescript_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_MOD_STUN, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_yogg_saron_nondescript_AuraScript();
}
@@ -2698,7 +2693,7 @@ class spell_yogg_saron_revealed_tentacle : public SpellScriptLoader // 64012
{
PrepareSpellScript(spell_yogg_saron_revealed_tentacle_SpellScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_TENTACLE_VOID_ZONE))
return false;
@@ -2717,13 +2712,13 @@ class spell_yogg_saron_revealed_tentacle : public SpellScriptLoader // 64012
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_yogg_saron_revealed_tentacle_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_yogg_saron_revealed_tentacle_SpellScript();
}
@@ -2738,7 +2733,7 @@ class spell_yogg_saron_grim_reprisal : public SpellScriptLoader // 63305
{
PrepareAuraScript(spell_yogg_saron_grim_reprisal_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_GRIM_REPRISAL_DAMAGE))
return false;
@@ -2751,13 +2746,13 @@ class spell_yogg_saron_grim_reprisal : public SpellScriptLoader // 63305
GetTarget()->CastCustomSpell(SPELL_GRIM_REPRISAL_DAMAGE, SPELLVALUE_BASE_POINT0, damage, eventInfo.GetDamageInfo()->GetAttacker(), true, NULL, aurEff);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectProc += AuraEffectProcFn(spell_yogg_saron_grim_reprisal_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_yogg_saron_grim_reprisal_AuraScript();
}
@@ -2772,7 +2767,7 @@ class spell_yogg_saron_induce_madness : public SpellScriptLoader // 64059
{
PrepareSpellScript(spell_yogg_saron_induce_madness_SpellScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_TELEPORT_BACK_TO_MAIN_ROOM))
return false;
@@ -2800,14 +2795,14 @@ class spell_yogg_saron_induce_madness : public SpellScriptLoader // 64059
voice->AI()->DoAction(ACTION_TOGGLE_SHATTERED_ILLUSION);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_yogg_saron_induce_madness_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
AfterCast += SpellCastFn(spell_yogg_saron_induce_madness_SpellScript::ClearShatteredIllusion);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_yogg_saron_induce_madness_SpellScript();
}
@@ -2829,7 +2824,7 @@ class spell_yogg_saron_sanity : public SpellScriptLoader // 63050
GetSpell()->SetSpellValue(SPELLVALUE_AURA_STACK, 100);
}
- void Register()
+ void Register() OVERRIDE
{
BeforeCast += SpellCastFn(spell_yogg_saron_sanity_SpellScript::ModSanityStacks);
}
@@ -2839,7 +2834,7 @@ class spell_yogg_saron_sanity : public SpellScriptLoader // 63050
{
PrepareAuraScript(spell_yogg_saron_sanity_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_LOW_SANITY_SCREEN_EFFECT))
return false;
@@ -2871,19 +2866,19 @@ class spell_yogg_saron_sanity : public SpellScriptLoader // 63050
caster->CastSpell(GetTarget(), SPELL_INSANE, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_yogg_saron_sanity_AuraScript::DummyTick, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
AfterEffectRemove += AuraEffectRemoveFn(spell_yogg_saron_sanity_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_yogg_saron_sanity_SpellScript();
}
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_yogg_saron_sanity_AuraScript();
}
@@ -2898,7 +2893,7 @@ class spell_yogg_saron_insane : public SpellScriptLoader // 63120
{
PrepareAuraScript(spell_yogg_saron_insane_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_INSANE_VISUAL))
return false;
@@ -2916,18 +2911,18 @@ class spell_yogg_saron_insane : public SpellScriptLoader // 63120
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
- if (GetTarget()->isAlive())
+ if (GetTarget()->IsAlive())
GetTarget()->Kill(GetTarget());
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectApply += AuraEffectApplyFn(spell_yogg_saron_insane_AuraScript::OnApply, EFFECT_0, SPELL_AURA_AOE_CHARM, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_yogg_saron_insane_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_AOE_CHARM, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_yogg_saron_insane_AuraScript();
}
@@ -2948,13 +2943,13 @@ class spell_yogg_saron_insane_periodic : public SpellScriptLoader // 64555
GetCaster()->CastSpell(target, uint32(GetEffectValue()), true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_yogg_saron_insane_periodic_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_yogg_saron_insane_periodic_SpellScript();
}
@@ -2983,7 +2978,7 @@ class spell_yogg_saron_lunatic_gaze : public SpellScriptLoader // 64164, 64
{
PrepareSpellScript(spell_yogg_saron_lunatic_gaze_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
_stacks = GetSpellInfo()->Id == SPELL_LUNATIC_GAZE_DAMAGE ? 4 : 2;
return true;
@@ -2994,7 +2989,7 @@ class spell_yogg_saron_lunatic_gaze : public SpellScriptLoader // 64164, 64
targets.remove_if(LunaticGazeTargetSelector(GetCaster()));
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_yogg_saron_lunatic_gaze_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_yogg_saron_lunatic_gaze_SpellScript::FilterTargets, EFFECT_1, TARGET_UNIT_SRC_AREA_ENEMY);
@@ -3002,7 +2997,7 @@ class spell_yogg_saron_lunatic_gaze : public SpellScriptLoader // 64164, 64
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_yogg_saron_lunatic_gaze_SpellScript();
}
@@ -3024,13 +3019,13 @@ class spell_yogg_saron_keeper_aura : public SpellScriptLoader // 62650, 6267
return true;
}
- void Register()
+ void Register() OVERRIDE
{
DoCheckAreaTarget += AuraCheckAreaTargetFn(spell_yogg_saron_keeper_aura_AuraScript::CanApply);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_yogg_saron_keeper_aura_AuraScript();
}
@@ -3052,13 +3047,13 @@ class spell_yogg_saron_hate_to_zero : public SpellScriptLoader // 63984
target->getThreatManager().modifyThreatPercent(GetCaster(), -100);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_yogg_saron_hate_to_zero_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_yogg_saron_hate_to_zero_SpellScript();
}
@@ -3088,13 +3083,13 @@ class spell_yogg_saron_in_the_maws_of_the_old_god : public SpellScriptLoader
return SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW;
}
- void Register()
+ void Register() OVERRIDE
{
OnCheckCast += SpellCheckCastFn(spell_yogg_saron_in_the_maws_of_the_old_god_SpellScript::CheckRequirement);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_yogg_saron_in_the_maws_of_the_old_god_SpellScript();
}
@@ -3115,13 +3110,13 @@ class spell_yogg_saron_titanic_storm : public SpellScriptLoader // 64172
GetCaster()->Kill(target);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_yogg_saron_titanic_storm_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_yogg_saron_titanic_storm_SpellScript();
}
@@ -3136,7 +3131,7 @@ class spell_yogg_saron_hodirs_protective_gaze : public SpellScriptLoader //
{
PrepareAuraScript(spell_yogg_saron_hodirs_protective_gaze_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_FLASH_FREEZE))
return false;
@@ -3162,14 +3157,14 @@ class spell_yogg_saron_hodirs_protective_gaze : public SpellScriptLoader //
PreventDefaultAction();
}
- void Register()
+ void Register() OVERRIDE
{
DoCheckAreaTarget += AuraCheckAreaTargetFn(spell_yogg_saron_hodirs_protective_gaze_AuraScript::CanApply);
OnEffectAbsorb += AuraEffectAbsorbFn(spell_yogg_saron_hodirs_protective_gaze_AuraScript::OnAbsorb, EFFECT_0);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_yogg_saron_hodirs_protective_gaze_AuraScript();
}
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp
index 421d0ecf3c9..13608285b08 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp
@@ -232,7 +232,7 @@ class instance_ulduar : public InstanceMapScript
{
Map::PlayerList const& Players = instance->GetPlayers();
if (!Players.isEmpty())
- if (Player* player = Players.begin()->getSource())
+ if (Player* player = Players.begin()->GetSource())
TeamInInstance = player->GetTeam();
}
@@ -503,6 +503,7 @@ class instance_ulduar : public InstanceMapScript
case GO_MOLE_MACHINE:
if (GetBossState(BOSS_RAZORSCALE) == IN_PROGRESS)
gameObject->SetGoState(GO_STATE_ACTIVE);
+ break;
case GO_HODIR_DOOR:
HodirDoorGUID = gameObject->GetGUID();
break;
@@ -621,19 +622,19 @@ class instance_ulduar : public InstanceMapScript
switch (eventId)
{
case EVENT_TOWER_OF_STORM_DESTROYED:
- if (FlameLeviathan && FlameLeviathan->isAlive())
+ if (FlameLeviathan && FlameLeviathan->IsAlive())
FlameLeviathan->AI()->DoAction(ACTION_TOWER_OF_STORM_DESTROYED);
break;
case EVENT_TOWER_OF_FROST_DESTROYED:
- if (FlameLeviathan && FlameLeviathan->isAlive())
+ if (FlameLeviathan && FlameLeviathan->IsAlive())
FlameLeviathan->AI()->DoAction(ACTION_TOWER_OF_FROST_DESTROYED);
break;
case EVENT_TOWER_OF_FLAMES_DESTROYED:
- if (FlameLeviathan && FlameLeviathan->isAlive())
+ if (FlameLeviathan && FlameLeviathan->IsAlive())
FlameLeviathan->AI()->DoAction(ACTION_TOWER_OF_FLAMES_DESTROYED);
break;
case EVENT_TOWER_OF_LIFE_DESTROYED:
- if (FlameLeviathan && FlameLeviathan->isAlive())
+ if (FlameLeviathan && FlameLeviathan->IsAlive())
FlameLeviathan->AI()->DoAction(ACTION_TOWER_OF_LIFE_DESTROYED);
break;
case EVENT_ACTIVATE_SANITY_WELL:
@@ -724,7 +725,7 @@ class instance_ulduar : public InstanceMapScript
// get item level (recheck weapons)
Map::PlayerList const& players = instance->GetPlayers();
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
- if (Player* player = itr->getSource())
+ if (Player* player = itr->GetSource())
for (uint8 slot = EQUIPMENT_SLOT_MAINHAND; slot <= EQUIPMENT_SLOT_RANGED; ++slot)
if (Item* item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, slot))
if (item->GetTemplate()->ItemLevel > _maxWeaponItemLevel)
@@ -736,7 +737,7 @@ class instance_ulduar : public InstanceMapScript
Map::PlayerList const& players = instance->GetPlayers();
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
{
- if (Player* player = itr->getSource())
+ if (Player* player = itr->GetSource())
{
for (uint8 slot = EQUIPMENT_SLOT_START; slot < EQUIPMENT_SLOT_END; ++slot)
{
@@ -763,7 +764,7 @@ class instance_ulduar : public InstanceMapScript
return true;
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
switch (type)
{
@@ -811,11 +812,11 @@ class instance_ulduar : public InstanceMapScript
}
}
- void SetData64(uint32 /*type*/, uint64 /*data*/)
+ void SetData64(uint32 /*type*/, uint64 /*data*/) OVERRIDE
{
}
- uint64 GetData64(uint32 data) const
+ uint64 GetData64(uint32 data) const OVERRIDE
{
switch (data)
{
@@ -929,7 +930,7 @@ class instance_ulduar : public InstanceMapScript
return 0;
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -1104,7 +1105,7 @@ class instance_ulduar : public InstanceMapScript
uint32 _maxWeaponItemLevel;
};
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_ulduar_InstanceMapScript(map);
}
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h b/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h
index 86c0c4888ed..35d11522580 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h
@@ -21,7 +21,7 @@
#include "ObjectMgr.h"
#define UlduarScriptName "instance_ulduar"
-extern Position const ObservationRingKeepersPos[4];
+extern Position const ObservationRingKeepersPos[4];
extern Position const YSKeepersPos[4];
extern Position const AlgalonLandPos;
@@ -149,7 +149,7 @@ enum UlduarNPCs
NPC_SANITY_WELL = 33991,
NPC_DESCEND_INTO_MADNESS = 34072,
NPC_MARKED_IMMORTAL_GUARDIAN = 36064,
-
+
// Algalon the Observer
NPC_BRANN_BRONZBEARD_ALG = 34064,
NPC_AZEROTH = 34246,
@@ -355,7 +355,7 @@ class PlayerOrPetCheck
bool operator()(WorldObject* object) const
{
if (object->GetTypeId() != TYPEID_PLAYER)
- if (!object->ToCreature()->isPet())
+ if (!object->ToCreature()->IsPet())
return true;
return false;
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar_teleporter.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar_teleporter.cpp
index e5c617ff786..054a32a75d2 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar_teleporter.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar_teleporter.cpp
@@ -50,7 +50,7 @@ class ulduar_teleporter : public GameObjectScript
public:
ulduar_teleporter() : GameObjectScript("ulduar_teleporter") { }
- bool OnGossipSelect(Player* player, GameObject* /*gameObject*/, uint32 sender, uint32 action)
+ bool OnGossipSelect(Player* player, GameObject* /*gameObject*/, uint32 sender, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (sender != GOSSIP_SENDER_MAIN)
@@ -93,7 +93,7 @@ class ulduar_teleporter : public GameObjectScript
return true;
}
- bool OnGossipHello(Player* player, GameObject* gameObject)
+ bool OnGossipHello(Player* player, GameObject* gameObject) OVERRIDE
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Teleport to the Expedition Base Camp", GOSSIP_SENDER_MAIN, BASE_CAMP);
if (InstanceScript* instance = gameObject->GetInstanceScript())
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp
index dfb12a03c33..3dd84c62890 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp
@@ -28,7 +28,6 @@ EndScriptData */
enum Yells
{
- //Yells Ingvar
YELL_AGGRO_1 = 0,
YELL_KILL_1 = 1,
YELL_DEAD_1 = 2,
@@ -40,9 +39,10 @@ enum Yells
enum Creatures
{
- MOB_INGVAR_HUMAN = 23954,
- MOB_ANNHYLDE_THE_CALLER = 24068,
- MOB_INGVAR_UNDEAD = 23980,
+ NPC_INGVAR_HUMAN = 23954,
+ NPC_ANNHYLDE_THE_CALLER = 24068,
+ NPC_INGVAR_UNDEAD = 23980,
+ NPC_THROW_TARGET = 23996,
};
enum Events
@@ -69,7 +69,7 @@ enum Phases
enum Spells
{
- //Ingvar Spells human form
+ // Ingvar Spells human form
SPELL_CLEAVE = 42724,
SPELL_SMASH = 42669,
SPELL_STAGGERING_ROAR = 42708,
@@ -79,13 +79,18 @@ enum Spells
SPELL_SUMMON_BANSHEE = 42912,
SPELL_SCOURG_RESURRECTION = 42863, // Spawn resurrect effect around Ingvar
- //Ingvar Spells undead form
+ // Ingvar Spells undead form
SPELL_DARK_SMASH = 42723,
SPELL_DREADFUL_ROAR = 42729,
SPELL_WOE_STRIKE = 42730,
- ENTRY_THROW_TARGET = 23996,
- SPELL_SHADOW_AXE_SUMMON = 42748
+ SPELL_SHADOW_AXE_SUMMON = 42748,
+
+ // Spells for Annhylde
+ SPELL_SCOURG_RESURRECTION_HEAL = 42704, // Heal Max + DummyAura
+ SPELL_SCOURG_RESURRECTION_BEAM = 42857, // Channeling Beam of Annhylde
+ SPELL_SCOURG_RESURRECTION_DUMMY = 42862, // Some Emote Dummy?
+ SPELL_INGVAR_TRANSFORM = 42796
};
class boss_ingvar_the_plunderer : public CreatureScript
@@ -93,7 +98,7 @@ class boss_ingvar_the_plunderer : public CreatureScript
public:
boss_ingvar_the_plunderer() : CreatureScript("boss_ingvar_the_plunderer") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_ingvar_the_plundererAI(creature);
}
@@ -110,10 +115,10 @@ public:
bool bIsUndead;
- void Reset()
+ void Reset() OVERRIDE
{
if (bIsUndead)
- me->UpdateEntry(MOB_INGVAR_HUMAN);
+ me->UpdateEntry(NPC_INGVAR_HUMAN);
bIsUndead = false;
@@ -132,7 +137,7 @@ public:
instance->SetData(DATA_INGVAR_EVENT, NOT_STARTED);
}
- void DamageTaken(Unit* /*done_by*/, uint32 &damage)
+ void DamageTaken(Unit* /*done_by*/, uint32 &damage) OVERRIDE
{
if (damage >= me->GetHealth() && !bIsUndead)
{
@@ -160,13 +165,13 @@ public:
void StartZombiePhase()
{
bIsUndead = true;
- me->UpdateEntry(MOB_INGVAR_UNDEAD);
+ me->UpdateEntry(NPC_INGVAR_UNDEAD);
events.ScheduleEvent(EVENT_JUST_TRANSFORMED, 2 * IN_MILLISECONDS, 0, PHASE_EVENT);
Talk(YELL_AGGRO_2);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (!bIsUndead)
Talk(YELL_AGGRO_1);
@@ -177,14 +182,14 @@ public:
me->SetInCombatWithZone();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(YELL_DEAD_2);
if (instance)
{
- // Ingvar has MOB_INGVAR_UNDEAD id in this moment, so we have to update encounter state for his original id
- instance->UpdateEncounterState(ENCOUNTER_CREDIT_KILL_CREATURE, MOB_INGVAR_HUMAN, me);
+ // Ingvar has NPC_INGVAR_UNDEAD id in this moment, so we have to update encounter state for his original id
+ instance->UpdateEncounterState(ENCOUNTER_CREDIT_KILL_CREATURE, NPC_INGVAR_HUMAN, me);
instance->SetData(DATA_INGVAR_EVENT, DONE);
}
}
@@ -198,12 +203,12 @@ public:
events.ScheduleEvent(EVENT_SHADOW_AXE, 30*IN_MILLISECONDS, 0, PHASE_UNDEAD);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(bIsUndead ? YELL_KILL_1 : YELL_KILL_2);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim() && !events.IsInPhase(PHASE_EVENT))
return;
@@ -237,7 +242,7 @@ public:
case EVENT_JUST_TRANSFORMED:
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
me->SetInCombatWithZone();
- me->GetMotionMaster()->MoveChase(me->getVictim());
+ me->GetMotionMaster()->MoveChase(me->GetVictim());
ScheduleSecondPhase();
return;
case EVENT_SUMMON_BANSHEE:
@@ -274,31 +279,20 @@ public:
};
-enum eSpells
-{
-//we don't have that text in db so comment it until we get this text
-// YELL_RESSURECT = -1574025,
-//Spells for Annhylde
- SPELL_SCOURG_RESURRECTION_HEAL = 42704, //Heal Max + DummyAura
- SPELL_SCOURG_RESURRECTION_BEAM = 42857, //Channeling Beam of Annhylde
- SPELL_SCOURG_RESURRECTION_DUMMY = 42862, //Some Emote Dummy?
- SPELL_INGVAR_TRANSFORM = 42796
-};
-
-class mob_annhylde_the_caller : public CreatureScript
+class npc_annhylde_the_caller : public CreatureScript
{
public:
- mob_annhylde_the_caller() : CreatureScript("mob_annhylde_the_caller") { }
+ npc_annhylde_the_caller() : CreatureScript("npc_annhylde_the_caller") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_annhylde_the_callerAI (creature);
+ return new npc_annhylde_the_callerAI(creature);
}
- struct mob_annhylde_the_callerAI : public ScriptedAI
+ struct npc_annhylde_the_callerAI : public ScriptedAI
{
- mob_annhylde_the_callerAI(Creature* creature) : ScriptedAI(creature)
+ npc_annhylde_the_callerAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -308,14 +302,10 @@ public:
uint32 uiResurectTimer;
uint32 uiResurectPhase;
- void Reset()
+ void Reset() OVERRIDE
{
//! HACK: Creature's can't have MOVEMENTFLAG_FLYING
- me->AddUnitMovementFlag(MOVEMENTFLAG_FLYING | MOVEMENTFLAG_HOVER);
- me->SetSpeed(MOVE_SWIM, 1.0f);
- me->SetSpeed(MOVE_RUN, 1.0f);
- me->SetSpeed(MOVE_WALK, 1.0f);
- //me->SetSpeed(MOVE_FLIGHT, 1.0f);
+ me->SetHover(true);
me->GetPosition(x, y, z);
DoTeleportTo(x+1, y, z+30);
@@ -329,7 +319,7 @@ public:
}
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type != POINT_MOTION_TYPE)
return;
@@ -354,10 +344,11 @@ public:
}
}
- void AttackStart(Unit* /*who*/) {}
- void MoveInLineOfSight(Unit* /*who*/) {}
- void EnterCombat(Unit* /*who*/) {}
- void UpdateAI(uint32 diff)
+ void AttackStart(Unit* /*who*/) OVERRIDE {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
+
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (uiResurectTimer)
{
@@ -380,7 +371,7 @@ public:
{
ingvar->RemoveAurasDueToSpell(SPELL_SCOURG_RESURRECTION_DUMMY);
- if (ingvar->getVictim())
+ if (ingvar->GetVictim())
if (boss_ingvar_the_plunderer::boss_ingvar_the_plundererAI* ai = CAST_AI(boss_ingvar_the_plunderer::boss_ingvar_the_plundererAI, ingvar->AI()))
ai->StartZombiePhase();
@@ -395,32 +386,32 @@ public:
};
};
-enum eShadowAxe
+enum ShadowAxe
{
SPELL_SHADOW_AXE_DAMAGE = 42750,
H_SPELL_SHADOW_AXE_DAMAGE = 59719,
POINT_TARGET = 28
};
-class mob_ingvar_throw_dummy : public CreatureScript
+class npc_ingvar_throw_dummy : public CreatureScript
{
public:
- mob_ingvar_throw_dummy() : CreatureScript("mob_ingvar_throw_dummy") { }
+ npc_ingvar_throw_dummy() : CreatureScript("npc_ingvar_throw_dummy") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_ingvar_throw_dummyAI (creature);
+ return new npc_ingvar_throw_dummyAI(creature);
}
- struct mob_ingvar_throw_dummyAI : public ScriptedAI
+ struct npc_ingvar_throw_dummyAI : public ScriptedAI
{
- mob_ingvar_throw_dummyAI(Creature* creature) : ScriptedAI(creature)
+ npc_ingvar_throw_dummyAI(Creature* creature) : ScriptedAI(creature)
{
}
- void Reset()
+ void Reset() OVERRIDE
{
- if (Creature* target = me->FindNearestCreature(ENTRY_THROW_TARGET, 50.0f))
+ if (Creature* target = me->FindNearestCreature(NPC_THROW_TARGET, 50.0f))
{
float x, y, z;
target->GetPosition(x, y, z);
@@ -428,12 +419,10 @@ public:
target->DisappearAndDie();
}
else
- {
me->DisappearAndDie();
- }
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type == EFFECT_MOTION_TYPE && id == POINT_TARGET)
{
@@ -453,6 +442,6 @@ public:
void AddSC_boss_ingvar_the_plunderer()
{
new boss_ingvar_the_plunderer();
- new mob_annhylde_the_caller();
- new mob_ingvar_throw_dummy();
+ new npc_annhylde_the_caller();
+ new npc_ingvar_throw_dummy();
}
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp
index 896421909ad..6c7bf6afbe0 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp
@@ -78,7 +78,7 @@ class npc_frost_tomb : public CreatureScript
public:
npc_frost_tomb() : CreatureScript("npc_frost_tomb") {}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_frost_tombAI(creature);
}
@@ -87,16 +87,16 @@ public:
{
npc_frost_tombAI(Creature* creature) : ScriptedAI(creature)
{
- if (me->isSummon())
+ if (me->IsSummon())
if (Unit* summon = me->ToTempSummon()->GetSummoner())
DoCast(summon, SPELL_FROST_TOMB, true);
instance = creature->GetInstanceScript();
}
- void UpdateAI(uint32 /*diff*/) {}
+ void UpdateAI(uint32 /*diff*/) OVERRIDE {}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
if (Unit* boss = me->GetUnit(*me, instance->GetData64(DATA_PRINCEKELESETH)))
@@ -114,16 +114,16 @@ class boss_keleseth : public CreatureScript
public:
boss_keleseth() : CreatureScript("boss_keleseth") {}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_kelesethAI (creature);
+ return new boss_kelesethAI(creature);
}
struct boss_kelesethAI : public BossAI
{
boss_kelesethAI(Creature* creature) : BossAI(creature, DATA_PRINCEKELESETH_EVENT){}
- void Reset()
+ void Reset() OVERRIDE
{
if (instance)
instance->SetData(DATA_PRINCEKELESETH_EVENT, NOT_STARTED);
@@ -138,7 +138,7 @@ public:
onTheRocks = true;
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
me->SetInCombatWithZone();
if (instance)
@@ -154,7 +154,7 @@ public:
{
for (std::list<Creature*>::iterator itr = runemages.begin(); itr != runemages.end(); ++itr)
{
- if ((*itr)->isAlive() && (*itr)->IsWithinLOSInMap(me))
+ if ((*itr)->IsAlive() && (*itr)->IsWithinLOSInMap(me))
(*itr)->AI()->AttackStart(who);
}
}
@@ -165,13 +165,13 @@ public:
{
for (std::list<Creature*>::iterator itr = strategists.begin(); itr != strategists.end(); ++itr)
{
- if ((*itr)->isAlive() && (*itr)->IsWithinLOSInMap(me))
+ if ((*itr)->IsAlive() && (*itr)->IsWithinLOSInMap(me))
(*itr)->AI()->AttackStart(who);
}
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
instance->SetData(DATA_PRINCEKELESETH_EVENT, DONE);
@@ -179,13 +179,13 @@ public:
Talk(SAY_DEATH);
}
- void SetData(uint32 data, uint32 value)
+ void SetData(uint32 data, uint32 value) OVERRIDE
{
if (data == DATA_ON_THE_ROCKS)
onTheRocks = value;
}
- uint32 GetData(uint32 data) const
+ uint32 GetData(uint32 data) const OVERRIDE
{
if (data == DATA_ON_THE_ROCKS)
return onTheRocks;
@@ -193,7 +193,7 @@ public:
return 0;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -249,23 +249,23 @@ class npc_vrykul_skeleton : public CreatureScript
public:
npc_vrykul_skeleton() : CreatureScript("npc_vrykul_skeleton") {}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_vrykul_skeletonAI (creature);
+ return new npc_vrykul_skeletonAI(creature);
}
struct npc_vrykul_skeletonAI : public ScriptedAI
{
npc_vrykul_skeletonAI(Creature* creature) : ScriptedAI(creature) {}
- void Reset()
+ void Reset() OVERRIDE
{
events.Reset();
events.ScheduleEvent(EVENT_DECREPIFY, urand(4, 6)*IN_MILLISECONDS);
}
- void DamageTaken(Unit* /*done_by*/, uint32 &damage)
+ void DamageTaken(Unit* /*done_by*/, uint32 &damage) OVERRIDE
{
if (damage >= me->GetHealth())
{
@@ -288,7 +288,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -324,7 +324,7 @@ public:
}
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->RemoveFlag(UNIT_FIELD_BYTES_1, UNIT_STAND_STATE_DEAD);
- me->GetMotionMaster()->MoveChase(me->getVictim());
+ me->GetMotionMaster()->MoveChase(me->GetVictim());
events.ScheduleEvent(EVENT_DECREPIFY, urand(4, 6)*IN_MILLISECONDS);
break;
}
@@ -351,17 +351,17 @@ class spell_frost_tomb : public SpellScriptLoader
{
if (GetTargetApplication()->GetRemoveMode() != AURA_REMOVE_BY_DEATH)
if (Unit* caster = GetCaster())
- if (caster->ToCreature() && caster->isAlive())
+ if (caster->ToCreature() && caster->IsAlive())
caster->ToCreature()->DespawnOrUnsummon(1000);
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectRemove += AuraEffectRemoveFn(spell_frost_tomb_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_MOD_STUN, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_frost_tomb_AuraScript();
}
@@ -373,7 +373,7 @@ class achievement_on_the_rocks : public AchievementCriteriaScript
public:
achievement_on_the_rocks() : AchievementCriteriaScript("achievement_on_the_rocks") {}
- bool OnCheck(Player* /*source*/, Unit* target)
+ bool OnCheck(Player* /*source*/, Unit* target) OVERRIDE
{
return target && target->IsAIEnabled && target->GetAI()->GetData(DATA_ON_THE_ROCKS);
}
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp
index 75f643286b2..4ece79b0f7f 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp
@@ -26,37 +26,44 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "utgarde_keep.h"
-enum eEnums
+enum Yells
{
- //signed for 24200, but used by 24200, 27390
+ // signed for 24200, but used by 24200, 27390
YELL_SKARVALD_AGGRO = 0,
YELL_SKARVALD_DAL_DIED = 1,
YELL_SKARVALD_SKA_DIEDFIRST = 2,
YELL_SKARVALD_KILL = 3,
YELL_SKARVALD_DAL_DIEDFIRST = 4,
- //signed for 24201, but used by 24201, 27389
+ // signed for 24201, but used by 24201, 27389
YELL_DALRONN_AGGRO = 0,
YELL_DALRONN_SKA_DIED = 1,
YELL_DALRONN_DAL_DIEDFIRST = 2,
YELL_DALRONN_KILL = 3,
- YELL_DALRONN_SKA_DIEDFIRST = 4,
+ YELL_DALRONN_SKA_DIEDFIRST = 4
+};
-//Spells of Skarvald and his Ghost
- MOB_SKARVALD_THE_CONSTRUCTOR = 24200,
+enum Spells
+{
+ // Spells of Skarvald and his Ghost
SPELL_CHARGE = 43651,
SPELL_STONE_STRIKE = 48583,
SPELL_SUMMON_SKARVALD_GHOST = 48613,
SPELL_ENRAGE = 48193,
- MOB_SKARVALD_GHOST = 27390,
-//Spells of Dalronn and his Ghost
- MOB_DALRONN_THE_CONTROLLER = 24201,
+ // Spells of Dalronn and his Ghost
SPELL_SHADOW_BOLT = 43649,
H_SPELL_SHADOW_BOLT = 59575,
H_SPELL_SUMMON_SKELETONS = 52611,
SPELL_DEBILITATE = 43650,
SPELL_SUMMON_DALRONN_GHOST = 48612,
- MOB_DALRONN_GHOST = 27389
+};
+
+enum Creatures
+{
+ NPC_SKARVALD_THE_CONSTRUCTOR = 24200,
+ NPC_SKARVALD_GHOST = 27390,
+ NPC_DALRONN_THE_CONTROLLER = 24201,
+ NPC_DALRONN_GHOST = 27389
};
class SkarvaldChargePredicate
@@ -78,9 +85,9 @@ class boss_skarvald_the_constructor : public CreatureScript
public:
boss_skarvald_the_constructor() : CreatureScript("boss_skarvald_the_constructor") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_skarvald_the_constructorAI (creature);
+ return new boss_skarvald_the_constructorAI(creature);
}
struct boss_skarvald_the_constructorAI : public ScriptedAI
@@ -100,7 +107,7 @@ public:
bool Dalronn_isDead;
bool Enraged;
- void Reset()
+ void Reset() OVERRIDE
{
Charge_Timer = 5000;
StoneStrike_Timer = 10000;
@@ -108,7 +115,7 @@ public:
Check_Timer = 5000;
Enraged = false;
- ghost = (me->GetEntry() == MOB_SKARVALD_GHOST);
+ ghost = (me->GetEntry() == NPC_SKARVALD_GHOST);
if (!ghost && instance)
{
Unit* dalronn = Unit::GetUnit(*me, instance->GetData64(DATA_DALRONN));
@@ -119,21 +126,21 @@ public:
}
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (!ghost && instance)
{
Talk(YELL_SKARVALD_AGGRO);
Unit* dalronn = Unit::GetUnit(*me, instance->GetData64(DATA_DALRONN));
- if (dalronn && dalronn->isAlive() && !dalronn->getVictim())
+ if (dalronn && dalronn->IsAlive() && !dalronn->GetVictim())
dalronn->getThreatManager().addThreat(who, 0.0f);
instance->SetData(DATA_SKARVALD_DALRONN_EVENT, IN_PROGRESS);
}
}
- void DamageTaken(Unit* /*attacker*/, uint32& damage)
+ void DamageTaken(Unit* /*attacker*/, uint32& damage) OVERRIDE
{
if (!Enraged && !ghost && me->HealthBelowPctDamaged(15, damage))
{
@@ -142,7 +149,7 @@ public:
}
}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
if (!ghost && instance)
{
@@ -161,7 +168,7 @@ public:
me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
//DoCast(me, SPELL_SUMMON_SKARVALD_GHOST, true);
- Creature* temp = me->SummonCreature(MOB_SKARVALD_GHOST, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0, TEMPSUMMON_CORPSE_DESPAWN, 5000);
+ Creature* temp = me->SummonCreature(NPC_SKARVALD_GHOST, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0, TEMPSUMMON_CORPSE_DESPAWN, 5000);
if (temp)
{
temp->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
@@ -172,7 +179,7 @@ public:
}
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
if (!ghost)
{
@@ -180,7 +187,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (ghost)
{
@@ -226,7 +233,7 @@ public:
if (StoneStrike_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_STONE_STRIKE);
+ DoCastVictim(SPELL_STONE_STRIKE);
StoneStrike_Timer = 5000+rand()%5000;
} else StoneStrike_Timer -= diff;
@@ -242,9 +249,9 @@ class boss_dalronn_the_controller : public CreatureScript
public:
boss_dalronn_the_controller() : CreatureScript("boss_dalronn_the_controller") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_dalronn_the_controllerAI (creature);
+ return new boss_dalronn_the_controllerAI(creature);
}
struct boss_dalronn_the_controllerAI : public ScriptedAI
@@ -266,7 +273,7 @@ public:
uint32 AggroYell_Timer;
bool Skarvald_isDead;
- void Reset()
+ void Reset() OVERRIDE
{
ShadowBolt_Timer = 1000;
Debilitate_Timer = 5000;
@@ -275,7 +282,7 @@ public:
Skarvald_isDead = false;
AggroYell_Timer = 0;
- ghost = me->GetEntry() == MOB_DALRONN_GHOST;
+ ghost = me->GetEntry() == NPC_DALRONN_GHOST;
if (!ghost && instance)
{
Unit* skarvald = Unit::GetUnit(*me, instance->GetData64(DATA_SKARVALD));
@@ -286,12 +293,12 @@ public:
}
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (!ghost && instance)
{
Unit* skarvald = Unit::GetUnit(*me, instance->GetData64(DATA_SKARVALD));
- if (skarvald && skarvald->isAlive() && !skarvald->getVictim())
+ if (skarvald && skarvald->IsAlive() && !skarvald->GetVictim())
skarvald->getThreatManager().addThreat(who, 0.0f);
AggroYell_Timer = 5000;
@@ -301,7 +308,7 @@ public:
}
}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
if (!ghost && instance)
{
@@ -321,7 +328,7 @@ public:
me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
//DoCast(me, SPELL_SUMMON_DALRONN_GHOST, true);
- Creature* temp = me->SummonCreature(MOB_DALRONN_GHOST, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0, TEMPSUMMON_CORPSE_DESPAWN, 5000);
+ Creature* temp = me->SummonCreature(NPC_DALRONN_GHOST, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0, TEMPSUMMON_CORPSE_DESPAWN, 5000);
if (temp)
{
temp->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
@@ -332,7 +339,7 @@ public:
}
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
if (!ghost)
{
@@ -340,7 +347,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (ghost)
{
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/instance_utgarde_keep.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/instance_utgarde_keep.cpp
index 562aa5a3848..ad7817daeb0 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/instance_utgarde_keep.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/instance_utgarde_keep.cpp
@@ -55,7 +55,7 @@ class instance_utgarde_keep : public InstanceMapScript
public:
instance_utgarde_keep() : InstanceMapScript("instance_utgarde_keep", 574) { }
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_utgarde_keep_InstanceMapScript(map);
}
@@ -116,7 +116,7 @@ public:
{
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
{
- if (Player* player = itr->getSource())
+ if (Player* player = itr->GetSource())
return player;
}
}
@@ -166,7 +166,7 @@ public:
}
}
- uint64 GetData64(uint32 identifier) const
+ uint64 GetData64(uint32 identifier) const OVERRIDE
{
switch (identifier)
{
@@ -179,7 +179,7 @@ public:
return 0;
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
switch (type)
{
@@ -247,7 +247,7 @@ public:
}
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp
index 4f7f0e844bb..fa28695ff62 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp
@@ -33,7 +33,7 @@ class npc_dragonflayer_forge_master : public CreatureScript
public:
npc_dragonflayer_forge_master() : CreatureScript("npc_dragonflayer_forge_master") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_dragonflayer_forge_masterAI(creature);
}
@@ -49,7 +49,7 @@ public:
InstanceScript* instance;
uint8 fm_Type;
- void Reset()
+ void Reset() OVERRIDE
{
if (fm_Type == 0)
fm_Type = GetForgeMasterType();
@@ -64,21 +64,21 @@ public:
switch (fm_Type)
{
case 1:
- instance->SetData(EVENT_FORGE_1, me->isAlive() ? NOT_STARTED : DONE);
+ instance->SetData(EVENT_FORGE_1, me->IsAlive() ? NOT_STARTED : DONE);
break;
case 2:
- instance->SetData(EVENT_FORGE_2, me->isAlive() ? NOT_STARTED : DONE);
+ instance->SetData(EVENT_FORGE_2, me->IsAlive() ? NOT_STARTED : DONE);
break;
case 3:
- instance->SetData(EVENT_FORGE_3, me->isAlive() ? NOT_STARTED : DONE);
+ instance->SetData(EVENT_FORGE_3, me->IsAlive() ? NOT_STARTED : DONE);
break;
}
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (fm_Type == 0)
fm_Type = GetForgeMasterType();
@@ -102,7 +102,7 @@ public:
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (fm_Type == 0)
fm_Type = GetForgeMasterType();
@@ -146,7 +146,7 @@ public:
return near_f > 0 && near_f < 4 ? near_f : 0;
}
- void UpdateAI(uint32 /* diff */)
+ void UpdateAI(uint32 /* diff */) OVERRIDE
{
if (fm_Type == 0)
fm_Type = GetForgeMasterType();
@@ -163,6 +163,7 @@ enum TickingTimeBomb
{
SPELL_TICKING_TIME_BOMB_EXPLODE = 59687
};
+
class spell_ticking_time_bomb : public SpellScriptLoader
{
public:
@@ -172,9 +173,11 @@ class spell_ticking_time_bomb : public SpellScriptLoader
{
PrepareAuraScript(spell_ticking_time_bomb_AuraScript);
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
- return (bool) sSpellMgr->GetSpellInfo(SPELL_TICKING_TIME_BOMB_EXPLODE);
+ if (!sSpellMgr->GetSpellInfo(SPELL_TICKING_TIME_BOMB_EXPLODE))
+ return false;
+ return true;
}
void HandleOnEffectRemove(AuraEffect const* /* aurEff */, AuraEffectHandleModes /* mode */)
@@ -185,13 +188,13 @@ class spell_ticking_time_bomb : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectRemove += AuraEffectRemoveFn(spell_ticking_time_bomb_AuraScript::HandleOnEffectRemove, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_ticking_time_bomb_AuraScript();
}
@@ -210,9 +213,11 @@ class spell_fixate : public SpellScriptLoader
{
PrepareSpellScript(spell_fixate_SpellScript);
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
- return (bool) sSpellMgr->GetSpellInfo(SPELL_FIXATE_TRIGGER);
+ if (!sSpellMgr->GetSpellInfo(SPELL_FIXATE_TRIGGER))
+ return false;
+ return true;
}
void HandleScriptEffect(SpellEffIndex /*effIndex*/)
@@ -221,13 +226,13 @@ class spell_fixate : public SpellScriptLoader
GetCaster()->CastSpell(GetCaster(), SPELL_FIXATE_TRIGGER, true, 0, 0, GetHitUnit()->GetGUID());
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_fixate_SpellScript::HandleScriptEffect, EFFECT_2, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_fixate_SpellScript();
}
@@ -265,7 +270,7 @@ public:
_setData = false;
}
- void Reset()
+ void Reset() OVERRIDE
{
_events.Reset();
_events.ScheduleEvent(EVENT_REND, urand(2000, 3000));
@@ -273,7 +278,7 @@ public:
_events.ScheduleEvent(EVENT_KNOCKAWAY, urand(3500, 6000));
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type == WAYPOINT_MOTION_TYPE && id == POINT_LAST)
{
@@ -281,7 +286,7 @@ public:
}
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
if (type == TYPE_PROTODRAKE_AT && data == DATA_PROTODRAKE_MOVE && !_setData && me->GetDistance(protodrakeCheckPos) < 5.0f)
{
@@ -291,7 +296,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -331,7 +336,7 @@ public:
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_enslaved_proto_drakeAI(creature);
}
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.h b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.h
index 73ff0075aba..b0d9d702db5 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.h
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.h
@@ -18,17 +18,20 @@
#ifndef DEF_UTGARDE_KEEP_H
#define DEF_UTGARDE_KEEP_H
-#define DATA_PRINCEKELESETH 1
-#define DATA_SKARVALD 3
-#define DATA_DALRONN 4
-#define DATA_INGVAR 6
+enum DataTypes
+{
+ DATA_PRINCEKELESETH = 1,
+ DATA_SKARVALD = 3,
+ DATA_DALRONN = 4,
+ DATA_INGVAR = 6,
-#define DATA_PRINCEKELESETH_EVENT 2
-#define DATA_SKARVALD_DALRONN_EVENT 5
-#define DATA_INGVAR_EVENT 7
+ DATA_PRINCEKELESETH_EVENT = 2,
+ DATA_SKARVALD_DALRONN_EVENT = 5,
+ DATA_INGVAR_EVENT = 7,
-#define EVENT_FORGE_1 8
-#define EVENT_FORGE_2 9
-#define EVENT_FORGE_3 10
+ EVENT_FORGE_1 = 8,
+ EVENT_FORGE_2 = 9,
+ EVENT_FORGE_3 = 10
+};
#endif
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp
index 2b1d850ab25..b70bda76d76 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp
@@ -23,6 +23,7 @@ SDComment:
SDCategory:
Script Data End */
+#include <algorithm>
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "utgarde_pinnacle.h"
@@ -54,7 +55,7 @@ enum Yells
enum Creatures
{
- MOB_STASIS_CONTROLLER = 26688
+ NPC_STASIS_CONTROLLER = 26688
};
struct Locations
@@ -87,9 +88,9 @@ class boss_palehoof : public CreatureScript
public:
boss_palehoof() : CreatureScript("boss_palehoof") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_palehoofAI (creature);
+ return new boss_palehoofAI(creature);
}
struct boss_palehoofAI : public ScriptedAI
@@ -105,20 +106,25 @@ public:
uint32 uiWaitingTimer;
Phase currentPhase;
uint8 AddCount;
- bool DoneAdds[4];
+ Phase Sequence[4];
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
+ /// There is a good reason to store them like this, we are going to shuffle the order.
+ for (uint32 i = PHASE_FRENZIED_WORGEN; i < PHASE_GORTOK_PALEHOOF; ++i)
+ Sequence[i] = Phase(i);
+
+ /// This ensures a random order and only executes each phase once.
+ std::random_shuffle(Sequence, Sequence + PHASE_GORTOK_PALEHOOF);
+
uiArcingSmashTimer = 15000;
uiImpaleTimer = 12000;
uiWhiteringRoarTimer = 10000;
me->GetMotionMaster()->MoveTargetedHome();
- for (uint32 i = 0; i < 4; i++)
- DoneAdds[i] = false;
AddCount = 0;
currentPhase = PHASE_NONE;
@@ -127,20 +133,20 @@ public:
{
instance->SetData(DATA_GORTOK_PALEHOOF_EVENT, NOT_STARTED);
- Creature* temp = Unit::GetCreature((*me), instance->GetData64(DATA_MOB_FRENZIED_WORGEN));
- if (temp && !temp->isAlive())
+ Creature* temp = Unit::GetCreature((*me), instance->GetData64(DATA_NPC_FRENZIED_WORGEN));
+ if (temp && !temp->IsAlive())
temp->Respawn();
- temp = Unit::GetCreature((*me), instance->GetData64(DATA_MOB_FEROCIOUS_RHINO));
- if (temp && !temp->isAlive())
+ temp = Unit::GetCreature((*me), instance->GetData64(DATA_NPC_FEROCIOUS_RHINO));
+ if (temp && !temp->IsAlive())
temp->Respawn();
- temp = Unit::GetCreature((*me), instance->GetData64(DATA_MOB_MASSIVE_JORMUNGAR));
- if (temp && !temp->isAlive())
+ temp = Unit::GetCreature((*me), instance->GetData64(DATA_NPC_MASSIVE_JORMUNGAR));
+ if (temp && !temp->IsAlive())
temp->Respawn();
- temp = Unit::GetCreature((*me), instance->GetData64(DATA_MOB_RAVENOUS_FURBOLG));
- if (temp && !temp->isAlive())
+ temp = Unit::GetCreature((*me), instance->GetData64(DATA_NPC_RAVENOUS_FURBOLG));
+ if (temp && !temp->IsAlive())
temp->Respawn();
GameObject* go = instance->instance->GetGameObject(instance->GetData64(DATA_GORTOK_PALEHOOF_SPHERE));
@@ -152,12 +158,12 @@ public:
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (!who)
return;
@@ -174,7 +180,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (currentPhase != PHASE_GORTOK_PALEHOOF)
return;
@@ -183,8 +189,8 @@ public:
if (!UpdateVictim())
return;
- Creature* temp = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_MOB_ORB) : 0);
- if (temp && temp->isAlive())
+ Creature* temp = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_NPC_ORB) : 0);
+ if (temp && temp->IsAlive())
temp->DisappearAndDie();
if (uiArcingSmashTimer <= diff)
@@ -209,17 +215,17 @@ public:
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
//Talk(SAY_DEATH);
if (instance)
instance->SetData(DATA_GORTOK_PALEHOOF_EVENT, DONE);
- Creature* temp = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_MOB_ORB) : 0);
- if (temp && temp->isAlive())
+ Creature* temp = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_NPC_ORB) : 0);
+ if (temp && temp->IsAlive())
temp->DisappearAndDie();
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
@@ -228,36 +234,19 @@ public:
{
if (currentPhase == PHASE_NONE)
{
- instance->SetData(DATA_GORTOK_PALEHOOF_EVENT, IN_PROGRESS);
- me->SummonCreature(MOB_STASIS_CONTROLLER, moveLocs[5].x, moveLocs[5].y, moveLocs[5].z, 0, TEMPSUMMON_CORPSE_DESPAWN);
+ if (instance)
+ instance->SetData(DATA_GORTOK_PALEHOOF_EVENT, IN_PROGRESS);
+
+ me->SummonCreature(NPC_STASIS_CONTROLLER, moveLocs[5].x, moveLocs[5].y, moveLocs[5].z, 0, TEMPSUMMON_CORPSE_DESPAWN);
}
Phase move = PHASE_NONE;
if (AddCount >= DUNGEON_MODE(2, 4))
move = PHASE_GORTOK_PALEHOOF;
else
- {
- //select random not yet defeated add
- uint8 next = urand(0, 3);
- for (uint8 i = 0; i < 16; i++)
- {
- if (!DoneAdds[i % 4])
- {
- if (next == 0)
- {
- move = (Phase)(i % 4);
- break;
- }
- else if (next > 0)
- --next;
- }
- }
- ++AddCount;
- DoneAdds[move] = true;
- move = (Phase)(move % 4);
- }
+ move = Sequence[AddCount++];
//send orb to summon spot
- Creature* pOrb = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_MOB_ORB) : 0);
- if (pOrb && pOrb->isAlive())
+ Creature* pOrb = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_NPC_ORB) : 0);
+ if (pOrb && pOrb->IsAlive())
{
if (currentPhase == PHASE_NONE)
pOrb->CastSpell(me, SPELL_ORB_VISUAL, true);
@@ -266,7 +255,7 @@ public:
currentPhase = move;
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE|UNIT_FLAG_NOT_ATTACKABLE_1|UNIT_FLAG_IMMUNE_TO_PC);
me->SetStandState(UNIT_STAND_STATE_STAND);
@@ -285,19 +274,19 @@ enum RavenousSpells
SPELL_TERRIFYING_ROAR = 48144
};
-class mob_ravenous_furbolg : public CreatureScript
+class npc_ravenous_furbolg : public CreatureScript
{
public:
- mob_ravenous_furbolg() : CreatureScript("mob_ravenous_furbolg") { }
+ npc_ravenous_furbolg() : CreatureScript("npc_ravenous_furbolg") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_ravenous_furbolgAI (creature);
+ return new npc_ravenous_furbolgAI(creature);
}
- struct mob_ravenous_furbolgAI : public ScriptedAI
+ struct npc_ravenous_furbolgAI : public ScriptedAI
{
- mob_ravenous_furbolgAI(Creature* creature) : ScriptedAI(creature)
+ npc_ravenous_furbolgAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -308,7 +297,7 @@ public:
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
uiChainLightingTimer = 5000;
uiCrazedTimer = 10000;
@@ -320,12 +309,12 @@ public:
if (instance->GetData(DATA_GORTOK_PALEHOOF_EVENT) == IN_PROGRESS)
{
Creature* pPalehoof = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_GORTOK_PALEHOOF) : 0);
- if (pPalehoof && pPalehoof->isAlive())
+ if (pPalehoof && pPalehoof->IsAlive())
CAST_AI(boss_palehoof::boss_palehoofAI, pPalehoof->AI())->Reset();
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -333,7 +322,7 @@ public:
if (uiChainLightingTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_CHAIN_LIGHTING);
+ DoCastVictim(SPELL_CHAIN_LIGHTING);
uiChainLightingTimer = 5000 + rand() % 5000;
} else uiChainLightingTimer -= diff;
@@ -352,7 +341,7 @@ public:
DoMeleeAttackIfReady();
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (!who)
return;
@@ -369,7 +358,7 @@ public:
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
{
@@ -379,7 +368,7 @@ public:
}
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NOT_ATTACKABLE_1 | UNIT_FLAG_IMMUNE_TO_PC);
me->SetStandState(UNIT_STAND_STATE_STAND);
@@ -398,19 +387,19 @@ enum FrenziedSpells
SPELL_ENRAGE_2 = 48142
};
-class mob_frenzied_worgen : public CreatureScript
+class npc_frenzied_worgen : public CreatureScript
{
public:
- mob_frenzied_worgen() : CreatureScript("mob_frenzied_worgen") { }
+ npc_frenzied_worgen() : CreatureScript("npc_frenzied_worgen") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_frenzied_worgenAI (creature);
+ return new npc_frenzied_worgenAI(creature);
}
- struct mob_frenzied_worgenAI : public ScriptedAI
+ struct npc_frenzied_worgenAI : public ScriptedAI
{
- mob_frenzied_worgenAI(Creature* creature) : ScriptedAI(creature)
+ npc_frenzied_worgenAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -421,7 +410,7 @@ public:
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
uiMortalWoundTimer = 5000;
uiEnrage1Timer = 15000;
@@ -433,12 +422,12 @@ public:
if (instance->GetData(DATA_GORTOK_PALEHOOF_EVENT) == IN_PROGRESS)
{
Creature* pPalehoof = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_GORTOK_PALEHOOF) : 0);
- if (pPalehoof && pPalehoof->isAlive())
+ if (pPalehoof && pPalehoof->IsAlive())
CAST_AI(boss_palehoof::boss_palehoofAI, pPalehoof->AI())->Reset();
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -446,7 +435,7 @@ public:
if (uiMortalWoundTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_MORTAL_WOUND);
+ DoCastVictim(SPELL_MORTAL_WOUND);
uiMortalWoundTimer = 3000 + rand() % 4000;
} else uiMortalWoundTimer -= diff;
@@ -465,7 +454,7 @@ public:
DoMeleeAttackIfReady();
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (!who)
return;
@@ -484,7 +473,7 @@ public:
instance->SetData(DATA_GORTOK_PALEHOOF_EVENT, IN_PROGRESS);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
{
@@ -494,7 +483,7 @@ public:
}
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NOT_ATTACKABLE_1 | UNIT_FLAG_IMMUNE_TO_PC);
me->SetStandState(UNIT_STAND_STATE_STAND);
@@ -514,19 +503,19 @@ enum FerociousSpells
SPELL_STOMP = 48131
};
-class mob_ferocious_rhino : public CreatureScript
+class npc_ferocious_rhino : public CreatureScript
{
public:
- mob_ferocious_rhino() : CreatureScript("mob_ferocious_rhino") { }
+ npc_ferocious_rhino() : CreatureScript("npc_ferocious_rhino") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_ferocious_rhinoAI (creature);
+ return new npc_ferocious_rhinoAI(creature);
}
- struct mob_ferocious_rhinoAI : public ScriptedAI
+ struct npc_ferocious_rhinoAI : public ScriptedAI
{
- mob_ferocious_rhinoAI(Creature* creature) : ScriptedAI(creature)
+ npc_ferocious_rhinoAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -537,7 +526,7 @@ public:
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
uiStompTimer = 10000;
uiGoreTimer = 15000;
@@ -549,12 +538,12 @@ public:
if (instance->GetData(DATA_GORTOK_PALEHOOF_EVENT) == IN_PROGRESS)
{
Creature* pPalehoof = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_GORTOK_PALEHOOF) : 0);
- if (pPalehoof && pPalehoof->isAlive())
+ if (pPalehoof && pPalehoof->IsAlive())
CAST_AI(boss_palehoof::boss_palehoofAI, pPalehoof->AI())->Reset();
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -562,13 +551,13 @@ public:
if (uiStompTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_STOMP);
+ DoCastVictim(SPELL_STOMP);
uiStompTimer = 8000 + rand() % 4000;
} else uiStompTimer -= diff;
if (uiGoreTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_GORE);
+ DoCastVictim(SPELL_GORE);
uiGoreTimer = 13000 + rand() % 4000;
} else uiGoreTimer -= diff;
@@ -582,7 +571,7 @@ public:
DoMeleeAttackIfReady();
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (!who)
return;
@@ -599,7 +588,7 @@ public:
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
{
@@ -609,7 +598,7 @@ public:
}
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NOT_ATTACKABLE_1 | UNIT_FLAG_IMMUNE_TO_PC);
me->SetStandState(UNIT_STAND_STATE_STAND);
@@ -634,19 +623,19 @@ enum MassiveAdds
CREATURE_JORMUNGAR_WORM = 27228
};
-class mob_massive_jormungar : public CreatureScript
+class npc_massive_jormungar : public CreatureScript
{
public:
- mob_massive_jormungar() : CreatureScript("mob_massive_jormungar") { }
+ npc_massive_jormungar() : CreatureScript("npc_massive_jormungar") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_massive_jormungarAI (creature);
+ return new npc_massive_jormungarAI(creature);
}
- struct mob_massive_jormungarAI : public ScriptedAI
+ struct npc_massive_jormungarAI : public ScriptedAI
{
- mob_massive_jormungarAI(Creature* creature) : ScriptedAI(creature)
+ npc_massive_jormungarAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -657,7 +646,7 @@ public:
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
uiAcidSpitTimer = 3000;
uiAcidSplatterTimer = 12000;
@@ -669,12 +658,12 @@ public:
if (instance->GetData(DATA_GORTOK_PALEHOOF_EVENT) == IN_PROGRESS)
{
Creature* pPalehoof = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_GORTOK_PALEHOOF) : 0);
- if (pPalehoof && pPalehoof->isAlive())
+ if (pPalehoof && pPalehoof->IsAlive())
CAST_AI(boss_palehoof::boss_palehoofAI, pPalehoof->AI())->Reset();
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -703,7 +692,7 @@ public:
DoMeleeAttackIfReady();
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (!who)
return;
@@ -720,7 +709,7 @@ public:
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
{
@@ -730,7 +719,7 @@ public:
}
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NOT_ATTACKABLE_1 | UNIT_FLAG_IMMUNE_TO_PC);
me->SetStandState(UNIT_STAND_STATE_STAND);
@@ -740,19 +729,19 @@ public:
};
-class mob_palehoof_orb : public CreatureScript
+class npc_palehoof_orb : public CreatureScript
{
public:
- mob_palehoof_orb() : CreatureScript("mob_palehoof_orb") { }
+ npc_palehoof_orb() : CreatureScript("npc_palehoof_orb") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_palehoof_orbAI (creature);
+ return new npc_palehoof_orbAI(creature);
}
- struct mob_palehoof_orbAI : public ScriptedAI
+ struct npc_palehoof_orbAI : public ScriptedAI
{
- mob_palehoof_orbAI(Creature* creature) : ScriptedAI(creature)
+ npc_palehoof_orbAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -761,7 +750,7 @@ public:
uint32 SummonTimer;
Phase currentPhase;
- void Reset()
+ void Reset() OVERRIDE
{
currentPhase = PHASE_NONE;
SummonTimer = 5000;
@@ -771,7 +760,7 @@ public:
me->SetSpeed(MOVE_FLIGHT, 0.5f);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (currentPhase == PHASE_NONE)
return;
@@ -783,10 +772,10 @@ public:
Creature* pNext = NULL;
switch (currentPhase)
{
- case PHASE_FRENZIED_WORGEN: pNext = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_MOB_FRENZIED_WORGEN) : 0); break;
- case PHASE_RAVENOUS_FURLBORG: pNext = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_MOB_RAVENOUS_FURBOLG) : 0); break;
- case PHASE_MASSIVE_JORMUNGAR: pNext = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_MOB_MASSIVE_JORMUNGAR) : 0); break;
- case PHASE_FEROCIOUS_RHINO: pNext = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_MOB_FEROCIOUS_RHINO) : 0); break;
+ case PHASE_FRENZIED_WORGEN: pNext = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_NPC_FRENZIED_WORGEN) : 0); break;
+ case PHASE_RAVENOUS_FURLBORG: pNext = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_NPC_RAVENOUS_FURBOLG) : 0); break;
+ case PHASE_MASSIVE_JORMUNGAR: pNext = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_NPC_MASSIVE_JORMUNGAR) : 0); break;
+ case PHASE_FEROCIOUS_RHINO: pNext = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_NPC_FEROCIOUS_RHINO) : 0); break;
case PHASE_GORTOK_PALEHOOF: pNext = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_GORTOK_PALEHOOF) : 0); break;
default: break;
}
@@ -805,7 +794,7 @@ public:
} else SummonTimer -= diff;
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type != POINT_MOTION_TYPE)
return;
@@ -814,10 +803,10 @@ public:
Creature* pNext = NULL;
switch (id)
{
- case PHASE_FRENZIED_WORGEN: pNext = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_MOB_FRENZIED_WORGEN) : 0); break;
- case PHASE_RAVENOUS_FURLBORG: pNext = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_MOB_RAVENOUS_FURBOLG) : 0); break;
- case PHASE_MASSIVE_JORMUNGAR: pNext = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_MOB_MASSIVE_JORMUNGAR) : 0); break;
- case PHASE_FEROCIOUS_RHINO: pNext = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_MOB_FEROCIOUS_RHINO) : 0); break;
+ case PHASE_FRENZIED_WORGEN: pNext = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_NPC_FRENZIED_WORGEN) : 0); break;
+ case PHASE_RAVENOUS_FURLBORG: pNext = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_NPC_RAVENOUS_FURBOLG) : 0); break;
+ case PHASE_MASSIVE_JORMUNGAR: pNext = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_NPC_MASSIVE_JORMUNGAR) : 0); break;
+ case PHASE_FEROCIOUS_RHINO: pNext = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_NPC_FEROCIOUS_RHINO) : 0); break;
case PHASE_GORTOK_PALEHOOF: pNext = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_GORTOK_PALEHOOF) : 0); break;
default: break;
}
@@ -835,12 +824,12 @@ class go_palehoof_sphere : public GameObjectScript
public:
go_palehoof_sphere() : GameObjectScript("go_palehoof_sphere") { }
- bool OnGossipHello(Player* /*player*/, GameObject* go)
+ bool OnGossipHello(Player* /*player*/, GameObject* go) OVERRIDE
{
InstanceScript* instance = go->GetInstanceScript();
Creature* pPalehoof = Unit::GetCreature(*go, instance ? instance->GetData64(DATA_GORTOK_PALEHOOF) : 0);
- if (pPalehoof && pPalehoof->isAlive())
+ if (pPalehoof && pPalehoof->IsAlive())
{
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
go->SetGoState(GO_STATE_ACTIVE);
@@ -855,10 +844,10 @@ public:
void AddSC_boss_palehoof()
{
new boss_palehoof();
- new mob_ravenous_furbolg();
- new mob_frenzied_worgen();
- new mob_ferocious_rhino();
- new mob_massive_jormungar();
- new mob_palehoof_orb();
+ new npc_ravenous_furbolg();
+ new npc_frenzied_worgen();
+ new npc_ferocious_rhino();
+ new npc_massive_jormungar();
+ new npc_palehoof_orb();
new go_palehoof_sphere();
}
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp
index 3a74eebd947..08670af939a 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp
@@ -31,8 +31,7 @@ Script Data End */
#include "Player.h"
#include "SpellInfo.h"
-//Yell
-enum eYells
+enum Yells
{
SAY_AGGRO = 0,
SAY_KILL = 1,
@@ -124,15 +123,15 @@ static Position Location[]=
{413.9327f, -540.9407f, 138.2614f, 0}, //71
};
-enum eCombatPhase
+enum CombatPhase
{
FLYING,
SKADI
};
-enum eSpells
+enum Spells
{
- //Skadi Spells
+ // Skadi Spells
SPELL_CRUSH = 50234,
SPELL_POISONED_SPEAR = 50225, //isn't being casted =/
SPELL_WHIRLWIND = 50228, //random target, but not the tank approx. every 20s
@@ -141,17 +140,17 @@ enum eSpells
SPELL_FREEZING_CLOUD = 47579,
};
-enum eCreature
+enum Creatures
{
- CREATURE_YMIRJAR_WARRIOR = 26690,
- CREATURE_YMIRJAR_WITCH_DOCTOR = 26691,
- CREATURE_YMIRJAR_HARPOONER = 26692,
- CREATURE_GRAUF = 26893,
- CREATURE_TRIGGER = 28351,
+ NPC_YMIRJAR_WARRIOR = 26690,
+ NPC_YMIRJAR_WITCH_DOCTOR = 26691,
+ NPC_YMIRJAR_HARPOONER = 26692,
+ NPC_GRAUF = 26893,
+ NPC_TRIGGER = 28351,
DATA_MOUNT = 27043,
};
-enum eAchievments
+enum Achievments
{
ACHIEV_TIMED_START_EVENT = 17726,
};
@@ -161,9 +160,9 @@ class boss_skadi : public CreatureScript
public:
boss_skadi() : CreatureScript("boss_skadi") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_skadiAI (creature);
+ return new boss_skadiAI(creature);
}
struct boss_skadiAI : public ScriptedAI
@@ -189,9 +188,9 @@ public:
uint8 m_uiSpellHitCount;
bool m_bSaidEmote;
- eCombatPhase Phase;
+ CombatPhase Phase;
- void Reset()
+ void Reset() OVERRIDE
{
triggersGUID.clear();
@@ -208,7 +207,7 @@ public:
Summons.DespawnAll();
me->SetSpeed(MOVE_FLIGHT, 3.0f);
if ((Unit::GetCreature(*me, m_uiGraufGUID) == NULL) && !me->IsMounted())
- me->SummonCreature(CREATURE_GRAUF, Location[0].GetPositionX(), Location[0].GetPositionY(), Location[0].GetPositionZ(), 3.0f);
+ me->SummonCreature(NPC_GRAUF, Location[0].GetPositionX(), Location[0].GetPositionY(), Location[0].GetPositionZ(), 3.0f);
if (instance)
{
instance->SetData(DATA_SKADI_THE_RUTHLESS_EVENT, NOT_STARTED);
@@ -216,16 +215,16 @@ public:
}
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
me->SetCanFly(false);
me->Dismount();
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE);
if (!Unit::GetCreature(*me, m_uiGraufGUID))
- me->SummonCreature(CREATURE_GRAUF, Location[0].GetPositionX(), Location[0].GetPositionY(), Location[0].GetPositionZ(), 3.0f);
+ me->SummonCreature(NPC_GRAUF, Location[0].GetPositionX(), Location[0].GetPositionY(), Location[0].GetPositionZ(), 3.0f);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
@@ -243,26 +242,26 @@ public:
me->GetMotionMaster()->MoveJump(Location[0].GetPositionX(), Location[0].GetPositionY(), Location[0].GetPositionZ(), 5.0f, 10.0f);
me->SetWalk(false);
m_uiMountTimer = 1000;
- Summons.DespawnEntry(CREATURE_GRAUF);
+ Summons.DespawnEntry(NPC_GRAUF);
}
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
switch (summoned->GetEntry())
{
- case CREATURE_GRAUF:
+ case NPC_GRAUF:
m_uiGraufGUID = summoned->GetGUID();
break;
- case CREATURE_YMIRJAR_WARRIOR:
- case CREATURE_YMIRJAR_WITCH_DOCTOR:
- case CREATURE_YMIRJAR_HARPOONER:
+ case NPC_YMIRJAR_WARRIOR:
+ case NPC_YMIRJAR_WITCH_DOCTOR:
+ case NPC_YMIRJAR_HARPOONER:
summoned->setActive(true);
summoned->SetInCombatWithZone();
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
summoned->AI()->AttackStart(target);
break;
- case CREATURE_TRIGGER:
+ case NPC_TRIGGER:
summoned->CastSpell((Unit*)NULL, SPELL_FREEZING_CLOUD, true);
summoned->DespawnOrUnsummon(10*IN_MILLISECONDS);
break;
@@ -270,14 +269,14 @@ public:
Summons.Summon(summoned);
}
- void SummonedCreatureDespawn(Creature* summoned)
+ void SummonedCreatureDespawn(Creature* summoned) OVERRIDE
{
- if (summoned->GetEntry() == CREATURE_GRAUF)
+ if (summoned->GetEntry() == NPC_GRAUF)
m_uiGraufGUID = 0;
Summons.Despawn(summoned);
}
- void SpellHit(Unit* /*caster*/, const SpellInfo* spell)
+ void SpellHit(Unit* /*caster*/, const SpellInfo* spell) OVERRIDE
{
if (spell->Id == SPELL_HARPOON_DAMAGE)
{
@@ -287,7 +286,7 @@ public:
Phase = SKADI;
me->SetCanFly(false);
me->Dismount();
- if (Creature* pGrauf = me->SummonCreature(CREATURE_GRAUF, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 3*IN_MILLISECONDS))
+ if (Creature* pGrauf = me->SummonCreature(NPC_GRAUF, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 3*IN_MILLISECONDS))
{
pGrauf->GetMotionMaster()->MoveFall();
pGrauf->HandleEmoteCommand(EMOTE_ONESHOT_FLYDEATH);
@@ -303,7 +302,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
switch (Phase)
{
@@ -408,7 +407,7 @@ public:
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
Summons.DespawnAll();
@@ -416,7 +415,7 @@ public:
instance->SetData(DATA_SKADI_THE_RUTHLESS_EVENT, DONE);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_KILL);
}
@@ -428,15 +427,15 @@ public:
switch (urand(0, 2))
{
case 0:
- me->SummonCreature(CREATURE_YMIRJAR_WARRIOR, SpawnLoc.GetPositionX()+rand()%5, SpawnLoc.GetPositionY()+rand()%5, SpawnLoc.GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
+ me->SummonCreature(NPC_YMIRJAR_WARRIOR, SpawnLoc.GetPositionX()+rand()%5, SpawnLoc.GetPositionY()+rand()%5, SpawnLoc.GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
break;
case 1:
- me->SummonCreature(CREATURE_YMIRJAR_WITCH_DOCTOR, SpawnLoc.GetPositionX()+rand()%5, SpawnLoc.GetPositionY()+rand()%5, SpawnLoc.GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
+ me->SummonCreature(NPC_YMIRJAR_WITCH_DOCTOR, SpawnLoc.GetPositionX()+rand()%5, SpawnLoc.GetPositionY()+rand()%5, SpawnLoc.GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
break;
case 2:
- me->SummonCreature(CREATURE_YMIRJAR_HARPOONER, SpawnLoc.GetPositionX()+rand()%5, SpawnLoc.GetPositionY()+rand()%5, SpawnLoc.GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
+ me->SummonCreature(NPC_YMIRJAR_HARPOONER, SpawnLoc.GetPositionX()+rand()%5, SpawnLoc.GetPositionY()+rand()%5, SpawnLoc.GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
break;
}
}
@@ -459,7 +458,7 @@ public:
break;
}
for (uint32 i = iStart; i < iEnd; ++i)
- me->SummonCreature(CREATURE_TRIGGER, Location[i]);
+ me->SummonCreature(NPC_TRIGGER, Location[i]);
}
};
@@ -470,7 +469,7 @@ class go_harpoon_launcher : public GameObjectScript
public:
go_harpoon_launcher() : GameObjectScript("go_harpoon_launcher") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
InstanceScript* instance = go->GetInstanceScript();
if (!instance)
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp
index f2090f6a2e6..b8fa87106a4 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp
@@ -73,19 +73,18 @@ enum Yells
enum Creatures
{
- CREATURE_ARTHAS = 29280, // Image of Arthas
- CREATURE_SVALA_SORROWGRAVE = 26668, // Svala after transformation
- CREATURE_SVALA = 29281, // Svala before transformation
- CREATURE_RITUAL_CHANNELER = 27281,
- CREATURE_SPECTATOR = 26667,
- CREATURE_RITUAL_TARGET = 27327,
- CREATURE_FLAME_BRAZIER = 27273,
- CREATURE_SCOURGE_HULK = 26555
+ NPC_ARTHAS = 29280, // Image of Arthas
+ NPC_SVALA_SORROWGRAVE = 26668, // Svala after transformation
+ NPC_RITUAL_CHANNELER = 27281,
+ NPC_SPECTATOR = 26667,
+ NPC_RITUAL_TARGET = 27327,
+ NPC_FLAME_BRAZIER = 27273,
+ NPC_SCOURGE_HULK = 26555
};
-enum Objects
+enum GameObjects
{
- OBJECT_UTGARDE_MIRROR = 191745
+ GO_UTGARDE_MIRROR = 191745
};
enum SvalaPhase
@@ -97,7 +96,10 @@ enum SvalaPhase
SVALADEAD
};
-#define DATA_INCREDIBLE_HULK 2043
+enum Misc
+{
+ DATA_INCREDIBLE_HULK = 2043
+};
static const float spectatorWP[2][3] =
{
@@ -112,9 +114,9 @@ class boss_svala : public CreatureScript
public:
boss_svala() : CreatureScript("boss_svala") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_svalaAI (creature);
+ return new boss_svalaAI(creature);
}
struct boss_svalaAI : public ScriptedAI
@@ -148,7 +150,7 @@ public:
bool sacrificed;
- void Reset()
+ void Reset() OVERRIDE
{
sacrificed = false;
SetCombatMovement(true);
@@ -172,7 +174,7 @@ public:
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
@@ -183,20 +185,21 @@ public:
instance->SetData(DATA_SVALA_SORROWGRAVE_EVENT, IN_PROGRESS);
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
- if (summon->GetEntry() == CREATURE_RITUAL_CHANNELER)
+ if (summon->GetEntry() == NPC_RITUAL_CHANNELER)
summon->CastSpell(summon, SPELL_SUMMONED_VIS, true);
summons.Summon(summon);
}
- void SummonedCreatureDespawn(Creature* summon)
+ void SummonedCreatureDespawn(Creature* summon) OVERRIDE
{
summons.Despawn(summon);
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (!who)
return;
@@ -206,10 +209,10 @@ public:
Phase = INTRO;
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- if (GameObject* mirror = GetClosestGameObjectWithEntry(me, OBJECT_UTGARDE_MIRROR, 100.0f))
+ if (GameObject* mirror = GetClosestGameObjectWithEntry(me, GO_UTGARDE_MIRROR, 100.0f))
mirror->SetGoState(GO_STATE_READY);
- if (Creature* arthas = me->SummonCreature(CREATURE_ARTHAS, ArthasPos, TEMPSUMMON_MANUAL_DESPAWN))
+ if (Creature* arthas = me->SummonCreature(NPC_ARTHAS, ArthasPos, TEMPSUMMON_MANUAL_DESPAWN))
{
arthas->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
arthasGUID = arthas->GetGUID();
@@ -217,13 +220,13 @@ public:
}
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
if (victim != me)
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (Phase == SACRIFICING)
SetEquipmentSlots(false, EQUIP_UNEQUIP, EQUIP_NO_CHANGE, EQUIP_NO_CHANGE);
@@ -238,7 +241,7 @@ public:
Talk(SAY_DEATH);
}
- void SpellHitTarget(Unit* /*target*/, const SpellInfo* spell)
+ void SpellHitTarget(Unit* /*target*/, const SpellInfo* spell) OVERRIDE
{
if (spell->Id == SPELL_RITUAL_STRIKE_EFF_1 && Phase != NORMAL && Phase != SVALADEAD)
{
@@ -250,7 +253,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (Phase == IDLE)
return;
@@ -284,10 +287,10 @@ public:
if (instance)
{
std::list<Creature*> lspectatorList;
- GetCreatureListWithEntryInGrid(lspectatorList, me, CREATURE_SPECTATOR, 100.0f);
+ GetCreatureListWithEntryInGrid(lspectatorList, me, NPC_SPECTATOR, 100.0f);
for (std::list<Creature*>::iterator itr = lspectatorList.begin(); itr != lspectatorList.end(); ++itr)
{
- if ((*itr)->isAlive())
+ if ((*itr)->IsAlive())
{
(*itr)->SetStandState(UNIT_STAND_STATE_STAND);
(*itr)->SetWalk(false);
@@ -307,7 +310,7 @@ public:
me->CastSpell(me, SPELL_SVALA_TRANSFORMING2, false);
arthas->InterruptNonMeleeSpells(true);
me->RemoveAllAuras();
- me->UpdateEntry(CREATURE_SVALA_SORROWGRAVE);
+ me->UpdateEntry(NPC_SVALA_SORROWGRAVE);
me->SetFacingToObject(arthas);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
++introPhase;
@@ -325,8 +328,7 @@ public:
break;
case 7:
Talk(SAY_SVALA_INTRO_2);
- me->SetOrientation(1.58f);
- me->SendMovementFlagUpdate();
+ me->SetFacingTo(1.58f);
arthas->SetVisible(false);
++introPhase;
introTimer = 13800;
@@ -343,7 +345,7 @@ public:
introTimer = 3000;
break;
case 9:
- if (GameObject* mirror = GetClosestGameObjectWithEntry(me, OBJECT_UTGARDE_MIRROR, 100.0f))
+ if (GameObject* mirror = GetClosestGameObjectWithEntry(me, GO_UTGARDE_MIRROR, 100.0f))
mirror->SetGoState(GO_STATE_ACTIVE);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
arthas->DespawnOrUnsummon();
@@ -366,7 +368,7 @@ public:
if (sinsterStrikeTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_SINSTER_STRIKE);
+ DoCastVictim(SPELL_SINSTER_STRIKE);
sinsterStrikeTimer = urand(5 * IN_MILLISECONDS, 9 * IN_MILLISECONDS);
}
else
@@ -454,7 +456,7 @@ class npc_ritual_channeler : public CreatureScript
public:
npc_ritual_channeler() : CreatureScript("npc_ritual_channeler") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_ritual_channelerAI(creature);
}
@@ -471,7 +473,7 @@ public:
InstanceScript* instance;
uint32 paralyzeTimer;
- void Reset()
+ void Reset() OVERRIDE
{
paralyzeTimer = 1600;
if (instance)
@@ -479,7 +481,7 @@ public:
DoCast(me, SPELL_SHADOWS_IN_THE_DARK);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
@@ -503,7 +505,7 @@ class npc_spectator : public CreatureScript
public:
npc_spectator() : CreatureScript("npc_spectator") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_spectatorAI(creature);
}
@@ -512,9 +514,9 @@ public:
{
npc_spectatorAI(Creature* creature) : ScriptedAI(creature) { }
- void Reset() { }
+ void Reset() OVERRIDE {}
- void MovementInform(uint32 motionType, uint32 pointId)
+ void MovementInform(uint32 motionType, uint32 pointId) OVERRIDE
{
if (motionType == POINT_MOTION_TYPE)
{
@@ -559,13 +561,13 @@ class spell_paralyze_pinnacle : public SpellScriptLoader
unitList.remove_if(RitualTargetCheck(GetCaster()));
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_paralyze_pinnacle_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_paralyze_pinnacle_SpellScript();
}
@@ -583,32 +585,32 @@ class npc_scourge_hulk : public CreatureScript
uint32 mightyBlow;
uint32 volatileInfection;
- void Reset()
+ void Reset() OVERRIDE
{
mightyBlow = urand(4000, 9000);
volatileInfection = urand(10000, 14000);
killedByRitualStrike = false;
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
return type == DATA_INCREDIBLE_HULK ? killedByRitualStrike : 0;
}
- void DamageTaken(Unit* attacker, uint32 &damage)
+ void DamageTaken(Unit* attacker, uint32 &damage) OVERRIDE
{
- if (damage >= me->GetHealth() && attacker->GetEntry() == CREATURE_SVALA_SORROWGRAVE)
+ if (damage >= me->GetHealth() && attacker->GetEntry() == NPC_SVALA_SORROWGRAVE)
killedByRitualStrike = true;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
if (mightyBlow <= diff)
{
- if (Unit* victim = me->getVictim())
+ if (Unit* victim = me->GetVictim())
if (!victim->HasUnitState(UNIT_STATE_STUNNED)) // Prevent knocking back a ritual player
DoCast(victim, SPELL_MIGHTY_BLOW);
mightyBlow = urand(12000, 17000);
@@ -631,7 +633,7 @@ class npc_scourge_hulk : public CreatureScript
bool killedByRitualStrike;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_scourge_hulkAI(creature);
}
@@ -642,7 +644,7 @@ class achievement_incredible_hulk : public AchievementCriteriaScript
public:
achievement_incredible_hulk() : AchievementCriteriaScript("achievement_incredible_hulk") { }
- bool OnCheck(Player* /*player*/, Unit* target)
+ bool OnCheck(Player* /*player*/, Unit* target) OVERRIDE
{
return target && target->IsAIEnabled && target->GetAI()->GetData(DATA_INCREDIBLE_HULK);
}
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp
index f4c65216f4a..a54a1b6bec7 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp
@@ -66,16 +66,16 @@ enum Yells
enum Creatures
{
- CREATURE_BJORN = 27303,
- CREATURE_BJORN_VISUAL = 27304,
- CREATURE_HALDOR = 27307,
- CREATURE_HALDOR_VISUAL = 27310,
- CREATURE_RANULF = 27308,
- CREATURE_RANULF_VISUAL = 27311,
- CREATURE_TORGYN = 27309,
- CREATURE_TORGYN_VISUAL = 27312,
- CREATURE_SPIRIT_FOUNT = 27339,
- CREATURE_AVENGING_SPIRIT = 27386
+ NPC_BJORN = 27303,
+ NPC_BJORN_VISUAL = 27304,
+ NPC_HALDOR = 27307,
+ NPC_HALDOR_VISUAL = 27310,
+ NPC_RANULF = 27308,
+ NPC_RANULF_VISUAL = 27311,
+ NPC_TORGYN = 27309,
+ NPC_TORGYN_VISUAL = 27312,
+ NPC_SPIRIT_FOUNT = 27339,
+ NPC_AVENGING_SPIRIT = 27386
};
struct ActiveBoatStruct
@@ -87,20 +87,23 @@ struct ActiveBoatStruct
static ActiveBoatStruct ActiveBoat[4] =
{
- {CREATURE_BJORN_VISUAL, SAY_SUMMON_BJORN, 404.379f, -335.335f, 104.756f, 413.594f, -335.408f, 107.995f, 3.157f},
- {CREATURE_HALDOR_VISUAL, SAY_SUMMON_HALDOR, 380.813f, -335.069f, 104.756f, 369.994f, -334.771f, 107.995f, 6.232f},
- {CREATURE_RANULF_VISUAL, SAY_SUMMON_RANULF, 381.546f, -314.362f, 104.756f, 370.841f, -314.426f, 107.995f, 6.232f},
- {CREATURE_TORGYN_VISUAL, SAY_SUMMON_TORGYN, 404.310f, -314.761f, 104.756f, 413.992f, -314.703f, 107.995f, 3.157f}
+ {NPC_BJORN_VISUAL, SAY_SUMMON_BJORN, 404.379f, -335.335f, 104.756f, 413.594f, -335.408f, 107.995f, 3.157f},
+ {NPC_HALDOR_VISUAL, SAY_SUMMON_HALDOR, 380.813f, -335.069f, 104.756f, 369.994f, -334.771f, 107.995f, 6.232f},
+ {NPC_RANULF_VISUAL, SAY_SUMMON_RANULF, 381.546f, -314.362f, 104.756f, 370.841f, -314.426f, 107.995f, 6.232f},
+ {NPC_TORGYN_VISUAL, SAY_SUMMON_TORGYN, 404.310f, -314.761f, 104.756f, 413.992f, -314.703f, 107.995f, 3.157f}
};
-#define DATA_KINGS_BANE 2157
+enum Misc
+{
+ DATA_KINGS_BANE = 2157
+};
class boss_ymiron : public CreatureScript
{
public:
boss_ymiron() : CreatureScript("boss_ymiron") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_ymironAI(creature);
}
@@ -154,7 +157,7 @@ public:
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
m_bIsPause = false;
m_bIsActiveWithBJORN = false;
@@ -185,7 +188,7 @@ public:
instance->SetData(DATA_KING_YMIRON_EVENT, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
@@ -193,13 +196,13 @@ public:
instance->SetData(DATA_KING_YMIRON_EVENT, IN_PROGRESS);
}
- void SpellHitTarget(Unit* who, SpellInfo const* spell)
+ void SpellHitTarget(Unit* who, SpellInfo const* spell) OVERRIDE
{
if (who && who->GetTypeId() == TYPEID_PLAYER && spell->Id == 59302)
kingsBane = false;
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
if (type == DATA_KINGS_BANE)
return kingsBane ? 1 : 0;
@@ -207,7 +210,7 @@ public:
return 0;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (m_bIsWalking)
{
@@ -266,13 +269,13 @@ public:
if (m_uiFetidRot_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_FETID_ROT);
+ DoCastVictim(SPELL_FETID_ROT);
m_uiFetidRot_Timer = urand(10000, 15000);
} else m_uiFetidRot_Timer -= diff;
if (m_uiDarkSlash_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_DARK_SLASH);
+ DoCastVictim(SPELL_DARK_SLASH);
m_uiDarkSlash_Timer = urand(30000, 35000);
} else m_uiDarkSlash_Timer -= diff;
@@ -286,7 +289,7 @@ public:
if (m_bIsActiveWithBJORN && m_uiAbility_BJORN_Timer <= diff)
{
//DoCast(me, SPELL_SUMMON_SPIRIT_FOUNT); // works fine, but using summon has better control
- if (Creature* temp = me->SummonCreature(CREATURE_SPIRIT_FOUNT, 385.0f + rand() % 10, -330.0f + rand() % 10, 104.756f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 180000))
+ if (Creature* temp = me->SummonCreature(NPC_SPIRIT_FOUNT, 385.0f + rand() % 10, -330.0f + rand() % 10, 104.756f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 180000))
{
temp->SetSpeed(MOVE_RUN, 0.4f);
temp->CastSpell(temp, DUNGEON_MODE(SPELL_SPIRIT_FOUNT, H_SPELL_SPIRIT_FOUNT), true);
@@ -299,7 +302,7 @@ public:
if (m_bIsActiveWithHALDOR && m_uiAbility_HALDOR_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_SPIRIT_STRIKE);
+ DoCastVictim(SPELL_SPIRIT_STRIKE);
m_uiAbility_HALDOR_Timer = 5000; // overtime
} else m_uiAbility_HALDOR_Timer -= diff;
@@ -318,7 +321,7 @@ public:
for (uint8 i = 0; i < 4; ++i)
{
//DoCast(me, SPELL_SUMMON_AVENGING_SPIRIT); // works fine, but using summon has better control
- if (Creature* temp = me->SummonCreature(CREATURE_AVENGING_SPIRIT, x + rand() % 10, y + rand() % 10, z, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000))
+ if (Creature* temp = me->SummonCreature(NPC_AVENGING_SPIRIT, x + rand() % 10, y + rand() % 10, z, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000))
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
{
@@ -365,7 +368,7 @@ public:
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -376,7 +379,7 @@ public:
instance->SetData(DATA_KING_YMIRON_EVENT, DONE);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
@@ -400,7 +403,7 @@ class achievement_kings_bane : public AchievementCriteriaScript
{
}
- bool OnCheck(Player* /*player*/, Unit* target)
+ bool OnCheck(Player* /*player*/, Unit* target) OVERRIDE
{
if (!target)
return false;
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/instance_pinnacle.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/instance_pinnacle.cpp
index 3024a6e7962..4b73458e72f 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/instance_pinnacle.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/instance_pinnacle.cpp
@@ -40,7 +40,7 @@ class instance_utgarde_pinnacle : public InstanceMapScript
public:
instance_utgarde_pinnacle() : InstanceMapScript("instance_utgarde_pinnacle", 575) { }
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_pinnacle(map);
}
@@ -112,12 +112,12 @@ public:
case BOSS_GORTOK_PALEHOOF: uiGortokPalehoof = creature->GetGUID(); break;
case BOSS_SKADI_RUTHLESS: uiSkadiTheRuthless = creature->GetGUID(); break;
case BOSS_KING_YMIRON: uiKingYmiron = creature->GetGUID(); break;
- case MOB_FRENZIED_WORGEN: uiFrenziedWorgen = creature->GetGUID(); break;
- case MOB_RAVENOUS_FURBOLG: uiRavenousFurbolg = creature->GetGUID(); break;
- case MOB_MASSIVE_JORMUNGAR: uiMassiveJormungar = creature->GetGUID(); break;
- case MOB_FEROCIOUS_RHINO: uiFerociousRhino = creature->GetGUID(); break;
- case MOB_SVALA: uiSvala = creature->GetGUID(); break;
- case MOB_PALEHOOF_ORB: uiPalehoofOrb = creature->GetGUID(); break;
+ case NPC_FRENZIED_WORGEN: uiFrenziedWorgen = creature->GetGUID(); break;
+ case NPC_RAVENOUS_FURBOLG: uiRavenousFurbolg = creature->GetGUID(); break;
+ case NPC_MASSIVE_JORMUNGAR: uiMassiveJormungar = creature->GetGUID(); break;
+ case NPC_FEROCIOUS_RHINO: uiFerociousRhino = creature->GetGUID(); break;
+ case NPC_SVALA: uiSvala = creature->GetGUID(); break;
+ case NPC_PALEHOOF_ORB: uiPalehoofOrb = creature->GetGUID(); break;
}
}
@@ -144,7 +144,7 @@ public:
}
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
switch (type)
{
@@ -170,7 +170,7 @@ public:
SaveToDB();
}
- void SetData64(uint32 type, uint64 data)
+ void SetData64(uint32 type, uint64 data) OVERRIDE
{
switch (type)
{
@@ -180,7 +180,7 @@ public:
}
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -192,7 +192,7 @@ public:
return 0;
}
- uint64 GetData64(uint32 identifier) const
+ uint64 GetData64(uint32 identifier) const OVERRIDE
{
switch (identifier)
{
@@ -200,11 +200,11 @@ public:
case DATA_GORTOK_PALEHOOF: return uiGortokPalehoof;
case DATA_SKADI_THE_RUTHLESS: return uiSkadiTheRuthless;
case DATA_KING_YMIRON: return uiKingYmiron;
- case DATA_MOB_FRENZIED_WORGEN: return uiFrenziedWorgen;
- case DATA_MOB_RAVENOUS_FURBOLG: return uiRavenousFurbolg;
- case DATA_MOB_MASSIVE_JORMUNGAR: return uiMassiveJormungar;
- case DATA_MOB_FEROCIOUS_RHINO: return uiFerociousRhino;
- case DATA_MOB_ORB: return uiPalehoofOrb;
+ case DATA_NPC_FRENZIED_WORGEN: return uiFrenziedWorgen;
+ case DATA_NPC_RAVENOUS_FURBOLG: return uiRavenousFurbolg;
+ case DATA_NPC_MASSIVE_JORMUNGAR: return uiMassiveJormungar;
+ case DATA_NPC_FEROCIOUS_RHINO: return uiFerociousRhino;
+ case DATA_NPC_ORB: return uiPalehoofOrb;
case DATA_SVALA: return uiSvala;
case DATA_GORTOK_PALEHOOF_SPHERE: return uiGortokPalehoofSphere;
case DATA_SACRIFICED_PLAYER: return uiSacrificedPlayer;
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/utgarde_pinnacle.h b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/utgarde_pinnacle.h
index 37113661dad..6166b7c4891 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/utgarde_pinnacle.h
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/utgarde_pinnacle.h
@@ -25,35 +25,36 @@ enum Data
DATA_SKADI_THE_RUTHLESS_EVENT,
DATA_KING_YMIRON_EVENT
};
+
enum Data64
{
DATA_SVALA,
DATA_SVALA_SORROWGRAVE,
DATA_GORTOK_PALEHOOF,
DATA_SKADI_THE_RUTHLESS,
- DATA_MOB_GRAUF,
+ DATA_NPC_GRAUF,
DATA_KING_YMIRON,
- DATA_MOB_FRENZIED_WORGEN,
- DATA_MOB_RAVENOUS_FURBOLG,
- DATA_MOB_MASSIVE_JORMUNGAR,
- DATA_MOB_FEROCIOUS_RHINO,
- DATA_MOB_ORB,
+ DATA_NPC_FRENZIED_WORGEN,
+ DATA_NPC_RAVENOUS_FURBOLG,
+ DATA_NPC_MASSIVE_JORMUNGAR,
+ DATA_NPC_FEROCIOUS_RHINO,
+ DATA_NPC_ORB,
DATA_GORTOK_PALEHOOF_SPHERE,
DATA_SACRIFICED_PLAYER
};
-enum eCreatures
+enum CreatureID
{
BOSS_SVALA_SORROWGRAVE = 26668,
BOSS_GORTOK_PALEHOOF = 26687,
BOSS_SKADI_RUTHLESS = 26693,
BOSS_KING_YMIRON = 26861,
- MOB_FRENZIED_WORGEN = 26683,
- MOB_RAVENOUS_FURBOLG = 26684,
- MOB_MASSIVE_JORMUNGAR = 26685,
- MOB_FEROCIOUS_RHINO = 26686,
- MOB_SVALA = 29281,
- MOB_PALEHOOF_ORB = 26688
+ NPC_FRENZIED_WORGEN = 26683,
+ NPC_RAVENOUS_FURBOLG = 26684,
+ NPC_MASSIVE_JORMUNGAR = 26685,
+ NPC_FEROCIOUS_RHINO = 26686,
+ NPC_SVALA = 29281,
+ NPC_PALEHOOF_ORB = 26688
};
#endif
diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_archavon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_archavon.cpp
index a4ea8649ff9..e44e0ab0539 100644
--- a/src/server/scripts/Northrend/VaultOfArchavon/boss_archavon.cpp
+++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_archavon.cpp
@@ -19,25 +19,32 @@
#include "ScriptedCreature.h"
#include "vault_of_archavon.h"
-enum
+enum Emotes
{
EMOTE_BERSERK = 0,
EMOTE_LEAP = 1 // Not in use
};
-//Spells Archavon
-#define SPELL_ROCK_SHARDS 58678
-#define SPELL_CRUSHING_LEAP RAID_MODE(58960, 60894)//Instant (10-80yr range) -- Leaps at an enemy, inflicting 8000 Physical damage, knocking all nearby enemies away, and creating a cloud of choking debris.
-#define SPELL_STOMP RAID_MODE(58663, 60880)
-#define SPELL_IMPALE RAID_MODE(58666, 60882) //Lifts an enemy off the ground with a spiked fist, inflicting 47125 to 52875 Physical damage and 9425 to 10575 additional damage each second for 8 sec.
-#define SPELL_BERSERK 47008
-//Spells Archavon Warders
-#define SPELL_ROCK_SHOWER RAID_MODE(60919, 60923)
-#define SPELL_SHIELD_CRUSH RAID_MODE(60897, 60899)
-#define SPELL_WHIRL RAID_MODE(60902, 60916)
+enum Spells
+{
+
+ // Spells Archavon
+ SPELL_ROCK_SHARDS = 58678,
+ SPELL_CRUSHING_LEAP = 58960,
+ SPELL_STOMP = 58663,
+ SPELL_IMPALE = 58666,
+ SPELL_BERSERK = 47008,
+
+ // Archavon Warders
+ SPELL_ROCK_SHOWER = 60919,
+ SPELL_SHIELD_CRUSH = 60897,
+ SPELL_WHIRL = 60902
+};
-//4 Warders spawned
-#define ARCHAVON_WARDER 32353 //npc 32353
+enum Creatures
+{
+ NPC_ARCHAVON_WARDER = 32353
+};
enum Events
{
@@ -65,7 +72,7 @@ class boss_archavon : public CreatureScript
{
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
events.ScheduleEvent(EVENT_ROCK_SHARDS, 15000);
events.ScheduleEvent(EVENT_CHOKING_CLOUD, 30000);
@@ -76,7 +83,7 @@ class boss_archavon : public CreatureScript
}
// Below UpdateAI may need review/debug.
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -121,7 +128,7 @@ class boss_archavon : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_archavonAI(creature);
}
@@ -130,20 +137,20 @@ class boss_archavon : public CreatureScript
/*######
## Mob Archavon Warder
######*/
-class mob_archavon_warder : public CreatureScript
+class npc_archavon_warder : public CreatureScript
{
public:
- mob_archavon_warder() : CreatureScript("mob_archavon_warder") { }
+ npc_archavon_warder() : CreatureScript("npc_archavon_warder") { }
- struct mob_archavon_warderAI : public ScriptedAI //npc 32353
+ struct npc_archavon_warderAI : public ScriptedAI //npc 32353
{
- mob_archavon_warderAI(Creature* creature) : ScriptedAI(creature)
+ npc_archavon_warderAI(Creature* creature) : ScriptedAI(creature)
{
}
EventMap events;
- void Reset()
+ void Reset() OVERRIDE
{
events.Reset();
events.ScheduleEvent(EVENT_ROCK_SHOWER, 2000);
@@ -151,12 +158,12 @@ class mob_archavon_warder : public CreatureScript
events.ScheduleEvent(EVENT_WHIRL, 7500);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
DoZoneInCombat();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -192,14 +199,14 @@ class mob_archavon_warder : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_archavon_warderAI(creature);
+ return new npc_archavon_warderAI(creature);
}
};
void AddSC_boss_archavon()
{
new boss_archavon();
- new mob_archavon_warder();
+ new npc_archavon_warder();
}
diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp
index baed96453dc..1ceddd4bd66 100644
--- a/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp
+++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp
@@ -20,7 +20,6 @@
#include "SpellAuras.h"
#include "vault_of_archavon.h"
-//Emalon spells
enum Spells
{
SPELL_OVERCHARGE = 64218, // Cast every 45 sec on a random Tempest Minion
@@ -29,32 +28,35 @@ enum Spells
SPELL_SHOCK = 64363,
SPELL_OVERCHARGED = 64217,
SPELL_OVERCHARGED_BLAST = 64219, // Cast when Overcharged reaches 10 stacks. Mob dies after that
+ SPELL_CHAIN_LIGHTNING = 64213,
+ SPELL_LIGHTNING_NOVA = 64216
};
-// cannot let SpellDifficulty handle it, no entries for these
-#define SPELL_CHAIN_LIGHTNING RAID_MODE(64213, 64215)
-#define SPELL_LIGHTNING_NOVA RAID_MODE(64216, 65279)
-
-enum BossEmotes
+enum Emotes
{
- EMOTE_OVERCHARGE = 0,
- EMOTE_MINION_RESPAWN = 1,
- EMOTE_BERSERK = 2
+ EMOTE_OVERCHARGE = 0,
+ EMOTE_MINION_RESPAWN = 1,
+ EMOTE_BERSERK = 2
};
enum Events
{
- EVENT_CHAIN_LIGHTNING = 1,
- EVENT_LIGHTNING_NOVA = 2,
- EVENT_OVERCHARGE = 3,
- EVENT_BERSERK = 4,
- EVENT_SHOCK = 5,
+ EVENT_CHAIN_LIGHTNING = 1,
+ EVENT_LIGHTNING_NOVA = 2,
+ EVENT_OVERCHARGE = 3,
+ EVENT_BERSERK = 4,
+ EVENT_SHOCK = 5,
};
-//Creatures
-#define MOB_TEMPEST_MINION 33998
+enum Npcs
+{
+ NPC_TEMPEST_MINION = 33998
+};
-#define MAX_TEMPEST_MINIONS 4
+enum Misc
+{
+ MAX_TEMPEST_MINIONS = 4
+};
struct Position TempestMinions[MAX_TEMPEST_MINIONS] =
{
@@ -78,31 +80,31 @@ class boss_emalon : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
for (uint8 i = 0; i < MAX_TEMPEST_MINIONS; ++i)
- me->SummonCreature(MOB_TEMPEST_MINION, TempestMinions[i], TEMPSUMMON_CORPSE_DESPAWN, 0);
+ me->SummonCreature(NPC_TEMPEST_MINION, TempestMinions[i], TEMPSUMMON_CORPSE_DESPAWN, 0);
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
BossAI::JustSummoned(summoned);
// AttackStart has NULL-check for victim
if (summoned->AI())
- summoned->AI()->AttackStart(me->getVictim());
+ summoned->AI()->AttackStart(me->GetVictim());
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (!summons.empty())
{
for (std::list<uint64>::const_iterator itr = summons.begin(); itr != summons.end(); ++itr)
{
Creature* minion = Unit::GetCreature(*me, *itr);
- if (minion && minion->isAlive() && !minion->getVictim() && minion->AI())
+ if (minion && minion->IsAlive() && !minion->GetVictim() && minion->AI())
minion->AI()->AttackStart(who);
}
}
@@ -115,7 +117,7 @@ class boss_emalon : public CreatureScript
_EnterCombat();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -142,7 +144,7 @@ class boss_emalon : public CreatureScript
if (!summons.empty())
{
Creature* minion = Unit::GetCreature(*me, Trinity::Containers::SelectRandomContainerElement(summons));
- if (minion && minion->isAlive())
+ if (minion && minion->IsAlive())
{
minion->CastSpell(me, SPELL_OVERCHARGED, true);
minion->SetFullHealth();
@@ -164,7 +166,7 @@ class boss_emalon : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_emalonAI(creature);
}
@@ -173,49 +175,49 @@ class boss_emalon : public CreatureScript
/*######
## Tempest Minion
######*/
-class mob_tempest_minion : public CreatureScript
+class npc_tempest_minion : public CreatureScript
{
public:
- mob_tempest_minion() : CreatureScript("mob_tempest_minion") { }
+ npc_tempest_minion() : CreatureScript("npc_tempest_minion") { }
- struct mob_tempest_minionAI : public ScriptedAI
+ struct npc_tempest_minionAI : public ScriptedAI
{
- mob_tempest_minionAI(Creature* creature) : ScriptedAI(creature)
+ npc_tempest_minionAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
- void Reset()
+ void Reset() OVERRIDE
{
events.Reset();
OverchargedTimer = 0;
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (Creature* emalon = Unit::GetCreature(*me, instance ? instance->GetData64(DATA_EMALON) : 0))
{
- if (emalon->isAlive())
+ if (emalon->IsAlive())
{
- emalon->SummonCreature(MOB_TEMPEST_MINION, 0, 0, 0, 0, TEMPSUMMON_CORPSE_DESPAWN, 0);
+ emalon->SummonCreature(NPC_TEMPEST_MINION, 0, 0, 0, 0, TEMPSUMMON_CORPSE_DESPAWN, 0);
Talk(EMOTE_MINION_RESPAWN);
}
}
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
DoZoneInCombat();
events.ScheduleEvent(EVENT_SHOCK, 20000);
if (Creature* pEmalon = Unit::GetCreature(*me, instance ? instance->GetData64(DATA_EMALON) : 0))
{
- if (!pEmalon->getVictim() && pEmalon->AI())
+ if (!pEmalon->GetVictim() && pEmalon->AI())
pEmalon->AI()->AttackStart(who);
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -264,14 +266,14 @@ class mob_tempest_minion : public CreatureScript
uint32 OverchargedTimer;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_tempest_minionAI(creature);
+ return new npc_tempest_minionAI(creature);
}
};
void AddSC_boss_emalon()
{
new boss_emalon();
- new mob_tempest_minion();
+ new npc_tempest_minion();
}
diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_koralon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_koralon.cpp
index d6db736b82c..ad65fcc83fd 100644
--- a/src/server/scripts/Northrend/VaultOfArchavon/boss_koralon.cpp
+++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_koralon.cpp
@@ -17,6 +17,8 @@
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
+#include "SpellAuraEffects.h"
+#include "SpellScript.h"
#include "vault_of_archavon.h"
enum Events
@@ -24,14 +26,12 @@ enum Events
// Koralon
EVENT_BURNING_BREATH = 1,
EVENT_BURNING_FURY = 2,
- EVENT_FLAME_CINDER_A = 3,
- EVENT_METEOR_FISTS_A = 4,
- EVENT_METEOR_FISTS_B = 5,
+ EVENT_FLAME_CINDER = 3,
+ EVENT_METEOR_FISTS = 4,
// Flame Warder
- EVENT_FW_LAVA_BIRST = 6,
- EVENT_FW_METEOR_FISTS_A = 7,
- EVENT_FW_METEOR_FISTS_B = 8,
+ EVENT_FW_LAVA_BIRST = 5,
+ EVENT_FW_METEOR_FISTS = 6
};
enum Spells
@@ -41,13 +41,13 @@ enum Spells
SPELL_BURNING_FURY = 66721,
SPELL_FLAME_CINDER_A = 66684,
SPELL_FLAME_CINDER_B = 66681, // don't know the real relation to SPELL_FLAME_CINDER_A atm.
- SPELL_METEOR_FISTS_A = 66725,
- SPELL_METEOR_FISTS_B = 67333,
+ SPELL_METEOR_FISTS = 66725,
+ SPELL_METEOR_FISTS_DAMAGE = 66765,
// Spells Flame Warder
SPELL_FW_LAVA_BIRST = 66813,
- SPELL_FW_METEOR_FISTS_A = 66808,
- SPELL_FW_METEOR_FISTS_B = 67331,
+ SPELL_FW_METEOR_FISTS = 66808,
+ SPELL_FW_METEOR_FISTS_DAMAGE = 66809
};
class boss_koralon : public CreatureScript
@@ -61,19 +61,19 @@ class boss_koralon : public CreatureScript
{
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
DoCast(me, SPELL_BURNING_FURY);
events.ScheduleEvent(EVENT_BURNING_FURY, 20000); /// @todo check timer
events.ScheduleEvent(EVENT_BURNING_BREATH, 15000); // 1st after 15sec, then every 45sec
- events.ScheduleEvent(EVENT_METEOR_FISTS_A, 75000); // 1st after 75sec, then every 45sec
- events.ScheduleEvent(EVENT_FLAME_CINDER_A, 30000); /// @todo check timer
+ events.ScheduleEvent(EVENT_METEOR_FISTS, 75000); // 1st after 75sec, then every 45sec
+ events.ScheduleEvent(EVENT_FLAME_CINDER, 30000); /// @todo check timer
_EnterCombat();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -95,17 +95,13 @@ class boss_koralon : public CreatureScript
DoCast(me, SPELL_BURNING_BREATH);
events.ScheduleEvent(EVENT_BURNING_BREATH, 45000);
break;
- case EVENT_METEOR_FISTS_A:
- DoCast(me, SPELL_METEOR_FISTS_A);
- events.ScheduleEvent(EVENT_METEOR_FISTS_B, 1500);
+ case EVENT_METEOR_FISTS:
+ DoCast(me, SPELL_METEOR_FISTS);
+ events.ScheduleEvent(EVENT_METEOR_FISTS, 45000);
break;
- case EVENT_METEOR_FISTS_B:
- DoCast(me, SPELL_METEOR_FISTS_B);
- events.ScheduleEvent(EVENT_METEOR_FISTS_A, 45000);
- break;
- case EVENT_FLAME_CINDER_A:
+ case EVENT_FLAME_CINDER:
DoCast(me, SPELL_FLAME_CINDER_A);
- events.ScheduleEvent(EVENT_FLAME_CINDER_A, 30000);
+ events.ScheduleEvent(EVENT_FLAME_CINDER, 30000);
break;
default:
break;
@@ -116,40 +112,40 @@ class boss_koralon : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_koralonAI(creature);
}
};
/*######
-## Mob Flame Warder
+## Npc Flame Warder
######*/
-class mob_flame_warder : public CreatureScript
+class npc_flame_warder : public CreatureScript
{
public:
- mob_flame_warder() : CreatureScript("mob_flame_warder") { }
+ npc_flame_warder() : CreatureScript("npc_flame_warder") { }
- struct mob_flame_warderAI : public ScriptedAI
+ struct npc_flame_warderAI : public ScriptedAI
{
- mob_flame_warderAI(Creature* creature) : ScriptedAI(creature)
+ npc_flame_warderAI(Creature* creature) : ScriptedAI(creature)
{
}
- void Reset()
+ void Reset() OVERRIDE
{
events.Reset();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
DoZoneInCombat();
events.ScheduleEvent(EVENT_FW_LAVA_BIRST, 5000);
- events.ScheduleEvent(EVENT_FW_METEOR_FISTS_A, 10000);
+ events.ScheduleEvent(EVENT_FW_METEOR_FISTS, 10000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -164,13 +160,9 @@ class mob_flame_warder : public CreatureScript
DoCastVictim(SPELL_FW_LAVA_BIRST);
events.ScheduleEvent(EVENT_FW_LAVA_BIRST, 15000);
break;
- case EVENT_FW_METEOR_FISTS_A:
- DoCast(me, SPELL_FW_METEOR_FISTS_A);
- events.ScheduleEvent(EVENT_FW_METEOR_FISTS_B, 1500);
- break;
- case EVENT_FW_METEOR_FISTS_B:
- DoCast(me, SPELL_FW_METEOR_FISTS_B);
- events.ScheduleEvent(EVENT_FW_METEOR_FISTS_A, 20000);
+ case EVENT_FW_METEOR_FISTS:
+ DoCast(me, SPELL_FW_METEOR_FISTS);
+ events.ScheduleEvent(EVENT_FW_METEOR_FISTS, 20000);
break;
default:
break;
@@ -184,14 +176,127 @@ class mob_flame_warder : public CreatureScript
EventMap events;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_flame_warderAI(creature);
+ }
+};
+
+class spell_koralon_meteor_fists : public SpellScriptLoader
+{
+ public:
+ spell_koralon_meteor_fists() : SpellScriptLoader("spell_koralon_meteor_fists") { }
+
+ class spell_koralon_meteor_fists_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_koralon_meteor_fists_AuraScript);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_METEOR_FISTS_DAMAGE))
+ return false;
+ return true;
+ }
+
+ void TriggerFists(AuraEffect const* aurEff, ProcEventInfo& eventInfo)
+ {
+ PreventDefaultAction();
+ GetTarget()->CastSpell(eventInfo.GetProcTarget(), SPELL_METEOR_FISTS_DAMAGE, true, NULL, aurEff);
+ }
+
+ void Register() OVERRIDE
+ {
+ OnEffectProc += AuraEffectProcFn(spell_koralon_meteor_fists_AuraScript::TriggerFists, EFFECT_0, SPELL_AURA_DUMMY);
+ }
+ };
+
+ AuraScript* GetAuraScript() const OVERRIDE
+ {
+ return new spell_koralon_meteor_fists_AuraScript();
+ }
+};
+
+class spell_koralon_meteor_fists_damage : public SpellScriptLoader
+{
+ public:
+ spell_koralon_meteor_fists_damage() : SpellScriptLoader("spell_koralon_meteor_fists_damage") { }
+
+ class spell_koralon_meteor_fists_damage_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_koralon_meteor_fists_damage_SpellScript);
+
+ bool Load() OVERRIDE
+ {
+ _chainTargets = 0;
+ return true;
+ }
+
+ void FilterTargets(std::list<WorldObject*>& targets)
+ {
+ _chainTargets = targets.size();
+ }
+
+ void CalculateSplitDamage()
+ {
+ if (_chainTargets)
+ SetHitDamage(GetHitDamage() / (_chainTargets + 1));
+ }
+
+ void Register() OVERRIDE
+ {
+ OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_koralon_meteor_fists_damage_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_TARGET_ENEMY);
+ OnHit += SpellHitFn(spell_koralon_meteor_fists_damage_SpellScript::CalculateSplitDamage);
+ }
+
+ private:
+ uint8 _chainTargets;
+ };
+
+ SpellScript* GetSpellScript() const OVERRIDE
+ {
+ return new spell_koralon_meteor_fists_damage_SpellScript();
+ }
+};
+
+class spell_flame_warder_meteor_fists : public SpellScriptLoader
+{
+ public:
+ spell_flame_warder_meteor_fists() : SpellScriptLoader("spell_flame_warder_meteor_fists") { }
+
+ class spell_flame_warder_meteor_fists_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_flame_warder_meteor_fists_AuraScript);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_FW_METEOR_FISTS_DAMAGE))
+ return false;
+ return true;
+ }
+
+ void TriggerFists(AuraEffect const* aurEff, ProcEventInfo& eventInfo)
+ {
+ PreventDefaultAction();
+ GetTarget()->CastSpell(eventInfo.GetProcTarget(), SPELL_FW_METEOR_FISTS_DAMAGE, true, NULL, aurEff);
+ }
+
+ void Register() OVERRIDE
+ {
+ OnEffectProc += AuraEffectProcFn(spell_flame_warder_meteor_fists_AuraScript::TriggerFists, EFFECT_0, SPELL_AURA_DUMMY);
+ }
+ };
+
+ AuraScript* GetAuraScript() const OVERRIDE
{
- return new mob_flame_warderAI(creature);
+ return new spell_flame_warder_meteor_fists_AuraScript();
}
};
void AddSC_boss_koralon()
{
new boss_koralon();
- new mob_flame_warder();
+ new npc_flame_warder();
+ new spell_koralon_meteor_fists();
+ new spell_koralon_meteor_fists_damage();
+ new spell_flame_warder_meteor_fists();
}
diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp
index 3068049e322..22174ea2528 100644
--- a/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp
+++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp
@@ -39,7 +39,6 @@ enum Spells
SPELL_FROZEN_ORB_SUMMON = 72093, // summon orb
};
-// Events boss
enum Events
{
EVENT_FREEZING_GROUND = 1,
@@ -49,8 +48,11 @@ enum Events
EVENT_FROST_BLAST = 4,
};
-// Mob Frozen Orb
-#define MOB_FROZEN_ORB 38456 // 1 in 10 mode and 3 in 25 mode
+enum Creatures
+{
+ NPC_FROZEN_ORB = 38456 // 1 in 10 mode and 3 in 25 mode
+
+};
class boss_toravon : public CreatureScript
{
@@ -63,7 +65,7 @@ class boss_toravon : public CreatureScript
{
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
DoCast(me, SPELL_FROZEN_MALLET);
@@ -74,7 +76,7 @@ class boss_toravon : public CreatureScript
_EnterCombat();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -110,7 +112,7 @@ class boss_toravon : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_toravonAI(creature);
}
@@ -119,21 +121,21 @@ class boss_toravon : public CreatureScript
/*######
## Mob Frost Warder
######*/
-class mob_frost_warder : public CreatureScript
+class npc_frost_warder : public CreatureScript
{
public:
- mob_frost_warder() : CreatureScript("mob_frost_warder") { }
+ npc_frost_warder() : CreatureScript("npc_frost_warder") { }
- struct mob_frost_warderAI : public ScriptedAI
+ struct npc_frost_warderAI : public ScriptedAI
{
- mob_frost_warderAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_frost_warderAI(Creature* creature) : ScriptedAI(creature) {}
- void Reset()
+ void Reset() OVERRIDE
{
events.Reset();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
DoZoneInCombat();
@@ -142,7 +144,7 @@ class mob_frost_warder : public CreatureScript
events.ScheduleEvent(EVENT_FROST_BLAST, 5000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -165,38 +167,38 @@ class mob_frost_warder : public CreatureScript
EventMap events;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_frost_warderAI(creature);
+ return new npc_frost_warderAI(creature);
}
};
/*######
## Mob Frozen Orb
######*/
-class mob_frozen_orb : public CreatureScript
+class npc_frozen_orb : public CreatureScript
{
public:
- mob_frozen_orb() : CreatureScript("mob_frozen_orb") { }
+ npc_frozen_orb() : CreatureScript("npc_frozen_orb") { }
- struct mob_frozen_orbAI : public ScriptedAI
+ struct npc_frozen_orbAI : public ScriptedAI
{
- mob_frozen_orbAI(Creature* creature) : ScriptedAI(creature)
+ npc_frozen_orbAI(Creature* creature) : ScriptedAI(creature)
{
}
- void Reset()
+ void Reset() OVERRIDE
{
done = false;
killTimer = 60000; // if after this time there is no victim -> destroy!
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
DoZoneInCombat();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!done)
{
@@ -220,23 +222,23 @@ public:
bool done;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_frozen_orbAI(creature);
+ return new npc_frozen_orbAI(creature);
}
};
/*######
## Mob Frozen Orb Stalker
######*/
-class mob_frozen_orb_stalker : public CreatureScript
+class npc_frozen_orb_stalker : public CreatureScript
{
public:
- mob_frozen_orb_stalker() : CreatureScript("mob_frozen_orb_stalker") { }
+ npc_frozen_orb_stalker() : CreatureScript("npc_frozen_orb_stalker") { }
- struct mob_frozen_orb_stalkerAI : public ScriptedAI
+ struct npc_frozen_orb_stalkerAI : public ScriptedAI
{
- mob_frozen_orb_stalkerAI(Creature* creature) : ScriptedAI(creature)
+ npc_frozen_orb_stalkerAI(Creature* creature) : ScriptedAI(creature)
{
creature->SetVisible(false);
creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE|UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_DISABLE_MOVE);
@@ -248,7 +250,7 @@ class mob_frozen_orb_stalker : public CreatureScript
SetCombatMovement(false);
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
if (spawned)
return;
@@ -273,16 +275,16 @@ class mob_frozen_orb_stalker : public CreatureScript
bool spawned;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_frozen_orb_stalkerAI(creature);
+ return new npc_frozen_orb_stalkerAI(creature);
}
};
void AddSC_boss_toravon()
{
new boss_toravon();
- new mob_frost_warder();
- new mob_frozen_orb();
- new mob_frozen_orb_stalker();
+ new npc_frost_warder();
+ new npc_frozen_orb();
+ new npc_frozen_orb_stalker();
}
diff --git a/src/server/scripts/Northrend/VaultOfArchavon/instance_vault_of_archavon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/instance_vault_of_archavon.cpp
index 3534330e6f4..bdb2f7e88f1 100644
--- a/src/server/scripts/Northrend/VaultOfArchavon/instance_vault_of_archavon.cpp
+++ b/src/server/scripts/Northrend/VaultOfArchavon/instance_vault_of_archavon.cpp
@@ -35,26 +35,23 @@ class instance_archavon : public InstanceMapScript
{
instance_archavon_InstanceMapScript(Map* map) : InstanceScript(map)
{
- SetBossNumber(MAX_ENCOUNTER);
- }
+ SetBossNumber(EncounterCount);
- void Initialize()
- {
- EmalonGUID = 0;
- ToravonGUID = 0;
- ArchavonDeath = 0;
- EmalonDeath = 0;
- KoralonDeath = 0;
+ EmalonGUID = 0;
+ ToravonGUID = 0;
+ ArchavonDeath = 0;
+ EmalonDeath = 0;
+ KoralonDeath = 0;
}
void OnCreatureCreate(Creature* creature)
{
switch (creature->GetEntry())
{
- case CREATURE_EMALON:
+ case NPC_EMALON:
EmalonGUID = creature->GetGUID();
break;
- case CREATURE_TORAVON:
+ case NPC_TORAVON:
ToravonGUID = creature->GetGUID();
break;
default:
@@ -62,7 +59,7 @@ class instance_archavon : public InstanceMapScript
}
}
- uint64 GetData64(uint32 identifier) const
+ uint64 GetData64(uint32 identifier) const OVERRIDE
{
switch (identifier)
{
@@ -136,7 +133,7 @@ class instance_archavon : public InstanceMapScript
time_t KoralonDeath;
};
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_archavon_InstanceMapScript(map);
}
diff --git a/src/server/scripts/Northrend/VaultOfArchavon/vault_of_archavon.h b/src/server/scripts/Northrend/VaultOfArchavon/vault_of_archavon.h
index 03776525174..7b5258fc3fc 100644
--- a/src/server/scripts/Northrend/VaultOfArchavon/vault_of_archavon.h
+++ b/src/server/scripts/Northrend/VaultOfArchavon/vault_of_archavon.h
@@ -18,23 +18,23 @@
#ifndef DEF_ARCHAVON_H
#define DEF_ARCHAVON_H
-enum Creatures
-{
- CREATURE_ARCHAVON = 31125,
- CREATURE_EMALON = 33993,
- CREATURE_KORALON = 35013,
- CREATURE_TORAVON = 38433,
-};
+uint32 const EncounterCount = 4;
enum Data
{
- DATA_ARCHAVON = 0,
- DATA_EMALON = 1,
- DATA_KORALON = 2,
- DATA_TORAVON = 3,
+ DATA_ARCHAVON = 0,
+ DATA_EMALON = 1,
+ DATA_KORALON = 2,
+ DATA_TORAVON = 3,
};
-#define MAX_ENCOUNTER 4
+enum CreatureIds
+{
+ NPC_ARCHAVON = 31125,
+ NPC_EMALON = 33993,
+ NPC_KORALON = 35013,
+ NPC_TORAVON = 38433
+};
enum AchievementCriteriaIds
{
diff --git a/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp b/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp
index d524e3fb708..8f44e47dd74 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp
@@ -48,9 +48,9 @@ class boss_cyanigosa : public CreatureScript
public:
boss_cyanigosa() : CreatureScript("boss_cyanigosa") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_cyanigosaAI (creature);
+ return new boss_cyanigosaAI(creature);
}
struct boss_cyanigosaAI : public ScriptedAI
@@ -68,7 +68,7 @@ public:
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
uiArcaneVacuumTimer = 10000;
uiBlizzardTimer = 15000;
@@ -79,7 +79,7 @@ public:
instance->SetData(DATA_CYANIGOSA_EVENT, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
@@ -87,9 +87,10 @@ public:
instance->SetData(DATA_CYANIGOSA_EVENT, IN_PROGRESS);
}
- void MoveInLineOfSight(Unit* /*who*/) {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (instance && instance->GetData(DATA_REMOVE_NPC) == 1)
{
@@ -139,7 +140,7 @@ public:
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -147,10 +148,11 @@ public:
instance->SetData(DATA_CYANIGOSA_EVENT, DONE);
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
- if (victim == me)
+ if (victim->GetTypeId() != TYPEID_PLAYER)
return;
+
Talk(SAY_SLAY);
}
};
@@ -164,7 +166,7 @@ class achievement_defenseless : public AchievementCriteriaScript
{
}
- bool OnCheck(Player* /*player*/, Unit* target)
+ bool OnCheck(Player* /*player*/, Unit* target) OVERRIDE
{
if (!target)
return false;
diff --git a/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp b/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp
index 9dbb10be601..0052d7bc87e 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp
@@ -47,9 +47,9 @@ class boss_erekem : public CreatureScript
public:
boss_erekem() : CreatureScript("boss_erekem") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_erekemAI (creature);
+ return new boss_erekemAI(creature);
}
struct boss_erekemAI : public ScriptedAI
@@ -67,7 +67,7 @@ public:
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
uiBloodlustTimer = 15000;
uiChainHealTimer = 0;
@@ -84,17 +84,17 @@ public:
if (Creature* pGuard1 = Unit::GetCreature(*me, instance ? instance->GetData64(DATA_EREKEM_GUARD_1) : 0))
{
- if (!pGuard1->isAlive())
+ if (!pGuard1->IsAlive())
pGuard1->Respawn();
}
if (Creature* pGuard2 = Unit::GetCreature(*me, instance ? instance->GetData64(DATA_EREKEM_GUARD_2) : 0))
{
- if (!pGuard2->isAlive())
+ if (!pGuard2->IsAlive())
pGuard2->Respawn();
}
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC) || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
return;
@@ -109,19 +109,19 @@ public:
if (Creature* pGuard1 = Unit::GetCreature(*me, instance ? instance->GetData64(DATA_EREKEM_GUARD_1) : 0))
{
pGuard1->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_NON_ATTACKABLE);
- if (!pGuard1->getVictim() && pGuard1->AI())
+ if (!pGuard1->GetVictim() && pGuard1->AI())
pGuard1->AI()->AttackStart(who);
}
if (Creature* pGuard2 = Unit::GetCreature(*me, instance ? instance->GetData64(DATA_EREKEM_GUARD_2) : 0))
{
pGuard2->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_NON_ATTACKABLE);
- if (!pGuard2->getVictim() && pGuard2->AI())
+ if (!pGuard2->GetVictim() && pGuard2->AI())
pGuard2->AI()->AttackStart(who);
}
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
DoCast(me, SPELL_EARTH_SHIELD);
@@ -142,9 +142,10 @@ public:
}
}
- void MoveInLineOfSight(Unit* /*who*/) {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -157,8 +158,8 @@ public:
{
if (Creature* pGuard2 = Unit::GetCreature(*me, instance ? instance->GetData64(DATA_EREKEM_GUARD_2) : 0))
{
- if (!pGuard1->isAlive() && !pGuard2->isAlive())
- DoCast(me->getVictim(), SPELL_STORMSTRIKE);
+ if (!pGuard1->IsAlive() && !pGuard2->IsAlive())
+ DoCastVictim(SPELL_STORMSTRIKE);
}
}
}
@@ -179,7 +180,7 @@ public:
//If one of the adds is dead spawn heals faster
Creature* pGuard1 = Unit::GetCreature(*me, instance ? instance->GetData64(DATA_EREKEM_GUARD_1) : 0);
Creature* pGuard2 = Unit::GetCreature(*me, instance ? instance->GetData64(DATA_EREKEM_GUARD_2) : 0);
- uiChainHealTimer = ((pGuard1 && !pGuard1->isAlive()) || (pGuard2 && !pGuard2->isAlive()) ? 3000 : 8000) + rand()%3000;
+ uiChainHealTimer = ((pGuard1 && !pGuard1->IsAlive()) || (pGuard2 && !pGuard2->IsAlive()) ? 3000 : 8000) + rand()%3000;
}
} else uiChainHealTimer -= diff;
@@ -191,7 +192,7 @@ public:
if (uiEarthShockTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_EARTH_SHOCK);
+ DoCastVictim(SPELL_EARTH_SHOCK);
uiEarthShockTimer = urand(8000, 13000);
} else uiEarthShockTimer -= diff;
@@ -205,7 +206,7 @@ public:
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -224,10 +225,11 @@ public:
}
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
- if (victim == me)
+ if (victim->GetTypeId() != TYPEID_PLAYER)
return;
+
Talk(SAY_SLAY);
}
@@ -237,11 +239,11 @@ public:
return me->GetGUID();
Creature* pGuard1 = Unit::GetCreature(*me, instance ? instance->GetData64(DATA_EREKEM_GUARD_1) : 0);
- if (pGuard1 && pGuard1->isAlive() && !pGuard1->HealthAbovePct(75))
+ if (pGuard1 && pGuard1->IsAlive() && !pGuard1->HealthAbovePct(75))
return pGuard1->GetGUID();
Creature* pGuard2 = Unit::GetCreature(*me, instance ? instance->GetData64(DATA_EREKEM_GUARD_2) : 0);
- if (pGuard2 && pGuard2->isAlive() && !pGuard2->HealthAbovePct(75))
+ if (pGuard2 && pGuard2->IsAlive() && !pGuard2->HealthAbovePct(75))
return pGuard2->GetGUID();
return 0;
@@ -257,19 +259,19 @@ enum GuardSpells
SPELL_STRIKE = 14516
};
-class mob_erekem_guard : public CreatureScript
+class npc_erekem_guard : public CreatureScript
{
public:
- mob_erekem_guard() : CreatureScript("mob_erekem_guard") { }
+ npc_erekem_guard() : CreatureScript("npc_erekem_guard") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_erekem_guardAI (creature);
+ return new npc_erekem_guardAI(creature);
}
- struct mob_erekem_guardAI : public ScriptedAI
+ struct npc_erekem_guardAI : public ScriptedAI
{
- mob_erekem_guardAI(Creature* creature) : ScriptedAI(creature)
+ npc_erekem_guardAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -280,14 +282,14 @@ public:
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
uiStrikeTimer = urand(4000, 8000);
uiHowlingScreechTimer = urand(8000, 13000);
uiGushingWoundTimer = urand(1000, 3000);
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC) || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
return;
@@ -301,9 +303,10 @@ public:
}
}
- void MoveInLineOfSight(Unit* /*who*/) {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
+
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -312,19 +315,19 @@ public:
if (uiStrikeTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_STRIKE);
+ DoCastVictim(SPELL_STRIKE);
uiStrikeTimer = urand(4000, 8000);
} else uiStrikeTimer -= diff;
if (uiHowlingScreechTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_HOWLING_SCREECH);
+ DoCastVictim(SPELL_HOWLING_SCREECH);
uiHowlingScreechTimer = urand(8000, 13000);
} else uiHowlingScreechTimer -= diff;
if (uiGushingWoundTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_GUSHING_WOUND);
+ DoCastVictim(SPELL_GUSHING_WOUND);
uiGushingWoundTimer = urand(7000, 12000);
} else uiGushingWoundTimer -= diff;
}
@@ -335,5 +338,5 @@ public:
void AddSC_boss_erekem()
{
new boss_erekem();
- new mob_erekem_guard();
+ new npc_erekem_guard();
}
diff --git a/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp b/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp
index db70177f8a0..efaa9a8644b 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp
@@ -66,16 +66,19 @@ static Position SpawnLoc[MAX_SPAWN_LOC]=
{1935.50f, 796.224f, 52.492f, 4.224f},
};
-#define DATA_DEHYDRATION 1
+enum Misc
+{
+ DATA_DEHYDRATION = 1
+};
class boss_ichoron : public CreatureScript
{
public:
boss_ichoron() : CreatureScript("boss_ichoron") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_ichoronAI (creature);
+ return new boss_ichoronAI(creature);
}
struct boss_ichoronAI : public ScriptedAI
@@ -96,7 +99,7 @@ public:
SummonList m_waterElements;
- void Reset()
+ void Reset() OVERRIDE
{
bIsExploded = false;
bIsFrenzy = false;
@@ -116,7 +119,7 @@ public:
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
@@ -137,7 +140,7 @@ public:
}
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC) || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
return;
@@ -151,9 +154,9 @@ public:
}
}
- void DoAction(int32 param)
+ void DoAction(int32 param) OVERRIDE
{
- if (!me->isAlive())
+ if (!me->IsAlive())
return;
switch (param)
@@ -192,10 +195,10 @@ public:
}
me->SetVisible(true);
- me->GetMotionMaster()->MoveChase(me->getVictim());
+ me->GetMotionMaster()->MoveChase(me->GetVictim());
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
if (type == DATA_DEHYDRATION)
return dehydration ? 1 : 0;
@@ -203,9 +206,10 @@ public:
return 0;
}
- void MoveInLineOfSight(Unit* /*who*/) {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 uiDiff)
+
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -245,7 +249,7 @@ public:
{
for (std::list<uint64>::const_iterator itr = m_waterElements.begin(); itr != m_waterElements.end(); ++itr)
if (Creature* temp = Unit::GetCreature(*me, *itr))
- if (temp->isAlive())
+ if (temp->IsAlive())
{
bIsWaterElementsAlive = true;
break;
@@ -273,7 +277,7 @@ public:
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -300,7 +304,7 @@ public:
}
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
if (summoned)
{
@@ -311,7 +315,7 @@ public:
}
}
- void SummonedCreatureDespawn(Creature* summoned)
+ void SummonedCreatureDespawn(Creature* summoned) OVERRIDE
{
if (summoned)
{
@@ -320,29 +324,30 @@ public:
}
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
- if (victim == me)
+ if (victim->GetTypeId() != TYPEID_PLAYER)
return;
+
Talk(SAY_SLAY);
}
};
};
-class mob_ichor_globule : public CreatureScript
+class npc_ichor_globule : public CreatureScript
{
public:
- mob_ichor_globule() : CreatureScript("mob_ichor_globule") { }
+ npc_ichor_globule() : CreatureScript("npc_ichor_globule") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_ichor_globuleAI (creature);
+ return new npc_ichor_globuleAI(creature);
}
- struct mob_ichor_globuleAI : public ScriptedAI
+ struct npc_ichor_globuleAI : public ScriptedAI
{
- mob_ichor_globuleAI(Creature* creature) : ScriptedAI(creature)
+ npc_ichor_globuleAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -351,18 +356,18 @@ public:
uint32 uiRangeCheck_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
uiRangeCheck_Timer = 1000;
DoCast(me, SPELL_WATER_GLOBULE);
}
- void AttackStart(Unit* /*who*/)
+ void AttackStart(Unit* /*who*/) OVERRIDE
{
return;
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (uiRangeCheck_Timer < uiDiff)
{
@@ -383,7 +388,7 @@ public:
else uiRangeCheck_Timer -= uiDiff;
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
DoCast(me, SPELL_SPLASH);
if (Creature* pIchoron = Unit::GetCreature(*me, instance->GetData64(DATA_ICHORON)))
@@ -401,7 +406,7 @@ class achievement_dehydration : public AchievementCriteriaScript
{
}
- bool OnCheck(Player* /*player*/, Unit* target)
+ bool OnCheck(Player* /*player*/, Unit* target) OVERRIDE
{
if (!target)
return false;
@@ -417,6 +422,6 @@ class achievement_dehydration : public AchievementCriteriaScript
void AddSC_boss_ichoron()
{
new boss_ichoron();
- new mob_ichor_globule();
+ new npc_ichor_globule();
new achievement_dehydration();
}
diff --git a/src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp b/src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp
index 187cf5d6b30..5eaeaab8dc0 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp
@@ -35,9 +35,9 @@ class boss_lavanthor : public CreatureScript
public:
boss_lavanthor() : CreatureScript("boss_lavanthor") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_lavanthorAI (creature);
+ return new boss_lavanthorAI(creature);
}
struct boss_lavanthorAI : public ScriptedAI
@@ -54,7 +54,7 @@ public:
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
uiFireboltTimer = 1000;
uiFlameBreathTimer = 5000;
@@ -69,7 +69,7 @@ public:
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (instance)
{
@@ -86,7 +86,7 @@ public:
}
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC) || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
return;
@@ -100,9 +100,10 @@ public:
}
}
- void MoveInLineOfSight(Unit* /*who*/) {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -110,19 +111,19 @@ public:
if (uiFireboltTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_FIREBOLT);
+ DoCastVictim(SPELL_FIREBOLT);
uiFireboltTimer = urand(5000, 13000);
} else uiFireboltTimer -= diff;
if (uiFlameBreathTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_FLAME_BREATH);
+ DoCastVictim(SPELL_FLAME_BREATH);
uiFlameBreathTimer = urand(10000, 15000);
} else uiFlameBreathTimer -= diff;
if (uiLavaBurnTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_LAVA_BURN);
+ DoCastVictim(SPELL_LAVA_BURN);
uiLavaBurnTimer = urand(15000, 23000);
}
@@ -130,7 +131,7 @@ public:
{
if (uiCauterizingFlamesTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_CAUTERIZING_FLAMES);
+ DoCastVictim(SPELL_CAUTERIZING_FLAMES);
uiCauterizingFlamesTimer = urand(10000, 16000);
} else uiCauterizingFlamesTimer -= diff;
}
@@ -138,7 +139,7 @@ public:
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
{
diff --git a/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp b/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp
index d308c6c696b..2d53fdebde7 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp
@@ -31,9 +31,9 @@ class boss_moragg : public CreatureScript
public:
boss_moragg() : CreatureScript("boss_moragg") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_moraggAI (creature);
+ return new boss_moraggAI(creature);
}
struct boss_moraggAI : public ScriptedAI
@@ -48,7 +48,7 @@ public:
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
uiOpticLinkTimer = 10000;
uiCorrosiveSalivaTimer = 5000;
@@ -62,7 +62,7 @@ public:
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (instance)
{
@@ -79,7 +79,7 @@ public:
}
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC) || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
return;
@@ -93,9 +93,10 @@ public:
}
}
- void MoveInLineOfSight(Unit* /*who*/) {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -110,13 +111,13 @@ public:
if (uiCorrosiveSalivaTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_CORROSIVE_SALIVA);
+ DoCastVictim(SPELL_CORROSIVE_SALIVA);
uiCorrosiveSalivaTimer = 10000;
} else uiCorrosiveSalivaTimer -= diff;
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
{
diff --git a/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp b/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp
index b14a9e0dec5..20f7e7952fe 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp
@@ -61,9 +61,9 @@ class boss_xevozz : public CreatureScript
public:
boss_xevozz() : CreatureScript("boss_xevozz") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_xevozzAI (creature);
+ return new boss_xevozzAI(creature);
}
struct boss_xevozzAI : public ScriptedAI
@@ -79,7 +79,7 @@ public:
uint32 uiArcaneBarrageVolley_Timer;
uint32 uiArcaneBuffet_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
if (instance)
{
@@ -110,7 +110,7 @@ public:
}
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
summoned->SetSpeed(MOVE_RUN, 0.5f);
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
@@ -120,7 +120,7 @@ public:
}
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC) || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
return;
@@ -134,7 +134,7 @@ public:
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
if (instance)
@@ -152,9 +152,10 @@ public:
}
}
- void MoveInLineOfSight(Unit* /*who*/) {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 uiDiff)
+
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -171,7 +172,7 @@ public:
{
if (uiArcaneBuffet_Timer < uiDiff)
{
- DoCast(me->getVictim(), SPELL_ARCANE_BUFFET);
+ DoCastVictim(SPELL_ARCANE_BUFFET);
uiArcaneBuffet_Timer = 0;
}
else uiArcaneBuffet_Timer -= uiDiff;
@@ -192,7 +193,7 @@ public:
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -212,9 +213,9 @@ public:
}
}
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
- if (victim == me)
+ if (victim->GetTypeId() != TYPEID_PLAYER)
return;
Talk(SAY_SLAY);
@@ -223,19 +224,19 @@ public:
};
-class mob_ethereal_sphere : public CreatureScript
+class npc_ethereal_sphere : public CreatureScript
{
public:
- mob_ethereal_sphere() : CreatureScript("mob_ethereal_sphere") { }
+ npc_ethereal_sphere() : CreatureScript("npc_ethereal_sphere") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_ethereal_sphereAI (creature);
+ return new npc_ethereal_sphereAI(creature);
}
- struct mob_ethereal_sphereAI : public ScriptedAI
+ struct npc_ethereal_sphereAI : public ScriptedAI
{
- mob_ethereal_sphereAI(Creature* creature) : ScriptedAI(creature)
+ npc_ethereal_sphereAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -245,13 +246,13 @@ public:
uint32 uiSummonPlayers_Timer;
uint32 uiRangeCheck_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
uiSummonPlayers_Timer = urand(33000, 35000);
uiRangeCheck_Timer = 1000;
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -288,8 +289,8 @@ public:
if (!PlayerList.isEmpty())
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
- if (i->getSource()->isAlive())
- DoTeleportPlayer(i->getSource(), me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), i->getSource()->GetOrientation());
+ if (i->GetSource()->IsAlive())
+ DoTeleportPlayer(i->GetSource(), me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), i->GetSource()->GetOrientation());
}
uiSummonPlayers_Timer = urand(33000, 35000);
@@ -303,5 +304,5 @@ public:
void AddSC_boss_xevozz()
{
new boss_xevozz();
- new mob_ethereal_sphere();
+ new npc_ethereal_sphere();
}
diff --git a/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp b/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp
index 0f150fe88b8..a3c84e248e7 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp
@@ -31,9 +31,9 @@ enum Spells
H_SPELL_ZURAMAT_ADD_2 = 59747
};
-enum ZuramatCreatures
+enum Creatures
{
- CREATURE_VOID_SENTRY = 29364
+ NPC_VOID_SENTRY = 29364
};
enum Yells
@@ -46,16 +46,19 @@ enum Yells
SAY_WHISPER = 5
};
-#define DATA_VOID_DANCE 2153
+enum Misc
+{
+ DATA_VOID_DANCE = 2153
+};
class boss_zuramat : public CreatureScript
{
public:
boss_zuramat() : CreatureScript("boss_zuramat") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_zuramatAI (creature);
+ return new boss_zuramatAI(creature);
}
struct boss_zuramatAI : public ScriptedAI
@@ -72,7 +75,7 @@ public:
uint32 SpellShroudOfDarknessTimer;
bool voidDance;
- void Reset()
+ void Reset() OVERRIDE
{
if (instance)
{
@@ -88,7 +91,7 @@ public:
voidDance = true;
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC) || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
return;
@@ -102,7 +105,7 @@ public:
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
if (instance)
@@ -120,9 +123,10 @@ public:
}
}
- void MoveInLineOfSight(Unit* /*who*/) {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
+
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -130,7 +134,7 @@ public:
if (SpellSummonVoidTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_SUMMON_VOID_SENTRY, false);
+ DoCastVictim(SPELL_SUMMON_VOID_SENTRY, false);
SpellSummonVoidTimer = 20000;
} else SpellSummonVoidTimer -=diff;
@@ -143,20 +147,20 @@ public:
if (SpellShroudOfDarknessTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_SHROUD_OF_DARKNESS);
+ DoCastVictim(SPELL_SHROUD_OF_DARKNESS);
SpellShroudOfDarknessTimer = 20000;
} else SpellShroudOfDarknessTimer -=diff;
DoMeleeAttackIfReady();
}
- void SummonedCreatureDies(Creature* summoned, Unit* /*who*/)
+ void SummonedCreatureDies(Creature* summoned, Unit* /*who*/) OVERRIDE
{
- if (summoned->GetEntry() == CREATURE_VOID_SENTRY)
+ if (summoned->GetEntry() == NPC_VOID_SENTRY)
voidDance = false;
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
if (type == DATA_VOID_DANCE)
return voidDance ? 1 : 0;
@@ -164,7 +168,7 @@ public:
return 0;
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -183,17 +187,17 @@ public:
}
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
- if (victim == me)
+ if (victim->GetTypeId() != TYPEID_PLAYER)
return;
Talk(SAY_SLAY);
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
- summon->AI()->AttackStart(me->getVictim());
+ summon->AI()->AttackStart(me->GetVictim());
summon->AI()->DoCastAOE(SPELL_ZURAMAT_ADD_2);
summon->SetPhaseMask(17, true);
}
@@ -208,7 +212,7 @@ class achievement_void_dance : public AchievementCriteriaScript
{
}
- bool OnCheck(Player* /*player*/, Unit* target)
+ bool OnCheck(Player* /*player*/, Unit* target) OVERRIDE
{
if (!target)
return false;
diff --git a/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp
index df79366e6cd..483d243c51d 100644
--- a/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp
+++ b/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp
@@ -61,12 +61,7 @@ enum AzureSaboteurSpells
enum CrystalSpells
{
- SPELL_ARCANE_LIGHTNING = 57912
-};
-
-enum Events
-{
- EVENT_ACTIVATE_CRYSTAL = 20001
+ SPELL_ARCANE_LIGHTNING = 57930
};
const Position PortalLocation[] =
@@ -79,6 +74,7 @@ const Position PortalLocation[] =
{1908.31f, 809.657f, 38.7037f, 3.08701f} // WP 6
};
+const Position ArcaneSphere = {1887.060059f, 806.151001f, 61.321602f, 0.0f};
const Position BossStartMove1 = {1894.684448f, 739.390503f, 47.668003f, 0.0f};
const Position BossStartMove2 = {1875.173950f, 860.832703f, 43.333565f, 0.0f};
const Position BossStartMove21 = {1858.854614f, 855.071411f, 43.333565f, 0.0f};
@@ -109,7 +105,7 @@ class instance_violet_hold : public InstanceMapScript
public:
instance_violet_hold() : InstanceMapScript("instance_violet_hold", 608) { }
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_violet_hold_InstanceMapScript(map);
}
@@ -140,7 +136,7 @@ public:
uint64 uiTeleportationPortal;
uint64 uiSaboteurPortal;
- uint64 uiActivationCrystal[3];
+ uint64 uiActivationCrystal[4];
uint32 uiActivationTimer;
uint32 uiCyanigosaEventTimer;
@@ -308,13 +304,13 @@ public:
uiMainDoor = go->GetGUID();
break;
case GO_ACTIVATION_CRYSTAL:
- if (uiCountActivationCrystals < 3)
+ if (uiCountActivationCrystals < 4)
uiActivationCrystal[uiCountActivationCrystals++] = go->GetGUID();
break;
}
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
switch (type)
{
@@ -397,17 +393,20 @@ public:
uiMainEventPhase = data;
if (data == IN_PROGRESS) // Start event
{
- if (GameObject* pMainDoor = instance->GetGameObject(uiMainDoor))
- pMainDoor->SetGoState(GO_STATE_READY);
+ if (GameObject* mainDoor = instance->GetGameObject(uiMainDoor))
+ mainDoor->SetGoState(GO_STATE_READY);
uiWaveCount = 1;
bActive = true;
+ for (int i = 0; i < 4; ++i)
+ if (GameObject* crystal = instance->GetGameObject(uiActivationCrystal[i]))
+ crystal->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
uiRemoveNpc = 0; // might not have been reset after a wipe on a boss.
}
break;
}
}
- void SetData64(uint32 type, uint64 data)
+ void SetData64(uint32 type, uint64 data) OVERRIDE
{
switch (type)
{
@@ -420,7 +419,7 @@ public:
}
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -441,7 +440,7 @@ public:
return 0;
}
- uint64 GetData64(uint32 identifier) const
+ uint64 GetData64(uint32 identifier) const OVERRIDE
{
switch (identifier)
{
@@ -671,11 +670,11 @@ public:
Map::PlayerList const &players = instance->GetPlayers();
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
{
- Player* player = itr->getSource();
- if (player->isGameMaster())
+ Player* player = itr->GetSource();
+ if (player->IsGameMaster())
continue;
- if (player->isAlive())
+ if (player->IsAlive())
return false;
}
@@ -700,7 +699,7 @@ public:
}
// if main event is in progress and players have wiped then reset instance
- if ( uiMainEventPhase == IN_PROGRESS && CheckWipe())
+ if (uiMainEventPhase == IN_PROGRESS && CheckWipe())
{
SetData(DATA_REMOVE_NPC, 1);
StartBossEncounter(uiFirstBoss, false);
@@ -710,6 +709,10 @@ public:
SetData(DATA_WAVE_COUNT, 0);
uiMainEventPhase = NOT_STARTED;
+ for (int i = 0; i < 4; ++i)
+ if (GameObject* crystal = instance->GetGameObject(uiActivationCrystal[i]))
+ crystal->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
+
if (Creature* pSinclari = instance->GetCreature(uiSinclari))
{
pSinclari->SetVisible(true);
@@ -791,13 +794,29 @@ public:
void ActivateCrystal()
{
+ // just to make things easier we'll get the gameobject from the map
+ GameObject* invoker = instance->GetGameObject(uiActivationCrystal[0]);
+ if (!invoker)
+ return;
+
+ SpellInfo const* spellInfoLightning = sSpellMgr->GetSpellInfo(SPELL_ARCANE_LIGHTNING);
+ if (!spellInfoLightning)
+ return;
+
+ // the orb
+ TempSummon* trigger = invoker->SummonCreature(NPC_DEFENSE_SYSTEM, ArcaneSphere, TEMPSUMMON_MANUAL_DESPAWN, 0);
+ if (!trigger)
+ return;
+
+ // visuals
+ trigger->CastSpell(trigger, spellInfoLightning, true, 0, 0, trigger->GetGUID());
+
// Kill all mobs registered with SetData64(ADD_TRASH_MOB)
- /// @todo All visual, spells etc
for (std::set<uint64>::const_iterator itr = trashMobs.begin(); itr != trashMobs.end(); ++itr)
{
Creature* creature = instance->GetCreature(*itr);
- if (creature && creature->isAlive())
- creature->CastSpell(creature, SPELL_ARCANE_LIGHTNING, true); // Who should cast the spell?
+ if (creature && creature->IsAlive())
+ trigger->Kill(creature);
}
}
diff --git a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp
index fbbf3fa3df5..db382dd9d72 100644
--- a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp
+++ b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp
@@ -21,6 +21,9 @@
#include "ScriptedEscortAI.h"
#include "violet_hold.h"
#include "Player.h"
+#include "SpellAuras.h"
+#include "SpellAuraEffects.h"
+#include "SpellScript.h"
#define GOSSIP_START_EVENT "Get your people to safety, we'll keep the Blue Dragonflight's forces at bay."
#define GOSSIP_ITEM_1 "Activate the crystals when we get in trouble, right"
@@ -108,8 +111,8 @@ enum AzureStalkerSpells
enum AzureSaboteurSpells
{
- SABOTEUR_SHIELD_DISRUPTION = 58291,
- SABOTEUR_SHIELD_EFFECT = 45775
+ SABOTEUR_SHIELD_DISRUPTION = 58291,
+ SABOTEUR_SHIELD_EFFECT = 45775
};
enum TrashDoorSpell
@@ -119,13 +122,14 @@ enum TrashDoorSpell
enum Spells
{
- SPELL_PORTAL_CHANNEL = 58012,
- SPELL_CRYSTALL_ACTIVATION = 57804
+ SPELL_PORTAL_CHANNEL = 58012,
+ SPELL_CRYSTAL_ACTIVATION = 57804,
+ SPELL_ARCANE_SPHERE_PASSIVE = 44263
};
-enum eSinclari
+enum Sinclari
{
- SAY_SINCLARI_1 = 0
+ SAY_SINCLARI_1 = 0
};
float FirstPortalWPs [6][3] =
@@ -256,7 +260,7 @@ class npc_sinclari_vh : public CreatureScript
public:
npc_sinclari_vh() : CreatureScript("npc_sinclari_vh") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -278,7 +282,7 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
if (InstanceScript* instance = creature->GetInstanceScript())
{
@@ -301,7 +305,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_sinclariAI(creature);
}
@@ -318,7 +322,7 @@ public:
uint8 uiPhase;
uint32 uiTimer;
- void Reset()
+ void Reset() OVERRIDE
{
uiPhase = 0;
uiTimer = 0;
@@ -342,7 +346,7 @@ public:
}
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
ScriptedAI::UpdateAI(uiDiff);
@@ -417,19 +421,19 @@ public:
};
-class mob_azure_saboteur : public CreatureScript
+class npc_azure_saboteur : public CreatureScript
{
public:
- mob_azure_saboteur() : CreatureScript("mob_azure_saboteur") { }
+ npc_azure_saboteur() : CreatureScript("npc_azure_saboteur") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_azure_saboteurAI (creature);
+ return new npc_azure_saboteurAI(creature);
}
- struct mob_azure_saboteurAI : public npc_escortAI
+ struct npc_azure_saboteurAI : public npc_escortAI
{
- mob_azure_saboteurAI(Creature* creature):npc_escortAI(creature)
+ npc_azure_saboteurAI(Creature* creature):npc_escortAI(creature)
{
instance = creature->GetInstanceScript();
bHasGotMovingPoints = false;
@@ -441,7 +445,7 @@ public:
bool bHasGotMovingPoints;
uint32 uiBoss;
- void Reset()
+ void Reset() OVERRIDE
{
if (instance && !uiBoss)
uiBoss = instance->GetData(DATA_WAVE_COUNT) == 6 ? instance->GetData(DATA_FIRST_BOSS) : instance->GetData(DATA_SECOND_BOSS);
@@ -450,7 +454,7 @@ public:
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
switch (uiBoss)
{
@@ -481,7 +485,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (instance && instance->GetData(DATA_MAIN_EVENT_PHASE) != IN_PROGRESS)
me->CastStop();
@@ -546,7 +550,7 @@ class npc_teleportation_portal_vh : public CreatureScript
public:
npc_teleportation_portal_vh() : CreatureScript("npc_teleportation_portal_vh") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_teleportation_portalAI(creature);
}
@@ -568,17 +572,18 @@ public:
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
uiSpawnTimer = 10000;
bPortalGuardianOrKeeperOrEliteSpawn = false;
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void MoveInLineOfSight(Unit* /*who*/) {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!instance) //Massive usage of instance, global check
return;
@@ -653,23 +658,23 @@ public:
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
instance->SetData(DATA_WAVE_COUNT, instance->GetData(DATA_WAVE_COUNT)+1);
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
listOfMobs.Summon(summoned);
- if (summoned)
+ if (instance)
instance->SetData64(DATA_ADD_TRASH_MOB, summoned->GetGUID());
}
- void SummonedMobDied(Creature* summoned)
+ void SummonedCreatureDies(Creature* summoned, Unit* /*killer*/) OVERRIDE
{
listOfMobs.Despawn(summoned);
- if (summoned)
+ if (instance)
instance->SetData64(DATA_DEL_TRASH_MOB, summoned->GetGUID());
}
};
@@ -693,7 +698,7 @@ struct violet_hold_trashAI : public npc_escortAI
uint32 portalLocationID;
uint32 secondPortalRouteID;
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
switch (portalLocationID)
{
@@ -724,7 +729,7 @@ struct violet_hold_trashAI : public npc_escortAI
}
}
- void UpdateAI(uint32)
+ void UpdateAI(uint32) OVERRIDE
{
if (instance && instance->GetData(DATA_MAIN_EVENT_PHASE) != IN_PROGRESS)
me->CastStop();
@@ -732,7 +737,7 @@ struct violet_hold_trashAI : public npc_escortAI
if (!bHasGotMovingPoints)
{
bHasGotMovingPoints = true;
- switch (portalLocationID)
+ switch (portalLocationID)
{
case 0:
for (int i=0;i<6;i++)
@@ -758,7 +763,7 @@ struct violet_hold_trashAI : public npc_escortAI
case 2:
for (int i=0;i<8;i++)
AddWaypoint(i, ThirdPortalWPs[i][0]+irand(-1, 1), ThirdPortalWPs[i][1]+irand(-1, 1), ThirdPortalWPs[i][2], 0);
- me->SetHomePosition(ThirdPortalWPs[7][0], ThirdPortalWPs[7][1], ThirdPortalWPs[7][2], 3.149439f);
+ me->SetHomePosition(ThirdPortalWPs[7][0], ThirdPortalWPs[7][1], ThirdPortalWPs[7][2], 3.149439f);
break;
case 3:
for (int i=0;i<9;i++)
@@ -781,15 +786,10 @@ struct violet_hold_trashAI : public npc_escortAI
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
- {
- if (Creature* portal = Unit::GetCreature((*me), instance->GetData64(DATA_TELEPORTATION_PORTAL)))
- CAST_AI(npc_teleportation_portal_vh::npc_teleportation_portalAI, portal->AI())->SummonedMobDied(me);
-
instance->SetData(DATA_NPC_PRESENCE_AT_DOOR_REMOVE, 1);
- }
}
void CreatureStartAttackDoor()
@@ -802,19 +802,19 @@ struct violet_hold_trashAI : public npc_escortAI
};
-class mob_azure_invader : public CreatureScript
+class npc_azure_invader : public CreatureScript
{
public:
- mob_azure_invader() : CreatureScript("mob_azure_invader") { }
+ npc_azure_invader() : CreatureScript("npc_azure_invader") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_azure_invaderAI (creature);
+ return new npc_azure_invaderAI(creature);
}
- struct mob_azure_invaderAI : public violet_hold_trashAI
+ struct npc_azure_invaderAI : public violet_hold_trashAI
{
- mob_azure_invaderAI(Creature* creature) : violet_hold_trashAI(creature)
+ npc_azure_invaderAI(Creature* creature) : violet_hold_trashAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -824,7 +824,7 @@ public:
uint32 uiBrutalStrikeTimer;
uint32 uiSunderArmorTimer;
- void Reset()
+ void Reset() OVERRIDE
{
uiCleaveTimer = 5000;
uiImpaleTimer = 4000;
@@ -832,7 +832,7 @@ public:
uiSunderArmorTimer = 4000;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
violet_hold_trashAI::UpdateAI(diff);
npc_escortAI::UpdateAI(diff);
@@ -844,7 +844,7 @@ public:
{
if (uiCleaveTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_CLEAVE);
+ DoCastVictim(SPELL_CLEAVE);
uiCleaveTimer = 5000;
} else uiCleaveTimer -= diff;
@@ -861,13 +861,13 @@ public:
{
if (uiBrutalStrikeTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_BRUTAL_STRIKE);
+ DoCastVictim(SPELL_BRUTAL_STRIKE);
uiBrutalStrikeTimer = 5000;
} else uiBrutalStrikeTimer -= diff;
if (uiSunderArmorTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_SUNDER_ARMOR);
+ DoCastVictim(SPELL_SUNDER_ARMOR);
uiSunderArmorTimer = urand(8000, 10000);
} else uiSunderArmorTimer -= diff;
@@ -880,19 +880,19 @@ public:
};
-class mob_azure_binder : public CreatureScript
+class npc_azure_binder : public CreatureScript
{
public:
- mob_azure_binder() : CreatureScript("mob_azure_binder") { }
+ npc_azure_binder() : CreatureScript("npc_azure_binder") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_azure_binderAI (creature);
+ return new npc_azure_binderAI(creature);
}
- struct mob_azure_binderAI : public violet_hold_trashAI
+ struct npc_azure_binderAI : public violet_hold_trashAI
{
- mob_azure_binderAI(Creature* creature) : violet_hold_trashAI(creature)
+ npc_azure_binderAI(Creature* creature) : violet_hold_trashAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -902,7 +902,7 @@ public:
uint32 uiFrostNovaTimer;
uint32 uiFrostboltTimer;
- void Reset()
+ void Reset() OVERRIDE
{
uiArcaneExplosionTimer = 5000;
uiArcainBarrageTimer = 4000;
@@ -910,7 +910,7 @@ public:
uiFrostboltTimer = 4000;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
violet_hold_trashAI::UpdateAI(diff);
npc_escortAI::UpdateAI(diff);
@@ -958,19 +958,19 @@ public:
};
-class mob_azure_mage_slayer : public CreatureScript
+class npc_azure_mage_slayer : public CreatureScript
{
public:
- mob_azure_mage_slayer() : CreatureScript("mob_azure_mage_slayer") { }
+ npc_azure_mage_slayer() : CreatureScript("npc_azure_mage_slayer") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_azure_mage_slayerAI (creature);
+ return new npc_azure_mage_slayerAI(creature);
}
- struct mob_azure_mage_slayerAI : public violet_hold_trashAI
+ struct npc_azure_mage_slayerAI : public violet_hold_trashAI
{
- mob_azure_mage_slayerAI(Creature* creature) : violet_hold_trashAI(creature)
+ npc_azure_mage_slayerAI(Creature* creature) : violet_hold_trashAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -978,13 +978,13 @@ public:
uint32 uiArcaneEmpowermentTimer;
uint32 uiSpellLockTimer;
- void Reset()
+ void Reset() OVERRIDE
{
uiArcaneEmpowermentTimer = 5000;
uiSpellLockTimer = 5000;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
violet_hold_trashAI::UpdateAI(diff);
npc_escortAI::UpdateAI(diff);
@@ -1018,19 +1018,19 @@ public:
};
-class mob_azure_raider : public CreatureScript
+class npc_azure_raider : public CreatureScript
{
public:
- mob_azure_raider() : CreatureScript("mob_azure_raider") { }
+ npc_azure_raider() : CreatureScript("npc_azure_raider") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_azure_raiderAI (creature);
+ return new npc_azure_raiderAI(creature);
}
- struct mob_azure_raiderAI : public violet_hold_trashAI
+ struct npc_azure_raiderAI : public violet_hold_trashAI
{
- mob_azure_raiderAI(Creature* creature) : violet_hold_trashAI(creature)
+ npc_azure_raiderAI(Creature* creature) : violet_hold_trashAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -1038,13 +1038,13 @@ public:
uint32 uiConcussionBlowTimer;
uint32 uiMagicReflectionTimer;
- void Reset()
+ void Reset() OVERRIDE
{
uiConcussionBlowTimer = 5000;
uiMagicReflectionTimer = 8000;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
violet_hold_trashAI::UpdateAI(diff);
npc_escortAI::UpdateAI(diff);
@@ -1054,7 +1054,7 @@ public:
if (uiConcussionBlowTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_CONCUSSION_BLOW);
+ DoCastVictim(SPELL_CONCUSSION_BLOW);
uiConcussionBlowTimer = 5000;
} else uiConcussionBlowTimer -= diff;
@@ -1070,34 +1070,26 @@ public:
};
-class mob_azure_stalker : public CreatureScript
+class npc_azure_stalker : public CreatureScript
{
public:
- mob_azure_stalker() : CreatureScript("mob_azure_stalker") { }
+ npc_azure_stalker() : CreatureScript("npc_azure_stalker") { }
- CreatureAI* GetAI(Creature* creature) const
+ struct npc_azure_stalkerAI : public violet_hold_trashAI
{
- return new mob_azure_stalkerAI (creature);
- }
-
- struct mob_azure_stalkerAI : public violet_hold_trashAI
- {
- mob_azure_stalkerAI(Creature* creature) : violet_hold_trashAI(creature)
+ npc_azure_stalkerAI(Creature* creature) : violet_hold_trashAI(creature)
{
instance = creature->GetInstanceScript();
}
- uint32 uiBackstabTimer;
- uint32 uiTacticalBlinkTimer;
- bool TacticalBlinkCasted;
- void Reset()
+ void Reset() OVERRIDE
{
- uiBackstabTimer = 1300;
- uiTacticalBlinkTimer = 8000;
- TacticalBlinkCasted =false;
+ _backstabTimer = 1300;
+ _tacticalBlinkTimer = 8000;
+ _tacticalBlinkCast =false;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
violet_hold_trashAI::UpdateAI(diff);
npc_escortAI::UpdateAI(diff);
@@ -1105,43 +1097,52 @@ public:
if (!UpdateVictim())
return;
- if (!TacticalBlinkCasted)
+ if (!_tacticalBlinkCast)
{
- if (uiTacticalBlinkTimer <= diff)
+ if (_tacticalBlinkTimer <= diff)
{
Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 40, true);
if (target)
DoCast(target, SPELL_TACTICAL_BLINK);
- uiTacticalBlinkTimer = 6000;
- TacticalBlinkCasted = true;
- } else uiTacticalBlinkTimer -= diff;
+ _tacticalBlinkTimer = 6000;
+ _tacticalBlinkCast = true;
+ } else _tacticalBlinkTimer -= diff;
}
else
{
- if (uiBackstabTimer <= diff)
+ if (_backstabTimer <= diff)
{
Unit* target = SelectTarget(SELECT_TARGET_NEAREST, 0, 10, true);
DoCast(target, SPELL_BACKSTAB);
- TacticalBlinkCasted = false;
- uiBackstabTimer =1300;
- } else uiBackstabTimer -= diff;
+ _tacticalBlinkCast = false;
+ _backstabTimer =1300;
+ } else _backstabTimer -= diff;
}
DoMeleeAttackIfReady();
}
+
+ private:
+ uint32 _backstabTimer;
+ uint32 _tacticalBlinkTimer;
+ bool _tacticalBlinkCast;
};
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_azure_stalkerAI(creature);
+ }
};
-class mob_azure_spellbreaker : public CreatureScript
+class npc_azure_spellbreaker : public CreatureScript
{
public:
- mob_azure_spellbreaker() : CreatureScript("mob_azure_spellbreaker") { }
+ npc_azure_spellbreaker() : CreatureScript("npc_azure_spellbreaker") { }
- struct mob_azure_spellbreakerAI : public violet_hold_trashAI
+ struct npc_azure_spellbreakerAI : public violet_hold_trashAI
{
- mob_azure_spellbreakerAI(Creature* creature) : violet_hold_trashAI(creature)
+ npc_azure_spellbreakerAI(Creature* creature) : violet_hold_trashAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -1151,7 +1152,7 @@ public:
uint32 uiChainsOfIceTimer;
uint32 uiConeOfColdTimer;
- void Reset()
+ void Reset() OVERRIDE
{
uiArcaneBlastTimer = 5000;
uiSlowTimer = 4000;
@@ -1159,7 +1160,7 @@ public:
uiConeOfColdTimer = 4000;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
violet_hold_trashAI::UpdateAI(diff);
npc_escortAI::UpdateAI(diff);
@@ -1207,25 +1208,25 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_azure_spellbreakerAI (creature);
+ return new npc_azure_spellbreakerAI(creature);
}
};
-class mob_azure_captain : public CreatureScript
+class npc_azure_captain : public CreatureScript
{
public:
- mob_azure_captain() : CreatureScript("mob_azure_captain") { }
+ npc_azure_captain() : CreatureScript("npc_azure_captain") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_azure_captainAI (creature);
+ return new npc_azure_captainAI(creature);
}
- struct mob_azure_captainAI : public violet_hold_trashAI
+ struct npc_azure_captainAI : public violet_hold_trashAI
{
- mob_azure_captainAI(Creature* creature) : violet_hold_trashAI(creature)
+ npc_azure_captainAI(Creature* creature) : violet_hold_trashAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -1233,13 +1234,13 @@ public:
uint32 uiMortalStrikeTimer;
uint32 uiWhirlwindTimer;
- void Reset()
+ void Reset() OVERRIDE
{
uiMortalStrikeTimer = 5000;
uiWhirlwindTimer = 8000;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
violet_hold_trashAI::UpdateAI(diff);
npc_escortAI::UpdateAI(diff);
@@ -1249,7 +1250,7 @@ public:
if (uiMortalStrikeTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_MORTAL_STRIKE);
+ DoCastVictim(SPELL_MORTAL_STRIKE);
uiMortalStrikeTimer = 5000;
} else uiMortalStrikeTimer -= diff;
@@ -1265,19 +1266,19 @@ public:
};
-class mob_azure_sorceror : public CreatureScript
+class npc_azure_sorceror : public CreatureScript
{
public:
- mob_azure_sorceror() : CreatureScript("mob_azure_sorceror") { }
+ npc_azure_sorceror() : CreatureScript("npc_azure_sorceror") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_azure_sorcerorAI (creature);
+ return new npc_azure_sorcerorAI(creature);
}
- struct mob_azure_sorcerorAI : public violet_hold_trashAI
+ struct npc_azure_sorcerorAI : public violet_hold_trashAI
{
- mob_azure_sorcerorAI(Creature* creature) : violet_hold_trashAI(creature)
+ npc_azure_sorcerorAI(Creature* creature) : violet_hold_trashAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -1286,14 +1287,14 @@ public:
uint32 uiArcaneStreamTimerStartingValueHolder;
uint32 uiManaDetonationTimer;
- void Reset()
+ void Reset() OVERRIDE
{
uiArcaneStreamTimer = 4000;
uiArcaneStreamTimerStartingValueHolder = uiArcaneStreamTimer;
uiManaDetonationTimer = 5000;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
violet_hold_trashAI::UpdateAI(diff);
npc_escortAI::UpdateAI(diff);
@@ -1319,20 +1320,70 @@ public:
DoMeleeAttackIfReady();
}
};
+};
+
+
+class npc_violet_hold_arcane_sphere : public CreatureScript
+{
+public:
+ npc_violet_hold_arcane_sphere() : CreatureScript("npc_violet_hold_arcane_sphere") { }
+
+ struct npc_violet_hold_arcane_sphereAI : public ScriptedAI
+ {
+ npc_violet_hold_arcane_sphereAI(Creature* creature) : ScriptedAI(creature) { }
+
+ uint32 DespawnTimer;
+ void Reset() OVERRIDE
+ {
+ DespawnTimer = 3000;
+
+ me->SetDisableGravity(true);
+ DoCast(me, SPELL_ARCANE_SPHERE_PASSIVE, true);
+ }
+
+ void EnterCombat(Unit * /*who*/) OVERRIDE {}
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ if (DespawnTimer <= diff)
+ me->Kill(me);
+ else
+ DespawnTimer -= diff;
+ }
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_violet_hold_arcane_sphereAI(creature);
+ }
+};
+
+class go_activation_crystal : public GameObjectScript
+{
+public:
+ go_activation_crystal() : GameObjectScript("go_activation_crystal") { }
+
+ bool OnGossipHello(Player * /*player*/, GameObject* go) OVERRIDE
+ {
+ go->EventInform(EVENT_ACTIVATE_CRYSTAL);
+ return false;
+ }
};
void AddSC_violet_hold()
{
new npc_sinclari_vh();
new npc_teleportation_portal_vh();
- new mob_azure_invader();
- new mob_azure_spellbreaker();
- new mob_azure_binder();
- new mob_azure_mage_slayer();
- new mob_azure_captain();
- new mob_azure_sorceror();
- new mob_azure_raider();
- new mob_azure_stalker();
- new mob_azure_saboteur();
+ new npc_azure_invader();
+ new npc_azure_spellbreaker();
+ new npc_azure_binder();
+ new npc_azure_mage_slayer();
+ new npc_azure_captain();
+ new npc_azure_sorceror();
+ new npc_azure_raider();
+ new npc_azure_stalker();
+ new npc_azure_saboteur();
+ new npc_violet_hold_arcane_sphere();
+ new go_activation_crystal();
}
diff --git a/src/server/scripts/Northrend/VioletHold/violet_hold.h b/src/server/scripts/Northrend/VioletHold/violet_hold.h
index e6a7553e81b..f288af43ed2 100644
--- a/src/server/scripts/Northrend/VioletHold/violet_hold.h
+++ b/src/server/scripts/Northrend/VioletHold/violet_hold.h
@@ -18,24 +18,6 @@
#ifndef DEF_VIOLET_HOLD_H
#define DEF_VIOLET_HOLD_H
-enum Creatures
-{
- CREATURE_TELEPORTATION_PORTAL = 31011,
- CREATURE_PORTAL_GUARDIAN = 30660,
- CREATURE_PORTAL_KEEPER = 30695,
- CREATURE_XEVOZZ = 29266,
- CREATURE_LAVANTHOR = 29312,
- CREATURE_ICHORON = 29313,
- CREATURE_ZURAMAT = 29314,
- CREATURE_EREKEM = 29315,
- CREATURE_EREKEM_GUARD = 29395,
- CREATURE_MORAGG = 29316,
- CREATURE_CYANIGOSA = 31134,
- CREATURE_SINCLARI = 30658,
- CREATURE_SABOTEOUR = 31079,
- NPC_VIOLET_HOLD_GUARD = 30659
-};
-
enum Data
{
DATA_1ST_BOSS_EVENT,
@@ -95,11 +77,35 @@ enum Bosses
BOSS_CYANIGOSA
};
-enum VHWorldStates
+enum CreaturesIds
+{
+ CREATURE_TELEPORTATION_PORTAL = 31011,
+ CREATURE_PORTAL_GUARDIAN = 30660,
+ CREATURE_PORTAL_KEEPER = 30695,
+ CREATURE_XEVOZZ = 29266,
+ CREATURE_LAVANTHOR = 29312,
+ CREATURE_ICHORON = 29313,
+ CREATURE_ZURAMAT = 29314,
+ CREATURE_EREKEM = 29315,
+ CREATURE_EREKEM_GUARD = 29395,
+ CREATURE_MORAGG = 29316,
+ CREATURE_CYANIGOSA = 31134,
+ CREATURE_SINCLARI = 30658,
+ CREATURE_SABOTEOUR = 31079,
+ NPC_VIOLET_HOLD_GUARD = 30659,
+ NPC_DEFENSE_SYSTEM = 30837
+};
+
+enum WorldStateIds
{
WORLD_STATE_VH = 3816,
WORLD_STATE_VH_PRISON_STATE = 3815,
WORLD_STATE_VH_WAVE_COUNT = 3810,
};
+enum Events
+{
+ EVENT_ACTIVATE_CRYSTAL = 20001
+};
+
#endif
diff --git a/src/server/scripts/Northrend/isle_of_conquest.cpp b/src/server/scripts/Northrend/isle_of_conquest.cpp
index 93886ed0e74..9efcd8406d7 100644
--- a/src/server/scripts/Northrend/isle_of_conquest.cpp
+++ b/src/server/scripts/Northrend/isle_of_conquest.cpp
@@ -33,7 +33,7 @@ class npc_four_car_garage : public CreatureScript
{
npc_four_car_garageAI(Creature* creature) : NullCreatureAI(creature) { }
- void PassengerBoarded(Unit* who, int8 /*seatId*/, bool apply)
+ void PassengerBoarded(Unit* who, int8 /*seatId*/, bool apply) OVERRIDE
{
if (apply)
{
@@ -64,7 +64,7 @@ class npc_four_car_garage : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_four_car_garageAI(creature);
}
diff --git a/src/server/scripts/Northrend/zone_borean_tundra.cpp b/src/server/scripts/Northrend/zone_borean_tundra.cpp
index 6fb1079d94c..6d2a48910fe 100644
--- a/src/server/scripts/Northrend/zone_borean_tundra.cpp
+++ b/src/server/scripts/Northrend/zone_borean_tundra.cpp
@@ -29,7 +29,7 @@ npc_corastrasza
npc_jenny
npc_sinkhole_kill_credit
npc_khunok_the_behemoth
-mob_nerubar_victim
+npc_nerubar_victim
npc_keristrasza
npc_nesingwary_trapper
npc_lurgglbr
@@ -49,7 +49,7 @@ EndContentData */
## npc_sinkhole_kill_credit
######*/
-enum eSinkhole
+enum Sinkhole
{
SPELL_SET_CART = 46797,
SPELL_EXPLODE_CART = 46799,
@@ -70,14 +70,14 @@ public:
uint8 phase;
uint64 casterGuid;
- void Reset()
+ void Reset() OVERRIDE
{
phaseTimer = 500;
phase = 0;
casterGuid = 0;
}
- void SpellHit(Unit* caster, const SpellInfo* spell)
+ void SpellHit(Unit* caster, const SpellInfo* spell) OVERRIDE
{
if (phase || spell->Id != SPELL_SET_CART)
return;
@@ -90,9 +90,9 @@ public:
}
}
- void EnterCombat(Unit* /*who*/){}
+ void EnterCombat(Unit* /*who*/)OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!phase)
return;
@@ -157,7 +157,7 @@ public:
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_sinkhole_kill_creditAI(creature);
}
@@ -176,7 +176,8 @@ public:
{
npc_khunok_the_behemothAI(Creature* creature) : ScriptedAI(creature) {}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
ScriptedAI::MoveInLineOfSight(who);
@@ -197,7 +198,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_khunok_the_behemothAI(creature);
}
@@ -207,7 +208,7 @@ public:
## npc_keristrasza
######*/
-enum eKeristrasza
+enum Keristrasza
{
SPELL_TELEPORT_TO_SARAGOSA = 46772
};
@@ -219,9 +220,9 @@ class npc_keristrasza : public CreatureScript
public:
npc_keristrasza() : CreatureScript("npc_keristrasza") { }
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
if (player->GetQuestStatus(11957) == QUEST_STATUS_INCOMPLETE)
@@ -232,7 +233,7 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF + 1)
@@ -251,7 +252,7 @@ public:
#define GOSSIP_ITEM_C_1 "I... I think so..."
-enum eCorastrasza
+enum Corastrasza
{
SPELL_SUMMON_WYRMREST_SKYTALON = 61240,
SPELL_WYRMREST_SKYTALON_RIDE_PERIODIC = 61244,
@@ -265,9 +266,9 @@ class npc_corastrasza : public CreatureScript
public:
npc_corastrasza() : CreatureScript("npc_corastrasza") { }
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
if (player->GetQuestStatus(QUEST_ACES_HIGH) == QUEST_STATUS_INCOMPLETE || player->GetQuestStatus(QUEST_ACES_HIGH_DAILY) == QUEST_STATUS_INCOMPLETE) //It's the same dragon for both quests.
@@ -277,7 +278,7 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF+1)
@@ -299,7 +300,7 @@ public:
#define GOSSIP_ITEM_I "<Search corpse for Issliruk's Totem.>"
-enum eIruk
+enum Iruk
{
QUEST_SPIRITS_WATCH_OVER_US = 11961,
SPELL_CREATURE_TOTEM_OF_ISSLIRUK = 46816,
@@ -311,7 +312,7 @@ class npc_iruk : public CreatureScript
public:
npc_iruk() : CreatureScript("npc_iruk") { }
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
if (player->GetQuestStatus(QUEST_SPIRITS_WATCH_OVER_US) == QUEST_STATUS_INCOMPLETE)
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_I, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
@@ -320,7 +321,7 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -336,7 +337,7 @@ public:
};
/*######
-## mob_nerubar_victim
+## npc_nerubar_victim
######*/
#define WARSONG_PEON 25270
@@ -346,20 +347,21 @@ const uint32 nerubarVictims[3] =
45526, 45527, 45514
};
-class mob_nerubar_victim : public CreatureScript
+class npc_nerubar_victim : public CreatureScript
{
public:
- mob_nerubar_victim() : CreatureScript("mob_nerubar_victim") { }
+ npc_nerubar_victim() : CreatureScript("npc_nerubar_victim") { }
- struct mob_nerubar_victimAI : public ScriptedAI
+ struct npc_nerubar_victimAI : public ScriptedAI
{
- mob_nerubar_victimAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_nerubar_victimAI(Creature* creature) : ScriptedAI(creature) {}
+
+ void Reset() OVERRIDE {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
- void Reset() {}
- void EnterCombat(Unit* /*who*/) {}
- void MoveInLineOfSight(Unit* /*who*/) {}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
Player* player = killer->ToPlayer();
if (!player)
@@ -379,9 +381,9 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_nerubar_victimAI(creature);
+ return new npc_nerubar_victimAI(creature);
}
};
@@ -389,7 +391,7 @@ public:
## npc_jenny
######*/
-enum eJenny
+enum Jenny
{
QUEST_LOADER_UP = 11881,
@@ -412,7 +414,7 @@ public:
bool setCrateNumber;
- void Reset()
+ void Reset() OVERRIDE
{
if (!setCrateNumber)
setCrateNumber = true;
@@ -431,12 +433,12 @@ public:
}
}
- void DamageTaken(Unit* /*pDone_by*/, uint32& /*uiDamage*/)
+ void DamageTaken(Unit* /*pDone_by*/, uint32& /*uiDamage*/) OVERRIDE
{
DoCast(me, SPELL_DROP_CRATE, true);
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
if (setCrateNumber)
{
@@ -452,9 +454,9 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_jennyAI (creature);
+ return new npc_jennyAI(creature);
}
};
@@ -471,7 +473,8 @@ public:
{
npc_fezzix_geartwistAI(Creature* creature) : ScriptedAI(creature) {}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
ScriptedAI::MoveInLineOfSight(who);
@@ -491,7 +494,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_fezzix_geartwistAI(creature);
}
@@ -501,7 +504,7 @@ public:
## npc_nesingwary_trapper
######*/
-enum eNesingwaryTrapper
+enum NesingwaryTrapper
{
GO_HIGH_QUALITY_FUR = 187983,
@@ -545,7 +548,7 @@ public:
uint8 phase;
uint32 phaseTimer;
- void Reset()
+ void Reset() OVERRIDE
{
me->SetVisible(false);
phaseTimer = 2500;
@@ -553,16 +556,17 @@ public:
go_caribouGUID = 0;
}
- void EnterCombat(Unit* /*who*/) {}
- void MoveInLineOfSight(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
- void JustDied(Unit* /*killer*/)
+
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (GameObject* go_caribou = me->GetMap()->GetGameObject(go_caribouGUID))
go_caribou->SetLootState(GO_JUST_DEACTIVATED);
if (TempSummon* summon = me->ToTempSummon())
- if (summon->isSummon())
+ if (summon->IsSummon())
if (Unit* temp = summon->GetSummoner())
if (Player* player = temp->ToPlayer())
player->KilledMonsterCredit(me->GetEntry(), 0);
@@ -571,7 +575,7 @@ public:
go_caribou->SetGoState(GO_STATE_READY);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (phaseTimer <= diff)
{
@@ -635,7 +639,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_nesingwary_trapperAI(creature);
}
@@ -645,7 +649,7 @@ public:
## npc_lurgglbr
######*/
-enum eLurgglbr
+enum Lurgglbr
{
QUEST_ESCAPE_WINTERFIN_CAVERNS = 11570,
@@ -672,7 +676,7 @@ public:
uint32 IntroTimer;
uint32 IntroPhase;
- void Reset()
+ void Reset() OVERRIDE
{
if (!HasEscortState(STATE_ESCORT_ESCORTING))
{
@@ -681,7 +685,7 @@ public:
}
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
switch (waypointId)
{
@@ -696,7 +700,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (IntroPhase)
{
@@ -752,12 +756,12 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_lurgglbrAI(creature);
}
- bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_ESCAPE_WINTERFIN_CAVERNS)
{
@@ -792,7 +796,7 @@ public:
## npc_nexus_drake_hatchling
######*/
-enum eNexusDrakeHatchling
+enum NexusDrakeHatchling
{
SPELL_DRAKE_HARPOON = 46607,
SPELL_RED_DRAGONBLOOD = 46620,
@@ -812,24 +816,26 @@ public:
struct npc_nexus_drake_hatchlingAI : public FollowerAI //The spell who makes the npc follow the player is missing, also we can use FollowerAI!
{
- npc_nexus_drake_hatchlingAI(Creature* creature) : FollowerAI(creature) {}
+ npc_nexus_drake_hatchlingAI(Creature* creature) : FollowerAI(creature)
+ {
+ HarpoonerGUID = 0;
+ }
uint64 HarpoonerGUID;
bool WithRedDragonBlood;
- void Reset()
+ void Reset() OVERRIDE
{
WithRedDragonBlood = false;
- HarpoonerGUID = 0;
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (me->IsValidAttackTarget(who))
AttackStart(who);
}
- void SpellHit(Unit* caster, const SpellInfo* spell)
+ void SpellHit(Unit* caster, const SpellInfo* spell) OVERRIDE
{
if (spell->Id == SPELL_DRAKE_HARPOON && caster->GetTypeId() == TYPEID_PLAYER)
{
@@ -839,7 +845,8 @@ public:
WithRedDragonBlood = true;
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
FollowerAI::MoveInLineOfSight(who);
@@ -862,7 +869,7 @@ public:
}
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
if (WithRedDragonBlood && HarpoonerGUID && !me->HasAura(SPELL_RED_DRAGONBLOOD))
{
@@ -879,6 +886,12 @@ public:
}
}
+ if ((me->getFaction() == 35) && (!me->HasAura(SPELL_SUBDUED)))
+ {
+ HarpoonerGUID = 0;
+ me->DisappearAndDie();
+ }
+
if (!UpdateVictim())
return;
@@ -886,7 +899,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_nexus_drake_hatchlingAI(creature);
}
@@ -896,7 +909,7 @@ public:
## npc_thassarian
######*/
-enum eThassarian
+enum Thassarian
{
QUEST_LAST_RITES = 12019,
@@ -960,7 +973,7 @@ public:
uint32 phase;
uint32 phaseTimer;
- void Reset()
+ void Reset() OVERRIDE
{
me->RestoreFaction();
me->RemoveStandFlags(UNIT_STAND_STATE_SIT);
@@ -979,7 +992,7 @@ public:
phaseTimer = 0;
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
Player* player = GetPlayerForEscort();
if (!player)
@@ -1012,7 +1025,7 @@ public:
}
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
npc_escortAI::UpdateAI(uiDiff);
@@ -1190,7 +1203,7 @@ public:
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (Creature* talbot = me->GetCreature(*me, talbotGUID))
talbot->RemoveFromWorld();
@@ -1206,9 +1219,9 @@ public:
}
};
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
if (player->GetQuestStatus(QUEST_LAST_RITES) == QUEST_STATUS_INCOMPLETE && creature->GetAreaId() == 4128)
@@ -1219,7 +1232,7 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -1232,7 +1245,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_thassarianAI(creature);
}
@@ -1251,23 +1264,23 @@ public:
{
npc_image_lich_kingAI(Creature* creature) : ScriptedAI(creature) {}
- void Reset()
+ void Reset() OVERRIDE
{
me->RestoreFaction();
}
- void MovementInform(uint32 uiType, uint32 /*uiId*/)
+ void MovementInform(uint32 uiType, uint32 /*uiId*/) OVERRIDE
{
if (uiType != POINT_MOTION_TYPE)
return;
- if (me->isSummon())
+ if (me->IsSummon())
if (Unit* summoner = me->ToTempSummon()->GetSummoner())
CAST_AI(npc_thassarian::npc_thassarianAI, summoner->ToCreature()->AI())->arthasInPosition = true;
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_image_lich_kingAI(creature);
}
@@ -1286,20 +1299,20 @@ public:
{
npc_general_arlosAI(Creature* creature) : ScriptedAI(creature) {}
- void MovementInform(uint32 uiType, uint32 /*uiId*/)
+ void MovementInform(uint32 uiType, uint32 /*uiId*/) OVERRIDE
{
if (uiType != POINT_MOTION_TYPE)
return;
me->AddUnitState(UNIT_STATE_STUNNED);
me->CastSpell(me, SPELL_STUN, true);
- if (me->isSummon())
+ if (me->IsSummon())
if (Unit* summoner = me->ToTempSummon()->GetSummoner())
CAST_AI(npc_thassarian::npc_thassarianAI, summoner->ToCreature()->AI())->arlosInPosition = true;
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_general_arlosAI(creature);
}
@@ -1309,7 +1322,7 @@ public:
## npc_counselor_talbot
######*/
-enum eCounselorTalbot
+enum CounselorTalbot
{
SPELL_DEFLECTION = 51009,
SPELL_SOUL_BLAST = 50992,
@@ -1336,26 +1349,26 @@ public:
uint32 deflectionTimer;
uint32 soulBlastTimer;
- void Reset()
+ void Reset() OVERRIDE
{
leryssaGUID = 0;
arlosGUID = 0;
bCheck = false;
shadowBoltTimer = urand(5000, 12000);
deflectionTimer = urand(20000, 25000);
- soulBlastTimer = urand (12000, 18000);
+ soulBlastTimer = urand(12000, 18000);
}
- void MovementInform(uint32 uiType, uint32 /*uiId*/)
+ void MovementInform(uint32 uiType, uint32 /*uiId*/) OVERRIDE
{
if (uiType != POINT_MOTION_TYPE)
return;
- if (me->isSummon())
+ if (me->IsSummon())
if (Unit* summoner = me->ToTempSummon()->GetSummoner())
CAST_AI(npc_thassarian::npc_thassarianAI, summoner->ToCreature()->AI())->talbotInPosition = true;
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (bCheck)
{
@@ -1373,27 +1386,27 @@ public:
{
if (shadowBoltTimer <= uiDiff)
{
- DoCast(me->getVictim(), SPELL_SHADOW_BOLT);
+ DoCastVictim(SPELL_SHADOW_BOLT);
shadowBoltTimer = urand(5000, 12000);
} else shadowBoltTimer -= uiDiff;
if (deflectionTimer <= uiDiff)
{
- DoCast(me->getVictim(), SPELL_DEFLECTION);
+ DoCastVictim(SPELL_DEFLECTION);
deflectionTimer = urand(20000, 25000);
} else deflectionTimer -= uiDiff;
if (soulBlastTimer <= uiDiff)
{
- DoCast(me->getVictim(), SPELL_SOUL_BLAST);
- soulBlastTimer = urand (12000, 18000);
+ DoCastVictim(SPELL_SOUL_BLAST);
+ soulBlastTimer = urand(12000, 18000);
} else soulBlastTimer -= uiDiff;
}
DoMeleeAttackIfReady();
}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
if (!leryssaGUID || !arlosGUID)
return;
@@ -1417,7 +1430,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_counselor_talbotAI(creature);
}
@@ -1448,7 +1461,7 @@ public:
uint32 phase;
uint32 phaseTimer;
- void MovementInform(uint32 type, uint32 /*uiId*/)
+ void MovementInform(uint32 type, uint32 /*uiId*/) OVERRIDE
{
if (type != POINT_MOTION_TYPE)
return;
@@ -1461,7 +1474,7 @@ public:
me->AddUnitState(UNIT_STATE_STUNNED);
me->CastSpell(me, SPELL_STUN, true);
- if (me->isSummon())
+ if (me->IsSummon())
if (Unit* summoner = me->ToTempSummon()->GetSummoner())
CAST_AI(npc_thassarian::npc_thassarianAI, summoner->GetAI())->leryssaInPosition = true;
bDone = true;
@@ -1469,7 +1482,7 @@ public:
else
{
me->SetStandState(UNIT_STAND_STATE_SIT);
- if (me->isSummon())
+ if (me->IsSummon())
if (Unit* summoner = me->ToTempSummon()->GetSummoner())
summoner->SetStandState(UNIT_STAND_STATE_SIT);
phaseTimer = 1500;
@@ -1477,7 +1490,7 @@ public:
}
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
ScriptedAI::UpdateAI(uiDiff);
@@ -1486,7 +1499,7 @@ public:
switch (phase)
{
case 1:
- if (me->isSummon())
+ if (me->IsSummon())
if (Unit* summoner = me->ToTempSummon()->GetSummoner())
if (Creature* thassarian = summoner->ToCreature())
thassarian->AI()->Talk(SAY_THASSARIAN_4);
@@ -1499,7 +1512,7 @@ public:
++phase;
break;
case 3:
- if (me->isSummon())
+ if (me->IsSummon())
if (Unit* summoner = me->ToTempSummon()->GetSummoner())
if (Creature* thassarian = summoner->ToCreature())
thassarian->AI()->Talk(SAY_THASSARIAN_5);
@@ -1512,7 +1525,7 @@ public:
++phase;
break;
case 5:
- if (me->isSummon())
+ if (me->IsSummon())
if (Unit* summoner = me->ToTempSummon()->GetSummoner())
if (Creature* thassarian = summoner->ToCreature())
thassarian->AI()->Talk(SAY_THASSARIAN_6);
@@ -1526,7 +1539,7 @@ public:
++phase;
break;
case 7:
- if (me->isSummon())
+ if (me->IsSummon())
if (Unit* summoner = me->ToTempSummon()->GetSummoner())
if (Creature* thassarian = summoner->ToCreature())
{
@@ -1546,7 +1559,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_leryssaAI(creature);
}
@@ -1556,7 +1569,7 @@ public:
## npc_beryl_sorcerer
######*/
-enum eBerylSorcerer
+enum BerylSorcerer
{
NPC_CAPTURED_BERLY_SORCERER = 25474,
NPC_LIBRARIAN_DONATHAN = 25262,
@@ -1577,19 +1590,19 @@ public:
bool bEnslaved;
- void Reset()
+ void Reset() OVERRIDE
{
me->SetReactState(REACT_AGGRESSIVE);
bEnslaved = false;
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (me->IsValidAttackTarget(who))
AttackStart(who);
}
- void SpellHit(Unit* pCaster, const SpellInfo* pSpell)
+ void SpellHit(Unit* pCaster, const SpellInfo* pSpell) OVERRIDE
{
if (pSpell->Id == SPELL_ARCANE_CHAINS && pCaster->GetTypeId() == TYPEID_PLAYER && !HealthAbovePct(50) && !bEnslaved)
{
@@ -1606,7 +1619,8 @@ public:
}
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
FollowerAI::MoveInLineOfSight(who);
@@ -1617,7 +1631,7 @@ public:
}
}
- void UpdateAI(uint32 /*uiDiff*/)
+ void UpdateAI(uint32 /*uiDiff*/) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -1626,7 +1640,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_beryl_sorcererAI(creature);
}
@@ -1635,7 +1649,7 @@ public:
/*######
## npc_imprisoned_beryl_sorcerer
######*/
-enum eImprisionedBerylSorcerer
+enum ImprisionedBerylSorcerer
{
SPELL_NEURAL_NEEDLE = 45634,
@@ -1661,7 +1675,7 @@ public:
uint32 rebuff;
- void Reset()
+ void Reset() OVERRIDE
{
if (me->GetReactState() != REACT_PASSIVE)
me->SetReactState(REACT_PASSIVE);
@@ -1669,7 +1683,7 @@ public:
rebuff = 0;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
UpdateVictim();
@@ -1687,11 +1701,11 @@ public:
DoMeleeAttackIfReady();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
- void SpellHit(Unit* unit, const SpellInfo* spell)
+ void SpellHit(Unit* unit, const SpellInfo* spell) OVERRIDE
{
if (spell->Id == SPELL_NEURAL_NEEDLE && unit->GetTypeId() == TYPEID_PLAYER)
{
@@ -1736,7 +1750,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_imprisoned_beryl_sorcererAI(creature);
}
@@ -1762,7 +1776,7 @@ class npc_mootoo_the_younger : public CreatureScript
public:
npc_mootoo_the_younger() : CreatureScript("npc_mootoo_the_younger") { }
- bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_ESCAPING_THE_MIST)
{
@@ -1786,18 +1800,18 @@ public:
{
npc_mootoo_the_youngerAI(Creature* creature) : npc_escortAI(creature) {}
- void Reset()
+ void Reset() OVERRIDE
{
SetDespawnAtFar(false);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (Player* player=GetPlayerForEscort())
player->FailQuest(QUEST_ESCAPING_THE_MIST);
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
Player* player = GetPlayerForEscort();
if (!player)
@@ -1828,7 +1842,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_mootoo_the_youngerAI(creature);
}
@@ -1852,7 +1866,7 @@ class npc_bonker_togglevolt : public CreatureScript
public:
npc_bonker_togglevolt() : CreatureScript("npc_bonker_togglevolt") { }
- bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_GET_ME_OUTA_HERE)
{
@@ -1868,19 +1882,19 @@ public:
npc_bonker_togglevoltAI(Creature* creature) : npc_escortAI(creature) {}
uint32 Bonker_agro;
- void Reset()
+ void Reset() OVERRIDE
{
Bonker_agro=0;
SetDespawnAtFar(false);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (Player* player = GetPlayerForEscort())
player->FailQuest(QUEST_GET_ME_OUTA_HERE);
}
- void UpdateEscortAI(const uint32 /*diff*/)
+ void UpdateEscortAI(const uint32 /*diff*/) OVERRIDE
{
if (GetAttack() && UpdateVictim())
{
@@ -1894,7 +1908,7 @@ public:
else Bonker_agro=0;
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
Player* player = GetPlayerForEscort();
if (!player)
@@ -1909,7 +1923,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_bonker_togglevoltAI(creature);
}
@@ -1919,7 +1933,7 @@ public:
## Help Those That Cannot Help Themselves, Quest 11876
######*/
-enum eHelpThemselves
+enum HelpThemselves
{
QUEST_CANNOT_HELP_THEMSELVES = 11876,
GO_MAMMOTH_TRAP_1 = 188022,
@@ -1968,7 +1982,7 @@ public:
uint32 uiTimer;
bool bStarted;
- void Reset()
+ void Reset() OVERRIDE
{
uiTimer = 1500;
bStarted = false;
@@ -1985,7 +1999,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (bStarted)
{
@@ -2000,13 +2014,13 @@ public:
}
}
- void DoAction(int32 param)
+ void DoAction(int32 param) OVERRIDE
{
if (param == 1)
bStarted = true;
}
- void MovementInform(uint32 uiType, uint32 /*uiId*/)
+ void MovementInform(uint32 uiType, uint32 /*uiId*/) OVERRIDE
{
if (uiType != POINT_MOTION_TYPE)
return;
@@ -2026,7 +2040,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_trapped_mammoth_calfAI(creature);
}
@@ -2036,7 +2050,7 @@ public:
## Quest 11653: Hah... You're Not So Big Now!
######*/
-enum eNotSoBig
+enum NotSoBig
{
QUEST_YOU_RE_NOT_SO_BIG_NOW = 11653,
SPELL_AURA_NOTSOBIG_1 = 45672,
@@ -2054,7 +2068,7 @@ public:
{
npc_magmoth_crusherAI(Creature* creature) : ScriptedAI(creature) {}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
Player* player = killer->ToPlayer();
if (!player)
@@ -2071,7 +2085,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_magmoth_crusherAI(creature);
}
@@ -2081,8 +2095,15 @@ public:
## Quest 11608: Bury Those Cockroaches!
######*/
-#define QUEST_BURY_THOSE_COCKROACHES 11608
-#define SPELL_SEAFORIUM_DEPTH_CHARGE_EXPLOSION 45502
+enum BuryThoseCockroaches
+{
+ // Quest
+ QUEST_BURY_THOSE_COCKROACHES = 11608,
+
+ // Spells
+ SPELL_SEAFORIUM_DEPTH_CHARGE_EXPLOSION = 45502
+
+};
class npc_seaforium_depth_charge : public CreatureScript
{
@@ -2095,12 +2116,12 @@ public:
uint32 uiExplosionTimer;
- void Reset()
+ void Reset() OVERRIDE
{
uiExplosionTimer = urand(5000, 10000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (uiExplosionTimer < diff)
{
@@ -2123,7 +2144,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_seaforium_depth_chargeAI(creature);
}
@@ -2133,7 +2154,7 @@ public:
## Help Those That Cannot Help Themselves, Quest 11876
######*/
-enum eValiancekeepcannons
+enum Valiancekeepcannons
{
GO_VALIANCE_KEEP_CANNON_1 = 187560,
GO_VALIANCE_KEEP_CANNON_2 = 188692
@@ -2150,12 +2171,12 @@ public:
uint32 uiTimer;
- void Reset()
+ void Reset() OVERRIDE
{
uiTimer = urand(13000, 18000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (uiTimer <= diff)
{
@@ -2174,7 +2195,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_valiance_keep_cannoneerAI(creature);
}
@@ -2208,16 +2229,16 @@ public:
uint32 m_uiTimer; //Timer until recast
- void Reset()
+ void Reset() OVERRIDE
{
m_uiTimer = 0;
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void AttackStart(Unit* /*who*/) {}
+ void AttackStart(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (m_uiTimer <= uiDiff)
{
@@ -2279,7 +2300,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_warmage_coldarraAI(creature);
}
@@ -2289,7 +2310,7 @@ public:
## npc_hidden_cultist
######*/
-enum eHiddenCultist
+enum HiddenCultist
{
SPELL_SHROUD_OF_THE_DEATH_CULTIST = 46077, //not working
SPELL_RIGHTEOUS_VISION = 46078, //player aura
@@ -2335,7 +2356,7 @@ public:
uint64 uiPlayerGUID;
- void Reset()
+ void Reset() OVERRIDE
{
if (uiEmoteState)
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, uiEmoteState);
@@ -2353,20 +2374,17 @@ public:
me->RestoreFaction();
}
- void DoAction(int32 /*iParam*/)
+ void DoAction(int32 /*iParam*/) OVERRIDE
{
me->StopMoving();
me->SetUInt32Value(UNIT_NPC_FLAGS, 0);
if (Player* player = me->GetPlayer(*me, uiPlayerGUID))
- {
- me->SetInFront(player);
- me->SendMovementFlagUpdate();
- }
+ me->SetFacingToObject(player);
uiEventTimer = 3000;
uiEventPhase = 1;
}
- void SetGUID(uint64 uiGuid, int32 /*iId*/)
+ void SetGUID(uint64 uiGuid, int32 /*iId*/) OVERRIDE
{
uiPlayerGUID = uiGuid;
}
@@ -2378,7 +2396,7 @@ public:
me->AI()->AttackStart(player);
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (uiEventTimer && uiEventTimer <= uiDiff)
{
@@ -2411,10 +2429,7 @@ public:
case NPC_SALTY_JOHN_THORPE:
Talk(SAY_HIDDEN_CULTIST_4);
if (Player* player = me->GetPlayer(*me, uiPlayerGUID))
- {
- me->SetInFront(player);
- me->SendMovementFlagUpdate();
- }
+ me->SetFacingToObject(player);
uiEventTimer = 3000;
uiEventPhase = 3;
break;
@@ -2442,12 +2457,12 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_hidden_cultistAI(creature);
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
uint32 uiGossipText = 0;
const char* charGossipItem;
@@ -2474,7 +2489,7 @@ public:
if (player->HasAura(SPELL_RIGHTEOUS_VISION) && player->GetQuestStatus(QUEST_THE_HUNT_IS_ON) == QUEST_STATUS_INCOMPLETE)
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, charGossipItem, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
- if (creature->isVendor())
+ if (creature->IsVendor())
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
player->SEND_GOSSIP_MENU(uiGossipText, creature->GetGUID());
@@ -2482,7 +2497,7 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
@@ -2508,7 +2523,7 @@ void AddSC_borean_tundra()
new npc_keristrasza();
new npc_corastrasza();
new npc_iruk();
- new mob_nerubar_victim();
+ new npc_nerubar_victim();
new npc_jenny();
new npc_fezzix_geartwist();
new npc_nesingwary_trapper();
diff --git a/src/server/scripts/Northrend/zone_crystalsong_forest.cpp b/src/server/scripts/Northrend/zone_crystalsong_forest.cpp
index d05e442b0f4..34a217b6418 100644
--- a/src/server/scripts/Northrend/zone_crystalsong_forest.cpp
+++ b/src/server/scripts/Northrend/zone_crystalsong_forest.cpp
@@ -58,12 +58,12 @@ public:
uint64 uiTargetGUID;
- void Reset()
+ void Reset() OVERRIDE
{
uiTargetGUID = 0;
}
- void UpdateAI(uint32 /*uiDiff*/)
+ void UpdateAI(uint32 /*uiDiff*/) OVERRIDE
{
if (me->IsNonMeleeSpellCasted(false))
return;
@@ -103,7 +103,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_warmage_violetstandAI(creature);
}
diff --git a/src/server/scripts/Northrend/zone_dalaran.cpp b/src/server/scripts/Northrend/zone_dalaran.cpp
index 33440cad48b..0ae31d08182 100644
--- a/src/server/scripts/Northrend/zone_dalaran.cpp
+++ b/src/server/scripts/Northrend/zone_dalaran.cpp
@@ -64,13 +64,14 @@ public:
creature->ApplySpellImmune(0, IMMUNITY_DAMAGE, SPELL_SCHOOL_MASK_MAGIC, true);
}
- void Reset(){}
+ void Reset()OVERRIDE {}
- void EnterCombat(Unit* /*who*/){}
+ void EnterCombat(Unit* /*who*/)OVERRIDE {}
- void AttackStart(Unit* /*who*/){}
+ void AttackStart(Unit* /*who*/)OVERRIDE {}
+
+ void MoveInLineOfSight(Unit* who) OVERRIDE
- void MoveInLineOfSight(Unit* who)
{
if (!who || !who->IsInWorld() || who->GetZoneId() != 4395)
return;
@@ -80,7 +81,7 @@ public:
Player* player = who->GetCharmerOrOwnerPlayerOrPlayerItself();
- if (!player || player->isGameMaster() || player->IsBeingTeleported() ||
+ if (!player || player->IsGameMaster() || player->IsBeingTeleported() ||
// If player has Disguise aura for quest A Meeting With The Magister or An Audience With The Arcanist, do not teleport it away but let it pass
player->HasAura(SPELL_SUNREAVER_DISGUISE_FEMALE) || player->HasAura(SPELL_SUNREAVER_DISGUISE_MALE) ||
player->HasAura(SPELL_SILVER_COVENANT_DISGUISE_FEMALE) || player->HasAura(SPELL_SILVER_COVENANT_DISGUISE_MALE))
@@ -117,10 +118,10 @@ public:
return;
}
- void UpdateAI(uint32 /*diff*/){}
+ void UpdateAI(uint32 /*diff*/)OVERRIDE {}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_mageguard_dalaranAI(creature);
}
@@ -130,7 +131,7 @@ public:
## npc_hira_snowdawn
######*/
-enum eHiraSnowdawn
+enum HiraSnowdawn
{
SPELL_COLD_WEATHER_FLYING = 54197
};
@@ -142,9 +143,9 @@ class npc_hira_snowdawn : public CreatureScript
public:
npc_hira_snowdawn() : CreatureScript("npc_hira_snowdawn") { }
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (!creature->isVendor() || !creature->isTrainer())
+ if (!creature->IsVendor() || !creature->IsTrainer())
return false;
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_TRAIN_HIRA, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRAIN);
@@ -157,7 +158,7 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_TRAIN)
diff --git a/src/server/scripts/Northrend/zone_dragonblight.cpp b/src/server/scripts/Northrend/zone_dragonblight.cpp
index ed7354acb50..0357ea075f4 100644
--- a/src/server/scripts/Northrend/zone_dragonblight.cpp
+++ b/src/server/scripts/Northrend/zone_dragonblight.cpp
@@ -37,10 +37,13 @@ EndContentData */
#include "CombatAI.h"
#include "Player.h"
-enum eEnums
+enum AlexstraszaWrGate
{
+ // Quest
QUEST_RETURN_TO_AG_A = 12499,
QUEST_RETURN_TO_AG_H = 12500,
+
+ // Movie
MOVIE_ID_GATES = 14
};
@@ -51,9 +54,9 @@ class npc_alexstrasza_wr_gate : public CreatureScript
public:
npc_alexstrasza_wr_gate() : CreatureScript("npc_alexstrasza_wr_gate") { }
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
if (player->GetQuestRewardStatus(QUEST_RETURN_TO_AG_A) || player->GetQuestRewardStatus(QUEST_RETURN_TO_AG_H))
@@ -63,7 +66,7 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF+1)
@@ -129,13 +132,13 @@ public:
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_q12096_q12092_dummy_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_q12096_q12092_dummy_SpellScript();
}
@@ -161,13 +164,13 @@ public:
lothalor->DespawnOrUnsummon(4000);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_q12096_q12092_bark_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_q12096_q12092_bark_SpellScript();
}
@@ -204,7 +207,7 @@ class npc_wyrmrest_defender : public CreatureScript
public:
npc_wyrmrest_defender() : CreatureScript("npc_wyrmrest_defender") { }
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
if (player->GetQuestStatus(QUEST_DEFENDING_WYRMREST_TEMPLE) == QUEST_STATUS_INCOMPLETE)
{
@@ -217,7 +220,7 @@ class npc_wyrmrest_defender : public CreatureScript
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF+1)
@@ -240,7 +243,7 @@ class npc_wyrmrest_defender : public CreatureScript
uint32 RenewRecoveryChecker;
- void Reset()
+ void Reset() OVERRIDE
{
hpWarningReady = true;
renewRecoveryCanCheck = false;
@@ -248,7 +251,7 @@ class npc_wyrmrest_defender : public CreatureScript
RenewRecoveryChecker = 0;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
// Check system for Health Warning should happen first time whenever get under 30%,
// after it should be able to happen only after recovery of last renew is fully done (20 sec),
@@ -270,7 +273,7 @@ class npc_wyrmrest_defender : public CreatureScript
}
}
- void SpellHit(Unit* /*caster*/, SpellInfo const* spell)
+ void SpellHit(Unit* /*caster*/, SpellInfo const* spell) OVERRIDE
{
switch (spell->Id)
{
@@ -294,7 +297,7 @@ class npc_wyrmrest_defender : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_wyrmrest_defenderAI(creature);
}
diff --git a/src/server/scripts/Northrend/zone_grizzly_hills.cpp b/src/server/scripts/Northrend/zone_grizzly_hills.cpp
index e8eddea6ef7..9b68b37507b 100644
--- a/src/server/scripts/Northrend/zone_grizzly_hills.cpp
+++ b/src/server/scripts/Northrend/zone_grizzly_hills.cpp
@@ -27,33 +27,34 @@
## Quest 12027: Mr. Floppy's Perilous Adventure
######*/
-enum eFloppy
+enum Floppy
{
+ // Creature
NPC_MRFLOPPY = 26589,
NPC_HUNGRY_WORG = 26586,
- NPC_RAVENOUS_WORG = 26590, //RWORG
+ NPC_RAVENOUS_WORG = 26590, // RWORG
NPC_EMILY = 26588,
-
+ // Quest
QUEST_PERILOUS_ADVENTURE = 12027,
-
- SPELL_MRFLOPPY = 47184, //vehicle aura
-
- SAY_WORGHAGGRO1 = 0, //Um... I think one of those wolves is back...
- SAY_WORGHAGGRO2 = 1, //He's going for Mr. Floppy!
- SAY_WORGRAGGRO3 = 2, //Oh, no! Look, it's another wolf, and it's a biiiiiig one!
- SAY_WORGRAGGRO4 = 3, //He's gonna eat Mr. Floppy! You gotta help Mr. Floppy! You just gotta!
- SAY_RANDOMAGGRO = 4, //There's a big meanie attacking Mr. Floppy! Help!
- SAY_VICTORY1 = 5, //Let's get out of here before more wolves find us!
- SAY_VICTORY2 = 6, //Don't go toward the light, Mr. Floppy!
- SAY_VICTORY3 = 7, //Mr. Floppy, you're ok! Thank you so much for saving Mr. Floppy!
- SAY_VICTORY4 = 8, //I think I see the camp! We're almost home, Mr. Floppy! Let's go!
- TEXT_EMOTE_WP1 = 9, //Mr. Floppy revives
- TEXT_EMOTE_AGGRO = 10, //The Ravenous Worg chomps down on Mr. Floppy
- SAY_QUEST_ACCEPT = 11, //Are you ready, Mr. Floppy? Stay close to me and watch out for those wolves!
- SAY_QUEST_COMPLETE = 12 //Thank you for helping me get back to the camp. Go tell Walter that I'm safe now!
+ // Spell
+ SPELL_MRFLOPPY = 47184, // vehicle aura
+ // Text
+ SAY_WORGHAGGRO1 = 0, // Um... I think one of those wolves is back...
+ SAY_WORGHAGGRO2 = 1, // He's going for Mr. Floppy!
+ SAY_WORGRAGGRO3 = 2, // Oh, no! Look, it's another wolf, and it's a biiiiiig one!
+ SAY_WORGRAGGRO4 = 3, // He's gonna eat Mr. Floppy! You gotta help Mr. Floppy! You just gotta!
+ SAY_RANDOMAGGRO = 4, // There's a big meanie attacking Mr. Floppy! Help!
+ SAY_VICTORY1 = 5, // Let's get out of here before more wolves find us!
+ SAY_VICTORY2 = 6, // Don't go toward the light, Mr. Floppy!
+ SAY_VICTORY3 = 7, // Mr. Floppy, you're ok! Thank you so much for saving Mr. Floppy!
+ SAY_VICTORY4 = 8, // I think I see the camp! We're almost home, Mr. Floppy! Let's go!
+ TEXT_EMOTE_WP1 = 9, // Mr. Floppy revives
+ TEXT_EMOTE_AGGRO = 10, // The Ravenous Worg chomps down on Mr. Floppy
+ SAY_QUEST_ACCEPT = 11, // Are you ready, Mr. Floppy? Stay close to me and watch out for those wolves!
+ SAY_QUEST_COMPLETE = 12 // Thank you for helping me get back to the camp. Go tell Walter that I'm safe now!
};
-//emily
+// emily
class npc_emily : public CreatureScript
{
public:
@@ -63,22 +64,15 @@ public:
{
npc_emilyAI(Creature* creature) : npc_escortAI(creature) { }
- uint32 m_uiChatTimer;
-
- uint64 RWORGGUID;
- uint64 MrfloppyGUID;
-
- bool Completed;
-
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
if (Creature* Mrfloppy = GetClosestCreatureWithEntry(me, NPC_MRFLOPPY, 50.0f))
summoned->AI()->AttackStart(Mrfloppy);
else
- summoned->AI()->AttackStart(me->getVictim());
+ summoned->AI()->AttackStart(me->GetVictim());
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
Player* player = GetPlayerForEscort();
if (!player)
@@ -88,55 +82,55 @@ public:
{
case 9:
if (Creature* Mrfloppy = GetClosestCreatureWithEntry(me, NPC_MRFLOPPY, 100.0f))
- MrfloppyGUID = Mrfloppy->GetGUID();
+ _mrfloppyGUID = Mrfloppy->GetGUID();
break;
case 10:
- if (Unit::GetCreature(*me, MrfloppyGUID))
+ if (Unit::GetCreature(*me, _mrfloppyGUID))
{
Talk(SAY_WORGHAGGRO1);
me->SummonCreature(NPC_HUNGRY_WORG, me->GetPositionX()+5, me->GetPositionY()+2, me->GetPositionZ()+1, 3.229f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 120000);
}
break;
case 11:
- if (Creature* Mrfloppy = Unit::GetCreature(*me, MrfloppyGUID))
+ if (Creature* Mrfloppy = Unit::GetCreature(*me, _mrfloppyGUID))
Mrfloppy->GetMotionMaster()->MoveFollow(me, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE);
break;
case 17:
- if (Creature* Mrfloppy = Unit::GetCreature(*me, MrfloppyGUID))
+ if (Creature* Mrfloppy = Unit::GetCreature(*me, _mrfloppyGUID))
Mrfloppy->GetMotionMaster()->MovePoint(0, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ());
Talk(SAY_WORGRAGGRO3);
if (Creature* RWORG = me->SummonCreature(NPC_RAVENOUS_WORG, me->GetPositionX()+10, me->GetPositionY()+8, me->GetPositionZ()+2, 3.229f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 120000))
{
RWORG->setFaction(35);
- RWORGGUID = RWORG->GetGUID();
+ _RavenousworgGUID = RWORG->GetGUID();
}
break;
case 18:
- if (Creature* Mrfloppy = Unit::GetCreature(*me, MrfloppyGUID))
+ if (Creature* Mrfloppy = Unit::GetCreature(*me, _mrfloppyGUID))
{
- if (Creature* RWORG = Unit::GetCreature(*me, RWORGGUID))
+ if (Creature* RWORG = Unit::GetCreature(*me, _RavenousworgGUID))
RWORG->GetMotionMaster()->MovePoint(0, Mrfloppy->GetPositionX(), Mrfloppy->GetPositionY(), Mrfloppy->GetPositionZ());
DoCast(Mrfloppy, SPELL_MRFLOPPY);
}
break;
case 19:
- if (Creature* Mrfloppy = Unit::GetCreature(*me, MrfloppyGUID))
+ if (Creature* Mrfloppy = Unit::GetCreature(*me, _mrfloppyGUID))
{
if (Mrfloppy->HasAura(SPELL_MRFLOPPY, 0))
{
- if (Creature* RWORG = Unit::GetCreature(*me, RWORGGUID))
+ if (Creature* RWORG = Unit::GetCreature(*me, _RavenousworgGUID))
Mrfloppy->EnterVehicle(RWORG);
}
}
break;
case 20:
- if (Creature* RWORG = Unit::GetCreature(*me, RWORGGUID))
+ if (Creature* RWORG = Unit::GetCreature(*me, _RavenousworgGUID))
RWORG->HandleEmoteCommand(34);
break;
case 21:
- if (Creature* Mrfloppy = Unit::GetCreature(*me, MrfloppyGUID))
+ if (Creature* Mrfloppy = Unit::GetCreature(*me, _mrfloppyGUID))
{
- if (Creature* RWORG = Unit::GetCreature(*me, RWORGGUID))
+ if (Creature* RWORG = Unit::GetCreature(*me, _RavenousworgGUID))
{
RWORG->Kill(Mrfloppy);
Mrfloppy->ExitVehicle();
@@ -147,11 +141,11 @@ public:
}
break;
case 22:
- if (Creature* Mrfloppy = Unit::GetCreature(*me, MrfloppyGUID))
+ if (Creature* Mrfloppy = Unit::GetCreature(*me, _mrfloppyGUID))
{
if (Mrfloppy->isDead())
{
- if (Creature* RWORG = Unit::GetCreature(*me, RWORGGUID))
+ if (Creature* RWORG = Unit::GetCreature(*me, _RavenousworgGUID))
RWORG->DisappearAndDie();
me->GetMotionMaster()->MovePoint(0, Mrfloppy->GetPositionX(), Mrfloppy->GetPositionY(), Mrfloppy->GetPositionZ());
Mrfloppy->setDeathState(ALIVE);
@@ -163,7 +157,6 @@ public:
case 24:
if (player)
{
- Completed = true;
player->GroupEventHappens(QUEST_PERILOUS_ADVENTURE, me);
Talk(SAY_QUEST_COMPLETE, player->GetGUID());
}
@@ -174,39 +167,29 @@ public:
break;
case 27:
me->DisappearAndDie();
- if (Creature* Mrfloppy = Unit::GetCreature(*me, MrfloppyGUID))
+ if (Creature* Mrfloppy = Unit::GetCreature(*me, _mrfloppyGUID))
Mrfloppy->DisappearAndDie();
break;
}
}
- void EnterCombat(Unit* /*Who*/)
+ void EnterCombat(Unit* /*Who*/) OVERRIDE
{
Talk(SAY_RANDOMAGGRO);
}
- void Reset()
+ void Reset() OVERRIDE
{
- m_uiChatTimer = 4000;
- MrfloppyGUID = 0;
- RWORGGUID = 0;
+ _mrfloppyGUID = 0;
+ _RavenousworgGUID = 0;
}
- void UpdateAI(uint32 uiDiff)
- {
- npc_escortAI::UpdateAI(uiDiff);
-
- if (HasEscortState(STATE_ESCORT_ESCORTING))
- {
- if (m_uiChatTimer <= uiDiff)
- m_uiChatTimer = 12000;
- else
- m_uiChatTimer -= uiDiff;
- }
- }
+ private:
+ uint64 _RavenousworgGUID;
+ uint64 _mrfloppyGUID;
};
- bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_PERILOUS_ADVENTURE)
{
@@ -220,13 +203,13 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_emilyAI(creature);
}
};
-//mrfloppy
+// mrfloppy
class npc_mrfloppy : public CreatureScript
{
public:
@@ -236,13 +219,9 @@ public:
{
npc_mrfloppyAI(Creature* creature) : ScriptedAI(creature) {}
- uint64 EmilyGUID;
- uint64 RWORGGUID;
- uint64 HWORGGUID;
-
- void Reset() {}
+ void Reset() OVERRIDE {}
- void EnterCombat(Unit* Who)
+ void EnterCombat(Unit* Who) OVERRIDE
{
if (Creature* Emily = GetClosestCreatureWithEntry(me, NPC_EMILY, 50.0f))
{
@@ -260,38 +239,39 @@ public:
}
}
- void EnterEvadeMode() {}
+ void EnterEvadeMode() OVERRIDE {}
- void MoveInLineOfSight(Unit* /*who*/) {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 /*diff*/)
+
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
if (!UpdateVictim())
return;
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_mrfloppyAI(creature);
}
};
-// Outhouse Bunny
+/*######
+## Quest 12227: Doing Your Duty
+######*/
-enum eOuthouseBunny
+enum Outhouse
{
+ // Sound
+ SOUND_FEMALE = 12671,
+ SOUND_MALE = 12670,
+ // Spell
SPELL_OUTHOUSE_GROANS = 48382,
SPELL_CAMERA_SHAKE = 47533,
SPELL_DUST_FIELD = 48329
};
-enum eSounds
-{
- SOUND_FEMALE = 12671,
- SOUND_MALE = 12670
-};
-
class npc_outhouse_bunny : public CreatureScript
{
public:
@@ -301,32 +281,29 @@ public:
{
npc_outhouse_bunnyAI(Creature* creature) : ScriptedAI(creature) {}
- uint8 m_counter;
- uint8 m_gender;
-
- void Reset()
+ void Reset() OVERRIDE
{
- m_counter = 0;
- m_gender = 0;
+ _counter = 0;
+ _gender = 0;
}
- void SetData(uint32 uiType, uint32 uiData)
+ void SetData(uint32 Type, uint32 Data) OVERRIDE
{
- if (uiType == 1)
- m_gender = uiData;
+ if (Type == 1)
+ _gender = Data;
}
- void SpellHit(Unit* pCaster, const SpellInfo* pSpell)
+ void SpellHit(Unit* Caster, const SpellInfo* Spell) OVERRIDE
{
- if (pSpell->Id == SPELL_OUTHOUSE_GROANS)
+ if (Spell->Id == SPELL_OUTHOUSE_GROANS)
{
- ++m_counter;
- if (m_counter < 5)
- DoCast(pCaster, SPELL_CAMERA_SHAKE, true);
+ ++_counter;
+ if (_counter < 5)
+ DoCast(Caster, SPELL_CAMERA_SHAKE, true);
else
- m_counter = 0;
+ _counter = 0;
DoCast(me, SPELL_DUST_FIELD, true);
- switch (m_gender)
+ switch (_gender)
{
case GENDER_FEMALE:
DoPlaySoundToSet(me, SOUND_FEMALE);
@@ -338,9 +315,12 @@ public:
}
}
}
+ private:
+ uint8 _counter;
+ uint8 _gender;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_outhouse_bunnyAI(creature);
}
@@ -348,8 +328,9 @@ public:
// Tallhorn Stage
-enum etallhornstage
+enum TallhornStage
{
+ //Gameobject
OBJECT_HAUNCH = 188665
};
@@ -362,16 +343,14 @@ public:
{
npc_tallhorn_stagAI(Creature* creature) : ScriptedAI(creature) {}
- uint8 m_uiPhase;
-
- void Reset()
+ void Reset() OVERRIDE
{
- m_uiPhase = 1;
+ _phase = 1;
}
- void UpdateAI(uint32 /*uiDiff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
- if (m_uiPhase == 1)
+ if (_phase == 1)
{
if (me->FindNearestGameObject(OBJECT_HAUNCH, 2.0f))
{
@@ -379,13 +358,15 @@ public:
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
me->SetUInt32Value(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
}
- m_uiPhase = 0;
+ _phase = 0;
}
DoMeleeAttackIfReady();
}
+ private:
+ uint8 _phase;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_tallhorn_stagAI(creature);
}
@@ -393,9 +374,16 @@ public:
// Amberpine Woodsman
-enum eamberpinewoodsman
+enum AmberpineWoodsman
+{
+ // Creature
+ NPC_TALLHORN_STAG = 26363
+};
+
+enum AmberpineWoodsmanEvents
{
- TALLHORN_STAG = 26363
+ EVENT_WOODSMAN_1 = 1,
+ EVENT_WOODSMAN_2 = 2
};
class npc_amberpine_woodsman : public CreatureScript
@@ -407,65 +395,61 @@ public:
{
npc_amberpine_woodsmanAI(Creature* creature) : ScriptedAI(creature) {}
- uint8 m_uiPhase;
- uint32 m_uiTimer;
-
- void Reset()
- {
- m_uiTimer = 0;
- m_uiPhase = 1;
- }
-
- void UpdateAI(uint32 uiDiff)
+ void Reset() OVERRIDE
{
- // call this each update tick?
- if (me->FindNearestCreature(TALLHORN_STAG, 0.2f))
+ if (me->FindNearestCreature(NPC_TALLHORN_STAG, 0.2f))
{
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_USE_STANDING);
}
else
- if (m_uiPhase)
+ _events.ScheduleEvent(EVENT_WOODSMAN_1, 0);
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ _events.Update(diff);
+
+ while (uint32 eventId = _events.ExecuteEvent())
+ {
+ switch (eventId)
{
- if (m_uiTimer <= uiDiff)
- {
- switch (m_uiPhase)
- {
- case 1:
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_LOOT);
- m_uiTimer = 3000;
- m_uiPhase = 2;
- break;
- case 2:
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_ATTACK1H);
- m_uiTimer = 4000;
- m_uiPhase = 1;
- break;
- }
- }
- else
- m_uiTimer -= uiDiff;
+ case EVENT_WOODSMAN_1:
+ me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_LOOT);
+ _events.ScheduleEvent(EVENT_WOODSMAN_2, 3000);
+ break;
+ case EVENT_WOODSMAN_2:
+ me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_ATTACK1H);
+ _events.ScheduleEvent(EVENT_WOODSMAN_1, 4000);
+ break;
+ default:
+ break;
}
- ScriptedAI::UpdateAI(uiDiff);
-
+ }
UpdateVictim();
}
+ private:
+ EventMap _events;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_amberpine_woodsmanAI(creature);
}
};
+
/*######
## Quest 12288: Overwhelmed!
######*/
-enum eSkirmisher
+enum Skirmisher
{
+ // Quest
+ QUEST_OVERWHELMED = 12288,
+ // Spell
SPELL_RENEW_SKIRMISHER = 48812,
- CREDIT_NPC = 27466,
-
- RANDOM_SAY = 0,
+ SPELL_KILL_CREDIT = 48813,
+ // Text
+ SAY_RANDOM = 0
};
class npc_wounded_skirmisher : public CreatureScript
@@ -477,64 +461,70 @@ public:
{
npc_wounded_skirmisherAI(Creature* creature) : ScriptedAI(creature) {}
- uint64 uiPlayerGUID;
-
- uint32 DespawnTimer;
-
- void Reset()
+ void Reset() OVERRIDE
{
- DespawnTimer = 5000;
- uiPlayerGUID = 0;
+ _despawnTimer = 5000;
+ _playerGUID = 0;
}
- void MovementInform(uint32, uint32 id)
+ void MovementInform(uint32, uint32 id) OVERRIDE
{
if (id == 1)
- me->DespawnOrUnsummon(DespawnTimer);
+ me->DespawnOrUnsummon(_despawnTimer);
}
- void SpellHit(Unit* caster, const SpellInfo* spell)
+ void SpellHit(Unit* caster, const SpellInfo* spell) OVERRIDE
{
if (spell->Id == SPELL_RENEW_SKIRMISHER && caster->GetTypeId() == TYPEID_PLAYER
- && caster->ToPlayer()->GetQuestStatus(12288) == QUEST_STATUS_INCOMPLETE)
+ && caster->ToPlayer()->GetQuestStatus(QUEST_OVERWHELMED) == QUEST_STATUS_INCOMPLETE)
{
- caster->ToPlayer()->KilledMonsterCredit(CREDIT_NPC, 0);
- sCreatureTextMgr->SendChat(me, RANDOM_SAY, 0, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_NORMAL, 0, TEAM_OTHER, false, caster->ToPlayer());
+ DoCast(caster, SPELL_KILL_CREDIT);
+ Talk(SAY_RANDOM);
if (me->IsStandState())
me->GetMotionMaster()->MovePoint(1, me->GetPositionX()+7, me->GetPositionY()+7, me->GetPositionZ());
else
{
me->SetStandState(UNIT_STAND_STATE_STAND);
- me->DespawnOrUnsummon(DespawnTimer);
+ me->DespawnOrUnsummon(_despawnTimer);
}
}
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
if (!UpdateVictim())
return;
DoMeleeAttackIfReady();
}
+ private:
+ uint64 _playerGUID;
+ uint32 _despawnTimer;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_wounded_skirmisherAI(creature);
}
};
/*Lightning Sentry - if you kill it when you have your Minion with you, you will get a quest credit*/
-enum eSentry
+enum Sentry
{
- QUEST_OR_MAYBE_WE_DONT_A = 12138,
- QUEST_OR_MAYBE_WE_DONT_H = 12198,
-
- NPC_LIGHTNING_SENTRY = 26407,
- NPC_WAR_GOLEM = 27017,
+ //Creature
+ NPC_LIGHTNING_SENTRY = 26407,
+ NPC_WAR_GOLEM = 27017,
+ // Quest
+ QUEST_OR_MAYBE_WE_DONT_A = 12138,
+ QUEST_OR_MAYBE_WE_DONT_H = 12198,
+ // Spell
+ SPELL_CHARGED_SENTRY_TOTEM = 52703,
+ SPELL_WAR_GOLEM_CHARGE_CREDIT = 47797,
+};
- SPELL_CHARGED_SENTRY_TOTEM = 52703,
+enum SentryEvents
+{
+ EVENT_SENTRY = 1
};
class npc_lightning_sentry : public CreatureScript
@@ -542,39 +532,42 @@ class npc_lightning_sentry : public CreatureScript
public:
npc_lightning_sentry() : CreatureScript("npc_lightning_sentry") { }
- CreatureAI* GetAI(Creature* creature) const
- {
- return new npc_lightning_sentryAI(creature);
- }
-
struct npc_lightning_sentryAI : public ScriptedAI
{
npc_lightning_sentryAI(Creature* creature) : ScriptedAI(creature) { }
- uint32 uiChargedSentryTotem;
-
- void Reset()
+ void Reset() OVERRIDE
{
- uiChargedSentryTotem = urand(10000, 12000);
+ _events.ScheduleEvent(EVENT_SENTRY, urand(10000, 12000));
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
- if (uiChargedSentryTotem <= uiDiff)
+ _events.Update(diff);
+
+ while (uint32 eventId = _events.ExecuteEvent())
{
- DoCast(SPELL_CHARGED_SENTRY_TOTEM);
- uiChargedSentryTotem = urand(10000, 12000);
+ switch (eventId)
+ {
+ case EVENT_SENTRY:
+ DoCast(SPELL_CHARGED_SENTRY_TOTEM);
+ _events.ScheduleEvent(EVENT_SENTRY, urand(10000, 12000));
+ break;
+ default:
+ break;
+ }
}
- else
- uiChargedSentryTotem -= uiDiff;
+
+ if (!UpdateVictim())
+ return;
DoMeleeAttackIfReady();
}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
if (killer->ToPlayer() && killer->ToPlayer()->GetTypeId() == TYPEID_PLAYER)
{
@@ -582,113 +575,258 @@ public:
{
if (killer->ToPlayer()->GetQuestStatus(QUEST_OR_MAYBE_WE_DONT_A) == QUEST_STATUS_INCOMPLETE ||
killer->ToPlayer()->GetQuestStatus(QUEST_OR_MAYBE_WE_DONT_H) == QUEST_STATUS_INCOMPLETE)
- killer->ToPlayer()->KilledMonsterCredit(NPC_WAR_GOLEM, 0);
+ DoCast(killer, SPELL_WAR_GOLEM_CHARGE_CREDIT);
}
}
}
+ private:
+ EventMap _events;
};
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_lightning_sentryAI(creature);
+ }
};
/*Venture co. Straggler - when you cast Smoke Bomb, he will yell and run away*/
-enum eSmokeEmOut
+enum SmokeEmOut
{
- SAY_SEO = 0,
+ // Quest
QUEST_SMOKE_EM_OUT_A = 12323,
QUEST_SMOKE_EM_OUT_H = 12324,
+ // Spell
SPELL_SMOKE_BOMB = 49075,
SPELL_CHOP = 43410,
SPELL_VENTURE_STRAGGLER_CREDIT = 49093,
+ // Text
+ SAY_SEO = 0
+};
+
+enum StragglerEvents
+{
+ EVENT_STRAGGLER_1 = 1,
+ EVENT_STRAGGLER_2 = 2,
+ EVENT_STRAGGLER_3 = 3,
+ EVENT_STRAGGLER_4 = 4,
+ EVENT_CHOP = 5
};
class npc_venture_co_straggler : public CreatureScript
{
- public:
- npc_venture_co_straggler() : CreatureScript("npc_venture_co_straggler") { }
+public:
+ npc_venture_co_straggler() : CreatureScript("npc_venture_co_straggler") { }
+
+ struct npc_venture_co_stragglerAI : public ScriptedAI
+ {
+ npc_venture_co_stragglerAI(Creature* creature) : ScriptedAI(creature) { }
+
+ void Reset() OVERRIDE
+ {
+ _playerGUID = 0;
+
+ me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC);
+ me->SetReactState(REACT_AGGRESSIVE);
+ }
- struct npc_venture_co_stragglerAI : public ScriptedAI
+ void UpdateAI(uint32 diff) OVERRIDE
{
- npc_venture_co_stragglerAI(Creature* creature) : ScriptedAI(creature) { }
+ _events.Update(diff);
+
+ while (uint32 eventId = _events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_STRAGGLER_1:
+ if (Player* player = Unit::GetPlayer(*me, _playerGUID))
+ DoCast(player, SPELL_VENTURE_STRAGGLER_CREDIT);
+ me->GetMotionMaster()->MovePoint(0, me->GetPositionX()-7, me->GetPositionY()+7, me->GetPositionZ());
+ _events.ScheduleEvent(EVENT_STRAGGLER_2, 2500);
+ break;
+ case EVENT_STRAGGLER_2:
+ Talk(SAY_SEO);
+ me->GetMotionMaster()->MovePoint(0, me->GetPositionX()-7, me->GetPositionY()-5, me->GetPositionZ());
+ _events.ScheduleEvent(EVENT_STRAGGLER_3, 2500);
+ break;
+ case EVENT_STRAGGLER_3:
+ me->GetMotionMaster()->MovePoint(0, me->GetPositionX()-5, me->GetPositionY()-5, me->GetPositionZ());
+ _events.ScheduleEvent(EVENT_STRAGGLER_4, 2500);
+ break;
+ case EVENT_STRAGGLER_4:
+ me->DisappearAndDie();
+ break;
+ case EVENT_CHOP:
+ if (UpdateVictim())
+ DoCastVictim(SPELL_CHOP);
+ _events.ScheduleEvent(EVENT_CHOP, 10000, 12000);
+ break;
+ default:
+ break;
+ }
+ }
+
+ if (!UpdateVictim())
+ return;
+
+ DoMeleeAttackIfReady();
+ }
+
+ void SpellHit(Unit* caster, SpellInfo const* spell) OVERRIDE
+ {
+ if (spell->Id == SPELL_SMOKE_BOMB && caster->GetTypeId() == TYPEID_PLAYER)
+ {
+ me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC);
+ me->SetReactState(REACT_PASSIVE);
+ me->CombatStop(false);
+ _playerGUID = caster->GetGUID();
+ _events.ScheduleEvent(EVENT_STRAGGLER_1, 3500);
+ }
+ }
+
+ private:
+ EventMap _events;
+ uint64 _playerGUID;
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_venture_co_stragglerAI(creature);
+ }
+};
+
+/*######
+## Quest: A Blade Fit For A Champion
+######*/
+
+enum LakeFrog
+{
+ // Creature
+ NPC_LAKE_FROG = 33211,
+ NPC_LAKE_FROG_QUEST = 33224,
+ NPC_MAIDEN_OF_ASHWOOD_LAKE = 33220,
+ // Items
+ ITEM_WARTS_B_GONE_LIP_BALM = 44986,
+ // Spells
+ SPELL_WARTSBGONE_LIP_BALM = 62574,
+ SPELL_FROG_LOVE = 62537, // for 1 minute !
+ SPELL_WARTS = 62581,
+ SPELL_MAIDEN_OF_ASHWOOD_LAKE_TRANSFORM = 62550,
+ SPELL_SUMMON_ASHWOOD_BRAND = 62554,
+ SPELL_FROG_KISS = 62536,
+ // Text
+ SAY_MAIDEN_0 = 0,
+ SAY_MAIDEN_1 = 1
+};
+
+enum LakeFrogEvents
+{
+ EVENT_LAKEFROG_1 = 1,
+ EVENT_LAKEFROG_2 = 2,
+ EVENT_LAKEFROG_3 = 3,
+ EVENT_LAKEFROG_4 = 4,
+ EVENT_LAKEFROG_5 = 5
+};
- uint64 uiPlayerGUID;
- uint32 uiRunAwayTimer;
- uint32 uiTimer;
- uint32 uiChopTimer;
+class npc_lake_frog : public CreatureScript
+{
+public:
+ npc_lake_frog() : CreatureScript("npc_lake_frog") { }
- void Reset()
+ struct npc_lake_frogAI : public ScriptedAI
+ {
+ npc_lake_frogAI(Creature* creature) : ScriptedAI(creature) { }
+
+ void Reset() OVERRIDE
{
- uiPlayerGUID = 0;
- uiTimer = 0;
- uiRunAwayTimer = 0;
- uiChopTimer = urand(10000, 12500);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC);
- me->SetReactState(REACT_AGGRESSIVE);
+ _following = false;
+ _runningScript = false;
+ if (me->GetEntry() == NPC_LAKE_FROG_QUEST)
+ me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
- if (uiPlayerGUID && uiRunAwayTimer <= uiDiff)
+ if (_following)
+ if (!me->HasAura(SPELL_FROG_LOVE))
+ me->DespawnOrUnsummon(1000);
+
+ _events.Update(diff);
+
+ while (uint32 eventId = _events.ExecuteEvent())
{
- if (Player* player = Unit::GetPlayer(*me, uiPlayerGUID))
+ switch (eventId)
{
- switch (uiTimer)
- {
- case 0:
- DoCast(player, SPELL_VENTURE_STRAGGLER_CREDIT);
- me->GetMotionMaster()->MovePoint(0, me->GetPositionX()-7, me->GetPositionY()+7, me->GetPositionZ());
- uiRunAwayTimer = 2500;
- ++uiTimer;
- break;
- case 1:
- Talk(SAY_SEO);
- me->GetMotionMaster()->MovePoint(0, me->GetPositionX()-7, me->GetPositionY()-5, me->GetPositionZ());
- uiRunAwayTimer = 2500;
- ++uiTimer;
- break;
- case 2:
- me->GetMotionMaster()->MovePoint(0, me->GetPositionX()-5, me->GetPositionY()-5, me->GetPositionZ());
- uiRunAwayTimer = 2500;
- ++uiTimer;
- break;
- case 3:
- me->DisappearAndDie();
- uiTimer = 0;
- break;
- }
+ case EVENT_LAKEFROG_1:
+ DoCast(me, SPELL_MAIDEN_OF_ASHWOOD_LAKE_TRANSFORM);
+ me->SetEntry(NPC_MAIDEN_OF_ASHWOOD_LAKE);
+ _events.ScheduleEvent(EVENT_LAKEFROG_2, 2000);
+ break;
+ case EVENT_LAKEFROG_2:
+ Talk(SAY_MAIDEN_0);
+ _events.ScheduleEvent(EVENT_LAKEFROG_3, 3000);
+ break;
+ case EVENT_LAKEFROG_3:
+ me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ _events.ScheduleEvent(EVENT_LAKEFROG_4, 25000);
+ break;
+ case EVENT_LAKEFROG_4:
+ me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ _events.ScheduleEvent(EVENT_LAKEFROG_5, 2000);
+ break;
+ case EVENT_LAKEFROG_5:
+ Talk(SAY_MAIDEN_1);
+ me->DespawnOrUnsummon(4000);
+ break;
+ default:
+ break;
}
}
- else if (uiRunAwayTimer)
- uiRunAwayTimer -= uiDiff;
+ }
- if (!UpdateVictim())
+ void ReceiveEmote(Player* player, uint32 emote) OVERRIDE
+ {
+ if (_following || _runningScript)
return;
- if (uiChopTimer <= uiDiff)
+ if (emote == TEXT_EMOTE_KISS && me->IsWithinDistInMap(player, 30.0f) && player->HasItemCount(ITEM_WARTS_B_GONE_LIP_BALM, 1, false))
{
- DoCast(me->getVictim(), SPELL_CHOP);
- uiChopTimer = urand(10000, 12000);
- }
- else
- uiChopTimer -= uiDiff;
+ if (!player->HasAura(SPELL_WARTSBGONE_LIP_BALM))
+ player->AddAura(SPELL_WARTS, player);
+ else
+ {
+ DoCast(player, SPELL_FROG_KISS); // Removes SPELL_WARTSBGONE_LIP_BALM
- DoMeleeAttackIfReady();
+ if (me->GetEntry() == NPC_LAKE_FROG)
+ {
+ me->AddAura(SPELL_FROG_LOVE, me);
+ me->GetMotionMaster()->MoveFollow(player, 0.3f, frand(M_PI/2, M_PI + (M_PI/2)));
+ _following = true;
+ }
+ else if (me->GetEntry() == NPC_LAKE_FROG_QUEST)
+ {
+ me->GetMotionMaster()->MoveIdle();
+ me->SetFacingToObject(player);
+ _runningScript = true;
+ _events.ScheduleEvent(EVENT_LAKEFROG_1, 2000);
+ }
+ }
+ }
}
- void SpellHit(Unit* caster, SpellInfo const* spell)
+ void sGossipSelect(Player* player, uint32 /*sender*/, uint32 /*action*/) OVERRIDE
{
- if (spell->Id == SPELL_SMOKE_BOMB && caster->GetTypeId() == TYPEID_PLAYER)
- {
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC);
- me->SetReactState(REACT_PASSIVE);
- me->CombatStop(false);
- uiPlayerGUID = caster->GetGUID();
- uiRunAwayTimer = 3500;
- }
+ DoCast(player, SPELL_SUMMON_ASHWOOD_BRAND);
}
+
+ private:
+ EventMap _events;
+ bool _following;
+ bool _runningScript;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_venture_co_stragglerAI(creature);
+ return new npc_lake_frogAI(creature);
}
};
@@ -702,4 +840,5 @@ void AddSC_grizzly_hills()
new npc_wounded_skirmisher();
new npc_lightning_sentry();
new npc_venture_co_straggler();
+ new npc_lake_frog();
}
diff --git a/src/server/scripts/Northrend/zone_howling_fjord.cpp b/src/server/scripts/Northrend/zone_howling_fjord.cpp
index 65d69e368b8..15273088940 100644
--- a/src/server/scripts/Northrend/zone_howling_fjord.cpp
+++ b/src/server/scripts/Northrend/zone_howling_fjord.cpp
@@ -51,7 +51,7 @@ class npc_apothecary_hanes : public CreatureScript
public:
npc_apothecary_hanes() : CreatureScript("npc_apothecary_hanes") { }
- bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_TRAIL_OF_FIRE)
{
@@ -74,19 +74,19 @@ public:
npc_Apothecary_HanesAI(Creature* creature) : npc_escortAI(creature){}
uint32 PotTimer;
- void Reset()
+ void Reset() OVERRIDE
{
SetDespawnAtFar(false);
PotTimer = 10000; //10 sec cooldown on potion
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (Player* player = GetPlayerForEscort())
player->FailQuest(QUEST_TRAIL_OF_FIRE);
}
- void UpdateEscortAI(const uint32 diff)
+ void UpdateEscortAI(const uint32 diff) OVERRIDE
{
if (HealthBelowPct(75))
{
@@ -100,7 +100,7 @@ public:
DoMeleeAttackIfReady();
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
Player* player = GetPlayerForEscort();
if (!player)
@@ -150,7 +150,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_Apothecary_HanesAI(creature);
}
@@ -160,7 +160,7 @@ public:
## npc_plaguehound_tracker
######*/
-enum ePlaguehound
+enum Plaguehound
{
QUEST_SNIFF_OUT_ENEMY = 11253
};
@@ -174,11 +174,11 @@ public:
{
npc_plaguehound_trackerAI(Creature* creature) : npc_escortAI(creature) { }
- void Reset()
+ void Reset() OVERRIDE
{
uint64 summonerGUID = 0;
- if (me->isSummon())
+ if (me->IsSummon())
if (Unit* summoner = me->ToTempSummon()->GetSummoner())
if (summoner->GetTypeId() == TYPEID_PLAYER)
summonerGUID = summoner->GetGUID();
@@ -186,11 +186,11 @@ public:
if (!summonerGUID)
return;
- me->SetUnitMovementFlags(MOVEMENTFLAG_WALKING);
+ me->SetWalk(true);
Start(false, false, summonerGUID);
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
if (waypointId != 26)
return;
@@ -199,7 +199,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_plaguehound_trackerAI(creature);
}
@@ -212,7 +212,7 @@ public:
#define GOSSIP_RAZAEL_REPORT "High Executor Anselm wants a report on the situation."
#define GOSSIP_LYANA_REPORT "High Executor Anselm requests your report."
-enum eRazael
+enum Razael
{
QUEST_REPORTS_FROM_THE_FIELD = 11221,
NPC_RAZAEL = 23998,
@@ -228,9 +228,9 @@ class npc_razael_and_lyana : public CreatureScript
public:
npc_razael_and_lyana() : CreatureScript("npc_razael_and_lyana") { }
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
if (player->GetQuestStatus(QUEST_REPORTS_FROM_THE_FIELD) == QUEST_STATUS_INCOMPLETE)
@@ -257,7 +257,7 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -276,60 +276,10 @@ public:
};
/*######
-## npc_mcgoyver
-######*/
-
-#define GOSSIP_ITEM_MG_I "Walt sent me to pick up some dark iron ingots."
-#define GOSSIP_ITEM_MG_II "Yarp."
-
-enum eMcGoyver
-{
- QUEST_WE_CAN_REBUILD_IT = 11483,
-
- SPELL_CREATURE_DARK_IRON_INGOTS = 44512,
- SPELL_TAXI_EXPLORERS_LEAGUE = 44280,
-
- GOSSIP_TEXTID_MCGOYVER = 12193
-};
-
-class npc_mcgoyver : public CreatureScript
-{
-public:
- npc_mcgoyver() : CreatureScript("npc_mcgoyver") { }
-
- bool OnGossipHello(Player* player, Creature* creature)
- {
- if (player->GetQuestStatus(QUEST_WE_CAN_REBUILD_IT) == QUEST_STATUS_INCOMPLETE)
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_MG_I, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
-
- player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
- return true;
- }
-
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
- {
- player->PlayerTalkClass->ClearMenus();
- switch (action)
- {
- case GOSSIP_ACTION_INFO_DEF+1:
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_MG_II, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
- player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_MCGOYVER, creature->GetGUID());
- player->CastSpell(player, SPELL_CREATURE_DARK_IRON_INGOTS, true);
- break;
- case GOSSIP_ACTION_INFO_DEF+2:
- player->CastSpell(player, SPELL_TAXI_EXPLORERS_LEAGUE, true);
- player->CLOSE_GOSSIP_MENU();
- break;
- }
- return true;
- }
-};
-
-/*######
## npc_daegarn
######*/
-enum eDaegarnn
+enum Daegarnn
{
QUEST_DEFEAT_AT_RING = 11300,
@@ -351,7 +301,7 @@ class npc_daegarn : public CreatureScript
public:
npc_daegarn() : CreatureScript("npc_daegarn") { }
- bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_DEFEAT_AT_RING)
{
@@ -370,7 +320,7 @@ public:
bool bEventInProgress;
uint64 uiPlayerGUID;
- void Reset()
+ void Reset() OVERRIDE
{
bEventInProgress = false;
uiPlayerGUID = 0;
@@ -386,11 +336,11 @@ public:
SummonGladiator(NPC_FIRJUS);
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
if (Player* player = me->GetPlayer(*me, uiPlayerGUID))
{
- if (player->isAlive())
+ if (player->IsAlive())
{
summon->SetWalk(false);
summon->GetMotionMaster()->MovePoint(0, afCenter[0], afCenter[1], afCenter[2]);
@@ -407,7 +357,7 @@ public:
me->SummonCreature(uiEntry, afSummon[0], afSummon[1], afSummon[2], 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30*IN_MILLISECONDS);
}
- void SummonedCreatureDies(Creature* summoned, Unit* /*killer*/)
+ void SummonedCreatureDies(Creature* summoned, Unit* /*killer*/) OVERRIDE
{
uint32 uiEntry = 0;
@@ -424,7 +374,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_daegarnAI(creature);
}
@@ -435,6 +385,5 @@ void AddSC_howling_fjord()
new npc_apothecary_hanes;
new npc_plaguehound_tracker;
new npc_razael_and_lyana;
- new npc_mcgoyver;
new npc_daegarn;
}
diff --git a/src/server/scripts/Northrend/zone_icecrown.cpp b/src/server/scripts/Northrend/zone_icecrown.cpp
index 0447d70b502..24452a5fb5f 100644
--- a/src/server/scripts/Northrend/zone_icecrown.cpp
+++ b/src/server/scripts/Northrend/zone_icecrown.cpp
@@ -16,17 +16,6 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-/* ScriptData
-SDName: Icecrown
-SD%Complete: 100
-SDComment: Quest support: 12807
-SDCategory: Icecrown
-EndScriptData */
-
-/* ContentData
-npc_arete
-EndContentData */
-
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
@@ -47,7 +36,7 @@ EndContentData */
#define GOSSIP_ARETE_ITEM6 "Let's finish this!"
#define GOSSIP_ARETE_ITEM7 "That's quite a tale, Lord-Commander."
-enum eArete
+enum Arete
{
GOSSIP_TEXTID_ARETE1 = 13525,
GOSSIP_TEXTID_ARETE2 = 13526,
@@ -65,9 +54,9 @@ class npc_arete : public CreatureScript
public:
npc_arete() : CreatureScript("npc_arete") { }
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
if (player->GetQuestStatus(QUEST_THE_STORY_THUS_FAR) == QUEST_STATUS_INCOMPLETE)
@@ -81,7 +70,7 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -124,7 +113,7 @@ public:
## npc_squire_david
######*/
-enum eSquireDavid
+enum SquireDavid
{
QUEST_THE_ASPIRANT_S_CHALLENGE_H = 13680,
QUEST_THE_ASPIRANT_S_CHALLENGE_A = 13679,
@@ -142,7 +131,7 @@ class npc_squire_david : public CreatureScript
public:
npc_squire_david() : CreatureScript("npc_squire_david") { }
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
if (player->GetQuestStatus(QUEST_THE_ASPIRANT_S_CHALLENGE_H) == QUEST_STATUS_INCOMPLETE ||
player->GetQuestStatus(QUEST_THE_ASPIRANT_S_CHALLENGE_A) == QUEST_STATUS_INCOMPLETE)//We need more info about it.
@@ -155,7 +144,7 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF+1)
@@ -171,7 +160,7 @@ public:
## npc_argent_valiant
######*/
-enum eArgentValiant
+enum ArgentValiant
{
SPELL_CHARGE = 63010,
SPELL_SHIELD_BREAKER = 65147,
@@ -194,13 +183,13 @@ public:
uint32 uiChargeTimer;
uint32 uiShieldBreakerTimer;
- void Reset()
+ void Reset() OVERRIDE
{
uiChargeTimer = 7000;
uiShieldBreakerTimer = 10000;
}
- void MovementInform(uint32 uiType, uint32 /*uiId*/)
+ void MovementInform(uint32 uiType, uint32 /*uiId*/) OVERRIDE
{
if (uiType != POINT_MOTION_TYPE)
return;
@@ -208,7 +197,7 @@ public:
me->setFaction(14);
}
- void DamageTaken(Unit* pDoneBy, uint32& uiDamage)
+ void DamageTaken(Unit* pDoneBy, uint32& uiDamage) OVERRIDE
{
if (uiDamage > me->GetHealth() && pDoneBy->GetTypeId() == TYPEID_PLAYER)
{
@@ -221,7 +210,7 @@ public:
}
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -242,7 +231,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_argent_valiantAI(creature);
}
@@ -252,7 +241,7 @@ public:
## npc_guardian_pavilion
######*/
-enum eGuardianPavilion
+enum GuardianPavilion
{
SPELL_TRESPASSER_H = 63987,
AREA_SUNREAVER_PAVILION = 4676,
@@ -273,7 +262,8 @@ public:
SetCombatMovement(false);
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (me->GetAreaId() != AREA_SUNREAVER_PAVILION && me->GetAreaId() != AREA_SILVER_COVENANT_PAVILION)
return;
@@ -292,7 +282,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_guardian_pavilionAI(creature);
}
@@ -302,7 +292,7 @@ public:
## npc_vereth_the_cunning
######*/
-enum eVerethTheCunning
+enum VerethTheCunning
{
NPC_GEIST_RETURN_BUNNY_KC = 31049,
NPC_LITHE_STALKER = 30894,
@@ -318,7 +308,8 @@ public:
{
npc_vereth_the_cunningAI(Creature* creature) : ScriptedAI(creature) {}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
ScriptedAI::MoveInLineOfSight(who);
@@ -337,7 +328,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_vereth_the_cunningAI(creature);
}
@@ -385,7 +376,7 @@ class npc_tournament_training_dummy : public CreatureScript
EventMap events;
bool isVulnerable;
- void Reset()
+ void Reset() OVERRIDE
{
me->SetControlled(true, UNIT_STATE_STUNNED);
me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK, true);
@@ -406,7 +397,7 @@ class npc_tournament_training_dummy : public CreatureScript
events.ScheduleEvent(EVENT_DUMMY_RECAST_DEFEND, 5000);
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
if (!_EnterEvadeMode())
return;
@@ -414,13 +405,13 @@ class npc_tournament_training_dummy : public CreatureScript
Reset();
}
- void DamageTaken(Unit* /*attacker*/, uint32& damage)
+ void DamageTaken(Unit* /*attacker*/, uint32& damage) OVERRIDE
{
damage = 0;
events.RescheduleEvent(EVENT_DUMMY_RESET, 10000);
}
- void SpellHit(Unit* caster, SpellInfo const* spell)
+ void SpellHit(Unit* caster, SpellInfo const* spell) OVERRIDE
{
switch (me->GetEntry())
{
@@ -450,7 +441,7 @@ class npc_tournament_training_dummy : public CreatureScript
isVulnerable = true;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
events.Update(diff);
@@ -492,10 +483,11 @@ class npc_tournament_training_dummy : public CreatureScript
me->SetControlled(true, UNIT_STATE_STUNNED);
}
- void MoveInLineOfSight(Unit* /*who*/){}
+ void MoveInLineOfSight(Unit* /*who*/)OVERRIDE {}
+
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_tournament_training_dummyAI(creature);
}
@@ -616,7 +608,7 @@ public:
uint64 guidMason[3];
uint64 guidHalof;
- void Reset()
+ void Reset() OVERRIDE
{
me->setRegeneratingHealth(false);
DoCast(SPELL_THREAT_PULSE);
@@ -624,22 +616,23 @@ public:
events.ScheduleEvent(EVENT_SPAWN, 3000);
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
- void MoveInLineOfSight(Unit* /*who*/) {}
- void JustSummoned(Creature* Summoned)
+ void JustSummoned(Creature* Summoned) OVERRIDE
{
Summons.Summon(Summoned);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Summons.DespawnAll();
me->DespawnOrUnsummon();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
events.Update(diff);
@@ -870,7 +863,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_blessed_bannerAI(creature);
}
@@ -908,12 +901,12 @@ class npc_frostbrood_skytalon : public CreatureScript
EventMap events;
- void IsSummonedBy(Unit* summoner)
+ void IsSummonedBy(Unit* summoner) OVERRIDE
{
me->GetMotionMaster()->MovePoint(POINT_GRAB_DECOY, summoner->GetPositionX(), summoner->GetPositionY(), summoner->GetPositionZ());
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type != POINT_MOTION_TYPE)
return;
@@ -924,7 +917,7 @@ class npc_frostbrood_skytalon : public CreatureScript
DoCast(summoner, SPELL_GRAB);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
VehicleAI::UpdateAI(diff);
events.Update(diff);
@@ -941,7 +934,7 @@ class npc_frostbrood_skytalon : public CreatureScript
}
}
- void SpellHit(Unit* /*caster*/, SpellInfo const* spell)
+ void SpellHit(Unit* /*caster*/, SpellInfo const* spell) OVERRIDE
{
switch (spell->Id)
{
@@ -956,12 +949,204 @@ class npc_frostbrood_skytalon : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_frostbrood_skytalonAI(creature);
}
};
+/*######
+## The Flesh Giant Champion - Id: 13235
+######*/
+enum FleshGiant
+{
+ QUEST_FLESH_GIANT_CHAMPION = 13235,
+
+ NPC_MORBIDUS = 30698,
+ NPC_LICH_KING = 31301,
+ NPC_OLAKIN = 31428,
+ NPC_DHAKAR = 31306,
+
+ FACTION_HOSTILE = 14,
+ FACTION_BASIC = 2102,
+
+ EVENT_INTRO = 1,
+ EVENT_LK_SAY_1 = 2,
+ EVENT_LK_SAY_2 = 3,
+ EVENT_LK_SAY_3 = 4,
+ EVENT_LK_SAY_4 = 5,
+ EVENT_LK_SAY_5 = 6,
+ EVENT_OUTRO = 7,
+ EVENT_START = 8,
+
+ SPELL_SIMPLE_TELEPORT = 64195,
+
+ SAY_DHAKAR_START = 0,
+ SAY_LK_1 = 0,
+ SAY_LK_2 = 1,
+ SAY_LK_3 = 2,
+ SAY_LK_4 = 3,
+ SAY_LK_5 = 4,
+ SAY_OLAKIN_PAY = 0
+};
+
+class npc_margrave_dhakar : public CreatureScript
+{
+ public:
+ npc_margrave_dhakar() : CreatureScript("npc_margrave_dhakar") { }
+
+ struct npc_margrave_dhakarAI : public ScriptedAI
+ {
+ npc_margrave_dhakarAI(Creature* creature) : ScriptedAI(creature) , _summons(me), _lichKingGuid(0) { }
+
+ void Reset() OVERRIDE
+ {
+ me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE);
+
+ _events.Reset();
+ _summons.DespawnAll();
+ }
+
+ void sGossipSelect(Player* player, uint32 sender, uint32 action) OVERRIDE
+ {
+ if (player->GetQuestStatus(QUEST_FLESH_GIANT_CHAMPION) == QUEST_STATUS_INCOMPLETE && !player->IsInCombat())
+ {
+ if (me->GetCreatureTemplate()->GossipMenuId == sender && !action)
+ {
+ _events.ScheduleEvent(EVENT_INTRO, 1000);
+ me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ }
+ }
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ _events.Update(diff);
+
+ while (uint32 eventId = _events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_INTRO:
+ {
+ Talk(SAY_DHAKAR_START);
+ me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H);
+
+ if (Creature* morbidus = me->FindNearestCreature(NPC_MORBIDUS, 50.0f, true))
+ {
+ if (Creature* lichKing = me->SummonCreature(NPC_LICH_KING, morbidus->GetPositionX() + 10.0f, morbidus->GetPositionY(), morbidus->GetPositionZ()))
+ {
+ _lichKingGuid = lichKing->GetGUID();
+ lichKing->SetFacingTo(morbidus->GetOrientation());
+ lichKing->CastSpell(lichKing, SPELL_SIMPLE_TELEPORT, true);
+ }
+ }
+
+ _events.ScheduleEvent(EVENT_LK_SAY_1, 5000);
+ break;
+ }
+ case EVENT_LK_SAY_1:
+ {
+ if (Creature* lichKing = Unit::GetCreature(*me, _lichKingGuid))
+ lichKing->AI()->Talk(SAY_LK_1);
+ _events.ScheduleEvent(EVENT_LK_SAY_2, 5000);
+ break;
+ }
+ case EVENT_LK_SAY_2:
+ {
+ if (Creature* lichKing = Unit::GetCreature(*me, _lichKingGuid))
+ lichKing->AI()->Talk(SAY_LK_2);
+ _events.ScheduleEvent(EVENT_LK_SAY_3, 5000);
+ break;
+ }
+ case EVENT_LK_SAY_3:
+ {
+ if (Creature* lichKing = Unit::GetCreature(*me, _lichKingGuid))
+ lichKing->AI()->Talk(SAY_LK_3);
+ _events.ScheduleEvent(EVENT_LK_SAY_4, 5000);
+ break;
+ }
+ case EVENT_LK_SAY_4:
+ {
+ if (Creature* lichKing = Unit::GetCreature(*me, _lichKingGuid))
+ lichKing->AI()->Talk(SAY_LK_4);
+ _events.ScheduleEvent(EVENT_OUTRO, 12000);
+ break;
+ }
+ case EVENT_LK_SAY_5:
+ {
+ if (Creature* lichKing = Unit::GetCreature(*me, _lichKingGuid))
+ lichKing->AI()->Talk(SAY_LK_5);
+ _events.ScheduleEvent(EVENT_OUTRO, 8000);
+ break;
+ }
+ case EVENT_OUTRO:
+ {
+ if (Creature* olakin = me->FindNearestCreature(NPC_OLAKIN, 50.0f, true))
+ olakin->AI()->Talk(SAY_OLAKIN_PAY);
+
+ if (Creature* lichKing = Unit::GetCreature(*me, _lichKingGuid))
+ lichKing->DespawnOrUnsummon(0);
+
+ _events.ScheduleEvent(EVENT_START, 5000);
+ break;
+ }
+ case EVENT_START:
+ {
+ if (Creature* morbidus = me->FindNearestCreature(NPC_MORBIDUS, 50.0f, true))
+ {
+ morbidus->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_ATTACKABLE_1 | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_DISABLE_MOVE);
+ morbidus->setFaction(FACTION_HOSTILE);
+ }
+
+ break;
+ }
+ }
+ }
+
+ DoMeleeAttackIfReady();
+ }
+
+ private:
+ EventMap _events;
+ SummonList _summons;
+ uint64 _lichKingGuid;
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_margrave_dhakarAI(creature);
+ }
+};
+
+class npc_morbidus : public CreatureScript
+{
+ public:
+ npc_morbidus() : CreatureScript("npc_morbidus") { }
+
+ struct npc_morbidusAI : public ScriptedAI
+ {
+ npc_morbidusAI(Creature* creature) : ScriptedAI(creature) { }
+
+ void Reset() OVERRIDE
+ {
+ if (Creature* dhakar = me->FindNearestCreature(NPC_DHAKAR, 50.0f, true))
+ dhakar->AI()->Reset();
+
+ // this will prevent the event to start without morbidus being alive
+ me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->SetReactState(REACT_PASSIVE);
+ me->setFaction(FACTION_BASIC);
+ }
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_morbidusAI(creature);
+ }
+};
+
void AddSC_icecrown()
{
new npc_arete;
@@ -972,4 +1157,6 @@ void AddSC_icecrown()
new npc_tournament_training_dummy;
new npc_blessed_banner();
new npc_frostbrood_skytalon();
+ new npc_margrave_dhakar();
+ new npc_morbidus();
}
diff --git a/src/server/scripts/Northrend/zone_sholazar_basin.cpp b/src/server/scripts/Northrend/zone_sholazar_basin.cpp
index 57228595b9b..c1bca1dae76 100644
--- a/src/server/scripts/Northrend/zone_sholazar_basin.cpp
+++ b/src/server/scripts/Northrend/zone_sholazar_basin.cpp
@@ -45,7 +45,7 @@ EndContentData */
#define GOSSIP_ITEM1 "I am ready to travel to your village now."
-enum eRainspeaker
+enum Rainspeaker
{
SAY_START_IRO = 0,
SAY_QUEST_ACCEPT_IRO = 1,
@@ -67,7 +67,7 @@ public:
uint64 c_guid;
- void Reset()
+ void Reset() OVERRIDE
{
me->RestoreFaction();
// if we will have other way to assign this to only one npc remove this part
@@ -78,7 +78,7 @@ public:
}
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
Player* player = GetPlayerForEscort();
if (!player)
@@ -98,13 +98,13 @@ public:
case 16:
case 17:
case 18:
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_SWIMMING);
me->RemoveUnitMovementFlag(MOVEMENTFLAG_FALLING);
me->SetSpeed(MOVE_SWIM, 0.85f, true);
- me->AddUnitMovementFlag(MOVEMENTFLAG_SWIMMING | MOVEMENTFLAG_DISABLE_GRAVITY);
+ me->SetSwim(true);
+ me->SetDisableGravity(true);
break;
case 19:
- me->SetUnitMovementFlags(MOVEMENTFLAG_FALLING);
+ me->GetMotionMaster()->MoveFall();
break;
case 28:
player->GroupEventHappens(QUEST_FORTUNATE_MISUNDERSTANDINGS, me);
@@ -115,7 +115,7 @@ public:
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (!HasEscortState(STATE_ESCORT_ESCORTING))
return;
@@ -128,9 +128,9 @@ public:
}
};
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
if (player->GetQuestStatus(QUEST_FORTUNATE_MISUNDERSTANDINGS) == QUEST_STATUS_INCOMPLETE)
@@ -141,14 +141,13 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF+1)
{
CAST_AI(npc_escortAI, (creature->AI()))->Start(true, false, player->GetGUID());
CAST_AI(npc_escortAI, (creature->AI()))->SetMaxPlayerDistance(35.0f);
- creature->SetUnitMovementFlags(MOVEMENTFLAG_FALLING);
creature->AI()->Talk(SAY_START_IRO);
switch (player->GetTeam()){
@@ -163,13 +162,13 @@ public:
return true;
}
- bool OnQuestAccept(Player* /*player*/, Creature* creature, Quest const* /*_Quest*/)
+ bool OnQuestAccept(Player* /*player*/, Creature* creature, Quest const* /*_Quest*/) OVERRIDE
{
creature->AI()->Talk(SAY_QUEST_ACCEPT_IRO);
return false;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_injured_rainspeaker_oracleAI(creature);
}
@@ -182,7 +181,7 @@ public:
#define GOSSIP_VEKJIK_ITEM1 "Shaman Vekjik, I have spoken with the big-tongues and they desire peace. I have brought this offering on their behalf."
#define GOSSIP_VEKJIK_ITEM2 "No no... I had no intentions of betraying your people. I was only defending myself. it was all a misunderstanding."
-enum eVekjik
+enum Vekjik
{
GOSSIP_TEXTID_VEKJIK1 = 13137,
GOSSIP_TEXTID_VEKJIK2 = 13138,
@@ -199,9 +198,9 @@ class npc_vekjik : public CreatureScript
public:
npc_vekjik() : CreatureScript("npc_vekjik") { }
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
if (player->GetQuestStatus(QUEST_MAKING_PEACE) == QUEST_STATUS_INCOMPLETE)
@@ -215,7 +214,7 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -244,7 +243,7 @@ public:
#define GOSSIP_ITEM_AOF2 "You can trust me. I am no friend of the Lich King."
#define GOSSIP_ITEM_AOF3 "I will not fail."
-enum eFreya
+enum Freya
{
QUEST_FREYA_PACT = 12621,
@@ -260,9 +259,9 @@ class npc_avatar_of_freya : public CreatureScript
public:
npc_avatar_of_freya() : CreatureScript("npc_avatar_of_freya") { }
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
if (player->GetQuestStatus(QUEST_FREYA_PACT) == QUEST_STATUS_INCOMPLETE)
@@ -272,7 +271,7 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -309,7 +308,7 @@ public:
{
}
- void InitializeAI()
+ void InitializeAI() OVERRIDE
{
if (me->isDead())
return;
@@ -321,7 +320,7 @@ public:
Reset();
}
- void UpdateAI(uint32 /*uiDiff*/)
+ void UpdateAI(uint32 /*uiDiff*/) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -330,7 +329,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_bushwhackerAI(creature);
}
@@ -340,11 +339,13 @@ public:
## npc_engineer_helice
######*/
-enum eEnums
+enum EngineerHelice
{
+ // Spells
SPELL_EXPLODE_CRYSTAL = 62487,
SPELL_FLAMES = 64561,
+ // Yells
SAY_WP_1 = 0,
SAY_WP_2 = 1,
SAY_WP_3 = 2,
@@ -353,6 +354,7 @@ enum eEnums
SAY_WP_6 = 5,
SAY_WP_7 = 6,
+ // Quests
QUEST_DISASTER = 12688
};
@@ -367,7 +369,7 @@ public:
uint32 m_uiChatTimer;
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
Player* player = GetPlayerForEscort();
@@ -406,12 +408,12 @@ public:
}
}
- void Reset()
+ void Reset() OVERRIDE
{
m_uiChatTimer = 4000;
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (HasEscortState(STATE_ESCORT_ESCORTING))
{
@@ -420,7 +422,7 @@ public:
}
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
npc_escortAI::UpdateAI(uiDiff);
@@ -436,12 +438,12 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_engineer_heliceAI(creature);
}
- bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_DISASTER)
{
@@ -507,7 +509,7 @@ public:
{
npc_jungle_punch_targetAI(Creature* creature) : ScriptedAI(creature) {}
- void Reset()
+ void Reset() OVERRIDE
{
sayTimer = 3500;
sayStep = 0;
@@ -517,7 +519,8 @@ public:
orphanGUID = 0;
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (!phase && who && who->GetDistance2d(me) < 10.0f)
if (Player* player = who->ToPlayer())
@@ -582,7 +585,7 @@ public:
timer -= diff;
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (phase)
proceedCwEvent(uiDiff);
@@ -636,7 +639,7 @@ public:
sayTimer -= uiDiff;
}
- void SpellHit(Unit* caster, const SpellInfo* proto)
+ void SpellHit(Unit* caster, const SpellInfo* proto) OVERRIDE
{
if (!proto || proto->Id != SPELL_OFFER)
return;
@@ -688,7 +691,7 @@ public:
uint64 orphanGUID;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_jungle_punch_targetAI(creature);
}
@@ -702,7 +705,7 @@ public:
#define GOSSIP_OPTION_BANANAS "Have a spare bunch of bananas?"
#define GOSSIP_OPTION_PAPAYA "I could really use a papaya."
-enum eAdventurousDwarf
+enum AdventurousDwarf
{
QUEST_12634 = 12634,
@@ -733,12 +736,12 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_adventurous_dwarfAI(creature);
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
if (player->GetQuestStatus(QUEST_12634) != QUEST_STATUS_INCOMPLETE)
return false;
@@ -756,7 +759,7 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
uint32 spellId = 0;
@@ -844,20 +847,20 @@ public:
std::list<Creature*> saboteurs;
caster->GetCreatureListWithEntryInGrid(saboteurs, NPC_SABOTEUR, 200.0f);
for (std::list<Creature*>::iterator itr = saboteurs.begin(); itr != saboteurs.end(); ++itr)
- if ((*itr)->isAlive())
+ if ((*itr)->IsAlive())
// Lifeforce has a cast duration, it should be cast at all saboteurs one by one
presence->CastSpell((*itr), SPELL_LIFEFORCE, false);
}
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHit += SpellEffectFn(spell_q12620_the_lifewarden_wrath_SpellScript::HandleSendEvent, EFFECT_0, SPELL_EFFECT_SEND_EVENT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_q12620_the_lifewarden_wrath_SpellScript();
}
@@ -974,14 +977,14 @@ public:
}
}
- void Register()
+ void Register() OVERRIDE
{
OnCheckCast += SpellCheckCastFn(spell_q12589_shoot_rjr_SpellScript::CheckCast);
OnEffectHitTarget += SpellEffectFn(spell_q12589_shoot_rjr_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_q12589_shoot_rjr_SpellScript();
}
@@ -1011,7 +1014,7 @@ public:
{
npc_haiphoonAI(Creature* creature) : VehicleAI(creature) { }
- void SpellHitTarget(Unit* target, SpellInfo const* spell)
+ void SpellHitTarget(Unit* target, SpellInfo const* spell) OVERRIDE
{
if (target == me)
return;
@@ -1027,7 +1030,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_haiphoonAI(creature);
}
@@ -1065,13 +1068,13 @@ public:
{
npc_vics_flying_machineAI(Creature* creature) : VehicleAI(creature) {}
- void PassengerBoarded(Unit* passenger, int8 /*seatId*/, bool apply)
+ void PassengerBoarded(Unit* passenger, int8 /*seatId*/, bool apply) OVERRIDE
{
if (apply && passenger->GetTypeId() == TYPEID_PLAYER)
me->GetMotionMaster()->MovePath(NPC_PLANE, false);
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type != WAYPOINT_MOTION_TYPE)
return;
@@ -1107,7 +1110,7 @@ public:
}
}
- void SpellHit(Unit* /*caster*/, SpellInfo const* spell)
+ void SpellHit(Unit* /*caster*/, SpellInfo const* spell) OVERRIDE
{
if (spell->Id == SPELL_LAND)
{
@@ -1120,10 +1123,10 @@ public:
}
}
- void UpdateAI(uint32 /*diff*/) {}
+ void UpdateAI(uint32 /*diff*/) OVERRIDE {}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_vics_flying_machineAI(creature);
}
diff --git a/src/server/scripts/Northrend/zone_storm_peaks.cpp b/src/server/scripts/Northrend/zone_storm_peaks.cpp
index ba725d2dda4..1fc0cce51b4 100644
--- a/src/server/scripts/Northrend/zone_storm_peaks.cpp
+++ b/src/server/scripts/Northrend/zone_storm_peaks.cpp
@@ -26,129 +26,19 @@
#include "Player.h"
#include "WorldSession.h"
-/*######
-## npc_agnetta_tyrsdottar
-######*/
-
-#define GOSSIP_AGNETTA "Skip the warmup, sister... or are you too scared to face soemeone your own size?"
-
-enum eAgnetta
-{
- QUEST_ITS_THAT_YOUR_GOBLIN = 12969,
- FACTION_HOSTILE_AT1 = 45,
- SAY_AGGRO = 0
-};
-
-class npc_agnetta_tyrsdottar : public CreatureScript
-{
-public:
- npc_agnetta_tyrsdottar() : CreatureScript("npc_agnetta_tyrsdottar") { }
-
- struct npc_agnetta_tyrsdottarAI : public ScriptedAI
- {
- npc_agnetta_tyrsdottarAI(Creature* creature) : ScriptedAI(creature) { }
-
- void Reset()
- {
- me->RestoreFaction();
- }
- };
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new npc_agnetta_tyrsdottarAI(creature);
- }
-
- bool OnGossipHello(Player* player, Creature* creature)
- {
- if (player->GetQuestStatus(QUEST_ITS_THAT_YOUR_GOBLIN) == QUEST_STATUS_INCOMPLETE)
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_AGNETTA, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
-
- player->SEND_GOSSIP_MENU(13691, creature->GetGUID());
- return true;
- }
-
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
- {
- player->PlayerTalkClass->ClearMenus();
- if (action == GOSSIP_ACTION_INFO_DEF+1)
- {
- creature->AI()->Talk(SAY_AGGRO);
- player->CLOSE_GOSSIP_MENU();
- creature->setFaction(FACTION_HOSTILE_AT1);
- creature->AI()->AttackStart(player);
- }
-
- return true;
- }
-};
-
-/*######
-## npc_frostborn_scout
-######*/
-
-#define GOSSIP_ITEM1 "Are you okay? I've come to take you back to Frosthold if you can stand."
-#define GOSSIP_ITEM2 "I'm sorry that I didn't get here sooner. What happened?"
-#define GOSSIP_ITEM3 "I'll go get some help. Hang in there."
-
-enum eFrostbornScout
-{
- QUEST_MISSING_SCOUTS = 12864
-};
-
-class npc_frostborn_scout : public CreatureScript
-{
-public:
- npc_frostborn_scout() : CreatureScript("npc_frostborn_scout") { }
-
- bool OnGossipHello(Player* player, Creature* creature)
- {
-
- if (player->GetQuestStatus(QUEST_MISSING_SCOUTS) == QUEST_STATUS_INCOMPLETE)
- {
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
- player->PlayerTalkClass->SendGossipMenu(13611, creature->GetGUID());
- }
-
- return true;
- }
-
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
- {
- player->PlayerTalkClass->ClearMenus();
- switch (action)
- {
- case GOSSIP_ACTION_INFO_DEF+1:
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
- player->PlayerTalkClass->SendGossipMenu(13612, creature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF+2:
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3);
- player->PlayerTalkClass->SendGossipMenu(13613, creature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF+3:
- player->PlayerTalkClass->SendGossipMenu(13614, creature->GetGUID());
- player->AreaExploredOrEventHappens(QUEST_MISSING_SCOUTS);
- break;
- }
-
- return true;
- }
-};
-
/////////////////////
///npc_injured_goblin
/////////////////////
-enum eInjuredGoblin
+enum InjuredGoblinMiner
{
QUEST_BITTER_DEPARTURE = 12832,
SAY_QUEST_ACCEPT = 0,
- SAY_END_WP_REACHED = 1
+ SAY_END_WP_REACHED = 1,
+ GOSSIP_ID = 9859,
+ GOSSIP_OPTION_ID = 0
};
-#define GOSSIP_ITEM_1 "I am ready, lets get you out of here"
-
class npc_injured_goblin : public CreatureScript
{
public:
@@ -158,7 +48,7 @@ public:
{
npc_injured_goblinAI(Creature* creature) : npc_escortAI(creature) { }
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
Player* player = GetPlayerForEscort();
if (!player)
@@ -175,92 +65,77 @@ public:
}
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void Reset() {}
+ void Reset() OVERRIDE {}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Player* player = GetPlayerForEscort();
if (HasEscortState(STATE_ESCORT_ESCORTING) && player)
player->FailQuest(QUEST_BITTER_DEPARTURE);
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
npc_escortAI::UpdateAI(uiDiff);
if (!UpdateVictim())
return;
DoMeleeAttackIfReady();
}
+
+ void sGossipSelect(Player* player, uint32 sender, uint32 action) OVERRIDE
+ {
+ if (sender == GOSSIP_ID && action == GOSSIP_OPTION_ID)
+ {
+ player->CLOSE_GOSSIP_MENU();
+ me->setFaction(113);
+ npc_escortAI::Start(true, true, player->GetGUID());
+ }
+ }
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_injured_goblinAI(creature);
}
- bool OnGossipHello(Player* player, Creature* creature)
- {
- if (creature->isQuestGiver())
- player->PrepareQuestMenu(creature->GetGUID());
-
- if (player->GetQuestStatus(QUEST_BITTER_DEPARTURE) == QUEST_STATUS_INCOMPLETE)
- {
- player->ADD_GOSSIP_ITEM(0, GOSSIP_ITEM_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
- player->PlayerTalkClass->SendGossipMenu(9999999, creature->GetGUID());
- }
- else
- player->SEND_GOSSIP_MENU(999999, creature->GetGUID());
- return true;
- }
-
- bool OnQuestAccept(Player* /*player*/, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* /*player*/, Creature* creature, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_BITTER_DEPARTURE)
creature->AI()->Talk(SAY_QUEST_ACCEPT);
return false;
}
-
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
- {
- player->PlayerTalkClass->ClearMenus();
- npc_escortAI* pEscortAI = CAST_AI(npc_injured_goblin::npc_injured_goblinAI, creature->AI());
-
- if (action == GOSSIP_ACTION_INFO_DEF+1)
- {
- pEscortAI->Start(true, true, player->GetGUID());
- creature->setFaction(113);
- }
- return true;
- }
};
/*######
## npc_roxi_ramrocket
######*/
-#define SPELL_MECHANO_HOG 60866
-#define SPELL_MEKGINEERS_CHOPPER 60867
+enum RoxiRamrocket
+{
+ SPELL_MECHANO_HOG = 60866,
+ SPELL_MEKGINEERS_CHOPPER = 60867
+};
class npc_roxi_ramrocket : public CreatureScript
{
public:
npc_roxi_ramrocket() : CreatureScript("npc_roxi_ramrocket") { }
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
//Quest Menu
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
//Trainer Menu
- if ( creature->isTrainer() )
+ if ( creature->IsTrainer() )
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, GOSSIP_TEXT_TRAIN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRAIN);
//Vendor Menu
- if ( creature->isVendor() )
+ if ( creature->IsVendor() )
if (player->HasSpell(SPELL_MECHANO_HOG) || player->HasSpell(SPELL_MEKGINEERS_CHOPPER))
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
@@ -268,7 +143,7 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -307,29 +182,27 @@ public:
bool freed;
- void Reset()
+ void Reset() OVERRIDE
{
freed = false;
me->CastSpell(me, SPELL_ICE_PRISON, true);
}
- void JustRespawned()
+ void JustRespawned() OVERRIDE
{
Reset();
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
if (!freed)
return;
- if (!me->HasUnitState(UNIT_STATE_ONVEHICLE))
- {
+ if (!me->GetVehicle())
me->DespawnOrUnsummon();
- }
}
- void SpellHit(Unit* caster, const SpellInfo* spell)
+ void SpellHit(Unit* caster, const SpellInfo* spell) OVERRIDE
{
if (spell->Id != SPELL_ICE_LANCE)
return;
@@ -344,7 +217,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_brunnhildar_prisonerAI(creature);
}
@@ -381,12 +254,12 @@ public:
EventMap events;
- void Reset()
+ void Reset() OVERRIDE
{
events.ScheduleEvent(EVENT_CHECK_AREA, 5000);
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type != WAYPOINT_MOTION_TYPE)
return;
@@ -396,7 +269,7 @@ public:
events.ScheduleEvent(EVENT_REACHED_HOME, 2000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
events.Update(diff);
@@ -437,7 +310,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_freed_protodrakeAI(creature);
}
@@ -452,11 +325,11 @@ public:
{
npc_icefangAI(Creature* creature) : npc_escortAI(creature) {}
- void AttackStart(Unit* /*who*/) {}
- void EnterCombat(Unit* /*who*/) {}
- void EnterEvadeMode() {}
+ void AttackStart(Unit* /*who*/) OVERRIDE {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+ void EnterEvadeMode() OVERRIDE {}
- void PassengerBoarded(Unit* who, int8 /*seatId*/, bool apply)
+ void PassengerBoarded(Unit* who, int8 /*seatId*/, bool apply) OVERRIDE
{
if (who->GetTypeId() == TYPEID_PLAYER)
{
@@ -465,19 +338,19 @@ public:
}
}
- void WaypointReached(uint32 /*waypointId*/)
+ void WaypointReached(uint32 /*waypointId*/) OVERRIDE
{
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
}
- void OnCharmed(bool /*apply*/)
+ void OnCharmed(bool /*apply*/) OVERRIDE
{
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
npc_escortAI::UpdateAI(diff);
@@ -486,9 +359,9 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_icefangAI (creature);
+ return new npc_icefangAI(creature);
}
};
@@ -507,7 +380,7 @@ class npc_hyldsmeet_protodrake : public CreatureScript
public:
npc_hyldsmeet_protodrakeAI(Creature* creature) : CreatureAI(creature), _accessoryRespawnTimer(0), _vehicleKit(creature->GetVehicleKit()) {}
- void PassengerBoarded(Unit* who, int8 /*seat*/, bool apply)
+ void PassengerBoarded(Unit* who, int8 /*seat*/, bool apply) OVERRIDE
{
if (apply)
return;
@@ -516,7 +389,7 @@ class npc_hyldsmeet_protodrake : public CreatureScript
_accessoryRespawnTimer = 5 * MINUTE * IN_MILLISECONDS;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//! We need to manually reinstall accessories because the vehicle itself is friendly to players,
//! so EnterEvadeMode is never triggered. The accessory on the other hand is hostile and killable.
@@ -534,9 +407,9 @@ class npc_hyldsmeet_protodrake : public CreatureScript
Vehicle* _vehicleKit;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_hyldsmeet_protodrakeAI (creature);
+ return new npc_hyldsmeet_protodrakeAI(creature);
}
};
@@ -554,13 +427,13 @@ class spell_close_rift : public SpellScriptLoader
{
PrepareAuraScript(spell_close_rift_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
_counter = 0;
return true;
}
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
return sSpellMgr->GetSpellInfo(SPELL_DESPAWN_RIFT);
}
@@ -571,7 +444,7 @@ class spell_close_rift : public SpellScriptLoader
GetTarget()->CastSpell((Unit*)NULL, SPELL_DESPAWN_RIFT, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_close_rift_AuraScript::HandlePeriodic, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
}
@@ -581,7 +454,7 @@ class spell_close_rift : public SpellScriptLoader
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_close_rift_AuraScript();
}
@@ -589,8 +462,6 @@ class spell_close_rift : public SpellScriptLoader
void AddSC_storm_peaks()
{
- new npc_agnetta_tyrsdottar();
- new npc_frostborn_scout();
new npc_injured_goblin();
new npc_roxi_ramrocket();
new npc_brunnhildar_prisoner();
diff --git a/src/server/scripts/Northrend/zone_wintergrasp.cpp b/src/server/scripts/Northrend/zone_wintergrasp.cpp
index 1b944f9babb..0b9c319bf56 100644
--- a/src/server/scripts/Northrend/zone_wintergrasp.cpp
+++ b/src/server/scripts/Northrend/zone_wintergrasp.cpp
@@ -115,12 +115,12 @@ class npc_wg_demolisher_engineer : public CreatureScript
public:
npc_wg_demolisher_engineer() : CreatureScript("npc_wg_demolisher_engineer") { }
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
- if (canBuild(creature))
+ if (CanBuild(creature))
{
if (player->HasAura(SPELL_CORPORAL))
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HELLO_DEMO1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
@@ -138,11 +138,11 @@ class npc_wg_demolisher_engineer : public CreatureScript
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->CLOSE_GOSSIP_MENU();
- if (canBuild(creature))
+ if (CanBuild(creature))
{
switch (action - GOSSIP_ACTION_INFO_DEF)
{
@@ -163,7 +163,7 @@ class npc_wg_demolisher_engineer : public CreatureScript
}
private:
- bool canBuild(Creature* creature)
+ bool CanBuild(Creature* creature)
{
Battlefield* wintergrasp = sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG);
if (!wintergrasp)
@@ -186,9 +186,9 @@ class npc_wg_spirit_guide : public CreatureScript
public:
npc_wg_spirit_guide() : CreatureScript("npc_wg_spirit_guide") { }
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
Battlefield* wintergrasp = sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG);
@@ -204,7 +204,7 @@ class npc_wg_spirit_guide : public CreatureScript
return true;
}
- bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->CLOSE_GOSSIP_MENU();
@@ -224,14 +224,14 @@ class npc_wg_spirit_guide : public CreatureScript
{
npc_wg_spirit_guideAI(Creature* creature) : ScriptedAI(creature) { }
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
if (!me->HasUnitState(UNIT_STATE_CASTING))
DoCast(me, SPELL_CHANNEL_SPIRIT_HEAL);
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_wg_spirit_guideAI(creature);
}
@@ -242,9 +242,9 @@ class npc_wg_queue : public CreatureScript
public:
npc_wg_queue() : CreatureScript("npc_wg_queue") { }
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
Battlefield* wintergrasp = sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG);
@@ -271,7 +271,7 @@ class npc_wg_queue : public CreatureScript
return true;
}
- bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 /*action*/)
+ bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 /*action*/) OVERRIDE
{
player->CLOSE_GOSSIP_MENU();
@@ -300,7 +300,7 @@ class go_wg_vehicle_teleporter : public GameObjectScript
{
go_wg_vehicle_teleporterAI(GameObject* gameObject) : GameObjectAI(gameObject), _checkTimer(1000) { }
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (_checkTimer <= diff)
{
@@ -321,7 +321,7 @@ class go_wg_vehicle_teleporter : public GameObjectScript
uint32 _checkTimer;
};
- GameObjectAI* GetAI(GameObject* go) const
+ GameObjectAI* GetAI(GameObject* go) const OVERRIDE
{
return new go_wg_vehicle_teleporterAI(go);
}
@@ -332,16 +332,16 @@ class npc_wg_quest_giver : public CreatureScript
public:
npc_wg_quest_giver() : CreatureScript("npc_wg_quest_giver") { }
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
Battlefield* wintergrasp = sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG);
if (!wintergrasp)
return true;
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
{
QuestRelationBounds objectQR = sObjectMgr->GetCreatureQuestRelationBounds(creature->GetEntry());
QuestRelationBounds objectQIR = sObjectMgr->GetCreatureQuestInvolvedRelationBounds(creature->GetEntry());
@@ -463,7 +463,7 @@ class spell_wintergrasp_force_building : public SpellScriptLoader
{
PrepareSpellScript(spell_wintergrasp_force_building_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_BUILD_CATAPULT_FORCE)
|| !sSpellMgr->GetSpellInfo(SPELL_BUILD_DEMOLISHER_FORCE)
@@ -479,13 +479,13 @@ class spell_wintergrasp_force_building : public SpellScriptLoader
GetHitUnit()->CastSpell(GetHitUnit(), GetEffectValue(), false);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_wintergrasp_force_building_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_wintergrasp_force_building_SpellScript();
}
@@ -506,13 +506,13 @@ class spell_wintergrasp_grab_passenger : public SpellScriptLoader
target->CastSpell(GetCaster(), SPELL_RIDE_WG_VEHICLE, false);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_wintergrasp_grab_passenger_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_wintergrasp_grab_passenger_SpellScript();
}
@@ -523,7 +523,7 @@ class achievement_wg_didnt_stand_a_chance : public AchievementCriteriaScript
public:
achievement_wg_didnt_stand_a_chance() : AchievementCriteriaScript("achievement_wg_didnt_stand_a_chance") { }
- bool OnCheck(Player* source, Unit* target)
+ bool OnCheck(Player* source, Unit* target) OVERRIDE
{
if (!target)
return false;
@@ -566,13 +566,13 @@ public:
return SPELL_CAST_OK;
}
- void Register()
+ void Register() OVERRIDE
{
OnCheckCast += SpellCheckCastFn(spell_wintergrasp_defender_teleport_SpellScript::CheckCast);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_wintergrasp_defender_teleport_SpellScript();
}
@@ -597,13 +597,13 @@ public:
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_wintergrasp_defender_teleport_trigger_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_wintergrasp_defender_teleport_trigger_SpellScript();
}
diff --git a/src/server/scripts/Northrend/zone_zuldrak.cpp b/src/server/scripts/Northrend/zone_zuldrak.cpp
index 33a573b9b35..5e9a19685bc 100644
--- a/src/server/scripts/Northrend/zone_zuldrak.cpp
+++ b/src/server/scripts/Northrend/zone_zuldrak.cpp
@@ -21,20 +21,22 @@
#include "ScriptedEscortAI.h"
#include "Player.h"
#include "SpellInfo.h"
+#include "SpellScript.h"
+#include "SpellAuras.h"
+#include "SpellAuraEffects.h"
/*####
## npc_drakuru_shackles
####*/
-enum eDrakuruShackles
+enum DrakuruShackles
{
- SPELL_LEFT_CHAIN = 59951,
- SPELL_RIGHT_CHAIN = 59952,
- SPELL_UNLOCK_SHACKLE = 55083,
- SPELL_FREE_RAGECLAW = 55223,
-
- NPC_RAGECLAW = 29686,
- QUEST_TROLLS_IS_GONE_CRAZY = 12861,
+ NPC_RAGECLAW = 29686,
+ QUEST_TROLLS_IS_GONE_CRAZY = 12861,
+ SPELL_LEFT_CHAIN = 59951,
+ SPELL_RIGHT_CHAIN = 59952,
+ SPELL_UNLOCK_SHACKLE = 55083,
+ SPELL_FREE_RAGECLAW = 55223
};
class npc_drakuru_shackles : public CreatureScript
@@ -46,11 +48,9 @@ public:
{
npc_drakuru_shacklesAI(Creature* creature) : ScriptedAI(creature) {}
- uint64 RageclawGUID;
-
- void Reset()
+ void Reset() OVERRIDE
{
- RageclawGUID = 0;
+ _rageclawGUID = 0;
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
float x, y, z;
@@ -58,20 +58,20 @@ public:
if (Unit* summon = me->SummonCreature(NPC_RAGECLAW, x, y, z, 0, TEMPSUMMON_DEAD_DESPAWN, 1000))
{
- RageclawGUID = summon->GetGUID();
+ _rageclawGUID = summon->GetGUID();
LockRageclaw();
}
}
void LockRageclaw()
{
- Unit* Rageclaw = Unit::GetCreature(*me, RageclawGUID);
+ Unit* rageclaw = Unit::GetCreature(*me, _rageclawGUID);
// pointer check not needed
- me->SetInFront(Rageclaw);
- Rageclaw->SetInFront(me);
+ me->SetInFront(rageclaw);
+ rageclaw->SetInFront(me);
- DoCast(Rageclaw, SPELL_LEFT_CHAIN, true);
- DoCast(Rageclaw, SPELL_RIGHT_CHAIN, true);
+ DoCast(rageclaw, SPELL_LEFT_CHAIN, true);
+ DoCast(rageclaw, SPELL_RIGHT_CHAIN, true);
}
void UnlockRageclaw(Unit* who)
@@ -79,33 +79,36 @@ public:
if (!who)
return;
- Creature* Rageclaw = Unit::GetCreature(*me, RageclawGUID);
+ Creature* rageclaw = Unit::GetCreature(*me, _rageclawGUID);
// pointer check not needed
- DoCast(Rageclaw, SPELL_FREE_RAGECLAW, true);
+ DoCast(rageclaw, SPELL_FREE_RAGECLAW, true);
me->setDeathState(DEAD);
}
- void SpellHit(Unit* pCaster, const SpellInfo* pSpell)
+ void SpellHit(Unit* caster, const SpellInfo* spell) OVERRIDE
{
- if (pSpell->Id == SPELL_UNLOCK_SHACKLE)
+ if (spell->Id == SPELL_UNLOCK_SHACKLE)
{
- if (pCaster->ToPlayer()->GetQuestStatus(QUEST_TROLLS_IS_GONE_CRAZY) == QUEST_STATUS_INCOMPLETE)
+ if (caster->ToPlayer()->GetQuestStatus(QUEST_TROLLS_IS_GONE_CRAZY) == QUEST_STATUS_INCOMPLETE)
{
- if (Creature* pRageclaw = Unit::GetCreature(*me, RageclawGUID))
+ if (Creature* rageclaw = Unit::GetCreature(*me, _rageclawGUID))
{
- UnlockRageclaw(pCaster);
- pCaster->ToPlayer()->KilledMonster(pRageclaw->GetCreatureTemplate(), RageclawGUID);
- me->DisappearAndDie();
+ UnlockRageclaw(caster);
+ caster->ToPlayer()->KilledMonster(rageclaw->GetCreatureTemplate(), _rageclawGUID);
+ me->DespawnOrUnsummon();
}
else
me->setDeathState(JUST_DIED);
}
}
}
+
+ private:
+ uint64 _rageclawGUID;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_drakuru_shacklesAI(creature);
}
@@ -115,18 +118,13 @@ public:
## npc_captured_rageclaw
####*/
-enum eRageclaw
+enum Rageclaw
{
- SPELL_UNSHACKLED = 55085,
- SPELL_KNEEL = 39656
+ SPELL_UNSHACKLED = 55085,
+ SPELL_KNEEL = 39656,
+ SAY_RAGECLAW = 0
};
-const char* SAY_RAGECLAW_1 = "I poop on you, trollses!";
-const char* SAY_RAGECLAW_2 = "ARRRROOOOGGGGAAAA!";
-const char* SAY_RAGECLAW_3 = "No more mister nice wolvar!";
-
-#define SAY_RAGECLAW RAND(SAY_RAGECLAW_1, SAY_RAGECLAW_2, SAY_RAGECLAW_3)
-
class npc_captured_rageclaw : public CreatureScript
{
public:
@@ -136,114 +134,42 @@ public:
{
npc_captured_rageclawAI(Creature* creature) : ScriptedAI(creature) {}
- uint32 DespawnTimer;
- bool Despawn;
-
- void Reset()
+ void Reset() OVERRIDE
{
- Despawn = false;
- DespawnTimer = 0;
me->setFaction(35);
DoCast(me, SPELL_KNEEL, true); // Little Hack for kneel - Thanks Illy :P
}
- void MoveInLineOfSight(Unit* /*who*/){}
+ void MoveInLineOfSight(Unit* /*who*/)OVERRIDE {}
+
- void SpellHit(Unit* /*pCaster*/, const SpellInfo* pSpell)
+ void SpellHit(Unit* /*caster*/, const SpellInfo* spell) OVERRIDE
{
- if (pSpell->Id == SPELL_FREE_RAGECLAW)
+ if (spell->Id == SPELL_FREE_RAGECLAW)
{
me->RemoveAurasDueToSpell(SPELL_LEFT_CHAIN);
-
me->RemoveAurasDueToSpell(SPELL_RIGHT_CHAIN);
-
me->RemoveAurasDueToSpell(SPELL_KNEEL);
-
me->setFaction(me->GetCreatureTemplate()->faction_H);
-
DoCast(me, SPELL_UNSHACKLED, true);
- me->MonsterSay(SAY_RAGECLAW, LANG_UNIVERSAL, 0);
+ Talk(SAY_RAGECLAW);
me->GetMotionMaster()->MoveRandom(10);
-
- DespawnTimer = 10000;
- Despawn = true;
+ me->DespawnOrUnsummon(10000);
}
}
-
- void UpdateAI(uint32 uiDiff)
- {
- if (UpdateVictim())
- {
- DoMeleeAttackIfReady();
- return;
- }
-
- if (!Despawn)
- return;
-
- if (DespawnTimer <= uiDiff)
- me->DisappearAndDie();
- else DespawnTimer -= uiDiff;
- }
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_captured_rageclawAI(creature);
}
};
/*####
-## npc_gymer
-####*/
-
-#define GOSSIP_ITEM_G "I'm ready, Gymer. Let's go!"
-
-enum eGymer
-{
- QUEST_STORM_KING_VENGEANCE = 12919,
- SPELL_GYMER = 55568
-};
-
-class npc_gymer : public CreatureScript
-{
-public:
- npc_gymer() : CreatureScript("npc_gymer") { }
-
- bool OnGossipHello(Player* player, Creature* creature)
- {
- if (creature->isQuestGiver())
- player->PrepareQuestMenu(creature->GetGUID());
-
- player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
-
- if (player->GetQuestStatus(QUEST_STORM_KING_VENGEANCE) == QUEST_STATUS_INCOMPLETE)
- {
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_G, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
- player->SEND_GOSSIP_MENU(13640, creature->GetGUID());
- }
-
- return true;
- }
-
- bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
- {
- player->PlayerTalkClass->ClearMenus();
- if (action == GOSSIP_ACTION_INFO_DEF+1)
- {
- player->CLOSE_GOSSIP_MENU();
- player->CastSpell(player, SPELL_GYMER, true);
- }
-
- return true;
- }
-};
-
-/*####
## npc_gurgthock
####*/
-enum eGurgthock
+enum Gurgthock
{
QUEST_AMPHITHEATER_ANGUISH_TUSKARRMAGEDDON = 12935,
QUEST_AMPHITHEATER_ANGUISH_KORRAK_BLOODRAGER = 12936,
@@ -281,10 +207,10 @@ enum eGurgthock
SPELL_BLAST_OF_AIR = 55912, // air
SPELL_MAGMA_WAVE = 55916, // fire
- SPELL_ORB_OF_WATER = 55888, // fiend of water spell
- SPELL_ORB_OF_STORMS = 55882, // fiend of air spell
- SPELL_BOULDER = 55886, // fiend of earth spell
- SPELL_ORB_OF_FLAME = 55872, // fiend of fire spell
+ SPELL_ORB_OF_WATER = 55888, // fiend of water spell
+ SPELL_ORB_OF_STORMS = 55882, // fiend of air spell
+ SPELL_BOULDER = 55886, // fiend of earth spell
+ SPELL_ORB_OF_FLAME = 55872, // fiend of fire spell
};
struct BossAndAdd
@@ -339,21 +265,10 @@ public:
{
npc_gurgthockAI(Creature* creature) : ScriptedAI(creature) {}
- uint64 SummonGUID;
- uint64 uiPlayerGUID;
-
- uint32 uiTimer;
- uint32 uiPhase;
- uint32 uiRemoveFlagTimer;
- uint32 uiQuest;
- uint8 uiBossRandom;
-
- bool bRemoveFlag;
-
- void Reset()
+ void Reset() OVERRIDE
{
- SummonGUID = 0;
- uiPlayerGUID = 0;
+ _summonGUID = 0;
+ _playerGUID = 0;
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
uiTimer = 0;
@@ -361,25 +276,25 @@ public:
uiQuest = 0;
uiRemoveFlagTimer = 5000;
- uiBossRandom = 0;
+ _bossRandom = 0;
- bRemoveFlag = false;
+ _removeFlag = false;
}
- void SetGUID(uint64 guid, int32 /*id*/)
+ void SetGUID(uint64 guid, int32 /*id*/) OVERRIDE
{
- uiPlayerGUID = guid;
+ _playerGUID = guid;
}
- void SetData(uint32 uiId, uint32 uiValue)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
- bRemoveFlag = true;
+ _removeFlag = true;
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
- switch (uiId)
+ switch (type)
{
case 1:
- switch (uiValue)
+ switch (data)
{
case QUEST_AMPHITHEATER_ANGUISH_TUSKARRMAGEDDON:
Talk(SAY_QUEST_ACCEPT_TUSKARRMAGEDON);
@@ -409,40 +324,40 @@ public:
}
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
- ScriptedAI::UpdateAI(uiDiff);
+ ScriptedAI::UpdateAI(diff);
- if (bRemoveFlag)
+ if (_removeFlag)
{
- if (uiRemoveFlagTimer <= uiDiff)
+ if (uiRemoveFlagTimer <= diff)
{
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
- bRemoveFlag = false;
+ _removeFlag = false;
uiRemoveFlagTimer = 10000;
- } else uiRemoveFlagTimer -= uiDiff;
+ } else uiRemoveFlagTimer -= diff;
}
if (uiPhase)
{
- Player* player = me->GetPlayer(*me, uiPlayerGUID);
+ Player* player = me->GetPlayer(*me, _playerGUID);
- if (uiTimer <= uiDiff)
+ if (uiTimer <= diff)
{
switch (uiPhase)
{
case 1:
if (Creature* summon = me->SummonCreature(NPC_ORINOKO_TUSKBREAKER, SpawnPosition[0], TEMPSUMMON_CORPSE_DESPAWN, 1000))
- SummonGUID = summon->GetGUID();
+ _summonGUID = summon->GetGUID();
uiPhase = 2;
uiTimer = 4000;
break;
case 2:
- if (Creature* summon = Unit::GetCreature(*me, SummonGUID))
+ if (Creature* summon = Unit::GetCreature(*me, _summonGUID))
summon->GetMotionMaster()->MoveJump(5776.319824f, -2981.005371f, 273.100037f, 10.0f, 20.0f);
uiPhase = 0;
- SummonGUID = 0;
+ _summonGUID = 0;
break;
case 3:
Talk(SAY_QUEST_ACCEPT_KORRAK_2);
@@ -451,7 +366,7 @@ public:
break;
case 4:
if (Creature* summon = me->SummonCreature(NPC_KORRAK_BLOODRAGER, SpawnPosition[0], TEMPSUMMON_CORPSE_DESPAWN, 1000))
- SummonGUID = summon->GetGUID();
+ _summonGUID = summon->GetGUID();
uiTimer = 3000;
uiPhase = 0;
break;
@@ -521,18 +436,31 @@ public:
uiPhase = 14;
break;
case 14:
- uiBossRandom = urand(0, 3);
- if (Creature* creature = me->SummonCreature(Boss[uiBossRandom].uiBoss, SpawnPosition[2], TEMPSUMMON_CORPSE_DESPAWN, 1000))
- creature->AI()->SetData(1, uiBossRandom);
+ _bossRandom = urand(0, 3);
+ if (Creature* creature = me->SummonCreature(Boss[_bossRandom].uiBoss, SpawnPosition[2], TEMPSUMMON_CORPSE_DESPAWN, 1000))
+ creature->AI()->SetData(1, _bossRandom);
uiPhase = 0;
break;
}
- }else uiTimer -= uiDiff;
+ }
+ else uiTimer -= diff;
}
}
+
+ private:
+ bool _removeFlag;
+ uint8 _bossRandom;
+ uint64 _summonGUID;
+ uint64 _playerGUID;
+
+ uint32 uiTimer;
+ uint32 uiPhase;
+ uint32 uiRemoveFlagTimer;
+ uint32 uiQuest;
+
};
- bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE
{
switch (quest->GetQuestId())
{
@@ -559,7 +487,7 @@ public:
return false;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_gurgthockAI(creature);
}
@@ -569,15 +497,15 @@ public:
## npc_orinoko_tuskbreaker
####*/
-enum eOrinokoTuskbreaker
+enum OrinokoTuskbreaker
{
- SPELL_BATTLE_SHOUT = 32064,
- SPELL_FISHY_SCENT = 55937,
- SPELL_IMPALE = 55929,
- SPELL_SUMMON_WHISKER = 55946,
+ NPC_WHISKER = 30113,
+ NPC_HUNGRY_PENGUIN = 30110,
- NPC_WHISKER = 30113,
- NPC_HUNGRY_PENGUIN = 30110
+ SPELL_BATTLE_SHOUT = 32064,
+ SPELL_FISHY_SCENT = 55937,
+ SPELL_IMPALE = 55929,
+ SPELL_SUMMON_WHISKER = 55946
};
class npc_orinoko_tuskbreaker : public CreatureScript
@@ -593,34 +521,24 @@ public:
me->SetReactState(REACT_PASSIVE);
}
- bool bSummoned;
- bool bBattleShout;
- bool bFishyScent;
-
- uint32 uiBattleShoutTimer;
- uint32 uiFishyScentTimer;
-
- uint64 AffectedGUID;
- uint64 uiWhisker;
-
- void Reset()
+ void Reset() OVERRIDE
{
- bSummoned = false;
- bBattleShout = false;
- bFishyScent = false;
+ _summoned = false;
+ _battleShout = false;
+ _fishyScent = false;
uiBattleShoutTimer = 0;
uiFishyScentTimer = 20000;
- uiWhisker = 0;
- AffectedGUID = 0;
+ _whiskerGUID = 0;
+ _affectedGUID = 0;
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
- if (Creature* pWhisker = me->GetCreature(*me, uiWhisker))
- pWhisker->RemoveFromWorld();
+ if (Creature* whisker = me->GetCreature(*me, _whiskerGUID))
+ whisker->RemoveFromWorld();
}
- void MovementInform(uint32 type, uint32 /*pointId*/)
+ void MovementInform(uint32 type, uint32 /*pointId*/) OVERRIDE
{
if (type != EFFECT_MOTION_TYPE)
return;
@@ -631,75 +549,84 @@ public:
uiBattleShoutTimer = 7000;
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
DoCast(who, SPELL_IMPALE);
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
- if (!bBattleShout && uiBattleShoutTimer <= uiDiff)
+ if (!_battleShout && uiBattleShoutTimer <= diff)
{
DoCast(me, SPELL_BATTLE_SHOUT);
- bBattleShout = true;
- } else uiBattleShoutTimer -= uiDiff;
+ _battleShout = true;
+ } else uiBattleShoutTimer -= diff;
- if (uiFishyScentTimer <= uiDiff)
+ if (uiFishyScentTimer <= diff)
{
- if (Unit* pAffected = SelectTarget(SELECT_TARGET_RANDOM, 0))
+ if (Unit* affected = SelectTarget(SELECT_TARGET_RANDOM, 0))
{
- DoCast(pAffected, SPELL_FISHY_SCENT);
- AffectedGUID = pAffected->GetGUID();
+ DoCast(affected, SPELL_FISHY_SCENT);
+ _affectedGUID = affected->GetGUID();
}
uiFishyScentTimer = 20000;
- } else uiFishyScentTimer -= uiDiff;
+ } else uiFishyScentTimer -= diff;
- if (!bSummoned && !HealthAbovePct(50))
+ if (!_summoned && !HealthAbovePct(50))
{
Talk(SAY_CALL_FOR_HELP);
- //DoCast(me->getVictim(), SPELL_SUMMON_WHISKER); petai is not working correctly???
+ //DoCastVictim(SPELL_SUMMON_WHISKER); petai is not working correctly???
- if (Creature* pWhisker = me->SummonCreature(NPC_WHISKER, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 0))
- uiWhisker = pWhisker->GetGUID();
- bSummoned = true;
+ if (Creature* whisker = me->SummonCreature(NPC_WHISKER, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 0))
+ _whiskerGUID = whisker->GetGUID();
+ _summoned = true;
}
DoMeleeAttackIfReady();
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
switch (summon->GetEntry())
{
case NPC_WHISKER:
- summon->AI()->AttackStart(me->getVictim());
+ summon->AI()->AttackStart(me->GetVictim());
break;
case NPC_HUNGRY_PENGUIN:
- if (Unit* pAffected = Unit::GetUnit(*me, AffectedGUID))
+ if (Unit* affected = Unit::GetUnit(*me, _affectedGUID))
{
- if (pAffected->isAlive())
- summon->AI()->AttackStart(pAffected);
+ if (affected->IsAlive())
+ summon->AI()->AttackStart(affected);
}
break;
}
}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
- if (uiWhisker)
- if (Creature* pWhisker = me->GetCreature(*me, uiWhisker))
- pWhisker->RemoveFromWorld();
+ if (_whiskerGUID)
+ if (Creature* whisker = me->GetCreature(*me, _whiskerGUID))
+ whisker->RemoveFromWorld();
if (killer->GetTypeId() == TYPEID_PLAYER)
killer->GetCharmerOrOwnerPlayerOrPlayerItself()->GroupEventHappens(QUEST_AMPHITHEATER_ANGUISH_TUSKARRMAGEDDON, killer);
}
+
+ private:
+ bool _summoned;
+ bool _battleShout;
+ bool _fishyScent;
+ uint32 uiBattleShoutTimer;
+ uint32 uiFishyScentTimer;
+ uint64 _affectedGUID;
+ uint64 _whiskerGUID;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_orinoko_tuskbreakerAI(creature);
}
@@ -709,12 +636,12 @@ public:
## npc_korrak_bloodrager
####*/
-enum eKorrakBloodrager
+enum KorrakBloodrager
{
- SPELL_GROW = 55948,
- SPELL_CHARGE = 24193,
- SPELL_UPPERCUT = 30471,
- SPELL_ENRAGE = 42745
+ SPELL_GROW = 55948,
+ SPELL_CHARGE = 24193,
+ SPELL_UPPERCUT = 30471,
+ SPELL_ENRAGE = 42745
};
class npc_korrak_bloodrager : public CreatureScript
@@ -730,21 +657,17 @@ public:
SetDespawnAtEnd(false);
}
- uint32 uiChargeTimer;
- uint32 uiUppercutTimer;
-
- bool bEnrage;
-
- void Reset()
+ void Reset() OVERRIDE
{
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
me->SetReactState(REACT_PASSIVE);
- uiChargeTimer = 15000;
- uiUppercutTimer = 12000;
- bEnrage = false;
+ _enrage = false;
+ _chargeTimer = 15000;
+ _uppercutTimer = 12000;
+
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
switch (waypointId)
{
@@ -756,48 +679,52 @@ public:
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
DoCast(me, SPELL_GROW);
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
- npc_escortAI::UpdateAI(uiDiff);
+ npc_escortAI::UpdateAI(diff);
if (!UpdateVictim())
return;
- if (uiUppercutTimer <= uiDiff)
+ if (_uppercutTimer <= diff)
{
if (Unit* target = SelectTarget(SELECT_TARGET_NEAREST, 0))
DoCast(target, SPELL_UPPERCUT);
- uiUppercutTimer = 12000;
- } else uiUppercutTimer -= uiDiff;
+ _uppercutTimer = 12000;
+ } else _uppercutTimer -= diff;
- if (uiChargeTimer <= uiDiff)
+ if (_chargeTimer <= diff)
{
if (Unit* target = SelectTarget(SELECT_TARGET_FARTHEST, 0))
DoCast(target, SPELL_CHARGE);
- uiChargeTimer = 15000;
- } else uiChargeTimer -= uiDiff;
+ _chargeTimer = 15000;
+ } else _chargeTimer -= diff;
- if (!bEnrage && !HealthAbovePct(20))
+ if (!_enrage && !HealthAbovePct(20))
{
DoCast(me, SPELL_ENRAGE);
- bEnrage = true;
+ _enrage = true;
}
DoMeleeAttackIfReady();
}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
if (Player* player = killer->GetCharmerOrOwnerPlayerOrPlayerItself())
player->GroupEventHappens(QUEST_AMPHITHEATER_ANGUISH_KORRAK_BLOODRAGER, killer);
}
+ private:
+ bool _enrage;
+ uint32 _chargeTimer;
+ uint32 _uppercutTimer;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_korrak_bloodragerAI(creature);
}
@@ -807,11 +734,11 @@ public:
## npc_yggdras
####*/
-enum eYggdras
+enum Yggdras
{
- SPELL_CLEAVE = 40504,
- SPELL_CORRODE_FLESH = 57076,
- SPELL_JORMUNGAR_SPAWN = 55859
+ SPELL_CLEAVE = 40504,
+ SPELL_CORRODE_FLESH = 57076,
+ SPELL_JORMUNGAR_SPAWN = 55859
};
class npc_yggdras : public CreatureScript
@@ -823,21 +750,18 @@ public:
{
npc_yggdrasAI(Creature* creature) : ScriptedAI(creature) {}
- uint32 uiCleaveTimer;
- uint32 uiCorrodeFleshTimer;
-
- void Reset()
+ void Reset() OVERRIDE
{
- uiCleaveTimer = 9000;
- uiCorrodeFleshTimer = 6000;
+ _cleaveTimer = 9000;
+ _corrodeFleshTimer = 6000;
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
- if (me->getVictim()->GetPositionZ() >= 286.276f)
+ if (me->GetVictim()->GetPositionZ() >= 286.276f)
{
std::list<HostileReference*> t_list = me->getThreatManager().getThreatList();
for (std::list<HostileReference*>::const_iterator itr = t_list.begin(); itr!= t_list.end(); ++itr)
@@ -855,22 +779,22 @@ public:
}
}
- if (uiCleaveTimer <= uiDiff)
+ if (_cleaveTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_CLEAVE);
- uiCleaveTimer = 9000;
- } else uiCleaveTimer -= uiDiff;
+ DoCastVictim(SPELL_CLEAVE);
+ _cleaveTimer = 9000;
+ } else _cleaveTimer -= diff;
- if (uiCorrodeFleshTimer <= uiDiff)
+ if (_corrodeFleshTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_CORRODE_FLESH);
- uiCorrodeFleshTimer = 6000;
- } else uiCorrodeFleshTimer -= uiDiff;
+ DoCastVictim(SPELL_CORRODE_FLESH);
+ _corrodeFleshTimer = 6000;
+ } else _corrodeFleshTimer -= diff;
DoMeleeAttackIfReady();
}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
if (Unit* summoner = me->ToTempSummon()->GetSummoner())
{
@@ -887,9 +811,12 @@ public:
for (uint8 i = 0; i < 3; ++i)
DoCast(killer, SPELL_JORMUNGAR_SPAWN, true);
}
+ private:
+ uint32 _cleaveTimer;
+ uint32 _corrodeFleshTimer;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_yggdrasAI(creature);
}
@@ -899,13 +826,13 @@ public:
## npc_stinkbeard
####*/
-enum eStinkbeard
+enum Stinkbeard
{
- SPELL_ENRAGE_STINKBEARD = 50420,
- SPELL_KNOCK_AWAY = 31389,
- SPELL_STINKY_BEARD = 55867,
- SPELL_THUNDERBLADE = 55866,
- SPELL_THUNDERCLAP = 15588
+ SPELL_ENRAGE_STINKBEARD = 50420,
+ SPELL_KNOCK_AWAY = 31389,
+ SPELL_STINKY_BEARD = 55867,
+ SPELL_THUNDERBLADE = 55866,
+ SPELL_THUNDERCLAP = 15588
};
class npc_stinkbeard : public CreatureScript
@@ -923,22 +850,16 @@ public:
SetDespawnAtEnd(false);
}
- uint32 uiKnockAwayTimer;
- uint32 uiStinkyBeardTimer;
-
- bool bEnrage;
- bool bThunderClap;
-
- void Reset()
+ void Reset() OVERRIDE
{
me->AddAura(SPELL_THUNDERBLADE, me);
uiKnockAwayTimer = 10000;
uiStinkyBeardTimer = 15000;
- bEnrage = false;
- bThunderClap = false;
+ _enrage = false;
+ _thunderClap = false;
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
switch (waypointId)
{
@@ -950,14 +871,14 @@ public:
}
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
npc_escortAI::UpdateAI(uiDiff);
if (!UpdateVictim())
return;
- if (Unit* victim = me->getVictim())
+ if (Unit* victim = me->GetVictim())
{
if (victim->GetPositionZ() >= 286.276f)
{
@@ -978,17 +899,17 @@ public:
}
}
- if (bThunderClap && !HealthAbovePct(10))
+ if (_thunderClap && !HealthAbovePct(10))
{
DoCastAOE(SPELL_THUNDERCLAP);
- bThunderClap = true;
+ _thunderClap = true;
}
if (uiKnockAwayTimer <= uiDiff)
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
{
- if (target && target->isAlive())
+ if (target && target->IsAlive())
DoCast(target, SPELL_KNOCK_AWAY);
}
uiKnockAwayTimer = 10000;
@@ -998,21 +919,21 @@ public:
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
{
- if (target && target->isAlive())
+ if (target && target->IsAlive())
DoCast(target, SPELL_STINKY_BEARD);
}
uiStinkyBeardTimer = 15000;
} else uiStinkyBeardTimer -= uiDiff;
- if (!bEnrage && !HealthAbovePct(20))
+ if (!_enrage && !HealthAbovePct(20))
{
DoCast(me, SPELL_ENRAGE_STINKBEARD);
- bEnrage = true;
+ _enrage = true;
}
DoMeleeAttackIfReady();
}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
if (Player* player = killer->GetCharmerOrOwnerPlayerOrPlayerItself())
player->GetCharmerOrOwnerPlayerOrPlayerItself()->GroupEventHappens(QUEST_AMPHITHEATER_ANGUISH_MAGNATAUR, killer);
@@ -1020,9 +941,14 @@ public:
std::string sText = ("And with AUTHORITY, " + std::string(killer->GetName()) + " dominates the magnataur lord! Stinkbeard's clan is gonna miss him back home in the Dragonblight!");
me->MonsterYell(sText.c_str(), LANG_UNIVERSAL, 0);
}
+ private:
+ bool _enrage;
+ bool _thunderClap;
+ uint32 uiKnockAwayTimer;
+ uint32 uiStinkyBeardTimer;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_stinkbeardAI(creature);
}
@@ -1050,7 +976,7 @@ public:
bool bAddAttack;
- void Reset()
+ void Reset() OVERRIDE
{
uiBossRandom = 0;
uiSpellInfo = 0;
@@ -1059,7 +985,7 @@ public:
bAddAttack = false;
}
- void SetData(uint32 uiData, uint32 uiValue)
+ void SetData(uint32 uiData, uint32 uiValue) OVERRIDE
{
if (uiData == 1)
{
@@ -1086,7 +1012,7 @@ public:
}
- void EnterCombat(Unit* unit)
+ void EnterCombat(Unit* unit) OVERRIDE
{
if (!SummonList.empty())
for (std::list<uint64>::const_iterator itr = SummonList.begin(); itr != SummonList.end(); ++itr)
@@ -1099,12 +1025,12 @@ public:
}
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (!UpdateVictim())
return;
- if (me->getVictim()->GetPositionZ() >= 286.276f)
+ if (me->GetVictim()->GetPositionZ() >= 286.276f)
{
std::list<HostileReference*> t_list = me->getThreatManager().getThreatList();
for (std::list<HostileReference*>::const_iterator itr = t_list.begin(); itr!= t_list.end(); ++itr)
@@ -1139,8 +1065,8 @@ public:
if (temp->GetPositionZ() >= 287.00f)
continue;
- if (temp->getVictim())
- temp->GetMotionMaster()->MoveChase(temp->getVictim());
+ if (temp->GetVictim())
+ temp->GetMotionMaster()->MoveChase(temp->GetVictim());
}
}
@@ -1150,7 +1076,7 @@ public:
DoMeleeAttackIfReady();
}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
if (!SummonList.empty())
for (std::list<uint64>::const_iterator itr = SummonList.begin(); itr != SummonList.end(); ++itr)
@@ -1167,7 +1093,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_elemental_lordAI(creature);
}
@@ -1186,19 +1112,16 @@ public:
{
npc_fiend_elementalAI(Creature* creature) : ScriptedAI(creature) {}
- uint32 uiMissleTimer;
- uint32 uiSpell;
-
- void Reset()
+ void Reset() OVERRIDE
{
if (me->GetPositionZ() >= 287.0f)
me->GetMotionMaster()->MoveIdle();
- uiSpell = 0;
- uiMissleTimer = urand(2000, 7000);
+ _spell = 0;
+ _missleTimer = urand(2000, 7000);
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (!who)
return;
@@ -1206,33 +1129,37 @@ public:
AttackStartNoMove(who);
}
- void SetData(uint32 uiData, uint32 uiValue)
+ void SetData(uint32 Data, uint32 Value) OVERRIDE
{
- if (uiData == 1)
- uiSpell = Boss[uiValue].uiAddSpell;
+ if (Data == 1)
+ _spell = Boss[Value].uiAddSpell;
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
if (me->GetPositionZ() >= 287.0f)
{
- if (uiMissleTimer <= uiDiff)
+ if (_missleTimer <= diff)
{
- if (uiSpell) // Sometimes it is 0, why?
- DoCast(me, uiSpell); // this spell (what spell) is not supported ... YET!
- uiMissleTimer = urand(2000, 7000);
- } else uiMissleTimer -= uiDiff;
+ if (_spell) // Sometimes it is 0, why?
+ DoCast(me, _spell); // this spell (what spell) is not supported ... YET!
+ _missleTimer = urand(2000, 7000);
+ } else _missleTimer -= diff;
}
DoMeleeAttackIfReady();
}
+
+ private:
+ uint32 _missleTimer;
+ uint32 _spell;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_fiend_elementalAI(creature);
}
@@ -1251,22 +1178,22 @@ public:
{
npc_released_offspring_harkoaAI(Creature* creature) : ScriptedAI(creature) {}
- void Reset()
+ void Reset() OVERRIDE
{
float x, y, z;
me->GetClosePoint(x, y, z, me->GetObjectSize() / 3, 25.0f);
me->GetMotionMaster()->MovePoint(0, x, y, z);
}
- void MovementInform(uint32 uiType, uint32 /*uiId*/)
+ void MovementInform(uint32 Type, uint32 /*uiId*/) OVERRIDE
{
- if (uiType != POINT_MOTION_TYPE)
+ if (Type != POINT_MOTION_TYPE)
return;
- me->DisappearAndDie();
+ me->DespawnOrUnsummon();
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_released_offspring_harkoaAI(creature);
}
@@ -1276,16 +1203,17 @@ public:
## npc_crusade_recruit
######*/
-enum eCrusade_recruit
+enum CrusadeRecruit
{
- SPELL_QUEST_CREDIT = 50633,
-
- QUEST_TROLL_PATROL_INTESTINAL_FORTITUDE = 12509,
-
- GOSSIP_CRUSADE_TEXT = 13069
+ SPELL_QUEST_CREDIT = 50633,
+ QUEST_TROLL_PATROL_INTESTINAL_FORTITUDE = 12509
};
-#define GOSSIP_ITEM_1 "Get out there and make those Scourge wish they were never reborn!"
+enum CrusadeRecruitEvents
+{
+ EVENT_RECRUIT_1 = 1,
+ EVENT_RECRUIT_2 = 2
+};
class npc_crusade_recruit : public CreatureScript
{
@@ -1296,87 +1224,57 @@ public:
{
npc_crusade_recruitAI(Creature* creature) : ScriptedAI(creature) {}
- uint8 m_uiPhase; //The current phase we are in
- uint32 m_uiTimer; //Timer until phase transition
- float m_heading; //Store creature heading
-
- void Reset()
+ void Reset() OVERRIDE
{
- m_uiTimer = 0;
- m_uiPhase = 0;
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_COWER);
- m_heading = me->GetOrientation();
+ _heading = me->GetOrientation();
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
- if (m_uiPhase)
+ _events.Update(diff);
+
+ while (uint32 eventId = _events.ExecuteEvent())
{
- if (m_uiTimer <= uiDiff)
+ switch (eventId)
{
- switch (m_uiPhase)
- {
- case 1:
- // say random text
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
- Talk(SAY_RECRUIT);
- m_uiTimer = 3000;
- m_uiPhase = 2;
- break;
- case 2:
- // walk forward
- me->SetWalk(true);
- me->GetMotionMaster()->MovePoint(0, me->GetPositionX() + (cos(m_heading) * 10), me->GetPositionY() + (sin(m_heading) * 10), me->GetPositionZ());
- m_uiTimer = 5000;
- m_uiPhase = 3;
- break;
- case 3:
- // despawn
- me->DisappearAndDie();
- m_uiTimer = 0;
- m_uiPhase = 0;
- break;
- }
+ case EVENT_RECRUIT_1:
+ me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
+ Talk(SAY_RECRUIT);
+ _events.ScheduleEvent(EVENT_RECRUIT_2, 3000);
+ break;
+ case EVENT_RECRUIT_2:
+ me->SetWalk(true);
+ me->GetMotionMaster()->MovePoint(0, me->GetPositionX() + (cos(_heading) * 10), me->GetPositionY() + (sin(_heading) * 10), me->GetPositionZ());
+ me->DespawnOrUnsummon(5000);
+ break;
+ default:
+ break;
}
- else
- m_uiTimer -= uiDiff;
}
- ScriptedAI::UpdateAI(uiDiff);
if (!UpdateVictim())
return;
}
- };
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new npc_crusade_recruitAI(creature);
- }
- bool OnGossipHello(Player* player, Creature* creature)
- {
- if (player->GetQuestStatus(QUEST_TROLL_PATROL_INTESTINAL_FORTITUDE) == QUEST_STATUS_INCOMPLETE)
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
-
- player->SEND_GOSSIP_MENU(GOSSIP_CRUSADE_TEXT, creature->GetGUID());
- return true;
- }
-
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
- {
- player->PlayerTalkClass->ClearMenus();
- if (action == GOSSIP_ACTION_INFO_DEF +1)
+ void sGossipSelect(Player* player, uint32 /*sender*/, uint32 /*action*/) OVERRIDE
{
+ _events.ScheduleEvent(EVENT_RECRUIT_1, 100);
player->CLOSE_GOSSIP_MENU();
- creature->CastSpell(player, SPELL_QUEST_CREDIT, true);
- CAST_AI(npc_crusade_recruit::npc_crusade_recruitAI, (creature->AI()))->m_uiPhase = 1;
- creature->SetInFront(player);
- creature->SendMovementFlagUpdate();
+ me->CastSpell(player, SPELL_QUEST_CREDIT, true);
+ me->SetFacingToObject(player);
}
- return true;
+ private:
+ EventMap _events;
+ float _heading; // Store creature heading
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_crusade_recruitAI(creature);
}
};
@@ -1385,10 +1283,11 @@ public:
## go_scourge_enclosure
######*/
-enum eScourgeEnclosure
+enum ScourgeEnclosure
{
- QUEST_OUR_ONLY_HOPE = 12916,
- NPC_GYMER_DUMMY = 29928 //from quest template
+ QUEST_OUR_ONLY_HOPE = 12916,
+ NPC_GYMER_DUMMY = 29928, // From quest template
+ SPELL_GYMER_LOCK_EXPLOSION = 55529
};
class go_scourge_enclosure : public GameObjectScript
@@ -1396,36 +1295,566 @@ class go_scourge_enclosure : public GameObjectScript
public:
go_scourge_enclosure() : GameObjectScript("go_scourge_enclosure") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
go->UseDoorOrButton();
if (player->GetQuestStatus(QUEST_OUR_ONLY_HOPE) == QUEST_STATUS_INCOMPLETE)
{
- Creature* pGymerDummy = go->FindNearestCreature(NPC_GYMER_DUMMY, 20.0f);
- if (pGymerDummy)
+ Creature* gymerDummy = go->FindNearestCreature(NPC_GYMER_DUMMY, 20.0f);
+ if (gymerDummy)
+ {
+ player->KilledMonsterCredit(gymerDummy->GetEntry(), gymerDummy->GetGUID());
+ gymerDummy->CastSpell(gymerDummy, SPELL_GYMER_LOCK_EXPLOSION, true);
+ gymerDummy->DespawnOrUnsummon();
+ }
+ }
+ return true;
+ }
+};
+
+/*######
+## Quest: Troll Patrol: The Alchemist's Apprentice
+######*/
+
+enum Finklestein
+{
+ // Creature
+ NPC_FINKLESTEIN = 28205,
+ // Item
+ ITEM_KNOTROOT = 38338,
+ ITEM_PICKLED_EAGLE_EGG = 38341,
+ ITEM_SPECKLED_GUANO = 38337,
+ ITEM_WITHERED_BATWING = 38339,
+ ITEM_SEASONED_SLIDER_CIDER = 38381,
+ ITEM_PULVERIZED_GARGOYLE_TEETH = 38384,
+ ITEM_MUDDY_MIRE_MAGGOT = 38386,
+ ITEM_SPIKY_SPIDER_EGG = 38393,
+ ITEM_HAIRY_HERRING_HEAD = 38396,
+ ITEM_PUTRID_PIRATE_PERSPIRATION = 38397,
+ ITEM_ICECROWN_BOTTLED_WATER = 38398,
+ ITEM_WASPS_WINGS = 38369,
+ ITEM_PRISMATIC_MOJO = 38343,
+ ITEM_RAPTOR_CLAW = 38370,
+ ITEM_AMBERSEED = 38340,
+ ITEM_SHRUNKEN_DRAGONS_CLAW = 38344,
+ ITEM_CHILLED_SERPENT_MUCUS = 38346,
+ ITEM_CRYSTALLIZED_HOGSNOT = 38336,
+ ITEM_CRUSHED_BASILISK_CRYSTALS = 38379,
+ ITEM_TROLLBANE = 38342,
+ ITEM_FROZEN_SPIDER_ICHOR = 38345,
+ // Quest
+ QUEST_THE_ALCHEMIST_APPRENTICE_DAILY = 12541,
+ // Spells
+ SPELL_ALCHEMIST_APPRENTICE_INVISBUFF = 51216,
+ SPELL_RANDOM_INGREDIENT_EASY_AURA = 51015,
+ SPELL_RANDOM_INGREDIENT_MEDIUM_AURA = 51154,
+ SPELL_RANDOM_INGREDIENT_HARD_AURA = 51157,
+ SPELL_RANDOM_INGREDIENT_EASY = 51134,
+ SPELL_RANDOM_INGREDIENT_MEDIUM = 51105,
+ SPELL_RANDOM_INGREDIENT_HARD = 51107,
+ SPELL_NEXT_INGREDIENT = 51049,
+ SPELL_POT_CHECK = 51046,
+ SPELL_THROW_INGREDIENT = 51025,
+ SPELL_KILL_CREDIT = 51111,
+ // Spell Fetch Easy
+ SPELL_FETCH_KNOTROOT = 51018,
+ SPELL_FETCH_PICKLED_EAGLE_EGG = 51055,
+ SPELL_FETCH_SPECKLED_GUANO = 51057,
+ SPELL_FETCH_WITHERED_BATWING = 51059,
+ SPELL_FETCH_SEASONED_SLIDER_CIDER = 51062,
+ SPELL_FETCH_PULVERIZED_GARGOYLE_TEETH = 51064,
+ SPELL_FETCH_MUDDY_MIRE_MAGGOT = 51067,
+ SPELL_FETCH_SPIKY_SPIDER_EGG = 51069,
+ SPELL_FETCH_HAIRY_HERRING_HEAD = 51072,
+ SPELL_FETCH_PUTRID_PIRATE_PERSPIRATION = 51077,
+ SPELL_FETCH_ICECROWN_BOTTLED_WATER = 51079,
+ // Spell Have Easy
+ SPELL_HAVE_KNOTROOT = 51047,
+ SPELL_HAVE_PICKLED_EAGLE_EGG = 51056,
+ SPELL_HAVE_SPECKLED_GUANO = 51058,
+ SPELL_HAVE_WITHERED_BATWING = 51060,
+ SPELL_HAVE_SEASONED_SLIDER_CIDER = 51063,
+ SPELL_HAVE_PULVERIZED_GARGOYLE_TEETH = 51065,
+ SPELL_HAVE_MUDDY_MIRE_MAGGOT = 51068,
+ SPELL_HAVE_SPIKY_SPIDER_EGG = 51070,
+ SPELL_HAVE_HAIRY_HERRING_HEAD = 51075,
+ SPELL_HAVE_PUTRID_PIRATE_PERSPIRATION = 51078,
+ SPELL_HAVE_ICECROWN_BOTTLED_WATER = 51080,
+ // Spell Fetch Medium
+ SPELL_FETCH_WASPS_WINGS = 51081,
+ SPELL_FETCH_PRISMATIC_MOJO = 51083,
+ SPELL_FETCH_RAPTOR_CLAW = 51085,
+ SPELL_FETCH_AMBERSEED = 51087,
+ SPELL_FETCH_SHRUNKEN_DRAGONS_CLAW = 51091,
+ // Spell Have Medium
+ SPELL_HAVE_WASPS_WINGS = 51082,
+ SPELL_HAVE_PRISMATIC_MOJO = 51084,
+ SPELL_HAVE_RAPTOR_CLAW = 51086,
+ SPELL_HAVE_AMBERSEED = 51088,
+ SPELL_HAVE_SHRUNKEN_DRAGONS_CLAW = 51092,
+ // Spell Fetch Hard
+ SPELL_FETCH_CHILLED_SERPENT_MUCUS = 51093,
+ SPELL_FETCH_CRYSTALLIZED_HOGSNOT = 51095,
+ SPELL_FETCH_CRUSHED_BASILISK_CRYSTALS = 51097,
+ SPELL_FETCH_TROLLBANE = 51100,
+ SPELL_FETCH_FROZEN_SPIDER_ICHOR = 51102,
+ // Spell Have Hard
+ SPELL_HAVE_CHILLED_SERPENT_MUCUS = 51094,
+ SPELL_HAVE_CRYSTALLIZED_HOGSNOT = 51096,
+ SPELL_HAVE_CRUSHED_BASILISK_CRYSTALS = 51098,
+ SPELL_HAVE_TROLLBANE = 51101,
+ SPELL_HAVE_FROZEN_SPIDER_ICHOR = 51104,
+ // Text
+ SAY_EASY_123 = 0,
+ SAY_MEDIUM_4 = 1,
+ SAY_MEDIUM_5 = 2,
+ SAY_HARD_6 = 3,
+ SAY_RUINED = 4,
+ // Text Easy
+ SAY_KNOTROOT = 5,
+ SAY_PICKLED_EAGLE_EGG = 6,
+ SAY_SPECKLED_GUANO = 7,
+ SAY_WITHERED_BATWING = 8,
+ SAY_SEASONED_SLIDER_CIDER = 9,
+ SAY_PULVERIZED_GARGOYLE_TEETH = 10,
+ SAY_MUDDY_MIRE_MAGGOT = 11,
+ SAY_SPIKY_SPIDER_EGG = 12,
+ SAY_HAIRY_HERRING_HEAD = 13,
+ SAY_PUTRID_PIRATE_PERSPIRATION = 14,
+ SAY_ICECROWN_BOTTLED_WATER = 15,
+ // Text Medium
+ SAY_WASPS_WINGS = 16,
+ SAY_PRISMATIC_MOJO = 17,
+ SAY_RAPTOR_CLAW = 18,
+ SAY_AMBERSEED = 19,
+ SAY_SHRUNKEN_DRAGONS_CLAW = 20,
+ // Text Hard
+ SAY_CHILLED_SERPENT_MUCUS = 21,
+ SAY_CRYSTALLIZED_HOGSNOT = 22,
+ SAY_CRUSHED_BASILISK_CRYSTALS = 23,
+ SAY_TROLLBANE = 24,
+ SAY_FROZEN_SPIDER_ICHOR = 25
+};
+
+enum FinklesteinEvents
+{
+ EVENT_TURN_TO_POT = 1,
+ EVENT_TURN_BACK = 2,
+ EVENT_EASY_123 = 3,
+ EVENT_MEDIUM_4 = 4,
+ EVENT_MEDIUM_5 = 5,
+ EVENT_HARD_6 = 6
+};
+
+class npc_alchemist_finklestein : public CreatureScript
+{
+public:
+ npc_alchemist_finklestein() : CreatureScript("npc_alchemist_finklestein") { }
+
+ struct npc_alchemist_finklesteinAI : public ScriptedAI
+ {
+ npc_alchemist_finklesteinAI(Creature* creature) : ScriptedAI(creature) { }
+
+ void Reset() OVERRIDE
+ {
+ _events.ScheduleEvent(EVENT_TURN_TO_POT, urand(15000, 26000));
+ }
+
+ void SetData(uint32 Type, uint32 Data) OVERRIDE
+ {
+ if (Type == 1 && Data == 1)
+ switch (_getingredienttry)
+ {
+ case 2:
+ case 3:
+ _events.ScheduleEvent(EVENT_EASY_123, 100);
+ break;
+ case 4:
+ _events.ScheduleEvent(EVENT_MEDIUM_4, 100);
+ break;
+ case 5:
+ _events.ScheduleEvent(EVENT_MEDIUM_5, 100);
+ break;
+ case 6:
+ _events.ScheduleEvent(EVENT_HARD_6, 100);
+ break;
+ default:
+ break;
+ }
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
{
- player->KilledMonsterCredit(pGymerDummy->GetEntry(), pGymerDummy->GetGUID());
- pGymerDummy->CastSpell(pGymerDummy, 55529, true);
- pGymerDummy->DisappearAndDie();
+ _events.Update(diff);
+
+ while (uint32 eventId = _events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_TURN_TO_POT:
+ me->SetFacingTo(6.230825f);
+ me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_USE_STANDING_NO_SHEATHE);
+ _events.ScheduleEvent(EVENT_TURN_BACK, 11000);
+ break;
+ case EVENT_TURN_BACK:
+ me->SetFacingTo(4.886922f);
+ me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE);
+ _events.ScheduleEvent(EVENT_TURN_TO_POT, urand(25000, 41000));
+ break;
+ case EVENT_EASY_123:
+ if (Player* player = Unit::GetPlayer(*me, _playerGUID))
+ {
+ Talk(SAY_EASY_123, _playerGUID);
+ DoCast(player, SPELL_RANDOM_INGREDIENT_EASY_AURA);
+ ++_getingredienttry;
+ }
+ break;
+ case EVENT_MEDIUM_4:
+ if (Player* player = Unit::GetPlayer(*me, _playerGUID))
+ {
+ Talk(SAY_MEDIUM_4, _playerGUID);
+ DoCast(player, SPELL_RANDOM_INGREDIENT_MEDIUM_AURA);
+ ++_getingredienttry;
+ }
+ break;
+ case EVENT_MEDIUM_5:
+ if (Player* player = Unit::GetPlayer(*me, _playerGUID))
+ {
+ Talk(SAY_MEDIUM_5, _playerGUID);
+ DoCast(player, SPELL_RANDOM_INGREDIENT_MEDIUM_AURA);
+ ++_getingredienttry;
+ }
+ break;
+ case EVENT_HARD_6:
+ if (Player* player = Unit::GetPlayer(*me, _playerGUID))
+ {
+ Talk(SAY_HARD_6, _playerGUID);
+ DoCast(player, SPELL_RANDOM_INGREDIENT_HARD_AURA);
+ ++_getingredienttry;
+ }
+ break;
+ default:
+ break;
+ }
+ }
}
+
+ void sGossipSelect(Player* player, uint32 /*sender*/, uint32 /*action*/) OVERRIDE
+ {
+ player->CLOSE_GOSSIP_MENU();
+ DoCast(player, SPELL_ALCHEMIST_APPRENTICE_INVISBUFF);
+ _playerGUID = player->GetGUID();
+ _getingredienttry = 1;
+ _events.ScheduleEvent(EVENT_EASY_123, 100);
+ }
+
+ private:
+ EventMap _events;
+ uint64 _playerGUID;
+ uint8 _getingredienttry;
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_alchemist_finklesteinAI(creature);
}
+};
+
+class go_finklesteins_cauldron : public GameObjectScript
+{
+public:
+ go_finklesteins_cauldron() : GameObjectScript("go_finklesteins_cauldron") { }
+
+ bool OnGossipHello(Player* player, GameObject* /*go*/) OVERRIDE
+ {
+ player->CastSpell(player, SPELL_POT_CHECK);
return true;
}
};
+uint32 const FetchIngredients[21][4] =
+{
+ { SPELL_FETCH_KNOTROOT, SPELL_HAVE_KNOTROOT, ITEM_KNOTROOT, SAY_KNOTROOT },
+ { SPELL_FETCH_PICKLED_EAGLE_EGG, SPELL_HAVE_PICKLED_EAGLE_EGG, ITEM_PICKLED_EAGLE_EGG, SAY_PICKLED_EAGLE_EGG },
+ { SPELL_FETCH_SPECKLED_GUANO, SPELL_HAVE_SPECKLED_GUANO, ITEM_SPECKLED_GUANO, SAY_SPECKLED_GUANO },
+ { SPELL_FETCH_WITHERED_BATWING, SPELL_HAVE_WITHERED_BATWING, ITEM_WITHERED_BATWING, SAY_WITHERED_BATWING },
+ { SPELL_FETCH_SEASONED_SLIDER_CIDER, SPELL_HAVE_SEASONED_SLIDER_CIDER, ITEM_SEASONED_SLIDER_CIDER, SAY_SEASONED_SLIDER_CIDER },
+ { SPELL_FETCH_PULVERIZED_GARGOYLE_TEETH, SPELL_HAVE_PULVERIZED_GARGOYLE_TEETH, ITEM_PULVERIZED_GARGOYLE_TEETH, SAY_PULVERIZED_GARGOYLE_TEETH },
+ { SPELL_FETCH_MUDDY_MIRE_MAGGOT, SPELL_HAVE_MUDDY_MIRE_MAGGOT, ITEM_MUDDY_MIRE_MAGGOT, SAY_MUDDY_MIRE_MAGGOT },
+ { SPELL_FETCH_SPIKY_SPIDER_EGG, SPELL_HAVE_SPIKY_SPIDER_EGG, ITEM_SPIKY_SPIDER_EGG, SAY_SPIKY_SPIDER_EGG },
+ { SPELL_FETCH_HAIRY_HERRING_HEAD, SPELL_HAVE_HAIRY_HERRING_HEAD, ITEM_HAIRY_HERRING_HEAD, SAY_HAIRY_HERRING_HEAD },
+ { SPELL_FETCH_PUTRID_PIRATE_PERSPIRATION, SPELL_HAVE_PUTRID_PIRATE_PERSPIRATION, ITEM_PUTRID_PIRATE_PERSPIRATION, SAY_PUTRID_PIRATE_PERSPIRATION },
+ { SPELL_FETCH_ICECROWN_BOTTLED_WATER, SPELL_HAVE_ICECROWN_BOTTLED_WATER, ITEM_ICECROWN_BOTTLED_WATER, SAY_ICECROWN_BOTTLED_WATER },
+ { SPELL_FETCH_WASPS_WINGS, SPELL_HAVE_WASPS_WINGS, ITEM_WASPS_WINGS, SAY_WASPS_WINGS },
+ { SPELL_FETCH_PRISMATIC_MOJO, SPELL_HAVE_PRISMATIC_MOJO, ITEM_PRISMATIC_MOJO, SAY_PRISMATIC_MOJO },
+ { SPELL_FETCH_RAPTOR_CLAW, SPELL_HAVE_RAPTOR_CLAW, ITEM_RAPTOR_CLAW, SAY_RAPTOR_CLAW },
+ { SPELL_FETCH_AMBERSEED, SPELL_HAVE_AMBERSEED, ITEM_AMBERSEED, SAY_AMBERSEED },
+ { SPELL_FETCH_SHRUNKEN_DRAGONS_CLAW, SPELL_HAVE_SHRUNKEN_DRAGONS_CLAW, ITEM_SHRUNKEN_DRAGONS_CLAW, SAY_SHRUNKEN_DRAGONS_CLAW },
+ { SPELL_FETCH_CHILLED_SERPENT_MUCUS, SPELL_HAVE_CHILLED_SERPENT_MUCUS, ITEM_CHILLED_SERPENT_MUCUS, SAY_CHILLED_SERPENT_MUCUS },
+ { SPELL_FETCH_CRYSTALLIZED_HOGSNOT, SPELL_HAVE_CRYSTALLIZED_HOGSNOT, ITEM_CRYSTALLIZED_HOGSNOT, SAY_CRYSTALLIZED_HOGSNOT },
+ { SPELL_FETCH_CRUSHED_BASILISK_CRYSTALS, SPELL_HAVE_CRUSHED_BASILISK_CRYSTALS, ITEM_CRUSHED_BASILISK_CRYSTALS, SAY_CRUSHED_BASILISK_CRYSTALS },
+ { SPELL_FETCH_TROLLBANE, SPELL_HAVE_TROLLBANE, ITEM_TROLLBANE, SAY_TROLLBANE },
+ { SPELL_FETCH_FROZEN_SPIDER_ICHOR, SPELL_HAVE_FROZEN_SPIDER_ICHOR, ITEM_FROZEN_SPIDER_ICHOR, SAY_FROZEN_SPIDER_ICHOR }
+};
+
+/*#####
+# spell_random_ingredient_aura
+#####*/
+
+class spell_random_ingredient_aura : public SpellScriptLoader
+{
+ public: spell_random_ingredient_aura() : SpellScriptLoader("spell_random_ingredient_aura") { }
+
+ class spell_random_ingredient_aura_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_random_ingredient_aura_AuraScript);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_RANDOM_INGREDIENT_EASY) || !sSpellMgr->GetSpellInfo(SPELL_RANDOM_INGREDIENT_MEDIUM) || !sSpellMgr->GetSpellInfo(SPELL_RANDOM_INGREDIENT_HARD))
+ return false;
+ return true;
+ }
+
+ void PeriodicTick(AuraEffect const* /*aurEff*/)
+ {
+ switch (GetSpellInfo()->Id)
+ {
+ case SPELL_RANDOM_INGREDIENT_EASY_AURA:
+ GetTarget()->CastSpell(GetTarget(), SPELL_RANDOM_INGREDIENT_EASY);
+ break;
+ case SPELL_RANDOM_INGREDIENT_MEDIUM_AURA:
+ GetTarget()->CastSpell(GetTarget(), SPELL_RANDOM_INGREDIENT_MEDIUM);
+ break;
+ case SPELL_RANDOM_INGREDIENT_HARD_AURA:
+ GetTarget()->CastSpell(GetTarget(), SPELL_RANDOM_INGREDIENT_HARD);
+ break;
+ }
+ }
+
+ void Register() OVERRIDE
+ {
+ OnEffectPeriodic += AuraEffectPeriodicFn(spell_random_ingredient_aura_AuraScript::PeriodicTick, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
+ }
+ };
+
+ AuraScript* GetAuraScript() const OVERRIDE
+ {
+ return new spell_random_ingredient_aura_AuraScript();
+ }
+};
+
+/*#####
+# spell_random_ingredient
+#####*/
+
+class spell_random_ingredient : public SpellScriptLoader
+{
+ public: spell_random_ingredient() : SpellScriptLoader("spell_random_ingredient") { }
+
+ class spell_random_ingredient_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_random_ingredient_SpellScript);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_FETCH_KNOTROOT) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_PICKLED_EAGLE_EGG) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_SPECKLED_GUANO) ||
+ !sSpellMgr->GetSpellInfo(SPELL_FETCH_WITHERED_BATWING) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_SEASONED_SLIDER_CIDER) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_PULVERIZED_GARGOYLE_TEETH) ||
+ !sSpellMgr->GetSpellInfo(SPELL_FETCH_MUDDY_MIRE_MAGGOT) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_SPIKY_SPIDER_EGG) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_HAIRY_HERRING_HEAD) ||
+ !sSpellMgr->GetSpellInfo(SPELL_FETCH_PUTRID_PIRATE_PERSPIRATION) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_ICECROWN_BOTTLED_WATER) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_WASPS_WINGS) ||
+ !sSpellMgr->GetSpellInfo(SPELL_FETCH_PRISMATIC_MOJO) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_RAPTOR_CLAW) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_AMBERSEED) ||
+ !sSpellMgr->GetSpellInfo(SPELL_FETCH_SHRUNKEN_DRAGONS_CLAW) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_CHILLED_SERPENT_MUCUS) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_CRYSTALLIZED_HOGSNOT) ||
+ !sSpellMgr->GetSpellInfo(SPELL_FETCH_CRUSHED_BASILISK_CRYSTALS) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_TROLLBANE) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_FROZEN_SPIDER_ICHOR))
+ return false;
+ return true;
+ }
+
+ void HandleScriptEffect(SpellEffIndex /* effIndex */)
+ {
+ if (Player* player = GetHitPlayer())
+ {
+ uint8 ingredient = 0;
+
+ switch (GetSpellInfo()->Id)
+ {
+ case SPELL_RANDOM_INGREDIENT_EASY:
+ ingredient = urand(0, 10);
+ break;
+ case SPELL_RANDOM_INGREDIENT_MEDIUM:
+ ingredient = urand(11, 15);
+ break;
+ case SPELL_RANDOM_INGREDIENT_HARD:
+ ingredient = urand(16, 20);
+ break;
+ }
+
+ if (Creature* finklestein = GetClosestCreatureWithEntry(player, NPC_FINKLESTEIN, 25.0f))
+ {
+ finklestein->CastSpell(player, FetchIngredients[ingredient][0], true, NULL);
+ finklestein->AI()->Talk(FetchIngredients[ingredient][3], player->GetGUID());
+ }
+ }
+ }
+
+ void Register() OVERRIDE
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_random_ingredient_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+ };
+
+ SpellScript* GetSpellScript() const OVERRIDE
+ {
+ return new spell_random_ingredient_SpellScript();
+ }
+};
+
+/*#####
+# spell_pot_check
+#####*/
+
+class spell_pot_check : public SpellScriptLoader
+{
+ public: spell_pot_check() : SpellScriptLoader("spell_pot_check") { }
+
+ class spell_pot_check_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_pot_check_SpellScript);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_FETCH_KNOTROOT) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_PICKLED_EAGLE_EGG) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_SPECKLED_GUANO) ||
+ !sSpellMgr->GetSpellInfo(SPELL_FETCH_WITHERED_BATWING) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_SEASONED_SLIDER_CIDER) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_PULVERIZED_GARGOYLE_TEETH) ||
+ !sSpellMgr->GetSpellInfo(SPELL_FETCH_MUDDY_MIRE_MAGGOT) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_SPIKY_SPIDER_EGG) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_HAIRY_HERRING_HEAD) ||
+ !sSpellMgr->GetSpellInfo(SPELL_FETCH_PUTRID_PIRATE_PERSPIRATION) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_ICECROWN_BOTTLED_WATER) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_WASPS_WINGS) ||
+ !sSpellMgr->GetSpellInfo(SPELL_FETCH_PRISMATIC_MOJO) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_RAPTOR_CLAW) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_AMBERSEED) ||
+ !sSpellMgr->GetSpellInfo(SPELL_FETCH_SHRUNKEN_DRAGONS_CLAW) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_CHILLED_SERPENT_MUCUS) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_CRYSTALLIZED_HOGSNOT) ||
+ !sSpellMgr->GetSpellInfo(SPELL_FETCH_CRUSHED_BASILISK_CRYSTALS) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_TROLLBANE) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_FROZEN_SPIDER_ICHOR) ||
+ !sSpellMgr->GetSpellInfo(SPELL_HAVE_KNOTROOT) || !sSpellMgr->GetSpellInfo(SPELL_HAVE_PICKLED_EAGLE_EGG) || !sSpellMgr->GetSpellInfo(SPELL_HAVE_SPECKLED_GUANO) ||
+ !sSpellMgr->GetSpellInfo(SPELL_HAVE_WITHERED_BATWING) || !sSpellMgr->GetSpellInfo(SPELL_HAVE_SEASONED_SLIDER_CIDER) || !sSpellMgr->GetSpellInfo(SPELL_HAVE_PULVERIZED_GARGOYLE_TEETH) ||
+ !sSpellMgr->GetSpellInfo(SPELL_HAVE_MUDDY_MIRE_MAGGOT) || !sSpellMgr->GetSpellInfo(SPELL_HAVE_SPIKY_SPIDER_EGG) || !sSpellMgr->GetSpellInfo(SPELL_HAVE_HAIRY_HERRING_HEAD) ||
+ !sSpellMgr->GetSpellInfo(SPELL_HAVE_PUTRID_PIRATE_PERSPIRATION) || !sSpellMgr->GetSpellInfo(SPELL_HAVE_ICECROWN_BOTTLED_WATER) || !sSpellMgr->GetSpellInfo(SPELL_HAVE_WASPS_WINGS) ||
+ !sSpellMgr->GetSpellInfo(SPELL_HAVE_PRISMATIC_MOJO) || !sSpellMgr->GetSpellInfo(SPELL_HAVE_RAPTOR_CLAW) || !sSpellMgr->GetSpellInfo(SPELL_HAVE_AMBERSEED) ||
+ !sSpellMgr->GetSpellInfo(SPELL_HAVE_SHRUNKEN_DRAGONS_CLAW) || !sSpellMgr->GetSpellInfo(SPELL_HAVE_CHILLED_SERPENT_MUCUS) || !sSpellMgr->GetSpellInfo(SPELL_HAVE_CRYSTALLIZED_HOGSNOT) ||
+ !sSpellMgr->GetSpellInfo(SPELL_HAVE_CRUSHED_BASILISK_CRYSTALS) || !sSpellMgr->GetSpellInfo(SPELL_HAVE_TROLLBANE) || !sSpellMgr->GetSpellInfo(SPELL_HAVE_FROZEN_SPIDER_ICHOR))
+ return false;
+ return true;
+ }
+
+ void HandleScriptEffect(SpellEffIndex /* effIndex */)
+ {
+ if (Player* player = GetHitPlayer())
+ {
+ for (uint8 i = 0; i < 21; ++i)
+ {
+ if (player->HasAura(FetchIngredients[i][0]))
+ {
+ player->CastSpell(player, SPELL_THROW_INGREDIENT);
+ player->RemoveAura(FetchIngredients[i][0]);
+ if (player->HasAura(FetchIngredients[i][1]))
+ {
+ player->RemoveAura(FetchIngredients[i][1]);
+ player->DestroyItemCount(FetchIngredients[i][2], 1, true);
+ if (i < 15)
+ {
+ if (Creature* finklestein = GetClosestCreatureWithEntry(player, NPC_FINKLESTEIN, 25.0f))
+ finklestein->AI()->SetData(1, 1);
+ return;
+ }
+ else
+ {
+ if (player->GetQuestStatus(QUEST_THE_ALCHEMIST_APPRENTICE_DAILY) == QUEST_STATUS_INCOMPLETE)
+ {
+ player->RemoveAura(SPELL_ALCHEMIST_APPRENTICE_INVISBUFF);
+ player->CastSpell(player, SPELL_KILL_CREDIT);
+ }
+ }
+ }
+ else
+ {
+ RemoveItems(player);
+ player->RemoveAura(SPELL_ALCHEMIST_APPRENTICE_INVISBUFF);
+ if (Creature* finklestein = GetClosestCreatureWithEntry(player, NPC_FINKLESTEIN, 25.0f))
+ finklestein->AI()->Talk(SAY_RUINED, player->GetGUID());
+ return;
+ }
+ }
+ }
+ }
+ }
+
+ void RemoveItems(Player* player)
+ {
+ for (uint8 i = 0; i < 21; ++i)
+ if (player->HasItemCount(FetchIngredients[i][2], 1, true))
+ player->DestroyItemCount(FetchIngredients[i][2], 1, true);
+ }
+
+ void Register() OVERRIDE
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_pot_check_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+ };
+
+ SpellScript* GetSpellScript() const OVERRIDE
+ {
+ return new spell_pot_check_SpellScript();
+ }
+};
+
+/*#####
+# spell_fetch_ingredient_aura
+#####*/
+
+class spell_fetch_ingredient_aura : public SpellScriptLoader
+{
+ public: spell_fetch_ingredient_aura() : SpellScriptLoader("spell_fetch_ingredient_aura") { }
+
+ class spell_fetch_ingredient_aura_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_fetch_ingredient_aura_AuraScript);
+
+ void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ Unit* target = GetTarget();
+ if (GetTargetApplication()->GetRemoveMode() == AURA_REMOVE_BY_EXPIRE)
+ if (target->HasAura(SPELL_ALCHEMIST_APPRENTICE_INVISBUFF))
+ if (Creature* finklestein = GetClosestCreatureWithEntry(target, NPC_FINKLESTEIN, 100.0f))
+ {
+ target->RemoveAura(SPELL_ALCHEMIST_APPRENTICE_INVISBUFF);
+ finklestein->AI()->Talk(SAY_RUINED, target->GetGUID());
+ }
+ }
+
+ void Register() OVERRIDE
+ {
+ OnEffectRemove += AuraEffectRemoveFn(spell_fetch_ingredient_aura_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
+ }
+ };
+
+ AuraScript* GetAuraScript() const OVERRIDE
+ {
+ return new spell_fetch_ingredient_aura_AuraScript();
+ }
+};
+
void AddSC_zuldrak()
{
- new npc_drakuru_shackles;
- new npc_captured_rageclaw;
- new npc_gymer;
- new npc_gurgthock;
- new npc_orinoko_tuskbreaker;
- new npc_korrak_bloodrager;
- new npc_yggdras;
- new npc_stinkbeard;
- new npc_released_offspring_harkoa;
- new npc_crusade_recruit;
- new npc_elemental_lord;
- new npc_fiend_elemental;
- new go_scourge_enclosure;
+ new npc_drakuru_shackles();
+ new npc_captured_rageclaw();
+ new npc_gurgthock();
+ new npc_orinoko_tuskbreaker();
+ new npc_korrak_bloodrager();
+ new npc_yggdras();
+ new npc_stinkbeard();
+ new npc_released_offspring_harkoa();
+ new npc_crusade_recruit();
+ new npc_elemental_lord();
+ new npc_fiend_elemental();
+ new go_scourge_enclosure();
+ new npc_alchemist_finklestein();
+ new go_finklesteins_cauldron();
+ new spell_random_ingredient_aura();
+ new spell_random_ingredient();
+ new spell_pot_check();
+ new spell_fetch_ingredient_aura();
}
diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPEP.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPEP.cpp
index 79755c0f57d..f5d04154686 100644
--- a/src/server/scripts/OutdoorPvP/OutdoorPvPEP.cpp
+++ b/src/server/scripts/OutdoorPvP/OutdoorPvPEP.cpp
@@ -773,7 +773,7 @@ class OutdoorPvP_eastern_plaguelands : public OutdoorPvPScript
{
}
- OutdoorPvP* GetOutdoorPvP() const
+ OutdoorPvP* GetOutdoorPvP() const OVERRIDE
{
return new OutdoorPvPEP();
}
diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPHP.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPHP.cpp
index 55bb61b8c42..4fd9f380350 100644
--- a/src/server/scripts/OutdoorPvP/OutdoorPvPHP.cpp
+++ b/src/server/scripts/OutdoorPvP/OutdoorPvPHP.cpp
@@ -62,6 +62,8 @@ OPvPCapturePointHP::OPvPCapturePointHP(OutdoorPvP* pvp, OutdoorPvPHPTowerType ty
OutdoorPvPHP::OutdoorPvPHP()
{
m_TypeId = OUTDOOR_PVP_HP;
+ m_AllianceTowersControlled = 0;
+ m_HordeTowersControlled = 0;
}
bool OutdoorPvPHP::SetupOutdoorPvP()
@@ -366,7 +368,7 @@ class OutdoorPvP_hellfire_peninsula : public OutdoorPvPScript
{
}
- OutdoorPvP* GetOutdoorPvP() const
+ OutdoorPvP* GetOutdoorPvP() const OVERRIDE
{
return new OutdoorPvPHP();
}
diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPNA.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPNA.cpp
index bd6fd96451f..32a819e2e0d 100644
--- a/src/server/scripts/OutdoorPvP/OutdoorPvPNA.cpp
+++ b/src/server/scripts/OutdoorPvP/OutdoorPvPNA.cpp
@@ -27,6 +27,7 @@
OutdoorPvPNA::OutdoorPvPNA()
{
m_TypeId = OUTDOOR_PVP_NA;
+ m_obj = NULL;
}
void OutdoorPvPNA::HandleKillImpl(Player* player, Unit* killed)
@@ -64,7 +65,7 @@ uint32 OPvPCapturePointNA::GetAliveGuardsCount()
case NA_NPC_GUARD_14:
case NA_NPC_GUARD_15:
if (Creature const* const cr = HashMapHolder<Creature>::Find(itr->second))
- if (cr->isAlive())
+ if (cr->IsAlive())
++cnt;
break;
default:
@@ -216,8 +217,8 @@ bool OutdoorPvPNA::SetupOutdoorPvP()
m_obj = new OPvPCapturePointNA(this);
if (!m_obj)
return false;
- AddCapturePoint(m_obj);
+ AddCapturePoint(m_obj);
return true;
}
@@ -668,7 +669,7 @@ class OutdoorPvP_nagrand : public OutdoorPvPScript
{
}
- OutdoorPvP* GetOutdoorPvP() const
+ OutdoorPvP* GetOutdoorPvP() const OVERRIDE
{
return new OutdoorPvPNA();
}
diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp
index 242f3fab985..41ebf577f68 100644
--- a/src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp
+++ b/src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp
@@ -244,7 +244,7 @@ class OutdoorPvP_silithus : public OutdoorPvPScript
{
}
- OutdoorPvP* GetOutdoorPvP() const
+ OutdoorPvP* GetOutdoorPvP() const OVERRIDE
{
return new OutdoorPvPSI();
}
diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPTF.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPTF.cpp
index bd8b6cfd982..7a7efd2c81d 100644
--- a/src/server/scripts/OutdoorPvP/OutdoorPvPTF.cpp
+++ b/src/server/scripts/OutdoorPvP/OutdoorPvPTF.cpp
@@ -28,6 +28,17 @@
OutdoorPvPTF::OutdoorPvPTF()
{
m_TypeId = OUTDOOR_PVP_TF;
+
+ m_IsLocked = false;
+ m_LockTimer = TF_LOCK_TIME;
+ m_LockTimerUpdate = 0;
+
+ m_AllianceTowersControlled = 0;
+ m_HordeTowersControlled = 0;
+
+ hours_left = 6;
+ second_digit = 0;
+ first_digit = 0;
}
OPvPCapturePointTF::OPvPCapturePointTF(OutdoorPvP* pvp, OutdoorPvPTF_TowerType type)
@@ -355,7 +366,7 @@ class OutdoorPvP_terokkar_forest : public OutdoorPvPScript
{
}
- OutdoorPvP* GetOutdoorPvP() const
+ OutdoorPvP* GetOutdoorPvP() const OVERRIDE
{
return new OutdoorPvPTF();
}
diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPZM.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPZM.cpp
index f8780435996..1308d61f333 100644
--- a/src/server/scripts/OutdoorPvP/OutdoorPvPZM.cpp
+++ b/src/server/scripts/OutdoorPvP/OutdoorPvPZM.cpp
@@ -460,7 +460,7 @@ class OutdoorPvP_zangarmarsh : public OutdoorPvPScript
{
}
- OutdoorPvP* GetOutdoorPvP() const
+ OutdoorPvP* GetOutdoorPvP() const OVERRIDE
{
return new OutdoorPvPZM();
}
diff --git a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp
index 0fb49dfc284..9735011ba81 100644
--- a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp
+++ b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp
@@ -24,47 +24,54 @@ SDCategory: Auchindoun, Auchenai Crypts
EndScriptData */
/* ContentData
-mob_stolen_soul
+npc_stolen_soul
boss_exarch_maladaar
-mob_avatar_of_martyred
+npc_avatar_of_martyred
EndContentData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
-#define SPELL_MOONFIRE 37328
-#define SPELL_FIREBALL 37329
-#define SPELL_MIND_FLAY 37330
-#define SPELL_HEMORRHAGE 37331
-#define SPELL_FROSTSHOCK 37332
-#define SPELL_CURSE_OF_AGONY 37334
-#define SPELL_MORTAL_STRIKE 37335
-#define SPELL_FREEZING_TRAP 37368
-#define SPELL_HAMMER_OF_JUSTICE 37369
-
-class mob_stolen_soul : public CreatureScript
+enum Spells
+{
+ SPELL_MOONFIRE = 37328,
+ SPELL_FIREBALL = 37329,
+ SPELL_MIND_FLAY = 37330,
+ SPELL_HEMORRHAGE = 37331,
+ SPELL_FROSTSHOCK = 37332,
+ SPELL_CURSE_OF_AGONY = 37334,
+ SPELL_MORTAL_STRIKE = 37335,
+ SPELL_FREEZING_TRAP = 37368,
+ SPELL_HAMMER_OF_JUSTICE = 37369,
+
+ // Avatar of Martyred
+ SPELL_AV_MORTAL_STRIKE = 16856,
+ SPELL_AV_SUNDER_ARMOR = 16145
+};
+
+class npc_stolen_soul : public CreatureScript
{
public:
- mob_stolen_soul() : CreatureScript("mob_stolen_soul") { }
+ npc_stolen_soul() : CreatureScript("npc_stolen_soul") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_stolen_soulAI (creature);
+ return new npc_stolen_soulAI(creature);
}
- struct mob_stolen_soulAI : public ScriptedAI
+ struct npc_stolen_soulAI : public ScriptedAI
{
- mob_stolen_soulAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_stolen_soulAI(Creature* creature) : ScriptedAI(creature) {}
uint8 myClass;
uint32 Class_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
Class_Timer = 1000;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{ }
void SetMyClass(uint8 myclass)
@@ -72,7 +79,7 @@ public:
myClass = myclass;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -82,39 +89,39 @@ public:
switch (myClass)
{
case CLASS_WARRIOR:
- DoCast(me->getVictim(), SPELL_MORTAL_STRIKE);
+ DoCastVictim(SPELL_MORTAL_STRIKE);
Class_Timer = 6000;
break;
case CLASS_PALADIN:
- DoCast(me->getVictim(), SPELL_HAMMER_OF_JUSTICE);
+ DoCastVictim(SPELL_HAMMER_OF_JUSTICE);
Class_Timer = 6000;
break;
case CLASS_HUNTER:
- DoCast(me->getVictim(), SPELL_FREEZING_TRAP);
+ DoCastVictim(SPELL_FREEZING_TRAP);
Class_Timer = 20000;
break;
case CLASS_ROGUE:
- DoCast(me->getVictim(), SPELL_HEMORRHAGE);
+ DoCastVictim(SPELL_HEMORRHAGE);
Class_Timer = 10000;
break;
case CLASS_PRIEST:
- DoCast(me->getVictim(), SPELL_MIND_FLAY);
+ DoCastVictim(SPELL_MIND_FLAY);
Class_Timer = 5000;
break;
case CLASS_SHAMAN:
- DoCast(me->getVictim(), SPELL_FROSTSHOCK);
+ DoCastVictim(SPELL_FROSTSHOCK);
Class_Timer = 8000;
break;
case CLASS_MAGE:
- DoCast(me->getVictim(), SPELL_FIREBALL);
+ DoCastVictim(SPELL_FIREBALL);
Class_Timer = 5000;
break;
case CLASS_WARLOCK:
- DoCast(me->getVictim(), SPELL_CURSE_OF_AGONY);
+ DoCastVictim(SPELL_CURSE_OF_AGONY);
Class_Timer = 20000;
break;
case CLASS_DRUID:
- DoCast(me->getVictim(), SPELL_MOONFIRE);
+ DoCastVictim(SPELL_MOONFIRE);
Class_Timer = 10000;
break;
}
@@ -149,9 +156,9 @@ class boss_exarch_maladaar : public CreatureScript
public:
boss_exarch_maladaar() : CreatureScript("boss_exarch_maladaar") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_exarch_maladaarAI (creature);
+ return new boss_exarch_maladaarAI(creature);
}
struct boss_exarch_maladaarAI : public ScriptedAI
@@ -172,7 +179,7 @@ public:
bool HasTaunted;
bool Avatar_summoned;
- void Reset()
+ void Reset() OVERRIDE
{
soulmodel = 0;
soulholder = 0;
@@ -185,7 +192,8 @@ public:
Avatar_summoned = false;
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (!HasTaunted && me->IsWithinDistInMap(who, 150.0f))
{
@@ -196,12 +204,12 @@ public:
ScriptedAI::MoveInLineOfSight(who);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
if (summoned->GetEntry() == ENTRY_STOLEN_SOUL)
{
@@ -213,13 +221,13 @@ public:
if (Unit* target = Unit::GetUnit(*me, soulholder))
{
- CAST_AI(mob_stolen_soul::mob_stolen_soulAI, summoned->AI())->SetMyClass(soulclass);
+ CAST_AI(npc_stolen_soul::npc_stolen_soulAI, summoned->AI())->SetMyClass(soulclass);
summoned->AI()->AttackStart(target);
}
}
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
if (rand()%2)
return;
@@ -227,14 +235,14 @@ public:
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
//When Exarch Maladar is defeated D'ore appear.
me->SummonCreature(19412, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN, 600000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -294,42 +302,39 @@ public:
};
-#define SPELL_AV_MORTAL_STRIKE 16856
-#define SPELL_AV_SUNDER_ARMOR 16145
-
-class mob_avatar_of_martyred : public CreatureScript
+class npc_avatar_of_martyred : public CreatureScript
{
public:
- mob_avatar_of_martyred() : CreatureScript("mob_avatar_of_martyred") { }
+ npc_avatar_of_martyred() : CreatureScript("npc_avatar_of_martyred") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_avatar_of_martyredAI (creature);
+ return new npc_avatar_of_martyredAI(creature);
}
- struct mob_avatar_of_martyredAI : public ScriptedAI
+ struct npc_avatar_of_martyredAI : public ScriptedAI
{
- mob_avatar_of_martyredAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_avatar_of_martyredAI(Creature* creature) : ScriptedAI(creature) {}
uint32 Mortal_Strike_timer;
- void Reset()
+ void Reset() OVERRIDE
{
Mortal_Strike_timer = 10000;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
if (Mortal_Strike_timer <= diff)
{
- DoCast(me->getVictim(), SPELL_AV_MORTAL_STRIKE);
+ DoCastVictim(SPELL_AV_MORTAL_STRIKE);
Mortal_Strike_timer = urand(10, 30) * 1000;
} else Mortal_Strike_timer -= diff;
@@ -342,6 +347,6 @@ public:
void AddSC_boss_exarch_maladaar()
{
new boss_exarch_maladaar();
- new mob_avatar_of_martyred();
- new mob_stolen_soul();
+ new npc_avatar_of_martyred();
+ new npc_stolen_soul();
}
diff --git a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_shirrak_the_dead_watcher.cpp b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_shirrak_the_dead_watcher.cpp
index 00ec9b9fe4a..9f7a27ecdef 100644
--- a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_shirrak_the_dead_watcher.cpp
+++ b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_shirrak_the_dead_watcher.cpp
@@ -27,22 +27,25 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "Player.h"
-#define SPELL_INHIBITMAGIC 32264
-#define SPELL_ATTRACTMAGIC 32265
-#define N_SPELL_CARNIVOROUSBITE 36383
-#define H_SPELL_CARNIVOROUSBITE 39382
-#define SPELL_CARNIVOROUSBITE DUNGEON_MODE(N_SPELL_CARNIVOROUSBITE, H_SPELL_CARNIVOROUSBITE)
+enum Spells
+{
+ SPELL_INHIBITMAGIC = 32264,
+ SPELL_ATTRACTMAGIC = 32265,
+ SPELL_CARNIVOROUSBITE = 36383,
-#define ENTRY_FOCUS_FIRE 18374
+ SPELL_FIERY_BLAST = 32302,
-#define N_SPELL_FIERY_BLAST 32302
-#define H_SPELL_FIERY_BLAST 38382
-#define SPELL_FIERY_BLAST DUNGEON_MODE(N_SPELL_FIERY_BLAST, H_SPELL_FIERY_BLAST)
-#define SPELL_FOCUS_FIRE_VISUAL 42075 //need to find better visual
+ SPELL_FOCUS_FIRE_VISUAL = 42075 //need to find better visual
+};
enum Say
{
- EMOTE_FOCUSED = 0
+ EMOTE_FOCUSED = 0
+};
+
+enum Creatures
+{
+ NPC_FOCUS_FIRE = 18374
};
class boss_shirrak_the_dead_watcher : public CreatureScript
@@ -50,9 +53,9 @@ class boss_shirrak_the_dead_watcher : public CreatureScript
public:
boss_shirrak_the_dead_watcher() : CreatureScript("boss_shirrak_the_dead_watcher") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_shirrak_the_dead_watcherAI (creature);
+ return new boss_shirrak_the_dead_watcherAI(creature);
}
struct boss_shirrak_the_dead_watcherAI : public ScriptedAI
@@ -68,7 +71,7 @@ public:
uint64 FocusedTargetGUID;
- void Reset()
+ void Reset() OVERRIDE
{
Inhibitmagic_Timer = 0;
Attractmagic_Timer = 28000;
@@ -77,12 +80,12 @@ public:
FocusedTargetGUID = 0;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{ }
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
- if (summoned && summoned->GetEntry() == ENTRY_FOCUS_FIRE)
+ if (summoned && summoned->GetEntry() == NPC_FOCUS_FIRE)
{
summoned->CastSpell(summoned, SPELL_FOCUS_FIRE_VISUAL, false);
summoned->setFaction(me->getFaction());
@@ -94,7 +97,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Inhibitmagic_Timer
if (Inhibitmagic_Timer <= diff)
@@ -103,8 +106,8 @@ public:
Map* map = me->GetMap();
Map::PlayerList const &PlayerList = map->GetPlayers();
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
- if (Player* i_pl = i->getSource())
- if (i_pl->isAlive() && (dist = i_pl->IsWithinDist(me, 45)))
+ if (Player* i_pl = i->GetSource())
+ if (i_pl->IsAlive() && (dist = i_pl->IsWithinDist(me, 45)))
{
i_pl->RemoveAurasDueToSpell(SPELL_INHIBITMAGIC);
me->AddAura(SPELL_INHIBITMAGIC, i_pl);
@@ -142,10 +145,10 @@ public:
{
// Summon Focus Fire & Emote
Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1);
- if (target && target->GetTypeId() == TYPEID_PLAYER && target->isAlive())
+ if (target && target->GetTypeId() == TYPEID_PLAYER && target->IsAlive())
{
FocusedTargetGUID = target->GetGUID();
- me->SummonCreature(ENTRY_FOCUS_FIRE, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 5500);
+ me->SummonCreature(NPC_FOCUS_FIRE, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 5500);
Talk(EMOTE_FOCUSED, FocusedTargetGUID);
}
FocusFire_Timer = 15000+(rand()%5000);
@@ -157,35 +160,35 @@ public:
};
-class mob_focus_fire : public CreatureScript
+class npc_focus_fire : public CreatureScript
{
public:
- mob_focus_fire() : CreatureScript("mob_focus_fire") { }
+ npc_focus_fire() : CreatureScript("npc_focus_fire") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_focus_fireAI (creature);
+ return new npc_focus_fireAI(creature);
}
- struct mob_focus_fireAI : public ScriptedAI
+ struct npc_focus_fireAI : public ScriptedAI
{
- mob_focus_fireAI(Creature* creature) : ScriptedAI(creature)
+ npc_focus_fireAI(Creature* creature) : ScriptedAI(creature)
{
}
uint32 FieryBlast_Timer;
bool fiery1, fiery2;
- void Reset()
+ void Reset() OVERRIDE
{
FieryBlast_Timer = 3000+(rand()%1000);
fiery1 = fiery2 = true;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{ }
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -211,5 +214,5 @@ public:
void AddSC_boss_shirrak_the_dead_watcher()
{
new boss_shirrak_the_dead_watcher();
- new mob_focus_fire();
+ new npc_focus_fire();
}
diff --git a/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp b/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp
index f26760a82b7..83c0cbf04d5 100644
--- a/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp
+++ b/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp
@@ -25,20 +25,23 @@ EndScriptData */
/* ContentData
boss_nexusprince_shaffar
-mob_ethereal_beacon
+npc_ethereal_beacon
EndContentData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
-enum ePrince
+enum Yells
{
SAY_INTRO = 0,
SAY_AGGRO = 1,
SAY_SLAY = 2,
SAY_SUMMON = 3,
SAY_DEAD = 4,
+};
+enum Spells
+{
SPELL_BLINK = 34605,
SPELL_FROSTBOLT = 32364,
SPELL_FIREBALL = 32363,
@@ -47,9 +50,19 @@ enum ePrince
SPELL_ETHEREAL_BEACON = 32371, // Summons NPC_BEACON
SPELL_ETHEREAL_BEACON_VISUAL = 32368,
+ // Ethereal Beacon
+ SPELL_ARCANE_BOLT = 15254,
+ SPELL_ETHEREAL_APPRENTICE = 32372 // Summon 18430
+};
+
+enum Creatures
+{
NPC_BEACON = 18431,
- NPC_SHAFFAR = 18344,
+ NPC_SHAFFAR = 18344
+};
+enum Misc
+{
NR_INITIAL_BEACONS = 3
};
@@ -58,9 +71,9 @@ class boss_nexusprince_shaffar : public CreatureScript
public:
boss_nexusprince_shaffar() : CreatureScript("boss_nexusprince_shaffar") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_nexusprince_shaffarAI (creature);
+ return new boss_nexusprince_shaffarAI(creature);
}
struct boss_nexusprince_shaffarAI : public ScriptedAI
@@ -78,7 +91,7 @@ public:
bool HasTaunted;
bool CanBlink;
- void Reset()
+ void Reset() OVERRIDE
{
Blink_Timer = 1500;
Beacon_Timer = 10000;
@@ -97,13 +110,14 @@ public:
me->SummonCreature(NPC_BEACON, posX + dist, posY, posZ, angle, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 7200000);
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
summons.DespawnAll();
ScriptedAI::EnterEvadeMode();
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (!HasTaunted && who->GetTypeId() == TYPEID_PLAYER && me->IsWithinDistInMap(who, 100.0f))
{
@@ -112,7 +126,7 @@ public:
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
@@ -120,7 +134,7 @@ public:
summons.DoZoneInCombat();
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
if (summoned->GetEntry() == NPC_BEACON)
{
@@ -133,23 +147,23 @@ public:
summons.Summon(summoned);
}
- void SummonedCreatureDespawn(Creature* summon)
+ void SummonedCreatureDespawn(Creature* summon) OVERRIDE
{
summons.Despawn(summon);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEAD);
summons.DespawnAll();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -166,13 +180,13 @@ public:
if (Frostbolt_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_FROSTBOLT);
+ DoCastVictim(SPELL_FROSTBOLT);
Frostbolt_Timer = urand(4500, 6000);
} else Frostbolt_Timer -= diff;
if (FireBall_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_FIREBALL);
+ DoCastVictim(SPELL_FIREBALL);
FireBall_Timer = urand(4500, 6000);
} else FireBall_Timer -= diff;
@@ -213,25 +227,19 @@ public:
};
-enum eEnums
-{
- SPELL_ARCANE_BOLT = 15254,
- SPELL_ETHEREAL_APPRENTICE = 32372 // Summon 18430
-};
-
-class mob_ethereal_beacon : public CreatureScript
+class npc_ethereal_beacon : public CreatureScript
{
public:
- mob_ethereal_beacon() : CreatureScript("mob_ethereal_beacon") { }
+ npc_ethereal_beacon() : CreatureScript("npc_ethereal_beacon") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_ethereal_beaconAI (creature);
+ return new npc_ethereal_beaconAI(creature);
}
- struct mob_ethereal_beaconAI : public ScriptedAI
+ struct npc_ethereal_beaconAI : public ScriptedAI
{
- mob_ethereal_beaconAI(Creature* creature) : ScriptedAI(creature)
+ npc_ethereal_beaconAI(Creature* creature) : ScriptedAI(creature)
{
}
@@ -244,14 +252,14 @@ public:
me->Kill(me);
}
- void Reset()
+ void Reset() OVERRIDE
{
Apprentice_Timer = DUNGEON_MODE(20000, 10000);
ArcaneBolt_Timer = 1000;
Check_Timer = 1000;
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
// Send Shaffar to fight
Creature* Shaffar = me->FindNearestCreature(NPC_SHAFFAR, 100);
@@ -260,16 +268,16 @@ public:
KillSelf();
return;
}
- if (!Shaffar->isInCombat())
+ if (!Shaffar->IsInCombat())
Shaffar->AI()->AttackStart(who);
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
- summoned->AI()->AttackStart(me->getVictim());
+ summoned->AI()->AttackStart(me->GetVictim());
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -277,7 +285,7 @@ public:
if (Check_Timer <= diff)
{
Creature* Shaffar = me->FindNearestCreature(NPC_SHAFFAR, 100);
- if (!Shaffar || Shaffar->isDead() || !Shaffar->isInCombat())
+ if (!Shaffar || Shaffar->isDead() || !Shaffar->IsInCombat())
{
KillSelf();
return;
@@ -287,7 +295,7 @@ public:
if (ArcaneBolt_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_ARCANE_BOLT);
+ DoCastVictim(SPELL_ARCANE_BOLT);
ArcaneBolt_Timer = urand(2000, 4500);
} else ArcaneBolt_Timer -= diff;
@@ -305,37 +313,37 @@ public:
};
-enum eEthereal
+enum Ethereal
{
SPELL_ETHEREAL_APPRENTICE_FIREBOLT = 32369,
SPELL_ETHEREAL_APPRENTICE_FROSTBOLT = 32370
};
-class mob_ethereal_apprentice : public CreatureScript
+class npc_ethereal_apprentice : public CreatureScript
{
public:
- mob_ethereal_apprentice() : CreatureScript("mob_ethereal_apprentice") { }
+ npc_ethereal_apprentice() : CreatureScript("npc_ethereal_apprentice") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_ethereal_apprenticeAI (creature);
+ return new npc_ethereal_apprenticeAI(creature);
}
- struct mob_ethereal_apprenticeAI : public ScriptedAI
+ struct npc_ethereal_apprenticeAI : public ScriptedAI
{
- mob_ethereal_apprenticeAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_ethereal_apprenticeAI(Creature* creature) : ScriptedAI(creature) {}
uint32 Cast_Timer;
bool isFireboltTurn;
- void Reset()
+ void Reset() OVERRIDE
{
Cast_Timer = 3000;
isFireboltTurn = true;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -344,10 +352,10 @@ public:
{
if (isFireboltTurn)
{
- DoCast(me->getVictim(), SPELL_ETHEREAL_APPRENTICE_FIREBOLT, true);
+ DoCastVictim(SPELL_ETHEREAL_APPRENTICE_FIREBOLT, true);
isFireboltTurn = false;
}else{
- DoCast(me->getVictim(), SPELL_ETHEREAL_APPRENTICE_FROSTBOLT, true);
+ DoCastVictim(SPELL_ETHEREAL_APPRENTICE_FROSTBOLT, true);
isFireboltTurn = true;
}
Cast_Timer = 3000;
@@ -357,9 +365,65 @@ public:
};
+enum Yor
+{
+ SPELL_DOUBLE_BREATH = 38361,
+ EVENT_DOUBLE_BREATH = 1
+};
+
+class npc_yor : public CreatureScript
+{
+public:
+ npc_yor() : CreatureScript("npc_yor") { }
+
+ struct npc_yorAI : public ScriptedAI
+ {
+ npc_yorAI(Creature* creature) : ScriptedAI(creature) {}
+
+ void Reset() OVERRIDE {}
+
+ void EnterCombat(Unit* /*who*/) OVERRIDE
+ {
+ events.ScheduleEvent(EVENT_DOUBLE_BREATH, urand(6000,9000));
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ if (!UpdateVictim())
+ return;
+
+ events.Update(diff);
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_DOUBLE_BREATH:
+ if (me->IsWithinDist(me->GetVictim(), ATTACK_DISTANCE))
+ DoCastVictim(SPELL_DOUBLE_BREATH);
+ events.ScheduleEvent(EVENT_DOUBLE_BREATH, urand(6000,9000));
+ break;
+ default:
+ break;
+ }
+ }
+ DoMeleeAttackIfReady();
+ }
+
+ private:
+ EventMap events;
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_yorAI(creature);
+ }
+};
+
void AddSC_boss_nexusprince_shaffar()
{
new boss_nexusprince_shaffar();
- new mob_ethereal_beacon();
- new mob_ethereal_apprentice();
+ new npc_ethereal_beacon();
+ new npc_ethereal_apprentice();
+ new npc_yor();
}
diff --git a/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_pandemonius.cpp b/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_pandemonius.cpp
index e4d8d959941..3a845842934 100644
--- a/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_pandemonius.cpp
+++ b/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_pandemonius.cpp
@@ -45,9 +45,9 @@ class boss_pandemonius : public CreatureScript
public:
boss_pandemonius() : CreatureScript("boss_pandemonius") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_pandemoniusAI (creature);
+ return new boss_pandemoniusAI(creature);
}
struct boss_pandemoniusAI : public ScriptedAI
@@ -60,29 +60,29 @@ public:
uint32 DarkShell_Timer;
uint32 VoidBlast_Counter;
- void Reset()
+ void Reset() OVERRIDE
{
VoidBlast_Timer = 8000+rand()%15000;
DarkShell_Timer = 20000;
VoidBlast_Counter = 0;
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_KILL);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
diff --git a/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_anzu.cpp b/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_anzu.cpp
new file mode 100644
index 00000000000..707f6c34a90
--- /dev/null
+++ b/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_anzu.cpp
@@ -0,0 +1,172 @@
+/*
+ * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+Name: Boss_Anzu
+%Complete: 80%
+Comment:
+Category: Auchindoun, Sethekk Halls
+*/
+
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "sethekk_halls.h"
+
+enum Says
+{
+ SAY_SUMMON_BROOD = 0,
+ SAY_SPELL_BOMB = 1
+};
+
+enum Spells
+{
+ SPELL_PARALYZING_SCREECH = 40184,
+ SPELL_SPELL_BOMB = 40303,
+ SPELL_CYCLONE_OF_FEATHERS = 40321,
+ SPELL_BANISH_SELF = 42354,
+ SPELL_FLESH_RIP = 40199
+};
+
+enum Events
+{
+ EVENT_PARALYZING_SCREECH = 1,
+ EVENT_SPELL_BOMB = 2,
+ EVENT_CYCLONE_OF_FEATHERS = 3,
+ EVENT_SUMMON = 4
+};
+
+Position const PosSummonBrood[7] =
+{
+ { -118.1717f, 284.5299f, 121.2287f, 2.775074f },
+ { -98.15528f, 293.4469f, 109.2385f, 0.174533f },
+ { -99.70160f, 270.1699f, 98.27389f, 6.178465f },
+ { -69.25543f, 303.0768f, 97.84479f, 5.532694f },
+ { -87.59662f, 263.5181f, 92.70478f, 1.658063f },
+ { -73.54323f, 276.6267f, 94.25807f, 2.802979f },
+ { -81.70527f, 280.8776f, 44.58830f, 0.526849f },
+};
+
+class boss_anzu : public CreatureScript
+{
+public:
+ boss_anzu() : CreatureScript("boss_anzu") { }
+
+ struct boss_anzuAI : public BossAI
+ {
+ boss_anzuAI(Creature* creature) : BossAI(creature, DATA_ANZU) { }
+
+ void Reset() OVERRIDE
+ {
+ summon66 = false;
+ summon33 = false;
+ }
+
+ void EnterCombat(Unit* /*who*/) OVERRIDE
+ {
+ events.ScheduleEvent(EVENT_PARALYZING_SCREECH, 14000);
+ events.ScheduleEvent(EVENT_CYCLONE_OF_FEATHERS, 5000);
+ }
+
+ void JustDied(Unit* /*killer*/) OVERRIDE
+ {
+ if (instance)
+ instance->SetData(DATA_ANZU, DONE);
+ }
+
+ void KilledUnit(Unit* /*victim*/) OVERRIDE {}
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ if (!UpdateVictim())
+ return;
+
+ events.Update(diff);
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_PARALYZING_SCREECH:
+ DoCastVictim(SPELL_PARALYZING_SCREECH);
+ events.ScheduleEvent(EVENT_PARALYZING_SCREECH, 26000);
+ break;
+
+ case EVENT_CYCLONE_OF_FEATHERS:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
+ DoCast(target, SPELL_CYCLONE_OF_FEATHERS);
+ events.ScheduleEvent(EVENT_CYCLONE_OF_FEATHERS, 21000);
+ break;
+ case EVENT_SUMMON:
+ // TODO: Add pathing for Brood of Anzu
+ me->SummonCreature(NPC_BROOD_OF_ANZU, PosSummonBrood[0], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 46000);
+ me->SummonCreature(NPC_BROOD_OF_ANZU, PosSummonBrood[1], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 46000);
+ me->SummonCreature(NPC_BROOD_OF_ANZU, PosSummonBrood[2], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 46000);
+ me->SummonCreature(NPC_BROOD_OF_ANZU, PosSummonBrood[3], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 46000);
+ me->SummonCreature(NPC_BROOD_OF_ANZU, PosSummonBrood[4], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 46000);
+ me->SummonCreature(NPC_BROOD_OF_ANZU, PosSummonBrood[5], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 46000);
+ me->SummonCreature(NPC_BROOD_OF_ANZU, PosSummonBrood[6], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 46000);
+ DoCast(me, SPELL_BANISH_SELF);
+ events.ScheduleEvent(EVENT_SPELL_BOMB, 12000);
+ break;
+ case EVENT_SPELL_BOMB:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
+ {
+ if (target->getPowerType() == POWER_MANA)
+ {
+ DoCast(target, SPELL_SPELL_BOMB);
+ Talk(SAY_SPELL_BOMB, target->GetGUID());
+ }
+ }
+ break;
+ default:
+ break;
+ }
+ }
+
+ if (HealthBelowPct(66) && !summon66)
+ {
+ summon66 = true;
+ Talk(SAY_SUMMON_BROOD);
+ events.ScheduleEvent(EVENT_SUMMON, 3000);
+ }
+
+ if (HealthBelowPct(33) && !summon33)
+ {
+ summon33 = true;
+ Talk(SAY_SUMMON_BROOD);
+ events.ScheduleEvent(EVENT_SUMMON, 3000);
+ }
+
+ DoMeleeAttackIfReady();
+ }
+
+ private:
+ bool summon66;
+ bool summon33;
+
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new boss_anzuAI(creature);
+ }
+};
+
+void AddSC_boss_anzu()
+{
+ new boss_anzu();
+}
diff --git a/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_darkweaver_syth.cpp b/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_darkweaver_syth.cpp
index 371c94035ac..782db325496 100644
--- a/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_darkweaver_syth.cpp
+++ b/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_darkweaver_syth.cpp
@@ -25,14 +25,18 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
+#include "sethekk_halls.h"
-enum DarkweaverSyth
+enum Says
{
SAY_SUMMON = 0,
SAY_AGGRO = 1,
SAY_SLAY = 2,
- SAY_DEATH = 3,
+ SAY_DEATH = 3
+};
+enum Spells
+{
SPELL_FROST_SHOCK = 21401, //37865
SPELL_FLAME_SHOCK = 34354,
SPELL_SHADOW_SHOCK = 30138,
@@ -43,64 +47,59 @@ enum DarkweaverSyth
SPELL_SUMMON_SYTH_FIRE = 33537, // Spawns 19203
SPELL_SUMMON_SYTH_ARCANE = 33538, // Spawns 19205
SPELL_SUMMON_SYTH_FROST = 33539, // Spawns 19204
- SPELL_SUMMON_SYTH_SHADOW = 33540 // Spawns 19206
+ SPELL_SUMMON_SYTH_SHADOW = 33540, // Spawns 19206
+
+ SPELL_FLAME_BUFFET = 33526,
+ SPELL_ARCANE_BUFFET = 33527,
+ SPELL_FROST_BUFFET = 33528,
+ SPELL_SHADOW_BUFFET = 33529
};
-#define SPELL_FLAME_BUFFET DUNGEON_MODE(33526, 38141)
-#define SPELL_ARCANE_BUFFET DUNGEON_MODE(33527, 38138)
-#define SPELL_FROST_BUFFET DUNGEON_MODE(33528, 38142)
-#define SPELL_SHADOW_BUFFET DUNGEON_MODE(33529, 38143)
+enum Events
+{
+ EVENT_FLAME_SHOCK = 1,
+ EVENT_ARCANE_SHOCK = 2,
+ EVENT_FROST_SHOCK = 3,
+ EVENT_SHADOW_SHOCK = 4,
+ EVENT_CHAIN_LIGHTNING = 5
+};
class boss_darkweaver_syth : public CreatureScript
{
public:
boss_darkweaver_syth() : CreatureScript("boss_darkweaver_syth") { }
- CreatureAI* GetAI(Creature* creature) const
+ struct boss_darkweaver_sythAI : public BossAI
{
- return new boss_darkweaver_sythAI (creature);
- }
+ boss_darkweaver_sythAI(Creature* creature) : BossAI(creature, DATA_DARKWEAVER_SYTH) { }
- struct boss_darkweaver_sythAI : public ScriptedAI
- {
- boss_darkweaver_sythAI(Creature* creature) : ScriptedAI(creature)
+ void Reset() OVERRIDE
{
- }
-
- uint32 flameshock_timer;
- uint32 arcaneshock_timer;
- uint32 frostshock_timer;
- uint32 shadowshock_timer;
- uint32 chainlightning_timer;
-
- bool summon90;
- bool summon50;
- bool summon10;
-
- void Reset()
- {
- flameshock_timer = 2000;
- arcaneshock_timer = 4000;
- frostshock_timer = 6000;
- shadowshock_timer = 8000;
- chainlightning_timer = 15000;
-
summon90 = false;
summon50 = false;
summon10 = false;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
+ events.ScheduleEvent(EVENT_FLAME_SHOCK, 2000);
+ events.ScheduleEvent(EVENT_ARCANE_SHOCK, 4000);
+ events.ScheduleEvent(EVENT_FROST_SHOCK, 6000);
+ events.ScheduleEvent(EVENT_SHADOW_SHOCK, 8000);
+ events.ScheduleEvent(EVENT_CHAIN_LIGHTNING, 15000);
+
Talk(SAY_AGGRO);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
+
+ if (instance)
+ instance->SetData(DATA_DARKWEAVER_SYTH, DONE);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
if (rand()%2)
return;
@@ -108,7 +107,7 @@ public:
Talk(SAY_SLAY);
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
summoned->AI()->AttackStart(target);
@@ -127,11 +126,47 @@ public:
DoCast(me, SPELL_SUMMON_SYTH_SHADOW, true); //right
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
+ events.Update(diff);
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_FLAME_SHOCK:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
+ DoCast(target, SPELL_FLAME_SHOCK);
+ events.ScheduleEvent(EVENT_FLAME_SHOCK, urand(10000, 15000));
+ break;
+ case EVENT_ARCANE_SHOCK:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
+ DoCast(target, SPELL_ARCANE_SHOCK);
+ events.ScheduleEvent(EVENT_ARCANE_SHOCK, urand(10000, 15000));
+ break;
+ case EVENT_FROST_SHOCK:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
+ DoCast(target, SPELL_FROST_SHOCK);
+ events.ScheduleEvent(EVENT_FROST_SHOCK, urand(10000, 15000));
+ break;
+ case EVENT_SHADOW_SHOCK:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
+ DoCast(target, SPELL_SHADOW_SHOCK);
+ events.ScheduleEvent(EVENT_SHADOW_SHOCK, urand(10000, 15000));
+ break;
+ case EVENT_CHAIN_LIGHTNING:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
+ DoCast(target, SPELL_CHAIN_LIGHTNING);
+ events.ScheduleEvent(EVENT_CHAIN_LIGHTNING, 25000);
+ break;
+ default:
+ break;
+ }
+ }
+
if (HealthBelowPct(90) && !summon90)
{
SythSummoning();
@@ -150,77 +185,46 @@ public:
summon10 = true;
}
- if (flameshock_timer <= diff)
- {
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- DoCast(target, SPELL_FLAME_SHOCK);
-
- flameshock_timer = urand(10000, 15000);
- } else flameshock_timer -= diff;
-
- if (arcaneshock_timer <= diff)
- {
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- DoCast(target, SPELL_ARCANE_SHOCK);
-
- arcaneshock_timer = urand(10000, 15000);
- } else arcaneshock_timer -= diff;
-
- if (frostshock_timer <= diff)
- {
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- DoCast(target, SPELL_FROST_SHOCK);
-
- frostshock_timer = urand(10000, 15000);
- } else frostshock_timer -= diff;
-
- if (shadowshock_timer <= diff)
- {
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- DoCast(target, SPELL_SHADOW_SHOCK);
-
- shadowshock_timer = urand(10000, 15000);
- } else shadowshock_timer -= diff;
-
- if (chainlightning_timer <= diff)
- {
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- DoCast(target, SPELL_CHAIN_LIGHTNING);
-
- chainlightning_timer = 25000;
- } else chainlightning_timer -= diff;
-
DoMeleeAttackIfReady();
}
+
+ private:
+ bool summon90;
+ bool summon50;
+ bool summon10;
};
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new boss_darkweaver_sythAI(creature);
+ }
};
/* ELEMENTALS */
-class mob_syth_fire : public CreatureScript
+class npc_syth_fire : public CreatureScript
{
public:
- mob_syth_fire() : CreatureScript("mob_syth_fire") { }
+ npc_syth_fire() : CreatureScript("npc_syth_fire") { }
- struct mob_syth_fireAI : public ScriptedAI
+ struct npc_syth_fireAI : public ScriptedAI
{
- mob_syth_fireAI(Creature* creature) : ScriptedAI(creature)
+ npc_syth_fireAI(Creature* creature) : ScriptedAI(creature)
{
}
uint32 flameshock_timer;
uint32 flamebuffet_timer;
- void Reset()
+ void Reset() OVERRIDE
{
me->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_FIRE, true);
flameshock_timer = 2500;
flamebuffet_timer = 5000;
}
- void EnterCombat(Unit* /*who*/) { }
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -245,41 +249,41 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_syth_fireAI (creature);
+ return new npc_syth_fireAI(creature);
}
};
-class mob_syth_arcane : public CreatureScript
+class npc_syth_arcane : public CreatureScript
{
public:
- mob_syth_arcane() : CreatureScript("mob_syth_arcane") { }
+ npc_syth_arcane() : CreatureScript("npc_syth_arcane") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_syth_arcaneAI (creature);
+ return new npc_syth_arcaneAI(creature);
}
- struct mob_syth_arcaneAI : public ScriptedAI
+ struct npc_syth_arcaneAI : public ScriptedAI
{
- mob_syth_arcaneAI(Creature* creature) : ScriptedAI(creature)
+ npc_syth_arcaneAI(Creature* creature) : ScriptedAI(creature)
{
}
uint32 arcaneshock_timer;
uint32 arcanebuffet_timer;
- void Reset()
+ void Reset() OVERRIDE
{
me->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_ARCANE, true);
arcaneshock_timer = 2500;
arcanebuffet_timer = 5000;
}
- void EnterCombat(Unit* /*who*/) { }
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -305,35 +309,35 @@ public:
};
};
-class mob_syth_frost : public CreatureScript
+class npc_syth_frost : public CreatureScript
{
public:
- mob_syth_frost() : CreatureScript("mob_syth_frost") { }
+ npc_syth_frost() : CreatureScript("npc_syth_frost") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_syth_frostAI (creature);
+ return new npc_syth_frostAI(creature);
}
- struct mob_syth_frostAI : public ScriptedAI
+ struct npc_syth_frostAI : public ScriptedAI
{
- mob_syth_frostAI(Creature* creature) : ScriptedAI(creature)
+ npc_syth_frostAI(Creature* creature) : ScriptedAI(creature)
{
}
uint32 frostshock_timer;
uint32 frostbuffet_timer;
- void Reset()
+ void Reset() OVERRIDE
{
me->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_FROST, true);
frostshock_timer = 2500;
frostbuffet_timer = 5000;
}
- void EnterCombat(Unit* /*who*/) { }
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -360,35 +364,35 @@ public:
};
-class mob_syth_shadow : public CreatureScript
+class npc_syth_shadow : public CreatureScript
{
public:
- mob_syth_shadow() : CreatureScript("mob_syth_shadow") { }
+ npc_syth_shadow() : CreatureScript("npc_syth_shadow") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_syth_shadowAI (creature);
+ return new npc_syth_shadowAI(creature);
}
- struct mob_syth_shadowAI : public ScriptedAI
+ struct npc_syth_shadowAI : public ScriptedAI
{
- mob_syth_shadowAI(Creature* creature) : ScriptedAI(creature)
+ npc_syth_shadowAI(Creature* creature) : ScriptedAI(creature)
{
}
uint32 shadowshock_timer;
uint32 shadowbuffet_timer;
- void Reset()
+ void Reset() OVERRIDE
{
me->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_SHADOW, true);
shadowshock_timer = 2500;
shadowbuffet_timer = 5000;
}
- void EnterCombat(Unit* /*who*/) { }
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -418,8 +422,8 @@ public:
void AddSC_boss_darkweaver_syth()
{
new boss_darkweaver_syth();
- new mob_syth_fire();
- new mob_syth_arcane();
- new mob_syth_frost();
- new mob_syth_shadow();
+ new npc_syth_fire();
+ new npc_syth_arcane();
+ new npc_syth_frost();
+ new npc_syth_shadow();
}
diff --git a/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_tailonking_ikiss.cpp b/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_tailonking_ikiss.cpp
index 4a9a98abcde..9d3aa623011 100644
--- a/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_tailonking_ikiss.cpp
+++ b/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_tailonking_ikiss.cpp
@@ -27,14 +27,17 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "sethekk_halls.h"
-enum TailonkingIkiss
+enum Says
{
SAY_INTRO = 0,
SAY_AGGRO = 1,
SAY_SLAY = 2,
SAY_DEATH = 3,
- EMOTE_ARCANE_EXP = 4,
+ EMOTE_ARCANE_EXP = 4
+};
+enum Spells
+{
SPELL_BLINK = 38194,
SPELL_BLINK_TELEPORT = 38203,
SPELL_MANA_SHIELD = 38151,
@@ -53,30 +56,11 @@ class boss_talon_king_ikiss : public CreatureScript
public:
boss_talon_king_ikiss() : CreatureScript("boss_talon_king_ikiss") { }
- CreatureAI* GetAI(Creature* creature) const
+ struct boss_talon_king_ikissAI : public BossAI
{
- return new boss_talon_king_ikissAI (creature);
- }
+ boss_talon_king_ikissAI(Creature* creature) : BossAI(creature, DATA_TALON_KING_IKISS) { }
- struct boss_talon_king_ikissAI : public ScriptedAI
- {
- boss_talon_king_ikissAI(Creature* creature) : ScriptedAI(creature)
- {
- instance = creature->GetInstanceScript();
- }
-
- InstanceScript* instance;
-
- uint32 ArcaneVolley_Timer;
- uint32 Sheep_Timer;
- uint32 Blink_Timer;
- uint32 Slow_Timer;
-
- bool ManaShield;
- bool Blink;
- bool Intro;
-
- void Reset()
+ void Reset() OVERRIDE
{
ArcaneVolley_Timer = 5000;
Sheep_Timer = 8000;
@@ -87,9 +71,10 @@ public:
ManaShield = false;
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
- if (!me->getVictim() && me->canCreatureAttack(who))
+ if (!me->GetVictim() && me->CanCreatureAttack(who))
{
if (!Intro && me->IsWithinDistInMap(who, 100))
{
@@ -109,25 +94,25 @@ public:
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
if (instance)
- instance->SetData(DATA_IKISSDOOREVENT, DONE);
+ instance->SetData(DATA_TALON_KING_IKISS, DONE);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -203,8 +188,22 @@ public:
if (!Blink)
DoMeleeAttackIfReady();
}
+
+ private:
+ uint32 ArcaneVolley_Timer;
+ uint32 Sheep_Timer;
+ uint32 Blink_Timer;
+ uint32 Slow_Timer;
+
+ bool ManaShield;
+ bool Blink;
+ bool Intro;
};
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new boss_talon_king_ikissAI(creature);
+ }
};
void AddSC_boss_talon_king_ikiss()
diff --git a/src/server/scripts/Outland/Auchindoun/SethekkHalls/instance_sethekk_halls.cpp b/src/server/scripts/Outland/Auchindoun/SethekkHalls/instance_sethekk_halls.cpp
index 785ec185941..67f4dc1423a 100644
--- a/src/server/scripts/Outland/Auchindoun/SethekkHalls/instance_sethekk_halls.cpp
+++ b/src/server/scripts/Outland/Auchindoun/SethekkHalls/instance_sethekk_halls.cpp
@@ -27,67 +27,114 @@ EndScriptData */
#include "InstanceScript.h"
#include "sethekk_halls.h"
-enum eEnums
-{
- NPC_ANZU = 23035,
- IKISS_DOOR = 177203,
-};
-
class instance_sethekk_halls : public InstanceMapScript
{
public:
instance_sethekk_halls() : InstanceMapScript("instance_sethekk_halls", 556) { }
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_sethekk_halls_InstanceMapScript(map);
}
struct instance_sethekk_halls_InstanceMapScript : public InstanceScript
{
- instance_sethekk_halls_InstanceMapScript(Map* map) : InstanceScript(map) {}
-
- uint32 AnzuEncounter;
- uint64 m_uiIkissDoorGUID;
+ instance_sethekk_halls_InstanceMapScript(Map* map) : InstanceScript(map)
+ {
+ SetBossNumber(EncounterCount);
+ }
void Initialize()
{
- AnzuEncounter = NOT_STARTED;
- m_uiIkissDoorGUID = 0;
+ SetBossState(DATA_ANZU, NOT_STARTED);
+ iIkissDoorGUID = 0;
}
void OnCreatureCreate(Creature* creature)
{
if (creature->GetEntry() == NPC_ANZU)
{
- if (AnzuEncounter >= IN_PROGRESS)
+ if (GetBossState(DATA_ANZU) == DONE)
creature->DisappearAndDie();
else
- AnzuEncounter = IN_PROGRESS;
+ SetBossState(DATA_ANZU, IN_PROGRESS);
}
}
void OnGameObjectCreate(GameObject* go)
{
- if (go->GetEntry() == IKISS_DOOR)
- m_uiIkissDoorGUID = go->GetGUID();
+ if (go->GetEntry() == GO_IKISS_DOOR)
+ iIkissDoorGUID = go->GetGUID();
}
- void SetData(uint32 type, uint32 data)
+ bool SetBossState(uint32 type, EncounterState state)
{
+ if (!InstanceScript::SetBossState(type, state))
+ return false;
+
switch (type)
{
- case DATA_IKISSDOOREVENT:
- if (data == DONE)
- DoUseDoorOrButton(m_uiIkissDoorGUID, DAY*IN_MILLISECONDS);
+ case DATA_DARKWEAVER_SYTH:
+ break;
+ case DATA_TALON_KING_IKISS:
+ if (state == DONE)
+ DoUseDoorOrButton(iIkissDoorGUID, DAY*IN_MILLISECONDS);
break;
- case TYPE_ANZU_ENCOUNTER:
- AnzuEncounter = data;
+ case DATA_ANZU:
+ break;
+ default:
break;
}
+
+ return true;
}
- };
+ std::string GetSaveData()
+ {
+ OUT_SAVE_INST_DATA;
+
+ std::ostringstream saveStream;
+ saveStream << "S H " << GetBossSaveData();
+
+ OUT_SAVE_INST_DATA_COMPLETE;
+ return saveStream.str();
+ }
+
+ void Load(const char* str)
+ {
+ if (!str)
+ {
+ OUT_LOAD_INST_DATA_FAIL;
+ return;
+ }
+
+ OUT_LOAD_INST_DATA(str);
+
+ char dataHead1, dataHead2;
+
+ std::istringstream loadStream(str);
+ loadStream >> dataHead1 >> dataHead2;
+
+ if (dataHead1 == 'S' && dataHead2 == 'H')
+ {
+ for (uint32 i = 0; i < EncounterCount; ++i)
+ {
+ uint32 tmpState;
+ loadStream >> tmpState;
+ if (tmpState == IN_PROGRESS || tmpState > SPECIAL)
+ tmpState = NOT_STARTED;
+ SetBossState(i, EncounterState(tmpState));
+ }
+ }
+ else
+ OUT_LOAD_INST_DATA_FAIL;
+
+ OUT_LOAD_INST_DATA_COMPLETE;
+ }
+
+ protected:
+ uint64 iIkissDoorGUID;
+ };
};
void AddSC_instance_sethekk_halls()
diff --git a/src/server/scripts/Outland/Auchindoun/SethekkHalls/sethekk_halls.h b/src/server/scripts/Outland/Auchindoun/SethekkHalls/sethekk_halls.h
index 58e6cc685ce..86789e9982f 100644
--- a/src/server/scripts/Outland/Auchindoun/SethekkHalls/sethekk_halls.h
+++ b/src/server/scripts/Outland/Auchindoun/SethekkHalls/sethekk_halls.h
@@ -1,6 +1,5 @@
/*
* Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
- * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
@@ -19,10 +18,24 @@
#ifndef DEF_SETHEKK_HALLS_H
#define DEF_SETHEKK_HALLS_H
-enum eTypes
+uint32 const EncounterCount = 3;
+
+enum DataTypes
{
- DATA_IKISSDOOREVENT = 1,
- TYPE_ANZU_ENCOUNTER = 2,
+ DATA_DARKWEAVER_SYTH = 0,
+ DATA_TALON_KING_IKISS = 1,
+ DATA_ANZU = 2
+};
+
+enum CreatureIds
+{
+ NPC_ANZU = 23035,
+ NPC_BROOD_OF_ANZU = 23132
};
-#endif
+enum GameObjectIds
+{
+ GO_IKISS_DOOR = 177203
+};
+
+#endif
diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp
index cd7f8e120de..ffadfccecfe 100644
--- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp
+++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp
@@ -28,14 +28,17 @@ EndScriptData */
#include "ScriptedEscortAI.h"
#include "shadow_labyrinth.h"
-enum eEnums
+enum Yells
{
SAY_INTRO = 0,
SAY_AGGRO = 1,
SAY_HELP = 2,
SAY_SLAY = 3,
- SAY_DEATH = 4,
+ SAY_DEATH = 4
+};
+enum Spells
+{
SPELL_BANISH = 30231,
SPELL_CORROSIVE_ACID = 33551,
SPELL_FEAR = 33547,
@@ -47,7 +50,7 @@ class boss_ambassador_hellmaw : public CreatureScript
public:
boss_ambassador_hellmaw() : CreatureScript("boss_ambassador_hellmaw") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_ambassador_hellmawAI(creature);
}
@@ -69,7 +72,7 @@ public:
bool IsBanished;
bool Enraged;
- void Reset()
+ void Reset() OVERRIDE
{
EventCheck_Timer = 5000;
CorrosiveAcid_Timer = urand(5000, 10000);
@@ -79,20 +82,21 @@ public:
IsBanished = true;
Enraged = false;
- if (instance && me->isAlive())
+ if (instance && me->IsAlive())
{
if (instance->GetData(TYPE_OVERSEER) != DONE)
DoCast(me, SPELL_BANISH, true);
}
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
if (instance)
instance->SetData(TYPE_HELLMAW, FAIL);
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (me->HasAura(SPELL_BANISH))
return;
@@ -100,7 +104,7 @@ public:
npc_escortAI::MoveInLineOfSight(who);
}
- void WaypointReached(uint32 /*waypointId*/)
+ void WaypointReached(uint32 /*waypointId*/) OVERRIDE
{
}
@@ -124,17 +128,17 @@ public:
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -142,7 +146,7 @@ public:
instance->SetData(TYPE_HELLMAW, DONE);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!Intro && !HasEscortState(STATE_ESCORT_ESCORTING))
{
@@ -179,7 +183,7 @@ public:
if (CorrosiveAcid_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_CORROSIVE_ACID);
+ DoCastVictim(SPELL_CORROSIVE_ACID);
CorrosiveAcid_Timer = urand(15000, 25000);
} else CorrosiveAcid_Timer -= diff;
diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp
index 0c0bae17c5d..573acfce5c2 100644
--- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp
+++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp
@@ -16,12 +16,12 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-/* ScriptData
-SDName: Boss_Blackheart_the_Inciter
-SD%Complete: 75
-SDComment: Incite Chaos not functional since core lacks Mind Control support
-SDCategory: Auchindoun, Shadow Labyrinth
-EndScriptData */
+/*
+Name: Boss_Blackheart_the_Inciter
+%Complete: 75
+Comment: Incite Chaos not functional since core lacks Mind Control support
+Category: Auchindoun, Shadow Labyrinth
+*/
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
@@ -48,49 +48,37 @@ enum BlackheartTheInciter
SAY2_DEATH = 9
};
+enum Events
+{
+ EVENT_INCITE_CHAOS_WAIT = 1,
+ EVENT_INCITE_CHAOS = 2,
+ EVENT_CHARGE_ATTACK = 3,
+ EVENT_WAR_STOMP = 4
+};
+
class boss_blackheart_the_inciter : public CreatureScript
{
public:
boss_blackheart_the_inciter() : CreatureScript("boss_blackheart_the_inciter") { }
- CreatureAI* GetAI(Creature* creature) const
- {
- return new boss_blackheart_the_inciterAI (creature);
- }
-
- struct boss_blackheart_the_inciterAI : public ScriptedAI
+ struct boss_blackheart_the_inciterAI : public BossAI
{
- boss_blackheart_the_inciterAI(Creature* creature) : ScriptedAI(creature)
- {
- instance = creature->GetInstanceScript();
- }
-
- InstanceScript* instance;
-
- bool InciteChaos;
- uint32 InciteChaos_Timer;
- uint32 InciteChaosWait_Timer;
- uint32 Charge_Timer;
- uint32 Knockback_Timer;
+ boss_blackheart_the_inciterAI(Creature* creature) : BossAI(creature, DATA_BLACKHEARTTHEINCITEREVENT) { }
- void Reset()
+ void Reset() OVERRIDE
{
InciteChaos = false;
- InciteChaos_Timer = 20000;
- InciteChaosWait_Timer = 15000;
- Charge_Timer = 5000;
- Knockback_Timer = 15000;
if (instance)
instance->SetData(DATA_BLACKHEARTTHEINCITEREVENT, NOT_STARTED);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -98,68 +86,76 @@ public:
instance->SetData(DATA_BLACKHEARTTHEINCITEREVENT, DONE);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
+ events.ScheduleEvent(EVENT_INCITE_CHAOS_WAIT, 15000);
+ events.ScheduleEvent(EVENT_INCITE_CHAOS, 20000);
+ events.ScheduleEvent(EVENT_CHARGE_ATTACK, 5000);
+ events.ScheduleEvent(EVENT_WAR_STOMP, 15000);
+
Talk(SAY_AGGRO);
if (instance)
instance->SetData(DATA_BLACKHEARTTHEINCITEREVENT, IN_PROGRESS);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
- //Return since we have no target
if (!UpdateVictim())
return;
- if (InciteChaos)
- {
- if (InciteChaosWait_Timer <= diff)
- {
- InciteChaos = false;
- InciteChaosWait_Timer = 15000;
- } else InciteChaosWait_Timer -= diff;
+ events.Update(diff);
+ if (me->HasUnitState(UNIT_STATE_CASTING))
return;
- }
- if (InciteChaos_Timer <= diff)
+ while (uint32 eventId = events.ExecuteEvent())
{
- DoCast(me, SPELL_INCITE_CHAOS);
-
- std::list<HostileReference*> t_list = me->getThreatManager().getThreatList();
- for (std::list<HostileReference*>::const_iterator itr = t_list.begin(); itr!= t_list.end(); ++itr)
+ switch (eventId)
{
- Unit* target = Unit::GetUnit(*me, (*itr)->getUnitGuid());
- if (target && target->GetTypeId() == TYPEID_PLAYER)
- me->CastSpell(target, SPELL_INCITE_CHAOS_B, true);
+ case EVENT_INCITE_CHAOS_WAIT:
+ InciteChaos = false;
+ events.ScheduleEvent(EVENT_INCITE_CHAOS_WAIT, 15000);
+ break;
+ case EVENT_INCITE_CHAOS:
+ {
+ DoCast(me, SPELL_INCITE_CHAOS);
+
+ std::list<HostileReference*> t_list = me->getThreatManager().getThreatList();
+ for (std::list<HostileReference*>::const_iterator itr = t_list.begin(); itr!= t_list.end(); ++itr)
+ {
+ Unit* target = Unit::GetUnit(*me, (*itr)->getUnitGuid());
+ if (target && target->GetTypeId() == TYPEID_PLAYER)
+ me->CastSpell(target, SPELL_INCITE_CHAOS_B, true);
+ }
+
+ DoResetThreat();
+ InciteChaos = true;
+ events.ScheduleEvent(EVENT_INCITE_CHAOS, 40000);
+ break;
+ }
+ case EVENT_CHARGE_ATTACK:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
+ DoCast(target, SPELL_CHARGE);
+ events.ScheduleEvent(EVENT_CHARGE, urand(15000, 25000));
+ break;
+ case EVENT_WAR_STOMP:
+ DoCast(me, SPELL_WAR_STOMP);
+ events.ScheduleEvent(EVENT_WAR_STOMP, urand(18000, 24000));
+ break;
}
-
- DoResetThreat();
- InciteChaos = true;
- InciteChaos_Timer = 40000;
- return;
- } else InciteChaos_Timer -= diff;
-
- //Charge_Timer
- if (Charge_Timer <= diff)
- {
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- DoCast(target, SPELL_CHARGE);
- Charge_Timer = urand(15000, 25000);
- } else Charge_Timer -= diff;
-
- //Knockback_Timer
- if (Knockback_Timer <= diff)
- {
- DoCast(me, SPELL_WAR_STOMP);
- Knockback_Timer = urand(18000, 24000);
- } else Knockback_Timer -= diff;
-
+ }
DoMeleeAttackIfReady();
}
+
+ private:
+ bool InciteChaos;
};
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new boss_blackheart_the_inciterAI(creature);
+ }
};
void AddSC_boss_blackheart_the_inciter()
diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp
index a067bbf92a0..088913b13d2 100644
--- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp
+++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp
@@ -16,12 +16,11 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-/* ScriptData
-SDName: Boss_Grandmaster_Vorpil
-SD%Complete: 100
-SDComment:
-SDCategory: Auchindoun, Shadow Labyrinth
-EndScriptData */
+/*
+Name: Boss_Grandmaster_Vorpil
+%Complete: 100
+Category: Auchindoun, Shadow Labyrinth
+*/
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
@@ -43,13 +42,13 @@ enum GrandmasterVorpil
SPELL_SHADOWBOLT_VOLLEY = 33841,
SPELL_BANISH = 38791,
- MOB_VOID_TRAVELER = 19226,
+ NPC_VOID_TRAVELER = 19226,
SPELL_SACRIFICE = 33587,
SPELL_SHADOW_NOVA = 33846,
SPELL_EMPOWERING_SHADOWS = 33783,
H_SPELL_EMPOWERING_SHADOWS = 39364,
- MOB_VOID_PORTAL = 19224,
+ NPC_VOID_PORTAL = 19224,
SPELL_VOID_PORTAL_VISUAL = 33569
};
@@ -64,36 +63,37 @@ float VoidPortalCoords[5][3] =
{-261.4533f, -297.3298f, 17.1f}
};
-class mob_voidtraveler : public CreatureScript
+enum Events
{
-public:
- mob_voidtraveler() : CreatureScript("mob_voidtraveler") { }
+ EVENT_SHADOWBOLT_VOLLEY = 1,
+ EVENT_BANISH = 2,
+ EVENT_DRAW_SHADOWS = 3,
+ EVENT_SUMMON_TRAVELER = 4
+};
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_voidtravelerAI (creature);
- }
+class npc_voidtraveler : public CreatureScript
+{
+public:
+ npc_voidtraveler() : CreatureScript("npc_voidtraveler") { }
- struct mob_voidtravelerAI : public ScriptedAI
+ struct npc_voidtravelerAI : public ScriptedAI
{
- mob_voidtravelerAI(Creature* creature) : ScriptedAI(creature)
- {
- }
+ npc_voidtravelerAI(Creature* creature) : ScriptedAI(creature) {}
uint64 VorpilGUID;
uint32 move;
bool sacrificed;
- void Reset()
+ void Reset() OVERRIDE
{
VorpilGUID = 0;
move = 0;
sacrificed = false;
}
- void EnterCombat(Unit* /*who*/){}
+ void EnterCombat(Unit* /*who*/)OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!VorpilGUID)
{
@@ -125,7 +125,7 @@ public:
move = 500;
return;
}
- if (!Vorpil->isInCombat() || Vorpil->isDead())
+ if (!Vorpil->IsInCombat() || Vorpil->isDead())
{
me->Kill(me);
return;
@@ -135,6 +135,10 @@ public:
}
};
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_voidtravelerAI(creature);
+ }
};
class boss_grandmaster_vorpil : public CreatureScript
@@ -142,35 +146,15 @@ class boss_grandmaster_vorpil : public CreatureScript
public:
boss_grandmaster_vorpil() : CreatureScript("boss_grandmaster_vorpil") { }
- CreatureAI* GetAI(Creature* creature) const
- {
- return new boss_grandmaster_vorpilAI (creature);
- }
-
- struct boss_grandmaster_vorpilAI : public ScriptedAI
+ struct boss_grandmaster_vorpilAI : public BossAI
{
- boss_grandmaster_vorpilAI(Creature* creature) : ScriptedAI(creature)
+ boss_grandmaster_vorpilAI(Creature* creature) : BossAI(creature, DATA_GRANDMASTERVORPIL)
{
- instance = creature->GetInstanceScript();
Intro = false;
}
- InstanceScript* instance;
- bool Intro, HelpYell;
- bool sumportals;
-
- uint32 ShadowBoltVolley_Timer;
- uint32 DrawShadows_Timer;
- uint32 summonTraveler_Timer;
- uint32 banish_Timer;
- uint64 PortalsGuid[5];
-
- void Reset()
+ void Reset() OVERRIDE
{
- ShadowBoltVolley_Timer = urand(7000, 14000);
- DrawShadows_Timer = 45000;
- summonTraveler_Timer = 90000;
- banish_Timer = 17000;
HelpYell = false;
sumportals = false;
destroyPortals();
@@ -186,7 +170,7 @@ public:
for (uint8 i = 0; i < 5; ++i)
{
Creature* Portal = NULL;
- Portal = me->SummonCreature(MOB_VOID_PORTAL, VoidPortalCoords[i][0], VoidPortalCoords[i][1], VoidPortalCoords[i][2], 0, TEMPSUMMON_CORPSE_DESPAWN, 3000000);
+ Portal = me->SummonCreature(NPC_VOID_PORTAL, VoidPortalCoords[i][0], VoidPortalCoords[i][1], VoidPortalCoords[i][2], 0, TEMPSUMMON_CORPSE_DESPAWN, 3000000);
if (Portal)
{
PortalsGuid[i] = Portal->GetGUID();
@@ -194,7 +178,7 @@ public:
}
}
sumportals = true;
- summonTraveler_Timer = 5000;
+ events.ScheduleEvent(EVENT_SUMMON_TRAVELER, 5000);
}
}
@@ -205,7 +189,7 @@ public:
for (uint8 i = 0; i < 5; ++i)
{
Unit* Portal = Unit::GetUnit(*me, PortalsGuid[i]);
- if (Portal && Portal->isAlive())
+ if (Portal && Portal->IsAlive())
Portal->DealDamage(Portal, Portal->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
PortalsGuid[i] = 0;
}
@@ -216,7 +200,7 @@ public:
void spawnVoidTraveler()
{
int pos = urand(0, 4);
- me->SummonCreature(MOB_VOID_TRAVELER, VoidPortalCoords[pos][0], VoidPortalCoords[pos][1], VoidPortalCoords[pos][2], 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 5000);
+ me->SummonCreature(NPC_VOID_TRAVELER, VoidPortalCoords[pos][0], VoidPortalCoords[pos][1], VoidPortalCoords[pos][2], 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 5000);
if (!HelpYell)
{
Talk(SAY_HELP);
@@ -224,18 +208,18 @@ public:
}
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
- if (summoned && summoned->GetEntry() == MOB_VOID_TRAVELER)
- CAST_AI(mob_voidtraveler::mob_voidtravelerAI, summoned->AI())->VorpilGUID = me->GetGUID();
+ if (summoned && summoned->GetEntry() == NPC_VOID_TRAVELER)
+ CAST_AI(npc_voidtraveler::npc_voidtravelerAI, summoned->AI())->VorpilGUID = me->GetGUID();
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
destroyPortals();
@@ -244,16 +228,24 @@ public:
instance->SetData(DATA_GRANDMASTERVORPILEVENT, DONE);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
+ events.ScheduleEvent(EVENT_SHADOWBOLT_VOLLEY, urand(7000, 14000));
+ if (IsHeroic())
+ events.ScheduleEvent(EVENT_BANISH, 17000);
+ events.ScheduleEvent(EVENT_DRAW_SHADOWS, 45000);
+ events.ScheduleEvent(EVENT_SUMMON_TRAVELER, 90000);
+
Talk(SAY_AGGRO);
summonPortals();
if (instance)
instance->SetData(DATA_GRANDMASTERVORPILEVENT, IN_PROGRESS);
+ _EnterCombat();
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
ScriptedAI::MoveInLineOfSight(who);
@@ -264,62 +256,73 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
- if (ShadowBoltVolley_Timer <= diff)
- {
- DoCast(me, SPELL_SHADOWBOLT_VOLLEY);
- ShadowBoltVolley_Timer = urand(15000, 30000);
- } else ShadowBoltVolley_Timer -= diff;
+ events.Update(diff);
+
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
- if (IsHeroic() && banish_Timer <= diff)
+ while (uint32 eventId = events.ExecuteEvent())
{
- Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 30, false);
- if (target)
+ switch (eventId)
{
- DoCast(target, SPELL_BANISH);
- banish_Timer = 16000;
+ case EVENT_SHADOWBOLT_VOLLEY:
+ DoCast(me, SPELL_SHADOWBOLT_VOLLEY);
+ events.ScheduleEvent(EVENT_SHADOWBOLT_VOLLEY, urand(15000, 30000));
+ break;
+ case EVENT_BANISH:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 30, false))
+ DoCast(target, SPELL_BANISH);
+ events.ScheduleEvent(EVENT_BANISH, 16000);
+ break;
+ case EVENT_DRAW_SHADOWS:
+ {
+ Map* map = me->GetMap();
+ Map::PlayerList const &PlayerList = map->GetPlayers();
+ for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
+ if (Player* i_pl = i->GetSource())
+ if (i_pl->IsAlive() && !i_pl->HasAura(SPELL_BANISH))
+ i_pl->TeleportTo(me->GetMapId(), VorpilPosition[0], VorpilPosition[1], VorpilPosition[2], 0, TELE_TO_NOT_LEAVE_COMBAT);
+
+ me->SetPosition(VorpilPosition[0], VorpilPosition[1], VorpilPosition[2], 0.0f);
+ DoCast(me, SPELL_DRAW_SHADOWS, true);
+ DoCast(me, SPELL_RAIN_OF_FIRE);
+ events.ScheduleEvent(EVENT_SHADOWBOLT_VOLLEY, 6000);
+ events.ScheduleEvent(EVENT_DRAW_SHADOWS, 30000);
+ break;
+ }
+ case EVENT_SUMMON_TRAVELER:
+ spawnVoidTraveler();
+ events.ScheduleEvent(EVENT_SUMMON_TRAVELER, 10000);
+ //enrage at 20%
+ if (HealthBelowPct(20))
+ events.ScheduleEvent(EVENT_SUMMON_TRAVELER, 5000);
+ break;
}
- } else banish_Timer -= diff;
-
- if (DrawShadows_Timer <= diff)
- {
- Map* map = me->GetMap();
- Map::PlayerList const &PlayerList = map->GetPlayers();
- for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
- if (Player* i_pl = i->getSource())
- if (i_pl->isAlive() && !i_pl->HasAura(SPELL_BANISH))
- i_pl->TeleportTo(me->GetMapId(), VorpilPosition[0], VorpilPosition[1], VorpilPosition[2], 0, TELE_TO_NOT_LEAVE_COMBAT);
-
- me->SetPosition(VorpilPosition[0], VorpilPosition[1], VorpilPosition[2], 0.0f);
- DoCast(me, SPELL_DRAW_SHADOWS, true);
-
- DoCast(me, SPELL_RAIN_OF_FIRE);
+ }
+ DoMeleeAttackIfReady();
+ }
- ShadowBoltVolley_Timer = 6000;
- DrawShadows_Timer = 30000;
- } else DrawShadows_Timer -= diff;
+ private:
+ bool Intro, HelpYell;
+ bool sumportals;
+ uint64 PortalsGuid[5];
- if (summonTraveler_Timer <= diff)
- {
- spawnVoidTraveler();
- summonTraveler_Timer = 10000;
- //enrage at 20%
- if (HealthBelowPct(20))
- summonTraveler_Timer = 5000;
- } else summonTraveler_Timer -=diff;
- DoMeleeAttackIfReady();
- }
};
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new boss_grandmaster_vorpilAI(creature);
+ }
};
void AddSC_boss_grandmaster_vorpil()
{
new boss_grandmaster_vorpil();
- new mob_voidtraveler();
+ new npc_voidtraveler();
}
diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp
index e09371bca13..99078b3b15d 100644
--- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp
+++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp
@@ -30,53 +30,51 @@ EndScriptData */
enum Murmur
{
+ // Spell
SPELL_RESONANCE = 33657,
SPELL_MAGNETIC_PULL = 33689,
SPELL_SONIC_SHOCK = 38797,
SPELL_THUNDERING_STORM = 39365,
+ SPELL_SONIC_BOOM_CAST = 33923,
+ SPELL_SONIC_BOOM_EFFECT = 33666,
+ SPELL_MURMURS_TOUCH = 33711,
+ // Text
EMOTE_SONIC_BOOM = 0
};
-#define SPELL_SONIC_BOOM_CAST DUNGEON_MODE(33923, 38796)
-#define SPELL_SONIC_BOOM_EFFECT DUNGEON_MODE(33666, 38795)
-
-#define SPELL_MURMURS_TOUCH DUNGEON_MODE(33711, 38794)
-
+enum Events
+{
+ EVENT_SONIC_BOOM = 1,
+ EVENT_MURMURS_TOUCH = 2,
+ EVENT_RESONANCE = 3,
+ EVENT_MAGNETIC_PULL = 4,
+ EVENT_THUNDERING_STORM = 5,
+ EVENT_SONIC_SHOCK = 6
+};
class boss_murmur : public CreatureScript
{
public:
boss_murmur() : CreatureScript("boss_murmur") { }
- CreatureAI* GetAI(Creature* creature) const
+ struct boss_murmurAI : public BossAI
{
- return new boss_murmurAI (creature);
- }
-
- struct boss_murmurAI : public ScriptedAI
- {
- boss_murmurAI(Creature* creature) : ScriptedAI(creature)
+ boss_murmurAI(Creature* creature) : BossAI(creature, DATA_MURMUREVENT)
{
SetCombatMovement(false);
}
- uint32 SonicBoom_Timer;
- uint32 MurmursTouch_Timer;
- uint32 Resonance_Timer;
- uint32 MagneticPull_Timer;
- uint32 SonicShock_Timer;
- uint32 ThunderingStorm_Timer;
- bool SonicBoom;
-
- void Reset()
+ void Reset() OVERRIDE
{
- SonicBoom_Timer = 30000;
- MurmursTouch_Timer = urand(8000, 20000);
- Resonance_Timer = 5000;
- MagneticPull_Timer = urand(15000, 30000);
- ThunderingStorm_Timer = 15000;
- SonicShock_Timer = 10000;
- SonicBoom = false;
+ events.ScheduleEvent(EVENT_SONIC_BOOM, 30000);
+ events.ScheduleEvent(EVENT_MURMURS_TOUCH, urand(8000, 20000));
+ events.ScheduleEvent(EVENT_RESONANCE, 5000);
+ events.ScheduleEvent(EVENT_MAGNETIC_PULL, urand(15000, 30000));
+ if (IsHeroic())
+ {
+ events.ScheduleEvent(EVENT_THUNDERING_STORM, 15000);
+ events.ScheduleEvent(EVENT_SONIC_SHOCK, 10000);
+ }
//database should have `RegenHealth`=0 to prevent regen
uint32 hp = me->CountPctFromMaxHealth(40);
@@ -102,102 +100,86 @@ public:
}
}
- void EnterCombat(Unit* /*who*/) { }
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
// Sonic Boom instant damage (needs core fix instead of this)
- void SpellHitTarget(Unit* target, const SpellInfo* spell)
+ void SpellHitTarget(Unit* target, const SpellInfo* spell) OVERRIDE
{
- if (target && target->isAlive() && spell && spell->Id == uint32(SPELL_SONIC_BOOM_EFFECT))
+ if (target && target->IsAlive() && spell && spell->Id == uint32(SPELL_SONIC_BOOM_EFFECT))
me->DealDamage(target, (target->GetHealth()*90)/100, NULL, SPELL_DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NATURE, spell);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target or casting
if (!UpdateVictim() || me->IsNonMeleeSpellCasted(false))
return;
- // Sonic Boom
- if (SonicBoom)
- {
- DoCast(me, SPELL_SONIC_BOOM_EFFECT, true);
- SonicBoomEffect();
-
- SonicBoom = false;
- Resonance_Timer = 1500;
- }
- if (SonicBoom_Timer <= diff)
- {
- Talk(EMOTE_SONIC_BOOM);
- DoCast(me, SPELL_SONIC_BOOM_CAST);
- SonicBoom_Timer = 30000;
- SonicBoom = true;
- return;
- } else SonicBoom_Timer -= diff;
-
- // Murmur's Touch
- if (MurmursTouch_Timer <= diff)
- {
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 80, true))
- DoCast(target, SPELL_MURMURS_TOUCH);
- MurmursTouch_Timer = urand(25000, 35000);
- } else MurmursTouch_Timer -= diff;
+ events.Update(diff);
- // Resonance
- if (!SonicBoom && !(me->IsWithinMeleeRange(me->getVictim())))
+ while (uint32 eventId = events.ExecuteEvent())
{
- if (Resonance_Timer <= diff)
+ switch (eventId)
{
- DoCast(me, SPELL_RESONANCE);
- Resonance_Timer = 5000;
- } else Resonance_Timer -= diff;
- }
-
- // Magnetic Pull
- if (MagneticPull_Timer <= diff)
- {
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- if (target->GetTypeId() == TYPEID_PLAYER && target->isAlive())
+ case EVENT_SONIC_BOOM:
+ Talk(EMOTE_SONIC_BOOM);
+ DoCast(me, SPELL_SONIC_BOOM_CAST);
+ DoCast(me, SPELL_SONIC_BOOM_EFFECT, true);
+ SonicBoomEffect();
+ events.ScheduleEvent(EVENT_SONIC_BOOM, 30000);
+ events.ScheduleEvent(EVENT_RESONANCE, 1500);
+ break;
+ case EVENT_MURMURS_TOUCH:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 80, true))
+ DoCast(target, SPELL_MURMURS_TOUCH);
+ events.ScheduleEvent(EVENT_MURMURS_TOUCH, urand(25000, 35000));
+ break;
+ case EVENT_RESONANCE:
+ if (!(me->IsWithinMeleeRange(me->GetVictim())))
+ {
+ DoCast(me, SPELL_RESONANCE);
+ events.ScheduleEvent(EVENT_RESONANCE, 5000);
+ }
+ break;
+ case EVENT_MAGNETIC_PULL:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
+ if (target->GetTypeId() == TYPEID_PLAYER && target->IsAlive())
+ {
+ DoCast(target, SPELL_MAGNETIC_PULL);
+ events.ScheduleEvent(EVENT_MAGNETIC_PULL, 15000+rand()%15000);
+ break;
+ }
+ events.ScheduleEvent(EVENT_MAGNETIC_PULL, 500);
+ break;
+ case EVENT_THUNDERING_STORM:
{
- DoCast(target, SPELL_MAGNETIC_PULL);
- MagneticPull_Timer = 15000+rand()%15000;
- return;
+ ThreatContainer::StorageType threatlist = me->getThreatManager().getThreatList();
+ for (ThreatContainer::StorageType::const_iterator i = threatlist.begin(); i != threatlist.end(); ++i)
+ if (Unit* target = Unit::GetUnit(*me, (*i)->getUnitGuid()))
+ if (target->IsAlive() && !me->IsWithinDist(target, 35, false))
+ DoCast(target, SPELL_THUNDERING_STORM, true);
+ events.ScheduleEvent(EVENT_THUNDERING_STORM, 15000);
+ break;
}
- MagneticPull_Timer = 500;
- } else MagneticPull_Timer -= diff;
-
- if (IsHeroic())
- {
- // Thundering Storm
- if (ThunderingStorm_Timer <= diff)
- {
- ThreatContainer::StorageType threatlist = me->getThreatManager().getThreatList();
- for (ThreatContainer::StorageType::const_iterator i = threatlist.begin(); i != threatlist.end(); ++i)
- if (Unit* target = Unit::GetUnit(*me, (*i)->getUnitGuid()))
- if (target->isAlive() && !me->IsWithinDist(target, 35, false))
- DoCast(target, SPELL_THUNDERING_STORM, true);
- ThunderingStorm_Timer = 15000;
- } else ThunderingStorm_Timer -= diff;
-
- // Sonic Shock
- if (SonicShock_Timer <= diff)
- {
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 20, false))
- if (target->isAlive())
- DoCast(target, SPELL_SONIC_SHOCK);
- SonicShock_Timer = 10000+rand()%10000;
- } else SonicShock_Timer -= diff;
+ case EVENT_SONIC_SHOCK:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 20, false))
+ if (target->IsAlive())
+ DoCast(target, SPELL_SONIC_SHOCK);
+ events.ScheduleEvent(EVENT_SONIC_SHOCK, 10000+rand()%10000);
+ break;
+ }
}
// Select nearest most aggro target if top aggro too far
if (!me->isAttackReady())
return;
- if (!me->IsWithinMeleeRange(me->getVictim()))
+
+ if (!me->IsWithinMeleeRange(me->GetVictim()))
{
ThreatContainer::StorageType threatlist = me->getThreatManager().getThreatList();
for (ThreatContainer::StorageType::const_iterator i = threatlist.begin(); i != threatlist.end(); ++i)
if (Unit* target = Unit::GetUnit(*me, (*i)->getUnitGuid()))
- if (target->isAlive() && me->IsWithinMeleeRange(target))
+ if (target->IsAlive() && me->IsWithinMeleeRange(target))
{
me->TauntApply(target);
break;
@@ -207,6 +189,11 @@ public:
DoMeleeAttackIfReady();
}
};
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new boss_murmurAI(creature);
+ }
};
void AddSC_boss_murmur()
diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/instance_shadow_labyrinth.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/instance_shadow_labyrinth.cpp
index c850761f518..6e579003262 100644
--- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/instance_shadow_labyrinth.cpp
+++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/instance_shadow_labyrinth.cpp
@@ -27,11 +27,6 @@ EndScriptData */
#include "InstanceScript.h"
#include "shadow_labyrinth.h"
-#define MAX_ENCOUNTER 5
-
-#define REFECTORY_DOOR 183296 //door opened when blackheart the inciter dies
-#define SCREAMING_HALL_DOOR 183295 //door opened when grandmaster vorpil dies
-
/* Shadow Labyrinth encounters:
1 - Ambassador Hellmaw event
2 - Blackheart the Inciter event
@@ -44,7 +39,7 @@ class instance_shadow_labyrinth : public InstanceMapScript
public:
instance_shadow_labyrinth() : InstanceMapScript("instance_shadow_labyrinth", 555) { }
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_shadow_labyrinth_InstanceMapScript(map);
}
@@ -53,7 +48,7 @@ public:
{
instance_shadow_labyrinth_InstanceMapScript(Map* map) : InstanceScript(map) {}
- uint32 m_auiEncounter[MAX_ENCOUNTER];
+ uint32 m_auiEncounter[EncounterCount];
std::string str_data;
uint64 m_uiRefectoryDoorGUID;
@@ -75,7 +70,7 @@ public:
bool IsEncounterInProgress() const
{
- for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
+ for (uint8 i = 0; i < EncounterCount; ++i)
if (m_auiEncounter[i] == IN_PROGRESS)
return true;
@@ -107,7 +102,7 @@ public:
m_uiGrandmasterVorpil = creature->GetGUID();
break;
case 18796:
- if (creature->isAlive())
+ if (creature->IsAlive())
{
++m_uiFelOverseerCount;
TC_LOG_DEBUG(LOG_FILTER_TSCR, "Shadow Labyrinth: counting %u Fel Overseers.", m_uiFelOverseerCount);
@@ -116,7 +111,7 @@ public:
}
}
- void SetData(uint32 type, uint32 uiData)
+ void SetData(uint32 type, uint32 uiData) OVERRIDE
{
switch (type)
{
@@ -179,7 +174,7 @@ public:
}
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -191,7 +186,7 @@ public:
return false;
}
- uint64 GetData64(uint32 identifier) const
+ uint64 GetData64(uint32 identifier) const OVERRIDE
{
if (identifier == DATA_GRANDMASTERVORPIL)
return m_uiGrandmasterVorpil;
@@ -217,7 +212,7 @@ public:
std::istringstream loadStream(in);
loadStream >> m_auiEncounter[0] >> m_auiEncounter[1] >> m_auiEncounter[2] >> m_auiEncounter[3] >> m_auiEncounter[4];
- for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
+ for (uint8 i = 0; i < EncounterCount; ++i)
if (m_auiEncounter[i] == IN_PROGRESS)
m_auiEncounter[i] = NOT_STARTED;
diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/shadow_labyrinth.h b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/shadow_labyrinth.h
index 9c6ca776dea..8fdb60b32a6 100644
--- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/shadow_labyrinth.h
+++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/shadow_labyrinth.h
@@ -19,11 +19,23 @@
#ifndef DEF_SHADOW_LABYRINTH_H
#define DEF_SHADOW_LABYRINTH_H
-#define TYPE_HELLMAW 1
-#define TYPE_OVERSEER 2
-#define DATA_BLACKHEARTTHEINCITEREVENT 3
-#define DATA_GRANDMASTERVORPILEVENT 4
-#define DATA_MURMUREVENT 5
-#define DATA_GRANDMASTERVORPIL 6
+uint32 const EncounterCount = 5;
+
+enum DataTypes
+{
+ TYPE_HELLMAW = 1,
+ TYPE_OVERSEER = 2,
+ DATA_BLACKHEARTTHEINCITEREVENT = 3,
+ DATA_GRANDMASTERVORPILEVENT = 4,
+ DATA_MURMUREVENT = 5,
+ DATA_GRANDMASTERVORPIL = 6
+};
+
+enum Objects
+{
+ REFECTORY_DOOR = 183296, // door opened when blackheart the inciter dies
+ SCREAMING_HALL_DOOR = 183295 // door opened when grandmaster vorpil dies
+};
+
#endif
diff --git a/src/server/scripts/Outland/BlackTemple/black_temple.cpp b/src/server/scripts/Outland/BlackTemple/black_temple.cpp
index f8467b297cc..a44c5f58dc4 100644
--- a/src/server/scripts/Outland/BlackTemple/black_temple.cpp
+++ b/src/server/scripts/Outland/BlackTemple/black_temple.cpp
@@ -1,6 +1,5 @@
/*
* Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
- * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
@@ -16,16 +15,11 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-/* ScriptData
-SDName: Black_Temple
-SD%Complete: 95
-SDComment: Spirit of Olum: Player Teleporter to Seer Kanai Teleport after defeating Naj'entus and Supremus. @todo Find proper gossip.
-SDCategory: Black Temple
-EndScriptData */
-
-/* ContentData
-npc_spirit_of_olum
-EndContentData */
+/*
+Name: Black_Temple
+Complete: 100%
+Comment: Spirit of Olum: Player Teleporter to Seer Kanai Teleport after defeating Naj'entus and Supremus.
+*/
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
@@ -33,43 +27,192 @@ EndContentData */
#include "black_temple.h"
#include "Player.h"
-/*###
-# npc_spirit_of_olum
-####*/
+enum Spells
+{
+ // Spirit of Olum
+ SPELL_TELEPORT = 41566,
+ // Wrathbone Flayer
+ SPELL_CLEAVE = 15496,
+ SPELL_IGNORED = 39544,
+ SPELL_SUMMON_CHANNEL = 40094
+};
+
+enum Creatures
+{
+ NPC_BLOOD_MAGE = 22945,
+ NPC_DEATHSHAPER = 22882
+};
+
+enum Events
+{
+ // Wrathbone Flayer
+ EVENT_GET_CHANNELERS = 1,
+ EVENT_SET_CHANNELERS = 2,
+ EVENT_CLEAVE = 3,
+ EVENT_IGNORED = 4,
+};
-#define SPELL_TELEPORT 41566 // s41566 - Teleport to Ashtongue NPC's
-#define GOSSIP_OLUM1 "Teleport me to the other Ashtongue Deathsworn"
+// ########################################################
+// Spirit of Olum
+// ########################################################
class npc_spirit_of_olum : public CreatureScript
{
public:
npc_spirit_of_olum() : CreatureScript("npc_spirit_of_olum") { }
- bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
+ struct npc_spirit_of_olumAI : public ScriptedAI
{
- player->PlayerTalkClass->ClearMenus();
- if (action == GOSSIP_ACTION_INFO_DEF + 1)
- player->CLOSE_GOSSIP_MENU();
+ npc_spirit_of_olumAI(Creature* creature) : ScriptedAI(creature) {}
+
+ void sGossipSelect(Player* player, uint32 /*sender*/, uint32 action) OVERRIDE
+ {
+ if (action == 1)
+ {
+ player->CLOSE_GOSSIP_MENU();
+ player->InterruptNonMeleeSpells(false);
+ player->CastSpell(player, SPELL_TELEPORT, false);
+ }
+ }
+ };
- player->InterruptNonMeleeSpells(false);
- player->CastSpell(player, SPELL_TELEPORT, false);
- return true;
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_spirit_of_olumAI(creature);
}
+};
+
+// ########################################################
+// Wrathbone Flayer
+// ########################################################
- bool OnGossipHello(Player* player, Creature* creature)
+class npc_wrathbone_flayer : public CreatureScript
+{
+public:
+ npc_wrathbone_flayer() : CreatureScript("npc_wrathbone_flayer") { }
+
+ struct npc_wrathbone_flayerAI : public ScriptedAI
{
- InstanceScript* instance = creature->GetInstanceScript();
+ npc_wrathbone_flayerAI(Creature* creature) : ScriptedAI(creature)
+ {
+ instance = creature->GetInstanceScript();
+ }
- if (instance && (instance->GetData(DATA_SUPREMUSEVENT) >= DONE) && (instance->GetData(DATA_HIGHWARLORDNAJENTUSEVENT) >= DONE))
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_OLUM1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
+ void Reset() OVERRIDE
+ {
+ events.ScheduleEvent(EVENT_GET_CHANNELERS, 3000);
+ enteredCombat = false;
+ }
- player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
- return true;
- }
+ void JustDied(Unit* /*killer*/) OVERRIDE { }
+ void EnterCombat(Unit* /*who*/) OVERRIDE
+ {
+ events.ScheduleEvent(EVENT_CLEAVE, 5000);
+ events.ScheduleEvent(EVENT_IGNORED, 7000);
+ enteredCombat = true;
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+
+ if (!enteredCombat)
+ {
+ events.Update(diff);
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_GET_CHANNELERS:
+ {
+ std::list<Creature*> BloodMageList;
+ me->GetCreatureListWithEntryInGrid(BloodMageList, NPC_BLOOD_MAGE, 15.0f);
+
+ if (!BloodMageList.empty())
+ for (std::list<Creature*>::const_iterator itr = BloodMageList.begin(); itr != BloodMageList.end(); ++itr)
+ {
+ bloodmage.push_back((*itr)->GetGUID());
+ if ((*itr)->isDead())
+ (*itr)->Respawn();
+ }
+
+ std::list<Creature*> DeathShaperList;
+ me->GetCreatureListWithEntryInGrid(DeathShaperList, NPC_DEATHSHAPER, 15.0f);
+
+ if (!DeathShaperList.empty())
+ for (std::list<Creature*>::const_iterator itr = DeathShaperList.begin(); itr != DeathShaperList.end(); ++itr)
+ {
+ deathshaper.push_back((*itr)->GetGUID());
+ if ((*itr)->isDead())
+ (*itr)->Respawn();
+ }
+
+ events.ScheduleEvent(EVENT_SET_CHANNELERS, 3000);
+
+ break;
+ }
+ case EVENT_SET_CHANNELERS:
+ {
+ for (std::list<uint64>::const_iterator itr = bloodmage.begin(); itr != bloodmage.end(); ++itr)
+ if (Creature* bloodmage = (Unit::GetCreature(*me, *itr)))
+ bloodmage->AI()->DoCast(SPELL_SUMMON_CHANNEL);
+
+ for (std::list<uint64>::const_iterator itr = deathshaper.begin(); itr != deathshaper.end(); ++itr)
+ if (Creature* deathshaper = (Unit::GetCreature(*me, *itr)))
+ deathshaper->AI()->DoCast(SPELL_SUMMON_CHANNEL);
+
+ events.ScheduleEvent(EVENT_SET_CHANNELERS, 12000);
+
+ break;
+ }
+ default:
+ break;
+ }
+ }
+ }
+
+ if (!UpdateVictim())
+ return;
+
+ events.Update(diff);
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_CLEAVE:
+ DoCastVictim(SPELL_CLEAVE);
+ events.ScheduleEvent(EVENT_CLEAVE, urand (1000, 2000));
+ break;
+ case EVENT_IGNORED:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
+ DoCast(target, SPELL_IGNORED);
+ events.ScheduleEvent(EVENT_IGNORED, 10000);
+ break;
+ default:
+ break;
+ }
+ }
+ DoMeleeAttackIfReady();
+ }
+
+ private:
+ InstanceScript* instance;
+ EventMap events;
+ std::list<uint64> bloodmage;
+ std::list<uint64> deathshaper;
+ bool enteredCombat;
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_wrathbone_flayerAI(creature);
+ }
};
void AddSC_black_temple()
{
new npc_spirit_of_olum();
+ new npc_wrathbone_flayer();
}
diff --git a/src/server/scripts/Outland/BlackTemple/black_temple.h b/src/server/scripts/Outland/BlackTemple/black_temple.h
index 433624a7d55..971cc36d7ba 100644
--- a/src/server/scripts/Outland/BlackTemple/black_temple.h
+++ b/src/server/scripts/Outland/BlackTemple/black_temple.h
@@ -16,10 +16,12 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef DEF_BLACK_TEMPLE_H
-#define DEF_BLACK_TEMPLE_H
+#ifndef BLACK_TEMPLE_H_
+#define BLACK_TEMPLE_H_
-enum eTypes
+uint32 const EncounterCount = 9;
+
+enum DataTypes
{
DATA_AKAMA = 1,
DATA_AKAMA_SHADE = 2,
@@ -50,4 +52,3 @@ enum eTypes
};
#endif
-
diff --git a/src/server/scripts/Outland/BlackTemple/boss_bloodboil.cpp b/src/server/scripts/Outland/BlackTemple/boss_bloodboil.cpp
index 5a292d165cc..7a11044476a 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_bloodboil.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_bloodboil.cpp
@@ -62,9 +62,9 @@ class boss_gurtogg_bloodboil : public CreatureScript
public:
boss_gurtogg_bloodboil() : CreatureScript("boss_gurtogg_bloodboil") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_gurtogg_bloodboilAI (creature);
+ return new boss_gurtogg_bloodboilAI(creature);
}
struct boss_gurtogg_bloodboilAI : public ScriptedAI
@@ -93,7 +93,7 @@ public:
bool Phase1;
- void Reset()
+ void Reset() OVERRIDE
{
if (instance)
instance->SetData(DATA_GURTOGGBLOODBOILEVENT, NOT_STARTED);
@@ -119,7 +119,7 @@ public:
me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_ATTACK_ME, false);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
DoZoneInCombat();
Talk(SAY_AGGRO);
@@ -127,12 +127,12 @@ public:
instance->SetData(DATA_GURTOGGBLOODBOILEVENT, IN_PROGRESS);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
instance->SetData(DATA_GURTOGGBLOODBOILEVENT, DONE);
@@ -155,7 +155,7 @@ public:
{
Unit* target = Unit::GetUnit(*me, (*itr)->getUnitGuid());
//only on alive players
- if (target && target->isAlive() && target->GetTypeId() == TYPEID_PLAYER)
+ if (target && target->IsAlive() && target->GetTypeId() == TYPEID_PLAYER)
targets.push_back(target);
}
@@ -196,20 +196,20 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
if (ArcingSmashTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_ARCING_SMASH);
+ DoCastVictim(SPELL_ARCING_SMASH);
ArcingSmashTimer = 10000;
} else ArcingSmashTimer -= diff;
if (FelAcidTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_FEL_ACID);
+ DoCastVictim(SPELL_FEL_ACID);
FelAcidTimer = 25000;
} else FelAcidTimer -= diff;
@@ -226,8 +226,8 @@ public:
{
if (BewilderingStrikeTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_BEWILDERING_STRIKE);
- float mt_threat = DoGetThreat(me->getVictim());
+ DoCastVictim(SPELL_BEWILDERING_STRIKE);
+ float mt_threat = DoGetThreat(me->GetVictim());
if (Unit* target = SelectTarget(SELECT_TARGET_TOPAGGRO, 1))
me->AddThreat(target, mt_threat);
BewilderingStrikeTimer = 20000;
@@ -235,14 +235,14 @@ public:
if (EjectTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_EJECT1);
- DoModifyThreatPercent(me->getVictim(), -40);
+ DoCastVictim(SPELL_EJECT1);
+ DoModifyThreatPercent(me->GetVictim(), -40);
EjectTimer = 15000;
} else EjectTimer -= diff;
if (AcidicWoundTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_ACIDIC_WOUND);
+ DoCastVictim(SPELL_ACIDIC_WOUND);
AcidicWoundTimer = 10000;
} else AcidicWoundTimer -= diff;
@@ -251,7 +251,7 @@ public:
if (BloodboilCount < 5) // Only cast it five times.
{
//CastBloodboil(); // Causes issues on windows, so is commented out.
- DoCast(me->getVictim(), SPELL_BLOODBOIL);
+ DoCastVictim(SPELL_BLOODBOIL);
++BloodboilCount;
BloodboilTimer = 10000*BloodboilCount;
}
@@ -262,13 +262,13 @@ public:
{
if (AcidGeyserTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_ACID_GEYSER);
+ DoCastVictim(SPELL_ACID_GEYSER);
AcidGeyserTimer = 30000;
} else AcidGeyserTimer -= diff;
if (EjectTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_EJECT2);
+ DoCastVictim(SPELL_EJECT2);
EjectTimer = 15000;
} else EjectTimer -= diff;
}
diff --git a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp
index 2048270f285..2fdfe72a6f9 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp
@@ -35,41 +35,32 @@ EndScriptData */
#define GETUNIT(unit, guid) Unit* unit = Unit::GetUnit(*me, guid)
#define GETCRE(cre, guid) Creature* cre = Unit::GetCreature(*me, guid)
-/************* Quotes and Sounds ***********************/
-// Gossip for when a player clicks Akama
-#define GOSSIP_ITEM "We are ready to face Illidan"
-
-// Yells for/by Akama
-#define SAY_AKAMA_BEWARE "Be wary friends, The Betrayer meditates in the court just beyond."
-#define SOUND_AKAMA_BEWARE 11388
-#define SAY_AKAMA_MINION "Come, my minions. Deal with this traitor as he deserves!"
-#define SOUND_AKAMA_MINION 11465
-#define SAY_AKAMA_LEAVE "I'll deal with these mongrels. Strike now, friends! Strike at the betrayer!"
-#define SOUND_AKAMA_LEAVE 11390
-
-// Self explanatory
-char const* SAY_KILL1 = "Who shall be next to taste my blades?!";
-#define SOUND_KILL1 11473
-char const* SAY_KILL2 = "This is too easy!";
-#define SOUND_KILL2 11472
-
-// I think I'll fly now and let my subordinates take you on
-#define SAY_TAKEOFF "I will not be touched by rabble such as you!"
-#define SOUND_TAKEOFF 11479
-#define SAY_SUMMONFLAMES "Behold the flames of Azzinoth!"
-#define SOUND_SUMMONFLAMES 11480
-
-// When casting Eye Blast. Demon Fire will be appear on places that he casts this
-#define SAY_EYE_BLAST "Stare into the eyes of the Betrayer!"
-#define SOUND_EYE_BLAST 11481
-
-// kk, I go big, dark and demon on you.
-#define SAY_MORPH "Behold the power... of the demon within!"
-#define SOUND_MORPH 11475
-
-// I KILL!
-#define SAY_ENRAGE "You've wasted too much time mortals, now you shall fall!"
-#define SOUND_ENRAGE 11474
+#define EMOTE_UNABLE_TO_SUMMON "%s is unable to summon Maiev Shadowsong and enter Phase 4. Resetting Encounter."
+
+// Other defines
+#define CENTER_X 676.740f
+#define CENTER_Y 305.297f
+#define CENTER_Z 353.192f
+
+enum Say
+{
+ // Akama
+ SAY_AKAMA_BEWARE = 0,
+ SAY_AKAMA_LEAVE = 1,
+ // Illidan
+ SAY_ILLIDAN_MINION = 0,
+ SAY_ILLIDAN_KILL = 1,
+ SAY_ILLIDAN_TAKEOFF = 2,
+ SAY_ILLIDAN_SUMMONFLAMES = 3,
+ SAY_ILLIDAN_EYE_BLAST = 4,
+ SAY_ILLIDAN_MORPH = 5,
+ SAY_ILLIDAN_ENRAGE = 6,
+ SAY_ILLIDAN_TAUNT = 7,
+ // Maiev Shadowsong
+ SAY_MAIEV_SHADOWSONG_TAUNT = 0,
+ // Flame of Azzinoth
+ EMOTE_AZZINOTH_GAZE = 0
+};
enum Spells
// Normal Form
@@ -102,6 +93,7 @@ enum Spells
SPELL_DEATH = 41220,
SPELL_BERSERK = 45078,
SPELL_DUAL_WIELD = 42459,
+ SPELL_SUMMON_MAIEV = 40403,
// Phase Normal spells
SPELL_FLAME_CRASH_EFFECT = 40836,
SPELL_SUMMON_SHADOWDEMON = 41117,
@@ -134,104 +126,107 @@ enum Spells
SPELL_TELEPORT_VISUAL = 41232,
SPELL_SHADOW_STRIKE = 40685,
SPELL_THROW_DAGGER = 41152,
- SPELL_FAN_BLADES = 39954, // bugged visual
+ SPELL_FAN_BLADES = 39954 // bugged visual
};
-// Other defines
-#define CENTER_X 676.740f
-#define CENTER_Y 305.297f
-#define CENTER_Z 353.192f
+enum Misc
+{
+ FLAME_ENRAGE_DISTANCE = 30,
+ FLAME_CHARGE_DISTANCE = 50,
-#define FLAME_ENRAGE_DISTANCE 30
-#define FLAME_CHARGE_DISTANCE 50
+ EQUIP_ID_MAIN_HAND = 32837,
+ EQUIP_ID_OFF_HAND = 32838,
+ EQUIP_ID_MAIN_HAND_MAIEV = 44850,
-#define EQUIP_ID_MAIN_HAND 32837
-#define EQUIP_ID_OFF_HAND 32838
+ MODEL_INVISIBLE = 11686,
+ MODEL_ILLIDAN = 21135,
+ MODEL_BLADE = 21431
+};
/**** Creature Summon and Recognition IDs ****/
enum CreatureEntry
{
- EMPTY = 0,
- AKAMA = 22990,
- ILLIDAN_STORMRAGE = 22917,
- BLADE_OF_AZZINOTH = 22996,
- FLAME_OF_AZZINOTH = 22997,
- MAIEV_SHADOWSONG = 23197,
- SHADOW_DEMON = 23375,
- DEMON_FIRE = 23069,
- FLAME_CRASH = 23336,
- ILLIDAN_DOOR_TRIGGER = 23412,
- SPIRIT_OF_OLUM = 23411,
- SPIRIT_OF_UDALO = 23410,
- ILLIDARI_ELITE = 23226,
- PARASITIC_SHADOWFIEND = 23498,
- CAGE_TRAP_TRIGGER = 23292,
+ EMPTY = 0,
+ AKAMA = 22990,
+ ILLIDAN_STORMRAGE = 22917,
+ BLADE_OF_AZZINOTH = 22996,
+ FLAME_OF_AZZINOTH = 22997,
+ MAIEV_SHADOWSONG = 23197,
+ SHADOW_DEMON = 23375,
+ DEMON_FIRE = 23069,
+ FLAME_CRASH = 23336,
+ ILLIDAN_DOOR_TRIGGER = 23412,
+ SPIRIT_OF_OLUM = 23411,
+ SPIRIT_OF_UDALO = 23410,
+ ILLIDARI_ELITE = 23226,
+ PARASITIC_SHADOWFIEND = 23498,
+ CAGE_TRAP_TRIGGER = 23292
};
/*** Phase Names ***/
enum PhaseIllidan
{
- PHASE_ILLIDAN_NULL = 0,
- PHASE_NORMAL = 1,
- PHASE_FLIGHT = 2,
- PHASE_NORMAL_2 = 3,
- PHASE_DEMON = 4,
- PHASE_NORMAL_MAIEV = 5,
- PHASE_TALK_SEQUENCE = 6,
- PHASE_FLIGHT_SEQUENCE = 7,
- PHASE_TRANSFORM_SEQUENCE = 8,
- PHASE_ILLIDAN_MAX = 9,
+ PHASE_ILLIDAN_NULL = 0,
+ PHASE_NORMAL = 1,
+ PHASE_FLIGHT = 2,
+ PHASE_NORMAL_2 = 3,
+ PHASE_DEMON = 4,
+ PHASE_NORMAL_MAIEV = 5,
+ PHASE_TALK_SEQUENCE = 6,
+ PHASE_FLIGHT_SEQUENCE = 7,
+ PHASE_TRANSFORM_SEQUENCE = 8,
+ PHASE_ILLIDAN_MAX = 9
}; // Maiev uses the same phase
enum PhaseAkama
{
- PHASE_AKAMA_NULL = 0,
- PHASE_CHANNEL = 1,
- PHASE_WALK = 2,
- PHASE_TALK = 3,
- PHASE_FIGHT_ILLIDAN = 4,
- PHASE_FIGHT_MINIONS = 5,
- PHASE_RETURN = 6,
+ PHASE_AKAMA_NULL = 0,
+ PHASE_CHANNEL = 1,
+ PHASE_WALK = 2,
+ PHASE_TALK = 3,
+ PHASE_FIGHT_ILLIDAN = 4,
+ PHASE_FIGHT_MINIONS = 5,
+ PHASE_RETURN = 6
};
enum EventIllidan
{
- EVENT_NULL = 0,
- EVENT_BERSERK = 1,
+ EVENT_NULL = 0,
+ EVENT_BERSERK = 1,
// normal phase
- EVENT_TAUNT = 2,
- EVENT_SHEAR = 3,
- EVENT_FLAME_CRASH = 4,
- EVENT_PARASITIC_SHADOWFIEND = 5,
- EVENT_PARASITE_CHECK = 6,
- EVENT_DRAW_SOUL = 7,
- EVENT_AGONIZING_FLAMES = 8,
- EVENT_TRANSFORM_NORMAL = 9,
- EVENT_ENRAGE = 10,
+ EVENT_TAUNT = 2,
+ EVENT_SHEAR = 3,
+ EVENT_FLAME_CRASH = 4,
+ EVENT_PARASITIC_SHADOWFIEND = 5,
+ EVENT_PARASITE_CHECK = 6,
+ EVENT_DRAW_SOUL = 7,
+ EVENT_AGONIZING_FLAMES = 8,
+ EVENT_TRANSFORM_NORMAL = 9,
+ EVENT_ENRAGE = 10,
// flight phase
- EVENT_FIREBALL = 2,
- EVENT_DARK_BARRAGE = 3,
- EVENT_EYE_BLAST = 4,
- EVENT_MOVE_POINT = 5,
+ EVENT_FIREBALL = 2,
+ EVENT_DARK_BARRAGE = 3,
+ EVENT_EYE_BLAST = 4,
+ EVENT_MOVE_POINT = 5,
// demon phase
- EVENT_SHADOW_BLAST = 2,
- EVENT_FLAME_BURST = 3,
- EVENT_SHADOWDEMON = 4,
- EVENT_TRANSFORM_DEMON = 5,
+ EVENT_SHADOW_BLAST = 2,
+ EVENT_FLAME_BURST = 3,
+ EVENT_SHADOWDEMON = 4,
+ EVENT_TRANSFORM_DEMON = 5,
// sequence phase
- EVENT_TALK_SEQUENCE = 2,
- EVENT_FLIGHT_SEQUENCE = 2,
- EVENT_TRANSFORM_SEQUENCE = 2,
+ EVENT_TALK_SEQUENCE = 2,
+ EVENT_FLIGHT_SEQUENCE = 2,
+ EVENT_TRANSFORM_SEQUENCE = 2
};
enum EventMaiev
{
- EVENT_MAIEV_NULL = 0,
- EVENT_MAIEV_STEALTH = 1,
- EVENT_MAIEV_TAUNT = 2,
- EVENT_MAIEV_SHADOW_STRIKE = 3,
- EVENT_MAIEV_THROW_DAGGER = 4,
- EVENT_MAIEV_TRAP = 4,
+ EVENT_MAIEV_NULL = 0,
+ EVENT_MAIEV_STEALTH = 1,
+ EVENT_MAIEV_TAUNT = 2,
+ EVENT_MAIEV_SHADOW_STRIKE = 3,
+ EVENT_MAIEV_THROW_DAGGER = 4,
+ EVENT_MAIEV_TRAP = 4
};
static const EventIllidan MaxTimer[9] =
@@ -247,6 +242,33 @@ static const EventIllidan MaxTimer[9] =
EVENT_TRANSFORM_SEQUENCE
};
+
+/* ################## TO DO CONVERT THIS UGLINESS TO CREATURE TEXT ##################
+
+SET @AKAMA := 23089;
+SET @ILLIDAN := 22917;
+SET @MAIEV := 23197;
+DELETE FROM `creature_text` WHERE `entry`=@AKAMA AND `groupid` IN (2,3,4);
+DELETE FROM `creature_text` WHERE `entry`=@ILLIDAN AND `groupid` IN (8,9,10,11,12,13,14);
+DELETE FROM `creature_text` WHERE `entry`=@MAIEV AND `groupid` IN (1,2,3,4);
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@ILLIDAN,8,0, "Akama... your duplicity is hardly surprising. I should have slaughtered you and your malformed brethren long ago.",14,0,100,0,0,11463, 'Illidan SAY_XXXXXXXXXXX'),
+(@AKAMA,2,0, "We've come to end your reign, Illidan. My people and all of Outland shall be free!",14,0,100,25,0,11389, 'Akama SAY_XXXXXXXXXXX'),
+(@ILLIDAN,9,0, "Boldly said. But I remain unconvinced.",14,0,100,396,0,11464, 'Illidan SAY_XXXXXXXXXXX'),
+(@AKAMA,3,0, "The time has come! The moment is at hand!",14,0,100,22,0,11380, 'Akama SAY_XXXXXXXXXXX'),
+(@ILLIDAN,10,0, "You are not prepared!",14,0,100,406,0,11466, 'Illidan SAY_XXXXXXXXXXX'),
+(@ILLIDAN,11,0, "Is this it, mortals? Is this all the fury you can muster?",14,0,100,0,0,11476, 'Illidan SAY_XXXXXXXXXXX'),
+(@MAIEV,1,0, "Their fury pales before mine, Illidan. We have some unsettled business between us.",14,0,100,5,0,11491, 'Maiev Shadowsong SAY_XXXXXXXXXXX'),
+(@ILLIDAN,12,0, "Maiev... How is this even possible?",14,0,100,1,0,11477, 'Illidan SAY_XXXXXXXXXXX'),
+(@MAIEV,2,0, "Ah... my long hunt is finally over. Today, Justice will be done!",14,0,100,15,0,11492, 'Maiev Shadowsong SAY_XXXXXXXXXXX'),
+(@ILLIDAN,13,0, "Feel the hatred of ten thousand years!",14,0,100,396,0,11470, 'Illidan SAY_XXXXXXXXXXX'),
+(@MAIEV,3,0, "Ahh... It is finished. You are beaten.",14,0,100,0,0,11496, 'Maiev Shadowsong SAY_XXXXXXXXXXX'),
+(@ILLIDAN,14,0, "You have won... Maiev...but the huntress... is nothing...without the hunt... you... are nothing... without me..",14,0,100,65,0,11478, 'Illidan SAY_XXXXXXXXXXX'),
+(@MAIEV,4,0, "He is right. I feel nothing... I am nothing... Farewell, champions.",14,0,100,0,0,11497, 'Maiev Shadowsong SAY_XXXXXXXXXXX'),
+(@AKAMA,4,0, "The Light will fill these dismal halls once again. I swear it.",14,0,100,0,0,11387, 'Akama SAY_XXXXXXXXXXX');
+
+*/
+
struct Yells
{
uint32 sound;
@@ -282,22 +304,6 @@ static const Yells Conversation[22] =
{0, "", EMPTY, 1000, 0, false} // 21
};
-static const Yells RandomTaunts[4]=
-{
- {11467, "I can feel your hatred.", ILLIDAN_STORMRAGE, 0, 0, false},
- {11468, "Give in to your fear!", ILLIDAN_STORMRAGE, 0, 0, false},
- {11469, "You know nothing of power!", ILLIDAN_STORMRAGE, 0, 0, false},
- {11471, "Such... arrogance!", ILLIDAN_STORMRAGE, 0, 0, false}
-};
-
-static const Yells MaievTaunts[4]=
-{
- {11493, "That is for Naisha!", MAIEV_SHADOWSONG, 0, 0, false},
- {11494, "Bleed as I have bled!", MAIEV_SHADOWSONG, 0, 0, false},
- {11495, "There shall be no prison for you this time!", MAIEV_SHADOWSONG, 0, 0, false},
- {11500, "Meet your end, demon!", MAIEV_SHADOWSONG, 0, 0, false}
-};
-
struct Locations
{
float x, y, z;
@@ -368,35 +374,23 @@ static const Animation DemonTransformation[10]=
{0, SPELL_DEMON_TRANSFORM_3, 0, 0, 0, 8, true}
};
-#define EMOTE_SETS_GAZE_ON "%s sets its gaze on $N!"
-#define EMOTE_UNABLE_TO_SUMMON "%s is unable to summon Maiev Shadowsong and enter Phase 4. Resetting Encounter."
-
-class mob_flame_of_azzinoth : public CreatureScript
+class npc_flame_of_azzinoth : public CreatureScript
{
public:
- mob_flame_of_azzinoth() : CreatureScript("mob_flame_of_azzinoth") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new flame_of_azzinothAI (creature);
- }
+ npc_flame_of_azzinoth() : CreatureScript("npc_flame_of_azzinoth") { }
struct flame_of_azzinothAI : public ScriptedAI
{
flame_of_azzinothAI(Creature* creature) : ScriptedAI(creature) {}
- uint32 FlameBlastTimer;
- uint32 CheckTimer;
- uint64 GlaiveGUID;
-
- void Reset()
+ void Reset() OVERRIDE
{
FlameBlastTimer = 15000;
CheckTimer = 5000;
GlaiveGUID = 0;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
DoZoneInCombat();
}
@@ -409,7 +403,7 @@ public:
me->AddThreat(target, 5000000.0f);
AttackStart(target);
DoCast(target, SPELL_CHARGE);
- me->MonsterTextEmote(EMOTE_SETS_GAZE_ON, target->GetGUID());
+ Talk(EMOTE_AZZINOTH_GAZE);
}
}
@@ -424,8 +418,8 @@ public:
DoResetThreat();
if (SelectTarget(SELECT_TARGET_RANDOM, 0))
{
- me->AddThreat(me->getVictim(), 5000000.0f);
- AttackStart(me->getVictim());
+ me->AddThreat(me->GetVictim(), 5000000.0f);
+ AttackStart(me->GetVictim());
}
}
else if (!me->HasAura(SPELL_AZZINOTH_CHANNEL))
@@ -441,15 +435,15 @@ public:
GlaiveGUID = guid;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
if (FlameBlastTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_BLAZE_SUMMON, true); // appear at victim
- DoCast(me->getVictim(), SPELL_FLAME_BLAST);
+ DoCastVictim(SPELL_BLAZE_SUMMON, true); // appear at victim
+ DoCastVictim(SPELL_FLAME_BLAST);
FlameBlastTimer = 15000; // 10000 is official-like?
DoZoneInCombat(); // in case someone is revived
} else FlameBlastTimer -= diff;
@@ -463,7 +457,17 @@ public:
DoMeleeAttackIfReady();
}
+
+ private:
+ uint32 FlameBlastTimer;
+ uint32 CheckTimer;
+ uint64 GlaiveGUID;
};
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new flame_of_azzinothAI(creature);
+ }
};
/************************************** Illidan's AI* **************************************/
@@ -472,11 +476,6 @@ class boss_illidan_stormrage : public CreatureScript
public:
boss_illidan_stormrage() : CreatureScript("boss_illidan_stormrage") { }
- CreatureAI* GetAI(Creature* creature) const
- {
- return new boss_illidan_stormrageAI (creature);
- }
-
struct boss_illidan_stormrageAI : public ScriptedAI
{
boss_illidan_stormrageAI(Creature* creature) : ScriptedAI(creature), Summons(me)
@@ -485,30 +484,11 @@ public:
DoCast(me, SPELL_DUAL_WIELD, true);
}
- InstanceScript* instance;
-
- PhaseIllidan Phase;
- EventIllidan Event;
- uint32 Timer[EVENT_ENRAGE + 1];
-
- uint32 TalkCount;
- uint32 TransformCount;
- uint32 FlightCount;
-
- uint32 HoverPoint;
+ void Reset() OVERRIDE;
- uint64 AkamaGUID;
- uint64 MaievGUID;
- uint64 FlameGUID[2];
- uint64 GlaiveGUID[2];
+ void JustSummoned(Creature* summon) OVERRIDE;
- SummonList Summons;
-
- void Reset();
-
- void JustSummoned(Creature* summon);
-
- void SummonedCreatureDespawn(Creature* summon)
+ void SummonedCreatureDespawn(Creature* summon) OVERRIDE
{
if (summon->GetCreatureTemplate()->Entry == FLAME_OF_AZZINOTH)
{
@@ -525,13 +505,13 @@ public:
Summons.Despawn(summon);
}
- void MovementInform(uint32 /*MovementType*/, uint32 /*Data*/)
+ void MovementInform(uint32 /*MovementType*/, uint32 /*Data*/) OVERRIDE
{
if (FlightCount == 7) // change hover point
{
- if (me->getVictim())
+ if (me->GetVictim())
{
- me->SetInFront(me->getVictim());
+ me->SetInFront(me->GetVictim());
me->StopMoving();
}
EnterPhase(PHASE_FLIGHT);
@@ -540,13 +520,13 @@ public:
Timer[EVENT_FLIGHT_SEQUENCE] = 1000;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
me->setActive(true);
DoZoneInCombat();
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (!who || Phase >= PHASE_TALK_SEQUENCE)
return;
@@ -557,9 +537,10 @@ public:
ScriptedAI::AttackStart(who);
}
- void MoveInLineOfSight(Unit*) {}
+ void MoveInLineOfSight(Unit*) OVERRIDE {}
+
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
@@ -572,26 +553,15 @@ public:
instance->HandleGameObject(instance->GetData64(i), true);
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
- if (victim == me)
+ if (victim->GetTypeId() != TYPEID_PLAYER)
return;
- /// @todo Find better way to handle emote
- switch (urand(0, 1))
- {
- case 0:
- me->MonsterYell(SAY_KILL1, LANG_UNIVERSAL, victim->GetGUID());
- DoPlaySoundToSet(me, SOUND_KILL1);
- break;
- case 1:
- me->MonsterYell(SAY_KILL2, LANG_UNIVERSAL, victim->GetGUID());
- DoPlaySoundToSet(me, SOUND_KILL2);
- break;
- }
+ Talk(SAY_ILLIDAN_KILL);
}
- void DamageTaken(Unit* done_by, uint32 &damage)
+ void DamageTaken(Unit* done_by, uint32 &damage) OVERRIDE
{
if (damage >= me->GetHealth() && done_by != me)
damage = 0;
@@ -599,7 +569,7 @@ public:
done_by->AddThreat(me, -(3*(float)damage)/4); // do not let maiev tank him
}
- void SpellHit(Unit* /*caster*/, const SpellInfo* spell)
+ void SpellHit(Unit* /*caster*/, const SpellInfo* spell) OVERRIDE
{
if (spell->Id == SPELL_GLAIVE_RETURNS) // Re-equip our warblades!
{
@@ -650,12 +620,13 @@ public:
void EnterPhase(PhaseIllidan NextPhase)
{
DoZoneInCombat();
+
switch (NextPhase)
{
case PHASE_NORMAL:
case PHASE_NORMAL_2:
case PHASE_NORMAL_MAIEV:
- AttackStart(me->getVictim());
+ AttackStart(me->GetVictim());
Timer[EVENT_TAUNT] = 32000;
Timer[EVENT_SHEAR] = urand(10, 25) * 1000;
Timer[EVENT_FLAME_CRASH] = 20000;
@@ -682,7 +653,7 @@ public:
Timer[EVENT_FLAME_BURST] = 10000;
Timer[EVENT_SHADOWDEMON] = 30000;
Timer[EVENT_TRANSFORM_DEMON] = 60000;
- AttackStart(me->getVictim());
+ AttackStart(me->GetVictim());
break;
case PHASE_TALK_SEQUENCE:
Timer[EVENT_TALK_SEQUENCE] = 100;
@@ -713,8 +684,7 @@ public:
{
TransformCount = 0;
Timer[EVENT_TRANSFORM_SEQUENCE] = 500;
- me->MonsterYell(SAY_MORPH, LANG_UNIVERSAL, 0);
- DoPlaySoundToSet(me, SOUND_MORPH);
+ Talk(SAY_ILLIDAN_MORPH);
}
me->GetMotionMaster()->Clear();
me->AttackStop();
@@ -725,7 +695,7 @@ public:
if (MaievGUID)
{
GETCRE(Maiev, MaievGUID);
- if (Maiev && Maiev->isAlive())
+ if (Maiev && Maiev->IsAlive())
Maiev->AI()->DoAction(NextPhase);
}
Phase = NextPhase;
@@ -735,8 +705,7 @@ public:
{
me->InterruptNonMeleeSpells(false);
- me->MonsterYell(SAY_EYE_BLAST, LANG_UNIVERSAL, 0);
- DoPlaySoundToSet(me, SOUND_EYE_BLAST);
+ Talk(SAY_ILLIDAN_EYE_BLAST);
float distx, disty, dist[2];
for (uint8 i = 0; i < 2; ++i)
@@ -771,8 +740,7 @@ public:
}
void SummonFlamesOfAzzinoth()
{
- me->MonsterYell(SAY_SUMMONFLAMES, LANG_UNIVERSAL, 0);
- DoPlaySoundToSet(me, SOUND_SUMMONFLAMES);
+ Talk(SAY_ILLIDAN_SUMMONFLAMES);
for (uint8 i = 0; i < 2; ++i)
{
@@ -784,7 +752,7 @@ public:
Flame->setFaction(me->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
- CAST_AI(mob_flame_of_azzinoth::flame_of_azzinothAI, Flame->AI())->SetGlaiveGUID(GlaiveGUID[i]);
+ CAST_AI(npc_flame_of_azzinoth::flame_of_azzinothAI, Flame->AI())->SetGlaiveGUID(GlaiveGUID[i]);
Glaive->CastSpell(Flame, SPELL_AZZINOTH_CHANNEL, false); // Glaives do some random Beam type channel on it.
}
}
@@ -793,7 +761,7 @@ public:
void SummonMaiev()
{
DoCast(me, SPELL_SHADOW_PRISON, true);
- DoCast(me, 40403, true);
+ DoCast(me, SPELL_SUMMON_MAIEV, true);
if (!MaievGUID) // If Maiev cannot be summoned, reset the encounter and post some errors to the console.
{
EnterEvadeMode();
@@ -810,10 +778,9 @@ public:
{
case 1: // lift off
me->HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF);
- me->SetUnitMovementFlags(MOVEMENTFLAG_DISABLE_GRAVITY);
+ me->SetDisableGravity(true);
me->StopMoving();
- me->MonsterYell(SAY_TAKEOFF, LANG_UNIVERSAL, 0);
- DoPlaySoundToSet(me, SOUND_TAKEOFF);
+ Talk(SAY_ILLIDAN_TAKEOFF);
Timer[EVENT_FLIGHT_SEQUENCE] = 3000;
break;
case 2: // move to center
@@ -828,7 +795,7 @@ public:
{
GlaiveGUID[i] = Glaive->GetGUID();
Glaive->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- Glaive->SetDisplayId(11686);
+ Glaive->SetDisplayId(MODEL_INVISIBLE);
Glaive->setFaction(me->getFaction());
DoCast(Glaive, SPELL_THROW_GLAIVE2);
}
@@ -844,7 +811,7 @@ public:
{
GlaiveGUID[i] = Glaive->GetGUID();
Glaive->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- Glaive->SetDisplayId(11686);
+ Glaive->SetDisplayId(MODEL_INVISIBLE);
Glaive->setFaction(me->getFaction());
DoCast(Glaive, SPELL_THROW_GLAIVE, true);
}
@@ -872,7 +839,7 @@ public:
if (Glaive)
{
Glaive->CastSpell(me, SPELL_GLAIVE_RETURNS, false); // Make it look like the Glaive flies back up to us
- Glaive->SetDisplayId(11686); // disappear but not die for now
+ Glaive->SetDisplayId(MODEL_INVISIBLE); // disappear but not die for now
}
}
}
@@ -956,7 +923,7 @@ public:
++TransformCount;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if ((!UpdateVictim()) && Phase < PHASE_TALK_SEQUENCE)
return;
@@ -1019,32 +986,24 @@ public:
{
// PHASE_NORMAL
case EVENT_BERSERK:
- me->MonsterYell(SAY_ENRAGE, LANG_UNIVERSAL, 0);
- DoPlaySoundToSet(me, SOUND_ENRAGE);
+ Talk(SAY_ILLIDAN_ENRAGE);
DoCast(me, SPELL_BERSERK, true);
Timer[EVENT_BERSERK] = 5000; // The buff actually lasts forever.
break;
case EVENT_TAUNT:
- {
- uint32 random = rand()%4;
- uint32 soundid = RandomTaunts[random].sound;
- if (RandomTaunts[random].text.size())
- me->MonsterYell(RandomTaunts[random].text.c_str(), LANG_UNIVERSAL, 0);
- if (soundid)
- DoPlaySoundToSet(me, soundid);
- }
+ Talk(SAY_ILLIDAN_TAUNT);
Timer[EVENT_TAUNT] = urand(25000, 35000);
break;
case EVENT_SHEAR:
// no longer exists in 3.0f.2
- // DoCast(me->getVictim(), SPELL_SHEAR);
+ // DoCastVictim(SPELL_SHEAR);
Timer[EVENT_SHEAR] = 25000 + (rand()%16 * 1000);
break;
case EVENT_FLAME_CRASH:
- DoCast(me->getVictim(), SPELL_FLAME_CRASH);
+ DoCastVictim(SPELL_FLAME_CRASH);
Timer[EVENT_FLAME_CRASH] = urand(30000, 40000);
break;
@@ -1061,7 +1020,7 @@ public:
break;
case EVENT_DRAW_SOUL:
- DoCast(me->getVictim(), SPELL_DRAW_SOUL);
+ DoCastVictim(SPELL_DRAW_SOUL);
Timer[EVENT_DRAW_SOUL] = urand(50000, 60000);
break;
@@ -1126,11 +1085,11 @@ public:
{
case EVENT_SHADOW_BLAST:
me->GetMotionMaster()->Clear(false);
- if (!me->IsWithinDistInMap(me->getVictim(), 50)||!me->IsWithinLOSInMap(me->getVictim()))
- me->GetMotionMaster()->MoveChase(me->getVictim(), 30);
+ if (!me->IsWithinDistInMap(me->GetVictim(), 50)||!me->IsWithinLOSInMap(me->GetVictim()))
+ me->GetMotionMaster()->MoveChase(me->GetVictim(), 30);
else
me->GetMotionMaster()->MoveIdle();
- DoCast(me->getVictim(), SPELL_SHADOW_BLAST);
+ DoCastVictim(SPELL_SHADOW_BLAST);
Timer[EVENT_SHADOW_BLAST] = 4000;
break;
case EVENT_SHADOWDEMON:
@@ -1150,7 +1109,28 @@ public:
}
}
}
+
+ public:
+ uint64 AkamaGUID;
+ uint32 Timer[EVENT_ENRAGE + 1];
+ PhaseIllidan Phase;
+ private:
+ InstanceScript* instance;
+ EventIllidan Event;
+ uint32 TalkCount;
+ uint32 TransformCount;
+ uint32 FlightCount;
+ uint32 HoverPoint;
+ uint64 MaievGUID;
+ uint64 FlameGUID[2];
+ uint64 GlaiveGUID[2];
+ SummonList Summons;
};
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new boss_illidan_stormrageAI(creature);
+ }
};
/********************************** End of Illidan AI* *****************************************/
@@ -1161,23 +1141,11 @@ class boss_maiev_shadowsong : public CreatureScript
public:
boss_maiev_shadowsong() : CreatureScript("boss_maiev_shadowsong") { }
- CreatureAI* GetAI(Creature* creature) const
- {
- return new boss_maievAI (creature);
- }
-
struct boss_maievAI : public ScriptedAI
{
boss_maievAI(Creature* creature) : ScriptedAI(creature) {};
- uint64 IllidanGUID;
-
- PhaseIllidan Phase;
- EventMaiev Event;
- uint32 Timer[5];
- uint32 MaxTimer;
-
- void Reset()
+ void Reset() OVERRIDE
{
MaxTimer = 0;
Phase = PHASE_NORMAL_MAIEV;
@@ -1185,34 +1153,35 @@ public:
Timer[EVENT_MAIEV_STEALTH] = 0;
Timer[EVENT_MAIEV_TAUNT] = urand(22, 43) * 1000;
Timer[EVENT_MAIEV_SHADOW_STRIKE] = 30000;
- SetEquipmentSlots(false, 44850, EQUIP_UNEQUIP, EQUIP_NO_CHANGE);
+ SetEquipmentSlots(false, EQUIP_ID_MAIN_HAND_MAIEV, EQUIP_UNEQUIP, EQUIP_NO_CHANGE);
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 2, 45738);
}
- void EnterCombat(Unit* /*who*/) {}
- void MoveInLineOfSight(Unit* /*who*/) {}
- void EnterEvadeMode() {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
+
+ void EnterEvadeMode() OVERRIDE {}
void GetIllidanGUID(uint64 guid)
{
IllidanGUID = guid;
}
- void DamageTaken(Unit* done_by, uint32 &damage)
+ void DamageTaken(Unit* done_by, uint32 &damage) OVERRIDE
{
if (done_by->GetGUID() != IllidanGUID)
damage = 0;
else
{
GETUNIT(Illidan, IllidanGUID);
- if (Illidan && Illidan->getVictim() == me)
+ if (Illidan && Illidan->GetVictim() == me)
damage = me->CountPctFromMaxHealth(10);
if (damage >= me->GetHealth())
damage = 0;
}
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (!who || Timer[EVENT_MAIEV_STEALTH])
return;
@@ -1230,7 +1199,7 @@ public:
ScriptedAI::AttackStart(who);
}
- void DoAction(int32 param)
+ void DoAction(int32 param) OVERRIDE
{
if (param > PHASE_ILLIDAN_NULL && param < PHASE_ILLIDAN_MAX)
EnterPhase(PhaseIllidan(param));
@@ -1302,7 +1271,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if ((!UpdateVictim())
&& !Timer[EVENT_MAIEV_STEALTH])
@@ -1330,17 +1299,11 @@ public:
}
break;
case EVENT_MAIEV_TAUNT:
- {
- uint32 random = rand()%4;
- uint32 sound = MaievTaunts[random].sound;
- if (MaievTaunts[random].text.size())
- me->MonsterYell(MaievTaunts[random].text.c_str(), LANG_UNIVERSAL, 0);
- DoPlaySoundToSet(me, sound);
- Timer[EVENT_MAIEV_TAUNT] = urand(22, 43) * 1000;
- }
+ Talk(SAY_MAIEV_SHADOWSONG_TAUNT);
+ Timer[EVENT_MAIEV_TAUNT] = urand(22, 43) * 1000;
break;
case EVENT_MAIEV_SHADOW_STRIKE:
- DoCast(me->getVictim(), SPELL_SHADOW_STRIKE);
+ DoCastVictim(SPELL_SHADOW_STRIKE);
Timer[EVENT_MAIEV_SHADOW_STRIKE] = 60000;
break;
case EVENT_MAIEV_TRAP:
@@ -1352,9 +1315,9 @@ public:
}
else
{
- if (!me->IsWithinDistInMap(me->getVictim(), 40))
- me->GetMotionMaster()->MoveChase(me->getVictim(), 30);
- DoCast(me->getVictim(), SPELL_THROW_DAGGER);
+ if (!me->IsWithinDistInMap(me->GetVictim(), 40))
+ me->GetMotionMaster()->MoveChase(me->GetVictim(), 30);
+ DoCastVictim(SPELL_THROW_DAGGER);
Timer[EVENT_MAIEV_THROW_DAGGER] = 2000;
}
break;
@@ -1376,7 +1339,19 @@ public:
if (Phase == PHASE_NORMAL_MAIEV)
DoMeleeAttackIfReady();
}
+
+ private:
+ uint64 IllidanGUID;
+ PhaseIllidan Phase;
+ EventMaiev Event;
+ uint32 Timer[5];
+ uint32 MaxTimer;
};
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new boss_maievAI(creature);
+ }
};
class npc_akama_illidan : public CreatureScript
@@ -1391,25 +1366,8 @@ public:
instance = creature->GetInstanceScript();
JustCreated = true;
}
- bool JustCreated;
- InstanceScript* instance;
-
- PhaseAkama Phase;
- bool Event;
- uint32 Timer;
-
- uint64 IllidanGUID;
- uint64 ChannelGUID;
- uint64 SpiritGUID[2];
- uint64 GateGUID;
- uint64 DoorGUID[2];
-
- uint32 ChannelCount;
- uint32 WalkCount;
- uint32 TalkCount;
- uint32 Check_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
WalkCount = 0;
if (instance)
@@ -1440,21 +1398,21 @@ public:
else
{
IllidanGUID = 0;
- GateGUID = 0;
+ GateGUID = 0;
DoorGUID[0] = 0;
DoorGUID[1] = 0;
}
- ChannelGUID = 0;
+ ChannelGUID = 0;
SpiritGUID[0] = 0;
SpiritGUID[1] = 0;
- Phase = PHASE_AKAMA_NULL;
- Timer = 0;
+ Phase = PHASE_AKAMA_NULL;
+ Timer = 0;
- ChannelCount = 0;
- TalkCount = 0;
- Check_Timer = 5000;
+ ChannelCount = 0;
+ TalkCount = 0;
+ Check_Timer = 5000;
KillAllElites();
@@ -1465,23 +1423,24 @@ public:
}
// Do not call reset in Akama's evade mode, as this will stop him from summoning minions after he kills the first bit
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
me->RemoveAllAuras();
me->DeleteThreatList();
me->CombatStop(true);
}
- void EnterCombat(Unit* /*who*/) {}
- void MoveInLineOfSight(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
- void MovementInform(uint32 MovementType, uint32 /*Data*/)
+
+ void MovementInform(uint32 MovementType, uint32 /*Data*/) OVERRIDE
{
if (MovementType == POINT_MOTION_TYPE)
Timer = 1;
}
- void DamageTaken(Unit* done_by, uint32 &damage)
+ void DamageTaken(Unit* done_by, uint32 &damage) OVERRIDE
{
if (damage > me->GetHealth() || done_by->GetGUID() != IllidanGUID)
damage = 0;
@@ -1537,7 +1496,7 @@ public:
if (Creature* Channel = me->SummonCreature(ILLIDAN_DOOR_TRIGGER, x, y, z+5, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 360000))
{
ChannelGUID = Channel->GetGUID();
- Channel->SetDisplayId(11686); // Invisible but spell visuals can still be seen.
+ Channel->SetDisplayId(MODEL_INVISIBLE); // Invisible but spell visuals can still be seen.
DoCast(Channel, SPELL_AKAMA_DOOR_FAIL);
}
@@ -1628,14 +1587,12 @@ public:
if (GETCRE(Illidan, IllidanGUID))
{
CAST_AI(boss_illidan_stormrage::boss_illidan_stormrageAI, Illidan->AI())->Timer[EVENT_TAUNT] += 30000;
- Illidan->MonsterYell(SAY_AKAMA_MINION, LANG_UNIVERSAL, 0);
- DoPlaySoundToSet(Illidan, SOUND_AKAMA_MINION);
+ Illidan->AI()->Talk(SAY_ILLIDAN_MINION);
}
Timer = 8000;
break;
case 1:
- me->MonsterYell(SAY_AKAMA_LEAVE, LANG_UNIVERSAL, 0);
- DoPlaySoundToSet(me, SOUND_AKAMA_LEAVE);
+ Talk(SAY_AKAMA_LEAVE);
Timer = 3000;
break;
case 2:
@@ -1688,8 +1645,7 @@ public:
Timer = 2000;
break;
case 5:
- me->MonsterYell(SAY_AKAMA_BEWARE, LANG_UNIVERSAL, 0);
- DoPlaySoundToSet(me, SOUND_AKAMA_BEWARE);
+ Talk(SAY_AKAMA_BEWARE);
Channel->setDeathState(JUST_DIED);
Spirit[0]->SetVisible(false);
Spirit[1]->SetVisible(false);
@@ -1732,7 +1688,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!me->IsVisible())
{
@@ -1777,7 +1733,7 @@ public:
EnterPhase(PHASE_TALK);
else
{
- DoCast(me->getVictim(), SPELL_CHAIN_LIGHTNING);
+ DoCastVictim(SPELL_CHAIN_LIGHTNING);
Timer = 30000;
}
}
@@ -1814,28 +1770,31 @@ public:
DoMeleeAttackIfReady();
}
- };
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
- {
- player->PlayerTalkClass->ClearMenus();
- if (action == GOSSIP_ACTION_INFO_DEF) // Time to begin the Event
+ void sGossipSelect(Player* player, uint32 /*sender*/, uint32 /*action*/) OVERRIDE
{
player->CLOSE_GOSSIP_MENU();
- CAST_AI(npc_akama_illidan::npc_akama_illidanAI, creature->AI())->EnterPhase(PHASE_CHANNEL);
+ EnterPhase(PHASE_CHANNEL);
}
- return true;
- }
- bool OnGossipHello(Player* player, Creature* creature)
- {
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
- player->SEND_GOSSIP_MENU(10465, creature->GetGUID());
-
- return true;
- }
+ private:
+ bool JustCreated;
+ InstanceScript* instance;
+ PhaseAkama Phase;
+ bool Event;
+ uint32 Timer;
+ uint64 IllidanGUID;
+ uint64 ChannelGUID;
+ uint64 SpiritGUID[2];
+ uint64 GateGUID;
+ uint64 DoorGUID[2];
+ uint32 ChannelCount;
+ uint32 WalkCount;
+ uint32 TalkCount;
+ uint32 Check_Timer;
+ };
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_akama_illidanAI(creature);
}
@@ -1850,7 +1809,7 @@ void boss_illidan_stormrage::boss_illidan_stormrageAI::Reset()
{
if (GETCRE(Akama, AkamaGUID))
{
- if (!Akama->isAlive())
+ if (!Akama->IsAlive())
Akama->Respawn();
else
{
@@ -1878,7 +1837,7 @@ void boss_illidan_stormrage::boss_illidan_stormrageAI::Reset()
FlightCount = 0;
TransformCount = 0;
- me->SetDisplayId(21135);
+ me->SetDisplayId(MODEL_ILLIDAN);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
@@ -2020,27 +1979,16 @@ void boss_illidan_stormrage::boss_illidan_stormrageAI::HandleTalkSequence()
++TalkCount;
}
-class mob_cage_trap_trigger : public CreatureScript
+class npc_cage_trap_trigger : public CreatureScript
{
public:
- mob_cage_trap_trigger() : CreatureScript("mob_cage_trap_trigger") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new cage_trap_triggerAI (creature);
- }
+ npc_cage_trap_trigger() : CreatureScript("npc_cage_trap_trigger") { }
struct cage_trap_triggerAI : public ScriptedAI
{
cage_trap_triggerAI(Creature* creature) : ScriptedAI(creature) {}
- uint64 IllidanGUID;
- uint32 DespawnTimer;
-
- bool Active;
- bool SummonedBeams;
-
- void Reset()
+ void Reset() OVERRIDE
{
IllidanGUID = 0;
@@ -2052,9 +2000,10 @@ public:
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
}
- void EnterCombat(Unit* /*who*/){}
+ void EnterCombat(Unit* /*who*/)OVERRIDE {}
+
+ void MoveInLineOfSight(Unit* who) OVERRIDE
- void MoveInLineOfSight(Unit* who)
{
if (!Active)
return;
@@ -2078,7 +2027,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (DespawnTimer)
{
@@ -2095,7 +2044,19 @@ public:
// }
// }
}
+
+ public:
+ bool Active;
+ private:
+ uint64 IllidanGUID;
+ uint32 DespawnTimer;
+ bool SummonedBeams;
};
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new cage_trap_triggerAI(creature);
+ }
};
class gameobject_cage_trap : public GameObjectScript
@@ -2103,119 +2064,111 @@ class gameobject_cage_trap : public GameObjectScript
public:
gameobject_cage_trap() : GameObjectScript("gameobject_cage_trap") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
float x, y, z;
player->GetPosition(x, y, z);
// Grid search for nearest live Creature of entry 23304 within 10 yards
if (Creature* pTrigger = go->FindNearestCreature(23304, 10.0f))
- CAST_AI(mob_cage_trap_trigger::cage_trap_triggerAI, pTrigger->AI())->Active = true;
+ CAST_AI(npc_cage_trap_trigger::cage_trap_triggerAI, pTrigger->AI())->Active = true;
go->SetGoState(GO_STATE_ACTIVE);
return true;
}
};
-class mob_shadow_demon : public CreatureScript
+class npc_shadow_demon : public CreatureScript
{
public:
- mob_shadow_demon() : CreatureScript("mob_shadow_demon") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new shadow_demonAI (creature);
- }
+ npc_shadow_demon() : CreatureScript("npc_shadow_demon") { }
struct shadow_demonAI : public ScriptedAI
{
shadow_demonAI(Creature* creature) : ScriptedAI(creature) {}
- uint64 TargetGUID;
-
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
DoZoneInCombat();
}
- void Reset()
+ void Reset() OVERRIDE
{
TargetGUID = 0;
DoCast(me, SPELL_SHADOW_DEMON_PASSIVE, true);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (Unit* target = Unit::GetUnit(*me, TargetGUID))
target->RemoveAurasDueToSpell(SPELL_PARALYZE);
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
if (!UpdateVictim())
return;
- if (me->getVictim()->GetTypeId() != TYPEID_PLAYER)
+ if (me->GetVictim()->GetTypeId() != TYPEID_PLAYER)
return; // Only cast the below on players.
- if (!me->getVictim()->HasAura(SPELL_PARALYZE))
+ if (!me->GetVictim()->HasAura(SPELL_PARALYZE))
{
- TargetGUID = me->getVictim()->GetGUID();
- me->AddThreat(me->getVictim(), 10000000.0f);
- DoCast(me->getVictim(), SPELL_PURPLE_BEAM, true);
- DoCast(me->getVictim(), SPELL_PARALYZE, true);
+ TargetGUID = me->GetVictim()->GetGUID();
+ me->AddThreat(me->GetVictim(), 10000000.0f);
+ DoCastVictim(SPELL_PURPLE_BEAM, true);
+ DoCastVictim(SPELL_PARALYZE, true);
}
// Kill our target if we're very close.
- if (me->IsWithinDistInMap(me->getVictim(), 3))
- DoCast(me->getVictim(), SPELL_CONSUME_SOUL);
+ if (me->IsWithinDistInMap(me->GetVictim(), 3))
+ DoCastVictim(SPELL_CONSUME_SOUL);
}
+
+ private:
+ uint64 TargetGUID;
};
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new shadow_demonAI(creature);
+ }
};
-class mob_blade_of_azzinoth : public CreatureScript
+class npc_blade_of_azzinoth : public CreatureScript
{
public:
- mob_blade_of_azzinoth() : CreatureScript("mob_blade_of_azzinoth") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new blade_of_azzinothAI (creature);
- }
+ npc_blade_of_azzinoth() : CreatureScript("npc_blade_of_azzinoth") { }
struct blade_of_azzinothAI : public NullCreatureAI
{
blade_of_azzinothAI(Creature* creature) : NullCreatureAI(creature) {}
- void SpellHit(Unit* /*caster*/, const SpellInfo* spell)
+ void SpellHit(Unit* /*caster*/, const SpellInfo* spell) OVERRIDE
{
if (spell->Id == SPELL_THROW_GLAIVE2 || spell->Id == SPELL_THROW_GLAIVE)
- me->SetDisplayId(21431);// appear when hit by Illidan's glaive
+ me->SetDisplayId(MODEL_BLADE);// appear when hit by Illidan's glaive
}
};
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new blade_of_azzinothAI(creature);
+ }
};
-class mob_parasitic_shadowfiend : public CreatureScript
+class npc_parasitic_shadowfiend : public CreatureScript
{
public:
- mob_parasitic_shadowfiend() : CreatureScript("mob_parasitic_shadowfiend") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_parasitic_shadowfiendAI (creature);
- }
+ npc_parasitic_shadowfiend() : CreatureScript("npc_parasitic_shadowfiend") { }
// Shadowfiends interact with Illidan, setting more targets in Illidan's hashmap
- struct mob_parasitic_shadowfiendAI : public ScriptedAI
+ struct npc_parasitic_shadowfiendAI : public ScriptedAI
{
- mob_parasitic_shadowfiendAI(Creature* creature) : ScriptedAI(creature)
+ npc_parasitic_shadowfiendAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
- InstanceScript* instance;
- uint64 IllidanGUID;
- uint32 CheckTimer;
-
- void Reset()
+ void Reset() OVERRIDE
{
if (instance)
IllidanGUID = instance->GetData64(DATA_ILLIDANSTORMRAGE);
@@ -2226,30 +2179,30 @@ public:
DoCast(me, SPELL_SHADOWFIEND_PASSIVE, true);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
DoZoneInCombat();
}
void DoMeleeAttackIfReady()
{
- if (me->isAttackReady() && me->IsWithinMeleeRange(me->getVictim()))
+ if (me->isAttackReady() && me->IsWithinMeleeRange(me->GetVictim()))
{
- if (!me->getVictim()->HasAura(SPELL_PARASITIC_SHADOWFIEND)
- && !me->getVictim()->HasAura(SPELL_PARASITIC_SHADOWFIEND2))
+ if (!me->GetVictim()->HasAura(SPELL_PARASITIC_SHADOWFIEND)
+ && !me->GetVictim()->HasAura(SPELL_PARASITIC_SHADOWFIEND2))
{
if (Creature* illidan = Unit::GetCreature((*me), IllidanGUID))// summon only in 1. phase
if (CAST_AI(boss_illidan_stormrage::boss_illidan_stormrageAI, illidan->AI())->Phase == PHASE_NORMAL)
- me->CastSpell(me->getVictim(), SPELL_PARASITIC_SHADOWFIEND2, true, 0, 0, IllidanGUID); // do not stack
+ me->CastSpell(me->GetVictim(), SPELL_PARASITIC_SHADOWFIEND2, true, 0, 0, IllidanGUID); // do not stack
}
- me->AttackerStateUpdate(me->getVictim());
+ me->AttackerStateUpdate(me->GetVictim());
me->resetAttackTimer();
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
- if (!me->getVictim())
+ if (!me->GetVictim())
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 999, true))
AttackStart(target);
@@ -2274,7 +2227,17 @@ public:
DoMeleeAttackIfReady();
}
+
+ private:
+ InstanceScript* instance;
+ uint64 IllidanGUID;
+ uint32 CheckTimer;
};
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_parasitic_shadowfiendAI(creature);
+ }
};
void AddSC_boss_illidan()
@@ -2282,10 +2245,10 @@ void AddSC_boss_illidan()
new boss_illidan_stormrage();
new npc_akama_illidan();
new boss_maiev_shadowsong();
- new mob_flame_of_azzinoth();
- new mob_blade_of_azzinoth();
+ new npc_flame_of_azzinoth();
+ new npc_blade_of_azzinoth();
new gameobject_cage_trap();
- new mob_cage_trap_trigger();
- new mob_shadow_demon();
- new mob_parasitic_shadowfiend();
+ new npc_cage_trap_trigger();
+ new npc_shadow_demon();
+ new npc_parasitic_shadowfiend();
}
diff --git a/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp b/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp
index dc56f7abe07..b9172be49da 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp
@@ -82,9 +82,9 @@ class boss_mother_shahraz : public CreatureScript
public:
boss_mother_shahraz() : CreatureScript("boss_mother_shahraz") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_shahrazAI (creature);
+ return new boss_shahrazAI(creature);
}
struct boss_shahrazAI : public ScriptedAI
@@ -111,7 +111,7 @@ public:
bool Enraged;
- void Reset()
+ void Reset() OVERRIDE
{
if (instance)
instance->SetData(DATA_MOTHERSHAHRAZEVENT, NOT_STARTED);
@@ -134,7 +134,7 @@ public:
Enraged = false;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (instance)
instance->SetData(DATA_MOTHERSHAHRAZEVENT, IN_PROGRESS);
@@ -143,12 +143,12 @@ public:
Talk(SAY_AGGRO);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
instance->SetData(DATA_MOTHERSHAHRAZEVENT, DONE);
@@ -165,7 +165,7 @@ public:
for (uint8 i = 0; i < 3; ++i)
{
Unit* unit = SelectTarget(SELECT_TARGET_RANDOM, 1);
- if (unit && unit->isAlive() && (unit->GetTypeId() == TYPEID_PLAYER))
+ if (unit && unit->IsAlive() && (unit->GetTypeId() == TYPEID_PLAYER))
{
TargetGUID[i] = unit->GetGUID();
unit->CastSpell(unit, SPELL_TELEPORT_VISUAL, true);
@@ -174,7 +174,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -190,7 +190,7 @@ public:
if (BeamTimer <= diff)
{
Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0);
- if (!target || !target->isAlive())
+ if (!target || !target->IsAlive())
return;
BeamTimer = 9000;
@@ -266,13 +266,13 @@ public:
if (ShriekTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_SILENCING_SHRIEK);
+ DoCastVictim(SPELL_SILENCING_SHRIEK);
ShriekTimer = 25000+rand()%10 * 1000;
} else ShriekTimer -= diff;
if (SaberTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_SABER_LASH);
+ DoCastVictim(SPELL_SABER_LASH);
SaberTimer = 25000+rand()%10 * 1000;
} else SaberTimer -= diff;
diff --git a/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp b/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp
index a6432114ded..22ea1b70c21 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp
@@ -104,9 +104,9 @@ class npc_enslaved_soul : public CreatureScript
public:
npc_enslaved_soul() : CreatureScript("npc_enslaved_soul") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_enslaved_soulAI (creature);
+ return new npc_enslaved_soulAI(creature);
}
struct npc_enslaved_soulAI : public ScriptedAI
@@ -115,15 +115,15 @@ public:
uint64 ReliquaryGUID;
- void Reset() {ReliquaryGUID = 0;}
+ void Reset() OVERRIDE { ReliquaryGUID = 0; }
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
DoCast(me, ENSLAVED_SOUL_PASSIVE, true);
DoZoneInCombat();
}
- void JustDied(Unit* /*killer*/);
+ void JustDied(Unit* /*killer*/) OVERRIDE;
};
};
@@ -132,9 +132,9 @@ class boss_reliquary_of_souls : public CreatureScript
public:
boss_reliquary_of_souls() : CreatureScript("boss_reliquary_of_souls") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_reliquary_of_soulsAI (creature);
+ return new boss_reliquary_of_soulsAI(creature);
}
struct boss_reliquary_of_soulsAI : public ScriptedAI
@@ -156,7 +156,7 @@ public:
uint32 SoulCount;
uint32 SoulDeathCount;
- void Reset()
+ void Reset() OVERRIDE
{
if (instance)
instance->SetData(DATA_RELIQUARYOFSOULSEVENT, NOT_STARTED);
@@ -177,12 +177,13 @@ public:
me->RemoveAurasDueToSpell(SPELL_SUBMERGE);
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (!who)
return;
- if (me->isInCombat())
+ if (me->IsInCombat())
return;
if (who->GetTypeId() != TYPEID_PLAYER)
@@ -194,7 +195,7 @@ public:
AttackStartNoMove(who);
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
me->AddThreat(who, 10000.0f);
DoZoneInCombat();
@@ -242,13 +243,13 @@ public:
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
instance->SetData(DATA_RELIQUARYOFSOULSEVENT, DONE);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!Phase)
return;
@@ -299,7 +300,7 @@ public:
Timer = 1000;
if (Phase == 3)
{
- if (!Essence->isAlive())
+ if (!Essence->IsAlive())
DoCast(me, 7, true);
else return;
}
@@ -387,9 +388,9 @@ class boss_essence_of_suffering : public CreatureScript
public:
boss_essence_of_suffering() : CreatureScript("boss_essence_of_suffering") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_essence_of_sufferingAI (creature);
+ return new boss_essence_of_sufferingAI(creature);
}
struct boss_essence_of_sufferingAI : public ScriptedAI
@@ -404,7 +405,7 @@ public:
uint32 SoulDrainTimer;
uint32 AuraTimer;
- void Reset()
+ void Reset() OVERRIDE
{
StatAuraGUID = 0;
@@ -415,7 +416,7 @@ public:
AuraTimer = 5000;
}
- void DamageTaken(Unit* /*done_by*/, uint32 &damage)
+ void DamageTaken(Unit* /*done_by*/, uint32 &damage) OVERRIDE
{
if (damage >= me->GetHealth())
{
@@ -427,7 +428,7 @@ public:
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (!me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE))
{
@@ -440,7 +441,7 @@ public:
else return;
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SUFF_SAY_SLAY);
}
@@ -455,7 +456,7 @@ public:
for (; itr != threatlist.end(); ++itr)
{
Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid());
- if (unit && unit->isAlive() && (unit->GetTypeId() == TYPEID_PLAYER)) // Only alive players
+ if (unit && unit->IsAlive() && (unit->GetTypeId() == TYPEID_PLAYER)) // Only alive players
targets.push_back(unit);
}
if (targets.empty())
@@ -469,9 +470,9 @@ public:
me->AddThreat(target, 1000000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
- if (me->isInCombat())
+ if (me->IsInCombat())
{
//Supposed to be cast on nearest target
if (FixateTimer <= diff)
@@ -512,9 +513,9 @@ class boss_essence_of_desire : public CreatureScript
public:
boss_essence_of_desire() : CreatureScript("boss_essence_of_desire") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_essence_of_desireAI (creature);
+ return new boss_essence_of_desireAI(creature);
}
struct boss_essence_of_desireAI : public ScriptedAI
@@ -525,7 +526,7 @@ public:
uint32 DeadenTimer;
uint32 SoulShockTimer;
- void Reset()
+ void Reset() OVERRIDE
{
RuneShieldTimer = 60000;
DeadenTimer = 30000;
@@ -533,7 +534,7 @@ public:
me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_CONFUSE, true);
}
- void DamageTaken(Unit* done_by, uint32 &damage)
+ void DamageTaken(Unit* done_by, uint32 &damage) OVERRIDE
{
if (done_by == me)
return;
@@ -552,7 +553,7 @@ public:
}
}
- void SpellHit(Unit* /*caster*/, const SpellInfo* spell)
+ void SpellHit(Unit* /*caster*/, const SpellInfo* spell) OVERRIDE
{
if (me->GetCurrentSpell(CURRENT_GENERIC_SPELL))
for (uint8 i = 0; i < 3; ++i)
@@ -562,19 +563,19 @@ public:
me->InterruptSpell(CURRENT_GENERIC_SPELL, false);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(DESI_SAY_FREED);
DoZoneInCombat();
DoCast(me, AURA_OF_DESIRE, true);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(DESI_SAY_SLAY);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -590,14 +591,14 @@ public:
if (SoulShockTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_SOUL_SHOCK);
+ DoCastVictim(SPELL_SOUL_SHOCK);
SoulShockTimer = 5000;
} else SoulShockTimer -= diff;
if (DeadenTimer <= diff)
{
me->InterruptNonMeleeSpells(false);
- DoCast(me->getVictim(), SPELL_DEADEN);
+ DoCastVictim(SPELL_DEADEN);
DeadenTimer = urand(25000, 35000);
if (!(rand()%2))
{
@@ -615,9 +616,9 @@ class boss_essence_of_anger : public CreatureScript
public:
boss_essence_of_anger() : CreatureScript("boss_essence_of_anger") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_essence_of_angerAI (creature);
+ return new boss_essence_of_angerAI(creature);
}
struct boss_essence_of_angerAI : public ScriptedAI
@@ -634,7 +635,7 @@ public:
bool CheckedAggro;
- void Reset()
+ void Reset() OVERRIDE
{
AggroTargetGUID = 0;
@@ -647,7 +648,7 @@ public:
CheckedAggro = false;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(ANGER_SAY_FREED);
@@ -655,17 +656,17 @@ public:
DoCast(me, AURA_OF_ANGER, true);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(ANGER_SAY_DEATH);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(ANGER_SAY_SLAY);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -673,24 +674,24 @@ public:
if (!CheckedAggro)
{
- AggroTargetGUID = me->getVictim()->GetGUID();
+ AggroTargetGUID = me->GetVictim()->GetGUID();
CheckedAggro = true;
}
if (CheckTankTimer <= diff)
{
- if (me->getVictim()->GetGUID() != AggroTargetGUID)
+ if (me->GetVictim()->GetGUID() != AggroTargetGUID)
{
Talk(ANGER_SAY_BEFORE);
DoCast(me, SPELL_SELF_SEETHE, true);
- AggroTargetGUID = me->getVictim()->GetGUID();
+ AggroTargetGUID = me->GetVictim()->GetGUID();
}
CheckTankTimer = 2000;
} else CheckTankTimer -= diff;
if (SoulScreamTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_SOUL_SCREAM);
+ DoCastVictim(SPELL_SOUL_SCREAM);
SoulScreamTimer = urand(9000, 11000);
if (!(rand()%3))
{
diff --git a/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp b/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp
index 79b8213fff3..4a4304bcd24 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp
@@ -1,6 +1,5 @@
/*
* Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
- * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
@@ -16,890 +15,1236 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-/* ScriptData
-SDName: Boss_Shade_of_Akama
-SD%Complete: 90
-SDComment: Seems to be complete.
-SDCategory: Black Temple
-EndScriptData */
+/*
+Name: Boss_Shade_of_Akama
+%Complete: 80
+Comment: WIP A few more adds to script, ending script, and bugs.
+Category: Black Temple
+*/
+#include "ObjectMgr.h"
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
+#include "GridNotifiers.h"
#include "black_temple.h"
-#include "Player.h"
-enum ShadeOfAkama
+enum Says
{
- SAY_DEATH = 0,
- SAY_LOW_HEALTH = 1,
- // Ending cinematic text
- SAY_FREE = 2,
- SAY_BROKEN_FREE_01 = 0,
- SAY_BROKEN_FREE_02 = 1
+ // Akama Ending cinematic text
+ SAY_BROKEN_FREE_0 = 0,
+ SAY_BROKEN_FREE_1 = 1,
+ SAY_BROKEN_FREE_2 = 2
};
-#define GOSSIP_ITEM "We are ready to fight alongside you, Akama"
+enum Spells
+{
+ // Akama
+ SPELL_STEALTH = 34189, // On Spawn
+ SPELL_AKAMA_SOUL_CHANNEL = 40447, // Cast on self hits Shade
+ SPELL_FIXATE = 40607, // Cast on self hits Shade
+ SPELL_CHAIN_LIGHTNING = 39945, // Combat
+ SPELL_DESTRUCTIVE_POISON = 40874, // Combat
+ // Shade
+ SPELL_THREAT = 41602, // self cast hits Akama
+ SPELL_SHADE_OF_AKAMA_TRIGGER = 40955, // Cast on death
+ SPELL_AKAMA_SOUL_EXPEL_CHANNEL = 40927, // must hit shade
+ SPELL_AKAMA_SOUL_EXPEL = 40902, // the one he cast
+ // Ashtongue Channeler
+ SPELL_SHADE_SOUL_CHANNEL = 40401,
+ SPELL_SHADE_SOUL_CHANNEL_2 = 40520,
+ SPELL_SHADOWFORM = 40973, // Cast on Shade
+ // Creature Spawner
+ SPELL_ASHTONGUE_WAVE_B = 42035,
+ SPELL_SUMMON_ASHTONGUE_SORCERER = 40476,
+ SPELL_SUMMON_ASHTONGUE_DEFENDER = 40474,
+ // Ashtongue Defender
+ SPELL_DEBILITATING_STRIKE = 41178,
+ SPELL_HEROIC_STRIKE = 41975,
+ SPELL_SHIELD_BASH = 41180,
+ SPELL_WINDFURY = 38229,
+ // Ashtongue Rogue
+ SPELL_DEBILITATING_POISON = 41978,
+ SPELL_EVISCERATE = 41177,
+ // Ashtongue Elementalist
+ SPELL_RAIN_OF_FIRE = 42023,
+ SPELL_LIGHTNING_BOLT = 42024,
+ // Ashtongue Spiritbinder
+ SPELL_SPIRIT_MEND = 42025,
+ SPELL_CHAIN_HEAL = 42027,
+ SPELL_SPIRITBINDER_SPIRIT_HEAL = 42317
+};
-struct Location
+enum Creatures
{
- float x, y, o, z;
+ NPC_ASHTONGUE_CHANNELER = 23421,
+ NPC_ASHTONGUE_SORCERER = 23215,
+ NPC_ASHTONGUE_DEFENDER = 23216,
+ NPC_ASHTONGUE_ELEMENTALIST = 23523,
+ NPC_ASHTONGUE_ROGUE = 23318,
+ NPC_ASHTONGUE_SPIRITBINDER = 23524,
+ NPC_ASHTONGUE_BROKEN = 23319,
+ NPC_CREATURE_SPAWNER_AKAMA = 23210
};
-/* Not used
-static Location ChannelerLocations[]=
+enum Factions
{
- {463.161285f, 401.219757f, 3.141592f, 0.0f},
- {457.377625f, 391.227661f, 2.106461f, 0.0f},
- {446.012421f, 391.227661f, 1.071904f, 0.0f},
- {439.533783f, 401.219757f, 0.000000f, 0.0f},
- {446.012421f, 411.211853f, 5.210546f, 0.0f},
- {457.377625f, 411.211853f, 4.177494f, 0.0f}
+ FACTION_FRIENDLY = 1820,
+ FACTION_COMBAT = 1868
};
-*/
-static Location SpawnLocations[]=
+enum SetData
{
- {498.652740f, 461.728119f, 0.0f, 0.0f},
- {498.505003f, 339.619324f, 0.0f, 0.0f}
+ SETDATA_DATA = 1,
+ SETDATA_RESET = 1,
+ SETDATA_CHANNELER_DIED = 2,
+ SETDATA_START_SPAWNING = 3,
+ SETDATA_STOP_SPAWNING = 4,
+ SETDATA_DESPAWN_ALL_SPAWNS = 5,
+ SETDATA_START_ATTACK_AKAMA = 6
};
-static Location AkamaWP[]=
+enum Events
{
- {482.352448f, 401.162720f, 0.0f, 112.783928f},
- {469.597443f, 402.264404f, 0.0f, 118.537910f}
+ // Akama
+ EVENT_SHADE_START = 1,
+ EVENT_SHADE_CHANNEL = 2,
+ EVENT_FIXATE = 3,
+ EVENT_CHAIN_LIGHTNING = 4,
+ EVENT_DESTRUCTIVE_POISON = 5,
+ // Shade
+ EVENT_RESET_ENCOUNTER = 6,
+ EVENT_FIND_CHANNELERS_SPAWNERS = 7,
+ EVENT_SET_CHANNELERS_SPAWNERS = 8,
+ EVENT_START_ATTACK_AKAMA = 9,
+ EVENT_ADD_THREAT = 10,
+ // Creature spawner
+ EVENT_SPAWN_WAVE_B = 11,
+ EVENT_SUMMON_ASHTONGUE_SORCERER = 12,
+ EVENT_SUMMON_ASHTONGUE_DEFENDER = 13,
+ // Channeler
+ EVENT_GET_SHADE_GUID = 14,
+ EVENT_CHANNEL = 15,
+ // Ashtongue Sorcerer
+ EVENT_SORCERER_CHANNEL = 16,
+ // Ashtongue Defender
+ EVENT_DEBILITATING_STRIKE = 17,
+ EVENT_HEROIC_STRIKE = 18,
+ EVENT_SHIELD_BASH = 19,
+ EVENT_WINDFURY = 20,
+ // Ashtongue Rogue
+ EVENT_DEBILITATING_POISON = 21,
+ EVENT_EVISCERATE = 22,
+ // Ashtongue Elementalist
+ EVENT_RAIN_OF_FIRE = 23,
+ EVENT_LIGHTNING_BOLT = 24,
+ // Ashtongue Spiritbinder
+ EVENT_SPIRIT_HEAL = 25,
};
-static Location BrokenCoords[]=
+struct Location
{
- {541.375916f, 401.439575f, M_PI, 112.783997f}, // The place where Akama channels
- {534.130005f, 352.394531f, 2.164150f, 112.783737f}, // Behind a 'pillar' which is behind the east alcove
- {499.621185f, 341.534729f, 1.652856f, 112.783730f}, // East Alcove
- {499.151093f, 461.036438f, 4.770888f, 112.78370f}, // West Alcove
+ float x, y, z;
};
-static Location BrokenWP[]=
+static Location ShadeWP = { 512.4877f, 400.7993f, 112.7837f };
+
+static Location AkamaWP[] =
{
- {492.491638f, 400.744690f, 3.122336f, 112.783737f},
- {494.335724f, 382.221771f, 2.676230f, 112.783737f},
- {489.555939f, 373.507202f, 2.416263f, 112.783737f},
- {491.136353f, 427.868774f, 3.519748f, 112.783737f},
+ { 517.4877f, 400.7993f, 112.7837f },
+ { 468.4435f, 401.1062f, 118.5379f }
};
-// Locations
-#define Z1 118.543144f
-#define Z2 120.783768f
-#define Z_SPAWN 113.537949f
-#define AGGRO_X 482.793182f
-#define AGGRO_Y 401.270172f
-#define AGGRO_Z 112.783928f
-#define AKAMA_X 514.583984f
-#define AKAMA_Y 400.601013f
-#define AKAMA_Z 112.783997f
-
-// Spells
-#define SPELL_VERTEX_SHADE_BLACK 39833
-#define SPELL_SHADE_SOUL_CHANNEL 40401
-#define SPELL_DESTRUCTIVE_POISON 40874
-#define SPELL_LIGHTNING_BOLT 42024
-#define SPELL_AKAMA_SOUL_CHANNEL 40447
-#define SPELL_AKAMA_SOUL_RETRIEVE 40902
-#define AKAMA_SOUL_EXPEL 40855
-#define SPELL_SHADE_SOUL_CHANNEL_2 40520
-
-// Channeler entry
-#define CREATURE_CHANNELER 23421
-#define CREATURE_SORCERER 23215
-#define CREATURE_DEFENDER 23216
-#define CREATURE_BROKEN 23319
-
-const uint32 spawnEntries[4]= { 23523, 23318, 23524 };
-
-class mob_ashtongue_channeler : public CreatureScript
+// ########################################################
+// Shade of Akama
+// ########################################################
+
+class boss_shade_of_akama : public CreatureScript
{
public:
- mob_ashtongue_channeler() : CreatureScript("mob_ashtongue_channeler") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_ashtongue_channelerAI (creature);
- }
+ boss_shade_of_akama() : CreatureScript("boss_shade_of_akama") { }
- struct mob_ashtongue_channelerAI : public ScriptedAI
+ struct boss_shade_of_akamaAI : public ScriptedAI
{
- mob_ashtongue_channelerAI(Creature* creature) : ScriptedAI(creature)
+ boss_shade_of_akamaAI(Creature* creature) : ScriptedAI(creature), HasKilledAkamaAndReseting(false)
{
- ShadeGUID = 0;
+ instance = creature->GetInstanceScript();
+ me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
}
- uint64 ShadeGUID;
+ void Reset() OVERRIDE
+ {
+ if (!HasKilledAkamaAndReseting)
+ {
+ for (std::list<uint64>::const_iterator itr = Channelers.begin(); itr != Channelers.end(); ++itr)
+ if (Creature* Channeler = (Unit::GetCreature(*me, *itr)))
+ Channeler->DespawnOrUnsummon();
- void Reset() {}
- void JustDied(Unit* /*killer*/);
- void EnterCombat(Unit* /*who*/) {}
- void AttackStart(Unit* /*who*/) {}
- void MoveInLineOfSight(Unit* /*who*/) {}
- void UpdateAI(uint32 /*diff*/) {}
- };
+ for (std::list<uint64>::const_iterator itr = Spawners.begin(); itr != Spawners.end(); ++itr)
+ if (Creature* Spawner = (Unit::GetCreature(*me, *itr)))
+ Spawner->AI()->SetData(SETDATA_DATA, SETDATA_DESPAWN_ALL_SPAWNS);
-};
+ events.ScheduleEvent(EVENT_FIND_CHANNELERS_SPAWNERS, 3000);
+ events.ScheduleEvent(EVENT_RESET_ENCOUNTER, 5000);
+ }
-class mob_ashtongue_sorcerer : public CreatureScript
-{
-public:
- mob_ashtongue_sorcerer() : CreatureScript("mob_ashtongue_sorcerer") { }
+ me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_ashtongue_sorcererAI (creature);
- }
+ me->SetWalk(true);
+ combatStarted = false;
+ akamaReached = false;
+ HasKilledAkama = false;
+ HasKilledAkamaAndReseting = false;
+ }
- struct mob_ashtongue_sorcererAI : public ScriptedAI
- {
- mob_ashtongue_sorcererAI(Creature* creature) : ScriptedAI(creature)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
- ShadeGUID = 0;
+ if (instance)
+ instance->SetData(DATA_SHADEOFAKAMAEVENT, DONE);
}
- uint64 ShadeGUID;
- uint32 CheckTimer;
- bool StartBanishing;
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+
+ void AttackStart(Unit* who) OVERRIDE
+ {
+ if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE))
+ {
+ if (Creature* Akama = Unit::GetCreature((*me), akamaGUID))
+ if (Akama->IsAlive())
+ ScriptedAI::AttackStart(Akama);
+ }
+ else
+ ScriptedAI::AttackStart(who);
+ }
- void Reset()
+ void SetData(uint32 data, uint32 value) OVERRIDE
{
- StartBanishing = false;
- CheckTimer = 5000;
+ if (data == SETDATA_DATA && value == SETDATA_CHANNELER_DIED)
+ me->RemoveAuraFromStack(SPELL_SHADE_SOUL_CHANNEL_2);
+
+ UpdateSpeed();
}
- void JustDied(Unit* /*killer*/);
- void EnterCombat(Unit* /*who*/) {}
- void AttackStart(Unit* /*who*/) {}
- void MoveInLineOfSight(Unit* /*who*/) {}
- void UpdateAI(uint32 diff)
+ void SpellHit(Unit* /*caster*/, SpellInfo const* spell) OVERRIDE
{
- if (StartBanishing)
+ if (spell->Id == SPELL_AKAMA_SOUL_CHANNEL)
+ {
+ combatStarted = true;
+ events.ScheduleEvent(EVENT_START_ATTACK_AKAMA, 500);
+ events.ScheduleEvent(EVENT_SET_CHANNELERS_SPAWNERS, 1000);
+ me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE);
+ if (Creature* Akama = Unit::GetCreature((*me), akamaGUID))
+ me->AddThreat(Akama, 10000000.0f);
+ }
+ else if (spell->Id == SPELL_SHADE_SOUL_CHANNEL_2)
+ UpdateSpeed();
+ }
+
+ void UpdateSpeed()
+ {
+ float moveSpeed = 0.2f;
+
+ if (me->GetAuraCount(SPELL_SHADE_SOUL_CHANNEL_2) <= 3)
+ {
+ moveSpeed = (2.0 - (0.6 * me->GetAuraCount(SPELL_SHADE_SOUL_CHANNEL_2)));
+ me->SetSpeed(MOVE_WALK, moveSpeed / 2.5);
+ me->SetSpeed(MOVE_RUN, (moveSpeed * 2) / 7);
+ me->ClearUnitState(UNIT_STATE_ROOT);
+ }
+ else
+ me->AddUnitState(UNIT_STATE_ROOT);
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ if (HasKilledAkamaAndReseting)
return;
- if (CheckTimer <= diff)
+ events.Update(diff);
+
+ if (!combatStarted)
{
- Creature* Shade = Unit::GetCreature((*me), ShadeGUID);
- if (Shade && Shade->isAlive() && me->isAlive())
+ while (uint32 eventId = events.ExecuteEvent())
{
- if (me->IsWithinDist(Shade, 20, false))
+ switch (eventId)
{
- me->GetMotionMaster()->Clear(false);
- me->GetMotionMaster()->MoveIdle();
- DoCast(Shade, SPELL_SHADE_SOUL_CHANNEL, true);
- DoCast(Shade, SPELL_SHADE_SOUL_CHANNEL_2, true);
+ case EVENT_RESET_ENCOUNTER:
+ if (Creature* Akama = Unit::GetCreature((*me), akamaGUID))
+ if (!Akama->IsAlive())
+ Akama->Respawn();
+ break;
+ case EVENT_FIND_CHANNELERS_SPAWNERS:
+ {
+ std::list<Creature*> ChannelerList;
+ me->GetCreatureListWithEntryInGrid(ChannelerList, NPC_ASHTONGUE_CHANNELER, 15.0f);
- StartBanishing = true;
+ if (!ChannelerList.empty())
+ for (std::list<Creature*>::const_iterator itr = ChannelerList.begin(); itr != ChannelerList.end(); ++itr)
+ {
+ Channelers.push_back((*itr)->GetGUID());
+ if ((*itr)->isDead())
+ (*itr)->Respawn();
+ }
+
+ std::list<Creature*> SpawnerList;
+ me->GetCreatureListWithEntryInGrid(SpawnerList, NPC_CREATURE_SPAWNER_AKAMA, 90.0f);
+
+ if (!SpawnerList.empty())
+ for (std::list<Creature*>::const_iterator itr = SpawnerList.begin(); itr != SpawnerList.end(); ++itr)
+ Spawners.push_back((*itr)->GetGUID());
+
+ me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_STUN);
+ akamaGUID = instance->GetData64(DATA_AKAMA_SHADE);
+ break;
+ }
+ default:
+ break;
}
}
- CheckTimer = 2000;
- } else CheckTimer -= diff;
+ }
+ else
+ {
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_SET_CHANNELERS_SPAWNERS:
+ {
+ for (std::list<uint64>::const_iterator itr = Channelers.begin(); itr != Channelers.end(); ++itr)
+ {
+ if (Creature* Channeler = (Unit::GetCreature(*me, *itr)))
+ Channeler->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ }
+
+ for (std::list<uint64>::const_iterator itr = Spawners.begin(); itr != Spawners.end(); ++itr)
+ {
+ if (Creature* Spawner = (Unit::GetCreature(*me, *itr)))
+ Spawner->AI()->SetData(SETDATA_DATA, SETDATA_START_SPAWNING);
+ }
+
+ break;
+ }
+ case EVENT_START_ATTACK_AKAMA:
+ me->GetMotionMaster()->MovePoint(0, ShadeWP.x, ShadeWP.y, ShadeWP.z ,false);
+ events.ScheduleEvent(EVENT_START_ATTACK_AKAMA, 1000);
+ break;
+ case EVENT_ADD_THREAT:
+ DoCast(SPELL_THREAT);
+ events.ScheduleEvent(EVENT_ADD_THREAT, 3500);
+ break;
+ default:
+ break;
+ }
+ }
+
+ if (HasKilledAkama)
+ {
+ if (!HasKilledAkamaAndReseting)
+ {
+ HasKilledAkamaAndReseting = true;
+ me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ instance->SetData(DATA_SHADEOFAKAMAEVENT, NOT_STARTED);
+ me->RemoveAllAurasExceptType(SPELL_AURA_DUMMY);
+ me->DeleteThreatList();
+ me->CombatStop();
+ me->GetMotionMaster()->MoveTargetedHome();
+ me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
+ combatStarted = false;
+
+ if (Creature* Akama = Unit::GetCreature((*me), akamaGUID))
+ Akama->DespawnOrUnsummon();
+
+ for (std::list<uint64>::const_iterator itr = Channelers.begin(); itr != Channelers.end(); ++itr)
+ if (Creature* Channeler = (Unit::GetCreature(*me, *itr)))
+ Channeler->DespawnOrUnsummon();
+
+ for (std::list<uint64>::const_iterator itr = Spawners.begin(); itr != Spawners.end(); ++itr)
+ if (Creature* Spawner = (Unit::GetCreature(*me, *itr)))
+ Spawner->AI()->SetData(SETDATA_DATA, SETDATA_DESPAWN_ALL_SPAWNS);
+
+ events.ScheduleEvent(EVENT_FIND_CHANNELERS_SPAWNERS, 10000);
+ events.ScheduleEvent(EVENT_RESET_ENCOUNTER, 20000);
+ }
+ }
+
+ if (!akamaReached)
+ {
+ if (Creature* Akama = Unit::GetCreature((*me), akamaGUID))
+ {
+ if (me->IsWithinDist(Akama, 2.0f, false))
+ {
+ akamaReached = true;
+ me->GetMotionMaster()->Clear(true);
+ me->GetMotionMaster()->MoveIdle();
+ me->SetWalk(false);
+
+ me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+
+ events.CancelEvent(EVENT_START_ATTACK_AKAMA);
+ events.ScheduleEvent(EVENT_ADD_THREAT, 100);
+
+ for (std::list<uint64>::const_iterator itr = Spawners.begin(); itr != Spawners.end(); ++itr)
+ if (Creature* Spawner = (Unit::GetCreature(*me, *itr)))
+ Spawner->AI()->SetData(SETDATA_DATA, SETDATA_STOP_SPAWNING);
+ }
+ }
+ }
+ else
+ DoMeleeAttackIfReady();
+ }
}
+
+ public:
+ bool HasKilledAkama;
+ private:
+ InstanceScript* instance;
+ EventMap events;
+ std::list<uint64> Channelers;
+ std::list<uint64> Spawners;
+ uint64 akamaGUID;
+ uint64 ShadeGUID;
+ bool akamaReached;
+ bool combatStarted;
+ bool HasKilledAkamaAndReseting;
};
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new boss_shade_of_akamaAI(creature);
+ }
};
-class boss_shade_of_akama : public CreatureScript
+// ########################################################
+// Akama
+// ########################################################
+
+class npc_akama_shade : public CreatureScript
{
public:
- boss_shade_of_akama() : CreatureScript("boss_shade_of_akama") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new boss_shade_of_akamaAI (creature);
- }
+ npc_akama_shade() : CreatureScript("npc_akama_shade") { }
- struct boss_shade_of_akamaAI : public ScriptedAI
+ struct npc_akamaAI : public ScriptedAI
{
- boss_shade_of_akamaAI(Creature* creature) : ScriptedAI(creature), summons(me)
+ npc_akamaAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
- AkamaGUID = instance ? instance->GetData64(DATA_AKAMA_SHADE) : 0;
- me->setActive(true);//if view distance is too low
- me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_TAUNT, true);
- me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_ATTACK_ME, true);
}
- InstanceScript* instance;
-
- std::list<uint64> Channelers;
- std::list<uint64> Sorcerers;
- uint64 AkamaGUID;
+ void Reset() OVERRIDE
+ {
+ me->setFaction(FACTION_FRIENDLY);
+ me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ DoCast(me, SPELL_STEALTH);
+ StartChannel = false;
+ StartCombat = false;
+ HasYelledOnce = false;
+ ShadeHasDied = false;
+ }
- uint32 SorcererCount;
- uint32 DeathCount;
+ void JustDied(Unit* /*killer*/) OVERRIDE
+ {
+ if (Creature* Shade = Unit::GetCreature((*me), ShadeGUID))
+ if (Shade->IsAlive())
+ CAST_AI(boss_shade_of_akama::boss_shade_of_akamaAI, Shade->AI())->HasKilledAkama = true;
+ me->GetMotionMaster()->Clear(true);
+ me->GetMotionMaster()->MoveIdle();
+ }
- uint32 ReduceHealthTimer;
- uint32 SummonTimer;
- uint32 ResetTimer;
- uint32 DefenderTimer; // They are on a flat 15 second timer, independant of the other summon Creature timer.
+ void SpellHit(Unit* /*caster*/, SpellInfo const* spell) OVERRIDE
+ {
+ if (!StartCombat)
+ {
+ if (spell->Id == SPELL_THREAT)
+ {
+ me->ClearUnitState(UNIT_STATE_ROOT);
+ me->RemoveAura(SPELL_AKAMA_SOUL_CHANNEL);
+ me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED);
+ if (Creature* Shade = Unit::GetCreature((*me), ShadeGUID))
+ Shade->RemoveAura(SPELL_AKAMA_SOUL_CHANNEL);
+ StartCombat = true;
+ }
+ }
+ }
- bool IsBanished;
- bool HasKilledAkama;
- bool reseting;
- bool GridSearcherSucceeded;
- bool HasKilledAkamaAndReseting;
- SummonList summons;
+ void EnterCombat(Unit* /*who*/) OVERRIDE
+ {
+ events.ScheduleEvent(EVENT_CHAIN_LIGHTNING, 2000);
+ events.ScheduleEvent(EVENT_DESTRUCTIVE_POISON, 5000);
+ }
- void Reset()
+ void UpdateAI(uint32 diff) OVERRIDE
{
- reseting = true;
- HasKilledAkamaAndReseting = false;
+ if (StartChannel)
+ {
+ events.Update(diff);
- GridSearcherSucceeded = false;
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_SHADE_START:
+ if (instance)
+ {
+ ShadeGUID = instance->GetData64(DATA_SHADEOFAKAMA);
+ instance->SetData(DATA_SHADEOFAKAMAEVENT, IN_PROGRESS);
+ me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveAura(SPELL_STEALTH);
+ me->SetWalk(true);
+ me->GetMotionMaster()->MovePoint(0, AkamaWP[0].x, AkamaWP[0].y, AkamaWP[0].z, false);
+ events.ScheduleEvent(EVENT_SHADE_CHANNEL, 10000);
+ break;
+ }
+ case EVENT_SHADE_CHANNEL:
+ me->AddUnitState(UNIT_STATE_ROOT);
+ me->SetFacingTo(3.118662f);
+ DoCast(me, SPELL_AKAMA_SOUL_CHANNEL);
+ me->setFaction(FACTION_COMBAT);
+ me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED);
+ events.ScheduleEvent(EVENT_FIXATE, 5000);
+ break;
+ case EVENT_FIXATE:
+ DoCast(SPELL_FIXATE);
+ StartChannel = false;
+ break;
+ default:
+ break;
+ }
+ }
+ }
- Sorcerers.clear();
- summons.DespawnAll();//despawn all adds
+ if (!UpdateVictim())
+ return;
- if (Creature* Akama = Unit::GetCreature(*me, AkamaGUID))
+ events.Update(diff);
+
+ while (uint32 eventId = events.ExecuteEvent())
{
- Akama->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);//turn gossip on so players can restart the event
- if (Akama->isDead())
+ switch (eventId)
{
- Akama->Respawn();//respawn akama if dead
- Akama->AI()->EnterEvadeMode();
+ case EVENT_CHAIN_LIGHTNING:
+ DoCastVictim(SPELL_CHAIN_LIGHTNING);
+ events.ScheduleEvent(EVENT_CHAIN_LIGHTNING, urand(10000, 15000));
+ break;
+ case EVENT_DESTRUCTIVE_POISON:
+ DoCast(me, SPELL_DESTRUCTIVE_POISON);
+ events.ScheduleEvent(EVENT_DESTRUCTIVE_POISON, urand(4000, 5000));
+ break;
+ default:
+ break;
}
}
- SorcererCount = 0;
- DeathCount = 0;
- SummonTimer = 10000;
- ReduceHealthTimer = 0;
- ResetTimer = 60000;
- DefenderTimer = 15000;
+ DoMeleeAttackIfReady();
+ }
+
+ void sGossipSelect(Player* player, uint32 /*sender*/, uint32 action) OVERRIDE
+ {
+ if (action == 0)
+ {
+ player->CLOSE_GOSSIP_MENU();
+ StartChannel = true;
+ events.ScheduleEvent(EVENT_SHADE_START, 500);
+ }
+ }
+
+ private:
+ InstanceScript* instance;
+ EventMap events;
+ uint64 ShadeGUID;
+ bool StartChannel;
+ bool ShadeHasDied;
+ bool StartCombat;
+ bool HasYelledOnce;
- IsBanished = true;
- HasKilledAkama = false;
+ };
- me->SetVisible(true);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- //me->GetMotionMaster()->Clear();
- //me->GetMotionMaster()->MoveIdle();
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_STUN);
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_akamaAI(creature);
+ }
+};
- if (instance)
- instance->SetData(DATA_SHADEOFAKAMAEVENT, NOT_STARTED);
+// ########################################################
+// Ashtongue Channeler
+// ########################################################
- reseting = false;
- }
- void JustDied(Unit* /*killer*/)
+class npc_ashtongue_channeler : public CreatureScript
+{
+public:
+ npc_ashtongue_channeler() : CreatureScript("npc_ashtongue_channeler") { }
+
+ struct npc_ashtongue_channelerAI : public ScriptedAI
+ {
+ npc_ashtongue_channelerAI(Creature* creature) : ScriptedAI(creature)
{
- summons.DespawnAll();
+ instance = creature->GetInstanceScript();
}
- void JustSummoned(Creature* summon)
+
+ void Reset() OVERRIDE
{
- if (summon->GetEntry() == CREATURE_DEFENDER || summon->GetEntry() == 23523 || summon->GetEntry() == 23318 || summon->GetEntry() == 23524)
- summons.Summon(summon);
+ me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_TAUNT, true);
+ me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_ATTACK_ME, true);
+
+ me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ events.ScheduleEvent(EVENT_CHANNEL, 2000);
+ events.ScheduleEvent(EVENT_GET_SHADE_GUID, 1000);
}
- void SummonedCreatureDespawn(Creature* summon)
+
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
- if (summon->GetEntry() == CREATURE_DEFENDER || summon->GetEntry() == 23523 || summon->GetEntry() == 23318 || summon->GetEntry() == 23524)
- summons.Despawn(summon);
+ if (Creature* Shade = (Unit::GetCreature((*me), ShadeGUID)))
+ Shade->AI()->SetData(SETDATA_DATA, SETDATA_CHANNELER_DIED);
}
- void MoveInLineOfSight(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+ void AttackStart(Unit* /*who*/) OVERRIDE {}
+
+ void UpdateAI(uint32 diff) OVERRIDE
{
- if (!GridSearcherSucceeded)
- {
- FindChannelers();
+ events.Update(diff);
- if (!Channelers.empty())
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
{
- for (std::list<uint64>::const_iterator itr = Channelers.begin(); itr != Channelers.end(); ++itr)
- {
- Creature* Channeler = (Unit::GetCreature(*me, *itr));
- if (Channeler)
+ case EVENT_CHANNEL:
+ if (Creature* Shade = (Unit::GetCreature((*me), ShadeGUID)))
{
- if (Channeler->isDead())
+ if (Shade->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE))
+ DoCast(me, SPELL_SHADE_SOUL_CHANNEL);
+ else
{
- Channeler->RemoveCorpse();
- Channeler->Respawn();
+ me->InterruptSpell(CURRENT_CHANNELED_SPELL);
+ Shade->AI()->SetData(SETDATA_DATA, SETDATA_CHANNELER_DIED);
}
-
- Channeler->CastSpell(me, SPELL_SHADE_SOUL_CHANNEL, true);
- Channeler->CastSpell(me, SPELL_SHADE_SOUL_CHANNEL_2, true);
- Channeler->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- GridSearcherSucceeded = true;
}
- }
- } else TC_LOG_ERROR(LOG_FILTER_TSCR, "SD2 ERROR: No Channelers are stored in the list. This encounter will not work properly");
+ events.ScheduleEvent(EVENT_CHANNEL, 2000);
+ break;
+ case EVENT_GET_SHADE_GUID:
+ if (instance)
+ ShadeGUID = instance->GetData64(DATA_SHADEOFAKAMA);
+ break;
+ default:
+ break;
+ }
}
}
- void AttackStart(Unit* who)
- {
- if (!who || IsBanished)
- return;
+ private:
+ InstanceScript* instance;
+ EventMap events;
+ uint64 ShadeGUID;
+ };
- if (who->isTargetableForAttack() && who != me)
- DoStartMovement(who);
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_ashtongue_channelerAI(creature);
+ }
+};
+
+// ########################################################
+// Creature Generator Akama
+// ########################################################
+
+class npc_creature_generator_akama : public CreatureScript
+{
+public:
+ npc_creature_generator_akama() : CreatureScript("npc_creature_generator_akama") { }
+
+ struct npc_creature_generator_akamaAI : public ScriptedAI
+ {
+ npc_creature_generator_akamaAI(Creature* creature) : ScriptedAI(creature), Summons(me)
+ {
+ instance = creature->GetInstanceScript();
}
- void IncrementDeathCount(uint64 guid = 0) // If guid is set, will remove it from list of sorcerer
+ void Reset() OVERRIDE
{
- if (reseting)
- return;
+ Summons.DespawnAll();
- TC_LOG_DEBUG(LOG_FILTER_TSCR, "Increasing Death Count for Shade of Akama encounter");
- ++DeathCount;
- me->RemoveAuraFromStack(SPELL_SHADE_SOUL_CHANNEL_2);
- if (guid)
- {
- if (Sorcerers.empty())
- TC_LOG_ERROR(LOG_FILTER_TSCR, "SD2 ERROR: Shade of Akama - attempt to remove guid " UI64FMTD " from Sorcerers list but list is already empty", guid);
- else Sorcerers.remove(guid);
- }
+ doSpawning = false;
+ leftSide = false;
+
+ if (me->GetPositionY() < 400.0f)
+ leftSide = true;
}
- void SummonCreature()
+ void JustSummoned(Creature* summon) OVERRIDE
{
- uint32 random = rand()%2;
- float X = SpawnLocations[random].x;
- float Y = SpawnLocations[random].y;
- // max of 6 sorcerers can be summoned
- if ((rand()%3 == 0) && (DeathCount > 0) && (SorcererCount < 7))
+ Summons.Summon(summon);
+ }
+
+ void SetData(uint32 data, uint32 value) OVERRIDE
+ {
+ if (data == SETDATA_DATA)
{
- Creature* Sorcerer = me->SummonCreature(CREATURE_SORCERER, X, Y, Z_SPAWN, 0, TEMPSUMMON_DEAD_DESPAWN, 0);
- if (Sorcerer)
+ doSpawning = true;
+
+ switch (value)
{
- CAST_AI(mob_ashtongue_sorcerer::mob_ashtongue_sorcererAI, Sorcerer->AI())->ShadeGUID = me->GetGUID();
- Sorcerer->SetWalk(false);
- Sorcerer->GetMotionMaster()->MovePoint(0, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ());
- Sorcerer->SetTarget(me->GetGUID());
- Sorcerers.push_back(Sorcerer->GetGUID());
- --DeathCount;
- ++SorcererCount;
+ case SETDATA_START_SPAWNING:
+ if (leftSide)
+ {
+ events.ScheduleEvent(EVENT_SPAWN_WAVE_B, 100);
+ events.ScheduleEvent(EVENT_SUMMON_ASHTONGUE_SORCERER, urand(2000, 5000));
+ }
+ else
+ {
+ events.ScheduleEvent(EVENT_SPAWN_WAVE_B, 10000);
+ events.ScheduleEvent(EVENT_SUMMON_ASHTONGUE_DEFENDER, urand(2000, 5000));
+ }
+ break;
+ case SETDATA_STOP_SPAWNING:
+ doSpawning = false;
+ break;
+ case SETDATA_DESPAWN_ALL_SPAWNS:
+ doSpawning = false;
+ Summons.DespawnAll();
+ break;
+ default:
+ break;
}
}
- else
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ if (doSpawning)
{
- for (uint8 i = 0; i < 3; ++i)
+ events.Update(diff);
+
+ while (uint32 eventId = events.ExecuteEvent())
{
- Creature* Spawn = me->SummonCreature(spawnEntries[i], X, Y, Z_SPAWN, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 25000);
- if (Spawn)
+ switch (eventId)
{
- Spawn->SetWalk(false);
- Spawn->GetMotionMaster()->MovePoint(0, AGGRO_X, AGGRO_Y, AGGRO_Z);
- Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1);
- Spawn->AI()->AttackStart(target);
+ case EVENT_SPAWN_WAVE_B:
+ DoCast(me, SPELL_ASHTONGUE_WAVE_B);
+ events.ScheduleEvent(EVENT_SPAWN_WAVE_B, urand(45000, 50000));
+ break;
+ case EVENT_SUMMON_ASHTONGUE_SORCERER: // left
+ DoCast(me, SPELL_SUMMON_ASHTONGUE_SORCERER);
+ events.ScheduleEvent(EVENT_SUMMON_ASHTONGUE_SORCERER, urand(30000, 35000));
+ break;
+ case EVENT_SUMMON_ASHTONGUE_DEFENDER: // right
+ DoCast(me, SPELL_SUMMON_ASHTONGUE_DEFENDER);
+ events.ScheduleEvent(EVENT_SUMMON_ASHTONGUE_DEFENDER, urand(30000, 35000));
+ break;
+ default:
+ break;
}
}
}
}
- void FindChannelers()
+ private:
+ InstanceScript* instance;
+ EventMap events;
+ SummonList Summons;
+ bool leftSide;
+ bool doSpawning;
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_creature_generator_akamaAI(creature);
+ }
+};
+
+// ########################################################
+// Ashtongue Sorcerer
+// ########################################################
+
+class npc_ashtongue_sorcerer : public CreatureScript
+{
+public:
+ npc_ashtongue_sorcerer() : CreatureScript("npc_ashtongue_sorcerer") { }
+
+ struct npc_ashtongue_sorcererAI : public ScriptedAI
+ {
+ npc_ashtongue_sorcererAI(Creature* creature) : ScriptedAI(creature)
{
- std::list<Creature*> ChannelerList;
- me->GetCreatureListWithEntryInGrid(ChannelerList, CREATURE_CHANNELER, 50.0f);
+ instance = creature->GetInstanceScript();
- if (!ChannelerList.empty())
+ if (instance)
{
- for (std::list<Creature*>::const_iterator itr = ChannelerList.begin(); itr != ChannelerList.end(); ++itr)
- {
- CAST_AI(mob_ashtongue_channeler::mob_ashtongue_channelerAI, (*itr)->AI())->ShadeGUID = me->GetGUID();
- Channelers.push_back((*itr)->GetGUID());
- TC_LOG_DEBUG(LOG_FILTER_TSCR, "Shade of Akama Grid Search found channeler " UI64FMTD ". Adding to list", (*itr)->GetGUID());
- }
+ akamaGUID = instance->GetData64(DATA_AKAMA_SHADE);
+ shadeGUID = instance->GetData64(DATA_SHADEOFAKAMA);
}
- else TC_LOG_ERROR(LOG_FILTER_TSCR, "SD2 ERROR: Grid Search was unable to find any channelers. Shade of Akama encounter will be buggy");
}
- void SetSelectableChannelers()
+ void Reset() OVERRIDE
{
- if (Channelers.empty())
+ if (!startedBanishing)
{
- TC_LOG_ERROR(LOG_FILTER_TSCR, "SD2 ERROR: Channeler List is empty, Shade of Akama encounter will be buggy");
- return;
+ if (Creature* Shade = (Unit::GetCreature((*me), shadeGUID)))
+ {
+ if (Shade->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE))
+ me->GetMotionMaster()->MovePoint(0, Shade->GetPositionX(), Shade->GetPositionY(), Shade->GetPositionZ(), false);
+ else
+ {
+ if (Unit* target = me->GetCreature(*me, akamaGUID))
+ AttackStart(target);
+ }
+ }
}
- for (std::list<uint64>::const_iterator itr = Channelers.begin(); itr != Channelers.end(); ++itr)
- if (Creature* Channeler = (Unit::GetCreature(*me, *itr)))
- Channeler->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ summonerGuid = 0;
+ startedBanishing = false;
+ switchToCombat = false;
}
- void SetAkamaGUID(uint64 guid) { AkamaGUID = guid; }
+ void JustDied(Unit* /*killer*/) OVERRIDE
+ {
+ if (Creature* Shade = (Unit::GetCreature((*me), shadeGUID)))
+ Shade->AI()->SetData(SETDATA_DATA, SETDATA_CHANNELER_DIED);
+ me->DespawnOrUnsummon(5000);
+ }
- void UpdateAI(uint32 diff)
+ void IsSummonedBy(Unit* /*summoner*/) OVERRIDE
{
- if (!me->isInCombat())
- return;
+ if (Creature* summoner = (Unit::GetCreature((*me), summonerGuid)))
+ CAST_AI(npc_creature_generator_akama::npc_creature_generator_akamaAI, summoner->AI())->JustSummoned(me);
+ }
- if (IsBanished)
- {
- // Akama is set in the threatlist so when we reset, we make sure that he is not included in our check
- if (me->getThreatManager().getThreatList().size() < 2)
- {
- EnterEvadeMode();
- return;
- }
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- if (DefenderTimer <= diff)
- {
- uint32 ran = rand()%2;
- Creature* Defender = me->SummonCreature(CREATURE_DEFENDER, SpawnLocations[ran].x, SpawnLocations[ran].y, Z_SPAWN, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 25000);
- if (Defender)
- {
- Defender->SetWalk(false);
- bool move = true;
- if (AkamaGUID)
- {
- if (Creature* Akama = Unit::GetCreature(*me, AkamaGUID))
- {
- float x, y, z;
- Akama->GetPosition(x, y, z);
- // They move towards AKama
- Defender->GetMotionMaster()->MovePoint(0, x, y, z);
- Defender->AI()->AttackStart(Akama);
- } else move = false;
- } else move = false;
- if (!move)
- Defender->GetMotionMaster()->MovePoint(0, AKAMA_X, AKAMA_Y, AKAMA_Z);
- }
- DefenderTimer = 15000;
- } else DefenderTimer -= diff;
+ void AttackStart(Unit* who) OVERRIDE
+ {
+ if (!switchToCombat)
+ return;
+ ScriptedAI::AttackStart(who);
+ }
- if (SummonTimer <= diff)
- {
- SummonCreature();
- SummonTimer = 35000;
- } else SummonTimer -= diff;
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ events.Update(diff);
- if (DeathCount >= 6)
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
{
- if (AkamaGUID)
- {
- Creature* Akama = Unit::GetCreature((*me), AkamaGUID);
- if (Akama && Akama->isAlive())
+ case EVENT_SORCERER_CHANNEL:
+ if (Creature* Shade = (Unit::GetCreature((*me), shadeGUID)))
{
- IsBanished = false;
- me->GetMotionMaster()->Clear(false);
- me->GetMotionMaster()->MoveChase(Akama);
- Akama->GetMotionMaster()->Clear();
- // Shade should move to Akama, not the other way around
- Akama->GetMotionMaster()->MoveIdle();
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- // Crazy amount of threat
- me->AddThreat(Akama, 10000000.0f);
- Akama->AddThreat(me, 10000000.0f);
- me->Attack(Akama, true);
- Akama->Attack(me, true);
+ if (Shade->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE))
+ {
+ me->SetFacingToObject(Shade);
+ DoCast(me, SPELL_SHADE_SOUL_CHANNEL);
+ events.ScheduleEvent(EVENT_SORCERER_CHANNEL, 2000);
+ }
+ else
+ {
+ me->InterruptSpell(CURRENT_CHANNELED_SPELL);
+ Shade->AI()->SetData(SETDATA_DATA, SETDATA_CHANNELER_DIED);
+ switchToCombat = true;
+ if (Unit* target = me->GetCreature(*me, akamaGUID))
+ AttackStart(target);
+ }
}
- }
+ break;
+ default:
+ break;
}
}
- else // No longer banished, let's fight Akama now
- {
- if (ReduceHealthTimer <= diff)
- {
- if (AkamaGUID)
- {
- Creature* Akama = Unit::GetCreature((*me), AkamaGUID);
- if (Akama && Akama->isAlive())
- {
- //10 % less health every few seconds.
- me->DealDamage(Akama, Akama->GetMaxHealth()/10, NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
- ReduceHealthTimer = 12000;
- }
- }
- } else ReduceHealthTimer -= diff;
- if (HasKilledAkama)
+ if (!startedBanishing)
+ {
+ Creature* Shade = Unit::GetCreature((*me), shadeGUID);
+ if (me->IsWithinDist(Shade, 20.0f, false))
{
- if (!HasKilledAkamaAndReseting)//do not let players kill Shade if Akama is dead and Shade is waiting for ResetTimer!! event would bug
- {
- HasKilledAkamaAndReseting = true;
- me->RemoveAllAuras();
- me->DeleteThreatList();
- me->CombatStop();
- //me->SetFullHealth();
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- me->GetMotionMaster()->MoveTargetedHome();
- }
- if (ResetTimer <= diff)
- {
- EnterEvadeMode();// Reset a little while after killing Akama, evade and respawn Akama
- return;
- } else ResetTimer -= diff;
+ me->StopMoving();
+ me->GetMotionMaster()->Clear(false);
+ me->GetMotionMaster()->MovePoint(1, me->GetPositionX() + frand (-8.0f, 8.0f), me->GetPositionY() + frand (-8.0f, 8.0f), me->GetPositionZ(), false);
+ events.ScheduleEvent(EVENT_SORCERER_CHANNEL, 1500);
+ startedBanishing = true;
}
-
- DoMeleeAttackIfReady();
}
+
+ DoMeleeAttackIfReady();
}
+
+ private:
+ InstanceScript* instance;
+ EventMap events;
+ uint64 akamaGUID;
+ uint64 shadeGUID;
+ uint64 summonerGuid;
+ float distanceToShade;
+ bool startedBanishing;
+ bool switchToCombat;
};
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_ashtongue_sorcererAI(creature);
+ }
};
-void mob_ashtongue_channeler::mob_ashtongue_channelerAI::JustDied(Unit* /*killer*/)
-{
- Creature* Shade = (Unit::GetCreature((*me), ShadeGUID));
- if (Shade && Shade->isAlive())
- CAST_AI(boss_shade_of_akama::boss_shade_of_akamaAI, Shade->AI())->IncrementDeathCount();
- else TC_LOG_ERROR(LOG_FILTER_TSCR, "SD2 ERROR: Channeler dead but unable to increment DeathCount for Shade of Akama.");
-}
+// ########################################################
+// Ashtongue Defender
+// ########################################################
-void mob_ashtongue_sorcerer::mob_ashtongue_sorcererAI::JustDied(Unit* /*killer*/)
-{
- Creature* Shade = (Unit::GetCreature((*me), ShadeGUID));
- if (Shade && Shade->isAlive())
- CAST_AI(boss_shade_of_akama::boss_shade_of_akamaAI, Shade->AI())->IncrementDeathCount(me->GetGUID());
- else TC_LOG_ERROR(LOG_FILTER_TSCR, "SD2 ERROR: Sorcerer dead but unable to increment DeathCount for Shade of Akama.");
-}
-
-class npc_akama_shade : public CreatureScript
+class npc_ashtongue_defender : public CreatureScript
{
public:
- npc_akama_shade() : CreatureScript("npc_akama_shade") { }
+ npc_ashtongue_defender() : CreatureScript("npc_ashtongue_defender") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ struct npc_ashtongue_defenderAI : public ScriptedAI
{
- player->PlayerTalkClass->ClearMenus();
- if (action == GOSSIP_ACTION_INFO_DEF + 1) //Fight time
+ npc_ashtongue_defenderAI(Creature* creature) : ScriptedAI(creature)
{
- player->CLOSE_GOSSIP_MENU();
- CAST_AI(npc_akama_shade::npc_akamaAI, creature->AI())->BeginEvent(player);
+ instance = creature->GetInstanceScript();
+ if (instance)
+ akamaGUID = instance->GetData64(DATA_AKAMA_SHADE);
}
- return true;
- }
+ void Reset() OVERRIDE
+ {
+ summonerGuid = 0;
- bool OnGossipHello(Player* player, Creature* creature)
- {
- if (player->isAlive())
+ if (Unit* target = me->GetCreature(*me, akamaGUID))
+ AttackStart(target);
+ }
+
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
- player->SEND_GOSSIP_MENU(907, creature->GetGUID());
+ me->DespawnOrUnsummon(5000);
}
- return true;
- }
+ void IsSummonedBy(Unit* /*summoner*/) OVERRIDE
+ {
+ if (Creature* summoner = (Unit::GetCreature((*me), summonerGuid)))
+ CAST_AI(npc_creature_generator_akama::npc_creature_generator_akamaAI, summoner->AI())->JustSummoned(me);
+ }
- CreatureAI* GetAI(Creature* creature) const
- {
- return new npc_akamaAI (creature);
- }
+ void EnterCombat(Unit* /*who*/) OVERRIDE
+ {
+ events.ScheduleEvent(EVENT_HEROIC_STRIKE, 5000);
+ events.ScheduleEvent(EVENT_SHIELD_BASH, urand(10000, 16000));
+ events.ScheduleEvent(EVENT_DEBILITATING_STRIKE, urand(10000, 16000));
+ events.ScheduleEvent(EVENT_WINDFURY, urand(8000, 12000));
+ }
- struct npc_akamaAI : public ScriptedAI
- {
- npc_akamaAI(Creature* creature) : ScriptedAI(creature), summons(me)
+ void UpdateAI(uint32 diff) OVERRIDE
{
- ShadeHasDied = false;
- StartCombat = false;
- instance = creature->GetInstanceScript();
- if (instance)
- ShadeGUID = instance->GetData64(DATA_SHADEOFAKAMA);
- else
- ShadeGUID = NOT_STARTED;
- me->setActive(true);
- EventBegun = false;
- CastSoulRetrieveTimer = 0;
- SoulRetrieveTimer = 0;
- SummonBrokenTimer = 0;
- EndingTalkCount = 0;
- WayPointId = 0;
- BrokenSummonIndex = 0;
- BrokenList.clear();
- HasYelledOnce = false;
+ if (!UpdateVictim())
+ return;
+
+ events.Update(diff);
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_DEBILITATING_STRIKE:
+ DoCastVictim(SPELL_DEBILITATING_STRIKE);
+ events.ScheduleEvent(EVENT_DEBILITATING_STRIKE, urand(8000, 16000));
+ break;
+ case EVENT_HEROIC_STRIKE:
+ DoCast(me, SPELL_HEROIC_STRIKE);
+ events.ScheduleEvent(EVENT_HEROIC_STRIKE, urand(50000, 60000));
+ break;
+ case EVENT_SHIELD_BASH:
+ DoCastVictim(SPELL_SHIELD_BASH);
+ events.ScheduleEvent(EVENT_SHIELD_BASH, urand(8000, 16000));
+ break;
+ case EVENT_WINDFURY:
+ DoCastVictim(SPELL_WINDFURY);
+ events.ScheduleEvent(EVENT_WINDFURY, urand(6000 , 8000));
+ break;
+ default:
+ break;
+ }
+ }
+ DoMeleeAttackIfReady();
}
- InstanceScript* instance;
+ private:
+ InstanceScript* instance;
+ EventMap events;
+ uint64 akamaGUID;
+ uint64 summonerGuid;
+ };
- uint64 ShadeGUID;
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_ashtongue_defenderAI(creature);
+ }
+};
- uint32 DestructivePoisonTimer;
- uint32 LightningBoltTimer;
- uint32 CheckTimer;
- uint32 CastSoulRetrieveTimer;
- uint32 SoulRetrieveTimer;
- uint32 SummonBrokenTimer;
- uint32 EndingTalkCount;
- uint32 WayPointId;
- uint32 BrokenSummonIndex;
+// ########################################################
+// Ashtongue Rogue
+// ########################################################
- std::list<uint64> BrokenList;
+class npc_ashtongue_rogue : public CreatureScript
+{
+public:
+ npc_ashtongue_rogue() : CreatureScript("npc_ashtongue_rogue") { }
- bool EventBegun;
- bool ShadeHasDied;
- bool StartCombat;
- bool HasYelledOnce;
- SummonList summons;
+ struct npc_ashtongue_rogueAI : public ScriptedAI
+ {
+ npc_ashtongue_rogueAI(Creature* creature) : ScriptedAI(creature)
+ {
+ instance = creature->GetInstanceScript();
+ if (instance)
+ akamaGUID = instance->GetData64(DATA_AKAMA_SHADE);
+ }
- void Reset()
+ void Reset() OVERRIDE
{
- DestructivePoisonTimer = 15000;
- LightningBoltTimer = 10000;
- CheckTimer = 2000;
+ summonerGuid = 0;
- if (!EventBegun)
- {
- me->SetUInt32Value(UNIT_NPC_FLAGS, 0); // Database sometimes has very very strange values
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
- }
- summons.DespawnAll();
+ if (Unit* target = me->GetCreature(*me, akamaGUID))
+ AttackStart(target);
}
- void JustSummoned(Creature* summon)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
- if (summon->GetEntry() == CREATURE_BROKEN)
- summons.Summon(summon);
+ me->DespawnOrUnsummon(5000);
}
- void SummonedCreatureDespawn(Creature* summon)
+
+ void IsSummonedBy(Unit* /*summoner*/) OVERRIDE
{
- if (summon->GetEntry() == CREATURE_BROKEN)
- summons.Despawn(summon);
+ if (Creature* summoner = (Unit::GetCreature((*me), summonerGuid)))
+ CAST_AI(npc_creature_generator_akama::npc_creature_generator_akamaAI, summoner->AI())->JustSummoned(me);
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE
+ {
+ events.ScheduleEvent(EVENT_DEBILITATING_POISON, urand(500, 2000));
+ events.ScheduleEvent(EVENT_EVISCERATE, urand(2000, 5000));
+ }
- void BeginEvent(Player* player)
+ void UpdateAI(uint32 diff) OVERRIDE
{
- if (!instance)
+ if (!UpdateVictim())
return;
- ShadeGUID = instance->GetData64(DATA_SHADEOFAKAMA);
- if (!ShadeGUID)
- return;
+ events.Update(diff);
- Creature* Shade = (Unit::GetCreature((*me), ShadeGUID));
- if (Shade)
+ while (uint32 eventId = events.ExecuteEvent())
{
- instance->SetData(DATA_SHADEOFAKAMAEVENT, IN_PROGRESS);
- // Prevent players from trying to restart event
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
- CAST_AI(boss_shade_of_akama::boss_shade_of_akamaAI, Shade->AI())->SetAkamaGUID(me->GetGUID());
- CAST_AI(boss_shade_of_akama::boss_shade_of_akamaAI, Shade->AI())->SetSelectableChannelers();
- Shade->AddThreat(me, 1000000.0f);
- me->CombatStart(Shade);
- Shade->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE);
- Shade->SetTarget(me->GetGUID());
- if (player)
- Shade->AddThreat(player, 1.0f);
- DoZoneInCombat(Shade);
- EventBegun = true;
+ switch (eventId)
+ {
+ case EVENT_DEBILITATING_POISON:
+ DoCastVictim(SPELL_DEBILITATING_POISON);
+ events.ScheduleEvent(EVENT_DEBILITATING_POISON, urand(14000, 18000));
+ break;
+ case EVENT_EVISCERATE:
+ DoCastVictim(SPELL_EVISCERATE);
+ events.ScheduleEvent(EVENT_EVISCERATE, urand(12000, 16000));
+ break;
+ default:
+ break;
+ }
}
+ DoMeleeAttackIfReady();
}
- void MovementInform(uint32 type, uint32 id)
+ private:
+ InstanceScript* instance;
+ EventMap events;
+ uint64 akamaGUID;
+ uint64 summonerGuid;
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_ashtongue_rogueAI(creature);
+ }
+};
+
+// ########################################################
+// Ashtongue Elementalist
+// ########################################################
+
+class npc_ashtongue_elementalist : public CreatureScript
+{
+public:
+ npc_ashtongue_elementalist() : CreatureScript("npc_ashtongue_elementalist") { }
+
+ struct npc_ashtongue_elementalistAI : public ScriptedAI
+ {
+ npc_ashtongue_elementalistAI(Creature* creature) : ScriptedAI(creature)
{
- if (type != POINT_MOTION_TYPE)
- return;
+ instance = creature->GetInstanceScript();
+ if (instance)
+ akamaGUID = instance->GetData64(DATA_AKAMA_SHADE);
+ }
- switch (id)
- {
- case 0:
- ++WayPointId;
- break;
+ void Reset() OVERRIDE
+ {
+ summonerGuid = 0;
- case 1:
- if (Creature* Shade = Unit::GetCreature(*me, ShadeGUID))
- {
- me->SetTarget(ShadeGUID);
- DoCast(Shade, SPELL_AKAMA_SOUL_RETRIEVE);
- EndingTalkCount = 0;
- SoulRetrieveTimer = 16000;
- }
- break;
- }
+ if (Unit* target = me->GetCreature(*me, akamaGUID))
+ AttackStart(target);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
- Talk(SAY_DEATH);
- EventBegun = false;
- ShadeHasDied = false;
- StartCombat = false;
- CastSoulRetrieveTimer = 0;
- SoulRetrieveTimer = 0;
- SummonBrokenTimer = 0;
- EndingTalkCount = 0;
- WayPointId = 0;
- BrokenSummonIndex = 0;
- BrokenList.clear();
- HasYelledOnce = false;
- Creature* Shade = Unit::GetCreature((*me), ShadeGUID);
- if (Shade && Shade->isAlive())
- CAST_AI(boss_shade_of_akama::boss_shade_of_akamaAI, Shade->AI())->HasKilledAkama = true;
- summons.DespawnAll();
+ me->DespawnOrUnsummon(5000);
+ }
+
+ void IsSummonedBy(Unit* /*summoner*/) OVERRIDE
+ {
+ if (Creature* summoner = (Unit::GetCreature((*me), summonerGuid)))
+ CAST_AI(npc_creature_generator_akama::npc_creature_generator_akamaAI, summoner->AI())->JustSummoned(me);
+ }
+
+ void EnterCombat(Unit* /*who*/) OVERRIDE
+ {
+ events.ScheduleEvent(EVENT_RAIN_OF_FIRE, 18000);
+ events.ScheduleEvent(EVENT_LIGHTNING_BOLT, 6000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
- if (!EventBegun)
+ if (!UpdateVictim())
return;
- if (HealthBelowPct(15) && !HasYelledOnce)
- {
- Talk(SAY_LOW_HEALTH);
- HasYelledOnce = true;
- }
+ events.Update(diff);
- if (ShadeGUID && !StartCombat)
+ while (uint32 eventId = events.ExecuteEvent())
{
- Creature* Shade = (Unit::GetCreature((*me), ShadeGUID));
- if (Shade && Shade->isAlive())
+ switch (eventId)
{
- if (CAST_AI(boss_shade_of_akama::boss_shade_of_akamaAI, Shade->AI())->IsBanished)
- {
- if (CastSoulRetrieveTimer <= diff)
- {
- DoCast(Shade, SPELL_AKAMA_SOUL_CHANNEL);
- CastSoulRetrieveTimer = 500;
- } else CastSoulRetrieveTimer -= diff;
- }
- else
- {
- me->InterruptNonMeleeSpells(false);
- StartCombat = true;
- }
+ case EVENT_RAIN_OF_FIRE:
+ DoCastVictim(SPELL_RAIN_OF_FIRE);
+ events.ScheduleEvent(EVENT_RAIN_OF_FIRE, 20000);
+ break;
+ case EVENT_LIGHTNING_BOLT:
+ DoCastVictim(SPELL_LIGHTNING_BOLT);
+ events.ScheduleEvent(EVENT_LIGHTNING_BOLT, 15000);
+ break;
+ default:
+ break;
}
}
+ DoMeleeAttackIfReady();
+ }
- if (ShadeHasDied && (WayPointId == 1))
- {
- if (instance)
- instance->SetData(DATA_SHADEOFAKAMAEVENT, DONE);
- me->GetMotionMaster()->MovePoint(WayPointId, AkamaWP[1].x, AkamaWP[1].y, AkamaWP[1].z);
- ++WayPointId;
- }
+ private:
+ InstanceScript* instance;
+ EventMap events;
+ uint64 akamaGUID;
+ uint64 summonerGuid;
+ };
- if (!ShadeHasDied && StartCombat)
- {
- if (CheckTimer <= diff)
- {
- if (ShadeGUID)
- {
- Creature* Shade = Unit::GetCreature((*me), ShadeGUID);
- if (Shade && !Shade->isAlive())
- {
- ShadeHasDied = true;
- WayPointId = 0;
- me->SetWalk(true);
- me->GetMotionMaster()->MovePoint(WayPointId, AkamaWP[0].x, AkamaWP[0].y, AkamaWP[0].z);
- }
- if (Shade && Shade->isAlive())
- {
- if (Shade->getThreatManager().getThreatList().size() < 2)
- Shade->AI()->EnterEvadeMode();
- }
- }
- CheckTimer = 5000;
- } else CheckTimer -= diff;
- }
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_ashtongue_elementalistAI(creature);
+ }
+};
- if (SummonBrokenTimer && BrokenSummonIndex < 4)
- {
- if (SummonBrokenTimer <= diff)
- {
- for (uint8 i = 0; i < 4; ++i)
- {
- float x = BrokenCoords[BrokenSummonIndex].x + (i*5);
- float y = BrokenCoords[BrokenSummonIndex].y + (1*5);
- float z = BrokenCoords[BrokenSummonIndex].z;
- float o = BrokenCoords[BrokenSummonIndex].o;
- Creature* Broken = me->SummonCreature(CREATURE_BROKEN, x, y, z, o, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 360000);
- if (Broken)
- {
- float wx = BrokenWP[BrokenSummonIndex].x + (i*5);
- float wy = BrokenWP[BrokenSummonIndex].y + (i*5);
- float wz = BrokenWP[BrokenSummonIndex].z;
- Broken->GetMotionMaster()->MovePoint(0, wx, wy, wz);
- Broken->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- BrokenList.push_back(Broken->GetGUID());
- }
- }
- ++BrokenSummonIndex;
- SummonBrokenTimer = 1000;
- } else SummonBrokenTimer -= diff;
- }
+// ########################################################
+// Ashtongue Spiritbinder
+// ########################################################
+
+class npc_ashtongue_spiritbinder : public CreatureScript
+{
+public:
+ npc_ashtongue_spiritbinder() : CreatureScript("npc_ashtongue_spiritbinder") { }
- if (SoulRetrieveTimer)
+ struct npc_ashtongue_spiritbinderAI : public ScriptedAI
+ {
+ npc_ashtongue_spiritbinderAI(Creature* creature) : ScriptedAI(creature)
+ {
+ instance = creature->GetInstanceScript();
+ if (instance)
+ akamaGUID = instance->GetData64(DATA_AKAMA_SHADE);
+ }
+
+ void Reset() OVERRIDE
+ {
+ spiritMend = false;
+ chainHeal = false;
+ summonerGuid = 0;
+
+ if (Unit* target = me->GetCreature(*me, akamaGUID))
+ AttackStart(target);
+ }
+
+ void JustDied(Unit* /*killer*/) OVERRIDE
+ {
+ me->DespawnOrUnsummon(5000);
+ }
+
+ void IsSummonedBy(Unit* /*summoner*/) OVERRIDE
+ {
+ if (Creature* summoner = (Unit::GetCreature((*me), summonerGuid)))
+ CAST_AI(npc_creature_generator_akama::npc_creature_generator_akamaAI, summoner->AI())->JustSummoned(me);
+ }
+
+ void EnterCombat(Unit* /*who*/) OVERRIDE
+ {
+ events.ScheduleEvent(EVENT_SPIRIT_HEAL, urand (5000, 6000));
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ events.Update(diff);
+
+ while (uint32 eventId = events.ExecuteEvent())
{
- if (SoulRetrieveTimer <= diff)
+ switch (eventId)
{
- switch (EndingTalkCount)
- {
- case 0:
- me->HandleEmoteCommand(EMOTE_ONESHOT_ROAR);
- ++EndingTalkCount;
- SoulRetrieveTimer = 2000;
- SummonBrokenTimer = 1;
- break;
- case 1:
- Talk(SAY_FREE);
- ++EndingTalkCount;
- SoulRetrieveTimer = 25000;
- break;
- case 2:
- if (!BrokenList.empty())
- {
- bool Yelled = false;
- for (std::list<uint64>::const_iterator itr = BrokenList.begin(); itr != BrokenList.end(); ++itr)
- if (Creature* unit = Unit::GetCreature(*me, *itr))
- {
- if (!Yelled)
- {
- unit->AI()->Talk(SAY_BROKEN_FREE_01);
- Yelled = true;
- }
- unit->HandleEmoteCommand(EMOTE_ONESHOT_KNEEL);
- }
- }
- ++EndingTalkCount;
- SoulRetrieveTimer = 1500;
- break;
- case 3:
- if (!BrokenList.empty())
- {
- for (std::list<uint64>::const_iterator itr = BrokenList.begin(); itr != BrokenList.end(); ++itr)
- if (Creature* unit = Unit::GetCreature(*me, *itr))
- // This is the incorrect spell, but can't seem to find the right one.
- unit->CastSpell(unit, 39656, true);
- }
- ++EndingTalkCount;
- SoulRetrieveTimer = 5000;
+ case EVENT_SPIRIT_HEAL:
+ DoCast(me, SPELL_SPIRITBINDER_SPIRIT_HEAL);
+ events.ScheduleEvent(EVENT_SPIRIT_HEAL, urand (13000, 16000));
break;
- case 4:
- if (!BrokenList.empty())
- {
- for (std::list<uint64>::const_iterator itr = BrokenList.begin(); itr != BrokenList.end(); ++itr)
- if (Creature* unit = Unit::GetCreature((*me), *itr))
- unit->AI()->Talk(SAY_BROKEN_FREE_02);
- }
- SoulRetrieveTimer = 0;
+ default:
break;
- }
- } else SoulRetrieveTimer -= diff;
+ }
}
if (!UpdateVictim())
return;
- if (DestructivePoisonTimer <= diff)
+ if (!spiritMend)
{
- Creature* Shade = Unit::GetCreature((*me), ShadeGUID);
- if (Shade && Shade->isAlive())
- DoCast(Shade, SPELL_DESTRUCTIVE_POISON);
- DestructivePoisonTimer = 15000;
- } else DestructivePoisonTimer -= diff;
+ if (HealthBelowPct(25))
+ {
+ DoCast(me, SPELL_SPIRIT_MEND);
+ spiritMend = true;
+ }
+ }
- if (LightningBoltTimer <= diff)
+ if (!chainHeal)
{
- DoCast(me->getVictim(), SPELL_LIGHTNING_BOLT);
- LightningBoltTimer = 10000;
- } else LightningBoltTimer -= diff;
+ if (HealthBelowPct(40))
+ {
+ DoCast(me, SPELL_CHAIN_HEAL);
+ chainHeal = true;
+ }
+ }
DoMeleeAttackIfReady();
}
+
+ private:
+ InstanceScript* instance;
+ EventMap events;
+ uint64 akamaGUID;
+ uint64 summonerGuid;
+ bool spiritMend;
+ bool chainHeal;
};
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_ashtongue_spiritbinderAI(creature);
+ }
};
void AddSC_boss_shade_of_akama()
{
new boss_shade_of_akama();
- new mob_ashtongue_channeler();
- new mob_ashtongue_sorcerer();
new npc_akama_shade();
+ new npc_ashtongue_channeler();
+ new npc_creature_generator_akama();
+ new npc_ashtongue_sorcerer();
+ new npc_ashtongue_defender();
+ new npc_ashtongue_rogue();
+ new npc_ashtongue_elementalist();
+ new npc_ashtongue_spiritbinder();
}
diff --git a/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp b/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp
index 114f83661b3..fbc3e387e8e 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp
@@ -63,16 +63,16 @@ class molten_flame : public CreatureScript
public:
molten_flame() : CreatureScript("molten_flame") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new molten_flameAI (creature);
+ return new molten_flameAI(creature);
}
struct molten_flameAI : public NullCreatureAI
{
molten_flameAI(Creature* creature) : NullCreatureAI(creature) {}
- void InitializeAI()
+ void InitializeAI() OVERRIDE
{
float x, y, z;
me->GetNearPoint(me, x, y, z, 1, 100, float(M_PI*2*rand_norm()));
@@ -88,9 +88,9 @@ class boss_supremus : public CreatureScript
public:
boss_supremus() : CreatureScript("boss_supremus") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_supremusAI (creature);
+ return new boss_supremusAI(creature);
}
struct boss_supremusAI : public ScriptedAI
@@ -105,11 +105,11 @@ public:
SummonList summons;
uint32 phase;
- void Reset()
+ void Reset() OVERRIDE
{
if (instance)
{
- if (me->isAlive())
+ if (me->IsAlive())
{
instance->SetData(DATA_SUPREMUSEVENT, NOT_STARTED);
//ToggleDoors(true);
@@ -123,7 +123,7 @@ public:
summons.DespawnAll();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (instance)
instance->SetData(DATA_SUPREMUSEVENT, IN_PROGRESS);
@@ -160,7 +160,7 @@ public:
events.ScheduleEvent(EVENT_SWITCH_PHASE, 60000, GCD_CAST);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
{
@@ -170,12 +170,12 @@ public:
summons.DespawnAll();
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
summons.Summon(summon);
}
- void SummonedCreatureDespawn(Creature* summon)
+ void SummonedCreatureDespawn(Creature* summon) OVERRIDE
{
summons.Despawn(summon);
}
@@ -203,7 +203,7 @@ public:
return target;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -240,7 +240,7 @@ public:
case EVENT_VOLCANO:
{
Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 999, true);
- if (!target) target = me->getVictim();
+ if (!target) target = me->GetVictim();
if (target)
{
//DoCast(target, SPELL_VOLCANIC_SUMMON);//movement bugged
@@ -267,9 +267,9 @@ class npc_volcano : public CreatureScript
public:
npc_volcano() : CreatureScript("npc_volcano") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_volcanoAI (creature);
+ return new npc_volcanoAI(creature);
}
struct npc_volcanoAI : public ScriptedAI
@@ -279,7 +279,7 @@ public:
SetCombatMovement(false);
}
- void Reset()
+ void Reset() OVERRIDE
{
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
@@ -289,16 +289,17 @@ public:
}
uint32 wait;
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void MoveInLineOfSight(Unit* /*who*/) {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
- void DoAction(int32 /*info*/)
+
+ void DoAction(int32 /*info*/) OVERRIDE
{
me->RemoveAura(SPELL_VOLCANIC_ERUPTION);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (wait <= diff)//wait 3secs before casting
{
diff --git a/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp b/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp
index 1681ecfb00e..a861980ae42 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp
@@ -51,34 +51,35 @@ enum DoomBlossom
CREATURE_SHADOWY_CONSTRUCT = 23111
};
-class mob_doom_blossom : public CreatureScript
+class npc_doom_blossom : public CreatureScript
{
public:
- mob_doom_blossom() : CreatureScript("mob_doom_blossom") { }
+ npc_doom_blossom() : CreatureScript("npc_doom_blossom") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_doom_blossomAI(creature);
+ return new npc_doom_blossomAI(creature);
}
- struct mob_doom_blossomAI : public ScriptedAI
+ struct npc_doom_blossomAI : public ScriptedAI
{
- mob_doom_blossomAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_doom_blossomAI(Creature* creature) : ScriptedAI(creature) {}
uint32 CheckTeronTimer;
uint32 ShadowBoltTimer;
uint64 TeronGUID;
- void Reset()
+ void Reset() OVERRIDE
{
CheckTeronTimer = 5000;
ShadowBoltTimer = 12000;
TeronGUID = 0;
}
- void EnterCombat(Unit* /*who*/) { }
- void AttackStart(Unit* /*who*/) {}
- void MoveInLineOfSight(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+ void AttackStart(Unit* /*who*/) OVERRIDE {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
+
void Despawn()
{
@@ -86,7 +87,7 @@ public:
me->RemoveCorpse();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (CheckTeronTimer <= diff)
{
@@ -95,7 +96,7 @@ public:
DoZoneInCombat();
Creature* Teron = (Unit::GetCreature((*me), TeronGUID));
- if ((Teron) && (!Teron->isAlive() || Teron->IsInEvadeMode()))
+ if ((Teron) && (!Teron->IsAlive() || Teron->IsInEvadeMode()))
Despawn();
}
else
@@ -104,7 +105,7 @@ public:
CheckTeronTimer = 5000;
} else CheckTeronTimer -= diff;
- if (ShadowBoltTimer < diff && me->isInCombat())
+ if (ShadowBoltTimer < diff && me->IsInCombat())
{
DoCast(SelectTarget(SELECT_TARGET_RANDOM, 0), SPELL_SHADOWBOLT);
ShadowBoltTimer = 10000;
@@ -119,19 +120,19 @@ public:
};
};
-class mob_shadowy_construct : public CreatureScript
+class npc_shadowy_construct : public CreatureScript
{
public:
- mob_shadowy_construct() : CreatureScript("mob_shadowy_construct") { }
+ npc_shadowy_construct() : CreatureScript("npc_shadowy_construct") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_shadowy_constructAI(creature);
+ return new npc_shadowy_constructAI(creature);
}
- struct mob_shadowy_constructAI : public ScriptedAI
+ struct npc_shadowy_constructAI : public ScriptedAI
{
- mob_shadowy_constructAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_shadowy_constructAI(Creature* creature) : ScriptedAI(creature) {}
uint64 GhostGUID;
uint64 TeronGUID;
@@ -139,7 +140,7 @@ public:
uint32 CheckPlayerTimer;
uint32 CheckTeronTimer;
- void Reset()
+ void Reset() OVERRIDE
{
GhostGUID = 0;
TeronGUID = 0;
@@ -148,18 +149,19 @@ public:
CheckTeronTimer = 5000;
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+
+ void MoveInLineOfSight(Unit* who) OVERRIDE
- void MoveInLineOfSight(Unit* who)
{
- if (!who || (!who->isAlive()) || (who->GetGUID() == GhostGUID))
+ if (!who || (!who->IsAlive()) || (who->GetGUID() == GhostGUID))
return;
ScriptedAI::MoveInLineOfSight(who);
}
/* Comment it out for now. NOTE TO FUTURE DEV: UNCOMMENT THIS OUT ONLY AFTER MIND CONTROL IS IMPLEMENTED
- void DamageTaken(Unit* done_by, uint32 &damage)
+ void DamageTaken(Unit* done_by, uint32 &damage) OVERRIDE
{
if (done_by->GetGUID() != GhostGUID)
damage = 0; // Only the ghost can deal damage.
@@ -176,7 +178,7 @@ public:
for (; itr != threatlist.end(); ++itr)
{
Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid());
- if (unit && unit->isAlive())
+ if (unit && unit->IsAlive())
targets.push_back(unit);
}
targets.sort(Trinity::ObjectDistanceOrderPred(me));
@@ -188,7 +190,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (CheckPlayerTimer <= diff)
{
@@ -199,7 +201,7 @@ public:
if (CheckTeronTimer <= diff)
{
Creature* Teron = (Unit::GetCreature((*me), TeronGUID));
- if (!Teron || !Teron->isAlive() || Teron->IsInEvadeMode())
+ if (!Teron || !Teron->IsAlive() || Teron->IsInEvadeMode())
me->DealDamage(me, me->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
CheckTeronTimer = 5000;
@@ -213,9 +215,9 @@ class boss_teron_gorefiend : public CreatureScript
public:
boss_teron_gorefiend() : CreatureScript("boss_teron_gorefiend") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_teron_gorefiendAI (creature);
+ return new boss_teron_gorefiendAI(creature);
}
struct boss_teron_gorefiendAI : public ScriptedAI
@@ -242,7 +244,7 @@ public:
bool Intro;
bool Done;
- void Reset()
+ void Reset() OVERRIDE
{
if (instance)
instance->SetData(DATA_TERONGOREFIENDEVENT, NOT_STARTED);
@@ -264,11 +266,12 @@ public:
Done = false;
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+
+ void MoveInLineOfSight(Unit* who) OVERRIDE
- void MoveInLineOfSight(Unit* who)
{
- if (!Intro && who->GetTypeId() == TYPEID_PLAYER && me->canCreatureAttack(who))
+ if (!Intro && who->GetTypeId() == TYPEID_PLAYER && me->CanCreatureAttack(who))
{
if (me->IsWithinDistInMap(who, VISIBLE_RANGE) && me->IsWithinLOSInMap(who))
{
@@ -287,12 +290,12 @@ public:
ScriptedAI::MoveInLineOfSight(who);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
instance->SetData(DATA_TERONGOREFIENDEVENT, DONE);
@@ -325,7 +328,7 @@ public:
for (i = threatlist.begin(); i != threatlist.end(); ++i)
{
Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid());
- if (unit && unit->isAlive())
+ if (unit && unit->IsAlive())
{
float threat = DoGetThreat(unit);
blossom->AddThreat(unit, threat);
@@ -345,7 +348,7 @@ public:
Unit* ghost = NULL;
if (GhostGUID)
ghost = Unit::GetUnit(*me, GhostGUID);
- if (ghost && ghost->isAlive() && ghost->HasAura(SPELL_SHADOW_OF_DEATH))
+ if (ghost && ghost->IsAlive() && ghost->HasAura(SPELL_SHADOW_OF_DEATH))
{
/*float x, y, z;
ghost->GetPosition(x, y, z);
@@ -366,10 +369,10 @@ public:
{
Construct->CastSpell(Construct, SPELL_PASSIVE_SHADOWFORM, true);
SetThreatList(Construct); // Use same function as Doom Blossom to set Threat List.
- CAST_AI(mob_shadowy_construct::mob_shadowy_constructAI, Construct->AI())->GhostGUID = GhostGUID;
+ CAST_AI(npc_shadowy_construct::npc_shadowy_constructAI, Construct->AI())->GhostGUID = GhostGUID;
Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1);
if (!target) // someone's trying to solo.
- target = me->getVictim();
+ target = me->GetVictim();
if (target)
Construct->GetMotionMaster()->MoveChase(target);
@@ -378,7 +381,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (Intro && !Done)
{
@@ -421,7 +424,7 @@ public:
{
Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1);
if (!target)
- target = me->getVictim();
+ target = me->GetVictim();
if (target)
Shadow->AI()->AttackStart(target);
@@ -444,7 +447,7 @@ public:
DoomBlossom->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
DoomBlossom->setFaction(me->getFaction());
DoomBlossom->AddThreat(target, 1.0f);
- CAST_AI(mob_doom_blossom::mob_doom_blossomAI, DoomBlossom->AI())->SetTeronGUID(me->GetGUID());
+ CAST_AI(npc_doom_blossom::npc_doom_blossomAI, DoomBlossom->AI())->SetTeronGUID(me->GetGUID());
target->CombatStart(DoomBlossom);
SetThreatList(DoomBlossom);
SummonDoomBlossomTimer = 35000;
@@ -456,7 +459,7 @@ public:
{
Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1);
if (!target)
- target = me->getVictim();
+ target = me->GetVictim();
if (target)
{
@@ -479,9 +482,9 @@ public:
Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 1);
if (!target)
- target = me->getVictim();
+ target = me->GetVictim();
- if (target && target->isAlive() && target->GetTypeId() == TYPEID_PLAYER)
+ if (target && target->IsAlive() && target->GetTypeId() == TYPEID_PLAYER)
{
DoCast(target, SPELL_SHADOW_OF_DEATH);
GhostGUID = target->GetGUID();
@@ -512,7 +515,7 @@ public:
void AddSC_boss_teron_gorefiend()
{
- new mob_doom_blossom();
- new mob_shadowy_construct();
+ new npc_doom_blossom();
+ new npc_shadowy_construct();
new boss_teron_gorefiend();
}
diff --git a/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp b/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp
index 127ca68ce39..532c66bb14a 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp
@@ -29,32 +29,44 @@ EndScriptData */
#include "Player.h"
#include "SpellInfo.h"
-enum eEnums
+enum Yells
{
SAY_AGGRO = 0,
SAY_NEEDLE = 1,
SAY_SLAY = 2,
SAY_SPECIAL = 3,
SAY_ENRAGE = 4,
- SAY_DEATH = 5,
+ SAY_DEATH = 5
+};
- //Spells
+enum Spells
+{
SPELL_NEEDLE_SPINE = 39992,
SPELL_TIDAL_BURST = 39878,
SPELL_TIDAL_SHIELD = 39872,
SPELL_IMPALING_SPINE = 39837,
SPELL_CREATE_NAJENTUS_SPINE = 39956,
SPELL_HURL_SPINE = 39948,
- SPELL_BERSERK = 26662,
+ SPELL_BERSERK = 26662
- GOBJECT_SPINE = 185584,
+};
+enum GameObjects
+{
+ GOBJECT_SPINE = 185584
+};
+
+enum Events
+{
EVENT_BERSERK = 1,
EVENT_YELL = 2,
EVENT_NEEDLE = 3,
EVENT_SPINE = 4,
- EVENT_SHIELD = 5,
+ EVENT_SHIELD = 5
+};
+enum Misc
+{
GCD_CAST = 1,
GCD_YELL = 2
};
@@ -64,9 +76,9 @@ class boss_najentus : public CreatureScript
public:
boss_najentus() : CreatureScript("boss_najentus") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_najentusAI (creature);
+ return new boss_najentusAI(creature);
}
struct boss_najentusAI : public ScriptedAI
@@ -81,7 +93,7 @@ public:
uint64 SpineTargetGUID;
- void Reset()
+ void Reset() OVERRIDE
{
events.Reset();
@@ -91,13 +103,13 @@ public:
instance->SetData(DATA_HIGHWARLORDNAJENTUSEVENT, NOT_STARTED);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
events.DelayEvents(5000, GCD_YELL);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
instance->SetData(DATA_HIGHWARLORDNAJENTUSEVENT, DONE);
@@ -105,7 +117,7 @@ public:
Talk(SAY_DEATH);
}
- void SpellHit(Unit* /*caster*/, const SpellInfo* spell)
+ void SpellHit(Unit* /*caster*/, const SpellInfo* spell) OVERRIDE
{
if (spell->Id == SPELL_HURL_SPINE && me->HasAura(SPELL_TIDAL_SHIELD))
{
@@ -115,7 +127,7 @@ public:
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (instance)
instance->SetData(DATA_HIGHWARLORDNAJENTUSEVENT, IN_PROGRESS);
@@ -146,7 +158,7 @@ public:
events.RescheduleEvent(EVENT_SHIELD, 60000 + inc);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -169,7 +181,7 @@ public:
case EVENT_SPINE:
{
Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1);
- if (!target) target = me->getVictim();
+ if (!target) target = me->GetVictim();
if (target)
{
DoCast(target, SPELL_IMPALING_SPINE, true);
@@ -213,7 +225,7 @@ class go_najentus_spine : public GameObjectScript
public:
go_najentus_spine() : GameObjectScript("go_najentus_spine") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
if (InstanceScript* instance = go->GetInstanceScript())
if (Creature* Najentus = Unit::GetCreature(*go, instance->GetData64(DATA_HIGHWARLORDNAJENTUS)))
diff --git a/src/server/scripts/Outland/BlackTemple/illidari_council.cpp b/src/server/scripts/Outland/BlackTemple/illidari_council.cpp
index 100f23c72af..290641437f3 100644
--- a/src/server/scripts/Outland/BlackTemple/illidari_council.cpp
+++ b/src/server/scripts/Outland/BlackTemple/illidari_council.cpp
@@ -115,19 +115,19 @@ static CouncilYells CouncilEnrage[]=
{1, 0}, // Zerevor
};
-class mob_blood_elf_council_voice_trigger : public CreatureScript
+class npc_blood_elf_council_voice_trigger : public CreatureScript
{
public:
- mob_blood_elf_council_voice_trigger() : CreatureScript("mob_blood_elf_council_voice_trigger") { }
+ npc_blood_elf_council_voice_trigger() : CreatureScript("npc_blood_elf_council_voice_trigger") { }
- CreatureAI* GetAI(Creature* c) const
+ CreatureAI* GetAI(Creature* c) const OVERRIDE
{
- return new mob_blood_elf_council_voice_triggerAI(c);
+ return new npc_blood_elf_council_voice_triggerAI(c);
}
- struct mob_blood_elf_council_voice_triggerAI : public ScriptedAI
+ struct npc_blood_elf_council_voice_triggerAI : public ScriptedAI
{
- mob_blood_elf_council_voice_triggerAI(Creature* creature) : ScriptedAI(creature)
+ npc_blood_elf_council_voice_triggerAI(Creature* creature) : ScriptedAI(creature)
{
for (uint8 i = 0; i < 4; ++i)
Council[i] = 0;
@@ -142,7 +142,7 @@ public:
bool EventStarted;
- void Reset()
+ void Reset() OVERRIDE
{
EnrageTimer = 900000; // 15 minutes
AggroYellTimer = 500;
@@ -164,12 +164,13 @@ public:
} else TC_LOG_ERROR(LOG_FILTER_TSCR, ERROR_INST_DATA);
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void AttackStart(Unit* /*who*/) {}
- void MoveInLineOfSight(Unit* /*who*/) {}
+ void AttackStart(Unit* /*who*/) OVERRIDE {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!EventStarted)
return;
@@ -210,19 +211,19 @@ public:
};
-class mob_illidari_council : public CreatureScript
+class npc_illidari_council : public CreatureScript
{
public:
- mob_illidari_council() : CreatureScript("mob_illidari_council") { }
+ npc_illidari_council() : CreatureScript("npc_illidari_council") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_illidari_councilAI (creature);
+ return new npc_illidari_councilAI(creature);
}
- struct mob_illidari_councilAI : public ScriptedAI
+ struct npc_illidari_councilAI : public ScriptedAI
{
- mob_illidari_councilAI(Creature* creature) : ScriptedAI(creature)
+ npc_illidari_councilAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
for (uint8 i = 0; i < 4; ++i)
@@ -240,7 +241,7 @@ public:
bool EventBegun;
- void Reset()
+ void Reset() OVERRIDE
{
CheckTimer = 2000;
EndEventTimer = 0;
@@ -254,7 +255,7 @@ public:
if (!pMember)
continue;
- if (!pMember->isAlive())
+ if (!pMember->IsAlive())
{
pMember->RemoveCorpse();
pMember->Respawn();
@@ -276,16 +277,17 @@ public:
me->SetDisplayId(11686);
}
- void EnterCombat(Unit* /*who*/) {}
- void AttackStart(Unit* /*who*/) {}
- void MoveInLineOfSight(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+ void AttackStart(Unit* /*who*/) OVERRIDE {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
+
void StartEvent(Unit* target)
{
if (!instance)
return;
- if (target && target->isAlive())
+ if (target && target->IsAlive())
{
Council[0] = instance->GetData64(DATA_GATHIOSTHESHATTERER);
Council[1] = instance->GetData64(DATA_HIGHNETHERMANCERZEREVOR);
@@ -295,8 +297,8 @@ public:
// Start the event for the Voice Trigger
if (Creature* VoiceTrigger = (Unit::GetCreature(*me, instance->GetData64(DATA_BLOOD_ELF_COUNCIL_VOICE))))
{
- CAST_AI(mob_blood_elf_council_voice_trigger::mob_blood_elf_council_voice_triggerAI, VoiceTrigger->AI())->LoadCouncilGUIDs();
- CAST_AI(mob_blood_elf_council_voice_trigger::mob_blood_elf_council_voice_triggerAI, VoiceTrigger->AI())->EventStarted = true;
+ CAST_AI(npc_blood_elf_council_voice_trigger::npc_blood_elf_council_voice_triggerAI, VoiceTrigger->AI())->LoadCouncilGUIDs();
+ CAST_AI(npc_blood_elf_council_voice_trigger::npc_blood_elf_council_voice_triggerAI, VoiceTrigger->AI())->EventStarted = true;
}
for (uint8 i = 0; i < 4; ++i)
@@ -304,7 +306,7 @@ public:
if (Council[i])
{
Unit* member = Unit::GetUnit(*me, Council[i]);
- if (member && member->isAlive())
+ if (member && member->IsAlive())
member->ToCreature()->AI()->AttackStart(target);
}
}
@@ -315,7 +317,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!EventBegun)
return;
@@ -338,7 +340,7 @@ public:
}
Creature* pMember = (Unit::GetCreature(*me, Council[DeathCount]));
- if (pMember && pMember->isAlive())
+ if (pMember && pMember->IsAlive())
pMember->DealDamage(pMember, pMember->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
++DeathCount;
EndEventTimer = 1500;
@@ -357,9 +359,9 @@ public:
if (Creature* Member = (Unit::GetCreature((*me), Council[i])))
{
// This is the evade/death check.
- if (Member->isAlive() && !Member->getVictim())
+ if (Member->IsAlive() && !Member->GetVictim())
++EvadeCheck; //If all members evade, we reset so that players can properly reset the event
- else if (!Member->isAlive()) // If even one member dies, kill the rest, set instance data, and kill self.
+ else if (!Member->IsAlive()) // If even one member dies, kill the rest, set instance data, and kill self.
{
EndEventTimer = 1000;
CheckTimer = 0;
@@ -397,13 +399,13 @@ struct boss_illidari_councilAI : public ScriptedAI
bool LoadedGUIDs;
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (instance)
{
Creature* Controller = (Unit::GetCreature(*me, instance->GetData64(DATA_ILLIDARICOUNCIL)));
if (Controller)
- CAST_AI(mob_illidari_council::mob_illidari_councilAI, Controller->AI())->StartEvent(who);
+ CAST_AI(npc_illidari_council::npc_illidari_councilAI, Controller->AI())->StartEvent(who);
}
else
{
@@ -420,21 +422,21 @@ struct boss_illidari_councilAI : public ScriptedAI
LoadGUIDs();
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
for (uint8 i = 0; i < 4; ++i)
{
if (Unit* unit = Unit::GetUnit(*me, Council[i]))
- if (unit != me && unit->getVictim())
+ if (unit != me && unit->GetVictim())
{
- AttackStart(unit->getVictim());
+ AttackStart(unit->GetVictim());
return;
}
}
ScriptedAI::EnterEvadeMode();
}
- void DamageTaken(Unit* done_by, uint32 &damage)
+ void DamageTaken(Unit* done_by, uint32 &damage) OVERRIDE
{
if (done_by == me)
return;
@@ -473,9 +475,9 @@ class boss_gathios_the_shatterer : public CreatureScript
public:
boss_gathios_the_shatterer() : CreatureScript("boss_gathios_the_shatterer") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_gathios_the_shattererAI (creature);
+ return new boss_gathios_the_shattererAI(creature);
}
struct boss_gathios_the_shattererAI : public boss_illidari_councilAI
@@ -488,7 +490,7 @@ public:
uint32 AuraTimer;
uint32 BlessingTimer;
- void Reset()
+ void Reset() OVERRIDE
{
ConsecrationTimer = 40000;
HammerOfJusticeTimer = 10000;
@@ -497,12 +499,12 @@ public:
BlessingTimer = 60000;
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_GATH_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_GATH_DEATH);
}
@@ -536,7 +538,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -605,9 +607,9 @@ class boss_high_nethermancer_zerevor : public CreatureScript
public:
boss_high_nethermancer_zerevor() : CreatureScript("boss_high_nethermancer_zerevor") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_high_nethermancer_zerevorAI (creature);
+ return new boss_high_nethermancer_zerevorAI(creature);
}
struct boss_high_nethermancer_zerevorAI : public boss_illidari_councilAI
@@ -621,7 +623,7 @@ public:
uint32 Cooldown;
uint32 ArcaneExplosionTimer;
- void Reset()
+ void Reset() OVERRIDE
{
BlizzardTimer = urand(30, 91) * 1000;
FlamestrikeTimer = urand(30, 91) * 1000;
@@ -631,17 +633,17 @@ public:
Cooldown = 0;
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_ZERE_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_ZERE_DEATH);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -666,14 +668,14 @@ public:
if (ArcaneExplosionTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_ARCANE_EXPLOSION);
+ DoCastVictim(SPELL_ARCANE_EXPLOSION);
Cooldown = 1000;
ArcaneExplosionTimer = 14000;
} else ArcaneExplosionTimer -= diff;
if (ArcaneBoltTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_ARCANE_BOLT);
+ DoCastVictim(SPELL_ARCANE_BOLT);
ArcaneBoltTimer = 3000;
Cooldown = 2000;
} else ArcaneBoltTimer -= diff;
@@ -709,9 +711,9 @@ class boss_lady_malande : public CreatureScript
public:
boss_lady_malande() : CreatureScript("boss_lady_malande") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_lady_malandeAI (creature);
+ return new boss_lady_malandeAI(creature);
}
struct boss_lady_malandeAI : public boss_illidari_councilAI
@@ -723,7 +725,7 @@ public:
uint32 DivineWrathTimer;
uint32 ReflectiveShieldTimer;
- void Reset()
+ void Reset() OVERRIDE
{
EmpoweredSmiteTimer = 38000;
CircleOfHealingTimer = 20000;
@@ -731,17 +733,17 @@ public:
ReflectiveShieldTimer = 0;
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_MALA_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_MALA_DEATH);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -787,9 +789,9 @@ class boss_veras_darkshadow : public CreatureScript
public:
boss_veras_darkshadow() : CreatureScript("boss_veras_darkshadow") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_veras_darkshadowAI (creature);
+ return new boss_veras_darkshadowAI(creature);
}
struct boss_veras_darkshadowAI : public boss_illidari_councilAI
@@ -804,7 +806,7 @@ public:
bool HasVanished;
- void Reset()
+ void Reset() OVERRIDE
{
EnvenomTargetGUID = 0;
@@ -817,17 +819,17 @@ public:
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_VERA_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_VERA_DEATH);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -836,13 +838,13 @@ public:
{
if (DeadlyPoisonTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_DEADLY_POISON);
+ DoCastVictim(SPELL_DEADLY_POISON);
DeadlyPoisonTimer = urand(15, 46) * 1000;
} else DeadlyPoisonTimer -= diff;
if (AppearEnvenomTimer <= diff) // Cast Envenom. This is cast 4 seconds after Vanish is over
{
- DoCast(me->getVictim(), SPELL_ENVENOM);
+ DoCastVictim(SPELL_ENVENOM);
AppearEnvenomTimer = 90000;
} else AppearEnvenomTimer -= diff;
@@ -868,7 +870,7 @@ public:
{
if (VanishTimer <= diff) // Become attackable and poison current target
{
- Unit* target = me->getVictim();
+ Unit* target = me->GetVictim();
DoCast(target, SPELL_DEADLY_POISON);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
DoResetThreat();
@@ -882,7 +884,7 @@ public:
if (AppearEnvenomTimer <= diff) // Appear 2 seconds before becoming attackable (Shifting out of vanish)
{
me->GetMotionMaster()->Clear();
- me->GetMotionMaster()->MoveChase(me->getVictim());
+ me->GetMotionMaster()->MoveChase(me->GetVictim());
me->SetVisible(true);
AppearEnvenomTimer = 6000;
} else AppearEnvenomTimer -= diff;
@@ -901,7 +903,7 @@ public:
{
PrepareAuraScript(spell_boss_lady_malande_shield_AuraScript);
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
return sSpellMgr->GetSpellInfo(SPELL_REFLECTIVE_SHIELD_T);
}
@@ -915,13 +917,13 @@ public:
target->CastCustomSpell(dmgInfo.GetAttacker(), SPELL_REFLECTIVE_SHIELD_T, &bp, NULL, NULL, true, NULL, aurEff);
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectAbsorb += AuraEffectAbsorbFn(spell_boss_lady_malande_shield_AuraScript::Trigger, EFFECT_0);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_boss_lady_malande_shield_AuraScript();
}
@@ -929,8 +931,8 @@ public:
void AddSC_boss_illidari_council()
{
- new mob_illidari_council();
- new mob_blood_elf_council_voice_trigger();
+ new npc_illidari_council();
+ new npc_blood_elf_council_voice_trigger();
new boss_gathios_the_shatterer();
new boss_lady_malande();
new boss_veras_darkshadow();
diff --git a/src/server/scripts/Outland/BlackTemple/instance_black_temple.cpp b/src/server/scripts/Outland/BlackTemple/instance_black_temple.cpp
index 8883b563975..2a82810a3c1 100644
--- a/src/server/scripts/Outland/BlackTemple/instance_black_temple.cpp
+++ b/src/server/scripts/Outland/BlackTemple/instance_black_temple.cpp
@@ -28,8 +28,6 @@ EndScriptData */
#include "black_temple.h"
#include "Player.h"
-#define MAX_ENCOUNTER 9
-
/* Black Temple encounters:
0 - High Warlord Naj'entus event
1 - Supremus Event
@@ -47,7 +45,7 @@ class instance_black_temple : public InstanceMapScript
public:
instance_black_temple() : InstanceMapScript("instance_black_temple", 564) { }
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_black_temple_InstanceMapScript(map);
}
@@ -56,7 +54,7 @@ public:
{
instance_black_temple_InstanceMapScript(Map* map) : InstanceScript(map) {}
- uint32 m_auiEncounter[MAX_ENCOUNTER];
+ uint32 m_auiEncounter[EncounterCount];
std::string str_data;
uint64 Najentus;
@@ -89,37 +87,37 @@ public:
{
memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
- Najentus = 0;
- Akama = 0;
- Akama_Shade = 0;
- ShadeOfAkama = 0;
- Supremus = 0;
- LadyMalande = 0;
- GathiosTheShatterer = 0;
+ Najentus = 0;
+ Akama = 0;
+ Akama_Shade = 0;
+ ShadeOfAkama = 0;
+ Supremus = 0;
+ LadyMalande = 0;
+ GathiosTheShatterer = 0;
HighNethermancerZerevor = 0;
- VerasDarkshadow = 0;
- IllidariCouncil = 0;
- BloodElfCouncilVoice = 0;
- IllidanStormrage = 0;
-
- NajentusGate = 0;
- MainTempleDoors = 0;
- ShadeOfAkamaDoor= 0;
- CommonDoor = 0;//teron
+ VerasDarkshadow = 0;
+ IllidariCouncil = 0;
+ BloodElfCouncilVoice = 0;
+ IllidanStormrage = 0;
+
+ NajentusGate = 0;
+ MainTempleDoors = 0;
+ ShadeOfAkamaDoor = 0;
+ CommonDoor = 0; // teron
TeronDoor = 0;
GuurtogDoor = 0;
MotherDoor = 0;
TempleDoor = 0;
- SimpleDoor = 0;//Bycouncil
+ SimpleDoor = 0; // Bycouncil
CouncilDoor = 0;
- IllidanGate = 0;
- IllidanDoor[0] = 0;
- IllidanDoor[1] = 0;
+ IllidanGate = 0;
+ IllidanDoor[0] = 0;
+ IllidanDoor[1] = 0;
}
bool IsEncounterInProgress() const
{
- for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
+ for (uint8 i = 0; i < EncounterCount; ++i)
if (m_auiEncounter[i] == IN_PROGRESS)
return true;
@@ -134,7 +132,7 @@ public:
{
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
{
- if (Player* player = itr->getSource())
+ if (Player* player = itr->GetSource())
return player;
}
}
@@ -149,7 +147,7 @@ public:
{
case 22887: Najentus = creature->GetGUID(); break;
case 23089: Akama = creature->GetGUID(); break;
- case 22990: Akama_Shade = creature->GetGUID(); break;
+ case 23191: Akama_Shade = creature->GetGUID(); break;
case 22841: ShadeOfAkama = creature->GetGUID(); break;
case 22898: Supremus = creature->GetGUID(); break;
case 22917: IllidanStormrage = creature->GetGUID(); break;
@@ -167,13 +165,13 @@ public:
switch (go->GetEntry())
{
case 185483:
- NajentusGate = go->GetGUID();// Gate past Naj'entus (at the entrance to Supermoose's courtyards)
+ NajentusGate = go->GetGUID(); // Gate past Naj'entus (at the entrance to Supermoose's courtyards)
if (m_auiEncounter[0] == DONE)
HandleGameObject(0, true, go);
break;
case 185882:
- MainTempleDoors = go->GetGUID();// Main Temple Doors - right past Supermoose (Supremus)
+ MainTempleDoors = go->GetGUID(); // Main Temple Doors - right past Supermoose (Supremus)
if (m_auiEncounter[1] == DONE)
HandleGameObject(0, true, go);
break;
@@ -238,7 +236,7 @@ public:
}
}
- uint64 GetData64(uint32 identifier) const
+ uint64 GetData64(uint32 identifier) const OVERRIDE
{
switch (identifier)
{
@@ -264,7 +262,7 @@ public:
return 0;
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
switch (type)
{
@@ -348,7 +346,7 @@ public:
}
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -386,7 +384,7 @@ public:
>> m_auiEncounter[3] >> m_auiEncounter[4] >> m_auiEncounter[5] >> m_auiEncounter[6]
>> m_auiEncounter[7] >> m_auiEncounter[8];
- for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
+ for (uint8 i = 0; i < EncounterCount; ++i)
if (m_auiEncounter[i] == IN_PROGRESS)
m_auiEncounter[i] = NOT_STARTED;
diff --git a/src/server/scripts/Outland/CMakeLists.txt b/src/server/scripts/Outland/CMakeLists.txt
index f038af07634..d7b863da0db 100644
--- a/src/server/scripts/Outland/CMakeLists.txt
+++ b/src/server/scripts/Outland/CMakeLists.txt
@@ -76,6 +76,7 @@ set(scripts_STAT_SRCS
Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp
Outland/Auchindoun/SethekkHalls/boss_tailonking_ikiss.cpp
Outland/Auchindoun/SethekkHalls/boss_darkweaver_syth.cpp
+ Outland/Auchindoun/SethekkHalls/boss_anzu.cpp
Outland/Auchindoun/SethekkHalls/instance_sethekk_halls.cpp
Outland/Auchindoun/SethekkHalls/sethekk_halls.h
Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp
index 0a6c09093f1..a27677f60f5 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp
@@ -102,9 +102,9 @@ class boss_fathomlord_karathress : public CreatureScript
public:
boss_fathomlord_karathress() : CreatureScript("boss_fathomlord_karathress") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_fathomlord_karathressAI (creature);
+ return new boss_fathomlord_karathressAI(creature);
}
struct boss_fathomlord_karathressAI : public ScriptedAI
@@ -127,7 +127,7 @@ public:
uint64 Advisors[MAX_ADVISORS];
- void Reset()
+ void Reset() OVERRIDE
{
CataclysmicBolt_Timer = 10000;
Enrage_Timer = 600000; //10 minutes
@@ -147,7 +147,7 @@ public:
if (RAdvisors[i])
{
pAdvisor = (Unit::GetCreature((*me), RAdvisors[i]));
- if (pAdvisor && !pAdvisor->isAlive())
+ if (pAdvisor && !pAdvisor->IsAlive())
{
pAdvisor->Respawn();
pAdvisor->AI()->EnterEvadeMode();
@@ -201,12 +201,12 @@ public:
instance->SetData(DATA_KARATHRESSEVENT, IN_PROGRESS);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -217,15 +217,15 @@ public:
me->SummonCreature(SEER_OLUM, OLUM_X, OLUM_Y, OLUM_Z, OLUM_O, TEMPSUMMON_TIMED_DESPAWN, 3600000);
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
StartEvent(who);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Only if not incombat check if the event is started
- if (!me->isInCombat() && instance && instance->GetData(DATA_KARATHRESSEVENT))
+ if (!me->IsInCombat() && instance && instance->GetData(DATA_KARATHRESSEVENT))
{
if (Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_KARATHRESSEVENT_STARTER)))
{
@@ -253,7 +253,7 @@ public:
//if there aren't other units, cast on the tank
if (!target)
- target = me->getVictim();
+ target = me->GetVictim();
if (target)
DoCast(target, SPELL_CATACLYSMIC_BOLT);
@@ -263,7 +263,7 @@ public:
//SearNova_Timer
if (SearNova_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_SEAR_NOVA);
+ DoCastVictim(SPELL_SEAR_NOVA);
SearNova_Timer = 20000+rand()%40000;
} else SearNova_Timer -= diff;
@@ -284,7 +284,7 @@ public:
if (Advisors[i])
{
Advisor = (Unit::GetCreature(*me, Advisors[i]));
- if (Advisor && Advisor->isAlive())
+ if (Advisor && Advisor->IsAlive())
{
continueTriggering = true;
break;
@@ -310,9 +310,9 @@ class boss_fathomguard_sharkkis : public CreatureScript
public:
boss_fathomguard_sharkkis() : CreatureScript("boss_fathomguard_sharkkis") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_fathomguard_sharkkisAI (creature);
+ return new boss_fathomguard_sharkkisAI(creature);
}
struct boss_fathomguard_sharkkisAI : public ScriptedAI
@@ -333,7 +333,7 @@ public:
uint64 SummonedPet;
- void Reset()
+ void Reset() OVERRIDE
{
LeechingThrow_Timer = 20000;
TheBeastWithin_Timer = 30000;
@@ -343,7 +343,7 @@ public:
pet = false;
Creature* Pet = Unit::GetCreature(*me, SummonedPet);
- if (Pet && Pet->isAlive())
+ if (Pet && Pet->IsAlive())
{
Pet->DealDamage(Pet, Pet->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
}
@@ -354,7 +354,7 @@ public:
instance->SetData(DATA_KARATHRESSEVENT, NOT_STARTED);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
{
@@ -363,7 +363,7 @@ public:
}
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (instance)
{
@@ -372,10 +372,10 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Only if not incombat check if the event is started
- if (!me->isInCombat() && instance && instance->GetData(DATA_KARATHRESSEVENT))
+ if (!me->IsInCombat() && instance && instance->GetData(DATA_KARATHRESSEVENT))
{
if (Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_KARATHRESSEVENT_STARTER)))
AttackStart(target);
@@ -395,14 +395,14 @@ public:
//LeechingThrow_Timer
if (LeechingThrow_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_LEECHING_THROW);
+ DoCastVictim(SPELL_LEECHING_THROW);
LeechingThrow_Timer = 20000;
} else LeechingThrow_Timer -= diff;
//Multishot_Timer
if (Multishot_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_MULTISHOT);
+ DoCastVictim(SPELL_MULTISHOT);
Multishot_Timer = 20000;
} else Multishot_Timer -= diff;
@@ -411,7 +411,7 @@ public:
{
DoCast(me, SPELL_THE_BEAST_WITHIN);
Creature* Pet = Unit::GetCreature(*me, SummonedPet);
- if (Pet && Pet->isAlive())
+ if (Pet && Pet->IsAlive())
{
Pet->CastSpell(Pet, SPELL_PET_ENRAGE, true);
}
@@ -457,9 +457,9 @@ class boss_fathomguard_tidalvess : public CreatureScript
public:
boss_fathomguard_tidalvess() : CreatureScript("boss_fathomguard_tidalvess") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_fathomguard_tidalvessAI (creature);
+ return new boss_fathomguard_tidalvessAI(creature);
}
struct boss_fathomguard_tidalvessAI : public ScriptedAI
@@ -476,7 +476,7 @@ public:
uint32 PoisonCleansing_Timer;
uint32 Earthbind_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
FrostShock_Timer = 25000;
Spitfire_Timer = 60000;
@@ -487,7 +487,7 @@ public:
instance->SetData(DATA_KARATHRESSEVENT, NOT_STARTED);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
{
@@ -496,7 +496,7 @@ public:
}
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (instance)
{
@@ -506,10 +506,10 @@ public:
DoCast(me, SPELL_WINDFURY_WEAPON);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Only if not incombat check if the event is started
- if (!me->isInCombat() && instance && instance->GetData(DATA_KARATHRESSEVENT))
+ if (!me->IsInCombat() && instance && instance->GetData(DATA_KARATHRESSEVENT))
{
if (Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_KARATHRESSEVENT_STARTER)))
AttackStart(target);
@@ -534,7 +534,7 @@ public:
//FrostShock_Timer
if (FrostShock_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_FROST_SHOCK);
+ DoCastVictim(SPELL_FROST_SHOCK);
FrostShock_Timer = 25000+rand()%5000;
} else FrostShock_Timer -= diff;
@@ -543,7 +543,7 @@ public:
{
DoCast(me, SPELL_SPITFIRE_TOTEM);
if (Unit* SpitfireTotem = Unit::GetUnit(*me, CREATURE_SPITFIRE_TOTEM))
- SpitfireTotem->ToCreature()->AI()->AttackStart(me->getVictim());
+ SpitfireTotem->ToCreature()->AI()->AttackStart(me->GetVictim());
Spitfire_Timer = 60000;
}
@@ -580,9 +580,9 @@ class boss_fathomguard_caribdis : public CreatureScript
public:
boss_fathomguard_caribdis() : CreatureScript("boss_fathomguard_caribdis") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_fathomguard_caribdisAI (creature);
+ return new boss_fathomguard_caribdisAI(creature);
}
struct boss_fathomguard_caribdisAI : public ScriptedAI
@@ -599,7 +599,7 @@ public:
uint32 Heal_Timer;
uint32 Cyclone_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
WaterBoltVolley_Timer = 35000;
TidalSurge_Timer = 15000+rand()%5000;
@@ -610,7 +610,7 @@ public:
instance->SetData(DATA_KARATHRESSEVENT, NOT_STARTED);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
{
@@ -619,7 +619,7 @@ public:
}
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (instance)
{
@@ -628,10 +628,10 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Only if not incombat check if the event is started
- if (!me->isInCombat() && instance && instance->GetData(DATA_KARATHRESSEVENT))
+ if (!me->IsInCombat() && instance && instance->GetData(DATA_KARATHRESSEVENT))
{
if (Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_KARATHRESSEVENT_STARTER)))
AttackStart(target);
@@ -651,16 +651,16 @@ public:
//WaterBoltVolley_Timer
if (WaterBoltVolley_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_WATER_BOLT_VOLLEY);
+ DoCastVictim(SPELL_WATER_BOLT_VOLLEY);
WaterBoltVolley_Timer = 30000;
} else WaterBoltVolley_Timer -= diff;
//TidalSurge_Timer
if (TidalSurge_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_TIDAL_SURGE);
+ DoCastVictim(SPELL_TIDAL_SURGE);
// Hacky way to do it - won't trigger elseways
- me->getVictim()->CastSpell(me->getVictim(), SPELL_TIDAL_SURGE_FREEZE, true);
+ me->GetVictim()->CastSpell(me->GetVictim(), SPELL_TIDAL_SURGE_FREEZE, true);
TidalSurge_Timer = 15000+rand()%5000;
} else TidalSurge_Timer -= diff;
@@ -689,10 +689,10 @@ public:
// It can be cast on any of the mobs
Unit* unit = NULL;
- while (unit == NULL || !unit->isAlive())
+ while (unit == NULL || !unit->IsAlive())
unit = selectAdvisorUnit();
- if (unit && unit->isAlive())
+ if (unit && unit->IsAlive())
DoCast(unit, SPELL_HEAL);
Heal_Timer = 60000;
}
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_hydross_the_unstable.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_hydross_the_unstable.cpp
index 2f0d736d8ef..db270c943e5 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_hydross_the_unstable.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_hydross_the_unstable.cpp
@@ -84,9 +84,9 @@ class boss_hydross_the_unstable : public CreatureScript
public:
boss_hydross_the_unstable() : CreatureScript("boss_hydross_the_unstable") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_hydross_the_unstableAI (creature);
+ return new boss_hydross_the_unstableAI(creature);
}
struct boss_hydross_the_unstableAI : public ScriptedAI
@@ -111,7 +111,7 @@ public:
bool beam;
SummonList Summons;
- void Reset()
+ void Reset() OVERRIDE
{
DeSummonBeams();
beams[0] = 0;
@@ -169,7 +169,7 @@ public:
}
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
@@ -177,12 +177,12 @@ public:
instance->SetData(DATA_HYDROSSTHEUNSTABLEEVENT, IN_PROGRESS);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(CorruptedForm ? SAY_CORRUPT_SLAY : SAY_CLEAN_SLAY);
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
if (summoned->GetEntry() == ENTRY_PURE_SPAWN)
{
@@ -198,12 +198,12 @@ public:
}
}
- void SummonedCreatureDespawn(Creature* summon)
+ void SummonedCreatureDespawn(Creature* summon) OVERRIDE
{
Summons.Despawn(summon);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(CorruptedForm ? SAY_CORRUPT_DEATH : SAY_CLEAN_DEATH);
@@ -212,7 +212,7 @@ public:
Summons.DespawnAll();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!beam)
{
@@ -260,7 +260,7 @@ public:
break;
}
- DoCast(me->getVictim(), mark_spell);
+ DoCastVictim(mark_spell);
if (MarkOfCorruption_Count < 5)
++MarkOfCorruption_Count;
@@ -343,7 +343,7 @@ public:
break;
}
- DoCast(me->getVictim(), mark_spell);
+ DoCastVictim(mark_spell);
if (MarkOfHydross_Count < 5)
++MarkOfHydross_Count;
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp
index ae63ed67af1..4499cb98475 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp
@@ -138,14 +138,14 @@ class boss_lady_vashj : public CreatureScript
public:
boss_lady_vashj() : CreatureScript("boss_lady_vashj") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_lady_vashjAI (creature);
+ return new boss_lady_vashjAI(creature);
}
struct boss_lady_vashjAI : public ScriptedAI
{
- boss_lady_vashjAI (Creature* creature) : ScriptedAI(creature)
+ boss_lady_vashjAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
Intro = false;
@@ -177,7 +177,7 @@ public:
bool CanAttack;
bool JustCreated;
- void Reset()
+ void Reset() OVERRIDE
{
AggroTimer = 19000;
ShockBlastTimer = 1+rand()%60000;
@@ -223,12 +223,12 @@ public:
if (TaintedElementalTimer > 50000)
TaintedElementalTimer = 50000;
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -246,7 +246,7 @@ public:
instance->SetData(DATA_LADYVASHJEVENT, IN_PROGRESS);
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (instance)
{
@@ -254,7 +254,7 @@ public:
Map* map = me->GetMap();
Map::PlayerList const &PlayerList = map->GetPlayers();
for (Map::PlayerList::const_iterator itr = PlayerList.begin(); itr != PlayerList.end(); ++itr)
- if (Player* player = itr->getSource())
+ if (Player* player = itr->GetSource())
player->DestroyItemCount(31088, 1, true);
}
StartEvent(); // this is EnterCombat(), so were are 100% in combat, start the event
@@ -263,7 +263,8 @@ public:
AttackStart(who);
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (!Intro)
{
@@ -272,15 +273,15 @@ public:
}
if (!CanAttack)
return;
- if (!who || me->getVictim())
+ if (!who || me->GetVictim())
return;
- if (me->canCreatureAttack(who))
+ if (me->CanCreatureAttack(who))
{
float attackRadius = me->GetAttackDistance(who);
if (me->IsWithinDistInMap(who, attackRadius) && me->GetDistanceZ(who) <= CREATURE_Z_ATTACK_RANGE && me->IsWithinLOSInMap(who))
{
- if (!me->isInCombat()) // AttackStart() sets UNIT_FLAG_IN_COMBAT, so this msut be before attacking
+ if (!me->IsInCombat()) // AttackStart() sets UNIT_FLAG_IN_COMBAT, so this msut be before attacking
StartEvent();
if (Phase != 2)
@@ -296,12 +297,12 @@ public:
case 0:
// Shoot
// Used in Phases 1 and 3 after Entangle or while having nobody in melee range. A shot that hits her target for 4097-5543 Physical damage.
- DoCast(me->getVictim(), SPELL_SHOOT);
+ DoCastVictim(SPELL_SHOOT);
break;
case 1:
// Multishot
// Used in Phases 1 and 3 after Entangle or while having nobody in melee range. A shot that hits 1 person and 4 people around him for 6475-7525 physical damage.
- DoCast(me->getVictim(), SPELL_MULTI_SHOT);
+ DoCastVictim(SPELL_MULTI_SHOT);
break;
}
if (rand()%3)
@@ -310,7 +311,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!CanAttack && Intro)
{
@@ -327,7 +328,7 @@ public:
}
}
// to prevent abuses during phase 2
- if (Phase == 2 && !me->getVictim() && me->isInCombat())
+ if (Phase == 2 && !me->GetVictim() && me->IsInCombat())
{
EnterEvadeMode();
return;
@@ -343,8 +344,8 @@ public:
{
// Shock Burst
// Randomly used in Phases 1 and 3 on Vashj's target, it's a Shock spell doing 8325-9675 nature damage and stunning the target for 5 seconds, during which she will not attack her target but switch to the next person on the aggro list.
- DoCast(me->getVictim(), SPELL_SHOCK_BLAST);
- me->TauntApply(me->getVictim());
+ DoCastVictim(SPELL_SHOCK_BLAST);
+ me->TauntApply(me->GetVictim());
ShockBlastTimer = 1000+rand()%14000; // random cooldown
} else ShockBlastTimer -= diff;
@@ -368,7 +369,7 @@ public:
{
// Entangle
// Used in Phases 1 and 3, it casts Entangling Roots on everybody in a 15 yard radius of Vashj, immobilzing them for 10 seconds and dealing 500 damage every 2 seconds. It's not a magic effect so it cannot be dispelled, but is removed by various buffs such as Cloak of Shadows or Blessing of Freedom.
- DoCast(me->getVictim(), SPELL_ENTANGLE);
+ DoCastVictim(SPELL_ENTANGLE);
Entangle = true;
EntangleTimer = 10000;
}
@@ -457,7 +458,7 @@ public:
Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0);
if (!target)
- target = me->getVictim();
+ target = me->GetVictim();
DoCast(target, SPELL_FORKED_LIGHTNING);
@@ -495,8 +496,8 @@ public:
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
coilfangElite->AI()->AttackStart(target);
- else if (me->getVictim())
- coilfangElite->AI()->AttackStart(me->getVictim());
+ else if (me->GetVictim())
+ coilfangElite->AI()->AttackStart(me->GetVictim());
}
CoilfangEliteTimer = 45000+rand()%5000;
} else CoilfangEliteTimer -= diff;
@@ -509,8 +510,8 @@ public:
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
CoilfangStrider->AI()->AttackStart(target);
- else if (me->getVictim())
- CoilfangStrider->AI()->AttackStart(me->getVictim());
+ else if (me->GetVictim())
+ CoilfangStrider->AI()->AttackStart(me->GetVictim());
}
CoilfangStriderTimer = 60000+rand()%10000;
} else CoilfangStriderTimer -= diff;
@@ -531,7 +532,7 @@ public:
Phase = 3;
// return to the tank
- me->GetMotionMaster()->MoveChase(me->getVictim());
+ me->GetMotionMaster()->MoveChase(me->GetVictim());
}
CheckTimer = 1000;
} else CheckTimer -= diff;
@@ -543,19 +544,19 @@ public:
// Enchanted Elemental
// If one of them reaches Vashj he will increase her damage done by 5%.
-class mob_enchanted_elemental : public CreatureScript
+class npc_enchanted_elemental : public CreatureScript
{
public:
- mob_enchanted_elemental() : CreatureScript("mob_enchanted_elemental") { }
+ npc_enchanted_elemental() : CreatureScript("npc_enchanted_elemental") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_enchanted_elementalAI (creature);
+ return new npc_enchanted_elementalAI(creature);
}
- struct mob_enchanted_elementalAI : public ScriptedAI
+ struct npc_enchanted_elementalAI : public ScriptedAI
{
- mob_enchanted_elementalAI(Creature* creature) : ScriptedAI(creature)
+ npc_enchanted_elementalAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -567,7 +568,7 @@ public:
uint64 VashjGUID;
- void Reset()
+ void Reset() OVERRIDE
{
me->SetSpeed(MOVE_WALK, 0.6f); // walk
me->SetSpeed(MOVE_RUN, 0.6f); // run
@@ -595,11 +596,12 @@ public:
VashjGUID = instance->GetData64(DATA_LADYVASHJ);
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
- void MoveInLineOfSight(Unit* /*who*/) {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!instance)
return;
@@ -626,7 +628,7 @@ public:
DoCast(me, SPELL_SURGE);
}
if (Creature* vashj = Unit::GetCreature(*me, VashjGUID))
- if (!vashj->isInCombat() || CAST_AI(boss_lady_vashj::boss_lady_vashjAI, vashj->AI())->Phase != 2 || vashj->isDead())
+ if (!vashj->IsInCombat() || CAST_AI(boss_lady_vashj::boss_lady_vashjAI, vashj->AI())->Phase != 2 || vashj->isDead())
me->Kill(me);
Move = 1000;
} else Move -= diff;
@@ -637,19 +639,19 @@ public:
// Tainted Elemental
// This mob has 7, 900 life, doesn't move, and shoots Poison Bolts at one person anywhere in the area, doing 3, 000 nature damage and placing a posion doing 2, 000 damage every 2 seconds. He will switch targets often, or sometimes just hang on a single player, but there is nothing you can do about it except heal the damage and kill the Tainted Elemental
-class mob_tainted_elemental : public CreatureScript
+class npc_tainted_elemental : public CreatureScript
{
public:
- mob_tainted_elemental() : CreatureScript("mob_tainted_elemental") { }
+ npc_tainted_elemental() : CreatureScript("npc_tainted_elemental") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_tainted_elementalAI (creature);
+ return new npc_tainted_elementalAI(creature);
}
- struct mob_tainted_elementalAI : public ScriptedAI
+ struct npc_tainted_elementalAI : public ScriptedAI
{
- mob_tainted_elementalAI(Creature* creature) : ScriptedAI(creature)
+ npc_tainted_elementalAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -659,25 +661,25 @@ public:
uint32 PoisonBoltTimer;
uint32 DespawnTimer;
- void Reset()
+ void Reset() OVERRIDE
{
PoisonBoltTimer = 5000+rand()%5000;
DespawnTimer = 30000;
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
if (Creature* vashj = Unit::GetCreature((*me), instance->GetData64(DATA_LADYVASHJ)))
CAST_AI(boss_lady_vashj::boss_lady_vashjAI, vashj->AI())->EventTaintedElementalDeath();
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
me->AddThreat(who, 0.1f);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
// PoisonBoltTimer
if (PoisonBoltTimer <= diff)
@@ -706,19 +708,19 @@ public:
//Toxic Sporebat
//Toxic Spores: Used in Phase 3 by the Spore Bats, it creates a contaminated green patch of ground, dealing about 2775-3225 nature damage every second to anyone who stands in it.
-class mob_toxic_sporebat : public CreatureScript
+class npc_toxic_sporebat : public CreatureScript
{
public:
- mob_toxic_sporebat() : CreatureScript("mob_toxic_sporebat") { }
+ npc_toxic_sporebat() : CreatureScript("npc_toxic_sporebat") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_toxic_sporebatAI (creature);
+ return new npc_toxic_sporebatAI(creature);
}
- struct mob_toxic_sporebatAI : public ScriptedAI
+ struct npc_toxic_sporebatAI : public ScriptedAI
{
- mob_toxic_sporebatAI(Creature* creature) : ScriptedAI(creature)
+ npc_toxic_sporebatAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
EnterEvadeMode();
@@ -731,7 +733,7 @@ public:
uint32 BoltTimer;
uint32 CheckTimer;
- void Reset()
+ void Reset() OVERRIDE
{
me->SetDisableGravity(true);
me->setFaction(14);
@@ -741,11 +743,12 @@ public:
CheckTimer = 1000;
}
- void MoveInLineOfSight(Unit* /*who*/)
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE
+
{
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type != POINT_MOTION_TYPE)
return;
@@ -754,7 +757,7 @@ public:
MovementTimer = 0;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
// Random movement
if (MovementTimer <= diff)
@@ -786,7 +789,7 @@ public:
{
// check if vashj is death
Unit* Vashj = Unit::GetUnit(*me, instance->GetData64(DATA_LADYVASHJ));
- if (!Vashj || !Vashj->isAlive() || CAST_AI(boss_lady_vashj::boss_lady_vashjAI, Vashj->ToCreature()->AI())->Phase != 3)
+ if (!Vashj || !Vashj->IsAlive() || CAST_AI(boss_lady_vashj::boss_lady_vashjAI, Vashj->ToCreature()->AI())->Phase != 3)
{
// remove
me->setDeathState(DEAD);
@@ -804,19 +807,19 @@ public:
};
-class mob_shield_generator_channel : public CreatureScript
+class npc_shield_generator_channel : public CreatureScript
{
public:
- mob_shield_generator_channel() : CreatureScript("mob_shield_generator_channel") { }
+ npc_shield_generator_channel() : CreatureScript("npc_shield_generator_channel") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_shield_generator_channelAI (creature);
+ return new npc_shield_generator_channelAI(creature);
}
- struct mob_shield_generator_channelAI : public ScriptedAI
+ struct npc_shield_generator_channelAI : public ScriptedAI
{
- mob_shield_generator_channelAI(Creature* creature) : ScriptedAI(creature)
+ npc_shield_generator_channelAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -825,7 +828,7 @@ public:
uint32 CheckTimer;
bool Casted;
- void Reset()
+ void Reset() OVERRIDE
{
CheckTimer = 0;
Casted = false;
@@ -834,9 +837,10 @@ public:
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
}
- void MoveInLineOfSight(Unit* /*who*/) {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
+
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!instance)
return;
@@ -845,7 +849,7 @@ public:
{
Unit* vashj = Unit::GetUnit(*me, instance->GetData64(DATA_LADYVASHJ));
- if (vashj && vashj->isAlive())
+ if (vashj && vashj->IsAlive())
{
// start visual channel
if (!Casted || !vashj->HasAura(SPELL_MAGIC_BARRIER))
@@ -866,7 +870,7 @@ class item_tainted_core : public ItemScript
public:
item_tainted_core() : ItemScript("item_tainted_core") { }
- bool OnUse(Player* player, Item* /*item*/, SpellCastTargets const& targets)
+ bool OnUse(Player* player, Item* /*item*/, SpellCastTargets const& targets) OVERRIDE
{
InstanceScript* instance = player->GetInstanceScript();
if (!instance)
@@ -937,9 +941,9 @@ public:
void AddSC_boss_lady_vashj()
{
new boss_lady_vashj();
- new mob_enchanted_elemental();
- new mob_tainted_elemental();
- new mob_toxic_sporebat();
- new mob_shield_generator_channel();
+ new npc_enchanted_elemental();
+ new npc_tainted_elemental();
+ new npc_toxic_sporebat();
+ new npc_shield_generator_channel();
new item_tainted_core();
}
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp
index f4e0c6cee2a..a87ad44ef1c 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp
@@ -56,7 +56,7 @@ enum LeotherasTheBlind
MODEL_DEMON = 20125,
MODEL_NIGHTELF = 20514,
DEMON_FORM = 21875,
- MOB_SPELLBINDER = 21806,
+ NPC_SPELLBINDER = 21806,
INNER_DEMON_VICTIM = 1,
SAY_AGGRO = 0,
@@ -69,19 +69,19 @@ enum LeotherasTheBlind
SAY_DEATH = 7
};
-class mob_inner_demon : public CreatureScript
+class npc_inner_demon : public CreatureScript
{
public:
- mob_inner_demon() : CreatureScript("mob_inner_demon") { }
+ npc_inner_demon() : CreatureScript("npc_inner_demon") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_inner_demonAI (creature);
+ return new npc_inner_demonAI(creature);
}
- struct mob_inner_demonAI : public ScriptedAI
+ struct npc_inner_demonAI : public ScriptedAI
{
- mob_inner_demonAI(Creature* creature) : ScriptedAI(creature)
+ npc_inner_demonAI(Creature* creature) : ScriptedAI(creature)
{
victimGUID = 0;
}
@@ -91,33 +91,33 @@ public:
uint32 Link_Timer;
uint64 victimGUID;
- void Reset()
+ void Reset() OVERRIDE
{
ShadowBolt_Timer = 10000;
Link_Timer = 1000;
}
- void SetGUID(uint64 guid, int32 id/* = 0 */)
+ void SetGUID(uint64 guid, int32 id/* = 0 */) OVERRIDE
{
if (id == INNER_DEMON_VICTIM)
victimGUID = guid;
}
- uint64 GetGUID(int32 id/* = 0 */) const
+ uint64 GetGUID(int32 id/* = 0 */) const OVERRIDE
{
if (id == INNER_DEMON_VICTIM)
return victimGUID;
return 0;
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Unit* unit = Unit::GetUnit(*me, victimGUID);
if (unit && unit->HasAura(SPELL_INSIDIOUS_WHISPER))
unit->RemoveAurasDueToSpell(SPELL_INSIDIOUS_WHISPER);
}
- void DamageTaken(Unit* done_by, uint32 &damage)
+ void DamageTaken(Unit* done_by, uint32 &damage) OVERRIDE
{
if (done_by->GetGUID() != victimGUID && done_by->GetGUID() != me->GetGUID())
{
@@ -126,23 +126,23 @@ public:
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (!victimGUID)
return;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
return;
- if (me->getVictim()->GetGUID() != victimGUID)
+ if (me->GetVictim()->GetGUID() != victimGUID)
{
- DoModifyThreatPercent(me->getVictim(), -100);
+ DoModifyThreatPercent(me->GetVictim(), -100);
Unit* owner = Unit::GetUnit(*me, victimGUID);
- if (owner && owner->isAlive())
+ if (owner && owner->IsAlive())
{
me->AddThreat(owner, 999999);
AttackStart(owner);
@@ -155,7 +155,7 @@ public:
if (Link_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_SOUL_LINK, true);
+ DoCastVictim(SPELL_SOUL_LINK, true);
Link_Timer = 1000;
} else Link_Timer -= diff;
@@ -164,7 +164,7 @@ public:
if (ShadowBolt_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_SHADOWBOLT, false);
+ DoCastVictim(SPELL_SHADOWBOLT, false);
ShadowBolt_Timer = 10000;
} else ShadowBolt_Timer -= diff;
@@ -179,9 +179,9 @@ class boss_leotheras_the_blind : public CreatureScript
public:
boss_leotheras_the_blind() : CreatureScript("boss_leotheras_the_blind") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_leotheras_the_blindAI (creature);
+ return new boss_leotheras_the_blindAI(creature);
}
struct boss_leotheras_the_blindAI : public ScriptedAI
@@ -218,7 +218,7 @@ public:
uint64 Demon;
uint64 SpellBinderGUID[3];
- void Reset()
+ void Reset() OVERRIDE
{
CheckChannelers();
BanishTimer = 1000;
@@ -259,17 +259,18 @@ public:
if (i == 0) {nx += 10; ny -= 5; o=2.5f;}
if (i == 1) {nx -= 8; ny -= 7; o=0.9f;}
if (i == 2) {nx -= 3; ny += 9; o=5.0f;}
- Creature* binder = me->SummonCreature(MOB_SPELLBINDER, nx, ny, z, o, TEMPSUMMON_DEAD_DESPAWN, 0);
+ Creature* binder = me->SummonCreature(NPC_SPELLBINDER, nx, ny, z, o, TEMPSUMMON_DEAD_DESPAWN, 0);
if (binder)
SpellBinderGUID[i] = binder->GetGUID();
}
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (me->HasAura(AURA_BANISH))
return;
- if (!me->getVictim() && me->canCreatureAttack(who))
+ if (!me->GetVictim() && me->CanCreatureAttack(who))
{
if (me->GetDistanceZ(who) > CREATURE_Z_ATTACK_RANGE)
return;
@@ -299,7 +300,7 @@ public:
for (uint8 i = 0; i < 3; ++i)
{
Unit* add = Unit::GetUnit(*me, SpellBinderGUID[i]);
- if (add && add->isAlive())
+ if (add && add->IsAlive())
++AliveChannelers;
}
@@ -352,7 +353,7 @@ public:
{
//delete creature
Creature* creature = Unit::GetCreature((*me), InnderDemon[i]);
- if (creature && creature->isAlive())
+ if (creature && creature->IsAlive())
{
creature->DespawnOrUnsummon();
}
@@ -370,10 +371,10 @@ public:
if (InnderDemon[i] > 0)
{
Creature* unit = Unit::GetCreature((*me), InnderDemon[i]);
- if (unit && unit->isAlive())
+ if (unit && unit->IsAlive())
{
Unit* unit_target = Unit::GetUnit(*unit, unit->AI()->GetGUID(INNER_DEMON_VICTIM));
- if (unit_target && unit_target->isAlive())
+ if (unit_target && unit_target->IsAlive())
{
unit->CastSpell(unit_target, SPELL_CONSUMING_MADNESS, true);
DoModifyThreatPercent(unit_target, -100);
@@ -383,7 +384,7 @@ public:
}
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
if (victim->GetTypeId() != TYPEID_PLAYER)
return;
@@ -391,7 +392,7 @@ public:
Talk(DemonForm ? SAY_DEMON_SLAY : SAY_NIGHTELF_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -405,7 +406,7 @@ public:
instance->SetData(DATA_LEOTHERASTHEBLINDEVENT, DONE);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (me->HasAura(AURA_BANISH))
return;
@@ -413,7 +414,7 @@ public:
me->LoadEquipment();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (me->HasAura(AURA_BANISH) || !UpdateVictim())
@@ -452,7 +453,7 @@ public:
NeedThreatReset = false;
DoResetThreat();
me->GetMotionMaster()->Clear();
- me->GetMotionMaster()->MoveChase(me->getVictim());
+ me->GetMotionMaster()->MoveChase(me->GetVictim());
}
//Enrage_Timer (10 min)
@@ -498,18 +499,18 @@ public:
else
{
//ChaosBlast_Timer
- if (!me->getVictim())
+ if (!me->GetVictim())
return;
- if (me->IsWithinDist(me->getVictim(), 30))
+ if (me->IsWithinDist(me->GetVictim(), 30))
me->StopMoving();
if (ChaosBlast_Timer <= diff)
{
// will cast only when in range of spell
- if (me->IsWithinDist(me->getVictim(), 30))
+ if (me->IsWithinDist(me->GetVictim(), 30))
{
- //DoCast(me->getVictim(), SPELL_CHAOS_BLAST, true);
+ //DoCastVictim(SPELL_CHAOS_BLAST, true);
int damage = 100;
- me->CastCustomSpell(me->getVictim(), SPELL_CHAOS_BLAST, &damage, NULL, NULL, false, NULL, NULL, me->GetGUID());
+ me->CastCustomSpell(me->GetVictim(), SPELL_CHAOS_BLAST, &damage, NULL, NULL, false, NULL, NULL, me->GetGUID());
}
ChaosBlast_Timer = 3000;
} else ChaosBlast_Timer -= diff;
@@ -521,13 +522,13 @@ public:
for (ThreatContainer::StorageType::const_iterator itr = ThreatList.begin(); itr != ThreatList.end(); ++itr)
{
Unit* tempTarget = Unit::GetUnit(*me, (*itr)->getUnitGuid());
- if (tempTarget && tempTarget->GetTypeId() == TYPEID_PLAYER && tempTarget->GetGUID() != me->getVictim()->GetGUID() && TargetList.size()<5)
+ if (tempTarget && tempTarget->GetTypeId() == TYPEID_PLAYER && tempTarget->GetGUID() != me->GetVictim()->GetGUID() && TargetList.size()<5)
TargetList.push_back(tempTarget);
}
//SpellInfo* spell = GET_SPELL(SPELL_INSIDIOUS_WHISPER);
for (std::vector<Unit*>::const_iterator itr = TargetList.begin(); itr != TargetList.end(); ++itr)
{
- if ((*itr) && (*itr)->isAlive())
+ if ((*itr) && (*itr)->IsAlive())
{
Creature* demon = me->SummonCreature(INNER_DEMON_ID, (*itr)->GetPositionX()+10, (*itr)->GetPositionY()+10, (*itr)->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
if (demon)
@@ -580,8 +581,8 @@ public:
if (Copy)
{
Demon = Copy->GetGUID();
- if (me->getVictim())
- Copy->AI()->AttackStart(me->getVictim());
+ if (me->GetVictim())
+ Copy->AI()->AttackStart(me->GetVictim());
}
//set nightelf final form
IsFinalForm = true;
@@ -601,9 +602,9 @@ class boss_leotheras_the_blind_demonform : public CreatureScript
public:
boss_leotheras_the_blind_demonform() : CreatureScript("boss_leotheras_the_blind_demonform") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_leotheras_the_blind_demonformAI (creature);
+ return new boss_leotheras_the_blind_demonformAI(creature);
}
struct boss_leotheras_the_blind_demonformAI : public ScriptedAI
@@ -613,7 +614,7 @@ public:
uint32 ChaosBlast_Timer;
bool DealDamage;
- void Reset()
+ void Reset() OVERRIDE
{
ChaosBlast_Timer = 1000;
DealDamage = true;
@@ -624,7 +625,7 @@ public:
Talk(SAY_FREE);
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
if (victim->GetTypeId() != TYPEID_PLAYER)
return;
@@ -632,34 +633,34 @@ public:
Talk(SAY_DEMON_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
//invisibility (blizzlike, at the end of the fight he doesn't die, he disappears)
DoCast(me, 8149, true);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
StartEvent();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
return;
//ChaosBlast_Timer
- if (me->IsWithinDist(me->getVictim(), 30))
+ if (me->IsWithinDist(me->GetVictim(), 30))
me->StopMoving();
if (ChaosBlast_Timer <= diff)
{
// will cast only when in range od spell
- if (me->IsWithinDist(me->getVictim(), 30))
+ if (me->IsWithinDist(me->GetVictim(), 30))
{
- //DoCast(me->getVictim(), SPELL_CHAOS_BLAST, true);
+ //DoCastVictim(SPELL_CHAOS_BLAST, true);
int damage = 100;
- me->CastCustomSpell(me->getVictim(), SPELL_CHAOS_BLAST, &damage, NULL, NULL, false, NULL, NULL, me->GetGUID());
+ me->CastCustomSpell(me->GetVictim(), SPELL_CHAOS_BLAST, &damage, NULL, NULL, false, NULL, NULL, me->GetGUID());
ChaosBlast_Timer = 3000;
}
} else ChaosBlast_Timer -= diff;
@@ -669,19 +670,19 @@ public:
};
};
-class mob_greyheart_spellbinder : public CreatureScript
+class npc_greyheart_spellbinder : public CreatureScript
{
public:
- mob_greyheart_spellbinder() : CreatureScript("mob_greyheart_spellbinder") { }
+ npc_greyheart_spellbinder() : CreatureScript("npc_greyheart_spellbinder") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_greyheart_spellbinderAI (creature);
+ return new npc_greyheart_spellbinderAI(creature);
}
- struct mob_greyheart_spellbinderAI : public ScriptedAI
+ struct npc_greyheart_spellbinderAI : public ScriptedAI
{
- mob_greyheart_spellbinderAI(Creature* creature) : ScriptedAI(creature)
+ npc_greyheart_spellbinderAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
leotherasGUID = 0;
@@ -697,7 +698,7 @@ public:
bool AddedBanish;
- void Reset()
+ void Reset() OVERRIDE
{
Mindblast_Timer = urand(3000, 8000);
Earthshock_Timer = urand(5000, 10000);
@@ -706,19 +707,19 @@ public:
{
instance->SetData64(DATA_LEOTHERAS_EVENT_STARTER, 0);
Creature* leotheras = Unit::GetCreature(*me, leotherasGUID);
- if (leotheras && leotheras->isAlive())
+ if (leotheras && leotheras->IsAlive())
CAST_AI(boss_leotheras_the_blind::boss_leotheras_the_blindAI, leotheras->AI())->CheckChannelers(/*false*/);
}
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
me->InterruptNonMeleeSpells(false);
if (instance)
instance->SetData64(DATA_LEOTHERAS_EVENT_STARTER, who->GetGUID());
}
- void JustRespawned()
+ void JustRespawned() OVERRIDE
{
AddedBanish = false;
Reset();
@@ -726,25 +727,25 @@ public:
void CastChanneling()
{
- if (!me->isInCombat() && !me->GetCurrentSpell(CURRENT_CHANNELED_SPELL))
+ if (!me->IsInCombat() && !me->GetCurrentSpell(CURRENT_CHANNELED_SPELL))
{
if (leotherasGUID)
{
Creature* leotheras = Unit::GetCreature(*me, leotherasGUID);
- if (leotheras && leotheras->isAlive())
+ if (leotheras && leotheras->IsAlive())
DoCast(leotheras, BANISH_BEAM);
}
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (instance)
{
if (!leotherasGUID)
leotherasGUID = instance->GetData64(DATA_LEOTHERAS);
- if (!me->isInCombat() && instance->GetData64(DATA_LEOTHERAS_EVENT_STARTER))
+ if (!me->IsInCombat() && instance->GetData64(DATA_LEOTHERAS_EVENT_STARTER))
{
Unit* victim = NULL;
victim = Unit::GetUnit(*me, instance->GetData64(DATA_LEOTHERAS_EVENT_STARTER));
@@ -781,7 +782,7 @@ public:
Map::PlayerList const &PlayerList = map->GetPlayers();
for (Map::PlayerList::const_iterator itr = PlayerList.begin(); itr != PlayerList.end(); ++itr)
{
- if (Player* i_pl = itr->getSource())
+ if (Player* i_pl = itr->GetSource())
{
bool isCasting = false;
for (uint8 i = 0; i < CURRENT_MAX_SPELL; ++i)
@@ -800,7 +801,7 @@ public:
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/) {}
+ void JustDied(Unit* /*killer*/) OVERRIDE {}
};
};
@@ -808,6 +809,6 @@ void AddSC_boss_leotheras_the_blind()
{
new boss_leotheras_the_blind();
new boss_leotheras_the_blind_demonform();
- new mob_greyheart_spellbinder();
- new mob_inner_demon();
+ new npc_greyheart_spellbinder();
+ new npc_inner_demon();
}
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp
index 18324822c4a..cd56005b3f6 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp
@@ -29,31 +29,37 @@ EndScriptData */
#include "Spell.h"
#include "Player.h"
-#define SPELL_SPOUT 37433
-#define SPELL_SPOUT_ANIM 42835
-#define SPELL_SPOUT_BREATH 37431
-#define SPELL_KNOCKBACK 19813
-#define SPELL_GEYSER 37478
-#define SPELL_WHIRL 37660
-#define SPELL_WATERBOLT 37138
-#define SPELL_SUBMERGE 37550
-#define SPELL_EMERGE 20568
+enum Spells
+{
+ SPELL_SPOUT = 37433,
+ SPELL_SPOUT_ANIM = 42835,
+ SPELL_SPOUT_BREATH = 37431,
+ SPELL_KNOCKBACK = 19813,
+ SPELL_GEYSER = 37478,
+ SPELL_WHIRL = 37660,
+ SPELL_WATERBOLT = 37138,
+ SPELL_SUBMERGE = 37550,
+ SPELL_EMERGE = 20568,
+
+
+ // Ambusher spells
+ SPELL_SPREAD_SHOT = 37790,
+ SPELL_SHOOT = 37770,
+ // Guardian spells
+ SPELL_ARCINGSMASH = 38761, // Wrong SpellId. Can't find the right one.
+ SPELL_HAMSTRING = 26211
+};
+
+enum Creatures
+{
+ NPC_COILFANG_GUARDIAN = 21873,
+ NPC_COILFANG_AMBUSHER = 21865
+};
#define EMOTE_SPOUT "The Lurker Below takes a deep breath."
#define SPOUT_DIST 100
-#define MOB_COILFANG_GUARDIAN 21873
-#define MOB_COILFANG_AMBUSHER 21865
-
-//Ambusher spells
-#define SPELL_SPREAD_SHOT 37790
-#define SPELL_SHOOT 37770
-
-//Guardian spells
-#define SPELL_ARCINGSMASH 38761 // Wrong SpellId. Can't find the right one.
-#define SPELL_HAMSTRING 26211
-
float AddPos[9][3] =
{
// MOVE_AMBUSHER_1 X, Y, Z
@@ -73,9 +79,9 @@ class boss_the_lurker_below : public CreatureScript
public:
boss_the_lurker_below() : CreatureScript("boss_the_lurker_below") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_the_lurker_belowAI (creature);
+ return new boss_the_lurker_belowAI(creature);
}
struct boss_the_lurker_belowAI : public ScriptedAI
@@ -110,9 +116,10 @@ public:
return false;
return true;
}
- void Reset()
+ void Reset() OVERRIDE
{
- me->AddUnitMovementFlag(MOVEMENTFLAG_SWIMMING | MOVEMENTFLAG_DISABLE_GRAVITY);
+ me->SetSwim(true);
+ me->SetDisableGravity(true);
SpoutAnimTimer = 1000;
RotTimer = 0;
WaterboltTimer = 15000; // give time to get in range when fight starts
@@ -142,7 +149,7 @@ public:
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
{
@@ -153,17 +160,18 @@ public:
Summons.DespawnAll();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (instance)
instance->SetData(DATA_THELURKERBELOWEVENT, IN_PROGRESS);
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (!CanStartEvent) // boss is invisible, don't attack
return;
- if (!me->getVictim() && who->IsValidAttackTarget(me))
+ if (!me->GetVictim() && who->IsValidAttackTarget(me))
{
float attackRadius = me->GetAttackDistance(who);
if (me->IsWithinDistInMap(who, attackRadius))
@@ -171,13 +179,13 @@ public:
}
}
- void MovementInform(uint32 type, uint32 /*id*/)
+ void MovementInform(uint32 type, uint32 /*id*/) OVERRIDE
{
if (type == ROTATE_MOTION_TYPE)
me->SetReactState(REACT_AGGRESSIVE);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!CanStartEvent) // boss is invisible, don't attack
{
@@ -216,7 +224,7 @@ public:
if (me->getThreatManager().getThreatList().empty()) // check if should evade
{
- if (me->isInCombat())
+ if (me->IsInCombat())
EnterEvadeMode();
return;
}
@@ -257,7 +265,7 @@ public:
{
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
{
- if (me->IsWithinMeleeRange(i->getSource()))
+ if (me->IsWithinMeleeRange(i->GetSource()))
InRange = true;
}
}
@@ -272,8 +280,8 @@ public:
Map::PlayerList const &PlayerList = map->GetPlayers();
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
{
- if (i->getSource() && i->getSource()->isAlive() && me->HasInArc(float(diff/20000*M_PI*2), i->getSource()) && me->IsWithinDist(i->getSource(), SPOUT_DIST) && !i->getSource()->IsInWater())
- DoCast(i->getSource(), SPELL_SPOUT, true); // only knock back players in arc, in 100yards, not in water
+ if (i->GetSource() && i->GetSource()->IsAlive() && me->HasInArc(float(diff/20000*M_PI*2), i->GetSource()) && me->IsWithinDist(i->GetSource(), SPOUT_DIST) && !i->GetSource()->IsInWater())
+ DoCast(i->GetSource(), SPELL_SPOUT, true); // only knock back players in arc, in 100yards, not in water
}
}
@@ -293,8 +301,8 @@ public:
if (GeyserTimer <= diff)
{
Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1);
- if (!target && me->getVictim())
- target = me->getVictim();
+ if (!target && me->GetVictim())
+ target = me->GetVictim();
if (target)
DoCast(target, SPELL_GEYSER, true);
GeyserTimer = rand()%5000 + 15000;
@@ -305,8 +313,8 @@ public:
if (WaterboltTimer <= diff)
{
Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0);
- if (!target && me->getVictim())
- target = me->getVictim();
+ if (!target && me->GetVictim())
+ target = me->GetVictim();
if (target)
DoCast(target, SPELL_WATERBOLT, true);
WaterboltTimer = 3000;
@@ -341,7 +349,7 @@ public:
return;
}
- if (!me->isInCombat())
+ if (!me->IsInCombat())
DoZoneInCombat();
if (!Spawned)
@@ -349,7 +357,7 @@ public:
me->SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
// spawn adds
for (uint8 i = 0; i < 9; ++i)
- if (Creature* summoned = me->SummonCreature(i < 6 ? MOB_COILFANG_AMBUSHER : MOB_COILFANG_GUARDIAN, AddPos[i][0], AddPos[i][1], AddPos[i][2], 0, TEMPSUMMON_CORPSE_DESPAWN, 0))
+ if (Creature* summoned = me->SummonCreature(i < 6 ? NPC_COILFANG_AMBUSHER : NPC_COILFANG_GUARDIAN, AddPos[i][0], AddPos[i][1], AddPos[i][2], 0, TEMPSUMMON_CORPSE_DESPAWN, 0))
Summons.Summon(summoned);
Spawned = true;
}
@@ -358,19 +366,19 @@ public:
};
};
-class mob_coilfang_ambusher : public CreatureScript
+class npc_coilfang_ambusher : public CreatureScript
{
public:
- mob_coilfang_ambusher() : CreatureScript("mob_coilfang_ambusher") { }
+ npc_coilfang_ambusher() : CreatureScript("npc_coilfang_ambusher") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_coilfang_ambusherAI (creature);
+ return new npc_coilfang_ambusherAI(creature);
}
- struct mob_coilfang_ambusherAI : public ScriptedAI
+ struct npc_coilfang_ambusherAI : public ScriptedAI
{
- mob_coilfang_ambusherAI(Creature* creature) : ScriptedAI(creature)
+ npc_coilfang_ambusherAI(Creature* creature) : ScriptedAI(creature)
{
SetCombatMovement(false);
}
@@ -378,27 +386,28 @@ public:
uint32 MultiShotTimer;
uint32 ShootBowTimer;
- void Reset()
+ void Reset() OVERRIDE
{
MultiShotTimer = 10000;
ShootBowTimer = 4000;
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
- if (!who || me->getVictim())
+ if (!who || me->GetVictim())
return;
if (who->isInAccessiblePlaceFor(me) && me->IsValidAttackTarget(who) && me->IsWithinDistInMap(who, 45))
AttackStart(who);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (MultiShotTimer <= diff)
{
- if (me->getVictim())
- DoCast(me->getVictim(), SPELL_SPREAD_SHOT, true);
+ if (me->GetVictim())
+ DoCastVictim(SPELL_SPREAD_SHOT, true);
MultiShotTimer = 10000+rand()%10000;
ShootBowTimer += 1500; // add global cooldown
@@ -422,7 +431,7 @@ class go_strange_pool : public GameObjectScript
public:
go_strange_pool() : GameObjectScript("go_strange_pool") {}
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
// 25%
if (InstanceScript* instanceScript = go->GetInstanceScript())
@@ -443,6 +452,6 @@ class go_strange_pool : public GameObjectScript
void AddSC_boss_the_lurker_below()
{
new boss_the_lurker_below();
- new mob_coilfang_ambusher();
+ new npc_coilfang_ambusher();
new go_strange_pool();
}
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp
index 592746742f5..e0469dbfbfb 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp
@@ -27,7 +27,7 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "serpent_shrine.h"
-enum eEnums
+enum Yells
{
// Yell
SAY_AGGRO = 0,
@@ -38,8 +38,11 @@ enum eEnums
// Emotes
EMOTE_WATERY_GRAVE = 5,
EMOTE_EARTHQUAKE = 6,
- EMOTE_WATERY_GLOBULES = 7,
- // Spells
+ EMOTE_WATERY_GLOBULES = 7
+};
+
+enum Spells
+{
SPELL_TIDAL_WAVE = 37730,
SPELL_WATERY_GRAVE = 38049,
SPELL_EARTHQUAKE = 37764,
@@ -54,6 +57,13 @@ enum eEnums
SPELL_SUMMON_WATER_GLOBULE_2 = 37858,
SPELL_SUMMON_WATER_GLOBULE_3 = 37860,
SPELL_SUMMON_WATER_GLOBULE_4 = 37861,
+
+ // Water Globule
+ SPELL_GLOBULE_EXPLOSION = 37871
+};
+
+enum Creatures
+{
// Creatures
NPC_WATER_GLOBULE = 21913,
NPC_TIDEWALKER_LURKER = 21920
@@ -79,9 +89,9 @@ class boss_morogrim_tidewalker : public CreatureScript
public:
boss_morogrim_tidewalker() : CreatureScript("boss_morogrim_tidewalker") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_morogrim_tidewalkerAI (creature);
+ return new boss_morogrim_tidewalkerAI(creature);
}
struct boss_morogrim_tidewalkerAI : public ScriptedAI
@@ -106,7 +116,7 @@ public:
bool Earthquake;
bool Phase2;
- void Reset()
+ void Reset() OVERRIDE
{
TidalWave_Timer = 10000;
WateryGrave_Timer = 30000;
@@ -132,12 +142,12 @@ public:
instance->SetData(DATA_MOROGRIMTIDEWALKEREVENT, IN_PROGRESS);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -145,7 +155,7 @@ public:
instance->SetData(DATA_MOROGRIMTIDEWALKEREVENT, DONE);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
PlayerList = &me->GetMap()->GetPlayers();
Playercount = PlayerList->getSize();
@@ -163,7 +173,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -174,7 +184,7 @@ public:
{
if (!Earthquake)
{
- DoCast(me->getVictim(), SPELL_EARTHQUAKE);
+ DoCastVictim(SPELL_EARTHQUAKE);
Earthquake = true;
Earthquake_Timer = 10000;
}
@@ -197,7 +207,7 @@ public:
//TidalWave_Timer
if (TidalWave_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_TIDAL_WAVE);
+ DoCastVictim(SPELL_TIDAL_WAVE);
TidalWave_Timer = 20000;
} else TidalWave_Timer -= diff;
@@ -277,26 +287,23 @@ public:
};
-//Water Globule AI
-#define SPELL_GLOBULE_EXPLOSION 37871
-
-class mob_water_globule : public CreatureScript
+class npc_water_globule : public CreatureScript
{
public:
- mob_water_globule() : CreatureScript("mob_water_globule") { }
+ npc_water_globule() : CreatureScript("npc_water_globule") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_water_globuleAI (creature);
+ return new npc_water_globuleAI(creature);
}
- struct mob_water_globuleAI : public ScriptedAI
+ struct npc_water_globuleAI : public ScriptedAI
{
- mob_water_globuleAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_water_globuleAI(Creature* creature) : ScriptedAI(creature) {}
uint32 Check_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
Check_Timer = 1000;
@@ -305,14 +312,15 @@ public:
me->setFaction(14);
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+
+ void MoveInLineOfSight(Unit* who) OVERRIDE
- void MoveInLineOfSight(Unit* who)
{
- if (!who || me->getVictim())
+ if (!who || me->GetVictim())
return;
- if (me->canCreatureAttack(who))
+ if (me->CanCreatureAttack(who))
{
//no attack radius check - it attacks the first target that moves in his los
//who->RemoveSpellsCausingAura(SPELL_AURA_MOD_STEALTH);
@@ -320,7 +328,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -328,9 +336,9 @@ public:
if (Check_Timer <= diff)
{
- if (me->IsWithinDistInMap(me->getVictim(), 5))
+ if (me->IsWithinDistInMap(me->GetVictim(), 5))
{
- DoCast(me->getVictim(), SPELL_GLOBULE_EXPLOSION);
+ DoCastVictim(SPELL_GLOBULE_EXPLOSION);
//despawn
me->DespawnOrUnsummon();
@@ -348,5 +356,5 @@ public:
void AddSC_boss_morogrim_tidewalker()
{
new boss_morogrim_tidewalker();
- new mob_water_globule();
+ new npc_water_globule();
}
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/instance_serpent_shrine.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/instance_serpent_shrine.cpp
index 207d388f41f..79e89740b2d 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/instance_serpent_shrine.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/instance_serpent_shrine.cpp
@@ -30,12 +30,21 @@ EndScriptData */
#include "TemporarySummon.h"
#define MAX_ENCOUNTER 6
-#define SPELL_SCALDINGWATER 37284
-#define MOB_COILFANG_FRENZY 21508
-#define TRASHMOB_COILFANG_PRIESTESS 21220 //6*2
-#define TRASHMOB_COILFANG_SHATTERER 21301 //6*3
-#define MIN_KILLS 30
+enum Misc
+{
+ // Spells
+ SPELL_SCALDINGWATER = 37284,
+
+ // Creatures
+ NPC_COILFANG_FRENZY = 21508,
+ NPC_COILFANG_PRIESTESS = 21220,
+ NPC_COILFANG_SHATTERER = 21301,
+
+ // Misc
+ MIN_KILLS = 30
+};
+
//NOTE: there are 6 platforms
//there should be 3 shatterers and 2 priestess on all platforms, total of 30 elites, else it won't work!
@@ -55,7 +64,7 @@ class go_bridge_console : public GameObjectScript
public:
go_bridge_console() : GameObjectScript("go_bridge_console") { }
- bool OnGossipHello(Player* /*player*/, GameObject* go)
+ bool OnGossipHello(Player* /*player*/, GameObject* go) OVERRIDE
{
InstanceScript* instance = go->GetInstanceScript();
@@ -137,9 +146,9 @@ class instance_serpent_shrine : public InstanceMapScript
return;
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
{
- if (Player* player = i->getSource())
+ if (Player* player = i->GetSource())
{
- if (player->isAlive() && /*i->getSource()->GetPositionZ() <= -21.434931f*/player->IsInWater())
+ if (player->IsAlive() && /*i->GetSource()->GetPositionZ() <= -21.434931f*/player->IsInWater())
{
if (Water == WATERSTATE_SCALDING)
{
@@ -153,10 +162,11 @@ class instance_serpent_shrine : public InstanceMapScript
//spawn frenzy
if (DoSpawnFrenzy)
{
- if (Creature* frenzy = player->SummonCreature(MOB_COILFANG_FRENZY, player->GetPositionX(), player->GetPositionY(), player->GetPositionZ(), player->GetOrientation(), TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 2000))
+ if (Creature* frenzy = player->SummonCreature(NPC_COILFANG_FRENZY, player->GetPositionX(), player->GetPositionY(), player->GetPositionZ(), player->GetOrientation(), TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 2000))
{
frenzy->Attack(player, false);
- frenzy->AddUnitMovementFlag(MOVEMENTFLAG_SWIMMING | MOVEMENTFLAG_DISABLE_GRAVITY);
+ frenzy->SetSwim(true);
+ frenzy->SetDisableGravity(true);
}
DoSpawnFrenzy = false;
}
@@ -236,7 +246,7 @@ class instance_serpent_shrine : public InstanceMapScript
}
}
- void SetData64(uint32 type, uint64 data)
+ void SetData64(uint32 type, uint64 data) OVERRIDE
{
if (type == DATA_KARATHRESSEVENT_STARTER)
KarathressEvent_Starter = data;
@@ -244,7 +254,7 @@ class instance_serpent_shrine : public InstanceMapScript
LeotherasEventStarter = data;
}
- uint64 GetData64(uint32 identifier) const
+ uint64 GetData64(uint32 identifier) const OVERRIDE
{
switch (identifier)
{
@@ -272,7 +282,7 @@ class instance_serpent_shrine : public InstanceMapScript
return 0;
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
switch (type)
{
@@ -342,7 +352,7 @@ class instance_serpent_shrine : public InstanceMapScript
SaveToDB();
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -437,7 +447,7 @@ class instance_serpent_shrine : public InstanceMapScript
bool DoSpawnFrenzy;
};
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_serpentshrine_cavern_InstanceMapScript(map);
}
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_hydromancer_thespia.cpp b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_hydromancer_thespia.cpp
index c9d394f6f2d..57cca36b854 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_hydromancer_thespia.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_hydromancer_thespia.cpp
@@ -25,7 +25,7 @@ EndScriptData */
/* ContentData
boss_hydromancer_thespia
-mob_coilfang_waterelemental
+npc_coilfang_waterelemental
EndContentData */
#include "ScriptMgr.h"
@@ -52,9 +52,9 @@ class boss_hydromancer_thespia : public CreatureScript
public:
boss_hydromancer_thespia() : CreatureScript("boss_hydromancer_thespia") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_thespiaAI (creature);
+ return new boss_thespiaAI(creature);
}
struct boss_thespiaAI : public ScriptedAI
@@ -70,7 +70,7 @@ public:
uint32 LungBurst_Timer;
uint32 EnvelopingWinds_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
LightningCloud_Timer = 15000;
LungBurst_Timer = 7000;
@@ -80,7 +80,7 @@ public:
instance->SetData(TYPE_HYDROMANCER_THESPIA, NOT_STARTED);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEAD);
@@ -88,12 +88,12 @@ public:
instance->SetData(TYPE_HYDROMANCER_THESPIA, DONE);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
@@ -101,7 +101,7 @@ public:
instance->SetData(TYPE_HYDROMANCER_THESPIA, IN_PROGRESS);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -147,30 +147,30 @@ public:
};
-class mob_coilfang_waterelemental : public CreatureScript
+class npc_coilfang_waterelemental : public CreatureScript
{
public:
- mob_coilfang_waterelemental() : CreatureScript("mob_coilfang_waterelemental") { }
+ npc_coilfang_waterelemental() : CreatureScript("npc_coilfang_waterelemental") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_coilfang_waterelementalAI (creature);
+ return new npc_coilfang_waterelementalAI(creature);
}
- struct mob_coilfang_waterelementalAI : public ScriptedAI
+ struct npc_coilfang_waterelementalAI : public ScriptedAI
{
- mob_coilfang_waterelementalAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_coilfang_waterelementalAI(Creature* creature) : ScriptedAI(creature) {}
uint32 WaterBoltVolley_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
WaterBoltVolley_Timer = 3000+rand()%3000;
}
- void EnterCombat(Unit* /*who*/) { }
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -190,5 +190,5 @@ public:
void AddSC_boss_hydromancer_thespia()
{
new boss_hydromancer_thespia();
- new mob_coilfang_waterelemental();
+ new npc_coilfang_waterelemental();
}
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp
index 12e4e3a496f..fa2fac2b0cb 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp
@@ -25,25 +25,35 @@ EndScriptData */
/* ContentData
boss_mekgineer_steamrigger
-mob_steamrigger_mechanic
+npc_steamrigger_mechanic
EndContentData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "steam_vault.h"
-enum MekgineerSteamrigger
+enum Yells
{
SAY_MECHANICS = 0,
SAY_AGGRO = 1,
SAY_SLAY = 2,
- SAY_DEATH = 3,
+ SAY_DEATH = 3
+};
+enum Spells
+{
SPELL_SUPER_SHRINK_RAY = 31485,
SPELL_SAW_BLADE = 31486,
SPELL_ELECTRIFIED_NET = 35107,
- ENTRY_STREAMRIGGER_MECHANIC = 17951
+ SPELL_DISPEL_MAGIC = 17201,
+ SPELL_REPAIR = 31532,
+ H_SPELL_REPAIR = 37936
+};
+
+enum Creatures
+{
+ NPC_STREAMRIGGER_MECHANIC = 17951
};
class boss_mekgineer_steamrigger : public CreatureScript
@@ -51,9 +61,9 @@ class boss_mekgineer_steamrigger : public CreatureScript
public:
boss_mekgineer_steamrigger() : CreatureScript("boss_mekgineer_steamrigger") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_mekgineer_steamriggerAI (creature);
+ return new boss_mekgineer_steamriggerAI(creature);
}
struct boss_mekgineer_steamriggerAI : public ScriptedAI
@@ -72,7 +82,7 @@ public:
bool Summon50;
bool Summon25;
- void Reset()
+ void Reset() OVERRIDE
{
Shrink_Timer = 20000;
Saw_Blade_Timer = 15000;
@@ -86,7 +96,7 @@ public:
instance->SetData(TYPE_MEKGINEER_STEAMRIGGER, NOT_STARTED);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -94,12 +104,12 @@ public:
instance->SetData(TYPE_MEKGINEER_STEAMRIGGER, DONE);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
@@ -112,24 +122,24 @@ public:
{
Talk(SAY_MECHANICS);
- DoSpawnCreature(ENTRY_STREAMRIGGER_MECHANIC, 5, 5, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 240000);
- DoSpawnCreature(ENTRY_STREAMRIGGER_MECHANIC, -5, 5, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 240000);
- DoSpawnCreature(ENTRY_STREAMRIGGER_MECHANIC, -5, -5, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 240000);
+ DoSpawnCreature(NPC_STREAMRIGGER_MECHANIC, 5, 5, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 240000);
+ DoSpawnCreature(NPC_STREAMRIGGER_MECHANIC, -5, 5, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 240000);
+ DoSpawnCreature(NPC_STREAMRIGGER_MECHANIC, -5, -5, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 240000);
if (rand()%2)
- DoSpawnCreature(ENTRY_STREAMRIGGER_MECHANIC, 5, -7, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 240000);
+ DoSpawnCreature(NPC_STREAMRIGGER_MECHANIC, 5, -7, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 240000);
if (rand()%2)
- DoSpawnCreature(ENTRY_STREAMRIGGER_MECHANIC, 7, -5, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 240000);
+ DoSpawnCreature(NPC_STREAMRIGGER_MECHANIC, 7, -5, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 240000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
if (Shrink_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_SUPER_SHRINK_RAY);
+ DoCastVictim(SPELL_SUPER_SHRINK_RAY);
Shrink_Timer = 20000;
} else Shrink_Timer -= diff;
@@ -138,14 +148,14 @@ public:
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1))
DoCast(target, SPELL_SAW_BLADE);
else
- DoCast(me->getVictim(), SPELL_SAW_BLADE);
+ DoCastVictim(SPELL_SAW_BLADE);
Saw_Blade_Timer = 15000;
} else Saw_Blade_Timer -= diff;
if (Electrified_Net_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_ELECTRIFIED_NET);
+ DoCastVictim(SPELL_ELECTRIFIED_NET);
Electrified_Net_Timer = 10000;
}
else Electrified_Net_Timer -= diff;
@@ -183,26 +193,22 @@ public:
};
-#define SPELL_DISPEL_MAGIC 17201
-#define SPELL_REPAIR 31532
-#define H_SPELL_REPAIR 37936
-
#define MAX_REPAIR_RANGE (13.0f) //we should be at least at this range for repair
#define MIN_REPAIR_RANGE (7.0f) //we can stop movement at this range to repair but not required
-class mob_steamrigger_mechanic : public CreatureScript
+class npc_steamrigger_mechanic : public CreatureScript
{
public:
- mob_steamrigger_mechanic() : CreatureScript("mob_steamrigger_mechanic") { }
+ npc_steamrigger_mechanic() : CreatureScript("npc_steamrigger_mechanic") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_steamrigger_mechanicAI (creature);
+ return new npc_steamrigger_mechanicAI(creature);
}
- struct mob_steamrigger_mechanicAI : public ScriptedAI
+ struct npc_steamrigger_mechanicAI : public ScriptedAI
{
- mob_steamrigger_mechanicAI(Creature* creature) : ScriptedAI(creature)
+ npc_steamrigger_mechanicAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -211,19 +217,20 @@ public:
uint32 Repair_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
Repair_Timer = 2000;
}
- void MoveInLineOfSight(Unit* /*who*/)
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE
+
{
//react only if attacked
}
- void EnterCombat(Unit* /*who*/) { }
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (Repair_Timer <= diff)
{
@@ -264,5 +271,5 @@ public:
void AddSC_boss_mekgineer_steamrigger()
{
new boss_mekgineer_steamrigger();
- new mob_steamrigger_mechanic();
+ new npc_steamrigger_mechanic();
}
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp
index 914539b27c9..4314b43e0e8 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp
@@ -44,26 +44,26 @@ enum NagaDistiller
SPELL_WARLORDS_RAGE_PROC = 36453
};
-class mob_naga_distiller : public CreatureScript
+class npc_naga_distiller : public CreatureScript
{
public:
- mob_naga_distiller() : CreatureScript("mob_naga_distiller") { }
+ npc_naga_distiller() : CreatureScript("npc_naga_distiller") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_naga_distillerAI (creature);
+ return new npc_naga_distillerAI(creature);
}
- struct mob_naga_distillerAI : public ScriptedAI
+ struct npc_naga_distillerAI : public ScriptedAI
{
- mob_naga_distillerAI(Creature* creature) : ScriptedAI(creature)
+ npc_naga_distillerAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
@@ -79,7 +79,7 @@ public:
}
}
- void EnterCombat(Unit* /*who*/) { }
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
void StartRageGen(Unit* /*caster*/)
{
@@ -92,7 +92,7 @@ public:
instance->SetData(TYPE_DISTILLER, IN_PROGRESS);
}
- void DamageTaken(Unit* /*done_by*/, uint32 &damage)
+ void DamageTaken(Unit* /*done_by*/, uint32 &damage) OVERRIDE
{
if (me->GetHealth() <= damage)
if (instance)
@@ -107,9 +107,9 @@ class boss_warlord_kalithresh : public CreatureScript
public:
boss_warlord_kalithresh() : CreatureScript("boss_warlord_kalithresh") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_warlord_kalithreshAI (creature);
+ return new boss_warlord_kalithreshAI(creature);
}
struct boss_warlord_kalithreshAI : public ScriptedAI
@@ -126,7 +126,7 @@ public:
uint32 Rage_Timer;
bool CanRage;
- void Reset()
+ void Reset() OVERRIDE
{
Reflection_Timer = 10000;
Impale_Timer = 7000+rand()%7000;
@@ -137,7 +137,7 @@ public:
instance->SetData(TYPE_WARLORD_KALITHRESH, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
@@ -145,12 +145,12 @@ public:
instance->SetData(TYPE_WARLORD_KALITHRESH, IN_PROGRESS);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void SpellHit(Unit* /*caster*/, const SpellInfo* spell)
+ void SpellHit(Unit* /*caster*/, const SpellInfo* spell) OVERRIDE
{
//hack :(
if (spell->Id == SPELL_WARLORDS_RAGE_PROC)
@@ -159,7 +159,7 @@ public:
me->RemoveAurasDueToSpell(SPELL_WARLORDS_RAGE_PROC);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -167,7 +167,7 @@ public:
instance->SetData(TYPE_WARLORD_KALITHRESH, DONE);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -178,7 +178,7 @@ public:
{
Talk(SAY_REGEN);
DoCast(me, SPELL_WARLORDS_RAGE);
- CAST_AI(mob_naga_distiller::mob_naga_distillerAI, distiller->AI())->StartRageGen(me);
+ CAST_AI(npc_naga_distiller::npc_naga_distillerAI, distiller->AI())->StartRageGen(me);
}
Rage_Timer = 3000+rand()%15000;
} else Rage_Timer -= diff;
@@ -207,6 +207,6 @@ public:
void AddSC_boss_warlord_kalithresh()
{
- new mob_naga_distiller();
+ new npc_naga_distiller();
new boss_warlord_kalithresh();
}
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/steam_vault.h b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/steam_vault.h
index ea89ac3c611..275a21f5757 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/steam_vault.h
+++ b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/steam_vault.h
@@ -19,13 +19,17 @@
#ifndef DEF_STEAM_VAULT_H
#define DEF_STEAM_VAULT_H
-#define TYPE_HYDROMANCER_THESPIA 1
-#define TYPE_MEKGINEER_STEAMRIGGER 2
-#define TYPE_WARLORD_KALITHRESH 3
-#define TYPE_DISTILLER 4
+enum DataTypes
+{
+ TYPE_HYDROMANCER_THESPIA = 1,
+ TYPE_MEKGINEER_STEAMRIGGER = 2,
+ TYPE_WARLORD_KALITHRESH = 3,
+ TYPE_DISTILLER = 4,
+
+ DATA_MEKGINEERSTEAMRIGGER = 5,
+ DATA_KALITRESH = 6,
+ DATA_THESPIA = 7
+};
-#define DATA_MEKGINEERSTEAMRIGGER 5
-#define DATA_KALITRESH 6
-#define DATA_THESPIA 7
#endif
diff --git a/src/server/scripts/Outland/CoilfangReservoir/underbog/boss_hungarfen.cpp b/src/server/scripts/Outland/CoilfangReservoir/underbog/boss_hungarfen.cpp
index 7e2c13483bd..0db48d83ebb 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/underbog/boss_hungarfen.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/underbog/boss_hungarfen.cpp
@@ -29,7 +29,11 @@ EndScriptData */
enum Spells
{
SPELL_FOUL_SPORES = 31673,
- SPELL_ACID_GEYSER = 38739
+ SPELL_ACID_GEYSER = 38739,
+
+ SPELL_SPORE_CLOUD = 34168,
+ SPELL_PUTRID_MUSHROOM = 31690,
+ SPELL_GROW = 31698
};
class boss_hungarfen : public CreatureScript
@@ -37,9 +41,9 @@ class boss_hungarfen : public CreatureScript
public:
boss_hungarfen() : CreatureScript("boss_hungarfen") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_hungarfenAI (creature);
+ return new boss_hungarfenAI(creature);
}
struct boss_hungarfenAI : public ScriptedAI
@@ -52,18 +56,18 @@ public:
uint32 Mushroom_Timer;
uint32 AcidGeyser_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
Root = false;
Mushroom_Timer = 5000; // 1 mushroom after 5s, then one per 10s. This should be different in heroic mode
AcidGeyser_Timer = 10000;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -100,29 +104,25 @@ public:
};
-#define SPELL_SPORE_CLOUD 34168
-#define SPELL_PUTRID_MUSHROOM 31690
-#define SPELL_GROW 31698
-
-class mob_underbog_mushroom : public CreatureScript
+class npc_underbog_mushroom : public CreatureScript
{
public:
- mob_underbog_mushroom() : CreatureScript("mob_underbog_mushroom") { }
+ npc_underbog_mushroom() : CreatureScript("npc_underbog_mushroom") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_underbog_mushroomAI (creature);
+ return new npc_underbog_mushroomAI(creature);
}
- struct mob_underbog_mushroomAI : public ScriptedAI
+ struct npc_underbog_mushroomAI : public ScriptedAI
{
- mob_underbog_mushroomAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_underbog_mushroomAI(Creature* creature) : ScriptedAI(creature) {}
bool Stop;
uint32 Grow_Timer;
uint32 Shrink_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
Stop = false;
Grow_Timer = 0;
@@ -132,13 +132,14 @@ public:
DoCast(me, SPELL_SPORE_CLOUD, true);
}
- void MoveInLineOfSight(Unit* /*who*/) {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
+
- void AttackStart(Unit* /*who*/) {}
+ void AttackStart(Unit* /*who*/) OVERRIDE {}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (Stop)
return;
@@ -162,5 +163,5 @@ public:
void AddSC_boss_hungarfen()
{
new boss_hungarfen();
- new mob_underbog_mushroom();
+ new npc_underbog_mushroom();
}
diff --git a/src/server/scripts/Outland/CoilfangReservoir/underbog/boss_the_black_stalker.cpp b/src/server/scripts/Outland/CoilfangReservoir/underbog/boss_the_black_stalker.cpp
index 22f406c6c5b..c22dedd269e 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/underbog/boss_the_black_stalker.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/underbog/boss_the_black_stalker.cpp
@@ -47,9 +47,9 @@ class boss_the_black_stalker : public CreatureScript
public:
boss_the_black_stalker() : CreatureScript("boss_the_black_stalker") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_the_black_stalkerAI (creature);
+ return new boss_the_black_stalkerAI(creature);
}
struct boss_the_black_stalkerAI : public ScriptedAI
@@ -68,7 +68,7 @@ public:
uint32 check_Timer;
std::list<uint64> Striders;
- void Reset()
+ void Reset() OVERRIDE
{
Levitate_Timer = 12000;
ChainLightning_Timer = 6000;
@@ -80,9 +80,9 @@ public:
Striders.clear();
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
if (summon && summon->GetEntry() == ENTRY_SPORE_STRIDER)
{
@@ -90,19 +90,19 @@ public:
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1))
summon->AI()->AttackStart(target);
else
- if (me->getVictim())
- summon->AI()->AttackStart(me->getVictim());
+ if (me->GetVictim())
+ summon->AI()->AttackStart(me->GetVictim());
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
for (std::list<uint64>::const_iterator i = Striders.begin(); i != Striders.end(); ++i)
if (Creature* strider = Unit::GetCreature(*me, *i))
strider->DisappearAndDie();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
diff --git a/src/server/scripts/Outland/GruulsLair/boss_gruul.cpp b/src/server/scripts/Outland/GruulsLair/boss_gruul.cpp
index 6c3e21aa5c0..31f854803bc 100644
--- a/src/server/scripts/Outland/GruulsLair/boss_gruul.cpp
+++ b/src/server/scripts/Outland/GruulsLair/boss_gruul.cpp
@@ -28,7 +28,7 @@ EndScriptData */
#include "SpellScript.h"
#include "gruuls_lair.h"
-enum eEnums
+enum Yells
{
SAY_AGGRO = 0,
SAY_SLAM = 1,
@@ -36,8 +36,11 @@ enum eEnums
SAY_SLAY = 3,
SAY_DEATH = 4,
- EMOTE_GROW = 5,
+ EMOTE_GROW = 5
+};
+enum Spells
+{
SPELL_GROWTH = 36300,
SPELL_CAVE_IN = 36240,
SPELL_GROUND_SLAM = 33525, //AoE Ground Slam applying Ground Slam to everyone with a script effect (most likely the knock back, we can code it to a set knockback)
@@ -57,9 +60,9 @@ class boss_gruul : public CreatureScript
public:
boss_gruul() : CreatureScript("boss_gruul") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_gruulAI (creature);
+ return new boss_gruulAI(creature);
}
struct boss_gruulAI : public ScriptedAI
@@ -80,7 +83,7 @@ public:
bool m_bPerformingGroundSlam;
- void Reset()
+ void Reset() OVERRIDE
{
m_uiGrowth_Timer= 30000;
m_uiCaveIn_Timer= 27000;
@@ -94,7 +97,7 @@ public:
instance->SetData(DATA_GRUULEVENT, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
@@ -102,12 +105,12 @@ public:
instance->SetData(DATA_GRUULEVENT, IN_PROGRESS);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -118,7 +121,7 @@ public:
}
}
- void SpellHitTarget(Unit* target, const SpellInfo* pSpell)
+ void SpellHitTarget(Unit* target, const SpellInfo* pSpell) OVERRIDE
{
//This to emulate effect1 (77) of SPELL_GROUND_SLAM, knock back to any direction
//It's initially wrong, since this will cause fall damage, which is by comments, not intended.
@@ -151,14 +154,14 @@ public:
//and correct movement, if not already
if (me->GetMotionMaster()->GetCurrentMovementGeneratorType() != CHASE_MOTION_TYPE)
{
- if (me->getVictim())
- me->GetMotionMaster()->MoveChase(me->getVictim());
+ if (me->GetVictim())
+ me->GetMotionMaster()->MoveChase(me->GetVictim());
}
}
}
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -197,10 +200,10 @@ public:
{
Unit* target = SelectTarget(SELECT_TARGET_TOPAGGRO, 1);
- if (target && me->IsWithinMeleeRange(me->getVictim()))
+ if (target && me->IsWithinMeleeRange(me->GetVictim()))
DoCast(target, SPELL_HURTFUL_STRIKE);
else
- DoCast(me->getVictim(), SPELL_HURTFUL_STRIKE);
+ DoCastVictim(SPELL_HURTFUL_STRIKE);
m_uiHurtfulStrike_Timer= 8000;
}
@@ -210,7 +213,7 @@ public:
// Reverberation
if (m_uiReverberation_Timer <= uiDiff)
{
- DoCast(me->getVictim(), SPELL_REVERBERATION, true);
+ DoCastVictim(SPELL_REVERBERATION, true);
m_uiReverberation_Timer = urand(15000, 25000);
}
else
@@ -260,7 +263,7 @@ class spell_gruul_shatter : public SpellScriptLoader
{
PrepareSpellScript(spell_gruul_shatter_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_STONED))
return false;
@@ -278,13 +281,13 @@ class spell_gruul_shatter : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_gruul_shatter_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_gruul_shatter_SpellScript();
}
@@ -313,13 +316,13 @@ class spell_gruul_shatter_effect : public SpellScriptLoader
SetHitDamage(int32(GetHitDamage() * ((radius - distance) / radius)));
}
- void Register()
+ void Register() OVERRIDE
{
OnHit += SpellHitFn(spell_gruul_shatter_effect_SpellScript::CalculateDamage);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_gruul_shatter_effect_SpellScript();
}
diff --git a/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp b/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp
index 3018c18383e..d216c0b02ee 100644
--- a/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp
+++ b/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp
@@ -98,7 +98,7 @@ bool CheckAllBossDied(InstanceScript* instance, Creature* me)
if (!Maulgar || !Kiggler || !Blindeye || !Olm || !Krosh)
return false;
- if (!Maulgar->isAlive() && !Kiggler->isAlive() && !Blindeye->isAlive() && !Olm->isAlive() && !Krosh->isAlive())
+ if (!Maulgar->IsAlive() && !Kiggler->IsAlive() && !Blindeye->IsAlive() && !Olm->IsAlive() && !Krosh->IsAlive())
return true;
return false;
@@ -110,9 +110,9 @@ class boss_high_king_maulgar : public CreatureScript
public:
boss_high_king_maulgar() : CreatureScript("boss_high_king_maulgar") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_high_king_maulgarAI (creature);
+ return new boss_high_king_maulgarAI(creature);
}
struct boss_high_king_maulgarAI : public ScriptedAI
@@ -136,7 +136,7 @@ public:
uint64 Council[4];
- void Reset()
+ void Reset() OVERRIDE
{
ArcingSmash_Timer = 10000;
MightyBlow_Timer = 40000;
@@ -154,7 +154,7 @@ public:
if (Council[i])
{
creature = (Unit::GetCreature((*me), Council[i]));
- if (creature && !creature->isAlive())
+ if (creature && !creature->IsAlive())
{
creature->Respawn();
creature->AI()->EnterEvadeMode();
@@ -167,12 +167,12 @@ public:
instance->SetData(DATA_MAULGAREVENT, NOT_STARTED);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -185,7 +185,7 @@ public:
Talk(SAY_OGRE_DEATH);
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
StartEvent(who);
}
@@ -217,10 +217,10 @@ public:
DoZoneInCombat();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Only if not incombat check if the event is started
- if (!me->isInCombat() && instance && instance->GetData(DATA_MAULGAREVENT))
+ if (!me->IsInCombat() && instance && instance->GetData(DATA_MAULGAREVENT))
{
Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_MAULGAREVENT_TANK));
@@ -245,21 +245,21 @@ public:
//ArcingSmash_Timer
if (ArcingSmash_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_ARCING_SMASH);
+ DoCastVictim(SPELL_ARCING_SMASH);
ArcingSmash_Timer = 10000;
} else ArcingSmash_Timer -= diff;
//Whirlwind_Timer
if (Whirlwind_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_WHIRLWIND);
+ DoCastVictim(SPELL_WHIRLWIND);
Whirlwind_Timer = 55000;
} else Whirlwind_Timer -= diff;
//MightyBlow_Timer
if (MightyBlow_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_MIGHTY_BLOW);
+ DoCastVictim(SPELL_MIGHTY_BLOW);
MightyBlow_Timer = 30000+rand()%10000;
} else MightyBlow_Timer -= diff;
@@ -309,9 +309,9 @@ class boss_olm_the_summoner : public CreatureScript
public:
boss_olm_the_summoner() : CreatureScript("boss_olm_the_summoner") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_olm_the_summonerAI (creature);
+ return new boss_olm_the_summonerAI(creature);
}
struct boss_olm_the_summonerAI : public ScriptedAI
@@ -327,7 +327,7 @@ public:
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
DarkDecay_Timer = 10000;
Summon_Timer = 15000;
@@ -338,7 +338,7 @@ public:
instance->SetData(DATA_MAULGAREVENT, NOT_STARTED);
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (!who)
return;
@@ -353,7 +353,7 @@ public:
}
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (instance)
{
@@ -362,7 +362,7 @@ public:
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
{
@@ -377,10 +377,10 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Only if not incombat check if the event is started
- if (!me->isInCombat() && instance && instance->GetData(DATA_MAULGAREVENT))
+ if (!me->IsInCombat() && instance && instance->GetData(DATA_MAULGAREVENT))
{
Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_MAULGAREVENT_TANK));
@@ -404,7 +404,7 @@ public:
//DarkDecay_Timer
if (DarkDecay_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_DARK_DECAY);
+ DoCastVictim(SPELL_DARK_DECAY);
DarkDecay_Timer = 20000;
} else DarkDecay_Timer -= diff;
@@ -437,9 +437,9 @@ class boss_kiggler_the_crazed : public CreatureScript
public:
boss_kiggler_the_crazed() : CreatureScript("boss_kiggler_the_crazed") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_kiggler_the_crazedAI (creature);
+ return new boss_kiggler_the_crazedAI(creature);
}
struct boss_kiggler_the_crazedAI : public ScriptedAI
@@ -456,7 +456,7 @@ public:
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
GreaterPolymorph_Timer = 5000;
LightningBolt_Timer = 10000;
@@ -468,7 +468,7 @@ public:
instance->SetData(DATA_MAULGAREVENT, NOT_STARTED);
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (instance)
{
@@ -477,7 +477,7 @@ public:
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
{
@@ -492,10 +492,10 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Only if not incombat check if the event is started
- if (!me->isInCombat() && instance && instance->GetData(DATA_MAULGAREVENT))
+ if (!me->IsInCombat() && instance && instance->GetData(DATA_MAULGAREVENT))
{
Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_MAULGAREVENT_TANK));
@@ -528,21 +528,21 @@ public:
//LightningBolt_Timer
if (LightningBolt_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_LIGHTNING_BOLT);
+ DoCastVictim(SPELL_LIGHTNING_BOLT);
LightningBolt_Timer = 15000;
} else LightningBolt_Timer -= diff;
//ArcaneShock_Timer
if (ArcaneShock_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_ARCANE_SHOCK);
+ DoCastVictim(SPELL_ARCANE_SHOCK);
ArcaneShock_Timer = 20000;
} else ArcaneShock_Timer -= diff;
//ArcaneExplosion_Timer
if (ArcaneExplosion_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_ARCANE_EXPLOSION);
+ DoCastVictim(SPELL_ARCANE_EXPLOSION);
ArcaneExplosion_Timer = 30000;
} else ArcaneExplosion_Timer -= diff;
@@ -558,9 +558,9 @@ class boss_blindeye_the_seer : public CreatureScript
public:
boss_blindeye_the_seer() : CreatureScript("boss_blindeye_the_seer") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_blindeye_the_seerAI (creature);
+ return new boss_blindeye_the_seerAI(creature);
}
struct boss_blindeye_the_seerAI : public ScriptedAI
@@ -576,7 +576,7 @@ public:
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
GreaterPowerWordShield_Timer = 5000;
Heal_Timer = urand(25000, 40000);
@@ -587,7 +587,7 @@ public:
instance->SetData(DATA_MAULGAREVENT, NOT_STARTED);
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (instance)
{
@@ -596,7 +596,7 @@ public:
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
{
@@ -611,10 +611,10 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Only if not incombat check if the event is started
- if (!me->isInCombat() && instance && instance->GetData(DATA_MAULGAREVENT))
+ if (!me->IsInCombat() && instance && instance->GetData(DATA_MAULGAREVENT))
{
Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_MAULGAREVENT_TANK));
@@ -668,9 +668,9 @@ class boss_krosh_firehand : public CreatureScript
public:
boss_krosh_firehand() : CreatureScript("boss_krosh_firehand") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_krosh_firehandAI (creature);
+ return new boss_krosh_firehandAI(creature);
}
struct boss_krosh_firehandAI : public ScriptedAI
@@ -686,7 +686,7 @@ public:
InstanceScript* instance;
- void Reset()
+ void Reset() OVERRIDE
{
GreaterFireball_Timer = 1000;
SpellShield_Timer = 5000;
@@ -697,7 +697,7 @@ public:
instance->SetData(DATA_MAULGAREVENT, NOT_STARTED);
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (instance)
{
@@ -706,7 +706,7 @@ public:
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
{
@@ -721,10 +721,10 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Only if not incombat check if the event is started
- if (!me->isInCombat() && instance && instance->GetData(DATA_MAULGAREVENT))
+ if (!me->IsInCombat() && instance && instance->GetData(DATA_MAULGAREVENT))
{
Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_MAULGAREVENT_TANK));
@@ -746,9 +746,9 @@ public:
}
//GreaterFireball_Timer
- if (GreaterFireball_Timer < diff || me->IsWithinDist(me->getVictim(), 30))
+ if (GreaterFireball_Timer < diff || me->IsWithinDist(me->GetVictim(), 30))
{
- DoCast(me->getVictim(), SPELL_GREATER_FIREBALL);
+ DoCastVictim(SPELL_GREATER_FIREBALL);
GreaterFireball_Timer = 2000;
} else GreaterFireball_Timer -= diff;
@@ -756,7 +756,7 @@ public:
if (SpellShield_Timer <= diff)
{
me->InterruptNonMeleeSpells(false);
- DoCast(me->getVictim(), SPELL_SPELLSHIELD);
+ DoCastVictim(SPELL_SPELLSHIELD);
SpellShield_Timer = 30000;
} else SpellShield_Timer -= diff;
diff --git a/src/server/scripts/Outland/GruulsLair/gruuls_lair.h b/src/server/scripts/Outland/GruulsLair/gruuls_lair.h
index 2e9715a7ffe..69ddba8c274 100644
--- a/src/server/scripts/Outland/GruulsLair/gruuls_lair.h
+++ b/src/server/scripts/Outland/GruulsLair/gruuls_lair.h
@@ -19,16 +19,19 @@
#ifndef DEF_GRUULS_LAIR_H
#define DEF_GRUULS_LAIR_H
-#define DATA_BLINDEYETHESEER 1
-#define DATA_GRUULEVENT 2
-#define DATA_KIGGLERTHECRAZED 3
-#define DATA_KROSHFIREHAND 4
-#define DATA_MAULGAREVENT 5
-#define DATA_MAULGAREVENT_TANK 6
-#define DATA_OLMTHESUMMONER 7
-#define DATA_MAULGARDOOR 8
-#define DATA_GRUULDOOR 9
-#define DATA_MAULGAR 10
+enum DataTypes
+{
+ DATA_BLINDEYETHESEER = 1,
+ DATA_GRUULEVENT = 2,
+ DATA_KIGGLERTHECRAZED = 3,
+ DATA_KROSHFIREHAND = 4,
+ DATA_MAULGAREVENT = 5,
+ DATA_MAULGAREVENT_TANK = 6,
+ DATA_OLMTHESUMMONER = 7,
+ DATA_MAULGARDOOR = 8,
+ DATA_GRUULDOOR = 9,
+ DATA_MAULGAR = 10
+};
#define ERROR_INST_DATA "TSCR Error: Instance Data not set properly for Gruul's Lair instance (map 565). Encounters will be buggy."
#endif
diff --git a/src/server/scripts/Outland/GruulsLair/instance_gruuls_lair.cpp b/src/server/scripts/Outland/GruulsLair/instance_gruuls_lair.cpp
index e8aa6838d09..3fbdfe94c05 100644
--- a/src/server/scripts/Outland/GruulsLair/instance_gruuls_lair.cpp
+++ b/src/server/scripts/Outland/GruulsLair/instance_gruuls_lair.cpp
@@ -39,7 +39,7 @@ class instance_gruuls_lair : public InstanceMapScript
public:
instance_gruuls_lair() : InstanceMapScript("instance_gruuls_lair", 565) { }
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_gruuls_lair_InstanceMapScript(map);
}
@@ -111,13 +111,13 @@ public:
}
}
- void SetData64(uint32 type, uint64 data)
+ void SetData64(uint32 type, uint64 data) OVERRIDE
{
if (type == DATA_MAULGAREVENT_TANK)
MaulgarEvent_Tank = data;
}
- uint64 GetData64(uint32 identifier) const
+ uint64 GetData64(uint32 identifier) const OVERRIDE
{
switch (identifier)
{
@@ -133,7 +133,7 @@ public:
return 0;
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
switch (type)
{
@@ -156,7 +156,7 @@ public:
SaveToDB();
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/blood_furnace.h b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/blood_furnace.h
index 01f7a2bca98..1303a80488e 100644
--- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/blood_furnace.h
+++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/blood_furnace.h
@@ -19,29 +19,37 @@
#ifndef DEF_BLOOD_FURNACE_H
#define DEF_BLOOD_FURNACE_H
-#define DATA_THE_MAKER 1
-#define DATA_BROGGOK 2
-#define DATA_KELIDAN_THE_MAKER 3
-#define TYPE_THE_MAKER_EVENT 4
-#define TYPE_BROGGOK_EVENT 5
-#define TYPE_KELIDAN_THE_BREAKER_EVENT 6
-#define DATA_DOOR1 7
-#define DATA_DOOR2 8
-#define DATA_DOOR3 9
-#define DATA_DOOR4 10
-#define DATA_DOOR5 11
-#define DATA_DOOR6 12
-#define DATA_PRISON_CELL1 13
-#define DATA_PRISON_CELL2 14
-#define DATA_PRISON_CELL3 15
-#define DATA_PRISON_CELL4 16
-#define DATA_PRISON_CELL5 17
-#define DATA_PRISON_CELL6 18
-#define DATA_PRISON_CELL7 19
-#define DATA_PRISON_CELL8 20
-#define DATA_BROGGOK_LEVER 21
-#define ACTION_ACTIVATE_BROGGOK 22
-#define ACTION_RESET_BROGGOK 23
-#define ACTION_PREPARE_BROGGOK 24
+enum DataTypes
+{
+ DATA_THE_MAKER = 1,
+ DATA_BROGGOK = 2,
+ DATA_KELIDAN_THE_MAKER = 3,
+ TYPE_THE_MAKER_EVENT = 4,
+ TYPE_BROGGOK_EVENT = 5,
+ TYPE_KELIDAN_THE_BREAKER_EVENT = 6,
+ DATA_DOOR1 = 7,
+ DATA_DOOR2 = 8,
+ DATA_DOOR3 = 9,
+ DATA_DOOR4 = 10,
+ DATA_DOOR5 = 11,
+ DATA_DOOR6 = 12,
+ DATA_PRISON_CELL1 = 13,
+ DATA_PRISON_CELL2 = 14,
+ DATA_PRISON_CELL3 = 15,
+ DATA_PRISON_CELL4 = 16,
+ DATA_PRISON_CELL5 = 17,
+ DATA_PRISON_CELL6 = 18,
+ DATA_PRISON_CELL7 = 19,
+ DATA_PRISON_CELL8 = 20,
+ DATA_BROGGOK_LEVER = 21
+};
+
+enum ActionIds
+{
+ ACTION_ACTIVATE_BROGGOK = 1,
+ ACTION_RESET_BROGGOK = 2,
+ ACTION_PREPARE_BROGGOK = 3
+};
+
#endif
diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp
index 0e584686f9b..2f5e160b335 100644
--- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp
@@ -27,10 +27,13 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "blood_furnace.h"
-enum eEnums
+enum Yells
{
- SAY_AGGRO = 0,
+ SAY_AGGRO = 0
+};
+enum Spells
+{
SPELL_SLIME_SPRAY = 30913,
SPELL_POISON_CLOUD = 30916,
SPELL_POISON_BOLT = 30917,
@@ -61,7 +64,7 @@ class boss_broggok : public CreatureScript
uint32 PoisonBolt_Timer;
bool canAttack;
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
AcidSpray_Timer = 10000;
@@ -71,12 +74,12 @@ class boss_broggok : public CreatureScript
instance->SetData(TYPE_BROGGOK_EVENT, NOT_STARTED);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
summoned->setFaction(16);
summoned->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
@@ -84,7 +87,7 @@ class boss_broggok : public CreatureScript
summoned->CastSpell(summoned, SPELL_POISON, false, 0, 0, me->GetGUID());
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -92,7 +95,7 @@ class boss_broggok : public CreatureScript
return;
if (AcidSpray_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_SLIME_SPRAY);
+ DoCastVictim(SPELL_SLIME_SPRAY);
AcidSpray_Timer = 4000+rand()%8000;
}
else
@@ -100,7 +103,7 @@ class boss_broggok : public CreatureScript
if (PoisonBolt_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_POISON_BOLT);
+ DoCastVictim(SPELL_POISON_BOLT);
PoisonBolt_Timer = 4000+rand()%8000;
}
else
@@ -117,7 +120,7 @@ class boss_broggok : public CreatureScript
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
{
@@ -127,7 +130,7 @@ class boss_broggok : public CreatureScript
}
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -149,7 +152,7 @@ class boss_broggok : public CreatureScript
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_broggokAI(creature);
}
@@ -160,7 +163,7 @@ class go_broggok_lever : public GameObjectScript
public:
go_broggok_lever() : GameObjectScript("go_broggok_lever") {}
- bool OnGossipHello(Player* /*player*/, GameObject* go)
+ bool OnGossipHello(Player* /*player*/, GameObject* go) OVERRIDE
{
if (InstanceScript* instance = go->GetInstanceScript())
if (instance->GetData(TYPE_BROGGOK_EVENT) != DONE && instance->GetData(TYPE_BROGGOK_EVENT) != IN_PROGRESS)
diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp
index d2096140ff4..fedf56eb929 100644
--- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp
@@ -25,7 +25,7 @@ EndScriptData */
/* ContentData
boss_kelidan_the_breaker
-mob_shadowmoon_channeler
+npc_shadowmoon_channeler
EndContentData */
#include "ScriptMgr.h"
@@ -33,7 +33,7 @@ EndContentData */
#include "SpellAuras.h"
#include "blood_furnace.h"
-enum eKelidan
+enum Kelidan
{
SAY_WAKE = 0,
SAY_ADD_AGGRO = 1,
@@ -97,7 +97,7 @@ class boss_kelidan_the_breaker : public CreatureScript
bool addYell;
uint64 Channelers[5];
- void Reset()
+ void Reset() OVERRIDE
{
ShadowVolley_Timer = 1000;
BurningNova_Timer = 15000;
@@ -112,7 +112,7 @@ class boss_kelidan_the_breaker : public CreatureScript
instance->SetData(TYPE_KELIDAN_THE_BREAKER_EVENT, NOT_STARTED);
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
Talk(SAY_WAKE);
if (me->IsNonMeleeSpellCasted(false))
@@ -122,7 +122,7 @@ class boss_kelidan_the_breaker : public CreatureScript
instance->SetData(TYPE_KELIDAN_THE_BREAKER_EVENT, IN_PROGRESS);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
if (rand()%2)
return;
@@ -140,7 +140,7 @@ class boss_kelidan_the_breaker : public CreatureScript
for (uint8 i=0; i<5; ++i)
{
Creature* channeler = Unit::GetCreature(*me, Channelers[i]);
- if (who && channeler && !channeler->isInCombat())
+ if (who && channeler && !channeler->IsInCombat())
channeler->AI()->AttackStart(who);
}
}
@@ -150,7 +150,7 @@ class boss_kelidan_the_breaker : public CreatureScript
for (uint8 i=0; i<5; ++i)
{
Creature* channeler = Unit::GetCreature(*me, Channelers[i]);
- if (channeler && channeler->isAlive())
+ if (channeler && channeler->IsAlive())
return;
}
me->SetReactState(REACT_AGGRESSIVE);
@@ -189,7 +189,7 @@ class boss_kelidan_the_breaker : public CreatureScript
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DIE);
@@ -201,7 +201,7 @@ class boss_kelidan_the_breaker : public CreatureScript
instance->HandleGameObject(instance->GetData64(DATA_DOOR6), true);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
{
@@ -273,17 +273,17 @@ class boss_kelidan_the_breaker : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_kelidan_the_breakerAI(creature);
}
};
/*######
-## mob_shadowmoon_channeler
+## npc_shadowmoon_channeler
######*/
-enum eShadowmoon
+enum Shadowmoon
{
SPELL_SHADOW_BOLT = 12739,
H_SPELL_SHADOW_BOLT = 15472,
@@ -292,21 +292,21 @@ enum eShadowmoon
SPELL_CHANNELING = 39123
};
-class mob_shadowmoon_channeler : public CreatureScript
+class npc_shadowmoon_channeler : public CreatureScript
{
public:
- mob_shadowmoon_channeler() : CreatureScript("mob_shadowmoon_channeler") {}
+ npc_shadowmoon_channeler() : CreatureScript("npc_shadowmoon_channeler") {}
- struct mob_shadowmoon_channelerAI : public ScriptedAI
+ struct npc_shadowmoon_channelerAI : public ScriptedAI
{
- mob_shadowmoon_channelerAI(Creature* creature) : ScriptedAI(creature){}
+ npc_shadowmoon_channelerAI(Creature* creature) : ScriptedAI(creature){}
uint32 ShadowBolt_Timer;
uint32 MarkOfShadow_Timer;
uint32 check_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
ShadowBolt_Timer = 1000+rand()%1000;
MarkOfShadow_Timer = 5000+rand()%2000;
@@ -315,7 +315,7 @@ class mob_shadowmoon_channeler : public CreatureScript
me->InterruptNonMeleeSpells(true);
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (Creature* Kelidan = me->FindNearestCreature(ENTRY_KELIDAN, 100))
CAST_AI(boss_kelidan_the_breaker::boss_kelidan_the_breakerAI, Kelidan->AI())->ChannelerEngaged(who);
@@ -324,13 +324,13 @@ class mob_shadowmoon_channeler : public CreatureScript
DoStartMovement(who);
}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
if (Creature* Kelidan = me->FindNearestCreature(ENTRY_KELIDAN, 100))
CAST_AI(boss_kelidan_the_breaker::boss_kelidan_the_breakerAI, Kelidan->AI())->ChannelerDied(killer);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
{
@@ -361,7 +361,7 @@ class mob_shadowmoon_channeler : public CreatureScript
if (ShadowBolt_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_SHADOW_BOLT);
+ DoCastVictim(SPELL_SHADOW_BOLT);
ShadowBolt_Timer = 5000+rand()%1000;
}
else
@@ -371,15 +371,15 @@ class mob_shadowmoon_channeler : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_shadowmoon_channelerAI(creature);
+ return new npc_shadowmoon_channelerAI(creature);
}
};
void AddSC_boss_kelidan_the_breaker()
{
new boss_kelidan_the_breaker();
- new mob_shadowmoon_channeler();
+ new npc_shadowmoon_channeler();
}
diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_the_maker.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_the_maker.cpp
index 8014ee9f8e0..33e23c12d14 100644
--- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_the_maker.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_the_maker.cpp
@@ -27,12 +27,15 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "blood_furnace.h"
-enum eEnums
+enum Yells
{
SAY_AGGRO = 0,
SAY_KILL = 1,
- SAY_DIE = 2,
+ SAY_DIE = 2
+};
+enum Spells
+{
SPELL_ACID_SPRAY = 38153,
SPELL_EXPLODING_BREAKER = 30925,
SPELL_KNOCKDOWN = 20276,
@@ -62,7 +65,7 @@ class boss_the_maker : public CreatureScript
uint32 Domination_Timer;
uint32 Knockdown_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
AcidSpray_Timer = 15000;
ExplodingBreaker_Timer = 6000;
@@ -76,7 +79,7 @@ class boss_the_maker : public CreatureScript
instance->HandleGameObject(instance->GetData64(DATA_DOOR2), true);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
@@ -87,12 +90,12 @@ class boss_the_maker : public CreatureScript
instance->HandleGameObject(instance->GetData64(DATA_DOOR2), false);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_KILL);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DIE);
@@ -105,14 +108,14 @@ class boss_the_maker : public CreatureScript
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
if (AcidSpray_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_ACID_SPRAY);
+ DoCastVictim(SPELL_ACID_SPRAY);
AcidSpray_Timer = 15000+rand()%8000;
}
else
@@ -141,7 +144,7 @@ class boss_the_maker : public CreatureScript
if (Knockdown_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_KNOCKDOWN);
+ DoCastVictim(SPELL_KNOCKDOWN);
Knockdown_Timer = 4000+rand()%8000;
}
else
@@ -151,7 +154,7 @@ class boss_the_maker : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_the_makerAI(creature);
}
diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp
index be51b7922a2..22b1b776e40 100644
--- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp
@@ -175,7 +175,7 @@ class instance_blood_furnace : public InstanceMapScript
BroggokLeverGUID = go->GetGUID(); //Broggok lever
}
- uint64 GetData64(uint32 data) const
+ uint64 GetData64(uint32 data) const OVERRIDE
{
switch (data)
{
@@ -201,7 +201,7 @@ class instance_blood_furnace : public InstanceMapScript
return 0;
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
switch (type)
{
@@ -231,7 +231,7 @@ class instance_blood_furnace : public InstanceMapScript
}
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -313,7 +313,7 @@ class instance_blood_furnace : public InstanceMapScript
void ResetPrisoner(Creature* prisoner)
{
- if (!prisoner->isAlive())
+ if (!prisoner->IsAlive())
prisoner->Respawn(true);
prisoner->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NON_ATTACKABLE);
}
@@ -409,7 +409,7 @@ class instance_blood_furnace : public InstanceMapScript
}
};
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_blood_furnace_InstanceMapScript(map);
}
diff --git a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_omor_the_unscarred.cpp b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_omor_the_unscarred.cpp
index 0c5325f7172..a87aefa72af 100644
--- a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_omor_the_unscarred.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_omor_the_unscarred.cpp
@@ -26,8 +26,9 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "Player.h"
+#include "hellfire_ramparts.h"
-enum eSays
+enum Says
{
SAY_AGGRO = 0,
SAY_SUMMON = 1,
@@ -37,7 +38,7 @@ enum eSays
SAY_WIPE = 5
};
-enum eSpells
+enum Spells
{
SPELL_ORBITAL_STRIKE = 30637,
SPELL_SHADOW_WHIP = 30638,
@@ -53,29 +54,16 @@ class boss_omor_the_unscarred : public CreatureScript
{
public:
- boss_omor_the_unscarred()
- : CreatureScript("boss_omor_the_unscarred")
- {
- }
+ boss_omor_the_unscarred() : CreatureScript("boss_omor_the_unscarred") { }
- struct boss_omor_the_unscarredAI : public ScriptedAI
+ struct boss_omor_the_unscarredAI : public BossAI
{
- boss_omor_the_unscarredAI(Creature* creature) : ScriptedAI(creature)
+ boss_omor_the_unscarredAI(Creature* creature) : BossAI(creature, DATA_OMOR_THE_UNSCARRED)
{
SetCombatMovement(false);
}
- uint32 OrbitalStrike_Timer;
- uint32 ShadowWhip_Timer;
- uint32 Aura_Timer;
- uint32 DemonicShield_Timer;
- uint32 Shadowbolt_Timer;
- uint32 Summon_Timer;
- uint32 SummonedCount;
- uint64 PlayerGUID;
- bool CanPullBack;
-
- void Reset()
+ void Reset() OVERRIDE
{
Talk(SAY_WIPE);
@@ -88,14 +76,17 @@ class boss_omor_the_unscarred : public CreatureScript
SummonedCount = 0;
PlayerGUID = 0;
CanPullBack = false;
+
+ _Reset();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
+ _EnterCombat();
Talk(SAY_AGGRO);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
if (rand()%2)
return;
@@ -103,7 +94,7 @@ class boss_omor_the_unscarred : public CreatureScript
Talk(SAY_KILL_1);
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
Talk(SAY_SUMMON);
@@ -113,12 +104,13 @@ class boss_omor_the_unscarred : public CreatureScript
++SummonedCount;
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DIE);
+ _JustDied();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -160,8 +152,8 @@ class boss_omor_the_unscarred : public CreatureScript
if (OrbitalStrike_Timer <= diff)
{
Unit* temp = NULL;
- if (me->IsWithinMeleeRange(me->getVictim()))
- temp = me->getVictim();
+ if (me->IsWithinMeleeRange(me->GetVictim()))
+ temp = me->GetVictim();
else temp = SelectTarget(SELECT_TARGET_RANDOM, 0);
if (temp && temp->GetTypeId() == TYPEID_PLAYER)
@@ -206,7 +198,7 @@ class boss_omor_the_unscarred : public CreatureScript
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
{
if (target)
- target = me->getVictim();
+ target = me->GetVictim();
DoCast(target, SPELL_SHADOW_BOLT);
Shadowbolt_Timer = 4000+rand()%2500;
@@ -217,9 +209,20 @@ class boss_omor_the_unscarred : public CreatureScript
DoMeleeAttackIfReady();
}
+
+ private:
+ uint32 OrbitalStrike_Timer;
+ uint32 ShadowWhip_Timer;
+ uint32 Aura_Timer;
+ uint32 DemonicShield_Timer;
+ uint32 Shadowbolt_Timer;
+ uint32 Summon_Timer;
+ uint32 SummonedCount;
+ uint64 PlayerGUID;
+ bool CanPullBack;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_omor_the_unscarredAI(creature);
}
diff --git a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_vazruden_the_herald.cpp b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_vazruden_the_herald.cpp
index e820e22d65a..0f5cea6c4c6 100644
--- a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_vazruden_the_herald.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_vazruden_the_herald.cpp
@@ -26,8 +26,21 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "SpellInfo.h"
+#include "hellfire_ramparts.h"
-enum eSpells
+enum Says
+{
+ SAY_INTRO = 0,
+
+ SAY_WIPE = 0,
+ SAY_AGGRO = 1,
+ SAY_KILL = 2,
+ SAY_DIE = 3,
+
+ EMOTE = 0
+};
+
+enum Spells
{
SPELL_FIREBALL = 34653,
SPELL_FIREBALL_H = 36920,
@@ -42,74 +55,45 @@ enum eSpells
SPELL_FIRE_NOVA_VISUAL = 19823
};
-enum eUnits
-{
- ENTRY_HELLFIRE_SENTRY = 17517,
- ENTRY_VAZRUDEN_HERALD = 17307,
- ENTRY_VAZRUDEN = 17537,
- ENTRY_NAZAN = 17536,
- ENTRY_LIQUID_FIRE = 22515,
- ENTRY_REINFORCED_FEL_IRON_CHEST = 185168,
- ENTRY_REINFORCED_FEL_IRON_CHEST_H = 185169
-};
-
-enum Says
-{
- SAY_INTRO = 0,
-
- SAY_WIPE = 0,
- SAY_AGGRO = 1,
- SAY_KILL = 2,
- SAY_DIE = 3,
-
- EMOTE = 0
-};
+const float VazrudenMiddle[3] = { -1406.5f, 1746.5f, 81.2f };
-const float VazrudenMiddle[3] = {-1406.5f, 1746.5f, 81.2f};
const float VazrudenRing[2][3] =
{
- {-1430, 1705, 112},
- {-1377, 1760, 112}
+ { -1430.0f, 1705.0f, 112.0f },
+ { -1377.0f, 1760.0f, 112.0f }
};
class boss_nazan : public CreatureScript
{
public:
+ boss_nazan() : CreatureScript("boss_nazan") { }
- boss_nazan()
- : CreatureScript("boss_nazan")
+ struct boss_nazanAI : public BossAI
{
- }
-
- struct boss_nazanAI : public ScriptedAI
- {
- boss_nazanAI(Creature* creature) : ScriptedAI(creature)
+ boss_nazanAI(Creature* creature) : BossAI(creature, DATA_NAZAN)
{
VazrudenGUID = 0;
flight = true;
}
- uint32 Fireball_Timer;
- uint32 ConeOfFire_Timer;
- uint32 BellowingRoar_Timer;
- uint32 Fly_Timer;
- uint32 Turn_Timer;
- bool flight;
- uint64 VazrudenGUID;
- SpellInfo* liquid_fire;
-
- void Reset()
+ void Reset() OVERRIDE
{
Fireball_Timer = 4000;
Fly_Timer = 45000;
Turn_Timer = 0;
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+
+ void IsSummonedBy(Unit* summoner) OVERRIDE
+ {
+ if (summoner->GetEntry() == NPC_VAZRUDEN_HERALD)
+ VazrudenGUID = summoner->GetGUID();
+ }
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
- if (summoned && summoned->GetEntry() == ENTRY_LIQUID_FIRE)
+ if (summoned && summoned->GetEntry() == NPC_LIQUID_FIRE)
{
summoned->SetLevel(me->getLevel());
summoned->setFaction(me->getFaction());
@@ -118,13 +102,13 @@ class boss_nazan : public CreatureScript
}
}
- void SpellHitTarget(Unit* target, const SpellInfo* entry)
+ void SpellHitTarget(Unit* target, const SpellInfo* entry) OVERRIDE
{
if (target && entry->Id == uint32(SPELL_FIREBALL))
- me->SummonCreature(ENTRY_LIQUID_FIRE, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), target->GetOrientation(), TEMPSUMMON_TIMED_DESPAWN, 30000);
+ me->SummonCreature(NPC_LIQUID_FIRE, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), target->GetOrientation(), TEMPSUMMON_TIMED_DESPAWN, 30000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -141,7 +125,7 @@ class boss_nazan : public CreatureScript
if (flight) // phase 1 - the flight
{
Creature* Vazruden = Unit::GetCreature(*me, VazrudenGUID);
- if (Fly_Timer < diff || !(Vazruden && Vazruden->isAlive() && Vazruden->HealthAbovePct(20)))
+ if (Fly_Timer < diff || !(Vazruden && Vazruden->IsAlive() && Vazruden->HealthAbovePct(20)))
{
flight = false;
BellowingRoar_Timer = 6000;
@@ -151,7 +135,7 @@ class boss_nazan : public CreatureScript
me->GetMotionMaster()->Clear();
if (Unit* victim = SelectTarget(SELECT_TARGET_NEAREST, 0))
me->AI()->AttackStart(victim);
- DoStartMovement(me->getVictim());
+ DoStartMovement(me->GetVictim());
Talk(EMOTE);
return;
}
@@ -193,9 +177,19 @@ class boss_nazan : public CreatureScript
DoMeleeAttackIfReady();
}
}
+
+ private:
+ uint32 Fireball_Timer;
+ uint32 ConeOfFire_Timer;
+ uint32 BellowingRoar_Timer;
+ uint32 Fly_Timer;
+ uint32 Turn_Timer;
+ bool flight;
+ uint64 VazrudenGUID;
+ SpellInfo* liquid_fire;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_nazanAI(creature);
}
@@ -204,50 +198,44 @@ class boss_nazan : public CreatureScript
class boss_vazruden : public CreatureScript
{
public:
+ boss_vazruden() : CreatureScript("boss_vazruden") { }
- boss_vazruden()
- : CreatureScript("boss_vazruden")
- {
- }
- struct boss_vazrudenAI : public ScriptedAI
+ struct boss_vazrudenAI : public BossAI
{
- boss_vazrudenAI(Creature* creature) : ScriptedAI(creature)
- {
- }
-
- uint32 Revenge_Timer;
- bool WipeSaid;
- uint32 UnsummonCheck;
+ boss_vazrudenAI(Creature* creature) : BossAI(creature, DATA_VAZRUDEN) { }
- void Reset()
+ void Reset() OVERRIDE
{
Revenge_Timer = 4000;
UnsummonCheck = 2000;
WipeSaid = false;
+ _Reset();
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
+ _EnterCombat();
}
- void KilledUnit(Unit* who)
+ void KilledUnit(Unit* who) OVERRIDE
{
- if (who && who->GetEntry() != ENTRY_VAZRUDEN)
+ if (who && who->GetEntry() != NPC_VAZRUDEN)
Talk(SAY_KILL);
}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
if (killer && killer != me)
Talk(SAY_DIE);
+ _JustDied();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
{
- if (UnsummonCheck < diff && me->isAlive())
+ if (UnsummonCheck < diff && me->IsAlive())
{
if (!WipeSaid)
{
@@ -263,7 +251,7 @@ class boss_vazruden : public CreatureScript
if (Revenge_Timer <= diff)
{
- if (Unit* victim = me->getVictim())
+ if (Unit* victim = me->GetVictim())
DoCast(victim, DUNGEON_MODE(SPELL_REVENGE, SPELL_REVENGE_H));
Revenge_Timer = 5000;
}
@@ -272,8 +260,14 @@ class boss_vazruden : public CreatureScript
DoMeleeAttackIfReady();
}
+
+ private:
+ uint32 Revenge_Timer;
+ bool WipeSaid;
+ uint32 UnsummonCheck;
};
- CreatureAI* GetAI(Creature* creature) const
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_vazrudenAI(creature);
}
@@ -282,11 +276,7 @@ class boss_vazruden : public CreatureScript
class boss_vazruden_the_herald : public CreatureScript
{
public:
-
- boss_vazruden_the_herald()
- : CreatureScript("boss_vazruden_the_herald")
- {
- }
+ boss_vazruden_the_herald() : CreatureScript("boss_vazruden_the_herald") { }
struct boss_vazruden_the_heraldAI : public ScriptedAI
{
@@ -299,16 +289,7 @@ class boss_vazruden_the_herald : public CreatureScript
VazrudenGUID = 0;
}
- uint32 phase;
- uint32 waypoint;
- uint32 check;
- bool sentryDown;
- uint64 NazanGUID;
- uint64 VazrudenGUID;
- bool summoned;
- bool lootSpawned;
-
- void Reset()
+ void Reset() OVERRIDE
{
phase = 0;
waypoint = 0;
@@ -322,7 +303,7 @@ class boss_vazruden_the_herald : public CreatureScript
{
Creature* Nazan = Unit::GetCreature(*me, NazanGUID);
if (!Nazan)
- Nazan = me->FindNearestCreature(ENTRY_NAZAN, 5000);
+ Nazan = me->FindNearestCreature(NPC_NAZAN, 5000);
if (Nazan)
{
Nazan->DisappearAndDie();
@@ -331,7 +312,7 @@ class boss_vazruden_the_herald : public CreatureScript
Creature* Vazruden = Unit::GetCreature(*me, VazrudenGUID);
if (!Vazruden)
- Vazruden = me->FindNearestCreature(ENTRY_VAZRUDEN, 5000);
+ Vazruden = me->FindNearestCreature(NPC_VAZRUDEN, 5000);
if (Vazruden)
{
Vazruden->DisappearAndDie();
@@ -347,9 +328,9 @@ class boss_vazruden_the_herald : public CreatureScript
{
if (!summoned)
{
- if (Creature* Vazruden = me->SummonCreature(ENTRY_VAZRUDEN, VazrudenMiddle[0], VazrudenMiddle[1], VazrudenMiddle[2], 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 6000000))
+ if (Creature* Vazruden = me->SummonCreature(NPC_VAZRUDEN, VazrudenMiddle[0], VazrudenMiddle[1], VazrudenMiddle[2], 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 6000000))
VazrudenGUID = Vazruden->GetGUID();
- if (Creature* Nazan = me->SummonCreature(ENTRY_NAZAN, VazrudenMiddle[0], VazrudenMiddle[1], VazrudenMiddle[2], 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 6000000))
+ if (Creature* Nazan = me->SummonCreature(NPC_NAZAN, VazrudenMiddle[0], VazrudenMiddle[1], VazrudenMiddle[2], 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 6000000))
NazanGUID = Nazan->GetGUID();
summoned = true;
me->SetVisible(false);
@@ -357,7 +338,7 @@ class boss_vazruden_the_herald : public CreatureScript
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (phase == 0)
{
@@ -367,14 +348,13 @@ class boss_vazruden_the_herald : public CreatureScript
}
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
if (!summoned)
return;
- Unit* victim = me->getVictim();
- if (summoned->GetEntry() == ENTRY_NAZAN)
+ Unit* victim = me->GetVictim();
+ if (summoned->GetEntry() == NPC_NAZAN)
{
- CAST_AI(boss_nazan::boss_nazanAI, summoned->AI())->VazrudenGUID = VazrudenGUID;
summoned->SetDisableGravity(true);
summoned->SetSpeed(MOVE_FLIGHT, 2.5f);
if (victim)
@@ -396,7 +376,7 @@ class boss_vazruden_the_herald : public CreatureScript
sentryDown = true;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
switch (phase)
{
@@ -427,9 +407,9 @@ class boss_vazruden_the_herald : public CreatureScript
{
Creature* Nazan = Unit::GetCreature(*me, NazanGUID);
Creature* Vazruden = Unit::GetCreature(*me, VazrudenGUID);
- if ((Nazan && Nazan->isAlive()) || (Vazruden && Vazruden->isAlive()))
+ if ((Nazan && Nazan->IsAlive()) || (Vazruden && Vazruden->IsAlive()))
{
- if ((Nazan && Nazan->getVictim()) || (Vazruden && Vazruden->getVictim()))
+ if ((Nazan && Nazan->GetVictim()) || (Vazruden && Vazruden->GetVictim()))
return;
else
{
@@ -440,7 +420,7 @@ class boss_vazruden_the_herald : public CreatureScript
}
else if (!lootSpawned)
{
- me->SummonGameObject(DUNGEON_MODE(ENTRY_REINFORCED_FEL_IRON_CHEST, ENTRY_REINFORCED_FEL_IRON_CHEST_H), VazrudenMiddle[0], VazrudenMiddle[1], VazrudenMiddle[2], 0, 0, 0, 0, 0, 0);
+ me->SummonGameObject(DUNGEON_MODE(GO_FEL_IRON_CHEST_NORMAL, GO_FEL_IRON_CHECT_HEROIC), VazrudenMiddle[0], VazrudenMiddle[1], VazrudenMiddle[2], 0, 0, 0, 0, 0, 0);
me->SetLootRecipient(NULL); // don't think this is necessary..
//me->Kill(me);
lootSpawned = true;
@@ -452,49 +432,54 @@ class boss_vazruden_the_herald : public CreatureScript
break;
}
}
+
+ private:
+ uint32 phase;
+ uint32 waypoint;
+ uint32 check;
+ bool sentryDown;
+ uint64 NazanGUID;
+ uint64 VazrudenGUID;
+ bool summoned;
+ bool lootSpawned;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_vazruden_the_heraldAI(creature);
}
};
-class mob_hellfire_sentry : public CreatureScript
+class npc_hellfire_sentry : public CreatureScript
{
public:
+ npc_hellfire_sentry() : CreatureScript("npc_hellfire_sentry") { }
- mob_hellfire_sentry()
- : CreatureScript("mob_hellfire_sentry")
- {
- }
- struct mob_hellfire_sentryAI : public ScriptedAI
+ struct npc_hellfire_sentryAI : public ScriptedAI
{
- mob_hellfire_sentryAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_hellfire_sentryAI(Creature* creature) : ScriptedAI(creature) {}
- uint32 KidneyShot_Timer;
-
- void Reset()
+ void Reset() OVERRIDE
{
KidneyShot_Timer = urand(3000, 7000);
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
- if (Creature* herald = me->FindNearestCreature(ENTRY_VAZRUDEN_HERALD, 150))
+ if (Creature* herald = me->FindNearestCreature(NPC_VAZRUDEN_HERALD, 150))
CAST_AI(boss_vazruden_the_herald::boss_vazruden_the_heraldAI, herald->AI())->SentryDownBy(killer);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
if (KidneyShot_Timer <= diff)
{
- if (Unit* victim = me->getVictim())
+ if (Unit* victim = me->GetVictim())
DoCast(victim, SPELL_KIDNEY_SHOT);
KidneyShot_Timer = 20000;
}
@@ -503,10 +488,14 @@ class mob_hellfire_sentry : public CreatureScript
DoMeleeAttackIfReady();
}
+
+ private:
+ uint32 KidneyShot_Timer;
};
- CreatureAI* GetAI(Creature* creature) const
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_hellfire_sentryAI(creature);
+ return new npc_hellfire_sentryAI(creature);
}
};
void AddSC_boss_vazruden_the_herald()
@@ -514,6 +503,6 @@ void AddSC_boss_vazruden_the_herald()
new boss_vazruden_the_herald();
new boss_vazruden();
new boss_nazan();
- new mob_hellfire_sentry();
+ new npc_hellfire_sentry();
}
diff --git a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_watchkeeper_gargolmar.cpp b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_watchkeeper_gargolmar.cpp
index 8961c94ab31..493630a7650 100644
--- a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_watchkeeper_gargolmar.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_watchkeeper_gargolmar.cpp
@@ -25,8 +25,9 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
+#include "hellfire_ramparts.h"
-enum eSays
+enum Says
{
SAY_TAUNT = 0,
SAY_HEAL = 1,
@@ -36,7 +37,7 @@ enum eSays
SAY_DIE = 5
};
-enum eSpells
+enum Spells
{
SPELL_MORTAL_WOUND = 30641,
H_SPELL_MORTAL_WOUND = 36814,
@@ -44,46 +45,42 @@ enum eSpells
SPELL_RETALIATION = 22857
};
+enum Events
+{
+ EVENT_MORTAL_WOUND = 1,
+ EVENT_SURGE = 2,
+ EVENT_RETALIATION = 3
+};
+
class boss_watchkeeper_gargolmar : public CreatureScript
{
public:
+ boss_watchkeeper_gargolmar() : CreatureScript("boss_watchkeeper_gargolmar") { }
- boss_watchkeeper_gargolmar()
- : CreatureScript("boss_watchkeeper_gargolmar")
+ struct boss_watchkeeper_gargolmarAI : public BossAI
{
- }
+ boss_watchkeeper_gargolmarAI(Creature* creature) : BossAI(creature, DATA_WATCHKEEPER_GARGOLMAR) { }
- struct boss_watchkeeper_gargolmarAI : public ScriptedAI
- {
- boss_watchkeeper_gargolmarAI(Creature* creature) : ScriptedAI(creature)
+ void Reset() OVERRIDE
{
+ hasTaunted = false;
+ yelledForHeal = false;
+ retaliation = false;
+ _Reset();
}
- uint32 Surge_Timer;
- uint32 MortalWound_Timer;
- uint32 Retaliation_Timer;
-
- bool HasTaunted;
- bool YelledForHeal;
-
- void Reset()
- {
- Surge_Timer = 5000;
- MortalWound_Timer = 4000;
- Retaliation_Timer = 0;
-
- HasTaunted = false;
- YelledForHeal = false;
- }
-
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
+ events.ScheduleEvent(EVENT_MORTAL_WOUND, 5000);
+ events.ScheduleEvent(EVENT_SURGE, 4000);
+ _EnterCombat();
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
- if (!me->getVictim() && me->canCreatureAttack(who))
+ if (!me->GetVictim() && me->CanCreatureAttack(who))
{
if (!me->CanFly() && me->GetDistanceZ(who) > CREATURE_Z_ATTACK_RANGE)
return;
@@ -94,74 +91,83 @@ class boss_watchkeeper_gargolmar : public CreatureScript
//who->RemoveSpellsCausingAura(SPELL_AURA_MOD_STEALTH);
AttackStart(who);
}
- else if (!HasTaunted && me->IsWithinDistInMap(who, 60.0f))
+ else if (!hasTaunted && me->IsWithinDistInMap(who, 60.0f))
{
Talk(SAY_TAUNT);
- HasTaunted = true;
+ hasTaunted = true;
}
}
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_KILL);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DIE);
+ _JustDied();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
- if (MortalWound_Timer <= diff)
- {
- DoCast(me->getVictim(), SPELL_MORTAL_WOUND);
- MortalWound_Timer = 5000+rand()%8000;
- }
- else
- MortalWound_Timer -= diff;
+ events.Update(diff);
- if (Surge_Timer <= diff)
+ while (uint32 eventId = events.ExecuteEvent())
{
- Talk(SAY_SURGE);
-
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- DoCast(target, SPELL_SURGE);
-
- Surge_Timer = 5000+rand()%8000;
+ switch (eventId)
+ {
+ case EVENT_MORTAL_WOUND:
+ DoCastVictim(SPELL_MORTAL_WOUND);
+ events.ScheduleEvent(EVENT_MORTAL_WOUND, urand (5000, 13000));
+ break;
+ case EVENT_SURGE:
+ Talk(SAY_SURGE);
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
+ DoCast(target, SPELL_SURGE);
+ events.ScheduleEvent(EVENT_SURGE, urand (5000, 13000));
+ break;
+ case EVENT_RETALIATION:
+ DoCast(me, SPELL_RETALIATION);
+ events.ScheduleEvent(EVENT_RETALIATION, 30000);
+ break;
+ default:
+ break;
+ }
}
- else
- Surge_Timer -= diff;
- if (HealthBelowPct(20))
+ if (!retaliation)
{
- if (Retaliation_Timer <= diff)
+ if (HealthBelowPct(20))
{
- DoCast(me, SPELL_RETALIATION);
- Retaliation_Timer = 30000;
+ events.ScheduleEvent(EVENT_RETALIATION, 1000);
+ retaliation = true;
}
- else
- Retaliation_Timer -= diff;
}
- if (!YelledForHeal)
+ if (!yelledForHeal)
{
if (HealthBelowPct(40))
{
Talk(SAY_HEAL);
- YelledForHeal = true;
+ yelledForHeal = true;
}
}
DoMeleeAttackIfReady();
}
+
+ private:
+ bool hasTaunted;
+ bool yelledForHeal;
+ bool retaliation;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_watchkeeper_gargolmarAI(creature);
}
diff --git a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/hellfire_ramparts.h b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/hellfire_ramparts.h
index b67041e93f2..880640659b0 100644
--- a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/hellfire_ramparts.h
+++ b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/hellfire_ramparts.h
@@ -19,12 +19,29 @@
#ifndef DEF_RAMPARTS_H
#define DEF_RAMPARTS_H
-#define MAX_ENCOUNTER 2
+uint32 const EncounterCount = 4;
-enum eTypes
+enum DataTypes
{
- TYPE_VAZRUDEN = 1,
- TYPE_NAZAN = 2
+ DATA_WATCHKEEPER_GARGOLMAR = 0,
+ DATA_OMOR_THE_UNSCARRED = 1,
+ DATA_VAZRUDEN = 2,
+ DATA_NAZAN = 3
+};
+
+enum CreatureIds
+{
+ NPC_HELLFIRE_SENTRY = 17517,
+ NPC_VAZRUDEN_HERALD = 17307,
+ NPC_VAZRUDEN = 17537,
+ NPC_NAZAN = 17536,
+ NPC_LIQUID_FIRE = 22515
+};
+
+enum GameobjectIds
+{
+ GO_FEL_IRON_CHEST_NORMAL = 185168,
+ GO_FEL_IRON_CHECT_HEROIC = 185169
};
#endif
diff --git a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/instance_hellfire_ramparts.cpp b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/instance_hellfire_ramparts.cpp
index b1d780c18ca..98f6f194c0f 100644
--- a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/instance_hellfire_ramparts.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/instance_hellfire_ramparts.cpp
@@ -30,65 +30,95 @@ EndScriptData */
class instance_ramparts : public InstanceMapScript
{
public:
- instance_ramparts()
- : InstanceMapScript("instance_ramparts", 543)
- {
- }
+ instance_ramparts() : InstanceMapScript("instance_ramparts", 543) { }
struct instance_ramparts_InstanceMapScript : public InstanceScript
{
instance_ramparts_InstanceMapScript(Map* map) : InstanceScript(map) {}
- uint32 m_auiEncounter[MAX_ENCOUNTER];
- uint64 m_uiChestNGUID;
- uint64 m_uiChestHGUID;
- bool spawned;
-
void Initialize()
{
- memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
-
- m_uiChestNGUID = 0;
- m_uiChestHGUID = 0;
+ SetBossNumber(EncounterCount);
+ felIronChestGUID = 0;
}
void OnGameObjectCreate(GameObject* go)
{
switch (go->GetEntry())
{
- case 185168:
- m_uiChestNGUID = go->GetGUID();
- break;
- case 185169:
- m_uiChestHGUID = go->GetGUID();
+ case GO_FEL_IRON_CHEST_NORMAL:
+ case GO_FEL_IRON_CHECT_HEROIC:
+ felIronChestGUID = go->GetGUID();
break;
}
}
- void SetData(uint32 uiType, uint32 uiData)
+ bool SetBossState(uint32 type, EncounterState state)
{
- TC_LOG_DEBUG(LOG_FILTER_TSCR, "Instance Ramparts: SetData received for type %u with data %u", uiType, uiData);
+ if (!InstanceScript::SetBossState(type, state))
+ return false;
- switch (uiType)
+ switch (type)
{
- case TYPE_VAZRUDEN:
- if (uiData == DONE && m_auiEncounter[1] == DONE && !spawned)
- {
- DoRespawnGameObject(instance->IsHeroic() ? m_uiChestHGUID : m_uiChestNGUID, HOUR*IN_MILLISECONDS);
- spawned = true;
- }
- m_auiEncounter[0] = uiData;
- break;
- case TYPE_NAZAN:
- if (uiData == DONE && m_auiEncounter[0] == DONE && !spawned)
+ case DATA_VAZRUDEN:
+ case DATA_NAZAN:
+ if (GetBossState(DATA_VAZRUDEN) == DONE && GetBossState(DATA_NAZAN) == DONE && !spawned)
{
- DoRespawnGameObject(instance->IsHeroic() ? m_uiChestHGUID : m_uiChestNGUID, HOUR*IN_MILLISECONDS);
+ DoRespawnGameObject(felIronChestGUID, HOUR*IN_MILLISECONDS);
spawned = true;
}
- m_auiEncounter[1] = uiData;
break;
}
+ return true;
+ }
+
+ std::string GetSaveData()
+ {
+ OUT_SAVE_INST_DATA;
+
+ std::ostringstream saveStream;
+ saveStream << "H R " << GetBossSaveData();
+
+ OUT_SAVE_INST_DATA_COMPLETE;
+ return saveStream.str();
+ }
+
+ void Load(const char* strIn)
+ {
+ if (!strIn)
+ {
+ OUT_LOAD_INST_DATA_FAIL;
+ return;
+ }
+
+ OUT_LOAD_INST_DATA(strIn);
+
+ char dataHead1, dataHead2;
+
+ std::istringstream loadStream(strIn);
+ loadStream >> dataHead1 >> dataHead2;
+
+ if (dataHead1 == 'H' && dataHead2 == 'R')
+ {
+ for (uint8 i = 0; i < EncounterCount; ++i)
+ {
+ uint32 tmpState;
+ loadStream >> tmpState;
+ if (tmpState == IN_PROGRESS || tmpState > SPECIAL)
+ tmpState = NOT_STARTED;
+
+ SetBossState(i, EncounterState(tmpState));
+ }
+ }
+ else
+ OUT_LOAD_INST_DATA_FAIL;
+
+ OUT_LOAD_INST_DATA_COMPLETE;
}
+
+ protected:
+ uint64 felIronChestGUID;
+ bool spawned;
};
InstanceScript* GetInstanceScript(InstanceMap* map) const
diff --git a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp
index 777f24f779b..f99bb4ade85 100644
--- a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp
@@ -29,7 +29,7 @@ EndScriptData */
#include "Player.h"
#include "SpellInfo.h"
-enum eSays
+enum Yells
{
SAY_TAUNT = 0,
SAY_FREED = 1,
@@ -40,22 +40,22 @@ enum eSays
SAY_DEATH = 6
};
-enum eEmotes
+enum Emotes
{
EMOTE_BERSERK = 7,
EMOTE_BLASTNOVA = 8,
EMOTE_BEGIN = 9
};
-enum eCreatures
+enum Creatures
{
- MOB_MAGTHERIDON = 17257,
- MOB_ROOM = 17516,
- MOB_CHANNELLER = 17256,
- MOB_ABYSSAL = 17454,
+ NPC_MAGTHERIDON = 17257,
+ NPC_ROOM = 17516,
+ NPC_CHANNELLER = 17256,
+ NPC_ABYSSAL = 17454,
};
-enum eSpells
+enum Spells
{
SPELL_BLASTNOVA = 30616,
SPELL_CLEAVE = 30619,
@@ -87,18 +87,18 @@ enum eSpells
typedef std::map<uint64, uint64> CubeMap;
-class mob_abyssal : public CreatureScript
+class npc_abyssal : public CreatureScript
{
public:
- mob_abyssal()
- : CreatureScript("mob_abyssal")
+ npc_abyssal()
+ : CreatureScript("npc_abyssal")
{
}
- struct mob_abyssalAI : public ScriptedAI
+ struct npc_abyssalAI : public ScriptedAI
{
- mob_abyssalAI(Creature* creature) : ScriptedAI(creature)
+ npc_abyssalAI(Creature* creature) : ScriptedAI(creature)
{
trigger = 0;
Despawn_Timer = 60000;
@@ -108,12 +108,12 @@ class mob_abyssal : public CreatureScript
uint32 Despawn_Timer;
uint32 trigger;
- void Reset()
+ void Reset() OVERRIDE
{
FireBlast_Timer = 6000;
}
- void SpellHit(Unit*, const SpellInfo* spell)
+ void SpellHit(Unit*, const SpellInfo* spell) OVERRIDE
{
if (trigger == 2 && spell->Id == SPELL_BLAZE_TARGET)
{
@@ -136,22 +136,23 @@ class mob_abyssal : public CreatureScript
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
DoZoneInCombat();
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (!trigger)
ScriptedAI::AttackStart(who);
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (!trigger)
ScriptedAI::MoveInLineOfSight(who);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (trigger)
{
@@ -178,7 +179,7 @@ class mob_abyssal : public CreatureScript
if (FireBlast_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_FIRE_BLAST);
+ DoCastVictim(SPELL_FIRE_BLAST);
FireBlast_Timer = 5000+rand()%10000;
}
else FireBlast_Timer -= diff;
@@ -187,9 +188,9 @@ class mob_abyssal : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_abyssalAI(creature);
+ return new npc_abyssalAI(creature);
}
};
@@ -226,7 +227,7 @@ class boss_magtheridon : public CreatureScript
bool Phase3;
bool NeedCheckCube;
- void Reset()
+ void Reset() OVERRIDE
{
Berserk_Timer = 1320000;
Quake_Timer = 40000;
@@ -246,7 +247,7 @@ class boss_magtheridon : public CreatureScript
DoCast(me, SPELL_SHADOW_CAGE_C, true);
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
if (instance)
{
@@ -267,7 +268,7 @@ class boss_magtheridon : public CreatureScript
//function to interrupt channeling and debuff clicker with mind exh(used if second person clicks with same cube or after dispeling/ending shadow grasp DoT)
void DebuffClicker(Unit* clicker)
{
- if (!clicker || !clicker->isAlive())
+ if (!clicker || !clicker->IsAlive())
return;
clicker->RemoveAurasDueToSpell(SPELL_SHADOW_GRASP); // cannot interrupt triggered spells
@@ -306,12 +307,12 @@ class boss_magtheridon : public CreatureScript
NeedCheckCube = false;
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_PLAYER_KILLED);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
instance->SetData(DATA_MAGTHERIDON_EVENT, DONE);
@@ -319,15 +320,16 @@ class boss_magtheridon : public CreatureScript
Talk(SAY_DEATH);
}
- void MoveInLineOfSight(Unit* /*who*/) {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
+
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (!me->HasUnitState(UNIT_STATE_STUNNED))
ScriptedAI::AttackStart(who);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (instance)
instance->SetData(DATA_MAGTHERIDON_EVENT, IN_PROGRESS);
@@ -339,9 +341,9 @@ class boss_magtheridon : public CreatureScript
Talk(SAY_FREED);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
- if (!me->isInCombat())
+ if (!me->IsInCombat())
{
if (RandChat_Timer <= diff)
{
@@ -368,7 +370,7 @@ class boss_magtheridon : public CreatureScript
if (Cleave_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_CLEAVE);
+ DoCastVictim(SPELL_CLEAVE);
Cleave_Timer = 10000;
}
else
@@ -405,10 +407,10 @@ class boss_magtheridon : public CreatureScript
{
float x, y, z;
target->GetPosition(x, y, z);
- Creature* summon = me->SummonCreature(MOB_ABYSSAL, x, y, z, 0, TEMPSUMMON_CORPSE_DESPAWN, 0);
+ Creature* summon = me->SummonCreature(NPC_ABYSSAL, x, y, z, 0, TEMPSUMMON_CORPSE_DESPAWN, 0);
if (summon)
{
- CAST_AI(mob_abyssal::mob_abyssalAI, summon->AI())->SetTrigger(2);
+ CAST_AI(npc_abyssal::npc_abyssalAI, summon->AI())->SetTrigger(2);
DoCast(summon, SPELL_BLAZE_TARGET, true);
summon->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
}
@@ -439,9 +441,9 @@ class boss_magtheridon : public CreatureScript
{
float x, y, z;
target->GetPosition(x, y, z);
- Creature* summon = me->SummonCreature(MOB_ABYSSAL, x, y, z, 0, TEMPSUMMON_CORPSE_DESPAWN, 0);
+ Creature* summon = me->SummonCreature(NPC_ABYSSAL, x, y, z, 0, TEMPSUMMON_CORPSE_DESPAWN, 0);
if (summon)
- CAST_AI(mob_abyssal::mob_abyssalAI, summon->AI())->SetTrigger(1);
+ CAST_AI(npc_abyssal::npc_abyssalAI, summon->AI())->SetTrigger(1);
}
Debris_Timer = 10000;
}
@@ -453,24 +455,24 @@ class boss_magtheridon : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_magtheridonAI(creature);
}
};
-class mob_hellfire_channeler : public CreatureScript
+class npc_hellfire_channeler : public CreatureScript
{
public:
- mob_hellfire_channeler()
- : CreatureScript("mob_hellfire_channeler")
+ npc_hellfire_channeler()
+ : CreatureScript("npc_hellfire_channeler")
{
}
- struct mob_hellfire_channelerAI : public ScriptedAI
+ struct npc_hellfire_channelerAI : public ScriptedAI
{
- mob_hellfire_channelerAI(Creature* creature) : ScriptedAI(creature)
+ npc_hellfire_channelerAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -484,7 +486,7 @@ class mob_hellfire_channeler : public CreatureScript
uint32 Check_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
ShadowBoltVolley_Timer = urand(8000, 10000);
DarkMending_Timer = 10000;
@@ -494,7 +496,7 @@ class mob_hellfire_channeler : public CreatureScript
Check_Timer = 5000;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (instance)
instance->SetData(DATA_CHANNELER_EVENT, IN_PROGRESS);
@@ -503,7 +505,7 @@ class mob_hellfire_channeler : public CreatureScript
DoZoneInCombat();
}
- void JustReachedHome()
+ void JustReachedHome() OVERRIDE
{
if (instance)
instance->SetData(DATA_CHANNELER_EVENT, NOT_STARTED);
@@ -511,24 +513,24 @@ class mob_hellfire_channeler : public CreatureScript
DoCast(me, SPELL_SHADOW_GRASP_C, false);
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
- summon->AI()->AttackStart(me->getVictim());
+ summon->AI()->AttackStart(me->GetVictim());
}
- void DamageTaken(Unit*, uint32 &damage)
+ void DamageTaken(Unit*, uint32 &damage) OVERRIDE
{
if (damage >= me->GetHealth())
DoCast(me, SPELL_SOUL_TRANSFER, true);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
instance->SetData(DATA_CHANNELER_EVENT, DONE);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -572,9 +574,9 @@ class mob_hellfire_channeler : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_hellfire_channelerAI(creature);
+ return new npc_hellfire_channelerAI(creature);
}
};
@@ -586,7 +588,7 @@ public:
{
}
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
InstanceScript* instance = go->GetInstanceScript();
@@ -596,7 +598,7 @@ public:
if (instance->GetData(DATA_MAGTHERIDON_EVENT) != IN_PROGRESS)
return true;
Creature* Magtheridon =Unit::GetCreature(*go, instance->GetData64(DATA_MAGTHERIDON));
- if (!Magtheridon || !Magtheridon->isAlive())
+ if (!Magtheridon || !Magtheridon->IsAlive())
return true;
// if exhausted or already channeling return
@@ -614,8 +616,8 @@ public:
void AddSC_boss_magtheridon()
{
new boss_magtheridon();
- new mob_hellfire_channeler();
- new mob_abyssal();
+ new npc_hellfire_channeler();
+ new npc_abyssal();
new go_manticron_cube();
}
diff --git a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp
index 3d34d1fd6ae..efca48505a8 100644
--- a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp
@@ -28,7 +28,7 @@ EndScriptData */
#include "InstanceScript.h"
#include "magtheridons_lair.h"
-enum eSpells
+enum Spells
{
SPELL_SOUL_TRANSFER = 30531, // core bug, does not support target 7
SPELL_BLAZE_TARGET = 30541, // core bug, does not support target 7
@@ -123,7 +123,7 @@ class instance_magtheridons_lair : public InstanceMapScript
}
}
- uint64 GetData64(uint32 type) const
+ uint64 GetData64(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -133,7 +133,7 @@ class instance_magtheridons_lair : public InstanceMapScript
return 0;
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
switch (type)
{
@@ -155,7 +155,7 @@ class instance_magtheridons_lair : public InstanceMapScript
{
if (Creature* Channeler = instance->GetCreature(*i))
{
- if (Channeler->isAlive())
+ if (Channeler->IsAlive())
Channeler->AI()->EnterEvadeMode();
else
Channeler->Respawn();
@@ -173,12 +173,12 @@ class instance_magtheridons_lair : public InstanceMapScript
for (std::set<uint64>::const_iterator i = ChannelerGUID.begin(); i != ChannelerGUID.end(); ++i)
{
Creature* Channeler = instance->GetCreature(*i);
- if (Channeler && Channeler->isAlive())
+ if (Channeler && Channeler->IsAlive())
Channeler->AI()->AttackStart(Channeler->SelectNearestTarget(999));
}
// Release Magtheridon after two minutes.
Creature* Magtheridon = instance->GetCreature(MagtheridonGUID);
- if (Magtheridon && Magtheridon->isAlive())
+ if (Magtheridon && Magtheridon->IsAlive())
{
Magtheridon->MonsterTextEmote(EMOTE_BONDS_WEAKEN, 0);
CageTimer = 120000;
@@ -190,7 +190,7 @@ class instance_magtheridons_lair : public InstanceMapScript
for (std::set<uint64>::const_iterator i = ChannelerGUID.begin(); i != ChannelerGUID.end(); ++i)
{
Creature* Channeler = instance->GetCreature(*i);
- if (Channeler && Channeler->isAlive())
+ if (Channeler && Channeler->IsAlive())
{
//Channeler->CastSpell(Channeler, SPELL_SOUL_TRANSFER, true);
data = IN_PROGRESS;
@@ -211,7 +211,7 @@ class instance_magtheridons_lair : public InstanceMapScript
}
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
if (type == DATA_MAGTHERIDON_EVENT)
return m_auiEncounter[0];
@@ -225,7 +225,7 @@ class instance_magtheridons_lair : public InstanceMapScript
if (CageTimer <= diff)
{
Creature* Magtheridon = instance->GetCreature(MagtheridonGUID);
- if (Magtheridon && Magtheridon->isAlive())
+ if (Magtheridon && Magtheridon->IsAlive())
{
Magtheridon->ClearUnitState(UNIT_STATE_STUNNED);
Magtheridon->AI()->AttackStart(Magtheridon->SelectNearestTarget(999));
@@ -242,7 +242,7 @@ class instance_magtheridons_lair : public InstanceMapScript
{
if (Creature* Channeler = instance->GetCreature(*i))
{
- if (Channeler->isAlive())
+ if (Channeler->IsAlive())
Channeler->AI()->EnterEvadeMode();
else
Channeler->Respawn();
@@ -254,7 +254,7 @@ class instance_magtheridons_lair : public InstanceMapScript
}
};
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_magtheridons_lair_InstanceMapScript(map);
}
diff --git a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/magtheridons_lair.h b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/magtheridons_lair.h
index 9a4e4613d59..f67b8ff3256 100644
--- a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/magtheridons_lair.h
+++ b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/magtheridons_lair.h
@@ -19,10 +19,14 @@
#ifndef DEF_MAGTHERIDONS_LAIR_H
#define DEF_MAGTHERIDONS_LAIR_H
-#define DATA_MAGTHERIDON_EVENT 1
-#define DATA_MAGTHERIDON 3
-#define DATA_CHANNELER_EVENT 2
-#define DATA_COLLAPSE 6
-#define DATA_CHANNELER 9
+enum DataTypes
+{
+ DATA_MAGTHERIDON_EVENT = 1,
+ DATA_MAGTHERIDON = 3,
+ DATA_CHANNELER_EVENT = 2,
+ DATA_COLLAPSE = 6,
+ DATA_CHANNELER = 9
+};
+
#endif
diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp
index 4095f3295fa..0dbd21ff94a 100644
--- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp
@@ -25,15 +25,15 @@ EndScriptData */
/* ContentData
boss_grand_warlock_nethekurse
-mob_fel_orc_convert
-mob_lesser_shadow_fissure
+npc_fel_orc_convert
+npc_lesser_shadow_fissure
EndContentData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "shattered_halls.h"
-enum eSays
+enum Says
{
SAY_INTRO = 0,
SAY_PEON_ATTACKED = 1,
@@ -44,9 +44,9 @@ enum eSays
SAY_DIE = 6
};
-enum eSpells
+enum Spells
{
- SPELL_DEATH_COIL = 30500,
+ SPELL_DEATH_COIL = 30500, // 30741 heroic
SPELL_DARK_SPIN = 30502, // core bug spell attack caster :D
SPELL_SHADOW_FISSURE = 30496, // Summon the ShadowFissure NPC
SPELL_SHADOW_CLEAVE = 30495,
@@ -54,42 +54,38 @@ enum eSpells
SPELL_HEMORRHAGE = 30478,
SPELL_CONSUMPTION = 30497,
SPELL_TEMPORARY_VISUAL = 39312, // this is wrong, a temporary solution. spell consumption already has the purple visual, but doesn't display as it should
+
+ SPELL_SHADOW_SEAR = 30735 // cast on entry 17083 which then makes sound 1343
+ // 30948 cast on self by 17687
};
-class boss_grand_warlock_nethekurse : public CreatureScript
+enum SetData
{
- public:
-
- boss_grand_warlock_nethekurse()
- : CreatureScript("boss_grand_warlock_nethekurse")
- {
- }
-
- struct boss_grand_warlock_nethekurseAI : public ScriptedAI
- {
- boss_grand_warlock_nethekurseAI(Creature* creature) : ScriptedAI(creature)
- {
- instance = creature->GetInstanceScript();
- }
+ SETDATA_DATA = 1,
+ SETDATA_PEON_AGGRO = 1,
+ SETDATA_PEON_DEATH = 2
+};
- InstanceScript* instance;
+enum Events
+{
+ // Fel Orc Convert
+ EVENT_HEMORRHAGE = 1
+};
- bool IntroOnce;
- bool IsIntroEvent;
- bool IsMainEvent;
- bool SpinOnce;
- //bool HasTaunted;
- bool Phase;
+// ########################################################
+// Grand Warlock Nethekurse
+// ########################################################
- uint32 PeonEngagedCount;
- uint32 PeonKilledCount;
+class boss_grand_warlock_nethekurse : public CreatureScript
+{
+ public:
+ boss_grand_warlock_nethekurse() : CreatureScript("boss_grand_warlock_nethekurse") { }
- uint32 IntroEvent_Timer;
- uint32 DeathCoil_Timer;
- uint32 ShadowFissure_Timer;
- uint32 Cleave_Timer;
+ struct boss_grand_warlock_nethekurseAI : public BossAI
+ {
+ boss_grand_warlock_nethekurseAI(Creature* creature) : BossAI(creature, DATA_NETHEKURSE) { }
- void Reset()
+ void Reset() OVERRIDE
{
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
@@ -103,34 +99,50 @@ class boss_grand_warlock_nethekurse : public CreatureScript
PeonEngagedCount = 0;
PeonKilledCount = 0;
- IntroEvent_Timer = 90000; //how long before getting bored and kills his minions?
+ IntroEvent_Timer = 90000; // how long before getting bored and kills his minions?
DeathCoil_Timer = 20000;
ShadowFissure_Timer = 8000;
Cleave_Timer = 5000;
}
- void DoYellForPeonAggro()
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
- if (PeonEngagedCount >= 4)
- return;
+ Talk(SAY_DIE);
- Talk(SAY_PEON_ATTACKED);
- ++PeonEngagedCount;
+ if (instance)
+ instance->SetBossState(DATA_NETHEKURSE, DONE);
}
- void DoYellForPeonDeath()
+ void SetData(uint32 data, uint32 value) OVERRIDE
{
- if (PeonKilledCount >= 4)
+ if (data != SETDATA_DATA)
return;
- Talk(SAY_PEON_DIES);
- ++PeonKilledCount;
-
- if (PeonKilledCount == 4)
+ switch (value)
{
- IsIntroEvent = false;
- IsMainEvent = true;
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ case SETDATA_PEON_AGGRO:
+ if (PeonEngagedCount >= 4)
+ return;
+
+ Talk(SAY_PEON_ATTACKED);
+ ++PeonEngagedCount;
+ break;
+ case SETDATA_PEON_DEATH:
+ if (PeonKilledCount >= 4)
+ return;
+
+ Talk(SAY_PEON_DIES);
+ ++PeonKilledCount;
+
+ if (PeonKilledCount == 4)
+ {
+ IsIntroEvent = false;
+ IsMainEvent = true;
+ me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ }
+ break;
+ default:
+ break;
}
}
@@ -146,7 +158,7 @@ class boss_grand_warlock_nethekurse : public CreatureScript
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (IsIntroEvent || !IsMainEvent)
return;
@@ -160,9 +172,10 @@ class boss_grand_warlock_nethekurse : public CreatureScript
}
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
- if (!IntroOnce && me->IsWithinDistInMap(who, 50.0f))
+ if (!IntroOnce && me->IsWithinDistInMap(who, 30.0f))
{
if (who->GetTypeId() != TYPEID_PLAYER)
return;
@@ -172,7 +185,7 @@ class boss_grand_warlock_nethekurse : public CreatureScript
IsIntroEvent = true;
if (instance)
- instance->SetData(TYPE_NETHEKURSE, IN_PROGRESS);
+ instance->SetBossState(DATA_NETHEKURSE, IN_PROGRESS);
}
if (IsIntroEvent || !IsMainEvent)
@@ -181,12 +194,12 @@ class boss_grand_warlock_nethekurse : public CreatureScript
ScriptedAI::MoveInLineOfSight(who);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
summoned->setFaction(16);
summoned->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
@@ -197,30 +210,19 @@ class boss_grand_warlock_nethekurse : public CreatureScript
summoned->CastSpell(summoned, SPELL_CONSUMPTION, false, 0, 0, me->GetGUID());
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
- {
- Talk(SAY_DIE);
-
- if (!instance)
- return;
-
- instance->SetData(TYPE_NETHEKURSE, DONE);
- instance->HandleGameObject(instance->GetData64(DATA_NETHEKURSE_DOOR), true);
- }
-
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (IsIntroEvent)
{
if (!instance)
return;
- if (instance->GetData(TYPE_NETHEKURSE) == IN_PROGRESS)
+ if (instance->GetBossState(DATA_NETHEKURSE) == IN_PROGRESS)
{
if (IntroEvent_Timer <= diff)
DoTauntPeons();
@@ -239,13 +241,13 @@ class boss_grand_warlock_nethekurse : public CreatureScript
{
if (!SpinOnce)
{
- DoCast(me->getVictim(), SPELL_DARK_SPIN);
+ DoCastVictim(SPELL_DARK_SPIN);
SpinOnce = true;
}
if (Cleave_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_SHADOW_CLEAVE);
+ DoCastVictim(SPELL_SHADOW_CLEAVE);
Cleave_Timer = 6000+rand()%2500;
}
else
@@ -277,126 +279,128 @@ class boss_grand_warlock_nethekurse : public CreatureScript
DoMeleeAttackIfReady();
}
}
+
+ private:
+ uint32 PeonEngagedCount;
+ uint32 PeonKilledCount;
+ uint32 IntroEvent_Timer;
+ uint32 DeathCoil_Timer;
+ uint32 ShadowFissure_Timer;
+ uint32 Cleave_Timer;
+ bool IntroOnce;
+ bool IsIntroEvent;
+ bool IsMainEvent;
+ bool SpinOnce;
+ //bool HasTaunted;
+ bool Phase;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_grand_warlock_nethekurseAI(creature);
}
};
-class mob_fel_orc_convert : public CreatureScript
+// ########################################################
+// Fel Orc Convert
+// ########################################################
+
+class npc_fel_orc_convert : public CreatureScript
{
public:
+ npc_fel_orc_convert() : CreatureScript("npc_fel_orc_convert") { }
- mob_fel_orc_convert()
- : CreatureScript("mob_fel_orc_convert")
+ struct npc_fel_orc_convertAI : public ScriptedAI
{
- }
-
- struct mob_fel_orc_convertAI : public ScriptedAI
- {
- mob_fel_orc_convertAI(Creature* creature) : ScriptedAI(creature)
+ npc_fel_orc_convertAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
- InstanceScript* instance;
- uint32 Hemorrhage_Timer;
-
- void Reset()
+ void Reset() OVERRIDE
{
me->SetNoCallAssistance(true); //we don't want any assistance (WE R HEROZ!)
- Hemorrhage_Timer = 3000;
}
- void MoveInLineOfSight(Unit* /*who*/)
- {
- }
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE { }
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
- if (instance)
- {
- if (instance->GetData64(DATA_NETHEKURSE))
- {
- Creature* pKurse = Unit::GetCreature(*me, instance->GetData64(DATA_NETHEKURSE));
- if (pKurse && me->IsWithinDist(pKurse, 45.0f))
- {
- CAST_AI(boss_grand_warlock_nethekurse::boss_grand_warlock_nethekurseAI, pKurse->AI())->DoYellForPeonAggro();
+ events.ScheduleEvent(EVENT_HEMORRHAGE, 3000);
- if (instance->GetData(TYPE_NETHEKURSE) == IN_PROGRESS)
- return;
- else
- instance->SetData(TYPE_NETHEKURSE, IN_PROGRESS);
- }
- }
- }
+ if (instance)
+ if (Creature* Kurse = Unit::GetCreature(*me, instance->GetData64(NPC_GRAND_WARLOCK_NETHEKURSE)))
+ if (Kurse && me->IsWithinDist(Kurse, 45.0f))
+ Kurse->AI()->SetData(SETDATA_DATA, SETDATA_PEON_AGGRO);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
{
- if (instance->GetData(TYPE_NETHEKURSE) != IN_PROGRESS)
+ if (instance->GetBossState(DATA_NETHEKURSE) != IN_PROGRESS)
return;
- if (instance->GetData64(DATA_NETHEKURSE))
- if (Creature* pKurse = Unit::GetCreature(*me, instance->GetData64(DATA_NETHEKURSE)))
- CAST_AI(boss_grand_warlock_nethekurse::boss_grand_warlock_nethekurseAI, pKurse->AI())->DoYellForPeonDeath();
+
+ if (Creature* Kurse = Unit::GetCreature(*me, instance->GetData64(NPC_GRAND_WARLOCK_NETHEKURSE)))
+ Kurse->AI()->SetData(SETDATA_DATA, SETDATA_PEON_DEATH);
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
- if (Hemorrhage_Timer <= diff)
+ events.Update(diff);
+
+ if (events.ExecuteEvent() == EVENT_HEMORRHAGE)
{
- DoCast(me->getVictim(), SPELL_HEMORRHAGE);
- Hemorrhage_Timer = 15000;
- } else Hemorrhage_Timer -= diff;
+ DoCastVictim(SPELL_HEMORRHAGE);
+ events.ScheduleEvent(EVENT_HEMORRHAGE, 15000);
+ }
DoMeleeAttackIfReady();
}
+
+ private:
+ InstanceScript* instance;
+ EventMap events;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_fel_orc_convertAI(creature);
+ return new npc_fel_orc_convertAI(creature);
}
};
-//NOTE: this Creature are also summoned by other spells, for different creatures
-class mob_lesser_shadow_fissure : public CreatureScript
+// ########################################################
+// Lesser Shadow Fissure
+// ########################################################
+
+class npc_lesser_shadow_fissure : public CreatureScript
{
public:
+ npc_lesser_shadow_fissure() : CreatureScript("npc_lesser_shadow_fissure") { }
- mob_lesser_shadow_fissure()
- : CreatureScript("mob_lesser_shadow_fissure")
+ struct npc_lesser_shadow_fissureAI : public ScriptedAI
{
- }
+ npc_lesser_shadow_fissureAI(Creature* creature) : ScriptedAI(creature) {}
- struct mob_lesser_shadow_fissureAI : public ScriptedAI
- {
- mob_lesser_shadow_fissureAI(Creature* creature) : ScriptedAI(creature) {}
-
- void Reset() { }
- void MoveInLineOfSight(Unit* /*who*/) {}
- void AttackStart(Unit* /*who*/) {}
- void EnterCombat(Unit* /*who*/) {}
+ void Reset() OVERRIDE {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
+ void AttackStart(Unit* /*who*/) OVERRIDE {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_lesser_shadow_fissureAI (creature);
+ return new npc_lesser_shadow_fissureAI(creature);
}
};
void AddSC_boss_grand_warlock_nethekurse()
{
new boss_grand_warlock_nethekurse();
- new mob_fel_orc_convert();
- new mob_lesser_shadow_fissure();
+ new npc_fel_orc_convert();
+ new npc_lesser_shadow_fissure();
}
-
diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp
index 89a585e415f..9c4be7c0b1b 100644
--- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp
@@ -24,7 +24,7 @@ SDCategory: Hellfire Citadel, Shattered Halls
EndScriptData */
/* ContentData
-mob_omrogg_heads
+npc_omrogg_heads
boss_warbringer_omrogg
EndContentData */
@@ -32,23 +32,41 @@ EndContentData */
#include "ScriptedCreature.h"
#include "shattered_halls.h"
-enum eEnums
+enum Yells
{
YELL_DIE_L = 0,
YELL_DIE_R = 1,
EMOTE_ENRAGE = 2,
+};
+enum Spells
+{
SPELL_BLAST_WAVE = 30600,
SPELL_FEAR = 30584,
SPELL_THUNDERCLAP = 30633,
SPELL_BURNING_MAUL = 30598,
H_SPELL_BURNING_MAUL = 36056,
+};
+enum Creatures
+{
NPC_LEFT_HEAD = 19523,
NPC_RIGHT_HEAD = 19524
};
+enum SetData
+{
+ SETDATA_DATA = 1,
+ SETDATA_YELL = 1
+};
+
+enum Events
+{
+ // Omrogg Heads
+ EVENT_DEATH_YELL = 1
+};
+
struct Yell
{
int32 id;
@@ -61,6 +79,7 @@ static Yell GoCombat[]=
{1, NPC_LEFT_HEAD},
{2, NPC_LEFT_HEAD},
};
+
static Yell GoCombatDelay[]=
{
{0, NPC_RIGHT_HEAD},
@@ -75,6 +94,7 @@ static Yell Threat[]=
{4, NPC_LEFT_HEAD},
{5, NPC_LEFT_HEAD},
};
+
static Yell ThreatDelay1[]=
{
{4, NPC_RIGHT_HEAD},
@@ -82,6 +102,7 @@ static Yell ThreatDelay1[]=
{5, NPC_RIGHT_HEAD},
{6, NPC_RIGHT_HEAD},
};
+
static Yell ThreatDelay2[]=
{
{7, NPC_LEFT_HEAD},
@@ -102,104 +123,34 @@ static Yell KillingDelay[]=
{11, NPC_LEFT_HEAD},
};
-class mob_omrogg_heads : public CreatureScript
-{
- public:
-
- mob_omrogg_heads()
- : CreatureScript("mob_omrogg_heads")
- {
- }
-
- struct mob_omrogg_headsAI : public ScriptedAI
- {
- mob_omrogg_headsAI(Creature* creature) : ScriptedAI(creature) {}
-
- bool DeathYell;
- uint32 Death_Timer;
-
- void Reset()
- {
- Death_Timer = 4000;
- DeathYell = false;
- }
- void EnterCombat(Unit* /*who*/) {}
-
- void DoDeathYell()
- {
- DeathYell = true;
- }
-
- void UpdateAI(uint32 diff)
- {
- if (!DeathYell)
- return;
-
- if (Death_Timer <= diff)
- {
- Talk(YELL_DIE_R);
- Death_Timer = false;
- me->setDeathState(JUST_DIED);
- } else Death_Timer -= diff;
- }
- };
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_omrogg_headsAI(creature);
- }
-};
+// ########################################################
+// Warbringer_Omrogg
+// ########################################################
class boss_warbringer_omrogg : public CreatureScript
{
public:
+ boss_warbringer_omrogg() : CreatureScript("boss_warbringer_omrogg") { }
- boss_warbringer_omrogg()
- : CreatureScript("boss_warbringer_omrogg")
+ struct boss_warbringer_omroggAI : public BossAI
{
- }
-
- struct boss_warbringer_omroggAI : public ScriptedAI
- {
- boss_warbringer_omroggAI(Creature* creature) : ScriptedAI(creature)
+ boss_warbringer_omroggAI(Creature* creature) : BossAI(creature, DATA_OMROGG)
{
LeftHeadGUID = 0;
RightHeadGUID = 0;
- instance = creature->GetInstanceScript();
}
- InstanceScript* instance;
-
- uint64 LeftHeadGUID;
- uint64 RightHeadGUID;
- int iaggro;
- int ithreat;
- int ikilling;
-
- bool AggroYell;
- bool ThreatYell;
- bool ThreatYell2;
- bool KillingYell;
-
- uint32 Delay_Timer;
- uint32 BlastWave_Timer;
- uint32 BlastCount;
- uint32 Fear_Timer;
- uint32 BurningMaul_Timer;
- uint32 ThunderClap_Timer;
- uint32 ResetThreat_Timer;
-
- void Reset()
+ void Reset() OVERRIDE
{
- if (Unit* pLeftHead = Unit::GetUnit(*me, LeftHeadGUID))
+ if (Unit* LeftHead = Unit::GetUnit(*me, LeftHeadGUID))
{
- pLeftHead->setDeathState(JUST_DIED);
+ LeftHead->setDeathState(JUST_DIED);
LeftHeadGUID = 0;
}
- if (Unit* pRightHead = Unit::GetUnit(*me, RightHeadGUID))
+ if (Unit* RightHead = Unit::GetUnit(*me, RightHeadGUID))
{
- pRightHead->setDeathState(JUST_DIED);
+ RightHead->setDeathState(JUST_DIED);
RightHeadGUID = 0;
}
@@ -217,20 +168,20 @@ class boss_warbringer_omrogg : public CreatureScript
ResetThreat_Timer = 30000;
if (instance)
- instance->SetData(TYPE_OMROGG, NOT_STARTED); //End boss can use this later. O'mrogg must be defeated(DONE) or he will come to aid.
+ instance->SetData(DATA_OMROGG, NOT_STARTED); //End boss can use this later. O'mrogg must be defeated(DONE) or he will come to aid.
}
void DoYellForThreat()
{
- Creature* pLeftHead = Creature::GetCreature(*me, LeftHeadGUID);
- Creature* pRightHead = Unit::GetCreature(*me, RightHeadGUID);
+ Creature* LeftHead = Creature::GetCreature(*me, LeftHeadGUID);
+ Creature* RightHead = Unit::GetCreature(*me, RightHeadGUID);
- if (!pLeftHead || !pRightHead)
+ if (!LeftHead || !RightHead)
return;
ithreat = rand()%4;
- Creature* source = (pLeftHead->GetEntry() == Threat[ithreat].creature ? pLeftHead : pRightHead);
+ Creature* source = (LeftHead->GetEntry() == Threat[ithreat].creature ? LeftHead : RightHead);
source->AI()->Talk(Threat[ithreat].id);
@@ -238,26 +189,26 @@ class boss_warbringer_omrogg : public CreatureScript
ThreatYell = true;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
me->SummonCreature(NPC_LEFT_HEAD, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_DEAD_DESPAWN, 0);
me->SummonCreature(NPC_RIGHT_HEAD, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_DEAD_DESPAWN, 0);
- if (Creature* pLeftHead = Creature::GetCreature(*me, LeftHeadGUID))
+ if (Creature* LeftHead = Creature::GetCreature(*me, LeftHeadGUID))
{
iaggro = rand()%3;
- pLeftHead->AI()->Talk(GoCombat[iaggro].id);
+ LeftHead->AI()->Talk(GoCombat[iaggro].id);
Delay_Timer = 3500;
AggroYell = true;
}
if (instance)
- instance->SetData(TYPE_OMROGG, IN_PROGRESS);
+ instance->SetBossState(DATA_OMROGG, IN_PROGRESS);
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
if (summoned->GetEntry() == NPC_LEFT_HEAD)
LeftHeadGUID = summoned->GetGUID();
@@ -270,17 +221,17 @@ class boss_warbringer_omrogg : public CreatureScript
summoned->SetVisible(false);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
- Creature* pLeftHead = Creature::GetCreature(*me, LeftHeadGUID);
- Creature* pRightHead = Creature::GetCreature(*me, RightHeadGUID);
+ Creature* LeftHead = Creature::GetCreature(*me, LeftHeadGUID);
+ Creature* RightHead = Creature::GetCreature(*me, RightHeadGUID);
- if (!pLeftHead || !pRightHead)
+ if (!LeftHead || !RightHead)
return;
ikilling = rand()%2;
- Creature* source = (pLeftHead->GetEntry() == Killing[ikilling].creature ? pLeftHead : pRightHead);
+ Creature* source = (LeftHead->GetEntry() == Killing[ikilling].creature ? LeftHead : RightHead);
switch (ikilling)
{
@@ -296,43 +247,43 @@ class boss_warbringer_omrogg : public CreatureScript
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
- Creature* pLeftHead = Creature::GetCreature(*me, LeftHeadGUID);
- Creature* pRightHead = Creature::GetCreature(*me, RightHeadGUID);
+ Creature* LeftHead = Creature::GetCreature(*me, LeftHeadGUID);
+ Creature* RightHead = Creature::GetCreature(*me, RightHeadGUID);
- if (!pLeftHead || !pRightHead)
+ if (!LeftHead || !RightHead)
return;
- pLeftHead->AI()->Talk(YELL_DIE_L);
+ LeftHead->AI()->Talk(YELL_DIE_L);
- CAST_AI(mob_omrogg_heads::mob_omrogg_headsAI, pRightHead->ToCreature()->AI())->DoDeathYell();
+ RightHead->AI()->SetData(SETDATA_DATA, SETDATA_YELL);
if (instance)
- instance->SetData(TYPE_OMROGG, DONE);
+ instance->SetBossState(DATA_OMROGG, DONE);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (Delay_Timer <= diff)
{
Delay_Timer = 3500;
- Creature* pLeftHead = Creature::GetCreature(*me, LeftHeadGUID);
- Creature* pRightHead = Creature::GetCreature(*me, RightHeadGUID);
+ Creature* LeftHead = Creature::GetCreature(*me, LeftHeadGUID);
+ Creature* RightHead = Creature::GetCreature(*me, RightHeadGUID);
- if (!pLeftHead || !pRightHead)
+ if (!LeftHead || !RightHead)
return;
if (AggroYell)
{
- pRightHead->AI()->Talk(GoCombatDelay[iaggro].id);
+ RightHead->AI()->Talk(GoCombatDelay[iaggro].id);
AggroYell = false;
}
if (ThreatYell2)
{
- Creature* source = (pLeftHead->GetEntry() == ThreatDelay2[ithreat].creature ? pLeftHead : pRightHead);
+ Creature* source = (LeftHead->GetEntry() == ThreatDelay2[ithreat].creature ? LeftHead : RightHead);
source->AI()->Talk(ThreatDelay2[ithreat].id);
ThreatYell2 = false;
@@ -340,7 +291,7 @@ class boss_warbringer_omrogg : public CreatureScript
if (ThreatYell)
{
- Creature* source = (pLeftHead->GetEntry() == ThreatDelay1[ithreat].creature ? pLeftHead : pRightHead);
+ Creature* source = (LeftHead->GetEntry() == ThreatDelay1[ithreat].creature ? LeftHead : RightHead);
source->AI()->Talk(ThreatDelay1[ithreat].id);
ThreatYell = false;
@@ -349,7 +300,7 @@ class boss_warbringer_omrogg : public CreatureScript
if (KillingYell)
{
- Creature* source = (pLeftHead->GetEntry() == KillingDelay[ikilling].creature ? pLeftHead : pRightHead);
+ Creature* source = (LeftHead->GetEntry() == KillingDelay[ikilling].creature ? LeftHead : RightHead);
source->AI()->Talk(KillingDelay[ikilling].id);
KillingYell = false;
@@ -413,16 +364,86 @@ class boss_warbringer_omrogg : public CreatureScript
DoMeleeAttackIfReady();
}
+
+ private:
+ uint64 LeftHeadGUID;
+ uint64 RightHeadGUID;
+ int iaggro;
+ int ithreat;
+ int ikilling;
+
+ bool AggroYell;
+ bool ThreatYell;
+ bool ThreatYell2;
+ bool KillingYell;
+
+ uint32 Delay_Timer;
+ uint32 BlastWave_Timer;
+ uint32 BlastCount;
+ uint32 Fear_Timer;
+ uint32 BurningMaul_Timer;
+ uint32 ThunderClap_Timer;
+ uint32 ResetThreat_Timer;
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new boss_warbringer_omroggAI(creature);
+ }
+};
+
+// ########################################################
+// Omrogg Heads
+// ########################################################
+
+class npc_omrogg_heads : public CreatureScript
+{
+ public:
+ npc_omrogg_heads() : CreatureScript("npc_omrogg_heads") { }
+
+ struct npc_omrogg_headsAI : public ScriptedAI
+ {
+ npc_omrogg_headsAI(Creature* creature) : ScriptedAI(creature)
+ {
+ instance = creature->GetInstanceScript();
+ }
+
+ void Reset() OVERRIDE { }
+
+ void EnterCombat(Unit* /*who*/) OVERRIDE { }
+
+ void SetData(uint32 data, uint32 value)
+ {
+ if (data == SETDATA_DATA && value == SETDATA_YELL)
+ {
+ events.ScheduleEvent(EVENT_DEATH_YELL, 4000);
+ }
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ events.Update(diff);
+
+ if (events.ExecuteEvent() == EVENT_DEATH_YELL)
+ {
+ Talk(YELL_DIE_R);
+ me->setDeathState(JUST_DIED);
+ }
+ }
+
+ private:
+ InstanceScript* instance;
+ EventMap events;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_warbringer_omroggAI (creature);
+ return new npc_omrogg_headsAI(creature);
}
};
+
void AddSC_boss_warbringer_omrogg()
{
new boss_warbringer_omrogg();
- new mob_omrogg_heads();
+ new npc_omrogg_heads();
}
-
diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp
index a13d91e8bff..f9ec3edb362 100644
--- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp
@@ -29,66 +29,45 @@ EndContentData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
+#include "shattered_halls.h"
-enum eSays
+enum Says
{
SAY_AGGRO = 0,
SAY_SLAY = 1,
SAY_DEATH = 2
};
-enum eSpells
+enum Spells
{
- SPELL_BLADE_DANCE = 30739,
- H_SPELL_CHARGE = 25821,
+ SPELL_BLADE_DANCE = 30739,
+ H_SPELL_CHARGE = 25821
};
-enum eCreatures
+enum Creatures
{
- MOB_SHATTERED_ASSASSIN = 17695,
- MOB_HEARTHEN_GUARD = 17621,
- MOB_SHARPSHOOTER_GUARD = 17622,
- MOB_REAVER_GUARD = 17623,
+ NPC_SHATTERED_ASSASSIN = 17695,
+ NPC_HEARTHEN_GUARD = 17621,
+ NPC_SHARPSHOOTER_GUARD = 17622,
+ NPC_REAVER_GUARD = 17623
};
-#define TARGET_NUM 5
+#define TARGET_NUM 5
-float AssassEntrance[3] = {275.136f, -84.29f, 2.3f}; // y -8
-float AssassExit[3] = {184.233f, -84.29f, 2.3f}; // y -8
-float AddsEntrance[3] = {306.036f, -84.29f, 1.93f};
+float AssassEntrance[3] = { 275.136f, -84.29f, 2.3f }; // y -8
+float AssassExit[3] = { 184.233f, -84.29f, 2.3f }; // y -8
+float AddsEntrance[3] = { 306.036f, -84.29f, 1.93f };
class boss_warchief_kargath_bladefist : public CreatureScript
{
public:
+ boss_warchief_kargath_bladefist() : CreatureScript("boss_warchief_kargath_bladefist") { }
- boss_warchief_kargath_bladefist()
- : CreatureScript("boss_warchief_kargath_bladefist")
+ struct boss_warchief_kargath_bladefistAI : public BossAI
{
- }
-
- struct boss_warchief_kargath_bladefistAI : public ScriptedAI
- {
- boss_warchief_kargath_bladefistAI(Creature* creature) : ScriptedAI(creature)
- {
- }
-
- std::vector<uint64> adds;
- std::vector<uint64> assassins;
+ boss_warchief_kargath_bladefistAI(Creature* creature) : BossAI(creature, DATA_KARGATH) { }
- uint32 Charge_timer;
- uint32 Blade_Dance_Timer;
- uint32 Summon_Assistant_Timer;
- uint32 resetcheck_timer;
- uint32 Wait_Timer;
-
- uint32 Assassins_Timer;
-
- uint32 summoned;
- bool InBlade;
-
- uint32 target_num;
-
- void Reset()
+ void Reset() OVERRIDE
{
removeAdds();
@@ -106,28 +85,37 @@ class boss_warchief_kargath_bladefist : public CreatureScript
resetcheck_timer = 5000;
}
- void EnterCombat(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
+ {
+ Talk(SAY_DEATH);
+ removeAdds();
+
+ if (instance)
+ instance->SetBossState(DATA_KARGATH, DONE);
+ }
+
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
switch (summoned->GetEntry())
{
- case MOB_HEARTHEN_GUARD:
- case MOB_SHARPSHOOTER_GUARD:
- case MOB_REAVER_GUARD:
+ case NPC_HEARTHEN_GUARD:
+ case NPC_SHARPSHOOTER_GUARD:
+ case NPC_REAVER_GUARD:
summoned->AI()->AttackStart(SelectTarget(SELECT_TARGET_RANDOM, 0));
adds.push_back(summoned->GetGUID());
break;
- case MOB_SHATTERED_ASSASSIN:
+ case NPC_SHATTERED_ASSASSIN:
assassins.push_back(summoned->GetGUID());
break;
}
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
if (victim->GetTypeId() == TYPEID_PLAYER)
{
@@ -135,13 +123,7 @@ class boss_warchief_kargath_bladefist : public CreatureScript
}
}
- void JustDied(Unit* /*killer*/)
- {
- Talk(SAY_DEATH);
- removeAdds();
- }
-
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (InBlade)
{
@@ -165,7 +147,7 @@ class boss_warchief_kargath_bladefist : public CreatureScript
for (std::vector<uint64>::const_iterator itr = adds.begin(); itr!= adds.end(); ++itr)
{
Creature* creature = Unit::GetCreature(*me, *itr);
- if (creature && creature->isAlive())
+ if (creature && creature->IsAlive())
{
creature->GetMotionMaster()->Clear(true);
me->DealDamage(creature, creature->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
@@ -177,7 +159,7 @@ class boss_warchief_kargath_bladefist : public CreatureScript
for (std::vector<uint64>::const_iterator itr = assassins.begin(); itr!= assassins.end(); ++itr)
{
Creature* creature = Unit::GetCreature(*me, *itr);
- if (creature && creature->isAlive())
+ if (creature && creature->IsAlive())
{
creature->GetMotionMaster()->Clear(true);
me->DealDamage(creature, creature->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
@@ -188,13 +170,13 @@ class boss_warchief_kargath_bladefist : public CreatureScript
}
void SpawnAssassin()
{
- me->SummonCreature(MOB_SHATTERED_ASSASSIN, AssassEntrance[0], AssassEntrance[1]+8, AssassEntrance[2], 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
- me->SummonCreature(MOB_SHATTERED_ASSASSIN, AssassEntrance[0], AssassEntrance[1]-8, AssassEntrance[2], 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
- me->SummonCreature(MOB_SHATTERED_ASSASSIN, AssassExit[0], AssassExit[1]+8, AssassExit[2], 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
- me->SummonCreature(MOB_SHATTERED_ASSASSIN, AssassExit[0], AssassExit[1]-8, AssassExit[2], 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
+ me->SummonCreature(NPC_SHATTERED_ASSASSIN, AssassEntrance[0], AssassEntrance[1]+8, AssassEntrance[2], 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
+ me->SummonCreature(NPC_SHATTERED_ASSASSIN, AssassEntrance[0], AssassEntrance[1]-8, AssassEntrance[2], 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
+ me->SummonCreature(NPC_SHATTERED_ASSASSIN, AssassExit[0], AssassExit[1]+8, AssassExit[2], 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
+ me->SummonCreature(NPC_SHATTERED_ASSASSIN, AssassExit[0], AssassExit[1]-8, AssassExit[2], 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Return since we have no target
if (!UpdateVictim())
@@ -222,7 +204,7 @@ class boss_warchief_kargath_bladefist : public CreatureScript
// stop bladedance
InBlade = false;
me->SetSpeed(MOVE_RUN, 2);
- me->GetMotionMaster()->MoveChase(me->getVictim());
+ me->GetMotionMaster()->MoveChase(me->GetVictim());
Blade_Dance_Timer = 30000;
Wait_Timer = 0;
if (IsHeroic())
@@ -279,13 +261,13 @@ class boss_warchief_kargath_bladefist : public CreatureScript
switch (urand(0, 2))
{
case 0:
- me->SummonCreature(MOB_HEARTHEN_GUARD, AddsEntrance[0], AddsEntrance[1], AddsEntrance[2], 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
+ me->SummonCreature(NPC_HEARTHEN_GUARD, AddsEntrance[0], AddsEntrance[1], AddsEntrance[2], 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
break;
case 1:
- me->SummonCreature(MOB_SHARPSHOOTER_GUARD, AddsEntrance[0], AddsEntrance[1], AddsEntrance[2], 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
+ me->SummonCreature(NPC_SHARPSHOOTER_GUARD, AddsEntrance[0], AddsEntrance[1], AddsEntrance[2], 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
break;
case 2:
- me->SummonCreature(MOB_REAVER_GUARD, AddsEntrance[0], AddsEntrance[1], AddsEntrance[2], 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
+ me->SummonCreature(NPC_REAVER_GUARD, AddsEntrance[0], AddsEntrance[1], AddsEntrance[2], 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
break;
}
}
@@ -312,9 +294,22 @@ class boss_warchief_kargath_bladefist : public CreatureScript
else
resetcheck_timer -= diff;
}
+
+ private:
+ std::vector<uint64> adds;
+ std::vector<uint64> assassins;
+ uint32 Charge_timer;
+ uint32 Blade_Dance_Timer;
+ uint32 Summon_Assistant_Timer;
+ uint32 resetcheck_timer;
+ uint32 Wait_Timer;
+ uint32 Assassins_Timer;
+ uint32 summoned;
+ uint32 target_num;
+ bool InBlade;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_warchief_kargath_bladefistAI(creature);
}
@@ -324,4 +319,3 @@ void AddSC_boss_warchief_kargath_bladefist()
{
new boss_warchief_kargath_bladefist();
}
-
diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/instance_shattered_halls.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/instance_shattered_halls.cpp
index 95579aba002..1919e74e4ee 100644
--- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/instance_shattered_halls.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/instance_shattered_halls.cpp
@@ -19,7 +19,7 @@
/* ScriptData
SDName: Instance_Shattered_Halls
SD%Complete: 50
-SDComment: currently missing info about door. instance not complete
+SDComment: instance not complete
SDCategory: Hellfire Citadel, Shattered Halls
EndScriptData */
@@ -27,99 +27,144 @@ EndScriptData */
#include "InstanceScript.h"
#include "shattered_halls.h"
-#define MAX_ENCOUNTER 2
-
-#define DOOR_NETHEKURSE 1
-
class instance_shattered_halls : public InstanceMapScript
{
public:
- instance_shattered_halls()
- : InstanceMapScript("instance_shattered_halls", 540)
+ instance_shattered_halls() : InstanceMapScript("instance_shattered_halls", 540) { }
+
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
+ return new instance_shattered_halls_InstanceMapScript(map);
}
+
struct instance_shattered_halls_InstanceMapScript : public InstanceScript
{
- instance_shattered_halls_InstanceMapScript(Map* map) : InstanceScript(map) {}
-
- uint32 m_auiEncounter[MAX_ENCOUNTER];
- uint64 nethekurseGUID;
- uint64 nethekurseDoorGUID;
+ instance_shattered_halls_InstanceMapScript(Map* map) : InstanceScript(map) { }
void Initialize()
{
- memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
-
- nethekurseGUID = 0;
- nethekurseDoorGUID = 0;
+ SetBossNumber(EncounterCount);
+ nethekurseGUID = 0;
+ nethekurseDoor1GUID = 0;
+ nethekurseDoor2GUID = 0;
}
- void OnGameObjectCreate(GameObject* go)
+ void OnGameObjectCreate(GameObject* go) OVERRIDE
{
switch (go->GetEntry())
{
- case DOOR_NETHEKURSE:
- nethekurseDoorGUID = go->GetGUID();
+ case GO_GRAND_WARLOCK_CHAMBER_DOOR_1:
+ nethekurseDoor1GUID = go->GetGUID();
+ break;
+ case GO_GRAND_WARLOCK_CHAMBER_DOOR_2:
+ nethekurseDoor2GUID = go->GetGUID();
break;
}
}
- void OnCreatureCreate(Creature* creature)
+ void OnCreatureCreate(Creature* creature) OVERRIDE
{
switch (creature->GetEntry())
{
- case 16807:
+ case NPC_GRAND_WARLOCK_NETHEKURSE:
nethekurseGUID = creature->GetGUID();
break;
}
}
- void SetData(uint32 type, uint32 data)
+ bool SetBossState(uint32 type, EncounterState state) OVERRIDE
{
+ if (!InstanceScript::SetBossState(type, state))
+ return false;
+
switch (type)
{
- case TYPE_NETHEKURSE:
- m_auiEncounter[0] = data;
+ case DATA_NETHEKURSE:
+ if (state == IN_PROGRESS)
+ {
+ HandleGameObject(nethekurseDoor1GUID, false);
+ HandleGameObject(nethekurseDoor2GUID, false);
+ }
+ else
+ {
+ HandleGameObject(nethekurseDoor1GUID, true);
+ HandleGameObject(nethekurseDoor2GUID, true);
+ }
break;
- case TYPE_OMROGG:
- m_auiEncounter[1] = data;
+ case DATA_OMROGG:
break;
}
+ return true;
}
- uint32 GetData(uint32 type) const
+ uint64 GetData64(uint32 data) const OVERRIDE
{
- switch (type)
+ switch (data)
{
- case TYPE_NETHEKURSE:
- return m_auiEncounter[0];
- case TYPE_OMROGG:
- return m_auiEncounter[1];
+ case NPC_GRAND_WARLOCK_NETHEKURSE:
+ return nethekurseGUID;
+ break;
+ case GO_GRAND_WARLOCK_CHAMBER_DOOR_1:
+ return nethekurseDoor1GUID;
+ break;
+ case GO_GRAND_WARLOCK_CHAMBER_DOOR_2:
+ return nethekurseDoor2GUID;
+ break;
}
return 0;
}
- uint64 GetData64(uint32 data) const
+ std::string GetSaveData()
{
- switch (data)
+ OUT_SAVE_INST_DATA;
+
+ std::ostringstream saveStream;
+ saveStream << "S H " << GetBossSaveData();
+
+ OUT_SAVE_INST_DATA_COMPLETE;
+ return saveStream.str();
+ }
+
+ void Load(const char* strIn)
+ {
+ if (!strIn)
{
- case DATA_NETHEKURSE:
- return nethekurseGUID;
- case DATA_NETHEKURSE_DOOR:
- return nethekurseDoorGUID;
+ OUT_LOAD_INST_DATA_FAIL;
+ return;
}
- return 0;
+
+ OUT_LOAD_INST_DATA(strIn);
+
+ char dataHead1, dataHead2;
+
+ std::istringstream loadStream(strIn);
+ loadStream >> dataHead1 >> dataHead2;
+
+ if (dataHead1 == 'S' && dataHead2 == 'H')
+ {
+ for (uint8 i = 0; i < EncounterCount; ++i)
+ {
+ uint32 tmpState;
+ loadStream >> tmpState;
+ if (tmpState == IN_PROGRESS || tmpState > SPECIAL)
+ tmpState = NOT_STARTED;
+ SetBossState(i, EncounterState(tmpState));
+ }
+ }
+ else
+ OUT_LOAD_INST_DATA_FAIL;
+
+ OUT_LOAD_INST_DATA_COMPLETE;
}
- };
- InstanceScript* GetInstanceScript(InstanceMap* map) const
- {
- return new instance_shattered_halls_InstanceMapScript(map);
- }
+ protected:
+ uint64 nethekurseGUID;
+ uint64 nethekurseDoor1GUID;
+ uint64 nethekurseDoor2GUID;
+ };
};
void AddSC_instance_shattered_halls()
{
new instance_shattered_halls();
}
-
diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/shattered_halls.h b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/shattered_halls.h
index f56f844a49a..888a9cb5010 100644
--- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/shattered_halls.h
+++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/shattered_halls.h
@@ -19,10 +19,24 @@
#ifndef DEF_SHATTERED_H
#define DEF_SHATTERED_H
-#define TYPE_NETHEKURSE 1
-#define DATA_NETHEKURSE 2
-#define DATA_NETHEKURSE_DOOR 3
+uint32 const EncounterCount = 3;
-#define TYPE_OMROGG 4
-#endif
+enum DataTypes
+{
+ DATA_NETHEKURSE = 1,
+ DATA_OMROGG = 2,
+ DATA_KARGATH = 3
+};
+
+enum CreatureIds
+{
+ NPC_GRAND_WARLOCK_NETHEKURSE = 16807
+};
+enum GameobjectIds
+{
+ GO_GRAND_WARLOCK_CHAMBER_DOOR_1 = 182539,
+ GO_GRAND_WARLOCK_CHAMBER_DOOR_2 = 182540
+};
+
+#endif
diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp
index 099bd6949cb..09fb235edb9 100644
--- a/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp
@@ -28,7 +28,7 @@ EndScriptData */
#include "the_eye.h"
#include "SpellInfo.h"
-enum eSpells
+enum Spells
{
SPELL_FLAME_BUFFET = 34121, // Flame Buffet - every 1, 5 secs in phase 1 if there is no victim in melee range and after Dive Bomb in phase 2 with same conditions
SPELL_FLAME_QUILLS = 34229, // Randomly after changing position in phase after watching tons of movies, set probability 20%
@@ -75,11 +75,8 @@ enum WaitEventType
class boss_alar : public CreatureScript
{
public:
+ boss_alar() : CreatureScript("boss_alar") { }
- boss_alar()
- : CreatureScript("boss_alar")
- {
- }
struct boss_alarAI : public ScriptedAI
{
boss_alarAI(Creature* creature) : ScriptedAI(creature)
@@ -110,7 +107,7 @@ class boss_alar : public CreatureScript
int8 cur_wp;
- void Reset()
+ void Reset() OVERRIDE
{
if (instance)
instance->SetData(DATA_ALAREVENT, NOT_STARTED);
@@ -132,37 +129,37 @@ class boss_alar : public CreatureScript
//me->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, 10);
//me->SetFloatValue(UNIT_FIELD_COMBATREACH, 10);
me->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_FIRE, true);
- me->SetUnitMovementFlags(MOVEMENTFLAG_DISABLE_GRAVITY);
+ me->SetDisableGravity(true);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
me->setActive(false);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (instance)
instance->SetData(DATA_ALAREVENT, IN_PROGRESS);
- me->SetUnitMovementFlags(MOVEMENTFLAG_DISABLE_GRAVITY); // after enterevademode will be set walk movement
+ me->SetDisableGravity(true); // after enterevademode will be set walk movement
DoZoneInCombat();
me->setActive(true);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance)
instance->SetData(DATA_ALAREVENT, DONE);
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
if (summon->GetEntry() == CREATURE_EMBER_OF_ALAR)
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
summon->AI()->AttackStart(target);
}
- void MoveInLineOfSight(Unit* /*who*/) {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (Phase1)
AttackStartNoMove(who);
@@ -170,7 +167,7 @@ class boss_alar : public CreatureScript
ScriptedAI::AttackStart(who);
}
- void DamageTaken(Unit* /*killer*/, uint32 &damage)
+ void DamageTaken(Unit* /*killer*/, uint32 &damage) OVERRIDE
{
if (damage >= me->GetHealth() && Phase1)
{
@@ -192,7 +189,7 @@ class boss_alar : public CreatureScript
}
}
- void SpellHit(Unit*, const SpellInfo* spell)
+ void SpellHit(Unit*, const SpellInfo* spell) OVERRIDE
{
if (spell->Id == SPELL_DIVE_BOMB_VISUAL)
{
@@ -202,7 +199,7 @@ class boss_alar : public CreatureScript
}
}
- void MovementInform(uint32 type, uint32 /*id*/)
+ void MovementInform(uint32 type, uint32 /*id*/) OVERRIDE
{
if (type == POINT_MOTION_TYPE)
{
@@ -212,9 +209,9 @@ class boss_alar : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
- if (!me->isInCombat()) // sometimes isincombat but !incombat, faction bug?
+ if (!me->IsInCombat()) // sometimes IsInCombat but !incombat, faction bug?
return;
if (Berserk_Timer <= diff)
@@ -383,7 +380,7 @@ class boss_alar : public CreatureScript
if (MeltArmor_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_MELT_ARMOR);
+ DoCastVictim(SPELL_MELT_ARMOR);
MeltArmor_Timer = 60000;
}
else
@@ -431,9 +428,9 @@ class boss_alar : public CreatureScript
{
if (me->isAttackReady() && !me->IsNonMeleeSpellCasted(false))
{
- if (me->IsWithinMeleeRange(me->getVictim()))
+ if (me->IsWithinMeleeRange(me->GetVictim()))
{
- me->AttackerStateUpdate(me->getVictim());
+ me->AttackerStateUpdate(me->GetVictim());
me->resetAttackTimer();
}
else
@@ -452,47 +449,45 @@ class boss_alar : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_alarAI(creature);
}
};
-class mob_ember_of_alar : public CreatureScript
+class npc_ember_of_alar : public CreatureScript
{
public:
+ npc_ember_of_alar() : CreatureScript("npc_ember_of_alar") { }
- mob_ember_of_alar()
- : CreatureScript("mob_ember_of_alar")
- {
- }
-
- struct mob_ember_of_alarAI : public ScriptedAI
+ struct npc_ember_of_alarAI : public ScriptedAI
{
- mob_ember_of_alarAI(Creature* creature) : ScriptedAI(creature)
+ npc_ember_of_alarAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
- creature->SetUnitMovementFlags(MOVEMENTFLAG_DISABLE_GRAVITY);
+ creature->SetDisableGravity(true);
creature->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_FIRE, true);
}
InstanceScript* instance;
bool toDie;
- void Reset()
+ void Reset() OVERRIDE
{
toDie = false;
}
- void EnterCombat(Unit* /*who*/)
+
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
DoZoneInCombat();
}
- void EnterEvadeMode()
+
+ void EnterEvadeMode() OVERRIDE
{
me->setDeathState(JUST_DIED);
}
- void DamageTaken(Unit* killer, uint32 &damage)
+ void DamageTaken(Unit* killer, uint32 &damage) OVERRIDE
{
if (damage >= me->GetHealth() && killer != me && !toDie)
{
@@ -515,7 +510,7 @@ class mob_ember_of_alar : public CreatureScript
}
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -531,41 +526,37 @@ class mob_ember_of_alar : public CreatureScript
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_ember_of_alarAI(creature);
+ return new npc_ember_of_alarAI(creature);
}
};
-class mob_flame_patch_alar : public CreatureScript
+class npc_flame_patch_alar : public CreatureScript
{
public:
+ npc_flame_patch_alar() : CreatureScript("npc_flame_patch_alar") { }
- mob_flame_patch_alar()
- : CreatureScript("mob_flame_patch_alar")
+ struct npc_flame_patch_alarAI : public ScriptedAI
{
- }
+ npc_flame_patch_alarAI(Creature* creature) : ScriptedAI(creature) {}
+ void Reset() OVERRIDE {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+ void AttackStart(Unit* /*who*/) OVERRIDE {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
- struct mob_flame_patch_alarAI : public ScriptedAI
- {
- mob_flame_patch_alarAI(Creature* creature) : ScriptedAI(creature) {}
- void Reset() {}
- void EnterCombat(Unit* /*who*/) {}
- void AttackStart(Unit* /*who*/) {}
- void MoveInLineOfSight(Unit* /*who*/) {}
- void UpdateAI(uint32 /*diff*/) {}
+ void UpdateAI(uint32 /*diff*/) OVERRIDE {}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_flame_patch_alarAI(creature);
+ return new npc_flame_patch_alarAI(creature);
}
};
void AddSC_boss_alar()
{
new boss_alar();
- new mob_ember_of_alar();
- new mob_flame_patch_alar();
+ new npc_ember_of_alar();
+ new npc_flame_patch_alar();
}
-
diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp
index b8245729d73..3c8627c7058 100644
--- a/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp
@@ -30,7 +30,7 @@ EndScriptData */
#include "the_eye.h"
-enum eEnums
+enum Yells
{
SAY_AGGRO = 0,
SAY_SUMMON1 = 1,
@@ -38,8 +38,11 @@ enum eEnums
SAY_KILL = 3,
SAY_DEATH = 4,
SAY_VOIDA = 5,
- SAY_VOIDB = 6,
+ SAY_VOIDB = 6
+};
+enum Spells
+{
SPELL_ARCANE_MISSILES = 33031,
SPELL_WRATH_OF_THE_ASTROMANCER = 42783,
SPELL_WRATH_OF_THE_ASTROMANCER_DOT = 42784,
@@ -48,18 +51,28 @@ enum eEnums
SPELL_VOID_BOLT = 39329,
SPELL_SPOTLIGHT = 25824,
+
+ SPELL_SOLARIUM_GREAT_HEAL = 33387,
+ SPELL_SOLARIUM_HOLY_SMITE = 25054,
+ SPELL_SOLARIUM_ARCANE_TORRENT = 33390
+};
+
+enum Creatures
+{
NPC_ASTROMANCER_SOLARIAN_SPOTLIGHT = 18928,
NPC_SOLARIUM_AGENT = 18925,
- NPC_SOLARIUM_PRIEST = 18806,
+ NPC_SOLARIUM_PRIEST = 18806
+};
+enum Models
+{
MODEL_HUMAN = 18239,
- MODEL_VOIDWALKER = 18988,
-
- SPELL_SOLARIUM_GREAT_HEAL = 33387,
- SPELL_SOLARIUM_HOLY_SMITE = 25054,
- SPELL_SOLARIUM_ARCANE_TORRENT = 33390,
+ MODEL_VOIDWALKER = 18988
+};
+enum Misc
+{
WV_ARMOR = 31000
};
@@ -117,7 +130,7 @@ class boss_high_astromancer_solarian : public CreatureScript
bool AppearDelay;
bool BlindingLight;
- void Reset()
+ void Reset() OVERRIDE
{
ArcaneMissiles_Timer = 2000;
m_uiWrathOfTheAstromancer_Timer = 15000;
@@ -145,12 +158,12 @@ class boss_high_astromancer_solarian : public CreatureScript
Summons.DespawnAll();
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_KILL);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
me->SetObjectScale(defaultsize);
me->SetDisplayId(MODEL_HUMAN);
@@ -159,7 +172,7 @@ class boss_high_astromancer_solarian : public CreatureScript
instance->SetData(DATA_HIGHASTROMANCERSOLARIANEVENT, DONE);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
DoZoneInCombat();
@@ -195,7 +208,7 @@ class boss_high_astromancer_solarian : public CreatureScript
return (z*sqrt(radius*radius - (x - CENTER_X)*(x - CENTER_X)) + CENTER_Y);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -240,7 +253,7 @@ class boss_high_astromancer_solarian : public CreatureScript
{
if (BlindingLight)
{
- DoCast(me->getVictim(), SPELL_BLINDING_LIGHT);
+ DoCastVictim(SPELL_BLINDING_LIGHT);
BlindingLight = false;
}
else
@@ -248,7 +261,7 @@ class boss_high_astromancer_solarian : public CreatureScript
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
{
if (!me->HasInArc(2.5f, target))
- target = me->getVictim();
+ target = me->GetVictim();
DoCast(target, SPELL_ARCANE_MISSILES);
}
@@ -381,7 +394,7 @@ class boss_high_astromancer_solarian : public CreatureScript
//VoidBolt_Timer
if (VoidBolt_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_VOID_BOLT);
+ DoCastVictim(SPELL_VOID_BOLT);
VoidBolt_Timer = 10000;
}
else
@@ -404,24 +417,24 @@ class boss_high_astromancer_solarian : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_high_astromancer_solarianAI (creature);
+ return new boss_high_astromancer_solarianAI(creature);
}
};
-class mob_solarium_priest : public CreatureScript
+class npc_solarium_priest : public CreatureScript
{
public:
- mob_solarium_priest()
- : CreatureScript("mob_solarium_priest")
+ npc_solarium_priest()
+ : CreatureScript("npc_solarium_priest")
{
}
- struct mob_solarium_priestAI : public ScriptedAI
+ struct npc_solarium_priestAI : public ScriptedAI
{
- mob_solarium_priestAI(Creature* creature) : ScriptedAI(creature)
+ npc_solarium_priestAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -432,18 +445,18 @@ class mob_solarium_priest : public CreatureScript
uint32 holysmiteTimer;
uint32 aoesilenceTimer;
- void Reset()
+ void Reset() OVERRIDE
{
healTimer = 9000;
holysmiteTimer = 1;
aoesilenceTimer = 15000;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -473,7 +486,7 @@ class mob_solarium_priest : public CreatureScript
if (holysmiteTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_SOLARIUM_HOLY_SMITE);
+ DoCastVictim(SPELL_SOLARIUM_HOLY_SMITE);
holysmiteTimer = 4000;
}
else
@@ -481,7 +494,7 @@ class mob_solarium_priest : public CreatureScript
if (aoesilenceTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_SOLARIUM_ARCANE_TORRENT);
+ DoCastVictim(SPELL_SOLARIUM_ARCANE_TORRENT);
aoesilenceTimer = 13000;
}
else
@@ -491,9 +504,9 @@ class mob_solarium_priest : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_solarium_priestAI(creature);
+ return new npc_solarium_priestAI(creature);
}
};
@@ -506,7 +519,7 @@ class spell_astromancer_wrath_of_the_astromancer : public SpellScriptLoader
{
PrepareAuraScript(spell_astromancer_wrath_of_the_astromancer_AuraScript);
- bool Validate(SpellInfo const* /*SpellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_WRATH_OF_THE_ASTROMANCER_DOT))
return false;
@@ -523,13 +536,13 @@ class spell_astromancer_wrath_of_the_astromancer : public SpellScriptLoader
target->CastSpell(target, GetSpellInfo()->Effects[EFFECT_1].CalcValue(), false);
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectRemove += AuraEffectRemoveFn(spell_astromancer_wrath_of_the_astromancer_AuraScript::AfterRemove, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_astromancer_wrath_of_the_astromancer_AuraScript();
}
@@ -538,7 +551,7 @@ class spell_astromancer_wrath_of_the_astromancer : public SpellScriptLoader
void AddSC_boss_high_astromancer_solarian()
{
new boss_high_astromancer_solarian();
- new mob_solarium_priest();
+ new npc_solarium_priest();
new spell_astromancer_wrath_of_the_astromancer();
}
diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp
index e30f153b39f..cf25efb17c6 100644
--- a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp
@@ -29,9 +29,9 @@ EndScriptData */
#include "WorldPacket.h"
#include "Opcodes.h"
-enum eEnums
+enum Yells
{
- //kael'thas Speech
+ // Kael'thas Speech
SAY_INTRO = 0,
SAY_INTRO_CAPERNIAN = 1,
SAY_INTRO_TELONICUS = 2,
@@ -47,7 +47,7 @@ enum eEnums
SAY_SUMMON_PHOENIX = 12,
SAY_DEATH = 13,
- //Thaladred the Darkener speech
+ // Thaladred the Darkener speech
SAY_THALADRED_AGGRO = 0,
SAY_THALADRED_DEATH = 1,
EMOTE_THALADRED_GAZE = 2,
@@ -56,15 +56,18 @@ enum eEnums
SAY_SANGUINAR_AGGRO = 0,
SAY_SANGUINAR_DEATH = 1,
- //Grand Astromancer Capernian speech
+ // Grand Astromancer Capernian speech
SAY_CAPERNIAN_AGGRO = 0,
SAY_CAPERNIAN_DEATH = 1,
- //Master Engineer Telonicus speech
+ // Master Engineer Telonicus speech
SAY_TELONICUS_AGGRO = 0,
- SAY_TELONICUS_DEATH = 1,
+ SAY_TELONICUS_DEATH = 1
+};
- //Phase 2 spells
+enum Spells
+{
+ // Phase 2 spells
SPELL_SUMMON_WEAPONS = 36976,
SPELL_SUMMON_WEAPONA = 36958,
SPELL_SUMMON_WEAPONB = 36959,
@@ -75,7 +78,7 @@ enum eEnums
SPELL_SUMMON_WEAPONG = 36964,
SPELL_RES_VISUAL = 24171,
- //Phase 4 spells
+ // Phase 4 spells
SPELL_FIREBALL = 22088, //wrong but works with CastCustomSpell
SPELL_PYROBLAST = 36819,
SPELL_FLAME_STRIKE = 36735,
@@ -86,7 +89,7 @@ enum eEnums
SPELL_PHOENIX_ANIMATION = 36723,
SPELL_MIND_CONTROL = 32830,
- //Phase 5 spells
+ // Phase 5 spells
SPELL_EXPLODE = 36092,
SPELL_FULLPOWER = 36187,
SPELL_KNOCKBACK = 11027,
@@ -94,12 +97,12 @@ enum eEnums
SPELL_GRAVITY_LAPSE_AURA = 39432,
SPELL_NETHER_BEAM = 35873,
- //Thaladred the Darkener spells
+ // Thaladred the Darkener spells
SPELL_PSYCHIC_BLOW = 10689,
SPELL_SILENCE = 30225,
- //Lord Sanguinar spells
+ // Lord Sanguinar spells
SPELL_BELLOWING_ROAR = 40636,
- //Grand Astromancer Capernian spells
+ // Grand Astromancer Capernian spells
SPELL_CAPERNIAN_FIREBALL = 36971,
SPELL_CONFLAGRATION = 37018,
@@ -112,16 +115,24 @@ enum eEnums
//Phoenix spell
SPELL_BURN = 36720,
SPELL_EMBER_BLAST = 34341,
- SPELL_REBIRTH = 41587,
+ SPELL_REBIRTH = 41587
+};
- //Creature IDs
+enum Creatures
+{
NPC_PHOENIX = 21362,
- NPC_PHOENIX_EGG = 21364,
+ NPC_PHOENIX_EGG = 21364
+};
+enum Models
+{
//Phoenix egg and phoenix model
MODEL_ID_PHOENIX = 19682,
- MODEL_ID_PHOENIX_EGG = 20245,
+ MODEL_ID_PHOENIX_EGG = 20245
+};
+enum Misc
+{
MAX_ADVISORS = 4
};
@@ -154,7 +165,7 @@ struct advisorbase_ai : public ScriptedAI
uint32 DelayRes_Timer;
uint64 DelayRes_Target;
- void Reset()
+ void Reset() OVERRIDE
{
if (m_bDoubled_Health)
{
@@ -176,7 +187,8 @@ struct advisorbase_ai : public ScriptedAI
Kaelthas->AI()->EnterEvadeMode();
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (!who || FakeDeath || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
return;
@@ -184,7 +196,7 @@ struct advisorbase_ai : public ScriptedAI
ScriptedAI::MoveInLineOfSight(who);
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (!who || FakeDeath || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
return;
@@ -205,7 +217,7 @@ struct advisorbase_ai : public ScriptedAI
DelayRes_Timer = 2000;
}
- void DamageTaken(Unit* killer, uint32 &damage)
+ void DamageTaken(Unit* killer, uint32 &damage) OVERRIDE
{
if (damage < me->GetHealth())
return;
@@ -241,7 +253,7 @@ struct advisorbase_ai : public ScriptedAI
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (DelayRes_Timer)
{
@@ -252,7 +264,7 @@ struct advisorbase_ai : public ScriptedAI
Unit* Target = Unit::GetUnit(*me, DelayRes_Target);
if (!Target)
- Target = me->getVictim();
+ Target = me->GetVictim();
DoResetThreat();
AttackStart(Target);
@@ -306,7 +318,7 @@ class boss_kaelthas : public CreatureScript
uint64 m_auiAdvisorGuid[MAX_ADVISORS];
- void Reset()
+ void Reset() OVERRIDE
{
Fireball_Timer = 5000+rand()%10000;
ArcaneDisruption_Timer = 45000;
@@ -324,7 +336,7 @@ class boss_kaelthas : public CreatureScript
IsCastingFireball = false;
ChainPyros = false;
- if (me->isInCombat())
+ if (me->IsInCombat())
PrepareAdvisors();
summons.DespawnAll();
@@ -391,9 +403,10 @@ class boss_kaelthas : public CreatureScript
}
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
- if (!me->HasUnitState(UNIT_STATE_STUNNED) && me->canCreatureAttack(who))
+ if (!me->HasUnitState(UNIT_STATE_STUNNED) && me->CanCreatureAttack(who))
{
if (!me->CanFly() && me->GetDistanceZ(who) > CREATURE_Z_ATTACK_RANGE)
return;
@@ -401,7 +414,7 @@ class boss_kaelthas : public CreatureScript
float attackRadius = me->GetAttackDistance(who);
if (me->IsWithinDistInMap(who, attackRadius) && me->IsWithinLOSInMap(who))
{
- if (!me->getVictim() && Phase >= 4)
+ if (!me->GetVictim() && Phase >= 4)
{
who->RemoveAurasByType(SPELL_AURA_MOD_STEALTH);
AttackStart(who);
@@ -418,18 +431,18 @@ class boss_kaelthas : public CreatureScript
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (instance && !instance->GetData(DATA_KAELTHASEVENT) && !Phase)
StartEvent();
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
// if not phoenix, then it's one of the 7 weapons
if (summoned->GetEntry() != NPC_PHOENIX)
@@ -441,12 +454,12 @@ class boss_kaelthas : public CreatureScript
}
}
- void SummonedCreatureDespawn(Creature* summon)
+ void SummonedCreatureDespawn(Creature* summon) OVERRIDE
{
summons.Despawn(summon);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
@@ -465,7 +478,7 @@ class boss_kaelthas : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Phase 1
switch (Phase)
@@ -742,7 +755,7 @@ class boss_kaelthas : public CreatureScript
//interruptable
me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_INTERRUPT_CAST, false);
int32 dmg = 20000+rand()%5000;
- me->CastCustomSpell(me->getVictim(), SPELL_FIREBALL, &dmg, 0, 0, false);
+ me->CastCustomSpell(me->GetVictim(), SPELL_FIREBALL, &dmg, 0, 0, false);
IsCastingFireball = true;
Fireball_Timer = 2500;
}
@@ -761,7 +774,7 @@ class boss_kaelthas : public CreatureScript
//ArcaneDisruption_Timer
if (ArcaneDisruption_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_ARCANE_DISRUPTION, true);
+ DoCastVictim(SPELL_ARCANE_DISRUPTION, true);
ArcaneDisruption_Timer = 60000;
}
else
@@ -842,7 +855,7 @@ class boss_kaelthas : public CreatureScript
{
if (PyrosCasted < 3)
{
- DoCast(me->getVictim(), SPELL_PYROBLAST);
+ DoCastVictim(SPELL_PYROBLAST);
++PyrosCasted;
}
else
@@ -865,7 +878,7 @@ class boss_kaelthas : public CreatureScript
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
Phase = 6;
- AttackStart(me->getVictim());
+ AttackStart(me->GetVictim());
}
else
Phase_Timer -= diff;
@@ -959,7 +972,7 @@ class boss_kaelthas : public CreatureScript
InGravityLapse = false;
GravityLapse_Timer = 60000;
GravityLapse_Phase = 0;
- AttackStart(me->getVictim());
+ AttackStart(me->GetVictim());
break;
}
}
@@ -996,7 +1009,7 @@ class boss_kaelthas : public CreatureScript
}
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_kaelthasAI(creature);
}
@@ -1019,7 +1032,7 @@ class boss_thaladred_the_darkener : public CreatureScript
uint32 Silence_Timer;
uint32 PsychicBlow_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
Gaze_Timer = 100;
Silence_Timer = 20000;
@@ -1028,7 +1041,7 @@ class boss_thaladred_the_darkener : public CreatureScript
advisorbase_ai::Reset();
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
return;
@@ -1040,13 +1053,13 @@ class boss_thaladred_the_darkener : public CreatureScript
me->AddThreat(who, 5000000.0f);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance && instance->GetData(DATA_KAELTHASEVENT) == 3)
Talk(SAY_THALADRED_DEATH);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
advisorbase_ai::UpdateAI(diff);
@@ -1075,7 +1088,7 @@ class boss_thaladred_the_darkener : public CreatureScript
//Silence_Timer
if (Silence_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_SILENCE);
+ DoCastVictim(SPELL_SILENCE);
Silence_Timer = 20000;
}
else
@@ -1084,7 +1097,7 @@ class boss_thaladred_the_darkener : public CreatureScript
//PsychicBlow_Timer
if (PsychicBlow_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_PSYCHIC_BLOW);
+ DoCastVictim(SPELL_PSYCHIC_BLOW);
PsychicBlow_Timer = 20000+rand()%5000;
}
else
@@ -1094,7 +1107,7 @@ class boss_thaladred_the_darkener : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_thaladred_the_darkenerAI(creature);
}
@@ -1115,13 +1128,13 @@ class boss_lord_sanguinar : public CreatureScript
uint32 Fear_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
Fear_Timer = 20000;
advisorbase_ai::Reset();
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
return;
@@ -1132,13 +1145,13 @@ class boss_lord_sanguinar : public CreatureScript
Talk(SAY_SANGUINAR_AGGRO);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance && instance->GetData(DATA_KAELTHASEVENT) == 3)
Talk(SAY_SANGUINAR_DEATH);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
advisorbase_ai::UpdateAI(diff);
@@ -1153,7 +1166,7 @@ class boss_lord_sanguinar : public CreatureScript
//Fear_Timer
if (Fear_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_BELLOWING_ROAR);
+ DoCastVictim(SPELL_BELLOWING_ROAR);
Fear_Timer = 25000+rand()%10000; //approximately every 30 seconds
}
else
@@ -1162,7 +1175,7 @@ class boss_lord_sanguinar : public CreatureScript
DoMeleeAttackIfReady();
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_lord_sanguinarAI(creature);
}
@@ -1186,7 +1199,7 @@ class boss_grand_astromancer_capernian : public CreatureScript
uint32 Yell_Timer;
bool Yell;
- void Reset()
+ void Reset() OVERRIDE
{
Fireball_Timer = 2000;
Conflagration_Timer = 20000;
@@ -1197,13 +1210,13 @@ class boss_grand_astromancer_capernian : public CreatureScript
advisorbase_ai::Reset();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance && instance->GetData(DATA_KAELTHASEVENT) == 3)
Talk(SAY_CAPERNIAN_DEATH);
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (!who || FakeDeath || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
return;
@@ -1218,7 +1231,7 @@ class boss_grand_astromancer_capernian : public CreatureScript
}
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
return;
@@ -1227,7 +1240,7 @@ class boss_grand_astromancer_capernian : public CreatureScript
return;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
advisorbase_ai::UpdateAI(diff);
@@ -1254,7 +1267,7 @@ class boss_grand_astromancer_capernian : public CreatureScript
//Fireball_Timer
if (Fireball_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_CAPERNIAN_FIREBALL);
+ DoCastVictim(SPELL_CAPERNIAN_FIREBALL);
Fireball_Timer = 4000;
}
else
@@ -1269,7 +1282,7 @@ class boss_grand_astromancer_capernian : public CreatureScript
if (target && me->IsWithinDistInMap(target, 30))
DoCast(target, SPELL_CONFLAGRATION);
else
- DoCast(me->getVictim(), SPELL_CONFLAGRATION);
+ DoCastVictim(SPELL_CONFLAGRATION);
Conflagration_Timer = 10000+rand()%5000;
}
@@ -1306,7 +1319,7 @@ class boss_grand_astromancer_capernian : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_grand_astromancer_capernianAI(creature);
}
@@ -1328,7 +1341,7 @@ class boss_master_engineer_telonicus : public CreatureScript
uint32 Bomb_Timer;
uint32 RemoteToy_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
Bomb_Timer = 10000;
RemoteToy_Timer = 5000;
@@ -1336,13 +1349,13 @@ class boss_master_engineer_telonicus : public CreatureScript
advisorbase_ai::Reset();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (instance && instance->GetData(DATA_KAELTHASEVENT) == 3)
Talk(SAY_TELONICUS_DEATH);
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
return;
@@ -1353,7 +1366,7 @@ class boss_master_engineer_telonicus : public CreatureScript
Talk(SAY_TELONICUS_AGGRO);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
advisorbase_ai::UpdateAI(diff);
@@ -1368,7 +1381,7 @@ class boss_master_engineer_telonicus : public CreatureScript
//Bomb_Timer
if (Bomb_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_BOMB);
+ DoCastVictim(SPELL_BOMB);
Bomb_Timer = 25000;
}
else
@@ -1389,24 +1402,24 @@ class boss_master_engineer_telonicus : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_master_engineer_telonicusAI(creature);
}
};
//Flame Strike AI
-class mob_kael_flamestrike : public CreatureScript
+class npc_kael_flamestrike : public CreatureScript
{
public:
- mob_kael_flamestrike()
- : CreatureScript("mob_kael_flamestrike")
+ npc_kael_flamestrike()
+ : CreatureScript("npc_kael_flamestrike")
{
}
- struct mob_kael_flamestrikeAI : public ScriptedAI
+ struct npc_kael_flamestrikeAI : public ScriptedAI
{
- mob_kael_flamestrikeAI(Creature* creature) : ScriptedAI(creature)
+ npc_kael_flamestrikeAI(Creature* creature) : ScriptedAI(creature)
{
SetCombatMovement(false);
}
@@ -1415,7 +1428,7 @@ class mob_kael_flamestrike : public CreatureScript
bool Casting;
bool KillSelf;
- void Reset()
+ void Reset() OVERRIDE
{
Timer = 5000;
Casting = false;
@@ -1425,11 +1438,12 @@ class mob_kael_flamestrike : public CreatureScript
me->setFaction(14);
}
- void MoveInLineOfSight(Unit* /*who*/) {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
+
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!Casting)
{
@@ -1456,41 +1470,41 @@ class mob_kael_flamestrike : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_kael_flamestrikeAI(creature);
+ return new npc_kael_flamestrikeAI(creature);
}
};
//Phoenix AI
-class mob_phoenix_tk : public CreatureScript
+class npc_phoenix_tk : public CreatureScript
{
public:
- mob_phoenix_tk()
- : CreatureScript("mob_phoenix_tk")
+ npc_phoenix_tk()
+ : CreatureScript("npc_phoenix_tk")
{
}
- struct mob_phoenix_tkAI : public ScriptedAI
+ struct npc_phoenix_tkAI : public ScriptedAI
{
- mob_phoenix_tkAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_phoenix_tkAI(Creature* creature) : ScriptedAI(creature) {}
uint32 Cycle_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
Cycle_Timer = 2000;
DoCast(me, SPELL_BURN, true);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
//is this spell in use anylonger?
//DoCast(me, SPELL_EMBER_BLAST, true);
me->SummonCreature(NPC_PHOENIX_EGG, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation(), TEMPSUMMON_TIMED_DESPAWN, 16000);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -1510,36 +1524,37 @@ class mob_phoenix_tk : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_phoenix_tkAI(creature);
+ return new npc_phoenix_tkAI(creature);
}
};
//Phoenix Egg AI
-class mob_phoenix_egg_tk : public CreatureScript
+class npc_phoenix_egg_tk : public CreatureScript
{
public:
- mob_phoenix_egg_tk()
- : CreatureScript("mob_phoenix_egg_tk")
+ npc_phoenix_egg_tk()
+ : CreatureScript("npc_phoenix_egg_tk")
{
}
- struct mob_phoenix_egg_tkAI : public ScriptedAI
+ struct npc_phoenix_egg_tkAI : public ScriptedAI
{
- mob_phoenix_egg_tkAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_phoenix_egg_tkAI(Creature* creature) : ScriptedAI(creature) {}
uint32 Rebirth_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
Rebirth_Timer = 15000;
}
//ignore any
- void MoveInLineOfSight(Unit* /*who*/) {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
+
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (me->Attack(who, false))
{
@@ -1550,13 +1565,13 @@ class mob_phoenix_egg_tk : public CreatureScript
}
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
- summoned->AddThreat(me->getVictim(), 0.0f);
+ summoned->AddThreat(me->GetVictim(), 0.0f);
summoned->CastSpell(summoned, SPELL_REBIRTH, false);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!Rebirth_Timer)
return;
@@ -1571,9 +1586,9 @@ class mob_phoenix_egg_tk : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_phoenix_egg_tkAI(creature);
+ return new npc_phoenix_egg_tkAI(creature);
}
};
@@ -1584,7 +1599,7 @@ void AddSC_boss_kaelthas()
new boss_lord_sanguinar();
new boss_grand_astromancer_capernian();
new boss_master_engineer_telonicus();
- new mob_kael_flamestrike();
- new mob_phoenix_tk();
- new mob_phoenix_egg_tk();
+ new npc_kael_flamestrike();
+ new npc_phoenix_tk();
+ new npc_phoenix_egg_tk();
}
diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp
index d4526e52543..f842ed19f3c 100644
--- a/src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp
@@ -27,13 +27,16 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "the_eye.h"
-enum eEnums
+enum Yells
{
SAY_AGGRO = 0,
SAY_SLAY = 1,
SAY_DEATH = 2,
- SAY_POUNDING = 3,
+ SAY_POUNDING = 3
+};
+enum Spells
+{
SPELL_POUNDING = 34162,
SPELL_ARCANE_ORB = 34172,
SPELL_KNOCK_AWAY = 25778,
@@ -65,7 +68,7 @@ class boss_void_reaver : public CreatureScript
bool Enraged;
- void Reset()
+ void Reset() OVERRIDE
{
Pounding_Timer = 15000;
ArcaneOrb_Timer = 3000;
@@ -74,16 +77,16 @@ class boss_void_reaver : public CreatureScript
Enraged = false;
- if (instance && me->isAlive())
+ if (instance && me->IsAlive())
instance->SetData(DATA_VOIDREAVEREVENT, NOT_STARTED);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
DoZoneInCombat();
@@ -92,7 +95,7 @@ class boss_void_reaver : public CreatureScript
instance->SetData(DATA_VOIDREAVEREVENT, DONE);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
@@ -100,14 +103,14 @@ class boss_void_reaver : public CreatureScript
instance->SetData(DATA_VOIDREAVEREVENT, IN_PROGRESS);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
// Pounding
if (Pounding_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_POUNDING);
+ DoCastVictim(SPELL_POUNDING);
Talk(SAY_POUNDING);
Pounding_Timer = 15000; //cast time(3000) + cooldown time(12000)
}
@@ -125,7 +128,7 @@ class boss_void_reaver : public CreatureScript
if (!target)
continue;
// exclude pets & totems, 18 yard radius minimum
- if (target->GetTypeId() == TYPEID_PLAYER && target->isAlive() && !target->IsWithinDist(me, 18, false))
+ if (target->GetTypeId() == TYPEID_PLAYER && target->IsAlive() && !target->IsWithinDist(me, 18, false))
target_list.push_back(target);
target = NULL;
}
@@ -133,7 +136,7 @@ class boss_void_reaver : public CreatureScript
if (!target_list.empty())
target = *(target_list.begin()+rand()%target_list.size());
else
- target = me->getVictim();
+ target = me->GetVictim();
if (target)
me->CastSpell(target, SPELL_ARCANE_ORB, false, NULL, NULL, 0);
@@ -144,10 +147,10 @@ class boss_void_reaver : public CreatureScript
// Single Target knock back, reduces aggro
if (KnockAway_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_KNOCK_AWAY);
+ DoCastVictim(SPELL_KNOCK_AWAY);
//Drop 25% aggro
- if (DoGetThreat(me->getVictim()))
- DoModifyThreatPercent(me->getVictim(), -25);
+ if (DoGetThreat(me->GetVictim()))
+ DoModifyThreatPercent(me->GetVictim(), -25);
KnockAway_Timer = 30000;
}
else
@@ -167,7 +170,7 @@ class boss_void_reaver : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_void_reaverAI(creature);
}
diff --git a/src/server/scripts/Outland/TempestKeep/Eye/instance_the_eye.cpp b/src/server/scripts/Outland/TempestKeep/Eye/instance_the_eye.cpp
index e43d2f9b13a..e47995befff 100644
--- a/src/server/scripts/Outland/TempestKeep/Eye/instance_the_eye.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Eye/instance_the_eye.cpp
@@ -113,7 +113,7 @@ class instance_the_eye : public InstanceMapScript
}
}
- uint64 GetData64(uint32 identifier) const
+ uint64 GetData64(uint32 identifier) const OVERRIDE
{
switch (identifier)
{
@@ -128,7 +128,7 @@ class instance_the_eye : public InstanceMapScript
return 0;
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
switch (type)
{
@@ -151,7 +151,7 @@ class instance_the_eye : public InstanceMapScript
SaveToDB();
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -192,7 +192,7 @@ class instance_the_eye : public InstanceMapScript
}
};
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_the_eye_InstanceMapScript(map);
}
diff --git a/src/server/scripts/Outland/TempestKeep/Eye/the_eye.cpp b/src/server/scripts/Outland/TempestKeep/Eye/the_eye.cpp
index fd00b2c5b4e..ab9b6ab3046 100644
--- a/src/server/scripts/Outland/TempestKeep/Eye/the_eye.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Eye/the_eye.cpp
@@ -24,45 +24,45 @@ SDCategory: Tempest Keep, The Eye
EndScriptData */
/* ContentData
-mob_crystalcore_devastator
+npc_crystalcore_devastator
EndContentData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "the_eye.h"
-enum eSpells
+enum Spells
{
SPELL_COUNTERCHARGE = 35035,
SPELL_KNOCKAWAY = 22893,
};
-class mob_crystalcore_devastator : public CreatureScript
+class npc_crystalcore_devastator : public CreatureScript
{
public:
- mob_crystalcore_devastator()
- : CreatureScript("mob_crystalcore_devastator")
+ npc_crystalcore_devastator()
+ : CreatureScript("npc_crystalcore_devastator")
{
}
- struct mob_crystalcore_devastatorAI : public ScriptedAI
+ struct npc_crystalcore_devastatorAI : public ScriptedAI
{
- mob_crystalcore_devastatorAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_crystalcore_devastatorAI(Creature* creature) : ScriptedAI(creature) {}
uint32 Knockaway_Timer;
uint32 Countercharge_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
Countercharge_Timer = 9000;
Knockaway_Timer = 25000;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -71,12 +71,12 @@ class mob_crystalcore_devastator : public CreatureScript
//Knockaway_Timer
if (Knockaway_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_KNOCKAWAY, true);
+ DoCastVictim(SPELL_KNOCKAWAY, true);
// current aggro target is knocked away pick new target
Unit* target = SelectTarget(SELECT_TARGET_TOPAGGRO, 0);
- if (!target || target == me->getVictim())
+ if (!target || target == me->GetVictim())
target = SelectTarget(SELECT_TARGET_TOPAGGRO, 1);
if (target)
@@ -100,13 +100,13 @@ class mob_crystalcore_devastator : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_crystalcore_devastatorAI(creature);
+ return new npc_crystalcore_devastatorAI(creature);
}
};
void AddSC_the_eye()
{
- new mob_crystalcore_devastator();
+ new npc_crystalcore_devastator();
}
diff --git a/src/server/scripts/Outland/TempestKeep/Eye/the_eye.h b/src/server/scripts/Outland/TempestKeep/Eye/the_eye.h
index 20b920a95d2..b9e44aff0a9 100644
--- a/src/server/scripts/Outland/TempestKeep/Eye/the_eye.h
+++ b/src/server/scripts/Outland/TempestKeep/Eye/the_eye.h
@@ -19,16 +19,19 @@
#ifndef DEF_THE_EYE_H
#define DEF_THE_EYE_H
-#define DATA_ALAREVENT 1
-#define DATA_ASTROMANCER 2
-#define DATA_GRANDASTROMANCERCAPERNIAN 3
-#define DATA_HIGHASTROMANCERSOLARIANEVENT 4
-#define DATA_KAELTHAS 5
-#define DATA_KAELTHASEVENT 6
-#define DATA_LORDSANGUINAR 7
-#define DATA_MASTERENGINEERTELONICUS 8
-#define DATA_THALADREDTHEDARKENER 10
-#define DATA_VOIDREAVEREVENT 11
-#define DATA_ALAR 12
-#endif
+enum DataTypes
+{
+ DATA_ALAREVENT = 1,
+ DATA_ASTROMANCER = 2,
+ DATA_GRANDASTROMANCERCAPERNIAN = 3,
+ DATA_HIGHASTROMANCERSOLARIANEVENT = 4,
+ DATA_KAELTHAS = 5,
+ DATA_KAELTHASEVENT = 6,
+ DATA_LORDSANGUINAR = 7,
+ DATA_MASTERENGINEERTELONICUS = 8,
+ DATA_THALADREDTHEDARKENER = 10,
+ DATA_VOIDREAVEREVENT = 11,
+ DATA_ALAR = 12
+};
+#endif
diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_gyrokill.cpp b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_gyrokill.cpp
index 2b597be8a9f..a2c6ba399a3 100644
--- a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_gyrokill.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_gyrokill.cpp
@@ -45,9 +45,9 @@ enum Spells
enum Events
{
- EVENT_STREAM_OF_MACHINE_FLUID = 0,
- EVENT_SAW_BLADE = 1,
- EVENT_SHADOW_POWER = 2
+ EVENT_STREAM_OF_MACHINE_FLUID = 1,
+ EVENT_SAW_BLADE = 2,
+ EVENT_SHADOW_POWER = 3
};
class boss_gatewatcher_gyrokill : public CreatureScript
@@ -59,13 +59,13 @@ class boss_gatewatcher_gyrokill : public CreatureScript
{
boss_gatewatcher_gyrokillAI(Creature* creature) : BossAI(creature, DATA_GATEWATCHER_GYROKILL) {}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
Talk(SAY_DEATH);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
events.ScheduleEvent(EVENT_STREAM_OF_MACHINE_FLUID, 10000);
@@ -74,12 +74,12 @@ class boss_gatewatcher_gyrokill : public CreatureScript
Talk(SAY_AGGRO);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -115,9 +115,9 @@ class boss_gatewatcher_gyrokill : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_gatewatcher_gyrokillAI (creature);
+ return new boss_gatewatcher_gyrokillAI(creature);
}
};
diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_ironhand.cpp b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_ironhand.cpp
index 5e29a8d0c31..7dc073d82d7 100644
--- a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_ironhand.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_ironhand.cpp
@@ -62,7 +62,7 @@ class boss_gatewatcher_iron_hand : public CreatureScript
{
boss_gatewatcher_iron_handAI(Creature* creature) : BossAI(creature, DATA_GATEWATCHER_IRON_HAND) {}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
events.ScheduleEvent(EVENT_STREAM_OF_MACHINE_FLUID, 55000);
@@ -71,19 +71,19 @@ class boss_gatewatcher_iron_hand : public CreatureScript
Talk(SAY_AGGRO);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
if (roll_chance_i(50))
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
Talk(SAY_DEATH);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -122,7 +122,7 @@ class boss_gatewatcher_iron_hand : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_gatewatcher_iron_handAI(creature);
}
diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_mechano_lord_capacitus.cpp b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_mechano_lord_capacitus.cpp
index 728b3f715b2..06296ca3ae2 100644
--- a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_mechano_lord_capacitus.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_mechano_lord_capacitus.cpp
@@ -75,7 +75,7 @@ class boss_mechano_lord_capacitus : public CreatureScript
{
boss_mechano_lord_capacitusAI(Creature* creature) : BossAI(creature, DATA_MECHANOLORD_CAPACITUS) { }
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
Talk(YELL_AGGRO);
@@ -88,18 +88,18 @@ class boss_mechano_lord_capacitus : public CreatureScript
events.ScheduleEvent(EVENT_POSITIVE_SHIFT, 15 * IN_MILLISECONDS);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(YELL_KILL);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*victim*/) OVERRIDE
{
_JustDied();
Talk(YELL_DEATH);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -149,7 +149,7 @@ class boss_mechano_lord_capacitus : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_mechano_lord_capacitusAI(creature);
}
@@ -164,7 +164,7 @@ class spell_capacitus_polarity_charge : public SpellScriptLoader
{
PrepareSpellScript(spell_capacitus_polarity_charge_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_POSITIVE_CHARGE))
return false;
@@ -210,14 +210,14 @@ class spell_capacitus_polarity_charge : public SpellScriptLoader
SetHitDamage(0);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_capacitus_polarity_charge_SpellScript::HandleDamage, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_capacitus_polarity_charge_SpellScript::HandleTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ALLY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_capacitus_polarity_charge_SpellScript();
}
@@ -232,7 +232,7 @@ class spell_capacitus_polarity_shift : public SpellScriptLoader
{
PrepareSpellScript(spell_capacitus_polarity_shift_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_POSITIVE_POLARITY) || !sSpellMgr->GetSpellInfo(SPELL_NEGATIVE_POLARITY))
return false;
@@ -247,13 +247,13 @@ class spell_capacitus_polarity_shift : public SpellScriptLoader
target->CastSpell(target, roll_chance_i(50) ? SPELL_POSITIVE_POLARITY : SPELL_NEGATIVE_POLARITY, true, NULL, NULL, caster->GetGUID());
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_capacitus_polarity_shift_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_capacitus_polarity_shift_SpellScript();
}
diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_nethermancer_sepethrea.cpp b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_nethermancer_sepethrea.cpp
index 902fb8e76b3..565aefbd6b9 100644
--- a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_nethermancer_sepethrea.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_nethermancer_sepethrea.cpp
@@ -27,7 +27,7 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "mechanar.h"
-enum eSays
+enum Says
{
SAY_AGGRO = 0,
SAY_SUMMON = 1,
@@ -52,11 +52,11 @@ enum Spells
enum Events
{
- EVENT_FROST_ATTACK = 0,
- EVENT_ARCANE_BLAST = 1,
- EVENT_DRAGONS_BREATH = 2,
- EVENT_KNOCKBACK = 3,
- EVENT_SOLARBURN = 4
+ EVENT_FROST_ATTACK = 1,
+ EVENT_ARCANE_BLAST = 2,
+ EVENT_DRAGONS_BREATH = 3,
+ EVENT_KNOCKBACK = 4,
+ EVENT_SOLARBURN = 5
};
class boss_nethermancer_sepethrea : public CreatureScript
@@ -67,7 +67,7 @@ class boss_nethermancer_sepethrea : public CreatureScript
{
boss_nethermancer_sepethreaAI(Creature* creature) : BossAI(creature, DATA_NETHERMANCER_SEPRETHREA) {}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
_EnterCombat();
events.ScheduleEvent(EVENT_FROST_ATTACK, urand(7000, 10000));
@@ -80,18 +80,18 @@ class boss_nethermancer_sepethrea : public CreatureScript
Talk(SAY_SUMMON);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
Talk(SAY_DEATH);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -136,20 +136,20 @@ class boss_nethermancer_sepethrea : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_nethermancer_sepethreaAI(creature);
}
};
-class mob_ragin_flames : public CreatureScript
+class npc_ragin_flames : public CreatureScript
{
public:
- mob_ragin_flames() : CreatureScript("mob_ragin_flames") { }
+ npc_ragin_flames() : CreatureScript("npc_ragin_flames") { }
- struct mob_ragin_flamesAI : public ScriptedAI
+ struct npc_ragin_flamesAI : public ScriptedAI
{
- mob_ragin_flamesAI(Creature* creature) : ScriptedAI(creature)
+ npc_ragin_flamesAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -162,7 +162,7 @@ class mob_ragin_flames : public CreatureScript
bool onlyonce;
- void Reset()
+ void Reset() OVERRIDE
{
inferno_Timer = 10000;
flame_timer = 500;
@@ -173,11 +173,11 @@ class mob_ragin_flames : public CreatureScript
me->SetSpeed(MOVE_RUN, DUNGEON_MODE(0.5f, 0.7f));
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Check_Timer
if (Check_Timer <= diff)
@@ -206,8 +206,8 @@ class mob_ragin_flames : public CreatureScript
if (inferno_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_INFERNO);
- me->TauntApply(me->getVictim());
+ DoCastVictim(SPELL_INFERNO);
+ me->TauntApply(me->GetVictim());
inferno_Timer = 10000;
} else inferno_Timer -= diff;
@@ -221,14 +221,14 @@ class mob_ragin_flames : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_ragin_flamesAI(creature);
+ return new npc_ragin_flamesAI(creature);
}
};
void AddSC_boss_nethermancer_sepethrea()
{
new boss_nethermancer_sepethrea();
- new mob_ragin_flames();
+ new npc_ragin_flames();
}
diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_pathaleon_the_calculator.cpp b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_pathaleon_the_calculator.cpp
index 65cd195fb80..1bcdcd48fce 100644
--- a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_pathaleon_the_calculator.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_pathaleon_the_calculator.cpp
@@ -54,11 +54,11 @@ enum Spells
enum Events
{
- EVENT_SUMMON = 0,
- EVENT_MANA_TAP = 1,
- EVENT_ARCANE_TORRENT = 2,
- EVENT_DOMINATION = 3,
- EVENT_ARCANE_EXPLOSION = 4
+ EVENT_SUMMON = 1,
+ EVENT_MANA_TAP = 2,
+ EVENT_ARCANE_TORRENT = 3,
+ EVENT_DOMINATION = 4,
+ EVENT_ARCANE_EXPLOSION = 5
};
enum Creatures
@@ -75,7 +75,7 @@ class boss_pathaleon_the_calculator : public CreatureScript
{
boss_pathaleon_the_calculatorAI(Creature* creature) : BossAI(creature, DATA_PATHALEON_THE_CALCULATOR) { }
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
events.ScheduleEvent(EVENT_SUMMON, 30000);
@@ -86,18 +86,18 @@ class boss_pathaleon_the_calculator : public CreatureScript
Talk(SAY_AGGRO);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
Talk(SAY_DEATH);
}
- void DamageTaken(Unit* /*attacker*/, uint32& damage)
+ void DamageTaken(Unit* /*attacker*/, uint32& damage) OVERRIDE
{
if (me->HealthBelowPctDamaged(20, damage) && !me->HasAura(SPELL_FRENZY))
{
@@ -106,7 +106,7 @@ class boss_pathaleon_the_calculator : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -158,28 +158,28 @@ class boss_pathaleon_the_calculator : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_pathaleon_the_calculatorAI (creature);
+ return new boss_pathaleon_the_calculatorAI(creature);
}
};
-class mob_nether_wraith : public CreatureScript
+class npc_nether_wraith : public CreatureScript
{
public:
- mob_nether_wraith() : CreatureScript("mob_nether_wraith") { }
+ npc_nether_wraith() : CreatureScript("npc_nether_wraith") { }
- struct mob_nether_wraithAI : public ScriptedAI
+ struct npc_nether_wraithAI : public ScriptedAI
{
- mob_nether_wraithAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_nether_wraithAI(Creature* creature) : ScriptedAI(creature) {}
uint32 ArcaneMissiles_Timer;
uint32 Detonation_Timer;
uint32 Die_Timer;
bool Detonation;
- void Reset()
+ void Reset() OVERRIDE
{
ArcaneMissiles_Timer = urand(1000, 4000);
Detonation_Timer = 20000;
@@ -187,9 +187,9 @@ class mob_nether_wraith : public CreatureScript
Detonation = false;
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -199,7 +199,7 @@ class mob_nether_wraith : public CreatureScript
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1))
DoCast(target, SPELL_ARCANE_MISSILES);
else
- DoCast(me->getVictim(), SPELL_ARCANE_MISSILES);
+ DoCastVictim(SPELL_ARCANE_MISSILES);
ArcaneMissiles_Timer = urand(5000, 10000);
}
else
@@ -230,15 +230,15 @@ class mob_nether_wraith : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_nether_wraithAI (creature);
+ return new npc_nether_wraithAI(creature);
}
};
void AddSC_boss_pathaleon_the_calculator()
{
new boss_pathaleon_the_calculator();
- new mob_nether_wraith();
+ new npc_nether_wraith();
}
diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/instance_mechanar.cpp b/src/server/scripts/Outland/TempestKeep/Mechanar/instance_mechanar.cpp
index 146569db284..64ebef52a87 100644
--- a/src/server/scripts/Outland/TempestKeep/Mechanar/instance_mechanar.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Mechanar/instance_mechanar.cpp
@@ -135,7 +135,7 @@ class instance_mechanar : public InstanceMapScript
}
};
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_mechanar_InstanceMapScript(map);
}
diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp
index 2fc0b475cdf..f03cb033b0f 100644
--- a/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp
+++ b/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp
@@ -26,7 +26,7 @@ EndScriptData */
/* ContentData
npc_millhouse_manastorm
npc_warden_mellichar
-mob_zerekethvoidzone
+npc_zerekethvoidzone
EndContentData */
#include "ScriptMgr.h"
@@ -37,7 +37,7 @@ EndContentData */
# npc_millhouse_manastorm
#####*/
-enum eMillhouseSays
+enum MillhouseSays
{
SAY_INTRO_1 = 0,
SAY_INTRO_2 = 1,
@@ -53,7 +53,7 @@ enum eMillhouseSays
SAY_COMPLETE = 11,
};
-enum eMillhouseSpells
+enum MillhouseSpells
{
SPELL_CONJURE_WATER = 36879,
SPELL_ARCANE_INTELLECT = 36880,
@@ -91,7 +91,7 @@ class npc_millhouse_manastorm : public CreatureScript
uint32 Pyroblast_Timer;
uint32 Fireball_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
EventProgress_Timer = 2000;
LowHp = false;
@@ -111,7 +111,7 @@ class npc_millhouse_manastorm : public CreatureScript
}
}
- void AttackStart(Unit* who)
+ void AttackStart(Unit* who) OVERRIDE
{
if (me->Attack(who, true))
{
@@ -122,14 +122,14 @@ class npc_millhouse_manastorm : public CreatureScript
}
}
- void EnterCombat(Unit* /*who*/){}
+ void EnterCombat(Unit* /*who*/)OVERRIDE {}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_KILL);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
@@ -138,7 +138,7 @@ class npc_millhouse_manastorm : public CreatureScript
->FailQuest();*/
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!Init)
{
@@ -203,7 +203,7 @@ class npc_millhouse_manastorm : public CreatureScript
Talk(SAY_PYRO);
- DoCast(me->getVictim(), SPELL_PYROBLAST);
+ DoCastVictim(SPELL_PYROBLAST);
Pyroblast_Timer = 40000;
}
else
@@ -211,7 +211,7 @@ class npc_millhouse_manastorm : public CreatureScript
if (Fireball_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_FIREBALL);
+ DoCastVictim(SPELL_FIREBALL);
Fireball_Timer = 4000;
}
else
@@ -221,7 +221,7 @@ class npc_millhouse_manastorm : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_millhouse_manastormAI(creature);
}
@@ -230,7 +230,7 @@ class npc_millhouse_manastorm : public CreatureScript
# npc_warden_mellichar
#####*/
-enum eWardenSays
+enum WardenSays
{
YELL_INTRO1 = 0,
YELL_INTRO2 = 1,
@@ -242,7 +242,7 @@ enum eWardenSays
YELL_WELCOME = 7,
};
-enum eWardenUnits
+enum WardenUnits
{
//phase 2(acid mobs)
ENTRY_TRICKSTER = 20905,
@@ -259,7 +259,7 @@ enum eWardenUnits
ENTRY_SKYRISS = 20912,
};
-enum eWardenSpells
+enum WardenSpells
{
//TARGET_SCRIPT
SPELL_TARGET_ALPHA = 36856,
@@ -293,7 +293,7 @@ class npc_warden_mellichar : public CreatureScript
uint32 EventProgress_Timer;
uint32 Phase;
- void Reset()
+ void Reset() OVERRIDE
{
IsRunning = false;
CanSpawn = false;
@@ -308,14 +308,15 @@ class npc_warden_mellichar : public CreatureScript
instance->SetData(TYPE_HARBINGERSKYRISS, NOT_STARTED);
}
- void AttackStart(Unit* /*who*/) {}
+ void AttackStart(Unit* /*who*/) OVERRIDE {}
+
+ void MoveInLineOfSight(Unit* who) OVERRIDE
- void MoveInLineOfSight(Unit* who)
{
if (IsRunning)
return;
- if (!me->getVictim() && me->canCreatureAttack(who))
+ if (!me->GetVictim() && me->CanCreatureAttack(who))
{
if (!me->CanFly() && me->GetDistanceZ(who) > CREATURE_Z_ATTACK_RANGE)
return;
@@ -328,7 +329,7 @@ class npc_warden_mellichar : public CreatureScript
}
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(YELL_INTRO1);
DoCast(me, SPELL_BUBBLE_VISUAL);
@@ -398,7 +399,7 @@ class npc_warden_mellichar : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!IsRunning)
return;
@@ -514,14 +515,14 @@ class npc_warden_mellichar : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_warden_mellicharAI(creature);
}
};
/*#####
-# mob_zerekethvoidzone (this script probably not needed in future -> `creature_template_addon`.`auras`='36120 0')
+# npc_zerekethvoidzone (this script probably not needed in future -> `creature_template_addon`.`auras`='36120 0')
#####*/
enum ZerekethSpell
@@ -529,18 +530,18 @@ enum ZerekethSpell
SPELL_VOID_ZONE_DAMAGE = 36120,
};
-class mob_zerekethvoidzone : public CreatureScript
+class npc_zerekethvoidzone : public CreatureScript
{
public:
- mob_zerekethvoidzone() : CreatureScript("mob_zerekethvoidzone")
+ npc_zerekethvoidzone() : CreatureScript("npc_zerekethvoidzone")
{
}
- struct mob_zerekethvoidzoneAI : public ScriptedAI
+ struct npc_zerekethvoidzoneAI : public ScriptedAI
{
- mob_zerekethvoidzoneAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_zerekethvoidzoneAI(Creature* creature) : ScriptedAI(creature) {}
- void Reset()
+ void Reset() OVERRIDE
{
me->SetUInt32Value(UNIT_NPC_FLAGS, 0);
me->setFaction(16);
@@ -549,12 +550,12 @@ class mob_zerekethvoidzone : public CreatureScript
DoCast(me, SPELL_VOID_ZONE_DAMAGE);
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_zerekethvoidzoneAI(creature);
+ return new npc_zerekethvoidzoneAI(creature);
}
};
@@ -562,5 +563,5 @@ void AddSC_arcatraz()
{
new npc_millhouse_manastorm();
new npc_warden_mellichar();
- new mob_zerekethvoidzone();
+ new npc_zerekethvoidzone();
}
diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.h b/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.h
index 9c852196616..37839d4794d 100644
--- a/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.h
+++ b/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.h
@@ -16,20 +16,23 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef DEF_ARCATRAZ_H
-#define DEF_ARCATRAZ_H
+#ifndef ARCATRAZ_H_
+#define ARCATRAZ_H_
-#define TYPE_ZEREKETH 1
-#define TYPE_DALLIAH 2
-#define TYPE_SOCCOTHRATES 3
-#define TYPE_HARBINGERSKYRISS 4
-#define TYPE_WARDEN_1 5
-#define TYPE_WARDEN_2 6
-#define TYPE_WARDEN_3 7
-#define TYPE_WARDEN_4 8
-#define TYPE_WARDEN_5 9
-#define DATA_MELLICHAR 10
-#define TYPE_SHIELD_OPEN 11
-#define DATA_SPHERE_SHIELD 12
-#endif
+enum DataTypes
+{
+ TYPE_ZEREKETH = 1,
+ TYPE_DALLIAH = 2,
+ TYPE_SOCCOTHRATES = 3,
+ TYPE_HARBINGERSKYRISS = 4,
+ TYPE_WARDEN_1 = 5,
+ TYPE_WARDEN_2 = 6,
+ TYPE_WARDEN_3 = 7,
+ TYPE_WARDEN_4 = 8,
+ TYPE_WARDEN_5 = 9,
+ DATA_MELLICHAR = 10,
+ TYPE_SHIELD_OPEN = 11,
+ DATA_SPHERE_SHIELD = 12
+};
+#endif // ARCATRAZ_H_
diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp
index c6f47fe8de7..c7765eb24ad 100644
--- a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp
+++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp
@@ -32,7 +32,7 @@ EndContentData */
#include "ScriptedCreature.h"
#include "arcatraz.h"
-enum eSays
+enum Says
{
SAY_INTRO = 0,
SAY_AGGRO = 1,
@@ -43,16 +43,19 @@ enum eSays
SAY_DEATH = 6
};
-enum eSpells
+enum Spells
{
- SPELL_FEAR = 39415,
- SPELL_MIND_REND = 36924,
- H_SPELL_MIND_REND = 39017,
- SPELL_DOMINATION = 37162,
- H_SPELL_DOMINATION = 39019,
- H_SPELL_MANA_BURN = 39020,
- SPELL_66_ILLUSION = 36931, //entry 21466
- SPELL_33_ILLUSION = 36932, //entry 21467
+ SPELL_FEAR = 39415,
+ SPELL_MIND_REND = 36924,
+ H_SPELL_MIND_REND = 39017,
+ SPELL_DOMINATION = 37162,
+ H_SPELL_DOMINATION = 39019,
+ H_SPELL_MANA_BURN = 39020,
+ SPELL_66_ILLUSION = 36931, //entry 21466
+ SPELL_33_ILLUSION = 36932, //entry 21467
+
+ SPELL_MIND_REND_IMAGE = 36929,
+ H_SPELL_MIND_REND_IMAGE = 39021
};
class boss_harbinger_skyriss : public CreatureScript
@@ -84,7 +87,7 @@ class boss_harbinger_skyriss : public CreatureScript
uint32 Domination_Timer;
uint32 ManaBurn_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
if (!Intro)
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
@@ -100,7 +103,8 @@ class boss_harbinger_skyriss : public CreatureScript
ManaBurn_Timer = 25000;
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (!Intro)
return;
@@ -108,16 +112,16 @@ class boss_harbinger_skyriss : public CreatureScript
ScriptedAI::MoveInLineOfSight(who);
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
if (instance)
instance->SetData(TYPE_HARBINGERSKYRISS, DONE);
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
if (!summon)
return;
@@ -125,12 +129,12 @@ class boss_harbinger_skyriss : public CreatureScript
summon->SetHealth(summon->CountPctFromMaxHealth(33));
else
summon->SetHealth(summon->CountPctFromMaxHealth(66));
- if (me->getVictim())
+ if (me->GetVictim())
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
summon->AI()->AttackStart(target);
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
//won't yell killing pet/other unit
if (victim->GetEntry() == 21436)
@@ -152,7 +156,7 @@ class boss_harbinger_skyriss : public CreatureScript
DoCast(me, SPELL_33_ILLUSION);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!Intro)
{
@@ -209,7 +213,7 @@ class boss_harbinger_skyriss : public CreatureScript
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1))
DoCast(target, SPELL_MIND_REND);
else
- DoCast(me->getVictim(), SPELL_MIND_REND);
+ DoCastVictim(SPELL_MIND_REND);
MindRend_Timer = 8000;
}
@@ -226,7 +230,7 @@ class boss_harbinger_skyriss : public CreatureScript
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1))
DoCast(target, SPELL_FEAR);
else
- DoCast(me->getVictim(), SPELL_FEAR);
+ DoCastVictim(SPELL_FEAR);
Fear_Timer = 25000;
}
@@ -243,7 +247,7 @@ class boss_harbinger_skyriss : public CreatureScript
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1))
DoCast(target, SPELL_DOMINATION);
else
- DoCast(me->getVictim(), SPELL_DOMINATION);
+ DoCastVictim(SPELL_DOMINATION);
Domination_Timer = 16000+rand()%16000;
}
@@ -269,15 +273,12 @@ class boss_harbinger_skyriss : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_harbinger_skyrissAI (creature);
+ return new boss_harbinger_skyrissAI(creature);
}
};
-#define SPELL_MIND_REND_IMAGE 36929
-#define H_SPELL_MIND_REND_IMAGE 39021
-
class boss_harbinger_skyriss_illusion : public CreatureScript
{
public:
@@ -290,12 +291,12 @@ class boss_harbinger_skyriss_illusion : public CreatureScript
{
boss_harbinger_skyriss_illusionAI(Creature* creature) : ScriptedAI(creature) {}
- void Reset() { }
+ void Reset() OVERRIDE {}
- void EnterCombat(Unit* /*who*/) { }
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_harbinger_skyriss_illusionAI(creature);
}
diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp
index a70b6fb35b4..725c5c5aa17 100644
--- a/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp
+++ b/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp
@@ -29,7 +29,7 @@ EndScriptData */
#define MAX_ENCOUNTER 9
-enum eUnits
+enum Units
{
CONTAINMENT_CORE_SECURITY_FIELD_ALPHA = 184318, //door opened when Wrath-Scryer Soccothrates dies
CONTAINMENT_CORE_SECURITY_FIELD_BETA = 184319, //door opened when Dalliah the Doomsayer dies
@@ -148,7 +148,7 @@ class instance_arcatraz : public InstanceMapScript
MellicharGUID = creature->GetGUID();
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data) OVERRIDE
{
switch (type)
{
@@ -230,7 +230,7 @@ class instance_arcatraz : public InstanceMapScript
}
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -244,7 +244,7 @@ class instance_arcatraz : public InstanceMapScript
return 0;
}
- uint64 GetData64(uint32 data) const
+ uint64 GetData64(uint32 data) const OVERRIDE
{
switch (data)
{
@@ -255,7 +255,7 @@ class instance_arcatraz : public InstanceMapScript
}
};
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_arcatraz_InstanceMapScript(map);
}
diff --git a/src/server/scripts/Outland/TempestKeep/botanica/boss_commander_sarannis.cpp b/src/server/scripts/Outland/TempestKeep/botanica/boss_commander_sarannis.cpp
index 6775fb95824..bd67f4be8b7 100644
--- a/src/server/scripts/Outland/TempestKeep/botanica/boss_commander_sarannis.cpp
+++ b/src/server/scripts/Outland/TempestKeep/botanica/boss_commander_sarannis.cpp
@@ -52,13 +52,13 @@ class boss_commander_sarannis : public CreatureScript
{
boss_commander_sarannisAI(Creature* creature) : BossAI(creature, DATA_COMMANDER_SARANNIS) { }
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
_phase = true;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
Talk(SAY_AGGRO);
@@ -66,18 +66,18 @@ class boss_commander_sarannis : public CreatureScript
events.ScheduleEvent(EVENT_ARCANE_DEVASTATION, 15200);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_KILL);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
Talk(SAY_DEATH);
}
- void DamageTaken(Unit* /*killer*/, uint32 &damage)
+ void DamageTaken(Unit* /*killer*/, uint32 &damage) OVERRIDE
{
if (me->HealthBelowPctDamaged(50, damage) && _phase)
{
@@ -88,12 +88,12 @@ class boss_commander_sarannis : public CreatureScript
}
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
BossAI::JustSummoned(summon);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -129,7 +129,7 @@ class boss_commander_sarannis : public CreatureScript
bool _phase;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_commander_sarannisAI(creature);
}
@@ -167,13 +167,13 @@ class spell_commander_sarannis_summon_reinforcements : public SpellScriptLoader
GetCaster()->SummonCreature(NPC_SUMMONED_BLOODWARDER_RESERVIST, PosSummonReinforcements[3], TEMPSUMMON_CORPSE_DESPAWN);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_commander_sarannis_summon_reinforcements_SpellScript::HandleCast, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_commander_sarannis_summon_reinforcements_SpellScript();
}
diff --git a/src/server/scripts/Outland/TempestKeep/botanica/boss_high_botanist_freywinn.cpp b/src/server/scripts/Outland/TempestKeep/botanica/boss_high_botanist_freywinn.cpp
index 39ca6d32196..1b362fe8a5a 100644
--- a/src/server/scripts/Outland/TempestKeep/botanica/boss_high_botanist_freywinn.cpp
+++ b/src/server/scripts/Outland/TempestKeep/botanica/boss_high_botanist_freywinn.cpp
@@ -27,7 +27,7 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "the_botanica.h"
-enum eSays
+enum Says
{
SAY_AGGRO = 0,
SAY_KILL = 1,
@@ -37,7 +37,7 @@ enum eSays
SAY_OOC_RANDOM = 5
};
-enum eSpells
+enum Spells
{
SPELL_TRANQUILITY = 34550,
SPELL_TREE_FORM = 34551,
@@ -48,7 +48,10 @@ enum eSpells
SPELL_PLANT_RED = 34763
};
-#define ENTRY_FRAYER 19953
+enum Creatures
+{
+ NPC_FRAYER = 19953
+};
class boss_high_botanist_freywinn : public CreatureScript
{
@@ -71,7 +74,7 @@ class boss_high_botanist_freywinn : public CreatureScript
uint32 DeadAddsCount;
bool MoveFree;
- void Reset()
+ void Reset() OVERRIDE
{
Adds_List.clear();
@@ -82,14 +85,14 @@ class boss_high_botanist_freywinn : public CreatureScript
MoveFree = true;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
- if (summoned->GetEntry() == ENTRY_FRAYER)
+ if (summoned->GetEntry() == NPC_FRAYER)
Adds_List.push_back(summoned->GetGUID());
}
@@ -104,17 +107,17 @@ class boss_high_botanist_freywinn : public CreatureScript
}
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_KILL);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -150,7 +153,7 @@ class boss_high_botanist_freywinn : public CreatureScript
{
if (Unit* temp = Unit::GetUnit(*me, *itr))
{
- if (!temp->isAlive())
+ if (!temp->IsAlive())
{
Adds_List.erase(itr);
++DeadAddsCount;
@@ -170,7 +173,7 @@ class boss_high_botanist_freywinn : public CreatureScript
me->InterruptNonMeleeSpells(true);
me->RemoveAllAuras();
- me->GetMotionMaster()->MoveChase(me->getVictim());
+ me->GetMotionMaster()->MoveChase(me->GetVictim());
MoveFree = true;
}
MoveCheck_Timer = 500;
@@ -197,7 +200,7 @@ class boss_high_botanist_freywinn : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_high_botanist_freywinnAI(creature);
}
diff --git a/src/server/scripts/Outland/TempestKeep/botanica/boss_laj.cpp b/src/server/scripts/Outland/TempestKeep/botanica/boss_laj.cpp
index 7b4ef77ac10..fe9e7d87008 100644
--- a/src/server/scripts/Outland/TempestKeep/botanica/boss_laj.cpp
+++ b/src/server/scripts/Outland/TempestKeep/botanica/boss_laj.cpp
@@ -27,7 +27,7 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "the_botanica.h"
-enum eSpells
+enum Spells
{
SPELL_ALLERGIC_REACTION = 34697,
SPELL_TELEPORT_SELF = 34673,
@@ -41,7 +41,7 @@ enum eSpells
SPELL_SUMMON_LASHER_4 = 34688,
SPELL_SUMMON_FLAYER_3 = 34690
};
-enum eOthers
+enum Misc
{
EMOTE_SUMMON = 0,
MODEL_DEFAULT = 13109,
@@ -70,7 +70,7 @@ class boss_laj : public CreatureScript
uint32 Transform_Timer;
uint32 Allergic_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
me->SetDisplayId(MODEL_DEFAULT);
me->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_SHADOW, true);
@@ -157,17 +157,17 @@ class boss_laj : public CreatureScript
CanSummon = false;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
- if (summon && me->getVictim())
+ if (summon && me->GetVictim())
summon->AI()->AttackStart(SelectTarget(SELECT_TARGET_RANDOM, 0));
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -186,7 +186,7 @@ class boss_laj : public CreatureScript
if (Allergic_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_ALLERGIC_REACTION);
+ DoCastVictim(SPELL_ALLERGIC_REACTION);
Allergic_Timer = 25000+rand()%15000;
}
else
@@ -213,7 +213,7 @@ class boss_laj : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_lajAI(creature);
}
diff --git a/src/server/scripts/Outland/TempestKeep/botanica/boss_thorngrin_the_tender.cpp b/src/server/scripts/Outland/TempestKeep/botanica/boss_thorngrin_the_tender.cpp
index 70b626190b7..d2a1b294698 100644
--- a/src/server/scripts/Outland/TempestKeep/botanica/boss_thorngrin_the_tender.cpp
+++ b/src/server/scripts/Outland/TempestKeep/botanica/boss_thorngrin_the_tender.cpp
@@ -54,14 +54,14 @@ class boss_thorngrin_the_tender : public CreatureScript
{
boss_thorngrin_the_tenderAI(Creature* creature) : BossAI(creature, DATA_THORNGRIN_THE_TENDER) { }
- void Reset()
+ void Reset() OVERRIDE
{
_Reset();
_phase1 = true;
_phase2 = true;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
_EnterCombat();
Talk(SAY_AGGRO);
@@ -70,18 +70,18 @@ class boss_thorngrin_the_tender : public CreatureScript
events.ScheduleEvent(EVENT_ENRAGE, 12000);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_KILL);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
Talk(SAY_DEATH);
}
- void DamageTaken(Unit* /*killer*/, uint32 &damage)
+ void DamageTaken(Unit* /*killer*/, uint32 &damage) OVERRIDE
{
if (me->HealthBelowPctDamaged(50, damage) && _phase1)
{
@@ -95,7 +95,7 @@ class boss_thorngrin_the_tender : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -140,7 +140,7 @@ class boss_thorngrin_the_tender : public CreatureScript
bool _phase2;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_thorngrin_the_tenderAI(creature);
}
diff --git a/src/server/scripts/Outland/TempestKeep/botanica/boss_warp_splinter.cpp b/src/server/scripts/Outland/TempestKeep/botanica/boss_warp_splinter.cpp
index 1275550a340..36a17996f94 100644
--- a/src/server/scripts/Outland/TempestKeep/botanica/boss_warp_splinter.cpp
+++ b/src/server/scripts/Outland/TempestKeep/botanica/boss_warp_splinter.cpp
@@ -27,7 +27,7 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "the_botanica.h"
-enum eSays
+enum Says
{
SAY_AGGRO = 0,
SAY_SLAY = 1,
@@ -35,7 +35,7 @@ enum eSays
SAY_DEATH = 3
};
-enum eSpells
+enum Spells
{
WAR_STOMP = 34716,
SUMMON_TREANTS = 34727, // DBC: 34727, 34731, 34733, 34734, 34736, 34739, 34741 (with Ancestral Life spell 34742) // won't work (guardian summon)
@@ -44,7 +44,7 @@ enum eSpells
SPELL_HEAL_FATHER = 6262
};
-enum eOthers
+enum Misc
{
CREATURE_TREANT = 19949,
TREANT_SPAWN_DIST = 50 //50 yards from Warp Splinter's spawn point
@@ -61,19 +61,19 @@ float treant_pos[6][3] =
};
/*#####
-# mob_treant (Sapling)
+# npc_treant (Sapling)
#####*/
-class mob_warp_splinter_treant : public CreatureScript
+class npc_warp_splinter_treant : public CreatureScript
{
public:
- mob_warp_splinter_treant()
- : CreatureScript("mob_warp_splinter_treant")
+ npc_warp_splinter_treant()
+ : CreatureScript("npc_warp_splinter_treant")
{
}
- struct mob_warp_splinter_treantAI : public ScriptedAI
+ struct npc_warp_splinter_treantAI : public ScriptedAI
{
- mob_warp_splinter_treantAI (Creature* creature) : ScriptedAI(creature)
+ npc_warp_splinter_treantAI(Creature* creature) : ScriptedAI(creature)
{
WarpGuid = 0;
}
@@ -81,16 +81,17 @@ class mob_warp_splinter_treant : public CreatureScript
uint64 WarpGuid;
uint32 check_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
check_Timer = 0;
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void MoveInLineOfSight(Unit* /*who*/) {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
{
@@ -114,13 +115,13 @@ class mob_warp_splinter_treant : public CreatureScript
return;
}
- if (me->getVictim()->GetGUID() != WarpGuid)
+ if (me->GetVictim()->GetGUID() != WarpGuid)
DoMeleeAttackIfReady();
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_warp_splinter_treantAI(creature);
+ return new npc_warp_splinter_treantAI(creature);
}
};
@@ -150,7 +151,7 @@ class boss_warp_splinter : public CreatureScript
float Treant_Spawn_Pos_X;
float Treant_Spawn_Pos_Y;
- void Reset()
+ void Reset() OVERRIDE
{
War_Stomp_Timer = urand(25000, 40000);
Summon_Treants_Timer = 45000;
@@ -159,17 +160,17 @@ class boss_warp_splinter : public CreatureScript
me->SetSpeed(MOVE_RUN, 0.7f, true);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
}
- void KilledUnit(Unit* /*victim*/)
+ void KilledUnit(Unit* /*victim*/) OVERRIDE
{
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
}
@@ -185,12 +186,12 @@ class boss_warp_splinter : public CreatureScript
float O = - me->GetAngle(X, Y);
if (Creature* pTreant = me->SummonCreature(CREATURE_TREANT, treant_pos[i][0], treant_pos[i][1], treant_pos[i][2], O, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 25000))
- CAST_AI(mob_warp_splinter_treant::mob_warp_splinter_treantAI, pTreant->AI())->WarpGuid = me->GetGUID();
+ CAST_AI(npc_warp_splinter_treant::npc_warp_splinter_treantAI, pTreant->AI())->WarpGuid = me->GetGUID();
}
Talk(SAY_SUMMON);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -198,7 +199,7 @@ class boss_warp_splinter : public CreatureScript
//Check for War Stomp
if (War_Stomp_Timer <= diff)
{
- DoCast(me->getVictim(), WAR_STOMP);
+ DoCastVictim(WAR_STOMP);
War_Stomp_Timer = urand(25000, 40000);
}
else
@@ -207,7 +208,7 @@ class boss_warp_splinter : public CreatureScript
//Check for Arcane Volley
if (Arcane_Volley_Timer <= diff)
{
- DoCast(me->getVictim(), DUNGEON_MODE(ARCANE_VOLLEY, ARCANE_VOLLEY_H));
+ DoCastVictim(DUNGEON_MODE(ARCANE_VOLLEY, ARCANE_VOLLEY_H));
Arcane_Volley_Timer = urand(20000, 35000);
}
else
@@ -226,7 +227,7 @@ class boss_warp_splinter : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_warp_splinterAI(creature);
}
@@ -235,6 +236,6 @@ class boss_warp_splinter : public CreatureScript
void AddSC_boss_warp_splinter()
{
new boss_warp_splinter();
- new mob_warp_splinter_treant();
+ new npc_warp_splinter_treant();
}
diff --git a/src/server/scripts/Outland/TempestKeep/botanica/instance_the_botanica.cpp b/src/server/scripts/Outland/TempestKeep/botanica/instance_the_botanica.cpp
index 69b95e8c813..443a8aa55fa 100644
--- a/src/server/scripts/Outland/TempestKeep/botanica/instance_the_botanica.cpp
+++ b/src/server/scripts/Outland/TempestKeep/botanica/instance_the_botanica.cpp
@@ -59,7 +59,7 @@ class instance_the_botanica : public InstanceMapScript
}
}
- uint64 GetData64(uint32 type) const
+ uint64 GetData64(uint32 type) const OVERRIDE
{
switch (type)
{
@@ -152,7 +152,7 @@ class instance_the_botanica : public InstanceMapScript
uint64 WarpSplinterGUID;
};
- InstanceScript* GetInstanceScript(InstanceMap* map) const
+ InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE
{
return new instance_the_botanica_InstanceMapScript(map);
}
diff --git a/src/server/scripts/Outland/boss_doomlord_kazzak.cpp b/src/server/scripts/Outland/boss_doomlord_kazzak.cpp
index 0e66893d3ac..82849691fcd 100644
--- a/src/server/scripts/Outland/boss_doomlord_kazzak.cpp
+++ b/src/server/scripts/Outland/boss_doomlord_kazzak.cpp
@@ -69,7 +69,7 @@ class boss_doomlord_kazzak : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_events.Reset();
_events.ScheduleEvent(EVENT_SHADOW_VOLLEY, urand(6000, 10000));
@@ -82,17 +82,17 @@ class boss_doomlord_kazzak : public CreatureScript
_events.ScheduleEvent(EVENT_BERSERK, 180000);
}
- void JustRespawned()
+ void JustRespawned() OVERRIDE
{
Talk(SAY_INTRO);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
// When Kazzak kills a player (not pets/totems), he regens some health
if (victim->GetTypeId() != TYPEID_PLAYER)
@@ -103,12 +103,12 @@ class boss_doomlord_kazzak : public CreatureScript
Talk(SAY_KILL);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
// Return since we have no target
if (!UpdateVictim())
@@ -169,9 +169,9 @@ class boss_doomlord_kazzak : public CreatureScript
EventMap _events;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_doomlordkazzakAI (creature);
+ return new boss_doomlordkazzakAI(creature);
}
};
@@ -184,7 +184,7 @@ class spell_mark_of_kazzak : public SpellScriptLoader
{
PrepareAuraScript(spell_mark_of_kazzak_AuraScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_MARK_OF_KAZZAK_DAMAGE))
return false;
@@ -209,14 +209,14 @@ class spell_mark_of_kazzak : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_mark_of_kazzak_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_PERIODIC_MANA_LEECH);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_mark_of_kazzak_AuraScript::OnPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_MANA_LEECH);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_mark_of_kazzak_AuraScript();
}
diff --git a/src/server/scripts/Outland/boss_doomwalker.cpp b/src/server/scripts/Outland/boss_doomwalker.cpp
index 33896800ada..295d86bbce3 100644
--- a/src/server/scripts/Outland/boss_doomwalker.cpp
+++ b/src/server/scripts/Outland/boss_doomwalker.cpp
@@ -59,7 +59,7 @@ class boss_doomwalker : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_events.Reset();
_events.ScheduleEvent(EVENT_ENRAGE, 0);
@@ -70,7 +70,7 @@ class boss_doomwalker : public CreatureScript
_inEnrage = false;
}
- void KilledUnit(Unit* victim)
+ void KilledUnit(Unit* victim) OVERRIDE
{
victim->CastSpell(victim, SPELL_MARK_DEATH, 0);
@@ -80,24 +80,25 @@ class boss_doomwalker : public CreatureScript
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(SAY_DEATH);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
Talk(SAY_AGGRO);
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (who && who->GetTypeId() == TYPEID_PLAYER && me->IsValidAttackTarget(who))
if (who->HasAura(SPELL_MARK_DEATH, 0))
who->CastSpell(who, SPELL_AURA_DEATH, 1);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -158,9 +159,9 @@ class boss_doomwalker : public CreatureScript
bool _inEnrage;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new boss_doomwalkerAI (creature);
+ return new boss_doomwalkerAI(creature);
}
};
diff --git a/src/server/scripts/Outland/zone_blades_edge_mountains.cpp b/src/server/scripts/Outland/zone_blades_edge_mountains.cpp
index 91d9eb53506..6273731f292 100644
--- a/src/server/scripts/Outland/zone_blades_edge_mountains.cpp
+++ b/src/server/scripts/Outland/zone_blades_edge_mountains.cpp
@@ -24,8 +24,8 @@ SDCategory: Blade's Edge Mountains
EndScriptData */
/* ContentData
-mobs_bladespire_ogre
-mobs_nether_drake
+npc_bladespire_ogre
+npc_nether_drake
npc_daranelle
npc_overseer_nuaar
npc_saikkal_the_elder
@@ -51,27 +51,27 @@ bool obelisk_one, obelisk_two, obelisk_three, obelisk_four, obelisk_five;
#define LEGION_OBELISK_FIVE 185198
/*######
-## mobs_bladespire_ogre
+## npc_bladespire_ogre
######*/
/// @todo add support for quest 10512 + Creature abilities
-class mobs_bladespire_ogre : public CreatureScript
+class npc_bladespire_ogre : public CreatureScript
{
public:
- mobs_bladespire_ogre() : CreatureScript("mobs_bladespire_ogre") { }
+ npc_bladespire_ogre() : CreatureScript("npc_bladespire_ogre") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mobs_bladespire_ogreAI (creature);
+ return new npc_bladespire_ogreAI(creature);
}
- struct mobs_bladespire_ogreAI : public ScriptedAI
+ struct npc_bladespire_ogreAI : public ScriptedAI
{
- mobs_bladespire_ogreAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_bladespire_ogreAI(Creature* creature) : ScriptedAI(creature) {}
- void Reset() { }
+ void Reset() OVERRIDE {}
- void UpdateAI(uint32 /*uiDiff*/)
+ void UpdateAI(uint32 /*uiDiff*/) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -82,10 +82,10 @@ public:
};
/*######
-## mobs_nether_drake
+## npc_nether_drake
######*/
-enum eNetherdrake
+enum Netherdrake
{
//Used by 20021, 21817, 21820, 21821, 21823 but not existing in database
SAY_NIHIL_1 = 0,
@@ -107,19 +107,19 @@ enum eNetherdrake
SPELL_INTANGIBLE_PRESENCE = 36513
};
-class mobs_nether_drake : public CreatureScript
+class npc_nether_drake : public CreatureScript
{
public:
- mobs_nether_drake() : CreatureScript("mobs_nether_drake") { }
+ npc_nether_drake() : CreatureScript("npc_nether_drake") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mobs_nether_drakeAI (creature);
+ return new npc_nether_drakeAI(creature);
}
- struct mobs_nether_drakeAI : public ScriptedAI
+ struct npc_nether_drakeAI : public ScriptedAI
{
- mobs_nether_drakeAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_nether_drakeAI(Creature* creature) : ScriptedAI(creature) {}
bool IsNihil;
uint32 NihilSpeech_Timer;
@@ -129,7 +129,7 @@ public:
uint32 ManaBurn_Timer;
uint32 IntangiblePresence_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
IsNihil = false;
NihilSpeech_Timer = 3000;
@@ -140,9 +140,10 @@ public:
IntangiblePresence_Timer = 15000;
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+
+ void MoveInLineOfSight(Unit* who) OVERRIDE
- void MoveInLineOfSight(Unit* who)
{
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
return;
@@ -151,7 +152,7 @@ public:
}
//in case Creature was not summoned (not expected)
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type != POINT_MOTION_TYPE)
return;
@@ -164,7 +165,7 @@ public:
}
}
- void SpellHit(Unit* caster, const SpellInfo* spell)
+ void SpellHit(Unit* caster, const SpellInfo* spell) OVERRIDE
{
if (spell->Id == SPELL_T_PHASE_MODULATOR && caster->GetTypeId() == TYPEID_PLAYER)
{
@@ -195,7 +196,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (IsNihil)
{
@@ -238,13 +239,13 @@ public:
if (IntangiblePresence_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_INTANGIBLE_PRESENCE);
+ DoCastVictim(SPELL_INTANGIBLE_PRESENCE);
IntangiblePresence_Timer = 15000+rand()%15000;
} else IntangiblePresence_Timer -= diff;
if (ManaBurn_Timer <= diff)
{
- Unit* target = me->getVictim();
+ Unit* target = me->GetVictim();
if (target && target->getPowerType() == POWER_MANA)
DoCast(target, SPELL_MANA_BURN);
ManaBurn_Timer = 8000+rand()%8000;
@@ -252,7 +253,7 @@ public:
if (ArcaneBlast_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_ARCANE_BLAST);
+ DoCastVictim(SPELL_ARCANE_BLAST);
ArcaneBlast_Timer = 2500+rand()%5000;
} else ArcaneBlast_Timer -= diff;
@@ -265,7 +266,7 @@ public:
## npc_daranelle
######*/
-enum eDaranelle
+enum Daranelle
{
SAY_SPELL_INFLUENCE = 0,
SPELL_LASHHAN_CHANNEL = 36904
@@ -276,20 +277,21 @@ class npc_daranelle : public CreatureScript
public:
npc_daranelle() : CreatureScript("npc_daranelle") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_daranelleAI (creature);
+ return new npc_daranelleAI(creature);
}
struct npc_daranelleAI : public ScriptedAI
{
npc_daranelleAI(Creature* creature) : ScriptedAI(creature) {}
- void Reset() { }
+ void Reset() OVERRIDE {}
+
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void EnterCombat(Unit* /*who*/) {}
+ void MoveInLineOfSight(Unit* who) OVERRIDE
- void MoveInLineOfSight(Unit* who)
{
if (who->GetTypeId() == TYPEID_PLAYER)
{
@@ -317,7 +319,7 @@ class npc_overseer_nuaar : public CreatureScript
public:
npc_overseer_nuaar() : CreatureScript("npc_overseer_nuaar") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF+1)
@@ -328,7 +330,7 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
if (player->GetQuestStatus(10682) == QUEST_STATUS_INCOMPLETE)
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HELLO_ON, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
@@ -351,7 +353,7 @@ class npc_saikkal_the_elder : public CreatureScript
public:
npc_saikkal_the_elder() : CreatureScript("npc_saikkal_the_elder") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -368,7 +370,7 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
if (player->GetQuestStatus(10980) == QUEST_STATUS_INCOMPLETE)
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HELLO_STE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
@@ -388,7 +390,7 @@ class go_legion_obelisk : public GameObjectScript
public:
go_legion_obelisk() : GameObjectScript("go_legion_obelisk") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
if (player->GetQuestStatus(10821) == QUEST_STATUS_INCOMPLETE)
{
@@ -431,7 +433,7 @@ public:
## npc_bloodmaul_brutebane
######*/
-enum eBloodmaul
+enum Bloodmaul
{
NPC_OGRE_BRUTE = 19995,
NPC_QUEST_CREDIT = 21241,
@@ -445,7 +447,7 @@ class npc_bloodmaul_brutebane : public CreatureScript
public:
npc_bloodmaul_brutebane() : CreatureScript("npc_bloodmaul_brutebane") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_bloodmaul_brutebaneAI(creature);
}
@@ -463,12 +465,12 @@ public:
uint64 OgreGUID;
- void Reset()
+ void Reset() OVERRIDE
{
OgreGUID = 0;
}
- void UpdateAI(uint32 /*uiDiff*/) {}
+ void UpdateAI(uint32 /*uiDiff*/) OVERRIDE {}
};
};
@@ -481,7 +483,7 @@ class npc_ogre_brute : public CreatureScript
public:
npc_ogre_brute() : CreatureScript("npc_ogre_brute") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_ogre_bruteAI(creature);
}
@@ -492,14 +494,15 @@ public:
uint64 PlayerGUID;
- void Reset()
+ void Reset() OVERRIDE
{
PlayerGUID = 0;
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
- if (!who || (!who->isAlive()))
+ if (!who || (!who->IsAlive()))
return;
if (me->IsWithinDistInMap(who, 50.0f))
@@ -511,7 +514,7 @@ public:
}
}
- void MovementInform(uint32 /*type*/, uint32 id)
+ void MovementInform(uint32 /*type*/, uint32 id) OVERRIDE
{
Player* player = Unit::GetPlayer(*me, PlayerGUID);
if (id == 1)
@@ -528,7 +531,7 @@ public:
}
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -552,7 +555,7 @@ class go_thunderspike : public GameObjectScript
public:
go_thunderspike() : GameObjectScript("go_thunderspike") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
if (player->GetQuestStatus(QUEST_THUNDERSPIKE) == QUEST_STATUS_INCOMPLETE && !go->FindNearestCreature(NPC_GOR_GRIMGUT, 25.0f, true))
if (Creature* gorGrimgut = go->SummonCreature(NPC_GOR_GRIMGUT, -2413.4f, 6914.48f, 25.01f, 3.67f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 300000))
@@ -654,7 +657,7 @@ class npc_simon_bunny : public CreatureScript
EventMap _events;
std::list<uint8> colorSequence, playableSequence, playerSequence;
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
_events.Update(diff);
@@ -708,7 +711,7 @@ class npc_simon_bunny : public CreatureScript
}
}
- void DoAction(int32 action)
+ void DoAction(int32 action) OVERRIDE
{
switch (action)
{
@@ -734,7 +737,7 @@ class npc_simon_bunny : public CreatureScript
}
// Called by color clusters script (go_simon_cluster) and used for knowing the button pressed by player
- void SetData(uint32 type, uint32 /*data*/)
+ void SetData(uint32 type, uint32 /*data*/) OVERRIDE
{
if (!listening)
return;
@@ -757,7 +760,7 @@ class npc_simon_bunny : public CreatureScript
}
// Used for getting involved player guid. Parameter id is used for defining if is a large(Monument) or small(Relic) node
- void SetGUID(uint64 guid, int32 id)
+ void SetGUID(uint64 guid, int32 id) OVERRIDE
{
me->SetCanFly(true);
@@ -1047,7 +1050,7 @@ class npc_simon_bunny : public CreatureScript
}
}
- void SpellHitTarget(Unit* target, const SpellInfo* spell)
+ void SpellHitTarget(Unit* target, const SpellInfo* spell) OVERRIDE
{
// Cast SPELL_BAD_PRESS_DAMAGE with scaled basepoints when the visual hits the target.
// Need Fix: When SPELL_BAD_PRESS_TRIGGER hits target it triggers spell SPELL_BAD_PRESS_DAMAGE by itself
@@ -1079,7 +1082,7 @@ class npc_simon_bunny : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_simon_bunnyAI(creature);
}
@@ -1090,7 +1093,7 @@ class go_simon_cluster : public GameObjectScript
public:
go_simon_cluster() : GameObjectScript("go_simon_cluster") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
if (Creature* bunny = go->FindNearestCreature(NPC_SIMON_BUNNY, 12.0f, true))
bunny->AI()->SetData(go->GetEntry(), 0);
@@ -1116,14 +1119,14 @@ class go_apexis_relic : public GameObjectScript
public:
go_apexis_relic() : GameObjectScript("go_apexis_relic") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
player->PrepareGossipMenu(go, go->GetGOInfo()->questgiver.gossipID);
player->SendPreparedGossip(go);
return true;
}
- bool OnGossipSelect(Player* player, GameObject* go, uint32 /*sender*/, uint32 /*action*/)
+ bool OnGossipSelect(Player* player, GameObject* go, uint32 /*sender*/, uint32 /*action*/) OVERRIDE
{
player->CLOSE_GOSSIP_MENU();
@@ -1142,8 +1145,8 @@ class go_apexis_relic : public GameObjectScript
void AddSC_blades_edge_mountains()
{
- new mobs_bladespire_ogre();
- new mobs_nether_drake();
+ new npc_bladespire_ogre();
+ new npc_nether_drake();
new npc_daranelle();
new npc_overseer_nuaar();
new npc_saikkal_the_elder();
diff --git a/src/server/scripts/Outland/zone_hellfire_peninsula.cpp b/src/server/scripts/Outland/zone_hellfire_peninsula.cpp
index 48e0243bf0e..fc7f4d2ae00 100644
--- a/src/server/scripts/Outland/zone_hellfire_peninsula.cpp
+++ b/src/server/scripts/Outland/zone_hellfire_peninsula.cpp
@@ -44,7 +44,7 @@ EndContentData */
## npc_aeranas
######*/
-enum eAeranas
+enum Aeranas
{
SAY_SUMMON = 0,
SAY_FREE = 1,
@@ -61,9 +61,9 @@ class npc_aeranas : public CreatureScript
public:
npc_aeranas() : CreatureScript("npc_aeranas") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_aeranasAI (creature);
+ return new npc_aeranasAI(creature);
}
struct npc_aeranasAI : public ScriptedAI
@@ -74,7 +74,7 @@ public:
uint32 EnvelopingWinds_Timer;
uint32 Shock_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
Faction_Timer = 8000;
EnvelopingWinds_Timer = 9000;
@@ -86,7 +86,7 @@ public:
Talk(SAY_SUMMON);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (Faction_Timer)
{
@@ -113,13 +113,13 @@ public:
if (Shock_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_SHOCK);
+ DoCastVictim(SPELL_SHOCK);
Shock_Timer = 10000;
} else Shock_Timer -= diff;
if (EnvelopingWinds_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_ENVELOPING_WINDS);
+ DoCastVictim(SPELL_ENVELOPING_WINDS);
EnvelopingWinds_Timer = 25000;
} else EnvelopingWinds_Timer -= diff;
@@ -132,7 +132,7 @@ public:
## npc_ancestral_wolf
######*/
-enum eAncestralWolf
+enum AncestralWolf
{
EMOTE_WOLF_LIFT_HEAD = 0,
EMOTE_WOLF_HOWL = 1,
@@ -148,7 +148,7 @@ class npc_ancestral_wolf : public CreatureScript
public:
npc_ancestral_wolf() : CreatureScript("npc_ancestral_wolf") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_ancestral_wolfAI(creature);
}
@@ -168,13 +168,14 @@ public:
Creature* pRyga;
- void Reset()
+ void Reset() OVERRIDE
{
pRyga = NULL;
DoCast(me, SPELL_ANCESTRAL_WOLF_BUFF, true);
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (!pRyga && who->GetEntry() == NPC_RYGA && me->IsWithinDistInMap(who, 15.0f))
if (Creature* temp = who->ToCreature())
@@ -183,7 +184,7 @@ public:
npc_escortAI::MoveInLineOfSight(who);
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
switch (waypointId)
{
@@ -194,7 +195,7 @@ public:
Talk(EMOTE_WOLF_HOWL);
break;
case 50:
- if (pRyga && pRyga->isAlive() && !pRyga->isInCombat())
+ if (pRyga && pRyga->IsAlive() && !pRyga->IsInCombat())
pRyga->AI()->Talk(SAY_WOLF_WELCOME);
break;
}
@@ -208,7 +209,7 @@ public:
#define GOSSIP_NALADU_ITEM1 "Why don't you escape?"
-enum eNaladu
+enum Naladu
{
GOSSIP_TEXTID_NALADU1 = 9788
};
@@ -218,7 +219,7 @@ class npc_naladu : public CreatureScript
public:
npc_naladu() : CreatureScript("npc_naladu") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF+1)
@@ -227,9 +228,9 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_NALADU_ITEM1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
@@ -246,7 +247,7 @@ public:
#define GOSSIP_TRACY_PROUDWELL_ITEM1 "I heard that your dog Fei Fei took Klatu's prayer beads..."
#define GOSSIP_TRACY_PROUDWELL_ITEM2 "<back>"
-enum eTracy
+enum Tracy
{
GOSSIP_TEXTID_TRACY_PROUDWELL1 = 10689,
QUEST_DIGGING_FOR_PRAYER_BEADS = 10916
@@ -257,7 +258,7 @@ class npc_tracy_proudwell : public CreatureScript
public:
npc_tracy_proudwell() : CreatureScript("npc_tracy_proudwell") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -277,12 +278,12 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
- if (creature->isVendor())
+ if (creature->IsVendor())
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_REDEEM_MARKS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
if (player->GetQuestStatus(QUEST_DIGGING_FOR_PRAYER_BEADS) == QUEST_STATUS_INCOMPLETE)
@@ -301,7 +302,7 @@ public:
#define GOSSIP_TROLLBANE_ITEM2 "<more>"
#define GOSSIP_TROLLBANE_ITEM3 "Tell me of your homeland."
-enum eTrollbane
+enum Trollbane
{
GOSSIP_TEXTID_TROLLBANE1 = 9932,
GOSSIP_TEXTID_TROLLBANE2 = 9933,
@@ -313,7 +314,7 @@ class npc_trollbane : public CreatureScript
public:
npc_trollbane() : CreatureScript("npc_trollbane") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -333,9 +334,9 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_TROLLBANE_ITEM1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
@@ -349,7 +350,7 @@ public:
## npc_wounded_blood_elf
######*/
-enum eWoundedBloodElf
+enum WoundedBloodElf
{
SAY_ELF_START = 0,
SAY_ELF_SUMMON1 = 1,
@@ -366,7 +367,7 @@ class npc_wounded_blood_elf : public CreatureScript
public:
npc_wounded_blood_elf() : CreatureScript("npc_wounded_blood_elf") { }
- bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_ROAD_TO_FALCON_WATCH)
{
@@ -380,7 +381,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_wounded_blood_elfAI(creature);
}
@@ -389,7 +390,7 @@ public:
{
npc_wounded_blood_elfAI(Creature* creature) : npc_escortAI(creature) {}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
Player* player = GetPlayerForEscort();
if (!player)
@@ -423,15 +424,15 @@ public:
}
}
- void Reset() { }
+ void Reset() OVERRIDE {}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
if (HasEscortState(STATE_ESCORT_ESCORTING))
Talk(SAY_ELF_AGGRO);
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
summoned->AI()->AttackStart(me);
}
@@ -442,7 +443,7 @@ public:
## npc_fel_guard_hound
######*/
-enum eFelGuard
+enum FelGuard
{
SPELL_SUMMON_POO = 37688,
@@ -454,7 +455,7 @@ class npc_fel_guard_hound : public CreatureScript
public:
npc_fel_guard_hound() : CreatureScript("npc_fel_guard_hound") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_fel_guard_houndAI(creature);
}
@@ -466,13 +467,13 @@ public:
uint32 uiCheckTimer;
uint64 uiHelboarGUID;
- void Reset()
+ void Reset() OVERRIDE
{
uiCheckTimer = 5000; //check for creature every 5 sec
uiHelboarGUID = 0;
}
- void MovementInform(uint32 uiType, uint32 uiId)
+ void MovementInform(uint32 uiType, uint32 uiId) OVERRIDE
{
if (uiType != POINT_MOTION_TYPE || uiId != 1)
return;
@@ -487,7 +488,7 @@ public:
}
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
if (uiCheckTimer <= uiDiff)
{
diff --git a/src/server/scripts/Outland/zone_nagrand.cpp b/src/server/scripts/Outland/zone_nagrand.cpp
index 148bfeaeefe..1d5e1b8b6a5 100644
--- a/src/server/scripts/Outland/zone_nagrand.cpp
+++ b/src/server/scripts/Outland/zone_nagrand.cpp
@@ -60,7 +60,7 @@ class npc_greatmother_geyah : public CreatureScript
public:
npc_greatmother_geyah() : CreatureScript("npc_greatmother_geyah") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -121,9 +121,9 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
if (player->GetQuestStatus(10044) == QUEST_STATUS_INCOMPLETE)
@@ -147,7 +147,7 @@ public:
## npc_maghar_captive
#####*/
-enum eMagharCaptive
+enum MagharCaptive
{
SAY_MAG_START = 0,
SAY_MAG_NO_ESCAPE = 0,
@@ -178,7 +178,7 @@ class npc_maghar_captive : public CreatureScript
public:
npc_maghar_captive() : CreatureScript("npc_maghar_captive") { }
- bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_TOTEM_KARDASH_H)
{
@@ -199,7 +199,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_maghar_captiveAI(creature);
}
@@ -212,19 +212,19 @@ public:
uint32 m_uiHealTimer;
uint32 m_uiFrostShockTimer;
- void Reset()
+ void Reset() OVERRIDE
{
m_uiChainLightningTimer = 1000;
m_uiHealTimer = 0;
m_uiFrostShockTimer = 6000;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
DoCast(me, SPELL_EARTHBIND_TOTEM, false);
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
switch (waypointId)
{
@@ -249,12 +249,12 @@ public:
}
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
if (summoned->GetEntry() == NPC_MURK_BRUTE)
summoned->AI()->Talk(SAY_MAG_NO_ESCAPE);
- if (summoned->isTotem())
+ if (summoned->IsTotem())
return;
summoned->SetWalk(false);
@@ -263,7 +263,7 @@ public:
}
- void SpellHitTarget(Unit* /*target*/, const SpellInfo* pSpell)
+ void SpellHitTarget(Unit* /*target*/, const SpellInfo* pSpell) OVERRIDE
{
if (pSpell->Id == SPELL_CHAIN_LIGHTNING)
{
@@ -274,15 +274,15 @@ public:
}
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
npc_escortAI::UpdateAI(uiDiff);
- if (!me->getVictim())
+ if (!me->GetVictim())
return;
if (m_uiChainLightningTimer <= uiDiff)
{
- DoCast(me->getVictim(), SPELL_CHAIN_LIGHTNING);
+ DoCastVictim(SPELL_CHAIN_LIGHTNING);
m_uiChainLightningTimer = urand(7000, 14000);
}
else
@@ -301,7 +301,7 @@ public:
if (m_uiFrostShockTimer <= uiDiff)
{
- DoCast(me->getVictim(), SPELL_FROST_SHOCK);
+ DoCastVictim(SPELL_FROST_SHOCK);
m_uiFrostShockTimer = urand(7500, 15000);
}
else
@@ -321,20 +321,21 @@ class npc_creditmarker_visit_with_ancestors : public CreatureScript
public:
npc_creditmarker_visit_with_ancestors() : CreatureScript("npc_creditmarker_visit_with_ancestors") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_creditmarker_visit_with_ancestorsAI (creature);
+ return new npc_creditmarker_visit_with_ancestorsAI(creature);
}
struct npc_creditmarker_visit_with_ancestorsAI : public ScriptedAI
{
npc_creditmarker_visit_with_ancestorsAI(Creature* creature) : ScriptedAI(creature) {}
- void Reset() {}
+ void Reset() OVERRIDE {}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+
+ void MoveInLineOfSight(Unit* who) OVERRIDE
- void MoveInLineOfSight(Unit* who)
{
if (!who)
return;
@@ -384,7 +385,7 @@ class go_corkis_prison : public GameObjectScript
public:
go_corkis_prison() : GameObjectScript("go_corkis_prison") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
go->SetGoState(GO_STATE_READY);
if (go->GetEntry() == GO_CORKIS_PRISON)
@@ -425,7 +426,7 @@ class npc_corki : public CreatureScript
public:
npc_corki() : CreatureScript("npc_corki") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_corkiAI(creature);
}
@@ -437,13 +438,13 @@ public:
uint32 Say_Timer;
bool ReleasedFromCage;
- void Reset()
+ void Reset() OVERRIDE
{
Say_Timer = 5000;
ReleasedFromCage = false;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (ReleasedFromCage)
{
@@ -457,7 +458,7 @@ public:
}
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type == POINT_MOTION_TYPE && id == 1)
{
@@ -509,7 +510,7 @@ class npc_kurenai_captive : public CreatureScript
public:
npc_kurenai_captive() : CreatureScript("npc_kurenai_captive") { }
- bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_TOTEM_KARDASH_A)
{
@@ -527,7 +528,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_kurenai_captiveAI(creature);
}
@@ -540,19 +541,19 @@ public:
uint32 HealTimer;
uint32 FrostShockTimer;
- void Reset()
+ void Reset() OVERRIDE
{
ChainLightningTimer = 1000;
HealTimer = 0;
FrostShockTimer = 6000;
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
DoCast(me, SPELL_KUR_EARTHBIND_TOTEM, false);
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (!HasEscortState(STATE_ESCORT_ESCORTING))
return;
@@ -564,7 +565,7 @@ public:
}
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
switch (waypointId)
{
@@ -593,13 +594,13 @@ public:
}
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
if (summoned->GetEntry() == NPC_KUR_MURK_BRUTE)
Talk(SAY_KUR_NO_ESCAPE);
// This function is for when we summoned enemies to fight - so that does NOT mean we should make our totem count in this!
- if (summoned->isTotem())
+ if (summoned->IsTotem())
return;
summoned->SetWalk(false);
@@ -607,7 +608,7 @@ public:
summoned->AI()->AttackStart(me);
}
- void SpellHitTarget(Unit* /*target*/, const SpellInfo* spell)
+ void SpellHitTarget(Unit* /*target*/, const SpellInfo* spell) OVERRIDE
{
if (spell->Id == SPELL_KUR_CHAIN_LIGHTNING)
{
@@ -626,7 +627,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -636,7 +637,7 @@ public:
if (ChainLightningTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_KUR_CHAIN_LIGHTNING);
+ DoCastVictim(SPELL_KUR_CHAIN_LIGHTNING);
ChainLightningTimer = urand(7000, 14000);
} else ChainLightningTimer -= diff;
@@ -651,7 +652,7 @@ public:
if (FrostShockTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_KUR_FROST_SHOCK);
+ DoCastVictim(SPELL_KUR_FROST_SHOCK);
FrostShockTimer = urand(7500, 15000);
} else FrostShockTimer -= diff;
@@ -677,7 +678,7 @@ class go_warmaul_prison : public GameObjectScript
public:
go_warmaul_prison() : GameObjectScript("go_warmaul_prison") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
go->UseDoorOrButton();
if (player->GetQuestStatus(QUEST_FINDING_THE_SURVIVORS) != QUEST_STATUS_INCOMPLETE)
diff --git a/src/server/scripts/Outland/zone_netherstorm.cpp b/src/server/scripts/Outland/zone_netherstorm.cpp
index 7af36d381e8..7e99275adbd 100644
--- a/src/server/scripts/Outland/zone_netherstorm.cpp
+++ b/src/server/scripts/Outland/zone_netherstorm.cpp
@@ -43,7 +43,7 @@ EndContentData */
######*/
//used by 20209, 20417, 20418, 20440, signed for 20209
-enum eManaforgeConsoleData
+enum ManaforgeConsoleData
{
EMOTE_START = 0,
EMOTE_60 = 1,
@@ -74,9 +74,9 @@ class npc_manaforge_control_console : public CreatureScript
public:
npc_manaforge_control_console() : CreatureScript("npc_manaforge_control_console") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_manaforge_control_consoleAI (creature);
+ return new npc_manaforge_control_consoleAI(creature);
}
struct npc_manaforge_control_consoleAI : public ScriptedAI
@@ -91,7 +91,7 @@ public:
uint64 goConsole;
Creature* add;
- void Reset()
+ void Reset() OVERRIDE
{
Event_Timer = 3000;
Wave_Timer = 0;
@@ -102,9 +102,9 @@ public:
add = NULL;
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- /*void SpellHit(Unit* caster, const SpellInfo* spell)
+ /*void SpellHit(Unit* caster, const SpellInfo* spell) OVERRIDE
{
//we have no way of telling the Creature was hit by spell -> got aura applied after 10-12 seconds
//then no way for the mobs to actually stop the shutdown as intended.
@@ -112,7 +112,7 @@ public:
DoSay("Silence! I kill you!", LANG_UNIVERSAL, NULL);
}*/
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
Talk(EMOTE_ABORT);
@@ -234,7 +234,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (Event_Timer <= diff)
{
@@ -311,7 +311,7 @@ class go_manaforge_control_console : public GameObjectScript
public:
go_manaforge_control_console() : GameObjectScript("go_manaforge_control_console") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
if (go->GetGoType() == GAMEOBJECT_TYPE_QUESTGIVER)
{
@@ -360,7 +360,7 @@ public:
######*/
// The Speech of Dawnforge, Ardonis & Pathaleon
-enum eCommanderDawnforgeData
+enum CommanderDawnforgeData
{
SAY_COMMANDER_DAWNFORGE_1 = 0,
SAY_COMMANDER_DAWNFORGE_2 = 1,
@@ -393,7 +393,7 @@ class npc_commander_dawnforge : public CreatureScript
public:
npc_commander_dawnforge() : CreatureScript("npc_commander_dawnforge") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_commander_dawnforgeAI(creature);
}
@@ -414,7 +414,7 @@ public:
float angle_dawnforge;
float angle_ardonis;
- void Reset()
+ void Reset() OVERRIDE
{
PlayerGUID = 0;
ardonisGUID = 0;
@@ -426,9 +426,9 @@ public:
isEvent = false;
}
- void EnterCombat(Unit* /*who*/) { }
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
pathaleonGUID = summoned->GetGUID();
}
@@ -506,7 +506,7 @@ public:
return false;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Is event even running?
if (!isEvent)
@@ -644,13 +644,13 @@ class at_commander_dawnforge : public AreaTriggerScript
public:
at_commander_dawnforge() : AreaTriggerScript("at_commander_dawnforge") { }
- bool OnTrigger(Player* player, const AreaTriggerEntry* /*at*/)
+ bool OnTrigger(Player* player, const AreaTriggerEntry* /*at*/) OVERRIDE
{
//if player lost aura or not have at all, we should not try start event.
if (!player->HasAura(SPELL_SUNFURY_DISGUISE))
return false;
- if (player->isAlive() && player->GetQuestStatus(QUEST_INFO_GATHERING) == QUEST_STATUS_INCOMPLETE)
+ if (player->IsAlive() && player->GetQuestStatus(QUEST_INFO_GATHERING) == QUEST_STATUS_INCOMPLETE)
{
Creature* Dawnforge = player->FindNearestCreature(CreatureEntry[1], 30.0f);
if (!Dawnforge)
@@ -666,7 +666,7 @@ public:
/*######
## npc_professor_dabiri
######*/
-enum eProfessorDabiriData
+enum ProfessorDabiriData
{
SPELL_PHASE_DISTRUPTOR = 35780,
@@ -687,7 +687,7 @@ public:
//if (quest->GetQuestId() == QUEST_DIMENSIUS)
//creature->AI()->Talk(WHISPER_DABIRI, player->GetGUID());
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF+1)
@@ -699,9 +699,9 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
if (player->GetQuestStatus(QUEST_ON_NETHERY_WINGS) == QUEST_STATUS_INCOMPLETE && !player->HasItemCount(29778))
@@ -714,10 +714,10 @@ public:
};
/*######
-## mob_phase_hunter
+## npc_phase_hunter
######*/
-enum ePhaseHunterData
+enum PhaseHunterData
{
QUEST_RECHARGING_THE_BATTERIES = 10190,
@@ -734,19 +734,19 @@ enum ePhaseHunterData
SPELL_DE_MATERIALIZE = 34814,
};
-class mob_phase_hunter : public CreatureScript
+class npc_phase_hunter : public CreatureScript
{
public:
- mob_phase_hunter() : CreatureScript("mob_phase_hunter") { }
+ npc_phase_hunter() : CreatureScript("npc_phase_hunter") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_phase_hunterAI (creature);
+ return new npc_phase_hunterAI(creature);
}
- struct mob_phase_hunterAI : public ScriptedAI
+ struct npc_phase_hunterAI : public ScriptedAI
{
- mob_phase_hunterAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_phase_hunterAI(Creature* creature) : ScriptedAI(creature) {}
bool Weak;
bool Materialize;
@@ -758,7 +758,7 @@ public:
uint32 ManaBurnTimer;
- void Reset()
+ void Reset() OVERRIDE
{
Weak = false;
Materialize = false;
@@ -773,18 +773,18 @@ public:
me->UpdateEntry(NPC_PHASE_HUNTER_ENTRY);
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (who->GetTypeId() == TYPEID_PLAYER)
PlayerGUID = who->GetGUID();
}
- //void SpellHit(Unit* /*caster*/, const SpellInfo* /*spell*/)
+ //void SpellHit(Unit* /*caster*/, const SpellInfo* /*spell*/) OVERRIDE
//{
// DoCast(me, SPELL_DE_MATERIALIZE);
//}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!Materialize)
{
@@ -850,7 +850,7 @@ public:
/*######
## npc_bessy
######*/
-enum eBessyData
+enum BessyData
{
Q_ALMABTRIEB = 10337,
N_THADELL = 20464,
@@ -865,7 +865,7 @@ class npc_bessy : public CreatureScript
public:
npc_bessy() : CreatureScript("npc_bessy") { }
- bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == Q_ALMABTRIEB)
{
@@ -876,7 +876,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_bessyAI(creature);
}
@@ -885,13 +885,13 @@ public:
{
npc_bessyAI(Creature* creature) : npc_escortAI(creature) {}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (Player* player = GetPlayerForEscort())
player->FailQuest(Q_ALMABTRIEB);
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
Player* player = GetPlayerForEscort();
if (!player)
@@ -920,12 +920,12 @@ public:
}
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
summoned->AI()->AttackStart(me);
}
- void Reset()
+ void Reset() OVERRIDE
{
me->RestoreFaction();
}
@@ -936,10 +936,10 @@ public:
## npc_maxx_a_million
######*/
-enum
+enum MaxxAMillion
{
- QUEST_MARK_V_IS_ALIVE = 10191,
- GO_DRAENEI_MACHINE = 183771
+ QUEST_MARK_V_IS_ALIVE = 10191,
+ GO_DRAENEI_MACHINE = 183771
};
class npc_maxx_a_million_escort : public CreatureScript
@@ -947,7 +947,7 @@ class npc_maxx_a_million_escort : public CreatureScript
public:
npc_maxx_a_million_escort() : CreatureScript("npc_maxx_a_million_escort") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_maxx_a_million_escortAI(creature);
}
@@ -959,13 +959,13 @@ public:
bool bTake;
uint32 uiTakeTimer;
- void Reset()
+ void Reset() OVERRIDE
{
bTake=false;
uiTakeTimer=3000;
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
Player* player = GetPlayerForEscort();
if (!player)
@@ -991,13 +991,13 @@ public:
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (Player* player = GetPlayerForEscort())
player->FailQuest(QUEST_MARK_V_IS_ALIVE);
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
npc_escortAI::UpdateAI(uiDiff);
@@ -1021,7 +1021,7 @@ public:
}
};
- bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_MARK_V_IS_ALIVE)
{
@@ -1050,7 +1050,7 @@ class go_captain_tyralius_prison : public GameObjectScript
public:
go_captain_tyralius_prison() : GameObjectScript("go_captain_tyralius_prison") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
go->UseDoorOrButton();
if (Creature* tyralius = go->FindNearestCreature(NPC_CAPTAIN_TYRALIUS, 1.0f))
@@ -1070,7 +1070,7 @@ void AddSC_netherstorm()
new npc_commander_dawnforge();
new at_commander_dawnforge();
new npc_professor_dabiri();
- new mob_phase_hunter();
+ new npc_phase_hunter();
new npc_bessy();
new npc_maxx_a_million_escort();
new go_captain_tyralius_prison();
diff --git a/src/server/scripts/Outland/zone_shadowmoon_valley.cpp b/src/server/scripts/Outland/zone_shadowmoon_valley.cpp
index 644fd71e7a2..b7cf46ad8ae 100644
--- a/src/server/scripts/Outland/zone_shadowmoon_valley.cpp
+++ b/src/server/scripts/Outland/zone_shadowmoon_valley.cpp
@@ -24,8 +24,8 @@ SDCategory: Shadowmoon Valley
EndScriptData */
/* ContentData
-mob_mature_netherwing_drake
-mob_enslaved_netherwing_drake
+npc_mature_netherwing_drake
+npc_enslaved_netherwing_drake
npc_drake_dealer_hurlunk
npcs_flanis_swiftwing_and_kagrosh
npc_murkblood_overseer
@@ -33,8 +33,8 @@ npc_karynaku
npc_oronok_tornheart
npc_overlord_morghor
npc_earthmender_wilda
-mob_torloth_the_magnificent
-mob_illidari_spawn
+npc_torloth_the_magnificent
+npc_illidari_spawn
npc_lord_illidan_stormrage
go_crystal_prison
npc_enraged_spirit
@@ -50,10 +50,10 @@ EndContentData */
#include "WorldSession.h"
/*#####
-# mob_mature_netherwing_drake
+# npc_mature_netherwing_drake
#####*/
-enum eMatureNetherwing
+enum MatureNetherwing
{
SAY_JUST_EATEN = 0,
@@ -68,19 +68,19 @@ enum eMatureNetherwing
NPC_EVENT_PINGER = 22131
};
-class mob_mature_netherwing_drake : public CreatureScript
+class npc_mature_netherwing_drake : public CreatureScript
{
public:
- mob_mature_netherwing_drake() : CreatureScript("mob_mature_netherwing_drake") { }
+ npc_mature_netherwing_drake() : CreatureScript("npc_mature_netherwing_drake") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_mature_netherwing_drakeAI(creature);
+ return new npc_mature_netherwing_drakeAI(creature);
}
- struct mob_mature_netherwing_drakeAI : public ScriptedAI
+ struct npc_mature_netherwing_drakeAI : public ScriptedAI
{
- mob_mature_netherwing_drakeAI(Creature* creature) : ScriptedAI(creature) { }
+ npc_mature_netherwing_drakeAI(Creature* creature) : ScriptedAI(creature) { }
uint64 uiPlayerGUID;
@@ -90,7 +90,7 @@ public:
uint32 EatTimer;
uint32 CastTimer;
- void Reset()
+ void Reset() OVERRIDE
{
uiPlayerGUID = 0;
@@ -101,7 +101,7 @@ public:
CastTimer = 5000;
}
- void SpellHit(Unit* pCaster, SpellInfo const* spell)
+ void SpellHit(Unit* pCaster, SpellInfo const* spell) OVERRIDE
{
if (bCanEat || bIsEating)
return;
@@ -113,7 +113,7 @@ public:
}
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type != POINT_MOTION_TYPE)
return;
@@ -126,7 +126,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (bCanEat || bIsEating)
{
@@ -177,7 +177,7 @@ public:
if (CastTimer <= diff)
{
- DoCast(me->getVictim(), SPELL_NETHER_BREATH);
+ DoCastVictim(SPELL_NETHER_BREATH);
CastTimer = 5000;
} else CastTimer -= diff;
@@ -187,31 +187,38 @@ public:
};
/*###
-# mob_enslaved_netherwing_drake
+# npc_enslaved_netherwing_drake
####*/
-#define FACTION_DEFAULT 62
-#define FACTION_FRIENDLY 1840 // Not sure if this is correct, it was taken off of Mordenai.
+enum EnshlavedNetherwingDrake
+{
+ // Factions
+ FACTION_DEFAULT = 62,
+ FACTION_FRIENDLY = 1840, // Not sure if this is correct, it was taken off of Mordenai.
+
+ // Spells
+ SPELL_HIT_FORCE_OF_NELTHARAKU = 38762,
+ SPELL_FORCE_OF_NELTHARAKU = 38775,
-#define SPELL_HIT_FORCE_OF_NELTHARAKU 38762
-#define SPELL_FORCE_OF_NELTHARAKU 38775
+ // Creatures
+ NPC_DRAGONMAW_SUBJUGATOR = 21718,
+ NPC_ESCAPE_DUMMY = 22317
-#define CREATURE_DRAGONMAW_SUBJUGATOR 21718
-#define CREATURE_ESCAPE_DUMMY 22317
+};
-class mob_enslaved_netherwing_drake : public CreatureScript
+class npc_enslaved_netherwing_drake : public CreatureScript
{
public:
- mob_enslaved_netherwing_drake() : CreatureScript("mob_enslaved_netherwing_drake") { }
+ npc_enslaved_netherwing_drake() : CreatureScript("npc_enslaved_netherwing_drake") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_enslaved_netherwing_drakeAI(creature);
+ return new npc_enslaved_netherwing_drakeAI(creature);
}
- struct mob_enslaved_netherwing_drakeAI : public ScriptedAI
+ struct npc_enslaved_netherwing_drakeAI : public ScriptedAI
{
- mob_enslaved_netherwing_drakeAI(Creature* creature) : ScriptedAI(creature)
+ npc_enslaved_netherwing_drakeAI(Creature* creature) : ScriptedAI(creature)
{
PlayerGUID = 0;
Tapped = false;
@@ -222,7 +229,7 @@ public:
uint32 FlyTimer;
bool Tapped;
- void Reset()
+ void Reset() OVERRIDE
{
if (!Tapped)
me->setFaction(FACTION_DEFAULT);
@@ -232,7 +239,7 @@ public:
me->SetVisible(true);
}
- void SpellHit(Unit* caster, const SpellInfo* spell)
+ void SpellHit(Unit* caster, const SpellInfo* spell) OVERRIDE
{
if (!caster)
return;
@@ -245,7 +252,7 @@ public:
me->setFaction(FACTION_FRIENDLY);
DoCast(caster, SPELL_FORCE_OF_NELTHARAKU, true);
- Unit* Dragonmaw = me->FindNearestCreature(CREATURE_DRAGONMAW_SUBJUGATOR, 50);
+ Unit* Dragonmaw = me->FindNearestCreature(NPC_DRAGONMAW_SUBJUGATOR, 50);
if (Dragonmaw)
{
me->AddThreat(Dragonmaw, 100000.0f);
@@ -258,7 +265,7 @@ public:
}
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type != POINT_MOTION_TYPE)
return;
@@ -280,7 +287,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
{
@@ -304,7 +311,7 @@ public:
dz += 20; // so it's in the air, not ground*/
Position pos;
- if (Unit* EscapeDummy = me->FindNearestCreature(CREATURE_ESCAPE_DUMMY, 30))
+ if (Unit* EscapeDummy = me->FindNearestCreature(NPC_ESCAPE_DUMMY, 30))
EscapeDummy->GetPosition(&pos);
else
{
@@ -327,35 +334,35 @@ public:
};
/*#####
-# mob_dragonmaw_peon
+# npc_dragonmaw_peon
#####*/
-class mob_dragonmaw_peon : public CreatureScript
+class npc_dragonmaw_peon : public CreatureScript
{
public:
- mob_dragonmaw_peon() : CreatureScript("mob_dragonmaw_peon") { }
+ npc_dragonmaw_peon() : CreatureScript("npc_dragonmaw_peon") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_dragonmaw_peonAI(creature);
+ return new npc_dragonmaw_peonAI(creature);
}
- struct mob_dragonmaw_peonAI : public ScriptedAI
+ struct npc_dragonmaw_peonAI : public ScriptedAI
{
- mob_dragonmaw_peonAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_dragonmaw_peonAI(Creature* creature) : ScriptedAI(creature) {}
uint64 PlayerGUID;
bool Tapped;
uint32 PoisonTimer;
- void Reset()
+ void Reset() OVERRIDE
{
PlayerGUID = 0;
Tapped = false;
PoisonTimer = 0;
}
- void SpellHit(Unit* caster, const SpellInfo* spell)
+ void SpellHit(Unit* caster, const SpellInfo* spell) OVERRIDE
{
if (!caster)
return;
@@ -373,7 +380,7 @@ public:
}
}
- void MovementInform(uint32 type, uint32 id)
+ void MovementInform(uint32 type, uint32 id) OVERRIDE
{
if (type != POINT_MOTION_TYPE)
return;
@@ -385,7 +392,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (PoisonTimer)
{
@@ -414,7 +421,7 @@ class npc_drake_dealer_hurlunk : public CreatureScript
public:
npc_drake_dealer_hurlunk() : CreatureScript("npc_drake_dealer_hurlunk") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_TRADE)
@@ -423,9 +430,9 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isVendor() && player->GetReputationRank(1015) == REP_EXALTED)
+ if (creature->IsVendor() && player->GetReputationRank(1015) == REP_EXALTED)
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
@@ -446,7 +453,7 @@ class npcs_flanis_swiftwing_and_kagrosh : public CreatureScript
public:
npcs_flanis_swiftwing_and_kagrosh() : CreatureScript("npcs_flanis_swiftwing_and_kagrosh") { }
- bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF+1)
@@ -472,7 +479,7 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
if (player->GetQuestStatus(10583) == QUEST_STATUS_INCOMPLETE && !player->HasItemCount(30658, 1, true))
player->ADD_GOSSIP_ITEM(0, GOSSIP_HSK1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
@@ -503,7 +510,7 @@ class npc_murkblood_overseer : public CreatureScript
public:
npc_murkblood_overseer() : CreatureScript("npc_murkblood_overseer") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -543,7 +550,7 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
if (player->GetQuestStatus(QUEST_11082) == QUEST_STATUS_INCOMPLETE)
player->ADD_GOSSIP_ITEM(0, GOSSIP_HMO, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
@@ -570,7 +577,7 @@ class npc_oronok_tornheart : public CreatureScript
public:
npc_oronok_tornheart() : CreatureScript("npc_oronok_tornheart") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -610,11 +617,11 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
- if (creature->isVendor())
+ if (creature->IsVendor())
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
if (player->GetQuestStatus(10519) == QUEST_STATUS_INCOMPLETE)
@@ -647,7 +654,7 @@ class npc_karynaku : public CreatureScript
public:
npc_karynaku() : CreatureScript("npc_karynaku") { }
- bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_ALLY_OF_NETHER)
player->ActivateTaxiPathTo(TAXI_PATH_ID);
@@ -663,7 +670,7 @@ class npc_karynaku : public CreatureScript
# npc_overlord_morghor
# this whole script is wrong and needs a rewrite.even the illidan npc used is the wrong one.npc id 23467 may be the correct one
####*/
-enum eOverlordData
+enum OverlordData
{
QUEST_LORD_ILLIDAN_STORMRAGE = 11108,
@@ -701,7 +708,7 @@ class npc_overlord_morghor : public CreatureScript
public:
npc_overlord_morghor() : CreatureScript("npc_overlord_morghor") { }
- bool OnQuestAccept(Player* player, Creature* creature, const Quest *_Quest)
+ bool OnQuestAccept(Player* player, Creature* creature, const Quest *_Quest) OVERRIDE
{
if (_Quest->GetQuestId() == QUEST_LORD_ILLIDAN_STORMRAGE)
{
@@ -712,7 +719,7 @@ public:
return false;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_overlord_morghorAI(creature);
}
@@ -729,7 +736,7 @@ public:
bool Event;
- void Reset()
+ void Reset() OVERRIDE
{
PlayerGUID = 0;
IllidanGUID = 0;
@@ -962,7 +969,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!ConversationTimer)
return;
@@ -980,7 +987,7 @@ public:
# npc_earthmender_wilda
####*/
-enum eEarthmender
+enum Earthmender
{
SAY_WIL_START = 0,
SAY_WIL_AGGRO = 1,
@@ -1005,7 +1012,7 @@ class npc_earthmender_wilda : public CreatureScript
public:
npc_earthmender_wilda() : CreatureScript("npc_earthmender_wilda") { }
- bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_ESCAPE_COILSCAR)
{
@@ -1018,7 +1025,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_earthmender_wildaAI(creature);
}
@@ -1029,12 +1036,12 @@ public:
uint32 m_uiHealingTimer;
- void Reset()
+ void Reset() OVERRIDE
{
m_uiHealingTimer = 0;
}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
Player* player = GetPlayerForEscort();
if (!player)
@@ -1092,7 +1099,7 @@ public:
}
}
- void JustSummoned(Creature* summoned)
+ void JustSummoned(Creature* summoned) OVERRIDE
{
if (summoned->GetEntry() == NPC_COILSKAR_ASSASSIN)
summoned->AI()->AttackStart(me);
@@ -1110,7 +1117,7 @@ public:
DoSummon(NPC_COILSKAR_ASSASSIN, me, 15.0f, 5000, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT);
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
//don't always use
if (rand()%5)
@@ -1125,7 +1132,7 @@ public:
}
}
- void UpdateAI(uint32 uiDiff)
+ void UpdateAI(uint32 uiDiff) OVERRIDE
{
npc_escortAI::UpdateAI(uiDiff);
@@ -1153,8 +1160,8 @@ public:
/* ContentData
Battle of the crimson watch - creatures, gameobjects and defines
-mob_illidari_spawn : Adds that are summoned in the Crimson Watch battle.
-mob_torloth_the_magnificent : Final Creature that players have to face before quest is completed
+npc_illidari_spawn : Adds that are summoned in the Crimson Watch battle.
+npc_torloth_the_magnificent : Final Creature that players have to face before quest is completed
npc_lord_illidan_stormrage : Creature that controls the event.
go_crystal_prison : GameObject that begins the event and hands out quest
EndContentData */
@@ -1240,22 +1247,22 @@ static SpawnSpells SpawnCast[]=
};
/*######
-# mob_torloth_the_magnificent
+# npc_torloth_the_magnificent
#####*/
-class mob_torloth_the_magnificent : public CreatureScript
+class npc_torloth_the_magnificent : public CreatureScript
{
public:
- mob_torloth_the_magnificent() : CreatureScript("mob_torloth_the_magnificent") { }
+ npc_torloth_the_magnificent() : CreatureScript("npc_torloth_the_magnificent") { }
- CreatureAI* GetAI(Creature* c) const
+ CreatureAI* GetAI(Creature* c) const OVERRIDE
{
- return new mob_torloth_the_magnificentAI(c);
+ return new npc_torloth_the_magnificentAI(c);
}
- struct mob_torloth_the_magnificentAI : public ScriptedAI
+ struct npc_torloth_the_magnificentAI : public ScriptedAI
{
- mob_torloth_the_magnificentAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_torloth_the_magnificentAI(Creature* creature) : ScriptedAI(creature) {}
uint32 AnimationTimer, SpellTimer1, SpellTimer2, SpellTimer3;
@@ -1266,7 +1273,7 @@ public:
bool Timers;
- void Reset()
+ void Reset() OVERRIDE
{
AnimationTimer = 4000;
AnimationCount = 0;
@@ -1279,7 +1286,7 @@ public:
me->SetTarget(0);
}
- void EnterCombat(Unit* /*who*/){}
+ void EnterCombat(Unit* /*who*/)OVERRIDE {}
void HandleAnimation()
{
@@ -1326,7 +1333,7 @@ public:
++AnimationCount;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (AnimationTimer)
{
@@ -1351,13 +1358,13 @@ public:
{
if (SpellTimer1 <= diff)
{
- DoCast(me->getVictim(), SpawnCast[6].SpellId);//Cleave
+ DoCastVictim(SpawnCast[6].SpellId);//Cleave
SpellTimer1 = SpawnCast[6].Timer2 + (rand()%10 * 1000);
} else SpellTimer1 -= diff;
if (SpellTimer2 <= diff)
{
- DoCast(me->getVictim(), SpawnCast[7].SpellId);//Shadowfury
+ DoCastVictim(SpawnCast[7].SpellId);//Shadowfury
SpellTimer2 = SpawnCast[7].Timer2 + (rand()%5 * 1000);
} else SpellTimer2 -= diff;
@@ -1371,7 +1378,7 @@ public:
DoMeleeAttackIfReady();
}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
switch (killer->GetTypeId())
{
@@ -1403,7 +1410,7 @@ class npc_lord_illidan_stormrage : public CreatureScript
public:
npc_lord_illidan_stormrage() : CreatureScript("npc_lord_illidan_stormrage") { }
- CreatureAI* GetAI(Creature* c) const
+ CreatureAI* GetAI(Creature* c) const OVERRIDE
{
return new npc_lord_illidan_stormrageAI(c);
}
@@ -1424,7 +1431,7 @@ public:
bool Announced;
bool Failed;
- void Reset()
+ void Reset() OVERRIDE
{
PlayerGUID = 0;
@@ -1440,9 +1447,10 @@ public:
me->SetVisible(false);
}
- void EnterCombat(Unit* /*who*/) {}
- void MoveInLineOfSight(Unit* /*who*/) {}
- void AttackStart(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
+
+ void AttackStart(Unit* /*who*/) OVERRIDE {}
void SummonNextWave();
@@ -1513,7 +1521,7 @@ public:
Announced = false;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!PlayerGUID || !EventStarted)
return;
@@ -1543,36 +1551,36 @@ public:
};
/*######
-# mob_illidari_spawn
+# npc_illidari_spawn
######*/
-class mob_illidari_spawn : public CreatureScript
+class npc_illidari_spawn : public CreatureScript
{
public:
- mob_illidari_spawn() : CreatureScript("mob_illidari_spawn") { }
+ npc_illidari_spawn() : CreatureScript("npc_illidari_spawn") { }
- CreatureAI* GetAI(Creature* c) const
+ CreatureAI* GetAI(Creature* c) const OVERRIDE
{
- return new mob_illidari_spawnAI(c);
+ return new npc_illidari_spawnAI(c);
}
- struct mob_illidari_spawnAI : public ScriptedAI
+ struct npc_illidari_spawnAI : public ScriptedAI
{
- mob_illidari_spawnAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_illidari_spawnAI(Creature* creature) : ScriptedAI(creature) {}
uint64 LordIllidanGUID;
uint32 SpellTimer1, SpellTimer2, SpellTimer3;
bool Timers;
- void Reset()
+ void Reset() OVERRIDE
{
LordIllidanGUID = 0;
Timers = false;
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
me->RemoveCorpse();
if (Creature* LordIllidan = (Unit::GetCreature(*me, LordIllidanGUID)))
@@ -1580,7 +1588,7 @@ public:
CAST_AI(npc_lord_illidan_stormrage::npc_lord_illidan_stormrageAI, LordIllidan->AI())->LiveCounter();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -1609,7 +1617,7 @@ public:
{
if (SpellTimer1 <= diff)
{
- DoCast(me->getVictim(), SpawnCast[0].SpellId);//Spellbreaker
+ DoCastVictim(SpawnCast[0].SpellId);//Spellbreaker
SpellTimer1 = SpawnCast[0].Timer2 + (rand()%5 * 1000);
} else SpellTimer1 -= diff;
}
@@ -1630,13 +1638,13 @@ public:
if (SpellTimer2 <= diff)
{
- DoCast(me->getVictim(), SpawnCast[2].SpellId);//Psychic Scream
+ DoCastVictim(SpawnCast[2].SpellId);//Psychic Scream
SpellTimer2 = SpawnCast[2].Timer2 + (rand()%13 * 1000);
} else SpellTimer2 -= diff;
if (SpellTimer3 <= diff)
{
- DoCast(me->getVictim(), SpawnCast[3].SpellId);//Mind Blast
+ DoCastVictim(SpawnCast[3].SpellId);//Mind Blast
SpellTimer3 = SpawnCast[3].Timer2 + (rand()%8 * 1000);
} else SpellTimer3 -= diff;
}
@@ -1645,13 +1653,13 @@ public:
{
if (SpellTimer1 <= diff)
{
- DoCast(me->getVictim(), SpawnCast[4].SpellId);//Curse Of Flames
+ DoCastVictim(SpawnCast[4].SpellId);//Curse Of Flames
SpellTimer1 = SpawnCast[4].Timer2 + (rand()%10 * 1000);
} else SpellTimer1 -= diff;
if (SpellTimer2 <= diff)
{
- DoCast(me->getVictim(), SpawnCast[5].SpellId);//Flamestrike
+ DoCastVictim(SpawnCast[5].SpellId);//Flamestrike
SpellTimer2 = SpawnCast[5].Timer2 + (rand()%7 * 13000);
} else SpellTimer2 -= diff;
}
@@ -1712,14 +1720,14 @@ void npc_lord_illidan_stormrage::npc_lord_illidan_stormrageAI::SummonNextWave()
Spawn->GetMotionMaster()->MovePoint(0, x, y, z);
}
}
- CAST_AI(mob_illidari_spawn::mob_illidari_spawnAI, Spawn->AI())->LordIllidanGUID = me->GetGUID();
+ CAST_AI(npc_illidari_spawn::npc_illidari_spawnAI, Spawn->AI())->LordIllidanGUID = me->GetGUID();
}
if (WavesInfo[WaveCount].CreatureId == 22076) // Torloth
{
- CAST_AI(mob_torloth_the_magnificent::mob_torloth_the_magnificentAI, Spawn->AI())->LordIllidanGUID = me->GetGUID();
+ CAST_AI(npc_torloth_the_magnificent::npc_torloth_the_magnificentAI, Spawn->AI())->LordIllidanGUID = me->GetGUID();
if (PlayerGUID)
- CAST_AI(mob_torloth_the_magnificent::mob_torloth_the_magnificentAI, Spawn->AI())->AggroTargetGUID = PlayerGUID;
+ CAST_AI(npc_torloth_the_magnificent::npc_torloth_the_magnificentAI, Spawn->AI())->AggroTargetGUID = PlayerGUID;
}
}
}
@@ -1737,7 +1745,7 @@ class go_crystal_prison : public GameObjectScript
public:
go_crystal_prison() : GameObjectScript("go_crystal_prison") { }
- bool OnQuestAccept(Player* player, GameObject* /*go*/, Quest const* quest)
+ bool OnQuestAccept(Player* player, GameObject* /*go*/, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_BATTLE_OF_THE_CRIMSON_WATCH)
{
@@ -1758,52 +1766,55 @@ public:
# npc_enraged_spirits
####*/
-/* QUESTS */
-#define QUEST_ENRAGED_SPIRITS_FIRE_EARTH 10458
-#define QUEST_ENRAGED_SPIRITS_AIR 10481
-#define QUEST_ENRAGED_SPIRITS_WATER 10480
-
-/* Totem */
-#define ENTRY_TOTEM_OF_SPIRITS 21071
-#define RADIUS_TOTEM_OF_SPIRITS 15
-
-/* SPIRITS */
-#define ENTRY_ENRAGED_EARTH_SPIRIT 21050
-#define ENTRY_ENRAGED_FIRE_SPIRIT 21061
-#define ENTRY_ENRAGED_AIR_SPIRIT 21060
-#define ENTRY_ENRAGED_WATER_SPIRIT 21059
-
-/* SOULS */
-#define ENTRY_EARTHEN_SOUL 21073
-#define ENTRY_FIERY_SOUL 21097
-#define ENTRY_ENRAGED_AIRY_SOUL 21116
-#define ENTRY_ENRAGED_WATERY_SOUL 21109 // wrong model
-
-/* SPELL KILLCREDIT - not working!?! - using KilledMonsterCredit */
-#define SPELL_EARTHEN_SOUL_CAPTURED_CREDIT 36108
-#define SPELL_FIERY_SOUL_CAPTURED_CREDIT 36117
-#define SPELL_AIRY_SOUL_CAPTURED_CREDIT 36182
-#define SPELL_WATERY_SOUL_CAPTURED_CREDIT 36171
-
-/* KilledMonsterCredit Workaround */
-#define CREDIT_FIRE 21094
-#define CREDIT_WATER 21095
-#define CREDIT_AIR 21096
-#define CREDIT_EARTH 21092
-
-/* Captured Spell/Buff */
-#define SPELL_SOUL_CAPTURED 36115
-
-/* Factions */
-#define ENRAGED_SOUL_FRIENDLY 35
-#define ENRAGED_SOUL_HOSTILE 14
+enum Enraged_Dpirits
+{
+// QUESTS
+ QUEST_ENRAGED_SPIRITS_FIRE_EARTH = 10458,
+ QUEST_ENRAGED_SPIRITS_AIR = 10481,
+ QUEST_ENRAGED_SPIRITS_WATER = 10480,
+
+ // Totem
+ ENTRY_TOTEM_OF_SPIRITS = 21071,
+ RADIUS_TOTEM_OF_SPIRITS = 15,
+
+ // SPIRITS
+ NPC_ENRAGED_EARTH_SPIRIT = 21050,
+ NPC_ENRAGED_FIRE_SPIRIT = 21061,
+ NPC_ENRAGED_AIR_SPIRIT = 21060,
+ NPC_ENRAGED_WATER_SPIRIT = 21059,
+
+ // SOULS
+ NPC_EARTHEN_SOUL = 21073,
+ NPC_FIERY_SOUL = 21097,
+ NPC_ENRAGED_AIRY_SOUL = 21116,
+ NPC_ENRAGED_WATERY_SOUL = 21109, // wrong model
+
+ // SPELL KILLCREDIT - not working!?! - using KilledMonsterCredit
+ SPELL_EARTHEN_SOUL_CAPTURED_CREDIT = 36108,
+ SPELL_FIERY_SOUL_CAPTURED_CREDIT = 36117,
+ SPELL_AIRY_SOUL_CAPTURED_CREDIT = 36182,
+ SPELL_WATERY_SOUL_CAPTURED_CREDIT = 36171,
+
+ // KilledMonsterCredit Workaround
+ NPC_CREDIT_FIRE = 21094,
+ NPC_CREDIT_WATER = 21095,
+ NPC_CREDIT_AIR = 21096,
+ NPC_CREDIT_EARTH = 21092,
+
+ // Captured Spell / Buff
+ SPELL_SOUL_CAPTURED = 36115,
+
+ // Factions
+ FACTION_ENRAGED_SOUL_FRIENDLY = 35,
+ FACTION_ENRAGED_SOUL_HOSTILE = 14
+};
class npc_enraged_spirit : public CreatureScript
{
public:
npc_enraged_spirit() : CreatureScript("npc_enraged_spirit") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_enraged_spiritAI(creature);
}
@@ -1812,11 +1823,11 @@ public:
{
npc_enraged_spiritAI(Creature* creature) : ScriptedAI(creature) {}
- void Reset() { }
+ void Reset() OVERRIDE {}
- void EnterCombat(Unit* /*who*/){}
+ void EnterCombat(Unit* /*who*/)OVERRIDE {}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
// always spawn spirit on death
// if totem around
@@ -1826,26 +1837,28 @@ public:
switch (me->GetEntry())
{
- case ENTRY_ENRAGED_FIRE_SPIRIT:
- entry = ENTRY_FIERY_SOUL;
- //credit = SPELL_FIERY_SOUL_CAPTURED_CREDIT;
- credit = CREDIT_FIRE;
- break;
- case ENTRY_ENRAGED_EARTH_SPIRIT:
- entry = ENTRY_EARTHEN_SOUL;
- //credit = SPELL_EARTHEN_SOUL_CAPTURED_CREDIT;
- credit = CREDIT_EARTH;
- break;
- case ENTRY_ENRAGED_AIR_SPIRIT:
- entry = ENTRY_ENRAGED_AIRY_SOUL;
- //credit = SPELL_AIRY_SOUL_CAPTURED_CREDIT;
- credit = CREDIT_AIR;
- break;
- case ENTRY_ENRAGED_WATER_SPIRIT:
- entry = ENTRY_ENRAGED_WATERY_SOUL;
- //credit = SPELL_WATERY_SOUL_CAPTURED_CREDIT;
- credit = CREDIT_WATER;
- break;
+ case NPC_ENRAGED_FIRE_SPIRIT:
+ entry = NPC_FIERY_SOUL;
+ //credit = SPELL_FIERY_SOUL_CAPTURED_CREDIT;
+ credit = NPC_CREDIT_FIRE;
+ break;
+ case NPC_ENRAGED_EARTH_SPIRIT:
+ entry = NPC_EARTHEN_SOUL;
+ //credit = SPELL_EARTHEN_SOUL_CAPTURED_CREDIT;
+ credit = NPC_CREDIT_EARTH;
+ break;
+ case NPC_ENRAGED_AIR_SPIRIT:
+ entry = NPC_ENRAGED_AIRY_SOUL;
+ //credit = SPELL_AIRY_SOUL_CAPTURED_CREDIT;
+ credit = NPC_CREDIT_AIR;
+ break;
+ case NPC_ENRAGED_WATER_SPIRIT:
+ entry = NPC_ENRAGED_WATERY_SOUL;
+ //credit = SPELL_WATERY_SOUL_CAPTURED_CREDIT;
+ credit = NPC_CREDIT_WATER;
+ break;
+ default:
+ break;
}
// Spawn Soul on Kill ALWAYS!
@@ -1861,7 +1874,7 @@ public:
totemOspirits = me->FindNearestCreature(ENTRY_TOTEM_OF_SPIRITS, RADIUS_TOTEM_OF_SPIRITS);
if (totemOspirits)
{
- Summoned->setFaction(ENRAGED_SOUL_FRIENDLY);
+ Summoned->setFaction(FACTION_ENRAGED_SOUL_FRIENDLY);
Summoned->GetMotionMaster()->MovePoint(0, totemOspirits->GetPositionX(), totemOspirits->GetPositionY(), Summoned->GetPositionZ());
if (Unit* owner = totemOspirits->GetOwner())
@@ -1896,13 +1909,13 @@ class spell_unlocking_zuluheds_chains : public SpellScriptLoader
GetCaster()->ToPlayer()->CastedCreatureOrGO(NPC_KARYNAKU, karynaku->GetGUID(), GetSpellInfo()->Id);
}
- void Register()
+ void Register() OVERRIDE
{
AfterHit += SpellHitFn(spell_unlocking_zuluheds_chains_SpellScript::HandleAfterHit);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_unlocking_zuluheds_chains_SpellScript();
}
@@ -1930,14 +1943,14 @@ public:
{
npc_shadowmoon_tuber_nodeAI(Creature* creature) : ScriptedAI(creature) {}
- void Reset()
+ void Reset() OVERRIDE
{
tapped = false;
tuberGUID = 0;
resetTimer = 60000;
}
- void SetData(uint32 id, uint32 data)
+ void SetData(uint32 id, uint32 data) OVERRIDE
{
if (id == TYPE_BOAR && data == DATA_BOAR)
{
@@ -1954,7 +1967,7 @@ public:
}
}
- void SpellHit(Unit* /*caster*/, const SpellInfo* spell)
+ void SpellHit(Unit* /*caster*/, const SpellInfo* spell) OVERRIDE
{
if (!tapped && spell->Id == SPELL_WHISTLE)
{
@@ -1968,7 +1981,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (tapped)
{
@@ -1992,7 +2005,7 @@ public:
uint32 resetTimer;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_shadowmoon_tuber_nodeAI(creature);
}
@@ -2000,9 +2013,9 @@ public:
void AddSC_shadowmoon_valley()
{
- new mob_mature_netherwing_drake();
- new mob_enslaved_netherwing_drake();
- new mob_dragonmaw_peon();
+ new npc_mature_netherwing_drake();
+ new npc_enslaved_netherwing_drake();
+ new npc_dragonmaw_peon();
new npc_drake_dealer_hurlunk();
new npcs_flanis_swiftwing_and_kagrosh();
new npc_murkblood_overseer();
@@ -2012,8 +2025,8 @@ void AddSC_shadowmoon_valley()
new npc_earthmender_wilda();
new npc_lord_illidan_stormrage();
new go_crystal_prison();
- new mob_illidari_spawn();
- new mob_torloth_the_magnificent();
+ new npc_illidari_spawn();
+ new npc_torloth_the_magnificent();
new npc_enraged_spirit();
new spell_unlocking_zuluheds_chains();
new npc_shadowmoon_tuber_node();
diff --git a/src/server/scripts/Outland/zone_shattrath_city.cpp b/src/server/scripts/Outland/zone_shattrath_city.cpp
index 1fb0210bb73..6f4694a5924 100644
--- a/src/server/scripts/Outland/zone_shattrath_city.cpp
+++ b/src/server/scripts/Outland/zone_shattrath_city.cpp
@@ -46,7 +46,7 @@ EndContentData */
#define GOSSIP_RALIQ "You owe Sim'salabim money. Hand them over or die!"
-enum eRaliq
+enum Raliq
{
SPELL_UPPERCUT = 10966,
QUEST_CRACK_SKULLS = 10009,
@@ -58,7 +58,7 @@ class npc_raliq_the_drunk : public CreatureScript
public:
npc_raliq_the_drunk() : CreatureScript("npc_raliq_the_drunk") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF+1)
@@ -70,7 +70,7 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
if (player->GetQuestStatus(QUEST_CRACK_SKULLS) == QUEST_STATUS_INCOMPLETE)
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_RALIQ, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
@@ -79,9 +79,9 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_raliq_the_drunkAI (creature);
+ return new npc_raliq_the_drunkAI(creature);
}
struct npc_raliq_the_drunkAI : public ScriptedAI
@@ -94,20 +94,20 @@ public:
uint32 m_uiNormFaction;
uint32 Uppercut_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
Uppercut_Timer = 5000;
me->RestoreFaction();
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
if (Uppercut_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_UPPERCUT);
+ DoCastVictim(SPELL_UPPERCUT);
Uppercut_Timer = 15000;
} else Uppercut_Timer -= diff;
@@ -120,18 +120,26 @@ public:
# npc_salsalabim
######*/
-#define FACTION_HOSTILE_SA 90
-#define FACTION_FRIENDLY_SA 35
-#define QUEST_10004 10004
+enum Salsalabim
+{
+ // Factions
+ FACTION_HOSTILE_SA = 90,
+ FACTION_FRIENDLY_SA = 35,
+
+ // Quests
+ QUEST_10004 = 10004,
-#define SPELL_MAGNETIC_PULL 31705
+ // Spells
+ SPELL_MAGNETIC_PULL = 31705
+
+};
class npc_salsalabim : public CreatureScript
{
public:
npc_salsalabim() : CreatureScript("npc_salsalabim") { }
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
if (player->GetQuestStatus(QUEST_10004) == QUEST_STATUS_INCOMPLETE)
{
@@ -140,16 +148,16 @@ public:
}
else
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
}
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_salsalabimAI (creature);
+ return new npc_salsalabimAI(creature);
}
struct npc_salsalabimAI : public ScriptedAI
@@ -158,13 +166,13 @@ public:
uint32 MagneticPull_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
MagneticPull_Timer = 15000;
me->RestoreFaction();
}
- void DamageTaken(Unit* done_by, uint32 &damage)
+ void DamageTaken(Unit* done_by, uint32 &damage) OVERRIDE
{
if (done_by->GetTypeId() == TYPEID_PLAYER && me->HealthBelowPctDamaged(20, damage))
{
@@ -174,14 +182,14 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
if (MagneticPull_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_MAGNETIC_PULL);
+ DoCastVictim(SPELL_MAGNETIC_PULL);
MagneticPull_Timer = 15000;
} else MagneticPull_Timer -= diff;
@@ -206,7 +214,7 @@ class npc_shattrathflaskvendors : public CreatureScript
public:
npc_shattrathflaskvendors() : CreatureScript("npc_shattrathflaskvendors") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_TRADE)
@@ -215,12 +223,12 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
if (creature->GetEntry() == 23484)
{
// Aldor vendor
- if (creature->isVendor() && (player->GetReputationRank(932) == REP_EXALTED) && (player->GetReputationRank(935) == REP_EXALTED) && (player->GetReputationRank(942) == REP_EXALTED))
+ if (creature->IsVendor() && (player->GetReputationRank(932) == REP_EXALTED) && (player->GetReputationRank(935) == REP_EXALTED) && (player->GetReputationRank(942) == REP_EXALTED))
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
player->SEND_GOSSIP_MENU(11085, creature->GetGUID());
@@ -234,7 +242,7 @@ public:
if (creature->GetEntry() == 23483)
{
// Scryers vendor
- if (creature->isVendor() && (player->GetReputationRank(934) == REP_EXALTED) && (player->GetReputationRank(935) == REP_EXALTED) && (player->GetReputationRank(942) == REP_EXALTED))
+ if (creature->IsVendor() && (player->GetReputationRank(934) == REP_EXALTED) && (player->GetReputationRank(935) == REP_EXALTED) && (player->GetReputationRank(942) == REP_EXALTED))
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
player->SEND_GOSSIP_MENU(11085, creature->GetGUID());
@@ -260,7 +268,7 @@ class npc_zephyr : public CreatureScript
public:
npc_zephyr() : CreatureScript("npc_zephyr") { }
- bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF+1)
@@ -269,7 +277,7 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
if (player->GetReputationRank(989) >= REP_REVERED)
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HZ, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
@@ -315,7 +323,7 @@ class npc_kservant : public CreatureScript
public:
npc_kservant() : CreatureScript("npc_kservant") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_kservantAI(creature);
}
@@ -325,7 +333,7 @@ public:
public:
npc_kservantAI(Creature* creature) : npc_escortAI(creature) {}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
Player* player = GetPlayerForEscort();
if (!player)
@@ -403,7 +411,8 @@ public:
}
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (HasEscortState(STATE_ESCORT_ESCORTING))
return;
@@ -419,7 +428,7 @@ public:
}
}
- void Reset() { }
+ void Reset() OVERRIDE {}
};
};
@@ -435,7 +444,7 @@ class npc_ishanah : public CreatureScript
public:
npc_ishanah() : CreatureScript("npc_ishanah") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF+1)
@@ -446,9 +455,9 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, ISANAH_GOSSIP_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
@@ -476,7 +485,7 @@ class npc_khadgar : public CreatureScript
public:
npc_khadgar() : CreatureScript("npc_khadgar") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -513,12 +522,12 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
- if (!player->hasQuest(10211))
+ if (player->GetQuestStatus(10211) != QUEST_STATUS_INCOMPLETE)
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, KHADGAR_GOSSIP_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
player->SEND_GOSSIP_MENU(9243, creature->GetGUID());
diff --git a/src/server/scripts/Outland/zone_terokkar_forest.cpp b/src/server/scripts/Outland/zone_terokkar_forest.cpp
index 85a45193931..2cf82cce4d1 100644
--- a/src/server/scripts/Outland/zone_terokkar_forest.cpp
+++ b/src/server/scripts/Outland/zone_terokkar_forest.cpp
@@ -24,10 +24,10 @@ SDCategory: Terokkar Forest
EndScriptData */
/* ContentData
-mob_unkor_the_ruthless
-mob_infested_root_walker
-mob_rotting_forest_rager
-mob_netherweb_victim
+npc_unkor_the_ruthless
+npc_infested_root_walker
+npc_rotting_forest_rager
+npc_netherweb_victim
npc_floon
npc_isla_starmane
npc_slim
@@ -42,7 +42,7 @@ EndContentData */
#include "WorldSession.h"
/*######
-## mob_unkor_the_ruthless
+## npc_unkor_the_ruthless
######*/
enum UnkorTheRuthless
@@ -56,25 +56,25 @@ enum UnkorTheRuthless
SPELL_PULVERIZE = 2676
};
-class mob_unkor_the_ruthless : public CreatureScript
+class npc_unkor_the_ruthless : public CreatureScript
{
public:
- mob_unkor_the_ruthless() : CreatureScript("mob_unkor_the_ruthless") { }
+ npc_unkor_the_ruthless() : CreatureScript("npc_unkor_the_ruthless") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_unkor_the_ruthlessAI (creature);
+ return new npc_unkor_the_ruthlessAI(creature);
}
- struct mob_unkor_the_ruthlessAI : public ScriptedAI
+ struct npc_unkor_the_ruthlessAI : public ScriptedAI
{
- mob_unkor_the_ruthlessAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_unkor_the_ruthlessAI(Creature* creature) : ScriptedAI(creature) {}
bool CanDoQuest;
uint32 UnkorUnfriendly_Timer;
uint32 Pulverize_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
CanDoQuest = false;
UnkorUnfriendly_Timer = 0;
@@ -83,7 +83,7 @@ public:
me->setFaction(FACTION_HOSTILE);
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
void DoNice()
{
@@ -96,7 +96,7 @@ public:
UnkorUnfriendly_Timer = 60000;
}
- void DamageTaken(Unit* done_by, uint32 &damage)
+ void DamageTaken(Unit* done_by, uint32 &damage) OVERRIDE
{
Player* player = done_by->ToPlayer();
@@ -106,7 +106,7 @@ public:
{
for (GroupReference* itr = group->GetFirstMember(); itr != NULL; itr = itr->next())
{
- Player* groupie = itr->getSource();
+ Player* groupie = itr->GetSource();
if (groupie &&
groupie->GetQuestStatus(QUEST_DONTKILLTHEFATONE) == QUEST_STATUS_INCOMPLETE &&
groupie->GetReqKillOrCastCurrentCount(QUEST_DONTKILLTHEFATONE, 18260) == 10)
@@ -126,7 +126,7 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (CanDoQuest)
{
@@ -160,27 +160,27 @@ public:
};
/*######
-## mob_infested_root_walker
+## npc_infested_root_walker
######*/
-class mob_infested_root_walker : public CreatureScript
+class npc_infested_root_walker : public CreatureScript
{
public:
- mob_infested_root_walker() : CreatureScript("mob_infested_root_walker") { }
+ npc_infested_root_walker() : CreatureScript("npc_infested_root_walker") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_infested_root_walkerAI (creature);
+ return new npc_infested_root_walkerAI(creature);
}
- struct mob_infested_root_walkerAI : public ScriptedAI
+ struct npc_infested_root_walkerAI : public ScriptedAI
{
- mob_infested_root_walkerAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_infested_root_walkerAI(Creature* creature) : ScriptedAI(creature) {}
- void Reset() { }
- void EnterCombat(Unit* /*who*/) { }
+ void Reset() OVERRIDE {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void DamageTaken(Unit* done_by, uint32 &damage)
+ void DamageTaken(Unit* done_by, uint32 &damage) OVERRIDE
{
if (done_by && done_by->GetTypeId() == TYPEID_PLAYER)
if (me->GetHealth() <= damage)
@@ -192,14 +192,14 @@ public:
};
/*######
-## mob_skywing
+## npc_skywing
######*/
class npc_skywing : public CreatureScript
{
public:
npc_skywing() : CreatureScript("npc_skywing") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_skywingAI(creature);
}
@@ -209,7 +209,7 @@ public:
public:
npc_skywingAI(Creature* creature) : npc_escortAI(creature) {}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
Player* player = GetPlayerForEscort();
if (!player)
@@ -223,9 +223,10 @@ public:
}
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+
+ void MoveInLineOfSight(Unit* who) OVERRIDE
- void MoveInLineOfSight(Unit* who)
{
if (HasEscortState(STATE_ESCORT_ESCORTING))
return;
@@ -236,9 +237,9 @@ public:
Start(false, false, who->GetGUID());
}
- void Reset() { }
+ void Reset() OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
npc_escortAI::UpdateAI(diff);
}
@@ -246,27 +247,27 @@ public:
};
/*######
-## mob_rotting_forest_rager
+## npc_rotting_forest_rager
######*/
-class mob_rotting_forest_rager : public CreatureScript
+class npc_rotting_forest_rager : public CreatureScript
{
public:
- mob_rotting_forest_rager() : CreatureScript("mob_rotting_forest_rager") { }
+ npc_rotting_forest_rager() : CreatureScript("npc_rotting_forest_rager") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_rotting_forest_ragerAI (creature);
+ return new npc_rotting_forest_ragerAI(creature);
}
- struct mob_rotting_forest_ragerAI : public ScriptedAI
+ struct npc_rotting_forest_ragerAI : public ScriptedAI
{
- mob_rotting_forest_ragerAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_rotting_forest_ragerAI(Creature* creature) : ScriptedAI(creature) {}
- void Reset() { }
- void EnterCombat(Unit* /*who*/) { }
+ void Reset() OVERRIDE {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void DamageTaken(Unit* done_by, uint32 &damage)
+ void DamageTaken(Unit* done_by, uint32 &damage) OVERRIDE
{
if (done_by->GetTypeId() == TYPEID_PLAYER)
if (me->GetHealth() <= damage)
@@ -278,35 +279,40 @@ public:
};
/*######
-## mob_netherweb_victim
+## npc_netherweb_victim
######*/
-#define QUEST_TARGET 22459
-//#define SPELL_FREE_WEBBED 38950
+enum NetherwebVictim
+{
+ QUEST_TARGET = 22459
+ //SPELL_FREE_WEBBED = 38950
+};
const uint32 netherwebVictims[6] =
{
18470, 16805, 21242, 18452, 22482, 21285
};
-class mob_netherweb_victim : public CreatureScript
+
+class npc_netherweb_victim : public CreatureScript
{
public:
- mob_netherweb_victim() : CreatureScript("mob_netherweb_victim") { }
+ npc_netherweb_victim() : CreatureScript("npc_netherweb_victim") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_netherweb_victimAI (creature);
+ return new npc_netherweb_victimAI(creature);
}
- struct mob_netherweb_victimAI : public ScriptedAI
+ struct npc_netherweb_victimAI : public ScriptedAI
{
- mob_netherweb_victimAI(Creature* creature) : ScriptedAI(creature) {}
+ npc_netherweb_victimAI(Creature* creature) : ScriptedAI(creature) {}
+
+ void Reset() OVERRIDE {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
- void Reset() { }
- void EnterCombat(Unit* /*who*/) { }
- void MoveInLineOfSight(Unit* /*who*/) { }
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
Player* player = killer->ToPlayer();
if (!player)
@@ -338,7 +344,7 @@ public:
#define GOSSIP_FLOON1 "You owe Sim'salabim money. Hand them over or die!"
#define GOSSIP_FLOON2 "Hand over the money or die...again!"
-enum eFloon
+enum Floon
{
SAY_FLOON_ATTACK = 0,
@@ -355,7 +361,7 @@ class npc_floon : public CreatureScript
public:
npc_floon() : CreatureScript("npc_floon") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF)
@@ -373,7 +379,7 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
if (player->GetQuestStatus(QUEST_CRACK_SKULLS) == QUEST_STATUS_INCOMPLETE)
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_FLOON1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
@@ -382,9 +388,9 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_floonAI (creature);
+ return new npc_floonAI(creature);
}
struct npc_floonAI : public ScriptedAI
@@ -399,7 +405,7 @@ public:
uint32 Frostbolt_Timer;
uint32 FrostNova_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
Silence_Timer = 2000;
Frostbolt_Timer = 4000;
@@ -408,16 +414,16 @@ public:
me->setFaction(m_uiNormFaction);
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
if (Silence_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_SILENCE);
+ DoCastVictim(SPELL_SILENCE);
Silence_Timer = 30000;
} else Silence_Timer -= diff;
@@ -429,7 +435,7 @@ public:
if (Frostbolt_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_FROSTBOLT);
+ DoCastVictim(SPELL_FROSTBOLT);
Frostbolt_Timer = 5000;
} else Frostbolt_Timer -= diff;
@@ -441,7 +447,7 @@ public:
/*######
## npc_isla_starmane
######*/
-enum eIslaStarmaneData
+enum IslaStarmaneData
{
SAY_PROGRESS_1 = 0,
SAY_PROGRESS_2 = 1,
@@ -463,7 +469,7 @@ public:
{
npc_isla_starmaneAI(Creature* creature) : npc_escortAI(creature) {}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
Player* player = GetPlayerForEscort();
if (!player)
@@ -502,12 +508,12 @@ public:
}
}
- void Reset()
+ void Reset() OVERRIDE
{
me->RestoreFaction();
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
if (Player* player = GetPlayerForEscort())
{
@@ -519,7 +525,7 @@ public:
}
};
- bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_EFTW_H || quest->GetQuestId() == QUEST_EFTW_A)
{
@@ -529,7 +535,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_isla_starmaneAI(creature);
}
@@ -548,7 +554,7 @@ class go_skull_pile : public GameObjectScript
public:
go_skull_pile() : GameObjectScript("go_skull_pile") { }
- bool OnGossipSelect(Player* player, GameObject* go, uint32 sender, uint32 action)
+ bool OnGossipSelect(Player* player, GameObject* go, uint32 sender, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (sender)
@@ -558,7 +564,7 @@ public:
return true;
}
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
if ((player->GetQuestStatus(11885) == QUEST_STATUS_INCOMPLETE) || player->GetQuestRewardStatus(11885))
{
@@ -596,7 +602,7 @@ public:
## npc_slim
######*/
-enum eSlim
+enum Slim
{
FACTION_CONSORTIUM = 933
};
@@ -606,7 +612,7 @@ class npc_slim : public CreatureScript
public:
npc_slim() : CreatureScript("npc_slim") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_TRADE)
@@ -615,9 +621,9 @@ public:
return true;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isVendor() && player->GetReputationRank(FACTION_CONSORTIUM) >= REP_FRIENDLY)
+ if (creature->IsVendor() && player->GetReputationRank(FACTION_CONSORTIUM) >= REP_FRIENDLY)
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
player->SEND_GOSSIP_MENU(9896, creature->GetGUID());
@@ -633,7 +639,7 @@ public:
####npc_akuno
#####*/
-enum eAkuno
+enum Akuno
{
QUEST_ESCAPING_THE_TOMB = 10887,
NPC_CABAL_SKRIMISHER = 21661
@@ -644,7 +650,7 @@ class npc_akuno : public CreatureScript
public:
npc_akuno() : CreatureScript("npc_akuno") { }
- bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_ESCAPING_THE_TOMB)
{
@@ -659,7 +665,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_akunoAI(creature);
}
@@ -668,7 +674,7 @@ public:
{
npc_akunoAI(Creature* creature) : npc_escortAI(creature) {}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
Player* player = GetPlayerForEscort();
if (!player)
@@ -687,7 +693,7 @@ public:
}
}
- void JustSummoned(Creature* summon)
+ void JustSummoned(Creature* summon) OVERRIDE
{
summon->AI()->AttackStart(me);
}
@@ -696,10 +702,10 @@ public:
void AddSC_terokkar_forest()
{
- new mob_unkor_the_ruthless();
- new mob_infested_root_walker();
- new mob_rotting_forest_rager();
- new mob_netherweb_victim();
+ new npc_unkor_the_ruthless();
+ new npc_infested_root_walker();
+ new npc_rotting_forest_rager();
+ new npc_netherweb_victim();
new npc_floon();
new npc_isla_starmane();
new go_skull_pile();
diff --git a/src/server/scripts/Outland/zone_zangarmarsh.cpp b/src/server/scripts/Outland/zone_zangarmarsh.cpp
index b4899189af5..be938582d9c 100644
--- a/src/server/scripts/Outland/zone_zangarmarsh.cpp
+++ b/src/server/scripts/Outland/zone_zangarmarsh.cpp
@@ -69,7 +69,7 @@ class npcs_ashyen_and_keleth : public CreatureScript
public:
npcs_ashyen_and_keleth() : CreatureScript("npcs_ashyen_and_keleth") { }
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
if (player->GetReputationRank(942) > REP_NEUTRAL)
{
@@ -84,7 +84,7 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF+1)
@@ -161,7 +161,7 @@ public:
#define GOSSIP_COOSH "You owe Sim'salabim money. Hand them over or die!"
-enum eCooshhooosh
+enum Cooshhooosh
{
SPELL_LIGHTNING_BOLT = 9532,
QUEST_CRACK_SKULLS = 10009,
@@ -183,23 +183,23 @@ public:
uint32 m_uiNormFaction;
uint32 LightningBolt_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
LightningBolt_Timer = 2000;
if (me->getFaction() != m_uiNormFaction)
me->setFaction(m_uiNormFaction);
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
if (LightningBolt_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_LIGHTNING_BOLT);
+ DoCastVictim(SPELL_LIGHTNING_BOLT);
LightningBolt_Timer = 5000;
} else LightningBolt_Timer -= diff;
@@ -207,12 +207,12 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new npc_cooshcooshAI (creature);
+ return new npc_cooshcooshAI(creature);
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
if (player->GetQuestStatus(QUEST_CRACK_SKULLS) == QUEST_STATUS_INCOMPLETE)
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_COOSH, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
@@ -221,7 +221,7 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF)
@@ -247,7 +247,7 @@ class npc_elder_kuruti : public CreatureScript
public:
npc_elder_kuruti() : CreatureScript("npc_elder_kuruti") { }
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
if (player->GetQuestStatus(9803) == QUEST_STATUS_INCOMPLETE)
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_KUR1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
@@ -257,7 +257,7 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -300,9 +300,9 @@ class npc_mortog_steamhead : public CreatureScript
public:
npc_mortog_steamhead() : CreatureScript("npc_mortog_steamhead") { }
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isVendor() && player->GetReputationRank(942) == REP_EXALTED)
+ if (creature->IsVendor() && player->GetReputationRank(942) == REP_EXALTED)
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
@@ -310,7 +310,7 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_TRADE)
@@ -323,7 +323,7 @@ public:
## npc_kayra_longmane
######*/
-enum eKayra
+enum Kayra
{
SAY_START = 0,
SAY_AMBUSH1 = 1,
@@ -344,9 +344,9 @@ public:
{
npc_kayra_longmaneAI(Creature* creature) : npc_escortAI(creature) {}
- void Reset() { }
+ void Reset() OVERRIDE {}
- void WaypointReached(uint32 waypointId)
+ void WaypointReached(uint32 waypointId) OVERRIDE
{
Player* player = GetPlayerForEscort();
if (!player)
@@ -379,7 +379,7 @@ public:
}
};
- bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_ESCAPE_FROM)
{
@@ -391,7 +391,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_kayra_longmaneAI(creature);
}
@@ -404,7 +404,7 @@ public:
#define GOSSIP_TIMOTHY_DANIELS_ITEM1 "Specialist, eh? Just what kind of specialist are you, anyway?"
#define GOSSIP_TEXT_BROWSE_POISONS "Let me browse your reagents and poison supplies."
-enum eTimothy
+enum Timothy
{
GOSSIP_TEXTID_TIMOTHY_DANIELS1 = 9239
};
@@ -414,12 +414,12 @@ class npc_timothy_daniels : public CreatureScript
public:
npc_timothy_daniels() : CreatureScript("npc_timothy_daniels") { }
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
- if (creature->isVendor())
+ if (creature->IsVendor())
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_POISONS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_TIMOTHY_DANIELS_ITEM1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
@@ -427,7 +427,7 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
diff --git a/src/server/scripts/Spells/spell_dk.cpp b/src/server/scripts/Spells/spell_dk.cpp
index ea8fb5795bd..e1305d71b73 100644
--- a/src/server/scripts/Spells/spell_dk.cpp
+++ b/src/server/scripts/Spells/spell_dk.cpp
@@ -32,28 +32,35 @@ enum DeathKnightSpells
SPELL_DK_BLACK_ICE_R1 = 49140,
SPELL_DK_BLOOD_BOIL_TRIGGERED = 65658,
SPELL_DK_BLOOD_GORGED_HEAL = 50454,
+ SPELL_DK_BLOOD_PRESENCE = 48266,
SPELL_DK_CORPSE_EXPLOSION_TRIGGERED = 43999,
SPELL_DK_CORPSE_EXPLOSION_VISUAL = 51270,
SPELL_DK_DEATH_COIL_DAMAGE = 47632,
SPELL_DK_DEATH_COIL_HEAL = 47633,
SPELL_DK_DEATH_STRIKE_HEAL = 45470,
+ SPELL_DK_FROST_PRESENCE = 48263,
+ SPELL_DK_FROST_PRESENCE_TRIGGERED = 61261,
SPELL_DK_GHOUL_EXPLODE = 47496,
SPELL_DK_GLYPH_OF_ICEBOUND_FORTITUDE = 58625,
- SPELL_DK_RUNIC_POWER_ENERGIZE = 49088,
- SPELL_DK_SCOURGE_STRIKE_TRIGGERED = 70890,
- SPELL_DK_WILL_OF_THE_NECROPOLIS_TALENT_R1 = 49189,
- SPELL_DK_WILL_OF_THE_NECROPOLIS_AURA_R1 = 52284,
- SPELL_DK_BLOOD_PRESENCE = 48266,
+ SPELL_DK_IMPROVED_BLOOD_PRESENCE_R1 = 50365,
+ SPELL_DK_IMPROVED_FROST_PRESENCE_R1 = 50384,
+ SPELL_DK_IMPROVED_UNHOLY_PRESENCE_R1 = 50391,
SPELL_DK_IMPROVED_BLOOD_PRESENCE_TRIGGERED = 63611,
- SPELL_DK_UNHOLY_PRESENCE = 48265,
SPELL_DK_IMPROVED_UNHOLY_PRESENCE_TRIGGERED = 63622,
SPELL_DK_ITEM_SIGIL_VENGEFUL_HEART = 64962,
SPELL_DK_ITEM_T8_MELEE_4P_BONUS = 64736,
+ SPELL_DK_RUNIC_POWER_ENERGIZE = 49088,
+ SPELL_DK_SCENT_OF_BLOOD = 50422,
+ SPELL_DK_SCOURGE_STRIKE_TRIGGERED = 70890,
+ SPELL_DK_UNHOLY_PRESENCE = 48265,
+ SPELL_DK_UNHOLY_PRESENCE_TRIGGERED = 49772,
+ SPELL_DK_WILL_OF_THE_NECROPOLIS_TALENT_R1 = 49189,
+ SPELL_DK_WILL_OF_THE_NECROPOLIS_AURA_R1 = 52284
};
enum DeathKnightSpellIcons
{
- DK_ICON_ID_IMPROVED_DEATH_STRIKE = 2751,
+ DK_ICON_ID_IMPROVED_DEATH_STRIKE = 2751
};
// 50462 - Anti-Magic Shell (on raid member)
@@ -68,7 +75,7 @@ class spell_dk_anti_magic_shell_raid : public SpellScriptLoader
uint32 absorbPct;
- bool Load()
+ bool Load() OVERRIDE
{
absorbPct = GetSpellInfo()->Effects[EFFECT_0].CalcValue(GetCaster());
return true;
@@ -85,14 +92,14 @@ class spell_dk_anti_magic_shell_raid : public SpellScriptLoader
absorbAmount = CalculatePct(dmgInfo.GetDamage(), absorbPct);
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_dk_anti_magic_shell_raid_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_SCHOOL_ABSORB);
OnEffectAbsorb += AuraEffectAbsorbFn(spell_dk_anti_magic_shell_raid_AuraScript::Absorb, EFFECT_0);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_dk_anti_magic_shell_raid_AuraScript();
}
@@ -109,14 +116,14 @@ class spell_dk_anti_magic_shell_self : public SpellScriptLoader
PrepareAuraScript(spell_dk_anti_magic_shell_self_AuraScript);
uint32 absorbPct, hpPct;
- bool Load()
+ bool Load() OVERRIDE
{
absorbPct = GetSpellInfo()->Effects[EFFECT_0].CalcValue(GetCaster());
hpPct = GetSpellInfo()->Effects[EFFECT_1].CalcValue(GetCaster());
return true;
}
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_DK_RUNIC_POWER_ENERGIZE))
return false;
@@ -142,7 +149,7 @@ class spell_dk_anti_magic_shell_self : public SpellScriptLoader
target->CastCustomSpell(target, SPELL_DK_RUNIC_POWER_ENERGIZE, &bp, NULL, NULL, true, NULL, aurEff);
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_dk_anti_magic_shell_self_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_SCHOOL_ABSORB);
OnEffectAbsorb += AuraEffectAbsorbFn(spell_dk_anti_magic_shell_self_AuraScript::Absorb, EFFECT_0);
@@ -150,7 +157,7 @@ class spell_dk_anti_magic_shell_self : public SpellScriptLoader
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_dk_anti_magic_shell_self_AuraScript();
}
@@ -168,13 +175,13 @@ class spell_dk_anti_magic_zone : public SpellScriptLoader
uint32 absorbPct;
- bool Load()
+ bool Load() OVERRIDE
{
absorbPct = GetSpellInfo()->Effects[EFFECT_0].CalcValue(GetCaster());
return true;
}
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_DK_ANTI_MAGIC_SHELL_TALENT))
return false;
@@ -194,14 +201,14 @@ class spell_dk_anti_magic_zone : public SpellScriptLoader
absorbAmount = CalculatePct(dmgInfo.GetDamage(), absorbPct);
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_dk_anti_magic_zone_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_SCHOOL_ABSORB);
OnEffectAbsorb += AuraEffectAbsorbFn(spell_dk_anti_magic_zone_AuraScript::Absorb, EFFECT_0);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_dk_anti_magic_zone_AuraScript();
}
@@ -217,14 +224,14 @@ class spell_dk_blood_boil : public SpellScriptLoader
{
PrepareSpellScript(spell_dk_blood_boil_SpellScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_DK_BLOOD_BOIL_TRIGGERED))
return false;
return true;
}
- bool Load()
+ bool Load() OVERRIDE
{
_executed = false;
return GetCaster()->GetTypeId() == TYPEID_PLAYER && GetCaster()->getClass() == CLASS_DEATH_KNIGHT;
@@ -239,7 +246,7 @@ class spell_dk_blood_boil : public SpellScriptLoader
GetCaster()->CastSpell(GetCaster(), SPELL_DK_BLOOD_BOIL_TRIGGERED, true);
}
- void Register()
+ void Register() OVERRIDE
{
AfterHit += SpellHitFn(spell_dk_blood_boil_SpellScript::HandleAfterHit);
}
@@ -247,7 +254,7 @@ class spell_dk_blood_boil : public SpellScriptLoader
bool _executed;
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_dk_blood_boil_SpellScript();
}
@@ -263,14 +270,14 @@ class spell_dk_blood_gorged : public SpellScriptLoader
{
PrepareAuraScript(spell_dk_blood_gorged_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_DK_BLOOD_GORGED_HEAL))
return false;
return true;
}
- bool Load()
+ bool Load() OVERRIDE
{
_procTarget = NULL;
return true;
@@ -289,7 +296,7 @@ class spell_dk_blood_gorged : public SpellScriptLoader
GetTarget()->CastCustomSpell(SPELL_DK_BLOOD_GORGED_HEAL, SPELLVALUE_BASE_POINT0, bp, _procTarget, true, NULL, aurEff);
}
- void Register()
+ void Register() OVERRIDE
{
DoCheckProc += AuraCheckProcFn(spell_dk_blood_gorged_AuraScript::CheckProc);
OnEffectProc += AuraEffectProcFn(spell_dk_blood_gorged_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
@@ -299,7 +306,7 @@ class spell_dk_blood_gorged : public SpellScriptLoader
Unit* _procTarget;
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_dk_blood_gorged_AuraScript();
}
@@ -315,7 +322,7 @@ class spell_dk_corpse_explosion : public SpellScriptLoader
{
PrepareSpellScript(spell_dk_corpse_explosion_SpellScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_DK_CORPSE_EXPLOSION_TRIGGERED) || !sSpellMgr->GetSpellInfo(SPELL_DK_GHOUL_EXPLODE))
return false;
@@ -329,7 +336,7 @@ class spell_dk_corpse_explosion : public SpellScriptLoader
if (Unit* unitTarget = GetHitUnit())
{
int32 bp = 0;
- if (unitTarget->isAlive()) // Living ghoul as a target
+ if (unitTarget->IsAlive()) // Living ghoul as a target
{
bp = int32(unitTarget->CountPctFromMaxHealth(25));
unitTarget->CastCustomSpell(unitTarget, SPELL_DK_GHOUL_EXPLODE, &bp, NULL, NULL, false);
@@ -346,13 +353,13 @@ class spell_dk_corpse_explosion : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_dk_corpse_explosion_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_dk_corpse_explosion_SpellScript();
}
@@ -368,7 +375,7 @@ class spell_dk_death_coil : public SpellScriptLoader
{
PrepareSpellScript(spell_dk_death_coil_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_DK_DEATH_COIL_DAMAGE) || !sSpellMgr->GetSpellInfo(SPELL_DK_DEATH_COIL_HEAL))
return false;
@@ -412,14 +419,14 @@ class spell_dk_death_coil : public SpellScriptLoader
return SPELL_CAST_OK;
}
- void Register()
+ void Register() OVERRIDE
{
OnCheckCast += SpellCheckCastFn(spell_dk_death_coil_SpellScript::CheckCast);
OnEffectHitTarget += SpellEffectFn(spell_dk_death_coil_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_dk_death_coil_SpellScript();
}
@@ -453,14 +460,14 @@ class spell_dk_death_gate : public SpellScriptLoader
target->CastSpell(target, GetEffectValue(), false);
}
- void Register()
+ void Register() OVERRIDE
{
OnCheckCast += SpellCheckCastFn(spell_dk_death_gate_SpellScript::CheckClass);
OnEffectHitTarget += SpellEffectFn(spell_dk_death_gate_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_dk_death_gate_SpellScript();
}
@@ -487,14 +494,14 @@ class spell_dk_death_grip : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_dk_death_grip_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_dk_death_grip_SpellScript();
}
@@ -516,7 +523,7 @@ class spell_dk_death_pact : public SpellScriptLoader
if (Player* player = GetCaster()->ToPlayer())
for (Unit::ControlList::const_iterator itr = player->m_Controlled.begin(); itr != player->m_Controlled.end(); ++itr)
if (Creature* undeadPet = (*itr)->ToCreature())
- if (undeadPet->isAlive() &&
+ if (undeadPet->IsAlive() &&
undeadPet->GetOwnerGUID() == player->GetGUID() &&
undeadPet->GetCreatureType() == CREATURE_TYPE_UNDEAD &&
undeadPet->IsWithinDist(player, 100.0f, false))
@@ -543,14 +550,14 @@ class spell_dk_death_pact : public SpellScriptLoader
targetList.push_back(target);
}
- void Register()
+ void Register() OVERRIDE
{
OnCheckCast += SpellCheckCastFn(spell_dk_death_pact_SpellScript::CheckCast);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_dk_death_pact_SpellScript::FilterTargets, EFFECT_1, TARGET_UNIT_DEST_AREA_ALLY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_dk_death_pact_SpellScript();
}
@@ -566,7 +573,7 @@ class spell_dk_death_strike : public SpellScriptLoader
{
PrepareSpellScript(spell_dk_death_strike_SpellScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_DK_DEATH_STRIKE_HEAL))
return false;
@@ -587,14 +594,14 @@ class spell_dk_death_strike : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_dk_death_strike_SpellScript::HandleDummy, EFFECT_2, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_dk_death_strike_SpellScript();
}
@@ -610,7 +617,7 @@ class spell_dk_ghoul_explode : public SpellScriptLoader
{
PrepareSpellScript(spell_dk_ghoul_explode_SpellScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_DK_CORPSE_EXPLOSION_TRIGGERED))
return false;
@@ -626,13 +633,13 @@ class spell_dk_ghoul_explode : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_dk_ghoul_explode_SpellScript::Suicide, EFFECT_1, SPELL_EFFECT_SCHOOL_DAMAGE);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_dk_ghoul_explode_SpellScript();
}
@@ -648,7 +655,7 @@ class spell_dk_icebound_fortitude : public SpellScriptLoader
{
PrepareAuraScript(spell_dk_icebound_fortitude_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
Unit* caster = GetCaster();
return caster && caster->GetTypeId() == TYPEID_PLAYER;
@@ -675,19 +682,19 @@ class spell_dk_icebound_fortitude : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_dk_icebound_fortitude_AuraScript::CalculateAmount, EFFECT_2, SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_dk_icebound_fortitude_AuraScript();
}
};
-// 50365, 50371 - Improved Blood Presence
+// -50365 - Improved Blood Presence
class spell_dk_improved_blood_presence : public SpellScriptLoader
{
public:
@@ -697,9 +704,12 @@ class spell_dk_improved_blood_presence : public SpellScriptLoader
{
PrepareAuraScript(spell_dk_improved_blood_presence_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
- if (!sSpellMgr->GetSpellInfo(SPELL_DK_BLOOD_PRESENCE) || !sSpellMgr->GetSpellInfo(SPELL_DK_IMPROVED_BLOOD_PRESENCE_TRIGGERED))
+ if (!sSpellMgr->GetSpellInfo(SPELL_DK_BLOOD_PRESENCE)
+ || !sSpellMgr->GetSpellInfo(SPELL_DK_FROST_PRESENCE)
+ || !sSpellMgr->GetSpellInfo(SPELL_DK_UNHOLY_PRESENCE)
+ || !sSpellMgr->GetSpellInfo(SPELL_DK_IMPROVED_BLOOD_PRESENCE_TRIGGERED))
return false;
return true;
}
@@ -707,11 +717,8 @@ class spell_dk_improved_blood_presence : public SpellScriptLoader
void HandleEffectApply(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/)
{
Unit* target = GetTarget();
- if (!target->HasAura(SPELL_DK_BLOOD_PRESENCE) && !target->HasAura(SPELL_DK_IMPROVED_BLOOD_PRESENCE_TRIGGERED))
- {
- int32 basePoints1 = aurEff->GetAmount();
- target->CastCustomSpell(target, SPELL_DK_IMPROVED_BLOOD_PRESENCE_TRIGGERED, NULL, &basePoints1, NULL, true, 0, aurEff);
- }
+ if ((target->HasAura(SPELL_DK_FROST_PRESENCE) || target->HasAura(SPELL_DK_UNHOLY_PRESENCE)) && !target->HasAura(SPELL_DK_IMPROVED_BLOOD_PRESENCE_TRIGGERED))
+ target->CastCustomSpell(SPELL_DK_IMPROVED_BLOOD_PRESENCE_TRIGGERED, SPELLVALUE_BASE_POINT1, aurEff->GetAmount(), target, true, NULL, aurEff);
}
void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
@@ -721,20 +728,67 @@ class spell_dk_improved_blood_presence : public SpellScriptLoader
target->RemoveAura(SPELL_DK_IMPROVED_BLOOD_PRESENCE_TRIGGERED);
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectApply += AuraEffectApplyFn(spell_dk_improved_blood_presence_AuraScript::HandleEffectApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_dk_improved_blood_presence_AuraScript::HandleEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_dk_improved_blood_presence_AuraScript();
}
};
-// 50391, 50392 - Improved Unholy Presence
+// -50384 - Improved Frost Presence
+class spell_dk_improved_frost_presence : public SpellScriptLoader
+{
+ public:
+ spell_dk_improved_frost_presence() : SpellScriptLoader("spell_dk_improved_frost_presence") { }
+
+ class spell_dk_improved_frost_presence_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_dk_improved_frost_presence_AuraScript);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_DK_BLOOD_PRESENCE)
+ || !sSpellMgr->GetSpellInfo(SPELL_DK_FROST_PRESENCE)
+ || !sSpellMgr->GetSpellInfo(SPELL_DK_UNHOLY_PRESENCE)
+ || !sSpellMgr->GetSpellInfo(SPELL_DK_FROST_PRESENCE_TRIGGERED))
+ return false;
+ return true;
+ }
+
+ void HandleEffectApply(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/)
+ {
+ Unit* target = GetTarget();
+ if ((target->HasAura(SPELL_DK_BLOOD_PRESENCE) || target->HasAura(SPELL_DK_UNHOLY_PRESENCE)) && !target->HasAura(SPELL_DK_FROST_PRESENCE_TRIGGERED))
+ target->CastCustomSpell(SPELL_DK_FROST_PRESENCE_TRIGGERED, SPELLVALUE_BASE_POINT0, aurEff->GetAmount(), target, true, NULL, aurEff);
+ }
+
+ void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ Unit* target = GetTarget();
+ if (!target->HasAura(SPELL_DK_FROST_PRESENCE))
+ target->RemoveAura(SPELL_DK_FROST_PRESENCE_TRIGGERED);
+ }
+
+ void Register() OVERRIDE
+ {
+ AfterEffectApply += AuraEffectApplyFn(spell_dk_improved_frost_presence_AuraScript::HandleEffectApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
+ AfterEffectRemove += AuraEffectRemoveFn(spell_dk_improved_frost_presence_AuraScript::HandleEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
+ }
+ };
+
+ AuraScript* GetAuraScript() const OVERRIDE
+ {
+ return new spell_dk_improved_frost_presence_AuraScript();
+ }
+};
+
+// -50391 - Improved Unholy Presence
class spell_dk_improved_unholy_presence : public SpellScriptLoader
{
public:
@@ -744,9 +798,13 @@ class spell_dk_improved_unholy_presence : public SpellScriptLoader
{
PrepareAuraScript(spell_dk_improved_unholy_presence_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
- if (!sSpellMgr->GetSpellInfo(SPELL_DK_UNHOLY_PRESENCE) || !sSpellMgr->GetSpellInfo(SPELL_DK_IMPROVED_UNHOLY_PRESENCE_TRIGGERED))
+ if (!sSpellMgr->GetSpellInfo(SPELL_DK_BLOOD_PRESENCE)
+ || !sSpellMgr->GetSpellInfo(SPELL_DK_FROST_PRESENCE)
+ || !sSpellMgr->GetSpellInfo(SPELL_DK_UNHOLY_PRESENCE)
+ || !sSpellMgr->GetSpellInfo(SPELL_DK_IMPROVED_UNHOLY_PRESENCE_TRIGGERED)
+ || !sSpellMgr->GetSpellInfo(SPELL_DK_UNHOLY_PRESENCE_TRIGGERED))
return false;
return true;
}
@@ -757,29 +815,132 @@ class spell_dk_improved_unholy_presence : public SpellScriptLoader
if (target->HasAura(SPELL_DK_UNHOLY_PRESENCE) && !target->HasAura(SPELL_DK_IMPROVED_UNHOLY_PRESENCE_TRIGGERED))
{
// Not listed as any effect, only base points set in dbc
- int32 basePoints0 = aurEff->GetSpellInfo()->Effects[EFFECT_1].CalcValue();
- target->CastCustomSpell(target, SPELL_DK_IMPROVED_UNHOLY_PRESENCE_TRIGGERED, &basePoints0, &basePoints0, &basePoints0, true, 0, aurEff);
+ int32 basePoints = GetSpellInfo()->Effects[EFFECT_1].CalcValue();
+ target->CastCustomSpell(target, SPELL_DK_IMPROVED_UNHOLY_PRESENCE_TRIGGERED, &basePoints, &basePoints, &basePoints, true, NULL, aurEff);
}
+
+ if ((target->HasAura(SPELL_DK_BLOOD_PRESENCE) || target->HasAura(SPELL_DK_FROST_PRESENCE)) && !target->HasAura(SPELL_DK_UNHOLY_PRESENCE_TRIGGERED))
+ target->CastCustomSpell(SPELL_DK_UNHOLY_PRESENCE_TRIGGERED, SPELLVALUE_BASE_POINT0, aurEff->GetAmount(), target, true, NULL, aurEff);
}
void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
- GetTarget()->RemoveAura(SPELL_DK_IMPROVED_UNHOLY_PRESENCE_TRIGGERED);
+ Unit* target = GetTarget();
+
+ target->RemoveAura(SPELL_DK_IMPROVED_UNHOLY_PRESENCE_TRIGGERED);
+
+ if (!target->HasAura(SPELL_DK_UNHOLY_PRESENCE))
+ target->RemoveAura(SPELL_DK_UNHOLY_PRESENCE_TRIGGERED);
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectApply += AuraEffectApplyFn(spell_dk_improved_unholy_presence_AuraScript::HandleEffectApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_dk_improved_unholy_presence_AuraScript::HandleEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_dk_improved_unholy_presence_AuraScript();
}
};
+// 48266 - Blood Presence
+// 48263 - Frost Presence
+// 48265 - Unholy Presence
+class spell_dk_presence : public SpellScriptLoader
+{
+ public:
+ spell_dk_presence() : SpellScriptLoader("spell_dk_presence") { }
+
+ class spell_dk_presence_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_dk_presence_AuraScript);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_DK_BLOOD_PRESENCE)
+ || !sSpellMgr->GetSpellInfo(SPELL_DK_FROST_PRESENCE)
+ || !sSpellMgr->GetSpellInfo(SPELL_DK_UNHOLY_PRESENCE)
+ || !sSpellMgr->GetSpellInfo(SPELL_DK_IMPROVED_BLOOD_PRESENCE_R1)
+ || !sSpellMgr->GetSpellInfo(SPELL_DK_IMPROVED_FROST_PRESENCE_R1)
+ || !sSpellMgr->GetSpellInfo(SPELL_DK_IMPROVED_UNHOLY_PRESENCE_R1)
+ || !sSpellMgr->GetSpellInfo(SPELL_DK_IMPROVED_BLOOD_PRESENCE_TRIGGERED)
+ || !sSpellMgr->GetSpellInfo(SPELL_DK_IMPROVED_UNHOLY_PRESENCE_TRIGGERED)
+ || !sSpellMgr->GetSpellInfo(SPELL_DK_FROST_PRESENCE_TRIGGERED)
+ || !sSpellMgr->GetSpellInfo(SPELL_DK_UNHOLY_PRESENCE_TRIGGERED))
+ return false;
+
+ return true;
+ }
+
+ void HandleImprovedBloodPresence(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/)
+ {
+ Unit* target = GetTarget();
+
+ if (GetSpellInfo()->Id == SPELL_DK_BLOOD_PRESENCE)
+ target->CastSpell(target, SPELL_DK_IMPROVED_BLOOD_PRESENCE_TRIGGERED, true);
+ else if (AuraEffect const* impAurEff = target->GetAuraEffectOfRankedSpell(SPELL_DK_IMPROVED_BLOOD_PRESENCE_R1, EFFECT_0))
+ if (!target->HasAura(SPELL_DK_IMPROVED_BLOOD_PRESENCE_TRIGGERED))
+ target->CastCustomSpell(SPELL_DK_IMPROVED_BLOOD_PRESENCE_TRIGGERED, SPELLVALUE_BASE_POINT1, impAurEff->GetAmount(), target, true, NULL, aurEff);
+ }
+
+ void HandleImprovedFrostPresence(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/)
+ {
+ Unit* target = GetTarget();
+
+ if (GetSpellInfo()->Id == SPELL_DK_FROST_PRESENCE)
+ target->CastSpell(target, SPELL_DK_FROST_PRESENCE_TRIGGERED, true);
+ else if (AuraEffect const* impAurEff = target->GetAuraEffectOfRankedSpell(SPELL_DK_IMPROVED_FROST_PRESENCE_R1, EFFECT_0))
+ if (!target->HasAura(SPELL_DK_FROST_PRESENCE_TRIGGERED))
+ target->CastCustomSpell(SPELL_DK_FROST_PRESENCE_TRIGGERED, SPELLVALUE_BASE_POINT0, impAurEff->GetAmount(), target, true, NULL, aurEff);
+ }
+
+ void HandleImprovedUnholyPresence(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/)
+ {
+ Unit* target = GetTarget();
+
+ if (GetSpellInfo()->Id == SPELL_DK_UNHOLY_PRESENCE)
+ target->CastSpell(target, SPELL_DK_UNHOLY_PRESENCE_TRIGGERED, true);
+
+ if (AuraEffect const* impAurEff = target->GetAuraEffectOfRankedSpell(SPELL_DK_IMPROVED_UNHOLY_PRESENCE_R1, EFFECT_0))
+ {
+ if (GetSpellInfo()->Id == SPELL_DK_UNHOLY_PRESENCE)
+ {
+ // Not listed as any effect, only base points set
+ int32 bp = impAurEff->GetSpellInfo()->Effects[EFFECT_1].CalcValue();
+ target->CastCustomSpell(target, SPELL_DK_IMPROVED_UNHOLY_PRESENCE_TRIGGERED, &bp, &bp, &bp, true, NULL, aurEff);
+ }
+ else if (!target->HasAura(SPELL_DK_UNHOLY_PRESENCE_TRIGGERED))
+ target->CastCustomSpell(SPELL_DK_UNHOLY_PRESENCE_TRIGGERED, SPELLVALUE_BASE_POINT0, impAurEff->GetAmount(), target, true, NULL, aurEff);
+ }
+ }
+
+ void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ Unit* target = GetTarget();
+ target->RemoveAura(SPELL_DK_IMPROVED_BLOOD_PRESENCE_TRIGGERED);
+ target->RemoveAura(SPELL_DK_IMPROVED_UNHOLY_PRESENCE_TRIGGERED);
+ target->RemoveAura(SPELL_DK_FROST_PRESENCE_TRIGGERED);
+ target->RemoveAura(SPELL_DK_UNHOLY_PRESENCE_TRIGGERED);
+ }
+
+ void Register() OVERRIDE
+ {
+ AfterEffectApply += AuraEffectApplyFn(spell_dk_presence_AuraScript::HandleImprovedBloodPresence, EFFECT_0, SPELL_AURA_ANY, AURA_EFFECT_HANDLE_REAL);
+ AfterEffectApply += AuraEffectApplyFn(spell_dk_presence_AuraScript::HandleImprovedFrostPresence, EFFECT_0, SPELL_AURA_ANY, AURA_EFFECT_HANDLE_REAL);
+ AfterEffectApply += AuraEffectApplyFn(spell_dk_presence_AuraScript::HandleImprovedUnholyPresence, EFFECT_0, SPELL_AURA_ANY, AURA_EFFECT_HANDLE_REAL);
+ AfterEffectRemove += AuraEffectRemoveFn(spell_dk_presence_AuraScript::HandleEffectRemove, EFFECT_0, SPELL_AURA_ANY, AURA_EFFECT_HANDLE_REAL);
+ }
+ };
+
+ AuraScript* GetAuraScript() const OVERRIDE
+ {
+ return new spell_dk_presence_AuraScript();
+ }
+};
+
// 59754 Rune Tap - Party
class spell_dk_rune_tap_party : public SpellScriptLoader
{
@@ -795,18 +956,54 @@ class spell_dk_rune_tap_party : public SpellScriptLoader
targets.remove(GetCaster());
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_dk_rune_tap_party_SpellScript::CheckTargets, EFFECT_0, TARGET_UNIT_CASTER_AREA_PARTY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_dk_rune_tap_party_SpellScript();
}
};
+// 50421 - Scent of Blood
+class spell_dk_scent_of_blood : public SpellScriptLoader
+{
+ public:
+ spell_dk_scent_of_blood() : SpellScriptLoader("spell_dk_scent_of_blood") { }
+
+ class spell_dk_scent_of_blood_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_dk_scent_of_blood_AuraScript);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_DK_SCENT_OF_BLOOD))
+ return false;
+ return true;
+ }
+
+ void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/)
+ {
+ PreventDefaultAction();
+ GetTarget()->CastSpell(GetTarget(), SPELL_DK_SCENT_OF_BLOOD, true, NULL, aurEff);
+ GetTarget()->RemoveAuraFromStack(GetSpellInfo()->Id);
+ }
+
+ void Register() OVERRIDE
+ {
+ OnEffectProc += AuraEffectProcFn(spell_dk_scent_of_blood_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL);
+ }
+ };
+
+ AuraScript* GetAuraScript() const OVERRIDE
+ {
+ return new spell_dk_scent_of_blood_AuraScript();
+ }
+};
+
// 55090 - Scourge Strike (55265, 55270, 55271)
class spell_dk_scourge_strike : public SpellScriptLoader
{
@@ -818,13 +1015,13 @@ class spell_dk_scourge_strike : public SpellScriptLoader
PrepareSpellScript(spell_dk_scourge_strike_SpellScript);
float multiplier;
- bool Load()
+ bool Load() OVERRIDE
{
multiplier = 1.0f;
return true;
}
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_DK_SCOURGE_STRIKE_TRIGGERED))
return false;
@@ -857,14 +1054,14 @@ class spell_dk_scourge_strike : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_dk_scourge_strike_SpellScript::HandleDummy, EFFECT_2, SPELL_EFFECT_DUMMY);
AfterHit += SpellHitFn(spell_dk_scourge_strike_SpellScript::HandleAfterHit);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_dk_scourge_strike_SpellScript();
}
@@ -882,7 +1079,7 @@ class spell_dk_spell_deflection : public SpellScriptLoader
uint32 absorbPct;
- bool Load()
+ bool Load() OVERRIDE
{
absorbPct = GetSpellInfo()->Effects[EFFECT_0].CalcValue(GetCaster());
return true;
@@ -901,14 +1098,14 @@ class spell_dk_spell_deflection : public SpellScriptLoader
absorbAmount = CalculatePct(dmgInfo.GetDamage(), absorbPct);
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_dk_spell_deflection_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_SCHOOL_ABSORB);
OnEffectAbsorb += AuraEffectAbsorbFn(spell_dk_spell_deflection_AuraScript::Absorb, EFFECT_0);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_dk_spell_deflection_AuraScript();
}
@@ -929,13 +1126,13 @@ class spell_dk_vampiric_blood : public SpellScriptLoader
amount = GetUnitOwner()->CountPctFromMaxHealth(amount);
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_dk_vampiric_blood_AuraScript::CalculateAmount, EFFECT_1, SPELL_AURA_MOD_INCREASE_HEALTH);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_dk_vampiric_blood_AuraScript();
}
@@ -951,13 +1148,17 @@ class spell_dk_will_of_the_necropolis : public SpellScriptLoader
{
PrepareAuraScript(spell_dk_will_of_the_necropolis_AuraScript);
- bool Validate(SpellInfo const* spellInfo)
+ bool Validate(SpellInfo const* spellInfo) OVERRIDE
{
+ SpellInfo const* firstRankSpellInfo = sSpellMgr->GetSpellInfo(SPELL_DK_WILL_OF_THE_NECROPOLIS_AURA_R1);
+ if (!firstRankSpellInfo)
+ return false;
+
// can't use other spell than will of the necropolis due to spell_ranks dependency
- if (sSpellMgr->GetFirstSpellInChain(SPELL_DK_WILL_OF_THE_NECROPOLIS_AURA_R1) != sSpellMgr->GetFirstSpellInChain(spellInfo->Id))
+ if (!spellInfo->IsRankOf(firstRankSpellInfo))
return false;
- uint8 rank = sSpellMgr->GetSpellRank(spellInfo->Id);
+ uint8 rank = spellInfo->GetRank();
if (!sSpellMgr->GetSpellWithRank(SPELL_DK_WILL_OF_THE_NECROPOLIS_TALENT_R1, rank, true))
return false;
@@ -966,7 +1167,7 @@ class spell_dk_will_of_the_necropolis : public SpellScriptLoader
uint32 absorbPct;
- bool Load()
+ bool Load() OVERRIDE
{
absorbPct = GetSpellInfo()->Effects[EFFECT_0].CalcValue(GetCaster());
return true;
@@ -981,7 +1182,7 @@ class spell_dk_will_of_the_necropolis : public SpellScriptLoader
void Absorb(AuraEffect* /*aurEff*/, DamageInfo & dmgInfo, uint32 & absorbAmount)
{
// min pct of hp is stored in effect 0 of talent spell
- uint32 rank = sSpellMgr->GetSpellRank(GetSpellInfo()->Id);
+ uint8 rank = GetSpellInfo()->GetRank();
SpellInfo const* talentProto = sSpellMgr->GetSpellInfo(sSpellMgr->GetSpellWithRank(SPELL_DK_WILL_OF_THE_NECROPOLIS_TALENT_R1, rank));
int32 remainingHp = int32(GetTarget()->GetHealth() - dmgInfo.GetDamage());
@@ -992,14 +1193,14 @@ class spell_dk_will_of_the_necropolis : public SpellScriptLoader
absorbAmount = CalculatePct(dmgInfo.GetDamage(), absorbPct);
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_dk_will_of_the_necropolis_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_SCHOOL_ABSORB);
OnEffectAbsorb += AuraEffectAbsorbFn(spell_dk_will_of_the_necropolis_AuraScript::Absorb, EFFECT_0);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_dk_will_of_the_necropolis_AuraScript();
}
@@ -1021,8 +1222,11 @@ void AddSC_deathknight_spell_scripts()
new spell_dk_ghoul_explode();
new spell_dk_icebound_fortitude();
new spell_dk_improved_blood_presence();
+ new spell_dk_improved_frost_presence();
new spell_dk_improved_unholy_presence();
+ new spell_dk_presence();
new spell_dk_rune_tap_party();
+ new spell_dk_scent_of_blood();
new spell_dk_scourge_strike();
new spell_dk_spell_deflection();
new spell_dk_vampiric_blood();
diff --git a/src/server/scripts/Spells/spell_druid.cpp b/src/server/scripts/Spells/spell_druid.cpp
index 160f14ff670..61966ef8a8e 100644
--- a/src/server/scripts/Spells/spell_druid.cpp
+++ b/src/server/scripts/Spells/spell_druid.cpp
@@ -63,19 +63,19 @@ class spell_dru_dash : public SpellScriptLoader
amount = 0;
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_dru_dash_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_MOD_INCREASE_SPEED);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_dru_dash_AuraScript();
}
};
-// -5229 - Enrage
+// 5229 - Enrage
class spell_dru_enrage : public SpellScriptLoader
{
public:
@@ -85,19 +85,27 @@ class spell_dru_enrage : public SpellScriptLoader
{
PrepareSpellScript(spell_dru_enrage_SpellScript);
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_DRUID_KING_OF_THE_JUNGLE)
+ || !sSpellMgr->GetSpellInfo(SPELL_DRUID_ENRAGE_MOD_DAMAGE))
+ return false;
+ return true;
+ }
+
void OnHit()
{
if (AuraEffect const* aurEff = GetHitUnit()->GetAuraEffectOfRankedSpell(SPELL_DRUID_KING_OF_THE_JUNGLE, EFFECT_0))
GetHitUnit()->CastCustomSpell(SPELL_DRUID_ENRAGE_MOD_DAMAGE, SPELLVALUE_BASE_POINT0, aurEff->GetAmount(), GetHitUnit(), true);
}
- void Register()
+ void Register() OVERRIDE
{
AfterHit += SpellHitFn(spell_dru_enrage_SpellScript::OnHit);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_dru_enrage_SpellScript();
}
@@ -113,7 +121,7 @@ class spell_dru_glyph_of_starfire : public SpellScriptLoader
{
PrepareSpellScript(spell_dru_glyph_of_starfire_SpellScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_DRUID_INCREASED_MOONFIRE_DURATION) || !sSpellMgr->GetSpellInfo(SPELL_DRUID_NATURES_SPLENDOR))
return false;
@@ -143,13 +151,13 @@ class spell_dru_glyph_of_starfire : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_dru_glyph_of_starfire_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_dru_glyph_of_starfire_SpellScript();
}
@@ -179,13 +187,13 @@ class spell_dru_idol_lifebloom : public SpellScriptLoader
spellMod->value = aurEff->GetAmount() / 7;
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcSpellMod += AuraEffectCalcSpellModFn(spell_dru_idol_lifebloom_AuraScript::HandleEffectCalcSpellMod, EFFECT_0, SPELL_AURA_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_dru_idol_lifebloom_AuraScript();
}
@@ -206,13 +214,13 @@ class spell_dru_innervate : public SpellScriptLoader
amount = CalculatePct(int32(GetUnitOwner()->GetCreatePowers(POWER_MANA) / aurEff->GetTotalTicks()), amount);
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_dru_innervate_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_PERIODIC_ENERGIZE);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_dru_innervate_AuraScript();
}
@@ -235,13 +243,13 @@ class spell_dru_insect_swarm : public SpellScriptLoader
amount += relicAurEff->GetAmount() / aurEff->GetTotalTicks();
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_dru_insect_swarm_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_dru_insect_swarm_AuraScript();
}
@@ -257,7 +265,7 @@ class spell_dru_lifebloom : public SpellScriptLoader
{
PrepareAuraScript(spell_dru_lifebloom_AuraScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_DRUID_LIFEBLOOM_FINAL_HEAL))
return false;
@@ -316,14 +324,14 @@ class spell_dru_lifebloom : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectRemove += AuraEffectRemoveFn(spell_dru_lifebloom_AuraScript::AfterRemove, EFFECT_1, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
AfterDispel += AuraDispelFn(spell_dru_lifebloom_AuraScript::HandleDispel);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_dru_lifebloom_AuraScript();
}
@@ -339,7 +347,7 @@ class spell_dru_living_seed : public SpellScriptLoader
{
PrepareAuraScript(spell_dru_living_seed_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_DRUID_LIVING_SEED_PROC))
return false;
@@ -353,13 +361,13 @@ class spell_dru_living_seed : public SpellScriptLoader
GetTarget()->CastCustomSpell(SPELL_DRUID_LIVING_SEED_PROC, SPELLVALUE_BASE_POINT0, amount, eventInfo.GetProcTarget(), true, NULL, aurEff);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectProc += AuraEffectProcFn(spell_dru_living_seed_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_dru_living_seed_AuraScript();
}
@@ -375,7 +383,7 @@ class spell_dru_living_seed_proc : public SpellScriptLoader
{
PrepareAuraScript(spell_dru_living_seed_proc_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_DRUID_LIVING_SEED_HEAL))
return false;
@@ -388,13 +396,13 @@ class spell_dru_living_seed_proc : public SpellScriptLoader
GetTarget()->CastCustomSpell(SPELL_DRUID_LIVING_SEED_HEAL, SPELLVALUE_BASE_POINT0, aurEff->GetAmount(), GetTarget(), true, NULL, aurEff);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectProc += AuraEffectProcFn(spell_dru_living_seed_proc_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_dru_living_seed_proc_AuraScript();
}
@@ -412,7 +420,7 @@ class spell_dru_moonkin_form_passive : public SpellScriptLoader
uint32 absorbPct;
- bool Load()
+ bool Load() OVERRIDE
{
absorbPct = GetSpellInfo()->Effects[EFFECT_0].CalcValue(GetCaster());
return true;
@@ -431,14 +439,14 @@ class spell_dru_moonkin_form_passive : public SpellScriptLoader
absorbAmount = CalculatePct(dmgInfo.GetDamage(), absorbPct);
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_dru_moonkin_form_passive_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_SCHOOL_ABSORB);
OnEffectAbsorb += AuraEffectAbsorbFn(spell_dru_moonkin_form_passive_AuraScript::Absorb, EFFECT_0);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_dru_moonkin_form_passive_AuraScript();
}
@@ -459,13 +467,13 @@ class spell_dru_owlkin_frenzy : public SpellScriptLoader
amount = CalculatePct(GetUnitOwner()->GetCreatePowers(POWER_MANA), amount);
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_dru_owlkin_frenzy_AuraScript::CalculateAmount, EFFECT_2, SPELL_AURA_PERIODIC_ENERGIZE);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_dru_owlkin_frenzy_AuraScript();
}
@@ -487,14 +495,14 @@ class spell_dru_predatory_strikes : public SpellScriptLoader
target->UpdateAttackPowerAndDamage();
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectApply += AuraEffectApplyFn(spell_dru_predatory_strikes_AuraScript::UpdateAmount, EFFECT_ALL, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_CHANGE_AMOUNT_MASK);
AfterEffectRemove += AuraEffectRemoveFn(spell_dru_predatory_strikes_AuraScript::UpdateAmount, EFFECT_ALL, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_CHANGE_AMOUNT_MASK);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_dru_predatory_strikes_AuraScript();
}
@@ -512,7 +520,7 @@ class spell_dru_primal_tenacity : public SpellScriptLoader
uint32 absorbPct;
- bool Load()
+ bool Load() OVERRIDE
{
absorbPct = GetSpellInfo()->Effects[EFFECT_1].CalcValue(GetCaster());
return true;
@@ -531,14 +539,14 @@ class spell_dru_primal_tenacity : public SpellScriptLoader
absorbAmount = CalculatePct(dmgInfo.GetDamage(), absorbPct);
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_dru_primal_tenacity_AuraScript::CalculateAmount, EFFECT_1, SPELL_AURA_SCHOOL_ABSORB);
OnEffectAbsorb += AuraEffectAbsorbFn(spell_dru_primal_tenacity_AuraScript::Absorb, EFFECT_1);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_dru_primal_tenacity_AuraScript();
}
@@ -554,7 +562,7 @@ class spell_dru_rip : public SpellScriptLoader
{
PrepareAuraScript(spell_dru_rip_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
Unit* caster = GetCaster();
return caster && caster->GetTypeId() == TYPEID_PLAYER;
@@ -580,13 +588,13 @@ class spell_dru_rip : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_dru_rip_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_dru_rip_AuraScript();
}
@@ -604,7 +612,7 @@ class spell_dru_savage_defense : public SpellScriptLoader
uint32 absorbPct;
- bool Load()
+ bool Load() OVERRIDE
{
absorbPct = GetSpellInfo()->Effects[EFFECT_0].CalcValue(GetCaster());
return true;
@@ -622,14 +630,14 @@ class spell_dru_savage_defense : public SpellScriptLoader
aurEff->SetAmount(0);
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_dru_savage_defense_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_SCHOOL_ABSORB);
OnEffectAbsorb += AuraEffectAbsorbFn(spell_dru_savage_defense_AuraScript::Absorb, EFFECT_0);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_dru_savage_defense_AuraScript();
}
@@ -654,7 +662,7 @@ class spell_dru_savage_roar : public SpellScriptLoader
return SPELL_CAST_OK;
}
- void Register()
+ void Register() OVERRIDE
{
OnCheckCast += SpellCheckCastFn(spell_dru_savage_roar_SpellScript::CheckCast);
}
@@ -664,7 +672,7 @@ class spell_dru_savage_roar : public SpellScriptLoader
{
PrepareAuraScript(spell_dru_savage_roar_AuraScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_DRUID_SAVAGE_ROAR))
return false;
@@ -682,19 +690,19 @@ class spell_dru_savage_roar : public SpellScriptLoader
GetTarget()->RemoveAurasDueToSpell(SPELL_DRUID_SAVAGE_ROAR);
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectApply += AuraEffectApplyFn(spell_dru_savage_roar_AuraScript::AfterApply, EFFECT_1, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_dru_savage_roar_AuraScript::AfterRemove, EFFECT_1, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_dru_savage_roar_SpellScript();
}
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_dru_savage_roar_AuraScript();
}
@@ -715,13 +723,13 @@ class spell_dru_starfall_aoe : public SpellScriptLoader
targets.remove(GetExplTargetUnit());
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_dru_starfall_aoe_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_DEST_AREA_ENEMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_dru_starfall_aoe_SpellScript();
}
@@ -760,14 +768,14 @@ class spell_dru_starfall_dummy : public SpellScriptLoader
caster->CastSpell(GetHitUnit(), uint32(GetEffectValue()), true);
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_dru_starfall_dummy_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnEffectHitTarget += SpellEffectFn(spell_dru_starfall_dummy_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_dru_starfall_dummy_SpellScript();
}
@@ -792,7 +800,7 @@ class spell_dru_survival_instincts : public SpellScriptLoader
return SPELL_CAST_OK;
}
- void Register()
+ void Register() OVERRIDE
{
OnCheckCast += SpellCheckCastFn(spell_dru_survival_instincts_SpellScript::CheckCast);
}
@@ -802,7 +810,7 @@ class spell_dru_survival_instincts : public SpellScriptLoader
{
PrepareAuraScript(spell_dru_survival_instincts_AuraScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_DRUID_SURVIVAL_INSTINCTS))
return false;
@@ -821,19 +829,19 @@ class spell_dru_survival_instincts : public SpellScriptLoader
GetTarget()->RemoveAurasDueToSpell(SPELL_DRUID_SURVIVAL_INSTINCTS);
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectApply += AuraEffectApplyFn(spell_dru_survival_instincts_AuraScript::AfterApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_CHANGE_AMOUNT_MASK);
AfterEffectRemove += AuraEffectRemoveFn(spell_dru_survival_instincts_AuraScript::AfterRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_CHANGE_AMOUNT_MASK);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_dru_survival_instincts_SpellScript();
}
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_dru_survival_instincts_AuraScript();
}
@@ -849,7 +857,7 @@ class spell_dru_swift_flight_passive : public SpellScriptLoader
{
PrepareAuraScript(spell_dru_swift_flight_passive_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
}
@@ -861,13 +869,13 @@ class spell_dru_swift_flight_passive : public SpellScriptLoader
amount = 310;
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_dru_swift_flight_passive_AuraScript::CalculateAmount, EFFECT_1, SPELL_AURA_MOD_INCREASE_VEHICLE_FLIGHT_SPEED);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_dru_swift_flight_passive_AuraScript();
}
@@ -889,13 +897,13 @@ class spell_dru_tiger_s_fury : public SpellScriptLoader
GetHitUnit()->CastCustomSpell(SPELL_DRUID_TIGER_S_FURY_ENERGIZE, SPELLVALUE_BASE_POINT0, aurEff->GetAmount(), GetHitUnit(), true);
}
- void Register()
+ void Register() OVERRIDE
{
AfterHit += SpellHitFn(spell_dru_tiger_s_fury_SpellScript::OnHit);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_dru_tiger_s_fury_SpellScript();
}
@@ -918,13 +926,13 @@ class spell_dru_typhoon : public SpellScriptLoader
PreventHitDefaultEffect(effIndex);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_dru_typhoon_SpellScript::HandleKnockBack, EFFECT_0, SPELL_EFFECT_KNOCK_BACK);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_dru_typhoon_SpellScript();
}
@@ -940,7 +948,7 @@ class spell_dru_t10_restoration_4p_bonus : public SpellScriptLoader
{
PrepareSpellScript(spell_dru_t10_restoration_4p_bonus_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
}
@@ -973,13 +981,13 @@ class spell_dru_t10_restoration_4p_bonus : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_dru_t10_restoration_4p_bonus_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_DEST_AREA_ALLY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_dru_t10_restoration_4p_bonus_SpellScript();
}
diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp
index 60f641d9054..98ed2c8b331 100644
--- a/src/server/scripts/Spells/spell_generic.cpp
+++ b/src/server/scripts/Spells/spell_generic.cpp
@@ -48,7 +48,7 @@ class spell_gen_absorb0_hitlimit1 : public SpellScriptLoader
uint32 limit;
- bool Load()
+ bool Load() OVERRIDE
{
// Max absorb stored in 1 dummy effect
limit = GetSpellInfo()->Effects[EFFECT_1].CalcValue();
@@ -60,13 +60,13 @@ class spell_gen_absorb0_hitlimit1 : public SpellScriptLoader
absorbAmount = std::min(limit, absorbAmount);
}
- void Register()
+ void Register() OVERRIDE
{
- OnEffectAbsorb += AuraEffectAbsorbFn(spell_gen_absorb0_hitlimit1_AuraScript::Absorb, EFFECT_0);
+ OnEffectAbsorb += AuraEffectAbsorbFn(spell_gen_absorb0_hitlimit1_AuraScript::Absorb, EFFECT_0);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_gen_absorb0_hitlimit1_AuraScript();
}
@@ -91,7 +91,7 @@ class spell_gen_adaptive_warding : public SpellScriptLoader
{
PrepareAuraScript(spell_gen_adaptive_warding_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_GEN_ADAPTIVE_WARDING_FIRE) ||
!sSpellMgr->GetSpellInfo(SPELL_GEN_ADAPTIVE_WARDING_NATURE) ||
@@ -150,975 +150,579 @@ class spell_gen_adaptive_warding : public SpellScriptLoader
GetTarget()->CastSpell(GetTarget(), spellId, true, NULL, aurEff);
}
- void Register()
+ void Register() OVERRIDE
{
DoCheckProc += AuraCheckProcFn(spell_gen_adaptive_warding_AuraScript::CheckProc);
OnEffectProc += AuraEffectProcFn(spell_gen_adaptive_warding_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_gen_adaptive_warding_AuraScript();
}
};
-// 41337 Aura of Anger
-class spell_gen_aura_of_anger : public SpellScriptLoader
-{
- public:
- spell_gen_aura_of_anger() : SpellScriptLoader("spell_gen_aura_of_anger") { }
-
- class spell_gen_aura_of_anger_AuraScript : public AuraScript
- {
- PrepareAuraScript(spell_gen_aura_of_anger_AuraScript);
-
- void HandleEffectPeriodicUpdate(AuraEffect* aurEff)
- {
- if (AuraEffect* aurEff1 = aurEff->GetBase()->GetEffect(EFFECT_1))
- aurEff1->ChangeAmount(aurEff1->GetAmount() + 5);
- aurEff->SetAmount(100 * aurEff->GetTickNumber());
- }
-
- void Register()
- {
- OnEffectUpdatePeriodic += AuraEffectUpdatePeriodicFn(spell_gen_aura_of_anger_AuraScript::HandleEffectPeriodicUpdate, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE);
- }
- };
-
- AuraScript* GetAuraScript() const
- {
- return new spell_gen_aura_of_anger_AuraScript();
- }
-};
-
-class spell_gen_av_drekthar_presence : public SpellScriptLoader
-{
- public:
- spell_gen_av_drekthar_presence() : SpellScriptLoader("spell_gen_av_drekthar_presence") { }
-
- class spell_gen_av_drekthar_presence_AuraScript : public AuraScript
- {
- PrepareAuraScript(spell_gen_av_drekthar_presence_AuraScript);
-
- bool CheckAreaTarget(Unit* target)
- {
- switch (target->GetEntry())
- {
- // alliance
- case 14762: // Dun Baldar North Marshal
- case 14763: // Dun Baldar South Marshal
- case 14764: // Icewing Marshal
- case 14765: // Stonehearth Marshal
- case 11948: // Vandar Stormspike
- // horde
- case 14772: // East Frostwolf Warmaster
- case 14776: // Tower Point Warmaster
- case 14773: // Iceblood Warmaster
- case 14777: // West Frostwolf Warmaster
- case 11946: // Drek'thar
- return true;
- default:
- return false;
- break;
- }
- }
- void Register()
- {
- DoCheckAreaTarget += AuraCheckAreaTargetFn(spell_gen_av_drekthar_presence_AuraScript::CheckAreaTarget);
- }
- };
-
- AuraScript* GetAuraScript() const
- {
- return new spell_gen_av_drekthar_presence_AuraScript();
- }
-};
-
-// 46394 Brutallus Burn
-class spell_gen_burn_brutallus : public SpellScriptLoader
+class spell_gen_allow_cast_from_item_only : public SpellScriptLoader
{
public:
- spell_gen_burn_brutallus() : SpellScriptLoader("spell_gen_burn_brutallus") { }
+ spell_gen_allow_cast_from_item_only() : SpellScriptLoader("spell_gen_allow_cast_from_item_only") { }
- class spell_gen_burn_brutallus_AuraScript : public AuraScript
+ class spell_gen_allow_cast_from_item_only_SpellScript : public SpellScript
{
- PrepareAuraScript(spell_gen_burn_brutallus_AuraScript);
+ PrepareSpellScript(spell_gen_allow_cast_from_item_only_SpellScript);
- void HandleEffectPeriodicUpdate(AuraEffect* aurEff)
+ SpellCastResult CheckRequirement()
{
- if (aurEff->GetTickNumber() % 11 == 0)
- aurEff->SetAmount(aurEff->GetAmount() * 2);
+ if (!GetCastItem())
+ return SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW;
+ return SPELL_CAST_OK;
}
- void Register()
+ void Register() OVERRIDE
{
- OnEffectUpdatePeriodic += AuraEffectUpdatePeriodicFn(spell_gen_burn_brutallus_AuraScript::HandleEffectPeriodicUpdate, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE);
+ OnCheckCast += SpellCheckCastFn(spell_gen_allow_cast_from_item_only_SpellScript::CheckRequirement);
}
};
- AuraScript* GetAuraScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
- return new spell_gen_burn_brutallus_AuraScript();
+ return new spell_gen_allow_cast_from_item_only_SpellScript();
}
};
-enum CannibalizeSpells
+enum AnimalBloodPoolSpell
{
- SPELL_CANNIBALIZE_TRIGGERED = 20578,
+ SPELL_ANIMAL_BLOOD = 46221,
+ SPELL_SPAWN_BLOOD_POOL = 63471
};
-class spell_gen_cannibalize : public SpellScriptLoader
+class spell_gen_animal_blood : public SpellScriptLoader
{
public:
- spell_gen_cannibalize() : SpellScriptLoader("spell_gen_cannibalize") { }
+ spell_gen_animal_blood() : SpellScriptLoader("spell_gen_animal_blood") { }
- class spell_gen_cannibalize_SpellScript : public SpellScript
+ class spell_gen_animal_blood_AuraScript : public AuraScript
{
- PrepareSpellScript(spell_gen_cannibalize_SpellScript);
+ PrepareAuraScript(spell_gen_animal_blood_AuraScript);
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
- if (!sSpellMgr->GetSpellInfo(SPELL_CANNIBALIZE_TRIGGERED))
+ if (!sSpellMgr->GetSpellInfo(SPELL_SPAWN_BLOOD_POOL))
return false;
return true;
}
- SpellCastResult CheckIfCorpseNear()
+ void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
- Unit* caster = GetCaster();
- float max_range = GetSpellInfo()->GetMaxRange(false);
- WorldObject* result = NULL;
- // search for nearby enemy corpse in range
- Trinity::AnyDeadUnitSpellTargetInRangeCheck check(caster, max_range, GetSpellInfo(), TARGET_CHECK_ENEMY);
- Trinity::WorldObjectSearcher<Trinity::AnyDeadUnitSpellTargetInRangeCheck> searcher(caster, result, check);
- caster->GetMap()->VisitFirstFound(caster->m_positionX, caster->m_positionY, max_range, searcher);
- if (!result)
- return SPELL_FAILED_NO_EDIBLE_CORPSES;
- return SPELL_CAST_OK;
+ // Remove all auras with spell id 46221, except the one currently being applied
+ while (Aura* aur = GetUnitOwner()->GetOwnedAura(SPELL_ANIMAL_BLOOD, 0, 0, 0, GetAura()))
+ GetUnitOwner()->RemoveOwnedAura(aur);
}
- void HandleDummy(SpellEffIndex /*effIndex*/)
+ void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
- Unit* caster = GetCaster();
- caster->CastSpell(caster, SPELL_CANNIBALIZE_TRIGGERED, false);
+ if (Unit* owner = GetUnitOwner())
+ if (owner->IsInWater())
+ owner->CastSpell(owner, SPELL_SPAWN_BLOOD_POOL, true);
}
- void Register()
+ void Register() OVERRIDE
{
- OnEffectHit += SpellEffectFn(spell_gen_cannibalize_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
- OnCheckCast += SpellCheckCastFn(spell_gen_cannibalize_SpellScript::CheckIfCorpseNear);
+ AfterEffectApply += AuraEffectRemoveFn(spell_gen_animal_blood_AuraScript::OnApply, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL);
+ AfterEffectRemove += AuraEffectRemoveFn(spell_gen_animal_blood_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL);
}
};
- SpellScript* GetSpellScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
- return new spell_gen_cannibalize_SpellScript();
+ return new spell_gen_animal_blood_AuraScript();
}
};
-// 63845 - Create Lance
-enum CreateLanceSpells
-{
- SPELL_CREATE_LANCE_ALLIANCE = 63914,
- SPELL_CREATE_LANCE_HORDE = 63919
-};
-
-class spell_gen_create_lance : public SpellScriptLoader
+// 41337 Aura of Anger
+class spell_gen_aura_of_anger : public SpellScriptLoader
{
public:
- spell_gen_create_lance() : SpellScriptLoader("spell_gen_create_lance") { }
+ spell_gen_aura_of_anger() : SpellScriptLoader("spell_gen_aura_of_anger") { }
- class spell_gen_create_lance_SpellScript : public SpellScript
+ class spell_gen_aura_of_anger_AuraScript : public AuraScript
{
- PrepareSpellScript(spell_gen_create_lance_SpellScript);
-
- bool Validate(SpellInfo const* /*spellInfo*/)
- {
- if (!sSpellMgr->GetSpellInfo(SPELL_CREATE_LANCE_ALLIANCE) || !sSpellMgr->GetSpellInfo(SPELL_CREATE_LANCE_HORDE))
- return false;
- return true;
- }
+ PrepareAuraScript(spell_gen_aura_of_anger_AuraScript);
- void HandleScript(SpellEffIndex effIndex)
+ void HandleEffectPeriodicUpdate(AuraEffect* aurEff)
{
- PreventHitDefaultEffect(effIndex);
-
- if (Player* target = GetHitPlayer())
- {
- if (target->GetTeam() == ALLIANCE)
- GetCaster()->CastSpell(target, SPELL_CREATE_LANCE_ALLIANCE, true);
- else
- GetCaster()->CastSpell(target, SPELL_CREATE_LANCE_HORDE, true);
- }
+ if (AuraEffect* aurEff1 = aurEff->GetBase()->GetEffect(EFFECT_1))
+ aurEff1->ChangeAmount(aurEff1->GetAmount() + 5);
+ aurEff->SetAmount(100 * aurEff->GetTickNumber());
}
- void Register()
+ void Register() OVERRIDE
{
- OnEffectHitTarget += SpellEffectFn(spell_gen_create_lance_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ OnEffectUpdatePeriodic += AuraEffectUpdatePeriodicFn(spell_gen_aura_of_anger_AuraScript::HandleEffectPeriodicUpdate, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE);
}
};
- SpellScript* GetSpellScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
- return new spell_gen_create_lance_SpellScript();
+ return new spell_gen_aura_of_anger_AuraScript();
}
};
-// 28702 - Netherbloom
-enum Netherbloom
+enum ServiceUniform
{
- SPELL_NETHERBLOOM_POLLEN_1 = 28703
+ // Spells
+ SPELL_SERVICE_UNIFORM = 71450,
+
+ // Models
+ MODEL_GOBLIN_MALE = 31002,
+ MODEL_GOBLIN_FEMALE = 31003
};
-class spell_gen_netherbloom : public SpellScriptLoader
+class spell_gen_aura_service_uniform : public SpellScriptLoader
{
public:
- spell_gen_netherbloom() : SpellScriptLoader("spell_gen_netherbloom") { }
+ spell_gen_aura_service_uniform() : SpellScriptLoader("spell_gen_aura_service_uniform") { }
- class spell_gen_netherbloom_SpellScript : public SpellScript
+ class spell_gen_aura_service_uniform_AuraScript : public AuraScript
{
- PrepareSpellScript(spell_gen_netherbloom_SpellScript);
+ PrepareAuraScript(spell_gen_aura_service_uniform_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
- for (uint8 i = 0; i < 5; ++i)
- if (!sSpellMgr->GetSpellInfo(SPELL_NETHERBLOOM_POLLEN_1 + i))
- return false;
+ if (!sSpellMgr->GetSpellInfo(SPELL_SERVICE_UNIFORM))
+ return false;
return true;
}
- void HandleScript(SpellEffIndex effIndex)
+ void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
- PreventHitDefaultEffect(effIndex);
-
- if (Unit* target = GetHitUnit())
+ // Apply model goblin
+ Unit* target = GetTarget();
+ if (target->GetTypeId() == TYPEID_PLAYER)
{
- // 25% chance of casting a random buff
- if (roll_chance_i(75))
- return;
-
- // triggered spells are 28703 to 28707
- // Note: some sources say, that there was the possibility of
- // receiving a debuff. However, this seems to be removed by a patch.
-
- // don't overwrite an existing aura
- for (uint8 i = 0; i < 5; ++i)
- if (target->HasAura(SPELL_NETHERBLOOM_POLLEN_1 + i))
- return;
-
- target->CastSpell(target, SPELL_NETHERBLOOM_POLLEN_1 + urand(0, 4), true);
+ if (target->getGender() == GENDER_MALE)
+ target->SetDisplayId(MODEL_GOBLIN_MALE);
+ else
+ target->SetDisplayId(MODEL_GOBLIN_FEMALE);
}
}
- void Register()
+ void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
- OnEffectHitTarget += SpellEffectFn(spell_gen_netherbloom_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ Unit* target = GetTarget();
+ if (target->GetTypeId() == TYPEID_PLAYER)
+ target->RestoreDisplayId();
+ }
+
+ void Register() OVERRIDE
+ {
+ AfterEffectApply += AuraEffectRemoveFn(spell_gen_aura_service_uniform_AuraScript::OnApply, EFFECT_0, SPELL_AURA_TRANSFORM, AURA_EFFECT_HANDLE_REAL);
+ AfterEffectRemove += AuraEffectRemoveFn(spell_gen_aura_service_uniform_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_TRANSFORM, AURA_EFFECT_HANDLE_REAL);
}
};
- SpellScript* GetSpellScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
- return new spell_gen_netherbloom_SpellScript();
+ return new spell_gen_aura_service_uniform_AuraScript();
}
};
-// 28720 - Nightmare Vine
-enum NightmareVine
-{
- SPELL_NIGHTMARE_POLLEN = 28721
-};
-
-class spell_gen_nightmare_vine : public SpellScriptLoader
+class spell_gen_av_drekthar_presence : public SpellScriptLoader
{
public:
- spell_gen_nightmare_vine() : SpellScriptLoader("spell_gen_nightmare_vine") { }
+ spell_gen_av_drekthar_presence() : SpellScriptLoader("spell_gen_av_drekthar_presence") { }
- class spell_gen_nightmare_vine_SpellScript : public SpellScript
+ class spell_gen_av_drekthar_presence_AuraScript : public AuraScript
{
- PrepareSpellScript(spell_gen_nightmare_vine_SpellScript);
-
- bool Validate(SpellInfo const* /*spellInfo*/)
- {
- if (!sSpellMgr->GetSpellInfo(SPELL_NIGHTMARE_POLLEN))
- return false;
- return true;
- }
+ PrepareAuraScript(spell_gen_av_drekthar_presence_AuraScript);
- void HandleScript(SpellEffIndex effIndex)
+ bool CheckAreaTarget(Unit* target)
{
- PreventHitDefaultEffect(effIndex);
-
- if (Unit* target = GetHitUnit())
+ switch (target->GetEntry())
{
- // 25% chance of casting Nightmare Pollen
- if (roll_chance_i(25))
- target->CastSpell(target, SPELL_NIGHTMARE_POLLEN, true);
+ // alliance
+ case 14762: // Dun Baldar North Marshal
+ case 14763: // Dun Baldar South Marshal
+ case 14764: // Icewing Marshal
+ case 14765: // Stonehearth Marshal
+ case 11948: // Vandar Stormspike
+ // horde
+ case 14772: // East Frostwolf Warmaster
+ case 14776: // Tower Point Warmaster
+ case 14773: // Iceblood Warmaster
+ case 14777: // West Frostwolf Warmaster
+ case 11946: // Drek'thar
+ return true;
+ default:
+ return false;
}
}
- void Register()
+ void Register() OVERRIDE
{
- OnEffectHitTarget += SpellEffectFn(spell_gen_nightmare_vine_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ DoCheckAreaTarget += AuraCheckAreaTargetFn(spell_gen_av_drekthar_presence_AuraScript::CheckAreaTarget);
}
};
- SpellScript* GetSpellScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
- return new spell_gen_nightmare_vine_SpellScript();
+ return new spell_gen_av_drekthar_presence_AuraScript();
}
};
-// 27539 - Obsidian Armor
-enum ObsidianArmor
+enum GenericBandage
{
- SPELL_GEN_OBSIDIAN_ARMOR_HOLY = 27536,
- SPELL_GEN_OBSIDIAN_ARMOR_FIRE = 27533,
- SPELL_GEN_OBSIDIAN_ARMOR_NATURE = 27538,
- SPELL_GEN_OBSIDIAN_ARMOR_FROST = 27534,
- SPELL_GEN_OBSIDIAN_ARMOR_SHADOW = 27535,
- SPELL_GEN_OBSIDIAN_ARMOR_ARCANE = 27540
+ SPELL_RECENTLY_BANDAGED = 11196
};
-class spell_gen_obsidian_armor : public SpellScriptLoader
+class spell_gen_bandage : public SpellScriptLoader
{
public:
- spell_gen_obsidian_armor() : SpellScriptLoader("spell_gen_obsidian_armor") { }
+ spell_gen_bandage() : SpellScriptLoader("spell_gen_bandage") { }
- class spell_gen_obsidian_armor_AuraScript : public AuraScript
+ class spell_gen_bandage_SpellScript : public SpellScript
{
- PrepareAuraScript(spell_gen_obsidian_armor_AuraScript);
-
- bool Validate(SpellInfo const* /*spellInfo*/)
- {
- if (!sSpellMgr->GetSpellInfo(SPELL_GEN_OBSIDIAN_ARMOR_HOLY) ||
- !sSpellMgr->GetSpellInfo(SPELL_GEN_OBSIDIAN_ARMOR_FIRE) ||
- !sSpellMgr->GetSpellInfo(SPELL_GEN_OBSIDIAN_ARMOR_NATURE) ||
- !sSpellMgr->GetSpellInfo(SPELL_GEN_OBSIDIAN_ARMOR_FROST) ||
- !sSpellMgr->GetSpellInfo(SPELL_GEN_OBSIDIAN_ARMOR_SHADOW) ||
- !sSpellMgr->GetSpellInfo(SPELL_GEN_OBSIDIAN_ARMOR_ARCANE))
- return false;
- return true;
- }
+ PrepareSpellScript(spell_gen_bandage_SpellScript);
- bool CheckProc(ProcEventInfo& eventInfo)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
- if (eventInfo.GetDamageInfo()->GetSpellInfo()) // eventInfo.GetSpellInfo()
- return false;
-
- if (GetFirstSchoolInMask(eventInfo.GetSchoolMask()) == SPELL_SCHOOL_NORMAL)
+ if (!sSpellMgr->GetSpellInfo(SPELL_RECENTLY_BANDAGED))
return false;
-
return true;
}
- void OnProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo)
+ SpellCastResult CheckCast()
{
- PreventDefaultAction();
-
- uint32 spellId = 0;
- switch (GetFirstSchoolInMask(eventInfo.GetSchoolMask()))
+ if (Unit* target = GetExplTargetUnit())
{
- case SPELL_SCHOOL_HOLY:
- spellId = SPELL_GEN_OBSIDIAN_ARMOR_HOLY;
- break;
- case SPELL_SCHOOL_FIRE:
- spellId = SPELL_GEN_OBSIDIAN_ARMOR_FIRE;
- break;
- case SPELL_SCHOOL_NATURE:
- spellId = SPELL_GEN_OBSIDIAN_ARMOR_NATURE;
- break;
- case SPELL_SCHOOL_FROST:
- spellId = SPELL_GEN_OBSIDIAN_ARMOR_FROST;
- break;
- case SPELL_SCHOOL_SHADOW:
- spellId = SPELL_GEN_OBSIDIAN_ARMOR_SHADOW;
- break;
- case SPELL_SCHOOL_ARCANE:
- spellId = SPELL_GEN_OBSIDIAN_ARMOR_ARCANE;
- break;
- default:
- return;
+ if (target->HasAura(SPELL_RECENTLY_BANDAGED))
+ return SPELL_FAILED_TARGET_AURASTATE;
}
- GetTarget()->CastSpell(GetTarget(), spellId, true, NULL, aurEff);
- }
-
- void Register()
- {
- DoCheckProc += AuraCheckProcFn(spell_gen_obsidian_armor_AuraScript::CheckProc);
- OnEffectProc += AuraEffectProcFn(spell_gen_obsidian_armor_AuraScript::OnProc, EFFECT_0, SPELL_AURA_DUMMY);
- }
- };
-
- AuraScript* GetAuraScript() const
- {
- return new spell_gen_obsidian_armor_AuraScript();
- }
-};
-
-// 45472 Parachute
-enum ParachuteSpells
-{
- SPELL_PARACHUTE = 45472,
- SPELL_PARACHUTE_BUFF = 44795,
-};
-
-class spell_gen_parachute : public SpellScriptLoader
-{
- public:
- spell_gen_parachute() : SpellScriptLoader("spell_gen_parachute") { }
-
- class spell_gen_parachute_AuraScript : public AuraScript
- {
- PrepareAuraScript(spell_gen_parachute_AuraScript);
-
- bool Validate(SpellInfo const* /*spell*/)
- {
- if (!sSpellMgr->GetSpellInfo(SPELL_PARACHUTE) || !sSpellMgr->GetSpellInfo(SPELL_PARACHUTE_BUFF))
- return false;
- return true;
+ return SPELL_CAST_OK;
}
- void HandleEffectPeriodic(AuraEffect const* /*aurEff*/)
+ void HandleScript()
{
- if (Player* target = GetTarget()->ToPlayer())
- if (target->IsFalling())
- {
- target->RemoveAurasDueToSpell(SPELL_PARACHUTE);
- target->CastSpell(target, SPELL_PARACHUTE_BUFF, true);
- }
+ if (Unit* target = GetHitUnit())
+ GetCaster()->CastSpell(target, SPELL_RECENTLY_BANDAGED, true);
}
- void Register()
+ void Register() OVERRIDE
{
- OnEffectPeriodic += AuraEffectPeriodicFn(spell_gen_parachute_AuraScript::HandleEffectPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
+ OnCheckCast += SpellCheckCastFn(spell_gen_bandage_SpellScript::CheckCast);
+ AfterHit += SpellHitFn(spell_gen_bandage_SpellScript::HandleScript);
}
};
- AuraScript* GetAuraScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
- return new spell_gen_parachute_AuraScript();
+ return new spell_gen_bandage_SpellScript();
}
};
-enum NPCEntries
+enum Bonked
{
- NPC_DOOMGUARD = 11859,
- NPC_INFERNAL = 89,
- NPC_IMP = 416,
+ SPELL_BONKED = 62991,
+ SPELL_FOAM_SWORD_DEFEAT = 62994,
+ SPELL_ON_GUARD = 62972
};
-class spell_gen_pet_summoned : public SpellScriptLoader
+class spell_gen_bonked : public SpellScriptLoader
{
public:
- spell_gen_pet_summoned() : SpellScriptLoader("spell_gen_pet_summoned") { }
+ spell_gen_bonked() : SpellScriptLoader("spell_gen_bonked") { }
- class spell_gen_pet_summoned_SpellScript : public SpellScript
+ class spell_gen_bonked_SpellScript : public SpellScript
{
- PrepareSpellScript(spell_gen_pet_summoned_SpellScript);
-
- bool Load()
- {
- return GetCaster()->GetTypeId() == TYPEID_PLAYER;
- }
+ PrepareSpellScript(spell_gen_bonked_SpellScript);
void HandleScript(SpellEffIndex /*effIndex*/)
{
- Player* player = GetCaster()->ToPlayer();
- if (player->GetLastPetNumber())
+ if (Player* target = GetHitPlayer())
{
- PetType newPetType = (player->getClass() == CLASS_HUNTER) ? HUNTER_PET : SUMMON_PET;
- if (Pet* newPet = new Pet(player, newPetType))
- {
- if (newPet->LoadPetFromDB(player, 0, player->GetLastPetNumber(), true))
- {
- // revive the pet if it is dead
- if (newPet->getDeathState() == DEAD)
- newPet->setDeathState(ALIVE);
+ Aura const* aura = GetHitAura();
+ if (!(aura && aura->GetStackAmount() == 3))
+ return;
- newPet->SetFullHealth();
- newPet->SetPower(newPet->getPowerType(), newPet->GetMaxPower(newPet->getPowerType()));
+ target->CastSpell(target, SPELL_FOAM_SWORD_DEFEAT, true);
+ target->RemoveAurasDueToSpell(SPELL_BONKED);
- switch (newPet->GetEntry())
- {
- case NPC_DOOMGUARD:
- case NPC_INFERNAL:
- newPet->SetEntry(NPC_IMP);
- break;
- default:
- break;
- }
- }
- else
- delete newPet;
+ if (Aura const* aura = target->GetAura(SPELL_ON_GUARD))
+ {
+ if (Item* item = target->GetItemByGuid(aura->GetCastItemGUID()))
+ target->DestroyItemCount(item->GetEntry(), 1, true);
}
}
}
- void Register()
+ void Register() OVERRIDE
{
- OnEffectHitTarget += SpellEffectFn(spell_gen_pet_summoned_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ OnEffectHitTarget += SpellEffectFn(spell_gen_bonked_SpellScript::HandleScript, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
- return new spell_gen_pet_summoned_SpellScript();
+ return new spell_gen_bonked_SpellScript();
}
};
-class spell_gen_remove_flight_auras : public SpellScriptLoader
-{
- public:
- spell_gen_remove_flight_auras() : SpellScriptLoader("spell_gen_remove_flight_auras") {}
-
- class spell_gen_remove_flight_auras_SpellScript : public SpellScript
- {
- PrepareSpellScript(spell_gen_remove_flight_auras_SpellScript);
-
- void HandleScript(SpellEffIndex /*effIndex*/)
- {
- if (Unit* target = GetHitUnit())
- {
- target->RemoveAurasByType(SPELL_AURA_FLY);
- target->RemoveAurasByType(SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED);
- }
- }
+/* DOCUMENTATION: Break-Shield spells
+ Break-Shield spells can be classified in three groups:
- void Register()
- {
- OnEffectHitTarget += SpellEffectFn(spell_gen_remove_flight_auras_SpellScript::HandleScript, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT);
- }
- };
+ - Spells on vehicle bar used by players:
+ + EFFECT_0: SCRIPT_EFFECT
+ + EFFECT_1: NONE
+ + EFFECT_2: NONE
+ - Spells casted by players triggered by script:
+ + EFFECT_0: SCHOOL_DAMAGE
+ + EFFECT_1: SCRIPT_EFFECT
+ + EFFECT_2: FORCE_CAST
+ - Spells casted by NPCs on players:
+ + EFFECT_0: SCHOOL_DAMAGE
+ + EFFECT_1: SCRIPT_EFFECT
+ + EFFECT_2: NONE
- SpellScript* GetSpellScript() const
- {
- return new spell_gen_remove_flight_auras_SpellScript();
- }
-};
+ In the following script we handle the SCRIPT_EFFECT for effIndex EFFECT_0 and EFFECT_1.
+ - When handling EFFECT_0 we're in the "Spells on vehicle bar used by players" case
+ and we'll trigger "Spells casted by players triggered by script"
+ - When handling EFFECT_1 we're in the "Spells casted by players triggered by script"
+ or "Spells casted by NPCs on players" so we'll search for the first defend layer and drop it.
+*/
-enum EluneCandle
+enum BreakShieldSpells
{
- NPC_OMEN = 15467,
+ SPELL_BREAK_SHIELD_DAMAGE_2K = 62626,
+ SPELL_BREAK_SHIELD_DAMAGE_10K = 64590,
- SPELL_ELUNE_CANDLE_OMEN_HEAD = 26622,
- SPELL_ELUNE_CANDLE_OMEN_CHEST = 26624,
- SPELL_ELUNE_CANDLE_OMEN_HAND_R = 26625,
- SPELL_ELUNE_CANDLE_OMEN_HAND_L = 26649,
- SPELL_ELUNE_CANDLE_NORMAL = 26636,
+ SPELL_BREAK_SHIELD_TRIGGER_FACTION_MOUNTS = 62575, // Also on ToC5 mounts
+ SPELL_BREAK_SHIELD_TRIGGER_CAMPAING_WARHORSE = 64595,
+ SPELL_BREAK_SHIELD_TRIGGER_UNK = 66480
};
-class spell_gen_elune_candle : public SpellScriptLoader
+class spell_gen_break_shield: public SpellScriptLoader
{
public:
- spell_gen_elune_candle() : SpellScriptLoader("spell_gen_elune_candle") {}
+ spell_gen_break_shield(const char* name) : SpellScriptLoader(name) { }
- class spell_gen_elune_candle_SpellScript : public SpellScript
+ class spell_gen_break_shield_SpellScript : public SpellScript
{
- PrepareSpellScript(spell_gen_elune_candle_SpellScript);
- bool Validate(SpellInfo const* /*spellEntry*/)
- {
- if (!sSpellMgr->GetSpellInfo(SPELL_ELUNE_CANDLE_OMEN_HEAD))
- return false;
- if (!sSpellMgr->GetSpellInfo(SPELL_ELUNE_CANDLE_OMEN_CHEST))
- return false;
- if (!sSpellMgr->GetSpellInfo(SPELL_ELUNE_CANDLE_OMEN_HAND_R))
- return false;
- if (!sSpellMgr->GetSpellInfo(SPELL_ELUNE_CANDLE_OMEN_HAND_L))
- return false;
- if (!sSpellMgr->GetSpellInfo(SPELL_ELUNE_CANDLE_NORMAL))
- return false;
- return true;
- }
+ PrepareSpellScript(spell_gen_break_shield_SpellScript)
- void HandleScript(SpellEffIndex /*effIndex*/)
+ void HandleScriptEffect(SpellEffIndex effIndex)
{
- uint32 spellId = 0;
+ Unit* target = GetHitUnit();
- if (GetHitUnit()->GetEntry() == NPC_OMEN)
+ switch (effIndex)
{
- switch (urand(0, 3))
+ case EFFECT_0: // On spells wich trigger the damaging spell (and also the visual)
{
- case 0: spellId = SPELL_ELUNE_CANDLE_OMEN_HEAD; break;
- case 1: spellId = SPELL_ELUNE_CANDLE_OMEN_CHEST; break;
- case 2: spellId = SPELL_ELUNE_CANDLE_OMEN_HAND_R; break;
- case 3: spellId = SPELL_ELUNE_CANDLE_OMEN_HAND_L; break;
- }
- }
- else
- spellId = SPELL_ELUNE_CANDLE_NORMAL;
-
- GetCaster()->CastSpell(GetHitUnit(), spellId, true, NULL);
- }
-
- void Register()
- {
- OnEffectHitTarget += SpellEffectFn(spell_gen_elune_candle_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_DUMMY);
- }
- };
-
- SpellScript* GetSpellScript() const
- {
- return new spell_gen_elune_candle_SpellScript();
- }
-};
-
-class spell_creature_permanent_feign_death : public SpellScriptLoader
-{
- public:
- spell_creature_permanent_feign_death() : SpellScriptLoader("spell_creature_permanent_feign_death") { }
-
- class spell_creature_permanent_feign_death_AuraScript : public AuraScript
- {
- PrepareAuraScript(spell_creature_permanent_feign_death_AuraScript);
+ uint32 spellId;
- void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
- {
- Unit* target = GetTarget();
- target->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
- target->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH);
+ switch (GetSpellInfo()->Id)
+ {
+ case SPELL_BREAK_SHIELD_TRIGGER_UNK:
+ case SPELL_BREAK_SHIELD_TRIGGER_CAMPAING_WARHORSE:
+ spellId = SPELL_BREAK_SHIELD_DAMAGE_10K;
+ break;
+ case SPELL_BREAK_SHIELD_TRIGGER_FACTION_MOUNTS:
+ spellId = SPELL_BREAK_SHIELD_DAMAGE_2K;
+ break;
+ default:
+ return;
+ }
- if (target->GetTypeId() == TYPEID_UNIT)
- target->ToCreature()->SetReactState(REACT_PASSIVE);
+ if (Unit* rider = GetCaster()->GetCharmer())
+ rider->CastSpell(target, spellId, false);
+ else
+ GetCaster()->CastSpell(target, spellId, false);
+ break;
+ }
+ case EFFECT_1: // On damaging spells, for removing a defend layer
+ {
+ Unit::AuraApplicationMap const& auras = target->GetAppliedAuras();
+ for (Unit::AuraApplicationMap::const_iterator itr = auras.begin(); itr != auras.end(); ++itr)
+ {
+ if (Aura* aura = itr->second->GetBase())
+ {
+ SpellInfo const* auraInfo = aura->GetSpellInfo();
+ if (auraInfo && auraInfo->SpellIconID == 2007 && aura->HasEffectType(SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN))
+ {
+ aura->ModStackAmount(-1, AURA_REMOVE_BY_ENEMY_SPELL);
+ // Remove dummys from rider (Necessary for updating visual shields)
+ if (Unit* rider = target->GetCharmer())
+ if (Aura* defend = rider->GetAura(aura->GetId()))
+ defend->ModStackAmount(-1, AURA_REMOVE_BY_ENEMY_SPELL);
+ break;
+ }
+ }
+ }
+ break;
+ }
+ default:
+ break;
+ }
}
- void Register()
+ void Register() OVERRIDE
{
- OnEffectApply += AuraEffectApplyFn(spell_creature_permanent_feign_death_AuraScript::HandleEffectApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
+ OnEffectHitTarget += SpellEffectFn(spell_gen_break_shield_SpellScript::HandleScriptEffect, EFFECT_FIRST_FOUND, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- AuraScript* GetAuraScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
- return new spell_creature_permanent_feign_death_AuraScript();
+ return new spell_gen_break_shield_SpellScript();
}
};
-enum PvPTrinketTriggeredSpells
-{
- SPELL_WILL_OF_THE_FORSAKEN_COOLDOWN_TRIGGER = 72752,
- SPELL_WILL_OF_THE_FORSAKEN_COOLDOWN_TRIGGER_WOTF = 72757,
-};
-
-class spell_pvp_trinket_wotf_shared_cd : public SpellScriptLoader
+// 46394 Brutallus Burn
+class spell_gen_burn_brutallus : public SpellScriptLoader
{
public:
- spell_pvp_trinket_wotf_shared_cd() : SpellScriptLoader("spell_pvp_trinket_wotf_shared_cd") {}
+ spell_gen_burn_brutallus() : SpellScriptLoader("spell_gen_burn_brutallus") { }
- class spell_pvp_trinket_wotf_shared_cd_SpellScript : public SpellScript
+ class spell_gen_burn_brutallus_AuraScript : public AuraScript
{
- PrepareSpellScript(spell_pvp_trinket_wotf_shared_cd_SpellScript);
-
- bool Load()
- {
- return GetCaster()->GetTypeId() == TYPEID_PLAYER;
- }
-
- bool Validate(SpellInfo const* /*spellEntry*/)
- {
- if (!sSpellMgr->GetSpellInfo(SPELL_WILL_OF_THE_FORSAKEN_COOLDOWN_TRIGGER) || !sSpellMgr->GetSpellInfo(SPELL_WILL_OF_THE_FORSAKEN_COOLDOWN_TRIGGER_WOTF))
- return false;
- return true;
- }
+ PrepareAuraScript(spell_gen_burn_brutallus_AuraScript);
- void HandleScript()
+ void HandleEffectPeriodicUpdate(AuraEffect* aurEff)
{
- // This is only needed because spells cast from spell_linked_spell are triggered by default
- // Spell::SendSpellCooldown() skips all spells with TRIGGERED_IGNORE_SPELL_AND_CATEGORY_CD
- GetCaster()->ToPlayer()->AddSpellAndCategoryCooldowns(GetSpellInfo(), GetCastItem() ? GetCastItem()->GetEntry() : 0, GetSpell());
+ if (aurEff->GetTickNumber() % 11 == 0)
+ aurEff->SetAmount(aurEff->GetAmount() * 2);
}
- void Register()
+ void Register() OVERRIDE
{
- AfterCast += SpellCastFn(spell_pvp_trinket_wotf_shared_cd_SpellScript::HandleScript);
+ OnEffectUpdatePeriodic += AuraEffectUpdatePeriodicFn(spell_gen_burn_brutallus_AuraScript::HandleEffectPeriodicUpdate, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE);
}
};
- SpellScript* GetSpellScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
- return new spell_pvp_trinket_wotf_shared_cd_SpellScript();
+ return new spell_gen_burn_brutallus_AuraScript();
}
};
-enum AnimalBloodPoolSpell
+enum CannibalizeSpells
{
- SPELL_ANIMAL_BLOOD = 46221,
- SPELL_SPAWN_BLOOD_POOL = 63471,
+ SPELL_CANNIBALIZE_TRIGGERED = 20578
};
-class spell_gen_animal_blood : public SpellScriptLoader
+class spell_gen_cannibalize : public SpellScriptLoader
{
public:
- spell_gen_animal_blood() : SpellScriptLoader("spell_gen_animal_blood") { }
+ spell_gen_cannibalize() : SpellScriptLoader("spell_gen_cannibalize") { }
- class spell_gen_animal_blood_AuraScript : public AuraScript
+ class spell_gen_cannibalize_SpellScript : public SpellScript
{
- PrepareAuraScript(spell_gen_animal_blood_AuraScript);
+ PrepareSpellScript(spell_gen_cannibalize_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
- if (!sSpellMgr->GetSpellInfo(SPELL_SPAWN_BLOOD_POOL))
+ if (!sSpellMgr->GetSpellInfo(SPELL_CANNIBALIZE_TRIGGERED))
return false;
return true;
}
- void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ SpellCastResult CheckIfCorpseNear()
{
- // Remove all auras with spell id 46221, except the one currently being applied
- while (Aura* aur = GetUnitOwner()->GetOwnedAura(SPELL_ANIMAL_BLOOD, 0, 0, 0, GetAura()))
- GetUnitOwner()->RemoveOwnedAura(aur);
+ Unit* caster = GetCaster();
+ float max_range = GetSpellInfo()->GetMaxRange(false);
+ WorldObject* result = NULL;
+ // search for nearby enemy corpse in range
+ Trinity::AnyDeadUnitSpellTargetInRangeCheck check(caster, max_range, GetSpellInfo(), TARGET_CHECK_ENEMY);
+ Trinity::WorldObjectSearcher<Trinity::AnyDeadUnitSpellTargetInRangeCheck> searcher(caster, result, check);
+ caster->GetMap()->VisitFirstFound(caster->m_positionX, caster->m_positionY, max_range, searcher);
+ if (!result)
+ return SPELL_FAILED_NO_EDIBLE_CORPSES;
+ return SPELL_CAST_OK;
}
- void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ void HandleDummy(SpellEffIndex /*effIndex*/)
{
- if (Unit* owner = GetUnitOwner())
- if (owner->IsInWater())
- owner->CastSpell(owner, SPELL_SPAWN_BLOOD_POOL, true);
+ GetCaster()->CastSpell(GetCaster(), SPELL_CANNIBALIZE_TRIGGERED, false);
}
- void Register()
+ void Register() OVERRIDE
{
- AfterEffectApply += AuraEffectRemoveFn(spell_gen_animal_blood_AuraScript::OnApply, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL);
- AfterEffectRemove += AuraEffectRemoveFn(spell_gen_animal_blood_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL);
+ OnEffectHit += SpellEffectFn(spell_gen_cannibalize_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
+ OnCheckCast += SpellCheckCastFn(spell_gen_cannibalize_SpellScript::CheckIfCorpseNear);
}
};
- AuraScript* GetAuraScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
- return new spell_gen_animal_blood_AuraScript();
+ return new spell_gen_cannibalize_SpellScript();
}
};
-enum DivineStormSpell
+enum ChaosBlast
{
- SPELL_DIVINE_STORM = 53385,
+ SPELL_CHAOS_BLAST = 37675
};
-// 70769 Divine Storm!
-class spell_gen_divine_storm_cd_reset : public SpellScriptLoader
+class spell_gen_chaos_blast : public SpellScriptLoader
{
public:
- spell_gen_divine_storm_cd_reset() : SpellScriptLoader("spell_gen_divine_storm_cd_reset") {}
+ spell_gen_chaos_blast() : SpellScriptLoader("spell_gen_chaos_blast") { }
- class spell_gen_divine_storm_cd_reset_SpellScript : public SpellScript
+ class spell_gen_chaos_blast_SpellScript : public SpellScript
{
- PrepareSpellScript(spell_gen_divine_storm_cd_reset_SpellScript);
-
- bool Load()
- {
- return GetCaster()->GetTypeId() == TYPEID_PLAYER;
- }
+ PrepareSpellScript(spell_gen_chaos_blast_SpellScript)
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
- if (!sSpellMgr->GetSpellInfo(SPELL_DIVINE_STORM))
+ if (!sSpellMgr->GetSpellInfo(SPELL_CHAOS_BLAST))
return false;
return true;
}
-
- void HandleScript(SpellEffIndex /*effIndex*/)
- {
- Player* caster = GetCaster()->ToPlayer();
- if (caster->HasSpellCooldown(SPELL_DIVINE_STORM))
- caster->RemoveSpellCooldown(SPELL_DIVINE_STORM, true);
- }
-
- void Register()
- {
- OnEffectHitTarget += SpellEffectFn(spell_gen_divine_storm_cd_reset_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_DUMMY);
- }
- };
-
- SpellScript* GetSpellScript() const
- {
- return new spell_gen_divine_storm_cd_reset_SpellScript();
- }
-};
-
-class spell_gen_gunship_portal : public SpellScriptLoader
-{
- public:
- spell_gen_gunship_portal() : SpellScriptLoader("spell_gen_gunship_portal") { }
-
- class spell_gen_gunship_portal_SpellScript : public SpellScript
- {
- PrepareSpellScript(spell_gen_gunship_portal_SpellScript);
-
- bool Load()
- {
- return GetCaster()->GetTypeId() == TYPEID_PLAYER;
- }
-
- void HandleScript(SpellEffIndex /*effIndex*/)
- {
- Player* caster = GetCaster()->ToPlayer();
- if (Battleground* bg = caster->GetBattleground())
- if (bg->GetTypeID(true) == BATTLEGROUND_IC)
- bg->DoAction(1, caster->GetGUID());
- }
-
- void Register()
- {
- OnEffectHitTarget += SpellEffectFn(spell_gen_gunship_portal_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
- }
- };
-
- SpellScript* GetSpellScript() const
- {
- return new spell_gen_gunship_portal_SpellScript();
- }
-};
-
-enum parachuteIC
-{
- SPELL_PARACHUTE_IC = 66657,
-};
-
-class spell_gen_parachute_ic : public SpellScriptLoader
-{
- public:
- spell_gen_parachute_ic() : SpellScriptLoader("spell_gen_parachute_ic") { }
-
- class spell_gen_parachute_ic_AuraScript : public AuraScript
- {
- PrepareAuraScript(spell_gen_parachute_ic_AuraScript)
-
- void HandleTriggerSpell(AuraEffect const* /*aurEff*/)
- {
- if (Player* target = GetTarget()->ToPlayer())
- if (target->m_movementInfo.fallTime > 2000)
- target->CastSpell(target, SPELL_PARACHUTE_IC, true);
- }
-
- void Register()
- {
- OnEffectPeriodic += AuraEffectPeriodicFn(spell_gen_parachute_ic_AuraScript::HandleTriggerSpell, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
- }
- };
-
- AuraScript* GetAuraScript() const
- {
- return new spell_gen_parachute_ic_AuraScript();
- }
-};
-
-class spell_gen_dungeon_credit : public SpellScriptLoader
-{
- public:
- spell_gen_dungeon_credit() : SpellScriptLoader("spell_gen_dungeon_credit") { }
-
- class spell_gen_dungeon_credit_SpellScript : public SpellScript
- {
- PrepareSpellScript(spell_gen_dungeon_credit_SpellScript);
-
- bool Load()
- {
- _handled = false;
- return GetCaster()->GetTypeId() == TYPEID_UNIT;
- }
-
- void CreditEncounter()
+ void HandleDummy(SpellEffIndex /* effIndex */)
{
- // This hook is executed for every target, make sure we only credit instance once
- if (_handled)
- return;
-
- _handled = true;
+ int32 basepoints0 = 100;
Unit* caster = GetCaster();
- if (InstanceScript* instance = caster->GetInstanceScript())
- instance->UpdateEncounterState(ENCOUNTER_CREDIT_CAST_SPELL, GetSpellInfo()->Id, caster);
- }
-
- void Register()
- {
- AfterHit += SpellHitFn(spell_gen_dungeon_credit_SpellScript::CreditEncounter);
- }
-
- bool _handled;
- };
-
- SpellScript* GetSpellScript() const
- {
- return new spell_gen_dungeon_credit_SpellScript();
- }
-};
-
-class spell_gen_profession_research : public SpellScriptLoader
-{
- public:
- spell_gen_profession_research() : SpellScriptLoader("spell_gen_profession_research") {}
-
- class spell_gen_profession_research_SpellScript : public SpellScript
- {
- PrepareSpellScript(spell_gen_profession_research_SpellScript);
-
- bool Load()
- {
- return GetCaster()->GetTypeId() == TYPEID_PLAYER;
- }
-
- SpellCastResult CheckRequirement()
- {
- if (HasDiscoveredAllSpells(GetSpellInfo()->Id, GetCaster()->ToPlayer()))
- {
- SetCustomCastResultMessage(SPELL_CUSTOM_ERROR_NOTHING_TO_DISCOVER);
- return SPELL_FAILED_CUSTOM_ERROR;
- }
-
- return SPELL_CAST_OK;
- }
-
- void HandleScript(SpellEffIndex /*effIndex*/)
- {
- Player* caster = GetCaster()->ToPlayer();
- uint32 spellId = GetSpellInfo()->Id;
-
- // learn random explicit discovery recipe (if any)
- if (uint32 discoveredSpellId = GetExplicitDiscoverySpell(spellId, caster))
- caster->learnSpell(discoveredSpellId, false);
-
- caster->UpdateCraftSkill(spellId);
+ if (Unit* target = GetHitUnit())
+ caster->CastCustomSpell(target, SPELL_CHAOS_BLAST, &basepoints0, NULL, NULL, true);
}
- void Register()
+ void Register() OVERRIDE
{
- OnCheckCast += SpellCheckCastFn(spell_gen_profession_research_SpellScript::CheckRequirement);
- OnEffectHitTarget += SpellEffectFn(spell_gen_profession_research_SpellScript::HandleScript, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT);
+ OnEffectHitTarget += SpellEffectFn(spell_gen_chaos_blast_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
- return new spell_gen_profession_research_SpellScript();
+ return new spell_gen_chaos_blast_SpellScript();
}
};
-class spell_generic_clone : public SpellScriptLoader
+class spell_gen_clone : public SpellScriptLoader
{
public:
- spell_generic_clone() : SpellScriptLoader("spell_generic_clone") { }
+ spell_gen_clone() : SpellScriptLoader("spell_gen_clone") { }
- class spell_generic_clone_SpellScript : public SpellScript
+ class spell_gen_clone_SpellScript : public SpellScript
{
- PrepareSpellScript(spell_generic_clone_SpellScript);
+ PrepareSpellScript(spell_gen_clone_SpellScript);
void HandleScriptEffect(SpellEffIndex effIndex)
{
PreventHitDefaultEffect(effIndex);
- uint32 spellId = uint32(GetSpellInfo()->Effects[effIndex].CalcValue());
- GetHitUnit()->CastSpell(GetCaster(), spellId, true);
+ GetHitUnit()->CastSpell(GetCaster(), GetEffectValue(), true);
}
- void Register()
+ void Register() OVERRIDE
{
- OnEffectHitTarget += SpellEffectFn(spell_generic_clone_SpellScript::HandleScriptEffect, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT);
- OnEffectHitTarget += SpellEffectFn(spell_generic_clone_SpellScript::HandleScriptEffect, EFFECT_2, SPELL_EFFECT_SCRIPT_EFFECT);
+ OnEffectHitTarget += SpellEffectFn(spell_gen_clone_SpellScript::HandleScriptEffect, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT);
+ OnEffectHitTarget += SpellEffectFn(spell_gen_clone_SpellScript::HandleScriptEffect, EFFECT_2, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
- return new spell_generic_clone_SpellScript();
+ return new spell_gen_clone_SpellScript();
}
};
@@ -1134,14 +738,14 @@ enum CloneWeaponSpells
SPELL_COPY_RANGED_AURA = 57594
};
-class spell_generic_clone_weapon : public SpellScriptLoader
+class spell_gen_clone_weapon : public SpellScriptLoader
{
public:
- spell_generic_clone_weapon() : SpellScriptLoader("spell_generic_clone_weapon") { }
+ spell_gen_clone_weapon() : SpellScriptLoader("spell_gen_clone_weapon") { }
- class spell_generic_clone_weapon_SpellScript : public SpellScript
+ class spell_gen_clone_weapon_SpellScript : public SpellScript
{
- PrepareSpellScript(spell_generic_clone_weapon_SpellScript);
+ PrepareSpellScript(spell_gen_clone_weapon_SpellScript);
void HandleScriptEffect(SpellEffIndex effIndex)
{
@@ -1149,22 +753,18 @@ class spell_generic_clone_weapon : public SpellScriptLoader
Unit* caster = GetCaster();
if (Unit* target = GetHitUnit())
- {
-
- uint32 spellId = uint32(GetSpellInfo()->Effects[EFFECT_0].CalcValue());
- caster->CastSpell(target, spellId, true);
- }
+ caster->CastSpell(target, GetEffectValue(), true);
}
- void Register()
+ void Register() OVERRIDE
{
- OnEffectHitTarget += SpellEffectFn(spell_generic_clone_weapon_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ OnEffectHitTarget += SpellEffectFn(spell_gen_clone_weapon_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
- return new spell_generic_clone_weapon_SpellScript();
+ return new spell_gen_clone_weapon_SpellScript();
}
};
@@ -1179,10 +779,14 @@ class spell_gen_clone_weapon_aura : public SpellScriptLoader
uint32 prevItem;
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
- if (!sSpellMgr->GetSpellInfo(SPELL_COPY_WEAPON_AURA) || !sSpellMgr->GetSpellInfo(SPELL_COPY_WEAPON_2_AURA) || !sSpellMgr->GetSpellInfo(SPELL_COPY_WEAPON_3_AURA)
- || !sSpellMgr->GetSpellInfo(SPELL_COPY_OFFHAND_AURA) || !sSpellMgr->GetSpellInfo(SPELL_COPY_OFFHAND_2_AURA) || !sSpellMgr->GetSpellInfo(SPELL_COPY_RANGED_AURA))
+ if (!sSpellMgr->GetSpellInfo(SPELL_COPY_WEAPON_AURA) ||
+ !sSpellMgr->GetSpellInfo(SPELL_COPY_WEAPON_2_AURA) ||
+ !sSpellMgr->GetSpellInfo(SPELL_COPY_WEAPON_3_AURA) ||
+ !sSpellMgr->GetSpellInfo(SPELL_COPY_OFFHAND_AURA) ||
+ !sSpellMgr->GetSpellInfo(SPELL_COPY_OFFHAND_2_AURA) ||
+ !sSpellMgr->GetSpellInfo(SPELL_COPY_RANGED_AURA))
return false;
return true;
}
@@ -1191,7 +795,6 @@ class spell_gen_clone_weapon_aura : public SpellScriptLoader
{
Unit* caster = GetCaster();
Unit* target = GetTarget();
-
if (!caster)
return;
@@ -1253,27 +856,21 @@ class spell_gen_clone_weapon_aura : public SpellScriptLoader
case SPELL_COPY_WEAPON_AURA:
case SPELL_COPY_WEAPON_2_AURA:
case SPELL_COPY_WEAPON_3_AURA:
- {
target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID, prevItem);
break;
- }
case SPELL_COPY_OFFHAND_AURA:
case SPELL_COPY_OFFHAND_2_AURA:
- {
target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 1, prevItem);
break;
- }
case SPELL_COPY_RANGED_AURA:
- {
target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 2, prevItem);
break;
- }
default:
break;
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectApply += AuraEffectApplyFn(spell_gen_clone_weapon_auraScript::OnApply, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
OnEffectRemove += AuraEffectRemoveFn(spell_gen_clone_weapon_auraScript::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
@@ -1281,436 +878,466 @@ class spell_gen_clone_weapon_aura : public SpellScriptLoader
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_gen_clone_weapon_auraScript();
}
};
-enum SeaforiumSpells
-{
- SPELL_PLANT_CHARGES_CREDIT_ACHIEVEMENT = 60937,
-};
-
-class spell_gen_seaforium_blast : public SpellScriptLoader
+class spell_gen_count_pct_from_max_hp : public SpellScriptLoader
{
public:
- spell_gen_seaforium_blast() : SpellScriptLoader("spell_gen_seaforium_blast") {}
+ spell_gen_count_pct_from_max_hp(char const* name, int32 damagePct = 0) : SpellScriptLoader(name), _damagePct(damagePct) { }
- class spell_gen_seaforium_blast_SpellScript : public SpellScript
+ class spell_gen_count_pct_from_max_hp_SpellScript : public SpellScript
{
- PrepareSpellScript(spell_gen_seaforium_blast_SpellScript);
+ PrepareSpellScript(spell_gen_count_pct_from_max_hp_SpellScript)
- bool Validate(SpellInfo const* /*spell*/)
- {
- if (!sSpellMgr->GetSpellInfo(SPELL_PLANT_CHARGES_CREDIT_ACHIEVEMENT))
- return false;
- return true;
- }
+ public:
+ spell_gen_count_pct_from_max_hp_SpellScript(int32 damagePct) : SpellScript(), _damagePct(damagePct) { }
- bool Load()
+ void RecalculateDamage()
{
- // OriginalCaster is always available in Spell::prepare
- return GetOriginalCaster()->GetTypeId() == TYPEID_PLAYER;
- }
+ if (!_damagePct)
+ _damagePct = GetHitDamage();
- void AchievementCredit(SpellEffIndex /*effIndex*/)
- {
- // but in effect handling OriginalCaster can become NULL
- if (Unit* originalCaster = GetOriginalCaster())
- if (GameObject* go = GetHitGObj())
- if (go->GetGOInfo()->type == GAMEOBJECT_TYPE_DESTRUCTIBLE_BUILDING)
- originalCaster->CastSpell(originalCaster, SPELL_PLANT_CHARGES_CREDIT_ACHIEVEMENT, true);
+ SetHitDamage(GetHitUnit()->CountPctFromMaxHealth(_damagePct));
}
- void Register()
+ void Register() OVERRIDE
{
- OnEffectHitTarget += SpellEffectFn(spell_gen_seaforium_blast_SpellScript::AchievementCredit, EFFECT_1, SPELL_EFFECT_GAMEOBJECT_DAMAGE);
+ OnHit += SpellHitFn(spell_gen_count_pct_from_max_hp_SpellScript::RecalculateDamage);
}
+
+ private:
+ int32 _damagePct;
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
- return new spell_gen_seaforium_blast_SpellScript();
+ return new spell_gen_count_pct_from_max_hp_SpellScript(_damagePct);
}
+
+ private:
+ int32 _damagePct;
};
-enum FriendOrFowl
+// 63845 - Create Lance
+enum CreateLanceSpells
{
- SPELL_TURKEY_VENGEANCE = 25285,
+ SPELL_CREATE_LANCE_ALLIANCE = 63914,
+ SPELL_CREATE_LANCE_HORDE = 63919
};
-class spell_gen_turkey_marker : public SpellScriptLoader
+class spell_gen_create_lance : public SpellScriptLoader
{
public:
- spell_gen_turkey_marker() : SpellScriptLoader("spell_gen_turkey_marker") { }
+ spell_gen_create_lance() : SpellScriptLoader("spell_gen_create_lance") { }
- class spell_gen_turkey_marker_AuraScript : public AuraScript
+ class spell_gen_create_lance_SpellScript : public SpellScript
{
- PrepareAuraScript(spell_gen_turkey_marker_AuraScript);
+ PrepareSpellScript(spell_gen_create_lance_SpellScript);
- void OnApply(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
- // store stack apply times, so we can pop them while they expire
- _applyTimes.push_back(getMSTime());
- Unit* target = GetTarget();
-
- // on stack 15 cast the achievement crediting spell
- if (GetStackAmount() >= 15)
- target->CastSpell(target, SPELL_TURKEY_VENGEANCE, true, NULL, aurEff, GetCasterGUID());
+ if (!sSpellMgr->GetSpellInfo(SPELL_CREATE_LANCE_ALLIANCE) ||
+ !sSpellMgr->GetSpellInfo(SPELL_CREATE_LANCE_HORDE))
+ return false;
+ return true;
}
- void OnPeriodic(AuraEffect const* /*aurEff*/)
+ void HandleScript(SpellEffIndex effIndex)
{
- if (_applyTimes.empty())
- return;
+ PreventHitDefaultEffect(effIndex);
- // pop stack if it expired for us
- if (_applyTimes.front() + GetMaxDuration() < getMSTime())
- ModStackAmount(-1, AURA_REMOVE_BY_EXPIRE);
+ if (Player* target = GetHitPlayer())
+ {
+ if (target->GetTeam() == ALLIANCE)
+ GetCaster()->CastSpell(target, SPELL_CREATE_LANCE_ALLIANCE, true);
+ else
+ GetCaster()->CastSpell(target, SPELL_CREATE_LANCE_HORDE, true);
+ }
}
- void Register()
+ void Register() OVERRIDE
{
- AfterEffectApply += AuraEffectApplyFn(spell_gen_turkey_marker_AuraScript::OnApply, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY, AURA_EFFECT_HANDLE_REAL);
- OnEffectPeriodic += AuraEffectPeriodicFn(spell_gen_turkey_marker_AuraScript::OnPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
+ OnEffectHitTarget += SpellEffectFn(spell_gen_create_lance_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
-
- std::list<uint32> _applyTimes;
};
- AuraScript* GetAuraScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
- return new spell_gen_turkey_marker_AuraScript();
+ return new spell_gen_create_lance_SpellScript();
}
};
-class spell_gen_lifeblood : public SpellScriptLoader
+class spell_gen_creature_permanent_feign_death : public SpellScriptLoader
{
public:
- spell_gen_lifeblood() : SpellScriptLoader("spell_gen_lifeblood") { }
+ spell_gen_creature_permanent_feign_death() : SpellScriptLoader("spell_gen_creature_permanent_feign_death") { }
- class spell_gen_lifeblood_AuraScript : public AuraScript
+ class spell_gen_creature_permanent_feign_death_AuraScript : public AuraScript
{
- PrepareAuraScript(spell_gen_lifeblood_AuraScript);
+ PrepareAuraScript(spell_gen_creature_permanent_feign_death_AuraScript);
- void CalculateAmount(AuraEffect const* aurEff, int32& amount, bool& /*canBeRecalculated*/)
+ void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
- if (Unit* owner = GetUnitOwner())
- amount += int32(CalculatePct(owner->GetMaxHealth(), 1.5f / aurEff->GetTotalTicks()));
+ Unit* target = GetTarget();
+ target->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
+ target->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH);
+
+ if (target->GetTypeId() == TYPEID_UNIT)
+ target->ToCreature()->SetReactState(REACT_PASSIVE);
}
- void Register()
+ void Register() OVERRIDE
{
- DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_gen_lifeblood_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_PERIODIC_HEAL);
+ OnEffectApply += AuraEffectApplyFn(spell_gen_creature_permanent_feign_death_AuraScript::HandleEffectApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
- return new spell_gen_lifeblood_AuraScript();
+ return new spell_gen_creature_permanent_feign_death_AuraScript();
}
};
-enum MagicRoosterSpells
+enum DalaranDisguiseSpells
{
- SPELL_MAGIC_ROOSTER_NORMAL = 66122,
- SPELL_MAGIC_ROOSTER_DRAENEI_MALE = 66123,
- SPELL_MAGIC_ROOSTER_TAUREN_MALE = 66124,
+ SPELL_SUNREAVER_DISGUISE_TRIGGER = 69672,
+ SPELL_SUNREAVER_DISGUISE_FEMALE = 70973,
+ SPELL_SUNREAVER_DISGUISE_MALE = 70974,
+
+ SPELL_SILVER_COVENANT_DISGUISE_TRIGGER = 69673,
+ SPELL_SILVER_COVENANT_DISGUISE_FEMALE = 70971,
+ SPELL_SILVER_COVENANT_DISGUISE_MALE = 70972
};
-class spell_gen_magic_rooster : public SpellScriptLoader
+class spell_gen_dalaran_disguise : public SpellScriptLoader
{
public:
- spell_gen_magic_rooster() : SpellScriptLoader("spell_gen_magic_rooster") { }
+ spell_gen_dalaran_disguise(const char* name) : SpellScriptLoader(name) { }
- class spell_gen_magic_rooster_SpellScript : public SpellScript
+ class spell_gen_dalaran_disguise_SpellScript : public SpellScript
{
- PrepareSpellScript(spell_gen_magic_rooster_SpellScript);
+ PrepareSpellScript(spell_gen_dalaran_disguise_SpellScript);
- void HandleScript(SpellEffIndex effIndex)
+ bool Validate(SpellInfo const* spellInfo) OVERRIDE
{
- PreventHitDefaultEffect(effIndex);
- if (Player* target = GetHitPlayer())
+ switch (spellInfo->Id)
{
- // prevent client crashes from stacking mounts
- target->RemoveAurasByType(SPELL_AURA_MOUNTED);
+ case SPELL_SUNREAVER_DISGUISE_TRIGGER:
+ if (!sSpellMgr->GetSpellInfo(SPELL_SUNREAVER_DISGUISE_FEMALE) ||
+ !sSpellMgr->GetSpellInfo(SPELL_SUNREAVER_DISGUISE_MALE))
+ return false;
+ break;
+ case SPELL_SILVER_COVENANT_DISGUISE_TRIGGER:
+ if (!sSpellMgr->GetSpellInfo(SPELL_SILVER_COVENANT_DISGUISE_FEMALE) ||
+ !sSpellMgr->GetSpellInfo(SPELL_SILVER_COVENANT_DISGUISE_MALE))
+ return false;
+ break;
+ }
+ return true;
+ }
- uint32 spellId = SPELL_MAGIC_ROOSTER_NORMAL;
- switch (target->getRace())
+ void HandleScript(SpellEffIndex /*effIndex*/)
+ {
+ if (Player* player = GetHitPlayer())
+ {
+ uint8 gender = player->getGender();
+
+ uint32 spellId = GetSpellInfo()->Id;
+
+ switch (spellId)
{
- case RACE_DRAENEI:
- if (target->getGender() == GENDER_MALE)
- spellId = SPELL_MAGIC_ROOSTER_DRAENEI_MALE;
+ case SPELL_SUNREAVER_DISGUISE_TRIGGER:
+ spellId = gender ? SPELL_SUNREAVER_DISGUISE_FEMALE : SPELL_SUNREAVER_DISGUISE_MALE;
break;
- case RACE_TAUREN:
- if (target->getGender() == GENDER_MALE)
- spellId = SPELL_MAGIC_ROOSTER_TAUREN_MALE;
+ case SPELL_SILVER_COVENANT_DISGUISE_TRIGGER:
+ spellId = gender ? SPELL_SILVER_COVENANT_DISGUISE_FEMALE : SPELL_SILVER_COVENANT_DISGUISE_MALE;
break;
default:
break;
}
- target->CastSpell(target, spellId, true);
+ GetCaster()->CastSpell(player, spellId, true);
}
}
- void Register()
+ void Register() OVERRIDE
{
- OnEffectHitTarget += SpellEffectFn(spell_gen_magic_rooster_SpellScript::HandleScript, EFFECT_2, SPELL_EFFECT_SCRIPT_EFFECT);
+ OnEffectHitTarget += SpellEffectFn(spell_gen_dalaran_disguise_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
- return new spell_gen_magic_rooster_SpellScript();
+ return new spell_gen_dalaran_disguise_SpellScript();
}
};
-class spell_gen_allow_cast_from_item_only : public SpellScriptLoader
+enum DamageReductionAura
+{
+ SPELL_BLESSING_OF_SANCTUARY = 20911,
+ SPELL_GREATER_BLESSING_OF_SANCTUARY = 25899,
+ SPELL_RENEWED_HOPE = 63944,
+ SPELL_VIGILANCE = 50720,
+ SPELL_DAMAGE_REDUCTION_AURA = 68066
+};
+
+class spell_gen_damage_reduction_aura : public SpellScriptLoader
{
public:
- spell_gen_allow_cast_from_item_only() : SpellScriptLoader("spell_gen_allow_cast_from_item_only") { }
+ spell_gen_damage_reduction_aura() : SpellScriptLoader("spell_gen_damage_reduction_aura") { }
- class spell_gen_allow_cast_from_item_only_SpellScript : public SpellScript
+ class spell_gen_damage_reduction_AuraScript : public AuraScript
{
- PrepareSpellScript(spell_gen_allow_cast_from_item_only_SpellScript);
+ PrepareAuraScript(spell_gen_damage_reduction_AuraScript);
- SpellCastResult CheckRequirement()
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
- if (!GetCastItem())
- return SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW;
- return SPELL_CAST_OK;
+ if (!sSpellMgr->GetSpellInfo(SPELL_DAMAGE_REDUCTION_AURA))
+ return false;
+ return true;
}
- void Register()
+ void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
- OnCheckCast += SpellCheckCastFn(spell_gen_allow_cast_from_item_only_SpellScript::CheckRequirement);
+ Unit* target = GetTarget();
+ target->CastSpell(target, SPELL_DAMAGE_REDUCTION_AURA, true);
+ }
+
+ void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ Unit* target = GetTarget();
+ if (target->HasAura(SPELL_DAMAGE_REDUCTION_AURA) && !(target->HasAura(SPELL_BLESSING_OF_SANCTUARY) ||
+ target->HasAura(SPELL_GREATER_BLESSING_OF_SANCTUARY) ||
+ target->HasAura(SPELL_RENEWED_HOPE) ||
+ target->HasAura(SPELL_VIGILANCE)))
+ {
+ target->RemoveAurasDueToSpell(SPELL_DAMAGE_REDUCTION_AURA);
+ }
+ }
+
+ void Register() OVERRIDE
+ {
+ OnEffectApply += AuraEffectApplyFn(spell_gen_damage_reduction_AuraScript::OnApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
+ OnEffectRemove += AuraEffectRemoveFn(spell_gen_damage_reduction_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
}
+
};
- SpellScript* GetSpellScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
- return new spell_gen_allow_cast_from_item_only_SpellScript();
+ return new spell_gen_damage_reduction_AuraScript();
}
};
-enum Launch
+enum DefendVisuals
{
- SPELL_LAUNCH_NO_FALLING_DAMAGE = 66251
+ SPELL_VISUAL_SHIELD_1 = 63130,
+ SPELL_VISUAL_SHIELD_2 = 63131,
+ SPELL_VISUAL_SHIELD_3 = 63132
};
-class spell_gen_launch : public SpellScriptLoader
+class spell_gen_defend : public SpellScriptLoader
{
public:
- spell_gen_launch() : SpellScriptLoader("spell_gen_launch") {}
+ spell_gen_defend() : SpellScriptLoader("spell_gen_defend") { }
- class spell_gen_launch_SpellScript : public SpellScript
+ class spell_gen_defend_AuraScript : public AuraScript
{
- PrepareSpellScript(spell_gen_launch_SpellScript);
+ PrepareAuraScript(spell_gen_defend_AuraScript);
- void HandleScript(SpellEffIndex /*effIndex*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
- if (Player* player = GetHitPlayer())
- player->AddAura(SPELL_LAUNCH_NO_FALLING_DAMAGE, player); // prevents falling damage
+ if (!sSpellMgr->GetSpellInfo(SPELL_VISUAL_SHIELD_1))
+ return false;
+ if (!sSpellMgr->GetSpellInfo(SPELL_VISUAL_SHIELD_2))
+ return false;
+ if (!sSpellMgr->GetSpellInfo(SPELL_VISUAL_SHIELD_3))
+ return false;
+ return true;
}
- void Launch()
+ void RefreshVisualShields(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/)
{
- WorldLocation const* const position = GetExplTargetDest();
-
- if (Player* player = GetHitPlayer())
+ if (GetCaster())
{
- player->ExitVehicle();
-
- // A better research is needed
- // There is no spell for this, the following calculation was based on void Spell::CalculateJumpSpeeds
+ Unit* target = GetTarget();
- float speedZ = 10.0f;
- float dist = position->GetExactDist2d(player->GetPositionX(), player->GetPositionY());
- float speedXY = dist;
+ for (uint8 i = 0; i < GetSpellInfo()->StackAmount; ++i)
+ target->RemoveAurasDueToSpell(SPELL_VISUAL_SHIELD_1 + i);
- player->GetMotionMaster()->MoveJump(position->GetPositionX(), position->GetPositionY(), position->GetPositionZ(), speedXY, speedZ);
+ target->CastSpell(target, SPELL_VISUAL_SHIELD_1 + GetAura()->GetStackAmount() - 1, true, NULL, aurEff);
}
+ else
+ GetTarget()->RemoveAurasDueToSpell(GetId());
}
- void Register()
+ void RemoveVisualShields(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
- OnEffectHitTarget += SpellEffectFn(spell_gen_launch_SpellScript::HandleScript, EFFECT_1, SPELL_EFFECT_FORCE_CAST);
- AfterHit += SpellHitFn(spell_gen_launch_SpellScript::Launch);
+ for (uint8 i = 0; i < GetSpellInfo()->StackAmount; ++i)
+ GetTarget()->RemoveAurasDueToSpell(SPELL_VISUAL_SHIELD_1 + i);
}
- };
-
- SpellScript* GetSpellScript() const
- {
- return new spell_gen_launch_SpellScript();
- }
-};
-
-enum VehicleScaling
-{
- SPELL_GEAR_SCALING = 66668,
-};
-
-class spell_gen_vehicle_scaling : public SpellScriptLoader
-{
- public:
- spell_gen_vehicle_scaling() : SpellScriptLoader("spell_gen_vehicle_scaling") { }
-
- class spell_gen_vehicle_scaling_AuraScript : public AuraScript
- {
- PrepareAuraScript(spell_gen_vehicle_scaling_AuraScript);
- bool Load()
+ void RemoveDummyFromDriver(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
- return GetCaster() && GetCaster()->GetTypeId() == TYPEID_PLAYER;
+ if (Unit* caster = GetCaster())
+ if (TempSummon* vehicle = caster->ToTempSummon())
+ if (Unit* rider = vehicle->GetSummoner())
+ rider->RemoveAurasDueToSpell(GetId());
}
- void CalculateAmount(AuraEffect const* /*aurEff*/, int32& amount, bool& /*canBeRecalculated*/)
+ void Register() OVERRIDE
{
- Unit* caster = GetCaster();
- float factor;
- uint16 baseItemLevel;
+ SpellInfo const* spell = sSpellMgr->GetSpellInfo(m_scriptSpellId);
- /// @todo Reserach coeffs for different vehicles
- switch (GetId())
+ // Defend spells casted by NPCs (add visuals)
+ if (spell->Effects[EFFECT_0].ApplyAuraName == SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN)
{
- case SPELL_GEAR_SCALING:
- factor = 1.0f;
- baseItemLevel = 205;
- break;
- default:
- factor = 1.0f;
- baseItemLevel = 170;
- break;
+ AfterEffectApply += AuraEffectApplyFn(spell_gen_defend_AuraScript::RefreshVisualShields, EFFECT_0, SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
+ OnEffectRemove += AuraEffectRemoveFn(spell_gen_defend_AuraScript::RemoveVisualShields, EFFECT_0, SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN, AURA_EFFECT_HANDLE_CHANGE_AMOUNT_MASK);
}
- float avgILvl = caster->ToPlayer()->GetAverageItemLevel();
- if (avgILvl < baseItemLevel)
- return; /// @todo Research possibility of scaling down
-
- amount = uint16((avgILvl - baseItemLevel) * factor);
- }
+ // Remove Defend spell from player when he dismounts
+ if (spell->Effects[EFFECT_2].ApplyAuraName == SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN)
+ OnEffectRemove += AuraEffectRemoveFn(spell_gen_defend_AuraScript::RemoveDummyFromDriver, EFFECT_2, SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN, AURA_EFFECT_HANDLE_REAL);
- void Register()
- {
- DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_gen_vehicle_scaling_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_MOD_HEALING_PCT);
- DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_gen_vehicle_scaling_AuraScript::CalculateAmount, EFFECT_1, SPELL_AURA_MOD_DAMAGE_PERCENT_DONE);
- DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_gen_vehicle_scaling_AuraScript::CalculateAmount, EFFECT_2, SPELL_AURA_MOD_INCREASE_HEALTH_PERCENT);
+ // Defend spells casted by players (add/remove visuals)
+ if (spell->Effects[EFFECT_1].ApplyAuraName == SPELL_AURA_DUMMY)
+ {
+ AfterEffectApply += AuraEffectApplyFn(spell_gen_defend_AuraScript::RefreshVisualShields, EFFECT_1, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
+ OnEffectRemove += AuraEffectRemoveFn(spell_gen_defend_AuraScript::RemoveVisualShields, EFFECT_1, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_CHANGE_AMOUNT_MASK);
+ }
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
- return new spell_gen_vehicle_scaling_AuraScript();
+ return new spell_gen_defend_AuraScript();
}
};
-
-class spell_gen_oracle_wolvar_reputation : public SpellScriptLoader
+class spell_gen_despawn_self : public SpellScriptLoader
{
public:
- spell_gen_oracle_wolvar_reputation() : SpellScriptLoader("spell_gen_oracle_wolvar_reputation") { }
+ spell_gen_despawn_self() : SpellScriptLoader("spell_gen_despawn_self") { }
- class spell_gen_oracle_wolvar_reputation_SpellScript : public SpellScript
+ class spell_gen_despawn_self_SpellScript : public SpellScript
{
- PrepareSpellScript(spell_gen_oracle_wolvar_reputation_SpellScript);
+ PrepareSpellScript(spell_gen_despawn_self_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
- return GetCaster()->GetTypeId() == TYPEID_PLAYER;
+ return GetCaster()->GetTypeId() == TYPEID_UNIT;
}
void HandleDummy(SpellEffIndex effIndex)
{
- Player* player = GetCaster()->ToPlayer();
- uint32 factionId = GetSpellInfo()->Effects[effIndex].CalcValue();
- int32 repChange = GetSpellInfo()->Effects[EFFECT_1].CalcValue();
-
- FactionEntry const* factionEntry = sFactionStore.LookupEntry(factionId);
-
- if (!factionEntry)
- return;
-
- // Set rep to baserep + basepoints (expecting spillover for oposite faction -> become hated)
- // Not when player already has equal or higher rep with this faction
- if (player->GetReputationMgr().GetBaseReputation(factionEntry) < repChange)
- player->GetReputationMgr().SetReputation(factionEntry, repChange);
-
- // EFFECT_INDEX_2 most likely update at war state, we already handle this in SetReputation
+ if (GetSpellInfo()->Effects[effIndex].Effect == SPELL_EFFECT_DUMMY || GetSpellInfo()->Effects[effIndex].Effect == SPELL_EFFECT_SCRIPT_EFFECT)
+ GetCaster()->ToCreature()->DespawnOrUnsummon();
}
- void Register()
+ void Register() OVERRIDE
{
- OnEffectHit += SpellEffectFn(spell_gen_oracle_wolvar_reputation_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
+ OnEffectHitTarget += SpellEffectFn(spell_gen_despawn_self_SpellScript::HandleDummy, EFFECT_ALL, SPELL_EFFECT_ANY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
- return new spell_gen_oracle_wolvar_reputation_SpellScript();
+ return new spell_gen_despawn_self_SpellScript();
}
};
-enum DamageReductionAura
+enum DivineStormSpell
{
- SPELL_BLESSING_OF_SANCTUARY = 20911,
- SPELL_GREATER_BLESSING_OF_SANCTUARY = 25899,
- SPELL_RENEWED_HOPE = 63944,
- SPELL_VIGILANCE = 50720,
- SPELL_DAMAGE_REDUCTION_AURA = 68066,
+ SPELL_DIVINE_STORM = 53385,
};
-class spell_gen_damage_reduction_aura : public SpellScriptLoader
+// 70769 Divine Storm!
+class spell_gen_divine_storm_cd_reset : public SpellScriptLoader
{
public:
- spell_gen_damage_reduction_aura() : SpellScriptLoader("spell_gen_damage_reduction_aura") { }
+ spell_gen_divine_storm_cd_reset() : SpellScriptLoader("spell_gen_divine_storm_cd_reset") { }
- class spell_gen_damage_reduction_AuraScript : public AuraScript
+ class spell_gen_divine_storm_cd_reset_SpellScript : public SpellScript
{
- PrepareAuraScript(spell_gen_damage_reduction_AuraScript);
+ PrepareSpellScript(spell_gen_divine_storm_cd_reset_SpellScript);
- bool Validate(SpellInfo const* /*SpellEntry*/)
+ bool Load() OVERRIDE
{
- if (!sSpellMgr->GetSpellInfo(SPELL_DAMAGE_REDUCTION_AURA))
+ return GetCaster()->GetTypeId() == TYPEID_PLAYER;
+ }
+
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_DIVINE_STORM))
return false;
return true;
}
- void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ void HandleScript(SpellEffIndex /*effIndex*/)
{
- Unit* target = GetTarget();
- target->CastSpell(target, SPELL_DAMAGE_REDUCTION_AURA, true);
+ Player* caster = GetCaster()->ToPlayer();
+ if (caster->HasSpellCooldown(SPELL_DIVINE_STORM))
+ caster->RemoveSpellCooldown(SPELL_DIVINE_STORM, true);
}
- void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ void Register() OVERRIDE
{
- Unit* target = GetTarget();
- if (target->HasAura(SPELL_DAMAGE_REDUCTION_AURA) && !(target->HasAura(SPELL_BLESSING_OF_SANCTUARY) ||
- target->HasAura(SPELL_GREATER_BLESSING_OF_SANCTUARY) ||
- target->HasAura(SPELL_RENEWED_HOPE) ||
- target->HasAura(SPELL_VIGILANCE)))
- target->RemoveAurasDueToSpell(SPELL_DAMAGE_REDUCTION_AURA);
+ OnEffectHitTarget += SpellEffectFn(spell_gen_divine_storm_cd_reset_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_DUMMY);
}
+ };
+
+ SpellScript* GetSpellScript() const OVERRIDE
+ {
+ return new spell_gen_divine_storm_cd_reset_SpellScript();
+ }
+};
- void Register()
+class spell_gen_ds_flush_knockback : public SpellScriptLoader
+{
+ public:
+ spell_gen_ds_flush_knockback() : SpellScriptLoader("spell_gen_ds_flush_knockback") { }
+
+ class spell_gen_ds_flush_knockback_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_gen_ds_flush_knockback_SpellScript);
+
+ void HandleScript(SpellEffIndex /*effIndex*/)
{
- OnEffectApply += AuraEffectApplyFn(spell_gen_damage_reduction_AuraScript::OnApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
- OnEffectRemove += AuraEffectRemoveFn(spell_gen_damage_reduction_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
+ // Here the target is the water spout and determines the position where the player is knocked from
+ if (Unit* target = GetHitUnit())
+ {
+ if (Player* player = GetCaster()->ToPlayer())
+ {
+ float horizontalSpeed = 20.0f + (40.0f - GetCaster()->GetDistance(target));
+ float verticalSpeed = 8.0f;
+ // This method relies on the Dalaran Sewer map disposition and Water Spout position
+ // What we do is knock the player from a position exactly behind him and at the end of the pipe
+ player->KnockbackFrom(target->GetPositionX(), player->GetPositionY(), horizontalSpeed, verticalSpeed);
+ }
+ }
}
+ void Register() OVERRIDE
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_gen_ds_flush_knockback_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_DUMMY);
+ }
};
- AuraScript* GetAuraScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
- return new spell_gen_damage_reduction_AuraScript();
+ return new spell_gen_ds_flush_knockback_SpellScript();
}
};
enum DummyTrigger
{
SPELL_PERSISTANT_SHIELD_TRIGGERED = 26470,
- SPELL_PERSISTANT_SHIELD = 26467,
+ SPELL_PERSISTANT_SHIELD = 26467
};
class spell_gen_dummy_trigger : public SpellScriptLoader
@@ -1722,9 +1349,10 @@ class spell_gen_dummy_trigger : public SpellScriptLoader
{
PrepareSpellScript(spell_gen_dummy_trigger_SpellScript);
- bool Validate(SpellInfo const* /*SpellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
- if (!sSpellMgr->GetSpellInfo(SPELL_PERSISTANT_SHIELD_TRIGGERED) || !sSpellMgr->GetSpellInfo(SPELL_PERSISTANT_SHIELD))
+ if (!sSpellMgr->GetSpellInfo(SPELL_PERSISTANT_SHIELD_TRIGGERED) ||
+ !sSpellMgr->GetSpellInfo(SPELL_PERSISTANT_SHIELD))
return false;
return true;
}
@@ -1739,53 +1367,129 @@ class spell_gen_dummy_trigger : public SpellScriptLoader
caster->CastCustomSpell(target, SPELL_PERSISTANT_SHIELD_TRIGGERED, &damage, NULL, NULL, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_gen_dummy_trigger_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_gen_dummy_trigger_SpellScript();
}
-
};
-class spell_gen_spirit_healer_res : public SpellScriptLoader
+class spell_gen_dungeon_credit : public SpellScriptLoader
{
public:
- spell_gen_spirit_healer_res(): SpellScriptLoader("spell_gen_spirit_healer_res") { }
+ spell_gen_dungeon_credit() : SpellScriptLoader("spell_gen_dungeon_credit") { }
- class spell_gen_spirit_healer_res_SpellScript : public SpellScript
+ class spell_gen_dungeon_credit_SpellScript : public SpellScript
{
- PrepareSpellScript(spell_gen_spirit_healer_res_SpellScript);
+ PrepareSpellScript(spell_gen_dungeon_credit_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
- return GetOriginalCaster() && GetOriginalCaster()->GetTypeId() == TYPEID_PLAYER;
+ _handled = false;
+ return GetCaster()->GetTypeId() == TYPEID_UNIT;
}
- void HandleDummy(SpellEffIndex /* effIndex */)
+ void CreditEncounter()
{
- Player* originalCaster = GetOriginalCaster()->ToPlayer();
- if (Unit* target = GetHitUnit())
+ // This hook is executed for every target, make sure we only credit instance once
+ if (_handled)
+ return;
+
+ _handled = true;
+ Unit* caster = GetCaster();
+ if (InstanceScript* instance = caster->GetInstanceScript())
+ instance->UpdateEncounterState(ENCOUNTER_CREDIT_CAST_SPELL, GetSpellInfo()->Id, caster);
+ }
+
+ void Register() OVERRIDE
+ {
+ AfterHit += SpellHitFn(spell_gen_dungeon_credit_SpellScript::CreditEncounter);
+ }
+
+ private:
+ bool _handled;
+ };
+
+ SpellScript* GetSpellScript() const OVERRIDE
+ {
+ return new spell_gen_dungeon_credit_SpellScript();
+ }
+};
+
+enum EluneCandle
+{
+ // Creatures
+ NPC_OMEN = 15467,
+
+ // Spells
+ SPELL_ELUNE_CANDLE_OMEN_HEAD = 26622,
+ SPELL_ELUNE_CANDLE_OMEN_CHEST = 26624,
+ SPELL_ELUNE_CANDLE_OMEN_HAND_R = 26625,
+ SPELL_ELUNE_CANDLE_OMEN_HAND_L = 26649,
+ SPELL_ELUNE_CANDLE_NORMAL = 26636
+};
+
+class spell_gen_elune_candle : public SpellScriptLoader
+{
+ public:
+ spell_gen_elune_candle() : SpellScriptLoader("spell_gen_elune_candle") { }
+
+ class spell_gen_elune_candle_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_gen_elune_candle_SpellScript);
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_ELUNE_CANDLE_OMEN_HEAD) ||
+ !sSpellMgr->GetSpellInfo(SPELL_ELUNE_CANDLE_OMEN_CHEST) ||
+ !sSpellMgr->GetSpellInfo(SPELL_ELUNE_CANDLE_OMEN_HAND_R) ||
+ !sSpellMgr->GetSpellInfo(SPELL_ELUNE_CANDLE_OMEN_HAND_L) ||
+ !sSpellMgr->GetSpellInfo(SPELL_ELUNE_CANDLE_NORMAL))
+ return false;
+ return true;
+ }
+
+ void HandleScript(SpellEffIndex /*effIndex*/)
+ {
+ uint32 spellId = 0;
+
+ if (GetHitUnit()->GetEntry() == NPC_OMEN)
{
- WorldPacket data(SMSG_SPIRIT_HEALER_CONFIRM, 8);
- data << uint64(target->GetGUID());
- originalCaster->GetSession()->SendPacket(&data);
+ switch (urand(0, 3))
+ {
+ case 0:
+ spellId = SPELL_ELUNE_CANDLE_OMEN_HEAD;
+ break;
+ case 1:
+ spellId = SPELL_ELUNE_CANDLE_OMEN_CHEST;
+ break;
+ case 2:
+ spellId = SPELL_ELUNE_CANDLE_OMEN_HAND_R;
+ break;
+ case 3:
+ spellId = SPELL_ELUNE_CANDLE_OMEN_HAND_L;
+ break;
+ }
}
+ else
+ spellId = SPELL_ELUNE_CANDLE_NORMAL;
+
+ GetCaster()->CastSpell(GetHitUnit(), spellId, true, NULL);
}
- void Register()
+ void Register() OVERRIDE
{
- OnEffectHitTarget += SpellEffectFn(spell_gen_spirit_healer_res_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
+ OnEffectHitTarget += SpellEffectFn(spell_gen_elune_candle_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
- return new spell_gen_spirit_healer_res_SpellScript();
+ return new spell_gen_elune_candle_SpellScript();
}
};
@@ -1793,7 +1497,7 @@ enum TransporterBackfires
{
SPELL_TRANSPORTER_MALFUNCTION_POLYMORPH = 23444,
SPELL_TRANSPORTER_EVIL_TWIN = 23445,
- SPELL_TRANSPORTER_MALFUNCTION_MISS = 36902,
+ SPELL_TRANSPORTER_MALFUNCTION_MISS = 36902
};
class spell_gen_gadgetzan_transporter_backfire : public SpellScriptLoader
@@ -1805,10 +1509,11 @@ class spell_gen_gadgetzan_transporter_backfire : public SpellScriptLoader
{
PrepareSpellScript(spell_gen_gadgetzan_transporter_backfire_SpellScript)
- bool Validate(SpellInfo const* /*SpellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
- if (!sSpellMgr->GetSpellInfo(SPELL_TRANSPORTER_MALFUNCTION_POLYMORPH) || !sSpellMgr->GetSpellInfo(SPELL_TRANSPORTER_EVIL_TWIN)
- || !sSpellMgr->GetSpellInfo(SPELL_TRANSPORTER_MALFUNCTION_MISS))
+ if (!sSpellMgr->GetSpellInfo(SPELL_TRANSPORTER_MALFUNCTION_POLYMORPH) ||
+ !sSpellMgr->GetSpellInfo(SPELL_TRANSPORTER_EVIL_TWIN) ||
+ !sSpellMgr->GetSpellInfo(SPELL_TRANSPORTER_MALFUNCTION_MISS))
return false;
return true;
}
@@ -1825,22 +1530,75 @@ class spell_gen_gadgetzan_transporter_backfire : public SpellScriptLoader
caster->CastSpell(caster, SPELL_TRANSPORTER_MALFUNCTION_MISS, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_gen_gadgetzan_transporter_backfire_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_gen_gadgetzan_transporter_backfire_SpellScript();
}
};
+
+class spell_gen_gift_of_naaru : public SpellScriptLoader
+{
+ public:
+ spell_gen_gift_of_naaru() : SpellScriptLoader("spell_gen_gift_of_naaru") { }
+
+ class spell_gen_gift_of_naaru_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_gen_gift_of_naaru_AuraScript);
+
+ void CalculateAmount(AuraEffect const* aurEff, int32& amount, bool& /*canBeRecalculated*/)
+ {
+ if (!GetCaster())
+ return;
+
+ float heal = 0.0f;
+ switch (GetSpellInfo()->SpellFamilyName)
+ {
+ case SPELLFAMILY_MAGE:
+ case SPELLFAMILY_WARLOCK:
+ case SPELLFAMILY_PRIEST:
+ heal = 1.885f * float(GetCaster()->SpellBaseDamageBonusDone(GetSpellInfo()->GetSchoolMask()));
+ break;
+ case SPELLFAMILY_PALADIN:
+ case SPELLFAMILY_SHAMAN:
+ heal = std::max(1.885f * float(GetCaster()->SpellBaseDamageBonusDone(GetSpellInfo()->GetSchoolMask())), 1.1f * float(GetCaster()->GetTotalAttackPowerValue(BASE_ATTACK)));
+ break;
+ case SPELLFAMILY_WARRIOR:
+ case SPELLFAMILY_HUNTER:
+ case SPELLFAMILY_DEATHKNIGHT:
+ heal = 1.1f * float(std::max(GetCaster()->GetTotalAttackPowerValue(BASE_ATTACK), GetCaster()->GetTotalAttackPowerValue(RANGED_ATTACK)));
+ break;
+ case SPELLFAMILY_GENERIC:
+ default:
+ break;
+ }
+
+ int32 healTick = floor(heal / aurEff->GetTotalTicks());
+ amount += int32(std::max(healTick, 0));
+ }
+
+ void Register() OVERRIDE
+ {
+ DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_gen_gift_of_naaru_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_PERIODIC_HEAL);
+ }
+ };
+
+ AuraScript* GetAuraScript() const OVERRIDE
+ {
+ return new spell_gen_gift_of_naaru_AuraScript();
+ }
+};
+
enum GnomishTransporter
{
SPELL_TRANSPORTER_SUCCESS = 23441,
- SPELL_TRANSPORTER_FAILURE = 23446,
+ SPELL_TRANSPORTER_FAILURE = 23446
};
class spell_gen_gnomish_transporter : public SpellScriptLoader
@@ -1852,208 +1610,426 @@ class spell_gen_gnomish_transporter : public SpellScriptLoader
{
PrepareSpellScript(spell_gen_gnomish_transporter_SpellScript)
- bool Validate(SpellInfo const* /*SpellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
- if (!sSpellMgr->GetSpellInfo(SPELL_TRANSPORTER_SUCCESS) || !sSpellMgr->GetSpellInfo(SPELL_TRANSPORTER_FAILURE))
+ if (!sSpellMgr->GetSpellInfo(SPELL_TRANSPORTER_SUCCESS) ||
+ !sSpellMgr->GetSpellInfo(SPELL_TRANSPORTER_FAILURE))
return false;
return true;
}
void HandleDummy(SpellEffIndex /* effIndex */)
{
- Unit* caster = GetCaster();
- caster->CastSpell(caster, roll_chance_i(50) ? SPELL_TRANSPORTER_SUCCESS : SPELL_TRANSPORTER_FAILURE, true);
+ GetCaster()->CastSpell(GetCaster(), roll_chance_i(50) ? SPELL_TRANSPORTER_SUCCESS : SPELL_TRANSPORTER_FAILURE, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_gen_gnomish_transporter_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_gen_gnomish_transporter_SpellScript();
}
};
-enum DalaranDisguiseSpells
+class spell_gen_gunship_portal : public SpellScriptLoader
{
- SPELL_SUNREAVER_DISGUISE_TRIGGER = 69672,
- SPELL_SUNREAVER_DISGUISE_FEMALE = 70973,
- SPELL_SUNREAVER_DISGUISE_MALE = 70974,
+ public:
+ spell_gen_gunship_portal() : SpellScriptLoader("spell_gen_gunship_portal") { }
- SPELL_SILVER_COVENANT_DISGUISE_TRIGGER = 69673,
- SPELL_SILVER_COVENANT_DISGUISE_FEMALE = 70971,
- SPELL_SILVER_COVENANT_DISGUISE_MALE = 70972,
+ class spell_gen_gunship_portal_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_gen_gunship_portal_SpellScript);
+
+ bool Load() OVERRIDE
+ {
+ return GetCaster()->GetTypeId() == TYPEID_PLAYER;
+ }
+
+ void HandleScript(SpellEffIndex /*effIndex*/)
+ {
+ Player* caster = GetCaster()->ToPlayer();
+ if (Battleground* bg = caster->GetBattleground())
+ if (bg->GetTypeID(true) == BATTLEGROUND_IC)
+ bg->DoAction(1, caster->GetGUID());
+ }
+
+ void Register() OVERRIDE
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_gen_gunship_portal_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+ };
+
+ SpellScript* GetSpellScript() const OVERRIDE
+ {
+ return new spell_gen_gunship_portal_SpellScript();
+ }
};
-class spell_gen_dalaran_disguise : public SpellScriptLoader
+enum Launch
+{
+ SPELL_LAUNCH_NO_FALLING_DAMAGE = 66251
+};
+
+class spell_gen_launch : public SpellScriptLoader
{
public:
- spell_gen_dalaran_disguise(const char* name) : SpellScriptLoader(name) {}
+ spell_gen_launch() : SpellScriptLoader("spell_gen_launch") { }
- class spell_gen_dalaran_disguise_SpellScript : public SpellScript
+ class spell_gen_launch_SpellScript : public SpellScript
{
- PrepareSpellScript(spell_gen_dalaran_disguise_SpellScript);
- bool Validate(SpellInfo const* spellEntry)
+ PrepareSpellScript(spell_gen_launch_SpellScript);
+
+ void HandleScript(SpellEffIndex /*effIndex*/)
+ {
+ if (Player* player = GetHitPlayer())
+ player->AddAura(SPELL_LAUNCH_NO_FALLING_DAMAGE, player); // prevents falling damage
+ }
+
+ void Launch()
{
- switch (spellEntry->Id)
+ WorldLocation const* const position = GetExplTargetDest();
+
+ if (Player* player = GetHitPlayer())
{
- case SPELL_SUNREAVER_DISGUISE_TRIGGER:
- if (!sSpellMgr->GetSpellInfo(SPELL_SUNREAVER_DISGUISE_FEMALE) || !sSpellMgr->GetSpellInfo(SPELL_SUNREAVER_DISGUISE_MALE))
- return false;
- break;
- case SPELL_SILVER_COVENANT_DISGUISE_TRIGGER:
- if (!sSpellMgr->GetSpellInfo(SPELL_SILVER_COVENANT_DISGUISE_FEMALE) || !sSpellMgr->GetSpellInfo(SPELL_SILVER_COVENANT_DISGUISE_MALE))
- return false;
- break;
+ player->ExitVehicle();
+
+ // A better research is needed
+ // There is no spell for this, the following calculation was based on void Spell::CalculateJumpSpeeds
+
+ float speedZ = 10.0f;
+ float dist = position->GetExactDist2d(player->GetPositionX(), player->GetPositionY());
+ float speedXY = dist;
+
+ player->GetMotionMaster()->MoveJump(position->GetPositionX(), position->GetPositionY(), position->GetPositionZ(), speedXY, speedZ);
}
+ }
+
+ void Register() OVERRIDE
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_gen_launch_SpellScript::HandleScript, EFFECT_1, SPELL_EFFECT_FORCE_CAST);
+ AfterHit += SpellHitFn(spell_gen_launch_SpellScript::Launch);
+ }
+ };
+
+ SpellScript* GetSpellScript() const OVERRIDE
+ {
+ return new spell_gen_launch_SpellScript();
+ }
+};
+
+
+class spell_gen_lifeblood : public SpellScriptLoader
+{
+ public:
+ spell_gen_lifeblood() : SpellScriptLoader("spell_gen_lifeblood") { }
+
+ class spell_gen_lifeblood_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_gen_lifeblood_AuraScript);
+
+ void CalculateAmount(AuraEffect const* aurEff, int32& amount, bool& /*canBeRecalculated*/)
+ {
+ if (Unit* owner = GetUnitOwner())
+ amount += int32(CalculatePct(owner->GetMaxHealth(), 1.5f / aurEff->GetTotalTicks()));
+ }
+
+ void Register() OVERRIDE
+ {
+ DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_gen_lifeblood_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_PERIODIC_HEAL);
+ }
+ };
+
+ AuraScript* GetAuraScript() const OVERRIDE
+ {
+ return new spell_gen_lifeblood_AuraScript();
+ }
+};
+
+enum GenericLifebloom
+{
+ SPELL_HEXLORD_MALACRASS_LIFEBLOOM_FINAL_HEAL = 43422,
+ SPELL_TUR_RAGEPAW_LIFEBLOOM_FINAL_HEAL = 52552,
+ SPELL_CENARION_SCOUT_LIFEBLOOM_FINAL_HEAL = 53692,
+ SPELL_TWISTED_VISAGE_LIFEBLOOM_FINAL_HEAL = 57763,
+ SPELL_FACTION_CHAMPIONS_DRU_LIFEBLOOM_FINAL_HEAL = 66094
+};
+
+class spell_gen_lifebloom : public SpellScriptLoader
+{
+ public:
+ spell_gen_lifebloom(const char* name, uint32 spellId) : SpellScriptLoader(name), _spellId(spellId) { }
+
+ class spell_gen_lifebloom_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_gen_lifebloom_AuraScript);
+
+ public:
+ spell_gen_lifebloom_AuraScript(uint32 spellId) : AuraScript(), _spellId(spellId) { }
+
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
+ {
+ if (!sSpellMgr->GetSpellInfo(_spellId))
+ return false;
return true;
}
- void HandleScript(SpellEffIndex /*effIndex*/)
+ void AfterRemove(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/)
{
- if (Player* player = GetHitPlayer())
- {
- uint8 gender = player->getGender();
+ // Final heal only on duration end
+ if (GetTargetApplication()->GetRemoveMode() != AURA_REMOVE_BY_EXPIRE && GetTargetApplication()->GetRemoveMode() != AURA_REMOVE_BY_ENEMY_SPELL)
+ return;
- uint32 spellId = GetSpellInfo()->Id;
+ // final heal
+ GetTarget()->CastSpell(GetTarget(), _spellId, true, NULL, aurEff, GetCasterGUID());
+ }
- switch (spellId)
+ void Register() OVERRIDE
+ {
+ AfterEffectRemove += AuraEffectRemoveFn(spell_gen_lifebloom_AuraScript::AfterRemove, EFFECT_0, SPELL_AURA_PERIODIC_HEAL, AURA_EFFECT_HANDLE_REAL);
+ }
+
+ private:
+ uint32 _spellId;
+ };
+
+ AuraScript* GetAuraScript() const OVERRIDE
+ {
+ return new spell_gen_lifebloom_AuraScript(_spellId);
+ }
+
+ private:
+ uint32 _spellId;
+};
+
+enum MagicRoosterSpells
+{
+ SPELL_MAGIC_ROOSTER_NORMAL = 66122,
+ SPELL_MAGIC_ROOSTER_DRAENEI_MALE = 66123,
+ SPELL_MAGIC_ROOSTER_TAUREN_MALE = 66124
+};
+
+class spell_gen_magic_rooster : public SpellScriptLoader
+{
+ public:
+ spell_gen_magic_rooster() : SpellScriptLoader("spell_gen_magic_rooster") { }
+
+ class spell_gen_magic_rooster_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_gen_magic_rooster_SpellScript);
+
+ void HandleScript(SpellEffIndex effIndex)
+ {
+ PreventHitDefaultEffect(effIndex);
+ if (Player* target = GetHitPlayer())
+ {
+ // prevent client crashes from stacking mounts
+ target->RemoveAurasByType(SPELL_AURA_MOUNTED);
+
+ uint32 spellId = SPELL_MAGIC_ROOSTER_NORMAL;
+ switch (target->getRace())
{
- case SPELL_SUNREAVER_DISGUISE_TRIGGER:
- spellId = gender ? SPELL_SUNREAVER_DISGUISE_FEMALE : SPELL_SUNREAVER_DISGUISE_MALE;
+ case RACE_DRAENEI:
+ if (target->getGender() == GENDER_MALE)
+ spellId = SPELL_MAGIC_ROOSTER_DRAENEI_MALE;
break;
- case SPELL_SILVER_COVENANT_DISGUISE_TRIGGER:
- spellId = gender ? SPELL_SILVER_COVENANT_DISGUISE_FEMALE : SPELL_SILVER_COVENANT_DISGUISE_MALE;
+ case RACE_TAUREN:
+ if (target->getGender() == GENDER_MALE)
+ spellId = SPELL_MAGIC_ROOSTER_TAUREN_MALE;
break;
default:
break;
}
- GetCaster()->CastSpell(player, spellId, true);
+
+ target->CastSpell(target, spellId, true);
}
}
- void Register()
+ void Register() OVERRIDE
{
- OnEffectHitTarget += SpellEffectFn(spell_gen_dalaran_disguise_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ OnEffectHitTarget += SpellEffectFn(spell_gen_magic_rooster_SpellScript::HandleScript, EFFECT_2, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
- return new spell_gen_dalaran_disguise_SpellScript();
+ return new spell_gen_magic_rooster_SpellScript();
}
};
-/* DOCUMENTATION: Break-Shield spells
- Break-Shield spells can be classified in three groups:
+enum Mounts
+{
+ SPELL_COLD_WEATHER_FLYING = 54197,
- - Spells on vehicle bar used by players:
- + EFFECT_0: SCRIPT_EFFECT
- + EFFECT_1: NONE
- + EFFECT_2: NONE
- - Spells casted by players triggered by script:
- + EFFECT_0: SCHOOL_DAMAGE
- + EFFECT_1: SCRIPT_EFFECT
- + EFFECT_2: FORCE_CAST
- - Spells casted by NPCs on players:
- + EFFECT_0: SCHOOL_DAMAGE
- + EFFECT_1: SCRIPT_EFFECT
- + EFFECT_2: NONE
+ // Magic Broom
+ SPELL_MAGIC_BROOM_60 = 42680,
+ SPELL_MAGIC_BROOM_100 = 42683,
+ SPELL_MAGIC_BROOM_150 = 42667,
+ SPELL_MAGIC_BROOM_280 = 42668,
- In the following script we handle the SCRIPT_EFFECT for effIndex EFFECT_0 and EFFECT_1.
- - When handling EFFECT_0 we're in the "Spells on vehicle bar used by players" case
- and we'll trigger "Spells casted by players triggered by script"
- - When handling EFFECT_1 we're in the "Spells casted by players triggered by script"
- or "Spells casted by NPCs on players" so we'll search for the first defend layer and drop it.
-*/
+ // Headless Horseman's Mount
+ SPELL_HEADLESS_HORSEMAN_MOUNT_60 = 51621,
+ SPELL_HEADLESS_HORSEMAN_MOUNT_100 = 48024,
+ SPELL_HEADLESS_HORSEMAN_MOUNT_150 = 51617,
+ SPELL_HEADLESS_HORSEMAN_MOUNT_280 = 48023,
-enum BreakShieldSpells
-{
- SPELL_BREAK_SHIELD_DAMAGE_2K = 62626,
- SPELL_BREAK_SHIELD_DAMAGE_10K = 64590,
+ // Winged Steed of the Ebon Blade
+ SPELL_WINGED_STEED_150 = 54726,
+ SPELL_WINGED_STEED_280 = 54727,
- SPELL_BREAK_SHIELD_TRIGGER_FACTION_MOUNTS = 62575, // Also on ToC5 mounts
- SPELL_BREAK_SHIELD_TRIGGER_CAMPAING_WARHORSE = 64595,
- SPELL_BREAK_SHIELD_TRIGGER_UNK = 66480,
+ // Big Love Rocket
+ SPELL_BIG_LOVE_ROCKET_0 = 71343,
+ SPELL_BIG_LOVE_ROCKET_60 = 71344,
+ SPELL_BIG_LOVE_ROCKET_100 = 71345,
+ SPELL_BIG_LOVE_ROCKET_150 = 71346,
+ SPELL_BIG_LOVE_ROCKET_310 = 71347,
+
+ // Invincible
+ SPELL_INVINCIBLE_60 = 72281,
+ SPELL_INVINCIBLE_100 = 72282,
+ SPELL_INVINCIBLE_150 = 72283,
+ SPELL_INVINCIBLE_310 = 72284,
+
+ // Blazing Hippogryph
+ SPELL_BLAZING_HIPPOGRYPH_150 = 74854,
+ SPELL_BLAZING_HIPPOGRYPH_280 = 74855,
+
+ // Celestial Steed
+ SPELL_CELESTIAL_STEED_60 = 75619,
+ SPELL_CELESTIAL_STEED_100 = 75620,
+ SPELL_CELESTIAL_STEED_150 = 75617,
+ SPELL_CELESTIAL_STEED_280 = 75618,
+ SPELL_CELESTIAL_STEED_310 = 76153,
+
+ // X-53 Touring Rocket
+ SPELL_X53_TOURING_ROCKET_150 = 75957,
+ SPELL_X53_TOURING_ROCKET_280 = 75972,
+ SPELL_X53_TOURING_ROCKET_310 = 76154
};
-class spell_gen_break_shield: public SpellScriptLoader
+class spell_gen_mount : public SpellScriptLoader
{
public:
- spell_gen_break_shield(const char* name) : SpellScriptLoader(name) {}
+ spell_gen_mount(const char* name, uint32 mount0 = 0, uint32 mount60 = 0, uint32 mount100 = 0, uint32 mount150 = 0, uint32 mount280 = 0, uint32 mount310 = 0) : SpellScriptLoader(name),
+ _mount0(mount0), _mount60(mount60), _mount100(mount100), _mount150(mount150), _mount280(mount280), _mount310(mount310) { }
- class spell_gen_break_shield_SpellScript : public SpellScript
+ class spell_gen_mount_SpellScript : public SpellScript
{
- PrepareSpellScript(spell_gen_break_shield_SpellScript)
+ PrepareSpellScript(spell_gen_mount_SpellScript);
- void HandleScriptEffect(SpellEffIndex effIndex)
+ public:
+ spell_gen_mount_SpellScript(uint32 mount0, uint32 mount60, uint32 mount100, uint32 mount150, uint32 mount280, uint32 mount310) : SpellScript(),
+ _mount0(mount0), _mount60(mount60), _mount100(mount100), _mount150(mount150), _mount280(mount280), _mount310(mount310) { }
+
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
- Unit* target = GetHitUnit();
+ if (_mount0 && !sSpellMgr->GetSpellInfo(_mount0))
+ return false;
+ if (_mount60 && !sSpellMgr->GetSpellInfo(_mount60))
+ return false;
+ if (_mount100 && !sSpellMgr->GetSpellInfo(_mount100))
+ return false;
+ if (_mount150 && !sSpellMgr->GetSpellInfo(_mount150))
+ return false;
+ if (_mount280 && !sSpellMgr->GetSpellInfo(_mount280))
+ return false;
+ if (_mount310 && !sSpellMgr->GetSpellInfo(_mount310))
+ return false;
+ return true;
+ }
- switch (effIndex)
+ void HandleMount(SpellEffIndex effIndex)
+ {
+ PreventHitDefaultEffect(effIndex);
+
+ if (Player* target = GetHitPlayer())
{
- case EFFECT_0: // On spells wich trigger the damaging spell (and also the visual)
- {
- uint32 spellId;
+ // Prevent stacking of mounts and client crashes upon dismounting
+ target->RemoveAurasByType(SPELL_AURA_MOUNTED, 0, GetHitAura());
- switch (GetSpellInfo()->Id)
- {
- case SPELL_BREAK_SHIELD_TRIGGER_UNK:
- case SPELL_BREAK_SHIELD_TRIGGER_CAMPAING_WARHORSE:
- spellId = SPELL_BREAK_SHIELD_DAMAGE_10K;
- break;
- case SPELL_BREAK_SHIELD_TRIGGER_FACTION_MOUNTS:
- spellId = SPELL_BREAK_SHIELD_DAMAGE_2K;
- break;
- default:
- return;
- }
+ // Triggered spell id dependent on riding skill and zone
+ bool canFly = false;
+ uint32 map = GetVirtualMapForMapAndZone(target->GetMapId(), target->GetZoneId());
+ if (map == 530 || (map == 571 && target->HasSpell(SPELL_COLD_WEATHER_FLYING)))
+ canFly = true;
- if (Unit* rider = GetCaster()->GetCharmer())
- rider->CastSpell(target, spellId, false);
- else
- GetCaster()->CastSpell(target, spellId, false);
- break;
- }
- case EFFECT_1: // On damaging spells, for removing a defend layer
+ float x, y, z;
+ target->GetPosition(x, y, z);
+ uint32 areaFlag = target->GetBaseMap()->GetAreaFlag(x, y, z);
+ AreaTableEntry const* area = sAreaStore.LookupEntry(areaFlag);
+ if (!area || (canFly && (area->flags & AREA_FLAG_NO_FLY_ZONE)))
+ canFly = false;
+
+ uint32 mount = 0;
+ switch (target->GetBaseSkillValue(SKILL_RIDING))
{
- Unit::AuraApplicationMap const& auras = target->GetAppliedAuras();
- for (Unit::AuraApplicationMap::const_iterator itr = auras.begin(); itr != auras.end(); ++itr)
- {
- if (Aura* aura = itr->second->GetBase())
+ case 0:
+ mount = _mount0;
+ break;
+ case 75:
+ mount = _mount60;
+ break;
+ case 150:
+ mount = _mount100;
+ break;
+ case 225:
+ if (canFly)
+ mount = _mount150;
+ else
+ mount = _mount100;
+ break;
+ case 300:
+ if (canFly)
{
- SpellInfo const* auraInfo = aura->GetSpellInfo();
- if (auraInfo && auraInfo->SpellIconID == 2007 && aura->HasEffectType(SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN))
- {
- aura->ModStackAmount(-1, AURA_REMOVE_BY_ENEMY_SPELL);
- // Remove dummys from rider (Necessary for updating visual shields)
- if (Unit* rider = target->GetCharmer())
- if (Aura* defend = rider->GetAura(aura->GetId()))
- defend->ModStackAmount(-1, AURA_REMOVE_BY_ENEMY_SPELL);
- break;
- }
+ if (_mount310 && target->Has310Flyer(false))
+ mount = _mount310;
+ else
+ mount = _mount280;
}
- }
- break;
+ else
+ mount = _mount100;
+ break;
+ default:
+ break;
+ }
+
+ if (mount)
+ {
+ PreventHitAura();
+ target->CastSpell(target, mount, true);
}
- default:
- break;
}
}
- void Register()
+ void Register() OVERRIDE
{
- OnEffectHitTarget += SpellEffectFn(spell_gen_break_shield_SpellScript::HandleScriptEffect, EFFECT_FIRST_FOUND, SPELL_EFFECT_SCRIPT_EFFECT);
+ OnEffectHitTarget += SpellEffectFn(spell_gen_mount_SpellScript::HandleMount, EFFECT_2, SPELL_EFFECT_SCRIPT_EFFECT);
}
+
+ private:
+ uint32 _mount0;
+ uint32 _mount60;
+ uint32 _mount100;
+ uint32 _mount150;
+ uint32 _mount280;
+ uint32 _mount310;
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
- return new spell_gen_break_shield_SpellScript();
+ return new spell_gen_mount_SpellScript(_mount0, _mount60, _mount100, _mount150, _mount280, _mount310);
}
+
+ private:
+ uint32 _mount0;
+ uint32 _mount60;
+ uint32 _mount100;
+ uint32 _mount150;
+ uint32 _mount280;
+ uint32 _mount310;
};
/* DOCUMENTATION: Charge spells
@@ -2199,7 +2175,7 @@ class spell_gen_mounted_charge: public SpellScriptLoader
GetCaster()->CastSpell(GetHitUnit(), spellId, false);
}
- void Register()
+ void Register() OVERRIDE
{
SpellInfo const* spell = sSpellMgr->GetSpellInfo(m_scriptSpellId);
@@ -2211,291 +2187,296 @@ class spell_gen_mounted_charge: public SpellScriptLoader
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_gen_mounted_charge_SpellScript();
}
};
-enum DefendVisuals
+enum Netherbloom
{
- SPELL_VISUAL_SHIELD_1 = 63130,
- SPELL_VISUAL_SHIELD_2 = 63131,
- SPELL_VISUAL_SHIELD_3 = 63132,
+ SPELL_NETHERBLOOM_POLLEN_1 = 28703
};
-class spell_gen_defend : public SpellScriptLoader
+// 28702 - Netherbloom
+class spell_gen_netherbloom : public SpellScriptLoader
{
public:
- spell_gen_defend() : SpellScriptLoader("spell_gen_defend") { }
+ spell_gen_netherbloom() : SpellScriptLoader("spell_gen_netherbloom") { }
- class spell_gen_defend_AuraScript : public AuraScript
+ class spell_gen_netherbloom_SpellScript : public SpellScript
{
- PrepareAuraScript(spell_gen_defend_AuraScript);
+ PrepareSpellScript(spell_gen_netherbloom_SpellScript);
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
- if (!sSpellMgr->GetSpellInfo(SPELL_VISUAL_SHIELD_1))
- return false;
- if (!sSpellMgr->GetSpellInfo(SPELL_VISUAL_SHIELD_2))
- return false;
- if (!sSpellMgr->GetSpellInfo(SPELL_VISUAL_SHIELD_3))
- return false;
+ for (uint8 i = 0; i < 5; ++i)
+ if (!sSpellMgr->GetSpellInfo(SPELL_NETHERBLOOM_POLLEN_1 + i))
+ return false;
return true;
}
- void RefreshVisualShields(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/)
+ void HandleScript(SpellEffIndex effIndex)
{
- if (GetCaster())
- {
- Unit* target = GetTarget();
+ PreventHitDefaultEffect(effIndex);
- for (uint8 i = 0; i < GetSpellInfo()->StackAmount; ++i)
- target->RemoveAurasDueToSpell(SPELL_VISUAL_SHIELD_1 + i);
+ if (Unit* target = GetHitUnit())
+ {
+ // 25% chance of casting a random buff
+ if (roll_chance_i(75))
+ return;
- target->CastSpell(target, SPELL_VISUAL_SHIELD_1 + GetAura()->GetStackAmount() - 1, true, NULL, aurEff);
- }
- else
- GetTarget()->RemoveAurasDueToSpell(GetId());
- }
+ // triggered spells are 28703 to 28707
+ // Note: some sources say, that there was the possibility of
+ // receiving a debuff. However, this seems to be removed by a patch.
- void RemoveVisualShields(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
- {
- for (uint8 i = 0; i < GetSpellInfo()->StackAmount; ++i)
- GetTarget()->RemoveAurasDueToSpell(SPELL_VISUAL_SHIELD_1 + i);
- }
+ // don't overwrite an existing aura
+ for (uint8 i = 0; i < 5; ++i)
+ if (target->HasAura(SPELL_NETHERBLOOM_POLLEN_1 + i))
+ return;
- void RemoveDummyFromDriver(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
- {
- if (Unit* caster = GetCaster())
- if (TempSummon* vehicle = caster->ToTempSummon())
- if (Unit* rider = vehicle->GetSummoner())
- rider->RemoveAurasDueToSpell(GetId());
+ target->CastSpell(target, SPELL_NETHERBLOOM_POLLEN_1 + urand(0, 4), true);
+ }
}
- void Register()
+ void Register() OVERRIDE
{
- SpellInfo const* spell = sSpellMgr->GetSpellInfo(m_scriptSpellId);
-
- // Defend spells casted by NPCs (add visuals)
- if (spell->Effects[EFFECT_0].ApplyAuraName == SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN)
- {
- AfterEffectApply += AuraEffectApplyFn(spell_gen_defend_AuraScript::RefreshVisualShields, EFFECT_0, SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
- OnEffectRemove += AuraEffectRemoveFn(spell_gen_defend_AuraScript::RemoveVisualShields, EFFECT_0, SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN, AURA_EFFECT_HANDLE_CHANGE_AMOUNT_MASK);
- }
-
- // Remove Defend spell from player when he dismounts
- if (spell->Effects[EFFECT_2].ApplyAuraName == SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN)
- OnEffectRemove += AuraEffectRemoveFn(spell_gen_defend_AuraScript::RemoveDummyFromDriver, EFFECT_2, SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN, AURA_EFFECT_HANDLE_REAL);
-
- // Defend spells casted by players (add/remove visuals)
- if (spell->Effects[EFFECT_1].ApplyAuraName == SPELL_AURA_DUMMY)
- {
- AfterEffectApply += AuraEffectApplyFn(spell_gen_defend_AuraScript::RefreshVisualShields, EFFECT_1, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
- OnEffectRemove += AuraEffectRemoveFn(spell_gen_defend_AuraScript::RemoveVisualShields, EFFECT_1, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_CHANGE_AMOUNT_MASK);
- }
+ OnEffectHitTarget += SpellEffectFn(spell_gen_netherbloom_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- AuraScript* GetAuraScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
- return new spell_gen_defend_AuraScript();
+ return new spell_gen_netherbloom_SpellScript();
}
};
-enum MountedDuelSpells
+enum NightmareVine
{
- SPELL_ON_TOURNAMENT_MOUNT = 63034,
- SPELL_MOUNTED_DUEL = 62875,
+ SPELL_NIGHTMARE_POLLEN = 28721
};
-class spell_gen_tournament_duel : public SpellScriptLoader
+// 28720 - Nightmare Vine
+class spell_gen_nightmare_vine : public SpellScriptLoader
{
public:
- spell_gen_tournament_duel() : SpellScriptLoader("spell_gen_tournament_duel") { }
+ spell_gen_nightmare_vine() : SpellScriptLoader("spell_gen_nightmare_vine") { }
- class spell_gen_tournament_duel_SpellScript : public SpellScript
+ class spell_gen_nightmare_vine_SpellScript : public SpellScript
{
- PrepareSpellScript(spell_gen_tournament_duel_SpellScript);
+ PrepareSpellScript(spell_gen_nightmare_vine_SpellScript);
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
- if (!sSpellMgr->GetSpellInfo(SPELL_ON_TOURNAMENT_MOUNT))
- return false;
- if (!sSpellMgr->GetSpellInfo(SPELL_MOUNTED_DUEL))
+ if (!sSpellMgr->GetSpellInfo(SPELL_NIGHTMARE_POLLEN))
return false;
return true;
}
- void HandleScriptEffect(SpellEffIndex /*effIndex*/)
+ void HandleScript(SpellEffIndex effIndex)
{
- if (Unit* rider = GetCaster()->GetCharmer())
+ PreventHitDefaultEffect(effIndex);
+
+ if (Unit* target = GetHitUnit())
{
- if (Player* plrTarget = GetHitPlayer())
- {
- if (plrTarget->HasAura(SPELL_ON_TOURNAMENT_MOUNT) && plrTarget->GetVehicleBase())
- rider->CastSpell(plrTarget, SPELL_MOUNTED_DUEL, true);
- }
- else if (Unit* unitTarget = GetHitUnit())
- {
- if (unitTarget->GetCharmer() && unitTarget->GetCharmer()->GetTypeId() == TYPEID_PLAYER && unitTarget->GetCharmer()->HasAura(SPELL_ON_TOURNAMENT_MOUNT))
- rider->CastSpell(unitTarget->GetCharmer(), SPELL_MOUNTED_DUEL, true);
- }
+ // 25% chance of casting Nightmare Pollen
+ if (roll_chance_i(25))
+ target->CastSpell(target, SPELL_NIGHTMARE_POLLEN, true);
}
}
- void Register()
+ void Register() OVERRIDE
{
- OnEffectHitTarget += SpellEffectFn(spell_gen_tournament_duel_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ OnEffectHitTarget += SpellEffectFn(spell_gen_nightmare_vine_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
- return new spell_gen_tournament_duel_SpellScript();
+ return new spell_gen_nightmare_vine_SpellScript();
}
};
-enum TournamentMountsSpells
+enum ObsidianArmor
{
- SPELL_LANCE_EQUIPPED = 62853,
+ SPELL_GEN_OBSIDIAN_ARMOR_HOLY = 27536,
+ SPELL_GEN_OBSIDIAN_ARMOR_FIRE = 27533,
+ SPELL_GEN_OBSIDIAN_ARMOR_NATURE = 27538,
+ SPELL_GEN_OBSIDIAN_ARMOR_FROST = 27534,
+ SPELL_GEN_OBSIDIAN_ARMOR_SHADOW = 27535,
+ SPELL_GEN_OBSIDIAN_ARMOR_ARCANE = 27540
};
-class spell_gen_summon_tournament_mount : public SpellScriptLoader
+// 27539 - Obsidian Armor
+class spell_gen_obsidian_armor : public SpellScriptLoader
{
public:
- spell_gen_summon_tournament_mount() : SpellScriptLoader("spell_gen_summon_tournament_mount") { }
+ spell_gen_obsidian_armor() : SpellScriptLoader("spell_gen_obsidian_armor") { }
- class spell_gen_summon_tournament_mount_SpellScript : public SpellScript
+ class spell_gen_obsidian_armor_AuraScript : public AuraScript
{
- PrepareSpellScript(spell_gen_summon_tournament_mount_SpellScript);
+ PrepareAuraScript(spell_gen_obsidian_armor_AuraScript);
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
- if (!sSpellMgr->GetSpellInfo(SPELL_LANCE_EQUIPPED))
+ if (!sSpellMgr->GetSpellInfo(SPELL_GEN_OBSIDIAN_ARMOR_HOLY) ||
+ !sSpellMgr->GetSpellInfo(SPELL_GEN_OBSIDIAN_ARMOR_FIRE) ||
+ !sSpellMgr->GetSpellInfo(SPELL_GEN_OBSIDIAN_ARMOR_NATURE) ||
+ !sSpellMgr->GetSpellInfo(SPELL_GEN_OBSIDIAN_ARMOR_FROST) ||
+ !sSpellMgr->GetSpellInfo(SPELL_GEN_OBSIDIAN_ARMOR_SHADOW) ||
+ !sSpellMgr->GetSpellInfo(SPELL_GEN_OBSIDIAN_ARMOR_ARCANE))
return false;
return true;
}
- SpellCastResult CheckIfLanceEquiped()
+ bool CheckProc(ProcEventInfo& eventInfo)
{
- if (GetCaster()->IsInDisallowedMountForm())
- GetCaster()->RemoveAurasByType(SPELL_AURA_MOD_SHAPESHIFT);
+ if (eventInfo.GetDamageInfo()->GetSpellInfo()) // eventInfo.GetSpellInfo()
+ return false;
- if (!GetCaster()->HasAura(SPELL_LANCE_EQUIPPED))
+ if (GetFirstSchoolInMask(eventInfo.GetSchoolMask()) == SPELL_SCHOOL_NORMAL)
+ return false;
+
+ return true;
+ }
+
+ void OnProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo)
+ {
+ PreventDefaultAction();
+
+ uint32 spellId = 0;
+ switch (GetFirstSchoolInMask(eventInfo.GetSchoolMask()))
{
- SetCustomCastResultMessage(SPELL_CUSTOM_ERROR_MUST_HAVE_LANCE_EQUIPPED);
- return SPELL_FAILED_CUSTOM_ERROR;
+ case SPELL_SCHOOL_HOLY:
+ spellId = SPELL_GEN_OBSIDIAN_ARMOR_HOLY;
+ break;
+ case SPELL_SCHOOL_FIRE:
+ spellId = SPELL_GEN_OBSIDIAN_ARMOR_FIRE;
+ break;
+ case SPELL_SCHOOL_NATURE:
+ spellId = SPELL_GEN_OBSIDIAN_ARMOR_NATURE;
+ break;
+ case SPELL_SCHOOL_FROST:
+ spellId = SPELL_GEN_OBSIDIAN_ARMOR_FROST;
+ break;
+ case SPELL_SCHOOL_SHADOW:
+ spellId = SPELL_GEN_OBSIDIAN_ARMOR_SHADOW;
+ break;
+ case SPELL_SCHOOL_ARCANE:
+ spellId = SPELL_GEN_OBSIDIAN_ARMOR_ARCANE;
+ break;
+ default:
+ return;
}
-
- return SPELL_CAST_OK;
+ GetTarget()->CastSpell(GetTarget(), spellId, true, NULL, aurEff);
}
- void Register()
+ void Register() OVERRIDE
{
- OnCheckCast += SpellCheckCastFn(spell_gen_summon_tournament_mount_SpellScript::CheckIfLanceEquiped);
+ DoCheckProc += AuraCheckProcFn(spell_gen_obsidian_armor_AuraScript::CheckProc);
+ OnEffectProc += AuraEffectProcFn(spell_gen_obsidian_armor_AuraScript::OnProc, EFFECT_0, SPELL_AURA_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
- return new spell_gen_summon_tournament_mount_SpellScript();
+ return new spell_gen_obsidian_armor_AuraScript();
}
};
enum TournamentPennantSpells
{
- SPELL_PENNANT_STORMWIND_ASPIRANT = 62595,
- SPELL_PENNANT_STORMWIND_VALIANT = 62596,
- SPELL_PENNANT_STORMWIND_CHAMPION = 62594,
- SPELL_PENNANT_GNOMEREGAN_ASPIRANT = 63394,
- SPELL_PENNANT_GNOMEREGAN_VALIANT = 63395,
- SPELL_PENNANT_GNOMEREGAN_CHAMPION = 63396,
- SPELL_PENNANT_SEN_JIN_ASPIRANT = 63397,
- SPELL_PENNANT_SEN_JIN_VALIANT = 63398,
- SPELL_PENNANT_SEN_JIN_CHAMPION = 63399,
- SPELL_PENNANT_SILVERMOON_ASPIRANT = 63401,
- SPELL_PENNANT_SILVERMOON_VALIANT = 63402,
- SPELL_PENNANT_SILVERMOON_CHAMPION = 63403,
- SPELL_PENNANT_DARNASSUS_ASPIRANT = 63404,
- SPELL_PENNANT_DARNASSUS_VALIANT = 63405,
- SPELL_PENNANT_DARNASSUS_CHAMPION = 63406,
- SPELL_PENNANT_EXODAR_ASPIRANT = 63421,
- SPELL_PENNANT_EXODAR_VALIANT = 63422,
- SPELL_PENNANT_EXODAR_CHAMPION = 63423,
- SPELL_PENNANT_IRONFORGE_ASPIRANT = 63425,
- SPELL_PENNANT_IRONFORGE_VALIANT = 63426,
- SPELL_PENNANT_IRONFORGE_CHAMPION = 63427,
- SPELL_PENNANT_UNDERCITY_ASPIRANT = 63428,
- SPELL_PENNANT_UNDERCITY_VALIANT = 63429,
- SPELL_PENNANT_UNDERCITY_CHAMPION = 63430,
- SPELL_PENNANT_ORGRIMMAR_ASPIRANT = 63431,
- SPELL_PENNANT_ORGRIMMAR_VALIANT = 63432,
- SPELL_PENNANT_ORGRIMMAR_CHAMPION = 63433,
- SPELL_PENNANT_THUNDER_BLUFF_ASPIRANT = 63434,
- SPELL_PENNANT_THUNDER_BLUFF_VALIANT = 63435,
- SPELL_PENNANT_THUNDER_BLUFF_CHAMPION = 63436,
- SPELL_PENNANT_ARGENT_CRUSADE_ASPIRANT = 63606,
- SPELL_PENNANT_ARGENT_CRUSADE_VALIANT = 63500,
- SPELL_PENNANT_ARGENT_CRUSADE_CHAMPION = 63501,
- SPELL_PENNANT_EBON_BLADE_ASPIRANT = 63607,
- SPELL_PENNANT_EBON_BLADE_VALIANT = 63608,
- SPELL_PENNANT_EBON_BLADE_CHAMPION = 63609,
+ SPELL_PENNANT_STORMWIND_ASPIRANT = 62595,
+ SPELL_PENNANT_STORMWIND_VALIANT = 62596,
+ SPELL_PENNANT_STORMWIND_CHAMPION = 62594,
+ SPELL_PENNANT_GNOMEREGAN_ASPIRANT = 63394,
+ SPELL_PENNANT_GNOMEREGAN_VALIANT = 63395,
+ SPELL_PENNANT_GNOMEREGAN_CHAMPION = 63396,
+ SPELL_PENNANT_SEN_JIN_ASPIRANT = 63397,
+ SPELL_PENNANT_SEN_JIN_VALIANT = 63398,
+ SPELL_PENNANT_SEN_JIN_CHAMPION = 63399,
+ SPELL_PENNANT_SILVERMOON_ASPIRANT = 63401,
+ SPELL_PENNANT_SILVERMOON_VALIANT = 63402,
+ SPELL_PENNANT_SILVERMOON_CHAMPION = 63403,
+ SPELL_PENNANT_DARNASSUS_ASPIRANT = 63404,
+ SPELL_PENNANT_DARNASSUS_VALIANT = 63405,
+ SPELL_PENNANT_DARNASSUS_CHAMPION = 63406,
+ SPELL_PENNANT_EXODAR_ASPIRANT = 63421,
+ SPELL_PENNANT_EXODAR_VALIANT = 63422,
+ SPELL_PENNANT_EXODAR_CHAMPION = 63423,
+ SPELL_PENNANT_IRONFORGE_ASPIRANT = 63425,
+ SPELL_PENNANT_IRONFORGE_VALIANT = 63426,
+ SPELL_PENNANT_IRONFORGE_CHAMPION = 63427,
+ SPELL_PENNANT_UNDERCITY_ASPIRANT = 63428,
+ SPELL_PENNANT_UNDERCITY_VALIANT = 63429,
+ SPELL_PENNANT_UNDERCITY_CHAMPION = 63430,
+ SPELL_PENNANT_ORGRIMMAR_ASPIRANT = 63431,
+ SPELL_PENNANT_ORGRIMMAR_VALIANT = 63432,
+ SPELL_PENNANT_ORGRIMMAR_CHAMPION = 63433,
+ SPELL_PENNANT_THUNDER_BLUFF_ASPIRANT = 63434,
+ SPELL_PENNANT_THUNDER_BLUFF_VALIANT = 63435,
+ SPELL_PENNANT_THUNDER_BLUFF_CHAMPION = 63436,
+ SPELL_PENNANT_ARGENT_CRUSADE_ASPIRANT = 63606,
+ SPELL_PENNANT_ARGENT_CRUSADE_VALIANT = 63500,
+ SPELL_PENNANT_ARGENT_CRUSADE_CHAMPION = 63501,
+ SPELL_PENNANT_EBON_BLADE_ASPIRANT = 63607,
+ SPELL_PENNANT_EBON_BLADE_VALIANT = 63608,
+ SPELL_PENNANT_EBON_BLADE_CHAMPION = 63609
};
enum TournamentMounts
{
- NPC_STORMWIND_STEED = 33217,
- NPC_IRONFORGE_RAM = 33316,
- NPC_GNOMEREGAN_MECHANOSTRIDER = 33317,
- NPC_EXODAR_ELEKK = 33318,
- NPC_DARNASSIAN_NIGHTSABER = 33319,
- NPC_ORGRIMMAR_WOLF = 33320,
- NPC_DARK_SPEAR_RAPTOR = 33321,
- NPC_THUNDER_BLUFF_KODO = 33322,
- NPC_SILVERMOON_HAWKSTRIDER = 33323,
- NPC_FORSAKEN_WARHORSE = 33324,
- NPC_ARGENT_WARHORSE = 33782,
- NPC_ARGENT_STEED_ASPIRANT = 33845,
- NPC_ARGENT_HAWKSTRIDER_ASPIRANT = 33844,
+ NPC_STORMWIND_STEED = 33217,
+ NPC_IRONFORGE_RAM = 33316,
+ NPC_GNOMEREGAN_MECHANOSTRIDER = 33317,
+ NPC_EXODAR_ELEKK = 33318,
+ NPC_DARNASSIAN_NIGHTSABER = 33319,
+ NPC_ORGRIMMAR_WOLF = 33320,
+ NPC_DARK_SPEAR_RAPTOR = 33321,
+ NPC_THUNDER_BLUFF_KODO = 33322,
+ NPC_SILVERMOON_HAWKSTRIDER = 33323,
+ NPC_FORSAKEN_WARHORSE = 33324,
+ NPC_ARGENT_WARHORSE = 33782,
+ NPC_ARGENT_STEED_ASPIRANT = 33845,
+ NPC_ARGENT_HAWKSTRIDER_ASPIRANT = 33844
};
enum TournamentQuestsAchievements
{
- ACHIEVEMENT_CHAMPION_STORMWIND = 2781,
- ACHIEVEMENT_CHAMPION_DARNASSUS = 2777,
- ACHIEVEMENT_CHAMPION_IRONFORGE = 2780,
- ACHIEVEMENT_CHAMPION_GNOMEREGAN = 2779,
- ACHIEVEMENT_CHAMPION_THE_EXODAR = 2778,
- ACHIEVEMENT_CHAMPION_ORGRIMMAR = 2783,
- ACHIEVEMENT_CHAMPION_SEN_JIN = 2784,
- ACHIEVEMENT_CHAMPION_THUNDER_BLUFF = 2786,
- ACHIEVEMENT_CHAMPION_UNDERCITY = 2787,
- ACHIEVEMENT_CHAMPION_SILVERMOON = 2785,
- ACHIEVEMENT_ARGENT_VALOR = 2758,
- ACHIEVEMENT_CHAMPION_ALLIANCE = 2782,
- ACHIEVEMENT_CHAMPION_HORDE = 2788,
-
- QUEST_VALIANT_OF_STORMWIND = 13593,
- QUEST_A_VALIANT_OF_STORMWIND = 13684,
- QUEST_VALIANT_OF_DARNASSUS = 13706,
- QUEST_A_VALIANT_OF_DARNASSUS = 13689,
- QUEST_VALIANT_OF_IRONFORGE = 13703,
- QUEST_A_VALIANT_OF_IRONFORGE = 13685,
- QUEST_VALIANT_OF_GNOMEREGAN = 13704,
- QUEST_A_VALIANT_OF_GNOMEREGAN = 13688,
- QUEST_VALIANT_OF_THE_EXODAR = 13705,
- QUEST_A_VALIANT_OF_THE_EXODAR = 13690,
- QUEST_VALIANT_OF_ORGRIMMAR = 13707,
- QUEST_A_VALIANT_OF_ORGRIMMAR = 13691,
- QUEST_VALIANT_OF_SEN_JIN = 13708,
- QUEST_A_VALIANT_OF_SEN_JIN = 13693,
- QUEST_VALIANT_OF_THUNDER_BLUFF = 13709,
- QUEST_A_VALIANT_OF_THUNDER_BLUFF = 13694,
- QUEST_VALIANT_OF_UNDERCITY = 13710,
- QUEST_A_VALIANT_OF_UNDERCITY = 13695,
- QUEST_VALIANT_OF_SILVERMOON = 13711,
- QUEST_A_VALIANT_OF_SILVERMOON = 13696,
+ ACHIEVEMENT_CHAMPION_STORMWIND = 2781,
+ ACHIEVEMENT_CHAMPION_DARNASSUS = 2777,
+ ACHIEVEMENT_CHAMPION_IRONFORGE = 2780,
+ ACHIEVEMENT_CHAMPION_GNOMEREGAN = 2779,
+ ACHIEVEMENT_CHAMPION_THE_EXODAR = 2778,
+ ACHIEVEMENT_CHAMPION_ORGRIMMAR = 2783,
+ ACHIEVEMENT_CHAMPION_SEN_JIN = 2784,
+ ACHIEVEMENT_CHAMPION_THUNDER_BLUFF = 2786,
+ ACHIEVEMENT_CHAMPION_UNDERCITY = 2787,
+ ACHIEVEMENT_CHAMPION_SILVERMOON = 2785,
+ ACHIEVEMENT_ARGENT_VALOR = 2758,
+ ACHIEVEMENT_CHAMPION_ALLIANCE = 2782,
+ ACHIEVEMENT_CHAMPION_HORDE = 2788,
+
+ QUEST_VALIANT_OF_STORMWIND = 13593,
+ QUEST_A_VALIANT_OF_STORMWIND = 13684,
+ QUEST_VALIANT_OF_DARNASSUS = 13706,
+ QUEST_A_VALIANT_OF_DARNASSUS = 13689,
+ QUEST_VALIANT_OF_IRONFORGE = 13703,
+ QUEST_A_VALIANT_OF_IRONFORGE = 13685,
+ QUEST_VALIANT_OF_GNOMEREGAN = 13704,
+ QUEST_A_VALIANT_OF_GNOMEREGAN = 13688,
+ QUEST_VALIANT_OF_THE_EXODAR = 13705,
+ QUEST_A_VALIANT_OF_THE_EXODAR = 13690,
+ QUEST_VALIANT_OF_ORGRIMMAR = 13707,
+ QUEST_A_VALIANT_OF_ORGRIMMAR = 13691,
+ QUEST_VALIANT_OF_SEN_JIN = 13708,
+ QUEST_A_VALIANT_OF_SEN_JIN = 13693,
+ QUEST_VALIANT_OF_THUNDER_BLUFF = 13709,
+ QUEST_A_VALIANT_OF_THUNDER_BLUFF = 13694,
+ QUEST_VALIANT_OF_UNDERCITY = 13710,
+ QUEST_A_VALIANT_OF_UNDERCITY = 13695,
+ QUEST_VALIANT_OF_SILVERMOON = 13711,
+ QUEST_A_VALIANT_OF_SILVERMOON = 13696
};
class spell_gen_on_tournament_mount : public SpellScriptLoader
@@ -2509,7 +2490,7 @@ class spell_gen_on_tournament_mount : public SpellScriptLoader
uint32 _pennantSpellId;
- bool Load()
+ bool Load() OVERRIDE
{
_pennantSpellId = 0;
return GetCaster() && GetCaster()->GetTypeId() == TYPEID_PLAYER;
@@ -2643,389 +2624,512 @@ class spell_gen_on_tournament_mount : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectApply += AuraEffectApplyFn(spell_gen_on_tournament_mount_AuraScript::HandleApplyEffect, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
OnEffectRemove += AuraEffectRemoveFn(spell_gen_on_tournament_mount_AuraScript::HandleRemoveEffect, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_gen_on_tournament_mount_AuraScript();
}
};
-class spell_gen_tournament_pennant : public SpellScriptLoader
+class spell_gen_oracle_wolvar_reputation : public SpellScriptLoader
{
public:
- spell_gen_tournament_pennant() : SpellScriptLoader("spell_gen_tournament_pennant") { }
+ spell_gen_oracle_wolvar_reputation() : SpellScriptLoader("spell_gen_oracle_wolvar_reputation") { }
- class spell_gen_tournament_pennant_AuraScript : public AuraScript
+ class spell_gen_oracle_wolvar_reputation_SpellScript : public SpellScript
{
- PrepareAuraScript(spell_gen_tournament_pennant_AuraScript);
+ PrepareSpellScript(spell_gen_oracle_wolvar_reputation_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
- return GetCaster() && GetCaster()->GetTypeId() == TYPEID_PLAYER;
+ return GetCaster()->GetTypeId() == TYPEID_PLAYER;
}
- void HandleApplyEffect(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ void HandleDummy(SpellEffIndex effIndex)
{
- if (Unit* caster = GetCaster())
- if (!caster->GetVehicleBase())
- caster->RemoveAurasDueToSpell(GetId());
+ Player* player = GetCaster()->ToPlayer();
+ uint32 factionId = GetSpellInfo()->Effects[effIndex].CalcValue();
+ int32 repChange = GetSpellInfo()->Effects[EFFECT_1].CalcValue();
+
+ FactionEntry const* factionEntry = sFactionStore.LookupEntry(factionId);
+
+ if (!factionEntry)
+ return;
+
+ // Set rep to baserep + basepoints (expecting spillover for oposite faction -> become hated)
+ // Not when player already has equal or higher rep with this faction
+ if (player->GetReputationMgr().GetBaseReputation(factionEntry) < repChange)
+ player->GetReputationMgr().SetReputation(factionEntry, repChange);
+
+ // EFFECT_INDEX_2 most likely update at war state, we already handle this in SetReputation
}
- void Register()
+ void Register() OVERRIDE
{
- OnEffectApply += AuraEffectApplyFn(spell_gen_tournament_pennant_AuraScript::HandleApplyEffect, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
+ OnEffectHit += SpellEffectFn(spell_gen_oracle_wolvar_reputation_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
- return new spell_gen_tournament_pennant_AuraScript();
+ return new spell_gen_oracle_wolvar_reputation_SpellScript();
}
};
-enum ChaosBlast
+enum OrcDisguiseSpells
{
- SPELL_CHAOS_BLAST = 37675,
+ SPELL_ORC_DISGUISE_TRIGGER = 45759,
+ SPELL_ORC_DISGUISE_MALE = 45760,
+ SPELL_ORC_DISGUISE_FEMALE = 45762
};
-class spell_gen_chaos_blast : public SpellScriptLoader
+class spell_gen_orc_disguise : public SpellScriptLoader
{
public:
- spell_gen_chaos_blast() : SpellScriptLoader("spell_gen_chaos_blast") { }
+ spell_gen_orc_disguise() : SpellScriptLoader("spell_gen_orc_disguise") { }
- class spell_gen_chaos_blast_SpellScript : public SpellScript
+ class spell_gen_orc_disguise_SpellScript : public SpellScript
{
- PrepareSpellScript(spell_gen_chaos_blast_SpellScript)
+ PrepareSpellScript(spell_gen_orc_disguise_SpellScript);
- bool Validate(SpellInfo const* /*SpellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
- if (!sSpellMgr->GetSpellInfo(SPELL_CHAOS_BLAST))
+ if (!sSpellMgr->GetSpellInfo(SPELL_ORC_DISGUISE_TRIGGER) ||
+ !sSpellMgr->GetSpellInfo(SPELL_ORC_DISGUISE_MALE) ||
+ !sSpellMgr->GetSpellInfo(SPELL_ORC_DISGUISE_FEMALE))
return false;
return true;
}
- void HandleDummy(SpellEffIndex /* effIndex */)
+
+ void HandleScript(SpellEffIndex /*effIndex*/)
{
- int32 basepoints0 = 100;
Unit* caster = GetCaster();
- if (Unit* target = GetHitUnit())
- caster->CastCustomSpell(target, SPELL_CHAOS_BLAST, &basepoints0, NULL, NULL, true);
+ if (Player* target = GetHitPlayer())
+ {
+ uint8 gender = target->getGender();
+ if (!gender)
+ caster->CastSpell(target, SPELL_ORC_DISGUISE_MALE, true);
+ else
+ caster->CastSpell(target, SPELL_ORC_DISGUISE_FEMALE, true);
+ }
}
- void Register()
+ void Register() OVERRIDE
{
- OnEffectHitTarget += SpellEffectFn(spell_gen_chaos_blast_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
+ OnEffectHitTarget += SpellEffectFn(spell_gen_orc_disguise_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
- return new spell_gen_chaos_blast_SpellScript();
+ return new spell_gen_orc_disguise_SpellScript();
}
+};
+enum ParachuteSpells
+{
+ SPELL_PARACHUTE = 45472,
+ SPELL_PARACHUTE_BUFF = 44795,
};
-class spell_gen_ds_flush_knockback : public SpellScriptLoader
+// 45472 Parachute
+class spell_gen_parachute : public SpellScriptLoader
{
public:
- spell_gen_ds_flush_knockback() : SpellScriptLoader("spell_gen_ds_flush_knockback") {}
+ spell_gen_parachute() : SpellScriptLoader("spell_gen_parachute") { }
- class spell_gen_ds_flush_knockback_SpellScript : public SpellScript
+ class spell_gen_parachute_AuraScript : public AuraScript
{
- PrepareSpellScript(spell_gen_ds_flush_knockback_SpellScript);
+ PrepareAuraScript(spell_gen_parachute_AuraScript);
- void HandleScript(SpellEffIndex /*effIndex*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
- // Here the target is the water spout and determines the position where the player is knocked from
- if (Unit* target = GetHitUnit())
- {
- if (Player* player = GetCaster()->ToPlayer())
+ if (!sSpellMgr->GetSpellInfo(SPELL_PARACHUTE) ||
+ !sSpellMgr->GetSpellInfo(SPELL_PARACHUTE_BUFF))
+ return false;
+ return true;
+ }
+
+ void HandleEffectPeriodic(AuraEffect const* /*aurEff*/)
+ {
+ if (Player* target = GetTarget()->ToPlayer())
+ if (target->IsFalling())
{
- float horizontalSpeed = 20.0f + (40.0f - GetCaster()->GetDistance(target));
- float verticalSpeed = 8.0f;
- // This method relies on the Dalaran Sewer map disposition and Water Spout position
- // What we do is knock the player from a position exactly behind him and at the end of the pipe
- player->KnockbackFrom(target->GetPositionX(), player->GetPositionY(), horizontalSpeed, verticalSpeed);
+ target->RemoveAurasDueToSpell(SPELL_PARACHUTE);
+ target->CastSpell(target, SPELL_PARACHUTE_BUFF, true);
}
- }
}
- void Register()
+ void Register() OVERRIDE
{
- OnEffectHitTarget += SpellEffectFn(spell_gen_ds_flush_knockback_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_DUMMY);
+ OnEffectPeriodic += AuraEffectPeriodicFn(spell_gen_parachute_AuraScript::HandleEffectPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
- return new spell_gen_ds_flush_knockback_SpellScript();
+ return new spell_gen_parachute_AuraScript();
}
};
-class spell_gen_wg_water : public SpellScriptLoader
+enum ParachuteIC
+{
+ SPELL_PARACHUTE_IC = 66657
+};
+
+class spell_gen_parachute_ic : public SpellScriptLoader
{
public:
- spell_gen_wg_water() : SpellScriptLoader("spell_gen_wg_water") {}
+ spell_gen_parachute_ic() : SpellScriptLoader("spell_gen_parachute_ic") { }
- class spell_gen_wg_water_SpellScript : public SpellScript
+ class spell_gen_parachute_ic_AuraScript : public AuraScript
{
- PrepareSpellScript(spell_gen_wg_water_SpellScript);
+ PrepareAuraScript(spell_gen_parachute_ic_AuraScript)
- SpellCastResult CheckCast()
+ void HandleTriggerSpell(AuraEffect const* /*aurEff*/)
{
- if (!GetSpellInfo()->CheckTargetCreatureType(GetCaster()))
- return SPELL_FAILED_DONT_REPORT;
- return SPELL_CAST_OK;
+ if (Player* target = GetTarget()->ToPlayer())
+ if (target->m_movementInfo.fallTime > 2000)
+ target->CastSpell(target, SPELL_PARACHUTE_IC, true);
}
- void Register()
+ void Register() OVERRIDE
{
- OnCheckCast += SpellCheckCastFn(spell_gen_wg_water_SpellScript::CheckCast);
+ OnEffectPeriodic += AuraEffectPeriodicFn(spell_gen_parachute_ic_AuraScript::HandleTriggerSpell, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
}
};
- SpellScript* GetSpellScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
- return new spell_gen_wg_water_SpellScript();
+ return new spell_gen_parachute_ic_AuraScript();
}
};
-class spell_gen_count_pct_from_max_hp : public SpellScriptLoader
+enum PetSummoned
+{
+ NPC_DOOMGUARD = 11859,
+ NPC_INFERNAL = 89,
+ NPC_IMP = 416
+};
+
+class spell_gen_pet_summoned : public SpellScriptLoader
{
public:
- spell_gen_count_pct_from_max_hp(char const* name, int32 damagePct = 0) : SpellScriptLoader(name), _damagePct(damagePct) { }
+ spell_gen_pet_summoned() : SpellScriptLoader("spell_gen_pet_summoned") { }
- class spell_gen_count_pct_from_max_hp_SpellScript : public SpellScript
+ class spell_gen_pet_summoned_SpellScript : public SpellScript
{
- PrepareSpellScript(spell_gen_count_pct_from_max_hp_SpellScript)
+ PrepareSpellScript(spell_gen_pet_summoned_SpellScript);
- public:
- spell_gen_count_pct_from_max_hp_SpellScript(int32 damagePct) : SpellScript(), _damagePct(damagePct) { }
+ bool Load() OVERRIDE
+ {
+ return GetCaster()->GetTypeId() == TYPEID_PLAYER;
+ }
- void RecalculateDamage()
+ void HandleScript(SpellEffIndex /*effIndex*/)
{
- if (!_damagePct)
- _damagePct = GetHitDamage();
+ Player* player = GetCaster()->ToPlayer();
+ if (player->GetLastPetNumber())
+ {
+ PetType newPetType = (player->getClass() == CLASS_HUNTER) ? HUNTER_PET : SUMMON_PET;
+ if (Pet* newPet = new Pet(player, newPetType))
+ {
+ if (newPet->LoadPetFromDB(player, 0, player->GetLastPetNumber(), true))
+ {
+ // revive the pet if it is dead
+ if (newPet->getDeathState() == DEAD)
+ newPet->setDeathState(ALIVE);
- SetHitDamage(GetHitUnit()->CountPctFromMaxHealth(_damagePct));
+ newPet->SetFullHealth();
+ newPet->SetPower(newPet->getPowerType(), newPet->GetMaxPower(newPet->getPowerType()));
+
+ switch (newPet->GetEntry())
+ {
+ case NPC_DOOMGUARD:
+ case NPC_INFERNAL:
+ newPet->SetEntry(NPC_IMP);
+ break;
+ default:
+ break;
+ }
+ }
+ else
+ delete newPet;
+ }
+ }
}
- void Register()
+ void Register() OVERRIDE
{
- OnHit += SpellHitFn(spell_gen_count_pct_from_max_hp_SpellScript::RecalculateDamage);
+ OnEffectHitTarget += SpellEffectFn(spell_gen_pet_summoned_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
-
- private:
- int32 _damagePct;
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
- return new spell_gen_count_pct_from_max_hp_SpellScript(_damagePct);
+ return new spell_gen_pet_summoned_SpellScript();
}
-
- private:
- int32 _damagePct;
};
-class spell_gen_despawn_self : public SpellScriptLoader
+class spell_gen_profession_research : public SpellScriptLoader
{
-public:
- spell_gen_despawn_self() : SpellScriptLoader("spell_gen_despawn_self") { }
-
- class spell_gen_despawn_self_SpellScript : public SpellScript
- {
- PrepareSpellScript(spell_gen_despawn_self_SpellScript);
+ public:
+ spell_gen_profession_research() : SpellScriptLoader("spell_gen_profession_research") { }
- bool Load()
+ class spell_gen_profession_research_SpellScript : public SpellScript
{
- return GetCaster()->GetTypeId() == TYPEID_UNIT;
- }
+ PrepareSpellScript(spell_gen_profession_research_SpellScript);
- void HandleDummy(SpellEffIndex effIndex)
- {
- if (GetSpellInfo()->Effects[effIndex].Effect == SPELL_EFFECT_DUMMY || GetSpellInfo()->Effects[effIndex].Effect == SPELL_EFFECT_SCRIPT_EFFECT)
- GetCaster()->ToCreature()->DespawnOrUnsummon();
- }
+ bool Load() OVERRIDE
+ {
+ return GetCaster()->GetTypeId() == TYPEID_PLAYER;
+ }
+
+ SpellCastResult CheckRequirement()
+ {
+ if (HasDiscoveredAllSpells(GetSpellInfo()->Id, GetCaster()->ToPlayer()))
+ {
+ SetCustomCastResultMessage(SPELL_CUSTOM_ERROR_NOTHING_TO_DISCOVER);
+ return SPELL_FAILED_CUSTOM_ERROR;
+ }
+
+ return SPELL_CAST_OK;
+ }
+
+ void HandleScript(SpellEffIndex /*effIndex*/)
+ {
+ Player* caster = GetCaster()->ToPlayer();
+ uint32 spellId = GetSpellInfo()->Id;
+
+ // learn random explicit discovery recipe (if any)
+ if (uint32 discoveredSpellId = GetExplicitDiscoverySpell(spellId, caster))
+ caster->learnSpell(discoveredSpellId, false);
+
+ caster->UpdateCraftSkill(spellId);
+ }
+
+ void Register() OVERRIDE
+ {
+ OnCheckCast += SpellCheckCastFn(spell_gen_profession_research_SpellScript::CheckRequirement);
+ OnEffectHitTarget += SpellEffectFn(spell_gen_profession_research_SpellScript::HandleScript, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+ };
- void Register()
+ SpellScript* GetSpellScript() const OVERRIDE
{
- OnEffectHitTarget += SpellEffectFn(spell_gen_despawn_self_SpellScript::HandleDummy, EFFECT_ALL, SPELL_EFFECT_ANY);
+ return new spell_gen_profession_research_SpellScript();
}
- };
-
- SpellScript* GetSpellScript() const
- {
- return new spell_gen_despawn_self_SpellScript();
- }
};
-class spell_gen_touch_the_nightmare : public SpellScriptLoader
+class spell_gen_remove_flight_auras : public SpellScriptLoader
{
-public:
- spell_gen_touch_the_nightmare() : SpellScriptLoader("spell_gen_touch_the_nightmare") { }
-
- class spell_gen_touch_the_nightmare_SpellScript : public SpellScript
- {
- PrepareSpellScript(spell_gen_touch_the_nightmare_SpellScript);
+ public:
+ spell_gen_remove_flight_auras() : SpellScriptLoader("spell_gen_remove_flight_auras") { }
- void HandleDamageCalc(SpellEffIndex /*effIndex*/)
+ class spell_gen_remove_flight_auras_SpellScript : public SpellScript
{
- uint32 bp = GetCaster()->GetMaxHealth() * 0.3f;
- SetHitDamage(bp);
- }
+ PrepareSpellScript(spell_gen_remove_flight_auras_SpellScript);
+
+ void HandleScript(SpellEffIndex /*effIndex*/)
+ {
+ if (Unit* target = GetHitUnit())
+ {
+ target->RemoveAurasByType(SPELL_AURA_FLY);
+ target->RemoveAurasByType(SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED);
+ }
+ }
- void Register()
+ void Register() OVERRIDE
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_gen_remove_flight_auras_SpellScript::HandleScript, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+ };
+
+ SpellScript* GetSpellScript() const OVERRIDE
{
- OnEffectHitTarget += SpellEffectFn(spell_gen_touch_the_nightmare_SpellScript::HandleDamageCalc, EFFECT_2, SPELL_EFFECT_SCHOOL_DAMAGE);
+ return new spell_gen_remove_flight_auras_SpellScript();
}
- };
-
- SpellScript* GetSpellScript() const
- {
- return new spell_gen_touch_the_nightmare_SpellScript();
- }
};
-class spell_gen_dream_funnel: public SpellScriptLoader
+enum Replenishment
{
-public:
- spell_gen_dream_funnel() : SpellScriptLoader("spell_gen_dream_funnel") { }
+ SPELL_REPLENISHMENT = 57669,
+ SPELL_INFINITE_REPLENISHMENT = 61782
+};
- class spell_gen_dream_funnel_AuraScript : public AuraScript
- {
- PrepareAuraScript(spell_gen_dream_funnel_AuraScript);
+class spell_gen_replenishment : public SpellScriptLoader
+{
+ public:
+ spell_gen_replenishment() : SpellScriptLoader("spell_gen_replenishment") { }
- void HandleEffectCalcAmount(AuraEffect const* /*aurEff*/, int32& amount, bool& canBeRecalculated)
+ class spell_gen_replenishment_AuraScript : public AuraScript
{
- if (GetCaster())
- amount = GetCaster()->GetMaxHealth() * 0.05f;
+ PrepareAuraScript(spell_gen_replenishment_AuraScript);
- canBeRecalculated = false;
- }
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_REPLENISHMENT) ||
+ !sSpellMgr->GetSpellInfo(SPELL_INFINITE_REPLENISHMENT))
+ return false;
+ return true;
+ }
+
+ bool Load() OVERRIDE
+ {
+ return GetUnitOwner()->GetPower(POWER_MANA);
+ }
- void Register()
+ void CalculateAmount(AuraEffect const* /*aurEff*/, int32& amount, bool& /*canBeRecalculated*/)
+ {
+ switch (GetSpellInfo()->Id)
+ {
+ case SPELL_REPLENISHMENT:
+ amount = GetUnitOwner()->GetMaxPower(POWER_MANA) * 0.002f;
+ break;
+ case SPELL_INFINITE_REPLENISHMENT:
+ amount = GetUnitOwner()->GetMaxPower(POWER_MANA) * 0.0025f;
+ break;
+ default:
+ break;
+ }
+ }
+
+ void Register() OVERRIDE
+ {
+ DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_gen_replenishment_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_PERIODIC_ENERGIZE);
+ }
+ };
+
+ AuraScript* GetAuraScript() const OVERRIDE
{
- DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_gen_dream_funnel_AuraScript::HandleEffectCalcAmount, EFFECT_0, SPELL_AURA_PERIODIC_HEAL);
- DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_gen_dream_funnel_AuraScript::HandleEffectCalcAmount, EFFECT_2, SPELL_AURA_PERIODIC_DAMAGE);
+ return new spell_gen_replenishment_AuraScript();
}
- };
-
- AuraScript* GetAuraScript() const
- {
- return new spell_gen_dream_funnel_AuraScript();
- }
};
-enum GenericBandage
+enum SeaforiumSpells
{
- SPELL_RECENTLY_BANDAGED = 11196,
+ SPELL_PLANT_CHARGES_CREDIT_ACHIEVEMENT = 60937
};
-class spell_gen_bandage : public SpellScriptLoader
+class spell_gen_seaforium_blast : public SpellScriptLoader
{
public:
- spell_gen_bandage() : SpellScriptLoader("spell_gen_bandage") { }
+ spell_gen_seaforium_blast() : SpellScriptLoader("spell_gen_seaforium_blast") { }
- class spell_gen_bandage_SpellScript : public SpellScript
+ class spell_gen_seaforium_blast_SpellScript : public SpellScript
{
- PrepareSpellScript(spell_gen_bandage_SpellScript);
+ PrepareSpellScript(spell_gen_seaforium_blast_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
- if (!sSpellMgr->GetSpellInfo(SPELL_RECENTLY_BANDAGED))
+ if (!sSpellMgr->GetSpellInfo(SPELL_PLANT_CHARGES_CREDIT_ACHIEVEMENT))
return false;
return true;
}
- SpellCastResult CheckCast()
+ bool Load() OVERRIDE
{
- if (Unit* target = GetExplTargetUnit())
- {
- if (target->HasAura(SPELL_RECENTLY_BANDAGED))
- return SPELL_FAILED_TARGET_AURASTATE;
- }
- return SPELL_CAST_OK;
+ // OriginalCaster is always available in Spell::prepare
+ return GetOriginalCaster()->GetTypeId() == TYPEID_PLAYER;
}
- void HandleScript()
+ void AchievementCredit(SpellEffIndex /*effIndex*/)
{
- if (Unit* target = GetHitUnit())
- GetCaster()->CastSpell(target, SPELL_RECENTLY_BANDAGED, true);
+ // but in effect handling OriginalCaster can become NULL
+ if (Unit* originalCaster = GetOriginalCaster())
+ if (GameObject* go = GetHitGObj())
+ if (go->GetGOInfo()->type == GAMEOBJECT_TYPE_DESTRUCTIBLE_BUILDING)
+ originalCaster->CastSpell(originalCaster, SPELL_PLANT_CHARGES_CREDIT_ACHIEVEMENT, true);
}
- void Register()
+ void Register() OVERRIDE
{
- OnCheckCast += SpellCheckCastFn(spell_gen_bandage_SpellScript::CheckCast);
- AfterHit += SpellHitFn(spell_gen_bandage_SpellScript::HandleScript);
+ OnEffectHitTarget += SpellEffectFn(spell_gen_seaforium_blast_SpellScript::AchievementCredit, EFFECT_1, SPELL_EFFECT_GAMEOBJECT_DAMAGE);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
- return new spell_gen_bandage_SpellScript();
+ return new spell_gen_seaforium_blast_SpellScript();
}
};
-enum GenericLifebloom
+enum SpectatorCheerTrigger
{
- SPELL_HEXLORD_MALACRASS_LIFEBLOOM_FINAL_HEAL = 43422,
- SPELL_TUR_RAGEPAW_LIFEBLOOM_FINAL_HEAL = 52552,
- SPELL_CENARION_SCOUT_LIFEBLOOM_FINAL_HEAL = 53692,
- SPELL_TWISTED_VISAGE_LIFEBLOOM_FINAL_HEAL = 57763,
- SPELL_FACTION_CHAMPIONS_DRU_LIFEBLOOM_FINAL_HEAL = 66094,
+ EMOTE_ONE_SHOT_CHEER = 4,
+ EMOTE_ONE_SHOT_EXCLAMATION = 5,
+ EMOTE_ONE_SHOT_APPLAUD = 21
};
-class spell_gen_lifebloom : public SpellScriptLoader
+uint8 const EmoteArray[3] = { EMOTE_ONE_SHOT_CHEER, EMOTE_ONE_SHOT_EXCLAMATION, EMOTE_ONE_SHOT_APPLAUD };
+
+class spell_gen_spectator_cheer_trigger : public SpellScriptLoader
{
public:
- spell_gen_lifebloom(const char* name, uint32 spellId) : SpellScriptLoader(name), _spellId(spellId) { }
+ spell_gen_spectator_cheer_trigger() : SpellScriptLoader("spell_gen_spectator_cheer_trigger") { }
- class spell_gen_lifebloom_AuraScript : public AuraScript
+ class spell_gen_spectator_cheer_trigger_SpellScript : public SpellScript
{
- PrepareAuraScript(spell_gen_lifebloom_AuraScript);
-
- public:
- spell_gen_lifebloom_AuraScript(uint32 spellId) : AuraScript(), _spellId(spellId) { }
+ PrepareSpellScript(spell_gen_spectator_cheer_trigger_SpellScript)
- bool Validate(SpellInfo const* /*spell*/)
+ void HandleDummy(SpellEffIndex /*effIndex*/)
{
- if (!sSpellMgr->GetSpellInfo(_spellId))
- return false;
- return true;
+ GetCaster()->HandleEmoteCommand(EmoteArray[urand(0, 2)]);
}
- void AfterRemove(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/)
+ void Register() OVERRIDE
{
- // Final heal only on duration end
- if (GetTargetApplication()->GetRemoveMode() != AURA_REMOVE_BY_EXPIRE && GetTargetApplication()->GetRemoveMode() != AURA_REMOVE_BY_ENEMY_SPELL)
- return;
+ OnEffectHitTarget += SpellEffectFn(spell_gen_spectator_cheer_trigger_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
+ }
+ };
- // final heal
- GetTarget()->CastSpell(GetTarget(), _spellId, true, NULL, aurEff, GetCasterGUID());
+ SpellScript* GetSpellScript() const OVERRIDE
+ {
+ return new spell_gen_spectator_cheer_trigger_SpellScript();
+ }
+};
+
+class spell_gen_spirit_healer_res : public SpellScriptLoader
+{
+ public:
+ spell_gen_spirit_healer_res(): SpellScriptLoader("spell_gen_spirit_healer_res") { }
+
+ class spell_gen_spirit_healer_res_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_gen_spirit_healer_res_SpellScript);
+
+ bool Load() OVERRIDE
+ {
+ return GetOriginalCaster() && GetOriginalCaster()->GetTypeId() == TYPEID_PLAYER;
}
- void Register()
+ void HandleDummy(SpellEffIndex /* effIndex */)
{
- AfterEffectRemove += AuraEffectRemoveFn(spell_gen_lifebloom_AuraScript::AfterRemove, EFFECT_0, SPELL_AURA_PERIODIC_HEAL, AURA_EFFECT_HANDLE_REAL);
+ Player* originalCaster = GetOriginalCaster()->ToPlayer();
+ if (Unit* target = GetHitUnit())
+ {
+ WorldPacket data(SMSG_SPIRIT_HEALER_CONFIRM, 8);
+ data << uint64(target->GetGUID());
+ originalCaster->GetSession()->SendPacket(&data);
+ }
}
- private:
- uint32 _spellId;
+ void Register() OVERRIDE
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_gen_spirit_healer_res_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
+ }
};
- AuraScript* GetAuraScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
- return new spell_gen_lifebloom_AuraScript(_spellId);
+ return new spell_gen_spirit_healer_res_SpellScript();
}
-
- private:
- uint32 _spellId;
};
enum SummonElemental
@@ -3046,7 +3150,7 @@ class spell_gen_summon_elemental : public SpellScriptLoader
public:
spell_gen_summon_elemental_AuraScript(uint32 spellId) : AuraScript(), _spellId(spellId) { }
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(_spellId))
return false;
@@ -3068,7 +3172,7 @@ class spell_gen_summon_elemental : public SpellScriptLoader
owner->ToPlayer()->RemovePet(NULL, PET_SAVE_NOT_IN_SLOT, true);
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectApply += AuraEffectApplyFn(spell_gen_summon_elemental_AuraScript::AfterApply, EFFECT_1, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_gen_summon_elemental_AuraScript::AfterRemove, EFFECT_1, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
@@ -3078,7 +3182,7 @@ class spell_gen_summon_elemental : public SpellScriptLoader
uint32 _spellId;
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_gen_summon_elemental_AuraScript(_spellId);
}
@@ -3087,478 +3191,442 @@ class spell_gen_summon_elemental : public SpellScriptLoader
uint32 _spellId;
};
-enum Mounts
+enum TournamentMountsSpells
{
- SPELL_COLD_WEATHER_FLYING = 54197,
+ SPELL_LANCE_EQUIPPED = 62853
+};
- // Magic Broom
- SPELL_MAGIC_BROOM_60 = 42680,
- SPELL_MAGIC_BROOM_100 = 42683,
- SPELL_MAGIC_BROOM_150 = 42667,
- SPELL_MAGIC_BROOM_280 = 42668,
+class spell_gen_summon_tournament_mount : public SpellScriptLoader
+{
+ public:
+ spell_gen_summon_tournament_mount() : SpellScriptLoader("spell_gen_summon_tournament_mount") { }
- // Headless Horseman's Mount
- SPELL_HEADLESS_HORSEMAN_MOUNT_60 = 51621,
- SPELL_HEADLESS_HORSEMAN_MOUNT_100 = 48024,
- SPELL_HEADLESS_HORSEMAN_MOUNT_150 = 51617,
- SPELL_HEADLESS_HORSEMAN_MOUNT_280 = 48023,
+ class spell_gen_summon_tournament_mount_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_gen_summon_tournament_mount_SpellScript);
- // Winged Steed of the Ebon Blade
- SPELL_WINGED_STEED_150 = 54726,
- SPELL_WINGED_STEED_280 = 54727,
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_LANCE_EQUIPPED))
+ return false;
+ return true;
+ }
- // Big Love Rocket
- SPELL_BIG_LOVE_ROCKET_0 = 71343,
- SPELL_BIG_LOVE_ROCKET_60 = 71344,
- SPELL_BIG_LOVE_ROCKET_100 = 71345,
- SPELL_BIG_LOVE_ROCKET_150 = 71346,
- SPELL_BIG_LOVE_ROCKET_310 = 71347,
+ SpellCastResult CheckIfLanceEquiped()
+ {
+ if (GetCaster()->IsInDisallowedMountForm())
+ GetCaster()->RemoveAurasByType(SPELL_AURA_MOD_SHAPESHIFT);
- // Invincible
- SPELL_INVINCIBLE_60 = 72281,
- SPELL_INVINCIBLE_100 = 72282,
- SPELL_INVINCIBLE_150 = 72283,
- SPELL_INVINCIBLE_310 = 72284,
+ if (!GetCaster()->HasAura(SPELL_LANCE_EQUIPPED))
+ {
+ SetCustomCastResultMessage(SPELL_CUSTOM_ERROR_MUST_HAVE_LANCE_EQUIPPED);
+ return SPELL_FAILED_CUSTOM_ERROR;
+ }
- // Blazing Hippogryph
- SPELL_BLAZING_HIPPOGRYPH_150 = 74854,
- SPELL_BLAZING_HIPPOGRYPH_280 = 74855,
+ return SPELL_CAST_OK;
+ }
- // Celestial Steed
- SPELL_CELESTIAL_STEED_60 = 75619,
- SPELL_CELESTIAL_STEED_100 = 75620,
- SPELL_CELESTIAL_STEED_150 = 75617,
- SPELL_CELESTIAL_STEED_280 = 75618,
- SPELL_CELESTIAL_STEED_310 = 76153,
+ void Register() OVERRIDE
+ {
+ OnCheckCast += SpellCheckCastFn(spell_gen_summon_tournament_mount_SpellScript::CheckIfLanceEquiped);
+ }
+ };
- // X-53 Touring Rocket
- SPELL_X53_TOURING_ROCKET_150 = 75957,
- SPELL_X53_TOURING_ROCKET_280 = 75972,
- SPELL_X53_TOURING_ROCKET_310 = 76154,
+ SpellScript* GetSpellScript() const OVERRIDE
+ {
+ return new spell_gen_summon_tournament_mount_SpellScript();
+ }
};
-class spell_gen_mount : public SpellScriptLoader
+
+enum MountedDuelSpells
+{
+ SPELL_ON_TOURNAMENT_MOUNT = 63034,
+ SPELL_MOUNTED_DUEL = 62875
+};
+
+class spell_gen_tournament_duel : public SpellScriptLoader
{
public:
- spell_gen_mount(const char* name, uint32 mount0 = 0, uint32 mount60 = 0, uint32 mount100 = 0, uint32 mount150 = 0, uint32 mount280 = 0, uint32 mount310 = 0) : SpellScriptLoader(name),
- _mount0(mount0), _mount60(mount60), _mount100(mount100), _mount150(mount150), _mount280(mount280), _mount310(mount310) { }
+ spell_gen_tournament_duel() : SpellScriptLoader("spell_gen_tournament_duel") { }
- class spell_gen_mount_SpellScript : public SpellScript
+ class spell_gen_tournament_duel_SpellScript : public SpellScript
{
- PrepareSpellScript(spell_gen_mount_SpellScript);
-
- public:
- spell_gen_mount_SpellScript(uint32 mount0, uint32 mount60, uint32 mount100, uint32 mount150, uint32 mount280, uint32 mount310) : SpellScript(),
- _mount0(mount0), _mount60(mount60), _mount100(mount100), _mount150(mount150), _mount280(mount280), _mount310(mount310) { }
+ PrepareSpellScript(spell_gen_tournament_duel_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
- if (_mount0 && !sSpellMgr->GetSpellInfo(_mount0))
- return false;
- if (_mount60 && !sSpellMgr->GetSpellInfo(_mount60))
- return false;
- if (_mount100 && !sSpellMgr->GetSpellInfo(_mount100))
- return false;
- if (_mount150 && !sSpellMgr->GetSpellInfo(_mount150))
- return false;
- if (_mount280 && !sSpellMgr->GetSpellInfo(_mount280))
- return false;
- if (_mount310 && !sSpellMgr->GetSpellInfo(_mount310))
+ if (!sSpellMgr->GetSpellInfo(SPELL_ON_TOURNAMENT_MOUNT) ||
+ !sSpellMgr->GetSpellInfo(SPELL_MOUNTED_DUEL))
return false;
return true;
}
- void HandleMount(SpellEffIndex effIndex)
+ void HandleScriptEffect(SpellEffIndex /*effIndex*/)
{
- PreventHitDefaultEffect(effIndex);
-
- if (Player* target = GetHitPlayer())
+ if (Unit* rider = GetCaster()->GetCharmer())
{
- // Prevent stacking of mounts and client crashes upon dismounting
- target->RemoveAurasByType(SPELL_AURA_MOUNTED, 0, GetHitAura());
-
- // Triggered spell id dependent on riding skill and zone
- bool canFly = false;
- uint32 map = GetVirtualMapForMapAndZone(target->GetMapId(), target->GetZoneId());
- if (map == 530 || (map == 571 && target->HasSpell(SPELL_COLD_WEATHER_FLYING)))
- canFly = true;
-
- float x, y, z;
- target->GetPosition(x, y, z);
- uint32 areaFlag = target->GetBaseMap()->GetAreaFlag(x, y, z);
- AreaTableEntry const* area = sAreaStore.LookupEntry(areaFlag);
- if (!area || (canFly && (area->flags & AREA_FLAG_NO_FLY_ZONE)))
- canFly = false;
-
- uint32 mount = 0;
- switch (target->GetBaseSkillValue(SKILL_RIDING))
+ if (Player* playerTarget = GetHitPlayer())
{
- case 0:
- mount = _mount0;
- break;
- case 75:
- mount = _mount60;
- break;
- case 150:
- mount = _mount100;
- break;
- case 225:
- if (canFly)
- mount = _mount150;
- else
- mount = _mount100;
- break;
- case 300:
- if (canFly)
- {
- if (_mount310 && target->Has310Flyer(false))
- mount = _mount310;
- else
- mount = _mount280;
- }
- else
- mount = _mount100;
- break;
- default:
- break;
+ if (playerTarget->HasAura(SPELL_ON_TOURNAMENT_MOUNT) && playerTarget->GetVehicleBase())
+ rider->CastSpell(playerTarget, SPELL_MOUNTED_DUEL, true);
}
-
- if (mount)
+ else if (Unit* unitTarget = GetHitUnit())
{
- PreventHitAura();
- target->CastSpell(target, mount, true);
+ if (unitTarget->GetCharmer() && unitTarget->GetCharmer()->GetTypeId() == TYPEID_PLAYER && unitTarget->GetCharmer()->HasAura(SPELL_ON_TOURNAMENT_MOUNT))
+ rider->CastSpell(unitTarget->GetCharmer(), SPELL_MOUNTED_DUEL, true);
}
}
}
- void Register()
+ void Register() OVERRIDE
{
- OnEffectHitTarget += SpellEffectFn(spell_gen_mount_SpellScript::HandleMount, EFFECT_2, SPELL_EFFECT_SCRIPT_EFFECT);
+ OnEffectHitTarget += SpellEffectFn(spell_gen_tournament_duel_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
-
- private:
- uint32 _mount0;
- uint32 _mount60;
- uint32 _mount100;
- uint32 _mount150;
- uint32 _mount280;
- uint32 _mount310;
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
- return new spell_gen_mount_SpellScript(_mount0, _mount60, _mount100, _mount150, _mount280, _mount310);
+ return new spell_gen_tournament_duel_SpellScript();
}
-
- private:
- uint32 _mount0;
- uint32 _mount60;
- uint32 _mount100;
- uint32 _mount150;
- uint32 _mount280;
- uint32 _mount310;
};
-enum FoamSword
+class spell_gen_tournament_pennant : public SpellScriptLoader
{
- ITEM_FOAM_SWORD_GREEN = 45061,
- ITEM_FOAM_SWORD_PINK = 45176,
- ITEM_FOAM_SWORD_BLUE = 45177,
- ITEM_FOAM_SWORD_RED = 45178,
- ITEM_FOAM_SWORD_YELLOW = 45179,
+ public:
+ spell_gen_tournament_pennant() : SpellScriptLoader("spell_gen_tournament_pennant") { }
- SPELL_BONKED = 62991,
- SPELL_FOAM_SWORD_DEFEAT = 62994,
- SPELL_ON_GUARD = 62972,
+ class spell_gen_tournament_pennant_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_gen_tournament_pennant_AuraScript);
+
+ bool Load() OVERRIDE
+ {
+ return GetCaster() && GetCaster()->GetTypeId() == TYPEID_PLAYER;
+ }
+
+ void HandleApplyEffect(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ if (Unit* caster = GetCaster())
+ if (!caster->GetVehicleBase())
+ caster->RemoveAurasDueToSpell(GetId());
+ }
+
+ void Register() OVERRIDE
+ {
+ OnEffectApply += AuraEffectApplyFn(spell_gen_tournament_pennant_AuraScript::HandleApplyEffect, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
+ }
+ };
+
+ AuraScript* GetAuraScript() const OVERRIDE
+ {
+ return new spell_gen_tournament_pennant_AuraScript();
+ }
};
-class spell_gen_upper_deck_create_foam_sword : public SpellScriptLoader
+
+
+enum PvPTrinketTriggeredSpells
+{
+ SPELL_WILL_OF_THE_FORSAKEN_COOLDOWN_TRIGGER = 72752,
+ SPELL_WILL_OF_THE_FORSAKEN_COOLDOWN_TRIGGER_WOTF = 72757
+};
+
+class spell_pvp_trinket_wotf_shared_cd : public SpellScriptLoader
{
public:
- spell_gen_upper_deck_create_foam_sword() : SpellScriptLoader("spell_gen_upper_deck_create_foam_sword") { }
+ spell_pvp_trinket_wotf_shared_cd() : SpellScriptLoader("spell_pvp_trinket_wotf_shared_cd") { }
- class spell_gen_upper_deck_create_foam_sword_SpellScript : public SpellScript
+ class spell_pvp_trinket_wotf_shared_cd_SpellScript : public SpellScript
{
- PrepareSpellScript(spell_gen_upper_deck_create_foam_sword_SpellScript);
+ PrepareSpellScript(spell_pvp_trinket_wotf_shared_cd_SpellScript);
- void HandleScript(SpellEffIndex effIndex)
+ bool Load() OVERRIDE
{
- if (Player* player = GetHitPlayer())
- {
- static uint32 const itemId[5] = { ITEM_FOAM_SWORD_GREEN, ITEM_FOAM_SWORD_PINK, ITEM_FOAM_SWORD_BLUE, ITEM_FOAM_SWORD_RED, ITEM_FOAM_SWORD_YELLOW };
- // player can only have one of these items
- for (uint8 i = 0; i < 5; ++i)
- {
- if (player->HasItemCount(itemId[i], 1, true))
- return;
- }
+ return GetCaster()->GetTypeId() == TYPEID_PLAYER;
+ }
- CreateItem(effIndex, itemId[urand(0, 4)]);
- }
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_WILL_OF_THE_FORSAKEN_COOLDOWN_TRIGGER) ||
+ !sSpellMgr->GetSpellInfo(SPELL_WILL_OF_THE_FORSAKEN_COOLDOWN_TRIGGER_WOTF))
+ return false;
+ return true;
}
- void Register()
+ void HandleScript()
{
- OnEffectHitTarget += SpellEffectFn(spell_gen_upper_deck_create_foam_sword_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ // This is only needed because spells cast from spell_linked_spell are triggered by default
+ // Spell::SendSpellCooldown() skips all spells with TRIGGERED_IGNORE_SPELL_AND_CATEGORY_CD
+ GetCaster()->ToPlayer()->AddSpellAndCategoryCooldowns(GetSpellInfo(), GetCastItem() ? GetCastItem()->GetEntry() : 0, GetSpell());
+ }
+
+ void Register() OVERRIDE
+ {
+ AfterCast += SpellCastFn(spell_pvp_trinket_wotf_shared_cd_SpellScript::HandleScript);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
- return new spell_gen_upper_deck_create_foam_sword_SpellScript();
+ return new spell_pvp_trinket_wotf_shared_cd_SpellScript();
}
};
-class spell_gen_bonked : public SpellScriptLoader
+enum FriendOrFowl
+{
+ SPELL_TURKEY_VENGEANCE = 25285
+};
+
+class spell_gen_turkey_marker : public SpellScriptLoader
{
public:
- spell_gen_bonked() : SpellScriptLoader("spell_gen_bonked") { }
+ spell_gen_turkey_marker() : SpellScriptLoader("spell_gen_turkey_marker") { }
- class spell_gen_bonked_SpellScript : public SpellScript
+ class spell_gen_turkey_marker_AuraScript : public AuraScript
{
- PrepareSpellScript(spell_gen_bonked_SpellScript);
+ PrepareAuraScript(spell_gen_turkey_marker_AuraScript);
- void HandleScript(SpellEffIndex /*effIndex*/)
+ void OnApply(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/)
{
- if (Player* target = GetHitPlayer())
- {
- Aura const* aura = GetHitAura();
- if (!(aura && aura->GetStackAmount() == 3))
- return;
+ // store stack apply times, so we can pop them while they expire
+ _applyTimes.push_back(getMSTime());
+ Unit* target = GetTarget();
- target->CastSpell(target, SPELL_FOAM_SWORD_DEFEAT, true);
- target->RemoveAurasDueToSpell(SPELL_BONKED);
+ // on stack 15 cast the achievement crediting spell
+ if (GetStackAmount() >= 15)
+ target->CastSpell(target, SPELL_TURKEY_VENGEANCE, true, NULL, aurEff, GetCasterGUID());
+ }
- if (Aura const* aura = target->GetAura(SPELL_ON_GUARD))
- {
- if (Item* item = target->GetItemByGuid(aura->GetCastItemGUID()))
- target->DestroyItemCount(item->GetEntry(), 1, true);
- }
- }
+ void OnPeriodic(AuraEffect const* /*aurEff*/)
+ {
+ if (_applyTimes.empty())
+ return;
+
+ // pop stack if it expired for us
+ if (_applyTimes.front() + GetMaxDuration() < getMSTime())
+ ModStackAmount(-1, AURA_REMOVE_BY_EXPIRE);
}
- void Register()
+ void Register() OVERRIDE
{
- OnEffectHitTarget += SpellEffectFn(spell_gen_bonked_SpellScript::HandleScript, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT);
+ AfterEffectApply += AuraEffectApplyFn(spell_gen_turkey_marker_AuraScript::OnApply, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY, AURA_EFFECT_HANDLE_REAL);
+ OnEffectPeriodic += AuraEffectPeriodicFn(spell_gen_turkey_marker_AuraScript::OnPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
}
+
+ std::list<uint32> _applyTimes;
};
- SpellScript* GetSpellScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
- return new spell_gen_bonked_SpellScript();
+ return new spell_gen_turkey_marker_AuraScript();
}
};
-class spell_gen_gift_of_naaru : public SpellScriptLoader
+enum FoamSword
+{
+ ITEM_FOAM_SWORD_GREEN = 45061,
+ ITEM_FOAM_SWORD_PINK = 45176,
+ ITEM_FOAM_SWORD_BLUE = 45177,
+ ITEM_FOAM_SWORD_RED = 45178,
+ ITEM_FOAM_SWORD_YELLOW = 45179
+};
+
+class spell_gen_upper_deck_create_foam_sword : public SpellScriptLoader
{
public:
- spell_gen_gift_of_naaru() : SpellScriptLoader("spell_gen_gift_of_naaru") { }
+ spell_gen_upper_deck_create_foam_sword() : SpellScriptLoader("spell_gen_upper_deck_create_foam_sword") { }
- class spell_gen_gift_of_naaru_AuraScript : public AuraScript
+ class spell_gen_upper_deck_create_foam_sword_SpellScript : public SpellScript
{
- PrepareAuraScript(spell_gen_gift_of_naaru_AuraScript);
+ PrepareSpellScript(spell_gen_upper_deck_create_foam_sword_SpellScript);
- void CalculateAmount(AuraEffect const* aurEff, int32& amount, bool& /*canBeRecalculated*/)
+ void HandleScript(SpellEffIndex effIndex)
{
- if (!GetCaster())
- return;
-
- float heal = 0.0f;
- switch (GetSpellInfo()->SpellFamilyName)
+ if (Player* player = GetHitPlayer())
{
- case SPELLFAMILY_MAGE:
- case SPELLFAMILY_WARLOCK:
- case SPELLFAMILY_PRIEST:
- heal = 1.885f * float(GetCaster()->SpellBaseDamageBonusDone(GetSpellInfo()->GetSchoolMask()));
- break;
- case SPELLFAMILY_PALADIN:
- case SPELLFAMILY_SHAMAN:
- heal = std::max(1.885f * float(GetCaster()->SpellBaseDamageBonusDone(GetSpellInfo()->GetSchoolMask())), 1.1f * float(GetCaster()->GetTotalAttackPowerValue(BASE_ATTACK)));
- break;
- case SPELLFAMILY_WARRIOR:
- case SPELLFAMILY_HUNTER:
- case SPELLFAMILY_DEATHKNIGHT:
- heal = 1.1f * float(std::max(GetCaster()->GetTotalAttackPowerValue(BASE_ATTACK), GetCaster()->GetTotalAttackPowerValue(RANGED_ATTACK)));
- break;
- case SPELLFAMILY_GENERIC:
- default:
- break;
- }
+ static uint32 const itemId[5] = { ITEM_FOAM_SWORD_GREEN, ITEM_FOAM_SWORD_PINK, ITEM_FOAM_SWORD_BLUE, ITEM_FOAM_SWORD_RED, ITEM_FOAM_SWORD_YELLOW };
+ // player can only have one of these items
+ for (uint8 i = 0; i < 5; ++i)
+ {
+ if (player->HasItemCount(itemId[i], 1, true))
+ return;
+ }
- int32 healTick = floor(heal / aurEff->GetTotalTicks());
- amount += int32(std::max(healTick, 0));
+ CreateItem(effIndex, itemId[urand(0, 4)]);
+ }
}
- void Register()
+ void Register() OVERRIDE
{
- DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_gen_gift_of_naaru_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_PERIODIC_HEAL);
+ OnEffectHitTarget += SpellEffectFn(spell_gen_upper_deck_create_foam_sword_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- AuraScript* GetAuraScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
- return new spell_gen_gift_of_naaru_AuraScript();
+ return new spell_gen_upper_deck_create_foam_sword_SpellScript();
}
};
-enum Replenishment
+enum VehicleScaling
{
- SPELL_REPLENISHMENT = 57669,
- SPELL_INFINITE_REPLENISHMENT = 61782
+ SPELL_GEAR_SCALING = 66668
};
-class spell_gen_replenishment : public SpellScriptLoader
+class spell_gen_vehicle_scaling : public SpellScriptLoader
{
public:
- spell_gen_replenishment() : SpellScriptLoader("spell_gen_replenishment") { }
+ spell_gen_vehicle_scaling() : SpellScriptLoader("spell_gen_vehicle_scaling") { }
- class spell_gen_replenishment_AuraScript : public AuraScript
+ class spell_gen_vehicle_scaling_AuraScript : public AuraScript
{
- PrepareAuraScript(spell_gen_replenishment_AuraScript);
-
- bool Validate(SpellInfo const* /*spell*/)
- {
- if (!sSpellMgr->GetSpellInfo(SPELL_REPLENISHMENT) ||
- !sSpellMgr->GetSpellInfo(SPELL_INFINITE_REPLENISHMENT))
- return false;
- return true;
- }
+ PrepareAuraScript(spell_gen_vehicle_scaling_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
- return GetUnitOwner()->GetPower(POWER_MANA);
+ return GetCaster() && GetCaster()->GetTypeId() == TYPEID_PLAYER;
}
void CalculateAmount(AuraEffect const* /*aurEff*/, int32& amount, bool& /*canBeRecalculated*/)
{
- switch (GetSpellInfo()->Id)
+ Unit* caster = GetCaster();
+ float factor;
+ uint16 baseItemLevel;
+
+ /// @todo Reserach coeffs for different vehicles
+ switch (GetId())
{
- case SPELL_REPLENISHMENT:
- amount = GetUnitOwner()->GetMaxPower(POWER_MANA) * 0.002f;
- break;
- case SPELL_INFINITE_REPLENISHMENT:
- amount = GetUnitOwner()->GetMaxPower(POWER_MANA) * 0.0025f;
+ case SPELL_GEAR_SCALING:
+ factor = 1.0f;
+ baseItemLevel = 205;
break;
default:
+ factor = 1.0f;
+ baseItemLevel = 170;
break;
}
+
+ float avgILvl = caster->ToPlayer()->GetAverageItemLevel();
+ if (avgILvl < baseItemLevel)
+ return; /// @todo Research possibility of scaling down
+
+ amount = uint16((avgILvl - baseItemLevel) * factor);
}
- void Register()
+ void Register() OVERRIDE
{
- DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_gen_replenishment_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_PERIODIC_ENERGIZE);
+ DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_gen_vehicle_scaling_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_MOD_HEALING_PCT);
+ DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_gen_vehicle_scaling_AuraScript::CalculateAmount, EFFECT_1, SPELL_AURA_MOD_DAMAGE_PERCENT_DONE);
+ DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_gen_vehicle_scaling_AuraScript::CalculateAmount, EFFECT_2, SPELL_AURA_MOD_INCREASE_HEALTH_PERCENT);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
- return new spell_gen_replenishment_AuraScript();
+ return new spell_gen_vehicle_scaling_AuraScript();
}
};
-enum ServiceUniform
+enum VendorBarkTrigger
{
- SPELL_SERVICE_UNIFORM = 71450,
-
- MODEL_GOBLIN_MALE = 31002,
- MODEL_GOBLIN_FEMALE = 31003,
+ NPC_AMPHITHEATER_VENDOR = 30098,
+ SAY_AMPHITHEATER_VENDOR = 0
};
-class spell_gen_aura_service_uniform : public SpellScriptLoader
+class spell_gen_vendor_bark_trigger : public SpellScriptLoader
{
public:
- spell_gen_aura_service_uniform() : SpellScriptLoader("spell_gen_aura_service_uniform") { }
+ spell_gen_vendor_bark_trigger() : SpellScriptLoader("spell_gen_vendor_bark_trigger") { }
- class spell_gen_aura_service_uniform_AuraScript : public AuraScript
+ class spell_gen_vendor_bark_trigger_SpellScript : public SpellScript
{
- PrepareAuraScript(spell_gen_aura_service_uniform_AuraScript);
+ PrepareSpellScript(spell_gen_vendor_bark_trigger_SpellScript)
- bool Validate(SpellInfo const* /*spell*/)
+ void HandleDummy(SpellEffIndex /* effIndex */)
{
- if (!sSpellMgr->GetSpellInfo(SPELL_SERVICE_UNIFORM))
- return false;
- return true;
+ if (Creature* vendor = GetCaster()->ToCreature())
+ if (vendor->GetEntry() == NPC_AMPHITHEATER_VENDOR)
+ vendor->AI()->Talk(SAY_AMPHITHEATER_VENDOR);
}
- void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ void Register() OVERRIDE
{
- // Apply model goblin
- Unit* target = GetTarget();
- if (target->GetTypeId() == TYPEID_PLAYER)
- {
- if (target->getGender() == GENDER_MALE)
- target->SetDisplayId(MODEL_GOBLIN_MALE);
- else
- target->SetDisplayId(MODEL_GOBLIN_FEMALE);
- }
+ OnEffectHitTarget += SpellEffectFn(spell_gen_vendor_bark_trigger_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
+ };
- void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ SpellScript* GetSpellScript() const OVERRIDE
+ {
+ return new spell_gen_vendor_bark_trigger_SpellScript();
+ }
+
+};
+
+class spell_gen_wg_water : public SpellScriptLoader
+{
+ public:
+ spell_gen_wg_water() : SpellScriptLoader("spell_gen_wg_water") { }
+
+ class spell_gen_wg_water_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_gen_wg_water_SpellScript);
+
+ SpellCastResult CheckCast()
{
- Unit* target = GetTarget();
- if (target->GetTypeId() == TYPEID_PLAYER)
- target->RestoreDisplayId();
+ if (!GetSpellInfo()->CheckTargetCreatureType(GetCaster()))
+ return SPELL_FAILED_DONT_REPORT;
+ return SPELL_CAST_OK;
}
- void Register()
+ void Register() OVERRIDE
{
- AfterEffectApply += AuraEffectRemoveFn(spell_gen_aura_service_uniform_AuraScript::OnApply, EFFECT_0, SPELL_AURA_TRANSFORM, AURA_EFFECT_HANDLE_REAL);
- AfterEffectRemove += AuraEffectRemoveFn(spell_gen_aura_service_uniform_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_TRANSFORM, AURA_EFFECT_HANDLE_REAL);
+ OnCheckCast += SpellCheckCastFn(spell_gen_wg_water_SpellScript::CheckCast);
}
};
- AuraScript* GetAuraScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
- return new spell_gen_aura_service_uniform_AuraScript();
+ return new spell_gen_wg_water_SpellScript();
}
};
-enum OrcDisguiseSpells
+enum WhisperGulchYoggSaronWhisper
{
- SPELL_ORC_DISGUISE_TRIGGER = 45759,
- SPELL_ORC_DISGUISE_MALE = 45760,
- SPELL_ORC_DISGUISE_FEMALE = 45762,
+ SPELL_YOGG_SARON_WHISPER_DUMMY = 29072
};
-class spell_gen_orc_disguise : public SpellScriptLoader
+class spell_gen_whisper_gulch_yogg_saron_whisper : public SpellScriptLoader
{
public:
- spell_gen_orc_disguise() : SpellScriptLoader("spell_gen_orc_disguise") { }
+ spell_gen_whisper_gulch_yogg_saron_whisper() : SpellScriptLoader("spell_gen_whisper_gulch_yogg_saron_whisper") { }
- class spell_gen_orc_disguise_SpellScript : public SpellScript
+ class spell_gen_whisper_gulch_yogg_saron_whisper_AuraScript : public AuraScript
{
- PrepareSpellScript(spell_gen_orc_disguise_SpellScript);
+ PrepareAuraScript(spell_gen_whisper_gulch_yogg_saron_whisper_AuraScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
- if (!sSpellMgr->GetSpellInfo(SPELL_ORC_DISGUISE_TRIGGER) || !sSpellMgr->GetSpellInfo(SPELL_ORC_DISGUISE_MALE) ||
- !sSpellMgr->GetSpellInfo(SPELL_ORC_DISGUISE_FEMALE))
+ if (!sSpellMgr->GetSpellInfo(SPELL_YOGG_SARON_WHISPER_DUMMY))
return false;
return true;
}
- void HandleScript(SpellEffIndex /*effIndex*/)
+ void HandleEffectPeriodic(AuraEffect const* /*aurEff*/)
{
- Unit* caster = GetCaster();
- if (Player* target = GetHitPlayer())
- {
- uint8 gender = target->getGender();
- if (!gender)
- caster->CastSpell(target, SPELL_ORC_DISGUISE_MALE, true);
- else
- caster->CastSpell(target, SPELL_ORC_DISGUISE_FEMALE, true);
- }
+ PreventDefaultAction();
+ GetTarget()->CastSpell((Unit*)NULL, SPELL_YOGG_SARON_WHISPER_DUMMY, true);
}
- void Register()
+ void Register() OVERRIDE
{
- OnEffectHitTarget += SpellEffectFn(spell_gen_orc_disguise_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ OnEffectPeriodic += AuraEffectPeriodicFn(spell_gen_whisper_gulch_yogg_saron_whisper_AuraScript::HandleEffectPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
- return new spell_gen_orc_disguise_SpellScript();
+ return new spell_gen_whisper_gulch_yogg_saron_whisper_AuraScript();
}
};
@@ -3566,68 +3634,47 @@ void AddSC_generic_spell_scripts()
{
new spell_gen_absorb0_hitlimit1();
new spell_gen_adaptive_warding();
+ new spell_gen_allow_cast_from_item_only();
+ new spell_gen_animal_blood();
new spell_gen_aura_of_anger();
+ new spell_gen_aura_service_uniform();
new spell_gen_av_drekthar_presence();
+ new spell_gen_bandage();
+ new spell_gen_bonked();
+ new spell_gen_break_shield("spell_gen_break_shield");
+ new spell_gen_break_shield("spell_gen_tournament_counterattack");
new spell_gen_burn_brutallus();
new spell_gen_cannibalize();
- new spell_gen_create_lance();
- new spell_gen_netherbloom();
- new spell_gen_nightmare_vine();
- new spell_gen_obsidian_armor();
- new spell_gen_parachute();
- new spell_gen_pet_summoned();
- new spell_gen_remove_flight_auras();
- new spell_creature_permanent_feign_death();
- new spell_pvp_trinket_wotf_shared_cd();
- new spell_gen_animal_blood();
- new spell_gen_divine_storm_cd_reset();
- new spell_gen_parachute_ic();
- new spell_gen_gunship_portal();
- new spell_gen_dungeon_credit();
- new spell_gen_profession_research();
- new spell_generic_clone();
- new spell_generic_clone_weapon();
+ new spell_gen_chaos_blast();
+ new spell_gen_clone();
+ new spell_gen_clone_weapon();
new spell_gen_clone_weapon_aura();
- new spell_gen_seaforium_blast();
- new spell_gen_turkey_marker();
- new spell_gen_lifeblood();
- new spell_gen_magic_rooster();
- new spell_gen_allow_cast_from_item_only();
- new spell_gen_launch();
- new spell_gen_vehicle_scaling();
- new spell_gen_oracle_wolvar_reputation();
- new spell_gen_damage_reduction_aura();
- new spell_gen_dummy_trigger();
- new spell_gen_spirit_healer_res();
- new spell_gen_gadgetzan_transporter_backfire();
- new spell_gen_gnomish_transporter();
+ new spell_gen_count_pct_from_max_hp("spell_gen_default_count_pct_from_max_hp");
+ new spell_gen_count_pct_from_max_hp("spell_gen_50pct_count_pct_from_max_hp", 50);
+ new spell_gen_create_lance();
+ new spell_gen_creature_permanent_feign_death();
new spell_gen_dalaran_disguise("spell_gen_sunreaver_disguise");
new spell_gen_dalaran_disguise("spell_gen_silver_covenant_disguise");
- new spell_gen_elune_candle();
- new spell_gen_break_shield("spell_gen_break_shield");
- new spell_gen_break_shield("spell_gen_tournament_counterattack");
- new spell_gen_mounted_charge();
+ new spell_gen_damage_reduction_aura();
new spell_gen_defend();
- new spell_gen_tournament_duel();
- new spell_gen_summon_tournament_mount();
- new spell_gen_on_tournament_mount();
- new spell_gen_tournament_pennant();
- new spell_gen_chaos_blast();
- new spell_gen_ds_flush_knockback();
- new spell_gen_wg_water();
- new spell_gen_count_pct_from_max_hp("spell_gen_default_count_pct_from_max_hp");
- new spell_gen_count_pct_from_max_hp("spell_gen_50pct_count_pct_from_max_hp", 50);
new spell_gen_despawn_self();
- new spell_gen_touch_the_nightmare();
- new spell_gen_dream_funnel();
- new spell_gen_bandage();
+ new spell_gen_divine_storm_cd_reset();
+ new spell_gen_ds_flush_knockback();
+ new spell_gen_dummy_trigger();
+ new spell_gen_dungeon_credit();
+ new spell_gen_elune_candle();
+ new spell_gen_gadgetzan_transporter_backfire();
+ new spell_gen_gift_of_naaru();
+ new spell_gen_gnomish_transporter();
+ new spell_gen_gunship_portal();
+ new spell_gen_launch();
+ new spell_gen_lifeblood();
new spell_gen_lifebloom("spell_hexlord_lifebloom", SPELL_HEXLORD_MALACRASS_LIFEBLOOM_FINAL_HEAL);
new spell_gen_lifebloom("spell_tur_ragepaw_lifebloom", SPELL_TUR_RAGEPAW_LIFEBLOOM_FINAL_HEAL);
new spell_gen_lifebloom("spell_cenarion_scout_lifebloom", SPELL_CENARION_SCOUT_LIFEBLOOM_FINAL_HEAL);
new spell_gen_lifebloom("spell_twisted_visage_lifebloom", SPELL_TWISTED_VISAGE_LIFEBLOOM_FINAL_HEAL);
new spell_gen_lifebloom("spell_faction_champion_dru_lifebloom", SPELL_FACTION_CHAMPIONS_DRU_LIFEBLOOM_FINAL_HEAL);
- new spell_gen_summon_elemental("spell_gen_summon_fire_elemental", SPELL_SUMMON_FIRE_ELEMENTAL);
- new spell_gen_summon_elemental("spell_gen_summon_earth_elemental", SPELL_SUMMON_EARTH_ELEMENTAL);
+ new spell_gen_magic_rooster();
new spell_gen_mount("spell_magic_broom", 0, SPELL_MAGIC_BROOM_60, SPELL_MAGIC_BROOM_100, SPELL_MAGIC_BROOM_150, SPELL_MAGIC_BROOM_280);
new spell_gen_mount("spell_headless_horseman_mount", 0, SPELL_HEADLESS_HORSEMAN_MOUNT_60, SPELL_HEADLESS_HORSEMAN_MOUNT_100, SPELL_HEADLESS_HORSEMAN_MOUNT_150, SPELL_HEADLESS_HORSEMAN_MOUNT_280);
new spell_gen_mount("spell_winged_steed_of_the_ebon_blade", 0, 0, 0, SPELL_WINGED_STEED_150, SPELL_WINGED_STEED_280);
@@ -3636,10 +3683,32 @@ void AddSC_generic_spell_scripts()
new spell_gen_mount("spell_blazing_hippogryph", 0, 0, 0, SPELL_BLAZING_HIPPOGRYPH_150, SPELL_BLAZING_HIPPOGRYPH_280);
new spell_gen_mount("spell_celestial_steed", 0, SPELL_CELESTIAL_STEED_60, SPELL_CELESTIAL_STEED_100, SPELL_CELESTIAL_STEED_150, SPELL_CELESTIAL_STEED_280, SPELL_CELESTIAL_STEED_310);
new spell_gen_mount("spell_x53_touring_rocket", 0, 0, 0, SPELL_X53_TOURING_ROCKET_150, SPELL_X53_TOURING_ROCKET_280, SPELL_X53_TOURING_ROCKET_310);
- new spell_gen_upper_deck_create_foam_sword();
- new spell_gen_bonked();
- new spell_gen_gift_of_naaru();
- new spell_gen_replenishment();
- new spell_gen_aura_service_uniform();
+ new spell_gen_mounted_charge();
+ new spell_gen_netherbloom();
+ new spell_gen_nightmare_vine();
+ new spell_gen_obsidian_armor();
+ new spell_gen_on_tournament_mount();
+ new spell_gen_oracle_wolvar_reputation();
new spell_gen_orc_disguise();
+ new spell_gen_parachute();
+ new spell_gen_parachute_ic();
+ new spell_gen_pet_summoned();
+ new spell_gen_profession_research();
+ new spell_gen_remove_flight_auras();
+ new spell_gen_replenishment();
+ new spell_gen_seaforium_blast();
+ new spell_gen_spectator_cheer_trigger();
+ new spell_gen_spirit_healer_res();
+ new spell_gen_summon_elemental("spell_gen_summon_fire_elemental", SPELL_SUMMON_FIRE_ELEMENTAL);
+ new spell_gen_summon_elemental("spell_gen_summon_earth_elemental", SPELL_SUMMON_EARTH_ELEMENTAL);
+ new spell_gen_summon_tournament_mount();
+ new spell_gen_tournament_duel();
+ new spell_gen_tournament_pennant();
+ new spell_pvp_trinket_wotf_shared_cd();
+ new spell_gen_turkey_marker();
+ new spell_gen_upper_deck_create_foam_sword();
+ new spell_gen_vehicle_scaling();
+ new spell_gen_vendor_bark_trigger();
+ new spell_gen_wg_water();
+ new spell_gen_whisper_gulch_yogg_saron_whisper();
}
diff --git a/src/server/scripts/Spells/spell_holiday.cpp b/src/server/scripts/Spells/spell_holiday.cpp
index 37b6a202ed4..f61da1f7179 100644
--- a/src/server/scripts/Spells/spell_holiday.cpp
+++ b/src/server/scripts/Spells/spell_holiday.cpp
@@ -99,14 +99,14 @@ class spell_love_is_in_the_air_romantic_picnic : public SpellScriptLoader
target->RemoveAura(SPELL_ROMANTIC_PICNIC_ACHIEV);
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectApply += AuraEffectApplyFn(spell_love_is_in_the_air_romantic_picnic_AuraScript::OnApply, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY, AURA_EFFECT_HANDLE_REAL);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_love_is_in_the_air_romantic_picnic_AuraScript::OnPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_love_is_in_the_air_romantic_picnic_AuraScript();
}
@@ -136,7 +136,7 @@ class spell_hallow_end_trick : public SpellScriptLoader
{
PrepareSpellScript(spell_hallow_end_trick_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_PIRATE_COSTUME_MALE) || !sSpellMgr->GetSpellInfo(SPELL_PIRATE_COSTUME_FEMALE) || !sSpellMgr->GetSpellInfo(SPELL_NINJA_COSTUME_MALE)
|| !sSpellMgr->GetSpellInfo(SPELL_NINJA_COSTUME_FEMALE) || !sSpellMgr->GetSpellInfo(SPELL_LEPER_GNOME_COSTUME_MALE) || !sSpellMgr->GetSpellInfo(SPELL_LEPER_GNOME_COSTUME_FEMALE)
@@ -177,13 +177,13 @@ class spell_hallow_end_trick : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_hallow_end_trick_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_hallow_end_trick_SpellScript();
}
@@ -209,7 +209,7 @@ class spell_hallow_end_trick_or_treat : public SpellScriptLoader
{
PrepareSpellScript(spell_hallow_end_trick_or_treat_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_TRICK) || !sSpellMgr->GetSpellInfo(SPELL_TREAT) || !sSpellMgr->GetSpellInfo(SPELL_TRICKED_OR_TREATED))
return false;
@@ -226,13 +226,13 @@ class spell_hallow_end_trick_or_treat : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_hallow_end_trick_or_treat_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_hallow_end_trick_or_treat_SpellScript();
}
@@ -247,7 +247,7 @@ class spell_hallow_end_tricky_treat : public SpellScriptLoader
{
PrepareSpellScript(spell_hallow_end_tricky_treat_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_TRICKY_TREAT_SPEED))
return false;
@@ -265,13 +265,13 @@ class spell_hallow_end_tricky_treat : public SpellScriptLoader
caster->CastSpell(caster, SPELL_UPSET_TUMMY, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_hallow_end_tricky_treat_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_hallow_end_tricky_treat_SpellScript();
}
@@ -293,7 +293,7 @@ class spell_winter_veil_mistletoe : public SpellScriptLoader
{
PrepareSpellScript(spell_winter_veil_mistletoe_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_CREATE_MISTLETOE) ||
!sSpellMgr->GetSpellInfo(SPELL_CREATE_HOLLY) ||
@@ -311,13 +311,13 @@ class spell_winter_veil_mistletoe : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_winter_veil_mistletoe_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_winter_veil_mistletoe_SpellScript();
}
@@ -341,7 +341,7 @@ class spell_winter_veil_px_238_winter_wondervolt : public SpellScriptLoader
{
PrepareSpellScript(spell_winter_veil_px_238_winter_wondervolt_SpellScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_PX_238_WINTER_WONDERVOLT_TRANSFORM_1) ||
!sSpellMgr->GetSpellInfo(SPELL_PX_238_WINTER_WONDERVOLT_TRANSFORM_2) ||
@@ -373,7 +373,7 @@ class spell_winter_veil_px_238_winter_wondervolt : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_winter_veil_px_238_winter_wondervolt_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
@@ -382,7 +382,7 @@ class spell_winter_veil_px_238_winter_wondervolt : public SpellScriptLoader
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_winter_veil_px_238_winter_wondervolt_SpellScript();
}
diff --git a/src/server/scripts/Spells/spell_hunter.cpp b/src/server/scripts/Spells/spell_hunter.cpp
index 08f65d8323f..98ba9babb63 100644
--- a/src/server/scripts/Spells/spell_hunter.cpp
+++ b/src/server/scripts/Spells/spell_hunter.cpp
@@ -63,12 +63,12 @@ class spell_hun_aspect_of_the_beast : public SpellScriptLoader
{
PrepareAuraScript(spell_hun_aspect_of_the_beast_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
}
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_HUNTER_ASPECT_OF_THE_BEAST_PET))
return false;
@@ -89,14 +89,14 @@ class spell_hun_aspect_of_the_beast : public SpellScriptLoader
caster->CastSpell(caster, SPELL_HUNTER_ASPECT_OF_THE_BEAST_PET, true);
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectApply += AuraEffectApplyFn(spell_hun_aspect_of_the_beast_AuraScript::OnApply, EFFECT_0, SPELL_AURA_UNTRACKABLE, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_hun_aspect_of_the_beast_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_UNTRACKABLE, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_hun_aspect_of_the_beast_AuraScript();
}
@@ -112,7 +112,7 @@ class spell_hun_ascpect_of_the_viper : public SpellScriptLoader
{
PrepareAuraScript(spell_hun_ascpect_of_the_viper_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_HUNTER_ASPECT_OF_THE_VIPER_ENERGIZE))
return false;
@@ -134,13 +134,13 @@ class spell_hun_ascpect_of_the_viper : public SpellScriptLoader
GetTarget()->CastCustomSpell(SPELL_HUNTER_ASPECT_OF_THE_VIPER_ENERGIZE, SPELLVALUE_BASE_POINT0, mana, GetTarget(), true, NULL, aurEff);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectProc += AuraEffectProcFn(spell_hun_ascpect_of_the_viper_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_OBS_MOD_POWER);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_hun_ascpect_of_the_viper_AuraScript();
}
@@ -156,7 +156,7 @@ class spell_hun_chimera_shot : public SpellScriptLoader
{
PrepareSpellScript(spell_hun_chimera_shot_SpellScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_HUNTER_CHIMERA_SHOT_SERPENT) || !sSpellMgr->GetSpellInfo(SPELL_HUNTER_CHIMERA_SHOT_VIPER) || !sSpellMgr->GetSpellInfo(SPELL_HUNTER_CHIMERA_SHOT_SCORPID))
return false;
@@ -227,13 +227,13 @@ class spell_hun_chimera_shot : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_hun_chimera_shot_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_hun_chimera_shot_SpellScript();
}
@@ -252,19 +252,19 @@ class spell_hun_disengage : public SpellScriptLoader
SpellCastResult CheckCast()
{
Unit* caster = GetCaster();
- if (caster->GetTypeId() == TYPEID_PLAYER && !caster->isInCombat())
+ if (caster->GetTypeId() == TYPEID_PLAYER && !caster->IsInCombat())
return SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW;
return SPELL_CAST_OK;
}
- void Register()
+ void Register() OVERRIDE
{
OnCheckCast += SpellCheckCastFn(spell_hun_disengage_SpellScript::CheckCast);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_hun_disengage_SpellScript();
}
@@ -280,7 +280,7 @@ class spell_hun_invigoration : public SpellScriptLoader
{
PrepareSpellScript(spell_hun_invigoration_SpellScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_HUNTER_INVIGORATION_TRIGGERED))
return false;
@@ -295,13 +295,13 @@ class spell_hun_invigoration : public SpellScriptLoader
unitTarget->CastSpell(unitTarget, SPELL_HUNTER_INVIGORATION_TRIGGERED, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_hun_invigoration_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_hun_invigoration_SpellScript();
}
@@ -317,7 +317,7 @@ class spell_hun_last_stand_pet : public SpellScriptLoader
{
PrepareSpellScript(spell_hun_last_stand_pet_SpellScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_HUNTER_PET_LAST_STAND_TRIGGERED))
return false;
@@ -331,13 +331,13 @@ class spell_hun_last_stand_pet : public SpellScriptLoader
caster->CastCustomSpell(caster, SPELL_HUNTER_PET_LAST_STAND_TRIGGERED, &healthModSpellBasePoints0, NULL, NULL, true, NULL);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_hun_last_stand_pet_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_hun_last_stand_pet_SpellScript();
}
@@ -353,7 +353,7 @@ class spell_hun_masters_call : public SpellScriptLoader
{
PrepareSpellScript(spell_hun_masters_call_SpellScript);
- bool Validate(SpellInfo const* spellInfo)
+ bool Validate(SpellInfo const* spellInfo) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_HUNTER_MASTERS_CALL_TRIGGERED) || !sSpellMgr->GetSpellInfo(spellInfo->Effects[EFFECT_0].CalcValue()) || !sSpellMgr->GetSpellInfo(spellInfo->Effects[EFFECT_1].CalcValue()))
return false;
@@ -382,14 +382,14 @@ class spell_hun_masters_call : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_hun_masters_call_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
OnEffectHitTarget += SpellEffectFn(spell_hun_masters_call_SpellScript::HandleScriptEffect, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_hun_masters_call_SpellScript();
}
@@ -405,7 +405,7 @@ class spell_hun_misdirection : public SpellScriptLoader
{
PrepareAuraScript(spell_hun_misdirection_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_HUNTER_MISDIRECTION_PROC))
return false;
@@ -429,7 +429,7 @@ class spell_hun_misdirection : public SpellScriptLoader
GetTarget()->CastSpell(GetTarget(), SPELL_HUNTER_MISDIRECTION_PROC, true, NULL, aurEff);
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectRemove += AuraEffectRemoveFn(spell_hun_misdirection_AuraScript::OnRemove, EFFECT_1, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
DoCheckProc += AuraCheckProcFn(spell_hun_misdirection_AuraScript::CheckProc);
@@ -437,7 +437,7 @@ class spell_hun_misdirection : public SpellScriptLoader
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_hun_misdirection_AuraScript();
}
@@ -458,13 +458,13 @@ class spell_hun_misdirection_proc : public SpellScriptLoader
GetTarget()->ResetRedirectThreat();
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectRemove += AuraEffectRemoveFn(spell_hun_misdirection_proc_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_hun_misdirection_proc_AuraScript();
}
@@ -480,14 +480,14 @@ class spell_hun_pet_carrion_feeder : public SpellScriptLoader
{
PrepareSpellScript(spell_hun_pet_carrion_feeder_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
- if (!GetCaster()->isPet())
+ if (!GetCaster()->IsPet())
return false;
return true;
}
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_HUNTER_PET_CARRION_FEEDER_TRIGGERED))
return false;
@@ -514,14 +514,14 @@ class spell_hun_pet_carrion_feeder : public SpellScriptLoader
caster->CastSpell(caster, SPELL_HUNTER_PET_CARRION_FEEDER_TRIGGERED, false);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHit += SpellEffectFn(spell_hun_pet_carrion_feeder_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
OnCheckCast += SpellCheckCastFn(spell_hun_pet_carrion_feeder_SpellScript::CheckIfCorpseNear);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_hun_pet_carrion_feeder_SpellScript();
}
@@ -537,14 +537,14 @@ class spell_hun_pet_heart_of_the_phoenix : public SpellScriptLoader
{
PrepareSpellScript(spell_hun_pet_heart_of_the_phoenix_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
- if (!GetCaster()->isPet())
+ if (!GetCaster()->IsPet())
return false;
return true;
}
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_HUNTER_PET_HEART_OF_THE_PHOENIX_TRIGGERED) || !sSpellMgr->GetSpellInfo(SPELL_HUNTER_PET_HEART_OF_THE_PHOENIX_DEBUFF))
return false;
@@ -562,13 +562,13 @@ class spell_hun_pet_heart_of_the_phoenix : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_hun_pet_heart_of_the_phoenix_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_hun_pet_heart_of_the_phoenix_SpellScript();
}
@@ -584,7 +584,7 @@ class spell_hun_readiness : public SpellScriptLoader
{
PrepareSpellScript(spell_hun_readiness_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
}
@@ -611,13 +611,13 @@ class spell_hun_readiness : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_hun_readiness_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_hun_readiness_SpellScript();
}
@@ -633,7 +633,7 @@ class spell_hun_scatter_shot : public SpellScriptLoader
{
PrepareSpellScript(spell_hun_scatter_shot_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
}
@@ -647,13 +647,13 @@ class spell_hun_scatter_shot : public SpellScriptLoader
caster->SendAttackSwingCancelAttack();
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_hun_scatter_shot_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_hun_scatter_shot_SpellScript();
}
@@ -669,7 +669,7 @@ class spell_hun_sniper_training : public SpellScriptLoader
{
PrepareAuraScript(spell_hun_sniper_training_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_HUNTER_SNIPER_TRAINING_R1) || !sSpellMgr->GetSpellInfo(SPELL_HUNTER_SNIPER_TRAINING_BUFF_R1))
return false;
@@ -705,14 +705,14 @@ class spell_hun_sniper_training : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_hun_sniper_training_AuraScript::HandlePeriodic, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
OnEffectUpdatePeriodic += AuraEffectUpdatePeriodicFn(spell_hun_sniper_training_AuraScript::HandleUpdatePeriodic, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_hun_sniper_training_AuraScript();
}
@@ -743,7 +743,7 @@ class spell_hun_tame_beast : public SpellScriptLoader
return SPELL_FAILED_HIGHLEVEL;
// use SMSG_PET_TAME_FAILURE?
- if (!target->GetCreatureTemplate()->isTameable(caster->ToPlayer()->CanTameExoticPets()))
+ if (!target->GetCreatureTemplate()->IsTameable(caster->ToPlayer()->CanTameExoticPets()))
return SPELL_FAILED_BAD_TARGETS;
if (caster->GetPetGUID())
@@ -758,13 +758,13 @@ class spell_hun_tame_beast : public SpellScriptLoader
return SPELL_CAST_OK;
}
- void Register()
+ void Register() OVERRIDE
{
OnCheckCast += SpellCheckCastFn(spell_hun_tame_beast_SpellScript::CheckCast);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_hun_tame_beast_SpellScript();
}
@@ -789,14 +789,14 @@ class spell_hun_target_only_pet_and_owner : public SpellScriptLoader
targets.push_back(owner);
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_hun_target_only_pet_and_owner_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_CASTER_AREA_PARTY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_hun_target_only_pet_and_owner_SpellScript::FilterTargets, EFFECT_1, TARGET_UNIT_CASTER_AREA_PARTY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_hun_target_only_pet_and_owner_SpellScript();
}
diff --git a/src/server/scripts/Spells/spell_item.cpp b/src/server/scripts/Spells/spell_item.cpp
index 0c9817ba167..9f7386ab7e6 100644
--- a/src/server/scripts/Spells/spell_item.cpp
+++ b/src/server/scripts/Spells/spell_item.cpp
@@ -47,7 +47,7 @@ class spell_item_trigger_spell : public SpellScriptLoader
public:
spell_item_trigger_spell_SpellScript(uint32 triggeredSpellId) : SpellScript(), _triggeredSpellId(triggeredSpellId) { }
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(_triggeredSpellId))
return false;
@@ -61,18 +61,58 @@ class spell_item_trigger_spell : public SpellScriptLoader
caster->CastSpell(caster, _triggeredSpellId, true, item);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHit += SpellEffectFn(spell_item_trigger_spell_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_trigger_spell_SpellScript(_triggeredSpellId);
}
};
+enum AegisOfPreservation
+{
+ SPELL_AEGIS_HEAL = 23781
+};
+
+// 23780 - Aegis of Preservation
+class spell_item_aegis_of_preservation : public SpellScriptLoader
+{
+ public:
+ spell_item_aegis_of_preservation() : SpellScriptLoader("spell_item_aegis_of_preservation") { }
+
+ class spell_item_aegis_of_preservation_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_item_aegis_of_preservation_AuraScript);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_AEGIS_HEAL))
+ return false;
+ return true;
+ }
+
+ void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/)
+ {
+ PreventDefaultAction();
+ GetTarget()->CastSpell(GetTarget(), SPELL_AEGIS_HEAL, true, NULL, aurEff);
+ }
+
+ void Register() OVERRIDE
+ {
+ OnEffectProc += AuraEffectProcFn(spell_item_aegis_of_preservation_AuraScript::HandleProc, EFFECT_1, SPELL_AURA_PROC_TRIGGER_SPELL);
+ }
+ };
+
+ AuraScript* GetAuraScript() const OVERRIDE
+ {
+ return new spell_item_aegis_of_preservation_AuraScript();
+ }
+};
+
// 26400 - Arcane Shroud
class spell_item_arcane_shroud : public SpellScriptLoader
{
@@ -90,13 +130,13 @@ class spell_item_arcane_shroud : public SpellScriptLoader
amount += 2 * diff;
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_item_arcane_shroud_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_MOD_THREAT);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_item_arcane_shroud_AuraScript();
}
@@ -117,7 +157,7 @@ class spell_item_blessing_of_ancient_kings : public SpellScriptLoader
{
PrepareAuraScript(spell_item_blessing_of_ancient_kings_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_PROTECTION_OF_ANCIENT_KINGS))
return false;
@@ -146,14 +186,14 @@ class spell_item_blessing_of_ancient_kings : public SpellScriptLoader
GetTarget()->CastCustomSpell(SPELL_PROTECTION_OF_ANCIENT_KINGS, SPELLVALUE_BASE_POINT0, absorb, eventInfo.GetProcTarget(), true, NULL, aurEff);
}
- void Register()
+ void Register() OVERRIDE
{
DoCheckProc += AuraCheckProcFn(spell_item_blessing_of_ancient_kings_AuraScript::CheckProc);
OnEffectProc += AuraEffectProcFn(spell_item_blessing_of_ancient_kings_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_item_blessing_of_ancient_kings_AuraScript();
}
@@ -180,7 +220,7 @@ class spell_item_defibrillate : public SpellScriptLoader
public:
spell_item_defibrillate_SpellScript(uint8 chance, uint32 failSpell) : SpellScript(), _chance(chance), _failSpell(failSpell) { }
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (_failSpell && !sSpellMgr->GetSpellInfo(_failSpell))
return false;
@@ -197,7 +237,7 @@ class spell_item_defibrillate : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_item_defibrillate_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_RESURRECT);
}
@@ -207,7 +247,7 @@ class spell_item_defibrillate : public SpellScriptLoader
uint32 _failSpell;
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_defibrillate_SpellScript(_chance, _failSpell);
}
@@ -217,6 +257,46 @@ class spell_item_defibrillate : public SpellScriptLoader
uint32 _failSpell;
};
+enum DesperateDefense
+{
+ SPELL_DESPERATE_RAGE = 33898
+};
+
+// 33896 - Desperate Defense
+class spell_item_desperate_defense : public SpellScriptLoader
+{
+ public:
+ spell_item_desperate_defense() : SpellScriptLoader("spell_item_desperate_defense") { }
+
+ class spell_item_desperate_defense_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_item_desperate_defense_AuraScript);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_DESPERATE_RAGE))
+ return false;
+ return true;
+ }
+
+ void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/)
+ {
+ PreventDefaultAction();
+ GetTarget()->CastSpell(GetTarget(), SPELL_DESPERATE_RAGE, true, NULL, aurEff);
+ }
+
+ void Register() OVERRIDE
+ {
+ OnEffectProc += AuraEffectProcFn(spell_item_desperate_defense_AuraScript::HandleProc, EFFECT_2, SPELL_AURA_PROC_TRIGGER_SPELL);
+ }
+ };
+
+ AuraScript* GetAuraScript() const OVERRIDE
+ {
+ return new spell_item_desperate_defense_AuraScript();
+ }
+};
+
// http://www.wowhead.com/item=6522 Deviate Fish
// 8063 Deviate Fish
enum DeviateFishSpells
@@ -237,12 +317,12 @@ class spell_item_deviate_fish : public SpellScriptLoader
{
PrepareSpellScript(spell_item_deviate_fish_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
}
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
for (uint32 spellId = SPELL_SLEEPY; spellId <= SPELL_HEALTHY_SPIRIT; ++spellId)
if (!sSpellMgr->GetSpellInfo(spellId))
@@ -257,13 +337,13 @@ class spell_item_deviate_fish : public SpellScriptLoader
caster->CastSpell(caster, spellId, true, NULL);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHit += SpellEffectFn(spell_item_deviate_fish_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_deviate_fish_SpellScript();
}
@@ -287,7 +367,7 @@ class spell_item_flask_of_the_north : public SpellScriptLoader
{
PrepareSpellScript(spell_item_flask_of_the_north_SpellScript);
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_FLASK_OF_THE_NORTH_SP) || !sSpellMgr->GetSpellInfo(SPELL_FLASK_OF_THE_NORTH_AP) || !sSpellMgr->GetSpellInfo(SPELL_FLASK_OF_THE_NORTH_STR))
return false;
@@ -327,13 +407,13 @@ class spell_item_flask_of_the_north : public SpellScriptLoader
caster->CastSpell(caster, possibleSpells[irand(0, (possibleSpells.size() - 1))], true, NULL);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHit += SpellEffectFn(spell_item_flask_of_the_north_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_flask_of_the_north_SpellScript();
}
@@ -356,7 +436,7 @@ class spell_item_gnomish_death_ray : public SpellScriptLoader
{
PrepareSpellScript(spell_item_gnomish_death_ray_SpellScript);
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_GNOMISH_DEATH_RAY_SELF) || !sSpellMgr->GetSpellInfo(SPELL_GNOMISH_DEATH_RAY_TARGET))
return false;
@@ -375,13 +455,13 @@ class spell_item_gnomish_death_ray : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_item_gnomish_death_ray_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_gnomish_death_ray_SpellScript();
}
@@ -407,12 +487,12 @@ class spell_item_make_a_wish : public SpellScriptLoader
{
PrepareSpellScript(spell_item_make_a_wish_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
}
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_MR_PINCHYS_BLESSING) || !sSpellMgr->GetSpellInfo(SPELL_SUMMON_MIGHTY_MR_PINCHY) || !sSpellMgr->GetSpellInfo(SPELL_SUMMON_FURIOUS_MR_PINCHY) || !sSpellMgr->GetSpellInfo(SPELL_TINY_MAGICAL_CRAWDAD) || !sSpellMgr->GetSpellInfo(SPELL_MR_PINCHYS_GIFT))
return false;
@@ -433,13 +513,13 @@ class spell_item_make_a_wish : public SpellScriptLoader
caster->CastSpell(caster, spellId, true, NULL);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHit += SpellEffectFn(spell_item_make_a_wish_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_make_a_wish_SpellScript();
}
@@ -489,13 +569,13 @@ class spell_item_mingos_fortune_generator : public SpellScriptLoader
CreateItem(effIndex, newitemid);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHit += SpellEffectFn(spell_item_mingos_fortune_generator_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_mingos_fortune_generator_SpellScript();
}
@@ -516,27 +596,33 @@ class spell_item_necrotic_touch : public SpellScriptLoader
{
PrepareAuraScript(spell_item_necrotic_touch_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_ITEM_NECROTIC_TOUCH_PROC))
return false;
return true;
}
+ bool CheckProc(ProcEventInfo& eventInfo)
+ {
+ return eventInfo.GetProcTarget() && eventInfo.GetProcTarget()->IsAlive();
+ }
+
void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo)
{
PreventDefaultAction();
int32 bp = CalculatePct(int32(eventInfo.GetDamageInfo()->GetDamage()), aurEff->GetAmount());
- GetTarget()->CastCustomSpell(SPELL_ITEM_NECROTIC_TOUCH_PROC, SPELLVALUE_BASE_POINT0, bp, GetTarget(), true, NULL, aurEff);
+ GetTarget()->CastCustomSpell(SPELL_ITEM_NECROTIC_TOUCH_PROC, SPELLVALUE_BASE_POINT0, bp, eventInfo.GetProcTarget(), true, NULL, aurEff);
}
- void Register()
+ void Register() OVERRIDE
{
+ DoCheckProc += AuraCheckProcFn(spell_item_necrotic_touch_AuraScript::CheckProc);
OnEffectProc += AuraEffectProcFn(spell_item_necrotic_touch_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_item_necrotic_touch_AuraScript();
}
@@ -560,7 +646,7 @@ class spell_item_net_o_matic : public SpellScriptLoader
{
PrepareSpellScript(spell_item_net_o_matic_SpellScript);
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_NET_O_MATIC_TRIGGERED1) || !sSpellMgr->GetSpellInfo(SPELL_NET_O_MATIC_TRIGGERED2) || !sSpellMgr->GetSpellInfo(SPELL_NET_O_MATIC_TRIGGERED3))
return false;
@@ -582,13 +668,13 @@ class spell_item_net_o_matic : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_item_net_o_matic_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_net_o_matic_SpellScript();
}
@@ -612,12 +698,12 @@ class spell_item_noggenfogger_elixir : public SpellScriptLoader
{
PrepareSpellScript(spell_item_noggenfogger_elixir_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
}
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_NOGGENFOGGER_ELIXIR_TRIGGERED1) || !sSpellMgr->GetSpellInfo(SPELL_NOGGENFOGGER_ELIXIR_TRIGGERED2) || !sSpellMgr->GetSpellInfo(SPELL_NOGGENFOGGER_ELIXIR_TRIGGERED3))
return false;
@@ -637,13 +723,13 @@ class spell_item_noggenfogger_elixir : public SpellScriptLoader
caster->CastSpell(caster, spellId, true, NULL);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHit += SpellEffectFn(spell_item_noggenfogger_elixir_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_noggenfogger_elixir_SpellScript();
}
@@ -666,13 +752,13 @@ class spell_item_piccolo_of_the_flaming_fire : public SpellScriptLoader
target->HandleEmoteCommand(EMOTE_STATE_DANCE);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_item_piccolo_of_the_flaming_fire_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_piccolo_of_the_flaming_fire_SpellScript();
}
@@ -697,12 +783,12 @@ class spell_item_savory_deviate_delight : public SpellScriptLoader
{
PrepareSpellScript(spell_item_savory_deviate_delight_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
}
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
for (uint32 spellId = SPELL_FLIP_OUT_MALE; spellId <= SPELL_YAAARRRR_FEMALE; ++spellId)
if (!sSpellMgr->GetSpellInfo(spellId))
@@ -724,13 +810,13 @@ class spell_item_savory_deviate_delight : public SpellScriptLoader
caster->CastSpell(caster, spellId, true, NULL);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHit += SpellEffectFn(spell_item_savory_deviate_delight_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_savory_deviate_delight_SpellScript();
}
@@ -758,7 +844,7 @@ class spell_item_scroll_of_recall : public SpellScriptLoader
{
PrepareSpellScript(spell_item_scroll_of_recall_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
}
@@ -797,13 +883,13 @@ class spell_item_scroll_of_recall : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_item_scroll_of_recall_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_TELEPORT_UNITS);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_scroll_of_recall_SpellScript();
}
@@ -832,19 +918,19 @@ class spell_item_unsated_craving : public SpellScriptLoader
return false;
Unit* target = procInfo.GetActionTarget();
- if (!target || target->GetTypeId() != TYPEID_UNIT || target->GetCreatureType() == CREATURE_TYPE_CRITTER || (target->GetEntry() != NPC_SINDRAGOSA && target->isSummon()))
+ if (!target || target->GetTypeId() != TYPEID_UNIT || target->GetCreatureType() == CREATURE_TYPE_CRITTER || (target->GetEntry() != NPC_SINDRAGOSA && target->IsSummon()))
return false;
return true;
}
- void Register()
+ void Register() OVERRIDE
{
DoCheckProc += AuraCheckProcFn(spell_item_unsated_craving_AuraScript::CheckProc);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_item_unsated_craving_AuraScript();
}
@@ -869,13 +955,13 @@ class spell_item_shadows_fate : public SpellScriptLoader
caster->CastSpell(target, SPELL_SOUL_FEAST, TRIGGERED_FULL_MASK);
}
- void Register()
+ void Register() OVERRIDE
{
OnProc += AuraProcFn(spell_item_shadows_fate_AuraScript::HandleProc);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_item_shadows_fate_AuraScript();
}
@@ -900,7 +986,7 @@ class spell_item_shadowmourne : public SpellScriptLoader
{
PrepareAuraScript(spell_item_shadowmourne_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_SHADOWMOURNE_CHAOS_BANE_DAMAGE))
return false;
@@ -915,7 +1001,7 @@ class spell_item_shadowmourne : public SpellScriptLoader
{
if (GetTarget()->HasAura(SPELL_SHADOWMOURNE_CHAOS_BANE_BUFF)) // cant collect shards while under effect of Chaos Bane buff
return false;
- return eventInfo.GetProcTarget() && eventInfo.GetProcTarget()->isAlive();
+ return eventInfo.GetProcTarget() && eventInfo.GetProcTarget()->IsAlive();
}
void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo)
@@ -934,14 +1020,14 @@ class spell_item_shadowmourne : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
DoCheckProc += AuraCheckProcFn(spell_item_shadowmourne_AuraScript::CheckProc);
OnEffectProc += AuraEffectProcFn(spell_item_shadowmourne_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_item_shadowmourne_AuraScript();
}
@@ -957,7 +1043,7 @@ class spell_item_shadowmourne_soul_fragment : public SpellScriptLoader
{
PrepareAuraScript(spell_item_shadowmourne_soul_fragment_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_SHADOWMOURNE_VISUAL_LOW) || !sSpellMgr->GetSpellInfo(SPELL_SHADOWMOURNE_VISUAL_HIGH) || !sSpellMgr->GetSpellInfo(SPELL_SHADOWMOURNE_CHAOS_BANE_BUFF))
return false;
@@ -992,14 +1078,14 @@ class spell_item_shadowmourne_soul_fragment : public SpellScriptLoader
target->RemoveAurasDueToSpell(SPELL_SHADOWMOURNE_VISUAL_HIGH);
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectApply += AuraEffectApplyFn(spell_item_shadowmourne_soul_fragment_AuraScript::OnStackChange, EFFECT_0, SPELL_AURA_MOD_STAT, AuraEffectHandleModes(AURA_EFFECT_HANDLE_REAL | AURA_EFFECT_HANDLE_REAPPLY));
AfterEffectRemove += AuraEffectRemoveFn(spell_item_shadowmourne_soul_fragment_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_MOD_STAT, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_item_shadowmourne_soul_fragment_AuraScript();
}
@@ -1026,7 +1112,7 @@ class spell_item_six_demon_bag : public SpellScriptLoader
{
PrepareSpellScript(spell_item_six_demon_bag_SpellScript);
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_FROSTBOLT) || !sSpellMgr->GetSpellInfo(SPELL_POLYMORPH) || !sSpellMgr->GetSpellInfo(SPELL_SUMMON_FELHOUND_MINION) || !sSpellMgr->GetSpellInfo(SPELL_FIREBALL) || !sSpellMgr->GetSpellInfo(SPELL_CHAIN_LIGHTNING) || !sSpellMgr->GetSpellInfo(SPELL_ENVELOPING_WINDS))
return false;
@@ -1064,13 +1150,13 @@ class spell_item_six_demon_bag : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_item_six_demon_bag_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_six_demon_bag_SpellScript();
}
@@ -1093,13 +1179,13 @@ class spell_item_the_eye_of_diminution : public SpellScriptLoader
amount += diff;
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_item_the_eye_of_diminution_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_MOD_THREAT);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_item_the_eye_of_diminution_AuraScript();
}
@@ -1123,11 +1209,11 @@ class spell_item_underbelly_elixir : public SpellScriptLoader
{
PrepareSpellScript(spell_item_underbelly_elixir_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
}
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_UNDERBELLY_ELIXIR_TRIGGERED1) || !sSpellMgr->GetSpellInfo(SPELL_UNDERBELLY_ELIXIR_TRIGGERED2) || !sSpellMgr->GetSpellInfo(SPELL_UNDERBELLY_ELIXIR_TRIGGERED3))
return false;
@@ -1146,13 +1232,13 @@ class spell_item_underbelly_elixir : public SpellScriptLoader
caster->CastSpell(caster, spellId, true, NULL);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHit += SpellEffectFn(spell_item_underbelly_elixir_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_underbelly_elixir_SpellScript();
}
@@ -1174,7 +1260,7 @@ class spell_item_red_rider_air_rifle : public SpellScriptLoader
{
PrepareSpellScript(spell_item_red_rider_air_rifle_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_AIR_RIFLE_HOLD_VISUAL) || !sSpellMgr->GetSpellInfo(SPELL_AIR_RIFLE_SHOOT) || !sSpellMgr->GetSpellInfo(SPELL_AIR_RIFLE_SHOOT_SELF))
return false;
@@ -1198,13 +1284,13 @@ class spell_item_red_rider_air_rifle : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_item_red_rider_air_rifle_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_red_rider_air_rifle_SpellScript();
}
@@ -1249,13 +1335,13 @@ class spell_item_create_heart_candy : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_item_create_heart_candy_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_create_heart_candy_SpellScript();
}
@@ -1270,7 +1356,7 @@ class spell_item_book_of_glyph_mastery : public SpellScriptLoader
{
PrepareSpellScript(spell_item_book_of_glyph_mastery_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
}
@@ -1296,14 +1382,14 @@ class spell_item_book_of_glyph_mastery : public SpellScriptLoader
caster->learnSpell(discoveredSpellId, false);
}
- void Register()
+ void Register() OVERRIDE
{
OnCheckCast += SpellCheckCastFn(spell_item_book_of_glyph_mastery_SpellScript::CheckRequirement);
OnEffectHitTarget += SpellEffectFn(spell_item_book_of_glyph_mastery_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_book_of_glyph_mastery_SpellScript();
}
@@ -1337,13 +1423,13 @@ class spell_item_gift_of_the_harvester : public SpellScriptLoader
return SPELL_CAST_OK;
}
- void Register()
+ void Register() OVERRIDE
{
OnCheckCast += SpellCheckCastFn(spell_item_gift_of_the_harvester_SpellScript::CheckRequirement);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_gift_of_the_harvester_SpellScript();
}
@@ -1377,13 +1463,13 @@ class spell_item_map_of_the_geyser_fields : public SpellScriptLoader
return SPELL_FAILED_CUSTOM_ERROR;
}
- void Register()
+ void Register() OVERRIDE
{
OnCheckCast += SpellCheckCastFn(spell_item_map_of_the_geyser_fields_SpellScript::CheckSinkholes);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_map_of_the_geyser_fields_SpellScript();
}
@@ -1405,7 +1491,7 @@ class spell_item_vanquished_clutches : public SpellScriptLoader
{
PrepareSpellScript(spell_item_vanquished_clutches_SpellScript);
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_CRUSHER) || !sSpellMgr->GetSpellInfo(SPELL_CONSTRICTOR) || !sSpellMgr->GetSpellInfo(SPELL_CORRUPTOR))
return false;
@@ -1419,13 +1505,13 @@ class spell_item_vanquished_clutches : public SpellScriptLoader
caster->CastSpell(caster, spellId, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHit += SpellEffectFn(spell_item_vanquished_clutches_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_vanquished_clutches_SpellScript();
}
@@ -1456,7 +1542,7 @@ class spell_item_ashbringer : public SpellScriptLoader
{
PrepareSpellScript(spell_item_ashbringer_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
}
@@ -1474,13 +1560,13 @@ class spell_item_ashbringer : public SpellScriptLoader
player->PlayDirectSound(sound_id, player);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHit += SpellEffectFn(spell_item_ashbringer_SpellScript::OnDummyEffect, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_ashbringer_SpellScript();
}
@@ -1532,13 +1618,13 @@ class spell_magic_eater_food : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_magic_eater_food_AuraScript::HandleTriggerSpell, EFFECT_1, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_magic_eater_food_AuraScript();
}
@@ -1559,13 +1645,13 @@ class spell_item_shimmering_vessel : public SpellScriptLoader
target->setDeathState(JUST_RESPAWNED);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_item_shimmering_vessel_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_shimmering_vessel_SpellScript();
}
@@ -1586,12 +1672,12 @@ class spell_item_purify_helboar_meat : public SpellScriptLoader
{
PrepareSpellScript(spell_item_purify_helboar_meat_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
}
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_SUMMON_PURIFIED_HELBOAR_MEAT) || !sSpellMgr->GetSpellInfo(SPELL_SUMMON_TOXIC_HELBOAR_MEAT))
return false;
@@ -1604,13 +1690,13 @@ class spell_item_purify_helboar_meat : public SpellScriptLoader
caster->CastSpell(caster, roll_chance_i(50) ? SPELL_SUMMON_PURIFIED_HELBOAR_MEAT : SPELL_SUMMON_TOXIC_HELBOAR_MEAT, true, NULL);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_item_purify_helboar_meat_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_purify_helboar_meat_SpellScript();
}
@@ -1630,7 +1716,7 @@ class spell_item_crystal_prison_dummy_dnd : public SpellScriptLoader
{
PrepareSpellScript(spell_item_crystal_prison_dummy_dnd_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sObjectMgr->GetGameObjectTemplate(OBJECT_IMPRISONED_DOOMGUARD))
return false;
@@ -1640,20 +1726,20 @@ class spell_item_crystal_prison_dummy_dnd : public SpellScriptLoader
void HandleDummy(SpellEffIndex /* effIndex */)
{
if (Creature* target = GetHitCreature())
- if (target->isDead() && !target->isPet())
+ if (target->isDead() && !target->IsPet())
{
GetCaster()->SummonGameObject(OBJECT_IMPRISONED_DOOMGUARD, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), target->GetOrientation(), 0, 0, 0, 0, uint32(target->GetRespawnTime()-time(NULL)));
target->DespawnOrUnsummon();
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_item_crystal_prison_dummy_dnd_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_crystal_prison_dummy_dnd_SpellScript();
}
@@ -1677,7 +1763,7 @@ class spell_item_reindeer_transformation : public SpellScriptLoader
{
PrepareSpellScript(spell_item_reindeer_transformation_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_FLYING_REINDEER_310) || !sSpellMgr->GetSpellInfo(SPELL_FLYING_REINDEER_280)
|| !sSpellMgr->GetSpellInfo(SPELL_FLYING_REINDEER_60) || !sSpellMgr->GetSpellInfo(SPELL_REINDEER_100)
@@ -1715,13 +1801,13 @@ class spell_item_reindeer_transformation : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_item_reindeer_transformation_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_reindeer_transformation_SpellScript();
}
@@ -1742,7 +1828,7 @@ class spell_item_nigh_invulnerability : public SpellScriptLoader
{
PrepareSpellScript(spell_item_nigh_invulnerability_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_NIGH_INVULNERABILITY) || !sSpellMgr->GetSpellInfo(SPELL_COMPLETE_VULNERABILITY))
return false;
@@ -1761,13 +1847,13 @@ class spell_item_nigh_invulnerability : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_item_nigh_invulnerability_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_nigh_invulnerability_SpellScript();
}
@@ -1788,7 +1874,7 @@ class spell_item_poultryizer : public SpellScriptLoader
{
PrepareSpellScript(spell_item_poultryizer_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_POULTRYIZER_SUCCESS) || !sSpellMgr->GetSpellInfo(SPELL_POULTRYIZER_BACKFIRE))
return false;
@@ -1801,13 +1887,13 @@ class spell_item_poultryizer : public SpellScriptLoader
GetCaster()->CastSpell(GetHitUnit(), roll_chance_i(80) ? SPELL_POULTRYIZER_SUCCESS : SPELL_POULTRYIZER_BACKFIRE, true, GetCastItem());
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_item_poultryizer_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_poultryizer_SpellScript();
}
@@ -1828,11 +1914,11 @@ class spell_item_socrethars_stone : public SpellScriptLoader
{
PrepareSpellScript(spell_item_socrethars_stone_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return (GetCaster()->GetAreaId() == 3900 || GetCaster()->GetAreaId() == 3742);
}
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_SOCRETHAR_TO_SEAT) || !sSpellMgr->GetSpellInfo(SPELL_SOCRETHAR_FROM_SEAT))
return false;
@@ -1855,13 +1941,13 @@ class spell_item_socrethars_stone : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_item_socrethars_stone_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_socrethars_stone_SpellScript();
}
@@ -1883,14 +1969,14 @@ class spell_item_demon_broiled_surprise : public SpellScriptLoader
{
PrepareSpellScript(spell_item_demon_broiled_surprise_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_CREATE_DEMON_BROILED_SURPRISE) || !sObjectMgr->GetCreatureTemplate(NPC_ABYSSAL_FLAMEBRINGER) || !sObjectMgr->GetQuestTemplate(QUEST_SUPER_HOT_STEW))
return false;
return true;
}
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
}
@@ -1913,14 +1999,14 @@ class spell_item_demon_broiled_surprise : public SpellScriptLoader
return SPELL_FAILED_NOT_HERE;
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_item_demon_broiled_surprise_SpellScript::HandleDummy, EFFECT_1, SPELL_EFFECT_DUMMY);
OnCheckCast += SpellCheckCastFn(spell_item_demon_broiled_surprise_SpellScript::CheckRequirement);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_demon_broiled_surprise_SpellScript();
}
@@ -1940,7 +2026,7 @@ class spell_item_complete_raptor_capture : public SpellScriptLoader
{
PrepareSpellScript(spell_item_complete_raptor_capture_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_RAPTOR_CAPTURE_CREDIT))
return false;
@@ -1959,13 +2045,13 @@ class spell_item_complete_raptor_capture : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_item_complete_raptor_capture_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_complete_raptor_capture_SpellScript();
}
@@ -1986,7 +2072,7 @@ class spell_item_impale_leviroth : public SpellScriptLoader
{
PrepareSpellScript(spell_item_impale_leviroth_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sObjectMgr->GetCreatureTemplate(NPC_LEVIROTH))
return false;
@@ -2000,13 +2086,13 @@ class spell_item_impale_leviroth : public SpellScriptLoader
target->CastSpell(target, SPELL_LEVIROTH_SELF_IMPALE, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_item_impale_leviroth_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_impale_leviroth_SpellScript();
}
@@ -2031,7 +2117,7 @@ class spell_item_brewfest_mount_transformation : public SpellScriptLoader
{
PrepareSpellScript(spell_item_brewfest_mount_transformation_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_MOUNT_RAM_100) || !sSpellMgr->GetSpellInfo(SPELL_MOUNT_RAM_60) || !sSpellMgr->GetSpellInfo(SPELL_MOUNT_KODO_100) || !sSpellMgr->GetSpellInfo(SPELL_MOUNT_KODO_60))
return false;
@@ -2067,13 +2153,13 @@ class spell_item_brewfest_mount_transformation : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_item_brewfest_mount_transformation_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_brewfest_mount_transformation_SpellScript();
}
@@ -2094,14 +2180,14 @@ class spell_item_nitro_boots : public SpellScriptLoader
{
PrepareSpellScript(spell_item_nitro_boots_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
if (!GetCastItem())
return false;
return true;
}
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_NITRO_BOOTS_SUCCESS) || !sSpellMgr->GetSpellInfo(SPELL_NITRO_BOOTS_BACKFIRE))
return false;
@@ -2114,13 +2200,13 @@ class spell_item_nitro_boots : public SpellScriptLoader
caster->CastSpell(caster, roll_chance_i(95) ? SPELL_NITRO_BOOTS_SUCCESS : SPELL_NITRO_BOOTS_BACKFIRE, true, GetCastItem());
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_item_nitro_boots_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_nitro_boots_SpellScript();
}
@@ -2141,12 +2227,12 @@ class spell_item_teach_language : public SpellScriptLoader
{
PrepareSpellScript(spell_item_teach_language_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
}
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_LEARN_GNOMISH_BINARY) || !sSpellMgr->GetSpellInfo(SPELL_LEARN_GOBLIN_BINARY))
return false;
@@ -2161,13 +2247,13 @@ class spell_item_teach_language : public SpellScriptLoader
caster->CastSpell(caster, caster->GetTeam() == ALLIANCE ? SPELL_LEARN_GNOMISH_BINARY : SPELL_LEARN_GOBLIN_BINARY, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_item_teach_language_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_teach_language_SpellScript();
}
@@ -2187,12 +2273,12 @@ class spell_item_rocket_boots : public SpellScriptLoader
{
PrepareSpellScript(spell_item_rocket_boots_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
}
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_ROCKET_BOOTS_PROC))
return false;
@@ -2216,14 +2302,14 @@ class spell_item_rocket_boots : public SpellScriptLoader
return SPELL_CAST_OK;
}
- void Register()
+ void Register() OVERRIDE
{
OnCheckCast += SpellCheckCastFn(spell_item_rocket_boots_SpellScript::CheckCast);
OnEffectHitTarget += SpellEffectFn(spell_item_rocket_boots_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_rocket_boots_SpellScript();
}
@@ -2244,7 +2330,7 @@ class spell_item_pygmy_oil : public SpellScriptLoader
{
PrepareSpellScript(spell_item_pygmy_oil_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_PYGMY_OIL_PYGMY_AURA) || !sSpellMgr->GetSpellInfo(SPELL_PYGMY_OIL_SMALLER_AURA))
return false;
@@ -2269,13 +2355,13 @@ class spell_item_pygmy_oil : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_item_pygmy_oil_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_pygmy_oil_SpellScript();
}
@@ -2293,17 +2379,16 @@ class spell_item_unusual_compass : public SpellScriptLoader
void HandleDummy(SpellEffIndex /* effIndex */)
{
Unit* caster = GetCaster();
- caster->SetOrientation(frand(0.0f, 62832.0f) / 10000.0f);
- caster->SendMovementFlagUpdate(true);
+ caster->SetFacingTo(frand(0.0f, 2.0f * M_PI));
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_item_unusual_compass_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_unusual_compass_SpellScript();
}
@@ -2326,12 +2411,12 @@ class spell_item_chicken_cover : public SpellScriptLoader
{
PrepareSpellScript(spell_item_chicken_cover_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
}
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_CHICKEN_NET) || !sSpellMgr->GetSpellInfo(SPELL_CAPTURE_CHICKEN_ESCAPE) || !sObjectMgr->GetQuestTemplate(QUEST_CHICKEN_PARTY) || !sObjectMgr->GetQuestTemplate(QUEST_FLOWN_THE_COOP))
return false;
@@ -2351,13 +2436,13 @@ class spell_item_chicken_cover : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_item_chicken_cover_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_chicken_cover_SpellScript();
}
@@ -2396,13 +2481,13 @@ class spell_item_refocus : public SpellScriptLoader
caster->RemoveSpellCooldown(SPELL_VOLLEY, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_item_refocus_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_refocus_SpellScript();
}
@@ -2424,13 +2509,13 @@ class spell_item_muisek_vessel : public SpellScriptLoader
target->DespawnOrUnsummon();
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_item_muisek_vessel_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_muisek_vessel_SpellScript();
}
@@ -2455,13 +2540,13 @@ public:
GetCaster()->CastSpell(GetCaster(), SPELL_FORCE_CAST_SUMMON_GNOME_SOUL);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_item_greatmothers_soulcatcher_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_item_greatmothers_soulcatcher_SpellScript();
}
@@ -2478,11 +2563,13 @@ void AddSC_item_spell_scripts()
// 23075 Mithril Mechanical Dragonling
new spell_item_trigger_spell("spell_item_mithril_mechanical_dragonling", SPELL_MITHRIL_MECHANICAL_DRAGONLING);
+ new spell_item_aegis_of_preservation();
new spell_item_arcane_shroud();
new spell_item_blessing_of_ancient_kings();
new spell_item_defibrillate("spell_item_goblin_jumper_cables", 67, SPELL_GOBLIN_JUMPER_CABLES_FAIL);
new spell_item_defibrillate("spell_item_goblin_jumper_cables_xl", 50, SPELL_GOBLIN_JUMPER_CABLES_XL_FAIL);
new spell_item_defibrillate("spell_item_gnomish_army_knife", 33);
+ new spell_item_desperate_defense();
new spell_item_deviate_fish();
new spell_item_flask_of_the_north();
new spell_item_gnomish_death_ray();
diff --git a/src/server/scripts/Spells/spell_mage.cpp b/src/server/scripts/Spells/spell_mage.cpp
index e27248da6fc..680c2e35b35 100644
--- a/src/server/scripts/Spells/spell_mage.cpp
+++ b/src/server/scripts/Spells/spell_mage.cpp
@@ -53,7 +53,7 @@ enum MageSpells
class spell_mage_incanters_absorbtion_base_AuraScript : public AuraScript
{
public:
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_MAGE_INCANTERS_ABSORBTION_TRIGGERED))
return false;
@@ -84,7 +84,7 @@ class spell_mage_blast_wave : public SpellScriptLoader
{
PrepareSpellScript(spell_mage_blast_wave_SpellScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_MAGE_GLYPH_OF_BLAST_WAVE))
return false;
@@ -97,13 +97,13 @@ class spell_mage_blast_wave : public SpellScriptLoader
PreventHitDefaultEffect(effIndex);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_mage_blast_wave_SpellScript::HandleKnockBack, EFFECT_2, SPELL_EFFECT_KNOCK_BACK);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_mage_blast_wave_SpellScript();
}
@@ -119,7 +119,7 @@ class spell_mage_burnout : public SpellScriptLoader
{
PrepareAuraScript(spell_mage_burnout_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_MAGE_BURNOUT))
return false;
@@ -141,14 +141,14 @@ class spell_mage_burnout : public SpellScriptLoader
GetTarget()->CastCustomSpell(SPELL_MAGE_BURNOUT, SPELLVALUE_BASE_POINT0, mana, GetTarget(), true, NULL, aurEff);
}
- void Register()
+ void Register() OVERRIDE
{
DoCheckProc += AuraCheckProcFn(spell_mage_burnout_AuraScript::CheckProc);
OnEffectProc += AuraEffectProcFn(spell_mage_burnout_AuraScript::HandleProc, EFFECT_1, SPELL_AURA_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_mage_burnout_AuraScript();
}
@@ -164,7 +164,7 @@ class spell_mage_cold_snap : public SpellScriptLoader
{
PrepareSpellScript(spell_mage_cold_snap_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
}
@@ -189,13 +189,13 @@ class spell_mage_cold_snap : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHit += SpellEffectFn(spell_mage_cold_snap_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_mage_cold_snap_SpellScript();
}
@@ -212,7 +212,7 @@ class spell_mage_fire_frost_ward : public SpellScriptLoader
{
PrepareAuraScript(spell_mage_fire_frost_ward_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_MAGE_FROST_WARDING_TRIGGERED))
return false;
@@ -254,7 +254,7 @@ class spell_mage_fire_frost_ward : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_mage_fire_frost_ward_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_SCHOOL_ABSORB);
OnEffectAbsorb += AuraEffectAbsorbFn(spell_mage_fire_frost_ward_AuraScript::Absorb, EFFECT_0);
@@ -262,7 +262,7 @@ class spell_mage_fire_frost_ward : public SpellScriptLoader
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_mage_fire_frost_ward_AuraScript();
}
@@ -278,14 +278,14 @@ class spell_mage_focus_magic : public SpellScriptLoader
{
PrepareAuraScript(spell_mage_focus_magic_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_MAGE_FOCUS_MAGIC_PROC))
return false;
return true;
}
- bool Load()
+ bool Load() OVERRIDE
{
_procTarget = NULL;
return true;
@@ -294,7 +294,7 @@ class spell_mage_focus_magic : public SpellScriptLoader
bool CheckProc(ProcEventInfo& /*eventInfo*/)
{
_procTarget = GetCaster();
- return _procTarget && _procTarget->isAlive();
+ return _procTarget && _procTarget->IsAlive();
}
void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/)
@@ -303,7 +303,7 @@ class spell_mage_focus_magic : public SpellScriptLoader
GetTarget()->CastSpell(_procTarget, SPELL_MAGE_FOCUS_MAGIC_PROC, true, NULL, aurEff);
}
- void Register()
+ void Register() OVERRIDE
{
DoCheckProc += AuraCheckProcFn(spell_mage_focus_magic_AuraScript::CheckProc);
OnEffectProc += AuraEffectProcFn(spell_mage_focus_magic_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_MOD_SPELL_CRIT_CHANCE);
@@ -313,7 +313,7 @@ class spell_mage_focus_magic : public SpellScriptLoader
Unit* _procTarget;
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_mage_focus_magic_AuraScript();
}
@@ -349,14 +349,14 @@ class spell_mage_ice_barrier : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_mage_ice_barrier_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_SCHOOL_ABSORB);
AfterEffectAbsorb += AuraEffectAbsorbFn(spell_mage_ice_barrier_AuraScript::Trigger, EFFECT_0);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_mage_ice_barrier_AuraScript();
}
@@ -372,7 +372,7 @@ class spell_mage_ignite : public SpellScriptLoader
{
PrepareAuraScript(spell_mage_ignite_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_MAGE_IGNITE))
return false;
@@ -396,14 +396,14 @@ class spell_mage_ignite : public SpellScriptLoader
GetTarget()->CastCustomSpell(SPELL_MAGE_IGNITE, SPELLVALUE_BASE_POINT0, amount, eventInfo.GetProcTarget(), true, NULL, aurEff);
}
- void Register()
+ void Register() OVERRIDE
{
DoCheckProc += AuraCheckProcFn(spell_mage_ignite_AuraScript::CheckProc);
OnEffectProc += AuraEffectProcFn(spell_mage_ignite_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_mage_ignite_AuraScript();
}
@@ -419,7 +419,7 @@ class spell_mage_living_bomb : public SpellScriptLoader
{
PrepareAuraScript(spell_mage_living_bomb_AuraScript);
- bool Validate(SpellInfo const* spell)
+ bool Validate(SpellInfo const* spell) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(uint32(spell->Effects[EFFECT_1].CalcValue())))
return false;
@@ -436,13 +436,13 @@ class spell_mage_living_bomb : public SpellScriptLoader
caster->CastSpell(GetTarget(), uint32(aurEff->GetAmount()), true, NULL, aurEff);
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectRemove += AuraEffectRemoveFn(spell_mage_living_bomb_AuraScript::AfterRemove, EFFECT_1, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_mage_living_bomb_AuraScript();
}
@@ -473,14 +473,14 @@ class spell_mage_mana_shield : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_mage_mana_shield_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_MANA_SHIELD);
AfterEffectManaShield += AuraEffectManaShieldFn(spell_mage_mana_shield_AuraScript::Trigger, EFFECT_0);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_mage_mana_shield_AuraScript();
}
@@ -496,7 +496,7 @@ class spell_mage_master_of_elements : public SpellScriptLoader
{
PrepareAuraScript(spell_mage_master_of_elements_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_MAGE_MASTER_OF_ELEMENTS_ENERGIZE))
return false;
@@ -519,14 +519,14 @@ class spell_mage_master_of_elements : public SpellScriptLoader
GetTarget()->CastCustomSpell(SPELL_MAGE_MASTER_OF_ELEMENTS_ENERGIZE, SPELLVALUE_BASE_POINT0, mana, GetTarget(), true, NULL, aurEff);
}
- void Register()
+ void Register() OVERRIDE
{
DoCheckProc += AuraCheckProcFn(spell_mage_master_of_elements_AuraScript::CheckProc);
OnEffectProc += AuraEffectProcFn(spell_mage_master_of_elements_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_mage_master_of_elements_AuraScript();
}
@@ -550,7 +550,7 @@ class spell_mage_polymorph_cast_visual : public SpellScriptLoader
static const uint32 PolymorhForms[6];
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
// check if spell ids exist in dbc
for (uint32 i = 0; i < 6; ++i)
@@ -566,13 +566,13 @@ class spell_mage_polymorph_cast_visual : public SpellScriptLoader
target->CastSpell(target, PolymorhForms[urand(0, 5)], true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_mage_polymorph_cast_visual_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_mage_polymorph_cast_visual_SpellScript();
}
@@ -598,7 +598,7 @@ class spell_mage_summon_water_elemental : public SpellScriptLoader
{
PrepareSpellScript(spell_mage_summon_water_elemental_SpellScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_MAGE_GLYPH_OF_ETERNAL_WATER) || !sSpellMgr->GetSpellInfo(SPELL_MAGE_SUMMON_WATER_ELEMENTAL_TEMPORARY) || !sSpellMgr->GetSpellInfo(SPELL_MAGE_SUMMON_WATER_ELEMENTAL_PERMANENT))
return false;
@@ -615,13 +615,13 @@ class spell_mage_summon_water_elemental : public SpellScriptLoader
caster->CastSpell(caster, SPELL_MAGE_SUMMON_WATER_ELEMENTAL_TEMPORARY, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHit += SpellEffectFn(spell_mage_summon_water_elemental_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_mage_summon_water_elemental_SpellScript();
}
diff --git a/src/server/scripts/Spells/spell_paladin.cpp b/src/server/scripts/Spells/spell_paladin.cpp
index 6be2453affb..18d3e07d43b 100644
--- a/src/server/scripts/Spells/spell_paladin.cpp
+++ b/src/server/scripts/Spells/spell_paladin.cpp
@@ -55,16 +55,32 @@ enum PaladinSpells
SPELL_PALADIN_HAND_OF_SACRIFICE = 6940,
SPELL_PALADIN_DIVINE_SACRIFICE = 64205,
+ SPELL_PALADIN_ITEM_HEALING_TRANCE = 37706,
+
SPELL_PALADIN_GLYPH_OF_SALVATION = 63225,
SPELL_PALADIN_RIGHTEOUS_DEFENSE_TAUNT = 31790,
SPELL_PALADIN_SEAL_OF_RIGHTEOUSNESS = 25742,
+ SPELL_PALADIN_CONCENTRACTION_AURA = 19746,
+ SPELL_PALADIN_SANCTIFIED_RETRIBUTION_R1 = 31869,
+ SPELL_PALADIN_SWIFT_RETRIBUTION_R1 = 53379,
+
+ SPELL_PALADIN_IMPROVED_CONCENTRACTION_AURA = 63510,
+ SPELL_PALADIN_IMPROVED_DEVOTION_AURA = 63514,
+ SPELL_PALADIN_SANCTIFIED_RETRIBUTION_AURA = 63531,
+ SPELL_PALADIN_AURA_MASTERY_IMMUNE = 64364,
+
SPELL_GENERIC_ARENA_DAMPENING = 74410,
SPELL_GENERIC_BATTLEGROUND_DAMPENING = 74411
};
+enum PaladinSpellIcons
+{
+ PALADIN_ICON_ID_RETRIBUTION_AURA = 555
+};
+
// 31850 - Ardent Defender
class spell_pal_ardent_defender : public SpellScriptLoader
{
@@ -82,7 +98,7 @@ class spell_pal_ardent_defender : public SpellScriptLoader
PAL_SPELL_ARDENT_DEFENDER_HEAL = 66235,
};
- bool Load()
+ bool Load() OVERRIDE
{
healPct = GetSpellInfo()->Effects[EFFECT_1].CalcValue();
absorbPct = GetSpellInfo()->Effects[EFFECT_0].CalcValue();
@@ -128,19 +144,93 @@ class spell_pal_ardent_defender : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_pal_ardent_defender_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_SCHOOL_ABSORB);
OnEffectAbsorb += AuraEffectAbsorbFn(spell_pal_ardent_defender_AuraScript::Absorb, EFFECT_0);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_pal_ardent_defender_AuraScript();
}
};
+// 31821 - Aura Mastery
+class spell_pal_aura_mastery : public SpellScriptLoader
+{
+ public:
+ spell_pal_aura_mastery() : SpellScriptLoader("spell_pal_aura_mastery") { }
+
+ class spell_pal_aura_mastery_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_pal_aura_mastery_AuraScript);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_AURA_MASTERY_IMMUNE))
+ return false;
+ return true;
+ }
+
+ void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ GetTarget()->CastSpell(GetTarget(), SPELL_PALADIN_AURA_MASTERY_IMMUNE, true);
+ }
+
+ void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ GetTarget()->RemoveOwnedAura(SPELL_PALADIN_AURA_MASTERY_IMMUNE, GetCasterGUID());
+ }
+
+ void Register() OVERRIDE
+ {
+ AfterEffectApply += AuraEffectApplyFn(spell_pal_aura_mastery_AuraScript::HandleEffectApply, EFFECT_0, SPELL_AURA_ADD_PCT_MODIFIER, AURA_EFFECT_HANDLE_REAL);
+ AfterEffectRemove += AuraEffectRemoveFn(spell_pal_aura_mastery_AuraScript::HandleEffectRemove, EFFECT_0, SPELL_AURA_ADD_PCT_MODIFIER, AURA_EFFECT_HANDLE_REAL);
+ }
+ };
+
+ AuraScript* GetAuraScript() const OVERRIDE
+ {
+ return new spell_pal_aura_mastery_AuraScript();
+ }
+};
+
+// 64364 - Aura Mastery Immune
+class spell_pal_aura_mastery_immune : public SpellScriptLoader
+{
+ public:
+ spell_pal_aura_mastery_immune() : SpellScriptLoader("spell_pal_aura_mastery_immune") { }
+
+ class spell_pal_aura_mastery_immune_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_pal_aura_mastery_immune_AuraScript);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_CONCENTRACTION_AURA))
+ return false;
+ return true;
+ }
+
+ bool CheckAreaTarget(Unit* target)
+ {
+ return target->HasAura(SPELL_PALADIN_CONCENTRACTION_AURA, GetCasterGUID());
+ }
+
+ void Register() OVERRIDE
+ {
+ DoCheckAreaTarget += AuraCheckAreaTargetFn(spell_pal_aura_mastery_immune_AuraScript::CheckAreaTarget);
+ }
+ };
+
+ AuraScript* GetAuraScript() const OVERRIDE
+ {
+ return new spell_pal_aura_mastery_immune_AuraScript();
+ }
+};
+
// 37877 - Blessing of Faith
class spell_pal_blessing_of_faith : public SpellScriptLoader
{
@@ -151,7 +241,7 @@ class spell_pal_blessing_of_faith : public SpellScriptLoader
{
PrepareSpellScript(spell_pal_blessing_of_faith_SpellScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_BLESSING_OF_LOWER_CITY_DRUID) || !sSpellMgr->GetSpellInfo(SPELL_PALADIN_BLESSING_OF_LOWER_CITY_PALADIN) || !sSpellMgr->GetSpellInfo(SPELL_PALADIN_BLESSING_OF_LOWER_CITY_PRIEST) || !sSpellMgr->GetSpellInfo(SPELL_PALADIN_BLESSING_OF_LOWER_CITY_SHAMAN))
return false;
@@ -185,13 +275,13 @@ class spell_pal_blessing_of_faith : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_pal_blessing_of_faith_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_pal_blessing_of_faith_SpellScript();
}
@@ -208,7 +298,7 @@ class spell_pal_blessing_of_sanctuary : public SpellScriptLoader
{
PrepareAuraScript(spell_pal_blessing_of_sanctuary_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_BLESSING_OF_SANCTUARY_BUFF))
return false;
@@ -241,7 +331,7 @@ class spell_pal_blessing_of_sanctuary : public SpellScriptLoader
GetTarget()->CastSpell(GetTarget(), SPELL_PALADIN_BLESSING_OF_SANCTUARY_ENERGIZE, true, NULL, aurEff);
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectApply += AuraEffectApplyFn(spell_pal_blessing_of_sanctuary_AuraScript::HandleEffectApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
AfterEffectRemove += AuraEffectRemoveFn(spell_pal_blessing_of_sanctuary_AuraScript::HandleEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
@@ -250,7 +340,7 @@ class spell_pal_blessing_of_sanctuary : public SpellScriptLoader
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_pal_blessing_of_sanctuary_AuraScript();
}
@@ -269,7 +359,7 @@ class spell_pal_divine_sacrifice : public SpellScriptLoader
uint32 groupSize, minHpPct;
int32 remainingAmount;
- bool Load()
+ bool Load() OVERRIDE
{
if (Unit* caster = GetCaster())
@@ -300,13 +390,13 @@ class spell_pal_divine_sacrifice : public SpellScriptLoader
caster->RemoveAura(SPELL_PALADIN_DIVINE_SACRIFICE);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectSplit += AuraEffectSplitFn(spell_pal_divine_sacrifice_AuraScript::Split, EFFECT_0);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_pal_divine_sacrifice_AuraScript();
}
@@ -324,14 +414,14 @@ class spell_pal_divine_storm : public SpellScriptLoader
uint32 healPct;
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_DIVINE_STORM_DUMMY))
return false;
return true;
}
- bool Load()
+ bool Load() OVERRIDE
{
healPct = GetSpellInfo()->Effects[EFFECT_1].CalcValue(GetCaster());
return true;
@@ -343,13 +433,13 @@ class spell_pal_divine_storm : public SpellScriptLoader
caster->CastCustomSpell(SPELL_PALADIN_DIVINE_STORM_DUMMY, SPELLVALUE_BASE_POINT0, (GetHitDamage() * healPct) / 100, caster, true);
}
- void Register()
+ void Register() OVERRIDE
{
AfterHit += SpellHitFn(spell_pal_divine_storm_SpellScript::TriggerHeal);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_pal_divine_storm_SpellScript();
}
@@ -365,7 +455,7 @@ class spell_pal_divine_storm_dummy : public SpellScriptLoader
{
PrepareSpellScript(spell_pal_divine_storm_dummy_SpellScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_DIVINE_STORM_HEAL))
return false;
@@ -388,14 +478,14 @@ class spell_pal_divine_storm_dummy : public SpellScriptLoader
private:
uint32 _targetCount;
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_pal_divine_storm_dummy_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_pal_divine_storm_dummy_SpellScript::CountTargets, EFFECT_0, TARGET_UNIT_CASTER_AREA_RAID);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_pal_divine_storm_dummy_SpellScript();
}
@@ -425,13 +515,13 @@ class spell_pal_exorcism_and_holy_wrath_damage : public SpellScriptLoader
spellMod->value = aurEff->GetAmount();
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcSpellMod += AuraEffectCalcSpellModFn(spell_pal_exorcism_and_holy_wrath_damage_AuraScript::HandleEffectCalcSpellMod, EFFECT_0, SPELL_AURA_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_pal_exorcism_and_holy_wrath_damage_AuraScript();
}
@@ -447,7 +537,7 @@ class spell_pal_eye_for_an_eye : public SpellScriptLoader
{
PrepareAuraScript(spell_pal_eye_for_an_eye_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_EYE_FOR_AN_EYE_DAMAGE))
return false;
@@ -462,13 +552,13 @@ class spell_pal_eye_for_an_eye : public SpellScriptLoader
GetTarget()->CastCustomSpell(SPELL_PALADIN_EYE_FOR_AN_EYE_DAMAGE, SPELLVALUE_BASE_POINT0, damage, eventInfo.GetProcTarget(), true, NULL, aurEff);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectProc += AuraEffectProcFn(spell_pal_eye_for_an_eye_AuraScript::OnProc, EFFECT_0, SPELL_AURA_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_pal_eye_for_an_eye_AuraScript();
}
@@ -484,7 +574,7 @@ class spell_pal_guarded_by_the_light : public SpellScriptLoader
{
PrepareSpellScript(spell_pal_guarded_by_the_light_SpellScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_DIVINE_PLEA))
return false;
@@ -498,13 +588,13 @@ class spell_pal_guarded_by_the_light : public SpellScriptLoader
aura->RefreshDuration();
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_pal_guarded_by_the_light_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_pal_guarded_by_the_light_SpellScript();
}
@@ -522,7 +612,7 @@ class spell_pal_hand_of_sacrifice : public SpellScriptLoader
int32 remainingAmount;
- bool Load()
+ bool Load() OVERRIDE
{
if (Unit* caster = GetCaster())
{
@@ -542,13 +632,13 @@ class spell_pal_hand_of_sacrifice : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectSplit += AuraEffectSplitFn(spell_pal_hand_of_sacrifice_AuraScript::Split, EFFECT_0);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_pal_hand_of_sacrifice_AuraScript();
}
@@ -575,13 +665,13 @@ class spell_pal_hand_of_salvation : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_pal_hand_of_salvation_AuraScript::CalculateAmount, EFFECT_1, SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_pal_hand_of_salvation_AuraScript();
}
@@ -597,16 +687,17 @@ class spell_pal_holy_shock : public SpellScriptLoader
{
PrepareSpellScript(spell_pal_holy_shock_SpellScript);
- bool Validate(SpellInfo const* spell)
+ bool Validate(SpellInfo const* spellInfo) OVERRIDE
{
- if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_HOLY_SHOCK_R1))
+ SpellInfo const* firstRankSpellInfo = sSpellMgr->GetSpellInfo(SPELL_PALADIN_HOLY_SHOCK_R1);
+ if (!firstRankSpellInfo)
return false;
// can't use other spell than holy shock due to spell_ranks dependency
- if (sSpellMgr->GetFirstSpellInChain(SPELL_PALADIN_HOLY_SHOCK_R1) != sSpellMgr->GetFirstSpellInChain(spell->Id))
+ if (!spellInfo->IsRankOf(firstRankSpellInfo))
return false;
- uint8 rank = sSpellMgr->GetSpellRank(spell->Id);
+ uint8 rank = spellInfo->GetRank();
if (!sSpellMgr->GetSpellWithRank(SPELL_PALADIN_HOLY_SHOCK_R1_DAMAGE, rank, true) || !sSpellMgr->GetSpellWithRank(SPELL_PALADIN_HOLY_SHOCK_R1_HEALING, rank, true))
return false;
@@ -618,11 +709,11 @@ class spell_pal_holy_shock : public SpellScriptLoader
Unit* caster = GetCaster();
if (Unit* unitTarget = GetHitUnit())
{
- uint8 rank = sSpellMgr->GetSpellRank(GetSpellInfo()->Id);
+ uint8 rank = GetSpellInfo()->GetRank();
if (caster->IsFriendlyTo(unitTarget))
- caster->CastSpell(unitTarget, sSpellMgr->GetSpellWithRank(SPELL_PALADIN_HOLY_SHOCK_R1_HEALING, rank), true, 0);
+ caster->CastSpell(unitTarget, sSpellMgr->GetSpellWithRank(SPELL_PALADIN_HOLY_SHOCK_R1_HEALING, rank), true);
else
- caster->CastSpell(unitTarget, sSpellMgr->GetSpellWithRank(SPELL_PALADIN_HOLY_SHOCK_R1_DAMAGE, rank), true, 0);
+ caster->CastSpell(unitTarget, sSpellMgr->GetSpellWithRank(SPELL_PALADIN_HOLY_SHOCK_R1_DAMAGE, rank), true);
}
}
@@ -645,19 +736,161 @@ class spell_pal_holy_shock : public SpellScriptLoader
return SPELL_CAST_OK;
}
- void Register()
+ void Register() OVERRIDE
{
OnCheckCast += SpellCheckCastFn(spell_pal_holy_shock_SpellScript::CheckCast);
OnEffectHitTarget += SpellEffectFn(spell_pal_holy_shock_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_pal_holy_shock_SpellScript();
}
};
+// Maybe this is incorrect
+// These spells should always be cast on login, regardless of whether the player has the talent or not
+
+// -20254 - Improved Concentration Aura
+// -20138 - Improved Devotion Aura
+// 31869 - Sanctified Retribution
+// -53379 - Swift Retribution
+class spell_pal_improved_aura : public SpellScriptLoader
+{
+ public:
+ spell_pal_improved_aura(char const* name, uint32 spellId) : SpellScriptLoader(name), _spellId(spellId) { }
+
+ class spell_pal_improved_aura_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_pal_improved_aura_AuraScript);
+
+ public:
+ spell_pal_improved_aura_AuraScript(uint32 spellId) : AuraScript(), _spellId(spellId) { }
+
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
+ {
+ if (!sSpellMgr->GetSpellInfo(_spellId)
+ || !sSpellMgr->GetSpellInfo(SPELL_PALADIN_SANCTIFIED_RETRIBUTION_R1)
+ || !sSpellMgr->GetSpellInfo(SPELL_PALADIN_SWIFT_RETRIBUTION_R1))
+ return false;
+ return true;
+ }
+
+ void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ Unit* target = GetTarget();
+ if (!target->GetOwnedAura(_spellId))
+ target->CastSpell(target, _spellId, true);
+ }
+
+ void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ uint32 spellId = GetSpellInfo()->GetFirstRankSpell()->Id;
+
+ if ((spellId == SPELL_PALADIN_SANCTIFIED_RETRIBUTION_R1 && GetTarget()->GetAuraOfRankedSpell(SPELL_PALADIN_SWIFT_RETRIBUTION_R1))
+ || (spellId == SPELL_PALADIN_SWIFT_RETRIBUTION_R1 && GetTarget()->GetAuraOfRankedSpell(SPELL_PALADIN_SANCTIFIED_RETRIBUTION_R1)))
+ return;
+
+ GetTarget()->RemoveOwnedAura(_spellId, GetCasterGUID());
+ }
+
+ void Register() OVERRIDE
+ {
+ AfterEffectApply += AuraEffectApplyFn(spell_pal_improved_aura_AuraScript::HandleEffectApply, EFFECT_FIRST_FOUND, SPELL_AURA_ADD_FLAT_MODIFIER, AURA_EFFECT_HANDLE_REAL);
+ AfterEffectRemove += AuraEffectRemoveFn(spell_pal_improved_aura_AuraScript::HandleEffectRemove, EFFECT_FIRST_FOUND, SPELL_AURA_ADD_FLAT_MODIFIER, AURA_EFFECT_HANDLE_REAL);
+ }
+
+ private:
+ uint32 _spellId;
+ };
+
+ AuraScript* GetAuraScript() const OVERRIDE
+ {
+ return new spell_pal_improved_aura_AuraScript(_spellId);
+ }
+
+ private:
+ uint32 _spellId;
+};
+
+// 63510 - Improved Concentraction Aura (Area Aura)
+// 63514 - Improved Devotion Aura (Area Aura)
+// 63531 - Sanctified Retribution (Area Aura)
+class spell_pal_improved_aura_effect : public SpellScriptLoader
+{
+ public:
+ spell_pal_improved_aura_effect(char const* name) : SpellScriptLoader(name) { }
+
+ class spell_pal_improved_aura_effect_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_pal_improved_aura_effect_AuraScript);
+
+ bool CheckAreaTarget(Unit* target)
+ {
+ Unit::AuraApplicationMap& appliedAuras = target->GetAppliedAuras();
+ for (Unit::AuraApplicationMap::iterator itr = appliedAuras.begin(); itr != appliedAuras.end(); ++itr)
+ {
+ Aura const* aura = itr->second->GetBase();
+ if (aura->GetSpellInfo()->GetSpellSpecific() == SPELL_SPECIFIC_AURA && aura->GetCasterGUID() == GetCasterGUID())
+ {
+ // Not allow for Retribution Aura (prevent stacking) - Retribution Aura Overflow and Retribution Aura has same spell effects
+ if (GetSpellInfo()->Id == SPELL_PALADIN_SANCTIFIED_RETRIBUTION_AURA && aura->GetSpellInfo()->SpellIconID == PALADIN_ICON_ID_RETRIBUTION_AURA)
+ return false;
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ void Register() OVERRIDE
+ {
+ DoCheckAreaTarget += AuraCheckAreaTargetFn(spell_pal_improved_aura_effect_AuraScript::CheckAreaTarget);
+ }
+ };
+
+ AuraScript* GetAuraScript() const OVERRIDE
+ {
+ return new spell_pal_improved_aura_effect_AuraScript();
+ }
+};
+
+// 37705 - Healing Discount
+class spell_pal_item_healing_discount : public SpellScriptLoader
+{
+ public:
+ spell_pal_item_healing_discount() : SpellScriptLoader("spell_pal_item_healing_discount") { }
+
+ class spell_pal_item_healing_discount_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_pal_item_healing_discount_AuraScript);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_ITEM_HEALING_TRANCE))
+ return false;
+ return true;
+ }
+
+ void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/)
+ {
+ PreventDefaultAction();
+ GetTarget()->CastSpell(GetTarget(), SPELL_PALADIN_ITEM_HEALING_TRANCE, true, NULL, aurEff);
+ }
+
+ void Register() OVERRIDE
+ {
+ OnEffectProc += AuraEffectProcFn(spell_pal_item_healing_discount_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL);
+ }
+ };
+
+ AuraScript* GetAuraScript() const OVERRIDE
+ {
+ return new spell_pal_item_healing_discount_AuraScript();
+ }
+};
+
// 20425 - Judgement of Command
class spell_pal_judgement_of_command : public SpellScriptLoader
{
@@ -675,13 +908,13 @@ class spell_pal_judgement_of_command : public SpellScriptLoader
GetCaster()->CastSpell(unitTarget, spell_proto, true, NULL);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_pal_judgement_of_command_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_pal_judgement_of_command_SpellScript();
}
@@ -697,7 +930,7 @@ class spell_pal_lay_on_hands : public SpellScriptLoader
{
PrepareSpellScript(spell_pal_lay_on_hands_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_FORBEARANCE))
return false;
@@ -730,14 +963,14 @@ class spell_pal_lay_on_hands : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnCheckCast += SpellCheckCastFn(spell_pal_lay_on_hands_SpellScript::CheckCast);
AfterHit += SpellHitFn(spell_pal_lay_on_hands_SpellScript::HandleScript);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_pal_lay_on_hands_SpellScript();
}
@@ -753,7 +986,7 @@ class spell_pal_righteous_defense : public SpellScriptLoader
{
PrepareSpellScript(spell_pal_righteous_defense_SpellScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_RIGHTEOUS_DEFENSE_TAUNT))
return false;
@@ -789,7 +1022,7 @@ class spell_pal_righteous_defense : public SpellScriptLoader
GetCaster()->CastSpell(target, SPELL_PALADIN_RIGHTEOUS_DEFENSE_TAUNT, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnCheckCast += SpellCheckCastFn(spell_pal_righteous_defense_SpellScript::CheckCast);
//! WORKAROUND
@@ -801,7 +1034,7 @@ class spell_pal_righteous_defense : public SpellScriptLoader
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_pal_righteous_defense_SpellScript();
}
@@ -839,13 +1072,13 @@ class spell_pal_sacred_shield : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_pal_sacred_shield_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_SCHOOL_ABSORB);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_pal_sacred_shield_AuraScript();
}
@@ -861,7 +1094,7 @@ class spell_pal_seal_of_righteousness : public SpellScriptLoader
{
PrepareAuraScript(spell_pal_seal_of_righteousness_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_SEAL_OF_RIGHTEOUSNESS))
return false;
@@ -884,14 +1117,14 @@ class spell_pal_seal_of_righteousness : public SpellScriptLoader
GetTarget()->CastCustomSpell(SPELL_PALADIN_SEAL_OF_RIGHTEOUSNESS, SPELLVALUE_BASE_POINT0, bp, eventInfo.GetProcTarget(), true, NULL, aurEff);
}
- void Register()
+ void Register() OVERRIDE
{
DoCheckProc += AuraCheckProcFn(spell_pal_seal_of_righteousness_AuraScript::CheckProc);
OnEffectProc += AuraEffectProcFn(spell_pal_seal_of_righteousness_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_pal_seal_of_righteousness_AuraScript();
}
@@ -900,6 +1133,8 @@ class spell_pal_seal_of_righteousness : public SpellScriptLoader
void AddSC_paladin_spell_scripts()
{
new spell_pal_ardent_defender();
+ new spell_pal_aura_mastery();
+ new spell_pal_aura_mastery_immune();
new spell_pal_blessing_of_faith();
new spell_pal_blessing_of_sanctuary();
new spell_pal_divine_sacrifice();
@@ -911,6 +1146,14 @@ void AddSC_paladin_spell_scripts()
new spell_pal_hand_of_sacrifice();
new spell_pal_hand_of_salvation();
new spell_pal_holy_shock();
+ new spell_pal_improved_aura("spell_pal_improved_concentraction_aura", SPELL_PALADIN_IMPROVED_CONCENTRACTION_AURA);
+ new spell_pal_improved_aura("spell_pal_improved_devotion_aura", SPELL_PALADIN_IMPROVED_DEVOTION_AURA);
+ new spell_pal_improved_aura("spell_pal_sanctified_retribution", SPELL_PALADIN_SANCTIFIED_RETRIBUTION_AURA);
+ new spell_pal_improved_aura("spell_pal_swift_retribution", SPELL_PALADIN_SANCTIFIED_RETRIBUTION_AURA);
+ new spell_pal_improved_aura_effect("spell_pal_improved_concentraction_aura_effect");
+ new spell_pal_improved_aura_effect("spell_pal_improved_devotion_aura_effect");
+ new spell_pal_improved_aura_effect("spell_pal_sanctified_retribution_effect");
+ new spell_pal_item_healing_discount();
new spell_pal_judgement_of_command();
new spell_pal_lay_on_hands();
new spell_pal_righteous_defense();
diff --git a/src/server/scripts/Spells/spell_pet.cpp b/src/server/scripts/Spells/spell_pet.cpp
index c4d5562ab39..b3feac0f081 100644
--- a/src/server/scripts/Spells/spell_pet.cpp
+++ b/src/server/scripts/Spells/spell_pet.cpp
@@ -95,7 +95,7 @@ class spell_gen_pet_calculate : public SpellScriptLoader
{
PrepareAuraScript(spell_gen_pet_calculate_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
if (!GetCaster() || !GetCaster()->GetOwner() || GetCaster()->GetOwner()->GetTypeId() != TYPEID_PLAYER)
return false;
@@ -185,7 +185,7 @@ class spell_gen_pet_calculate : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
switch (m_scriptSpellId)
{
@@ -214,7 +214,7 @@ class spell_gen_pet_calculate : public SpellScriptLoader
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_gen_pet_calculate_AuraScript();
}
@@ -229,7 +229,7 @@ public:
{
PrepareAuraScript(spell_warl_pet_scaling_01_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
if (!GetCaster() || !GetCaster()->GetOwner() || GetCaster()->GetOwner()->GetTypeId() != TYPEID_PLAYER)
return false;
@@ -240,7 +240,7 @@ public:
void CalculateStaminaAmount(AuraEffect const* /* aurEff */, int32& amount, bool& /*canBeRecalculated*/)
{
if (Unit* pet = GetUnitOwner())
- if (pet->isPet())
+ if (pet->IsPet())
if (Unit* owner = pet->ToPet()->GetOwner())
{
float ownerBonus = CalculatePct(owner->GetStat(STAT_STAMINA), 75);
@@ -284,7 +284,7 @@ public:
void RemoveEffect(AuraEffect const* /* aurEff */, AuraEffectHandleModes /*mode*/)
{
if (Unit* pet = GetUnitOwner())
- if (pet->isPet())
+ if (pet->IsPet())
{
PetLevelInfo const* pInfo = sObjectMgr->GetPetLevelInfo(pet->GetEntry(), pet->getLevel());
pet->ToPet()->SetCreateHealth(pInfo->health);
@@ -294,7 +294,7 @@ public:
void CalculateAttackPowerAmount(AuraEffect const* /* aurEff */, int32& amount, bool& /*canBeRecalculated*/)
{
if (Unit* pet = GetUnitOwner())
- if (pet->isPet())
+ if (pet->IsPet())
if (Unit* owner = pet->ToPet()->GetOwner())
{
@@ -322,7 +322,7 @@ public:
void CalculateDamageDoneAmount(AuraEffect const* /* aurEff */, int32& amount, bool& /*canBeRecalculated*/)
{
if (Unit* pet = GetUnitOwner())
- if (pet->isPet())
+ if (pet->IsPet())
if (Unit* owner = pet->ToPet()->GetOwner())
{
//the damage bonus used for pets is either fire or shadow damage, whatever is higher
@@ -338,7 +338,7 @@ public:
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectRemove += AuraEffectRemoveFn(spell_warl_pet_scaling_01_AuraScript::RemoveEffect, EFFECT_0, SPELL_AURA_MOD_STAT, AURA_EFFECT_HANDLE_CHANGE_AMOUNT_MASK);
AfterEffectApply += AuraEffectApplyFn(spell_warl_pet_scaling_01_AuraScript::ApplyEffect, EFFECT_0, SPELL_AURA_MOD_STAT, AURA_EFFECT_HANDLE_CHANGE_AMOUNT_MASK);
@@ -351,7 +351,7 @@ public:
uint32 _tempBonus;
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_warl_pet_scaling_01_AuraScript();
}
@@ -366,7 +366,7 @@ public:
{
PrepareAuraScript(spell_warl_pet_scaling_02_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
if (!GetCaster() || !GetCaster()->GetOwner() || GetCaster()->GetOwner()->GetTypeId() != TYPEID_PLAYER)
return false;
@@ -377,7 +377,7 @@ public:
void CalculateIntellectAmount(AuraEffect const* /* aurEff */, int32& amount, bool& /*canBeRecalculated*/)
{
if (Unit* pet = GetUnitOwner())
- if (pet->isPet())
+ if (pet->IsPet())
if (Unit* owner = pet->ToPet()->GetOwner())
{
float ownerBonus = 0.0f;
@@ -420,7 +420,7 @@ public:
void RemoveEffect(AuraEffect const* /* aurEff */, AuraEffectHandleModes /*mode*/)
{
if (Unit* pet = GetUnitOwner())
- if (pet->isPet())
+ if (pet->IsPet())
{
PetLevelInfo const* pInfo = sObjectMgr->GetPetLevelInfo(pet->GetEntry(), pet->getLevel());
pet->ToPet()->SetCreateMana(pInfo->mana);
@@ -430,7 +430,7 @@ public:
void CalculateArmorAmount(AuraEffect const* /* aurEff */, int32& amount, bool& /*canBeRecalculated*/)
{
if (Unit* pet = GetUnitOwner())
- if (pet->isPet())
+ if (pet->IsPet())
if (Unit* owner = pet->ToPet()->GetOwner())
{
float ownerBonus = 0.0f;
@@ -442,7 +442,7 @@ public:
void CalculateFireResistanceAmount(AuraEffect const* /* aurEff */, int32& amount, bool& /*canBeRecalculated*/)
{
if (Unit* pet = GetUnitOwner())
- if (pet->isPet())
+ if (pet->IsPet())
if (Unit* owner = pet->ToPet()->GetOwner())
{
float ownerBonus = 0.0f;
@@ -451,7 +451,7 @@ public:
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectRemove += AuraEffectRemoveFn(spell_warl_pet_scaling_02_AuraScript::RemoveEffect, EFFECT_0, SPELL_AURA_MOD_STAT, AURA_EFFECT_HANDLE_CHANGE_AMOUNT_MASK);
AfterEffectApply += AuraEffectApplyFn(spell_warl_pet_scaling_02_AuraScript::ApplyEffect, EFFECT_0, SPELL_AURA_MOD_STAT, AURA_EFFECT_HANDLE_CHANGE_AMOUNT_MASK);
@@ -464,7 +464,7 @@ public:
uint32 _tempBonus;
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_warl_pet_scaling_02_AuraScript();
}
@@ -479,7 +479,7 @@ public:
{
PrepareAuraScript(spell_warl_pet_scaling_03_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
if (!GetCaster() || !GetCaster()->GetOwner() || GetCaster()->GetOwner()->GetTypeId() != TYPEID_PLAYER)
return false;
@@ -489,7 +489,7 @@ public:
void CalculateFrostResistanceAmount(AuraEffect const* /* aurEff */, int32& amount, bool& /*canBeRecalculated*/)
{
if (Unit* pet = GetUnitOwner())
- if (pet->isPet())
+ if (pet->IsPet())
if (Unit* owner = pet->ToPet()->GetOwner())
{
float ownerBonus = 0.0f;
@@ -501,7 +501,7 @@ public:
void CalculateArcaneResistanceAmount(AuraEffect const* /* aurEff */, int32& amount, bool& /*canBeRecalculated*/)
{
if (Unit* pet = GetUnitOwner())
- if (pet->isPet())
+ if (pet->IsPet())
if (Unit* owner = pet->ToPet()->GetOwner())
{
float ownerBonus = 0.0f;
@@ -513,7 +513,7 @@ public:
void CalculateNatureResistanceAmount(AuraEffect const* /* aurEff */, int32& amount, bool& /*canBeRecalculated*/)
{
if (Unit* pet = GetUnitOwner())
- if (pet->isPet())
+ if (pet->IsPet())
if (Unit* owner = pet->ToPet()->GetOwner())
{
float ownerBonus = 0.0f;
@@ -522,7 +522,7 @@ public:
}
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_warl_pet_scaling_03_AuraScript::CalculateFrostResistanceAmount, EFFECT_0, SPELL_AURA_MOD_RESISTANCE);
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_warl_pet_scaling_03_AuraScript::CalculateArcaneResistanceAmount, EFFECT_1, SPELL_AURA_MOD_RESISTANCE);
@@ -530,7 +530,7 @@ public:
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_warl_pet_scaling_03_AuraScript();
}
@@ -546,7 +546,7 @@ public:
{
PrepareAuraScript(spell_warl_pet_scaling_04_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
if (!GetCaster() || !GetCaster()->GetOwner() || GetCaster()->GetOwner()->GetTypeId() != TYPEID_PLAYER)
return false;
@@ -556,7 +556,7 @@ public:
void CalculateShadowResistanceAmount(AuraEffect const* /* aurEff */, int32& amount, bool& /*canBeRecalculated*/)
{
if (Unit* pet = GetUnitOwner())
- if (pet->isPet())
+ if (pet->IsPet())
if (Unit* owner = pet->ToPet()->GetOwner())
{
float ownerBonus = 0.0f;
@@ -565,13 +565,13 @@ public:
}
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_warl_pet_scaling_04_AuraScript::CalculateShadowResistanceAmount, EFFECT_0, SPELL_AURA_MOD_RESISTANCE);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_warl_pet_scaling_04_AuraScript();
}
@@ -586,7 +586,7 @@ public:
{
PrepareAuraScript(spell_warl_pet_scaling_05_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
if (!GetCaster() || !GetCaster()->GetOwner() || GetCaster()->GetOwner()->GetTypeId() != TYPEID_PLAYER)
return false;
@@ -638,7 +638,7 @@ public:
}
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_warl_pet_scaling_05_AuraScript::CalculateAmountMeleeHit, EFFECT_0, SPELL_AURA_MOD_HIT_CHANCE);
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_warl_pet_scaling_05_AuraScript::CalculateAmountSpellHit, EFFECT_1, SPELL_AURA_MOD_SPELL_HIT_CHANCE);
@@ -646,7 +646,7 @@ public:
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_warl_pet_scaling_05_AuraScript();
}
@@ -661,7 +661,7 @@ public:
{
PrepareAuraScript(spell_warl_pet_passive_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
if (!GetCaster() || !GetCaster()->GetOwner() || GetCaster()->GetOwner()->GetTypeId() != TYPEID_PLAYER)
return false;
@@ -712,14 +712,14 @@ public:
}
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_warl_pet_passive_AuraScript::CalculateAmountCritSpell, EFFECT_0, SPELL_AURA_MOD_SPELL_CRIT_CHANCE);
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_warl_pet_passive_AuraScript::CalculateAmountCritMelee, EFFECT_1, SPELL_AURA_MOD_WEAPON_CRIT_PERCENT);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_warl_pet_passive_AuraScript();
}
@@ -734,7 +734,7 @@ public:
{
PrepareAuraScript(spell_warl_pet_passive_damage_done_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
if (!GetCaster() || !GetCaster()->GetOwner() || GetCaster()->GetOwner()->GetTypeId() != TYPEID_PLAYER)
return false;
@@ -763,14 +763,14 @@ public:
}
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_warl_pet_passive_damage_done_AuraScript::CalculateAmountDamageDone, EFFECT_0, SPELL_AURA_MOD_DAMAGE_PERCENT_DONE);
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_warl_pet_passive_damage_done_AuraScript::CalculateAmountDamageDone, EFFECT_1, SPELL_AURA_MOD_DAMAGE_PERCENT_DONE);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_warl_pet_passive_damage_done_AuraScript();
}
@@ -785,7 +785,7 @@ public:
{
PrepareAuraScript(spell_warl_pet_passive_voidwalker_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
if (!GetCaster() || !GetCaster()->GetOwner() || GetCaster()->GetOwner()->GetTypeId() != TYPEID_PLAYER)
return false;
@@ -795,19 +795,19 @@ public:
void CalculateAmount(AuraEffect const* /* aurEff */, int32& amount, bool& /*canBeRecalculated*/)
{
if (Unit* pet = GetUnitOwner())
- if (pet->isPet())
+ if (pet->IsPet())
if (Unit* owner = pet->ToPet()->GetOwner())
if (AuraEffect* /* aurEff */ect = owner->GetAuraEffect(SPELL_WARLOCK_GLYPH_OF_VOIDWALKER, EFFECT_0))
amount += /* aurEff */ect->GetAmount();
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_warl_pet_passive_voidwalker_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_MOD_TOTAL_STAT_PERCENTAGE);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_warl_pet_passive_voidwalker_AuraScript();
}
@@ -823,7 +823,7 @@ public:
{
PrepareAuraScript(spell_sha_pet_scaling_04_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
if (!GetCaster() || !GetCaster()->GetOwner() || GetCaster()->GetOwner()->GetTypeId() != TYPEID_PLAYER)
return false;
@@ -860,14 +860,14 @@ public:
}
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_sha_pet_scaling_04_AuraScript::CalculateAmountMeleeHit, EFFECT_0, SPELL_AURA_MOD_HIT_CHANCE);
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_sha_pet_scaling_04_AuraScript::CalculateAmountSpellHit, EFFECT_1, SPELL_AURA_MOD_SPELL_HIT_CHANCE);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_sha_pet_scaling_04_AuraScript();
}
@@ -885,7 +885,7 @@ public:
void CalculateStaminaAmount(AuraEffect const* /* aurEff */, int32& amount, bool& /*canBeRecalculated*/)
{
if (Unit* pet = GetUnitOwner())
- if (pet->isPet())
+ if (pet->IsPet())
if (Unit* owner = pet->ToPet()->GetOwner())
{
float mod = 0.45f;
@@ -924,7 +924,7 @@ public:
{
if (Unit* pet = GetUnitOwner())
{
- if (!pet->isPet())
+ if (!pet->IsPet())
return;
Unit* owner = pet->ToPet()->GetOwner();
@@ -954,7 +954,7 @@ public:
{
if (Unit* pet = GetUnitOwner())
{
- if (!pet->isPet())
+ if (!pet->IsPet())
return;
Unit* owner = pet->ToPet()->GetOwner();
@@ -980,7 +980,7 @@ public:
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectRemove += AuraEffectRemoveFn(spell_hun_pet_scaling_01_AuraScript::RemoveEffect, EFFECT_0, SPELL_AURA_MOD_STAT, AURA_EFFECT_HANDLE_CHANGE_AMOUNT_MASK);
AfterEffectApply += AuraEffectApplyFn(spell_hun_pet_scaling_01_AuraScript::ApplyEffect, EFFECT_0, SPELL_AURA_MOD_STAT, AURA_EFFECT_HANDLE_CHANGE_AMOUNT_MASK);
@@ -993,7 +993,7 @@ public:
uint32 _tempHealth;
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_hun_pet_scaling_01_AuraScript();
}
@@ -1008,7 +1008,7 @@ public:
{
PrepareAuraScript(spell_hun_pet_scaling_02_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
if (!GetCaster() || !GetCaster()->GetOwner() || GetCaster()->GetOwner()->GetTypeId() != TYPEID_PLAYER)
return false;
@@ -1019,7 +1019,7 @@ public:
{
if (Unit* pet = GetUnitOwner())
{
- if (!pet->isPet())
+ if (!pet->IsPet())
return;
Unit* owner = pet->ToPet()->GetOwner();
@@ -1038,7 +1038,7 @@ public:
{
if (Unit* pet = GetUnitOwner())
{
- if (!pet->isPet())
+ if (!pet->IsPet())
return;
Unit* owner = pet->ToPet()->GetOwner();
@@ -1057,7 +1057,7 @@ public:
{
if (Unit* pet = GetUnitOwner())
{
- if (!pet->isPet())
+ if (!pet->IsPet())
return;
Unit* owner = pet->ToPet()->GetOwner();
@@ -1072,7 +1072,7 @@ public:
}
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_hun_pet_scaling_02_AuraScript::CalculateFrostResistanceAmount, EFFECT_1, SPELL_AURA_MOD_RESISTANCE);
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_hun_pet_scaling_02_AuraScript::CalculateFireResistanceAmount, EFFECT_0, SPELL_AURA_MOD_RESISTANCE);
@@ -1080,7 +1080,7 @@ public:
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_hun_pet_scaling_02_AuraScript();
}
@@ -1095,7 +1095,7 @@ public:
{
PrepareAuraScript(spell_hun_pet_scaling_03_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
if (!GetCaster() || !GetCaster()->GetOwner() || GetCaster()->GetOwner()->GetTypeId() != TYPEID_PLAYER)
return false;
@@ -1106,7 +1106,7 @@ public:
{
if (Unit* pet = GetUnitOwner())
{
- if (!pet->isPet())
+ if (!pet->IsPet())
return;
Unit* owner = pet->ToPet()->GetOwner();
@@ -1125,7 +1125,7 @@ public:
{
if (Unit* pet = GetUnitOwner())
{
- if (!pet->isPet())
+ if (!pet->IsPet())
return;
Unit* owner = pet->ToPet()->GetOwner();
@@ -1144,7 +1144,7 @@ public:
{
if (Unit* pet = GetUnitOwner())
{
- if (!pet->isPet())
+ if (!pet->IsPet())
return;
Unit* owner = pet->ToPet()->GetOwner();
@@ -1159,7 +1159,7 @@ public:
}
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_hun_pet_scaling_03_AuraScript::CalculateShadowResistanceAmount, EFFECT_0, SPELL_AURA_MOD_RESISTANCE);
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_hun_pet_scaling_03_AuraScript::CalculateArcaneResistanceAmount, EFFECT_1, SPELL_AURA_MOD_RESISTANCE);
@@ -1167,7 +1167,7 @@ public:
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_hun_pet_scaling_03_AuraScript();
}
@@ -1182,7 +1182,7 @@ public:
{
PrepareAuraScript(spell_hun_pet_scaling_04_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
if (!GetCaster() || !GetCaster()->GetOwner() || GetCaster()->GetOwner()->GetTypeId() != TYPEID_PLAYER)
return false;
@@ -1240,7 +1240,7 @@ public:
}
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_hun_pet_scaling_04_AuraScript::CalculateAmountMeleeHit, EFFECT_0, SPELL_AURA_MOD_HIT_CHANCE);
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_hun_pet_scaling_04_AuraScript::CalculateAmountSpellHit, EFFECT_1, SPELL_AURA_MOD_SPELL_HIT_CHANCE);
@@ -1248,7 +1248,7 @@ public:
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_hun_pet_scaling_04_AuraScript();
}
@@ -1263,7 +1263,7 @@ public:
{
PrepareAuraScript(spell_hun_pet_passive_crit_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
if (!GetCaster() || !GetCaster()->GetOwner() || GetCaster()->GetOwner()->GetTypeId() != TYPEID_PLAYER)
return false;
@@ -1312,14 +1312,14 @@ public:
}
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_hun_pet_passive_crit_AuraScript::CalculateAmountCritSpell, EFFECT_1, SPELL_AURA_MOD_SPELL_CRIT_CHANCE);
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_hun_pet_passive_crit_AuraScript::CalculateAmountCritMelee, EFFECT_0, SPELL_AURA_MOD_WEAPON_CRIT_PERCENT);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_hun_pet_passive_crit_AuraScript();
}
@@ -1334,7 +1334,7 @@ public:
{
PrepareAuraScript(spell_hun_pet_passive_damage_done_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
if (!GetCaster() || !GetCaster()->GetOwner() || GetCaster()->GetOwner()->GetTypeId() != TYPEID_PLAYER)
return false;
@@ -1348,7 +1348,7 @@ public:
if (GetCaster()->GetOwner()->ToPlayer())
{
// Pet's base damage changes depending on happiness
- if (GetCaster()->isPet() && GetCaster()->ToPet()->isHunterPet())
+ if (GetCaster()->IsPet() && GetCaster()->ToPet()->IsHunterPet())
{
switch (GetCaster()->ToPet()->GetHappinessState())
{
@@ -1371,13 +1371,13 @@ public:
}
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_hun_pet_passive_damage_done_AuraScript::CalculateAmountDamageDone, EFFECT_0, SPELL_AURA_MOD_DAMAGE_PERCENT_DONE);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_hun_pet_passive_damage_done_AuraScript();
}
@@ -1392,7 +1392,7 @@ public:
{
PrepareAuraScript(spell_hun_animal_handler_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
if (!GetCaster() || !GetCaster()->GetOwner() || GetCaster()->GetOwner()->GetTypeId() != TYPEID_PLAYER)
return false;
@@ -1412,13 +1412,13 @@ public:
}
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_hun_animal_handler_AuraScript::CalculateAmountDamageDone, EFFECT_0, SPELL_AURA_MOD_ATTACK_POWER_PCT);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_hun_animal_handler_AuraScript();
}
@@ -1434,7 +1434,7 @@ public:
{
PrepareAuraScript(spell_dk_avoidance_passive_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
if (!GetCaster() || !GetCaster()->GetOwner() || GetCaster()->GetOwner()->GetTypeId() != TYPEID_PLAYER)
return false;
@@ -1457,13 +1457,13 @@ public:
}
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_dk_avoidance_passive_AuraScript::CalculateAvoidanceAmount, EFFECT_0, SPELL_AURA_MOD_CREATURE_AOE_DAMAGE_AVOIDANCE);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_dk_avoidance_passive_AuraScript();
}
@@ -1478,7 +1478,7 @@ public:
{
PrepareAuraScript(spell_dk_pet_scaling_01_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
if (!GetCaster() || !GetCaster()->GetOwner() || GetCaster()->GetOwner()->GetTypeId() != TYPEID_PLAYER)
return false;
@@ -1490,7 +1490,7 @@ public:
{
if (Unit* pet = GetUnitOwner())
{
- if (pet->isGuardian())
+ if (pet->IsGuardian())
{
if (Unit* owner = pet->GetOwner())
{
@@ -1529,7 +1529,7 @@ public:
{
if (Unit* pet = GetUnitOwner())
{
- if (!pet->isGuardian())
+ if (!pet->IsGuardian())
return;
Unit* owner = pet->GetOwner();
@@ -1555,7 +1555,7 @@ public:
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectRemove += AuraEffectRemoveFn(spell_dk_pet_scaling_01_AuraScript::RemoveEffect, EFFECT_0, SPELL_AURA_MOD_STAT, AURA_EFFECT_HANDLE_CHANGE_AMOUNT_MASK);
AfterEffectApply += AuraEffectApplyFn(spell_dk_pet_scaling_01_AuraScript::ApplyEffect, EFFECT_0, SPELL_AURA_MOD_STAT, AURA_EFFECT_HANDLE_CHANGE_AMOUNT_MASK);
@@ -1567,7 +1567,7 @@ public:
uint32 _tempHealth;
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_dk_pet_scaling_01_AuraScript();
}
@@ -1582,7 +1582,7 @@ public:
{
PrepareAuraScript(spell_dk_pet_scaling_02_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
if (!GetCaster() || !GetCaster()->GetOwner() || GetCaster()->GetOwner()->GetTypeId() != TYPEID_PLAYER)
return false;
@@ -1604,13 +1604,13 @@ public:
}
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_dk_pet_scaling_02_AuraScript::CalculateAmountMeleeHaste, EFFECT_1, SPELL_AURA_MELEE_SLOW);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_dk_pet_scaling_02_AuraScript();
}
@@ -1625,7 +1625,7 @@ public:
{
PrepareAuraScript(spell_dk_pet_scaling_03_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
if (!GetCaster() || !GetCaster()->GetOwner() || GetCaster()->GetOwner()->GetTypeId() != TYPEID_PLAYER)
return false;
@@ -1666,14 +1666,14 @@ public:
}
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_dk_pet_scaling_03_AuraScript::CalculateAmountMeleeHit, EFFECT_0, SPELL_AURA_MOD_HIT_CHANCE);
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_dk_pet_scaling_03_AuraScript::CalculateAmountSpellHit, EFFECT_1, SPELL_AURA_MOD_SPELL_HIT_CHANCE);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_dk_pet_scaling_03_AuraScript();
}
@@ -1688,7 +1688,7 @@ public:
{
PrepareAuraScript(spell_dk_rune_weapon_scaling_02_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
if (!GetCaster() || !GetCaster()->GetOwner() || GetCaster()->GetOwner()->GetTypeId() != TYPEID_PLAYER)
return false;
@@ -1703,7 +1703,7 @@ public:
if (!owner)
return;
- if (pet->isGuardian())
+ if (pet->IsGuardian())
((Guardian*)pet)->SetBonusDamage(owner->GetTotalAttackPowerValue(BASE_ATTACK));
amount += owner->CalculateDamage(BASE_ATTACK, true, true);
@@ -1725,14 +1725,14 @@ public:
}
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_dk_rune_weapon_scaling_02_AuraScript::CalculateDamageDoneAmount, EFFECT_0, SPELL_AURA_MOD_DAMAGE_DONE);
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_dk_rune_weapon_scaling_02_AuraScript::CalculateAmountMeleeHaste, EFFECT_1, SPELL_AURA_MELEE_SLOW);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_dk_rune_weapon_scaling_02_AuraScript();
}
diff --git a/src/server/scripts/Spells/spell_priest.cpp b/src/server/scripts/Spells/spell_priest.cpp
index 4e86a895484..0d3da30377a 100644
--- a/src/server/scripts/Spells/spell_priest.cpp
+++ b/src/server/scripts/Spells/spell_priest.cpp
@@ -34,6 +34,7 @@ enum PriestSpells
SPELL_PRIEST_GLYPH_OF_LIGHTWELL = 55673,
SPELL_PRIEST_GLYPH_OF_PRAYER_OF_HEALING_HEAL = 56161,
SPELL_PRIEST_GUARDIAN_SPIRIT_HEAL = 48153,
+ SPELL_PRIEST_ITEM_EFFICIENCY = 37595,
SPELL_PRIEST_MANA_LEECH_PROC = 34650,
SPELL_PRIEST_PENANCE_R1 = 47540,
SPELL_PRIEST_PENANCE_R1_DAMAGE = 47758,
@@ -62,7 +63,7 @@ class spell_pri_divine_aegis : public SpellScriptLoader
{
PrepareAuraScript(spell_pri_divine_aegis_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_PRIEST_DIVINE_AEGIS))
return false;
@@ -89,14 +90,14 @@ class spell_pri_divine_aegis : public SpellScriptLoader
GetTarget()->CastCustomSpell(SPELL_PRIEST_DIVINE_AEGIS, SPELLVALUE_BASE_POINT0, absorb, eventInfo.GetProcTarget(), true, NULL, aurEff);
}
- void Register()
+ void Register() OVERRIDE
{
DoCheckProc += AuraCheckProcFn(spell_pri_divine_aegis_AuraScript::CheckProc);
OnEffectProc += AuraEffectProcFn(spell_pri_divine_aegis_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_pri_divine_aegis_AuraScript();
}
@@ -112,7 +113,7 @@ class spell_pri_glyph_of_prayer_of_healing : public SpellScriptLoader
{
PrepareAuraScript(spell_pri_glyph_of_prayer_of_healing_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_PRIEST_GLYPH_OF_PRAYER_OF_HEALING_HEAL))
return false;
@@ -128,19 +129,19 @@ class spell_pri_glyph_of_prayer_of_healing : public SpellScriptLoader
GetTarget()->CastCustomSpell(SPELL_PRIEST_GLYPH_OF_PRAYER_OF_HEALING_HEAL, SPELLVALUE_BASE_POINT0, heal, eventInfo.GetProcTarget(), true, NULL, aurEff);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectProc += AuraEffectProcFn(spell_pri_glyph_of_prayer_of_healing_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_pri_glyph_of_prayer_of_healing_AuraScript();
}
};
-// -47788 - Guardian Spirit
+// 47788 - Guardian Spirit
class spell_pri_guardian_spirit : public SpellScriptLoader
{
public:
@@ -152,14 +153,14 @@ class spell_pri_guardian_spirit : public SpellScriptLoader
uint32 healPct;
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_PRIEST_GUARDIAN_SPIRIT_HEAL))
return false;
return true;
}
- bool Load()
+ bool Load() OVERRIDE
{
healPct = GetSpellInfo()->Effects[EFFECT_1].CalcValue();
return true;
@@ -184,19 +185,54 @@ class spell_pri_guardian_spirit : public SpellScriptLoader
absorbAmount = dmgInfo.GetDamage();
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_pri_guardian_spirit_AuraScript::CalculateAmount, EFFECT_1, SPELL_AURA_SCHOOL_ABSORB);
OnEffectAbsorb += AuraEffectAbsorbFn(spell_pri_guardian_spirit_AuraScript::Absorb, EFFECT_1);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_pri_guardian_spirit_AuraScript();
}
};
+// 37594 - Greater Heal Refund
+class spell_pri_item_greater_heal_refund : public SpellScriptLoader
+{
+ public:
+ spell_pri_item_greater_heal_refund() : SpellScriptLoader("spell_pri_item_greater_heal_refund") { }
+
+ class spell_pri_item_greater_heal_refund_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_pri_item_greater_heal_refund_AuraScript);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_PRIEST_ITEM_EFFICIENCY))
+ return false;
+ return true;
+ }
+
+ void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/)
+ {
+ PreventDefaultAction();
+ GetTarget()->CastSpell(GetTarget(), SPELL_PRIEST_ITEM_EFFICIENCY, true, NULL, aurEff);
+ }
+
+ void Register() OVERRIDE
+ {
+ OnEffectProc += AuraEffectProcFn(spell_pri_item_greater_heal_refund_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL);
+ }
+ };
+
+ AuraScript* GetAuraScript() const OVERRIDE
+ {
+ return new spell_pri_item_greater_heal_refund_AuraScript();
+ }
+};
+
// -7001 - Lightwell Renew
class spell_pri_lightwell_renew : public SpellScriptLoader
{
@@ -217,19 +253,19 @@ class spell_pri_lightwell_renew : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_pri_lightwell_renew_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_PERIODIC_HEAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_pri_lightwell_renew_AuraScript();
}
};
-// -8129 - Mana Burn
+// 8129 - Mana Burn
class spell_pri_mana_burn : public SpellScriptLoader
{
public:
@@ -245,13 +281,13 @@ class spell_pri_mana_burn : public SpellScriptLoader
unitTarget->RemoveAurasWithMechanic((1 << MECHANIC_FEAR) | (1 << MECHANIC_POLYMORPH));
}
- void Register()
+ void Register() OVERRIDE
{
AfterHit += SpellHitFn(spell_pri_mana_burn_SpellScript::HandleAfterHit);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_pri_mana_burn_SpellScript;
}
@@ -267,14 +303,14 @@ class spell_pri_mana_leech : public SpellScriptLoader
{
PrepareAuraScript(spell_pri_mana_leech_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_PRIEST_MANA_LEECH_PROC))
return false;
return true;
}
- bool Load()
+ bool Load() OVERRIDE
{
_procTarget = NULL;
return true;
@@ -292,7 +328,7 @@ class spell_pri_mana_leech : public SpellScriptLoader
GetTarget()->CastSpell(_procTarget, SPELL_PRIEST_MANA_LEECH_PROC, true, NULL, aurEff);
}
- void Register()
+ void Register() OVERRIDE
{
DoCheckProc += AuraCheckProcFn(spell_pri_mana_leech_AuraScript::CheckProc);
OnEffectProc += AuraEffectProcFn(spell_pri_mana_leech_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
@@ -302,7 +338,7 @@ class spell_pri_mana_leech : public SpellScriptLoader
Unit* _procTarget;
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_pri_mana_leech_AuraScript();
}
@@ -323,13 +359,13 @@ class spell_pri_mind_sear : public SpellScriptLoader
unitList.remove_if(Trinity::ObjectGUIDCheck(GetCaster()->GetUInt64Value(UNIT_FIELD_CHANNEL_OBJECT)));
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_pri_mind_sear_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_DEST_AREA_ENEMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_pri_mind_sear_SpellScript();
}
@@ -353,13 +389,13 @@ class spell_pri_pain_and_suffering_proc : public SpellScriptLoader
aur->GetBase()->RefreshDuration();
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_pri_pain_and_suffering_proc_SpellScript::HandleEffectScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_pri_pain_and_suffering_proc_SpellScript;
}
@@ -375,20 +411,22 @@ class spell_pri_penance : public SpellScriptLoader
{
PrepareSpellScript(spell_pri_penance_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
}
- bool Validate(SpellInfo const* spellInfo)
+ bool Validate(SpellInfo const* spellInfo) OVERRIDE
{
- if (!sSpellMgr->GetSpellInfo(SPELL_PRIEST_PENANCE_R1))
+ SpellInfo const* firstRankSpellInfo = sSpellMgr->GetSpellInfo(SPELL_PRIEST_PENANCE_R1);
+ if (!firstRankSpellInfo)
return false;
+
// can't use other spell than this penance due to spell_ranks dependency
- if (sSpellMgr->GetFirstSpellInChain(SPELL_PRIEST_PENANCE_R1) != sSpellMgr->GetFirstSpellInChain(spellInfo->Id))
+ if (!spellInfo->IsRankOf(firstRankSpellInfo))
return false;
- uint8 rank = sSpellMgr->GetSpellRank(spellInfo->Id);
+ uint8 rank = spellInfo->GetRank();
if (!sSpellMgr->GetSpellWithRank(SPELL_PRIEST_PENANCE_R1_DAMAGE, rank, true))
return false;
if (!sSpellMgr->GetSpellWithRank(SPELL_PRIEST_PENANCE_R1_HEAL, rank, true))
@@ -402,15 +440,15 @@ class spell_pri_penance : public SpellScriptLoader
Unit* caster = GetCaster();
if (Unit* unitTarget = GetHitUnit())
{
- if (!unitTarget->isAlive())
+ if (!unitTarget->IsAlive())
return;
- uint8 rank = sSpellMgr->GetSpellRank(GetSpellInfo()->Id);
+ uint8 rank = GetSpellInfo()->GetRank();
if (caster->IsFriendlyTo(unitTarget))
- caster->CastSpell(unitTarget, sSpellMgr->GetSpellWithRank(SPELL_PRIEST_PENANCE_R1_HEAL, rank), false, 0);
+ caster->CastSpell(unitTarget, sSpellMgr->GetSpellWithRank(SPELL_PRIEST_PENANCE_R1_HEAL, rank), false);
else
- caster->CastSpell(unitTarget, sSpellMgr->GetSpellWithRank(SPELL_PRIEST_PENANCE_R1_DAMAGE, rank), false, 0);
+ caster->CastSpell(unitTarget, sSpellMgr->GetSpellWithRank(SPELL_PRIEST_PENANCE_R1_DAMAGE, rank), false);
}
}
@@ -423,14 +461,14 @@ class spell_pri_penance : public SpellScriptLoader
return SPELL_CAST_OK;
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_pri_penance_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
OnCheckCast += SpellCheckCastFn(spell_pri_penance_SpellScript::CheckCast);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_pri_penance_SpellScript;
}
@@ -446,7 +484,7 @@ class spell_pri_power_word_shield : public SpellScriptLoader
{
PrepareAuraScript(spell_pri_power_word_shield_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_PRIEST_REFLECTIVE_SHIELD_TRIGGERED))
return false;
@@ -491,22 +529,21 @@ class spell_pri_power_word_shield : public SpellScriptLoader
if (dmgInfo.GetAttacker() == target)
return;
- if (Unit* caster = GetCaster())
- if (AuraEffect* talentAurEff = caster->GetAuraEffectOfRankedSpell(SPELL_PRIEST_REFLECTIVE_SHIELD_R1, EFFECT_0))
- {
- int32 bp = CalculatePct(absorbAmount, talentAurEff->GetAmount());
- target->CastCustomSpell(dmgInfo.GetAttacker(), SPELL_PRIEST_REFLECTIVE_SHIELD_TRIGGERED, &bp, NULL, NULL, true, NULL, aurEff);
- }
+ if (AuraEffect* talentAurEff = target->GetAuraEffectOfRankedSpell(SPELL_PRIEST_REFLECTIVE_SHIELD_R1, EFFECT_0))
+ {
+ int32 bp = CalculatePct(absorbAmount, talentAurEff->GetAmount());
+ target->CastCustomSpell(dmgInfo.GetAttacker(), SPELL_PRIEST_REFLECTIVE_SHIELD_TRIGGERED, &bp, NULL, NULL, true, NULL, aurEff);
+ }
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_pri_power_word_shield_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_SCHOOL_ABSORB);
AfterEffectAbsorb += AuraEffectAbsorbFn(spell_pri_power_word_shield_AuraScript::ReflectDamage, EFFECT_0);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_pri_power_word_shield_AuraScript();
}
@@ -535,13 +572,13 @@ class spell_pri_prayer_of_mending_heal : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_pri_prayer_of_mending_heal_SpellScript::HandleHeal, EFFECT_0, SPELL_EFFECT_HEAL);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_pri_prayer_of_mending_heal_SpellScript();
}
@@ -557,7 +594,7 @@ class spell_pri_renew : public SpellScriptLoader
{
PrepareAuraScript(spell_pri_renew_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster() && GetCaster()->GetTypeId() == TYPEID_PLAYER;
}
@@ -578,13 +615,13 @@ class spell_pri_renew : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectApply += AuraEffectApplyFn(spell_pri_renew_AuraScript::HandleApplyEffect, EFFECT_0, SPELL_AURA_PERIODIC_HEAL, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_pri_renew_AuraScript();
}
@@ -611,13 +648,13 @@ class spell_pri_shadow_word_death : public SpellScriptLoader
GetCaster()->CastCustomSpell(GetCaster(), SPELL_PRIEST_SHADOW_WORD_DEATH, &damage, 0, 0, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnHit += SpellHitFn(spell_pri_shadow_word_death_SpellScript::HandleDamage);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_pri_shadow_word_death_SpellScript();
}
@@ -633,7 +670,7 @@ class spell_pri_vampiric_touch : public SpellScriptLoader
{
PrepareAuraScript(spell_pri_vampiric_touch_AuraScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_PRIEST_VAMPIRIC_TOUCH_DISPEL))
return false;
@@ -652,13 +689,13 @@ class spell_pri_vampiric_touch : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
AfterDispel += AuraDispelFn(spell_pri_vampiric_touch_AuraScript::HandleDispel);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_pri_vampiric_touch_AuraScript();
}
@@ -669,6 +706,7 @@ void AddSC_priest_spell_scripts()
new spell_pri_divine_aegis();
new spell_pri_glyph_of_prayer_of_healing();
new spell_pri_guardian_spirit();
+ new spell_pri_item_greater_heal_refund();
new spell_pri_lightwell_renew();
new spell_pri_mana_burn();
new spell_pri_mana_leech();
diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp
index 3036c52876d..fcf87e9bfac 100644
--- a/src/server/scripts/Spells/spell_quest.cpp
+++ b/src/server/scripts/Spells/spell_quest.cpp
@@ -50,7 +50,7 @@ class spell_generic_quest_update_entry_SpellScript : public SpellScript
void HandleDummy(SpellEffIndex /*effIndex*/)
{
if (Creature* creatureTarget = GetHitCreature())
- if (!creatureTarget->isPet() && creatureTarget->GetEntry() == _originalEntry)
+ if (!creatureTarget->IsPet() && creatureTarget->GetEntry() == _originalEntry)
{
creatureTarget->UpdateEntry(_newEntry);
if (_shouldAttack && creatureTarget->IsAIEnabled)
@@ -61,7 +61,7 @@ class spell_generic_quest_update_entry_SpellScript : public SpellScript
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_generic_quest_update_entry_SpellScript::HandleDummy, _effIndex, _spellEffect);
}
@@ -80,12 +80,53 @@ class spell_q55_sacred_cleansing : public SpellScriptLoader
public:
spell_q55_sacred_cleansing() : SpellScriptLoader("spell_q55_sacred_cleansing") { }
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_generic_quest_update_entry_SpellScript(SPELL_EFFECT_DUMMY, EFFECT_1, NPC_MORBENT, NPC_WEAKENED_MORBENT, true);
}
};
+// 9712 - Thaumaturgy Channel
+enum ThaumaturgyChannel
+{
+ SPELL_THAUMATURGY_CHANNEL = 21029
+};
+
+class spell_q2203_thaumaturgy_channel : public SpellScriptLoader
+{
+ public:
+ spell_q2203_thaumaturgy_channel() : SpellScriptLoader("spell_q2203_thaumaturgy_channel") { }
+
+ class spell_q2203_thaumaturgy_channel_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_q2203_thaumaturgy_channel_AuraScript);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_THAUMATURGY_CHANNEL))
+ return false;
+ return true;
+ }
+
+ void HandleEffectPeriodic(AuraEffect const* /*aurEff*/)
+ {
+ PreventDefaultAction();
+ if (Unit* caster = GetCaster())
+ caster->CastSpell(caster, SPELL_THAUMATURGY_CHANNEL, false);
+ }
+
+ void Register() OVERRIDE
+ {
+ OnEffectPeriodic += AuraEffectPeriodicFn(spell_q2203_thaumaturgy_channel_AuraScript::HandleEffectPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
+ }
+ };
+
+ AuraScript* GetAuraScript() const OVERRIDE
+ {
+ return new spell_q2203_thaumaturgy_channel_AuraScript();
+ }
+};
+
// http://www.wowhead.com/quest=5206 Marauders of Darrowshire
// 17271 Test Fetid Skull
enum Quest5206Data
@@ -103,12 +144,12 @@ class spell_q5206_test_fetid_skull : public SpellScriptLoader
{
PrepareSpellScript(spell_q5206_test_fetid_skull_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
}
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_CREATE_RESONATING_SKULL) || !sSpellMgr->GetSpellInfo(SPELL_CREATE_BONE_DUST))
return false;
@@ -122,13 +163,13 @@ class spell_q5206_test_fetid_skull : public SpellScriptLoader
caster->CastSpell(caster, spellId, true, NULL);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHit += SpellEffectFn(spell_q5206_test_fetid_skull_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_q5206_test_fetid_skull_SpellScript();
}
@@ -155,7 +196,7 @@ class spell_q6124_6129_apply_salve : public SpellScriptLoader
{
PrepareSpellScript(spell_q6124_6129_apply_salve_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
}
@@ -186,13 +227,13 @@ class spell_q6124_6129_apply_salve : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_q6124_6129_apply_salve_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_q6124_6129_apply_salve_SpellScript();
}
@@ -211,7 +252,7 @@ class spell_q10255_administer_antidote : public SpellScriptLoader
public:
spell_q10255_administer_antidote() : SpellScriptLoader("spell_q10255_administer_antidote") { }
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_generic_quest_update_entry_SpellScript(SPELL_EFFECT_DUMMY, EFFECT_0, NPC_HELBOAR, NPC_DREADTUSK, true);
}
@@ -247,7 +288,7 @@ class spell_q11396_11399_force_shield_arcane_purple_x3 : public SpellScriptLoade
GetTarget()->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectApply += AuraEffectApplyFn(spell_q11396_11399_force_shield_arcane_purple_x3_AuraScript::HandleEffectApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
OnEffectRemove += AuraEffectRemoveFn(spell_q11396_11399_force_shield_arcane_purple_x3_AuraScript::HandleEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
@@ -255,7 +296,7 @@ class spell_q11396_11399_force_shield_arcane_purple_x3 : public SpellScriptLoade
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_q11396_11399_force_shield_arcane_purple_x3_AuraScript();
}
@@ -271,7 +312,7 @@ class spell_q11396_11399_scourging_crystal_controller : public SpellScriptLoader
{
PrepareSpellScript(spell_q11396_11399_scourging_crystal_controller_SpellScript);
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_FORCE_SHIELD_ARCANE_PURPLE_X3) || !sSpellMgr->GetSpellInfo(SPELL_SCOURGING_CRYSTAL_CONTROLLER))
return false;
@@ -287,13 +328,13 @@ class spell_q11396_11399_scourging_crystal_controller : public SpellScriptLoader
GetCaster()->CastSpell(target, SPELL_SCOURGING_CRYSTAL_CONTROLLER, true, GetCastItem());
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_q11396_11399_scourging_crystal_controller_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_q11396_11399_scourging_crystal_controller_SpellScript();
};
@@ -309,7 +350,7 @@ class spell_q11396_11399_scourging_crystal_controller_dummy : public SpellScript
{
PrepareSpellScript(spell_q11396_11399_scourging_crystal_controller_dummy_SpellScript);
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_FORCE_SHIELD_ARCANE_PURPLE_X3))
return false;
@@ -323,13 +364,13 @@ class spell_q11396_11399_scourging_crystal_controller_dummy : public SpellScript
target->RemoveAurasDueToSpell(SPELL_FORCE_SHIELD_ARCANE_PURPLE_X3);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_q11396_11399_scourging_crystal_controller_dummy_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_q11396_11399_scourging_crystal_controller_dummy_SpellScript();
};
@@ -348,7 +389,7 @@ class spell_q11515_fel_siphon_dummy : public SpellScriptLoader
public:
spell_q11515_fel_siphon_dummy() : SpellScriptLoader("spell_q11515_fel_siphon_dummy") { }
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_generic_quest_update_entry_SpellScript(SPELL_EFFECT_DUMMY, EFFECT_0, NPC_FELBLOOD_INITIATE, NPC_EMACIATED_FELBLOOD, true);
}
@@ -372,7 +413,7 @@ class spell_q11587_arcane_prisoner_rescue : public SpellScriptLoader
{
PrepareSpellScript(spell_q11587_arcane_prisoner_rescue_SpellScript);
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_SUMMON_ARCANE_PRISONER_MALE) || !sSpellMgr->GetSpellInfo(SPELL_SUMMON_ARCANE_PRISONER_FEMALE) || !sSpellMgr->GetSpellInfo(SPELL_ARCANE_PRISONER_KILL_CREDIT))
return false;
@@ -392,13 +433,13 @@ class spell_q11587_arcane_prisoner_rescue : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_q11587_arcane_prisoner_rescue_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_q11587_arcane_prisoner_rescue_SpellScript();
}
@@ -430,12 +471,12 @@ class spell_q11730_ultrasonic_screwdriver : public SpellScriptLoader
{
PrepareSpellScript(spell_q11730_ultrasonic_screwdriver_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_PLAYER && GetCastItem();
}
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_SUMMON_SCAVENGEBOT_004A8) || !sSpellMgr->GetSpellInfo(SPELL_SUMMON_SENTRYBOT_57K) || !sSpellMgr->GetSpellInfo(SPELL_SUMMON_DEFENDOTANK_66D) || !sSpellMgr->GetSpellInfo(SPELL_SUMMON_SCAVENGEBOT_005B6) || !sSpellMgr->GetSpellInfo(SPELL_SUMMON_55D_COLLECTATRON) || !sSpellMgr->GetSpellInfo(SPELL_ROBOT_KILL_CREDIT))
return false;
@@ -465,13 +506,13 @@ class spell_q11730_ultrasonic_screwdriver : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_q11730_ultrasonic_screwdriver_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_q11730_ultrasonic_screwdriver_SpellScript();
}
@@ -516,13 +557,13 @@ class spell_q12459_seeds_of_natures_wrath : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_q12459_seeds_of_natures_wrath_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_q12459_seeds_of_natures_wrath_SpellScript();
}
@@ -547,7 +588,7 @@ class spell_q12634_despawn_fruit_tosser : public SpellScriptLoader
{
PrepareSpellScript(spell_q12634_despawn_fruit_tosser_SpellScript);
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_BANANAS_FALL_TO_GROUND) || !sSpellMgr->GetSpellInfo(SPELL_ORANGE_FALLS_TO_GROUND) || !sSpellMgr->GetSpellInfo(SPELL_PAPAYA_FALLS_TO_GROUND) || !sSpellMgr->GetSpellInfo(SPELL_SUMMON_ADVENTUROUS_DWARF))
return false;
@@ -568,13 +609,13 @@ class spell_q12634_despawn_fruit_tosser : public SpellScriptLoader
GetCaster()->CastSpell(GetCaster(), spellId, true, NULL);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHit += SpellEffectFn(spell_q12634_despawn_fruit_tosser_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_q12634_despawn_fruit_tosser_SpellScript();
}
@@ -603,13 +644,13 @@ class spell_q12683_take_sputum_sample : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHit += SpellEffectFn(spell_q12683_take_sputum_sample_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_q12683_take_sputum_sample_SpellScript();
}
@@ -664,14 +705,14 @@ class spell_q12851_going_bearback : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectApply += AuraEffectApplyFn(spell_q12851_going_bearback_AuraScript::HandleEffectApply, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_q12851_going_bearback_AuraScript();
}
@@ -694,12 +735,12 @@ class spell_q12937_relief_for_the_fallen : public SpellScriptLoader
{
PrepareSpellScript(spell_q12937_relief_for_the_fallen_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
}
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_TRIGGER_AID_OF_THE_EARTHEN))
return false;
@@ -717,13 +758,13 @@ class spell_q12937_relief_for_the_fallen : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_q12937_relief_for_the_fallen_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_q12937_relief_for_the_fallen_SpellScript();
}
@@ -745,7 +786,7 @@ class spell_q10041_q10040_who_are_they : public SpellScriptLoader
{
PrepareSpellScript(spell_q10041_q10040_who_are_they_SpellScript);
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_MALE_DISGUISE) || !sSpellMgr->GetSpellInfo(SPELL_FEMALE_DISGUISE) || !sSpellMgr->GetSpellInfo(SPELL_GENERIC_DISGUISE))
return false;
@@ -762,13 +803,13 @@ class spell_q10041_q10040_who_are_they : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_q10041_q10040_who_are_they_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_q10041_q10040_who_are_they_SpellScript();
}
@@ -804,13 +845,13 @@ class spell_symbol_of_life_dummy : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_symbol_of_life_dummy_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_symbol_of_life_dummy_SpellScript();
};
@@ -832,7 +873,7 @@ class spell_q12659_ahunaes_knife : public SpellScriptLoader
{
PrepareSpellScript(spell_q12659_ahunaes_knife_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
}
@@ -847,13 +888,13 @@ class spell_q12659_ahunaes_knife : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_q12659_ahunaes_knife_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_q12659_ahunaes_knife_SpellScript();
};
@@ -876,7 +917,7 @@ class spell_q9874_liquid_fire : public SpellScriptLoader
{
PrepareSpellScript(spell_q9874_liquid_fire_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
}
@@ -893,13 +934,13 @@ class spell_q9874_liquid_fire : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_q9874_liquid_fire_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_q9874_liquid_fire_SpellScript();
};
@@ -921,7 +962,7 @@ class spell_q12805_lifeblood_dummy : public SpellScriptLoader
{
PrepareSpellScript(spell_q12805_lifeblood_dummy_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
}
@@ -937,13 +978,13 @@ class spell_q12805_lifeblood_dummy : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_q12805_lifeblood_dummy_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_q12805_lifeblood_dummy_SpellScript();
};
@@ -977,13 +1018,13 @@ class spell_q13280_13283_plant_battle_standard: public SpellScriptLoader
player->ToPlayer()->KilledMonsterCredit(NPC_KING_OF_THE_MOUNTAINT_KC, 0);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHit += SpellEffectFn(spell_q13280_13283_plant_battle_standard_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_q13280_13283_plant_battle_standard_SpellScript();
}
@@ -1006,7 +1047,7 @@ class spell_q14112_14145_chum_the_water: public SpellScriptLoader
{
PrepareSpellScript(spell_q14112_14145_chum_the_water_SpellScript);
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SUMMON_ANGRY_KVALDIR) || !sSpellMgr->GetSpellInfo(SUMMON_NORTH_SEA_MAKO) || !sSpellMgr->GetSpellInfo(SUMMON_NORTH_SEA_THRESHER) || !sSpellMgr->GetSpellInfo(SUMMON_NORTH_SEA_BLUE_SHARK))
return false;
@@ -1019,13 +1060,13 @@ class spell_q14112_14145_chum_the_water: public SpellScriptLoader
caster->CastSpell(caster, RAND(SUMMON_ANGRY_KVALDIR, SUMMON_NORTH_SEA_MAKO, SUMMON_NORTH_SEA_THRESHER, SUMMON_NORTH_SEA_BLUE_SHARK));
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_q14112_14145_chum_the_water_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_q14112_14145_chum_the_water_SpellScript();
}
@@ -1048,7 +1089,7 @@ class spell_q9452_cast_net: public SpellScriptLoader
{
PrepareSpellScript(spell_q9452_cast_net_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
}
@@ -1062,13 +1103,13 @@ class spell_q9452_cast_net: public SpellScriptLoader
caster->CastSpell(caster, SPELL_NEW_SUMMON_TEST, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHit += SpellEffectFn(spell_q9452_cast_net_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_q9452_cast_net_SpellScript();
}
@@ -1076,7 +1117,11 @@ class spell_q9452_cast_net: public SpellScriptLoader
#define SAY_1 "Sons of Hodir! I humbly present to you..."
#define SAY_2 "The Helm of Hodir!"
-#define NPC_KILLCREDIT 30210 // Hodir's Helm KC Bunny
+
+enum HodirsHelm
+{
+ NPC_KILLCREDIT = 30210 // Hodir's Helm KC Bunny
+};
class spell_q12987_read_pronouncement : public SpellScriptLoader
{
@@ -1098,13 +1143,13 @@ public:
}
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectApply += AuraEffectApplyFn(spell_q12987_read_pronouncement_AuraScript::OnApply, EFFECT_0, SPELL_AURA_NONE, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_q12987_read_pronouncement_AuraScript();
}
@@ -1155,13 +1200,13 @@ class spell_q12277_wintergarde_mine_explosion : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_q12277_wintergarde_mine_explosion_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_q12277_wintergarde_mine_explosion_SpellScript();
}
@@ -1187,13 +1232,13 @@ public:
target->CastSpell(GetCaster(), SPELL_BUNNY_CREDIT_BEAM, false);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_q12066_bunny_kill_credit_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_q12066_bunny_kill_credit_SpellScript();
}
@@ -1238,13 +1283,13 @@ class spell_q12735_song_of_cleansing : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_q12735_song_of_cleansing_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_q12735_song_of_cleansing_SpellScript();
}
@@ -1269,13 +1314,13 @@ class spell_q12372_cast_from_gossip_trigger : public SpellScriptLoader
GetCaster()->CastSpell(GetCaster(), SPELL_SUMMON_WYRMREST_DEFENDER, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_q12372_cast_from_gossip_trigger_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_q12372_cast_from_gossip_trigger_SpellScript();
}
@@ -1310,13 +1355,13 @@ class spell_q12372_destabilize_azure_dragonshrine_dummy : public SpellScriptLoad
player->KilledMonsterCredit(NPC_WYRMREST_TEMPLE_CREDIT, 0);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_q12372_destabilize_azure_dragonshrine_dummy_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_q12372_destabilize_azure_dragonshrine_dummy_SpellScript();
}
@@ -1338,13 +1383,13 @@ class spell_q12372_azure_on_death_force_whisper : public SpellScriptLoader
defender->AI()->Talk(WHISPER_ON_HIT_BY_FORCE_WHISPER, defender->GetCharmerOrOwnerGUID());
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_q12372_azure_on_death_force_whisper_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_q12372_azure_on_death_force_whisper_SpellScript();
}
@@ -1378,13 +1423,13 @@ class spell_q11010_q11102_q11023_aggro_check_aura : public SpellScriptLoader
target->CastSpell(target, SPELL_AGGRO_CHECK);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_q11010_q11102_q11023_aggro_check_aura_AuraScript::HandleTriggerSpell, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_q11010_q11102_q11023_aggro_check_aura_AuraScript();
}
@@ -1408,13 +1453,13 @@ class spell_q11010_q11102_q11023_aggro_check : public SpellScriptLoader
playerTarget->CastSpell(playerTarget, SPELL_FLAK_CANNON_TRIGGER, TRIGGERED_IGNORE_CASTER_MOUNTED_OR_ON_VEHICLE);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_q11010_q11102_q11023_aggro_check_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_q11010_q11102_q11023_aggro_check_SpellScript();
}
@@ -1437,13 +1482,13 @@ class spell_q11010_q11102_q11023_aggro_burst : public SpellScriptLoader
target->CastSpell(target, SPELL_CHOOSE_LOC);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_q11010_q11102_q11023_aggro_burst_AuraScript::HandleEffectPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_q11010_q11102_q11023_aggro_burst_AuraScript();
}
@@ -1474,13 +1519,13 @@ class spell_q11010_q11102_q11023_choose_loc : public SpellScriptLoader
caster->SummonCreature(NPC_FEL_CANNON2, (*itr)->GetPositionX(), (*itr)->GetPositionY(), (*itr)->GetPositionZ());
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHit += SpellEffectFn(spell_q11010_q11102_q11023_choose_loc_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_q11010_q11102_q11023_choose_loc_SpellScript();
}
@@ -1506,13 +1551,13 @@ class spell_q11010_q11102_q11023_q11008_check_fly_mount : public SpellScriptLoad
return SPELL_CAST_OK;
}
- void Register()
+ void Register() OVERRIDE
{
OnCheckCast += SpellCheckCastFn(spell_q11010_q11102_q11023_q11008_check_fly_mount_SpellScript::CheckRequirement);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_q11010_q11102_q11023_q11008_check_fly_mount_SpellScript();
}
@@ -1532,7 +1577,7 @@ class spell_q12527_zuldrak_rat : public SpellScriptLoader
{
PrepareSpellScript(spell_q12527_zuldrak_rat_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_SUMMON_GORGED_LURKING_BASILISK))
return false;
@@ -1549,18 +1594,87 @@ class spell_q12527_zuldrak_rat : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_q12527_zuldrak_rat_SpellScript::HandleScriptEffect, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_q12527_zuldrak_rat_SpellScript();
}
};
+class spell_q12661_q12669_q12676_q12677_q12713_summon_stefan : public SpellScriptLoader
+{
+ public:
+ spell_q12661_q12669_q12676_q12677_q12713_summon_stefan() : SpellScriptLoader("spell_q12661_q12669_q12676_q12677_q12713_summon_stefan") { }
+
+ class spell_q12661_q12669_q12676_q12677_q12713_summon_stefan_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_q12661_q12669_q12676_q12677_q12713_summon_stefan_SpellScript);
+
+ void ChangeSummonPos(SpellEffIndex /*effIndex*/)
+ {
+ // Adjust effect summon position
+ WorldLocation summonPos = *GetExplTargetDest();
+ Position offset = { 0.0f, 0.0f, 20.0f, 0.0f };
+ summonPos.RelocateOffset(offset);
+ SetExplTargetDest(summonPos);
+ GetHitDest()->RelocateOffset(offset);
+ }
+
+ void Register() OVERRIDE
+ {
+ OnEffectHit += SpellEffectFn(spell_q12661_q12669_q12676_q12677_q12713_summon_stefan_SpellScript::ChangeSummonPos, EFFECT_0, SPELL_EFFECT_SUMMON);
+ }
+ };
+
+ SpellScript* GetSpellScript() const OVERRIDE
+ {
+ return new spell_q12661_q12669_q12676_q12677_q12713_summon_stefan_SpellScript();
+ }
+};
+
+enum QuenchingMist
+{
+ SPELL_FLICKERING_FLAMES = 53504
+};
+
+class spell_q12730_quenching_mist : public SpellScriptLoader
+{
+ public:
+ spell_q12730_quenching_mist() : SpellScriptLoader("spell_q12730_quenching_mist") { }
+
+ class spell_q12730_quenching_mist_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_q12730_quenching_mist_AuraScript);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_FLICKERING_FLAMES))
+ return false;
+ return true;
+ }
+
+ void HandleEffectPeriodic(AuraEffect const* /*aurEff*/)
+ {
+ GetTarget()->RemoveAurasDueToSpell(SPELL_FLICKERING_FLAMES);
+ }
+
+ void Register() OVERRIDE
+ {
+ OnEffectPeriodic += AuraEffectPeriodicFn(spell_q12730_quenching_mist_AuraScript::HandleEffectPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_HEAL);
+ }
+ };
+
+ AuraScript* GetAuraScript() const OVERRIDE
+ {
+ return new spell_q12730_quenching_mist_AuraScript();
+ }
+};
+
// 13291 - Borrowed Technology/13292 - The Solution Solution /Daily//13239 - Volatility/13261 - Volatiliy /Daily//
enum Quest13291_13292_13239_13261Data
{
@@ -1580,7 +1694,7 @@ class spell_q13291_q13292_q13239_q13261_frostbrood_skytalon_grab_decoy : public
{
PrepareSpellScript(spell_q13291_q13292_q13239_q13261_frostbrood_skytalon_grab_decoy_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_RIDE))
return false;
@@ -1597,13 +1711,13 @@ class spell_q13291_q13292_q13239_q13261_frostbrood_skytalon_grab_decoy : public
GetHitCreature()->CastSpell(GetCaster(), SPELL_RIDE, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_q13291_q13292_q13239_q13261_frostbrood_skytalon_grab_decoy_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_q13291_q13292_q13239_q13261_frostbrood_skytalon_grab_decoy_SpellScript();
}
@@ -1628,21 +1742,143 @@ class spell_q13291_q13292_q13239_q13261_armored_decoy_summon_skytalon : public S
GetHitDest()->RelocateOffset(offset);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHit += SpellEffectFn(spell_q13291_q13292_q13239_q13261_armored_decoy_summon_skytalon_SpellScript::ChangeSummonPos, EFFECT_0, SPELL_EFFECT_SUMMON);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_q13291_q13292_q13239_q13261_armored_decoy_summon_skytalon_SpellScript();
}
};
+class spell_q12847_summon_soul_moveto_bunny : public SpellScriptLoader
+{
+ public:
+ spell_q12847_summon_soul_moveto_bunny() : SpellScriptLoader("spell_q12847_summon_soul_moveto_bunny") { }
+
+ class spell_q12847_summon_soul_moveto_bunny_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_q12847_summon_soul_moveto_bunny_SpellScript);
+
+ void ChangeSummonPos(SpellEffIndex /*effIndex*/)
+ {
+ // Adjust effect summon position
+ WorldLocation summonPos = *GetExplTargetDest();
+ Position offset = { 0.0f, 0.0f, 2.5f, 0.0f };
+ summonPos.RelocateOffset(offset);
+ SetExplTargetDest(summonPos);
+ GetHitDest()->RelocateOffset(offset);
+ }
+
+ void Register() OVERRIDE
+ {
+ OnEffectHit += SpellEffectFn(spell_q12847_summon_soul_moveto_bunny_SpellScript::ChangeSummonPos, EFFECT_0, SPELL_EFFECT_SUMMON);
+ }
+ };
+
+ SpellScript *GetSpellScript() const
+ {
+ return new spell_q12847_summon_soul_moveto_bunny_SpellScript();
+ }
+};
+
+enum BearFlankMaster
+{
+ SPELL_BEAR_FLANK_MASTER = 56565,
+ SPELL_CREATE_BEAR_FLANK = 56566,
+ SPELL_BEAR_FLANK_FAIL = 56569
+};
+
+class spell_q13011_bear_flank_master : public SpellScriptLoader
+{
+ public:
+ spell_q13011_bear_flank_master() : SpellScriptLoader("spell_q13011_bear_flank_master") { }
+
+ class spell_q13011_bear_flank_master_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_q13011_bear_flank_master_SpellScript);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_BEAR_FLANK_MASTER) || !sSpellMgr->GetSpellInfo(SPELL_CREATE_BEAR_FLANK))
+ return false;
+ return true;
+ }
+
+ bool Load() OVERRIDE
+ {
+ return GetCaster()->GetTypeId() == TYPEID_UNIT;
+ }
+
+ void HandleScript(SpellEffIndex effIndex)
+ {
+ bool failed = RAND(0, 1); // 50% chance
+ Creature* creature = GetCaster()->ToCreature();
+ if (Player* player = GetHitPlayer())
+ {
+ if (failed)
+ {
+ player->CastSpell(creature, SPELL_BEAR_FLANK_FAIL);
+ creature->AI()->Talk(0, player->GetGUID());
+ }
+ else
+ player->CastSpell(player, SPELL_CREATE_BEAR_FLANK);
+ }
+ }
+
+ void Register() OVERRIDE
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_q13011_bear_flank_master_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+ };
+
+ SpellScript* GetSpellScript() const OVERRIDE
+ {
+ return new spell_q13011_bear_flank_master_SpellScript();
+ }
+};
+
+class spell_q13086_cannons_target : public SpellScriptLoader
+{
+ public:
+ spell_q13086_cannons_target() : SpellScriptLoader("spell_q13086_cannons_target") { }
+
+ class spell_q13086_cannons_target_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_q13086_cannons_target_SpellScript);
+
+ bool Validate(SpellInfo const* spellInfo) OVERRIDE
+ {
+ if (!sSpellMgr->GetSpellInfo(spellInfo->Effects[EFFECT_0].CalcValue()))
+ return false;
+ return true;
+ }
+
+ void HandleEffectDummy(SpellEffIndex /*effIndex*/)
+ {
+ if (WorldLocation const* pos = GetExplTargetDest())
+ GetCaster()->CastSpell(pos->GetPositionX(), pos->GetPositionY(), pos->GetPositionZ(), GetEffectValue(), true);
+ }
+
+ void Register() OVERRIDE
+ {
+ OnEffectHit += SpellEffectFn(spell_q13086_cannons_target_SpellScript::HandleEffectDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
+ }
+ };
+
+ SpellScript* GetSpellScript() const OVERRIDE
+ {
+ return new spell_q13086_cannons_target_SpellScript();
+ }
+};
+
void AddSC_quest_spell_scripts()
{
new spell_q55_sacred_cleansing();
+ new spell_q2203_thaumaturgy_channel();
new spell_q5206_test_fetid_skull();
new spell_q6124_6129_apply_salve();
new spell_q10255_administer_antidote();
@@ -1678,6 +1914,11 @@ void AddSC_quest_spell_scripts()
new spell_q11010_q11102_q11023_q11008_check_fly_mount();
new spell_q12372_azure_on_death_force_whisper();
new spell_q12527_zuldrak_rat();
+ new spell_q12661_q12669_q12676_q12677_q12713_summon_stefan();
+ new spell_q12730_quenching_mist();
new spell_q13291_q13292_q13239_q13261_frostbrood_skytalon_grab_decoy();
new spell_q13291_q13292_q13239_q13261_armored_decoy_summon_skytalon();
+ new spell_q12847_summon_soul_moveto_bunny();
+ new spell_q13011_bear_flank_master();
+ new spell_q13086_cannons_target();
}
diff --git a/src/server/scripts/Spells/spell_rogue.cpp b/src/server/scripts/Spells/spell_rogue.cpp
index 7a5f0c9fd5b..299773a5d0f 100644
--- a/src/server/scripts/Spells/spell_rogue.cpp
+++ b/src/server/scripts/Spells/spell_rogue.cpp
@@ -47,14 +47,14 @@ class spell_rog_blade_flurry : public SpellScriptLoader
{
PrepareAuraScript(spell_rog_blade_flurry_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_ROGUE_BLADE_FLURRY_EXTRA_ATTACK))
return false;
return true;
}
- bool Load()
+ bool Load() OVERRIDE
{
_procTarget = NULL;
return true;
@@ -76,7 +76,7 @@ class spell_rog_blade_flurry : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
DoCheckProc += AuraCheckProcFn(spell_rog_blade_flurry_AuraScript::CheckProc);
OnEffectProc += AuraEffectProcFn(spell_rog_blade_flurry_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_MOD_MELEE_HASTE);
@@ -86,7 +86,7 @@ class spell_rog_blade_flurry : public SpellScriptLoader
Unit* _procTarget;
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_rog_blade_flurry_AuraScript();
}
@@ -104,14 +104,14 @@ class spell_rog_cheat_death : public SpellScriptLoader
uint32 absorbChance;
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_ROGUE_CHEAT_DEATH_COOLDOWN))
return false;
return true;
}
- bool Load()
+ bool Load() OVERRIDE
{
absorbChance = GetSpellInfo()->Effects[EFFECT_0].CalcValue();
return GetUnitOwner()->ToPlayer();
@@ -142,14 +142,14 @@ class spell_rog_cheat_death : public SpellScriptLoader
absorbAmount = dmgInfo.GetDamage();
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_rog_cheat_death_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_SCHOOL_ABSORB);
OnEffectAbsorb += AuraEffectAbsorbFn(spell_rog_cheat_death_AuraScript::Absorb, EFFECT_0);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_rog_cheat_death_AuraScript();
}
@@ -165,7 +165,7 @@ class spell_rog_deadly_poison : public SpellScriptLoader
{
PrepareSpellScript(spell_rog_deadly_poison_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
_stackAmount = 0;
// at this point CastItem must already be initialized
@@ -234,7 +234,7 @@ class spell_rog_deadly_poison : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
BeforeHit += SpellHitFn(spell_rog_deadly_poison_SpellScript::HandleBeforeHit);
AfterHit += SpellHitFn(spell_rog_deadly_poison_SpellScript::HandleAfterHit);
@@ -243,7 +243,7 @@ class spell_rog_deadly_poison : public SpellScriptLoader
uint8 _stackAmount;
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_rog_deadly_poison_SpellScript();
}
@@ -261,7 +261,7 @@ class spell_rog_nerves_of_steel : public SpellScriptLoader
uint32 absorbPct;
- bool Load()
+ bool Load() OVERRIDE
{
absorbPct = GetSpellInfo()->Effects[EFFECT_0].CalcValue(GetCaster());
return true;
@@ -280,14 +280,14 @@ class spell_rog_nerves_of_steel : public SpellScriptLoader
absorbAmount = CalculatePct(dmgInfo.GetDamage(), absorbPct);
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_rog_nerves_of_steel_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_SCHOOL_ABSORB);
OnEffectAbsorb += AuraEffectAbsorbFn(spell_rog_nerves_of_steel_AuraScript::Absorb, EFFECT_0);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_rog_nerves_of_steel_AuraScript();
}
@@ -303,12 +303,12 @@ class spell_rog_preparation : public SpellScriptLoader
{
PrepareSpellScript(spell_rog_preparation_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
}
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_ROGUE_GLYPH_OF_PREPARATION))
return false;
@@ -348,13 +348,13 @@ class spell_rog_preparation : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_rog_preparation_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_rog_preparation_SpellScript();
}
@@ -370,7 +370,7 @@ class spell_rog_prey_on_the_weak : public SpellScriptLoader
{
PrepareAuraScript(spell_rog_prey_on_the_weak_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_ROGUE_PREY_ON_THE_WEAK))
return false;
@@ -380,7 +380,7 @@ class spell_rog_prey_on_the_weak : public SpellScriptLoader
void HandleEffectPeriodic(AuraEffect const* /*aurEff*/)
{
Unit* target = GetTarget();
- Unit* victim = target->getVictim();
+ Unit* victim = target->GetVictim();
if (victim && (target->GetHealthPct() > victim->GetHealthPct()))
{
if (!target->HasAura(SPELL_ROGUE_PREY_ON_THE_WEAK))
@@ -393,13 +393,13 @@ class spell_rog_prey_on_the_weak : public SpellScriptLoader
target->RemoveAurasDueToSpell(SPELL_ROGUE_PREY_ON_THE_WEAK);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_rog_prey_on_the_weak_AuraScript::HandleEffectPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_rog_prey_on_the_weak_AuraScript();
}
@@ -415,7 +415,7 @@ class spell_rog_rupture : public SpellScriptLoader
{
PrepareAuraScript(spell_rog_rupture_AuraScript);
- bool Load()
+ bool Load() OVERRIDE
{
Unit* caster = GetCaster();
return caster && caster->GetTypeId() == TYPEID_PLAYER;
@@ -445,13 +445,13 @@ class spell_rog_rupture : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_rog_rupture_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_rog_rupture_AuraScript();
}
@@ -467,12 +467,12 @@ class spell_rog_shiv : public SpellScriptLoader
{
PrepareSpellScript(spell_rog_shiv_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
}
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_ROGUE_SHIV_TRIGGERED))
return false;
@@ -486,13 +486,13 @@ class spell_rog_shiv : public SpellScriptLoader
caster->CastSpell(unitTarget, SPELL_ROGUE_SHIV_TRIGGERED, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_rog_shiv_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_rog_shiv_SpellScript();
}
@@ -508,7 +508,7 @@ class spell_rog_tricks_of_the_trade : public SpellScriptLoader
{
PrepareAuraScript(spell_rog_tricks_of_the_trade_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_ROGUE_TRICKS_OF_THE_TRADE_DMG_BOOST))
return false;
@@ -517,7 +517,7 @@ class spell_rog_tricks_of_the_trade : public SpellScriptLoader
return true;
}
- bool Load()
+ bool Load() OVERRIDE
{
_redirectTarget = NULL;
return true;
@@ -545,7 +545,7 @@ class spell_rog_tricks_of_the_trade : public SpellScriptLoader
Remove(AURA_REMOVE_BY_DEFAULT); // maybe handle by proc charges
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectRemove += AuraEffectRemoveFn(spell_rog_tricks_of_the_trade_AuraScript::OnRemove, EFFECT_1, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
DoCheckProc += AuraCheckProcFn(spell_rog_tricks_of_the_trade_AuraScript::CheckProc);
@@ -556,7 +556,7 @@ class spell_rog_tricks_of_the_trade : public SpellScriptLoader
Unit* _redirectTarget;
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_rog_tricks_of_the_trade_AuraScript();
}
@@ -577,13 +577,13 @@ class spell_rog_tricks_of_the_trade_proc : public SpellScriptLoader
GetTarget()->ResetRedirectThreat();
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectRemove += AuraEffectRemoveFn(spell_rog_tricks_of_the_trade_proc_AuraScript::HandleRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_rog_tricks_of_the_trade_proc_AuraScript();
}
diff --git a/src/server/scripts/Spells/spell_shaman.cpp b/src/server/scripts/Spells/spell_shaman.cpp
index f970807bb94..3a02a8b8c09 100644
--- a/src/server/scripts/Spells/spell_shaman.cpp
+++ b/src/server/scripts/Spells/spell_shaman.cpp
@@ -41,6 +41,9 @@ enum ShamanSpells
SPELL_SHAMAN_GLYPH_OF_HEALING_STREAM_TOTEM = 55456,
SPELL_SHAMAN_GLYPH_OF_MANA_TIDE = 55441,
SPELL_SHAMAN_GLYPH_OF_THUNDERSTORM = 62132,
+ SPELL_SHAMAN_ITEM_LIGHTNING_SHIELD = 23552,
+ SPELL_SHAMAN_ITEM_LIGHTNING_SHIELD_DAMAGE = 27635,
+ SPELL_SHAMAN_ITEM_MANA_SURGE = 23571,
SPELL_SHAMAN_LAVA_FLOWS_R1 = 51480,
SPELL_SHAMAN_LAVA_FLOWS_TRIGGERED_R1 = 64694,
SPELL_SHAMAN_MANA_SPRING_TOTEM_ENERGIZE = 52032,
@@ -55,8 +58,8 @@ enum ShamanSpells
enum ShamanSpellIcons
{
- SHAMAN_ICON_ID_RESTORATIVE_TOTEMS = 338,
- SHAMAN_ICON_ID_SHAMAN_LAVA_FLOW = 3087
+ SHAMAN_ICON_ID_RESTORATIVE_TOTEMS = 338,
+ SHAMAN_ICON_ID_SHAMAN_LAVA_FLOW = 3087
};
// 52759 - Ancestral Awakening (Proc)
@@ -69,7 +72,7 @@ class spell_sha_ancestral_awakening_proc : public SpellScriptLoader
{
PrepareSpellScript(spell_sha_ancestral_awakening_proc_SpellScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_ANCESTRAL_AWAKENING_PROC))
return false;
@@ -83,13 +86,13 @@ class spell_sha_ancestral_awakening_proc : public SpellScriptLoader
GetCaster()->CastCustomSpell(GetHitUnit(), SPELL_SHAMAN_ANCESTRAL_AWAKENING_PROC, &damage, NULL, NULL, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_sha_ancestral_awakening_proc_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_sha_ancestral_awakening_proc_SpellScript();
}
@@ -107,7 +110,7 @@ class spell_sha_astral_shift : public SpellScriptLoader
uint32 absorbPct;
- bool Load()
+ bool Load() OVERRIDE
{
absorbPct = GetSpellInfo()->Effects[EFFECT_0].CalcValue(GetCaster());
return true;
@@ -126,14 +129,14 @@ class spell_sha_astral_shift : public SpellScriptLoader
absorbAmount = CalculatePct(dmgInfo.GetDamage(), absorbPct);
}
- void Register()
+ void Register() OVERRIDE
{
- DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_sha_astral_shift_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_SCHOOL_ABSORB);
- OnEffectAbsorb += AuraEffectAbsorbFn(spell_sha_astral_shift_AuraScript::Absorb, EFFECT_0);
+ DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_sha_astral_shift_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_SCHOOL_ABSORB);
+ OnEffectAbsorb += AuraEffectAbsorbFn(spell_sha_astral_shift_AuraScript::Absorb, EFFECT_0);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_sha_astral_shift_AuraScript();
}
@@ -149,7 +152,7 @@ class spell_sha_bloodlust : public SpellScriptLoader
{
PrepareSpellScript(spell_sha_bloodlust_SpellScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_SATED))
return false;
@@ -167,7 +170,7 @@ class spell_sha_bloodlust : public SpellScriptLoader
target->CastSpell(target, SPELL_SHAMAN_SATED, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_sha_bloodlust_SpellScript::RemoveInvalidTargets, EFFECT_0, TARGET_UNIT_CASTER_AREA_RAID);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_sha_bloodlust_SpellScript::RemoveInvalidTargets, EFFECT_1, TARGET_UNIT_CASTER_AREA_RAID);
@@ -176,7 +179,7 @@ class spell_sha_bloodlust : public SpellScriptLoader
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_sha_bloodlust_SpellScript();
}
@@ -192,7 +195,7 @@ class spell_sha_chain_heal : public SpellScriptLoader
{
PrepareSpellScript(spell_sha_chain_heal_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
firstHeal = true;
riptide = false;
@@ -217,7 +220,7 @@ class spell_sha_chain_heal : public SpellScriptLoader
SetHitHeal(GetHitHeal() * 1.25f);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_sha_chain_heal_SpellScript::HandleHeal, EFFECT_0, SPELL_EFFECT_HEAL);
}
@@ -226,7 +229,7 @@ class spell_sha_chain_heal : public SpellScriptLoader
bool riptide;
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_sha_chain_heal_SpellScript();
}
@@ -242,7 +245,7 @@ class spell_sha_cleansing_totem_pulse : public SpellScriptLoader
{
PrepareSpellScript(spell_sha_cleansing_totem_pulse_SpellScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_CLEANSING_TOTEM_EFFECT))
return false;
@@ -256,13 +259,13 @@ class spell_sha_cleansing_totem_pulse : public SpellScriptLoader
GetCaster()->CastCustomSpell(GetHitUnit(), SPELL_SHAMAN_CLEANSING_TOTEM_EFFECT, NULL, &bp, NULL, true, NULL, NULL, GetOriginalCaster()->GetGUID());
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_sha_cleansing_totem_pulse_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_sha_cleansing_totem_pulse_SpellScript();
}
@@ -278,7 +281,7 @@ class spell_sha_earth_shield : public SpellScriptLoader
{
PrepareAuraScript(spell_sha_earth_shield_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_EARTH_SHIELD_HEAL))
return false;
@@ -302,29 +305,35 @@ class spell_sha_earth_shield : public SpellScriptLoader
}
}
- void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/)
+ bool CheckProc(ProcEventInfo& /*eventInfo*/)
{
- PreventDefaultAction();
-
//! HACK due to currenct proc system implementation
if (Player* player = GetTarget()->ToPlayer())
if (player->HasSpellCooldown(SPELL_SHAMAN_EARTH_SHIELD_HEAL))
- return;
+ return false;
+ return true;
+ }
+
+ void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/)
+ {
+ PreventDefaultAction();
GetTarget()->CastCustomSpell(SPELL_SHAMAN_EARTH_SHIELD_HEAL, SPELLVALUE_BASE_POINT0, aurEff->GetAmount(), GetTarget(), true, NULL, aurEff, GetCasterGUID());
+ /// @hack: due to currenct proc system implementation
if (Player* player = GetTarget()->ToPlayer())
player->AddSpellCooldown(SPELL_SHAMAN_EARTH_SHIELD_HEAL, 0, time(NULL) + 3);
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_sha_earth_shield_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_DUMMY);
+ DoCheckProc += AuraCheckProcFn(spell_sha_earth_shield_AuraScript::CheckProc);
OnEffectProc += AuraEffectProcFn(spell_sha_earth_shield_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_sha_earth_shield_AuraScript();
}
@@ -340,7 +349,7 @@ class spell_sha_earthbind_totem : public SpellScriptLoader
{
PrepareAuraScript(spell_sha_earthbind_totem_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_TOTEM_EARTHBIND_TOTEM) || !sSpellMgr->GetSpellInfo(SPELL_SHAMAN_TOTEM_EARTHEN_POWER))
return false;
@@ -372,14 +381,14 @@ class spell_sha_earthbind_totem : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_sha_earthbind_totem_AuraScript::HandleEffectPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
OnEffectApply += AuraEffectApplyFn(spell_sha_earthbind_totem_AuraScript::Apply, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_sha_earthbind_totem_AuraScript();
}
@@ -417,13 +426,13 @@ class spell_sha_earthen_power : public SpellScriptLoader
unitList.remove_if(EarthenPowerTargetSelector());
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_sha_earthen_power_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ALLY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_sha_earthen_power_SpellScript();
}
@@ -439,12 +448,13 @@ class spell_sha_fire_nova : public SpellScriptLoader
{
PrepareSpellScript(spell_sha_fire_nova_SpellScript);
- bool Validate(SpellInfo const* spellInfo)
+ bool Validate(SpellInfo const* spellInfo) OVERRIDE
{
- if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_FIRE_NOVA_R1) || sSpellMgr->GetFirstSpellInChain(SPELL_SHAMAN_FIRE_NOVA_R1) != sSpellMgr->GetFirstSpellInChain(spellInfo->Id))
+ SpellInfo const* firstRankSpellInfo = sSpellMgr->GetSpellInfo(SPELL_SHAMAN_FIRE_NOVA_R1);
+ if (!firstRankSpellInfo || !spellInfo->IsRankOf(firstRankSpellInfo))
return false;
- uint8 rank = sSpellMgr->GetSpellRank(spellInfo->Id);
+ uint8 rank = spellInfo->GetRank();
if (!sSpellMgr->GetSpellWithRank(SPELL_SHAMAN_FIRE_NOVA_TRIGGERED_R1, rank, true))
return false;
return true;
@@ -464,26 +474,23 @@ class spell_sha_fire_nova : public SpellScriptLoader
void HandleDummy(SpellEffIndex /*effIndex*/)
{
- if (Unit* caster = GetCaster())
+ Unit* caster = GetCaster();
+ if (Creature* totem = caster->GetMap()->GetCreature(caster->m_SummonSlot[1]))
{
- uint8 rank = sSpellMgr->GetSpellRank(GetSpellInfo()->Id);
- if (uint32 spellId = sSpellMgr->GetSpellWithRank(SPELL_SHAMAN_FIRE_NOVA_TRIGGERED_R1, rank))
- {
- Creature* totem = caster->GetMap()->GetCreature(caster->m_SummonSlot[1]);
- if (totem && totem->isTotem())
- caster->CastSpell(totem, spellId, true);
- }
+ uint8 rank = GetSpellInfo()->GetRank();
+ if (totem->IsTotem())
+ caster->CastSpell(totem, sSpellMgr->GetSpellWithRank(SPELL_SHAMAN_FIRE_NOVA_TRIGGERED_R1, rank), true);
}
}
- void Register()
+ void Register() OVERRIDE
{
OnCheckCast += SpellCheckCastFn(spell_sha_fire_nova_SpellScript::CheckFireTotem);
OnEffectHitTarget += SpellEffectFn(spell_sha_fire_nova_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_sha_fire_nova_SpellScript();
}
@@ -499,7 +506,7 @@ class spell_sha_flame_shock : public SpellScriptLoader
{
PrepareAuraScript(spell_sha_flame_shock_AuraScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_LAVA_FLOWS_R1))
return false;
@@ -514,21 +521,22 @@ class spell_sha_flame_shock : public SpellScriptLoader
// Lava Flows
if (AuraEffect const* aurEff = caster->GetDummyAuraEffect(SPELLFAMILY_SHAMAN, SHAMAN_ICON_ID_SHAMAN_LAVA_FLOW, EFFECT_0))
{
- if (sSpellMgr->GetFirstSpellInChain(SPELL_SHAMAN_LAVA_FLOWS_R1) != sSpellMgr->GetFirstSpellInChain(aurEff->GetId()))
+ SpellInfo const* firstRankSpellInfo = sSpellMgr->GetSpellInfo(SPELL_SHAMAN_LAVA_FLOWS_R1);
+ if (!aurEff->GetSpellInfo()->IsRankOf(firstRankSpellInfo))
return;
- uint8 rank = sSpellMgr->GetSpellRank(aurEff->GetId());
+ uint8 rank = aurEff->GetSpellInfo()->GetRank();
caster->CastSpell(caster, sSpellMgr->GetSpellWithRank(SPELL_SHAMAN_LAVA_FLOWS_TRIGGERED_R1, rank), true);
}
}
- void Register()
+ void Register() OVERRIDE
{
AfterDispel += AuraDispelFn(spell_sha_flame_shock_AuraScript::HandleDispel);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_sha_flame_shock_AuraScript();
}
@@ -544,7 +552,7 @@ class spell_sha_healing_stream_totem : public SpellScriptLoader
{
PrepareSpellScript(spell_sha_healing_stream_totem_SpellScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_GLYPH_OF_HEALING_STREAM_TOTEM) || !sSpellMgr->GetSpellInfo(SPELL_SHAMAN_TOTEM_HEALING_STREAM_HEAL))
return false;
@@ -577,13 +585,13 @@ class spell_sha_healing_stream_totem : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_sha_healing_stream_totem_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_sha_healing_stream_totem_SpellScript();
}
@@ -599,7 +607,7 @@ class spell_sha_heroism : public SpellScriptLoader
{
PrepareSpellScript(spell_sha_heroism_SpellScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_EXHAUSTION))
return false;
@@ -617,7 +625,7 @@ class spell_sha_heroism : public SpellScriptLoader
target->CastSpell(target, SPELL_SHAMAN_EXHAUSTION, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_sha_heroism_SpellScript::RemoveInvalidTargets, EFFECT_0, TARGET_UNIT_CASTER_AREA_RAID);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_sha_heroism_SpellScript::RemoveInvalidTargets, EFFECT_1, TARGET_UNIT_CASTER_AREA_RAID);
@@ -626,12 +634,126 @@ class spell_sha_heroism : public SpellScriptLoader
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_sha_heroism_SpellScript();
}
};
+// 23551 - Lightning Shield
+class spell_sha_item_lightning_shield : public SpellScriptLoader
+{
+ public:
+ spell_sha_item_lightning_shield() : SpellScriptLoader("spell_sha_item_lightning_shield") { }
+
+ class spell_sha_item_lightning_shield_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_sha_item_lightning_shield_AuraScript);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_ITEM_LIGHTNING_SHIELD))
+ return false;
+ return true;
+ }
+
+ void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo)
+ {
+ PreventDefaultAction();
+ GetTarget()->CastSpell(eventInfo.GetProcTarget(), SPELL_SHAMAN_ITEM_LIGHTNING_SHIELD, true, NULL, aurEff);
+ }
+
+ void Register() OVERRIDE
+ {
+ OnEffectProc += AuraEffectProcFn(spell_sha_item_lightning_shield_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL);
+ }
+ };
+
+ AuraScript* GetAuraScript() const OVERRIDE
+ {
+ return new spell_sha_item_lightning_shield_AuraScript();
+ }
+};
+
+// 23552 - Lightning Shield
+class spell_sha_item_lightning_shield_trigger : public SpellScriptLoader
+{
+ public:
+ spell_sha_item_lightning_shield_trigger() : SpellScriptLoader("spell_sha_item_lightning_shield_trigger") { }
+
+ class spell_sha_item_lightning_shield_trigger_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_sha_item_lightning_shield_trigger_AuraScript);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_ITEM_MANA_SURGE))
+ return false;
+ return true;
+ }
+
+ void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/)
+ {
+ PreventDefaultAction();
+ GetTarget()->CastSpell(GetTarget(), SPELL_SHAMAN_ITEM_LIGHTNING_SHIELD_DAMAGE, true, NULL, aurEff);
+ }
+
+ void Register() OVERRIDE
+ {
+ OnEffectProc += AuraEffectProcFn(spell_sha_item_lightning_shield_trigger_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL);
+ }
+ };
+
+ AuraScript* GetAuraScript() const OVERRIDE
+ {
+ return new spell_sha_item_lightning_shield_trigger_AuraScript();
+ }
+};
+
+// 23572 - Mana Surge
+class spell_sha_item_mana_surge : public SpellScriptLoader
+{
+ public:
+ spell_sha_item_mana_surge() : SpellScriptLoader("spell_sha_item_mana_surge") { }
+
+ class spell_sha_item_mana_surge_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_sha_item_mana_surge_AuraScript);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_ITEM_LIGHTNING_SHIELD_DAMAGE))
+ return false;
+ return true;
+ }
+
+ bool CheckProc(ProcEventInfo& eventInfo)
+ {
+ return eventInfo.GetDamageInfo()->GetSpellInfo();
+ }
+
+ void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo)
+ {
+ PreventDefaultAction();
+ int32 mana = eventInfo.GetDamageInfo()->GetSpellInfo()->CalcPowerCost(GetTarget(), eventInfo.GetSchoolMask());
+ int32 damage = CalculatePct(mana, 35);
+
+ GetTarget()->CastCustomSpell(SPELL_SHAMAN_ITEM_MANA_SURGE, SPELLVALUE_BASE_POINT0, damage, GetTarget(), true, NULL, aurEff);
+ }
+
+ void Register() OVERRIDE
+ {
+ DoCheckProc += AuraCheckProcFn(spell_sha_item_mana_surge_AuraScript::CheckProc);
+ OnEffectProc += AuraEffectProcFn(spell_sha_item_mana_surge_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL);
+ }
+ };
+
+ AuraScript* GetAuraScript() const OVERRIDE
+ {
+ return new spell_sha_item_mana_surge_AuraScript();
+ }
+};
+
// 60103 - Lava Lash
class spell_sha_lava_lash : public SpellScriptLoader
{
@@ -642,7 +764,7 @@ class spell_sha_lava_lash : public SpellScriptLoader
{
PrepareSpellScript(spell_sha_lava_lash_SpellScript)
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
}
@@ -663,14 +785,14 @@ class spell_sha_lava_lash : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_sha_lava_lash_SpellScript::HandleDummy, EFFECT_1, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_sha_lava_lash_SpellScript();
}
@@ -686,7 +808,7 @@ class spell_sha_mana_spring_totem : public SpellScriptLoader
{
PrepareSpellScript(spell_sha_mana_spring_totem_SpellScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_MANA_SPRING_TOTEM_ENERGIZE))
return false;
@@ -702,14 +824,14 @@ class spell_sha_mana_spring_totem : public SpellScriptLoader
caster->CastCustomSpell(target, SPELL_SHAMAN_MANA_SPRING_TOTEM_ENERGIZE, &damage, 0, 0, true, 0, 0, GetOriginalCaster()->GetGUID());
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_sha_mana_spring_totem_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_sha_mana_spring_totem_SpellScript();
}
@@ -725,7 +847,7 @@ class spell_sha_mana_tide_totem : public SpellScriptLoader
{
PrepareSpellScript(spell_sha_mana_tide_totem_SpellScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_GLYPH_OF_MANA_TIDE) || !sSpellMgr->GetSpellInfo(SPELL_SHAMAN_MANA_TIDE_TOTEM))
return false;
@@ -751,13 +873,13 @@ class spell_sha_mana_tide_totem : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_sha_mana_tide_totem_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_sha_mana_tide_totem_SpellScript();
}
@@ -773,7 +895,7 @@ class spell_sha_sentry_totem : public SpellScriptLoader
{
PrepareAuraScript(spell_sha_sentry_totem_AuraScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_BIND_SIGHT))
return false;
@@ -784,7 +906,7 @@ class spell_sha_sentry_totem : public SpellScriptLoader
{
if (Unit* caster = GetCaster())
if (Creature* totem = caster->GetMap()->GetCreature(caster->m_SummonSlot[4]))
- if (totem->isTotem())
+ if (totem->IsTotem())
caster->CastSpell(totem, SPELL_SHAMAN_BIND_SIGHT, true);
}
@@ -795,14 +917,14 @@ class spell_sha_sentry_totem : public SpellScriptLoader
caster->ToPlayer()->StopCastingBindSight();
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectApply += AuraEffectApplyFn(spell_sha_sentry_totem_AuraScript::AfterApply, EFFECT_1, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_sha_sentry_totem_AuraScript::AfterRemove, EFFECT_1, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_sha_sentry_totem_AuraScript();
}
@@ -825,13 +947,13 @@ class spell_sha_thunderstorm : public SpellScriptLoader
PreventHitDefaultEffect(effIndex);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_sha_thunderstorm_SpellScript::HandleKnockBack, EFFECT_2, SPELL_EFFECT_KNOCK_BACK);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_sha_thunderstorm_SpellScript();
}
@@ -851,6 +973,9 @@ void AddSC_shaman_spell_scripts()
new spell_sha_flame_shock();
new spell_sha_healing_stream_totem();
new spell_sha_heroism();
+ new spell_sha_item_lightning_shield();
+ new spell_sha_item_lightning_shield_trigger();
+ new spell_sha_item_mana_surge();
new spell_sha_lava_lash();
new spell_sha_mana_spring_totem();
new spell_sha_mana_tide_totem();
diff --git a/src/server/scripts/Spells/spell_warlock.cpp b/src/server/scripts/Spells/spell_warlock.cpp
index 7b2e5c02bfa..6aea2d7ad34 100644
--- a/src/server/scripts/Spells/spell_warlock.cpp
+++ b/src/server/scripts/Spells/spell_warlock.cpp
@@ -38,15 +38,16 @@ enum WarlockSpells
SPELL_WARLOCK_DEMONIC_EMPOWERMENT_FELHUNTER = 54509,
SPELL_WARLOCK_DEMONIC_EMPOWERMENT_IMP = 54444,
SPELL_WARLOCK_FEL_SYNERGY_HEAL = 54181,
+ SPELL_WARLOCK_GLYPH_OF_SHADOWFLAME = 63311,
SPELL_WARLOCK_GLYPH_OF_SIPHON_LIFE = 63106,
+ SPELL_WARLOCK_HAUNT = 48181,
+ SPELL_WARLOCK_HAUNT_HEAL = 48210,
SPELL_WARLOCK_IMPROVED_HEALTHSTONE_R1 = 18692,
SPELL_WARLOCK_IMPROVED_HEALTHSTONE_R2 = 18693,
SPELL_WARLOCK_IMPROVED_HEALTH_FUNNEL_R1 = 18703,
SPELL_WARLOCK_IMPROVED_HEALTH_FUNNEL_R2 = 18704,
SPELL_WARLOCK_IMPROVED_HEALTH_FUNNEL_BUFF_R1 = 60955,
SPELL_WARLOCK_IMPROVED_HEALTH_FUNNEL_BUFF_R2 = 60956,
- SPELL_WARLOCK_HAUNT = 48181,
- SPELL_WARLOCK_HAUNT_HEAL = 48210,
SPELL_WARLOCK_LIFE_TAP_ENERGIZE = 31818,
SPELL_WARLOCK_LIFE_TAP_ENERGIZE_2 = 32553,
SPELL_WARLOCK_SOULSHATTER = 32835,
@@ -60,7 +61,7 @@ enum WarlockSpellIcons
WARLOCK_ICON_ID_MANA_FEED = 1982
};
-// 710, 18647 - Banish
+// -710 - Banish
class spell_warl_banish : public SpellScriptLoader
{
public:
@@ -70,7 +71,7 @@ class spell_warl_banish : public SpellScriptLoader
{
PrepareSpellScript(spell_warl_banish_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
_removed = false;
return true;
@@ -97,7 +98,7 @@ class spell_warl_banish : public SpellScriptLoader
PreventHitAura();
}
- void Register()
+ void Register() OVERRIDE
{
BeforeHit += SpellHitFn(spell_warl_banish_SpellScript::HandleBanish);
AfterHit += SpellHitFn(spell_warl_banish_SpellScript::RemoveAura);
@@ -106,7 +107,7 @@ class spell_warl_banish : public SpellScriptLoader
bool _removed;
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_warl_banish_SpellScript();
}
@@ -124,7 +125,7 @@ class spell_warl_create_healthstone : public SpellScriptLoader
static uint32 const iTypes[8][3];
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_WARLOCK_IMPROVED_HEALTHSTONE_R1) || !sSpellMgr->GetSpellInfo(SPELL_WARLOCK_IMPROVED_HEALTHSTONE_R2))
return false;
@@ -135,7 +136,7 @@ class spell_warl_create_healthstone : public SpellScriptLoader
{
if (Player* caster = GetCaster()->ToPlayer())
{
- uint8 spellRank = sSpellMgr->GetSpellRank(GetSpellInfo()->Id);
+ uint8 spellRank = GetSpellInfo()->GetRank();
ItemPosCountVec dest;
InventoryResult msg = caster->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, iTypes[spellRank - 1][0], 1, NULL);
if (msg != EQUIP_ERR_OK)
@@ -165,20 +166,20 @@ class spell_warl_create_healthstone : public SpellScriptLoader
break;
}
}
- uint8 spellRank = sSpellMgr->GetSpellRank(GetSpellInfo()->Id);
+ uint8 spellRank = GetSpellInfo()->GetRank();
if (spellRank > 0 && spellRank <= 8)
CreateItem(effIndex, iTypes[spellRank - 1][rank]);
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_warl_create_healthstone_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
OnCheckCast += SpellCheckCastFn(spell_warl_create_healthstone_SpellScript::CheckCast);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_warl_create_healthstone_SpellScript();
}
@@ -205,14 +206,14 @@ class spell_warl_curse_of_doom : public SpellScriptLoader
{
PrepareAuraScript(spell_warl_curse_of_doom_AuraScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_WARLOCK_CURSE_OF_DOOM_EFFECT))
return false;
return true;
}
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster() && GetCaster()->GetTypeId() == TYPEID_PLAYER;
}
@@ -230,19 +231,19 @@ class spell_warl_curse_of_doom : public SpellScriptLoader
GetCaster()->CastSpell(GetTarget(), SPELL_WARLOCK_CURSE_OF_DOOM_EFFECT, true, NULL, aurEff);
}
- void Register()
+ void Register() OVERRIDE
{
AfterEffectRemove += AuraEffectRemoveFn(spell_warl_curse_of_doom_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_warl_curse_of_doom_AuraScript();
}
};
-// 48018 - Demonic Circle Summon
+// 48018 - Demonic Circle: Summon
class spell_warl_demonic_circle_summon : public SpellScriptLoader
{
public:
@@ -281,20 +282,20 @@ class spell_warl_demonic_circle_summon : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectRemove += AuraEffectApplyFn(spell_warl_demonic_circle_summon_AuraScript::HandleRemove, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_warl_demonic_circle_summon_AuraScript::HandleDummyTick, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_warl_demonic_circle_summon_AuraScript();
}
};
-// 48020 - Demonic Circle Teleport
+// 48020 - Demonic Circle: Teleport
class spell_warl_demonic_circle_teleport : public SpellScriptLoader
{
public:
@@ -316,13 +317,13 @@ class spell_warl_demonic_circle_teleport : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectApply += AuraEffectApplyFn(spell_warl_demonic_circle_teleport_AuraScript::HandleTeleport, EFFECT_0, SPELL_AURA_MECHANIC_IMMUNITY, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_warl_demonic_circle_teleport_AuraScript();
}
@@ -338,7 +339,7 @@ class spell_warl_demonic_empowerment : public SpellScriptLoader
{
PrepareSpellScript(spell_warl_demonic_empowerment_SpellScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_WARLOCK_DEMONIC_EMPOWERMENT_SUCCUBUS) || !sSpellMgr->GetSpellInfo(SPELL_WARLOCK_DEMONIC_EMPOWERMENT_VOIDWALKER) || !sSpellMgr->GetSpellInfo(SPELL_WARLOCK_DEMONIC_EMPOWERMENT_FELGUARD) || !sSpellMgr->GetSpellInfo(SPELL_WARLOCK_DEMONIC_EMPOWERMENT_FELHUNTER) || !sSpellMgr->GetSpellInfo(SPELL_WARLOCK_DEMONIC_EMPOWERMENT_IMP))
return false;
@@ -349,7 +350,7 @@ class spell_warl_demonic_empowerment : public SpellScriptLoader
{
if (Creature* targetCreature = GetHitCreature())
{
- if (targetCreature->isPet())
+ if (targetCreature->IsPet())
{
CreatureTemplate const* ci = sObjectMgr->GetCreatureTemplate(targetCreature->GetEntry());
switch (ci->family)
@@ -379,13 +380,13 @@ class spell_warl_demonic_empowerment : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_warl_demonic_empowerment_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_warl_demonic_empowerment_SpellScript();
}
@@ -409,13 +410,13 @@ class spell_warl_everlasting_affliction : public SpellScriptLoader
aur->GetBase()->RefreshDuration();
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_warl_everlasting_affliction_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_warl_everlasting_affliction_SpellScript();
}
@@ -431,7 +432,7 @@ class spell_warl_fel_synergy : public SpellScriptLoader
{
PrepareAuraScript(spell_warl_fel_synergy_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_WARLOCK_FEL_SYNERGY_HEAL))
return false;
@@ -451,19 +452,54 @@ class spell_warl_fel_synergy : public SpellScriptLoader
GetTarget()->CastCustomSpell(SPELL_WARLOCK_FEL_SYNERGY_HEAL, SPELLVALUE_BASE_POINT0, heal, (Unit*)NULL, true, NULL, aurEff); // TARGET_UNIT_PET
}
- void Register()
+ void Register() OVERRIDE
{
DoCheckProc += AuraCheckProcFn(spell_warl_fel_synergy_AuraScript::CheckProc);
OnEffectProc += AuraEffectProcFn(spell_warl_fel_synergy_AuraScript::OnProc, EFFECT_0, SPELL_AURA_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_warl_fel_synergy_AuraScript();
}
};
+// 63310 - Glyph of Shadowflame
+class spell_warl_glyph_of_shadowflame : public SpellScriptLoader
+{
+ public:
+ spell_warl_glyph_of_shadowflame() : SpellScriptLoader("spell_warl_glyph_of_shadowflame") { }
+
+ class spell_warl_glyph_of_shadowflame_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_warl_glyph_of_shadowflame_AuraScript);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_WARLOCK_GLYPH_OF_SHADOWFLAME))
+ return false;
+ return true;
+ }
+
+ void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo)
+ {
+ PreventDefaultAction();
+ GetTarget()->CastSpell(eventInfo.GetProcTarget(), SPELL_WARLOCK_GLYPH_OF_SHADOWFLAME, true, NULL, aurEff);
+ }
+
+ void Register() OVERRIDE
+ {
+ OnEffectProc += AuraEffectProcFn(spell_warl_glyph_of_shadowflame_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
+ }
+ };
+
+ AuraScript* GetAuraScript() const OVERRIDE
+ {
+ return new spell_warl_glyph_of_shadowflame_AuraScript();
+ }
+};
+
// -48181 - Haunt
class spell_warl_haunt : public SpellScriptLoader
{
@@ -481,7 +517,7 @@ class spell_warl_haunt : public SpellScriptLoader
aurEff->SetAmount(CalculatePct(aurEff->GetAmount(), GetHitDamage()));
}
- void Register()
+ void Register() OVERRIDE
{
OnHit += SpellHitFn(spell_warl_haunt_SpellScript::HandleOnHit);
}
@@ -491,7 +527,7 @@ class spell_warl_haunt : public SpellScriptLoader
{
PrepareAuraScript(spell_warl_haunt_AuraScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_WARLOCK_HAUNT_HEAL))
return false;
@@ -507,18 +543,18 @@ class spell_warl_haunt : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectRemove += AuraEffectApplyFn(spell_warl_haunt_AuraScript::HandleRemove, EFFECT_1, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_warl_haunt_SpellScript();
}
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_warl_haunt_AuraScript();
}
@@ -554,14 +590,14 @@ class spell_warl_health_funnel : public SpellScriptLoader
target->RemoveAurasDueToSpell(SPELL_WARLOCK_IMPROVED_HEALTH_FUNNEL_BUFF_R2);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectRemove += AuraEffectRemoveFn(spell_warl_health_funnel_AuraScript::RemoveEffect, EFFECT_0, SPELL_AURA_PERIODIC_HEAL, AURA_EFFECT_HANDLE_REAL);
OnEffectApply += AuraEffectApplyFn(spell_warl_health_funnel_AuraScript::ApplyEffect, EFFECT_0, SPELL_AURA_PERIODIC_HEAL, AURA_EFFECT_HANDLE_REAL);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_warl_health_funnel_AuraScript();
}
@@ -577,12 +613,12 @@ class spell_warl_life_tap : public SpellScriptLoader
{
PrepareSpellScript(spell_warl_life_tap_SpellScript);
- bool Load()
+ bool Load() OVERRIDE
{
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
}
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_WARLOCK_LIFE_TAP_ENERGIZE) || !sSpellMgr->GetSpellInfo(SPELL_WARLOCK_LIFE_TAP_ENERGIZE_2))
return false;
@@ -626,14 +662,14 @@ class spell_warl_life_tap : public SpellScriptLoader
return SPELL_FAILED_FIZZLE;
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_warl_life_tap_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
OnCheckCast += SpellCheckCastFn(spell_warl_life_tap_SpellScript::CheckCast);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_warl_life_tap_SpellScript();
}
@@ -655,13 +691,13 @@ class spell_warl_ritual_of_doom_effect : public SpellScriptLoader
caster->CastSpell(caster, GetEffectValue(), true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHit += SpellEffectFn(spell_warl_ritual_of_doom_effect_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_warl_ritual_of_doom_effect_SpellScript();
}
@@ -683,13 +719,13 @@ class spell_warl_seed_of_corruption : public SpellScriptLoader
targets.remove(GetExplTargetUnit());
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_warl_seed_of_corruption_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_DEST_AREA_ENEMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_warl_seed_of_corruption_SpellScript();
}
@@ -720,13 +756,13 @@ class spell_warl_shadow_ward : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_warl_shadow_ward_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_SCHOOL_ABSORB);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_warl_shadow_ward_AuraScript();
}
@@ -742,7 +778,7 @@ class spell_warl_siphon_life : public SpellScriptLoader
{
PrepareAuraScript(spell_warl_siphon_life_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_WARLOCK_SIPHON_LIFE_HEAL))
return false;
@@ -753,7 +789,7 @@ class spell_warl_siphon_life : public SpellScriptLoader
bool CheckProc(ProcEventInfo& eventInfo)
{
- return eventInfo.GetDamageInfo()->GetDamage();
+ return eventInfo.GetDamageInfo()->GetDamage() && GetTarget()->IsAlive();
}
void OnProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo)
@@ -768,14 +804,14 @@ class spell_warl_siphon_life : public SpellScriptLoader
GetTarget()->CastCustomSpell(SPELL_WARLOCK_SIPHON_LIFE_HEAL, SPELLVALUE_BASE_POINT0, amount, GetTarget(), true, NULL, aurEff);
}
- void Register()
+ void Register() OVERRIDE
{
DoCheckProc += AuraCheckProcFn(spell_warl_siphon_life_AuraScript::CheckProc);
OnEffectProc += AuraEffectProcFn(spell_warl_siphon_life_AuraScript::OnProc, EFFECT_0, SPELL_AURA_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_warl_siphon_life_AuraScript();
}
@@ -791,7 +827,7 @@ class spell_warl_soulshatter : public SpellScriptLoader
{
PrepareSpellScript(spell_warl_soulshatter_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_WARLOCK_SOULSHATTER))
return false;
@@ -808,13 +844,13 @@ class spell_warl_soulshatter : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_warl_soulshatter_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_warl_soulshatter_SpellScript();
}
@@ -830,7 +866,7 @@ class spell_warl_unstable_affliction : public SpellScriptLoader
{
PrepareAuraScript(spell_warl_unstable_affliction_AuraScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_WARLOCK_UNSTABLE_AFFLICTION_DISPEL))
return false;
@@ -848,13 +884,13 @@ class spell_warl_unstable_affliction : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
AfterDispel += AuraDispelFn(spell_warl_unstable_affliction_AuraScript::HandleDispel);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_warl_unstable_affliction_AuraScript();
}
@@ -870,6 +906,7 @@ void AddSC_warlock_spell_scripts()
new spell_warl_demonic_empowerment();
new spell_warl_everlasting_affliction();
new spell_warl_fel_synergy();
+ new spell_warl_glyph_of_shadowflame();
new spell_warl_haunt();
new spell_warl_health_funnel();
new spell_warl_life_tap();
diff --git a/src/server/scripts/Spells/spell_warrior.cpp b/src/server/scripts/Spells/spell_warrior.cpp
index 7136f046873..78dcaaa669c 100644
--- a/src/server/scripts/Spells/spell_warrior.cpp
+++ b/src/server/scripts/Spells/spell_warrior.cpp
@@ -50,8 +50,11 @@ enum WarriorSpells
SPELL_WARRIOR_UNRELENTING_ASSAULT_TRIGGER_1 = 64849,
SPELL_WARRIOR_UNRELENTING_ASSAULT_TRIGGER_2 = 64850,
SPELL_WARRIOR_VIGILANCE_PROC = 50725,
- SPELL_WARRIOR_VIGILANCE_REDIRECT_THREAT = 59665,
+ SPELL_WARRIOR_VIGILANCE_REDIRECT_THREAT = 59665
+};
+enum MiscSpells
+{
SPELL_PALADIN_BLESSING_OF_SANCTUARY = 20911,
SPELL_PALADIN_GREATER_BLESSING_OF_SANCTUARY = 25899,
SPELL_PRIEST_RENEWED_HOPE = 63944,
@@ -60,7 +63,7 @@ enum WarriorSpells
enum WarriorSpellIcons
{
- WARRIOR_ICON_ID_SUDDEN_DEATH = 1989,
+ WARRIOR_ICON_ID_SUDDEN_DEATH = 1989
};
// 23881 - Bloodthirst
@@ -92,14 +95,14 @@ class spell_warr_bloodthirst : public SpellScriptLoader
GetCaster()->CastCustomSpell(GetCaster(), SPELL_WARRIOR_BLOODTHIRST, &damage, NULL, NULL, true, NULL);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_warr_bloodthirst_SpellScript::HandleDamage, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE);
OnEffectHit += SpellEffectFn(spell_warr_bloodthirst_SpellScript::HandleDummy, EFFECT_1, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_warr_bloodthirst_SpellScript();
}
@@ -121,13 +124,13 @@ class spell_warr_bloodthirst_heal : public SpellScriptLoader
SetHitHeal(GetCaster()->CountPctFromMaxHealth(spellInfo->Effects[EFFECT_1].CalcValue(GetCaster())));
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_warr_bloodthirst_heal_SpellScript::HandleHeal, EFFECT_0, SPELL_EFFECT_HEAL);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_warr_bloodthirst_heal_SpellScript();
}
@@ -143,7 +146,7 @@ class spell_warr_charge : public SpellScriptLoader
{
PrepareSpellScript(spell_warr_charge_SpellScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_WARRIOR_JUGGERNAUT_CRIT_BONUS_TALENT) || !sSpellMgr->GetSpellInfo(SPELL_WARRIOR_JUGGERNAUT_CRIT_BONUS_BUFF) || !sSpellMgr->GetSpellInfo(SPELL_WARRIOR_CHARGE))
return false;
@@ -161,13 +164,13 @@ class spell_warr_charge : public SpellScriptLoader
caster->CastSpell(caster, SPELL_WARRIOR_JUGGERNAUT_CRIT_BONUS_BUFF, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_warr_charge_SpellScript::HandleDummy, EFFECT_1, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_warr_charge_SpellScript();
}
@@ -188,13 +191,13 @@ class spell_warr_concussion_blow : public SpellScriptLoader
SetHitDamage(CalculatePct(GetCaster()->GetTotalAttackPowerValue(BASE_ATTACK), GetEffectValue()));
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_warr_concussion_blow_SpellScript::HandleDummy, EFFECT_2, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_warr_concussion_blow_SpellScript();
}
@@ -210,7 +213,7 @@ class spell_warr_damage_shield : public SpellScriptLoader
{
PrepareAuraScript(spell_warr_damage_shield_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_WARRIOR_DAMAGE_SHIELD_DAMAGE))
return false;
@@ -226,13 +229,13 @@ class spell_warr_damage_shield : public SpellScriptLoader
GetTarget()->CastCustomSpell(SPELL_WARRIOR_DAMAGE_SHIELD_DAMAGE, SPELLVALUE_BASE_POINT0, damage, eventInfo.GetProcTarget(), true, NULL, aurEff);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectProc += AuraEffectProcFn(spell_warr_damage_shield_AuraScript::OnProc, EFFECT_0, SPELL_AURA_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_warr_damage_shield_AuraScript();
}
@@ -248,7 +251,7 @@ class spell_warr_deep_wounds : public SpellScriptLoader
{
PrepareSpellScript(spell_warr_deep_wounds_SpellScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_WARRIOR_DEEP_WOUNDS_RANK_1) || !sSpellMgr->GetSpellInfo(SPELL_WARRIOR_DEEP_WOUNDS_RANK_2) || !sSpellMgr->GetSpellInfo(SPELL_WARRIOR_DEEP_WOUNDS_RANK_3))
return false;
@@ -264,7 +267,7 @@ class spell_warr_deep_wounds : public SpellScriptLoader
// apply percent damage mods
damage = caster->SpellDamageBonusDone(target, GetSpellInfo(), damage, SPELL_DIRECT_DAMAGE);
- ApplyPct(damage, 16 * sSpellMgr->GetSpellRank(GetSpellInfo()->Id));
+ ApplyPct(damage, 16 * GetSpellInfo()->GetRank());
damage = target->SpellDamageBonusTaken(caster, GetSpellInfo(), damage, SPELL_DIRECT_DAMAGE);
@@ -281,13 +284,13 @@ class spell_warr_deep_wounds : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_warr_deep_wounds_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_warr_deep_wounds_SpellScript();
}
@@ -303,7 +306,7 @@ class spell_warr_execute : public SpellScriptLoader
{
PrepareSpellScript(spell_warr_execute_SpellScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_WARRIOR_EXECUTE) || !sSpellMgr->GetSpellInfo(SPELL_WARRIOR_GLYPH_OF_EXECUTION))
return false;
@@ -337,13 +340,13 @@ class spell_warr_execute : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_warr_execute_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_warr_execute_SpellScript();
}
@@ -365,13 +368,13 @@ class spell_warr_improved_spell_reflection : public SpellScriptLoader
unitList.remove(GetCaster());
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_warr_improved_spell_reflection_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_CASTER_AREA_PARTY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_warr_improved_spell_reflection_SpellScript();
}
@@ -392,14 +395,14 @@ class spell_warr_intimidating_shout : public SpellScriptLoader
unitList.remove(GetExplTargetWorldObject());
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_warr_intimidating_shout_SpellScript::FilterTargets, EFFECT_1, TARGET_UNIT_SRC_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_warr_intimidating_shout_SpellScript::FilterTargets, EFFECT_2, TARGET_UNIT_SRC_AREA_ENEMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_warr_intimidating_shout_SpellScript();
}
@@ -415,7 +418,7 @@ class spell_warr_last_stand : public SpellScriptLoader
{
PrepareSpellScript(spell_warr_last_stand_SpellScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_WARRIOR_LAST_STAND_TRIGGERED))
return false;
@@ -424,20 +427,18 @@ class spell_warr_last_stand : public SpellScriptLoader
void HandleDummy(SpellEffIndex /*effIndex*/)
{
- if (Unit* caster = GetCaster())
- {
- int32 healthModSpellBasePoints0 = int32(caster->CountPctFromMaxHealth(30));
- caster->CastCustomSpell(caster, SPELL_WARRIOR_LAST_STAND_TRIGGERED, &healthModSpellBasePoints0, NULL, NULL, true, NULL);
- }
+ Unit* caster = GetCaster();
+ int32 healthModSpellBasePoints0 = int32(caster->CountPctFromMaxHealth(GetEffectValue()));
+ caster->CastCustomSpell(caster, SPELL_WARRIOR_LAST_STAND_TRIGGERED, &healthModSpellBasePoints0, NULL, NULL, true, NULL);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHit += SpellEffectFn(spell_warr_last_stand_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_warr_last_stand_SpellScript();
}
@@ -469,13 +470,13 @@ class spell_warr_overpower : public SpellScriptLoader
target->CastSpell(target, spellId, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_warr_overpower_SpellScript::HandleEffect, EFFECT_0, SPELL_EFFECT_ANY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_warr_overpower_SpellScript();
}
@@ -515,13 +516,13 @@ class spell_warr_rend : public SpellScriptLoader
}
}
- void Register()
+ void Register() OVERRIDE
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_warr_rend_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE);
}
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_warr_rend_AuraScript();
}
@@ -546,13 +547,13 @@ class spell_warr_shattering_throw : public SpellScriptLoader
target->RemoveAurasWithMechanic(1 << MECHANIC_IMMUNE_SHIELD, AURA_REMOVE_BY_ENEMY_SPELL);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_warr_shattering_throw_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_warr_shattering_throw_SpellScript();
}
@@ -568,7 +569,7 @@ class spell_warr_slam : public SpellScriptLoader
{
PrepareSpellScript(spell_warr_slam_SpellScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_WARRIOR_SLAM))
return false;
@@ -582,13 +583,13 @@ class spell_warr_slam : public SpellScriptLoader
GetCaster()->CastCustomSpell(GetHitUnit(), SPELL_WARRIOR_SLAM, &bp0, NULL, NULL, true, 0);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_warr_slam_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_warr_slam_SpellScript();
}
@@ -604,14 +605,14 @@ class spell_warr_sweeping_strikes : public SpellScriptLoader
{
PrepareAuraScript(spell_warr_sweeping_strikes_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_WARRIOR_SWEEPING_STRIKES_EXTRA_ATTACK))
return false;
return true;
}
- bool Load()
+ bool Load() OVERRIDE
{
_procTarget = NULL;
return true;
@@ -629,7 +630,7 @@ class spell_warr_sweeping_strikes : public SpellScriptLoader
GetTarget()->CastSpell(_procTarget, SPELL_WARRIOR_SWEEPING_STRIKES_EXTRA_ATTACK, true, NULL, aurEff);
}
- void Register()
+ void Register() OVERRIDE
{
DoCheckProc += AuraCheckProcFn(spell_warr_sweeping_strikes_AuraScript::CheckProc);
OnEffectProc += AuraEffectProcFn(spell_warr_sweeping_strikes_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
@@ -639,7 +640,7 @@ class spell_warr_sweeping_strikes : public SpellScriptLoader
Unit* _procTarget;
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_warr_sweeping_strikes_AuraScript();
}
@@ -655,7 +656,7 @@ class spell_warr_vigilance : public SpellScriptLoader
{
PrepareAuraScript(spell_warr_vigilance_AuraScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_WARRIOR_GLYPH_OF_VIGILANCE))
return false;
@@ -668,7 +669,7 @@ class spell_warr_vigilance : public SpellScriptLoader
return true;
}
- bool Load()
+ bool Load() OVERRIDE
{
_procTarget = NULL;
return true;
@@ -720,7 +721,7 @@ class spell_warr_vigilance : public SpellScriptLoader
GetTarget()->CastSpell(_procTarget, SPELL_WARRIOR_VIGILANCE_PROC, true, NULL, aurEff);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectApply += AuraEffectApplyFn(spell_warr_vigilance_AuraScript::HandleApply, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
AfterEffectApply += AuraEffectApplyFn(spell_warr_vigilance_AuraScript::HandleAfterApply, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
@@ -733,7 +734,7 @@ class spell_warr_vigilance : public SpellScriptLoader
Unit* _procTarget;
};
- AuraScript* GetAuraScript() const
+ AuraScript* GetAuraScript() const OVERRIDE
{
return new spell_warr_vigilance_AuraScript();
}
@@ -758,13 +759,13 @@ class spell_warr_vigilance_trigger : public SpellScriptLoader
target->RemoveSpellCooldown(SPELL_WARRIOR_TAUNT, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnEffectHitTarget += SpellEffectFn(spell_warr_vigilance_trigger_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_warr_vigilance_trigger_SpellScript();
}
diff --git a/src/server/scripts/World/achievement_scripts.cpp b/src/server/scripts/World/achievement_scripts.cpp
index d0ffe5214db..94e448bd9bc 100644
--- a/src/server/scripts/World/achievement_scripts.cpp
+++ b/src/server/scripts/World/achievement_scripts.cpp
@@ -16,12 +16,8 @@
*/
#include "ScriptMgr.h"
-
-#include "BattlegroundAB.h"
-#include "BattlegroundWS.h"
-#include "BattlegroundIC.h"
#include "BattlegroundSA.h"
-#include "BattlegroundAV.h"
+#include "BattlegroundIC.h"
#include "Vehicle.h"
#include "Player.h"
#include "Creature.h"
@@ -31,19 +27,12 @@ class achievement_resilient_victory : public AchievementCriteriaScript
public:
achievement_resilient_victory() : AchievementCriteriaScript("achievement_resilient_victory") { }
- bool OnCheck(Player* source, Unit* /*target*/)
+ bool OnCheck(Player* source, Unit* target) OVERRIDE
{
- Battleground* bg = source->GetBattleground();
- if (!bg)
- return false;
-
- if (bg->GetTypeID(true) != BATTLEGROUND_AB)
- return false;
+ if (Battleground* bg = source->GetBattleground())
+ return bg->CheckAchievementCriteriaMeet(BG_CRITERIA_CHECK_RESILIENT_VICTORY, source, target);
- if (!static_cast<BattlegroundAB*>(bg)->IsTeamScores500Disadvantage(source->GetTeam()))
- return false;
-
- return true;
+ return false;
}
};
@@ -52,16 +41,12 @@ class achievement_bg_control_all_nodes : public AchievementCriteriaScript
public:
achievement_bg_control_all_nodes() : AchievementCriteriaScript("achievement_bg_control_all_nodes") { }
- bool OnCheck(Player* source, Unit* /*target*/)
+ bool OnCheck(Player* source, Unit* /*target*/) OVERRIDE
{
- Battleground* bg = source->GetBattleground();
- if (!bg)
- return false;
-
- if (!bg->IsAllNodesConrolledByTeam(source->GetTeam()))
- return false;
+ if (Battleground* bg = source->GetBattleground())
+ return bg->IsAllNodesControlledByTeam(source->GetTeam());
- return true;
+ return false;
}
};
@@ -70,23 +55,11 @@ class achievement_save_the_day : public AchievementCriteriaScript
public:
achievement_save_the_day() : AchievementCriteriaScript("achievement_save_the_day") { }
- bool OnCheck(Player* source, Unit* target)
+ bool OnCheck(Player* source, Unit* target) OVERRIDE
{
- if (!target)
- return false;
-
- if (Player const* player = target->ToPlayer())
- {
- Battleground* bg = source->GetBattleground();
- if (!bg)
- return false;
-
- if (bg->GetTypeID(true) != BATTLEGROUND_WS)
- return false;
+ if (Battleground* bg = source->GetBattleground())
+ return bg->CheckAchievementCriteriaMeet(BG_CRITERIA_CHECK_SAVE_THE_DAY, source, target);
- if (static_cast<BattlegroundWS*>(bg)->GetFlagState(player->GetTeam()) == BG_WS_FLAG_STATE_ON_BASE)
- return true;
- }
return false;
}
};
@@ -96,7 +69,7 @@ class achievement_bg_ic_resource_glut : public AchievementCriteriaScript
public:
achievement_bg_ic_resource_glut() : AchievementCriteriaScript("achievement_bg_ic_resource_glut") { }
- bool OnCheck(Player* source, Unit* /*target*/)
+ bool OnCheck(Player* source, Unit* /*target*/) OVERRIDE
{
if (source->HasAura(SPELL_OIL_REFINERY) && source->HasAura(SPELL_QUARRY))
return true;
@@ -110,7 +83,7 @@ class achievement_bg_ic_glaive_grave : public AchievementCriteriaScript
public:
achievement_bg_ic_glaive_grave() : AchievementCriteriaScript("achievement_bg_ic_glaive_grave") { }
- bool OnCheck(Player* source, Unit* /*target*/)
+ bool OnCheck(Player* source, Unit* /*target*/) OVERRIDE
{
if (Creature* vehicle = source->GetVehicleCreatureBase())
{
@@ -127,7 +100,7 @@ class achievement_bg_ic_mowed_down : public AchievementCriteriaScript
public:
achievement_bg_ic_mowed_down() : AchievementCriteriaScript("achievement_bg_ic_mowed_down") { }
- bool OnCheck(Player* source, Unit* /*target*/)
+ bool OnCheck(Player* source, Unit* /*target*/) OVERRIDE
{
if (Creature* vehicle = source->GetVehicleCreatureBase())
{
@@ -144,7 +117,7 @@ class achievement_bg_sa_artillery : public AchievementCriteriaScript
public:
achievement_bg_sa_artillery() : AchievementCriteriaScript("achievement_bg_sa_artillery") { }
- bool OnCheck(Player* source, Unit* /*target*/)
+ bool OnCheck(Player* source, Unit* /*target*/) OVERRIDE
{
if (Creature* vehicle = source->GetVehicleCreatureBase())
{
@@ -164,7 +137,7 @@ class achievement_arena_kills : public AchievementCriteriaScript
{
}
- bool OnCheck(Player* source, Unit* /*target*/)
+ bool OnCheck(Player* source, Unit* /*target*/) OVERRIDE
{
// this checks GetBattleground() for NULL already
if (!source->InArena())
@@ -182,7 +155,7 @@ class achievement_sickly_gazelle : public AchievementCriteriaScript
public:
achievement_sickly_gazelle() : AchievementCriteriaScript("achievement_sickly_gazelle") { }
- bool OnCheck(Player* /*source*/, Unit* target)
+ bool OnCheck(Player* /*source*/, Unit* target) OVERRIDE
{
if (!target)
return false;
@@ -200,17 +173,10 @@ class achievement_everything_counts : public AchievementCriteriaScript
public:
achievement_everything_counts() : AchievementCriteriaScript("achievement_everything_counts") { }
- bool OnCheck(Player* source, Unit* /*target*/)
+ bool OnCheck(Player* source, Unit* target) OVERRIDE
{
- Battleground* bg = source->GetBattleground();
- if (!bg)
- return false;
-
- if (bg->GetTypeID(true) != BATTLEGROUND_AV)
- return false;
-
- if (static_cast<BattlegroundAV*>(bg)->IsBothMinesControlledByTeam(source->GetTeam()))
- return true;
+ if (Battleground* bg = source->GetBattleground())
+ return bg->CheckAchievementCriteriaMeet(BG_CRITERIA_CHECK_EVERYTHING_COUNTS, source, target);
return false;
}
@@ -221,17 +187,10 @@ class achievement_bg_av_perfection : public AchievementCriteriaScript
public:
achievement_bg_av_perfection() : AchievementCriteriaScript("achievement_bg_av_perfection") { }
- bool OnCheck(Player* source, Unit* /*target*/)
+ bool OnCheck(Player* source, Unit* target) OVERRIDE
{
- Battleground* bg = source->GetBattleground();
- if (!bg)
- return false;
-
- if (bg->GetTypeID(true) != BATTLEGROUND_AV)
- return false;
-
- if (static_cast<BattlegroundAV*>(bg)->IsAllTowersControlledAndCaptainAlive(source->GetTeam()))
- return true;
+ if (Battleground* bg = source->GetBattleground())
+ return bg->CheckAchievementCriteriaMeet(BG_CRITERIA_CHECK_AV_PERFECTION, source, target);
return false;
}
@@ -240,24 +199,12 @@ class achievement_bg_av_perfection : public AchievementCriteriaScript
class achievement_bg_sa_defense_of_ancients : public AchievementCriteriaScript
{
public:
- achievement_bg_sa_defense_of_ancients() : AchievementCriteriaScript("achievement_bg_sa_defense_of_ancients")
- {
- }
+ achievement_bg_sa_defense_of_ancients() : AchievementCriteriaScript("achievement_bg_sa_defense_of_ancients") { }
- bool OnCheck(Player* player, Unit* /*target*/)
+ bool OnCheck(Player* source, Unit* target) OVERRIDE
{
- if (!player)
- return false;
-
- Battleground* battleground = player->GetBattleground();
- if (!battleground)
- return false;
-
- if (player->GetTeamId() == static_cast<BattlegroundSA*>(battleground)->Attackers)
- return false;
-
- if (!static_cast<BattlegroundSA*>(battleground)->gateDestroyed)
- return true;
+ if (Battleground* bg = source->GetBattleground())
+ return bg->CheckAchievementCriteriaMeet(BG_CRITERIA_CHECK_DEFENSE_OF_THE_ANCIENTS, source, target);
return false;
}
@@ -278,7 +225,7 @@ class achievement_tilted : public AchievementCriteriaScript
public:
achievement_tilted() : AchievementCriteriaScript("achievement_tilted") {}
- bool OnCheck(Player* player, Unit* /*target*/)
+ bool OnCheck(Player* player, Unit* /*target*/) OVERRIDE
{
if (!player)
return false;
@@ -299,17 +246,10 @@ class achievement_not_even_a_scratch : public AchievementCriteriaScript
public:
achievement_not_even_a_scratch() : AchievementCriteriaScript("achievement_not_even_a_scratch") { }
- bool OnCheck(Player* source, Unit* /*target*/)
+ bool OnCheck(Player* source, Unit* target) OVERRIDE
{
- if (!source)
- return false;
-
- Battleground* battleground = source->GetBattleground();
- if (!battleground)
- return false;
-
- if (static_cast<BattlegroundSA*>(battleground)->notEvenAScratch(source->GetTeam()))
- return true;
+ if (Battleground* bg = source->GetBattleground())
+ return bg->CheckAchievementCriteriaMeet(BG_CRITERIA_CHECK_NOT_EVEN_A_SCRATCH, source, target);
return false;
}
@@ -327,7 +267,7 @@ class achievement_flirt_with_disaster_perf_check : public AchievementCriteriaScr
public:
achievement_flirt_with_disaster_perf_check() : AchievementCriteriaScript("achievement_flirt_with_disaster_perf_check") { }
- bool OnCheck(Player* player, Unit* /*target*/)
+ bool OnCheck(Player* player, Unit* /*target*/) OVERRIDE
{
if (!player)
return false;
diff --git a/src/server/scripts/World/areatrigger_scripts.cpp b/src/server/scripts/World/areatrigger_scripts.cpp
index c8436dfa1f0..1b43ee30cd1 100644
--- a/src/server/scripts/World/areatrigger_scripts.cpp
+++ b/src/server/scripts/World/areatrigger_scripts.cpp
@@ -43,7 +43,7 @@ EndContentData */
## at_coilfang_waterfall
######*/
-enum eCoilfangGOs
+enum CoilfangGOs
{
GO_COILFANG_WATERFALL = 184212
};
@@ -57,7 +57,7 @@ class AreaTrigger_at_coilfang_waterfall : public AreaTriggerScript
{
}
- bool OnTrigger(Player* player, AreaTriggerEntry const* /*trigger*/)
+ bool OnTrigger(Player* player, AreaTriggerEntry const* /*trigger*/) OVERRIDE
{
if (GameObject* go = GetClosestGameObjectWithEntry(player, GO_COILFANG_WATERFALL, 35.0f))
if (go->getLootState() == GO_READY)
@@ -71,7 +71,7 @@ class AreaTrigger_at_coilfang_waterfall : public AreaTriggerScript
## at_legion_teleporter
#####*/
-enum eLegionTeleporter
+enum LegionTeleporter
{
SPELL_TELE_A_TO = 37387,
QUEST_GAINING_ACCESS_A = 10589,
@@ -89,9 +89,9 @@ class AreaTrigger_at_legion_teleporter : public AreaTriggerScript
{
}
- bool OnTrigger(Player* player, AreaTriggerEntry const* /*trigger*/)
+ bool OnTrigger(Player* player, AreaTriggerEntry const* /*trigger*/) OVERRIDE
{
- if (player->isAlive() && !player->isInCombat())
+ if (player->IsAlive() && !player->IsInCombat())
{
if (player->GetTeam() == ALLIANCE && player->GetQuestRewardStatus(QUEST_GAINING_ACCESS_A))
{
@@ -115,7 +115,7 @@ class AreaTrigger_at_legion_teleporter : public AreaTriggerScript
## at_stormwright_shelf
######*/
-enum eStormwrightShelf
+enum StormwrightShelf
{
QUEST_STRENGTH_OF_THE_TEMPEST = 12741,
@@ -131,7 +131,7 @@ class AreaTrigger_at_stormwright_shelf : public AreaTriggerScript
{
}
- bool OnTrigger(Player* player, AreaTriggerEntry const* /*trigger*/)
+ bool OnTrigger(Player* player, AreaTriggerEntry const* /*trigger*/) OVERRIDE
{
if (!player->isDead() && player->GetQuestStatus(QUEST_STRENGTH_OF_THE_TEMPEST) == QUEST_STATUS_INCOMPLETE)
player->CastSpell(player, SPELL_CREATE_TRUE_POWER_OF_THE_TEMPEST, false);
@@ -144,7 +144,7 @@ class AreaTrigger_at_stormwright_shelf : public AreaTriggerScript
## at_scent_larkorwi
######*/
-enum eScentLarkorwi
+enum ScentLarkorwi
{
QUEST_SCENT_OF_LARKORWI = 4291,
NPC_LARKORWI_MATE = 9683
@@ -159,7 +159,7 @@ class AreaTrigger_at_scent_larkorwi : public AreaTriggerScript
{
}
- bool OnTrigger(Player* player, AreaTriggerEntry const* /*trigger*/)
+ bool OnTrigger(Player* player, AreaTriggerEntry const* /*trigger*/) OVERRIDE
{
if (!player->isDead() && player->GetQuestStatus(QUEST_SCENT_OF_LARKORWI) == QUEST_STATUS_INCOMPLETE)
{
@@ -175,7 +175,7 @@ class AreaTrigger_at_scent_larkorwi : public AreaTriggerScript
## at_last_rites
#####*/
-enum eAtLastRites
+enum AtLastRites
{
QUEST_LAST_RITES = 12019,
QUEST_BREAKING_THROUGH = 11898,
@@ -190,7 +190,7 @@ class AreaTrigger_at_last_rites : public AreaTriggerScript
{
}
- bool OnTrigger(Player* player, AreaTriggerEntry const* trigger)
+ bool OnTrigger(Player* player, AreaTriggerEntry const* trigger) OVERRIDE
{
if (!(player->GetQuestStatus(QUEST_LAST_RITES) == QUEST_STATUS_INCOMPLETE ||
player->GetQuestStatus(QUEST_LAST_RITES) == QUEST_STATUS_COMPLETE ||
@@ -226,7 +226,7 @@ class AreaTrigger_at_last_rites : public AreaTriggerScript
## at_sholazar_waygate
######*/
-enum eWaygate
+enum Waygate
{
SPELL_SHOLAZAR_TO_UNGORO_TELEPORT = 52056,
SPELL_UNGORO_TO_SHOLAZAR_TELEPORT = 52057,
@@ -245,7 +245,7 @@ class AreaTrigger_at_sholazar_waygate : public AreaTriggerScript
AreaTrigger_at_sholazar_waygate() : AreaTriggerScript("at_sholazar_waygate") {}
- bool OnTrigger(Player* player, AreaTriggerEntry const* trigger)
+ bool OnTrigger(Player* player, AreaTriggerEntry const* trigger) OVERRIDE
{
if (!player->isDead() && (player->GetQuestStatus(QUEST_MEETING_A_GREAT_ONE) != QUEST_STATUS_NONE ||
(player->GetQuestStatus(QUEST_THE_MAKERS_OVERLOOK) == QUEST_STATUS_REWARDED && player->GetQuestStatus(QUEST_THE_MAKERS_PERCH) == QUEST_STATUS_REWARDED)))
@@ -282,9 +282,9 @@ class AreaTrigger_at_nats_landing : public AreaTriggerScript
public:
AreaTrigger_at_nats_landing() : AreaTriggerScript("at_nats_landing") { }
- bool OnTrigger(Player* player, AreaTriggerEntry const* /*trigger*/)
+ bool OnTrigger(Player* player, AreaTriggerEntry const* /*trigger*/) OVERRIDE
{
- if (!player->isAlive() || !player->HasAura(SPELL_FISH_PASTE))
+ if (!player->IsAlive() || !player->HasAura(SPELL_FISH_PASTE))
return false;
if (player->GetQuestStatus(QUEST_NATS_BARGAIN) == QUEST_STATUS_INCOMPLETE)
@@ -327,7 +327,7 @@ class AreaTrigger_at_brewfest : public AreaTriggerScript
_triggerTimes[AT_BREWFEST_DUROTAR] = _triggerTimes[AT_BREWFEST_DUN_MOROGH] = 0;
}
- bool OnTrigger(Player* player, AreaTriggerEntry const* trigger)
+ bool OnTrigger(Player* player, AreaTriggerEntry const* trigger) OVERRIDE
{
uint32 triggerId = trigger->id;
// Second trigger happened too early after first, skip for now
@@ -380,11 +380,11 @@ class AreaTrigger_at_area_52_entrance : public AreaTriggerScript
_triggerTimes[AT_AREA_52_SOUTH] = _triggerTimes[AT_AREA_52_NORTH] = _triggerTimes[AT_AREA_52_WEST] = _triggerTimes[AT_AREA_52_EAST] = 0;
}
- bool OnTrigger(Player* player, AreaTriggerEntry const* trigger)
+ bool OnTrigger(Player* player, AreaTriggerEntry const* trigger) OVERRIDE
{
float x = 0.0f, y = 0.0f, z = 0.0f;
- if (!player->isAlive())
+ if (!player->IsAlive())
return false;
uint32 triggerId = trigger->id;
@@ -452,7 +452,7 @@ public:
stormforgedEradictorGUID = 0;
}
- bool OnTrigger(Player* player, AreaTriggerEntry const* /* trigger */)
+ bool OnTrigger(Player* player, AreaTriggerEntry const* /* trigger */) OVERRIDE
{
if (player->GetQuestStatus(QUEST_THE_LONESOME_WATCHER) != QUEST_STATUS_INCOMPLETE)
return false;
diff --git a/src/server/scripts/World/boss_emerald_dragons.cpp b/src/server/scripts/World/boss_emerald_dragons.cpp
index 4e95a6162d3..ca0083a1268 100644
--- a/src/server/scripts/World/boss_emerald_dragons.cpp
+++ b/src/server/scripts/World/boss_emerald_dragons.cpp
@@ -94,7 +94,7 @@ struct emerald_dragonAI : public WorldBossAI
{
}
- void Reset()
+ void Reset() OVERRIDE
{
WorldBossAI::Reset();
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE);
@@ -106,14 +106,14 @@ struct emerald_dragonAI : public WorldBossAI
}
// Target killed during encounter, mark them as suspectible for Aura Of Nature
- void KilledUnit(Unit* who)
+ void KilledUnit(Unit* who) OVERRIDE
{
if (who->GetTypeId() == TYPEID_PLAYER)
who->CastSpell(who, SPELL_MARK_OF_NATURE, true);
}
// Execute and reschedule base events shared between all Emerald Dragons
- void ExecuteEvent(uint32 eventId)
+ void ExecuteEvent(uint32 eventId) OVERRIDE
{
switch (eventId)
{
@@ -137,7 +137,7 @@ struct emerald_dragonAI : public WorldBossAI
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -172,12 +172,12 @@ class npc_dream_fog : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_roamTimer = 0;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -209,7 +209,7 @@ class npc_dream_fog : public CreatureScript
uint32 _roamTimer;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_dream_fogAI(creature);
}
@@ -249,21 +249,21 @@ class boss_ysondre : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_stage = 1;
emerald_dragonAI::Reset();
events.ScheduleEvent(EVENT_LIGHTNING_WAVE, 12000);
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
Talk(SAY_YSONDRE_AGGRO);
WorldBossAI::EnterCombat(who);
}
// Summon druid spirits on 75%, 50% and 25% health
- void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/)
+ void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/) OVERRIDE
{
if (!HealthAbovePct(100 - 25 * _stage))
{
@@ -275,7 +275,7 @@ class boss_ysondre : public CreatureScript
}
}
- void ExecuteEvent(uint32 eventId)
+ void ExecuteEvent(uint32 eventId) OVERRIDE
{
switch (eventId)
{
@@ -293,7 +293,7 @@ class boss_ysondre : public CreatureScript
uint8 _stage;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_ysondreAI(creature);
}
@@ -337,20 +337,20 @@ class boss_lethon : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_stage = 1;
emerald_dragonAI::Reset();
events.ScheduleEvent(EVENT_SHADOW_BOLT_WHIRL, 10000);
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
Talk(SAY_LETHON_AGGRO);
WorldBossAI::EnterCombat(who);
}
- void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/)
+ void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/) OVERRIDE
{
if (!HealthAbovePct(100 - 25 * _stage))
{
@@ -360,7 +360,7 @@ class boss_lethon : public CreatureScript
}
}
- void SpellHitTarget(Unit* target, SpellInfo const* spell)
+ void SpellHitTarget(Unit* target, SpellInfo const* spell) OVERRIDE
{
if (spell->Id == SPELL_DRAW_SPIRIT && target->GetTypeId() == TYPEID_PLAYER)
{
@@ -370,7 +370,7 @@ class boss_lethon : public CreatureScript
}
}
- void ExecuteEvent(uint32 eventId)
+ void ExecuteEvent(uint32 eventId) OVERRIDE
{
switch (eventId)
{
@@ -388,7 +388,7 @@ class boss_lethon : public CreatureScript
uint8 _stage;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_lethonAI(creature);
}
@@ -405,13 +405,13 @@ class npc_spirit_shade : public CreatureScript
{
}
- void IsSummonedBy(Unit* summoner)
+ void IsSummonedBy(Unit* summoner) OVERRIDE
{
_summonerGuid = summoner->GetGUID();
me->GetMotionMaster()->MoveFollow(summoner, 0.0f, 0.0f);
}
- void MovementInform(uint32 moveType, uint32 data)
+ void MovementInform(uint32 moveType, uint32 data) OVERRIDE
{
if (moveType == FOLLOW_MOTION_TYPE && data == _summonerGuid)
{
@@ -424,7 +424,7 @@ class npc_spirit_shade : public CreatureScript
uint64 _summonerGuid;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_spirit_shadeAI(creature);
}
@@ -460,27 +460,27 @@ class boss_emeriss : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
_stage = 1;
emerald_dragonAI::Reset();
events.ScheduleEvent(EVENT_VOLATILE_INFECTION, 12000);
}
- void KilledUnit(Unit* who)
+ void KilledUnit(Unit* who) OVERRIDE
{
if (who->GetTypeId() == TYPEID_PLAYER)
DoCast(who, SPELL_PUTRID_MUSHROOM, true);
emerald_dragonAI::KilledUnit(who);
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
Talk(SAY_EMERISS_AGGRO);
WorldBossAI::EnterCombat(who);
}
- void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/)
+ void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/) OVERRIDE
{
if (!HealthAbovePct(100 - 25 * _stage))
{
@@ -490,7 +490,7 @@ class boss_emeriss : public CreatureScript
}
}
- void ExecuteEvent(uint32 eventId)
+ void ExecuteEvent(uint32 eventId) OVERRIDE
{
switch (eventId)
{
@@ -508,7 +508,7 @@ class boss_emeriss : public CreatureScript
uint8 _stage;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_emerissAI(creature);
}
@@ -552,7 +552,7 @@ class boss_taerar : public CreatureScript
{
}
- void Reset()
+ void Reset() OVERRIDE
{
me->RemoveAurasDueToSpell(SPELL_SHADE);
_stage = 1;
@@ -566,18 +566,18 @@ class boss_taerar : public CreatureScript
events.ScheduleEvent(EVENT_BELLOWING_ROAR, 30000);
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
Talk(SAY_TAERAR_AGGRO);
emerald_dragonAI::EnterCombat(who);
}
- void SummonedCreatureDies(Creature* /*summon*/, Unit* /*killer*/)
+ void SummonedCreatureDies(Creature* /*summon*/, Unit* /*killer*/) OVERRIDE
{
--_shades;
}
- void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/)
+ void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/) OVERRIDE
{
// At 75, 50 or 25 percent health, we need to activate the shades and go "banished"
// Note: _stage holds the amount of times they have been summoned
@@ -593,7 +593,7 @@ class boss_taerar : public CreatureScript
uint32 count = sizeof(TaerarShadeSpells) / sizeof(uint32);
for (uint32 i = 0; i < count; ++i)
- DoCast(me->getVictim(), TaerarShadeSpells[i], true);
+ DoCastVictim(TaerarShadeSpells[i], true);
_shades += count;
DoCast(SPELL_SHADE);
@@ -604,7 +604,7 @@ class boss_taerar : public CreatureScript
}
}
- void ExecuteEvent(uint32 eventId)
+ void ExecuteEvent(uint32 eventId) OVERRIDE
{
switch (eventId)
{
@@ -622,9 +622,9 @@ class boss_taerar : public CreatureScript
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
- if (!me->isInCombat())
+ if (!me->IsInCombat())
return;
if (_banished)
@@ -658,7 +658,7 @@ class boss_taerar : public CreatureScript
uint8 _stage; // check which "shade phase" we're at (75-50-25 percentage counters)
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new boss_taerarAI(creature);
}
@@ -695,13 +695,13 @@ class spell_dream_fog_sleep : public SpellScriptLoader
targets.remove_if(DreamFogTargetSelector());
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_dream_fog_sleep_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_DEST_AREA_ENEMY);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_dream_fog_sleep_SpellScript();
}
@@ -734,7 +734,7 @@ class spell_mark_of_nature : public SpellScriptLoader
{
PrepareSpellScript(spell_mark_of_nature_SpellScript);
- bool Validate(SpellInfo const* /*spellInfo*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
if (!sSpellMgr->GetSpellInfo(SPELL_MARK_OF_NATURE))
return false;
@@ -754,14 +754,14 @@ class spell_mark_of_nature : public SpellScriptLoader
GetHitUnit()->CastSpell(GetHitUnit(), SPELL_AURA_OF_NATURE, true);
}
- void Register()
+ void Register() OVERRIDE
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_mark_of_nature_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnEffectHitTarget += SpellEffectFn(spell_mark_of_nature_SpellScript::HandleEffect, EFFECT_0, SPELL_EFFECT_APPLY_AURA);
}
};
- SpellScript* GetSpellScript() const
+ SpellScript* GetSpellScript() const OVERRIDE
{
return new spell_mark_of_nature_SpellScript();
}
diff --git a/src/server/scripts/World/go_scripts.cpp b/src/server/scripts/World/go_scripts.cpp
index 3634209cc8f..ce44cb57eef 100644
--- a/src/server/scripts/World/go_scripts.cpp
+++ b/src/server/scripts/World/go_scripts.cpp
@@ -18,9 +18,6 @@
/* ContentData
go_cat_figurine (the "trap" version of GO, two different exist)
-go_northern_crystal_pylon
-go_eastern_crystal_pylon
-go_western_crystal_pylon
go_barov_journal
go_ethereum_prison
go_ethereum_stasis
@@ -72,7 +69,7 @@ class go_cat_figurine : public GameObjectScript
public:
go_cat_figurine() : GameObjectScript("go_cat_figurine") { }
- bool OnGossipHello(Player* player, GameObject* /*go*/)
+ bool OnGossipHello(Player* player, GameObject* /*go*/) OVERRIDE
{
player->CastSpell(player, SPELL_SUMMON_GHOST_SABER, true);
return false;
@@ -80,69 +77,6 @@ public:
};
/*######
-## go_crystal_pylons (3x)
-######*/
-class go_northern_crystal_pylon : public GameObjectScript
-{
-public:
- go_northern_crystal_pylon() : GameObjectScript("go_northern_crystal_pylon") { }
-
- bool OnGossipHello(Player* player, GameObject* go)
- {
- if (go->GetGoType() == GAMEOBJECT_TYPE_QUESTGIVER)
- {
- player->PrepareQuestMenu(go->GetGUID());
- player->SendPreparedQuest(go->GetGUID());
- }
-
- if (player->GetQuestStatus(4285) == QUEST_STATUS_INCOMPLETE)
- player->AreaExploredOrEventHappens(4285);
-
- return true;
- }
-};
-
-class go_eastern_crystal_pylon : public GameObjectScript
-{
-public:
- go_eastern_crystal_pylon() : GameObjectScript("go_eastern_crystal_pylon") { }
-
- bool OnGossipHello(Player* player, GameObject* go)
- {
- if (go->GetGoType() == GAMEOBJECT_TYPE_QUESTGIVER)
- {
- player->PrepareQuestMenu(go->GetGUID());
- player->SendPreparedQuest(go->GetGUID());
- }
-
- if (player->GetQuestStatus(4287) == QUEST_STATUS_INCOMPLETE)
- player->AreaExploredOrEventHappens(4287);
-
- return true;
- }
-};
-
-class go_western_crystal_pylon : public GameObjectScript
-{
-public:
- go_western_crystal_pylon() : GameObjectScript("go_western_crystal_pylon") { }
-
- bool OnGossipHello(Player* player, GameObject* go)
- {
- if (go->GetGoType() == GAMEOBJECT_TYPE_QUESTGIVER)
- {
- player->PrepareQuestMenu(go->GetGUID());
- player->SendPreparedQuest(go->GetGUID());
- }
-
- if (player->GetQuestStatus(4288) == QUEST_STATUS_INCOMPLETE)
- player->AreaExploredOrEventHappens(4288);
-
- return true;
- }
-};
-
-/*######
## go_barov_journal
######*/
@@ -151,7 +85,7 @@ class go_barov_journal : public GameObjectScript
public:
go_barov_journal() : GameObjectScript("go_barov_journal") { }
- bool OnGossipHello(Player* player, GameObject* /*go*/)
+ bool OnGossipHello(Player* player, GameObject* /*go*/) OVERRIDE
{
if (player->HasSkill(SKILL_TAILORING) && player->GetBaseSkillValue(SKILL_TAILORING) >= 280 && !player->HasSpell(26086))
player->CastSpell(player, 26095, false);
@@ -169,7 +103,7 @@ class go_field_repair_bot_74A : public GameObjectScript
public:
go_field_repair_bot_74A() : GameObjectScript("go_field_repair_bot_74A") { }
- bool OnGossipHello(Player* player, GameObject* /*go*/)
+ bool OnGossipHello(Player* player, GameObject* /*go*/) OVERRIDE
{
if (player->HasSkill(SKILL_ENGINEERING) && player->GetBaseSkillValue(SKILL_ENGINEERING) >= 300 && !player->HasSpell(22704))
player->CastSpell(player, 22864, false);
@@ -192,7 +126,7 @@ class go_gilded_brazier : public GameObjectScript
public:
go_gilded_brazier() : GameObjectScript("go_gilded_brazier") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
if (go->GetGoType() == GAMEOBJECT_TYPE_GOOBER)
{
@@ -215,7 +149,7 @@ class go_orb_of_command : public GameObjectScript
public:
go_orb_of_command() : GameObjectScript("go_orb_of_command") { }
- bool OnGossipHello(Player* player, GameObject* /*go*/)
+ bool OnGossipHello(Player* player, GameObject* /*go*/) OVERRIDE
{
if (player->GetQuestRewardStatus(7761))
player->CastSpell(player, 23460, true);
@@ -233,7 +167,7 @@ class go_tablet_of_madness : public GameObjectScript
public:
go_tablet_of_madness() : GameObjectScript("go_tablet_of_madness") { }
- bool OnGossipHello(Player* player, GameObject* /*go*/)
+ bool OnGossipHello(Player* player, GameObject* /*go*/) OVERRIDE
{
if (player->HasSkill(SKILL_ALCHEMY) && player->GetSkillValue(SKILL_ALCHEMY) >= 300 && !player->HasSpell(24266))
player->CastSpell(player, 24267, false);
@@ -252,7 +186,7 @@ public:
go_tablet_of_the_seven() : GameObjectScript("go_tablet_of_the_seven") { }
/// @todo use gossip option ("Transcript the Tablet") instead, if Trinity adds support.
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
if (go->GetGoType() != GAMEOBJECT_TYPE_QUESTGIVER)
return true;
@@ -273,7 +207,7 @@ class go_jump_a_tron : public GameObjectScript
public:
go_jump_a_tron() : GameObjectScript("go_jump_a_tron") { }
- bool OnGossipHello(Player* player, GameObject* /*go*/)
+ bool OnGossipHello(Player* player, GameObject* /*go*/) OVERRIDE
{
if (player->GetQuestStatus(10111) == QUEST_STATUS_INCOMPLETE)
player->CastSpell(player, 33382, true);
@@ -307,7 +241,7 @@ class go_ethereum_prison : public GameObjectScript
public:
go_ethereum_prison() : GameObjectScript("go_ethereum_prison") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
go->UseDoorOrButton();
int Random = rand() % (sizeof(NpcPrisonEntry) / sizeof(uint32));
@@ -317,7 +251,7 @@ public:
{
if (!creature->IsHostileTo(player))
{
- if (FactionTemplateEntry const* pFaction = creature->getFactionTemplateEntry())
+ if (FactionTemplateEntry const* pFaction = creature->GetFactionTemplateEntry())
{
uint32 Spell = 0;
@@ -357,7 +291,7 @@ class go_ethereum_stasis : public GameObjectScript
public:
go_ethereum_stasis() : GameObjectScript("go_ethereum_stasis") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
go->UseDoorOrButton();
int Random = rand() % (sizeof(NpcStasisEntry) / sizeof(uint32));
@@ -383,7 +317,7 @@ class go_resonite_cask : public GameObjectScript
public:
go_resonite_cask() : GameObjectScript("go_resonite_cask") { }
- bool OnGossipHello(Player* /*player*/, GameObject* go)
+ bool OnGossipHello(Player* /*player*/, GameObject* go) OVERRIDE
{
if (go->GetGoType() == GAMEOBJECT_TYPE_GOOBER)
go->SummonCreature(NPC_GOGGEROC, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 300000);
@@ -396,14 +330,17 @@ public:
## go_sacred_fire_of_life
######*/
-#define NPC_ARIKARA 10882
+enum SacredFireOfLife
+{
+ NPC_ARIKARA = 10882
+};
class go_sacred_fire_of_life : public GameObjectScript
{
public:
go_sacred_fire_of_life() : GameObjectScript("go_sacred_fire_of_life") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
if (go->GetGoType() == GAMEOBJECT_TYPE_GOOBER)
player->SummonCreature(NPC_ARIKARA, -5008.338f, -2118.894f, 83.657f, 0.874f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
@@ -431,7 +368,7 @@ class go_shrine_of_the_birds : public GameObjectScript
public:
go_shrine_of_the_birds() : GameObjectScript("go_shrine_of_the_birds") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
uint32 BirdEntry = 0;
@@ -474,7 +411,7 @@ class go_southfury_moonstone : public GameObjectScript
public:
go_southfury_moonstone() : GameObjectScript("go_southfury_moonstone") { }
- bool OnGossipHello(Player* player, GameObject* /*go*/)
+ bool OnGossipHello(Player* player, GameObject* /*go*/) OVERRIDE
{
//implicitTarget=48 not implemented as of writing this code, and manual summon may be just ok for our purpose
//player->CastSpell(player, SPELL_SUMMON_RIZZLE, false);
@@ -503,7 +440,7 @@ class go_tele_to_dalaran_crystal : public GameObjectScript
public:
go_tele_to_dalaran_crystal() : GameObjectScript("go_tele_to_dalaran_crystal") { }
- bool OnGossipHello(Player* player, GameObject* /*go*/)
+ bool OnGossipHello(Player* player, GameObject* /*go*/) OVERRIDE
{
if (player->GetQuestRewardStatus(QUEST_TELE_CRYSTAL_FLAG))
return false;
@@ -523,7 +460,7 @@ class go_tele_to_violet_stand : public GameObjectScript
public:
go_tele_to_violet_stand() : GameObjectScript("go_tele_to_violet_stand") { }
- bool OnGossipHello(Player* player, GameObject* /*go*/)
+ bool OnGossipHello(Player* player, GameObject* /*go*/) OVERRIDE
{
if (player->GetQuestRewardStatus(QUEST_LEARN_LEAVE_RETURN) || player->GetQuestStatus(QUEST_LEARN_LEAVE_RETURN) == QUEST_STATUS_INCOMPLETE)
return false;
@@ -553,7 +490,7 @@ class go_fel_crystalforge : public GameObjectScript
public:
go_fel_crystalforge() : GameObjectScript("go_fel_crystalforge") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
if (go->GetGoType() == GAMEOBJECT_TYPE_QUESTGIVER) /* != GAMEOBJECT_TYPE_QUESTGIVER) */
player->PrepareQuestMenu(go->GetGUID()); /* return true*/
@@ -566,7 +503,7 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, GameObject* go, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, GameObject* go, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -612,7 +549,7 @@ class go_bashir_crystalforge : public GameObjectScript
public:
go_bashir_crystalforge() : GameObjectScript("go_bashir_crystalforge") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
if (go->GetGoType() == GAMEOBJECT_TYPE_QUESTGIVER) /* != GAMEOBJECT_TYPE_QUESTGIVER) */
player->PrepareQuestMenu(go->GetGUID()); /* return true*/
@@ -625,7 +562,7 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, GameObject* go, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, GameObject* go, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -676,7 +613,7 @@ class go_matrix_punchograph : public GameObjectScript
public:
go_matrix_punchograph() : GameObjectScript("go_matrix_punchograph") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
switch (go->GetEntry())
{
@@ -729,7 +666,7 @@ class go_scourge_cage : public GameObjectScript
public:
go_scourge_cage() : GameObjectScript("go_scourge_cage") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
go->UseDoorOrButton();
if (Creature* pNearestPrisoner = go->FindNearestCreature(NPC_SCOURGE_PRISONER, 5.0f, true))
@@ -757,7 +694,7 @@ class go_arcane_prison : public GameObjectScript
public:
go_arcane_prison() : GameObjectScript("go_arcane_prison") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
if (player->GetQuestStatus(QUEST_PRISON_BREAK) == QUEST_STATUS_INCOMPLETE)
{
@@ -773,14 +710,18 @@ public:
## go_blood_filled_orb
######*/
-#define NPC_ZELEMAR 17830
+enum BloodFilledOrb
+{
+ NPC_ZELEMAR = 17830
+
+};
class go_blood_filled_orb : public GameObjectScript
{
public:
go_blood_filled_orb() : GameObjectScript("go_blood_filled_orb") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
if (go->GetGoType() == GAMEOBJECT_TYPE_GOOBER)
player->SummonCreature(NPC_ZELEMAR, -369.746f, 166.759f, -21.50f, 5.235f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
@@ -811,7 +752,7 @@ class go_jotunheim_cage : public GameObjectScript
public:
go_jotunheim_cage() : GameObjectScript("go_jotunheim_cage") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
go->UseDoorOrButton();
Creature* pPrisoner = go->FindNearestCreature(NPC_EBON_BLADE_PRISONER_HUMAN, 5.0f, true);
@@ -825,7 +766,7 @@ public:
pPrisoner = go->FindNearestCreature(NPC_EBON_BLADE_PRISONER_NE, 5.0f, true);
}
}
- if (!pPrisoner || !pPrisoner->isAlive())
+ if (!pPrisoner || !pPrisoner->IsAlive())
return false;
pPrisoner->DisappearAndDie();
@@ -861,7 +802,7 @@ class go_table_theka : public GameObjectScript
public:
go_table_theka() : GameObjectScript("go_table_theka") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
if (player->GetQuestStatus(QUEST_SPIDER_GOLD) == QUEST_STATUS_INCOMPLETE)
player->AreaExploredOrEventHappens(QUEST_SPIDER_GOLD);
@@ -887,7 +828,7 @@ class go_inconspicuous_landmark : public GameObjectScript
public:
go_inconspicuous_landmark() : GameObjectScript("go_inconspicuous_landmark") { }
- bool OnGossipHello(Player* player, GameObject* /*go*/)
+ bool OnGossipHello(Player* player, GameObject* /*go*/) OVERRIDE
{
if (player->HasItemCount(ITEM_CUERGOS_KEY))
return false;
@@ -913,7 +854,7 @@ class go_ethereal_teleport_pad : public GameObjectScript
public:
go_ethereal_teleport_pad() : GameObjectScript("go_ethereal_teleport_pad") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
if (!player->HasItemCount(ITEM_TELEPORTER_POWER_PACK))
return false;
@@ -993,7 +934,7 @@ class go_soulwell : public GameObjectScript
/// _and_ CMSG_GAMEOBJECT_REPORT_USE, this GossipHello hook is called
/// twice. The script's handling is fine as it won't remove two charges
/// on the well. We have to find how to segregate REPORT_USE and USE.
- bool GossipHello(Player* player)
+ bool GossipHello(Player* player) OVERRIDE
{
Unit* owner = go->GetOwner();
if (_stoneSpell == 0 || _stoneId == 0)
@@ -1023,7 +964,7 @@ class go_soulwell : public GameObjectScript
uint32 _stoneId;
};
- GameObjectAI* GetAI(GameObject* go) const
+ GameObjectAI* GetAI(GameObject* go) const OVERRIDE
{
return new go_soulwellAI(go);
}
@@ -1048,7 +989,7 @@ class go_dragonflayer_cage : public GameObjectScript
public:
go_dragonflayer_cage() : GameObjectScript("go_dragonflayer_cage") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
go->UseDoorOrButton();
if (player->GetQuestStatus(QUEST_PRISONERS_OF_WYRMSKULL) != QUEST_STATUS_INCOMPLETE)
@@ -1066,7 +1007,7 @@ public:
}
}
- if (!pPrisoner || !pPrisoner->isAlive())
+ if (!pPrisoner || !pPrisoner->IsAlive())
return true;
Quest const* qInfo = sObjectMgr->GetQuestTemplate(QUEST_PRISONERS_OF_WYRMSKULL);
@@ -1096,7 +1037,7 @@ class go_tadpole_cage : public GameObjectScript
public:
go_tadpole_cage() : GameObjectScript("go_tadpole_cage") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
go->UseDoorOrButton();
if (player->GetQuestStatus(QUEST_OH_NOES_THE_TADPOLES) == QUEST_STATUS_INCOMPLETE)
@@ -1137,21 +1078,21 @@ class go_amberpine_outhouse : public GameObjectScript
public:
go_amberpine_outhouse() : GameObjectScript("go_amberpine_outhouse") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
QuestStatus status = player->GetQuestStatus(QUEST_DOING_YOUR_DUTY);
if (status == QUEST_STATUS_INCOMPLETE || status == QUEST_STATUS_COMPLETE || status == QUEST_STATUS_REWARDED)
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_USE_OUTHOUSE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
player->SEND_GOSSIP_MENU(GOSSIP_OUTHOUSE_VACANT, go->GetGUID());
- return true;
}
else
player->SEND_GOSSIP_MENU(GOSSIP_OUTHOUSE_INUSE, go->GetGUID());
- return true;
+
+ return true;
}
- bool OnGossipSelect(Player* player, GameObject* go, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, GameObject* go, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF +1)
@@ -1193,7 +1134,7 @@ class go_hive_pod : public GameObjectScript
public:
go_hive_pod() : GameObjectScript("go_hive_pod") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
player->SendLoot(go->GetGUID(), LOOT_CORPSE);
go->SummonCreature(NPC_HIVE_AMBUSHER, go->GetPositionX()+1, go->GetPositionY(), go->GetPositionZ(), go->GetAngle(player), TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 60000);
@@ -1207,7 +1148,7 @@ class go_massive_seaforium_charge : public GameObjectScript
public:
go_massive_seaforium_charge() : GameObjectScript("go_massive_seaforium_charge") { }
- bool OnGossipHello(Player* /*player*/, GameObject* go)
+ bool OnGossipHello(Player* /*player*/, GameObject* go) OVERRIDE
{
go->SetLootState(GO_JUST_DEACTIVATED);
return true;
@@ -1231,7 +1172,7 @@ class go_gjalerbron_cage : public GameObjectScript
public:
go_gjalerbron_cage() : GameObjectScript("go_gjalerbron_cage") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
go->UseDoorOrButton();
if ((player->GetTeamId() == TEAM_ALLIANCE && player->GetQuestStatus(QUEST_ALLIANCE_OF_KEYS_AND_CAGES) == QUEST_STATUS_INCOMPLETE) ||
@@ -1239,8 +1180,7 @@ class go_gjalerbron_cage : public GameObjectScript
{
if (Creature* prisoner = go->FindNearestCreature(NPC_GJALERBRON_PRISONER, 5.0f))
{
- if (player)
- player->KilledMonsterCredit(NPC_GJALERBRON_PRISONER, 0);
+ player->KilledMonsterCredit(NPC_GJALERBRON_PRISONER, 0);
prisoner->AI()->Talk(SAY_FREE);
prisoner->DespawnOrUnsummon(6000);
@@ -1259,7 +1199,7 @@ class go_large_gjalerbron_cage : public GameObjectScript
public:
go_large_gjalerbron_cage() : GameObjectScript("go_large_gjalerbron_cage") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
go->UseDoorOrButton();
if ((player->GetTeamId() == TEAM_ALLIANCE && player->GetQuestStatus(QUEST_ALLIANCE_OF_KEYS_AND_CAGES) == QUEST_STATUS_INCOMPLETE) ||
@@ -1294,7 +1234,7 @@ class go_veil_skith_cage : public GameObjectScript
public:
go_veil_skith_cage() : GameObjectScript("go_veil_skith_cage") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
go->UseDoorOrButton();
if (player->GetQuestStatus(QUEST_MISSING_FRIENDS) == QUEST_STATUS_INCOMPLETE)
@@ -1331,7 +1271,7 @@ class go_frostblade_shrine : public GameObjectScript
public:
go_frostblade_shrine() : GameObjectScript("go_frostblade_shrine") { }
- bool OnGossipHello(Player* player, GameObject* go)
+ bool OnGossipHello(Player* player, GameObject* go) OVERRIDE
{
go->UseDoorOrButton(10);
if (!player->HasAura(SPELL_RECENT_MEDITATION))
@@ -1358,7 +1298,7 @@ class go_midsummer_bonfire : public GameObjectScript
public:
go_midsummer_bonfire() : GameObjectScript("go_midsummer_bonfire") { }
- bool OnGossipSelect(Player* player, GameObject* /*go*/, uint32 /*sender*/, uint32 /*action*/)
+ bool OnGossipSelect(Player* player, GameObject* /*go*/, uint32 /*sender*/, uint32 /*action*/) OVERRIDE
{
player->CastSpell(player, STAMP_OUT_BONFIRE_QUEST_COMPLETE, true);
player->CLOSE_GOSSIP_MENU();
@@ -1368,44 +1308,41 @@ public:
void AddSC_go_scripts()
{
- new go_cat_figurine;
- new go_northern_crystal_pylon;
- new go_eastern_crystal_pylon;
- new go_western_crystal_pylon;
- new go_barov_journal;
- new go_field_repair_bot_74A;
- new go_gilded_brazier;
- new go_orb_of_command;
- new go_shrine_of_the_birds;
- new go_southfury_moonstone;
- new go_tablet_of_madness;
- new go_tablet_of_the_seven;
- new go_jump_a_tron;
- new go_ethereum_prison;
- new go_ethereum_stasis;
- new go_resonite_cask;
- new go_sacred_fire_of_life;
- new go_tele_to_dalaran_crystal;
- new go_tele_to_violet_stand;
- new go_fel_crystalforge;
- new go_bashir_crystalforge;
- new go_matrix_punchograph;
- new go_scourge_cage;
- new go_arcane_prison;
- new go_blood_filled_orb;
- new go_jotunheim_cage;
- new go_table_theka;
- new go_inconspicuous_landmark;
- new go_ethereal_teleport_pad;
- new go_soulwell;
- new go_tadpole_cage;
- new go_dragonflayer_cage;
- new go_amberpine_outhouse;
- new go_hive_pod;
- new go_massive_seaforium_charge;
- new go_gjalerbron_cage;
- new go_large_gjalerbron_cage;
- new go_veil_skith_cage;
- new go_frostblade_shrine;
- new go_midsummer_bonfire;
+ new go_cat_figurine();
+ new go_barov_journal();
+ new go_field_repair_bot_74A();
+ new go_gilded_brazier();
+ new go_orb_of_command();
+ new go_shrine_of_the_birds();
+ new go_southfury_moonstone();
+ new go_tablet_of_madness();
+ new go_tablet_of_the_seven();
+ new go_jump_a_tron();
+ new go_ethereum_prison();
+ new go_ethereum_stasis();
+ new go_resonite_cask();
+ new go_sacred_fire_of_life();
+ new go_tele_to_dalaran_crystal();
+ new go_tele_to_violet_stand();
+ new go_fel_crystalforge();
+ new go_bashir_crystalforge();
+ new go_matrix_punchograph();
+ new go_scourge_cage();
+ new go_arcane_prison();
+ new go_blood_filled_orb();
+ new go_jotunheim_cage();
+ new go_table_theka();
+ new go_inconspicuous_landmark();
+ new go_ethereal_teleport_pad();
+ new go_soulwell();
+ new go_tadpole_cage();
+ new go_dragonflayer_cage();
+ new go_amberpine_outhouse();
+ new go_hive_pod();
+ new go_massive_seaforium_charge();
+ new go_gjalerbron_cage();
+ new go_large_gjalerbron_cage();
+ new go_veil_skith_cage();
+ new go_frostblade_shrine();
+ new go_midsummer_bonfire();
}
diff --git a/src/server/scripts/World/guards.cpp b/src/server/scripts/World/guards.cpp
index bff30f6cca5..f83d35b4039 100644
--- a/src/server/scripts/World/guards.cpp
+++ b/src/server/scripts/World/guards.cpp
@@ -56,13 +56,13 @@ public:
{
guard_genericAI(Creature* creature) : GuardAI(creature) {}
- void Reset()
+ void Reset() OVERRIDE
{
globalCooldown = 0;
buffTimer = 0;
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (me->GetEntry() == NPC_CENARION_HOLD_INFANTRY)
Talk(SAY_GUARD_SIL_AGGRO, who->GetGUID());
@@ -70,7 +70,7 @@ public:
DoCast(who, spell->Id);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Always decrease our global cooldown first
if (globalCooldown > diff)
@@ -79,7 +79,7 @@ public:
globalCooldown = 0;
//Buff timer (only buff when we are alive and not in combat
- if (me->isAlive() && !me->isInCombat())
+ if (me->IsAlive() && !me->IsInCombat())
{
if (buffTimer <= diff)
{
@@ -109,7 +109,7 @@ public:
if (me->isAttackReady() && !me->IsNonMeleeSpellCasted(false))
{
//If we are within range melee the target
- if (me->IsWithinMeleeRange(me->getVictim()))
+ if (me->IsWithinMeleeRange(me->GetVictim()))
{
bool healing = false;
SpellInfo const* info = NULL;
@@ -122,7 +122,7 @@ public:
if (info)
healing = true;
else
- info = SelectSpell(me->getVictim(), 0, 0, SELECT_TARGET_ANY_ENEMY, 0, 0, 0, 0, SELECT_EFFECT_DONTCARE);
+ info = SelectSpell(me->GetVictim(), 0, 0, SELECT_TARGET_ANY_ENEMY, 0, 0, 0, 0, SELECT_EFFECT_DONTCARE);
//20% chance to replace our white hit with a spell
if (info && urand(0, 99) < 20 && !globalCooldown)
@@ -131,13 +131,13 @@ public:
if (healing)
DoCast(me, info->Id);
else
- DoCast(me->getVictim(), info->Id);
+ DoCastVictim(info->Id);
//Set our global cooldown
globalCooldown = GENERIC_CREATURE_COOLDOWN;
}
else
- me->AttackerStateUpdate(me->getVictim());
+ me->AttackerStateUpdate(me->GetVictim());
me->resetAttackTimer();
}
@@ -158,7 +158,7 @@ public:
if (info)
healing = true;
else
- info = SelectSpell(me->getVictim(), 0, 0, SELECT_TARGET_ANY_ENEMY, 0, 0, NOMINAL_MELEE_RANGE, 0, SELECT_EFFECT_DONTCARE);
+ info = SelectSpell(me->GetVictim(), 0, 0, SELECT_TARGET_ANY_ENEMY, 0, 0, NOMINAL_MELEE_RANGE, 0, SELECT_EFFECT_DONTCARE);
//Found a spell, check if we arn't on cooldown
if (info && !globalCooldown)
@@ -174,7 +174,7 @@ public:
if (healing)
DoCast(me, info->Id);
else
- DoCast(me->getVictim(), info->Id);
+ DoCastVictim(info->Id);
//Set our global cooldown
globalCooldown = GENERIC_CREATURE_COOLDOWN;
@@ -184,7 +184,7 @@ public:
//Cancel our current spell and then mutate new movement generator
me->InterruptNonMeleeSpells(false);
me->GetMotionMaster()->Clear(false);
- me->GetMotionMaster()->MoveChase(me->getVictim());
+ me->GetMotionMaster()->MoveChase(me->GetVictim());
}
}
}
@@ -219,7 +219,7 @@ public:
}
}
- void ReceiveEmote(Player* player, uint32 textEmote)
+ void ReceiveEmote(Player* player, uint32 textEmote) OVERRIDE
{
switch (me->GetEntry())
{
@@ -242,7 +242,7 @@ public:
uint32 buffTimer;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new guard_genericAI(creature);
}
@@ -265,7 +265,7 @@ public:
{
guard_shattrath_scryerAI(Creature* creature) : GuardAI(creature) {}
- void Reset()
+ void Reset() OVERRIDE
{
banishTimer = 5000;
exileTimer = 8500;
@@ -273,7 +273,7 @@ public:
canTeleport = false;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -294,7 +294,7 @@ public:
}
else if (banishTimer <= diff)
{
- Unit* temp = me->getVictim();
+ Unit* temp = me->GetVictim();
if (temp && temp->GetTypeId() == TYPEID_PLAYER)
{
DoCast(temp, SPELL_BANISHED_SHATTRATH_A);
@@ -315,7 +315,7 @@ public:
bool canTeleport;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new guard_shattrath_scryerAI(creature);
}
@@ -330,7 +330,7 @@ public:
{
guard_shattrath_aldorAI(Creature* creature) : GuardAI(creature) {}
- void Reset()
+ void Reset() OVERRIDE
{
banishTimer = 5000;
exileTimer = 8500;
@@ -338,7 +338,7 @@ public:
canTeleport = false;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -359,7 +359,7 @@ public:
}
else if (banishTimer <= diff)
{
- Unit* temp = me->getVictim();
+ Unit* temp = me->GetVictim();
if (temp && temp->GetTypeId() == TYPEID_PLAYER)
{
DoCast(temp, SPELL_BANISHED_SHATTRATH_S);
@@ -379,7 +379,7 @@ public:
bool canTeleport;
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new guard_shattrath_aldorAI(creature);
}
diff --git a/src/server/scripts/World/item_scripts.cpp b/src/server/scripts/World/item_scripts.cpp
index a6e82f31914..7b6cb90f6c9 100644
--- a/src/server/scripts/World/item_scripts.cpp
+++ b/src/server/scripts/World/item_scripts.cpp
@@ -39,7 +39,7 @@ EndContentData */
# item_only_for_flight
#####*/
-enum eOnlyForFlight
+enum OnlyForFlight
{
SPELL_ARCANE_CHARGES = 45072
};
@@ -49,7 +49,7 @@ class item_only_for_flight : public ItemScript
public:
item_only_for_flight() : ItemScript("item_only_for_flight") { }
- bool OnUse(Player* player, Item* item, SpellCastTargets const& /*targets*/)
+ bool OnUse(Player* player, Item* item, SpellCastTargets const& /*targets*/) OVERRIDE
{
uint32 itemId = item->GetEntry();
bool disabled = false;
@@ -72,7 +72,7 @@ public:
}
// allow use in flight only
- if (player->isInFlight() && !disabled)
+ if (player->IsInFlight() && !disabled)
return false;
// error
@@ -90,7 +90,7 @@ class item_nether_wraith_beacon : public ItemScript
public:
item_nether_wraith_beacon() : ItemScript("item_nether_wraith_beacon") { }
- bool OnUse(Player* player, Item* /*item*/, SpellCastTargets const& /*targets*/)
+ bool OnUse(Player* player, Item* /*item*/, SpellCastTargets const& /*targets*/) OVERRIDE
{
if (player->GetQuestStatus(10832) == QUEST_STATUS_INCOMPLETE)
{
@@ -113,7 +113,7 @@ class item_gor_dreks_ointment : public ItemScript
public:
item_gor_dreks_ointment() : ItemScript("item_gor_dreks_ointment") { }
- bool OnUse(Player* player, Item* item, SpellCastTargets const& targets)
+ bool OnUse(Player* player, Item* item, SpellCastTargets const& targets) OVERRIDE
{
if (targets.GetUnitTarget() && targets.GetUnitTarget()->GetTypeId() == TYPEID_UNIT &&
targets.GetUnitTarget()->GetEntry() == 20748 && !targets.GetUnitTarget()->HasAura(32578))
@@ -133,7 +133,7 @@ class item_incendiary_explosives : public ItemScript
public:
item_incendiary_explosives() : ItemScript("item_incendiary_explosives") { }
- bool OnUse(Player* player, Item* item, SpellCastTargets const & /*targets*/)
+ bool OnUse(Player* player, Item* item, SpellCastTargets const & /*targets*/) OVERRIDE
{
if (player->FindNearestCreature(26248, 15) || player->FindNearestCreature(26249, 15))
return false;
@@ -154,7 +154,7 @@ class item_mysterious_egg : public ItemScript
public:
item_mysterious_egg() : ItemScript("item_mysterious_egg") { }
- bool OnExpire(Player* player, ItemTemplate const* /*pItemProto*/)
+ bool OnExpire(Player* player, ItemTemplate const* /*pItemProto*/) OVERRIDE
{
ItemPosCountVec dest;
uint8 msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, 39883, 1); // Cracked Egg
@@ -174,7 +174,7 @@ class item_disgusting_jar : public ItemScript
public:
item_disgusting_jar() : ItemScript("item_disgusting_jar") {}
- bool OnExpire(Player* player, ItemTemplate const* /*pItemProto*/)
+ bool OnExpire(Player* player, ItemTemplate const* /*pItemProto*/) OVERRIDE
{
ItemPosCountVec dest;
uint8 msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, 44718, 1); // Ripe Disgusting Jar
@@ -189,7 +189,7 @@ public:
# item_pile_fake_furs
#####*/
-enum ePileFakeFur
+enum PileFakeFur
{
GO_CARIBOU_TRAP_1 = 187982,
GO_CARIBOU_TRAP_2 = 187995,
@@ -223,7 +223,7 @@ class item_pile_fake_furs : public ItemScript
public:
item_pile_fake_furs() : ItemScript("item_pile_fake_furs") { }
- bool OnUse(Player* player, Item* /*item*/, SpellCastTargets const & /*targets*/)
+ bool OnUse(Player* player, Item* /*item*/, SpellCastTargets const & /*targets*/) OVERRIDE
{
GameObject* go = NULL;
for (uint8 i = 0; i < CaribouTrapsNum; ++i)
@@ -256,7 +256,7 @@ public:
# item_petrov_cluster_bombs
#####*/
-enum ePetrovClusterBombs
+enum PetrovClusterBombs
{
SPELL_PETROV_BOMB = 42406,
AREA_ID_SHATTERED_STRAITS = 4064,
@@ -268,7 +268,7 @@ class item_petrov_cluster_bombs : public ItemScript
public:
item_petrov_cluster_bombs() : ItemScript("item_petrov_cluster_bombs") { }
- bool OnUse(Player* player, Item* item, const SpellCastTargets & /*targets*/)
+ bool OnUse(Player* player, Item* item, const SpellCastTargets & /*targets*/) OVERRIDE
{
if (player->GetZoneId() != ZONE_ID_HOWLING)
return false;
@@ -291,7 +291,7 @@ public:
# item_dehta_trap_smasher
# For quest 11876, Help Those That Cannot Help Themselves
######*/
-enum eHelpThemselves
+enum HelpThemselves
{
QUEST_CANNOT_HELP_THEMSELVES = 11876,
NPC_TRAPPED_MAMMOTH_CALF = 25850,
@@ -334,7 +334,7 @@ class item_dehta_trap_smasher : public ItemScript
public:
item_dehta_trap_smasher() : ItemScript("item_dehta_trap_smasher") { }
- bool OnUse(Player* player, Item* /*item*/, const SpellCastTargets & /*targets*/)
+ bool OnUse(Player* player, Item* /*item*/, const SpellCastTargets & /*targets*/) OVERRIDE
{
if (player->GetQuestStatus(QUEST_CANNOT_HELP_THEMSELVES) != QUEST_STATUS_INCOMPLETE)
return false;
@@ -370,7 +370,7 @@ class item_trident_of_nazjan : public ItemScript
public:
item_trident_of_nazjan() : ItemScript("item_Trident_of_Nazjan") { }
- bool OnUse(Player* player, Item* item, const SpellCastTargets & /*targets*/)
+ bool OnUse(Player* player, Item* item, const SpellCastTargets & /*targets*/) OVERRIDE
{
if (player->GetQuestStatus(QUEST_THE_EMISSARY) == QUEST_STATUS_INCOMPLETE)
{
@@ -386,7 +386,7 @@ public:
}
};
-enum eCapturedFrog
+enum CapturedFrog
{
QUEST_THE_PERFECT_SPIES = 25444,
NPC_VANIRAS_SENTRY_TOTEM = 40187
@@ -397,7 +397,7 @@ class item_captured_frog : public ItemScript
public:
item_captured_frog() : ItemScript("item_captured_frog") { }
- bool OnUse(Player* player, Item* item, SpellCastTargets const& /*targets*/)
+ bool OnUse(Player* player, Item* item, SpellCastTargets const& /*targets*/) OVERRIDE
{
if (player->GetQuestStatus(QUEST_THE_PERFECT_SPIES) == QUEST_STATUS_INCOMPLETE)
{
diff --git a/src/server/scripts/World/mob_generic_creature.cpp b/src/server/scripts/World/mob_generic_creature.cpp
index d0ac142e050..3891de93261 100644
--- a/src/server/scripts/World/mob_generic_creature.cpp
+++ b/src/server/scripts/World/mob_generic_creature.cpp
@@ -42,20 +42,20 @@ public:
uint32 BuffTimer; //This variable keeps track of buffs
bool IsSelfRooted;
- void Reset()
+ void Reset() OVERRIDE
{
GlobalCooldown = 0;
BuffTimer = 0; //Rebuff as soon as we can
IsSelfRooted = false;
}
- void EnterCombat(Unit* who)
+ void EnterCombat(Unit* who) OVERRIDE
{
if (!me->IsWithinMeleeRange(who))
IsSelfRooted = true;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
//Always decrease our global cooldown first
if (GlobalCooldown > diff)
@@ -63,7 +63,7 @@ public:
else GlobalCooldown = 0;
//Buff timer (only buff when we are alive and not in combat
- if (!me->isInCombat() && me->isAlive())
+ if (!me->IsInCombat() && me->IsAlive())
{
if (BuffTimer <= diff)
{
@@ -90,7 +90,7 @@ public:
return;
//If we are within range melee the target
- if (me->IsWithinMeleeRange(me->getVictim()))
+ if (me->IsWithinMeleeRange(me->GetVictim()))
{
//Make sure our attack is ready and we arn't currently casting
if (me->isAttackReady() && !me->IsNonMeleeSpellCasted(false))
@@ -104,19 +104,19 @@ public:
//No healing spell available, select a hostile spell
if (info) Healing = true;
- else info = SelectSpell(me->getVictim(), 0, 0, SELECT_TARGET_ANY_ENEMY, 0, 0, 0, 0, SELECT_EFFECT_DONTCARE);
+ else info = SelectSpell(me->GetVictim(), 0, 0, SELECT_TARGET_ANY_ENEMY, 0, 0, 0, 0, SELECT_EFFECT_DONTCARE);
//50% chance if elite or higher, 20% chance if not, to replace our white hit with a spell
if (info && (rand() % (me->GetCreatureTemplate()->rank > 1 ? 2 : 5) == 0) && !GlobalCooldown)
{
//Cast the spell
if (Healing)DoCastSpell(me, info);
- else DoCastSpell(me->getVictim(), info);
+ else DoCastSpell(me->GetVictim(), info);
//Set our global cooldown
GlobalCooldown = GENERIC_CREATURE_COOLDOWN;
}
- else me->AttackerStateUpdate(me->getVictim());
+ else me->AttackerStateUpdate(me->GetVictim());
me->resetAttackTimer();
}
@@ -135,7 +135,7 @@ public:
//No healing spell available, See if we can cast a ranged spell (Range must be greater than ATTACK_DISTANCE)
if (info) Healing = true;
- else info = SelectSpell(me->getVictim(), 0, 0, SELECT_TARGET_ANY_ENEMY, 0, 0, NOMINAL_MELEE_RANGE, 0, SELECT_EFFECT_DONTCARE);
+ else info = SelectSpell(me->GetVictim(), 0, 0, SELECT_TARGET_ANY_ENEMY, 0, 0, NOMINAL_MELEE_RANGE, 0, SELECT_EFFECT_DONTCARE);
//Found a spell, check if we arn't on cooldown
if (info && !GlobalCooldown)
@@ -146,7 +146,7 @@ public:
//Cast spell
if (Healing) DoCastSpell(me, info);
- else DoCastSpell(me->getVictim(), info);
+ else DoCastSpell(me->GetVictim(), info);
//Set our global cooldown
GlobalCooldown = GENERIC_CREATURE_COOLDOWN;
@@ -163,7 +163,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new generic_creatureAI(creature);
}
@@ -186,7 +186,7 @@ public:
uint32 timer, interval;
const SpellInfo* spell;
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (timer <= diff)
{
@@ -199,7 +199,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new trigger_periodicAI(creature);
}
@@ -213,14 +213,14 @@ public:
struct trigger_deathAI : public NullCreatureAI
{
trigger_deathAI(Creature* creature) : NullCreatureAI(creature) {}
- void JustDied(Unit* killer)
+ void JustDied(Unit* killer) OVERRIDE
{
if (me->m_spells[0])
me->CastSpell(killer, me->m_spells[0], true);
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new trigger_deathAI(creature);
}
diff --git a/src/server/scripts/World/npc_innkeeper.cpp b/src/server/scripts/World/npc_innkeeper.cpp
index 4a289c55794..9c92dd0d27e 100644
--- a/src/server/scripts/World/npc_innkeeper.cpp
+++ b/src/server/scripts/World/npc_innkeeper.cpp
@@ -30,9 +30,11 @@ EndScriptData */
#include "Player.h"
#include "WorldSession.h"
-#define HALLOWEEN_EVENTID 12
-#define SPELL_TRICK_OR_TREATED 24755
-#define SPELL_TREAT 24715
+enum Spells
+{
+ SPELL_TRICK_OR_TREATED = 24755,
+ SPELL_TREAT = 24715
+};
#define LOCALE_TRICK_OR_TREAT_0 "Trick or Treat!"
#define LOCALE_TRICK_OR_TREAT_2 "Des bonbons ou des blagues!"
@@ -47,9 +49,9 @@ class npc_innkeeper : public CreatureScript
public:
npc_innkeeper() : CreatureScript("npc_innkeeper") { }
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (IsEventActive(HALLOWEEN_EVENTID) && !player->HasAura(SPELL_TRICK_OR_TREATED))
+ if (IsHolidayActive(HOLIDAY_HALLOWS_END) && !player->HasAura(SPELL_TRICK_OR_TREATED))
{
const char* localizedEntry;
switch (player->GetSession()->GetSessionDbcLocale())
@@ -59,16 +61,16 @@ public:
case LOCALE_esES: localizedEntry = LOCALE_TRICK_OR_TREAT_6; break;
case LOCALE_enUS: default: localizedEntry = LOCALE_TRICK_OR_TREAT_0;
}
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, localizedEntry, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+HALLOWEEN_EVENTID);
+ player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, localizedEntry, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
}
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
- if (creature->isVendor())
+ if (creature->IsVendor())
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
- if (creature->isInnkeeper())
+ if (creature->IsInnkeeper())
{
const char* localizedEntry;
switch (player->GetSession()->GetSessionDbcLocale())
@@ -84,10 +86,10 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
- if (action == GOSSIP_ACTION_INFO_DEF+HALLOWEEN_EVENTID && IsEventActive(HALLOWEEN_EVENTID) && !player->HasAura(SPELL_TRICK_OR_TREATED))
+ if (action == GOSSIP_ACTION_INFO_DEF + 1 && IsHolidayActive(HOLIDAY_HALLOWS_END) && !player->HasAura(SPELL_TRICK_OR_TREATED))
{
player->CastSpell(player, SPELL_TRICK_OR_TREATED, true);
diff --git a/src/server/scripts/World/npc_professions.cpp b/src/server/scripts/World/npc_professions.cpp
index 0933d092f1f..fb36dbefa1f 100644
--- a/src/server/scripts/World/npc_professions.cpp
+++ b/src/server/scripts/World/npc_professions.cpp
@@ -382,15 +382,15 @@ public:
return (player->HasSpell(S_TRANSMUTE) || player->HasSpell(S_ELIXIR) || player->HasSpell(S_POTION));
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
- if (creature->isVendor())
+ if (creature->IsVendor())
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
- if (creature->isTrainer())
+ if (creature->IsTrainer())
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, GOSSIP_TEXT_TRAIN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRAIN);
if (player->HasSkill(SKILL_ALCHEMY) && player->GetBaseSkillValue(SKILL_ALCHEMY) >= 350 && player->getLevel() > 67)
@@ -508,7 +508,7 @@ public:
}
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (sender)
@@ -547,15 +547,15 @@ public:
return (player->HasSpell(S_HAMMER) || player->HasSpell(S_AXE) || player->HasSpell(S_SWORD));
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
- if (creature->isVendor())
+ if (creature->IsVendor())
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
- if (creature->isTrainer())
+ if (creature->IsTrainer())
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, GOSSIP_TEXT_TRAIN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRAIN);
uint32 creatureId = creature->GetEntry();
@@ -738,7 +738,7 @@ public:
}
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (sender)
@@ -767,7 +767,7 @@ public:
# engineering trinkets
###*/
-enum eEngineeringTrinkets
+enum EngineeringTrinkets
{
NPC_ZAP = 14742,
NPC_JHORDY = 14743,
@@ -808,7 +808,7 @@ public:
return res;
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
uint32 npcTextId = 0;
std::string gossipItem;
@@ -848,7 +848,7 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF + 1)
@@ -886,15 +886,15 @@ class npc_prof_leather : public CreatureScript
public:
npc_prof_leather() : CreatureScript("npc_prof_leather") { }
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
- if (creature->isVendor())
+ if (creature->IsVendor())
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
- if (creature->isTrainer())
+ if (creature->IsTrainer())
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, GOSSIP_TEXT_TRAIN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRAIN);
if (player->HasSkill(SKILL_LEATHERWORKING) && player->GetBaseSkillValue(SKILL_LEATHERWORKING) >= 250 && player->getLevel() > 49)
@@ -974,7 +974,7 @@ public:
}
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (sender)
@@ -1009,15 +1009,15 @@ public:
return (player->HasSpell(S_MOONCLOTH) || player->HasSpell(S_SHADOWEAVE) || player->HasSpell(S_SPELLFIRE));
}
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
- if (creature->isVendor())
+ if (creature->IsVendor())
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
- if (creature->isTrainer())
+ if (creature->IsTrainer())
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, GOSSIP_TEXT_TRAIN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRAIN);
//TAILORING SPEC
@@ -1136,7 +1136,7 @@ public:
}
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (sender)
diff --git a/src/server/scripts/World/npc_taxi.cpp b/src/server/scripts/World/npc_taxi.cpp
index 778ab370597..bf742d606f2 100644
--- a/src/server/scripts/World/npc_taxi.cpp
+++ b/src/server/scripts/World/npc_taxi.cpp
@@ -65,9 +65,9 @@ class npc_taxi : public CreatureScript
public:
npc_taxi() : CreatureScript("npc_taxi") { }
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
switch (creature->GetEntry())
@@ -164,7 +164,7 @@ public:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_CRIMSONWING, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+25);
break;
case 26602:
- if (creature->isTaxi())
+ if (creature->IsTaxi())
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI, GOSSIP_THRICESTAR1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 26);
if (player->GetQuestStatus(11692) == QUEST_STATUS_COMPLETE)
@@ -182,7 +182,7 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
diff --git a/src/server/scripts/World/npcs_special.cpp b/src/server/scripts/World/npcs_special.cpp
index b5f66fcc25e..f3d86c47b21 100644
--- a/src/server/scripts/World/npcs_special.cpp
+++ b/src/server/scripts/World/npcs_special.cpp
@@ -77,7 +77,7 @@ struct SpawnAssociation
SpawnType spawnType;
};
-enum eEnums
+enum AirFoceBots
{
SPELL_GUARDS_MARK = 38067,
AURA_DURATION_TIME_LEFT = 5000
@@ -159,7 +159,7 @@ public:
SpawnAssociation* SpawnAssoc;
uint64 SpawnedGUID;
- void Reset() {}
+ void Reset() OVERRIDE {}
Creature* SummonGuard()
{
@@ -180,13 +180,14 @@ public:
{
Creature* creature = Unit::GetCreature(*me, SpawnedGUID);
- if (creature && creature->isAlive())
+ if (creature && creature->IsAlive())
return creature;
return NULL;
}
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
if (!SpawnAssoc)
return;
@@ -225,7 +226,7 @@ public:
}
if (markAura->GetDuration() < AURA_DURATION_TIME_LEFT)
- if (!lastSpawnedGuard->getVictim())
+ if (!lastSpawnedGuard->GetVictim())
lastSpawnedGuard->AI()->AttackStart(who);
}
else
@@ -252,7 +253,7 @@ public:
return;
// ROOFTOP only triggers if the player is on the ground
- if (!playerTarget->IsFlying() && !lastSpawnedGuard->getVictim())
+ if (!playerTarget->IsFlying() && !lastSpawnedGuard->GetVictim())
lastSpawnedGuard->AI()->AttackStart(who);
break;
@@ -262,7 +263,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_air_force_botsAI(creature);
}
@@ -272,7 +273,7 @@ public:
## npc_lunaclaw_spirit
######*/
-enum
+enum LunaclawSpirit
{
QUEST_BODY_HEART_A = 6001,
QUEST_BODY_HEART_H = 6002,
@@ -288,7 +289,7 @@ class npc_lunaclaw_spirit : public CreatureScript
public:
npc_lunaclaw_spirit() : CreatureScript("npc_lunaclaw_spirit") { }
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
if (player->GetQuestStatus(QUEST_BODY_HEART_A) == QUEST_STATUS_INCOMPLETE || player->GetQuestStatus(QUEST_BODY_HEART_H) == QUEST_STATUS_INCOMPLETE)
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_GRANT, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
@@ -297,7 +298,7 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF + 1)
@@ -335,16 +336,16 @@ public:
uint32 ResetFlagTimer;
- void Reset()
+ void Reset() OVERRIDE
{
ResetFlagTimer = 120000;
me->setFaction(FACTION_CHICKEN);
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
// Reset flags after a certain time has passed so that the next player has to start the 'event' again
if (me->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER))
@@ -362,7 +363,7 @@ public:
DoMeleeAttackIfReady();
}
- void ReceiveEmote(Player* player, uint32 emote)
+ void ReceiveEmote(Player* player, uint32 emote) OVERRIDE
{
switch (emote)
{
@@ -386,12 +387,12 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_chicken_cluckAI(creature);
}
- bool OnQuestAccept(Player* /*player*/, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* /*player*/, Creature* creature, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_CLUCK)
CAST_AI(npc_chicken_cluck::npc_chicken_cluckAI, creature->AI())->Reset();
@@ -399,7 +400,7 @@ public:
return true;
}
- bool OnQuestComplete(Player* /*player*/, Creature* creature, Quest const* quest)
+ bool OnQuestComplete(Player* /*player*/, Creature* creature, Quest const* quest) OVERRIDE
{
if (quest->GetQuestId() == QUEST_CLUCK)
CAST_AI(npc_chicken_cluck::npc_chicken_cluckAI, creature->AI())->Reset();
@@ -412,9 +413,12 @@ public:
## npc_dancing_flames
######*/
-#define SPELL_BRAZIER 45423
-#define SPELL_SEDUCTION 47057
-#define SPELL_FIERY_AURA 45427
+enum DancingFlames
+{
+ SPELL_BRAZIER = 45423,
+ SPELL_SEDUCTION = 47057,
+ SPELL_FIERY_AURA = 45427
+};
class npc_dancing_flames : public CreatureScript
{
@@ -428,7 +432,7 @@ public:
bool Active;
uint32 CanIteract;
- void Reset()
+ void Reset() OVERRIDE
{
Active = true;
CanIteract = 3500;
@@ -444,7 +448,7 @@ public:
me->SendMessageToSet(&data, true);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!Active)
{
@@ -459,9 +463,9 @@ public:
}
}
- void EnterCombat(Unit* /*who*/){}
+ void EnterCombat(Unit* /*who*/)OVERRIDE {}
- void ReceiveEmote(Player* player, uint32 emote)
+ void ReceiveEmote(Player* player, uint32 emote) OVERRIDE
{
if (me->IsWithinLOS(player->GetPositionX(), player->GetPositionY(), player->GetPositionZ()) && me->IsWithinDistInMap(player, 30.0f))
{
@@ -494,7 +498,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_dancing_flamesAI(creature);
}
@@ -588,7 +592,7 @@ public:
std::list<uint64> Patients;
std::vector<Location*> Coordinates;
- void Reset()
+ void Reset() OVERRIDE
{
PlayerGUID = 0;
@@ -689,12 +693,12 @@ public:
}
}
- void UpdateAI(uint32 diff);
+ void UpdateAI(uint32 diff) OVERRIDE;
- void EnterCombat(Unit* /*who*/){}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
};
- bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
+ bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE
{
if ((quest->GetQuestId() == 6624) || (quest->GetQuestId() == 6622))
CAST_AI(npc_doctor::npc_doctorAI, creature->AI())->BeginEvent(player);
@@ -702,7 +706,7 @@ public:
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_doctorAI(creature);
}
@@ -724,7 +728,7 @@ public:
uint64 DoctorGUID;
Location* Coord;
- void Reset()
+ void Reset() OVERRIDE
{
DoctorGUID = 0;
Coord = NULL;
@@ -757,12 +761,12 @@ public:
}
}
- void EnterCombat(Unit* /*who*/){}
+ void EnterCombat(Unit* /*who*/)OVERRIDE {}
- void SpellHit(Unit* caster, SpellInfo const* spell)
+ void SpellHit(Unit* caster, SpellInfo const* spell) OVERRIDE
{
Player* player = caster->ToPlayer();
- if (!player || !me->isAlive() || spell->Id != 20804)
+ if (!player || !me->IsAlive() || spell->Id != 20804)
return;
if (player->GetQuestStatus(6624) == QUEST_STATUS_INCOMPLETE || player->GetQuestStatus(6622) == QUEST_STATUS_INCOMPLETE)
@@ -799,13 +803,13 @@ public:
}
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
//lower HP on every world tick makes it a useful counter, not officlone though
- if (me->isAlive() && me->GetHealth() > 6)
+ if (me->IsAlive() && me->GetHealth() > 6)
me->ModifyHealth(-5);
- if (me->isAlive() && me->GetHealth() <= 6)
+ if (me->IsAlive() && me->GetHealth() <= 6)
{
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
@@ -819,7 +823,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_injured_patientAI(creature);
}
@@ -926,7 +930,7 @@ public:
uint32 RunAwayTimer;
- void Reset()
+ void Reset() OVERRIDE
{
CasterGUID = 0;
@@ -940,14 +944,14 @@ public:
me->SetHealth(me->CountPctFromMaxHealth(70));
}
- void EnterCombat(Unit* /*who*/) { }
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void SpellHit(Unit* caster, SpellInfo const* spell)
+ void SpellHit(Unit* caster, SpellInfo const* spell) OVERRIDE
{
if (spell->Id == SPELL_LESSER_HEAL_R2 || spell->Id == SPELL_FORTITUDE_R1)
{
//not while in combat
- if (me->isInCombat())
+ if (me->IsInCombat())
return;
//nothing to be done now
@@ -1052,14 +1056,14 @@ public:
}
}
- void WaypointReached(uint32 /*waypointId*/)
+ void WaypointReached(uint32 /*waypointId*/) OVERRIDE
{
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
- if (CanRun && !me->isInCombat())
+ if (CanRun && !me->IsInCombat())
{
if (RunAwayTimer <= diff)
{
@@ -1099,7 +1103,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_garments_of_questsAI(creature);
}
@@ -1109,7 +1113,10 @@ public:
## npc_guardian
######*/
-#define SPELL_DEATHTOUCH 5
+enum GuardianSpells
+{
+ SPELL_DEATHTOUCH = 5
+};
class npc_guardian : public CreatureScript
{
@@ -1120,29 +1127,29 @@ public:
{
npc_guardianAI(Creature* creature) : ScriptedAI(creature) {}
- void Reset()
+ void Reset() OVERRIDE
{
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
}
- void EnterCombat(Unit* /*who*/)
+ void EnterCombat(Unit* /*who*/) OVERRIDE
{
}
- void UpdateAI(uint32 /*diff*/)
+ void UpdateAI(uint32 /*diff*/) OVERRIDE
{
if (!UpdateVictim())
return;
if (me->isAttackReady())
{
- DoCast(me->getVictim(), SPELL_DEATHTOUCH, true);
+ DoCastVictim(SPELL_DEATHTOUCH, true);
me->resetAttackTimer();
}
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_guardianAI(creature);
}
@@ -1157,9 +1164,9 @@ class npc_mount_vendor : public CreatureScript
public:
npc_mount_vendor() : CreatureScript("npc_mount_vendor") { }
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
bool canBuy = false;
@@ -1225,14 +1232,14 @@ public:
if (canBuy)
{
- if (creature->isVendor())
+ if (creature->IsVendor())
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
}
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_TRADE)
@@ -1255,18 +1262,18 @@ class npc_rogue_trainer : public CreatureScript
public:
npc_rogue_trainer() : CreatureScript("npc_rogue_trainer") { }
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
- if (creature->isTrainer())
+ if (creature->IsTrainer())
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, GOSSIP_TEXT_TRAIN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRAIN);
- if (creature->isCanTrainingAndResetTalentsOf(player))
+ if (player->getClass() == CLASS_ROGUE)
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, GOSSIP_HELLO_ROGUE1, GOSSIP_SENDER_MAIN, GOSSIP_OPTION_UNLEARNTALENTS);
- if (player->GetSpecsCount() == 1 && creature->isCanTrainingAndResetTalentsOf(player) && player->getLevel() >= sWorld->getIntConfig(CONFIG_MIN_DUALSPEC_LEVEL))
+ if (player->GetSpecsCount() == 1 && player->getLevel() >= sWorld->getIntConfig(CONFIG_MIN_DUALSPEC_LEVEL))
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, GOSSIP_HELLO_ROGUE3, GOSSIP_SENDER_MAIN, GOSSIP_OPTION_LEARNDUALSPEC);
if (player->getClass() == CLASS_ROGUE && player->getLevel() >= 24 && !player->HasItemCount(17126) && !player->GetQuestRewardStatus(6681))
@@ -1279,7 +1286,7 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -1327,17 +1334,20 @@ public:
## npc_sayge
######*/
-#define SPELL_DMG 23768 //dmg
-#define SPELL_RES 23769 //res
-#define SPELL_ARM 23767 //arm
-#define SPELL_SPI 23738 //spi
-#define SPELL_INT 23766 //int
-#define SPELL_STM 23737 //stm
-#define SPELL_STR 23735 //str
-#define SPELL_AGI 23736 //agi
-#define SPELL_FORTUNE 23765 //faire fortune
-
-#define GOSSIP_HELLO_SAYGE "Yes"
+enum Sayge
+{
+ SPELL_DMG = 23768, // dmg
+ SPELL_RES = 23769, // res
+ SPELL_ARM = 23767, // arm
+ SPELL_SPI = 23738, // spi
+ SPELL_INT = 23766, // int
+ SPELL_STM = 23737, // stm
+ SPELL_STR = 23735, // str
+ SPELL_AGI = 23736, // agi
+ SPELL_FORTUNE = 23765 // faire fortune
+};
+
+#define GOSSIP_HELLO_SAYGE "Yes"
#define GOSSIP_SENDACTION_SAYGE1 "Slay the Man"
#define GOSSIP_SENDACTION_SAYGE2 "Turn him over to liege"
#define GOSSIP_SENDACTION_SAYGE3 "Confiscate the corn"
@@ -1361,9 +1371,9 @@ class npc_sayge : public CreatureScript
public:
npc_sayge() : CreatureScript("npc_sayge") { }
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
if (player->HasSpellCooldown(SPELL_INT) ||
@@ -1430,7 +1440,7 @@ public:
}
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (sender)
@@ -1492,8 +1502,8 @@ public:
{
npc_steam_tonkAI(Creature* creature) : ScriptedAI(creature) {}
- void Reset() {}
- void EnterCombat(Unit* /*who*/) {}
+ void Reset() OVERRIDE {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
void OnPossess(bool apply)
{
@@ -1510,13 +1520,16 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_steam_tonkAI(creature);
}
};
-#define SPELL_TONK_MINE_DETONATE 25099
+enum TonkMine
+{
+ SPELL_TONK_MINE_DETONATE = 25099
+};
class npc_tonk_mine : public CreatureScript
{
@@ -1532,16 +1545,17 @@ public:
uint32 ExplosionTimer;
- void Reset()
+ void Reset() OVERRIDE
{
ExplosionTimer = 3000;
}
- void EnterCombat(Unit* /*who*/) {}
- void AttackStart(Unit* /*who*/) {}
- void MoveInLineOfSight(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
+ void AttackStart(Unit* /*who*/) OVERRIDE {}
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
+
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (ExplosionTimer <= diff)
{
@@ -1553,7 +1567,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_tonk_mineAI(creature);
}
@@ -1571,7 +1585,7 @@ public:
struct npc_brewfest_revelerAI : public ScriptedAI
{
npc_brewfest_revelerAI(Creature* creature) : ScriptedAI(creature) {}
- void ReceiveEmote(Player* player, uint32 emote)
+ void ReceiveEmote(Player* player, uint32 emote) OVERRIDE
{
if (!IsHolidayActive(HOLIDAY_BREWFEST))
return;
@@ -1581,7 +1595,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_brewfest_revelerAI(creature);
}
@@ -1592,14 +1606,14 @@ public:
## npc_snake_trap_serpents
####*/
-#define SPELL_MIND_NUMBING_POISON 25810 //Viper
-#define SPELL_DEADLY_POISON 34655 //Venomous Snake
-#define SPELL_CRIPPLING_POISON 30981 //Viper
-
-#define VENOMOUS_SNAKE_TIMER 1500
-#define VIPER_TIMER 3000
+enum SnakeTrapSerpents
+{
+ SPELL_MIND_NUMBING_POISON = 25810, // Viper
+ SPELL_DEADLY_POISON = 34655, // Venomous Snake
+ SPELL_CRIPPLING_POISON = 30981, // Viper
-#define C_VIPER 19921
+ NPC_VIPER = 19921
+};
class npc_snake_trap : public CreatureScript
{
@@ -1613,15 +1627,15 @@ public:
uint32 SpellTimer;
bool IsViper;
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void Reset()
+ void Reset() OVERRIDE
{
SpellTimer = 0;
CreatureTemplate const* Info = me->GetCreatureTemplate();
- IsViper = Info->Entry == C_VIPER ? true : false;
+ IsViper = Info->Entry == NPC_VIPER ? true : false;
me->SetMaxHealth(uint32(107 * (me->getLevel() - 40) * 0.025f));
//Add delta to make them not all hit the same time
@@ -1630,16 +1644,17 @@ public:
me->SetStatFloatValue(UNIT_FIELD_RANGED_ATTACK_POWER, float(Info->attackpower));
// Start attacking attacker of owner on first ai update after spawn - move in line of sight may choose better target
- if (!me->getVictim() && me->isSummon())
+ if (!me->GetVictim() && me->IsSummon())
if (Unit* Owner = me->ToTempSummon()->GetSummoner())
if (Owner->getAttackerForHelper())
AttackStart(Owner->getAttackerForHelper());
}
//Redefined for random target selection:
- void MoveInLineOfSight(Unit* who)
+ void MoveInLineOfSight(Unit* who) OVERRIDE
+
{
- if (!me->getVictim() && me->canCreatureAttack(who))
+ if (!me->GetVictim() && me->CanCreatureAttack(who))
{
if (me->GetDistanceZ(who) > CREATURE_Z_ATTACK_RANGE)
return;
@@ -1657,12 +1672,12 @@ public:
}
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
- if (me->getVictim()->HasBreakableByDamageCrowdControlAura(me))
+ if (me->GetVictim()->HasBreakableByDamageCrowdControlAura(me))
{
me->InterruptNonMeleeSpells(false);
return;
@@ -1680,16 +1695,16 @@ public:
else
spell = SPELL_CRIPPLING_POISON;
- DoCast(me->getVictim(), spell);
+ DoCastVictim(spell);
}
- SpellTimer = VIPER_TIMER;
+ SpellTimer = 3000;
}
else //Venomous Snake
{
if (urand(0, 2) == 0) //33% chance to cast
- DoCast(me->getVictim(), SPELL_DEADLY_POISON);
- SpellTimer = VENOMOUS_SNAKE_TIMER + (rand() % 5) * 100;
+ DoCastVictim(SPELL_DEADLY_POISON);
+ SpellTimer = 1500 + (rand() % 5) * 100;
}
}
else
@@ -1699,7 +1714,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_snake_trap_serpentsAI(creature);
}
@@ -1715,17 +1730,17 @@ public:
#define SAY_RANDOM_MOJO6b ", I know of a little swamp not too far from here...."
#define SAY_RANDOM_MOJO7 "There's just never enough Mojo to go around..."
-class mob_mojo : public CreatureScript
+class npc_mojo : public CreatureScript
{
public:
- mob_mojo() : CreatureScript("mob_mojo") { }
+ npc_mojo() : CreatureScript("npc_mojo") { }
- struct mob_mojoAI : public ScriptedAI
+ struct npc_mojoAI : public ScriptedAI
{
- mob_mojoAI(Creature* creature) : ScriptedAI(creature) {Reset();}
+ npc_mojoAI(Creature* creature) : ScriptedAI(creature) {Reset();}
uint32 hearts;
uint64 victimGUID;
- void Reset()
+ void Reset() OVERRIDE
{
victimGUID = 0;
hearts = 15000;
@@ -1733,9 +1748,9 @@ public:
me->GetMotionMaster()->MoveFollow(own, 0, 0);
}
- void EnterCombat(Unit* /*who*/){}
+ void EnterCombat(Unit* /*who*/)OVERRIDE {}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (me->HasAura(20372))
{
@@ -1747,11 +1762,11 @@ public:
}
}
- void ReceiveEmote(Player* player, uint32 emote)
+ void ReceiveEmote(Player* player, uint32 emote) OVERRIDE
{
me->HandleEmoteCommand(emote);
Unit* owner = me->GetOwner();
- if (emote != TEXT_EMOTE_KISS || owner || owner->GetTypeId() != TYPEID_PLAYER ||
+ if (emote != TEXT_EMOTE_KISS || !owner || owner->GetTypeId() != TYPEID_PLAYER ||
owner->ToPlayer()->GetTeam() != player->GetTeam())
{
return;
@@ -1800,9 +1815,9 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
- return new mob_mojoAI(creature);
+ return new npc_mojoAI(creature);
}
};
@@ -1815,7 +1830,7 @@ public:
{
npc_mirror_imageAI(Creature* creature) : CasterAI(creature) {}
- void InitializeAI()
+ void InitializeAI() OVERRIDE
{
CasterAI::InitializeAI();
Unit* owner = me->GetOwner();
@@ -1830,9 +1845,9 @@ public:
}
// Do not reload Creature templates on evade mode enter - prevent visual lost
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
- if (me->IsInEvadeMode() || !me->isAlive())
+ if (me->IsInEvadeMode() || !me->IsAlive())
return;
Unit* owner = me->GetCharmerOrOwner();
@@ -1846,7 +1861,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_mirror_imageAI(creature);
}
@@ -1863,7 +1878,7 @@ public:
uint32 despawnTimer;
- void InitializeAI()
+ void InitializeAI() OVERRIDE
{
CasterAI::InitializeAI();
uint64 ownerGuid = me->GetOwnerGUID();
@@ -1884,7 +1899,7 @@ public:
}
}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
// Stop Feeding Gargoyle when it dies
if (Unit* owner = me->GetOwner())
@@ -1892,9 +1907,9 @@ public:
}
// Fly away when dismissed
- void SpellHit(Unit* source, SpellInfo const* spell)
+ void SpellHit(Unit* source, SpellInfo const* spell) OVERRIDE
{
- if (spell->Id != 50515 || !me->isAlive())
+ if (spell->Id != 50515 || !me->IsAlive())
return;
Unit* owner = me->GetOwner();
@@ -1910,7 +1925,7 @@ public:
//! HACK: Creature's can't have MOVEMENTFLAG_FLYING
// Fly Away
- me->AddUnitMovementFlag(MOVEMENTFLAG_CAN_FLY|MOVEMENTFLAG_ASCENDING|MOVEMENTFLAG_FLYING);
+ me->SetCanFly(true);
me->SetSpeed(MOVE_FLIGHT, 0.75f, true);
me->SetSpeed(MOVE_RUN, 0.75f, true);
float x = me->GetPositionX() + 20 * std::cos(me->GetOrientation());
@@ -1923,7 +1938,7 @@ public:
despawnTimer = 4 * IN_MILLISECONDS;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (despawnTimer > 0)
{
@@ -1937,7 +1952,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_ebon_gargoyleAI(creature);
}
@@ -1955,9 +1970,9 @@ class npc_lightwell : public CreatureScript
DoCast(me, 59907, false);
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
- if (!me->isAlive())
+ if (!me->IsAlive())
return;
me->DeleteThreatList();
@@ -1966,13 +1981,13 @@ class npc_lightwell : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_lightwellAI(creature);
}
};
-enum eTrainingDummy
+enum TrainingDummy
{
NPC_ADVANCED_TARGET_DUMMY = 2674,
NPC_TARGET_DUMMY = 2673
@@ -1995,7 +2010,7 @@ public:
uint32 resetTimer;
uint32 despawnTimer;
- void Reset()
+ void Reset() OVERRIDE
{
me->SetControlled(true, UNIT_STATE_STUNNED);//disable rotate
me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK, true);//imune to knock aways like blast wave
@@ -2004,7 +2019,7 @@ public:
despawnTimer = 15000;
}
- void EnterEvadeMode()
+ void EnterEvadeMode() OVERRIDE
{
if (!_EnterEvadeMode())
return;
@@ -2012,13 +2027,13 @@ public:
Reset();
}
- void DamageTaken(Unit* /*doneBy*/, uint32& damage)
+ void DamageTaken(Unit* /*doneBy*/, uint32& damage) OVERRIDE
{
resetTimer = 5000;
damage = 0;
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -2045,10 +2060,11 @@ public:
despawnTimer -= diff;
}
}
- void MoveInLineOfSight(Unit* /*who*/){return;}
+
+ void MoveInLineOfSight(Unit* /*who*/) OVERRIDE {}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_training_dummyAI(creature);
}
@@ -2069,16 +2085,16 @@ class npc_shadowfiend : public CreatureScript
{
npc_shadowfiendAI(Creature* creature) : PetAI(creature) {}
- void JustDied(Unit* /*killer*/)
+ void JustDied(Unit* /*killer*/) OVERRIDE
{
- if (me->isSummon())
+ if (me->IsSummon())
if (Unit* owner = me->ToTempSummon()->GetSummoner())
if (owner->HasAura(GLYPH_OF_SHADOWFIEND))
owner->CastSpell(owner, GLYPH_OF_SHADOWFIEND_MANA, true);
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_shadowfiendAI(creature);
}
@@ -2087,9 +2103,13 @@ class npc_shadowfiend : public CreatureScript
/*######
# npc_fire_elemental
######*/
-#define SPELL_FIRENOVA 12470
-#define SPELL_FIRESHIELD 13376
-#define SPELL_FIREBLAST 57984
+
+enum FireElemental
+{
+ SPELL_FIRENOVA = 12470,
+ SPELL_FIRESHIELD = 13376,
+ SPELL_FIREBLAST = 57984
+};
class npc_fire_elemental : public CreatureScript
{
@@ -2104,7 +2124,7 @@ public:
uint32 FireShield_Timer;
uint32 FireBlast_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
FireNova_Timer = 5000 + rand() % 15000; // 5-20 sec cd
FireBlast_Timer = 5000 + rand() % 15000; // 5-20 sec cd
@@ -2112,7 +2132,7 @@ public:
me->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_FIRE, true);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
@@ -2122,7 +2142,7 @@ public:
if (FireShield_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_FIRESHIELD);
+ DoCastVictim(SPELL_FIRESHIELD);
FireShield_Timer = 2 * IN_MILLISECONDS;
}
else
@@ -2130,7 +2150,7 @@ public:
if (FireBlast_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_FIREBLAST);
+ DoCastVictim(SPELL_FIREBLAST);
FireBlast_Timer = 5000 + rand() % 15000; // 5-20 sec cd
}
else
@@ -2138,7 +2158,7 @@ public:
if (FireNova_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_FIRENOVA);
+ DoCastVictim(SPELL_FIRENOVA);
FireNova_Timer = 5000 + rand() % 15000; // 5-20 sec cd
}
else
@@ -2148,7 +2168,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_fire_elementalAI(creature);
}
@@ -2157,7 +2177,11 @@ public:
/*######
# npc_earth_elemental
######*/
-#define SPELL_ANGEREDEARTH 36213
+
+enum EarthElemental
+{
+ SPELL_ANGEREDEARTH = 36213
+};
class npc_earth_elemental : public CreatureScript
{
@@ -2170,20 +2194,20 @@ public:
uint32 AngeredEarth_Timer;
- void Reset()
+ void Reset() OVERRIDE
{
AngeredEarth_Timer = 0;
me->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_NATURE, true);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
if (AngeredEarth_Timer <= diff)
{
- DoCast(me->getVictim(), SPELL_ANGEREDEARTH);
+ DoCastVictim(SPELL_ANGEREDEARTH);
AngeredEarth_Timer = 5000 + rand() % 15000; // 5-20 sec cd
}
else
@@ -2193,7 +2217,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_earth_elementalAI(creature);
}
@@ -2233,12 +2257,12 @@ class npc_wormhole : public CreatureScript
{
npc_wormholeAI(Creature* creature) : PassiveAI(creature) {}
- void InitializeAI()
+ void InitializeAI() OVERRIDE
{
_showUnderground = urand(0, 100) == 0; // Guessed value, it is really rare though
}
- uint32 GetData(uint32 type) const
+ uint32 GetData(uint32 type) const OVERRIDE
{
return (type == DATA_SHOW_UNDERGROUND && _showUnderground) ? 1 : 0;
}
@@ -2247,9 +2271,9 @@ class npc_wormhole : public CreatureScript
bool _showUnderground;
};
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isSummon())
+ if (creature->IsSummon())
{
if (player == creature->ToTempSummon()->GetSummoner())
{
@@ -2269,7 +2293,7 @@ class npc_wormhole : public CreatureScript
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
@@ -2304,7 +2328,7 @@ class npc_wormhole : public CreatureScript
return true;
}
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_wormholeAI(creature);
}
@@ -2314,7 +2338,7 @@ class npc_wormhole : public CreatureScript
## npc_pet_trainer
######*/
-enum ePetTrainer
+enum PetTrainer
{
TEXT_ISHUNTER = 5838,
TEXT_NOTHUNTER = 5839,
@@ -2331,9 +2355,9 @@ class npc_pet_trainer : public CreatureScript
public:
npc_pet_trainer() : CreatureScript("npc_pet_trainer") { }
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
- if (creature->isQuestGiver())
+ if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
if (player->getClass() == CLASS_HUNTER)
@@ -2349,7 +2373,7 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -2378,7 +2402,7 @@ public:
## npc_locksmith
######*/
-enum eLockSmith
+enum LockSmith
{
QUEST_HOW_TO_BRAKE_IN_TO_THE_ARCATRAZ = 10704,
QUEST_DARK_IRON_LEGACY = 3802,
@@ -2426,7 +2450,7 @@ class npc_locksmith : public CreatureScript
public:
npc_locksmith() : CreatureScript("npc_locksmith") { }
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
// Arcatraz Key
if (player->GetQuestRewardStatus(QUEST_HOW_TO_BRAKE_IN_TO_THE_ARCATRAZ) && !player->HasItemCount(ITEM_ARCATRAZ_KEY, 1, true))
@@ -2471,7 +2495,7 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -2531,7 +2555,7 @@ class npc_experience : public CreatureScript
public:
npc_experience() : CreatureScript("npc_experience") { }
- bool OnGossipHello(Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_XP_OFF, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_XP_ON, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
@@ -2539,7 +2563,7 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
bool noXPGain = player->HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_NO_XP_GAIN);
@@ -2808,7 +2832,7 @@ public:
return 0;
}
- void Reset()
+ void Reset() OVERRIDE
{
if (GameObject* launcher = FindNearestLauncher())
{
@@ -2853,7 +2877,7 @@ public:
}
};
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_fireworkAI(creature);
}
@@ -2878,7 +2902,7 @@ class npc_spring_rabbit : public CreatureScript
public:
npc_spring_rabbit() : CreatureScript("npc_spring_rabbit") { }
- CreatureAI* GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_spring_rabbitAI(creature);
}
@@ -2893,7 +2917,7 @@ public:
uint32 searchTimer;
uint64 rabbitGUID;
- void Reset()
+ void Reset() OVERRIDE
{
inLove = false;
rabbitGUID = 0;
@@ -2904,16 +2928,16 @@ public:
me->GetMotionMaster()->MoveFollow(owner, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE);
}
- void EnterCombat(Unit* /*who*/) { }
+ void EnterCombat(Unit* /*who*/) OVERRIDE {}
- void DoAction(int32 /*param*/)
+ void DoAction(int32 /*param*/) OVERRIDE
{
inLove = true;
if (Unit* owner = me->GetOwner())
owner->CastSpell(owner, SPELL_SPRING_FLING, true);
}
- void UpdateAI(uint32 diff)
+ void UpdateAI(uint32 diff) OVERRIDE
{
if (inLove)
{
@@ -2973,7 +2997,7 @@ void AddSC_npcs_special()
new npc_mirror_image();
new npc_ebon_gargoyle();
new npc_lightwell();
- new mob_mojo();
+ new npc_mojo();
new npc_training_dummy();
new npc_shadowfiend();
new npc_wormhole();
diff --git a/src/server/shared/CMakeLists.txt b/src/server/shared/CMakeLists.txt
index 447819b0431..4fc318f57eb 100644
--- a/src/server/shared/CMakeLists.txt
+++ b/src/server/shared/CMakeLists.txt
@@ -16,7 +16,6 @@ file(GLOB_RECURSE sources_Configuration Configuration/*.cpp Configuration/*.h)
file(GLOB_RECURSE sources_Cryptography Cryptography/*.cpp Cryptography/*.h)
file(GLOB_RECURSE sources_Database Database/*.cpp Database/*.h)
file(GLOB_RECURSE sources_DataStores DataStores/*.cpp DataStores/*.h)
-file(GLOB_RECURSE sources_Debugging Debugging/*.cpp Debugging/*.h)
file(GLOB_RECURSE sources_Dynamic Dynamic/*.cpp Dynamic/*.h)
file(GLOB_RECURSE sources_Logging Logging/*.cpp Logging/*.h)
file(GLOB_RECURSE sources_Packets Packets/*.cpp Packets/*.h)
@@ -25,6 +24,11 @@ file(GLOB_RECURSE sources_Utilities Utilities/*.cpp Utilities/*.h)
file(GLOB sources_localdir *.cpp *.h)
+# Manually set sources for Debugging directory as we don't want to include WheatyExceptionReport in shared project
+# It needs to be included both in authserver and worldserver for the static global variable to be properly initialized
+# and to handle crash logs on windows
+set(sources_Debugging Debugging/Errors.cpp Debugging/Errors.h)
+
#
# Build shared sourcelist
#
diff --git a/src/server/shared/Configuration/Config.cpp b/src/server/shared/Configuration/Config.cpp
index 5d5cc02616b..47d59a57100 100644
--- a/src/server/shared/Configuration/Config.cpp
+++ b/src/server/shared/Configuration/Config.cpp
@@ -17,72 +17,79 @@
*/
#include "Config.h"
-#include <ace/Auto_Ptr.h>
-#include <ace/Configuration_Import_Export.h>
-#include <ace/Thread_Mutex.h>
+#include "Errors.h"
-namespace ConfigMgr
+// Defined here as it must not be exposed to end-users.
+bool ConfigMgr::GetValueHelper(const char* name, ACE_TString &result)
{
+ GuardType guard(_configLock);
-namespace
-{
- typedef ACE_Thread_Mutex LockType;
- typedef ACE_Guard<LockType> GuardType;
+ if (_config.get() == 0)
+ return false;
- std::string _filename;
- ACE_Auto_Ptr<ACE_Configuration_Heap> _config;
- LockType m_configLock;
+ ACE_TString section_name;
+ ACE_Configuration_Section_Key section_key;
+ const ACE_Configuration_Section_Key &root_key = _config->root_section();
- // Defined here as it must not be exposed to end-users.
- bool GetValueHelper(const char* name, ACE_TString &result)
+ int i = 0;
+ while (_config->enumerate_sections(root_key, i, section_name) == 0)
{
- GuardType guard(m_configLock);
-
- if (_config.get() == 0)
- return false;
-
- ACE_TString section_name;
- ACE_Configuration_Section_Key section_key;
- const ACE_Configuration_Section_Key &root_key = _config->root_section();
-
- int i = 0;
- while (_config->enumerate_sections(root_key, i, section_name) == 0)
- {
- _config->open_section(root_key, section_name.c_str(), 0, section_key);
- if (_config->get_string_value(section_key, name, result) == 0)
- return true;
- ++i;
- }
-
- return false;
+ _config->open_section(root_key, section_name.c_str(), 0, section_key);
+ if (_config->get_string_value(section_key, name, result) == 0)
+ return true;
+ ++i;
}
+
+ return false;
}
-bool Load(const char* file)
+bool ConfigMgr::LoadInitial(char const* file)
{
- GuardType guard(m_configLock);
+ ASSERT(file);
- if (file)
- _filename = file;
+ GuardType guard(_configLock);
- _config.reset(new ACE_Configuration_Heap);
+ _filename = file;
+ _config.reset(new ACE_Configuration_Heap());
if (_config->open() == 0)
- {
- ACE_Ini_ImpExp config_importer(*_config.get());
- if (config_importer.import_config(_filename.c_str()) == 0)
+ if (LoadData(_filename.c_str()))
return true;
- }
+
_config.reset();
return false;
}
-std::string GetStringDefault(const char* name, const std::string &def)
+bool ConfigMgr::LoadMore(char const* file)
+{
+ ASSERT(file);
+ ASSERT(_config);
+
+ GuardType guard(_configLock);
+
+ return LoadData(file);
+}
+
+bool ConfigMgr::Reload()
+{
+ return LoadInitial(_filename.c_str());
+}
+
+bool ConfigMgr::LoadData(char const* file)
+{
+ ACE_Ini_ImpExp config_importer(*_config.get());
+ if (config_importer.import_config(file) == 0)
+ return true;
+
+ return false;
+}
+
+std::string ConfigMgr::GetStringDefault(const char* name, const std::string &def)
{
ACE_TString val;
return GetValueHelper(name, val) ? val.c_str() : def;
}
-bool GetBoolDefault(const char* name, bool def)
+bool ConfigMgr::GetBoolDefault(const char* name, bool def)
{
ACE_TString val;
@@ -93,22 +100,20 @@ bool GetBoolDefault(const char* name, bool def)
val == "1");
}
-int GetIntDefault(const char* name, int def)
+int ConfigMgr::GetIntDefault(const char* name, int def)
{
ACE_TString val;
return GetValueHelper(name, val) ? atoi(val.c_str()) : def;
}
-float GetFloatDefault(const char* name, float def)
+float ConfigMgr::GetFloatDefault(const char* name, float def)
{
ACE_TString val;
return GetValueHelper(name, val) ? (float)atof(val.c_str()) : def;
}
-const std::string & GetFilename()
+std::string const& ConfigMgr::GetFilename()
{
- GuardType guard(m_configLock);
+ GuardType guard(_configLock);
return _filename;
}
-
-} // namespace
diff --git a/src/server/shared/Configuration/Config.h b/src/server/shared/Configuration/Config.h
index 778c25f2033..d633e37f0c4 100644
--- a/src/server/shared/Configuration/Config.h
+++ b/src/server/shared/Configuration/Config.h
@@ -20,17 +20,58 @@
#define CONFIG_H
#include <string>
+#include <map>
+#include <ace/Singleton.h>
+#include <ace/Configuration_Import_Export.h>
+#include <ace/Thread_Mutex.h>
+#include <AutoPtr.h>
-namespace ConfigMgr
+typedef Trinity::AutoPtr<ACE_Configuration_Heap, ACE_Null_Mutex> Config;
+
+class ConfigMgr
{
- bool Load(const char *file = NULL);
+ friend class ACE_Singleton<ConfigMgr, ACE_Null_Mutex>;
+ friend class ConfigLoader;
+
+ ConfigMgr() { }
+ ~ConfigMgr() { }
+
+public:
+ /// Method used only for loading main configuration files (authserver.conf and worldserver.conf)
+ bool LoadInitial(char const* file);
+
+ /**
+ * This method loads additional configuration files
+ * It is recommended to use this method in WorldScript::OnConfigLoad hooks
+ *
+ * @return true if loading was successful
+ */
+ bool LoadMore(char const* file);
+
+ bool Reload();
std::string GetStringDefault(const char* name, const std::string& def);
bool GetBoolDefault(const char* name, bool def);
int GetIntDefault(const char* name, int def);
float GetFloatDefault(const char* name, float def);
- const std::string & GetFilename();
-}
+ std::string const& GetFilename();
+
+private:
+ bool GetValueHelper(const char* name, ACE_TString &result);
+ bool LoadData(char const* file);
+
+ typedef ACE_Thread_Mutex LockType;
+ typedef ACE_Guard<LockType> GuardType;
+
+ std::string _filename;
+ Config _config;
+ LockType _configLock;
+
+ ConfigMgr(ConfigMgr const&);
+ ConfigMgr& operator=(ConfigMgr const&);
+};
+
+#define sConfigMgr ACE_Singleton<ConfigMgr, ACE_Null_Mutex>::instance()
#endif
diff --git a/src/server/shared/Cryptography/SHA1.cpp b/src/server/shared/Cryptography/SHA1.cpp
index d02e9711014..00d7e520d51 100644
--- a/src/server/shared/Cryptography/SHA1.cpp
+++ b/src/server/shared/Cryptography/SHA1.cpp
@@ -23,6 +23,7 @@
SHA1Hash::SHA1Hash()
{
SHA1_Init(&mC);
+ memset(mDigest, 0, SHA_DIGEST_LENGTH * sizeof(uint8));
}
SHA1Hash::~SHA1Hash()
diff --git a/src/server/shared/DataStores/DBCFileLoader.h b/src/server/shared/DataStores/DBCFileLoader.h
index 1756b635635..8605e6a7633 100644
--- a/src/server/shared/DataStores/DBCFileLoader.h
+++ b/src/server/shared/DataStores/DBCFileLoader.h
@@ -22,7 +22,7 @@
#include "Utilities/ByteConverter.h"
#include <cassert>
-enum
+enum DbcFieldFormat
{
FT_NA='x', //not used or unknown, 4 byte size
FT_NA_BYTE='X', //not used or unknown, byte
diff --git a/src/server/shared/Database/Field.cpp b/src/server/shared/Database/Field.cpp
index 9bd37641813..51d918e716e 100644
--- a/src/server/shared/Database/Field.cpp
+++ b/src/server/shared/Database/Field.cpp
@@ -22,6 +22,7 @@ Field::Field()
data.value = NULL;
data.type = MYSQL_TYPE_NULL;
data.length = 0;
+ data.raw = false;
}
Field::~Field()
diff --git a/src/server/shared/Database/Implementation/CharacterDatabase.cpp b/src/server/shared/Database/Implementation/CharacterDatabase.cpp
index 2e6ab10b087..7e237614f62 100644
--- a/src/server/shared/Database/Implementation/CharacterDatabase.cpp
+++ b/src/server/shared/Database/Implementation/CharacterDatabase.cpp
@@ -45,12 +45,12 @@ void CharacterDatabaseConnection::DoPrepareStatements()
PrepareStatement(CHAR_SEL_ENUM, "SELECT c.guid, c.name, c.race, c.class, c.gender, c.playerBytes, c.playerBytes2, c.level, c.zone, c.map, c.position_x, c.position_y, c.position_z, "
"gm.guildid, c.playerFlags, c.at_login, cp.entry, cp.modelid, cp.level, c.equipmentCache, cb.guid "
"FROM characters AS c LEFT JOIN character_pet AS cp ON c.guid = cp.owner AND cp.slot = ? LEFT JOIN guild_member AS gm ON c.guid = gm.guid "
- "LEFT JOIN character_banned AS cb ON c.guid = cb.guid AND cb.active = 1 WHERE c.account = ? ORDER BY c.guid", CONNECTION_ASYNC);
+ "LEFT JOIN character_banned AS cb ON c.guid = cb.guid AND cb.active = 1 WHERE c.account = ? AND c.deleteInfos_Name IS NULL ORDER BY c.guid", CONNECTION_ASYNC);
PrepareStatement(CHAR_SEL_ENUM_DECLINED_NAME, "SELECT c.guid, c.name, c.race, c.class, c.gender, c.playerBytes, c.playerBytes2, c.level, c.zone, c.map, "
"c.position_x, c.position_y, c.position_z, gm.guildid, c.playerFlags, c.at_login, cp.entry, cp.modelid, cp.level, c.equipmentCache, "
"cb.guid, cd.genitive FROM characters AS c LEFT JOIN character_pet AS cp ON c.guid = cp.owner AND cp.slot = ? "
"LEFT JOIN character_declinedname AS cd ON c.guid = cd.guid LEFT JOIN guild_member AS gm ON c.guid = gm.guid "
- "LEFT JOIN character_banned AS cb ON c.guid = cb.guid AND cb.active = 1 WHERE c.account = ? ORDER BY c.guid", CONNECTION_ASYNC);
+ "LEFT JOIN character_banned AS cb ON c.guid = cb.guid AND cb.active = 1 WHERE c.account = ? AND c.deleteInfos_Name IS NULL ORDER BY c.guid", CONNECTION_ASYNC);
PrepareStatement(CHAR_SEL_FREE_NAME, "SELECT guid, name FROM characters WHERE guid = ? AND account = ? AND (at_login & ?) = ? AND NOT EXISTS (SELECT NULL FROM characters WHERE name = ?)", CONNECTION_ASYNC);
PrepareStatement(CHAR_SEL_GUID_RACE_ACC_BY_NAME, "SELECT guid, race, account FROM characters WHERE name = ?", CONNECTION_BOTH);
PrepareStatement(CHAR_SEL_CHAR_RACE, "SELECT race FROM characters WHERE guid = ?", CONNECTION_SYNCH);
@@ -105,7 +105,7 @@ void CharacterDatabaseConnection::DoPrepareStatements()
PrepareStatement(CHAR_SEL_CHARACTER_SPELLCOOLDOWNS, "SELECT spell, item, time FROM character_spell_cooldown WHERE guid = ?", CONNECTION_ASYNC);
PrepareStatement(CHAR_SEL_CHARACTER_DECLINEDNAMES, "SELECT genitive, dative, accusative, instrumental, prepositional FROM character_declinedname WHERE guid = ?", CONNECTION_ASYNC);
PrepareStatement(CHAR_SEL_GUILD_MEMBER, "SELECT guildid, rank FROM guild_member WHERE guid = ?", CONNECTION_BOTH);
- PrepareStatement(CHAR_SEL_GUILD_MEMBER_EXTENDED, "SELECT g.guildid, g.name, gr.rname, gm.pnote, gm.offnote "
+ PrepareStatement(CHAR_SEL_GUILD_MEMBER_EXTENDED, "SELECT g.guildid, g.name, gr.rname, gr.rid, gm.pnote, gm.offnote "
"FROM guild g JOIN guild_member gm ON g.guildid = gm.guildid "
"JOIN guild_rank gr ON g.guildid = gr.guildid AND gm.rank = gr.rid WHERE gm.guid = ?", CONNECTION_BOTH);
PrepareStatement(CHAR_SEL_CHARACTER_ACHIEVEMENTS, "SELECT achievement, date FROM character_achievement WHERE guid = ?", CONNECTION_ASYNC);
@@ -302,6 +302,7 @@ void CharacterDatabaseConnection::DoPrepareStatements()
PrepareStatement(CHAR_UPD_ARENA_TEAM_MEMBER, "UPDATE arena_team_member SET personalRating = ?, weekGames = ?, weekWins = ?, seasonGames = ?, seasonWins = ? WHERE arenaTeamId = ? AND guid = ?", CONNECTION_ASYNC);
PrepareStatement(CHAR_REP_CHARACTER_ARENA_STATS, "REPLACE INTO character_arena_stats (guid, slot, matchMakerRating) VALUES (?, ?, ?)", CONNECTION_ASYNC);
PrepareStatement(CHAR_SEL_PLAYER_ARENA_TEAMS, "SELECT arena_team_member.arenaTeamId FROM arena_team_member JOIN arena_team ON arena_team_member.arenaTeamId = arena_team.arenaTeamId WHERE guid = ?", CONNECTION_SYNCH);
+ PrepareStatement(CHAR_UPD_ARENA_TEAM_NAME, "UPDATE arena_team SET name = ? WHERE arenaTeamId = ?", CONNECTION_ASYNC);
// Character battleground data
PrepareStatement(CHAR_INS_PLAYER_BGDATA, "INSERT INTO character_battleground_data (guid, instanceId, team, joinX, joinY, joinZ, joinO, joinMapId, taxiStart, taxiEnd, mountSpell) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", CONNECTION_ASYNC);
@@ -377,7 +378,7 @@ void CharacterDatabaseConnection::DoPrepareStatements()
PrepareStatement(CHAR_INS_GROUP, "INSERT INTO groups (guid, leaderGuid, lootMethod, looterGuid, lootThreshold, icon1, icon2, icon3, icon4, icon5, icon6, icon7, icon8, groupType, difficulty, raiddifficulty) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", CONNECTION_ASYNC);
PrepareStatement(CHAR_INS_GROUP_MEMBER, "INSERT INTO group_member (guid, memberGuid, memberFlags, subgroup, roles) VALUES(?, ?, ?, ?, ?)", CONNECTION_ASYNC);
PrepareStatement(CHAR_DEL_GROUP_MEMBER, "DELETE FROM group_member WHERE memberGuid = ?", CONNECTION_ASYNC);
- PrepareStatement(CHAR_DEL_GROUP_INSTANCE_PERM_BINDING, "DELETE FROM group_instance WHERE guid = ? AND (permanent = 1 OR instance IN (SELECT instance FROM character_instance WHERE guid = ?))", CONNECTION_ASYNC);
+ PrepareStatement(CHAR_DEL_GROUP_INSTANCE_PERM_BINDING, "DELETE FROM group_instance WHERE guid = ? AND instance = ?", CONNECTION_ASYNC);
PrepareStatement(CHAR_UPD_GROUP_LEADER, "UPDATE groups SET leaderGuid = ? WHERE guid = ?", CONNECTION_ASYNC);
PrepareStatement(CHAR_UPD_GROUP_TYPE, "UPDATE groups SET groupType = ? WHERE guid = ?", CONNECTION_ASYNC);
PrepareStatement(CHAR_UPD_GROUP_MEMBER_SUBGROUP, "UPDATE group_member SET subgroup = ? WHERE memberGuid = ?", CONNECTION_ASYNC);
@@ -421,8 +422,12 @@ void CharacterDatabaseConnection::DoPrepareStatements()
PrepareStatement(CHAR_SEL_CHAR_DEL_INFO_BY_NAME, "SELECT guid, deleteInfos_Name, deleteInfos_Account, deleteDate FROM characters WHERE deleteDate IS NOT NULL AND deleteInfos_Name LIKE CONCAT('%%', ?, '%%')", CONNECTION_SYNCH);
PrepareStatement(CHAR_SEL_CHAR_DEL_INFO, "SELECT guid, deleteInfos_Name, deleteInfos_Account, deleteDate FROM characters WHERE deleteDate IS NOT NULL", CONNECTION_SYNCH);
PrepareStatement(CHAR_SEL_CHARS_BY_ACCOUNT_ID, "SELECT guid FROM characters WHERE account = ?", CONNECTION_SYNCH);
- PrepareStatement(CHAR_SEL_CHAR_PINFO, "SELECT totaltime, level, money, account, race, class, map, zone FROM characters WHERE guid = ?", CONNECTION_SYNCH);
+ PrepareStatement(CHAR_SEL_CHAR_PINFO, "SELECT totaltime, level, money, account, race, class, map, zone, gender, health, playerFlags FROM characters WHERE guid = ?", CONNECTION_SYNCH);
PrepareStatement(CHAR_SEL_PINFO_BANS, "SELECT unbandate, bandate = unbandate, bannedby, banreason FROM character_banned WHERE guid = ? AND active ORDER BY bandate ASC LIMIT 1", CONNECTION_SYNCH);
+ //0: lowGUID
+ PrepareStatement(CHAR_SEL_PINFO_MAILS, "SELECT SUM(CASE WHEN (checked & 1) THEN 1 ELSE 0 END) AS 'readmail', COUNT(*) AS 'totalmail' FROM mail WHERE `receiver` = ?", CONNECTION_SYNCH);
+ //0: lowGUID
+ PrepareStatement(CHAR_SEL_PINFO_XP, "SELECT a.xp, b.guid FROM characters a LEFT JOIN guild_member b ON a.guid = b.guid WHERE a.guid = ?", CONNECTION_SYNCH);
PrepareStatement(CHAR_SEL_CHAR_HOMEBIND, "SELECT mapId, zoneId, posX, posY, posZ FROM character_homebind WHERE guid = ?", CONNECTION_SYNCH);
PrepareStatement(CHAR_SEL_CHAR_GUID_NAME_BY_ACC, "SELECT guid, name FROM characters WHERE account = ?", CONNECTION_SYNCH);
PrepareStatement(CHAR_SEL_POOL_QUEST_SAVE, "SELECT quest_id FROM pool_quest_save WHERE pool_id = ?", CONNECTION_SYNCH);
diff --git a/src/server/shared/Database/Implementation/CharacterDatabase.h b/src/server/shared/Database/Implementation/CharacterDatabase.h
index 59ac15978b6..f97dd63064d 100644
--- a/src/server/shared/Database/Implementation/CharacterDatabase.h
+++ b/src/server/shared/Database/Implementation/CharacterDatabase.h
@@ -253,6 +253,7 @@ enum CharacterDatabaseStatements
CHAR_UPD_ARENA_TEAM_MEMBER,
CHAR_REP_CHARACTER_ARENA_STATS,
CHAR_SEL_PLAYER_ARENA_TEAMS,
+ CHAR_UPD_ARENA_TEAM_NAME,
CHAR_SEL_PETITION,
CHAR_SEL_PETITION_SIGNATURE,
@@ -365,6 +366,8 @@ enum CharacterDatabaseStatements
CHAR_SEL_CHARS_BY_ACCOUNT_ID,
CHAR_SEL_CHAR_PINFO,
+ CHAR_SEL_PINFO_XP,
+ CHAR_SEL_PINFO_MAILS,
CHAR_SEL_PINFO_BANS,
CHAR_SEL_CHAR_HOMEBIND,
CHAR_SEL_CHAR_GUID_NAME_BY_ACC,
diff --git a/src/server/shared/Database/Implementation/LoginDatabase.cpp b/src/server/shared/Database/Implementation/LoginDatabase.cpp
index 0118f637205..6113dd61d70 100644
--- a/src/server/shared/Database/Implementation/LoginDatabase.cpp
+++ b/src/server/shared/Database/Implementation/LoginDatabase.cpp
@@ -79,7 +79,7 @@ void LoginDatabaseConnection::DoPrepareStatements()
PrepareStatement(LOGIN_GET_USERNAME_BY_ID, "SELECT username FROM account WHERE id = ?", CONNECTION_SYNCH);
PrepareStatement(LOGIN_SEL_CHECK_PASSWORD, "SELECT 1 FROM account WHERE id = ? AND sha_pass_hash = ?", CONNECTION_SYNCH);
PrepareStatement(LOGIN_SEL_CHECK_PASSWORD_BY_NAME, "SELECT 1 FROM account WHERE username = ? AND sha_pass_hash = ?", CONNECTION_SYNCH);
- PrepareStatement(LOGIN_SEL_PINFO, "SELECT a.username, aa.gmlevel, a.email, a.last_ip, DATE_FORMAT(a.last_login, '%Y-%m-%d %T'), a.mutetime, a.mutereason, a.muteby FROM account a LEFT JOIN account_access aa ON (a.id = aa.id AND (aa.RealmID = ? OR aa.RealmID = -1)) WHERE a.id = ?", CONNECTION_SYNCH);
+ PrepareStatement(LOGIN_SEL_PINFO, "SELECT a.username, aa.gmlevel, a.email, a.last_ip, DATE_FORMAT(a.last_login, '%Y-%m-%d %T'), a.mutetime, a.mutereason, a.muteby, a.failed_logins, a.locked, a.OS FROM account a LEFT JOIN account_access aa ON (a.id = aa.id AND (aa.RealmID = ? OR aa.RealmID = -1)) WHERE a.id = ?", CONNECTION_SYNCH);
PrepareStatement(LOGIN_SEL_PINFO_BANS, "SELECT unbandate, bandate = unbandate, bannedby, banreason FROM account_banned WHERE id = ? AND active ORDER BY bandate ASC LIMIT 1", CONNECTION_SYNCH);
PrepareStatement(LOGIN_SEL_GM_ACCOUNTS, "SELECT a.username, aa.gmlevel FROM account a, account_access aa WHERE a.id=aa.id AND aa.gmlevel >= ? AND (aa.realmid = -1 OR aa.realmid = ?)", CONNECTION_SYNCH);
PrepareStatement(LOGIN_SEL_ACCOUNT_INFO, "SELECT a.username, a.last_ip, aa.gmlevel, a.expansion FROM account a LEFT JOIN account_access aa ON (a.id = aa.id) WHERE a.id = ?", CONNECTION_SYNCH);
diff --git a/src/server/shared/Database/Implementation/WorldDatabase.cpp b/src/server/shared/Database/Implementation/WorldDatabase.cpp
index fa7818d2dca..a36023a23b0 100644
--- a/src/server/shared/Database/Implementation/WorldDatabase.cpp
+++ b/src/server/shared/Database/Implementation/WorldDatabase.cpp
@@ -91,4 +91,6 @@ void WorldDatabaseConnection::DoPrepareStatements()
PrepareStatement(WORLD_INS_DISABLES, "INSERT INTO disables (entry, sourceType, flags, comment) VALUES (?, ?, ?, ?)", CONNECTION_ASYNC);
PrepareStatement(WORLD_SEL_DISABLES, "SELECT entry FROM disables WHERE entry = ? AND sourceType = ?", CONNECTION_SYNCH);
PrepareStatement(WORLD_DEL_DISABLES, "DELETE FROM disables WHERE entry = ? AND sourceType = ?", CONNECTION_ASYNC);
+ // 0: uint8
+ PrepareStatement(WORLD_SEL_REQ_XP, "SELECT xp_for_next_level FROM player_xp_for_level WHERE lvl = ?", CONNECTION_SYNCH);
}
diff --git a/src/server/shared/Database/Implementation/WorldDatabase.h b/src/server/shared/Database/Implementation/WorldDatabase.h
index d8c3c69dbba..171627bb83a 100644
--- a/src/server/shared/Database/Implementation/WorldDatabase.h
+++ b/src/server/shared/Database/Implementation/WorldDatabase.h
@@ -112,6 +112,7 @@ enum WorldDatabaseStatements
WORLD_SEL_DISABLES,
WORLD_INS_DISABLES,
WORLD_DEL_DISABLES,
+ WORLD_SEL_REQ_XP,
MAX_WORLDDATABASE_STATEMENTS
};
diff --git a/src/server/shared/Database/MySQLConnection.cpp b/src/server/shared/Database/MySQLConnection.cpp
index 846c8ce72fe..4307cab98f2 100644
--- a/src/server/shared/Database/MySQLConnection.cpp
+++ b/src/server/shared/Database/MySQLConnection.cpp
@@ -84,8 +84,10 @@ bool MySQLConnection::Open()
int port;
char const* unix_socket;
+ //unsigned int timeout = 10;
mysql_options(mysqlInit, MYSQL_SET_CHARSET_NAME, "utf8");
+ //mysql_options(mysqlInit, MYSQL_OPT_READ_TIMEOUT, (char const*)&timeout);
#ifdef _WIN32
if (m_connectionInfo.host == ".") // named pipe use option (Windows)
{
diff --git a/src/server/shared/Database/PreparedStatement.cpp b/src/server/shared/Database/PreparedStatement.cpp
index 06f9ff51132..24097ca41c5 100644
--- a/src/server/shared/Database/PreparedStatement.cpp
+++ b/src/server/shared/Database/PreparedStatement.cpp
@@ -203,6 +203,7 @@ void PreparedStatement::setNull(const uint8 index)
}
MySQLPreparedStatement::MySQLPreparedStatement(MYSQL_STMT* stmt) :
+m_stmt(NULL),
m_Mstmt(stmt),
m_bind(NULL)
{
diff --git a/src/server/shared/Debugging/Errors.cpp b/src/server/shared/Debugging/Errors.cpp
index 877d7554c43..1bfe8c8e949 100644
--- a/src/server/shared/Debugging/Errors.cpp
+++ b/src/server/shared/Debugging/Errors.cpp
@@ -24,7 +24,7 @@
namespace Trinity {
-void Assert(char const *file, int line, char const *function, char const *message)
+void Assert(char const* file, int line, char const* function, char const* message)
{
ACE_Stack_Trace st;
fprintf(stderr, "\n%s:%i in %s ASSERTION FAILED:\n %s\n%s\n",
@@ -33,7 +33,7 @@ void Assert(char const *file, int line, char const *function, char const *messag
exit(1);
}
-void Fatal(char const *file, int line, char const *function, char const *message)
+void Fatal(char const* file, int line, char const* function, char const* message)
{
fprintf(stderr, "\n%s:%i in %s FATAL ERROR:\n %s\n",
file, line, function, message);
@@ -42,7 +42,7 @@ void Fatal(char const *file, int line, char const *function, char const *message
exit(1);
}
-void Error(char const *file, int line, char const *function, char const *message)
+void Error(char const* file, int line, char const* function, char const* message)
{
fprintf(stderr, "\n%s:%i in %s ERROR:\n %s\n",
file, line, function, message);
@@ -50,7 +50,7 @@ void Error(char const *file, int line, char const *function, char const *message
exit(1);
}
-void Warning(char const *file, int line, char const *function, char const *message)
+void Warning(char const* file, int line, char const* function, char const* message)
{
fprintf(stderr, "\n%s:%i in %s WARNING:\n %s\n",
file, line, function, message);
diff --git a/src/server/shared/Debugging/Errors.h b/src/server/shared/Debugging/Errors.h
index fa526a4d094..2821ca504e7 100644
--- a/src/server/shared/Debugging/Errors.h
+++ b/src/server/shared/Debugging/Errors.h
@@ -24,20 +24,20 @@
namespace Trinity
{
- DECLSPEC_NORETURN void Assert(char const *file, int line, char const *function, char const *message) ATTR_NORETURN;
+ DECLSPEC_NORETURN void Assert(char const* file, int line, char const* function, char const* message) ATTR_NORETURN;
- DECLSPEC_NORETURN void Fatal(char const *file, int line, char const *function, char const *message) ATTR_NORETURN;
+ DECLSPEC_NORETURN void Fatal(char const* file, int line, char const* function, char const* message) ATTR_NORETURN;
- DECLSPEC_NORETURN void Error(char const *file, int line, char const *function, char const *message) ATTR_NORETURN;
+ DECLSPEC_NORETURN void Error(char const* file, int line, char const* function, char const* message) ATTR_NORETURN;
- void Warning(char const *file, int line, char const *function, char const *message);
+ void Warning(char const* file, int line, char const* function, char const* message);
} // namespace Trinity
-#define WPAssert(cond) do { if (!(cond)) Trinity::Assert(__FILE__, __LINE__, __FUNCTION__, #cond); } while(0)
-#define WPFatal(cond, msg) do { if (!(cond)) Trinity::Fatal(__FILE__, __LINE__, __FUNCTION__, (msg)); } while(0)
-#define WPError(cond, msg) do { if (!(cond)) Trinity::Error(__FILE__, __LINE__, __FUNCTION__, (msg)); } while(0)
-#define WPWarning(cond, msg) do { if (!(cond)) Trinity::Warning(__FILE__, __LINE__, __FUNCTION__, (msg)); } while(0)
+#define WPAssert(cond) do { if (!(cond)) Trinity::Assert(__FILE__, __LINE__, __FUNCTION__, #cond); } while (0)
+#define WPFatal(cond, msg) do { if (!(cond)) Trinity::Fatal(__FILE__, __LINE__, __FUNCTION__, (msg)); } while (0)
+#define WPError(cond, msg) do { if (!(cond)) Trinity::Error(__FILE__, __LINE__, __FUNCTION__, (msg)); } while (0)
+#define WPWarning(cond, msg) do { if (!(cond)) Trinity::Warning(__FILE__, __LINE__, __FUNCTION__, (msg)); } while (0)
#define ASSERT WPAssert
diff --git a/src/server/shared/Define.h b/src/server/shared/Define.h
index 682167a96e3..d18f160aeaf 100644
--- a/src/server/shared/Define.h
+++ b/src/server/shared/Define.h
@@ -70,6 +70,14 @@
# define ATTR_DEPRECATED
#endif //COMPILER == COMPILER_GNU
+#if COMPILER_HAS_CPP11_SUPPORT
+# define OVERRIDE override
+# define FINAL final
+#else
+# define OVERRIDE
+# define FINAL
+#endif //COMPILER_HAS_CPP11_SUPPORT
+
#define UI64FMTD ACE_UINT64_FORMAT_SPECIFIER
#define UI64LIT(N) ACE_UINT64_LITERAL(N)
diff --git a/src/server/shared/Dynamic/LinkedReference/Reference.h b/src/server/shared/Dynamic/LinkedReference/Reference.h
index 4c3630b175d..6be75c296d8 100644
--- a/src/server/shared/Dynamic/LinkedReference/Reference.h
+++ b/src/server/shared/Dynamic/LinkedReference/Reference.h
@@ -93,7 +93,7 @@ template <class TO, class FROM> class Reference : public LinkedListElement
TO* operator ->() const { return iRefTo; }
TO* getTarget() const { return iRefTo; }
- FROM* getSource() const { return iRefFrom; }
+ FROM* GetSource() const { return iRefFrom; }
};
//=====================================================
diff --git a/src/server/shared/Logging/Log.cpp b/src/server/shared/Logging/Log.cpp
index 312a3463aef..be7aab9cf5e 100644
--- a/src/server/shared/Logging/Log.cpp
+++ b/src/server/shared/Logging/Log.cpp
@@ -48,13 +48,13 @@ uint8 Log::NextAppenderId()
int32 GetConfigIntDefault(std::string base, const char* name, int32 value)
{
base.append(name);
- return ConfigMgr::GetIntDefault(base.c_str(), value);
+ return sConfigMgr->GetIntDefault(base.c_str(), value);
}
std::string GetConfigStringDefault(std::string base, const char* name, const char* value)
{
base.append(name);
- return ConfigMgr::GetStringDefault(base.c_str(), value);
+ return sConfigMgr->GetStringDefault(base.c_str(), value);
}
// Returns default logger if the requested logger is not found
@@ -83,7 +83,7 @@ void Log::CreateAppenderFromConfig(const char* name)
// if type = Console. optional1 = Color
std::string options = "Appender.";
options.append(name);
- options = ConfigMgr::GetStringDefault(options.c_str(), "");
+ options = sConfigMgr->GetStringDefault(options.c_str(), "");
Tokenizer tokens(options, ',');
Tokenizer::const_iterator iter = tokens.begin();
uint8 size = tokens.size();
@@ -173,7 +173,7 @@ void Log::CreateLoggerFromConfig(const char* name)
std::string options = "Logger.";
options.append(name);
- options = ConfigMgr::GetStringDefault(options.c_str(), "");
+ options = sConfigMgr->GetStringDefault(options.c_str(), "");
if (options.empty())
{
@@ -235,7 +235,7 @@ void Log::CreateLoggerFromConfig(const char* name)
void Log::ReadAppendersFromConfig()
{
- std::istringstream ss(ConfigMgr::GetStringDefault("Appenders", ""));
+ std::istringstream ss(sConfigMgr->GetStringDefault("Appenders", ""));
std::string name;
do
@@ -249,7 +249,7 @@ void Log::ReadAppendersFromConfig()
void Log::ReadLoggersFromConfig()
{
- std::istringstream ss(ConfigMgr::GetStringDefault("Loggers", ""));
+ std::istringstream ss(sConfigMgr->GetStringDefault("Loggers", ""));
std::string name;
do
@@ -457,11 +457,11 @@ void Log::LoadFromConfig()
{
Close();
- if (ConfigMgr::GetBoolDefault("Log.Async.Enable", false))
+ if (sConfigMgr->GetBoolDefault("Log.Async.Enable", false))
worker = new LogWorker();
AppenderId = 0;
- m_logsDir = ConfigMgr::GetStringDefault("LogsDir", "");
+ m_logsDir = sConfigMgr->GetStringDefault("LogsDir", "");
if (!m_logsDir.empty())
if ((m_logsDir.at(m_logsDir.length() - 1) != '/') && (m_logsDir.at(m_logsDir.length() - 1) != '\\'))
m_logsDir.push_back('/');
diff --git a/src/server/shared/Packets/ByteBuffer.h b/src/server/shared/Packets/ByteBuffer.h
index 302a03dee47..7777842af17 100644
--- a/src/server/shared/Packets/ByteBuffer.h
+++ b/src/server/shared/Packets/ByteBuffer.h
@@ -37,7 +37,7 @@ class ByteBufferException : public std::exception
public:
~ByteBufferException() throw() { }
- char const * what() const throw() { return msg_.c_str(); }
+ char const* what() const throw() { return msg_.c_str(); }
protected:
std::string & message() throw() { return msg_; }
diff --git a/src/server/shared/SystemConfig.h b/src/server/shared/SystemConfig.h
index a6076273522..c3e54763ff0 100644
--- a/src/server/shared/SystemConfig.h
+++ b/src/server/shared/SystemConfig.h
@@ -34,7 +34,7 @@
#if PLATFORM == PLATFORM_WINDOWS
# ifdef _WIN64
-# define _FULLVERSION _PACKAGENAME " rev. " VER_PRODUCTVERSION_STR " (Win64, "_BUILD_DIRECTIVE ")"
+# define _FULLVERSION _PACKAGENAME " rev. " VER_PRODUCTVERSION_STR " (Win64, " _BUILD_DIRECTIVE ")"
# else
# define _FULLVERSION _PACKAGENAME " rev. " VER_PRODUCTVERSION_STR " (Win32, " _BUILD_DIRECTIVE ")"
# endif
diff --git a/src/server/shared/Threading/Callback.h b/src/server/shared/Threading/Callback.h
index f6bc1581857..e0215f5b3d3 100644
--- a/src/server/shared/Threading/Callback.h
+++ b/src/server/shared/Threading/Callback.h
@@ -35,7 +35,7 @@ template <typename Result, typename ParamType, bool chain = false>
class QueryCallback
{
public:
- QueryCallback() : _stage(chain ? 0 : CALLBACK_STAGE_INVALID) {}
+ QueryCallback() : _param(), _stage(chain ? 0 : CALLBACK_STAGE_INVALID) {}
//! The parameter of this function should be a resultset returned from either .AsyncQuery or .AsyncPQuery
void SetFutureResult(ACE_Future<Result> value)
diff --git a/src/server/worldserver/CMakeLists.txt b/src/server/worldserver/CMakeLists.txt
index 933d545c899..e48197aeb2c 100644
--- a/src/server/worldserver/CMakeLists.txt
+++ b/src/server/worldserver/CMakeLists.txt
@@ -29,18 +29,16 @@ set(worldserver_SRCS
)
if( WIN32 )
+ set(worldserver_SRCS
+ ${worldserver_SRCS}
+ ${sources_windows_Debugging}
+ )
if ( MSVC )
set(worldserver_SRCS
${worldserver_SRCS}
- ${sources_Debugging}
worldserver.rc
)
- else ( )
- set(worldserver_SRCS
- ${worldserver_SRCS}
- ${sources_Debugging}
- )
- endif ()
+ endif()
endif()
include_directories(
@@ -179,6 +177,7 @@ target_link_libraries(worldserver
${MYSQL_LIBRARY}
${OPENSSL_LIBRARIES}
${ZLIB_LIBRARIES}
+ ${CMAKE_THREAD_LIBS_INIT}
)
if( WIN32 )
diff --git a/src/server/worldserver/CommandLine/CliRunnable.cpp b/src/server/worldserver/CommandLine/CliRunnable.cpp
index 9cdfe0ad5a5..e136269e2a0 100644
--- a/src/server/worldserver/CommandLine/CliRunnable.cpp
+++ b/src/server/worldserver/CommandLine/CliRunnable.cpp
@@ -39,7 +39,7 @@
#include <readline/readline.h>
#include <readline/history.h>
-char * command_finder(const char* text, int state)
+char* command_finder(const char* text, int state)
{
static int idx, len;
const char* ret;
@@ -70,19 +70,18 @@ char * command_finder(const char* text, int state)
return ((char*)NULL);
}
-char ** cli_completion(const char * text, int start, int /*end*/)
+char** cli_completion(const char* text, int start, int /*end*/)
{
- char ** matches;
- matches = (char**)NULL;
+ char** matches = NULL;
- if (start == 0)
- matches = rl_completion_matches((char*)text, &command_finder);
- else
+ if (start)
rl_bind_key('\t', rl_abort);
- return (matches);
+ else
+ matches = rl_completion_matches((char*)text, &command_finder);
+ return matches;
}
-int cli_hook_func(void)
+int cli_hook_func()
{
if (World::IsStopped())
rl_done = 1;
@@ -141,7 +140,7 @@ void CliRunnable::run()
rl_event_hook = cli_hook_func;
#endif
- if (ConfigMgr::GetBoolDefault("BeepAtStart", true))
+ if (sConfigMgr->GetBoolDefault("BeepAtStart", true))
printf("\a"); // \a = Alert
// print this here the first time
diff --git a/src/server/worldserver/CommandLine/CliRunnable.h b/src/server/worldserver/CommandLine/CliRunnable.h
index bd14413ef2e..6e608f60881 100644
--- a/src/server/worldserver/CommandLine/CliRunnable.h
+++ b/src/server/worldserver/CommandLine/CliRunnable.h
@@ -27,7 +27,9 @@
class CliRunnable : public ACE_Based::Runnable
{
public:
- void run();
+ void run() OVERRIDE;
};
+
#endif
+
/// @}
diff --git a/src/server/worldserver/Main.cpp b/src/server/worldserver/Main.cpp
index f9c672b4945..61aaf5f2ee9 100644
--- a/src/server/worldserver/Main.cpp
+++ b/src/server/worldserver/Main.cpp
@@ -33,7 +33,7 @@
#ifndef _TRINITY_CORE_CONFIG
# define _TRINITY_CORE_CONFIG "worldserver.conf"
-#endif //_TRINITY_CORE_CONFIG
+#endif
#ifdef _WIN32
#include "ServiceWin32.h"
@@ -56,7 +56,7 @@ LoginDatabaseWorkerPool LoginDatabase; ///< Accessor to the
uint32 realmID; ///< Id of the realm
/// Print out the usage string for this program on the console.
-void usage(const char *prog)
+void usage(const char* prog)
{
printf("Usage:\n");
printf(" %s [<options>]\n", prog);
@@ -70,14 +70,14 @@ void usage(const char *prog)
}
/// Launch the Trinity server
-extern int main(int argc, char **argv)
+extern int main(int argc, char** argv)
{
///- Command line parsing to get the configuration file name
char const* cfg_file = _TRINITY_CORE_CONFIG;
int c = 1;
- while ( c < argc )
+ while (c < argc)
{
- if (strcmp(argv[c], "-c") == 0)
+ if (!strcmp(argv[c], "-c"))
{
if (++c >= argc)
{
@@ -90,10 +90,7 @@ extern int main(int argc, char **argv)
}
#ifdef _WIN32
- ////////////
- //Services//
- ////////////
- if (strcmp(argv[c], "-s") == 0)
+ if (strcmp(argv[c], "-s") == 0) // Services
{
if (++c >= argc)
{
@@ -101,6 +98,7 @@ extern int main(int argc, char **argv)
usage(argv[0]);
return 1;
}
+
if (strcmp(argv[c], "install") == 0)
{
if (WinServiceInstall())
@@ -120,16 +118,14 @@ extern int main(int argc, char **argv)
return 1;
}
}
+
if (strcmp(argv[c], "--service") == 0)
- {
WinServiceRun();
- }
- ////
#endif
++c;
}
- if (!ConfigMgr::Load(cfg_file))
+ if (!sConfigMgr->LoadInitial(cfg_file))
{
printf("Invalid or missing configuration file : %s\n", cfg_file);
printf("Verify that the file exists and has \'[worldserver]' written in the top of the file!\n");
diff --git a/src/server/worldserver/Master.cpp b/src/server/worldserver/Master.cpp
index 88165814d84..6fd57179140 100644
--- a/src/server/worldserver/Master.cpp
+++ b/src/server/worldserver/Master.cpp
@@ -50,22 +50,28 @@
extern int m_ServiceStatus;
#endif
+#ifdef __linux__
+#include <sched.h>
+#include <sys/resource.h>
+#define PROCESS_HIGH_PRIORITY -15 // [-20, 19], default is 0
+#endif
+
/// Handle worldservers's termination signals
class WorldServerSignalHandler : public Trinity::SignalHandler
{
public:
- virtual void HandleSignal(int SigNum)
+ virtual void HandleSignal(int sigNum)
{
- switch (SigNum)
+ switch (sigNum)
{
case SIGINT:
World::StopNow(RESTART_EXIT_CODE);
break;
case SIGTERM:
- #ifdef _WIN32
+#ifdef _WIN32
case SIGBREAK:
if (m_ServiceStatus != 1)
- #endif /* _WIN32 */
+#endif
World::StopNow(SHUTDOWN_EXIT_CODE);
break;
}
@@ -74,33 +80,35 @@ class WorldServerSignalHandler : public Trinity::SignalHandler
class FreezeDetectorRunnable : public ACE_Based::Runnable
{
+private:
+ uint32 _loops;
+ uint32 _lastChange;
+ uint32 _delaytime;
public:
FreezeDetectorRunnable() { _delaytime = 0; }
- uint32 m_loops, m_lastchange;
- uint32 w_loops, w_lastchange;
- uint32 _delaytime;
+
void SetDelayTime(uint32 t) { _delaytime = t; }
- void run(void)
+
+ void run() OVERRIDE
{
if (!_delaytime)
return;
+
TC_LOG_INFO(LOG_FILTER_WORLDSERVER, "Starting up anti-freeze thread (%u seconds max stuck time)...", _delaytime/1000);
- m_loops = 0;
- w_loops = 0;
- m_lastchange = 0;
- w_lastchange = 0;
+ _loops = 0;
+ _lastChange = 0;
while (!World::IsStopped())
{
ACE_Based::Thread::Sleep(1000);
uint32 curtime = getMSTime();
// normal work
- if (w_loops != World::m_worldLoopCounter)
+ if (_loops != World::m_worldLoopCounter)
{
- w_lastchange = curtime;
- w_loops = World::m_worldLoopCounter;
+ _lastChange = curtime;
+ _loops = World::m_worldLoopCounter;
}
// possible freeze
- else if (getMSTimeDiff(w_lastchange, curtime) > _delaytime)
+ else if (getMSTimeDiff(_lastChange, curtime) > _delaytime)
{
TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "World Thread hangs, kicking out server!");
ASSERT(false);
@@ -110,14 +118,6 @@ public:
}
};
-Master::Master()
-{
-}
-
-Master::~Master()
-{
-}
-
/// Main function
int Master::Run()
{
@@ -138,17 +138,16 @@ int Master::Run()
TC_LOG_INFO(LOG_FILTER_WORLDSERVER, "http://TrinityCore.org \\/__/\n");
/// worldserver PID file creation
- std::string pidfile = ConfigMgr::GetStringDefault("PidFile", "");
- if (!pidfile.empty())
+ std::string pidFile = sConfigMgr->GetStringDefault("PidFile", "");
+ if (!pidFile.empty())
{
- uint32 pid = CreatePIDFile(pidfile);
- if (!pid)
+ if (uint32 pid = CreatePIDFile(pidFile))
+ TC_LOG_INFO(LOG_FILTER_WORLDSERVER, "Daemon PID: %u\n", pid);
+ else
{
- TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Cannot create PID file %s.\n", pidfile.c_str());
+ TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Cannot create PID file %s.\n", pidFile.c_str());
return 1;
}
-
- TC_LOG_INFO(LOG_FILTER_WORLDSERVER, "Daemon PID: %u\n", pid);
}
///- Start the databases
@@ -162,70 +161,64 @@ int Master::Run()
sWorld->SetInitialWorldSettings();
///- Initialize the signal handlers
- WorldServerSignalHandler SignalINT, SignalTERM;
+ WorldServerSignalHandler signalINT, signalTERM;
#ifdef _WIN32
- WorldServerSignalHandler SignalBREAK;
+ WorldServerSignalHandler signalBREAK;
#endif /* _WIN32 */
///- Register worldserver's signal handlers
- ACE_Sig_Handler Handler;
- Handler.register_handler(SIGINT, &SignalINT);
- Handler.register_handler(SIGTERM, &SignalTERM);
- #ifdef _WIN32
- Handler.register_handler(SIGBREAK, &SignalBREAK);
- #endif /* _WIN32 */
+ ACE_Sig_Handler handle;
+ handle.register_handler(SIGINT, &signalINT);
+ handle.register_handler(SIGTERM, &signalTERM);
+#ifdef _WIN32
+ handle.register_handler(SIGBREAK, &signalBREAK);
+#endif
///- Launch WorldRunnable thread
- ACE_Based::Thread world_thread(new WorldRunnable);
- world_thread.setPriority(ACE_Based::Highest);
+ ACE_Based::Thread worldThread(new WorldRunnable);
+ worldThread.setPriority(ACE_Based::Highest);
ACE_Based::Thread* cliThread = NULL;
#ifdef _WIN32
- if (ConfigMgr::GetBoolDefault("Console.Enable", true) && (m_ServiceStatus == -1)/* need disable console in service mode*/)
+ if (sConfigMgr->GetBoolDefault("Console.Enable", true) && (m_ServiceStatus == -1)/* need disable console in service mode*/)
#else
- if (ConfigMgr::GetBoolDefault("Console.Enable", true))
+ if (sConfigMgr->GetBoolDefault("Console.Enable", true))
#endif
{
///- Launch CliRunnable thread
cliThread = new ACE_Based::Thread(new CliRunnable);
}
- ACE_Based::Thread rar_thread(new RARunnable);
+ ACE_Based::Thread rarThread(new RARunnable);
- ///- Handle affinity for multiple processors and process priority on Windows
- #ifdef _WIN32
+ ///- Handle affinity for multiple processors and process priority
+ uint32 affinity = sConfigMgr->GetIntDefault("UseProcessors", 0);
+ bool highPriority = sConfigMgr->GetBoolDefault("ProcessPriority", false);
+
+#ifdef _WIN32 // Windows
{
HANDLE hProcess = GetCurrentProcess();
- uint32 Aff = ConfigMgr::GetIntDefault("UseProcessors", 0);
- if (Aff > 0)
+ if (affinity > 0)
{
ULONG_PTR appAff;
ULONG_PTR sysAff;
if (GetProcessAffinityMask(hProcess, &appAff, &sysAff))
{
- ULONG_PTR curAff = Aff & appAff; // remove non accessible processors
+ ULONG_PTR currentAffinity = affinity & appAff; // remove non accessible processors
- if (!curAff)
- {
- TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Processors marked in UseProcessors bitmask (hex) %x are not accessible for the worldserver. Accessible processors bitmask (hex): %x", Aff, appAff);
- }
+ if (!currentAffinity)
+ TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Processors marked in UseProcessors bitmask (hex) %x are not accessible for the worldserver. Accessible processors bitmask (hex): %x", affinity, appAff);
+ else if (SetProcessAffinityMask(hProcess, currentAffinity))
+ TC_LOG_INFO(LOG_FILTER_WORLDSERVER, "Using processors (bitmask, hex): %x", currentAffinity);
else
- {
- if (SetProcessAffinityMask(hProcess, curAff))
- TC_LOG_INFO(LOG_FILTER_WORLDSERVER, "Using processors (bitmask, hex): %x", curAff);
- else
- TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Can't set used processors (hex): %x", curAff);
- }
+ TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Can't set used processors (hex): %x", currentAffinity);
}
}
- bool Prio = ConfigMgr::GetBoolDefault("ProcessPriority", false);
-
- //if (Prio && (m_ServiceStatus == -1) /* need set to default process priority class in service mode*/)
- if (Prio)
+ if (highPriority)
{
if (SetPriorityClass(hProcess, HIGH_PRIORITY_CLASS))
TC_LOG_INFO(LOG_FILTER_WORLDSERVER, "worldserver process priority class set to HIGH");
@@ -233,31 +226,61 @@ int Master::Run()
TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Can't set worldserver process priority class.");
}
}
- #endif
+#elif __linux__ // Linux
+
+ if (affinity > 0)
+ {
+ cpu_set_t mask;
+ CPU_ZERO(&mask);
+
+ for (unsigned int i = 0; i < sizeof(affinity) * 8; ++i)
+ if (affinity & (1 << i))
+ CPU_SET(i, &mask);
+
+ if (sched_setaffinity(0, sizeof(mask), &mask))
+ TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Can't set used processors (hex): %x, error: %s", affinity, strerror(errno));
+ else
+ {
+ CPU_ZERO(&mask);
+ sched_getaffinity(0, sizeof(mask), &mask);
+ TC_LOG_INFO(LOG_FILTER_WORLDSERVER, "Using processors (bitmask, hex): %x", *(uint32*)(&mask));
+ }
+ }
+
+ if (highPriority)
+ {
+ if (setpriority(PRIO_PROCESS, 0, PROCESS_HIGH_PRIORITY))
+ TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Can't set worldserver process priority class, error: %s", strerror(errno));
+ else
+ TC_LOG_INFO(LOG_FILTER_WORLDSERVER, "worldserver process priority class set to %i", getpriority(PRIO_PROCESS, 0));
+ }
+
+#endif
+
//Start soap serving thread
- ACE_Based::Thread* soap_thread = NULL;
+ ACE_Based::Thread* soapThread = NULL;
- if (ConfigMgr::GetBoolDefault("SOAP.Enabled", false))
+ if (sConfigMgr->GetBoolDefault("SOAP.Enabled", false))
{
TCSoapRunnable* runnable = new TCSoapRunnable();
- runnable->setListenArguments(ConfigMgr::GetStringDefault("SOAP.IP", "127.0.0.1"), uint16(ConfigMgr::GetIntDefault("SOAP.Port", 7878)));
- soap_thread = new ACE_Based::Thread(runnable);
+ runnable->SetListenArguments(sConfigMgr->GetStringDefault("SOAP.IP", "127.0.0.1"), uint16(sConfigMgr->GetIntDefault("SOAP.Port", 7878)));
+ soapThread = new ACE_Based::Thread(runnable);
}
///- Start up freeze catcher thread
- if (uint32 freeze_delay = ConfigMgr::GetIntDefault("MaxCoreStuckTime", 0))
+ if (uint32 freezeDelay = sConfigMgr->GetIntDefault("MaxCoreStuckTime", 0))
{
FreezeDetectorRunnable* fdr = new FreezeDetectorRunnable();
- fdr->SetDelayTime(freeze_delay * 1000);
- ACE_Based::Thread freeze_thread(fdr);
- freeze_thread.setPriority(ACE_Based::Highest);
+ fdr->SetDelayTime(freezeDelay * 1000);
+ ACE_Based::Thread freezeThread(fdr);
+ freezeThread.setPriority(ACE_Based::Highest);
}
///- Launch the world listener socket
- uint16 wsport = uint16(sWorld->getIntConfig(CONFIG_PORT_WORLD));
- std::string bind_ip = ConfigMgr::GetStringDefault("BindIP", "0.0.0.0");
+ uint16 worldPort = uint16(sWorld->getIntConfig(CONFIG_PORT_WORLD));
+ std::string bindIp = sConfigMgr->GetStringDefault("BindIP", "0.0.0.0");
- if (sWorldSocketMgr->StartNetwork(wsport, bind_ip.c_str()) == -1)
+ if (sWorldSocketMgr->StartNetwork(worldPort, bindIp.c_str()) == -1)
{
TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Failed to start network");
World::StopNow(ERROR_EXIT_CODE);
@@ -271,14 +294,14 @@ int Master::Run()
// when the main thread closes the singletons get unloaded
// since worldrunnable uses them, it will crash if unloaded after master
- world_thread.wait();
- rar_thread.wait();
+ worldThread.wait();
+ rarThread.wait();
- if (soap_thread)
+ if (soapThread)
{
- soap_thread->wait();
- soap_thread->destroy();
- delete soap_thread;
+ soapThread->wait();
+ soapThread->destroy();
+ delete soapThread;
}
// set server offline
@@ -298,7 +321,7 @@ int Master::Run()
// this only way to terminate CLI thread exist at Win32 (alt. way exist only in Windows Vista API)
//_exit(1);
// send keyboard input to safely unblock the CLI thread
- INPUT_RECORD b[5];
+ INPUT_RECORD b[4];
HANDLE hStdIn = GetStdHandle(STD_INPUT_HANDLE);
b[0].EventType = KEY_EVENT;
b[0].Event.KeyEvent.bKeyDown = TRUE;
@@ -354,83 +377,83 @@ bool Master::_StartDB()
{
MySQL::Library_Init();
- std::string dbstring;
- uint8 async_threads, synch_threads;
+ std::string dbString;
+ uint8 asyncThreads, synchThreads;
- dbstring = ConfigMgr::GetStringDefault("WorldDatabaseInfo", "");
- if (dbstring.empty())
+ dbString = sConfigMgr->GetStringDefault("WorldDatabaseInfo", "");
+ if (dbString.empty())
{
TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "World database not specified in configuration file");
return false;
}
- async_threads = uint8(ConfigMgr::GetIntDefault("WorldDatabase.WorkerThreads", 1));
- if (async_threads < 1 || async_threads > 32)
+ asyncThreads = uint8(sConfigMgr->GetIntDefault("WorldDatabase.WorkerThreads", 1));
+ if (asyncThreads < 1 || asyncThreads > 32)
{
TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "World database: invalid number of worker threads specified. "
"Please pick a value between 1 and 32.");
return false;
}
- synch_threads = uint8(ConfigMgr::GetIntDefault("WorldDatabase.SynchThreads", 1));
- ///- Initialise the world database
- if (!WorldDatabase.Open(dbstring, async_threads, synch_threads))
+ synchThreads = uint8(sConfigMgr->GetIntDefault("WorldDatabase.SynchThreads", 1));
+ ///- Initialize the world database
+ if (!WorldDatabase.Open(dbString, asyncThreads, synchThreads))
{
- TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Cannot connect to world database %s", dbstring.c_str());
+ TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Cannot connect to world database %s", dbString.c_str());
return false;
}
///- Get character database info from configuration file
- dbstring = ConfigMgr::GetStringDefault("CharacterDatabaseInfo", "");
- if (dbstring.empty())
+ dbString = sConfigMgr->GetStringDefault("CharacterDatabaseInfo", "");
+ if (dbString.empty())
{
TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Character database not specified in configuration file");
return false;
}
- async_threads = uint8(ConfigMgr::GetIntDefault("CharacterDatabase.WorkerThreads", 1));
- if (async_threads < 1 || async_threads > 32)
+ asyncThreads = uint8(sConfigMgr->GetIntDefault("CharacterDatabase.WorkerThreads", 1));
+ if (asyncThreads < 1 || asyncThreads > 32)
{
TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Character database: invalid number of worker threads specified. "
"Please pick a value between 1 and 32.");
return false;
}
- synch_threads = uint8(ConfigMgr::GetIntDefault("CharacterDatabase.SynchThreads", 2));
+ synchThreads = uint8(sConfigMgr->GetIntDefault("CharacterDatabase.SynchThreads", 2));
- ///- Initialise the Character database
- if (!CharacterDatabase.Open(dbstring, async_threads, synch_threads))
+ ///- Initialize the Character database
+ if (!CharacterDatabase.Open(dbString, asyncThreads, synchThreads))
{
- TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Cannot connect to Character database %s", dbstring.c_str());
+ TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Cannot connect to Character database %s", dbString.c_str());
return false;
}
///- Get login database info from configuration file
- dbstring = ConfigMgr::GetStringDefault("LoginDatabaseInfo", "");
- if (dbstring.empty())
+ dbString = sConfigMgr->GetStringDefault("LoginDatabaseInfo", "");
+ if (dbString.empty())
{
TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Login database not specified in configuration file");
return false;
}
- async_threads = uint8(ConfigMgr::GetIntDefault("LoginDatabase.WorkerThreads", 1));
- if (async_threads < 1 || async_threads > 32)
+ asyncThreads = uint8(sConfigMgr->GetIntDefault("LoginDatabase.WorkerThreads", 1));
+ if (asyncThreads < 1 || asyncThreads > 32)
{
TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Login database: invalid number of worker threads specified. "
"Please pick a value between 1 and 32.");
return false;
}
- synch_threads = uint8(ConfigMgr::GetIntDefault("LoginDatabase.SynchThreads", 1));
+ synchThreads = uint8(sConfigMgr->GetIntDefault("LoginDatabase.SynchThreads", 1));
///- Initialise the login database
- if (!LoginDatabase.Open(dbstring, async_threads, synch_threads))
+ if (!LoginDatabase.Open(dbString, asyncThreads, synchThreads))
{
- TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Cannot connect to login database %s", dbstring.c_str());
+ TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Cannot connect to login database %s", dbString.c_str());
return false;
}
///- Get the realm Id from the configuration file
- realmID = ConfigMgr::GetIntDefault("RealmID", 0);
+ realmID = sConfigMgr->GetIntDefault("RealmID", 0);
if (!realmID)
{
TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Realm ID not defined in configuration file");
diff --git a/src/server/worldserver/Master.h b/src/server/worldserver/Master.h
index 4f07c24e8f8..93b2387feec 100644
--- a/src/server/worldserver/Master.h
+++ b/src/server/worldserver/Master.h
@@ -29,8 +29,6 @@
class Master
{
public:
- Master();
- ~Master();
int Run();
private:
@@ -41,5 +39,7 @@ class Master
};
#define sMaster ACE_Singleton<Master, ACE_Null_Mutex>::instance()
+
#endif
+
/// @}
diff --git a/src/server/worldserver/RemoteAccess/RARunnable.cpp b/src/server/worldserver/RemoteAccess/RARunnable.cpp
index edb7e048aa3..1493df7aa2f 100644
--- a/src/server/worldserver/RemoteAccess/RARunnable.cpp
+++ b/src/server/worldserver/RemoteAccess/RARunnable.cpp
@@ -56,27 +56,25 @@ RARunnable::~RARunnable()
void RARunnable::run()
{
- if (!ConfigMgr::GetBoolDefault("Ra.Enable", false))
+ if (!sConfigMgr->GetBoolDefault("Ra.Enable", false))
return;
ACE_Acceptor<RASocket, ACE_SOCK_ACCEPTOR> acceptor;
- uint16 raport = uint16(ConfigMgr::GetIntDefault("Ra.Port", 3443));
- std::string stringip = ConfigMgr::GetStringDefault("Ra.IP", "0.0.0.0");
- ACE_INET_Addr listen_addr(raport, stringip.c_str());
+ uint16 raPort = uint16(sConfigMgr->GetIntDefault("Ra.Port", 3443));
+ std::string stringIp = sConfigMgr->GetStringDefault("Ra.IP", "0.0.0.0");
+ ACE_INET_Addr listenAddress(raPort, stringIp.c_str());
- if (acceptor.open(listen_addr, m_Reactor) == -1)
+ if (acceptor.open(listenAddress, m_Reactor) == -1)
{
- TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Trinity RA can not bind to port %d on %s", raport, stringip.c_str());
+ TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Trinity RA can not bind to port %d on %s", raPort, stringIp.c_str());
return;
}
- TC_LOG_INFO(LOG_FILTER_WORLDSERVER, "Starting Trinity RA on port %d on %s", raport, stringip.c_str());
+ TC_LOG_INFO(LOG_FILTER_WORLDSERVER, "Starting Trinity RA on port %d on %s", raPort, stringIp.c_str());
while (!World::IsStopped())
{
- // don't be too smart to move this outside the loop
- // the run_reactor_event_loop will modify interval
ACE_Time_Value interval(0, 100000);
if (m_Reactor->run_reactor_event_loop(interval) == -1)
break;
diff --git a/src/server/worldserver/RemoteAccess/RARunnable.h b/src/server/worldserver/RemoteAccess/RARunnable.h
index 6597e7c742f..a03e16e2154 100644
--- a/src/server/worldserver/RemoteAccess/RARunnable.h
+++ b/src/server/worldserver/RemoteAccess/RARunnable.h
@@ -31,7 +31,7 @@ class RARunnable : public ACE_Based::Runnable
public:
RARunnable();
virtual ~RARunnable();
- void run();
+ void run() OVERRIDE;
private:
ACE_Reactor* m_Reactor;
@@ -39,4 +39,5 @@ private:
};
#endif /* _TRINITY_RARUNNABLE_H_ */
+
/// @}
diff --git a/src/server/worldserver/RemoteAccess/RASocket.cpp b/src/server/worldserver/RemoteAccess/RASocket.cpp
index fa5fdfd3ca0..a4d402286ed 100644
--- a/src/server/worldserver/RemoteAccess/RASocket.cpp
+++ b/src/server/worldserver/RemoteAccess/RASocket.cpp
@@ -32,30 +32,26 @@
RASocket::RASocket()
{
- _minLevel = uint8(ConfigMgr::GetIntDefault("RA.MinLevel", 3));
+ _minLevel = uint8(sConfigMgr->GetIntDefault("RA.MinLevel", 3));
_commandExecuting = false;
}
-RASocket::~RASocket()
-{
-}
-
int RASocket::open(void *)
{
- ACE_INET_Addr remote_addr;
+ ACE_INET_Addr remoteAddress;
- if (peer().get_remote_addr(remote_addr) == -1)
+ if (peer().get_remote_addr(remoteAddress) == -1)
{
TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "RASocket::open: peer().get_remote_addr error is %s", ACE_OS::strerror(errno));
return -1;
}
- TC_LOG_INFO(LOG_FILTER_REMOTECOMMAND, "Incoming connection from %s", remote_addr.get_host_addr());
+ TC_LOG_INFO(LOG_FILTER_REMOTECOMMAND, "Incoming connection from %s", remoteAddress.get_host_addr());
return activate();
}
-int RASocket::handle_close(ACE_HANDLE, ACE_Reactor_Mask)
+int RASocket::handle_close(ACE_HANDLE /*handle*/, ACE_Reactor_Mask /*mask*/)
{
TC_LOG_INFO(LOG_FILTER_REMOTECOMMAND, "Closing connection");
peer().close_reader();
@@ -89,9 +85,7 @@ int RASocket::recv_line(ACE_Message_Block& buffer)
ssize_t n = peer().recv(&byte, sizeof(byte));
if (n < 0)
- {
return -1;
- }
if (n == 0)
{
@@ -110,8 +104,8 @@ int RASocket::recv_line(ACE_Message_Block& buffer)
return -1;
}
- const char null_term = '\0';
- if (buffer.copy(&null_term, sizeof(null_term)) == -1)
+ const char nullTerm = '\0';
+ if (buffer.copy(&nullTerm, sizeof(nullTerm)) == -1)
return -1;
return 0;
diff --git a/src/server/worldserver/RemoteAccess/RASocket.h b/src/server/worldserver/RemoteAccess/RASocket.h
index e92cb35eaf0..add23198bde 100644
--- a/src/server/worldserver/RemoteAccess/RASocket.h
+++ b/src/server/worldserver/RemoteAccess/RASocket.h
@@ -31,33 +31,34 @@
#include <ace/SOCK_Acceptor.h>
/// Remote Administration socket
-class RASocket: public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_MT_SYNCH>
+class RASocket : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_MT_SYNCH>
{
public:
RASocket();
- virtual ~RASocket();
+ virtual ~RASocket() { }
- virtual int svc(void);
- virtual int open(void * = 0);
- virtual int handle_close(ACE_HANDLE = ACE_INVALID_HANDLE, ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK);
+ virtual int svc() OVERRIDE;
+ virtual int open(void* = 0) OVERRIDE;
+ virtual int handle_close(ACE_HANDLE = ACE_INVALID_HANDLE, ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK) OVERRIDE;
private:
- int recv_line(std::string& out_line);
+ int recv_line(std::string& outLine);
int recv_line(ACE_Message_Block& buffer);
int process_command(const std::string& command);
int authenticate();
- int subnegotiate(); //! Used by telnet protocol RFC 854 / 855
+ int subnegotiate(); ///< Used by telnet protocol RFC 854 / 855
int check_access_level(const std::string& user);
int check_password(const std::string& user, const std::string& pass);
int send(const std::string& line);
- static void zprint(void* callbackArg, const char * szText );
+ static void zprint(void* callbackArg, const char* szText);
static void commandFinished(void* callbackArg, bool success);
private:
- /// Minimum security level required to connect
- uint8 _minLevel;
+ uint8 _minLevel; ///< Minimum security level required to connect
ACE_Atomic_Op<ACE_Thread_Mutex, bool> _commandExecuting;
};
+
#endif
+
/// @}
diff --git a/src/server/worldserver/TCSoap/TCSoap.cpp b/src/server/worldserver/TCSoap/TCSoap.cpp
index 3ccc3bccac9..e10968bcbee 100644
--- a/src/server/worldserver/TCSoap/TCSoap.cpp
+++ b/src/server/worldserver/TCSoap/TCSoap.cpp
@@ -33,13 +33,13 @@ void TCSoapRunnable::run()
soap.accept_timeout = 3;
soap.recv_timeout = 5;
soap.send_timeout = 5;
- if (!soap_valid_socket(soap_bind(&soap, m_host.c_str(), m_port, 100)))
+ if (!soap_valid_socket(soap_bind(&soap, _host.c_str(), _port, 100)))
{
- TC_LOG_ERROR(LOG_FILTER_SOAP, "Couldn't bind to %s:%d", m_host.c_str(), m_port);
+ TC_LOG_ERROR(LOG_FILTER_SOAP, "Couldn't bind to %s:%d", _host.c_str(), _port);
exit(-1);
}
- TC_LOG_INFO(LOG_FILTER_SOAP, "Bound to http://%s:%d", m_host.c_str(), m_port);
+ TC_LOG_INFO(LOG_FILTER_SOAP, "Bound to http://%s:%d", _host.c_str(), _port);
while (!World::IsStopped())
{
@@ -121,9 +121,7 @@ int ns1__executeCommand(soap* soap, char* command, char** result)
int acc = connection.pendingCommands.acquire();
if (acc)
- {
TC_LOG_ERROR(LOG_FILTER_SOAP, "Error while acquiring lock, acc = %i, errno = %u", acc, errno);
- }
// alright, command finished
diff --git a/src/server/worldserver/TCSoap/TCSoap.h b/src/server/worldserver/TCSoap/TCSoap.h
index b786ee94e81..ff2a49a4d7e 100644
--- a/src/server/worldserver/TCSoap/TCSoap.h
+++ b/src/server/worldserver/TCSoap/TCSoap.h
@@ -24,21 +24,24 @@
#include <ace/Task.h>
#include <Threading.h>
-class TCSoapRunnable: public ACE_Based::Runnable
+class TCSoapRunnable : public ACE_Based::Runnable
{
public:
- TCSoapRunnable() { }
- void run();
- void setListenArguments(std::string host, uint16 port)
+ TCSoapRunnable() : _port(0) { }
+
+ void run() OVERRIDE;
+
+ void SetListenArguments(const std::string& host, uint16 port)
{
- m_host = host;
- m_port = port;
+ _host = host;
+ _port = port;
}
+
private:
void process_message(ACE_Message_Block* mb);
- std::string m_host;
- uint16 m_port;
+ std::string _host;
+ uint16 _port;
};
class SOAPCommand
diff --git a/src/server/worldserver/WorldThread/WorldRunnable.h b/src/server/worldserver/WorldThread/WorldRunnable.h
index 38fc96a9f9f..56a3b41eae7 100644
--- a/src/server/worldserver/WorldThread/WorldRunnable.h
+++ b/src/server/worldserver/WorldThread/WorldRunnable.h
@@ -27,7 +27,9 @@
class WorldRunnable : public ACE_Based::Runnable
{
public:
- void run();
+ void run() OVERRIDE;
};
+
#endif
+
/// @}
diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist
index a9b09e5d94f..c4e19e851b3 100644
--- a/src/server/worldserver/worldserver.conf.dist
+++ b/src/server/worldserver/worldserver.conf.dist
@@ -18,6 +18,7 @@
# GAME MASTER SETTINGS
# VISIBILITY AND DISTANCES
# SERVER RATES
+# STATS LIMITS
# AUTO BROADCAST
# BATTLEGROUND CONFIG
# BATTLEFIELD CONFIG
@@ -148,7 +149,9 @@ BindIP = "0.0.0.0"
# PERFORMANCE SETTINGS
#
# UseProcessors
-# Description: Processors mask for Windows based multi-processor systems.
+# Description: Processors mask for Windows and Linux based multi-processor systems.
+# Example: A computer with 2 CPUs:
+# 1 - 1st CPU only, 2 - 2nd CPU only, 3 - 1st and 2nd CPU, because 1 | 2 is 3
# Default: 0 - (Selected by OS)
# 1+ - (Bit mask value of selected processors)
@@ -156,11 +159,12 @@ UseProcessors = 0
#
# ProcessPriority
-# Description: Process priority setting for Windows based systems.
-# Default: 1 - (High)
-# 0 - (Normal)
+# Description: Process priority setting for Windows and Linux based systems.
+# Details: On Linux, a nice value of -15 is used. (requires superuser). On Windows, process is set to HIGH class.
+# Default: 0 - (Normal)
+# 1 - (High)
-ProcessPriority = 1
+ProcessPriority = 0
#
# Compression
@@ -2004,6 +2008,28 @@ Die.Command.Mode = 1
###################################################################################################
###################################################################################################
+# STATS LIMITS
+#
+# Stats.Limits.Enable
+# Description: Enable or disable stats system
+# Default: 0 - Disabled
+
+Stats.Limits.Enable = 0
+
+#
+# Stats.Limit.[STAT]
+# Description: Set percentage limit for dodge, parry, block and crit rating
+# Default: 95.0 (95%)
+
+Stats.Limits.Dodge = 95.0
+Stats.Limits.Parry = 95.0
+Stats.Limits.Block = 95.0
+Stats.Limits.Crit = 95.0
+
+#
+###################################################################################################
+
+###################################################################################################
# AUTO BROADCAST
#
# AutoBroadcast.On
diff --git a/src/tools/mmaps_generator/Info/readme.txt b/src/tools/mmaps_generator/Info/readme.txt
index 8d7c4f9d2e0..bde8e61b080 100644
--- a/src/tools/mmaps_generator/Info/readme.txt
+++ b/src/tools/mmaps_generator/Info/readme.txt
@@ -1,11 +1,14 @@
Generator command line args
+--threads [#] Max number of threads used by the generator
+ Default: 3
+
--offMeshInput [file.*] Path to file containing off mesh connections data.
Format must be: (see offmesh_example.txt)
"map_id tile_x,tile_y (start_x start_y start_z) (end_x end_y end_z) size //optional comments"
Single mesh connection per line.
---silent Make us script friendly. Do not wait for user input
+--silent [] Make us script friendly. Do not wait for user input
on error or completion.
--bigBaseUnit [true|false] Generate tile/map using bigger basic unit.
@@ -17,7 +20,7 @@ Generator command line args
float between 45 and 90 degrees (default 60)
---skipLiquid liquid data for maps
+--skipLiquid [true|false] extract liquid data for maps
false: include liquid data (default)
@@ -63,4 +66,4 @@ movement_extractor 0
builds all tiles of map 0
movement_extractor 0 --tile 34,46
-builds only tile 34,46 of map 0 (this is the southern face of blackrock mountain) \ No newline at end of file
+builds only tile 34,46 of map 0 (this is the southern face of blackrock mountain)
diff --git a/src/tools/mmaps_generator/MapBuilder.cpp b/src/tools/mmaps_generator/MapBuilder.cpp
index cd85d926125..06a764690ca 100644
--- a/src/tools/mmaps_generator/MapBuilder.cpp
+++ b/src/tools/mmaps_generator/MapBuilder.cpp
@@ -36,7 +36,7 @@ namespace DisableMgr
}
#define MMAP_MAGIC 0x4d4d4150 // 'MMAP'
-#define MMAP_VERSION 3
+#define MMAP_VERSION 4
struct MmapTileHeader
{
@@ -332,12 +332,12 @@ namespace MMAP
buildNavMesh(mapID, navMesh);
if (!navMesh)
{
- printf("[Map %i] Failed creating navmesh!\n", mapID);
+ printf("[Map %03i] Failed creating navmesh!\n", mapID);
return;
}
// now start building mmtiles for each tile
- printf("[Map %i] We have %u tiles. \n", mapID, (unsigned int)tiles->size());
+ printf("[Map %03i] We have %u tiles. \n", mapID, (unsigned int)tiles->size());
for (std::set<uint32>::iterator it = tiles->begin(); it != tiles->end(); ++it)
{
uint32 tileX, tileY;
@@ -354,13 +354,13 @@ namespace MMAP
dtFreeNavMesh(navMesh);
}
- printf("[Map %i] Complete!\n", mapID);
+ printf("[Map %03i] Complete!\n", mapID);
}
/**************************************************************************/
void MapBuilder::buildTile(uint32 mapID, uint32 tileX, uint32 tileY, dtNavMesh* navMesh)
{
- printf("[Map %i] Building tile [%02u,%02u]\n", mapID, tileX, tileY);
+ printf("[Map %03i] Building tile [%02u,%02u]\n", mapID, tileX, tileY);
MeshData meshData;
@@ -446,10 +446,10 @@ namespace MMAP
navMeshParams.maxPolys = maxPolysPerTile;
navMesh = dtAllocNavMesh();
- printf("[Map %i] Creating navMesh...\n", mapID);
+ printf("[Map %03i] Creating navMesh...\n", mapID);
if (!navMesh->init(&navMeshParams))
{
- printf("[Map %i] Failed creating navmesh! \n", mapID);
+ printf("[Map %03i] Failed creating navmesh! \n", mapID);
return;
}
@@ -461,7 +461,7 @@ namespace MMAP
{
dtFreeNavMesh(navMesh);
char message[1024];
- sprintf(message, "[Map %i] Failed to open %s for writing!\n", mapID, fileName);
+ sprintf(message, "[Map %03i] Failed to open %s for writing!\n", mapID, fileName);
perror(message);
return;
}
@@ -496,8 +496,8 @@ namespace MMAP
// these are WORLD UNIT based metrics
// this are basic unit dimentions
- // value have to divide GRID_SIZE(533.33333f) ( aka: 0.5333, 0.2666, 0.3333, 0.1333, etc )
- const static float BASE_UNIT_DIM = m_bigBaseUnit ? 0.533333f : 0.266666f;
+ // value have to divide GRID_SIZE(533.3333f) ( aka: 0.5333, 0.2666, 0.3333, 0.1333, etc )
+ const static float BASE_UNIT_DIM = m_bigBaseUnit ? 0.5333333f : 0.2666666f;
// All are in UNIT metrics!
const static int VERTEX_PER_MAP = int(GRID_SIZE/BASE_UNIT_DIM + 0.5f);
@@ -517,12 +517,12 @@ namespace MMAP
config.tileSize = VERTEX_PER_TILE;
config.walkableRadius = m_bigBaseUnit ? 1 : 2;
config.borderSize = config.walkableRadius + 3;
- config.maxEdgeLen = VERTEX_PER_TILE + 1; //anything bigger than tileSize
+ config.maxEdgeLen = VERTEX_PER_TILE + 1; // anything bigger than tileSize
config.walkableHeight = m_bigBaseUnit ? 3 : 6;
config.walkableClimb = m_bigBaseUnit ? 2 : 4; // keep less than walkableHeight
config.minRegionArea = rcSqr(60);
config.mergeRegionArea = rcSqr(50);
- config.maxSimplificationError = 2.0f; // eliminates most jagged edges (tinny polygons)
+ config.maxSimplificationError = 1.8f; // eliminates most jagged edges (tiny polygons)
config.detailSampleDist = config.cs * 64;
config.detailSampleMaxError = config.ch * 2;
@@ -677,14 +677,6 @@ namespace MMAP
delete[] tiles;
- // remove padding for extraction
- for (int i = 0; i < iv.polyMesh->nverts; ++i)
- {
- unsigned short* v = &iv.polyMesh->verts[i*3];
- v[0] -= (unsigned short)config.borderSize;
- v[2] -= (unsigned short)config.borderSize;
- }
-
// set polygons as walkable
// TODO: special flags for DYNAMIC polygons, ie surfaces that can be turned on and off
for (int i = 0; i < iv.polyMesh->npolys; ++i)
@@ -723,7 +715,8 @@ namespace MMAP
rcVcopy(params.bmax, bmax);
params.cs = config.cs;
params.ch = config.ch;
- params.tileSize = VERTEX_PER_MAP;
+ params.tileLayer = 0;
+ params.buildBvTree = true;
// will hold final navmesh
unsigned char* navData = NULL;
@@ -792,7 +785,7 @@ namespace MMAP
if (!file)
{
char message[1024];
- sprintf(message, "[Map %i] Failed to open %s for writing!\n", mapID, fileName);
+ sprintf(message, "[Map %03i] Failed to open %s for writing!\n", mapID, fileName);
perror(message);
navMesh->removeTile(tileRef, NULL, NULL);
continue;
@@ -854,50 +847,50 @@ namespace MMAP
{
if (m_skipContinents)
switch (mapID)
- {
- case 0:
- case 1:
- case 530:
- case 571:
- return true;
- default:
- break;
- }
+ {
+ case 0:
+ case 1:
+ case 530:
+ case 571:
+ return true;
+ default:
+ break;
+ }
if (m_skipJunkMaps)
switch (mapID)
- {
- case 13: // test.wdt
- case 25: // ScottTest.wdt
- case 29: // Test.wdt
- case 42: // Colin.wdt
- case 169: // EmeraldDream.wdt (unused, and very large)
- case 451: // development.wdt
- case 573: // ExteriorTest.wdt
- case 597: // CraigTest.wdt
- case 605: // development_nonweighted.wdt
- case 606: // QA_DVD.wdt
- return true;
- default:
- if (isTransportMap(mapID))
+ {
+ case 13: // test.wdt
+ case 25: // ScottTest.wdt
+ case 29: // Test.wdt
+ case 42: // Colin.wdt
+ case 169: // EmeraldDream.wdt (unused, and very large)
+ case 451: // development.wdt
+ case 573: // ExteriorTest.wdt
+ case 597: // CraigTest.wdt
+ case 605: // development_nonweighted.wdt
+ case 606: // QA_DVD.wdt
return true;
- break;
- }
+ default:
+ if (isTransportMap(mapID))
+ return true;
+ break;
+ }
if (m_skipBattlegrounds)
switch (mapID)
- {
- case 30: // AV
- case 37: // ?
- case 489: // WSG
- case 529: // AB
- case 566: // EotS
- case 607: // SotA
- case 628: // IoC
- return true;
- default:
- break;
- }
+ {
+ case 30: // AV
+ case 37: // ?
+ case 489: // WSG
+ case 529: // AB
+ case 566: // EotS
+ case 607: // SotA
+ case 628: // IoC
+ return true;
+ default:
+ break;
+ }
return false;
}
@@ -908,37 +901,37 @@ namespace MMAP
switch (mapID)
{
// transport maps
- case 582:
- case 584:
- case 586:
- case 587:
- case 588:
- case 589:
- case 590:
- case 591:
- case 592:
- case 593:
- case 594:
- case 596:
- case 610:
- case 612:
- case 613:
- case 614:
- case 620:
- case 621:
- case 622:
- case 623:
- case 641:
- case 642:
- case 647:
- case 672:
- case 673:
- case 712:
- case 713:
- case 718:
- return true;
- default:
- return false;
+ case 582:
+ case 584:
+ case 586:
+ case 587:
+ case 588:
+ case 589:
+ case 590:
+ case 591:
+ case 592:
+ case 593:
+ case 594:
+ case 596:
+ case 610:
+ case 612:
+ case 613:
+ case 614:
+ case 620:
+ case 621:
+ case 622:
+ case 623:
+ case 641:
+ case 642:
+ case 647:
+ case 672:
+ case 673:
+ case 712:
+ case 713:
+ case 718:
+ return true;
+ default:
+ return false;
}
}
diff --git a/src/tools/mmaps_generator/MapBuilder.h b/src/tools/mmaps_generator/MapBuilder.h
index 3ffaea0ab66..6ab0b312af8 100644
--- a/src/tools/mmaps_generator/MapBuilder.h
+++ b/src/tools/mmaps_generator/MapBuilder.h
@@ -61,7 +61,7 @@ namespace MMAP
class MapBuilder
{
public:
- MapBuilder(float maxWalkableAngle = 60.f,
+ MapBuilder(float maxWalkableAngle = 55.f,
bool skipLiquid = false,
bool skipContinents = false,
bool skipJunkMaps = true,
diff --git a/src/tools/mmaps_generator/PathGenerator.cpp b/src/tools/mmaps_generator/PathGenerator.cpp
index 47d35b517d5..ed114491b27 100644
--- a/src/tools/mmaps_generator/PathGenerator.cpp
+++ b/src/tools/mmaps_generator/PathGenerator.cpp
@@ -242,7 +242,7 @@ int finish(const char* message, int returnValue)
int main(int argc, char** argv)
{
int threads = 3, mapnum = -1;
- float maxAngle = 60.0f;
+ float maxAngle = 55.0f;
int tileX = -1, tileY = -1;
bool skipLiquid = false,
skipContinents = false,
diff --git a/src/tools/mmaps_generator/TerrainBuilder.h b/src/tools/mmaps_generator/TerrainBuilder.h
index 069a5a94c84..e9ff2a3c175 100644
--- a/src/tools/mmaps_generator/TerrainBuilder.h
+++ b/src/tools/mmaps_generator/TerrainBuilder.h
@@ -47,7 +47,7 @@ namespace MMAP
static const int V9_SIZE_SQ = V9_SIZE*V9_SIZE;
static const int V8_SIZE = 128;
static const int V8_SIZE_SQ = V8_SIZE*V8_SIZE;
- static const float GRID_SIZE = 533.33333f;
+ static const float GRID_SIZE = 533.3333f;
static const float GRID_PART_SIZE = GRID_SIZE/V8_SIZE;
// see contrib/extractor/system.cpp, CONF_use_minHeight
diff --git a/src/tools/vmap4_extractor/model.cpp b/src/tools/vmap4_extractor/model.cpp
index b950db023fe..919bf6a9610 100644
--- a/src/tools/vmap4_extractor/model.cpp
+++ b/src/tools/vmap4_extractor/model.cpp
@@ -128,7 +128,6 @@ Vec3D fixCoordSystem2(Vec3D v)
}
ModelInstance::ModelInstance(MPQFile& f, char const* ModelInstName, uint32 mapID, uint32 tileX, uint32 tileY, FILE *pDirfile)
- : model(NULL), d1(0), w(0.0f)
{
float ff[3];
f.read(&id, 4);
@@ -136,7 +135,8 @@ ModelInstance::ModelInstance(MPQFile& f, char const* ModelInstName, uint32 mapID
pos = fixCoords(Vec3D(ff[0], ff[1], ff[2]));
f.read(ff, 12);
rot = Vec3D(ff[0], ff[1], ff[2]);
- f.read(&scale, 4);
+ f.read(&scale, 2);
+ f.read(&flags, 2);
// scale factor - divide by 1024. blizzard devs must be on crack, why not just use a float?
sc = scale / 1024.0f;
diff --git a/src/tools/vmap4_extractor/model.h b/src/tools/vmap4_extractor/model.h
index bf15d813ce8..9dcea722c3b 100644
--- a/src/tools/vmap4_extractor/model.h
+++ b/src/tools/vmap4_extractor/model.h
@@ -54,14 +54,12 @@ public:
class ModelInstance
{
public:
- Model* model;
-
uint32 id;
Vec3D pos, rot;
- unsigned int d1, scale;
- float w, sc;
+ uint16 scale, flags;
+ float sc;
- ModelInstance() : model(NULL), id(0), d1(0), scale(0), w(0.0f), sc(0.0f) {}
+ ModelInstance() : id(0), scale(0), flags(0), sc(0.0f) {}
ModelInstance(MPQFile& f, char const* ModelInstName, uint32 mapID, uint32 tileX, uint32 tileY, FILE* pDirfile);
};