mirror of
https://github.com/DrBeef/Raze.git
synced 2024-12-15 15:11:01 +00:00
145 lines
3.3 KiB
C++
145 lines
3.3 KiB
C++
#pragma once
|
|
|
|
#include "keyboard.h"
|
|
#include "control.h"
|
|
#include "_control.h"
|
|
#include "c_cvars.h"
|
|
#include "zstring.h"
|
|
#include "inputstate.h"
|
|
#include "gamecvars.h"
|
|
#include "tarray.h"
|
|
#include "name.h"
|
|
|
|
EXTERN_CVAR(Int, cl_defaultconfiguration)
|
|
|
|
extern FString currentGame;
|
|
extern FString LumpFilter;
|
|
class FArgs;
|
|
|
|
extern TMap<FName, int32_t> NameToTileIndex;
|
|
|
|
void D_AddWildFile(TArray<FString>& wadfiles, const char* value);
|
|
|
|
int CONFIG_Init();
|
|
void CONFIG_SetDefaultKeys(const char *defbinds);
|
|
|
|
// I am not sure if anything below will survive for long...
|
|
|
|
#define MAXMOUSEAXES 2
|
|
#define MAXMOUSEDIGITAL (MAXMOUSEAXES*2)
|
|
|
|
// default mouse scale
|
|
#define DEFAULTMOUSEANALOGUESCALE 65536
|
|
|
|
// default joystick settings
|
|
|
|
#define DEFAULTJOYSTICKANALOGUESCALE 65536
|
|
#define DEFAULTJOYSTICKANALOGUEDEAD 1000
|
|
#define DEFAULTJOYSTICKANALOGUESATURATE 9500
|
|
|
|
|
|
void CONFIG_SetupJoystick(void);
|
|
void CONFIG_InitMouseAndController();
|
|
|
|
void CONFIG_SetGameControllerDefaultsClear();
|
|
|
|
extern FStringCVar* const CombatMacros[];
|
|
void CONFIG_ReadCombatMacros();
|
|
|
|
int32_t CONFIG_GetMapBestTime(char const* const mapname, uint8_t const* const mapmd4);
|
|
int CONFIG_SetMapBestTime(uint8_t const* const mapmd4, int32_t tm);
|
|
|
|
struct UserConfig
|
|
{
|
|
FString gamegrp;
|
|
FString CommandMap;
|
|
FString DefaultDef;
|
|
FString DefaultCon;
|
|
FString CommandDemo;
|
|
FString CommandName;
|
|
FString CommandIni;
|
|
std::unique_ptr<FArgs> AddDefs;
|
|
std::unique_ptr<FArgs> AddCons;
|
|
std::unique_ptr<FArgs> AddFiles;
|
|
std::unique_ptr<FArgs> AddFilesPre; //To be added before the main directory. Only for legacy options.
|
|
std::unique_ptr<FArgs> AddArt;
|
|
|
|
bool nomonsters = false;
|
|
bool nosound = false;
|
|
bool nomusic = false;
|
|
bool nologo = false;
|
|
int setupstate = -1;
|
|
|
|
int netPort = 0; // g_netPort = Batoi(argv[i + 1]);
|
|
int netServerMode = -1; // g_networkMode = NET_SERVER; g_noSetup = g_noLogo = TRUE;
|
|
FString netServerAddress; // Net_Connect(argv[i + 1]); g_noSetup = g_noLogo = TRUE;
|
|
FString netPassword; // Bstrncpyz(g_netPassword, argv[i + 1], sizeof(g_netPassword));
|
|
|
|
void ProcessOptions();
|
|
};
|
|
|
|
extern UserConfig userConfig;
|
|
|
|
inline bool MusicEnabled()
|
|
{
|
|
return !userConfig.nomusic;
|
|
}
|
|
|
|
inline bool SoundEnabled()
|
|
{
|
|
return snd_enabled && !userConfig.nosound;
|
|
}
|
|
|
|
|
|
enum
|
|
{
|
|
GAMEFLAG_DUKE = 0x00000001,
|
|
GAMEFLAG_NAM = 0x00000002,
|
|
GAMEFLAG_NAPALM = 0x00000004,
|
|
GAMEFLAG_WW2GI = 0x00000008,
|
|
GAMEFLAG_ADDON = 0x00000010,
|
|
GAMEFLAG_SHAREWARE = 0x00000020,
|
|
GAMEFLAG_DUKEBETA = 0x00000060, // includes 0x20 since it's a shareware beta
|
|
GAMEFLAG_FURY = 0x00000080,
|
|
GAMEFLAG_RR = 0x00000100,
|
|
GAMEFLAG_RRRA = 0x00000200,
|
|
GAMEFLAG_BLOOD = 0x00000400,
|
|
GAMEFLAG_SW = 0x00000800,
|
|
GAMEFLAG_STANDALONE = 0x00001000,
|
|
GAMEFLAGMASK = 0x00000FFF, // flags allowed from grpinfo
|
|
|
|
};
|
|
|
|
|
|
struct GrpInfo
|
|
{
|
|
FString name;
|
|
FString scriptname;
|
|
FString defname;
|
|
FString rtsname;
|
|
FString gamefilter;
|
|
uint32_t CRC = 0;
|
|
uint32_t dependencyCRC = 0;
|
|
size_t size = 0;
|
|
int flags = 0;
|
|
bool loaddirectory = false;
|
|
TArray<FString> mustcontain;
|
|
TArray<FString> loadfiles;
|
|
TArray<FString> loadart;
|
|
};
|
|
|
|
|
|
|
|
struct GrpEntry
|
|
{
|
|
FString FileName;
|
|
GrpInfo FileInfo;
|
|
uint32_t FileIndex;
|
|
};
|
|
extern int g_gameType;
|
|
const char* G_DefaultDefFile(void);
|
|
const char* G_DefFile(void);
|
|
const char* G_DefaultConFile(void);
|
|
const char* G_ConFile(void);
|
|
|
|
TArray<GrpEntry> GrpScan();
|