summaryrefslogtreecommitdiff
path: root/console.h
diff options
context:
space:
mode:
authorsignde <signde@openttd.org>2004-09-12 20:15:18 +0000
committersignde <signde@openttd.org>2004-09-12 20:15:18 +0000
commitd6cab2e06d5538321be9d7b9e33822b3ff4ddc5a (patch)
treee4bd2f005e9d018e89ddd10e8323c1e7d1a29702 /console.h
parent7cb5b1954d157e22b76377ad49eda842e895eaf0 (diff)
downloadopenttd-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.h36
1 files changed, 34 insertions, 2 deletions
diff --git a/console.h b/console.h
index f2a7aded1..e0a68f9e4 100644
--- a/console.h
+++ b/console.h
@@ -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 */