1 /* Copyright (C) 1993, 1992 Nathan Sidwell */ 2 /* RCS $Id: defmris.c,v 4.6 1995/12/14 13:53:27 nathan Exp $ */ 3 #define EXTERN 4 #include "xmris.h" 5 #include "defmris.h" 6 #include "defcom.c" 7 /*{{{ unsigned char letter_mris[] =*/ 8 unsigned char letter_mris[] = 9 { 10 LETTERPOS(1, 3), 11 LETTERPATH(0, 2), LETTERPATH(3, 1), LETTERPATH(1, 2), LETTERPATH(0, 2), 12 LETTERPATH(3, 1), LETTERPATH(1, 2), LETTERPATH(3, 1), LETTERPATH(0, 1), 13 LETTERPATH(3, 2), LETTERPATH(0, 1), LETTERPATH(2, 2), LETTERPATH(1, 1), 14 LETTERPATH(3, 1), LETTERPATH(1, 1), LETTERPATH(3, 2), LETTERPATH(0, 2), 15 LETTERPATH(1, 2), LETTERPATH(3, 3), LETTERPATH(0, 1), LETTERPATH(2, 2), 16 LETTERPATH(0, 1), LETTERPATH(3, 2), 17 LETTEREND 18 }; 19 /*}}}*/ 20 /*{{{ unsigned char letter_msit[] =*/ 21 unsigned char letter_msit[] = 22 { 23 LETTERPOS(1, 3), 24 LETTERPATH(0, 2), LETTERPATH(3, 1), LETTERPATH(1, 2), LETTERPATH(0, 2), 25 LETTERPATH(3, 1), LETTERPATH(1, 2), LETTERPATH(3, 3), LETTERPATH(0, 1), 26 LETTERPATH(2, 2), LETTERPATH(0, 1), LETTERPATH(3, 3), LETTERPATH(1, 2), 27 LETTERPATH(0, 2), LETTERPATH(3, 3), LETTERPATH(2, 1), LETTERPATH(1, 2), 28 LETTEREND 29 }; 30 /*}}}*/ 31 /*{{{ static unsigned char letter_the[] =*/ 32 static unsigned char letter_the[] = 33 { 34 LETTERPOS(2, 7), 35 LETTERPATH(0, 2), LETTERPATH(2, 1), LETTERPATH(3, 3), LETTERPATH(1, 2), 36 LETTERPATH(0, 1), LETTERPATH(3, 2), LETTERPATH(0, 1), LETTERPATH(1, 2), 37 LETTERPATH(3, 3), LETTERPATH(2, 2), LETTERPATH(0, 1), LETTERPATH(3, 2), 38 LETTERPATH(2, 2), LETTERPATH(0, 1), LETTERPATH(3, 2), 39 LETTEREND 40 }; 41 /*}}}*/ 42 /*{{{ static unsigned char letter_game[] =*/ 43 static unsigned char letter_game[] = 44 { 45 LETTERPOS(2, 9), 46 LETTERPATH(2, 2), LETTERPATH(1, 2), LETTERPATH(3, 2), LETTERPATH(0, 1), 47 LETTERPATH(2, 1), LETTERPATH(3, 1), LETTERPATH(1, 1), LETTERPATH(3, 1), 48 LETTERPATH(0, 1), LETTERPATH(3, 2), LETTERPATH(0, 1), LETTERPATH(2, 2), 49 LETTERPATH(1, 1), LETTERPATH(3, 2), LETTERPATH(1, 1), LETTERPATH(3, 1), 50 LETTERPATH(0, 2), LETTERPATH(3, 1), LETTERPATH(1, 2), LETTERPATH(0, 2), 51 LETTERPATH(3, 1), LETTERPATH(1, 2), LETTERPATH(3, 3), LETTERPATH(2, 2), 52 LETTERPATH(0, 1), LETTERPATH(3, 2), LETTERPATH(2, 2), LETTERPATH(0, 1), 53 LETTERPATH(3, 2), 54 LETTEREND 55 }; 56 /*}}}*/ 57 /*{{{ extern COORD CONST she_hold[16] =*/ 58 /*{{{ held ball offsets*/ 59 #define SHE_RIGHT1_BALL_X (splyrw1_x_hot - CELL_WIDTH / 2) 60 #define SHE_RIGHT1_BALL_Y (splyrw1_y_hot - CELL_HEIGHT / 2) 61 #define SHE_UP1_BALL_X (splyrw1_y_hot - CELL_WIDTH / 2) 62 #define SHE_UP1_BALL_Y (splyrw1_x_hot - CELL_HEIGHT / 2) 63 #define SHE_RIGHT2_BALL_X (splyrw2_x_hot - CELL_WIDTH / 2) 64 #define SHE_RIGHT2_BALL_Y (splyrw2_y_hot - CELL_HEIGHT / 2) 65 #define SHE_UP2_BALL_X (splyrw2_y_hot - CELL_WIDTH / 2) 66 #define SHE_UP2_BALL_Y (splyrw2_x_hot - CELL_HEIGHT / 2) 67 #define SHE_PUSH1_BALL_X (splyrs1_x_hot - CELL_WIDTH / 2) 68 #define SHE_PUSH1_BALL_Y (splyrs1_y_hot - CELL_HEIGHT / 2) 69 #define SHE_PUSH2_BALL_X (splyrs2_x_hot - CELL_WIDTH / 2) 70 #define SHE_PUSH2_BALL_Y (splyrs2_y_hot - CELL_HEIGHT / 2) 71 /*}}}*/ 72 COORD CONST she_hold[16] = 73 { 74 {-SHE_UP1_BALL_X, -SHE_UP1_BALL_Y}, 75 {-SHE_UP2_BALL_X, -SHE_UP2_BALL_Y}, 76 { SHE_UP1_BALL_X, SHE_UP1_BALL_Y}, 77 { SHE_UP2_BALL_X, SHE_UP2_BALL_Y}, 78 {-SHE_RIGHT1_BALL_X, SHE_RIGHT1_BALL_Y}, 79 {-SHE_RIGHT2_BALL_X, SHE_RIGHT2_BALL_Y}, 80 { SHE_RIGHT1_BALL_X, SHE_RIGHT1_BALL_Y}, 81 { SHE_RIGHT2_BALL_X, SHE_RIGHT2_BALL_Y}, 82 { SHE_UP1_BALL_X, -SHE_UP1_BALL_Y}, 83 { SHE_UP2_BALL_X, -SHE_UP2_BALL_Y}, 84 {-SHE_UP1_BALL_X, SHE_UP1_BALL_Y}, 85 {-SHE_UP2_BALL_X, SHE_UP2_BALL_Y}, 86 {-SHE_PUSH1_BALL_X, SHE_PUSH1_BALL_Y}, 87 {-SHE_PUSH2_BALL_X, SHE_PUSH2_BALL_Y}, 88 { SHE_PUSH1_BALL_X, SHE_PUSH1_BALL_Y}, 89 { SHE_PUSH2_BALL_X, SHE_PUSH2_BALL_Y}, 90 }; 91 /*}}}*/ 92 /*{{{ APPLE_SIZE CONST apple_sizes[7] =*/ 93 APPLE_SIZE CONST apple_sizes[6] = 94 { 95 {{CELL_WIDTH, CELL_HEIGHT}, {0, 0}}, 96 {{CELL_WIDTH, CELL_HEIGHT}, {0, 0}}, 97 {{CELL_WIDTH, CELL_HEIGHT}, {0, 0}}, 98 {{CELL_WIDTH, CELL_HEIGHT}, {0, 0}}, 99 {{DECAY_WIDTH, DECAY_HEIGHT}, 100 {(CELL_WIDTH - DECAY_WIDTH) / 2, CELL_HEIGHT - DECAY_HEIGHT}}, 101 {{ROT_WIDTH, ROT_HEIGHT}, 102 {(CELL_WIDTH - ROT_WIDTH) / 2, CELL_HEIGHT - ROT_HEIGHT}}, 103 }; 104 /*}}}*/ 105 /*{{{ COORD ball_hold[16] =*/ 106 /*{{{ held ball offsets*/ 107 #define HE_RIGHT1_BALL_X (hplyrw1_x_hot - CELL_WIDTH / 2) 108 #define HE_RIGHT1_BALL_Y (hplyrw1_y_hot - CELL_HEIGHT / 2) 109 #define HE_UP1_BALL_X (hplyrw1_y_hot - CELL_WIDTH / 2) 110 #define HE_UP1_BALL_Y (hplyrw1_x_hot - CELL_HEIGHT / 2) 111 #define HE_RIGHT2_BALL_X (hplyrw2_x_hot - CELL_WIDTH / 2) 112 #define HE_RIGHT2_BALL_Y (hplyrw2_y_hot - CELL_HEIGHT / 2) 113 #define HE_UP2_BALL_X (hplyrw2_y_hot - CELL_WIDTH / 2) 114 #define HE_UP2_BALL_Y (hplyrw2_x_hot - CELL_HEIGHT / 2) 115 #define HE_PUSH1_BALL_X (hplyrs1_x_hot - CELL_WIDTH / 2) 116 #define HE_PUSH1_BALL_Y (hplyrs1_y_hot - CELL_HEIGHT / 2) 117 #define HE_PUSH2_BALL_X (hplyrs2_x_hot - CELL_WIDTH / 2) 118 #define HE_PUSH2_BALL_Y (hplyrs2_y_hot - CELL_HEIGHT / 2) 119 /*}}}*/ 120 COORD ball_hold[16] = 121 { 122 {-HE_UP1_BALL_X, -HE_UP1_BALL_Y}, 123 {-HE_UP2_BALL_X, -HE_UP2_BALL_Y}, 124 { HE_UP1_BALL_X, HE_UP1_BALL_Y}, 125 { HE_UP2_BALL_X, HE_UP2_BALL_Y}, 126 {-HE_RIGHT1_BALL_X, HE_RIGHT1_BALL_Y}, 127 {-HE_RIGHT2_BALL_X, HE_RIGHT2_BALL_Y}, 128 { HE_RIGHT1_BALL_X, HE_RIGHT1_BALL_Y}, 129 { HE_RIGHT2_BALL_X, HE_RIGHT2_BALL_Y}, 130 { HE_UP1_BALL_X, -HE_UP1_BALL_Y}, 131 { HE_UP2_BALL_X, -HE_UP2_BALL_Y}, 132 {-HE_UP1_BALL_X, HE_UP1_BALL_Y}, 133 {-HE_UP2_BALL_X, HE_UP2_BALL_Y}, 134 {-HE_PUSH1_BALL_X, HE_PUSH1_BALL_Y}, 135 {-HE_PUSH2_BALL_X, HE_PUSH2_BALL_Y}, 136 { HE_PUSH1_BALL_X, HE_PUSH1_BALL_Y}, 137 { HE_PUSH2_BALL_X, HE_PUSH2_BALL_Y}, 138 }; 139 /*}}}*/ 140 /*{{{ COORD CONST ball_throw[8] =*/ 141 COORD CONST ball_throw[8] = 142 { 143 {-GAP_WIDTH / 2, -(CELL_HEIGHT + GAP_HEIGHT) / 2}, 144 {GAP_WIDTH / 2, (CELL_HEIGHT + GAP_HEIGHT) / 2}, 145 {-(CELL_WIDTH + GAP_WIDTH) / 2, GAP_HEIGHT / 2}, 146 {(CELL_WIDTH + GAP_WIDTH) / 2, GAP_HEIGHT / 2}, 147 {GAP_WIDTH / 2, -(CELL_HEIGHT + GAP_HEIGHT) / 2}, 148 {-GAP_WIDTH / 2, (CELL_HEIGHT + GAP_HEIGHT) / 2}, 149 {-(CELL_WIDTH + GAP_WIDTH) / 2, GAP_HEIGHT / 2}, 150 {(CELL_WIDTH + GAP_WIDTH) / 2, GAP_HEIGHT / 2}, 151 }; 152 /*}}}*/ 153 unsigned CONST ball_dir[8] = {0, 1, 2, 1, 3, 2, 2, 1}; 154 /*{{{ unsigned CONST ball_returns[BALL_RETURNS] =*/ 155 #if BALL_RETURNS != 3 156 #error BALL_RETURNS != 3 157 #endif /* BALL_RETURNS */ 158 unsigned CONST ball_returns[BALL_RETURNS] = 159 {FRAMES_PER_SECOND * 3 / 2, FRAMES_PER_SECOND * 7 / 2, 160 FRAMES_PER_SECOND * 11 / 2}; 161 /*}}}*/ 162 /*{{{ unsigned CONST player_dies[8] =*/ 163 unsigned CONST player_dies[8] = 164 { 165 3, 5, 8, 4, 166 2, 1, 8, 0, 167 }; 168 /*}}}*/ 169 /*{{{ unsigned CONST squish_scores[SQUISH_SCORES] =*/ 170 #if SQUISH_SCORES != 7 171 #error SQUISH_SCORES != 7 172 #endif /* SQUISH_SCORES */ 173 unsigned CONST squish_scores[SQUISH_SCORES] = 174 { 175 0, 176 1000 / SCORE_ROUND, 177 2000 / SCORE_ROUND, 178 4000 / SCORE_ROUND, 179 6000 / SCORE_ROUND, 180 8000 / SCORE_ROUND, 181 9900 / SCORE_ROUND 182 }; 183 /*}}}*/ 184 /*{{{ TITLE title_text[] =*/ 185 TITLE title_text[] = 186 { 187 #if __STDC__ 188 {XMRISVERSION " " DATE}, 189 #else 190 {"%s %s"}, 191 #endif /* __STDC__ */ 192 {"Left - %s", 2}, 193 {"Right - %s", 3}, 194 {"Up - %s", 0}, 195 {"Down - %s", 1}, 196 {"Throw - %s", KEY_THROW}, 197 {"Pause - %s", KEY_PAUSE}, 198 {"Quit - %s", KEY_QUIT}, 199 {"Iconize - %s", KEY_ICONIZE}, 200 {"Keyboard - %s", KEY_KEYBOARD}, 201 {"Press %s to start", KEY_THROW}, 202 {""}, 203 {COPYRIGHT}, 204 {"Sprites also by Stefan Gustavson"}, 205 {NULL} 206 }; 207 /*}}}*/ 208 /*{{{ unsigned char CONST *lettering_game[] =*/ 209 unsigned char CONST *lettering_game[] = 210 { 211 letter_mris, 212 letter_the, 213 letter_game, 214 NULL 215 }; 216 /*}}}*/ 217 unsigned char CONST **lettering = lettering_game; 218