Commit Graph

64 Commits

Author SHA1 Message Date
Treeston
c16d461e16 Core/Util: Redesign SmartEnum to properly work for large enums (>64 entries) and play nice with IDEs (PR #22768) 2018-11-11 17:52:41 +01:00
Treeston
f7ca0877a3 338e8ba follow-up (more constexpr) 2018-10-26 17:42:29 +02:00
Treeston
338e8ba0fe Core/Misc: Partial merge of 3.3.5-dbedit:
- Added SmartEnum.h for enum iteration, stringification, and more, courtesy of krabicezpapundeklu/smart_enum
- Moved a bunch of enums in SharedDefines.h to the new system
- Miscellaneous utility methods ported
2018-10-26 14:43:22 +02:00
Treeston
ac253e1e41 cleanup unused variable error (2a607e6 follow-up) 2018-09-27 15:59:36 +02:00
Treeston
2a607e647f Core/Misc: A few more advstd imports from C++17 2018-09-27 14:45:13 +02:00
Treeston
f27284594b [3.3.5] Core/Chat: Unify chat hyperlink parsing (PR #22417)
- Validate most link properties all the time
- If enabled, also validate link text (needs locale)
- Instead of blocking the entire message, sanitize it
- Apply filtering to DND/AFK messages. Closes #22399
2018-09-13 00:11:27 +02:00
Treeston
66a87c4642 Scripts/Commands: New argument parsing methodology (PR #22363)
- Detect the arguments accepted by the command handler
- Tokenize out those arguments automatically and feed them to the handler
- Unmatched rest of the string can be accepted by trailing char const* or CommandArgs*
2018-09-07 20:31:04 +02:00
Keader
4d9c36c8c3 Utilities/EventProcessor: Added a overload to AddEventAtOffset accept rand time 2018-08-26 01:02:58 -03:00
Treeston
64a61e03ab Common/Containers: Eliminate a edge case that could potentially lead to object invalidation. 2018-07-19 11:59:36 +02:00
Treeston
2ef9d301f0 Misc: Pass std::chrono types by value everywhere. 2018-07-18 17:48:15 +02:00
Treeston
2a84562dc8 Core/Movement: Replace old TargetedMovementGenerator into ChaseMovementGenerator and FollowMovementGenerator, full rewrite for both.
- Chase to angle is now functional. Pets use this to chase behind the target. Closes #19925.
- Chase to arbitrary range interval works. Not used anywhere, but you can technically make hunter-like mobs.
- Pets now follow the hunter cleanly and without stutter stepping. Also fix some other things. Closes #8924.
2018-04-06 18:09:55 +02:00
Treeston
d02f481d9a Core/Movement: Creatures' idle movement generator can no longer override player mover control.
Tagging #20310, partial fix.
2018-02-12 01:50:36 +01:00
Shauren
b2b4f9d1e4 Core/Misc: Added compatibility layer for boost 1.66 and future std:: networking stuff
* Based on work done by @dimiandre in PR #21173

Closes #21171
Closes #21173

(cherry picked from commit dfd2660a85)
2018-01-06 12:30:28 +01:00
tkrokli
f6b6f57a6d Update copyright note for 2018
Best wishes for the new year.
2018-01-01 01:55:29 +01:00
Naios
364fde5213 Core/Utilities: Globally enable C++14 chrono literals
* Usable like 12s, 15m...
2017-12-17 20:22:34 +01:00
Treeston
76a4c7d974 Some misc streamlining/cleanup:
- std::chrono overloads for SummonCreature
- Removed misleading const qualifier from SummonCreature (it wasn't being honored)
- Rename parameters of SummonCreature to follow convention
- EventProcessor has a new method (AddEventAtOffset) that adds an event...at an offset. Genius.

PS: Hi there Keader.
2017-11-30 20:55:53 +01:00
Aokromes
59e94fd9bb Misc: More cleanup 2017-11-25 02:39:27 +01:00
Naios
5077c8289c Dep/fmt: Update fmt to fmtlib/fmt@5f39721c0a
* Rename cppformat to fmt in the PackageList.txt
2017-10-16 21:35:01 +02:00
Shauren
d24ce1739a Core/Misc: Util changes
* Move IteratorPair to its own header
* Add AsUnderlyingType function to cast enum value to its underlying type (avoids repeating std::underlying_type everywhere)

(cherry picked from commit fdd9227b23)
2017-07-29 15:04:45 +02:00
Treeston
ac50034df7 Utilities/Containers: New RandomResize implementation with guaranteed asymptotic linear time for all container types (#19974) 2017-07-06 19:51:16 +02:00
Shauren
533e082e80 Nopch fix 2 2017-07-01 20:56:41 +02:00
Treeston
e2a1ccd118 [3.3.5] Combat/Threat rewrite - prep & refactor (#19966)
* Combat/Threat rewrite (PR #19930) prep work. Mostly refactors, and a compatibility layer on ThreatManager/HostileReference that allows scripts to be changed already.
2017-07-01 20:18:02 +02:00
ariel-
85a7d5ce9a Core: ported headers cleanup from master branch 2017-06-19 23:20:06 -03:00
ariel-
8188511759 Core/Utils: restored previous behaviour of RandomResize 2017-06-05 03:45:24 -03:00
Shauren
abac1b34bc Core/Utilities: Rename RandomResizeList->RandomResize as it is no longer restricted to a list
* Also fix gcc build

(cherry picked from commit f097e341f5)
2017-06-03 02:27:48 -03:00
Shauren
ff39c27104 Core/Utils: Changed all Trinity::Containers utilities to work on all container types (including arrays where it makes sense)
* Added MapGetValuePtr to allow writing `if (Val* v = MapGetValuePtr(map, key))`
* Added utility IteratorPair class with begin/end methods and MapEqualRange for use in range for syntax with multimaps

(cherry picked from commit a1e3b54e07)
2017-06-03 02:20:50 -03:00
Shauren
9ec2a82cac Core/Misc: Prefix all preprocessor defines from CompilerDefs with TRINITY_ to avoid conflicts (PLATFORM_WINDOWS is used/defined by CascLib)
(cherry picked from commit b8db320bf1)
2017-05-23 18:46:44 +02:00
Shauren
1787718e25 Core/Random: Remove no longer needed hack for VS 2013
(cherry picked from commit 59fe908744)
2017-04-11 14:31:03 -03:00
ariel-
c69a7d1223 Core/Auras: reworked multiplicative AuraEffects calculation
- Splitted containers for flat modifiers and pct modifiers, as they now have different handling
- Amount is now multiplied only on apply; on unapply, iterate through auras and reset the counter
- Fixes many cases of rounding error due to applying/unapplying of small factors
- Allows amounts to be zeroed (ie with an AuraEffect of amount -100)
- Do a partial revert of 6dc37a9add, auras should update amounts only for items allowed (ie no more giving crit to a sword while having an axe in the other hand and being Poleaxe spec'd)
- SPELL_AURA_MOD_SCALE now scales additively, rather than multiplicatively (checked in sniffs)

Closes #18687
2017-02-27 14:24:20 -03:00
Shauren
bf2121680f Core/Misc: Added regex compatibility layer to fall back to boost::regex for really old compiler
(cherry picked from commit b6f1f8405f)
2017-02-06 21:12:27 -03:00
xinef1
c6060dd0c5 Core/Spells: Remade trajectory target selection (#19048)
* Remade trajectory target selection
* Added possibility to apply conditions to trajectory spells
* Properly recalculate delay time if CMSG_UPDATE_PROJECTILE_POSITION is received
2017-02-05 21:10:15 -03:00
ariel-
077b5aec9e Core/Util: avoid one useless copy when adding stuff into a HookList 2017-01-23 17:00:35 -03:00
tkrokli
6a51a88767 Update Copyright notice for 2017
Happy new year!
2017-01-02 19:52:45 +01:00
DDuarte
7ee6afe885 Dep: Update fmt (cppformat) to 3.0.1 7fa8f8fa48
Also renamed cppformat to fmt
2016-12-29 22:38:46 +00:00
ariel-
20cdf1a830 Core/Utils: build fix 2016-11-14 02:36:33 -03:00
ariel-
cbb5c073ce Core/ScriptMgr: use vector instead of list to contain Spell and Aura scripts and hooks 2016-11-14 02:05:51 -03:00
treeston
2174c5d7dd Common/Utilities: More std::chrono overloads for EventMap. Specifying 2 std::chrono types now gives you a random (to milliseconds) time in that interval (inclusive) for (Re)ScheduleEvent. 2016-09-13 20:02:09 +02:00
Naios
da3c03a48b Core/Define: Remove the conditional macro for constexpr.
* Not needed anymore since the requirements were raised to MSVC 2015.
2016-08-29 22:03:48 +02:00
Naios
68015599dc Core/Common: Converted the common library to a shared library.
* There is still the possibility to static link against common.

(cherry picked from commit 501fd9b502)

# Conflicts:
#	src/common/Collision/Management/MMapManager.h
#	src/common/Collision/VMapTools.h
#	src/common/Common.cpp
#	src/common/Common.h
#	src/common/Cryptography/Authentication/PacketCrypt.h
#	src/common/Cryptography/Authentication/WorldPacketCrypt.h
#	src/common/Cryptography/HmacHash.cpp
#	src/common/Cryptography/HmacHash.h
#	src/common/Cryptography/SHA256.h
#	src/common/GitRevision.h
#	src/common/Utilities/Random.h
#	src/common/Utilities/Util.h
2016-08-08 18:00:32 +02:00
jackpoz
4170a9357c Common/Utilities: Reduce differences between 3.3.5 and 6.x branches
Code functionality shouldn't have been modified.
2016-08-06 16:28:46 +02:00
Shauren
caee7dcad5 Core/Utils: Added additional argument to Tokenizer class to make it behave like strtok - not returning empty tokens in case of multiple consecutive separators in input string
(cherry picked from commit dd1533b315)
2016-08-06 14:29:11 +02:00
jackpoz
206f08adbb Common/Threading: Reduce differences between 3.3.5 and 6.x branches
Code functionality shouldn't have been modified.
2016-08-04 23:44:55 +02:00
Naios
d9755c637c Core/EventProcessor: Check whether an event was aborted before aborting it.
* Fixes an assertion introduced in commit 1ad73212dc.
* Use itr = std::unordered_map<...>::erase for updating the iterator.
2016-07-03 20:52:50 +02:00
Naios
1ad73212dc Core/EventProcessor: Wait for non deletable events to get deletable.
* Immediate deletion caused issues with the SpellEvent,
  so we delete it at one of the next update ticks now.
* Only affects the unforced cancellation of events.
* Ref #16675
2016-07-03 00:22:23 +02:00
Shauren
0fbfa8ead0 Core/Containers: Warning fixes and RandomResizeList with predicate optimization 2016-05-24 18:51:31 +02:00
Naios
f50c4b71a1 Core/Game: Remove some unnecessary export macros 2016-05-10 19:22:22 +02:00
Naios
5b15b714ab Core/Utilities: Inherit env vars when starting external processes 2016-04-30 01:06:00 +02:00
Shauren
5bbc58f32d Core/Misc: Use steady_clock instead of system_clock for calculating ms timers. This makes update diffs immune to systemwide time changes
(cherry picked from commit 406ac4f4b4)
2016-04-26 18:15:10 +02:00
joschiwald
9e371b766c Core/Utils: replaced std::random_shuffle with our own implementation using SFMT random generator 2016-04-24 01:15:56 +02:00
Naios
2698d1ff48 Core/Common: Fix a std::string -> char* -> std::string conversion
* Thanks jackpoz for noticing
2016-04-23 18:13:42 +02:00