From eb41c78c9ff23429f054d9cc280c41917acc2736 Mon Sep 17 00:00:00 2001 From: Michael Smith Date: Thu, 29 Aug 2024 23:03:11 +0100 Subject: Add very basic client console messaging for L4D2 This isn't totally ideal - it'd be nice to have a way to get colours working, at least for errors/warnings. But it might not really be possible to do that without custom networking stuff, so this will do for the forseeable future. The main goal is just to be able to have CON_SERVERSIDE commands actually give output to the relevant player. --- src/clientcon.c | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/clientcon.c (limited to 'src/clientcon.c') diff --git a/src/clientcon.c b/src/clientcon.c new file mode 100644 index 0000000..29a4208 --- /dev/null +++ b/src/clientcon.c @@ -0,0 +1,41 @@ +/* + * Copyright © 2024 Michael Smith + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ + +#include "con_.h" +#include "engineapi.h" +#include "ent.h" +#include "feature.h" +#include "gamedata.h" + +FEATURE("") +REQUIRE(ent) +REQUIRE_GAMEDATA(vtidx_ClientPrintf) +REQUIRE_GLOBAL(engserver) + +DECL_VFUNC_DYN(void, ClientPrintf, struct edict *, const char *) + +void clientcon_msg(struct edict *e, const char *s) { + ClientPrintf(engserver, e, s); +} + +void clientcon_reply(const char *s) { + struct edict *e = ent_getedict(con_cmdclient + 1); + if (e) { clientcon_msg(e, s); return; } +} + +INIT { return true; } + +// vi: sw=4 ts=4 noet tw=80 cc=80 -- cgit v1.2.3