#include<ultra64.h>

extern Vtx AC_Boss_PearlGunL_v[];

extern unsigned char AC_BossTX05_CI8_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 */


/* ======== DXFdata ======== */

Gfx AC_Boss_PearlGunL[]={

	gsDPSetTextureLUT(G_TT_RGBA16),
	gsDPLoadTLUT_pal256(&AC_BossTX05_CI8_txt[256]),
	gsDPLoadTextureBlock(AC_BossTX05_CI8_txt,G_IM_FMT_CI,G_IM_SIZ_8b,16,16,0,G_TX_WRAP,G_TX_CLAMP,4,4,0,0),

	gsSPVertex(&AC_Boss_PearlGunL_v[0], 14, 0),
	gsSP1Triangle(0, 1, 2, 0),
	gsSP1Triangle(3, 0, 4, 0),
	gsSP1Triangle(2, 5, 0, 0),
	gsSP1Triangle(5, 4, 0, 0),
	gsSP1Triangle(6, 0, 3, 0),
	gsSP1Triangle(0, 6, 1, 0),
	gsSP1Triangle(7, 1, 6, 0),
	gsSP1Triangle(7, 6, 8, 0),
	gsSP1Triangle(8, 6, 3, 0),
	gsSP1Triangle(4, 9, 10, 0),
	gsSP1Triangle(5, 9, 4, 0),
	gsSP1Triangle(4, 10, 3, 0),
	gsSP1Triangle(3, 10, 9, 0),
	gsSP1Triangle(9, 11, 3, 0),
	gsSP1Triangle(3, 11, 12, 0),
	gsSP1Triangle(3, 12, 8, 0),
	gsSP1Triangle(11, 5, 2, 0),
	gsSP1Triangle(11, 9, 5, 0),
	gsSP1Triangle(13, 12, 11, 0),
	gsSP1Triangle(2, 13, 11, 0),
	gsSPVertex(&AC_Boss_PearlGunL_v[7], 2, 0),
	gsSPVertex(&AC_Boss_PearlGunL_v[12], 9, 2),
	gsSP1Triangle(2, 3, 4, 0),
	gsSP1Triangle(1, 2, 4, 0),
	gsSP1Triangle(4, 0, 1, 0),
	gsSP1Triangle(5, 9, 6, 0),
	gsSP1Triangle(6, 7, 5, 0),
	gsSP1Triangle(7, 10, 5, 0),
	gsSP1Triangle(8, 9, 5, 0),
	gsSP1Triangle(5, 10, 8, 0),
	gsDPPipeSync(),
        gsDPSetTextureLUT(G_TT_NONE),
	gsSPEndDisplayList(),
}; /* DXFdata */ 

#undef G_CC_PRIMSHADE

#undef gs_Nin_LoadTextureImage

#undef gs_Nin_SetUpTileDescrip

/* 21 vertices */
Vtx AC_Boss_PearlGunL_v[]={
	{ 287,118,37,0, 61, 286, 55,-102,26,255 },   /* v0 used p1737/V1 6 times */
	{ 199,296,451,0, 768, 410, 91,-61,46,255 },   /* v1 used p1737/V3 3 times */
	{ 70,304,458,0, 782, 527, -81,-78,38,255 },   /* v2 used p1720/V3 8 times */
	{ 144,155,-246,0, -311, 214, 68,-72,-66,255 },   /* v3 used p1736/V3 8 times */
	{ -56,-63,98,0, 12, 848, 49,-108,6,255 },   /* v4 used p1736/V1 5 times */
	{ 46,176,149,0, 257, 513, -46,-67,86,255 },   /* v5 used p1735/V1 5 times */
	{ 355,242,-60,0, 15, 27, 119,-17,-1,255 },   /* v6 used p1737/V2 5 times */
	{ 240,411,407,0, 790, 216, 114,30,21,255 },   /* v7 used p1739/V2 3 times */
	{ 310,389,-96,0, 69, -117, 82,79,-37,255 },   /* v8 used p1738/V1 5 times */
	{ -159,28,68,0, 33, 824, -106,11,-53,255 },   /* v9 used p1735/V2 5 times */
	{ -65,-26,-88,0, -221, 706, 67,-96,-22,255 },   /* v10 used p1736/V2 3 times */
	{ 12,364,-44,0, 119, 222, -108,44,-21,255 },   /* v11 used p1733/V2 6 times */
	{ 156,420,-118,0, 58, -19, -23,109,-43,255 },   /* v12 used p1733/V3 5 times */
	{ 57,423,409,0, 798, 377, -78,90,-3,255 },   /* v13 used p1717/V1 6 times */
	{ 177,468,389,0, 803, 202, 15,119,-7,255 },   /* v14 used p1738/V3 3 times */
	{ 151,342,298,0, 263, 676, -66,72,68,255 },   /* v15 used p1744/V3 5 times */
	{ 240,411,407,0, 0, 203, -95,13,69,255 },   /* v16 used p1744/V1 2 times */
	{ 177,468,389,0, -31, 176, -3,-69,97,255 },   /* v17 used p1744/V2 2 times */
	{ 70,304,458,0, 546, 69, 63,88,52,255 },   /* v18 used p1742/V3 2 times */
	{ 199,296,451,0, 348, 163, -48,100,44,255 },   /* v19 used p1741/V2 2 times */
	{ 57,423,409,0, 276, 103, 83,-18,83,255 },   /* v20 used p1743/V2 2 times */
};


/*   0 vertices */
/*   1 Materials */

#define	LDIRX	0
#define	LDIRY	0
#define	LDIRZ	120
#define	AMBDIV	1
