1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-11-25 22:42:04 +02:00

Implemented support for showing amount of guards in banks

This commit is contained in:
Ivan Savenko
2023-07-19 13:17:50 +03:00
parent 7b06c41929
commit 7f1b982264
4 changed files with 28 additions and 0 deletions

View File

@@ -17,6 +17,7 @@
#include "../NetPacks.h"
#include "../CGeneralTextHandler.h"
#include "../CSoundBase.h"
#include "../GameSettings.h"
#include "../mapObjectConstructors/CObjectClassesHandler.h"
#include "../mapObjectConstructors/CBankInstanceConstructor.h"
#include "../IGameCallback.h"
@@ -131,6 +132,25 @@ void CBank::onHeroVisit(const CGHeroInstance * h) const
bd.text.appendLocalString(EMetaText::ADVOB_TXT, banktext);
if (banktext == 32)
bd.text.replaceRawString(getObjectName());
if (VLC->settings()->getBoolean(EGameSettings::BANKS_SHOW_GUARDS_COMPOSITION))
{
std::map<CreatureID, int> guardsAmounts;
for (auto const & guard : bc->guards)
guardsAmounts[guard.getType()->getId()] += guard.getCount();
for (auto const & guard : guardsAmounts)
{
Component comp;
comp.id = Component::EComponentType::CREATURE;
comp.subtype = guard.first.getNum();
comp.val = guard.second;
bd.components.push_back(comp);
}
}
cb->showBlockingDialog(&bd);
}