From b2957dc1c9b2f025727a57063f2e252647918fc2 Mon Sep 17 00:00:00 2001 From: jacob1 Date: Thu, 29 Aug 2013 23:37:57 -0400 Subject: ability to use Celcius and Farenheit in console diff --git a/src/cat/TPTScriptInterface.cpp b/src/cat/TPTScriptInterface.cpp index 21e93ab..e821559 100644 --- a/src/cat/TPTScriptInterface.cpp +++ b/src/cat/TPTScriptInterface.cpp @@ -255,16 +255,29 @@ AnyType TPTScriptInterface::tptS_set(std::deque * words) //Selector int newValue; if(value.GetType() == TypeNumber) + { newValue = ((NumberType)value).Value(); + } else if(value.GetType() == TypeString) { - newValue = GetParticleType(((StringType)value).Value()); - if (newValue < 0 || newValue >= PT_NUM) + if (property.Value() == "temp") { - // TODO: add element CAKE to invalidate this - if (!strcasecmp(((StringType)value).Value().c_str(),"cake")) - throw GeneralException("Cake is a lie, not an element"); - throw GeneralException("Invalid element"); + std::string newString = ((StringType)value).Value(); + if (newString.at(newString.length()-1) == 'C') + newValue = atoi(newString.substr(0, newString.length()-1).c_str())+273; + else if (newString.at(newString.length()-1) == 'F') + newValue = (int)((atoi(newString.substr(0, newString.length()-1).c_str())-32.0f)*5/9+273.15f); + } + else + { + newValue = GetParticleType(((StringType)value).Value()); + if (newValue < 0 || newValue >= PT_NUM) + { + // TODO: add element CAKE to invalidate this + if (!strcasecmp(((StringType)value).Value().c_str(),"cake")) + throw GeneralException("Cake is a lie, not an element"); + throw GeneralException("Invalid element"); + } } } else -- cgit v0.9.2-21-gd62e