From 06e87e85a2adb84bf33a32a07f88ff2dd9a93ed4 Mon Sep 17 00:00:00 2001 From: Nico de Poel Date: Thu, 29 Sep 2022 10:19:51 +0200 Subject: [PATCH] Added loading of nodes and leaves --- main.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/main.cpp b/main.cpp index c3a66f2..10d7abd 100644 --- a/main.cpp +++ b/main.cpp @@ -361,12 +361,33 @@ int load_bsp(const char* bspname, world_t* world) fseek(f, header->lface.offset, SEEK_SET); fread(world->faceList, sizeof(unsigned short), world->faceListLength, f); + // Load nodes + world->numNodes = header->nodes.size / sizeof(node_t); + world->nodes = (node_t*)malloc(header->nodes.size); + if (world->nodes == NULL) + return 0; + + fseek(f, header->nodes.offset, SEEK_SET); + fread(world->nodes, sizeof(node_t), world->numNodes, f); + + // Load leaves + world->numLeaves = header->leaves.size / sizeof(dleaf_t); + world->leaves = (dleaf_t*)malloc(header->leaves.size); + if (world->leaves == NULL) + return 0; + + fseek(f, header->leaves.offset, SEEK_SET); + fread(world->leaves, sizeof(dleaf_t), world->numLeaves, f); + fclose(f); return 1; } void free_bsp(world_t* world) { + free(world->leaves); + free(world->nodes); + free(world->faces); free(world->faceList); free(world->edges);