Skip to content

Commit 0469744

Browse files
committed
review all initialize/reset handling for all generators
1 parent 2e2ab22 commit 0469744

9 files changed

Lines changed: 15 additions & 18 deletions

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ bool ChaseMovementGenerator::Initialize(Unit* /*owner*/)
8282

8383
_path = nullptr;
8484
_lastTargetPosition.reset();
85-
return true;
85+
return false;
8686
}
8787

8888
bool ChaseMovementGenerator::Reset(Unit* owner)

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,11 @@ bool ConfusedMovementGenerator<T>::DoInitialize(T* owner)
5050

5151
// TODO: UNIT_FIELD_FLAGS should not be handled by generators
5252
owner->SetUnitFlag(UNIT_FLAG_CONFUSED);
53-
owner->StopMoving();
5453

5554
_timer.Reset(0);
5655
owner->GetPosition(_x, _y, _z);
5756
_path = nullptr;
58-
return true;
57+
return false;
5958
}
6059

6160
template<class T>

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,10 @@ bool FollowMovementGenerator::Initialize(Unit* owner)
5757
RemoveFlag(MOVEMENTGENERATOR_FLAG_INITIALIZATION_PENDING | MOVEMENTGENERATOR_FLAG_DEACTIVATED);
5858
AddFlag(MOVEMENTGENERATOR_FLAG_INITIALIZED | MOVEMENTGENERATOR_FLAG_INFORM_ENABLED);
5959

60-
owner->StopMoving();
6160
UpdatePetSpeed(owner);
6261
_path = nullptr;
6362
_lastTargetPosition.reset();
64-
return true;
63+
return false;
6564
}
6665

6766
bool FollowMovementGenerator::Reset(Unit* owner)

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ bool FormationMovementGenerator::DoInitialize(Creature* owner)
5151
}
5252

5353
_nextMoveTimer.Reset(0);
54-
return true;
54+
return false;
5555
}
5656

5757
bool FormationMovementGenerator::DoReset(Creature* owner)

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ bool GenericMovementGenerator::Initialize(Unit* owner)
3636
{
3737
RemoveFlag(MOVEMENTGENERATOR_FLAG_DEACTIVATED);
3838
AddFlag(MOVEMENTGENERATOR_FLAG_FINALIZED);
39-
return false;
39+
return true;
4040
}
4141

4242
RemoveFlag(MOVEMENTGENERATOR_FLAG_INITIALIZATION_PENDING | MOVEMENTGENERATOR_FLAG_DEACTIVATED);

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ void HomeMovementGenerator<Creature>::SetTargetLocation(Creature* owner)
8181
}
8282

8383
template<class T>
84-
bool HomeMovementGenerator<T>::DoInitialize(T*) { }
84+
bool HomeMovementGenerator<T>::DoInitialize(T*) { return false; }
8585

8686
template<>
8787
bool HomeMovementGenerator<Creature>::DoInitialize(Creature* owner)
@@ -96,7 +96,7 @@ bool HomeMovementGenerator<Creature>::DoInitialize(Creature* owner)
9696
}
9797

9898
template<class T>
99-
bool HomeMovementGenerator<T>::DoReset(T*) { }
99+
bool HomeMovementGenerator<T>::DoReset(T*) { return false; }
100100

101101
template<>
102102
bool HomeMovementGenerator<Creature>::DoReset(Creature* owner)

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,7 @@ bool RotateMovementGenerator::Initialize(Unit* owner)
7777
RemoveFlag(MOVEMENTGENERATOR_FLAG_INITIALIZATION_PENDING | MOVEMENTGENERATOR_FLAG_DEACTIVATED);
7878
AddFlag(MOVEMENTGENERATOR_FLAG_INITIALIZED);
7979

80-
owner->StopMoving();
81-
return true;
80+
return false;
8281
/*
8382
* TODO: This code should be handled somewhere else, like MovementInform
8483
*

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ void RandomMovementGenerator<T>::Resume(uint32 overrideTimer /*= 0*/)
6969
template MovementGeneratorType RandomMovementGenerator<Creature>::GetMovementGeneratorType() const;
7070

7171
template<class T>
72-
bool RandomMovementGenerator<T>::DoInitialize(T*) { }
72+
bool RandomMovementGenerator<T>::DoInitialize(T*) { return false; }
7373

7474
template<>
7575
bool RandomMovementGenerator<Creature>::DoInitialize(Creature* owner)
@@ -81,7 +81,6 @@ bool RandomMovementGenerator<Creature>::DoInitialize(Creature* owner)
8181
return false;
8282

8383
_reference = owner->GetPosition();
84-
owner->StopMoving();
8584

8685
if (_wanderDistance == 0.f)
8786
_wanderDistance = owner->GetWanderDistance();
@@ -91,11 +90,11 @@ bool RandomMovementGenerator<Creature>::DoInitialize(Creature* owner)
9190

9291
_timer.Reset(0);
9392
_path = nullptr;
94-
return true;
93+
return false;
9594
}
9695

9796
template<class T>
98-
bool RandomMovementGenerator<T>::DoReset(T*) { }
97+
bool RandomMovementGenerator<T>::DoReset(T*) { return false; }
9998

10099
template<>
101100
bool RandomMovementGenerator<Creature>::DoReset(Creature* owner)

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

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,13 +96,13 @@ bool SplineChainMovementGenerator::Initialize(Unit* owner)
9696
{
9797
TC_LOG_WARN("movement", "SplineChainMovementGenerator::Initialize: couldn't initialize generator, _nextIndex is >= _chainSize ({})", owner->GetGUID().ToString());
9898
_msToNext = 0;
99-
return true;
99+
return false;
100100
}
101101

102102
if (_nextFirstWP) // this is a resumed movegen that has to start with a partial spline
103103
{
104104
if (HasFlag(MOVEMENTGENERATOR_FLAG_FINALIZED))
105-
return true;
105+
return false;
106106

107107
SplineChainLink const& thisLink = _chain[_nextIndex];
108108
if (_nextFirstWP >= thisLink.Points.size())
@@ -126,6 +126,7 @@ bool SplineChainMovementGenerator::Initialize(Unit* owner)
126126
}
127127
else
128128
{
129+
owner->AddUnitState(UNIT_STATE_ROAMING_MOVE);
129130
_msToNext = std::max(_chain[_nextIndex].TimeToNext, 1u);
130131
SendSplineFor(owner, _nextIndex, _msToNext);
131132

@@ -146,7 +147,7 @@ bool SplineChainMovementGenerator::Reset(Unit* owner)
146147

147148
bool SplineChainMovementGenerator::Update(Unit* owner, uint32 diff)
148149
{
149-
if (!owner || HasFlag(MOVEMENTGENERATOR_FLAG_FINALIZED))
150+
if (!owner || !_chainSize || HasFlag(MOVEMENTGENERATOR_FLAG_FINALIZED))
150151
return false;
151152

152153
// _msToNext being zero here means we're on the final spline

0 commit comments

Comments
 (0)