1 // BME main definitions header file 2 3 #define GFX_SCANLINES 1 4 #define GFX_DOUBLESIZE 2 5 #define GFX_USE1PAGE 0 6 #define GFX_USE2PAGES 4 7 #define GFX_USE3PAGES 8 8 #define GFX_WAITVBLANK 16 9 #define GFX_FULLSCREEN 32 10 #define GFX_WINDOW 64 11 #define GFX_NOSWITCHING 128 12 #define GFX_USEDIBSECTION 256 13 14 #define MOUSE_ALWAYS_VISIBLE 0 15 #define MOUSE_FULLSCREEN_HIDDEN 1 16 #define MOUSE_ALWAYS_HIDDEN 2 17 18 #define MOUSEB_LEFT 1 19 #define MOUSEB_RIGHT 2 20 #define MOUSEB_MIDDLE 4 21 22 #define JOY_LEFT 1 23 #define JOY_RIGHT 2 24 #define JOY_UP 4 25 #define JOY_DOWN 8 26 #define JOY_FIRE1 16 27 #define JOY_FIRE2 32 28 #define JOY_FIRE3 64 29 #define JOY_FIRE4 128 30 31 #define LEFT 0 32 #define MIDDLE 128 33 #define RIGHT 255 34 35 #define B_OFF 0 36 #define B_SOLID 1 37 #define B_NOTSOLID 2 38 39 #define MONO 0 40 #define STEREO 1 41 #define EIGHTBIT 0 42 #define SIXTEENBIT 2 43 44 #define VM_OFF 0 45 #define VM_ON 1 46 #define VM_ONESHOT 0 47 #define VM_LOOP 2 48 #define VM_16BIT 4 49 50 #define KEY_BACKSPACE SDLK_BACKSPACE 51 #define KEY_CAPSLOCK SDLK_CAPSLOCK 52 #define KEY_ENTER SDLK_RETURN 53 #define KEY_ESC SDLK_ESCAPE 54 #define KEY_ALT SDLK_LALT 55 #define KEY_CTRL SDLK_LCTRL 56 #define KEY_LEFTCTRL SDLK_LCTRL 57 #define KEY_RIGHTALT SDLK_RALT 58 #define KEY_RIGHTCTRL SDLK_RCTRL 59 #define KEY_LEFTSHIFT SDLK_LSHIFT 60 #define KEY_RIGHTSHIFT SDLK_RSHIFT 61 #define KEY_NUMLOCK SDLK_NUMLOCK 62 #define KEY_SCROLLLOCK SDLK_SCROLLOCK 63 #define KEY_SPACE SDLK_SPACE 64 #define KEY_TAB SDLK_TAB 65 #define KEY_F1 SDLK_F1 66 #define KEY_F2 SDLK_F2 67 #define KEY_F3 SDLK_F3 68 #define KEY_F4 SDLK_F4 69 #define KEY_F5 SDLK_F5 70 #define KEY_F6 SDLK_F6 71 #define KEY_F7 SDLK_F7 72 #define KEY_F8 SDLK_F8 73 #define KEY_F9 SDLK_F9 74 #define KEY_F10 SDLK_F10 75 #define KEY_F11 SDLK_F11 76 #define KEY_F12 SDLK_F12 77 #define KEY_A SDLK_a 78 #define KEY_N SDLK_n 79 #define KEY_B SDLK_b 80 #define KEY_O SDLK_o 81 #define KEY_C SDLK_c 82 #define KEY_P SDLK_p 83 #define KEY_D SDLK_d 84 #define KEY_Q SDLK_q 85 #define KEY_E SDLK_e 86 #define KEY_R SDLK_r 87 #define KEY_F SDLK_f 88 #define KEY_S SDLK_s 89 #define KEY_G SDLK_g 90 #define KEY_T SDLK_t 91 #define KEY_H SDLK_h 92 #define KEY_U SDLK_u 93 #define KEY_I SDLK_i 94 #define KEY_V SDLK_v 95 #define KEY_J SDLK_j 96 #define KEY_W SDLK_w 97 #define KEY_K SDLK_k 98 #define KEY_X SDLK_x 99 #define KEY_L SDLK_l 100 #define KEY_Y SDLK_y 101 #define KEY_M SDLK_m 102 #define KEY_Z SDLK_z 103 #define KEY_1 SDLK_1 104 #define KEY_2 SDLK_2 105 #define KEY_3 SDLK_3 106 #define KEY_4 SDLK_4 107 #define KEY_5 SDLK_5 108 #define KEY_6 SDLK_6 109 #define KEY_7 SDLK_7 110 #define KEY_8 SDLK_8 111 #define KEY_9 SDLK_9 112 #define KEY_0 SDLK_0 113 #define KEY_MINUS SDLK_MINUS 114 #define KEY_EQUAL SDLK_EQUALS 115 #define KEY_BRACKETL SDLK_LEFTBRACKET 116 #define KEY_BRACKETR SDLK_RIGHTBRACKET 117 #define KEY_SEMICOLON SDLK_SEMICOLON 118 #define KEY_APOST1 SDLK_QUOTE 119 #define KEY_APOST2 SDLK_BACKQUOTE 120 #define KEY_COMMA SDLK_COMMA 121 #define KEY_COLON SDLK_PERIOD 122 #define KEY_PERIOD SDLK_PERIOD 123 #define KEY_SLASH SDLK_SLASH 124 #define KEY_BACKSLASH SDLK_BACKSLASH 125 #define KEY_DEL SDLK_DELETE 126 #define KEY_DOWN SDLK_DOWN 127 #define KEY_END SDLK_END 128 #define KEY_HOME SDLK_HOME 129 #define KEY_INS SDLK_INSERT 130 #define KEY_LEFT SDLK_LEFT 131 #define KEY_PGDN SDLK_PAGEDOWN 132 #define KEY_PGUP SDLK_PAGEUP 133 #define KEY_RIGHT SDLK_RIGHT 134 #define KEY_UP SDLK_UP 135 #define KEY_WINDOWSL SDLK_LSUPER 136 #define KEY_WINDOWSR SDLK_RSUPER 137 #define KEY_MENU SDLK_MENU 138 #define KEY_PAUSE SDLK_PAUSE 139 #define KEY_KPDIVIDE SDLK_KP_DIVIDE 140 #define KEY_KPMULTIPLY SDLK_KP_MULTIPLY 141 #define KEY_KPPLUS SDLK_KP_PLUS 142 #define KEY_KPMINUS SDLK_KP_MINUS 143 #define KEY_KP0 SDLK_KP0 144 #define KEY_KP1 SDLK_KP1 145 #define KEY_KP2 SDLK_KP2 146 #define KEY_KP3 SDLK_KP3 147 #define KEY_KP4 SDLK_KP4 148 #define KEY_KP5 SDLK_KP5 149 #define KEY_KP6 SDLK_KP6 150 #define KEY_KP7 SDLK_KP7 151 #define KEY_KP8 SDLK_KP8 152 #define KEY_KP9 SDLK_KP9 153 #define KEY_KPUP SDLK_KP8 154 #define KEY_KPDOWN SDLK_KP2 155 #define KEY_KPLEFT SDLK_KP4 156 #define KEY_KPRIGHT SDLK_KP6 157 #define KEY_KPENTER SDLK_KP_ENTER 158 #define KEY_KPEQUALS SDLK_KP_EQUALS 159 #define KEY_KPPERIOD SDLK_KP_PERIOD 160 161 162 typedef struct 163 { 164 Sint8 *start; 165 Sint8 *repeat; 166 Sint8 *end; 167 unsigned char voicemode; 168 } SAMPLE; 169 170 typedef struct 171 { 172 volatile Sint8 *pos; 173 Sint8 *repeat; 174 Sint8 *end; 175 SAMPLE *smp; 176 unsigned freq; 177 volatile unsigned fractpos; 178 int vol; 179 int mastervol; 180 unsigned panning; 181 volatile unsigned voicemode; 182 } CHANNEL; 183 184 typedef struct 185 { 186 unsigned rawcode; 187 char *name; 188 } KEY; 189 190 typedef struct 191 { 192 Sint16 xsize; 193 Sint16 ysize; 194 Sint16 xhot; 195 Sint16 yhot; 196 Uint32 offset; 197 } SPRITEHEADER; 198 199 typedef struct 200 { 201 Uint32 type; 202 Uint32 offset; 203 } BLOCKHEADER; 204 205 typedef struct 206 { 207 Uint8 blocksname[13]; 208 Uint8 palettename[13]; 209 } MAPHEADER; 210 211 typedef struct 212 { 213 Sint32 xsize; 214 Sint32 ysize; 215 Uint8 xdivisor; 216 Uint8 ydivisor; 217 Uint8 xwrap; 218 Uint8 ywrap; 219 } LAYERHEADER; 220 221 extern int bme_error; 222