summaryrefslogtreecommitdiff
path: root/src/graphics/Renderer.cpp
diff options
context:
space:
mode:
authorjacob1 <jfu614@gmail.com>2013-08-22 14:53:40 (GMT)
committer jacob1 <jfu614@gmail.com>2013-08-22 14:53:40 (GMT)
commit68984bb9be07ea4b6eccf76dddaf3f31d23f577c (patch)
treea2e4c6801c2b09e91d52bb0d1539b1b8ec80704b /src/graphics/Renderer.cpp
parentb2045b0a7fadbee87ecf52fe14699819b58e7667 (diff)
parent4a308cbf661bb40efdf53c6632f875c6c393a307 (diff)
downloadpowder-68984bb9be07ea4b6eccf76dddaf3f31d23f577c.zip
powder-68984bb9be07ea4b6eccf76dddaf3f31d23f577c.tar.gz
Merge pull request #155 from mniip/regex
Remove regex dependency
Diffstat (limited to 'src/graphics/Renderer.cpp')
-rw-r--r--src/graphics/Renderer.cpp28
1 files changed, 22 insertions, 6 deletions
diff --git a/src/graphics/Renderer.cpp b/src/graphics/Renderer.cpp
index 833cec2..28e4d9e 100644
--- a/src/graphics/Renderer.cpp
+++ b/src/graphics/Renderer.cpp
@@ -912,7 +912,7 @@ void Renderer::DrawWalls()
void Renderer::DrawSigns()
{
- int i, j, x, y, w, h, dx, dy,mx,my,b=1,bq;
+ int i, j, x, y, w, h, dx, dy,mx,my,b=1,bq,match;
std::vector<sign> signs = sim->signs;
#ifdef OGLR
GLint prevFbo;
@@ -923,14 +923,30 @@ void Renderer::DrawSigns()
for (i=0; i < signs.size(); i++)
if (signs[i].text.length())
{
- std::string text = sim->signs[i].getText(sim);
- sim->signs[i].pos(text, x, y, w, h);
+ std::string text = signs[i].getText(sim);
+ const char* str = signs[i].text.c_str();
+ signs[i].pos(text, x, y, w, h);
clearrect(x, y, w+1, h);
drawrect(x, y, w+1, h, 192, 192, 192, 255);
- if (sregexp(signs[i].text.c_str(), "^{[ct]:[0-9]*|.*}$"))
- drawtext(x+3, y+3, text, 255, 255, 255, 255);
- else
+ match=0;
+ // check if it's a link sign
+ if (str[0]=='{' && (str[1]=='c' || str[1]=='t') && str[2]==':' && str[3]>='0' && str[3]<='9')
+ {
+ const char* p=str+4;
+ while (*p>='0' && *p<='9')
+ p++;
+ if (*p=='|')
+ {
+ while (*p)
+ p++;
+ if (p[-1]=='}')
+ match=1;
+ }
+ }
+ if (match)
drawtext(x+3, y+3, text, 0, 191, 255, 255);
+ else
+ drawtext(x+3, y+3, text, 255, 255, 255, 255);
x = signs[i].x;
y = signs[i].y;