CGE: Remove XFile, rename some members

This commit is contained in:
Strangerke 2011-09-09 16:51:47 +02:00
parent 4b9d2c2516
commit b23bee8571
7 changed files with 31 additions and 41 deletions

View File

@ -341,7 +341,7 @@ bool Bitmap::solidAt(int16 x, int16 y) {
}
}
bool Bitmap::loadVBM(XFile *f) {
bool Bitmap::loadVBM(VFile *f) {
debugC(5, kCGEDebugBitmap, "Bitmap::loadVBM(f)");
uint16 p = 0, n = 0;

View File

@ -61,7 +61,7 @@ struct HideDesc {
#include "common/pack-end.h"
class Bitmap {
bool loadVBM(XFile *f);
bool loadVBM(VFile *f);
public:
static Dac *_pal;
uint16 _w;

View File

@ -51,12 +51,12 @@ uint16 XCrypt(void *buf, uint16 siz, uint16 seed) {
/*-----------------------------------------------------------------------
* IOHand
*-----------------------------------------------------------------------*/
IoHand::IoHand(Crypt *crypt) : XFile(), _crypt(crypt), _seed(kCryptSeed) {
IoHand::IoHand(Crypt *crypt) : _error(0), _crypt(crypt), _seed(kCryptSeed) {
_file = new Common::File();
}
IoHand::IoHand(const char *name, Crypt *crypt)
: XFile(), _crypt(crypt), _seed(kCryptSeed) {
: _error(0), _crypt(crypt), _seed(kCryptSeed) {
_file = new Common::File();
_file->open(name);
}
@ -248,21 +248,21 @@ long CFile::seek(long pos) {
* BtPage
*-----------------------------------------------------------------------*/
void BtPage::read(Common::ReadStream &s) {
_hea._count = s.readUint16LE();
_hea._down = s.readUint16LE();
_header._count = s.readUint16LE();
_header._down = s.readUint16LE();
if (_hea._down == kBtValNone) {
if (_header._down == kBtValNone) {
// Leaf list
for (int i = 0; i < kBtLeafCount; ++i) {
s.read(_lea[i]._key, kBtKeySize);
_lea[i]._mark = s.readUint32LE();
_lea[i]._size = s.readUint16LE();
s.read(_leaf[i]._key, kBtKeySize);
_leaf[i]._mark = s.readUint32LE();
_leaf[i]._size = s.readUint16LE();
}
} else {
// Root index
for (int i = 0; i < kBtInnerCount; ++i) {
s.read(_inn[i]._key, kBtKeySize);
_inn[i]._down = s.readUint16LE();
s.read(_inner[i]._key, kBtKeySize);
_inner[i]._down = s.readUint16LE();
}
}
}
@ -321,24 +321,24 @@ BtKeypack *BtFile::find(const char *key) {
while (!_error) {
BtPage *pg = getPage(lev, nxt);
// search
if (pg->_hea._down != kBtValNone) {
if (pg->_header._down != kBtValNone) {
int i;
for (i = 0; i < pg->_hea._count; i++) {
for (i = 0; i < pg->_header._count; i++) {
// Does this work, or does it have to compare the entire buffer?
if (scumm_strnicmp((const char *)key, (const char*)pg->_inn[i]._key, kBtKeySize) < 0)
if (scumm_strnicmp((const char *)key, (const char*)pg->_inner[i]._key, kBtKeySize) < 0)
break;
}
nxt = (i) ? pg->_inn[i - 1]._down : pg->_hea._down;
nxt = (i) ? pg->_inner[i - 1]._down : pg->_header._down;
_buff[lev]._indx = i - 1;
lev++;
} else {
int i;
for (i = 0; i < pg->_hea._count - 1; i++) {
if (scumm_stricmp((const char *)key, (const char *)pg->_lea[i]._key) <= 0)
for (i = 0; i < pg->_header._count - 1; i++) {
if (scumm_stricmp((const char *)key, (const char *)pg->_leaf[i]._key) <= 0)
break;
}
_buff[lev]._indx = i;
return &pg->_lea[i];
return &pg->_leaf[i];
}
}
return NULL;

View File

@ -52,33 +52,23 @@ struct BtKeypack {
};
struct Inner {
uint8 _key[kBtKeySize];
uint8 _key[kBtKeySize];
uint16 _down;
};
struct Hea {
struct Header {
uint16 _count;
uint16 _down;
};
class XFile {
public:
uint16 _error;
XFile() : _error(0) { }
virtual ~XFile() { }
virtual uint16 read(void *buf, uint16 len) = 0;
virtual long mark() = 0;
virtual long size() = 0;
virtual long seek(long pos) = 0;
};
class IoHand : public XFile {
class IoHand {
protected:
Common::File *_file;
uint16 _seed;
Crypt *_crypt;
public:
uint16 _error;
IoHand(const char *name, Crypt crypt);
IoHand(Crypt *crypt);
virtual ~IoHand();
@ -116,14 +106,14 @@ public:
};
struct BtPage {
Hea _hea;
Header _header;
union {
// dummy filler to make proper size of union
uint8 _data[kBtSize - 4 /*sizeof(Hea) */];
// inner version of data: key + word-sized page link
Inner _inn[kBtInnerCount];
Inner _inner[kBtInnerCount];
// leaf version of data: key + all user data
BtKeypack _lea[kBtLeafCount];
BtKeypack _leaf[kBtLeafCount];
};
void read(Common::ReadStream &s);

View File

@ -54,7 +54,7 @@ void sndSetVolume() {
// USeless for ScummVM
}
DataCk *loadWave(XFile *file) {
DataCk *loadWave(VFile *file) {
byte *data = (byte *)malloc(file->size());
file->read(data, file->size());

View File

@ -76,12 +76,12 @@ void Sound::play(DataCk *wav, int pan) {
void Sound::sndDigiStart(SmpInfo *PSmpInfo) {
// Create an audio stream wrapper for sound
Common::MemoryReadStream *stream = new Common::MemoryReadStream(PSmpInfo->_saddr,
Common::MemoryReadStream *stream = new Common::MemoryReadStream(PSmpInfo->_saddr,
PSmpInfo->_slen, DisposeAfterUse::NO);
_audioStream = Audio::makeWAVStream(stream, DisposeAfterUse::YES);
// Start the new sound
_vm->_mixer->playStream(Audio::Mixer::kSFXSoundType, &_soundHandle,
_vm->_mixer->playStream(Audio::Mixer::kSFXSoundType, &_soundHandle,
Audio::makeLoopingAudioStream(_audioStream, (uint)PSmpInfo->_counter));
}

View File

@ -57,7 +57,7 @@ public:
}
};
DataCk *loadWave(XFile *file);
DataCk *loadWave(VFile *file);
class Sound {
public: