summaryrefslogtreecommitdiffstats
path: root/src/FurnaceRecipe.h
diff options
context:
space:
mode:
authorTiger Wang <ziwei.tiger@hotmail.co.uk>2014-06-21 21:33:23 +0200
committerTiger Wang <ziwei.tiger@hotmail.co.uk>2014-06-21 21:33:23 +0200
commita908f39dde1dc8866bda1a85b8443ae4cdaaa2b4 (patch)
treebf6a1761dacc8b60d18091db279ab20c31796da6 /src/FurnaceRecipe.h
parentMerge pull request #1096 from mc-server/redstonerefactor (diff)
downloadcuberite-a908f39dde1dc8866bda1a85b8443ae4cdaaa2b4.tar
cuberite-a908f39dde1dc8866bda1a85b8443ae4cdaaa2b4.tar.gz
cuberite-a908f39dde1dc8866bda1a85b8443ae4cdaaa2b4.tar.bz2
cuberite-a908f39dde1dc8866bda1a85b8443ae4cdaaa2b4.tar.lz
cuberite-a908f39dde1dc8866bda1a85b8443ae4cdaaa2b4.tar.xz
cuberite-a908f39dde1dc8866bda1a85b8443ae4cdaaa2b4.tar.zst
cuberite-a908f39dde1dc8866bda1a85b8443ae4cdaaa2b4.zip
Diffstat (limited to 'src/FurnaceRecipe.h')
-rw-r--r--src/FurnaceRecipe.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/FurnaceRecipe.h b/src/FurnaceRecipe.h
index 2f91e9bcb..e0222f2fb 100644
--- a/src/FurnaceRecipe.h
+++ b/src/FurnaceRecipe.h
@@ -41,6 +41,28 @@ public:
private:
void ClearRecipes(void);
+ /** PrintFs the line, position, and error into an error string */
+ inline static void SetParseError(AString & a_ErrorString, unsigned int a_Line, size_t a_Position, const AString & a_CharactersMissing);
+
+ /** Reads a number from a string given, starting at a given position and ending at a delimiter given
+ Updates beginning position to the delimiter found + 1, and updates the value to the one read
+ If it encounters a substring that is not fully numeric, it will call SetParseError() and return false; the caller should abort processing
+ Otherwise, the function will return true
+ */
+ static bool ReadMandatoryNumber(AString::size_type & a_Begin, const AString & a_Delimiter, const AString & a_Text, AString & a_ErrorString, unsigned int a_Line, int & a_Value, bool a_IsLastValue = false);
+
+ /** Reads two numbers from a string given, starting at a given position and ending at the first delimiter given, then again (with an updated position) until the second delimiter given
+ Updates beginning position to the second delimiter found + 1, and updates the values to the ones read
+ If it encounters a substring that is not fully numeric whilst reading the second value, it will call SetParseError() and return false; the caller should abort processing
+ If this happens whilst reading the first value, it will call ReadMandatoryNumber() with the appropriate position, as this may legitimately occur with the optional value and AString::find_first_of finding the incorrect delimiter. It will return the result of ReadMandatoryNumber()
+ True will be returned definitively for an optional value that is valid
+ */
+ static bool ReadOptionalNumbers(AString::size_type & a_Begin, const AString & a_DelimiterOne, const AString & a_DelimiterTwo, const AString & a_Text, AString & a_ErrorString, unsigned int a_Line, int & a_ValueOne, int & a_ValueTwo, bool a_IsLastValue = false);
+
+ /** Uses std::all_of to determine if a string contains only digits */
+ inline static bool DoesStringContainOnlyNumbers(const AString & a_String);
+
+
struct sFurnaceRecipeState;
sFurnaceRecipeState * m_pState;
};