aboutsummaryrefslogtreecommitdiff
path: root/engines/adl/disk.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/adl/disk.h')
-rw-r--r--engines/adl/disk.h20
1 files changed, 12 insertions, 8 deletions
diff --git a/engines/adl/disk.h b/engines/adl/disk.h
index 1041f0cebd..653d76ff10 100644
--- a/engines/adl/disk.h
+++ b/engines/adl/disk.h
@@ -74,7 +74,10 @@ class DiskImage {
public:
DiskImage() :
_stream(nullptr),
- _mode13(false) { }
+ _tracks(0),
+ _sectorsPerTrack(0),
+ _bytesPerSector(0),
+ _sectorLimit(0) { }
~DiskImage() {
delete _stream;
@@ -82,32 +85,33 @@ public:
bool open(const Common::String &filename);
const DataBlockPtr getDataBlock(uint track, uint sector, uint offset = 0, uint size = 0) const;
- Common::SeekableReadStream *createReadStream(uint track, uint sector, uint offset = 0, uint size = 0, uint sectorsPerTrackToRead = 16) const;
- void setMode13(bool enable) { _mode13 = enable; }
+ Common::SeekableReadStream *createReadStream(uint track, uint sector, uint offset = 0, uint size = 0, uint sectorsUsed = 0) const;
+ void setSectorLimit(uint sectorLimit) { _sectorLimit = sectorLimit; } // Maximum number of sectors to read per track before stepping
protected:
class DataBlock : public Adl::DataBlock {
public:
- DataBlock(const DiskImage *disk, uint track, uint sector, uint offset, uint size, bool mode13) :
+ DataBlock(const DiskImage *disk, uint track, uint sector, uint offset, uint size, uint sectorLimit) :
_track(track),
_sector(sector),
_offset(offset),
_size(size),
- _mode13(mode13),
+ _sectorLimit(sectorLimit),
_disk(disk) { }
Common::SeekableReadStream *createReadStream() const {
- return _disk->createReadStream(_track, _sector, _offset, _size, (_mode13 ? 13 : 16));
+ return _disk->createReadStream(_track, _sector, _offset, _size, _sectorLimit);
}
private:
uint _track, _sector, _offset, _size;
- bool _mode13;
+ uint _sectorLimit;
const DiskImage *_disk;
};
Common::SeekableReadStream *_stream;
- bool _mode13; // Older 13-sector format
+ uint _tracks, _sectorsPerTrack, _bytesPerSector;
+ uint _sectorLimit;
};
// Data in plain files