hedgewars/hwengine.pas
branchqmlfrontend
changeset 11434 23912c93935a
parent 11403 b894922d58cc
child 11442 6b04a266feee
equal deleted inserted replaced
11433:bca9afcc3a72 11434:23912c93935a
    38 procedure preInitEverything();
    38 procedure preInitEverything();
    39 procedure initEverything(complete:boolean);
    39 procedure initEverything(complete:boolean);
    40 procedure freeEverything(complete:boolean);
    40 procedure freeEverything(complete:boolean);
    41 
    41 
    42 implementation
    42 implementation
       
    43 uses uFLUICallback, uFLTypes;
    43 
    44 
    44 ///////////////////////////////////////////////////////////////////////////////
    45 ///////////////////////////////////////////////////////////////////////////////
    45 function DoTimer(Lag: LongInt): boolean;
    46 function DoTimer(Lag: LongInt): boolean;
    46 var s: shortstring;
    47 var s: shortstring;
    47     t: LongWord;
    48     t: LongWord;
   516     WriteLnToConsole('Preview sent, disconnect');
   517     WriteLnToConsole('Preview sent, disconnect');
   517     freeEverything(false);
   518     freeEverything(false);
   518 end;
   519 end;
   519 
   520 
   520 function EngineThread(p: pointer): Longint; cdecl; export;
   521 function EngineThread(p: pointer): Longint; cdecl; export;
       
   522 var e: TFLIBEvent;
   521 begin
   523 begin
   522     if GameType = gmtLandPreview then
   524     if GameType = gmtLandPreview then
   523         GenLandPreview()
   525         GenLandPreview()
   524     else Game();
   526     else Game();
   525 
   527 
       
   528     e:= flibGameFinished;
       
   529     sendUI(mtFlibEvent, @e, sizeof(e));
   526     EngineThread:= 0
   530     EngineThread:= 0
   527 end;
   531 end;
   528 
   532 
   529 
   533 
   530 function RunEngine(argc: LongInt; argv: PPChar): Longint; cdecl; export;
   534 function RunEngine(argc: LongInt; argv: PPChar): Longint; cdecl; export;
       
   535 var t: PSDL_Thread;
   531 begin
   536 begin
   532     operatingsystem_parameter_argc:= argc;
   537     operatingsystem_parameter_argc:= argc;
   533     operatingsystem_parameter_argv:= argv;
   538     operatingsystem_parameter_argv:= argv;
   534 
   539 
   535 {$IFDEF PAS2C}
   540 {$IFDEF PAS2C}
   543     if GameType = gmtSyntax then
   548     if GameType = gmtSyntax then
   544         RunEngine:= HaltUsageError
   549         RunEngine:= HaltUsageError
   545     else
   550     else
   546     begin
   551     begin
   547         SDL_CreateThread(@EngineThread, 'engine', nil);
   552         SDL_CreateThread(@EngineThread, 'engine', nil);
       
   553         SDL_DetachThread(t);
   548         RunEngine:= 0
   554         RunEngine:= 0
   549     end
   555     end
   550 end;
   556 end;
   551 
   557 
   552 end.
   558 end.