diff --git a/ps1bsp.h b/ps1bsp.h index 3ee06db..14b9562 100755 --- a/ps1bsp.h +++ b/ps1bsp.h @@ -154,8 +154,10 @@ typedef struct SVECTOR boundingSphere; SVECTOR origin; - u_short nodeId; - u_short clipNodeId; + u_short nodeId0; + u_short nodeId1; + u_short nodeId2; + u_short nodeId3; } ps1bsp_model_t; // Pre-parsed and encoded entity data (this runs the risk of becoming too bloated) diff --git a/test.ps1bsp b/test.ps1bsp index 23c2221..bb4139a 100755 Binary files a/test.ps1bsp and b/test.ps1bsp differ diff --git a/world.c b/world.c index 536c0a9..06e32c3 100644 --- a/world.c +++ b/world.c @@ -49,9 +49,9 @@ void world_load(const u_long *data, world_t *world) LOAD_CHUNK(ps1bsp_plane_t, world->planes, world->numPlanes, bytes, header->planes); LOAD_CHUNK(ps1bsp_node_t, world->nodes, world->numNodes, bytes, header->nodes); LOAD_CHUNK(ps1bsp_leaf_t, world->leaves, world->numLeaves, bytes, header->leaves); + LOAD_CHUNK(ps1bsp_model_t, world->models, world->numModels, bytes, header->models); LOAD_CHUNK(u_short, world->leafFaces, world->numLeafFaces, bytes, header->leafFaces); LOAD_CHUNK(u_char, world->visData, world->numVisData, bytes, header->visData); - LOAD_CHUNK(ps1bsp_model_t, world->models, world->numModels, bytes, header->models); } static INLINE short world_pointPlaneDist(const VECTOR *point, const ps1bsp_plane_t *plane) @@ -331,7 +331,7 @@ void world_draw(const world_t *world) else world_drawface = &world_drawface_lit; - ps1bsp_leaf_t *firstLeaf = world_sortLeafs(world, 0, pvs); + ps1bsp_leaf_t *firstLeaf = world_sortLeafs(world, world->models[0].nodeId0, pvs); ps1bsp_face_t *firstFace = world_sortFaces(world, firstLeaf); world_drawFaces(world, firstFace); } diff --git a/world.h b/world.h index a8bf541..c4aeb50 100644 --- a/world.h +++ b/world.h @@ -34,14 +34,14 @@ typedef struct u_short numLeaves; ps1bsp_leaf_t *leaves; + u_short numModels; + ps1bsp_model_t *models; + u_short numLeafFaces; u_short *leafFaces; u_short numVisData; u_char *visData; - - u_short numModels; - ps1bsp_model_t *models; } world_t; #define CONTENTS_EMPTY -1