# HG changeset patch # User unc0rr # Date 1316188511 -14400 # Node ID 1840570742578bfc8793126c8f3e7bae5d0b6fdd # Parent 89f5f5d3fdec0b163a290bc30481c97a18a2dfa3 - Allow 8 teams in game on 0.9.16-dev - Move protocol version check from FOLLOW to JOIN_ROOM diff -r 89f5f5d3fdec -r 184057074257 gameServer/HWProtoInRoomState.hs --- a/gameServer/HWProtoInRoomState.hs Fri Sep 16 10:29:09 2011 -0400 +++ b/gameServer/HWProtoInRoomState.hs Fri Sep 16 19:55:11 2011 +0400 @@ -52,7 +52,7 @@ clChan <- thisClientChans othChans <- roomOthersChans return $ - if not . null . drop 5 $ teams rm then + if not . null . drop (maxTeams rm - 1) $ teams rm then [Warning "too many teams"] else if canAddNumber rm <= 0 then [Warning "too many hedgehogs"] @@ -78,6 +78,10 @@ hhsList [_] = error "Hedgehogs list with odd elements number" hhsList (n:h:hhs) = HedgehogInfo n h : hhsList hhs newTeamHHNum r = min 4 (canAddNumber r) + maxTeams r + | roomProto r < 38 = 6 + | otherwise = 8 + handleCmd_inRoom ["REMOVE_TEAM", tName] = do (ci, _) <- ask diff -r 89f5f5d3fdec -r 184057074257 gameServer/HWProtoLobbyState.hs --- a/gameServer/HWProtoLobbyState.hs Fri Sep 16 10:29:09 2011 -0400 +++ b/gameServer/HWProtoLobbyState.hs Fri Sep 16 19:55:11 2011 +0400 @@ -75,11 +75,12 @@ let maybeRI = find (\ri -> roomName == name (irnc `room` ri)) ris let jRI = fromJust maybeRI let jRoom = irnc `room` jRI + let sameProto = clientProto cl == roomProto jRoom let jRoomClients = map (client irnc) $ roomClients irnc jRI let nicks = map nick jRoomClients let chans = map sendChan (cl : jRoomClients) return $ - if isNothing maybeRI then + if isNothing maybeRI || not sameProto then [Warning "No such rooms"] else if isRestrictedJoins jRoom then [Warning "Joining restricted"] @@ -135,7 +136,7 @@ cl <- thisClient let ri = clientRoom rnc $ fromJust ci let clRoom = room rnc ri - if isNothing ci || ri == lobbyId || clientProto cl /= roomProto clRoom then + if isNothing ci || ri == lobbyId then return [] else handleCmd_lobby ["JOIN_ROOM", name clRoom]