Commit Graph

32895 Commits

Author SHA1 Message Date
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
TDB Release
d974800e9d TDB 335.20071 - 2020/07/15 TDB335.20071 2020-07-15 10:37:16 +00:00
Peter Keresztes Schmidt
202fd41389 Core/Misc: Replace boost::optional with std::optional (#25047)
C++17 is already mandatory, so it's a safe thing to do
2020-07-15 10:22:29 +02:00
Peter Keresztes Schmidt
ce1e2c0f9b Core/Util: Remove EventMap's non-std::chrono::duration based interface (#25049)
Closes #25012
2020-07-15 10:05:11 +02:00
NoName
9fe6756cf2 Core/PacketIO: Updated corpse related packet structures (#24922)
# Conflicts:
#	src/server/game/Entities/Player/Player.cpp
#	src/server/game/Handlers/MiscHandler.cpp
#	src/server/game/Handlers/QueryHandler.cpp
#	src/server/game/Maps/MapManager.cpp
#	src/server/game/Server/Packets/MiscPackets.cpp
#	src/server/game/Server/Packets/QueryPackets.h
#	src/server/game/Server/Protocol/Opcodes.cpp
#	src/server/game/Server/Protocol/Opcodes.h
#	src/server/game/Server/WorldSession.h

* + 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>
2020-07-14 23:15:33 +02:00
Peter Keresztes Schmidt
0072fa922d Scripts/World+Pet: Use std::chrono::duration overloads of EventMap (#25017)
Contributes to #25012
2020-07-14 21:15:15 +02:00
Peter Keresztes Schmidt
6968e7a1a1 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
2020-07-14 21:06:40 +02:00
Peter Keresztes Schmidt
5eaff8a3bc Scripts/Icecrown Citadel: Use std::chrono::duration overloads of EventMap (#25036)
Part 1: without gunship battle and Sindragosa

Contributes to #25012
2020-07-14 21:03:06 +02:00
Peter Keresztes Schmidt
2d9c5979a6 Scripts/Tempest Keep: Use std::chrono::duration overloads of EventMap (#25040)
Contributes to #25012
2020-07-14 20:50:37 +02:00
Peter Keresztes Schmidt
f00ab389d6 Scripts/Utgarde Keep: Use std::chrono::duration overloads of EventMap (#25039)
Contributes to #25012
2020-07-14 20:48:08 +02:00
Peter Keresztes Schmidt
88314660b6 Scripts/Magisters Terrace: Use std::chrono::duration overloads of EventMap (#25038)
Contributes to #25012
2020-07-14 20:47:10 +02:00