|
22 | 22 | #include "CustomModels/Events.hpp" |
23 | 23 | #include "ComponentManager.hpp" |
24 | 24 |
|
25 | | -#define ADD_EVENT_HANDLER(component, event_instance) \ |
26 | | - if (component) \ |
27 | | - { \ |
28 | | - component->getEventDispatcher().addEventHandler(event_instance); \ |
| 25 | +#define ADD_EVENT_HANDLER(component, event_instance) \ |
| 26 | + if (component) \ |
| 27 | + { \ |
| 28 | + component->getEventDispatcher().addEventHandler(event_instance<EventPriorityType_Highest>::Get(), EventPriority_Highest); \ |
| 29 | + component->getEventDispatcher().addEventHandler(event_instance<EventPriorityType_FairlyHigh>::Get(), EventPriority_FairlyHigh); \ |
| 30 | + component->getEventDispatcher().addEventHandler(event_instance<EventPriorityType_Default>::Get(), EventPriority_Default); \ |
| 31 | + component->getEventDispatcher().addEventHandler(event_instance<EventPriorityType_FairlyLow>::Get(), EventPriority_FairlyLow); \ |
| 32 | + component->getEventDispatcher().addEventHandler(event_instance<EventPriorityType_Lowest>::Get(), EventPriority_Lowest); \ |
29 | 33 | } |
30 | 34 |
|
31 | | -#define ADD_PLAYER_EVENT_HANDLER(component, event_name, event_instance) \ |
32 | | - if (component) \ |
33 | | - { \ |
34 | | - component->getPlayer##event_name##Dispatcher().addEventHandler(event_instance); \ |
| 35 | +#define ADD_PLAYER_EVENT_HANDLER(component, event_name, event_instance) \ |
| 36 | + if (component) \ |
| 37 | + { \ |
| 38 | + component->getPlayer##event_name##Dispatcher().addEventHandler(event_instance<EventPriorityType_Highest>::Get(), EventPriority_Highest); \ |
| 39 | + component->getPlayer##event_name##Dispatcher().addEventHandler(event_instance<EventPriorityType_FairlyHigh>::Get(), EventPriority_FairlyHigh); \ |
| 40 | + component->getPlayer##event_name##Dispatcher().addEventHandler(event_instance<EventPriorityType_Default>::Get(), EventPriority_Default); \ |
| 41 | + component->getPlayer##event_name##Dispatcher().addEventHandler(event_instance<EventPriorityType_FairlyLow>::Get(), EventPriority_FairlyLow); \ |
| 42 | + component->getPlayer##event_name##Dispatcher().addEventHandler(event_instance<EventPriorityType_Lowest>::Get(), EventPriority_Lowest); \ |
35 | 43 | } |
36 | 44 |
|
37 | | -#define REMOVE_EVENT_HANDLER(component, event_instance) \ |
38 | | - if (component) \ |
39 | | - { \ |
40 | | - component->getEventDispatcher().removeEventHandler(event_instance); \ |
| 45 | +#define REMOVE_EVENT_HANDLER(component, event_instance) \ |
| 46 | + if (component) \ |
| 47 | + { \ |
| 48 | + component->getEventDispatcher().removeEventHandler(event_instance<EventPriorityType_Highest>::Get()); \ |
| 49 | + component->getEventDispatcher().removeEventHandler(event_instance<EventPriorityType_FairlyHigh>::Get()); \ |
| 50 | + component->getEventDispatcher().removeEventHandler(event_instance<EventPriorityType_Default>::Get()); \ |
| 51 | + component->getEventDispatcher().removeEventHandler(event_instance<EventPriorityType_FairlyLow>::Get()); \ |
| 52 | + component->getEventDispatcher().removeEventHandler(event_instance<EventPriorityType_Lowest>::Get()); \ |
41 | 53 | } |
42 | 54 |
|
43 | | -#define REMOVE_PLAYER_EVENT_HANDLER(component, event_name, event_instance) \ |
44 | | - if (component) \ |
45 | | - { \ |
46 | | - component->getPlayer##event_name##Dispatcher().removeEventHandler(event_instance); \ |
| 55 | +#define REMOVE_PLAYER_EVENT_HANDLER(component, event_name, event_instance) \ |
| 56 | + if (component) \ |
| 57 | + { \ |
| 58 | + component->getPlayer##event_name##Dispatcher().removeEventHandler(event_instance<EventPriorityType_Highest>::Get()); \ |
| 59 | + component->getPlayer##event_name##Dispatcher().removeEventHandler(event_instance<EventPriorityType_FairlyHigh>::Get()); \ |
| 60 | + component->getPlayer##event_name##Dispatcher().removeEventHandler(event_instance<EventPriorityType_Default>::Get()); \ |
| 61 | + component->getPlayer##event_name##Dispatcher().removeEventHandler(event_instance<EventPriorityType_FairlyLow>::Get()); \ |
| 62 | + component->getPlayer##event_name##Dispatcher().removeEventHandler(event_instance<EventPriorityType_Lowest>::Get()); \ |
47 | 63 | } |
48 | 64 |
|
49 | 65 | #define RETRIEVE_RELEVANT_EVENT_MAP(container, priority) \ |
@@ -93,58 +109,58 @@ void ComponentManager::Init(ICore* c, IComponentList* clist) |
93 | 109 |
|
94 | 110 | void ComponentManager::InitializeEvents() |
95 | 111 | { |
96 | | - ADD_EVENT_HANDLER(core, CoreEvents::Get()); |
97 | | - ADD_EVENT_HANDLER(actors, ActorEvents::Get()); |
98 | | - ADD_EVENT_HANDLER(checkpoints, CheckpointEvents::Get()); |
99 | | - ADD_EVENT_HANDLER(classes, ClassEvents::Get()); |
100 | | - ADD_EVENT_HANDLER(dialogs, DialogEvents::Get()); |
101 | | - ADD_EVENT_HANDLER(menus, MenuEvents::Get()); |
102 | | - ADD_EVENT_HANDLER(textdraws, TextDrawEvents::Get()); |
103 | | - ADD_EVENT_HANDLER(pickups, PickupEvents::Get()); |
104 | | - ADD_EVENT_HANDLER(vehicles, VehicleEvents::Get()); |
105 | | - ADD_EVENT_HANDLER(objects, ObjectEvents::Get()); |
106 | | - ADD_EVENT_HANDLER(console, ConsoleEvents::Get()); |
107 | | - ADD_EVENT_HANDLER(gangzones, GangZoneEvents::Get()); |
108 | | - ADD_EVENT_HANDLER(models, CustomModelsEvents::Get()); |
109 | | - |
110 | | - ADD_PLAYER_EVENT_HANDLER(players, Spawn, PlayerEvents::Get()); |
111 | | - ADD_PLAYER_EVENT_HANDLER(players, Connect, PlayerEvents::Get()); |
112 | | - ADD_PLAYER_EVENT_HANDLER(players, Stream, PlayerEvents::Get()); |
113 | | - ADD_PLAYER_EVENT_HANDLER(players, Text, PlayerEvents::Get()); |
114 | | - ADD_PLAYER_EVENT_HANDLER(players, Shot, PlayerEvents::Get()); |
115 | | - ADD_PLAYER_EVENT_HANDLER(players, Change, PlayerEvents::Get()); |
116 | | - ADD_PLAYER_EVENT_HANDLER(players, Damage, PlayerEvents::Get()); |
117 | | - ADD_PLAYER_EVENT_HANDLER(players, Click, PlayerEvents::Get()); |
118 | | - ADD_PLAYER_EVENT_HANDLER(players, Check, PlayerEvents::Get()); |
119 | | - ADD_PLAYER_EVENT_HANDLER(players, Update, PlayerEvents::Get()); |
| 112 | + ADD_EVENT_HANDLER(core, CoreEvents); |
| 113 | + ADD_EVENT_HANDLER(actors, ActorEvents); |
| 114 | + ADD_EVENT_HANDLER(checkpoints, CheckpointEvents); |
| 115 | + ADD_EVENT_HANDLER(classes, ClassEvents); |
| 116 | + ADD_EVENT_HANDLER(dialogs, DialogEvents); |
| 117 | + ADD_EVENT_HANDLER(menus, MenuEvents); |
| 118 | + ADD_EVENT_HANDLER(textdraws, TextDrawEvents); |
| 119 | + ADD_EVENT_HANDLER(pickups, PickupEvents); |
| 120 | + ADD_EVENT_HANDLER(vehicles, VehicleEvents); |
| 121 | + ADD_EVENT_HANDLER(objects, ObjectEvents); |
| 122 | + ADD_EVENT_HANDLER(console, ConsoleEvents); |
| 123 | + ADD_EVENT_HANDLER(gangzones, GangZoneEvents); |
| 124 | + ADD_EVENT_HANDLER(models, CustomModelsEvents); |
| 125 | + |
| 126 | + ADD_PLAYER_EVENT_HANDLER(players, Spawn, PlayerEvents); |
| 127 | + ADD_PLAYER_EVENT_HANDLER(players, Connect, PlayerEvents); |
| 128 | + ADD_PLAYER_EVENT_HANDLER(players, Stream, PlayerEvents); |
| 129 | + ADD_PLAYER_EVENT_HANDLER(players, Text, PlayerEvents); |
| 130 | + ADD_PLAYER_EVENT_HANDLER(players, Shot, PlayerEvents); |
| 131 | + ADD_PLAYER_EVENT_HANDLER(players, Change, PlayerEvents); |
| 132 | + ADD_PLAYER_EVENT_HANDLER(players, Damage, PlayerEvents); |
| 133 | + ADD_PLAYER_EVENT_HANDLER(players, Click, PlayerEvents); |
| 134 | + ADD_PLAYER_EVENT_HANDLER(players, Check, PlayerEvents); |
| 135 | + ADD_PLAYER_EVENT_HANDLER(players, Update, PlayerEvents); |
120 | 136 | } |
121 | 137 |
|
122 | 138 | void ComponentManager::FreeEvents() |
123 | 139 | { |
124 | | - REMOVE_EVENT_HANDLER(core, CoreEvents::Get()); |
125 | | - REMOVE_EVENT_HANDLER(actors, ActorEvents::Get()); |
126 | | - REMOVE_EVENT_HANDLER(checkpoints, CheckpointEvents::Get()); |
127 | | - REMOVE_EVENT_HANDLER(classes, ClassEvents::Get()); |
128 | | - REMOVE_EVENT_HANDLER(dialogs, DialogEvents::Get()); |
129 | | - REMOVE_EVENT_HANDLER(menus, MenuEvents::Get()); |
130 | | - REMOVE_EVENT_HANDLER(textdraws, TextDrawEvents::Get()); |
131 | | - REMOVE_EVENT_HANDLER(pickups, PickupEvents::Get()); |
132 | | - REMOVE_EVENT_HANDLER(vehicles, VehicleEvents::Get()); |
133 | | - REMOVE_EVENT_HANDLER(objects, ObjectEvents::Get()); |
134 | | - REMOVE_EVENT_HANDLER(console, ConsoleEvents::Get()); |
135 | | - REMOVE_EVENT_HANDLER(gangzones, GangZoneEvents::Get()); |
136 | | - REMOVE_EVENT_HANDLER(models, CustomModelsEvents::Get()); |
137 | | - |
138 | | - REMOVE_PLAYER_EVENT_HANDLER(players, Spawn, PlayerEvents::Get()); |
139 | | - REMOVE_PLAYER_EVENT_HANDLER(players, Connect, PlayerEvents::Get()); |
140 | | - REMOVE_PLAYER_EVENT_HANDLER(players, Stream, PlayerEvents::Get()); |
141 | | - REMOVE_PLAYER_EVENT_HANDLER(players, Text, PlayerEvents::Get()); |
142 | | - REMOVE_PLAYER_EVENT_HANDLER(players, Shot, PlayerEvents::Get()); |
143 | | - REMOVE_PLAYER_EVENT_HANDLER(players, Change, PlayerEvents::Get()); |
144 | | - REMOVE_PLAYER_EVENT_HANDLER(players, Damage, PlayerEvents::Get()); |
145 | | - REMOVE_PLAYER_EVENT_HANDLER(players, Click, PlayerEvents::Get()); |
146 | | - REMOVE_PLAYER_EVENT_HANDLER(players, Check, PlayerEvents::Get()); |
147 | | - REMOVE_PLAYER_EVENT_HANDLER(players, Update, PlayerEvents::Get()); |
| 140 | + REMOVE_EVENT_HANDLER(core, CoreEvents); |
| 141 | + REMOVE_EVENT_HANDLER(actors, ActorEvents); |
| 142 | + REMOVE_EVENT_HANDLER(checkpoints, CheckpointEvents); |
| 143 | + REMOVE_EVENT_HANDLER(classes, ClassEvents); |
| 144 | + REMOVE_EVENT_HANDLER(dialogs, DialogEvents); |
| 145 | + REMOVE_EVENT_HANDLER(menus, MenuEvents); |
| 146 | + REMOVE_EVENT_HANDLER(textdraws, TextDrawEvents); |
| 147 | + REMOVE_EVENT_HANDLER(pickups, PickupEvents); |
| 148 | + REMOVE_EVENT_HANDLER(vehicles, VehicleEvents); |
| 149 | + REMOVE_EVENT_HANDLER(objects, ObjectEvents); |
| 150 | + REMOVE_EVENT_HANDLER(console, ConsoleEvents); |
| 151 | + REMOVE_EVENT_HANDLER(gangzones, GangZoneEvents); |
| 152 | + REMOVE_EVENT_HANDLER(models, CustomModelsEvents); |
| 153 | + |
| 154 | + REMOVE_PLAYER_EVENT_HANDLER(players, Spawn, PlayerEvents); |
| 155 | + REMOVE_PLAYER_EVENT_HANDLER(players, Connect, PlayerEvents); |
| 156 | + REMOVE_PLAYER_EVENT_HANDLER(players, Stream, PlayerEvents); |
| 157 | + REMOVE_PLAYER_EVENT_HANDLER(players, Text, PlayerEvents); |
| 158 | + REMOVE_PLAYER_EVENT_HANDLER(players, Shot, PlayerEvents); |
| 159 | + REMOVE_PLAYER_EVENT_HANDLER(players, Change, PlayerEvents); |
| 160 | + REMOVE_PLAYER_EVENT_HANDLER(players, Damage, PlayerEvents); |
| 161 | + REMOVE_PLAYER_EVENT_HANDLER(players, Click, PlayerEvents); |
| 162 | + REMOVE_PLAYER_EVENT_HANDLER(players, Check, PlayerEvents); |
| 163 | + REMOVE_PLAYER_EVENT_HANDLER(players, Update, PlayerEvents); |
148 | 164 | } |
149 | 165 |
|
150 | 166 | bool ComponentManager::AddEventHandler(const Impl::String& name, EventPriorityType priority, EventCallback_Common callback) |
|
0 commit comments