#include<ultra64.h>

extern Vtx AS_Meteo_01_v[];
extern Vtx AS_Meteo_01_vmcur[];
extern Tri AS_Meteo_01_tri[];
extern Mtx AS_Meteo_01_matrix[];

extern unsigned short AS_Meteo_Tx01_txt[];
extern unsigned short AS_Rock_01_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 */


/* ======== o1 ======== */

Gfx AS_Meteo_01[]={

	gs_Nin_SetUpTileDescrip(G_IM_FMT_RGBA,G_IM_SIZ_16b,32,32,0,0,G_TX_MIRROR,5,0,G_TX_MIRROR,5,0),
	gs_Nin_LoadTextureImage(AS_Rock_01_txt,G_IM_FMT_RGBA,G_IM_SIZ_16b,32,32,0,7),

	gsSPVertex(&AS_Meteo_01_v[0], 16, 0),
	gsSP1Triangle(0, 1, 2, 0),
	gsSP1Triangle(0, 2, 3, 0),
	gsSP1Triangle(4, 5, 0, 0),
	gsSP1Triangle(1, 0, 5, 0),
	gsSP1Triangle(0, 3, 6, 0),
	gsSP1Triangle(0, 6, 4, 0),
	gsSP1Triangle(4, 6, 7, 0),
	gsSP1Triangle(7, 6, 8, 0),
	gsSP1Triangle(8, 6, 3, 0),
	gsSP1Triangle(7, 9, 4, 0),
	gsSP1Triangle(5, 4, 9, 0),
	gsSP1Triangle(7, 8, 10, 0),
	gsSP1Triangle(3, 11, 8, 0),
	gsSP1Triangle(10, 8, 11, 0),
	gsSP1Triangle(3, 2, 11, 0),
	gsSP1Triangle(12, 13, 14, 0),
	gsSP1Triangle(2, 15, 12, 0),
	gsSP1Triangle(12, 14, 11, 0),
	gsSP1Triangle(12, 11, 2, 0),
	gsSP1Triangle(11, 14, 10, 0),
	gsSP1Triangle(2, 1, 15, 0),
	gsSPVertex(&AS_Meteo_01_v[5], 1, 0),
	gsSPVertex(&AS_Meteo_01_v[7], 1, 1),
	gsSPVertex(&AS_Meteo_01_v[9], 2, 2),
	gsSPVertex(&AS_Meteo_01_v[13], 2, 4),
	gsSPVertex(&AS_Meteo_01_v[16], 8, 6),
	gsSP1Triangle(6, 2, 1, 0),
	gsSP1Triangle(1, 3, 6, 0),
	gsSP1Triangle(7, 6, 3, 0),
	gsSP1Triangle(7, 3, 5, 0),
	gsSP1Triangle(6, 7, 8, 0),
	gsSP1Triangle(6, 13, 2, 0),
	gsSP1Triangle(8, 13, 6, 0),
	gsSP1Triangle(8, 4, 9, 0),
	gsSP1Triangle(8, 7, 4, 0),
	gsSP1Triangle(8, 12, 10, 0),
	gsSP1Triangle(9, 12, 8, 0),
	gsSP1Triangle(10, 13, 8, 0),
	gsSP1Triangle(0, 10, 12, 0),
	gsSP1Triangle(11, 12, 9, 0),
	gsSP1Triangle(12, 11, 0, 0),
	gsSP1Triangle(2, 10, 0, 0),
	gsSP1Triangle(10, 2, 13, 0),
	gsSP1Triangle(5, 4, 7, 0),
	gsSPVertex(&AS_Meteo_01_v[1], 1, 0),
	gsSPVertex(&AS_Meteo_01_v[5], 1, 1),
	gsSPVertex(&AS_Meteo_01_v[15], 1, 2),
	gsSPVertex(&AS_Meteo_01_v[19], 1, 3),
	gsSPVertex(&AS_Meteo_01_v[21], 1, 4),
	gsSP1Triangle(4, 2, 0, 0),
	gsSP1Triangle(1, 4, 0, 0),
	gsSP1Triangle(4, 3, 2, 0),

	gs_Nin_LoadTextureImage(AS_Meteo_Tx01_txt,G_IM_FMT_RGBA,G_IM_SIZ_16b,32,32,0,7),

	gsSPVertex(&AS_Meteo_01_v[24], 16, 0),
	gsSP1Triangle(0, 1, 2, 0),
	gsSP1Triangle(0, 2, 3, 0),
	gsSP1Triangle(4, 5, 6, 0),
	gsSP1Triangle(4, 6, 7, 0),
	gsSP1Triangle(8, 9, 10, 0),
	gsSP1Triangle(8, 11, 9, 0),
	gsSP1Triangle(12, 13, 14, 0),
	gsSP1Triangle(14, 13, 15, 0),
	gsSPVertex(&AS_Meteo_01_v[36], 8, 0),
	gsSPVertex(&AS_Meteo_01_v[48], 6, 8),
	gsSP1Triangle(0, 5, 1, 0),
	gsSP1Triangle(2, 3, 4, 0),
	gsSP1Triangle(4, 3, 8, 0),
	gsSP1Triangle(6, 9, 10, 0),
	gsSP1Triangle(7, 11, 12, 0),
	gsSP1Triangle(7, 13, 11, 0),
	gsSPVertex(&AS_Meteo_01_v[40], 2, 1),
	gsSPVertex(&AS_Meteo_01_v[44], 5, 3),
	gsSPVertex(&AS_Meteo_01_v[54], 5, 8),
	gsSP1Triangle(1, 7, 3, 0),
	gsSP1Triangle(3, 7, 2, 0),
	gsSP1Triangle(3, 2, 0, 0),
	gsSP1Triangle(4, 8, 9, 0),
	gsSP1Triangle(5, 10, 11, 0),
	gsSP1Triangle(6, 10, 12, 0),
	gsSPEndDisplayList(),
}; /* o1 */ 

/* 59 vertices */
Vtx AS_Meteo_01_v[]={
	{ 25,-51,-25,0, 1024, 1019, 14, -96, -69, 0 },   /* v0 p28/V1 used 6 times */ 
	{ 25,-64,25,0, 1024, 567, 50, -104, 28, 0 },   /* v1 p23/V1 used 5 times */ 
	{ -25,-53,25,0, 0, 647, -32, -108, 36, 0 },   /* v2 p30/V3 used 6 times */ 
	{ -25,-51,-25,0, 0, 1019, -49, -98, -46, 0 },   /* v3 p29/V3 used 5 times */ 
	{ 25,-2,-52,0, 1024, 1551, 18, -31, -114, 0 },   /* v4 p28/V3 used 5 times */ 
	{ 51,-25,-25,0, 1536, 1201, 111, -26, -37, 0 },   /* v5 p23/V3 used 7 times */ 
	{ -25,-13,-46,0, 0, 1430, -19, -43, -110, 0 },   /* v6 p28/V2 used 5 times */ 
	{ -25,25,-51,0, 0, 1746, -40, 31, -109, 0 },   /* v7 p31/V1 used 6 times */ 
	{ -45,-25,-25,0, -387, 1201, -102, -30, -52, 0 },   /* v8 p29/V1 used 5 times */ 
	{ 25,25,-51,0, 1024, 1746, 45, 53, -98, 0 },   /* v9 p24/V1 used 6 times */ 
	{ -51,25,-25,0, -511, 1565, -113, 26, -26, 0 },   /* v10 p31/V2 used 6 times */ 
	{ -51,-25,25,0, -511, 840, -112, -36, 16, 0 },   /* v11 p30/V2 used 6 times */ 
	{ -25,-25,51,0, 0, 659, -53, -31, 102, 0 },   /* v12 p30/V1 used 4 times */ 
	{ -25,25,51,0, 0, 1024, -30, 42, 107, 0 },   /* v13 p32/V2 used 4 times */ 
	{ -51,25,25,0, -511, 1204, -107, 25, 46, 0 },   /* v14 p32/V1 used 5 times */ 
	{ 25,-25,51,0, 1024, 659, 29, -47, 105, 0 },   /* v15 p34/V2 used 4 times */ 
	{ -25,76,-10,0, 0, 1818, -24, 103, -57, 0 },   /* v16 p31/V3 used 6 times */ 
	{ -25,68,25,0, 0, 1510, -69, 82, 53, 0 },   /* v17 p32/V3 used 5 times */ 
	{ 25,66,25,0, 1024, 1495, 54, 95, 48, 0 },   /* v18 p22/V1 used 7 times */ 
	{ 25,25,51,0, 1024, 1024, 61, 30, 98, 0 },   /* v19 p36/V1 used 4 times */ 
	{ 46,25,-15,0, 1430, 1494, 107, 42, -33, 0 },   /* v20 p22/V3 used 5 times */ 
	{ 51,-25,25,0, 1536, 840, 109, -20, 44, 0 },   /* v21 p59/V2 used 5 times */ 
	{ 51,25,15,0, 1536, 1276, 115, 26, 23, 0 },   /* v22 p22/V2 used 5 times */ 
	{ 25,58,-25,0, 1024, 1799, 61, 91, -49, 0 },   /* v23 p25/V2 used 4 times */ 
	{ -6,-6,86,0, 256, -419, 30, -107, 41, 0 },   /* v24 p53/V1 used 2 times */ 
	{ -13,-13,51,0, 0, 1023, -68, -45, 86, 0 },   /* v25 p52/V2 used 1 times */ 
	{ 13,-13,51,0, 1023, 1023, 46, -68, 86, 0 },   /* v26 p53/V2 used 2 times */ 
	{ 6,-6,86,0, 767, -419, -84, -45, 70, 0 },   /* v27 p53/V3 used 1 times */ 
	{ 6,-6,86,0, 255, -413, 118, 0, 20, 0 },   /* v28 p51/V1 used 2 times */ 
	{ 13,-13,51,0, 0, 1024, 46, -68, 86, 0 },   /* v29 p50/V2 used 1 times */ 
	{ 13,13,51,0, 1024, 1024, 69, 46, 86, 0 },   /* v30 p51/V2 used 2 times */ 
	{ 6,6,86,0, 768, -413, 46, -84, 70, 0 },   /* v31 p51/V3 used 1 times */ 
	{ -6,6,86,0, 768, 2461, -113, 13, 33, 0 },   /* v32 p55/V1 used 2 times */ 
	{ -13,-13,51,0, 0, 1024, -68, -45, 86, 0 },   /* v33 p55/V2 used 2 times */ 
	{ -6,-6,86,0, 255, 2461, -117, 0, 20, 0 },   /* v34 p55/V3 used 1 times */ 
	{ -13,13,51,0, 1024, 1024, -45, 69, 86, 0 },   /* v35 p54/V2 used 1 times */ 
	{ -13,13,51,0, 768, 259, -45, 69, 86, 0 },   /* v36 p39/V1 used 3 times */ 
	{ -25,-25,51,0, 0, 4, -53, -31, 102, 0 },   /* v37 p43/V2 used 3 times */ 
	{ -13,-13,51,0, 256, 259, -68, -45, 86, 0 },   /* v38 p43/V1 used 3 times */ 
	{ 25,-25,51,0, 0, 1024, 29, -47, 105, 0 },   /* v39 p43/V3 used 3 times */ 
	{ 13,-13,51,0, 256, 769, 46, -68, 86, 0 },   /* v40 p41/V1 used 3 times */ 
	{ -25,25,51,0, 1024, 4, -30, 42, 107, 0 },   /* v41 p38/V2 used 3 times */ 
	{ -6,6,86,0, 0, 1023, -113, 13, 33, 0 },   /* v42 p2/V1 used 1 times */ 
	{ 6,6,86,0, 767, 2467, 0, 118, 20, 0 },   /* v43 p48/V1 used 2 times */ 
	{ 13,13,51,0, 768, 769, 69, 46, 86, 0 },   /* v44 p41/V3 used 3 times */ 
	{ 6,-6,86,0, 1023, 1024, -84, -45, 70, 0 },   /* v45 p37/V1 used 1 times */ 
	{ -6,-6,86,0, 0, 1024, 30, -107, 41, 0 },   /* v46 p42/V1 used 1 times */ 
	{ 6,6,86,0, 0, 1024, 46, -84, 70, 0 },   /* v47 p45/V1 used 1 times */ 
	{ 25,25,51,0, 1024, 1024, 61, 30, 98, 0 },   /* v48 p41/V2 used 3 times */ 
	{ 0,0,63,0, 511, 2935, 0, -91, 76, 0 },   /* v49 p2/V2 used 1 times */ 
	{ 6,6,86,0, 1024, 1023, 46, -84, 70, 0 },   /* v50 p2/V3 used 1 times */ 
	{ -13,13,51,0, 0, 1024, -45, 69, 86, 0 },   /* v51 p48/V3 used 2 times */ 
	{ -6,6,86,0, 256, 2467, -113, 13, 33, 0 },   /* v52 p49/V3 used 1 times */ 
	{ 13,13,51,0, 1024, 1024, 69, 46, 86, 0 },   /* v53 p48/V2 used 1 times */ 
	{ 0,0,63,0, 511, -887, 0, 116, 31, 0 },   /* v54 p37/V2 used 1 times */ 
	{ -6,-6,86,0, 0, 1024, 30, -107, 41, 0 },   /* v55 p37/V3 used 1 times */ 
	{ 0,0,63,0, 512, 2927, 0, -91, 76, 0 },   /* v56 p42/V2 used 2 times */ 
	{ -6,6,86,0, 1024, 1023, 116, 0, 31, 0 },   /* v57 p42/V3 used 1 times */ 
	{ 6,-6,86,0, 1024, 1023, -84, -45, 70, 0 },   /* v58 p45/V3 used 1 times */ 
};

