|
|
1.1 ! root 1: #include <stdio.h> ! 2: #include "pic.h" ! 3: #include "y.tab.h" ! 4: ! 5: struct obj *textgen(s, garb) ! 6: { ! 7: int i, dx, dy, type; ! 8: struct obj *p, *ppos; ! 9: ! 10: type = 'C'; ! 11: dx = dy = 0; ! 12: for (i = 0; i < nattr; i++) ! 13: switch (attr[i].a_type) { ! 14: case LEFT: ! 15: dx -= attr[i].a_val; ! 16: break; ! 17: case RIGHT: ! 18: dx += attr[i].a_val; ! 19: break; ! 20: case UP: ! 21: dy += attr[i].a_val; ! 22: break; ! 23: case DOWN: ! 24: dy -= attr[i].a_val; ! 25: break; ! 26: case AT: ! 27: ppos = (struct obj *) attr[i].a_val; ! 28: curx = ppos->o_x; ! 29: cury = ppos->o_y; ! 30: break; ! 31: case LJUST: ! 32: type = 'L'; ! 33: break; ! 34: case RJUST: ! 35: type = 'R'; ! 36: break; ! 37: case SPREAD: ! 38: type = 'S'; ! 39: break; ! 40: case FILL: ! 41: type = 'F'; ! 42: break; ! 43: case ABOVE: ! 44: type = 'A'; ! 45: break; ! 46: case BELOW: ! 47: type = 'B'; ! 48: break; ! 49: } ! 50: dprintf("T %c %s\n", type, s); ! 51: extreme(curx, cury); ! 52: curx += dx; ! 53: cury += dy; ! 54: extreme(curx, cury); ! 55: p = makenode(TEXT, 2); ! 56: p->o_val[0] = s; ! 57: p->o_val[1] = type; ! 58: return(p); ! 59: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.