equal
deleted
inserted
replaced
27 |
27 |
28 data TeamInfo = |
28 data TeamInfo = |
29 TeamInfo |
29 TeamInfo |
30 { |
30 { |
31 teamname :: String, |
31 teamname :: String, |
|
32 teamcolor :: String, |
|
33 teamgrave :: String, |
|
34 teamfort :: String, |
|
35 difficulty :: Int, |
32 hedgehogs :: [HedgehogInfo] |
36 hedgehogs :: [HedgehogInfo] |
33 } |
37 } |
34 |
38 |
35 data RoomInfo = |
39 data RoomInfo = |
36 RoomInfo |
40 RoomInfo |
80 |
84 |
81 noChangeClients :: ClientsTransform |
85 noChangeClients :: ClientsTransform |
82 noChangeClients a = a |
86 noChangeClients a = a |
83 |
87 |
84 modifyClient :: ClientInfo -> ClientsTransform |
88 modifyClient :: ClientInfo -> ClientsTransform |
|
89 modifyClient _ [] = error "modifyClient: no such client" |
85 modifyClient client (cl:cls) = |
90 modifyClient client (cl:cls) = |
86 if cl == client then |
91 if cl == client then |
87 client : cls |
92 client : cls |
88 else |
93 else |
89 cl : (modifyClient client cls) |
94 cl : (modifyClient client cls) |
95 addRoom room rooms = room:rooms |
100 addRoom room rooms = room:rooms |
96 |
101 |
97 removeRoom :: String -> RoomsTransform |
102 removeRoom :: String -> RoomsTransform |
98 removeRoom roomname rooms = filter (\rm -> roomname /= name rm) rooms |
103 removeRoom roomname rooms = filter (\rm -> roomname /= name rm) rooms |
99 |
104 |
100 changeRoomConfig :: String -> String -> [String] -> RoomsTransform |
105 modifyRoom :: RoomInfo -> RoomsTransform |
101 changeRoomConfig _ _ _ [] = error "changeRoomConfig: no such room" |
106 modifyRoom _ [] = error "changeRoomConfig: no such room" |
102 changeRoomConfig roomName paramName paramStrs (room:rooms) = |
107 modifyRoom room (rm:rms) = |
103 if roomName == name room then |
108 if name room == name rm then |
104 room{params = Map.insert paramName paramStrs (params room)} : rooms |
109 room : rms |
105 else |
110 else |
106 room : changeRoomConfig roomName paramName paramStrs rooms |
111 room : modifyRoom room rms |