diff options
| author | jacob1 <jfu614@gmail.com> | 2012-09-26 00:32:30 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2012-09-26 15:46:03 (GMT) |
| commit | 95cc715d71f6fb1a9887272e9cb5a0dc14e2da4e (patch) | |
| tree | 0dd953c351bc44b011d962d39de8fbbe047ee94d | |
| parent | 0f38fa71ab19db40449cb0b9884899f529f4cc25 (diff) | |
| download | powder-95cc715d71f6fb1a9887272e9cb5a0dc14e2da4e.zip powder-95cc715d71f6fb1a9887272e9cb5a0dc14e2da4e.tar.gz | |
render preset buttons in render options interface, also shift + 1 life view shortcut
modify it if you don't like how it looks, but it turned out better than I expected
| -rw-r--r-- | src/game/GameController.cpp | 3 | ||||
| -rw-r--r-- | src/game/GameController.h | 2 | ||||
| -rw-r--r-- | src/game/GameView.cpp | 61 | ||||
| -rw-r--r-- | src/game/GameView.h | 3 | ||||
| -rw-r--r-- | src/graphics/Graphics.cpp | 32 | ||||
| -rw-r--r-- | src/graphics/Renderer.cpp | 57 | ||||
| -rw-r--r-- | src/graphics/Renderer.h | 2 | ||||
| -rw-r--r-- | src/interface/Checkbox.cpp | 2 | ||||
| -rw-r--r-- | src/render/RenderController.cpp | 5 | ||||
| -rw-r--r-- | src/render/RenderController.h | 1 | ||||
| -rw-r--r-- | src/render/RenderModel.cpp | 11 | ||||
| -rw-r--r-- | src/render/RenderModel.h | 1 | ||||
| -rw-r--r-- | src/render/RenderView.cpp | 128 | ||||
| -rw-r--r-- | src/render/RenderView.h | 3 |
14 files changed, 210 insertions, 101 deletions
diff --git a/src/game/GameController.cpp b/src/game/GameController.cpp index 4aceec7..19933cb 100644 --- a/src/game/GameController.cpp +++ b/src/game/GameController.cpp @@ -749,9 +749,10 @@ void GameController::ToggleAHeat() } -void GameController::LoadRenderPreset(RenderPreset preset) +void GameController::LoadRenderPreset(int presetNum) { Renderer * renderer = gameModel->GetRenderer(); + RenderPreset preset = renderer->renderModePresets[presetNum]; gameModel->SetInfoTip(preset.Name); renderer->SetRenderMode(preset.RenderModes); renderer->SetDisplayMode(preset.DisplayModes); diff --git a/src/game/GameController.h b/src/game/GameController.h index 07f37af..dc95f8e 100644 --- a/src/game/GameController.h +++ b/src/game/GameController.h @@ -76,7 +76,7 @@ public: void AdjustGridSize(int direction); void InvertAirSim(); - void LoadRenderPreset(RenderPreset preset); + void LoadRenderPreset(int presetNum); void SetZoomEnabled(bool zoomEnable); void SetZoomPosition(ui::Point position); void AdjustBrushSize(int direction, bool logarithmic = false, bool xAxis = false, bool yAxis = false); diff --git a/src/game/GameView.cpp b/src/game/GameView.cpp index d162615..af9eaaa 100644 --- a/src/game/GameView.cpp +++ b/src/game/GameView.cpp @@ -417,65 +417,10 @@ GameView::GameView(): }; colourPicker = new ui::Button(ui::Point((XRES/2)-8, YRES+1), ui::Point(16, 16), "", "Pick Colour"); colourPicker->SetActionCallback(new ColourPickerAction(this)); - - //Render mode presets. Possibly load from config in future? - renderModePresets = new RenderPreset[10]; - - renderModePresets[0].Name = "Alternative Velocity Display"; - renderModePresets[0].RenderModes.push_back(RENDER_EFFE); - renderModePresets[0].RenderModes.push_back(RENDER_BASC); - renderModePresets[0].DisplayModes.push_back(DISPLAY_AIRC); - - renderModePresets[1].Name = "Velocity Display"; - renderModePresets[1].RenderModes.push_back(RENDER_EFFE); - renderModePresets[1].RenderModes.push_back(RENDER_BASC); - renderModePresets[1].DisplayModes.push_back(DISPLAY_AIRV); - - renderModePresets[2].Name = "Pressure Display"; - renderModePresets[2].RenderModes.push_back(RENDER_EFFE); - renderModePresets[2].RenderModes.push_back(RENDER_BASC); - renderModePresets[2].DisplayModes.push_back(DISPLAY_AIRP); - - renderModePresets[3].Name = "Persistent Display"; - renderModePresets[3].RenderModes.push_back(RENDER_EFFE); - renderModePresets[3].RenderModes.push_back(RENDER_BASC); - renderModePresets[3].DisplayModes.push_back(DISPLAY_PERS); - - renderModePresets[4].Name = "Fire Display"; - renderModePresets[4].RenderModes.push_back(RENDER_FIRE); - renderModePresets[4].RenderModes.push_back(RENDER_EFFE); - renderModePresets[4].RenderModes.push_back(RENDER_BASC); - - renderModePresets[5].Name = "Blob Display"; - renderModePresets[5].RenderModes.push_back(RENDER_FIRE); - renderModePresets[5].RenderModes.push_back(RENDER_EFFE); - renderModePresets[5].RenderModes.push_back(RENDER_BLOB); - - renderModePresets[6].Name = "Heat Display"; - renderModePresets[6].RenderModes.push_back(RENDER_BASC); - renderModePresets[6].DisplayModes.push_back(DISPLAY_AIRH); - renderModePresets[6].ColourMode = COLOUR_HEAT; - - renderModePresets[7].Name = "Fancy Display"; - renderModePresets[7].RenderModes.push_back(RENDER_FIRE); - renderModePresets[7].RenderModes.push_back(RENDER_GLOW); - renderModePresets[7].RenderModes.push_back(RENDER_BLUR); - renderModePresets[7].RenderModes.push_back(RENDER_EFFE); - renderModePresets[7].RenderModes.push_back(RENDER_BASC); - renderModePresets[7].DisplayModes.push_back(DISPLAY_WARP); - - renderModePresets[8].Name = "Nothing Display"; - renderModePresets[8].RenderModes.push_back(RENDER_BASC); - - renderModePresets[9].Name = "Heat Gradient Display"; - renderModePresets[9].RenderModes.push_back(RENDER_BASC); - renderModePresets[9].ColourMode = COLOUR_GRAD; } GameView::~GameView() { - delete[] renderModePresets; - if(!colourPicker->GetParentWindow()) delete colourPicker; @@ -1405,9 +1350,11 @@ void GameView::OnKeyPress(int key, Uint16 character, bool shift, bool ctrl, bool break; } - if(key >= '0' && key <= '9') + if (shift && showDebug && key == '1') + c->LoadRenderPreset(10); + else if(key >= '0' && key <= '9') { - c->LoadRenderPreset(renderModePresets[key-'0']); + c->LoadRenderPreset(key-'0'); } } diff --git a/src/game/GameView.h b/src/game/GameView.h index 7e5125b..7fb5794 100644 --- a/src/game/GameView.h +++ b/src/game/GameView.h @@ -13,7 +13,6 @@ #include "interface/Slider.h" #include "interface/Textbox.h" #include "ToolButton.h" -#include "RenderPreset.h" #include "Brush.h" #include "simulation/Sample.h" @@ -101,8 +100,6 @@ private: ui::Point mousePosition; - RenderPreset * renderModePresets; - Thumbnail * placeSaveThumb; SimulationSample sample; diff --git a/src/graphics/Graphics.cpp b/src/graphics/Graphics.cpp index 4d6b63e..a17baf0 100644 --- a/src/graphics/Graphics.cpp +++ b/src/graphics/Graphics.cpp @@ -875,49 +875,49 @@ void Graphics::draw_icon(int x, int y, Icon icon, unsigned char alpha, bool inve } break; case IconVelocity: - drawchar(x, y, 0x98, 128, 160, 255, alpha); + drawchar(x+1, y, 0x98, 128, 160, 255, alpha); break; case IconPressure: - drawchar(x, y, 0x99, 255, 212, 32, alpha); + drawchar(x+1, y+1, 0x99, 255, 212, 32, alpha); break; case IconPersistant: - drawchar(x, y, 0x9A, 212, 212, 212, alpha); + drawchar(x+1, y, 0x9A, 212, 212, 212, alpha); break; case IconFire: - drawchar(x+1, y, 0x9B, 255, 0, 0, alpha); - drawchar(x+1, y, 0x9C, 255, 255, 64, alpha); + drawchar(x+1, y+1, 0x9B, 255, 0, 0, alpha); + drawchar(x+1, y+1, 0x9C, 255, 255, 64, alpha); break; case IconBlob: - drawchar(x, y, 0xBF, 55, 255, 55, alpha); + drawchar(x+1, y, 0xBF, 55, 255, 55, alpha); break; case IconHeat: - drawchar(x+2, y, 0xBE, 255, 0, 0, alpha); - drawchar(x+2, y, 0xBD, 255, 255, 255, alpha); + drawchar(x+3, y, 0xBE, 255, 0, 0, alpha); + drawchar(x+3, y, 0xBD, 255, 255, 255, alpha); break; case IconBlur: - drawchar(x, y, 0xC4, 100, 150, 255, alpha); + drawchar(x+1, y, 0xC4, 100, 150, 255, alpha); break; case IconGradient: - drawchar(x, y, 0xD3, 255, 50, 255, alpha); + drawchar(x+1, y+1, 0xD3, 255, 50, 255, alpha); break; case IconLife: drawchar(x, y, 0xE0, 255, 255, 255, alpha); break; case IconEffect: - drawchar(x, y, 0xE1, 255, 255, 160, alpha); + drawchar(x+1, y, 0xE1, 255, 255, 160, alpha); break; case IconGlow: - drawchar(x, y, 0xDF, 200, 255, 255, alpha); + drawchar(x+1, y, 0xDF, 200, 255, 255, alpha); break; case IconWarp: - drawchar(x, y, 0xDE, 255, 255, 255, alpha); + drawchar(x+1, y, 0xDE, 255, 255, 255, alpha); break; case IconBasic: - drawchar(x, y, 0xDB, 255, 255, 200, alpha); + drawchar(x+1, y+1, 0xDB, 255, 255, 200, alpha); break; case IconAltAir: - drawchar(x, y, 0xD4, 255, 55, 55, alpha); - drawchar(x, y, 0xD5, 55, 255, 55, alpha); + drawchar(x+1, y+1, 0xD4, 255, 55, 55, alpha); + drawchar(x+1, y+1, 0xD5, 55, 255, 55, alpha); break; default: if(invert) diff --git a/src/graphics/Renderer.cpp b/src/graphics/Renderer.cpp index de51562..33f9736 100644 --- a/src/graphics/Renderer.cpp +++ b/src/graphics/Renderer.cpp @@ -2337,6 +2337,63 @@ Renderer::Renderer(Graphics * g, Simulation * sim): AddRenderMode(RENDER_BASC); AddRenderMode(RENDER_FIRE); + //Render mode presets. Possibly load from config in future? + renderModePresets = new RenderPreset[11]; + + renderModePresets[0].Name = "Alternative Velocity Display"; + renderModePresets[0].RenderModes.push_back(RENDER_EFFE); + renderModePresets[0].RenderModes.push_back(RENDER_BASC); + renderModePresets[0].DisplayModes.push_back(DISPLAY_AIRC); + + renderModePresets[1].Name = "Velocity Display"; + renderModePresets[1].RenderModes.push_back(RENDER_EFFE); + renderModePresets[1].RenderModes.push_back(RENDER_BASC); + renderModePresets[1].DisplayModes.push_back(DISPLAY_AIRV); + + renderModePresets[2].Name = "Pressure Display"; + renderModePresets[2].RenderModes.push_back(RENDER_EFFE); + renderModePresets[2].RenderModes.push_back(RENDER_BASC); + renderModePresets[2].DisplayModes.push_back(DISPLAY_AIRP); + + renderModePresets[3].Name = "Persistent Display"; + renderModePresets[3].RenderModes.push_back(RENDER_EFFE); + renderModePresets[3].RenderModes.push_back(RENDER_BASC); + renderModePresets[3].DisplayModes.push_back(DISPLAY_PERS); + + renderModePresets[4].Name = "Fire Display"; + renderModePresets[4].RenderModes.push_back(RENDER_FIRE); + renderModePresets[4].RenderModes.push_back(RENDER_EFFE); + renderModePresets[4].RenderModes.push_back(RENDER_BASC); + + renderModePresets[5].Name = "Blob Display"; + renderModePresets[5].RenderModes.push_back(RENDER_FIRE); + renderModePresets[5].RenderModes.push_back(RENDER_EFFE); + renderModePresets[5].RenderModes.push_back(RENDER_BLOB); + + renderModePresets[6].Name = "Heat Display"; + renderModePresets[6].RenderModes.push_back(RENDER_BASC); + renderModePresets[6].DisplayModes.push_back(DISPLAY_AIRH); + renderModePresets[6].ColourMode = COLOUR_HEAT; + + renderModePresets[7].Name = "Fancy Display"; + renderModePresets[7].RenderModes.push_back(RENDER_FIRE); + renderModePresets[7].RenderModes.push_back(RENDER_GLOW); + renderModePresets[7].RenderModes.push_back(RENDER_BLUR); + renderModePresets[7].RenderModes.push_back(RENDER_EFFE); + renderModePresets[7].RenderModes.push_back(RENDER_BASC); + renderModePresets[7].DisplayModes.push_back(DISPLAY_WARP); + + renderModePresets[8].Name = "Nothing Display"; + renderModePresets[8].RenderModes.push_back(RENDER_BASC); + + renderModePresets[9].Name = "Heat Gradient Display"; + renderModePresets[9].RenderModes.push_back(RENDER_BASC); + renderModePresets[9].ColourMode = COLOUR_GRAD; + + renderModePresets[10].Name = "Life Gradient Display"; + renderModePresets[10].RenderModes.push_back(RENDER_BASC); + renderModePresets[10].ColourMode = COLOUR_LIFE; + //Prepare the graphics cache graphicscache = (gcache_item *)malloc(sizeof(gcache_item)*PT_NUM); memset(graphicscache, 0, sizeof(gcache_item)*PT_NUM); diff --git a/src/graphics/Renderer.h b/src/graphics/Renderer.h index b72744c..2c7d969 100644 --- a/src/graphics/Renderer.h +++ b/src/graphics/Renderer.h @@ -10,6 +10,7 @@ #include "client/Client.h" #include "Graphics.h" #include "interface/Point.h" +#include "game/renderPreset.h" class Simulation; @@ -45,6 +46,7 @@ public: unsigned int colour_mode; std::vector<unsigned int> display_modes; unsigned int display_mode; + RenderPreset * renderModePresets; // unsigned char fire_r[YRES/CELL][XRES/CELL]; unsigned char fire_g[YRES/CELL][XRES/CELL]; diff --git a/src/interface/Checkbox.cpp b/src/interface/Checkbox.cpp index ae24b00..22c6a42 100644 --- a/src/interface/Checkbox.cpp +++ b/src/interface/Checkbox.cpp @@ -34,7 +34,7 @@ std::string Checkbox::GetText() void Checkbox::SetIcon(Icon icon) { Appearance.icon = icon; - iconPosition.X = 17; + iconPosition.X = 16; iconPosition.Y = 3; } diff --git a/src/render/RenderController.cpp b/src/render/RenderController.cpp index 75227cd..e98200a 100644 --- a/src/render/RenderController.cpp +++ b/src/render/RenderController.cpp @@ -45,6 +45,11 @@ void RenderController::SetColourMode(unsigned int renderMode) renderModel->SetColourMode(renderMode); } +void RenderController::LoadRenderPreset(int presetNum) +{ + renderModel->LoadRenderPreset(presetNum); +} + void RenderController::Exit() { if(ui::Engine::Ref().GetWindow() == renderView) diff --git a/src/render/RenderController.h b/src/render/RenderController.h index 37592ac..8ea44a4 100644 --- a/src/render/RenderController.h +++ b/src/render/RenderController.h @@ -30,6 +30,7 @@ public: void SetDisplayMode(unsigned int renderMode); void UnsetDisplayMode(unsigned int renderMode); void SetColourMode(unsigned int renderMode); + void LoadRenderPreset(int presetNum); }; #endif /* RENDERCONTROLLER_H_ */ diff --git a/src/render/RenderModel.cpp b/src/render/RenderModel.cpp index be3b30a..556493c 100644 --- a/src/render/RenderModel.cpp +++ b/src/render/RenderModel.cpp @@ -81,6 +81,17 @@ unsigned int RenderModel::GetColourMode() return 0; } +void RenderModel::LoadRenderPreset(int presetNum) +{ + RenderPreset preset = renderer->renderModePresets[presetNum]; + renderer->SetRenderMode(preset.RenderModes); + renderer->SetDisplayMode(preset.DisplayModes); + renderer->SetColourMode(preset.ColourMode); + notifyRenderChanged(); + notifyDisplayChanged(); + notifyColourChanged(); +} + void RenderModel::SetRenderer(Renderer * ren) { renderer = ren; diff --git a/src/render/RenderModel.h b/src/render/RenderModel.h index 7d25f50..8a8b1cd 100644 --- a/src/render/RenderModel.h +++ b/src/render/RenderModel.h @@ -35,6 +35,7 @@ public: unsigned int GetDisplayMode(); void SetColourMode(unsigned int colourMode); unsigned int GetColourMode(); + void LoadRenderPreset(int presetNum); virtual ~RenderModel(); }; diff --git a/src/render/RenderView.cpp b/src/render/RenderView.cpp index 6327ce3..2455447 100644 --- a/src/render/RenderView.cpp +++ b/src/render/RenderView.cpp @@ -67,121 +67,194 @@ public: } }; +class RenderView::RenderPresetAction: public ui::ButtonAction +{ + RenderView * v; +public: + int renderPreset; + RenderPresetAction(RenderView * v_, int renderPreset_) + { + v = v_; + renderPreset = renderPreset_; + } + virtual void ActionCallback(ui::Button * sender) + { + v->c->LoadRenderPreset(renderPreset); + } +}; + RenderView::RenderView(): ui::Window(ui::Point(0, 0), ui::Point(XRES, YRES+MENUSIZE)), toolTip(""), toolTipPresence(0), ren(NULL) { + ui::Button * presetButton; + + presetButton = new ui::Button(ui::Point(5, YRES+6), ui::Point(30, 13), "", "Velocity display mode preset"); + presetButton->SetIcon(IconVelocity); + presetButton->SetActionCallback(new RenderPresetAction(this, 1)); + AddComponent(presetButton); + + presetButton = new ui::Button(ui::Point(5, YRES+6+18), ui::Point(30, 13), "", "Pressure display mode preset"); + presetButton->SetIcon(IconPressure); + presetButton->SetActionCallback(new RenderPresetAction(this, 2)); + AddComponent(presetButton); + + presetButton = new ui::Button(ui::Point(44, YRES+6), ui::Point(30, 13), "", "Persistant display mode preset"); + presetButton->SetIcon(IconPersistant); + presetButton->SetActionCallback(new RenderPresetAction(this, 3)); + AddComponent(presetButton); + + presetButton = new ui::Button(ui::Point(44, YRES+6+18), ui::Point(30, 13), "", "Fire display mode preset"); + presetButton->SetIcon(IconFire); + presetButton->SetActionCallback(new RenderPresetAction(this, 4)); + AddComponent(presetButton); + + presetButton = new ui::Button(ui::Point(83, YRES+6), ui::Point(30, 13), "", "Blob display mode preset"); + presetButton->SetIcon(IconBlob); + presetButton->SetActionCallback(new RenderPresetAction(this, 5)); + AddComponent(presetButton); + + presetButton = new ui::Button(ui::Point(83, YRES+6+18), ui::Point(30, 13), "", "Heat display mode preset"); + presetButton->SetIcon(IconHeat); + presetButton->SetActionCallback(new RenderPresetAction(this, 6)); + AddComponent(presetButton); + + presetButton = new ui::Button(ui::Point(122, YRES+6), ui::Point(30, 13), "", "Fancy display mode preset"); + presetButton->SetIcon(IconBlur); + presetButton->SetActionCallback(new RenderPresetAction(this, 7)); + AddComponent(presetButton); + + presetButton = new ui::Button(ui::Point(122, YRES+6+18), ui::Point(30, 13), "", "Nothing display mode preset"); + presetButton->SetIcon(IconBasic); + presetButton->SetActionCallback(new RenderPresetAction(this, 8)); + AddComponent(presetButton); + + presetButton = new ui::Button(ui::Point(161, YRES+6), ui::Point(30, 13), "", "Heat gradient display mode preset"); + presetButton->SetIcon(IconGradient); + presetButton->SetActionCallback(new RenderPresetAction(this, 9)); + AddComponent(presetButton); + + presetButton = new ui::Button(ui::Point(161, YRES+6+18), ui::Point(30, 13), "", "Alternative Velocity display mode preset"); + presetButton->SetIcon(IconAltAir); + presetButton->SetActionCallback(new RenderPresetAction(this, 0)); + AddComponent(presetButton); + + presetButton = new ui::Button(ui::Point(200, YRES+6), ui::Point(30, 13), "", "Life display mode preset"); + presetButton->SetIcon(IconLife); + presetButton->SetActionCallback(new RenderPresetAction(this, 10)); + AddComponent(presetButton); + ui::Checkbox * tCheckbox; - tCheckbox = new ui::Checkbox(ui::Point(1, YRES+4), ui::Point(30, 16), "Effects", "Adds Special flare effects to some elements"); + tCheckbox = new ui::Checkbox(ui::Point(241, YRES+4), ui::Point(30, 16), "Effects", "Adds Special flare effects to some elements"); renderModes.push_back(tCheckbox); tCheckbox->SetIcon(IconEffect); tCheckbox->SetActionCallback(new RenderModeAction(this, RENDER_EFFE)); AddComponent(tCheckbox); - tCheckbox = new ui::Checkbox(ui::Point(1, YRES+4+18), ui::Point(30, 16), "Fire", "Fire effect for gasses"); + tCheckbox = new ui::Checkbox(ui::Point(241, YRES+4+18), ui::Point(30, 16), "Fire", "Fire effect for gasses"); renderModes.push_back(tCheckbox); tCheckbox->SetIcon(IconFire); tCheckbox->SetActionCallback(new RenderModeAction(this, RENDER_FIRE)); AddComponent(tCheckbox); - tCheckbox = new ui::Checkbox(ui::Point(41, YRES+4), ui::Point(30, 16), "Glow", "Glow effect on some elements"); + tCheckbox = new ui::Checkbox(ui::Point(281, YRES+4), ui::Point(30, 16), "Glow", "Glow effect on some elements"); renderModes.push_back(tCheckbox); tCheckbox->SetIcon(IconGlow); tCheckbox->SetActionCallback(new RenderModeAction(this, RENDER_GLOW)); AddComponent(tCheckbox); - tCheckbox = new ui::Checkbox(ui::Point(41, YRES+4+18), ui::Point(30, 16), "Blur", "Blur effect for liquids"); + tCheckbox = new ui::Checkbox(ui::Point(281, YRES+4+18), ui::Point(30, 16), "Blur", "Blur effect for liquids"); renderModes.push_back(tCheckbox); tCheckbox->SetIcon(IconBlur); tCheckbox->SetActionCallback(new RenderModeAction(this, RENDER_BLUR)); AddComponent(tCheckbox); - tCheckbox = new ui::Checkbox(ui::Point(81, YRES+4), ui::Point(30, 16), "Blob", "Makes everything be drawn like a blob"); + tCheckbox = new ui::Checkbox(ui::Point(321, YRES+4), ui::Point(30, 16), "Blob", "Makes everything be drawn like a blob"); renderModes.push_back(tCheckbox); tCheckbox->SetIcon(IconBlob); tCheckbox->SetActionCallback(new RenderModeAction(this, RENDER_BLOB)); AddComponent(tCheckbox); - tCheckbox = new ui::Checkbox(ui::Point(81, YRES+4+18), ui::Point(30, 16), "Point", "Basic rendering, without this, most things will be invisible"); + tCheckbox = new ui::Checkbox(ui::Point(321, YRES+4+18), ui::Point(30, 16), "Point", "Basic rendering, without this, most things will be invisible"); renderModes.push_back(tCheckbox); tCheckbox->SetIcon(IconBasic); tCheckbox->SetActionCallback(new RenderModeAction(this, RENDER_BASC)); AddComponent(tCheckbox); - tCheckbox = new ui::Checkbox(ui::Point(136, YRES+4), ui::Point(30, 16), "Alt. Air", "Displays pressure as red and blue, and velocity as white"); + tCheckbox = new ui::Checkbox(ui::Point(366, YRES+4), ui::Point(30, 16), "Alt. Air", "Displays pressure as red and blue, and velocity as white"); displayModes.push_back(tCheckbox); tCheckbox->SetIcon(IconAltAir); tCheckbox->SetActionCallback(new DisplayModeAction(this, DISPLAY_AIRC)); AddComponent(tCheckbox); - tCheckbox = new ui::Checkbox(ui::Point(136, YRES+4+18), ui::Point(30, 16), "Pressure", "Displays pressure, red is positive and blue is negative"); + tCheckbox = new ui::Checkbox(ui::Point(366, YRES+4+18), ui::Point(30, 16), "Pressure", "Displays pressure, red is positive and blue is negative"); displayModes.push_back(tCheckbox); tCheckbox->SetIcon(IconPressure); tCheckbox->SetActionCallback(new DisplayModeAction(this, DISPLAY_AIRP)); AddComponent(tCheckbox); - tCheckbox = new ui::Checkbox(ui::Point(176, YRES+4), ui::Point(30, 16), "Velocity", "Displays velocity and positive pressure: up/down adds blue, right/left adds red, still pressure adds green"); + tCheckbox = new ui::Checkbox(ui::Point(406, YRES+4), ui::Point(30, 16), "Velocity", "Displays velocity and positive pressure: up/down adds blue, right/left adds red, still pressure adds green"); displayModes.push_back(tCheckbox); tCheckbox->SetIcon(IconVelocity); tCheckbox->SetActionCallback(new DisplayModeAction(this, DISPLAY_AIRV)); AddComponent(tCheckbox); - tCheckbox = new ui::Checkbox(ui::Point(176, YRES+4+18), ui::Point(30, 16), "Air-heat", "Displays the temperature of the air like heat display does"); + tCheckbox = new ui::Checkbox(ui::Point(406, YRES+4+18), ui::Point(30, 16), "Air-heat", "Displays the temperature of the air like heat display does"); displayModes.push_back(tCheckbox); tCheckbox->SetIcon(IconHeat); tCheckbox->SetActionCallback(new DisplayModeAction(this, DISPLAY_AIRH)); AddComponent(tCheckbox); - /*tCheckbox = new ui::Checkbox(ui::Point(216, YRES+4), ui::Point(30, 16), "Air", ""); + /*tCheckbox = new ui::Checkbox(ui::Point(446, YRES+4), ui::Point(30, 16), "Air", ""); displayModes.push_back(tCheckbox); tCheckbox->SetIcon(IconAltAir); tCheckbox->SetActionCallback(new DisplayModeAction(this, DISPLAY_AIR)); AddComponent(tCheckbox);*/ - tCheckbox = new ui::Checkbox(ui::Point(221, YRES+4+18), ui::Point(30, 16), "Warp", "Gravity lensing, Newtonian Gravity bends light with this on"); + tCheckbox = new ui::Checkbox(ui::Point(451, YRES+4+18), ui::Point(30, 16), "Warp", "Gravity lensing, Newtonian Gravity bends light with this on"); displayModes.push_back(tCheckbox); tCheckbox->SetIcon(IconWarp); tCheckbox->SetActionCallback(new DisplayModeAction(this, DISPLAY_WARP)); AddComponent(tCheckbox); #ifdef OGLR - tCheckbox = new ui::Checkbox(ui::Point(221, YRES+4), ui::Point(30, 16), "Effect", "I don't know what this does...") //I would remove the whole checkbox, but then there's a large empty space + tCheckbox = new ui::Checkbox(ui::Point(451, YRES+4), ui::Point(30, 16), "Effect", "I don't know what this does...") //I would remove the whole checkbox, but then there's a large empty space #else - tCheckbox = new ui::Checkbox(ui::Point(221, YRES+4), ui::Point(30, 16), "Effect", "Does nothing"); + tCheckbox = new ui::Checkbox(ui::Point(451, YRES+4), ui::Point(30, 16), "Effect", "Does nothing"); #endif displayModes.push_back(tCheckbox); tCheckbox->SetIcon(IconEffect); tCheckbox->SetActionCallback(new DisplayModeAction(this, DISPLAY_EFFE)); AddComponent(tCheckbox); - tCheckbox = new ui::Checkbox(ui::Point(261, YRES+4), ui::Point(30, 16), "Persistent", "Element paths persist on the screen for a while"); + tCheckbox = new ui::Checkbox(ui::Point(491, YRES+4), ui::Point(30, 16), "Persistent", "Element paths persist on the screen for a while"); displayModes.push_back(tCheckbox); tCheckbox->SetIcon(IconPersistant); tCheckbox->SetActionCallback(new DisplayModeAction(this, DISPLAY_PERS)); AddComponent(tCheckbox); - tCheckbox = new ui::Checkbox(ui::Point(306, YRES+4), ui::Point(30, 16), "Heat", "Displays temperatures of the elements, dark blue is coldest, pink is hotest"); + tCheckbox = new ui::Checkbox(ui::Point(536, YRES+4), ui::Point(30, 16), "Heat", "Displays temperatures of the elements, dark blue is coldest, pink is hotest"); colourModes.push_back(tCheckbox); tCheckbox->SetIcon(IconHeat); tCheckbox->SetActionCallback(new ColourModeAction(this, COLOUR_HEAT)); AddComponent(tCheckbox); - tCheckbox = new ui::Checkbox(ui::Point(306, YRES+4+18), ui::Point(30, 16), "Life", "Displays the life value of elements in greyscale gradients"); + tCheckbox = new ui::Checkbox(ui::Point(536, YRES+4+18), ui::Point(30, 16), "Life", "Displays the life value of elements in greyscale gradients"); colourModes.push_back(tCheckbox); tCheckbox->SetIcon(IconLife); tCheckbox->SetActionCallback(new ColourModeAction(this, COLOUR_LIFE)); AddComponent(tCheckbox); - tCheckbox = new ui::Checkbox(ui::Point(346, YRES+4+18), ui::Point(30, 16), "H-Gradient", "Changes colors of elements slightly to show heat diffusing through them"); + tCheckbox = new ui::Checkbox(ui::Point(576, YRES+4+18), ui::Point(30, 16), "H-Gradient", "Changes colors of elements slightly to show heat diffusing through them"); colourModes.push_back(tCheckbox); tCheckbox->SetIcon(IconGradient); tCheckbox->SetActionCallback(new ColourModeAction(this, COLOUR_GRAD)); AddComponent(tCheckbox); - tCheckbox = new ui::Checkbox(ui::Point(346, YRES+4), ui::Point(30, 16), "Basic", "No special effects at all for anything, overrides all other options and deco"); + tCheckbox = new ui::Checkbox(ui::Point(576, YRES+4), ui::Point(30, 16), "Basic", "No special effects at all for anything, overrides all other options and deco"); colourModes.push_back(tCheckbox); tCheckbox->SetIcon(IconBasic); tCheckbox->SetActionCallback(new ColourModeAction(this, COLOUR_BASC)); @@ -268,9 +341,10 @@ void RenderView::OnDraw() ren->RenderEnd(); } g->draw_line(0, YRES, XRES-1, YRES, 200, 200, 200, 255); - g->draw_line(130, YRES, 130, YRES+MENUSIZE, 200, 200, 200, 255); - g->draw_line(215, YRES, 215, YRES+MENUSIZE, 200, 200, 200, 255); - g->draw_line(300, YRES, 300, YRES+MENUSIZE, 200, 200, 200, 255); + g->draw_line(235, YRES, 235, YRES+MENUSIZE, 200, 200, 200, 255); + g->draw_line(360, YRES, 360, YRES+MENUSIZE, 200, 200, 200, 255); + g->draw_line(445, YRES, 445, YRES+MENUSIZE, 200, 200, 200, 255); + g->draw_line(530, YRES, 530, YRES+MENUSIZE, 200, 200, 200, 255); g->draw_line(XRES, 0, XRES, YRES+MENUSIZE, 255, 255, 255, 255); if(toolTipPresence && toolTip.length()) { @@ -288,6 +362,16 @@ void RenderView::OnTick(float dt) } } +void RenderView::OnKeyPress(int key, Uint16 character, bool shift, bool ctrl, bool alt) +{ + if (shift && key == '1') + c->LoadRenderPreset(10); + else if(key >= '0' && key <= '9') + { + c->LoadRenderPreset(key-'0'); + } +} + void RenderView::ToolTip(ui::Component * sender, ui::Point mousePosition, std::string toolTip) { this->toolTip = toolTip; diff --git a/src/render/RenderView.h b/src/render/RenderView.h index 695a342..03a4065 100644 --- a/src/render/RenderView.h +++ b/src/render/RenderView.h @@ -15,6 +15,7 @@ #include "RenderModel.h" #include "graphics/Renderer.h" #include "interface/Checkbox.h" +#include "interface/Button.h" class RenderController; class RenderModel; @@ -30,6 +31,7 @@ public: class RenderModeAction; class DisplayModeAction; class ColourModeAction; + class RenderPresetAction; RenderView(); void NotifyRendererChanged(RenderModel * sender); void NotifyRenderChanged(RenderModel * sender); @@ -39,6 +41,7 @@ public: void OnMouseDown(int x, int y, unsigned button); virtual void OnDraw(); virtual void OnTick(float dt); + virtual void OnKeyPress(int key, Uint16 character, bool shift, bool ctrl, bool alt); virtual void ToolTip(ui::Component * sender, ui::Point mousePosition, std::string toolTip); virtual ~RenderView(); }; |
