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); }
|
void ResetUpdate(uint32 t = TRAVELLER_UPDATE_INTERVAL) { i_tracker.Reset(t); }
|
||||||
uint32 GetTotalTravelTime(void) const { return i_totalTravelTime; }
|
uint32 GetTotalTravelTime(void) const { return i_totalTravelTime; }
|
||||||
void IncreaseTravelTime(uint32 increment) { i_totalTravelTime += increment; }
|
void IncreaseTravelTime(uint32 increment) { i_totalTravelTime += increment; }
|
||||||
|
void ResetTravelTime() { i_totalTravelTime = 0; }
|
||||||
bool HasDestination(void) const { return i_destSet; }
|
bool HasDestination(void) const { return i_destSet; }
|
||||||
float GetDestinationDiff(float x, float y, float z) const;
|
float GetDestinationDiff(float x, float y, float z) const;
|
||||||
bool HasArrived(void) const { return (i_totalTravelTime == 0 || i_timeElapsed >= i_totalTravelTime); }
|
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_nextMoveTime.Update(diff);
|
||||||
i_destinationHolder.UpdateTraveller(traveller, diff, true);
|
i_destinationHolder.UpdateTraveller(traveller, diff, true);
|
||||||
|
|
||||||
if (i_nextMoveTime.Passed())
|
if (i_nextMoveTime.GetExpiry() < TIMEDIFF_NEXT_WP)
|
||||||
{
|
{
|
||||||
if (unit.IsStopped())
|
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)
|
if (node->event_id && urand(0,99) < node->event_chance)
|
||||||
unit.GetMap()->ScriptsStart(sWaypointScripts, node->event_id, &unit, NULL/*, false*/);
|
unit.GetMap()->ScriptsStart(sWaypointScripts, node->event_id, &unit, NULL/*, false*/);
|
||||||
|
|
||||||
|
i_destinationHolder.ResetTravelTime();
|
||||||
MovementInform(unit);
|
MovementInform(unit);
|
||||||
unit.UpdateWaypointID(i_currentNode);
|
unit.UpdateWaypointID(i_currentNode);
|
||||||
unit.clearUnitState(UNIT_STAT_ROAMING);
|
unit.clearUnitState(UNIT_STAT_ROAMING);
|
||||||
|
|||||||
@@ -40,6 +40,7 @@
|
|||||||
|
|
||||||
#define FLIGHT_TRAVEL_UPDATE 100
|
#define FLIGHT_TRAVEL_UPDATE 100
|
||||||
#define STOP_TIME_FOR_PLAYER 3 * MINUTE * IN_MILISECONDS // 3 Minutes
|
#define STOP_TIME_FOR_PLAYER 3 * MINUTE * IN_MILISECONDS // 3 Minutes
|
||||||
|
#define TIMEDIFF_NEXT_WP 250
|
||||||
|
|
||||||
template<class T, class P = Path>
|
template<class T, class P = Path>
|
||||||
class PathMovementBase
|
class PathMovementBase
|
||||||
|
|||||||
Reference in New Issue
Block a user