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