mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-25 00:20:16 +00:00
Fix character geoset mapping and texture corruption on equipment change
Corrected CharGeosets group assignments verified via vertex bounding boxes: - Group 4 (401+) = gloves/forearms, Group 5 (501+) = boots/shins, Group 8 (801+) = sleeves (chest-controlled), Group 9 = kneepads, Group 13 (1301+) = pants/trousers, Group 20 (2002) = bare feet - Changed bare shin default from 501 to 502 for better width match with thigh mesh (0.39 vs 0.32, thighs are 0.42) - Added clearCompositeCache() to prevent stale composite textures from being reused across equipment changes - Fixed character preview geoset defaults to match corrected mapping
This commit is contained in:
parent
8a468e9533
commit
ed6b305158
10 changed files with 424 additions and 169 deletions
|
|
@ -966,6 +966,12 @@ M2Model M2Loader::load(const std::vector<uint8_t>& m2Data) {
|
|||
model.textureLookup = readArray<uint16_t>(m2Data, header.ofsTexLookup, header.nTexLookup);
|
||||
}
|
||||
|
||||
// Read bone lookup table (vertex bone indices reference this to get actual bone index)
|
||||
if (header.nBoneLookupTable > 0 && header.ofsBoneLookupTable > 0) {
|
||||
model.boneLookupTable = readArray<uint16_t>(m2Data, header.ofsBoneLookupTable, header.nBoneLookupTable);
|
||||
core::Logger::getInstance().debug(" BoneLookupTable: ", model.boneLookupTable.size(), " entries");
|
||||
}
|
||||
|
||||
// Read render flags / materials (blend modes)
|
||||
if (header.nRenderFlags > 0 && header.ofsRenderFlags > 0) {
|
||||
struct M2MaterialDisk { uint16_t flags; uint16_t blendMode; };
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue