#include<ultra64.h>

extern Vtx SkiHandle_2_v[];
extern Vtx SkiHandle_2_vmcur[];
extern Tri SkiHandle_2_tri[];
extern Lights1 SkiHandle_2_material[];
extern Mtx SkiHandle_2_matrix[];

extern unsigned short j3_arm_b_txt[];
extern unsigned short j3_arm_f1_txt[];
extern unsigned short j3_arm_f2_txt[];
extern unsigned short j3_handle_txt[];
extern unsigned short j3_in_f1_txt[];
extern unsigned short j3_in_f2_txt[];
extern unsigned short j3_in_floor_txt[];
extern unsigned short j3_in_top_txt[];
extern unsigned short j3_side_fL_txt[];
extern unsigned short j3_side_fR_txt[];
extern unsigned short j3_side_rL_txt[];
extern unsigned short j3_side_rR_txt[];
extern unsigned short j3_top_c_txt[];
extern unsigned short j3_top_f_txt[];
extern unsigned short j3_ura_c_txt[];
extern unsigned short j3_ura_f_txt[];
extern unsigned short j3_ura_rear_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 */


/* ======== g2 ======== */


/* ======== g1 ======== */


/* ======== db ======== */

Gfx SkiHandle_2_model[]={

	gsSPTexture(65535, 65535,0, 0, 1),
	gsDPPipeSync(),
	gsDPSetCombineMode(G_CC_MODULATERGBDECALA,G_CC_PASS2),

	gs_Nin_SetUpTileDescrip(G_IM_FMT_RGBA,G_IM_SIZ_16b,32,32,0,0,G_TX_CLAMP,5,0,G_TX_MIRROR,5,0),
	gs_Nin_LoadTextureImage(j3_handle_txt,G_IM_FMT_RGBA,G_IM_SIZ_16b,32,32,0,7),

	gsSPVertex(&SkiHandle_2_v[0], 15, 0),
	gsSP1Triangle(0, 1, 2, 0),
	gsSP1Triangle(3, 4, 5, 0),
	gsSP1Triangle(6, 7, 8, 0),
	gsSP1Triangle(8, 9, 10, 0),
	gsSP1Triangle(8, 11, 9, 0),
	gsSP1Triangle(6, 8, 10, 0),
	gsSP1Triangle(10, 9, 12, 0),
	gsSP1Triangle(10, 12, 13, 0),
	gsSP1Triangle(14, 10, 13, 0),
	gsSP1Triangle(14, 6, 10, 0),
	gsSPVertex(&SkiHandle_2_v[6], 2, 0),
	gsSPVertex(&SkiHandle_2_v[14], 12, 2),
	gsSP1Triangle(2, 3, 0, 0),
	gsSP1Triangle(2, 4, 3, 0),
	gsSP1Triangle(0, 3, 5, 0),
	gsSP1Triangle(0, 5, 1, 0),
	gsSP1Triangle(6, 8, 9, 0),
	gsSP1Triangle(6, 10, 8, 0),
	gsSP1Triangle(6, 7, 11, 0),
	gsSP1Triangle(6, 9, 7, 0),
	gsSP1Triangle(7, 12, 11, 0),
	gsSP1Triangle(7, 13, 12, 0),
	gsSPEndDisplayList(),
}; /* db */ 

Gfx SkiHandle_2_modelT[] = {
	gsSPEndDisplayList()
};

#undef G_CC_PRIMSHADE

#undef gs_Nin_LoadTextureImage

#undef gs_Nin_SetUpTileDescrip

/* 26 vertices */
Vtx SkiHandle_2_v[]={
	{ 16,0,127,0, 369, 1027,  -101,-48,41,255 },   /* v0 used p7/V1 1 times */
	{ 35,-11,127,0, 2, 642,  96,-70,-12,255 },   /* v1 used p7/V2 1 times */
	{ 35,10,127,0, 738, 641,  12,117,26,255 },   /* v2 used p7/V3 1 times */
	{ 16,0,-127,0, 647, 1024,  -50,68,-84,255 },   /* v3 used p8/V1 1 times */
	{ 35,10,-127,0, 275, 641,  96,12,-70,255 },   /* v4 used p8/V2 1 times */
	{ 35,-11,-127,0, 1020, 639,  -1,-102,-60,255 },   /* v5 used p8/V3 1 times */
	{ -10,0,-51,0, 511, -370,  -93,-70,-20,255 },   /* v6 used p2/V1 6 times */
	{ 9,-11,-51,0, 881, -370,  96,-66,26,255 },   /* v7 used p18/V3 2 times */
	{ 9,-11,51,0, 881, 370,  47,-109,-2,255 },   /* v8 used p9/V1 4 times */
	{ 16,0,127,0, 511, 932,  -101,-48,41,255 },   /* v9 used p9/V3 3 times */
	{ -10,0,51,0, 511, 370,  -118,7,9,255 },   /* v10 used p10/V3 6 times */
	{ 35,-11,127,0, 881, 932,  96,-70,-12,255 },   /* v11 used p9/V2 1 times */
	{ 35,10,127,0, 142, 932,  12,117,26,255 },   /* v12 used p11/V3 2 times */
	{ 9,10,51,0, 142, 370,  98,69,-11,255 },   /* v13 used p6/V3 2 times */
	{ 9,10,-51,0, 142, -370,  -4,120,0,255 },   /* v14 used p6/V1 4 times */
	{ 16,0,-127,0, 511, -932,  -50,68,-84,255 },   /* v15 used p17/V2 3 times */
	{ 35,10,-127,0, 142, -932,  96,12,-70,255 },   /* v16 used p15/V2 1 times */
	{ 35,-11,-127,0, 881, -932,  -1,-102,-60,255 },   /* v17 used p18/V2 2 times */
	{ 9,-11,-51,0, 0, -370,  96,-66,26,255 },   /* v18 used p3/V1 4 times */
	{ 9,10,51,0, 739, 370,  98,69,-11,255 },   /* v19 used p3/V3 4 times */
	{ 35,10,-127,0, 739, -932,  96,12,-70,255 },   /* v20 used p19/V3 2 times */
	{ 9,10,-51,0, 739, -370,  -4,120,0,255 },   /* v21 used p3/V2 2 times */
	{ 35,-11,-127,0, 0, -932,  -1,-102,-60,255 },   /* v22 used p19/V2 1 times */
	{ 9,-11,51,0, 0, 370,  47,-109,-2,255 },   /* v23 used p4/V3 2 times */
	{ 35,-11,127,0, 0, 932,  96,-70,-12,255 },   /* v24 used p13/V3 2 times */
	{ 35,10,127,0, 739, 932,  12,117,26,255 },   /* v25 used p13/V2 1 times */
};


/*   0 vertices */
/* 32 x 32  G_IM_SIZ_16b G_IM_FMT_RGBA  */
unsigned short j3_handle_txt[] = {
	0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x7217, 0x8b1f, 0xa427, 0xc56d, 0xb4e9, 0xa427, 0x9ba3, 0x8b1f, 0x829b, 0x7217, 0x6193, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 
	0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x7217, 0x8b1f, 0xa427, 0xc56d, 0xb4e9, 0xa427, 0x9ba3, 0x8b1f, 0x829b, 0x7217, 0x6193, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 
	0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x7217, 0x8b1f, 0xa427, 0xc56d, 0xb4e9, 0xa427, 0x9ba3, 0x8b1f, 0x829b, 0x7217, 0x6193, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 
	0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x7217, 0x8b1f, 0xa427, 0xc56d, 0xb4e9, 0xa427, 0x9ba3, 0x8b1f, 0x829b, 0x7217, 0x6193, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 
	0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x7217, 0x8b1f, 0xa427, 0xc56d, 0xb4e9, 0xa427, 0x9ba3, 0x8b1f, 0x829b, 0x7217, 0x6193, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 
	0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x7217, 0x8b1f, 0xa427, 0xc56d, 0xb4e9, 0xa427, 0x9ba3, 0x8b1f, 0x829b, 0x7217, 0x6193, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 
	0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x7217, 0x8b1f, 0xa427, 0xc56d, 0xb4e9, 0xa427, 0x9ba3, 0x8b1f, 0x829b, 0x7217, 0x6193, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 
	0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x7217, 0x8b1f, 0xa427, 0xc56d, 0xb4e9, 0xa427, 0x9ba3, 0x8b1f, 0x829b, 0x7217, 0x6193, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 
	0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x7217, 0x8b1f, 0xa427, 0xc56d, 0xb4e9, 0xa427, 0x9ba3, 0x8b1f, 0x829b, 0x7217, 0x6193, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 
	0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x7217, 0x8b1f, 0xa427, 0xc56d, 0xb4e9, 0xa427, 0x9ba3, 0x8b1f, 0x829b, 0x7217, 0x6193, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 
	0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x7217, 0x8b1f, 0xa427, 0xc56d, 0xb4e9, 0xa427, 0x9ba3, 0x8b1f, 0x829b, 0x7217, 0x6193, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 
	0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x7217, 0x8b1f, 0xa427, 0xc56d, 0xb4e9, 0xa427, 0x9ba3, 0x8b1f, 0x829b, 0x7217, 0x6193, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 
	0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x7217, 0x8b1f, 0xa427, 0xc56d, 0xb4e9, 0xa427, 0x9ba3, 0x8b1f, 0x829b, 0x7217, 0x6193, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 
	0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x7217, 0x8b1f, 0xa427, 0xc56d, 0xb4e9, 0xa427, 0x9ba3, 0x8b1f, 0x829b, 0x7217, 0x6193, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 
	0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x7217, 0x8b1f, 0xa427, 0xc56d, 0xb4e9, 0xa427, 0x9ba3, 0x8b1f, 0x829b, 0x7217, 0x6193, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 
	0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x7217, 0x8b1f, 0xa427, 0xc56d, 0xb4e9, 0xa427, 0x9ba3, 0x8b1f, 0x829b, 0x7217, 0x6193, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 0x590f, 
	0x50cf, 0x48cd, 0x48cd, 0x48cd, 0x48cd, 0x48cd, 0x48cd, 0x48cd, 0x48cd, 0x48cd, 0x61d3, 0x7299, 0x8b9f, 0xa465, 0x93e3, 0x8b9f, 0x831d, 0x7299, 0x59d3, 0x4991, 0x410f, 0x38cb, 0x38cb, 0x38cb, 0x38cb, 0x38cb, 0x38cb, 0x38cb, 0x38cb, 0x38cb, 0x38cb, 0x40cd, 
	0x38cb, 0x20c7, 0x20c7, 0x20c7, 0x20c7, 0x20c7, 0x20c7, 0x20c7, 0x20c7, 0x20c7, 0x28c9, 0x310b, 0x314d, 0x398f, 0x394d, 0x314d, 0x314b, 0x310b, 0x414d, 0x390d, 0x310b, 0x30cb, 0x30cb, 0x30cb, 0x30cb, 0x30cb, 0x30cb, 0x30cb, 0x30cb, 0x30cb, 0x30cb, 0x38cb, 
	0xebd7, 0xebd7, 0xebd7, 0xebd7, 0xebd7, 0xebd7, 0xebd7, 0xebd7, 0xebd7, 0xebd7, 0xebd7, 0xebd7, 0xebd7, 0xebd7, 0xebd7, 0xebd7, 0xebd7, 0xebd7, 0xebd7, 0xebd7, 0xebd7, 0xebd7, 0xebd7, 0xebd7, 0xebd7, 0xebd7, 0xebd7, 0xebd7, 0xebd7, 0xebd7, 0xebd7, 0xebd7, 
	0xebd7, 0xb145, 0xd185, 0xebd7, 0xb145, 0xd185, 0xebd7, 0xb145, 0xd185, 0xebd7, 0xb145, 0xd185, 0xebd7, 0xb145, 0xd185, 0xebd7, 0xb145, 0xd185, 0xebd7, 0xb145, 0xd185, 0xebd7, 0xb145, 0xd185, 0xebd7, 0xb145, 0xd185, 0xebd7, 0xb145, 0xd185, 0xebd7, 0xb145, 
	0xebd7, 0x9903, 0xb945, 0xebd7, 0x9903, 0xb945, 0xebd7, 0x9903, 0xb945, 0xebd7, 0x9903, 0xb945, 0xebd7, 0x9903, 0xb945, 0xebd7, 0x9903, 0xb945, 0xebd7, 0x9903, 0xb945, 0xebd7, 0x9903, 0xb945, 0xebd7, 0x9903, 0xb945, 0xebd7, 0x9903, 0xb945, 0xebd7, 0x9903, 
	0xebd7, 0x9943, 0xc1c5, 0xebd7, 0x9943, 0xc1c5, 0xebd7, 0x9943, 0xc1c5, 0xebd7, 0x9943, 0xc1c5, 0xebd7, 0x9943, 0xc1c5, 0xebd7, 0x9943, 0xc1c5, 0xebd7, 0x9943, 0xc1c5, 0xebd7, 0x9943, 0xc1c5, 0xebd7, 0x9943, 0xc1c5, 0xebd7, 0x9943, 0xc1c5, 0xebd7, 0x9943, 
	0xebd7, 0xa903, 0xda05, 0xebd7, 0xa903, 0xda05, 0xebd7, 0xa903, 0xda05, 0xebd7, 0xa903, 0xda05, 0xebd7, 0xa903, 0xda05, 0xebd7, 0xa903, 0xda05, 0xebd7, 0xa903, 0xda05, 0xebd7, 0xa903, 0xda05, 0xebd7, 0xa903, 0xda05, 0xebd7, 0xa903, 0xda05, 0xebd7, 0xa903, 
	0xebd7, 0xa103, 0xc945, 0xebd7, 0xa103, 0xc945, 0xebd7, 0xa103, 0xc945, 0xebd7, 0xa103, 0xc945, 0xebd7, 0xa103, 0xc945, 0xebd7, 0xa103, 0xc945, 0xebd7, 0xa103, 0xc945, 0xebd7, 0xa103, 0xc945, 0xebd7, 0xa103, 0xc945, 0xebd7, 0xa103, 0xc945, 0xebd7, 0xa103, 
	0xebd7, 0xa905, 0xb945, 0xebd7, 0xa905, 0xb945, 0xebd7, 0xa905, 0xb945, 0xebd7, 0xa905, 0xb945, 0xebd7, 0xa905, 0xb945, 0xebd7, 0xa905, 0xb945, 0xebd7, 0xa905, 0xb945, 0xebd7, 0xa905, 0xb945, 0xebd7, 0xa905, 0xb945, 0xebd7, 0xa905, 0xb945, 0xebd7, 0xa905, 
	0xebd7, 0x8903, 0xd1c5, 0xebd7, 0x8903, 0xd1c5, 0xebd7, 0x8903, 0xd1c5, 0xebd7, 0x8903, 0xd1c5, 0xebd7, 0x8903, 0xd1c5, 0xebd7, 0x8903, 0xd1c5, 0xebd7, 0x8903, 0xd1c5, 0xebd7, 0x8903, 0xd1c5, 0xebd7, 0x8903, 0xd1c5, 0xebd7, 0x8903, 0xd1c5, 0xebd7, 0x8903, 
	0xebd7, 0x9903, 0xd9c5, 0xebd7, 0x9903, 0xd9c5, 0xebd7, 0x9903, 0xd9c5, 0xebd7, 0x9903, 0xd9c5, 0xebd7, 0x9903, 0xd9c5, 0xebd7, 0x9903, 0xd9c5, 0xebd7, 0x9903, 0xd9c5, 0xebd7, 0x9903, 0xd9c5, 0xebd7, 0x9903, 0xd9c5, 0xebd7, 0x9903, 0xd9c5, 0xebd7, 0x9903, 
	0xebd7, 0xa143, 0xda05, 0xebd7, 0xa143, 0xda05, 0xebd7, 0xa143, 0xda05, 0xebd7, 0xa143, 0xda05, 0xebd7, 0xa143, 0xda05, 0xebd7, 0xa143, 0xda05, 0xebd7, 0xa143, 0xda05, 0xebd7, 0xa143, 0xda05, 0xebd7, 0xa143, 0xda05, 0xebd7, 0xa143, 0xda05, 0xebd7, 0xa143, 
	0xebd7, 0x9903, 0xd185, 0xebd7, 0x9903, 0xd185, 0xebd7, 0x9903, 0xd185, 0xebd7, 0x9903, 0xd185, 0xebd7, 0x9903, 0xd185, 0xebd7, 0x9903, 0xd185, 0xebd7, 0x9903, 0xd185, 0xebd7, 0x9903, 0xd185, 0xebd7, 0x9903, 0xd185, 0xebd7, 0x9903, 0xd185, 0xebd7, 0x9903, 
	0xebd7, 0xa103, 0xd985, 0xebd7, 0xa103, 0xd985, 0xebd7, 0xa103, 0xd985, 0xebd7, 0xa103, 0xd985, 0xebd7, 0xa103, 0xd985, 0xebd7, 0xa103, 0xd985, 0xebd7, 0xa103, 0xd985, 0xebd7, 0xa103, 0xd985, 0xebd7, 0xa103, 0xd985, 0xebd7, 0xa103, 0xd985, 0xebd7, 0xa103, 
	0xebd7, 0xa143, 0xe1c5, 0xebd7, 0xa143, 0xe1c5, 0xebd7, 0xa143, 0xe1c5, 0xebd7, 0xa143, 0xe1c5, 0xebd7, 0xa143, 0xe1c5, 0xebd7, 0xa143, 0xe1c5, 0xebd7, 0xa143, 0xe1c5, 0xebd7, 0xa143, 0xe1c5, 0xebd7, 0xa143, 0xe1c5, 0xebd7, 0xa143, 0xe1c5, 0xebd7, 0xa143, 
	0xebd7, 0xb945, 0xea8b, 0xebd7, 0xb945, 0xea8b, 0xebd7, 0xb945, 0xea8b, 0xebd7, 0xb945, 0xea8b, 0xebd7, 0xb945, 0xea8b, 0xebd7, 0xb945, 0xea8b, 0xebd7, 0xb945, 0xea8b, 0xebd7, 0xb945, 0xea8b, 0xebd7, 0xb945, 0xea8b, 0xebd7, 0xb945, 0xea8b, 0xebd7, 0xb945, 
};

