#include<ultra64.h>

extern Vtx cup_v[];
extern Vtx cup_vmcur[];
extern Tri cup_tri[];
extern Lights1 cup_material[];
extern Mtx cup_matrix[];

static Vtx cup_v[]={
	{ -44,-166,0,0, 0, 0, -109,47,-2,255 },   /* v0 used p9/V1 6 times */
	{ -53,-175,0,0, 0, 0, -105,52,-19,255 },   /* v1 used p9/V2 4 times */
	{ -26,-175,45,0, 0, 0, -54,-85,64,255 },   /* v2 used p9/V3 7 times */
	{ -22,-166,38,0, 0, 0, -57,47,94,255 },   /* v3 used p10/V3 6 times */
	{ -22,-166,-38,0, 0, 0, -52,47,-96,255 },   /* v4 used p62/V3 6 times */
	{ -26,-175,-45,0, 0, 0, -38,-1,-112,255 },   /* v5 used p62/V2 5 times */
	{ 26,-175,-45,0, 0, 0, 79,-1,-90,255 },   /* v6 used p87/V2 5 times */
	{ 53,-175,0,0, 0, 0, 118,-1,23,255 },   /* v7 used p87/V3 5 times */
	{ 26,-175,45,0, 0, 0, 35,52,102,255 },   /* v8 used p88/V3 4 times */
	{ 22,-166,38,0, 0, 0, 53,47,97,255 },   /* v9 used p25/V3 6 times */
	{ 22,-166,-38,0, 0, 0, 58,47,-93,255 },   /* v10 used p62/V1 6 times */
	{ 44,-166,0,0, 0, 0, 110,47,3,255 },   /* v11 used p46/V1 6 times */
	{ -44,-109,0,0, 0, 0, -107,51,11,255 },   /* v12 used p11/V1 7 times */
	{ -22,-109,-38,0, 0, 0, -67,37,-90,255 },   /* v13 used p145/V3 5 times */
	{ -22,-109,38,0, 0, 0, -42,37,106,255 },   /* v14 used p144/V1 5 times */
	{ 22,-109,-38,0, 0, 0, 43,37,-105,255 },   /* v15 used p145/V2 5 times */
	{ 44,-109,0,0, 0, 0, 108,51,-10,255 },   /* v16 used p28/V3 7 times */
	{ 22,-109,38,0, 0, 0, 68,37,91,255 },   /* v17 used p144/V2 5 times */
	{ -96,113,-4,0, 0, 0, -18,58,-102,255 },   /* v18 used p99/V1 6 times */
	{ -88,106,0,0, 0, 0, 90,-78,0,255 },   /* v19 used p99/V2 6 times */
	{ -92,72,0,0, 0, 0, 112,42,0,255 },   /* v20 used p99/V3 6 times */
	{ -101,68,-4,0, 0, 0, -61,4,-102,255 },   /* v21 used p100/V3 6 times */
	{ -56,123,-4,0, 0, 0, 30,55,-102,255 },   /* v22 used p109/V3 6 times */
	{ -56,123,4,0, 0, 0, -11,61,103,255 },   /* v23 used p101/V2 6 times */
	{ -96,113,4,0, 0, 0, -59,11,103,255 },   /* v24 used p102/V2 6 times */
	{ -58,113,0,0, 0, 0, -17,-118,0,255 },   /* v25 used p102/V1 6 times */
	{ -101,68,4,0, 0, 0, -43,-42,103,255 },   /* v26 used p95/V3 6 times */
	{ -42,14,4,0, 0, 0, 39,-43,105,255 },   /* v27 used p89/V3 4 times */
	{ -36,21,0,0, 0, 0, 104,19,-56,255 },   /* v28 used p90/V3 4 times */
	{ -42,14,-4,0, 0, 0, -18,-105,-51,255 },   /* v29 used p94/V3 4 times */
	{ -37,101,0,0, 0, 0, 11,-104,57,255 },   /* v30 used p108/V1 4 times */
	{ -33,109,-4,0, 0, 0, 53,-24,-104,255 },   /* v31 used p109/V2 4 times */
	{ -33,109,4,0, 0, 0, 97,48,52,255 },   /* v32 used p109/V1 4 times */
	{ 0,149,0,0, 0, 0, 0,120,0,255 },   /* v33 used p84/V1 6 times */
	{ -24,131,-42,0, 0, 0, -65,56,-82,255 },   /* v34 used p84/V2 5 times */
	{ -48,131,0,0, 0, 0, -104,56,16,255 },   /* v35 used p84/V3 5 times */
	{ -24,131,42,0, 0, 0, -38,56,99,255 },   /* v36 used p23/V3 5 times */
	{ 24,131,42,0, 0, 0, 66,56,83,255 },   /* v37 used p36/V3 5 times */
	{ 48,131,0,0, 0, 0, 105,56,-15,255 },   /* v38 used p60/V2 5 times */
	{ 24,131,-42,0, 0, 0, 39,56,-98,255 },   /* v39 used p74/V1 5 times */
	{ -44,9,0,0, 0, 0, -115,-29,0,255 },   /* v40 used p83/V2 6 times */
	{ -22,9,-38,0, 0, 0, -56,-29,-100,255 },   /* v41 used p82/V2 6 times */
	{ -22,9,38,0, 0, 0, -58,-29,100,255 },   /* v42 used p22/V2 6 times */
	{ 22,9,-38,0, 0, 0, 59,-29,-99,255 },   /* v43 used p59/V2 6 times */
	{ -15,-18,27,0, 0, 0, -54,-79,71,255 },   /* v44 used p143/V2 6 times */
	{ -15,-18,-27,0, 0, 0, -37,-79,-80,255 },   /* v45 used p80/V2 6 times */
	{ 0,-31,-11,0, 0, 0, 0,-58,-104,255 },   /* v46 used p146/V1 7 times */
	{ 56,123,-4,0, 0, 0, 12,61,-102,255 },   /* v47 used p137/V1 6 times */
	{ 56,123,4,0, 0, 0, -29,55,103,255 },   /* v48 used p136/V1 6 times */
	{ 96,113,4,0, 0, 0, 19,58,103,255 },   /* v49 used p130/V1 6 times */
	{ 96,113,-4,0, 0, 0, 60,11,-102,255 },   /* v50 used p131/V1 6 times */
	{ 58,113,0,0, 0, 0, 18,-118,0,255 },   /* v51 used p137/V2 6 times */
	{ 88,106,0,0, 0, 0, -89,-78,0,255 },   /* v52 used p131/V2 6 times */
	{ 33,109,4,0, 0, 0, -52,-24,105,255 },   /* v53 used p136/V3 4 times */
	{ 101,68,4,0, 0, 0, 62,4,103,255 },   /* v54 used p118/V3 6 times */
	{ 92,72,0,0, 0, 0, -111,42,0,255 },   /* v55 used p116/V3 6 times */
	{ 101,68,-4,0, 0, 0, 44,-42,-102,255 },   /* v56 used p118/V2 6 times */
	{ 15,-18,-27,0, 0, 0, 55,-79,-70,255 },   /* v57 used p146/V3 6 times */
	{ 44,9,0,0, 0, 0, 116,-29,1,255 },   /* v58 used p58/V2 6 times */
	{ 0,-74,-11,0, 0, 0, 0,68,-98,255 },   /* v59 used p145/V1 7 times */
	{ 0,-74,11,0, 0, 0, 0,68,99,255 },   /* v60 used p144/V3 7 times */
	{ 0,-31,11,0, 0, 0, 0,-58,105,255 },   /* v61 used p143/V3 7 times */
	{ 15,-18,27,0, 0, 0, 38,-79,81,255 },   /* v62 used p143/V1 6 times */
	{ 22,9,38,0, 0, 0, 57,-29,101,255 },   /* v63 used p35/V2 6 times */
	{ 36,21,0,0, 0, 0, -103,19,57,255 },   /* v64 used p139/V1 4 times */
	{ 42,14,-4,0, 0, 0, -38,-43,-104,255 },   /* v65 used p139/V2 4 times */
	{ 42,14,4,0, 0, 0, 19,-105,52,255 },   /* v66 used p139/V3 4 times */
	{ -11,162,0,0, 0, 0, -118,15,0,255 },   /* v67 used p7/V1 4 times */
	{ 0,176,0,0, 0, 0, 0,120,0,255 },   /* v68 used p6/V2 4 times */
	{ 0,139,0,0, 0, 0, -58,-85,-58,255 },   /* v69 used p7/V2 4 times */
	{ 11,162,0,0, 0, 0, 119,15,0,255 },   /* v70 used p4/V1 4 times */
	{ -31,-18,0,0, 0, 0, -93,-72,-11,255 },   /* v71 used p81/V2 5 times */
	{ -13,-31,0,0, 0, 0, -82,-86,0,255 },   /* v72 used p18/V2 6 times */
	{ 37,101,0,0, 0, 0, -10,-104,-56,255 },   /* v73 used p137/V3 4 times */
	{ 33,109,-4,0, 0, 0, -96,48,-51,255 },   /* v74 used p136/V2 4 times */
	{ -13,-74,0,0, 0, 0, -115,31,0,255 },   /* v75 used p16/V2 6 times */
	{ 13,-31,0,0, 0, 0, 83,-86,0,255 },   /* v76 used p141/V3 6 times */
	{ 13,-74,0,0, 0, 0, 116,31,0,255 },   /* v77 used p29/V3 6 times */
	{ 31,-18,0,0, 0, 0, 94,-72,12,255 },   /* v78 used p142/V3 5 times */
	{ 0,162,11,0, 0, 0, 0,15,119,255 },   /* v79 used p7/V3 4 times */
	{ 0,162,-11,0, 0, 0, 0,15,-118,255 },   /* v80 used p6/V3 4 times */
};





#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 */


/* ======== cup ======== */


/* ======== db ======== */

Gfx cup_model[]={
	gsDPPipeSync(),
	gsDPSetPrimColor(0,0,255,255,255,255),
	gsSPVertex(&cup_v[0], 1, 0),
	gsSPVertex(&cup_v[3], 2, 1),
	gsSPVertex(&cup_v[9], 29, 3),
	gsSP1Triangle(6, 0, 1, 0),
	gsSP1Triangle(7, 0, 6, 0),
	gsSP1Triangle(7, 2, 0, 0),
	gsSP1Triangle(8, 1, 3, 0),
	gsSP1Triangle(6, 1, 8, 0),
	gsSP1Triangle(9, 4, 2, 0),
	gsSP1Triangle(10, 5, 4, 0),
	gsSP1Triangle(10, 4, 9, 0),
	gsSP1Triangle(9, 2, 7, 0),
	gsSP1Triangle(8, 3, 11, 0),
	gsSP1Triangle(11, 3, 5, 0),
	gsSP1Triangle(11, 5, 10, 0),
	gsSP1Triangle(12, 13, 14, 0),
	gsSP1Triangle(12, 14, 15, 0),
	gsSP1Triangle(16, 13, 12, 0),
	gsSP1Triangle(17, 12, 18, 0),
	gsSP1Triangle(17, 16, 12, 0),
	gsSP1Triangle(18, 12, 15, 0),
	gsSP1Triangle(19, 18, 13, 0),
	gsSP1Triangle(16, 19, 13, 0),
	gsSP1Triangle(13, 18, 20, 0),
	gsSP1Triangle(13, 20, 14, 0),
	gsSP1Triangle(14, 20, 21, 0),
	gsSP1Triangle(14, 21, 22, 0),
	gsSP1Triangle(15, 14, 22, 0),
	gsSP1Triangle(18, 15, 20, 0),
	gsSP1Triangle(15, 22, 23, 0),
	gsSP1Triangle(20, 15, 23, 0),
	gsSP1Triangle(19, 17, 18, 0),
	gsSP1Triangle(24, 17, 19, 0),
	gsSP1Triangle(25, 24, 19, 0),
	gsSP1Triangle(25, 19, 16, 0),
	gsSP1Triangle(24, 26, 17, 0),
	gsSP1Triangle(26, 16, 17, 0),
	gsSP1Triangle(26, 25, 16, 0),
	gsSP1Triangle(24, 25, 26, 0),
	gsSP1Triangle(20, 23, 21, 0),
	gsSP1Triangle(21, 23, 22, 0),
	gsSP1Triangle(27, 28, 29, 0),
	gsSP1Triangle(27, 29, 30, 0),
	gsSP1Triangle(27, 30, 31, 0),
	gsSPVertex(&cup_v[33], 4, 0),
	gsSPVertex(&cup_v[39], 19, 4),
	gsSPVertex(&cup_v[59], 1, 23),
	gsSPVertex(&cup_v[71], 7, 24),
	gsSP1Triangle(1, 5, 2, 0),
	gsSP1Triangle(1, 6, 5, 0),
	gsSP1Triangle(4, 6, 1, 0),
	gsSP1Triangle(0, 4, 1, 0),
	gsSP1Triangle(2, 7, 3, 0),
	gsSP1Triangle(2, 5, 7, 0),
	gsSP1Triangle(6, 24, 5, 0),
	gsSP1Triangle(5, 9, 7, 0),
	gsSP1Triangle(5, 24, 9, 0),
	gsSP1Triangle(6, 10, 24, 0),
	gsSP1Triangle(4, 8, 6, 0),
	gsSP1Triangle(8, 10, 6, 0),
	gsSP1Triangle(9, 24, 25, 0),
	gsSP1Triangle(10, 25, 24, 0),
	gsSP1Triangle(11, 10, 22, 0),
	gsSP1Triangle(10, 11, 25, 0),
	gsSP1Triangle(8, 22, 10, 0),
	gsSP1Triangle(12, 16, 26, 0),
	gsSP1Triangle(13, 12, 27, 0),
	gsSP1Triangle(14, 12, 13, 0),
	gsSP1Triangle(15, 16, 12, 0),
	gsSP1Triangle(12, 26, 27, 0),
	gsSP1Triangle(14, 15, 12, 0),
	gsSP1Triangle(16, 18, 26, 0),
	gsSP1Triangle(15, 17, 16, 0),
	gsSP1Triangle(16, 13, 18, 0),
	gsSP1Triangle(17, 13, 16, 0),
	gsSP1Triangle(18, 27, 26, 0),
	gsSP1Triangle(13, 27, 18, 0),
	gsSP1Triangle(17, 14, 13, 0),
	gsSP1Triangle(19, 15, 14, 0),
	gsSP1Triangle(20, 19, 14, 0),
	gsSP1Triangle(20, 14, 17, 0),
	gsSP1Triangle(21, 17, 15, 0),
	gsSP1Triangle(19, 21, 15, 0),
	gsSP1Triangle(21, 20, 17, 0),
	gsSP1Triangle(11, 23, 28, 0),
	gsSP1Triangle(11, 28, 25, 0),
	gsSP1Triangle(22, 29, 11, 0),
	gsSP1Triangle(11, 29, 30, 0),
	gsSP1Triangle(11, 30, 23, 0),
	gsSPVertex(&cup_v[12], 6, 0),
	gsSPVertex(&cup_v[33], 1, 6),
	gsSPVertex(&cup_v[38], 2, 7),
	gsSPVertex(&cup_v[42], 3, 9),
	gsSPVertex(&cup_v[54], 13, 12),
	gsSPVertex(&cup_v[72], 1, 25),
	gsSPVertex(&cup_v[75], 4, 26),
	gsSP1Triangle(16, 15, 10, 0),
	gsSP1Triangle(16, 29, 15, 0),
	gsSP1Triangle(15, 29, 27, 0),
	gsSP1Triangle(17, 3, 1, 0),
	gsSP1Triangle(17, 0, 26, 0),
	gsSP1Triangle(17, 1, 0, 0),
	gsSP1Triangle(17, 28, 4, 0),
	gsSP1Triangle(17, 4, 3, 0),
	gsSP1Triangle(2, 5, 18, 0),
	gsSP1Triangle(18, 0, 2, 0),
	gsSP1Triangle(18, 5, 4, 0),
	gsSP1Triangle(18, 4, 28, 0),
	gsSP1Triangle(19, 18, 28, 0),
	gsSP1Triangle(19, 26, 18, 0),
	gsSP1Triangle(18, 26, 0, 0),
	gsSP1Triangle(20, 11, 19, 0),
	gsSP1Triangle(20, 19, 27, 0),
	gsSP1Triangle(20, 27, 29, 0),
	gsSP1Triangle(9, 20, 21, 0),
	gsSP1Triangle(9, 11, 20, 0),
	gsSP1Triangle(21, 20, 29, 0),
	gsSP1Triangle(11, 25, 19, 0),
	gsSP1Triangle(19, 28, 27, 0),
	gsSP1Triangle(19, 25, 26, 0),
	gsSP1Triangle(22, 23, 24, 0),
	gsSP1Triangle(22, 12, 13, 0),
	gsSP1Triangle(22, 24, 12, 0),
	gsSP1Triangle(23, 22, 13, 0),
	gsSP1Triangle(24, 23, 14, 0),
	gsSP1Triangle(23, 13, 14, 0),
	gsSP1Triangle(24, 14, 12, 0),
	gsSP1Triangle(21, 29, 16, 0),
	gsSP1Triangle(6, 7, 8, 0),
	gsSP1Triangle(7, 10, 8, 0),
	gsSP1Triangle(7, 16, 10, 0),
	gsSPVertex(&cup_v[33], 1, 0),
	gsSPVertex(&cup_v[36], 3, 1),
	gsSPVertex(&cup_v[42], 1, 4),
	gsSPVertex(&cup_v[58], 1, 5),
	gsSPVertex(&cup_v[63], 1, 6),
	gsSPVertex(&cup_v[67], 4, 7),
	gsSPVertex(&cup_v[79], 2, 11),
	gsSP1Triangle(1, 6, 2, 0),
	gsSP1Triangle(1, 4, 6, 0),
	gsSP1Triangle(0, 2, 3, 0),
	gsSP1Triangle(2, 5, 3, 0),
	gsSP1Triangle(2, 6, 5, 0),
	gsSP1Triangle(7, 9, 11, 0),
	gsSP1Triangle(7, 8, 12, 0),
	gsSP1Triangle(8, 7, 11, 0),
	gsSP1Triangle(9, 7, 12, 0),
	gsSP1Triangle(10, 9, 12, 0),
	gsSP1Triangle(9, 10, 11, 0),
	gsSP1Triangle(10, 8, 11, 0),
	gsSP1Triangle(8, 10, 12, 0),


	gsSPTexture(1,1,0,0,0),
	gsDPPipeSync(),
	gsDPSetCombineMode(G_CC_PRIMSHADE, G_CC_PASS2),
	gsDPSetPrimColor(0,0,0,3,0,255),
	gsSPVertex(&cup_v[0], 12, 0),
	gsSP1Triangle(0, 1, 2, 0),
	gsSP1Triangle(0, 2, 3, 0),
	gsSP1Triangle(4, 1, 0, 0),
	gsSP1Triangle(4, 5, 1, 0),
	gsSP1Triangle(2, 1, 5, 0),
	gsSP1Triangle(2, 6, 7, 0),
	gsSP1Triangle(2, 7, 8, 0),
	gsSP1Triangle(3, 2, 8, 0),
	gsSP1Triangle(2, 5, 6, 0),
	gsSP1Triangle(3, 8, 9, 0),
	gsSP1Triangle(10, 6, 5, 0),
	gsSP1Triangle(11, 7, 6, 0),
	gsSP1Triangle(11, 6, 10, 0),
	gsSP1Triangle(9, 8, 7, 0),
	gsSP1Triangle(9, 7, 11, 0),
	gsSP1Triangle(10, 5, 4, 0),

	gsSPEndDisplayList(),
}; /* db */ 

Gfx cup_modelT[] = {
	gsSPEndDisplayList()
};

#undef G_CC_PRIMSHADE

#undef gs_Nin_LoadTextureImage

#undef gs_Nin_SetUpTileDescrip

/* 81 vertices */


/*   0 vertices */
