aboutsummaryrefslogtreecommitdiff
path: root/engines/sherlock/map.h
diff options
context:
space:
mode:
authorPaul Gilbert2015-06-08 08:31:51 -0400
committerPaul Gilbert2015-06-08 08:31:51 -0400
commitf5a1b626b710c368e79ab27c13cf2be4ccdcb30f (patch)
treed9c49fe86f3c9d32430f9ca3da512cf9613ce63e /engines/sherlock/map.h
parentae64cca8f01f4e56873ac6afa58610366ea8238a (diff)
downloadscummvm-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.h128
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