Ejemplo n.º 1
0
            public PokemonGraphicsDatabaseEntry(IReadOnlyBinaryDataAccessor entryAccessor, IReadOnlyBinaryDataAccessor rawDataAccessor)
            {
                BgrsFilenamePointer          = entryAccessor.ReadInt32(0);
                SecondaryBgrsFilenamePointer = entryAccessor.ReadInt32(4);
                PortraitNamePointer          = entryAccessor.ReadInt32(8);

                BgrsFilename          = rawDataAccessor.ReadNullTerminatedUnicodeString(BgrsFilenamePointer);
                SecondaryBgrsFilename = rawDataAccessor.ReadNullTerminatedUnicodeString(SecondaryBgrsFilenamePointer);
                PortraitName          = rawDataAccessor.ReadNullTerminatedUnicodeString(PortraitNamePointer);

                UnknownData = entryAccessor.ReadArray(0xC, entrySize - 0xC);
            }
            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);
            }