diff --git a/src/game/g_options.pas b/src/game/g_options.pas
index 1644928c89dea12d8de0f22be94800970d6d9a4d..d05ed835f86d43d5edd808f7db4a0ff6d17f217f 100644 (file)
--- a/src/game/g_options.pas
+++ b/src/game/g_options.pas
-(* Copyright (C) DooM 2D:Forever Developers
+(* Copyright (C) Doom 2D: Forever Developers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
procedure g_Options_Write_Net_Server(FileName: String);
procedure g_Options_Write_Net_Client(FileName: String);
+const DF_Default_Megawad_Start = 'megawads/DOOM2D.WAD:\MAP01';
+
var
gGameControls: TControls;
gScreenWidth: Word = 800;
gsSDLBufferSize: Integer = 2048;
gSFSDebug: Boolean = False;
gSFSFastMode: Boolean = False;
- gDefaultMegawadStart: AnsiString = 'megawads/DOOM2D.WAD:\MAP01';
+ gDefaultMegawadStart: AnsiString = DF_Default_Megawad_Start;
+ gBerserkAutoswitch: Boolean = True;
implementation
uses
+{$IFDEF USE_NANOGL}
+ nanoGL,
+{$ELSE}
+ GL, GLExt,
+{$ENDIF}
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_textures,
- g_items, GL, GLExt, wadreader, e_graphics;
+ g_map, g_net, g_netmaster, SysUtils, CONFIG, g_game, g_main, e_texture,
+ g_items, wadreader, e_graphics;
procedure g_Options_SetDefault();
var
gMuteWhenInactive := False;
gAnnouncer := ANNOUNCE_MEPLUS;
gSoundEffectsDF := True;
+ gUseChatSounds := True;
g_GFX_SetMax(2000);
g_Gibs_SetMax(150);
g_Corpses_SetMax(20);
end;
NetUseMaster := True;
+ NetForwardPorts := False;
g_Net_Slist_Set('mpms.doom2d.org', 25665);
end;
i: Integer;
begin
gAskLanguage := True;
- e_WriteLog('Reading config', MSG_NOTIFY);
+ e_WriteLog('Reading config', TMsgType.Notify);
if not FileExists(FileName) then
begin
- e_WriteLog('Config file '+FileName+' not found', MSG_WARNING);
+ e_WriteLog('Config file '+FileName+' not found', TMsgType.Warning);
g_Options_SetDefault();
// Default video options:
gScreenHeight := config.ReadInt('Video', 'ScreenHeight', 600);
if gScreenHeight < 480 then
gScreenHeight := 480;
- gWinRealPosX := config.ReadInt('Video', 'WinPosX', 0);
+ gWinRealPosX := config.ReadInt('Video', 'WinPosX', 60);
if gWinRealPosX < 0 then
- gWinRealPosX := 0;
- gWinRealPosY := config.ReadInt('Video', 'WinPosY', 0);
+ gWinRealPosX := 60;
+ gWinRealPosY := config.ReadInt('Video', 'WinPosY', 60);
if gWinRealPosY < 0 then
- gWinRealPosY := 0;
+ gWinRealPosY := 60;
gFullScreen := config.ReadBool('Video', 'Fullscreen', False);
gWinMaximized := config.ReadBool('Video', 'Maximized', False);
gBPP := config.ReadInt('Video', 'BPP', 32);
gMuteWhenInactive := config.ReadBool('Sound', 'MuteInactive', False);
gAnnouncer := Min(Max(config.ReadInt('Sound', 'Announcer', ANNOUNCE_MEPLUS), ANNOUNCE_NONE), ANNOUNCE_ALL);
gSoundEffectsDF := config.ReadBool('Sound', 'SoundEffectsDF', True);
+ gUseChatSounds := config.ReadBool('Sound', 'ChatSounds', True);
gsSDLSampleRate := Min(Max(config.ReadInt('Sound', 'SDLSampleRate', 44100), 11025), 96000);
gsSDLBufferSize := Min(Max(config.ReadInt('Sound', 'SDLBufferSize', 2048), 64), 16384);
gSFSFastMode := config.ReadBool('Game', 'SFSFastMode', False);
wadoptFast := gSFSFastMode;
e_FastScreenshots := config.ReadBool('Game', 'FastScreenshots', True);
- gDefaultMegawadStart := config.ReadStr('Game', 'DefaultMegawadStart', 'megawads/DOOM2D.WAD:\MAP01');
+ gDefaultMegawadStart := config.ReadStr('Game', 'DefaultMegawadStart', DF_Default_Megawad_Start);
+ gBerserkAutoswitch := config.ReadBool('Game', 'BerserkAutoswitching', True);
// Ãåéìïëåé â ñâîåé èãðå
gcMap := config.ReadStr('GameplayCustom', 'Map', '');
NetUpdateRate := Max(0, config.ReadInt('Server', 'UpdateInterval', 0));
NetRelupdRate := Max(0, config.ReadInt('Server', 'ReliableUpdateInterval', 18));
NetMasterRate := Max(1, config.ReadInt('Server', 'MasterSyncInterval', 60000));
+ NetForwardPorts := config.ReadBool('Server', 'ForwardPorts', False);
// Êëèåíò
NetInterpLevel := Max(0, config.ReadInt('Client', 'InterpolationSteps', 2));
config.Free();
- if gTextureFilter then
- TEXTUREFILTER := GL_LINEAR
- else
- TEXTUREFILTER := GL_NEAREST;
+ //if gTextureFilter then TEXTUREFILTER := GL_LINEAR else TEXTUREFILTER := GL_NEAREST;
end;
procedure g_Options_Write(FileName: String);
config: TConfig;
i: Integer;
begin
- e_WriteLog('Writing config', MSG_NOTIFY);
+ e_WriteLog('Writing config', TMsgType.Notify);
config := TConfig.CreateFile(FileName);
config.WriteBool('Sound', 'MuteInactive', gMuteWhenInactive);
config.WriteInt('Sound', 'Announcer', gAnnouncer);
config.WriteBool('Sound', 'SoundEffectsDF', gSoundEffectsDF);
+ config.WriteBool('Sound', 'ChatSounds', gUseChatSounds);
config.WriteInt('Sound', 'SDLSampleRate', gsSDLSampleRate);
config.WriteInt('Sound', 'SDLBufferSize', gsSDLBufferSize);
config.WriteBool('Game', 'SFSFastMode', gSFSFastMode);
config.WriteBool('Game', 'FastScreenshots', e_FastScreenshots);
config.WriteStr('Game', 'DefaultMegawadStart', gDefaultMegawadStart);
+ config.WriteBool('Game', 'BerserkAutoswitching', gBerserkAutoswitch);
config.WriteStr ('GameplayCustom', 'Map', gcMap);
config.WriteStr ('GameplayCustom', 'GameMode', gcGameMode);
config.WriteBool('Server', 'RCON', NetAllowRCON);
config.WriteStr ('Server', 'RCONPassword', NetRCONPassword);
config.WriteBool('Server', 'SyncWithMaster', NetUseMaster);
+ config.WriteBool('Server', 'ForwardPorts', NetForwardPorts);
config.WriteInt ('Server', 'UpdateInterval', NetUpdateRate);
config.WriteInt ('Server', 'ReliableUpdateInterval', NetRelupdRate);
config.WriteInt ('Server', 'MasterSyncInterval', NetMasterRate);
var
config: TConfig;
begin
- e_WriteLog('Writing language config', MSG_NOTIFY);
+ e_WriteLog('Writing language config', TMsgType.Notify);
config := TConfig.CreateFile(FileName);
config.WriteStr('Game', 'Language', gLanguage);
config: TConfig;
sW, sH: Integer;
begin
- e_WriteLog('Writing resolution to config', MSG_NOTIFY);
+ e_WriteLog('Writing resolution to config', TMsgType.Notify);
config := TConfig.CreateFile(FileName);
sW := gScreenWidth;
sH := gScreenHeight;
end;
+ e_LogWritefln(' (ws=%dx%d) (ss=%dx%d)', [gWinSizeX, gWinSizeY, gScreenWidth, gScreenHeight]);
config.WriteInt('Video', 'ScreenWidth', sW);
config.WriteInt('Video', 'ScreenHeight', sH);
var
config: TConfig;
begin
- e_WriteLog('Writing custom gameplay config', MSG_NOTIFY);
+ e_WriteLog('Writing custom gameplay config', TMsgType.Notify);
config := TConfig.CreateFile(FileName);
var
config: TConfig;
begin
- e_WriteLog('Writing network gameplay config', MSG_NOTIFY);
+ e_WriteLog('Writing network gameplay config', TMsgType.Notify);
config := TConfig.CreateFile(FileName);
var
config: TConfig;
begin
- e_WriteLog('Writing server config', MSG_NOTIFY);
+ e_WriteLog('Writing server config', TMsgType.Notify);
config := TConfig.CreateFile(FileName);
config.WriteInt ('Server', 'Port', NetPort);
config.WriteInt ('Server', 'MaxClients', NetMaxClients);
config.WriteBool('Server', 'SyncWithMaster', NetUseMaster);
+ config.WriteBool('Server', 'ForwardPorts', NetForwardPorts);
config.SaveFile(FileName);
config.Free();
var
config: TConfig;
begin
- e_WriteLog('Writing client config', MSG_NOTIFY);
+ e_WriteLog('Writing client config', TMsgType.Notify);
config := TConfig.CreateFile(FileName);