From cebd28148d8e6ea77d180ef1e186df7993d9e413 Mon Sep 17 00:00:00 2001 From: Simon Robertshaw Date: Sat, 19 Oct 2013 17:22:43 +0100 Subject: [PATCH] Minute performance improvement for Sign.getText --- src/simulation/Sign.cpp | 45 ++++++++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 19 deletions(-) diff --git a/src/simulation/Sign.cpp b/src/simulation/Sign.cpp index 57a8a0d24..b6a18cc52 100644 --- a/src/simulation/Sign.cpp +++ b/src/simulation/Sign.cpp @@ -17,30 +17,37 @@ std::string sign::getText(Simulation *sim) char signText[256]; sprintf(signText, "%s", text.substr(0, 255).c_str()); - if (!strcmp(signText,"{p}")) + if(signText[0] && signText[0] == '{') { - float pressure = 0.0f; - if (x>=0 && x=0 && ypv[y/CELL][x/CELL]; - sprintf(buff, "Pressure: %3.2f", pressure); //...pressure - } - else if (!strcmp(signText,"{t}")) - { - if (x>=0 && x=0 && ypmap[y][x]) - sprintf(buff, "Temp: %4.2f", sim->parts[sim->pmap[y][x]>>8].temp-273.15); //...temperature + if (!strcmp(signText,"{p}")) + { + float pressure = 0.0f; + if (x>=0 && x=0 && ypv[y/CELL][x/CELL]; + sprintf(buff, "Pressure: %3.2f", pressure); //...pressure + } + else if (!strcmp(signText,"{t}")) + { + if (x>=0 && x=0 && ypmap[y][x]) + sprintf(buff, "Temp: %4.2f", sim->parts[sim->pmap[y][x]>>8].temp-273.15); //...temperature + else + sprintf(buff, "Temp: 0.00"); //...temperature + } else - sprintf(buff, "Temp: 0.00"); //...temperature + { + int pos=splitsign(signText); + if (pos) + { + strcpy(buff, signText+pos+1); + buff[strlen(signText)-pos-2]=0; + } + else + strcpy(buff, signText); + } } else { - int pos=splitsign(signText); - if (pos) - { - strcpy(buff, signText+pos+1); - buff[strlen(signText)-pos-2]=0; - } - else - strcpy(buff, signText); + strcpy(buff, signText); } return std::string(buff);