Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated SIM submodule and switched to ordered_map #187

Merged
merged 1 commit into from
Jan 9, 2024
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 96 files
+5 −3 .clang-format
+3 −0 .gitmodules
+3 −1 SConstruct
+10 −1 deps/SCsub
+1 −0 deps/ordered-map
+1 −1 src/headless/main.cpp
+6 −7 src/openvic-simulation/GameManager.cpp
+6 −3 src/openvic-simulation/GameManager.hpp
+8 −27 src/openvic-simulation/country/Country.cpp
+4 −3 src/openvic-simulation/country/Country.hpp
+1 −1 src/openvic-simulation/country/CountryInstance.cpp
+129 −65 src/openvic-simulation/dataloader/Dataloader.cpp
+27 −8 src/openvic-simulation/dataloader/Dataloader.hpp
+59 −28 src/openvic-simulation/dataloader/NodeTools.cpp
+56 −22 src/openvic-simulation/dataloader/NodeTools.hpp
+4 −10 src/openvic-simulation/dataloader/Vic2PathSearch.cpp
+9 −0 src/openvic-simulation/diplomacy/DiplomacyManager.hpp
+145 −0 src/openvic-simulation/diplomacy/DiplomaticAction.cpp
+134 −0 src/openvic-simulation/diplomacy/DiplomaticAction.hpp
+1 −1 src/openvic-simulation/economy/BuildingInstance.hpp
+2 −0 src/openvic-simulation/economy/BuildingType.cpp
+1 −0 src/openvic-simulation/economy/BuildingType.hpp
+11 −12 src/openvic-simulation/economy/Good.cpp
+74 −34 src/openvic-simulation/economy/ProductionType.cpp
+26 −18 src/openvic-simulation/economy/ProductionType.hpp
+34 −50 src/openvic-simulation/history/CountryHistory.cpp
+9 −8 src/openvic-simulation/history/CountryHistory.hpp
+89 −50 src/openvic-simulation/history/DiplomaticHistory.cpp
+20 −9 src/openvic-simulation/history/DiplomaticHistory.hpp
+2 −1 src/openvic-simulation/history/HistoryMap.hpp
+27 −0 src/openvic-simulation/history/Period.cpp
+18 −0 src/openvic-simulation/history/Period.hpp
+28 −10 src/openvic-simulation/history/ProvinceHistory.cpp
+4 −3 src/openvic-simulation/history/ProvinceHistory.hpp
+1 −1 src/openvic-simulation/interface/GFX.hpp
+20 −6 src/openvic-simulation/map/Crime.cpp
+8 −2 src/openvic-simulation/map/Crime.hpp
+196 −12 src/openvic-simulation/map/Map.cpp
+11 −2 src/openvic-simulation/map/Map.hpp
+3 −172 src/openvic-simulation/map/Province.cpp
+3 −12 src/openvic-simulation/map/Province.hpp
+1 −1 src/openvic-simulation/map/State.cpp
+2 −1 src/openvic-simulation/map/TerrainType.hpp
+1 −1 src/openvic-simulation/military/MilitaryManager.hpp
+15 −4 src/openvic-simulation/military/Unit.cpp
+4 −2 src/openvic-simulation/military/Unit.hpp
+127 −148 src/openvic-simulation/military/Wargoal.cpp
+59 −56 src/openvic-simulation/military/Wargoal.hpp
+35 −9 src/openvic-simulation/misc/Decision.cpp
+19 −7 src/openvic-simulation/misc/Decision.hpp
+82 −24 src/openvic-simulation/misc/Event.cpp
+23 −9 src/openvic-simulation/misc/Event.hpp
+40 −17 src/openvic-simulation/misc/Modifier.cpp
+12 −3 src/openvic-simulation/misc/Modifier.hpp
+53 −11 src/openvic-simulation/politics/Ideology.cpp
+19 −2 src/openvic-simulation/politics/Ideology.hpp
+65 −16 src/openvic-simulation/politics/Issue.cpp
+23 −7 src/openvic-simulation/politics/Issue.hpp
+71 −43 src/openvic-simulation/politics/NationalFocus.cpp
+24 −13 src/openvic-simulation/politics/NationalFocus.hpp
+62 −26 src/openvic-simulation/politics/Rebel.cpp
+27 −6 src/openvic-simulation/politics/Rebel.hpp
+144 −60 src/openvic-simulation/politics/Rule.cpp
+39 −7 src/openvic-simulation/politics/Rule.hpp
+4 −4 src/openvic-simulation/pop/Culture.cpp
+5 −5 src/openvic-simulation/pop/Culture.hpp
+140 −24 src/openvic-simulation/pop/Pop.cpp
+55 −12 src/openvic-simulation/pop/Pop.hpp
+26 −9 src/openvic-simulation/research/Invention.cpp
+13 −5 src/openvic-simulation/research/Invention.hpp
+25 −10 src/openvic-simulation/research/Technology.cpp
+18 −11 src/openvic-simulation/research/Technology.hpp
+753 −0 src/openvic-simulation/scripts/Condition.cpp
+254 −0 src/openvic-simulation/scripts/Condition.hpp
+20 −0 src/openvic-simulation/scripts/ConditionScript.cpp
+23 −0 src/openvic-simulation/scripts/ConditionScript.hpp
+69 −0 src/openvic-simulation/scripts/ConditionalWeight.cpp
+47 −0 src/openvic-simulation/scripts/ConditionalWeight.hpp
+8 −0 src/openvic-simulation/scripts/EffectScript.cpp
+12 −0 src/openvic-simulation/scripts/EffectScript.hpp
+38 −0 src/openvic-simulation/scripts/Script.hpp
+10 −0 src/openvic-simulation/scripts/ScriptManager.hpp
+61 −0 src/openvic-simulation/types/AnyRef.hpp
+1 −9 src/openvic-simulation/types/Colour.hpp
+13 −0 src/openvic-simulation/types/Date.hpp
+117 −0 src/openvic-simulation/types/FunctionRef.hpp
+88 −0 src/openvic-simulation/types/HasIdentifier.hpp
+166 −112 src/openvic-simulation/types/IdentifierRegistry.hpp
+165 −0 src/openvic-simulation/types/OrderedContainers.hpp
+6 −0 src/openvic-simulation/types/fixed_point/FixedPoint.hpp
+2 −1 src/openvic-simulation/types/fixed_point/FixedPointMap.hpp
+2 −1 src/openvic-simulation/utility/BMP.cpp
+27 −2 src/openvic-simulation/utility/NumberUtils.hpp
+34 −5 src/openvic-simulation/utility/StringUtils.hpp
+129 −0 src/openvic-simulation/utility/TslHelper.hpp
+48 −0 src/openvic-simulation/utility/Utility.hpp
28 changes: 14 additions & 14 deletions extension/src/openvic-extension/singletons/AssetManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -45,34 +45,34 @@ Ref<Image> AssetManager::_load_image(StringName const& path) {
return image;
}

AssetManager::image_asset_map_t::iterator AssetManager::_get_image_asset(StringName const& path) {
const image_asset_map_t::iterator it = image_assets.find(path);
AssetManager::image_asset_t* AssetManager::_get_image_asset(StringName const& path) {
image_asset_map_t::iterator it = image_assets.find(path);
if (it != image_assets.end()) {
return it;
return &it.value();
Hop311 marked this conversation as resolved.
Show resolved Hide resolved
}
const Ref<Image> image = _load_image(path);
ERR_FAIL_NULL_V(image, image_assets.end());
return image_assets.emplace(std::move(path), AssetManager::image_asset_t { image, nullptr }).first;
ERR_FAIL_NULL_V(image, nullptr);
return &image_assets.emplace(std::move(path), AssetManager::image_asset_t { image, nullptr }).first.value();
}

Ref<Image> AssetManager::get_image(StringName const& path, bool cache) {
if (cache) {
const image_asset_map_t::const_iterator it = _get_image_asset(path);
ERR_FAIL_COND_V(it == image_assets.end(), nullptr);
return it->second.image;
image_asset_t const* asset = _get_image_asset(path);
ERR_FAIL_NULL_V(asset, nullptr);
return asset->image;
} else {
return _load_image(path);
}
}

Ref<ImageTexture> AssetManager::get_texture(StringName const& path) {
const image_asset_map_t::iterator it = _get_image_asset(path);
ERR_FAIL_COND_V(it == image_assets.end(), nullptr);
if (it->second.texture.is_null()) {
it->second.texture = ImageTexture::create_from_image(it->second.image);
ERR_FAIL_NULL_V_MSG(it->second.texture, nullptr, vformat("Failed to turn image into texture: %s", path));
image_asset_t* asset = _get_image_asset(path);
ERR_FAIL_NULL_V(asset, nullptr);
if (asset->texture.is_null()) {
asset->texture = ImageTexture::create_from_image(asset->image);
ERR_FAIL_NULL_V_MSG(asset->texture, nullptr, vformat("Failed to turn image into texture: %s", path));
}
return it->second.texture;
return asset->texture;
}

Ref<Font> AssetManager::get_font(StringName const& name) {
Expand Down
7 changes: 4 additions & 3 deletions extension/src/openvic-extension/singletons/AssetManager.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,15 @@ namespace OpenVic {
godot::Ref<godot::Image> image;
godot::Ref<godot::ImageTexture> texture;
};
using image_asset_map_t = std::map<godot::StringName, image_asset_t>;
using font_map_t = std::map<godot::StringName, godot::Ref<godot::Font>>;
/* deque_ordered_map to avoid the need to reallocate. */
using image_asset_map_t = deque_ordered_map<godot::StringName, image_asset_t>;
using font_map_t = deque_ordered_map<godot::StringName, godot::Ref<godot::Font>>;

image_asset_map_t image_assets;
font_map_t fonts;

static godot::Ref<godot::Image> _load_image(godot::StringName const& path);
image_asset_map_t::iterator _get_image_asset(godot::StringName const& path);
image_asset_t* _get_image_asset(godot::StringName const& path);

protected:
static void _bind_methods();
Expand Down
5 changes: 4 additions & 1 deletion extension/src/openvic-extension/singletons/GameSingleton.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -609,9 +609,12 @@ Error GameSingleton::_load_flag_images() {
flag_types.emplace_back(std_to_godot_string_name(type));
}

flag_image_map.reserve(country_manager.get_countries().size());

Error ret = OK;
for (Country const& country : country_manager.get_countries()) {
std::map<StringName, Ref<Image>>& flag_images = flag_image_map[&country];
ordered_map<StringName, Ref<Image>>& flag_images = flag_image_map[&country];
flag_images.reserve(flag_types.size());
const String country_name = std_view_to_godot_string(country.get_identifier());
for (StringName const& flag_type : flag_types) {
const StringName flag_path =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ namespace OpenVic {
godot::Ref<godot::ImageTexture> province_colour_texture;
Mapmode::index_t mapmode_index = 0;
godot::Ref<godot::Texture2DArray> terrain_texture;
std::map<Country const*, std::map<godot::StringName, godot::Ref<godot::Image>>> flag_image_map;
ordered_map<Country const*, ordered_map<godot::StringName, godot::Ref<godot::Image>>> flag_image_map;

static godot::StringName const& _signal_gamestate_updated();
static godot::StringName const& _signal_province_selected();
Expand Down
6 changes: 3 additions & 3 deletions extension/src/openvic-extension/utility/UITools.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ static T* new_control(GUI::Element const& element, String const& name) {

using enum GUI::Element::orientation_t;
using enum Control::LayoutPreset;
static const std::map<GUI::Element::orientation_t, Control::LayoutPreset> orientation_map {
static const ordered_map<GUI::Element::orientation_t, Control::LayoutPreset> orientation_map {
{ UPPER_LEFT, PRESET_TOP_LEFT }, { LOWER_LEFT, PRESET_BOTTOM_LEFT },
{ LOWER_RIGHT, PRESET_BOTTOM_RIGHT }, { UPPER_RIGHT, PRESET_TOP_RIGHT },
{ CENTER, PRESET_CENTER }
Expand Down Expand Up @@ -400,7 +400,7 @@ static bool generate_text(generate_gui_args_t&& args) {
godot_label->set_custom_minimum_size(Utilities::to_godot_fvec2(text.get_max_size()));

using enum GUI::AlignedElement::format_t;
static const std::map<GUI::AlignedElement::format_t, HorizontalAlignment> format_map {
static const ordered_map<GUI::AlignedElement::format_t, HorizontalAlignment> format_map {
{ left, HORIZONTAL_ALIGNMENT_LEFT },
{ centre, HORIZONTAL_ALIGNMENT_CENTER },
{ right, HORIZONTAL_ALIGNMENT_RIGHT }
Expand Down Expand Up @@ -495,7 +495,7 @@ static bool generate_window(generate_gui_args_t&& args) {

static bool generate_element(GUI::Element const* element, String const& name, AssetManager& asset_manager, Control*& result) {
ERR_FAIL_NULL_V(element, false);
static const std::map<std::string_view, bool (*)(generate_gui_args_t&&)> type_map {
static const ordered_map<std::string_view, bool (*)(generate_gui_args_t&&)> type_map {
{ GUI::Icon::get_type_static(), &generate_icon },
{ GUI::Button::get_type_static(), &generate_button },
{ GUI::Checkbox::get_type_static(), &generate_checkbox },
Expand Down