-
Notifications
You must be signed in to change notification settings - Fork 1
/
PlayerParser.cs
120 lines (109 loc) · 3.27 KB
/
PlayerParser.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
using System;
using System.Collections.Generic;
using System.Text;
namespace NFL2K5Tool
{
/// <summary>
/// Base class for some useful things.
/// </summary>
public class PlayerParser
{
private string mKey;
private string[] mKeyParts;
/// <summary>
///
/// </summary>
/// <param name="key"></param>
public PlayerParser(string key)
{
mKey = key.Replace("#", "").Replace("Key=","");
mKeyParts = mKey.Split(new char[] { ',' });
}
/// <summary>
/// just a reminder of how to parse player parts.
/// </summary>
public static List<string> GetPlayerParts(string playerLine)
{
return InputParser.ParsePlayerLine(playerLine);
}
/// <summary>
/// Get the player's value of 'attribute'
/// </summary>
public string Get(List<string> playerParts, string attribute)
{
string retVal = "";
int index = -1;
for (int i = 0; i < mKeyParts.Length; i++)
{
if (mKeyParts[i].Equals(attribute, StringComparison.InvariantCultureIgnoreCase))
{
index = i;
break;
}
}
if (index > -1)
{
retVal = playerParts[index];
}
return retVal;
}
/// <summary>
/// Sets an attribute of the player's parts
/// </summary>
/// <returns>true if set successfully</returns>
protected bool Set(List<string> playerParts, string attribute, string value)
{
bool retVal = false;
int index = -1;
for (int i = 0; i < mKeyParts.Length; i++)
{
if (mKeyParts[i].Equals(attribute, StringComparison.InvariantCultureIgnoreCase))
{
index = i;
break;
}
}
if (index > -1)
{
playerParts[index] = value;
retVal = true;
}
return retVal;
}
/// <summary>
/// returns The player in string form
/// </summary>
public string StringifyPlayerParts(List<string> playerParts)
{
StringBuilder builder = new StringBuilder(300);
foreach (string attr in playerParts)
{
if (attr.Length > 0)
{
if (attr.IndexOf(',') > -1 && attr[0] != '"')
{
builder.Append("\"");
builder.Append(attr);
builder.Append("\"");
}
else
builder.Append(attr);
builder.Append(",");
}
}
return builder.ToString();
}
private List<string> mWarnings = new List<string>();
protected void AddWarning(string w)
{
mWarnings.Add(w);
}
/// <summary>
/// Returns the player validation warnings
/// </summary>
public List<string> GetWarnings()
{
return mWarnings;
}
}
}