//public Battle_Commands BattleCommand { get; private set; } = null; public override void Read(BinaryReader br, int i) { Icon = Icons.ID.Ability_Character2; Name = Memory.Strings.Read(Strings.FileID.KERNEL, id, i * 2); //0x0000 2 bytes Offset to name Description = Memory.Strings.Read(Strings.FileID.KERNEL, id, i * 2 + 1); //0x0002 2 bytes Offset to description br.BaseStream.Seek(4, SeekOrigin.Current); AP = br.ReadByte(); //0x0004 1 byte AP Required to learn ability byte[] tmp = br.ReadBytes(3); int shift = 0; Flags = (CharacterAbilityFlags)(tmp[2] << (16 + shift) | tmp[1] << (8 + shift) | tmp[0] << (shift)); //Flags = new BitArray(br.ReadBytes(3)); //0x0005 3 byte Flags }
private CharacterAbilities (FF8String name, FF8String description, byte ap, CharacterAbilityFlags flags) : base(name, description, ap, Icon) => Flags = flags;