rickomax / psxprev

PSXPREV - Playstation (PSX) Files Previewer/Extractor
BSD 2-Clause "Simplified" License
193 stars 10 forks source link

Add handling for HMD shared geometry re-use #92

Closed trigger-segfault closed 11 months ago

trigger-segfault commented 11 months ago

Main changes

Shared geometry primitives can be defined outside of the post-process block. This means it's possible for shared geometry to be attached to the same model as the attachable indices. Models have been changed to include themselves in FixConnection checks (PSX attachables are excluded from this change, because I'm not sure how they work).

Additionally, shared geometry indices can be re-defined after a shared geometry primitive, meaning shared geometry primitives can only use indices that have been defined before them. To fix this, a SharedID is attached to ModelEntitys, and an attachable can only be used when attachable.SharedID <= attached.SharedID.

Other changes

Refactor changes