home *** CD-ROM | disk | FTP | other *** search
/ Between Heaven & Hell 2 / BetweenHeavenHell.cdr / 500 / 471 / rccl226 < prev    next >
Text File  |  1987-03-02  |  2KB  |  110 lines

  1. #include "../h/rccl.h"
  2. #include "../h/umac.h"
  3. #include "../h/hand.h"
  4.  
  5. pumatask()
  6. {
  7.     TRSF_PTR z, e, peg, hole, roty, bottom, angle;
  8.     POS_PTR align, in, touch;
  9.     int q;
  10.  
  11.     z = gentr_trsl("Z",  0.,  0., 864.);
  12.     e = gentr_trsl("E" , 0. , 0. , 140.);
  13.     peg = gentr_trsl("PEG", 0., 0., 10.);
  14.     hole = gentr_trsl("HOLE", -50., 450., 500.);
  15.     hole->fn = varb;
  16.     bottom = gentr_trsl("BOTTOM", 0., 0., -20.);
  17.     roty = gentr_rot("ROTY", 0., 0., 0., yunit, 180.);
  18.     angle = gentr_rot("ANGLE", 0., 0., 0., yunit, 12.);
  19.  
  20.     align = makeposition(
  21.     "ALIGN", z, t6, e, peg, EQ, hole, roty, TL, peg);
  22.  
  23.     touch = makeposition(
  24.     "TOUCH", z, t6, e, peg, EQ, hole, angle, roty, TL, peg);
  25.  
  26.     in = makeposition(
  27.     "IN", z, t6, e, peg, EQ, hole, bottom, roty, TL, peg);
  28.  
  29.     setvel(300, 50);
  30.     move(align);
  31.     if (!teach(hole, align)) {
  32.         setvel(300, 50);
  33.  
  34.         distance("dz", -100.);
  35.             move(align);
  36.  
  37.         setmod('j');
  38.         move(park);
  39.         return;
  40.     }
  41.     setmod('c');
  42.     setvel(100, 100);
  43.  
  44.     distance("dz", -10.);
  45.         move(touch);
  46.  
  47.     QUERY(q);
  48.  
  49.     if (q == 'n') {
  50.         setvel(300, 100);
  51.         setmod('j');
  52.         move(park);
  53.         return;
  54.     }
  55.  
  56.  
  57.     setvel(4, 7);
  58.     distance("dz", -4.);
  59.         move(touch);
  60.  
  61.     limit("fz", 25.);
  62.     distance("dz", 5.);
  63.         move(touch);
  64.  
  65.     comply("fz", 15.);
  66.         move(align);
  67.     lock("fz");
  68.  
  69.     comply("fx fy", 0., 0.);
  70.         limit("fz", 20.);
  71.         move(in);
  72.  
  73.         update(hole, in);
  74.         limit("fz tx", 40., 10.);
  75.         distance("rx", 2.);
  76.             move(in);
  77.  
  78.         update(hole, in);
  79.         limit("fz tx", 40., 10.);
  80.         distance("rx", -2.);
  81.             move(in);
  82.  
  83.         update(hole, in);
  84.         limit("fz ty", 40., 10.);
  85.         distance("ry", 2.);
  86.             move(in);
  87.  
  88.         update(hole, in);
  89.         limit("fz ty", 40., 10.);
  90.         distance("ry", -2.);
  91.             move(in);
  92.  
  93.         update(hole, in);
  94.         limit("fz", 20.);
  95.         distance("dz", 10.);
  96.             move(in);
  97.  
  98.         limit("dx dy", 1., 1.);
  99.         move(align);
  100.     lock("fx fy");
  101.  
  102.     setvel(50, 50);
  103.     distance("dz", -50.);
  104.         move(align);
  105.  
  106.     setvel(300, 50);
  107.     setmod('j');
  108.     move(park);
  109. }
  110.