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
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) \
#include "common.qh"
#include "vote.qh"
+#include "../bot/api.qh"
+
#include "../campaign.qh"
#include "../cheats.qh"
#include "../client.qh"
}
}
+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)
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)
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
#include "impulse.qh"
#include "round_handler.qh"
-#include "bot/api.qh"
-
#include "weapons/throwing.qh"
#include "command/common.qh"
#include "cheats.qh"
}
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);
-}
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 ""