Files
firestorm/Gameleap/mw4/Content/Mechs/jenner2c/STATUS
T
7cd1d51e08 Revert the jenner2c .instance page rename: variants bind to that name
Saved mechlab variants reference their chassis by the .instance PAGE name, so
renaming [jenner_iic1] to [jenner2c] orphaned V4H's three Jenner variants
(Jenner2c 1, Jenner2c 4, Jenner2c Pharaoh). Each stores 'jenner_iic1' in its
{Mech} blob and carries a jenner_iic1{Subsystem} entry.

I renamed it in a67d1c00 for consistency, calling it the sole outlier among 89
chassis. It was not an outlier, it was load-bearing, and the earlier V4H notes
compounded the error by recording those three variants as "broken/orphaned --
chassis jenner_iic1 does not exist even in V4H". It does: it is this page.

Evidence the binding is the page name and not the folder or filename:
Content/Mechs/Blackhawk declares [nova] and its nine Black Hawk variants all
reference 'nova'. Matching is case-insensitive -- [Loki] is referenced as
'loki', [Ryoken] as 'ryoken' -- but the name itself must match. Checking every
offset in the 344-byte {Mech} blob found no position holding the positional
MechID for all 59 sampled chassis, so variants store no index at all and the
alphabetical renumbering from adding six chassis cannot disturb them.

The filename renames jenner_2c.* -> jenner2c.* are kept; nothing references
those. The champion_stroyed and thunderbolt_destroyed.obb renames are also
unaffected, being reachable only from their own .data. The other five new
chassis already declare the page names their variants expect.

Co-authored-by: Claude Opus 5 (Anthropic) <noreply@anthropic.com>
Co-authored-by: GitHub Copilot <copilot@github.com>
2026-08-09 18:39:59 -05:00

78 lines
4.8 KiB
Plaintext

INSTALLED - assets are in the repo. NOT yet added to Content/core.build, so
the chassis is still inert at runtime.
have: .erf / .mw4anim / .obb source
jenner2c.armature jenner2c.contents jenner2c.instance
jenner2c.subsystems jenner2c.data jenner2c.damage
jenner2c.torso jenner2c.engine
All eight decompiled from the V4H package and verified by round-tripping
the same decompiler over our own 64 chassis:
.data 8291/8306 keys .damage 6605/6605 keys
.contents 7480/7480 keys .instance 896/896 keys
.torso/.engine 1279/1280 keys .armature/.subsystems see sections 5, 8
Every internal reference here resolves to a file that is present.
installed (2026-08-09, commits a67d1c00 + 8e859007): chassis folder, wreck
folder jenner2c_destroyed, skins @ajec0-5, FootSteps/jenner2c_*, the
9 matching textures.hint pages (6 skin + 3 footstep, copied verbatim
from the Annihilator template) and portrait hsh/Mechs/jenner2c.bmp.
Shared by all six chassis: generic damage dolls hsh/hud/generic.bmp
and hsh/radar/hud/generic.bmp (supplied by V4H), plus cockpit doll
Content/textures/HUD/generic.tga, target-MFD tile hsh/MFD/generic.bmp
and the [hud\generic] page (authored here).
All 1217 file references across the six chassis resolve.
applied: MoveTypeFlag LEGMOVETYPE -> LEGJUMPMOVETYPE. CanLoadJumpJets=Yes,
JumpJetTonnage=2, both jump-jet site names are real and .subsystems
actually equips a JumpJetSubsystem, so the LEGMOVETYPE it was
decompiled with was the inconsistent value.
All eight core files renamed jenner_2c.* -> jenner2c.*, along with
jenner_2c_cage.erf and both skeleton .obb files. Every internal
reference was updated to match: .instance, .contents, .subsystems,
.data (SolidOBB / HierarchicalOBB) and armaturevideo/joint_cage.video.
The .instance page name stays [jenner_iic1]. DO NOT "tidy" it to
[jenner2c]: saved variants bind to a chassis by its .instance page
name, so renaming it orphans V4H's three Jenner variants (Jenner2c 1,
Jenner2c 4, Jenner2c Pharaoh), each of which stores 'jenner_iic1' in
its {Mech} blob and carries a jenner_iic1{Subsystem} entry. Those
variants are NOT broken, contrary to the earlier V4H notes - the page
they name is exactly this one. Proof the binding is the page name and
not the folder: Content/Mechs/Blackhawk declares [nova], and its
variants reference 'nova'. Matching is case-insensitive ([Loki] is
referenced as 'loki'), but the name itself must match.
This chassis keeps its own jenner2c.animscript - it is the only one of
the six that does not borrow another mech's.
still to do:
1. Add $(M_Jenner2c) to Content/ShellScripts/MechLabHeaders.h and $(IDS_Jenner2c) to
Content/Defines/MissionLang.defines. The .data references both. V4H's packages
store mech ids from an OLDER roster (shifted against ours), so the stored
integer was deliberately discarded - see DECOMPILING.md section 8c.
2. Register the chassis through the rest of the chain in ADDING-A-MECH.md.
The code arrays grow 65 -> 71 and LastMechID 64 -> 70; the shell-script
arrays are currently sized 65-67.
3. Add the .build entries to Content/core.build, one chassis at a time. Until
that happens the chassis is inert - the packer never visits these files.
4. Delete this STATUS file once the chassis is registered.
decision (2026-08-08, executed 2026-08-09): USE THIS ONE. The repo's own
Content/Mechs/jenner2c/ was DELETED in commit a67d1c00 and replaced by
this package. It was deleted rather than copied over because only 2 of
its 84 files shared a path with this set, so overwriting would have
left 78 stale j2c_* files behind - still resolving, and packable.
Ours was unfinished scaffolding: .subsystems had NO weapons at
all, every armour value is the placeholder 0.1, EngineUpgrades=0, it uses
Mech_Foot_Large effects on a 35-ton light mech, and its .data references
content\mechs\jenner2c\jenner2c.animscript - a file that does not exist
anywhere in our tree. Zero art is shared between the two (prefix j2c_ vs jec_,
0 of 27 comparable parts byte-identical). Ours is higher-poly (1065 KB vs
250 KB; shipped light mechs run 390-490 KB), which is the only thing it had
going for it, and plausibly why it was never finished.
notes: The .obb and .armature filenames are not stored in the package; the values
in .data / .contents were matched to the files actually present here.
Rename the file and the key together if you change either.
see: MW4COMPARE/DECOMPILING.md sections 8c-8g and 11