* Fix usage of Gnomish Universal Remote (ItemID: 7506)
https://classic.wowhead.com/item=7506/gnomish-universal-remote
Will now apply correct random spells :
Spells : 8345 - Control the machine | 8346 = Malfunction the machine (root) | 8347 = Taunt/enrage the machine
* Fix Spells "Hate to Zero"
https://classic.wowhead.com/spell=9204/hate-to-zero#see-also-other
SpellIDs : 9204 | 20538 | 26569 | 26637
* Upgrade Unit::RemoveAllAurasOnEvade method
As specific list of spell used when evading to remove all auras except some special auras
* Fix npc_escortAI - Properly despawn pets that act as escorts
Thanks to caa548ca7d
* Fix autoshot not reinstating 0.5 sec cooldown on stopping (adapt Unit::IsNonMeleeSpellCasted method)
Source : 20602b3ead
This fix needed to rewrite and add more stuff to be fully ported from CMangos.
* Fix build compile
Implement "IsClientControlled()" missing
Rename some defines to match CMangos ones which are more relevant and would facilitate backports.
Rewrite Waypoint related commands (c2612)
Toggle the commands .wp add .wp modify and .wp show to be able to work with waypoints from creature_movement_template
Technical changes:
* Move Path Selection to WaypointManager
* Set visual waypoints to be summoned npcs
Remove .npc addmove command to add a waypoint. (c2619)
For this .wp add command is expected to be used
Remove unneeded functions from WaypointManager (c2620)
Waypoint Commands: Improve export command, remove import command (c2621)
* Also finally drop the wpguid columns from creature_movement[_template]
* Also remove all static spawns of id=1 (they are usually waypoints from the old system)
* Fix a minor bug in WaypointManager than can result in a crash if bad params are passed
Waypoint-Commands: Prefer current path's movement for handling (c2626)
WaypointMovement: Allow External sources to load waypoints (with different path ids) (c2627)
* Add SetExternalWaypointTable(..) function to ScriptMgr.h scope to be able to define from which table external waypoints are loaded
* Add AddWaypointFromExternal(..) function to ScriptMgr.h scope to load points into WaypointManager
* Expand MotionMaster::MoveWaypoint function to use source and pathId for specifying which path to load
* Expand MotionMaster::MoveWaypoint function to use some overwrite information for "entry".
This will be helpfull to have one path for mobs with different entry (ie ally/horde npcs with same behaviour)
* For externally loaded waypoints let CreatureAI::MovementInform have EXTERNAL_WAYPOINT_MOVE(256) + pathId as type.
This will allow an external user to know which of "his" paths is used
* Adapt the related commands a little bit such that parts of the commands will also be usable for external paths
At the moment .wp show and .wp export work with external paths.
WaypointMovement: Add support to set the next waypoint (c2635)
* Also add support to initialize a path with waittime before starting movement
* Add additional types for external use of MovementInform such that MovementInform is called when a waypoint is started, or when the last waypoint is handled
* Improve some minor technical issues
Let .wp add command start with 1 as first waypoint (c2640)
* Add SCRIPT_COMMAND_MOVE_DYNAMIC to move to a random point or towards another unit
* Toggle GetRandomPoint function to be able to return a random point with min-distance or a given direction.
* Toggle MovementGenerator::GetResetPosition to be able to return a reasonable orientation for reset.
Ideas and requirement research by virusav!
Thanks to virusav and Grz3s for test-feedback! (c2603)