Skip to content

Commit 3ebe474

Browse files
committed
Refactor by Spartan
1 parent c70314e commit 3ebe474

File tree

4 files changed

+136
-112
lines changed

4 files changed

+136
-112
lines changed

src/openvic-simulation/InstanceManager.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ InstanceManager::InstanceManager(
9797
},
9898
simulation_clock {
9999
[this]() -> void {
100-
queue_game_action<game_action_enum::tick>();
100+
queue_game_action<tick_argument_t>();
101101
},
102102
[this]() -> void {
103103
execute_game_actions();
@@ -336,7 +336,7 @@ void InstanceManager::update_modifier_sums() {
336336
);
337337
}
338338

339-
bool InstanceManager::queue_game_action(const game_action_t game_action) {
339+
bool InstanceManager::queue_game_action(game_action_t&& game_action) {
340340
if (currently_executing_game_actions) {
341341
spdlog::error_s("Attempted to queue a game action while already executing game actions!");
342342
return false;

src/openvic-simulation/InstanceManager.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -99,15 +99,15 @@ namespace OpenVic {
9999

100100
bool set_today_and_update(Date new_today);
101101

102-
template<game_action_enum I, typename... Args>
102+
template<typename T, typename... Args>
103103
bool queue_game_action(Args&&... args) {
104104
return queue_game_action(
105105
game_action_t(
106-
std::in_place_index<static_cast<std::size_t>(I)>,
107-
std::forward(args)...
106+
std::in_place_type<T>,
107+
std::forward<Args>(args)...
108108
)
109109
);
110110
}
111-
bool queue_game_action(game_action_t game_action);
111+
bool queue_game_action(game_action_t&& game_action);
112112
};
113113
}

src/openvic-simulation/misc/GameAction.cpp

Lines changed: 25 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -6,32 +6,29 @@
66

77
using namespace OpenVic;
88

9-
GameActionManager::GameActionManager(InstanceManager& new_instance_manager)
10-
: instance_manager { new_instance_manager } {}
11-
12-
bool GameActionManager::none(none_argument_t const& argument) const {
9+
bool GameActionManager::VariantVisitor::operator() (none_argument_t const& argument) const {
1310
return false;
1411
}
1512

1613
// Core
17-
bool GameActionManager::tick(tick_argument_t const& argument) const {
14+
bool GameActionManager::VariantVisitor::operator() (tick_argument_t const& argument) const {
1815
instance_manager.tick();
1916
return true;
2017
}
2118

22-
bool GameActionManager::set_pause(set_pause_argument_t const& new_is_paused) const {
19+
bool GameActionManager::VariantVisitor::operator() (set_pause_argument_t const& new_is_paused) const {
2320
const bool old_pause = instance_manager.get_simulation_clock().is_paused();
24-
instance_manager.get_simulation_clock().set_paused(new_is_paused);
21+
instance_manager.get_simulation_clock().set_paused(type_safe::get(new_is_paused));
2522
return old_pause != instance_manager.get_simulation_clock().is_paused();
2623
}
2724

28-
bool GameActionManager::set_speed(set_speed_argument_t const& new_speed) const {
25+
bool GameActionManager::VariantVisitor::operator() (set_speed_argument_t const& new_speed) const {
2926
const SimulationClock::speed_t old_speed = instance_manager.get_simulation_clock().get_simulation_speed();
30-
instance_manager.get_simulation_clock().set_simulation_speed(new_speed);
27+
instance_manager.get_simulation_clock().set_simulation_speed(type_safe::get(new_speed));
3128
return old_speed != instance_manager.get_simulation_clock().get_simulation_speed();
3229
}
3330

34-
bool GameActionManager::set_ai(set_ai_argument_t const& argument) const {
31+
bool GameActionManager::VariantVisitor::operator() (set_ai_argument_t const& argument) const {
3532
const auto [country_index, new_is_ai] = argument;
3633
CountryInstance* country = instance_manager.get_country_instance_manager().get_country_instance_by_index(country_index);
3734

@@ -46,7 +43,7 @@ bool GameActionManager::set_ai(set_ai_argument_t const& argument) const {
4643
}
4744

4845
// Production
49-
bool GameActionManager::expand_province_building(expand_province_building_argument_t const& argument) const {
46+
bool GameActionManager::VariantVisitor::operator() (expand_province_building_argument_t const& argument) const {
5047
const auto [province_index, building_type_index] = argument;
5148
ProvinceInstance* province = instance_manager.get_map_instance().get_province_instance_by_index(province_index);
5249

@@ -59,7 +56,7 @@ bool GameActionManager::expand_province_building(expand_province_building_argume
5956
}
6057

6158
// Budget
62-
bool GameActionManager::set_strata_tax(set_strata_tax_argument_t const& argument) const {
59+
bool GameActionManager::VariantVisitor::operator() (set_strata_tax_argument_t const& argument) const {
6360
const auto [country_index, strata_index, tax_rate] = argument;
6461
CountryInstance* country = instance_manager.get_country_instance_manager().get_country_instance_by_index(country_index);
6562

@@ -79,7 +76,7 @@ bool GameActionManager::set_strata_tax(set_strata_tax_argument_t const& argument
7976
return false;
8077
}
8178

82-
bool GameActionManager::set_army_spending(set_army_spending_argument_t const& argument) const {
79+
bool GameActionManager::VariantVisitor::operator() (set_army_spending_argument_t const& argument) const {
8380
const auto [country_index, spending] = argument;
8481
CountryInstance* country = instance_manager.get_country_instance_manager().get_country_instance_by_index(country_index);
8582

@@ -92,7 +89,7 @@ bool GameActionManager::set_army_spending(set_army_spending_argument_t const& ar
9289
return false;
9390
}
9491

95-
bool GameActionManager::set_navy_spending(set_navy_spending_argument_t const& argument) const {
92+
bool GameActionManager::VariantVisitor::operator() (set_navy_spending_argument_t const& argument) const {
9693
const auto [country_index, spending] = argument;
9794
CountryInstance* country = instance_manager.get_country_instance_manager().get_country_instance_by_index(country_index);
9895

@@ -105,7 +102,7 @@ bool GameActionManager::set_navy_spending(set_navy_spending_argument_t const& ar
105102
return false;
106103
}
107104

108-
bool GameActionManager::set_construction_spending(set_construction_spending_argument_t const& argument) const {
105+
bool GameActionManager::VariantVisitor::operator() (set_construction_spending_argument_t const& argument) const {
109106
const auto [country_index, spending] = argument;
110107
CountryInstance* country = instance_manager.get_country_instance_manager().get_country_instance_by_index(country_index);
111108

@@ -118,7 +115,7 @@ bool GameActionManager::set_construction_spending(set_construction_spending_argu
118115
return false;
119116
}
120117

121-
bool GameActionManager::set_education_spending(set_education_spending_argument_t const& argument) const {
118+
bool GameActionManager::VariantVisitor::operator() (set_education_spending_argument_t const& argument) const {
122119
const auto [country_index, spending] = argument;
123120
CountryInstance* country = instance_manager.get_country_instance_manager().get_country_instance_by_index(country_index);
124121

@@ -131,7 +128,7 @@ bool GameActionManager::set_education_spending(set_education_spending_argument_t
131128
return false;
132129
}
133130

134-
bool GameActionManager::set_administration_spending(set_administration_spending_argument_t const& argument) const {
131+
bool GameActionManager::VariantVisitor::operator() (set_administration_spending_argument_t const& argument) const {
135132
const auto [country_index, spending] = argument;
136133
CountryInstance* country = instance_manager.get_country_instance_manager().get_country_instance_by_index(country_index);
137134

@@ -144,7 +141,7 @@ bool GameActionManager::set_administration_spending(set_administration_spending_
144141
return false;
145142
}
146143

147-
bool GameActionManager::set_social_spending(set_social_spending_argument_t const& argument) const {
144+
bool GameActionManager::VariantVisitor::operator() (set_social_spending_argument_t const& argument) const {
148145
const auto [country_index, spending] = argument;
149146
CountryInstance* country = instance_manager.get_country_instance_manager().get_country_instance_by_index(country_index);
150147

@@ -157,7 +154,7 @@ bool GameActionManager::set_social_spending(set_social_spending_argument_t const
157154
return false;
158155
}
159156

160-
bool GameActionManager::set_military_spending(set_military_spending_argument_t const& argument) const {
157+
bool GameActionManager::VariantVisitor::operator() (set_military_spending_argument_t const& argument) const {
161158
const auto [country_index, spending] = argument;
162159
CountryInstance* country = instance_manager.get_country_instance_manager().get_country_instance_by_index(country_index);
163160

@@ -170,7 +167,7 @@ bool GameActionManager::set_military_spending(set_military_spending_argument_t c
170167
return false;
171168
}
172169

173-
bool GameActionManager::set_tariff_rate(set_tariff_rate_argument_t const& argument) const {
170+
bool GameActionManager::VariantVisitor::operator() (set_tariff_rate_argument_t const& argument) const {
174171
const auto [country_index, tariff_rate] = argument;
175172
CountryInstance* country = instance_manager.get_country_instance_manager().get_country_instance_by_index(country_index);
176173

@@ -184,7 +181,7 @@ bool GameActionManager::set_tariff_rate(set_tariff_rate_argument_t const& argume
184181
}
185182

186183
// Technology
187-
bool GameActionManager::start_research(start_research_argument_t const& argument) const {
184+
bool GameActionManager::VariantVisitor::operator() (start_research_argument_t const& argument) const {
188185
const auto [country_index, technology_index] = argument;
189186
CountryInstance* country = instance_manager.get_country_instance_manager().get_country_instance_by_index(country_index);
190187

@@ -215,7 +212,7 @@ bool GameActionManager::start_research(start_research_argument_t const& argument
215212
// Population
216213

217214
// Trade
218-
bool GameActionManager::set_good_automated(set_good_automated_argument_t const& argument) const {
215+
bool GameActionManager::VariantVisitor::operator() (set_good_automated_argument_t const& argument) const {
219216
const auto [country_index, good_index, new_is_automated] = argument;
220217
CountryInstance* country = instance_manager.get_country_instance_manager().get_country_instance_by_index(country_index);
221218

@@ -240,7 +237,7 @@ bool GameActionManager::set_good_automated(set_good_automated_argument_t const&
240237
return old_automated != good_data.is_automated;
241238
}
242239

243-
bool GameActionManager::set_good_trade_order(set_good_trade_order_argument_t const& argument) const {
240+
bool GameActionManager::VariantVisitor::operator() (set_good_trade_order_argument_t const& argument) const {
244241
const auto [country_index, good_index, new_is_selling, new_cutoff] = argument;
245242
CountryInstance* country = instance_manager.get_country_instance_manager().get_country_instance_by_index(country_index);
246243

@@ -289,7 +286,7 @@ bool GameActionManager::set_good_trade_order(set_good_trade_order_argument_t con
289286
// Diplomacy
290287

291288
// Military
292-
bool GameActionManager::create_leader(create_leader_argument_t const& argument) const {
289+
bool GameActionManager::VariantVisitor::operator() (create_leader_argument_t const& argument) const {
293290
const auto [country_index, unit_branch] = argument;
294291
CountryInstance* country = instance_manager.get_country_instance_manager().get_country_instance_by_index(country_index);
295292

@@ -313,7 +310,7 @@ bool GameActionManager::create_leader(create_leader_argument_t const& argument)
313310
);
314311
}
315312

316-
bool GameActionManager::set_use_leader(set_use_leader_argument_t const& argument) const {
313+
bool GameActionManager::VariantVisitor::operator() (set_use_leader_argument_t const& argument) const {
317314
const auto [unique_id, new_should_use] = argument;
318315

319316
LeaderInstance* leader = instance_manager.get_unit_instance_manager().get_leader_instance_by_unique_id(unique_id);
@@ -330,7 +327,7 @@ bool GameActionManager::set_use_leader(set_use_leader_argument_t const& argument
330327
return old_use != leader->get_can_be_used();
331328
}
332329

333-
bool GameActionManager::set_auto_create_leaders(set_auto_create_leaders_argument_t const& argument) const {
330+
bool GameActionManager::VariantVisitor::operator() (set_auto_create_leaders_argument_t const& argument) const {
334331
const auto [country_index, new_should_auto_create] = argument;
335332
CountryInstance* country = instance_manager.get_country_instance_manager().get_country_instance_by_index(country_index);
336333

@@ -346,7 +343,7 @@ bool GameActionManager::set_auto_create_leaders(set_auto_create_leaders_argument
346343
return old_auto_create != country->get_auto_create_leaders();
347344
}
348345

349-
bool GameActionManager::set_auto_assign_leaders(set_auto_assign_leaders_argument_t const& argument) const {
346+
bool GameActionManager::VariantVisitor::operator() (set_auto_assign_leaders_argument_t const& argument) const {
350347
const auto [country_index, new_should_auto_assign] = argument;
351348
CountryInstance* country = instance_manager.get_country_instance_manager().get_country_instance_by_index(country_index);
352349

@@ -362,7 +359,7 @@ bool GameActionManager::set_auto_assign_leaders(set_auto_assign_leaders_argument
362359
return old_auto_assign != country->get_auto_assign_leaders();
363360
}
364361

365-
bool GameActionManager::set_mobilise(set_mobilise_argument_t const& argument) const {
362+
bool GameActionManager::VariantVisitor::operator() (set_mobilise_argument_t const& argument) const {
366363
const auto [country_index, new_is_mobilised] = argument;
367364
CountryInstance* country = instance_manager.get_country_instance_manager().get_country_instance_by_index(country_index);
368365

0 commit comments

Comments
 (0)