From 08cfed6658b7b419b6d20fb68764fda86fda9e81 Mon Sep 17 00:00:00 2001 From: Zeno Rogue Date: Sun, 27 Mar 2022 09:02:06 +0200 Subject: [PATCH] multi:: split-screen mode is now an option --- basegraph.cpp | 3 ++- multi.cpp | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/basegraph.cpp b/basegraph.cpp index a6e5d716..2efa605e 100644 --- a/basegraph.cpp +++ b/basegraph.cpp @@ -1497,6 +1497,7 @@ EX int calcfps() { EX namespace subscreens { EX vector player_displays; + /** 'in' is on if we are currently working on a single display */ EX bool in; EX int current_player; @@ -1528,7 +1529,7 @@ EX namespace subscreens { EX bool split(reaction_t what) { using namespace racing; if(in) return false; - if(!racing::on && !(shmup::on && GDIM == 3)) return false; + if(!multi::split_screen) return false; if(!player_displays.empty()) { in = true; int& p = current_player; diff --git a/multi.cpp b/multi.cpp index 1486e490..355687e6 100644 --- a/multi.cpp +++ b/multi.cpp @@ -28,6 +28,8 @@ EX namespace multi { EX config scfg; EX charstyle scs[MAXPLAYER]; + EX bool split_screen; + EX int players = 1; EX cellwalker player[MAXPLAYER]; EX vector revive_queue; // queue for revival @@ -519,6 +521,7 @@ EX void showConfigureMultiplayer() { dialog::addSelItem(XLAT("keyboard & joysticks"), "", 'k'); dialog::add_action(multi::configure); + add_edit(split_screen); } else dialog::addBreak(200); @@ -690,6 +693,8 @@ EX void initConfig() { #if CAP_CONFIG addsaver(multi::players, "mode-number of players"); + param_b(multi::split_screen, "splitscreen", false) + ->editable("split screen mode", 's'); addsaver(alwaysuse, "use configured keys"); // unfortunately we cannot use key names here because SDL is not yet initialized for(int i=0; i<512; i++)