diff options
author | signde <signde@openttd.org> | 2004-09-12 20:15:18 +0000 |
---|---|---|
committer | signde <signde@openttd.org> | 2004-09-12 20:15:18 +0000 |
commit | d6cab2e06d5538321be9d7b9e33822b3ff4ddc5a (patch) | |
tree | e4bd2f005e9d018e89ddd10e8323c1e7d1a29702 /console.h | |
parent | 7cb5b1954d157e22b76377ad49eda842e895eaf0 (diff) | |
download | openttd-d6cab2e06d5538321be9d7b9e33822b3ff4ddc5a.tar.xz |
(svn r221) -Feature: console command and variable hooking
-Fix: added another network.c stub
-Consolecommand: "scrollto <tile>" center main view on <tile> [Darkvater]
-Consolecommand: "resettile <tile>" force bulldoze <tile> without any checks (DEBUG only) [Darkvater]
-Fix: resetengines is hooked to be not available in network games
-Codechange: "connect <connectstr>": the connect command now uses a connectionstring like the network-gui
-Fix: Direct Connect editbox can handle up to max ~35 characters [Darkvater]
Diffstat (limited to 'console.h')
-rw-r--r-- | console.h | 36 |
1 files changed, 34 insertions, 2 deletions
@@ -1,5 +1,6 @@ #ifndef CONSOLE_H #define CONSOLE_H + // ** console ** // enum { @@ -20,14 +21,26 @@ enum { ICONSOLE_VAR_STRING, ICONSOLE_VAR_POINTER, ICONSOLE_VAR_REFERENCE, - ICONSOLE_VAR_UNKNOWN + ICONSOLE_VAR_UNKNOWN, } _iconsole_var_types; +enum { + ICONSOLE_HOOK_ACCESS, + ICONSOLE_HOOK_BEFORE_CHANGE, + ICONSOLE_HOOK_BEFORE_EXEC, + ICONSOLE_HOOK_AFTER_CHANGE, + ICONSOLE_HOOK_AFTER_EXEC, +} _iconsole_hook_types; + typedef struct { // -------------- // void * addr; byte * name; // -------------- // + void * hook_access; + void * hook_before_exec; + void * hook_after_exec; + // -------------- // void * _next; } _iconsole_cmd; @@ -37,10 +50,19 @@ typedef struct { byte * name; byte type; // -------------- // + void * hook_access; + void * hook_before_change; + void * hook_after_change; + // -------------- // void * _next; bool _malloc; } _iconsole_var; +// ** console parser ** // + +_iconsole_cmd * _iconsole_cmds; // list of registred commands +_iconsole_var * _iconsole_vars; // list of registred vars + // ** console colors ** // VARDEF byte _iconsole_color_default; VARDEF byte _iconsole_color_error; @@ -48,6 +70,7 @@ VARDEF byte _iconsole_color_debug; VARDEF byte _iconsole_color_commands; // ** ttd.c functions ** // + void SetDebugString(const char *s); // ** console functions ** // @@ -79,6 +102,7 @@ void* IConsoleCmdGetAddr(byte * name); // *** Variables *** // void IConsoleVarRegister(byte * name, void * addr, byte type); +void IConsoleVarMemRegister(byte * name, byte type); void IConsoleVarInsert(_iconsole_var * var, byte * name); _iconsole_var * IConsoleVarGet(byte * name); _iconsole_var * IConsoleVarAlloc(byte type); @@ -91,6 +115,14 @@ void IConsoleVarDump(_iconsole_var * var, byte * dump_desc); void IConsoleCmdExec(byte * cmdstr); -#include "console_cmds.h" +// ** console std lib ** // +void IConsoleStdLibRegister(); + +// ** hook code ** // +void IConsoleVarHook(byte * name, byte type, void * proc); +void IConsoleCmdHook(byte * name, byte type, void * proc); +bool IConsoleVarHookHandle(_iconsole_var * hook_var, byte type); +bool IConsoleCmdHookHandle(_iconsole_cmd * hook_cmd, byte type); + #endif /* CONSOLE_H */ |