hedgewars/hwengine.pas
branchqmlfrontend
changeset 10414 50bcefec5bf6
parent 10306 4fca8bcfaff0
child 10416 1c301054694d
equal deleted inserted replaced
10412:9a8d4efcf3fa 10414:50bcefec5bf6
    20 
    20 
    21 {$IFDEF WIN32}
    21 {$IFDEF WIN32}
    22 {$R res/hwengine.rc}
    22 {$R res/hwengine.rc}
    23 {$ENDIF}
    23 {$ENDIF}
    24 
    24 
    25 {$IFDEF HWLIBRARY}
       
    26 unit hwengine;
    25 unit hwengine;
    27 interface
    26 interface
    28 {$ELSE}
       
    29 program hwengine;
       
    30 {$ENDIF}
       
    31 
    27 
    32 uses SDLh, uMisc, uConsole, uGame, uConsts, uLand, uAmmos, uVisualGears, uGears, uStore, uWorld, uInputHandler
    28 uses SDLh, uMisc, uConsole, uGame, uConsts, uLand, uAmmos, uVisualGears, uGears, uStore, uWorld, uInputHandler
    33      , uSound, uScript, uTeams, uStats, uIO, uLocale, uChat, uAI, uAIMisc, uAILandMarks, uLandTexture, uCollisions
    29      , uSound, uScript, uTeams, uStats, uIO, uLocale, uChat, uAI, uAIMisc, uAILandMarks, uLandTexture, uCollisions
    34      , SysUtils, uTypes, uVariables, uCommands, uUtils, uCaptions, uDebug, uCommandHandlers, uLandPainted
    30      , SysUtils, uTypes, uVariables, uCommands, uUtils, uCaptions, uDebug, uCommandHandlers, uLandPainted
    35      , uPhysFSLayer, uCursor, uRandom, ArgParsers, uVisualGearsHandlers, uTextures, uRender
    31      , uPhysFSLayer, uCursor, uRandom, ArgParsers, uVisualGearsHandlers, uTextures, uRender
    36      {$IFDEF USE_VIDEO_RECORDING}, uVideoRec {$ENDIF}
    32      {$IFDEF USE_VIDEO_RECORDING}, uVideoRec {$ENDIF}
    37      {$IFDEF USE_TOUCH_INTERFACE}, uTouch {$ENDIF}
    33      {$IFDEF USE_TOUCH_INTERFACE}, uTouch {$ENDIF}
    38      {$IFDEF ANDROID}, GLUnit{$ENDIF}
    34      {$IFDEF ANDROID}, GLUnit{$ENDIF}
    39      ;
    35      ;
    40 
    36 
    41 {$IFDEF HWLIBRARY}
       
    42 procedure RunEngine(argc: LongInt; argv: PPChar); cdecl; export;
    37 procedure RunEngine(argc: LongInt; argv: PPChar); cdecl; export;
    43 
       
    44 procedure preInitEverything();
    38 procedure preInitEverything();
    45 procedure initEverything(complete:boolean);
    39 procedure initEverything(complete:boolean);
    46 procedure freeEverything(complete:boolean);
    40 procedure freeEverything(complete:boolean);
    47 
    41 
    48 implementation
    42 implementation
    49 {$ELSE}
       
    50 procedure preInitEverything(); forward;
       
    51 procedure initEverything(complete:boolean); forward;
       
    52 procedure freeEverything(complete:boolean); forward;
       
    53 {$ENDIF}
       
    54 
    43 
    55 ///////////////////////////////////////////////////////////////////////////////
    44 ///////////////////////////////////////////////////////////////////////////////
    56 function DoTimer(Lag: LongInt): boolean;
    45 function DoTimer(Lag: LongInt): boolean;
    57 var s: shortstring;
    46 var s: shortstring;
    58 begin
    47 begin
   545     SendIPCRaw(@MaxHedgehogs, sizeof(byte));
   534     SendIPCRaw(@MaxHedgehogs, sizeof(byte));
   546     WriteLnToConsole('Preview sent, disconnect');
   535     WriteLnToConsole('Preview sent, disconnect');
   547     freeEverything(false);
   536     freeEverything(false);
   548 end;
   537 end;
   549 
   538 
   550 {$IFDEF HWLIBRARY}
       
   551 procedure RunEngine(argc: LongInt; argv: PPChar); cdecl; export;
   539 procedure RunEngine(argc: LongInt; argv: PPChar); cdecl; export;
   552 begin
   540 begin
   553     operatingsystem_parameter_argc:= argc;
   541     operatingsystem_parameter_argc:= argc;
   554     operatingsystem_parameter_argv:= argv;
   542     operatingsystem_parameter_argv:= argv;
   555 {$ELSE}
   543 
   556 begin
       
   557 {$ENDIF}
       
   558 
       
   559 ///////////////////////////////////////////////////////////////////////////////
       
   560 /////////////////////////////////// m a i n ///////////////////////////////////
       
   561 ///////////////////////////////////////////////////////////////////////////////
       
   562 {$IFDEF PAS2C}
   544 {$IFDEF PAS2C}
   563     // workaround for pascal's ParamStr and ParamCount
   545     // workaround for pascal's ParamStr and ParamCount
   564     init(argc, argv);
   546     init(argc, argv);
   565 {$ENDIF}
   547 {$ENDIF}
   566     preInitEverything();
   548     preInitEverything();
   571         GenLandPreview()
   553         GenLandPreview()
   572     else if GameType <> gmtSyntax then
   554     else if GameType <> gmtSyntax then
   573         Game();
   555         Game();
   574 
   556 
   575     // return 1 when engine is not called correctly
   557     // return 1 when engine is not called correctly
   576     if GameType = gmtSyntax then
   558     //if GameType = gmtSyntax then
   577         {$IFDEF PAS2C}
   559     //    exit(HaltUsageError);
   578         exit(HaltUsageError);
   560 end;
   579         {$ELSE}
       
   580         halt(HaltUsageError);
       
   581         {$ENDIF}
       
   582 
       
   583 {$IFDEF HWLIBRARY}
       
   584 end;
       
   585 {$ENDIF}
       
   586 
   561 
   587 end.
   562 end.