129 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			129 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef CONSOLE_H
 | |
| #define CONSOLE_H
 | |
| 
 | |
| // ** console ** //
 | |
| 
 | |
| enum {
 | |
| 	ICONSOLE_OPENED=0,
 | |
| 	ICONSOLE_CLOSED,
 | |
| } _iconsole_modes;
 | |
| 
 | |
| // ** console parser ** //
 | |
| 
 | |
| enum {
 | |
| 	ICONSOLE_VAR_NONE=0,
 | |
| 	ICONSOLE_VAR_BOOLEAN,
 | |
| 	ICONSOLE_VAR_BYTE,
 | |
| 	ICONSOLE_VAR_UINT16,
 | |
| 	ICONSOLE_VAR_UINT32,
 | |
| 	ICONSOLE_VAR_INT16,
 | |
| 	ICONSOLE_VAR_INT32,
 | |
| 	ICONSOLE_VAR_STRING,
 | |
| 	ICONSOLE_VAR_POINTER,
 | |
| 	ICONSOLE_VAR_REFERENCE,
 | |
| 	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;
 | |
| 
 | |
| typedef struct {
 | |
| 	// --------------- //
 | |
| 	void * addr;
 | |
| 	const 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;
 | |
| VARDEF byte _iconsole_color_debug;
 | |
| VARDEF byte _iconsole_color_commands;
 | |
| 
 | |
| // ** ttd.c functions ** //
 | |
| 
 | |
| void SetDebugString(const char *s);
 | |
| 
 | |
| // ** console functions ** //
 | |
| 
 | |
| void IConsoleClearCommand();
 | |
| void IConsoleInit();
 | |
| void IConsoleClear();
 | |
| void IConsoleFree();
 | |
| void IConsoleResize();
 | |
| void IConsoleSwitch();
 | |
| void IConsoleClose();
 | |
| void IConsoleOpen();
 | |
| 
 | |
| // ** console cmd buffer ** //
 | |
| void IConsoleCmdBufferAdd(const byte *cmd);
 | |
| void IConsoleCmdBufferNavigate(signed char direction);
 | |
| 
 | |
| // ** console output ** //
 | |
| void IConsolePrint(byte color_code, const byte* string);
 | |
| void CDECL IConsolePrintF(byte color_code, const char *s, ...);
 | |
| void IConsoleDebug(byte* string);
 | |
| void IConsoleError(const byte* string);
 | |
| 
 | |
| // *** Commands *** //
 | |
| 
 | |
| void IConsoleCmdRegister(const byte * name, void * addr);
 | |
| void* IConsoleCmdGetAddr(byte * name);
 | |
| 
 | |
| // *** Variables *** //
 | |
| 
 | |
| void IConsoleVarRegister(const byte * name, void * addr, byte type);
 | |
| void IConsoleVarMemRegister(byte * name, byte type);
 | |
| void IConsoleVarInsert(_iconsole_var * var, const byte * name);
 | |
| _iconsole_var * IConsoleVarGet(const byte * name);
 | |
| _iconsole_var * IConsoleVarAlloc(byte type);
 | |
| void IConsoleVarFree(_iconsole_var * var);
 | |
| void IConsoleVarSetString(_iconsole_var * var, const byte * string);
 | |
| void IConsoleVarSetValue(_iconsole_var * var, int value);
 | |
| void IConsoleVarDump(_iconsole_var * var, const byte * dump_desc);
 | |
| 
 | |
| // *** Parser *** //
 | |
| 
 | |
| void IConsoleCmdExec(byte * cmdstr);
 | |
| 
 | |
| // ** console std lib ** //
 | |
| void IConsoleStdLibRegister();
 | |
| 
 | |
| // ** hook code ** //
 | |
| void IConsoleVarHook(const byte * name, byte type, void * proc);
 | |
| void IConsoleCmdHook(const 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 */
 | 
