#include<ultra64.h>

extern Vtx ZO_Fish02_ago_v[];
extern Vtx ZO_Fish02_ago_vmcur[];
extern Tri ZO_Fish02_ago_tri[];
extern Mtx ZO_Fish02_ago_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 */



static	Gfx ZO_Fish02_ago_[]={
	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_Fish02_TX5_txt,G_IM_FMT_RGBA,G_IM_SIZ_16b,16,16,0,7),

	gsSPVertex(&ZO_Fish02_ago_v[0], 8, 0),
	gsSP1Triangle(0, 1, 2, 0),
	gsSP1Triangle(2, 1, 3, 0),
	gsSP1Triangle(1, 0, 4, 0),
	gsSP1Triangle(2, 5, 0, 0),
	gsSP1Triangle(5, 2, 6, 0),
	gsSP1Triangle(5, 6, 7, 0),
	gsSP1Triangle(6, 2, 3, 0),

	gs_Nin_LoadTextureImage(ZO_serpent_TX13_txt,G_IM_FMT_RGBA,G_IM_SIZ_16b,16,16,0,7),

	gsSPVertex(&ZO_Fish02_ago_v[8], 13, 0),
	gsSP1Triangle(0, 1, 2, 0),
	gsSP1Triangle(3, 4, 5, 0),
	gsSP1Triangle(6, 7, 8, 0),
	gsSP1Triangle(9, 10, 11, 0),
	gsSP1Triangle(9, 11, 12, 0),
	gsSPEndDisplayList(),
};

#undef G_CC_PRIMSHADE

#undef gs_Nin_LoadTextureImage

#undef gs_Nin_SetUpTileDescrip

/* 21 vertices */
Vtx ZO_Fish02_ago_v[]={
	{ 2,12,-21,0, 483, 821, -73,92,20,255 },   /* v0 used p98/V2 3 times */
	{ 93,37,-21,0, 893, 275, -6,78,90,255 },   /* v1 used p98/V1 3 times */
	{ 93,0,-43,0, 483, 66, 15,0,-119,255 },   /* v2 used p89/V2 5 times */
	{ 136,0,0,0, 530, -167, 85,0,-84,255 },   /* v3 used p90/V3 2 times */
	{ 6,12,-7,0, 484, 817, -11,53,106,255 },   /* v4 used p98/V3 1 times */
	{ 2,-12,-21,0, 209, 707, -56,-104,15,255 },   /* v5 used p96/V1 3 times */
	{ 93,-37,-21,0, 59, -69, 12,-118,-10,255 },   /* v6 used p96/V2 3 times */
	{ 6,-12,-7,0, 209, 703, -16,-51,106,255 },   /* v7 used p96/V3 1 times */
	{ 6,-12,-7,0, 0, 512, -16,-51,106,255 },   /* v8 used p94/V1 1 times */
	{ 93,-37,-21,0, 511, 511, 12,-118,-10,255 },   /* v9 used p94/V2 1 times */
	{ 136,0,0,0, 512, 0, -1,0,119,255 },   /* v10 used p94/V3 1 times */
	{ 136,0,0,0, 512, 0, -1,0,119,255 },   /* v11 used p93/V1 1 times */
	{ 93,37,-21,0, 512, 512, -6,78,90,255 },   /* v12 used p93/V2 1 times */
	{ 6,12,-7,0, 0, 512, -11,53,106,255 },   /* v13 used p93/V3 1 times */
	{ 6,-12,-7,0, 1, 604, -16,-51,106,255 },   /* v14 used p97/V1 1 times */
	{ 136,0,0,0, 513, 604, -1,0,119,255 },   /* v15 used p97/V2 1 times */
	{ 6,12,-7,0, 10, 508, -11,53,106,255 },   /* v16 used p97/V3 1 times */
	{ 6,-12,-7,0, 512, 0, -16,-51,106,255 },   /* v17 used p99/V1 2 times */
	{ 6,12,-7,0, 0, 0, -11,53,106,255 },   /* v18 used p99/V2 1 times */
	{ 2,12,-21,0, 0, 512, -73,92,20,255 },   /* v19 used p99/V3 2 times */
	{ 2,-12,-21,0, 511, 512, -56,-104,15,255 },   /* v20 used p100/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_Fish02_TX5_txt[] = {
	0x6a49, 0x7351, 0x734f, 0x7393, 0x6b91, 0x4a49, 0x2987, 0x28c7, 0x1107, 0x1147, 0x2147, 0x3187, 0x3987, 0x41c7, 0x5a09, 0x61cb, 
	0x7207, 0x7947, 0x849b, 0x84e1, 0x7b97, 0x5acd, 0x49c7, 0x3887, 0x2147, 0x2147, 0x2987, 0x3187, 0x39c7, 0x4a47, 0x5287, 0x6395, 
	0x851b, 0x8085, 0xa045, 0x9b1b, 0x7b17, 0x6b93, 0x4909, 0x3987, 0x31c7, 0x41c7, 0x4a07, 0x4a07, 0x5a87, 0x5287, 0x6bd1, 0x6cdf, 
	0x649d, 0x62d3, 0x9907, 0x7293, 0x7293, 0x6b8f, 0x5a4b, 0x4907, 0x49c7, 0x5207, 0x5a47, 0x5a47, 0x62c7, 0x6307, 0x634f, 0x63d7, 
	0x698d, 0x9149, 0xd841, 0xb885, 0x81c9, 0x628f, 0x6807, 0x5807, 0x40c7, 0x4107, 0x4987, 0x5a47, 0x49c7, 0x5a47, 0x524b, 0x5a8f, 
	0x494b, 0x7805, 0x99c9, 0xb0c7, 0x8109, 0x5047, 0x4087, 0x4987, 0x41c7, 0x41c7, 0x4187, 0x4187, 0x3147, 0x4a07, 0x3949, 0x3909, 
	0x80c5, 0x9145, 0x73d1, 0x998b, 0x5a8f, 0x6007, 0x3007, 0x4847, 0x38c7, 0x2907, 0x3147, 0x2947, 0x2107, 0x18c7, 0x3087, 0x5087, 
	0x5187, 0x7287, 0x730b, 0x7a4d, 0x628d, 0x6149, 0x1047, 0x3047, 0x2047, 0x18c7, 0x18c7, 0x18c7, 0x1087, 0x847, 0x1087, 0x28c7, 
	0x51c7, 0x51c7, 0x5a09, 0x49cb, 0x5147, 0x3847, 0x47, 0x1047, 0x1087, 0x18c7, 0x18c7, 0x10c7, 0x47, 0x18c7, 0x18c7, 0x3907, 
	0x49c7, 0x41c7, 0x3947, 0x3989, 0x20c7, 0x2047, 0x7, 0x7, 0x847, 0x887, 0x1087, 0x10c7, 0x20c7, 0x2907, 0x3107, 0x6207, 
	0x6287, 0x4a07, 0x3187, 0x3149, 0x2109, 0x847, 0x7, 0x7, 0x7, 0x847, 0x1087, 0x18c7, 0x3107, 0x4147, 0x5187, 0x6a47, 
	0x8347, 0x6b07, 0x3987, 0x2907, 0x1087, 0x7, 0x7, 0x7, 0x7, 0x47, 0x887, 0x18c7, 0x3907, 0x5187, 0x61c7, 0x6a47, 
	0x7907, 0x7187, 0x4987, 0x3107, 0x1087, 0x47, 0x7, 0x7, 0x7, 0x47, 0x887, 0x20c7, 0x30c7, 0x3907, 0x5987, 0x6a07, 
	0x8b47, 0x79c7, 0x7187, 0x28c7, 0x18c7, 0xc7, 0x47, 0x47, 0x47, 0x87, 0x1087, 0x3107, 0x4107, 0x40c7, 0x4907, 0x7a47, 
	0x6a07, 0x7947, 0x6147, 0x3987, 0x31c7, 0x1147, 0x107, 0x87, 0xc7, 0x907, 0x2107, 0x3947, 0x4987, 0x5187, 0x4907, 0x8ac7, 
	0x4887, 0x7107, 0x6a09, 0x4a47, 0x5acd, 0x3a07, 0x29c7, 0x107, 0x107, 0x907, 0x2147, 0x3987, 0x4187, 0x51c7, 0x5987, 0x5187, 
};

/* 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, 
};

