/*
** Name:      White Fade Demo
** Author:    Paul Manias
** Copyright: DreamWorld Productions © 1996-1997.
** SAS/C:     1> sc WhiteFade.c link startup=LIB:gms.o data=far nostackcheck
** Dice:      1> dcc -l0 -mD gms.o WhiteFade.c -o WhiteFade
**
** There are three examples of fading in this program:  ColourMorph(),
** ColourToPalette(), and PaletteToColour().
**
*/

#include <proto/games.h>

extern struct GMSBase *GMSBase;
APTR PREFSNAME = DEFAULT;

void main(void)
{
  UWORD FadeState = 0;
  struct GameScreen *screen;
  struct Picture *pic;

  if (pic = LoadPicFile("GMS:demos/data/PIC.Loading",GETPALETTE|VIDEOMEM)) {
   if (screen = GetScreen()) {
      CopyStructure(pic,screen);
      screen->MemPtr1 = pic->Data;

      if (screen = AddScreen(screen)) {

        ShowScreen(screen);

        do { WaitVBL();
             FadeState = ColourMorph(screen,FadeState,10,0,32,0x000000,0xFFFFFF);
        } while (FadeState != NULL);

        do { WaitVBL();
             FadeState = ColourToPalette(screen,FadeState,2,0,32,pic->Palette,0xFFFFFF);
        } while (FadeState != NULL);

        do { WaitVBL();
             FadeState = PaletteToColour(screen,FadeState,2,0,32,pic->Palette,0x000000);
        } while (FadeState != NULL);

      }
   DeleteScreen(screen);
   }
  FreePic(pic);
  }
}

