summaryrefslogtreecommitdiff
path: root/src/l4dreset.c
diff options
context:
space:
mode:
authorGravatar Michael Smith <mikesmiffy128@gmail.com> 2025-06-17 20:18:48 +0100
committerGravatar Michael Smith <mikesmiffy128@gmail.com> 2025-06-21 14:50:00 +0100
commitac7e7d0f21978afc70fe3ef76db69d575742b974 (patch)
tree6fd25c7ded6cfeba7c55b1c26abc82a28878a14e /src/l4dreset.c
parent1f2d9ce197eafd16803de087cc5b6f8b8f4345a6 (diff)
downloadsst-ac7e7d0f21978afc70fe3ef76db69d575742b974.tar.gz
sst-ac7e7d0f21978afc70fe3ef76db69d575742b974.zip
Separate our command callbacks from Source's
This improves the ergonomics of a few different things, and sets us up somewhat for the fact OE had a different interface for commands too (it was v1 only and had a separate API call for getting the args).
Diffstat (limited to 'src/l4dreset.c')
-rw-r--r--src/l4dreset.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/src/l4dreset.c b/src/l4dreset.c
index 207e487..725c763 100644
--- a/src/l4dreset.c
+++ b/src/l4dreset.c
@@ -349,7 +349,7 @@ static int *FinaleEscapeState;
DEF_FEAT_CCMD_HERE(sst_l4d_quickreset,
"Reset (or switch) campaign and clear all vote cooldowns", 0) {
- if (cmd->argc > 2) {
+ if (argc > 2) {
con_warn("usage: sst_l4d_quickreset [campaignid]\n");
return;
}
@@ -358,9 +358,9 @@ DEF_FEAT_CCMD_HERE(sst_l4d_quickreset,
return;
}
const char *campaign = l4dmm_curcampaign();
- if (cmd->argc == 2 && (!campaign || strcasecmp(campaign, cmd->argv[1]))) {
- change(cmd->argv[1]);
- campaign = cmd->argv[1];
+ if (argc == 2 && (!campaign || strcasecmp(campaign, argv[1]))) {
+ change(argv[1]);
+ campaign = argv[1];
nextmapnum = gameserver_spawncount() + 1; // immediate next changelevel
}
else {
@@ -381,8 +381,7 @@ DEF_FEAT_CCMD_HERE(sst_l4d_quickreset,
}
// Note: this returns a pointer to subsequent bytes for find_voteissues() below
-static inline const uchar *find_votecontroller(con_cmdcbv1 listissues_cb) {
- const uchar *insns = (const uchar *)listissues_cb;
+static inline const uchar *find_votecontroller(const uchar *insns) {
#ifdef _WIN32
// The "listissues" command calls CVoteController::ListIssues, loading
// g_voteController into ECX
@@ -510,8 +509,7 @@ INIT {
errmsg_errorx("couldn't find \"listissues\" command");
return FEAT_INCOMPAT;
}
- con_cmdcbv1 listissues_cb = con_getcmdcbv1(cmd_listissues);
- const uchar *nextinsns = find_votecontroller(listissues_cb);
+ const uchar *nextinsns = find_votecontroller(cmd_listissues->cb_insns);
if_cold (!nextinsns) {
errmsg_errorx("couldn't find vote controller variable");
return FEAT_INCOMPAT;