equal
deleted
inserted
replaced
10 procedure registerGUIMessagesCallback(p: pointer; f: TGUICallback); cdecl; |
10 procedure registerGUIMessagesCallback(p: pointer; f: TGUICallback); cdecl; |
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 |
14 |
15 procedure tryAddTeam(teamName: PChar); |
15 procedure tryAddTeam(teamName: PChar); cdecl; |
16 procedure tryRemoveTeam(teamName: PChar); |
16 procedure tryRemoveTeam(teamName: PChar); cdecl; |
|
17 procedure changeTeamColor(teamName: PChar; dir: LongInt); cdecl; |
17 |
18 |
18 implementation |
19 implementation |
19 uses uFLIPC, hwengine, uFLUtils, uFLTeams, uFLData; |
20 uses uFLIPC, hwengine, uFLUtils, uFLTeams, uFLData; |
20 |
21 |
21 var guiCallbackPointer: pointer; |
22 var guiCallbackPointer: pointer; |
201 |
202 |
202 registerIPCCallback(nil, @engineMessageCallback) |
203 registerIPCCallback(nil, @engineMessageCallback) |
203 end; |
204 end; |
204 |
205 |
205 |
206 |
206 procedure tryAddTeam(teamName: PChar); |
207 procedure tryAddTeam(teamName: PChar); cdecl; |
207 var msg: ansistring; |
208 var msg: ansistring; |
208 i, hn, hedgehogsNumber: Longword; |
209 i, hn, hedgehogsNumber: Longword; |
209 team: PTeam; |
210 team: PTeam; |
210 c: Longword; |
211 c: Longword; |
211 begin |
212 begin |
233 if i = 0 then hn:= 4 else hn:= teams[i - 1].hogsNumber; |
234 if i = 0 then hn:= 4 else hn:= teams[i - 1].hogsNumber; |
234 if hn > 48 - hedgehogsNumber then hn:= 48 - hedgehogsNumber; |
235 if hn > 48 - hedgehogsNumber then hn:= 48 - hedgehogsNumber; |
235 teams[i].hogsNumber:= hn; |
236 teams[i].hogsNumber:= hn; |
236 |
237 |
237 teams[i].color:= c; |
238 teams[i].color:= c; |
238 end; |
239 |
239 |
240 msg:= '0' + #10 + teamName; |
240 |
241 guiCallbackFunction(guiCallbackPointer, mtAddPlayingTeam, @msg[1], length(msg)); |
241 msg:= '0' + #10 + teamName; |
242 |
242 |
243 msg:= teamName + #10 + colorsSet[teams[i].color]; |
243 guiCallbackFunction(guiCallbackPointer, mtAddPlayingTeam, @msg[1], length(msg)); |
244 guiCallbackFunction(guiCallbackPointer, mtTeamColor, @msg[1], length(msg)); |
244 |
245 |
245 msg:= teamName; |
246 msg:= teamName; |
246 |
247 guiCallbackFunction(guiCallbackPointer, mtRemoveTeam, @msg[1], length(msg)) |
247 guiCallbackFunction(guiCallbackPointer, mtRemoveTeam, @msg[1], length(msg)) |
248 end |
248 end; |
249 end; |
249 |
250 |
250 |
251 |
251 procedure tryRemoveTeam(teamName: PChar); |
252 procedure tryRemoveTeam(teamName: PChar); cdecl; |
252 var msg: ansistring; |
253 var msg: ansistring; |
253 i: Longword; |
254 i: Longword; |
254 tn: shortstring; |
255 tn: shortstring; |
255 begin |
256 begin |
256 with currentConfig do |
257 with currentConfig do |
276 |
277 |
277 guiCallbackFunction(guiCallbackPointer, mtRemovePlayingTeam, @msg[1], length(msg)); |
278 guiCallbackFunction(guiCallbackPointer, mtRemovePlayingTeam, @msg[1], length(msg)); |
278 guiCallbackFunction(guiCallbackPointer, mtAddTeam, @msg[1], length(msg)) |
279 guiCallbackFunction(guiCallbackPointer, mtAddTeam, @msg[1], length(msg)) |
279 end; |
280 end; |
280 |
281 |
|
282 |
|
283 procedure changeTeamColor(teamName: PChar; dir: LongInt); cdecl; |
|
284 var i, dc: Longword; |
|
285 tn: shortstring; |
|
286 msg: ansistring; |
|
287 begin |
|
288 with currentConfig do |
|
289 begin |
|
290 i:= 0; |
|
291 tn:= teamName; |
|
292 while (i < 8) and (teams[i].teamName <> tn) do |
|
293 inc(i); |
|
294 // team not found??? |
|
295 if (i > 7) then exit; |
|
296 |
|
297 if dir >= 0 then dc:= 1 else dc:= 8; |
|
298 teams[i].color:= (teams[i].color + dc) mod 9; |
|
299 |
|
300 msg:= tn + #10 + colorsSet[teams[i].color]; |
|
301 guiCallbackFunction(guiCallbackPointer, mtTeamColor, @msg[1], length(msg)) |
|
302 end |
|
303 end; |
|
304 |
281 end. |
305 end. |