LAB: Simplify bitmap flags

This commit is contained in:
Filippos Karapetis 2015-12-10 10:53:15 +02:00 committed by Willem Jan Palenstijn
parent 67b3960968
commit 9c94d140db
3 changed files with 10 additions and 13 deletions

View file

@ -61,7 +61,7 @@ Anim::Anim(LabEngine *vm) : _vm(vm) {
_diffFile = nullptr;
_size = 0;
_rawDiffBM._bytesPerRow = 0;
_rawDiffBM._flags = 0;
_rawDiffBM._drawOnScreen = false;
for (int i = 0; i < 16; i++)
_rawDiffBM._planes[i] = nullptr;
_rawDiffBM._rows = 0;
@ -82,7 +82,7 @@ void Anim::diffNextFrame(bool onlyDiffData) {
// Already done.
return;
if (_vm->_graphics->_dispBitMap->_flags & BITMAPF_VIDEO) {
if (_vm->_graphics->_dispBitMap->_drawOnScreen) {
_vm->_graphics->_dispBitMap->_planes[0] = _vm->_graphics->getCurrentDrawingBuffer();
_vm->_graphics->_dispBitMap->_planes[1] = _vm->_graphics->_dispBitMap->_planes[0] + 0x10000;
_vm->_graphics->_dispBitMap->_planes[2] = _vm->_graphics->_dispBitMap->_planes[1] + 0x10000;
@ -125,7 +125,7 @@ void Anim::diffNextFrame(bool onlyDiffData) {
_isAnim = (_frameNum >= 3) && (!_playOnce);
_curBit = 0;
if (_vm->_graphics->_dispBitMap->_flags & BITMAPF_VIDEO)
if (_vm->_graphics->_dispBitMap->_drawOnScreen)
_vm->_graphics->screenUpdate();
// done with the next frame.
@ -218,7 +218,7 @@ void Anim::diffNextFrame(bool onlyDiffData) {
_vm->_music->updateMusic();
_vm->waitTOF();
if (_vm->_graphics->_dispBitMap->_flags & BITMAPF_VIDEO)
if (_vm->_graphics->_dispBitMap->_drawOnScreen)
didTOF = true;
}
}

View file

@ -50,13 +50,10 @@ struct DIFFHeader {
struct BitMap {
uint16 _bytesPerRow;
uint16 _rows; // unused
byte _flags;
bool _drawOnScreen;
byte *_planes[16];
};
#define BITMAPF_NONE 0
#define BITMAPF_VIDEO (1<<7)
class Anim {
private:
LabEngine *_vm;

View file

@ -94,7 +94,7 @@ void DisplayMan::readPict(const char *filename, bool playOnce, bool onlyDiffData
_dispBitMap->_bytesPerRow = _screenWidth;
_dispBitMap->_rows = _screenHeight;
_dispBitMap->_flags = BITMAPF_VIDEO;
_dispBitMap->_drawOnScreen = true;
_vm->_anim->readDiff(_curBitmap, playOnce, onlyDiffData);
}
@ -102,7 +102,7 @@ void DisplayMan::readPict(const char *filename, bool playOnce, bool onlyDiffData
/**
* Reads in a picture into buffer memory.
*/
byte *DisplayMan::readPictToMem(const char *filename, uint16 x, uint16 y) {
byte *DisplayMan::readPictToMem(const char *filename, uint16 width, uint16 height) {
_vm->_anim->stopDiff();
loadPict(filename);
@ -112,9 +112,9 @@ byte *DisplayMan::readPictToMem(const char *filename, uint16 x, uint16 y) {
if (!_vm->_music->_doNotFilestopSoundEffect)
_vm->_music->stopSoundEffect();
_dispBitMap->_bytesPerRow = x;
_dispBitMap->_rows = y;
_dispBitMap->_flags = BITMAPF_NONE;
_dispBitMap->_bytesPerRow = width;
_dispBitMap->_rows = height;
_dispBitMap->_drawOnScreen = false;
_dispBitMap->_planes[0] = _curBitmap;
_dispBitMap->_planes[1] = _dispBitMap->_planes[0] + 0x10000;
_dispBitMap->_planes[2] = _dispBitMap->_planes[1] + 0x10000;