#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),
	gsSP1Triangle(0, 1, 2, 0),
	gsSP1Triangle(1, 3, 2, 0),
	gsSP1Triangle(4, 5, 6, 0),
	gsSP1Triangle(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], 3, 0),
	gsSP1Triangle(0, 1, 2, 0),

	gsSPVertex(&TI_Enemytank_Canon_v[11], 4, 0),
	gsSP1Triangle(0, 1, 2, 0),
	gsSP1Triangle(0, 2, 3, 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),
	gsSP1Triangle(0, 1, 2, 0),
	gsSP1Triangle(0, 3, 1, 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 },   /* v0 p308/V1 used 1 times */ 
	{ -31,25,20,0, 500, 573, 2,-26,116,255 },   /* v1 p308/V2 used 2 times */ 
	{ 136,-19,7,0, -1029, 107, 31,-57,100,255 },   /* v2 p308/V3 used 2 times */ 
	{ -56,-36,0,0, 731, -74, 1,-119,0,255 },   /* v3 p309/V2 used 1 times */ 
	{ -31,25,-20,0, 48, 579, 0,-37,-114,255 },   /* v4 p291/V1 used 2 times */ 
	{ 136,-19,-7,0, 1578, 71, 0,-37,-114,255 },   /* v5 p291/V2 used 2 times */ 
	{ -56,-36,0,0, -183, -127, 0,-37,-114,255 },   /* v6 p291/V3 used 1 times */ 
	{ 136,10,-7,0, 1578, 409, 9,0,-120,255 },   /* v7 p292/V2 used 1 times */ 
	{ -56,-36,0,0, 251, -664, 1,-119,0,255 },   /* v8 p293/V1 used 1 times */ 
	{ 136,-19,-7,0, 170, 511, 4,-44,-111,255 },   /* v9 p293/V2 used 1 times */ 
	{ 136,-19,7,0, 332, 511, 31,-57,100,255 },   /* v10 p293/V3 used 1 times */ 
	{ -31,25,20,0, 0, -596, 10,120,0,255 },   /* v11 p294/V1 used 2 times */ 
	{ 136,10,7,0, 146, 511, 22,53,105,255 },   /* v12 p295/V2 used 1 times */ 
	{ 136,10,-7,0, 365, 511, 23,104,-55,255 },   /* v13 p294/V2 used 2 times */ 
	{ -31,25,-20,0, 512, -596, 14,97,-69,255 },   /* v14 p294/V3 used 1 times */ 
	{ 136,10,-7,0, 0, 511, 23,104,-55,255 },   /* v15 p297/V1 used 2 times */ 
	{ 136,-19,7,0, 511, -512, 31,-57,100,255 },   /* v16 p297/V3 used 2 times */ 
	{ 136,-19,-7,0, 0, -512, 120,0,0,255 },   /* v17 p296/V3 used 1 times */ 
	{ 136,10,7,0, 512, 511, 22,53,105,255 },   /* v18 p297/V2 used 1 times */ 
};

/* 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, 
};

/* 16 x 16  G_IM_SIZ_16b G_IM_FMT_RGBA  */
unsigned short TI_Bolt01_txt[] = {
	0x49c9, 0x4187, 0x4187, 0x3903, 0x4187, 0x3945, 0x4187, 0x4987, 0x4987, 0x4187, 0x4987, 0x51c9, 0x4145, 0x4987, 0x4145, 0x4145, 
	0x4187, 0x4987, 0x6311, 0xcef1, 0xd731, 0xc6ad, 0x6b95, 0x4187, 0x49c9, 0x6b93, 0xbe69, 0xd72d, 0xe777, 0x524b, 0x3903, 0x4187, 
	0x4187, 0x62cf, 0xdf31, 0x849b, 0x5b51, 0x6351, 0xbe69, 0xe7b3, 0xdf2f, 0xb5e5, 0x6393, 0x6351, 0xa5a5, 0xcf31, 0x524b, 0x4187, 
	0x4145, 0xbe29, 0x8cdd, 0x4a8b, 0x52cd, 0x52cd, 0x530f, 0x5b0f, 0x6351, 0x6393, 0x6b93, 0x6393, 0x6bd5, 0x9d63, 0x951f, 0x3945, 
	0x4145, 0x7c59, 0x52cd, 0x52cd, 0x530f, 0x3a49, 0x10c1, 0x8c1, 0x8c1, 0x1941, 0x428b, 0x6b93, 0x6bd5, 0x7417, 0x7c59, 0x3945, 
	0x4145, 0x6b93, 0x530f, 0x530f, 0x428b, 0x2183, 0x1901, 0x4acd, 0x52cd, 0x428b, 0x3207, 0x5b4f, 0x6bd5, 0x7417, 0x6393, 0x4187, 
	0x4145, 0x5b51, 0x6b93, 0x6391, 0x2983, 0x428b, 0x8c1, 0x2143, 0x5b51, 0x5b51, 0x4acb, 0x4a8b, 0x7c19, 0x7c59, 0x5b51, 0x3945, 
	0x4987, 0x530f, 0x7415, 0x6bd5, 0x4a8b, 0x5b51, 0x94dd, 0x41, 0x2183, 0x6391, 0x6393, 0x530f, 0x8cdd, 0x849b, 0x52cd, 0x4187, 
	0x51c9, 0x4acd, 0x849b, 0x7c17, 0x6393, 0x6bd5, 0x7c17, 0xade3, 0x41, 0x3a49, 0x6393, 0x5b51, 0x951f, 0x9d61, 0x4acd, 0x4987, 
	0x4945, 0x530f, 0x94dd, 0x849b, 0xada3, 0x7417, 0x6393, 0x7c59, 0xb5e5, 0x1101, 0x29c5, 0xa5a3, 0x951f, 0xa5a3, 0x530d, 0x4145, 
	0x4187, 0x5b0f, 0x9d61, 0x9d61, 0xade5, 0xc669, 0x7c17, 0x6393, 0x6393, 0x9d21, 0xcef1, 0xada5, 0xa5a3, 0x9d61, 0x6351, 0x4145, 
	0x4187, 0x4acd, 0x94dd, 0xb627, 0xc6ab, 0xbe67, 0xdf2f, 0xdf73, 0xd733, 0xceaf, 0xb627, 0xb5e7, 0xade5, 0xa561, 0x52cd, 0x4103, 
	0x49c9, 0x2183, 0x530f, 0x9d61, 0xceab, 0xada3, 0xa5a1, 0x951f, 0x9d1f, 0x9d61, 0xb5e5, 0xc669, 0xb5e5, 0x6393, 0x3a07, 0x4103, 
	0x4187, 0x3185, 0x1101, 0x4a8d, 0x951d, 0x9d61, 0x530f, 0x1101, 0x2141, 0x3a07, 0x94dd, 0x951d, 0x4acd, 0x2983, 0x3985, 0x4145, 
	0x4187, 0x4187, 0x2903, 0x841, 0x10c1, 0x1941, 0x2943, 0x4987, 0x4145, 0x2103, 0x1901, 0x81, 0x8c1, 0x3143, 0x4987, 0x4987, 
	0x49c9, 0x3945, 0x3103, 0x3145, 0x4187, 0x4989, 0x4987, 0x4145, 0x3903, 0x3903, 0x3945, 0x3945, 0x4187, 0x4987, 0x4145, 0x4145, 
};

/* 16 x 16  G_IM_SIZ_16b G_IM_FMT_RGBA  */
unsigned short TI_Duct01_txt[] = {
	0x520b, 0x4a0b, 0x41cb, 0x49cb, 0x4a0b, 0x520b, 0x4a0b, 0x4189, 0x41c9, 0x49cb, 0x4989, 0x4989, 0x49c9, 0x4189, 0x49cb, 0x49cb, 
	0x520b, 0x4a0b, 0x49cb, 0x41c9, 0x49cb, 0x520b, 0x4a0b, 0x3989, 0x41c9, 0x41c9, 0x49cb, 0x4189, 0x4189, 0x4189, 0x41c9, 0x520b, 
	0x520b, 0x49cb, 0x49cb, 0x4189, 0x49cb, 0x520b, 0x520b, 0x4189, 0x4a0b, 0x41c9, 0x51cb, 0x4189, 0x41cb, 0x49cb, 0x49cb, 0x520b, 
	0x49cb, 0x49cb, 0x4a0b, 0x4189, 0x49cb, 0x51cb, 0x620b, 0x620d, 0x5a0b, 0x59cb, 0x51c9, 0x4189, 0x41cb, 0x49cb, 0x49c9, 0x520b, 
	0x49cb, 0x4189, 0x49cb, 0x4189, 0x41c9, 0x1905, 0x18c5, 0x2905, 0x2905, 0x2105, 0x18c5, 0x4189, 0x4a0b, 0x41cb, 0x49c9, 0x49cb, 
	0x49c9, 0x4189, 0x49cb, 0x49cb, 0x49cb, 0x4989, 0x61cb, 0x59cb, 0x6a4d, 0x620d, 0x5a0b, 0x51cb, 0x41cb, 0x41cb, 0x4189, 0x49cb, 
	0x41c9, 0x41c9, 0x41cb, 0x4189, 0x49cb, 0x10c3, 0x18c5, 0x28c5, 0x20c3, 0x2105, 0x2105, 0x4189, 0x49cb, 0x41c9, 0x4189, 0x4189, 
	0x4189, 0x41cb, 0x4189, 0x4189, 0x49cb, 0x4989, 0x620b, 0x620d, 0x59cb, 0x6a4d, 0x5a0b, 0x49c9, 0x49cb, 0x41c9, 0x4189, 0x49c9, 
	0x41c9, 0x4189, 0x4189, 0x4189, 0x41cb, 0x1905, 0x18c5, 0x1883, 0x2905, 0x2105, 0x2105, 0x49c9, 0x520b, 0x4189, 0x4189, 0x49cb, 
	0x41c9, 0x49cb, 0x49cb, 0x4189, 0x520b, 0x51cb, 0x5189, 0x4949, 0x59cb, 0x61cb, 0x5a0b, 0x49c9, 0x51cb, 0x4189, 0x4189, 0x49cb, 
	0x41c9, 0x49cb, 0x49cb, 0x49cb, 0x51cb, 0x18c5, 0x18c5, 0x28c5, 0x2905, 0x2105, 0x2105, 0x51cb, 0x49cb, 0x4189, 0x4189, 0x49cb, 
	0x41c9, 0x4a0b, 0x49cb, 0x49cb, 0x5a0b, 0x5a0b, 0x620d, 0x620d, 0x6a4d, 0x620d, 0x5a0b, 0x520b, 0x49cb, 0x4189, 0x4189, 0x49cb, 
	0x41c9, 0x520b, 0x41cb, 0x49cb, 0x520b, 0x1083, 0x2105, 0x28c5, 0x28c5, 0x2105, 0x18c3, 0x49cb, 0x41c9, 0x41c9, 0x49cb, 0x51cb, 
	0x49cb, 0x520b, 0x4189, 0x49cb, 0x4a0b, 0x3989, 0x520b, 0x41c9, 0x49cb, 0x520b, 0x4189, 0x49c9, 0x49cb, 0x4189, 0x49cb, 0x520b, 
	0x49cb, 0x49cb, 0x41cb, 0x49cb, 0x4a0b, 0x41c9, 0x41cb, 0x3989, 0x41c9, 0x49cb, 0x4189, 0x4989, 0x49cb, 0x41c9, 0x49cb, 0x520b, 
	0x49cb, 0x4a0b, 0x41c9, 0x41c9, 0x4a0b, 0x41cb, 0x4a0b, 0x4189, 0x49c9, 0x49c9, 0x4989, 0x51c9, 0x49c9, 0x4989, 0x4189, 0x51cb, 
};

