X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_game.pas;h=0395bf4c9f05bae2fc2a68023d795d51d2867c05;hb=0b34f8195a84d9aecc7cd9f17fd1902b7723e3b8;hp=854a15a978ea9dbb3faecef572e6973abaa77ebb;hpb=08e3dd168587e3c1f65cc9b2b93d917c7617c0ce;p=d2df-sdl.git diff --git a/src/game/g_game.pas b/src/game/g_game.pas index 854a15a..0395bf4 100644 --- a/src/game/g_game.pas +++ b/src/game/g_game.pas @@ -180,7 +180,6 @@ const GAME_OPTION_BOTVSPLAYER = 32; GAME_OPTION_BOTVSMONSTER = 64; GAME_OPTION_DMKEYS = 128; - GAME_OPTION_RESPAWNITEMS = 256; STATE_NONE = 0; STATE_MENU = 1; @@ -291,7 +290,8 @@ var gMapToDelete: String; gTempDelete: Boolean = False; gLastMap: Boolean = False; - gWinSizeX, gWinSizeY: Integer; + gScreenWidth: Word; + gScreenHeight: Word; gResolutionChange: Boolean = False; gRC_Width, gRC_Height: Integer; gRC_FullScreen, gRC_Maximized: Boolean; @@ -1065,7 +1065,7 @@ begin SortGameStat(CustomStat.PlayerStat); - if (gSaveStats or gScreenshotStats) and (Length(gPlayers) > 1) then + if (gSaveStats or gScreenshotStats) and (Length(CustomStat.PlayerStat) > 1) then begin t := Now; if g_Game_IsNet then StatFilename := NetServerName else StatFilename := 'local'; @@ -2876,7 +2876,7 @@ begin end; // HACK: take stats screenshot immediately after the first frame of the stats showing - if gScreenshotStats and not StatShotDone then + if gScreenshotStats and (not StatShotDone) and (Length(CustomStat.PlayerStat) > 1) then begin g_TakeScreenShot('stats/' + StatFilename); StatShotDone := True; @@ -3418,7 +3418,7 @@ begin end else begin - glScissor(0, 0, gWinSizeX, gWinSizeY); + glScissor(0, 0, gScreenWidth, gScreenHeight); end; // no need to clear stencil buffer, light blitting will do it for us... but only for normal scale if (g_dbg_scale <> 1.0) then glClear(GL_STENCIL_BUFFER_BIT); @@ -4948,6 +4948,8 @@ begin ResName := Map; end; + gTime := 0; + //writeln('********: gsw=', gGameSettings.WAD, '; rn=', ResName); result := false; if (ResName <> '') and (NewWAD <> '') then @@ -4984,7 +4986,6 @@ begin gExit := 0; gPauseMain := false; gPauseHolmes := false; - gTime := 0; NetTimeToUpdate := 1; NetTimeToReliable := 0; NetTimeToMaster := NetMasterRate; @@ -5555,27 +5556,6 @@ begin if g_Game_IsNet then MH_SEND_GameSettings; end; end - else if (cmd = 'g_respawn_items') and not g_Game_IsClient then - begin - with gGameSettings do - begin - if (Length(P) > 1) and - ((P[1] = '1') or (P[1] = '0')) then - begin - if (P[1][1] = '1') then - Options := Options or GAME_OPTION_RESPAWNITEMS - else - Options := Options and (not GAME_OPTION_RESPAWNITEMS); - end; - - if (LongBool(Options and GAME_OPTION_RESPAWNITEMS)) then - g_Console_Add(_lc[I_MSG_RESPAWNITEMS_ON]) - else - g_Console_Add(_lc[I_MSG_RESPAWNITEMS_OFF]); - - if g_Game_IsNet then MH_SEND_GameSettings; - end; - end else if (cmd = 'g_warmuptime') and not g_Game_IsClient then begin if Length(P) > 1 then @@ -5972,7 +5952,7 @@ begin if cmd = 'd_window' then begin g_Console_Add(Format('gScreenWidth = %d, gScreenHeight = %d', [gScreenWidth, gScreenHeight])); - g_Console_Add(Format('gWinSizeX = %d, gWinSizeY = %d', [gWinSizeX, gWinSizeY])); + g_Console_Add(Format('gScreenWidth = %d, gScreenHeight = %d', [gScreenWidth, gScreenHeight])); end else if cmd = 'd_sounds' then begin @@ -8181,6 +8161,7 @@ begin conRegVar('dbg_ignore_level_bounds', @g_dbg_ignore_bounds, 'ignore level bounds', '', false); conRegVar('r_scale', @g_dbg_scale, 0.01, 100.0, 'render scale', '', false); + conRegVar('r_resolution_scale', @r_pixel_scale, 0.01, 100.0, 'upscale factor', '', false); conRegVar('light_enabled', @gwin_k8_enable_light_experiments, 'enable/disable dynamic lighting', 'lighting'); conRegVar('light_player_halo', @g_playerLight, 'enable/disable player halo', 'player light halo');