Skip to content

Commit 8c082b3

Browse files
SemphrissSemphris
andauthored
Better description for keyboard vs controller in multiplayer (#3553)
Co-authored-by: Semphris <semphris@protonmail.com>
1 parent 61512a3 commit 8c082b3

2 files changed

Lines changed: 16 additions & 2 deletions

File tree

src/supertux/menu/multiplayer_player_menu.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include "control/input_manager.hpp"
2424
#include "control/joystick_manager.hpp"
2525
#include "gui/dialog.hpp"
26+
#include "gui/item_toggle.hpp"
2627
#include "object/player.hpp"
2728
#include "supertux/game_session.hpp"
2829
#include "supertux/gameconfig.hpp"
@@ -37,7 +38,8 @@ MultiplayerPlayerMenu::MultiplayerPlayerMenu(int player_id)
3738
add_label(fmt::format(_("Player {}"), player_id + 1));
3839
add_hl();
3940

40-
add_toggle(-1, _("Play with the keyboard"), &InputManager::current()->m_uses_keyboard[player_id]);
41+
add_toggle(-1, _("Play with the keyboard"), &InputManager::current()->m_uses_keyboard[player_id])
42+
.set_help(_("Don't automatically bind controllers to this player, and spawn it even if it has no controller."));
4143

4244
if (player_id != 0 && GameSession::current()
4345
&& !GameSession::current()->get_savegame().is_title_screen())

src/supertux/menu/multiplayer_players_menu.cpp

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,19 @@ MultiplayerPlayersMenu::MultiplayerPlayersMenu()
4545

4646
if (InputManager::current()->can_add_user())
4747
{
48-
add_entry(_("Add Player"), [] {
48+
add_entry(_("Add Player (Keyboard)"), [] {
49+
InputManager::current()->push_user();
50+
InputManager::current()->m_uses_keyboard[InputManager::current()->get_num_users() - 1] = true;
51+
52+
if (GameSession::current() && GameSession::current()->get_savegame().get_player_status().m_num_players < InputManager::current()->get_num_users())
53+
{
54+
GameSession::current()->get_savegame().get_player_status().add_player();
55+
}
56+
57+
MenuManager::instance().set_menu(std::make_unique<MultiplayerPlayersMenu>());
58+
});
59+
60+
add_entry(_("Add Player (Controller)"), [] {
4961
InputManager::current()->push_user();
5062

5163
if (GameSession::current() && GameSession::current()->get_savegame().get_player_status().m_num_players < InputManager::current()->get_num_users())

0 commit comments

Comments
 (0)