Skip to content

Commit e76db08

Browse files
committed
Implemented eyes and hair, started on race, but it got complex
1 parent 3e6c840 commit e76db08

55 files changed

Lines changed: 1553 additions & 900 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

ESPSharp.sln

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,4 @@ Global
2525
GlobalSection(SolutionProperties) = preSolution
2626
HideSolutionNode = FALSE
2727
EndGlobalSection
28-
GlobalSection(Performance) = preSolution
29-
HasPerformanceSessions = true
30-
EndGlobalSection
3128
EndGlobal

ESPSharp/DataTypes/AlternateTexture.cs

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,31 @@
33
using System.Linq;
44
using System.Text;
55
using System.Threading.Tasks;
6+
using ESPSharp.Interfaces;
7+
using System.Xml.Linq;
68

79
namespace ESPSharp
810
{
9-
public struct AlternateTexture
11+
public struct AlternateTexture : IESPToXML
1012
{
1113
public string Name;
1214
public FormID TextureSet;
1315
public int Index;
16+
17+
public void WriteXML(XElement ele)
18+
{
19+
ele.Add(
20+
new XElement("Name", Name),
21+
new XElement("TextureSet", TextureSet),
22+
new XElement("Index", Index)
23+
);
24+
}
25+
26+
public void ReadXML(XElement ele)
27+
{
28+
Name = ele.Element("Name").Value;
29+
TextureSet.ReadXML(ele.Element("TextureSet"));
30+
Index = ele.Element("Index").ToInt32();
31+
}
1432
}
1533
}

ESPSharp/DataTypes/FormID.cs

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,12 @@
33
using System.Linq;
44
using System.Text;
55
using System.Threading.Tasks;
6+
using ESPSharp.Interfaces;
7+
using System.Xml.Linq;
68

79
namespace ESPSharp
810
{
9-
public struct FormID
11+
public struct FormID : IESPToXML
1012
{
1113
uint rawVal;
1214

@@ -15,12 +17,12 @@ public FormID(uint inID)
1517
rawVal = inID;
1618
}
1719

18-
public static implicit operator FormID(uint val)
20+
public static explicit operator FormID(uint val)
1921
{
2022
return new FormID(val);
2123
}
2224

23-
public static implicit operator uint(FormID val)
25+
public static explicit operator uint(FormID val)
2426
{
2527
return val.rawVal;
2628
}
@@ -29,5 +31,15 @@ public override string ToString()
2931
{
3032
return rawVal.ToString("X8");
3133
}
34+
35+
public void WriteXML(XElement ele)
36+
{
37+
ele.Value = ToString();
38+
}
39+
40+
public void ReadXML(XElement ele)
41+
{
42+
rawVal = uint.Parse(ele.Value, System.Globalization.NumberStyles.HexNumber);
43+
}
3244
}
3345
}

ESPSharp/ESPReader.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,5 +52,21 @@ public T ReadEnum<T>()
5252
throw new NotImplementedException(enumType + " is not yet implemented.");
5353
}
5454
}
55+
56+
public FormID ReadFormID()
57+
{
58+
return (FormID)ReadUInt32();
59+
}
60+
61+
public AlternateTexture ReadAlternateTexture()
62+
{
63+
AlternateTexture outTex;
64+
int size = ReadInt32();
65+
outTex.Name = new String(ReadChars(size));
66+
outTex.TextureSet = ReadFormID();
67+
outTex.Index = ReadInt32();
68+
69+
return outTex;
70+
}
5571
}
5672
}

ESPSharp/ESPSharp.csproj

Lines changed: 110 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,22 @@
4242
<Reference Include="System.Xml" />
4343
</ItemGroup>
4444
<ItemGroup>
45-
<Compile Include="Enums\Flags\ActorValues.cs" />
45+
<Compile Include="DataTypes\AlternateTexture.cs" />
46+
<Compile Include="DataTypes\FormID.cs" />
47+
<Compile Include="Enums\ActorValues.cs" />
48+
<Compile Include="Enums\DataSource.cs" />
4649
<Compile Include="Enums\Flags\ClassDataFlag.cs" />
50+
<Compile Include="Enums\Flags\EyesFlags.cs" />
51+
<Compile Include="Enums\Flags\FaceGenModelFlags.cs" />
52+
<Compile Include="Enums\Flags\FactionFlags1.cs" />
53+
<Compile Include="Enums\Flags\FactionFlags2.cs" />
54+
<Compile Include="Enums\Flags\HairFlags.cs" />
55+
<Compile Include="Enums\Flags\HeadPartFlags.cs" />
4756
<Compile Include="Enums\Flags\ServicesFlag.cs" />
4857
<Compile Include="Enums\Flags\TXSTFlags.cs" />
4958
<Compile Include="Enums\GameSettingType.cs" />
5059
<Compile Include="Enums\GlobalVarType.cs" />
60+
<Compile Include="Enums\RelationshipCombatReaction.cs" />
5161
<Compile Include="Enums\Skills.cs" />
5262
<Compile Include="ESPReader.cs" />
5363
<Compile Include="ESPWriter.cs" />
@@ -63,9 +73,9 @@
6373
<Compile Include="Groups\InteriorCellBlock.cs" />
6474
<Compile Include="Groups\InteriorCellSubBlock.cs" />
6575
<Compile Include="Enums\Flags\RecordFlag.cs" />
66-
<Compile Include="FormID.cs" />
6776
<Compile Include="Group.cs" />
6877
<Compile Include="Interfaces\IEditorID.cs" />
78+
<Compile Include="Interfaces\IESPToXML.cs" />
6979
<Compile Include="Interfaces\IReferenceContainer.cs" />
7080
<Compile Include="ISubgroup.cs" />
7181
<Compile Include="Properties\AssemblyInfo.cs" />
@@ -79,6 +89,16 @@
7989
<DesignTime>True</DesignTime>
8090
<DependentUpon>Class.tt</DependentUpon>
8191
</Compile>
92+
<Compile Include="Records\GeneratedCode\Eyes.cs">
93+
<AutoGen>True</AutoGen>
94+
<DesignTime>True</DesignTime>
95+
<DependentUpon>Eyes.tt</DependentUpon>
96+
</Compile>
97+
<Compile Include="Records\GeneratedCode\Faction.cs">
98+
<AutoGen>True</AutoGen>
99+
<DesignTime>True</DesignTime>
100+
<DependentUpon>Faction.tt</DependentUpon>
101+
</Compile>
82102
<Compile Include="Records\GeneratedCode\GameSetting.cs">
83103
<AutoGen>True</AutoGen>
84104
<DesignTime>True</DesignTime>
@@ -89,11 +109,26 @@
89109
<DesignTime>True</DesignTime>
90110
<DependentUpon>GlobalVariable.tt</DependentUpon>
91111
</Compile>
112+
<Compile Include="Records\GeneratedCode\Hair.cs">
113+
<AutoGen>True</AutoGen>
114+
<DesignTime>True</DesignTime>
115+
<DependentUpon>Hair.tt</DependentUpon>
116+
</Compile>
117+
<Compile Include="Records\GeneratedCode\HeadPart.cs">
118+
<AutoGen>True</AutoGen>
119+
<DesignTime>True</DesignTime>
120+
<DependentUpon>HeadPart.tt</DependentUpon>
121+
</Compile>
92122
<Compile Include="Records\GeneratedCode\MenuIcon.cs">
93123
<AutoGen>True</AutoGen>
94124
<DesignTime>True</DesignTime>
95125
<DependentUpon>MenuIcon.tt</DependentUpon>
96126
</Compile>
127+
<Compile Include="Records\GeneratedCode\Race.cs">
128+
<AutoGen>True</AutoGen>
129+
<DesignTime>True</DesignTime>
130+
<DependentUpon>Race.tt</DependentUpon>
131+
</Compile>
97132
<Compile Include="Records\GenericRecord.cs" />
98133
<Compile Include="Records\GeneratedCode\Header.cs">
99134
<AutoGen>True</AutoGen>
@@ -107,23 +142,49 @@
107142
</Compile>
108143
<Compile Include="Subrecord.cs" />
109144
<Compile Include="SubrecordCollection.cs" />
145+
<Compile Include="SubrecordCollections\GeneratedCode\FactionRank.cs">
146+
<AutoGen>True</AutoGen>
147+
<DesignTime>True</DesignTime>
148+
<DependentUpon>FactionRank.tt</DependentUpon>
149+
</Compile>
150+
<Compile Include="SubrecordCollections\GeneratedCode\HeadData.cs">
151+
<AutoGen>True</AutoGen>
152+
<DesignTime>True</DesignTime>
153+
<DependentUpon>HeadData.tt</DependentUpon>
154+
</Compile>
110155
<Compile Include="SubrecordCollections\GeneratedCode\MasterFileData.cs">
111156
<AutoGen>True</AutoGen>
112157
<DesignTime>True</DesignTime>
113158
<DependentUpon>MasterFileData.tt</DependentUpon>
114159
</Compile>
115-
<Compile Include="Subrecords\Attributes.cs">
160+
<Compile Include="SubrecordCollections\GeneratedCode\Model.cs">
161+
<AutoGen>True</AutoGen>
162+
<DesignTime>True</DesignTime>
163+
<DependentUpon>Model.tt</DependentUpon>
164+
</Compile>
165+
<Compile Include="Subrecords\DecalData.cs" />
166+
<Compile Include="Subrecords\FormArray.cs" />
167+
<Compile Include="Subrecords\AlternateTextures.cs" />
168+
<Compile Include="Subrecords\GeneratedCode\Attributes.cs">
116169
<AutoGen>True</AutoGen>
117170
<DesignTime>True</DesignTime>
118171
<DependentUpon>Attributes.tt</DependentUpon>
119172
</Compile>
120-
<Compile Include="Subrecords\ClassData.cs">
173+
<Compile Include="Subrecords\GeneratedCode\ClassData.cs">
121174
<AutoGen>True</AutoGen>
122175
<DesignTime>True</DesignTime>
123176
<DependentUpon>ClassData.tt</DependentUpon>
124177
</Compile>
125-
<Compile Include="Subrecords\DecalData.cs" />
126-
<Compile Include="Subrecords\FormArray.cs" />
178+
<Compile Include="Subrecords\GeneratedCode\FactionData.cs">
179+
<AutoGen>True</AutoGen>
180+
<DesignTime>True</DesignTime>
181+
<DependentUpon>FactionData.tt</DependentUpon>
182+
</Compile>
183+
<Compile Include="Subrecords\GeneratedCode\Relationship.cs">
184+
<AutoGen>True</AutoGen>
185+
<DesignTime>True</DesignTime>
186+
<DependentUpon>Relationship.tt</DependentUpon>
187+
</Compile>
127188
<Compile Include="Subrecords\ObjectBounds.cs" />
128189
<Compile Include="Subrecords\PluginHeader.cs" />
129190
<Compile Include="Subrecords\SimpleSubrecord.cs" />
@@ -137,6 +198,14 @@
137198
<Generator>TextTemplatingFileGenerator</Generator>
138199
<LastGenOutput>Class.cs</LastGenOutput>
139200
</None>
201+
<None Include="Records\GeneratedCode\Eyes.tt">
202+
<Generator>TextTemplatingFileGenerator</Generator>
203+
<LastGenOutput>Eyes.cs</LastGenOutput>
204+
</None>
205+
<None Include="Records\GeneratedCode\Faction.tt">
206+
<Generator>TextTemplatingFileGenerator</Generator>
207+
<LastGenOutput>Faction.cs</LastGenOutput>
208+
</None>
140209
<None Include="Records\GeneratedCode\GameSetting.tt">
141210
<Generator>TextTemplatingFileGenerator</Generator>
142211
<LastGenOutput>GameSetting.cs</LastGenOutput>
@@ -145,33 +214,65 @@
145214
<Generator>TextTemplatingFileGenerator</Generator>
146215
<LastGenOutput>GlobalVariable.cs</LastGenOutput>
147216
</None>
217+
<None Include="Records\GeneratedCode\Hair.tt">
218+
<Generator>TextTemplatingFileGenerator</Generator>
219+
<LastGenOutput>Hair.cs</LastGenOutput>
220+
</None>
148221
<None Include="Records\GeneratedCode\Header.tt">
149222
<Generator>TextTemplatingFileGenerator</Generator>
150223
<LastGenOutput>Header.cs</LastGenOutput>
151224
</None>
225+
<None Include="Records\GeneratedCode\HeadPart.tt">
226+
<Generator>TextTemplatingFileGenerator</Generator>
227+
<LastGenOutput>HeadPart.cs</LastGenOutput>
228+
</None>
152229
<None Include="Records\GeneratedCode\MenuIcon.tt">
153230
<Generator>TextTemplatingFileGenerator</Generator>
154231
<LastGenOutput>MenuIcon.cs</LastGenOutput>
155232
</None>
233+
<None Include="Records\GeneratedCode\Race.tt">
234+
<Generator>TextTemplatingFileGenerator</Generator>
235+
<LastGenOutput>Race.cs</LastGenOutput>
236+
</None>
156237
<None Include="Records\GeneratedCode\RecordTemplate.t4" />
157238
<None Include="Records\GeneratedCode\TextureSet.tt">
158239
<Generator>TextTemplatingFileGenerator</Generator>
159240
<LastGenOutput>TextureSet.cs</LastGenOutput>
160241
</None>
242+
<None Include="SubrecordCollections\GeneratedCode\FactionRank.tt">
243+
<Generator>TextTemplatingFileGenerator</Generator>
244+
<LastGenOutput>FactionRank.cs</LastGenOutput>
245+
</None>
246+
<None Include="SubrecordCollections\GeneratedCode\HeadData.tt">
247+
<Generator>TextTemplatingFileGenerator</Generator>
248+
<LastGenOutput>HeadData.cs</LastGenOutput>
249+
</None>
161250
<None Include="SubrecordCollections\GeneratedCode\MasterFileData.tt">
162251
<Generator>TextTemplatingFileGenerator</Generator>
163252
<LastGenOutput>MasterFileData.cs</LastGenOutput>
164253
</None>
254+
<None Include="SubrecordCollections\GeneratedCode\Model.tt">
255+
<Generator>TextTemplatingFileGenerator</Generator>
256+
<LastGenOutput>Model.cs</LastGenOutput>
257+
</None>
165258
<None Include="SubrecordCollections\GeneratedCode\SubrecordCollectionTemplate.t4" />
166-
<None Include="Subrecords\Attributes.tt">
259+
<None Include="Subrecords\GeneratedCode\Attributes.tt">
167260
<Generator>TextTemplatingFileGenerator</Generator>
168261
<LastGenOutput>Attributes.cs</LastGenOutput>
169262
</None>
170-
<None Include="Subrecords\ClassData.tt">
263+
<None Include="Subrecords\GeneratedCode\ClassData.tt">
171264
<Generator>TextTemplatingFileGenerator</Generator>
172265
<LastGenOutput>ClassData.cs</LastGenOutput>
173266
</None>
174-
<None Include="Subrecords\SubrecordTemplate.t4" />
267+
<None Include="Subrecords\GeneratedCode\FactionData.tt">
268+
<Generator>TextTemplatingFileGenerator</Generator>
269+
<LastGenOutput>FactionData.cs</LastGenOutput>
270+
</None>
271+
<None Include="Subrecords\GeneratedCode\Relationship.tt">
272+
<Generator>TextTemplatingFileGenerator</Generator>
273+
<LastGenOutput>Relationship.cs</LastGenOutput>
274+
</None>
275+
<None Include="Subrecords\GeneratedCode\SubrecordTemplate.t4" />
175276
</ItemGroup>
176277
<ItemGroup>
177278
<Service Include="{508349B6-6B84-4DF5-91F0-309BEEBAD82D}" />

ESPSharp/ESPWriter.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,18 @@ public void WriteTag(string Tag)
1616
{
1717
Write(Utility.DesanitizeTag(Tag).ToCharArray());
1818
}
19+
20+
public void Write(FormID id)
21+
{
22+
base.Write((uint)id);
23+
}
24+
25+
public void Write(AlternateTexture tex)
26+
{
27+
Write((uint)tex.Name.Length);
28+
Write(tex.Name.ToCharArray());
29+
Write(tex.TextureSet);
30+
Write(tex.Index);
31+
}
1932
}
2033
}

0 commit comments

Comments
 (0)