diff --git a/src/game/g_options.pas b/src/game/g_options.pas
index d4f92e86617af3c35036b96df4f798c117de4c68..706ca33a1a357d740a82b0282c9557e590a8f929 100644 (file)
--- a/src/game/g_options.pas
+++ b/src/game/g_options.pas
const DF_Default_Megawad_Start = 'megawads/DOOM2D.WAD:\MAP01';
var
- gScreenWidth: Word;
- gScreenHeight: Word;
gBPP: Integer;
gFreq: Byte;
gFullscreen: Boolean;
+ gWinSizeX, gWinSizeY: Integer;
gWinMaximized: Boolean;
gVSync: Boolean;
glLegacyNPOT: Boolean;
+ glRenderToFBO: Boolean = True;
gTextureFilter: Boolean;
gNoSound: Boolean;
gSoundLevel: Integer;
gcWeaponStay: Boolean;
gcMonsters: Boolean;
gcBotsVS: String;
+ gcDeathmatchKeys: Boolean = True;
+ gcRespawnItems: Boolean = True;
+ gcSpawnInvul: Integer = 0;
gnMap: String;
gnGameMode: String;
gnTimeLimit: Word;
gnWeaponStay: Boolean;
gnMonsters: Boolean;
gnBotsVS: String;
+ gnDeathmatchKeys: Boolean = True;
+ gnRespawnItems: Boolean = True;
+ gnSpawnInvul: Integer = 0;
gsSDLSampleRate: Integer;
gsSDLBufferSize: Integer;
gDefaultMegawadStart: AnsiString;
(* Display 0 = Primary display *)
gScreenWidth := 640;
gScreenHeight := 480;
+ gWinSizeX := 640;
+ gWinSizeY := 480;
//gBPP := SDL_BITSPERPIXEL(dispaly.format);
gBPP := 32;
{$IFDEF ANDROID}
if SDL_GetDesktopDisplayMode(0, @display) = 0 then
begin
{$IFDEF ANDROID}
- gScreenWidth := display.w;
- gScreenHeight := display.h;
+ gWinSizeX := display.w;
+ gWinSizeY := display.h;
{$ELSE}
(* Window must be smaller than display *)
closest.w := display.w;
SDL_GetClosestDisplayMode(0, @target, @closest);
Dec(percentage);
end;
- gScreenWidth := closest.w;
- gScreenHeight := closest.h;
+ gWinSizeX := closest.w;
+ gWinSizeY := closest.h;
//gBPP := SDL_BITSPERPIXEL(closest.format); (* Resolution list didn't work for some reason *)
{$ENDIF}
end
gVSync := True;
gTextureFilter := True;
glLegacyNPOT := False;
- gRC_Width := gScreenWidth;
- gRC_Height := gScreenHeight;
+ gRC_Width := gWinSizeX;
+ gRC_Height := gWinSizeY;
gRC_FullScreen := gFullScreen;
gRC_Maximized := gWinMaximized;
- e_LogWriteLn('g_Options_SetDefaultVideo: w = ' + IntToStr(gScreenWidth) + ' h = ' + IntToStr(gScreenHeight));
+ e_LogWriteLn('g_Options_SetDefaultVideo: w = ' + IntToStr(gWinSizeX) + ' h = ' + IntToStr(gWinSizeY));
g_Console_ResetBinds;
end;
{$ELSE}
procedure g_Options_SetDefaultVideo;
begin
- gScreenWidth := 640;
- gScreenHeight := 480;
+ gWinSizeX := 640;
+ gWinSizeY := 480;
gBPP := 32;
gFullScreen := False;
gWinMaximized := False;
gVSync := True;
gTextureFilter := True;
glLegacyNPOT := False;
- gRC_Width := gScreenWidth;
- gRC_Height := gScreenHeight;
+ gScreenWidth := gWinSizeX;
+ gScreenHeight := gWinSizeY;
+ gRC_Width := gWinSizeX;
+ gRC_Height := gWinSizeY;
gRC_FullScreen := gFullScreen;
gRC_Maximized := gWinMaximized;
- e_LogWriteLn('g_Options_SetDefaultVideo: w = ' + IntToStr(gScreenWidth) + ' h = ' + IntToStr(gScreenHeight));
+ e_LogWriteLn('g_Options_SetDefaultVideo: w = ' + IntToStr(gWinSizeX) + ' h = ' + IntToStr(gWinSizeY));
g_Console_ResetBinds;
end;
{$ENDIF}
gcWeaponStay := False;
gcMonsters := False;
gcBotsVS := 'Everybody';
+ gcDeathmatchKeys := True;
+ gcRespawnItems := True;
+ gcSpawnInvul := 0;
(* section GameplayNetwork *)
gnMap := '';
gnWeaponStay := False;
gnMonsters := False;
gnBotsVS := 'Everybody';
+ gnDeathmatchKeys := True;
+ gnRespawnItems := True;
+ gnSpawnInvul := 0;
(* section MasterServer *)
NetSlistIP := 'mpms.doom2d.org';
ReadBoolean(gcWeaponStay, 'WeaponStay');
ReadBoolean(gcMonsters, 'Monsters');
ReadString(gcBotsVS, 'BotsVS');
+ ReadBoolean(gcDeathmatchKeys, 'DeathmatchKeys');
+ ReadBoolean(gcRespawnItems, 'RespawnItems');
+ ReadInteger(gcSpawnInvul, 'SpawnInvul');
with gGameSettings do
begin
Options := Options or GAME_OPTION_BOTVSPLAYER;
if gcBotsVS = 'Monsters' then
Options := Options or GAME_OPTION_BOTVSMONSTER;
+ if gcDeathmatchKeys then
+ Options := Options or GAME_OPTION_DMKEYS;
+ if gcRespawnItems then
+ Options := Options or GAME_OPTION_RESPAWNITEMS;
end;
section := 'GameplayNetwork';
ReadBoolean(gnWeaponStay, 'WeaponStay');
ReadBoolean(gnMonsters, 'Monsters');
ReadString(gnBotsVS, 'BotsVS');
+ ReadBoolean(gnDeathmatchKeys, 'DeathmatchKeys');
+ ReadBoolean(gnRespawnItems, 'RespawnItems');
+ ReadInteger(gnSpawnInvul, 'SpawnInvul');
section := 'MasterServer';
ReadString(NetSlistIP, 'IP');
config.WriteBool('GameplayCustom', 'WeaponStay', gcWeaponStay);
config.WriteBool('GameplayCustom', 'Monsters', gcMonsters);
config.WriteStr ('GameplayCustom', 'BotsVS', gcBotsVS);
+ config.WriteBool('GameplayCustom', 'DeathmatchKeys', gcDeathmatchKeys);
+ config.WriteBool('GameplayCustom', 'RespawnItems', gcRespawnItems);
+ config.WriteInt ('GameplayCustom', 'SpawnInvul', gcSpawnInvul);
config.WriteStr ('GameplayNetwork', 'Map', gnMap);
config.WriteStr ('GameplayNetwork', 'GameMode', gnGameMode);
config.WriteBool('GameplayNetwork', 'WeaponStay', gnWeaponStay);
config.WriteBool('GameplayNetwork', 'Monsters', gnMonsters);
config.WriteStr ('GameplayNetwork', 'BotsVS', gnBotsVS);
+ config.WriteBool('GameplayNetwork', 'DeathmatchKeys', gnDeathmatchKeys);
+ config.WriteBool('GameplayNetwork', 'RespawnItems', gnRespawnItems);
+ config.WriteInt ('GameplayNetwork', 'SpawnInvul', gnSpawnInvul);
config.WriteStr('MasterServer', 'IP', NetSlistIP);
config.WriteInt('MasterServer', 'Port', NetSlistPort);
config.WriteBool('GameplayCustom', 'WeaponStay', gcWeaponStay);
config.WriteBool('GameplayCustom', 'Monsters', gcMonsters);
config.WriteStr ('GameplayCustom', 'BotsVS', gcBotsVS);
+ config.WriteBool('GameplayCustom', 'DeathmatchKeys', gcDeathmatchKeys);
+ config.WriteBool('GameplayCustom', 'RespawnItems', gcRespawnItems);
+ config.WriteInt ('GameplayCustom', 'SpawnInvul', gcSpawnInvul);
config.SaveFile(FileName);
config.Free();
config.WriteBool('GameplayNetwork', 'WeaponStay', gnWeaponStay);
config.WriteBool('GameplayNetwork', 'Monsters', gnMonsters);
config.WriteStr ('GameplayNetwork', 'BotsVS', gnBotsVS);
+ config.WriteBool('GameplayNetwork', 'DeathmatchKeys', gnDeathmatchKeys);
+ config.WriteBool('GameplayNetwork', 'RespawnItems', gnRespawnItems);
+ config.WriteInt ('GameplayNetwork', 'SpawnInvul', gnSpawnInvul);
config.SaveFile(FileName);
config.Free();
conRegVar('r_vsync', @gVSync, '', '');
conRegVar('r_texfilter', @gTextureFilter, '', '');
conRegVar('r_npot', @glNPOTOverride, '', '');
+ conRegVar('r_fbo', @glRenderToFBO, '', '');
(* Sound *)
conRegVar('s_nosound', @gNoSound, '', '');