← Back to team overview

widelands-dev team mailing list archive

[Merge] lp:~widelands-dev/widelands/bug-1842396-no-tribe into lp:widelands


Notabilis has proposed merging lp:~widelands-dev/widelands/bug-1842396-no-tribe into lp:widelands.

Commit message:
Fixing crash when no tribe is selected for a multiplayer client.

Requested reviews:
  Widelands Developers (widelands-dev)
Related bugs:
  Bug #1842396 in widelands: "Random tribes crash multiplayer client"

For more details, see:

Fixing a crash with showing loading screen tips when no tribe is selected for a multiplayer client.

Seems to be a copy&paste or refactoring bug: When creating the tips as a single player or multiplayer host, the check for the thrown exception is done.
Your team Widelands Developers is requested to review the proposed merge of lp:~widelands-dev/widelands/bug-1842396-no-tribe into lp:widelands.
=== modified file 'src/network/gameclient.cc'
--- src/network/gameclient.cc	2019-08-28 06:12:07 +0000
+++ src/network/gameclient.cc	2019-09-04 17:13:59 +0000
@@ -149,10 +149,14 @@
  * Show progress dialog and load map or saved game.
 InteractiveGameBase* GameClientImpl::init_game(GameClient* parent, UI::ProgressWindow* loader) {
-	const std::string& tribename = parent->get_players_tribe();
-	assert(Widelands::tribe_exists(tribename));
-	GameTips tips(*loader, {"general_game", "multiplayer", tribename});
+	std::vector<std::string> tipstext;
+	tipstext.push_back("general_game");
+	tipstext.push_back("multiplayer");
+	try {
+		tipstext.push_back(parent->get_players_tribe());
+	} catch (GameSettingsProvider::NoTribe) {
+	}
+	GameTips tips(*loader, tipstext);
 	modal = loader;

Follow ups