diff -r 92af50454cf2 -r 8054d9d775fd hedgewars/hwengine.pas --- a/hedgewars/hwengine.pas Fri Oct 11 11:55:31 2013 +0200 +++ b/hedgewars/hwengine.pas Fri Oct 11 17:43:13 2013 +0200 @@ -32,15 +32,13 @@ uses SDLh, uMisc, uConsole, uGame, uConsts, uLand, uAmmos, uVisualGears, uGears, uStore, uWorld, uInputHandler , uSound, uScript, uTeams, uStats, uIO, uLocale, uChat, uAI, uAIMisc, uAILandMarks, uLandTexture, uCollisions , SysUtils, uTypes, uVariables, uCommands, uUtils, uCaptions, uDebug, uCommandHandlers, uLandPainted - , uPhysFSLayer, uCursor, uRandom + , uPhysFSLayer, uCursor, uRandom, ArgParsers, uVisualGearsHandlers, uTextures {$IFDEF USE_VIDEO_RECORDING}, uVideoRec {$ENDIF} {$IFDEF USE_TOUCH_INTERFACE}, uTouch {$ENDIF} {$IFDEF ANDROID}, GLUnit{$ENDIF} {$IFDEF WEBGL}, uWeb{$ENDIF} ; -var isInternal: Boolean; - {$IFDEF HWLIBRARY} procedure preInitEverything(); procedure initEverything(complete:boolean); @@ -55,8 +53,6 @@ procedure freeEverything(complete:boolean); forward; {$ENDIF} -{$INCLUDE "ArgParsers.inc"} - {$IFDEF WEBGL} procedure playFile(path: PChar); forward; function isEngineRunning():Integer; forward; @@ -90,6 +86,7 @@ end; gsStart: begin + SetDefaultBinds; if HasBorder then DisableSomeWeapons; AddClouds; @@ -166,7 +163,7 @@ {$IFNDEF WEBGL} PrevTime, CurrTime: LongInt; isTerminated: boolean; -{$IFDEF SDL13} +{$IFDEF SDL2} previousGameState: TGameState; {$ELSE} prevFocusState: boolean; @@ -185,17 +182,17 @@ SDL_PumpEvents(); - while SDL_PeepEvents(@event, 1, SDL_GETEVENT, {$IFDEF SDL13}SDL_FIRSTEVENT, SDL_LASTEVENT{$ELSE}SDL_ALLEVENTS{$ENDIF}) > 0 do + while SDL_PeepEvents(@event, 1, SDL_GETEVENT, {$IFDEF SDL2}SDL_FIRSTEVENT, SDL_LASTEVENT{$ELSE}SDL_ALLEVENTS{$ENDIF}) > 0 do begin case event.type_ of -{$IFDEF SDL13} +{$IFDEF SDL2} SDL_KEYDOWN: if GameState = gsChat then begin // sdl on iphone supports only ashii keyboards and the unicode field is deprecated in sdl 1.3 KeyPressChat(SDL_GetKeyFromScancode(event.key.keysym.sym), event.key.keysym.sym); //TODO correct for keymodifiers end - else + else if GameState >= gsGame then ProcessKey(event.key); SDL_KEYUP: if (GameState <> gsChat) and (GameState >= gsGame) then @@ -228,7 +225,7 @@ end; SDL_FINGERMOTION: - onTouchMotion(event.tfinger.x, event.tfinger.y,event.tfinger.dx, event.tfinger.dy, event.tfinger.fingerId); + onTouchMotion(event.tfinger.x, event.tfinger.y, event.tfinger.dx, event.tfinger.dy, event.tfinger.fingerId); SDL_FINGERDOWN: onTouchDown(event.tfinger.x, event.tfinger.y, event.tfinger.fingerId); @@ -390,7 +387,11 @@ if not cOnlyStats then SDLTry(SDL_Init(SDL_INIT_VIDEO or SDL_INIT_NOPARACHUTE) >= 0, true); WriteLnToConsole(msgOK); +{$IFDEF SDL2} + SDL_StartTextInput(); +{$ELSE} SDL_EnableUNICODE(1); +{$ENDIF} SDL_ShowCursor(0); WriteToConsole('Init SDL_ttf... '); @@ -450,7 +451,7 @@ isDeveloperMode:= false; TryDo(InitStepsFlags = cifAllInited, 'Some parameters not set (flags = ' + inttostr(InitStepsFlags) + ')', true); - ParseCommand('rotmask', true); + //ParseCommand('rotmask', true); {$IFDEF USE_VIDEO_RECORDING} if GameType = gmtRecord then @@ -503,6 +504,7 @@ if complete then begin uPhysFSLayer.initModule; + uTextures.initModule; {$IFDEF ANDROID}GLUnit.initModule;{$ENDIF} {$IFDEF USE_TOUCH_INTERFACE}uTouch.initModule;{$ENDIF} {$IFDEF USE_VIDEO_RECORDING}uVideoRec.initModule;{$ENDIF} //stub @@ -515,7 +517,7 @@ uChat.initModule; uCollisions.initModule; uGears.initModule; - uInputHandler.initModule; //stub + uInputHandler.initModule; uMisc.initModule; uLandTexture.initModule; //stub uScript.initModule; @@ -524,6 +526,7 @@ uStore.initModule; uTeams.initModule; uVisualGears.initModule; + uVisualGearsHandlers.initModule; uWorld.initModule; end; end; @@ -554,6 +557,7 @@ {$IFDEF USE_VIDEO_RECORDING}uVideoRec.freeModule;{$ENDIF} {$IFDEF USE_TOUCH_INTERFACE}uTouch.freeModule;{$ENDIF} //stub {$IFDEF ANDROID}GLUnit.freeModule;{$ENDIF} + uTextures.freeModule; uPhysFSLayer.freeModule; end; @@ -607,6 +611,7 @@ {$ENDIF} {$ENDIF} preInitEverything(); + cTagsMask:= htTeamName or htName or htHealth; // this one doesn't fit nicely w/ reset of other variables. suggestions welcome GetParams(); if GameType = gmtLandPreview then