diff --git a/docs/Fixed-or-Improved-Logics.md b/docs/Fixed-or-Improved-Logics.md index b671455886..b0cb78f721 100644 --- a/docs/Fixed-or-Improved-Logics.md +++ b/docs/Fixed-or-Improved-Logics.md @@ -500,6 +500,16 @@ Units.RepairPercent= ; floating point value, percents or absolute Units.UseRepairCost= ; boolean ``` +### Waypoints for buildings + +- In vanilla, buildings are forbidden to use waypoints. Now you can allow that using the following flag. + +In `rulesmd.ini`: +```ini +[General] +BuildingWaypoints=false ; boolean +``` + ## Particle systems ### Fire particle target coordinate adjustment when firer rotates diff --git a/docs/New-or-Enhanced-Logics.md b/docs/New-or-Enhanced-Logics.md index b4ccba9ba7..daa3764824 100644 --- a/docs/New-or-Enhanced-Logics.md +++ b/docs/New-or-Enhanced-Logics.md @@ -1585,16 +1585,6 @@ Convert.HumanToComputer = ; TechnoType Convert.ComputerToHuman = ; TechnoType ``` -### Waypoint for building - -- In vanilla, building and aircraft is forbiddened to use waypoint. Now you can turn it on by the following flags. - -In `rulesmd.ini`: -```ini -[General] -BuildingWaypoint=false ; boolean -``` - ## Terrain ### Destroy animation & sound diff --git a/src/Ext/Building/Hooks.cpp b/src/Ext/Building/Hooks.cpp index e57d147f49..1fe4a09412 100644 --- a/src/Ext/Building/Hooks.cpp +++ b/src/Ext/Building/Hooks.cpp @@ -705,11 +705,11 @@ DEFINE_HOOK(0x44B630, BuildingClass_MissionAttack_AnimDelayedFire, 0x6) #pragma endregion -#pragma region BuildingWaypoint +#pragma region BuildingWaypoints bool __fastcall BuildingTypeClass_CanUseWaypoint(BuildingTypeClass* pThis) { - return RulesExt::Global()->BuildingWaypoint; + return RulesExt::Global()->BuildingWaypoints; } DEFINE_JUMP(VTABLE, 0x7E4610, GET_OFFSET(BuildingTypeClass_CanUseWaypoint)) diff --git a/src/Ext/Rules/Body.cpp b/src/Ext/Rules/Body.cpp index b59b34d687..38c5130c0c 100644 --- a/src/Ext/Rules/Body.cpp +++ b/src/Ext/Rules/Body.cpp @@ -187,7 +187,7 @@ void RulesExt::ExtData::LoadBeforeTypeData(RulesClass* pThis, CCINIClass* pINI) this->DropPodTrailer = droppod_trailer.Get(AnimTypeClass::Find("SMOKEY"));// Ares convention this->PodImage = FileSystem::LoadSHPFile("POD.SHP"); - this->BuildingWaypoint.Read(exINI, GameStrings::General, "BuildingWaypoint"); + this->BuildingWaypoints.Read(exINI, GameStrings::General, "BuildingWaypoints"); this->Buildings_DefaultDigitalDisplayTypes.Read(exINI, GameStrings::AudioVisual, "Buildings.DefaultDigitalDisplayTypes"); this->Infantry_DefaultDigitalDisplayTypes.Read(exINI, GameStrings::AudioVisual, "Infantry.DefaultDigitalDisplayTypes"); @@ -403,7 +403,7 @@ void RulesExt::ExtData::Serialize(T& Stm) .Process(this->JumpjetLevelLightMultiplier) .Process(this->VoxelLightSource) // .Process(this->VoxelShadowLightSource) - .Process(this->BuildingWaypoint) + .Process(this->BuildingWaypoints) .Process(this->CombatAlert) .Process(this->CombatAlert_Default) .Process(this->CombatAlert_IgnoreBuilding) diff --git a/src/Ext/Rules/Body.h b/src/Ext/Rules/Body.h index f926da29ab..7f5fc6f240 100644 --- a/src/Ext/Rules/Body.h +++ b/src/Ext/Rules/Body.h @@ -182,7 +182,7 @@ class RulesExt Valueable CombatLightDetailLevel; Valueable LightFlashAlphaImageDetailLevel; - Valueable BuildingWaypoint; + Valueable BuildingWaypoints; Valueable BuildingTypeSelectable; ExtData(RulesClass* OwnerObject) : Extension(OwnerObject) @@ -320,7 +320,7 @@ class RulesExt , WarheadParticleAlphaImageIsLightFlash { false } , CombatLightDetailLevel { 0 } , LightFlashAlphaImageDetailLevel { 0 } - , BuildingWaypoint { false } + , BuildingWaypoints { false } , BuildingTypeSelectable { false } { }