diff options
Diffstat (limited to 'src')
44 files changed, 1903 insertions, 2246 deletions
diff --git a/src/cmake/macros/ConfigureModules.cmake b/src/cmake/macros/ConfigureModules.cmake new file mode 100644 index 0000000000..41c2162788 --- /dev/null +++ b/src/cmake/macros/ConfigureModules.cmake @@ -0,0 +1,73 @@ +# +# Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3 +# Copyright (C) 2021+ WarheadCore <https://github.com/WarheadCore> +# +# This file is free software; as a special exception the author gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# Returns the base path to the script directory in the source directory +function(GetModulesBasePath variable) + set(${variable} "${CMAKE_SOURCE_DIR}/modules" PARENT_SCOPE) +endfunction() + +# Stores the absolut path of the given module in the variable +function(GetPathToModuleSource module variable) + GetModulesBasePath(MODULE_BASE_PATH) + set(${variable} "${MODULE_BASE_PATH}/${module}/src" PARENT_SCOPE) +endfunction() + +# Stores the project name of the given module in the variable +function(GetProjectNameOfModuleName module variable) + string(TOLOWER "mod_${SOURCE_MODULE}" GENERATED_NAME) + set(${variable} "${GENERATED_NAME}" PARENT_SCOPE) +endfunction() + +# Creates a list of all script modules +# and stores it in the given variable. +function(GetModuleSourceList variable) + GetModulesBasePath(BASE_PATH) + file(GLOB LOCALE_MODULE_LIST RELATIVE + ${BASE_PATH} + ${BASE_PATH}/*) + + set(${variable}) + foreach(SOURCE_MODULE ${LOCALE_MODULE_LIST}) + GetPathToModuleSource(${SOURCE_MODULE} MODULE_SOURCE_PATH) + if(IS_DIRECTORY ${MODULE_SOURCE_PATH}) + list(APPEND ${variable} ${SOURCE_MODULE}) + endif() + endforeach() + set(${variable} ${${variable}} PARENT_SCOPE) +endfunction() + +# Converts the given script module name into it's +# variable name which holds the linkage type. +function(ModuleNameToVariable module variable) + string(TOUPPER ${module} ${variable}) + set(${variable} "MODULE_${${variable}}") + set(${variable} ${${variable}} PARENT_SCOPE) +endfunction() + +# Stores in the given variable whether dynamic linking is required +function(IsDynamicLinkingModulesRequired variable) + if(MODULES MATCHES "dynamic") + set(IS_DEFAULT_VALUE_DYNAMIC_MODULE ON) + endif() + + GetModuleSourceList(MODULES_MODULE_LIST) + set(IS_REQUIRED OFF) + foreach(SOURCE_MODULE ${MODULES_MODULE_LIST}) + ModuleNameToVariable(${SOURCE_MODULE} MODULE_MODULE_VARIABLE) + if((${MODULE_MODULE_VARIABLE} STREQUAL "dynamic") OR + (${MODULE_MODULE_VARIABLE} STREQUAL "default" AND IS_DEFAULT_VALUE_DYNAMIC_MODULE)) + set(IS_REQUIRED ON) + break() + endif() + endforeach() + set(${variable} ${IS_REQUIRED} PARENT_SCOPE) +endfunction() diff --git a/src/cmake/showoptions.cmake b/src/cmake/showoptions.cmake index c0955eefcb..31c387214c 100644 --- a/src/cmake/showoptions.cmake +++ b/src/cmake/showoptions.cmake @@ -26,13 +26,18 @@ else() message("* Build world/authserver : No") endif() -if( SCRIPTS ) - message("* Build with scripts : Yes (default)") - add_definitions(-DSCRIPTS) +if(SCRIPTS AND (NOT SCRIPTS STREQUAL "none")) + message("* Build with scripts : Yes (${SCRIPTS})") else() message("* Build with scripts : No") endif() +if(MODULES AND (NOT MODULES STREQUAL "none")) + message("* Build with modules : Yes (${MODULES})") +else() + message("* Build with modules : No") +endif() + if( TOOLS ) message("* Build map/vmap tools : Yes") add_definitions(-DNO_CORE_FUNCS) diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index ae36c1dddf..7a2997089b 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -49,8 +49,9 @@ target_include_directories(common ${CMAKE_CURRENT_BINARY_DIR}) target_link_libraries(common - PUBLIC + PRIVATE acore-core-interface + PUBLIC ace boost argon2 diff --git a/src/server/authserver/CMakeLists.txt b/src/server/authserver/CMakeLists.txt index 4b249af1dd..fac16f01f5 100644 --- a/src/server/authserver/CMakeLists.txt +++ b/src/server/authserver/CMakeLists.txt @@ -37,6 +37,8 @@ add_executable(authserver add_dependencies(authserver revision.h) target_link_libraries(authserver + PRIVATE + acore-core-interface PUBLIC shared) diff --git a/src/server/database/CMakeLists.txt b/src/server/database/CMakeLists.txt index ae30ee6134..9aafd965f5 100644 --- a/src/server/database/CMakeLists.txt +++ b/src/server/database/CMakeLists.txt @@ -42,7 +42,7 @@ target_include_directories(database target_link_libraries(database PRIVATE - # acore-core-interface + acore-core-interface mysql PUBLIC common) diff --git a/src/server/game/AI/SmartScripts/SmartAI.h b/src/server/game/AI/SmartScripts/SmartAI.h index d32b9ac816..b0cfbaddee 100644 --- a/src/server/game/AI/SmartScripts/SmartAI.h +++ b/src/server/game/AI/SmartScripts/SmartAI.h @@ -259,4 +259,8 @@ public: protected: SmartScript mScript; }; + +/// Registers scripts required by the SAI scripting system +void AddSC_SmartScripts(); + #endif diff --git a/src/server/game/CMakeLists.txt b/src/server/game/CMakeLists.txt index e319cbe2b9..fd60416b0a 100644 --- a/src/server/game/CMakeLists.txt +++ b/src/server/game/CMakeLists.txt @@ -37,7 +37,6 @@ target_include_directories(game-interface target_link_libraries(game-interface INTERFACE - common shared) add_library(game STATIC @@ -52,8 +51,9 @@ target_include_directories(game target_link_libraries(game PRIVATE - game-interface - scripts-interface) + acore-core-interface + PUBLIC + game-interface) set_target_properties(game PROPERTIES diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp index 3e3446e359..64ab942085 100644 --- a/src/server/game/Scripting/ScriptMgr.cpp +++ b/src/server/game/Scripting/ScriptMgr.cpp @@ -14,13 +14,13 @@ #include "OutdoorPvPMgr.h" #include "Player.h" #include "ScriptedGossip.h" -#include "ScriptLoader.h" #include "ScriptMgr.h" #include "ScriptSystem.h" #include "SpellInfo.h" #include "SpellScript.h" #include "Transport.h" #include "Vehicle.h" +#include "SmartAI.h" #include "WorldPacket.h" #ifdef ELUNA @@ -28,58 +28,18 @@ #include "LuaEngine.h" #endif -// Specialize for each script type class like so: -template class ScriptRegistry<SpellScriptLoader>; -template class ScriptRegistry<ServerScript>; -template class ScriptRegistry<WorldScript>; -template class ScriptRegistry<FormulaScript>; -template class ScriptRegistry<WorldMapScript>; -template class ScriptRegistry<InstanceMapScript>; -template class ScriptRegistry<BattlegroundMapScript>; -template class ScriptRegistry<ItemScript>; -template class ScriptRegistry<CreatureScript>; -template class ScriptRegistry<GameObjectScript>; -template class ScriptRegistry<AreaTriggerScript>; -template class ScriptRegistry<BattlegroundScript>; -template class ScriptRegistry<OutdoorPvPScript>; -template class ScriptRegistry<CommandScript>; -template class ScriptRegistry<WeatherScript>; -template class ScriptRegistry<AuctionHouseScript>; -template class ScriptRegistry<ConditionScript>; -template class ScriptRegistry<VehicleScript>; -template class ScriptRegistry<DynamicObjectScript>; -template class ScriptRegistry<TransportScript>; -template class ScriptRegistry<AchievementCriteriaScript>; -template class ScriptRegistry<PlayerScript>; -template class ScriptRegistry<GuildScript>; -template class ScriptRegistry<GroupScript>; -template class ScriptRegistry<GlobalScript>; -template class ScriptRegistry<UnitScript>; -template class ScriptRegistry<AllCreatureScript>; -template class ScriptRegistry<AllMapScript>; -template class ScriptRegistry<MovementHandlerScript>; -template class ScriptRegistry<BGScript>; -template class ScriptRegistry<ArenaTeamScript>; -template class ScriptRegistry<SpellSC>; -template class ScriptRegistry<AccountScript>; -template class ScriptRegistry<GameEventScript>; -template class ScriptRegistry<MailScript>; -template class ScriptRegistry<AchievementScript>; -template class ScriptRegistry<MiscScript>; -template class ScriptRegistry<PetScript>; -template class ScriptRegistry<ArenaScript>; -template class ScriptRegistry<CommandSC>; +struct TSpellSummary +{ + uint8 Targets; // set of enum SelectTarget + uint8 Effects; // set of enum SelectEffect +}*SpellSummary; #include "ScriptMgrMacros.h" ScriptMgr::ScriptMgr() - : _scriptCount(0), _scheduledScripts(0) -{ -} + : _scriptCount(0), _scheduledScripts(0), _script_loader_callback(nullptr) { } -ScriptMgr::~ScriptMgr() -{ -} +ScriptMgr::~ScriptMgr() { } ScriptMgr* ScriptMgr::instance() { @@ -89,8 +49,15 @@ ScriptMgr* ScriptMgr::instance() void ScriptMgr::Initialize() { - AddScripts(); - LOG_INFO("server.loading", "Loading C++ scripts"); + LOG_INFO("server.loading", "> Loading C++ scripts"); + LOG_INFO("server.loading", " "); + + AddSC_SmartScripts(); + + ASSERT(_script_loader_callback, + "Script loader callback wasn't registered!"); + + _script_loader_callback(); } void ScriptMgr::Unload() @@ -140,6 +107,8 @@ void ScriptMgr::Unload() SCR_CLEAR(CommandSC); #undef SCR_CLEAR + + delete[] SpellSummary; } void ScriptMgr::LoadDatabase() @@ -172,56 +141,55 @@ void ScriptMgr::LoadDatabase() LOG_INFO("server.loading", " "); } -struct TSpellSummary -{ - uint8 Targets; // set of enum SelectTarget - uint8 Effects; // set of enum SelectEffect -}* SpellSummary; - void ScriptMgr::CheckIfScriptsInDatabaseExist() { - ObjectMgr::ScriptNameContainer& sn = sObjectMgr->GetScriptNames(); - for (ObjectMgr::ScriptNameContainer::iterator itr = sn.begin(); itr != sn.end(); ++itr) - if (uint32 sid = sObjectMgr->GetScriptId((*itr).c_str())) + for (auto const& scriptName : sObjectMgr->GetScriptNames()) + { + if (uint32 sid = sObjectMgr->GetScriptId(scriptName.c_str())) { if (!ScriptRegistry<SpellScriptLoader>::GetScriptById(sid) && - !ScriptRegistry<ServerScript>::GetScriptById(sid) && - !ScriptRegistry<WorldScript>::GetScriptById(sid) && - !ScriptRegistry<FormulaScript>::GetScriptById(sid) && - !ScriptRegistry<WorldMapScript>::GetScriptById(sid) && - !ScriptRegistry<InstanceMapScript>::GetScriptById(sid) && - !ScriptRegistry<BattlegroundMapScript>::GetScriptById(sid) && - !ScriptRegistry<ItemScript>::GetScriptById(sid) && - !ScriptRegistry<CreatureScript>::GetScriptById(sid) && - !ScriptRegistry<GameObjectScript>::GetScriptById(sid) && - !ScriptRegistry<AreaTriggerScript>::GetScriptById(sid) && - !ScriptRegistry<BattlegroundScript>::GetScriptById(sid) && - !ScriptRegistry<OutdoorPvPScript>::GetScriptById(sid) && - !ScriptRegistry<CommandScript>::GetScriptById(sid) && - !ScriptRegistry<WeatherScript>::GetScriptById(sid) && - !ScriptRegistry<AuctionHouseScript>::GetScriptById(sid) && - !ScriptRegistry<ConditionScript>::GetScriptById(sid) && - !ScriptRegistry<VehicleScript>::GetScriptById(sid) && - !ScriptRegistry<DynamicObjectScript>::GetScriptById(sid) && - !ScriptRegistry<TransportScript>::GetScriptById(sid) && - !ScriptRegistry<AchievementCriteriaScript>::GetScriptById(sid) && - !ScriptRegistry<PlayerScript>::GetScriptById(sid) && - !ScriptRegistry<GuildScript>::GetScriptById(sid) && - !ScriptRegistry<BGScript>::GetScriptById(sid) && - !ScriptRegistry<AchievementScript>::GetScriptById(sid) && - !ScriptRegistry<ArenaTeamScript>::GetScriptById(sid) && - !ScriptRegistry<SpellSC>::GetScriptById(sid) && - !ScriptRegistry<MiscScript>::GetScriptById(sid) && - !ScriptRegistry<PetScript>::GetScriptById(sid) && - !ScriptRegistry<CommandSC>::GetScriptById(sid) && - !ScriptRegistry<ArenaScript>::GetScriptById(sid) && - !ScriptRegistry<GroupScript>::GetScriptById(sid)) - LOG_ERROR("sql.sql", "Script named '%s' is assigned in the database, but has no code!", (*itr).c_str()); + !ScriptRegistry<ServerScript>::GetScriptById(sid) && + !ScriptRegistry<WorldScript>::GetScriptById(sid) && + !ScriptRegistry<FormulaScript>::GetScriptById(sid) && + !ScriptRegistry<WorldMapScript>::GetScriptById(sid) && + !ScriptRegistry<InstanceMapScript>::GetScriptById(sid) && + !ScriptRegistry<BattlegroundMapScript>::GetScriptById(sid) && + !ScriptRegistry<ItemScript>::GetScriptById(sid) && + !ScriptRegistry<CreatureScript>::GetScriptById(sid) && + !ScriptRegistry<GameObjectScript>::GetScriptById(sid) && + !ScriptRegistry<AreaTriggerScript>::GetScriptById(sid) && + !ScriptRegistry<BattlegroundScript>::GetScriptById(sid) && + !ScriptRegistry<OutdoorPvPScript>::GetScriptById(sid) && + !ScriptRegistry<CommandScript>::GetScriptById(sid) && + !ScriptRegistry<WeatherScript>::GetScriptById(sid) && + !ScriptRegistry<AuctionHouseScript>::GetScriptById(sid) && + !ScriptRegistry<ConditionScript>::GetScriptById(sid) && + !ScriptRegistry<VehicleScript>::GetScriptById(sid) && + !ScriptRegistry<DynamicObjectScript>::GetScriptById(sid) && + !ScriptRegistry<TransportScript>::GetScriptById(sid) && + !ScriptRegistry<AchievementCriteriaScript>::GetScriptById(sid) && + !ScriptRegistry<PlayerScript>::GetScriptById(sid) && + !ScriptRegistry<GuildScript>::GetScriptById(sid) && + !ScriptRegistry<BGScript>::GetScriptById(sid) && + !ScriptRegistry<AchievementScript>::GetScriptById(sid) && + !ScriptRegistry<ArenaTeamScript>::GetScriptById(sid) && + !ScriptRegistry<SpellSC>::GetScriptById(sid) && + !ScriptRegistry<MiscScript>::GetScriptById(sid) && + !ScriptRegistry<PetScript>::GetScriptById(sid) && + !ScriptRegistry<CommandSC>::GetScriptById(sid) && + !ScriptRegistry<ArenaScript>::GetScriptById(sid) && + !ScriptRegistry<GroupScript>::GetScriptById(sid)) + { + LOG_ERROR("sql.sql", "Script named '%s' is assigned in the database, but has no code!", scriptName.c_str()); + } } + } } void ScriptMgr::FillSpellSummary() { + UnitAI::FillAISpellInfo(); + SpellSummary = new TSpellSummary[sSpellMgr->GetSpellInfoStoreSize()]; SpellInfo const* pTempSpell; @@ -3406,3 +3374,45 @@ CommandSC::CommandSC(const char* name) { ScriptRegistry<CommandSC>::AddScript(this); } + +// Specialize for each script type class like so: +template class ScriptRegistry<SpellScriptLoader>; +template class ScriptRegistry<ServerScript>; +template class ScriptRegistry<WorldScript>; +template class ScriptRegistry<FormulaScript>; +template class ScriptRegistry<WorldMapScript>; +template class ScriptRegistry<InstanceMapScript>; +template class ScriptRegistry<BattlegroundMapScript>; +template class ScriptRegistry<ItemScript>; +template class ScriptRegistry<CreatureScript>; +template class ScriptRegistry<GameObjectScript>; +template class ScriptRegistry<AreaTriggerScript>; +template class ScriptRegistry<BattlegroundScript>; +template class ScriptRegistry<OutdoorPvPScript>; +template class ScriptRegistry<CommandScript>; +template class ScriptRegistry<WeatherScript>; +template class ScriptRegistry<AuctionHouseScript>; +template class ScriptRegistry<ConditionScript>; +template class ScriptRegistry<VehicleScript>; +template class ScriptRegistry<DynamicObjectScript>; +template class ScriptRegistry<TransportScript>; +template class ScriptRegistry<AchievementCriteriaScript>; +template class ScriptRegistry<PlayerScript>; +template class ScriptRegistry<GuildScript>; +template class ScriptRegistry<GroupScript>; +template class ScriptRegistry<GlobalScript>; +template class ScriptRegistry<UnitScript>; +template class ScriptRegistry<AllCreatureScript>; +template class ScriptRegistry<AllMapScript>; +template class ScriptRegistry<MovementHandlerScript>; +template class ScriptRegistry<BGScript>; +template class ScriptRegistry<ArenaTeamScript>; +template class ScriptRegistry<SpellSC>; +template class ScriptRegistry<AccountScript>; +template class ScriptRegistry<GameEventScript>; +template class ScriptRegistry<MailScript>; +template class ScriptRegistry<AchievementScript>; +template class ScriptRegistry<MiscScript>; +template class ScriptRegistry<PetScript>; +template class ScriptRegistry<ArenaScript>; +template class ScriptRegistry<CommandSC>; diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h index 4e629635d8..cec4cf8c68 100644 --- a/src/server/game/Scripting/ScriptMgr.h +++ b/src/server/game/Scripting/ScriptMgr.h @@ -1414,11 +1414,20 @@ public: /* Initialization */ void FillSpellSummary(); void CheckIfScriptsInDatabaseExist(); - const char* ScriptsVersion() const { return "Integrated Trinity Scripts"; } + const char* ScriptsVersion() const { return "Integrated Azeroth Scripts"; } void IncrementScriptCount() { ++_scriptCount; } uint32 GetScriptCount() const { return _scriptCount; } + typedef void(*ScriptLoaderCallbackType)(); + + /// Sets the script loader callback which is invoked to load scripts + /// (Workaround for circular dependency game <-> scripts) + void SetScriptLoader(ScriptLoaderCallbackType script_loader_callback) + { + _script_loader_callback = script_loader_callback; + } + public: /* Unloading */ void Unload(); @@ -1873,6 +1882,8 @@ private: //atomic op counter for active scripts amount std::atomic<long> _scheduledScripts; + + ScriptLoaderCallbackType _script_loader_callback; }; #define sScriptMgr ScriptMgr::instance() diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index 9c85ab374b..d5b3dc6709 100644 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -9,7 +9,6 @@ #include "BattlegroundIC.h" #include "BattlegroundMgr.h" #include "Chat.h" -#include "CreatureAI.h" #include "DBCStores.h" #include "GameGraveyard.h" #include "InstanceScript.h" @@ -3281,8 +3280,6 @@ void SpellMgr::LoadSpellCustomAttr() spellInfo->AttributesCu &= ~SPELL_ATTR0_CU_BINARY_SPELL; } - CreatureAI::FillAISpellInfo(); - LOG_INFO("server.loading", ">> Loaded spell custom attributes in %u ms", GetMSTimeDiffToNow(oldMSTime)); LOG_INFO("server.loading", " "); } diff --git a/src/server/scripts/CMakeLists.txt b/src/server/scripts/CMakeLists.txt index 7acd85e53e..8e4613d948 100644 --- a/src/server/scripts/CMakeLists.txt +++ b/src/server/scripts/CMakeLists.txt @@ -1,4 +1,6 @@ -# Copyright (C) +# +# Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3 +# Copyright (C) 2021+ WarheadCore <https://github.com/WarheadCore> # # This file is free software; as a special exception the author gives # unlimited permission to copy and/or distribute it, with or without @@ -7,113 +9,441 @@ # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -# Enable precompiled headers when using the GCC compiler. +# CU_RUN_HOOK(BEFORE_SCRIPTS_LIBRARY) -CU_SET_PATH("AC_SCRIPTS_DIR" "${CMAKE_CURRENT_LIST_DIR}") +message("") -message(STATUS "SCRIPT PREPARATIONS") +# Make the script module list available in the current scope +GetScriptModuleList(SCRIPT_MODULE_LIST) +GetModuleSourceList(MODULES_MODULE_LIST) -include(Spells/CMakeLists.txt) -include(Commands/CMakeLists.txt) +# Make the native install offset available in this scope +GetInstallOffset(INSTALL_OFFSET) -set(scripts_STAT_SRCS - ${scripts_STAT_SRCS} - ScriptLoader.cpp - ScriptLoader.h - ${BUILDDIR}/GenLoader.cpp - ../game/AI/ScriptedAI/ScriptedEscortAI.cpp - ../game/AI/ScriptedAI/ScriptedCreature.cpp - ../game/AI/ScriptedAI/ScriptedFollowerAI.cpp -) - -AC_ADD_SCRIPT_LOADER("Spell" "ScriptLoader.h") -AC_ADD_SCRIPT_LOADER("SC_Smart" "ScriptLoader.h") -AC_ADD_SCRIPT_LOADER("Command" "ScriptLoader.h") - -CU_SET_PATH("CMAKE_AC_MODULE_DIR" "${CMAKE_CURRENT_LIST_DIR}") - -if(SCRIPTS) - include(World/CMakeLists.txt) - include(OutdoorPvP/CMakeLists.txt) - include(EasternKingdoms/CMakeLists.txt) - include(Kalimdor/CMakeLists.txt) - include(Outland/CMakeLists.txt) - include(Northrend/CMakeLists.txt) - include(Events/CMakeLists.txt) - include(Pet/CMakeLists.txt) +# Sets the SCRIPTS_${SCRIPT_MODULE} variables +# when using predefined templates for script building +# like dynamic, static, minimal-static... +# Sets SCRIPTS_DEFAULT_LINKAGE +if(SCRIPTS MATCHES "dynamic") + set(SCRIPTS_DEFAULT_LINKAGE "dynamic") +elseif(SCRIPTS MATCHES "static") + set(SCRIPTS_DEFAULT_LINKAGE "static") +else() + set(SCRIPTS_DEFAULT_LINKAGE "disabled") endif() -if(EXISTS "${AC_SCRIPTS_DIR}/Custom/CMakeLists.txt") -include(Custom/CMakeLists.txt) +# Sets the MODULES_${SOURCE_MODULE} variables +# when using predefined templates for script building +# like dynamic, static +# Sets MODULES_DEFAULT_LINKAGE +if(MODULES MATCHES "dynamic") + set(MODULES_DEFAULT_LINKAGE "dynamic") +elseif(MODULES MATCHES "static") + set(MODULES_DEFAULT_LINKAGE "static") +else() + set(MODULES_DEFAULT_LINKAGE "disabled") endif() +# Sets SCRIPTS_USE_WHITELIST +# Sets SCRIPTS_WHITELIST +if(SCRIPTS MATCHES "minimal") + set(SCRIPTS_USE_WHITELIST ON) + # Whitelist which is used when minimal is selected + list(APPEND SCRIPTS_WHITELIST Commands Spells) +endif() + +# Add support old api modules CU_GET_GLOBAL("AC_ADD_SCRIPTS_LIST") CU_GET_GLOBAL("AC_ADD_SCRIPTS_INCLUDE") -CU_GET_GLOBAL("AC_SCRIPTS_SOURCES") - -set(scripts_STAT_SRCS - ${scripts_STAT_SRCS} - ${AC_SCRIPTS_SOURCES} -) set("AC_SCRIPTS_INCLUDES" "") +set("AC_MODULE_LIST" "") +set("AC_SCRIPTS_LIST" "") + +foreach(include ${AC_ADD_SCRIPTS_INCLUDE}) + set("AC_SCRIPTS_INCLUDES" "#include \"${include}\"\n${AC_SCRIPTS_INCLUDES}") +endforeach() + +foreach(void ${AC_ADD_SCRIPTS_LIST}) + set("AC_MODULE_LIST" "void ${void};\n${AC_MODULE_LIST}") +endforeach() + +foreach(scriptName ${AC_ADD_SCRIPTS_LIST}) + set("AC_SCRIPTS_LIST" " ${scriptName};\n${AC_SCRIPTS_LIST}") +endforeach() + +# Set the SCRIPTS_${SCRIPT_MODULE} variables from the +# variables set above +foreach(SCRIPT_MODULE ${SCRIPT_MODULE_LIST}) + ScriptModuleNameToVariable(${SCRIPT_MODULE} SCRIPT_MODULE_VARIABLE) + + if(${SCRIPT_MODULE_VARIABLE} STREQUAL "default") + if(SCRIPTS_USE_WHITELIST) + list(FIND SCRIPTS_WHITELIST "${SCRIPT_MODULE}" INDEX) + if(${INDEX} GREATER -1) + set(${SCRIPT_MODULE_VARIABLE} ${SCRIPTS_DEFAULT_LINKAGE}) + else() + set(${SCRIPT_MODULE_VARIABLE} "disabled") + endif() + else() + set(${SCRIPT_MODULE_VARIABLE} ${SCRIPTS_DEFAULT_LINKAGE}) + endif() + endif() + + # Build the Graph values + if(${SCRIPT_MODULE_VARIABLE} MATCHES "dynamic") + GetProjectNameOfScriptModule(${SCRIPT_MODULE} SCRIPT_MODULE_PROJECT_NAME) + GetNativeSharedLibraryName(${SCRIPT_MODULE_PROJECT_NAME} SCRIPT_PROJECT_LIBRARY) + list(APPEND SCRIPT_GRAPH_KEYS ${SCRIPT_MODULE_PROJECT_NAME}) + set(SCRIPT_GRAPH_VALUE_DISPLAY_${SCRIPT_MODULE_PROJECT_NAME} ${SCRIPT_PROJECT_LIBRARY}) + list(APPEND SCRIPT_GRAPH_VALUE_CONTAINS_MODULES_${SCRIPT_MODULE_PROJECT_NAME} ${SCRIPT_MODULE}) + elseif(${SCRIPT_MODULE_VARIABLE} MATCHES "static") + list(APPEND SCRIPT_GRAPH_KEYS worldserver) + set(SCRIPT_GRAPH_VALUE_DISPLAY_worldserver worldserver) + list(APPEND SCRIPT_GRAPH_VALUE_CONTAINS_MODULES_worldserver ${SCRIPT_MODULE}) + else() + list(APPEND SCRIPT_GRAPH_KEYS disabled) + set(SCRIPT_GRAPH_VALUE_DISPLAY_disabled disabled) + list(APPEND SCRIPT_GRAPH_VALUE_CONTAINS_MODULES_disabled ${SCRIPT_MODULE}) + endif() +endforeach() + +# Set the MODULES_${SOURCE_MODULE} variables from the +# variables set above +foreach(SOURCE_MODULE ${MODULES_MODULE_LIST}) + ModuleNameToVariable(${SOURCE_MODULE} MODULE_MODULE_VARIABLE) + + if(${MODULE_MODULE_VARIABLE} STREQUAL "default") + set(${MODULE_MODULE_VARIABLE} ${MODULES_DEFAULT_LINKAGE}) + endif() + + # Use only static for deprecated api loaders + if (AC_SCRIPTS_INCLUDES MATCHES "${SOURCE_MODULE}") + set(${MODULE_MODULE_VARIABLE} "static") + endif() + + # Use only static for mod-eluna-lua-engine + if (SOURCE_MODULE MATCHES "mod-eluna-lua-engine") + set(${MODULE_MODULE_VARIABLE} "static") + endif() -FOREACH (include ${AC_ADD_SCRIPTS_INCLUDE}) - set("AC_SCRIPTS_INCLUDES" "#include \"${include}\"\n${AC_SCRIPTS_INCLUDES}") -ENDFOREACH() + # Build the Graph values + if(${MODULE_MODULE_VARIABLE} MATCHES "dynamic") + GetProjectNameOfModuleName(${SOURCE_MODULE} MODULE_SOURCE_PROJECT_NAME) + GetNativeSharedLibraryName(${MODULE_SOURCE_PROJECT_NAME} MODULE_PROJECT_LIBRARY) + list(APPEND MODULE_GRAPH_KEYS ${MODULE_SOURCE_PROJECT_NAME}) + set(MODULE_GRAPH_VALUE_DISPLAY_${MODULE_SOURCE_PROJECT_NAME} ${MODULE_PROJECT_LIBRARY}) + list(APPEND MODULE_GRAPH_VALUE_CONTAINS_MODULES_${MODULE_SOURCE_PROJECT_NAME} ${SOURCE_MODULE}) + elseif(${MODULE_MODULE_VARIABLE} MATCHES "static") + list(APPEND MODULE_GRAPH_KEYS worldserver) + set(MODULE_GRAPH_VALUE_DISPLAY_worldserver worldserver) + list(APPEND MODULE_GRAPH_VALUE_CONTAINS_MODULES_worldserver ${SOURCE_MODULE}) + else() + list(APPEND MODULE_GRAPH_KEYS disabled) + set(MODULE_GRAPH_VALUE_DISPLAY_disabled disabled) + list(APPEND MODULE_GRAPH_VALUE_CONTAINS_MODULES_disabled ${SOURCE_MODULE}) + endif() +endforeach() -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/GenLoader.cpp.cmake ${BUILDDIR}/GenLoader.cpp) +list(SORT SCRIPT_GRAPH_KEYS) +list(SORT MODULE_GRAPH_KEYS) +list(REMOVE_DUPLICATES SCRIPT_GRAPH_KEYS) +list(REMOVE_DUPLICATES MODULE_GRAPH_KEYS) + +# Display the script graph +message("* Script configuration (${SCRIPTS}): + |") + +foreach(SCRIPT_GRAPH_KEY ${SCRIPT_GRAPH_KEYS}) + if(NOT SCRIPT_GRAPH_KEY STREQUAL "disabled") + message(" +- ${SCRIPT_GRAPH_VALUE_DISPLAY_${SCRIPT_GRAPH_KEY}}") + else() + message(" | ${SCRIPT_GRAPH_VALUE_DISPLAY_${SCRIPT_GRAPH_KEY}}") + endif() + foreach(SCRIPT_GRAPH_PROJECT_ENTRY ${SCRIPT_GRAPH_VALUE_CONTAINS_MODULES_${SCRIPT_GRAPH_KEY}}) + message(" | +- ${SCRIPT_GRAPH_PROJECT_ENTRY}") + endforeach() + message(" |") +endforeach() -message(STATUS "SCRIPT PREPARATION COMPLETE") message("") -if (USE_SCRIPTPCH) - set(PRIVATE_PCH_HEADER PrecompiledHeaders/ScriptPCH.h) -endif () +# Display the module graph +message("* Modules configuration (${MODULES}): + |") + +foreach(MODULE_GRAPH_KEY ${MODULE_GRAPH_KEYS}) + if(NOT MODULE_GRAPH_KEY STREQUAL "disabled") + message(" +- ${MODULE_GRAPH_VALUE_DISPLAY_${MODULE_GRAPH_KEY}}") + else() + message(" | ${MODULE_GRAPH_VALUE_DISPLAY_${MODULE_GRAPH_KEY}}") + endif() + foreach(MODULE_GRAPH_PROJECT_ENTRY ${MODULE_GRAPH_VALUE_CONTAINS_MODULES_${MODULE_GRAPH_KEY}}) + message(" | +- ${MODULE_GRAPH_PROJECT_ENTRY}") + endforeach() + message(" |") +endforeach() + +message("") + +# Base sources which are used by every script project +if(USE_SCRIPTPCH) + set(PRIVATE_PCH_HEADER ScriptPCH.h) +endif() -# Group sources GroupSources(${CMAKE_CURRENT_SOURCE_DIR}) -add_library(scripts-interface INTERFACE) +# Configures the scriptloader with the given name and stores the output in the LOADER_OUT variable. +# It is possible to expose multiple subdirectories from the same scriptloader through passing +# it to the variable arguments +function(ConfigureScriptLoader SCRIPTLOADER_NAME LOADER_OUT IS_DYNAMIC_SCRIPTLOADER) + # Deduces following variables which are referenced by thge template: + # ACORE_IS_DYNAMIC_SCRIPTLOADER + # ACORE_SCRIPTS_FORWARD_DECL + # ACORE_SCRIPTS_INVOKE + # ACORE_CURRENT_SCRIPT_PROJECT -CollectIncludeDirectories( - ${CMAKE_CURRENT_SOURCE_DIR} - PUBLIC_INCLUDES - # Exclude - ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders) + # To generate export macros + set(ACORE_IS_DYNAMIC_SCRIPTLOADER ${IS_DYNAMIC_SCRIPTLOADER}) -target_include_directories(scripts-interface - INTERFACE - ${PUBLIC_INCLUDES}) + # To generate forward declarations of the loading functions + unset(ACORE_SCRIPTS_FORWARD_DECL) + unset(ACORE_SCRIPTS_INVOKE) -target_link_libraries(scripts-interface - INTERFACE - common) + # The current script project which is built in + set(ACORE_CURRENT_SCRIPT_PROJECT ${SCRIPTLOADER_NAME}) -add_library(scripts STATIC - ${scripts_STAT_SRCS} -) + foreach(LOCALE_SCRIPT_MODULE ${ARGN}) -target_include_directories(scripts - PRIVATE - ${CMAKE_CURRENT_BINARY_DIR}) + # Replace bad words + string(REGEX REPLACE - "_" LOCALE_SCRIPT_MODULE ${LOCALE_SCRIPT_MODULE}) + + # Determine the loader function ("Add##${NameOfDirectory}##Scripts()") + set(LOADER_FUNCTION + "Add${LOCALE_SCRIPT_MODULE}Scripts()") + + # Generate the funciton call and the forward declarations + set(ACORE_SCRIPTS_FORWARD_DECL + "${ACORE_SCRIPTS_FORWARD_DECL}void ${LOADER_FUNCTION};\n") + + set(ACORE_SCRIPTS_INVOKE + "${ACORE_SCRIPTS_INVOKE} ${LOADER_FUNCTION};\n") + endforeach() + + set(GENERATED_LOADER ${CMAKE_CURRENT_BINARY_DIR}/gen_scriptloader/${SCRIPTLOADER_NAME}/ScriptLoader.cpp) + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/ScriptLoader.cpp.in.cmake ${GENERATED_LOADER}) + set(${LOADER_OUT} ${GENERATED_LOADER} PARENT_SCOPE) +endfunction() + +# Generates the actual script projects +# Fills the STATIC_SCRIPT_MODULES and DYNAMIC_SCRIPT_MODULE_PROJECTS variables +# which contain the names which scripts are linked statically/dynamically and +# adds the sources of the static modules to the PRIVATE_SOURCES variable. +foreach(SCRIPT_MODULE ${SCRIPT_MODULE_LIST}) + GetPathToScriptModule(${SCRIPT_MODULE} SCRIPT_MODULE_PATH) + ScriptModuleNameToVariable(${SCRIPT_MODULE} SCRIPT_MODULE_VARIABLE) + + if((${SCRIPT_MODULE_VARIABLE} STREQUAL "disabled") OR + (${SCRIPT_MODULE_VARIABLE} STREQUAL "static")) + # Uninstall disabled modules + GetProjectNameOfScriptModule(${SCRIPT_MODULE} SCRIPT_MODULE_PROJECT_NAME) + GetNativeSharedLibraryName(${SCRIPT_MODULE_PROJECT_NAME} SCRIPT_MODULE_OUTPUT_NAME) + list(APPEND DISABLED_SCRIPT_MODULE_PROJECTS ${INSTALL_OFFSET}/${SCRIPT_MODULE_OUTPUT_NAME}) + if(${SCRIPT_MODULE_VARIABLE} STREQUAL "static") + # Add the module name to STATIC_SCRIPT_MODULES + list(APPEND STATIC_SCRIPT_MODULES ${SCRIPT_MODULE}) + # Add the module content to the whole static module + CollectSourceFiles(${SCRIPT_MODULE_PATH} PRIVATE_SOURCES) + endif() + elseif(${SCRIPT_MODULE_VARIABLE} STREQUAL "dynamic") + + # Generate an own dynamic module which is loadable on runtime + # Add the module content to the whole static module + unset(SCRIPT_MODULE_PRIVATE_SOURCES) + CollectSourceFiles(${SCRIPT_MODULE_PATH} SCRIPT_MODULE_PRIVATE_SOURCES) + + # Configure the scriptloader + ConfigureScriptLoader(${SCRIPT_MODULE} SCRIPT_MODULE_PRIVATE_SCRIPTLOADER ON ${SCRIPT_MODULE}) + GetProjectNameOfScriptModule(${SCRIPT_MODULE} SCRIPT_MODULE_PROJECT_NAME) + + # Add the module name to DYNAMIC_SCRIPT_MODULES + list(APPEND DYNAMIC_SCRIPT_MODULE_PROJECTS ${SCRIPT_MODULE_PROJECT_NAME}) + + # Create the script module project + add_library(${SCRIPT_MODULE_PROJECT_NAME} SHARED + ${SCRIPT_MODULE_PRIVATE_SOURCES} + ${SCRIPT_MODULE_PRIVATE_SCRIPTLOADER}) + + target_link_libraries(${SCRIPT_MODULE_PROJECT_NAME} + PRIVATE + acore-core-interface + PUBLIC + game) + + target_include_directories(${SCRIPT_MODULE_PROJECT_NAME} + PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR}) + + set_target_properties(${SCRIPT_MODULE_PROJECT_NAME} + PROPERTIES + FOLDER + "scripts") + + if(UNIX) + install(TARGETS ${SCRIPT_MODULE_PROJECT_NAME} + DESTINATION ${INSTALL_OFFSET} COMPONENT ${SCRIPT_MODULE_PROJECT_NAME}) + elseif(WIN32) + install(TARGETS ${SCRIPT_MODULE_PROJECT_NAME} + RUNTIME DESTINATION ${INSTALL_OFFSET} COMPONENT ${SCRIPT_MODULE_PROJECT_NAME}) + if(MSVC) + # Place the script modules in the script subdirectory + set_target_properties(${SCRIPT_MODULE_PROJECT_NAME} PROPERTIES + RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/bin/Debug/scripts + RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin/Release/scripts + RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO ${CMAKE_BINARY_DIR}/bin/RelWithDebInfo/scripts + RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL ${CMAKE_BINARY_DIR}/bin/MinSizeRel/scripts) + endif() + endif() + else() + message(FATAL_ERROR "Unknown value \"${${SCRIPT_MODULE_VARIABLE}}\"!") + endif() +endforeach() + +# Generates the actual module projects +# Fills the STATIC_SCRIPT_MODULES and DYNAMIC_SCRIPT_MODULE_PROJECTS variables +# which contain the names which scripts are linked statically/dynamically and +# adds the sources of the static modules to the PRIVATE_SOURCES variable. +foreach(SOURCE_MODULE ${MODULES_MODULE_LIST}) + GetPathToModuleSource(${SOURCE_MODULE} MODULE_SOURCE_PATH) + ModuleNameToVariable(${SOURCE_MODULE} MODULE_MODULE_VARIABLE) + + if((${MODULE_MODULE_VARIABLE} STREQUAL "disabled") OR + (${MODULE_MODULE_VARIABLE} STREQUAL "static")) + + # Uninstall disabled modules + GetProjectNameOfModuleName(${SOURCE_MODULE} MODULE_SOURCE_PROJECT_NAME) + GetNativeSharedLibraryName(${MODULE_SOURCE_PROJECT_NAME} SCRIPT_MODULE_OUTPUT_NAME) + list(APPEND DISABLED_SCRIPT_MODULE_PROJECTS ${INSTALL_OFFSET}/${SCRIPT_MODULE_OUTPUT_NAME}) + if(${MODULE_MODULE_VARIABLE} STREQUAL "static") + + # Add the module content to the whole static module + CollectSourceFiles(${MODULE_SOURCE_PATH} PRIVATE_SOURCES) + + # Skip deprecated api loaders + if (AC_SCRIPTS_INCLUDES MATCHES "${SOURCE_MODULE}") + message("> Module (${SOURCE_MODULE}) using deprecated loader api") + continue() + endif() + + # Skip mod-eluna-lua-engine + if (SOURCE_MODULE MATCHES "mod-eluna-lua-engine") + continue() + endif() + + # Add the module name to STATIC_SCRIPT_MODULES + list(APPEND STATIC_SCRIPT_MODULES ${SOURCE_MODULE}) + + endif() + elseif(${MODULE_MODULE_VARIABLE} STREQUAL "dynamic") + + # Generate an own dynamic module which is loadable on runtime + # Add the module content to the whole static module + unset(MODULE_SOURCE_PRIVATE_SOURCES) + CollectSourceFiles(${MODULE_SOURCE_PATH} MODULE_SOURCE_PRIVATE_SOURCES) + + # Configure the scriptloader + ConfigureScriptLoader(${SOURCE_MODULE} SCRIPT_MODULE_PRIVATE_SCRIPTLOADER ON ${SOURCE_MODULE}) + GetProjectNameOfModuleName(${SOURCE_MODULE} MODULE_SOURCE_PROJECT_NAME) + + # Add the module name to DYNAMIC_SCRIPT_MODULES + list(APPEND DYNAMIC_SCRIPT_MODULE_PROJECTS ${MODULE_SOURCE_PROJECT_NAME}) + + # Create the script module project + add_library(${MODULE_SOURCE_PROJECT_NAME} SHARED + ${MODULE_SOURCE_PRIVATE_SOURCES} + ${SCRIPT_MODULE_PRIVATE_SCRIPTLOADER}) + + target_link_libraries(${MODULE_SOURCE_PROJECT_NAME} + PRIVATE + acore-core-interface + PUBLIC + game) + + target_include_directories(${MODULE_SOURCE_PROJECT_NAME} + PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR}) + + set_target_properties(${MODULE_SOURCE_PROJECT_NAME} + PROPERTIES + FOLDER + "scripts") + + if(UNIX) + install(TARGETS ${MODULE_SOURCE_PROJECT_NAME} + DESTINATION ${INSTALL_OFFSET} COMPONENT ${MODULE_SOURCE_PROJECT_NAME}) + elseif(WIN32) + install(TARGETS ${MODULE_SOURCE_PROJECT_NAME} + RUNTIME DESTINATION ${INSTALL_OFFSET} COMPONENT ${MODULE_SOURCE_PROJECT_NAME}) + if(MSVC) + # Place the script modules in the script subdirectory + set_target_properties(${MODULE_SOURCE_PROJECT_NAME} PROPERTIES + RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/bin/Debug/scripts + RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin/Release/scripts + RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO ${CMAKE_BINARY_DIR}/bin/RelWithDebInfo/scripts + RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL ${CMAKE_BINARY_DIR}/bin/MinSizeRel/scripts) + endif() + endif() + else() + message(FATAL_ERROR "Unknown value \"${${MODULE_MODULE_VARIABLE}}\" for module (${SOURCE_MODULE})!") + endif() +endforeach() + +# Add the dynamic script modules to the worldserver as dependency +set(WORLDSERVER_DYNAMIC_SCRIPT_MODULES_DEPENDENCIES ${DYNAMIC_SCRIPT_MODULE_PROJECTS} PARENT_SCOPE) + +ConfigureScriptLoader("static" SCRIPT_MODULE_PRIVATE_SCRIPTLOADER OFF ${STATIC_SCRIPT_MODULES}) + +list(REMOVE_DUPLICATES SCRIPT_MODULE_PRIVATE_SCRIPTLOADER) + +add_library(scripts STATIC + ScriptLoader.h + ${SCRIPT_MODULE_PRIVATE_SCRIPTLOADER} + ${PRIVATE_SOURCES}) target_link_libraries(scripts PRIVATE - scripts-interface + acore-core-interface + PUBLIC game-interface) +target_include_directories(scripts + PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR}) + set_target_properties(scripts PROPERTIES FOLDER - "server") - -add_dependencies(scripts revision.h) + "scripts") # Generate precompiled header -if (USE_SCRIPTPCH) - add_cxx_pch(scripts ${PRIVATE_PCH_HEADER}) +if(USE_SCRIPTPCH) + list(APPEND ALL_SCRIPT_PROJECTS scripts ${DYNAMIC_SCRIPT_MODULE_PROJECTS}) + add_cxx_pch("${ALL_SCRIPT_PROJECTS}" ${PRIVATE_PCH_HEADER}) +endif() + +# Remove all shared libraries in the installl directory which +# are contained in the static library already. +if(DISABLED_SCRIPT_MODULE_PROJECTS) + install(CODE " + foreach(SCRIPT_TO_UNINSTALL ${DISABLED_SCRIPT_MODULE_PROJECTS}) + if(EXISTS \"\${SCRIPT_TO_UNINSTALL}\") + message(STATUS \"Uninstalling: \${SCRIPT_TO_UNINSTALL}\") + file(REMOVE \"\${SCRIPT_TO_UNINSTALL}\") + endif() + endforeach() + ") endif() + +message("")
\ No newline at end of file diff --git a/src/server/scripts/Commands/CMakeLists.txt b/src/server/scripts/Commands/CMakeLists.txt deleted file mode 100644 index 0007a4a1c9..0000000000 --- a/src/server/scripts/Commands/CMakeLists.txt +++ /dev/null @@ -1,118 +0,0 @@ -# Copyright (C) -# -# This file is free software; as a special exception the author gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the -# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -set(scripts_STAT_SRCS - ${scripts_STAT_SRCS} - Commands/PlayerCommand.cpp - Commands/cs_account.cpp - Commands/cs_achievement.cpp - Commands/cs_arena.cpp - Commands/cs_ban.cpp - Commands/cs_bf.cpp - Commands/cs_cast.cpp - Commands/cs_character.cpp - Commands/cs_cheat.cpp - Commands/cs_debug.cpp - Commands/cs_deserter.cpp - Commands/cs_disable.cpp - Commands/cs_event.cpp - Commands/cs_gm.cpp - Commands/cs_go.cpp - Commands/cs_gobject.cpp - Commands/cs_guild.cpp - Commands/cs_honor.cpp - Commands/cs_instance.cpp - Commands/cs_learn.cpp - Commands/cs_lfg.cpp - Commands/cs_list.cpp - Commands/cs_lookup.cpp - Commands/cs_message.cpp - Commands/cs_misc.cpp - Commands/cs_mmaps.cpp - Commands/cs_modify.cpp - Commands/cs_npc.cpp - Commands/cs_quest.cpp - Commands/cs_reload.cpp - Commands/cs_reset.cpp - Commands/cs_server.cpp - Commands/cs_tele.cpp - Commands/cs_ticket.cpp - Commands/cs_titles.cpp - Commands/cs_wp.cpp - Commands/cs_spectator.cpp - Commands/cs_player.cpp -# Commands/cs_pdump.cpp -# Commands/cs_channel.cpp -# Commands/cs_pet.cpp -# Commands/cs_aura.cpp -# Commands/cs_unaura.cpp -# Commands/cs_nameannounce.cpp -# Commands/cs_gmnameannounce.cpp -# Commands/cs_announce.cpp -# Commands/cs_gmannounce.cpp -# Commands/cs_notify.cpp -# Commands/cs_gmnotify.cpp -# Commands/cs_appear.cpp -# Commands/cs_summon.cpp -# Commands/cs_groupsummon.cpp -# Commands/cs_commands.cpp -# Commands/cs_demorph.cpp -# Commands/cs_die.cpp -# Commands/cs_revive.cpp -# Commands/cs_dismount.cpp -# Commands/cs_guid.cpp -# Commands/cs_help.cpp -# Commands/cs_itemmove.cpp -# Commands/cs_cooldown.cpp -# Commands/cs_unlearn.cpp -# Commands/cs_distance.cpp -# Commands/cs_recall.cpp -# Commands/cs_save.cpp -# Commands/cs_saveall.cpp -# Commands/cs_kick.cpp -# Commands/cs_start.cpp -# Commands/cs_taxicheat.cpp -# Commands/cs_linkgrave.cpp -# Commands/cs_neargrave.cpp -# Commands/cs_explorecheat.cpp -# Commands/cs_hover.cpp -# Commands/cs_levelup.cpp -# Commands/cs_showarea.cpp -# Commands/cs_hidearea.cpp -# Commands/cs_additem.cpp -# Commands/cs_additemset.cpp -# Commands/cs_bank.cpp -# Commands/cs_wchange.cpp -# Commands/cs_maxskill.cpp -# Commands/cs_setskill.cpp -# Commands/cs_whispers.cpp -# Commands/cs_pinfo.cpp -# Commands/cs_respawn.cpp -# Commands/cs_send.cpp -# Commands/cs_mute.cpp -# Commands/cs_unmute.cpp -# Commands/cs_movegens.cpp -# Commands/cs_cometome.cpp -# Commands/cs_damage.cpp -# Commands/cs_combatstop.cpp -# Commands/cs_flusharenapoints.cpp -# Commands/cs_repairitems.cpp -# Commands/cs_waterwalk.cpp -# Commands/cs_freeze.cpp -# Commands/cs_unfreeze.cpp -# Commands/cs_listfreeze.cpp -# Commands/cs_possess.cpp -# Commands/cs_unpossess.cpp -# Commands/cs_bindsight.cpp -# Commands/cs_unbindsight.cpp -# Commands/cs_playall.cpp -) - -message(" -> Prepared: Commands") diff --git a/src/server/scripts/Commands/cs_script_loader.cpp b/src/server/scripts/Commands/cs_script_loader.cpp new file mode 100644 index 0000000000..3a3b6cdd41 --- /dev/null +++ b/src/server/scripts/Commands/cs_script_loader.cpp @@ -0,0 +1,86 @@ +/* + * Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3 + * Copyright (C) 2021+ WarheadCore <https://github.com/WarheadCore> + */ + +// This is where scripts' loading functions should be declared: +void AddSC_account_commandscript(); +void AddSC_achievement_commandscript(); +void AddSC_arena_commandscript(); +void AddSC_ban_commandscript(); +void AddSC_bf_commandscript(); +void AddSC_cast_commandscript(); +void AddSC_character_commandscript(); +void AddSC_cheat_commandscript(); +void AddSC_debug_commandscript(); +void AddSC_deserter_commandscript(); +void AddSC_disable_commandscript(); +void AddSC_event_commandscript(); +void AddSC_gm_commandscript(); +void AddSC_go_commandscript(); +void AddSC_gobject_commandscript(); +void AddSC_guild_commandscript(); +void AddSC_honor_commandscript(); +void AddSC_instance_commandscript(); +void AddSC_learn_commandscript(); +void AddSC_lfg_commandscript(); +void AddSC_list_commandscript(); +void AddSC_lookup_commandscript(); +void AddSC_message_commandscript(); +void AddSC_misc_commandscript(); +void AddSC_mmaps_commandscript(); +void AddSC_modify_commandscript(); +void AddSC_npc_commandscript(); +void AddSC_quest_commandscript(); +void AddSC_reload_commandscript(); +void AddSC_reset_commandscript(); +void AddSC_server_commandscript(); +void AddSC_spectator_commandscript(); +void AddSC_tele_commandscript(); +void AddSC_ticket_commandscript(); +void AddSC_titles_commandscript(); +void AddSC_wp_commandscript(); +void AddSC_player_commandscript(); + +// The name of this function should match: +// void Add${NameOfDirectory}Scripts() +void AddCommandsScripts() +{ + AddSC_account_commandscript(); + AddSC_achievement_commandscript(); + AddSC_arena_commandscript(); + AddSC_ban_commandscript(); + AddSC_bf_commandscript(); + AddSC_cast_commandscript(); + AddSC_character_commandscript(); + AddSC_cheat_commandscript(); + AddSC_debug_commandscript(); + AddSC_deserter_commandscript(); + AddSC_disable_commandscript(); + AddSC_event_commandscript(); + AddSC_gm_commandscript(); + AddSC_go_commandscript(); + AddSC_gobject_commandscript(); + AddSC_guild_commandscript(); + AddSC_honor_commandscript(); + AddSC_instance_commandscript(); + AddSC_learn_commandscript(); + AddSC_lfg_commandscript(); + AddSC_list_commandscript(); + AddSC_lookup_commandscript(); + AddSC_message_commandscript(); + AddSC_misc_commandscript(); + AddSC_mmaps_commandscript(); + AddSC_modify_commandscript(); + AddSC_npc_commandscript(); + AddSC_quest_commandscript(); + AddSC_reload_commandscript(); + AddSC_reset_commandscript(); + AddSC_server_commandscript(); + AddSC_spectator_commandscript(); + AddSC_tele_commandscript(); + AddSC_ticket_commandscript(); + AddSC_titles_commandscript(); + AddSC_wp_commandscript(); + AddSC_player_commandscript(); +} diff --git a/src/server/scripts/Custom/custom_script_loader.cpp b/src/server/scripts/Custom/custom_script_loader.cpp new file mode 100644 index 0000000000..1b0324e82c --- /dev/null +++ b/src/server/scripts/Custom/custom_script_loader.cpp @@ -0,0 +1,14 @@ +/* + * Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3 + * Copyright (C) 2021+ WarheadCore <https://github.com/WarheadCore> + */ + +// This is where scripts' loading functions should be declared: +// void MyExampleScript() + +// The name of this function should match: +// void Add${NameOfDirectory}Scripts() +void AddCustomScripts() +{ + // MyExampleScript() +} diff --git a/src/server/scripts/EasternKingdoms/CMakeLists.txt b/src/server/scripts/EasternKingdoms/CMakeLists.txt deleted file mode 100644 index 46e66ec197..0000000000 --- a/src/server/scripts/EasternKingdoms/CMakeLists.txt +++ /dev/null @@ -1,168 +0,0 @@ -# Copyright (C) -# -# This file is free software; as a special exception the author gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the -# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -set(scripts_STAT_SRCS - ${scripts_STAT_SRCS} - ${AC_SCRIPTS_DIR}/EasternKingdoms/zone_ghostlands.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/zone_eversong_woods.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/AlteracValley/boss_galvangar.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/AlteracValley/boss_balinda.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/AlteracValley/boss_drekthar.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/AlteracValley/boss_vanndar.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/AlteracValley/alterac_valley.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_high_interrogator_gerstahn.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_gorosh_the_dervish.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_anubshiah.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_general_angerforge.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_grizzle.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_ambassador_flamelash.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/BlackrockDepths/instance_blackrock_depths.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_moira_bronzebeard.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.h - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_magmus.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_firemaw.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_broodlord_lashlayer.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_ebonroc.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_flamegor.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/BlackwingLair/blackwing_lair.h - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_drakkisath.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_warmaster_voone.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_quartermaster_zigris.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_halycon.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_overlord_wyrmthalak.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_shadow_hunter_voshgajin.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gyth.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_highlord_omokk.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_the_beast.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gizrul_the_slavener.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_urok_doomhowl.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_lord_valthalak.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/BlackrockSpire/blackrock_spire.h - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/MoltenCore/boss_gehennas.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/MoltenCore/boss_lucifron.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/MoltenCore/boss_golemagg.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/MoltenCore/boss_majordomo_executus.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/MoltenCore/boss_baron_geddon.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/MoltenCore/boss_garr.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/MoltenCore/molten_core.h - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/MoltenCore/instance_molten_core.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/MoltenCore/boss_sulfuron_harbinger.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/MoltenCore/boss_magmadar.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/BlackrockMountain/MoltenCore/boss_shazzrah.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/Scholomance/scholomance.h - ${AC_SCRIPTS_DIR}/EasternKingdoms/Scholomance/instance_scholomance.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/zone_isle_of_queldanas.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/ZulGurub/boss_hakkar.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/ZulGurub/boss_mandokir.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/ZulGurub/boss_marli.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/ZulGurub/boss_hazzarah.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/ZulGurub/boss_jeklik.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/ZulGurub/boss_grilek.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/ZulGurub/zulgurub.h - ${AC_SCRIPTS_DIR}/EasternKingdoms/ZulGurub/boss_renataki.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/ZulGurub/boss_arlokk.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/ZulGurub/boss_gahzranka.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/ZulGurub/boss_venoxis.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/ZulGurub/instance_zulgurub.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/ZulGurub/boss_jindo.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/ZulGurub/boss_wushoolay.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/ZulGurub/boss_thekal.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/zone_wetlands.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/zone_arathi_highlands.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/Gnomeregan/instance_gnomeregan.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/Gnomeregan/gnomeregan.h - ${AC_SCRIPTS_DIR}/EasternKingdoms/zone_redridge_mountains.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/zone_ironforge.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/ScarletEnclave/chapter2.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/ScarletEnclave/chapter5.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/ScarletEnclave/chapter1.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/ScarletEnclave/zone_the_scarlet_enclave.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/zone_eastern_plaguelands.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/Stratholme/instance_stratholme.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/Stratholme/stratholme.h - ${AC_SCRIPTS_DIR}/EasternKingdoms/zone_tirisfal_glades.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/SunkenTemple/sunken_temple.h - ${AC_SCRIPTS_DIR}/EasternKingdoms/SunkenTemple/instance_sunken_temple.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/MagistersTerrace/magisters_terrace.h - ${AC_SCRIPTS_DIR}/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/Uldaman/uldaman.h - ${AC_SCRIPTS_DIR}/EasternKingdoms/Uldaman/instance_uldaman.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/SunwellPlateau/sunwell_plateau.h - ${AC_SCRIPTS_DIR}/EasternKingdoms/SunwellPlateau/boss_muru.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/zone_stranglethorn_vale.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/Deadmines/boss_mr_smite.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/Deadmines/instance_deadmines.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/Deadmines/deadmines.h - ${AC_SCRIPTS_DIR}/EasternKingdoms/zone_duskwood.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/ScarletMonastery/scarletmonastery.h - ${AC_SCRIPTS_DIR}/EasternKingdoms/zone_undercity.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/ShadowfangKeep/shadowfang_keep.h - ${AC_SCRIPTS_DIR}/EasternKingdoms/zone_burning_steppes.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/zone_blasted_lands.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/zone_stormwind_city.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/ZulAman/boss_halazzi.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/ZulAman/boss_hexlord.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/ZulAman/boss_zuljin.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/ZulAman/boss_akilzon.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/ZulAman/instance_zulaman.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/ZulAman/boss_janalai.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/ZulAman/boss_nalorakk.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/ZulAman/zulaman.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/ZulAman/zulaman.h - ${AC_SCRIPTS_DIR}/EasternKingdoms/zone_hinterlands.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/zone_western_plaguelands.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/zone_alterac_mountains.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/zone_westfall.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/zone_silverpine_forest.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/Karazhan/instance_karazhan.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/Karazhan/boss_nightbane.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/Karazhan/karazhan.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/Karazhan/boss_curator.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/Karazhan/boss_netherspite.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/Karazhan/boss_midnight.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/Karazhan/bosses_opera.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/Karazhan/boss_moroes.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/Karazhan/boss_servant_quarters.cpp - ${AC_SCRIPTS_DIR}/EasternKingdoms/Karazhan/karazhan.h - ${AC_SCRIPTS_DIR}/EasternKingdoms/TheStockade/instance_the_stockade.cpp -) - -AC_ADD_SCRIPT_LOADER("EasternKingdoms" "ScriptLoader.h") - -message(" -> Prepared: Eastern Kingdoms") diff --git a/src/server/scripts/EasternKingdoms/eastern_kingdoms_script_loader.cpp b/src/server/scripts/EasternKingdoms/eastern_kingdoms_script_loader.cpp new file mode 100644 index 0000000000..bcb2461eb9 --- /dev/null +++ b/src/server/scripts/EasternKingdoms/eastern_kingdoms_script_loader.cpp @@ -0,0 +1,276 @@ +/* + * Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3 + * Copyright (C) 2021+ WarheadCore <https://github.com/WarheadCore> + */ + +// This is where scripts' loading functions should be declared: +void AddSC_alterac_valley(); //Alterac Valley +void AddSC_boss_balinda(); +void AddSC_boss_drekthar(); +void AddSC_boss_galvangar(); +void AddSC_boss_vanndar(); +void AddSC_blackrock_depths(); //Blackrock Depths +void AddSC_boss_ambassador_flamelash(); +void AddSC_boss_anubshiah(); +void AddSC_boss_draganthaurissan(); +void AddSC_boss_general_angerforge(); +void AddSC_boss_gorosh_the_dervish(); +void AddSC_boss_grizzle(); +void AddSC_boss_high_interrogator_gerstahn(); +void AddSC_boss_magmus(); +void AddSC_boss_moira_bronzebeard(); +void AddSC_boss_tomb_of_seven(); +void AddSC_instance_blackrock_depths(); +void AddSC_boss_drakkisath(); //Blackrock Spire +void AddSC_boss_halycon(); +void AddSC_boss_highlordomokk(); +void AddSC_boss_overlordwyrmthalak(); +void AddSC_boss_shadowvosh(); +void AddSC_boss_thebeast(); +void AddSC_boss_warmastervoone(); +void AddSC_boss_quatermasterzigris(); +void AddSC_boss_pyroguard_emberseer(); +void AddSC_boss_gyth(); +void AddSC_boss_rend_blackhand(); +void AddSC_boss_urok_doomhowl(); +void AddSC_boss_gizrul_the_slavener(); +void AddSC_instance_blackrock_spire(); +void AddSC_boss_razorgore(); //Blackwing lair +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_instance_blackwing_lair(); +void AddSC_boss_mr_smite(); +void AddSC_instance_deadmines(); //Deadmines +void AddSC_instance_gnomeregan(); //Gnomeregan +void AddSC_instance_karazhan(); //Karazhan +void AddSC_boss_servant_quarters(); +void AddSC_boss_attumen(); +void AddSC_boss_curator(); +void AddSC_boss_maiden_of_virtue(); +void AddSC_boss_shade_of_aran(); +void AddSC_boss_malchezaar(); +void AddSC_boss_terestian_illhoof(); +void AddSC_boss_moroes(); +void AddSC_bosses_opera(); +void AddSC_boss_netherspite(); +void AddSC_karazhan(); +void AddSC_boss_nightbane(); +void AddSC_boss_felblood_kaelthas(); // Magister's Terrace +void AddSC_boss_selin_fireheart(); +void AddSC_boss_vexallus(); +void AddSC_boss_priestess_delrissa(); +void AddSC_instance_magisters_terrace(); +void AddSC_boss_lucifron(); //Molten core +void AddSC_boss_magmadar(); +void AddSC_boss_gehennas(); +void AddSC_boss_garr(); +void AddSC_boss_baron_geddon(); +void AddSC_boss_shazzrah(); +void AddSC_boss_golemagg(); +void AddSC_boss_sulfuron(); +void AddSC_boss_majordomo(); +void AddSC_boss_ragnaros(); +void AddSC_instance_molten_core(); +void AddSC_the_scarlet_enclave(); //Scarlet Enclave +void AddSC_the_scarlet_enclave_c1(); +void AddSC_the_scarlet_enclave_c2(); +void AddSC_the_scarlet_enclave_c5(); +void AddSC_instance_scarlet_monastery(); //Scarlet Monastery +void AddSC_boss_kirtonos_the_herald(); +void AddSC_instance_scholomance(); //Scholomance +void AddSC_instance_shadowfang_keep(); //Shadowfang keep +void AddSC_instance_stratholme(); //Stratholme +void AddSC_instance_sunken_temple(); //Sunken Temple +void AddSC_instance_sunwell_plateau(); //Sunwell Plateau +void AddSC_boss_kalecgos(); +void AddSC_boss_brutallus(); +void AddSC_boss_felmyst(); +void AddSC_boss_eredar_twins(); +void AddSC_boss_muru(); +void AddSC_boss_kiljaeden(); +void AddSC_instance_the_stockade(); //The Stockade +void AddSC_instance_uldaman(); //Uldaman +void AddSC_boss_akilzon(); //Zul'Aman +void AddSC_boss_halazzi(); +void AddSC_boss_hex_lord_malacrass(); +void AddSC_boss_janalai(); +void AddSC_boss_nalorakk(); +void AddSC_boss_zuljin(); +void AddSC_instance_zulaman(); +void AddSC_zulaman(); +void AddSC_boss_jeklik(); //Zul'Gurub +void AddSC_boss_venoxis(); +void AddSC_boss_marli(); +void AddSC_boss_mandokir(); +void AddSC_boss_gahzranka(); +void AddSC_boss_thekal(); +void AddSC_boss_arlokk(); +void AddSC_boss_jindo(); +void AddSC_boss_hakkar(); +void AddSC_boss_grilek(); +void AddSC_boss_hazzarah(); +void AddSC_boss_renataki(); +void AddSC_boss_wushoolay(); +void AddSC_instance_zulgurub(); +// void AddSC_alterac_mountains(); +void AddSC_arathi_highlands(); +void AddSC_blasted_lands(); +void AddSC_duskwood(); +void AddSC_eastern_plaguelands(); +void AddSC_eversong_woods(); +void AddSC_ghostlands(); +void AddSC_hinterlands(); +void AddSC_ironforge(); +void AddSC_isle_of_queldanas(); +void AddSC_redridge_mountains(); +void AddSC_silverpine_forest(); +void AddSC_stormwind_city(); +void AddSC_stranglethorn_vale(); +void AddSC_tirisfal_glades(); +void AddSC_undercity(); +void AddSC_western_plaguelands(); +void AddSC_westfall(); +// void AddSC_wetlands(); + +// The name of this function should match: +// void Add${NameOfDirectory}Scripts() +void AddEasternKingdomsScripts() +{ + AddSC_alterac_valley(); //Alterac Valley + AddSC_boss_balinda(); + AddSC_boss_drekthar(); + AddSC_boss_galvangar(); + AddSC_boss_vanndar(); + AddSC_blackrock_depths(); //Blackrock Depths + AddSC_boss_ambassador_flamelash(); + AddSC_boss_anubshiah(); + AddSC_boss_draganthaurissan(); + AddSC_boss_general_angerforge(); + AddSC_boss_gorosh_the_dervish(); + AddSC_boss_grizzle(); + AddSC_boss_high_interrogator_gerstahn(); + AddSC_boss_magmus(); + AddSC_boss_moira_bronzebeard(); + AddSC_boss_tomb_of_seven(); + AddSC_instance_blackrock_depths(); + AddSC_boss_drakkisath(); //Blackrock Spire + AddSC_boss_halycon(); + AddSC_boss_highlordomokk(); + AddSC_boss_overlordwyrmthalak(); + AddSC_boss_shadowvosh(); + AddSC_boss_thebeast(); + AddSC_boss_warmastervoone(); + AddSC_boss_quatermasterzigris(); + AddSC_boss_pyroguard_emberseer(); + AddSC_boss_gyth(); + AddSC_boss_rend_blackhand(); + AddSC_boss_urok_doomhowl(); + AddSC_boss_gizrul_the_slavener(); + AddSC_instance_blackrock_spire(); + AddSC_boss_razorgore(); //Blackwing lair + AddSC_boss_vaelastrasz(); + AddSC_boss_broodlord(); + AddSC_boss_firemaw(); + AddSC_boss_ebonroc(); + AddSC_boss_flamegor(); + AddSC_boss_chromaggus(); + AddSC_boss_nefarian(); + AddSC_instance_blackwing_lair(); + AddSC_boss_mr_smite(); + AddSC_instance_deadmines(); //Deadmines + AddSC_instance_gnomeregan(); //Gnomeregan + AddSC_instance_karazhan(); //Karazhan + AddSC_boss_servant_quarters(); + AddSC_boss_attumen(); + AddSC_boss_curator(); + AddSC_boss_maiden_of_virtue(); + AddSC_boss_shade_of_aran(); + AddSC_boss_malchezaar(); + AddSC_boss_terestian_illhoof(); + AddSC_boss_moroes(); + AddSC_bosses_opera(); + AddSC_boss_netherspite(); + AddSC_karazhan(); + AddSC_boss_nightbane(); + AddSC_boss_felblood_kaelthas(); // Magister's Terrace + AddSC_boss_selin_fireheart(); + AddSC_boss_vexallus(); + AddSC_boss_priestess_delrissa(); + AddSC_instance_magisters_terrace(); + AddSC_boss_lucifron(); //Molten core + AddSC_boss_magmadar(); + AddSC_boss_gehennas(); + AddSC_boss_garr(); + AddSC_boss_baron_geddon(); + AddSC_boss_shazzrah(); + AddSC_boss_golemagg(); + AddSC_boss_sulfuron(); + AddSC_boss_majordomo(); + AddSC_boss_ragnaros(); + AddSC_instance_molten_core(); + AddSC_the_scarlet_enclave(); //Scarlet Enclave + AddSC_the_scarlet_enclave_c1(); + AddSC_the_scarlet_enclave_c2(); + AddSC_the_scarlet_enclave_c5(); + AddSC_instance_scarlet_monastery(); //Scarlet Monastery + AddSC_boss_kirtonos_the_herald(); + AddSC_instance_scholomance(); //Scholomance + AddSC_instance_shadowfang_keep(); //Shadowfang keep + AddSC_instance_stratholme(); //Stratholme + AddSC_instance_sunken_temple(); //Sunken Temple + AddSC_instance_sunwell_plateau(); //Sunwell Plateau + AddSC_boss_kalecgos(); + AddSC_boss_brutallus(); + AddSC_boss_felmyst(); + AddSC_boss_eredar_twins(); + AddSC_boss_muru(); + AddSC_boss_kiljaeden(); + AddSC_instance_the_stockade(); //The Stockade + AddSC_instance_uldaman(); //Uldaman + AddSC_boss_akilzon(); //Zul'Aman + AddSC_boss_halazzi(); + AddSC_boss_hex_lord_malacrass(); + AddSC_boss_janalai(); + AddSC_boss_nalorakk(); + AddSC_boss_zuljin(); + AddSC_instance_zulaman(); + AddSC_zulaman(); + AddSC_boss_jeklik(); //Zul'Gurub + AddSC_boss_venoxis(); + AddSC_boss_marli(); + AddSC_boss_mandokir(); + AddSC_boss_gahzranka(); + AddSC_boss_thekal(); + AddSC_boss_arlokk(); + AddSC_boss_jindo(); + AddSC_boss_hakkar(); + AddSC_boss_grilek(); + AddSC_boss_hazzarah(); + AddSC_boss_renataki(); + AddSC_boss_wushoolay(); + AddSC_instance_zulgurub(); + //AddSC_alterac_mountains(); + AddSC_arathi_highlands(); + AddSC_blasted_lands(); + AddSC_duskwood(); + AddSC_eastern_plaguelands(); + AddSC_eversong_woods(); + AddSC_ghostlands(); + AddSC_hinterlands(); + AddSC_ironforge(); + AddSC_isle_of_queldanas(); + AddSC_redridge_mountains(); + AddSC_silverpine_forest(); + AddSC_stormwind_city(); + AddSC_stranglethorn_vale(); + AddSC_tirisfal_glades(); + AddSC_undercity(); + AddSC_western_plaguelands(); + AddSC_westfall(); + //AddSC_wetlands(); +} diff --git a/src/server/scripts/Events/CMakeLists.txt b/src/server/scripts/Events/CMakeLists.txt deleted file mode 100644 index 38d39ef0a7..0000000000 --- a/src/server/scripts/Events/CMakeLists.txt +++ /dev/null @@ -1,14 +0,0 @@ -set(scripts_STAT_SRCS - ${scripts_STAT_SRCS} - ${AC_SCRIPTS_DIR}/Events/brewfest.cpp - ${AC_SCRIPTS_DIR}/Events/childrens_week.cpp - ${AC_SCRIPTS_DIR}/Events/hallows_end.cpp - ${AC_SCRIPTS_DIR}/Events/pilgrims_bounty.cpp - ${AC_SCRIPTS_DIR}/Events/winter_veil.cpp - ${AC_SCRIPTS_DIR}/Events/love_in_air.cpp - ${AC_SCRIPTS_DIR}/Events/midsummer.cpp -) - -AC_ADD_SCRIPT_LOADER("Event" "ScriptLoader.h") - -message(" -> Prepared: Events") diff --git a/src/server/scripts/Events/events_script_loader.cpp b/src/server/scripts/Events/events_script_loader.cpp new file mode 100644 index 0000000000..8ca9f93385 --- /dev/null +++ b/src/server/scripts/Events/events_script_loader.cpp @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3 + * Copyright (C) 2021+ WarheadCore <https://github.com/WarheadCore> + */ + +// This is where scripts' loading functions should be declared: +void AddSC_event_brewfest_scripts(); +void AddSC_event_hallows_end_scripts(); +void AddSC_event_pilgrims_end_scripts(); +void AddSC_event_winter_veil_scripts(); +void AddSC_event_love_in_the_air(); +void AddSC_event_midsummer_scripts(); +void AddSC_event_childrens_week(); + +// The name of this function should match: +// void Add${NameOfDirectory}Scripts() +void AddEventsScripts() +{ + AddSC_event_brewfest_scripts(); + AddSC_event_hallows_end_scripts(); + AddSC_event_pilgrims_end_scripts(); + AddSC_event_winter_veil_scripts(); + AddSC_event_love_in_the_air(); + AddSC_event_midsummer_scripts(); + AddSC_event_childrens_week(); +} diff --git a/src/server/scripts/GenLoader.cpp.cmake b/src/server/scripts/GenLoader.cpp.cmake deleted file mode 100644 index 4049313d04..0000000000 --- a/src/server/scripts/GenLoader.cpp.cmake +++ /dev/null @@ -1,7 +0,0 @@ -// This file is autogenerated, please do not modify directly! - -@AC_SCRIPTS_INCLUDES@ - -void AddScripts() { - @AC_ADD_SCRIPTS_LIST@ -} diff --git a/src/server/scripts/Kalimdor/CMakeLists.txt b/src/server/scripts/Kalimdor/CMakeLists.txt deleted file mode 100644 index a31ce64d30..0000000000 --- a/src/server/scripts/Kalimdor/CMakeLists.txt +++ /dev/null @@ -1,110 +0,0 @@ -# Copyright (C) -# -# This file is free software; as a special exception the author gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the -# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -set(scripts_STAT_SRCS - ${scripts_STAT_SRCS} - ${AC_SCRIPTS_DIR}/Kalimdor/zone_stonetalon_mountains.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/zone_silithus.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/zone_moonglade.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/RazorfenDowns/razorfen_downs.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/RazorfenDowns/instance_razorfen_downs.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/RazorfenDowns/razorfen_downs.h - ${AC_SCRIPTS_DIR}/Kalimdor/ZulFarrak/instance_zulfarrak.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/ZulFarrak/zulfarrak.h - ${AC_SCRIPTS_DIR}/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_epoch_hunter.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.h - ${AC_SCRIPTS_DIR}/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_lieutenant_drake.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/instance_old_hillsbrad.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_captain_skarloc.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.h - ${AC_SCRIPTS_DIR}/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.h - ${AC_SCRIPTS_DIR}/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.h - ${AC_SCRIPTS_DIR}/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_infinite.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_epoch.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.h - ${AC_SCRIPTS_DIR}/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.h - ${AC_SCRIPTS_DIR}/Kalimdor/CavernsOfTime/TheBlackMorass/instance_the_black_morass.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/CavernsOfTime/TheBlackMorass/boss_chrono_lord_deja.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/CavernsOfTime/TheBlackMorass/boss_aeonus.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/CavernsOfTime/TheBlackMorass/boss_temporus.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/BlackfathomDeeps/instance_blackfathom_deeps.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/BlackfathomDeeps/blackfathom_deeps.h - ${AC_SCRIPTS_DIR}/Kalimdor/zone_azuremyst_isle.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/zone_orgrimmar.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/zone_desolace.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/zone_feralas.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/Maraudon/instance_maraudon.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/Maraudon/maraudon.h - ${AC_SCRIPTS_DIR}/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/TempleOfAhnQiraj/boss_huhuran.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/TempleOfAhnQiraj/mob_anubisath_sentinel.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h - ${AC_SCRIPTS_DIR}/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/zone_darkshore.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/RuinsOfAhnQiraj/instance_ruins_of_ahnqiraj.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/RuinsOfAhnQiraj/ruins_of_ahnqiraj.h - ${AC_SCRIPTS_DIR}/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/zone_mulgore.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/zone_bloodmyst_isle.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/zone_thunder_bluff.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/zone_azshara.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/RazorfenKraul/instance_razorfen_kraul.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/zone_the_barrens.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/zone_ungoro_crater.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/WailingCaverns/wailing_caverns.h - ${AC_SCRIPTS_DIR}/Kalimdor/WailingCaverns/instance_wailing_caverns.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/zone_durotar.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/zone_felwood.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/boss_azuregos.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/zone_tanaris.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/zone_dustwallow_marsh.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/zone_winterspring.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/zone_thousand_needles.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/zone_ashenvale.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/zone_teldrassil.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/OnyxiasLair/boss_onyxia.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/OnyxiasLair/onyxias_lair.h - ${AC_SCRIPTS_DIR}/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/RagefireChasm/instance_ragefire_chasm.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/DireMaul/instance_dire_maul.cpp - ${AC_SCRIPTS_DIR}/Kalimdor/DireMaul/dire_maul.h -) - -AC_ADD_SCRIPT_LOADER("Kalimdor" "ScriptLoader.h") - -message(" -> Prepared: Kalimdor") diff --git a/src/server/scripts/Kalimdor/kalimdor_script_loader.cpp b/src/server/scripts/Kalimdor/kalimdor_script_loader.cpp new file mode 100644 index 0000000000..112b38953f --- /dev/null +++ b/src/server/scripts/Kalimdor/kalimdor_script_loader.cpp @@ -0,0 +1,166 @@ +/* + * Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3 + * Copyright (C) 2021+ WarheadCore <https://github.com/WarheadCore> + */ + +// This is where scripts' loading functions should be declared: +void AddSC_instance_blackfathom_deeps(); //Blackfathom Depths +void AddSC_hyjal(); //CoT Battle for Mt. Hyjal +void AddSC_boss_archimonde(); +void AddSC_instance_mount_hyjal(); +void AddSC_hyjal_trash(); +void AddSC_boss_rage_winterchill(); +void AddSC_boss_anetheron(); +void AddSC_boss_kazrogal(); +void AddSC_boss_azgalor(); +void AddSC_boss_captain_skarloc(); //CoT Old Hillsbrad +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 Black Morass +void AddSC_boss_chrono_lord_deja(); +void AddSC_boss_temporus(); +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(); +void AddSC_boss_mal_ganis(); +void AddSC_boss_meathook(); +void AddSC_culling_of_stratholme(); +void AddSC_instance_culling_of_stratholme(); +void AddSC_instance_dire_maul(); //Dire Maul +void AddSC_instance_maraudon(); //Maraudon +void AddSC_boss_onyxia(); //Onyxia's Lair +void AddSC_instance_onyxias_lair(); +void AddSC_instance_ragefire_chasm(); //Ragefire Chasm +void AddSC_razorfen_downs(); +void AddSC_instance_razorfen_downs(); //Razorfen Downs +void AddSC_instance_razorfen_kraul(); //Razorfen Kraul +void AddSC_boss_kurinnaxx(); //Ruins of ahn'qiraj +void AddSC_boss_rajaxx(); +void AddSC_boss_moam(); +void AddSC_boss_buru(); +void AddSC_boss_ayamiss(); +void AddSC_boss_ossirian(); +void AddSC_instance_ruins_of_ahnqiraj(); +void AddSC_boss_cthun(); //Temple of ahn'qiraj +void AddSC_boss_viscidus(); +void AddSC_boss_fankriss(); +void AddSC_boss_huhuran(); +void AddSC_bug_trio(); +void AddSC_boss_sartura(); +void AddSC_boss_skeram(); +void AddSC_boss_twinemperors(); +void AddSC_boss_ouro(); +void AddSC_npc_anubisath_sentinel(); +void AddSC_instance_temple_of_ahnqiraj(); +void AddSC_instance_wailing_caverns(); //Wailing caverns +void AddSC_instance_zulfarrak(); //Zul'Farrak instance script +void AddSC_ashenvale(); +void AddSC_azshara(); +void AddSC_azuremyst_isle(); +void AddSC_bloodmyst_isle(); +void AddSC_boss_azuregos(); +void AddSC_darkshore(); +void AddSC_desolace(); +void AddSC_durotar(); +void AddSC_dustwallow_marsh(); +void AddSC_felwood(); +void AddSC_feralas(); +void AddSC_moonglade(); +void AddSC_mulgore(); +void AddSC_orgrimmar(); +void AddSC_silithus(); +void AddSC_stonetalon_mountains(); +void AddSC_tanaris(); +void AddSC_teldrassil(); +void AddSC_the_barrens(); +void AddSC_thousand_needles(); +void AddSC_thunder_bluff(); +void AddSC_ungoro_crater(); +void AddSC_winterspring(); + +// The name of this function should match: +// void Add${NameOfDirectory}Scripts() +void AddKalimdorScripts() +{ + AddSC_instance_blackfathom_deeps(); //Blackfathom Depths + AddSC_hyjal(); //CoT Battle for Mt. Hyjal + AddSC_boss_archimonde(); + AddSC_instance_mount_hyjal(); + AddSC_hyjal_trash(); + AddSC_boss_rage_winterchill(); + AddSC_boss_anetheron(); + AddSC_boss_kazrogal(); + AddSC_boss_azgalor(); + AddSC_boss_captain_skarloc(); //CoT Old Hillsbrad + AddSC_boss_epoch_hunter(); + AddSC_boss_lieutenant_drake(); + AddSC_instance_old_hillsbrad(); + AddSC_old_hillsbrad(); + AddSC_boss_aeonus(); //CoT The Black Morass + AddSC_boss_chrono_lord_deja(); + AddSC_boss_temporus(); + AddSC_the_black_morass(); + AddSC_instance_the_black_morass(); + AddSC_boss_epoch(); //CoT Culling Of Stratholme + AddSC_boss_infinite_corruptor(); + AddSC_boss_salramm(); + AddSC_boss_mal_ganis(); + AddSC_boss_meathook(); + AddSC_culling_of_stratholme(); + AddSC_instance_culling_of_stratholme(); + AddSC_instance_dire_maul(); //Dire Maul + AddSC_instance_maraudon(); //Maraudon + AddSC_boss_onyxia(); //Onyxia's Lair + AddSC_instance_onyxias_lair(); + AddSC_instance_ragefire_chasm(); //Ragefire Chasm + AddSC_razorfen_downs(); + AddSC_instance_razorfen_downs(); //Razorfen Downs + AddSC_instance_razorfen_kraul(); //Razorfen Kraul + AddSC_boss_kurinnaxx(); //Ruins of ahn'qiraj + AddSC_boss_rajaxx(); + AddSC_boss_moam(); + AddSC_boss_buru(); + AddSC_boss_ayamiss(); + AddSC_boss_ossirian(); + AddSC_instance_ruins_of_ahnqiraj(); + AddSC_boss_cthun(); //Temple of ahn'qiraj + AddSC_boss_viscidus(); + AddSC_boss_fankriss(); + AddSC_boss_huhuran(); + AddSC_bug_trio(); + AddSC_boss_sartura(); + AddSC_boss_skeram(); + AddSC_boss_twinemperors(); + AddSC_boss_ouro(); + AddSC_npc_anubisath_sentinel(); + AddSC_instance_temple_of_ahnqiraj(); + AddSC_instance_wailing_caverns(); //Wailing caverns + AddSC_instance_zulfarrak(); //Zul'Farrak instance script + AddSC_ashenvale(); + AddSC_azshara(); + AddSC_azuremyst_isle(); + AddSC_bloodmyst_isle(); + AddSC_boss_azuregos(); + AddSC_darkshore(); + AddSC_desolace(); + AddSC_durotar(); + AddSC_dustwallow_marsh(); + AddSC_felwood(); + AddSC_feralas(); + AddSC_moonglade(); + AddSC_mulgore(); + AddSC_orgrimmar(); + AddSC_silithus(); + AddSC_stonetalon_mountains(); + AddSC_tanaris(); + AddSC_teldrassil(); + AddSC_the_barrens(); + AddSC_thousand_needles(); + AddSC_thunder_bluff(); + AddSC_ungoro_crater(); + AddSC_winterspring(); +} diff --git a/src/server/scripts/Northrend/CMakeLists.txt b/src/server/scripts/Northrend/CMakeLists.txt deleted file mode 100644 index 6c793ec1a0..0000000000 --- a/src/server/scripts/Northrend/CMakeLists.txt +++ /dev/null @@ -1,201 +0,0 @@ -# Copyright (C) -# -# This file is free software; as a special exception the author gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the -# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -set(scripts_STAT_SRCS - ${scripts_STAT_SRCS} - ${AC_SCRIPTS_DIR}/Northrend/isle_of_conquest.cpp - ${AC_SCRIPTS_DIR}/Northrend/zone_storm_peaks.cpp - ${AC_SCRIPTS_DIR}/Northrend/Ulduar/HallsOfLightning/instance_halls_of_lightning.cpp - ${AC_SCRIPTS_DIR}/Northrend/Ulduar/HallsOfLightning/boss_bjarngrim.cpp - ${AC_SCRIPTS_DIR}/Northrend/Ulduar/HallsOfLightning/halls_of_lightning.h - ${AC_SCRIPTS_DIR}/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp - ${AC_SCRIPTS_DIR}/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp - ${AC_SCRIPTS_DIR}/Northrend/Ulduar/HallsOfLightning/boss_loken.cpp - ${AC_SCRIPTS_DIR}/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp - ${AC_SCRIPTS_DIR}/Northrend/Ulduar/Ulduar/ulduar.cpp - ${AC_SCRIPTS_DIR}/Northrend/Ulduar/Ulduar/boss_thorim.cpp - ${AC_SCRIPTS_DIR}/Northrend/Ulduar/Ulduar/boss_ignis.cpp - ${AC_SCRIPTS_DIR}/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp - ${AC_SCRIPTS_DIR}/Northrend/Ulduar/Ulduar/instance_ulduar.cpp - ${AC_SCRIPTS_DIR}/Northrend/Ulduar/Ulduar/boss_auriaya.cpp - ${AC_SCRIPTS_DIR}/Northrend/Ulduar/Ulduar/boss_yoggsaron.cpp - ${AC_SCRIPTS_DIR}/Northrend/Ulduar/Ulduar/boss_hodir.cpp - ${AC_SCRIPTS_DIR}/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp - ${AC_SCRIPTS_DIR}/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp - ${AC_SCRIPTS_DIR}/Northrend/Ulduar/Ulduar/boss_xt002.cpp - ${AC_SCRIPTS_DIR}/Northrend/Ulduar/Ulduar/boss_mimiron.cpp - ${AC_SCRIPTS_DIR}/Northrend/Ulduar/Ulduar/ulduar.h - ${AC_SCRIPTS_DIR}/Northrend/Ulduar/Ulduar/boss_freya.cpp - ${AC_SCRIPTS_DIR}/Northrend/Ulduar/Ulduar/boss_razorscale.cpp - ${AC_SCRIPTS_DIR}/Northrend/Ulduar/Ulduar/boss_kologarn.cpp - ${AC_SCRIPTS_DIR}/Northrend/Ulduar/HallsOfStone/boss_krystallus.cpp - ${AC_SCRIPTS_DIR}/Northrend/Ulduar/HallsOfStone/halls_of_stone.h - ${AC_SCRIPTS_DIR}/Northrend/Ulduar/HallsOfStone/instance_halls_of_stone.cpp - ${AC_SCRIPTS_DIR}/Northrend/Ulduar/HallsOfStone/boss_maiden_of_grief.cpp - ${AC_SCRIPTS_DIR}/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp - ${AC_SCRIPTS_DIR}/Northrend/Ulduar/HallsOfStone/halls_of_stone.h - ${AC_SCRIPTS_DIR}/Northrend/Ulduar/HallsOfStone/brann_bronzebeard.cpp - ${AC_SCRIPTS_DIR}/Northrend/ChamberOfAspects/ObsidianSanctum/instance_obsidian_sanctum.cpp - ${AC_SCRIPTS_DIR}/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.h - ${AC_SCRIPTS_DIR}/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp - ${AC_SCRIPTS_DIR}/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp - ${AC_SCRIPTS_DIR}/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.h - ${AC_SCRIPTS_DIR}/Northrend/ChamberOfAspects/RubySanctum/boss_baltharus_the_warborn.cpp - ${AC_SCRIPTS_DIR}/Northrend/ChamberOfAspects/RubySanctum/boss_saviana_ragefire.cpp - ${AC_SCRIPTS_DIR}/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp - ${AC_SCRIPTS_DIR}/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp - ${AC_SCRIPTS_DIR}/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.h - ${AC_SCRIPTS_DIR}/Northrend/FrozenHalls/HallsOfReflection/boss_falric.cpp - ${AC_SCRIPTS_DIR}/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp - ${AC_SCRIPTS_DIR}/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp - ${AC_SCRIPTS_DIR}/Northrend/FrozenHalls/HallsOfReflection/boss_marwyn.cpp - ${AC_SCRIPTS_DIR}/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp - ${AC_SCRIPTS_DIR}/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp - ${AC_SCRIPTS_DIR}/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp - ${AC_SCRIPTS_DIR}/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp - ${AC_SCRIPTS_DIR}/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.h - ${AC_SCRIPTS_DIR}/Northrend/FrozenHalls/PitOfSaron/instance_pit_of_saron.cpp - ${AC_SCRIPTS_DIR}/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp - ${AC_SCRIPTS_DIR}/Northrend/FrozenHalls/ForgeOfSouls/boss_bronjahm.cpp - ${AC_SCRIPTS_DIR}/Northrend/FrozenHalls/ForgeOfSouls/instance_forge_of_souls.cpp - ${AC_SCRIPTS_DIR}/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp - ${AC_SCRIPTS_DIR}/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.h - ${AC_SCRIPTS_DIR}/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp - ${AC_SCRIPTS_DIR}/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp - ${AC_SCRIPTS_DIR}/Northrend/Nexus/EyeOfEternity/eye_of_eternity.h - ${AC_SCRIPTS_DIR}/Northrend/Nexus/Oculus/boss_eregos.cpp - ${AC_SCRIPTS_DIR}/Northrend/Nexus/Oculus/boss_drakos.cpp - ${AC_SCRIPTS_DIR}/Northrend/Nexus/Oculus/oculus.h - ${AC_SCRIPTS_DIR}/Northrend/Nexus/Oculus/boss_varos.cpp - ${AC_SCRIPTS_DIR}/Northrend/Nexus/Oculus/boss_urom.cpp - ${AC_SCRIPTS_DIR}/Northrend/Nexus/Oculus/oculus.cpp - ${AC_SCRIPTS_DIR}/Northrend/Nexus/Oculus/instance_oculus.cpp - ${AC_SCRIPTS_DIR}/Northrend/Nexus/Nexus/boss_commander_stoutbeard_kolurg.cpp - ${AC_SCRIPTS_DIR}/Northrend/Nexus/Nexus/boss_ormorok.cpp - ${AC_SCRIPTS_DIR}/Northrend/Nexus/Nexus/boss_magus_telestra.cpp - ${AC_SCRIPTS_DIR}/Northrend/Nexus/Nexus/instance_nexus.cpp - ${AC_SCRIPTS_DIR}/Northrend/Nexus/Nexus/boss_keristrasza.cpp - ${AC_SCRIPTS_DIR}/Northrend/Nexus/Nexus/boss_anomalus.cpp - ${AC_SCRIPTS_DIR}/Northrend/Nexus/Nexus/nexus.h - ${AC_SCRIPTS_DIR}/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp - ${AC_SCRIPTS_DIR}/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp - ${AC_SCRIPTS_DIR}/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp - ${AC_SCRIPTS_DIR}/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h - ${AC_SCRIPTS_DIR}/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp - ${AC_SCRIPTS_DIR}/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp - ${AC_SCRIPTS_DIR}/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp - ${AC_SCRIPTS_DIR}/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp - ${AC_SCRIPTS_DIR}/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.h - ${AC_SCRIPTS_DIR}/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp - ${AC_SCRIPTS_DIR}/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp - ${AC_SCRIPTS_DIR}/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp - ${AC_SCRIPTS_DIR}/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp - ${AC_SCRIPTS_DIR}/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp - ${AC_SCRIPTS_DIR}/Northrend/Naxxramas/boss_loatheb.cpp - ${AC_SCRIPTS_DIR}/Northrend/Naxxramas/boss_anubrekhan.cpp - ${AC_SCRIPTS_DIR}/Northrend/Naxxramas/boss_maexxna.cpp - ${AC_SCRIPTS_DIR}/Northrend/Naxxramas/boss_patchwerk.cpp - ${AC_SCRIPTS_DIR}/Northrend/Naxxramas/boss_gothik.cpp - ${AC_SCRIPTS_DIR}/Northrend/Naxxramas/boss_faerlina.cpp - ${AC_SCRIPTS_DIR}/Northrend/Naxxramas/boss_gluth.cpp - ${AC_SCRIPTS_DIR}/Northrend/Naxxramas/boss_four_horsemen.cpp - ${AC_SCRIPTS_DIR}/Northrend/Naxxramas/naxxramas.h - ${AC_SCRIPTS_DIR}/Northrend/Naxxramas/boss_kelthuzad.cpp - ${AC_SCRIPTS_DIR}/Northrend/Naxxramas/boss_heigan.cpp - ${AC_SCRIPTS_DIR}/Northrend/Naxxramas/boss_thaddius.cpp - ${AC_SCRIPTS_DIR}/Northrend/Naxxramas/boss_razuvious.cpp - ${AC_SCRIPTS_DIR}/Northrend/Naxxramas/boss_sapphiron.cpp - ${AC_SCRIPTS_DIR}/Northrend/Naxxramas/instance_naxxramas.cpp - ${AC_SCRIPTS_DIR}/Northrend/Naxxramas/boss_grobbulus.cpp - ${AC_SCRIPTS_DIR}/Northrend/Naxxramas/boss_noth.cpp - ${AC_SCRIPTS_DIR}/Northrend/zone_crystalsong_forest.cpp - ${AC_SCRIPTS_DIR}/Northrend/VaultOfArchavon/boss_archavon.cpp - ${AC_SCRIPTS_DIR}/Northrend/VaultOfArchavon/boss_koralon.cpp - ${AC_SCRIPTS_DIR}/Northrend/VaultOfArchavon/vault_of_archavon.h - ${AC_SCRIPTS_DIR}/Northrend/VaultOfArchavon/instance_vault_of_archavon.cpp - ${AC_SCRIPTS_DIR}/Northrend/VaultOfArchavon/boss_emalon.cpp - ${AC_SCRIPTS_DIR}/Northrend/VaultOfArchavon/boss_toravon.cpp - ${AC_SCRIPTS_DIR}/Northrend/zone_sholazar_basin.cpp - ${AC_SCRIPTS_DIR}/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp - ${AC_SCRIPTS_DIR}/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp - ${AC_SCRIPTS_DIR}/Northrend/UtgardeKeep/UtgardePinnacle/instance_utgarde_pinnacle.cpp - ${AC_SCRIPTS_DIR}/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp - ${AC_SCRIPTS_DIR}/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp - ${AC_SCRIPTS_DIR}/Northrend/UtgardeKeep/UtgardePinnacle/utgarde_pinnacle.h - ${AC_SCRIPTS_DIR}/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp - ${AC_SCRIPTS_DIR}/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp - ${AC_SCRIPTS_DIR}/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.h - ${AC_SCRIPTS_DIR}/Northrend/UtgardeKeep/UtgardeKeep/instance_utgarde_keep.cpp - ${AC_SCRIPTS_DIR}/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp - ${AC_SCRIPTS_DIR}/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp - ${AC_SCRIPTS_DIR}/Northrend/zone_dragonblight.cpp - ${AC_SCRIPTS_DIR}/Northrend/zone_grizzly_hills.cpp - ${AC_SCRIPTS_DIR}/Northrend/AzjolNerub/AzjolNerub/azjol_nerub.h - ${AC_SCRIPTS_DIR}/Northrend/AzjolNerub/AzjolNerub/instance_azjol_nerub.cpp - ${AC_SCRIPTS_DIR}/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp - ${AC_SCRIPTS_DIR}/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp - ${AC_SCRIPTS_DIR}/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp - ${AC_SCRIPTS_DIR}/Northrend/AzjolNerub/ahnkahet/boss_herald_volazj.cpp - ${AC_SCRIPTS_DIR}/Northrend/AzjolNerub/ahnkahet/boss_prince_taldaram.cpp - ${AC_SCRIPTS_DIR}/Northrend/AzjolNerub/ahnkahet/instance_ahnkahet.cpp - ${AC_SCRIPTS_DIR}/Northrend/AzjolNerub/ahnkahet/boss_jedoga_shadowseeker.cpp - ${AC_SCRIPTS_DIR}/Northrend/AzjolNerub/ahnkahet/boss_elder_nadox.cpp - ${AC_SCRIPTS_DIR}/Northrend/AzjolNerub/ahnkahet/boss_amanitar.cpp - ${AC_SCRIPTS_DIR}/Northrend/AzjolNerub/ahnkahet/ahnkahet.h - ${AC_SCRIPTS_DIR}/Northrend/VioletHold/boss_zuramat.cpp - ${AC_SCRIPTS_DIR}/Northrend/VioletHold/instance_violet_hold.cpp - ${AC_SCRIPTS_DIR}/Northrend/VioletHold/boss_lavanthor.cpp - ${AC_SCRIPTS_DIR}/Northrend/VioletHold/boss_cyanigosa.cpp - ${AC_SCRIPTS_DIR}/Northrend/VioletHold/violet_hold.h - ${AC_SCRIPTS_DIR}/Northrend/VioletHold/boss_ichoron.cpp - ${AC_SCRIPTS_DIR}/Northrend/VioletHold/boss_moragg.cpp - ${AC_SCRIPTS_DIR}/Northrend/VioletHold/boss_xevozz.cpp - ${AC_SCRIPTS_DIR}/Northrend/VioletHold/boss_erekem.cpp - ${AC_SCRIPTS_DIR}/Northrend/VioletHold/violet_hold.cpp - ${AC_SCRIPTS_DIR}/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp - ${AC_SCRIPTS_DIR}/Northrend/IcecrownCitadel/icecrown_citadel.cpp - ${AC_SCRIPTS_DIR}/Northrend/IcecrownCitadel/icecrown_citadel.h - ${AC_SCRIPTS_DIR}/Northrend/IcecrownCitadel/icecrown_citadel_teleport.cpp - ${AC_SCRIPTS_DIR}/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp - ${AC_SCRIPTS_DIR}/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp - ${AC_SCRIPTS_DIR}/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp - ${AC_SCRIPTS_DIR}/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp - ${AC_SCRIPTS_DIR}/Northrend/IcecrownCitadel/boss_festergut.cpp - ${AC_SCRIPTS_DIR}/Northrend/IcecrownCitadel/boss_rotface.cpp - ${AC_SCRIPTS_DIR}/Northrend/IcecrownCitadel/boss_professor_putricide.cpp - ${AC_SCRIPTS_DIR}/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp - ${AC_SCRIPTS_DIR}/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp - ${AC_SCRIPTS_DIR}/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp - ${AC_SCRIPTS_DIR}/Northrend/IcecrownCitadel/boss_sindragosa.cpp - ${AC_SCRIPTS_DIR}/Northrend/IcecrownCitadel/boss_the_lich_king.cpp - ${AC_SCRIPTS_DIR}/Northrend/zone_zuldrak.cpp - ${AC_SCRIPTS_DIR}/Northrend/zone_wintergrasp.cpp - ${AC_SCRIPTS_DIR}/Northrend/zone_icecrown.cpp - ${AC_SCRIPTS_DIR}/Northrend/Gundrak/boss_slad_ran.cpp - ${AC_SCRIPTS_DIR}/Northrend/Gundrak/instance_gundrak.cpp - ${AC_SCRIPTS_DIR}/Northrend/Gundrak/boss_drakkari_colossus.cpp - ${AC_SCRIPTS_DIR}/Northrend/Gundrak/gundrak.h - ${AC_SCRIPTS_DIR}/Northrend/Gundrak/boss_gal_darah.cpp - ${AC_SCRIPTS_DIR}/Northrend/Gundrak/boss_moorabi.cpp - ${AC_SCRIPTS_DIR}/Northrend/Gundrak/boss_eck.cpp - ${AC_SCRIPTS_DIR}/Northrend/zone_borean_tundra.cpp - ${AC_SCRIPTS_DIR}/Northrend/zone_howling_fjord.cpp - ${AC_SCRIPTS_DIR}/Northrend/zone_dalaran.cpp - ${AC_SCRIPTS_DIR}/Northrend/DraktharonKeep/boss_trollgore.cpp - ${AC_SCRIPTS_DIR}/Northrend/DraktharonKeep/instance_drak_tharon_keep.cpp - ${AC_SCRIPTS_DIR}/Northrend/DraktharonKeep/boss_novos.cpp - ${AC_SCRIPTS_DIR}/Northrend/DraktharonKeep/drak_tharon_keep.h - ${AC_SCRIPTS_DIR}/Northrend/DraktharonKeep/boss_tharon_ja.cpp - ${AC_SCRIPTS_DIR}/Northrend/DraktharonKeep/boss_dred.cpp -) - -AC_ADD_SCRIPT_LOADER("Northrend" "ScriptLoader.h") - -message(" -> Prepared: Northrend") diff --git a/src/server/scripts/Northrend/northrend_script_loader.cpp b/src/server/scripts/Northrend/northrend_script_loader.cpp new file mode 100644 index 0000000000..9adbf35842 --- /dev/null +++ b/src/server/scripts/Northrend/northrend_script_loader.cpp @@ -0,0 +1,332 @@ +/* + * Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3 + * Copyright (C) 2021+ WarheadCore <https://github.com/WarheadCore> + */ + +// This is where scripts' loading functions should be declared: +void AddSC_boss_slad_ran(); //Gundrak +void AddSC_boss_moorabi(); +void AddSC_boss_drakkari_colossus(); +void AddSC_boss_gal_darah(); +void AddSC_boss_eck(); +void AddSC_instance_gundrak(); +void AddSC_boss_amanitar(); +void AddSC_boss_taldaram(); //Azjol-Nerub Ahn'kahet +void AddSC_boss_elder_nadox(); +void AddSC_boss_jedoga_shadowseeker(); +void AddSC_boss_volazj(); +void AddSC_instance_ahnkahet(); +void AddSC_boss_argent_challenge(); //Trial of the Champion +void AddSC_boss_black_knight(); +void AddSC_boss_grand_champions(); +void AddSC_instance_trial_of_the_champion(); +void AddSC_trial_of_the_champion(); +void AddSC_boss_anubarak_trial(); //Trial of the Crusader +void AddSC_boss_faction_champions(); +void AddSC_boss_jaraxxus(); +void AddSC_trial_of_the_crusader(); +void AddSC_boss_twin_valkyr(); +void AddSC_boss_northrend_beasts(); +void AddSC_instance_trial_of_the_crusader(); +void AddSC_boss_krik_thir(); //Azjol-Nerub Azjol-Nerub +void AddSC_boss_hadronox(); +void AddSC_boss_anub_arak(); +void AddSC_instance_azjol_nerub(); +void AddSC_boss_anubrekhan(); //Naxxramas +void AddSC_boss_maexxna(); +void AddSC_boss_patchwerk(); +void AddSC_boss_grobbulus(); +void AddSC_boss_razuvious(); +void AddSC_boss_kelthuzad(); +void AddSC_boss_loatheb(); +void AddSC_boss_noth(); +void AddSC_boss_gluth(); +void AddSC_boss_sapphiron(); +void AddSC_boss_four_horsemen(); +void AddSC_boss_faerlina(); +void AddSC_boss_heigan(); +void AddSC_boss_gothik(); +void AddSC_boss_thaddius(); +void AddSC_instance_naxxramas(); +void AddSC_boss_magus_telestra(); //The Nexus Nexus +void AddSC_boss_anomalus(); +void AddSC_boss_ormorok(); +void AddSC_boss_keristrasza(); +void AddSC_boss_commander_stoutbeard(); +void AddSC_instance_nexus(); +void AddSC_boss_drakos(); //The Nexus The Oculus +void AddSC_boss_varos(); +void AddSC_boss_urom(); +void AddSC_boss_eregos(); +void AddSC_instance_oculus(); +void AddSC_oculus(); +void AddSC_boss_sartharion(); //Obsidian Sanctum +void AddSC_instance_obsidian_sanctum(); +void AddSC_boss_malygos(); //Eye of Eternity +void AddSC_instance_eye_of_eternity(); +void AddSC_boss_bjarngrim(); //Ulduar Halls of Lightning +void AddSC_boss_loken(); +void AddSC_boss_ionar(); +void AddSC_boss_volkhan(); +void AddSC_instance_halls_of_lightning(); +void AddSC_boss_maiden_of_grief(); //Ulduar Halls of Stone +void AddSC_boss_krystallus(); +void AddSC_boss_sjonnir(); +void AddSC_brann_bronzebeard(); +void AddSC_instance_halls_of_stone(); +void AddSC_boss_auriaya(); //Ulduar Ulduar +void AddSC_boss_flame_leviathan(); +void AddSC_boss_ignis(); +void AddSC_boss_razorscale(); +void AddSC_boss_xt002(); +void AddSC_boss_assembly_of_iron(); +void AddSC_boss_mimiron(); +void AddSC_boss_hodir(); +void AddSC_boss_vezax(); +void AddSC_boss_kologarn(); +void AddSC_boss_freya(); +void AddSC_boss_thorim(); +void AddSC_boss_yoggsaron(); +void AddSC_ulduar(); +void AddSC_boss_algalon_the_observer(); +void AddSC_instance_ulduar(); +void AddSC_boss_keleseth(); //Utgarde Keep +void AddSC_boss_skarvald_dalronn(); +void AddSC_boss_ingvar_the_plunderer(); +void AddSC_instance_utgarde_keep(); +void AddSC_boss_svala(); //Utgarde pinnacle +void AddSC_boss_palehoof(); +void AddSC_boss_skadi(); +void AddSC_boss_ymiron(); +void AddSC_instance_utgarde_pinnacle(); +void AddSC_utgarde_keep(); +void AddSC_boss_archavon(); //Vault of Archavon +void AddSC_boss_emalon(); +void AddSC_boss_koralon(); +void AddSC_boss_toravon(); +void AddSC_instance_vault_of_archavon(); +void AddSC_boss_trollgore(); //Drak'Tharon Keep +void AddSC_boss_novos(); +void AddSC_boss_dred(); +void AddSC_boss_tharon_ja(); +void AddSC_instance_drak_tharon_keep(); +void AddSC_boss_cyanigosa(); //Violet Hold +void AddSC_boss_erekem(); +void AddSC_boss_ichoron(); +void AddSC_boss_lavanthor(); +void AddSC_boss_moragg(); +void AddSC_boss_xevozz(); +void AddSC_boss_zuramat(); +void AddSC_instance_violet_hold(); +void AddSC_violet_hold(); +void AddSC_instance_forge_of_souls(); //Forge of Souls +void AddSC_forge_of_souls(); +void AddSC_boss_bronjahm(); +void AddSC_boss_devourer_of_souls(); +void AddSC_instance_pit_of_saron(); //Pit of Saron +void AddSC_pit_of_saron(); +void AddSC_boss_garfrost(); +void AddSC_boss_ick(); +void AddSC_boss_tyrannus(); +void AddSC_instance_halls_of_reflection(); // Halls of Reflection +void AddSC_halls_of_reflection(); +void AddSC_boss_falric(); +void AddSC_boss_marwyn(); +void AddSC_boss_lord_marrowgar(); // Icecrown Citadel +void AddSC_boss_lady_deathwhisper(); +void AddSC_boss_icecrown_gunship_battle(); +void AddSC_boss_deathbringer_saurfang(); +void AddSC_boss_festergut(); +void AddSC_boss_rotface(); +void AddSC_boss_professor_putricide(); +void AddSC_boss_blood_prince_council(); +void AddSC_boss_blood_queen_lana_thel(); +void AddSC_boss_valithria_dreamwalker(); +void AddSC_boss_sindragosa(); +void AddSC_boss_the_lich_king(); +void AddSC_icecrown_citadel_teleport(); +void AddSC_instance_icecrown_citadel(); +void AddSC_icecrown_citadel(); +void AddSC_instance_ruby_sanctum(); // Ruby Sanctum +void AddSC_boss_baltharus_the_warborn(); +void AddSC_boss_saviana_ragefire(); +void AddSC_boss_general_zarithrian(); +void AddSC_boss_halion(); +void AddSC_dalaran(); +void AddSC_borean_tundra(); +void AddSC_dragonblight(); +void AddSC_grizzly_hills(); +void AddSC_howling_fjord(); +void AddSC_icecrown(); +void AddSC_sholazar_basin(); +void AddSC_storm_peaks(); +void AddSC_zuldrak(); +void AddSC_crystalsong_forest(); +void AddSC_isle_of_conquest(); +void AddSC_wintergrasp(); + +// The name of this function should match: +// void Add${NameOfDirectory}Scripts() +void AddNorthrendScripts() +{ + AddSC_boss_slad_ran(); //Gundrak + AddSC_boss_moorabi(); + AddSC_boss_drakkari_colossus(); + AddSC_boss_gal_darah(); + AddSC_boss_eck(); + AddSC_instance_gundrak(); + AddSC_boss_amanitar(); + AddSC_boss_taldaram(); //Azjol-Nerub Ahn'kahet + AddSC_boss_elder_nadox(); + AddSC_boss_jedoga_shadowseeker(); + AddSC_boss_volazj(); + AddSC_instance_ahnkahet(); + AddSC_boss_argent_challenge(); //Trial of the Champion + AddSC_boss_black_knight(); + AddSC_boss_grand_champions(); + AddSC_instance_trial_of_the_champion(); + AddSC_trial_of_the_champion(); + AddSC_boss_anubarak_trial(); //Trial of the Crusader + AddSC_boss_faction_champions(); + AddSC_boss_jaraxxus(); + AddSC_trial_of_the_crusader(); + AddSC_boss_twin_valkyr(); + AddSC_boss_northrend_beasts(); + AddSC_instance_trial_of_the_crusader(); + AddSC_boss_krik_thir(); //Azjol-Nerub Azjol-Nerub + AddSC_boss_hadronox(); + AddSC_boss_anub_arak(); + AddSC_instance_azjol_nerub(); + AddSC_boss_anubrekhan(); //Naxxramas + AddSC_boss_maexxna(); + AddSC_boss_patchwerk(); + AddSC_boss_grobbulus(); + AddSC_boss_razuvious(); + AddSC_boss_kelthuzad(); + AddSC_boss_loatheb(); + AddSC_boss_noth(); + AddSC_boss_gluth(); + AddSC_boss_sapphiron(); + AddSC_boss_four_horsemen(); + AddSC_boss_faerlina(); + AddSC_boss_heigan(); + AddSC_boss_gothik(); + AddSC_boss_thaddius(); + AddSC_instance_naxxramas(); + AddSC_boss_magus_telestra(); //The Nexus Nexus + AddSC_boss_anomalus(); + AddSC_boss_ormorok(); + AddSC_boss_keristrasza(); + AddSC_boss_commander_stoutbeard(); + AddSC_instance_nexus(); + AddSC_boss_drakos(); //The Nexus The Oculus + AddSC_boss_varos(); + AddSC_boss_urom(); + AddSC_boss_eregos(); + AddSC_instance_oculus(); + AddSC_oculus(); + AddSC_boss_sartharion(); //Obsidian Sanctum + AddSC_instance_obsidian_sanctum(); + AddSC_boss_malygos(); //Eye of Eternity + AddSC_instance_eye_of_eternity(); + AddSC_boss_bjarngrim(); //Ulduar Halls of Lightning + AddSC_boss_loken(); + AddSC_boss_ionar(); + AddSC_boss_volkhan(); + AddSC_instance_halls_of_lightning(); + AddSC_boss_maiden_of_grief(); //Ulduar Halls of Stone + AddSC_boss_krystallus(); + AddSC_boss_sjonnir(); + AddSC_brann_bronzebeard(); + AddSC_instance_halls_of_stone(); + AddSC_boss_auriaya(); //Ulduar Ulduar + AddSC_boss_flame_leviathan(); + AddSC_boss_ignis(); + AddSC_boss_razorscale(); + AddSC_boss_xt002(); + AddSC_boss_assembly_of_iron(); + AddSC_boss_mimiron(); + AddSC_boss_hodir(); + AddSC_boss_vezax(); + AddSC_boss_kologarn(); + AddSC_boss_freya(); + AddSC_boss_thorim(); + AddSC_boss_yoggsaron(); + AddSC_ulduar(); + AddSC_boss_algalon_the_observer(); + AddSC_instance_ulduar(); + AddSC_boss_keleseth(); //Utgarde Keep + AddSC_boss_skarvald_dalronn(); + AddSC_boss_ingvar_the_plunderer(); + AddSC_instance_utgarde_keep(); + AddSC_boss_svala(); //Utgarde pinnacle + AddSC_boss_palehoof(); + AddSC_boss_skadi(); + AddSC_boss_ymiron(); + AddSC_instance_utgarde_pinnacle(); + AddSC_utgarde_keep(); + AddSC_boss_archavon(); //Vault of Archavon + AddSC_boss_emalon(); + AddSC_boss_koralon(); + AddSC_boss_toravon(); + AddSC_instance_vault_of_archavon(); + AddSC_boss_trollgore(); //Drak'Tharon Keep + AddSC_boss_novos(); + AddSC_boss_dred(); + AddSC_boss_tharon_ja(); + AddSC_instance_drak_tharon_keep(); + AddSC_boss_cyanigosa(); //Violet Hold + AddSC_boss_erekem(); + AddSC_boss_ichoron(); + AddSC_boss_lavanthor(); + AddSC_boss_moragg(); + AddSC_boss_xevozz(); + AddSC_boss_zuramat(); + AddSC_instance_violet_hold(); + AddSC_violet_hold(); + AddSC_instance_forge_of_souls(); //Forge of Souls + AddSC_forge_of_souls(); + AddSC_boss_bronjahm(); + AddSC_boss_devourer_of_souls(); + AddSC_instance_pit_of_saron(); //Pit of Saron + AddSC_pit_of_saron(); + AddSC_boss_garfrost(); + AddSC_boss_ick(); + AddSC_boss_tyrannus(); + AddSC_instance_halls_of_reflection(); // Halls of Reflection + AddSC_halls_of_reflection(); + AddSC_boss_falric(); + AddSC_boss_marwyn(); + AddSC_boss_lord_marrowgar(); // Icecrown Citadel + AddSC_boss_lady_deathwhisper(); + AddSC_boss_icecrown_gunship_battle(); + AddSC_boss_deathbringer_saurfang(); + AddSC_boss_festergut(); + AddSC_boss_rotface(); + AddSC_boss_professor_putricide(); + AddSC_boss_blood_prince_council(); + AddSC_boss_blood_queen_lana_thel(); + AddSC_boss_valithria_dreamwalker(); + AddSC_boss_sindragosa(); + AddSC_boss_the_lich_king(); + AddSC_icecrown_citadel_teleport(); + AddSC_instance_icecrown_citadel(); + AddSC_icecrown_citadel(); + AddSC_instance_ruby_sanctum(); // Ruby Sanctum + AddSC_boss_baltharus_the_warborn(); + AddSC_boss_saviana_ragefire(); + AddSC_boss_general_zarithrian(); + AddSC_boss_halion(); + AddSC_dalaran(); + AddSC_borean_tundra(); + AddSC_dragonblight(); + AddSC_grizzly_hills(); + AddSC_howling_fjord(); + AddSC_icecrown(); + AddSC_sholazar_basin(); + AddSC_storm_peaks(); + AddSC_zuldrak(); + AddSC_crystalsong_forest(); + AddSC_isle_of_conquest(); + AddSC_wintergrasp(); +} diff --git a/src/server/scripts/OutdoorPvP/CMakeLists.txt b/src/server/scripts/OutdoorPvP/CMakeLists.txt deleted file mode 100644 index d3939086d1..0000000000 --- a/src/server/scripts/OutdoorPvP/CMakeLists.txt +++ /dev/null @@ -1,31 +0,0 @@ -# Copyright (C) -# -# This file is free software; as a special exception the author gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the -# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -set(scripts_STAT_SRCS - ${scripts_STAT_SRCS} - ${AC_SCRIPTS_DIR}/OutdoorPvP/OutdoorPvPTF.cpp - ${AC_SCRIPTS_DIR}/OutdoorPvP/OutdoorPvPSI.cpp - ${AC_SCRIPTS_DIR}/OutdoorPvP/OutdoorPvPSI.h - ${AC_SCRIPTS_DIR}/OutdoorPvP/OutdoorPvPZM.cpp - ${AC_SCRIPTS_DIR}/OutdoorPvP/OutdoorPvPNA.cpp - ${AC_SCRIPTS_DIR}/OutdoorPvP/OutdoorPvPHP.cpp - ${AC_SCRIPTS_DIR}/OutdoorPvP/OutdoorPvPTF.h - ${AC_SCRIPTS_DIR}/OutdoorPvP/OutdoorPvPEP.h - ${AC_SCRIPTS_DIR}/OutdoorPvP/OutdoorPvPEP.cpp - ${AC_SCRIPTS_DIR}/OutdoorPvP/OutdoorPvPHP.h - ${AC_SCRIPTS_DIR}/OutdoorPvP/OutdoorPvPZM.h - ${AC_SCRIPTS_DIR}/OutdoorPvP/OutdoorPvPNA.h - ${AC_SCRIPTS_DIR}/OutdoorPvP/OutdoorPvPGH.cpp - ${AC_SCRIPTS_DIR}/OutdoorPvP/OutdoorPvPGH.h -) - -AC_ADD_SCRIPT_LOADER("OutdoorPvP" "ScriptLoader.h") - -message(" -> Prepared: Outdoor PVP Zones") diff --git a/src/server/scripts/OutdoorPvP/outdoorpvp_script_loader.cpp b/src/server/scripts/OutdoorPvP/outdoorpvp_script_loader.cpp new file mode 100644 index 0000000000..b17b070915 --- /dev/null +++ b/src/server/scripts/OutdoorPvP/outdoorpvp_script_loader.cpp @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3 + * Copyright (C) 2021+ WarheadCore <https://github.com/WarheadCore> + */ + +// This is where scripts' loading functions should be declared: +void AddSC_outdoorpvp_ep(); +void AddSC_outdoorpvp_hp(); +void AddSC_outdoorpvp_na(); +void AddSC_outdoorpvp_si(); +void AddSC_outdoorpvp_tf(); +void AddSC_outdoorpvp_zm(); +void AddSC_outdoorpvp_gh(); + +// The name of this function should match: +// void Add${NameOfDirectory}Scripts() +void AddOutdoorPvPScripts() +{ + AddSC_outdoorpvp_ep(); + AddSC_outdoorpvp_hp(); + AddSC_outdoorpvp_na(); + AddSC_outdoorpvp_si(); + AddSC_outdoorpvp_tf(); + AddSC_outdoorpvp_zm(); + AddSC_outdoorpvp_gh(); +} diff --git a/src/server/scripts/Outland/CMakeLists.txt b/src/server/scripts/Outland/CMakeLists.txt deleted file mode 100644 index 5692fe7290..0000000000 --- a/src/server/scripts/Outland/CMakeLists.txt +++ /dev/null @@ -1,123 +0,0 @@ -# Copyright (C) -# -# This file is free software; as a special exception the author gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the -# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -set(scripts_STAT_SRCS - ${scripts_STAT_SRCS} - ${AC_SCRIPTS_DIR}/Outland/zone_nagrand.cpp - ${AC_SCRIPTS_DIR}/Outland/HellfireCitadel/MagtheridonsLair/magtheridons_lair.h - ${AC_SCRIPTS_DIR}/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp - ${AC_SCRIPTS_DIR}/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp - ${AC_SCRIPTS_DIR}/Outland/HellfireCitadel/HellfireRamparts/instance_hellfire_ramparts.cpp - ${AC_SCRIPTS_DIR}/Outland/HellfireCitadel/HellfireRamparts/boss_omor_the_unscarred.cpp - ${AC_SCRIPTS_DIR}/Outland/HellfireCitadel/HellfireRamparts/boss_watchkeeper_gargolmar.cpp - ${AC_SCRIPTS_DIR}/Outland/HellfireCitadel/HellfireRamparts/boss_vazruden_the_herald.cpp - ${AC_SCRIPTS_DIR}/Outland/HellfireCitadel/HellfireRamparts/hellfire_ramparts.h - ${AC_SCRIPTS_DIR}/Outland/HellfireCitadel/BloodFurnace/boss_the_maker.cpp - ${AC_SCRIPTS_DIR}/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp - ${AC_SCRIPTS_DIR}/Outland/HellfireCitadel/BloodFurnace/blood_furnace.h - ${AC_SCRIPTS_DIR}/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp - ${AC_SCRIPTS_DIR}/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp - ${AC_SCRIPTS_DIR}/Outland/HellfireCitadel/ShatteredHalls/shattered_halls.h - ${AC_SCRIPTS_DIR}/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp - ${AC_SCRIPTS_DIR}/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp - ${AC_SCRIPTS_DIR}/Outland/HellfireCitadel/ShatteredHalls/instance_shattered_halls.cpp - ${AC_SCRIPTS_DIR}/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp - ${AC_SCRIPTS_DIR}/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp - ${AC_SCRIPTS_DIR}/Outland/CoilfangReservoir/SteamVault/instance_steam_vault.cpp - ${AC_SCRIPTS_DIR}/Outland/CoilfangReservoir/SteamVault/boss_hydromancer_thespia.cpp - ${AC_SCRIPTS_DIR}/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp - ${AC_SCRIPTS_DIR}/Outland/CoilfangReservoir/SteamVault/steam_vault.h - ${AC_SCRIPTS_DIR}/Outland/CoilfangReservoir/SerpentShrine/boss_hydross_the_unstable.cpp - ${AC_SCRIPTS_DIR}/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp - ${AC_SCRIPTS_DIR}/Outland/CoilfangReservoir/SerpentShrine/instance_serpent_shrine.cpp - ${AC_SCRIPTS_DIR}/Outland/CoilfangReservoir/SerpentShrine/serpent_shrine.h - ${AC_SCRIPTS_DIR}/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp - ${AC_SCRIPTS_DIR}/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp - ${AC_SCRIPTS_DIR}/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp - ${AC_SCRIPTS_DIR}/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp - ${AC_SCRIPTS_DIR}/Outland/CoilfangReservoir/underbog/boss_the_black_stalker.cpp - ${AC_SCRIPTS_DIR}/Outland/CoilfangReservoir/underbog/instance_the_underbog.cpp - ${AC_SCRIPTS_DIR}/Outland/CoilfangReservoir/underbog/the_underbog.h - ${AC_SCRIPTS_DIR}/Outland/CoilfangReservoir/SlavePens/boss_ahune.cpp - ${AC_SCRIPTS_DIR}/Outland/CoilfangReservoir/SlavePens/instance_the_slave_pens.cpp - ${AC_SCRIPTS_DIR}/Outland/CoilfangReservoir/SlavePens/the_slave_pens.h - ${AC_SCRIPTS_DIR}/Outland/zone_shattrath_city.cpp - ${AC_SCRIPTS_DIR}/Outland/TempestKeep/Mechanar/boss_mechano_lord_capacitus.cpp - ${AC_SCRIPTS_DIR}/Outland/TempestKeep/Mechanar/boss_pathaleon_the_calculator.cpp - ${AC_SCRIPTS_DIR}/Outland/TempestKeep/Mechanar/boss_nethermancer_sepethrea.cpp - ${AC_SCRIPTS_DIR}/Outland/TempestKeep/Mechanar/mechanar.h - ${AC_SCRIPTS_DIR}/Outland/TempestKeep/Mechanar/boss_gatewatcher_gyrokill.cpp - ${AC_SCRIPTS_DIR}/Outland/TempestKeep/Mechanar/instance_mechanar.cpp - ${AC_SCRIPTS_DIR}/Outland/TempestKeep/Mechanar/boss_gatewatcher_ironhand.cpp - ${AC_SCRIPTS_DIR}/Outland/TempestKeep/Eye/the_eye.h - ${AC_SCRIPTS_DIR}/Outland/TempestKeep/Eye/instance_the_eye.cpp - ${AC_SCRIPTS_DIR}/Outland/TempestKeep/Eye/boss_void_reaver.cpp - ${AC_SCRIPTS_DIR}/Outland/TempestKeep/Eye/boss_astromancer.cpp - ${AC_SCRIPTS_DIR}/Outland/TempestKeep/Eye/boss_alar.cpp - ${AC_SCRIPTS_DIR}/Outland/TempestKeep/Eye/boss_kaelthas.cpp - ${AC_SCRIPTS_DIR}/Outland/TempestKeep/botanica/the_botanica.h - ${AC_SCRIPTS_DIR}/Outland/TempestKeep/botanica/instance_the_botanica.cpp - ${AC_SCRIPTS_DIR}/Outland/TempestKeep/botanica/boss_commander_sarannis.cpp - ${AC_SCRIPTS_DIR}/Outland/TempestKeep/botanica/boss_thorngrin_the_tender.cpp - ${AC_SCRIPTS_DIR}/Outland/TempestKeep/botanica/boss_high_botanist_freywinn.cpp - ${AC_SCRIPTS_DIR}/Outland/TempestKeep/botanica/boss_warp_splinter.cpp - ${AC_SCRIPTS_DIR}/Outland/TempestKeep/botanica/boss_laj.cpp - ${AC_SCRIPTS_DIR}/Outland/TempestKeep/arcatraz/boss_zereketh_the_unbound.cpp - ${AC_SCRIPTS_DIR}/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp - ${AC_SCRIPTS_DIR}/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp - ${AC_SCRIPTS_DIR}/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp - ${AC_SCRIPTS_DIR}/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp - ${AC_SCRIPTS_DIR}/Outland/TempestKeep/arcatraz/arcatraz.h - ${AC_SCRIPTS_DIR}/Outland/TempestKeep/arcatraz/arcatraz.cpp - ${AC_SCRIPTS_DIR}/Outland/Auchindoun/AuchenaiCrypts/boss_shirrak_the_dead_watcher.cpp - ${AC_SCRIPTS_DIR}/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp - ${AC_SCRIPTS_DIR}/Outland/Auchindoun/AuchenaiCrypts/instance_auchenai_crypts.cpp - ${AC_SCRIPTS_DIR}/Outland/Auchindoun/AuchenaiCrypts/auchenai_crypts.h - ${AC_SCRIPTS_DIR}/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp - ${AC_SCRIPTS_DIR}/Outland/Auchindoun/ManaTombs/boss_pandemonius.cpp - ${AC_SCRIPTS_DIR}/Outland/Auchindoun/ManaTombs/instance_mana_tombs.cpp - ${AC_SCRIPTS_DIR}/Outland/Auchindoun/ManaTombs/mana_tombs.h - ${AC_SCRIPTS_DIR}/Outland/Auchindoun/SethekkHalls/boss_talon_king_ikiss.cpp - ${AC_SCRIPTS_DIR}/Outland/Auchindoun/SethekkHalls/instance_sethekk_halls.cpp - ${AC_SCRIPTS_DIR}/Outland/Auchindoun/SethekkHalls/sethekk_halls.h - ${AC_SCRIPTS_DIR}/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp - ${AC_SCRIPTS_DIR}/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp - ${AC_SCRIPTS_DIR}/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp - ${AC_SCRIPTS_DIR}/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp - ${AC_SCRIPTS_DIR}/Outland/Auchindoun/ShadowLabyrinth/instance_shadow_labyrinth.cpp - ${AC_SCRIPTS_DIR}/Outland/Auchindoun/ShadowLabyrinth/shadow_labyrinth.h - ${AC_SCRIPTS_DIR}/Outland/boss_doomwalker.cpp - ${AC_SCRIPTS_DIR}/Outland/zone_terokkar_forest.cpp - ${AC_SCRIPTS_DIR}/Outland/zone_hellfire_peninsula.cpp - ${AC_SCRIPTS_DIR}/Outland/boss_doomlord_kazzak.cpp - ${AC_SCRIPTS_DIR}/Outland/BlackTemple/boss_teron_gorefiend.cpp - ${AC_SCRIPTS_DIR}/Outland/BlackTemple/black_temple.h - ${AC_SCRIPTS_DIR}/Outland/BlackTemple/illidari_council.cpp - ${AC_SCRIPTS_DIR}/Outland/BlackTemple/boss_shade_of_akama.cpp - ${AC_SCRIPTS_DIR}/Outland/BlackTemple/boss_supremus.cpp - ${AC_SCRIPTS_DIR}/Outland/BlackTemple/boss_mother_shahraz.cpp - ${AC_SCRIPTS_DIR}/Outland/BlackTemple/instance_black_temple.cpp - ${AC_SCRIPTS_DIR}/Outland/BlackTemple/boss_reliquary_of_souls.cpp - ${AC_SCRIPTS_DIR}/Outland/BlackTemple/boss_warlord_najentus.cpp - ${AC_SCRIPTS_DIR}/Outland/BlackTemple/boss_bloodboil.cpp - ${AC_SCRIPTS_DIR}/Outland/BlackTemple/boss_illidan.cpp - ${AC_SCRIPTS_DIR}/Outland/zone_shadowmoon_valley.cpp - ${AC_SCRIPTS_DIR}/Outland/zone_blades_edge_mountains.cpp - ${AC_SCRIPTS_DIR}/Outland/GruulsLair/boss_high_king_maulgar.cpp - ${AC_SCRIPTS_DIR}/Outland/GruulsLair/boss_gruul.cpp - ${AC_SCRIPTS_DIR}/Outland/GruulsLair/gruuls_lair.h - ${AC_SCRIPTS_DIR}/Outland/GruulsLair/instance_gruuls_lair.cpp - ${AC_SCRIPTS_DIR}/Outland/zone_netherstorm.cpp - ${AC_SCRIPTS_DIR}/Outland/zone_zangarmarsh.cpp -) - -AC_ADD_SCRIPT_LOADER("Outland" "ScriptLoader.h") - -message(" -> Prepared: Outland") diff --git a/src/server/scripts/Outland/outland_script_loader.cpp b/src/server/scripts/Outland/outland_script_loader.cpp new file mode 100644 index 0000000000..3e13637d2b --- /dev/null +++ b/src/server/scripts/Outland/outland_script_loader.cpp @@ -0,0 +1,188 @@ +/* + * Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3 + * Copyright (C) 2021+ WarheadCore <https://github.com/WarheadCore> + */ + +// This is where scripts' loading functions should be declared: +void AddSC_boss_exarch_maladaar(); //Auchindoun Auchenai Crypts +void AddSC_instance_auchenai_crypts(); +void AddSC_boss_shirrak_the_dead_watcher(); +void AddSC_boss_nexusprince_shaffar(); //Auchindoun Mana Tombs +void AddSC_boss_pandemonius(); +void AddSC_instance_mana_tombs(); +void AddSC_boss_talon_king_ikiss(); //Auchindoun Sekketh Halls +void AddSC_instance_sethekk_halls(); +void AddSC_instance_shadow_labyrinth(); //Auchindoun Shadow Labyrinth +void AddSC_boss_ambassador_hellmaw(); +void AddSC_boss_blackheart_the_inciter(); +void AddSC_boss_grandmaster_vorpil(); +void AddSC_boss_murmur(); +void AddSC_boss_illidan(); //Black Temple +void AddSC_boss_shade_of_akama(); +void AddSC_boss_supremus(); +void AddSC_boss_gurtogg_bloodboil(); +void AddSC_boss_mother_shahraz(); +void AddSC_boss_reliquary_of_souls(); +void AddSC_boss_teron_gorefiend(); +void AddSC_boss_najentus(); +void AddSC_boss_illidari_council(); +void AddSC_instance_black_temple(); +void AddSC_boss_fathomlord_karathress(); //CR Serpent Shrine Cavern +void AddSC_boss_hydross_the_unstable(); +void AddSC_boss_lady_vashj(); +void AddSC_boss_leotheras_the_blind(); +void AddSC_boss_morogrim_tidewalker(); +void AddSC_instance_serpentshrine_cavern(); +void AddSC_boss_the_lurker_below(); +void AddSC_boss_hydromancer_thespia(); //CR Steam Vault +void AddSC_boss_mekgineer_steamrigger(); +void AddSC_boss_warlord_kalithresh(); +void AddSC_instance_steam_vault(); +void AddSC_boss_the_black_stalker(); //CR Underbog +void AddSC_instance_the_underbog(); +void AddSC_boss_ahune(); +void AddSC_instance_the_slave_pens(); +void AddSC_boss_gruul(); //Gruul's Lair +void AddSC_boss_high_king_maulgar(); +void AddSC_instance_gruuls_lair(); +void AddSC_boss_broggok(); //HC Blood Furnace +void AddSC_boss_kelidan_the_breaker(); +void AddSC_boss_the_maker(); +void AddSC_instance_blood_furnace(); +void AddSC_boss_magtheridon(); //HC Magtheridon's Lair +void AddSC_instance_magtheridons_lair(); +void AddSC_boss_grand_warlock_nethekurse(); //HC Shattered Halls +void AddSC_boss_warbringer_omrogg(); +void AddSC_boss_warchief_kargath_bladefist(); +void AddSC_instance_shattered_halls(); +void AddSC_boss_watchkeeper_gargolmar(); //HC Ramparts +void AddSC_boss_omor_the_unscarred(); +void AddSC_boss_vazruden_the_herald(); +void AddSC_instance_hellfire_ramparts(); +void AddSC_arcatraz(); //TK Arcatraz +void AddSC_boss_harbinger_skyriss(); +void AddSC_boss_wrath_scryer_soccothrates(); +void AddSC_boss_zereketh_the_unbound(); +void AddSC_boss_dalliah_the_doomsayer(); +void AddSC_instance_arcatraz(); +void AddSC_boss_high_botanist_freywinn(); //TK Botanica +void AddSC_boss_laj(); +void AddSC_boss_warp_splinter(); +void AddSC_boss_thorngrin_the_tender(); +void AddSC_boss_commander_sarannis(); +void AddSC_instance_the_botanica(); +void AddSC_boss_alar(); //TK The Eye +void AddSC_boss_kaelthas(); +void AddSC_boss_void_reaver(); +void AddSC_boss_high_astromancer_solarian(); +void AddSC_instance_the_eye(); +void AddSC_boss_gatewatcher_iron_hand(); //TK The Mechanar +void AddSC_boss_gatewatcher_gyrokill(); +void AddSC_boss_nethermancer_sepethrea(); +void AddSC_boss_pathaleon_the_calculator(); +void AddSC_boss_mechano_lord_capacitus(); +void AddSC_instance_mechanar(); +void AddSC_blades_edge_mountains(); +void AddSC_boss_doomlordkazzak(); +void AddSC_boss_doomwalker(); +void AddSC_hellfire_peninsula(); +void AddSC_nagrand(); +void AddSC_netherstorm(); +void AddSC_shadowmoon_valley(); +void AddSC_shattrath_city(); +void AddSC_terokkar_forest(); +void AddSC_zangarmarsh(); + +// The name of this function should match: +// void Add${NameOfDirectory}Scripts() +void AddOutlandScripts() +{ + AddSC_boss_exarch_maladaar(); //Auchindoun Auchenai Crypts + AddSC_instance_auchenai_crypts(); + AddSC_boss_shirrak_the_dead_watcher(); + AddSC_boss_nexusprince_shaffar(); //Auchindoun Mana Tombs + AddSC_boss_pandemonius(); + AddSC_instance_mana_tombs(); + AddSC_boss_talon_king_ikiss(); //Auchindoun Sekketh Halls + AddSC_instance_sethekk_halls(); + AddSC_instance_shadow_labyrinth(); //Auchindoun Shadow Labyrinth + AddSC_boss_ambassador_hellmaw(); + AddSC_boss_blackheart_the_inciter(); + AddSC_boss_grandmaster_vorpil(); + AddSC_boss_murmur(); + AddSC_boss_illidan(); //Black Temple + AddSC_boss_shade_of_akama(); + AddSC_boss_supremus(); + AddSC_boss_gurtogg_bloodboil(); + AddSC_boss_mother_shahraz(); + AddSC_boss_reliquary_of_souls(); + AddSC_boss_teron_gorefiend(); + AddSC_boss_najentus(); + AddSC_boss_illidari_council(); + AddSC_instance_black_temple(); + AddSC_boss_fathomlord_karathress(); //CR Serpent Shrine Cavern + AddSC_boss_hydross_the_unstable(); + AddSC_boss_lady_vashj(); + AddSC_boss_leotheras_the_blind(); + AddSC_boss_morogrim_tidewalker(); + AddSC_instance_serpentshrine_cavern(); + AddSC_boss_the_lurker_below(); + AddSC_boss_hydromancer_thespia(); //CR Steam Vault + AddSC_boss_mekgineer_steamrigger(); + AddSC_boss_warlord_kalithresh(); + AddSC_instance_steam_vault(); + AddSC_boss_the_black_stalker(); //CR Underbog + AddSC_instance_the_underbog(); + AddSC_boss_ahune(); + AddSC_instance_the_slave_pens(); + AddSC_boss_gruul(); //Gruul's Lair + AddSC_boss_high_king_maulgar(); + AddSC_instance_gruuls_lair(); + AddSC_boss_broggok(); //HC Blood Furnace + AddSC_boss_kelidan_the_breaker(); + AddSC_boss_the_maker(); + AddSC_instance_blood_furnace(); + AddSC_boss_magtheridon(); //HC Magtheridon's Lair + AddSC_instance_magtheridons_lair(); + AddSC_boss_grand_warlock_nethekurse(); //HC Shattered Halls + AddSC_boss_warbringer_omrogg(); + AddSC_boss_warchief_kargath_bladefist(); + AddSC_instance_shattered_halls(); + AddSC_boss_watchkeeper_gargolmar(); //HC Ramparts + AddSC_boss_omor_the_unscarred(); + AddSC_boss_vazruden_the_herald(); + AddSC_instance_hellfire_ramparts(); + AddSC_arcatraz(); //TK Arcatraz + AddSC_boss_harbinger_skyriss(); + AddSC_boss_wrath_scryer_soccothrates(); + AddSC_boss_zereketh_the_unbound(); + AddSC_boss_dalliah_the_doomsayer(); + AddSC_instance_arcatraz(); + AddSC_boss_high_botanist_freywinn(); //TK Botanica + AddSC_boss_laj(); + AddSC_boss_warp_splinter(); + AddSC_boss_thorngrin_the_tender(); + AddSC_boss_commander_sarannis(); + AddSC_instance_the_botanica(); + AddSC_boss_alar(); //TK The Eye + AddSC_boss_kaelthas(); + AddSC_boss_void_reaver(); + AddSC_boss_high_astromancer_solarian(); + AddSC_instance_the_eye(); + AddSC_boss_gatewatcher_iron_hand(); //TK The Mechanar + AddSC_boss_gatewatcher_gyrokill(); + AddSC_boss_nethermancer_sepethrea(); + AddSC_boss_pathaleon_the_calculator(); + AddSC_boss_mechano_lord_capacitus(); + AddSC_instance_mechanar(); + AddSC_blades_edge_mountains(); + AddSC_boss_doomlordkazzak(); + AddSC_boss_doomwalker(); + AddSC_hellfire_peninsula(); + AddSC_nagrand(); + AddSC_netherstorm(); + AddSC_shadowmoon_valley(); + AddSC_shattrath_city(); + AddSC_terokkar_forest(); + AddSC_zangarmarsh(); +} diff --git a/src/server/scripts/Pet/CMakeLists.txt b/src/server/scripts/Pet/CMakeLists.txt deleted file mode 100644 index f63f1a586a..0000000000 --- a/src/server/scripts/Pet/CMakeLists.txt +++ /dev/null @@ -1,23 +0,0 @@ -# Copyright (C) -# -# This file is free software; as a special exception the author gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the -# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -set(scripts_STAT_SRCS - ${scripts_STAT_SRCS} - ${AC_SCRIPTS_DIR}/Pet/pet_dk.cpp - ${AC_SCRIPTS_DIR}/Pet/pet_generic.cpp - ${AC_SCRIPTS_DIR}/Pet/pet_hunter.cpp - ${AC_SCRIPTS_DIR}/Pet/pet_mage.cpp - ${AC_SCRIPTS_DIR}/Pet/pet_priest.cpp - ${AC_SCRIPTS_DIR}/Pet/pet_shaman.cpp -) - -AC_ADD_SCRIPT_LOADER("Pet" "ScriptLoader.h") - -message(" -> Prepared: Pet") diff --git a/src/server/scripts/Pet/pets_script_loader.cpp b/src/server/scripts/Pet/pets_script_loader.cpp new file mode 100644 index 0000000000..cefdc937c0 --- /dev/null +++ b/src/server/scripts/Pet/pets_script_loader.cpp @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3 + * Copyright (C) 2021+ WarheadCore <https://github.com/WarheadCore> + */ + +// This is where scripts' loading functions should be declared: +// Pets +void AddSC_deathknight_pet_scripts(); +void AddSC_generic_pet_scripts(); +void AddSC_hunter_pet_scripts(); +void AddSC_mage_pet_scripts(); +void AddSC_priest_pet_scripts(); +void AddSC_shaman_pet_scripts(); + +// The name of this function should match: +// void Add${NameOfDirectory}Scripts() +void AddPetScripts() +{ + AddSC_deathknight_pet_scripts(); + AddSC_generic_pet_scripts(); + AddSC_hunter_pet_scripts(); + AddSC_mage_pet_scripts(); + AddSC_priest_pet_scripts(); + AddSC_shaman_pet_scripts(); +} diff --git a/src/server/scripts/ScriptLoader.cpp b/src/server/scripts/ScriptLoader.cpp deleted file mode 100644 index fefd532456..0000000000 --- a/src/server/scripts/ScriptLoader.cpp +++ /dev/null @@ -1,1199 +0,0 @@ -/* - * Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU GPL v2 license, you may redistribute it and/or modify it under version 2 of the License, or (at your option), any later version. - * Copyright (C) 2008-2016 TrinityCore <http://www.trinitycore.org/> - * Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/> - */ - -#include "ScriptLoader.h" -#include "ScriptMgr.h" -#include "World.h" - -// spells -void AddSC_deathknight_spell_scripts(); -void AddSC_druid_spell_scripts(); -void AddSC_generic_spell_scripts(); -void AddSC_hunter_spell_scripts(); -void AddSC_mage_spell_scripts(); -void AddSC_paladin_spell_scripts(); -void AddSC_priest_spell_scripts(); -void AddSC_rogue_spell_scripts(); -void AddSC_shaman_spell_scripts(); -void AddSC_warlock_spell_scripts(); -void AddSC_warrior_spell_scripts(); -void AddSC_quest_spell_scripts(); -void AddSC_item_spell_scripts(); - -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(); -void AddSC_character_commandscript(); -void AddSC_cheat_commandscript(); -void AddSC_debug_commandscript(); -void AddSC_deserter_commandscript(); -void AddSC_disable_commandscript(); -void AddSC_event_commandscript(); -void AddSC_gm_commandscript(); -void AddSC_go_commandscript(); -void AddSC_gobject_commandscript(); -void AddSC_guild_commandscript(); -void AddSC_honor_commandscript(); -void AddSC_instance_commandscript(); -void AddSC_learn_commandscript(); -void AddSC_lfg_commandscript(); -void AddSC_list_commandscript(); -void AddSC_lookup_commandscript(); -void AddSC_message_commandscript(); -void AddSC_misc_commandscript(); -void AddSC_mmaps_commandscript(); -void AddSC_modify_commandscript(); -void AddSC_npc_commandscript(); -void AddSC_quest_commandscript(); -void AddSC_reload_commandscript(); -void AddSC_reset_commandscript(); -void AddSC_server_commandscript(); -void AddSC_spectator_commandscript(); -void AddSC_tele_commandscript(); -void AddSC_ticket_commandscript(); -void AddSC_titles_commandscript(); -void AddSC_wp_commandscript(); -void AddSC_player_commandscript(); - -#ifdef SCRIPTS -//world -void AddSC_areatrigger_scripts(); -void AddSC_emerald_dragons(); -void AddSC_generic_creature(); -void AddSC_go_scripts(); -void AddSC_guards(); -void AddSC_item_scripts(); -void AddSC_npc_professions(); -void AddSC_npc_innkeeper(); -void AddSC_npcs_special(); -void AddSC_npc_taxi(); -void AddSC_achievement_scripts(); -void AddSC_action_ip_logger(); - -//events -void AddSC_event_brewfest_scripts(); -void AddSC_event_hallows_end_scripts(); -void AddSC_event_pilgrims_end_scripts(); -void AddSC_event_winter_veil_scripts(); -void AddSC_event_love_in_the_air(); -void AddSC_event_midsummer_scripts(); -void AddSC_event_childrens_week(); - -//eastern kingdoms -void AddSC_alterac_valley(); //Alterac Valley -void AddSC_boss_balinda(); -void AddSC_boss_drekthar(); -void AddSC_boss_galvangar(); -void AddSC_boss_vanndar(); -void AddSC_blackrock_depths(); //Blackrock Depths -void AddSC_boss_ambassador_flamelash(); -void AddSC_boss_anubshiah(); -void AddSC_boss_draganthaurissan(); -void AddSC_boss_general_angerforge(); -void AddSC_boss_gorosh_the_dervish(); -void AddSC_boss_grizzle(); -void AddSC_boss_high_interrogator_gerstahn(); -void AddSC_boss_magmus(); -void AddSC_boss_moira_bronzebeard(); -void AddSC_boss_tomb_of_seven(); -void AddSC_instance_blackrock_depths(); -void AddSC_boss_drakkisath(); //Blackrock Spire -void AddSC_boss_halycon(); -void AddSC_boss_highlordomokk(); -void AddSC_boss_overlordwyrmthalak(); -void AddSC_boss_shadowvosh(); -void AddSC_boss_thebeast(); -void AddSC_boss_warmastervoone(); -void AddSC_boss_quatermasterzigris(); -void AddSC_boss_pyroguard_emberseer(); -void AddSC_boss_gyth(); -void AddSC_boss_rend_blackhand(); -void AddSC_boss_urok_doomhowl(); -void AddSC_boss_gizrul_the_slavener(); -void AddSC_instance_blackrock_spire(); -void AddSC_boss_razorgore(); //Blackwing lair -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_instance_blackwing_lair(); -void AddSC_boss_mr_smite(); -void AddSC_instance_deadmines(); //Deadmines -void AddSC_instance_gnomeregan(); //Gnomeregan -void AddSC_instance_karazhan(); //Karazhan -void AddSC_boss_servant_quarters(); -void AddSC_boss_attumen(); -void AddSC_boss_curator(); -void AddSC_boss_maiden_of_virtue(); -void AddSC_boss_shade_of_aran(); -void AddSC_boss_malchezaar(); -void AddSC_boss_terestian_illhoof(); -void AddSC_boss_moroes(); -void AddSC_bosses_opera(); -void AddSC_boss_netherspite(); -void AddSC_karazhan(); -void AddSC_boss_nightbane(); -void AddSC_boss_felblood_kaelthas(); // Magister's Terrace -void AddSC_boss_selin_fireheart(); -void AddSC_boss_vexallus(); -void AddSC_boss_priestess_delrissa(); -void AddSC_instance_magisters_terrace(); -void AddSC_boss_lucifron(); //Molten core -void AddSC_boss_magmadar(); -void AddSC_boss_gehennas(); -void AddSC_boss_garr(); -void AddSC_boss_baron_geddon(); -void AddSC_boss_shazzrah(); -void AddSC_boss_golemagg(); -void AddSC_boss_sulfuron(); -void AddSC_boss_majordomo(); -void AddSC_boss_ragnaros(); -void AddSC_instance_molten_core(); -void AddSC_the_scarlet_enclave(); //Scarlet Enclave -void AddSC_the_scarlet_enclave_c1(); -void AddSC_the_scarlet_enclave_c2(); -void AddSC_the_scarlet_enclave_c5(); -void AddSC_instance_scarlet_monastery(); //Scarlet Monastery -void AddSC_boss_kirtonos_the_herald(); -void AddSC_instance_scholomance(); //Scholomance -void AddSC_instance_shadowfang_keep(); //Shadowfang keep -void AddSC_instance_stratholme(); //Stratholme -void AddSC_instance_sunken_temple(); //Sunken Temple -void AddSC_instance_sunwell_plateau(); //Sunwell Plateau -void AddSC_boss_kalecgos(); -void AddSC_boss_brutallus(); -void AddSC_boss_felmyst(); -void AddSC_boss_eredar_twins(); -void AddSC_boss_muru(); -void AddSC_boss_kiljaeden(); -void AddSC_instance_the_stockade(); //The Stockade -void AddSC_instance_uldaman(); //Uldaman -void AddSC_boss_akilzon(); //Zul'Aman -void AddSC_boss_halazzi(); -void AddSC_boss_hex_lord_malacrass(); -void AddSC_boss_janalai(); -void AddSC_boss_nalorakk(); -void AddSC_boss_zuljin(); -void AddSC_instance_zulaman(); -void AddSC_zulaman(); -void AddSC_boss_jeklik(); //Zul'Gurub -void AddSC_boss_venoxis(); -void AddSC_boss_marli(); -void AddSC_boss_mandokir(); -void AddSC_boss_gahzranka(); -void AddSC_boss_thekal(); -void AddSC_boss_arlokk(); -void AddSC_boss_jindo(); -void AddSC_boss_hakkar(); -void AddSC_boss_grilek(); -void AddSC_boss_hazzarah(); -void AddSC_boss_renataki(); -void AddSC_boss_wushoolay(); -void AddSC_instance_zulgurub(); - -//void AddSC_alterac_mountains(); -void AddSC_arathi_highlands(); -void AddSC_blasted_lands(); -void AddSC_duskwood(); -void AddSC_eastern_plaguelands(); -void AddSC_eversong_woods(); -void AddSC_ghostlands(); -void AddSC_hinterlands(); -void AddSC_ironforge(); -void AddSC_isle_of_queldanas(); -void AddSC_redridge_mountains(); -void AddSC_silverpine_forest(); -void AddSC_stormwind_city(); -void AddSC_stranglethorn_vale(); -//void AddSC_swamp_of_sorrows(); -void AddSC_tirisfal_glades(); -void AddSC_undercity(); -void AddSC_western_plaguelands(); -void AddSC_westfall(); -//void AddSC_wetlands(); - -//kalimdor -void AddSC_instance_blackfathom_deeps(); //Blackfathom Depths -void AddSC_hyjal(); //CoT Battle for Mt. Hyjal -void AddSC_boss_archimonde(); -void AddSC_instance_mount_hyjal(); -void AddSC_hyjal_trash(); -void AddSC_boss_rage_winterchill(); -void AddSC_boss_anetheron(); -void AddSC_boss_kazrogal(); -void AddSC_boss_azgalor(); -void AddSC_boss_captain_skarloc(); //CoT Old Hillsbrad -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_chrono_lord_deja(); -void AddSC_boss_temporus(); -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(); -void AddSC_boss_mal_ganis(); -void AddSC_boss_meathook(); -void AddSC_culling_of_stratholme(); -void AddSC_instance_culling_of_stratholme(); -void AddSC_instance_dire_maul(); //Dire Maul -void AddSC_instance_maraudon(); //Maraudon -void AddSC_boss_onyxia(); //Onyxia's Lair -void AddSC_instance_onyxias_lair(); -void AddSC_instance_ragefire_chasm(); //Ragefire Chasm -void AddSC_razorfen_downs(); //Razorfen Downs -void AddSC_instance_razorfen_downs(); -void AddSC_instance_razorfen_kraul(); //Razorfen Kraul -void AddSC_boss_kurinnaxx(); //Ruins of ahn'qiraj -void AddSC_boss_rajaxx(); -void AddSC_boss_moam(); -void AddSC_boss_buru(); -void AddSC_boss_ayamiss(); -void AddSC_boss_ossirian(); -void AddSC_instance_ruins_of_ahnqiraj(); -void AddSC_boss_cthun(); //Temple of ahn'qiraj -void AddSC_boss_viscidus(); -void AddSC_boss_fankriss(); -void AddSC_boss_huhuran(); -void AddSC_bug_trio(); -void AddSC_boss_sartura(); -void AddSC_boss_skeram(); -void AddSC_boss_twinemperors(); -void AddSC_boss_ouro(); -void AddSC_npc_anubisath_sentinel(); -void AddSC_instance_temple_of_ahnqiraj(); -void AddSC_instance_wailing_caverns(); //Wailing caverns -void AddSC_instance_zulfarrak(); //Zul'Farrak - -void AddSC_ashenvale(); -void AddSC_azshara(); -void AddSC_azuremyst_isle(); -void AddSC_bloodmyst_isle(); -void AddSC_boss_azuregos(); -void AddSC_darkshore(); -void AddSC_desolace(); -void AddSC_durotar(); -void AddSC_dustwallow_marsh(); -void AddSC_felwood(); -void AddSC_feralas(); -void AddSC_moonglade(); -void AddSC_mulgore(); -void AddSC_orgrimmar(); -void AddSC_silithus(); -void AddSC_stonetalon_mountains(); -void AddSC_tanaris(); -void AddSC_teldrassil(); -void AddSC_the_barrens(); -void AddSC_thousand_needles(); -void AddSC_thunder_bluff(); -void AddSC_ungoro_crater(); -void AddSC_winterspring(); - -//northrend -void AddSC_boss_slad_ran(); -void AddSC_boss_moorabi(); -void AddSC_boss_drakkari_colossus(); -void AddSC_boss_gal_darah(); -void AddSC_boss_eck(); -void AddSC_instance_gundrak(); -void AddSC_boss_krik_thir(); //Azjol-Nerub -void AddSC_boss_hadronox(); -void AddSC_boss_anub_arak(); -void AddSC_instance_azjol_nerub(); -void AddSC_instance_ahnkahet(); //Azjol-Nerub Ahn'kahet -void AddSC_boss_amanitar(); -void AddSC_boss_taldaram(); -void AddSC_boss_jedoga_shadowseeker(); -void AddSC_boss_elder_nadox(); -void AddSC_boss_volazj(); -void AddSC_boss_argent_challenge(); //Trial of the Champion -void AddSC_boss_black_knight(); -void AddSC_boss_grand_champions(); -void AddSC_instance_trial_of_the_champion(); -void AddSC_trial_of_the_champion(); -void AddSC_boss_anubarak_trial(); //Trial of the Crusader -void AddSC_boss_faction_champions(); -void AddSC_boss_jaraxxus(); -void AddSC_boss_northrend_beasts(); -void AddSC_boss_twin_valkyr(); -void AddSC_trial_of_the_crusader(); -void AddSC_instance_trial_of_the_crusader(); -void AddSC_boss_anubrekhan(); //Naxxramas -void AddSC_boss_maexxna(); -void AddSC_boss_patchwerk(); -void AddSC_boss_grobbulus(); -void AddSC_boss_razuvious(); -void AddSC_boss_kelthuzad(); -void AddSC_boss_loatheb(); -void AddSC_boss_noth(); -void AddSC_boss_gluth(); -void AddSC_boss_sapphiron(); -void AddSC_boss_four_horsemen(); -void AddSC_boss_faerlina(); -void AddSC_boss_heigan(); -void AddSC_boss_gothik(); -void AddSC_boss_thaddius(); -void AddSC_instance_naxxramas(); -void AddSC_boss_magus_telestra(); //The Nexus Nexus -void AddSC_boss_anomalus(); -void AddSC_boss_ormorok(); -void AddSC_boss_keristrasza(); -void AddSC_boss_commander_stoutbeard(); -void AddSC_instance_nexus(); -void AddSC_boss_drakos(); //The Nexus The Oculus -void AddSC_boss_varos(); -void AddSC_boss_urom(); -void AddSC_boss_eregos(); -void AddSC_instance_oculus(); -void AddSC_oculus(); -void AddSC_boss_sartharion(); //Obsidian Sanctum -void AddSC_instance_obsidian_sanctum(); -void AddSC_boss_malygos(); //Eye of Eternity -void AddSC_instance_eye_of_eternity(); -void AddSC_boss_bjarngrim(); //Ulduar Halls of Lightning -void AddSC_boss_loken(); -void AddSC_boss_ionar(); -void AddSC_boss_volkhan(); -void AddSC_instance_halls_of_lightning(); -void AddSC_boss_maiden_of_grief(); //Ulduar Halls of Stone -void AddSC_boss_krystallus(); -void AddSC_boss_sjonnir(); -void AddSC_brann_bronzebeard(); -void AddSC_instance_halls_of_stone(); -void AddSC_boss_auriaya(); //Ulduar Ulduar -void AddSC_boss_flame_leviathan(); -void AddSC_boss_ignis(); -void AddSC_boss_razorscale(); -void AddSC_boss_xt002(); -void AddSC_boss_kologarn(); -void AddSC_boss_assembly_of_iron(); -void AddSC_boss_freya(); -void AddSC_boss_mimiron(); -void AddSC_boss_hodir(); -void AddSC_boss_thorim(); -void AddSC_boss_vezax(); -void AddSC_boss_yoggsaron(); -void AddSC_ulduar(); -void AddSC_boss_algalon_the_observer(); -void AddSC_instance_ulduar(); -void AddSC_boss_keleseth(); //Utgarde Keep -void AddSC_boss_skarvald_dalronn(); -void AddSC_boss_ingvar_the_plunderer(); -void AddSC_instance_utgarde_keep(); -void AddSC_boss_svala(); //Utgarde pinnacle -void AddSC_boss_palehoof(); -void AddSC_boss_skadi(); -void AddSC_boss_ymiron(); -void AddSC_instance_utgarde_pinnacle(); -void AddSC_utgarde_keep(); -void AddSC_boss_archavon(); //Vault of Archavon -void AddSC_boss_emalon(); -void AddSC_boss_koralon(); -void AddSC_boss_toravon(); -void AddSC_instance_vault_of_archavon(); -void AddSC_boss_trollgore(); //Drak'Tharon Keep -void AddSC_boss_novos(); -void AddSC_boss_dred(); -void AddSC_boss_tharon_ja(); -void AddSC_instance_drak_tharon_keep(); -void AddSC_boss_cyanigosa(); //Violet Hold -void AddSC_boss_erekem(); -void AddSC_boss_ichoron(); -void AddSC_boss_lavanthor(); -void AddSC_boss_moragg(); -void AddSC_boss_xevozz(); -void AddSC_boss_zuramat(); -void AddSC_instance_violet_hold(); -void AddSC_violet_hold(); -void AddSC_instance_forge_of_souls(); //Forge of Souls -void AddSC_forge_of_souls(); -void AddSC_boss_bronjahm(); -void AddSC_boss_devourer_of_souls(); -void AddSC_instance_pit_of_saron(); //Pit of Saron -void AddSC_pit_of_saron(); -void AddSC_boss_garfrost(); -void AddSC_boss_ick(); -void AddSC_boss_tyrannus(); -void AddSC_instance_halls_of_reflection(); // Halls of Reflection -void AddSC_halls_of_reflection(); -void AddSC_boss_falric(); -void AddSC_boss_marwyn(); -void AddSC_boss_lord_marrowgar(); // Icecrown Citadel -void AddSC_boss_lady_deathwhisper(); -void AddSC_boss_icecrown_gunship_battle(); -void AddSC_boss_deathbringer_saurfang(); -void AddSC_boss_festergut(); -void AddSC_boss_rotface(); -void AddSC_boss_professor_putricide(); -void AddSC_boss_blood_prince_council(); -void AddSC_boss_blood_queen_lana_thel(); -void AddSC_boss_valithria_dreamwalker(); -void AddSC_boss_sindragosa(); -void AddSC_boss_the_lich_king(); -void AddSC_icecrown_citadel_teleport(); -void AddSC_instance_icecrown_citadel(); -void AddSC_icecrown_citadel(); -void AddSC_instance_ruby_sanctum(); // Ruby Sanctum -void AddSC_boss_baltharus_the_warborn(); -void AddSC_boss_saviana_ragefire(); -void AddSC_boss_general_zarithrian(); -void AddSC_boss_halion(); - -void AddSC_dalaran(); -void AddSC_borean_tundra(); -void AddSC_dragonblight(); -void AddSC_grizzly_hills(); -void AddSC_howling_fjord(); -void AddSC_icecrown(); -void AddSC_sholazar_basin(); -void AddSC_storm_peaks(); -void AddSC_zuldrak(); -void AddSC_crystalsong_forest(); -void AddSC_isle_of_conquest(); -void AddSC_wintergrasp(); - -//outland -void AddSC_boss_exarch_maladaar(); //Auchindoun Auchenai Crypts -void AddSC_instance_auchenai_crypts(); -void AddSC_boss_shirrak_the_dead_watcher(); -void AddSC_boss_nexusprince_shaffar(); //Auchindoun Mana Tombs -void AddSC_boss_pandemonius(); -void AddSC_instance_mana_tombs(); -void AddSC_boss_talon_king_ikiss(); //Auchindoun Sekketh Halls -void AddSC_instance_sethekk_halls(); -void AddSC_instance_shadow_labyrinth(); //Auchindoun Shadow Labyrinth -void AddSC_boss_ambassador_hellmaw(); -void AddSC_boss_blackheart_the_inciter(); -void AddSC_boss_grandmaster_vorpil(); -void AddSC_boss_murmur(); -void AddSC_boss_illidan(); //Black Temple -void AddSC_boss_shade_of_akama(); -void AddSC_boss_supremus(); -void AddSC_boss_gurtogg_bloodboil(); -void AddSC_boss_mother_shahraz(); -void AddSC_boss_reliquary_of_souls(); -void AddSC_boss_teron_gorefiend(); -void AddSC_boss_najentus(); -void AddSC_boss_illidari_council(); -void AddSC_instance_black_temple(); -void AddSC_boss_fathomlord_karathress(); //CR Serpent Shrine Cavern -void AddSC_boss_hydross_the_unstable(); -void AddSC_boss_lady_vashj(); -void AddSC_boss_leotheras_the_blind(); -void AddSC_boss_morogrim_tidewalker(); -void AddSC_instance_serpentshrine_cavern(); -void AddSC_boss_the_lurker_below(); -void AddSC_boss_hydromancer_thespia(); //CR Steam Vault -void AddSC_boss_mekgineer_steamrigger(); -void AddSC_boss_warlord_kalithresh(); -void AddSC_instance_steam_vault(); -void AddSC_boss_the_black_stalker(); //CR Underbog -void AddSC_instance_the_underbog(); -void AddSC_boss_ahune(); -void AddSC_instance_the_slave_pens(); -void AddSC_boss_gruul(); //Gruul's Lair -void AddSC_boss_high_king_maulgar(); -void AddSC_instance_gruuls_lair(); -void AddSC_boss_broggok(); //HC Blood Furnace -void AddSC_boss_kelidan_the_breaker(); -void AddSC_boss_the_maker(); -void AddSC_instance_blood_furnace(); -void AddSC_boss_magtheridon(); //HC Magtheridon's Lair -void AddSC_instance_magtheridons_lair(); -void AddSC_boss_grand_warlock_nethekurse(); //HC Shattered Halls -void AddSC_boss_warbringer_omrogg(); -void AddSC_boss_warchief_kargath_bladefist(); -void AddSC_instance_shattered_halls(); -void AddSC_boss_watchkeeper_gargolmar(); //HC Ramparts -void AddSC_boss_omor_the_unscarred(); -void AddSC_boss_vazruden_the_herald(); -void AddSC_instance_hellfire_ramparts(); -void AddSC_arcatraz(); //TK Arcatraz -void AddSC_boss_harbinger_skyriss(); -void AddSC_boss_wrath_scryer_soccothrates(); -void AddSC_boss_zereketh_the_unbound(); -void AddSC_boss_dalliah_the_doomsayer(); -void AddSC_instance_arcatraz(); -void AddSC_boss_high_botanist_freywinn(); //TK Botanica -void AddSC_boss_laj(); -void AddSC_boss_warp_splinter(); -void AddSC_boss_thorngrin_the_tender(); -void AddSC_boss_commander_sarannis(); -void AddSC_instance_the_botanica(); -void AddSC_boss_alar(); //TK The Eye -void AddSC_boss_kaelthas(); -void AddSC_boss_void_reaver(); -void AddSC_boss_high_astromancer_solarian(); -void AddSC_instance_the_eye(); -void AddSC_boss_gatewatcher_iron_hand(); //TK The Mechanar -void AddSC_boss_gatewatcher_gyrokill(); -void AddSC_boss_nethermancer_sepethrea(); -void AddSC_boss_pathaleon_the_calculator(); -void AddSC_boss_mechano_lord_capacitus(); -void AddSC_instance_mechanar(); - -void AddSC_blades_edge_mountains(); -void AddSC_boss_doomlordkazzak(); -void AddSC_boss_doomwalker(); -void AddSC_hellfire_peninsula(); -void AddSC_nagrand(); -void AddSC_netherstorm(); -void AddSC_shadowmoon_valley(); -void AddSC_shattrath_city(); -void AddSC_terokkar_forest(); -void AddSC_zangarmarsh(); - -// Pets -void AddSC_deathknight_pet_scripts(); -void AddSC_generic_pet_scripts(); -void AddSC_hunter_pet_scripts(); -void AddSC_mage_pet_scripts(); -void AddSC_priest_pet_scripts(); -void AddSC_shaman_pet_scripts(); - -// battlegrounds - -// outdoor pvp -void AddSC_outdoorpvp_ep(); -void AddSC_outdoorpvp_hp(); -void AddSC_outdoorpvp_na(); -void AddSC_outdoorpvp_si(); -void AddSC_outdoorpvp_tf(); -void AddSC_outdoorpvp_zm(); -void AddSC_outdoorpvp_gh(); - -// player -void AddSC_chat_log(); -void AddSC_character_creation(); -void AddSC_action_ip_logger(); - -#endif - -void AddSpellScripts() -{ - AddSC_deathknight_spell_scripts(); - AddSC_druid_spell_scripts(); - AddSC_generic_spell_scripts(); - AddSC_hunter_spell_scripts(); - AddSC_mage_spell_scripts(); - AddSC_paladin_spell_scripts(); - AddSC_priest_spell_scripts(); - AddSC_rogue_spell_scripts(); - AddSC_shaman_spell_scripts(); - AddSC_warlock_spell_scripts(); - AddSC_warrior_spell_scripts(); - AddSC_quest_spell_scripts(); - AddSC_item_spell_scripts(); -} - -void AddCommandScripts() -{ - AddSC_server_commandscript(); - - AddSC_account_commandscript(); - AddSC_achievement_commandscript(); - AddSC_arena_commandscript(); - AddSC_ban_commandscript(); - AddSC_bf_commandscript(); - AddSC_cast_commandscript(); - AddSC_character_commandscript(); - AddSC_cheat_commandscript(); - AddSC_debug_commandscript(); - AddSC_deserter_commandscript(); - AddSC_disable_commandscript(); - AddSC_event_commandscript(); - AddSC_gm_commandscript(); - AddSC_go_commandscript(); - AddSC_gobject_commandscript(); - AddSC_guild_commandscript(); - AddSC_honor_commandscript(); - AddSC_instance_commandscript(); - AddSC_learn_commandscript(); - AddSC_lfg_commandscript(); - AddSC_list_commandscript(); - AddSC_lookup_commandscript(); - AddSC_message_commandscript(); - AddSC_misc_commandscript(); - AddSC_mmaps_commandscript(); - AddSC_modify_commandscript(); - AddSC_npc_commandscript(); - AddSC_quest_commandscript(); - AddSC_reload_commandscript(); - AddSC_reset_commandscript(); - AddSC_spectator_commandscript(); - AddSC_tele_commandscript(); - AddSC_ticket_commandscript(); - AddSC_titles_commandscript(); - AddSC_wp_commandscript(); - AddSC_player_commandscript(); -} - -void AddWorldScripts() -{ -#ifdef SCRIPTS - AddSC_areatrigger_scripts(); - AddSC_emerald_dragons(); - AddSC_generic_creature(); - AddSC_go_scripts(); - AddSC_guards(); - AddSC_item_scripts(); - AddSC_npc_professions(); - AddSC_npc_innkeeper(); - AddSC_npcs_special(); - AddSC_npc_taxi(); - AddSC_achievement_scripts(); - AddSC_chat_log(); // location: scripts\World\chat_log.cpp - AddSC_character_creation(); - AddSC_action_ip_logger(); // location: scripts\World\action_ip_logger.cpp -#endif -} - -void AddEventScripts() -{ -#ifdef SCRIPTS - AddSC_event_brewfest_scripts(); - AddSC_event_hallows_end_scripts(); - AddSC_event_pilgrims_end_scripts(); - AddSC_event_winter_veil_scripts(); - AddSC_event_love_in_the_air(); - AddSC_event_midsummer_scripts(); - AddSC_event_childrens_week(); -#endif -} - -void AddEasternKingdomsScripts() -{ -#ifdef SCRIPTS - AddSC_alterac_valley(); //Alterac Valley - AddSC_boss_balinda(); - AddSC_boss_drekthar(); - AddSC_boss_galvangar(); - AddSC_boss_vanndar(); - AddSC_blackrock_depths(); //Blackrock Depths - AddSC_boss_ambassador_flamelash(); - AddSC_boss_anubshiah(); - AddSC_boss_draganthaurissan(); - AddSC_boss_general_angerforge(); - AddSC_boss_gorosh_the_dervish(); - AddSC_boss_grizzle(); - AddSC_boss_high_interrogator_gerstahn(); - AddSC_boss_magmus(); - AddSC_boss_moira_bronzebeard(); - AddSC_boss_tomb_of_seven(); - AddSC_instance_blackrock_depths(); - AddSC_boss_drakkisath(); //Blackrock Spire - AddSC_boss_halycon(); - AddSC_boss_highlordomokk(); - AddSC_boss_overlordwyrmthalak(); - AddSC_boss_shadowvosh(); - AddSC_boss_thebeast(); - AddSC_boss_warmastervoone(); - AddSC_boss_quatermasterzigris(); - AddSC_boss_pyroguard_emberseer(); - AddSC_boss_gyth(); - AddSC_boss_rend_blackhand(); - AddSC_boss_urok_doomhowl(); - AddSC_boss_gizrul_the_slavener(); - AddSC_instance_blackrock_spire(); - AddSC_boss_razorgore(); //Blackwing lair - AddSC_boss_vaelastrasz(); - AddSC_boss_broodlord(); - AddSC_boss_firemaw(); - AddSC_boss_ebonroc(); - AddSC_boss_flamegor(); - AddSC_boss_chromaggus(); - AddSC_boss_nefarian(); - AddSC_instance_blackwing_lair(); - AddSC_boss_mr_smite(); - AddSC_instance_deadmines(); //Deadmines - AddSC_instance_gnomeregan(); //Gnomeregan - AddSC_instance_karazhan(); //Karazhan - AddSC_boss_servant_quarters(); - AddSC_boss_attumen(); - AddSC_boss_curator(); - AddSC_boss_maiden_of_virtue(); - AddSC_boss_shade_of_aran(); - AddSC_boss_malchezaar(); - AddSC_boss_terestian_illhoof(); - AddSC_boss_moroes(); - AddSC_bosses_opera(); - AddSC_boss_netherspite(); - AddSC_karazhan(); - AddSC_boss_nightbane(); - AddSC_boss_felblood_kaelthas(); // Magister's Terrace - AddSC_boss_selin_fireheart(); - AddSC_boss_vexallus(); - AddSC_boss_priestess_delrissa(); - AddSC_instance_magisters_terrace(); - AddSC_boss_lucifron(); //Molten core - AddSC_boss_magmadar(); - AddSC_boss_gehennas(); - AddSC_boss_garr(); - AddSC_boss_baron_geddon(); - AddSC_boss_shazzrah(); - AddSC_boss_golemagg(); - AddSC_boss_sulfuron(); - AddSC_boss_majordomo(); - AddSC_boss_ragnaros(); - AddSC_instance_molten_core(); - AddSC_the_scarlet_enclave(); //Scarlet Enclave - AddSC_the_scarlet_enclave_c1(); - AddSC_the_scarlet_enclave_c2(); - AddSC_the_scarlet_enclave_c5(); - AddSC_instance_scarlet_monastery(); //Scarlet Monastery - AddSC_boss_kirtonos_the_herald(); - AddSC_instance_scholomance(); //Scholomance - AddSC_instance_shadowfang_keep(); //Shadowfang keep - AddSC_instance_stratholme(); //Stratholme - AddSC_instance_sunken_temple(); //Sunken Temple - AddSC_instance_sunwell_plateau(); //Sunwell Plateau - AddSC_boss_kalecgos(); - AddSC_boss_brutallus(); - AddSC_boss_felmyst(); - AddSC_boss_eredar_twins(); - AddSC_boss_muru(); - AddSC_boss_kiljaeden(); - AddSC_instance_the_stockade(); //The Stockade - AddSC_instance_uldaman(); //Uldaman - AddSC_boss_akilzon(); //Zul'Aman - AddSC_boss_halazzi(); - AddSC_boss_hex_lord_malacrass(); - AddSC_boss_janalai(); - AddSC_boss_nalorakk(); - AddSC_boss_zuljin(); - AddSC_instance_zulaman(); - AddSC_zulaman(); - AddSC_boss_jeklik(); //Zul'Gurub - AddSC_boss_venoxis(); - AddSC_boss_marli(); - AddSC_boss_mandokir(); - AddSC_boss_gahzranka(); - AddSC_boss_thekal(); - AddSC_boss_arlokk(); - AddSC_boss_jindo(); - AddSC_boss_hakkar(); - AddSC_boss_grilek(); - AddSC_boss_hazzarah(); - AddSC_boss_renataki(); - AddSC_boss_wushoolay(); - AddSC_instance_zulgurub(); - - //AddSC_alterac_mountains(); - AddSC_arathi_highlands(); - AddSC_blasted_lands(); - AddSC_duskwood(); - AddSC_eastern_plaguelands(); - AddSC_eversong_woods(); - AddSC_ghostlands(); - AddSC_hinterlands(); - AddSC_ironforge(); - AddSC_isle_of_queldanas(); - AddSC_redridge_mountains(); - AddSC_silverpine_forest(); - AddSC_stormwind_city(); - AddSC_stranglethorn_vale(); - //AddSC_swamp_of_sorrows(); - AddSC_tirisfal_glades(); - AddSC_undercity(); - AddSC_western_plaguelands(); - AddSC_westfall(); - //AddSC_wetlands(); -#endif -} - -void AddKalimdorScripts() -{ -#ifdef SCRIPTS - AddSC_instance_blackfathom_deeps(); //Blackfathom Depths - AddSC_hyjal(); //CoT Battle for Mt. Hyjal - AddSC_boss_archimonde(); - AddSC_instance_mount_hyjal(); - AddSC_hyjal_trash(); - AddSC_boss_rage_winterchill(); - AddSC_boss_anetheron(); - AddSC_boss_kazrogal(); - AddSC_boss_azgalor(); - AddSC_boss_captain_skarloc(); //CoT Old Hillsbrad - AddSC_boss_epoch_hunter(); - AddSC_boss_lieutenant_drake(); - AddSC_instance_old_hillsbrad(); - AddSC_old_hillsbrad(); - AddSC_boss_aeonus(); //CoT The Black Morass - AddSC_boss_chrono_lord_deja(); - AddSC_boss_temporus(); - AddSC_the_black_morass(); - AddSC_instance_the_black_morass(); - AddSC_boss_epoch(); //CoT Culling Of Stratholme - AddSC_boss_infinite_corruptor(); - AddSC_boss_salramm(); - AddSC_boss_mal_ganis(); - AddSC_boss_meathook(); - AddSC_culling_of_stratholme(); - AddSC_instance_culling_of_stratholme(); - AddSC_instance_dire_maul(); //Dire Maul - AddSC_instance_maraudon(); //Maraudon - AddSC_boss_onyxia(); //Onyxia's Lair - AddSC_instance_onyxias_lair(); - AddSC_instance_ragefire_chasm(); //Ragefire Chasm - AddSC_razorfen_downs(); - AddSC_instance_razorfen_downs(); //Razorfen Downs - AddSC_instance_razorfen_kraul(); //Razorfen Kraul - AddSC_boss_kurinnaxx(); //Ruins of ahn'qiraj - AddSC_boss_rajaxx(); - AddSC_boss_moam(); - AddSC_boss_buru(); - AddSC_boss_ayamiss(); - AddSC_boss_ossirian(); - AddSC_instance_ruins_of_ahnqiraj(); - AddSC_boss_cthun(); //Temple of ahn'qiraj - AddSC_boss_viscidus(); - AddSC_boss_fankriss(); - AddSC_boss_huhuran(); - AddSC_bug_trio(); - AddSC_boss_sartura(); - AddSC_boss_skeram(); - AddSC_boss_twinemperors(); - AddSC_boss_ouro(); - AddSC_npc_anubisath_sentinel(); - AddSC_instance_temple_of_ahnqiraj(); - AddSC_instance_wailing_caverns(); //Wailing caverns - AddSC_instance_zulfarrak(); //Zul'Farrak instance script - - AddSC_ashenvale(); - AddSC_azshara(); - AddSC_azuremyst_isle(); - AddSC_bloodmyst_isle(); - AddSC_boss_azuregos(); - AddSC_darkshore(); - AddSC_desolace(); - AddSC_durotar(); - AddSC_dustwallow_marsh(); - AddSC_felwood(); - AddSC_feralas(); - AddSC_moonglade(); - AddSC_mulgore(); - AddSC_orgrimmar(); - AddSC_silithus(); - AddSC_stonetalon_mountains(); - AddSC_tanaris(); - AddSC_teldrassil(); - AddSC_the_barrens(); - AddSC_thousand_needles(); - AddSC_thunder_bluff(); - AddSC_ungoro_crater(); - AddSC_winterspring(); -#endif -} - -void AddOutlandScripts() -{ -#ifdef SCRIPTS - AddSC_boss_exarch_maladaar(); //Auchindoun Auchenai Crypts - AddSC_instance_auchenai_crypts(); - AddSC_boss_shirrak_the_dead_watcher(); - AddSC_boss_nexusprince_shaffar(); //Auchindoun Mana Tombs - AddSC_boss_pandemonius(); - AddSC_instance_mana_tombs(); - AddSC_boss_talon_king_ikiss(); //Auchindoun Sekketh Halls - AddSC_instance_sethekk_halls(); - AddSC_instance_shadow_labyrinth(); //Auchindoun Shadow Labyrinth - AddSC_boss_ambassador_hellmaw(); - AddSC_boss_blackheart_the_inciter(); - AddSC_boss_grandmaster_vorpil(); - AddSC_boss_murmur(); - AddSC_boss_illidan(); //Black Temple - AddSC_boss_shade_of_akama(); - AddSC_boss_supremus(); - AddSC_boss_gurtogg_bloodboil(); - AddSC_boss_mother_shahraz(); - AddSC_boss_reliquary_of_souls(); - AddSC_boss_teron_gorefiend(); - AddSC_boss_najentus(); - AddSC_boss_illidari_council(); - AddSC_instance_black_temple(); - AddSC_boss_fathomlord_karathress(); //CR Serpent Shrine Cavern - AddSC_boss_hydross_the_unstable(); - AddSC_boss_lady_vashj(); - AddSC_boss_leotheras_the_blind(); - AddSC_boss_morogrim_tidewalker(); - AddSC_instance_serpentshrine_cavern(); - AddSC_boss_the_lurker_below(); - AddSC_boss_hydromancer_thespia(); //CR Steam Vault - AddSC_boss_mekgineer_steamrigger(); - AddSC_boss_warlord_kalithresh(); - AddSC_instance_steam_vault(); - AddSC_boss_the_black_stalker(); //CR Underbog - AddSC_instance_the_underbog(); - AddSC_boss_ahune(); - AddSC_instance_the_slave_pens(); - AddSC_boss_gruul(); //Gruul's Lair - AddSC_boss_high_king_maulgar(); - AddSC_instance_gruuls_lair(); - AddSC_boss_broggok(); //HC Blood Furnace - AddSC_boss_kelidan_the_breaker(); - AddSC_boss_the_maker(); - AddSC_instance_blood_furnace(); - AddSC_boss_magtheridon(); //HC Magtheridon's Lair - AddSC_instance_magtheridons_lair(); - AddSC_boss_grand_warlock_nethekurse(); //HC Shattered Halls - AddSC_boss_warbringer_omrogg(); - AddSC_boss_warchief_kargath_bladefist(); - AddSC_instance_shattered_halls(); - AddSC_boss_watchkeeper_gargolmar(); //HC Ramparts - AddSC_boss_omor_the_unscarred(); - AddSC_boss_vazruden_the_herald(); - AddSC_instance_hellfire_ramparts(); - AddSC_arcatraz(); //TK Arcatraz - AddSC_boss_harbinger_skyriss(); - AddSC_boss_wrath_scryer_soccothrates(); - AddSC_boss_zereketh_the_unbound(); - AddSC_boss_dalliah_the_doomsayer(); - AddSC_instance_arcatraz(); - AddSC_boss_high_botanist_freywinn(); //TK Botanica - AddSC_boss_laj(); - AddSC_boss_warp_splinter(); - AddSC_boss_thorngrin_the_tender(); - AddSC_boss_commander_sarannis(); - AddSC_instance_the_botanica(); - AddSC_boss_alar(); //TK The Eye - AddSC_boss_kaelthas(); - AddSC_boss_void_reaver(); - AddSC_boss_high_astromancer_solarian(); - AddSC_instance_the_eye(); - AddSC_boss_gatewatcher_iron_hand(); //TK The Mechanar - AddSC_boss_gatewatcher_gyrokill(); - AddSC_boss_nethermancer_sepethrea(); - AddSC_boss_pathaleon_the_calculator(); - AddSC_boss_mechano_lord_capacitus(); - AddSC_instance_mechanar(); - - AddSC_blades_edge_mountains(); - AddSC_boss_doomlordkazzak(); - AddSC_boss_doomwalker(); - AddSC_hellfire_peninsula(); - AddSC_nagrand(); - AddSC_netherstorm(); - AddSC_shadowmoon_valley(); - AddSC_shattrath_city(); - AddSC_terokkar_forest(); - AddSC_zangarmarsh(); -#endif -} - -void AddNorthrendScripts() -{ -#ifdef SCRIPTS - AddSC_boss_slad_ran(); //Gundrak - AddSC_boss_moorabi(); - AddSC_boss_drakkari_colossus(); - AddSC_boss_gal_darah(); - AddSC_boss_eck(); - AddSC_instance_gundrak(); - AddSC_boss_amanitar(); - AddSC_boss_taldaram(); //Azjol-Nerub Ahn'kahet - AddSC_boss_elder_nadox(); - AddSC_boss_jedoga_shadowseeker(); - AddSC_boss_volazj(); - AddSC_instance_ahnkahet(); - AddSC_boss_argent_challenge(); //Trial of the Champion - AddSC_boss_black_knight(); - AddSC_boss_grand_champions(); - AddSC_instance_trial_of_the_champion(); - AddSC_trial_of_the_champion(); - AddSC_boss_anubarak_trial(); //Trial of the Crusader - AddSC_boss_faction_champions(); - AddSC_boss_jaraxxus(); - AddSC_trial_of_the_crusader(); - AddSC_boss_twin_valkyr(); - AddSC_boss_northrend_beasts(); - AddSC_instance_trial_of_the_crusader(); - AddSC_boss_krik_thir(); //Azjol-Nerub Azjol-Nerub - AddSC_boss_hadronox(); - AddSC_boss_anub_arak(); - AddSC_instance_azjol_nerub(); - AddSC_boss_anubrekhan(); //Naxxramas - AddSC_boss_maexxna(); - AddSC_boss_patchwerk(); - AddSC_boss_grobbulus(); - AddSC_boss_razuvious(); - AddSC_boss_kelthuzad(); - AddSC_boss_loatheb(); - AddSC_boss_noth(); - AddSC_boss_gluth(); - AddSC_boss_sapphiron(); - AddSC_boss_four_horsemen(); - AddSC_boss_faerlina(); - AddSC_boss_heigan(); - AddSC_boss_gothik(); - AddSC_boss_thaddius(); - AddSC_instance_naxxramas(); - AddSC_boss_magus_telestra(); //The Nexus Nexus - AddSC_boss_anomalus(); - AddSC_boss_ormorok(); - AddSC_boss_keristrasza(); - AddSC_boss_commander_stoutbeard(); - AddSC_instance_nexus(); - AddSC_boss_drakos(); //The Nexus The Oculus - AddSC_boss_varos(); - AddSC_boss_urom(); - AddSC_boss_eregos(); - AddSC_instance_oculus(); - AddSC_oculus(); - AddSC_boss_sartharion(); //Obsidian Sanctum - AddSC_instance_obsidian_sanctum(); - AddSC_boss_malygos(); //Eye of Eternity - AddSC_instance_eye_of_eternity(); - AddSC_boss_bjarngrim(); //Ulduar Halls of Lightning - AddSC_boss_loken(); - AddSC_boss_ionar(); - AddSC_boss_volkhan(); - AddSC_instance_halls_of_lightning(); - AddSC_boss_maiden_of_grief(); //Ulduar Halls of Stone - AddSC_boss_krystallus(); - AddSC_boss_sjonnir(); - AddSC_brann_bronzebeard(); - AddSC_instance_halls_of_stone(); - AddSC_boss_auriaya(); //Ulduar Ulduar - AddSC_boss_flame_leviathan(); - AddSC_boss_ignis(); - AddSC_boss_razorscale(); - AddSC_boss_xt002(); - AddSC_boss_assembly_of_iron(); - AddSC_boss_mimiron(); - AddSC_boss_hodir(); - AddSC_boss_vezax(); - AddSC_boss_kologarn(); - AddSC_boss_freya(); - AddSC_boss_thorim(); - AddSC_boss_yoggsaron(); - AddSC_ulduar(); - AddSC_boss_algalon_the_observer(); - AddSC_instance_ulduar(); - AddSC_boss_keleseth(); //Utgarde Keep - AddSC_boss_skarvald_dalronn(); - AddSC_boss_ingvar_the_plunderer(); - AddSC_instance_utgarde_keep(); - AddSC_boss_svala(); //Utgarde pinnacle - AddSC_boss_palehoof(); - AddSC_boss_skadi(); - AddSC_boss_ymiron(); - AddSC_instance_utgarde_pinnacle(); - AddSC_utgarde_keep(); - AddSC_boss_archavon(); //Vault of Archavon - AddSC_boss_emalon(); - AddSC_boss_koralon(); - AddSC_boss_toravon(); - AddSC_instance_vault_of_archavon(); - AddSC_boss_trollgore(); //Drak'Tharon Keep - AddSC_boss_novos(); - AddSC_boss_dred(); - AddSC_boss_tharon_ja(); - AddSC_instance_drak_tharon_keep(); - AddSC_boss_cyanigosa(); //Violet Hold - AddSC_boss_erekem(); - AddSC_boss_ichoron(); - AddSC_boss_lavanthor(); - AddSC_boss_moragg(); - AddSC_boss_xevozz(); - AddSC_boss_zuramat(); - AddSC_instance_violet_hold(); - AddSC_violet_hold(); - AddSC_instance_forge_of_souls(); //Forge of Souls - AddSC_forge_of_souls(); - AddSC_boss_bronjahm(); - AddSC_boss_devourer_of_souls(); - AddSC_instance_pit_of_saron(); //Pit of Saron - AddSC_pit_of_saron(); - AddSC_boss_garfrost(); - AddSC_boss_ick(); - AddSC_boss_tyrannus(); - AddSC_instance_halls_of_reflection(); // Halls of Reflection - AddSC_halls_of_reflection(); - AddSC_boss_falric(); - AddSC_boss_marwyn(); - AddSC_boss_lord_marrowgar(); // Icecrown Citadel - AddSC_boss_lady_deathwhisper(); - AddSC_boss_icecrown_gunship_battle(); - AddSC_boss_deathbringer_saurfang(); - AddSC_boss_festergut(); - AddSC_boss_rotface(); - AddSC_boss_professor_putricide(); - AddSC_boss_blood_prince_council(); - AddSC_boss_blood_queen_lana_thel(); - AddSC_boss_valithria_dreamwalker(); - AddSC_boss_sindragosa(); - AddSC_boss_the_lich_king(); - AddSC_icecrown_citadel_teleport(); - AddSC_instance_icecrown_citadel(); - AddSC_icecrown_citadel(); - AddSC_instance_ruby_sanctum(); // Ruby Sanctum - AddSC_boss_baltharus_the_warborn(); - AddSC_boss_saviana_ragefire(); - AddSC_boss_general_zarithrian(); - AddSC_boss_halion(); - - AddSC_dalaran(); - AddSC_borean_tundra(); - AddSC_dragonblight(); - AddSC_grizzly_hills(); - AddSC_howling_fjord(); - AddSC_icecrown(); - AddSC_sholazar_basin(); - AddSC_storm_peaks(); - AddSC_zuldrak(); - AddSC_crystalsong_forest(); - AddSC_isle_of_conquest(); - AddSC_wintergrasp(); -#endif -} - -void AddPetScripts() -{ -#ifdef SCRIPTS - AddSC_deathknight_pet_scripts(); - AddSC_generic_pet_scripts(); - AddSC_hunter_pet_scripts(); - AddSC_mage_pet_scripts(); - AddSC_priest_pet_scripts(); - AddSC_shaman_pet_scripts(); -#endif -} - -void AddOutdoorPvPScripts() -{ -#ifdef SCRIPTS - AddSC_outdoorpvp_ep(); - AddSC_outdoorpvp_hp(); - AddSC_outdoorpvp_na(); - AddSC_outdoorpvp_si(); - AddSC_outdoorpvp_tf(); - AddSC_outdoorpvp_zm(); - AddSC_outdoorpvp_gh(); -#endif -} - -//~ ********************** Put your custom scripts below, like the commented examples, uncomment and edit ************************************* - -//~ void AddSC_MySuperScript(); - -void AddCustomScripts() -{ -#ifdef SCRIPTS - //~ AddSC_MySuperScript(); -#endif -} diff --git a/src/server/scripts/ScriptLoader.cpp.in.cmake b/src/server/scripts/ScriptLoader.cpp.in.cmake new file mode 100644 index 0000000000..8e1f182433 --- /dev/null +++ b/src/server/scripts/ScriptLoader.cpp.in.cmake @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3 + * Copyright (C) 2021+ WarheadCore <https://github.com/WarheadCore> + */ + +// This file was created automatically from your script configuration! +// Use CMake to reconfigure this file, never change it on your own! + +#cmakedefine ACORE_IS_DYNAMIC_SCRIPTLOADER + +#include "Define.h" +#include <vector> +#include <string> + +// Add deprecated api loaders include +@AC_SCRIPTS_INCLUDES@ +// Add module scripts define +@AC_MODULE_LIST@ +// Add default scripts include +@ACORE_SCRIPTS_FORWARD_DECL@ +#ifdef ACORE_IS_DYNAMIC_SCRIPTLOADER +# include "revision.h" +# define AC_SCRIPT_API AC_API_EXPORT +extern "C" { + +/// Exposed in script modules to return the script module revision hash. +AC_SCRIPT_API char const* GetScriptModuleRevisionHash() +{ + return _HASH; +} + +/// Exposed in script module to return the name of the script module +/// contained in this shared library. +AC_SCRIPT_API char const* GetScriptModule() +{ + return "@ACORE_CURRENT_SCRIPT_PROJECT@"; +} + +#else +# include "ScriptLoader.h" +# define AC_SCRIPT_API +#endif + +/// Exposed in script modules to register all scripts to the ScriptMgr. +AC_SCRIPT_API void AddScripts() +{ + // Default scripts and modules +@ACORE_SCRIPTS_INVOKE@ + // Deprecated api modules +@AC_SCRIPTS_LIST@} + +/// Exposed in script modules to get the build directive of the module. +AC_SCRIPT_API char const* GetBuildDirective() +{ + return _BUILD_DIRECTIVE; +} + +#ifdef ACORE_IS_DYNAMIC_SCRIPTLOADER +} // extern "C" +#endif diff --git a/src/server/scripts/ScriptLoader.h b/src/server/scripts/ScriptLoader.h index e9169d721a..2871b57dfc 100644 --- a/src/server/scripts/ScriptLoader.h +++ b/src/server/scripts/ScriptLoader.h @@ -7,18 +7,6 @@ #ifndef SC_SCRIPTLOADER_H #define SC_SCRIPTLOADER_H -void AddCustomScripts(); void AddScripts(); -void AddSpellScripts(); -void AddCommandScripts(); -void AddSC_SmartScripts(); -void AddWorldScripts(); -void AddEventScripts(); -void AddEasternKingdomsScripts(); -void AddKalimdorScripts(); -void AddOutlandScripts(); -void AddNorthrendScripts(); -void AddPetScripts(); -void AddOutdoorPvPScripts(); #endif diff --git a/src/server/scripts/PrecompiledHeaders/ScriptPCH.h b/src/server/scripts/ScriptPCH.h index c254b61008..c254b61008 100644 --- a/src/server/scripts/PrecompiledHeaders/ScriptPCH.h +++ b/src/server/scripts/ScriptPCH.h diff --git a/src/server/scripts/Spells/CMakeLists.txt b/src/server/scripts/Spells/CMakeLists.txt deleted file mode 100644 index f602295fd8..0000000000 --- a/src/server/scripts/Spells/CMakeLists.txt +++ /dev/null @@ -1,28 +0,0 @@ -# Copyright (C) -# -# This file is free software; as a special exception the author gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the -# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -set(scripts_STAT_SRCS - ${scripts_STAT_SRCS} - Spells/spell_shaman.cpp - Spells/spell_hunter.cpp - Spells/spell_rogue.cpp - Spells/spell_druid.cpp - Spells/spell_dk.cpp - Spells/spell_quest.cpp - Spells/spell_warrior.cpp - Spells/spell_generic.cpp - Spells/spell_warlock.cpp - Spells/spell_priest.cpp - Spells/spell_mage.cpp - Spells/spell_paladin.cpp - Spells/spell_item.cpp -) - -message(" -> Prepared: Spells") diff --git a/src/server/scripts/Spells/spells_script_loader.cpp b/src/server/scripts/Spells/spells_script_loader.cpp new file mode 100644 index 0000000000..1576be1034 --- /dev/null +++ b/src/server/scripts/Spells/spells_script_loader.cpp @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3 + * Copyright (C) 2021+ WarheadCore <https://github.com/WarheadCore> + */ + +// This is where scripts' loading functions should be declared: +void AddSC_deathknight_spell_scripts(); +void AddSC_druid_spell_scripts(); +void AddSC_generic_spell_scripts(); +void AddSC_hunter_spell_scripts(); +void AddSC_mage_spell_scripts(); +void AddSC_paladin_spell_scripts(); +void AddSC_priest_spell_scripts(); +void AddSC_rogue_spell_scripts(); +void AddSC_shaman_spell_scripts(); +void AddSC_warlock_spell_scripts(); +void AddSC_warrior_spell_scripts(); +void AddSC_quest_spell_scripts(); +void AddSC_item_spell_scripts(); + +// The name of this function should match: +// void Add${NameOfDirectory}Scripts() +void AddSpellsScripts() +{ + AddSC_deathknight_spell_scripts(); + AddSC_druid_spell_scripts(); + AddSC_generic_spell_scripts(); + AddSC_hunter_spell_scripts(); + AddSC_mage_spell_scripts(); + AddSC_paladin_spell_scripts(); + AddSC_priest_spell_scripts(); + AddSC_rogue_spell_scripts(); + AddSC_shaman_spell_scripts(); + AddSC_warlock_spell_scripts(); + AddSC_warrior_spell_scripts(); + AddSC_quest_spell_scripts(); + AddSC_item_spell_scripts(); +} diff --git a/src/server/scripts/World/CMakeLists.txt b/src/server/scripts/World/CMakeLists.txt deleted file mode 100644 index a3e7037459..0000000000 --- a/src/server/scripts/World/CMakeLists.txt +++ /dev/null @@ -1,31 +0,0 @@ -# Copyright (C) -# -# This file is free software; as a special exception the author gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the -# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -set(scripts_STAT_SRCS - ${scripts_STAT_SRCS} - ${AC_SCRIPTS_DIR}/World/achievement_scripts.cpp - ${AC_SCRIPTS_DIR}/World/areatrigger_scripts.cpp - ${AC_SCRIPTS_DIR}/World/boss_emerald_dragons.cpp - ${AC_SCRIPTS_DIR}/World/chat_log.cpp - ${AC_SCRIPTS_DIR}/World/go_scripts.cpp - ${AC_SCRIPTS_DIR}/World/guards.cpp - ${AC_SCRIPTS_DIR}/World/item_scripts.cpp - ${AC_SCRIPTS_DIR}/World/mob_generic_creature.cpp - ${AC_SCRIPTS_DIR}/World/npc_innkeeper.cpp - ${AC_SCRIPTS_DIR}/World/npc_professions.cpp - ${AC_SCRIPTS_DIR}/World/npc_taxi.cpp - ${AC_SCRIPTS_DIR}/World/npcs_special.cpp - ${AC_SCRIPTS_DIR}/World/character_creation.cpp - ${AC_SCRIPTS_DIR}/World/action_ip_logger.cpp -) - -AC_ADD_SCRIPT_LOADER("World" "ScriptLoader.h") - -message(" -> Prepared: World") diff --git a/src/server/scripts/World/world_script_loader.cpp b/src/server/scripts/World/world_script_loader.cpp new file mode 100644 index 0000000000..2d3b27147a --- /dev/null +++ b/src/server/scripts/World/world_script_loader.cpp @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3 + * Copyright (C) 2021+ WarheadCore <https://github.com/WarheadCore> + */ + +// This is where scripts' loading functions should be declared: +void AddSC_areatrigger_scripts(); +void AddSC_emerald_dragons(); +void AddSC_generic_creature(); +void AddSC_go_scripts(); +void AddSC_guards(); +void AddSC_item_scripts(); +void AddSC_npc_professions(); +void AddSC_npc_innkeeper(); +void AddSC_npcs_special(); +void AddSC_npc_taxi(); +void AddSC_achievement_scripts(); +void AddSC_chat_log(); // location: scripts\World\chat_log.cpp +void AddSC_character_creation(); +void AddSC_action_ip_logger(); // location: scripts\World\action_ip_logger.cpp + +// The name of this function should match: +// void Add${NameOfDirectory}Scripts() +void AddWorldScripts() +{ + AddSC_areatrigger_scripts(); + AddSC_emerald_dragons(); + AddSC_generic_creature(); + AddSC_go_scripts(); + AddSC_guards(); + AddSC_item_scripts(); + AddSC_npc_professions(); + AddSC_npc_innkeeper(); + AddSC_npcs_special(); + AddSC_npc_taxi(); + AddSC_achievement_scripts(); + AddSC_chat_log(); // location: scripts\World\chat_log.cpp + AddSC_character_creation(); + AddSC_action_ip_logger(); // location: scripts\World\action_ip_logger.cpp +} diff --git a/src/server/shared/CMakeLists.txt b/src/server/shared/CMakeLists.txt index df64c337a3..a9a01d5a6e 100644 --- a/src/server/shared/CMakeLists.txt +++ b/src/server/shared/CMakeLists.txt @@ -23,6 +23,8 @@ target_include_directories(shared ${CMAKE_CURRENT_BINARY_DIR}) target_link_libraries(shared + PRIVATE + acore-core-interface PUBLIC database) diff --git a/src/server/worldserver/CMakeLists.txt b/src/server/worldserver/CMakeLists.txt index 604c591965..e6811012d4 100644 --- a/src/server/worldserver/CMakeLists.txt +++ b/src/server/worldserver/CMakeLists.txt @@ -54,11 +54,10 @@ target_include_directories(worldserver target_link_libraries(worldserver PRIVATE - game-interface + acore-core-interface PUBLIC - game - shared scripts + game gsoap readline gperftools) diff --git a/src/server/worldserver/Master.cpp b/src/server/worldserver/Master.cpp index ce103b0ecd..81fc7cddd4 100644 --- a/src/server/worldserver/Master.cpp +++ b/src/server/worldserver/Master.cpp @@ -24,6 +24,7 @@ #include "Realm.h" #include "ScriptMgr.h" #include "SignalHandler.h" +#include "ScriptLoader.h" #include "Timer.h" #include "Util.h" #include "World.h" @@ -146,6 +147,7 @@ int Master::Run() ///- Initialize the World sSecretMgr->Initialize(); + sScriptMgr->SetScriptLoader(AddScripts); sWorld->SetInitialWorldSettings(); sScriptMgr->OnStartup(); diff --git a/src/tools/map_extractor/CMakeLists.txt b/src/tools/map_extractor/CMakeLists.txt index 5844bcd1b5..32de70857e 100644 --- a/src/tools/map_extractor/CMakeLists.txt +++ b/src/tools/map_extractor/CMakeLists.txt @@ -23,6 +23,8 @@ target_include_directories(mapextractor ${CMAKE_CURRENT_SOURCE_DIR}/loadlib) target_link_libraries(mapextractor + PRIVATE + acore-core-interface PUBLIC common mpq) diff --git a/src/tools/mesh_extractor/CMakeLists.txt b/src/tools/mesh_extractor/CMakeLists.txt index 7dcc19f1bc..49d200561b 100644 --- a/src/tools/mesh_extractor/CMakeLists.txt +++ b/src/tools/mesh_extractor/CMakeLists.txt @@ -16,6 +16,8 @@ CollectSourceFiles( add_executable(MeshExtractor ${PRIVATE_SOURCES}) target_link_libraries(MeshExtractor + PRIVATE + acore-core-interface PUBLIC common Recast diff --git a/src/tools/mmaps_generator/CMakeLists.txt b/src/tools/mmaps_generator/CMakeLists.txt index c6a8fe3c49..2156dd7f95 100644 --- a/src/tools/mmaps_generator/CMakeLists.txt +++ b/src/tools/mmaps_generator/CMakeLists.txt @@ -15,6 +15,8 @@ CollectSourceFiles( add_executable(mmaps_generator ${PRIVATE_SOURCES}) target_link_libraries(mmaps_generator + PRIVATE + acore-core-interface PUBLIC common Recast diff --git a/src/tools/vmap4_assembler/CMakeLists.txt b/src/tools/vmap4_assembler/CMakeLists.txt index 59be0797ad..6a7b737d58 100644 --- a/src/tools/vmap4_assembler/CMakeLists.txt +++ b/src/tools/vmap4_assembler/CMakeLists.txt @@ -16,8 +16,11 @@ if(CMAKE_SYSTEM_NAME MATCHES "Darwin") endif() target_link_libraries(vmap4assembler - common - zlib) + PRIVATE + acore-core-interface + PUBLIC + common + zlib) # Group sources GroupSources(${CMAKE_CURRENT_SOURCE_DIR}) |