HUD (task #68 follow-up): authentic reticle pip GROUPS -- front vs rear
The binary reticle registration resolves each weapon's RearFiring attribute and registers its pip in group 1 (front) or 2 (rear) (part_014.c:5429-5434) [T1]; the reticle draws the group selected by the mech's reticleElementMask low bits (= binary mech+0x390, driven by the weapon-update view switch part_013.c:5588-5595: forward |1&~2, look-back |2&~1). Port: BTBuildReticle passes the real group (was hardcoded 1 on the disproven "no BLH weapon is rear" belief); BTCommitLookState drives the mech's reticleElementMask low bits per view (mech4's HUD tick already publishes them as gBTHudGroupMask, and the reticle Draw already filters on it). Resolves the user-reported "only 2 ERM dots but the mech has 3": ERMLaser_1 (front) and ERMLaser_2 (rear) both author pip position 1 -- with every pip drawn in one group the two red dots sat exactly on top of each other. Now: forward view = 5 pips (2 PPC + ERM_1 + 2 SRM), look-back = the 2 rear lasers' own group layout. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
38febae36b
commit
ebdfa40d95
@@ -1902,7 +1902,12 @@ BTReticleRenderable *BTBuildReticle(Entity *mech)
|
||||
2, 3,
|
||||
(int *)wp->SimulationStatePtr(), // attr 1: damage state (1 = destroyed)
|
||||
1,
|
||||
1 /* Front group (RearFiring==0 on every BLH weapon) */);
|
||||
// (task #68) the AUTHENTIC pip group: the binary registration reads
|
||||
// the weapon's RearFiring attr and passes group 1 (front) / 2 (rear)
|
||||
// (part_014.c:5429-5434) -- the reticle draws the group matching
|
||||
// the current look view (mech reticleElementMask low bits). The
|
||||
// old hardcoded 1 rode the disproven "no BLH weapon is rear" belief.
|
||||
wp->GetRearFiring() ? 2 : 1);
|
||||
}
|
||||
DEBUG_STREAM << "[hud] reticle built: " << gBTReticle->WeaponCount()
|
||||
<< " weapon pip(s) registered\n" << std::flush;
|
||||
|
||||
Reference in New Issue
Block a user