Beispiel #1
0
        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();
        }
Beispiel #2
0
        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());
        }
Beispiel #3
0
        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);
                    }
                }
            }
        }
Beispiel #4
0
        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);
                    }
                }
            }
        }