Browse Source

demo: Centralize options override

pull/2634/head
obligaron 5 years ago committed by Anders Jenbo
parent
commit
26e61b363b
  1. 3
      Source/dx.cpp
  2. 24
      Source/engine/demomode.cpp
  3. 2
      Source/engine/demomode.h
  4. 9
      Source/options.cpp
  5. 5
      Source/utils/display.cpp

3
Source/dx.cpp

@ -7,7 +7,6 @@
#include <SDL.h>
#include "engine/demomode.h"
#include "engine.h"
#include "options.h"
#include "storm/storm.h"
@ -334,7 +333,7 @@ void RenderPresent()
}
SDL_RenderPresent(renderer);
if (!sgOptions.Graphics.bVSync && !demo::IsTimedemo()) {
if (!sgOptions.Graphics.bVSync) {
LimitFrameRate();
}
} else {

24
Source/engine/demomode.cpp

@ -46,6 +46,9 @@ uint32_t DemoModeLastTick = 0;
int LogicTick = 0;
int StartTime = 0;
int DemoGraphicsWidth = 640;
int DemoGraphicsHeight = 480;
void PumpDemoMessage(DemoMsgType demoMsgType, uint32_t message, int32_t wParam, int32_t lParam, float progressToNextGameTick)
{
demoMsg msg;
@ -82,12 +85,10 @@ bool LoadDemoMessages(int i)
gSaveNumber = std::stoi(number);
std::getline(header, number, ',');
uint32_t width = std::stoi(number);
sgOptions.Graphics.nWidth = width;
DemoGraphicsWidth = std::stoi(number);
std::getline(header, number, ',');
uint32_t height = std::stoi(number);
sgOptions.Graphics.nHeight = height;
DemoGraphicsHeight = std::stoi(number);
while (std::getline(demofile, line)) {
std::stringstream command(line);
@ -141,15 +142,20 @@ void InitRecording(int recordNumber)
{
RecordNumber = recordNumber;
}
bool IsRunning()
void OverrideOptions()
{
return DemoNumber != -1;
sgOptions.Graphics.nWidth = DemoGraphicsWidth;
sgOptions.Graphics.nHeight = DemoGraphicsHeight;
sgOptions.Graphics.bFitToScreen = false;
if (Timedemo) {
sgOptions.Graphics.bVSync = false;
sgOptions.Graphics.bFPSLimit = false;
}
}
bool IsTimedemo()
bool IsRunning()
{
return Timedemo;
return DemoNumber != -1;
}
bool IsRecording()

2
Source/engine/demomode.h

@ -13,9 +13,9 @@ namespace demo {
void InitPlayBack(int demoNumber, bool timedemo);
void InitRecording(int recordNumber);
void OverrideOptions();
bool IsRunning();
bool IsTimedemo();
bool IsRecording();
bool GetRunGameLoop(bool &drawGame, bool &processInput);

9
Source/options.cpp

@ -225,10 +225,8 @@ void LoadOptions()
sgOptions.Audio.nBufferSize = GetIniInt("Audio", "Buffer Size", DEFAULT_AUDIO_BUFFER_SIZE);
sgOptions.Audio.nResamplingQuality = GetIniInt("Audio", "Resampling Quality", DEFAULT_AUDIO_RESAMPLING_QUALITY);
if (!demo::IsRunning()) {
sgOptions.Graphics.nWidth = GetIniInt("Graphics", "Width", DEFAULT_WIDTH);
sgOptions.Graphics.nHeight = GetIniInt("Graphics", "Height", DEFAULT_HEIGHT);
}
sgOptions.Graphics.nWidth = GetIniInt("Graphics", "Width", DEFAULT_WIDTH);
sgOptions.Graphics.nHeight = GetIniInt("Graphics", "Height", DEFAULT_HEIGHT);
#ifndef __vita__
sgOptions.Graphics.bFullscreen = GetIniBool("Graphics", "Fullscreen", true);
#else
@ -355,6 +353,9 @@ void LoadOptions()
keymapper.Load();
if (demo::IsRunning())
demo::OverrideOptions();
sbWasOptionsLoaded = true;
}

5
Source/utils/display.cpp

@ -15,7 +15,6 @@
#include "controls/devices/joystick.h"
#include "controls/devices/kbcontroller.h"
#include "controls/game_controls.h"
#include "engine/demomode.h"
#include "options.h"
#include "utils/log.hpp"
@ -173,7 +172,7 @@ bool SpawnWindow(const char *lpWindowName)
int width = sgOptions.Graphics.nWidth;
int height = sgOptions.Graphics.nHeight;
if (sgOptions.Graphics.bUpscale && sgOptions.Graphics.bFitToScreen && !demo::IsRunning()) {
if (sgOptions.Graphics.bUpscale && sgOptions.Graphics.bFitToScreen) {
CalculatePreferdWindowSize(width, height);
}
AdjustToScreenGeometry(width, height);
@ -221,7 +220,7 @@ bool SpawnWindow(const char *lpWindowName)
#ifndef USE_SDL1
Uint32 rendererFlags = SDL_RENDERER_ACCELERATED;
if (sgOptions.Graphics.bVSync && !demo::IsTimedemo()) {
if (sgOptions.Graphics.bVSync) {
rendererFlags |= SDL_RENDERER_PRESENTVSYNC;
}

Loading…
Cancel
Save