#include<ultra64.h>

extern Vtx ZO_ebi_head_v[];

extern unsigned short ZO_serpent_TX13_txt[];
extern unsigned short ZO_serpent_TX19_txt[];
extern unsigned short ZO_tori_TX05_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 ZO_ebi_head[]={

	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(ZO_tori_TX05_txt,G_IM_FMT_RGBA,G_IM_SIZ_16b,16,16,0,7),

	gsSPVertex(&ZO_ebi_head_v[0], 6, 0),
	gsSP1Triangle(0, 1, 2, 0),
	gsSP1Triangle(3, 4, 5, 0),

	gs_Nin_LoadTextureImage(ZO_serpent_TX13_txt,G_IM_FMT_RGBA,G_IM_SIZ_16b,16,16,0,7),

	gsSPVertex(&ZO_ebi_head_v[6], 12, 0),
	gsSP1Triangle(0, 1, 2, 0),
	gsSP1Triangle(3, 4, 5, 0),
	gsSP1Triangle(6, 7, 8, 0),
	gsSP1Triangle(9, 10, 11, 0),

	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(ZO_serpent_TX19_txt,G_IM_FMT_RGBA,G_IM_SIZ_16b,16,16,0,7),

	gsSPVertex(&ZO_ebi_head_v[18], 6, 0),
	gsSP1Triangle(0, 1, 2, 0),
	gsSP1Triangle(3, 4, 5, 0),
	gsSPEndDisplayList(),
}; /* DXFdata */ 

#undef G_CC_PRIMSHADE

#undef gs_Nin_LoadTextureImage

#undef gs_Nin_SetUpTileDescrip

/* 24 vertices */
Vtx ZO_ebi_head_v[]={
	{ 16,0,-19,0, 511, 527, -29,-80,-83,255 },   /* v0 used p8/V1 2 times */
	{ 16,-19,0,0, 510, 7, 20,-103,-57,255 },   /* v1 used p8/V2 2 times */
	{ -37,0,0,0, 45, 298, -29,-80,-83,255 },   /* v2 used p8/V3 2 times */
	{ -37,0,0,0, 45, 298, -72,67,67,255 },   /* v3 used p20/V1 2 times */
	{ 16,19,0,0, 510, 7, -16,117,-21,255 },   /* v4 used p20/V2 2 times */
	{ 16,0,-19,0, 511, 527, 20,55,-105,255 },   /* v5 used p20/V3 2 times */
	{ 16,-19,0,0, 0, 512, 20,-103,-57,255 },   /* v6 used p4/V1 2 times */
	{ 16,0,-19,0, 512, 512, 20,55,-105,255 },   /* v7 used p4/V2 2 times */
	{ 39,0,0,0, 261, 2, 104,-41,-43,255 },   /* v8 used p4/V3 2 times */
	{ 39,0,0,0, 256, -11, 104,-41,-43,255 },   /* v9 used p3/V1 2 times */
	{ 16,0,-19,0, 0, 512, 20,55,-105,255 },   /* v10 used p3/V2 2 times */
	{ 16,19,0,0, 525, 511, -16,117,-21,255 },   /* v11 used p3/V3 2 times */
	{ 16,19,0,0, 0, 512, 60,73,73,255 },   /* v12 used p2/V1 2 times */
	{ 16,0,19,0, 512, 512, 20,-54,104,255 },   /* v13 used p2/V2 2 times */
	{ 39,0,0,0, 260, 1, 60,73,73,255 },   /* v14 used p2/V3 2 times */
	{ 39,0,0,0, 251, 1, 104,-41,-43,255 },   /* v15 used p5/V1 2 times */
	{ 16,0,19,0, 0, 512, 20,-54,104,255 },   /* v16 used p5/V2 2 times */
	{ 16,-19,0,0, 512, 512, 20,-103,-57,255 },   /* v17 used p5/V3 2 times */
	{ -37,0,0,0, -652, 419, -72,67,67,255 },   /* v18 used p18/V1 2 times */
	{ 16,0,19,0, 453, -104, -28,81,82,255 },   /* v19 used p18/V2 2 times */
	{ 16,19,0,0, 575, 486, -16,117,-21,255 },   /* v20 used p18/V3 2 times */
	{ 16,-19,0,0, 575, 486, -28,-80,82,255 },   /* v21 used p1/V1 2 times */
	{ 16,0,19,0, 453, -104, 20,-54,104,255 },   /* v22 used p1/V2 2 times */
	{ -37,0,0,0, -652, 419, -72,67,67,255 },   /* v23 used p1/V3 2 times */
};


/*   0 vertices */
/*   1 Materials */

#define	LDIRX	0
#define	LDIRY	0
#define	LDIRZ	120
#define	AMBDIV	1
/* 16 x 16  G_IM_SIZ_16b G_IM_FMT_RGBA  */
unsigned short ZO_serpent_TX13_txt[] = {
	0xf801, 0xf801, 0xd081, 0xb0c1, 0x9101, 0x9101, 0x8901, 0x8901, 0x8901, 0x88c1, 0x9081, 0x9881, 0xc081, 0xd841, 0xf041, 0xf801, 
	0xf801, 0xf801, 0xe881, 0xb8c1, 0xa101, 0x9901, 0x9141, 0x9141, 0x9141, 0x9101, 0x98c1, 0xa0c1, 0xb881, 0xd881, 0xf801, 0xf801, 
	0xf801, 0xf841, 0xd8c1, 0xc101, 0xa941, 0xa181, 0x9983, 0x99c5, 0x99c3, 0x9983, 0xa141, 0xa901, 0xb8c1, 0xd8c1, 0xf041, 0xf841, 
	0xe8c1, 0xe0c1, 0xc901, 0xb941, 0xb1c3, 0xaa07, 0xaa49, 0xaa8b, 0xaa8b, 0xaa49, 0xaa07, 0xb1c3, 0xb981, 0xd141, 0xd901, 0xe8c1, 
	0xd141, 0xc981, 0xc181, 0xba05, 0xba49, 0xbacd, 0xbb51, 0xc393, 0xc393, 0xc391, 0xbb0d, 0xbac9, 0xc245, 0xca03, 0xc981, 0xc981, 
	0xc201, 0xc201, 0xc245, 0xc2c9, 0xc34f, 0xcbd5, 0xd459, 0xdc9d, 0xdcdf, 0xdc9d, 0xd459, 0xd3d3, 0xcb4f, 0xcac9, 0xca85, 0xc201, 
	0xc243, 0xba85, 0xc2c9, 0xcb4f, 0xd415, 0xdc9b, 0xe563, 0xede7, 0xf5e9, 0xf5e7, 0xed63, 0xe4dd, 0xdc57, 0xd3d1, 0xcb09, 0xc285, 
	0xba85, 0xbac7, 0xc34d, 0xcbd3, 0xdc9b, 0xed63, 0xf5e9, 0xfeaf, 0xfef1, 0xfeaf, 0xfe29, 0xeda3, 0xe51d, 0xd455, 0xcb8d, 0xc2c7, 
	0xb285, 0xbac7, 0xc34d, 0xcc15, 0xdcdd, 0xeda3, 0xfe29, 0xfeef, 0xff33, 0xff33, 0xfe6b, 0xf5a5, 0xe51d, 0xd455, 0xc34b, 0xbac7, 
	0xaa03, 0xb245, 0xbb0b, 0xc391, 0xd499, 0xe561, 0xf629, 0xfe6d, 0xfead, 0xfe6b, 0xf5e5, 0xe51f, 0xd457, 0xc38f, 0xbac7, 0xaa43, 
	0x9981, 0xa1c1, 0xaa47, 0xbb0d, 0xcbd5, 0xdc9b, 0xe561, 0xeda5, 0xede5, 0xeda3, 0xdd1d, 0xcc15, 0xbb4f, 0xb2c7, 0xaa03, 0xa1c1, 
	0x9901, 0x9941, 0xa1c1, 0xaa47, 0xb30d, 0xc3d3, 0xcc59, 0xd49b, 0xd4db, 0xd499, 0xc3d3, 0xb30b, 0xaa45, 0xa1c1, 0x9981, 0x9941, 
	0x98c1, 0x9901, 0xa141, 0xa1c1, 0xaa45, 0xb2cb, 0xbb4f, 0xbb91, 0xbb91, 0xbb4f, 0xaac9, 0xa203, 0x9981, 0x9941, 0x9901, 0x98c1, 
	0xb081, 0xa8c1, 0xa101, 0x9941, 0x9981, 0xa203, 0xa247, 0xaa89, 0xaa89, 0xa247, 0x99c3, 0x9141, 0x9101, 0x98c1, 0xa8c1, 0xb081, 
	0xd841, 0xc081, 0xb0c1, 0xa101, 0x9941, 0x9181, 0x9181, 0x91c3, 0x91c3, 0x9181, 0x9141, 0x9101, 0x98c1, 0xa881, 0xc081, 0xd841, 
	0xf801, 0xe081, 0xc0c1, 0xa0c1, 0x9101, 0x8901, 0x8901, 0x8901, 0x8901, 0x8901, 0x88c1, 0x90c1, 0xa081, 0xb881, 0xe041, 0xf801, 
};

/* 16 x 16  G_IM_SIZ_16b G_IM_FMT_RGBA  */
unsigned short ZO_serpent_TX15_txt[] = {
	0xa301, 0xc401, 0xdc81, 0xe503, 0xed03, 0xdc81, 0xa2c1, 0x60c1, 0x2041, 0x41, 0x41, 0x41, 0x1841, 0x3841, 0x5901, 0x8201, 
	0xcc41, 0xdcc3, 0xe4c3, 0xed05, 0xf585, 0xed43, 0xcc41, 0x9241, 0x4841, 0x841, 0x41, 0x41, 0x2041, 0x50c1, 0x8201, 0xab41, 
	0xc401, 0xab41, 0x9ac1, 0xa301, 0xcc41, 0xe505, 0xe503, 0xc401, 0x8201, 0x3881, 0x2041, 0x3041, 0x5901, 0x8241, 0xb381, 0xc443, 
	0x8241, 0x5901, 0x4081, 0x58c1, 0x9241, 0xcc41, 0xed87, 0xed47, 0xc441, 0x92c1, 0x7a01, 0x8a81, 0xa341, 0xbc01, 0xc443, 0xab81, 
	0x4041, 0x2841, 0x2841, 0x4041, 0x7141, 0xb381, 0xf5cb, 0xedcd, 0xdd4b, 0xdd07, 0xcc87, 0xcc87, 0xcc85, 0xbbc1, 0xab41, 0x7181, 
	0x4841, 0x4041, 0x4041, 0x5041, 0x6101, 0x9ac1, 0xed49, 0xee0f, 0xf695, 0xf6d7, 0xf653, 0xe58d, 0xc445, 0xa301, 0x89c1, 0x6081, 
	0x70c1, 0x78c1, 0x70c1, 0x6081, 0x6901, 0x9241, 0xd485, 0xedcd, 0xfed7, 0xffe1, 0xff1b, 0xe5d1, 0xb409, 0x8a83, 0x6901, 0x68c1, 
	0x8141, 0xa1c1, 0x9981, 0x7901, 0x7941, 0xa241, 0xdc41, 0xedcd, 0xf693, 0xff19, 0xff9f, 0xe655, 0xb48d, 0x7a43, 0x48c1, 0x58c1, 
	0x7941, 0xa201, 0xa9c1, 0x9141, 0x91c1, 0xbb01, 0xe4c5, 0xf60d, 0xfed3, 0xff17, 0xff19, 0xee97, 0xc4cf, 0x8b07, 0x3841, 0x5041, 
	0x5041, 0x7101, 0x9181, 0xa1c1, 0xb241, 0xdc01, 0xf589, 0xedcd, 0xcd0d, 0xcd4f, 0xee53, 0xddd1, 0xc4cf, 0xa3cb, 0x61c3, 0x3841, 
	0x1041, 0x2841, 0x68c1, 0xa1c1, 0xcb01, 0xf503, 0xed8b, 0xccc9, 0x7ac1, 0x6a85, 0xa409, 0xb48d, 0xa3cb, 0x8b07, 0x7245, 0x4901, 
	0x1881, 0x41, 0x3841, 0x89c1, 0xd3c1, 0xfd87, 0xf54b, 0x9301, 0x2881, 0x41, 0x41, 0x6245, 0x82c7, 0x7245, 0x5983, 0x40c1, 
	0x1081, 0x41, 0x1841, 0x79c1, 0xd441, 0xfd89, 0xcc43, 0x5941, 0x841, 0x41, 0x41, 0x1041, 0x4943, 0x4941, 0x48c1, 0x3081, 
	0x41, 0x41, 0x2041, 0x71c1, 0xd441, 0xed47, 0xb341, 0x4081, 0x41, 0x41, 0x41, 0x1041, 0x4081, 0x5101, 0x48c1, 0x3081, 
	0x1841, 0x3041, 0x5901, 0x92c1, 0xd441, 0xdc85, 0xa2c1, 0x4041, 0x41, 0x41, 0x41, 0x1041, 0x3841, 0x50c1, 0x50c1, 0x3041, 
	0x6141, 0x7a01, 0xa301, 0xbbc1, 0xd481, 0xcc41, 0x9241, 0x4041, 0x841, 0x41, 0x41, 0x841, 0x2841, 0x4041, 0x50c1, 0x5901, 
};

/* 16 x 16  G_IM_SIZ_16b G_IM_FMT_RGBA  */
unsigned short ZO_tori_TX05_txt[] = {
	0x1, 0x1, 0x801, 0x1, 0x1, 0x1, 0x1, 0x801, 0x1, 0x1, 0x801, 0x1, 0x801, 0x801, 0x801, 0x801, 
	0x801, 0x1001, 0x801, 0x801, 0x1, 0x1001, 0x1, 0x801, 0x1, 0x801, 0x1, 0x1001, 0x1, 0x1001, 0x1001, 0x1001, 
	0x1, 0x1801, 0x1, 0x801, 0x801, 0x1, 0x801, 0x801, 0x801, 0x1801, 0x801, 0x1001, 0x1001, 0x1801, 0x1001, 0x1841, 
	0x3041, 0x1801, 0x2001, 0x1001, 0x1001, 0x1, 0x1001, 0x1, 0x1001, 0x1, 0x1801, 0x1, 0x2001, 0x1001, 0x2041, 0x2841, 
	0x801, 0x801, 0x1801, 0x1, 0x1801, 0x1801, 0x2001, 0x1001, 0x2001, 0x1, 0x1801, 0x801, 0x2001, 0x1001, 0x2841, 0x801, 
	0x3841, 0x3041, 0x1801, 0x2001, 0x2001, 0x1001, 0x1, 0x801, 0x801, 0x1001, 0x801, 0x801, 0x801, 0x1801, 0x3041, 0x3041, 
	0x1801, 0x801, 0x1001, 0x801, 0x2001, 0x1801, 0x2841, 0x2041, 0x1, 0x2841, 0x1, 0x2841, 0x1001, 0x3041, 0x801, 0x2041, 
	0x2841, 0x4041, 0x3841, 0x1801, 0x3841, 0x1, 0x1001, 0x801, 0x1841, 0x1841, 0x1, 0x2041, 0x801, 0x3881, 0x2841, 0x4881, 
	0x1801, 0x2841, 0x1, 0x4881, 0x1841, 0x3881, 0x30c3, 0x1001, 0x801, 0x801, 0x2041, 0x2083, 0x4105, 0x2041, 0x2041, 0x3881, 
	0x50c1, 0x50c1, 0x4901, 0x5143, 0x1, 0x2905, 0x1, 0x2083, 0x841, 0x1041, 0x2883, 0x1883, 0x5147, 0x38c3, 0x6143, 0x3881, 
	0x38c1, 0x1841, 0x5183, 0x3145, 0x49c7, 0x4a0b, 0x3147, 0x28c5, 0x2907, 0x2905, 0x1883, 0x628f, 0x20c5, 0x4147, 0x6987, 0x2881, 
	0x6203, 0x6203, 0x5a8b, 0x2105, 0x4a8f, 0x843, 0x5b0f, 0x20c5, 0x2107, 0x39cb, 0x5a4f, 0x420d, 0x62d1, 0x41cb, 0x4147, 0x4103, 
	0x2901, 0x62c7, 0x6393, 0x5353, 0x5311, 0x6395, 0x4ad1, 0x4a4d, 0x7bdd, 0x31cd, 0x7397, 0x2107, 0x6355, 0x4a51, 0x6313, 0x624b, 
	0x62c5, 0x6b4d, 0x4ad1, 0x8d23, 0x4ad3, 0x7d25, 0x5b59, 0x9523, 0x6b9b, 0xa5a9, 0x8ce3, 0x9525, 0x7c5f, 0x5315, 0x845b, 0x7351, 
	0x5b09, 0x7c57, 0x9523, 0xadeb, 0xc6b3, 0x298b, 0xbef5, 0x1909, 0xd6f7, 0x7c21, 0xa56b, 0xb62f, 0xcef5, 0xb671, 0x9d65, 0x52d3, 
	0xa5a7, 0xa5e9, 0xa5eb, 0x298b, 0xffff, 0xbe31, 0xc737, 0x8ca3, 0xffff, 0x39cf, 0xd737, 0x7c61, 0xffff, 0xbe2f, 0xb62f, 0xadeb, 
};

/* 16 x 16  G_IM_SIZ_16b G_IM_FMT_RGBA  */
unsigned short ZO_serpent_TX19_txt[] = {
	0x81c7, 0x81c7, 0x9209, 0x9249, 0x7983, 0x8a07, 0x9a8b, 0x7181, 0x40c3, 0xbb97, 0xdce1, 0xdce1, 0xe569, 0xff35, 0xc461, 0xffff, 
	0x9a8d, 0x928d, 0x928f, 0x928f, 0x9311, 0xab95, 0xb417, 0xc45d, 0xc49f, 0xd523, 0xe5a7, 0xfe2b, 0x3843, 0xffff, 0xfeb3, 0xffff, 
	0xb201, 0xc241, 0x6147, 0xa24b, 0x8a09, 0x9249, 0x8207, 0x49c9, 0x8355, 0xa3d9, 0xa41b, 0xb49f, 0xfe2b, 0xe5e9, 0x4105, 0xedeb, 
	0xb201, 0xba01, 0xba47, 0xb249, 0x1001, 0xa20b, 0x61cf, 0x6ad5, 0x6acf, 0x5187, 0x4145, 0x8b95, 0x9c19, 0xa45d, 0xac5d, 0xb4a1, 
	0x9141, 0x9141, 0x5905, 0x7989, 0x8185, 0x8299, 0xf637, 0xffbf, 0xf62b, 0xb453, 0x6a47, 0x4985, 0x6b13, 0x7b57, 0x5ad1, 0x7b57, 
	0x78c1, 0x7901, 0x7901, 0x8983, 0x4149, 0xdd73, 0xffff, 0xffff, 0xfffb, 0xf5db, 0xbc0b, 0x69c3, 0x39cd, 0x4a4f, 0x2a4f, 0x5291, 
	0x6841, 0x60c1, 0x60c1, 0x6901, 0x390d, 0xf631, 0xffff, 0xffff, 0xffb3, 0xfdd7, 0xd449, 0x9ac3, 0x6a0d, 0x524d, 0x2a0f, 0x31cb, 
	0x6041, 0x6041, 0x5041, 0x5081, 0x4107, 0xccdd, 0xff31, 0xff71, 0xfe61, 0xf551, 0xd447, 0xaac1, 0x5189, 0x5985, 0x4a09, 0x5145, 
	0x4001, 0x5801, 0x4801, 0x6145, 0x1043, 0x8acb, 0xdc93, 0xf557, 0xed11, 0xdc89, 0xc383, 0x9201, 0x40c1, 0x4901, 0x4141, 0x50c1, 
	0x5001, 0x4001, 0x3801, 0x4841, 0x3881, 0x4941, 0x9ac5, 0xc3c9, 0xcbc7, 0xbb43, 0xa281, 0x50c1, 0x2841, 0x40c1, 0x3081, 0x2841, 
	0x3001, 0x3801, 0x4001, 0x4801, 0x4801, 0x4041, 0x5941, 0x7a01, 0x9241, 0x81c1, 0x48c1, 0x1801, 0x1001, 0x2841, 0x2801, 0x1, 
	0x1001, 0x2001, 0x4001, 0x4801, 0x1801, 0x4801, 0x4801, 0x3841, 0x3041, 0x2801, 0x1801, 0x801, 0x801, 0x801, 0x1001, 0x1001, 
	0x1, 0x801, 0x2001, 0x2801, 0x3801, 0x2801, 0x3801, 0x2801, 0x1801, 0x1001, 0x801, 0x1, 0x1, 0x1, 0x1, 0x1, 
	0x1001, 0x801, 0x1001, 0x2001, 0x2801, 0x2801, 0x2001, 0x1801, 0x1001, 0x801, 0x801, 0x1, 0x1, 0x1, 0x1, 0x1, 
	0x801, 0x1001, 0x1801, 0x2801, 0x2001, 0x1001, 0x1001, 0x1801, 0x801, 0x1001, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 
	0x3001, 0x2001, 0x3801, 0x3801, 0x3001, 0x3801, 0x2001, 0x3001, 0x1001, 0x2801, 0x801, 0x801, 0x1, 0x1001, 0x801, 0x1, 
};


