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 / f14.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-01-06  |  32.6 KB  |  1,141 lines

  1. /*   f14.c contains these files for monopoly:  savegame()
  2.             jailpark()  sendtojail()  rnd()  random_start()
  3.  */
  4.  
  5. #include "mono:defines"
  6. #include "mono:xvariables"
  7.  
  8. USHORT savegame()
  9. {
  10. struct FileHandle *saveptr;
  11. struct FileLock *save_lock;
  12. char   *Csave_buffer, *Nsave_buffer;
  13. USHORT *USsave_buffer;
  14. SHORT  *Ssave_buffer;
  15. BOOL   *Bsave_buffer;
  16. LONG   *Lsave_buffer;
  17. int access_mode, length1, length2, length4, length35, iter;
  18. UBYTE *file_name;
  19.  
  20. length1=1;
  21. length2=2;
  22. length4=4;
  23. length35=35;
  24.  
  25. wait_LS.Screen = screen1;
  26. wait_LS.Title = (UBYTE *)"PLEASE WAIT";
  27. if ((waitwindow=(struct Window *)OpenWindow(&wait_LS))==NULL) cleanup();
  28. rportwait=waitwindow->RPort;
  29. SetRast(rportwait, yellow);
  30.  
  31.  
  32. Ssave_buffer=(SHORT *)AllocMem(length2, MEMF_CHIP|MEMF_CLEAR);
  33. if (Ssave_buffer == 0)
  34.    {
  35.    wait_LStext1.FrontPen=red;
  36.    wait_LStext1.BackPen=lt_gray;
  37.    wait_LStext1.DrawMode=JAM2;
  38.    wait_LStext1.IText=(UBYTE *)"      SAVE ABORTED!!!";
  39.    wait_LStext2.IText=(UBYTE *)"Could not allocate enough memory.";
  40.    PrintIText(rportwait, &wait_LStext1, 0,0);
  41.    Delay(200);
  42.    CloseWindow(waitwindow);
  43.    return(ALLOCMEM_FAILED);
  44.    }
  45.  
  46. Bsave_buffer=(BOOL *)AllocMem(length2, MEMF_CHIP|MEMF_CLEAR);
  47. if (Bsave_buffer == 0)
  48.    {
  49.    FreeMem(Ssave_buffer, length2);
  50.    wait_LStext1.FrontPen=red;
  51.    wait_LStext1.BackPen=lt_gray;
  52.    wait_LStext1.DrawMode=JAM2;
  53.    wait_LStext1.IText=(UBYTE *)"      SAVE ABORTED!!!";
  54.    wait_LStext2.IText=(UBYTE *)"Could not allocate enough memory.";
  55.    PrintIText(rportwait, &wait_LStext1, 0,0);
  56.    Delay(200);
  57.    CloseWindow(waitwindow);
  58.    return(ALLOCMEM_FAILED);
  59.    }
  60. USsave_buffer=(USHORT *)AllocMem(length2, MEMF_CHIP|MEMF_CLEAR);
  61. if (USsave_buffer == 0)
  62.    {
  63.    FreeMem(Ssave_buffer, length2);
  64.    FreeMem(Bsave_buffer, length2);
  65.    wait_LStext1.FrontPen=red;
  66.    wait_LStext1.BackPen=lt_gray;
  67.    wait_LStext1.DrawMode=JAM2;
  68.    wait_LStext1.IText=(UBYTE *)"      SAVE ABORTED!!!";
  69.    wait_LStext2.IText=(UBYTE *)"Could not allocate enough memory.";
  70.    PrintIText(rportwait, &wait_LStext1, 0,0);
  71.    Delay(200);
  72.    CloseWindow(waitwindow);
  73.    return(ALLOCMEM_FAILED);
  74.    }
  75.  
  76. Csave_buffer=(char *)AllocMem(length1, MEMF_CHIP|MEMF_CLEAR);
  77. if (Csave_buffer == 0)
  78.    {
  79.    FreeMem(Ssave_buffer, length2);
  80.    FreeMem(Bsave_buffer, length2);
  81.    FreeMem(USsave_buffer, length2);
  82.    wait_LStext1.FrontPen=red;
  83.    wait_LStext1.BackPen=lt_gray;
  84.    wait_LStext1.DrawMode=JAM2;
  85.    wait_LStext1.IText=(UBYTE *)"      SAVE ABORTED!!!";
  86.    wait_LStext2.IText=(UBYTE *)"Could not allocate enough memory.";
  87.    PrintIText(rportwait, &wait_LStext1, 0,0);
  88.    Delay(200);
  89.    CloseWindow(waitwindow);
  90.    return(ALLOCMEM_FAILED);
  91.    }
  92. Nsave_buffer=(char *)AllocMem(length35, MEMF_CHIP|MEMF_CLEAR);
  93. if (Nsave_buffer == 0)
  94.    {
  95.    FreeMem(Ssave_buffer, length2);
  96.    FreeMem(Bsave_buffer, length2);
  97.    FreeMem(USsave_buffer, length2);
  98.    FreeMem(Csave_buffer, length1);
  99.    wait_LStext1.FrontPen=red;
  100.    wait_LStext1.BackPen=lt_gray;
  101.    wait_LStext1.DrawMode=JAM2;
  102.    wait_LStext1.IText=(UBYTE *)"      SAVE ABORTED!!!";
  103.    wait_LStext2.IText=(UBYTE *)"Could not allocate enough memory.";
  104.    PrintIText(rportwait, &wait_LStext1, 0,0);
  105.    Delay(200);
  106.    CloseWindow(waitwindow);
  107.    return(ALLOCMEM_FAILED);
  108.    }
  109. Lsave_buffer=(LONG *)AllocMem(length4, MEMF_CHIP|MEMF_CLEAR);
  110. if (Lsave_buffer == 0)
  111.    {
  112.    FreeMem(Ssave_buffer, length2);
  113.    FreeMem(Bsave_buffer, length2);
  114.    FreeMem(USsave_buffer, length2);
  115.    FreeMem(Csave_buffer, length1);
  116.    FreeMem(Nsave_buffer, length35);
  117.    wait_LStext1.FrontPen=red;
  118.    wait_LStext1.BackPen=lt_gray;
  119.    wait_LStext1.DrawMode=JAM2;
  120.    wait_LStext1.IText=(UBYTE *)"      SAVE ABORTED!!!";
  121.    wait_LStext2.IText=(UBYTE *)"Could not allocate enough memory.";
  122.    PrintIText(rportwait, &wait_LStext1, 0,0);
  123.    Delay(200);
  124.    CloseWindow(waitwindow);
  125.    return(ALLOCMEM_FAILED);
  126.    }
  127.  
  128. if ((file_name=file_request(SAVE_IT)) == 0)
  129.    {
  130.    FreeMem(Ssave_buffer, length2);
  131.    FreeMem(Bsave_buffer, length2);
  132.    FreeMem(USsave_buffer, length2);
  133.    FreeMem(Csave_buffer, length1);
  134.    FreeMem(Nsave_buffer, length35);
  135.    FreeMem(Lsave_buffer, length4);
  136.    wait_LStext1.FrontPen=red;
  137.    wait_LStext1.BackPen=lt_gray;
  138.    wait_LStext1.DrawMode=JAM2;
  139.    wait_LStext1.IText=(UBYTE *)"      SAVE ABORTED!!!";
  140.    wait_LStext2.IText=(UBYTE *)"     Invalid file name.";
  141.    PrintIText(rportwait, &wait_LStext1, 0,0);
  142.    Delay(200);
  143.    CloseWindow(waitwindow);
  144.    return(NO_FILE_TO_SAVE);
  145.    }
  146. wait_LStext1.IText=(UBYTE *)"Now Saving File...";
  147. wait_LStext2.IText=file_name;
  148. PrintIText(rportwait, &wait_LStext1, 0,0);
  149.  
  150. access_mode=MODE_NEWFILE; 
  151.  
  152. if ((save_lock=Lock(file_name, ACCESS_WRITE))!=0)
  153.    {
  154.    struct IntuiText save_prompt, save_prompt1, yes_save_prompt, no_save_prompt;
  155.    save_prompt.FrontPen=red;
  156.    save_prompt.BackPen=black;
  157.    save_prompt.DrawMode=JAM1;
  158.    save_prompt.LeftEdge=50;
  159.    save_prompt.TopEdge=5;
  160.    save_prompt.ITextFont=&TextFont;
  161.    save_prompt.IText=(UBYTE *)"FILE ALREADY EXISTS!";
  162.    save_prompt.NextText=&save_prompt1;
  163.    CMes(&save_prompt1, 5, 15, "O.K. to over write old data?", orange, 1);
  164.    CMes(&yes_save_prompt, 6, 4, "YES", red, 1);
  165.    CMes(&no_save_prompt, 6, 4, "NO", green, 1);
  166.    if (!(AutoRequest(boardwindow, &save_prompt, &yes_save_prompt, 
  167.                &no_save_prompt, NULL, NULL, 250, 60)))
  168.       {
  169.       UnLock(save_lock);
  170.       FreeMem(Ssave_buffer, length2);
  171.       FreeMem(Bsave_buffer, length2);
  172.       FreeMem(USsave_buffer, length2);
  173.       FreeMem(Csave_buffer, length1);
  174.       FreeMem(Nsave_buffer, length35);
  175.       FreeMem(Lsave_buffer, length4);
  176.       SetRast(rportwait, yellow);
  177.       wait_LStext1.FrontPen=red;
  178.       wait_LStext1.BackPen=lt_gray;
  179.       wait_LStext1.DrawMode=JAM2;
  180.       wait_LStext1.IText=(UBYTE *)"DID NOT SAVE File...";
  181.       PrintIText(rportwait, &wait_LStext1, 0,0);
  182.       Delay(200);
  183.       CloseWindow(waitwindow);
  184.       return(DONT_OVERWRITE);
  185.       }
  186.    access_mode=MODE_OLDFILE; 
  187.    }
  188.  
  189. if ((saveptr=Open(file_name, access_mode))==0)
  190.    {
  191.    UnLock(save_lock);
  192.    FreeMem(Ssave_buffer, length2);
  193.    FreeMem(Bsave_buffer, length2);
  194.    FreeMem(USsave_buffer, length2);
  195.    FreeMem(Csave_buffer, length1);
  196.    FreeMem(Nsave_buffer, length35);
  197.    FreeMem(Lsave_buffer, length4);
  198.    SetRast(rportwait, yellow);
  199.    wait_LStext1.FrontPen=red;
  200.    wait_LStext1.BackPen=lt_gray;
  201.    wait_LStext1.DrawMode=JAM2;
  202.    wait_LStext1.IText=(UBYTE *)"DID NOT SAVE File...";
  203.    PrintIText(rportwait, &wait_LStext1, 0,0);
  204.    Delay(200);
  205.    CloseWindow(waitwindow);
  206.    return(CANT_LOCK_SAVE_FILE);
  207.    }
  208. else
  209.    {
  210.  
  211.                /*   MONO   */
  212.    Csave_buffer[0]=0x4d;
  213.    Write(saveptr, Csave_buffer, length1);
  214.    Csave_buffer[0]=0x4f;
  215.    Write(saveptr, Csave_buffer, length1);
  216.    Csave_buffer[0]=0x4e;
  217.    Write(saveptr, Csave_buffer, length1);
  218.    Csave_buffer[0]=0x4f;
  219.    Write(saveptr, Csave_buffer, length1);
  220.                /*   SAVE   */
  221.    Csave_buffer[0]=0x53;
  222.    Write(saveptr, Csave_buffer, length1);
  223.    Csave_buffer[0]=0x41;
  224.    Write(saveptr, Csave_buffer, length1);
  225.    Csave_buffer[0]=0x56;
  226.    Write(saveptr, Csave_buffer, length1);
  227.    Csave_buffer[0]=0x45;
  228.    Write(saveptr, Csave_buffer, length1);
  229.    FreeMem(Csave_buffer, length1);
  230.  
  231.  
  232.                /*   DATA   */    
  233.    Ssave_buffer[0]=REDX;
  234.    Write(saveptr, Ssave_buffer, length2); 
  235.    Ssave_buffer[0]=REDY;
  236.    Write(saveptr, Ssave_buffer, length2); 
  237.    Ssave_buffer[0]=GREENX;
  238.    Write(saveptr, Ssave_buffer, length2); 
  239.    Ssave_buffer[0]=GREENY;
  240.    Write(saveptr, Ssave_buffer, length2); 
  241.    Ssave_buffer[0]=BLUEX;
  242.    Write(saveptr, Ssave_buffer, length2); 
  243.    Ssave_buffer[0]=BLUEY;
  244.    Write(saveptr, Ssave_buffer, length2); 
  245.    Ssave_buffer[0]=YELLOWX;
  246.    Write(saveptr, Ssave_buffer, length2); 
  247.    Ssave_buffer[0]=YELLOWY;
  248.    Write(saveptr, Ssave_buffer, length2);
  249.    FreeMem(Ssave_buffer, length2); 
  250.  
  251.    Bsave_buffer[0]=done;
  252.    Write(saveptr, Bsave_buffer, length2);
  253.    Bsave_buffer[0]=doublerr;
  254.    Write(saveptr, Bsave_buffer, length2);
  255.    Bsave_buffer[0]=doubleutil;
  256.    Write(saveptr, Bsave_buffer, length2);
  257.    Bsave_buffer[0]=jaildoubled;
  258.    Write(saveptr, Bsave_buffer, length2);
  259.    Bsave_buffer[0]=trieddoubles;
  260.    Write(saveptr, Bsave_buffer, length2);
  261.    Bsave_buffer[0]=trydoublethrice;
  262.    Write(saveptr, Bsave_buffer, length2);
  263.    Bsave_buffer[0]=doublesrolled;
  264.    Write(saveptr, Bsave_buffer, length2);
  265.    Bsave_buffer[0]=isinjail[0];
  266.    Write(saveptr, Bsave_buffer, length2);
  267.    Bsave_buffer[0]=isinjail[1];
  268.    Write(saveptr, Bsave_buffer, length2);
  269.    Bsave_buffer[0]=isinjail[2];
  270.    Write(saveptr, Bsave_buffer, length2);
  271.    Bsave_buffer[0]=isinjail[3];
  272.    Write(saveptr, Bsave_buffer, length2);
  273.    Bsave_buffer[0]=notplaying[0];
  274.    Write(saveptr, Bsave_buffer, length2);
  275.    Bsave_buffer[0]=notplaying[1];
  276.    Write(saveptr, Bsave_buffer, length2);
  277.    Bsave_buffer[0]=notplaying[2];
  278.    Write(saveptr, Bsave_buffer, length2);
  279.    Bsave_buffer[0]=notplaying[3];
  280.    Write(saveptr, Bsave_buffer, length2);
  281.    Bsave_buffer[0]=ismono[0];
  282.    Write(saveptr, Bsave_buffer, length2);
  283.    Bsave_buffer[0]=ismono[1];
  284.    Write(saveptr, Bsave_buffer, length2);
  285.    Bsave_buffer[0]=ismono[2];
  286.    Write(saveptr, Bsave_buffer, length2);
  287.    Bsave_buffer[0]=ismono[3];
  288.    Write(saveptr, Bsave_buffer, length2);
  289.    Bsave_buffer[0]=ismono[4];
  290.    Write(saveptr, Bsave_buffer, length2);
  291.    Bsave_buffer[0]=ismono[5];
  292.    Write(saveptr, Bsave_buffer, length2);
  293.    Bsave_buffer[0]=ismono[6];
  294.    Write(saveptr, Bsave_buffer, length2);
  295.    Bsave_buffer[0]=ismono[7];
  296.    Write(saveptr, Bsave_buffer, length2);
  297.    Bsave_buffer[0]=ismono[8];
  298.    Write(saveptr, Bsave_buffer, length2);
  299.    Bsave_buffer[0]=ismono[9];
  300.    Write(saveptr, Bsave_buffer, length2);
  301.    Bsave_buffer[0]=ismono[10];
  302.    Write(saveptr, Bsave_buffer, length2);
  303.    Bsave_buffer[0]=ismono[11];
  304.    Write(saveptr, Bsave_buffer, length2);
  305.    Bsave_buffer[0]=ismono[12];
  306.    Write(saveptr, Bsave_buffer, length2);
  307.    Bsave_buffer[0]=ismono[13];
  308.    Write(saveptr, Bsave_buffer, length2);
  309.    Bsave_buffer[0]=ismono[14];
  310.    Write(saveptr, Bsave_buffer, length2);
  311.    Bsave_buffer[0]=ismono[15];
  312.    Write(saveptr, Bsave_buffer, length2);
  313.    Bsave_buffer[0]=ismono[16];
  314.    Write(saveptr, Bsave_buffer, length2);
  315.    Bsave_buffer[0]=ismono[17];
  316.    Write(saveptr, Bsave_buffer, length2);
  317.    Bsave_buffer[0]=ismono[18];
  318.    Write(saveptr, Bsave_buffer, length2);
  319.    Bsave_buffer[0]=ismono[19];
  320.    Write(saveptr, Bsave_buffer, length2);
  321.    Bsave_buffer[0]=ismono[20];
  322.    Write(saveptr, Bsave_buffer, length2);
  323.    Bsave_buffer[0]=ismono[21];
  324.    Write(saveptr, Bsave_buffer, length2);
  325.    Bsave_buffer[0]=ismono[22];
  326.    Write(saveptr, Bsave_buffer, length2);
  327.    Bsave_buffer[0]=ismono[23];
  328.    Write(saveptr, Bsave_buffer, length2);
  329.    Bsave_buffer[0]=ismono[24];
  330.    Write(saveptr, Bsave_buffer, length2);
  331.    Bsave_buffer[0]=ismono[25];
  332.    Write(saveptr, Bsave_buffer, length2);
  333.    Bsave_buffer[0]=ismono[26];
  334.    Write(saveptr, Bsave_buffer, length2);
  335.    Bsave_buffer[0]=ismono[27];
  336.    Write(saveptr, Bsave_buffer, length2);
  337.    Bsave_buffer[0]=ismono[28];
  338.    Write(saveptr, Bsave_buffer, length2);
  339.    Bsave_buffer[0]=ismono[29];
  340.    Write(saveptr, Bsave_buffer, length2);
  341.    Bsave_buffer[0]=ismono[30];
  342.    Write(saveptr, Bsave_buffer, length2);
  343.    Bsave_buffer[0]=ismono[31];
  344.    Write(saveptr, Bsave_buffer, length2);
  345.    Bsave_buffer[0]=ismono[32];
  346.    Write(saveptr, Bsave_buffer, length2);
  347.    Bsave_buffer[0]=ismono[33];
  348.    Write(saveptr, Bsave_buffer, length2);
  349.    Bsave_buffer[0]=ismono[34];
  350.    Write(saveptr, Bsave_buffer, length2);
  351.    Bsave_buffer[0]=ismono[35];
  352.    Write(saveptr, Bsave_buffer, length2);
  353.    Bsave_buffer[0]=ismono[36];
  354.    Write(saveptr, Bsave_buffer, length2);
  355.    Bsave_buffer[0]=ismono[37];
  356.    Write(saveptr, Bsave_buffer, length2);
  357.    Bsave_buffer[0]=ismono[38];
  358.    Write(saveptr, Bsave_buffer, length2);
  359.    Bsave_buffer[0]=ismono[39];
  360.    Write(saveptr, Bsave_buffer, length2);
  361.    Bsave_buffer[0]=ismorg[0];
  362.    Write(saveptr, Bsave_buffer, length2);
  363.    Bsave_buffer[0]=ismorg[1];
  364.    Write(saveptr, Bsave_buffer, length2);
  365.    Bsave_buffer[0]=ismorg[2];
  366.    Write(saveptr, Bsave_buffer, length2);
  367.    Bsave_buffer[0]=ismorg[3];
  368.    Write(saveptr, Bsave_buffer, length2);
  369.    Bsave_buffer[0]=ismorg[4];
  370.    Write(saveptr, Bsave_buffer, length2);
  371.    Bsave_buffer[0]=ismorg[5];
  372.    Write(saveptr, Bsave_buffer, length2);
  373.    Bsave_buffer[0]=ismorg[6];
  374.    Write(saveptr, Bsave_buffer, length2);
  375.    Bsave_buffer[0]=ismorg[7];
  376.    Write(saveptr, Bsave_buffer, length2);
  377.    Bsave_buffer[0]=ismorg[8];
  378.    Write(saveptr, Bsave_buffer, length2);
  379.    Bsave_buffer[0]=ismorg[9];
  380.    Write(saveptr, Bsave_buffer, length2);
  381.    Bsave_buffer[0]=ismorg[10];
  382.    Write(saveptr, Bsave_buffer, length2);
  383.    Bsave_buffer[0]=ismorg[11];
  384.    Write(saveptr, Bsave_buffer, length2);
  385.    Bsave_buffer[0]=ismorg[12];
  386.    Write(saveptr, Bsave_buffer, length2);
  387.    Bsave_buffer[0]=ismorg[13];
  388.    Write(saveptr, Bsave_buffer, length2);
  389.    Bsave_buffer[0]=ismorg[14];
  390.    Write(saveptr, Bsave_buffer, length2);
  391.    Bsave_buffer[0]=ismorg[15];
  392.    Write(saveptr, Bsave_buffer, length2);
  393.    Bsave_buffer[0]=ismorg[16];
  394.    Write(saveptr, Bsave_buffer, length2);
  395.    Bsave_buffer[0]=ismorg[17];
  396.    Write(saveptr, Bsave_buffer, length2);
  397.    Bsave_buffer[0]=ismorg[18];
  398.    Write(saveptr, Bsave_buffer, length2);
  399.    Bsave_buffer[0]=ismorg[19];
  400.    Write(saveptr, Bsave_buffer, length2);
  401.    Bsave_buffer[0]=ismorg[20];
  402.    Write(saveptr, Bsave_buffer, length2);
  403.    Bsave_buffer[0]=ismorg[21];
  404.    Write(saveptr, Bsave_buffer, length2);
  405.    Bsave_buffer[0]=ismorg[22];
  406.    Write(saveptr, Bsave_buffer, length2);
  407.    Bsave_buffer[0]=ismorg[23];
  408.    Write(saveptr, Bsave_buffer, length2);
  409.    Bsave_buffer[0]=ismorg[24];
  410.    Write(saveptr, Bsave_buffer, length2);
  411.    Bsave_buffer[0]=ismorg[25];
  412.    Write(saveptr, Bsave_buffer, length2);
  413.    Bsave_buffer[0]=ismorg[26];
  414.    Write(saveptr, Bsave_buffer, length2);
  415.    Bsave_buffer[0]=ismorg[27];
  416.    Write(saveptr, Bsave_buffer, length2);
  417.    Bsave_buffer[0]=ismorg[28];
  418.    Write(saveptr, Bsave_buffer, length2);
  419.    Bsave_buffer[0]=ismorg[29];
  420.    Write(saveptr, Bsave_buffer, length2);
  421.    Bsave_buffer[0]=ismorg[30];
  422.    Write(saveptr, Bsave_buffer, length2);
  423.    Bsave_buffer[0]=ismorg[31];
  424.    Write(saveptr, Bsave_buffer, length2);
  425.    Bsave_buffer[0]=ismorg[32];
  426.    Write(saveptr, Bsave_buffer, length2);
  427.    Bsave_buffer[0]=ismorg[33];
  428.    Write(saveptr, Bsave_buffer, length2);
  429.    Bsave_buffer[0]=ismorg[34];
  430.    Write(saveptr, Bsave_buffer, length2);
  431.    Bsave_buffer[0]=ismorg[35];
  432.    Write(saveptr, Bsave_buffer, length2);
  433.    Bsave_buffer[0]=ismorg[36];
  434.    Write(saveptr, Bsave_buffer, length2);
  435.    Bsave_buffer[0]=ismorg[37];
  436.    Write(saveptr, Bsave_buffer, length2);
  437.    Bsave_buffer[0]=ismorg[38];
  438.    Write(saveptr, Bsave_buffer, length2);
  439.    Bsave_buffer[0]=ismorg[39];
  440.    Write(saveptr, Bsave_buffer, length2);
  441.    FreeMem(Bsave_buffer, length2);
  442.  
  443.    USsave_buffer[0]=nhp;
  444.    Write(saveptr, USsave_buffer, length2);
  445.    USsave_buffer[0]=ncp;
  446.    Write(saveptr, USsave_buffer, length2);
  447.    USsave_buffer[0]=ntp;
  448.    Write(saveptr, USsave_buffer, length2);
  449.    USsave_buffer[0]=nsp;
  450.    Write(saveptr, USsave_buffer, length2);
  451.    USsave_buffer[0]=nowrolling;
  452.    Write(saveptr, USsave_buffer, length2);
  453.    USsave_buffer[0]=numdoubles;
  454.    Write(saveptr, USsave_buffer, length2);
  455.    USsave_buffer[0]=typeplayer0;
  456.    Write(saveptr, USsave_buffer, length2);
  457.    USsave_buffer[0]=typeplayer1;
  458.    Write(saveptr, USsave_buffer, length2);
  459.    USsave_buffer[0]=typeplayer2;
  460.    Write(saveptr, USsave_buffer, length2);
  461.    USsave_buffer[0]=typeplayer3;
  462.    Write(saveptr, USsave_buffer, length2);
  463.    USsave_buffer[0]=playerat[0];
  464.    Write(saveptr, USsave_buffer, length2);
  465.    USsave_buffer[0]=playerat[1];
  466.    Write(saveptr, USsave_buffer, length2);
  467.    USsave_buffer[0]=playerat[2];
  468.    Write(saveptr, USsave_buffer, length2);
  469.    USsave_buffer[0]=playerat[3];
  470.    Write(saveptr, USsave_buffer, length2);
  471.    USsave_buffer[0]=freecard[0];
  472.    Write(saveptr, USsave_buffer, length2);
  473.    USsave_buffer[0]=freecard[1];
  474.    Write(saveptr, USsave_buffer, length2);
  475.    USsave_buffer[0]=freecard[2];
  476.    Write(saveptr, USsave_buffer, length2);
  477.    USsave_buffer[0]=freecard[3];
  478.    Write(saveptr, USsave_buffer, length2);
  479.    USsave_buffer[0]=numutil[0];
  480.    Write(saveptr, USsave_buffer, length2);
  481.    USsave_buffer[0]=numutil[1];
  482.    Write(saveptr, USsave_buffer, length2);
  483.    USsave_buffer[0]=numutil[2];
  484.    Write(saveptr, USsave_buffer, length2);
  485.    USsave_buffer[0]=numutil[3];
  486.    Write(saveptr, USsave_buffer, length2);
  487.    USsave_buffer[0]=numrr[0];
  488.    Write(saveptr, USsave_buffer, length2);
  489.    USsave_buffer[0]=numrr[1];
  490.    Write(saveptr, USsave_buffer, length2);
  491.    USsave_buffer[0]=numrr[2];
  492.    Write(saveptr, USsave_buffer, length2);
  493.    USsave_buffer[0]=numrr[3];
  494.    Write(saveptr, USsave_buffer, length2);
  495.    USsave_buffer[0]=jaildouble[0];
  496.    Write(saveptr, USsave_buffer, length2);
  497.    USsave_buffer[0]=jaildouble[1];
  498.    Write(saveptr, USsave_buffer, length2);
  499.    USsave_buffer[0]=jaildouble[2];
  500.    Write(saveptr, USsave_buffer, length2);
  501.    USsave_buffer[0]=jaildouble[3];
  502.    Write(saveptr, USsave_buffer, length2);
  503.    USsave_buffer[0]=owner[0];
  504.    Write(saveptr, USsave_buffer, length2);
  505.    USsave_buffer[0]=owner[1];
  506.    Write(saveptr, USsave_buffer, length2);
  507.    USsave_buffer[0]=owner[2];
  508.    Write(saveptr, USsave_buffer, length2);
  509.    USsave_buffer[0]=owner[3];
  510.    Write(saveptr, USsave_buffer, length2);
  511.    USsave_buffer[0]=owner[4];
  512.    Write(saveptr, USsave_buffer, length2);
  513.    USsave_buffer[0]=owner[5];
  514.    Write(saveptr, USsave_buffer, length2);
  515.    USsave_buffer[0]=owner[6];
  516.    Write(saveptr, USsave_buffer, length2);
  517.    USsave_buffer[0]=owner[7];
  518.    Write(saveptr, USsave_buffer, length2);
  519.    USsave_buffer[0]=owner[8];
  520.    Write(saveptr, USsave_buffer, length2);
  521.    USsave_buffer[0]=owner[9];
  522.    Write(saveptr, USsave_buffer, length2);
  523.    USsave_buffer[0]=owner[10];
  524.    Write(saveptr, USsave_buffer, length2);
  525.    USsave_buffer[0]=owner[11];
  526.    Write(saveptr, USsave_buffer, length2);
  527.    USsave_buffer[0]=owner[12];
  528.    Write(saveptr, USsave_buffer, length2);
  529.    USsave_buffer[0]=owner[13];
  530.    Write(saveptr, USsave_buffer, length2);
  531.    USsave_buffer[0]=owner[14];
  532.    Write(saveptr, USsave_buffer, length2);
  533.    USsave_buffer[0]=owner[15];
  534.    Write(saveptr, USsave_buffer, length2);
  535.    USsave_buffer[0]=owner[16];
  536.    Write(saveptr, USsave_buffer, length2);
  537.    USsave_buffer[0]=owner[17];
  538.    Write(saveptr, USsave_buffer, length2);
  539.    USsave_buffer[0]=owner[18];
  540.    Write(saveptr, USsave_buffer, length2);
  541.    USsave_buffer[0]=owner[19];
  542.    Write(saveptr, USsave_buffer, length2);
  543.    USsave_buffer[0]=owner[20];
  544.    Write(saveptr, USsave_buffer, length2);
  545.    USsave_buffer[0]=owner[21];
  546.    Write(saveptr, USsave_buffer, length2);
  547.    USsave_buffer[0]=owner[22];
  548.    Write(saveptr, USsave_buffer, length2);
  549.    USsave_buffer[0]=owner[23];
  550.    Write(saveptr, USsave_buffer, length2);
  551.    USsave_buffer[0]=owner[24];
  552.    Write(saveptr, USsave_buffer, length2);
  553.    USsave_buffer[0]=owner[25];
  554.    Write(saveptr, USsave_buffer, length2);
  555.    USsave_buffer[0]=owner[26];
  556.    Write(saveptr, USsave_buffer, length2);
  557.    USsave_buffer[0]=owner[27];
  558.    Write(saveptr, USsave_buffer, length2);
  559.    USsave_buffer[0]=owner[28];
  560.    Write(saveptr, USsave_buffer, length2);
  561.    USsave_buffer[0]=owner[29];
  562.    Write(saveptr, USsave_buffer, length2);
  563.    USsave_buffer[0]=owner[30];
  564.    Write(saveptr, USsave_buffer, length2);
  565.    USsave_buffer[0]=owner[31];
  566.    Write(saveptr, USsave_buffer, length2);
  567.    USsave_buffer[0]=owner[32];
  568.    Write(saveptr, USsave_buffer, length2);
  569.    USsave_buffer[0]=owner[33];
  570.    Write(saveptr, USsave_buffer, length2);
  571.    USsave_buffer[0]=owner[34];
  572.    Write(saveptr, USsave_buffer, length2);
  573.    USsave_buffer[0]=owner[35];
  574.    Write(saveptr, USsave_buffer, length2);
  575.    USsave_buffer[0]=owner[36];
  576.    Write(saveptr, USsave_buffer, length2);
  577.    USsave_buffer[0]=owner[37];
  578.    Write(saveptr, USsave_buffer, length2);
  579.    USsave_buffer[0]=owner[38];
  580.    Write(saveptr, USsave_buffer, length2);
  581.    USsave_buffer[0]=owner[39];
  582.    Write(saveptr, USsave_buffer, length2);
  583.    USsave_buffer[0]=numhouses[0];
  584.    Write(saveptr, USsave_buffer, length2);
  585.    USsave_buffer[0]=numhouses[1];
  586.    Write(saveptr, USsave_buffer, length2);
  587.    USsave_buffer[0]=numhouses[2];
  588.    Write(saveptr, USsave_buffer, length2);
  589.    USsave_buffer[0]=numhouses[3];
  590.    Write(saveptr, USsave_buffer, length2);
  591.    USsave_buffer[0]=numhouses[4];
  592.    Write(saveptr, USsave_buffer, length2);
  593.    USsave_buffer[0]=numhouses[5];
  594.    Write(saveptr, USsave_buffer, length2);
  595.    USsave_buffer[0]=numhouses[6];
  596.    Write(saveptr, USsave_buffer, length2);
  597.    USsave_buffer[0]=numhouses[7];
  598.    Write(saveptr, USsave_buffer, length2);
  599.    USsave_buffer[0]=numhouses[8];
  600.    Write(saveptr, USsave_buffer, length2);
  601.    USsave_buffer[0]=numhouses[9];
  602.    Write(saveptr, USsave_buffer, length2);
  603.    USsave_buffer[0]=numhouses[10];
  604.    Write(saveptr, USsave_buffer, length2);
  605.    USsave_buffer[0]=numhouses[11];
  606.    Write(saveptr, USsave_buffer, length2);
  607.    USsave_buffer[0]=numhouses[12];
  608.    Write(saveptr, USsave_buffer, length2);
  609.    USsave_buffer[0]=numhouses[13];
  610.    Write(saveptr, USsave_buffer, length2);
  611.    USsave_buffer[0]=numhouses[14];
  612.    Write(saveptr, USsave_buffer, length2);
  613.    USsave_buffer[0]=numhouses[15];
  614.    Write(saveptr, USsave_buffer, length2);
  615.    USsave_buffer[0]=numhouses[16];
  616.    Write(saveptr, USsave_buffer, length2);
  617.    USsave_buffer[0]=numhouses[17];
  618.    Write(saveptr, USsave_buffer, length2);
  619.    USsave_buffer[0]=numhouses[18];
  620.    Write(saveptr, USsave_buffer, length2);
  621.    USsave_buffer[0]=numhouses[19];
  622.    Write(saveptr, USsave_buffer, length2);
  623.    USsave_buffer[0]=numhouses[20];
  624.    Write(saveptr, USsave_buffer, length2);
  625.    USsave_buffer[0]=numhouses[21];
  626.    Write(saveptr, USsave_buffer, length2);
  627.    USsave_buffer[0]=numhouses[22];
  628.    Write(saveptr, USsave_buffer, length2);
  629.    USsave_buffer[0]=numhouses[23];
  630.    Write(saveptr, USsave_buffer, length2);
  631.    USsave_buffer[0]=numhouses[24];
  632.    Write(saveptr, USsave_buffer, length2);
  633.    USsave_buffer[0]=numhouses[25];
  634.    Write(saveptr, USsave_buffer, length2);
  635.    USsave_buffer[0]=numhouses[26];
  636.    Write(saveptr, USsave_buffer, length2);
  637.    USsave_buffer[0]=numhouses[27];
  638.    Write(saveptr, USsave_buffer, length2);
  639.    USsave_buffer[0]=numhouses[28];
  640.    Write(saveptr, USsave_buffer, length2);
  641.    USsave_buffer[0]=numhouses[29];
  642.    Write(saveptr, USsave_buffer, length2);
  643.    USsave_buffer[0]=numhouses[30];
  644.    Write(saveptr, USsave_buffer, length2);
  645.    USsave_buffer[0]=numhouses[31];
  646.    Write(saveptr, USsave_buffer, length2);
  647.    USsave_buffer[0]=numhouses[32];
  648.    Write(saveptr, USsave_buffer, length2);
  649.    USsave_buffer[0]=numhouses[33];
  650.    Write(saveptr, USsave_buffer, length2);
  651.    USsave_buffer[0]=numhouses[34];
  652.    Write(saveptr, USsave_buffer, length2);
  653.    USsave_buffer[0]=numhouses[35];
  654.    Write(saveptr, USsave_buffer, length2);
  655.    USsave_buffer[0]=numhouses[36];
  656.    Write(saveptr, USsave_buffer, length2);
  657.    USsave_buffer[0]=numhouses[37];
  658.    Write(saveptr, USsave_buffer, length2);
  659.    USsave_buffer[0]=numhouses[38];
  660.    Write(saveptr, USsave_buffer, length2);
  661.    USsave_buffer[0]=numhouses[39];
  662.    Write(saveptr, USsave_buffer, length2);
  663.    FreeMem(USsave_buffer, length2);
  664.  
  665.    for (iter=0; iter<35; iter++)   Nsave_buffer[iter]=name0[iter];
  666.    Write(saveptr, Nsave_buffer, length35);
  667.    for (iter=0; iter<35; iter++)   Nsave_buffer[iter]=name1[iter];
  668.    Write(saveptr, Nsave_buffer, length35);
  669.    for (iter=0; iter<35; iter++)   Nsave_buffer[iter]=name2[iter];
  670.    Write(saveptr, Nsave_buffer, length35);
  671.    for (iter=0; iter<35; iter++)   Nsave_buffer[iter]=name3[iter];
  672.    Write(saveptr, Nsave_buffer, length35);
  673.    FreeMem(Nsave_buffer, length35);
  674.  
  675.    Lsave_buffer[0]=bankroll[0];
  676.    Write(saveptr, Lsave_buffer, length4);
  677.    Lsave_buffer[0]=bankroll[1];
  678.    Write(saveptr, Lsave_buffer, length4);
  679.    Lsave_buffer[0]=bankroll[2];
  680.    Write(saveptr, Lsave_buffer, length4);
  681.    Lsave_buffer[0]=bankroll[3];
  682.    Write(saveptr, Lsave_buffer, length4);
  683.    Lsave_buffer[0]=bankroll[4];
  684.    Write(saveptr, Lsave_buffer, length4);
  685.    Lsave_buffer[0]=bankroll[5];
  686.    Write(saveptr, Lsave_buffer, length4);
  687.    FreeMem(Lsave_buffer, length4);
  688.    Close(saveptr);
  689.    UnLock(save_lock);
  690.    SetRast(rportwait, yellow);
  691.    wait_LStext1.FrontPen=green;
  692.    wait_LStext2.FrontPen=green;
  693.    wait_LStext1.BackPen=lt_gray;
  694.    wait_LStext2.BackPen=lt_gray;
  695.    wait_LStext1.DrawMode=JAM2;
  696.    wait_LStext2.DrawMode=JAM2;
  697.    wait_LStext1.IText=file_name;
  698.    wait_LStext2.IText=(UBYTE *)"Sucessfully Saved!";
  699.    PrintIText(rportwait, &wait_LStext1, 0,0);
  700.    Delay(200);
  701.    CloseWindow(waitwindow);
  702.    return(GAME_SAVED);
  703.    }
  704. }
  705.  
  706.  
  707.  
  708. VOID jailpark()
  709. {
  710. if (nowrolling == 0)
  711.    {
  712.    REDX=38;
  713.    REDY=174;
  714.    }
  715. if (nowrolling == 1)
  716.    {
  717.    GREENX=50;
  718.    GREENY=174;
  719.    }
  720. if (nowrolling == 2)
  721.    {
  722.    BLUEX=38;
  723.    BLUEY=183;
  724.    }
  725. if (nowrolling == 3)
  726.    {
  727.    YELLOWX=50;
  728.    YELLOWY=183;
  729.    }
  730. WaitTOF();
  731. DrawGels();
  732. }
  733.  
  734. VOID sendtojail()
  735. {
  736. switch (playerat[nowrolling])
  737.    {
  738.    case 2:  
  739.       {
  740.       for (i=224, j=179; i>41; i-=7)
  741.          {
  742.          if (nowrolling == 0)
  743.             {
  744.             REDX=i;
  745.             REDY=j;
  746.             }
  747.          if (nowrolling == 1)
  748.             {
  749.             GREENX=i;
  750.             GREENY=j;
  751.             }  
  752.          if (nowrolling == 2)
  753.             {
  754.             BLUEX=i;
  755.             BLUEY=j;
  756.             }
  757.          if (nowrolling == 3)
  758.             {
  759.             YELLOWX=i;
  760.             YELLOWY=j;
  761.             }
  762.          WaitTOF();
  763.          DrawGels();
  764.          }
  765.       jailpark();
  766.       break;
  767.       }
  768.    case 7:  
  769.       {
  770.       for (i=108, j=179; i>41; i-=4)
  771.          {
  772.          if (nowrolling == 0)
  773.             {
  774.             REDX=i;
  775.             REDY=j;
  776.             }
  777.          if (nowrolling == 1)
  778.             {
  779.             GREENX=i;
  780.             GREENY=j;
  781.             }  
  782.          if (nowrolling == 2)
  783.             {
  784.             BLUEX=i;
  785.             BLUEY=j;
  786.             }
  787.          if (nowrolling == 3)
  788.             {
  789.             YELLOWX=i;
  790.             YELLOWY=j;
  791.             }
  792.          WaitTOF();
  793.          DrawGels();
  794.          }
  795.       jailpark();
  796.       break;
  797.       }
  798.    case 17:
  799.       {
  800.       for (i=42, j=62; j<180; j+=5)
  801.          {
  802.          if (nowrolling == 0)
  803.             {
  804.             REDX=i;
  805.             REDY=j;
  806.             }
  807.          if (nowrolling == 1)
  808.             {
  809.             GREENX=i;
  810.             GREENY=j;
  811.             }  
  812.          if (nowrolling == 2)
  813.             {
  814.             BLUEX=i;
  815.             BLUEY=j;
  816.             }
  817.          if (nowrolling == 3)
  818.             {
  819.             YELLOWX=i;
  820.             YELLOWY=j;
  821.             }
  822.          WaitTOF();
  823.          DrawGels();
  824.          }
  825.       jailpark();
  826.       break;
  827.       }
  828.  
  829.    case 22:
  830.       {  
  831.       for (i=0; i<16; i++)
  832.          {
  833.          if (nowrolling == 0)
  834.             {
  835.         REDX=jailvectorlocation22[i][0];
  836.         REDY=jailvectorlocation22[i][1];
  837.             }
  838.          if (nowrolling == 1)
  839.             {
  840.             GREENX=jailvectorlocation22[i][0];
  841.             GREENY=jailvectorlocation22[i][1];
  842.             }
  843.          if (nowrolling == 2)
  844.             {
  845.             BLUEX=jailvectorlocation22[i][0];
  846.         BLUEY=jailvectorlocation22[i][1];
  847.             }
  848.          if (nowrolling == 3)
  849.             {
  850.         YELLOWX=jailvectorlocation22[i][0];
  851.         YELLOWY=jailvectorlocation22[i][1];
  852.             }
  853.          WaitTOF();
  854.          DrawGels();
  855.          }
  856.       jailpark();
  857.       break;
  858.       }
  859.    case 30:
  860.       {
  861.       for (i=0; i<34; i++)
  862.          {
  863.      if (nowrolling == 0)
  864.             {
  865.         REDX=jailvectorlocation30[i][0];
  866.         REDY=jailvectorlocation30[i][1];
  867.             }
  868.          if (nowrolling == 1)
  869.             {
  870.         GREENX=jailvectorlocation30[i][0];
  871.         GREENY=jailvectorlocation30[i][1];
  872.             }
  873.             if (nowrolling == 2)
  874.             {
  875.         BLUEX=jailvectorlocation30[i][0];
  876.         BLUEY=jailvectorlocation30[i][1];
  877.             }
  878.          if (nowrolling == 3)
  879.             {
  880.         YELLOWX=jailvectorlocation30[i][0];
  881.         YELLOWY=jailvectorlocation30[i][1];
  882.             }
  883.          WaitTOF();
  884.          DrawGels();
  885.          }
  886.       jailpark();
  887.       break;
  888.       }
  889.    case 33:
  890.       {   
  891.       for (i=0; i<31; i++)
  892.          {
  893.          if (nowrolling == 0)
  894.             {
  895.         REDX=jailvectorlocation33[i][0];
  896.         REDY=jailvectorlocation33[i][1];
  897.             }
  898.          if (nowrolling == 1)
  899.             {
  900.         GREENX=jailvectorlocation33[i][0];
  901.         GREENY=jailvectorlocation33[i][1];
  902.             }
  903.             if (nowrolling == 2)
  904.             {
  905.         BLUEX=jailvectorlocation33[i][0];
  906.         BLUEY=jailvectorlocation33[i][1];
  907.             }
  908.          if (nowrolling == 3)
  909.             {
  910.         YELLOWX=jailvectorlocation33[i][0];
  911.         YELLOWY=jailvectorlocation33[i][1];
  912.             }
  913.          WaitTOF();
  914.          DrawGels();
  915.          }
  916.       jailpark();
  917.       break;
  918.       }
  919.    case 36:
  920.       { 
  921.       for (i=0; i<22; i++)
  922.          {
  923.          if (nowrolling == 0)
  924.             {
  925.         REDX=jailvectorlocation36[i][0];
  926.         REDY=jailvectorlocation36[i][1];
  927.             }
  928.          if (nowrolling == 1)
  929.             {
  930.         GREENX=jailvectorlocation36[i][0];
  931.         GREENY=jailvectorlocation36[i][1];
  932.             }
  933.          if (nowrolling == 2)
  934.             {
  935.         BLUEX=jailvectorlocation36[i][0];
  936.         BLUEY=jailvectorlocation36[i][1];
  937.             }
  938.          if (nowrolling == 3)
  939.             {
  940.         YELLOWX=jailvectorlocation36[i][0];
  941.         YELLOWY=jailvectorlocation36[i][1];
  942.             }
  943.          WaitTOF();
  944.          DrawGels();
  945.          }
  946.       jailpark();
  947.       break;
  948.       }
  949.  
  950.    default:
  951.       {
  952.       for (i=0; i<36; i++)
  953.          {
  954.          if (nowrolling == 0)
  955.             {
  956.         REDX=jailvectorlocation30[i][0];
  957.         REDY=jailvectorlocation30[i][1];
  958.             }
  959.          if (nowrolling == 1)
  960.             {
  961.         GREENX=jailvectorlocation30[i][0];
  962.         GREENY=jailvectorlocation30[i][1];
  963.             }
  964.          if (nowrolling == 2)
  965.             {
  966.         BLUEX=jailvectorlocation30[i][0];
  967.         BLUEY=jailvectorlocation30[i][1];
  968.             }
  969.          if (nowrolling == 3)
  970.             {
  971.         YELLOWX=jailvectorlocation30[i][0];
  972.         YELLOWY=jailvectorlocation30[i][1];
  973.             }
  974.          WaitTOF();
  975.          DrawGels();
  976.          }
  977.       jailpark();
  978.       break;
  979.       }
  980.    }
  981. playerat[nowrolling]=99;
  982. isinjail[nowrolling]=TRUE;
  983. }
  984.  
  985. int rnd(min, max)   /*   min and max are INCLUSIVE   */
  986. int min, max;
  987. {
  988. int rnum, low, high;
  989.  
  990. if (min > max)
  991.    {
  992.    low=max;
  993.    high=min;
  994.    }
  995. else
  996.    {
  997.    low=min;
  998.    high=max;
  999.    }
  1000.  
  1001. getrnum:  rnum=rand();
  1002. if (rnum < (high-low+1) )  goto getrnum;
  1003.  
  1004. return((rnum%(high-low+1))+low);
  1005. }
  1006.  
  1007. int random_start()
  1008. {
  1009. int i, first, second, third, fourth;
  1010. UBYTE hold0[35], hold1[35], hold2[35], hold3[35];
  1011.  
  1012. if (nsp == 2)
  1013.    {
  1014.    if (rnd(1,2) == 1)  return(0);
  1015.    else
  1016.       {
  1017.       for (i=0; i<35; i++)
  1018.          {
  1019.          hold0[i]=name0[i];
  1020.          hold1[i]=name1[i];
  1021.      }
  1022.       for (i=0; i<35; i++)
  1023.          {
  1024.      name0[i]=hold1[i];
  1025.      name1[i]=hold0[i];
  1026.      }
  1027.       }
  1028.    return(0);
  1029.    }     
  1030. if (nsp == 3)
  1031.    {
  1032.    first=rnd(1,3);     
  1033.    retwo: second=rnd(1,3);
  1034.    if (first == second)  goto retwo;     
  1035.    rethree:  third=rnd(1,3);
  1036.    if ( (first == third) || (second == third) )  goto rethree;
  1037.    if ( (first > second) && (second > third) )   return(0);
  1038.    for (i=0; i<35; i++)
  1039.       {
  1040.       hold0[i]=name0[i];
  1041.       hold1[i]=name1[i];
  1042.       hold2[i]=name2[i];
  1043.       }
  1044.    /*  if (first == 1)  leave it be   */
  1045.    if (first == 2)
  1046.       {
  1047.       for (i=0; i<35; i++) name0[i]=hold1[i];
  1048.       }
  1049.    if (first == 3)
  1050.       {
  1051.       for (i=0; i<35; i++) name0[i]=hold2[i];
  1052.       }
  1053.    if (second == 1)
  1054.       {
  1055.       for (i=0; i<35; i++) name1[i]=hold0[i];
  1056.       }
  1057.    if (second == 3)
  1058.       {
  1059.       for (i=0; i<35; i++) name1[i]=hold2[i];
  1060.       }
  1061.    if (third == 1)
  1062.       {
  1063.       for (i=0; i<35; i++) name2[i]=hold0[i];
  1064.       }
  1065.    if (third == 2)
  1066.       {
  1067.       for (i=0; i<35; i++) name2[i]=hold1[i];
  1068.       }
  1069.    return(0);
  1070.    }
  1071.  
  1072. if (nsp == 4)
  1073.    {
  1074.    first=rnd(1,4);     
  1075.    retwo4: second=rnd(1,4);
  1076.    if (first == second)  goto retwo4;     
  1077.    rethree4:  third=rnd(1,4);
  1078.    if ( (first == third) || (second == third) )  goto rethree4;
  1079.    refour4:  fourth=rnd(1,4); 
  1080.    if ( (first == fourth) || (second == fourth) || (third == fourth) )
  1081.       goto refour4;
  1082.    if ( (first > second) && (second > third) && (third > fourth) )  return(0);
  1083.    for (i=0; i<35; i++)
  1084.       {
  1085.       hold0[i]=name0[i];
  1086.       hold1[i]=name1[i];
  1087.       hold2[i]=name2[i];
  1088.       hold3[i]=name3[i];
  1089.       }
  1090.    /*  if (first == 1)  leave it be   */
  1091.    if (first == 2)
  1092.       {
  1093.       for (i=0; i<35; i++) name0[i]=hold1[i];
  1094.       }
  1095.    if (first == 3)
  1096.       {
  1097.       for (i=0; i<35; i++) name0[i]=hold2[i];
  1098.       }
  1099.    if (first == 4)
  1100.       {
  1101.       for (i=0; i<35; i++) name0[i]=hold3[i];
  1102.       }
  1103.    if (second == 1)
  1104.       {
  1105.       for (i=0; i<35; i++) name1[i]=hold0[i];
  1106.       }
  1107.    if (second == 3)
  1108.       {
  1109.       for (i=0; i<35; i++) name1[i]=hold2[i];
  1110.       }
  1111.    if (second == 4)
  1112.       {
  1113.       for (i=0; i<35; i++) name1[i]=hold3[i];
  1114.       }
  1115.    if (third == 1)
  1116.       {
  1117.       for (i=0; i<35; i++) name2[i]=hold0[i];
  1118.       }
  1119.    if (third == 2)
  1120.       {
  1121.       for (i=0; i<35; i++) name2[i]=hold1[i];
  1122.       }
  1123.    if (third == 4)
  1124.       {
  1125.       for (i=0; i<35; i++) name2[i]=hold3[i];
  1126.       }
  1127.    if (fourth == 1)
  1128.       {
  1129.       for (i=0; i<35; i++) name3[i]=hold0[i];
  1130.       }
  1131.    if (fourth == 2)
  1132.       {
  1133.       for (i=0; i<35; i++) name3[i]=hold1[i];
  1134.       }
  1135.    if (fourth == 3)
  1136.       {
  1137.       for (i=0; i<35; i++) name3[i]=hold3[i];
  1138.       }
  1139.    }
  1140. }
  1141.