summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/raylib.h1
-rw-r--r--src/rtext.c22
2 files changed, 23 insertions, 0 deletions
diff --git a/src/raylib.h b/src/raylib.h
index fd870c18..d5eafe7f 100644
--- a/src/raylib.h
+++ b/src/raylib.h
@@ -1481,6 +1481,7 @@ RLAPI const char *TextToUpper(const char *text); // Get upp
RLAPI const char *TextToLower(const char *text); // Get lower case version of provided string
RLAPI const char *TextToPascal(const char *text); // Get Pascal case notation version of provided string
RLAPI int TextToInteger(const char *text); // Get integer value from text (negative values not supported)
+RLAPI float TextToFloat(const char *text); // Get float value from text (negative values not supported)
//------------------------------------------------------------------------------------
// Basic 3d Shapes Drawing Functions (Module: models)
diff --git a/src/rtext.c b/src/rtext.c
index 1ab45277..a919fa4a 100644
--- a/src/rtext.c
+++ b/src/rtext.c
@@ -1421,6 +1421,28 @@ int TextToInteger(const char *text)
return value*sign;
}
+float TextToFloat(const char *text)
+{
+ float value = 0.0f;
+ float sign = 1.0f;
+
+ if ((text[0] == '+') || (text[0] == '-'))
+ {
+ if (text[0] == '-') sign = -1;
+ text++;
+ }
+ int i = 0;
+ for (; ((text[i] >= '0') && (text[i] <= '9')); ++i) value = value*10.0f + (float)(text[i] - '0');
+ if (text[i++] != '.') return value*sign;
+ float divisor = 10.0f;
+ for (; ((text[i] >= '0') && (text[i] <= '9')); ++i)
+ {
+ value += ((float)(text[i] - '0'))/divisor;
+ divisor = divisor*10.0f;
+ }
+ return value;
+}
+
#if defined(SUPPORT_TEXT_MANIPULATION)
// Copy one string to another, returns bytes copied
int TextCopy(char *dst, const char *src)