public Entry(short floorCount) { FloorInfos = new FloorInfoEntry[floorCount]; for (short i = 0; i < floorCount; i++) { FloorInfos[i] = new FloorInfoEntry(i); } }
public Entry(IReadOnlyBinaryDataAccessor accessor) { var buffer = Gyu0.Decompress(accessor); Sir0 sir0 = new Sir0(buffer); var offsetHeader = sir0.SubHeader.ReadInt64(0x00); var offsetWildPokemon = sir0.SubHeader.ReadInt64(0x08); var offset3 = sir0.SubHeader.ReadInt64(0x10); var offset4 = sir0.SubHeader.ReadInt64(0x18); var lenHeader = offsetWildPokemon - offsetHeader; var lenWildPokemon = offset3 - offsetWildPokemon; var len3 = offset4 - offset3; var len4 = sir0.SubHeaderOffset - offset4; var headerEntrySize = FloorInfoEntry.Size; var entryCount = lenHeader / headerEntrySize; FloorInfos = new FloorInfoEntry[entryCount]; for (int i = 0; i < lenHeader / headerEntrySize; i++) { FloorInfos[i] = new FloorInfoEntry(sir0.Data.Slice(offsetHeader + i * headerEntrySize, headerEntrySize)); } if (lenWildPokemon > 0) { WildPokemon = new WildPokemonInfo(sir0.Data.Slice(offsetWildPokemon, lenWildPokemon)); } if (len3 > 0) { Data3 = new DungeonBalanceDataEntry3(sir0.Data.Slice(offset3, len3)); } if (len4 > 0) { Data4 = new DungeonBalanceDataEntry4(sir0.Data.Slice(offset4, len4)); } }