#include "Rogue.h" #define U_MIDDLE_DOT 0x00b7 #define U_FOUR_DOTS 0x2237 #define U_DIAMOND 0x25c7 #define U_FLIPPED_V 0x22CF #define U_ARIES 0x2648 #define U_ESZETT 0x00df #define U_ANKH 0x2640 #define U_MUSIC_NOTE 0x266A #define U_CIRCLE 0x26AA #define U_LIGHTNING_BOLT 0x03DF #define U_FILLED_CIRCLE 0x25cf #define U_NEUTER 0x26b2 #define U_U_ACUTE 0x00da #define U_CURRENCY 0x00A4 #define U_UP_ARROW 0x2191 #define U_DOWN_ARROW 0x2193 #define U_LEFT_ARROW 0x2190 #define U_RIGHT_ARROW 0x2192 #define U_OMEGA 0x03A9 #define U_CIRCLE_BARS 0x29F2 #define U_FILLED_CIRCLE_BARS 0x29F3 // #define U_UP_TRIANGLE 0x2206 // #define U_DOWN_TRIANGLE 0x2207 // #define U_THETA 0x03B8 // #define U_LAMDA 0x03BB // #define U_KOPPA 0x03DE // #define U_LOZENGE 0x29EB // #define U_CROSS_PRODUCT 0x2A2F struct brogueConsole { /* The platform entrypoint, called by the main function. Should initialize and then call rogueMain. */ void (*gameLoop)(); /* Pause the game, returning a boolean specifying whether an input event is available for receiving with nextKeyOrMouseEvent. */ boolean (*pauseForMilliseconds)(short milliseconds); /* Block until an event is available and then update returnEvent with its details. textInput is true iff a text-entry box is active. See sdl2-platform.c for the boilerplate for colorsDance. */ void (*nextKeyOrMouseEvent)(rogueEvent *returnEvent, boolean textInput, boolean colorsDance); /* Draw a character at a location with a specific color. */ void (*plotChar)( enum displayGlyph inputChar, short x, short y, short foreRed, short foreGreen, short foreBlue, short backRed, short backGreen, short backBlue ); void (*remap)(const char *, const char *); /* Returns whether a keyboard modifier is active -- 0 for Shift, 1 for Ctrl. */ boolean (*modifierHeld)(int modifier); /* Optional. Notifies the platform code of an event during the game - e.g. victory */ void (*notifyEvent)(short eventId, int data1, int data2, const char *str1, const char *str2); /* Optional. Take a screenshot in current working directory */ boolean (*takeScreenshot)(); /* Optional. Enables or disables graphical tiles, returning the new state. This is called when the user changes the option in-game. It is also called at the very start of the program, even before .gameLoop, to set the initial value. */ boolean (*setGraphicsEnabled)(boolean); }; // defined in platform void loadKeymap(); void dumpScores(); unsigned int glyphToUnicode(enum displayGlyph glyph); #ifdef BROGUE_SDL extern struct brogueConsole sdlConsole; extern int windowWidth; extern int windowHeight; extern boolean fullScreen; extern boolean softwareRendering; #endif #ifdef BROGUE_CURSES extern struct brogueConsole cursesConsole; #endif #ifdef BROGUE_WEB extern struct brogueConsole webConsole; #endif extern struct brogueConsole currentConsole; extern boolean noMenu; extern char dataDirectory[]; // defined in brogue extern playerCharacter rogue;