Replace most T.Parse with T.TryParse for all user input.

This commit is contained in:
hondacrx
2017-11-05 15:21:29 -05:00
parent 8c863de8a6
commit 8ed446ae7a
40 changed files with 477 additions and 527 deletions
+9 -6
View File
@@ -422,7 +422,10 @@ namespace Game.Entities
var tokens = new StringArray(fields.Read<string>(6), ' ');
if (tokens.Length == ItemConst.MaxProtoSpells)
for (byte i = 0; i < ItemConst.MaxProtoSpells; ++i)
SetSpellCharges(i, int.Parse(tokens[i]));
{
if (int.TryParse(tokens[i], out int value))
SetSpellCharges(i, value);
}
SetUInt32Value(ItemFields.Flags, itemFlags);
@@ -477,8 +480,8 @@ namespace Game.Entities
var bonusListIDs = new StringArray(fields.Read<string>(20), ' ');
for (var i = 0; i < bonusListIDs.Length; ++i)
{
uint bonusListID = uint.Parse(tokens[i]);
AddBonuses(bonusListID);
if (uint.TryParse(tokens[i], out uint bonusListID))
AddBonuses(bonusListID);
}
SetModifier(ItemModifier.TransmogAppearanceAllSpecs, fields.Read<uint>(21));
@@ -503,8 +506,7 @@ namespace Game.Entities
uint b = 0;
foreach (string token in gemBonusListIDs)
{
uint bonusListID = uint.Parse(token);
if (bonusListID != 0)
if (uint.TryParse(token, out uint bonusListID) && bonusListID != 0)
gemData[i].BonusListIDs[b++] = (ushort)bonusListID;
}
@@ -1904,7 +1906,8 @@ namespace Game.Entities
StringArray bonusLists = new StringArray(item_result.Read<string>(12), ' ');
foreach (string line in bonusLists)
{
loot_item.BonusListIDs.Add(uint.Parse(line));
if (uint.TryParse(line, out uint id))
loot_item.BonusListIDs.Add(id);
}
// Copy the extra loot conditions from the item in the loot template
+5 -2
View File
@@ -1054,8 +1054,11 @@ namespace Game.Entities
for (var index = 0; index < count; ++index)
{
UpdateData[(int)startOffset + index] = uint.Parse(lines[index]);
_changesMask.Set((int)(startOffset + index), true);
if (uint.TryParse(lines[index], out uint value))
{
UpdateData[(int)startOffset + index] = value;
_changesMask.Set((int)(startOffset + index), true);
}
}
}
+8 -3
View File
@@ -284,8 +284,10 @@ namespace Game.Entities
var GUIDlist = new StringArray(strGUID, ' ');
List<ObjectGuid> looters = new List<ObjectGuid>();
for (var i = 0; i < GUIDlist.Length; ++i)
looters.Add(ObjectGuid.Create(HighGuid.Item, ulong.Parse(GUIDlist[i])));
{
if (ulong.TryParse(GUIDlist[i], out ulong guid))
looters.Add(ObjectGuid.Create(HighGuid.Item, guid));
}
if (looters.Count > 1 && item.GetTemplate().GetMaxStackSize() == 1 && item.IsSoulBound())
{
@@ -1083,7 +1085,10 @@ namespace Game.Entities
List<uint> bonusListIDs = new List<uint>();
var bonusListIdTokens = new StringArray(result.Read<string>(11), ' ');
for (var i = 0; i < bonusListIdTokens.Length; ++i)
bonusListIDs.Add(uint.Parse(bonusListIdTokens[i]));
{
if (uint.TryParse(bonusListIdTokens[i], out uint id))
bonusListIDs.Add(id);
}
if (itemId == 0)
{
+5 -4
View File
@@ -109,7 +109,8 @@ namespace Game.Entities
for (var i = 0; index < PlayerConst.TaxiMaskSize && i != split.Length; ++i, ++index)
{
// load and set bits only for existing taxi nodes
m_taximask[index] = (byte)(CliDB.TaxiNodesMask[index] & uint.Parse(split[i]));
if (uint.TryParse(split[i], out uint id))
m_taximask[index] = (byte)(CliDB.TaxiNodesMask[index] & id);
}
}
@@ -127,12 +128,12 @@ namespace Game.Entities
var stringArray = new StringArray(values, ' ');
if (stringArray.Length > 0)
m_flightMasterFactionId = uint.Parse(stringArray[0]);
uint.TryParse(stringArray[0], out m_flightMasterFactionId);
for (var i = 1; i < stringArray.Length; ++i)
{
uint node = uint.Parse(stringArray[i]);
AddTaxiDestination(node);
if (uint.TryParse(stringArray[i], out uint node))
AddTaxiDestination(node);
}
if (m_TaxiDestinations.Empty())
+1 -1
View File
@@ -252,7 +252,7 @@ namespace Game.Entities
for (byte i = 0; i < tokens.Length && index < SharedConst.ActionBarIndexEnd; ++i, ++index)
{
ActiveStates type = tokens[i++].ToEnum<ActiveStates>();
uint action = uint.Parse(tokens[i]);
uint.TryParse(tokens[i], out uint action);
PetActionBar[index].SetActionAndType(action, type);