#include<ultra64.h>

extern Vtx TI_Enemytank_Canon_v[];
extern Vtx TI_Enemytank_Canon_vmcur[];
extern Tri TI_Enemytank_Canon_tri[];
extern Mtx TI_Enemytank_Canon_matrix[];

extern unsigned short TI_Barel01_txt[];
extern unsigned short TI_Bolt01_txt[];
extern unsigned short TI_Duct01_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)

#define G_CC_PRIMSHADE PRIMITIVE,0,SHADE,0,0,0,0,SHADE

/* main display list */


/* ======== TI_Enemytank ======== */

Gfx TI_Enemytank_Canon_[]={

	gs_Nin_SetUpTileDescrip(G_IM_FMT_RGBA,G_IM_SIZ_16b,16,16,0,0,G_TX_CLAMP,4,0,G_TX_CLAMP,4,0),
	gs_Nin_LoadTextureImage(TI_Bolt01_txt,G_IM_FMT_RGBA,G_IM_SIZ_16b,16,16,0,7),


	gsSPVertex(&TI_Enemytank_Canon_v[0],8,0),
	gsSP2Triangles(0, 1, 2, 0, 1, 3, 2, 0),
	gsSP2Triangles(4, 5, 6, 0, 4, 7, 5, 0),
	gs_Nin_LoadTextureImage(TI_Duct01_txt,G_IM_FMT_RGBA,G_IM_SIZ_16b,16,16,0,7),



	gsSPVertex(&TI_Enemytank_Canon_v[8],7,0),
	gsSP2Triangles(0, 1, 2, 0, 3, 4, 5, 0),
	gsSP1Triangle(3, 5, 6, 0),
	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(TI_Barel01_txt,G_IM_FMT_RGBA,G_IM_SIZ_16b,16,16,0,7),

	gsSPVertex(&TI_Enemytank_Canon_v[15],4,0),
	gsSP1Quadrangle(0, 3, 1, 2, 0),
	gsSPEndDisplayList(),
}; /* TI_Enemytank */ 

#undef G_CC_PRIMSHADE

#undef gs_Nin_LoadTextureImage

#undef gs_Nin_SetUpTileDescrip

/* 19 vertices */
Vtx TI_Enemytank_Canon_v[]={
	{   136,    10,     7,     0, -1029,   418,    22,    53,   105,   255},	/* 0 */
	{   -31,    25,    20,     0,   500,   573,     2,   -26,   116,   255},	/* 1 */
	{   136,   -19,     7,     0, -1029,   107,    31,   -57,   100,   255},	/* 2 */
	{   -56,   -36,     0,     0,   731,   -74,     1,  -119,     0,   255},	/* 3 */
	{   -31,    25,   -20,     0,    48,   579,     0,   -37,  -114,   255},	/* 4 */
	{   136,   -19,    -7,     0,  1578,    71,     0,   -37,  -114,   255},	/* 5 */
	{   -56,   -36,     0,     0,  -183,  -127,     0,   -37,  -114,   255},	/* 6 */
	{   136,    10,    -7,     0,  1578,   409,     9,     0,  -120,   255},	/* 7 */
	{   -56,   -36,     0,     0,   251,  -664,     1,  -119,     0,   255},	/* 8 */
	{   136,   -19,    -7,     0,   170,   511,     4,   -44,  -111,   255},	/* 9 */
	{   136,   -19,     7,     0,   332,   511,    31,   -57,   100,   255},	/* 10 */
	{   -31,    25,    20,     0,     0,  -596,    10,   120,     0,   255},	/* 11 */
	{   136,    10,     7,     0,   146,   511,    22,    53,   105,   255},	/* 12 */
	{   136,    10,    -7,     0,   365,   511,    23,   104,   -55,   255},	/* 13 */
	{   -31,    25,   -20,     0,   512,  -596,    14,    97,   -69,   255},	/* 14 */
	{   136,    10,    -7,     0,     0,   511,    23,   104,   -55,   255},	/* 15 */
	{   136,   -19,     7,     0,   511,  -512,    31,   -57,   100,   255},	/* 16 */
	{   136,   -19,    -7,     0,     0,  -512,   120,     0,     0,   255},	/* 17 */
	{   136,    10,     7,     0,   512,   511,    22,    53,   105,   255},	/* 18 */
};

/* 16 x 16  G_IM_SIZ_16b G_IM_FMT_RGBA  */
unsigned short TI_Barel01_txt[] = {
	0x4945, 0x4945, 0x4945, 0x4945, 0x4143, 0x4103, 0x3901, 0x3901, 0x3901, 0x4101, 0x4141, 0x4183, 0x4983, 0x4943, 0x4943, 0x4945, 
	0x4945, 0x2001, 0x1, 0x1001, 0x801, 0x1801, 0x1801, 0x4103, 0x38c1, 0x1801, 0x801, 0x1801, 0x1, 0x1, 0x1801, 0x4945, 
	0x4945, 0x3881, 0x1947, 0x2187, 0x2189, 0x2187, 0x3001, 0x801, 0x801, 0x3001, 0x2149, 0x318b, 0x31cd, 0x2189, 0x3041, 0x4945, 
	0x4945, 0x40c1, 0x21c9, 0x5b55, 0x4b13, 0x4b13, 0x84e1, 0xade9, 0xbe6d, 0x7c9d, 0x2a09, 0x5315, 0x6bd9, 0x320d, 0x3881, 0x4945, 
	0x4945, 0x4143, 0x320d, 0x63d9, 0x5313, 0xa5e7, 0x63d7, 0x324d, 0x42d1, 0x63d9, 0xa5e7, 0x4b11, 0x5b55, 0x424f, 0x38c1, 0x4945, 
	0x4945, 0x4143, 0x428f, 0x5313, 0xa5e7, 0x5b95, 0x2187, 0x881, 0x881, 0x2187, 0x5b55, 0x7c9d, 0x4b13, 0x6313, 0x3901, 0x4145, 
	0x4945, 0x6a4b, 0xb3d9, 0x745d, 0x63d7, 0x2187, 0x41, 0x1, 0x1, 0x41, 0x1987, 0x5b55, 0xa5a7, 0xa3d9, 0x6acd, 0x4143, 
	0x4943, 0x4101, 0x5101, 0x63d7, 0x428f, 0x10c5, 0x1, 0x1, 0x1, 0x1, 0x883, 0x5b55, 0x5b55, 0x4101, 0x4103, 0x3903, 
	0x4145, 0x3903, 0x4103, 0x3a8d, 0x6397, 0x1947, 0x1, 0x1, 0x1, 0x1, 0x1947, 0x8d23, 0x320b, 0x3901, 0x28c1, 0x3903, 
	0x4943, 0x1001, 0x1801, 0x81, 0x6c1b, 0x42d1, 0x1947, 0x1, 0x1, 0x2149, 0x42cf, 0x5355, 0x1, 0x801, 0x801, 0x4103, 
	0x40c1, 0x4081, 0x2145, 0x8c1, 0x320b, 0x7c5d, 0x6bd9, 0x4ad3, 0x52d3, 0x63d9, 0x7c5d, 0x21c7, 0x1105, 0x2187, 0x40c1, 0x4903, 
	0x4903, 0x4081, 0x3a4f, 0x3a4f, 0x2187, 0x29c9, 0x5313, 0x9523, 0xade9, 0x741b, 0x2187, 0x81, 0x2a0b, 0x42d1, 0x4081, 0x4945, 
	0x4945, 0x3881, 0x6397, 0x5b97, 0x42d1, 0x320b, 0x2147, 0x2149, 0x31cd, 0x2189, 0x1945, 0x2a0b, 0x42d1, 0x5313, 0x4081, 0x4945, 
	0x4945, 0x3881, 0x4b13, 0x5b95, 0x6c1b, 0x5313, 0x8a8f, 0xa3d9, 0xabd9, 0x9b13, 0x3a4d, 0x6bd9, 0x6c19, 0x6c1b, 0x3881, 0x4945, 
	0x4945, 0x6185, 0x9b0f, 0xab93, 0xab93, 0xb395, 0x828d, 0x38c1, 0x3903, 0x7a8f, 0x9c19, 0x9bd9, 0xa41b, 0x8b53, 0x6209, 0x4985, 
	0x4945, 0x4945, 0x4945, 0x4945, 0x4945, 0x4143, 0x4103, 0x3901, 0x4143, 0x4945, 0x4945, 0x4945, 0x4945, 0x4945, 0x4945, 0x4945, 
};
