#include<ultra64.h>

extern Vtx AC_Boss_KaigaraB_v[];

extern unsigned char AC_BossTX02_CI8_txt[];
extern unsigned char AC_BossTX03_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_KaigaraB[]={

#if 1
	gsSPTexture(10000, 10000, 0, G_TX_RENDERTILE, G_ON),
	gsSPSetGeometryMode(G_TEXTURE_GEN|G_TEXTURE_GEN_LINEAR),
#endif
	gsDPLoadTLUT_pal256(&AC_BossTX02_CI8_txt[1024]),
	gsDPLoadTextureBlock(AC_BossTX02_CI8_txt,G_IM_FMT_CI,G_IM_SIZ_8b,32,32,0,G_TX_WRAP,G_TX_WRAP,5,5,0,0),
	gsDPSetTextureLUT(G_TT_RGBA16),


	gsSPVertex(&AC_Boss_KaigaraB_v[0],24,0),
	gsSP2Triangles(0, 1, 2, 0, 3, 4, 2, 0),
	gsSP2Triangles(5, 6, 2, 0, 7, 8, 2, 0),
	gsSP2Triangles(2, 1, 9, 0, 8, 10, 2, 0),
	gsSP2Triangles(11, 12, 2, 0, 4, 5, 2, 0),
	gsSP2Triangles(6, 7, 2, 0, 10, 11, 2, 0),
	gsSP2Triangles(13, 14, 2, 0, 2, 14, 15, 0),
	gsSP2Triangles(12, 13, 2, 0, 14, 13, 16, 0),
	gsSP2Triangles(2, 15, 17, 0, 18, 0, 2, 0),
	gsSP2Triangles(2, 17, 18, 0, 19, 20, 21, 0),
	gsSP2Triangles(22, 1, 23, 0, 2, 22, 3, 0),
#if 1
	gsSPTexture(0xffff, 0xffff, 0, G_TX_RENDERTILE, G_ON),
	gsSPClearGeometryMode(G_TEXTURE_GEN|G_TEXTURE_GEN_LINEAR),
#endif
	gsDPLoadTLUT_pal256(&AC_BossTX03_CI8_txt[1024]),
	gsDPLoadTextureBlock(AC_BossTX03_CI8_txt,G_IM_FMT_CI,G_IM_SIZ_8b,32,32,0,G_TX_WRAP,G_TX_CLAMP,5,5,0,0),

	gsSPVertex(&AC_Boss_KaigaraB_v[24],31,0),
	gsSP2Triangles(0, 1, 2, 0, 3, 4, 5, 0),
	gsSP2Triangles(5, 4, 6, 0, 6, 7, 5, 0),
	gsSP2Triangles(8, 9, 10, 0, 9, 11, 10, 0),
	gsSP2Triangles(12, 7, 6, 0, 13, 14, 15, 0),
	gsSP2Triangles(16, 17, 18, 0, 19, 17, 16, 0),
	gsSP2Triangles(20, 21, 22, 0, 22, 21, 23, 0),
	gsSP2Triangles(24, 25, 26, 0, 27, 28, 29, 0),
	gsSP1Triangle(27, 29, 30, 0),
	gsSPVertex(&AC_Boss_KaigaraB_v[55],32,0),
	gsSP2Triangles(0, 1, 2, 0, 3, 4, 5, 0),
	gsSP2Triangles(6, 7, 8, 0, 9, 10, 11, 0),
	gsSP2Triangles(12, 13, 14, 0, 15, 16, 17, 0),
	gsSP2Triangles(16, 18, 17, 0, 19, 20, 21, 0),
	gsSP2Triangles(22, 23, 24, 0, 25, 26, 27, 0),
	gsSP2Triangles(25, 28, 26, 0, 29, 30, 31, 0),
	gsSPVertex(&AC_Boss_KaigaraB_v[87],22,0),
	gsSP2Triangles(0, 1, 2, 0, 3, 4, 5, 0),
	gsSP2Triangles(6, 7, 8, 0, 9, 10, 11, 0),
	gsSP2Triangles(9, 12, 10, 0, 13, 14, 15, 0),
	gsSP2Triangles(16, 17, 18, 0, 19, 20, 21, 0),
	gsDPPipeSync(),
        gsDPSetTextureLUT(G_TT_NONE),
	gsSPEndDisplayList(),
}; /* DXFdata */ 

#undef G_CC_PRIMSHADE

#undef gs_Nin_LoadTextureImage

#undef gs_Nin_SetUpTileDescrip

/* 109 vertices */
Vtx AC_Boss_KaigaraB_v[]={
	{  -993,  -120,   616,     0,  -578,  -119,    33,   114,    15,   255},	/* 0 */
	{ -1118,     0,  1084,     0,  -700,   456,    51,   108,    13,   255},	/* 1 */
	{     0,  -400,  1084,     0,   390,   660,     0,   120,    -1,   255},	/* 2 */
	{  -929,    40,  1640,     0,  -516,  1202,    26,   109,   -43,   255},	/* 3 */
	{  -692,  -160,  1700,     0,  -284,  1322,    18,   116,   -25,   255},	/* 4 */
	{  -562,    36,  1880,     0,  -157,  1576,    -2,   104,   -59,   255},	/* 5 */
	{  -238,   -56,  1860,     0,   158,  1610,    -3,   109,   -50,   255},	/* 6 */
	{     0,   100,  1980,     0,   390,  1807,    16,   104,   -58,   255},	/* 7 */
	{   238,  -120,  1880,     0,   621,  1723,    62,    90,   -50,   255},	/* 8 */
	{ -1035,  -195,  1420,     0,  -619,   901,    37,   102,    49,   255},	/* 9 */
	{   562,   100,  1860,     0,   938,  1756,   -31,   106,   -45,   255},	/* 10 */
	{   692,   -60,  1700,     0,  1064,  1575,   -16,   111,   -42,   255},	/* 11 */
	{   972,    80,  1640,     0,  1338,  1550,   -12,   101,   -64,   255},	/* 12 */
	{  1035,  -195,  1420,     0,  1399,  1280,    11,    86,    82,   255},	/* 13 */
	{  1118,     0,  1084,     0,  1480,   865,   -42,   111,    13,   255},	/* 14 */
	{   993,  -120,   616,     0,  1358,   243,   -24,   116,    15,   255},	/* 15 */
	{  1231,    -5,  1324,     0,  1590,  1192,   -69,    91,    34,   255},	/* 16 */
	{   432,     0,     0,     0,   811,  -647,    -6,   113,    38,   255},	/* 17 */
	{  -432,     0,     0,     0,   -31,  -805,     7,   113,    38,   255},	/* 18 */
	{  -993,  -120,   616,     0,  -219,   170,    33,   114,    15,   255},	/* 19 */
	{ -1118,     0,  1084,     0,  -310,  -638,    51,   108,    13,   255},	/* 20 */
	{ -1011,  -195,  1420,     0,  -232, -1192,    35,   101,   -55,   255},	/* 21 */
	{ -1011,  -195,  1420,     0,  -595,   905,    35,   101,   -55,   255},	/* 22 */
	{ -1231,    -5,  1324,     0,  -810,   742,    66,    94,    32,   255},	/* 23 */
	{ -1150,  -259,  1282,     0,   183,   714,   -78,   -89,   -11,   255},	/* 24 */
	{ -1011,  -195,  1420,     0,   599,   860,   -92,   -16,    73,   255},	/* 25 */
	{ -1231,    -5,  1324,     0,    69,  1085,  -112,   -38,    13,   255},	/* 26 */
	{ -1231,    -5,  1324,     0,  1034,  1088,  -112,   -38,    13,   255},	/* 27 */
	{ -1118,     0,  1084,     0,   686,   954,  -113,   -13,   -36,   255},	/* 28 */
	{ -1150,  -259,  1282,     0,  1085,   714,   -78,   -89,   -11,   255},	/* 29 */
	{  -993,  -120,   616,     0,    93,   670,   -60,   -91,   -48,   255},	/* 30 */
	{  -474,  -597,  1036,     0,   726,  -366,   -22,  -116,   -12,   255},	/* 31 */
	{ -1150,  -259,  1282,     0,   -67,   878,   -78,   -89,   -11,   255},	/* 32 */
	{  -801,  -384,  1688,     0,  1130,   323,   -77,   -73,    52,   255},	/* 33 */
	{ -1011,  -195,  1420,     0,   376,   862,   -92,   -16,    73,   255},	/* 34 */
	{  -929,    40,  1640,     0,   906,  1157,   -77,   -12,    89,   255},	/* 35 */
	{  -432,     0,     0,     0,  -910,   113,    -9,  -102,   -60,   255},	/* 36 */
	{     0,  -360,  1948,     0,  1472,   690,     0,  -105,    55,   255},	/* 37 */
	{  -485,  -120,  1888,     0,   260,   843,   -22,   -86,    79,   255},	/* 38 */
	{  -474,  -597,  1036,     0,   270,  -244,   -22,  -116,   -12,   255},	/* 39 */
	{   474,  -597,  1036,     0,  1037,   -59,    19,  -115,   -22,   255},	/* 40 */
	{   845,  -384,  1648,     0,   983,   762,    39,   -90,    67,   255},	/* 41 */
	{   485,  -120,  1888,     0,   279,   870,    28,   -85,    78,   255},	/* 42 */
	{  1150,  -259,  1282,     0,  1675,   706,    79,   -88,   -14,   255},	/* 43 */
	{   993,  -120,   616,     0,   794,   896,    61,   -91,   -48,   255},	/* 44 */
	{  1118,     0,  1084,     0,   281,  1090,   114,   -13,   -36,   255},	/* 45 */
	{  1150,  -259,  1282,     0,     0,   455,    79,   -88,   -14,   255},	/* 46 */
	{  1231,    -5,  1324,     0,    -9,  1063,   114,   -37,     5,   255},	/* 47 */
	{  -474,  -597,  1036,     0,   693,  -359,   -22,  -116,   -12,   255},	/* 48 */
	{  -801,  -384,  1688,     0,   920,   716,   -77,   -73,    52,   255},	/* 49 */
	{ -1150,  -259,  1282,     0,    44,   784,   -78,   -89,   -11,   255},	/* 50 */
	{  -485,  -120,  1888,     0,  1046,   732,   -22,   -86,    79,   255},	/* 51 */
	{  -562,    36,  1880,     0,   867,   997,   -36,   -11,   112,   255},	/* 52 */
	{  -692,  -160,  1700,     0,   342,   849,   -58,     6,   103,   255},	/* 53 */
	{  -801,  -384,  1688,     0,    95,   631,   -77,   -73,    52,   255},	/* 54 */
	{     0,  -360,  1948,     0,   490,    94,     0,  -105,    55,   255},	/* 55 */
	{     0,   100,  1980,     0,   657,  1144,    -5,    -7,   119,   255},	/* 56 */
	{  -238,   -56,  1860,     0,    77,   973,   -20,    12,   117,   255},	/* 57 */
	{   238,  -120,  1880,     0,   692,   904,   -47,    92,    59,   255},	/* 58 */
	{     0,   100,  1980,     0,    56,  1179,    -5,    -7,   119,   255},	/* 59 */
	{     0,  -360,  1948,     0,   511,     0,     0,  -105,    55,   255},	/* 60 */
	{  -238,   -56,  1860,     0,   730,   888,   -20,    12,   117,   255},	/* 61 */
	{  -485,  -120,  1888,     0,     0,  1024,   -22,   -86,    79,   255},	/* 62 */
	{     0,  -360,  1948,     0,  1013,    10,     1,    36,   113,   255},	/* 63 */
	{  1231,    -5,  1324,     0,   419,  1335,   114,   -37,     5,   255},	/* 64 */
	{  1035,  -195,  1420,     0,  1060,   877,    11,    86,    82,   255},	/* 65 */
	{  1150,  -259,  1282,     0,   511,   508,    79,   -88,   -14,   255},	/* 66 */
	{   474,  -597,  1036,     0,   703,  -331,    19,  -115,   -22,   255},	/* 67 */
	{   485,  -120,  1888,     0,   921,   825,    28,   -85,    78,   255},	/* 68 */
	{     0,  -360,  1948,     0,    51,   671,     0,  -105,    55,   255},	/* 69 */
	{  1150,  -259,  1282,     0,  -507,   803,    79,   -88,   -14,   255},	/* 70 */
	{   474,  -597,  1036,     0,    35,  -189,    19,  -115,   -22,   255},	/* 71 */
	{   993,  -120,   616,     0,   407,   786,    61,   -91,   -48,   255},	/* 72 */
	{   432,     0,     0,     0,  1454,   242,    17,  -102,   -60,   255},	/* 73 */
	{   474,  -597,  1036,     0,  1228,  -226,    19,  -115,   -22,   255},	/* 74 */
	{     0,  -360,  1948,     0,   557,   803,     0,  -105,    55,   255},	/* 75 */
	{  -474,  -597,  1036,     0,    10,  -162,   -22,  -116,   -12,   255},	/* 76 */
	{  1035,  -195,  1420,     0,   871,   952,    11,    86,    82,   255},	/* 77 */
	{   972,    80,  1640,     0,    56,  1115,    71,   -17,    94,   255},	/* 78 */
	{   845,  -384,  1648,     0,   407,   326,    39,   -90,    67,   255},	/* 79 */
	{   692,   -60,  1700,     0,   570,   962,    59,     2,   103,   255},	/* 80 */
	{   485,  -120,  1888,     0,    71,   690,    28,   -85,    78,   255},	/* 81 */
	{   845,  -384,  1648,     0,   969,   558,    39,   -90,    67,   255},	/* 82 */
	{   562,   100,  1860,     0,   121,  1093,    44,     0,   110,   255},	/* 83 */
	{  -485,  -120,  1888,     0,   301,   783,   -22,   -86,    79,   255},	/* 84 */
	{  -238,   -56,  1860,     0,   958,   987,   -20,    12,   117,   255},	/* 85 */
	{  -562,    36,  1880,     0,   210,   984,   -36,   -11,   112,   255},	/* 86 */
	{  -801,  -384,  1688,     0,   768,   786,    46,   -95,    54,   255},	/* 87 */
	{  -474,  -597,  1036,     0,   851,  -133,   -22,  -116,   -12,   255},	/* 88 */
	{  -485,  -120,  1888,     0,  1345,   819,   -22,   -86,    79,   255},	/* 89 */
	{  1035,  -195,  1420,     0,   597,   893,    11,    86,    82,   255},	/* 90 */
	{   845,  -384,  1648,     0,   -60,   608,    39,   -90,    67,   255},	/* 91 */
	{  1150,  -259,  1282,     0,   937,   708,    79,   -88,   -14,   255},	/* 92 */
	{     0,  -360,  1948,     0,     0,     0,     1,    36,   113,   255},	/* 93 */
	{   485,  -120,  1888,     0,  1056,  1048,    28,   -85,    78,   255},	/* 94 */
	{   238,  -120,  1880,     0,   486,   851,   -47,    92,    59,   255},	/* 95 */
	{   474,  -597,  1036,     0,  1031, -1160,    19,  -115,   -22,   255},	/* 96 */
	{  -432,     0,     0,     0,    15,   453,    -9,  -102,   -60,   255},	/* 97 */
	{   432,     0,     0,     0,   948,   409,    17,  -102,   -60,   255},	/* 98 */
	{  -474,  -597,  1036,     0,     6, -1112,   -22,  -116,   -12,   255},	/* 99 */
	{  -692,  -160,  1700,     0,   875,   941,   -58,     6,   103,   255},	/* 100 */
	{  -929,    40,  1640,     0,   131,  1259,   -77,   -12,    89,   255},	/* 101 */
	{  -801,  -384,  1688,     0,   683,   312,   -77,   -73,    52,   255},	/* 102 */
	{   845,  -384,  1648,     0,   558,   291,    39,   -90,    67,   255},	/* 103 */
	{   972,    80,  1640,     0,   918,  1105,    71,   -17,    94,   255},	/* 104 */
	{   692,   -60,  1700,     0,   250,   971,    59,     2,   103,   255},	/* 105 */
	{   562,   100,  1860,     0,  1089,  1023,    44,     0,   110,   255},	/* 106 */
	{   238,  -120,  1880,     0,   170,   948,   -47,    92,    59,   255},	/* 107 */
	{   485,  -120,  1888,     0,   770,   725,    28,   -85,    78,   255},	/* 108 */
};


/*   0 vertices */
/*   1 Materials */

#define	LDIRX	0
#define	LDIRY	0
#define	LDIRZ	120
#define	AMBDIV	1
