WeatherControl.cpp
上传用户:henghua
上传日期:2007-11-14
资源大小:7655k
文件大小:2k
源码类别:

游戏引擎

开发平台:

Visual C++

  1. #include "WeatherControl.h"
  2. CWeatherControl::CWeatherControl(LPDIRECT3DDEVICE9 device, CConfiguration *config)
  3. {
  4. this->device = device;
  5. this->process = 0;
  6. this->status = FINE;
  7. this->config = config;
  8. this->level = BASE_STRENGTH;
  9. this->currentlevel = BASE_STRENGTH;
  10. }
  11. bool CWeatherControl::Init()
  12. {
  13. return true;
  14. }
  15. bool CWeatherControl::Update()
  16. {
  17. if(status == CLOUDY)
  18. {
  19. if(! config->get_bool(p_bisCloudy) )
  20. config->set_bool(p_bisCloudy, true);
  21. }
  22. else if(status == FINE)
  23. {
  24. if(config->get_bool(p_bisSnowing))
  25. {
  26. config->set_bool(p_bisSnowing, false);
  27. if(config->get_bool(p_bisCloudy))
  28. config->set_bool(p_bisCloudy, false);
  29. }
  30. else if( config->get_bool(p_bisCloudy))
  31. {
  32. config->set_bool(p_bisCloudy, false);
  33. }
  34. }
  35. else if(status == SNOWING)
  36. {
  37. if(!config->get_bool(p_bisSnowing))
  38. {
  39. if(config->get_bool(p_bisCloudy))
  40. {
  41. if(config->get_float(p_bCloudiness) > 0.99)
  42. {
  43. config->set_bool(p_bisSnowing, true);
  44. }
  45. }
  46. else
  47. {
  48. config->set_bool(p_bisCloudy, true);
  49. }
  50. }
  51. }
  52. else if(status == DAY)
  53. {
  54. if(config->get_bool(p_bisNight))
  55. {
  56. if(config->get_float(p_bNight_Day) > 0.99)
  57. config->set_bool(p_bisNight, false);
  58. else
  59. config->set_float(p_bNight_Day, config->get_float(p_bNight_Day) + 0.003);
  60. }
  61. }
  62. else if(status == NIGHT)
  63. {
  64. if(!config->get_bool(p_bisNight))
  65. {
  66. if(config->get_float(p_bNight_Day) < 0.01)
  67. config->set_bool(p_bisNight, true);
  68. else
  69. config->set_float(p_bNight_Day, config->get_float(p_bNight_Day) - 0.003);
  70. }
  71. }
  72. return true;
  73. }
  74. void CWeatherControl::set(int i)
  75. {
  76. this->status = i;
  77. }