branch | qmlfrontend |
changeset 11436 | 80a9b14bb8d3 |
parent 11429 | 86c13e5662f1 |
child 11437 | 97e3e62ea5f9 |
11435:f88b3948adf3 | 11436:80a9b14bb8d3 |
---|---|
15 procedure setAmmo(ammoName: PChar); cdecl; |
15 procedure setAmmo(ammoName: PChar); cdecl; |
16 |
16 |
17 procedure tryAddTeam(teamName: PChar); cdecl; |
17 procedure tryAddTeam(teamName: PChar); cdecl; |
18 procedure tryRemoveTeam(teamName: PChar); cdecl; |
18 procedure tryRemoveTeam(teamName: PChar); cdecl; |
19 procedure changeTeamColor(teamName: PChar; dir: LongInt); cdecl; |
19 procedure changeTeamColor(teamName: PChar; dir: LongInt); cdecl; |
20 |
|
21 procedure netSetSeed(seed: shortstring); |
|
22 procedure netSetTheme(themeName: shortstring); |
|
23 procedure netSetScript(scriptName: shortstring); |
|
20 |
24 |
21 implementation |
25 implementation |
22 uses uFLIPC, hwengine, uFLUtils, uFLTeams, uFLData, uFLSChemes, uFLAmmo, uFLUICallback; |
26 uses uFLIPC, hwengine, uFLUtils, uFLTeams, uFLData, uFLSChemes, uFLAmmo, uFLUICallback; |
23 |
27 |
24 const |
28 const |
42 PGameConfig = ^TGameConfig; |
46 PGameConfig = ^TGameConfig; |
43 |
47 |
44 var |
48 var |
45 currentConfig: TGameConfig; |
49 currentConfig: TGameConfig; |
46 |
50 |
51 function getScriptPath(scriptName: shortstring): shortstring; |
|
52 begin |
|
53 getScriptPath:= '/Scripts/Multiplayer/' + scriptName + '.lua' |
|
54 end; |
|
47 |
55 |
48 procedure sendConfig(config: PGameConfig); |
56 procedure sendConfig(config: PGameConfig); |
49 var i: Longword; |
57 var i: Longword; |
50 begin |
58 begin |
51 with config^ do |
59 with config^ do |
52 begin |
60 begin |
53 case gameType of |
61 case gameType of |
54 gtPreview: begin |
62 gtPreview: begin |
55 if script <> '' then |
63 if script <> 'Normal' then |
56 ipcToEngine('escript ' + script); |
64 ipcToEngine('escript ' + getScriptPath(script)); |
57 ipcToEngine('eseed ' + seed); |
65 ipcToEngine('eseed ' + seed); |
58 ipcToEngine('e$mapgen ' + intToStr(mapgen)); |
66 ipcToEngine('e$mapgen ' + intToStr(mapgen)); |
59 end; |
67 end; |
60 gtLocal: begin |
68 gtLocal: begin |
61 if script <> '' then |
69 if script <> 'Normal' then |
62 ipcToEngine('escript ' + script); |
70 ipcToEngine('escript ' + getScriptPath(script)); |
63 ipcToEngine('eseed ' + seed); |
71 ipcToEngine('eseed ' + seed); |
64 ipcToEngine('e$mapgen ' + intToStr(mapgen)); |
72 ipcToEngine('e$mapgen ' + intToStr(mapgen)); |
65 ipcToEngine('e$theme ' + theme); |
73 ipcToEngine('e$theme ' + theme); |
66 |
74 |
67 sendSchemeConfig(scheme); |
75 sendSchemeConfig(scheme); |
106 procedure resetGameConfig; cdecl; |
114 procedure resetGameConfig; cdecl; |
107 var i: Longword; |
115 var i: Longword; |
108 begin |
116 begin |
109 with currentConfig do |
117 with currentConfig do |
110 begin |
118 begin |
119 script:= 'Normal'; |
|
120 |
|
111 for i:= 0 to 7 do |
121 for i:= 0 to 7 do |
112 teams[i].hogsNumber:= 0 |
122 teams[i].hogsNumber:= 0 |
113 end |
123 end |
114 end; |
124 end; |
115 |
125 |
116 procedure setSeed(seed: PChar); cdecl; |
126 procedure setSeed(seed: PChar); cdecl; |
117 begin |
127 begin |
128 sendUI(mtSeed, @seed[1], length(seed)); |
|
118 currentConfig.seed:= seed |
129 currentConfig.seed:= seed |
119 end; |
130 end; |
120 |
|
121 |
131 |
122 function getSeed: PChar; cdecl; |
132 function getSeed: PChar; cdecl; |
123 begin |
133 begin |
124 getSeed:= str2PChar(currentConfig.seed) |
134 getSeed:= str2PChar(currentConfig.seed) |
125 end; |
135 end; |
298 currentConfig.theme:= themeName |
308 currentConfig.theme:= themeName |
299 end; |
309 end; |
300 |
310 |
301 procedure setScript(scriptName: PChar); cdecl; |
311 procedure setScript(scriptName: PChar); cdecl; |
302 begin |
312 begin |
303 if scriptName <> 'Normal' then |
313 currentConfig.script:= scriptName |
304 currentConfig.script:= '/Scripts/Multiplayer/' + scriptName + '.lua' |
|
305 else |
|
306 currentConfig.script:= '' |
|
307 end; |
314 end; |
308 |
315 |
309 procedure setScheme(schemeName: PChar); cdecl; |
316 procedure setScheme(schemeName: PChar); cdecl; |
310 var scheme: PScheme; |
317 var scheme: PScheme; |
311 begin |
318 begin |
322 |
329 |
323 if ammo <> nil then |
330 if ammo <> nil then |
324 currentConfig.ammo:= ammo^ |
331 currentConfig.ammo:= ammo^ |
325 end; |
332 end; |
326 |
333 |
334 procedure netSetSeed(seed: shortstring); |
|
335 begin |
|
336 if seed <> currentConfig.seed then |
|
337 begin |
|
338 currentConfig.seed:= seed; |
|
339 sendUI(mtSeed, @seed[1], length(seed)) |
|
340 end |
|
341 end; |
|
342 |
|
343 procedure netSetTheme(themeName: shortstring); |
|
344 begin |
|
345 if themeName <> currentConfig.theme then |
|
346 begin |
|
347 currentConfig.theme:= themeName; |
|
348 sendUI(mtTheme, @themeName[1], length(themeName)) |
|
349 end |
|
350 end; |
|
351 |
|
352 procedure netSetScript(scriptName: shortstring); |
|
353 begin |
|
354 if scriptName <> currentConfig.script then |
|
355 begin |
|
356 currentConfig.script:= scriptName; |
|
357 sendUI(mtScript, @scriptName[1], length(scriptName)) |
|
358 end |
|
359 end; |
|
360 |
|
327 end. |
361 end. |