From 710b234493ef74e11a1de604937501ad752b6cd9 Mon Sep 17 00:00:00 2001 From: Alibek Omarov Date: Fri, 28 Apr 2023 04:41:39 +0300 Subject: [PATCH] engine: add new pretty --help output --- engine/common/host.c | 140 +++++++++++++++++++++---------------------- 1 file changed, 70 insertions(+), 70 deletions(-) diff --git a/engine/common/host.c b/engine/common/host.c index ddf488d5..5650d950 100644 --- a/engine/common/host.c +++ b/engine/common/host.c @@ -66,102 +66,102 @@ convar_t *build, *ver; void Sys_PrintUsage( void ) { + string version_str; const char *usage_str; -#define O(x,y) " "x" "y"\n" + Q_snprintf( version_str, sizeof( version_str ), + XASH_ENGINE_NAME " %i/" XASH_VERSION " (%s-%s build %i)", PROTOCOL_VERSION, Q_buildos(), Q_buildarch(), Q_buildnum( )); - usage_str = "" -#if XASH_MESSAGEBOX == MSGBOX_STDERR - "\n" // dirty hack to not have Xash Error: Usage: on same line -#endif // XASH_MESSAGEBOX == MSGBOX_STDERR - S_USAGE "\n" -#if !XASH_MOBILE_PLATFORM - #if XASH_WIN32 - O(".exe [options] [+command1] [+command2 arg]","") - #else // XASH_WIN32 - O(" [options] [+command1] [+command2 arg]","") - #endif // !XASH_WIN32 -#endif // !XASH_MOBILE_PLATFORM - "Options:\n" - O("-dev [level] ","set log verbosity 0-2") - O("-log ","write log to \"engine.log\"") - O("-nowriteconfig ","disable config save") +#if XASH_WIN32 +#define XASH_EXE "(xash).exe" +#else +#define XASH_EXE "(xash)" +#endif -#if !XASH_WIN32 - O("-casesensitive ","disable case-insensitive FS emulation") -#endif // !XASH_WIN32 +#define O( x, y ) " "x" "y"\n" -#if !XASH_MOBILE_PLATFORM - O("-daemonize ","run engine in background, dedicated only") -#endif // !XASH_MOBILE_PLATFORM + usage_str = S_USAGE XASH_EXE " [options] [+command] [+command2 arg] ...\n" +"\nCommon options:\n" + O("-dev [level] ", "set log verbosity 0-2") + O("-log ", "write log to \"engine.log\"") + O("-nowriteconfig ", "disable config save") + O("-noch ", "disable crashhandler") +#if XASH_WIN32 // !!!! + O("-minidumps ", "enable writing minidumps when game is crashed") +#endif + O("-rodir ", "set read-only base directory") + O("-bugcomp ", "enable precise bug compatibility. Will break games that don't require it") + O(" ", "Refer to engine documentation for more info") + O("-disablehelp ", "disable this message") #if !XASH_DEDICATED - O("-toconsole ","run engine witn console open") - O("-width ","set window width") - O("-height ","set window height") - O("-oldfont ","enable unused Quake font in Half-Life") + O("-dedicated ", "run engine in dedicated mode") +#endif -#if !XASH_MOBILE_PLATFORM - O("-fullscreen ","run engine in fullscreen mode") - O("-windowed ","run engine in windowed mode") - O("-dedicated ","run engine in dedicated server mode") -#endif // XASH_MOBILE_PLATFORM +"\nNetworking options:\n" + O("-noip ", "disable IPv4") + O("-ip ", "set IPv4 address") + O("-port ", "set IPv4 port") + O("-noip6 ", "disable IPv6") + O("-ip6 ", "set IPv6 address") + O("-port6 ", "set IPv6 port") + O("-clockwindow ", "adjust clockwindow used to ignore client commands to prevent speed hacks") + +"\nGame options:\n" + O("-dll ", "override server DLL path") +#if !XASH_DEDICATED + O("-clientlib ", "override client DLL path") + O("-console ", "run engine with console enabled") + O("-toconsole ", "run engine witn console open") + O("-oldfont ", "enable unused Quake font in Half-Life") + O("-width ", "set window width") + O("-height ", "set window height") + O("-fullscreen ", "run engine in fullscreen mode") + O("-windowed ", "run engine in windowed mode") + O("-ref ", "use selected renderer dll") + O("-gldebug ", "enable OpenGL debug log") +#if XASH_WIN32 + O("-noavi ", "disable AVI support") + O("-nointro ", "disable intro video") +#endif + O("-noenginejoy ", "disable engine builtin joystick support") + O("-noenginemouse ", "disable engine builtin mouse support") + O("-nosound ", "disable sound output") +#endif +"\nPlatform-specific options:\n" +#if !XASH_MOBILE_PLATFORM + O("-daemonize ", "run engine as a daemon") +#endif +#if XASH_SDL == 2 + O("-sdl_joy_old_api ","use SDL legacy joystick API") + O("-sdl_renderer ","use alternative SDL_Renderer for software") +#endif // XASH_SDL #if XASH_ANDROID O("-nativeegl ","use native egl implementation. Use if screen does not update or black") #endif // XASH_ANDROID - -#if XASH_WIN32 - O("-noavi ","disable AVI support") - O("-nointro ","disable intro video") - O("-minidumps ","enable writing minidumps when game crashed") -#endif // XASH_WIN32 - #if XASH_DOS O("-novesa ","disable vesa") #endif // XASH_DOS - #if XASH_VIDEO == VIDEO_FBDEV O("-fbdev ","open selected framebuffer") O("-ttygfx ","set graphics mode in tty") O("-doublebuffer ","enable doublebuffering") #endif // XASH_VIDEO == VIDEO_FBDEV - #if XASH_SOUND == SOUND_ALSA O("-alsadev ","open selected ALSA device") #endif // XASH_SOUND == SOUND_ALSA + ; +#undef O - O("-nojoy ","disable joystick support") - -#ifdef XASH_SDL - O("-sdl_joy_old_api ","use SDL legacy joystick API") - O("-sdl_renderer ","use alternative SDL_Renderer for software") -#endif // XASH_SDL - O("-nosound ","disable sound") - O("-noenginemouse ","disable mouse completely") - - O("-ref ","use selected renderer dll") - O("-gldebug ","enable OpenGL debug log") -#endif // XASH_DEDICATED - - O("-noip ","disable TCP/IP") - O("-noch ","disable crashhandler") - O("-disablehelp ","disable this message") - O("-dll ","override server DLL path") -#if !XASH_DEDICATED - O("-clientlib ","override client DLL path") + // HACKHACK: pretty output in dedicated +#if XASH_MESSAGEBOX != MSGBOX_STDERR + Platform_MessageBox( version_str, usage_str, false ); +#else + fprintf( stderr, "%s\n%s", version_str, usage_str ); #endif - O("-rodir ","set read-only base directory, experimental") - O("-bugcomp ","enable precise bug compatibility. Will break games that don't require it") - O(" ","Refer to engine documentation for more info") - - O("-ip ","set custom ip") - O("-port ","set custom host port") - O("-clockwindow ","adjust clockwindow") - ; -#undef O - Sys_Error( "%s", usage_str ); + Sys_Quit(); } int Host_CompareFileTime( int ft1, int ft2 )