* It was wasting CPU power as cell-level locking is not needed.
* Future multithreading will be on map-level.
* CellLock was just a 'proxy' between Cell and CellPair and in some cases carried redundant data.
* Some minor cleanup in Cell::Visit/Map::Visit.
* Also replace check/take functions for runes by single 2 mode function
* Implement proper check for dead runes case
* Implement proper rune selection for Aura::HandleAuraConvertRune
* New CreatureAI::SummonedCreatureJustDie called for owner at temporary summoned creature die.
* New EVENT_T_SUMMONED_JUST_DIE (25) for proccess CreatureAI::SummonedCreatureJustDie event
* New EVENT_T_SUMMONED_JUST_DESPAWN (26) for proccess CreatureAI::SummonedCreatureJustDespawn event
* Some code cleanups.
Original way have many reported problems.
New also maybe not allways working but less problematic.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
All non generic spells expected to be cancellable and part of buff abilities.
(based on commit 7f5310b from insider42/mangos).
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
After sql update apply new and old charactrs for affected class/race pairs
will receive spell at first/next login.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
Also move calculation to function. And avoid use operator[] for access to per-area base xp table data.
* This allow pet use own speed (and all speed affects appiedto pet itself) in combat.
* Apply this speed synhronization to minipets/guardians also.
* Also rename Unit::SetSpeed to SetSpeedRate as more close to real functionality.
Not send MOVEMENTFLAG_FORWARD (even if expected). As result npc will not run in same position when npc becomes visible at client side.
Signed-off-by: NoFantasy <nofantasy@nf.no>
* Re-number enums by function groups and use where possible new defined masks in code instead raw enum |-lists.
* Avoid use movement generator generic state markers like UNIT_STAT_CONFUSED for mark movement stoped.
Add special shadow UNIT_STAT_CONFUSED_MOVE/etc states for like use.
UNIT_STAT_CONFUSED in like case will be safe expect use for normal checks confused state presence
And UNIT_STAT_CONFUSED_MOVE for check real move in this state
This commit specially made indeepndent from other changes for show problem
in my prev. commit where 2 new movegens added.
For proper call Initilize/Finilize/Reset/Interrupt/Update functions _important_
set second template arg in MovementGeneratorMedium< T, D >
in _last_ class in class chain. In other case in chase/follow instead TargetedMovementGeneratorMedium
In other cases will called referenced functions from TargetedMovementGeneratorMedium
instead proper subclasses.