
/*  f1.c contains functions for monopoly  
    colorpalette funcs,   movetoken()   */

#include "mono:defines"
#include "mono:xvariables"

VOID putsquare(pen)
USHORT pen;
{
SetAPen(rportinfo, pen);
RectFill(rportinfo, 100, 20, 140, 60);
}

VOID fixcolorpot(color)
USHORT color;
{
int colorpot;

switch (color)
   {
   case 0:  colorpot=rpinfo.HorizPot;
            break;
   case 1:  colorpot=gpinfo.HorizPot;
            break;
   case 2:  colorpot=bpinfo.HorizPot;
            break;
   }
if (colorpot < 2184) 				  colorpot=0;
if ( (colorpot >= 2184)  && (colorpot < 6553)  )  colorpot=1;
if ( (colorpot >= 6553)  && (colorpot < 10922) )  colorpot=2;
if ( (colorpot >= 10922) && (colorpot < 15291) )  colorpot=3;
if ( (colorpot >= 15291) && (colorpot < 19660) )  colorpot=4;
if ( (colorpot >= 19660) && (colorpot < 24029) )  colorpot=5;
if ( (colorpot >= 24029) && (colorpot < 29398) )  colorpot=6;
if ( (colorpot >= 28398) && (colorpot < 32769) )  colorpot=7;
if ( (colorpot >= 32769) && (colorpot < 37136) )  colorpot=8;
if ( (colorpot >= 37136) && (colorpot < 41505) )  colorpot=9;
if ( (colorpot >= 41505) && (colorpot < 45874) )  colorpot=10;
if ( (colorpot >= 45874) && (colorpot < 50243) )  colorpot=11;
if ( (colorpot >= 50243) && (colorpot < 54612) )  colorpot=12;
if ( (colorpot >= 54612) && (colorpot < 58981) )  colorpot=13;
if ( (colorpot >= 58981) && (colorpot < 63350) )  colorpot=14;
if (  colorpot >= 63350)                          colorpot=15;

if (color == 0) rcolorpot=colorpot;
if (color == 1) gcolorpot=colorpot;
if (color == 2) bcolorpot=colorpot;
 
if (changetoken0 == TRUE)
   SetRGB4(vport1, 25, rcolorpot, gcolorpot, bcolorpot);
 
if (changetoken1 == TRUE)
   SetRGB4(vport1, 26, rcolorpot, gcolorpot, bcolorpot);

if (changetoken2 == TRUE)
   SetRGB4(vport1, 27, rcolorpot, gcolorpot, bcolorpot);

if (changetoken3 == TRUE)
   SetRGB4(vport1, 28, rcolorpot, gcolorpot, bcolorpot);
}

VOID mixcolors()
{
rcolorpot=rpinfo.HorizPot;
fixcolorpot(0);
gcolorpot=gpinfo.HorizPot;
fixcolorpot(1);
bcolorpot=bpinfo.HorizPot;
fixcolorpot(2);
}

VOID do_palgag()
{
switch (gagid)
   {
   case 0:        /*  red gadget   */
           mixcolors();
	    break;
   case 1:        /*  green gadget  */

            mixcolors();
	    break;
   case 2:        /*   blue gadget   */
            mixcolors();
            break;      
   case 3:  endpal=TRUE;
            break;      
   case 4:       /*  restore token colors  */
            SetRGB4(vport1, 25, 15, 0, 0);
            SetRGB4(vport1, 26, 0, 9, 0);
            SetRGB4(vport1, 27, 0, 0, 13);
            SetRGB4(vport1, 28, 15, 0, 15);
            break;     
   case 25: putsquare(25);
            changetoken0=TRUE;
	    changetoken1=FALSE;
	    changetoken2=FALSE;
	    changetoken3=FALSE;
            break;      
   case 26: putsquare(26);
            changetoken0=FALSE;
	    changetoken1=TRUE;
	    changetoken2=FALSE;
	    changetoken3=FALSE; 
            break;      
   case 27: putsquare(27);
            changetoken0=FALSE;
	    changetoken1=FALSE;
	    changetoken2=TRUE;
	    changetoken3=FALSE; 
            break;      
   case 28: putsquare(28);
            changetoken0=FALSE;
	    changetoken1=FALSE;
	    changetoken2=FALSE;
	    changetoken3=TRUE; 
            break;   
   }
}

VOID ckpalmsg()
{
ULONG pclass;
USHORT pcode;
pclass=0;
pcode=0;

while (infomsg=(struct IntuiMessage *)GetMsg(infowindow->UserPort))
   {
   pclass = infomsg->Class;
   pcode = infomsg->Code;
   if (pclass == GADGETUP)  getID(infomsg);
   ReplyMsg(infomsg);
   if (pclass == GADGETUP)   do_palgag();
   if ( (pclass == RAWKEY) && (pcode == HELP) ) instruction();
   }
}

VOID setupchgcol()
{
palintrotext.FrontPen=yellow;
palintrotext.BackPen=0;
palintrotext.DrawMode=JAM1;
palintrotext.LeftEdge=21;
palintrotext.TopEdge=5;
palintrotext.ITextFont=NULL;
palintrotext.IText=(UBYTE *)"ADJUST TOKEN COLORS";
palintrotext.NextText=NULL;

paloktext.FrontPen=green;
paloktext.BackPen=0;
paloktext.DrawMode=JAM1;
paloktext.LeftEdge=0;
paloktext.TopEdge=1;
paloktext.ITextFont=NULL;
paloktext.IText=(UBYTE *)"COLORS OK";
paloktext.NextText=NULL;

restorepaltext.FrontPen=orange;
restorepaltext.BackPen=0;
restorepaltext.DrawMode=JAM1;
restorepaltext.LeftEdge=0;
restorepaltext.TopEdge=1;
restorepaltext.ITextFont=NULL;
restorepaltext.IText=(UBYTE *)"RESTORE DEFAULT COLORS";
restorepaltext.NextText=NULL;

redgagtext.FrontPen=red;
redgagtext.BackPen=0;
redgagtext.DrawMode=JAM1;
redgagtext.LeftEdge=-27;
redgagtext.TopEdge=0;
redgagtext.ITextFont=NULL;
redgagtext.IText=(UBYTE *)"RED";
redgagtext.NextText=NULL;

greengagtext.FrontPen=green;
greengagtext.BackPen=0;
greengagtext.DrawMode=JAM1;
greengagtext.LeftEdge=-43;
greengagtext.TopEdge=0;
greengagtext.ITextFont=NULL;
greengagtext.IText=(UBYTE *)"GREEN";
greengagtext.NextText=NULL;

bluegagtext.FrontPen=dk_blue;
bluegagtext.BackPen=0;
bluegagtext.DrawMode=JAM1;
bluegagtext.LeftEdge=-35;
bluegagtext.TopEdge=0;
bluegagtext.ITextFont=NULL;
bluegagtext.IText=(UBYTE *)"BLUE";
bluegagtext.NextText=NULL;



/*  first gadget in palette window   */
palc25gag.NextGadget=&palc26gag;
palc25gag.LeftEdge=30;
palc25gag.TopEdge=20;
palc25gag.Width=20;
palc25gag.Height=20;
palc25gag.Flags=GADGHBOX | GADGIMAGE;
palc25gag.Activation=GADGIMMEDIATE | RELVERIFY;
palc25gag.GadgetType=BOOLGADGET;
palc25gag.GadgetRender=(APTR)&image25;
palc25gag.SelectRender=NULL;
palc25gag.GadgetText=NULL;
palc25gag.MutualExclude=NULL;
palc25gag.SpecialInfo=NULL;
palc25gag.GadgetID=25;
palc25gag.UserData=NULL;

palc26gag.NextGadget=&palc27gag;
palc26gag.LeftEdge=50;
palc26gag.TopEdge=20;
palc26gag.Width=20;
palc26gag.Height=20;
palc26gag.Flags=GADGHBOX | GADGIMAGE;
palc26gag.Activation=GADGIMMEDIATE | RELVERIFY;
palc26gag.GadgetType=BOOLGADGET;
palc26gag.GadgetRender=(APTR)&image26;
palc26gag.SelectRender=NULL;
palc26gag.GadgetText=NULL;
palc26gag.MutualExclude=NULL;
palc26gag.SpecialInfo=NULL;
palc26gag.GadgetID=26;
palc26gag.UserData=NULL;

palc27gag.NextGadget=&palc28gag;
palc27gag.LeftEdge=30;
palc27gag.TopEdge=40;
palc27gag.Width=20;
palc27gag.Height=20;
palc27gag.Flags=GADGHBOX | GADGIMAGE;
palc27gag.Activation=GADGIMMEDIATE | RELVERIFY;
palc27gag.GadgetType=BOOLGADGET;
palc27gag.GadgetRender=(APTR)&image27;
palc27gag.SelectRender=NULL;
palc27gag.GadgetText=NULL;
palc27gag.MutualExclude=NULL;
palc27gag.SpecialInfo=NULL;
palc27gag.GadgetID=27;
palc27gag.UserData=NULL;

palc28gag.NextGadget=&redgag;
palc28gag.LeftEdge=50;
palc28gag.TopEdge=40;
palc28gag.Width=20;
palc28gag.Height=20;
palc28gag.Flags=GADGHBOX | GADGIMAGE;
palc28gag.Activation=GADGIMMEDIATE | RELVERIFY;
palc28gag.GadgetType=BOOLGADGET;
palc28gag.GadgetRender=(APTR)&image28;
palc28gag.SelectRender=NULL;
palc28gag.GadgetText=NULL;
palc28gag.MutualExclude=NULL;
palc28gag.SpecialInfo=NULL;
palc28gag.GadgetID=28;
palc28gag.UserData=NULL;

redgag.NextGadget=&greengag;
redgag.LeftEdge=48;
redgag.TopEdge=65;
redgag.Width=128;
redgag.Height=10;
redgag.Flags=GADGHCOMP;
redgag.Activation=RELVERIFY | GADGIMMEDIATE;
redgag.GadgetType=PROPGADGET;
redgag.GadgetRender=(APTR)&redknob;
redgag.SelectRender=NULL;
redgag.GadgetText=&redgagtext;
redgag.MutualExclude=NULL;
redgag.SpecialInfo=(APTR)&rpinfo;
redgag.GadgetID=0;
redgag.UserData=NULL;

greengag.NextGadget=&bluegag;
greengag.LeftEdge=48;
greengag.TopEdge=80;
greengag.Width=128;
greengag.Height=10;
greengag.Flags=GADGHCOMP;
greengag.Activation=RELVERIFY | GADGIMMEDIATE;
greengag.GadgetType=PROPGADGET;
greengag.GadgetRender=(APTR)&greenknob;
greengag.SelectRender=NULL;
greengag.GadgetText=&greengagtext;
greengag.MutualExclude=NULL;
greengag.SpecialInfo=(APTR)&gpinfo;
greengag.GadgetID=1;
greengag.UserData=NULL;

bluegag.NextGadget=&palokgag;
bluegag.LeftEdge=48;
bluegag.TopEdge=95;
bluegag.Width=128;
bluegag.Height=10;
bluegag.Flags=GADGHCOMP;
bluegag.Activation=RELVERIFY | GADGIMMEDIATE;
bluegag.GadgetType=PROPGADGET;
bluegag.GadgetRender=(APTR)&blueknob;
bluegag.SelectRender=NULL;
bluegag.GadgetText=&bluegagtext;
bluegag.MutualExclude=NULL;
bluegag.SpecialInfo=(APTR)&bpinfo;
bluegag.GadgetID=2;
bluegag.UserData=NULL;

/*  PropInfo structure template
    not used now 
pinfo.Flags=;
pinfo.HorizPot=;
pinfo.VertPot=;
pinfo.HorizBody=;
pinfo.VertBody=;
pinfo.CWidth=;
pinfo.CHeight=;
pinfo.HPotRes=;
pinfo.VPotRes=;
pinfo.LeftBorder=;
pinfo.TopBordr=;

*********************/
rpinfo.Flags=gpinfo.Flags=bpinfo.Flags = FREEHORIZ | AUTOKNOB;
rpinfo.HorizBody=gpinfo.HorizBody=bpinfo.HorizBody = 0x1000;

palokgag.NextGadget=&restorepalgag;
palokgag.LeftEdge=59;
palokgag.TopEdge=115;
palokgag.Width=72;
palokgag.Height=10;
palokgag.Flags=GADGHCOMP;
palokgag.Activation=GADGIMMEDIATE | RELVERIFY;
palokgag.GadgetType=BOOLGADGET;
palokgag.GadgetRender=(APTR)&palokborder;
palokgag.SelectRender=NULL;
palokgag.GadgetText=&paloktext;
palokgag.MutualExclude=NULL;
palokgag.SpecialInfo=NULL;
palokgag.GadgetID=3;
palokgag.UserData=NULL;

restorepalgag.NextGadget=NULL;
restorepalgag.LeftEdge=7;
restorepalgag.TopEdge=130;
restorepalgag.Width=176;
restorepalgag.Height=10;
restorepalgag.Flags=GADGHCOMP;
restorepalgag.Activation=GADGIMMEDIATE | RELVERIFY;
restorepalgag.GadgetType=BOOLGADGET;
restorepalgag.GadgetRender=(APTR)&restorepalborder;
restorepalgag.SelectRender=NULL;
restorepalgag.GadgetText=&restorepaltext;
restorepalgag.MutualExclude=NULL;
restorepalgag.SpecialInfo=NULL;
restorepalgag.GadgetID=4;
restorepalgag.UserData=NULL;

ninfow.LeftEdge=63;
ninfow.TopEdge=29;
ninfow.Width=194;
ninfow.Height=143;
ninfow.DetailPen=white;
ninfow.BlockPen=black;
ninfow.Title=NULL;
ninfow.Flags=SMART_REFRESH | ACTIVATE | BORDERLESS;
ninfow.IDCMPFlags=RAWKEY | GADGETUP;
ninfow.FirstGadget=&palc25gag;
} 

VOID changecolors()
{
USHORT hold_line;

setupchgcol();

if ((infowindow=(struct Window *)OpenWindow(&ninfow))==NULL)  cleanup();
rportinfo=infowindow->RPort;
PrintIText(rportinfo, &palintrotext, 0, 0);

line0_text=25;  /*  set colors of tokens   */
for (j=0, hold_line=line0_text; j<SHOW_LINES; j++)
   instructIT[j].IText=instructline[hold_line++];

endpal=FALSE;
while (!endpal)
   {
   if (1<<infowindow->UserPort->mp_SigBit)  ckpalmsg();
   }
RemoveGadget(infowindow, &palc25gag);
RemoveGadget(infowindow, &palc26gag);
RemoveGadget(infowindow, &palc27gag);
RemoveGadget(infowindow, &palc28gag);
RemoveGadget(infowindow, &redgag);
RemoveGadget(infowindow, &greengag);
RemoveGadget(infowindow, &bluegag);
RemoveGadget(infowindow, &palokgag);
RemoveGadget(infowindow, &restorepalgag);
CloseWindow(infowindow);
}
 


VOID movetoken()
{
playerat[nowrolling]=playerat[nowrolling]+dice0+dice1;
if (playerat[nowrolling] > 40)
   {  
   playerat[nowrolling]=playerat[nowrolling]-40;
   eft(BANK, nowrolling, 200);
   passgo();
   }
if (playerat[nowrolling] == 40)
   {  
   playerat[nowrolling]=0;
   }
if (nowrolling == 0)
   {
   switch (playerat[0])
      {
      case 0:   REDX= go[0][0];
                REDY= go[1][0];
		WaitTOF();
                DrawGels();
		showpropinfo(0);
	        break;
      case 1:   REDX= med[0][0];
                REDY= med[1][0];
		WaitTOF();
                DrawGels();
		showpropinfo(1);
	        break;
      case 2:   REDX= cc1[0][0];
                REDY= cc1[1][0];
		WaitTOF();
                DrawGels();
		showpropinfo(2);
	        break;
      case 3:   REDX= bal[0][0];
                REDY= bal[1][0];
		WaitTOF();
                DrawGels();
		showpropinfo(3);
	        break;
      case 4:   REDX= itax[0][0];
                REDY= itax[1][0];
		WaitTOF();
                DrawGels();
		showpropinfo(4);
	        break;
      case 5:   REDX= rrr[0][0];
                REDY= rrr[1][0];
		WaitTOF();
                DrawGels();
		showpropinfo(5);
	        break;
      case 6:   REDX= or[0][0];
                REDY= or[1][0];
		WaitTOF();
                DrawGels();
		showpropinfo(6);
	        break;
      case 7:   REDX= c1[0][0];
                REDY= c1[1][0];
		WaitTOF();
                DrawGels();
		showpropinfo(7);
	        break;
      case 8:   REDX= ver[0][0];
                REDY= ver[1][0];
		WaitTOF();
                DrawGels();
		showpropinfo(8);
	        break;
      case 9:   REDX= con[0][0];
                REDY= con[1][0];
		WaitTOF();
                DrawGels();
		showpropinfo(9);
	        break;
      case 10:  REDX= vis[0][0];
                REDY= vis[1][0];
		WaitTOF();
                DrawGels();
		showpropinfo(10);
	        break;
      case 11:  REDX= stc[0][0];
                REDY= stc[1][0];
		WaitTOF();
                DrawGels();
		showpropinfo(11);
	        break;
      case 12:  REDX= eco[0][0];
                REDY= eco[1][0];
		WaitTOF();
                DrawGels();
		showpropinfo(12);
	        break;
      case 13:  REDX= sts[0][0];
                REDY= sts[1][0];
		WaitTOF();
                DrawGels();
		showpropinfo(13);
	        break;
      case 14:  REDX= va[0][0];
                REDY= va[1][0];
		WaitTOF();
                DrawGels();
		showpropinfo(14);
	        break;
      case 15:  REDX= rrp[0][0];
                REDY= rrp[1][0];
		WaitTOF();
                DrawGels();
		showpropinfo(15);
	        break;
      case 16:  REDX= stj[0][0];
                REDY= stj[1][0];
		WaitTOF();
                DrawGels();
		showpropinfo(16);
	        break;
      case 17:  REDX= cc2[0][0];
                REDY= cc2[1][0];
		WaitTOF();
                DrawGels();
		showpropinfo(17);
	        break;
      case 18:  REDX= tn[0][0];
                REDY= tn[1][0];
		WaitTOF();
                DrawGels();
		showpropinfo(18);
	        break;
      case 19:  REDX= ny[0][0];
                REDY= ny[1][0];
		WaitTOF();
                DrawGels();
		showpropinfo(19);
	        break;
      case 20:  REDX= fp[0][0];
                REDY= fp[1][0];
		WaitTOF();
                DrawGels();
		showpropinfo(20);
	        break;
      case 21:  REDX= ky[0][0];
                REDY= ky[1][0];
		WaitTOF();
                DrawGels();
		showpropinfo(21);
	        break;
      case 22:  REDX= c2[0][0];
                REDY= c2[1][0];
		WaitTOF();
                DrawGels();
		showpropinfo(22);
	        break;
      case 23:  REDX= in[0][0];
                REDY= in[1][0];
		WaitTOF();
                DrawGels();
		showpropinfo(23);
	        break;
      case 24:  REDX= il[0][0];
                REDY= il[1][0];
		WaitTOF();
                DrawGels();
		showpropinfo(24);
	        break;
      case 25:  REDX= rrb[0][0];
                REDY= rrb[1][0];
		WaitTOF();
                DrawGels();
		showpropinfo(25);
	        break;
      case 26:  REDX= at[0][0];
                REDY= at[1][0];
		WaitTOF();
                DrawGels();
		showpropinfo(26);
	        break;
      case 27:  REDX= ven[0][0];
                REDY= ven[1][0];
		WaitTOF();
                DrawGels();
		showpropinfo(27);
	        break;
      case 28:  REDX= ww[0][0];
                REDY= ww[1][0];
		WaitTOF();
                DrawGels();
		showpropinfo(28);
	        break;
      case 29:  REDX= mar[0][0];
                REDY= mar[1][0];
		WaitTOF();
                DrawGels();
		showpropinfo(29);
	        break;
      case 30:  REDX= gtj[0][0];
                REDY= gtj[1][0];
		WaitTOF();
                DrawGels();
		showpropinfo(30);
		sendtojail();
	        break;
      case 31:  REDX= pac[0][0];
                REDY= pac[1][0];
		WaitTOF();
                DrawGels();
		showpropinfo(31);
	        break;
      case 32:  REDX= nc[0][0];
                REDY= nc[1][0];
		WaitTOF();
                DrawGels();
		showpropinfo(32);
	        break;
      case 33:  REDX= cc3[0][0];
                REDY= cc3[1][0];
		WaitTOF();
                DrawGels();
		showpropinfo(33);
	        break;
      case 34:  REDX= pen[0][0];
                REDY= pen[1][0];
		WaitTOF();
                DrawGels();
		showpropinfo(34);
	        break;
      case 35:  REDX= rrs[0][0];
                REDY= rrs[1][0];
		WaitTOF();
                DrawGels();
		showpropinfo(35);
	        break;
      case 36:  REDX= c3[0][0];
                REDY= c3[1][0];
		WaitTOF();
                DrawGels();
		showpropinfo(36);
	        break;
      case 37:  REDX= pp[0][0];
                REDY= pp[1][0];
		WaitTOF();
                DrawGels();
		showpropinfo(37);
	        break;
      case 38:  REDX= ptax[0][0];
                REDY= ptax[1][0];
		WaitTOF();
                DrawGels();
		showpropinfo(38);
	        break;
      case 39:  REDX= bw[0][0];
                REDY= bw[1][0];
		WaitTOF();
                DrawGels();
		showpropinfo(39);
	        break;
      }
   }
if (nowrolling == 1)
   {
   switch (playerat[1])
      {
      case 0:   GREENX= go[0][1];
                GREENY= go[1][1];
                WaitTOF();
                DrawGels();
                showpropinfo(0);
	        break;
      case 1:   GREENX= med[0][1];
                GREENY= med[1][1];
		WaitTOF();
                DrawGels();
		showpropinfo(1);
	        break;
      case 2:   GREENX= cc1[0][1];
                GREENY= cc1[1][1];
		WaitTOF();
                DrawGels();
		showpropinfo(2);
	        break;
      case 3:   GREENX= bal[0][1];
                GREENY= bal[1][1];
		WaitTOF();
                DrawGels();
		showpropinfo(3);
	        break;
      case 4:   GREENX= itax[0][1];
                GREENY= itax[1][1];
		WaitTOF();
                DrawGels();
		showpropinfo(4);
	        break;
      case 5:   GREENX= rrr[0][1];
                GREENY= rrr[1][1];
		WaitTOF();
                DrawGels();
		showpropinfo(5);
	        break;
      case 6:   GREENX= or[0][1];
                GREENY= or[1][1];
		WaitTOF();
                DrawGels();
		showpropinfo(6);
	        break;
      case 7:   GREENX= c1[0][1];
                GREENY= c1[1][1];
		WaitTOF();
                DrawGels();
		showpropinfo(7);
	        break;
      case 8:   GREENX= ver[0][1];
                GREENY= ver[1][1];
		WaitTOF();
                DrawGels();
		showpropinfo(8);
	        break;
      case 9:   GREENX= con[0][1];
                GREENY= con[1][1];
		WaitTOF();
                DrawGels();
                showpropinfo(9);
	        break;
      case 10:  GREENX= vis[0][1];
                GREENY= vis[1][1];
		WaitTOF();
                DrawGels();
		showpropinfo(10);
	        break;
      case 11:  GREENX= stc[0][1];
                GREENY= stc[1][1];
		WaitTOF();
                DrawGels();
		showpropinfo(11);
	        break;
      case 12:  GREENX= eco[0][1];
                GREENY= eco[1][1];
		WaitTOF();
                DrawGels();
		showpropinfo(12);
	        break;
      case 13:  GREENX= sts[0][1];
                GREENY= sts[1][1];
		WaitTOF();
                DrawGels();
		showpropinfo(13);
	        break;
      case 14:  GREENX= va[0][1];
                GREENY= va[1][1];
		WaitTOF();
                DrawGels();
		showpropinfo(14);
	        break;
      case 15:  GREENX= rrp[0][1];
                GREENY= rrp[1][1];
		WaitTOF();
                DrawGels();
		showpropinfo(15);
	        break;
      case 16:  GREENX= stj[0][1];
                GREENY= stj[1][1];
		WaitTOF();
                DrawGels();
		showpropinfo(16);
	        break;
      case 17:  GREENX= cc2[0][1];
                GREENY= cc2[1][1];
		WaitTOF();
                DrawGels();
		showpropinfo(17);
	        break;
      case 18:  GREENX= tn[0][1];
                GREENY= tn[1][1];
		WaitTOF();
                DrawGels();
		showpropinfo(18);
	        break;
      case 19:  GREENX= ny[0][1];
                GREENY= ny[1][1];
		WaitTOF();
                DrawGels();
		showpropinfo(19);
	        break;
      case 20:  GREENX= fp[0][1];
                GREENY= fp[1][1];
		WaitTOF();
                DrawGels();
		showpropinfo(20);
	        break;
      case 21:  GREENX= ky[0][1];
                GREENY= ky[1][1];
		WaitTOF();
                DrawGels();
                showpropinfo(21);
	        break;
      case 22:  GREENX= c2[0][1];
                GREENY= c2[1][1];
		WaitTOF();
                DrawGels();
		showpropinfo(22);
	        break;
      case 23:  GREENX= in[0][1];
                GREENY= in[1][1];
		WaitTOF();
                DrawGels();
		showpropinfo(23);
	        break;
      case 24:  GREENX= il[0][1];
                GREENY= il[1][1];
		WaitTOF();
                DrawGels();
		showpropinfo(24);
	        break;
      case 25:  GREENX= rrb[0][1];
                GREENY= rrb[1][1];
		WaitTOF();
                DrawGels();
                showpropinfo(25);
	        break;
      case 26:  GREENX= at[0][1];
                GREENY= at[1][1];
		WaitTOF();
                DrawGels();
		showpropinfo(26);
	        break;
      case 27:  GREENX= ven[0][1];
                GREENY= ven[1][1];
		WaitTOF();
                DrawGels();
		showpropinfo(27);
	        break;
      case 28:  GREENX= ww[0][1];
                GREENY= ww[1][1];
		WaitTOF();
                DrawGels();
		showpropinfo(28);
	        break;
      case 29:  GREENX= mar[0][1];
                GREENY= mar[1][1];
		WaitTOF();
                DrawGels();
		showpropinfo(29);
	        break;
      case 30:  GREENX= gtj[0][1];
                GREENY= gtj[1][1];
		WaitTOF();
                DrawGels();
		showpropinfo(30);
		sendtojail();
	        break;
      case 31:  GREENX= pac[0][1];
                GREENY= pac[1][1];
		WaitTOF();
                DrawGels();
		showpropinfo(31);
	        break;
      case 32:  GREENX= nc[0][1];
                GREENY= nc[1][1];
		WaitTOF();
                DrawGels();
		showpropinfo(32);
	        break;
      case 33:  GREENX= cc3[0][1];
                GREENY= cc3[1][1];
		WaitTOF();
                DrawGels();
		showpropinfo(33);
	        break;
      case 34:  GREENX= pen[0][1];
                GREENY= pen[1][1];
		WaitTOF();
                DrawGels();
		showpropinfo(34);
	        break;
      case 35:  GREENX= rrs[0][1];
                GREENY= rrs[1][1];
		WaitTOF();
                DrawGels();
		showpropinfo(35);
	        break;
      case 36:  GREENX= c3[0][1];
                GREENY= c3[1][1];
		WaitTOF();
                DrawGels();
		showpropinfo(36);
	        break;
      case 37:  GREENX= pp[0][1];
                GREENY= pp[1][1];
		WaitTOF();
                DrawGels();
		showpropinfo(37);
	        break;
      case 38:  GREENX= ptax[0][1];
                GREENY= ptax[1][1];
		WaitTOF();
                DrawGels();
		showpropinfo(38);
	        break;
      case 39:  GREENX= bw[0][1];
                GREENY= bw[1][1];
		WaitTOF();
                DrawGels();
		showpropinfo(39);
	        break;
      }
   }
if (nowrolling == 2)
   {
   switch (playerat[2])
      {
      case 0:   BLUEX= go[0][2];
                BLUEY= go[1][2];
		WaitTOF();
                DrawGels();
		showpropinfo(0);
	        break;
      case 1:   BLUEX= med[0][2];
                BLUEY= med[1][2];
		WaitTOF();
                DrawGels();
		showpropinfo(1);
	        break;
      case 2:   BLUEX= cc1[0][2];
                BLUEY= cc1[1][2];
		WaitTOF();
                DrawGels();
		showpropinfo(2);
	        break;
      case 3:   BLUEX= bal[0][2];
                BLUEY= bal[1][2];
		WaitTOF();
                DrawGels();
		showpropinfo(3);
	        break;
      case 4:   BLUEX= itax[0][2];
                BLUEY= itax[1][2];
		WaitTOF();
                DrawGels();
		showpropinfo(4);
	        break;
      case 5:   BLUEX= rrr[0][2];
                BLUEY= rrr[1][2];
		WaitTOF();
                DrawGels();
		showpropinfo(5);
	        break;
      case 6:   BLUEX= or[0][2];
                BLUEY= or[1][2];
		WaitTOF();
                DrawGels();
		showpropinfo(6);
	        break;
      case 7:   BLUEX= c1[0][2];
                BLUEY= c1[1][2];
		WaitTOF();
                DrawGels();
		showpropinfo(7);
	        break;
      case 8:   BLUEX= ver[0][2];
                BLUEY= ver[1][2];
		WaitTOF();
                DrawGels();
		showpropinfo(8);
	        break;
      case 9:   BLUEX= con[0][2];
                BLUEY= con[1][2];
		WaitTOF();
                DrawGels();
		showpropinfo(9);
	        break;
      case 10:  BLUEX= vis[0][2];
                BLUEY= vis[1][2];
		WaitTOF();
                DrawGels();
		showpropinfo(10);
	        break;
      case 11:  BLUEX= stc[0][2];
                BLUEY= stc[1][2];
		WaitTOF();
                DrawGels();
		showpropinfo(11);
	        break;
      case 12:  BLUEX= eco[0][2];
                BLUEY= eco[1][2];
		WaitTOF();
                DrawGels();
		showpropinfo(12);
	        break;
      case 13:  BLUEX= sts[0][2];
                BLUEY= sts[1][2];
		WaitTOF();
                DrawGels();
		showpropinfo(13);
	        break;
      case 14:  BLUEX= va[0][2];
                BLUEY= va[1][2];
		WaitTOF();
                DrawGels();
		showpropinfo(14);
	        break;
      case 15:  BLUEX= rrp[0][2];
                BLUEY= rrp[1][2];
		WaitTOF();
                DrawGels();
		showpropinfo(15);
	        break;
      case 16:  BLUEX= stj[0][2];
                BLUEY= stj[1][2];
		WaitTOF();
                DrawGels();
		showpropinfo(16);
	        break;
      case 17:  BLUEX= cc2[0][2];
                BLUEY= cc2[1][2];
		WaitTOF();
                DrawGels();
		showpropinfo(17);
	        break;
      case 18:  BLUEX= tn[0][2];
                BLUEY= tn[1][2];
		WaitTOF();
                DrawGels();
		showpropinfo(18);
	        break;
      case 19:  BLUEX= ny[0][2];
                BLUEY= ny[1][2];
		WaitTOF();
                DrawGels();
		showpropinfo(19);
	        break;
      case 20:  BLUEX= fp[0][2];
                BLUEY= fp[1][2];
		WaitTOF();
                DrawGels();
		showpropinfo(20);
	        break;
      case 21:  BLUEX= ky[0][2];
                BLUEY= ky[1][2];
		WaitTOF();
                DrawGels();
		showpropinfo(21);
	        break;
      case 22:  BLUEX= c2[0][2];
                BLUEY= c2[1][2];
		WaitTOF();
                DrawGels();
		showpropinfo(22);
	        break;
      case 23:  BLUEX= in[0][2];
                BLUEY= in[1][2];
		WaitTOF();
                DrawGels();
		showpropinfo(23);
	        break;
      case 24:  BLUEX= il[0][2];
                BLUEY= il[1][2];
		WaitTOF();
                DrawGels();
		showpropinfo(24);
	        break;
      case 25:  BLUEX= rrb[0][2];
                BLUEY= rrb[1][2];
		WaitTOF();
                DrawGels();
		showpropinfo(25);
	        break;
      case 26:  BLUEX= at[0][2];
                BLUEY= at[1][2];
		WaitTOF();
                DrawGels();
		showpropinfo(26);
	        break;
      case 27:  BLUEX= ven[0][2];
                BLUEY= ven[1][2];
		WaitTOF();
                DrawGels();
		showpropinfo(27);
	        break;
      case 28:  BLUEX= ww[0][2];
                BLUEY= ww[1][2];
		WaitTOF();
                DrawGels();
		showpropinfo(28);
	        break;
      case 29:  BLUEX= mar[0][2];
                BLUEY= mar[1][2];
		WaitTOF();
                DrawGels();
		showpropinfo(29);
	        break;
      case 30:  BLUEX= gtj[0][2];
                BLUEY= gtj[1][2];
		WaitTOF();
                DrawGels();
		showpropinfo(30);
		sendtojail();
	        break;
      case 31:  BLUEX= pac[0][2];
                BLUEY= pac[1][2];
		WaitTOF();
                DrawGels();
		showpropinfo(31);
	        break;
      case 32:  BLUEX= nc[0][2];
                BLUEY= nc[1][2];
		WaitTOF();
                DrawGels();
		showpropinfo(32);
	        break;
      case 33:  BLUEX= cc3[0][2];
                BLUEY= cc3[1][2];
		WaitTOF();
                DrawGels();
		showpropinfo(33);
	        break;
      case 34:  BLUEX= pen[0][2];
                BLUEY= pen[1][2];
		WaitTOF();
                DrawGels();
		showpropinfo(34);
	        break;
      case 35:  BLUEX= rrs[0][2];
                BLUEY= rrs[1][2];
		WaitTOF();
                DrawGels();
		showpropinfo(35);
	        break;
      case 36:  BLUEX= c3[0][2];
                BLUEY= c3[1][2];
		WaitTOF();
                DrawGels();
		showpropinfo(36);
	        break;
      case 37:  BLUEX= pp[0][2];
                BLUEY= pp[1][2];
		WaitTOF();
                DrawGels();
		showpropinfo(37);
	        break;
      case 38:  BLUEX= ptax[0][2];
                BLUEY= ptax[1][2];
		WaitTOF();
                DrawGels();
		showpropinfo(38);
	        break;
      case 39:  BLUEX= bw[0][2];
                BLUEY= bw[1][2];
		WaitTOF();
                DrawGels();
		showpropinfo(39);
	        break;
      }
   }
if (nowrolling == 3)
   {
   switch (playerat[3])
      {
      case 0:   YELLOWX= go[0][3];
                YELLOWY= go[1][3];
		WaitTOF();
                DrawGels();
		showpropinfo(0);
	        break;
      case 1:   YELLOWX= med[0][3];
                YELLOWY= med[1][3];
		WaitTOF();
                DrawGels();
		showpropinfo(1);
	        break;
      case 2:   YELLOWX= cc1[0][3];
                YELLOWY= cc1[1][3];
		WaitTOF();
                DrawGels();
		showpropinfo(2);
	        break;
      case 3:   YELLOWX= bal[0][3];
                YELLOWY= bal[1][3];
		WaitTOF();
                DrawGels();
		showpropinfo(3);
	        break;
      case 4:   YELLOWX= itax[0][3];
                YELLOWY= itax[1][3];
		WaitTOF();
                DrawGels();
		showpropinfo(4);
	        break;
      case 5:   YELLOWX= rrr[0][3];
                YELLOWY= rrr[1][3];
		WaitTOF();
                DrawGels();
		showpropinfo(5);
	        break;
      case 6:   YELLOWX= or[0][3];
                YELLOWY= or[1][3];
		WaitTOF();
                DrawGels();
		showpropinfo(6);
	        break;
      case 7:   YELLOWX= c1[0][3];
                YELLOWY= c1[1][3];
		WaitTOF();
                DrawGels();
		showpropinfo(7);
	        break;
      case 8:   YELLOWX= ver[0][3];
                YELLOWY= ver[1][3];
		WaitTOF();
                DrawGels();
		showpropinfo(8);
	        break;
      case 9:   YELLOWX= con[0][3];
                YELLOWY= con[1][3];
		WaitTOF();
                DrawGels();
		showpropinfo(9);
	        break;
      case 10:  YELLOWX= vis[0][3];
                YELLOWY= vis[1][3];
		WaitTOF();
                DrawGels();
		showpropinfo(10);
	        break;
      case 11:  YELLOWX= stc[0][3];
                YELLOWY= stc[1][3];
		WaitTOF();
                DrawGels();
		showpropinfo(11);
	        break;
      case 12:  YELLOWX= eco[0][3];
                YELLOWY= eco[1][3];
		WaitTOF();
                DrawGels();
		showpropinfo(12);
	        break;
      case 13:  YELLOWX= sts[0][3];
                YELLOWY= sts[1][3];
		WaitTOF();
                DrawGels();
		showpropinfo(13);
	        break;
      case 14:  YELLOWX= va[0][3];
                YELLOWY= va[1][3];
		WaitTOF();
                DrawGels();
		showpropinfo(14);
	        break;
      case 15:  YELLOWX= rrp[0][3];
                YELLOWY= rrp[1][3];
		WaitTOF();
                DrawGels();
		showpropinfo(15);
	        break;
      case 16:  YELLOWX= stj[0][3];
                YELLOWY= stj[1][3];
		WaitTOF();
                DrawGels();
		showpropinfo(16);
	        break;
      case 17:  YELLOWX= cc2[0][3];
                YELLOWY= cc2[1][3];
		WaitTOF();
                DrawGels();
		showpropinfo(17);
	        break;
      case 18:  YELLOWX= tn[0][3];
                YELLOWY= tn[1][3];
		WaitTOF();
                DrawGels();
		showpropinfo(18);
	        break;
      case 19:  YELLOWX= ny[0][3];
                YELLOWY= ny[1][3];
		WaitTOF();
                DrawGels();
		showpropinfo(19);
	        break;
      case 20:  YELLOWX= fp[0][3];
                YELLOWY= fp[1][3];
		WaitTOF();
                DrawGels();
		showpropinfo(20);
	        break;
      case 21:  YELLOWX= ky[0][3];
                YELLOWY= ky[1][3];
		WaitTOF();
                DrawGels();
		showpropinfo(21);
	        break;
      case 22:  YELLOWX= c2[0][3];
                YELLOWY= c2[1][3];
		WaitTOF();
                DrawGels();
		showpropinfo(22);
	        break;
      case 23:  YELLOWX= in[0][3];
                YELLOWY= in[1][3];
		WaitTOF();
                DrawGels();
		showpropinfo(23);
	        break;
      case 24:  YELLOWX= il[0][3];
                YELLOWY= il[1][3];
		WaitTOF();
                DrawGels();
                showpropinfo(24);
	        break;
      case 25:  YELLOWX= rrb[0][3];
                YELLOWY= rrb[1][3];
		WaitTOF();
                DrawGels();
		showpropinfo(25);
	        break;
      case 26:  YELLOWX= at[0][3];
                YELLOWY= at[1][3];
		WaitTOF();
                DrawGels();
		showpropinfo(26);
	        break;
      case 27:  YELLOWX= ven[0][3];
                YELLOWY= ven[1][3];
		WaitTOF();
                DrawGels();
		showpropinfo(27);
	        break;
      case 28:  YELLOWX= ww[0][3];
                YELLOWY= ww[1][3];
		WaitTOF();
                DrawGels();
		showpropinfo(28);
	        break;
      case 29:  YELLOWX= mar[0][3];
                YELLOWY= mar[1][3];
		WaitTOF();
                DrawGels();
		showpropinfo(29);
	        break;
      case 30:  YELLOWX= gtj[0][3];
                YELLOWY= gtj[1][3];
		WaitTOF();
                DrawGels();
		showpropinfo(30);
		sendtojail();
	        break;
      case 31:  YELLOWX= pac[0][3];
                YELLOWY= pac[1][3];
		WaitTOF();
                DrawGels();
		showpropinfo(31);
	        break;
      case 32:  YELLOWX= nc[0][3];
                YELLOWY= nc[1][3];
		WaitTOF();
                DrawGels();
		showpropinfo(32);
	        break;
      case 33:  YELLOWX= cc3[0][3];
                YELLOWY= cc3[1][3];
		WaitTOF();
                DrawGels();
		showpropinfo(33);
	        break;
      case 34:  YELLOWX= pen[0][3];
                YELLOWY= pen[1][3];
		WaitTOF();
                DrawGels();
		showpropinfo(34);
	        break;
      case 35:  YELLOWX= rrs[0][3];
                YELLOWY= rrs[1][3];
		WaitTOF();
                DrawGels();
		showpropinfo(35);
	        break;
      case 36:  YELLOWX= c3[0][3];
                YELLOWY= c3[1][3];
		WaitTOF();
                DrawGels();
		showpropinfo(36);
	        break;
      case 37:  YELLOWX= pp[0][3];
                YELLOWY= pp[1][3];
		WaitTOF();
                DrawGels();
		showpropinfo(37);
	        break;
      case 38:  YELLOWX= ptax[0][3];
                YELLOWY= ptax[1][3];
		WaitTOF();
                DrawGels();
		showpropinfo(38);
	        break;
      case 39:  YELLOWX= bw[0][3];
                YELLOWY= bw[1][3];
		WaitTOF();
                DrawGels();
		showpropinfo(39);
	        break;
      }
   }
}

VOID endgame()
{
if (really(QUIT))  done=TRUE;
}
