TrinityCore
Loading...
Searching...
No Matches
ScriptMgr.cpp File Reference
#include "ScriptMgr.h"
#include "AchievementMgr.h"
#include "AreaTrigger.h"
#include "AreaTriggerAI.h"
#include "ChatCommand.h"
#include "Conversation.h"
#include "ConversationAI.h"
#include "Creature.h"
#include "CreatureAI.h"
#include "CreatureAIImpl.h"
#include "CreatureAISelector.h"
#include "DB2Stores.h"
#include "Errors.h"
#include "GameObject.h"
#include "GossipDef.h"
#include "InstanceScript.h"
#include "Item.h"
#include "LFGScripts.h"
#include "Log.h"
#include "Map.h"
#include "MapManager.h"
#include "ObjectMgr.h"
#include "OutdoorPvPMgr.h"
#include "Player.h"
#include "PlayerChoice.h"
#include "ScriptReloadMgr.h"
#include "ScriptSystem.h"
#include "SmartAI.h"
#include "SpellInfo.h"
#include "SpellMgr.h"
#include "SpellScript.h"
#include "Timer.h"
#include "Transport.h"
#include "Vehicle.h"
#include "Weather.h"
#include "WorldPacket.h"
#include <unordered_map>
+ Include dependency graph for ScriptMgr.cpp:

Go to the source code of this file.

Classes

struct  is_script_database_bound< typename >
 
struct  is_script_database_bound< SpellScriptLoader >
 
struct  is_script_database_bound< InstanceMapScript >
 
struct  is_script_database_bound< ItemScript >
 
struct  is_script_database_bound< CreatureScript >
 
struct  is_script_database_bound< GameObjectScript >
 
struct  is_script_database_bound< VehicleScript >
 
struct  is_script_database_bound< AreaTriggerScript >
 
struct  is_script_database_bound< BattlefieldScript >
 
struct  is_script_database_bound< BattlegroundMapScript >
 
struct  is_script_database_bound< OutdoorPvPScript >
 
struct  is_script_database_bound< WeatherScript >
 
struct  is_script_database_bound< ConditionScript >
 
struct  is_script_database_bound< TransportScript >
 
struct  is_script_database_bound< AchievementScript >
 
struct  is_script_database_bound< AchievementCriteriaScript >
 
struct  is_script_database_bound< AreaTriggerEntityScript >
 
struct  is_script_database_bound< ConversationScript >
 
struct  is_script_database_bound< SceneScript >
 
struct  is_script_database_bound< QuestScript >
 
struct  is_script_database_bound< WorldStateScript >
 
struct  is_script_database_bound< EventScript >
 
struct  is_script_database_bound< PlayerChoiceScript >
 
class  ScriptRegistryInterface
 
class  ScriptRegistryCompositum
 
class  ScriptRegistryCompositum::DeleteableObjectBase
 Type erasure wrapper for objects. More...
 
class  ScriptRegistryCompositum::DeleteableObject< T >
 
class  ScriptRegistry< ScriptType >
 
class  ScriptRegistrySwapHookBase
 
class  ScriptRegistrySwapHooks< ScriptType, Base >
 
class  UnsupportedScriptRegistrySwapHooks< Base >
 
class  CreatureGameObjectAreaTriggerConversationScriptRegistrySwapHooks< ObjectType, ScriptType, Base >
 This hook is responsible for swapping Creature, GameObject and AreaTrigger AI's. More...
 
class  CreatureGameObjectAreaTriggerConversationScriptRegistrySwapHooks< ObjectType, ScriptType, Base >::AIFunctionMapWorker< W >
 
class  CreatureGameObjectAreaTriggerConversationScriptRegistrySwapHooks< ObjectType, ScriptType, Base >::AsyncCastHotswapEffectEvent
 
class  ScriptRegistrySwapHooks< CreatureScript, Base >
 
class  ScriptRegistrySwapHooks< GameObjectScript, Base >
 
class  ScriptRegistrySwapHooks< AreaTriggerEntityScript, Base >
 
class  ScriptRegistrySwapHooks< ConversationScript, Base >
 
class  ScriptRegistrySwapHooks< BattlefieldScript, Base >
 This hook is responsible for swapping BattlefieldScripts. More...
 
class  ScriptRegistrySwapHooks< OutdoorPvPScript, Base >
 This hook is responsible for swapping OutdoorPvP's. More...
 
class  ScriptRegistrySwapHooks< InstanceMapScript, Base >
 This hook is responsible for swapping InstanceMapScript's. More...
 
class  ScriptRegistrySwapHooks< BattlegroundMapScript, Base >
 This hook is responsible for swapping BattlegroundMapScript's. More...
 
class  ScriptRegistrySwapHooks< SceneScript, Base >
 This hook is responsible for swapping SceneScript's. More...
 
class  ScriptRegistrySwapHooks< QuestScript, Base >
 This hook is responsible for swapping QuestScript's. More...
 
class  ScriptRegistrySwapHooks< SpellScriptLoader, Base >
 This hook is responsible for swapping SpellScriptLoader's. More...
 
class  SpecializedScriptRegistry< ScriptType, true >
 
class  ScriptRegistrySwapHooks< CommandScript, Base >
 This hook is responsible for swapping CommandScript's. More...
 
class  SpecializedScriptRegistry< ScriptType, false >
 

Macros

#define sScriptRegistryCompositum   ScriptRegistryCompositum::Instance()
 
#define SCR_REG_MAP(T)   ScriptRegistry<T>::ScriptStoreType
 
#define SCR_REG_ITR(T)   ScriptRegistry<T>::ScriptStoreIteratorType
 
#define SCR_REG_LST(T)   ScriptRegistry<T>::Instance()->GetScripts()
 
#define FOR_SCRIPTS(T, C, E)
 
#define FOR_SCRIPTS_RET(T, C, E, R)
 
#define FOREACH_SCRIPT(T)
 
#define GET_SCRIPT(T, I, V)
 
#define GET_SCRIPT_RET(T, I, V, R)
 

Enumerations

enum  Spells { SPELL_HOTSWAP_VISUAL_SPELL_EFFECT = 40162 }
 

Functions

template<typename T , Trinity::invocable_r< T *, SpellScriptLoader const * > GetScriptFn, typename O >
void CreateSpellOrAuraScripts (uint32 spellId, std::vector< T * > &scriptVector, GetScriptFn extractor, O *objectInvoker)
 
template<typename ScriptType , typename MapType , typename... Args, std::invocable< ScriptType *, MapType *, Args... > Action>
static void ForEachMapScriptType (Action const &action, MapType *map, Args... args)
 
template<typename... Args, typename Action >
static void ForEachMapScript (Action const &action, Map *map, Args... args)
 

Variables

template class TC_GAME_API MapScript< Map >
 
template class TC_GAME_API MapScript< InstanceMap >
 
template class TC_GAME_API MapScript< BattlegroundMap >
 
template class TC_GAME_API ScriptRegistry< SpellScriptLoader >
 
template class TC_GAME_API ScriptRegistry< ServerScript >
 
template class TC_GAME_API ScriptRegistry< WorldScript >
 
template class TC_GAME_API ScriptRegistry< FormulaScript >
 
template class TC_GAME_API ScriptRegistry< WorldMapScript >
 
template class TC_GAME_API ScriptRegistry< InstanceMapScript >
 
template class TC_GAME_API ScriptRegistry< BattlegroundMapScript >
 
template class TC_GAME_API ScriptRegistry< ItemScript >
 
template class TC_GAME_API ScriptRegistry< CreatureScript >
 
template class TC_GAME_API ScriptRegistry< GameObjectScript >
 
template class TC_GAME_API ScriptRegistry< AreaTriggerScript >
 
template class TC_GAME_API ScriptRegistry< BattlefieldScript >
 
template class TC_GAME_API ScriptRegistry< OutdoorPvPScript >
 
template class TC_GAME_API ScriptRegistry< CommandScript >
 
template class TC_GAME_API ScriptRegistry< WeatherScript >
 
template class TC_GAME_API ScriptRegistry< AuctionHouseScript >
 
template class TC_GAME_API ScriptRegistry< ConditionScript >
 
template class TC_GAME_API ScriptRegistry< VehicleScript >
 
template class TC_GAME_API ScriptRegistry< DynamicObjectScript >
 
template class TC_GAME_API ScriptRegistry< TransportScript >
 
template class TC_GAME_API ScriptRegistry< AchievementScript >
 
template class TC_GAME_API ScriptRegistry< AchievementCriteriaScript >
 
template class TC_GAME_API ScriptRegistry< PlayerScript >
 
template class TC_GAME_API ScriptRegistry< GuildScript >
 
template class TC_GAME_API ScriptRegistry< GroupScript >
 
template class TC_GAME_API ScriptRegistry< UnitScript >
 
template class TC_GAME_API ScriptRegistry< AccountScript >
 
template class TC_GAME_API ScriptRegistry< AreaTriggerEntityScript >
 
template class TC_GAME_API ScriptRegistry< ConversationScript >
 
template class TC_GAME_API ScriptRegistry< SceneScript >
 
template class TC_GAME_API ScriptRegistry< QuestScript >
 
template class TC_GAME_API ScriptRegistry< WorldStateScript >
 
template class TC_GAME_API ScriptRegistry< EventScript >
 
template class TC_GAME_API ScriptRegistry< PlayerChoiceScript >
 

Macro Definition Documentation

◆ FOR_SCRIPTS

#define FOR_SCRIPTS (   T,
  C,
 
)
Value:
if (!SCR_REG_LST(T).empty()) \
for (SCR_REG_ITR(T) C = SCR_REG_LST(T).begin(); \
C != SCR_REG_LST(T).end(); ++C)
#define SCR_REG_LST(T)
#define SCR_REG_ITR(T)

Definition at line 1247 of file ScriptMgr.cpp.

◆ FOR_SCRIPTS_RET

#define FOR_SCRIPTS_RET (   T,
  C,
  E,
 
)
Value:
if (SCR_REG_LST(T).empty()) \
return R; \
\
for (SCR_REG_ITR(T) C = SCR_REG_LST(T).begin(); \
C != SCR_REG_LST(T).end(); ++C)

Definition at line 1252 of file ScriptMgr.cpp.

◆ FOREACH_SCRIPT

#define FOREACH_SCRIPT (   T)
Value:
FOR_SCRIPTS(T, itr, end) \
itr->second
#define FOR_SCRIPTS(T, C, E)

Definition at line 1259 of file ScriptMgr.cpp.

◆ GET_SCRIPT

#define GET_SCRIPT (   T,
  I,
 
)
Value:
T* V = ScriptRegistry<T>::Instance()->GetScriptById(I); \
if (!V) \
return;
static ScriptRegistry * Instance()

Definition at line 1264 of file ScriptMgr.cpp.

◆ GET_SCRIPT_RET

#define GET_SCRIPT_RET (   T,
  I,
  V,
 
)
Value:
T* V = ScriptRegistry<T>::Instance()->GetScriptById(I); \
if (!V) \
return R;

Definition at line 1269 of file ScriptMgr.cpp.

◆ SCR_REG_ITR

#define SCR_REG_ITR (   T)    ScriptRegistry<T>::ScriptStoreIteratorType

Definition at line 1243 of file ScriptMgr.cpp.

◆ SCR_REG_LST

#define SCR_REG_LST (   T)    ScriptRegistry<T>::Instance()->GetScripts()

Definition at line 1244 of file ScriptMgr.cpp.

◆ SCR_REG_MAP

#define SCR_REG_MAP (   T)    ScriptRegistry<T>::ScriptStoreType

Definition at line 1242 of file ScriptMgr.cpp.

◆ sScriptRegistryCompositum

#define sScriptRegistryCompositum   ScriptRegistryCompositum::Instance()

Definition at line 314 of file ScriptMgr.cpp.

Enumeration Type Documentation

◆ Spells

enum Spells
Enumerator
SPELL_HOTSWAP_VISUAL_SPELL_EFFECT 

Definition at line 150 of file ScriptMgr.cpp.

Function Documentation

◆ CreateSpellOrAuraScripts()

template<typename T , Trinity::invocable_r< T *, SpellScriptLoader const * > GetScriptFn, typename O >
void CreateSpellOrAuraScripts ( uint32  spellId,
std::vector< T * > &  scriptVector,
GetScriptFn  extractor,
O *  objectInvoker 
)

Definition at line 1426 of file ScriptMgr.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ForEachMapScript()

template<typename... Args, typename Action >
static void ForEachMapScript ( Action const &  action,
Map map,
Args...  args 
)
inlinestatic

Definition at line 1603 of file ScriptMgr.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ForEachMapScriptType()

template<typename ScriptType , typename MapType , typename... Args, std::invocable< ScriptType *, MapType *, Args... > Action>
static void ForEachMapScriptType ( Action const &  action,
MapType *  map,
Args...  args 
)
inlinestatic

Definition at line 1582 of file ScriptMgr.cpp.

+ Here is the call graph for this function:

Variable Documentation

◆ MapScript< BattlegroundMap >

Definition at line 2554 of file ScriptMgr.cpp.

◆ MapScript< InstanceMap >

template class TC_GAME_API MapScript< InstanceMap >

Definition at line 2553 of file ScriptMgr.cpp.

◆ MapScript< Map >

template class TC_GAME_API MapScript< Map >

Definition at line 2552 of file ScriptMgr.cpp.

◆ ScriptRegistry< AccountScript >

Definition at line 3276 of file ScriptMgr.cpp.

◆ ScriptRegistry< AchievementCriteriaScript >

Definition at line 3271 of file ScriptMgr.cpp.

◆ ScriptRegistry< AchievementScript >

Definition at line 3270 of file ScriptMgr.cpp.

◆ ScriptRegistry< AreaTriggerEntityScript >

Definition at line 3277 of file ScriptMgr.cpp.

◆ ScriptRegistry< AreaTriggerScript >

Definition at line 3260 of file ScriptMgr.cpp.

◆ ScriptRegistry< AuctionHouseScript >

Definition at line 3265 of file ScriptMgr.cpp.

◆ ScriptRegistry< BattlefieldScript >

Definition at line 3261 of file ScriptMgr.cpp.

◆ ScriptRegistry< BattlegroundMapScript >

Definition at line 3256 of file ScriptMgr.cpp.

◆ ScriptRegistry< CommandScript >

Definition at line 3263 of file ScriptMgr.cpp.

◆ ScriptRegistry< ConditionScript >

Definition at line 3266 of file ScriptMgr.cpp.

◆ ScriptRegistry< ConversationScript >

Definition at line 3278 of file ScriptMgr.cpp.

◆ ScriptRegistry< CreatureScript >

Definition at line 3258 of file ScriptMgr.cpp.

◆ ScriptRegistry< DynamicObjectScript >

Definition at line 3268 of file ScriptMgr.cpp.

◆ ScriptRegistry< EventScript >

Definition at line 3282 of file ScriptMgr.cpp.

◆ ScriptRegistry< FormulaScript >

Definition at line 3253 of file ScriptMgr.cpp.

◆ ScriptRegistry< GameObjectScript >

Definition at line 3259 of file ScriptMgr.cpp.

◆ ScriptRegistry< GroupScript >

Definition at line 3274 of file ScriptMgr.cpp.

◆ ScriptRegistry< GuildScript >

Definition at line 3273 of file ScriptMgr.cpp.

◆ ScriptRegistry< InstanceMapScript >

Definition at line 3255 of file ScriptMgr.cpp.

◆ ScriptRegistry< ItemScript >

Definition at line 3257 of file ScriptMgr.cpp.

◆ ScriptRegistry< OutdoorPvPScript >

Definition at line 3262 of file ScriptMgr.cpp.

◆ ScriptRegistry< PlayerChoiceScript >

Definition at line 3283 of file ScriptMgr.cpp.

◆ ScriptRegistry< PlayerScript >

Definition at line 3272 of file ScriptMgr.cpp.

◆ ScriptRegistry< QuestScript >

Definition at line 3280 of file ScriptMgr.cpp.

◆ ScriptRegistry< SceneScript >

Definition at line 3279 of file ScriptMgr.cpp.

◆ ScriptRegistry< ServerScript >

Definition at line 3251 of file ScriptMgr.cpp.

◆ ScriptRegistry< SpellScriptLoader >

Definition at line 3250 of file ScriptMgr.cpp.

◆ ScriptRegistry< TransportScript >

Definition at line 3269 of file ScriptMgr.cpp.

◆ ScriptRegistry< UnitScript >

Definition at line 3275 of file ScriptMgr.cpp.

◆ ScriptRegistry< VehicleScript >

Definition at line 3267 of file ScriptMgr.cpp.

◆ ScriptRegistry< WeatherScript >

Definition at line 3264 of file ScriptMgr.cpp.

◆ ScriptRegistry< WorldMapScript >

Definition at line 3254 of file ScriptMgr.cpp.

◆ ScriptRegistry< WorldScript >

Definition at line 3252 of file ScriptMgr.cpp.

◆ ScriptRegistry< WorldStateScript >

Definition at line 3281 of file ScriptMgr.cpp.