From 862e482895c405808b8ab9f77e6a2509c57948c7 Mon Sep 17 00:00:00 2001 From: Steve Cotton Date: Thu, 1 Aug 2019 21:17:08 +0200 Subject: [PATCH] Add a hint about not save-loading, and link to it from the "Back to ..." menu --- data/core/help.cfg | 19 ++++++++++++++++++- data/themes/default.cfg | 2 +- src/hotkey/command_executor.cpp | 4 ++++ src/hotkey/hotkey_command.cpp | 1 + src/hotkey/hotkey_command.hpp | 1 + src/hotkey/hotkey_handler.cpp | 1 + 6 files changed, 26 insertions(+), 2 deletions(-) diff --git a/data/core/help.cfg b/data/core/help.cfg index 281f9ad3d299..5e6406dec9c4 100644 --- a/data/core/help.cfg +++ b/data/core/help.cfg @@ -25,7 +25,7 @@ [section] id=gameplay title= _ "Gameplay" - topics=..gameplay,victory_and_defeat,recruit_and_recall,income_and_upkeep,hitpoints,advancement,movement,shroud_and_fog,combat,damage_types_and_resistance,orbs,time_of_day,healing,wrap_up + topics=..gameplay,victory_and_defeat,recruit_and_recall,income_and_upkeep,hitpoints,advancement,movement,shroud_and_fog,combat,damage_types_and_resistance,orbs,time_of_day,healing,saveload,wrap_up [/section] [section] @@ -279,6 +279,23 @@ Normally you can undo a unit’s movement, as long as an event with a randomized [/topic] # wmllint: markcheck on + [topic] + id=saveload + title= _ "Save-loading" + text= _ "Random numbers are part of Wesnoth, attacks can fail and units can die due to bad luck. This is an expected part of the game, and one of the aims of the game is that a sufficiently skilled player should be able to complete all of the mainline campaigns, on hard, without needing to save-load. Going back to a previous turn to try a different strategy is a part of learning the game, but we recommend against reloading merely to try the same strategy again while hoping for better luck. + +One of the challenges of the game is to work out how to protect your heroes. Small risks quickly build up — if you have five important units, and they each have just a 1% chance of death each turn, you can text='expect' one of them to die about every 20 turns. So, you’ll rarely make it through a scenario without having it happen. + +The following points are under discussion on the forums. At least for the 1.15.x series before 1.16.0 please assume that the forum threads are more authoritative than the text on this page. + +In the mainline campaigns, on hard: +• A sufficiently skilled player will have a good chance to win each scenario on the first time that they see that scenario, without foreknowledge of what will happen. +• This assumes that the player picks up all of the clues given in the dialogue. +• There are more experience points available than on easy, and the player will be able to train enough troops to cope with losing some L2 or L3 units. + +That said, it’s a game; the best way to play it is whichever way gives you the most enjoyment." + [/topic] + # wmllint: markcheck off [topic] id=combat diff --git a/data/themes/default.cfg b/data/themes/default.cfg index 0098a120e8d3..c22ac9c1fc27 100644 --- a/data/themes/default.cfg +++ b/data/themes/default.cfg @@ -90,7 +90,7 @@ title= _ "Back to..." id=menu-autosaves button=false - items=AUTOSAVES + items=AUTOSAVES,help-about-saveload [/menu] [menu] diff --git a/src/hotkey/command_executor.cpp b/src/hotkey/command_executor.cpp index b91516b63cc9..bd3be7a98197 100644 --- a/src/hotkey/command_executor.cpp +++ b/src/hotkey/command_executor.cpp @@ -247,6 +247,10 @@ bool command_executor::do_execute_command(const hotkey_command& cmd, int /*inde case HOTKEY_HELP: show_help(); break; + case HOTKEY_HELP_ABOUT_SAVELOAD: + // although HOTKEY_HELP uses a virtual call to allow context-specific help, this one is already a specific topic + help::show_help("saveload"); + break; case HOTKEY_CHAT_LOG: show_chat_log(); break; diff --git a/src/hotkey/hotkey_command.cpp b/src/hotkey/hotkey_command.cpp index 497907900d26..08559722d178 100644 --- a/src/hotkey/hotkey_command.cpp +++ b/src/hotkey/hotkey_command.cpp @@ -275,6 +275,7 @@ std::array master_hotkey_list {{ { HOTKEY_SPEAK_ALLY, "speaktoally", N_("Speak to Ally"), false, scope_game, HKCAT_CHAT, "" }, { HOTKEY_SPEAK_ALL, "speaktoall", N_("Speak to All"), false, scope_game, HKCAT_CHAT, "" }, { HOTKEY_HELP, "help", N_("Help"), false, scope_game | scope_editor | scope_main, HKCAT_GENERAL, "" }, + { HOTKEY_HELP_ABOUT_SAVELOAD, "help-about-saveload", N_("Help about save-loading"), false, scope_game, HKCAT_GENERAL, N_("Hint: save-loading is unnecessary")}, { HOTKEY_CHAT_LOG, "chatlog", N_("View Chat Log"), false, scope_game, HKCAT_CHAT, "" }, { HOTKEY_USER_CMD, "command", N_("Enter User Command"), false, scope_game, HKCAT_CHAT, "" }, { HOTKEY_CUSTOM_CMD, "customcommand", N_("Custom Command"), false, scope_game, HKCAT_CHAT, "" }, diff --git a/src/hotkey/hotkey_command.hpp b/src/hotkey/hotkey_command.hpp index 39441ee7b09d..3061455cc36a 100644 --- a/src/hotkey/hotkey_command.hpp +++ b/src/hotkey/hotkey_command.hpp @@ -54,6 +54,7 @@ enum HOTKEY_COMMAND { HOTKEY_LABEL_TEAM_TERRAIN, HOTKEY_LABEL_TERRAIN, HOTKEY_CLEAR_LABELS,HOTKEY_SHOW_ENEMY_MOVES, HOTKEY_BEST_ENEMY_MOVES, HOTKEY_DELAY_SHROUD, HOTKEY_UPDATE_SHROUD, HOTKEY_CONTINUE_MOVE, HOTKEY_SEARCH, HOTKEY_SPEAK_ALLY, HOTKEY_SPEAK_ALL, HOTKEY_HELP, + HOTKEY_HELP_ABOUT_SAVELOAD, HOTKEY_CHAT_LOG, HOTKEY_LANGUAGE, HOTKEY_ANIMATE_MAP, // Replay diff --git a/src/hotkey/hotkey_handler.cpp b/src/hotkey/hotkey_handler.cpp index f50003b78017..b6fe90add358 100644 --- a/src/hotkey/hotkey_handler.cpp +++ b/src/hotkey/hotkey_handler.cpp @@ -304,6 +304,7 @@ bool play_controller::hotkey_handler::can_execute_command(const hotkey::hotkey_c case hotkey::HOTKEY_QUIT_TO_DESKTOP: case hotkey::HOTKEY_SEARCH: case hotkey::HOTKEY_HELP: + case hotkey::HOTKEY_HELP_ABOUT_SAVELOAD: case hotkey::HOTKEY_USER_CMD: case hotkey::HOTKEY_CUSTOM_CMD: case hotkey::HOTKEY_AI_FORMULA: