|
@@ -958,7 +958,7 @@ void ApplyClientNetPackVisitor::visitOpenWindow(OpenWindow & pack)
|
|
case EOpenWindowMode::SHIPYARD_WINDOW:
|
|
case EOpenWindowMode::SHIPYARD_WINDOW:
|
|
{
|
|
{
|
|
assert(pack.queryID == QueryID::NONE);
|
|
assert(pack.queryID == QueryID::NONE);
|
|
- const IShipyard *sy = IShipyard::castFrom(cl.getObj(ObjectInstanceID(pack.object)));
|
|
|
|
|
|
+ const auto * sy = dynamic_cast<const IShipyard *>(cl.getObj(ObjectInstanceID(pack.object)));
|
|
callInterfaceIfPresent(cl, sy->getObject()->getOwner(), &IGameEventsReceiver::showShipyardDialog, sy);
|
|
callInterfaceIfPresent(cl, sy->getObject()->getOwner(), &IGameEventsReceiver::showShipyardDialog, sy);
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
@@ -974,7 +974,7 @@ void ApplyClientNetPackVisitor::visitOpenWindow(OpenWindow & pack)
|
|
case EOpenWindowMode::UNIVERSITY_WINDOW:
|
|
case EOpenWindowMode::UNIVERSITY_WINDOW:
|
|
{
|
|
{
|
|
//displays University window (when hero enters University on adventure map)
|
|
//displays University window (when hero enters University on adventure map)
|
|
- const IMarket *market = IMarket::castFrom(cl.getObj(ObjectInstanceID(pack.object)));
|
|
|
|
|
|
+ const auto * market = dynamic_cast<const IMarket*>(cl.getObj(ObjectInstanceID(pack.object)));
|
|
const CGHeroInstance *hero = cl.getHero(ObjectInstanceID(pack.visitor));
|
|
const CGHeroInstance *hero = cl.getHero(ObjectInstanceID(pack.visitor));
|
|
callInterfaceIfPresent(cl, hero->tempOwner, &IGameEventsReceiver::showUniversityWindow, market, hero, pack.queryID);
|
|
callInterfaceIfPresent(cl, hero->tempOwner, &IGameEventsReceiver::showUniversityWindow, market, hero, pack.queryID);
|
|
}
|
|
}
|
|
@@ -984,7 +984,7 @@ void ApplyClientNetPackVisitor::visitOpenWindow(OpenWindow & pack)
|
|
//displays Thieves' Guild window (when hero enters Den of Thieves)
|
|
//displays Thieves' Guild window (when hero enters Den of Thieves)
|
|
const CGObjectInstance *obj = cl.getObj(ObjectInstanceID(pack.object));
|
|
const CGObjectInstance *obj = cl.getObj(ObjectInstanceID(pack.object));
|
|
const CGHeroInstance *hero = cl.getHero(ObjectInstanceID(pack.visitor));
|
|
const CGHeroInstance *hero = cl.getHero(ObjectInstanceID(pack.visitor));
|
|
- const IMarket *market = IMarket::castFrom(obj);
|
|
|
|
|
|
+ const auto *market = dynamic_cast<const IMarket*>(obj);
|
|
callInterfaceIfPresent(cl, cl.getTile(obj->visitablePos())->visitableObjects.back()->tempOwner, &IGameEventsReceiver::showMarketWindow, market, hero, pack.queryID);
|
|
callInterfaceIfPresent(cl, cl.getTile(obj->visitablePos())->visitableObjects.back()->tempOwner, &IGameEventsReceiver::showMarketWindow, market, hero, pack.queryID);
|
|
}
|
|
}
|
|
break;
|
|
break;
|