Bläddra i källkod

Fixed a few CWE-457

AlexVinS 9 år sedan
förälder
incheckning
27b853618c

+ 1 - 0
client/widgets/CArtifactHolder.cpp

@@ -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;
 }

+ 1 - 0
client/widgets/CGarrisonInt.cpp

@@ -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)

+ 0 - 5
client/widgets/CGarrisonInt.h

@@ -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);

+ 6 - 6
client/widgets/MiscWidgets.cpp

@@ -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

+ 1 - 1
client/widgets/MiscWidgets.h

@@ -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

+ 1 - 3
client/windows/CKingdomInterface.cpp

@@ -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++)
 	{

+ 4 - 5
client/windows/CKingdomInterface.h

@@ -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;
 };