Ejemplo n.º 1
0
        static void Main()
        {
            uint[] numberList = new uint[8];
            for (int i = 0; i < 8; i++)
            {
                numberList[i] = uint.Parse(Console.ReadLine());
            }

            for (int col = 8; col <= 15; col++)
            {
                for (int row = 0; row <= 7; row++)
                {
                    GetBird(numberList, row, col);
                }
            }

            if (numberList.Any(n => n <= 255 && n > 0))
            {
                Console.WriteLine(scores + " No");
            }
            else
            {
                Console.WriteLine(scores + " Yes");
            }
        }
Ejemplo n.º 2
0
        private bool LoadFile(Stream stream, EndianUtils.Endianness endian, TextUtils.GameTextEncoding encoding, uint textPointerLocationDiff)
        {
            string magic      = stream.ReadAscii(8);
            uint   alwaysSame = stream.ReadUInt32().FromEndian(endian);
            uint   filesize   = stream.ReadUInt32().FromEndian(endian);

            uint lengthSection1 = stream.ReadUInt32().FromEndian(endian);

            stream.Position = 0x50;
            int textPointerDiffDiff = (int)stream.ReadUInt32().FromEndian(endian);

            stream.Position = 0x20;
            uint textStart       = stream.ReadUInt32().FromEndian(endian);
            int  textPointerDiff = (int)stream.ReadUInt32().FromEndian(endian) - textPointerDiffDiff;

            EntryList = new List <ScenarioFileEntry>();

            // i wonder what the actual logic behind this is...
            uint textPointersLocation = (lengthSection1 + 0x80).Align(0x10) + textPointerLocationDiff;

            // + 0x1888; // + 0x1B4C // diff of 2C4 // Actually this isn't constant, dammit.

            if (textStart != textPointersLocation)
            {
                stream.Position = textPointersLocation;

                while (true)
                {
                    long loc = stream.Position;
                    stream.DiscardBytes(8);
                    uint[] ptrs = new uint[4];
                    ptrs[0] = stream.ReadUInt32().FromEndian(endian);
                    ptrs[1] = stream.ReadUInt32().FromEndian(endian);
                    ptrs[2] = stream.ReadUInt32().FromEndian(endian);
                    ptrs[3] = stream.ReadUInt32().FromEndian(endian);

                    if (stream.Position > textStart)
                    {
                        break;
                    }
                    if (ptrs.Any(x => x == 0))
                    {
                        break;
                    }
                    if (ptrs.Any(x => x + textPointerDiff < textStart))
                    {
                        break;
                    }
                    if (ptrs.Any(x => x + textPointerDiff >= filesize))
                    {
                        break;
                    }

                    var s = new ScenarioFileEntry();
                    s.Pointer = (uint)loc;
                    s.JpName  = stream.ReadNulltermStringFromLocationAndReset(ptrs[0] + textPointerDiff, encoding);
                    s.JpText  = stream.ReadNulltermStringFromLocationAndReset(ptrs[1] + textPointerDiff, encoding);
                    s.EnName  = stream.ReadNulltermStringFromLocationAndReset(ptrs[2] + textPointerDiff, encoding);
                    s.EnText  = stream.ReadNulltermStringFromLocationAndReset(ptrs[3] + textPointerDiff, encoding);
                    EntryList.Add(s);

                    stream.Position = loc + 0x18;
                }
            }

            return(true);
        }