1414
1515namespace ESPSharp . DataTypes
1616{
17- public partial class AlternateTexture : IESPSerializable , ICloneable < AlternateTexture > , IComparable < AlternateTexture > , IEquatable < AlternateTexture > , IReferenceContainer
17+ public partial class AlternateTexture : IESPSerializable , ICloneable , IComparable < AlternateTexture > , IEquatable < AlternateTexture >
1818 {
1919 public String Name { get ; set ; }
2020 public FormID TextureSet { get ; set ; }
@@ -36,16 +36,20 @@ public AlternateTexture(String Name, FormID TextureSet, Int32 Index)
3636
3737 public AlternateTexture ( AlternateTexture copyObject )
3838 {
39- Name = ( String ) copyObject . Name . Clone ( ) ;
40- TextureSet = copyObject . TextureSet . Clone ( ) ;
39+ if ( copyObject . Name != null )
40+ Name = ( String ) copyObject . Name . Clone ( ) ;
41+ if ( copyObject . TextureSet != null )
42+ TextureSet = ( FormID ) copyObject . TextureSet . Clone ( ) ;
4143 Index = copyObject . Index ;
4244 }
4345
4446 public void ReadBinary ( ESPReader reader )
4547 {
4648 try
4749 {
48- ReadData ( reader ) ;
50+ ReadNameBinary ( reader ) ;
51+ TextureSet . ReadBinary ( reader ) ;
52+ Index = reader . ReadInt32 ( ) ;
4953 }
5054 catch
5155 {
@@ -55,13 +59,15 @@ public void ReadBinary(ESPReader reader)
5559
5660 public void WriteBinary ( ESPWriter writer )
5761 {
58- WriteData ( writer ) ;
62+ WriteNameBinary ( writer ) ;
63+ TextureSet . WriteBinary ( writer ) ;
64+ writer . Write ( Index ) ;
5965 }
6066
6167 public void WriteXML ( XElement ele , ElderScrollsPlugin master )
6268 {
6369 XElement subEle ;
64-
70+
6571 ele . TryPathTo ( "Name" , true , out subEle ) ;
6672 subEle . Value = Name . ToString ( ) ;
6773
@@ -75,31 +81,25 @@ public void WriteXML(XElement ele, ElderScrollsPlugin master)
7581 public void ReadXML ( XElement ele , ElderScrollsPlugin master )
7682 {
7783 XElement subEle ;
78-
84+
7985 if ( ele . TryPathTo ( "Name" , false , out subEle ) )
80- {
8186 Name = subEle . Value ;
82- }
8387
8488 if ( ele . TryPathTo ( "TextureSet" , false , out subEle ) )
85- {
8689 TextureSet . ReadXML ( subEle , master ) ;
87- }
8890
8991 if ( ele . TryPathTo ( "Index" , false , out subEle ) )
90- {
9192 Index = subEle . ToInt32 ( ) ;
92- }
9393 }
9494
95- public AlternateTexture Clone ( )
95+ public object Clone ( )
9696 {
9797 return new AlternateTexture ( this ) ;
9898 }
9999
100100 public int CompareTo ( AlternateTexture other )
101101 {
102- return Index . CompareTo ( other . Index ) ;
102+ return Index . CompareTo ( other . Index ) ;
103103 }
104104
105105 public static bool operator > ( AlternateTexture objA , AlternateTexture objB )
@@ -124,14 +124,28 @@ public int CompareTo(AlternateTexture other)
124124
125125 public bool Equals ( AlternateTexture other )
126126 {
127- return Name == other . Name &&
127+ if ( System . Object . ReferenceEquals ( this , other ) )
128+ {
129+ return true ;
130+ }
131+
132+ if ( ( ( object ) this == null ) || ( ( object ) other == null ) )
133+ {
134+ return false ;
135+ }
136+
137+ return Name . SequenceEqual ( other . Name ) &&
128138 TextureSet == other . TextureSet &&
129139 Index == other . Index ;
130140 }
131141
132142 public override bool Equals ( object obj )
133143 {
144+ if ( obj == null )
145+ return false ;
146+
134147 AlternateTexture other = obj as AlternateTexture ;
148+
135149 if ( other == null )
136150 return false ;
137151 else
@@ -145,16 +159,36 @@ public override int GetHashCode()
145159
146160 public static bool operator == ( AlternateTexture objA , AlternateTexture objB )
147161 {
162+ if ( System . Object . ReferenceEquals ( objA , objB ) )
163+ {
164+ return true ;
165+ }
166+
167+ if ( ( ( object ) objA == null ) || ( ( object ) objB == null ) )
168+ {
169+ return false ;
170+ }
171+
148172 return objA . Equals ( objB ) ;
149173 }
150174
151175 public static bool operator != ( AlternateTexture objA , AlternateTexture objB )
152176 {
177+ if ( System . Object . ReferenceEquals ( objA , objB ) )
178+ {
179+ return false ;
180+ }
181+
182+ if ( ( ( object ) objA == null ) || ( ( object ) objB == null ) )
183+ {
184+ return true ;
185+ }
186+
153187 return ! objA . Equals ( objB ) ;
154188 }
155189
156- partial void ReadData ( ESPReader reader ) ;
190+ partial void ReadNameBinary ( ESPReader reader ) ;
157191
158- partial void WriteData ( ESPWriter writer ) ;
192+ partial void WriteNameBinary ( ESPWriter writer ) ;
159193 }
160- }
194+ }
0 commit comments