summaryrefslogtreecommitdiff
path: root/src/ring.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ring.c')
-rw-r--r--src/ring.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/ring.c b/src/ring.c
new file mode 100644
index 0000000..633648b
--- /dev/null
+++ b/src/ring.c
@@ -0,0 +1,26 @@
+#include <assert.h>
+#include <stdlib.h>
+
+#include "ring.h"
+#include "tower.h"
+
+void pickup_ring() {
+ int i;
+ int pickup = -1;
+
+ // should not be called if we are already holding a ring
+ assert(held == NULL);
+
+ // find the smallest ring on the currently hovered tower (if there is one)
+ for(i = 2; i >= 0; --i) {
+ if(rings[i].location == hover) {
+ pickup = i;
+ break;
+ }
+ }
+
+ if(pickup > 0) {
+ held = &rings[pickup];
+ held->held = true;
+ }
+}