#include<ultra64.h>

extern Vtx SB_missile_v[];
extern Vtx SB_missile_vmcur[];
extern Tri SB_missile_tri[];
extern Mtx SB_missile_matrix[];

extern unsigned short SB_missile03_txt[];
extern unsigned short SB_missile04_txt[];
extern unsigned short SB_mossile01_txt[];



#define gs_Nin_LoadTextureImage(timg,fmt,siz,width,height,tmem,tt)	\
	gsDPSetTextureImage(fmt,siz,1,timg),	\
	gsDPTileSync(),	\
	gsDPSetTile(fmt,siz,0,tmem,tt,0,0,0,0,0,0,0),	\
	gsDPLoadSync(),	\
	gsDPLoadBlock(tt,0,0,width*height-1,CALC_DXT(width,siz##_BYTES))

#define gs_Nin_SetUpTileDescrip(fmt,siz,width,height,tmem,tt,cs,ms,ss,ct,mt,st)	\
	gsDPTileSync(),	\
	gsDPSetTile(fmt,siz,((((width)*siz##_LINE_BYTES)+7)>>3),tmem,tt,0,ct,mt,st,cs,ms,ss),	\
	gsDPSetTileSize(tt,0,0,(width-1)<<G_TEXTURE_IMAGE_FRAC,(height-1)<<G_TEXTURE_IMAGE_FRAC)

Gfx SB_missile[]={

	gs_Nin_SetUpTileDescrip(G_IM_FMT_RGBA,G_IM_SIZ_16b,16,16,0,0,G_TX_WRAP,4,0,G_TX_WRAP,4,0),
	gs_Nin_LoadTextureImage(SB_mossile01_txt,G_IM_FMT_RGBA,G_IM_SIZ_16b,16,16,0,7),

	gsSPVertex(&SB_missile_v[0],10,0),
	gsSP2Triangles(0, 1, 2, 0, 3, 4, 5, 0),
	gsSP2Triangles(5, 4, 6, 0, 2, 1, 7, 0),
	gsSP2Triangles(2, 8, 0, 0, 7, 9, 2, 0),
	gsSP2Triangles(6, 8, 5, 0, 2, 9, 3, 0),
	gs_Nin_LoadTextureImage(SB_missile03_txt,G_IM_FMT_RGBA,G_IM_SIZ_16b,16,16,0,7),


	gsSPVertex(&SB_missile_v[10],32,0),
	gsSP2Triangles(0, 1, 2, 0, 2, 3, 0, 0),
	gsSP2Triangles(4, 5, 6, 0, 6, 7, 4, 0),
	gsSP2Triangles(8, 9, 10, 0, 10, 11, 8, 0),
	gsSP2Triangles(12, 13, 14, 0, 14, 15, 12, 0),
	gsSP2Triangles(16, 17, 18, 0, 18, 19, 16, 0),
	gsSP2Triangles(20, 21, 22, 0, 22, 23, 20, 0),
	gsSP2Triangles(24, 25, 26, 0, 26, 27, 24, 0),
	gsSP2Triangles(28, 29, 30, 0, 30, 31, 28, 0),
	gs_Nin_LoadTextureImage(SB_missile04_txt,G_IM_FMT_RGBA,G_IM_SIZ_16b,16,16,0,7),

	gsSPVertex(&SB_missile_v[42],22,0),
	gsSP2Triangles(0, 1, 2, 0, 2, 3, 0, 0),
	gsSP2Triangles(4, 5, 6, 0, 7, 8, 9, 0),
	gsSP2Triangles(9, 3, 7, 0, 6, 1, 4, 0),
	gsSP2Triangles(10, 11, 12, 0, 13, 14, 10, 0),
	gsSP2Triangles(15, 16, 17, 0, 18, 5, 19, 0),
	gsSP2Triangles(19, 8, 18, 0, 20, 16, 21, 0),
	gsSPEndDisplayList(),
}; /* g2 */ 

#undef G_CC_PRIMSHADE

#undef gs_Nin_LoadTextureImage

#undef gs_Nin_SetUpTileDescrip

/* 91 vertices */
Vtx SB_missile_v[]={
	{   -27,    29,   -35,     0,     0,   511,   -85,    84,     4,   255},	/* 0 */
	{   -37,     0,   -35,     0,   511,   511,  -118,     0,    13,   255},	/* 1 */
	{     1,     0,    96,     0,   307, -1806,   -95,   -40,    59,   255},	/* 2 */
	{    30,   -29,   -35,     0,     0,   511,    86,   -83,     4,   255},	/* 3 */
	{    39,     0,   -35,     0,   511,   511,   119,     0,    13,   255},	/* 4 */
	{     1,     0,    96,     0,   307, -1806,   105,    44,    38,   255},	/* 5 */
	{    30,    29,   -35,     0,     0,   511,    86,    84,     4,   255},	/* 6 */
	{   -27,   -29,   -35,     0,     0,   511,   -85,   -83,     4,   255},	/* 7 */
	{     1,    38,   -35,     0,   511,   511,     0,   119,    13,   255},	/* 8 */
	{     1,   -39,   -35,     0,   511,   511,     0,  -118,    13,   255},	/* 9 */
	{    32,    31,   -64,     0,  1669,  -150,    76,   -82,    40,   255},	/* 10 */
	{    13,    12,   -24,     0,  2679,    83,   109,   -33,    34,   255},	/* 11 */
	{    45,    16,  -118,     0,   511, -1023,    76,   -82,    40,   255},	/* 12 */
	{    69,    29,   -91,     0,   512,   -42,    23,  -111,    36,   255},	/* 13 */
	{    43,   -20,  -118,     0,   511, -1023,    -4,  -112,    40,   255},	/* 14 */
	{    70,   -27,   -91,     0,   512,   -42,   -62,   -94,    36,   255},	/* 15 */
	{    45,     0,   -64,     0,  1669,  -150,    -4,  -112,    40,   255},	/* 16 */
	{    18,     0,   -24,     0,  2679,    83,    53,  -101,    34,   255},	/* 17 */
	{     1,    44,   -64,     0,  1669,  -150,   113,    -4,    40,   255},	/* 18 */
	{     1,    17,   -24,     0,  2679,    83,   102,    53,    34,   255},	/* 19 */
	{    21,    42,  -118,     0,   511, -1023,   113,    -4,    40,   255},	/* 20 */
	{    28,    69,   -91,     0,   512,   -42,    95,   -62,    36,   255},	/* 21 */
	{   -41,    19,  -118,     0,   511, -1023,     5,   113,    40,   255},	/* 22 */
	{   -68,    27,   -91,     0,   512,   -42,    63,    95,    36,   255},	/* 23 */
	{   -43,     0,   -64,     0,  1669,  -150,     5,   113,    40,   255},	/* 24 */
	{   -16,     0,   -24,     0,  2679,    83,   -52,   102,    34,   255},	/* 25 */
	{   -30,   -31,   -64,     0,  1669,  -150,   -75,    83,    40,   255},	/* 26 */
	{   -11,   -12,   -24,     0,  2679,    83,  -108,    34,    34,   255},	/* 27 */
	{   -42,   -16,  -118,     0,   511, -1023,   -75,    83,    40,   255},	/* 28 */
	{   -67,   -30,   -91,     0,   512,   -42,   -22,   112,    36,   255},	/* 29 */
	{   -30,    31,   -64,     0,  1669,  -150,    83,    76,    40,   255},	/* 30 */
	{   -11,    12,   -24,     0,  2679,    83,    34,   109,    34,   255},	/* 31 */
	{   -15,    43,  -118,     0,   511, -1023,    83,    76,    40,   255},	/* 32 */
	{   -29,    68,   -91,     0,   512,   -42,   112,    23,    36,   255},	/* 33 */
	{    17,   -44,  -118,     0,   511, -1023,   -82,   -75,    40,   255},	/* 34 */
	{    31,   -68,   -91,     0,   512,   -42,  -111,   -22,    36,   255},	/* 35 */
	{    32,   -31,   -64,     0,  1669,  -150,   -82,   -75,    40,   255},	/* 36 */
	{    13,   -12,   -24,     0,  2679,    83,   -33,  -108,    34,   255},	/* 37 */
	{   -18,   -42,  -118,     0,   511, -1023,  -112,     5,    40,   255},	/* 38 */
	{   -26,   -69,   -91,     0,   512,   -42,   -94,    63,    36,   255},	/* 39 */
	{     1,   -44,   -64,     0,  1669,  -150,  -112,     5,    40,   255},	/* 40 */
	{     1,   -17,   -24,     0,  2679,    83,  -101,   -52,    34,   255},	/* 41 */
	{   -37,     0,   -35,     0,   512,   512,  -118,     0,    13,   255},	/* 42 */
	{   -27,    29,   -35,     0,     0,   511,   -85,    84,     4,   255},	/* 43 */
	{   -19,     0,   -71,     0,   860,  1518,   -96,     0,   -71,   255},	/* 44 */
	{   -27,   -29,   -35,     0,     0,   511,   -85,   -83,     4,   255},	/* 45 */
	{     1,    38,   -35,     0,   512,   512,     0,   119,    13,   255},	/* 46 */
	{    30,    29,   -35,     0,     0,   511,    86,    84,     4,   255},	/* 47 */
	{     1,    20,   -71,     0,   860,  1518,     0,    96,   -72,   255},	/* 48 */
	{     1,   -20,   -71,     0,   860,  1518,     0,   -95,   -72,   255},	/* 49 */
	{    30,   -29,   -35,     0,     0,   511,    86,   -83,     4,   255},	/* 50 */
	{     1,   -39,   -35,     0,   512,   512,     0,  -118,    13,   255},	/* 51 */
	{     1,   -20,   -71,     0,  -148,   994,     0,   -95,   -72,   255},	/* 52 */
	{    21,     0,   -71,     0,   690,   995,    97,     0,   -71,   255},	/* 53 */
	{    30,   -29,   -35,     0,   237,    10,    86,   -83,     4,   255},	/* 54 */
	{   -27,   -29,   -35,     0,   237,    10,   -85,   -83,     4,   255},	/* 55 */
	{   -19,     0,   -71,     0,   690,   995,   -96,     0,   -71,   255},	/* 56 */
	{    21,     0,   -71,     0,  -148,   994,    97,     0,   -71,   255},	/* 57 */
	{     1,    20,   -71,     0,   690,   995,     0,    96,   -72,   255},	/* 58 */
	{    30,    29,   -35,     0,   237,    10,    86,    84,     4,   255},	/* 59 */
	{    21,     0,   -71,     0,   860,  1518,    97,     0,   -71,   255},	/* 60 */
	{    39,     0,   -35,     0,   512,   512,   119,     0,    13,   255},	/* 61 */
	{   -27,    29,   -35,     0,   237,    10,   -85,    84,     4,   255},	/* 62 */
	{   -19,     0,   -71,     0,  -148,   994,   -96,     0,   -71,   255},	/* 63 */
};


/*   0 vertices */
/*   1 Materials */

#define	LDIRX	0
#define	LDIRY	0
#define	LDIRZ	120
#define	AMBDIV	1
/* 16 x 16  G_IM_SIZ_16b G_IM_FMT_RGBA  */
unsigned short SB_missile03_txt[] = {
	0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 
	0xc7, 0xc7, 0x107, 0x109, 0x109, 0x109, 0x909, 0x114b, 0x909, 0x909, 0x109, 0x107, 0xc7, 0xc7, 0xc7, 0xc7, 
	0xc7, 0x109, 0x109, 0x109, 0x949, 0x114b, 0x198d, 0x21cf, 0x21cf, 0x198d, 0x114b, 0x949, 0x109, 0x109, 0xc7, 0xc7, 
	0x109, 0x109, 0x909, 0x949, 0x114b, 0x198d, 0x2a11, 0x3253, 0x3211, 0x21cf, 0x198d, 0x114b, 0x94b, 0x949, 0x118b, 0x114b, 
	0x949, 0x109, 0x909, 0x949, 0x114b, 0x21cf, 0x3a53, 0x3a53, 0x3211, 0x2a0f, 0x21cd, 0x118b, 0x114b, 0x94b, 0x114b, 0x118b, 
	0x1, 0x1, 0x909, 0xff19, 0xff19, 0xff19, 0x2a11, 0x1, 0x1, 0x1, 0x909, 0xff19, 0xff19, 0xff19, 0x114b, 0x1, 
	0xc7, 0xc7, 0xc7, 0x109, 0x909, 0x114b, 0x198d, 0x194b, 0x21cf, 0x198d, 0x114b, 0x909, 0x109, 0x107, 0x107, 0xc7, 
	0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0x109, 0x909, 0x909, 0x909, 0x909, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 
	0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0x85, 0x85, 0x85, 0x85, 0xc7, 
	0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0xc7, 0xc7, 0xc7, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 
	0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x43, 0x43, 0x43, 0x43, 0x43, 
	0x43, 0x43, 0x43, 0x43, 0x43, 0x85, 0x85, 0x85, 0x85, 0x43, 0x43, 0x43, 0x43, 0x1, 0x1, 0x43, 
	0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x1, 0x1, 0x1, 0x1, 0x43, 
	0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x1, 0x1, 0x1, 0x1, 0x1, 
	0x1, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x1, 0x1, 0x1, 0x1, 0x1, 
	0x1, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x1, 0x1, 
};

/* 16 x 16  G_IM_SIZ_16b G_IM_FMT_RGBA  */
unsigned short SB_missile04_txt[] = {
	0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 
	0xfdc1, 0x1, 0xfdc1, 0x1, 0xfdc1, 0x1, 0xfdc1, 0x1, 0xfdc1, 0x1, 0xfdc1, 0x1, 0xfdc1, 0x1, 0xfdc1, 0x1, 
	0xfdc1, 0x1, 0xfdc1, 0x1, 0xfdc1, 0x1, 0xfdc1, 0x1, 0xfdc1, 0x1, 0xfdc1, 0x1, 0xfdc1, 0x1, 0xfdc1, 0x1, 
	0xfdc1, 0x1, 0xfdc1, 0x1, 0xfdc1, 0x1, 0xfdc1, 0x1, 0xfdc1, 0x1, 0xfdc1, 0x1, 0xfdc1, 0x1, 0xfdc1, 0x1, 
	0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 
	0x4a0f, 0x4189, 0x4187, 0x5a0b, 0x6b5b, 0x6b5b, 0x6b5b, 0x6b5b, 0x6b5b, 0x6b5b, 0x6b5b, 0x6b5b, 0x6b5b, 0x6b5b, 0x6b5b, 0x6b5b, 
	0x6291, 0x5a0b, 0x5a09, 0x5a4f, 0x62d5, 0x6b19, 0x6b5b, 0x6b5b, 0x6b5b, 0x6b5b, 0x6b5b, 0x6b5b, 0x6b5b, 0x6b5b, 0x6b5b, 0x6b19, 
	0x62d3, 0x5a4f, 0x5a4f, 0x5a91, 0x62d5, 0x6319, 0x6b19, 0x6b5b, 0x6b5b, 0x6b5b, 0x6b5b, 0x6b5b, 0x6b5b, 0x6b5b, 0x6b5b, 0x6319, 
	0x62d7, 0x6291, 0x6293, 0x62d3, 0x62d7, 0x6319, 0x6b19, 0x6b5b, 0x6b5b, 0x6b5b, 0x6b5b, 0x6b5b, 0x6b5b, 0x6b5b, 0x6b59, 0x6b19, 
	0x6319, 0x62d5, 0x62d5, 0x62d5, 0x6317, 0x6319, 0x6b19, 0x6b5b, 0x6b5b, 0x6b5b, 0x6b5b, 0x6b5b, 0x6b19, 0x6317, 0x6319, 0x6b19, 
	0x6319, 0x6317, 0x6317, 0x6317, 0x6319, 0x6319, 0x6b19, 0x6b5b, 0x6b5b, 0x6b5b, 0x6b19, 0x6317, 0x6293, 0x6291, 0x62d3, 0x6317, 
	0x6317, 0x6317, 0x6317, 0x6317, 0x6319, 0x6319, 0x6b19, 0x6b5b, 0x6b5b, 0x6b19, 0x6317, 0x62d3, 0x5a4f, 0x5a0d, 0x5a4f, 0x6293, 
	0x6293, 0x62d5, 0x62d5, 0x62d5, 0x62d7, 0x6317, 0x6b19, 0x6319, 0x6319, 0x6317, 0x62d7, 0x6293, 0x5a4f, 0x5a0d, 0x5a0b, 0x5a4f, 
	0x5a4f, 0x5a4f, 0x5a51, 0x5a51, 0x5a91, 0x6293, 0x62d5, 0x6293, 0x5a93, 0x5a93, 0x5a4f, 0x520d, 0x520b, 0x520b, 0x51cb, 0x5a0b, 
	0x51cb, 0x51cb, 0x49cb, 0x49cb, 0x49cb, 0x51cb, 0x520d, 0x49cb, 0x49cb, 0x49cb, 0x4987, 0x4985, 0x4145, 0x4147, 0x4187, 0x4987, 
	0x3947, 0x3147, 0x3105, 0x3105, 0x3943, 0x3903, 0x3103, 0x28c5, 0x28c5, 0x28c5, 0x28c3, 0x30c1, 0x28c1, 0x28c3, 0x28c3, 0x30c3, 
};

/* 16 x 16  G_IM_SIZ_16b G_IM_FMT_RGBA  */
unsigned short SB_mossile01_txt[] = {
	0xc101, 0xc101, 0xc101, 0xc141, 0xc941, 0xc201, 0xca41, 0xca41, 0xca41, 0xca41, 0xc201, 0xc941, 0xc141, 0xc101, 0xc101, 0xc101, 
	0xc101, 0xc101, 0xc101, 0xc941, 0xd1c1, 0xca81, 0xdac1, 0xdb01, 0xdb01, 0xdac1, 0xca81, 0xd1c1, 0xc941, 0xc101, 0xc101, 0xc101, 
	0xc101, 0xc101, 0xc141, 0xc981, 0xd201, 0xdb01, 0xe389, 0xe3cf, 0xebd1, 0xe389, 0xdb01, 0xd201, 0xc981, 0xc141, 0xc101, 0xc101, 
	0xc101, 0xc101, 0xc141, 0xc981, 0xd201, 0xdb01, 0xe3cd, 0xec55, 0xec13, 0xe38d, 0xdb01, 0xda01, 0xc981, 0xc141, 0xc101, 0xc101, 
	0xc101, 0xc101, 0xc141, 0xc981, 0xd201, 0xdb01, 0xe389, 0xe3cd, 0xe3cd, 0xe389, 0xdb01, 0xd201, 0xc981, 0xc141, 0xc101, 0xb901, 
	0xc101, 0xc101, 0xc141, 0xc941, 0xc9c1, 0xca81, 0xdac1, 0xdb05, 0xdb05, 0xdac1, 0xca81, 0xc9c1, 0xc941, 0xc141, 0xc101, 0xb901, 
	0xb901, 0xb901, 0xc141, 0xc141, 0xc181, 0xc201, 0xca41, 0xca41, 0xca41, 0xca41, 0xc201, 0xc181, 0xc141, 0xc141, 0xb901, 0xb901, 
	0xb943, 0xb943, 0xb943, 0xb943, 0xb983, 0xb981, 0xb981, 0xb9c1, 0xb9c1, 0xb981, 0xb981, 0xb983, 0xb943, 0xb943, 0xb943, 0xb943, 
	0xb187, 0xb187, 0xb187, 0xb187, 0xb1c7, 0xaa4b, 0xaa4b, 0xaa4b, 0xaa4b, 0xaa4b, 0xaa4b, 0xb1c7, 0xb187, 0xb187, 0xb187, 0xb187, 
	0xb1c9, 0xb1c9, 0xb1c9, 0xb1c9, 0xb1cb, 0xaa0b, 0xaa0b, 0xaa0b, 0xaa0b, 0xaa0b, 0xaa0b, 0xb1cb, 0xb1c9, 0xb1c9, 0xb1cb, 0xb1cb, 
	0x9947, 0x9147, 0x8947, 0x8147, 0x8947, 0x9987, 0xa9c7, 0xa9c7, 0xa9c7, 0xa9c7, 0x9987, 0x8947, 0x8947, 0x8147, 0x9147, 0x9947, 
	0x9903, 0x1, 0x5883, 0x5883, 0x1, 0x8103, 0xa143, 0xa943, 0xa943, 0xa943, 0x8103, 0x1, 0x5883, 0x5883, 0x1, 0x8903, 
	0x90c1, 0x1, 0x5041, 0x4841, 0x1, 0x6041, 0x98c1, 0xa101, 0x9901, 0x98c1, 0x6041, 0x1, 0x5081, 0x4841, 0x1, 0x80c1, 
	0x6881, 0x1, 0x3841, 0x4081, 0x1, 0x6881, 0x7081, 0x7881, 0x7881, 0x7881, 0x6881, 0x1, 0x4881, 0x3041, 0x1, 0x5881, 
	0x1, 0x1, 0x1, 0x1, 0xcb99, 0x2001, 0x3001, 0x3801, 0x3001, 0x3001, 0x2001, 0xcb99, 0x1, 0x1, 0x1, 0x1, 
	0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 
};

