Skip to content

Commit 48783f4

Browse files
authored
Merge pull request #1443 from oscar139/Refactor/PopulationPanelConstructor
Refactor/population panel constructor
2 parents 1ce26de + 4c6320c commit 48783f4

File tree

4 files changed

+12
-23
lines changed

4 files changed

+12
-23
lines changed

OPHD/States/MapViewState.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,7 @@ MapViewState::MapViewState(MainReportsUiState& mainReportsState, const std::stri
167167
mStructures{"ui/structures.png", 46, constants::MarginTight},
168168
mRobots{"ui/robots.png", 46, constants::MarginTight},
169169
mConnections{"ui/structures.png", 46, constants::MarginTight},
170+
mPopulationPanel{mPopulation, mPopulationPool},
170171
mResourceInfoBar{mResourcesCount, mPopulation, mCurrentMorale, mPreviousMorale, mFood},
171172
mRobotDeploymentSummary{mRobotPool}
172173
{
@@ -187,6 +188,7 @@ MapViewState::MapViewState(MainReportsUiState& mainReportsState, const Planet::A
187188
mStructures{"ui/structures.png", 46, constants::MarginTight},
188189
mRobots{"ui/robots.png", 46, constants::MarginTight},
189190
mConnections{"ui/structures.png", 46, constants::MarginTight},
191+
mPopulationPanel{mPopulation, mPopulationPool},
190192
mResourceInfoBar{mResourcesCount, mPopulation, mCurrentMorale, mPreviousMorale, mFood},
191193
mRobotDeploymentSummary{mRobotPool},
192194
mMiniMap{std::make_unique<MiniMap>(*mMapView, mTileMap, mRobotList, planetAttributes.mapImagePath)},

OPHD/States/MapViewStateUi.cpp

-2
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,6 @@ void MapViewState::initUi()
7575
mFileIoDialog.hide();
7676

7777
mPopulationPanel.position({675, constants::ResourceIconSize + 4 + constants::MarginTight});
78-
mPopulationPanel.population(&mPopulation);
79-
mPopulationPanel.populationPool(&mPopulationPool);
8078

8179
mResourceBreakdownPanel.position({0, 22});
8280
mResourceBreakdownPanel.playerResources(&mResourcesCount);

OPHD/UI/PopulationPanel.cpp

+7-15
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ static const std::array moraleStringColor
4949
};
5050

5151

52-
PopulationPanel::PopulationPanel() :
52+
PopulationPanel::PopulationPanel(const Population& pop, const PopulationPool& popPool) :
5353
mFont{fontCache.load(constants::FONT_PRIMARY, constants::FontPrimaryNormal)},
5454
mFontBold{fontCache.load(constants::FONT_PRIMARY_BOLD, constants::FontPrimaryNormal)},
5555
mIcons{imageCache.load("ui/icons.png")},
@@ -64,7 +64,9 @@ PopulationPanel::PopulationPanel() :
6464
imageCache.load("ui/skin/window_bottom_left.png"),
6565
imageCache.load("ui/skin/window_bottom_middle.png"),
6666
imageCache.load("ui/skin/window_bottom_right.png")
67-
}
67+
},
68+
mPopulation(pop),
69+
mPopulationPool(popPool)
6870
{
6971
constexpr int linesOfText = 16;
7072
constexpr int edgeBuffer = constants::Margin * 2;
@@ -89,16 +91,6 @@ PopulationPanel::PopulationPanel() :
8991
size({windowWidth, windowHeight});
9092
}
9193

92-
void PopulationPanel::population(Population* pop)
93-
{
94-
mPopulation = pop;
95-
}
96-
97-
void PopulationPanel::populationPool(PopulationPool* popPool)
98-
{
99-
mPopulationPool = popPool;
100-
}
101-
10294
void PopulationPanel::addMoraleReason(const std::string& str, int val)
10395
{
10496
if (val == 0) { return; }
@@ -118,7 +110,7 @@ void PopulationPanel::update()
118110

119111
// POPULATION Statistics
120112
renderer.drawText(mFontBold, constants::PopulationBreakdown, position);
121-
const auto& population = mPopulation->getPopulations();
113+
const auto& population = mPopulation.getPopulations();
122114
const std::array populationData
123115
{
124116
std::tuple{NAS2D::Rectangle<int>{{0, 96}, {IconSize, IconSize}}, population.child, std::string("Children")},
@@ -149,8 +141,8 @@ void PopulationPanel::update()
149141
position.y += constants::Margin;
150142

151143
const std::array populationAvailablitiyStatistics{
152-
std::tuple{"Available Workers: ", mPopulationPool->availableWorkers()},
153-
std::tuple{"Available Scientists: ", mPopulationPool->availableScientists()},
144+
std::tuple{"Available Workers: ", mPopulationPool.availableWorkers()},
145+
std::tuple{"Available Scientists: ", mPopulationPool.availableScientists()},
154146
};
155147

156148
for (const auto& [statisticLabel, personCount] : populationAvailablitiyStatistics)

OPHD/UI/PopulationPanel.h

+3-6
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,7 @@ namespace NAS2D
2121
class PopulationPanel : public Control
2222
{
2323
public:
24-
PopulationPanel();
25-
26-
void population(Population* pop);
27-
void populationPool(PopulationPool* popPool);
24+
PopulationPanel(const Population& pop, const PopulationPool& popPool);
2825

2926
void morale(int val) { mMorale = val; }
3027
void old_morale(int val) { mPreviousMorale = val; }
@@ -50,8 +47,8 @@ class PopulationPanel : public Control
5047

5148
std::vector<std::pair<std::string,int>> mMoraleChangeReasons;
5249

53-
Population* mPopulation = nullptr;
54-
PopulationPool* mPopulationPool = nullptr;
50+
const Population& mPopulation;
51+
const PopulationPool& mPopulationPool;
5552

5653
int mMorale{0};
5754
int mPreviousMorale{0};

0 commit comments

Comments
 (0)