Reads relevant info about the terrain sky and lights
| 3195 | |
| 3196 | // Reads relevant info about the terrain sky and lights |
| 3197 | void 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); |
no test coverage detected