summaryrefslogtreecommitdiff
path: root/tetris/engine.prn
diff options
context:
space:
mode:
Diffstat (limited to 'tetris/engine.prn')
-rw-r--r--tetris/engine.prn23
1 files changed, 23 insertions, 0 deletions
diff --git a/tetris/engine.prn b/tetris/engine.prn
new file mode 100644
index 0000000..ebfb0c7
--- /dev/null
+++ b/tetris/engine.prn
@@ -0,0 +1,23 @@
+mkarray "e_blockqueue" store
+
+@defun "e_nextblock" {
+ "e_blockqueue" swapoutvar
+ arrlen 1 < if
+ "ERROR: blockqueue empty while requesting nextblock" print
+ error
+ end
+ 0 arridx
+ swap
+ arrpopf "e_blockqueue" store
+}
+
+@defun "e_peekblock" {
+ "e_blockqueue" swapoutvar
+ arrlen 2 < if
+ 0
+ else
+ 1 arridx
+ end
+ swap
+ "e_blockqueue" store
+}