summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjacob1 <jfu614@gmail.com>2012-10-03 01:31:39 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-10-05 15:30:55 (GMT)
commit71db872e6422dd264ffa00a848d3f8a76e08b279 (patch)
tree107d46e646437dc3685fdd8e1ff6d0593176ed80 /src
parent7c0ba094b87a43ebaf819b8f38894163a9df8ae6 (diff)
downloadpowder-71db872e6422dd264ffa00a848d3f8a76e08b279.zip
powder-71db872e6422dd264ffa00a848d3f8a76e08b279.tar.gz
{t:15100|text} to open a forum thread (will try to add more shortcuts later)
Diffstat (limited to 'src')
-rw-r--r--src/game/GameController.cpp15
-rw-r--r--src/game/SignTool.cpp2
-rw-r--r--src/graphics/Renderer.cpp2
-rw-r--r--src/simulation/Sign.cpp2
4 files changed, 15 insertions, 6 deletions
diff --git a/src/game/GameController.cpp b/src/game/GameController.cpp
index 8ba215e..1fd813c 100644
--- a/src/game/GameController.cpp
+++ b/src/game/GameController.cpp
@@ -536,7 +536,7 @@ bool GameController::MouseUp(int x, int y, unsigned button)
(*iter).pos(signx, signy, signw, signh);
if (x>=signx && x<=signx+signw && y>=signy && y<=signy+signh)
{
- if (sregexp((*iter).text.c_str(), "^{c:[0-9]*|.*}$")==0)
+ if (sregexp((*iter).text.c_str(), "^{[c|t]:[0-9]*|.*}$")==0)
{
const char * signText = (*iter).text.c_str();
char buff[256];
@@ -550,8 +550,17 @@ bool GameController::MouseUp(int x, int y, unsigned button)
buff[sldr-3] = '\0';
int tempSaveID = format::StringToNumber<int>(std::string(buff));
- if(tempSaveID)
- OpenSavePreview(tempSaveID, 0);
+ if (tempSaveID)
+ {
+ if ((*iter).text.c_str()[1] == 'c')
+ OpenSavePreview(tempSaveID, 0);
+ else if ((*iter).text.c_str()[1] == 't')
+ {
+ char url[256];
+ sprintf(url, "http://powdertoy.co.uk/Discussions/Thread/View.html?Thread=%i", tempSaveID);
+ OpenURI(url);
+ }
+ }
break;
}
}
diff --git a/src/game/SignTool.cpp b/src/game/SignTool.cpp
index 4a5fc69..eb1ef57 100644
--- a/src/game/SignTool.cpp
+++ b/src/game/SignTool.cpp
@@ -199,7 +199,7 @@ void SignWindow::DoDraw()
sprintf(buff, "Temp: 0.00"); //...temperature
g->drawtext(x+3, y+3, buff, 255, 255, 255, 255);
}
- else if (sregexp(currentSign.text.c_str(), "^{c:[0-9]*|.*}$")==0)
+ else if (sregexp(currentSign.text.c_str(), "^{[c|t]:[0-9]*|.*}$")==0)
{
int sldr, startm;
memset(buff, 0, sizeof(buff));
diff --git a/src/graphics/Renderer.cpp b/src/graphics/Renderer.cpp
index f20d442..95a44d8 100644
--- a/src/graphics/Renderer.cpp
+++ b/src/graphics/Renderer.cpp
@@ -848,7 +848,7 @@ void Renderer::DrawSigns()
sprintf(buff, "Temp: 0.00"); //...temperature
drawtext(x+3, y+3, buff, 255, 255, 255, 255);
}
- else if (sregexp(signs[i].text.c_str(), "^{c:[0-9]*|.*}$")==0)
+ else if (sregexp(signs[i].text.c_str(), "^{[c|t]:[0-9]*|.*}$")==0)
{
int sldr, startm;
memset(buff, 0, sizeof(buff));
diff --git a/src/simulation/Sign.cpp b/src/simulation/Sign.cpp
index 01d388f..2caf6c3 100644
--- a/src/simulation/Sign.cpp
+++ b/src/simulation/Sign.cpp
@@ -28,7 +28,7 @@ void sign::pos(int & x0, int & y0, int & w, int & h)
{
w = Graphics::textwidth("Temp: 0000.00");
}
- else if (sregexp(text.c_str(), "^{c:[0-9]*|.*}$")==0)
+ else if (sregexp(text.c_str(), "^{[c|t]:[0-9]*|.*}$")==0)
{
int sldr, startm;
char buff[256];