Annotation of brogue-ce/src/platform/platform.h, Revision 1.1.1.1
1.1 rubenllo 1: #include "Rogue.h"
2:
3: #define U_MIDDLE_DOT 0x00b7
4: #define U_FOUR_DOTS 0x2237
5: #define U_DIAMOND 0x25c7
6: #define U_FLIPPED_V 0x22CF
7: #define U_ARIES 0x2648
8: #define U_ESZETT 0x00df
9: #define U_ANKH 0x2640
10: #define U_MUSIC_NOTE 0x266A
11: #define U_CIRCLE 0x26AA
12: #define U_LIGHTNING_BOLT 0x03DF
13: #define U_FILLED_CIRCLE 0x25cf
14: #define U_NEUTER 0x26b2
15: #define U_U_ACUTE 0x00da
16: #define U_CURRENCY 0x00A4
17: #define U_UP_ARROW 0x2191
18: #define U_DOWN_ARROW 0x2193
19: #define U_LEFT_ARROW 0x2190
20: #define U_RIGHT_ARROW 0x2192
21: #define U_OMEGA 0x03A9
22: #define U_CIRCLE_BARS 0x29F2
23: #define U_FILLED_CIRCLE_BARS 0x29F3
24:
25: // #define U_UP_TRIANGLE 0x2206
26: // #define U_DOWN_TRIANGLE 0x2207
27: // #define U_THETA 0x03B8
28: // #define U_LAMDA 0x03BB
29: // #define U_KOPPA 0x03DE
30: // #define U_LOZENGE 0x29EB
31: // #define U_CROSS_PRODUCT 0x2A2F
32:
33: struct brogueConsole {
34: /*
35: The platform entrypoint, called by the main function. Should initialize
36: and then call rogueMain.
37: */
38: void (*gameLoop)();
39:
40: /*
41: Pause the game, returning a boolean specifying whether an input event
42: is available for receiving with nextKeyOrMouseEvent.
43: */
44: boolean (*pauseForMilliseconds)(short milliseconds);
45:
46: /*
47: Block until an event is available and then update returnEvent with
48: its details. textInput is true iff a text-entry box is active. See
49: sdl2-platform.c for the boilerplate for colorsDance.
50: */
51: void (*nextKeyOrMouseEvent)(rogueEvent *returnEvent, boolean textInput, boolean colorsDance);
52:
53: /*
54: Draw a character at a location with a specific color.
55: */
56: void (*plotChar)(
57: enum displayGlyph inputChar,
58: short x, short y,
59: short foreRed, short foreGreen, short foreBlue,
60: short backRed, short backGreen, short backBlue
61: );
62:
63: void (*remap)(const char *, const char *);
64:
65: /*
66: Returns whether a keyboard modifier is active -- 0 for Shift, 1 for Ctrl.
67: */
68: boolean (*modifierHeld)(int modifier);
69:
70: /*
71: Optional. Notifies the platform code of an event during the game - e.g. victory
72: */
73: void (*notifyEvent)(short eventId, int data1, int data2, const char *str1, const char *str2);
74:
75: /*
76: Optional. Take a screenshot in current working directory
77: */
78: boolean (*takeScreenshot)();
79:
80: /*
81: Optional. Enables or disables graphical tiles, returning the new state. This
82: is called when the user changes the option in-game. It is also called at the
83: very start of the program, even before .gameLoop, to set the initial value.
84: */
85: boolean (*setGraphicsEnabled)(boolean);
86: };
87:
88: // defined in platform
89: void loadKeymap();
90: void dumpScores();
91: unsigned int glyphToUnicode(enum displayGlyph glyph);
92:
93: #ifdef BROGUE_SDL
94: extern struct brogueConsole sdlConsole;
95: extern int windowWidth;
96: extern int windowHeight;
97: extern boolean fullScreen;
98: extern boolean softwareRendering;
99: #endif
100:
101: #ifdef BROGUE_CURSES
102: extern struct brogueConsole cursesConsole;
103: #endif
104:
105: #ifdef BROGUE_WEB
106: extern struct brogueConsole webConsole;
107: #endif
108:
109: extern struct brogueConsole currentConsole;
110: extern boolean noMenu;
111: extern char dataDirectory[];
112:
113: // defined in brogue
114: extern playerCharacter rogue;
115:
CVSweb