Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion extension/deps/openvic-simulation
Submodule openvic-simulation updated 93 files
+2 −1 src/openvic-simulation/DefinitionManager.cpp
+1 −0 src/openvic-simulation/InstanceManager.cpp
+3 −1 src/openvic-simulation/core/Assert.hpp
+298 −0 src/openvic-simulation/core/string/StringLiteral.hpp
+2 −2 src/openvic-simulation/country/CountryDefinition.cpp
+7 −2 src/openvic-simulation/country/CountryDefinition.hpp
+73 −23 src/openvic-simulation/country/CountryInstance.cpp
+46 −42 src/openvic-simulation/country/CountryInstance.hpp
+1 −1 src/openvic-simulation/country/CountryInstanceManager.cpp
+1 −2 src/openvic-simulation/country/CountryParty.hpp
+7 −10 src/openvic-simulation/dataloader/Dataloader.cpp
+3 −0 src/openvic-simulation/dataloader/ModManager.hpp
+24 −1 src/openvic-simulation/dataloader/NodeTools.hpp
+43 −8 src/openvic-simulation/economy/BuildingInstance.cpp
+10 −2 src/openvic-simulation/economy/BuildingInstance.hpp
+9 −0 src/openvic-simulation/economy/BuildingRestrictionCategory.hpp
+115 −23 src/openvic-simulation/economy/BuildingType.cpp
+60 −29 src/openvic-simulation/economy/BuildingType.hpp
+12 −12 src/openvic-simulation/economy/production/ArtisanalProducer.cpp
+44 −34 src/openvic-simulation/economy/production/ProductionType.cpp
+36 −32 src/openvic-simulation/economy/production/ProductionType.hpp
+13 −13 src/openvic-simulation/economy/production/ResourceGatheringOperation.cpp
+4 −4 src/openvic-simulation/history/CountryHistory.cpp
+1 −1 src/openvic-simulation/history/CountryHistory.hpp
+33 −96 src/openvic-simulation/history/DiplomaticHistory.cpp
+32 −112 src/openvic-simulation/history/DiplomaticHistory.hpp
+4 −0 src/openvic-simulation/history/HistoryManager.hpp
+0 −2 src/openvic-simulation/history/HistoryMap.cpp
+3 −4 src/openvic-simulation/history/HistoryMap.hpp
+0 −5 src/openvic-simulation/history/Period.cpp
+2 −1 src/openvic-simulation/history/Period.hpp
+74 −31 src/openvic-simulation/history/ProvinceHistory.cpp
+21 −6 src/openvic-simulation/history/ProvinceHistory.hpp
+22 −0 src/openvic-simulation/history/diplomacy/AllianceHistory.hpp
+22 −0 src/openvic-simulation/history/diplomacy/ReparationsHistory.hpp
+29 −0 src/openvic-simulation/history/diplomacy/SubjectHistory.hpp
+11 −0 src/openvic-simulation/history/diplomacy/WarHistory.cpp
+72 −0 src/openvic-simulation/history/diplomacy/WarHistory.hpp
+1 −1 src/openvic-simulation/map/Crime.cpp
+2 −4 src/openvic-simulation/map/Crime.hpp
+8 −7 src/openvic-simulation/map/MapDefinition.cpp
+4 −0 src/openvic-simulation/map/MapInstance.cpp
+2 −0 src/openvic-simulation/map/MapInstance.hpp
+27 −19 src/openvic-simulation/map/Mapmode.cpp
+4 −3 src/openvic-simulation/map/Mapmode.hpp
+18 −20 src/openvic-simulation/map/ProvinceDefinition.cpp
+21 −11 src/openvic-simulation/map/ProvinceDefinition.hpp
+56 −56 src/openvic-simulation/map/ProvinceInstance.cpp
+30 −8 src/openvic-simulation/map/ProvinceInstance.hpp
+59 −6 src/openvic-simulation/military/UnitInstanceGroup.cpp
+7 −1 src/openvic-simulation/military/UnitInstanceGroup.hpp
+7 −7 src/openvic-simulation/military/UnitType.cpp
+9 −11 src/openvic-simulation/military/UnitType.hpp
+3 −3 src/openvic-simulation/military/Wargoal.cpp
+4 −4 src/openvic-simulation/military/Wargoal.hpp
+1 −1 src/openvic-simulation/misc/Decision.cpp
+3 −2 src/openvic-simulation/misc/Decision.hpp
+2 −2 src/openvic-simulation/misc/Event.cpp
+6 −6 src/openvic-simulation/misc/Event.hpp
+48 −3 src/openvic-simulation/misc/GameAction.cpp
+4 −2 src/openvic-simulation/misc/GameAction.hpp
+1 −1 src/openvic-simulation/modifier/ModifierEffect.cpp
+2 −2 src/openvic-simulation/modifier/ModifierEffect.hpp
+1 −1 src/openvic-simulation/modifier/ModifierManager.cpp
+3 −4 src/openvic-simulation/politics/BaseIssue.hpp
+4 −4 src/openvic-simulation/politics/Government.cpp
+4 −4 src/openvic-simulation/politics/Government.hpp
+2 −2 src/openvic-simulation/politics/Ideology.cpp
+3 −3 src/openvic-simulation/politics/Ideology.hpp
+13 −13 src/openvic-simulation/politics/IssueManager.cpp
+4 −5 src/openvic-simulation/politics/IssueManager.hpp
+10 −10 src/openvic-simulation/politics/NationalFocus.hpp
+1 −1 src/openvic-simulation/politics/PoliticsInstanceManager.cpp
+1 −3 src/openvic-simulation/politics/PoliticsManager.hpp
+6 −6 src/openvic-simulation/politics/Rebel.cpp
+14 −14 src/openvic-simulation/politics/Rebel.hpp
+2 −2 src/openvic-simulation/politics/Reform.cpp
+5 −4 src/openvic-simulation/politics/Reform.hpp
+0 −229 src/openvic-simulation/politics/Rule.cpp
+0 −94 src/openvic-simulation/politics/Rule.hpp
+256 −0 src/openvic-simulation/politics/RuleSet.hpp
+4 −4 src/openvic-simulation/population/Culture.hpp
+38 −19 src/openvic-simulation/population/Pop.cpp
+18 −6 src/openvic-simulation/population/Pop.hpp
+30 −0 src/openvic-simulation/population/PopIdInProvince.hpp
+3 −1 src/openvic-simulation/population/PopsAggregate.cpp
+6 −6 src/openvic-simulation/research/Invention.cpp
+10 −9 src/openvic-simulation/research/Invention.hpp
+3 −3 src/openvic-simulation/research/Technology.hpp
+11 −0 src/openvic-simulation/types/OptionalBool.hpp
+9 −2 src/openvic-simulation/types/TypedIndices.hpp
+11 −1 src/openvic-simulation/utility/Getters.hpp
+181 −0 tests/src/core/string/StringLiteral.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -479,7 +479,7 @@ Error GameSingleton::set_mapmode(int32_t index) {

bool GameSingleton::is_parchment_mapmode_allowed() const {
/* Disallows parchment mapmode, e.g. for the cosmetic terrain mapmode */
return mapmode->is_parchment_mapmode_allowed();
return mapmode->is_parchment_mapmode_allowed;
}

Error GameSingleton::update_clock() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -320,7 +320,7 @@ int32_t MapItemSingleton::get_clicked_port_province_number(Vector2 click_positio
else if(province->is_water()){
// search the adjacent provinces for ones with ports
for(ProvinceDefinition::adjacency_t const& adjacency : province->get_adjacencies()) {
ProvinceDefinition const* adjacent_province = adjacency.get_to();
const type_safe::object_ref<const ProvinceDefinition> adjacent_province = adjacency.get_to();
if(!adjacent_province->has_port()) {
continue; // skip provinces without ports (ie. other water provinces)
}
Expand Down
41 changes: 17 additions & 24 deletions extension/src/openvic-extension/singletons/MenuSingleton.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -134,26 +134,19 @@ template String OpenVic::MenuSingleton::_make_modifier_effect_contributions_tool
) const;

String MenuSingleton::_make_rules_tooltip(RuleSet const& rules) const {
if (rules.empty()) {
return {};
}

static const StringName yes_key = "YES";
static const StringName no_key = "NO";

static const String start_text = ": " + GUILabel::get_colour_marker();
static const String end_text = GUILabel::get_colour_marker() + String { "!" };

const String enabled_text = start_text + String { "G" } + tr(yes_key) + end_text;
const String disabled_text = start_text + String { "R" } + tr(no_key) + end_text;
static const String line_format = "\n%s: "+GUILabel::get_colour_marker()+"%s%s"+GUILabel::get_colour_marker()+"!";

String result;

for (auto const& [rule_group, rule_map] : rules.get_rule_groups()) {
for (auto const& [rule, enabled] : rule_map) {
result += "\n" + tr(convert_to<String>(rule->get_localisation_key()))
+ (enabled ? enabled_text : disabled_text);
}
for (auto const& [rule_localisation_key, is_enabled] : rules.get_localisation_keys_and_values()) {
const bool is_bad_to_enable = rule_localisation_key == "RULE_SLAVERY_ALLOWED";
result += Utilities::format(
line_format,
tr(convert_to<String>(rule_localisation_key)),
is_bad_to_enable ? "R" : "G",
tr(is_enabled ? yes_key : no_key)
);
}

return result;
Expand Down Expand Up @@ -565,9 +558,9 @@ Dictionary MenuSingleton::get_province_info_from_number(int32_t province_number)

using enum Job::effect_t;

std::optional<Job> const& owner_job = production_type.get_owner();
std::optional<Job> const& owner_job = production_type.owner;
if (owner_job.has_value()) {
PopType const& owner_pop_type = *owner_job->get_pop_type();
PopType const& owner_pop_type = *owner_job->pop_type;
State const* state = province->get_state();

if (unlikely(state == nullptr)) {
Expand All @@ -578,14 +571,14 @@ Dictionary MenuSingleton::get_province_info_from_number(int32_t province_number)
} else {
const fixed_point_t effect_value = state->get_total_population() == 0
? fixed_point_t::_0
: owner_job->get_effect_multiplier().mul_div(
: owner_job->effect_multiplier.mul_div(
state->get_population_by_type(owner_pop_type),
state->get_total_population()
);

static const StringName owners_localisation_key = "PRODUCTION_FACTOR_OWNER";

switch (owner_job->get_effect_type()) {
switch (owner_job->effect_type) {
case OUTPUT:
output_multiplier += effect_value;
output_string += Utilities::format(
Expand Down Expand Up @@ -631,19 +624,19 @@ Dictionary MenuSingleton::get_province_info_from_number(int32_t province_number)
);

for (Job const& job : production_type.get_jobs()) {
if (job.get_pop_type() != &pop_type) {
if (job.pop_type != nullptr && *job.pop_type != pop_type) {
continue;
}

const fixed_point_t effect_multiplier = job.get_effect_multiplier();
const fixed_point_t effect_multiplier = job.effect_multiplier;
fixed_point_t relative_to_workforce = fixed_point_t::from_fraction(employees_of_type, max_employee_count);
const fixed_point_t effect_value = effect_multiplier == fixed_point_t::_1
? relative_to_workforce
: effect_multiplier * std::min(relative_to_workforce, job.get_amount());
: effect_multiplier * std::min(relative_to_workforce, job.amount);

static const StringName workers_localisation_key = "PRODUCTION_FACTOR_WORKER";

switch (job.get_effect_type()) {
switch (job.effect_type) {
case OUTPUT:
output_from_workers += effect_value;
output_string += Utilities::format(
Expand Down
4 changes: 2 additions & 2 deletions extension/src/openvic-extension/singletons/ModelSingleton.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -305,14 +305,14 @@ bool ModelSingleton::add_unit_dict(
// TODO - government type based flag type
dict[flag_index_key] = game_singleton->get_flag_sheet_index(country_definition.index, {});

if (display_unit_type->has_floating_flag()) {
if (display_unit_type->has_floating_flag) {
dict[flag_floating_key] = true;
}

dict[position_key] =
game_singleton->normalise_map_position(unit.get_position()->province_definition.get_unit_position());

if (display_unit_type->get_unit_category() != UnitType::unit_category_t::INFANTRY) {
if (display_unit_type->unit_category != UnitType::unit_category_t::INFANTRY) {
dict[rotation_key] = -0.25f * std::numbers::pi_v<float>;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -208,14 +208,17 @@ void PlayerSingleton::decrease_speed() const {
}

// Production
void PlayerSingleton::expand_selected_province_building(int32_t building_index) const {
void PlayerSingleton::expand_selected_province_building(int32_t province_building_index) const {
ERR_FAIL_NULL(selected_province);

InstanceManager* instance_manager = GameSingleton::get_singleton()->get_instance_manager();
ERR_FAIL_NULL(instance_manager);
ERR_FAIL_NULL(player_country);

instance_manager->queue_game_action<expand_province_building_argument_t>(
selected_province->index, building_instance_index_t(building_index)
player_country->index,
selected_province->index,
province_building_index_t(province_building_index)
);
}

Expand Down
Loading