Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
0
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;
}
Ejemplo n.º 3
0
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;
}
Ejemplo n.º 4
0
bool cBrewingRecipes::ParseItem(const AString & a_String, cItem & a_Item)
{
	return StringToItem(a_String, a_Item);
}