Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ Credits
- **SMxReaver** - help with docs, extensive and thorough testing
- **4SG** - help with docs
- **wiktorderelf** - overhauled Unicode font
- **Uranusian (Thrifinesma)** - Mind Control enhancement, custom warhead splash list, harvesters counter, promoted spawns, shields, death after dead fix, customizeable missing cameo, cameo sorting priority, placement mode responding of tab hotkeys fix, producing progress, custom ore gathering anim, overhauled Unicode font, help with docs
- **Uranusian (Thrifinesma)** - Mind Control enhancement, custom warhead splash list, harvesters counter, promoted spawns, shields, death after dead fix, customizeable missing cameo, cameo sorting priority, placement mode responding of tab hotkeys fix, producing progress, custom ore gathering anim, NoManualMove, overhauled Unicode font, help with docs
- **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
- **Otamaa (Fahroni, BoredEXE)** - help with CellSpread, ported and fixed custom RadType code, togglable ElectricBolt bolts, customizable Chrono Locomotor properties per TechnoClass, DebrisMaximums fixes
- **E1 Elite** - TileSet 255 and above bridge repair fix
Expand Down
8 changes: 8 additions & 0 deletions docs/New-or-Enhanced-Logics.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,14 @@ BreaksShield=false ; boolean
- `PenetratesShield` allows the warhead ignore the shield and always deal full damage to the TechnoType itself. It also allows targeting the TechnoType as if shield isn't existed.
- `BreaksShield` allows the warhead to always break shields of TechnoTypes, regardless of the amount of strength the shield has remaining or the damage dealt, assuming it affects the shield's armor type. Residual damage, if there is any, still respects `AbsorbOverDamage`.

### No Manual Move

- You can now specify whether a TechnoType is unable to receive move command.

```ini
[SOMETECHNO] ; TechnoType
NoManualMove=no ; boolean
```

## Weapons

Expand Down
1 change: 1 addition & 0 deletions docs/Whats-New.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ New:
- Customizable producing progress "bars" like CnC:Remastered did (by Uranusian)
- Customizable cameo sorting priority (by Uranusian)
- Customizable harvester ore gathering animation (by secsome, Uranusian)
- Allow making technos unable to be issued with movement order (by Uranusian)

Vanilla fixes:
- TBD
Expand Down
2 changes: 2 additions & 0 deletions src/Ext/TechnoType/Body.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ void TechnoTypeExt::ExtData::LoadFromINIFile(CCINIClass* const pINI)
this->Promote_IncludeSpawns.Read(exINI, pSection, "Promote.IncludeSpawns");
this->ImmuneToCrit.Read(exINI, pSection, "ImmuneToCrit");
this->MultiMindControl_ReleaseVictim.Read(exINI, pSection, "MultiMindControl.ReleaseVictim");
this->NoManualMove.Read(exINI, pSection, "NoManualMove");
this->ShieldType.Read(exINI, pSection, "ShieldType", true);
this->CameoPriority.Read(exINI, pSection, "CameoPriority");

Expand Down Expand Up @@ -144,6 +145,7 @@ void TechnoTypeExt::ExtData::Serialize(T& Stm)
.Process(this->ImmuneToCrit)
.Process(this->MultiMindControl_ReleaseVictim)
.Process(this->CameoPriority)
.Process(this->NoManualMove)
.Process(this->ShieldType)
.Process(this->WarpOut)
.Process(this->WarpIn)
Expand Down
2 changes: 2 additions & 0 deletions src/Ext/TechnoType/Body.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ class TechnoTypeExt
Valueable<bool> ImmuneToCrit;
Valueable<bool> MultiMindControl_ReleaseVictim;
Valueable<int> CameoPriority;
Valueable<bool> NoManualMove;

Valueable<ShieldTypeClass*> ShieldType;

Expand Down Expand Up @@ -72,6 +73,7 @@ class TechnoTypeExt
ImmuneToCrit(false),
MultiMindControl_ReleaseVictim(false),
CameoPriority(0),
NoManualMove(false),
ShieldType(),
WarpOut(),
WarpIn(),
Expand Down
10 changes: 10 additions & 0 deletions src/Ext/TechnoType/Hooks.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -147,4 +147,14 @@ DEFINE_HOOK(0x73D223, UnitClass_DrawIt_OreGath, 0x6)
R->EBX(pBounds);

return 0x73D28C;
}

DEFINE_HOOK(0x700C58, TechnoClass_CanPlayerMove_NoManualMove, 0x6)
{
GET(TechnoClass*, pThis, ESI);

if (auto pExt = TechnoTypeExt::ExtMap.Find(pThis->GetTechnoType()))
return pExt->NoManualMove ? 0x700C62 : 0;

return 0;
}