Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
5e17992
feat: add Unit Passengers Display
CZHczhABCZ Jun 27, 2026
1f1f0db
feat: add Unit Passengers Display
CZHczhABCZ Jun 27, 2026
acf66e8
docs: refine documentation formatting per review
CZHczhABCZ Jun 28, 2026
f8694e2
fix: address review feedback
CZHczhABCZ Jun 28, 2026
929925e
docs: update CSF fallback text and shorten Whats-New entry
CZHczhABCZ Jun 28, 2026
833bc82
[doc] Correct the writing of Changelog
DeathFishAtEase Jun 28, 2026
7e442ae
docs: move unit passengers display entry from Breaking changes to Cha…
CZHczhABCZ Jun 28, 2026
4853568
fix: add FootClass cast guard for buildings and RA2MD.INI config
CZHczhABCZ Jun 28, 2026
42d0d0b
Revert "docs: move unit passengers display entry from Breaking change…
CZHczhABCZ Jun 28, 2026
db52a4f
feat: add CameoPalette support for unit passenger display
CZHczhABCZ Jun 28, 2026
92365a5
style: fix code placement and formatting per review
CZHczhABCZ Jun 28, 2026
ee05b3a
style: add blank lines between unrelated declarations and calls
CZHczhABCZ Jun 28, 2026
074849c
style: fix whitespace in Rules/Body.cpp
CZHczhABCZ Jun 28, 2026
c2314d0
Merge upstream/develop into feat-unit-passengers-display
CZHczhABCZ Jul 4, 2026
801330c
refactor: rename UnitPassengers to Passengers, add global PerRow/Bott…
CZHczhABCZ Jul 4, 2026
04e0649
docs: rename Icons to Cameos, merge CSF messages, fix dirty diff in R…
CZHczhABCZ Jul 4, 2026
35a61cd
docs: split Toggle Passengers into standard format, add CSF message d…
CZHczhABCZ Jul 4, 2026
2b7b980
refactor: rename Passengers.Enable to ShowPassengers.Enable, move fie…
CZHczhABCZ Jul 4, 2026
0900197
Fix ShowPassengers logic priority and CameoPalette INI reading order
CZHczhABCZ Jul 4, 2026
a2bf97b
Rename CSF labels to PassengerCameoDisplay, fix icon layout order
CZHczhABCZ Jul 4, 2026
6cf1934
Fix passenger cameo layout: correct X (left-to-right) and Y (top-to-b…
CZHczhABCZ Jul 4, 2026
7820299
feat: add Show Cameo display feature with CustomPalette support
CZHczhABCZ Jul 5, 2026
a01c29a
fix: address review feedback - simplify docs, fix English comments, f…
CZHczhABCZ Jul 6, 2026
424ce73
fix: reverse draw order for buildings so that OverlapPrimary works co…
CZHczhABCZ Jul 6, 2026
2a35501
fix: address second round review - placement and formatting
CZHczhABCZ Jul 6, 2026
a956050
fix: micro-review - move Toggle Cameos after Deselect, clean up Whats…
CZHczhABCZ Jul 6, 2026
54f9776
fix: update changelog entry name and anchor to Show Cameo
CZHczhABCZ Jul 6, 2026
d00b4f5
docs: fix Occupier INI tag reference in Show Cameo section
CZHczhABCZ Jul 8, 2026
e8f1a88
Merge upstream/develop: resolve conflict in Whats-New.md
CZHczhABCZ Jul 8, 2026
e19bb92
fix: reorder ShowCameo entry after upstream DiscardOn entry in Whats-…
CZHczhABCZ Jul 8, 2026
2518c80
Merge branch 'feat-passengers-cameo-display' into feat-unit-passenger…
CZHczhABCZ Jul 8, 2026
5fad5fc
fix: remove duplicate DiscardOn entry, place ShowCameo at end
CZHczhABCZ Jul 8, 2026
3e4230a
docs: use cameo.pal instead of CAMEO_PAL for readability
CZHczhABCZ Jul 8, 2026
fa96886
Merge branch 'feat-passengers-cameo-display' into feat-unit-passenger…
CZHczhABCZ Jul 8, 2026
6c9ed24
feat: add ShowCameo.CustomPCX support for custom PCX cameo icons
CZHczhABCZ Jul 8, 2026
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 @@ -821,3 +821,4 @@ This page lists all the individual contributions to the project by their author.
- Multiplayer gamespeed fix for RealTimeTimers
- Revert Ares patch to allow OpenTopped transport customization
- Fix for units with Fly, Jumpjet or Rocket locomotors crashing off-map not being cleaned up
- **ABCZ (CZHczhABCZ)** - Unit passengers display
2 changes: 2 additions & 0 deletions Phobos.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@
<ClCompile Include="src\Commands\SaveVariablesToFile.cpp" />
<ClCompile Include="src\Commands\ToggleDesignatorRange.cpp" />
<ClCompile Include="src\Commands\ToggleDigitalDisplay.cpp" />
<ClCompile Include="src\Commands\ToggleUnitPassengers.cpp" />
<ClCompile Include="src\Commands\ToggleMessageList.cpp" />
<ClCompile Include="src\Commands\ToggleSWSidebar.cpp" />
<!-- src\Ext -->
Expand Down Expand Up @@ -303,6 +304,7 @@
<ClInclude Include="src\Commands\SaveVariablesToFile.h" />
<ClInclude Include="src\Commands\ToggleDesignatorRange.h" />
<ClInclude Include="src\Commands\ToggleDigitalDisplay.h" />
<ClInclude Include="src\Commands\ToggleUnitPassengers.h" />
<ClInclude Include="src\Commands\ToggleMessageList.h" />
<ClInclude Include="src\Commands\ToggleSWSidebar.h" />
<!-- src\Ext -->
Expand Down
40 changes: 40 additions & 0 deletions docs/User-Interface.md
Original file line number Diff line number Diff line change
Expand Up @@ -487,6 +487,41 @@ In `RA2MD.INI`:
ShowPowerPlantEnhancerRange=false ; boolean
```

### Unit Passengers Display

- You can now configure the game to display the passengers contained within a vehicle above it when selected. Each passenger type is shown as its Cameo icon with a count number in the upper-right corner.
- Two activation modes:
- **Permanent mode**: Set `ShowUnitPassengers=true` (global) or `ShowPassengers=true` (per-vehicle) to always show the display, regardless of the hotkey state.
- **Toggleable mode**: Set `ShowUnitPassengers.Toggleable=true` (global) and use the [Toggle Unit Passengers](#toggle-unit-passengers) hotkey to switch the display on/off. Per-vehicle `ShowPassengers.Toggleable` can override the global setting.
- When the feature is toggled via the hotkey, a message is shown in the top-left corner of the screen. The message text can be customized via CSF labels.
- Icons are arranged in horizontal rows from left to right, with the bottom row fixed at the bottom boundary. If the number of passenger types exceeds `Passengers.PerRow`, additional rows are drawn above the bottom row.

In `rulesmd.ini`:
```ini
[AudioVisual]
ShowUnitPassengers=false ; boolean, permanently shows passengers for all vehicles (ignores hotkey). Defaults to false
ShowUnitPassengers.Toggleable=false ; boolean, allows hotkey to toggle the display. Defaults to false
Comment thread
DeathFishAtEase marked this conversation as resolved.
Outdated
ShowUnitPassengers.EnabledMessage= ; CSF entry key, message shown when the feature is enabled via hotkey
ShowUnitPassengers.DisabledMessage= ; CSF entry key, message shown when the feature is disabled via hotkey
Comment thread
TaranDahl marked this conversation as resolved.
Outdated

[SOMETECHNO] ; TechnoType
ShowPassengers= ; boolean, permanently show/hide for this vehicle (overrides global). Not set = follow global
Comment thread
DeathFishAtEase marked this conversation as resolved.
Outdated
ShowPassengers.Toggleable= ; boolean, override global toggleable setting for this vehicle. Not set = follow global
Comment thread
TaranDahl marked this conversation as resolved.
Outdated
Passengers.PerRow=5 ; integer, max icons per row before wrapping, defaults to 5
Passengers.BottomOffset=0,0 ; X,Y, bottom boundary offset from selection bracket, defaults to 0,0
Comment thread
TaranDahl marked this conversation as resolved.
Outdated
```
Comment on lines +574 to +580

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No CustomPCX?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh wow, that makes sense... I forgot again. Something like a banner, hmm — yes, we do need support for custom PCX.

But WAIT…
The purpose of custom shapes is simply to expand the ways mods can display passengers or occupants. For example, an SHK could show a lightning bolt icon or animation, and a YURI could show a small mind-control icon or animation... So just custom SHP support might already be sufficient for these needs. As for custom PCX, I haven't yet figured out how it could be used.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As for custom PCX, I haven't yet figured out how it could be used.

Any difference with the CameoPCX?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[SOMETECHNO]                        ; TechnoType
ShowCameo.CustomShape=              ; SHP filename
ShowCameo.CustomPCX=                ; PCX filename
ShowCameo.CustomPalette=            ; PAL filename

It has been added…But I haven't tested whether it works properly (I think it should).


In `RA2MD.CSF`:

; Hotkey UI labels
TXT_UNIT_PASSENGERS Toggle Unit Passengers
TXT_UNIT_PASSENGERS_DESC Show/hide unit passengers display.

; Optional: customize the enabled/disabled messages
; (must match the labels set in ShowUnitPassengers.EnabledMessage / DisabledMessage)
MSG:UnitPassengersEnabled Unit Passengers display: Enabled
MSG:UnitPassengersDisabled Unit Passengers display: Disabled
Comment thread
TaranDahl marked this conversation as resolved.
Outdated

## Hotkey Commands

### `[ ]` Display Damage Numbers
Expand Down Expand Up @@ -519,6 +554,11 @@ ShowPowerPlantEnhancerRange=false ; boolean
- Switches on/off [digital display types](#digital-display).
- For localization add `TXT_DIGITAL_DISPLAY` and `TXT_DIGITAL_DISPLAY_DESC` into your `.csf` file.

### `[ ]` Toggle Unit Passengers

- Switches on/off [unit passengers display](#unit-passengers-display).
- For localization add `TXT_UNIT_PASSENGERS` and `TXT_UNIT_PASSENGERS_DESC` into your `.csf` file.

### `[ ]` Next Idle Harvester

- Selects and centers the camera on the next TechnoType that is counted via the [harvester counter](#harvester-counter) and is currently idle.
Expand Down
5 changes: 5 additions & 0 deletions docs/Whats-New.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,11 @@ This serves as a changelog for when you just need to drop the new version in wit

### Version TBD (develop branch nightly builds)

#### New:
Comment thread
DeathFishAtEase marked this conversation as resolved.
Outdated

- New unit passengers display feature - show passenger cameo icons and counts above vehicles when selected (see [User Interface](User-Interface.md#unit-passengers-display))
- New hotkey `Toggle Unit Passengers` to enable/disable the passengers display, with customizable CSF messages
- New INI tags: `[AudioVisual] -> ShowUnitPassengers`, `ShowUnitPassengers.Toggleable`, `ShowUnitPassengers.EnabledMessage`, `ShowUnitPassengers.DisabledMessage`, `[TechnoType] -> ShowPassengers`, `ShowPassengers.Toggleable`, `Passengers.PerRow`, `Passengers.BottomOffset`
- `Splits.TargetCellRange` < 0 now applies special behaviour where the projectile does not consider nearby cells as additional targets if there are not enough techno targets to match `Cluster` count at all.
- Combat light customizations introduced a bug that removed vanilla behaviour of ignoring detail level / framerate checks for colored combat light. This bug has been fixed but the previous behaviour can be restored by setting `CombatLightDetailLevel.CheckColored` on Warhead or globally under `[AudioVisual]`.
- `[TechnoType] -> WarpAway=` has now been changed to set the animation when units are erased to maintain semantic consistency with `[General] -> WarpAway=`. The animation that was originally controlled by `[TechnoType] -> WarpAway=`, which played instead of `[General] -> WarpOut=` when a Techno is chronowarped by chronosphere, now needs to be specified using `[TechnoType] -> Chronoshift.WarpOut=`, which defaults to the value of `[TechnoType] -> WarpOut=`.
Expand Down
2 changes: 2 additions & 0 deletions src/Commands/Commands.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
#include "FrameByFrame.h"
#include "FrameStep.h"
#include "ToggleDigitalDisplay.h"
#include "ToggleUnitPassengers.h"
Comment thread
DeathFishAtEase marked this conversation as resolved.
Outdated
#include "ToggleDesignatorRange.h"
#include "SaveVariablesToFile.h"
#include "ToggleSWSidebar.h"
Expand All @@ -27,6 +28,7 @@ DEFINE_HOOK(0x533066, CommandClassCallback_Register, 0x6)
MakeCommand<NextIdleHarvesterCommandClass>();
MakeCommand<QuickSaveCommandClass>();
MakeCommand<ToggleDigitalDisplayCommandClass>();
MakeCommand<ToggleUnitPassengersCommandClass>();
Comment thread
DeathFishAtEase marked this conversation as resolved.
Outdated
MakeCommand<ToggleDesignatorRangeCommandClass>();
MakeCommand<ToggleMessageListCommandClass>();
MakeCommand<ToggleSWSidebar>();
Expand Down
56 changes: 56 additions & 0 deletions src/Commands/ToggleUnitPassengers.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
#include "ToggleUnitPassengers.h"

#include <Utilities/GeneralUtils.h>
#include <Ext/Rules/Body.h>
#include <MessageListClass.h>
#include <HouseClass.h>

const char* ToggleUnitPassengersCommandClass::GetName() const
{
return "Toggle Unit Passengers";
}

const wchar_t* ToggleUnitPassengersCommandClass::GetUIName() const
{
return GeneralUtils::LoadStringUnlessMissing("TXT_UNIT_PASSENGERS", L"Toggle Unit Passengers");
}

const wchar_t* ToggleUnitPassengersCommandClass::GetUICategory() const
{
return CATEGORY_INTERFACE;
}

const wchar_t* ToggleUnitPassengersCommandClass::GetUIDescription() const
{
return GeneralUtils::LoadStringUnlessMissing("TXT_UNIT_PASSENGERS_DESC", L"Show/hide unit passengers display.");
}

void ToggleUnitPassengersCommandClass::Execute(WWKey eInput) const
{
Phobos::Config::UnitPassengers_Enable = !Phobos::Config::UnitPassengers_Enable;

auto PrintMessage = [](const wchar_t* pMessage)
{
MessageListClass::Instance.PrintMessage(
pMessage,
RulesClass::Instance->MessageDelay,
HouseClass::CurrentPlayer->ColorSchemeIndex,
true
);
};

const auto pRulesExt = RulesExt::Global();

if (Phobos::Config::UnitPassengers_Enable)
{
const auto& msg = pRulesExt->ShowUnitPassengers_EnabledMessage;
if (msg.isset())
PrintMessage(GeneralUtils::LoadStringUnlessMissing(msg.Get().Label, L"Unit Passengers display: Enabled"));
}
else
{
const auto& msg = pRulesExt->ShowUnitPassengers_DisabledMessage;
if (msg.isset())
PrintMessage(GeneralUtils::LoadStringUnlessMissing(msg.Get().Label, L"Unit Passengers display: Disabled"));
}
}
13 changes: 13 additions & 0 deletions src/Commands/ToggleUnitPassengers.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#pragma once

#include "Commands.h"

class ToggleUnitPassengersCommandClass : public CommandClass
{
public:
virtual const char* GetName() const override;
virtual const wchar_t* GetUIName() const override;
virtual const wchar_t* GetUICategory() const override;
virtual const wchar_t* GetUIDescription() const override;
virtual void Execute(WWKey eInput) const override;
};
8 changes: 8 additions & 0 deletions src/Ext/Rules/Body.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -366,6 +366,10 @@ void RulesExt::ExtData::LoadBeforeTypeData(RulesClass* pThis, CCINIClass* pINI)
this->SortCameoByName.Read(exINI, GameStrings::General, "SortCameoByName");

this->MergeBuildingDamage.Read(exINI, GameStrings::CombatDamage, "MergeBuildingDamage");
this->ShowUnitPassengers.Read(exINI, GameStrings::AudioVisual, "ShowUnitPassengers");
this->ShowUnitPassengers_Toggleable.Read(exINI, GameStrings::AudioVisual, "ShowUnitPassengers.Toggleable");
this->ShowUnitPassengers_EnabledMessage.Read(exINI, GameStrings::AudioVisual, "ShowUnitPassengers.EnabledMessage");
this->ShowUnitPassengers_DisabledMessage.Read(exINI, GameStrings::AudioVisual, "ShowUnitPassengers.DisabledMessage");

this->ApplyPerTargetEffectsOnDetonate.Read(exINI, GameStrings::CombatDamage, "ApplyPerTargetEffectsOnDetonate");

Expand Down Expand Up @@ -769,6 +773,10 @@ void RulesExt::ExtData::Serialize(T& Stm)
.Process(this->MindControl_Permanent_ReplaceSilent)
.Process(this->TeamDelays_DynamicType)
.Process(this->TeamDelays_Count)
.Process(this->ShowUnitPassengers)
.Process(this->ShowUnitPassengers_Toggleable)
.Process(this->ShowUnitPassengers_EnabledMessage)
.Process(this->ShowUnitPassengers_DisabledMessage)
;
}

Expand Down
10 changes: 9 additions & 1 deletion src/Ext/Rules/Body.h
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,11 @@ class RulesExt

Valueable<bool> MergeBuildingDamage;

Valueable<bool> ShowUnitPassengers;
Valueable<bool> ShowUnitPassengers_Toggleable;
Nullable<CSFText> ShowUnitPassengers_EnabledMessage;
Nullable<CSFText> ShowUnitPassengers_DisabledMessage;

Valueable<double> DamageOwnerMultiplier;
Valueable<double> DamageAlliesMultiplier;
Valueable<double> DamageEnemiesMultiplier;
Expand Down Expand Up @@ -664,9 +669,12 @@ class RulesExt
, DiscardOn_MoveBasedOnDestination { false }
, RemoveMindControl_Silent { false }
, MindControl_Permanent_ReplaceSilent { false }

, TeamDelays_DynamicType { DynamicTeamDelayType::StartingPoint }
, TeamDelays_Count {}
, ShowUnitPassengers { false }
, ShowUnitPassengers_Toggleable { false }
, ShowUnitPassengers_EnabledMessage {}
, ShowUnitPassengers_DisabledMessage {}
{ }

virtual ~ExtData() = default;
Expand Down
120 changes: 120 additions & 0 deletions src/Ext/Techno/Body.Visuals.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
#include <Ext/Anim/Body.h>
#include <Ext/SWType/Body.h>
#include <Ext/House/Body.h>
#include <ObjectClass.h>

void TechnoExt::DrawSelfHealPips(TechnoClass* pThis, Point2D* pLocation, RectangleStruct* pBounds)
{
Expand Down Expand Up @@ -873,3 +874,122 @@ void TechnoExt::ShowPromoteAnim(TechnoClass* pThis)
else if (!eliteAnims.empty())
AnimExt::CreateRandomAnim(eliteAnims, pThis->GetCenterCoords(), pThis, pThis->Owner, true, true);
}

void TechnoExt::DrawUnitPassengers(TechnoClass* pThis)
{
if (ObjectClass::CurrentObjects.Count != 1)
return;

if (ObjectClass::CurrentObjects.GetItem(0) != pThis)
return;

const auto whatAmI = pThis->WhatAmI();
if (whatAmI != AbstractType::Unit && whatAmI != AbstractType::Aircraft)
return;
Comment thread
TaranDahl marked this conversation as resolved.
Outdated

const auto pType = pThis->GetTechnoType();
const auto pTypeExt = TechnoTypeExt::ExtMap.Find(pType);
const auto pRulesExt = RulesExt::Global();

bool shouldShow = false;

if (pTypeExt->ShowPassengers.isset())
{
shouldShow = pTypeExt->ShowPassengers.Get();
}
else if (pRulesExt->ShowUnitPassengers)
{
shouldShow = true;
}
else
{
const bool toggleable = pTypeExt->ShowPassengers_Toggleable.Get(pRulesExt->ShowUnitPassengers_Toggleable);
if (toggleable && Phobos::Config::UnitPassengers_Enable)
shouldShow = true;
}

if (!shouldShow)
return;

if (pThis->Passengers.NumPassengers <= 0)
return;

std::map<TechnoTypeClass*, int> passengerCounts;
for (auto pPassenger = pThis->Passengers.GetFirstPassenger(); pPassenger; pPassenger = abstract_cast<FootClass*>(pPassenger->NextObject))
{
passengerCounts[pPassenger->GetTechnoType()]++;
}

if (passengerCounts.empty())
Comment thread
DeathFishAtEase marked this conversation as resolved.
Outdated
return;

const auto bracketPos = GetFootSelectBracketPosition(pThis, Anchor(HorizontalPosition::Center, VerticalPosition::Top));
Comment thread
DeathFishAtEase marked this conversation as resolved.
Outdated
const auto& bottomOffset = pTypeExt->Passengers_BottomOffset;
Point2D basePos = bracketPos;
basePos.X += bottomOffset.Get().X;
basePos.Y += bottomOffset.Get().Y + pType->PixelSelectionBracketDelta;
Comment thread
DeathFishAtEase marked this conversation as resolved.
Outdated

const double scale = 1.0;

const int perRow = pTypeExt->Passengers_PerRow;
const int iconWidth = static_cast<int>(60 * scale);
const int iconHeight = static_cast<int>(48 * scale);
const int hGap = 2;
const int vGap = 2;

const int count = static_cast<int>(passengerCounts.size());
const int rows = (count + perRow - 1) / perRow;

const auto pSurface = DSurface::Composite;
RectangleStruct bounds = DSurface::Composite->GetRect();

int idx = 0;
for (const auto& item : passengerCounts)
{
const auto pPassengerType = item.first;
const int passengerCount = item.second;

const int row = idx / perRow;
const int col = idx % perRow;

const int itemsInThisRow = (row == rows - 1 && count % perRow != 0) ? (count % perRow) : perRow;
const int rowWidth = itemsInThisRow * (iconWidth + hGap) - hGap;
const int startX = basePos.X - rowWidth / 2;

const int y = basePos.Y - iconHeight - (rows - 1 - row) * (iconHeight + vGap);

Point2D iconPos = { startX + col * (iconWidth + hGap), y };

SHPStruct* pCameo = pPassengerType->GetCameo();
if (pCameo)
{
pSurface->DrawSHP(
FileSystem::CAMEO_PAL,
pCameo,
0,
&iconPos,
&bounds,
BlitterFlags::bf_400 | BlitterFlags::Alpha,
0, 0,
ZGradient::Ground,
1000, 0, nullptr, 0, 0, 0
);
Comment thread
TaranDahl marked this conversation as resolved.

wchar_t countText[16];
_snwprintf_s(countText, _countof(countText), _TRUNCATE, L"%d", passengerCount);

Point2D textPos = { iconPos.X + iconWidth - 4, iconPos.Y + 2 };

pSurface->DrawTextA(
countText,
&bounds,
&textPos,
Drawing::RGB_To_Int({ 0, 255, 0 }),
0,
TextPrintType::Center | TextPrintType::FullShadow
);
}

idx++;
}
}
1 change: 1 addition & 0 deletions src/Ext/Techno/Body.h
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,7 @@ class TechnoExt
static Point2D GetBuildingSelectBracketPosition(TechnoClass* pThis, BuildingSelectBracketPosition bracketPosition);
static void DrawSelectBox(TechnoClass* pThis, const Point2D* pLocation, const RectangleStruct* pBounds, bool drawBefore = false);
static void ProcessDigitalDisplays(TechnoClass* pThis);
static void DrawUnitPassengers(TechnoClass* pThis);
static void GetValuesForDisplay(TechnoClass* pThis, TechnoTypeClass* pType, DisplayInfoType infoType, int& value, int& maxValue, int infoIndex);
static void GetDigitalDisplayFakeHealth(TechnoClass* pThis, int& value, int& maxValue);
static void CreateDelayedFireAnim(TechnoClass* pThis, AnimTypeClass* pAnimType, int weaponIndex, bool attach, bool center, bool removeOnNoDelay, bool onTurret, CoordStruct firingCoords);
Expand Down
2 changes: 2 additions & 0 deletions src/Ext/Techno/Hooks.Pips.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ DEFINE_HOOK(0x6F65D1, TechnoClass_DrawHealthBar_Buildings, 0x6)
}

TechnoExt::ProcessDigitalDisplays(pThis);
TechnoExt::DrawUnitPassengers(pThis);

return 0;
}
Expand Down Expand Up @@ -123,6 +124,7 @@ DEFINE_HOOK(0x6F683C, TechnoClass_DrawHealthBar_Units, 0x7)
}

TechnoExt::ProcessDigitalDisplays(pThis);
TechnoExt::DrawUnitPassengers(pThis);

if (pExt->TypeExtData->HealthBar_HidePips)
{
Expand Down
Loading