mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-28 12:52:25 +01:00
Fixes waypoints: No pause between every waypoint. This makes waypoints a bit smoother.
--HG-- branch : trunk
This commit is contained in:
@@ -49,6 +49,7 @@ class DestinationHolder
|
||||
void ResetUpdate(uint32 t = TRAVELLER_UPDATE_INTERVAL) { i_tracker.Reset(t); }
|
||||
uint32 GetTotalTravelTime(void) const { return i_totalTravelTime; }
|
||||
void IncreaseTravelTime(uint32 increment) { i_totalTravelTime += increment; }
|
||||
void ResetTravelTime() { i_totalTravelTime = 0; }
|
||||
bool HasDestination(void) const { return i_destSet; }
|
||||
float GetDestinationDiff(float x, float y, float z) const;
|
||||
bool HasArrived(void) const { return (i_totalTravelTime == 0 || i_timeElapsed >= i_totalTravelTime); }
|
||||
|
||||
@@ -155,7 +155,7 @@ WaypointMovementGenerator<Creature>::Update(Creature &unit, const uint32 &diff)
|
||||
i_nextMoveTime.Update(diff);
|
||||
i_destinationHolder.UpdateTraveller(traveller, diff, true);
|
||||
|
||||
if (i_nextMoveTime.Passed())
|
||||
if (i_nextMoveTime.GetExpiry() < TIMEDIFF_NEXT_WP)
|
||||
{
|
||||
if (unit.IsStopped())
|
||||
{
|
||||
@@ -202,6 +202,7 @@ WaypointMovementGenerator<Creature>::Update(Creature &unit, const uint32 &diff)
|
||||
if (node->event_id && urand(0,99) < node->event_chance)
|
||||
unit.GetMap()->ScriptsStart(sWaypointScripts, node->event_id, &unit, NULL/*, false*/);
|
||||
|
||||
i_destinationHolder.ResetTravelTime();
|
||||
MovementInform(unit);
|
||||
unit.UpdateWaypointID(i_currentNode);
|
||||
unit.clearUnitState(UNIT_STAT_ROAMING);
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
|
||||
#define FLIGHT_TRAVEL_UPDATE 100
|
||||
#define STOP_TIME_FOR_PLAYER 3 * MINUTE * IN_MILISECONDS // 3 Minutes
|
||||
#define TIMEDIFF_NEXT_WP 250
|
||||
|
||||
template<class T, class P = Path>
|
||||
class PathMovementBase
|
||||
|
||||
Reference in New Issue
Block a user