mirror of
https://github.com/vcmi/vcmi.git
synced 2024-12-26 22:57:00 +02:00
Add description for bonuses from hero specialty
This commit is contained in:
parent
c8ba3de821
commit
f9ac46576b
@ -564,11 +564,12 @@ std::vector<std::shared_ptr<Bonus>> SpecialtyInfoToBonuses(const SSpecialtyInfo
|
|||||||
}
|
}
|
||||||
|
|
||||||
// convert deprecated format
|
// convert deprecated format
|
||||||
std::vector<std::shared_ptr<Bonus>> SpecialtyBonusToBonuses(const SSpecialtyBonus & spec)
|
std::vector<std::shared_ptr<Bonus>> SpecialtyBonusToBonuses(const SSpecialtyBonus & spec, int sid)
|
||||||
{
|
{
|
||||||
std::vector<std::shared_ptr<Bonus>> result;
|
std::vector<std::shared_ptr<Bonus>> result;
|
||||||
for(std::shared_ptr<Bonus> oldBonus : spec.bonuses)
|
for(std::shared_ptr<Bonus> oldBonus : spec.bonuses)
|
||||||
{
|
{
|
||||||
|
oldBonus->sid = sid;
|
||||||
if(oldBonus->type == Bonus::SPECIAL_SPELL_LEV || oldBonus->type == Bonus::SPECIAL_BLESS_DAMAGE)
|
if(oldBonus->type == Bonus::SPECIAL_SPELL_LEV || oldBonus->type == Bonus::SPECIAL_BLESS_DAMAGE)
|
||||||
{
|
{
|
||||||
// these bonuses used to auto-scale with hero level
|
// these bonuses used to auto-scale with hero level
|
||||||
@ -860,6 +861,11 @@ void CHeroHandler::afterLoadFinalization()
|
|||||||
{
|
{
|
||||||
for(ConstTransitivePtr<CHero> hero : heroes)
|
for(ConstTransitivePtr<CHero> hero : heroes)
|
||||||
{
|
{
|
||||||
|
for(auto bonus : hero->specialty)
|
||||||
|
{
|
||||||
|
bonus->sid = hero->ID.getNum();
|
||||||
|
}
|
||||||
|
|
||||||
if(hero->specDeprecated.size() > 0 || hero->specialtyDeprecated.size() > 0)
|
if(hero->specDeprecated.size() > 0 || hero->specialtyDeprecated.size() > 0)
|
||||||
{
|
{
|
||||||
logMod->debug("Converting specialty format for hero %s(%s)", hero->identifier, VLC->townh->encodeFaction(hero->heroClass->faction));
|
logMod->debug("Converting specialty format for hero %s(%s)", hero->identifier, VLC->townh->encodeFaction(hero->heroClass->faction));
|
||||||
@ -871,7 +877,7 @@ void CHeroHandler::afterLoadFinalization()
|
|||||||
}
|
}
|
||||||
for(const SSpecialtyBonus & spec : hero->specialtyDeprecated)
|
for(const SSpecialtyBonus & spec : hero->specialtyDeprecated)
|
||||||
{
|
{
|
||||||
for(std::shared_ptr<Bonus> b : SpecialtyBonusToBonuses(spec))
|
for(std::shared_ptr<Bonus> b : SpecialtyBonusToBonuses(spec, hero->ID.getNum()))
|
||||||
convertedBonuses.push_back(b);
|
convertedBonuses.push_back(b);
|
||||||
}
|
}
|
||||||
hero->specDeprecated.clear();
|
hero->specDeprecated.clear();
|
||||||
|
@ -135,7 +135,7 @@ public:
|
|||||||
|
|
||||||
// convert deprecated format
|
// convert deprecated format
|
||||||
std::vector<std::shared_ptr<Bonus>> SpecialtyInfoToBonuses(const SSpecialtyInfo & spec, int sid);
|
std::vector<std::shared_ptr<Bonus>> SpecialtyInfoToBonuses(const SSpecialtyInfo & spec, int sid);
|
||||||
std::vector<std::shared_ptr<Bonus>> SpecialtyBonusToBonuses(const SSpecialtyBonus & spec);
|
std::vector<std::shared_ptr<Bonus>> SpecialtyBonusToBonuses(const SSpecialtyBonus & spec, int sid);
|
||||||
|
|
||||||
class DLL_LINKAGE CHeroClass
|
class DLL_LINKAGE CHeroClass
|
||||||
{
|
{
|
||||||
|
@ -1250,6 +1250,9 @@ std::string Bonus::Description() const
|
|||||||
case SECONDARY_SKILL:
|
case SECONDARY_SKILL:
|
||||||
str << VLC->skillh->skillName(sid);
|
str << VLC->skillh->skillName(sid);
|
||||||
break;
|
break;
|
||||||
|
case HERO_SPECIAL:
|
||||||
|
str << VLC->heroh->heroes[sid]->name;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
//todo: handle all possible sources
|
//todo: handle all possible sources
|
||||||
str << "Unknown";
|
str << "Unknown";
|
||||||
|
@ -552,7 +552,7 @@ void CGHeroInstance::recreateSpecialtyBonuses(std::vector<HeroSpecial *> & speci
|
|||||||
|
|
||||||
for(HeroSpecial * hs : specialtyDeprecated)
|
for(HeroSpecial * hs : specialtyDeprecated)
|
||||||
{
|
{
|
||||||
for(std::shared_ptr<Bonus> b : SpecialtyBonusToBonuses(HeroSpecialToSpecialtyBonus(*hs)))
|
for(std::shared_ptr<Bonus> b : SpecialtyBonusToBonuses(HeroSpecialToSpecialtyBonus(*hs), type->ID.getNum()))
|
||||||
addNewBonus(b);
|
addNewBonus(b);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user