diff -r 045e8162c9cd -r 8d41d22a291d hedgewars/uIO.pas --- a/hedgewars/uIO.pas Tue May 01 20:54:30 2012 +0400 +++ b/hedgewars/uIO.pas Tue May 01 19:56:55 2012 +0200 @@ -143,27 +143,26 @@ end; procedure IPCCheckSock; -const ss: shortstring = ''; var i: LongInt; s: shortstring; begin -if IPCSock = nil then - exit; + if IPCSock = nil then + exit; -fds^.numsockets:= 0; -SDLNet_AddSocket(fds, IPCSock); + fds^.numsockets:= 0; + SDLNet_AddSocket(fds, IPCSock); -while SDLNet_CheckSockets(fds, 0) > 0 do + while SDLNet_CheckSockets(fds, 0) > 0 do begin - i:= SDLNet_TCP_Recv(IPCSock, @s[1], 255 - Length(ss)); - if i > 0 then + i:= SDLNet_TCP_Recv(IPCSock, @s[1], 255 - Length(SocketString)); + if i > 0 then begin - s[0]:= char(i); - ss:= ss + s; - while (Length(ss) > 1) and (Length(ss) > byte(ss[1])) do + s[0]:= char(i); + SocketString:= SocketString + s; + while (Length(SocketString) > 1) and (Length(SocketString) > byte(SocketString[1])) do begin - ParseIPCCommand(copy(ss, 2, byte(ss[1]))); - Delete(ss, 1, Succ(byte(ss[1]))) + ParseIPCCommand(copy(SocketString, 2, byte(SocketString[1]))); + Delete(SocketString, 1, Succ(byte(SocketString[1]))) end end else @@ -435,8 +434,9 @@ headcmd:= nil; lastcmd:= nil; - isPonged:= false; // was const - + isPonged:= false; + SocketString:= ''; + hiTicks:= 0; SendEmptyPacketTicks:= 0; end;