/* * libtcod 1.6.3 * Copyright (c) 2008,2009,2010,2012,2013,2016,2017 Jice & Mingos & rmtew * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * The name of Jice or Mingos may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY JICE, MINGOS AND RMTEW ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL JICE, MINGOS OR RMTEW BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _TCOD_CONSOLE_TYPES_H #define _TCOD_CONSOLE_TYPES_H #include "libtcod_portability.h" typedef void * TCOD_console_t; typedef enum { TCODK_NONE, TCODK_ESCAPE, TCODK_BACKSPACE, TCODK_TAB, TCODK_ENTER, TCODK_SHIFT, TCODK_CONTROL, TCODK_ALT, TCODK_PAUSE, TCODK_CAPSLOCK, TCODK_PAGEUP, TCODK_PAGEDOWN, TCODK_END, TCODK_HOME, TCODK_UP, TCODK_LEFT, TCODK_RIGHT, TCODK_DOWN, TCODK_PRINTSCREEN, TCODK_INSERT, TCODK_DELETE, TCODK_LWIN, TCODK_RWIN, TCODK_APPS, TCODK_0, TCODK_1, TCODK_2, TCODK_3, TCODK_4, TCODK_5, TCODK_6, TCODK_7, TCODK_8, TCODK_9, TCODK_KP0, TCODK_KP1, TCODK_KP2, TCODK_KP3, TCODK_KP4, TCODK_KP5, TCODK_KP6, TCODK_KP7, TCODK_KP8, TCODK_KP9, TCODK_KPADD, TCODK_KPSUB, TCODK_KPDIV, TCODK_KPMUL, TCODK_KPDEC, TCODK_KPENTER, TCODK_F1, TCODK_F2, TCODK_F3, TCODK_F4, TCODK_F5, TCODK_F6, TCODK_F7, TCODK_F8, TCODK_F9, TCODK_F10, TCODK_F11, TCODK_F12, TCODK_NUMLOCK, TCODK_SCROLLLOCK, TCODK_SPACE, TCODK_CHAR, TCODK_TEXT } TCOD_keycode_t; #define TCOD_KEY_TEXT_SIZE 32 /* key data : special code or character or text */ typedef struct { TCOD_keycode_t vk; /* key code */ char c; /* character if vk == TCODK_CHAR else 0 */ char text[TCOD_KEY_TEXT_SIZE]; /* text if vk == TCODK_TEXT else text[0] == '\0' */ bool pressed ; /* does this correspond to a key press or key release event ? */ bool lalt ; bool lctrl ; bool lmeta ; bool ralt ; bool rctrl ; bool rmeta ; bool shift ; } TCOD_key_t; typedef enum { /* single walls */ TCOD_CHAR_HLINE=196, TCOD_CHAR_VLINE=179, TCOD_CHAR_NE=191, TCOD_CHAR_NW=218, TCOD_CHAR_SE=217, TCOD_CHAR_SW=192, TCOD_CHAR_TEEW=180, TCOD_CHAR_TEEE=195, TCOD_CHAR_TEEN=193, TCOD_CHAR_TEES=194, TCOD_CHAR_CROSS=197, /* double walls */ TCOD_CHAR_DHLINE=205, TCOD_CHAR_DVLINE=186, TCOD_CHAR_DNE=187, TCOD_CHAR_DNW=201, TCOD_CHAR_DSE=188, TCOD_CHAR_DSW=200, TCOD_CHAR_DTEEW=185, TCOD_CHAR_DTEEE=204, TCOD_CHAR_DTEEN=202, TCOD_CHAR_DTEES=203, TCOD_CHAR_DCROSS=206, /* blocks */ TCOD_CHAR_BLOCK1=176, TCOD_CHAR_BLOCK2=177, TCOD_CHAR_BLOCK3=178, /* arrows */ TCOD_CHAR_ARROW_N=24, TCOD_CHAR_ARROW_S=25, TCOD_CHAR_ARROW_E=26, TCOD_CHAR_ARROW_W=27, /* arrows without tail */ TCOD_CHAR_ARROW2_N=30, TCOD_CHAR_ARROW2_S=31, TCOD_CHAR_ARROW2_E=16, TCOD_CHAR_ARROW2_W=17, /* double arrows */ TCOD_CHAR_DARROW_H=29, TCOD_CHAR_DARROW_V=18, /* GUI stuff */ TCOD_CHAR_CHECKBOX_UNSET=224, TCOD_CHAR_CHECKBOX_SET=225, TCOD_CHAR_RADIO_UNSET=9, TCOD_CHAR_RADIO_SET=10, /* sub-pixel resolution kit */ TCOD_CHAR_SUBP_NW=226, TCOD_CHAR_SUBP_NE=227, TCOD_CHAR_SUBP_N=228, TCOD_CHAR_SUBP_SE=229, TCOD_CHAR_SUBP_DIAG=230, TCOD_CHAR_SUBP_E=231, TCOD_CHAR_SUBP_SW=232, /* miscellaneous */ TCOD_CHAR_SMILIE = 1, TCOD_CHAR_SMILIE_INV = 2, TCOD_CHAR_HEART = 3, TCOD_CHAR_DIAMOND = 4, TCOD_CHAR_CLUB = 5, TCOD_CHAR_SPADE = 6, TCOD_CHAR_BULLET = 7, TCOD_CHAR_BULLET_INV = 8, TCOD_CHAR_MALE = 11, TCOD_CHAR_FEMALE = 12, TCOD_CHAR_NOTE = 13, TCOD_CHAR_NOTE_DOUBLE = 14, TCOD_CHAR_LIGHT = 15, TCOD_CHAR_EXCLAM_DOUBLE = 19, TCOD_CHAR_PILCROW = 20, TCOD_CHAR_SECTION = 21, TCOD_CHAR_POUND = 156, TCOD_CHAR_MULTIPLICATION = 158, TCOD_CHAR_FUNCTION = 159, TCOD_CHAR_RESERVED = 169, TCOD_CHAR_HALF = 171, TCOD_CHAR_ONE_QUARTER = 172, TCOD_CHAR_COPYRIGHT = 184, TCOD_CHAR_CENT = 189, TCOD_CHAR_YEN = 190, TCOD_CHAR_CURRENCY = 207, TCOD_CHAR_THREE_QUARTERS = 243, TCOD_CHAR_DIVISION = 246, TCOD_CHAR_GRADE = 248, TCOD_CHAR_UMLAUT = 249, TCOD_CHAR_POW1 = 251, TCOD_CHAR_POW3 = 252, TCOD_CHAR_POW2 = 253, TCOD_CHAR_BULLET_SQUARE = 254, /* diacritics */ } TCOD_chars_t; typedef enum { TCOD_COLCTRL_1 = 1, TCOD_COLCTRL_2, TCOD_COLCTRL_3, TCOD_COLCTRL_4, TCOD_COLCTRL_5, TCOD_COLCTRL_NUMBER=5, TCOD_COLCTRL_FORE_RGB, TCOD_COLCTRL_BACK_RGB, TCOD_COLCTRL_STOP } TCOD_colctrl_t; typedef enum { TCOD_BKGND_NONE, TCOD_BKGND_SET, TCOD_BKGND_MULTIPLY, TCOD_BKGND_LIGHTEN, TCOD_BKGND_DARKEN, TCOD_BKGND_SCREEN, TCOD_BKGND_COLOR_DODGE, TCOD_BKGND_COLOR_BURN, TCOD_BKGND_ADD, TCOD_BKGND_ADDA, TCOD_BKGND_BURN, TCOD_BKGND_OVERLAY, TCOD_BKGND_ALPH, TCOD_BKGND_DEFAULT } TCOD_bkgnd_flag_t; typedef enum { TCOD_KEY_PRESSED=1, TCOD_KEY_RELEASED=2, } TCOD_key_status_t; /* custom font flags */ typedef enum { TCOD_FONT_LAYOUT_ASCII_INCOL=1, TCOD_FONT_LAYOUT_ASCII_INROW=2, TCOD_FONT_TYPE_GREYSCALE=4, TCOD_FONT_TYPE_GRAYSCALE=4, TCOD_FONT_LAYOUT_TCOD=8, } TCOD_font_flags_t; typedef enum { TCOD_RENDERER_GLSL, TCOD_RENDERER_OPENGL, TCOD_RENDERER_SDL, TCOD_NB_RENDERERS, } TCOD_renderer_t; typedef enum { TCOD_LEFT, TCOD_RIGHT, TCOD_CENTER } TCOD_alignment_t; #endif /* _TCOD_CONSOLE_TYPES_H */