You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

138 lines
4.3 KiB

#pragma once
namespace devilution {
struct DiabloOptions {
/** @brief Play game intro video on startup. */
bool bIntro;
};
struct HellfireOptions {
/** @brief Play game intro video on startup. */
bool bIntro;
/** @brief Cornerstone of the world item. */
char szItem[sizeof(PkItemStruct) * 2 + 1];
};
struct AudioOptions {
/** @brief Movie and SFX volume. */
Sint32 nSoundVolume;
/** @brief Music volume. */
Sint32 nMusicVolume;
/** @brief Player emits sound when walking. */
bool bWalkingSound;
/** @brief Automatically equipping items on pickup emits the equipment sound. */
bool bAutoEquipSound;
};
struct GraphicsOptions {
/** @brief Render width. */
Sint32 nWidth;
/** @brief Render height. */
Sint32 nHeight;
/** @brief Run in fullscreen or windowed mode. */
bool bFullscreen;
/** @brief Scale the image after rendering. */
bool bUpscale;
/** @brief Expand the aspect ratio to match the screen. */
bool bFitToScreen;
/** @brief See SDL_HINT_RENDER_SCALE_QUALITY. */
char szScaleQuality[2];
/** @brief Only scale by values divisible by the width and height. */
bool bIntegerScaling;
/** @brief Enable vsync on the output. */
bool bVSync;
/** @brief Use blended transparency rather than stippled. */
bool bBlendedTransparancy;
/** @brief Gamma correction level. */
Sint32 nGammaCorrection;
/** @brief Enable color cycling animations. */
bool bColorCycling;
/** @brief Enable FPS Limit. */
bool bFPSLimit;
};
struct GameplayOptions {
/** @brief Gameplay ticks per second. */
Sint32 nTickRate;
/** @brief Enable double walk speed when in town. */
bool bRunInTown;
/** @brief Do not let the mouse leave the application window. */
bool bGrabInput;
/** @brief Enable the Theo quest. */
bool bTheoQuest;
/** @brief Enable the cow quest. */
bool bCowQuest;
/** @brief Will players still damage other players in non-PvP mode. */
bool bFriendlyFire;
/** @brief Enable the bard hero class. */
bool bTestBard;
/** @brief Enable the babarian hero class. */
bool bTestBarbarian;
/** @brief Show the current level progress. */
bool bExperienceBar;
/** @brief Show enemy health at the top of the screen. */
bool bEnemyHealthBar;
/** @brief Automatically pick up gold when walking over it. */
bool bAutoGoldPickup;
/** @brief Recover mana when talking to Adria. */
bool bAdriaRefillsMana;
/** @brief Automatically attempt to equip weapon-type items when picking them up. */
bool bAutoEquipWeapons;
/** @brief Automatically attempt to equip armor-type items when picking them up. */
bool bAutoEquipArmor;
/** @brief Automatically attempt to equip helm-type items when picking them up. */
bool bAutoEquipHelms;
/** @brief Automatically attempt to equip shield-type items when picking them up. */
bool bAutoEquipShields;
/** @brief Automatically attempt to equip jewelry-type items when picking them up. */
bool bAutoEquipJewelry;
/** @brief Only enable 2/3 quests in each game session */
bool bRandomizeQuests;
/** @brief Indicates whether or not monster type (Animal, Demon, Undead) is shown along with other monster information. */
bool bShowMonsterType;
};
struct ControllerOptions {
/** @brief SDL Controller mapping, see SDL_GameControllerDB. */
char szMapping[1024];
/** @brief Use dpad for spell hotkeys without holding "start" */
bool bDpadHotkeys;
/** @brief Shoulder gamepad shoulder buttons act as potions by default */
bool bSwapShoulderButtonMode;
/** @brief Configure gamepad joysticks deadzone */
float fDeadzone;
#ifdef __vita__
/** @brief Enable input via rear touchpad */
bool bRearTouch;
#endif
};
struct NetworkOptions {
/** @brief Optionally bind to a specific network interface. */
char szBindAddress[129];
/** @brief Most recently entered Hostname in join dialog. */
char szPreviousHost[129];
/** @brief What network port to use. */
Uint16 nPort;
};
struct ChatOptions {
/** @brief Quick chat messages. */
char szHotKeyMsgs[4][MAX_SEND_STR_LEN];
};
struct Options {
DiabloOptions Diablo;
HellfireOptions Hellfire;
AudioOptions Audio;
GameplayOptions Gameplay;
GraphicsOptions Graphics;
ControllerOptions Controller;
NetworkOptions Network;
ChatOptions Chat;
};
extern Options sgOptions;
}