diff options
author | jaBote <j@bot.e> | 2013-05-03 01:45:50 +0200 |
---|---|---|
committer | jaBote <j@bot.e> | 2013-05-03 01:45:50 +0200 |
commit | 1e5e8f5f42abb2cd42ad7ecf8e07439b8a1c570b (patch) | |
tree | c8825cc2dc141d91fe1fcc52739a0e79a89c80e9 /src/common/console.h | |
parent | f41dea469a52213acfde4f4ea5e8d7bbbd869bed (diff) | |
parent | 274bfc3b06616ea03c467d8eed23fae61c72fe18 (diff) | |
download | hercules-1e5e8f5f42abb2cd42ad7ecf8e07439b8a1c570b.tar.gz hercules-1e5e8f5f42abb2cd42ad7ecf8e07439b8a1c570b.tar.bz2 hercules-1e5e8f5f42abb2cd42ad7ecf8e07439b8a1c570b.tar.xz hercules-1e5e8f5f42abb2cd42ad7ecf8e07439b8a1c570b.zip |
Merge branch 'master' of https://github.com/HerculesWS/Hercules
Diffstat (limited to 'src/common/console.h')
-rw-r--r-- | src/common/console.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/common/console.h b/src/common/console.h index 7f1490084..ebce013f7 100644 --- a/src/common/console.h +++ b/src/common/console.h @@ -14,6 +14,21 @@ * why is there a limit, why not make it dynamic? - I'm playing it safe, I'd rather not play with memory management between threads **/ #define CONSOLE_PARSE_SIZE 10 + +typedef void (*CParseFunc)(char *line); +#define CPCMD(x) void console_parse_ ##x (char *line) +#define CPCMD_A(x) console_parse_ ##x + +#define CP_CMD_LENGTH 20 +struct CParseEntry { + char cmd[CP_CMD_LENGTH]; + union { + CParseFunc func; + struct CParseEntry **next; + } u; + unsigned short next_count; +}; + struct { char queue[CONSOLE_PARSE_SIZE][MAX_CONSOLE_INPUT]; unsigned short count; @@ -31,12 +46,21 @@ struct console_interface { ramutex ptmutex;/* parse thread mutex */ racond ptcond;/* parse thread cond */ /* */ + struct CParseEntry **cmd_list; + struct CParseEntry **cmds; + unsigned int cmd_count; + unsigned int cmd_list_count; + /* */ void (*parse_init) (void); void (*parse_final) (void); int (*parse_timer) (int tid, unsigned int tick, int id, intptr_t data); void *(*pthread_main) (void *x); void (*parse) (char* line); + void (*parse_sub) (char* line); int (*key_pressed) (void); + void (*load_defaults) (void); + void (*parse_list_subs) (struct CParseEntry *cmd, unsigned char depth); + void (*addCommand) (char *name, CParseFunc func); #endif }; |