diff options
author | Travis Howell | 2007-05-09 15:36:05 +0000 |
---|---|---|
committer | Travis Howell | 2007-05-09 15:36:05 +0000 |
commit | 20bf83a2ce1c19e81cd486b4af3b7b73bd25e510 (patch) | |
tree | 058454d1570cad4d4eeb6271eee27705d0578c6f /engines/agos/agos.h | |
parent | 85082dc8a00b91689f2ab11494e9bdc1bed71578 (diff) | |
download | scummvm-rg350-20bf83a2ce1c19e81cd486b4af3b7b73bd25e510.tar.gz scummvm-rg350-20bf83a2ce1c19e81cd486b4af3b7b73bd25e510.tar.bz2 scummvm-rg350-20bf83a2ce1c19e81cd486b4af3b7b73bd25e510.zip |
Imrproved support for Elvira 1/2 and Waxworks.
svn-id: r26792
Diffstat (limited to 'engines/agos/agos.h')
-rw-r--r-- | engines/agos/agos.h | 46 |
1 files changed, 42 insertions, 4 deletions
diff --git a/engines/agos/agos.h b/engines/agos/agos.h index cf1bc8e7b4..af28cd2729 100644 --- a/engines/agos/agos.h +++ b/engines/agos/agos.h @@ -83,9 +83,9 @@ struct VgaPointersEntry { struct VgaSprite { uint16 id; - uint16 image; + int16 image; uint16 palette; - uint16 x, y; /* actually signed numbers */ + int16 x, y; uint16 flags; uint16 priority; uint16 windowNum, zoneNum; @@ -108,6 +108,17 @@ struct VgaTimerEntry { VgaTimerEntry() { memset(this, 0, sizeof(*this)); } }; +struct AnimTable { + const byte *srcPtr; + int16 x; + int16 y; + uint16 width; + uint16 height; + uint16 window; + uint16 id; + AnimTable() { memset(this, 0, sizeof(*this)); } +}; + enum SIMONGameType { GType_ELVIRA1 = 0, GType_ELVIRA2 = 1, @@ -262,6 +273,9 @@ protected: bool _fastMode; bool _useBackGround; + bool _oldDrawMethod; + bool _backFlag; + uint16 _debugMode; uint16 _language; bool _copyProtection; @@ -361,6 +375,7 @@ protected: byte _leftButtonDown; byte _leftButton, _leftButtonCount, _leftButtonOld; byte _rightButtonDown; + bool _clickOnly; bool _noRightClick; Item *_dummyItem1; @@ -450,10 +465,11 @@ protected: HitArea _hitAreas[250]; + AnimTable _screenAnim1[60]; VgaPointersEntry _vgaBufferPointers[450]; VgaSprite _vgaSprites[200]; - VgaSleepStruct _waitSyncTable[60]; VgaSleepStruct _waitEndTable[60]; + VgaSleepStruct _waitSyncTable[60]; const uint16 *_pathFindArray[100]; @@ -472,6 +488,15 @@ protected: byte _videoBuf1[32000]; uint16 _videoWindows[128]; + uint16 _window3Flag; + uint16 _window4Flag; + uint16 _window6Flag; + byte *_window4BackScn; + byte *_window6BackScn; + + uint16 _moveXMin, _moveYMin; + uint16 _moveXMax, _moveYMax; + VgaTimerEntry _vgaTimerList[205]; WindowBlock *_windowList; @@ -1025,6 +1050,10 @@ protected: void drawImage_init(int16 image, uint16 palette, uint16 x, uint16 y, uint16 flags); virtual void drawImage(VC10_state *state); + void drawBackGroundImage(VC10_state *state); + void drawVertImage(VC10_state *state); + + void setMoveRect(uint16 x, uint16 y, uint16 width, uint16 height); void horizontalScroll(VC10_state *state); void verticalScroll(VC10_state *state); @@ -1041,7 +1070,9 @@ protected: void checkScrollY(int16 y, int16 ypos); void centreScroll(); - void clearWindow(uint windowNum, uint color); + void clearVideoWindow(uint windowNum, uint color); + void clearVideoBackGround(uint windowNum, uint color); + void setPaletteSlot(uint srcOffs, uint dstOffs); void checkWaitEndTable(); @@ -1100,6 +1131,11 @@ protected: void animateSpritesDebug(); void animateSpritesByY(); + void dirtyClips(); + void dirtyBackGround(); + void restoreBackGround(); + void saveBackGround(VgaSprite *vsp); + void clearSurfaces(uint num_lines); void updateScreen(); @@ -1416,6 +1452,8 @@ protected: const OpcodeEntrySimon1 *_opcodesSimon1; virtual void drawImage(VC10_state *state); + void drawMaskedImage(VC10_state *state); + void draw32ColorImage(VC10_state *state); virtual void drawIcon(WindowBlock *window, uint icon, uint x, uint y); |