From ff1734c19adbb065b1a159fd77808d794fb4f7b5 Mon Sep 17 00:00:00 2001 From: FS-21 Date: Wed, 23 Feb 2022 15:25:40 +0100 Subject: [PATCH 1/7] Added Ammo.Shared tag Transports with this Ammo.Shared tag refill ammo in passengers that have the same Ammo.Shared tag. --- src/Ext/Techno/Body.cpp | 49 +++++++++++++++++++++++++++++++++++++ src/Ext/Techno/Body.h | 1 + src/Ext/Techno/Hooks.cpp | 1 + src/Ext/TechnoType/Body.cpp | 3 +++ src/Ext/TechnoType/Body.h | 3 +++ 5 files changed, 57 insertions(+) diff --git a/src/Ext/Techno/Body.cpp b/src/Ext/Techno/Body.cpp index f818c31620..0781cbb6c8 100644 --- a/src/Ext/Techno/Body.cpp +++ b/src/Ext/Techno/Body.cpp @@ -416,6 +416,55 @@ bool TechnoExt::CanFireNoAmmoWeapon(TechnoClass* pThis, int weaponIndex) return false; } +void TechnoExt::UpdateSharedAmmo(TechnoClass* pThis) +{ + if (!pThis) + return; + + if (auto pType = pThis->GetTechnoType()) + { + if (pType->OpenTopped && pThis->Passengers.NumPassengers > 0) + { + if (const auto pExt = TechnoTypeExt::ExtMap.Find(pType)) + { + if (pExt->Ammo_Shared) + { + // Safe check before everything else + if (pThis->Ammo > pType->Ammo) + { + pThis->Ammo = pType->Ammo; + } + else if (pThis->Ammo < 0) + { + pThis->Ammo = 0; + return; + } + + auto passenger = pThis->Passengers.FirstPassenger; + TechnoTypeClass* passengerType; + + do + { + passengerType = passenger->GetTechnoType(); + auto pPassengerExt = TechnoTypeExt::ExtMap.Find(passengerType); + + if (pPassengerExt && pPassengerExt->Ammo_Shared) + { + if (pThis->Ammo > 0 && (passenger->Ammo < passengerType->Ammo)) + { + pThis->Ammo--; + passenger->Ammo++; + } + } + + passenger = static_cast(passenger->NextObject); + } while (passenger); + } + } + } + } +} + // ============================= // load / save diff --git a/src/Ext/Techno/Body.h b/src/Ext/Techno/Body.h index f13d89a389..0e3f311566 100644 --- a/src/Ext/Techno/Body.h +++ b/src/Ext/Techno/Body.h @@ -91,6 +91,7 @@ class TechnoExt static void ApplySpawn_LimitRange(TechnoClass* pThis); static void ObjectKilledBy(TechnoClass* pThis, TechnoClass* pKiller); static void EatPassengers(TechnoClass* pThis); + static void UpdateSharedAmmo(TechnoClass* pThis); static bool CanFireNoAmmoWeapon(TechnoClass* pThis, int weaponIndex); }; diff --git a/src/Ext/Techno/Hooks.cpp b/src/Ext/Techno/Hooks.cpp index 2e8f112399..05099cf36e 100644 --- a/src/Ext/Techno/Hooks.cpp +++ b/src/Ext/Techno/Hooks.cpp @@ -18,6 +18,7 @@ DEFINE_HOOK(0x6F9E50, TechnoClass_AI, 0x5) TechnoExt::ApplyPowered_KillSpawns(pThis); TechnoExt::ApplySpawn_LimitRange(pThis); TechnoExt::EatPassengers(pThis); + TechnoExt::UpdateSharedAmmo(pThis); // LaserTrails update routine is in TechnoClass::AI hook because TechnoClass::Draw // doesn't run when the object is off-screen which leads to visual bugs - Kerbiter diff --git a/src/Ext/TechnoType/Body.cpp b/src/Ext/TechnoType/Body.cpp index d291eb8595..54b4dfd78a 100644 --- a/src/Ext/TechnoType/Body.cpp +++ b/src/Ext/TechnoType/Body.cpp @@ -221,6 +221,8 @@ void TechnoTypeExt::ExtData::LoadFromINIFile(CCINIClass* const pINI) } this->EnemyUIName.Read(exINI, pSection, "EnemyUIName"); + + this->Ammo_Shared.Read(exINI, pSection, "Ammo.Shared"); } template @@ -294,6 +296,7 @@ void TechnoTypeExt::ExtData::Serialize(T& Stm) .Process(this->DeployingAnim_ReverseForUndeploy) .Process(this->DeployingAnim_UseUnitDrawer) .Process(this->EnemyUIName) + .Process(this->Ammo_Shared) ; } void TechnoTypeExt::ExtData::LoadFromStream(PhobosStreamReader& Stm) diff --git a/src/Ext/TechnoType/Body.h b/src/Ext/TechnoType/Body.h index 7c04f83a3c..aa659e5f2b 100644 --- a/src/Ext/TechnoType/Body.h +++ b/src/Ext/TechnoType/Body.h @@ -97,6 +97,8 @@ class TechnoTypeExt Valueable DeployingAnim_ReverseForUndeploy; Valueable DeployingAnim_UseUnitDrawer; + Valueable Ammo_Shared; + struct LaserTrailDataEntry { ValueableIdx idxType; @@ -180,6 +182,7 @@ class TechnoTypeExt , DeployingAnim_ReverseForUndeploy { true } , DeployingAnim_UseUnitDrawer { true } , EnemyUIName {} + , Ammo_Shared { false } { } virtual ~ExtData() = default; From f4e1086891c2e2619d4bb555539bf1add886d8e8 Mon Sep 17 00:00:00 2001 From: FS-21 Date: Wed, 23 Feb 2022 15:39:52 +0100 Subject: [PATCH 2/7] Added Ammo.Shared.Group tag A transport & passengers with the same Ammo.Shared.Group = value is used to filter passengers that can be refilled, ignoring other passengers with different groups values. Ammo.Shared.Group=-1 in transports means that any fillable passenger is supported by the transport. --- src/Ext/Techno/Body.cpp | 9 ++++++--- src/Ext/TechnoType/Body.cpp | 2 ++ src/Ext/TechnoType/Body.h | 2 ++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/Ext/Techno/Body.cpp b/src/Ext/Techno/Body.cpp index 0781cbb6c8..b22de25ec4 100644 --- a/src/Ext/Techno/Body.cpp +++ b/src/Ext/Techno/Body.cpp @@ -450,10 +450,13 @@ void TechnoExt::UpdateSharedAmmo(TechnoClass* pThis) if (pPassengerExt && pPassengerExt->Ammo_Shared) { - if (pThis->Ammo > 0 && (passenger->Ammo < passengerType->Ammo)) + if (pExt->Ammo_Shared_Group < 0 || pExt->Ammo_Shared_Group == pPassengerExt->Ammo_Shared_Group) { - pThis->Ammo--; - passenger->Ammo++; + if (pThis->Ammo > 0 && (passenger->Ammo < passengerType->Ammo)) + { + pThis->Ammo--; + passenger->Ammo++; + } } } diff --git a/src/Ext/TechnoType/Body.cpp b/src/Ext/TechnoType/Body.cpp index 54b4dfd78a..23922e1d8a 100644 --- a/src/Ext/TechnoType/Body.cpp +++ b/src/Ext/TechnoType/Body.cpp @@ -223,6 +223,7 @@ void TechnoTypeExt::ExtData::LoadFromINIFile(CCINIClass* const pINI) this->EnemyUIName.Read(exINI, pSection, "EnemyUIName"); this->Ammo_Shared.Read(exINI, pSection, "Ammo.Shared"); + this->Ammo_Shared_Group.Read(exINI, pSection, "Ammo.Shared.Group"); } template @@ -297,6 +298,7 @@ void TechnoTypeExt::ExtData::Serialize(T& Stm) .Process(this->DeployingAnim_UseUnitDrawer) .Process(this->EnemyUIName) .Process(this->Ammo_Shared) + .Process(this->Ammo_Shared_group) ; } void TechnoTypeExt::ExtData::LoadFromStream(PhobosStreamReader& Stm) diff --git a/src/Ext/TechnoType/Body.h b/src/Ext/TechnoType/Body.h index aa659e5f2b..e99f29bb44 100644 --- a/src/Ext/TechnoType/Body.h +++ b/src/Ext/TechnoType/Body.h @@ -98,6 +98,7 @@ class TechnoTypeExt Valueable DeployingAnim_UseUnitDrawer; Valueable Ammo_Shared; + Valueable Ammo_Shared_Group; struct LaserTrailDataEntry { @@ -183,6 +184,7 @@ class TechnoTypeExt , DeployingAnim_UseUnitDrawer { true } , EnemyUIName {} , Ammo_Shared { false } + , Ammo_Shared_Group { -1 } { } virtual ~ExtData() = default; From e807eae605e870c742ab83b6d668550775377a1f Mon Sep 17 00:00:00 2001 From: FS-21 Date: Wed, 23 Feb 2022 16:56:21 +0100 Subject: [PATCH 3/7] fixed compilation error --- src/Ext/TechnoType/Body.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Ext/TechnoType/Body.cpp b/src/Ext/TechnoType/Body.cpp index 23922e1d8a..0c208f6dc0 100644 --- a/src/Ext/TechnoType/Body.cpp +++ b/src/Ext/TechnoType/Body.cpp @@ -298,7 +298,7 @@ void TechnoTypeExt::ExtData::Serialize(T& Stm) .Process(this->DeployingAnim_UseUnitDrawer) .Process(this->EnemyUIName) .Process(this->Ammo_Shared) - .Process(this->Ammo_Shared_group) + .Process(this->Ammo_Shared_Group) ; } void TechnoTypeExt::ExtData::LoadFromStream(PhobosStreamReader& Stm) From 533880088a5be11d90ce703cdc1ba13dc34da53d Mon Sep 17 00:00:00 2001 From: FS-21 Date: Sun, 27 Feb 2022 10:45:47 +0100 Subject: [PATCH 4/7] New Shared Ammo tag Transports with this Ammo.Shared tag refill ammo in passengers that have the same Ammo.Shared tag. In addition, a transport can filter who will receive ammo if passengers have the same value in Ammo.Shared.Group = of the transport, ignoring other passengers with different groups values. Ammo.Shared.Group=-1 in transports means that any passenger with Ammo.Shared=yes is supported by the transport. --- src/Ext/Techno/Body.cpp | 15 ++---------- src/Ext/Techno/Hooks.cpp | 49 ++++++++++++++++++++++++++++++++++++- src/Ext/WeaponType/Body.cpp | 2 ++ src/Ext/WeaponType/Body.h | 2 ++ 4 files changed, 54 insertions(+), 14 deletions(-) diff --git a/src/Ext/Techno/Body.cpp b/src/Ext/Techno/Body.cpp index b22de25ec4..346e8bdefe 100644 --- a/src/Ext/Techno/Body.cpp +++ b/src/Ext/Techno/Body.cpp @@ -421,25 +421,14 @@ void TechnoExt::UpdateSharedAmmo(TechnoClass* pThis) if (!pThis) return; - if (auto pType = pThis->GetTechnoType()) + if (const auto pType = pThis->GetTechnoType()) { if (pType->OpenTopped && pThis->Passengers.NumPassengers > 0) { if (const auto pExt = TechnoTypeExt::ExtMap.Find(pType)) { - if (pExt->Ammo_Shared) + if (pExt->Ammo_Shared && pType->Ammo > 0) { - // Safe check before everything else - if (pThis->Ammo > pType->Ammo) - { - pThis->Ammo = pType->Ammo; - } - else if (pThis->Ammo < 0) - { - pThis->Ammo = 0; - return; - } - auto passenger = pThis->Passengers.FirstPassenger; TechnoTypeClass* passengerType; diff --git a/src/Ext/Techno/Hooks.cpp b/src/Ext/Techno/Hooks.cpp index 05099cf36e..07a603aab6 100644 --- a/src/Ext/Techno/Hooks.cpp +++ b/src/Ext/Techno/Hooks.cpp @@ -18,7 +18,6 @@ DEFINE_HOOK(0x6F9E50, TechnoClass_AI, 0x5) TechnoExt::ApplyPowered_KillSpawns(pThis); TechnoExt::ApplySpawn_LimitRange(pThis); TechnoExt::EatPassengers(pThis); - TechnoExt::UpdateSharedAmmo(pThis); // LaserTrails update routine is in TechnoClass::AI hook because TechnoClass::Draw // doesn't run when the object is off-screen which leads to visual bugs - Kerbiter @@ -381,3 +380,51 @@ DEFINE_HOOK(0x5F4F4E, ObjectClass_Unlimbo_LaserTrails, 0x7) return 0; } +/* +DEFINE_HOOK(0x6FF27F, TechnoClass_Fire_ModifyAmmo, 0x6) +{ + GET(TechnoClass*, pThis, ESI); + GET(WeaponTypeClass*, pWeapon, EBX); + + auto pWeaponExt = WeaponTypeExt::ExtMap.Find(pWeapon); + if (pWeaponExt->OpenTopped_ModifyAmmo == 0) + return 0; + + if (!pThis) + return 0; + + if (auto pType = pThis->GetTechnoType()) + { + if (auto pTypeExt = TechnoTypeExt::ExtMap.Find(pType)) + { + if (pThis->InOpenToppedTransport) + { + auto pTransport = pThis->Transporter; + + if (auto pTransportType = pTransport->GetTechnoType()) + { + if (pTransportType->Ammo == 0) + return 0; + + if (pType->Ammo > 0 && pTransport->Ammo <= 0) + { + pTransport->Ammo += pWeaponExt->OpenTopped_ModifyAmmo; + } + } + } + } + } + + return 0; +} +*/ + +// Update ammo rounds +DEFINE_HOOK(0x6FB086, TechnoClass_Reload_ReloadAmount, 0x8) +{ + GET(TechnoClass* const, pThis, ECX); + + TechnoExt::UpdateSharedAmmo(pThis); + + return 0; +} diff --git a/src/Ext/WeaponType/Body.cpp b/src/Ext/WeaponType/Body.cpp index cdb416ac05..599d3cc7b4 100644 --- a/src/Ext/WeaponType/Body.cpp +++ b/src/Ext/WeaponType/Body.cpp @@ -44,6 +44,7 @@ void WeaponTypeExt::ExtData::LoadFromINIFile(CCINIClass* const pINI) this->CanTargetHouses.Read(exINI, pSection, "CanTargetHouses"); this->Burst_Delays.Read(exINI, pSection, "Burst.Delays"); this->AreaFire_Target.Read(exINI, pSection, "AreaFire.Target"); + //this->OpenTopped_ModifyAmmo.Read(exINI, pSection, "OpenTopped.ModifyAmmo"); } template @@ -63,6 +64,7 @@ void WeaponTypeExt::ExtData::Serialize(T& Stm) .Process(this->RadType) .Process(this->Burst_Delays) .Process(this->AreaFire_Target) + //.Process(this->OpenTopped_ModifyAmmo) ; }; diff --git a/src/Ext/WeaponType/Body.h b/src/Ext/WeaponType/Body.h index 3402a7b9c5..728bf8973a 100644 --- a/src/Ext/WeaponType/Body.h +++ b/src/Ext/WeaponType/Body.h @@ -30,6 +30,7 @@ class WeaponTypeExt Valueable CanTargetHouses; ValueableVector Burst_Delays; Valueable AreaFire_Target; + //Valueable OpenTopped_ModifyAmmo; ExtData(WeaponTypeClass* OwnerObject) : Extension(OwnerObject) , DiskLaser_Radius { 38.2 } @@ -45,6 +46,7 @@ class WeaponTypeExt , CanTargetHouses { AffectedHouse::All } , Burst_Delays {} , AreaFire_Target { AreaFireTarget::Base } + //, OpenTopped_ModifyAmmo { 0 } { } virtual ~ExtData() = default; From 9d22cfbd2db5a65df37349e3c5e7ab51f2da34fb Mon Sep 17 00:00:00 2001 From: FS-21 Date: Sun, 27 Feb 2022 10:49:57 +0100 Subject: [PATCH 5/7] Deleted unused code --- src/Ext/Techno/Hooks.cpp | 38 ------------------------------------- src/Ext/WeaponType/Body.cpp | 2 -- src/Ext/WeaponType/Body.h | 2 -- 3 files changed, 42 deletions(-) diff --git a/src/Ext/Techno/Hooks.cpp b/src/Ext/Techno/Hooks.cpp index 07a603aab6..d4a43dc53a 100644 --- a/src/Ext/Techno/Hooks.cpp +++ b/src/Ext/Techno/Hooks.cpp @@ -380,44 +380,6 @@ DEFINE_HOOK(0x5F4F4E, ObjectClass_Unlimbo_LaserTrails, 0x7) return 0; } -/* -DEFINE_HOOK(0x6FF27F, TechnoClass_Fire_ModifyAmmo, 0x6) -{ - GET(TechnoClass*, pThis, ESI); - GET(WeaponTypeClass*, pWeapon, EBX); - - auto pWeaponExt = WeaponTypeExt::ExtMap.Find(pWeapon); - if (pWeaponExt->OpenTopped_ModifyAmmo == 0) - return 0; - - if (!pThis) - return 0; - - if (auto pType = pThis->GetTechnoType()) - { - if (auto pTypeExt = TechnoTypeExt::ExtMap.Find(pType)) - { - if (pThis->InOpenToppedTransport) - { - auto pTransport = pThis->Transporter; - - if (auto pTransportType = pTransport->GetTechnoType()) - { - if (pTransportType->Ammo == 0) - return 0; - - if (pType->Ammo > 0 && pTransport->Ammo <= 0) - { - pTransport->Ammo += pWeaponExt->OpenTopped_ModifyAmmo; - } - } - } - } - } - - return 0; -} -*/ // Update ammo rounds DEFINE_HOOK(0x6FB086, TechnoClass_Reload_ReloadAmount, 0x8) diff --git a/src/Ext/WeaponType/Body.cpp b/src/Ext/WeaponType/Body.cpp index 599d3cc7b4..cdb416ac05 100644 --- a/src/Ext/WeaponType/Body.cpp +++ b/src/Ext/WeaponType/Body.cpp @@ -44,7 +44,6 @@ void WeaponTypeExt::ExtData::LoadFromINIFile(CCINIClass* const pINI) this->CanTargetHouses.Read(exINI, pSection, "CanTargetHouses"); this->Burst_Delays.Read(exINI, pSection, "Burst.Delays"); this->AreaFire_Target.Read(exINI, pSection, "AreaFire.Target"); - //this->OpenTopped_ModifyAmmo.Read(exINI, pSection, "OpenTopped.ModifyAmmo"); } template @@ -64,7 +63,6 @@ void WeaponTypeExt::ExtData::Serialize(T& Stm) .Process(this->RadType) .Process(this->Burst_Delays) .Process(this->AreaFire_Target) - //.Process(this->OpenTopped_ModifyAmmo) ; }; diff --git a/src/Ext/WeaponType/Body.h b/src/Ext/WeaponType/Body.h index 728bf8973a..3402a7b9c5 100644 --- a/src/Ext/WeaponType/Body.h +++ b/src/Ext/WeaponType/Body.h @@ -30,7 +30,6 @@ class WeaponTypeExt Valueable CanTargetHouses; ValueableVector Burst_Delays; Valueable AreaFire_Target; - //Valueable OpenTopped_ModifyAmmo; ExtData(WeaponTypeClass* OwnerObject) : Extension(OwnerObject) , DiskLaser_Radius { 38.2 } @@ -46,7 +45,6 @@ class WeaponTypeExt , CanTargetHouses { AffectedHouse::All } , Burst_Delays {} , AreaFire_Target { AreaFireTarget::Base } - //, OpenTopped_ModifyAmmo { 0 } { } virtual ~ExtData() = default; From cdedc29e7f15119cba17748a0b63701aeacb2fd5 Mon Sep 17 00:00:00 2001 From: FS-21 Date: Sun, 27 Feb 2022 11:30:01 +0100 Subject: [PATCH 6/7] Added documentation --- README.md | 2 +- docs/New-or-Enhanced-Logics.md | 18 ++++++++++++++++++ docs/Whats-New.md | 1 + 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index cb8aa6d64a..2533aea832 100644 --- a/README.md +++ b/README.md @@ -98,7 +98,7 @@ Credits - **secsome (SEC-SOME)** - debug info dump hotkey, refactoring & porting of Ares helper code, introducing more Ares-derived stuff, disguise removal warhead, Mind Control removal warhead, Mind Control enhancement, shields, AnimList.PickRandom, MoveToCell fix, unlimited waypoints, Build At trigger action buildup anim fix, Undeploy building into a unit plays `EVA_NewRallyPointEstablished` fix, custom ore gathering anim, TemporaryClass related crash, Retry dialog on mission failure, Default disguise for individual InfantryTypes, PowerPlant Enhancer, SaveGame Trigger Action, QuickSave command, Numeric variables, Custom gravity for projectiles, Retint map actions bugfix - **Otamaa (Fahroni, BoredEXE)** - help with CellSpread, ported and fixed custom RadType code, togglable ElectricBolt bolts, customizable Chrono Locomotor properties per TechnoClass, DebrisMaximums fixes, Anim-to-Unit, NotHuman anim sequences improvements, Customizable OpenTopped Properties, hooks for ScriptType Actions 92 & 93, ore stage threshold for `HideIfNoOre`, occupied building `MuzzleFlashX` bugfix,`EnemyUIName=` for other TechnoTypes, TerrainType `DestroyAnim` & `DestroySound` - **E1 Elite** - TileSet 255 and above bridge repair fix -- **FS-21** - Dump Object Info enhancements, Powered.KillSpawns, Spawner.LimitRange, ScriptType Actions 71 to 113, MC deployer fixes, help with docs, Automatic Passenger Deletion, Customize resource storage +- **FS-21** - Dump Object Info enhancements, Powered.KillSpawns, Spawner.LimitRange, ScriptType Actions 71 to 113, MC deployer fixes, help with docs, Automatic Passenger Deletion, Customize resource storage, Shared Ammo - **AutoGavy** - interceptor logic, warhead critical damage system - **ChrisLv_CN** - interceptor logic, LaserTrails, laser fixes, general assistance (work relicensed under [following permission](images/ChrisLv-relicense.png)) - **Xkein** - general assistance, YRpp edits diff --git a/docs/New-or-Enhanced-Logics.md b/docs/New-or-Enhanced-Logics.md index 5227d73bbb..83ae6fd7de 100644 --- a/docs/New-or-Enhanced-Logics.md +++ b/docs/New-or-Enhanced-Logics.md @@ -287,6 +287,24 @@ OpenTopped.DamageMultiplier=1.3 ; float OpenTopped.WarpDistance=8 ; integer ``` +### Shared Ammo + +- Transports with `OpenTopped=yes` and `Ammo.Shared=yes` will transfer ammo to passengers that have `Ammo.Shared=yes`. +In addition, a transport can filter who will receive ammo if passengers have the same value in `Ammo.Shared.Group=` of the transport, ignoring other passengers with different groups values. +- Transports with `Ammo.Shared.Group=-1` will transfer ammo to any passenger with `Ammo.Shared=yes` ignoring the group. +- Transports must have ammo and should be able to reload ammo. + +In `rulesmd.ini`: +```ini +[SOMETECHNO1] ; TechnoType, transport with OpenTopped=yes +Ammo.Shared=no ; boolean +Ammo.Shared.Group=-1 ; integer + +[SOMETECHNO2] ; TechnoType, passenger +Ammo.Shared=no ; boolean +Ammo.Shared.Group=-1 ; integer +``` + ## Technos ### Mind Control enhancement diff --git a/docs/Whats-New.md b/docs/Whats-New.md index 3399125190..a3cb90ce3f 100644 --- a/docs/Whats-New.md +++ b/docs/Whats-New.md @@ -268,6 +268,7 @@ New: - `Storage.TiberiumIndex` for customizing resource storage in structures (by FS-21) - Grinder improvements & customizations (by Starkku) - Attached animation position customization (by Starkku) +- Shared Ammo for transports to passengers (by FS-21) Vanilla fixes: - Fixed laser drawing code to allow for thicker lasers in house color draw mode (by Kerbiter, ChrisLv_CN) From c815771a73554ac39e6f5d9bbdb811ee382dcfd0 Mon Sep 17 00:00:00 2001 From: FS-21 Date: Tue, 1 Mar 2022 19:30:00 +0100 Subject: [PATCH 7/7] Fix readme after merge --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index aa130a6c13..f7feb3dd3b 100644 --- a/README.md +++ b/README.md @@ -98,8 +98,7 @@ Credits - **secsome (SEC-SOME)** - debug info dump hotkey, refactoring & porting of Ares helper code, introducing more Ares-derived stuff, disguise removal warhead, Mind Control removal warhead, Mind Control enhancement, shields, AnimList.PickRandom, MoveToCell fix, unlimited waypoints, Build At trigger action buildup anim fix, Undeploy building into a unit plays `EVA_NewRallyPointEstablished` fix, custom ore gathering anim, TemporaryClass related crash, Retry dialog on mission failure, Default disguise for individual InfantryTypes, PowerPlant Enhancer, SaveGame Trigger Action, QuickSave command, Numeric variables, Custom gravity for projectiles, Retint map actions bugfix, Sharpnel enhancement - **Otamaa (Fahroni, BoredEXE)** - help with CellSpread, ported and fixed custom RadType code, togglable ElectricBolt bolts, customizable Chrono Locomotor properties per TechnoClass, DebrisMaximums fixes, Anim-to-Unit, NotHuman anim sequences improvements, Customizable OpenTopped Properties, hooks for ScriptType Actions 92 & 93, ore stage threshold for `HideIfNoOre`, occupied building `MuzzleFlashX` bugfix,`EnemyUIName=` for other TechnoTypes, TerrainType `DestroyAnim` & `DestroySound` - **E1 Elite** - TileSet 255 and above bridge repair fix -- **FS-21** - Dump Object Info enhancements, Powered.KillSpawns, Spawner.LimitRange, ScriptType Actions 71 to 113, MC deployer fixes, help with docs, Automatic Passenger Deletion, Fire SW At Location Trigger Action, Fire SW At Waypoint Trigger Action -- **FS-21** - Dump Object Info enhancements, Powered.KillSpawns, Spawner.LimitRange, ScriptType Actions 71 to 113, MC deployer fixes, help with docs, Automatic Passenger Deletion, Customize resource storage, Shared Ammo +- **FS-21** - Dump Object Info enhancements, Powered.KillSpawns, Spawner.LimitRange, ScriptType Actions 71 to 113, MC deployer fixes, help with docs, Automatic Passenger Deletion, Fire SW At Location Trigger Action, Fire SW At Waypoint Trigger Action, Customize resource storage, Shared Ammo - **AutoGavy** - interceptor logic, warhead critical damage system, Customize resource storage - **ChrisLv_CN** - interceptor logic, LaserTrails, laser fixes, general assistance (work relicensed under [following permission](images/ChrisLv-relicense.png)) - **Xkein** - general assistance, YRpp edits