1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-09-16 09:26:28 +02:00

Merge pull request #93 from ArseniyShestakov/feature/pathfindingTeleports

Okay let's do this!
This commit is contained in:
DjWarmonger
2015-03-10 09:04:25 +01:00
36 changed files with 936 additions and 243 deletions

View File

@@ -1665,7 +1665,7 @@ void CGameHandler::setAmount(ObjectInstanceID objid, ui32 val)
sendAndApply(&sop);
}
bool CGameHandler::moveHero( ObjectInstanceID hid, int3 dst, ui8 teleporting, PlayerColor asker /*= 255*/ )
bool CGameHandler::moveHero( ObjectInstanceID hid, int3 dst, ui8 teleporting, bool transit, PlayerColor asker /*= 255*/ )
{
const CGHeroInstance *h = getHero(hid);
@@ -1765,7 +1765,8 @@ bool CGameHandler::moveHero( ObjectInstanceID hid, int3 dst, ui8 teleporting, Pl
}
else if(visitDest == VISIT_DEST)
{
visitObjectOnTile(t, h);
if(!transit || !CGTeleport::isTeleport(t.topVisitableObj()))
visitObjectOnTile(t, h);
}
queries.popIfTop(moveQuery);
@@ -1900,6 +1901,14 @@ void CGameHandler::showBlockingDialog( BlockingDialog *iw )
sendToAllClients(iw);
}
void CGameHandler::showTeleportDialog( TeleportDialog *iw )
{
auto dialogQuery = make_shared<CTeleportDialogQuery>(*iw);
queries.addQuery(dialogQuery);
iw->queryID = dialogQuery->queryID;
sendToAllClients(iw);
}
void CGameHandler::giveResource(PlayerColor player, Res::ERes which, int val) //TODO: cap according to Bersy's suggestion
{
if(!val) return; //don't waste time on empty call