Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define BLOCKCOUNT 7
- #define ROTCOUNT 4
- #define NEXTCOUNT 14
- #define BLOCK_XMAX 4
- #define BLOCK_YMAX 4
- #define GRAPHIC_SIZE 12
- #define LOCKTIME 24
- #define LOCKTIME2 70
- #define B_I 1
- #define B_J 2
- #define B_L 3
- #define B_S 4
- #define B_Z 5
- #define B_T 6
- #define B_O 7
- int PieceLetters[BLOCKCOUNT+1] = {"?", "I", "J", "L", "S", "Z", "T", "O"};
- int TetrisColors[BLOCKCOUNT+1] =
- {
- "Untranslated",
- "TetrisCyan",
- "TetrisBlue",
- "TetrisOrange",
- "TetrisGreen",
- "TetrisRed",
- "TetrisViolet",
- "TetrisYellow",
- };
- int GhostColors[BLOCKCOUNT+1] =
- {
- "Untranslated_Ghost",
- "TetrisCyan_Ghost",
- "TetrisBlue_Ghost",
- "TetrisOrange_Ghost",
- "TetrisGreen_Ghost",
- "TetrisRed_Ghost",
- "TetrisViolet_Ghost",
- "TetrisYellow_Ghost",
- };
- int TetrisBlocks[BLOCKCOUNT][ROTCOUNT][BLOCK_YMAX][BLOCK_XMAX] =
- {
- { // I block
- { {0, 0, 0, 0},
- {1, 1, 1, 1},
- {0, 0, 0, 0},
- {0, 0, 0, 0} },
- { {0, 0, 1, 0},
- {0, 0, 1, 0},
- {0, 0, 1, 0},
- {0, 0, 1, 0} },
- { {0, 0, 0, 0},
- {0, 0, 0, 0},
- {1, 1, 1, 1},
- {0, 0, 0, 0} },
- { {0, 1, 0, 0},
- {0, 1, 0, 0},
- {0, 1, 0, 0},
- {0, 1, 0, 0} },
- },
- { // J block
- { {1, 0, 0, 0},
- {1, 1, 1, 0},
- {0, 0, 0, 0},
- {0, 0, 0, 0}, },
- { {0, 1, 1, 0},
- {0, 1, 0, 0},
- {0, 1, 0, 0},
- {0, 0, 0, 0}, },
- { {0, 0, 0, 0},
- {1, 1, 1, 0},
- {0, 0, 1, 0},
- {0, 0, 0, 0}, },
- { {0, 1, 0, 0},
- {0, 1, 0, 0},
- {1, 1, 0, 0},
- {0, 0, 0, 0}, },
- },
- { // L block
- { {0, 0, 1, 0},
- {1, 1, 1, 0},
- {0, 0, 0, 0},
- {0, 0, 0, 0}, },
- { {0, 1, 0, 0},
- {0, 1, 0, 0},
- {0, 1, 1, 0},
- {0, 0, 0, 0}, },
- { {0, 0, 0, 0},
- {1, 1, 1, 0},
- {1, 0, 0, 0},
- {0, 0, 0, 0}, },
- { {1, 1, 0, 0},
- {0, 1, 0, 0},
- {0, 1, 0, 0},
- {0, 0, 0, 0}, },
- },
- { // S block
- { {0, 1, 1, 0},
- {1, 1, 0, 0},
- {0, 0, 0, 0},
- {0, 0, 0, 0}, },
- { {0, 1, 0, 0},
- {0, 1, 1, 0},
- {0, 0, 1, 0},
- {0, 0, 0, 0}, },
- { {0, 0, 0, 0},
- {0, 1, 1, 0},
- {1, 1, 0, 0},
- {0, 0, 0, 0}, },
- { {1, 0, 0, 0},
- {1, 1, 0, 0},
- {0, 1, 0, 0},
- {0, 0, 0, 0}, },
- },
- { // Z block
- { {1, 1, 0, 0},
- {0, 1, 1, 0},
- {0, 0, 0, 0},
- {0, 0, 0, 0}, },
- { {0, 0, 1, 0},
- {0, 1, 1, 0},
- {0, 1, 0, 0},
- {0, 0, 0, 0}, },
- { {0, 0, 0, 0},
- {1, 1, 0, 0},
- {0, 1, 1, 0},
- {0, 0, 0, 0}, },
- { {0, 1, 0, 0},
- {1, 1, 0, 0},
- {1, 0, 0, 0},
- {0, 0, 0, 0}, },
- },
- { // T block
- { {0, 1, 0, 0},
- {1, 1, 1, 0},
- {0, 0, 0, 0},
- {0, 0, 0, 0}, },
- { {0, 1, 0, 0},
- {0, 1, 1, 0},
- {0, 1, 0, 0},
- {0, 0, 0, 0}, },
- { {0, 0, 0, 0},
- {1, 1, 1, 0},
- {0, 1, 0, 0},
- {0, 0, 0, 0}, },
- { {0, 1, 0, 0},
- {1, 1, 0, 0},
- {0, 1, 0, 0},
- {0, 0, 0, 0}, },
- },
- { // O block
- { {0, 1, 1, 0},
- {0, 1, 1, 0},
- {0, 0, 0, 0},
- {0, 0, 0, 0}, },
- { {0, 1, 1, 0},
- {0, 1, 1, 0},
- {0, 0, 0, 0},
- {0, 0, 0, 0}, },
- { {0, 1, 1, 0},
- {0, 1, 1, 0},
- {0, 0, 0, 0},
- {0, 0, 0, 0}, },
- { {0, 1, 1, 0},
- {0, 1, 1, 0},
- {0, 0, 0, 0},
- {0, 0, 0, 0}, },
- },
- };
- #define KICKCOUNT 5
- // Order of rotations: spawn, 90 degrees, 180 degrees, 270 degrees (0, R, 2, L)
- int SRSKicks[ROTCOUNT * 2][KICKCOUNT][2] =
- {
- { { 0, 0}, {-1, 0}, {-1, 1}, { 0,-2}, {-1,-2} },
- { { 0, 0}, { 1, 0}, { 1,-1}, { 0, 2}, { 1, 2} },
- { { 0, 0}, { 1, 0}, { 1,-1}, { 0, 2}, { 1, 2} },
- { { 0, 0}, {-1, 0}, {-1, 1}, { 0,-2}, {-1,-2} },
- { { 0, 0}, { 1, 0}, { 1, 1}, { 0,-2}, { 1,-2} },
- { { 0, 0}, {-1, 0}, {-1,-1}, { 0, 2}, {-1, 2} },
- { { 0, 0}, {-1, 0}, {-1,-1}, { 0, 2}, {-1, 2} },
- { { 0, 0}, { 1, 0}, { 1, 1}, { 0,-2}, { 1,-2} }
- };
- int SRSKicks_I[ROTCOUNT*2][KICKCOUNT][2] =
- {
- { { 0, 0}, {-2, 0}, { 1, 0}, {-2,-1}, { 1, 2} },
- { { 0, 0}, { 2, 0}, {-1, 0}, { 2, 1}, {-1,-2} },
- { { 0, 0}, {-1, 0}, { 2, 0}, {-1, 2}, { 2,-1} },
- { { 0, 0}, { 1, 0}, {-2, 0}, { 1,-2}, {-2, 1} },
- { { 0, 0}, { 2, 0}, {-1, 0}, { 2, 1}, {-1,-2} },
- { { 0, 0}, {-2, 0}, { 1, 0}, {-2,-1}, { 1, 2} },
- { { 0, 0}, { 1, 0}, {-2, 0}, { 1,-2}, {-2, 1} },
- { { 0, 0}, {-1, 0}, { 2, 0}, {-1, 2}, { 2,-1} },
- };
- int SRSBases[BLOCKCOUNT][ROTCOUNT][KICKCOUNT][2] =
- {
- // I block - this deviates slightly from the SRS kick table in that check 5
- // has the X offset distributed among all four rotations, not just the
- // vertical rotations - this is so the I block won't get "stuck" on a
- // wall when rotating a certain way
- {
- { { 0, 0}, {-1, 0}, { 2, 0}, {-1, 0}, { 2, 0} },
- { {-1, 0}, { 0, 0}, { 0, 0}, { 0, 1}, { 0, -2} },
- { {-1, 1}, { 1, 1}, {-2, 1}, { 1, 0}, {-2, 0} },
- { { 0, 1}, { 0, 1}, { 0, 1}, { 0, -1}, { 0, 2} },
- },
- // J block
- {
- { { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0} },
- { { 0, 0}, { 1, 0}, { 1, -1}, { 0, 2}, { 1, 2} },
- { { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0} },
- { { 0, 0}, {-1, 0}, {-1, -1}, { 0, 2}, {-1, 2} },
- },
- // L block
- {
- { { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0} },
- { { 0, 0}, { 1, 0}, { 1, -1}, { 0, 2}, { 1, 2} },
- { { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0} },
- { { 0, 0}, {-1, 0}, {-1, -1}, { 0, 2}, {-1, 2} },
- },
- // S block
- {
- { { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0} },
- { { 0, 0}, { 1, 0}, { 1, -1}, { 0, 2}, { 1, 2} },
- { { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0} },
- { { 0, 0}, {-1, 0}, {-1, -1}, { 0, 2}, {-1, 2} },
- },
- // Z block
- {
- { { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0} },
- { { 0, 0}, { 1, 0}, { 1, -1}, { 0, 2}, { 1, 2} },
- { { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0} },
- { { 0, 0}, {-1, 0}, {-1, -1}, { 0, 2}, {-1, 2} },
- },
- // T block
- {
- { { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0} },
- { { 0, 0}, { 1, 0}, { 1, -1}, { 0, 2}, { 1, 2} },
- { { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0} },
- { { 0, 0}, {-1, 0}, {-1, -1}, { 0, 2}, {-1, 2} },
- },
- // O block
- {
- { { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0} },
- { { 0, -1}, { 0, -1}, { 0, -1}, { 0, -1}, { 0, -1} },
- { {-1, -1}, {-1, -1}, {-1, -1}, {-1, -1}, {-1, -1} },
- { {-1, 0}, {-1, 0}, {-1, 0}, {-1, 0}, {-1, 0} },
- },
- };
- int SRS180Kicks[BLOCKCOUNT][KICKCOUNT][2]=
- {
- { { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0} }, // I block
- { { 0,-1}, { 0, 1}, { 1, 0}, {-1, 0}, { 0, -2} },
- { { 0,-1}, { 0, 1}, { 1, 0}, {-1, 0}, { 0, -2} },
- { { 0,-1}, { 0, 1}, { 1, 0}, {-1, 0}, { 0, -2} },
- { { 0,-1}, { 0, 1}, { 1, 0}, {-1, 0}, { 0, -2} },
- { { 0,-1}, { 0, 1}, { 1, 0}, {-1, 0}, { 0, -2} }, // T block
- { { 1, 1}, { 1, 1}, { 1, 1}, { 1, 1}, { 1, 1} }, // O block
- };
- #define KEYCOUNT 8
- #define KEY_LEFT 0
- #define KEY_RIGHT 1
- #define KEY_DOWN 2
- #define KEY_UP 3
- #define KEY_JUMP 4
- #define KEY_CROUCH 5
- #define KEY_SPEED 6
- #define KEY_HOLD 7
- int Keymaps[KEYCOUNT] =
- {
- BT_MOVELEFT | BT_LEFT,
- BT_MOVERIGHT | BT_RIGHT,
- BT_LOOKDOWN | BT_BACK,
- BT_LOOKUP | BT_FORWARD,
- BT_JUMP,
- BT_CROUCH,
- BT_SPEED,
- BT_USER1,
- };
- #define MATRIX_X 10
- #define MATRIX_Y 22
- #define MATRIX_DRAWX (320 - (MATRIX_X * (GRAPHIC_SIZE / 2)))
- #define MATRIX_DRAWY (240 + (MATRIX_Y * (GRAPHIC_SIZE / 2)))
- #define LINETYPES 4
- int LineBreaks[LINETYPES] =
- {
- "acstris/single",
- "acstris/double",
- "acstris/triple",
- "acstris/tetris",
- };
- int SpinBreaks[LINETYPES] =
- {
- "acstris/spinsingle",
- "acstris/spindouble",
- "acstris/spintriple",
- "acstris/spintriple",
- };
- #define COMBOSOUNDS 20
- int Combos[COMBOSOUNDS] =
- {
- "acstris/combo1",
- "acstris/combo2",
- "acstris/combo3",
- "acstris/combo4",
- "acstris/combo5",
- "acstris/combo6",
- "acstris/combo7",
- "acstris/combo8",
- "acstris/combo9",
- "acstris/combo10",
- "acstris/combo11",
- "acstris/combo12",
- "acstris/combo13",
- "acstris/combo14",
- "acstris/combo15",
- "acstris/combo16",
- "acstris/combo17",
- "acstris/combo18",
- "acstris/combo19",
- "acstris/combo20",
- };
- int LineNames[LINETYPES][2] =
- {
- {"Single", "Light Blue"},
- {"Double", "White"},
- {"Triple", "Gold"},
- {"Tetris", "Green"},
- };
- int NextSounds[BLOCKCOUNT] =
- {
- "acstris/next_i",
- "acstris/next_j",
- "acstris/next_l",
- "acstris/next_s",
- "acstris/next_z",
- "acstris/next_t",
- "acstris/next_o",
- };
- int PauseSounds[2] =
- {
- "acstris/unpause",
- "acstris/pause",
- };
- #define FONTCOUNT 4
- int TetrisFonts[FONTCOUNT] =
- {
- "TETRIS1", "TETRIS2", "TETRIS3", "TETRIS4",
- };
Advertisement
Add Comment
Please, Sign In to add comment