# HG changeset patch # User unc0rr # Date 1416259959 -10800 # Node ID c33b2f00173090f8fb2c8e8c2d34f345c80c7c29 # Parent 9329dab044904c35d0a7a87d52404c02b539a58c This should work, can't test: room flags passed in room info message instead of just 'in-game' state, including 'in-game', 'restricted joins', 'registered only' and 'passworded' flags diff -r 9329dab04490 -r c33b2f001730 QTfrontend/model/roomslistmodel.cpp --- a/QTfrontend/model/roomslistmodel.cpp Mon Nov 17 15:25:24 2014 +0100 +++ b/QTfrontend/model/roomslistmodel.cpp Tue Nov 18 00:32:39 2014 +0300 @@ -262,9 +262,10 @@ result = info; + QString flags = info[StateColumn]; // for matters of less memory usage and quicker access store // the boolean string as either "t" or empty - if (info[StateColumn].toLower() == "true") + if (flags.contains('g')) result[StateColumn] = "t"; else result[StateColumn] = QString(); diff -r 9329dab04490 -r c33b2f001730 gameServer/HWProtoInRoomState.hs --- a/gameServer/HWProtoInRoomState.hs Mon Nov 17 15:25:24 2014 +0100 +++ b/gameServer/HWProtoInRoomState.hs Tue Nov 18 00:32:39 2014 +0300 @@ -285,7 +285,7 @@ handleCmd_inRoom ["ROUNDFINISHED", "1"] handleCmd_inRoom ["TOGGLE_RESTRICT_JOINS"] = roomAdminOnly $ - return [ModifyRoom (\r -> r{isRestrictedJoins = not $ isRestrictedJoins r})] + return [ModifyRoom (\r -> r{isRestrictedJoins = not $ isRestrictedJoins r}), SendUpdateOnThisRoom] handleCmd_inRoom ["TOGGLE_RESTRICT_TEAMS"] = roomAdminOnly $ @@ -293,7 +293,7 @@ handleCmd_inRoom ["TOGGLE_REGISTERED_ONLY"] = roomAdminOnly $ - return [ModifyRoom (\r -> r{isRegisteredOnly = not $ isRegisteredOnly r})] + return [ModifyRoom (\r -> r{isRegisteredOnly = not $ isRegisteredOnly r}), SendUpdateOnThisRoom] handleCmd_inRoom ["ROOM_NAME", newName] = roomAdminOnly $ do diff -r 9329dab04490 -r c33b2f001730 gameServer/Utils.hs --- a/gameServer/Utils.hs Mon Nov 17 15:25:24 2014 +0100 +++ b/gameServer/Utils.hs Tue Nov 18 00:32:39 2014 +0300 @@ -158,7 +158,7 @@ head (Map.findWithDefault ["Default"] "SCHEME" (params r)), head (Map.findWithDefault ["Default"] "AMMO" (params r)) ] - | otherwise = [ + | p < 48 = [ showB $ isJust $ gameInfo r, name r, showB $ playersIn r, @@ -169,6 +169,25 @@ head (Map.findWithDefault ["Default"] "SCHEME" (params r)), head (Map.findWithDefault ["Default"] "AMMO" (params r)) ] + | otherwise = [ + B.pack roomFlags, + name r, + showB $ playersIn r, + showB $ length $ teams r, + n, + Map.findWithDefault "+rnd+" "MAP" (mapParams r), + head (Map.findWithDefault ["Normal"] "SCRIPT" (params r)), + head (Map.findWithDefault ["Default"] "SCHEME" (params r)), + head (Map.findWithDefault ["Default"] "AMMO" (params r)) + ] + where + roomFlags = concat [ + "-" + , ['g' | isJust $ gameInfo r] + , ['p' | B.null $ password r] + , ['j' | isRestrictedJoins r] + , ['r' | isRegisteredOnly r] + ] answerFullConfigParams :: ClientInfo