Skip to content
Open
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
1 change: 1 addition & 0 deletions CREDITS.md
Original file line number Diff line number Diff line change
Expand Up @@ -662,6 +662,7 @@ This page lists all the individual contributions to the project by their author.
- Toggle per-target warhead effects apply timing
- Extra range for chasing and pre-firing
- Fix an issue that rockets do not consider the destination altitude during climbing
- Allow other vehicles to attempt to move above the target like `BalloonHover=yes`
- **solar-III (凤九歌)**
- Target scanning delay customization (documentation)
- Skip target scanning function calling for unarmed technos (documentation)
Expand Down
12 changes: 12 additions & 0 deletions docs/Fixed-or-Improved-Logics.md
Original file line number Diff line number Diff line change
Expand Up @@ -1974,6 +1974,18 @@ Harvester.CanGuardArea=false ; boolean
Harvester.CanGuardArea.RequireTarget=false ; boolean
```

### Allow other vehicles to attempt to move above the target like `BalloonHover=yes`

- In vanilla, vehicles with `BalloonHover=yes` and a weapon with projectile with `Vertical=yes` will attempt to move above the target.
- Now you can make other vehicles do the same without `BalloonHover=yes`.
- A weapon with projectile with `Vertical=yes` is still needed.

In `rulesmd.ini`:
```ini
[SOMEVEHICLE] ; VehicleType
CanGoAboveTarget=false ; boolean
```

### Bunker entering check dehardcode

- In vanilla, vehicles entering tank bunkers are subject to a series of hardcoding restrictions, including having to have turrets, having to have weapons, and not having Hover speed types. Now you can skip these restrictions.
Expand Down
1 change: 1 addition & 0 deletions docs/Whats-New.md
Original file line number Diff line number Diff line change
Expand Up @@ -480,6 +480,7 @@ New:
- Allow techno type considered as other type when recruiting techno for teams (by NetsuNegi)
- Map Action [`511` Undeploy Building to Waypoint](AI-Scripting-and-Mapping.md#undeploy-building-to-waypoint), [`609` Set Radar Mode](AI-Scripting-and-Mapping.md#set-radar-mode), [`610` Set house's `TeamDelays` value](AI-Scripting-and-Mapping.md#set-house-s-teamdelays-value) (by FlyStar)
- Fixed an issue that rockets do not consider the destination altitude during climbing (by TaranDahl)
- [Allow other vehicles to attempt to move above the target like `BalloonHover=yes`](Fixed-or-Improved-Logics.md#allow-other-vehicles-to-attempt-to-move-above-the-target-like-balloonhoveryes) (by TaranDahl)

Vanilla fixes:
- Fixed sidebar not updating queued unit numbers when adding or removing units when the production is on hold (by CrimRecya)
Expand Down
4 changes: 4 additions & 0 deletions src/Ext/TechnoType/Body.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1115,6 +1115,8 @@ void TechnoTypeExt::ExtData::LoadFromINIFile(CCINIClass* const pINI)

this->TeamMember_ConsideredAs.Read(exINI, pSection, "TeamMember.ConsideredAs");

this->CanGoAboveTarget.Read(exINI, pSection, "CanGoAboveTarget");

// Ares 0.2
this->RadarJamRadius.Read(exINI, pSection, "RadarJamRadius");

Expand Down Expand Up @@ -1790,6 +1792,8 @@ void TechnoTypeExt::ExtData::Serialize(T& Stm)
.Process(this->TeamMember_ConsideredAs)

.Process(this->TurretResponse)

.Process(this->CanGoAboveTarget)
;
}
void TechnoTypeExt::ExtData::LoadFromStream(PhobosStreamReader& Stm)
Expand Down
4 changes: 4 additions & 0 deletions src/Ext/TechnoType/Body.h
Original file line number Diff line number Diff line change
Expand Up @@ -455,6 +455,8 @@ class TechnoTypeExt

Nullable<bool> TurretResponse;

Valueable<bool> CanGoAboveTarget;

ExtData(TechnoTypeClass* OwnerObject) : Extension<TechnoTypeClass>(OwnerObject)
, HealthBar_Hide { false }
, HealthBar_HidePips { false }
Expand Down Expand Up @@ -860,6 +862,8 @@ class TechnoTypeExt
, TeamMember_ConsideredAs {}

, TurretResponse {}

, CanGoAboveTarget { false }
{ }

virtual ~ExtData() = default;
Expand Down
9 changes: 9 additions & 0 deletions src/Ext/Unit/Hooks.Firing.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -160,3 +160,12 @@ DEFINE_HOOK(0x741A96, UnitClass_SetDestination_ResetFiringFrame, 0x6)

return 0;
}

DEFINE_HOOK(0x74159F, UnitClass_ApproachTarget_GoAboveTarget, 0x6)
{
GET(UnitClass* const, pThis, ESI);
auto pType = pThis->Type;
auto pTypeExt = TechnoTypeExt::ExtMap.Find(pType);
R->AL(pType->BalloonHover || pTypeExt->CanGoAboveTarget);
return R->Origin() + 0x6;
}