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

Function ReadTerrainSkyAndLightChunk

Descent3/LoadLevel.cpp:3197–3361  ·  view source on GitHub ↗

Reads relevant info about the terrain sky and lights

Source from the content-addressed store, hash-verified

3195
3196// Reads relevant info about the terrain sky and lights
3197void ReadTerrainSkyAndLightChunk(CFILE *fp, int version) {
3198 int i, num_sats;
3199
3200 if (version >= 41) {
3201 if (version >= 88)
3202 Terrain_sky.fog_scalar = cf_ReadFloat(fp);
3203
3204 if (version >= 87)
3205 Terrain_sky.damage_per_second = cf_ReadFloat(fp);
3206
3207 Terrain_sky.textured = cf_ReadByte(fp);
3208
3209 if (version < 43) {
3210 for (i = 0; i < MAX_HORIZON_PIECES; i++)
3211 cf_ReadShort(fp);
3212 } else if (version < 74) {
3213 for (i = 0; i < MAX_HORIZON_PIECES; i++) {
3214 cf_ReadShort(fp);
3215 cf_ReadShort(fp);
3216 }
3217
3218 } else {
3219 if (version < 104) {
3220 for (i = 0; i < 4; i++)
3221 cf_ReadShort(fp);
3222 } else {
3223 Terrain_sky.dome_texture = texture_xlate[cf_ReadShort(fp)];
3224
3225 // Check for failed xlate
3226 if (Terrain_sky.dome_texture == -1) {
3227 Terrain_sky.dome_texture = 0;
3228 }
3229 }
3230
3231 if (version < 114)
3232 for (i = 0; i < MAX_HORIZON_PIECES; i++)
3233 cf_ReadShort(fp); // Was band textures
3234 }
3235 }
3236
3237 Terrain_sky.sky_color = cf_ReadInt(fp);
3238 Terrain_sky.horizon_color = cf_ReadInt(fp);
3239 Terrain_sky.fog_color = cf_ReadInt(fp);
3240
3241 Terrain_sky.flags = cf_ReadInt(fp);
3242
3243#if defined(POSIX)
3244 if (FindArg("-noterrainfog") > 0) {
3245 Terrain_sky.flags &= ~TF_FOG;
3246 }
3247#endif
3248
3249 if (version >= 69) {
3250 Terrain_sky.radius = cf_ReadFloat(fp);
3251 if (version < 74)
3252 Terrain_sky.radius = 2500.0;
3253
3254 SetupSky(Terrain_sky.radius, Terrain_sky.flags, 1);

Callers 1

ReadTerrainChunksFunction · 0.85

Calls 8

cf_ReadFloatFunction · 0.85
cf_ReadByteFunction · 0.85
cf_ReadShortFunction · 0.85
cf_ReadIntFunction · 0.85
SetupSkyFunction · 0.85
vm_NormalizeVectorFunction · 0.85
ReadCompressionByteFunction · 0.85
FindArgFunction · 0.70

Tested by

no test coverage detected