Aokromes
2f0ed35c26
Common/Metric: Fix build with PERFORMANCE_PROFILING and/or WITHOUT_METRICS
...
(cherry picked from commit 91cda8b1cd )
2022-02-27 20:08:41 +01:00
Shauren
0b846b2107
Build: Partial support for clang-cl
2022-02-16 20:22:15 +01:00
Shauren
f6e72494f1
Dep: Raise required boost versions to 1.73 on windows and 1.71 on linux and remove compatibility code for unsupported versions
2022-02-14 12:43:57 +01:00
Shauren
439b027d48
Core/Misc: Cleanup unused includes
2022-02-13 15:07:00 +01:00
Shauren
6c399c372e
Core/Misc: common PCH tuning
2022-02-11 23:24:54 +01:00
Shauren
0f40af64e6
Core/Utils: Corrected included files in Containers.h
2022-02-11 22:14:47 +01:00
Shauren
cbcd149ce5
Core/Misc: Explicitly include required headers instead of relying on them to be included by other headers
2022-02-11 14:33:35 +01:00
Shauren
f4cf0ecad6
Core/Utils: Made bool conversion operator of FlagsArray explicit
2022-02-10 12:24:47 +01:00
Shauren
5c417bec98
Core/Utils: Extract template base class out of flag128
2022-02-09 23:11:03 +01:00
Treeston
378691aaa2
[3.3.5] Core/ChatCommands: Show error messages from argument parsers (PR #25443 )
...
(cherry picked from commit 75f9e7396e )
2022-02-05 23:42:15 +01:00
Winfidonarleyan
9fe5a7297d
Dep/fmt: update fmt library to 7.0.3
...
(cherry picked from commit 9d96e4852a )
2022-02-05 22:50:43 +01:00
Treeston
013c9b2cb7
Core/ChatCommands: make ExactSequence more readable
...
(cherry picked from commit feaaa595ca )
2022-02-05 21:29:53 +01:00
Treeston
e0e3bae82c
Core/Authserver: Removal of sha_pass_hash, compatibility fields, and everything that uses them (PR #25156 )
...
(cherry picked from commit bcdbdd6f23 )
2022-02-05 13:29:21 +01:00
Treeston
da8a66a05e
Common/Util: Trinity::StringTo<double> support (PR #25364 )
...
(cherry picked from commit f45aa5cac1 )
2022-02-04 23:50:25 +01:00
Treeston
0d54a5ecb4
Core/Misc: Add support for custom link colors. Clean-up hyperlink validation, no more long-ass defines. Remove UI.ShowQuestLevelsInDialogs.
...
(cherry picked from commit eaf8fa75a1 )
2022-02-04 23:49:59 +01:00
Treeston
c4b287c7bf
Core/Misc: DBC std::array refactors, and |Hachievement unit tests
...
(cherry picked from commit 3fbbe7cfbe )
2022-02-04 23:37:29 +01:00
Shauren
7cd98cd7d2
Core/Config: Restore ability to load additional config files for custom scripts
...
(cherry picked from commit c1e4cfd07e )
2022-02-04 13:05:06 +01:00
Giacomo Pozzoni
99ee958e0a
Core/Misc: Fix issues reported by static analysis ( #25351 )
...
* Core/Misc: Fix issues reported by static analysis
* Core/Vmaps: Code cleanup after e777161888
(cherry picked from commit cfc8f7b442 )
2022-02-04 12:18:15 +01:00
Treeston
1303ca0e7e
Common/Utilities: Make StringTo<bool>'s signature match that of the other integral types, making for easier templating. Default behavior unchanged.
...
(cherry picked from commit f54cec4db7 )
2022-02-04 12:06:26 +01:00
Treeston
9f97fdd31a
Core/Common: Tokenizer -> Trinity::Tokenize (PR: #25327 )
...
(cherry picked from commit 534a2388b7 )
2022-02-04 00:27:14 +01:00
Treeston
6e45c371c4
Common/Utilities: Properly read std::from_chars documentation and check for out_of_range errors.
...
(cherry picked from commit 7478c2c65a )
2022-02-04 00:27:14 +01:00
Treeston
be9dadc189
Common/Utilities: Centralize string -> T conversion in StringConvert.h (PR #25335 )
...
(cherry picked from commit cd30e0b86c )
2022-02-04 00:27:13 +01:00
Treeston
03b5c17863
Common/Utilities: Move EnumUtils' implementation struct from Trinity::Impl to Trinity::Impl::EnumUtilsImpl. This avoids confusing name clashes for other implementations in sub-namespaces of Trinity::Impl.
...
(cherry picked from commit 91744de316 )
2022-02-04 00:27:12 +01:00
Treeston
0473beff2b
Core/Misc: std::string -> std::string_view in a bunch of places, notably chat commands and Util.h
...
(cherry picked from commit a41bbd9ad9 )
2022-02-04 00:27:12 +01:00
Shauren
015cee5f27
Core/Networking: Initialize MPSCQueueIntrusive dummy node without undefined behavior
...
(cherry picked from commit e1289805fc )
2022-02-04 00:27:11 +01:00
Shauren
4064b22dd7
Core/Util: Added another template utility - find_type_if
...
* Trinity::find_type_if - Find a type matching predicate in a given template parameter pack
(cherry picked from commit 84a87d87bf )
2022-02-03 00:24:33 +01:00
Shauren
c37984fc6a
Core/Util: Added new utilities
...
* Trinity::new_from_tuple - same as std::make_from_tuple except allocates object using "new"
* Trinity::is_tuple - detects whether given type is a tuple specialization
* advstd::type_identity - C++20 std::type_identity
(cherry picked from commit 7c08fc863a )
2022-02-03 00:24:10 +01:00
Peter Keresztes Schmidt
3c82863c52
Core/ChatCommands: Check whether a passed numeric enum value is valid ( #25285 )
...
(cherry picked from commit 4286e7aa02 )
2022-02-03 00:18:48 +01:00
Peter Keresztes Schmidt
3923650aeb
Core/ChatCommands: Add support for enum type arguments (PR #25242 )
...
(cherry picked from commit 5e40eb20e2 )
2022-01-26 22:13:06 +01:00
Treeston
319ddd9bcd
Core/Warden: Warden refactors (PR #25235 )
...
(cherry picked from commit 6116e5b385 )
2022-01-26 19:42:11 +01:00
jackpoz
35755ba343
Core/Misc: Fix Windows 32 bits build
...
Close #25789
(cherry picked from commit 1cafd4ef74 )
2022-01-26 18:48:08 +01:00
Shauren
fbcf269207
Core/CrashHandler: Skip logging stack trace of the thread writing the crash log, it was launched by windows with same context as crashing thread
...
(cherry picked from commit dd34651f4d )
2022-01-26 18:47:44 +01:00
Shauren
cc0affa523
Core/CrashHandler: Remove logging function variation depending on crash reason and print directly to file, not to temporary buffer
...
(cherry picked from commit c5e1b49e8c )
2022-01-26 18:47:16 +01:00
Shauren
259bbf1e04
Core/CrashHandler: NULL -> nullptr
...
(cherry picked from commit 68fdfcaa50 )
2022-01-26 18:46:56 +01:00
Shauren
473f3db0ab
Core/CrashHandler: #ifdef cleanup to make VS not choke when parsing, fixed file being all red in editor
...
(cherry picked from commit 39c5e03b74 )
2022-01-26 18:46:43 +01:00
Shauren
7893ac94a0
Core/CrashHandler: Attempt to extract C++ exception object in uncaught exception hander
...
(cherry picked from commit 83ed35fe62 )
2022-01-26 18:43:31 +01:00
Treeston
fa8ab6eb98
Core/Common: Move old-style pointer+size HexStr methods to Trinity::Impl where they can't hurt anyone
...
(cherry picked from commit 7b8b999516 )
2022-01-26 14:36:42 +01:00
Shauren
58d199db48
Core/Misc: Fix compile errors found with msvc /permissive-
...
(cherry picked from commit b3db50a3b4 )
2022-01-26 14:20:13 +01:00
jackpoz
7ea19b675f
Core/Metric: Require WITH_DETAILED_METRICS CMake flag for MMaps metric
...
(cherry picked from commit 8ad6bd8a9b )
2022-01-26 14:07:00 +01:00
Carbenium
8809d54ca2
Core/Common: Merge TimeTrackerSmall with TimeTracker
...
(cherry picked from commit 228696bf80 )
2022-01-24 21:34:36 +01:00
Carbenium
35e0002df3
Core/Common: Add a std::chrono interface to TimeTrackerSmall
...
New methods:
TimeTrackerSmall(Milliseconds expiry);
void Update(Milliseconds diff);
void Reset(Milliseconds expiry)
Milliseconds GetExpiry() const
Removed methods:
int32 GetExpiry() const
Also add basic unit tests.
Core/Scripts: Use std::chrono interface of TimeTrackerSmall
(cherry picked from commit e55516348d )
2022-01-24 21:25:47 +01:00
Giacomo Pozzoni
61bf51874d
Core/Misc: Fix static analysis issues ( #25178 )
...
(cherry picked from commit 7cf122fc2a )
2022-01-24 20:21:25 +01:00
Treeston
23ad14526c
Core/Common: Allow config settings to be loaded as optional (PR #25137 )
...
If the config setting is not present, returns the default without issuing a warning.
(cherry picked from commit 5ad064976e )
2022-01-24 15:08:46 +01:00
jackpoz
f220e46c50
Core/Metric: Add new metric in World::UpdateSessions()
...
Add new metric about how long adding sessions took
(cherry picked from commit 5cd93df9ee )
2022-01-24 13:12:21 +01:00
Giacomo Pozzoni
8350985975
Core/Metric: Log detailed metrics about each opcode handler ( #25153 )
...
* Core/Metric: Log detailed metrics about each opcode handler
* Add new panel to Performance profiling dashboard and use fill(0) instead of fill(none)
* Add new settings Metric.Threshold.* to be able to specify the minimum threshold for the specified metrics
* Update dashboard
* Change thresholds to be required to send the metrics. A TC_METRIC_DETAILED_TIMER metric with an expected threshold not configured will be ignored
* Use typedef Milliseconds
* Refresh realms on load
(cherry picked from commit 8a2c79c850 )
2022-01-24 13:02:38 +01:00
Giacomo Pozzoni
21e9fac8bd
Core/Metric: Add new cmake option WITH_DETAILED_METRICS to enable more metrics ( #25136 )
...
* Core/Metric: Add new cmake option WITH_DETAILED_METRICS to enable more metrics
Add more detailed metrics in World::UpdateSessions().
* Attempt using C++17 features
* Fix cmake typo
Co-authored-by: NoName <322016+Faq@users.noreply.github.com >
* Fix build with WITHOUT_METRICS
* Update Performance profiling dashboard with Update sessions panel
* Add panel to show sessions with update time above 100 ms
* Move legends on the right and add max update time diff in the legend of sessions
Co-authored-by: NoName <322016+Faq@users.noreply.github.com >
(cherry picked from commit 36ef487a90 )
2022-01-24 12:21:36 +01:00
Carbenium
a7cbb16229
Core/EventProcessor: std::chrono-ify the remaining public API
...
(cherry picked from commit 1d8782e356 )
2022-01-24 12:06:56 +01:00
Carbenium
eeffb310de
Core/EventProcessor: std::chrono-ify CalculateTime
...
uint64 CalculateTime(uint64 t_offset) has been replaced with Milliseconds CalculateTime(Milliseconds t_offset).
Also add the std::chrono-ified overload void AddEvent(BasicEvent*, Milliseconds, bool)
(cherry picked from commit 92a02a5c87 )
2022-01-24 12:00:35 +01:00
Carbenium
da17942af9
Core/EventMap: Clarify documentation of ScheduleEvent
...
(cherry picked from commit 7865c1c197 )
2022-01-24 00:01:38 +01:00
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