#include<ultra64.h>

extern Vtx VS_Minifox_kosi_v[];
extern Vtx VS_Minifox_kosi_vmcur[];
extern Tri VS_Minifox_kosi_tri[];
extern Mtx VS_Minifox_kosi_matrix[];

extern unsigned short VS_MinifoxTX_01_txt[];
extern unsigned short VS_Minifox_green_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)

/* main display list */


/* ======== o2 ======== */

Gfx VS_Minifox_kosi[]={

	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(VS_MinifoxTX_01_txt,G_IM_FMT_RGBA,G_IM_SIZ_16b,16,16,0,7),

	gsSPVertex(&VS_Minifox_kosi_v[0], 9, 0),
	gsSP1Triangle(0, 1, 2, 0),
	gsSP1Triangle(3, 4, 5, 0),
	gsSP1Triangle(6, 7, 8, 0),

	gs_Nin_SetUpTileDescrip(G_IM_FMT_RGBA,G_IM_SIZ_16b,8,8,0,0,G_TX_MIRROR,3,0,G_TX_MIRROR,3,0),
	gs_Nin_LoadTextureImage(VS_Minifox_green_txt,G_IM_FMT_RGBA,G_IM_SIZ_16b,8,8,0,7),

	gsSPVertex(&VS_Minifox_kosi_v[9], 10, 0),
	gsSP1Triangle(0, 1, 2, 0),
	gsSP1Triangle(3, 1, 0, 0),
	gsSP1Triangle(4, 5, 1, 0),
	gsSP1Triangle(4, 1, 3, 0),
	gsSP1Triangle(5, 2, 1, 0),
	gsSP1Triangle(6, 2, 5, 0),
	gsSP1Triangle(3, 6, 4, 0),
	gsSP1Triangle(4, 6, 5, 0),
	gsSP1Triangle(7, 8, 9, 0),
	gsSPEndDisplayList(),
}; /* o2 */ 

/* 19 vertices */
Vtx VS_Minifox_kosi_v[]={
	{ -7,0,-15,0, 303, 156, -39, 112, 17, 0 },   /* v0 p24/V1 used 1 times */ 
	{ 0,0,0,0, 251, 299, -55, 90, 56, 0 },   /* v1 p24/V2 used 1 times */ 
	{ 5,3,-5,0, 323, 299, -47, 107, -27, 0 },   /* v2 p24/V3 used 1 times */ 
	{ 5,-2,-5,0, 336, 283, -46, -101, -42, 0 },   /* v3 p23/V1 used 1 times */ 
	{ 0,0,0,0, 417, 283, -91, -74, 16, 0 },   /* v4 p23/V2 used 1 times */ 
	{ -7,0,-15,0, 358, 120, -39, -111, 17, 0 },   /* v5 p23/V3 used 1 times */ 
	{ -7,0,-15,0, 375, 55, 77, 0, -92, 0 },   /* v6 p19/V1 used 1 times */ 
	{ 5,3,-5,0, 326, 340, 58, 0, -105, 0 },   /* v7 p19/V2 used 1 times */ 
	{ 5,-2,-5,0, 424, 340, 77, 0, -92, 0 },   /* v8 p19/V3 used 1 times */ 
	{ 5,-2,-5,0, 88, 205, -46, -101, -42, 0 },   /* v9 p21/V1 used 2 times */ 
	{ 10,0,-6,0, 127, 262, 23, 0, -118, 0 },   /* v10 p21/V2 used 5 times */ 
	{ 5,-8,0,0, 0, 256, -81, -85, 12, 0 },   /* v11 p21/V3 used 3 times */ 
	{ 5,3,-5,0, 167, 205, -47, 107, -27, 0 },   /* v12 p22/V1 used 3 times */ 
	{ 5,9,0,0, 255, 256, -92, 61, 43, 0 },   /* v13 p22/V3 used 4 times */ 
	{ 8,0,6,0, 127, 340, -66, 0, 98, 0 },   /* v14 p14/V3 used 4 times */ 
	{ 0,0,0,0, 127, 186, -91, -74, 16, 0 },   /* v15 p22/V2 used 3 times */ 
	{ 5,-8,0,0, -130, 402, -81, -85, 12, 0 },   /* v16 p15/V1 used 1 times */ 
	{ 0,0,0,0, 125, 402, -91, -74, 16, 0 },   /* v17 p15/V2 used 1 times */ 
	{ 5,-2,-5,0, 0, 256, -46, -101, -42, 0 },   /* v18 p15/V3 used 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 VS_MinifoxTX_01_txt[] = {
	0xa385, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0xa385, 
	0xa385, 0xe6af, 0xffff, 0xffff, 0xffff, 0x4ad3, 0x81, 0x1, 0x1, 0x81, 0x4ad3, 0xffff, 0xffff, 0xffff, 0xe6af, 0xa385, 
	0xa385, 0xe6af, 0xffff, 0xffff, 0xffff, 0x4ad3, 0x81, 0x1, 0x1, 0x81, 0x4ad3, 0xffff, 0xffff, 0xffff, 0xe6af, 0xa385, 
	0xa385, 0xa385, 0xe6af, 0xffff, 0xffff, 0xb5ed, 0x2189, 0x81, 0x81, 0x2189, 0xb5ed, 0xffff, 0xffff, 0xe6af, 0xa385, 0xa385, 
	0xa385, 0xa385, 0xa385, 0xe6af, 0xffff, 0xffff, 0xb5ed, 0xb5ed, 0xb5ed, 0xb5ed, 0xffff, 0xffff, 0xe6af, 0xa385, 0xa385, 0xa385, 
	0xa385, 0xa385, 0xa385, 0xa385, 0xe6af, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe6af, 0xa385, 0xa385, 0xa385, 0xa385, 
	0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xe6af, 0xe6af, 0xe6af, 0xe6af, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 
	0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 
	0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 
	0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 
	0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 
	0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 
	0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 
	0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 
	0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 
	0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 0xa385, 
};

/* 8 x 8  G_IM_SIZ_16b G_IM_FMT_RGBA  */
unsigned short VS_Minifox_green_txt[] = {
	0x2a89, 0x2a89, 0x2a89, 0x2a89, 0x2a89, 0x2a89, 0x2a89, 0x2a89, 
	0x2a89, 0x2a89, 0x2a89, 0x2a89, 0x2a89, 0x2a89, 0x2a89, 0x2a89, 
	0x2a89, 0x2a89, 0x2a89, 0x2a89, 0x2a89, 0x2a89, 0x2a89, 0x2a89, 
	0x2a89, 0x2a89, 0x2a89, 0x2a89, 0x2a89, 0x2a89, 0x2a89, 0x2a89, 
	0x2a89, 0x2a89, 0x2a89, 0x2a89, 0x2a89, 0x2a89, 0x2a89, 0x2a89, 
	0x2a89, 0x2a89, 0x2a89, 0x2a89, 0x2a89, 0x2a89, 0x2a89, 0x2a89, 
	0x2a89, 0x2a89, 0x2a89, 0x2a89, 0x2a89, 0x2a89, 0x2a89, 0x2a89, 
	0x2a89, 0x2a89, 0x2a89, 0x2a89, 0x2a89, 0x2a89, 0x2a89, 0x2a89, 
};

