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); }