Environment.cpp 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242
  1. /******************************************************************************/
  2. #include "stdafx.h"
  3. /******************************************************************************/
  4. /******************************************************************************/
  5. EditEnv::EditEnv() : sun_id(UIDZero), star_id(UIDZero), skybox_id(UIDZero) {REPAO(cloud_id).zero();}
  6. bool EditEnv::newer(C EditEnv &src)C
  7. {
  8. return
  9. ambient_on_time>src.ambient_on_time || ambient_color_time>src.ambient_color_time || night_shade_color_time>src.night_shade_color_time
  10. || bloom_on_time>src.bloom_on_time || bloom_half_time>src.bloom_half_time || bloom_saturate_time>src.bloom_saturate_time || bloom_maximum_time>src.bloom_maximum_time || bloom_blurs_time>src.bloom_blurs_time
  11. || bloom_original_time>src.bloom_original_time || bloom_scale_time>src.bloom_scale_time || bloom_cut_time>src.bloom_cut_time
  12. || clouds_on_time>src.clouds_on_time || clouds_vertical_scale_time>src.clouds_vertical_scale_time || clouds_ray_mask_contrast_time>src.clouds_ray_mask_contrast_time
  13. || clouds_scale_time[0]>src.clouds_scale_time[0] || clouds_velocity_time[0]>src.clouds_velocity_time[0] || clouds_color_time[0]>src.clouds_color_time[0] || clouds_image_time[0]>src.clouds_image_time[0]
  14. || clouds_scale_time[1]>src.clouds_scale_time[1] || clouds_velocity_time[1]>src.clouds_velocity_time[1] || clouds_color_time[1]>src.clouds_color_time[1] || clouds_image_time[1]>src.clouds_image_time[1]
  15. || clouds_scale_time[2]>src.clouds_scale_time[2] || clouds_velocity_time[2]>src.clouds_velocity_time[2] || clouds_color_time[2]>src.clouds_color_time[2] || clouds_image_time[2]>src.clouds_image_time[2]
  16. || clouds_scale_time[3]>src.clouds_scale_time[3] || clouds_velocity_time[3]>src.clouds_velocity_time[3] || clouds_color_time[3]>src.clouds_color_time[3] || clouds_image_time[3]>src.clouds_image_time[3]
  17. || fog_on_time>src.fog_on_time || fog_affect_sky_time>src.fog_affect_sky_time || fog_density_time>src.fog_density_time || fog_color_time>src.fog_color_time
  18. || sky_on_time>src.sky_on_time || sky_frac_time>src.sky_frac_time || sky_atmospheric_density_exponent_time>src.sky_atmospheric_density_exponent_time
  19. || sky_atmospheric_horizon_exponent_time>src.sky_atmospheric_horizon_exponent_time || sky_atmospheric_horizon_color_time>src.sky_atmospheric_horizon_color_time
  20. || sky_atmospheric_sky_color_time>src.sky_atmospheric_sky_color_time || sky_atmospheric_stars_time>src.sky_atmospheric_stars_time
  21. || sky_atmospheric_stars_orientation_time>src.sky_atmospheric_stars_orientation_time || sky_skybox_time>src.sky_skybox_time
  22. || sun_on_time>src.sun_on_time || sun_blend_time>src.sun_blend_time || sun_glow_time>src.sun_glow_time || sun_size_time>src.sun_size_time || sun_highlight_front_time>src.sun_highlight_front_time
  23. || sun_highlight_back_time>src.sun_highlight_back_time || sun_pos_time>src.sun_pos_time || sun_light_color_time>src.sun_light_color_time || sun_rays_color_time>src.sun_rays_color_time
  24. || sun_image_color_time>src.sun_image_color_time || sun_image_time>src.sun_image_time;
  25. }
  26. bool EditEnv::equal(C EditEnv &src)C
  27. {
  28. return
  29. ambient_on_time==src.ambient_on_time && ambient_color_time==src.ambient_color_time && night_shade_color_time==src.night_shade_color_time
  30. && bloom_on_time==src.bloom_on_time && bloom_half_time==src.bloom_half_time && bloom_saturate_time==src.bloom_saturate_time && bloom_maximum_time==src.bloom_maximum_time && bloom_blurs_time==src.bloom_blurs_time
  31. && bloom_original_time==src.bloom_original_time && bloom_scale_time==src.bloom_scale_time && bloom_cut_time==src.bloom_cut_time
  32. && clouds_on_time==src.clouds_on_time && clouds_vertical_scale_time==src.clouds_vertical_scale_time && clouds_ray_mask_contrast_time==src.clouds_ray_mask_contrast_time
  33. && clouds_scale_time[0]==src.clouds_scale_time[0] && clouds_velocity_time[0]==src.clouds_velocity_time[0] && clouds_color_time[0]==src.clouds_color_time[0] && clouds_image_time[0]==src.clouds_image_time[0]
  34. && clouds_scale_time[1]==src.clouds_scale_time[1] && clouds_velocity_time[1]==src.clouds_velocity_time[1] && clouds_color_time[1]==src.clouds_color_time[1] && clouds_image_time[1]==src.clouds_image_time[1]
  35. && clouds_scale_time[2]==src.clouds_scale_time[2] && clouds_velocity_time[2]==src.clouds_velocity_time[2] && clouds_color_time[2]==src.clouds_color_time[2] && clouds_image_time[2]==src.clouds_image_time[2]
  36. && clouds_scale_time[3]==src.clouds_scale_time[3] && clouds_velocity_time[3]==src.clouds_velocity_time[3] && clouds_color_time[3]==src.clouds_color_time[3] && clouds_image_time[3]==src.clouds_image_time[3]
  37. && fog_on_time==src.fog_on_time && fog_affect_sky_time==src.fog_affect_sky_time && fog_density_time==src.fog_density_time && fog_color_time==src.fog_color_time
  38. && sky_on_time==src.sky_on_time && sky_frac_time==src.sky_frac_time && sky_atmospheric_density_exponent_time==src.sky_atmospheric_density_exponent_time
  39. && sky_atmospheric_horizon_exponent_time==src.sky_atmospheric_horizon_exponent_time && sky_atmospheric_horizon_color_time==src.sky_atmospheric_horizon_color_time
  40. && sky_atmospheric_sky_color_time==src.sky_atmospheric_sky_color_time && sky_atmospheric_stars_time==src.sky_atmospheric_stars_time
  41. && sky_atmospheric_stars_orientation_time==src.sky_atmospheric_stars_orientation_time && sky_skybox_time==src.sky_skybox_time
  42. && sun_on_time==src.sun_on_time && sun_blend_time==src.sun_blend_time && sun_glow_time==src.sun_glow_time && sun_size_time==src.sun_size_time && sun_highlight_front_time==src.sun_highlight_front_time
  43. && sun_highlight_back_time==src.sun_highlight_back_time && sun_pos_time==src.sun_pos_time && sun_light_color_time==src.sun_light_color_time && sun_rays_color_time==src.sun_rays_color_time
  44. && sun_image_color_time==src.sun_image_color_time && sun_image_time==src.sun_image_time;
  45. }
  46. void EditEnv::newData()
  47. {
  48. ambient_on_time++; ambient_color_time++; night_shade_color_time++;
  49. bloom_on_time++; bloom_half_time++; bloom_saturate_time++; bloom_maximum_time++; bloom_blurs_time++; bloom_original_time++; bloom_scale_time++; bloom_cut_time++;
  50. clouds_on_time++; clouds_vertical_scale_time++; clouds_ray_mask_contrast_time++;
  51. REPAO(clouds_scale_time)++; REPAO(clouds_velocity_time)++; REPAO(clouds_color_time)++; REPAO(clouds_image_time)++;
  52. fog_on_time++; fog_affect_sky_time++; fog_density_time++; fog_color_time++;
  53. sky_on_time++; sky_frac_time++; sky_atmospheric_density_exponent_time++; sky_atmospheric_horizon_exponent_time++; sky_atmospheric_horizon_color_time++; sky_atmospheric_sky_color_time++; sky_atmospheric_stars_time++; sky_atmospheric_stars_orientation_time++; sky_skybox_time++;
  54. sun_on_time++; sun_blend_time++; sun_glow_time++; sun_size_time++; sun_highlight_front_time++; sun_highlight_back_time++; sun_pos_time++; sun_light_color_time++; sun_rays_color_time++; sun_image_color_time++; sun_image_time++;
  55. }
  56. bool EditEnv::sync(C EditEnv &src)
  57. {
  58. bool changed=false;
  59. changed|=Sync(ambient_on_time, src.ambient_on_time, ambient.on, src.ambient.on);
  60. changed|=Sync(ambient_color_time, src.ambient_color_time, ambient.color, src.ambient.color);
  61. changed|=Sync(night_shade_color_time, src.night_shade_color_time, ambient.night_shade_color, src.ambient.night_shade_color);
  62. changed|=Sync(bloom_on_time, src.bloom_on_time, bloom.on, src.bloom.on);
  63. changed|=Sync(bloom_half_time, src.bloom_half_time, bloom.half, src.bloom.half);
  64. changed|=Sync(bloom_saturate_time, src.bloom_saturate_time, bloom.saturate, src.bloom.saturate);
  65. changed|=Sync(bloom_maximum_time, src.bloom_maximum_time, bloom.maximum, src.bloom.maximum);
  66. changed|=Sync(bloom_blurs_time, src.bloom_blurs_time, bloom.blurs, src.bloom.blurs);
  67. changed|=Sync(bloom_original_time, src.bloom_original_time, bloom.original, src.bloom.original);
  68. changed|=Sync(bloom_scale_time, src.bloom_scale_time, bloom.scale, src.bloom.scale);
  69. changed|=Sync(bloom_cut_time, src.bloom_cut_time, bloom.cut, src.bloom.cut);
  70. changed|=Sync(clouds_on_time, src.clouds_on_time, clouds.on, src.clouds.on);
  71. changed|=Sync(clouds_vertical_scale_time, src.clouds_vertical_scale_time, clouds.vertical_scale, src.clouds.vertical_scale);
  72. changed|=Sync(clouds_ray_mask_contrast_time, src.clouds_ray_mask_contrast_time, clouds.ray_mask_contrast, src.clouds.ray_mask_contrast);
  73. REPA(clouds_scale_time)
  74. {
  75. changed|=Sync(clouds_scale_time[i], src.clouds_scale_time[i], clouds.layers[i].scale, src.clouds.layers[i].scale);
  76. changed|=Sync(clouds_velocity_time[i], src.clouds_velocity_time[i], clouds.layers[i].velocity, src.clouds.layers[i].velocity);
  77. changed|=Sync(clouds_color_time[i], src.clouds_color_time[i], clouds.layers[i].color, src.clouds.layers[i].color);
  78. changed|=Sync(clouds_image_time[i], src.clouds_image_time[i], cloud_id[i], src.cloud_id[i]);
  79. }
  80. changed|=Sync(fog_on_time, src.fog_on_time, fog.on, src.fog.on);
  81. changed|=Sync(fog_affect_sky_time, src.fog_affect_sky_time, fog.affect_sky, src.fog.affect_sky);
  82. changed|=Sync(fog_density_time, src.fog_density_time, fog.density, src.fog.density);
  83. changed|=Sync(fog_color_time, src.fog_color_time, fog.color, src.fog.color);
  84. changed|=Sync(sky_on_time, src.sky_on_time, sky.on, src.sky.on);
  85. changed|=Sync(sky_frac_time, src.sky_frac_time, sky.frac, src.sky.frac);
  86. changed|=Sync(sky_atmospheric_density_exponent_time, src.sky_atmospheric_density_exponent_time, sky.atmospheric_density_exponent, src.sky.atmospheric_density_exponent);
  87. changed|=Sync(sky_atmospheric_horizon_exponent_time, src.sky_atmospheric_horizon_exponent_time, sky.atmospheric_horizon_exponent, src.sky.atmospheric_horizon_exponent);
  88. changed|=Sync(sky_atmospheric_horizon_color_time, src.sky_atmospheric_horizon_color_time, sky.atmospheric_horizon_color, src.sky.atmospheric_horizon_color);
  89. changed|=Sync(sky_atmospheric_sky_color_time, src.sky_atmospheric_sky_color_time, sky.atmospheric_sky_color, src.sky.atmospheric_sky_color);
  90. changed|=Sync(sky_atmospheric_stars_time, src.sky_atmospheric_stars_time, star_id, src.star_id);
  91. changed|=Sync(sky_atmospheric_stars_orientation_time, src.sky_atmospheric_stars_orientation_time, sky.atmospheric_stars_orientation, src.sky.atmospheric_stars_orientation);
  92. changed|=Sync(sky_skybox_time, src.sky_skybox_time, skybox_id, src.skybox_id);
  93. changed|=Sync(sun_on_time, src.sun_on_time, sun.on, src.sun.on);
  94. changed|=Sync(sun_blend_time, src.sun_blend_time, sun.blend, src.sun.blend);
  95. changed|=Sync(sun_glow_time, src.sun_glow_time, sun.glow, src.sun.glow);
  96. changed|=Sync(sun_size_time, src.sun_size_time, sun.size, src.sun.size);
  97. changed|=Sync(sun_highlight_front_time, src.sun_highlight_front_time, sun.highlight_front, src.sun.highlight_front);
  98. changed|=Sync(sun_highlight_back_time, src.sun_highlight_back_time, sun.highlight_back, src.sun.highlight_back);
  99. changed|=Sync(sun_pos_time, src.sun_pos_time, sun.pos, src.sun.pos);
  100. changed|=Sync(sun_light_color_time, src.sun_light_color_time, sun.light_color, src.sun.light_color);
  101. changed|=Sync(sun_rays_color_time, src.sun_rays_color_time, sun.rays_color, src.sun.rays_color);
  102. changed|=Sync(sun_image_color_time, src.sun_image_color_time, sun.image_color, src.sun.image_color);
  103. changed|=Sync(sun_image_time, src.sun_image_time, sun_id, src.sun_id);
  104. return changed;
  105. }
  106. bool EditEnv::undo(C EditEnv &src)
  107. {
  108. bool changed=false;
  109. changed|=Undo(ambient_on_time, src.ambient_on_time, ambient.on, src.ambient.on);
  110. changed|=Undo(ambient_color_time, src.ambient_color_time, ambient.color, src.ambient.color);
  111. changed|=Undo(night_shade_color_time, src.night_shade_color_time, ambient.night_shade_color, src.ambient.night_shade_color);
  112. changed|=Undo(bloom_on_time, src.bloom_on_time, bloom.on, src.bloom.on);
  113. changed|=Undo(bloom_half_time, src.bloom_half_time, bloom.half, src.bloom.half);
  114. changed|=Undo(bloom_saturate_time, src.bloom_saturate_time, bloom.saturate, src.bloom.saturate);
  115. changed|=Undo(bloom_maximum_time, src.bloom_maximum_time, bloom.maximum, src.bloom.maximum);
  116. changed|=Undo(bloom_blurs_time, src.bloom_blurs_time, bloom.blurs, src.bloom.blurs);
  117. changed|=Undo(bloom_original_time, src.bloom_original_time, bloom.original, src.bloom.original);
  118. changed|=Undo(bloom_scale_time, src.bloom_scale_time, bloom.scale, src.bloom.scale);
  119. changed|=Undo(bloom_cut_time, src.bloom_cut_time, bloom.cut, src.bloom.cut);
  120. changed|=Undo(clouds_on_time, src.clouds_on_time, clouds.on, src.clouds.on);
  121. changed|=Undo(clouds_vertical_scale_time, src.clouds_vertical_scale_time, clouds.vertical_scale, src.clouds.vertical_scale);
  122. changed|=Undo(clouds_ray_mask_contrast_time, src.clouds_ray_mask_contrast_time, clouds.ray_mask_contrast, src.clouds.ray_mask_contrast);
  123. REPA(clouds_scale_time)
  124. {
  125. changed|=Undo(clouds_scale_time[i], src.clouds_scale_time[i], clouds.layers[i].scale, src.clouds.layers[i].scale);
  126. changed|=Undo(clouds_velocity_time[i], src.clouds_velocity_time[i], clouds.layers[i].velocity, src.clouds.layers[i].velocity);
  127. changed|=Undo(clouds_color_time[i], src.clouds_color_time[i], clouds.layers[i].color, src.clouds.layers[i].color);
  128. changed|=Undo(clouds_image_time[i], src.clouds_image_time[i], cloud_id[i], src.cloud_id[i]);
  129. }
  130. changed|=Undo(fog_on_time, src.fog_on_time, fog.on, src.fog.on);
  131. changed|=Undo(fog_affect_sky_time, src.fog_affect_sky_time, fog.affect_sky, src.fog.affect_sky);
  132. changed|=Undo(fog_density_time, src.fog_density_time, fog.density, src.fog.density);
  133. changed|=Undo(fog_color_time, src.fog_color_time, fog.color, src.fog.color);
  134. changed|=Undo(sky_on_time, src.sky_on_time, sky.on, src.sky.on);
  135. changed|=Undo(sky_frac_time, src.sky_frac_time, sky.frac, src.sky.frac);
  136. changed|=Undo(sky_atmospheric_density_exponent_time, src.sky_atmospheric_density_exponent_time, sky.atmospheric_density_exponent, src.sky.atmospheric_density_exponent);
  137. changed|=Undo(sky_atmospheric_horizon_exponent_time, src.sky_atmospheric_horizon_exponent_time, sky.atmospheric_horizon_exponent, src.sky.atmospheric_horizon_exponent);
  138. changed|=Undo(sky_atmospheric_horizon_color_time, src.sky_atmospheric_horizon_color_time, sky.atmospheric_horizon_color, src.sky.atmospheric_horizon_color);
  139. changed|=Undo(sky_atmospheric_sky_color_time, src.sky_atmospheric_sky_color_time, sky.atmospheric_sky_color, src.sky.atmospheric_sky_color);
  140. changed|=Undo(sky_atmospheric_stars_time, src.sky_atmospheric_stars_time, star_id, src.star_id);
  141. changed|=Undo(sky_atmospheric_stars_orientation_time, src.sky_atmospheric_stars_orientation_time, sky.atmospheric_stars_orientation, src.sky.atmospheric_stars_orientation);
  142. changed|=Undo(sky_skybox_time, src.sky_skybox_time, skybox_id, src.skybox_id);
  143. changed|=Undo(sun_on_time, src.sun_on_time, sun.on, src.sun.on);
  144. changed|=Undo(sun_blend_time, src.sun_blend_time, sun.blend, src.sun.blend);
  145. changed|=Undo(sun_glow_time, src.sun_glow_time, sun.glow, src.sun.glow);
  146. changed|=Undo(sun_size_time, src.sun_size_time, sun.size, src.sun.size);
  147. changed|=Undo(sun_highlight_front_time, src.sun_highlight_front_time, sun.highlight_front, src.sun.highlight_front);
  148. changed|=Undo(sun_highlight_back_time, src.sun_highlight_back_time, sun.highlight_back, src.sun.highlight_back);
  149. changed|=Undo(sun_pos_time, src.sun_pos_time, sun.pos, src.sun.pos);
  150. changed|=Undo(sun_light_color_time, src.sun_light_color_time, sun.light_color, src.sun.light_color);
  151. changed|=Undo(sun_rays_color_time, src.sun_rays_color_time, sun.rays_color, src.sun.rays_color);
  152. changed|=Undo(sun_image_color_time, src.sun_image_color_time, sun.image_color, src.sun.image_color);
  153. changed|=Undo(sun_image_time, src.sun_image_time, sun_id, src.sun_id);
  154. return changed;
  155. }
  156. void EditEnv::reset() {T=EditEnv();}
  157. void EditEnv::copyTo(Environment &dest, C Project &proj)C
  158. {
  159. dest=T;
  160. dest.sun .image =proj.gamePath( sun_id );
  161. dest.sky .atmospheric_stars=proj.gamePath( star_id );
  162. dest.sky .skybox =proj.gamePath(skybox_id );
  163. REPAO(dest.clouds.layers).image =proj.gamePath( cloud_id[i]);
  164. }
  165. bool EditEnv::save(File &f)C
  166. {
  167. f.cmpUIntV(2);
  168. ::EE::Environment::save(f);
  169. f<<sun_id<<star_id<<skybox_id<<cloud_id
  170. <<ambient_on_time<<ambient_color_time<<night_shade_color_time
  171. <<bloom_on_time<<bloom_half_time<<bloom_saturate_time<<bloom_maximum_time<<bloom_blurs_time<<bloom_original_time<<bloom_scale_time<<bloom_cut_time
  172. <<clouds_on_time<<clouds_vertical_scale_time<<clouds_ray_mask_contrast_time
  173. <<clouds_scale_time<<clouds_velocity_time<<clouds_color_time<<clouds_image_time
  174. <<fog_on_time<<fog_affect_sky_time<<fog_density_time<<fog_color_time
  175. <<sky_on_time<<sky_frac_time<<sky_atmospheric_density_exponent_time<<sky_atmospheric_horizon_exponent_time<<sky_atmospheric_horizon_color_time<<sky_atmospheric_sky_color_time
  176. <<sky_atmospheric_stars_time<<sky_atmospheric_stars_orientation_time<<sky_skybox_time
  177. <<sun_on_time<<sun_blend_time<<sun_glow_time<<sun_size_time<<sun_highlight_front_time<<sun_highlight_back_time<<sun_pos_time<<sun_light_color_time<<sun_rays_color_time
  178. <<sun_image_color_time<<sun_image_time;
  179. return f.ok();
  180. }
  181. bool EditEnv::load(File &f)
  182. {
  183. TimeStamp bloom_contrast_time;
  184. reset(); switch(f.decUIntV())
  185. {
  186. case 2:
  187. {
  188. if(!::EE::Environment::load(f))break;
  189. f>>sun_id>>star_id>>skybox_id>>cloud_id
  190. >>ambient_on_time>>ambient_color_time>>night_shade_color_time
  191. >>bloom_on_time>>bloom_half_time>>bloom_saturate_time>>bloom_maximum_time>>bloom_blurs_time>>bloom_original_time>>bloom_scale_time>>bloom_cut_time
  192. >>clouds_on_time>>clouds_vertical_scale_time>>clouds_ray_mask_contrast_time
  193. >>clouds_scale_time>>clouds_velocity_time>>clouds_color_time>>clouds_image_time
  194. >>fog_on_time>>fog_affect_sky_time>>fog_density_time>>fog_color_time
  195. >>sky_on_time>>sky_frac_time>>sky_atmospheric_density_exponent_time>>sky_atmospheric_horizon_exponent_time>>sky_atmospheric_horizon_color_time>>sky_atmospheric_sky_color_time
  196. >>sky_atmospheric_stars_time>>sky_atmospheric_stars_orientation_time>>sky_skybox_time
  197. >>sun_on_time>>sun_blend_time>>sun_glow_time>>sun_size_time>>sun_highlight_front_time>>sun_highlight_back_time>>sun_pos_time>>sun_light_color_time>>sun_rays_color_time
  198. >>sun_image_color_time>>sun_image_time;
  199. if(f.ok())return true;
  200. }break;
  201. case 1:
  202. {
  203. if(!::EE::Environment::load(f))break;
  204. f>>sun_id>>star_id>>skybox_id>>cloud_id
  205. >>ambient_on_time>>ambient_color_time>>night_shade_color_time
  206. >>bloom_on_time>>bloom_half_time>>bloom_maximum_time>>bloom_blurs_time>>bloom_original_time>>bloom_scale_time>>bloom_cut_time>>bloom_contrast_time
  207. >>clouds_on_time>>clouds_vertical_scale_time>>clouds_ray_mask_contrast_time
  208. >>clouds_scale_time>>clouds_velocity_time>>clouds_color_time>>clouds_image_time
  209. >>fog_on_time>>fog_affect_sky_time>>fog_density_time>>fog_color_time
  210. >>sky_on_time>>sky_frac_time>>sky_atmospheric_density_exponent_time>>sky_atmospheric_horizon_exponent_time>>sky_atmospheric_horizon_color_time>>sky_atmospheric_sky_color_time
  211. >>sky_atmospheric_stars_time>>sky_atmospheric_stars_orientation_time>>sky_skybox_time
  212. >>sun_on_time>>sun_blend_time>>sun_glow_time>>sun_size_time>>sun_highlight_front_time>>sun_highlight_back_time>>sun_pos_time>>sun_light_color_time>>sun_rays_color_time
  213. >>sun_image_color_time>>sun_image_time;
  214. if(f.ok())return true;
  215. }break;
  216. case 0:
  217. {
  218. if(!::EE::Environment::load(f))break;
  219. f>>sun_id>>star_id>>skybox_id>>cloud_id
  220. >>ambient_on_time>>ambient_color_time
  221. >>bloom_on_time>>bloom_half_time>>bloom_maximum_time>>bloom_blurs_time>>bloom_original_time>>bloom_scale_time>>bloom_cut_time>>bloom_contrast_time
  222. >>clouds_on_time>>clouds_vertical_scale_time>>clouds_ray_mask_contrast_time
  223. >>clouds_scale_time>>clouds_velocity_time>>clouds_color_time>>clouds_image_time
  224. >>fog_on_time>>fog_affect_sky_time>>fog_density_time>>fog_color_time
  225. >>sky_on_time>>sky_frac_time>>sky_atmospheric_density_exponent_time>>sky_atmospheric_horizon_exponent_time>>sky_atmospheric_horizon_color_time>>sky_atmospheric_sky_color_time
  226. >>sky_atmospheric_stars_time>>sky_atmospheric_stars_orientation_time>>sky_skybox_time
  227. >>sun_on_time>>sun_blend_time>>sun_glow_time>>sun_size_time>>sun_highlight_front_time>>sun_highlight_back_time>>sun_pos_time>>sun_light_color_time>>sun_rays_color_time
  228. >>sun_image_color_time>>sun_image_time;
  229. if(f.ok())return true;
  230. }break;
  231. }
  232. reset(); return false;
  233. }
  234. bool EditEnv::load(C Str &name)
  235. {
  236. File f; if(f.readTry(name))return load(f);
  237. reset(); return false;
  238. }
  239. /******************************************************************************/