#include<ultra64.h>
extern Vtx SN_SNB_Ago_v[];
extern Lights1 SN_SNB_Ago_material[];

extern unsigned short SN_BossTX08_txt[];
extern unsigned short SN_BossTX_01_txt[];
extern unsigned short SN_BossTX_05_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


/* ======== o1 ======== */

Gfx SN_SNB_Ago[]={

	gsDPLoadTextureBlock(SN_BossTX_01_txt, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 5, 5, G_TX_NOLOD, G_TX_NOLOD ),


	gsSPVertex(&SN_SNB_Ago_v[0], 32, 0),
	gsSP1Triangle(0, 1, 2, 0),
	gsSP1Triangle(2, 3, 0, 0),
	gsSP1Triangle(0, 3, 4, 0),
	gsSP1Triangle(0, 5, 1, 0),
	gsSP1Triangle(6, 7, 8, 0),
	gsSP1Triangle(9, 10, 7, 0),
	gsSP1Triangle(7, 6, 11, 0),
	gsSP1Triangle(7, 11, 9, 0),
	gsSP1Triangle(8, 7, 12, 0),
	gsSP1Triangle(12, 7, 13, 0),
	gsSP1Triangle(14, 7, 10, 0),
	gsSP1Triangle(9, 11, 15, 0),
	gsSP1Triangle(9, 16, 17, 0),
	gsSP1Triangle(9, 18, 10, 0),
	gsSP1Triangle(9, 17, 18, 0),
	gsSP1Triangle(6, 8, 19, 0),
	gsSP1Triangle(20, 21, 22, 0),
	gsSP1Triangle(20, 22, 16, 0),
	gsSP1Triangle(23, 22, 21, 0),
	gsSP1Triangle(10, 18, 24, 0),
	gsSP1Triangle(10, 25, 26, 0),
	gsSP1Triangle(14, 10, 26, 0),
	gsSP1Triangle(24, 25, 10, 0),
	gsSP1Triangle(25, 27, 8, 0),
	gsSP1Triangle(25, 28, 26, 0),
	gsSP1Triangle(25, 29, 30, 0),
	gsSP1Triangle(25, 31, 29, 0),
	gsSP1Triangle(28, 25, 8, 0),
	gsSP1Triangle(24, 31, 25, 0),
	gsSP1Triangle(4, 23, 21, 0),
	gsSP1Triangle(28, 8, 12, 0),
	gsSP1Triangle(19, 8, 27, 0),
	gsSPVertex(&SN_SNB_Ago_v[19], 1, 0),
	gsSPVertex(&SN_SNB_Ago_v[27], 1, 1),
	gsSPVertex(&SN_SNB_Ago_v[29], 2, 2),
	gsSPVertex(&SN_SNB_Ago_v[32], 3, 4),
	gsSP1Triangle(4, 3, 2, 0),
	gsSP1Triangle(4, 2, 6, 0),
	gsSP1Triangle(0, 1, 5, 0),



	gsDPLoadTextureBlock(SN_BossTX08_txt, G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 16, 0, G_TX_MIRROR, G_TX_MIRROR, 4, 4, G_TX_NOLOD, G_TX_NOLOD ),


	gsSPVertex(&SN_SNB_Ago_v[35], 29, 0),
	gsSP1Triangle(0, 1, 2, 0),
	gsSP1Triangle(3, 2, 4, 0),
	gsSP1Triangle(2, 5, 4, 0),
	gsSP1Triangle(2, 1, 5, 0),
	gsSP1Triangle(6, 7, 1, 0),
	gsSP1Triangle(1, 8, 5, 0),
	gsSP1Triangle(4, 5, 9, 0),
	gsSP1Triangle(10, 11, 12, 0),
	gsSP1Triangle(12, 11, 13, 0),
	gsSP1Triangle(10, 14, 11, 0),
	gsSP1Triangle(14, 3, 11, 0),
	gsSP1Triangle(11, 15, 16, 0),
	gsSP1Triangle(17, 16, 13, 0),
	gsSP1Triangle(9, 18, 4, 0),
	gsSP1Triangle(3, 4, 18, 0),
	gsSP1Triangle(19, 20, 14, 0),
	gsSP1Triangle(21, 6, 20, 0),
	gsSP1Triangle(20, 6, 22, 0),
	gsSP1Triangle(20, 22, 3, 0),
	gsSP1Triangle(21, 23, 6, 0),
	gsSP1Triangle(14, 24, 3, 0),
	gsSP1Triangle(25, 19, 14, 0),
	gsSP1Triangle(25, 26, 7, 0),
	gsSP1Triangle(19, 27, 24, 0),
	gsSP1Triangle(23, 28, 7, 0),
	gsSP1Triangle(23, 7, 0, 0),



	gsDPLoadTextureBlock(SN_BossTX_05_txt, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 5, 5, G_TX_NOLOD, G_TX_NOLOD ),


	gsSPVertex(&SN_SNB_Ago_v[64], 5, 0),
	gsSP1Triangle(0, 1, 2, 0),
	gsSP1Triangle(1, 3, 4, 0),
	gsSP1Triangle(0, 3, 1, 0),
	gsSPEndDisplayList(),
}; /* o1 */ 

#undef G_CC_PRIMSHADE
#undef gs_Nin_LoadTextureImage
#undef gs_Nin_SetUpTileDescrip
/*  69 vertices */
Vtx SN_SNB_Ago_v[]={
	{  36,-4,-16,0,0,2346,-5,-115,28,255 },   /* v0 used p26/V3 4 times */ 
	{  -2,-13,-32,0,-511,1151,7,-109,45,255 },   /* v1 used p12/V2 2 times */ 
	{  37,-8,-23,0,-206,2369,-27,-95,65,255 },   /* v2 used p26/V1 2 times */ 
	{  69,-18,-11,0,175,3396,-47,-77,76,255 },   /* v3 used p26/V2 2 times */ 
	{  67,-5,0,0,512,3329,-33,-114,0,255 },   /* v4 used p63/V1 2 times */ 
	{  -2,-8,-16,0,0,1128,13,-118,6,255 },   /* v5 used p11/V2 1 times */ 
	{  -5,13,16,0,1024,1024,8,119,12,255 },   /* v6 used p24/V2 3 times */ 
	{  40,10,16,0,1024,2456,0,116,26,255 },   /* v7 used p25/V1 7 times */ 
	{  40,10,-16,0,0,2456,4,119,-14,255 },   /* v8 used p28/V1 7 times */ 
	{  23,8,32,0,1536,1922,31,14,113,255 },   /* v9 used p25/V3 6 times */ 
	{  61,4,16,0,1024,3107,82,54,67,255 },   /* v10 used p19/V1 7 times */ 
	{  -4,5,32,0,1536,1066,0,95,71,255 },   /* v11 used p25/V2 3 times */ 
	{  43,17,0,0,512,2528,-86,80,15,255 },   /* v12 used p32/V1 3 times */ 
	{  50,14,11,0,853,2745,-61,85,55,255 },   /* v13 used p32/V3 1 times */ 
	{  50,14,11,0,853,2745,83,23,82,255 },   /* v14 used p34/V1 2 times */ 
	{  -2,-13,32,0,1536,1151,0,0,119,255 },   /* v15 used p4/V3 1 times */ 
	{  -2,-13,32,0,1536,1151,26,-100,57,255 },   /* v16 used p23/V3 2 times */ 
	{  37,-8,23,0,1231,2369,30,-39,108,255 },   /* v17 used p20/V2 2 times */ 
	{  69,-18,11,0,849,3396,61,-9,101,255 },   /* v18 used p20/V3 3 times */ 
	{  -5,13,-16,0,0,1024,5,118,-18,255 },   /* v19 used p8/V3 3 times */ 
	{  -2,-8,16,0,1024,1128,11,-116,-20,255 },   /* v20 used p23/V1 2 times */ 
	{  36,-4,16,0,1024,2346,-1,-117,-20,255 },   /* v21 used p22/V2 3 times */ 
	{  37,-8,23,0,1231,2369,-6,-107,-50,255 },   /* v22 used p23/V2 3 times */ 
	{  69,-18,11,0,849,3396,-47,-77,-77,255 },   /* v23 used p63/V2 2 times */ 
	{  67,-5,0,0,512,3329,109,50,0,255 },   /* v24 used p61/V1 3 times */ 
	{  61,4,-16,0,0,3107,78,41,-80,255 },   /* v25 used p19/V2 8 times */ 
	{  57,12,0,0,512,2962,116,24,-15,255 },   /* v26 used p19/V3 3 times */ 
	{  23,8,-32,0,-511,1922,8,112,-42,255 },   /* v27 used p6/V2 3 times */ 
	{  50,14,-11,0,171,2745,-20,90,-75,255 },   /* v28 used p29/V1 3 times */ 
	{  37,-8,-23,0,-206,2369,31,-21,-113,255 },   /* v29 used p1/V3 4 times */ 
	{  23,8,-32,0,-511,1922,27,-42,-108,255 },   /* v30 used p1/V2 2 times */ 
	{  69,-18,-11,0,175,3396,71,3,-96,255 },   /* v31 used p61/V2 2 times */ 
	{  -4,5,-32,0,-511,1066,20,-23,-115,255 },   /* v32 used p1/V1 2 times */ 
	{  -4,5,-32,0,-511,1066,-11,104,-57,255 },   /* v33 used p15/V3 1 times */ 
	{  -2,-13,-32,0,-511,1151,29,3,-116,255 },   /* v34 used p2/V3 1 times */ 
	{  53,33,0,0,154,629,-47,65,88,255 },   /* v35 used p39/V3 2 times */ 
	{  88,42,5,0,512,511,-15,56,103,255 },   /* v36 used p52/V2 4 times */ 
	{  91,48,0,0,589,559,40,90,66,255 },   /* v37 used p52/V1 4 times */ 
	{  88,42,-5,0,525,614,46,-1,-110,255 },   /* v38 used p51/V3 5 times */ 
	{  104,30,0,0,595,525,96,56,-45,255 },   /* v39 used p53/V3 5 times */ 
	{  106,24,4,0,567,476,45,21,108,255 },   /* v40 used p52/V3 4 times */ 
	{  53,33,0,0,154,629,-62,92,-44,255 },   /* v41 used p50/V2 4 times */ 
	{  59,30,7,0,191,544,-39,64,92,255 },   /* v42 used p38/V3 4 times */ 
	{  108,11,0,0,506,509,-30,-37,108,255 },   /* v43 used p55/V2 1 times */ 
	{  108,11,0,0,506,509,117,23,0,255 },   /* v44 used p60/V3 2 times */ 
	{  59,30,7,0,191,544,41,-89,66,255 },   /* v45 used p46/V1 2 times */ 
	{  88,39,0,0,506,560,-6,-115,26,255 },   /* v46 used p54/V2 5 times */ 
	{  88,42,5,0,512,511,-31,-100,55,255 },   /* v47 used p54/V1 2 times */ 
	{  108,11,0,0,506,509,-84,-60,-59,255 },   /* v48 used p54/V3 2 times */ 
	{  66,28,0,0,246,600,74,-92,-14,255 },   /* v49 used p49/V1 5 times */ 
	{  88,42,-5,0,525,614,-75,-82,-40,255 },   /* v50 used p56/V2 1 times */ 
	{  106,24,-4,0,578,561,-63,-55,-84,255 },   /* v51 used p57/V2 2 times */ 
	{  88,39,0,0,506,560,-52,-37,-100,255 },   /* v52 used p57/V1 1 times */ 
	{  106,24,-4,0,578,561,96,57,-43,255 },   /* v53 used p59/V3 2 times */ 
	{  57,12,0,0,61,613,116,24,-15,255 },   /* v54 used p42/V2 3 times */ 
	{  59,30,-7,0,209,685,-21,66,-97,255 },   /* v55 used p50/V1 4 times */ 
	{  50,14,-11,0,30,743,-20,90,-75,255 },   /* v56 used p41/V1 2 times */ 
	{  91,48,0,0,589,559,-32,85,-77,255 },   /* v57 used p50/V3 2 times */ 
	{  43,17,0,0,-30,641,-86,80,15,255 },   /* v58 used p40/V2 3 times */ 
	{  59,30,-7,0,209,685,69,-66,-71,255 },   /* v59 used p36/V3 2 times */ 
	{  50,14,11,0,0,511,83,23,82,255 },   /* v60 used p42/V1 2 times */ 
	{  66,28,0,0,246,600,78,-23,87,255 },   /* v61 used p43/V2 1 times */ 
	{  50,14,-11,0,30,743,92,-38,-66,255 },   /* v62 used p36/V2 1 times */ 
	{  50,14,11,0,0,511,-61,85,55,255 },   /* v63 used p38/V2 1 times */ 
	{  -2,-8,-16,0,1024,1024,13,-118,6,255 },   /* v64 used p9/V1 2 times */ 
	{  36,-4,16,0,0,-208,-1,-117,-20,255 },   /* v65 used p64/V1 3 times */ 
	{  -2,-8,16,0,0,1024,11,-116,-20,255 },   /* v66 used p10/V3 1 times */ 
	{  36,-4,-16,0,1024,-208,-5,-115,28,255 },   /* v67 used p64/V2 2 times */ 
	{  67,-5,0,0,512,-1180,-33,-114,0,255 },   /* v68 used p64/V3 1 times */ 
};
