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');
            }
Ejemplo n.º 2
0
 public RankEntry(Sir0 sir0, IReadOnlyBinaryDataAccessor data)
 {
     {
         int offset = checked ((int)data.ReadInt64(0));
         RewardStatue = sir0.Data.ReadString(offset, offset + 0x10, Encoding.ASCII);
     }
     MinPoints    = data.ReadInt32(8);
     Unknown      = data.ReadInt16(0xC);
     ToolboxSize  = data.ReadInt16(0xE);
     CampCapacity = data.ReadInt16(0x10);
     TeamPresets  = data.ReadInt16(0x12);
     JobLimit     = data.ReadInt16(0x14);
 }
            public PokemonGraphicsDatabaseEntry(IReadOnlyBinaryDataAccessor entryAccessor, IReadOnlyBinaryDataAccessor rawDataAccessor)
            {
                ModelNamePointer                  = entryAccessor.ReadInt64(0);
                AnimationNamePointer              = entryAccessor.ReadInt64(8);
                BaseFormModelNamePointer          = entryAccessor.ReadInt64(16);
                PortraitSheetNamePointer          = entryAccessor.ReadInt64(24);
                RescueCampSheetNamePointer        = entryAccessor.ReadInt64(32);
                RescueCampSheetReverseNamePointer = entryAccessor.ReadInt64(40);

                ModelName                  = rawDataAccessor.ReadNullTerminatedUnicodeString(ModelNamePointer);
                AnimationName              = rawDataAccessor.ReadNullTerminatedUnicodeString(AnimationNamePointer);
                BaseFormModelName          = rawDataAccessor.ReadNullTerminatedUnicodeString(BaseFormModelNamePointer);
                PortraitSheetName          = rawDataAccessor.ReadNullTerminatedUnicodeString(PortraitSheetNamePointer);
                RescueCampSheetName        = rawDataAccessor.ReadNullTerminatedUnicodeString(RescueCampSheetNamePointer);
                RescueCampSheetReverseName = rawDataAccessor.ReadNullTerminatedUnicodeString(RescueCampSheetReverseNamePointer);

                UnkX30 = entryAccessor.ReadSingle(0x30);
                UnkX34 = entryAccessor.ReadSingle(0x34);
                UnkX38 = entryAccessor.ReadSingle(0x38);
                UnkX3C = entryAccessor.ReadSingle(0x3C);

                UnkX40            = entryAccessor.ReadSingle(0x40);
                UnkX44            = entryAccessor.ReadSingle(0x44);
                UnkX48            = entryAccessor.ReadSingle(0x48);
                WalkSpeedDistance = entryAccessor.ReadSingle(0x4C); // Referenced by PokemonDatabase_GetWalkSpeed()

                UnkX50 = entryAccessor.ReadSingle(0x50);
                RunSpeedRatioGround = entryAccessor.ReadSingle(0x54); // Referenced by PokemonDatabase_GetRunRateGround()
                UnkX58 = entryAccessor.ReadSingle(0x58);
                UnkX5C = entryAccessor.ReadSingle(0x5C);

                UnkX60           = entryAccessor.ReadSingle(0x60);
                UnkX64           = entryAccessor.ReadSingle(0x64);
                UnknownBodyType1 = (GraphicsBodySizeType)entryAccessor.ReadInt32(0x68);
                UnknownBodyType2 = (GraphicsBodySizeType)entryAccessor.ReadInt32(0x6C);

                Flags            = (PokemonGraphicsDatabaseEntryFlags)entryAccessor.ReadInt32(0x70);
                EnabledPortraits = (EnabledPortraitsFlags)entryAccessor.ReadUInt32(0x74); // Bitmask of enabled portraits
                UnkX78           = entryAccessor.ReadInt32(0x78);
                UnkX7C           = entryAccessor.ReadInt32(0x7C);

                UnkX80 = entryAccessor.ReadInt32(0x80);
                UnkX84 = entryAccessor.ReadSingle(0x84);
                UnkX88 = entryAccessor.ReadSingle(0x88);
                UnkX8C = entryAccessor.ReadSingle(0x8C);

                UnkX90 = entryAccessor.ReadSingle(0x90);
                UnkX94 = entryAccessor.ReadSingle(0x94);
                UnkX98 = entryAccessor.ReadSingle(0x98);
                UnkX9C = entryAccessor.ReadSingle(0x9C);

                UnkXA0   = entryAccessor.ReadSingle(0xA0);
                Padding1 = entryAccessor.ReadInt32(0xA4);
                Padding2 = entryAccessor.ReadInt32(0xA8);
                Padding3 = entryAccessor.ReadInt32(0xAC);
            }
            public PokemonEvolutionEntry(Sir0 sir0, IReadOnlyBinaryDataAccessor data)
            {
                int branchOffset = checked ((int)data.ReadInt64(0));
                int branchCount  = data.ReadInt32(8);
                var branches     = new List <PokemonEvolutionBranch>(branchCount);

                for (int i = 0; i < branchCount; i++)
                {
                    branches.Add(new PokemonEvolutionBranch(sir0.Data.Slice(branchOffset + i * 0x14, 0x14)));
                }
                this.Branches = branches;
                MegaEvos      = (
                    (CreatureIndex)data.ReadInt16(0xC),
                    (CreatureIndex)data.ReadInt16(0xE)
                    );
            }