diff --git a/src/ObjLoading/Game/T6/BSP/BSPCreator.cpp b/src/ObjLoading/Game/T6/BSP/BSPCreator.cpp index 0a6e4393..92ea2e82 100644 --- a/src/ObjLoading/Game/T6/BSP/BSPCreator.cpp +++ b/src/ObjLoading/Game/T6/BSP/BSPCreator.cpp @@ -91,9 +91,11 @@ namespace uint32_t index = tempIndices[idxOfIndex]; ufbx_vec3 transformedPos = ufbx_transform_position(&meshMatrix, ufbx_get_vertex_vec3(&mesh->vertex_position, index)); - vertex.pos.x = static_cast(transformedPos.x); - vertex.pos.y = static_cast(transformedPos.y); - vertex.pos.z = static_cast(transformedPos.z); + vec3_t blenderCoords; + blenderCoords.x = static_cast(transformedPos.x); + blenderCoords.y = static_cast(transformedPos.y); + blenderCoords.z = static_cast(transformedPos.z); + vertex.pos = BSPUtil::convertToBO2Coords(blenderCoords); if (surface.material.materialType == MATERIAL_TYPE_TEXTURE || surface.material.materialType == MATERIAL_TYPE_EMPTY) { diff --git a/src/ObjLoading/Game/T6/BSP/Linker/ClipMapLinker.cpp b/src/ObjLoading/Game/T6/BSP/Linker/ClipMapLinker.cpp index b43b6e9a..2cf1f7e6 100644 --- a/src/ObjLoading/Game/T6/BSP/Linker/ClipMapLinker.cpp +++ b/src/ObjLoading/Game/T6/BSP/Linker/ClipMapLinker.cpp @@ -218,6 +218,9 @@ namespace BSP assert(objectCount > 0); + if (objectCount > highestLeafObjectCount) + highestLeafObjectCount = objectCount; + // add the parent AABB node vec3_t parentMins; vec3_t parentMaxs; @@ -456,6 +459,8 @@ namespace BSP // The plane of each node have the same index for (size_t nodeIdx = 0; nodeIdx < nodeVec.size(); nodeIdx++) clipMap->nodes[nodeIdx].plane = &clipMap->info.planes[nodeIdx]; + + con::info("Highest leaf object count: {}", highestLeafObjectCount); } bool ClipMapLinker::loadPartitions(clipMap_t* clipMap, BSPData* bsp) @@ -471,7 +476,7 @@ namespace BSP clipMap->vertCount = static_cast(bsp->colWorld.vertices.size()); clipMap->verts = m_memory.Alloc(clipMap->vertCount); for (unsigned int vertIdx = 0; vertIdx < clipMap->vertCount; vertIdx++) - clipMap->verts[vertIdx] = BSPUtil::convertToBO2Coords(bsp->colWorld.vertices[vertIdx].pos); + clipMap->verts[vertIdx] = bsp->colWorld.vertices[vertIdx].pos; // The clipmap index buffer has a unique index for each vertex in the world, compared to the gfxworld's // index buffer having a unique index for each vertex on a surface. This code converts gfxworld indices to clipmap indices. diff --git a/src/ObjLoading/Game/T6/BSP/Linker/ClipMapLinker.h b/src/ObjLoading/Game/T6/BSP/Linker/ClipMapLinker.h index ca599557..3bfe6562 100644 --- a/src/ObjLoading/Game/T6/BSP/Linker/ClipMapLinker.h +++ b/src/ObjLoading/Game/T6/BSP/Linker/ClipMapLinker.h @@ -30,6 +30,7 @@ namespace BSP std::vector nodeVec; std::vector leafVec; std::vector AABBTreeVec; + size_t highestLeafObjectCount = 0; int addAABBTreeFromLeaf(BSPTree* node, clipMap_t* clipMap); int16_t loadBSPNode(clipMap_t* clipMap, BSPTree* tree); void loadBSPTree(clipMap_t* clipMap, BSPData* bsp); diff --git a/src/ObjLoading/Game/T6/BSP/Linker/GfxWorldLinker.cpp b/src/ObjLoading/Game/T6/BSP/Linker/GfxWorldLinker.cpp index 9f7386a3..e64be8fb 100644 --- a/src/ObjLoading/Game/T6/BSP/Linker/GfxWorldLinker.cpp +++ b/src/ObjLoading/Game/T6/BSP/Linker/GfxWorldLinker.cpp @@ -23,7 +23,7 @@ namespace BSP BSPVertex& bspVertex = bsp->gfxWorld.vertices.at(vertIdx); GfxPackedWorldVertex* gfxVertex = &vertexBuffer[vertIdx]; - gfxVertex->xyz = BSPUtil::convertToBO2Coords(bspVertex.pos); + gfxVertex->xyz = bspVertex.pos; gfxVertex->color.packed = pack32::Vec4PackGfxColor(bspVertex.color.v); gfxVertex->texCoord.packed = pack32::Vec2PackTexCoordsUV(bspVertex.texCoord.v); gfxVertex->normal.packed = pack32::Vec3PackUnitVecThirdBased(bspVertex.normal.v);