| 18 | ENGINE_API BOOL bLevelEnvModExport{}; |
| 19 | |
| 20 | bool CEnvModifier::load(IReader* fs, u32 version) |
| 21 | { |
| 22 | // Проверка на корректность файла. Real Wolf. |
| 23 | if (fs->tell() + (version < 0x0016 ? 76 : (version < 0x0018 ? 78 : 103)) > fs->length()) |
| 24 | { |
| 25 | R_ASSERT(version < 0x0018, "!!Invalid file level.env_mod!"); |
| 26 | return false; |
| 27 | } |
| 28 | |
| 29 | fs->r_fvector3(position); |
| 30 | radius = fs->r_float(); |
| 31 | power = fs->r_float(); |
| 32 | far_plane = fs->r_float(); |
| 33 | fs->r_fvector3(fog_color); |
| 34 | fog_density = fs->r_float(); |
| 35 | fs->r_fvector3(ambient); |
| 36 | fs->r_fvector3(sky_color); |
| 37 | fs->r_fvector3(hemi_color); |
| 38 | |
| 39 | use_flags.one(); |
| 40 | if (version >= 0x0016) |
| 41 | { |
| 42 | use_flags.assign(fs->r_u16()); |
| 43 | } |
| 44 | |
| 45 | if (version >= 0x0018) |
| 46 | { |
| 47 | shape_type = fs->r_u8(); |
| 48 | fs->r_fvector3(shape_rotate); |
| 49 | fs->r_fvector3(shape_halfsize); |
| 50 | |
| 51 | obb.m_translate.set(position); |
| 52 | obb.m_rotate.set(Fmatrix().setXYZ(shape_rotate)); |
| 53 | obb.m_halfsize.set(shape_halfsize); |
| 54 | } |
| 55 | |
| 56 | return true; |
| 57 | } |
| 58 | |
| 59 | bool CEnvModifier::loadIni(CInifile& ini, LPCSTR section) |
| 60 | { |
no test coverage detected