summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2018-02-06 22:02:03 -0500
committerJune McEnroe <june@causal.agency>2018-02-06 22:02:03 -0500
commit9cc1f4884855fc59ac94bea35ba222c15bc61248 (patch)
tree6d979a30599ca189c380a4a7bf19419878222957
parentAdd gfxx palette loading and dumping (diff)
downloadsrc-9cc1f4884855fc59ac94bea35ba222c15bc61248.tar.gz
src-9cc1f4884855fc59ac94bea35ba222c15bc61248.zip
Add gfxx controls for custom bits
Diffstat (limited to '')
-rw-r--r--bin/gfxx.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/bin/gfxx.c b/bin/gfxx.c
index 92a2267f..0d0b9c79 100644
--- a/bin/gfxx.c
+++ b/bin/gfxx.c
@@ -320,6 +320,12 @@ static void palDump(void) {
     if (error) { warn("%s", options); return; }
 }
 
+static uint8_t bit = 0;
+static void setBit(char in) {
+    bits[bit++] = in - '0';
+    bit &= MASK(2);
+}
+
 static const uint8_t PRESETS[][4] = {
     { 0, 0, 1, 0 },
     { 0, 1, 1, 0 },
@@ -334,6 +340,7 @@ static const uint8_t PRESETS[][4] = {
 #define PRESETS_LEN (sizeof(PRESETS) / sizeof(PRESETS[0]))
 static uint8_t preset = PRESETS_LEN - 1;
 static void setPreset(void) {
+    bit = 0;
     for (int i = 0; i < 4; ++i) {
         bits[i] = PRESETS[preset][i];
     }
@@ -369,5 +376,6 @@ extern void input(char in) {
         break; case 'm': mirror ^= true;
         break; case '+': scale++;
         break; case '-': if (scale > 1) scale--;
+        break; default: if (in >= '0' && in <= '9') setBit(in);
     }
 }