From 9d82d30856ac7562a9d4aeb21acfa748aa0d17fe Mon Sep 17 00:00:00 2001 From: DjWarmonger Date: Sun, 29 Aug 2010 10:13:56 +0000 Subject: [PATCH] Partial fix for #561 --- hch/CObjectHandler.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/hch/CObjectHandler.cpp b/hch/CObjectHandler.cpp index 32d1a44de..7b3f51c07 100644 --- a/hch/CObjectHandler.cpp +++ b/hch/CObjectHandler.cpp @@ -3511,7 +3511,12 @@ void CGTeleport::onHeroVisit( const CGHeroInstance * h ) const return; } if (ID == 111) - cb->moveHero (h->id,CGHeroInstance::convertPosition(cb->getObj(destinationid)->pos,true) + (h->pos - pos) - int3(1,0,0), true); + { + std::set tiles = cb->getObj(destinationid)->getBlockedPos(); + std::set::iterator it = tiles.begin(); + std::advance (it, rand() % tiles.size()); //picking random element of set is tiring + cb->moveHero (h->id, *it + int3(1,0,0), true); + } else cb->moveHero (h->id,CGHeroInstance::convertPosition(cb->getObj(destinationid)->pos,true) - getVisitableOffset(), true); }