aboutsummaryrefslogtreecommitdiffstats
path: root/src/sprite_test/util.pde
diff options
context:
space:
mode:
Diffstat (limited to 'src/sprite_test/util.pde')
-rw-r--r--src/sprite_test/util.pde33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/sprite_test/util.pde b/src/sprite_test/util.pde
new file mode 100644
index 0000000..7fbf70d
--- /dev/null
+++ b/src/sprite_test/util.pde
@@ -0,0 +1,33 @@
+int atxy(int x, int y)
+{
+ return (y << 6) + x;
+}
+
+// ----------------------------------------------------------------------
+// qrand: quick random numbers
+// ----------------------------------------------------------------------
+
+static uint16_t lfsr = 1;
+
+static void qrandSeed(int seed)
+{
+ if (seed) {
+ lfsr = seed;
+ } else {
+ lfsr = 0x947;
+ }
+}
+
+static byte qrand1() // a random bit
+{
+ lfsr = (lfsr >> 1) ^ (-(lfsr & 1) & 0xb400);
+ return lfsr & 1;
+}
+
+static byte qrand(byte n) // n random bits
+{
+ byte r = 0;
+ while (n--)
+ r = (r << 1) | qrand1();
+ return r;
+}