equal
deleted
inserted
replaced
1 unit uFLGameConfig; |
1 unit uFLGameConfig; |
2 interface |
2 interface |
3 uses uFLTypes; |
3 uses uFLTypes; |
4 |
4 |
5 procedure resetGameConfig; cdecl; export; |
5 procedure resetGameConfig; cdecl; |
6 procedure runQuickGame; cdecl; export; |
6 procedure runQuickGame; cdecl; |
7 procedure getPreview; cdecl; export; |
7 procedure getPreview; cdecl; |
8 |
8 |
9 procedure registerGUIMessagesCallback(p: pointer; f: TGUICallback); cdecl; export; |
9 procedure registerGUIMessagesCallback(p: pointer; f: TGUICallback); cdecl; |
|
10 |
|
11 procedure setSeed(seed: PChar); cdecl; |
|
12 function getSeed: PChar; cdecl; |
10 |
13 |
11 implementation |
14 implementation |
12 uses uFLIPC, hwengine; |
15 uses uFLIPC, hwengine; |
13 |
16 |
14 var guiCallbackPointer: pointer; |
17 var guiCallbackPointer: pointer; |
46 argumentsNumber: Longword; |
49 argumentsNumber: Longword; |
47 end; |
50 end; |
48 PGameConfig = ^TGameConfig; |
51 PGameConfig = ^TGameConfig; |
49 |
52 |
50 var currentConfig: TGameConfig; |
53 var currentConfig: TGameConfig; |
|
54 str2PCharBuffer: array[0..255] of char; |
|
55 |
|
56 function str2PChar(const s: shortstring): PChar; |
|
57 var i: Integer; |
|
58 begin |
|
59 for i:= 1 to Length(s) do |
|
60 begin |
|
61 str2PCharBuffer[i - 1] := s[i]; |
|
62 end; |
|
63 str2PCharBuffer[Length(s)]:= #0; |
|
64 str2PChar:= @(str2PCharBuffer[0]); |
|
65 end; |
51 |
66 |
52 procedure queueExecution; |
67 procedure queueExecution; |
53 var pConfig: PGameConfig; |
68 var pConfig: PGameConfig; |
54 i: Longword; |
69 i: Longword; |
55 begin |
70 begin |
71 |
86 |
72 procedure resetGameConfig; cdecl; |
87 procedure resetGameConfig; cdecl; |
73 begin |
88 begin |
74 end; |
89 end; |
75 |
90 |
76 procedure runQuickGame; cdecl; export; |
91 procedure setSeed(seed: PChar); cdecl; |
|
92 begin |
|
93 currentConfig.seed:= seed |
|
94 end; |
|
95 |
|
96 function getSeed: PChar; cdecl; |
|
97 begin |
|
98 getSeed:= str2PChar(currentConfig.seed) |
|
99 end; |
|
100 |
|
101 procedure runQuickGame; cdecl; |
77 begin |
102 begin |
78 |
103 |
79 end; |
104 end; |
80 |
105 |
81 procedure getPreview; cdecl; export; |
106 procedure getPreview; cdecl; |
82 begin |
107 begin |
83 with currentConfig do |
108 with currentConfig do |
84 begin |
109 begin |
85 gameType:= gtPreview; |
110 gameType:= gtPreview; |
86 arguments[0]:= ''; |
111 arguments[0]:= ''; |
99 procedure engineMessageCallback(p: pointer; msg: PChar; len: Longword); |
124 procedure engineMessageCallback(p: pointer; msg: PChar; len: Longword); |
100 begin |
125 begin |
101 if len = 128 * 256 then guiCallbackFunction(guiCallbackPointer, mtPreview, msg, len) |
126 if len = 128 * 256 then guiCallbackFunction(guiCallbackPointer, mtPreview, msg, len) |
102 end; |
127 end; |
103 |
128 |
104 procedure registerGUIMessagesCallback(p: pointer; f: TGUICallback); cdecl; export; |
129 procedure registerGUIMessagesCallback(p: pointer; f: TGUICallback); cdecl; |
105 begin |
130 begin |
106 guiCallbackPointer:= p; |
131 guiCallbackPointer:= p; |
107 guiCallbackFunction:= f; |
132 guiCallbackFunction:= f; |
108 |
133 |
109 registerIPCCallback(nil, @engineMessageCallback) |
134 registerIPCCallback(nil, @engineMessageCallback) |