Skip to content

Commit

Permalink
Updated SIM submodule and switched to ordered_map
Browse files Browse the repository at this point in the history
  • Loading branch information
Hop311 committed Jan 9, 2024
1 parent cf34ce1 commit 41d35fb
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 23 deletions.
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();
}
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

0 comments on commit 41d35fb

Please sign in to comment.