static void Main(string[] args) { var dbContext = new Model1(); var shirt1 = new shirt(); shirt1.name = "teal"; var shirt2 = new shirt(); shirt2.name = "salmon"; var outfit1 = new outfit(); outfit1.name = "thursday"; var outfitToShirt1 = new outfit_to_shirt(); outfitToShirt1.shirt = shirt1; outfitToShirt1.outfit = outfit1; var outfitToShirt2 = new outfit_to_shirt(); outfitToShirt2.shirt = shirt2; outfitToShirt2.outfit = outfit1; dbContext.outfit_to_shirt.Add(outfitToShirt1); dbContext.outfit_to_shirt.Add(outfitToShirt2); dbContext.SaveChanges(); var shirt3 = new shirt(); shirt3.name = "orange"; var shirt4 = new shirt(); shirt4.name = "blue"; var outfit2 = new outfit(); outfit2.name = "tuesday"; var outfitToShirt3 = new outfit_to_shirt(); outfitToShirt3.shirt = shirt3; outfitToShirt3.outfit = outfit2; var outfitToShirt4 = new outfit_to_shirt(); outfitToShirt4.shirt = shirt4; outfitToShirt4.outfit = outfit2; dbContext.outfit_to_shirt.Add(outfitToShirt3); dbContext.outfit_to_shirt.Add(outfitToShirt4); dbContext.SaveChanges(); }
public override byte[] ToRaw() { calculatedPointers = new int[6]; MemoryStream outStream = new MemoryStream(); BinaryWriter outWriter = new BinaryWriter(outStream); outWriter.Write((int)(0x0052584E)); outStream.Seek(0x10, SeekOrigin.Begin); outWriter.Write((int)1); outWriter.Write((int)-1); outWriter.Write((int)-1); int[] listLocs = new int[6]; for (int i = 0; i < 6; i++) { listLocs[i] = (int)outStream.Position; for (int j = 0; j < clothes[i].Count; j++) { outfit temp = (outfit)clothes[i][j]; outWriter.Write(temp.Appearance); outWriter.Write((byte)(temp.Category << 4 | temp.Manufacturer)); outWriter.Write(temp.Overlap); outWriter.Write(temp.Restrict); outWriter.Write(temp.Color0); outWriter.Write(temp.Color1); outWriter.Write(temp.Color2); outWriter.Write(temp.Color3); outWriter.Write(temp.Color4); outWriter.Write(temp.Color5); outWriter.Write(temp.Color6); outWriter.Write(temp.Color7); outWriter.Write(temp.Color8); outWriter.Write(temp.Color9); outWriter.Write(temp.OrString); } } int headerLoc = (int)outStream.Position; for (int i = 0; i < 6; i++) { calculatedPointers[i] = (int)outStream.Position; outWriter.Write(listLocs[i]); outWriter.Write((int)0); outWriter.Write((short)0); outWriter.Write((short)clothes[i].Count); } int fileSize = (int)((outStream.Position + 0xF) & 0xFFFFFF0); outStream.Seek(0x4, SeekOrigin.Begin); outWriter.Write(fileSize); outWriter.Write(headerLoc); return(outStream.ToArray()); }
public ItemSuitParamFile(string inFilename, byte[] rawData, byte[] subHeader, int[] ptrs, int baseAddr) { filename = inFilename; header = subHeader; calculatedPointers = ptrs; MemoryStream inputStream = new MemoryStream(rawData); BinaryReader inputReader = new BinaryReader(inputStream); inputStream.Seek(4, SeekOrigin.Begin); int origFilesize = inputReader.ReadInt32(); int headerLoc = inputReader.ReadInt32(); inputStream.Seek(headerLoc, SeekOrigin.Begin); int[] listLocs = new int[6]; int[] listCounts = new int[6]; for (int i = 0; i < 6; i++) { listLocs[i] = inputReader.ReadInt32() - baseAddr; inputReader.ReadInt32(); inputReader.ReadInt16(); listCounts[i] = inputReader.ReadInt16(); } for (int i = 0; i < 6; i++) { clothes[i] = new ArrayList(); if (listCounts[i] > 0) { inputStream.Seek(listLocs[i], SeekOrigin.Begin); for (int j = 0; j < listCounts[i]; j++) { outfit temp = new outfit(); temp.Appearance = inputReader.ReadUInt16(); byte catManu = inputReader.ReadByte(); temp.Category = (byte)(catManu >> 4); temp.Manufacturer = (byte)(catManu & 0xF); temp.Overlap = inputReader.ReadByte(); temp.Restrict = inputReader.ReadByte(); temp.Color0 = inputReader.ReadByte(); temp.Color1 = inputReader.ReadByte(); temp.Color2 = inputReader.ReadByte(); temp.Color3 = inputReader.ReadByte(); temp.Color4 = inputReader.ReadByte(); temp.Color5 = inputReader.ReadByte(); temp.Color6 = inputReader.ReadByte(); temp.Color7 = inputReader.ReadByte(); temp.Color8 = inputReader.ReadByte(); temp.Color9 = inputReader.ReadByte(); temp.OrString = inputReader.ReadByte(); clothes[i].Add(temp); } } } }
public void loadTextFile(Stream inStream) { StreamReader fileReader = new StreamReader(inStream); for (int i = 0; i < 6; i++) { clothes[i] = new ArrayList(); } while (!fileReader.EndOfStream) { string currLine = fileReader.ReadLine(); if (!currLine.StartsWith("//") && currLine.Trim() != "") { string[] splitLine = currLine.Split('\t'); { byte category = Convert.ToByte(splitLine[0]); outfit temp = new outfit(); temp.Appearance = (ushort)(byte.Parse(splitLine[1].Substring(0, 2), System.Globalization.NumberStyles.AllowHexSpecifier) | (byte.Parse(splitLine[1].Substring(2, 2), System.Globalization.NumberStyles.AllowHexSpecifier) << 8)); temp.OrString = byte.Parse(splitLine[2], System.Globalization.NumberStyles.AllowHexSpecifier); temp.Manufacturer = byte.Parse(splitLine[3], System.Globalization.NumberStyles.AllowHexSpecifier); temp.Overlap = byte.Parse(splitLine[4], System.Globalization.NumberStyles.AllowHexSpecifier); temp.Restrict = byte.Parse(splitLine[5], System.Globalization.NumberStyles.AllowHexSpecifier); temp.Color0 = byte.Parse(splitLine[6], System.Globalization.NumberStyles.AllowHexSpecifier); temp.Color1 = byte.Parse(splitLine[7], System.Globalization.NumberStyles.AllowHexSpecifier); temp.Color2 = byte.Parse(splitLine[8], System.Globalization.NumberStyles.AllowHexSpecifier); temp.Color3 = byte.Parse(splitLine[9], System.Globalization.NumberStyles.AllowHexSpecifier); temp.Color4 = byte.Parse(splitLine[10], System.Globalization.NumberStyles.AllowHexSpecifier); temp.Color5 = byte.Parse(splitLine[11], System.Globalization.NumberStyles.AllowHexSpecifier); temp.Color6 = byte.Parse(splitLine[12], System.Globalization.NumberStyles.AllowHexSpecifier); temp.Color7 = byte.Parse(splitLine[13], System.Globalization.NumberStyles.AllowHexSpecifier); temp.Color8 = byte.Parse(splitLine[14], System.Globalization.NumberStyles.AllowHexSpecifier); temp.Color9 = byte.Parse(splitLine[15], System.Globalization.NumberStyles.AllowHexSpecifier); temp.Category = category; clothes[category - 1].Add(temp); } } } }