diff options
| author | Louis Burda <quent.burda@gmail.com> | 2022-09-25 19:07:01 +0200 |
|---|---|---|
| committer | Louis Burda <quent.burda@gmail.com> | 2022-09-25 20:53:17 +0200 |
| commit | 6388662beb1ac5661f7b73b4818e2454538f245f (patch) | |
| tree | 4bfdf7a68b582d231a67bbbc9b2f1fd6be39f816 | |
| parent | 84c1e75aa8eaefbaaf853ca3c4edb48301989189 (diff) | |
| download | pietp-6388662beb1ac5661f7b73b4818e2454538f245f.tar.gz pietp-6388662beb1ac5661f7b73b4818e2454538f245f.zip | |
Add flag for starting color
| -rw-r--r-- | pietp.c | 22 |
1 files changed, 13 insertions, 9 deletions
@@ -80,13 +80,14 @@ static const int instructions[][2] = { }; static const int piet_code[] = { - PUSH, PUSH, ADD, DUP, DUP, MUL, DUP, DUP, MUL, MUL, MUL, // 128 - PUSH, PUSH, ADD, DUP, MUL, DUP, MUL, SUB, // 112 - PUSH, PUSH, ADD, PUSH, ADD, ADD, // 115 - DUP, DUP, OUTC, - PUSH, PUSH, ADD, DUP, MUL, SUB, PUSH, SUB, // 110 - DUP, OUTC, - PUSH, PUSH, ADD, ADD, OUTC + PUSH, PUSH, ADD, DUP, MUL, DUP, DUP, DUP, MUL, // 4 4 16 + DUP, DUP, ADD, DUP, DUP, ADD, ADD, ADD, // 4 4 112 + DUP, DUP, PUSH, PUSH, ADD, PUSH, ADD, ADD, // 4 4 112 112 115 + OUTC, + PUSH, PUSH, ADD, SUB, // 4 4 112 110 + OUTC, + ADD, ADD, // 120 + OUTC }; static int debug = 0; @@ -137,12 +138,15 @@ main(int argc, const char **argv) int rotonce; int i; + color = 0; mappath = NULL; for (i = 1; i < argc; i++) { if (!strcmp(argv[i], "-d")) debug = 1; + else if (!strcmp(argv[i], "-s") && i + 1 < argc) + color = atoi(argv[++i]); else if (!strcmp(argv[i], "-h")) - errx(0, "pietp [-h] [-d] [MAP-IMAGE]"); + errx(0, "pietp [-h] [-d] [-s COLOR] [MAP-IMAGE]"); else if (mappath) errx(1, "More than one map specified\n"); else @@ -164,7 +168,6 @@ main(int argc, const char **argv) dx = 1; dy = 0; - color = 0; x = y = 0; setrgb(pix, width * 3, x++, y, color); @@ -199,6 +202,7 @@ main(int argc, const char **argv) vis[y * width + x] = 1; if (debug) printf("[%3i,%3i]: %06X -> %06X | %4s\n", x, y, colors[color], colors[nextc], inst_names[nexti]); + color = nextc; /* rotate until free */ rotonce = 0; |
