| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 | /* * CNonConstInfoCallback.cpp, 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 * */#include "StdInc.h"#include "CNonConstInfoCallback.h"#include "networkPacks/ArtifactLocation.h"#include "mapObjects/CGHeroInstance.h"#include "mapObjects/IMarket.h"#include "gameState/CGameState.h"#include "mapping/CMap.h"VCMI_LIB_NAMESPACE_BEGINTerrainTile * CNonConstInfoCallback::getTile(const int3 & pos){	if(!gameState().getMap().isInTheMap(pos))		return nullptr;	return &gameState().getMap().getTile(pos);}CGHeroInstance * CNonConstInfoCallback::getHero(const ObjectInstanceID & objid){	return const_cast<CGHeroInstance*>(CGameInfoCallback::getHero(objid));}CGTownInstance * CNonConstInfoCallback::getTown(const ObjectInstanceID & objid){	return const_cast<CGTownInstance*>(CGameInfoCallback::getTown(objid));}TeamState * CNonConstInfoCallback::getTeam(const TeamID & teamID){	return const_cast<TeamState*>(CGameInfoCallback::getTeam(teamID));}TeamState * CNonConstInfoCallback::getPlayerTeam(const PlayerColor & color){	return const_cast<TeamState*>(CGameInfoCallback::getPlayerTeam(color));}PlayerState * CNonConstInfoCallback::getPlayerState(const PlayerColor & color, bool verbose){	return const_cast<PlayerState*>(CGameInfoCallback::getPlayerState(color, verbose));}CArtifactInstance * CNonConstInfoCallback::getArtInstance(const ArtifactInstanceID & aid){	return gameState().getMap().getArtifactInstance(aid);}CGObjectInstance * CNonConstInfoCallback::getObjInstance(const ObjectInstanceID & oid){	return gameState().getMap().getObject(oid);}CArmedInstance * CNonConstInfoCallback::getArmyInstance(const ObjectInstanceID & oid){	return dynamic_cast<CArmedInstance *>(getObjInstance(oid));}CArtifactSet * CNonConstInfoCallback::getArtSet(const ArtifactLocation & loc){	if(auto hero = getHero(loc.artHolder))	{		if(loc.creature.has_value())		{			if(loc.creature.value() == SlotID::COMMANDER_SLOT_PLACEHOLDER)				return hero->getCommander();			else				return hero->getStackPtr(loc.creature.value());		}		else		{			return hero;		}	}	else if(auto market = getMarket(loc.artHolder))	{		if(auto artSet = market->getArtifactsStorage())			return artSet;	}	else if(auto army = getArmyInstance(loc.artHolder))	{		return army->getStackPtr(loc.creature.value());	}	return nullptr;}VCMI_LIB_NAMESPACE_END
 |