Rev 32 | Blame | Compare with Previous | Last modification | View Log | RSS feed
#ifndef _CONSOLECLIENT_H_
#define _CONSOLECLIENT_H_
#include <Engine/Base/RCString.hpp>
#include <Engine/Event/EvtApi.h>
enum COLOR_T {
DEFAULT_COLOR = 0x0,
INPUT_COLOR = 0x1,
ECHO_COLOR = 0x2,
ERROR_COLOR = 0x3,
WARNING_COLOR = 0x4,
GLOBAL_COLOR = 0x5,
ADMIN_COLOR = 0x6,
HIGHLIGHT_COLOR = 0x7,
BACKGROUND_COLOR = 0x8,
NUM_COLORTYPES = 0x9
};
enum CATEGORY {
DEBUG = 0x0,
GRAPHICS = 0x1,
CONSOLE = 0x2,
COMBAT = 0x3,
GAME = 0x4,
DEFAULT = 0x5,
NET = 0x6,
SOUND = 0x7,
GM = 0x8,
NONE = 0x9,
LAST = 0xA
};
#define NOHELP 0
enum EXECMODE {
EM_PROMPTOVERWRITE = 0x0,
EM_RECORDING = 0x1,
EM_APPEND = 0x2,
EM_WRITEFILE = 0x3,
EM_NOTACTIVE = 0x4,
EM_NUM_EXECMODES = 0x5
};
/******************************************************************************
*
* Global variables
*
***/
extern EXECMODE& g_ExecCreateMode;
extern char* g_ExecBuffer;
/******************************************************************************
*
* CVar flags
*
***/
#define LATCH 0x2
#define READONLY 0x4
/******************************************************************************
*
* CVar struct
*
***/
struct CVar {
//TODO: Encapsulate the following fields as TSHashObject
unsigned int m_hashval;
void* m_linktoslot[2];
void* m_linktofull[2];
char* m_key;
//////////////////////////////////////////////////////////////////////////
CATEGORY m_category;
unsigned int m_flags;
RCString m_stringValue;
float m_floatValue;
int m_intValue;
int m_modified;
RCString m_defaultValue;
RCString m_resetValue;
RCString m_latchedValue;
RCString m_helpText;
bool (*m_callback)(CVar *,LPCSTR,LPCSTR,void *);
void* m_arg;
//=======================================================================
static CVar* Register (LPCSTR name,
LPCSTR help,
DWORD flags,
LPCSTR value,
bool (*fcn)(CVar *,LPCSTR,LPCSTR,void *),
CATEGORY category,
bool setCommand,
void* arg,
bool a9); // TODO
};
/******************************************************************************
*
* External functions
*
***/
//=============================================================================
extern void ConsoleAccessSetEnabled (BOOL enable);
//=============================================================================
extern BOOL ConsoleAccessGetEnabled ();
//=============================================================================
extern BOOL ConsoleIsActive ();
//=============================================================================
extern void ConsoleSetHotkey (KEY key);
//=============================================================================
extern void ConsoleSetTitle (LPSTR windowTitle);
//=============================================================================
extern void ConsoleWrite (LPCSTR str, COLOR_T color);
//=============================================================================
extern void ConsoleWriteA (LPCSTR str, COLOR_T color, ...);
//=============================================================================
extern void ConsoleCommandExecute (LPCSTR command, BOOL addToHistory);
//=============================================================================
extern void ConsoleCommandInitialize ();
//=============================================================================
extern BOOL ConsoleCommandRegister (LPCSTR command,
BOOL (*handler)(LPCSTR,LPCSTR),
CATEGORY category,
LPCSTR helpText);
//=============================================================================
extern void ConsoleCommandUnregister (LPCSTR command);
//=============================================================================
extern void ConsoleCommandWriteHelp (LPCSTR str);
//=============================================================================
extern void ConsolePrintf(char const* str, ...);
#endif // ifndef _CONSOLECLIENT_H_