|
|
@ -361,12 +361,33 @@ int load_bsp(const char* bspname, world_t* world) |
|
|
fseek(f, header->lface.offset, SEEK_SET); |
|
|
fseek(f, header->lface.offset, SEEK_SET); |
|
|
fread(world->faceList, sizeof(unsigned short), world->faceListLength, f); |
|
|
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); |
|
|
fclose(f); |
|
|
return 1; |
|
|
return 1; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
void free_bsp(world_t* world) |
|
|
void free_bsp(world_t* world) |
|
|
{ |
|
|
{ |
|
|
|
|
|
free(world->leaves); |
|
|
|
|
|
free(world->nodes); |
|
|
|
|
|
|
|
|
free(world->faces); |
|
|
free(world->faces); |
|
|
free(world->faceList); |
|
|
free(world->faceList); |
|
|
free(world->edges); |
|
|
free(world->edges); |
|
|
|