DEADSOFTWARE

Android: fix bad screen size when config not found
[d2df-sdl.git] / src / game / g_options.pas
index dc7305f9baecaa97b32195ce45391184986f8d38..493e07cb48c9475bd4043c04ddbc253a1756cf3b 100644 (file)
@@ -134,11 +134,7 @@ var
 implementation
 
 uses
-{$IFDEF USE_NANOGL}
-  nanoGL,
-{$ELSE}
-  GL, GLExt,
-{$ENDIF}
+  {$INCLUDE ../nogl/noGLuses.inc}
   e_log, e_input, g_window, g_sound, g_gfx, g_player, Math,
   g_map, g_net, g_netmaster, SysUtils, CONFIG, g_game, g_main, e_texture,
   g_items, wadreader, e_graphics, g_touch, SDL2;
@@ -146,12 +142,12 @@ uses
 procedure g_Options_SetDefaultVideo;
 {$IF DEFINED(ANDROID)}
 var
-  display: PSDL_DisplayMode;
+  display: TSDL_DisplayMode;
 {$ENDIF}
 begin
   {$IF DEFINED(ANDROID)}
     (* On android set max screen size *)
-    SDL_GetCurrentDisplayMode(0, display);
+    SDL_GetCurrentDisplayMode(0, @display);
     gScreenWidth := display.w;
     gScreenHeight := display.h;
     gWinRealPosX := 0;
@@ -175,6 +171,7 @@ begin
     gTextureFilter := True;
     glLegacyNPOT := False;
   {$ENDIF}
+  e_LogWriteLn('g_Options_SetDefaultVideo: w = ' + IntToStr(gScreenWidth) + ' h = ' + IntToStr(gScreenHeight));
 end;
 
 procedure g_Options_SetDefault();
@@ -199,7 +196,7 @@ begin
   with gGameControls.GameControls do
   begin
     TakeScreenshot := SDL_SCANCODE_F12;
-    Stat := SDL_SCANCODE_L;
+    Stat := SDL_SCANCODE_TAB;
     Chat := SDL_SCANCODE_T;
     TeamChat := SDL_SCANCODE_Y;
   end;
@@ -213,8 +210,8 @@ begin
     KeyDown := SDL_SCANCODE_KP_5;
     KeyFire := SDL_SCANCODE_SLASH;
     KeyJump := SDL_SCANCODE_RCTRL;
-    KeyNextWeapon := SDL_SCANCODE_KP_7;
-    KeyPrevWeapon := SDL_SCANCODE_KP_9;
+    KeyNextWeapon := SDL_SCANCODE_KP_9;
+    KeyPrevWeapon := SDL_SCANCODE_KP_7;
     KeyOpen := SDL_SCANCODE_RSHIFT;
     KeyStrafe := SDL_SCANCODE_PERIOD;
 
@@ -401,11 +398,6 @@ var
     v := Max(Min(config.ReadInt(section, param, v), maxv), minv)
   end;
 
-  procedure ReadInteger (VAR v: Single; param: String; minv: Integer = Low(Integer); maxv: Integer = High(Integer)); overload;
-  begin
-    v := Max(Min(config.ReadInt(section, param, Integer(v)), maxv), minv)
-  end;
-
   procedure ReadInteger (VAR v: LongWord; param: String; minv: LongWord = Low(LongWord); maxv: LongWord = High(LongWord)); overload;
   begin
     v := Max(Min(config.ReadInt(section, param, v), maxv), minv)
@@ -584,9 +576,9 @@ begin
   end;
 
   section := 'Touch';
-  ReadInteger(g_touch_size, 'Size', 0); g_touch_size := g_touch_size / 10;
+  i := Trunc(g_touch_size * 10); ReadInteger(i, 'Size', 0); g_touch_size := i / 10;
   ReadBoolean(g_touch_fire, 'Fire');
-  ReadInteger(g_touch_offset, 'Offset', 0, 100);
+  i := Round(g_touch_offset); ReadInteger(i, 'Offset', 0, 100); g_touch_offset := i;
   ReadBoolean(g_touch_alt, 'Alt');
 
   section := 'Game';
@@ -602,7 +594,7 @@ begin
     3: gGibsCount := 32;
     else gGibsCount := 48;
   end;
-  ReadInteger(ITEM_RESPAWNTIME, 'ItemRespawnTime', 0); ITEM_RESPAWNTIME := ITEM_RESPAWNTIME * 36;
+  i := ITEM_RESPAWNTIME div 36; ReadInteger(i, 'ItemRespawnTime', 0); ITEM_RESPAWNTIME := i * 36;
   ReadInteger(gBloodCount, 'BloodCount', 0, 4);
   ReadBoolean(gAdvBlood, 'AdvancesBlood');
   ReadBoolean(gAdvCorpses, 'AdvancesCorpses');
@@ -617,7 +609,7 @@ begin
   ReadBoolean(e_FastScreenshots, 'FastScreenshots');
   ReadString(gDefaultMegawadStart, 'DefaultMegawadStart');
   ReadBoolean(gBerserkAutoswitch, 'BerserkAutoswitching');
-  ReadInteger(g_dbg_scale, 'Scale', 1); g_dbg_scale := g_dbg_scale / 100;
+  i := Trunc(g_dbg_scale * 100); ReadInteger(i, 'Scale', 100); g_dbg_scale := i / 100;
   ReadString(gLanguage, 'Language');
   if (gLanguage = LANGUAGE_RUSSIAN) or (gLanguage = LANGUAGE_ENGLISH) then
     gAskLanguage := False