#include<ultra64.h>

extern Vtx ZO_Fish02_body_v[];
extern Vtx ZO_Fish02_body_vmcur[];
extern Tri ZO_Fish02_body_tri[];
extern Mtx ZO_Fish02_body_matrix[];

extern unsigned short ZO_Fish02_TX5_txt[];
extern unsigned short ZO_serpent_TX13_txt[];
extern unsigned short ZO_serpent_TX15_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 */


Gfx ZO_Fish02_body_[]={

	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_serpent_TX13_txt,G_IM_FMT_RGBA,G_IM_SIZ_16b,16,16,0,7),

	gsSPVertex(&ZO_Fish02_body_v[0], 6, 0),
	gsSP1Triangle(0, 1, 2, 0),
	gsSP1Triangle(3, 4, 5, 0),

	gs_Nin_LoadTextureImage(ZO_serpent_TX15_txt,G_IM_FMT_RGBA,G_IM_SIZ_16b,16,16,0,7),

	gsSPVertex(&ZO_Fish02_body_v[6], 12, 0),
	gsSP1Triangle(0, 1, 2, 0),
	gsSP1Triangle(1, 3, 2, 0),
	gsSP1Triangle(4, 5, 6, 0),
	gsSP1Triangle(4, 6, 7, 0),
	gsSP1Triangle(8, 9, 10, 0),
	gsSP1Triangle(8, 10, 11, 0),
	gsSPEndDisplayList(),
};

#undef G_CC_PRIMSHADE

#undef gs_Nin_LoadTextureImage

#undef gs_Nin_SetUpTileDescrip

/* 18 vertices */
Vtx ZO_Fish02_body_v[]={
	{ 12,16,0,0, 147, 376, -119,0,0,255 },   /* v0 used p1/V1 1 times */
	{ 12,-8,-14,0, 0, 512, -119,0,0,255 },   /* v1 used p1/V2 1 times */
	{ 12,-8,14,0, 191, 572, -119,0,0,255 },   /* v2 used p1/V3 1 times */
	{ 36,-6,11,0, -2, 509, 55,-95,46,255 },   /* v3 used p8/V1 1 times */
	{ 36,-6,-11,0, 113, 611, 78,-90,0,255 },   /* v4 used p8/V2 1 times */
	{ 36,13,0,0, 144, 459, 46,55,-96,255 },   /* v5 used p8/V3 1 times */
	{ 36,-6,-11,0, 55, 964, 8,60,-104,255 },   /* v6 used p9/V1 1 times */
	{ 12,-8,-14,0, 0, 512, 8,60,-104,255 },   /* v7 used p9/V2 2 times */
	{ 36,13,0,0, 465, 964, 46,55,-96,255 },   /* v8 used p9/V3 2 times */
	{ 12,16,0,0, 521, 512, 8,60,-104,255 },   /* v9 used p10/V2 1 times */
	{ 36,-6,11,0, 54, 67, 55,-95,46,255 },   /* v10 used p7/V1 2 times */
	{ 12,-8,14,0, 0, 512, 8,-119,0,255 },   /* v11 used p6/V2 1 times */
	{ 12,-8,-14,0, 512, 512, 8,-119,0,255 },   /* v12 used p7/V2 2 times */
	{ 36,-6,-11,0, 457, 67, 78,-90,0,255 },   /* v13 used p7/V3 1 times */
	{ 36,13,0,0, 465, 964, 8,60,103,255 },   /* v14 used p5/V1 2 times */
	{ 12,16,0,0, 521, 512, 8,60,103,255 },   /* v15 used p4/V2 1 times */
	{ 12,-8,14,0, 0, 512, 8,60,103,255 },   /* v16 used p5/V2 2 times */
	{ 36,-6,11,0, 55, 964, 55,-95,46,255 },   /* v17 used p5/V3 1 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, 
};

