| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 | 
							- /*
 
-  * mapHandler.h, part of VCMI engine
 
-  *
 
-  * Authors: listed in file AUTHORS in main folder
 
-  *
 
-  * License: GNU General Public License v2.0 or later
 
-  * Full text of license available in license.txt file, in main folder
 
-  *
 
-  */
 
- #pragma once
 
- #include "../gui/CIntObject.h"
 
- #include "../../lib/Rect.h"
 
- #include "../../lib/int3.h"
 
- #include "../../lib/spells/ViewSpellInt.h"
 
- #ifdef IN
 
- #	undef IN
 
- #endif
 
- #ifdef OUT
 
- #	undef OUT
 
- #endif
 
- VCMI_LIB_NAMESPACE_BEGIN
 
- class CGObjectInstance;
 
- class CGHeroInstance;
 
- class CMap;
 
- VCMI_LIB_NAMESPACE_END
 
- class IMapObjectObserver;
 
- class CMapHandler
 
- {
 
- 	const CMap * map;
 
- 	std::vector<IMapObjectObserver *> observers;
 
- public:
 
- 	explicit CMapHandler(const CMap * map);
 
- 	const CMap * getMap();
 
- 	/// returns true if tile is within map bounds
 
- 	bool isInMap(const int3 & tile);
 
- 	/// see MapObjectObserver interface
 
- 	void onObjectFadeIn(const CGObjectInstance * obj, const PlayerColor & initiator);
 
- 	void onObjectFadeOut(const CGObjectInstance * obj, const PlayerColor & initiator);
 
- 	void onObjectInstantAdd(const CGObjectInstance * obj, const PlayerColor & initiator);
 
- 	void onObjectInstantRemove(const CGObjectInstance * obj, const PlayerColor & initiator);
 
- 	void onBeforeHeroTeleported(const CGHeroInstance * obj, const int3 & from, const int3 & dest);
 
- 	void onAfterHeroTeleported(const CGHeroInstance * obj, const int3 & from, const int3 & dest);
 
- 	void onBeforeHeroEmbark(const CGHeroInstance * obj, const int3 & from, const int3 & dest);
 
- 	void onAfterHeroEmbark(const CGHeroInstance * obj, const int3 & from, const int3 & dest);
 
- 	void onBeforeHeroDisembark(const CGHeroInstance * obj, const int3 & from, const int3 & dest);
 
- 	void onAfterHeroDisembark(const CGHeroInstance * obj, const int3 & from, const int3 & dest);
 
- 	void onHeroMoved(const CGHeroInstance * obj, const int3 & from, const int3 & dest);
 
- 	/// Add object to receive notifications on any changes in visible map state
 
- 	void addMapObserver(IMapObjectObserver * observer);
 
- 	void removeMapObserver(IMapObjectObserver * observer);
 
- 	/// returns string description for terrain interaction
 
- 	std::string getTerrainDescr(const int3 & pos, bool rightClick) const; //TODO: possible to get info about invisible tiles from client without serverside validation
 
- 	/// determines if the map is ready to handle new hero movement (not available during fading animations)
 
- 	bool hasOngoingAnimations();
 
- 	/// blocking wait until all ongoing animatins are over
 
- 	void waitForOngoingAnimations();
 
- 	void endNetwork();
 
- 	static bool compareObjectBlitOrder(const CGObjectInstance * a, const CGObjectInstance * b);
 
- };
 
 
  |