diff options
author | James Brown | 2003-01-14 10:06:56 +0000 |
---|---|---|
committer | James Brown | 2003-01-14 10:06:56 +0000 |
commit | 5bf741f96076fa5fcdc077d5fe0a6f4557bd1dcc (patch) | |
tree | 980a4f529c01bfd637470130a024f690adaa87c1 /scumm/scumm.h | |
parent | 639cb13da189d269f53a9f895fc6109cd926c211 (diff) | |
download | scummvm-rg350-5bf741f96076fa5fcdc077d5fe0a6f4557bd1dcc.tar.gz scummvm-rg350-5bf741f96076fa5fcdc077d5fe0a6f4557bd1dcc.tar.bz2 scummvm-rg350-5bf741f96076fa5fcdc077d5fe0a6f4557bd1dcc.zip |
Patch 667613: Extend gfxUsageBits[]
svn-id: r6453
Diffstat (limited to 'scumm/scumm.h')
-rw-r--r-- | scumm/scumm.h | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/scumm/scumm.h b/scumm/scumm.h index ab791d0f95..69c524774d 100644 --- a/scumm/scumm.h +++ b/scumm/scumm.h @@ -748,7 +748,7 @@ public: void useBompCursor(byte *im, int w, int h); - void updateDirtyRect(int virt, int left, int right, int top, int bottom, uint32 dirtybits); + void updateDirtyRect(int virt, int left, int right, int top, int bottom, int dirtybit); void setDirtyRange(int slot, int a, int height); void drawDirtyScreenParts(); void updateDirtyScreen(int slot); @@ -810,12 +810,18 @@ public: byte *_palManipPalette; byte *_palManipIntermediatePal; - /* For each screen strip, gfxUsageBits contains a bitmask. - * The lower 30 bits each correspond to one actor and signify if any part - * of that actor is currently contained in that strip. - * If the left most bit is set, the strip (background) is dirty needs to be redrawn. + /* For each of the 410 screen strips, gfxUsageBits contains a + * bitmask. The lower 80 bits each correspond to one actor and + * signify if any part of that actor is currently contained in + * that strip. + * + * If the leftmost bit is set, the strip (background) is dirty + * needs to be redrawn. + * + * The second leftmost bit is set by removeBlastObject() and + * restoreBG(), but I'm not yet sure why. */ - uint32 gfxUsageBits[410]; + uint32 gfxUsageBits[410 * 3]; byte *_shadowPalette; int _shadowPaletteSize; @@ -924,6 +930,13 @@ public: uint32 fileReadDword() { return _fileHandle.readUint32BE(); } #endif + void upgradeGfxUsageBits(); + void setGfxUsageBit(int strip, int bit); + void clearGfxUsageBit(int strip, int bit); + bool testGfxUsageBit(int strip, int bit); + bool testGfxAnyUsageBits(int strip); + bool testGfxOtherUsageBits(int strip, int bit); + /* Scumm Vars */ byte VAR_KEYPRESS; byte VAR_EGO; |