home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / alib / d1xx / d161 / lgz.lha / LGZ / Data.c < prev    next >
C/C++ Source or Header  |  1988-10-02  |  25KB  |  599 lines

  1. #include <exec/types.h>
  2. #include <graphics/gfxbase.h>
  3. #include <stdio.h>
  4. #include <intuition/intuition.h>
  5. struct Screen *stdscreen;          /* Used in file requester - same as s*/ 
  6. #include <STDFile.c>
  7.  
  8. #define  DEPTH    5L       /* number of pixel planes */
  9. #define  NMAP     32       /* 2 to the DEPTH power   */
  10.  
  11. #define  SH       256      /* screen height */
  12. #define  SW       320      /* screen width  */
  13. #define  WH       (SH-10)  /* window height */
  14. #define  WW       SW       /* window width  */
  15. #define  MAXFILENAME  64  /* maximum number of chars in requester */
  16.  
  17. struct NewScreen ns = {         /*****************/
  18.    0 ,                     /* LeftEdge      */
  19.    0 ,                     /* TopEdge       */
  20.    SW ,                    /* Width         */
  21.    SH ,                    /* Height        */
  22.    DEPTH ,                 /* Depth         */
  23.    2 ,                     /* DetailPen     */
  24.    1 ,                     /* BlockPen      */
  25.    0 ,                     /* ViewModes     */
  26.    CUSTOMSCREEN,           /* Type          */
  27.    NULL ,                  /* *Font         */
  28.    (UBYTE *)"Let's Get Ziviliced!",/* *DefaultTitle */
  29.    NULL ,                  /* *Gadgets      */
  30.    NULL                    /* *CustomBitMap */
  31. };                              /*****************/
  32.  
  33. #define NUM_PAIRS 5
  34.  
  35. SHORT TypePairs[] =
  36. {
  37.    0,  0,
  38.   71,  0,
  39.   71, 11,
  40.    0, 11,
  41.    0,  0
  42. };
  43.  
  44. struct Border TypeOnBorder =
  45.    { 0,0,1,0,JAM1,NUM_PAIRS,TypePairs,NULL};
  46.  
  47. struct Border TypeOffBorder =
  48.    { 0,0,0,0,JAM1,NUM_PAIRS,TypePairs,NULL};
  49.  
  50. SHORT ColPairs[] =
  51. {
  52.    0,  0,
  53.   12,  0,
  54.   12,  6,
  55.    0,  6,
  56.    0,  0
  57. };
  58.  
  59. struct Border ColBorder =
  60.    { 0,0,2,0,JAM1,NUM_PAIRS,ColPairs,NULL};
  61.  
  62. struct IntuiText ReadyText =
  63.    {3,2,JAM2, 4, 1, NULL,(UBYTE *) "READY", NULL };
  64.  
  65. SHORT Pairs1[] = {
  66.   0,  0,
  67.  51,  0,
  68.  51, 11,
  69.  0,  11,
  70.  0,  0
  71.  };
  72.   
  73. struct Border ReadyBorder = {
  74.   -1, -1,
  75.   1, 0, JAM1,
  76.   NUM_PAIRS,
  77.   Pairs1,
  78.   NULL
  79. };
  80.  
  81. struct IntuiText WPDSText[]=
  82. {
  83.    {1,0,JAM2,0,0,NULL,(UBYTE *)"Woods: ",NULL},
  84.    {1,0,JAM2,0,0,NULL,(UBYTE *)"Plains:",NULL},
  85.    {1,0,JAM2,0,0,NULL,(UBYTE *)"Desert:",NULL},
  86.    {1,0,JAM2,0,0,NULL,(UBYTE *)"End Edit",NULL}
  87. };
  88.  
  89. #define BOOL_GAD1 5
  90.  
  91. struct Gadget ReadyGadget = {
  92.    NULL,
  93.    260, 10, 
  94.    50, 10, 
  95.    GADGHNONE,
  96.    NULL,
  97.    BOOLGADGET, 
  98.    (APTR)&ReadyBorder,
  99.    NULL,
  100.    &ReadyText, NULL, NULL, BOOL_GAD1, NULL
  101. };
  102.  
  103. struct IntuiText YesText =
  104.    { 4,1,JAM2,7,4,NULL,(UBYTE *)"Do it!",NULL};
  105.  
  106. struct IntuiText NoText =
  107.    { 10,1,JAM2,7,4,NULL,(UBYTE *)"Cancel",NULL};
  108.  
  109. struct IntuiText ClearText =
  110.    { 2,1,JAM2,40,10,NULL,(UBYTE *)"Really clear?",NULL};
  111.  
  112. struct IntuiText QuitText =
  113.    { 2,1,JAM2,10,10,NULL,(UBYTE *)"Sure you wanna quit?",NULL};
  114.  
  115. struct NewWindow nw = {         /*****************/
  116.    0 ,                     /* LeftEdge      */
  117.    10 ,                    /* TopEdge       */
  118.    WW ,                    /* Width         */
  119.    WH ,                    /* Height        */
  120.    -1 ,                    /* DetailPen     */
  121.    -1 ,                    /* BlockPen      */
  122.    CLOSEWINDOW             /* IDCMP---Flags */
  123.         | MENUPICK
  124.         | MOUSEBUTTONS
  125.         | GADGETDOWN
  126.         | MOUSEMOVE,
  127.    WINDOWCLOSE             /*   F           */
  128.    | BACKDROP              /*     l         */
  129.    | BORDERLESS            /*       a       */
  130.    | NOCAREREFRESH         /*         g     */
  131.    | ACTIVATE ,            /*           s   */
  132.    &ReadyGadget,           /* *FirstGadget  */
  133.    NULL ,                  /* *CheckMark    */
  134.    (UBYTE *)"The Map",     /* *Title        */
  135.    NULL ,                  /* *Screen       */ /* to be filled in */
  136.    NULL ,                  /* *BitMap       */
  137.    0 ,                     /* MinWidth      */
  138.    0 ,                     /* MinHeight     */
  139.    0 ,                     /* MaxWidth      */
  140.    0 ,                     /* MaxHeight     */
  141.    CUSTOMSCREEN            /* Type          */
  142. };                              /*****phew!!!*****/
  143.  
  144. /*******************************************************/
  145. /* Menu structures Copyrighted by Custom Services 1986 */
  146. /* Made with the Menubuilder program - a good help     */
  147. /*******************************************************/
  148.  
  149. struct IntuiText IText[] =
  150.   {
  151.     { 0, 1, JAM2, 0, 0, NULL, (UBYTE *)"Clear"},
  152.     { 0, 1, JAM2, 0, 0, NULL, (UBYTE *)"Open"},
  153.     { 0, 1, JAM2, 0, 0, NULL, (UBYTE *)"Save"},
  154.     { 0, 1, JAM2, 0, 0, NULL, (UBYTE *)"About"},
  155.     { 0, 1, JAM2, 0, 0, NULL, (UBYTE *)"Quit"},
  156.     { 0, 1, JAM2, 0, 0, NULL, (UBYTE *)"Pixels"},
  157.     { 0, 1, JAM2, 0, 0, NULL, (UBYTE *)"Sink"},
  158.     { 0, 1, JAM2, 0, 0, NULL, (UBYTE *)"Lift"},
  159.     { 0, 1, JAM2, 0, 0, NULL, (UBYTE *)"Compress"},
  160.     { 0, 1, JAM2, 0, 0, NULL, (UBYTE *)"Scroll"},
  161.     { 0, 1, JAM2, 0, 0, NULL, (UBYTE *)"Up"},
  162.     { 0, 1, JAM2, 0, 0, NULL, (UBYTE *)"Down"},
  163.     { 0, 1, JAM2, 0, 0, NULL, (UBYTE *)"Left"},
  164.     { 0, 1, JAM2, 0, 0, NULL, (UBYTE *)"Right"},
  165.     { 0, 1, JAM2, CHECKWIDTH, 0, NULL, (UBYTE *)"Grow      "},
  166.     { 0, 1, JAM2, CHECKWIDTH, 0, NULL, (UBYTE *)"Vegetation"},
  167.     { 0, 1, JAM2, CHECKWIDTH, 0, NULL, (UBYTE *)"Parameters"},
  168.     { 0, 1, JAM2, CHECKWIDTH, 0, NULL, (UBYTE *)"Levelling"},
  169.     { 0, 1, JAM2, CHECKWIDTH, 0, NULL, (UBYTE *)"3D-Map"},
  170.     { 0, 1, JAM2, 0, 0, NULL, (UBYTE *)"Terrain"}, /* These */
  171.     { 0, 1, JAM2, 0, 0, NULL, (UBYTE *)"Growth"},  /* Out!! */
  172.     { 0, 1, JAM2, 0, 0, NULL, (UBYTE *)"Both"}, 
  173.     { 0, 1, JAM2, 0, 0, NULL, (UBYTE *)"Height"},
  174.     { 0, 1, JAM2, 0, 0, NULL, (UBYTE *)"Growth"}, 
  175.     { 0, 1, JAM2, 0, 0, NULL, (UBYTE *)"Written by Lars Clausen."},
  176.     { 0, 1, JAM2, 0, 0, NULL, (UBYTE *)"Intuition assistance:"},
  177.     { 0, 1, JAM2, 0, 0, NULL, (UBYTE *)"     Henrik Clausen."},
  178.     { 0, 1, JAM2, 0, 0, NULL, (UBYTE *)"Scenery generator for"},
  179.     { 0, 1, JAM2, 0, 0, NULL, (UBYTE *)"     Let's Get Ziviliced,"},
  180.     { 0, 1, JAM2, 0, 0, NULL, (UBYTE *)"Play-by-Mail game by:"},
  181.     { 0, 1, JAM2, 0, 0, NULL, (UBYTE *)"     Malik Hyldtoft."}
  182.   };
  183.  
  184. #define EXTRA 20
  185. #define FLAGSA ITEMTEXT | ITEMENABLED | HIGHBOX
  186. #define FLAGSB ITEMTEXT | ITEMENABLED | COMMSEQ | HIGHBOX
  187. #define FLAGSC CHECKIT  | ITEMTEXT    | MENUTOGGLE | ITEMENABLED | CHECKED | HIGHBOX
  188. #define FLAGSD ITEMTEXT | HIGHBOX
  189. #define FLAGSAU ITEMTEXT | HIGHBOX
  190. #define FLAGSBU ITEMTEXT | COMMSEQ | HIGHBOX
  191. #define FLAGSCU CHECKIT  | ITEMTEXT    | MENUTOGGLE | CHECKED | HIGHBOX
  192.  
  193. struct MenuItem M1I7[] =
  194.   {
  195.     {&M1I7[ 1], 64,  2, 194, 10,FLAGSA,0,(APTR)&IText[24],NULL,NULL},
  196.     {&M1I7[ 2], 64, 12, 194, 10,FLAGSA,0,(APTR)&IText[25],NULL,NULL},
  197.     {&M1I7[ 3], 64, 22, 194, 10,FLAGSA,0,(APTR)&IText[26],NULL,NULL},
  198.     {&M1I7[ 4], 64, 32, 194, 10,FLAGSA,0,(APTR)&IText[27],NULL,NULL},
  199.     {&M1I7[ 5], 64, 42, 194, 10,FLAGSA,0,(APTR)&IText[28],NULL,NULL},
  200.     {&M1I7[ 6], 64, 52, 194, 10,FLAGSA,0,(APTR)&IText[29],NULL,NULL},
  201.     {NULL     , 64, 62, 194, 10,FLAGSA,0,(APTR)&IText[30],NULL,NULL},
  202. };
  203.  
  204. struct MenuItem M1I4[] = 
  205.   {
  206.     {&M1I4[ 1], 64,  2, 84, 10,FLAGSB,0,(APTR)&IText[10],NULL,'U',NULL},
  207.     {&M1I4[ 2], 64, 12, 84, 10,FLAGSB,0,(APTR)&IText[11],NULL,'D',NULL},
  208.     {&M1I4[ 3], 64, 22, 84, 10,FLAGSB,0,(APTR)&IText[12],NULL,'L',NULL},
  209.     {NULL   , 64, 32, 84, 10,FLAGSB,0,(APTR)&IText[13],NULL,'R',NULL} 
  210.   };
  211.  
  212. /* struct MenuItem M2I2[] = 
  213.   { /* These out 
  214.     {&M2I2[ 1],84,2,60,10,FLAGSA,0,(APTR)&IText[19],NULL,NULL,NULL},
  215.     {NULL   , 84,12,60,10,FLAGSA,0,(APTR)&IText[20],NULL,NULL,NULL} 
  216.   };
  217. */
  218.  
  219. struct MenuItem M3I3[] =
  220.   {
  221.     {&M3I3[ 1],80,2,80,10,FLAGSB,0,(APTR)&IText[21],NULL,'B',NULL},
  222.     {&M3I3[ 2],80,12,80,10,FLAGSB,0,(APTR)&IText[22],NULL,'H',NULL},
  223.     {NULL     ,80,22,80,10,FLAGSB,0,(APTR)&IText[23],NULL,'G',NULL};
  224.  
  225. struct MenuItem M0[] = 
  226.   {
  227.     {&M0[ 1],  0,  0, 80, 10,FLAGSB,0,(APTR)&IText[ 0],NULL,'C',NULL},
  228.     {&M0[ 2],  0, 12, 80, 10,FLAGSB,0,(APTR)&IText[ 1],NULL,'O',NULL},
  229.     {&M0[ 3],  0, 24, 80, 10,FLAGSB,0,(APTR)&IText[ 2],NULL,'S',NULL},
  230.     {&M0[ 4],  0, 36, 80, 10,FLAGSA,0,(APTR)&IText[ 3],NULL,NULL,&M1I7[0]},
  231.     {NULL   ,  0, 48, 80, 10,FLAGSB,0,(APTR)&IText[ 4],NULL,'Q',NULL} 
  232.   };
  233.  
  234. struct MenuItem M1[] = 
  235.   {
  236.     {&M1[ 1],  0,  0, 74, 10,FLAGSB,0,(APTR)&IText[ 5],NULL,'E',NULL},
  237.     {&M1[ 2],  0, 12, 74, 10,FLAGSA,0,(APTR)&IText[ 6],NULL,NULL,NULL},
  238.     {&M1[ 3],  0, 24, 74, 10,FLAGSA,0,(APTR)&IText[ 7],NULL,NULL,NULL},
  239.     {&M1[ 4],  0, 36, 74, 10,FLAGSA,0,(APTR)&IText[ 8],NULL,NULL,NULL},
  240.     {NULL,  0, 46, 74, 10,FLAGSA,0,(APTR)&IText[ 9],NULL,NULL,&M1I4[0]},
  241.   };
  242.  
  243. struct MenuItem M2[] = 
  244.   {
  245.     {&M2[ 1],  0,  0, 110+EXTRA, 10,FLAGSA,0,(APTR)&IText[14],NULL,NULL,&M3I3[0]},
  246.     {&M2[ 2],  0, 12, 110+EXTRA, 10,FLAGSC | COMMSEQ,0,(APTR)&IText[15],NULL,'V',NULL},
  247.     {&M2[ 3],  0, 24, 110+EXTRA, 10,FLAGSA,0,(APTR)&IText[16],NULL,NULL,NULL}, 
  248.     {&M2[ 4],  0, 36, 110+EXTRA, 10,FLAGSD,0,(APTR)&IText[17],NULL,NULL,NULL}, 
  249.     {NULL   ,  0, 48, 110+EXTRA, 10,FLAGSD,0,(APTR)&IText[18],NULL,NULL,NULL} 
  250.   };
  251.  
  252. struct Menu TheMenu[] =
  253.   {
  254.     {&TheMenu[ 1],  2,  0, 80, 10,MENUENABLED," Project               ",&M0[0]},
  255.     {&TheMenu[ 2], 80,  0, 64, 10,MENUENABLED," Edit                  ",&M1[0]},
  256.     { NULL,       150,  0,100, 10,MENUENABLED," New Map               ",&M2[0]} 
  257.   };
  258.  
  259. struct Menu *MyMenu = &TheMenu[0];
  260.  
  261. USHORT ExitData[] = { 
  262. 0xffff,0x8000, 0xffff,0x8000, 0xc000,0x8000, 0xc000,0x8000, 0xc000,0x8000,
  263. 0xc000,0x8000, 0xc000,0x8000, 0xc000,0x8000, 0xc000,0x8000, 0xc000,0x8000,
  264. 0xc000,0x8000, 0xc000,0x8000, 0xc000,0x8000, 0xc000,0x8000, 0xc000,0x8000,
  265. 0xc000,0x8000, 0xc000,0x8000, 0xc000,0x8000, 0xc000,0x8000, 0xc000,0x8000,
  266. 0xc000,0x8000, 0xc000,0x8000, 0xc000,0x8000, 0xc000,0x8000, 0xc000,0x8000,
  267. 0xc000,0x8000, 0xc000,0x8000, 0xc000,0x8000, 0xc000,0x8000, 0xc000,0x8000,
  268. 0xc000,0x8000, 0xc000,0x8000, 0xc000,0x8000, 0xc000,0x8000, 0xc000,0x8000,
  269. 0xc000,0x8000, 0xc000,0x8000, 0xc000,0x8000, 0xc000,0x8000, 0xc000,0x8000,
  270. 0xc000,0x8000, 0xc000,0x8000, 0xc000,0x8000, 0xc000,0x8000, 0xc000,0x8000,
  271. 0x8000,0x8000, 0xffff,0x8000,
  272. 0x0,0x0, 0x0,0x8000, 0x1,0x8000, 0x1,0x8000, 0x1,0x8000, 0xfe1,0x8000,
  273. 0x661,0x8000, 0x601,0x8000, 0x781,0x8000, 0x601,0x8000, 0x661,0x8000,
  274. 0xfe1,0x8000, 0x1,0x8000, 0x1,0x8000, 0x1,0x8000, 0x1,0x8000, 0x1,0x8000,
  275. 0x631,0x8000, 0x361,0x8000, 0x1c1,0x8000, 0x361,0x8000, 0x631,0x8000,
  276. 0x1,0x8000, 0x1,0x8000, 0x1,0x8000, 0x181,0x8000, 0x1,0x8000, 0x381,0x8000,
  277. 0x181,0x8000, 0x181,0x8000, 0x181,0x8000, 0x3c1,0x8000, 0x1,0x8000, 0x1,0x8000,
  278. 0x1,0x8000, 0x81,0x8000, 0x181,0x8000, 0x3e1,0x8000, 0x181,0x8000,
  279. 0x181,0x8000, 0x1a1,0x8000, 0xc1,0x8000, 0x1,0x8000, 0x1,0x8000, 0x1,0x8000,
  280. 0x7fff,0x8000, 0xffff,0x8000,
  281. 0x0,0x0, 0x0,0x8000, 0x3ffe,0x8000, 0x3ffe,0x8000, 0x3ffe,0x8000,
  282. 0x301e,0x8000, 0x399e,0x8000, 0x39fe,0x8000, 0x387e,0x8000, 0x39fe,0x8000,
  283. 0x399e,0x8000, 0x301e,0x8000, 0x3ffe,0x8000, 0x3ffe,0x8000, 0x3ffe,0x8000,
  284. 0x3ffe,0x8000, 0x3ffe,0x8000, 0x39ce,0x8000, 0x3c9e,0x8000, 0x3e3e,0x8000,
  285. 0x3c9e,0x8000, 0x39ce,0x8000, 0x3ffe,0x8000, 0x3ffe,0x8000, 0x3ffe,0x8000,
  286. 0x3e7e,0x8000, 0x3ffe,0x8000, 0x3c7e,0x8000, 0x3e7e,0x8000, 0x3e7e,0x8000,
  287. 0x3e7e,0x8000, 0x3c3e,0x8000, 0x3ffe,0x8000, 0x3ffe,0x8000, 0x3ffe,0x8000,
  288. 0x3f7e,0x8000, 0x3e7e,0x8000, 0x3c1e,0x8000, 0x3e7e,0x8000, 0x3e7e,0x8000,
  289. 0x3e5e,0x8000, 0x3f3e,0x8000, 0x3ffe,0x8000, 0x3ffe,0x8000, 0x3ffe,0x8000,
  290. 0x0,0x8000, 0xffff,0x8000,
  291. 0xffff,0x8000, 0x8000,0x0, 0x8000,0x0, 0x8000,0x0, 0x8000,0x0, 0x8000,0x0,
  292. 0x8000,0x0, 0x8000,0x0, 0x8000,0x0, 0x8000,0x0, 0x8000,0x0, 0x8000,0x0,
  293. 0x8000,0x0, 0x8000,0x0, 0x8000,0x0, 0x8000,0x0, 0x8000,0x0, 0x8000,0x0,
  294. 0x8000,0x0, 0x8000,0x0, 0x8000,0x0, 0x8000,0x0, 0x8000,0x0, 0x8000,0x0,
  295. 0x8000,0x0, 0x8000,0x0, 0x8000,0x0, 0x8000,0x0, 0x8000,0x0, 0x8000,0x0,
  296. 0x8000,0x0, 0x8000,0x0, 0x8000,0x0, 0x8000,0x0, 0x8000,0x0, 0x8000,0x0,
  297. 0x8000,0x0, 0x8000,0x0, 0x8000,0x0, 0x8000,0x0, 0x8000,0x0, 0x8000,0x0,
  298. 0x8000,0x0, 0x8000,0x0, 0x8000,0x0, 0x8000,0x0, 0x0,0x0,
  299. 0xffff,0x8000, 0x8000,0x8000, 0x8000,0x8000, 0x8000,0x8000, 0x8000,0x8000,
  300. 0x8000,0x8000, 0x8000,0x8000, 0x8000,0x8000, 0x8000,0x8000, 0x8000,0x8000,
  301. 0x8000,0x8000, 0x8000,0x8000, 0x8000,0x8000, 0x8000,0x8000, 0x8000,0x8000,
  302. 0x8000,0x8000, 0x8000,0x8000, 0x8000,0x8000, 0x8000,0x8000, 0x8000,0x8000,
  303. 0x8000,0x8000, 0x8000,0x8000, 0x8000,0x8000, 0x8000,0x8000, 0x8000,0x8000,
  304. 0x8000,0x8000, 0x8000,0x8000, 0x8000,0x8000, 0x8000,0x8000, 0x8000,0x8000,
  305. 0x8000,0x8000, 0x8000,0x8000, 0x8000,0x8000, 0x8000,0x8000, 0x8000,0x8000,
  306. 0x8000,0x8000, 0x8000,0x8000, 0x8000,0x8000, 0x8000,0x8000, 0x8000,0x8000,
  307. 0x8000,0x8000, 0x8000,0x8000, 0x8000,0x8000, 0x8000,0x8000, 0x8000,0x8000,
  308. 0x8000,0x8000, 0xffff,0x8000};
  309.  
  310. struct Image ExitImage = 
  311. { 0, 0, 25, 47, 5, (USHORT *)&ExitData[0], 0x1f, 0x0, NULL };
  312.  
  313. struct Gadget ExitGadget =
  314. { NULL, 296, 120, 25, 47, GADGHNONE | GADGIMAGE, GADGIMMEDIATE,
  315.   BOOLGADGET, (APTR)&ExitImage, NULL, NULL, 0x0, 0x0, 0, 0x4 };
  316.  
  317. USHORT DesertData[] = { 
  318. 0xffff,0x8000,0x8000,0x8000,0x8000,0x8780,0x8780,0x8780,0x8000,0x8000,
  319. 0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,
  320. 0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,
  321. 0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,
  322. 0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,
  323. 0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,
  324. 0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,
  325. 0x8000,0x0,
  326. 0x0,0x1,0x1,0x1,0x1,0x301,0x301,0x301,0x1,0x1,0x1,0xf81,0x6c1,0x661,0x661,
  327. 0x661,0x6c1,0xf81,0x1,0x1,0x1,0x1,0x1,0x3c1,0x661,0x7e1,0x601,0x3c1,0x1,
  328. 0x1,0x1,0x1,0x1,0x3e1,0x601,0x3c1,0x61,0x7c1,0x1,0x1,0x1,0x1,0x1,0x3c1,
  329. 0x661,0x7e1,0x601,0x3c1,0x1,0x1,0x1,0x1,0x1,0xec1,0x761,0x661,0x601,0xf01,
  330. 0x1,0x1,0x1,0x81,0x181,0x3e1,0x181,0x181,0x1a1,0xc1,0x1,0x1,0x1,0xffff,
  331. 0x0, 0x0, 0x0, 0x0, 0x0, 0x780, 0x780, 0x780, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  332. 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  333. 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  334. 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  335. 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  336. 0x0, 0x7ffe, 0x7ffe, 0x7ffe, 0x7ffe, 0x7ffe, 0x7ffe, 0x7ffe, 0x7ffe, 0x7ffe,
  337. 0x7ffe, 0x707e, 0x793e, 0x799e, 0x799e, 0x799e, 0x793e, 0x707e, 0x7ffe, 0x7ffe,
  338. 0x7ffe, 0x7ffe, 0x7ffe, 0x7c3e, 0x799e, 0x781e, 0x79fe, 0x7c3e, 0x7ffe, 0x7ffe,
  339. 0x7ffe, 0x7ffe, 0x7ffe, 0x7c1e, 0x79fe, 0x7c3e, 0x7f9e, 0x783e, 0x7ffe, 0x7ffe,
  340. 0x7ffe, 0x7ffe, 0x7ffe, 0x7c3e, 0x799e, 0x781e, 0x79fe, 0x7c3e, 0x7ffe, 0x7ffe,
  341. 0x7ffe, 0x7ffe, 0x7ffe, 0x713e, 0x789e, 0x799e, 0x79fe, 0x70fe, 0x7ffe, 0x7ffe,
  342. 0x7ffe, 0x7f7e, 0x7e7e, 0x7c1e, 0x7e7e, 0x7e7e, 0x7e5e, 0x7f3e, 0x7ffe, 0x7ffe,
  343. 0x7ffe, 0x0};
  344.  
  345. struct Image DesertImage = 
  346. { 0, 0, 16, 72, 4, (USHORT *)&DesertData[0], 0x0F, 0x0, NULL };
  347.  
  348. struct Gadget DesertGadget =
  349. { NULL, 296, 29, 16, 72, GADGHCOMP | GADGIMAGE, RELVERIFY | GADGIMMEDIATE | 
  350.   TOGGLESELECT, BOOLGADGET, (APTR)&DesertImage,
  351.  NULL, NULL, 0x0, 0x0, 0, 0x3 };
  352.  
  353. USHORT PlainsData[] = {
  354. 0xfffc, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8,
  355. 0xe078, 0xf338, 0xf338, 0xf078, 0xf3f8, 0xf3f8, 0xe1f8, 0xfff8, 0xfff8, 0xfff8,
  356. 0xf8f8, 0xfcf8, 0xfcf8, 0xfcf8, 0xfcf8, 0xfcf8, 0xf878, 0xfff8, 0xfff8, 0xfff8,
  357. 0xfff8, 0xfff8, 0xf878, 0xff38, 0xfc38, 0xf338, 0xf898, 0xfff8, 0xfff8, 0xfff8,
  358. 0xfcf8, 0xfff8, 0xf8f8, 0xfcf8, 0xfcf8, 0xfcf8, 0xf878, 0xfff8, 0xfff8, 0xfff8,
  359. 0xfff8, 0xfff8, 0xf078, 0xf338, 0xf338, 0xf338, 0xf338, 0xfff8, 0xfff8, 0xfff8,
  360. 0xfff8, 0xfff8, 0xf838, 0xf3f8, 0xf878, 0xff38, 0xf078, 0xfff8, 0xfff8, 0xfff8,
  361. 0xfff8, 0xfff8, 0x0,
  362. 0x0, 0x4, 0x4, 0x4, 0x4, 0x304, 0x4, 0x4, 0x4, 0x4, 0x1f84, 0xcc4, 0xcc4,
  363. 0xf84, 0xc04, 0xc04, 0x1e04, 0x4, 0x4, 0x4, 0x704, 0x304, 0x304, 0x304, 0x304,
  364. 0x304, 0x784, 0x4, 0x4, 0x4, 0x4, 0x4, 0x784, 0xc4, 0x3c4, 0xcc4, 0x764, 0x4,
  365. 0x4, 0x4, 0x304, 0x4, 0x704, 0x304, 0x304, 0x304, 0x784, 0x4, 0x4, 0x4, 0x4,
  366. 0x4, 0xf84, 0xcc4, 0xcc4, 0xcc4, 0xcc4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x7c4, 0xc04,
  367. 0x784, 0xc4, 0xf84, 0x4, 0x4, 0x4, 0x4, 0x4, 0xfffc,
  368. 0x0, 0x0, 0x0, 0x0, 0x780, 0x780, 0x780, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  369. 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  370. 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  371. 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  372. 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  373. 0x0, 0x7ff8, 0x7ff8, 0x7ff8, 0x7ff8, 0x7ff8, 0x7ff8, 0x7ff8, 0x7ff8, 0x7ff8,
  374. 0x6078, 0x7338, 0x7338, 0x7078, 0x73f8, 0x73f8, 0x61f8, 0x7ff8, 0x7ff8, 0x7ff8,
  375. 0x78f8, 0x7cf8, 0x7cf8, 0x7cf8, 0x7cf8, 0x7cf8, 0x7878, 0x7ff8, 0x7ff8, 0x7ff8,
  376. 0x7ff8, 0x7ff8, 0x7878, 0x7f38, 0x7c38, 0x7338, 0x7898, 0x7ff8, 0x7ff8, 0x7ff8,
  377. 0x7cf8, 0x7ff8, 0x78f8, 0x7cf8, 0x7cf8, 0x7cf8, 0x7878, 0x7ff8, 0x7ff8, 0x7ff8,
  378. 0x7ff8, 0x7ff8, 0x7078, 0x7338, 0x7338, 0x7338, 0x7338, 0x7ff8, 0x7ff8, 0x7ff8,
  379. 0x7ff8, 0x7ff8, 0x7838, 0x73f8, 0x7878, 0x7f38, 0x7078, 0x7ff8, 0x7ff8, 0x7ff8,
  380. 0x7ff8, 0x7ff8, 0x0};
  381.  
  382. struct Image PlainsImage = 
  383. { 0, 0, 14, 73, 4, (USHORT *)&PlainsData[0], 0x0F, 0x0, NULL };
  384.  
  385. struct Gadget PlainsGadget =
  386. { NULL, 259, 100, 14, 73, GADGHCOMP | GADGIMAGE, RELVERIFY | GADGIMMEDIATE | 
  387.   TOGGLESELECT, BOOLGADGET, (APTR)&PlainsImage, NULL, NULL, 0x0, 0x0, 0, 0x2 };
  388.  
  389. USHORT WoodsData[] = {
  390. 0xfffc, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xf878, 0xf878, 0xf878, 0xfff8,
  391. 0xfff8, 0xfff8, 0xe738, 0xe738, 0xe738, 0xe538, 0xe038, 0xe238, 0xe738, 0xfff8,
  392. 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xf878, 0xf338, 0xf338, 0xf338, 0xf878, 0xfff8,
  393. 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xf878, 0xf338, 0xf338, 0xf338, 0xf878, 0xfff8,
  394. 0xfff8, 0xfff8, 0xfe38, 0xff38, 0xf938, 0xf238, 0xf338, 0xf338, 0xf898, 0xfff8,
  395. 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xf838, 0xf3f8, 0xf878, 0xff38, 0xf078, 0xfff8,
  396. 0xfff8, 0xfff8, 0x0,
  397. 0x0, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x18c4, 0x18c4,
  398. 0x18c4, 0x1ac4, 0x1fc4, 0x1dc4, 0x18c4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x784, 0xcc4,
  399. 0xcc4, 0xcc4, 0x784, 0x4, 0x4, 0x4, 0x4, 0x4, 0x784, 0xcc4, 0xcc4, 0xcc4,
  400. 0x784, 0x4, 0x4, 0x4, 0x1c4, 0xc4, 0x6c4, 0xdc4, 0xcc4, 0xcc4, 0x764, 0x4, 0x4,
  401. 0x4, 0x4, 0x4, 0x7c4, 0xc04, 0x784, 0xc4, 0xf84, 0x4, 0x4, 0x4, 0xfffc,
  402. 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x780, 0x780, 0x780, 0x0, 0x0, 0x0, 0x0, 0x0,
  403. 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  404. 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  405. 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  406. 0x0,
  407. 0x0, 0x7ff8, 0x7ff8, 0x7ff8, 0x7ff8, 0x7ff8, 0x7ff8, 0x7ff8, 0x7ff8, 0x7ff8,
  408. 0x7ff8, 0x7ff8, 0x6738, 0x6738, 0x6738, 0x6538, 0x6038, 0x6238, 0x6738, 0x7ff8,
  409. 0x7ff8, 0x7ff8, 0x7ff8, 0x7ff8, 0x7878, 0x7338, 0x7338, 0x7338, 0x7878, 0x7ff8,
  410. 0x7ff8, 0x7ff8, 0x7ff8, 0x7ff8, 0x7878, 0x7338, 0x7338, 0x7338, 0x7878, 0x7ff8,
  411. 0x7ff8, 0x7ff8, 0x7e38, 0x7f38, 0x7938, 0x7238, 0x7338, 0x7338, 0x7898, 0x7ff8,
  412. 0x7ff8, 0x7ff8, 0x7ff8, 0x7ff8, 0x7838, 0x73f8, 0x7878, 0x7f38, 0x7078, 0x7ff8,
  413. 0x7ff8, 0x7ff8, 0x0};
  414.  
  415. struct Image WoodsImage = 
  416. { 0, 0, 14, 63, 4, (USHORT *)&WoodsData[0], 0x0F, 0x0, NULL };
  417.  
  418. struct Gadget WoodsGadget =
  419. { NULL, 259, 29, 14, 63, GADGHCOMP | GADGIMAGE, RELVERIFY | GADGIMMEDIATE | 
  420.   TOGGLESELECT, BOOLGADGET, (APTR)&WoodsImage, NULL, NULL, 0x0, 0x0, 0, 0x1 };
  421.  
  422. struct Gadget MapGad =
  423. { NULL, 0, 10, 256, 190, GADGHNONE, RELVERIFY | GADGIMMEDIATE | FOLLOWMOUSE,
  424.   BOOLGADGET, NULL, NULL, NULL, 0x0, 0x0, 0, 0x5};
  425.  
  426.  
  427. /* Gadgets and other data for the DMRequester for the parameters */
  428.  
  429. SHORT DMCancelPairs[] = {0,0, 69,0, 69,11, 0,11, 0,0};
  430.   
  431. struct Border DMCancelBorder = {-2,-2,2,0,JAM1,NUM_PAIRS,(SHORT *)&DMCancelPairs,NULL};
  432.  
  433. struct IntuiText DMCancelText =
  434.    {2,2,JAM1, 4, 1, NULL,(UBYTE *) "Cancel!", NULL };
  435.  
  436. struct Gadget DMCancel =
  437. {   NULL,   /* NextGadget */
  438.     78, 118, 70, 10, /* Position,size */
  439.     GADGHCOMP,
  440.     GADGIMMEDIATE | ENDGADGET,
  441.     REQGADGET | BOOLGADGET,
  442.     (APTR)&DMCancelBorder,NULL,
  443.     &DMCancelText,
  444.     0,
  445.     NULL,
  446.     0, /* GadgetID */
  447.     NULL
  448. };
  449.  
  450. SHORT DMOKPairs[] = {0,0, 39,0, 39,11, 0,11, 0,0};
  451.   
  452. struct Border DMOKBorder = {-2,-2,2,0,JAM1,NUM_PAIRS,(SHORT *)&DMOKPairs,NULL};
  453.  
  454. struct IntuiText DMOKText =
  455.    {2,2,JAM1, 4, 1, NULL,(UBYTE *) "USE", NULL };
  456.  
  457. struct Gadget DMOK =
  458. {   &DMCancel,      /* NextGadget */
  459.     18, 118, 40, 10, /* Position,size */
  460.     GADGHCOMP,
  461.     GADGIMMEDIATE | ENDGADGET,
  462.     REQGADGET | BOOLGADGET,
  463.     (APTR)&DMOKBorder,NULL,
  464.     &DMOKText,
  465.     0,  NULL,  0, /* GadgetID */
  466.     NULL
  467. };
  468.  
  469. SHORT IntPairs[] = {0,0, 35,0, 35,11, 0,11, 0,0};
  470.   
  471. struct Border IntBorder = {-2,-2,2,0,JAM1,NUM_PAIRS,(SHORT *)&IntPairs,NULL};
  472.  
  473. /* These are the initial values of parameters */
  474. char DMBuffer[12][6] = {"64","32","16","6","3","1","64","32","16","6","3","1"};
  475.  
  476. char UndoBuffer[6];
  477.  
  478. /* We'll need a lot of these: */
  479. struct StringInfo IntGadgetStuff[12] = {
  480.     {  (UBYTE *)DMBuffer[0],(UBYTE *)UndoBuffer,0,5,0,/* Bufferpos,MaxChars,DispCount */
  481.        NULL,NULL,NULL,NULL,NULL,NULL,   /* Kept by Intuition (nice fellow!) */
  482.        64,            /* LongInt, to be initialized */
  483.        NULL
  484.     },
  485.     {  (UBYTE *)DMBuffer[1],(UBYTE *)UndoBuffer,  0,5,0,
  486.        NULL,NULL,NULL,NULL,NULL,NULL, 32, NULL
  487.     },
  488.     {  (UBYTE *)DMBuffer[2],(UBYTE *)UndoBuffer,  0,5,0,
  489.        NULL,NULL,NULL,NULL,NULL,NULL, 16, NULL
  490.     },
  491.     {  (UBYTE *)DMBuffer[3],(UBYTE *)UndoBuffer,  0,5,0,
  492.        NULL,NULL,NULL,NULL,NULL,NULL, 6, NULL
  493.     },
  494.     {  (UBYTE *)DMBuffer[4],(UBYTE *)UndoBuffer,  0,5,0,
  495.        NULL,NULL,NULL,NULL,NULL,NULL, 3, NULL
  496.     },
  497.     {  (UBYTE *)DMBuffer[5],(UBYTE *)UndoBuffer,  0,5,0,
  498.        NULL,NULL,NULL,NULL,NULL,NULL, 1, NULL
  499.     },
  500.     {  (UBYTE *)DMBuffer[6],(UBYTE *)UndoBuffer,  0,5,0,
  501.        NULL,NULL,NULL,NULL,NULL,NULL, 64, NULL
  502.     },
  503.     {  (UBYTE *)DMBuffer[7],(UBYTE *)UndoBuffer,  0,5,0,
  504.        NULL,NULL,NULL,NULL,NULL,NULL, 32, NULL
  505.     },
  506.     {  (UBYTE *)DMBuffer[8],(UBYTE *)UndoBuffer,  0,5,0,
  507.        NULL,NULL,NULL,NULL,NULL,NULL, 16, NULL
  508.     },
  509.     {  (UBYTE *)DMBuffer[9],(UBYTE *)UndoBuffer,  0,5,0,
  510.        NULL,NULL,NULL,NULL,NULL,NULL, 6, NULL
  511.     },
  512.     {  (UBYTE *)DMBuffer[10],(UBYTE *)UndoBuffer,  0,5,0,
  513.        NULL,NULL,NULL,NULL,NULL,NULL, 3, NULL
  514.     },
  515.     {  (UBYTE *)DMBuffer[11],(UBYTE *)UndoBuffer,  0,5,0,
  516.        NULL,NULL,NULL,NULL,NULL,NULL, 1, NULL
  517.     }
  518. };
  519.  
  520. /* And, of course, these: */
  521. struct Gadget DMIntGadget[12] = {
  522.     {  &DMOK,        /* &NextGadget */
  523.        20,30,40,10,        /* Position,size */
  524.        GADGHCOMP, NULL,    /* Highlight,Activation */
  525.        REQGADGET | STRGADGET | LONGINT | STRINGRIGHT, /* Flags */
  526.        (APTR)&IntBorder,    /* Rendering */
  527.        NULL, NULL, 0,    /* */
  528.        (APTR)&IntGadgetStuff[0],/* &SpecialInfo */
  529.        0, NULL        /* GadgetId,UserInfo */
  530.     },
  531.     {  &DMIntGadget[0], 20,44,40,10, GADGHCOMP, NULL,
  532.        REQGADGET | STRGADGET | LONGINT | STRINGRIGHT,
  533.        (APTR)&IntBorder, NULL, NULL, 0, (APTR)&IntGadgetStuff[1], 0, NULL
  534.     },
  535.     {  &DMIntGadget[1], 20,58,40,10, GADGHCOMP, NULL,
  536.        REQGADGET | STRGADGET | LONGINT | STRINGRIGHT,
  537.        (APTR)&IntBorder, NULL, NULL, 0, (APTR)&IntGadgetStuff[2], 0, NULL
  538.     },
  539.     {  &DMIntGadget[2], 20,72,40,10, GADGHCOMP, NULL,
  540.        REQGADGET | STRGADGET | LONGINT | STRINGRIGHT,
  541.        (APTR)&IntBorder, NULL, NULL, 0, (APTR)&IntGadgetStuff[3], 0, NULL
  542.     },
  543.     {  &DMIntGadget[3], 20,86,40,10, GADGHCOMP, NULL,
  544.        REQGADGET | STRGADGET | LONGINT | STRINGRIGHT,
  545.        (APTR)&IntBorder, NULL, NULL, 0, (APTR)&IntGadgetStuff[4], 0, NULL
  546.     },
  547.     {  &DMIntGadget[4], 20,100,40,10, GADGHCOMP, NULL,
  548.        REQGADGET | STRGADGET | LONGINT | STRINGRIGHT,
  549.        (APTR)&IntBorder, NULL, NULL, 0,  (APTR)&IntGadgetStuff[5], 0, NULL
  550.    },
  551.     {  &DMIntGadget[5], 95,30,40,10, GADGHCOMP, NULL,
  552.        REQGADGET | STRGADGET | LONGINT | STRINGRIGHT,
  553.        (APTR)&IntBorder, NULL, NULL, 0, (APTR)&IntGadgetStuff[6], 0, NULL
  554.     },
  555.     {  &DMIntGadget[6], 95,44,40,10, GADGHCOMP, NULL,
  556.        REQGADGET | STRGADGET | LONGINT | STRINGRIGHT,
  557.        (APTR)&IntBorder, NULL, NULL, 0, (APTR)&IntGadgetStuff[7], 0, NULL
  558.     },
  559.     {  &DMIntGadget[7], 95,58,40,10, GADGHCOMP, NULL,
  560.        REQGADGET | STRGADGET | LONGINT | STRINGRIGHT,
  561.        (APTR)&IntBorder, NULL, NULL, 0, (APTR)&IntGadgetStuff[8], 0, NULL
  562.     },
  563.     {  &DMIntGadget[8], 95,72,40,10, GADGHCOMP, NULL,
  564.        REQGADGET | STRGADGET | LONGINT | STRINGRIGHT,
  565.        (APTR)&IntBorder, NULL, NULL, 0, (APTR)&IntGadgetStuff[9], 0, NULL
  566.     },
  567.     {  &DMIntGadget[9], 95,86,40,10, GADGHCOMP, NULL,
  568.        REQGADGET | STRGADGET | LONGINT | STRINGRIGHT,
  569.        (APTR)&IntBorder, NULL, NULL, 0, (APTR)&IntGadgetStuff[10], 0, NULL
  570.     },
  571.     {  &DMIntGadget[10], 95,100,40,10, GADGHCOMP, NULL,
  572.        REQGADGET | STRGADGET | LONGINT | STRINGRIGHT,
  573.        (APTR)&IntBorder, NULL, NULL, 0,  (APTR)&IntGadgetStuff[11], 0, NULL
  574.    }
  575. };
  576.  
  577. SHORT DMReqPairs[] = {0,0, 149,0, 149,129, 0,129, 0,0, 0,12, 149,12};
  578. struct Border DMReqBorder = {0,0,2,0,JAM1,7,(SHORT *)&DMReqPairs,NULL};
  579.  
  580. struct IntuiText MoreDMReqText =
  581. { 2, 1, JAM1, 12, 17, NULL, (UBYTE *)"Heigth:  Growth:",NULL};
  582.  
  583. struct IntuiText DMReqText =
  584. { 2, 1, JAM1, 3, 4, NULL, (UBYTE *)"Current Parameters",&MoreDMReqText};
  585.  
  586. /* The following is probably wiped out by InitReq... */
  587. struct Requester DMReq = {
  588.    NULL,            /* &OldRequest */
  589.    20,20,           /* leftedge, topedge */
  590.    200,100,         /* Width, Height */
  591.    1,1,             /* Pointer offset */
  592.    &DMIntGadget[11],/* &GadgetList */
  593.    &DMReqBorder,    /* Rendering */
  594.    &DMReqText,      /* 'Current Parameters' */
  595.    POINTREL,        /* Flags */
  596.    16,              /* Pen for backfill */
  597.    NULL,            /* ReqLayer */
  598.    /* Some more initializers live here, but we're not interested */
  599. };