From a8bb13cbcdb54cb315a18c5cbfa4c9fb4fe20c89 Mon Sep 17 00:00:00 2001 From: DjWarmonger Date: Wed, 21 Jul 2010 17:05:07 +0000 Subject: [PATCH] Secondary skill bonuses will now be correctly updated on level-up. --- hch/CObjectHandler.cpp | 3 +-- lib/NetPacksLib.cpp | 3 ++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/hch/CObjectHandler.cpp b/hch/CObjectHandler.cpp index 5a413350c..ef4b892d1 100644 --- a/hch/CObjectHandler.cpp +++ b/hch/CObjectHandler.cpp @@ -615,8 +615,7 @@ int3 CGHeroInstance::getPosition(bool h3m) const //h3m=true - returns position o si32 CGHeroInstance::manaLimit() const { - double modifier = (100.0f + valOfBonuses(Bonus::SECONDARY_SKILL_PREMY, 24)) / 100.0f; - return si32(10*getPrimSkillLevel(3)*modifier); + return si32(getPrimSkillLevel(3) * (100.0f + valOfBonuses(Bonus::SECONDARY_SKILL_PREMY, 24)) / 10.0f); } //void CGHeroInstance::setPosition(int3 Pos, bool h3m) //as above, but sets position //{ diff --git a/lib/NetPacksLib.cpp b/lib/NetPacksLib.cpp index e67f8f1c6..67d97d807 100644 --- a/lib/NetPacksLib.cpp +++ b/lib/NetPacksLib.cpp @@ -80,6 +80,7 @@ DLL_EXPORT void SetSecSkill::applyGs( CGameState *gs ) if(hero->getSecSkillLevel(which) == 0) { hero->secSkills.push_back(std::pair(which, val)); + hero->updateSkill(which, val); } else { @@ -97,10 +98,10 @@ DLL_EXPORT void SetSecSkill::applyGs( CGameState *gs ) tlog1 << "Warning: Skill " << which << " increased over limit! Decreasing to Expert.\n"; hero->secSkills[i].second = 3; } + hero->updateSkill(which, hero->secSkills[i].second); //when we know final value } } } - hero->updateSkill(which, val); } DLL_EXPORT void HeroVisitCastle::applyGs( CGameState *gs )