Commit Graph

32905 Commits

Author SHA1 Message Date
Carbenium
e877f988d1 tests/EventMap: Test for event past it's execution time
With the switch to std::chrono return type of GetTimeUntilEvent
we don't run into an overflow condition which happend with the previous
uint32 return value if the events scheduled execution time is in the past.
Test for this case.
2020-07-26 23:20:11 +02:00
Carbenium
8cb35b0d5f EventMap: Change GetTimeUntilEvent to return std::chrono types 2020-07-26 23:20:11 +02:00
Carbenium
b9795e4482 EventMap: Switch internal timer over to std::chrono type
Adds the EventMap::Update(Milliseconds time) overload
2020-07-26 23:20:11 +02:00
Carbenium
40efda9726 Scripts/Kalimdor: Use std::chrono overload of Creature::DespawnOrUnsummon 2020-07-26 22:23:51 +02:00
Carbenium
5832790428 Scripts/World+Outland+Spells: Use std::chrono overload of Creature::DespawnOrUnsummon 2020-07-26 22:21:59 +02:00
Carbenium
fc9e7226c0 Scripts/Northrend: Use std::chrono overload of Creature::DespawnOrUnsummon 2020-07-26 22:21:09 +02:00
Carbenium
c39eb9b504 Core/Misc: Use std::chrono overload of Creature::DespawnOrUnsummon 2020-07-26 22:17:36 +02:00
Carbenium
d1a39a2ebf Scripts/EasternKingdoms: Use std::chrono overload of Creature::DespawnOrUnsummon 2020-07-26 22:12:24 +02:00
Treeston
35411e5ed9 how does VC++ never catch these? 5e36bf7 follow-up
(No more witty one-liners. Let me go to bed please.)
2020-07-26 05:33:47 +02:00
Treeston
4f570e5d08 Core/Authserver: Auth cleanup phase 1b, the "I didn't hit Stage All" commit. Sorry. (5e36bf7 follow-up) 2020-07-26 05:20:41 +02:00
Treeston
5e36bf7c67 Core/Authserver: Auth cleanup phase 1a, the "stuff I ran across while making phase 2" commit.
- Did you know BigNumber quietly assumes every byte array it gets is little-endian, even though openssl bignums use big-endian? Now you do!
- In entirely unrelated news, make the above behavior explicit through a default-true boolean, same as existing GetBytes derivatives.
- Also, if you are in the enlightened openssl 1.1 crowd, there's no more endian wrangling involved, because openssl now does all of that for us. Progress!
2020-07-26 05:15:43 +02:00
Treeston
210176fd91 Core/Authserver: Authserver cleanup (PR#25093)
- Fix a handful of 1/256 bugs with most significant byte zero in BigNumber
- Get rid of (most of) the C-style arrays in authserver
- CryptoRandom as a unified source for cryptographic randomness
- Bring our other crypto APIs into 2020
- BigNumber usability improvements
- Authserver is now actually readable as a result of all of the above
2020-07-26 01:53:34 +02:00
Carbenium
cdaf890af4 Core/EscortAI: std::chrono-ify SetPauseTimer 2020-07-25 23:45:01 +02:00
Carbenium
4b9fdc5d3d Core/EscortAI: std::chrono-ify AddWaypoint 2020-07-25 23:45:01 +02:00
Carbenium
f5076112cb Core/ScriptedAI: std::chrono-ify DoSpawnCreature 2020-07-25 23:16:04 +02:00
Carbenium
27229c10cd Core/BossAI: Remove _DespawnAtEvade(uint32, Creature*) overload
Use _DespawnAtEvade(Seconds,  Creature*) instead
2020-07-25 23:11:10 +02:00
Carbenium
d7ff8c272a Core/InstanceScript: std::chrono-ify DoRespawnGameObject 2020-07-25 23:10:14 +02:00
Carbenium
d5de96e46b Core/Utilities: Add custom _days chrono literal 2020-07-25 20:34:55 +02:00
Carbenium
796e2b32e0 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.
2020-07-25 18:00:20 +02:00
Peter Keresztes Schmidt
7ea33120a0 Common/Crypto: #ifdef out unnecessary locking code for OpenSSL 1.1+ (PR #25110) 2020-07-25 03:44:38 +02:00
jackpoz
690a095b94 DB/SAI: Replace functions with case in the view in vw_smart_scripts_with_labels to about permission issues 2020-07-24 23:40:14 +02:00
jackpoz
5b46ed3ff7 DB/Misc: Update view and functions to work when importing TDB 2020-07-24 19:57:06 +02:00
jackpoz
c164c257ae DB/SAI: Add new view vw_smart_scripts_with_labels that shows labels instead of numbers from smart_scripts table 2020-07-24 17:55:26 +02:00
jackpoz
6c4f71c84b Core/Misc: Code cleanup
Remove more unused code in UpdateTime class
2020-07-24 13:59:51 +02:00
Trond B. Krokli
ebb9e1b4de Scripts/Borean Tundra: duplicate comment text (#25102) 2020-07-24 13:11:48 +02:00
Carbenium
7950275697 tests: Add some basic tests for EventMap 2020-07-24 12:00:54 +02:00
Carbenium
6a28ee7b2a 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
2020-07-24 12:00:54 +02:00
Giacomo Pozzoni
3c0ac7302f 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
2020-07-24 00:30:16 +02:00
TheGuyDanish
880a7363fa Updated CONTRIBUTING.md to fix broken links.
Fixes #25094

(cherry picked from commit facbf8cba8)
2020-07-23 14:14:29 +02:00
Giacomo Pozzoni
6440c3bcac 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
2020-07-22 19:32:29 +02:00
Peter Keresztes Schmidt
6ab9922171 EventMap: Remove GetNextEventTime and GetTimer methods (PR #25092) 2020-07-22 16:09:32 +02:00
Treeston
6bdba191b5 Core/Authserver: Some safeguards in case anyone (read: me) tweaks these files in the future. 2020-07-22 14:54:17 +02:00
Carbenium
f1f251eb38 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.
2020-07-22 01:19:59 +02:00
Shauren
f50575ca77 Core/PlayerDump: Fixed overwriting cached character data on .pdump load when importing a character with duplicate name 2020-07-21 19:57:15 +02:00
Carbenium
f773bf68e0 TaskScheduler: use randtime instead of custom implementation 2020-07-21 15:52:12 +02:00
Shauren
0b616e4865 Core/Players: Use original proc target to update weapon skills, fixes ranged weapon skill gains 2020-07-20 17:42:16 +02:00
Giacomo Pozzoni
cf5babc302 Dep/Boost: Remove unused thread library (#25076) 2020-07-19 17:43:09 +02:00
Giacomo Pozzoni
00b16992f1 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
2020-07-18 21:34:45 +02:00
Peter Keresztes Schmidt
e6e5775be8 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
2020-07-18 20:43:16 +02:00
Peter Keresztes Schmidt
85b5b842ca Misc: Use [[fallthrough]] attribute instead of comment to mark intentional fallthroughs (#25054)
Related: #25006
2020-07-18 20:42:28 +02:00
Giacomo Pozzoni
7032ee0bdb 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
2020-07-18 18:34:45 +02:00
Giacomo Pozzoni
c54dc3ef92 Dep/Boost: Set boost version to 1.67 on *nix and 1.70 on Windows (#25069) 2020-07-18 18:05:25 +02:00
Giacomo Pozzoni
5eb742ee6a 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>
2020-07-18 00:52:01 +02:00
Shauren
83e0a1b944 Core/PacketIO: Fix broken CMSG_RESURRECT_RESPONSE structure after 9fe6756cf2 2020-07-17 21:06:45 +02:00
Treeston
896b68d5c2 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
2020-07-17 17:05:55 +02:00
Shauren
235cdc2fd5 SQL: Rename old sql to resolve naming conflict between branches 2020-07-16 21:43:52 +02:00
Peter Keresztes Schmidt
ddf16ae4d9 Misc: Remove some unneeded/duplicated includes (#25051) 2020-07-16 14:14:01 +02:00
Shauren
c0ade2e98f Nopch fix 2020-07-15 19:55:04 +02:00
Shauren
524d167398 Dep: Switch to boost process instead of old standalone version 2020-07-15 19:33:12 +02:00
Shauren
1405760f31 Core/Battlefield: Fixed startup crash when compiled without scripts 2020-07-15 15:55:31 +02:00