From 52c224502c867e005ffac47d1070d758735eb99a Mon Sep 17 00:00:00 2001 From: DjWarmonger Date: Fri, 16 Jul 2010 15:52:21 +0000 Subject: [PATCH] Compilation fix. Creature damage will now be displayed correctly. --- client/GUIClasses.cpp | 2 +- hch/CCreatureHandler.cpp | 9 +++++++++ hch/CCreatureHandler.h | 2 ++ lib/HeroBonus.h | 2 ++ lib/map.cpp | 1 + 5 files changed, 15 insertions(+), 1 deletion(-) diff --git a/client/GUIClasses.cpp b/client/GUIClasses.cpp index 69d200650..851a24788 100644 --- a/client/GUIClasses.cpp +++ b/client/GUIClasses.cpp @@ -2337,7 +2337,7 @@ void CCreInfoWindow::init(const CCreature *cre, const CStackInstance *stack, int if(stack && stack->hasBonusOfType(Bonus::SIEGE_WEAPON)) dmgMultiply += stack->armyObj->Attack(); - printLine(3, CGI->generaltexth->allTexts[199], c->damageMin * dmgMultiply, c->damageMax * dmgMultiply, true); + printLine(3, CGI->generaltexth->allTexts[199], finalNode->getMinDamage() * dmgMultiply, finalNode->getMaxDamage() * dmgMultiply, true); printLine(4, CGI->generaltexth->allTexts[388], cre->valOfBonuses(Bonus::STACK_HEALTH), finalNode->valOfBonuses(Bonus::STACK_HEALTH)); printLine(6, CGI->generaltexth->zelp[441].first, cre->valOfBonuses(Bonus::STACKS_SPEED), finalNode->valOfBonuses(Bonus::STACKS_SPEED)); diff --git a/hch/CCreatureHandler.cpp b/hch/CCreatureHandler.cpp index 0649d2363..79989ef1d 100644 --- a/hch/CCreatureHandler.cpp +++ b/hch/CCreatureHandler.cpp @@ -122,6 +122,15 @@ CCreature::CCreature() doubleWide = false; } +ui32 CCreature::getMinDamage() const +{ + return damageMin + valOfBonuses(Bonus::CREATURE_DAMAGE, 0) + valOfBonuses(Bonus::CREATURE_DAMAGE, 1); +} +ui32 CCreature::getMaxDamage() const +{ + return damageMax + valOfBonuses(Bonus::CREATURE_DAMAGE, 0) + valOfBonuses(Bonus::CREATURE_DAMAGE, 2); +} + void CCreature::addBonus(int val, int type, int subtype /*= -1*/) { Bonus added(Bonus::PERMANENT, type, Bonus::CREATURE_ABILITY, val, idNumber, subtype, Bonus::BASE_NUMBER); diff --git a/hch/CCreatureHandler.h b/hch/CCreatureHandler.h index 8d7396328..1c5d96153 100644 --- a/hch/CCreatureHandler.h +++ b/hch/CCreatureHandler.h @@ -56,6 +56,8 @@ public: si32 maxAmount(const std::vector &res) const; //how many creatures can be bought static int getQuantityID(const int & quantity); //0 - a few, 1 - several, 2 - pack, 3 - lots, 4 - horde, 5 - throng, 6 - swarm, 7 - zounds, 8 - legion bool isMyUpgrade(const CCreature *anotherCre) const; + ui32 getMinDamage() const; + ui32 getMaxDamage() const; void addBonus(int val, int type, int subtype = -1); diff --git a/lib/HeroBonus.h b/lib/HeroBonus.h index 843346130..7a61769d1 100644 --- a/lib/HeroBonus.h +++ b/lib/HeroBonus.h @@ -355,6 +355,8 @@ public: bool hasBonusFrom(ui8 source, ui32 sourceID) const; void getModifiersWDescr( TModDescr &out, Bonus::BonusType type, int subtype = -1 ) const; //out: pairs int getBonusesCount(int from, int id) const; + virtual ui32 getMinDamage() const {return 0;}; //used for stacks and creatures only + virtual ui32 getMaxDamage() const {return 0;}; int MoraleVal() const; //range [-3, +3] int LuckVal() const; //range [-3, +3] diff --git a/lib/map.cpp b/lib/map.cpp index 5435f018d..40edcef44 100644 --- a/lib/map.cpp +++ b/lib/map.cpp @@ -8,6 +8,7 @@ #include #include "../hch/CLodHandler.h" #include "../hch/CArtHandler.h" +#include "../hch/CCreatureHandler.h" #include #include