Skip to content

Commit

Permalink
Merge pull request #1895 from ZombieFreak115/no-leader-improvements
Browse files Browse the repository at this point in the history
Minor no-leader improvements
  • Loading branch information
schombert authored Feb 4, 2025
2 parents 64eb5d7 + 5b6f8c5 commit 668f641
Show file tree
Hide file tree
Showing 11 changed files with 3,605 additions and 202 deletions.
3,422 changes: 3,422 additions & 0 deletions enc_temp_folder/d117bd389f5bd8931bff7b02cd868cc/gui_unit_panel.hpp

Large diffs are not rendered by default.

8 changes: 4 additions & 4 deletions src/ai/ai.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5256,8 +5256,8 @@ float estimate_army_defensive_strength(sys::state& state, dcon::army_id a) {
auto n = state.world.army_get_controller_from_army_control(a);
if(!n)
n = state.world.national_identity_get_nation_from_identity_holder(state.national_definitions.rebel_id);
auto back = state.world.leader_get_background(gen);
auto pers = state.world.leader_get_personality(gen);
auto back = military::get_leader_background_wrapper(state, gen);
auto pers = military::get_leader_personality_wrapper(state, gen);
float morale = state.world.nation_get_modifier_values(n, sys::national_mod_offsets::org_regain)
+ state.world.leader_trait_get_morale(back)
+ state.world.leader_trait_get_morale(pers) + 1.0f;
Expand Down Expand Up @@ -5290,8 +5290,8 @@ float estimate_army_offensive_strength(sys::state& state, dcon::army_id a) {
auto n = state.world.army_get_controller_from_army_control(a);
if(!n)
n = state.world.national_identity_get_nation_from_identity_holder(state.national_definitions.rebel_id);
auto back = state.world.leader_get_background(gen);
auto pers = state.world.leader_get_personality(gen);
auto back = military::get_leader_background_wrapper(state, gen);
auto pers = military::get_leader_personality_wrapper(state, gen);
float morale = state.world.nation_get_modifier_values(n, sys::national_mod_offsets::org_regain)
+ state.world.leader_trait_get_morale(back)
+ state.world.leader_trait_get_morale(pers) + 1.0f;
Expand Down
40 changes: 18 additions & 22 deletions src/gui/gui_land_combat.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -43,11 +43,10 @@ class lc_attacker_leader_img : public image_element_base {
void update_tooltip(sys::state& state, int32_t x, int32_t y, text::columnar_layout& contents) noexcept override {
auto b = retrieve<dcon::land_battle_id>(state, parent);
auto lid = state.world.land_battle_get_general_from_attacking_general(b);

if(lid)
display_leader_attributes(state, lid, contents, 0);
else
if(!lid) {
text::add_line(state, contents, "no_leader");
}
display_leader_attributes(state, lid, contents, 0);
}
};
class lc_defending_leader_img : public image_element_base {
Expand Down Expand Up @@ -86,11 +85,10 @@ class lc_defending_leader_img : public image_element_base {
void update_tooltip(sys::state& state, int32_t x, int32_t y, text::columnar_layout& contents) noexcept override {
auto b = retrieve<dcon::land_battle_id>(state, parent);
auto lid = state.world.land_battle_get_general_from_defending_general(b);

if(lid)
display_leader_attributes(state, lid, contents, 0);
else
if(!lid) {
text::add_line(state, contents, "no_leader");
}
display_leader_attributes(state, lid, contents, 0);
}
};

Expand All @@ -104,7 +102,7 @@ class lc_attacking_leader_name : public simple_text_element_base {
auto name = state.to_string_view(state.world.leader_get_name(lid));
set_text(state, std::string(name));
} else {
set_text(state, "");
set_text(state, text::produce_simple_string(state, "no_leader"));
}
}
};
Expand All @@ -118,7 +116,7 @@ class lc_defending_leader_name : public simple_text_element_base {
auto name = state.to_string_view(state.world.leader_get_name(lid));
set_text(state, std::string(name));
} else {
set_text(state, "");
set_text(state, text::produce_simple_string(state, "no_leader"));
}
}
};
Expand Down Expand Up @@ -568,8 +566,8 @@ class defender_combat_modifiers : public overlapping_listbox_element_base<lc_mod
auto location = state.world.land_battle_get_location_from_land_battle_location(b);
auto terrain_bonus = state.world.province_get_modifier_values(location, sys::provincial_mod_offsets::defense);

auto defender_per = state.world.leader_get_personality(state.world.land_battle_get_general_from_defending_general(b));
auto defender_bg = state.world.leader_get_background(state.world.land_battle_get_general_from_defending_general(b));
auto defender_per = military::get_leader_personality_wrapper(state, state.world.land_battle_get_general_from_defending_general(b));
auto defender_bg = military::get_leader_background_wrapper(state, state.world.land_battle_get_general_from_defending_general(b));

auto defence_bonus =
int32_t(state.world.leader_trait_get_defense(defender_per) + state.world.leader_trait_get_defense(defender_bg));
Expand Down Expand Up @@ -615,8 +613,8 @@ class attacker_combat_modifiers : public overlapping_listbox_element_base<lc_mod

auto attacker_dice = both_dice & 0x0F;

auto attacker_per = state.world.leader_get_personality(state.world.land_battle_get_general_from_attacking_general(b));
auto attacker_bg = state.world.leader_get_background(state.world.land_battle_get_general_from_attacking_general(b));
auto attacker_per = military::get_leader_personality_wrapper(state, state.world.land_battle_get_general_from_attacking_general(b));
auto attacker_bg = military::get_leader_background_wrapper(state, state.world.land_battle_get_general_from_attacking_general(b));

auto attack_bonus =
int32_t(state.world.leader_trait_get_attack(attacker_per) + state.world.leader_trait_get_attack(attacker_bg));
Expand Down Expand Up @@ -1100,11 +1098,10 @@ class lc_our_leader_img : public image_element_base {
military::land_battle_report* report = retrieve< military::land_battle_report*>(state, parent);
bool we_are_attacker = (report->attacker_won == report->player_on_winning_side);
dcon::leader_id lid = we_are_attacker ? report->attacking_general : report->defending_general;

if(lid)
display_leader_attributes(state, lid, contents, 0);
else
if(!lid) {
text::add_line(state, contents, "no_leader");
}
display_leader_attributes(state, lid, contents, 0);
}
};
class lc_our_leader_name : public simple_text_element_base {
Expand Down Expand Up @@ -1160,11 +1157,10 @@ class lc_their_leader_img : public image_element_base {
military::land_battle_report* report = retrieve< military::land_battle_report*>(state, parent);
bool we_are_attacker = (report->attacker_won == report->player_on_winning_side);
dcon::leader_id lid = !we_are_attacker ? report->attacking_general : report->defending_general;

if(lid)
display_leader_attributes(state, lid, contents, 0);
else
if(!lid) {
text::add_line(state, contents, "no_leader");
}
display_leader_attributes(state, lid, contents, 0);
}
};
class lc_their_leader_name : public simple_text_element_base {
Expand Down
Loading

0 comments on commit 668f641

Please sign in to comment.