vehicleSubSystems follow-up: reconstruct SegmentArc270 recharge dial

Reconstruct SegmentArc270 (@004c6244): engine SegmentArc base + a Scalar connection
driving currentValue + the |n|/(|n|-1)*0.75 segment-span factor.  Wire it into
WeaponCluster as the recharge dial (was a deferred NULL), reading the weapon's real
PercentDone attribute.  Render-verified (BT_DEV_GAUGES_DOCK): the green segmented
recharge circles draw in the weapon panels; 7 panels build, 0 crashes.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
arcattack
2026-07-07 07:30:44 -05:00
co-authored by Claude Opus 4.8
parent f4ad0f4340
commit fbf5118c9c
3 changed files with 43 additions and 7 deletions
+6 -4
View File
@@ -1124,10 +1124,12 @@ WeaponCluster::WeaponCluster(
warningCenterY = 0x6d - (img->Data.Size.y >> 1);
}
// rechargeArc (SegmentArc270 @004c6244, 0..360 recharge dial reading PercentDone).
// BRING-UP: the SegmentArc270 ctor is a placeholder in btl4gaug.hpp (its real
// @004c6244 body is not yet reconstructed); tracked NULL until it lands.
rechargeArc = NULL; // @0x34
// rechargeArc (SegmentArc270 @004c6244): the 0..360 recharge dial reading the
// weapon's PercentDone attribute (a real 0..1 fraction).
rechargeArc = (GraphicGauge *)new SegmentArc270((GaugeRate)0xffff, mfd_mode, // @004c6244
renderer_in, owner_ID, mfd_port, x + 0x41, y + 0x6d, 40.0f, 60.0f, 40.0f,
60.0f, 0.0f, 360.0f, 0x14, 0, 0xff, (Scalar *)percentDoneAttr, True,
"SegmentArc270");
configMap = new ConfigMapGauge(ChildRate(), mfd_mode, renderer_in, // @004c6d80
mfd_port, x + 0xee, y + 0x38, (Entity *)subsystem_in, "ConfigMap");