4 #define BLK(x, y) ((x) | ((y) << 4))
5 #define BLKX(c) ((unsigned char)(c) & 0xf)
6 #define BLKY(c) ((unsigned char)(c) >> 4)
10 static unsigned char pieces[NUM_PIECES][4][4] = {
13 {BLK(0, 2), BLK(1, 2), BLK(2, 2), BLK(3, 2)},
14 {BLK(1, 0), BLK(1, 1), BLK(1, 2), BLK(1, 3)},
15 {BLK(0, 2), BLK(1, 2), BLK(2, 2), BLK(3, 2)},
16 {BLK(1, 0), BLK(1, 1), BLK(1, 2), BLK(1, 3)}
20 {BLK(1, 1), BLK(2, 1), BLK(1, 2), BLK(2, 2)},
21 {BLK(1, 1), BLK(2, 1), BLK(1, 2), BLK(2, 2)},
22 {BLK(1, 1), BLK(2, 1), BLK(1, 2), BLK(2, 2)},
23 {BLK(1, 1), BLK(2, 1), BLK(1, 2), BLK(2, 2)}
27 {BLK(0, 1), BLK(1, 1), BLK(2, 1), BLK(2, 2)},
28 {BLK(1, 0), BLK(1, 1), BLK(1, 2), BLK(0, 2)},
29 {BLK(0, 0), BLK(0, 1), BLK(1, 1), BLK(2, 1)},
30 {BLK(1, 0), BLK(2, 0), BLK(1, 1), BLK(1, 2)}
34 {BLK(0, 1), BLK(0, 2), BLK(1, 1), BLK(2, 1)},
35 {BLK(0, 0), BLK(1, 0), BLK(1, 1), BLK(1, 2)},
36 {BLK(0, 1), BLK(1, 1), BLK(2, 1), BLK(2, 0)},
37 {BLK(1, 0), BLK(1, 1), BLK(1, 2), BLK(2, 2)}
41 {BLK(1, 1), BLK(2, 1), BLK(0, 2), BLK(1, 2)},
42 {BLK(0, 0), BLK(0, 1), BLK(1, 1), BLK(1, 2)},
43 {BLK(1, 1), BLK(2, 1), BLK(0, 2), BLK(1, 2)},
44 {BLK(0, 0), BLK(0, 1), BLK(1, 1), BLK(1, 2)}
48 {BLK(0, 1), BLK(1, 1), BLK(2, 1), BLK(1, 2)},
49 {BLK(1, 0), BLK(1, 1), BLK(1, 2), BLK(0, 1)},
50 {BLK(0, 1), BLK(1, 1), BLK(2, 1), BLK(1, 0)},
51 {BLK(1, 0), BLK(1, 1), BLK(1, 2), BLK(2, 1)}
55 {BLK(0, 1), BLK(1, 1), BLK(1, 2), BLK(2, 2)},
56 {BLK(0, 1), BLK(1, 1), BLK(1, 0), BLK(0, 2)},
57 {BLK(0, 1), BLK(1, 1), BLK(1, 2), BLK(2, 2)},
58 {BLK(0, 1), BLK(1, 1), BLK(1, 0), BLK(0, 2)}
62 static int piece_spawnpos[NUM_PIECES][2] = {
63 {-1, -2}, {-1, -3}, {-1, -2}, {-1, -2}, {-1, -2}, {-1, -2}, {-1, -2}
67 #endif /* PIECES_H_ */