1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-24 22:14:36 +02:00

Fixed a few CWE-457

This commit is contained in:
AlexVinS 2016-11-27 18:17:20 +03:00
parent c4ab962cc0
commit 27b853618c
7 changed files with 14 additions and 20 deletions

View File

@ -946,6 +946,7 @@ bool CArtifactsOfHero::SCommonPart::Artpos::valid()
CArtPlace::CArtPlace(Point position, const CArtifactInstance * Art) : ourArt(Art)
{
image = nullptr;
pos += position;
pos.w = pos.h = 44;
}

View File

@ -475,6 +475,7 @@ CGarrisonInt::CGarrisonInt(int x, int y, int inx, const Point &garsOffset,
inSplittingMode(false),
interx(inx),
garOffset(garsOffset),
pb(false),
smallIcons(smallImgs),
removableUnits(_removableUnits),
twoRows(_twoRows)

View File

@ -78,19 +78,14 @@ public:
std::vector<CButton *> splitButtons; ///< May be empty if no buttons
SlotID p2; ///< TODO: comment me
int shiftPos; ///< 1st slot of the second row, set shiftPoint for effect
bool pb,
smallIcons, ///< true - 32x32 imgs, false - 58x64
removableUnits, ///< player Can remove units from up
twoRows, ///< slots Will be placed in 2 rows
owned[2]; ///< player Owns up or down army ([0] upper, [1] lower)
// const CCreatureSet *set1; ///< Top set of creatures
// const CCreatureSet *set2; ///< Bottom set of creatures
std::vector<CGarrisonSlot*> slotsUp, slotsDown; ///< Slots of upper and lower garrison
const CArmedInstance *armedObjs[2]; ///< [0] is upper, [1] is down
//const CArmedInstance *oup, *odown; ///< Upper and lower garrisons (heroes or towns)
void setArmy(const CArmedInstance *army, bool bottomGarrison);
void addSplitBtn(CButton * button);

View File

@ -94,7 +94,7 @@ void LRClickableAreaWTextComp::clickLeft(tribool down, bool previousState)
}
LRClickableAreaWTextComp::LRClickableAreaWTextComp(const Rect &Pos, int BaseType)
: LRClickableAreaWText(Pos), baseType(BaseType), bonusValue(-1)
: LRClickableAreaWText(Pos), baseType(BaseType), bonusValue(-1), type(-1)
{
}
@ -170,8 +170,8 @@ void LRClickableAreaOpenTown::clickRight(tribool down, bool previousState)
LOCPLINT->openTownWindow(town);//TODO: popup?
}
LRClickableAreaOpenTown::LRClickableAreaOpenTown()
: LRClickableAreaWTextComp(Rect(0,0,0,0), -1)
LRClickableAreaOpenTown::LRClickableAreaOpenTown(const Rect & Pos, const CGTownInstance * Town)
: LRClickableAreaWTextComp(Pos, -1), town(Town)
{
}
@ -376,9 +376,9 @@ void MoraleLuckBox::set(const IBonusBearer *node)
baseType = componentType[morale];
text = CGI->generaltexth->arraytxt[textId[morale]];
boost::algorithm::replace_first(text,"%s",CGI->generaltexth->arraytxt[neutralDescr[morale]-mrlt]);
if (morale && node && (node->hasBonusOfType(Bonus::UNDEAD)
|| node->hasBonusOfType(Bonus::BLOCK_MORALE)
if (morale && node && (node->hasBonusOfType(Bonus::UNDEAD)
|| node->hasBonusOfType(Bonus::BLOCK_MORALE)
|| node->hasBonusOfType(Bonus::NON_LIVING)))
{
text += CGI->generaltexth->arraytxt[113]; //unaffected by morale

View File

@ -139,7 +139,7 @@ public:
const CGTownInstance * town;
void clickLeft(tribool down, bool previousState) override;
void clickRight(tribool down, bool previousState) override;
LRClickableAreaOpenTown();
LRClickableAreaOpenTown(const Rect & Pos, const CGTownInstance * Town);
};
class MoraleLuckBox : public LRClickableAreaWTextComp

View File

@ -792,9 +792,7 @@ CTownItem::CTownItem(const CGTownInstance* Town):
size_t iconIndex = town->town->clientInfo.icons[town->hasFort()][town->builded >= CGI->modh->settings.MAX_BUILDING_PER_TURN];
picture = new CAnimImage("ITPT", iconIndex, 0, 5, 6);
townArea = new LRClickableAreaOpenTown;
townArea->pos = Rect(pos.x+5, pos.y+6, 58, 64);
townArea->town = town;
new LRClickableAreaOpenTown(Rect(5, 6, 58, 64), town);
for (size_t i=0; i<town->creatures.size(); i++)
{

View File

@ -33,12 +33,12 @@ class CKingdHeroList;
class CKingdTownList;
class IInfoBoxData;
/*
/*
* Several classes to display basically any data.
* Main part - class InfoBox which controls how data will be formatted\positioned
* InfoBox have image and 0-2 labels
* In constructor it should receive object that implements IInfoBoxData interface
*
*
* interface IInfoBoxData defines way to get data for use in InfoBox
* have several implementations:
* InfoBoxHeroData - to display one of fields from hero (e.g. absolute value of primary skills)
@ -265,7 +265,6 @@ class CTownItem : public CIntObject, public CGarrisonHolder
CLabel *name;
CLabel *income;
CGarrisonInt *garr;
LRClickableAreaOpenTown *townArea;
HeroSlots *heroes;
CTownInfo *hall, *fort;
@ -338,11 +337,11 @@ private:
CLabel * townLabel;
CLabel * garrHeroLabel;
CLabel * visitHeroLabel;
CIntObject* createTownItem(size_t index);
public:
CKingdTownList(size_t maxSize);
void townChanged(const CGTownInstance *town);
void updateGarrisons() override;
};