diff options
author | Paul Gilbert | 2015-06-08 08:31:51 -0400 |
---|---|---|
committer | Paul Gilbert | 2015-06-08 08:31:51 -0400 |
commit | f5a1b626b710c368e79ab27c13cf2be4ccdcb30f (patch) | |
tree | d9c49fe86f3c9d32430f9ca3da512cf9613ce63e /engines/sherlock/map.h | |
parent | ae64cca8f01f4e56873ac6afa58610366ea8238a (diff) | |
download | scummvm-rg350-f5a1b626b710c368e79ab27c13cf2be4ccdcb30f.tar.gz scummvm-rg350-f5a1b626b710c368e79ab27c13cf2be4ccdcb30f.tar.bz2 scummvm-rg350-f5a1b626b710c368e79ab27c13cf2be4ccdcb30f.zip |
SHERLOCK: Move Scalpel map code to ScalpelMap
Diffstat (limited to 'engines/sherlock/map.h')
-rw-r--r-- | engines/sherlock/map.h | 128 |
1 files changed, 3 insertions, 125 deletions
diff --git a/engines/sherlock/map.h b/engines/sherlock/map.h index d47edb299a..2569e18187 100644 --- a/engines/sherlock/map.h +++ b/engines/sherlock/map.h @@ -23,12 +23,6 @@ #ifndef SHERLOCK_MAP_H #define SHERLOCK_MAP_H -#include "common/scummsys.h" -#include "common/array.h" -#include "common/rect.h" -#include "common/str.h" -#include "common/str-array.h" -#include "sherlock/surface.h" #include "sherlock/objects.h" #include "sherlock/saveload.h" @@ -36,140 +30,24 @@ namespace Sherlock { class SherlockEngine; -struct MapEntry : Common::Point { - int _translate; - - MapEntry() : Common::Point(), _translate(-1) {} - - MapEntry(int posX, int posY, int translate) : Common::Point(posX, posY), _translate(translate) {} -}; - -class MapPaths { -private: - int _numLocations; - Common::Array< Common::Array<byte> > _paths; - -public: - MapPaths(); - - /** - * Load the data for the paths between locations on the map - */ - void load(int numLocations, Common::SeekableReadStream &s); - - /** - * Get the path between two locations on the map - */ - const byte *getPath(int srcLocation, int destLocation); -}; - class Map { protected: SherlockEngine *_vm; - Common::Array<MapEntry> _points; // Map locations for each scene - Common::StringArray _locationNames; - MapPaths _paths; - Common::Array<Common::Point> _pathPoints; - Common::Point _savedPos; - Common::Point _savedSize; - Surface _topLine; - ImageFile *_mapCursors; - ImageFile *_shapes; - ImageFile *_iconShapes; - WalkSequences _walkSequences; - Point32 _lDrawnPos; - int _point; - bool _placesShown; - int _cursorIndex; - bool _drawMap; - Surface _iconSave; -protected: - Map(SherlockEngine *vm); - - /** - * Load data needed for the map - */ - void loadData(); - - /** - * Load and initialize all the sprites that are needed for the map display - */ - void setupSprites(); - - /** - * Free the sprites and data used by the map - */ - void freeSprites(); - - /** - * Draws an icon for every place that's currently known - */ - void showPlaces(); - - /** - * Makes a copy of the top rows of the screen that are used to display location names - */ - void saveTopLine(); - /** - * Erases anything shown in the top line by restoring the previously saved original map background - */ - void eraseTopLine(); - - /** - * Prints the name of the specified icon - */ - void showPlaceName(int idx, bool highlighted); - - /** - * Update all on-screen sprites to account for any scrolling of the map - */ - void updateMap(bool flushScreen); - - /** - * Handle moving icon for player from their previous location on the map to a destination location - */ - void walkTheStreets(); - - /** - * Save the area under the player's icon - */ - void saveIcon(ImageFrame *src, const Common::Point &pt); - - /** - * Restore the area under the player's icon - */ - void restoreIcon(); - - /** - * Handles highlighting map icons, showing their names - */ - void highlightIcon(const Common::Point &pt); + Map(SherlockEngine *vm); public: - bool _active; Point32 _overPos; Point32 _bigPos; int _charPoint, _oldCharPoint; + bool _active; bool _frameChangeFlag; public: static Map *init(SherlockEngine *vm); - const MapEntry &operator[](int idx) { return _points[idx]; } - - /** - * Loads the list of points for locations on the map for each scene - */ - void loadPoints(int count, const int *xList, const int *yList, const int *transList); - - /** - * Load the sequence data for player icon animations - */ - void loadSequences(int count, const byte *seq); - /** * Show the map */ - int show(); + virtual int show() = 0; /** * Synchronize the data for a savegame |