|  | @@ -22,14 +22,17 @@
 | 
	
		
			
				|  |  |  #include "../widgets/TextControls.h"
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #include "../../lib/CGeneralTextHandler.h"
 | 
	
		
			
				|  |  | +#include "../../lib/CCreatureHandler.h"
 | 
	
		
			
				|  |  |  #include "../../lib/CHeroHandler.h"
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  CHeroOverview::CHeroOverview(const HeroTypeID & h)
 | 
	
		
			
				|  |  | -	: CWindowObject(BORDERED | RCLICK_POPUP), /*hero { h },*/ heroIndex { h.getNum() }
 | 
	
		
			
				|  |  | +	: CWindowObject(BORDERED | RCLICK_POPUP), hero { h }
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |  	OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    genHeroWindow();
 | 
	
		
			
				|  |  | +    heroIndex = hero.getNum();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	genHeroWindow();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	center();
 | 
	
		
			
				|  |  |  }
 | 
	
	
		
			
				|  | @@ -84,6 +87,15 @@ void CHeroOverview::genHeader()
 | 
	
		
			
				|  |  |      canvas.drawColorBlended(Rect(borderOffset, 7 * borderOffset + yOffset + 64 + 20 + 44 + 20 + 130 + 44, 284, 85), ColorRGBA(0, 0, 0, alpha));
 | 
	
		
			
				|  |  |      canvas.drawBorder(Rect(borderOffset - 1, 7 * borderOffset + yOffset + 64 + 20 + 44 + 20 + 130 + 44 - 1, 284 + 2, 85 + 2), borderColor);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    // army title
 | 
	
		
			
				|  |  | +    canvas.drawColorBlended(Rect(302, borderOffset + yOffset, 292, 30), ColorRGBA(0, 0, 0, alpha));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    // army
 | 
	
		
			
				|  |  | +    for(int i = 0; i < 6; i++)
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +        int space = (292 - 6 * 32) / 5;
 | 
	
		
			
				|  |  | +        canvas.drawColorBlended(Rect(302 + i * (32 + space), 2 * borderOffset + yOffset + 30, 32, 32), ColorRGBA(0, 0, 0, alpha));
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      std::shared_ptr<IImage> backgroundShapesImg = GH.renderHandler().createImage(canvas.getInternalSurface());
 | 
	
		
			
				|  |  |      backgroundShapes = std::make_shared<CPicture>(backgroundShapesImg, pos);
 | 
	
	
		
			
				|  | @@ -91,7 +103,7 @@ void CHeroOverview::genHeader()
 | 
	
		
			
				|  |  |  	labelTitle = std::make_shared<CLabel>(pos.w / 2 + 8, 21, FONT_MEDIUM, ETextAlignment::CENTER, Colors::YELLOW, CGI->generaltexth->allTexts[77]);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      // hero image
 | 
	
		
			
				|  |  | -	image = std::make_shared<CAnimImage>(AnimationPath::builtin("PortraitsLarge"), (*CGI->heroh)[heroIndex]->imageIndex, 0, borderOffset, borderOffset + yOffset);
 | 
	
		
			
				|  |  | +	imageHero = std::make_shared<CAnimImage>(AnimationPath::builtin("PortraitsLarge"), (*CGI->heroh)[heroIndex]->imageIndex, 0, borderOffset, borderOffset + yOffset);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      // hero name
 | 
	
		
			
				|  |  |  	labelHeroName = std::make_shared<CLabel>(64 + borderOffset + 110, borderOffset + yOffset + 20, FONT_MEDIUM, ETextAlignment::CENTER, Colors::YELLOW, (*CGI->heroh)[heroIndex]->getNameTranslated());
 | 
	
	
		
			
				|  | @@ -121,10 +133,42 @@ void CHeroOverview::genHeader()
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      // speciality description
 | 
	
		
			
				|  |  |  	labelSpecialityDescription = std::make_shared<CMultiLineLabel>(Rect(2 * borderOffset, 8 * borderOffset + yOffset + 64 + 20 + 44 + 20 + 130 + 44 - 1, 284 - borderOffset, 85 - borderOffset), FONT_SMALL, ETextAlignment::TOPLEFT, Colors::WHITE, (*CGI->heroh)[heroIndex]->getSpecialtyDescriptionTranslated());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    // army title
 | 
	
		
			
				|  |  | +    labelArmyTitle = std::make_shared<CLabel>(302 + borderOffset, 2 * borderOffset + yOffset + 2, FONT_SMALL, ETextAlignment::TOPLEFT, Colors::YELLOW, "TODO: Starting Army");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    // army
 | 
	
		
			
				|  |  | +    int i = 0;
 | 
	
		
			
				|  |  | +    for(auto & army : (*CGI->heroh)[heroIndex]->initialArmy)
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +        if((*CGI->creh)[army.creature]->warMachine == ArtifactID::NONE)
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            imageArmy.push_back(std::make_shared<CAnimImage>(AnimationPath::builtin("CPRSMALL"), (*CGI->creh)[army.creature]->getIconIndex(), 0, 300 + 5 + i * 32, 30 + 100)); // size 32x32
 | 
	
		
			
				|  |  | +            labelArmyNames.push_back(std::make_shared<CLabel>(300 + 5 + i * 32 + 16, 30 + 40 + 100, FONT_SMALL, ETextAlignment::CENTER, Colors::WHITE, (*CGI->creh)[army.creature]->getNameSingularTranslated()));
 | 
	
		
			
				|  |  | +            labelArmyCount.push_back(std::make_shared<CLabel>(300 + 5 + i * 32 + 16, 30 + 60 + 100, FONT_SMALL, ETextAlignment::CENTER, Colors::WHITE, (army.minAmount == army.maxAmount) ? std::to_string(army.minAmount) : std::to_string(army.minAmount) + "-" + std::to_string(army.maxAmount)));
 | 
	
		
			
				|  |  | +            i++;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    // war machine title
 | 
	
		
			
				|  |  | +    labelWarMachineTitle = std::make_shared<CLabel>(300 + 5, 5 + 5 + 100 + 100, FONT_SMALL, ETextAlignment::TOPLEFT, Colors::YELLOW, "war m");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    // war machine
 | 
	
		
			
				|  |  | +    i = 0;
 | 
	
		
			
				|  |  | +    for(auto & army : (*CGI->heroh)[heroIndex]->initialArmy)
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +        if((*CGI->creh)[army.creature]->warMachine != ArtifactID::NONE)
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            imageWarMachine.push_back(std::make_shared<CAnimImage>(AnimationPath::builtin("CPRSMALL"), (*CGI->creh)[army.creature]->getIconIndex(), 0, 300 + 5 + i * 32, 30 + 100 + 100)); // size 32x32
 | 
	
		
			
				|  |  | +            labelWarMachineNames.push_back(std::make_shared<CLabel>(300 + 5 + i * 32 + 16, 30 + 40 + 100 + 100, FONT_SMALL, ETextAlignment::CENTER, Colors::WHITE, (*CGI->creh)[army.creature]->getNameSingularTranslated()));
 | 
	
		
			
				|  |  | +            i++;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  void CHeroOverview::genHeroWindow()
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | -	pos = Rect(0, 0, 450, 450 + 35);
 | 
	
		
			
				|  |  | +	pos = Rect(0, 0, 600, 450 + 35);
 | 
	
		
			
				|  |  |  	genHeader();
 | 
	
		
			
				|  |  |  }
 |