foo
[vrtris] / src / blocks.h
diff --git a/src/blocks.h b/src/blocks.h
new file mode 100644 (file)
index 0000000..0a76d37
--- /dev/null
@@ -0,0 +1,67 @@
+#ifndef BLOCKS_H_
+#define BLOCKS_H_
+
+#define BLK(x, y)      ((x) | ((y) << 4))
+#define BLKX(c)                ((unsigned char)(c) & 0xf)
+#define BLKY(c)                ((unsigned char)(c) >> 4)
+
+#define NUM_BLOCKS     7
+
+static unsigned char blocks[NUM_BLOCKS][4][4] = {
+       /* L block */
+       {
+               {BLK(0, 1), BLK(0, 2), BLK(1, 1), BLK(2, 1)},
+               {BLK(0, 0), BLK(1, 0), BLK(1, 1), BLK(1, 2)},
+               {BLK(0, 1), BLK(1, 1), BLK(2, 1), BLK(2, 0)},
+               {BLK(1, 0), BLK(1, 1), BLK(1, 2), BLK(2, 2)}
+       },
+       /* J block */
+       {
+               {BLK(0, 1), BLK(1, 1), BLK(2, 1), BLK(2, 2)},
+               {BLK(1, 0), BLK(1, 1), BLK(1, 2), BLK(0, 2)},
+               {BLK(0, 0), BLK(0, 1), BLK(1, 1), BLK(2, 1)},
+               {BLK(1, 0), BLK(2, 0), BLK(1, 1), BLK(1, 2)}
+       },
+       /* I block */
+       {
+               {BLK(0, 2), BLK(1, 2), BLK(2, 2), BLK(3, 2)},
+               {BLK(1, 0), BLK(1, 1), BLK(1, 2), BLK(1, 3)},
+               {BLK(0, 2), BLK(1, 2), BLK(2, 2), BLK(3, 2)},
+               {BLK(1, 0), BLK(1, 1), BLK(1, 2), BLK(1, 3)}
+       },
+       /* O block */
+       {
+               {BLK(1, 1), BLK(2, 1), BLK(1, 2), BLK(2, 2)},
+               {BLK(1, 1), BLK(2, 1), BLK(1, 2), BLK(2, 2)},
+               {BLK(1, 1), BLK(2, 1), BLK(1, 2), BLK(2, 2)},
+               {BLK(1, 1), BLK(2, 1), BLK(1, 2), BLK(2, 2)}
+       },
+       /* Z block */
+       {
+               {BLK(0, 1), BLK(1, 1), BLK(1, 2), BLK(2, 2)},
+               {BLK(0, 1), BLK(1, 1), BLK(1, 0), BLK(0, 2)},
+               {BLK(0, 1), BLK(1, 1), BLK(1, 2), BLK(2, 2)},
+               {BLK(0, 1), BLK(1, 1), BLK(1, 0), BLK(0, 2)}
+       },
+       /* S block */
+       {
+               {BLK(1, 1), BLK(2, 1), BLK(0, 2), BLK(1, 2)},
+               {BLK(0, 0), BLK(0, 1), BLK(1, 1), BLK(1, 2)},
+               {BLK(1, 1), BLK(2, 1), BLK(0, 2), BLK(1, 2)},
+               {BLK(0, 0), BLK(0, 1), BLK(1, 1), BLK(1, 2)}
+       },
+       /* T block */
+       {
+               {BLK(0, 1), BLK(1, 1), BLK(2, 1), BLK(1, 2)},
+               {BLK(1, 0), BLK(1, 1), BLK(1, 2), BLK(0, 1)},
+               {BLK(0, 1), BLK(1, 1), BLK(2, 1), BLK(1, 0)},
+               {BLK(1, 0), BLK(1, 1), BLK(1, 2), BLK(2, 1)}
+       }
+};
+
+static int block_spawnpos[NUM_BLOCKS][2] = {
+       {-1, -2}, {-1, -2}, {-2, -2}, {-1, -2}, {-1, -2}, {-1, -2}, {-1, -2}
+};
+
+
+#endif /* BLOCKS_H_ */