Vary victory laurel in campaign select, depending on the difficulty beaten at

(No change to the laurel in difficulty select.)
This commit is contained in:
Celtic Minstrel 2017-08-12 23:29:48 -04:00
parent 25a0d099a9
commit 74cff96475
9 changed files with 38 additions and 2 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

View file

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

View file

@ -62,6 +62,10 @@
game_logo="misc/logo.png"
game_logo_background="misc/logo-bg.png"
victory_laurel="misc/laurel-silver.png"
victory_laurel_hardest="misc/laurel-gold.png"
victory_laurel_easy="misc/laurel-bronze.png"
orb="misc/orb.png"
energy="misc/bar-energy.png"

View file

@ -144,7 +144,7 @@
[image]
id = "victory"
definition = "default"
label = "misc/laurel.png"
label = "misc/laurel-gold.png"
[/image]
[/column]

View file

@ -186,6 +186,9 @@ std::string
game_title_background,
game_logo,
game_logo_background,
victory_laurel,
victory_laurel_hardest,
victory_laurel_easy,
// orbs and hp/xp bar
orb,
energy,
@ -314,6 +317,10 @@ void load_config(const config &v)
game_logo = i["game_logo"].str();
game_logo_background = i["game_logo_background"].str();
victory_laurel = i["victory_laurel"];
victory_laurel_hardest = i["victory_laurel_hardest"];
victory_laurel_easy = i["victory_laurel_easy"];
orb = i["orb"].str();
energy = i["energy"].str();

View file

@ -92,6 +92,9 @@ namespace game_config
game_title_background,
game_logo,
game_logo_background,
victory_laurel,
victory_laurel_hardest,
victory_laurel_easy,
// orbs and hp/xp bar
orb,
energy,

View file

@ -220,6 +220,18 @@ void campaign::set_metadata()
void campaign::mark_if_completed()
{
data_["completed"] = preferences::is_campaign_completed(data_["id"]);
std::vector<std::string> completed_difficulties;
bool completed_on_hardest = false;
for(auto cfg : data_.child_range("difficulty")) {
if(preferences::is_campaign_completed(data_["id"], cfg["define"])) {
completed_difficulties.push_back(cfg["define"]);
completed_on_hardest = true;
} else {
completed_on_hardest = false;
}
}
data_["completed_difficulties"] = utils::join(completed_difficulties);
data_["completed_on_hardest"] = completed_on_hardest;
}
create_engine::create_engine(CVideo& v, saved_game& state)

View file

@ -266,7 +266,17 @@ void campaign_selection::add_campaign_to_tree(window& window, const config& camp
item["label"] = campaign["name"];
data.emplace("name", item);
item["label"] = campaign["completed"].to_bool() ? "misc/laurel.png" : "misc/blank-hex.png";
if(campaign["completed_on_hardest"].to_bool()) {
item["label"] = game_config::images::victory_laurel_hardest;
} else if(campaign["completed"].to_bool()) {
if(campaign["completed_difficulties"] == campaign.child_or_empty("difficulty")["define"]) {
item["label"] = game_config::images::victory_laurel_easy;
} else {
item["label"] = game_config::images::victory_laurel;
}
} else {
item["label"] = "misc/blank-hex.png";
}
data.emplace("victory", item);
tree.add_node("campaign", data).set_id(campaign["id"]);