Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 22nd, 2012  |  syntax: None  |  size: 3.91 KB  |  hits: 16  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #include "World/States/MenuState.hpp"
  2.  
  3. /////// GUI related
  4. void MenuState::rainStateChanged()
  5. {
  6.    worldManager.enableRain(mRainState->is_checked(), 150);
  7.    mWindSlider->set_enabled(mRainState->is_checked());
  8.    mDropSlider->set_enabled(mRainState->is_checked());
  9. }
  10.  
  11. void MenuState::windPowerChanged()
  12. {
  13.     worldManager.setWindPower(mWindSlider->get_position());
  14. }
  15.  
  16. void MenuState::dropNumChanged()
  17. {
  18.     worldManager.setDropLimit(mDropSlider->get_position());
  19. }
  20.  
  21. void MenuState::init()
  22. {
  23.     mGC = appManager.getGraphic();
  24.     mGeom = appManager.getWindow().get_geometry();
  25.  
  26.     mStatFont = new CL_Font(appManager.getGraphic(), "Ubuntu", 30);
  27.     mBackground = CL_Image(appManager.getGraphic(), "media/ground.png");
  28.     //mFg1 = CL_Image(appManager.getGraphic(), "media/bg_1.png");
  29.  
  30.     mRainState = new CL_CheckBox(&guiManager.getWrapper());
  31.     mRainState->set_geometry(CL_RectPS(mGeom.get_width() - 150 - 40, 5, 150, 30));
  32.     mRainState->set_text("Enable raining");
  33.     mRainState->func_state_changed().set(this, &MenuState::rainStateChanged);
  34.  
  35.     mWindSlider = new CL_Slider(&guiManager.getWrapper());
  36.     mWindSlider->set_horizontal(true);
  37.     mWindSlider->set_position(0);
  38.     mWindSlider->set_enabled(false);
  39.     mWindSlider->set_ranges(-10, 10, 2, 1);
  40.     mWindSlider->set_geometry(CL_RectPS(mGeom.get_width() - 180 - 5, 35, 180, 30));
  41.     mWindSlider->func_value_changed().set(this, &MenuState::windPowerChanged);
  42.  
  43.     /*mWindLabel = new CL_Label(&guiManager.getWrapper());
  44.     mWindLabel->set_text("wind:");
  45.     mWindLabel->set_geometry(CL_RectPS(mGeom.get_width()-180-100, 35, 180, 30));*/
  46.  
  47.     mDropSlider = new CL_Slider(&guiManager.getWrapper());
  48.     mDropSlider->set_horizontal(true);
  49.     mDropSlider->set_enabled(false);
  50.     mDropSlider->set_position(150);
  51.     mDropSlider->set_ranges(1, 1000, 50, 50);
  52.     mDropSlider->set_geometry(CL_RectPS(mGeom.get_width() - 180 - 5, 70, 180, 30));
  53.     mDropSlider->func_value_changed().set(this, &MenuState::dropNumChanged);
  54.  
  55.     /*mSome = new CL_PushButton(&guiManager.getWrapper());
  56.     mSome->set_geometry(CL_RectPS(mGeom.get_width() - 150 - 5, 40, 150, 30));
  57.     mSome->set_text("Some button");*/
  58.     //mSome->func_clicked().set(this, &MenuState::rainStateChanged);
  59.  
  60.     worldManager.initWorld();
  61.     worldManager.enableSky(true);
  62.     worldManager.enableMoon(true);
  63.     worldManager.enableStars(true);
  64.     worldManager.enableLeaves(true, 4);
  65.     worldManager.enableClouds(true, 25);
  66.     worldManager.enableRain(true, 50);
  67.     worldManager.enableBirds(true);
  68.     worldManager.setWindPower(-2.0);
  69. }
  70.  
  71. void MenuState::shutdown()
  72. {
  73.     delete mStatFont;
  74.     delete mRainState;
  75.     delete mSome;
  76.     delete mWindSlider;
  77.     delete mDropSlider;
  78.     //delete mWindLabel;
  79. }
  80.  
  81. void MenuState::update()
  82. {
  83.     mGC.clear();
  84.     worldManager.update();
  85.     //mFg1.draw(mGC, 0, mGC.get_height()-mFg1.get_height() - mBackground.get_height() + 50);
  86.     mBackground.draw(mGC, 0, mGC.get_height()-mBackground.get_height());
  87.     mGrass.update();
  88.  
  89.     int *time = worldManager.getWorldTime();
  90.     mStatFont->draw_text(appManager.getGraphic(), 10, 25,
  91.             CL_String(cl_format("world time: %1:%2:%3", time[0], time[1], time[2])), CL_Colorf::white);
  92.     mStatFont->draw_text(appManager.getGraphic(), 10, 50,
  93.             CL_String(cl_format("elapsed: %1", int(floor(appManager.getElapsed()+0.5)))), CL_Colorf::white);
  94.     mStatFont->draw_text(appManager.getGraphic(), 10, 75,
  95.             CL_String(cl_format("wind: %1", int(worldManager.getWindPower()))), CL_Colorf::white);
  96.     mStatFont->draw_text(appManager.getGraphic(), 10, 100,
  97.             CL_String(cl_format("max drops: %1", int(worldManager.getDropLimit()))), CL_Colorf::white);
  98.     mStatFont->draw_text(appManager.getGraphic(), 10, 125,
  99.             CL_String(cl_format("moon angle: %1", int(worldManager.getMoonAngle()))), CL_Colorf::white);
  100. }
  101.  
  102. string MenuState::type()
  103. {
  104.     return "MenuState";
  105. }