#include<ultra64.h>

extern Vtx CN_Boss_Rightarm_v[];
extern Vtx CN_Boss_Rightarm_vmcur[];
extern Tri CN_Boss_Rightarm_tri[];
extern Mtx CN_Boss_Rightarm_matrix[];

extern unsigned short CN_BossTX_01_txt[];
extern unsigned short CN_BossTX_06_txt[];
extern unsigned short CN_BossTX_11_txt[];
extern unsigned short CN_BossTX_12_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)

/* main display list */


/* ======== o1 ======== */

Gfx CN_Boss_Rightarm[]={

	gs_Nin_SetUpTileDescrip(G_IM_FMT_RGBA,G_IM_SIZ_16b,32,32,0,0,G_TX_WRAP,5,0,G_TX_WRAP,5,0),
	gs_Nin_LoadTextureImage(CN_BossTX_01_txt,G_IM_FMT_RGBA,G_IM_SIZ_16b,32,32,0,7),

	gsSPVertex(&CN_Boss_Rightarm_v[0], 16, 0),
	gsSP1Triangle(0, 1, 2, 0),
	gsSP1Triangle(0, 3, 1, 0),
	gsSP1Triangle(4, 5, 6, 0),
	gsSP1Triangle(4, 6, 7, 0),
	gsSP1Triangle(8, 9, 10, 0),
	gsSP1Triangle(11, 12, 10, 0),
	gsSP1Triangle(13, 14, 15, 0),
	gsSPVertex(&CN_Boss_Rightarm_v[13], 1, 0),
	gsSPVertex(&CN_Boss_Rightarm_v[15], 10, 1),
	gsSP1Triangle(0, 1, 2, 0),
	gsSP1Triangle(3, 7, 8, 0),
	gsSP1Triangle(3, 8, 5, 0),
	gsSP1Triangle(4, 7, 3, 0),
	gsSP1Triangle(5, 8, 9, 0),
	gsSP1Triangle(5, 9, 6, 0),
	gsSP1Triangle(6, 10, 4, 0),
	gsSP1Triangle(6, 9, 10, 0),
	gsSP1Triangle(4, 10, 7, 0),

	gs_Nin_LoadTextureImage(CN_BossTX_06_txt,G_IM_FMT_RGBA,G_IM_SIZ_16b,32,32,0,7),

	gsSPVertex(&CN_Boss_Rightarm_v[25], 16, 0),
	gsSP1Triangle(0, 1, 2, 0),
	gsSP1Triangle(0, 2, 3, 0),
	gsSP1Triangle(4, 5, 6, 0),
	gsSP1Triangle(4, 6, 7, 0),
	gsSP1Triangle(8, 9, 10, 0),
	gsSP1Triangle(8, 10, 11, 0),
	gsSP1Triangle(12, 13, 14, 0),
	gsSP1Triangle(12, 14, 15, 0),
	gsSPVertex(&CN_Boss_Rightarm_v[41], 6, 0),
	gsSP1Triangle(0, 2, 3, 0),
	gsSP1Triangle(1, 4, 5, 0),

	gs_Nin_SetUpTileDescrip(G_IM_FMT_RGBA,G_IM_SIZ_16b,32,32,0,0,G_TX_MIRROR,5,0,G_TX_MIRROR,5,0),
	gs_Nin_LoadTextureImage(CN_BossTX_11_txt,G_IM_FMT_RGBA,G_IM_SIZ_16b,32,32,0,7),

	gsSPVertex(&CN_Boss_Rightarm_v[47], 16, 0),
	gsSP1Triangle(0, 1, 2, 0),
	gsSP1Triangle(0, 2, 3, 0),
	gsSP1Triangle(4, 5, 6, 0),
	gsSP1Triangle(4, 6, 7, 0),
	gsSP1Triangle(8, 9, 10, 0),
	gsSP1Triangle(8, 11, 9, 0),
	gsSP1Triangle(12, 13, 14, 0),
	gsSP1Triangle(12, 14, 15, 0),

	gs_Nin_LoadTextureImage(CN_BossTX_12_txt,G_IM_FMT_RGBA,G_IM_SIZ_16b,32,32,0,7),

	gsSPVertex(&CN_Boss_Rightarm_v[63], 5, 0),
	gsSP1Triangle(0, 1, 2, 0),
	gsSP1Triangle(2, 1, 3, 0),
	gsSP1Triangle(3, 1, 4, 0),
	gsSP1Triangle(4, 1, 0, 0),
	gsSPEndDisplayList(),
}; /* o1 */ 

/* 68 vertices */
Vtx CN_Boss_Rightarm_v[]={
	{ 129,-36,75,0, 0, 1024, -28, -114, 17, 0 },   /* v0 p8/V1 used 2 times */ 
	{ 245,-36,-153,0, 1024, 0, 0, -119, 0, 0 },   /* v1 p8/V2 used 2 times */ 
	{ 245,-36,75,0, 1024, 1024, 23, -113, 28, 0 },   /* v2 p8/V3 used 1 times */ 
	{ 129,-36,-153,0, 0, 0, -18, -118, 0, 0 },   /* v3 p7/V2 used 1 times */ 
	{ 245,45,75,0, 0, 1024, 0, 120, 8, 0 },   /* v4 p9/V1 used 2 times */ 
	{ 245,45,-153,0, 0, 0, 0, 120, 0, 0 },   /* v5 p9/V2 used 1 times */ 
	{ 129,45,-153,0, 1023, 0, -34, 115, -2, 0 },   /* v6 p9/V3 used 2 times */ 
	{ 129,45,75,0, 1023, 1024, -47, 106, 28, 0 },   /* v7 p10/V3 used 1 times */ 
	{ 129,45,75,0, 1024, 1023, -47, 106, 28, 0 },   /* v8 p27/V1 used 1 times */ 
	{ 129,-36,75,0, 0, 1023, -28, -114, 17, 0 },   /* v9 p27/V2 used 1 times */ 
	{ 187,4,168,0, 512, 2395, -101, 0, 63, 0 },   /* v10 p27/V3 used 2 times */ 
	{ 245,-36,75,0, 1024, 1023, 23, -113, 28, 0 },   /* v11 p26/V1 used 1 times */ 
	{ 245,45,75,0, 0, 1023, 118, 0, 20, 0 },   /* v12 p26/V2 used 1 times */ 
	{ 245,45,-153,0, 1024, 0, 120, 0, 0, 0 },   /* v13 p5/V1 used 2 times */ 
	{ 245,45,75,0, 1024, 1024, 118, 0, 20, 0 },   /* v14 p4/V2 used 1 times */ 
	{ 245,-36,75,0, 0, 1024, 120, 0, 0, 0 },   /* v15 p5/V2 used 2 times */ 
	{ 245,-36,-153,0, 0, 0, 120, 0, 0, 0 },   /* v16 p5/V3 used 1 times */ 
	{ 116,-16,-12,0, 256, 632, -91, -76, -4, 0 },   /* v17 p20/V1 used 3 times */ 
	{ 116,25,-12,0, 768, 632, -109, 3, -48, 0 },   /* v18 p18/V3 used 3 times */ 
	{ 116,-16,27,0, 256, 808, -26, -116, 0, 0 },   /* v19 p20/V3 used 3 times */ 
	{ 116,25,27,0, 768, 808, -73, 94, 4, 0 },   /* v20 p18/V1 used 3 times */ 
	{ 129,-36,-153,0, 0, 0, -18, -118, 0, 0 },   /* v21 p19/V2 used 3 times */ 
	{ 129,-36,75,0, 0, 1024, -28, -114, 17, 0 },   /* v22 p20/V2 used 3 times */ 
	{ 129,45,75,0, 1024, 1024, -47, 106, 28, 0 },   /* v23 p17/V2 used 3 times */ 
	{ 129,45,-153,0, 1024, 0, -34, 115, -2, 0 },   /* v24 p18/V2 used 3 times */ 
	{ 143,35,-131,0, 0, 1023, 17, -54, -105, 0 },   /* v25 p35/V1 used 2 times */ 
	{ 129,45,-153,0, -170, 1301, 72, -57, -77, 0 },   /* v26 p34/V2 used 1 times */ 
	{ 245,45,-153,0, 1194, 1301, -36, -90, -69, 0 },   /* v27 p35/V2 used 2 times */ 
	{ 231,35,-131,0, 1024, 1023, -39, -24, -110, 0 },   /* v28 p35/V3 used 1 times */ 
	{ 231,-26,-131,0, 0, 1024, -16, 55, -105, 0 },   /* v29 p37/V1 used 2 times */ 
	{ 245,-36,-153,0, -170, 1301, -71, 58, -77, 0 },   /* v30 p37/V2 used 1 times */ 
	{ 129,-36,-153,0, 1194, 1301, 37, 91, -69, 0 },   /* v31 p37/V3 used 2 times */ 
	{ 143,-26,-131,0, 1023, 1024, 40, 25, -110, 0 },   /* v32 p38/V3 used 1 times */ 
	{ 143,-26,-131,0, 0, 1024, 40, 25, -110, 0 },   /* v33 p29/V1 used 2 times */ 
	{ 129,-36,-153,0, -170, 1456, 37, 91, -69, 0 },   /* v34 p29/V2 used 1 times */ 
	{ 129,45,-153,0, 1194, 1456, 72, -57, -77, 0 },   /* v35 p29/V3 used 2 times */ 
	{ 143,35,-131,0, 1024, 1024, 17, -54, -105, 0 },   /* v36 p30/V3 used 1 times */ 
	{ 231,35,-131,0, 1024, 1023, -39, -24, -110, 0 },   /* v37 p31/V1 used 2 times */ 
	{ 245,45,-153,0, 1194, 591, -36, -90, -69, 0 },   /* v38 p31/V2 used 1 times */ 
	{ 245,-36,-153,0, -170, 591, -71, 58, -77, 0 },   /* v39 p31/V3 used 2 times */ 
	{ 231,-26,-131,0, 0, 1023, -16, 55, -105, 0 },   /* v40 p32/V3 used 1 times */ 
	{ 187,4,168,0, 512, 133, 56, 0, 105, 0 },   /* v41 p25/V1 used 1 times */ 
	{ 187,4,168,0, 512, 1914, 56, 0, 105, 0 },   /* v42 p6/V1 used 1 times */ 
	{ 129,-36,75,0, 0, 1024, -28, -114, 17, 0 },   /* v43 p25/V2 used 1 times */ 
	{ 245,-36,75,0, 1024, 1024, 23, -113, 28, 0 },   /* v44 p25/V3 used 1 times */ 
	{ 245,45,75,0, 1024, 1024, 0, 120, 8, 0 },   /* v45 p6/V2 used 1 times */ 
	{ 129,45,75,0, 0, 1024, -47, 106, 28, 0 },   /* v46 p6/V3 used 1 times */ 
	{ 39,-16,27,0, 1024, 1024, 0, -119, 0, 0 },   /* v47 p11/V1 used 2 times */ 
	{ 39,-16,-12,0, 0, 1024, 0, -119, 0, 0 },   /* v48 p11/V2 used 1 times */ 
	{ 116,-16,-12,0, 0, 0, -91, -76, -4, 0 },   /* v49 p11/V3 used 2 times */ 
	{ 116,-16,27,0, 1024, 0, -26, -116, 0, 0 },   /* v50 p12/V3 used 1 times */ 
	{ 39,-16,-12,0, 1024, 1024, 0, 0, -120, 0 },   /* v51 p24/V1 used 2 times */ 
	{ 39,25,-12,0, 1024, 0, 0, 0, -120, 0 },   /* v52 p23/V2 used 1 times */ 
	{ 116,25,-12,0, 0, 0, -109, 3, -48, 0 },   /* v53 p24/V2 used 2 times */ 
	{ 116,-16,-12,0, 0, 1024, 0, 0, -120, 0 },   /* v54 p24/V3 used 1 times */ 
	{ 39,25,-12,0, 0, 0, 0, 120, 0, 0 },   /* v55 p22/V1 used 2 times */ 
	{ 116,25,27,0, 1023, 1023, -73, 94, 4, 0 },   /* v56 p22/V2 used 2 times */ 
	{ 116,25,-12,0, 0, 1024, 0, 120, 0, 0 },   /* v57 p22/V3 used 1 times */ 
	{ 39,25,27,0, 1024, 0, 0, 120, 0, 0 },   /* v58 p21/V2 used 1 times */ 
	{ 39,25,27,0, 0, 0, 0, 0, 119, 0 },   /* v59 p1/V1 used 2 times */ 
	{ 39,-16,27,0, 0, 1024, 0, 0, 119, 0 },   /* v60 p1/V2 used 1 times */ 
	{ 116,-16,27,0, 1024, 1024, -71, 0, 95, 0 },   /* v61 p1/V3 used 2 times */ 
	{ 116,25,27,0, 1024, 0, 0, 0, 119, 0 },   /* v62 p2/V3 used 1 times */ 
	{ 143,35,-131,0, 1023, 0, 17, -54, -105, 0 },   /* v63 p3/V3 used 2 times */ 
	{ 187,4,-131,0, 511, 511, 0, 0, -120, 0 },   /* v64 p28/V2 used 4 times */ 
	{ 143,-26,-131,0, 1023, 1023, 40, 25, -110, 0 },   /* v65 p28/V1 used 2 times */ 
	{ 231,-26,-131,0, 0, 1024, -16, 55, -105, 0 },   /* v66 p28/V3 used 2 times */ 
	{ 231,35,-131,0, 0, 0, -39, -24, -110, 0 },   /* v67 p3/V1 used 2 times */ 
};


/*   0 vertices */
/*   1 Materials */

#define	LDIRX	0
#define	LDIRY	0
#define	LDIRZ	120
#define	AMBDIV	1
