From 1e0d81f651b2899293e9800cdc74f0525dcca2c9 Mon Sep 17 00:00:00 2001 From: Noble_Fish <1065703286@qq.com> Date: Sat, 2 May 2026 19:53:34 +0800 Subject: [PATCH 1/3] initial --- docs/Whats-New.md | 1 + src/Ext/Techno/Body.cpp | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/docs/Whats-New.md b/docs/Whats-New.md index 7948163e7a..0c957f6dda 100644 --- a/docs/Whats-New.md +++ b/docs/Whats-New.md @@ -693,6 +693,7 @@ Phobos fixes: - Fixed a bug that prevented recalculation of stats etc. on discarding self-owned AE (by Starkku) - Fixed combat light ignoring / behaving differently from vanilla game regarding detail level and framerate checks (by Starkku) - Fixed a bug causing transfering AttachEffects (e.g on `DeploysInto`/`UndeploysInto`) not to immediately recalculate stats or tint (by Starkku) +- Fixed a bug where stationary vehicles would also block movement caused by Locomotor=Jumpjet or external factors (by Noble_Fish) Fixes / interactions with other extensions: diff --git a/src/Ext/Techno/Body.cpp b/src/Ext/Techno/Body.cpp index 2646b31b12..c3e076e7cb 100644 --- a/src/Ext/Techno/Body.cpp +++ b/src/Ext/Techno/Body.cpp @@ -1,4 +1,4 @@ -#include "Body.h" +#include "Body.h" #include @@ -750,9 +750,13 @@ bool TechnoExt::IsHealthInThreshold(TechnoClass* pObject, double min, double max bool TechnoExt::CannotMove(UnitClass* pThis) { + if (pThis->LocomotorSource) + return false; + const auto pType = pThis->Type; - if (pType->Speed == 0) + if (pType->Speed == 0 + && !(pType->Locomotor == LocomotionClass::CLSIDs::Jumpjet && !pType->Teleporter)) return true; const auto movementRestrictedTo = pType->MovementRestrictedTo; From 2d9c2b6a6c648aae2ca0e49b5a7aaf643f88afc0 Mon Sep 17 00:00:00 2001 From: Noble_Fish <1065703286@qq.com> Date: Sat, 2 May 2026 22:59:19 +0800 Subject: [PATCH 2/3] `JumpjetAccel=0.0` causes VehicleType with `Locomotor=Jumpjet` to remain stationary --- src/Ext/Techno/Body.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Ext/Techno/Body.cpp b/src/Ext/Techno/Body.cpp index c3e076e7cb..dd36d5bf0b 100644 --- a/src/Ext/Techno/Body.cpp +++ b/src/Ext/Techno/Body.cpp @@ -755,8 +755,12 @@ bool TechnoExt::CannotMove(UnitClass* pThis) const auto pType = pThis->Type; - if (pType->Speed == 0 - && !(pType->Locomotor == LocomotionClass::CLSIDs::Jumpjet && !pType->Teleporter)) + if ((pType->Speed == 0 + && (pType->Locomotor != LocomotionClass::CLSIDs::Jumpjet + || pType->Teleporter)) + || (pType->Locomotor == LocomotionClass::CLSIDs::Jumpjet + && !pType->Teleporter + && pType->JumpjetAccel == 0.0)) return true; const auto movementRestrictedTo = pType->MovementRestrictedTo; From b57fa2b05c695dc1b10899aca8ad52d580192264 Mon Sep 17 00:00:00 2001 From: Noble_Fish <1065703286@qq.com> Date: Sat, 2 May 2026 23:12:30 +0800 Subject: [PATCH 3/3] Update docs --- docs/Fixed-or-Improved-Logics.md | 2 +- docs/Whats-New.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Fixed-or-Improved-Logics.md b/docs/Fixed-or-Improved-Logics.md index a411072e9b..fedef50fe5 100644 --- a/docs/Fixed-or-Improved-Logics.md +++ b/docs/Fixed-or-Improved-Logics.md @@ -2324,7 +2324,7 @@ Sinkable.SquidGrab=true ; boolean ### Stationary vehicles -- Setting VehicleType `Speed` to 0 now makes game treat them as stationary, behaving in very similar manner to deployed vehicles with `IsSimpleDeployer` set to true. Should not be used on buildable vehicles, as they won't be able to exit factories. +- Setting `JumpjetAccel` to 0 for VehicleTypes with `Locomotor=Jumpjet` or setting `Speed` to 0 for other now makes game treat them as stationary, behaving in very similar manner to deployed vehicles with `IsSimpleDeployer` set to true. Should not be used on buildable vehicles, as they won't be able to exit factories. ### Turret recoil diff --git a/docs/Whats-New.md b/docs/Whats-New.md index f5f399759a..b4eecb78db 100644 --- a/docs/Whats-New.md +++ b/docs/Whats-New.md @@ -694,7 +694,7 @@ Phobos fixes: - Fixed combat light ignoring / behaving differently from vanilla game regarding detail level and framerate checks (by Starkku) - Fixed a bug causing transfering AttachEffects (e.g on `DeploysInto`/`UndeploysInto`) not to immediately recalculate stats or tint (by Starkku) - Fixed a bug where updating the `OpenTopped` attribute during convert did not update the coordinates of passengers (by NetsuNegi) -- Fixed a bug where stationary vehicles would also block movement caused by Locomotor=Jumpjet or external factors (by Noble_Fish) +- Fixed a bug where stationary vehicles would also block movement caused by external factors (by Noble_Fish) Fixes / interactions with other extensions: