diff options
| author | Magnus Auvinen <magnus.auvinen@gmail.com> | 2009-01-24 13:12:04 +0000 |
|---|---|---|
| committer | Magnus Auvinen <magnus.auvinen@gmail.com> | 2009-01-24 13:12:04 +0000 |
| commit | 5f186c89062ddd9caeb8f105e748af62dc254f00 (patch) | |
| tree | 3fda7ee1a49db59af6a9983b1adc5d351cf48030 /src/engine | |
| parent | ae5b47a26686e452cbc52981a6d617382f70dfba (diff) | |
| download | zcatch-5f186c89062ddd9caeb8f105e748af62dc254f00.tar.gz zcatch-5f186c89062ddd9caeb8f105e748af62dc254f00.zip | |
fixed so the console show help for each command. not all commands have descriptions however
Diffstat (limited to 'src/engine')
| -rw-r--r-- | src/engine/client/ec_client.c | 34 | ||||
| -rw-r--r-- | src/engine/e_console.c | 21 | ||||
| -rw-r--r-- | src/engine/e_console.h | 4 | ||||
| -rw-r--r-- | src/engine/e_engine.c | 4 | ||||
| -rw-r--r-- | src/engine/server/es_server.c | 18 |
5 files changed, 48 insertions, 33 deletions
diff --git a/src/engine/client/ec_client.c b/src/engine/client/ec_client.c index ad362972..b4d91359 100644 --- a/src/engine/client/ec_client.c +++ b/src/engine/client/ec_client.c @@ -1952,27 +1952,27 @@ static void con_serverdummy(void *result, void *user_data) static void client_register_commands() { - MACRO_REGISTER_COMMAND("quit", "", CFGFLAG_CLIENT, con_quit, 0x0); - MACRO_REGISTER_COMMAND("connect", "s", CFGFLAG_CLIENT, con_connect, 0x0); - MACRO_REGISTER_COMMAND("disconnect", "", CFGFLAG_CLIENT, con_disconnect, 0x0); - MACRO_REGISTER_COMMAND("ping", "", CFGFLAG_CLIENT, con_ping, 0x0); - MACRO_REGISTER_COMMAND("screenshot", "", CFGFLAG_CLIENT, con_screenshot, 0x0); - MACRO_REGISTER_COMMAND("rcon", "r", CFGFLAG_CLIENT, con_rcon, 0x0); - MACRO_REGISTER_COMMAND("rcon_auth", "s", CFGFLAG_CLIENT, con_rcon_auth, 0x0); + MACRO_REGISTER_COMMAND("quit", "", CFGFLAG_CLIENT, con_quit, 0x0, ""); + MACRO_REGISTER_COMMAND("connect", "s", CFGFLAG_CLIENT, con_connect, 0x0, ""); + MACRO_REGISTER_COMMAND("disconnect", "", CFGFLAG_CLIENT, con_disconnect, 0x0, ""); + MACRO_REGISTER_COMMAND("ping", "", CFGFLAG_CLIENT, con_ping, 0x0, ""); + MACRO_REGISTER_COMMAND("screenshot", "", CFGFLAG_CLIENT, con_screenshot, 0x0, ""); + MACRO_REGISTER_COMMAND("rcon", "r", CFGFLAG_CLIENT, con_rcon, 0x0, ""); + MACRO_REGISTER_COMMAND("rcon_auth", "s", CFGFLAG_CLIENT, con_rcon_auth, 0x0, ""); - MACRO_REGISTER_COMMAND("play", "r", CFGFLAG_CLIENT, con_play, 0x0); - MACRO_REGISTER_COMMAND("record", "s", CFGFLAG_CLIENT, con_record, 0); - MACRO_REGISTER_COMMAND("stoprecord", "", CFGFLAG_CLIENT, con_stoprecord, 0); + MACRO_REGISTER_COMMAND("play", "r", CFGFLAG_CLIENT, con_play, 0x0, ""); + MACRO_REGISTER_COMMAND("record", "s", CFGFLAG_CLIENT, con_record, 0, ""); + MACRO_REGISTER_COMMAND("stoprecord", "", CFGFLAG_CLIENT, con_stoprecord, 0, ""); - MACRO_REGISTER_COMMAND("add_favorite", "s", CFGFLAG_CLIENT, con_addfavorite, 0x0); + MACRO_REGISTER_COMMAND("add_favorite", "s", CFGFLAG_CLIENT, con_addfavorite, 0x0, ""); /* register server dummy commands for tab completion */ - MACRO_REGISTER_COMMAND("kick", "", CFGFLAG_SERVER, con_serverdummy, 0); - MACRO_REGISTER_COMMAND("ban", "", CFGFLAG_SERVER, con_serverdummy, 0); - MACRO_REGISTER_COMMAND("unban", "", CFGFLAG_SERVER, con_serverdummy, 0); - MACRO_REGISTER_COMMAND("bans", "", CFGFLAG_SERVER, con_serverdummy, 0); - MACRO_REGISTER_COMMAND("status", "", CFGFLAG_SERVER, con_serverdummy, 0); - MACRO_REGISTER_COMMAND("shutdown", "", CFGFLAG_SERVER, con_serverdummy, 0); + MACRO_REGISTER_COMMAND("kick", "", CFGFLAG_SERVER, con_serverdummy, 0, ""); + MACRO_REGISTER_COMMAND("ban", "", CFGFLAG_SERVER, con_serverdummy, 0, ""); + MACRO_REGISTER_COMMAND("unban", "", CFGFLAG_SERVER, con_serverdummy, 0, ""); + MACRO_REGISTER_COMMAND("bans", "", CFGFLAG_SERVER, con_serverdummy, 0, ""); + MACRO_REGISTER_COMMAND("status", "", CFGFLAG_SERVER, con_serverdummy, 0, ""); + MACRO_REGISTER_COMMAND("shutdown", "", CFGFLAG_SERVER, con_serverdummy, 0, ""); /*MACRO_REGISTER_COMMAND("record", "", CFGFLAG_SERVER, con_serverdummy, 0); MACRO_REGISTER_COMMAND("stoprecord", "", CFGFLAG_SERVER, con_serverdummy, 0);*/ } diff --git a/src/engine/e_console.c b/src/engine/e_console.c index 0218bad0..a7d29fa5 100644 --- a/src/engine/e_console.c +++ b/src/engine/e_console.c @@ -305,6 +305,19 @@ void console_possible_commands(const char *str, int flagmask, void (*callback)(c } } + +COMMAND *console_get_command(const char *str) +{ + COMMAND *cmd; + for (cmd = first_command; cmd; cmd = cmd->next) + { + if(str_comp_nocase(cmd->name, str) == 0) + return cmd; + } + + return 0x0; +} + void console_execute_line(const char *str) { console_execute_line_stroked(1, str); @@ -417,11 +430,11 @@ static void str_variable_command(void *result, void *user_data) void console_init() { - MACRO_REGISTER_COMMAND("echo", "r", CFGFLAG_SERVER|CFGFLAG_CLIENT, con_echo, 0x0); - MACRO_REGISTER_COMMAND("exec", "r", CFGFLAG_SERVER|CFGFLAG_CLIENT, con_exec, 0x0); + MACRO_REGISTER_COMMAND("echo", "r", CFGFLAG_SERVER|CFGFLAG_CLIENT, con_echo, 0x0, ""); + MACRO_REGISTER_COMMAND("exec", "r", CFGFLAG_SERVER|CFGFLAG_CLIENT, con_exec, 0x0, ""); - #define MACRO_CONFIG_INT(name,def,min,max,flags,desc) { static INT_VARIABLE_DATA data = { &config_get_ ## name, &config_set_ ## name }; MACRO_REGISTER_COMMAND(#name, "?i", flags, int_variable_command, &data) } - #define MACRO_CONFIG_STR(name,len,def,flags,desc) { static STR_VARIABLE_DATA data = { &config_get_ ## name, &config_set_ ## name }; MACRO_REGISTER_COMMAND(#name, "?r", flags, str_variable_command, &data) } + #define MACRO_CONFIG_INT(name,def,min,max,flags,desc) { static INT_VARIABLE_DATA data = { &config_get_ ## name, &config_set_ ## name }; MACRO_REGISTER_COMMAND(#name, "?i", flags, int_variable_command, &data, desc) } + #define MACRO_CONFIG_STR(name,len,def,flags,desc) { static STR_VARIABLE_DATA data = { &config_get_ ## name, &config_set_ ## name }; MACRO_REGISTER_COMMAND(#name, "?r", flags, str_variable_command, &data, desc) } #include "e_config_variables.h" diff --git a/src/engine/e_console.h b/src/engine/e_console.h index d5632da0..c2393e39 100644 --- a/src/engine/e_console.h +++ b/src/engine/e_console.h @@ -14,6 +14,7 @@ typedef struct COMMAND_t int flags; CONSOLE_CALLBACK callback; void *user_data; + const char *help; struct COMMAND_t *next; } COMMAND; @@ -23,6 +24,7 @@ void console_execute_line(const char *str); void console_execute_line_stroked(int stroke, const char *str); void console_execute_file(const char *filename); void console_possible_commands(const char *str, int flagmask, void (*callback)(const char *cmd, void *user), void *user); +COMMAND *console_get_command(const char *cmd); void console_print(const char *str); void console_register_print_callback(void (*callback)(const char *, void *user_data), void *user_data); @@ -35,7 +37,7 @@ int console_arg_int(void *result, int index); float console_arg_float(void *result, int index); int console_arg_num(void *result); -#define MACRO_REGISTER_COMMAND(name, params, flags, func, ptr) { static COMMAND cmd = { name, params, flags, func, ptr, 0x0 }; console_register(&cmd); } +#define MACRO_REGISTER_COMMAND(name, params, flags, func, ptr, help) { static COMMAND cmd = { name, params, flags, func, ptr, help, 0x0}; console_register(&cmd); } #ifdef __cplusplus } diff --git a/src/engine/e_engine.c b/src/engine/e_engine.c index 2cc045a7..0304572b 100644 --- a/src/engine/e_engine.c +++ b/src/engine/e_engine.c @@ -83,8 +83,8 @@ void engine_init(const char *appname) jobs_initpool(&hostlookuppool, 1); - MACRO_REGISTER_COMMAND("dbg_dumpmem", "", CFGFLAG_SERVER|CFGFLAG_CLIENT, con_dbg_dumpmem, 0x0); - MACRO_REGISTER_COMMAND("dbg_lognetwork", "", CFGFLAG_SERVER|CFGFLAG_CLIENT, con_dbg_lognetwork, 0x0); + MACRO_REGISTER_COMMAND("dbg_dumpmem", "", CFGFLAG_SERVER|CFGFLAG_CLIENT, con_dbg_dumpmem, 0x0, ""); + MACRO_REGISTER_COMMAND("dbg_lognetwork", "", CFGFLAG_SERVER|CFGFLAG_CLIENT, con_dbg_lognetwork, 0x0, ""); /* reset the config */ config_reset(); diff --git a/src/engine/server/es_server.c b/src/engine/server/es_server.c index 2eac05eb..3d9f56f5 100644 --- a/src/engine/server/es_server.c +++ b/src/engine/server/es_server.c @@ -1288,15 +1288,15 @@ static void con_stoprecord(void *result, void *user_data) static void server_register_commands() { - MACRO_REGISTER_COMMAND("kick", "i", CFGFLAG_SERVER, con_kick, 0); - MACRO_REGISTER_COMMAND("ban", "s?i", CFGFLAG_SERVER, con_ban, 0); - MACRO_REGISTER_COMMAND("unban", "s", CFGFLAG_SERVER, con_unban, 0); - MACRO_REGISTER_COMMAND("bans", "", CFGFLAG_SERVER, con_bans, 0); - MACRO_REGISTER_COMMAND("status", "", CFGFLAG_SERVER, con_status, 0); - MACRO_REGISTER_COMMAND("shutdown", "", CFGFLAG_SERVER, con_shutdown, 0); - - MACRO_REGISTER_COMMAND("record", "s", CFGFLAG_SERVER, con_record, 0); - MACRO_REGISTER_COMMAND("stoprecord", "", CFGFLAG_SERVER, con_stoprecord, 0); + MACRO_REGISTER_COMMAND("kick", "i", CFGFLAG_SERVER, con_kick, 0, ""); + MACRO_REGISTER_COMMAND("ban", "s?i", CFGFLAG_SERVER, con_ban, 0, ""); + MACRO_REGISTER_COMMAND("unban", "s", CFGFLAG_SERVER, con_unban, 0, ""); + MACRO_REGISTER_COMMAND("bans", "", CFGFLAG_SERVER, con_bans, 0, ""); + MACRO_REGISTER_COMMAND("status", "", CFGFLAG_SERVER, con_status, 0, ""); + MACRO_REGISTER_COMMAND("shutdown", "", CFGFLAG_SERVER, con_shutdown, 0, ""); + + MACRO_REGISTER_COMMAND("record", "s", CFGFLAG_SERVER, con_record, 0, ""); + MACRO_REGISTER_COMMAND("stoprecord", "", CFGFLAG_SERVER, con_stoprecord, 0, ""); } int main(int argc, char **argv) |