AzerothCore 3.3.5a
OpenSource WoW Emulator
|
Go to the source code of this file.
Classes | |
struct | ConditionSourceInfo |
struct | Condition |
class | ConditionMgr |
Macros | |
#define | sConditionMgr ConditionMgr::instance() |
Typedefs | |
typedef std::list< Condition * > | ConditionList |
typedef std::map< uint32, ConditionList > | ConditionTypeContainer |
typedef std::map< ConditionSourceType, ConditionTypeContainer > | ConditionContainer |
typedef std::map< uint32, ConditionTypeContainer > | CreatureSpellConditionContainer |
typedef std::map< uint32, ConditionTypeContainer > | NpcVendorConditionContainer |
typedef std::map< std::pair< int32, uint32 >, ConditionTypeContainer > | SmartEventConditionContainer |
typedef std::map< uint32, ConditionList > | ConditionReferenceContainer |
#define sConditionMgr ConditionMgr::instance() |
typedef std::map<ConditionSourceType, ConditionTypeContainer> ConditionContainer |
typedef std::list<Condition*> ConditionList |
typedef std::map<uint32, ConditionList> ConditionReferenceContainer |
typedef std::map<uint32, ConditionList> ConditionTypeContainer |
typedef std::map<uint32, ConditionTypeContainer> CreatureSpellConditionContainer |
typedef std::map<uint32, ConditionTypeContainer> NpcVendorConditionContainer |
typedef std::map<std::pair<int32, uint32 >, ConditionTypeContainer> SmartEventConditionContainer |
anonymous enum |
Enumerator | |
---|---|
MAX_CONDITION_TARGETS |
enum ConditionSourceType |
Documentation on implementing a new ConditionSourceType: Step 1: Check for the lowest free ID. Look for CONDITION_SOURCE_TYPE_UNUSED_XX in the enum. Then define the new source type.
Step 2: Determine and map the parameters for the new condition source type.
Step 3: Add a case block to ConditionMgr::isSourceTypeValid with the new condition type and validate the parameters.
Step 4: If your condition can be grouped (determined in step 2), add a rule for it in ConditionMgr::CanHaveSourceGroupSet, following the example of the existing types.
Step 5: Define the maximum available condition targets in ConditionMgr::GetMaxAvailableConditionTargets.
The following steps only apply if your condition can be grouped:
Step 6: Determine how you are going to store your conditions. You need to add a new storage container for it in ConditionMgr class, along with a function like: ConditionList GetConditionsForXXXYourNewSourceTypeXXX(parameters...)
The above function should be placed in upper level (practical) code that actually checks the conditions.
Step 7: Implement loading for your source type in ConditionMgr::LoadConditions.
Step 8: Implement memory cleaning for your source type in ConditionMgr::Clean.
enum ConditionTypes |
enum InstanceInfo |
Enumerator | |
---|---|
INSTANCE_INFO_DATA | |
INSTANCE_INFO_GUID_DATA | |
INSTANCE_INFO_BOSS_STATE | |
INSTANCE_INFO_DATA64 |
enum RelationType |
Enumerator | |
---|---|
RELATION_SELF | |
RELATION_IN_PARTY | |
RELATION_IN_RAID_OR_PARTY | |
RELATION_OWNED_BY | |
RELATION_PASSENGER_OF | |
RELATION_CREATED_BY | |
RELATION_MAX |