aboutsummaryrefslogtreecommitdiff
path: root/src/common
AgeCommit message (Collapse)Author
2022-01-26Core/ChatCommands: Add support for enum type arguments (PR #25242)Peter Keresztes Schmidt
(cherry picked from commit 5e40eb20e2789b86d4786d86b4bbb8ae83de5e1e)
2022-01-26Core/Warden: Warden refactors (PR #25235)Treeston
(cherry picked from commit 6116e5b38522ccfb00f6c941c75482e05b4c0799)
2022-01-26Core/Misc: Fix Windows 32 bits buildjackpoz
Close #25789 (cherry picked from commit 1cafd4ef74350cb3656917e8e033a5e21dcce193)
2022-01-26Core/CrashHandler: Skip logging stack trace of the thread writing the crash ↵Shauren
log, it was launched by windows with same context as crashing thread (cherry picked from commit dd34651f4d42ca598b2f1b2ed32e27b4742f4be7)
2022-01-26Core/CrashHandler: Remove logging function variation depending on crash ↵Shauren
reason and print directly to file, not to temporary buffer (cherry picked from commit c5e1b49e8c02386a0e9edf682692dc6d46cc862f)
2022-01-26Core/CrashHandler: NULL -> nullptrShauren
(cherry picked from commit 68fdfcaa507d06ce8e823e7848f4c58ef1e62732)
2022-01-26Core/CrashHandler: #ifdef cleanup to make VS not choke when parsing, fixed ↵Shauren
file being all red in editor (cherry picked from commit 39c5e03b749d44df346b8f37aed3eb898526365a)
2022-01-26Core/CrashHandler: Attempt to extract C++ exception object in uncaught ↵Shauren
exception hander (cherry picked from commit 83ed35fe62c16f5697f253a9a44bba7dcb83e80d)
2022-01-26Core/Common: Move old-style pointer+size HexStr methods to Trinity::Impl ↵Treeston
where they can't hurt anyone (cherry picked from commit 7b8b999516a824b0c417631a77f133eb47b8b2f4)
2022-01-26Core/Misc: Fix compile errors found with msvc /permissive-Shauren
(cherry picked from commit b3db50a3b41b2db209327387f59afa1c40532773)
2022-01-26Core/Metric: Require WITH_DETAILED_METRICS CMake flag for MMaps metricjackpoz
(cherry picked from commit 8ad6bd8a9ba45ef22ed0275fd402da17666d8522)
2022-01-24Core/Common: Merge TimeTrackerSmall with TimeTrackerCarbenium
(cherry picked from commit 228696bf80bcd55d35445cd24ae119020c310f88)
2022-01-24Core/Common: Add a std::chrono interface to TimeTrackerSmallCarbenium
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 e55516348dbabaa8c9d559426315f3f70967acaa)
2022-01-24Core/Misc: Fix static analysis issues (#25178)Giacomo Pozzoni
(cherry picked from commit 7cf122fc2a604bae77d0b935536c41ec9203e62d)
2022-01-24Core/Common: Allow config settings to be loaded as optional (PR #25137)Treeston
If the config setting is not present, returns the default without issuing a warning. (cherry picked from commit 5ad064976edfc931cdda6faffe723d7c3dfb0ae4)
2022-01-24Core/Metric: Add new metric in World::UpdateSessions()jackpoz
Add new metric about how long adding sessions took (cherry picked from commit 5cd93df9eec1d1b310916fefecc9282e02e9cf2d)
2022-01-24Core/Metric: Log detailed metrics about each opcode handler (#25153)Giacomo Pozzoni
* 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 8a2c79c850199a73fd431d04f83d6aa89733060d)
2022-01-24Core/Metric: Add new cmake option WITH_DETAILED_METRICS to enable more ↵Giacomo Pozzoni
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 36ef487a90d0d14c4da8ce7e19b5916b8b15056c)
2022-01-24Core/EventProcessor: std::chrono-ify the remaining public APICarbenium
(cherry picked from commit 1d8782e3566393f71fbc091de57c96a9a15972cb)
2022-01-24Core/EventProcessor: std::chrono-ify CalculateTimeCarbenium
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 92a02a5c8750913f596d7e3b58bf8439cb770c28)
2022-01-24Core/EventMap: Clarify documentation of ScheduleEventCarbenium
(cherry picked from commit 7865c1c197f4eb9165ef3ab26eb4f750a5b58960)
2022-01-24Core/EventMap: Unify semantics of DelayEventsCarbenium
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 4470b9122379dc846b322a441951a03913912b71)
2022-01-23EventMap: Change GetTimeUntilEvent to return std::chrono typesCarbenium
(cherry picked from commit 8cb35b0d5f1462387033e6bd2f99d0ea829fdcd8)
2022-01-23EventMap: Switch internal timer over to std::chrono typeCarbenium
Adds the EventMap::Update(Milliseconds time) overload (cherry picked from commit b9795e44824c7cab58445e4a72d2113ddb451caa)
2022-01-23Core/Crypto: c++17-ify crypto code cherry picked earlier that was downgraded ↵Shauren
to c++14
2022-01-23Core/Utilities: Add custom _days chrono literalCarbenium
(cherry picked from commit d5de96e46bf52ccb2fffe01c0709f9238977a80e)
2022-01-23Common/Crypto: #ifdef out unnecessary locking code for OpenSSL 1.1+ (PR #25110)Peter Keresztes Schmidt
(cherry picked from commit 7ea33120a03d70aaa856c2c66f183d684131746e)
2022-01-23Core/Metric: Add more metrics about World::Update() loop (#25098)Giacomo Pozzoni
* 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-23EventMap: Remove GetNextEventTime and GetTimer methods (PR #25092)Peter Keresztes Schmidt
(cherry picked from commit 6ab9922171cf6e2877c39f503bcf987dd9faa898)
2022-01-23TaskScheduler: use randtime instead of custom implementationCarbenium
(cherry picked from commit f773bf68e0f96a97b706f366da4071ba28060b04)
2022-01-23Core/Threads: Replace Boost TLS with C++11 one (#15782)Giacomo Pozzoni
* 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-23Misc: Use [[fallthrough]] attribute instead of comment to mark intentional ↵Peter Keresztes Schmidt
fallthroughs (#25054) Related: #25006 (cherry picked from commit 85b5b842ca6c05d4e51081e6c3282940a80f3761)
2022-01-23Core/Metric: Log Map::Update() times (#25067)Giacomo Pozzoni
* 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 5eb742ee6a892b684b0c4cbde9f02f838b8300e5)
2022-01-23Core/Time: Rename GetGameTime{System, Steady}Point methodsTreeston
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-23Nopch fixShauren
(cherry picked from commit c0ade2e98fbc6cc129b4725d2216016f90996e8b)
2022-01-23Dep: Switch to boost process instead of old standalone versionShauren
(cherry picked from commit 524d16739861d0b2279e2270e319b0c77ec9b03b)
2022-01-23Core/Misc: Replace boost::optional with std::optional (#25047)Peter Keresztes Schmidt
C++17 is already mandatory, so it's a safe thing to do (cherry picked from commit 202fd41389973322f63186fd8e5a368fce3e1b04)
2022-01-23Core/Util: Remove EventMap's non-std::chrono::duration based interface (#25049)Peter Keresztes Schmidt
Closes #25012 (cherry picked from commit ce1e2c0f9b4f80e1fa5c448ee12fec43204a3634)
2022-01-21Core/Misc: Fixed engrish in static_assert for EnumFlag and restrict ↵Shauren
DEFINE_ENUM_FLAG to enums only (with std::is_enum)
2022-01-19Core/Common: Replace ASSERT(false, "...") with ABORT_MSG("...")jackpoz
(cherry picked from commit 54c701cf0db81c0062e8c5020e07db18984d0ffa)
2022-01-19Core/Common: Add macro ASSERT_WITH_SIDE_EFFECTS to be used when asserting ↵jackpoz
conditions that have side effects (cherry picked from commit 49da3533cd4a0fcd8b2ac7ae0bf4b105f40f8c77)
2022-01-07Core/DataStores: Fixed a crash in db2 loader happening when trying to load ↵Shauren
additional localized strings from a db2 file newer than db2 for default worldserver locale
2022-01-06fixed indentation for cmake filesipriver
(cherry picked from commit a46d047f9466c6f16597755bb7c771a9d1a147f2)
2022-01-06Log number of Creatures and GameObject per map (#24809)Giacomo Pozzoni
* Shared/Metric: Allow to specify tags in metrics * Core/Metric: Log number of Creatures and GameObject per map * Apply feedback * Codestyle changes * Codestyle changes * Remove whitespace * Update Grafana dashboards to v7.0.3 * Fix missing filter on realm * Include Creatures and Gameobjects in Maps dashboard * Show instances with a different color (cherry picked from commit 4e1dbd1cf808c9cf1f310b6d498f7e304dfb4147)
2022-01-06Core/Networking: Switch to intrusive variant of MPSC queue to halve the ↵Shauren
number of memory allocations for packet sending (#24659) (cherry picked from commit f0060496f9c8c4a21c28552a95928f2d05e031a9)
2022-01-04Vmap: Introduce skipping of antiportals and unreachable mogp (#26331)killerwife
* Vmap: Introduce skipping of antiportals and unreachable mogp * Reduce differences with master branch * Update VMAP and MMAP versions * Update MMAPs version Co-authored-by: jackpoz <giacomopoz@gmail.com> (cherry picked from commit d5f1fefe7f6772b11e9fbb052bfd36be9bda98e2)
2022-01-04MapExtraction: Fix water height redundancy algorithm ignoring "no water" ↵killerwife
(#26324) * MapExtraction: Fix water height redundancy algorithm ignoring "no water" * Update MMAP_VERSION * Change map version Co-authored-by: jackpoz <giacomopoz@gmail.com> (cherry picked from commit 00da074109e713280264761eedfbf6e5dc7ef912)
2022-01-04Core/Maps: Change .map file version from FourCC to uint32 (#26326)Giacomo Pozzoni
(cherry picked from commit 42877e75e2a67514dfeb185661e4f397b6eb044a)
2022-01-04Core/MMAPs: Restore single slope angle of 55°jackpoz
Re-generating MMAPs IS required. Partially reverts 995a443da219ec773febd7dd29d18f3cefaa1f3b . Having 2 different slope angles of 55° and 85° created too many polygons to fit in the current mmtile structure. This caused some polygons to become disconnected from each other, creating the old "invisible walls" effect. Because of this and because of the performance hit when loading a mmtile caused by the increase of polygon numbers, this commit reverts the recent changes and sets by default the slope angle to 55°. Feel free to restore the previous behaviour by running .\mmaps_generator --maxAngle 85 --maxAngleNotSteep 55 , specifying the map id as number if a single map should have different slope values. This is the last commit that will change MMAPs version to force re-generating them. Any future change that will affect only the generation settings will be optional (but recommended). (cherry picked from commit 3947e4cb57d4c6adb78cd3cb52718bb88add91fc)
2022-01-04Core/MMAPs: Fix small steps being considered as NAV_AREA_GROUND_STEEPjackpoz
(cherry picked from commit 3ac1992afbeb1cd7669b300b8ee4131d39f35595)