hedgewars/uFLGameConfig.pas
branchqmlfrontend
changeset 10819 57e21f7621b0
parent 10612 eb3c1a289a23
child 10888 a04e04aaf599
equal deleted inserted replaced
10817:48a53259fad8 10819:57e21f7621b0
    11 
    11 
    12 procedure setSeed(seed: PChar); cdecl;
    12 procedure setSeed(seed: PChar); cdecl;
    13 function  getSeed: PChar; cdecl;
    13 function  getSeed: PChar; cdecl;
    14 procedure setTheme(themeName: PChar); cdecl;
    14 procedure setTheme(themeName: PChar); cdecl;
    15 procedure setScript(scriptName: PChar); cdecl;
    15 procedure setScript(scriptName: PChar); cdecl;
       
    16 procedure setScheme(schemeName: PChar); cdecl;
    16 
    17 
    17 procedure tryAddTeam(teamName: PChar); cdecl;
    18 procedure tryAddTeam(teamName: PChar); cdecl;
    18 procedure tryRemoveTeam(teamName: PChar); cdecl;
    19 procedure tryRemoveTeam(teamName: PChar); cdecl;
    19 procedure changeTeamColor(teamName: PChar; dir: LongInt); cdecl;
    20 procedure changeTeamColor(teamName: PChar; dir: LongInt); cdecl;
    20 
    21 
    21 implementation
    22 implementation
    22 uses uFLIPC, hwengine, uFLUtils, uFLTeams, uFLData;
    23 uses uFLIPC, hwengine, uFLUtils, uFLTeams, uFLData, uFLSChemes;
    23 
    24 
    24 var guiCallbackPointer: pointer;
    25 var guiCallbackPointer: pointer;
    25     guiCallbackFunction: TGUICallback;
    26     guiCallbackFunction: TGUICallback;
    26 
    27 
    27 const
    28 const
    31 type
    32 type
    32     TGameConfig = record
    33     TGameConfig = record
    33             seed: shortstring;
    34             seed: shortstring;
    34             theme: shortstring;
    35             theme: shortstring;
    35             script: shortstring;
    36             script: shortstring;
       
    37             scheme: TScheme;
    36             mapgen: Longint;
    38             mapgen: Longint;
    37             gameType: TGameType;
    39             gameType: TGameType;
    38             teams: array[0..7] of TTeam;
    40             teams: array[0..7] of TTeam;
    39             arguments: array[0..Pred(MAXARGS)] of shortstring;
    41             arguments: array[0..Pred(MAXARGS)] of shortstring;
    40             argv: array[0..Pred(MAXARGS)] of PChar;
    42             argv: array[0..Pred(MAXARGS)] of PChar;
    62             if script <> '' then
    64             if script <> '' then
    63                 ipcToEngine('escript ' + script);
    65                 ipcToEngine('escript ' + script);
    64             ipcToEngine('eseed ' + seed);
    66             ipcToEngine('eseed ' + seed);
    65             ipcToEngine('e$mapgen ' + intToStr(mapgen));
    67             ipcToEngine('e$mapgen ' + intToStr(mapgen));
    66             ipcToEngine('e$theme ' + theme);
    68             ipcToEngine('e$theme ' + theme);
       
    69 
       
    70             sendSchemeConfig(scheme);
    67 
    71 
    68             i:= 0;
    72             i:= 0;
    69             while (i < 8) and (teams[i].hogsNumber > 0) do
    73             while (i < 8) and (teams[i].hogsNumber > 0) do
    70                 begin
    74                 begin
    71                     ipcToEngine('eammloadt 93919294221991210322351110012000000002111001010111110001');
    75                     ipcToEngine('eammloadt 93919294221991210322351110012000000002111001010111110001');
   321         currentConfig.script:= '/Scripts/Multiplayer/' + scriptName + '.lua'
   325         currentConfig.script:= '/Scripts/Multiplayer/' + scriptName + '.lua'
   322     else
   326     else
   323         currentConfig.script:= ''
   327         currentConfig.script:= ''
   324 end;
   328 end;
   325 
   329 
       
   330 procedure setScheme(schemeName: PChar); cdecl;
       
   331 var scheme: PScheme;
       
   332 begin
       
   333     scheme:= schemeByName(schemeName);
       
   334 
       
   335     if scheme <> nil then
       
   336         currentConfig.scheme:= scheme^
       
   337 end;
       
   338 
   326 end.
   339 end.