diff -r c3ccec3834e8 -r 29bc9c36ad5f hedgewars/uIO.pas --- a/hedgewars/uIO.pas Thu Jan 18 20:29:28 2007 +0000 +++ b/hedgewars/uIO.pas Sun Jan 21 19:51:02 2007 +0000 @@ -77,7 +77,7 @@ case s[1] of '!': begin {$IFDEF DEBUGFILE}AddFileLog('Ping? Pong!');{$ENDIF}isPonged:= true; end; '?': SendIPC('!'); - 'e': ParseCommand(copy(s, 2, Length(s) - 1)); + 'e': ParseCommand(copy(s, 2, Length(s) - 1), true); 'E': OutError(copy(s, 2, Length(s) - 1), true); 'W': OutError(copy(s, 2, Length(s) - 1), false); 'T': case s[2] of @@ -101,12 +101,12 @@ buf: array[0..255] of byte; s: shortstring absolute buf; begin -fds.numsockets:= 0; +fds^.numsockets:= 0; SDLNet_AddSocket(fds, IPCSock); while SDLNet_CheckSockets(fds, 0) > 0 do begin - i:= SDLNet_TCP_Recv(IPCSock, @buf[1], 255); + i:= SDLNet_TCP_Recv(IPCSock, @buf[1], 255 - Length(ss)); if i > 0 then begin buf[0]:= i; @@ -175,7 +175,7 @@ AddCaption('> ' + copy(extcmd[cmdcurpos].str, 2, Pred(extcmd[cmdcurpos].len)), $FFFFFF, capgrpNetSay); inc(cmdcurpos) end; - + if cmdcurpos <= cmdendpos then TryDo(GameTicks <= extcmd[cmdcurpos].Time, 'oops, queue error. in buffer: ' + extcmd[cmdcurpos].cmd + @@ -187,20 +187,20 @@ while (cmdcurpos <= cmdendpos)and(GameTicks = extcmd[cmdcurpos].Time) do begin case extcmd[cmdcurpos].cmd of - 'L': ParseCommand('+left'); - 'l': ParseCommand('-left'); - 'R': ParseCommand('+right'); - 'r': ParseCommand('-right'); - 'U': ParseCommand('+up'); - 'u': ParseCommand('-up'); - 'D': ParseCommand('+down'); - 'd': ParseCommand('-down'); - 'A': ParseCommand('+attack'); - 'a': ParseCommand('-attack'); - 'S': ParseCommand('switch'); - 'j': ParseCommand('ljump'); - 'J': ParseCommand('hjump'); - ',': ParseCommand('skip'); + 'L': ParseCommand('+left', true); + 'l': ParseCommand('-left', true); + 'R': ParseCommand('+right', true); + 'r': ParseCommand('-right', true); + 'U': ParseCommand('+up', true); + 'u': ParseCommand('-up', true); + 'D': ParseCommand('+down', true); + 'd': ParseCommand('-down', true); + 'A': ParseCommand('+attack', true); + 'a': ParseCommand('-attack', true); + 'S': ParseCommand('switch', true); + 'j': ParseCommand('ljump', true); + 'J': ParseCommand('hjump', true); + ',': ParseCommand('skip', true); 'N': begin tmpflag:= false; {$IFDEF DEBUGFILE}AddFileLog('got cmd "N": time '+inttostr(extcmd[cmdcurpos].Time)){$ENDIF} @@ -208,14 +208,14 @@ 'p': begin TargetPoint.X:= SDLNet_Read16(@extcmd[cmdcurpos].X); TargetPoint.Y:= SDLNet_Read16(@extcmd[cmdcurpos].Y); - ParseCommand('put') + ParseCommand('put', true) end; 'P': begin CursorPoint.X:= SDLNet_Read16(@extcmd[cmdcurpos].X) + WorldDx; CursorPoint.Y:= SDLNet_Read16(@extcmd[cmdcurpos].Y) + WorldDy; end; - '1'..'5': ParseCommand('timer ' + extcmd[cmdcurpos].cmd); - #128..char(128 + cMaxSlotIndex): ParseCommand('slot ' + char(byte(extcmd[cmdcurpos].cmd) - 79)) + '1'..'5': ParseCommand('timer ' + extcmd[cmdcurpos].cmd, true); + #128..char(128 + cMaxSlotIndex): ParseCommand('slot ' + char(byte(extcmd[cmdcurpos].cmd) - 79), true) end; inc(cmdcurpos) end;