summaryrefslogtreecommitdiff
path: root/src/resources/map/map.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/resources/map/map.h')
-rw-r--r--src/resources/map/map.h495
1 files changed, 0 insertions, 495 deletions
diff --git a/src/resources/map/map.h b/src/resources/map/map.h
deleted file mode 100644
index dc05cb2ea..000000000
--- a/src/resources/map/map.h
+++ /dev/null
@@ -1,495 +0,0 @@
-/*
- * The ManaPlus Client
- * Copyright (C) 2004-2009 The Mana World Development Team
- * Copyright (C) 2009-2010 The Mana Developers
- * Copyright (C) 2011-2017 The ManaPlus Developers
- *
- * This file is part of The ManaPlus Client.
- *
- * This program is free software; you can redistribute it and/or 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
- * 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, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef RESOURCES_MAP_MAP_H
-#define RESOURCES_MAP_MAP_H
-
-#include "position.h"
-
-#include "being/actor.h"
-
-#include "enums/render/rendertype.h"
-
-#include "enums/resources/map/blocktype.h"
-#include "enums/resources/map/maplayerposition.h"
-#include "enums/resources/map/maptype.h"
-
-#include "listeners/configlistener.h"
-
-#include "utils/vector.h"
-
-#include "resources/memorycounter.h"
-
-#include "resources/map/properties.h"
-
-class AmbientLayer;
-class MapHeights;
-class MapItem;
-class MapLayer;
-class ObjectsLayer;
-class Resource;
-class SpecialLayer;
-class Tileset;
-class TileAnimation;
-class WalkLayer;
-
-struct MetaTile;
-
-typedef STD_VECTOR<Tileset*> Tilesets;
-typedef STD_VECTOR<MapLayer*> Layers;
-typedef Layers::const_iterator LayersCIter;
-
-typedef STD_VECTOR<AmbientLayer*> AmbientLayerVector;
-typedef AmbientLayerVector::const_iterator AmbientLayerVectorCIter;
-typedef AmbientLayerVector::iterator AmbientLayerVectorIter;
-
-/**
- * A tile map.
- */
-class Map final : public Properties,
- public ConfigListener,
- public MemoryCounter
-{
- public:
- /**
- * Constructor, taking map and tile size as parameters.
- */
- Map(const std::string &name,
- const int width,
- const int height,
- const int tileWidth,
- const int tileHeight);
-
- A_DELETE_COPY(Map)
-
- /**
- * Destructor.
- */
- ~Map();
-
- /**
- * Initialize ambient layers. Has to be called after all the properties
- * are set.
- */
- void initializeAmbientLayers() restrict2;
-
- /**
- * Updates animations. Called as needed.
- */
- void update(const int ticks = 1) restrict2;
-
- /**
- * Draws the map to the given graphics output. This method draws all
- * layers, actors and overlay effects.
- */
- void draw(Graphics *restrict const graphics,
- int scrollX,
- int scrollY) restrict2 A_NONNULL(2);
-
- /**
- * Visualizes collision layer for debugging
- */
- void drawCollision(Graphics *restrict const graphics,
- const int scrollX,
- const int scrollY,
- const MapTypeT drawFlags) const
- restrict2 A_NONNULL(2);
-
- /**
- * Adds a layer to this map. The map takes ownership of the layer.
- */
- void addLayer(MapLayer *const layer) restrict2 A_NONNULL(2);
-
- /**
- * Adds a tileset to this map. The map takes ownership of the tileset.
- */
- void addTileset(Tileset *const tileset) restrict2 A_NONNULL(2);
-
- /**
- * Finds the tile set that a tile with the given global id is part of.
- */
- const Tileset *getTilesetWithGid(const int gid) const
- restrict2 A_WARN_UNUSED;
-
- /**
- * Get tile reference.
- */
- const MetaTile *getMetaTile(const int x,
- const int y) const
- restrict2 A_WARN_UNUSED;
-
- void addBlockMask(const int x, const int y,
- const BlockTypeT type) restrict2;
-
- void setBlockMask(const int x, const int y,
- const BlockTypeT type) restrict2;
-
- /**
- * Gets walkability for a tile with a blocking bitmask. When called
- * without walkmask, only blocks against colliding tiles.
- */
- bool getWalk(const int x, const int y,
- const unsigned char blockWalkMask) const
- restrict2 A_WARN_UNUSED;
-
- void setWalk(const int x, const int y) restrict2;
-
- unsigned char getBlockMask(const int x,
- const int y) const restrict2;
-
- /**
- * Returns the width of this map in tiles.
- */
- int getWidth() const restrict2 noexcept2 A_WARN_UNUSED
- { return mWidth; }
-
- /**
- * Returns the height of this map in tiles.
- */
- int getHeight() const restrict2 noexcept2 A_WARN_UNUSED
- { return mHeight; }
-
- /**
- * Returns the tile width of this map.
- */
- int getTileWidth() const restrict2 noexcept2 A_WARN_UNUSED
- { return mTileWidth; }
-
- /**
- * Returns the tile height used by this map.
- */
- int getTileHeight() const restrict2 noexcept2 A_WARN_UNUSED
- { return mTileHeight; }
-
- const std::string getMusicFile() const restrict2 A_WARN_UNUSED;
-
- void setMusicFile(const std::string &restrict file) restrict2;
-
- const std::string getName() const restrict2 A_WARN_UNUSED;
-
- /**
- * Gives the map id based on filepath (ex: 009-1)
- */
- const std::string getFilename() const restrict2 A_WARN_UNUSED;
-
- const std::string getGatName() const restrict2 A_WARN_UNUSED;
-
- /**
- * Find a path from one location to the next.
- */
- Path findPath(const int startX, const int startY,
- const int destX, const int destY,
- const unsigned char blockWalkmask,
- const int maxCost = 20) restrict2 A_WARN_UNUSED;
-
- /**
- * Adds a particle effect
- */
- void addParticleEffect(const std::string &restrict effectFile,
- const int x,
- const int y,
- const int w = 0,
- const int h = 0) restrict2;
-
- /**
- * Initializes all added particle effects
- */
- void initializeParticleEffects() const restrict2;
-
- /**
- * Adds a tile animation to the map
- */
- void addAnimation(const int gid,
- TileAnimation *restrict const animation) restrict2
- A_NONNULL(3);
-
- void setDrawLayersFlags(const MapTypeT &restrict n) restrict2;
-
- MapTypeT getDrawLayersFlags() const restrict2 A_WARN_UNUSED
- { return mDrawLayersFlags; }
-
- void addExtraLayer() restrict2;
-
- void saveExtraLayer() const restrict2;
-
- SpecialLayer *getTempLayer() const restrict2 noexcept2 A_WARN_UNUSED
- { return mTempLayer; }
-
- SpecialLayer *getSpecialLayer() const restrict2 noexcept2 A_WARN_UNUSED
- { return mSpecialLayer; }
-
- void setHasWarps(const bool n) restrict2 noexcept2
- { mHasWarps = n; }
-
- bool getHasWarps() const restrict2 noexcept2 A_WARN_UNUSED
- { return mHasWarps; }
-
- std::string getUserMapDirectory() const restrict2 A_WARN_UNUSED;
-
- void addPortal(const std::string &restrict name,
- const int type,
- const int x, const int y,
- const int dx, const int dy) restrict2;
-
- void addRange(const std::string &restrict name,
- const int type,
- const int x, const int y,
- const int dx, const int dy) restrict2;
-
- void addPortalTile(const std::string &restrict name,
- const int type,
- const int x, const int y) restrict2;
-
- void updatePortalTile(const std::string &restrict name,
- const int type,
- const int x, const int y,
- const bool addNew = true) restrict2;
-
- const STD_VECTOR<MapItem*> &getPortals() const restrict2 noexcept2
- A_WARN_UNUSED
- { return mMapPortals; }
-
- /**
- * Gets the tile animation for a specific gid
- */
- const TileAnimation *getAnimationForGid(const int gid)
- const restrict2 A_WARN_UNUSED;
-
- void optionChanged(const std::string &restrict value)
- restrict2 override final;
-
- MapItem *findPortalXY(const int x,
- const int y) const restrict2 A_WARN_UNUSED;
-
- int getActorsCount() const restrict2 A_WARN_UNUSED
- { return CAST_S32(mActors.size()); }
-
- void setPvpMode(const int mode) restrict2;
-
- int getPvpMode() const restrict2 noexcept2 A_WARN_UNUSED
- { return mPvp; }
-
- const ObjectsLayer* getObjectsLayer() const restrict2 noexcept2
- A_WARN_UNUSED
- { return mObjects; }
-
- std::string getObjectData(const unsigned x,
- const unsigned y,
- const int type) const
- restrict2 A_WARN_UNUSED;
-
- void indexTilesets() restrict2;
-
- void clearIndexedTilesets() restrict2;
-
- void setActorsFix(const int x, const int y) restrict2;
-
- int getVersion() const restrict2 noexcept2 A_WARN_UNUSED
- { return mVersion; }
-
- void setVersion(const int n) restrict2 noexcept2
- { mVersion = n; }
-
- void reduce() restrict2;
-
- void redrawMap() restrict2 noexcept2
- { mRedrawMap = true; }
-
- bool empty() const restrict2 A_WARN_UNUSED
- { return mLayers.empty(); }
-
- void setCustom(const bool b) restrict2 noexcept2
- { mCustom = b; }
-
- bool isCustom() const restrict2 noexcept2 A_WARN_UNUSED
- { return mCustom; }
-
- const std::map<int, TileAnimation*> &getTileAnimations() const
- restrict2 noexcept2 A_WARN_UNUSED
- { return mTileAnimations; }
-
- void setAtlas(Resource *restrict const atlas) restrict2 noexcept2
- { mAtlas = atlas; }
-
- const MetaTile *getMetaTiles() const restrict2 noexcept2
- { return mMetaTiles; }
-
- const WalkLayer *getWalkLayer() const restrict2 noexcept2
- { return mWalkLayer; }
-
- void setWalkLayer(WalkLayer *restrict const layer) restrict2 noexcept2
- { mWalkLayer = layer; }
-
- void addHeights(const MapHeights *restrict const heights) restrict2
- A_NONNULL(2);
-
- uint8_t getHeightOffset(const int x, const int y) const restrict2;
-
- void setMask(const int mask) restrict2;
-
- void updateDrawLayersList() restrict2;
-
- bool isHeightsPresent() const restrict2 noexcept2
- { return mHeights != nullptr; }
-
- void updateConditionLayers() restrict2;
-
- void preCacheLayers() restrict2;
-
- int calcMemoryLocal() const override final;
-
- int calcMemoryChilds(const int level) const override final;
-
- std::string getCounterName() const override final
- { return mName; }
-
- bool haveAtlas() const
- { return mAtlas != nullptr; }
-
- protected:
- friend class Actor;
- friend class Minimap;
-
- /**
- * Adds an actor to the map.
- */
- Actors::iterator addActor(Actor *const actor) restrict2 A_NONNULL(2);
-
- /**
- * Removes an actor from the map.
- */
- void removeActor(const Actors::iterator &restrict iterator) restrict2;
-
- private:
- /**
- * Updates scrolling of ambient layers. Has to be called each game tick.
- */
- void updateAmbientLayers(const float scrollX,
- const float scrollY) restrict2;
-
- /**
- * Draws the foreground or background layers to the given graphics output.
- */
- void drawAmbientLayers(Graphics *restrict const graphics,
- const MapLayerPositionT type,
- const int detail) const restrict2 A_NONNULL(2);
-
- /**
- * Tells whether the given coordinates fall within the map boundaries.
- */
- bool contains(const int x,
- const int y) const restrict2 A_WARN_UNUSED;
-
- const int mWidth;
- const int mHeight;
- const int mTileWidth;
- const int mTileHeight;
- int mMaxTileHeight;
- MetaTile *const mMetaTiles;
- WalkLayer *mWalkLayer;
- Layers mLayers;
- Layers mDrawUnderLayers;
- Layers mDrawOverLayers;
- Tilesets mTilesets;
- Actors mActors;
- bool mHasWarps;
-
- // draw flags
- MapTypeT mDrawLayersFlags;
-
- // Pathfinding members
- unsigned int mOnClosedList;
- unsigned int mOnOpenList;
-
- // Overlay data
- AmbientLayerVector mBackgrounds;
- AmbientLayerVector mForegrounds;
- float mLastAScrollX;
- float mLastAScrollY;
-
- // Particle effect data
- struct ParticleEffectData final
- {
- ParticleEffectData(const std::string &restrict file0,
- const int x0,
- const int y0,
- const int w0,
- const int h0) noexcept2 :
- file(file0),
- x(x0),
- y(y0),
- w(w0),
- h(h0)
- {
- }
-
- A_DEFAULT_COPY(ParticleEffectData)
-
- const2 std::string file;
- const2 int x;
- const2 int y;
- const2 int w;
- const2 int h;
- };
- STD_VECTOR<ParticleEffectData> mParticleEffects;
-
- STD_VECTOR<MapItem*> mMapPortals;
-
- std::map<int, TileAnimation*> mTileAnimations;
-
- std::string mName;
- int mOverlayDetail;
- float mOpacity;
- const RenderType mOpenGL;
- int mPvp;
- bool mTilesetsIndexed;
- Tileset** mIndexedTilesets;
- int mIndexedTilesetsSize;
- int mActorFixX;
- int mActorFixY;
- int mVersion;
-
- SpecialLayer *mSpecialLayer;
- SpecialLayer *mTempLayer;
- ObjectsLayer *mObjects;
- MapLayer *mFringeLayer;
-
- int mLastX;
- int mLastY;
- int mLastScrollX;
- int mLastScrollY;
-
- int mDrawX;
- int mDrawY;
- int mDrawScrollX;
- int mDrawScrollY;
- int mMask;
- Resource *mAtlas;
- const MapHeights *mHeights;
- bool mRedrawMap;
- bool mBeingOpacity;
- bool mCachedDraw;
- bool mCustom;
- bool mDrawOnlyFringe;
-};
-
-#endif // RESOURCES_MAP_MAP_H