aboutsummaryrefslogtreecommitdiffstats
path: root/src/bin/turn2line.c
blob: a5de23cdbac2002638c668998e0a86ec11673284 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
int main(int argc,char *argv[]) {
 int in,x=0,dx,y=0,dy,h=0,dh=argc<2?-4:atoi(argv[1]);
 for(;(in=fgetc(stdin)) != -1;dh=-4) {
  if(dh == -4) {
   switch(in) { case'B':dh++;case'm':dh++;case'L':dh++;case'l':dh++;
     case'F':dh++;case'r':dh++;case'R':dh++;case's':dh++;default:break; }
   if(dh==-4) continue;
  }
  h=(h+8+dh)%8;
  printf("%d %d ",x,y);
  x+=(signed char)"\x01\x01\x00\xff\xff\xff\x00\x01"[h%8];
  y+=(signed char)"\x00\x01\x01\x01\x00\xff\xff\xff"[h%8];
  printf("%d %d\n",x,y);
 }
}