MCPcopy Create free account
hub / github.com/DescentDevelopers/Descent3 / WriteRoomAABBChunk

Function WriteRoomAABBChunk

Descent3/LoadLevel.cpp:4660–4728  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4658}
4659
4660void WriteRoomAABBChunk(CFILE *fp) {
4661 int start_pos;
4662 int i;
4663
4664 start_pos = StartChunk(fp, CHUNK_ROOM_AABB);
4665
4666 cf_WriteInt(fp, Highest_room_index);
4667
4668 for (i = 0; i <= Highest_room_index; i++) {
4669 cf_WriteInt(fp, BOA_AABB_ROOM_checksum[i]);
4670 }
4671
4672 for (i = 0; i <= Highest_room_index; i++) {
4673 if (Rooms[i].used) {
4674 int j;
4675 int k;
4676
4677 ASSERT(Rooms[i].bbf_list && Rooms[i].bbf_list_min_xyz && Rooms[i].bbf_list_max_xyz && Rooms[i].bbf_list_sector);
4678
4679 cf_WriteInt(fp, 1); // used
4680
4681 cf_WriteInt(fp, Rooms[i].num_faces);
4682 for (j = 0; j < Rooms[i].num_faces; j++) {
4683 cf_WriteFloat(fp, Rooms[i].faces[j].min_xyz.x);
4684 cf_WriteFloat(fp, Rooms[i].faces[j].min_xyz.y);
4685 cf_WriteFloat(fp, Rooms[i].faces[j].min_xyz.z);
4686
4687 cf_WriteFloat(fp, Rooms[i].faces[j].max_xyz.x);
4688 cf_WriteFloat(fp, Rooms[i].faces[j].max_xyz.y);
4689 cf_WriteFloat(fp, Rooms[i].faces[j].max_xyz.z);
4690 }
4691
4692 cf_WriteInt(fp, BOA_AABB_ROOM_checksum[i]);
4693
4694 cf_WriteFloat(fp, Rooms[i].bbf_min_xyz.x);
4695 cf_WriteFloat(fp, Rooms[i].bbf_min_xyz.y);
4696 cf_WriteFloat(fp, Rooms[i].bbf_min_xyz.z);
4697
4698 cf_WriteFloat(fp, Rooms[i].bbf_max_xyz.x);
4699 cf_WriteFloat(fp, Rooms[i].bbf_max_xyz.y);
4700 cf_WriteFloat(fp, Rooms[i].bbf_max_xyz.z);
4701
4702 cf_WriteShort(fp, Rooms[i].num_bbf_regions);
4703 for (j = 0; j < Rooms[i].num_bbf_regions; j++) {
4704 cf_WriteShort(fp, Rooms[i].num_bbf[j]);
4705 }
4706
4707 for (j = 0; j < Rooms[i].num_bbf_regions; j++) {
4708 for (k = 0; k < Rooms[i].num_bbf[j]; k++) {
4709 cf_WriteShort(fp, Rooms[i].bbf_list[j][k]);
4710 }
4711
4712 cf_WriteFloat(fp, Rooms[i].bbf_list_min_xyz[j].x);
4713 cf_WriteFloat(fp, Rooms[i].bbf_list_min_xyz[j].y);
4714 cf_WriteFloat(fp, Rooms[i].bbf_list_min_xyz[j].z);
4715
4716 cf_WriteFloat(fp, Rooms[i].bbf_list_max_xyz[j].x);
4717 cf_WriteFloat(fp, Rooms[i].bbf_list_max_xyz[j].y);

Callers 1

SaveLevelFunction · 0.85

Calls 6

StartChunkFunction · 0.85
cf_WriteIntFunction · 0.85
cf_WriteFloatFunction · 0.85
cf_WriteShortFunction · 0.85
cf_WriteByteFunction · 0.85
EndChunkFunction · 0.85

Tested by

no test coverage detected