bool cCraftingRecipes::ParseItem(const AString & a_String, cItem & a_Item) { // The caller provides error logging AStringVector Split = StringSplit(a_String, "^"); if (Split.empty()) { return false; } if (!StringToItem(Split[0], a_Item)) { return false; } if (Split.size() > 1) { AString Damage = TrimString(Split[1]); if (!StringToInteger<short>(Damage.c_str(), a_Item.m_ItemDamage)) { // Parsing the number failed return false; } } // Success return true; }
bool cFurnaceRecipe::ParseItem(const AString & a_String, cItem & a_Item) { AString ItemString = a_String; const AStringVector & SplitAmount = StringSplit(ItemString, ","); ItemString = SplitAmount[0]; const AStringVector & SplitMeta = StringSplit(ItemString, ":"); ItemString = SplitMeta[0]; if (!StringToItem(ItemString, a_Item)) { return false; } if (SplitAmount.size() > 1) { if (!StringToInteger<char>(SplitAmount[1].c_str(), a_Item.m_ItemCount)) { return false; } } if (SplitMeta.size() > 1) { if (!StringToInteger<short>(SplitMeta[1].c_str(), a_Item.m_ItemDamage)) { return false; } } return true; }
cItem GetIniItemSet(cIniFile & a_IniFile, const char * a_Section, const char * a_Key, const char * a_Default) { AString ItemStr = a_IniFile.GetValueSet(a_Section, a_Key, a_Default); cItem res; if (!StringToItem(ItemStr, res)) { res.Empty(); } return res; }
bool cBrewingRecipes::ParseItem(const AString & a_String, cItem & a_Item) { return StringToItem(a_String, a_Item); }