From e3dd1e14adb62b340c1fe9f17efb02f852948630 Mon Sep 17 00:00:00 2001 From: terencehill Date: Tue, 28 Aug 2018 15:03:39 +0200 Subject: [PATCH] Don't make use of impulses to trigger waypoint editor commands --- commands.cfg | 1 + qcsrc/common/impulses/all.qh | 14 --------- qcsrc/server/command/cmd.qc | 59 ++++++++++++++++++++++++++++++++++++ qcsrc/server/impulse.qc | 32 ------------------- xonotic-client.cfg | 16 +++++++--- 5 files changed, 71 insertions(+), 51 deletions(-) diff --git a/commands.cfg b/commands.cfg index 3e5e78e0ef..0f2e568925 100644 --- a/commands.cfg +++ b/commands.cfg @@ -175,6 +175,7 @@ alias spectate "qc_cmd_cmd spectate ${* ?}" // Become alias suggestmap "qc_cmd_cmd suggestmap ${* ?}" // Suggest a map to the mapvote at match end //alias tell "qc_cmd_cmd tell ${* ?}" // Send a message directly to a player alias voice "qc_cmd_cmd voice ${* ?}" // Send voice message via sound +alias wpeditor "qc_cmd_cmd wpeditor ${* ?}" // Waypoint editor commands // other aliases for client-to-server commands alias autoswitch "set cl_autoswitch ${1 ?} ; cmd autoswitch ${1 ?}" // todo diff --git a/qcsrc/common/impulses/all.qh b/qcsrc/common/impulses/all.qh index 45a8f1323b..8bd0c41dab 100644 --- a/qcsrc/common/impulses/all.qh +++ b/qcsrc/common/impulses/all.qh @@ -186,20 +186,6 @@ LEGACY_IMPULSE(g_waypointsprite_clear_personal, 47, "waypoint_clear_personal") REGISTER_IMPULSE(waypoint_clear, 48) LEGACY_IMPULSE(g_waypointsprite_clear, 48, "waypoint_clear") -REGISTER_IMPULSE(navwaypoint_spawn, 103) -LEGACY_IMPULSE(g_waypointeditor_spawn, 103, "navwaypoint_spawn") - -REGISTER_IMPULSE(navwaypoint_remove, 104) -LEGACY_IMPULSE(g_waypointeditor_remove, 104, "navwaypoint_remove") - -REGISTER_IMPULSE(navwaypoint_relink, 105) -LEGACY_IMPULSE(g_waypointeditor_relinkall, 105, "navwaypoint_relink") - -REGISTER_IMPULSE(navwaypoint_save, 106) -LEGACY_IMPULSE(g_waypointeditor_saveall, 106, "navwaypoint_save") - -REGISTER_IMPULSE(navwaypoint_unreachable, 107) -LEGACY_IMPULSE(g_waypointeditor_unreachable, 107, "navwaypoint_unreachable") #define CHIMPULSE(id, n) _CHIMPULSE(CHIMPULSE_##id, n) #define _CHIMPULSE(id, n) \ diff --git a/qcsrc/server/command/cmd.qc b/qcsrc/server/command/cmd.qc index 30f3a040ef..bdfc52da0e 100644 --- a/qcsrc/server/command/cmd.qc +++ b/qcsrc/server/command/cmd.qc @@ -8,6 +8,8 @@ #include "common.qh" #include "vote.qh" +#include "../bot/api.qh" + #include "../campaign.qh" #include "../cheats.qh" #include "../client.qh" @@ -165,6 +167,61 @@ void ClientCommand_mv_getpicture(entity caller, int request, int argc) // inter } } +void ClientCommand_wpeditor(entity caller, int request, int argc) +{ + switch (request) + { + case CMD_REQUEST_COMMAND: + { + if (!autocvar_g_waypointeditor) + { + sprint(caller, "ERROR: this command works only if the waypoint editor is on\n"); + return; + } + + if (argv(1) != "") + { + if (argv(1) == "spawn") + { + if (!IS_PLAYER(caller)) + sprint(caller, "ERROR: this command works only if you are player\n"); + else + waypoint_spawn_fromeditor(caller); + } + else if (argv(1) == "remove") + { + if (!IS_PLAYER(caller)) + sprint(caller, "ERROR: this command works only if you are player\n"); + else + waypoint_remove_fromeditor(caller); + } + else if (argv(1) == "unreachable") + { + if (!IS_PLAYER(caller)) + sprint(caller, "ERROR: this command works only if you are player\n"); + else + waypoint_unreachable(caller); + } + else if (argv(1) == "saveall") + waypoint_saveall(); + else if (argv(1) == "relinkall") + waypoint_schedulerelinkall(); + + return; + } + } + + default: + sprint(caller, "Incorrect parameters for ^2wpeditor^7\n"); + case CMD_REQUEST_USAGE: + { + sprint(caller, "\nUsage:^3 cmd wpeditor action\n"); + sprint(caller, " Where 'action' can be: spawn, remove, unreachable, saveall, relinkall\n"); + return; + } + } +} + void ClientCommand_join(entity caller, int request) { switch (request) @@ -697,6 +754,7 @@ void ClientCommand_(entity caller, int request) CLIENT_COMMAND("suggestmap", ClientCommand_suggestmap(ent, request, arguments), "Suggest a map to the mapvote at match end") \ CLIENT_COMMAND("tell", ClientCommand_tell(ent, request, arguments, command), "Send a message directly to a player") \ CLIENT_COMMAND("voice", ClientCommand_voice(ent, request, arguments, command), "Send voice message via sound") \ + CLIENT_COMMAND("wpeditor", ClientCommand_wpeditor(ent, request, arguments), "Waypoint editor commands") \ /* nothing */ void ClientCommand_macro_help(entity caller) @@ -771,6 +829,7 @@ void SV_ParseClientCommand(entity this, string command) case "begin": break; // handled by engine in host_cmd.c case "download": break; // handled by engine in cl_parse.c case "mv_getpicture": break; // handled by server in this file + case "wpeditor": break; // handled by server in this file case "pause": break; // handled by engine in host_cmd.c case "prespawn": break; // handled by engine in host_cmd.c case "sentcvar": break; // handled by server in this file diff --git a/qcsrc/server/impulse.qc b/qcsrc/server/impulse.qc index 5010d28371..20307b8a28 100644 --- a/qcsrc/server/impulse.qc +++ b/qcsrc/server/impulse.qc @@ -1,8 +1,6 @@ #include "impulse.qh" #include "round_handler.qh" -#include "bot/api.qh" - #include "weapons/throwing.qh" #include "command/common.qh" #include "cheats.qh" @@ -571,33 +569,3 @@ IMPULSE(waypoint_clear) } sprint(this, "all waypoints cleared\n"); } - -IMPULSE(navwaypoint_spawn) -{ - if (!autocvar_g_waypointeditor) return; - waypoint_spawn_fromeditor(this); -} - -IMPULSE(navwaypoint_remove) -{ - if (!autocvar_g_waypointeditor) return; - waypoint_remove_fromeditor(this); -} - -IMPULSE(navwaypoint_relink) -{ - if (!autocvar_g_waypointeditor) return; - waypoint_schedulerelinkall(); -} - -IMPULSE(navwaypoint_save) -{ - if (!autocvar_g_waypointeditor) return; - waypoint_saveall(); -} - -IMPULSE(navwaypoint_unreachable) -{ - if (!autocvar_g_waypointeditor) return; - waypoint_unreachable(this); -} diff --git a/xonotic-client.cfg b/xonotic-client.cfg index 8517818d64..548616908e 100644 --- a/xonotic-client.cfg +++ b/xonotic-client.cfg @@ -229,11 +229,17 @@ cl_movement 1 cl_movement_track_canjump 0 cl_stairsmoothspeed 200 -alias g_waypointeditor_spawn "impulse 103" -alias g_waypointeditor_remove "impulse 104" -alias g_waypointeditor_relinkall "impulse 105" -alias g_waypointeditor_saveall "impulse 106" -alias g_waypointeditor_unreachable "impulse 107" +alias g_waypointeditor_spawn "wpeditor spawn" +alias g_waypointeditor_remove "wpeditor remove" +alias g_waypointeditor_relinkall "wpeditor relinkall" +alias g_waypointeditor_saveall "wpeditor saveall" +alias g_waypointeditor_unreachable "wpeditor unreachable" + +alias navwaypoint_relink g_waypointeditor_spawn +alias navwaypoint_remove g_waypointeditor_remove +alias navwaypoint_save g_waypointeditor_relinkall +alias navwaypoint_spawn g_waypointeditor_saveall +alias navwaypoint_unreachable g_waypointeditor_unreachable seta menu_sandbox_spawn_model "" seta menu_sandbox_attach_bone "" -- 2.39.2