@EnvEditor.h 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. /******************************************************************************/
  2. /******************************************************************************/
  3. class EnvEditor : ClosableWindow
  4. {
  5. static void PreChanged(C Property &prop);
  6. static void Changed(C Property &prop);
  7. class PropWin : ::PropWin
  8. {
  9. static void Hide(PropWin &pw);
  10. PropWin& create(C Str &name, flt value_width);
  11. };
  12. class Change : Edit::_Undo::Change
  13. {
  14. EditEnv env;
  15. virtual void create(ptr user)override;
  16. virtual void apply(ptr user)override;
  17. };
  18. UID elm_id;
  19. Elm *elm;
  20. bool changed;
  21. EditEnv edit;
  22. Environment temp;
  23. EnvironmentPtr game;
  24. Button undo, redo, locate;
  25. PropWin ambient, bloom, clouds, fog, sky, sun;
  26. CheckBox cambient, cbloom, cclouds, cfog, csky, csun;
  27. Button bambient, bbloom, bclouds, bfog, bsky, bsun;
  28. Vec2 sun_angle;
  29. Edit::Undo<Change> undos; void undoVis();
  30. static void AmbientColor( EditEnv &env, C Str &text);
  31. static Str AmbientColor(C EditEnv &env );
  32. static void NightShadeColor( EditEnv &env, C Str &text);
  33. static Str NightShadeColor(C EditEnv &env );
  34. static void BloomOriginal( EditEnv &env, C Str &text);
  35. static Str BloomOriginal(C EditEnv &env );
  36. static void BloomScale ( EditEnv &env, C Str &text);
  37. static Str BloomScale (C EditEnv &env );
  38. static void BloomCut ( EditEnv &env, C Str &text);
  39. static Str BloomCut (C EditEnv &env );
  40. static void BloomSaturate( EditEnv &env, C Str &text);
  41. static Str BloomSaturate(C EditEnv &env );
  42. static void BloomMaximum ( EditEnv &env, C Str &text);
  43. static Str BloomMaximum (C EditEnv &env );
  44. static void BloomHalf ( EditEnv &env, C Str &text);
  45. static Str BloomHalf (C EditEnv &env );
  46. static void BloomBlurs ( EditEnv &env, C Str &text);
  47. static Str BloomBlurs (C EditEnv &env );
  48. static void CloudsScaleY ( EditEnv &env, C Str &text);
  49. static Str CloudsScaleY (C EditEnv &env );
  50. static void CloudsRayMask( EditEnv &env, C Str &text);
  51. static Str CloudsRayMask(C EditEnv &env );
  52. template<int i> static void CloudsColor( EditEnv &env, C Str &text);
  53. template<int i> static Str CloudsColor(C EditEnv &env );
  54. template<int i> static void CloudsScale( EditEnv &env, C Str &text);
  55. template<int i> static Str CloudsScale(C EditEnv &env );
  56. template<int i> static void CloudsVel ( EditEnv &env, C Str &text);
  57. template<int i> static Str CloudsVel (C EditEnv &env );
  58. template<int i> static void CloudsImage( EditEnv &env, C Str &text);
  59. template<int i> static Str CloudsImage(C EditEnv &env );
  60. static void FogSky ( EditEnv &env, C Str &text);
  61. static Str FogSky (C EditEnv &env );
  62. static void FogDensity( EditEnv &env, C Str &text);
  63. static Str FogDensity(C EditEnv &env );
  64. static void FogColor ( EditEnv &env, C Str &text);
  65. static Str FogColor (C EditEnv &env );
  66. static void SkyFrac ( EditEnv &env, C Str &text);
  67. static Str SkyFrac (C EditEnv &env );
  68. static void SkyDnsExp( EditEnv &env, C Str &text);
  69. static Str SkyDnsExp(C EditEnv &env );
  70. static void SkyHorExp( EditEnv &env, C Str &text);
  71. static Str SkyHorExp(C EditEnv &env );
  72. static void SkyHorCol( EditEnv &env, C Str &text);
  73. static Str SkyHorCol(C EditEnv &env );
  74. static void SkySkyCol( EditEnv &env, C Str &text);
  75. static Str SkySkyCol(C EditEnv &env );
  76. static void SkyStars ( EditEnv &env, C Str &text);
  77. static Str SkyStars (C EditEnv &env );
  78. static void SkyBox ( EditEnv &env, C Str &text);
  79. static Str SkyBox (C EditEnv &env );
  80. static void SunBlend ( EditEnv &env, C Str &text);
  81. static Str SunBlend (C EditEnv &env );
  82. static void SunGlow ( EditEnv &env, C Str &text);
  83. static Str SunGlow (C EditEnv &env );
  84. static void SunSize ( EditEnv &env, C Str &text);
  85. static Str SunSize (C EditEnv &env );
  86. static void SunImage ( EditEnv &env, C Str &text);
  87. static Str SunImage (C EditEnv &env );
  88. static void SunImageC( EditEnv &env, C Str &text);
  89. static Str SunImageC(C EditEnv &env );
  90. static void SunLight ( EditEnv &env, C Str &text);
  91. static Str SunLight (C EditEnv &env );
  92. static void SunLitF ( EditEnv &env, C Str &text);
  93. static Str SunLitF (C EditEnv &env );
  94. static void SunLitB ( EditEnv &env, C Str &text);
  95. static Str SunLitB (C EditEnv &env );
  96. static void SunRays ( EditEnv &env, C Str &text);
  97. static Str SunRays (C EditEnv &env );
  98. static void SunAngleX( EditEnv &env, C Str &text);
  99. static Str SunAngleX(C EditEnv &env );
  100. static void SunAngleY( EditEnv &env, C Str &text);
  101. static Str SunAngleY(C EditEnv &env );
  102. static void CAmbient(EnvEditor &ee);
  103. static void CBloom (EnvEditor &ee);
  104. static void CClouds (EnvEditor &ee);
  105. static void CFog (EnvEditor &ee);
  106. static void CSun (EnvEditor &ee);
  107. static void CSky (EnvEditor &ee);
  108. static void BAmbient(EnvEditor &ee);
  109. static void BBloom (EnvEditor &ee);
  110. static void BClouds (EnvEditor &ee);
  111. static void BFog (EnvEditor &ee);
  112. static void BSun (EnvEditor &ee);
  113. static void BSky (EnvEditor &ee);
  114. static void Undo (EnvEditor &editor);
  115. static void Redo (EnvEditor &editor);
  116. static void Locate(EnvEditor &editor);
  117. Environment* cur();
  118. Rect getRect(C Rect &rect);
  119. void toggleWin(GuiObj &obj);
  120. void setSunAngle(flt x, flt y);
  121. void create();
  122. void toGame();
  123. void toGui ();
  124. virtual EnvEditor& hide()override;
  125. virtual EnvEditor& show()override;
  126. void flush();
  127. void setChanged();
  128. void set(Elm *elm);
  129. void activate(Elm *elm);
  130. void toggle (Elm *elm);
  131. void elmChanged(C UID &elm_id);
  132. void erasing(C UID &elm_id);
  133. public:
  134. EnvEditor();
  135. };
  136. /******************************************************************************/
  137. /******************************************************************************/
  138. extern EnvEditor EnvEdit;
  139. /******************************************************************************/