/* Simple Sprite */

/* adapted by TIM from RSL */

#include <exec/types.h>
#include <graphics/sprite.h>
#include <math.h>
#include <stdio.h>
#include <intuition/intuition.h>
#include <intuition/intuitionbase.h>

struct GfxBase       *GfxBase;
struct IntuitionBase *IntuitionBase;
struct Screen        *Screen;
struct ViewPort      *vp;

UWORD spriteimage_1 [] = {
0x0000,0x0000,
0x0c60,0x0fe0,
0x0380,0x1ff0,
0x2380,0x3ff0,
0x638c,0x7ffc,
0x1c70,0x7ffc,
0x1c70,0xfffe,
0x1c70,0xfffe,
0xe38e,0xfffe,
0xe38e,0xfffe,
0xe38e,0xfffe,
0x1c70,0x7ffc,
0x1c70,0x7ffc,
0x1c70,0x3ff8,
0x0380,0x1ff0,
0x0380,0x0fe0,
0x0000,0x0000   };

short nummer = 2;

struct SimpleSprite sprite = {

spriteimage_1,
15
};

UWORD neuimage_1 [] =  {
0x0000,0x0000,
0x001b,0x0003,
0x0036,0x0c06,
0x0036,0x1c06,
0x006c,0x240c,
0x006c,0x460c,
0x00d8,0x7e18,
0x00d8,0x4618,
0x01b0,0x4630,
0x01b0,0x0030,
0x0360,0x0060,
0xdb60,0x1860,
0xeec0,0x08c0,
0x77c0,0x03c0,
0x3f80,0x0380,
0x1980,0x0180,
0x0000,0x0000   };


UWORD spriteimage_3 [] = {
0x0000,0x0000,
0x0000,0xffff,
0x0000,0xffff,
0xffff,0x0000,
0xffff,0x0000,
0xffff,0xffff,
0xffff,0xffff,
0x0000,0x0000,
0x0000,0x0000,
0x0000,0xffff,
0x0000,0xffff,
0xffff,0x0000,
0xffff,0x0000,
0xffff,0xffff,
0xffff,0xffff,
0x0000,0x0000,
0x0000,0x0000,
0x0000,0xffff,
0x0000,0xffff,
0xffff,0x0000,
0xffff,0x0000,
0xffff,0xffff,
0xffff,0xffff,
0x0000,0x0000,
0x0000,0x0000,
0x0000,0xffff,
0x0000,0xffff,
0xffff,0x0000,
0xffff,0x0000,
0xffff,0xffff,
0xffff,0xffff,
0x0000,0x0000    };

short nummer_3 = 2;
struct SimpleSprite sprite_3 = {
spriteimage_3,
30
};

UWORD spriteimage_4 [] = {
0x0000,0x0000,
0x0000,0x0000,
0x0000,0x0000,
0x0000,0x0000,
0x0000,0x0000,
0x0000,0x0000,
0x0000,0x0000,
0x0000,0xffff,
0x0000,0xffff,
0x0000,0xffff,
0x0000,0xffff,
0x0000,0xffff,
0x0000,0xffff,
0x0000,0xffff,
0x0000,0xffff,
0xffff,0x0000,
0xffff,0x0000,
0xffff,0x0000,
0xffff,0x0000,
0xffff,0x0000,
0xffff,0x0000,
0xffff,0x0000,
0xffff,0x0000,
0xffff,0xffff,
0xffff,0xffff,
0xffff,0xffff,
0xffff,0xffff,
0xffff,0xffff,
0xffff,0xffff,
0xffff,0xffff,
0xffff,0xffff,
0x0000,0x0000   };

short nummer_4 = 3;
struct SimpleSprite sprite_4 = {
spriteimage_4,
30
};
short Sprite_Nummer;


main ()
{
short x,y;
double yy;

if (!(GfxBase = (struct GfxBase *)
OpenLibrary ("graphics.library",0)))
{
printf("Can`t open Graphics-Library.\n");
exit (FALSE);
}

if (!(IntuitionBase = (struct IntuitionBase *)
OpenLibrary ("intuition.library",0)))
{
printf("Can`t open Intuition-Library.\n");
CloseLibrary (GfxBase);
exit(FALSE);
}

Screen = IntuitionBase->ActiveScreen;

printf("\f** POLISH DUO intro Coded by TIM from RSL **\n");

Sprite_Nummer = GetSprite(&sprite,nummer);

if(Sprite_Nummer == 1)
{
printf("Nie moge uaktywnic sprite`a.\n");
CloseLibrary(GfxBase);
CloseLibrary(IntuitionBase);
exit(FALSE);
}

SetRGB4 (&Screen ->VieweLibrary(IntuitionBase);
exit(FALSE);
}

SetRGB4 (&Screen ->ViewPort,21,15,10,00);
SetRGB4 (&Screen ->ViewPort,22,00,00,00);
SetRGB4 (&Screen ->ViewPort,23,15,00,00);

printf("Simple Sprite z max. 4 kolorami\n");

for (x=0;x<321;x=x+2)
{
yy=abs(sin(x*2*PI/180)*180/PI);
y=185-yy*2;
MoveSprite (vp,&sprite,x,y);
}

ChangeSprite(vp,&sprite,neuimage_1);

printf("Ten sam sprite ale z nowym image\n");

for (x=321;x>-16;x=x-2)
{
yy=abs(sin(x*2*PI/180)*180/PI);
y=185-yy*2;
MoveSprite(vp,&sprite,x,y);
}

FreeSprite(nummer);

Sprite_Nummer = GetSprite (&sprite_3,nummer_3);
if(Sprite_Nummer == -1)
{
printf("Nie moge uaktywnic sprite`a\n");
CloseLibrary(GfxBase);
CloseLibrary(IntuitionBase);
exit (FALSE);
}

Sprite_Nummer = GetSprite(&sprite_4,nummer_4);
if(Sprite_Nummer == -1)
{
printf("Nie moge uaktywnic sprite`a.\n");
CloseLibrary(GfxBase);
CloseLibrary(IntuitionBase);
exit(FALSE);
}

CloseLibrary(GfxBase);
CloseLibrary(IntuitionBase);
}




