162 |
162 |
163 procedure handler_PROTO(var p: TCmdParami); |
163 procedure handler_PROTO(var p: TCmdParami); |
164 begin |
164 begin |
165 end; |
165 end; |
166 |
166 |
167 type TRoomAction = (raUnknown, raAdd, raUpdate, raRemove); |
|
168 const raRoomInfoLength: array[TRoomAction] of integer = (1, 9, 10, 1); |
|
169 const raRoomAction: array[TRoomAction] of TMessageType = (mtAddRoom, mtAddRoom, mtUpdateRoom, mtRemoveRoom); |
|
170 var roomInfo: string; |
167 var roomInfo: string; |
171 roomLinesCount: integer; |
168 roomLinesCount: integer; |
172 roomAction: TRoomAction; |
169 |
173 |
170 procedure handler_ROOM_ADD(var p: TCmdParam); |
174 procedure handler_ROOM(var p: TCmdParam); |
|
175 begin |
171 begin |
176 roomInfo:= ''; |
172 roomInfo:= ''; |
177 roomLinesCount:= 0; |
173 roomLinesCount:= 0 |
178 roomAction:= raUnknown |
174 end; |
179 end; |
175 |
180 |
176 procedure handler_ROOM_ADD_s(var s: TCmdParamS); |
181 procedure handler_ROOM_s(var s: TCmdParamS); |
177 begin |
182 begin |
178 roomInfo:= roomInfo + s.str1 + #10; |
183 if roomAction = raUnknown then |
179 inc(roomLinesCount); |
184 begin |
180 |
185 if s.str1 = 'ADD' then |
181 if roomLinesCount = 9 then |
186 roomAction:= raAdd |
182 begin |
187 else |
183 sendUI(mtAddRoom, @roomInfo[1], length(roomInfo) - 1); |
188 if s.str1 = 'UPD' then |
184 roomInfo:= ''; |
189 roomAction:= raUpdate |
185 roomLinesCount:= 0 |
190 else |
|
191 if s.str1 = 'DEL' then |
|
192 roomAction:= raRemove |
|
193 end |
|
194 else begin |
|
195 roomInfo:= roomInfo + s.str1 + #10; |
|
196 inc(roomLinesCount); |
|
197 |
|
198 if roomLinesCount = raRoomInfoLength[roomAction] then |
|
199 begin |
|
200 sendUI(raRoomAction[roomAction], @roomInfo[1], length(roomInfo) - 1); |
|
201 roomLinesCount:= 0; |
|
202 roomInfo:= '' |
|
203 end; |
|
204 end; |
186 end; |
|
187 end; |
|
188 |
|
189 procedure handler_ROOM_DEL(var p: TCmdParamS); |
|
190 begin |
|
191 sendUI(mtRemoveRoom, @p.str1[1], length(p.str1)); |
|
192 end; |
|
193 |
|
194 procedure handler_ROOM_UPD(var p: TCmdParam); |
|
195 begin |
|
196 roomInfo:= ''; |
|
197 roomLinesCount:= 0 |
|
198 end; |
|
199 |
|
200 procedure handler_ROOM_UPD_s(var s: TCmdParamS); |
|
201 begin |
|
202 roomInfo:= roomInfo + s.str1 + #10; |
|
203 inc(roomLinesCount); |
|
204 |
|
205 if roomLinesCount = 10 then |
|
206 sendUI(mtUpdateRoom, @roomInfo[1], length(roomInfo) - 1); |
205 end; |
207 end; |
206 |
208 |
207 procedure handler_ROOMS(var p: TCmdParam); |
209 procedure handler_ROOMS(var p: TCmdParam); |
208 begin |
210 begin |
209 roomInfo:= ''; |
211 roomInfo:= ''; |
269 PHandler(@handler_JOINED), PHandler(@handler_JOINED_s), |
271 PHandler(@handler_JOINED), PHandler(@handler_JOINED_s), |
270 PHandler(@handler_JOINING), PHandler(@handler_KICKED), PHandler(@handler_LEFT), |
272 PHandler(@handler_JOINING), PHandler(@handler_KICKED), PHandler(@handler_LEFT), |
271 PHandler(@handler_LEFT_s), PHandler(@handler_LOBBY_JOINED), |
273 PHandler(@handler_LEFT_s), PHandler(@handler_LOBBY_JOINED), |
272 PHandler(@handler_LOBBY_JOINED_s), PHandler(@handler_LOBBY_LEFT), |
274 PHandler(@handler_LOBBY_JOINED_s), PHandler(@handler_LOBBY_LEFT), |
273 PHandler(@handler_NICK), PHandler(@handler_NOTICE), PHandler(@handler_PING), |
275 PHandler(@handler_NICK), PHandler(@handler_NOTICE), PHandler(@handler_PING), |
274 PHandler(@handler_PING_s), PHandler(@handler_PROTO), PHandler(@handler_ROOM), |
276 PHandler(@handler_PING_s), PHandler(@handler_PROTO), PHandler(@handler_ROOMS), |
275 PHandler(@handler_ROOM_s), PHandler(@handler_ROOMS), PHandler(@handler_ROOMS_s), |
277 PHandler(@handler_ROOMS_s), PHandler(@handler_ROOM_ADD), |
|
278 PHandler(@handler_ROOM_ADD_s), PHandler(@handler_ROOM_DEL), |
|
279 PHandler(@handler_ROOM_UPD), PHandler(@handler_ROOM_UPD_s), |
276 PHandler(@handler_ROUND_FINISHED), PHandler(@handler_RUN_GAME), |
280 PHandler(@handler_ROUND_FINISHED), PHandler(@handler_RUN_GAME), |
277 PHandler(@handler_SERVER_AUTH), PHandler(@handler_SERVER_MESSAGE), |
281 PHandler(@handler_SERVER_AUTH), PHandler(@handler_SERVER_MESSAGE), |
278 PHandler(@handler_SERVER_VARS), PHandler(@handler_TEAM_ACCEPTED), |
282 PHandler(@handler_SERVER_VARS), PHandler(@handler_TEAM_ACCEPTED), |
279 PHandler(@handler_TEAM_COLOR), PHandler(@handler_TEAM_COLOR_s), |
283 PHandler(@handler_TEAM_COLOR), PHandler(@handler_TEAM_COLOR_s), |
280 PHandler(@handler_WARNING)); |
284 PHandler(@handler_WARNING)); |