public unsafe void ReadFrom(ref byte *Buffer) { ushort len = *((ushort *)Buffer); Buffer += TypeSizes.SHORT; guilds = new BaseList <GuildEntry>(len); for (ushort i = 0; i < len; i++) { guilds.Add(new GuildEntry(ref Buffer)); } len = *((ushort *)Buffer); Buffer += TypeSizes.SHORT; youDeclaredAllyList = new ObjectIDList <ObjectID>(len); for (ushort i = 0; i < len; i++) { youDeclaredAllyList.Add(new ObjectID(ref Buffer)); } len = *((ushort *)Buffer); Buffer += TypeSizes.SHORT; youDeclaredEnemyList = new ObjectIDList <ObjectID>(len); for (ushort i = 0; i < len; i++) { youDeclaredEnemyList.Add(new ObjectID(ref Buffer)); } len = *((ushort *)Buffer); Buffer += TypeSizes.SHORT; declaredYouAllyList = new ObjectIDList <ObjectID>(len); for (ushort i = 0; i < len; i++) { declaredYouAllyList.Add(new ObjectID(ref Buffer)); } len = *((ushort *)Buffer); Buffer += TypeSizes.SHORT; declaredYouEnemyList = new ObjectIDList <ObjectID>(len); for (ushort i = 0; i < len; i++) { declaredYouEnemyList.Add(new ObjectID(ref Buffer)); } }
public void UpdateFromModel(DiplomacyInfo Model, bool RaiseChangedEvent) { if (RaiseChangedEvent) { // update states first to look them up in guilds YouDeclaredAllyList.Clear(); foreach (ObjectID obj in Model.YouDeclaredAllyList) { YouDeclaredAllyList.Add(obj); } YouDeclaredEnemyList.Clear(); foreach (ObjectID obj in Model.YouDeclaredEnemyList) { YouDeclaredEnemyList.Add(obj); } DeclaredYouAllyList.Clear(); foreach (ObjectID obj in Model.DeclaredYouAllyList) { DeclaredYouAllyList.Add(obj); } DeclaredYouEnemyList.Clear(); foreach (ObjectID obj in Model.DeclaredYouEnemyList) { DeclaredYouEnemyList.Add(obj); } // then guilds Guilds.Clear(); foreach (GuildEntry obj in Model.Guilds) { Guilds.Add(obj); } } else { // update states first to look them up in guilds youDeclaredAllyList.Clear(); foreach (ObjectID obj in Model.YouDeclaredAllyList) { youDeclaredAllyList.Add(obj); } youDeclaredEnemyList.Clear(); foreach (ObjectID obj in Model.YouDeclaredEnemyList) { youDeclaredEnemyList.Add(obj); } declaredYouAllyList.Clear(); foreach (ObjectID obj in Model.DeclaredYouAllyList) { declaredYouAllyList.Add(obj); } declaredYouEnemyList.Clear(); foreach (ObjectID obj in Model.DeclaredYouEnemyList) { declaredYouEnemyList.Add(obj); } // then guilds guilds.Clear(); foreach (GuildEntry obj in Model.Guilds) { guilds.Add(obj); } } }
public int ReadFrom(byte[] Buffer, int StartIndex = 0) { int cursor = StartIndex; ushort len = BitConverter.ToUInt16(Buffer, cursor); // GuildsLEN (2 bytes) cursor += TypeSizes.SHORT; guilds = new BaseList <GuildEntry>(len); for (ushort i = 0; i < len; i++) { GuildEntry obj = new GuildEntry(Buffer, cursor); // GuildEntry (n bytes) guilds.Add(obj); cursor += obj.ByteLength; } len = BitConverter.ToUInt16(Buffer, cursor); // YouDeclAllyLEN (2 bytes) cursor += TypeSizes.SHORT; youDeclaredAllyList = new ObjectIDList <ObjectID>(len); for (ushort i = 0; i < len; i++) { ObjectID obj = new ObjectID(Buffer, cursor); // ObjectID (4/8 bytes) youDeclaredAllyList.Add(obj); cursor += obj.ByteLength; } len = BitConverter.ToUInt16(Buffer, cursor); // YouDeclEnemyLEN (2 bytes) cursor += TypeSizes.SHORT; youDeclaredEnemyList = new ObjectIDList <ObjectID>(len); for (ushort i = 0; i < len; i++) { ObjectID obj = new ObjectID(Buffer, cursor); // ObjectID (4/8 bytes) youDeclaredEnemyList.Add(obj); cursor += obj.ByteLength; } len = BitConverter.ToUInt16(Buffer, cursor); // DeclYouAllyLEN (2 bytes) cursor += TypeSizes.SHORT; declaredYouAllyList = new ObjectIDList <ObjectID>(len); for (ushort i = 0; i < len; i++) { ObjectID obj = new ObjectID(Buffer, cursor); // ObjectID (4/8 bytes) declaredYouAllyList.Add(obj); cursor += obj.ByteLength; } len = BitConverter.ToUInt16(Buffer, cursor); // DeclYouEnemyLEN (2 bytes) cursor += TypeSizes.SHORT; declaredYouEnemyList = new ObjectIDList <ObjectID>(len); for (ushort i = 0; i < len; i++) { ObjectID obj = new ObjectID(Buffer, cursor); // ObjectID (4/8 bytes) declaredYouEnemyList.Add(obj); cursor += obj.ByteLength; } return(ByteLength); }