| 405 | } |
| 406 | |
| 407 | void Quake3Level::initialise(void) { |
| 408 | FILE* fp = fopen(theFileName.c_str(), "rb"); |
| 409 | if (!fp) { |
| 410 | return; |
| 411 | } |
| 412 | |
| 413 | fseek(fp, 0, SEEK_END); |
| 414 | unsigned int size = ftell(fp); |
| 415 | fseek(fp, 0, SEEK_SET); |
| 416 | if (data) { |
| 417 | free(data); |
| 418 | } |
| 419 | |
| 420 | data = (char*)malloc(size); |
| 421 | fread(data, size, 1, fp); |
| 422 | fclose(fp); |
| 423 | |
| 424 | mHeader = (bsp_header_t*)data; |
| 425 | mLumpStart = ((unsigned char*)mHeader) + sizeof(mHeader); |
| 426 | |
| 427 | mEntities = (unsigned char*)getLump(BSP_ENTITIES_LUMP); |
| 428 | mNumEntities = getLumpSize(BSP_ENTITIES_LUMP); |
| 429 | |
| 430 | mElements = (int*)getLump(BSP_ELEMENTS_LUMP); |
| 431 | mNumElements = getLumpSize(BSP_ELEMENTS_LUMP) / sizeof(int); |
| 432 | |
| 433 | mFaces = (bsp_face_t*)getLump(BSP_FACES_LUMP); |
| 434 | mNumFaces = getLumpSize(BSP_FACES_LUMP) / sizeof(bsp_face_t); |
| 435 | |
| 436 | mLeafFaces = (int*)getLump(BSP_LFACES_LUMP); |
| 437 | mNumLeafFaces = getLumpSize(BSP_LFACES_LUMP) / sizeof(int); |
| 438 | |
| 439 | mLeaves = (bsp_leaf_t*)getLump(BSP_LEAVES_LUMP); |
| 440 | mNumLeaves = getLumpSize(BSP_LEAVES_LUMP) / sizeof(bsp_leaf_t); |
| 441 | |
| 442 | mLightmaps = (unsigned char*)getLump(BSP_LIGHTMAPS_LUMP); |
| 443 | mNumLightmaps = getLumpSize(BSP_LIGHTMAPS_LUMP) / BSP_LIGHTMAP_BANKSIZE; |
| 444 | |
| 445 | mModels = (bsp_model_t*)getLump(BSP_MODELS_LUMP); |
| 446 | mNumModels = getLumpSize(BSP_MODELS_LUMP) / sizeof(bsp_model_t); |
| 447 | |
| 448 | mNodes = (bsp_node_t*)getLump(BSP_NODES_LUMP); |
| 449 | mNumNodes = getLumpSize(BSP_NODES_LUMP) / sizeof(bsp_node_t); |
| 450 | |
| 451 | mPlanes = (bsp_plane_t*) getLump(BSP_PLANES_LUMP); |
| 452 | mNumPlanes = getLumpSize(BSP_PLANES_LUMP) / sizeof(bsp_plane_t); |
| 453 | |
| 454 | mShaders = (bsp_shader_t*) getLump(BSP_SHADERS_LUMP); |
| 455 | mNumShaders = getLumpSize(BSP_SHADERS_LUMP) / sizeof(bsp_shader_t); |
| 456 | |
| 457 | mVis = (bsp_vis_t*)getLump(BSP_VISIBILITY_LUMP); |
| 458 | |
| 459 | mVertices = (bsp_vertex_t*) getLump(BSP_VERTICES_LUMP); |
| 460 | mNumVertices = getLumpSize(BSP_VERTICES_LUMP) / sizeof(bsp_vertex_t); |
| 461 | |
| 462 | mLeafBrushes = (int*)getLump(BSP_LBRUSHES_LUMP); |
| 463 | mNumLeafBrushes = getLumpSize(BSP_LBRUSHES_LUMP) / sizeof(int); |
| 464 |
nothing calls this directly
no test coverage detected