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

Function WriteTerrainSkyAndLightChunk

Descent3/LoadLevel.cpp:4768–4846  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4766}
4767
4768void WriteTerrainSkyAndLightChunk(CFILE *fp) {
4769 int i;
4770 int max_sats;
4771
4772 max_sats = Terrain_sky.num_satellites;
4773
4774 int start_pos;
4775 start_pos = StartChunk(fp, CHUNK_TERRAIN_SKY);
4776
4777 cf_WriteFloat(fp, Terrain_sky.fog_scalar);
4778 cf_WriteFloat(fp, Terrain_sky.damage_per_second);
4779
4780 cf_WriteByte(fp, Terrain_sky.textured);
4781
4782 cf_WriteShort(fp, Terrain_sky.dome_texture);
4783
4784 cf_WriteInt(fp, Terrain_sky.sky_color);
4785 cf_WriteInt(fp, Terrain_sky.horizon_color);
4786 cf_WriteInt(fp, Terrain_sky.fog_color);
4787
4788 cf_WriteInt(fp, Terrain_sky.flags);
4789 cf_WriteFloat(fp, Terrain_sky.radius);
4790 cf_WriteFloat(fp, Terrain_sky.rotate_rate);
4791
4792 cf_WriteInt(fp, max_sats);
4793
4794 for (i = 0; i < max_sats; i++) {
4795 cf_WriteShort(fp, Terrain_sky.satellite_texture[i]);
4796 cf_WriteVector(fp, &Terrain_sky.satellite_vectors[i]);
4797 cf_WriteByte(fp, Terrain_sky.satellite_flags[i]);
4798 cf_WriteFloat(fp, Terrain_sky.satellite_size[i]);
4799
4800 cf_WriteFloat(fp, Terrain_sky.satellite_r[i]);
4801 cf_WriteFloat(fp, Terrain_sky.satellite_g[i]);
4802 cf_WriteFloat(fp, Terrain_sky.satellite_b[i]);
4803 }
4804
4805 // Write lighting
4806 uint8_t *byte_vals = (uint8_t *)mem_malloc(TERRAIN_DEPTH * TERRAIN_WIDTH);
4807
4808 // l
4809 for (i = 0; i < TERRAIN_DEPTH * TERRAIN_WIDTH; i++)
4810 byte_vals[i] = Terrain_seg[i].l;
4811 CheckToWriteCompressByte(fp, byte_vals, TERRAIN_DEPTH * TERRAIN_WIDTH);
4812
4813 // r
4814 for (i = 0; i < TERRAIN_DEPTH * TERRAIN_WIDTH; i++)
4815 byte_vals[i] = Terrain_seg[i].r;
4816 CheckToWriteCompressByte(fp, byte_vals, TERRAIN_DEPTH * TERRAIN_WIDTH);
4817
4818 // g
4819 for (i = 0; i < TERRAIN_DEPTH * TERRAIN_WIDTH; i++)
4820 byte_vals[i] = Terrain_seg[i].g;
4821 CheckToWriteCompressByte(fp, byte_vals, TERRAIN_DEPTH * TERRAIN_WIDTH);
4822
4823 // b
4824 for (i = 0; i < TERRAIN_DEPTH * TERRAIN_WIDTH; i++)
4825 byte_vals[i] = Terrain_seg[i].b;

Callers 1

WriteTerrainChunksFunction · 0.85

Calls 7

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

Tested by

no test coverage detected