Skip to content

Finish Number position, resource and particle interfaces after #2744 #2769

Description

@andrewboudreau

Retain the remaining Number source reconstruction work after the PR #2744 correctness repair.

Next owner: codex-integrator-0918 (root coordinator). Finding: NUMBER-2744-05. This issue records a bounded continuation; it does not establish Source review acceptance.

The current local repair uses ordinary velocity, height and state updates, real Vector3 storage, and no volatile or integer-pointer scheduling barriers. Producer probes verify all eight Number functions and relocation destinations under 2004/b56; independent acceptance is pending. Three incorrect local call contracts are repaired and are not deferred here.

Remaining work:

  • Replace the two Vector3 views over the base actor's scalar position members through a separately owned reconstruction of the shared position layout, if supported by consumer evidence. In the measured Number forms, direct particle Y or direct owner scalar reads produce a 368-byte Behavior instead of 372; a named whole-position reference produces 376 bytes. The present casts are a retained source compromise, not proof that ordinary C++ cannot match.
  • Recover SharedFilePtr's loaded-file member and replace its +4 views. Reusing LoadFile return values in this TU produced a 436-byte InitResources instead of 444. The shared class currently exposes no recovered data fields.
  • Reconcile the shared TextureSequence SetFile declaration with its implemented u16 final argument, then investigate a genuine member call. The corrected Number bridge agrees with the actual definition. A probe using the existing shared member and a local Fix12 speed produced 468 bytes instead of 444; that existing header still declares the final argument u32, so the probe is not a proposed contract fix.
  • Reconstruct Particle::System::NewSimple in its actual shared class and verify its consumers before replacing Number's scalar bridge. The bridge now correctly returns void*; the current shared header has no NewSimple member. No compiler impossibility is claimed.
  • Recover the PowerStar halfword at 0x496 before replacing the remaining raw read. Number now uses the existing PowerStar::unk_43c member for the other condition. Offset 0x496 is still inside unrecovered padding.

Reproduction evidence will accompany the repair in notes/experiments/number-2744-source-forms.md. Start from the final reviewed PR #2744 repair, preserve attribution and actual callee contracts, and require independent source review plus strict object/relocation, affected-consumer and full-ROM proof for any change.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions