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

  1. /* f7.c contains these monopoly functions
  2.      ckmanemsg(),  getplayerinfo(),   dicecup()     */
  3.  
  4. #include "mono:defines"
  5. #include "mono:xvariables"
  6.  
  7.  
  8. ckmanemsg()
  9. {
  10. ULONG mclass;
  11. USHORT code, hold_line;
  12. mclass=0;
  13. code=0;
  14.  
  15.  
  16. if (ntp == 1)
  17.    {
  18.    done=TRUE;
  19.    return(0);
  20.    }
  21.  
  22. line0_text=0;
  23. if (isinjail[nowrolling])   line0_text=136;  
  24.  
  25. for (j=0, hold_line=line0_text; j<SHOW_LINES; j++)
  26.       instructIT[j].IText=instructline[hold_line++];
  27.  
  28. while(message=(struct IntuiMessage *)GetMsg(boardwindow->UserPort))
  29.    {
  30.    mclass = message->Class;
  31.    code   = message->Code;
  32.    mouseX = message->MouseX;
  33.    mouseY = message->MouseY;
  34.    ReplyMsg(message);
  35.  
  36.    if ( (mclass == MOUSEBUTTONS) && (code == SELECTDOWN) )
  37.       {
  38.       if ( (mouseX > 146) && (mouseX < 174) && 
  39.               (mouseY > 130) && (mouseY < 168) )   roll();
  40.       if ( (mouseX > 304) && (mouseX < 315) && 
  41.               (mouseY > 1) && (mouseY < 11) )  ScreenToBack(screen1); 
  42.       }
  43.    if ( (mclass == MENUPICK) && (code != MENUNULL) )
  44.          servicemenu(MENUNUM(code), ITEMNUM(code), SUBNUM(code));
  45.    if (mclass == RAWKEY)
  46.       {
  47.       if (code == 0x5f)   instruction();
  48.       else printf("code was %ld\n", code);
  49.       }
  50.    }
  51. return(0);
  52. }
  53.  
  54. VOID getplayerinfo()
  55. {
  56. USHORT hold_line;
  57.  
  58. intro0text.FrontPen=dk_blue;
  59. intro0text.BackPen=0;
  60. intro0text.DrawMode=JAM1;
  61. intro0text.LeftEdge=56;
  62. intro0text.TopEdge=15;
  63. intro0text.ITextFont=NULL;
  64. intro0text.IText=(UBYTE *)"PARKER BROTHER'S";
  65. intro0text.NextText=&intro0atext;
  66.  
  67. intro0atext.FrontPen=red;
  68. intro0atext.BackPen=0;
  69. intro0atext.DrawMode=JAM1;
  70. intro0atext.LeftEdge=200;
  71. intro0atext.TopEdge=15;
  72. intro0atext.ITextFont=NULL;
  73. intro0atext.IText=(UBYTE *)"MONOPOLY";
  74. intro0atext.NextText=&intro1text;
  75.  
  76. intro1text.FrontPen=29;
  77. intro1text.BackPen=0;
  78. intro1text.DrawMode=JAM1;
  79. intro1text.LeftEdge=60;
  80. intro1text.TopEdge=27;
  81. intro1text.ITextFont=NULL;
  82. intro1text.IText=(UBYTE *)"a game for 2 to 4 players";
  83. intro1text.NextText=&intro2text;
  84.  
  85. intro2text.FrontPen=brite_green;
  86. intro2text.BackPen=0;
  87. intro2text.DrawMode=JAM1;
  88. intro2text.LeftEdge=25;
  89. intro2text.TopEdge=56;
  90. intro2text.ITextFont=NULL;
  91. intro2text.IText=(UBYTE *)"Use the <HELP> key for directions.";
  92. intro2text.NextText=&intro3text;
  93.  
  94. intro3text.FrontPen=royal_blue;
  95. intro3text.BackPen=0;
  96. intro3text.DrawMode=JAM1;
  97. intro3text.LeftEdge=28;
  98. intro3text.TopEdge=80;
  99. intro3text.ITextFont=NULL;
  100. intro3text.NextText=&intro4text;
  101. intro3text.IText=(UBYTE *)"Select the number gadget; delete,"; 
  102.  
  103. intro4text.FrontPen=royal_blue;
  104. intro4text.BackPen=0;
  105. intro4text.DrawMode=JAM1;
  106. intro4text.LeftEdge=28;
  107. intro4text.TopEdge=92;
  108. intro4text.ITextFont=NULL;
  109. intro4text.NextText=NULL;
  110. intro4text.IText=(UBYTE *)"then enter the number of players.";
  111.  
  112. name0text.FrontPen=lt_blue;
  113. name0text.BackPen=0;
  114. name0text.DrawMode=JAM1;
  115. name0text.LeftEdge=22;
  116. name0text.TopEdge=60;
  117. name0text.ITextFont=NULL;
  118. name0text.IText=&name0[0];
  119. name0text.NextText=NULL;
  120.  
  121. name1text.FrontPen=purple;
  122. name1text.BackPen=0;
  123. name1text.DrawMode=JAM1;
  124. name1text.LeftEdge=22;
  125. name1text.TopEdge=75;
  126. name1text.ITextFont=NULL;
  127. name1text.IText=&name1[0];
  128. name1text.NextText=NULL;
  129.  
  130. name2text.FrontPen=yellow;
  131. name2text.BackPen=0;
  132. name2text.DrawMode=JAM1;
  133. name2text.LeftEdge=22;
  134. name2text.TopEdge=90;
  135. name2text.ITextFont=NULL;
  136. name2text.IText=&name2[0];
  137. name2text.NextText=NULL;
  138.  
  139. name3text.FrontPen=dk_blue;
  140. name3text.BackPen=0;
  141. name3text.DrawMode=JAM1;
  142. name3text.LeftEdge=22;
  143. name3text.TopEdge=105;
  144. name3text.ITextFont=NULL;
  145. name3text.IText=&name3[0];
  146. name3text.NextText=NULL; 
  147.  
  148.  
  149. verifyn0text.FrontPen=30;
  150. verifyn0text.BackPen=0;
  151. verifyn0text.DrawMode=JAM1;
  152. verifyn0text.LeftEdge=64;
  153. verifyn0text.TopEdge=30;
  154. verifyn0text.ITextFont=NULL;
  155. verifyn0text.IText=(UBYTE *)"THESE ARE THE NAMES THAT";
  156. verifyn0text.NextText=&verifyn1text;
  157.  
  158. verifyn1text.FrontPen=30;
  159. verifyn1text.BackPen=0;
  160. verifyn1text.DrawMode=JAM1;
  161. verifyn1text.LeftEdge=72;
  162. verifyn1text.TopEdge=40;
  163. verifyn1text.ITextFont=NULL;
  164. verifyn1text.IText=(UBYTE *)"REPRESENT THE PLAYERS:";
  165. verifyn1text.NextText=NULL;
  166.  
  167. verifyngagtext.FrontPen=green;
  168. verifyngagtext.BackPen=0;
  169. verifyngagtext.DrawMode=JAM1;
  170. verifyngagtext.LeftEdge=0;
  171. verifyngagtext.TopEdge=1;
  172. verifyngagtext.ITextFont=NULL;
  173. verifyngagtext.IText=(UBYTE *)"SATISFIED WITH NAMES";
  174. verifyngagtext.NextText=NULL;
  175.  
  176. denyngagtext.FrontPen=red;
  177. denyngagtext.BackPen=0;
  178. denyngagtext.DrawMode=JAM1;
  179. denyngagtext.LeftEdge=0;
  180. denyngagtext.TopEdge=1;
  181. denyngagtext.ITextFont=NULL;
  182. denyngagtext.IText=(UBYTE *)"CHANGE NAMES";
  183. denyngagtext.NextText=NULL;
  184.  
  185. xnamegagtext.FrontPen=green;
  186. xnamegagtext.BackPen=0;
  187. xnamegagtext.DrawMode=JAM1;
  188. xnamegagtext.LeftEdge=0;
  189. xnamegagtext.TopEdge=1;
  190. xnamegagtext.ITextFont=NULL;
  191. xnamegagtext.IText=(UBYTE *)"SATISFIED WITH NAMES";
  192. xnamegagtext.NextText=NULL;
  193.  
  194. xname0text.FrontPen=1;
  195. xname0text.BackPen=0;
  196. xname0text.DrawMode=JAM1;
  197. xname0text.LeftEdge=32;
  198. xname0text.TopEdge=11;
  199. xname0text.ITextFont=NULL;
  200. xname0text.IText=(UBYTE *)"Please enter each player's name.";
  201. xname0text.NextText=&xname1text;
  202.  
  203. xname1text.FrontPen=1;
  204. xname1text.BackPen=0;
  205. xname1text.DrawMode=JAM1;
  206. xname1text.LeftEdge=40;
  207. xname1text.TopEdge=21;
  208. xname1text.ITextFont=NULL;
  209. xname1text.IText=(UBYTE *)"First, select a name-gadget by";
  210. xname1text.NextText=&xname2text;
  211.  
  212. xname2text.FrontPen=1;
  213. xname2text.BackPen=0;
  214. xname2text.DrawMode=JAM1;
  215. xname2text.LeftEdge=36;
  216. xname2text.TopEdge=31;
  217. xname2text.ITextFont=NULL;
  218. xname2text.IText=(UBYTE *)"clicking within it.  Next, hit:";
  219. xname2text.NextText=&xname3text;
  220.  
  221. xname3text.FrontPen=29;
  222. xname3text.BackPen=0;
  223. xname3text.DrawMode=JAM1;
  224. xname3text.LeftEdge=5;
  225. xname3text.TopEdge=41;
  226. xname3text.ITextFont=NULL;
  227. xname3text.IText=(UBYTE *)"<right-Amiga>+<x>, <DEL>";
  228. xname3text.NextText=&xname3atext;
  229.  
  230. xname3atext.FrontPen=1;
  231. xname3atext.BackPen=5;
  232. xname3atext.DrawMode=JAM1;
  233. xname3atext.LeftEdge=203;
  234. xname3atext.TopEdge=41;
  235. xname3atext.ITextFont=NULL;
  236. xname3atext.IText=(UBYTE *)"or";
  237. xname3atext.NextText=&xname3btext;
  238.  
  239. xname3btext.FrontPen=29;
  240. xname3btext.BackPen=5;
  241. xname3btext.DrawMode=JAM1;
  242. xname3btext.LeftEdge=225; 
  243. xname3btext.TopEdge=41; 
  244. xname3btext.ITextFont=NULL;
  245. xname3btext.IText=(UBYTE *)"<BACKSPACE>";
  246. xname3btext.NextText=&xname4text;
  247.  
  248. xname4text.FrontPen=1;
  249. xname4text.BackPen=0;
  250. xname4text.DrawMode=JAM1;
  251. xname4text.LeftEdge=80;
  252. xname4text.TopEdge=51;
  253. xname4text.ITextFont=NULL;
  254. xname4text.IText=(UBYTE *)"to clear the gadget.";
  255. xname4text.NextText=&xname5text;
  256.  
  257. xname5text.FrontPen=17;
  258. xname5text.BackPen=0;
  259. xname5text.DrawMode=JAM1;
  260. xname5text.LeftEdge=64;
  261. xname5text.TopEdge=66;
  262. xname5text.ITextFont=NULL;
  263. xname5text.IText=(UBYTE *)"Finally, enter your name!";
  264. xname5text.NextText=NULL;
  265.  
  266. nhptext.FrontPen=lt_blue;
  267. nhptext.BackPen=0;
  268. nhptext.DrawMode=JAM1;
  269. nhptext.LeftEdge=-74;
  270. nhptext.TopEdge=-12;
  271. nhptext.ITextFont=NULL;
  272. nhptext.IText=(UBYTE *)"How many human players?";
  273. nhptext.NextText=NULL;
  274.  
  275. /*  first gadget in first openinfo window   */
  276. /*   nhpgag.NextGadget=&ncpgag;   */
  277. nhpgag.NextGadget=&xnumgag;
  278. nhpgag.LeftEdge=142;
  279. /*   nhpgag.TopEdge=90;   */
  280. nhpgag.TopEdge=120;
  281. nhpgag.Width=24;
  282. nhpgag.Height=10;
  283. nhpgag.Flags=GADGHNONE;
  284. nhpgag.Activation=STRINGCENTER | LONGINT | GADGIMMEDIATE;
  285. nhpgag.GadgetType=STRGADGET;
  286. nhpgag.GadgetRender=(APTR)&nhpborder;
  287. nhpgag.SelectRender=NULL;
  288. nhpgag.GadgetText=&nhptext;
  289. nhpgag.MutualExclude=NULL;
  290. nhpgag.SpecialInfo=(APTR)&nhpinfo;
  291. nhpgag.GadgetID=0;
  292. nhpgag.UserData=NULL;
  293.  
  294.  
  295. nhpinfo.Buffer=nbufnhp;
  296. nhpinfo.UndoBuffer=undobufi;
  297. nhpinfo.MaxChars=2;
  298. nhpinfo.BufferPos=0;
  299. nhpinfo.DispPos=0;
  300. nhpinfo.LongInt=0;
  301.  
  302. ncptext.FrontPen=1;
  303. ncptext.BackPen=0;
  304. ncptext.DrawMode=JAM1;
  305. ncptext.LeftEdge=-89;
  306. ncptext.TopEdge=-12;
  307. ncptext.ITextFont=NULL;
  308. ncptext.IText=(UBYTE *)"How many computer players?";
  309. ncptext.NextText=NULL;
  310.  
  311. /*  define gadget structure for string gadget  */
  312. ncpgag.NextGadget=&xnumgag;
  313. ncpgag.LeftEdge=143;
  314. ncpgag.TopEdge=135;
  315. ncpgag.Width=24;
  316. ncpgag.Height=10;
  317. ncpgag.Flags=GADGHNONE;
  318. ncpgag.Activation=STRINGCENTER | LONGINT | GADGIMMEDIATE;
  319. ncpgag.GadgetType=STRGADGET;
  320. ncpgag.GadgetRender=(APTR)&ncpborder;
  321. ncpgag.SelectRender=NULL;
  322. ncpgag.GadgetText=&ncptext;
  323. ncpgag.MutualExclude=NULL;
  324. ncpgag.SpecialInfo=(APTR)&ncpinfo;
  325. ncpgag.GadgetID=1;
  326. ncpgag.UserData=NULL;
  327.  
  328.  
  329. ncpinfo.Buffer=nbufncp;
  330. ncpinfo.UndoBuffer=undobufi;
  331. ncpinfo.MaxChars=2;
  332. ncpinfo.BufferPos=0;
  333. ncpinfo.DispPos=0;
  334. ncpinfo.LongInt=0;
  335.  
  336. xnumtext.FrontPen=green;
  337. xnumtext.BackPen=0;
  338. xnumtext.DrawMode=JAM1;
  339. xnumtext.LeftEdge=0;
  340. xnumtext.TopEdge=1;
  341. xnumtext.ITextFont=NULL;
  342. xnumtext.IText=(UBYTE *)"CONTINUE";
  343. xnumtext.NextText=NULL;
  344.  
  345. /*  define gadget structure for boolean gadget  */
  346. xnumgag.NextGadget=NULL;
  347. xnumgag.LeftEdge=124;
  348. xnumgag.TopEdge=170;
  349. xnumgag.Width=64;
  350. xnumgag.Height=10;
  351. xnumgag.Flags=GADGHCOMP;
  352. xnumgag.Activation=GADGIMMEDIATE;
  353. xnumgag.GadgetType=BOOLGADGET;
  354. xnumgag.GadgetRender=(APTR)&xnborder;
  355. xnumgag.SelectRender=NULL;
  356. xnumgag.GadgetText=&xnumtext;
  357. xnumgag.MutualExclude=NULL;
  358. xnumgag.SpecialInfo=NULL;
  359. xnumgag.GadgetID=2;
  360. xnumgag.UserData=NULL;
  361.  
  362. /*  define first gadget for second page openinfo  */
  363. name0gag.LeftEdge=10;
  364. name0gag.TopEdge=92;
  365. name0gag.Width=300;
  366. name0gag.Height=10;
  367. name0gag.Flags=GADGHNONE;
  368. name0gag.Activation=STRINGCENTER | GADGIMMEDIATE;
  369. name0gag.GadgetType=STRGADGET;
  370. name0gag.GadgetRender=(APTR)&name0border;
  371. name0gag.SelectRender=NULL;
  372. name0gag.GadgetText=NULL;
  373. name0gag.MutualExclude=NULL;
  374. name0gag.SpecialInfo=(APTR)&n0info;
  375. name0gag.GadgetID=3;
  376. name0gag.UserData=NULL;
  377.  
  378. n0info.Buffer=name0;
  379. n0info.UndoBuffer=nameundobuf;
  380. n0info.MaxChars=35;
  381. n0info.BufferPos=0;
  382. n0info.DispPos=0;
  383. n0info.LongInt=0;
  384.  
  385. /*  define gadget structure for string gadget  */
  386. name1gag.LeftEdge=10;
  387. name1gag.TopEdge=113;
  388. name1gag.Width=300;
  389. name1gag.Height=10;
  390. name1gag.Flags=GADGHNONE;
  391. name1gag.Activation=STRINGCENTER | GADGIMMEDIATE;
  392. name1gag.GadgetType=STRGADGET;
  393. name1gag.GadgetRender=(APTR)&name1border;
  394. name1gag.SelectRender=NULL;
  395. name1gag.GadgetText=NULL;
  396. name1gag.MutualExclude=NULL;
  397. name1gag.SpecialInfo=(APTR)&n1info;
  398. name1gag.GadgetID=4;
  399. name1gag.UserData=NULL;
  400.  
  401. n1info.Buffer=name1;
  402. n1info.UndoBuffer=nameundobuf;
  403. n1info.MaxChars=35;
  404. n1info.BufferPos=0;
  405. n1info.DispPos=0;
  406. n1info.LongInt=0;
  407.  
  408. /*  define gadget structure for string gadget  */
  409. name2gag.LeftEdge=10;
  410. name2gag.TopEdge=134;
  411. name2gag.Width=300;
  412. name2gag.Height=10;
  413. name2gag.Flags=GADGHNONE;
  414. name2gag.Activation=STRINGCENTER | GADGIMMEDIATE;
  415. name2gag.GadgetType=STRGADGET;
  416. name2gag.GadgetRender=(APTR)&name2border;
  417. name2gag.SelectRender=NULL;
  418. name2gag.GadgetText=NULL;
  419. name2gag.MutualExclude=NULL;
  420. name2gag.SpecialInfo=(APTR)&n2info;
  421. name2gag.GadgetID=5;
  422. name2gag.UserData=NULL;
  423.  
  424. n2info.Buffer=name2;
  425. n2info.UndoBuffer=nameundobuf;
  426. n2info.MaxChars=35;
  427. n2info.BufferPos=0;
  428. n2info.DispPos=0;
  429. n2info.LongInt=0;
  430.  
  431. /*  define gadget structure for string gadget  */
  432. name3gag.LeftEdge=10;
  433. name3gag.TopEdge=155;
  434. name3gag.Width=300;
  435. name3gag.Height=10;
  436. name3gag.Flags=GADGHNONE;
  437. name3gag.Activation=STRINGCENTER | GADGIMMEDIATE;
  438. name3gag.GadgetType=STRGADGET;
  439. name3gag.GadgetRender=(APTR)&name3border;
  440. name3gag.SelectRender=NULL;
  441. name3gag.GadgetText=NULL;
  442. name3gag.MutualExclude=NULL;
  443. name3gag.SpecialInfo=(APTR)&n3info;
  444. name3gag.GadgetID=6;
  445. name3gag.UserData=NULL;
  446.  
  447. n3info.Buffer=name3;
  448. n3info.UndoBuffer=nameundobuf;
  449. n3info.MaxChars=35;
  450. n3info.BufferPos=0;
  451. n3info.DispPos=0;
  452. n3info.LongInt=0;
  453.  
  454. /*  define gadget structure for boolean gadget  */
  455. xnamegag.NextGadget=NULL;
  456. xnamegag.LeftEdge=80;
  457. xnamegag.TopEdge=170;
  458. xnamegag.Width=160;
  459. xnamegag.Height=10;
  460. xnamegag.Flags=GADGHCOMP;
  461. xnamegag.Activation=GADGIMMEDIATE;
  462. xnamegag.GadgetType=BOOLGADGET;
  463. xnamegag.GadgetRender=(APTR)&xnameborder;
  464. xnamegag.SelectRender=NULL;
  465. xnamegag.GadgetText=&xnamegagtext;
  466. xnamegag.MutualExclude=NULL;
  467. xnamegag.SpecialInfo=NULL;
  468. xnamegag.GadgetID=7;
  469. xnamegag.UserData=NULL;
  470.  
  471. /*  define boolean gadget for verify names   */
  472. verifyngag.NextGadget=&denyngag;
  473. verifyngag.LeftEdge=140;
  474. verifyngag.TopEdge=170;
  475. verifyngag.Width=160;
  476. verifyngag.Height=10;
  477. verifyngag.Flags=GADGHCOMP;
  478. verifyngag.Activation=GADGIMMEDIATE;
  479. verifyngag.GadgetType=BOOLGADGET;
  480. verifyngag.GadgetRender=(APTR)&verifynborder;
  481. verifyngag.SelectRender=NULL;
  482. verifyngag.GadgetText=&verifyngagtext;
  483. verifyngag.MutualExclude=NULL;
  484. verifyngag.SpecialInfo=NULL;
  485. verifyngag.GadgetID=8;
  486. verifyngag.UserData=NULL;
  487.  
  488. /*  define gadget structure for boolean gadget  */
  489. denyngag.NextGadget=NULL;
  490. denyngag.LeftEdge=20;
  491. denyngag.TopEdge=170;
  492. denyngag.Width=96;
  493. denyngag.Height=10;
  494. denyngag.Flags=GADGHCOMP;
  495. denyngag.Activation=GADGIMMEDIATE;
  496. denyngag.GadgetType=BOOLGADGET;
  497. denyngag.GadgetRender=(APTR)&denynborder;
  498. denyngag.SelectRender=NULL;
  499. denyngag.GadgetText=&denyngagtext;
  500. denyngag.MutualExclude=NULL;
  501. denyngag.SpecialInfo=NULL;
  502. denyngag.GadgetID=9;
  503. denyngag.UserData=NULL;
  504.  
  505.  
  506. ninfow.Screen=screen1;
  507. ninfow.FirstGadget=&nhpgag;
  508. if ((infowindow=(struct Window *)OpenWindow(&ninfow))==NULL)  cleanup();
  509. rportinfo=infowindow->RPort;
  510. PrintIText(rportinfo, &intro0text, 0, 0);
  511.  
  512. line0_text=0;   /*   will be > 147  get # human players   */
  513. for (j=0, hold_line=line0_text; j<SHOW_LINES; j++)
  514.    instructIT[j].IText=instructline[hold_line++];
  515.  
  516. endnum=FALSE;
  517. while (!endnum)
  518.    {
  519.    if (1<<infowindow->UserPort->mp_SigBit)  ckinfomsg();
  520.    } 
  521. CloseWindow(infowindow);
  522. ntp=nhp+ncp;
  523. if (nhp=1)
  524.    {
  525.    if (ncp=1)
  526.       {
  527.       typeplayer0=HUMAN;
  528.       typeplayer1=COMPUTER;
  529.       typeplayer2=DEAD;
  530.       typeplayer3=DEAD;
  531.       }
  532.    if (ncp=2)
  533.       {
  534.       typeplayer0=HUMAN;
  535.       typeplayer1=COMPUTER;
  536.       typeplayer2=COMPUTER;
  537.       typeplayer3=DEAD;
  538.       }
  539.    if (ncp=3)
  540.       {
  541.       typeplayer0=HUMAN;
  542.       typeplayer1=COMPUTER;
  543.       typeplayer2=COMPUTER;
  544.       typeplayer3=COMPUTER;
  545.       }
  546.    }
  547. if (nhp == 2)
  548.    {
  549.    if (ncp=1)
  550.       {
  551.       typeplayer0=HUMAN;
  552.       typeplayer1=HUMAN;
  553.       typeplayer2=COMPUTER;
  554.       typeplayer3=DEAD;
  555.       }
  556.    if (ncp=2)
  557.       {
  558.       typeplayer0=HUMAN;
  559.       typeplayer1=HUMAN;
  560.       typeplayer2=COMPUTER;
  561.       typeplayer3=COMPUTER;
  562.       }
  563.    if (ncp=0)
  564.       {
  565.       typeplayer0=HUMAN;
  566.       typeplayer1=HUMAN;
  567.       typeplayer2=DEAD;
  568.       typeplayer3=DEAD;
  569.       }
  570.    }
  571. if (nhp == 3)
  572.    {
  573.    if (ncp=1)
  574.       {
  575.       typeplayer0=HUMAN;
  576.       typeplayer1=HUMAN;
  577.       typeplayer2=HUMAN;
  578.       typeplayer3=COMPUTER;
  579.       }
  580.    if (ncp=0)
  581.       {
  582.       typeplayer0=HUMAN;
  583.       typeplayer1=HUMAN;
  584.       typeplayer2=HUMAN;
  585.       typeplayer3=DEAD;
  586.       }
  587.    }
  588. if (nhp=4)
  589.    {
  590.    typeplayer0=HUMAN;
  591.    typeplayer1=HUMAN;
  592.    typeplayer2=HUMAN;
  593.    typeplayer3=HUMAN;
  594.    }
  595. if (typeplayer2 == DEAD)  notplaying[2]=TRUE;
  596. if (typeplayer3 == DEAD)  notplaying[3]=TRUE;
  597. getnames:
  598. if (ntp == 4)
  599.    {
  600.    ninfow.FirstGadget=&name0gag;
  601.    name0gag.NextGadget=&name1gag;
  602.    name1gag.NextGadget=&name2gag;
  603.    name2gag.NextGadget=&name3gag;
  604.    name3gag.NextGadget=&xnamegag;
  605.    name0text.NextText=&name1text;
  606.    name1text.NextText=&name2text;
  607.    name2text.NextText=&name3text;
  608.    }
  609. if (ntp == 3)
  610.    {
  611.    ninfow.FirstGadget=&name0gag;
  612.    name0gag.NextGadget=&name1gag;
  613.    name1gag.NextGadget=&name2gag;
  614.    name2gag.NextGadget=&xnamegag;
  615.    name0text.NextText=&name1text;
  616.    name1text.NextText=&name2text;
  617.    }
  618. if (ntp == 2)
  619.    {
  620.    ninfow.FirstGadget=&name0gag;
  621.    name0gag.NextGadget=&name1gag;
  622.    name1gag.NextGadget=&xnamegag;
  623.    name0text.NextText=&name1text;
  624.    }
  625. if ((infowindow=(struct Window *)OpenWindow(&ninfow))==NULL)  cleanup();
  626. rportinfo=infowindow->RPort;
  627. PrintIText(rportinfo, &xname0text, 0, 0);
  628.  
  629. line0_text=0;   /*   will be > 147   */
  630. for (j=0, hold_line=line0_text; j<SHOW_LINES; j++)
  631.    instructIT[j].IText=instructline[hold_line++];
  632.  
  633. endname=FALSE;
  634. while (!endname)
  635.    {
  636.    if (1<<infowindow->UserPort->mp_SigBit)  ckinfomsg();
  637.    }
  638. CloseWindow(infowindow);
  639.  
  640. ninfow.FirstGadget=&verifyngag;
  641. if ((infowindow=(struct Window *)OpenWindow(&ninfow))==NULL)  cleanup();
  642. rportinfo=infowindow->RPort;
  643. PrintIText(rportinfo, &verifyn0text, 0, 0);
  644. PrintIText(rportinfo, &name0text, 0, 0);
  645.  
  646. line0_text=0;   /*   will be > 147   */
  647. for (j=0, hold_line=line0_text; j<SHOW_LINES; j++)
  648.    instructIT[j].IText=instructline[hold_line++];
  649.  
  650. nameagain=FALSE;
  651. verifyname=FALSE;
  652. while (!verifyname)
  653.    {
  654.    if (1<<infowindow->UserPort->mp_SigBit)  ckinfomsg();
  655.    }
  656. CloseWindow(infowindow);
  657. if (nameagain == TRUE)  goto getnames;
  658.  
  659. }          /*  end of getplayerinfo()    */
  660.  
  661. VOID dicecup(hide)
  662. BOOL hide;
  663. {
  664. USHORT iter;
  665.  
  666. if (hide)   SetAPen(rportboard, tan);
  667. if (!hide)   SetAPen(rportboard, white);
  668. WritePixel(rportboard, 154, 155);
  669. WritePixel(rportboard, 154, 156);
  670. WritePixel(rportboard, 154, 157);
  671. WritePixel(rportboard, 155, 154);
  672. WritePixel(rportboard, 155, 155);
  673. WritePixel(rportboard, 155, 156);
  674. WritePixel(rportboard, 155, 157);
  675. WritePixel(rportboard, 155, 158);
  676. WritePixel(rportboard, 156, 155);
  677. WritePixel(rportboard, 156, 156);
  678. WritePixel(rportboard, 156, 157);
  679. WritePixel(rportboard, 156, 158);
  680. WritePixel(rportboard, 156, 159);
  681. WritePixel(rportboard, 157, 156);
  682. WritePixel(rportboard, 157, 157);
  683. WritePixel(rportboard, 157, 158);
  684. WritePixel(rportboard, 158, 157);
  685.  
  686. if (hide)   SetAPen(rportboard, royal_blue);
  687. if (!hide)   SetAPen(rportboard, white);
  688. WritePixel(rportboard, 152, 157);
  689. WritePixel(rportboard, 153, 156);
  690. WritePixel(rportboard, 153, 157);
  691. WritePixel(rportboard, 153, 158);
  692. WritePixel(rportboard, 154, 158);
  693. WritePixel(rportboard, 154, 159);
  694. WritePixel(rportboard, 155, 159);
  695. WritePixel(rportboard, 155, 160);
  696. for (iter=162; iter<167; iter++)
  697.    {
  698.    WritePixel(rportboard, 155, iter);
  699.    WritePixel(rportboard, 156, iter);
  700.    WritePixel(rportboard, 157, iter);
  701.    WritePixel(rportboard, 158, iter);
  702.    WritePixel(rportboard, 159, iter);
  703.    }
  704.  
  705. if (hide)   SetAPen(rportboard, red);
  706. if (!hide)   SetAPen(rportboard, white);
  707. WritePixel(rportboard, 153, 156);
  708. WritePixel(rportboard, 153, 157);
  709. WritePixel(rportboard, 154, 158);
  710. WritePixel(rportboard, 155, 159);
  711. WritePixel(rportboard, 156, 160);
  712.  
  713. if (!hide)
  714.    {
  715.    SetAPen(rportboard, black);
  716.    WritePixel(rportboard, 155, 157);
  717.    WritePixel(rportboard, 156, 163);
  718.    WritePixel(rportboard, 158, 165);
  719.    }
  720. }
  721.  
  722.