#include<ultra64.h>

extern Vtx SkiHandle_p_v[];
extern Vtx SkiHandle_p_vmcur[];
extern Tri SkiHandle_p_tri[];
extern Lights1 SkiHandle_p_material[];
extern Mtx SkiHandle_p_matrix[];

extern unsigned short pj1_arm_b_txt[];
extern unsigned short pj1_arm_f1_txt[];
extern unsigned short pj1_arm_f2_txt[];
extern unsigned short pj1_handle_txt[];
extern unsigned short pj1_in_f1_txt[];
extern unsigned short pj1_in_f2_txt[];
extern unsigned short pj1_in_floor_txt[];
extern unsigned short pj1_in_top_txt[];
extern unsigned short pj1_side_fL_txt[];
extern unsigned short pj1_side_fR_txt[];
extern unsigned short pj1_side_rL_txt[];
extern unsigned short pj1_side_rR_txt[];
extern unsigned short pj1_top_c_txt[];
extern unsigned short pj1_top_f_txt[];
extern unsigned short pj1_ura_c_txt[];
extern unsigned short pj1_ura_f_txt[];
extern unsigned short pj1_ura_rear_txt[];
extern unsigned short pj1_ura_s_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_p_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(pj1_handle_txt,G_IM_FMT_RGBA,G_IM_SIZ_16b,32,32,0,7),

	gsSPVertex(&SkiHandle_p_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_p_v[6], 2, 0),
	gsSPVertex(&SkiHandle_p_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_p_modelT[] = {
	gsSPEndDisplayList()
};

#undef G_CC_PRIMSHADE

#undef gs_Nin_LoadTextureImage

#undef gs_Nin_SetUpTileDescrip

/* 26 vertices */
Vtx SkiHandle_p_v[]={
	{ 16,0,127,0, 341, 1024,  -77,-44,79,255 },   /* v0 used p7/V1 1 times */
	{ 35,-11,127,0, 94, 639,  98,-58,37,255 },   /* v1 used p7/V2 1 times */
	{ 35,10,127,0, 587, 639,  -1,103,61,255 },   /* v2 used p7/V3 1 times */
	{ 16,0,-127,0, 682, 1024,  -77,45,-78,255 },   /* v3 used p8/V1 1 times */
	{ 35,10,-127,0, 436, 639,  98,59,-36,255 },   /* v4 used p8/V2 1 times */
	{ 35,-11,-127,0, 929, 639,  -1,-102,-60,255 },   /* v5 used p8/V3 1 times */
	{ -10,0,-51,0, 585, -398,  -102,-58,-16,255 },   /* v6 used p2/V1 6 times */
	{ 9,-11,-51,0, 901, -398,  102,-60,17,255 },   /* v7 used p18/V3 2 times */
	{ 9,-11,51,0, 901, 398,  0,-119,0,255 },   /* v8 used p9/V1 4 times */
	{ 16,0,127,0, 585, 1004,  -77,-44,79,255 },   /* v9 used p9/V3 3 times */
	{ -10,0,51,0, 585, 398,  -102,59,17,255 },   /* v10 used p10/V3 6 times */
	{ 35,-11,127,0, 901, 1004,  98,-58,37,255 },   /* v11 used p9/V2 1 times */
	{ 35,10,127,0, 268, 1004,  -1,103,61,255 },   /* v12 used p11/V3 2 times */
	{ 9,10,51,0, 268, 398,  102,61,-16,255 },   /* v13 used p6/V3 2 times */
	{ 9,10,-51,0, 268, -398,  0,120,0,255 },   /* v14 used p6/V1 4 times */
	{ 16,0,-127,0, 585, -1004,  -77,45,-78,255 },   /* v15 used p17/V2 3 times */
	{ 35,10,-127,0, 268, -1004,  98,59,-36,255 },   /* v16 used p15/V2 1 times */
	{ 35,-11,-127,0, 901, -1004,  -1,-102,-60,255 },   /* v17 used p18/V2 2 times */
	{ 9,-11,-51,0, 146, -398,  102,-60,17,255 },   /* v18 used p3/V1 4 times */
	{ 9,10,51,0, 779, 398,  102,61,-16,255 },   /* v19 used p3/V3 4 times */
	{ 35,10,-127,0, 779, -1004,  98,59,-36,255 },   /* v20 used p19/V3 2 times */
	{ 9,10,-51,0, 779, -398,  0,120,0,255 },   /* v21 used p3/V2 2 times */
	{ 35,-11,-127,0, 146, -1004,  -1,-102,-60,255 },   /* v22 used p19/V2 1 times */
	{ 9,-11,51,0, 146, 398,  0,-119,0,255 },   /* v23 used p4/V3 2 times */
	{ 35,-11,127,0, 146, 1004,  98,-58,37,255 },   /* v24 used p13/V3 2 times */
	{ 35,10,127,0, 779, 1004,  -1,103,61,255 },   /* v25 used p13/V2 1 times */
};


/*   0 vertices */
/* 32 x 32  G_IM_SIZ_16b G_IM_FMT_RGBA  */
unsigned short pj1_handle_txt[] = {
	0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x4a53, 0x6319, 0x8421, 0xa529, 0x94a5, 0x8421, 0x739d, 0x6319, 0x5ad7, 0x4a53, 0x39cf, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 
	0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x4a53, 0x6319, 0x8421, 0xa529, 0x94a5, 0x8421, 0x739d, 0x6319, 0x5ad7, 0x4a53, 0x39cf, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 
	0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x4a53, 0x6319, 0x8421, 0xa529, 0x94a5, 0x8421, 0x739d, 0x6319, 0x5ad7, 0x4a53, 0x39cf, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 
	0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x4a53, 0x6319, 0x8421, 0xa529, 0x94a5, 0x8421, 0x739d, 0x6319, 0x5ad7, 0x4a53, 0x39cf, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 
	0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x4a53, 0x6319, 0x8421, 0xa529, 0x94a5, 0x8421, 0x739d, 0x6319, 0x5ad7, 0x4a53, 0x39cf, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 
	0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x4a53, 0x6319, 0x8421, 0xa529, 0x94a5, 0x8421, 0x739d, 0x6319, 0x5ad7, 0x4a53, 0x39cf, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 
	0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x4a53, 0x6319, 0x8421, 0xa529, 0x94a5, 0x8421, 0x739d, 0x6319, 0x5ad7, 0x4a53, 0x39cf, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 
	0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x4a53, 0x6319, 0x8421, 0xa529, 0x94a5, 0x8421, 0x739d, 0x6319, 0x5ad7, 0x4a53, 0x39cf, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 
	0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x4a53, 0x6319, 0x8421, 0xa529, 0x94a5, 0x8421, 0x739d, 0x6319, 0x5ad7, 0x4a53, 0x39cf, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 
	0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x4a53, 0x6319, 0x8421, 0xa529, 0x94a5, 0x8421, 0x739d, 0x6319, 0x5ad7, 0x4a53, 0x39cf, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 
	0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x4a53, 0x6319, 0x8421, 0xa529, 0x94a5, 0x8421, 0x739d, 0x6319, 0x5ad7, 0x4a53, 0x39cf, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 
	0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x4a53, 0x6319, 0x8421, 0xa529, 0x94a5, 0x8421, 0x739d, 0x6319, 0x5ad7, 0x4a53, 0x39cf, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 
	0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x4a53, 0x6319, 0x8421, 0xa529, 0x94a5, 0x8421, 0x739d, 0x6319, 0x5ad7, 0x4a53, 0x39cf, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 
	0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x4a53, 0x6319, 0x8421, 0xa529, 0x94a5, 0x8421, 0x739d, 0x6319, 0x5ad7, 0x4a53, 0x39cf, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 
	0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x4a53, 0x6319, 0x8421, 0xa529, 0x94a5, 0x8421, 0x739d, 0x6319, 0x5ad7, 0x4a53, 0x39cf, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 
	0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x4a53, 0x6319, 0x8421, 0xa529, 0x94a5, 0x8421, 0x739d, 0x6319, 0x5ad7, 0x4a53, 0x39cf, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 0x294b, 
	0x2109, 0x2109, 0x2109, 0x2109, 0x2109, 0x2109, 0x2109, 0x2109, 0x2109, 0x2109, 0x39cf, 0x5295, 0x6b5b, 0x8421, 0x7bdf, 0x6b5b, 0x5ad7, 0x5295, 0x39cf, 0x294b, 0x2109, 0x18c7, 0x18c7, 0x18c7, 0x18c7, 0x18c7, 0x18c7, 0x18c7, 0x18c7, 0x18c7, 0x18c7, 0x18c7, 
	0x18c7, 0x843, 0x843, 0x843, 0x843, 0x843, 0x843, 0x843, 0x843, 0x843, 0x1085, 0x18c7, 0x18c7, 0x2109, 0x2109, 0x18c7, 0x18c7, 0x18c7, 0x2109, 0x2109, 0x18c7, 0x1085, 0x1085, 0x1085, 0x1085, 0x1085, 0x1085, 0x1085, 0x1085, 0x1085, 0x1085, 0x18c7, 
	0xb5ad, 0xb5ad, 0xb5ad, 0xb5ad, 0xb5ad, 0xb5ad, 0xb5ad, 0xb5ad, 0xb5ad, 0xb5ad, 0xb5ad, 0xb5ad, 0xb5ad, 0xb5ad, 0xb5ad, 0xb5ad, 0xb5ad, 0xb5ad, 0xb5ad, 0xb5ad, 0xb5ad, 0xb5ad, 0xb5ad, 0xb5ad, 0xb5ad, 0xb5ad, 0xb5ad, 0xb5ad, 0xb5ad, 0xb5ad, 0xb5ad, 0xb5ad, 
	0xb5ad, 0x6b5b, 0x7bdf, 0xb5ad, 0x6b5b, 0x7bdf, 0xb5ad, 0x6b5b, 0x7bdf, 0xb5ad, 0x6b5b, 0x7bdf, 0xb5ad, 0x6b5b, 0x7bdf, 0xb5ad, 0x6b5b, 0x7bdf, 0xb5ad, 0x6b5b, 0x7bdf, 0xb5ad, 0x6b5b, 0x7bdf, 0xb5ad, 0x6b5b, 0x7bdf, 0xb5ad, 0x6b5b, 0x7bdf, 0xb5ad, 0x6b5b, 
	0xb5ad, 0x5ad7, 0x739d, 0xb5ad, 0x5ad7, 0x739d, 0xb5ad, 0x5ad7, 0x739d, 0xb5ad, 0x5ad7, 0x739d, 0xb5ad, 0x5ad7, 0x739d, 0xb5ad, 0x5ad7, 0x739d, 0xb5ad, 0x5ad7, 0x739d, 0xb5ad, 0x5ad7, 0x739d, 0xb5ad, 0x5ad7, 0x739d, 0xb5ad, 0x5ad7, 0x739d, 0xb5ad, 0x5ad7, 
	0xb5ad, 0x6319, 0x739d, 0xb5ad, 0x6319, 0x739d, 0xb5ad, 0x6319, 0x739d, 0xb5ad, 0x6319, 0x739d, 0xb5ad, 0x6319, 0x739d, 0xb5ad, 0x6319, 0x739d, 0xb5ad, 0x6319, 0x739d, 0xb5ad, 0x6319, 0x739d, 0xb5ad, 0x6319, 0x739d, 0xb5ad, 0x6319, 0x739d, 0xb5ad, 0x6319, 
	0xb5ad, 0x6319, 0x8421, 0xb5ad, 0x6319, 0x8421, 0xb5ad, 0x6319, 0x8421, 0xb5ad, 0x6319, 0x8421, 0xb5ad, 0x6319, 0x8421, 0xb5ad, 0x6319, 0x8421, 0xb5ad, 0x6319, 0x8421, 0xb5ad, 0x6319, 0x8421, 0xb5ad, 0x6319, 0x8421, 0xb5ad, 0x6319, 0x8421, 0xb5ad, 0x6319, 
	0xb5ad, 0x6319, 0x7bdf, 0xb5ad, 0x6319, 0x7bdf, 0xb5ad, 0x6319, 0x7bdf, 0xb5ad, 0x6319, 0x7bdf, 0xb5ad, 0x6319, 0x7bdf, 0xb5ad, 0x6319, 0x7bdf, 0xb5ad, 0x6319, 0x7bdf, 0xb5ad, 0x6319, 0x7bdf, 0xb5ad, 0x6319, 0x7bdf, 0xb5ad, 0x6319, 0x7bdf, 0xb5ad, 0x6319, 
	0xb5ad, 0x6319, 0x739d, 0xb5ad, 0x6319, 0x739d, 0xb5ad, 0x6319, 0x739d, 0xb5ad, 0x6319, 0x739d, 0xb5ad, 0x6319, 0x739d, 0xb5ad, 0x6319, 0x739d, 0xb5ad, 0x6319, 0x739d, 0xb5ad, 0x6319, 0x739d, 0xb5ad, 0x6319, 0x739d, 0xb5ad, 0x6319, 0x739d, 0xb5ad, 0x6319, 
	0xb5ad, 0x5295, 0x8421, 0xb5ad, 0x5295, 0x8421, 0xb5ad, 0x5295, 0x8421, 0xb5ad, 0x5295, 0x8421, 0xb5ad, 0x5295, 0x8421, 0xb5ad, 0x5295, 0x8421, 0xb5ad, 0x5295, 0x8421, 0xb5ad, 0x5295, 0x8421, 0xb5ad, 0x5295, 0x8421, 0xb5ad, 0x5295, 0x8421, 0xb5ad, 0x5295, 
	0xb5ad, 0x5ad7, 0x8421, 0xb5ad, 0x5ad7, 0x8421, 0xb5ad, 0x5ad7, 0x8421, 0xb5ad, 0x5ad7, 0x8421, 0xb5ad, 0x5ad7, 0x8421, 0xb5ad, 0x5ad7, 0x8421, 0xb5ad, 0x5ad7, 0x8421, 0xb5ad, 0x5ad7, 0x8421, 0xb5ad, 0x5ad7, 0x8421, 0xb5ad, 0x5ad7, 0x8421, 0xb5ad, 0x5ad7, 
	0xb5ad, 0x6319, 0x8421, 0xb5ad, 0x6319, 0x8421, 0xb5ad, 0x6319, 0x8421, 0xb5ad, 0x6319, 0x8421, 0xb5ad, 0x6319, 0x8421, 0xb5ad, 0x6319, 0x8421, 0xb5ad, 0x6319, 0x8421, 0xb5ad, 0x6319, 0x8421, 0xb5ad, 0x6319, 0x8421, 0xb5ad, 0x6319, 0x8421, 0xb5ad, 0x6319, 
	0xb5ad, 0x6319, 0x7bdf, 0xb5ad, 0x6319, 0x7bdf, 0xb5ad, 0x6319, 0x7bdf, 0xb5ad, 0x6319, 0x7bdf, 0xb5ad, 0x6319, 0x7bdf, 0xb5ad, 0x6319, 0x7bdf, 0xb5ad, 0x6319, 0x7bdf, 0xb5ad, 0x6319, 0x7bdf, 0xb5ad, 0x6319, 0x7bdf, 0xb5ad, 0x6319, 0x7bdf, 0xb5ad, 0x6319, 
	0xb5ad, 0x6319, 0x8421, 0xb5ad, 0x6319, 0x8421, 0xb5ad, 0x6319, 0x8421, 0xb5ad, 0x6319, 0x8421, 0xb5ad, 0x6319, 0x8421, 0xb5ad, 0x6319, 0x8421, 0xb5ad, 0x6319, 0x8421, 0xb5ad, 0x6319, 0x8421, 0xb5ad, 0x6319, 0x8421, 0xb5ad, 0x6319, 0x8421, 0xb5ad, 0x6319, 
	0xb5ad, 0x6319, 0x8c63, 0xb5ad, 0x6319, 0x8c63, 0xb5ad, 0x6319, 0x8c63, 0xb5ad, 0x6319, 0x8c63, 0xb5ad, 0x6319, 0x8c63, 0xb5ad, 0x6319, 0x8c63, 0xb5ad, 0x6319, 0x8c63, 0xb5ad, 0x6319, 0x8c63, 0xb5ad, 0x6319, 0x8c63, 0xb5ad, 0x6319, 0x8c63, 0xb5ad, 0x6319, 
	0xb5ad, 0x739d, 0x9ce7, 0xb5ad, 0x739d, 0x9ce7, 0xb5ad, 0x739d, 0x9ce7, 0xb5ad, 0x739d, 0x9ce7, 0xb5ad, 0x739d, 0x9ce7, 0xb5ad, 0x739d, 0x9ce7, 0xb5ad, 0x739d, 0x9ce7, 0xb5ad, 0x739d, 0x9ce7, 0xb5ad, 0x739d, 0x9ce7, 0xb5ad, 0x739d, 0x9ce7, 0xb5ad, 0x739d, 
};

