equal
deleted
inserted
replaced
1 unit uFLGameConfig; |
1 unit uFLGameConfig; |
2 |
|
3 interface |
2 interface |
|
3 uses uFLTypes; |
4 |
4 |
5 procedure resetGameConfig; cdecl; export; |
5 procedure resetGameConfig; cdecl; export; |
6 procedure runQuickGame; cdecl; export; |
6 procedure runQuickGame; cdecl; export; |
7 procedure getPreview; cdecl; export; |
7 procedure getPreview; cdecl; export; |
8 |
8 |
|
9 procedure registerGUIMessagesCallback(p: pointer; f: TGUICallback); cdecl; export; |
|
10 |
9 implementation |
11 implementation |
|
12 uses uFLIPC, hwengine; |
|
13 |
|
14 var guiCallbackPointer: pointer; |
|
15 guiCallbackFunction: TGUICallback; |
10 |
16 |
11 const |
17 const |
12 MAXCONFIGS = 5; |
18 MAXCONFIGS = 5; |
13 MAXARGS = 32; |
19 MAXARGS = 32; |
14 |
20 |
52 |
58 |
53 with pConfig^ do |
59 with pConfig^ do |
54 for i:= 0 to Pred(MAXARGS) do |
60 for i:= 0 to Pred(MAXARGS) do |
55 begin |
61 begin |
56 if arguments[i][0] = #255 then |
62 if arguments[i][0] = #255 then |
57 arguments[i][255] = #0 |
63 arguments[i][255]:= #0 |
58 else |
64 else |
59 arguments[i][byte(arguments[i][0]) + 1] = #0; |
65 arguments[i][byte(arguments[i][0]) + 1]:= #0; |
60 argv[i]:= @arguments[i][1] |
66 argv[i]:= @arguments[i][1] |
61 end; |
67 end; |
62 |
68 |
63 RunEngine(pConfig^.argumentsNumber, @pConfig^.argv); |
69 RunEngine(pConfig^.argumentsNumber, @pConfig^.argv); |
64 end; |
70 end; |
79 gameType:= gtPreview; |
85 gameType:= gtPreview; |
80 arguments[0]:= ''; |
86 arguments[0]:= ''; |
81 arguments[1]:= '--internal'; |
87 arguments[1]:= '--internal'; |
82 arguments[2]:= '--landpreview'; |
88 arguments[2]:= '--landpreview'; |
83 argumentsNumber:= 3; |
89 argumentsNumber:= 3; |
|
90 |
|
91 queueExecution; |
|
92 |
|
93 ipcToEngine('eseed ' + seed); |
|
94 ipcToEngine('e$mapgen 0'); |
|
95 ipcToEngine('!'); |
84 end; |
96 end; |
|
97 end; |
85 |
98 |
86 queueExecution |
99 procedure engineMessageCallback(p: pointer; msg: PChar; len: Longword); |
|
100 begin |
|
101 if len = 128 * 256 then guiCallbackFunction(guiCallbackPointer, mtPreview, msg, len) |
|
102 end; |
|
103 |
|
104 procedure registerGUIMessagesCallback(p: pointer; f: TGUICallback); cdecl; export; |
|
105 begin |
|
106 guiCallbackPointer:= p; |
|
107 guiCallbackFunction:= f; |
|
108 |
|
109 registerIPCCallback(nil, @engineMessageCallback) |
87 end; |
110 end; |
88 |
111 |
89 end. |
112 end. |