Spline movement controls movements of server-side controlled units (monster movement, taxi movement, etc).
Proper implementation of effects such as charge, jump, cyclic movement will rely on it.
However, need improve our states system before.
Technical changes:
* Added linear, catmullrom and bezier3 splines which based on client's algorthims. They can be reused for proper transport position interpolation.
* Precission increased. There are no more position desync issues since client's position calculation formulas used.
* Now possible to move by paths with multiple points, send whole path to client.
--
Original author of research and implementation: SilverIce. Massive kudos.
Original port for Trinity (ref #4629) Chaplain and Venugh
With the following incremental fixes during my review:
- Restore flightmaster end grid pre-loading
- Fix uninitialized Creature::m_path_id
- Add missing trinity_string entries for .movegens command
- Fix a bug in WaypointMovementGenerator that would trigger unexpected pausing at waypoints for various amounts of time
Known issues:
- Errors like WaypointMovementGenerator::LoadPath creature XXX (Entry: YYYYY GUID: ZZZZZZ) doesn't have waypoint path id: 0.
This is caused by bad DB data. This commit didn't "break" it.
Do not forget to re-run CMake before compiling.
Note: The naming of classes is still confusing. "cell" usually refers to class "Grid", and "grid" usually refers to class "NGrid". But it requires a lot of changes to clean this up.
Remove hacky implementation of Elemental Oath
Properly fix it by correcting DBC data
Fix Clearcasting from Elemental Oath damage bonus being displayed twice in Spell ToolTips by damage Addons like DrDamage (displaying 10.25% instead of 5%, 21% instead of 10%)
- Added missing space to 'if', 'for', 'while' and 'switch' when it's followed by '('
- Added missing space after a comma and remove space before comma (with some exceptions)
- Remove trailing spaces
- Convert tab to spaces
Note: Only affects files with extension "cpp" and "h" under /src/server
Scripts:
Twins Valk - Cleanup / Remove Hardcoded Bullet Spawn (Need DB Support - Stalkers Spawns)
Acidmaw - Use Correct Submerge Spell
Trial Of Crusader - Correct Coordinate Spawn
Trial Of Crusader - Correct Open/Close Main Door Timer
Trial Of Crusader - Open/Close On Boss EnterEvadeMode
Acidmaw - Use Correct Submerge Spell
Trial Of Crusader - Correct Coordinate Spawn
Trial Of Crusader - Correct Open/Close Main Door Timer
Trial Of Crusader - Open/Close On Boss EnterEvadeMode
Also get ride of hack in Player::HandleBaseModValue now it's unnecessary.
Fixes: #855, multiplicative % count for normal school for aura 79 and may be others.
When we count twice multipliar for spells with SPELL_SCHOOL_MASK_NORMAL.
Also now it will show correct data in character info like damage reduction % from defence stance in warrior case.
Also fixed some minor logic issues.