73 var isTerminated: boolean = false; |
73 var isTerminated: boolean = false; |
74 alsoShutdownFrontend: boolean = false; |
74 alsoShutdownFrontend: boolean = false; |
75 {$IFDEF HWLIBRARY} |
75 {$IFDEF HWLIBRARY} |
76 type arrayofpchar = array[0..8] of PChar; |
76 type arrayofpchar = array[0..8] of PChar; |
77 |
77 |
78 procedure initEverything; |
78 procedure initEverything(complete:boolean); |
79 procedure freeEverything; |
79 procedure freeEverything(complete:boolean); |
80 |
80 |
81 implementation |
81 implementation |
82 {$ELSE} |
82 {$ELSE} |
83 procedure OnDestroy; forward; |
83 procedure OnDestroy; forward; |
84 procedure freeEverything; forward; |
84 procedure freeEverything(complete:boolean); forward; |
85 {$ENDIF} |
85 {$ENDIF} |
86 |
86 |
87 //////////////////////////////// |
87 //////////////////////////////// |
88 procedure DoTimer(Lag: LongInt); |
88 procedure DoTimer(Lag: LongInt); |
89 {$IFNDEF IPHONEOS} |
89 {$IFNDEF IPHONEOS} |
329 |
329 |
330 ParseCommand('rotmask', true); |
330 ParseCommand('rotmask', true); |
331 |
331 |
332 MainLoop(); |
332 MainLoop(); |
333 OnDestroy(); |
333 OnDestroy(); |
334 {$IFDEF HWLIBRARY}freeEverything();{$ENDIF} |
334 {$IFDEF HWLIBRARY}freeEverything(true);{$ENDIF} |
335 if alsoShutdownFrontend then halt; |
335 if alsoShutdownFrontend then halt; |
336 end; |
336 end; |
337 |
337 |
338 procedure initEverything; |
338 procedure initEverything (complete:boolean); |
339 begin |
339 begin |
340 Randomize(); |
340 Randomize(); |
341 |
341 |
342 uConsts.initModule; |
342 uConsts.initModule; |
343 uMisc.initModule; |
343 uMisc.initModule; |
344 uConsole.initModule; // MUST happen after uMisc |
344 uConsole.initModule; // MUST happen after uMisc |
|
345 |
|
346 uLand.initModule; |
|
347 uIO.initModule; |
345 |
348 |
346 uAI.initModule; |
349 if complete then |
347 //uAIActions does not need initialization |
350 begin |
348 //uAIAmmoTests does not need initialization |
351 uAI.initModule; |
349 uAIMisc.initModule; |
352 //uAIActions does not need initialization |
350 uAmmos.initModule; |
353 //uAIAmmoTests does not need initialization |
351 uChat.initModule; |
354 uAIMisc.initModule; |
352 uCollisions.initModule; |
355 uAmmos.initModule; |
353 //uFloat does not need initialization |
356 uChat.initModule; |
354 //uGame does not need initialization |
357 uCollisions.initModule; |
355 uGears.initModule; |
358 //uFloat does not need initialization |
356 uIO.initModule; |
359 //uGame does not need initialization |
357 uKeys.initModule; |
360 uGears.initModule; |
358 uLand.initModule; |
361 uKeys.initModule; |
359 //uLandGraphics does not need initialization |
362 //uLandGraphics does not need initialization |
360 //uLandObjects does not need initialization |
363 //uLandObjects does not need initialization |
361 //uLandTemplates does not need initialization |
364 //uLandTemplates does not need initialization |
362 //uLandTexture does not need initialization |
365 //uLandTexture does not need initialization |
363 //uLocale does not need initialization |
366 //uLocale does not need initialization |
364 uRandom.initModule; |
367 uRandom.initModule; |
365 //uSHA is initialized internally |
368 //uSHA is initialized internally |
366 uSound.initModule; |
369 uScript.initModule; |
367 uStats.initModule; |
370 uSound.initModule; |
368 uStore.initModule; |
371 uStats.initModule; |
369 uTeams.initModule; |
372 uStore.initModule; |
370 uVisualGears.initModule; |
373 uTeams.initModule; |
371 uWorld.initModule; |
374 uVisualGears.initModule; |
372 uScript.initModule; |
375 uWorld.initModule; |
373 end; |
376 end; |
374 |
377 end; |
375 procedure freeEverything; |
378 |
376 begin |
379 procedure freeEverything (complete:boolean); |
377 uWorld.freeModule; |
380 begin |
378 uVisualGears.freeModule; //stub |
381 if complete then |
379 uTeams.freeModule; |
382 begin |
380 uStore.freeModule; //stub |
383 uWorld.freeModule; |
381 uStats.freeModule; //stub |
384 uVisualGears.freeModule; //stub |
382 uSound.freeModule; //stub |
385 uTeams.freeModule; |
383 //uSHA does not need to be freed |
386 uStore.freeModule; //stub |
384 uRandom.freeModule; //stub |
387 uStats.freeModule; //stub |
385 //uLocale does not need to be freed |
388 uSound.freeModule; //stub |
386 //uLandTemplates does not need to be freed |
389 uScript.freeModule; |
387 //uLandTexture does not need to be freed |
390 //uSHA does not need to be freed |
388 //uLandObjects does not need to be freed |
391 uRandom.freeModule; //stub |
389 //uLandGraphics does not need to be freed |
392 //uLocale does not need to be freed |
|
393 //uLandTemplates does not need to be freed |
|
394 //uLandTexture does not need to be freed |
|
395 //uLandObjects does not need to be freed |
|
396 //uLandGraphics does not need to be freed |
|
397 uKeys.freeModule; //stub |
|
398 uGears.freeModule; |
|
399 //uGame does not need to be freed |
|
400 //uFloat does not need to be freed |
|
401 uCollisions.freeModule; //stub |
|
402 uChat.freeModule; //stub |
|
403 uAmmos.freeModule; |
|
404 uAIMisc.freeModule; //stub |
|
405 //uAIAmmoTests does not need to be freed |
|
406 //uAIActions does not need to be freed |
|
407 uAI.freeModule; //stub |
|
408 end; |
|
409 |
|
410 uIO.freeModule; //stub |
390 uLand.freeModule; |
411 uLand.freeModule; |
391 uKeys.freeModule; //stub |
|
392 uIO.freeModule; //stub |
|
393 uGears.freeModule; |
|
394 //uGame does not need to be freed |
|
395 //uFloat does not need to be freed |
|
396 uCollisions.freeModule; //stub |
|
397 uChat.freeModule; //stub |
|
398 uAmmos.freeModule; |
|
399 uAIMisc.freeModule; //stub |
|
400 //uAIAmmoTests does not need to be freed |
|
401 //uAIActions does not need to be freed |
|
402 uAI.freeModule; //stub |
|
403 |
412 |
404 uConsole.freeModule; |
413 uConsole.freeModule; |
|
414 uMisc.freeModule; // uMisc closes the debug log. |
405 uConsts.freeModule; //stub |
415 uConsts.freeModule; //stub |
406 uScript.freeModule; |
|
407 // uMisc closes the debug log. |
|
408 uMisc.freeModule; |
|
409 end; |
416 end; |
410 |
417 |
411 ///////////////////////// |
418 ///////////////////////// |
412 procedure GenLandPreview{$IFDEF IPHONEOS}(port: LongInt){$ENDIF}; {$IFDEF HWLIBRARY}cdecl; export;{$ENDIF} |
419 procedure GenLandPreview{$IFDEF IPHONEOS}(port: LongInt){$ENDIF}; {$IFDEF HWLIBRARY}cdecl; export;{$ENDIF} |
413 var Preview: TPreview; |
420 var Preview: TPreview; |
414 begin |
421 begin |
415 {$IFDEF IPHONEOS} |
422 {$IFDEF IPHONEOS} |
416 initEverything(); |
423 initEverything(false); |
417 WriteLnToConsole('Preview connecting on port ' + inttostr(port)); |
424 WriteLnToConsole('Preview connecting on port ' + inttostr(port)); |
418 ipcPort:= port; |
425 ipcPort:= port; |
419 {$ENDIF} |
426 {$ENDIF} |
420 InitIPC; |
427 InitIPC; |
421 IPCWaitPongEvent; |
428 IPCWaitPongEvent; |