Commit Graph
38012 Commits
Author SHA1 Message Date
Carbenium 271462ceec Scripts/Northrend: Use std::chrono overload of Creature::DespawnOrUnsummon
(cherry picked from commit fc9e7226c0785fd12b01b724ed3666e6c08dd017)
2022-01-23 23:57:56 +01:00
Carbenium b8a3ab880f Core/Misc: Use std::chrono overload of Creature::DespawnOrUnsummon
(cherry picked from commit c39eb9b5041950ce3af89f82848bd3e1f3a6e0af)
2022-01-23 23:56:25 +01:00
Carbenium 58e1c091a2 Scripts/EasternKingdoms: Use std::chrono overload of Creature::DespawnOrUnsummon
(cherry picked from commit d1a39a2ebf3bb55998696c424cd58f3fcdedd66a)
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 cdaf890af4b5bb7ce256752b49bba2c0f3ed9264)
2022-01-23 23:34:52 +01:00
Carbenium 14e9513cea Core/EscortAI: std::chrono-ify AddWaypoint
(cherry picked from commit 4b9fdc5d3d1278269aaf218cea94f23688e4bca1)
2022-01-23 23:34:40 +01:00
Carbenium e660b870e9 Core/ScriptedAI: std::chrono-ify DoSpawnCreature
(cherry picked from commit f5076112cb25bff877a450a14fe20172e9044081)
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 27229c10cd6813e69ea6db69384312b1854b2b57)
2022-01-23 23:28:47 +01:00
Carbenium 5f296fb7c7 Core/InstanceScript: std::chrono-ify DoRespawnGameObject
(cherry picked from commit d7ff8c272ad016296e1eed5aae325e4e5058ddd8)
2022-01-23 23:09:27 +01:00
Carbenium 7c43afa471 Core/Utilities: Add custom _days chrono literal
(cherry picked from commit d5de96e46bf52ccb2fffe01c0709f9238977a80e)
2022-01-23 23:08:21 +01:00
Carbenium b336ed8996 Build: Add WITH_LD_GOLD option to use gold linker on unix
gold is an ELF-only linker which has a better performance
than the default ld.

(cherry picked from commit 796e2b32e03e7b1a56e44bd4b8988f9156bbb026)
2022-01-23 23:07:56 +01:00
Peter Keresztes Schmidt 10f835b058 Common/Crypto: #ifdef out unnecessary locking code for OpenSSL 1.1+ (PR #25110)
(cherry picked from commit 7ea33120a03d70aaa856c2c66f183d684131746e)
2022-01-23 23:07:33 +01:00
jackpoz 699c9ed414 DB/SAI: Add new view vw_smart_scripts_with_labels that shows labels instead of numbers from smart_scripts table
(cherry picked from commit c164c257ae0586bdebb9b81ecb965d9d07eabfef)
2022-01-23 23:05:09 +01:00
jackpoz b327414abb Core/Misc: Code cleanup
Remove more unused code in UpdateTime class

(cherry picked from commit 6c4f71c84b292fd86da0d061d774a7f3629f6d85)
2022-01-23 22:49:21 +01:00
Trond B. Krokli cf94f4a8ed Scripts/Borean Tundra: duplicate comment text (#25102)
(cherry picked from commit ebb9e1b4de23a069e97d2c6134349935b8a47c59)
2022-01-23 22:49:11 +01:00
Carbenium ddeae5e7d2 tests: Add some basic tests for EventMap
(cherry picked from commit 7950275697c9d48781ad61cf3749e0392ee660bc)
2022-01-23 22:48:58 +01:00
Carbenium f837f28171 dep: Add catch2 unit test framework and wire it up
To enable the test suite, make sure to configure CMake with -DBUILD_TESTING=1 , since it is disabled by default. The catch2 dependency will be downloaded during configure time.

Also add a new target "tests-common", which includes unit tests for the "common" project. To finally run the tests use the "test" target.

CircleCI: Run unit tests
(cherry picked from commit 6a28ee7b2a4269aa7e43265d1cd0067537e3e883)
2022-01-23 22:48:35 +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 3c0ac7302f902d1811d2c215217a3d701f8b5b19)
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 6440c3bcac85a40de5c34aef1d8a8856966cc140)
2022-01-23 22:35:00 +01:00
Peter Keresztes Schmidt 3499f518b5 EventMap: Remove GetNextEventTime and GetTimer methods (PR #25092)
(cherry picked from commit 6ab9922171cf6e2877c39f503bcf987dd9faa898)
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 f1f251eb381bccc9164e29a81da9e013090543a4)
2022-01-23 22:19:24 +01:00
Carbenium c8a4cc8068 TaskScheduler: use randtime instead of custom implementation
(cherry picked from commit f773bf68e0f96a97b706f366da4071ba28060b04)
2022-01-23 22:18:14 +01:00
Giacomo Pozzoni 8735c5f511 Dep/Boost: Remove unused thread library (#25076)
(cherry picked from commit cf5babc302d43f903b444b97bfdb934545356da2)
2022-01-23 22:17:02 +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 00b16992f1ae3bf14ab5fe6366028a2b8648bfa0)
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 85b5b842ca6c05d4e51081e6c3282940a80f3761)
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 7032ee0bdb47c995dfd89bce3d5b6fad13ec6d73)
2022-01-23 21:51:47 +01:00
Giacomo Pozzoni 196a62c031 Dep/Boost: Set boost version to 1.67 on *nix and 1.70 on Windows (#25069)
(cherry picked from commit c54dc3ef9273378c55e0c17acef18de731a7f8eb)
2022-01-23 21:37:33 +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 <[email protected]>
(cherry picked from commit 5eb742ee6a892b684b0c4cbde9f02f838b8300e5)
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 896b68d5c297b06587645caebc98b704978ecaa7)
2022-01-23 21:36:03 +01:00
Peter Keresztes Schmidt dfc1f08bd8 Misc: Remove some unneeded/duplicated includes (#25051)
(cherry picked from commit ddf16ae4d9eff6e849618bb6c5a00603f26daa93)
2022-01-23 20:48:12 +01:00
Shauren cd0b301779 Nopch fix
(cherry picked from commit c0ade2e98fbc6cc129b4725d2216016f90996e8b)
2022-01-23 20:40:34 +01:00
Shauren 2b312c7bd2 Dep: Switch to boost process instead of old standalone version
(cherry picked from commit 524d16739861d0b2279e2270e319b0c77ec9b03b)
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 202fd41389973322f63186fd8e5a368fce3e1b04)
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 ce1e2c0f9b4f80e1fa5c448ee12fec43204a3634)
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 9fe6756cf26e916d69673879c31e09ee57ef6470
* + For SMSG_DEATH_RELEASE_LOC
G3D::Vector3 -> TaggedPosition<Position::XYZ>
+ removed non 3.3.5 packets

Co-authored-by: Peter Keresztes Schmidt <[email protected]>
Co-authored-by: Mogadischu <[email protected]>
Co-authored-by: Shauren <[email protected]>
(cherry picked from commit 9fe6756cf26e916d69673879c31e09ee57ef6470)
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 0072fa922db1642d720c545ccc2ac095c140f0ca)
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 6968e7a1a1d638cc43409e7ab5e96f2e4854fe69)
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 5eaff8a3bcc4a81ca27e19418f0c508966ad3c7f)
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 2d9c5979a6a6d9244f557ff5653694ce5b8f19a4)
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 f00ab389d60cd5c8ba44ec8c6a49369c70a95d8b)
2022-01-23 16:00:59 +01:00