/*
** Constants for a two plane boing(tm) ball and
** a one plane satellite.
*/

#define BNG3RINGY		0
#define BNG3RINGX		0
#define BNG3COUNT		6
#define BNG3HEIGHT              13
#define BNG3WIDTH		29
#define BNG3DEPTH               2
#define BNG3WWIDTH		((BNG3WIDTH + 15) / 16)

#define SATCOUNT		16
#define SATHEIGHT               3
#define SATWIDTH		5
#define SATDEPTH                1
#define SATWWIDTH		((SATWIDTH + 15) / 16)

SHORT boing3Times[BNG3COUNT] = { 1, 1, 1, 1, 1, 1 };
SHORT boing3YTranses[BNG3COUNT] = { 0, 0, 0, 0, 0, 0 };
SHORT boing3XTranses[BNG3COUNT] = { 0, 0, 0, 0, 0, 0 };

/* APTR boing3CRoutines[BNG3COUNT] */
WORD (*boing3CRoutines[BNG3COUNT])(struct AnimComp *) =
	{
	NULL, NULL, NULL, NULL, NULL, NULL
	};

UWORD chip boing3Image[BNG3COUNT][BNG3WWIDTH * BNG3HEIGHT * BNG3DEPTH] =
{   /*----- bitmap Boing-A w = 32, h = 13 ------ */
    {   /*------ plane # 0: --------*/
                0x0023,   0x0000, // ..........#...##................ 
                0x00E3,   0x3A00, // ........###...##..###.#.........
                0x0787,   0x8780, // .....####...###.#....####.......
                0x31F7,   0x8790, // ..##...#####.####....####..#....
                0x63E0,   0xFB90, // .##...#####.....#####.###..#....
                0x3BC0,   0xF870, // ..###.####......#####....###....
                0x383D,   0xF070, // ..###.....####.#####.....###....
                0x387C,   0x0EE0, // ..###....#####......###.###.....
                0x467C,   0x1E10, // .#...##..#####.....####....#....
                0x6787,   0x3E20, // .##..####....###..#####...#.....
                0x0F0F,   0x8700, // ....####....#####....###........
                0x0277,   0x1C00, // ......#..###.###...###..........
                0x0027,   0x2000, // ..........#...#.................
                // ------ plane # 1: --------
                0x003F,   0xE000, // ..........#########............. 
                0x03FF,   0xFF00, // ......##################........
                0x1FFF,   0xFFC0, // ...#######################......
                0x3FFF,   0xFFF0, // ..##########################....
                0x7FFF,   0xFFF0, // .###########################....
                0xFFFF,   0xFFF8, // #############################...
                0xFFFF,   0xFFF8, // #############################...
                0xFFFF,   0xFFF8, // #############################...
                0x7FFF,   0xFFF0, // .###########################....
                0x7FFF,   0xFFE0, // .##########################.....
                0x1FFF,   0xFFC0, // ...#######################......
                0x07FF,   0xFE00, // .....##################.........
                0x003F,   0xE000  // ..........#########.............
		},
	/*----- bitmap Boing-B w = 32, h = 25 ------ */
		{
		/*------ plane # 0: --------*/
		0x0031,   0x8000, 
		0x00F0,   0x1900, 
		0x13C1,   0xE340, 
		0x387B,   0xC390, 
		0x70F8,   0x3DC0, 
		0x9DF0,   0x7C30, 
		0x9E1C,   0x7C30, 
		0x1C1F,   0x0630, 
		0x623F,   0x0798, 
		0x23C1,   0x0F20, 
		0x0BC3,   0xC380, 
		0x023F,   0x8E00, 
		0x0033,   0x8000,
                // ------ plane # 1: --------
                0x003F,   0xE000, // ..........#########............. 
                0x03FF,   0xFF00, // ......##################........
                0x1FFF,   0xFFC0, // ...#######################......
                0x3FFF,   0xFFF0, // ..##########################....
                0x7FFF,   0xFFF0, // .###########################....
                0xFFFF,   0xFFF8, // #############################...
                0xFFFF,   0xFFF8, // #############################...
                0xFFFF,   0xFFF8, // #############################...
                0x7FFF,   0xFFF0, // .###########################....
                0x7FFF,   0xFFE0, // .##########################.....
                0x1FFF,   0xFFC0, // ...#######################......
                0x07FF,   0xFE00, // .....##################.........
                0x003F,   0xE000  // ..........#########.............
		},
	/*----- bitmap Boing-C w = 32, h = 25 ------ */
		{
		/*------ plane # 0: --------*/
		0x0019,   0xC000, 
		0x0278,   0x8D00, 
		0x11F0,   0xF140, 
		0x1C39,   0xF0C0, 
		0x387E,   0x0CE0, 
		0x8C7C,   0x1F18, 
		0x8F06,   0x1E18, 
		0x8F07,   0xC018, 
		0x300F,   0x83C8, 
		0x31F0,   0x8780, 
		0x11E1,   0xF1C0, 
		0x071B,   0xC600, 
		0x0031,   0x8000,
                //------ plane # 1: --------
                0x003F,   0xE000, // ..........#########............. 
                0x03FF,   0xFF00, // ......##################........
                0x1FFF,   0xFFC0, // ...#######################......
                0x3FFF,   0xFFF0, // ..##########################....
                0x7FFF,   0xFFF0, // .###########################....
                0xFFFF,   0xFFF8, // #############################...
                0xFFFF,   0xFFF8, // #############################...
                0xFFFF,   0xFFF8, // #############################...
                0x7FFF,   0xFFF0, // .###########################....
                0x7FFF,   0xFFE0, // .##########################.....
                0x1FFF,   0xFFC0, // ...#######################......
                0x07FF,   0xFE00, // .....##################.........
                0x003F,   0xE000  // ..........#########.............
		},
	/*----- bitmap : w = 32, h = 25 ------ */
		{
		/*------ plane Boing-D 0: --------*/
		0x001C,   0xE000, 
		0x031C,   0xC500, 
		0x1878,   0x7840, 
		0x0E08,   0x7860, 
		0x1C1F,   0x0460, 
		0xC43F,   0x0788, 
		0xC7C0,   0x0F88, 
		0xC783,   0xF118, 
		0x3983,   0xE1E0, 
		0x1878,   0xC1C0, 
		0x10F0,   0x78C0, 
		0x0588,   0xE200, 
		0x0018,   0xC000,
                //------ plane # 1: --------
                0x003F,   0xE000, // ..........#########............. 
                0x03FF,   0xFF00, // ......##################........
                0x1FFF,   0xFFC0, // ...#######################......
                0x3FFF,   0xFFF0, // ..##########################....
                0x7FFF,   0xFFF0, // .###########################....
                0xFFFF,   0xFFF8, // #############################...
                0xFFFF,   0xFFF8, // #############################...
                0xFFFF,   0xFFF8, // #############################...
                0x7FFF,   0xFFF0, // .###########################....
                0x7FFF,   0xFFE0, // .##########################.....
                0x1FFF,   0xFFC0, // ...#######################......
                0x07FF,   0xFE00, // .....##################.........
                0x003F,   0xE000  // ..........#########.............
		},
	/*----- bitmap : w = 32, h = 25 ------ */
		{
		/*------ plane Boing-E 0: --------*/
		0x000E,   0x6000, 
		0x030F,   0xE600, 
		0x0C3E,   0x1C80, 
		0x0784,   0x3C60, 
		0x8F07,   0xC230, 
		0x620F,   0x83C8, 
		0x61E1,   0x83C8, 
		0x63E0,   0xF9C8, 
		0x1DC0,   0xF860, 
		0x5C3E,   0xF0C0, 
		0x143C,   0x3C40, 
		0x05C0,   0x7000, 
		0x000C,   0x6000,
                //------ plane # 1: --------
                0x003F,   0xE000, // ..........#########............. 
                0x03FF,   0xFF00, // ......##################........
                0x1FFF,   0xFFC0, // ...#######################......
                0x3FFF,   0xFFF0, // ..##########################....
                0x7FFF,   0xFFF0, // .###########################....
                0xFFFF,   0xFFF8, // #############################...
                0xFFFF,   0xFFF8, // #############################...
                0xFFFF,   0xFFF8, // #############################...
                0x7FFF,   0xFFF0, // .###########################....
                0x7FFF,   0xFFE0, // .##########################.....
                0x1FFF,   0xFFC0, // ...#######################......
                0x07FF,   0xFE00, // .....##################.........
                0x003F,   0xE000  // ..........#########.............
		},
	/*----- bitmap : w = 32, h = 25 ------ */
		{
                /*------ plane Boing-F 0: --------*/
		0x0026,   0x2000, 
		0x0187,   0x7200, 
		0x0E0F,   0x0E80, 
		0x23C6,   0x0F30, 
		0x4781,   0xF310, 
		0x7383,   0xE0E0, 
		0x70F9,   0xE1E0, 
		0x70F8,   0x3FE0, 
		0x4FF0,   0x7C30, 
		0x4E0F,   0x7860, 
		0x0E1E,   0x0E00, 
		0x00E4,   0x3800, 
		0x000E,   0x6000,
                //------ plane # 1: --------
                0x003F,   0xE000, // ..........#########............. 
                0x03FF,   0xFF00, // ......##################........
                0x1FFF,   0xFFC0, // ...#######################......
                0x3FFF,   0xFFF0, // ..##########################....
                0x7FFF,   0xFFF0, // .###########################....
                0xFFFF,   0xFFF8, // #############################...
                0xFFFF,   0xFFF8, // #############################...
                0xFFFF,   0xFFF8, // #############################...
                0x7FFF,   0xFFF0, // .###########################....
                0x7FFF,   0xFFE0, // .##########################.....
                0x1FFF,   0xFFC0, // ...#######################......
                0x07FF,   0xFE00, // .....##################.........
                0x003F,   0xE000  // ..........#########.............
		}
	};

/*
** Orbit  goes from far top -> mid l  -> near bot -> mid right
*/

/*-----------------------------------------------------------------*/
SHORT satTimes[SATCOUNT] =
	{
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
	};

/* APTR satACRoutines[SATCOUNT] */
WORD (*satACRoutines[SATCOUNT])(struct AnimComp *) =
	{
	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
	};

SHORT satAYTranses[SATCOUNT] =
	{
	( 18<<BNFS)+((BNG3HEIGHT/2)<<ANFS),( 17<<BNFS)+((BNG3HEIGHT/2)<<ANFS),
	( 15<<BNFS)+((BNG3HEIGHT/2)<<ANFS),( 11<<BNFS)+((BNG3HEIGHT/2)<<ANFS),
	(  0<<BNFS)+((BNG3HEIGHT/2)<<ANFS),(-11<<BNFS)+((BNG3HEIGHT/2)<<ANFS),
	(-15<<BNFS)+((BNG3HEIGHT/2)<<ANFS),(-17<<BNFS)+((BNG3HEIGHT/2)<<ANFS),
	(-18<<BNFS)+((BNG3HEIGHT/2)<<ANFS),(-17<<BNFS)+((BNG3HEIGHT/2)<<ANFS),
	(-15<<BNFS)+((BNG3HEIGHT/2)<<ANFS),(-11<<BNFS)+((BNG3HEIGHT/2)<<ANFS),
	(  0<<BNFS)+((BNG3HEIGHT/2)<<ANFS),( 11<<BNFS)+((BNG3HEIGHT/2)<<ANFS),
	( 15<<BNFS)+((BNG3HEIGHT/2)<<ANFS),( 17<<BNFS)+((BNG3HEIGHT/2)<<ANFS)
	};

SHORT satAXTranses[SATCOUNT] =
	{
	(  0<<BNFS)+((BNG3WIDTH/2)<<ANFS),( 22<<BNFS)+((BNG3WIDTH/2)<<ANFS),
	( 45<<BNFS)+((BNG3WIDTH/2)<<ANFS),( 66<<BNFS)+((BNG3WIDTH/2)<<ANFS),
	( 80<<BNFS)+((BNG3WIDTH/2)<<ANFS),( 66<<BNFS)+((BNG3WIDTH/2)<<ANFS),
	( 45<<BNFS)+((BNG3WIDTH/2)<<ANFS),( 22<<BNFS)+((BNG3WIDTH/2)<<ANFS),
	(  0<<BNFS)+((BNG3WIDTH/2)<<ANFS),(-22<<BNFS)+((BNG3WIDTH/2)<<ANFS),
	(-45<<BNFS)+((BNG3WIDTH/2)<<ANFS),(-66<<BNFS)+((BNG3WIDTH/2)<<ANFS),
	(-80<<BNFS)+((BNG3WIDTH/2)<<ANFS),(-66<<BNFS)+((BNG3WIDTH/2)<<ANFS),
	(-45<<BNFS)+((BNG3WIDTH/2)<<ANFS),(-22<<BNFS)+((BNG3WIDTH/2)<<ANFS)
	};

/* APTR satBCRoutines[SATCOUNT] */
WORD (*satBCRoutines[SATCOUNT])(struct AnimComp *) =
	{
	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
	};

/*----- bitmap : w = 5, h = 5 ------ */
SHORT satBYTranses[SATCOUNT] =
	{
	(-57<<BNFS)+((BNG3HEIGHT/2)<<ANFS),(-40<<BNFS)+((BNG3HEIGHT/2)<<ANFS),
	(-23<<BNFS)+((BNG3HEIGHT/2)<<ANFS),( -6<<BNFS)+((BNG3HEIGHT/2)<<ANFS),
	( 13<<BNFS)+((BNG3HEIGHT/2)<<ANFS),( 27<<BNFS)+((BNG3HEIGHT/2)<<ANFS),
	( 41<<BNFS)+((BNG3HEIGHT/2)<<ANFS),( 53<<BNFS)+((BNG3HEIGHT/2)<<ANFS),
	( 57<<BNFS)+((BNG3HEIGHT/2)<<ANFS),( 40<<BNFS)+((BNG3HEIGHT/2)<<ANFS),
	( 22<<BNFS)+((BNG3HEIGHT/2)<<ANFS),(  4<<BNFS)+((BNG3HEIGHT/2)<<ANFS),
	(-13<<BNFS)+((BNG3HEIGHT/2)<<ANFS),(-28<<BNFS)+((BNG3HEIGHT/2)<<ANFS),
	(-43<<BNFS)+((BNG3HEIGHT/2)<<ANFS),(-55<<BNFS)+((BNG3HEIGHT/2)<<ANFS)
	};

SHORT satBXTranses[SATCOUNT] =
	{
	(-57<<BNFS)+((BNG3WIDTH/2)<<ANFS),(-53<<BNFS)+((BNG3WIDTH/2)<<ANFS),
	(-41<<BNFS)+((BNG3WIDTH/2)<<ANFS),(-27<<BNFS)+((BNG3WIDTH/2)<<ANFS),
	(-13<<BNFS)+((BNG3WIDTH/2)<<ANFS),(  6<<BNFS)+((BNG3WIDTH/2)<<ANFS),
	( 23<<BNFS)+((BNG3WIDTH/2)<<ANFS),( 40<<BNFS)+((BNG3WIDTH/2)<<ANFS),
	( 57<<BNFS)+((BNG3WIDTH/2)<<ANFS),( 55<<BNFS)+((BNG3WIDTH/2)<<ANFS),
	( 43<<BNFS)+((BNG3WIDTH/2)<<ANFS),( 28<<BNFS)+((BNG3WIDTH/2)<<ANFS),
	( 13<<BNFS)+((BNG3WIDTH/2)<<ANFS),( -4<<BNFS)+((BNG3WIDTH/2)<<ANFS),
	(-22<<BNFS)+((BNG3WIDTH/2)<<ANFS),(-40<<BNFS)+((BNG3WIDTH/2)<<ANFS)
	};

/* APTR satCCRoutines[SATCOUNT] */
WORD (*satCCRoutines[SATCOUNT])(struct AnimComp *) =
	{
	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
	};

/*----- bitmap : w = 5, h = 5 ------ */
SHORT satCYTranses[SATCOUNT] =
	{
	(-13<<BNFS)+((BNG3HEIGHT/2)<<ANFS),(  4<<BNFS)+((BNG3HEIGHT/2)<<ANFS),
	( 22<<BNFS)+((BNG3HEIGHT/2)<<ANFS),( 40<<BNFS)+((BNG3HEIGHT/2)<<ANFS),
	( 57<<BNFS)+((BNG3HEIGHT/2)<<ANFS),( 53<<BNFS)+((BNG3HEIGHT/2)<<ANFS),
	( 41<<BNFS)+((BNG3HEIGHT/2)<<ANFS),( 27<<BNFS)+((BNG3HEIGHT/2)<<ANFS),
	( 13<<BNFS)+((BNG3HEIGHT/2)<<ANFS),( -6<<BNFS)+((BNG3HEIGHT/2)<<ANFS),
	(-23<<BNFS)+((BNG3HEIGHT/2)<<ANFS),(-40<<BNFS)+((BNG3HEIGHT/2)<<ANFS),
	(-57<<BNFS)+((BNG3HEIGHT/2)<<ANFS),(-55<<BNFS)+((BNG3HEIGHT/2)<<ANFS),
	(-43<<BNFS)+((BNG3HEIGHT/2)<<ANFS),(-28<<BNFS)+((BNG3HEIGHT/2)<<ANFS)
	};

SHORT satCXTranses[SATCOUNT] =
	{
	(-13<<BNFS)+((BNG3WIDTH/2)<<ANFS),(-28<<BNFS)+((BNG3WIDTH/2)<<ANFS),
	(-43<<BNFS)+((BNG3WIDTH/2)<<ANFS),(-55<<BNFS)+((BNG3WIDTH/2)<<ANFS),
	(-57<<BNFS)+((BNG3WIDTH/2)<<ANFS),(-40<<BNFS)+((BNG3WIDTH/2)<<ANFS),
	(-23<<BNFS)+((BNG3WIDTH/2)<<ANFS),( -6<<BNFS)+((BNG3WIDTH/2)<<ANFS),
	( 13<<BNFS)+((BNG3WIDTH/2)<<ANFS),( 27<<BNFS)+((BNG3WIDTH/2)<<ANFS),
	( 41<<BNFS)+((BNG3WIDTH/2)<<ANFS),( 53<<BNFS)+((BNG3WIDTH/2)<<ANFS),
	( 57<<BNFS)+((BNG3WIDTH/2)<<ANFS),( 40<<BNFS)+((BNG3WIDTH/2)<<ANFS),
	( 22<<BNFS)+((BNG3WIDTH/2)<<ANFS),(  4<<BNFS)+((BNG3WIDTH/2)<<ANFS)
	};

/*-----------------------------------------------------------------*/
/*----- bitmap : w = 5, h = 5 ------ */
UWORD chip satImage[1][SATWWIDTH * SATHEIGHT * SATDEPTH] =
{   0x7000, // .##@....
    0xF800, // @##@@...
    0x7000  // .@@@....
};
