4.10 reconstruction: real spawn factory path -> Mech ctor frontier
BTPlayer::CreatePlayerVehicle reconstructed (faithful; BT411's BT_SPAWN_XZ/ BT_SPAWN_ENEMY bring-up scaffolding dropped): builds the Mech::MakeMessage from the mission game-model resource and hands it to MakeAndLinkViewpointEntity. Mech::Make = new Mech(creation_message); a staged Mech ctor chains the real JointedMover base (so the model skeleton/segments stream from BTL4.RES) then Fails. This validates the entire spawn factory chain live: CreatePlayerVehicle -> MakeAndLinkViewpointEntity -> registry -> Mech::Make -> new Mech -> JointedMover base ctor (streams the mech model) -> halts at the Mech ctor (mech.cpp:66). The Mech ctor (@004a1674, 5690 bytes -- the largest function in the game) plus the subsystem roster is the next MAJOR milestone, not a brick: it needs the full 1995 Mech member layout derived first (MECH.HPP is still reserved[331]; BT411's decomp uses raw offset pokes that can't compile fresh), the subsystem class hierarchy (only GAUSS/PPC/SENSOR survive in the 4.10 archive; the rest are the measured "917 missing functions"), and the segment-table walk. Plan + scope in MECH.NOTES.md. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -43,10 +43,31 @@ Mech::SharedData
|
||||
//#############################################################################
|
||||
//
|
||||
Mech*
|
||||
Mech::Make(MakeMessage *)
|
||||
Mech::Make(MakeMessage *creation_message)
|
||||
{
|
||||
return new Mech(creation_message);
|
||||
}
|
||||
|
||||
//
|
||||
//#############################################################################
|
||||
// Mech ctor -- the heart of the entity (walks the model segment table and
|
||||
// instantiates the full subsystem roster: power, heat, weapons, actuators,
|
||||
// controls, tech, damage zones). This is the largest single function in the
|
||||
// game and the current reconstruction frontier; see MECH.NOTES.md. Chains to
|
||||
// the JointedMover base so the skeleton/segments stream before it Fails.
|
||||
//#############################################################################
|
||||
//
|
||||
Mech::Mech(
|
||||
MakeMessage *creation_message,
|
||||
SharedData &shared_data
|
||||
):
|
||||
JointedMover(creation_message, shared_data)
|
||||
{
|
||||
Fail("Mech::Mech -- mech.cpp not yet reconstructed");
|
||||
}
|
||||
|
||||
Mech::~Mech()
|
||||
{
|
||||
Fail("Mech::Make -- mech.cpp not yet reconstructed");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
Reference in New Issue
Block a user