diff options
| author | Simon Robertshaw <simon@hardwired.org.uk> | 2012-06-25 12:57:23 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2012-06-25 12:57:23 (GMT) |
| commit | ab8f382acc863d8d71ddb75b3161629cf5dd8d64 (patch) | |
| tree | 18744659d28c8fd3556a8c8bb3e17b308aeadc75 /src/Renderer.cpp | |
| parent | 04b007b36f3341d0906b64f8f59eab36ba58988a (diff) | |
| download | powder-ab8f382acc863d8d71ddb75b3161629cf5dd8d64.zip powder-ab8f382acc863d8d71ddb75b3161629cf5dd8d64.tar.gz | |
Sign tool can now edit existing signs
Diffstat (limited to 'src/Renderer.cpp')
| -rw-r--r-- | src/Renderer.cpp | 43 |
1 files changed, 4 insertions, 39 deletions
diff --git a/src/Renderer.cpp b/src/Renderer.cpp index cb66911..51be5c2 100644 --- a/src/Renderer.cpp +++ b/src/Renderer.cpp @@ -58,6 +58,9 @@ void Renderer::clearScreen(float alpha) glClearColor(0.0f, 0.0f, 0.0f, 1.0f); glClear(GL_COLOR_BUFFER_BIT); #endif +#ifdef OGLI + std::fill(vid, vid+(VIDXRES*VIDYRES), 0); +#endif } #ifdef OGLR void Renderer::checkShader(GLuint shader, char * shname) @@ -478,44 +481,6 @@ void Renderer::DrawWalls() #endif } -void Renderer::get_sign_pos(int i, int *x0, int *y0, int *w, int *h) -{ - std::vector<sign> signs = sim->signs; - //Changing width if sign have special content - if (signs[i].text == "{p}") - { - *w = Graphics::textwidth("Pressure: -000.00"); - } - else if (signs[i].text == "{t}") - { - *w = Graphics::textwidth("Temp: 0000.00"); - } - else if (sregexp(signs[i].text.c_str(), "^{c:[0-9]*|.*}$")==0) - { - int sldr, startm; - char buff[256]; - memset(buff, 0, sizeof(buff)); - for (sldr=3; signs[i].text[sldr-1] != '|'; sldr++) - startm = sldr + 1; - - sldr = startm; - while (signs[i].text[sldr] != '}') - { - buff[sldr - startm] = signs[i].text[sldr]; - sldr++; - } - *w = Graphics::textwidth(buff) + 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; - *y0 = (signs[i].y > 18) ? signs[i].y - 18 : signs[i].y + 4; -} - void Renderer::DrawSigns() { int i, j, x, y, w, h, dx, dy,mx,my,b=1,bq; @@ -528,7 +493,7 @@ void Renderer::DrawSigns() if (signs[i].text.length()) { char buff[256]; //Buffer - get_sign_pos(i, &x, &y, &w, &h); + sim->signs[i].pos(x, y, w, h); clearrect(x, y, w, h); drawrect(x, y, w, h, 192, 192, 192, 255); |
