X-Git-Url: https://deadsoftware.ru/gitweb?p=d2df-sdl.git;a=blobdiff_plain;f=src%2Fgame%2Fg_options.pas;h=706ca33a1a357d740a82b0282c9557e590a8f929;hp=c923a6771fdb120124f71ef6a778720633af8ffc;hb=e452d337f0620b50d8d978b534437b2732134d8f;hpb=c8d7811d45c2d34a7e297613e50570f253a0d8e9 diff --git a/src/game/g_options.pas b/src/game/g_options.pas index c923a67..706ca33 100644 --- a/src/game/g_options.pas +++ b/src/game/g_options.pas @@ -35,14 +35,14 @@ procedure g_Options_Commands (p: SSArray); 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; @@ -74,6 +74,7 @@ var gcMonsters: Boolean; gcBotsVS: String; gcDeathmatchKeys: Boolean = True; + gcRespawnItems: Boolean = True; gcSpawnInvul: Integer = 0; gnMap: String; gnGameMode: String; @@ -87,6 +88,7 @@ var gnMonsters: Boolean; gnBotsVS: String; gnDeathmatchKeys: Boolean = True; + gnRespawnItems: Boolean = True; gnSpawnInvul: Integer = 0; gsSDLSampleRate: Integer; gsSDLBufferSize: Integer; @@ -130,6 +132,8 @@ begin (* Display 0 = Primary display *) gScreenWidth := 640; gScreenHeight := 480; + gWinSizeX := 640; + gWinSizeY := 480; //gBPP := SDL_BITSPERPIXEL(dispaly.format); gBPP := 32; {$IFDEF ANDROID} @@ -140,8 +144,8 @@ begin 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; @@ -163,8 +167,8 @@ begin 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 @@ -177,29 +181,31 @@ begin 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} @@ -288,6 +294,7 @@ begin gcMonsters := False; gcBotsVS := 'Everybody'; gcDeathmatchKeys := True; + gcRespawnItems := True; gcSpawnInvul := 0; (* section GameplayNetwork *) @@ -303,6 +310,7 @@ begin gnMonsters := False; gnBotsVS := 'Everybody'; gnDeathmatchKeys := True; + gnRespawnItems := True; gnSpawnInvul := 0; (* section MasterServer *) @@ -419,6 +427,7 @@ begin ReadBoolean(gcMonsters, 'Monsters'); ReadString(gcBotsVS, 'BotsVS'); ReadBoolean(gcDeathmatchKeys, 'DeathmatchKeys'); + ReadBoolean(gcRespawnItems, 'RespawnItems'); ReadInteger(gcSpawnInvul, 'SpawnInvul'); with gGameSettings do @@ -449,6 +458,8 @@ begin 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'; @@ -464,6 +475,7 @@ begin ReadBoolean(gnMonsters, 'Monsters'); ReadString(gnBotsVS, 'BotsVS'); ReadBoolean(gnDeathmatchKeys, 'DeathmatchKeys'); + ReadBoolean(gnRespawnItems, 'RespawnItems'); ReadInteger(gnSpawnInvul, 'SpawnInvul'); section := 'MasterServer'; @@ -536,6 +548,7 @@ begin 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); @@ -550,6 +563,7 @@ begin 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); @@ -598,6 +612,7 @@ begin 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); @@ -624,6 +639,7 @@ begin 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); @@ -799,6 +815,7 @@ initialization conRegVar('r_vsync', @gVSync, '', ''); conRegVar('r_texfilter', @gTextureFilter, '', ''); conRegVar('r_npot', @glNPOTOverride, '', ''); + conRegVar('r_fbo', @glRenderToFBO, '', ''); (* Sound *) conRegVar('s_nosound', @gNoSound, '', '');