hedgewars/hwengine.pas
branchqmlfrontend
changeset 10416 1c301054694d
parent 10414 50bcefec5bf6
child 10424 4be6cd55f1cf
equal deleted inserted replaced
10414:50bcefec5bf6 10416:1c301054694d
    32      {$IFDEF USE_VIDEO_RECORDING}, uVideoRec {$ENDIF}
    32      {$IFDEF USE_VIDEO_RECORDING}, uVideoRec {$ENDIF}
    33      {$IFDEF USE_TOUCH_INTERFACE}, uTouch {$ENDIF}
    33      {$IFDEF USE_TOUCH_INTERFACE}, uTouch {$ENDIF}
    34      {$IFDEF ANDROID}, GLUnit{$ENDIF}
    34      {$IFDEF ANDROID}, GLUnit{$ENDIF}
    35      ;
    35      ;
    36 
    36 
    37 procedure RunEngine(argc: LongInt; argv: PPChar); cdecl; export;
    37 function  RunEngine(argc: LongInt; argv: PPChar): Longint; cdecl; export;
    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
   534     SendIPCRaw(@MaxHedgehogs, sizeof(byte));
   534     SendIPCRaw(@MaxHedgehogs, sizeof(byte));
   535     WriteLnToConsole('Preview sent, disconnect');
   535     WriteLnToConsole('Preview sent, disconnect');
   536     freeEverything(false);
   536     freeEverything(false);
   537 end;
   537 end;
   538 
   538 
   539 procedure RunEngine(argc: LongInt; argv: PPChar); cdecl; export;
   539 function EngineThread(p: pointer): Longint; cdecl; export;
       
   540 begin
       
   541     if GameType = gmtLandPreview then
       
   542         GenLandPreview()
       
   543     else Game();
       
   544 
       
   545     EngineThread:= 0
       
   546 end;
       
   547 
       
   548 
       
   549 function RunEngine(argc: LongInt; argv: PPChar): Longint; cdecl; export;
   540 begin
   550 begin
   541     operatingsystem_parameter_argc:= argc;
   551     operatingsystem_parameter_argc:= argc;
   542     operatingsystem_parameter_argv:= argv;
   552     operatingsystem_parameter_argv:= argv;
   543 
   553 
   544 {$IFDEF PAS2C}
   554 {$IFDEF PAS2C}
   547 {$ENDIF}
   557 {$ENDIF}
   548     preInitEverything();
   558     preInitEverything();
   549 
   559 
   550     GetParams();
   560     GetParams();
   551 
   561 
   552     if GameType = gmtLandPreview then
   562     if GameType = gmtSyntax then
   553         GenLandPreview()
   563         RunEngine:= HaltUsageError
   554     else if GameType <> gmtSyntax then
   564     else
   555         Game();
   565     begin
   556 
   566         SDL_CreateThread(@EngineThread{$IFDEF SDL2}, 'engine'{$ENDIF}, nil);
   557     // return 1 when engine is not called correctly
   567         RunEngine:= 0
   558     //if GameType = gmtSyntax then
   568     end
   559     //    exit(HaltUsageError);
       
   560 end;
   569 end;
   561 
   570 
   562 end.
   571 end.