Fix geoset filtering using correct geosetId from M2 batch

M2 batches have a geosetIndex field that determines the geoset group for
filtering (0-18=body, 1xx=hair, etc.). We were incorrectly using submeshId
from the submesh struct instead. Now properly stores and uses geosetId.
This commit is contained in:
Kelsi 2026-02-05 23:26:30 -08:00
parent bfaa01cf6e
commit 937c5961c9
3 changed files with 6 additions and 4 deletions

View file

@ -104,9 +104,10 @@ struct M2Batch {
uint32_t vertexStart; // First vertex
uint32_t vertexCount; // Number of vertices
// Geoset info (from submesh)
uint16_t submeshId = 0; // Submesh/geoset ID (determines body part group)
// Geoset info
uint16_t submeshId = 0; // Submesh ID from skin file
uint16_t submeshLevel = 0; // Submesh level (0=base, 1+=LOD/alternate mesh)
uint16_t geosetId = 0; // Geoset ID for filtering (0-18=body, 1xx=hair, etc.)
};
// Attachment point (bone-anchored position for weapons, effects, etc.)