home *** CD-ROM | disk | FTP | other *** search
/ Aminet 18 / aminetcdnumber181997.iso / Aminet / dev / misc / gms_dev.lha / GMS / Source / C / AGAFloodFill.c < prev    next >
Encoding:
C/C++ Source or Header  |  1997-02-16  |  2.7 KB  |  90 lines

  1. /*
  2. ** AGA FloodFill Demo
  3. ** -------------------
  4. **
  5. ** A demo of how you should use the FLOOD raster command.
  6. **
  7. ** To exit the demo, press the left mouse button.
  8. */
  9.  
  10. #include <proto/games.h>
  11. #include <proto/exec.h>
  12.  
  13. struct GMSBase *GMSBase;
  14. extern struct ExecBase *SysBase;
  15.  
  16. #define AMT_PLANES 7
  17.  
  18. ULONG Palette[] =
  19. {
  20.   0x000000,0xFFFFFF,0xFAF5F2,0xFAE8E7,0xEEDED5,0xE8D4C8,0xDDC0AF,0xD7B5A2,
  21.   0xD1AC96,0xDCA491,0xCBA38B,0xC5997E,0xBD8E74,0xB5846A,0xAD7A5F,0xA57056,
  22.   0x9D674D,0x955D44,0x8C533B,0x844B34,0x7C432D,0x743B26,0x6C3320,0x642D1B,
  23.   0x5C2616,0x532010,0x4A1D0C,0x411A09,0x381606,0x2F1204,0x260F02,0x1D0C00,
  24.   0xAC783A,0xA67139,0xA06C39,0x986638,0x995F36,0x906037,0x8C5C36,0x945733,
  25.   0x865735,0x905030,0x7E5133,0x8D4B2E,0x764B31,0x6E4630,0x8A462D,0x64412B,
  26.   0x5D3D27,0x593A24,0x543822,0x50351F,0x4B341D,0x47301A,0x592218,0x402D17,
  27.   0x382813,0x3B2007,0x302310,0x2B200D,0x331100,0x430907,0x3C0504,0x2E0202,
  28.   0xB48038,0xB7743D,0xAE6350,0xA85D4A,0xA35644,0x9E503E,0x994A39,0x944534,
  29.   0x9F4336,0x8E3F30,0x87412B,0x87382A,0x823628,0x803226,0x792C21,0x72251C,
  30.   0xE1AB98,0xDBA28C,0xD79C89,0xD29582,0xCD8D7A,0xC88672,0xC27E6B,0xBD7764,
  31.   0xB8705D,0xB36A57,0xBB5244,0xAD4A3D,0xC8594A,0x7F7444,0x847D49,0x67271E,
  32.   0x6C2219,0x651D15,0x5E1711,0x57130E,0x500F0B,0x4A0C09,0x350303,0x270000,
  33.   0x89874E,0x8C8E53,0x8C9358,0x8E9D62,0xC6904A,0x9AA467,0xCD9E51,0xAFAE6F,
  34.   0xE3D765,0xD5AE58,0xBCAD78,0xC1AC7C,0xCBAA82,0xD5A588,0xEAA09B,0xECA7A2,
  35.   0xEDADA9,0xEFB5B1,0xF0BBB8,0xF2C2BF,0xF4CBC8,0xF5D1CF,0xF7D9D7,0xFDF7F7
  36. };
  37.  
  38. ULONG RasterList[] =
  39. {
  40.   WAITLINE(0),
  41.   FLOOD,
  42.   RASTEND
  43. };
  44.  
  45. /*=========================================================================*/
  46.  
  47. void main(void)
  48. {
  49.    int i;
  50.    struct GameScreen *GameScreen;
  51.  
  52.    if (GMSBase = (struct GMSBase *) OpenLibrary("games.library", 0)) {
  53.       SetUserPrefs(0);
  54.  
  55.       if (GameScreen = AddScreenTags(TAGS,NULL,
  56.          GSA_Planes,AMT_PLANES,
  57.          GSA_Palette,Palette,
  58.          GSA_RasterList,RasterList,
  59.          GSA_ScrMode,LORES|COL24BIT,
  60.          GSA_ScrWidth,320,
  61.          GSA_ScrHeight,256,
  62.          GSA_ScrType,INTERLEAVED,
  63.          TAGEND)) {
  64.  
  65.          SmartLoad("GAMESLIB:data/Yattering128.pak",GameScreen->MemPtr1,0);
  66.          ShowScreen(GameScreen);
  67.  
  68.          for (i=0; i<256; i++) {
  69.              WaitSVBL();
  70.              RasterList[0] += 1;
  71.              UpdateRasterList(GameScreen);
  72.          }
  73.  
  74.          WaitLMB();
  75.  
  76.          i = 0;
  77.          do {
  78.             WaitSVBL();
  79.             i = PaletteToColour(GameScreen,i,2,0,128,&Palette,0x000000);
  80.          } while (i != 0);
  81.  
  82.          DeleteScreen(GameScreen);
  83.       }
  84.       CloseLibrary((struct Library *)GMSBase);
  85.    }
  86. }
  87.  
  88. /*=========================================================================*/
  89.  
  90.