From db5a6bff6f3383aab97d54a1e9e8b42476a887e3 Mon Sep 17 00:00:00 2001 From: Andrey Nazarov Date: Thu, 10 Nov 2022 22:35:30 +0300 Subject: [PATCH 1/5] Add a hack to allow attract loop to work. --- src/server/commands.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/server/commands.c b/src/server/commands.c index 1d36430f1..cab8af7b5 100644 --- a/src/server/commands.c +++ b/src/server/commands.c @@ -302,16 +302,19 @@ SV_DemoMap_f Puts the server in demo mode on a specific map/cinematic ================== */ +#if USE_CLIENT static void SV_DemoMap_f(void) { - Com_Printf("'%s' command is no longer supported.\n", Cmd_Argv(0)); -#if USE_CLIENT - Com_Printf("To play a client demo, use 'demo' command instead.\n"); -#endif -#if USE_MVD_CLIENT - Com_Printf("To play a MVD, use 'mvdplay' command.\n"); -#endif + char *s = Cmd_Argv(1); + + if (!COM_CompareExtension(s, ".dm2")) + Cbuf_InsertText(&cmd_buffer, va("demo \"%s\"\n", s)); + else if (!COM_CompareExtension(s, ".cin")) + Cbuf_InsertText(&cmd_buffer, va("map \"%s\" force\n", s)); + else + Com_Printf("\"%s\" only supports demos and cinematics\n", Cmd_Argv(0)); } +#endif /* ================== @@ -1749,7 +1752,9 @@ static const cmdreg_t c_server[] = { { "stuffcvar", SV_StuffCvar_f, SV_SetPlayer_c }, { "printall", SV_PrintAll_f }, { "map", SV_Map_f, SV_Map_c }, +#if USE_CLIENT { "demomap", SV_DemoMap_f }, +#endif { "gamemap", SV_GameMap_f, SV_Map_c }, { "dumpents", SV_DumpEnts_f }, { "setmaster", SV_SetMaster_f }, From 36203c0dfccd2d9e976e3e1217aa9549f07a61ad Mon Sep 17 00:00:00 2001 From: Andrey Nazarov Date: Mon, 21 Nov 2022 20:58:49 +0300 Subject: [PATCH 2/5] =?UTF-8?q?Enable=20=E2=80=98sv=5Fwaterjump=5Fhack?= =?UTF-8?q?=E2=80=99=20by=20default.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Probably safe to enable this now since use of Q2PRO client is more widespread. --- doc/server.md | 2 +- src/server/main.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/server.md b/doc/server.md index ac2058237..e75946771 100644 --- a/doc/server.md +++ b/doc/server.md @@ -489,7 +489,7 @@ jumping hack only for compatible clients). #### `sv_waterjump_hack` Makes underwater movement speed equal in all directions for clients using Q2PRO protocol. Values higher than 1 will force this mode for all clients, -regardless of their protocol version. Default value is 0 (disabled). +regardless of their protocol version. Default value is 1 (enabled). #### Water jump bug Quake 2 player movement code contains a bug that causes surfacing velocity diff --git a/src/server/main.c b/src/server/main.c index 96ef3c7f9..90089a85a 100644 --- a/src/server/main.c +++ b/src/server/main.c @@ -2213,7 +2213,7 @@ void SV_Init(void) sv_max_packet_entities = Cvar_Get("sv_max_packet_entities", STRINGIFY(MAX_PACKET_ENTITIES), 0); sv_strafejump_hack = Cvar_Get("sv_strafejump_hack", "1", CVAR_LATCH); - sv_waterjump_hack = Cvar_Get("sv_waterjump_hack", "0", CVAR_LATCH); + sv_waterjump_hack = Cvar_Get("sv_waterjump_hack", "1", CVAR_LATCH); #if USE_PACKETDUP sv_packetdup_hack = Cvar_Get("sv_packetdup_hack", "0", 0); From fca0c302c34b53ea89aaad8a700d8b0f059b03e9 Mon Sep 17 00:00:00 2001 From: Andrey Nazarov Date: Thu, 3 Aug 2023 14:17:12 +0300 Subject: [PATCH 3/5] =?UTF-8?q?Use=20better=20help=20message=20for=20?= =?UTF-8?q?=E2=80=98demomap=E2=80=99.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/commands.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/server/commands.c b/src/server/commands.c index cab8af7b5..cb70dd6b3 100644 --- a/src/server/commands.c +++ b/src/server/commands.c @@ -311,8 +311,10 @@ static void SV_DemoMap_f(void) Cbuf_InsertText(&cmd_buffer, va("demo \"%s\"\n", s)); else if (!COM_CompareExtension(s, ".cin")) Cbuf_InsertText(&cmd_buffer, va("map \"%s\" force\n", s)); + else if (*s) + Com_Printf("\"%s\" only supports .dm2 and .cin files\n", Cmd_Argv(0)); else - Com_Printf("\"%s\" only supports demos and cinematics\n", Cmd_Argv(0)); + Com_Printf("Usage: %s \n", Cmd_Argv(0)); } #endif From dbb16aafb51a341b80be2107850a87935084f1c1 Mon Sep 17 00:00:00 2001 From: Andrey Nazarov Date: Thu, 10 Aug 2023 12:34:13 +0300 Subject: [PATCH 4/5] Remove unneeded &. --- src/server/commands.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/commands.c b/src/server/commands.c index cb70dd6b3..968b86571 100644 --- a/src/server/commands.c +++ b/src/server/commands.c @@ -53,7 +53,7 @@ static void SV_SetMaster_f(void) for (i = 0; i < MAX_MASTERS; i++) { Z_Free(sv_masters[i].name); } - memset(&sv_masters, 0, sizeof(sv_masters)); + memset(sv_masters, 0, sizeof(sv_masters)); total = 0; for (i = 1; i < Cmd_Argc(); i++) { From d0102098b0e132897dcf72119cc4a716905d9ff9 Mon Sep 17 00:00:00 2001 From: Andrey Nazarov Date: Sat, 12 Aug 2023 13:43:35 +0300 Subject: [PATCH 5/5] Fix completing map names from subdirs. Not a proper fix but whatever. --- src/server/commands.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/server/commands.c b/src/server/commands.c index 968b86571..1b4ff74eb 100644 --- a/src/server/commands.c +++ b/src/server/commands.c @@ -422,12 +422,13 @@ static void SV_Map_f(void) static void SV_Map_c(genctx_t *ctx, int argnum) { + unsigned flags = FS_SEARCH_SAVEPATH | FS_SEARCH_BYFILTER | FS_SEARCH_STRIPEXT; if (argnum == 1) { - FS_File_g("maps", ".bsp", FS_SEARCH_STRIPEXT, ctx); + FS_File_g("maps", "*.bsp", flags, ctx); const char *s = Cvar_VariableString("map_override_path"); if (*s) { int pos = ctx->count; - FS_File_g(s, ".bsp.override", FS_SEARCH_STRIPEXT, ctx); + FS_File_g(s, "*.bsp.override", flags, ctx); for (int i = pos; i < ctx->count; i++) *COM_FileExtension(ctx->matches[i]) = 0; }