Skip to content

Reconstruct the shared position boundary used by daSCre_c #2566

Description

@andrewboudreau

SCRE still stores its position through inherited scalar fields mPosX/mPosY/mPosZ at offsets 0x5c/0x60/0x64. At PR #2488 head 3982099, the leaf Pos() helper presents those fields as a Vector3 reference. That is an explicit local overlay, not a reconstructed shared Vector3 position member.

The independent review of head 969d498 measured a stack Vector3 alternative: Behavior grew from 92 to 116 bytes and emitted a four-byte Vector3 destructor. This supports retaining the measured boundary while investigating the shared layout; it does not prove every alternative impossible. The current review will attach fresh scoped probe identities in its handoff.

Follow-through owned by @andrewboudreau through the active humanizer/integrator work:

  • Determine the coherent shared position interface/layout from existing dActor_c and Vector3 definitions and their actual consumers.
  • Test any narrow improvement under pinned 2004/b56 with exact function bytes, module-correct relocation destinations, metadata and complete affected-consumer proof.
  • Preserve ordinary C++ construction and the existing allocator destination.
  • Keep reconstruction partial until this shared boundary is resolved or an evidence-bounded alternative is independently accepted.

Related PR #2513 is the open Lava cleanup proposing dActor_c::Pos(); it is not a merged shared API or this issue. PR #2488 remains the SCRE source repair. Current byte matching/promotion does not close this follow-up.

Activity

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

Metadata

Metadata

Labels

No labels
No labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions