public MonsterNoteFile(FileReader reader) { Assert.IsNotNull(reader, nameof(reader)); Records = new List <Record>(); while (true) { var id = ConvertId(reader.ReadBytes(4)); var length = reader.ReadUInt32(); if (length == 0xFFFFFFFF) { break; } var filebytes = reader.ReadBytes((Int32)length); var monsterfile = OpenMonsterDefinitionFile(new FileReader(filebytes, reader.Encoding)); Records.Add(new Record { Id = id, MonsterDefinitionFile = monsterfile }); } }
public MonsterDefinitionFile_Zero(FileReader reader) { Assert.IsNotNull(reader, nameof(reader)); Arts = new List <FileHeaders.MONSTER_CRAFTAIINFO>(); Crafts = new List <FileHeaders.MONSTER_CRAFTAIINFO>(); SCrafts = new List <FileHeaders.MONSTER_CRAFTAIINFO>(); SupportCrafts = new List <FileHeaders.MONSTER_CRAFTAIINFO>(); CraftInfoList = new List <CraftInfo>(); var header = Interop.ReadStructFromStream <FileHeaders.MONSTER_HEADER>(reader.Stream); var attack = Interop.ReadStructFromStream <FileHeaders.MONSTER_CRAFTAIINFO>(reader.Stream); var count_arts = reader.ReadByte(); var arts = Enumerable.Range(0, count_arts).Select(i => Interop.ReadStructFromStream <FileHeaders.MONSTER_CRAFTAIINFO>(reader.Stream)).ToList(); var count_crafts = reader.ReadByte(); var crafts = Enumerable.Range(0, count_crafts).Select(i => Interop.ReadStructFromStream <FileHeaders.MONSTER_CRAFTAIINFO>(reader.Stream)).ToList(); var count_scrafts = reader.ReadByte(); var scrafts = Enumerable.Range(0, count_scrafts).Select(i => Interop.ReadStructFromStream <FileHeaders.MONSTER_CRAFTAIINFO>(reader.Stream)).ToList(); var count_supportcrafts = reader.ReadByte(); var supportcrafts = Enumerable.Range(0, count_supportcrafts).Select(i => Interop.ReadStructFromStream <FileHeaders.MONSTER_CRAFTAIINFO>(reader.Stream)).ToList(); var count_craftinfo = reader.ReadByte(); //reader.Position += 2; var craftinfo = Enumerable.Range(0, count_craftinfo).Select(i => new CraftInfo { Info = reader.ReadBytes(28), Name = reader.ReadString(), Description = reader.ReadString() }).ToList(); var runaway = Interop.ReadStructFromStream <FileHeaders.MONSTER_RUNAWAY>(reader.Stream); var reserve1 = reader.ReadByte(); var name = reader.ReadString(); var description = reader.ReadString(); Header = header; Attack = attack; Arts.AddRange(arts); Crafts.AddRange(crafts); SCrafts.AddRange(scrafts); SupportCrafts.AddRange(supportcrafts); CraftInfoList.AddRange(craftinfo); RunAway = runaway; Reserve = reserve1; Name = name; Description = description; }