hedgewars/hwengine.pas
changeset 2692 ce9992075118
parent 2691 c0da3a98c01c
child 2697 75880595a9f1
equal deleted inserted replaced
2691:c0da3a98c01c 2692:ce9992075118
   144 end;
   144 end;
   145 
   145 
   146 ////////////////////
   146 ////////////////////
   147 procedure OnDestroy;
   147 procedure OnDestroy;
   148 begin
   148 begin
   149 {$IFDEF DEBUGFILE}AddFileLog('Freeing resources...');{$ENDIF}
   149 	WriteLnToConsole('Freeing resources...');
   150 	if isSoundEnabled then ReleaseSound();
   150 	if isSoundEnabled then ReleaseSound();
   151 	StoreRelease();
   151 	StoreRelease();
   152 	FreeLand();
   152 	FreeLand();
       
   153 	ControllerClose();
   153 	SendKB();
   154 	SendKB();
   154 	CloseIPC();
   155 	CloseIPC();
   155 	TTF_Quit();
   156 	TTF_Quit();
   156 //{$IFNDEF IPHONEOS}
       
   157 	// TODO: don't halt and don't clean, return to the previous view
       
   158 	SDL_Quit();
   157 	SDL_Quit();
       
   158 {$IFDEF IPHONEOS}
       
   159 	IPH_returnFrontend();
       
   160 {$ELSE}
   159 	halt();
   161 	halt();
   160 //{$ENDIF}
   162 {$ENDIF}
   161 end;
   163 end;
   162 
   164 
   163 ///////////////////
   165 ///////////////////
   164 procedure MainLoop;
   166 procedure MainLoop;
   165 var PrevTime,
   167 var PrevTime,
   476 isDeveloperMode:= false;
   478 isDeveloperMode:= false;
   477 
   479 
   478 TryDo(InitStepsFlags = cifAllInited, 'Some parameters not set (flags = ' + inttostr(InitStepsFlags) + ')', true);
   480 TryDo(InitStepsFlags = cifAllInited, 'Some parameters not set (flags = ' + inttostr(InitStepsFlags) + ')', true);
   479 
   481 
   480 MainLoop;
   482 MainLoop;
   481 ControllerClose
   483 ControllerClose();
   482 end;
   484 end;
   483 
   485 
   484 /////////////////////////
   486 /////////////////////////
   485 procedure GenLandPreview;
   487 procedure GenLandPreview;
   486 var Preview: TPreview;
   488 var Preview: TPreview;
   494 WriteLnToConsole('Sending preview...');
   496 WriteLnToConsole('Sending preview...');
   495 SendIPCRaw(@Preview, sizeof(Preview));
   497 SendIPCRaw(@Preview, sizeof(Preview));
   496 h:= MaxHedgehogs;
   498 h:= MaxHedgehogs;
   497 SendIPCRaw(@h, sizeof(h));
   499 SendIPCRaw(@h, sizeof(h));
   498 WriteLnToConsole('Preview sent, disconnect');
   500 WriteLnToConsole('Preview sent, disconnect');
   499 CloseIPC
   501 CloseIPC();
   500 end;
   502 end;
   501 
   503 
   502 ////////////////////////////////////////////////////////////////////////////////
   504 ////////////////////////////////////////////////////////////////////////////////
   503 /////////////////////////////// m a i n ////////////////////////////////////////
   505 /////////////////////////////// m a i n ////////////////////////////////////////
   504 ////////////////////////////////////////////////////////////////////////////////
   506 ////////////////////////////////////////////////////////////////////////////////
   505 
   507 
   506 begin
   508 begin
   507 WriteLnToConsole('Hedgewars ' + cVersionString + ' engine (network protocol: ' + inttostr(cNetProtoVersion) + ')');
   509 	WriteLnToConsole('Hedgewars ' + cVersionString + ' engine (network protocol: ' + inttostr(cNetProtoVersion) + ')');
   508 GetParams;
   510 	GetParams;
   509 
   511 
   510 Randomize;
   512 	Randomize;
   511 
   513 
   512 if GameType = gmtLandPreview then GenLandPreview
   514 	if GameType = gmtLandPreview then GenLandPreview
   513                              else Game
   515 								 else Game;
       
   516 //	ExitCode := 100;
   514 end.
   517 end.
   515 
   518