summaryrefslogtreecommitdiff
path: root/inc
diff options
context:
space:
mode:
Diffstat (limited to 'inc')
-rw-r--r--inc/tetromino.h86
1 files changed, 86 insertions, 0 deletions
diff --git a/inc/tetromino.h b/inc/tetromino.h
index 30d55a3..04f21d3 100644
--- a/inc/tetromino.h
+++ b/inc/tetromino.h
@@ -20,6 +20,8 @@ struct Tetromino {
int size;
struct Color color;
int directions[4][4][4];
+ int cw_kick_table[4][10];
+ int ccw_kick_table[4][10];
};
struct Tetromino tetrominos[7] = {
@@ -52,6 +54,18 @@ struct Tetromino tetrominos[7] = {
{0, 1, 0, 0},
{0, 1, 0, 0}
}
+ },
+ .cw_kick_table = {
+ {+0,+0, -2,+0, +1,+0, -2,-1, +1,+2},
+ {+0,+0, -1,+0, +2,+0, -1,+2, +2,-1},
+ {+0,+0, +2,+0, -1,+0, +2,+1, -1,-2},
+ {+0,+0, +1,+0, -2,+0, +1,-2, -2,+1}
+ },
+ .ccw_kick_table = {
+ {+0,+0, -1,+0, +2,+0, -1,+2, +2,-1},
+ {+0,+0, +2,+0, -1,+0, +2,+1, -1,-2},
+ {+0,+0, +1,+0, -2,+0, +1,-2, -2,+1},
+ {+0,+0, -2,+0, +1,+0, -2,-1, +1,+2}
}
},
[J] = {
@@ -78,6 +92,18 @@ struct Tetromino tetrominos[7] = {
{0, 1, 0},
{0, 1, 0}
}
+ },
+ .cw_kick_table = {
+ {+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}
+ },
+ .ccw_kick_table = {
+ {+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}
}
},
[L] = {
@@ -104,6 +130,18 @@ struct Tetromino tetrominos[7] = {
{0, 1, 0},
{1, 1, 0}
}
+ },
+ .cw_kick_table = {
+ {+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}
+ },
+ .ccw_kick_table = {
+ {+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}
}
},
[O] = {
@@ -130,6 +168,18 @@ struct Tetromino tetrominos[7] = {
{0, 1, 1},
{0, 1, 1}
}
+ },
+ .cw_kick_table = {
+ {+0,+0, +0,+0, +0,+0, +0,+0, +0,+0},
+ {+0,+0, +0,+0, +0,+0, +0,+0, +0,+0},
+ {+0,+0, +0,+0, +0,+0, +0,+0, +0,+0},
+ {+0,+0, +0,+0, +0,+0, +0,+0, +0,+0}
+ },
+ .ccw_kick_table = {
+ {+0,+0, +0,+0, +0,+0, +0,+0, +0,+0},
+ {+0,+0, +0,+0, +0,+0, +0,+0, +0,+0},
+ {+0,+0, +0,+0, +0,+0, +0,+0, +0,+0},
+ {+0,+0, +0,+0, +0,+0, +0,+0, +0,+0}
}
},
[S] = {
@@ -156,6 +206,18 @@ struct Tetromino tetrominos[7] = {
{1, 1, 0},
{1, 0, 0}
}
+ },
+ .cw_kick_table = {
+ {+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}
+ },
+ .ccw_kick_table = {
+ {+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}
}
},
[T] = {
@@ -182,6 +244,18 @@ struct Tetromino tetrominos[7] = {
{1, 1, 0},
{0, 1, 0}
}
+ },
+ .cw_kick_table = {
+ {+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}
+ },
+ .ccw_kick_table = {
+ {+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}
}
},
[Z] = {
@@ -208,6 +282,18 @@ struct Tetromino tetrominos[7] = {
{1, 1, 0},
{0, 1, 0}
}
+ },
+ .cw_kick_table = {
+ {+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}
+ },
+ .ccw_kick_table = {
+ {+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}
}
}
};