aboutsummaryrefslogtreecommitdiff
path: root/engines/xeen/map.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/xeen/map.h')
-rw-r--r--engines/xeen/map.h35
1 files changed, 34 insertions, 1 deletions
diff --git a/engines/xeen/map.h b/engines/xeen/map.h
index fe626858c8..71af89e305 100644
--- a/engines/xeen/map.h
+++ b/engines/xeen/map.h
@@ -265,7 +265,7 @@ struct MazeMonster {
bool _isAttacking;
DamageType _damageType;
int _field9;
- int _fieldA;
+ int _postAttackDelay;
int _hp;
int _effect1, _effect2;
int _effect3;
@@ -425,6 +425,12 @@ private:
* Save the map data
*/
void saveMap();
+
+ /**
+ * Finds a map in the array that contains the currently active and the surrounding
+ * maps in the eight cardinal directions
+ */
+ void findMap(int mapId = -1);
public:
Common::String _mazeName;
bool _isOutdoors;
@@ -453,14 +459,23 @@ public:
public:
Map(XeenEngine *vm);
+ /**
+ * Loads a specified map
+ */
void load(int mapId);
int mazeLookup(const Common::Point &pt, int layerShift, int wallMask = 0xf);
void cellFlagLookup(const Common::Point &pt);
+ /**
+ * Sets the surface flags for a given position
+ */
void setCellSurfaceFlags(const Common::Point &pt, int bits);
+ /**
+ * Sets the value for the wall in a given direction from a given point
+ */
void setWall(const Common::Point &pt, Direction dir, int v);
/**
@@ -468,14 +483,32 @@ public:
*/
void saveMaze();
+ /**
+ * Gets the data for a map position at one of the relative indexes
+ * surrounding the current position
+ */
int getCell(int idx);
+ /**
+ * Returns the data for the primary active map
+ */
MazeData &mazeData() { return _mazeData[0]; }
+ /**
+ * Returns the data for the currently indexed map
+ */
MazeData &mazeDataCurrent() { return _mazeData[_mazeDataIndex]; }
+ /**
+ * Loads the sprites needed for rendering the skyline
+ */
void loadSky();
+ /**
+ * Tests the current position, and if it's moved beyond the valid (0,0) to (15,15)
+ * range for a map, loads in the correct surrounding map, and adjusts the
+ * position to the relative position on the new map
+ */
void getNewMaze();
};