mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2026-11-15 00:07:13 +00:00
fix(moving platform): a mover started at a waypoint waits there first (issue 964)
LWOPlatform::ResumeTravelling: not travelling at a waypoint it waits the waypoint's wait; the AG monument elevator rose at once. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -317,6 +317,13 @@ void MovingPlatformComponent::StartPathing() {
|
||||
m_PathingStopped = false;
|
||||
auto* const mover = GetMoverSubComponent();
|
||||
if ((mover->mState & ePlatformStateFlag::Travelling) != 0) return;
|
||||
// LWOPlatform::ResumeTravelling: stopped between two waypoints it carries on; at a waypoint it first waits there
|
||||
// for the waypoint's wait (issue 964: the AG monument elevator waited about 2 s before rising)
|
||||
if ((mover->mState & ePlatformStateFlag::ReachedDesiredWaypoint) != 0) {
|
||||
MoverStopAtWaypoint(true);
|
||||
Game::entityManager->SerializeEntity(m_Parent);
|
||||
return;
|
||||
}
|
||||
MoverDepart();
|
||||
}
|
||||
|
||||
|
||||
@@ -217,8 +217,11 @@ TEST_F(MovingPlatformComponentTest, MoverRunsLikeLive) {
|
||||
platform->Update(10.0f);
|
||||
EXPECT_EQ(mover->mState, 25u);
|
||||
|
||||
// Stopped mid way, then started again
|
||||
// Started at a waypoint it first waits there (issue 964), then stopped mid way and started again
|
||||
platform->StartPathing();
|
||||
EXPECT_EQ(mover->mState, 25u);
|
||||
platform->Update(2.1f);
|
||||
EXPECT_EQ(mover->mState, 2u);
|
||||
platform->Update(1.0f);
|
||||
platform->StopPathing();
|
||||
EXPECT_EQ(mover->mState & 1u, 1u);
|
||||
|
||||
Reference in New Issue
Block a user