--- a/console.h Sun Sep 12 19:07:54 2004 +0000
+++ b/console.h Sun Sep 12 20:15:18 2004 +0000
@@ -1,5 +1,6 @@
#ifndef CONSOLE_H
#define CONSOLE_H
+
// ** console ** //
enum {
@@ -20,14 +21,26 @@
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 @@
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_commands;
// ** ttd.c functions ** //
+
void SetDebugString(const char *s);
// ** console functions ** //
@@ -79,6 +102,7 @@
// *** 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 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 */