diff options
Diffstat (limited to 'src/game/client/components/console.hpp')
| -rw-r--r-- | src/game/client/components/console.hpp | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/game/client/components/console.hpp b/src/game/client/components/console.hpp new file mode 100644 index 00000000..988e4ea3 --- /dev/null +++ b/src/game/client/components/console.hpp @@ -0,0 +1,54 @@ +extern "C" { + #include <engine/e_client_interface.h> + #include <engine/e_config.h> + #include <engine/e_console.h> + #include <engine/e_ringbuffer.h> + #include <engine/client/ec_font.h> +} + +#include <game/client/component.hpp> + +class CONSOLE : public COMPONENT +{ + class INSTANCE + { + public: + char history_data[65536]; + RINGBUFFER *history; + char *history_entry; + + char backlog_data[65536]; + RINGBUFFER *backlog; + + LINEINPUT input; + + int type; + + public: + INSTANCE(int t); + + void execute_line(const char *line); + + void on_input(INPUT_EVENT e); + void print_line(const char *line); + }; + + INSTANCE local_console; + INSTANCE remote_console; + + INSTANCE *current_console(); + float time_now(); + + int console_type; + int console_state; + float state_change_end; + float state_change_duration; + +public: + CONSOLE(); + + virtual void on_reset(); + virtual void on_render(); + virtual void on_message(int msgtype, void *rawmsg); + virtual bool on_input(INPUT_EVENT e); +}; |