diff options
| author | jacob1 <jfu614@gmail.com> | 2013-08-22 14:53:40 (GMT) |
|---|---|---|
| committer | jacob1 <jfu614@gmail.com> | 2013-08-22 14:53:40 (GMT) |
| commit | 68984bb9be07ea4b6eccf76dddaf3f31d23f577c (patch) | |
| tree | a2e4c6801c2b09e91d52bb0d1539b1b8ec80704b /src/gui/game/SignTool.cpp | |
| parent | b2045b0a7fadbee87ecf52fe14699819b58e7667 (diff) | |
| parent | 4a308cbf661bb40efdf53c6632f875c6c393a307 (diff) | |
| download | powder-68984bb9be07ea4b6eccf76dddaf3f31d23f577c.zip powder-68984bb9be07ea4b6eccf76dddaf3f31d23f577c.tar.gz | |
Merge pull request #155 from mniip/regex
Remove regex dependency
Diffstat (limited to 'src/gui/game/SignTool.cpp')
| -rw-r--r-- | src/gui/game/SignTool.cpp | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/src/gui/game/SignTool.cpp b/src/gui/game/SignTool.cpp index 87ed59e..a71f8e2 100644 --- a/src/gui/game/SignTool.cpp +++ b/src/gui/game/SignTool.cpp @@ -177,16 +177,30 @@ void SignWindow::DoDraw() for(std::vector<sign>::iterator iter = sim->signs.begin(), end = sim->signs.end(); iter != end; ++iter) { sign & currentSign = *iter; - int x, y, w, h, dx, dy; + int x, y, w, h, dx, dy, match=0; Graphics * g = ui::Engine::Ref().g; std::string text = currentSign.getText(sim); + const char* str = currentSign.text.c_str(); currentSign.pos(text, x, y, w, h); g->clearrect(x, y, w+1, h); g->drawrect(x, y, w+1, h, 192, 192, 192, 255); - if (sregexp(currentSign.text.c_str(), "^{[ct]:[0-9]*|.*}$")) - g->drawtext(x+3, y+3, text, 255, 255, 255, 255); - else + 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) g->drawtext(x+3, y+3, text, 0, 191, 255, 255); + else + g->drawtext(x+3, y+3, text, 255, 255, 255, 255); x = currentSign.x; y = currentSign.y; |
