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 / f17.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-01-06  |  15.2 KB  |  685 lines

  1. /*   f17.c contains:  offerbuy()   */
  2.  
  3. #include "mono:defines"
  4. #include "mono:xvariables"
  5.    
  6. VOID offerbuy()
  7. {
  8. ULONG obclass, cost;
  9. BOOL picked, donebuying;
  10. USHORT buyprop, buyer, seller, obcode, hold_line;
  11. struct IntuiText address, msg0, msg1, msg2, msg3, msg4, msg5, msg6,
  12.                  msg7, msg8, msg9, dollar, msg10, msgY, msgN, msgC;
  13. struct Gadget offerbgag;
  14. struct StringInfo offerbinfo;
  15. obclass=0;
  16. obcode=0;
  17. picked=FALSE;
  18.  
  19. address.BackPen=black;
  20. address.DrawMode=JAM1;
  21. address.TopEdge=0;
  22. address.LeftEdge=5;
  23. address.ITextFont=NULL;
  24. address.NextText=&msg0;
  25.  
  26. msg0.FrontPen=dk_maroon;
  27. msg0.BackPen=black;
  28. msg0.DrawMode=JAM1;
  29. msg0.TopEdge=10;
  30. msg0.LeftEdge=5;
  31. msg0.IText=(UBYTE *)"Use the MENU to";
  32. msg0.ITextFont=NULL;
  33. msg0.NextText=&msg1;
  34.  
  35. msg1.FrontPen=dk_maroon;
  36. msg1.BackPen=black;
  37. msg1.DrawMode=JAM1;
  38. msg1.TopEdge=20;
  39. msg1.LeftEdge=5;
  40. msg1.IText=(UBYTE *)"select the name of";
  41. msg1.ITextFont=NULL;
  42. msg1.NextText=&msg2;
  43.  
  44. msg2.FrontPen=dk_maroon;
  45. msg2.BackPen=black;
  46. msg2.DrawMode=JAM1;
  47. msg2.TopEdge=30;
  48. msg2.LeftEdge=5;
  49. msg2.IText=(UBYTE *)"the buyer, or select";
  50. msg2.ITextFont=NULL;
  51. msg2.NextText=&msg3;
  52.  
  53. msg3.FrontPen=dk_maroon;
  54. msg3.BackPen=black;
  55. msg3.DrawMode=JAM1;
  56. msg3.TopEdge=40;
  57. msg3.LeftEdge=5;
  58. msg3.IText=(UBYTE *)"CONTINUE to buy";
  59. msg3.ITextFont=NULL;
  60. msg3.NextText=&msg4;
  61.  
  62. msg4.FrontPen=dk_maroon;
  63. msg4.BackPen=black;
  64. msg4.DrawMode=JAM1;
  65. msg4.TopEdge=50;
  66. msg4.LeftEdge=5;
  67. msg4.IText=(UBYTE *)"nothing and return";
  68. msg4.ITextFont=NULL;
  69. msg4.NextText=&msg5;
  70.  
  71. msg5.FrontPen=dk_maroon;
  72. msg5.BackPen=black;
  73. msg5.DrawMode=JAM1;
  74. msg5.TopEdge=60;
  75. msg5.LeftEdge=5;
  76. msg5.IText=(UBYTE *)"to the game.";
  77. msg5.ITextFont=NULL;
  78. msg5.NextText=NULL;
  79.  
  80. msg6.FrontPen=dk_maroon;
  81. msg6.BackPen=black;
  82. msg6.DrawMode=JAM1;
  83. msg6.TopEdge=70;
  84. msg6.LeftEdge=5;
  85. msg6.ITextFont=NULL;
  86. msg6.NextText=NULL;
  87.  
  88. msg7.FrontPen=dk_maroon;
  89. msg7.BackPen=black;
  90. msg7.DrawMode=JAM1;
  91. msg7.TopEdge=80;
  92. msg7.LeftEdge=5;
  93. msg7.ITextFont=NULL;
  94. msg7.NextText=NULL;
  95.  
  96. msg8.FrontPen=dk_maroon;
  97. msg8.BackPen=black;
  98. msg8.DrawMode=JAM1;
  99. msg8.TopEdge=89;
  100. msg8.LeftEdge=5;
  101. msg8.ITextFont=NULL;
  102. msg8.NextText=NULL;
  103.  
  104. msg9.FrontPen=dk_maroon;
  105. msg9.BackPen=black;
  106. msg9.DrawMode=JAM1;
  107. msg9.TopEdge=98;
  108. msg9.LeftEdge=5;
  109. msg9.ITextFont=NULL;
  110. msg9.NextText=NULL;
  111.  
  112. dollar.FrontPen=red;
  113. dollar.BackPen=black;
  114. dollar.DrawMode=JAM2;
  115. dollar.TopEdge=109;
  116. dollar.LeftEdge=41;
  117. dollar.IText=(UBYTE *)"$";
  118. dollar.ITextFont=NULL;
  119. dollar.NextText=NULL;
  120.  
  121. msg10.IText=(UBYTE *)"Is this acceptable?";
  122. msg10.FrontPen=brite_green;
  123. msg10.BackPen=black;
  124. msg10.DrawMode=JAM1;
  125. msg10.TopEdge=110;
  126. msg10.LeftEdge=16;
  127. msg10.ITextFont=NULL;
  128. msg10.NextText=NULL;
  129.  
  130. msgY.IText=(UBYTE *)"YES";
  131. msgY.FrontPen=green;
  132. msgY.BackPen=black;
  133. msgY.DrawMode=JAM1;
  134. msgY.TopEdge=80;
  135. msgY.LeftEdge=133;
  136. msgY.ITextFont=NULL;
  137. msgY.NextText=NULL;
  138.  
  139. msgN.IText=(UBYTE *)"NO";
  140. msgN.FrontPen=red;
  141. msgN.BackPen=black;
  142. msgN.DrawMode=JAM1;
  143. msgN.TopEdge=89;
  144. msgN.LeftEdge=149;
  145. msgN.ITextFont=NULL;
  146. msgN.NextText=NULL;
  147.  
  148. msgC.IText=(UBYTE *)"CONTINUE";
  149. msgC.FrontPen=green;
  150. msgC.BackPen=black;
  151. msgC.DrawMode=JAM1;
  152. msgC.TopEdge=40;
  153. msgC.LeftEdge=5;
  154. msgC.ITextFont=NULL;
  155. msgC.NextText=NULL;
  156.  
  157. offerbgag.NextGadget=&yesgag;
  158. offerbgag.LeftEdge=50;
  159. offerbgag.TopEdge=109;
  160. offerbgag.Width=53;
  161. offerbgag.Height=10;
  162. offerbgag.Flags=GADGHNONE;
  163. offerbgag.Activation=LONGINT | GADGIMMEDIATE;
  164. offerbgag.GadgetType=STRGADGET;
  165. offerbgag.GadgetRender=(APTR)&bidborder;
  166. offerbgag.SelectRender=NULL;
  167. offerbgag.GadgetText=NULL;
  168. offerbgag.MutualExclude=NULL;
  169. offerbgag.SpecialInfo=(APTR)&offerbinfo;
  170. offerbgag.GadgetID=9;
  171. offerbgag.UserData=NULL;
  172.  
  173. offerbinfo.Buffer=nbufofferb;
  174. offerbinfo.UndoBuffer=undobufi;
  175. offerbinfo.MaxChars=6;
  176. offerbinfo.BufferPos=0;
  177. offerbinfo.DispPos=0;
  178. offerbinfo.LongInt=0;
  179.  
  180.  
  181.  
  182. nofferbw.Screen=screen1;
  183. nofferbw.IDCMPFlags=MENUPICK | GADGETUP | RAWKEY;
  184. nofferbw.FirstGadget=&continuegag;
  185. if ((offerbwindow=(struct Window *)OpenWindow(&nofferbw))==NULL) cleanup();
  186. rportofferb=offerbwindow->RPort;
  187. Menu13.MenuName=(UBYTE *)"BUYER'S NAME";
  188. SetMenuStrip(offerbwindow, &Menu13);
  189.  
  190. if (nsp == 2)
  191.    {
  192.    OnMenu(offerbwindow, 0);
  193.    OnMenu(offerbwindow, 32);
  194.    }
  195. if (nsp == 3)
  196.    {
  197.    OffMenu(offerbwindow, 0);
  198.    OffMenu(offerbwindow, 32);
  199.    OffMenu(offerbwindow, 64);
  200.    if (!notplaying[0])  OnMenu(offerbwindow, 0);
  201.    if (!notplaying[1])  OnMenu(offerbwindow, 32);
  202.    if (!notplaying[2])  OnMenu(offerbwindow, 64);
  203.    }
  204. if (nsp == 4)
  205.    {
  206.    OffMenu(offerbwindow, 0);
  207.    OffMenu(offerbwindow, 32);
  208.    OffMenu(offerbwindow, 64);
  209.    OffMenu(offerbwindow, 96);
  210.    if (!notplaying[0])  OnMenu(offerbwindow, 0);
  211.    if (!notplaying[1])  OnMenu(offerbwindow, 32);
  212.    if (!notplaying[2])  OnMenu(offerbwindow, 64);
  213.    if (!notplaying[3])  OnMenu(offerbwindow, 96);
  214.    }
  215.  
  216. msg3.NextText=&msgC;
  217. msgC.NextText=&msg4;
  218.  
  219. PrintIText(rportofferb, &msg0, 0, 30);
  220.  
  221. msg3.NextText=&msg4;
  222.  
  223. line0_text=109;
  224. for (j=0, hold_line=line0_text; j<SHOW_LINES; j++)
  225.    instructIT[j].IText=instructline[hold_line++];
  226.  
  227. donebuying=FALSE;
  228. while (!donebuying)
  229.    {
  230.    Wait(1<<offerbwindow->UserPort->mp_SigBit);
  231.  
  232.    while((offerbmsg=(struct IntuiMessage *)
  233.                          GetMsg(offerbwindow->UserPort))!=NULL)
  234.       {
  235.       obclass=offerbmsg->Class;
  236.       obcode=offerbmsg->Code;
  237.       if (obclass == GADGETUP)  getID(offerbmsg);
  238.       ReplyMsg(offerbmsg);
  239.       }
  240.    if ( (obclass == RAWKEY) && (obcode == HELP) ) instruction();
  241.    if (obclass == GADGETUP)
  242.       {
  243.       if (gagid == 0)  /*  CONTINUE  */
  244.          {
  245.          ClearMenuStrip(offerbwindow);
  246.      RemoveGadget(offerbwindow, &continuegag);
  247.          CloseWindow(offerbwindow);
  248.          return;
  249.      }
  250.       }
  251.    
  252.    if ( (obclass == MENUPICK) && (obcode != MENUNULL) )
  253.       {
  254.       buyer=(USHORT)ITEMNUM(obcode);
  255.       donebuying=TRUE;
  256.       }
  257.    }
  258. ClearMenuStrip(offerbwindow);
  259. RemoveGadget(offerbwindow, &continuegag);
  260. CloseWindow(offerbwindow);
  261. yesgag.TopEdge=130;
  262. nogag.TopEdge=130;
  263. yesgag.LeftEdge=145;
  264. nogag.LeftEdge=10;
  265.  
  266. if (buyer == 0)
  267.    {
  268.    address.IText=&name0[0];
  269.    address.FrontPen=25;
  270.    }
  271. if (buyer == 1)
  272.    {
  273.    address.FrontPen=26;
  274.    address.IText=&name1[0];
  275.    }
  276. if (buyer == 2)
  277.    {   
  278.    address.FrontPen=27;
  279.    address.IText=&name2[0];
  280.    }
  281. if (buyer == 3)
  282.    {
  283.    address.FrontPen=28;
  284.    address.IText=&name3[0];
  285.    }
  286. msg0.IText=(UBYTE *)"use the MENU to pick";
  287. msg1.IText=(UBYTE *)"an asset upon which";
  288. msg2.IText=(UBYTE *)"to make an offer.";
  289. msg3.IText=(UBYTE *)"Select, delete, and";
  290. msg4.IText=(UBYTE *)"change the dollar";
  291. msg5.IText=(UBYTE *)"GADGET to show the ";
  292. msg6.IText=(UBYTE *)"amount of your offer.";
  293. msg7.IText=(UBYTE *)"Finally, select YES to";
  294. msg8.IText=(UBYTE *)"make the offer or NO";
  295. msg9.IText=(UBYTE *)"to return to the game.";
  296.    
  297. msg5.NextText=&msg6;
  298. msg6.NextText=&msg7;
  299. msg7.NextText=&msg8;
  300. msg8.NextText=&msg9;
  301. msg9.NextText=&msgY;
  302. msgY.NextText=&msgN;
  303. msgN.NextText=$
  304.  
  305. nofferbw.FirstGadget=&offerbgag;   
  306. if ((offerbwindow=(struct Window *)OpenWindow(&nofferbw))==NULL) cleanup();
  307. rportofferb=offerbwindow->RPort;
  308. SetMenuStrip(offerbwindow, &Menu14);
  309. fixofferbmenu(buyer);
  310. PrintIText(rportofferb, &address, 0, 0);
  311.  
  312. donebuying=FALSE;
  313. while (!donebuying)
  314.    {
  315.    Wait(1<<offerbwindow->UserPort->mp_SigBit);
  316.  
  317.    while((offerbmsg=(struct IntuiMessage *)
  318.                          GetMsg(offerbwindow->UserPort))!=NULL)
  319.       {
  320.       obclass=offerbmsg->Class;
  321.       obcode=offerbmsg->Code;
  322.       if (obclass == GADGETUP)  getID(offerbmsg);
  323.       ReplyMsg(offerbmsg);
  324.       }
  325.    if ( (obclass == RAWKEY) && (obcode == HELP) ) instruction();
  326.    if (obclass == GADGETUP)
  327.       {
  328.       if (gagid == NO)
  329.          {
  330.          ClearMenuStrip(offerbwindow);
  331.      RemoveGadget(offerbwindow, &nogag);
  332.      RemoveGadget(offerbwindow, &yesgag);
  333.      RemoveGadget(offerbwindow, &offerbgag);
  334.          CloseWindow(offerbwindow);
  335.      yesgag.NextGadget=&nogag;
  336.          return;
  337.          }
  338.       if ( (gagid == YES) && picked)
  339.          {
  340.          ClearMenuStrip(offerbwindow);
  341.      RemoveGadget(offerbwindow, &nogag);
  342.      RemoveGadget(offerbwindow, &yesgag);
  343.      RemoveGadget(offerbwindow, &offerbgag);
  344.          CloseWindow(offerbwindow);
  345.      yesgag.NextGadget=&nogag;
  346.      donebuying=TRUE;
  347.      }
  348.       }
  349.    if ( (obclass == MENUPICK) && (obcode != MENUNULL) )
  350.       {
  351.       picked=TRUE;
  352.       if (ITEMNUM(obcode) == 0)
  353.          {
  354.          if (SUBNUM(obcode) == 0)  buyprop=1;
  355.          if (SUBNUM(obcode) == 1)  buyprop=3;
  356.          }
  357.       if (ITEMNUM(obcode) == 1)
  358.          {
  359.          if (SUBNUM(obcode) == 0)  buyprop=6;
  360.          if (SUBNUM(obcode) == 1)  buyprop=8;
  361.          if (SUBNUM(obcode) == 2)  buyprop=9;
  362.          }
  363.       if (ITEMNUM(obcode) == 2)
  364.          {
  365.          if (SUBNUM(obcode) == 0)  buyprop=11;
  366.          if (SUBNUM(obcode) == 1)  buyprop=13;
  367.          if (SUBNUM(obcode) == 2)  buyprop=14;
  368.          }
  369.       if (ITEMNUM(obcode) == 3)
  370.          {
  371.          if (SUBNUM(obcode) == 0)  buyprop=16;
  372.          if (SUBNUM(obcode) == 1)  buyprop=18;
  373.          if (SUBNUM(obcode) == 2)  buyprop=19;
  374.          }
  375.       if (ITEMNUM(obcode) == 4)
  376.          {
  377.          if (SUBNUM(obcode) == 0)  buyprop=21;
  378.          if (SUBNUM(obcode) == 1)  buyprop=23;
  379.          if (SUBNUM(obcode) == 2)  buyprop=24;
  380.          }
  381.       if (ITEMNUM(obcode) == 5)
  382.          {
  383.          if (SUBNUM(obcode) == 0)  buyprop=26;
  384.          if (SUBNUM(obcode) == 1)  buyprop=27;
  385.          if (SUBNUM(obcode) == 2)  buyprop=29;
  386.          }
  387.       if (ITEMNUM(obcode) == 6)
  388.          {
  389.          if (SUBNUM(obcode) == 0)  buyprop=31;
  390.          if (SUBNUM(obcode) == 1)  buyprop=32;
  391.          if (SUBNUM(obcode) == 2)  buyprop=34;
  392.          }
  393.       if (ITEMNUM(obcode) == 7)
  394.          {
  395.          if (SUBNUM(obcode) == 0)  buyprop=37;
  396.          if (SUBNUM(obcode) == 1)  buyprop=39;
  397.          }
  398.       if (ITEMNUM(obcode) == 8)
  399.          {
  400.          if (SUBNUM(obcode) == 0)  buyprop=5;
  401.          if (SUBNUM(obcode) == 1)  buyprop=15;
  402.          if (SUBNUM(obcode) == 2)  buyprop=25;
  403.          if (SUBNUM(obcode) == 3)  buyprop=35;
  404.          }
  405.       if (ITEMNUM(obcode) == 9)
  406.          {
  407.          if (SUBNUM(obcode) == 0)  buyprop=12;
  408.          if (SUBNUM(obcode) == 1)  buyprop=28;
  409.          }
  410.       if (ITEMNUM(obcode) == 10)
  411.          {
  412.      buyprop=99;
  413.          } 
  414.       }
  415.    }
  416.    
  417. if (buyprop == 99)
  418.    {
  419.    seller=buycard(buyer);
  420.    if (seller == 9)  return;
  421.    if (seller == 0)
  422.       {
  423.       msg0.IText=&name0[0];
  424.       msg0.FrontPen=25;
  425.       }
  426.    if (seller == 1)
  427.       {
  428.       msg0.FrontPen=26;
  429.       msg0.IText=&name1[0];
  430.       }
  431.    if (seller == 2)
  432.       {   
  433.       msg0.FrontPen=27;
  434.       msg0.IText=&name2[0];
  435.       }
  436.    if (seller == 3)
  437.       {
  438.       msg0.FrontPen=28;
  439.       msg0.IText=&name3[0];
  440.       }
  441.    }
  442. else
  443.    {
  444.    if (owner[buyprop] == 0)
  445.       {
  446.       msg0.IText=&name0[0];
  447.       msg0.FrontPen=25;
  448.       }
  449.    if (owner[buyprop] == 1)
  450.       {
  451.       msg0.FrontPen=26;
  452.       msg0.IText=&name1[0];
  453.       }
  454.    if (owner[buyprop] == 2)
  455.       {   
  456.       msg0.FrontPen=27;
  457.       msg0.IText=&name2[0];
  458.       }
  459.    if (owner[buyprop] == 3)
  460.       {
  461.       msg0.FrontPen=28;
  462.       msg0.IText=&name3[0];
  463.       }
  464.    }
  465. msg0.NextText=&msg1;
  466. msg2.NextText=&msg3;
  467. msg4.NextText=&msg5;
  468. msg5.NextText=&msg10;
  469. msg1.IText=(UBYTE *)"you have an offer of";
  470. msg1.NextText=$
  471. msg2.IText=&nbufofferb[0];
  472. msg2.FrontPen=green;
  473. msg2.LeftEdge=14;
  474. msg2.NextText=&msg3;
  475. dollar.FrontPen=green;
  476. dollar.NextText=&msg2;
  477. dollar.TopEdge=30;
  478. dollar.LeftEdge=5;
  479. msg3.IText=(UBYTE *)"from";
  480. msg3.NextText=&address;
  481. address.TopEdge=50;
  482. address.NextText=&msg4;
  483. msg4.IText=(UBYTE *)"for";
  484. msg4.TopEdge=60;
  485. msg5.TopEdge=70;
  486.  
  487. if (buyprop == 99)
  488.    {
  489.    msg4.IText=(UBYTE *)"for your";
  490.    msg5.IText=(UBYTE *)"GET-OUT-OF-JAIL-FREE";
  491.    msg6.IText=(UBYTE *)"card.";
  492.    msg5.FrontPen=chest_yellow;
  493.    msg5.NextText=&msg6;
  494.    msg6.NextText=&msg10;
  495.    msg6.TopEdge=80;
  496.    }
  497. if (buyprop == 1)
  498.    {
  499.    msg5.IText=(UBYTE *)"MEDITERRANEAN AVENUE";
  500.    msg5.FrontPen=purple;
  501.    }
  502. if (buyprop == 3)
  503.    {
  504.    msg5.IText=(UBYTE *)"BALTIC AVENUE";
  505.    msg5.FrontPen=purple;
  506.    }
  507. if (buyprop == 5)
  508.    {
  509.    msg5.IText=(UBYTE *)"READING RR";
  510.    msg5.FrontPen=flesh;
  511.    }
  512. if (buyprop == 6)
  513.    {
  514.    msg5.IText=(UBYTE *)"ORIENTAL AVENUE";
  515.    msg5.FrontPen=lt_blue;
  516.    }
  517. if (buyprop == 8)
  518.    {
  519.    msg5.IText=(UBYTE *)"VERMONT AVENUE";
  520.    msg5.FrontPen=lt_blue;
  521.    }
  522. if (buyprop == 9)
  523.    {
  524.    msg5.IText=(UBYTE *)"CONNECTICUT  AVENUE";
  525.    msg5.FrontPen=lt_blue;
  526.    }
  527.  
  528. if (buyprop == 11)
  529.    {
  530.    msg5.IText=(UBYTE *)"ST. CHARLES PLACE";
  531.    msg5.FrontPen=maroon;
  532.    }
  533. if (buyprop == 12)
  534.    {
  535.    msg5.IText=(UBYTE *)"ELECTRIC COMPANY";
  536.    msg5.FrontPen=yellow;
  537.    }
  538. if (buyprop == 13)
  539.    {
  540.    msg5.IText=(UBYTE *)"STATES  AVENUE";
  541.    msg5.FrontPen=maroon;
  542.    }
  543. if (buyprop == 14)
  544.    {
  545.    msg5.IText=(UBYTE *)"VIRGINIA AVENUE";
  546.    msg5.FrontPen=maroon;
  547.    }
  548. if (buyprop == 15)
  549.    {
  550.    msg5.IText=(UBYTE *)"PENNSYLVANIA RR";
  551.    msg5.FrontPen=flesh;
  552.    }
  553. if (buyprop == 16)
  554.    {
  555.    msg5.IText=(UBYTE *)"ST. JAMES PLACE";
  556.    msg5.FrontPen=orange;
  557.    }
  558. if (buyprop == 18)
  559.    {
  560.    msg5.IText=(UBYTE *)"TENNESSEE AVENUE";
  561.    msg5.FrontPen=orange;
  562.    }
  563. if (buyprop == 19)
  564.    {
  565.    msg5.IText=(UBYTE *)"NEW YORK AVENUE";
  566.    msg5.FrontPen=orange;
  567.    }
  568. if (buyprop == 21)
  569.    {
  570.    msg5.IText=(UBYTE *)"KENTUCKY AVENUE";
  571.    msg5.FrontPen=red;
  572.    }
  573. if (buyprop == 23)
  574.    {
  575.    msg5.IText=(UBYTE *)"INDIANA AVENUE";
  576.    msg5.FrontPen=red;
  577.    }
  578. if (buyprop == 24)
  579.    {
  580.    msg5.IText=(UBYTE *)"ILLINOIS AVENUE";
  581.    msg5.FrontPen=red;
  582.    }
  583. if (buyprop == 25)
  584.    {
  585.    msg5.IText=(UBYTE *)"B. & O. RR";
  586.    msg5.FrontPen=flesh;
  587.    }
  588. if (buyprop == 26)
  589.    {
  590.    msg5.IText=(UBYTE *)"ATLANTIC AVENUE";
  591.    msg5.FrontPen=yellow;
  592.    }
  593. if (buyprop == 27)
  594.    {
  595.    msg5.IText=(UBYTE *)"VENTNOR AVENUE";
  596.    msg5.FrontPen=yellow;
  597.    }
  598. if (buyprop == 28)
  599.    {
  600.    msg5.IText=(UBYTE *)"WATER WORKS";
  601.    msg5.FrontPen=royal_blue;
  602.    }
  603. if (buyprop == 29)
  604.    {
  605.    msg5.IText=(UBYTE *)"MARVIN GARDENS";
  606.    msg5.FrontPen=yellow;
  607.    }
  608. if (buyprop == 31)
  609.    {
  610.    msg5.IText=(UBYTE *)"PACIFIC AVENUE";
  611.    msg5.FrontPen=green;
  612.    }
  613. if (buyprop == 32)
  614.    {
  615.    msg5.IText=(UBYTE *)"NORTH CAROLINA AVENUE";
  616.    msg5.FrontPen=green;
  617.    }
  618. if (buyprop == 34)
  619.    {
  620.    msg5.IText=(UBYTE *)"PENNSYLVANIA AVENUE";
  621.    msg5.FrontPen=green;
  622.    }
  623. if (buyprop == 35)
  624.    {
  625.    msg5.IText=(UBYTE *)"SHORT LINE";
  626.    msg5.FrontPen=flesh;
  627.    }
  628. if (buyprop == 37)
  629.    {
  630.    msg5.IText=(UBYTE *)"PARK PLACE";
  631.    msg5.FrontPen=dk_blue;
  632.    }
  633. if (buyprop == 39)
  634.    {
  635.    msg5.IText=(UBYTE *)"BOARDWALK";
  636.    msg5.FrontPen=dk_blue;
  637.    }      
  638.          
  639. nofferbw.FirstGadget=&yesgag;
  640. nofferbw.IDCMPFlags=GADGETUP | RAWKEY;
  641. if ((offerbwindow=(struct Window *)OpenWindow(&nofferbw))==NULL)
  642.         cleanup();
  643. rportofferb=offerbwindow->RPort;
  644. PrintIText(rportofferb, &msg0, 0, 0);
  645.  
  646. donebuying=FALSE;
  647. while (!donebuying)
  648.    {
  649.    Wait(1<<offerbwindow->UserPort->mp_SigBit);
  650.  
  651.    while((offerbmsg=(struct IntuiMessage *)
  652.                          GetMsg(offerbwindow->UserPort))!=NULL)
  653.       {
  654.       obclass=offerbmsg->Class;
  655.       obcode=offerbmsg->Code;
  656.       if (obclass == GADGETUP)  getID(offerbmsg);
  657.       ReplyMsg(offerbmsg);
  658.       }
  659.    if ( (obclass == RAWKEY) && (obcode == HELP) ) instruction();
  660.    if (obclass == GADGETUP)
  661.       {
  662.       if (gagid == NO)  donebuying=TRUE;
  663.       if (gagid == YES)
  664.          {
  665.          donebuying=TRUE;
  666.          cost=offerbinfo.LongInt;
  667.          if (buyprop != 99)
  668.             transfertitle(buyer, owner[buyprop], buyprop, cost);
  669.          if (buyprop == 99)
  670.             {
  671.             eft(buyer, seller, cost);
  672.             freecard[seller]--;
  673.             freecard[buyer]++;
  674.             }
  675.          }
  676.       }   
  677.    }
  678. RemoveGadget(offerbwindow, &nogag);
  679. RemoveGadget(offerbwindow, &yesgag);
  680. CloseWindow(offerbwindow);
  681. yesgag.NextGadget=&nogag;
  682. return;
  683. }
  684.  
  685.