Commit Graph

27154 Commits

Author SHA1 Message Date
Carbenium
a5d85deced Core/EventMap: Unify semantics of DelayEvents
DelayEvents(Milliseconds delay) had different semantics than
DelayEvents(Milliseconds delay, uint32 group).
The first method delayed the events only in the case the internal timer
already ticked at least for the amount of delay. In contrast the latter method
delayed events regardless of the internal timer value.

Use the latter semantics for DelayEvents(Milliseconds delay) as well which makes
the outcome more predictable. Adapt tests accordingly.

(cherry picked from commit 4470b91223)
2022-01-24 00:01:25 +01:00
Carbenium
27c1f47598 EventMap: Change GetTimeUntilEvent to return std::chrono types
(cherry picked from commit 8cb35b0d5f)
2022-01-23 23:59:46 +01:00
Carbenium
7847589d9c EventMap: Switch internal timer over to std::chrono type
Adds the EventMap::Update(Milliseconds time) overload

(cherry picked from commit b9795e4482)
2022-01-23 23:59:32 +01:00
Carbenium
a28bc7faaa Scripts/Kalimdor: Use std::chrono overload of Creature::DespawnOrUnsummon
(cherry picked from commit 40efda9726)
2022-01-23 23:59:11 +01:00
Carbenium
38695b0943 Scripts/World+Outland+Spells: Use std::chrono overload of Creature::DespawnOrUnsummon
(cherry picked from commit 5832790428)
2022-01-23 23:58:48 +01:00
Carbenium
271462ceec Scripts/Northrend: Use std::chrono overload of Creature::DespawnOrUnsummon
(cherry picked from commit fc9e7226c0)
2022-01-23 23:57:56 +01:00
Carbenium
b8a3ab880f Core/Misc: Use std::chrono overload of Creature::DespawnOrUnsummon
(cherry picked from commit c39eb9b504)
2022-01-23 23:56:25 +01:00
Carbenium
58e1c091a2 Scripts/EasternKingdoms: Use std::chrono overload of Creature::DespawnOrUnsummon
(cherry picked from commit d1a39a2ebf)
2022-01-23 23:53:20 +01:00
Shauren
cacdb57c9c Core/Crypto: c++17-ify crypto code cherry picked earlier that was downgraded to c++14 2022-01-23 23:49:34 +01:00
Carbenium
5f5d32888a Core/EscortAI: std::chrono-ify SetPauseTimer
(cherry picked from commit cdaf890af4)
2022-01-23 23:34:52 +01:00
Carbenium
14e9513cea Core/EscortAI: std::chrono-ify AddWaypoint
(cherry picked from commit 4b9fdc5d3d)
2022-01-23 23:34:40 +01:00
Carbenium
e660b870e9 Core/ScriptedAI: std::chrono-ify DoSpawnCreature
(cherry picked from commit f5076112cb)
2022-01-23 23:33:04 +01:00
Carbenium
da438c73e2 Core/BossAI: Remove _DespawnAtEvade(uint32, Creature*) overload
Use _DespawnAtEvade(Seconds,  Creature*) instead

(cherry picked from commit 27229c10cd)
2022-01-23 23:28:47 +01:00
Carbenium
5f296fb7c7 Core/InstanceScript: std::chrono-ify DoRespawnGameObject
(cherry picked from commit d7ff8c272a)
2022-01-23 23:09:27 +01:00
Carbenium
7c43afa471 Core/Utilities: Add custom _days chrono literal
(cherry picked from commit d5de96e46b)
2022-01-23 23:08:21 +01:00
Peter Keresztes Schmidt
10f835b058 Common/Crypto: #ifdef out unnecessary locking code for OpenSSL 1.1+ (PR #25110)
(cherry picked from commit 7ea33120a0)
2022-01-23 23:07:33 +01:00
jackpoz
b327414abb Core/Misc: Code cleanup
Remove more unused code in UpdateTime class

(cherry picked from commit 6c4f71c84b)
2022-01-23 22:49:21 +01:00
Trond B. Krokli
cf94f4a8ed Scripts/Borean Tundra: duplicate comment text (#25102)
(cherry picked from commit ebb9e1b4de)
2022-01-23 22:49:11 +01:00
Giacomo Pozzoni
e8583d04f6 Core/Metric: Add more metrics about World::Update() loop (#25098)
* Core/Metric: Add more metrics about World::Update() loop

* Add new Performance profiling grafana dashboard

* Add new cmake setting WITHOUT_METRICS that disables all metrics

As new metrics are added, someone might want to disable them if unused.

* Add more metrics about World::Update() loop

* Remove old performance profiling features

Remove "server set difftime" command, "-RecordUpdateTimeDiffInterval" and "MinRecordUpdateTimeDiff" worldserver config settings and their related code.
The whole UpdateTime class could be removed too.

* Update and rename 2020_07_99_99_world.sql to 2020_07_24_00_world.sql

(cherry picked from commit 3c0ac7302f)
2022-01-23 22:45:25 +01:00
Giacomo Pozzoni
1dfcb7086e Core/Combat: Disable triggers entering combat (#25086)
* Core/Combat: Disable triggers entering combat

* Move check to database flags_extra flag in creature_template with value 0x00002000

* Fix Rotface puddle stalker too

* Rename 9999_99_99_99_world.sql to 2020_07_22_00_world.sql

(cherry picked from commit 6440c3bcac)
2022-01-23 22:35:00 +01:00
Peter Keresztes Schmidt
3499f518b5 EventMap: Remove GetNextEventTime and GetTimer methods (PR #25092)
(cherry picked from commit 6ab9922171)
2022-01-23 22:20:20 +01:00
Carbenium
330e7100cb Core/Scripts: Fix timing issue of EVENT_FLY_TO_RANDOM_PILLAR during Illidan encounter
The intention here is to add additional 30 seconds of delay to the current delay of EVENT_FLY_TO_RANDOM_PILLAR.
Instead of EventMap::GetNextEventTime, EventMap::GetTimeUntilEvent has to be used which returns the currently
scheduled delay until the event occurs.
EventMap::GetNextEventTime instead exposes the timer value internal to EventMap at which the event should occur.

(cherry picked from commit f1f251eb38)
2022-01-23 22:19:24 +01:00
Carbenium
c8a4cc8068 TaskScheduler: use randtime instead of custom implementation
(cherry picked from commit f773bf68e0)
2022-01-23 22:18:14 +01:00
Giacomo Pozzoni
509a70f57f Core/Threads: Replace Boost TLS with C++11 one (#15782)
* Core/Threads: Replace Boost TLS with C++11 one

Replace boost::thread_specific_ptr<T> thread-local storage with C++11 thread_local to remove libboost_thread dependency from common project

* Fix no-pch build

(cherry picked from commit 00b16992f1)
2022-01-23 22:16:45 +01:00
Peter Keresztes Schmidt
44ea32ace4 Build: Enable -Wimplicit-fallthrough on clang (#25056)
* Misc: Use [[fallthrough]] attribute instead of comment to mark intentional fallthroughs

Related: #25006

* Misc: Add some missing breaks (no-ops) to satisfy clang

Related: #25006
Closes #25055

* Build: Enable -Wimplicit-fallthrough on clang

Closes #25006
2022-01-23 22:16:15 +01:00
Peter Keresztes Schmidt
ad340466d0 Misc: Use [[fallthrough]] attribute instead of comment to mark intentional fallthroughs (#25054)
Related: #25006
(cherry picked from commit 85b5b842ca)
2022-01-23 22:02:03 +01:00
Giacomo Pozzoni
fda8a09766 Core/Misc: Replace boost::shared_mutex with std::shared_mutex (#24328)
* Core/Misc: Replace boost::shared_mutex with std::shared_mutex

* Remove std forward declarations

(cherry picked from commit 7032ee0bdb)
2022-01-23 21:51:47 +01:00
Giacomo Pozzoni
8834c5c724 Core/Metric: Log Map::Update() times (#25067)
* Core/Metric: Log Map::Update() times

* Add more performant version to reduce allocations when metrics are disabled

* Linux build fix

* Add metric stopwatch version that doesnt let users forget to _END it

* Fix linux build

* Code cleanup

* Add Map updates panel to General dashboard

* Add "Recent events" panel to General dashboard

* Apply latest codestyle changes

Co-authored-by: Shauren <shauren.trinity@gmail.com>
(cherry picked from commit 5eb742ee6a)
2022-01-23 21:36:28 +01:00
Treeston
d11c3807b3 Core/Time: Rename GetGameTime{System, Steady}Point methods
The names are a bit unhandy. Rename them (shorter but still meaningful).

GetGameTimeSystemPoint() -> GetSystemTime()
GetGameTimeSteadyPoint() -> Now()

Also add 2 new typedefs:

typedef std::chrono::steady_clock::time_point TimePoint;
typedef std::chrono::system_clock::time_point SystemTimePoint;

Closes #25042

(cherry picked from commit 896b68d5c2)
2022-01-23 21:36:03 +01:00
Peter Keresztes Schmidt
dfc1f08bd8 Misc: Remove some unneeded/duplicated includes (#25051)
(cherry picked from commit ddf16ae4d9)
2022-01-23 20:48:12 +01:00
Shauren
cd0b301779 Nopch fix
(cherry picked from commit c0ade2e98f)
2022-01-23 20:40:34 +01:00
Shauren
2b312c7bd2 Dep: Switch to boost process instead of old standalone version
(cherry picked from commit 524d167398)
2022-01-23 20:39:15 +01:00
Shauren
596bf2b772 Core/Misc: Replace boost::optional with std::optional part 2 2022-01-23 20:31:52 +01:00
Peter Keresztes Schmidt
770fbcca0c Core/Misc: Replace boost::optional with std::optional (#25047)
C++17 is already mandatory, so it's a safe thing to do

(cherry picked from commit 202fd41389)
2022-01-23 18:05:59 +01:00
Peter Keresztes Schmidt
cd86a015c4 Core/Util: Remove EventMap's non-std::chrono::duration based interface (#25049)
Closes #25012

(cherry picked from commit ce1e2c0f9b)
2022-01-23 16:39:31 +01:00
Shauren
15d59640fa Scripts/World: Use std::chrono::duration overloads of EventMap 2022-01-23 16:39:31 +01:00
Shauren
8417c7d815 Scripts/Zul'aman: Use std::chrono::duration overloads of EventMap 2022-01-23 16:39:31 +01:00
Shauren
5a53fa4b58 Scripts/Blackrock Spire: Use std::chrono::duration overloads of EventMap 2022-01-23 16:39:31 +01:00
Shauren
1ef00ccd10 Scripts/Stonecore: Use std::chrono::duration overloads of EventMap 2022-01-23 16:39:31 +01:00
Shauren
f0a7bc5267 Scripts/Halls of Origination: Use std::chrono::duration overloads of EventMap 2022-01-23 16:39:31 +01:00
Shauren
66641b6d22 Scripts/Blackrock Caverns: Use std::chrono::duration overloads of EventMap 2022-01-23 16:39:31 +01:00
Shauren
d07425e620 Scripts/Firelands: Use std::chrono::duration overloads of EventMap 2022-01-23 16:39:31 +01:00
Shauren
bb29fb406e Scripts/Baradin Hold: Use std::chrono::duration overloads of EventMap 2022-01-23 16:39:31 +01:00
NoName
fdd06dc1dd Core/Misc: Port refactors 9fe6756cf2
* + For SMSG_DEATH_RELEASE_LOC
G3D::Vector3 -> TaggedPosition<Position::XYZ>
+ removed non 3.3.5 packets

Co-authored-by: Peter Keresztes Schmidt <carbenium@outlook.com>
Co-authored-by: Mogadischu <cgnad@live.de>
Co-authored-by: Shauren <shauren.trinity@gmail.com>
(cherry picked from commit 9fe6756cf2)
2022-01-23 16:07:06 +01:00
Peter Keresztes Schmidt
54d3110ca7 Scripts/World+Pet: Use std::chrono::duration overloads of EventMap (#25017)
Contributes to #25012

(cherry picked from commit 0072fa922d)
2022-01-23 16:02:35 +01:00
Peter Keresztes Schmidt
ce8c0da4fe Scripts/Icecrown Citadel: Use std::chrono::duration overloads of EventMap (Part 2) (#25041)
Part 2: gunship battle and Sindragosa

Contributes to https://github.com/TrinityCore/TrinityCore/issues/25012

(cherry picked from commit 6968e7a1a1)
2022-01-23 16:02:25 +01:00
Peter Keresztes Schmidt
0195ec8945 Scripts/Icecrown Citadel: Use std::chrono::duration overloads of EventMap (#25036)
Part 1: without gunship battle and Sindragosa

Contributes to #25012

(cherry picked from commit 5eaff8a3bc)
2022-01-23 16:02:00 +01:00
Peter Keresztes Schmidt
253cbf5678 Scripts/Tempest Keep: Use std::chrono::duration overloads of EventMap (#25040)
Contributes to #25012

(cherry picked from commit 2d9c5979a6)
2022-01-23 16:01:09 +01:00
Peter Keresztes Schmidt
c3228cc252 Scripts/Utgarde Keep: Use std::chrono::duration overloads of EventMap (#25039)
Contributes to #25012

(cherry picked from commit f00ab389d6)
2022-01-23 16:00:59 +01:00
Peter Keresztes Schmidt
8e7c368220 Scripts/Magisters Terrace: Use std::chrono::duration overloads of EventMap (#25038)
Contributes to #25012

(cherry picked from commit 88314660b6)
2022-01-23 16:00:43 +01:00