diff -r 33a0e3a14ddc -r b0c34402038c hedgewars/uFLGameConfig.pas --- a/hedgewars/uFLGameConfig.pas Sat Dec 26 22:29:57 2015 +0300 +++ b/hedgewars/uFLGameConfig.pas Fri Jan 01 19:14:59 2016 +0300 @@ -42,7 +42,8 @@ implementation uses uFLIPC, uFLUtils, uFLTeams, uFLThemes, uFLSChemes, uFLAmmo - , uFLUICallback, uFLRunQueue, uFLNet, uUtils; + , uFLUICallback, uFLRunQueue, uFLNet, uUtils, uFLDrawnMap + , SDLh; var currentConfig: TGameConfig; @@ -55,20 +56,32 @@ procedure sendDrawnMap(config: PGameConfig); var i: Longword; + data: PByteArray; + dataLen: Longword; s: shortstring; begin - i:= 1; + decodeDrawnMap(config^.drawnData, config^.drawnDataSize, data, dataLen); - while i < config^.drawnDataSize do + i:= 0; + + s[0]:= #240; + while i < dataLen do begin - if config^.drawnDataSize - i > 240 then - s:= copy(config^.drawnData, i, 240) - else - s:= copy(config^.drawnData, i, config^.drawnDataSize - i); - system.writeln('[DRAWN MAP] ', s); - ipcToEngine('edraw ' + DecodeBase64(s)); + if dataLen - i > 240 then + begin + Move(data^[i], s[1], 240) + end else + begin + Move(data^[i], s[1], dataLen - i); + s[0]:= char(dataLen - i) + end; + + ipcToEngine('edraw ' + s); inc(i, 240) end; + + if dataLen > 0 then + FreeMem(data, dataLen); end; procedure sendConfig(config: PGameConfig);