18 ICONSOLE_VAR_INT16, |
19 ICONSOLE_VAR_INT16, |
19 ICONSOLE_VAR_INT32, |
20 ICONSOLE_VAR_INT32, |
20 ICONSOLE_VAR_STRING, |
21 ICONSOLE_VAR_STRING, |
21 ICONSOLE_VAR_POINTER, |
22 ICONSOLE_VAR_POINTER, |
22 ICONSOLE_VAR_REFERENCE, |
23 ICONSOLE_VAR_REFERENCE, |
23 ICONSOLE_VAR_UNKNOWN |
24 ICONSOLE_VAR_UNKNOWN, |
24 } _iconsole_var_types; |
25 } _iconsole_var_types; |
|
26 |
|
27 enum { |
|
28 ICONSOLE_HOOK_ACCESS, |
|
29 ICONSOLE_HOOK_BEFORE_CHANGE, |
|
30 ICONSOLE_HOOK_BEFORE_EXEC, |
|
31 ICONSOLE_HOOK_AFTER_CHANGE, |
|
32 ICONSOLE_HOOK_AFTER_EXEC, |
|
33 } _iconsole_hook_types; |
25 |
34 |
26 typedef struct { |
35 typedef struct { |
27 // -------------- // |
36 // -------------- // |
28 void * addr; |
37 void * addr; |
29 byte * name; |
38 byte * name; |
|
39 // -------------- // |
|
40 void * hook_access; |
|
41 void * hook_before_exec; |
|
42 void * hook_after_exec; |
30 // -------------- // |
43 // -------------- // |
31 void * _next; |
44 void * _next; |
32 } _iconsole_cmd; |
45 } _iconsole_cmd; |
33 |
46 |
34 typedef struct { |
47 typedef struct { |
35 // --------------- // |
48 // --------------- // |
36 void * addr; |
49 void * addr; |
37 byte * name; |
50 byte * name; |
38 byte type; |
51 byte type; |
39 // -------------- // |
52 // -------------- // |
|
53 void * hook_access; |
|
54 void * hook_before_change; |
|
55 void * hook_after_change; |
|
56 // -------------- // |
40 void * _next; |
57 void * _next; |
41 bool _malloc; |
58 bool _malloc; |
42 } _iconsole_var; |
59 } _iconsole_var; |
|
60 |
|
61 // ** console parser ** // |
|
62 |
|
63 _iconsole_cmd * _iconsole_cmds; // list of registred commands |
|
64 _iconsole_var * _iconsole_vars; // list of registred vars |
43 |
65 |
44 // ** console colors ** // |
66 // ** console colors ** // |
45 VARDEF byte _iconsole_color_default; |
67 VARDEF byte _iconsole_color_default; |
46 VARDEF byte _iconsole_color_error; |
68 VARDEF byte _iconsole_color_error; |
47 VARDEF byte _iconsole_color_debug; |
69 VARDEF byte _iconsole_color_debug; |
48 VARDEF byte _iconsole_color_commands; |
70 VARDEF byte _iconsole_color_commands; |
49 |
71 |
50 // ** ttd.c functions ** // |
72 // ** ttd.c functions ** // |
|
73 |
51 void SetDebugString(const char *s); |
74 void SetDebugString(const char *s); |
52 |
75 |
53 // ** console functions ** // |
76 // ** console functions ** // |
54 |
77 |
55 void IConsoleClearCommand(); |
78 void IConsoleClearCommand(); |
77 void* IConsoleCmdGetAddr(byte * name); |
100 void* IConsoleCmdGetAddr(byte * name); |
78 |
101 |
79 // *** Variables *** // |
102 // *** Variables *** // |
80 |
103 |
81 void IConsoleVarRegister(byte * name, void * addr, byte type); |
104 void IConsoleVarRegister(byte * name, void * addr, byte type); |
|
105 void IConsoleVarMemRegister(byte * name, byte type); |
82 void IConsoleVarInsert(_iconsole_var * var, byte * name); |
106 void IConsoleVarInsert(_iconsole_var * var, byte * name); |
83 _iconsole_var * IConsoleVarGet(byte * name); |
107 _iconsole_var * IConsoleVarGet(byte * name); |
84 _iconsole_var * IConsoleVarAlloc(byte type); |
108 _iconsole_var * IConsoleVarAlloc(byte type); |
85 void IConsoleVarFree(_iconsole_var * var); |
109 void IConsoleVarFree(_iconsole_var * var); |
86 void IConsoleVarSetString(_iconsole_var * var, byte * string); |
110 void IConsoleVarSetString(_iconsole_var * var, byte * string); |
89 |
113 |
90 // *** Parser *** // |
114 // *** Parser *** // |
91 |
115 |
92 void IConsoleCmdExec(byte * cmdstr); |
116 void IConsoleCmdExec(byte * cmdstr); |
93 |
117 |
94 #include "console_cmds.h" |
118 // ** console std lib ** // |
|
119 void IConsoleStdLibRegister(); |
|
120 |
|
121 // ** hook code ** // |
|
122 void IConsoleVarHook(byte * name, byte type, void * proc); |
|
123 void IConsoleCmdHook(byte * name, byte type, void * proc); |
|
124 bool IConsoleVarHookHandle(_iconsole_var * hook_var, byte type); |
|
125 bool IConsoleCmdHookHandle(_iconsole_cmd * hook_cmd, byte type); |
|
126 |
95 |
127 |
96 #endif /* CONSOLE_H */ |
128 #endif /* CONSOLE_H */ |