summaryrefslogtreecommitdiff
path: root/src/Renderer.cpp
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-05-12 21:28:45 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-05-12 21:28:45 (GMT)
commit724c99102e1d2ed3a2c347eedb05d9818bac7513 (patch)
tree036b97a683491243f79e42daf65c4f00ecf36c97 /src/Renderer.cpp
parent7128188048395f503b2f70ace2880459acdf7515 (diff)
downloadpowder-724c99102e1d2ed3a2c347eedb05d9818bac7513.zip
powder-724c99102e1d2ed3a2c347eedb05d9818bac7513.tar.gz
Stupid git
Diffstat (limited to 'src/Renderer.cpp')
-rw-r--r--src/Renderer.cpp43
1 files changed, 22 insertions, 21 deletions
diff --git a/src/Renderer.cpp b/src/Renderer.cpp
index 92cb376..7f6f9cc 100644
--- a/src/Renderer.cpp
+++ b/src/Renderer.cpp
@@ -474,15 +474,17 @@ void Renderer::DrawWalls()
void Renderer::get_sign_pos(int i, int *x0, int *y0, int *w, int *h)
{
- sign *signs = sim->signs;
+ std::vector<sign> signs = sim->signs;
//Changing width if sign have special content
- if (strcmp(signs[i].text, "{p}")==0)
+ if (signs[i].text == "{p}")
+ {
*w = Graphics::textwidth("Pressure: -000.00");
-
- if (strcmp(signs[i].text, "{t}")==0)
+ }
+ else if (signs[i].text == "{t}")
+ {
*w = Graphics::textwidth("Temp: 0000.00");
-
- if (sregexp(signs[i].text, "^{c:[0-9]*|.*}$")==0)
+ }
+ else if (sregexp(signs[i].text.c_str(), "^{c:[0-9]*|.*}$")==0)
{
int sldr, startm;
char buff[256];
@@ -498,10 +500,10 @@ void Renderer::get_sign_pos(int i, int *x0, int *y0, int *w, int *h)
}
*w = Graphics::textwidth(buff) + 5;
}
-
- //Ususal width
- if (strcmp(signs[i].text, "{p}") && strcmp(signs[i].text, "{t}") && sregexp(signs[i].text, "^{c:[0-9]*|.*}$"))
- *w = Graphics::textwidth(signs[i].text) + 5;
+ else
+ {
+ *w = Graphics::textwidth(signs[i].text.c_str()) + 5;
+ }
*h = 14;
*x0 = (signs[i].ju == 2) ? signs[i].x - *w :
(signs[i].ju == 1) ? signs[i].x - *w/2 : signs[i].x;
@@ -511,13 +513,13 @@ void Renderer::get_sign_pos(int i, int *x0, int *y0, int *w, int *h)
void Renderer::DrawSigns()
{
int i, j, x, y, w, h, dx, dy,mx,my,b=1,bq;
- sign *signs = sim->signs;
+ std::vector<sign> signs = sim->signs;
#ifdef OGLR
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, partsFbo);
glTranslated(0, MENUSIZE, 0);
#endif
- for (i=0; i<MAXSIGNS; i++)
- if (signs[i].text[0])
+ for (i=0; i < signs.size(); i++)
+ if (signs[i].text.length())
{
char buff[256]; //Buffer
get_sign_pos(i, &x, &y, &w, &h);
@@ -525,7 +527,7 @@ void Renderer::DrawSigns()
g->drawrect(x, y, w, h, 192, 192, 192, 255);
//Displaying special information
- if (strcmp(signs[i].text, "{p}")==0)
+ if (signs[i].text == "{p}")
{
float pressure = 0.0f;
if (signs[i].x>=0 && signs[i].x<XRES && signs[i].y>=0 && signs[i].y<YRES)
@@ -533,7 +535,7 @@ void Renderer::DrawSigns()
sprintf(buff, "Pressure: %3.2f", pressure); //...pressure
g->drawtext(x+3, y+3, buff, 255, 255, 255, 255);
}
- if (strcmp(signs[i].text, "{t}")==0)
+ else if (signs[i].text == "{t}")
{
if (signs[i].x>=0 && signs[i].x<XRES && signs[i].y>=0 && signs[i].y<YRES && sim->pmap[signs[i].y][signs[i].x])
sprintf(buff, "Temp: %4.2f", sim->parts[sim->pmap[signs[i].y][signs[i].x]>>8].temp-273.15); //...temperature
@@ -541,8 +543,7 @@ void Renderer::DrawSigns()
sprintf(buff, "Temp: 0.00"); //...temperature
g->drawtext(x+3, y+3, buff, 255, 255, 255, 255);
}
-
- if (sregexp(signs[i].text, "^{c:[0-9]*|.*}$")==0)
+ else if (sregexp(signs[i].text.c_str(), "^{c:[0-9]*|.*}$")==0)
{
int sldr, startm;
memset(buff, 0, sizeof(buff));
@@ -556,11 +557,11 @@ void Renderer::DrawSigns()
}
g->drawtext(x+3, y+3, buff, 0, 191, 255, 255);
}
-
- //Usual text
- if (strcmp(signs[i].text, "{p}") && strcmp(signs[i].text, "{t}") && sregexp(signs[i].text, "^{c:[0-9]*|.*}$"))
+ else
+ {
g->drawtext(x+3, y+3, signs[i].text, 255, 255, 255, 255);
-
+ }
+
x = signs[i].x;
y = signs[i].y;
dx = 1 - signs[i].ju;