home *** CD-ROM | disk | FTP | other *** search
/ The Fred Fish Collection 1.5 / ffcollection-1-5-1992-11.iso / ff_progs / prog_oth / monopoly.lzh / monopoly_source.LZH / f4.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-01-06  |  34.0 KB  |  1,370 lines

  1. /*  f4.c for monopoly contains:   
  2.       ckchancemsg(),  chance(), ckchestmsg(),  chest(),  showint()    */
  3.  
  4. #include "mono:defines"
  5. #include "mono:xvariables"
  6.  
  7. VOID showint(value, where)
  8. LONG value;
  9. USHORT where;
  10. {
  11. (VOID) stcl_d(outputstr, value);
  12. outstr.IText=&outputstr[0]; 
  13. if (where)  PrintIText(rportchest, &outstr, 0, 10);   
  14. if (!where)  PrintIText(rportchance, &outstr, 0, 0);   
  15. }
  16.  
  17. VOID ckchancemsg()
  18. {
  19. ULONG cclass;
  20. USHORT ccode;
  21. cclass=0;
  22. ccode=0;
  23.  
  24.  
  25. while (chancemsg=(struct IntuiMessage *)GetMsg(chancewindow->UserPort))
  26.    {
  27.    cclass = chancemsg->Class;
  28.    ccode = chancemsg->Code;
  29.    ReplyMsg(chancemsg);
  30.    }
  31. if ((cclass == RAWKEY) && (ccode == HELP))  instruction();
  32. if (cclass == GADGETDOWN)  donechance=TRUE;
  33. }
  34.  
  35. VOID ckchestmsg()
  36. {
  37. ULONG chclass;
  38. USHORT chcode;
  39. chclass=0;
  40. chcode=0;
  41.  
  42.  
  43. while (chestmsg=(struct IntuiMessage *)GetMsg(chestwindow->UserPort))
  44.    {
  45.    chclass = chestmsg->Class;
  46.    chcode = chestmsg->Code;
  47.    ReplyMsg(chestmsg);
  48.    }
  49. if ((chclass == RAWKEY) && (chcode == HELP))  instruction();
  50. if (chclass == GADGETDOWN)  donechest=TRUE;
  51. }
  52.  
  53. USHORT chest()
  54. {
  55. USHORT card, numhouses, numhotels, hold_line;
  56. LONG money;
  57. struct IntuiText msg0, msg1, msg2, msg3, msg4, msg5, msg6,
  58.                        msg7, msg8, msg9;
  59.  
  60.  
  61. msg0.FrontPen=chest_yellow;
  62. msg1.FrontPen=chest_yellow;
  63. msg2.FrontPen=chest_yellow;
  64. msg3.FrontPen=chest_yellow;
  65. msg4.FrontPen=chest_yellow;
  66. msg5.FrontPen=chest_yellow;
  67. msg6.FrontPen=chest_yellow;
  68. msg7.FrontPen=chest_yellow;
  69. msg8.FrontPen=chest_yellow;
  70. msg9.FrontPen=chest_yellow;
  71. outstr.FrontPen=red;
  72.  
  73. msg0.BackPen=0;
  74. msg0.DrawMode=JAM1;
  75. msg0.LeftEdge=5;
  76. msg0.TopEdge=20;
  77. msg0.ITextFont=NULL;
  78. msg0.NextText=NULL;
  79. msg0.IText=(UBYTE *)"You have landed on";
  80.  
  81. msg1.BackPen=0;
  82. msg1.DrawMode=JAM1;
  83. msg1.LeftEdge=5;
  84. msg1.TopEdge=30;
  85. msg1.ITextFont=NULL;
  86. msg1.NextText=NULL;
  87. msg1.IText=(UBYTE *)"COMMUNITY CHEST.";
  88.  
  89. msg2.BackPen=0;
  90. msg2.DrawMode=JAM1;
  91. msg2.LeftEdge=5;
  92. msg2.TopEdge=40;
  93. msg2.ITextFont=NULL;
  94. msg2.NextText=NULL;
  95.  
  96.  
  97. msg3.BackPen=0;
  98. msg3.DrawMode=JAM1;
  99. msg3.LeftEdge=5;
  100. msg3.TopEdge=50;
  101. msg3.ITextFont=NULL;
  102. msg3.NextText=NULL;
  103.  
  104. msg4.BackPen=0;
  105. msg4.DrawMode=JAM1;
  106. msg4.LeftEdge=5;
  107. msg4.TopEdge=60;
  108. msg4.ITextFont=NULL;
  109. msg4.NextText=NULL;
  110.  
  111. msg5.BackPen=0;
  112. msg5.DrawMode=JAM1;
  113. msg5.LeftEdge=5;
  114. msg5.TopEdge=70;
  115. msg5.ITextFont=NULL;
  116. msg5.NextText=NULL;
  117.  
  118. msg6.BackPen=0;
  119. msg6.DrawMode=JAM1;
  120. msg6.LeftEdge=5;
  121. msg6.TopEdge=80;
  122. msg6.ITextFont=NULL;
  123. msg6.NextText=NULL;
  124.  
  125. msg7.BackPen=0;
  126. msg7.DrawMode=JAM1;
  127. msg7.LeftEdge=5;
  128. msg7.TopEdge=90;
  129. msg7.ITextFont=NULL;
  130. msg7.NextText=NULL;
  131.  
  132. msg8.BackPen=0;
  133. msg8.DrawMode=JAM1;
  134. msg8.LeftEdge=5;
  135. msg8.TopEdge=100;
  136. msg8.ITextFont=NULL;
  137. msg8.NextText=NULL;
  138.  
  139. msg9.BackPen=0;
  140. msg9.DrawMode=JAM1;
  141. msg9.LeftEdge=5;
  142. msg9.TopEdge=110;
  143. msg9.ITextFont=NULL;
  144. msg9.NextText=NULL;
  145.  
  146. outstr.BackPen=0;
  147. outstr.DrawMode=JAM1;
  148. outstr.LeftEdge=15;
  149. outstr.TopEdge=90;
  150. outstr.ITextFont=NULL;
  151. outstr.NextText=NULL;outstr.BackPen=0;
  152. outstr.DrawMode=JAM1;
  153. outstr.LeftEdge=15;
  154. outstr.TopEdge=90;
  155. outstr.ITextFont=NULL;
  156. outstr.NextText=NULL;
  157.  
  158. nchestw.LeftEdge=63;
  159. nchestw.TopEdge=29;
  160. nchestw.Width=194;
  161. nchestw.Height=143;
  162. nchestw.DetailPen=white;
  163. nchestw.BlockPen=green;
  164. nchestw.Title=NULL;
  165. nchestw.Flags=SMART_REFRESH | ACTIVATE | BORDERLESS;
  166. nchestw.IDCMPFlags=GADGETDOWN|RAWKEY;
  167. nchestw.FirstGadget=&continuegag;
  168. nchestw.Screen=screen1;
  169.  
  170. if ((chestwindow=(struct Window *)OpenWindow(&nchestw))==NULL) cleanup();
  171. rportchest=chestwindow->RPort;
  172. PrintIText(rportchest, &cname, 0, 0);   
  173. PrintIText(rportchest, &msg0, 0, 0);
  174. PrintIText(rportchest, &msg1, 0, 0);
  175.  
  176. doublerr=FALSE;
  177. doubleutil=FALSE;
  178. card=getchestcard();
  179.  
  180. switch  (card)
  181.    {
  182.    case 0:
  183.       msg4.IText=(UBYTE *)"FROM THE SALE";
  184.       msg5.IText=(UBYTE *)"OF YOUR STOCK";
  185.       msg7.IText=(UBYTE *)"YOU GET $45.";
  186.       msg4.FrontPen=lt_blue;
  187.       msg5.FrontPen=lt_blue;
  188.       msg7.FrontPen=green;
  189.       PrintIText(rportchest, &msg4, 40, 0);
  190.       PrintIText(rportchest, &msg5, 40, 0);      
  191.       PrintIText(rportchest, &msg7, 49, 0);
  192.       eft(BANK, nowrolling, 45);
  193.       break;
  194.    case 1:  
  195.       msg4.IText=(UBYTE *)"GO DIRECTLY TO JAIL!";
  196.       msg4.FrontPen=dk_gray;
  197.       msg6.IText=(UBYTE *)"DO NOT PASS GO!";
  198.       msg6.FrontPen=lt_gray;
  199.       msg8.IText=(UBYTE *)"DO NOT COLLECT $200!";
  200.       msg8.FrontPen=red;
  201.       PrintIText(rportchest, &msg4, 12, 0);
  202.       PrintIText(rportchest, &msg6, 32, 0);      
  203.       PrintIText(rportchest, &msg8, 12, 0);
  204.       
  205.       line0_text=0;   /*  will be > 147  COMMUNITY CHEST  */
  206.       for (j=0, hold_line=line0_text; j<SHOW_LINES; j++)
  207.           instructIT[j].IText=instructline[hold_line++];
  208.  
  209.       donechest=FALSE;
  210.       while (!donechest)
  211.          {
  212.          if (1<<chestwindow->UserPort->mp_SigBit)  ckchestmsg();
  213.          }
  214.       CloseWindow(chestwindow);
  215.       sendtojail();
  216.       return(0);
  217.       break;
  218.    case 2:
  219.       msg3.IText=(UBYTE *)"You get a";
  220.       msg4.IText=(UBYTE *)"GET OUT OF JAIL FREE!"; 
  221.       msg4.FrontPen=white;
  222.       msg5.IText=(UBYTE *)"card.";
  223.       msg7.IText=(UBYTE *)"You may keep this";
  224.       msg8.IText=(UBYTE *)"until needed, trade";
  225.       msg9.IText=(UBYTE *)"it, or sell it.";
  226.       PrintIText(rportchest, &msg3, 0, 0);      
  227.       PrintIText(rportchest, &msg4, 0, 0);
  228.       PrintIText(rportchest, &msg5, 0, 0);
  229.       PrintIText(rportchest, &msg7, 0, 0);
  230.       PrintIText(rportchest, &msg8, 0, 0);
  231.       PrintIText(rportchest, &msg9, 0, 0);
  232.       freecard[nowrolling]++;
  233.       break;
  234.    case 3:
  235.       msg3.IText=(UBYTE *)"TWINS BORN!!";
  236.       msg3.FrontPen=purple;
  237.       msg5.IText=(UBYTE *)"HOSPITAL BILL DUE!";
  238.       msg5.FrontPen=orange;
  239.       msg7.IText=(UBYTE *)"Pay hospital $100.";
  240.       msg7.FrontPen=red;
  241.       PrintIText(rportchest, &msg3, 44, 0);      
  242.       PrintIText(rportchest, &msg5, 20, 0);
  243.       PrintIText(rportchest, &msg7, 20, 0);
  244.       eft(nowrolling, BANK, 100);
  245.       break;
  246.    case 4:
  247.       msg5.IText=(UBYTE *)"PAY SCHOOL TAX";
  248.       msg5.FrontPen=orange;
  249.       msg7.IText=(UBYTE *)"Amount due $150.";
  250.       msg7.FrontPen=red;
  251.       PrintIText(rportchest, &msg5, 36, 0);      
  252.       PrintIText(rportchest, &msg7, 31, 0);
  253.       eft(nowrolling, BANK, 150);      
  254.       break;
  255.    case 5:
  256.       msg3.IText=(UBYTE *)"BROKEN LEG!!";
  257.       msg3.FrontPen=tan;
  258.       msg5.IText=(UBYTE *)"DOCTOR'S BILL DUE!";
  259.       msg5.FrontPen=orange;
  260.       msg7.IText=(UBYTE *)"Pay Doctor $50.";
  261.       msg7.FrontPen=red;
  262.       PrintIText(rportchest, &msg3, 44, 0);      
  263.       PrintIText(rportchest, &msg5, 20, 0);
  264.       PrintIText(rportchest, &msg7, 35, 0);
  265.       eft(nowrolling, BANK, 50);
  266.       break;
  267.    case 6:
  268.       msg5.IText=(UBYTE *)"LIFE INSURANCE MATURES.";
  269.       msg7.IText=(UBYTE *)"COLLECT $100.";
  270.       msg5.FrontPen=lt_blue;
  271.       msg7.FrontPen=green;
  272.       PrintIText(rportchest, &msg5, 0, 0);      
  273.       PrintIText(rportchest, &msg7, 36, 0);
  274.       eft(BANK, nowrolling, 100);
  275.       break;
  276.    case 7: 
  277.       msg2.FrontPen=orange;
  278.       msg3.FrontPen=red;
  279.       msg4.FrontPen=red;
  280.       msg5.FrontPen=red;
  281.       msg6.FrontPen=maroon;
  282.       msg7.FrontPen=red;
  283.       msg8.FrontPen=maroon;
  284.       msg9.FrontPen=red;     
  285.       msg2.IText=(UBYTE *)"STREET REPAIRS!";
  286.       msg3.IText=(UBYTE *)"PAY:";
  287.       msg4.IText=(UBYTE *)"$40 per HOUSE";
  288.       msg5.IText=(UBYTE *)"$115 per HOTEL";
  289.       msg6.IText=(UBYTE *)"ASSESSMENT:";
  290.       msg7.IText=(UBYTE *)"$";
  291.       PrintIText(rportchest, &msg2, 32, 10);      
  292.       PrintIText(rportchest, &msg3, 82, 10);      
  293.       PrintIText(rportchest, &msg4, 40, 10);
  294.       PrintIText(rportchest, &msg5, 40, 10);
  295.       PrintIText(rportchest, &msg6, 53, 10);
  296.       PrintIText(rportchest, &msg7, 0, 10);
  297.       numhouses=counthouses();
  298.       numhotels=counthotels();
  299.       money=(LONG)((numhouses*40)+(numhotels*115));
  300.       eft(nowrolling, SLUSH, (USHORT)money);
  301.       showint(money, 1);    
  302.       break;
  303.    case 8:    /*   collect   */
  304.       msg3.IText=(UBYTE *)"You Have Won";
  305.       msg4.IText=(UBYTE *)"SECOND PRIZE";
  306.       msg5.IText=(UBYTE *)"in a";
  307.       msg6.IText=(UBYTE *)"BEAUTY CONTEST!";
  308.       msg8.IText=(UBYTE *)"COLLECT $10.";
  309.       msg3.FrontPen=white;
  310.       msg4.FrontPen=lt_blue;
  311.       msg5.FrontPen=lt_gray;
  312.       msg6.FrontPen=dk_blue;
  313.       msg8.FrontPen=green;
  314.       PrintIText(rportchest, &msg3, 44, 0);
  315.       PrintIText(rportchest, &msg4, 44, 0);
  316.       PrintIText(rportchest, &msg5, 76, 0);
  317.       PrintIText(rportchest, &msg6, 32, 0);
  318.       PrintIText(rportchest, &msg8, 43, 0);
  319.       eft(BANK, nowrolling, 10);
  320.       break;
  321.    case 9:
  322.       msg4.IText=(UBYTE *)"PERFORM WEDDING!";
  323.       msg6.IText=(UBYTE *)"Receive $25 for service.";
  324.       msg4.FrontPen=white;
  325.       msg6.FrontPen=green;
  326.       PrintIText(rportchest, &msg4, 28, 0);
  327.       PrintIText(rportchest, &msg6, 0, 0);      
  328.       eft(BANK, nowrolling, 25);
  329.       break;      
  330.    case 10:
  331.       msg4.IText=(UBYTE *)"BANK ERROR";
  332.       msg5.IText=(UBYTE *)"IN YOUR FAVOR!";
  333.       msg7.IText=(UBYTE *)"Collect $200.";
  334.       msg4.FrontPen=dk_maroon;
  335.       msg5.FrontPen=dk_maroon;
  336.       msg7.FrontPen=green;
  337.       PrintIText(rportchest, &msg4, 52, 0);
  338.       PrintIText(rportchest, &msg5, 36, 0);      
  339.       PrintIText(rportchest, &msg7, 43, 0);      
  340.       eft(BANK, nowrolling, 200);
  341.       break;
  342.    case 11:
  343.       msg5.IText=(UBYTE *)"INCOME TAX REFUND!";
  344.       msg7.IText=(UBYTE *)"Collect $20.";
  345.       msg5.FrontPen=flesh;
  346.       msg7.FrontPen=green;
  347.       PrintIText(rportchest, &msg5, 20, 0);      
  348.       PrintIText(rportchest, &msg7, 47, 0);      
  349.       eft(BANK, nowrolling, 20);
  350.       break;
  351.    case 12:
  352.       msg4.IText=(UBYTE *)"GRAND OPERA OPENING!";
  353.       msg6.IText=(UBYTE *)"Collect $50";
  354.       msg7.IText=(UBYTE *)"from every player.";
  355.       msg4.FrontPen=maroon;
  356.       msg6.FrontPen=green;
  357.       msg7.FrontPen=brite_green;
  358.       PrintIText(rportchest, &msg4, 12, 0);      
  359.       PrintIText(rportchest, &msg6, 48, 0);      
  360.       PrintIText(rportchest, &msg7, 23, 0);
  361.       if (nowrolling == 0)
  362.          {
  363.      if (!notplaying[1])
  364.         {
  365.         if  (bankroll[1] < 50)  overdrawn(1, 50);
  366.         if  (bankroll[1] < 50)  outofgame(1, nowrolling);
  367.             eft(1, nowrolling, 50);
  368.         }
  369.       if (!notplaying[2])
  370.         {
  371.         if  (bankroll[2] < 50)  overdrawn(2, 50);
  372.         if  (bankroll[2] < 50)  outofgame(2, nowrolling);
  373.             eft(2, nowrolling, 50);
  374.         }
  375.       if (!notplaying[3])
  376.         {
  377.         if  (bankroll[3] < 50)  overdrawn(3, 50);
  378.         if  (bankroll[3] < 50)  outofgame(3, nowrolling);
  379.             eft(3, nowrolling, 50);
  380.         }
  381.          }
  382.       if (nowrolling == 1)
  383.          {
  384.      if (!notplaying[0])
  385.         {
  386.         if  (bankroll[0] < 50)  overdrawn(0, 50);
  387.         if  (bankroll[0] < 50)  outofgame(0, nowrolling);
  388.             eft(0, nowrolling, 50);
  389.         }
  390.       if (!notplaying[2])
  391.         {
  392.         if  (bankroll[2] < 50)  overdrawn(2, 50);
  393.         if  (bankroll[2] < 50)  outofgame(2, nowrolling);
  394.             eft(2, nowrolling, 50);
  395.         }
  396.       if (!notplaying[3])
  397.         {
  398.         if  (bankroll[3] < 50)  overdrawn(3, 50);
  399.         if  (bankroll[3] < 50)  outofgame(3, nowrolling);
  400.             eft(3, nowrolling, 50);
  401.         }
  402.          }
  403.       if (nowrolling == 2)
  404.          {
  405.      if (!notplaying[1])
  406.         {
  407.         if  (bankroll[1] < 50)  overdrawn(1, 50);
  408.         if  (bankroll[1] < 50)  outofgame(1, nowrolling);
  409.             eft(1, nowrolling, 50);
  410.         }
  411.       if (!notplaying[0])
  412.         {
  413.         if  (bankroll[0] < 50)  overdrawn(0, 50);
  414.         if  (bankroll[0] < 50)  outofgame(0, nowrolling);
  415.             eft(0, nowrolling, 50);
  416.         }
  417.       if (!notplaying[3])
  418.         {
  419.         if  (bankroll[3] < 50)  overdrawn(3, 50);
  420.         if  (bankroll[3] < 50)  outofgame(3, nowrolling);
  421.             eft(3, nowrolling, 50);
  422.         }
  423.          }
  424.       if (nowrolling == 3)
  425.          {
  426.      if (!notplaying[1])
  427.         {
  428.         if  (bankroll[1] < 50)  overdrawn(1, 50);
  429.         if  (bankroll[1] < 50)  outofgame(1, nowrolling);
  430.             eft(1, nowrolling, 50);
  431.         }
  432.       if (!notplaying[2])
  433.         {
  434.         if  (bankroll[2] < 50)  overdrawn(2, 50);
  435.         if  (bankroll[2] < 50)  outofgame(2, nowrolling);
  436.             eft(2, nowrolling, 50);
  437.         }
  438.       if (!notplaying[0])
  439.         {
  440.         if  (bankroll[0] < 50)  overdrawn(0, 50);
  441.         if  (bankroll[0] < 50)  outofgame(0, nowrolling);
  442.             eft(0, nowrolling, 50);
  443.         }
  444.          }
  445.       break;
  446.    case 13:
  447.       msg4.IText=(UBYTE *)"RELATIVE DIES!";
  448.       msg5.IText=(UBYTE *)"YOU INHERIT!";
  449.       msg7.IText=(UBYTE *)"Collect $100.";
  450.       msg4.FrontPen=tan;
  451.       msg5.FrontPen=flesh;
  452.       msg7.FrontPen=green;
  453.       PrintIText(rportchest, &msg4, 36, 0);      
  454.       PrintIText(rportchest, &msg5, 44, 0);      
  455.       PrintIText(rportchest, &msg7, 47, 0);      
  456.       eft(BANK, nowrolling, 100);
  457.       break;
  458.    case 14:
  459.       msg5.IText=(UBYTE *)"ADVANCE TO GO!";
  460.       msg6.IText=(UBYTE *)"COLLECT $200!!";
  461.       msg5.FrontPen=green;
  462.       msg6.FrontPen=green;
  463.       PrintIText(rportchest, &msg5, 32, 0);
  464.       PrintIText(rportchest, &msg6, 32, 0);
  465.  
  466.       line0_text=0;   /*  will be > 147  COMMUNITY CHEST  */
  467.       for (j=0, hold_line=line0_text; j<SHOW_LINES; j++)
  468.           instructIT[j].IText=instructline[hold_line++];
  469.  
  470.       donechest=FALSE;
  471.       while (!donechest)
  472.          {
  473.          if (1<<chestwindow->UserPort->mp_SigBit)  ckchestmsg();
  474.          }
  475.       CloseWindow(chestwindow);
  476.       playerat[nowrolling]=0;
  477.       if (nowrolling == 0)
  478.          {
  479.      REDX=go[0][0];
  480.      REDY=go[1][0];
  481.      }
  482.       if (nowrolling ==1)
  483.          {
  484.      GREENX=go[0][1];
  485.      GREENY=go[1][1];
  486.      }
  487.       if (nowrolling == 2)
  488.          {
  489.      BLUEX=go[0][2];
  490.      BLUEY=go[1][2];
  491.      }
  492.       if (nowrolling ==3)
  493.          {
  494.      YELLOWX=go[0][3];
  495.      YELLOWY=go[1][3];
  496.      }
  497.       WaitTOF();
  498.       DrawGels();
  499.       showpropinfo(0);
  500.       return(0);
  501.       break;
  502.    case 15:
  503.       msg3.IText=(UBYTE *)"CHRISTMAS";
  504.       msg4.IText=(UBYTE *)"FUND";
  505.       msg5.IText=(UBYTE *)"MATURES!";
  506.       msg7.IText=(UBYTE *)"Collect $100.";
  507.       msg3.FrontPen=red;
  508.       msg4.FrontPen=brite_green;
  509.       msg5.FrontPen=red;
  510.       msg7.FrontPen=green;
  511.       PrintIText(rportchest, &msg3, 56, 0);      
  512.       PrintIText(rportchest, &msg4, 76, 0);      
  513.       PrintIText(rportchest, &msg5, 60, 0);      
  514.       PrintIText(rportchest, &msg7, 47, 0);      
  515.       eft(BANK, nowrolling, 100);
  516.       break;
  517.    } /*  end of switch  */
  518.  
  519. line0_text=0;   /*  will be > 147  COMMUNITY CHEST  */
  520. for (j=0, hold_line=line0_text; j<SHOW_LINES; j++)
  521.     instructIT[j].IText=instructline[hold_line++];
  522.  
  523. donechest=FALSE;
  524. while (!donechest)
  525.    {
  526.    if (1<<chestwindow->UserPort->mp_SigBit)  ckchestmsg();
  527.    }
  528. CloseWindow(chestwindow);
  529. return(0);
  530. }
  531.  
  532.  
  533.  
  534. USHORT chance()
  535. {
  536. USHORT card, numhouses, numhotels, hold_line;
  537. LONG money;
  538. struct IntuiText msg0, msg1, msg2, msg3, msg4, msg5, msg6,
  539.                        msg7, msg8, msg9;
  540.  
  541. line0_text=0;   /*   will be > 147   CHANCE   */
  542. for (j=0, hold_line=line0_text; j<SHOW_LINES; j++)
  543.    instructIT[j].IText=instructline[hold_line++];
  544.  
  545. msg0.FrontPen=chance_orange;
  546. msg1.FrontPen=chance_orange;
  547. msg2.FrontPen=chance_orange;
  548. msg3.FrontPen=chance_orange;
  549. msg4.FrontPen=chance_orange;
  550. msg5.FrontPen=chance_orange;
  551. msg6.FrontPen=chance_orange;
  552. msg7.FrontPen=chance_orange;
  553. msg8.FrontPen=chance_orange;
  554. msg9.FrontPen=chance_orange;
  555. outstr.FrontPen=red;
  556.  
  557. msg0.BackPen=0;
  558. msg0.DrawMode=JAM1;
  559. msg0.LeftEdge=5;
  560. msg0.TopEdge=20;
  561. msg0.ITextFont=NULL;
  562. msg0.NextText=NULL;
  563. msg0.IText=(UBYTE *)"You have landed";
  564.  
  565. msg1.BackPen=0;
  566. msg1.DrawMode=JAM1;
  567. msg1.LeftEdge=5;
  568. msg1.TopEdge=30;
  569. msg1.ITextFont=NULL;
  570. msg1.NextText=NULL;
  571. msg1.IText=(UBYTE *)"on CHANCE.";
  572.  
  573. msg2.BackPen=0;
  574. msg2.DrawMode=JAM1;
  575. msg2.LeftEdge=5;
  576. msg2.TopEdge=40;
  577. msg2.ITextFont=NULL;
  578. msg2.NextText=NULL;
  579.  
  580.  
  581. msg3.BackPen=0;
  582. msg3.DrawMode=JAM1;
  583. msg3.LeftEdge=5;
  584. msg3.TopEdge=50;
  585. msg3.ITextFont=NULL;
  586. msg3.NextText=NULL;
  587.  
  588. msg4.BackPen=0;
  589. msg4.DrawMode=JAM1;
  590. msg4.LeftEdge=5;
  591. msg4.TopEdge=60;
  592. msg4.ITextFont=NULL;
  593. msg4.NextText=NULL;
  594.  
  595. msg5.BackPen=0;
  596. msg5.DrawMode=JAM1;
  597. msg5.LeftEdge=5;
  598. msg5.TopEdge=70;
  599. msg5.ITextFont=NULL;
  600. msg5.NextText=NULL;
  601.  
  602. msg6.BackPen=0;
  603. msg6.DrawMode=JAM1;
  604. msg6.LeftEdge=5;
  605. msg6.TopEdge=80;
  606. msg6.ITextFont=NULL;
  607. msg6.NextText=NULL;
  608.  
  609. msg7.BackPen=0;
  610. msg7.DrawMode=JAM1;
  611. msg7.LeftEdge=5;
  612. msg7.TopEdge=90;
  613. msg7.ITextFont=NULL;
  614. msg7.NextText=NULL;
  615.  
  616. msg8.BackPen=0;
  617. msg8.DrawMode=JAM1;
  618. msg8.LeftEdge=5;
  619. msg8.TopEdge=100;
  620. msg8.ITextFont=NULL;
  621. msg8.NextText=NULL;
  622.  
  623. msg9.BackPen=0;
  624. msg9.DrawMode=JAM1;
  625. msg9.LeftEdge=5;
  626. msg9.TopEdge=110;
  627. msg9.ITextFont=NULL;
  628. msg9.NextText=NULL;
  629.  
  630. outstr.BackPen=0;
  631. outstr.DrawMode=JAM1;
  632. outstr.LeftEdge=15;
  633. outstr.TopEdge=110;
  634. outstr.ITextFont=NULL;
  635. outstr.NextText=NULL;
  636.  
  637. nchancew.LeftEdge=63;
  638. nchancew.TopEdge=29;
  639. nchancew.Width=194;
  640. nchancew.Height=143;
  641. nchancew.DetailPen=white;
  642. nchancew.BlockPen=green;
  643. nchancew.Title=NULL;
  644. nchancew.Flags=SMART_REFRESH | ACTIVATE | BORDERLESS;
  645. nchancew.IDCMPFlags=GADGETDOWN|RAWKEY;
  646. nchancew.FirstGadget=&continuegag;
  647. nchancew.Screen=screen1;
  648.  
  649. if ((chancewindow=(struct Window *)OpenWindow(&nchancew))==NULL) cleanup();
  650. rportchance=chancewindow->RPort;
  651. PrintIText(rportchance, &cname, 0, 0);   
  652. PrintIText(rportchance, &msg0, 0, 0);
  653. PrintIText(rportchance, &msg1, 0, 0);
  654.  
  655. doublerr=FALSE;
  656. doubleutil=FALSE;
  657. card=getchancecard();
  658.  
  659. switch  (card)
  660.    {
  661.    case 0:
  662.       msg3.IText=(UBYTE *)"ADVANCE TO";
  663.       msg4.FrontPen=red;
  664.       msg4.IText=(UBYTE *)"ILLINOIS AVE.";  
  665.       msg6.IText=(UBYTE *)"If you pass GO";
  666.       msg7.IText=(UBYTE *)"collect $200."; 
  667.       msg6.FrontPen=green;   
  668.       msg7.FrontPen=green;   
  669.       PrintIText(rportchance, &msg3, 52, 0);
  670.       PrintIText(rportchance, &msg4, 40, 0);
  671.       PrintIText(rportchance, &msg6, 0, 0);
  672.       PrintIText(rportchance, &msg7, 0, 0);
  673.       if  (nowrolling == 0)
  674.          {
  675.      REDX=il[0][0];
  676.      REDY=il[1][0];     
  677.      }
  678.       if  (nowrolling == 1)
  679.          {
  680.      GREENX=il[0][1];
  681.      GREENY=il[1][1];     
  682.      }
  683.       if  (nowrolling == 2)
  684.          {
  685.      BLUEX=il[0][2];
  686.      BLUEY=il[1][2];     
  687.      }
  688.       if  (nowrolling == 3)
  689.          {
  690.      YELLOWX=il[0][3];
  691.      YELLOWY=il[1][3];     
  692.      }
  693.       
  694.       line0_text=0;   /*   will be > 147   CHANCE   */
  695.       for (j=0, hold_line=line0_text; j<SHOW_LINES; j++)
  696.          instructIT[j].IText=instructline[hold_line++];
  697.  
  698.       donechance=FALSE;
  699.       while (!donechance)
  700.          {
  701.          if (1<<chancewindow->UserPort->mp_SigBit)  ckchancemsg();
  702.          }
  703.       CloseWindow(chancewindow);
  704.       if (playerat[nowrolling] == 36)
  705.          {
  706.      passgo();      
  707.          eft(BANK, nowrolling, 200);
  708.      }
  709.       WaitTOF();
  710.       DrawGels();
  711.       showpropinfo(24);
  712.       playerat[nowrolling]=24;
  713.       return(0);
  714.       break;
  715.    case 1:  
  716.       msg4.IText=(UBYTE *)"GO DIRECTLY TO JAIL!";
  717.       msg4.FrontPen=dk_gray;
  718.       msg6.IText=(UBYTE *)"DO NOT PASS GO!";
  719.       msg6.FrontPen=lt_gray;
  720.       msg8.IText=(UBYTE *)"DO NOT COLLECT $200!";
  721.       msg8.FrontPen=red;
  722.       PrintIText(rportchance, &msg4, 12, 0);
  723.       PrintIText(rportchance, &msg6, 32, 0);      
  724.       PrintIText(rportchance, &msg8, 12, 0);
  725.       
  726.       line0_text=0;   /*   will be > 147   CHANCE   */
  727.       for (j=0, hold_line=line0_text; j<SHOW_LINES; j++)
  728.          instructIT[j].IText=instructline[hold_line++];
  729.       
  730.       donechance=FALSE;
  731.       while (!donechance)
  732.          {
  733.          if (1<<chancewindow->UserPort->mp_SigBit)  ckchancemsg();
  734.          }
  735.       CloseWindow(chancewindow);
  736.       sendtojail();
  737.       return(0);
  738.       break;
  739.    case 2:
  740.       msg3.IText=(UBYTE *)"You get a";
  741.       msg4.IText=(UBYTE *)"GET OUT OF JAIL FREE!"; 
  742.       msg4.FrontPen=white;
  743.       msg5.IText=(UBYTE *)"card.";
  744.       msg7.IText=(UBYTE *)"You may keep this";
  745.       msg8.IText=(UBYTE *)"until needed, trade";
  746.       msg9.IText=(UBYTE *)"it, or sell it.";
  747.       PrintIText(rportchance, &msg3, 0, 0);      
  748.       PrintIText(rportchance, &msg4, 0, 0);
  749.       PrintIText(rportchance, &msg5, 0, 0);
  750.       PrintIText(rportchance, &msg7, 0, 0);
  751.       PrintIText(rportchance, &msg8, 0, 0);
  752.       PrintIText(rportchance, &msg9, 0, 0);
  753.       freecard[nowrolling]++;
  754.       break;
  755.    case 3:
  756.       msg3.IText=(UBYTE *)"EXTRA! EXTRA!!";
  757.       msg3.FrontPen=yellow;
  758.       msg5.IText=(UBYTE *)"YOU ARE ELECTED";
  759.       msg5.FrontPen=royal_blue;
  760.       msg6.IText=(UBYTE *)"CHAIRPERSON OF";
  761.       msg6.FrontPen=royal_blue;
  762.       msg7.IText=(UBYTE *)"THE BOARD!!!";
  763.       msg7.FrontPen=royal_blue;
  764.       msg9.IText=(UBYTE *)"Pay everyone $50.";
  765.       msg9.FrontPen=red;
  766.       PrintIText(rportchance, &msg3, 36, 0);      
  767.       PrintIText(rportchance, &msg5, 28, 0);
  768.       PrintIText(rportchance, &msg6, 36, 0);
  769.       PrintIText(rportchance, &msg7, 40, 0);
  770.       PrintIText(rportchance, &msg9, 20, 0);
  771.       if  (bankroll[nowrolling] < 50*(ntp-1) )
  772.            overdrawn(nowrolling, 50*(ntp-1) );
  773.       if  (bankroll[nowrolling] < 50*(ntp-1) )  outofgame(nowrolling, BANK);
  774.       if  (!notplaying[nowrolling])
  775.          {
  776.      if (!notplaying[0] && (nowrolling != 0) )  eft(nowrolling, 0, 50);
  777.      if (!notplaying[1] && (nowrolling != 1) )  eft(nowrolling, 1, 50);
  778.      if (!notplaying[2] && (nowrolling != 2) )  eft(nowrolling, 2, 50);
  779.      if (!notplaying[3] && (nowrolling != 3) )  eft(nowrolling, 3, 50);
  780.          }
  781.       break;
  782.    case 4:
  783.    case 13:
  784.       msg3.IText=(UBYTE *)"Advance token to";
  785.       msg4.IText=(UBYTE *)"the nearest";
  786.       msg5.IText=(UBYTE *)"RAILROAD.";
  787.       msg7.IText=(UBYTE *)"If someone else";
  788.       msg8.IText=(UBYTE *)"owns it pay TWICE";
  789.       msg9.IText=(UBYTE *)"the normal rent.";
  790.       msg7.FrontPen=red;
  791.       msg8.FrontPen=red;
  792.       msg9.FrontPen=red;
  793.       PrintIText(rportchance, &msg3, 0, 0);
  794.       PrintIText(rportchance, &msg4, 0, 0);      
  795.       PrintIText(rportchance, &msg5, 0, 0);
  796.       PrintIText(rportchance, &msg7, 0, 0);
  797.       PrintIText(rportchance, &msg8, 0, 0);
  798.       PrintIText(rportchance, &msg9, 0, 0);
  799.       
  800.       line0_text=0;   /*   will be > 147   CHANCE   */
  801.       for (j=0, hold_line=line0_text; j<SHOW_LINES; j++)
  802.          instructIT[j].IText=instructline[hold_line++];
  803.       
  804.       donechance=FALSE;
  805.       while (!donechance)
  806.          {
  807.          if (1<<chancewindow->UserPort->mp_SigBit)  ckchancemsg();
  808.          }
  809.       CloseWindow(chancewindow);           
  810.       doublerr=TRUE;
  811.       if  (playerat[nowrolling] == 7)
  812.          {
  813.      playerat[nowrolling]=15;
  814.      if  (nowrolling == 0)
  815.         {
  816.         REDX=rrp[0][0];
  817.         REDY=rrp[1][0];
  818.         }
  819.      if  (nowrolling == 1)
  820.         {
  821.         GREENX=rrp[0][1];
  822.         GREENY=rrp[1][1];
  823.         }
  824.      if  (nowrolling == 2)
  825.         {
  826.         BLUEX=rrp[0][2];
  827.         BLUEY=rrp[1][2];
  828.         }
  829.      if  (nowrolling == 3)
  830.         {
  831.         YELLOWX=rrp[0][3];
  832.         YELLOWY=rrp[1][3];
  833.         }      
  834.      WaitTOF();
  835.      DrawGels();
  836.          showpropinfo(15);
  837.      }
  838.       if  (playerat[nowrolling] == 22)
  839.          {
  840.      playerat[nowrolling]=25;
  841.      if  (nowrolling == 0)
  842.         {
  843.         REDX=rrb[0][0];
  844.         REDY=rrb[1][0];
  845.         }
  846.      if  (nowrolling == 1)
  847.         {
  848.         GREENX=rrb[0][1];
  849.         GREENY=rrb[1][1];
  850.         }
  851.      if  (nowrolling == 2)
  852.         {
  853.         BLUEX=rrb[0][2];
  854.         BLUEY=rrb[1][2];
  855.         }
  856.      if  (nowrolling == 3)
  857.         {
  858.         YELLOWX=rrb[0][3];
  859.         YELLOWY=rrb[1][3];
  860.         } 
  861.      WaitTOF();
  862.      DrawGels();    
  863.          showpropinfo(25);
  864.      }
  865.       if  (playerat[nowrolling] == 36)
  866.          {
  867.      passgo();
  868.          eft(BANK, nowrolling, 200);
  869.      playerat[nowrolling]=5;
  870.      if  (nowrolling == 0)
  871.         {
  872.         REDX=rrr[0][0];
  873.         REDY=rrr[1][0];
  874.         }
  875.      if  (nowrolling == 1)
  876.         {
  877.         GREENX=rrr[0][1];
  878.         GREENY=rrr[1][1];
  879.         }
  880.      if  (nowrolling == 2)
  881.         {
  882.         BLUEX=rrr[0][2];
  883.         BLUEY=rrr[1][2];
  884.         }
  885.      if  (nowrolling == 3)
  886.         {
  887.         YELLOWX=rrr[0][3];
  888.         YELLOWY=rrr[1][3];
  889.         }      
  890.      WaitTOF();
  891.      DrawGels();      
  892.          showpropinfo(5);
  893.      }    
  894.       return(0);
  895.       break;
  896.    case 5:
  897.       msg5.IText=(UBYTE *)"GO BACK";
  898.       msg6.IText=(UBYTE *)"THREE SPACES!";
  899.       PrintIText(rportchance, &msg5, 60, 0);
  900.       PrintIText(rportchance, &msg6, 36, 0);
  901.       
  902.       line0_text=0;   /*   will be > 147   CHANCE   */
  903.       for (j=0, hold_line=line0_text; j<SHOW_LINES; j++)
  904.          instructIT[j].IText=instructline[hold_line++];
  905.  
  906.       donechance=FALSE;
  907.       while (!donechance)
  908.          {
  909.          if (1<<chancewindow->UserPort->mp_SigBit)  ckchancemsg();
  910.          }
  911.       CloseWindow(chancewindow);
  912.       if  (playerat[nowrolling] == 7)
  913.          {
  914.      if  (nowrolling == 0)
  915.         {
  916.         REDX=itax[0][0];
  917.         REDY=itax[1][0];
  918.         }
  919.      if  (nowrolling == 1)
  920.         {
  921.         GREENX=itax[0][1];
  922.         GREENY=itax[1][1];
  923.         }
  924.      if  (nowrolling == 2)
  925.         {
  926.         BLUEX=itax[0][2];
  927.         BLUEY=itax[1][2];
  928.         }
  929.      if  (nowrolling == 3)
  930.         {
  931.         YELLOWX=itax[0][3];
  932.         YELLOWY=itax[1][3];
  933.         }      
  934.      WaitTOF();
  935.      DrawGels();
  936.          showpropinfo(4);
  937.      }
  938.       if  (playerat[nowrolling] == 22)
  939.          {
  940.      if  (nowrolling == 0)
  941.         {
  942.         REDX=ny[0][0];
  943.         REDY=ny[1][0];
  944.         }
  945.      if  (nowrolling == 1)
  946.         {
  947.         GREENX=ny[0][1];
  948.         GREENY=ny[1][1];
  949.         }
  950.      if  (nowrolling == 2)
  951.         {
  952.         BLUEX=ny[0][2];
  953.         BLUEY=ny[1][2];
  954.         }
  955.      if  (nowrolling == 3)
  956.         {
  957.         YELLOWX=ny[0][3];
  958.         YELLOWY=ny[1][3];
  959.         }      
  960.      WaitTOF();
  961.      DrawGels();
  962.          showpropinfo(19);
  963.      }
  964.       if  (playerat[nowrolling] == 36)
  965.          {
  966.      if  (nowrolling == 0)
  967.         {
  968.         REDX=cc3[0][0];
  969.         REDY=cc3[1][0];
  970.         }
  971.      if  (nowrolling == 1)
  972.         {
  973.         GREENX=cc3[0][1];
  974.         GREENY=cc3[1][1];
  975.         }
  976.      if  (nowrolling == 2)
  977.         {
  978.         BLUEX=cc3[0][2];
  979.         BLUEY=cc3[1][2];
  980.         }
  981.      if  (nowrolling == 3)
  982.         {
  983.         YELLOWX=cc3[0][3];
  984.         YELLOWY=cc3[1][3];
  985.         }      
  986.      WaitTOF();
  987.      DrawGels();
  988.          showpropinfo(33);
  989.      }
  990.       playerat[nowrolling]=playerat[nowrolling]-3;
  991.       return(0);
  992.       break;
  993.    case 6:
  994.       msg2.IText=(UBYTE *)"Advance token to";
  995.       msg3.IText=(UBYTE *)"the nearest UTILITY.";
  996.       msg5.IText=(UBYTE *)"If someone else";
  997.       msg6.IText=(UBYTE *)"owns it, roll the";
  998.       msg7.IText=(UBYTE *)"dice.  Pay ten";
  999.       msg8.IText=(UBYTE *)"times the total";
  1000.       msg9.IText=(UBYTE *)"of both dice.";
  1001.       msg5.FrontPen=red;
  1002.       msg6.FrontPen=red;
  1003.       msg7.FrontPen=red;
  1004.       msg8.FrontPen=red;
  1005.       msg9.FrontPen=red;
  1006.       PrintIText(rportchance, &msg2, 0, 0);
  1007.       PrintIText(rportchance, &msg3, 0, 0);      
  1008.       PrintIText(rportchance, &msg5, 0, 0);
  1009.       PrintIText(rportchance, &msg6, 0, 0);
  1010.       PrintIText(rportchance, &msg7, 0, 0);
  1011.       PrintIText(rportchance, &msg8, 0, 0);
  1012.       PrintIText(rportchance, &msg9, 0, 0);
  1013.       
  1014.       line0_text=0;   /*   will be > 147   CHANCE   */
  1015.       for (j=0, hold_line=line0_text; j<SHOW_LINES; j++)
  1016.          instructIT[j].IText=instructline[hold_line++];
  1017.  
  1018.       donechance=FALSE;
  1019.       while (!donechance)
  1020.          {
  1021.          if (1<<chancewindow->UserPort->mp_SigBit)  ckchancemsg();
  1022.          }
  1023.       CloseWindow(chancewindow);
  1024.       doubleutil=TRUE;
  1025.       if  (playerat[nowrolling] == 7)
  1026.          {
  1027.      playerat[nowrolling]=12;
  1028.      if  (nowrolling == 0)
  1029.         {
  1030.         REDX=eco[0][0];
  1031.         REDY=eco[1][0];
  1032.         }
  1033.      if  (nowrolling == 1)
  1034.         {
  1035.         GREENX=eco[0][1];
  1036.         GREENY=eco[1][1];
  1037.         }
  1038.      if  (nowrolling == 2)
  1039.         {
  1040.         BLUEX=eco[0][2];
  1041.         BLUEY=eco[1][2];
  1042.         }
  1043.      if  (nowrolling == 3)
  1044.         {
  1045.         YELLOWX=eco[0][3];
  1046.         YELLOWY=eco[1][3];
  1047.         }      
  1048.      WaitTOF();
  1049.      DrawGels();
  1050.          showpropinfo(12);
  1051.      }
  1052.       if  (playerat[nowrolling] == 22)
  1053.          {
  1054.      playerat[nowrolling]=28;
  1055.      if  (nowrolling == 0)
  1056.         {
  1057.         REDX=ww[0][0];
  1058.         REDY=ww[1][0];
  1059.         }
  1060.      if  (nowrolling == 1)
  1061.         {
  1062.         GREENX=ww[0][1];
  1063.         GREENY=ww[1][1];
  1064.         }
  1065.      if  (nowrolling == 2)
  1066.         {
  1067.         BLUEX=ww[0][2];
  1068.         BLUEY=ww[1][2];
  1069.         }
  1070.      if  (nowrolling == 3)
  1071.         {
  1072.         YELLOWX=ww[0][3];
  1073.         YELLOWY=ww[1][3];
  1074.         }      
  1075.      WaitTOF();
  1076.      DrawGels();
  1077.          showpropinfo(28);
  1078.      }
  1079.       if  (playerat[nowrolling] == 36)
  1080.          {
  1081.      playerat[nowrolling]=12;
  1082.      eft(BANK, nowrolling, 200);
  1083.      passgo();
  1084.      if  (nowrolling == 0)
  1085.         {
  1086.         REDX=eco[0][0];
  1087.         REDY=eco[1][0];
  1088.         }
  1089.      if  (nowrolling == 1)
  1090.         {
  1091.         GREENX=eco[0][1];
  1092.         GREENY=eco[1][1];
  1093.         }
  1094.      if  (nowrolling == 2)
  1095.         {
  1096.         BLUEX=eco[0][2];
  1097.         BLUEY=eco[1][2];
  1098.         }
  1099.      if  (nowrolling == 3)
  1100.         {
  1101.         YELLOWX=eco[0][3];
  1102.         YELLOWY=eco[1][3];
  1103.         }      
  1104.      WaitTOF();
  1105.      DrawGels();
  1106.          showpropinfo(12);
  1107.      }
  1108.       return(0);
  1109.       break;
  1110.    case 7:      
  1111.       msg3.IText=(UBYTE *)"MAKE REPAIRS!";
  1112.       msg4.IText=(UBYTE *)"PAY:";
  1113.       msg5.IText=(UBYTE *)"$25 per HOUSE";
  1114.       msg6.IText=(UBYTE *)"$100 per HOTEL";
  1115.       msg8.IText=(UBYTE *)"ASSESSMENT:";
  1116.       msg9.IText=(UBYTE *)"$";
  1117.       msg3.FrontPen=yellow;
  1118.       msg4.FrontPen=red;
  1119.       msg5.FrontPen=red;
  1120.       msg6.FrontPen=red;
  1121.       msg8.FrontPen=maroon;
  1122.       msg9.FrontPen=red;
  1123.       PrintIText(rportchance, &msg3, 36, 0);      
  1124.       PrintIText(rportchance, &msg4, 72, 0);
  1125.       PrintIText(rportchance, &msg5, 36, 0);
  1126.       PrintIText(rportchance, &msg6, 32, 0);
  1127.       PrintIText(rportchance, &msg8, 44, 0);
  1128.       PrintIText(rportchance, &msg9, 0, 0);
  1129.       numhouses=counthouses();
  1130.       numhotels=counthotels();
  1131.       money=(LONG)((numhouses*25)+(numhotels*100));
  1132.       eft(nowrolling, SLUSH, (USHORT)money);
  1133.       showint(money, 0);
  1134.       break;
  1135.    case 8:
  1136.       msg4.IText=(UBYTE *)"YOUR BUILDING AND";
  1137.       msg5.IText=(UBYTE *)"LOAN MATURES.";
  1138.       msg7.IText=(UBYTE *)"COLLECT $150.";
  1139.       msg4.FrontPen=lt_blue;
  1140.       msg5.FrontPen=lt_blue;
  1141.       msg7.FrontPen=green;
  1142.       PrintIText(rportchance, &msg4, 20, 0);
  1143.       PrintIText(rportchance, &msg5, 36, 0);      
  1144.       PrintIText(rportchance, &msg7, 36, 0);
  1145.       eft(BANK, nowrolling, 150);
  1146.       break;
  1147.    case 9:
  1148.       msg4.IText=(UBYTE *)"BANK PAYS YOU";
  1149.       msg5.IText=(UBYTE *)"DIVIDEND OF $50.";
  1150.       msg4.FrontPen=green;
  1151.       msg5.FrontPen=green;
  1152.       PrintIText(rportchance, &msg4, 36, 0);
  1153.       PrintIText(rportchance, &msg5, 24, 0);      
  1154.       eft(BANK, nowrolling, 50);
  1155.       break;      
  1156.    case 10:
  1157.       msg4.IText=(UBYTE *)"Take a ride";
  1158.       msg5.IText=(UBYTE *)"on the READING.";
  1159.       msg7.IText=(UBYTE *)"IF you pass GO";
  1160.       msg8.IText=(UBYTE *)"collect $200.";
  1161.       msg7.FrontPen=green;
  1162.       msg8.FrontPen=green;
  1163.       PrintIText(rportchance, &msg4, 0, 0);
  1164.       PrintIText(rportchance, &msg5, 0, 0);
  1165.       PrintIText(rportchance, &msg7, 0, 0);
  1166.       PrintIText(rportchance, &msg8, 0, 0);
  1167.       
  1168.       line0_text=0;   /*   will be > 147   CHANCE   */
  1169.       for (j=0, hold_line=line0_text; j<SHOW_LINES; j++)
  1170.           instructIT[j].IText=instructline[hold_line++];
  1171.  
  1172.       donechance=FALSE;
  1173.       while (!donechance)
  1174.          {
  1175.          if (1<<chancewindow->UserPort->mp_SigBit)  ckchancemsg();
  1176.          }
  1177.       CloseWindow(chancewindow);
  1178.       passgo();
  1179.       eft(BANK, nowrolling, 200);      
  1180.       playerat[nowrolling]=5;
  1181.       if (nowrolling == 0)
  1182.          {
  1183.      REDX=rrr[0][0];
  1184.      REDY=rrr[1][0];
  1185.      }
  1186.       if (nowrolling ==1)
  1187.          {
  1188.      GREENX=rrr[0][1];
  1189.      GREENY=rrr[1][1];
  1190.      }
  1191.       if (nowrolling == 2)
  1192.          {
  1193.      BLUEX=rrr[0][2];
  1194.      BLUEY=rrr[1][2];
  1195.      }
  1196.       if (nowrolling ==3)
  1197.          {
  1198.      YELLOWX=rrr[0][3];
  1199.      YELLOWY=rrr[1][3];
  1200.      }
  1201.       WaitTOF();
  1202.       DrawGels();
  1203.       showpropinfo(5);
  1204.       return(0);
  1205.       break;
  1206.    case 11:      
  1207.       msg5.IText=(UBYTE *)"Pay POOR TAX";
  1208.       msg6.IText=(UBYTE *)"of $15.";
  1209.       msg5.FrontPen=red;
  1210.       msg6.FrontPen=red;
  1211.       PrintIText(rportchance, &msg5, 0, 0);
  1212.       PrintIText(rportchance, &msg6, 0, 0);
  1213.       eft(nowrolling, SLUSH, 15);
  1214.       break;
  1215.    case 12:
  1216.       msg5.IText=(UBYTE *)"Take a walk on the";
  1217.       msg6.IText=(UBYTE *)"BOARD WALK.";
  1218.       msg6.FrontPen=dk_blue;
  1219.       PrintIText(rportchance, &msg5, 0, 0);
  1220.       PrintIText(rportchance, &msg6, 0, 0);
  1221.       
  1222.       line0_text=0;   /*   will be > 147   CHANCE   */
  1223.       for (j=0, hold_line=line0_text; j<SHOW_LINES; j++)
  1224.          instructIT[j].IText=instructline[hold_line++];
  1225.  
  1226.       donechance=FALSE;
  1227.       while (!donechance)
  1228.          {
  1229.          if (1<<chancewindow->UserPort->mp_SigBit)  ckchancemsg();
  1230.          }
  1231.       CloseWindow(chancewindow);
  1232.       playerat[nowrolling]=39;
  1233.       if (nowrolling == 0)
  1234.          {
  1235.      REDX=bw[0][0];
  1236.      REDY=bw[1][0];
  1237.      }
  1238.       if (nowrolling ==1)
  1239.          {
  1240.      GREENX=bw[0][1];
  1241.      GREENY=bw[1][1];
  1242.      }
  1243.       if (nowrolling == 2)
  1244.          {
  1245.      BLUEX=bw[0][2];
  1246.      BLUEY=bw[1][2];
  1247.      }
  1248.       if (nowrolling ==3)
  1249.          {
  1250.      YELLOWX=bw[0][3];
  1251.      YELLOWY=bw[1][3];
  1252.      }
  1253.       WaitTOF();
  1254.       DrawGels();
  1255.       showpropinfo(39);
  1256.       return(0);
  1257.       break;
  1258.    case 14:
  1259.       msg5.IText=(UBYTE *)"ADVANCE TO GO!";
  1260.       msg6.IText=(UBYTE *)"COLLECT $200!!";
  1261.       msg5.FrontPen=green;
  1262.       msg6.FrontPen=green;
  1263.       PrintIText(rportchance, &msg5, 32, 0);
  1264.       PrintIText(rportchance, &msg6, 32, 0);
  1265.       
  1266.       line0_text=0;   /*   will be > 147   CHANCE   */
  1267.       for (j=0, hold_line=line0_text; j<SHOW_LINES; j++)
  1268.           instructIT[j].IText=instructline[hold_line++];
  1269.  
  1270.       donechance=FALSE;
  1271.       while (!donechance)
  1272.          {
  1273.          if (1<<chancewindow->UserPort->mp_SigBit)  ckchancemsg();
  1274.          }
  1275.       CloseWindow(chancewindow);
  1276.       playerat[nowrolling]=0;
  1277.       if (nowrolling == 0)
  1278.          {
  1279.      REDX=go[0][0];
  1280.      REDY=go[1][0];
  1281.      }
  1282.       if (nowrolling ==1)
  1283.          {
  1284.      GREENX=go[0][1];
  1285.      GREENY=go[1][1];
  1286.      }
  1287.       if (nowrolling == 2)
  1288.          {
  1289.      BLUEX=go[0][2];
  1290.      BLUEY=go[1][2];
  1291.      }
  1292.       if (nowrolling ==3)
  1293.          {
  1294.      YELLOWX=go[0][3];
  1295.      YELLOWY=go[1][3];
  1296.      }
  1297.       WaitTOF();
  1298.       DrawGels();
  1299.       showpropinfo(0);
  1300.       return(0);
  1301.       break;
  1302.    case 15:
  1303.       msg4.IText=(UBYTE *)"Advance to";
  1304.       msg5.FrontPen=maroon;
  1305.       msg5.IText=(UBYTE *)"ST. CHARLES PLACE.";
  1306.       msg7.IText=(UBYTE *)"IF you pass GO";
  1307.       msg8.IText=(UBYTE *)"collect $200.";
  1308.       msg7.FrontPen=green;
  1309.       msg8.FrontPen=green;
  1310.       PrintIText(rportchance, &msg4, 0, 0);
  1311.       PrintIText(rportchance, &msg5, 0, 0);
  1312.       PrintIText(rportchance, &msg7, 0, 0);
  1313.       PrintIText(rportchance, &msg8, 0, 0);
  1314.       
  1315.       line0_text=0;   /*   will be > 147   CHANCE   */
  1316.       for (j=0, hold_line=line0_text; j<SHOW_LINES; j++)
  1317.          instructIT[j].IText=instructline[hold_line++];
  1318.  
  1319.       donechance=FALSE;
  1320.       while (!donechance)
  1321.          {
  1322.          if (1<<chancewindow->UserPort->mp_SigBit)  ckchancemsg();
  1323.          }
  1324.       CloseWindow(chancewindow);
  1325.       if (playerat[nowrolling] != 7)
  1326.          {
  1327.      eft(BANK, nowrolling, 200); 
  1328.      passgo();
  1329.      }     
  1330.       if  (nowrolling == 0)
  1331.          {
  1332.      REDX=stc[0][0];
  1333.      REDY=stc[1][0];     
  1334.      }
  1335.       if  (nowrolling == 1)
  1336.          {
  1337.      GREENX=stc[0][1];
  1338.      GREENY=stc[1][1];     
  1339.      }
  1340.       if  (nowrolling == 2)
  1341.          {
  1342.      BLUEX=stc[0][2];
  1343.      BLUEY=stc[1][2];     
  1344.      }
  1345.       if  (nowrolling == 3)
  1346.          {
  1347.      YELLOWX=stc[0][3];
  1348.      YELLOWY=stc[1][3];     
  1349.      }
  1350.       playerat[nowrolling]=11;
  1351.       WaitTOF();
  1352.       DrawGels();
  1353.       showpropinfo(11);
  1354.       return(0);
  1355.       break;
  1356.    } /*  end of switch  */
  1357.  
  1358. line0_text=0;   /*   will be > 147   CHANCE   */
  1359. for (j=0, hold_line=line0_text; j<SHOW_LINES; j++)
  1360.    instructIT[j].IText=instructline[hold_line++];
  1361.  
  1362. donechance=FALSE;
  1363. while (!donechance)
  1364.    {
  1365.    if (1<<chancewindow->UserPort->mp_SigBit)  ckchancemsg();
  1366.    }
  1367. CloseWindow(chancewindow);
  1368. return(0);
  1369.