spicetools/launcher/options.h

238 lines
7.2 KiB
C++

#pragma once
#include <memory>
#include <vector>
#include "cfg/option.h"
namespace launcher {
// options list - order matters
namespace Options {
enum {
GameExecutable,
OpenConfigurator,
OpenKFControl,
EAmusementEmulation,
ServiceURL,
PCBID,
Player1Card,
Player2Card,
WindowedMode,
InjectHook,
ExecuteScript,
CaptureCursor,
ShowCursor,
DisplayAdapter,
GraphicsForceRefresh,
GraphicsForceSingleAdapter,
Graphics9On12,
spice2x_Dx9On12,
NoLegacy,
RichPresence,
SmartEAmusement,
EAmusementMaintenance,
spice2x_EAmusementMaintenance,
AdapterNetwork,
AdapterSubnet,
DisableNetworkFixes,
HTTP11,
DisableSSL,
URLSlash,
SOFTID,
VREnable,
DisableOverlay,
spice2x_FpsAutoShow,
spice2x_SubScreenAutoShow,
spice2x_IOPanelAutoShow,
spice2x_KeypadAutoShow,
LoadIIDXModule,
IIDXCameraOrderFlip,
IIDXDisableCameras,
IIDXTDJCamera,
IIDXTDJCameraRatio,
IIDXTDJCameraOverride,
IIDXSoundOutputDevice,
IIDXAsioDriver,
IIDXBIO2FW,
IIDXTDJMode,
spice2x_IIDXDigitalTTSensitivity,
spice2x_IIDXLDJForce720p,
spice2x_IIDXTDJSubSize,
spice2x_IIDXLEDFontSize,
spice2x_IIDXLEDColor,
spice2x_IIDXLEDPos,
LoadSoundVoltexModule,
SDVXForce720p,
SDVXPrinterEmulation,
SDVXPrinterOutputPath,
SDVXPrinterOutputClear,
SDVXPrinterOutputOverwrite,
SDVXPrinterOutputFormat,
SDVXPrinterJPGQuality,
SDVXDisableCameras,
SDVXNativeTouch,
spice2x_SDVXDigitalKnobSensitivity,
spice2x_SDVXAsioDriver,
spice2x_SDVXSubPos,
spice2x_SDVXSubRedraw,
LoadDDRModule,
DDR43Mode,
LoadPopnMusicModule,
PopnMusicForceHDMode,
PopnMusicForceSDMode,
LoadHelloPopnMusicModule,
LoadGitaDoraModule,
GitaDoraTwoChannelAudio,
GitaDoraCabinetType,
LoadJubeatModule,
LoadReflecBeatModule,
LoadShogikaiModule,
LoadBeatstreamModule,
LoadNostalgiaModule,
LoadDanceEvolutionModule,
LoadFutureTomTomModule,
LoadBBCModule,
LoadMetalGearArcadeModule,
LoadQuizMagicAcademyModule,
LoadRoadFighters3DModule,
LoadSteelChronicleModule,
LoadMahjongFightClubModule,
LoadScottoModule,
LoadDanceRushModule,
LoadWinningElevenModule,
LoadOtocaModule,
LoadLovePlusModule,
LoadChargeMachineModule,
LoadOngakuParadiseModule,
LoadBusouShinkiModule,
LoadCCJModule,
LoadQKSModule,
LoadMusecaModule,
PathToModules,
ScreenshotFolder,
ConfigurationPath,
ScreenResizeConfigPath,
IntelSDEFolder,
PathToEa3Config,
PathToAppConfig,
PathToAvsConfig,
PathToBootstrap,
PathToLog,
APITCPPort,
APIPassword,
APIVerboseLogging,
APISerialPort,
APISerialBaud,
APIPretty,
APIDebugMode,
EnableAllIOModules,
EnableACIOModule,
EnableICCAModule,
EnableDEVICEModule,
EnableEXTDEVModule,
EnableSCIUNITModule,
EnableDevicePassthrough,
ForceWinTouch,
ForceTouchEmulation,
InvertTouchCoordinates,
DisableTouchCardInsert,
spice2x_TouchCardInsert,
ICCAReaderPort,
ICCAReaderPortToggle,
CardIOHIDReaderSupport,
CardIOHIDReaderOrderFlip,
CardIOHIDReaderOrderToggle,
HIDSmartCard,
HIDSmartCardOrderFlip,
HIDSmartCardOrderToggle,
SextetStreamPort,
EnableBemaniTools5API,
RealtimeProcessPriority,
spice2x_ProcessPriority,
spice2x_ProcessAffinity,
spice2x_ProcessorEfficiencyClass,
HeapSize,
DisableGSyncDetection,
spice2x_NvapiProfile,
DisableAudioHooks,
spice2x_DisableVolumeHook,
AudioBackend,
AsioDriverId,
AudioDummy,
DelayBy5Seconds,
spice2x_DelayByNSeconds,
LoadStubs,
AdjustOrientation,
spice2x_AutoOrientation,
LogLevel,
EAAutomap,
EANetdump,
DiscordAppID,
BlockingLogger,
DebugCreateFile,
VerboseGraphicsLogging,
VerboseAVSLogging,
DisableColoredOutput,
DisableACPHook,
DisableSignalHandling,
DisableDebugHooks,
DisableAvsVfsDriveMountRedirection,
OutputPEB,
QKSArgs,
CCJArgs,
CCJMouseTrackball,
CCJMouseTrackballWithToggle,
CCJTrackballSensitivity,
spice2x_LightsOverallBrightness,
spice2x_WindowBorder,
spice2x_WindowSize,
spice2x_WindowPosition,
spice2x_WindowAlwaysOnTop,
spice2x_IIDXWindowedSubscreenSize,
spice2x_IIDXWindowedSubscreenPosition,
spice2x_JubeatLegacyTouch,
spice2x_RBTouchScale,
spice2x_AsioForceUnload,
spice2x_IIDXNoESpec,
spice2x_IIDXWindowedTDJ,
spice2x_DRSDisableTouch,
spice2x_DRSTransposeTouch,
spice2x_IIDXNativeTouch,
spice2x_IIDXNoSub,
spice2x_IIDXEmulateSubscreenKeypadTouch,
spice2x_AutoCard,
spice2x_LowLatencySharedAudio,
spice2x_TapeLedAlgorithm,
spice2x_NoNVAPI,
spice2x_NoD3D9DeviceHook,
spice2x_SDVXNoSub,
spice2x_EnableSMXStage,
};
enum class OptionsCategory {
Everything,
Basic,
Advanced,
Dev,
API
};
}
const std::vector<std::string> &get_categories(Options::OptionsCategory category);
const std::vector<OptionDefinition> &get_option_definitions();
std::unique_ptr<std::vector<Option>> parse_options(int argc, char *argv[]);
std::vector<Option> merge_options(const std::vector<Option> &options, const std::vector<Option> &overrides);
struct GameVersion {
std::string model;
std::string dest;
std::string spec;
std::string rev;
std::string ext;
};
std::string detect_bootstrap_release_code();
GameVersion detect_gameversion(const std::string& ea3_user);
}