summaryrefslogtreecommitdiff
path: root/src/game
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-07-18 16:22:35 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-07-18 16:22:35 (GMT)
commit80044bb0f06b4186bcc2f07e1c5ddc4e195f2426 (patch)
treea32d1d754ac03accebf55e502b607dab0d214aa8 /src/game
parenta8e4221f38edefb5b342f470407b1f100d0248a3 (diff)
downloadpowder-80044bb0f06b4186bcc2f07e1c5ddc4e195f2426.zip
powder-80044bb0f06b4186bcc2f07e1c5ddc4e195f2426.tar.gz
Renderer Presets and default graphics function
Diffstat (limited to 'src/game')
-rw-r--r--src/game/GameController.cpp8
-rw-r--r--src/game/GameController.h2
-rw-r--r--src/game/GameView.cpp58
-rw-r--r--src/game/GameView.h3
-rw-r--r--src/game/RenderPreset.h19
5 files changed, 90 insertions, 0 deletions
diff --git a/src/game/GameController.cpp b/src/game/GameController.cpp
index 260d99a..0740554 100644
--- a/src/game/GameController.cpp
+++ b/src/game/GameController.cpp
@@ -402,6 +402,14 @@ void GameController::Exit()
HasDone = true;
}
+void GameController::LoadRenderPreset(RenderPreset preset)
+{
+ Renderer * renderer = gameModel->GetRenderer();
+ renderer->SetRenderMode(preset.RenderModes);
+ renderer->SetDisplayMode(preset.DisplayModes);
+ renderer->SetColourMode(preset.ColourMode);
+}
+
void GameController::Update()
{
ui::Point pos = gameView->GetMousePosition();
diff --git a/src/game/GameController.h b/src/game/GameController.h
index 4e2b43a..2388c5d 100644
--- a/src/game/GameController.h
+++ b/src/game/GameController.h
@@ -17,6 +17,7 @@
#include "cat/LuaScriptInterface.h"
#include "options/OptionsController.h"
#include "client/ClientListener.h"
+#include "RenderPreset.h"
#include "Menu.h"
using namespace std;
@@ -63,6 +64,7 @@ public:
void Tick();
void Exit();
+ void LoadRenderPreset(RenderPreset preset);
void SetZoomEnabled(bool zoomEnable);
void SetZoomPosition(ui::Point position);
void AdjustBrushSize(int direction, bool logarithmic = false);
diff --git a/src/game/GameView.cpp b/src/game/GameView.cpp
index 8adb9e1..62fd6a9 100644
--- a/src/game/GameView.cpp
+++ b/src/game/GameView.cpp
@@ -255,6 +255,59 @@ GameView::GameView():
tempButton->Appearance.Margin = ui::Border(0, 2, 3, 2);
tempButton->SetActionCallback(new ElementSearchAction(this));
AddComponent(tempButton);
+
+ //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;
}
class GameView::MenuAction: public ui::ButtonAction
@@ -819,6 +872,11 @@ void GameView::OnKeyPress(int key, Uint16 character, bool shift, bool ctrl, bool
c->AdjustBrushSize(-1, true);
break;
}
+
+ if(key >= '0' && key <= '9')
+ {
+ c->LoadRenderPreset(renderModePresets[key-'0']);
+ }
}
void GameView::OnKeyRelease(int key, Uint16 character, bool shift, bool ctrl, bool alt)
diff --git a/src/game/GameView.h b/src/game/GameView.h
index 4576b13..324f716 100644
--- a/src/game/GameView.h
+++ b/src/game/GameView.h
@@ -12,6 +12,7 @@
#include "interface/Button.h"
#include "interface/Slider.h"
#include "ToolButton.h"
+#include "RenderPreset.h"
#include "Brush.h"
using namespace std;
@@ -76,6 +77,8 @@ private:
ui::Point mousePosition;
+ RenderPreset * renderModePresets;
+
Thumbnail * placeSaveThumb;
Particle sample;
diff --git a/src/game/RenderPreset.h b/src/game/RenderPreset.h
new file mode 100644
index 0000000..9cc9f4c
--- /dev/null
+++ b/src/game/RenderPreset.h
@@ -0,0 +1,19 @@
+#ifndef RENDER_PRESET_H
+#define RENDER_PRESET_H
+class RenderPreset
+{
+public:
+ std::string Name;
+ std::vector<unsigned int> RenderModes;
+ std::vector<unsigned int> DisplayModes;
+ unsigned int ColourMode;
+
+ RenderPreset(): Name(""), ColourMode(0) {}
+ RenderPreset(std::string name, std::vector<unsigned int> renderModes, std::vector<unsigned int> displayModes, unsigned int colourMode):
+ Name(name),
+ RenderModes(renderModes),
+ DisplayModes(displayModes),
+ ColourMode(colourMode)
+ {}
+};
+#endif \ No newline at end of file