#include<ultra64.h>

extern Vtx o_tail_v[];
extern Vtx o_tail_vmcur[];
extern Tri o_tail_tri[];
extern Lights1 o_tail_material[];
extern Mtx o_tail_matrix[];

extern unsigned short orca_1_txt[];
extern unsigned short orca_2_txt[];
extern unsigned short orca_3_txt[];
extern unsigned short orca_4_txt[];
extern unsigned short orca_hand_txt[];
extern unsigned short orca_tail_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 */


/* ======== o_tail ======== */

static	Gfx o_tail_grp_o_tailT[]={

	gsSPTexture(65535, 65535,0, 0, 1),
	gsDPPipeSync(),
	gsDPSetCombineMode(G_CC_MODULATEIDECALA,G_CC_PASS2),

	gs_Nin_SetUpTileDescrip(G_IM_FMT_IA,G_IM_SIZ_16b,32,16,0,0,G_TX_CLAMP,5,0,G_TX_CLAMP,4,0),
	gs_Nin_LoadTextureImage(orca_tail_txt,G_IM_FMT_IA,G_IM_SIZ_16b,32,16,0,7),

	gsSPVertex(&o_tail_v[0], 8, 0),
	gsSP1Triangle(0, 1, 2, 0),
	gsSP1Triangle(0, 3, 1, 0),
	gsSP1Triangle(4, 5, 6, 0),
	gsSP1Triangle(5, 7, 6, 0),
	gsSPEndDisplayList(),
}; /* o_tail */ 

/* ======== db ======== */

Gfx o_tail_modelT[]={
	gsSPDisplayList(o_tail_grp_o_tailT),
	gsSPEndDisplayList(),
}; /* db */ 

Gfx *o_tail_model = NULL;

#undef G_CC_PRIMSHADE

#undef gs_Nin_LoadTextureImage

#undef gs_Nin_SetUpTileDescrip

/* 8 vertices */
Vtx o_tail_v[]={
	{ 378,1,-300,0, 0, 512, 0,120,0,255 },   /* v0 p10/V1 used 2 times */ 
	{ -3,1,300,0, 1024, 36, 0,120,0,255 },   /* v1 p10/V3 used 2 times */ 
	{ 378,1,300,0, 1023, 512, 0,120,0,255 },   /* v2 p9/V3 used 1 times */ 
	{ -3,1,-300,0, 0, 36, 0,120,0,255 },   /* v3 p10/V2 used 1 times */ 
	{ 378,1,300,0, 1023, 512, 0,-119,0,255 },   /* v4 p7/V1 used 1 times */ 
	{ -3,1,300,0, 1024, 36, 0,-119,0,255 },   /* v5 p8/V1 used 2 times */ 
	{ 378,1,-300,0, 0, 512, 0,-119,0,255 },   /* v6 p8/V3 used 2 times */ 
	{ -3,1,-300,0, 0, 36, 0,-119,0,255 },   /* v7 p8/V2 used 1 times */ 
};


/*   0 vertices */
/* 32 x 16  G_IM_SIZ_16b G_IM_FMT_IA    */
unsigned short orca_tail_txt[] = {
	0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x200, 0x1017, 0x2360, 0x3db8, 0x53d2, 0x3987, 0x213a, 0xa07, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
	0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x707, 0x1d4b, 0x2aab, 0x24ef, 0x25ff, 0x3cff, 0x4bff, 0x41ff, 0x35fe, 0x28d6, 0x2a7e, 0x1928, 0x300, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
	0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x90b, 0x1e6d, 0x21d8, 0x2cff, 0x6dff, 0xa0ff, 0xb6ff, 0xbfff, 0xa9ff, 0x92ff, 0x7fff, 0x59ff, 0x30ff, 0x29f8, 0x1fa9, 0x1333, 0x200, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
	0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x200, 0x1c44, 0x2dcf, 0x30ff, 0x8cff, 0xd0ff, 0xd6ff, 0xa8ff, 0x87ff, 0x77ff, 0x67ff, 0x5bff, 0x55ff, 0x50ff, 0x52ff, 0x54ff, 0x2fff, 0x1ef8, 0x278a, 0xc10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
	0x0, 0x0, 0x0, 0x0, 0x0, 0xa0f, 0x1f96, 0x2afd, 0x73ff, 0xc9ff, 0xb9ff, 0x84ff, 0x60ff, 0x4fff, 0x4cff, 0x45ff, 0x3aff, 0x30ff, 0x29ff, 0x2bff, 0x30ff, 0x3cff, 0x5cff, 0x60ff, 0x2fff, 0x27d7, 0x1d43, 0x200, 0x0, 0x0, 0x0, 0x0, 
	0x0, 0x0, 0x0, 0x0, 0x153c, 0x1bd7, 0x46ff, 0xaeff, 0xc0ff, 0x7dff, 0x44ff, 0x30ff, 0x2dff, 0x29ff, 0x21ff, 0x18ff, 0x11ff, 0x11ff, 0xeff, 0x8ff, 0xeff, 0x18ff, 0x26ff, 0x44ff, 0x6dff, 0x5aff, 0x2ffe, 0x2e84, 0x600, 0x0, 0x0, 0x0, 
	0x0, 0x0, 0x0, 0x1732, 0x22e9, 0x5aff, 0xa8ff, 0x8dff, 0x54ff, 0x2cff, 0x17ff, 0x16ff, 0x12ff, 0x6ff, 0x2ff, 0x1ff, 0x1ff, 0x1ff, 0xff, 0xff, 0xff, 0x2ff, 0xdff, 0x1fff, 0x33ff, 0x5eff, 0x69ff, 0x31ff, 0x3377, 0x100, 0x0, 0x0, 
	0x0, 0x0, 0x162a, 0x27da, 0x5fff, 0x8fff, 0x6aff, 0x37ff, 0x13ff, 0x6ff, 0x4ff, 0x7ff, 0x1ff, 0xff, 0xff, 0xff, 0x6ff, 0x6ff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7ff, 0x18ff, 0x2dff, 0x4eff, 0x5dff, 0x27fe, 0x2b6d, 0x0, 0x0, 
	0x0, 0xd11, 0x31cf, 0x59ff, 0x83ff, 0x54ff, 0x31ff, 0xaff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2ff, 0x16ff, 0x10ff, 0x6ff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1ff, 0xdff, 0x22ff, 0x43ff, 0x53ff, 0x23f6, 0x1a3b, 0x0, 
	0x0, 0x3177, 0x4fff, 0x9aff, 0x54ff, 0x2eff, 0xeff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcff, 0x3cff, 0x21ff, 0xbff, 0x8ff, 0x3ff, 0x1ff, 0xff, 0xff, 0xff, 0xff, 0x6ff, 0x1fff, 0x47ff, 0x4bff, 0x26b0, 0x400, 
	0xc0a, 0x3bd3, 0x8eff, 0x75ff, 0x37ff, 0x12ff, 0x1ff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1ff, 0x1aff, 0x56ff, 0x5eff, 0x17ff, 0xeff, 0xeff, 0x11ff, 0x11ff, 0xbff, 0x2ff, 0xff, 0xff, 0x5ff, 0x23ff, 0x47ff, 0x28f5, 0x112b, 
	0x1e45, 0x45ff, 0x91ff, 0x55ff, 0x39ff, 0x1fff, 0x17ff, 0x14ff, 0x10ff, 0x11ff, 0x13ff, 0xaff, 0x1ff, 0x2ff, 0xeff, 0x33ed, 0x32cf, 0x9aff, 0x91ff, 0x6aff, 0x59ff, 0x54ff, 0x51ff, 0x48ff, 0x33ff, 0x16ff, 0x7ff, 0x2ff, 0x8ff, 0x2aff, 0x35ff, 0x1b73, 
	0x1e7b, 0x76ff, 0x86ff, 0x61ff, 0x50ff, 0x42ff, 0x3cff, 0x37ff, 0x34ff, 0x33ff, 0x2bff, 0x1bff, 0x1eff, 0x2aff, 0x2bff, 0x3289, 0x62c, 0x29f2, 0x68ff, 0x7fff, 0x7dff, 0x75ff, 0x6bff, 0x5cff, 0x56ff, 0x50ff, 0x47ff, 0x32ff, 0x14ff, 0x10ff, 0x30ff, 0x19aa, 
	0x1fae, 0x7cff, 0x78ff, 0x52ff, 0x35ff, 0x2eff, 0x30f8, 0x32e1, 0x2dc8, 0x2bb2, 0x25a7, 0x1ea5, 0x28a6, 0x349f, 0x296f, 0x70e, 0x0, 0xe40, 0x1289, 0x2093, 0x2995, 0x2596, 0x23a3, 0x27b2, 0x2bcf, 0x22ed, 0x25fd, 0x35ff, 0x37ff, 0x1fff, 0x25ff, 0x1ccd, 
	0x2cca, 0x46ff, 0x3def, 0x31bb, 0x2e7e, 0x2550, 0x1424, 0x80a, 0x403, 0x200, 0x0, 0x0, 0x300, 0x300, 0x0, 0x0, 0x0, 0x0, 0x0, 0x100, 0x200, 0x200, 0x200, 0x500, 0x804, 0xa13, 0x163b, 0x206c, 0x28a8, 0x2fe2, 0x29ff, 0x12dd, 
	0x3591, 0x285d, 0x1015, 0x401, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x200, 0xb0b, 0x1849, 0x178e, 
};

