hedgewars/uFLGameConfig.pas
branchqmlfrontend
changeset 11480 b0c34402038c
parent 11462 33a0e3a14ddc
equal deleted inserted replaced
11462:33a0e3a14ddc 11480:b0c34402038c
    40 procedure sendConfig(config: PGameConfig);
    40 procedure sendConfig(config: PGameConfig);
    41 procedure runNetGame();
    41 procedure runNetGame();
    42 
    42 
    43 implementation
    43 implementation
    44 uses uFLIPC, uFLUtils, uFLTeams, uFLThemes, uFLSChemes, uFLAmmo
    44 uses uFLIPC, uFLUtils, uFLTeams, uFLThemes, uFLSChemes, uFLAmmo
    45     , uFLUICallback, uFLRunQueue, uFLNet, uUtils;
    45     , uFLUICallback, uFLRunQueue, uFLNet, uUtils, uFLDrawnMap
       
    46     , SDLh;
    46 
    47 
    47 var
    48 var
    48     currentConfig: TGameConfig;
    49     currentConfig: TGameConfig;
    49     previewNeedsUpdate: boolean;
    50     previewNeedsUpdate: boolean;
    50 
    51 
    53     getScriptPath:= '/Scripts/Multiplayer/' + scriptName + '.lua'
    54     getScriptPath:= '/Scripts/Multiplayer/' + scriptName + '.lua'
    54 end;
    55 end;
    55 
    56 
    56 procedure sendDrawnMap(config: PGameConfig);
    57 procedure sendDrawnMap(config: PGameConfig);
    57 var i: Longword;
    58 var i: Longword;
       
    59     data: PByteArray;
       
    60     dataLen: Longword;
    58     s: shortstring;
    61     s: shortstring;
    59 begin
    62 begin
    60     i:= 1;
    63     decodeDrawnMap(config^.drawnData, config^.drawnDataSize, data, dataLen);
    61 
    64 
    62     while i < config^.drawnDataSize do
    65     i:= 0;
    63     begin
    66 
    64         if config^.drawnDataSize - i > 240 then
    67     s[0]:= #240;
    65             s:= copy(config^.drawnData, i, 240)
    68     while i < dataLen do
    66         else
    69     begin
    67             s:= copy(config^.drawnData, i, config^.drawnDataSize - i);
    70         if dataLen - i > 240 then
    68         system.writeln('[DRAWN MAP] ', s);
    71         begin
    69         ipcToEngine('edraw ' + DecodeBase64(s));
    72             Move(data^[i], s[1], 240)
       
    73         end else
       
    74         begin
       
    75             Move(data^[i], s[1], dataLen - i);
       
    76             s[0]:= char(dataLen - i)
       
    77         end;
       
    78 
       
    79         ipcToEngine('edraw ' + s);
    70         inc(i, 240)
    80         inc(i, 240)
    71     end;
    81     end;
       
    82 
       
    83     if dataLen > 0 then
       
    84         FreeMem(data, dataLen);
    72 end;
    85 end;
    73 
    86 
    74 procedure sendConfig(config: PGameConfig);
    87 procedure sendConfig(config: PGameConfig);
    75 var i: Longword;
    88 var i: Longword;
    76 begin
    89 begin