From 99a3a58cbb99d9329335ca0e0a6d8b7ac65ee64c Mon Sep 17 00:00:00 2001 From: Vadim Markovtsev Date: Sat, 29 Oct 2016 17:00:42 +0200 Subject: [PATCH] Add commander resurrection info window upon entering town --- lib/mapObjects/CGTownInstance.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/mapObjects/CGTownInstance.cpp b/lib/mapObjects/CGTownInstance.cpp index 735d28881..88bb14dfc 100644 --- a/lib/mapObjects/CGTownInstance.cpp +++ b/lib/mapObjects/CGTownInstance.cpp @@ -562,15 +562,25 @@ void CGTownInstance::onHeroVisit(const CGHeroInstance * h) const } else if(h->visitablePos() == visitablePos()) { - if (h->commander && !h->commander->alive) //rise commander. TODO: interactive script + bool commander_recover = h->commander && !h->commander->alive; + if (commander_recover) // rise commander from dead { SetCommanderProperty scp; scp.heroid = h->id; scp.which = SetCommanderProperty::ALIVE; scp.amount = 1; - cb->sendAndApply (&scp); + cb->sendAndApply(&scp); } cb->heroVisitCastle(this, h); + // TODO(vmarkovtsev): implement payment for rising the commander + if (commander_recover) // info window about commander + { + InfoWindow iw; + iw.player = h->tempOwner; + iw.text << h->commander->getName(); + iw.components.push_back(Component(*h->commander)); + cb->showInfoDialog(&iw); + } } else {