Skip to content

Commit 32217de

Browse files
committed
Code review: Rename functions, remove auto return type and capture addons checks as bool const, use Gamesettings as parameter instead of player
1 parent 78acaf3 commit 32217de

File tree

7 files changed

+40
-25
lines changed

7 files changed

+40
-25
lines changed

libs/s25main/AddonHelperFunctions.cpp

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,43 +4,53 @@
44

55
#include "AddonHelperFunctions.h"
66
#include "GlobalGameSettings.h"
7-
#include "world/GameWorld.h"
87
#include <LeatherLoader.h>
98
#include <WineLoader.h>
109
#include <addons/Addon.h>
1110

12-
auto isUnusedBuilding(GamePlayer const& player) -> std::function<bool(BuildingType const& type)>
11+
std::function<bool(const BuildingType type)> makeIsUnusedBuilding(const GlobalGameSettings& ggs)
1312
{
14-
return [&player = player](BuildingType const& bld) {
15-
if(!wineaddon::isAddonActive(player.GetGameWorld()) && wineaddon::isWineAddonBuildingType(bld))
13+
const bool wineAddonActive = ggs.isEnabled(AddonId::WINE);
14+
const bool charburnerAddonActive = ggs.isEnabled(AddonId::CHARBURNER);
15+
const bool leatherAddonActive = ggs.isEnabled(AddonId::LEATHER);
16+
17+
return [wineAddonActive, charburnerAddonActive, leatherAddonActive](BuildingType const& bld) {
18+
if(!wineAddonActive && wineaddon::isWineAddonBuildingType(bld))
1619
return true;
17-
if(!player.GetGameWorld().GetGGS().isEnabled(AddonId::CHARBURNER) && bld == BuildingType::Charburner)
20+
if(!charburnerAddonActive && bld == BuildingType::Charburner)
1821
return true;
19-
if(!leatheraddon::isAddonActive(player.GetGameWorld()) && leatheraddon::isLeatherAddonBuildingType(bld))
22+
if(!leatherAddonActive && leatheraddon::isLeatherAddonBuildingType(bld))
2023
return true;
2124
return false;
2225
};
2326
}
2427

25-
auto isUnusedWare(GamePlayer const& player) -> std::function<bool(GoodType const& type)>
28+
std::function<bool(const GoodType type)> makeIsUnusedWare(const GlobalGameSettings& ggs)
2629
{
27-
return [&player = player](GoodType const& type) {
28-
if(!wineaddon::isAddonActive(player.GetGameWorld()) && wineaddon::isWineAddonGoodType(type))
30+
const bool wineAddonActive = ggs.isEnabled(AddonId::WINE);
31+
const bool leatherAddonActive = ggs.isEnabled(AddonId::LEATHER);
32+
33+
return [wineAddonActive, leatherAddonActive](GoodType const& type) {
34+
if(!wineAddonActive && wineaddon::isWineAddonGoodType(type))
2935
return true;
30-
if(!leatheraddon::isAddonActive(player.GetGameWorld()) && leatheraddon::isLeatherAddonGoodType(type))
36+
if(!leatherAddonActive && leatheraddon::isLeatherAddonGoodType(type))
3137
return true;
3238
return false;
3339
};
3440
}
3541

36-
auto isUnusedJob(GamePlayer const& player) -> std::function<bool(Job const& job)>
42+
std::function<bool(const Job job)> makeIsUnusedJob(const GlobalGameSettings& ggs)
3743
{
38-
return [&](Job const& job) {
39-
if(!wineaddon::isAddonActive(player.GetGameWorld()) && wineaddon::isWineAddonJobType(job))
44+
const bool wineAddonActive = ggs.isEnabled(AddonId::WINE);
45+
const bool charburnerAddonActive = ggs.isEnabled(AddonId::CHARBURNER);
46+
const bool leatherAddonActive = ggs.isEnabled(AddonId::LEATHER);
47+
48+
return [wineAddonActive, charburnerAddonActive, leatherAddonActive](Job const& job) {
49+
if(!wineAddonActive && wineaddon::isWineAddonJobType(job))
4050
return true;
41-
if(!player.GetGameWorld().GetGGS().isEnabled(AddonId::CHARBURNER) && job == Job::CharBurner)
51+
if(!charburnerAddonActive && job == Job::CharBurner)
4252
return true;
43-
if(!leatheraddon::isAddonActive(player.GetGameWorld()) && leatheraddon::isLeatherAddonJobType(job))
53+
if(!leatherAddonActive && leatheraddon::isLeatherAddonJobType(job))
4454
return true;
4555
return false;
4656
};

libs/s25main/AddonHelperFunctions.h

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,13 @@
44

55
#pragma once
66

7-
#include "GamePlayer.h"
7+
#include "gameTypes/BuildingType.h"
8+
#include "gameTypes/GoodTypes.h"
9+
#include "gameTypes/JobTypes.h"
10+
#include <functional>
811

9-
auto isUnusedBuilding(GamePlayer const& player) -> std::function<bool(BuildingType const& type)>;
10-
auto isUnusedWare(GamePlayer const& player) -> std::function<bool(GoodType const& type)>;
11-
auto isUnusedJob(GamePlayer const& player) -> std::function<bool(Job const& job)>;
12+
class GlobalGameSettings;
13+
14+
std::function<bool(const BuildingType type)> makeIsUnusedBuilding(const GlobalGameSettings& ggs);
15+
std::function<bool(const GoodType type)> makeIsUnusedWare(const GlobalGameSettings& ggs);
16+
std::function<bool(const Job job)> makeIsUnusedJob(const GlobalGameSettings& ggs);

libs/s25main/ingameWindows/iwBuildOrder.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
void iwBuildOrder::fillBuildOrder(const BuildOrders& build_order)
2424
{
2525
pendingBuildOrder.assign(build_order.begin(), build_order.end());
26-
helpers::erase_if(pendingBuildOrder, isUnusedBuilding(gwv.GetPlayer()));
26+
helpers::erase_if(pendingBuildOrder, makeIsUnusedBuilding(gwv.GetWorld().GetGGS()));
2727
}
2828

2929
iwBuildOrder::iwBuildOrder(const GameWorldViewer& gwv)

libs/s25main/ingameWindows/iwBuildingProductivities.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ const std::array<BuildingType, 30> iwBuildingProductivities::allIcons = {
4040
void iwBuildingProductivities::setBuildingOrder()
4141
{
4242
usedIcons.assign(allIcons.begin(), allIcons.end());
43-
helpers::erase_if(usedIcons, isUnusedBuilding(player));
43+
helpers::erase_if(usedIcons, makeIsUnusedBuilding(player.GetGameWorld().GetGGS()));
4444
}
4545

4646
/// Abstand vom linken, oberen Fensterrand

libs/s25main/ingameWindows/iwBuildings.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ void iwBuildings::setBuildingOrder()
5151
BuildingType::Skinner, BuildingType::Tannery, BuildingType::LeatherWorks, // entry 37
5252
};
5353

54-
helpers::erase_if(bts, isUnusedBuilding(gwv.GetViewer().GetPlayer()));
54+
helpers::erase_if(bts, makeIsUnusedBuilding(gwv.GetWorld().GetGGS()));
5555
}
5656

5757
// Abstand des ersten Icons vom linken oberen Fensterrand

libs/s25main/ingameWindows/iwDistribution.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ void iwDistribution::CreateGroups()
204204

205205
auto isUnused = [&](std::tuple<std::string, unsigned> const& bts) {
206206
const BuildingType buildingType = std::get<1>(distributionMap[std::get<1>(bts)]);
207-
return isUnusedBuilding(gwv.GetPlayer())(buildingType);
207+
return makeIsUnusedBuilding(gwv.GetWorld().GetGGS())(buildingType);
208208
};
209209
for(auto& group : groups)
210210
helpers::erase_if(group.entries, isUnused);

libs/s25main/ingameWindows/iwWares.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,8 +114,8 @@ iwWares::iwWares(unsigned id, const DrawPoint& pos, unsigned additionalYSpace, c
114114
Job::Sergeant, Job::Officer,
115115
Job::General};
116116

117-
helpers::erase_if(WARE_DISPLAY_ORDER, isUnusedWare(player));
118-
helpers::erase_if(JOB_DISPLAY_ORDER, isUnusedJob(player));
117+
helpers::erase_if(WARE_DISPLAY_ORDER, makeIsUnusedWare(player.GetGameWorld().GetGGS()));
118+
helpers::erase_if(JOB_DISPLAY_ORDER, makeIsUnusedJob(player.GetGameWorld().GetGGS()));
119119

120120
// Warenseite hinzufügen
121121
ctrlGroup& waresPage = AddPage();

0 commit comments

Comments
 (0)