From 8b3b60590558d2a6b273b02dd5e60600d4152918 Mon Sep 17 00:00:00 2001 From: "Jasper St. Pierre" Date: Sun, 12 Apr 2026 19:18:20 -0700 Subject: [PATCH] simpler fix for missing triangles this is a bit weird, the first prism is always skipped (because 0 is used as a sentinel), and it looks like there can even be a normal inside that first prism's junk data, so we need to swap one more, not one less --- src/d/d_bg_w_kcol.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/d/d_bg_w_kcol.cpp b/src/d/d_bg_w_kcol.cpp index 46e5e5dd21..cc58a0f1eb 100644 --- a/src/d/d_bg_w_kcol.cpp +++ b/src/d/d_bg_w_kcol.cpp @@ -40,13 +40,10 @@ void* dBgWKCol::initKCollision(void* i_kclData) { Vec* p_nrm = kcl->m_nrm_data; KC_PrismData* p_prism = kcl->m_prism_data; BE(u32)* p_block = kcl->m_block_data; - int np = 0, nn = 0; - for (Vec* pw = p_pos; pw < p_nrm; pw++, np++) + for (Vec* pw = p_pos; pw < p_nrm; pw++) be_swap(*pw); - for (Vec* pw = p_nrm; (uintptr_t)pw < (uintptr_t)p_prism; pw++, nn++) + for (Vec* pw = p_nrm; (uintptr_t)pw < (uintptr_t)p_prism + sizeof(Vec); pw++) be_swap(*pw); - // for (KC_PrismData* pw = p_prism; (uintptr_t)pw < (uintptr_t)p_block; pw++) - // be_swap(*pw); #else ((KC_Header*)i_kclData)->m_pos_data = (Vec*)((uintptr_t)((KC_Header*)i_kclData) + (uintptr_t)((KC_Header*)i_kclData)->m_pos_data);