You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Generic STAT Shader Parameters: Materials in classic HW2 HODs now parse arbitrary param_type / value_size / value records with optional names. Texture slots are bound from every param_type == 5 record, and material parameters round-trip through save. This fixes crashes on files like bullet_splash.hod and dropped material maps on asteroid4.hod.
Texture Name Collision Fix: Layer selectors like fth_export.psd[1] now keep their [N] suffix (fth_export[1]DXT5) instead of colliding with the base name. Previously the DIFF and GLOW maps of a material could collapse into one texture slot, making models render blue with the glow map bound as the diffuse.
Developer Experience
Parser modularized: the monolithic hod.rs is now 16 focused modules (types, math, texture_codec, animation, model_methods, engine_nozzles, parse, serialize, ...) with the public API unchanged. Parser unit tests grew from 14 to 28.
Machine-local configuration: verify_lossless now resolves its fixture paths from an untracked local-environment file (docs/local-environment.md explains the convention), so a fresh clone works with cargo test out of the box.
Repository cleanup: one-off scratch scripts removed, testing fixtures documented instead of tracked, and docs updated for generic (non-machine-specific) development.