Skip to content

Commit a82e2f4

Browse files
committed
flag
1 parent 732c1af commit a82e2f4

2 files changed

Lines changed: 4 additions & 2 deletions

File tree

src/server/game/Movement/MovementGenerator.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ enum MovementGeneratorFlags : uint16
4040
MOVEMENTGENERATOR_FLAG_INFORM_ENABLED = 0x080,
4141
MOVEMENTGENERATOR_FLAG_FINALIZED = 0x100,
4242
MOVEMENTGENERATOR_FLAG_PERSIST_ON_DEATH = 0x200,
43+
MOVEMENTGENERATOR_FLAG_FIXED_DURATION = 0x400,
4344

4445
MOVEMENTGENERATOR_FLAG_TRANSITORY = MOVEMENTGENERATOR_FLAG_SPEED_UPDATE_PENDING | MOVEMENTGENERATOR_FLAG_INTERRUPTED
4546
};

src/server/game/Movement/MovementGenerators/GenericMovementGenerator.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,8 @@ void GenericMovementGenerator::Initialize(Unit* owner)
4949

5050
Movement::MoveSplineInit init(owner);
5151
_splineInit(init);
52-
_duration.Reset(init.Launch());
52+
if (!HasFlag(MOVEMENTGENERATOR_FLAG_FIXED_DURATION))
53+
_duration.Reset(init.Launch());
5354
}
5455

5556
void GenericMovementGenerator::Reset(Unit* owner)
@@ -66,7 +67,7 @@ bool GenericMovementGenerator::Update(Unit* owner, uint32 diff)
6667
if (!owner->movespline->isCyclic())
6768
_duration.Update(diff);
6869

69-
if (_duration.Passed() || owner->movespline->Finalized())
70+
if (_duration.Passed() || (!HasFlag(MOVEMENTGENERATOR_FLAG_FIXED_DURATION) && owner->movespline->Finalized()))
7071
{
7172
AddFlag(MOVEMENTGENERATOR_FLAG_INFORM_ENABLED);
7273
return false;

0 commit comments

Comments
 (0)