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

View file

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

View file

@ -94,7 +94,7 @@ void DisplayMan::readPict(const char *filename, bool playOnce, bool onlyDiffData
_dispBitMap->_bytesPerRow = _screenWidth; _dispBitMap->_bytesPerRow = _screenWidth;
_dispBitMap->_rows = _screenHeight; _dispBitMap->_rows = _screenHeight;
_dispBitMap->_flags = BITMAPF_VIDEO; _dispBitMap->_drawOnScreen = true;
_vm->_anim->readDiff(_curBitmap, playOnce, onlyDiffData); _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. * 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(); _vm->_anim->stopDiff();
loadPict(filename); loadPict(filename);
@ -112,9 +112,9 @@ byte *DisplayMan::readPictToMem(const char *filename, uint16 x, uint16 y) {
if (!_vm->_music->_doNotFilestopSoundEffect) if (!_vm->_music->_doNotFilestopSoundEffect)
_vm->_music->stopSoundEffect(); _vm->_music->stopSoundEffect();
_dispBitMap->_bytesPerRow = x; _dispBitMap->_bytesPerRow = width;
_dispBitMap->_rows = y; _dispBitMap->_rows = height;
_dispBitMap->_flags = BITMAPF_NONE; _dispBitMap->_drawOnScreen = false;
_dispBitMap->_planes[0] = _curBitmap; _dispBitMap->_planes[0] = _curBitmap;
_dispBitMap->_planes[1] = _dispBitMap->_planes[0] + 0x10000; _dispBitMap->_planes[1] = _dispBitMap->_planes[0] + 0x10000;
_dispBitMap->_planes[2] = _dispBitMap->_planes[1] + 0x10000; _dispBitMap->_planes[2] = _dispBitMap->_planes[1] + 0x10000;