summaryrefslogtreecommitdiff
path: root/src/graphics
diff options
context:
space:
mode:
authorjacob1 <jfu614@gmail.com>2012-09-26 00:32:30 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-09-26 15:46:03 (GMT)
commit95cc715d71f6fb1a9887272e9cb5a0dc14e2da4e (patch)
tree0dd953c351bc44b011d962d39de8fbbe047ee94d /src/graphics
parent0f38fa71ab19db40449cb0b9884899f529f4cc25 (diff)
downloadpowder-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
Diffstat (limited to 'src/graphics')
-rw-r--r--src/graphics/Graphics.cpp32
-rw-r--r--src/graphics/Renderer.cpp57
-rw-r--r--src/graphics/Renderer.h2
3 files changed, 75 insertions, 16 deletions
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];