A port of Zachtronics' match-4 game HACK*MATCH to the TI-84 Plus CE
at main 104 lines 3.0 kB view raw
1#ifndef variables_include_file 2#define variables_include_file 3 4#define SAVE_VAR_NAME "HKMCHDAT" 5 6#define COLOR_BLACK 0 7#define COLOR_WHITE 1 8#define COLOR_RED 2 9#define COLOR_DASH 17 10#define COLOR_DOT 18 11#define COLOR_METAL 3 12 13#define TITLE_SPRITE_HOFFSET ((GFX_LCD_WIDTH - title_width) / 2) 14#define TITLE_SPRITE_VOFFSET 36 15#define TITLE_TEXT_HOFFSET 110 16#define TITLE_TEXT_VOFFSET 180 17 18#define NUM_COLS 6 19#define MAX_ROWS 11 20#define NUM_INITIAL_ROWS 3 21#define NUM_BLOCK_COLORS 5 22#define EXA_START_COL 2 23#define AMOUNT_FILES_TO_MATCH 4 24#define STAR_CHANCE 40 // <- the actual probability is the reciprocal of this number 25#define BASE_BLOCK_VALUE 100 26#define CHAIN_BLOCK_BONUS 50 27#define MAX_NEW_ROW_INTERVAL 150000ul 28#define MIN_NEW_ROW_INTERVAL 50000ul 29#define ROW_INTERVAL_SCALE_START 0ul 30#define ROW_INTERVAL_SCALE_END 50000ul 31#define ROW_INTERVAL_SCALE_FACTOR (MAX_NEW_ROW_INTERVAL - MIN_NEW_ROW_INTERVAL) \ 32 / (ROW_INTERVAL_SCALE_END - ROW_INTERVAL_SCALE_START) 33#define MATCH_TIME 25000 34 35#define FILE_EMPTY 0 36#define FILE_RED 1 37#define FILE_YELLOW 2 38#define FILE_CYAN 3 39#define FILE_BLUE 4 40#define FILE_PURPLE 5 41#define FILE_LOCKED 6 42 43#define MOVE_ANIMATION_FRAME_TIME 300 44#define CLEAR_ANIMATION_FRAME_TIME 1600 45#define DEATH_ANIMATION_FRAME_TIME 16000 46#define DEATH_DARKEN_LEVEL 232 47#define GAME_OVER_FLASH_TIME 32000 48 49#define BG_HOFFSET ((GFX_LCD_WIDTH - background_width) / 2) 50#define BG_VOFFSET ((GFX_LCD_HEIGHT - background_height) / 2) 51#define GRID_HOFFSET (BG_HOFFSET + 48) 52#define GRID_VOFFSET (BG_VOFFSET + 23) 53#define GRID_SIZE 16 54#define GRID_MOVE_STEPS 4 55#define CLIP_VOFFSET (BG_VOFFSET + 22) 56#define EXA_HOFFSET (BG_HOFFSET + 44) 57#define EXA_VOFFSET (BG_VOFFSET + 193) 58#define EXA_HELD_HOFFSET 4 59#define EXA_HELD_VOFFSET 6 60#define DASH_HOFFSET 8 61#define DASH_VOFFSET 3 62#define DASH_INTERVAL 4 63#define DASH_WIDTH 1 64#define DASH_HEIGHT 1 65#define SCORE_HOFFSET (BG_HOFFSET + 160) 66#define SCORE_VOFFSET (BG_VOFFSET + 41) 67#define HIGH_SCORE_HOFFSET (BG_HOFFSET + 160) 68#define HIGH_SCORE_VOFFSET (BG_VOFFSET + 97) 69#define NUM_DISPLAY_DIGITS 6 70#define PLAY_AGAIN_HOFFSET (2 + GRID_HOFFSET + (NUM_COLS * GRID_SIZE - play_again_width) / 2) 71#define PLAY_AGAIN_VOFFSET (GRID_VOFFSET + 42) 72#define DOTS_HOFFSET (BG_HOFFSET + 48) 73#define DOTS_VOFFSET 202 74#define NUM_DOTS 49 75#define BLK_RECT_1_X (BG_HOFFSET + 46) 76#define BLK_RECT_1_Y (BG_VOFFSET + 22) 77#define BLK_RECT_1_W 100 78#define BLK_RECT_1_H 196 79#define BLK_RECT_2_X (BG_HOFFSET + 149) 80#define BLK_RECT_2_Y (BG_VOFFSET + 22) 81#define BLK_RECT_2_W 61 82#define BLK_RECT_2_H 35 83#define BLK_RECT_3_X (BG_HOFFSET + 150) 84#define BLK_RECT_3_Y (BG_VOFFSET + 78) 85#define BLK_RECT_3_W 60 86#define BLK_RECT_3_H 34 87 88extern bool toExit; 89extern bool gameOver; 90 91extern unsigned int score; 92extern unsigned int highScore; 93 94extern unsigned char files[NUM_COLS][MAX_ROWS]; 95extern unsigned char exaCol; 96extern bool isHoldingFile; 97extern unsigned char heldFile; 98extern unsigned char gridMoveOffset; 99 100extern clock_t nextMoveTime; 101 102extern unsigned char prevRight, prevLeft, prev2nd, prevAlpha; 103 104#endif