Ejemplo n.º 1
0
 public CampEntry(IReadOnlyBinaryDataAccessor data)
 {
     Lineup            = data.ReadString(2, 0x40, Encoding.ASCII);
     UnlockCondition   = data.ReadString(0x42, 0x40, Encoding.ASCII);
     Price             = data.ReadInt32(0x84);
     BackgroundTexture = data.ReadString(0x94, 0x40, Encoding.ASCII);
     BackgroundMusic   = data.ReadString(0xD4, 0x40, Encoding.ASCII);
 }
 public ItemDataInfoEntry(IReadOnlyBinaryDataAccessor data)
 {
     BuyPrice   = data.ReadInt16(6);
     SellPrice  = data.ReadInt16(8);
     MoveTaught = (WazaIndex)data.ReadInt16(0xA);
     Name       = data.ReadString(0x22, 0x42, Encoding.ASCII);
 }
            public PokemonDataInfoEntry(CreatureIndex id, IReadOnlyBinaryDataAccessor data)
            {
                this.Id = id;

                Unknown00 = data.ReadInt64(0);
                Unknown08 = data.ReadInt64(8);

                var levelupLearnset = new List <LevelUpMove>(26);

                for (int i = 0; i < 26; i++)
                {
                    WazaIndex move  = (WazaIndex)data.ReadInt16(0x10 + i * sizeof(short));
                    byte      level = data.ReadByte(0x44 + i);
                    levelupLearnset.Add(new LevelUpMove(level, move));
                }
                this.LevelupLearnset = levelupLearnset;

                Unknown5E = data.ReadInt16(0x5E);
                Unknown60 = data.ReadInt32(0x60);

                PokedexNumber = data.ReadInt16(0x64);
                Unknown66     = data.ReadInt16(0x66);
                Taxon         = data.ReadInt16(0x68);

                Unknown6A = data.ReadInt16(0x6A);
                Unknown6C = data.ReadInt32(0x6C);
                Unknown70 = data.ReadInt32(0x70);

                BaseHitPoints      = data.ReadInt16(0x74);
                BaseAttack         = data.ReadInt16(0x76);
                BaseSpecialAttack  = data.ReadInt16(0x78);
                BaseDefense        = data.ReadInt16(0x7A);
                BaseSpecialDefense = data.ReadInt16(0x7C);
                BaseSpeed          = data.ReadInt16(0x7E);

                Unknown80 = data.ReadInt32(0x80);

                ExperienceEntry = data.ReadInt32(0x84);

                Unknown88 = data.ReadInt64(0x88);

                Ability1      = (AbilityIndex)data.ReadByte(0x90);
                Ability2      = (AbilityIndex)data.ReadByte(0x91);
                HiddenAbility = (AbilityIndex)data.ReadByte(0x92);
                Type1         = (PokemonType)data.ReadByte(0x93);
                Type2         = (PokemonType)data.ReadByte(0x94);

                Unknown95 = data.ReadByte(0x95);
                Unknown96 = data.ReadByte(0x96);
                Unknown97 = data.ReadByte(0x97);
                Unknown98 = data.ReadByte(0x98);
                Unknown99 = data.ReadByte(0x99);
                Unknown9A = data.ReadByte(0x9A);

                RecruitPrereq = data.ReadString(0x9B, 69, Encoding.ASCII).TrimEnd('\0');
            }
        /// <summary>
        /// Reads a null-terminated using the given encoding
        /// </summary>
        /// <param name="offset">Offset of the string</param>
        /// <returns>The string at the given location</returns>
        public static async Task <string> ReadNullTerminatedStringAsync(this IReadOnlyBinaryDataAccessor accessor, long index, Encoding e)
        {
            // The null character we're looking for
            var nullCharSequence = e.GetBytes(Convert.ToChar(0x0).ToString());

            // Find the length of the string as determined by the location of the null-char sequence
            int length = 0;

            while (!(await accessor.ReadAsync(index + length * nullCharSequence.Length, nullCharSequence.Length)).All(x => x == 0))
            {
                length += 1;
            }

            return(accessor.ReadString(index, length, e));
        }
 public FloorInfoEntry(IReadOnlyBinaryDataAccessor data)
 {
     Index           = data.ReadInt16(0x00);
     Short02         = data.ReadInt16(0x02);
     Event           = data.ReadString(0x04, 32, Encoding.ASCII).Trim('\0');
     Short24         = data.ReadInt16(0x24);
     Short26         = data.ReadInt16(0x26);
     Short28         = data.ReadInt16(0x28);
     Short2A         = data.ReadInt16(0x2A);
     Byte2C          = data.ReadByte(0x2C);
     Byte2D          = data.ReadByte(0x2D);
     Byte2E          = data.ReadByte(0x2E);
     Byte2F          = data.ReadByte(0x2F);
     Short30         = data.ReadInt16(0x30);
     Short32         = data.ReadInt16(0x32);
     Byte34          = data.ReadByte(0x34);
     Byte35          = data.ReadByte(0x35);
     Byte36          = data.ReadByte(0x36);
     InvitationIndex = data.ReadByte(0x54);
     Bytes37to53     = data.ReadArray(0x37, 0x53 - 0x37 + 1);
     Bytes55to61     = data.ReadArray(0x55, 0x61 - 0x55 + 1);
 }