Skip to content

Commit aa00a99

Browse files
author
Github Actions
committed
Merge 3.3.5 to 3.3.5-nemesis_anticheat
2 parents 30a0f37 + f40409c commit aa00a99

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+2826
-2612
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
--
2+
DELETE FROM `creature_text` WHERE `CreatureID` = 19218 AND `GroupID` = 4;
3+
DELETE FROM `creature_text` WHERE `CreatureID` = 19710 AND `GroupID` = 5;
4+
INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES
5+
(19218,4,0,"You hear a faint unlocking sound...",16,0,100,0,0,0,19055,0,"Gatewatcher Gyro-Kill - On Death"),
6+
(19710,5,0,"You hear a faint unlocking sound...",16,0,100,0,0,0,19055,0,"Gatewatcher Iron-Hand - On Death");
7+
8+
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 13 AND `SourceEntry` = 35301;
9+
INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorType`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
10+
(13,1,35301,0,0,31,0,3,21062,0,0,0,0,"","Group 0: Spell 'Suicide' (Effect 0) targets creature 'Nether Wraith'");
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
--
2+
DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_dalliah_the_doomsayer_whirlwind';
3+
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
4+
(36142, 'spell_dalliah_the_doomsayer_whirlwind');

sql/updates/world/3.3.5/2025_07_12_00_world.sql

Lines changed: 219 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
--
2+
DELETE FROM `creature_text` WHERE `CreatureID` = 17380;
3+
INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES
4+
(17380,0,0,"Kill them!",14,0,100,0,0,0,15115,0,"broggok SAY_INTRO"),
5+
(17380,1,0,"Come intruders....",14,0,100,0,0,0,14259,0,"broggok SAY_AGGRO");
6+
7+
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 13 AND `SourceEntry` = 26838;
8+
INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorType`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
9+
(13,1,26838,0,0,31,0,3,16006,0,0,0,0,"","Group 0: Spell 'Despawn InCombat Trigger' (Effect 0) targets creature 'InCombat Trigger'");
10+
11+
DELETE FROM `spell_script_names` WHERE `spell_id` = 26838 AND `ScriptName` = 'spell_gen_despawn_target';
12+
INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
13+
(26838,'spell_gen_despawn_target');
14+
-- Credit - Cmangos
15+
DELETE FROM `waypoint_data` WHERE `id` = 1381150;
16+
INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
17+
(1381150,1,455.6496,33.33417,9.544375,NULL,0,1,0,100,0),
18+
(1381150,2,456.105,44.3159,9.62544,NULL,0,1,0,100,0),
19+
(1381150,3,458.401,50.6364,9.62375,NULL,0,1,0,100,0),
20+
(1381150,4,461.782,54.9224,9.6233,NULL,0,1,0,100,0),
21+
(1381150,5,463.657,60.3144,9.61813,NULL,0,1,0,100,0),
22+
(1381150,6,456.328,78.3051,9.61487,1.53589,0,1,0,100,0);
Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
--
2+
UPDATE `spell_script_names` SET `ScriptName` = 'spell_sholazar_deathbolt' WHERE `ScriptName` = 'spell_q12611_deathbolt';
3+
4+
--
5+
UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 28563;
6+
DELETE FROM `smart_scripts` WHERE `entryorguid` IN (28563) AND `source_type` = 0;
7+
DELETE FROM `smart_scripts` WHERE `entryorguid` IN (2856300) AND `source_type` = 9;
8+
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
9+
(28563,0,0,0,38,0,100,0,1,1,0,0,0,80,2856300,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Freya's Presence - On Data Set 1 1 - Run Action List"),
10+
-- We don't have invoker here
11+
-- For some reason it doesn't work no matter how it is used
12+
-- (2856300,9,0,0,0,0,100,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,"Freya's Presence - On Script - Say Line 0"),
13+
(2856300,9,1,0,0,0,100,0,0,0,0,0,0,11,51318,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Freya's Presence - On Script - Cast 'Freya Dummy'"),
14+
(2856300,9,2,0,0,0,100,0,5000,5000,0,0,0,11,51395,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Freya's Presence - On Script - Cast 'Lifeforce'"),
15+
(2856300,9,3,0,0,0,100,0,5000,5000,0,0,0,11,51395,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Freya's Presence - On Script - Cast 'Lifeforce'"),
16+
(2856300,9,4,0,0,0,100,0,5000,5000,0,0,0,11,51395,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Freya's Presence - On Script - Cast 'Lifeforce'"),
17+
(2856300,9,5,0,0,0,100,0,5000,5000,0,0,0,11,51395,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Freya's Presence - On Script - Cast 'Lifeforce'"),
18+
(2856300,9,6,0,0,0,100,0,5000,5000,0,0,0,11,51395,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Freya's Presence - On Script - Cast 'Lifeforce'");
19+
20+
UPDATE `spell_script_names` SET `ScriptName` = 'spell_sholazar_call_of_the_lifewarden' WHERE `ScriptName` = 'spell_q12620_the_lifewarden_wrath';
21+
22+
DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_sholazar_freya_dummy';
23+
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
24+
(51318, 'spell_sholazar_freya_dummy');
25+
26+
UPDATE `creature_text` SET `Probability` = 100 WHERE `CreatureID` = 28563;
27+
28+
--
29+
UPDATE `spell_script_names` SET `ScriptName` = 'spell_sholazar_shoot_rjr' WHERE `ScriptName` = 'spell_q12589_shoot_rjr';
30+
31+
--
32+
UPDATE `creature_text` SET `ID` = 0 WHERE `CreatureID` = 28787;
33+
34+
UPDATE `creature_template` SET `AIName` = 'SmartAI', `ScriptName` = '' WHERE `entry` = 28787;
35+
DELETE FROM `smart_scripts` WHERE `entryorguid` IN (28787) AND `source_type` = 0;
36+
DELETE FROM `smart_scripts` WHERE `entryorguid` IN (2878700,2878701,2878702,2878703,2878704) AND `source_type` = 9;
37+
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
38+
(28787,0,0,0,19,0,100,0,12688,0,0,0,0,80,2878700,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Engineer Helice - On Quest 'Engineering a Disaster' Taken - Run Script"),
39+
40+
(2878700,9,0,0,0,0,100,0,0,0,0,0,0,64,1,0,0,0,0,0,16,0,0,0,0,0,0,0,0,"Engineer Helice - On Script - Store Targetlist"),
41+
(2878700,9,1,0,0,0,100,0,0,0,0,0,0,2,113,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Engineer Helice - On Script - Set Faction 113"),
42+
(2878700,9,2,0,0,0,100,0,0,0,0,0,0,83,2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Engineer Helice - On Script - Remove NPC Flag Questgiver"),
43+
(2878700,9,3,0,0,0,100,0,0,0,0,0,0,1,0,0,0,0,0,0,12,1,0,0,0,0,0,0,0,"Engineer Helice - On Script - Say Line 0"),
44+
(2878700,9,4,0,0,0,100,0,3000,3000,0,0,0,53,0,2878700,0,0,0,0,1,0,0,0,0,0,0,0,0,"Engineer Helice - On Script - Start Waypoint"),
45+
46+
(28787,0,1,0,58,0,100,0,0,2878700,0,0,0,80,2878701,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Engineer Helice - On Waypoint Finished - Run Script"),
47+
48+
(2878701,9,0,0,0,0,100,0,0,0,0,0,0,1,1,0,0,0,0,0,12,1,0,0,0,0,0,0,0,"Engineer Helice - On Script - Say Line 1"),
49+
(2878701,9,1,0,0,0,100,0,4000,4000,0,0,0,1,2,0,0,0,0,0,12,1,0,0,0,0,0,0,0,"Engineer Helice - On Script - Say Line 2"),
50+
(2878701,9,2,0,0,0,100,0,1000,1000,0,0,0,11,52369,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Engineer Helice - On Script - Cast 'Detonate Explosives'"),
51+
(2878701,9,3,0,0,0,100,0,2000,2000,0,0,0,1,3,0,0,0,0,0,12,1,0,0,0,0,0,0,0,"Engineer Helice - On Script - Say Line 3"),
52+
(2878701,9,4,0,0,0,100,0,3000,3000,0,0,0,53,0,2878701,0,0,0,0,1,0,0,0,0,0,0,0,0,"Engineer Helice - On Script - Start Waypoint"),
53+
54+
(28787,0,2,0,58,0,100,0,0,2878701,0,0,0,80,2878702,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Engineer Helice - On Waypoint Finished - Run Script"),
55+
56+
(2878702,9,0,0,0,0,100,0,0,0,0,0,0,1,4,0,0,0,0,0,12,1,0,0,0,0,0,0,0,"Engineer Helice - On Script - Say Line 4"),
57+
(2878702,9,1,0,0,0,100,0,3000,3000,0,0,0,1,5,0,0,0,0,0,12,1,0,0,0,0,0,0,0,"Engineer Helice - On Script - Say Line 5"),
58+
(2878702,9,2,0,0,0,100,0,1000,1000,0,0,0,11,52371,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Engineer Helice - On Script - Cast 'Detonate Explosives'"),
59+
(2878702,9,3,0,0,0,100,0,2000,2000,0,0,0,53,0,2878702,0,0,0,0,1,0,0,0,0,0,0,0,0,"Engineer Helice - On Script - Start Waypoint"),
60+
61+
(28787,0,3,0,58,0,100,0,0,2878702,0,0,0,80,2878703,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Engineer Helice - On Waypoint Finished - Run Script"),
62+
63+
(2878703,9,0,0,0,0,100,0,0,0,0,0,0,1,6,0,0,0,0,0,12,1,0,0,0,0,0,0,0,"Engineer Helice - On Script - Say Line 6"),
64+
(2878703,9,1,0,0,0,100,0,0,0,0,0,0,145,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Engineer Helice - On Script - Set ImmuneNPC"),
65+
(2878703,9,2,0,0,0,100,0,0,0,0,0,0,15,12688,0,0,0,0,0,12,1,0,0,0,0,0,0,0,"Engineer Helice - On Script - Quest Credit 'Engineering a Disaster'"),
66+
(2878703,9,3,0,0,0,100,0,5000,5000,0,0,0,53,1,2878703,0,0,0,0,1,0,0,0,0,0,0,0,0,"Engineer Helice - On Script - Start Waypoint"),
67+
68+
(28787,0,4,0,58,0,100,0,0,2878703,0,0,0,80,2878704,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Engineer Helice - On Waypoint Finished - Run Script"),
69+
70+
(2878704,9,0,0,0,0,100,0,0,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Engineer Helice - On Script - Despawn Instant"),
71+
72+
(28787,0,5,0,6,0,100,0,0,0,0,0,0,6,12688,0,0,0,0,0,12,1,0,0,0,0,0,0,0,"Engineer Helice - On Death - Fail Quest 'Engineering a Disaster'");
73+
74+
DELETE FROM `script_waypoint` WHERE `entry` = 28787;
75+
DELETE FROM `waypoints` WHERE `entry` BETWEEN 2878700 AND 2878703;
76+
INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`point_comment`) VALUES
77+
(2878700,1,5916.655,5377.119,-98.89189,"Engineer Helice"),
78+
(2878700,2,5918.303,5375.1846,-98.880905,"Engineer Helice"),
79+
80+
(2878701,1,5925.6353,5371.7607,-98.87892,"Engineer Helice"),
81+
(2878701,2,5928.4595,5377.634,-99.029175,"Engineer Helice"),
82+
(2878701,3,5923.454,5380.128,-102.07381,"Engineer Helice"),
83+
(2878701,4,5917.1875,5382.8125,-106.24332,"Engineer Helice"),
84+
(2878701,5,5910.8545,5386.836,-106.24332,"Engineer Helice"),
85+
(2878701,6,5905.1245,5393.084,-104.36307,"Engineer Helice"),
86+
(2878701,7,5904.211,5399.0137,-99.61832,"Engineer Helice"),
87+
(2878701,8,5903.869,5404.004,-97.14992,"Engineer Helice"),
88+
(2878701,9,5899.6494,5408.9204,-95.80813,"Engineer Helice"),
89+
(2878701,10,5894.604,5406.4204,-95.773094,"Engineer Helice"),
90+
(2878701,11,5890.022,5398.5986,-95.45413,"Engineer Helice"),
91+
(2878701,12,5888.2026,5389.766,-95.39017,"Engineer Helice"),
92+
(2878701,13,5887.8447,5385.628,-95.3472,"Engineer Helice"),
93+
94+
(2878702,1,5879.204,5379.8057,-94.22403,"Engineer Helice"),
95+
(2878702,2,5874.893,5370.3823,-95.97647,"Engineer Helice"),
96+
(2878702,3,5872.0894,5363.6025,-97.509,"Engineer Helice"),
97+
(2878702,4,5865.1177,5357.971,-98.60394,"Engineer Helice"),
98+
(2878702,5,5857.0767,5352.808,-98.93683,"Engineer Helice"),
99+
(2878702,6,5849.1987,5344.5957,-99.35419,"Engineer Helice"),
100+
(2878702,7,5841.1,5335.7026,-100.4754,"Engineer Helice"),
101+
(2878702,8,5834.303,5326.5703,-99.19456,"Engineer Helice"),
102+
(2878702,9,5826.3457,5317.33,-97.85027,"Engineer Helice"),
103+
(2878702,10,5818.2407,5305.194,-97.43694,"Engineer Helice"),
104+
105+
(2878703,1,5801.7915,5296.6514,-95.75294,"Engineer Helice"),
106+
(2878703,2,5791.565,5298.5063,-96.164955,"Engineer Helice"),
107+
(2878703,3,5775.99,5302.8086,-98.47748,"Engineer Helice"),
108+
(2878703,4,5758.465,5306.957,-97.36847,"Engineer Helice");
109+
110+
UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 28789;
111+
DELETE FROM `smart_scripts` WHERE `entryorguid` = 28789 AND `source_type` = 0;
112+
DELETE FROM `smart_scripts` WHERE `entryorguid` IN (2878900,2878901) AND `source_type` = 9;
113+
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`event_param5`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_param4`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
114+
(28789,0,0,0,8,0,100,0,52369,0,0,0,0,80,2878900,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Explosion Guy - On Spellhit 'Detonate Explosives' - Run Script"),
115+
116+
(2878900,9,0,0,0,0,100,0,0,0,0,0,0,11,46419,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Explosion Guy - On Script - Cast 'Cosmetic - Explosion'"),
117+
(2878900,9,1,0,0,0,100,0,0,0,0,0,0,131,67,0,0,4,0,0,1,0,0,0,0,0,0,0,0,"Explosion Guy - On Script - Spawn SpawnGroup 67"),
118+
(2878900,9,2,0,0,0,100,0,20000,20000,0,0,0,132,67,0,0,4,0,0,1,0,0,0,0,0,0,0,0,"Explosion Guy - On Script - Despawn SpawnGroup 67"),
119+
120+
(28789,0,1,0,8,0,100,0,52371,0,0,0,0,80,2878901,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Explosion Guy - On Spellhit 'Detonate Explosives' - Run Script"),
121+
122+
(2878901,9,0,0,0,0,100,0,0,0,0,0,0,11,46419,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Explosion Guy - On Script - Cast 'Cosmetic - Explosion'"),
123+
(2878901,9,1,0,0,0,100,0,0,0,0,0,0,131,68,0,0,4,0,0,1,0,0,0,0,0,0,0,0,"Explosion Guy - On Script - Spawn SpawnGroup 68"),
124+
(2878901,9,2,0,0,0,100,0,20000,20000,0,0,0,132,68,0,0,4,0,0,1,0,0,0,0,0,0,0,0,"Explosion Guy - On Script - Despawn SpawnGroup 68");
125+
126+
DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_q12688_detonate_1','spell_q12688_detonate_2');
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
--
2+
UPDATE `creature_template` SET `ScriptName` = 'boss_celebras_the_cursed' WHERE `entry` = 12225;
3+
4+
DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_noxxion_summon_spawns';
5+
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
6+
(21708, 'spell_noxxion_summon_spawns');

src/common/Utilities/AsyncCallbackProcessor.h

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,13 @@
1515
* with this program. If not, see <http://www.gnu.org/licenses/>.
1616
*/
1717

18-
#ifndef AsyncCallbackProcessor_h__
19-
#define AsyncCallbackProcessor_h__
18+
#ifndef TRINITYCORE_ASYNC_CALLBACK_PROCESSOR_H
19+
#define TRINITYCORE_ASYNC_CALLBACK_PROCESSOR_H
2020

21-
#include "Define.h"
22-
#include <algorithm>
21+
#include "AsyncCallbackProcessorFwd.h"
2322
#include <vector>
2423

25-
//template <class T>
26-
//concept AsyncCallback = requires(T t) { { t.InvokeIfReady() } -> std::convertible_to<bool> };
27-
28-
template<typename T> // requires AsyncCallback<T>
24+
template<AsyncCallback T>
2925
class AsyncCallbackProcessor
3026
{
3127
public:
@@ -34,8 +30,7 @@ class AsyncCallbackProcessor
3430

3531
T& AddCallback(T&& query)
3632
{
37-
_callbacks.emplace_back(std::move(query));
38-
return _callbacks.back();
33+
return _callbacks.emplace_back(std::move(query));
3934
}
4035

4136
void ProcessReadyCallbacks()
@@ -45,19 +40,29 @@ class AsyncCallbackProcessor
4540

4641
std::vector<T> updateCallbacks{ std::move(_callbacks) };
4742

48-
updateCallbacks.erase(std::remove_if(updateCallbacks.begin(), updateCallbacks.end(), [](T& callback)
43+
std::erase_if(updateCallbacks, [](T& callback)
4944
{
50-
return callback.InvokeIfReady();
51-
}), updateCallbacks.end());
45+
return InvokeAsyncCallbackIfReady(callback);
46+
});
5247

5348
_callbacks.insert(_callbacks.end(), std::make_move_iterator(updateCallbacks.begin()), std::make_move_iterator(updateCallbacks.end()));
5449
}
5550

51+
bool Empty() const
52+
{
53+
return _callbacks.empty();
54+
}
55+
56+
void CancelAll()
57+
{
58+
_callbacks.clear();
59+
}
60+
5661
private:
5762
AsyncCallbackProcessor(AsyncCallbackProcessor const&) = delete;
5863
AsyncCallbackProcessor& operator=(AsyncCallbackProcessor const&) = delete;
5964

6065
std::vector<T> _callbacks;
6166
};
6267

63-
#endif // AsyncCallbackProcessor_h__
68+
#endif // TRINITYCORE_ASYNC_CALLBACK_PROCESSOR_H
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/*
2+
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3+
*
4+
* This program is free software; you can redistribute it and/or modify it
5+
* under the terms of the GNU General Public License as published by the
6+
* Free Software Foundation; either version 2 of the License, or (at your
7+
* option) any later version.
8+
*
9+
* This program is distributed in the hope that it will be useful, but WITHOUT
10+
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11+
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12+
* more details.
13+
*
14+
* You should have received a copy of the GNU General Public License along
15+
* with this program. If not, see <http://www.gnu.org/licenses/>.
16+
*/
17+
18+
#ifndef TRINITYCORE_ASYNC_CALLBACK_PROCESSOR_FWD_H
19+
#define TRINITYCORE_ASYNC_CALLBACK_PROCESSOR_FWD_H
20+
21+
#include <concepts>
22+
23+
template <typename T>
24+
concept AsyncCallback = requires(T& t) { { InvokeAsyncCallbackIfReady(t) } -> std::convertible_to<bool>; };
25+
26+
template<AsyncCallback T>
27+
class AsyncCallbackProcessor;
28+
29+
#endif // TRINITYCORE_ASYNC_CALLBACK_PROCESSOR_FWD_H

0 commit comments

Comments
 (0)