diff options
Diffstat (limited to 'engines/mads/screen.h')
-rw-r--r-- | engines/mads/screen.h | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/engines/mads/screen.h b/engines/mads/screen.h index 9d01ca82e3..d910e88633 100644 --- a/engines/mads/screen.h +++ b/engines/mads/screen.h @@ -8,12 +8,12 @@ * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. - + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - + * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. @@ -33,8 +33,8 @@ namespace MADS { #define MADS_SCREEN_WIDTH 320 #define MADS_SCREEN_HEIGHT 200 -enum Layer { - LAYER_GUI = 19 +enum ScreenMode { + SCREENMODE_VGA = 19 }; enum ScreenTransition { @@ -47,7 +47,7 @@ enum ScreenTransition { kTransitionCircleIn3, kTransitionCircleIn4, kVertTransition1, kVertTransition2, kVertTransition3, kVertTransition4, kVertTransition5, kVertTransition6, - kVertTransition7, kCenterVertTransition + kVertTransition7, kNullPaletteCopy }; enum InputMode { @@ -56,6 +56,11 @@ enum InputMode { kInputLimitedSentences = 2 // Use only scene hotspots }; +enum ThroughBlack { + THROUGH_BLACK1 = 1, + THROUGH_BLACK2 = 2 +}; + class SpriteSlot; class TextDisplay; class UISlot; @@ -130,7 +135,7 @@ public: Common::Rect _bounds; ScrCategory _category; int _descId; - int _layer; + int _mode; ScreenObject(); }; @@ -162,7 +167,7 @@ public: /** * Add a new item to the list */ - void add(const Common::Rect &bounds, Layer layer, ScrCategory category, int descId); + ScreenObject *add(const Common::Rect &bounds, ScreenMode mode, ScrCategory category, int descId); /** * Check objects on the screen @@ -207,6 +212,14 @@ private: uint16 _random; byte *_surfacePixels; Common::Rect _clipBounds; + + void panTransition(MSurface &newScreen, byte *palData, int entrySide, + const Common::Point &srcPos, const Common::Point &destPos, + ThroughBlack throughBlack, bool setPalette, int numTicks); + + void swapForeground(byte newPalette[PALETTE_SIZE], byte *paletteMap); + + void swapPalette(const byte palData[PALETTE_SIZE], byte swapTable[PALETTE_COUNT], bool foreground); public: int _shakeCountdown; public: |