diff options
Diffstat (limited to 'engines/xeen/map.h')
-rw-r--r-- | engines/xeen/map.h | 35 |
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(); }; |