#include<ultra64.h>

extern Vtx MC_Signal_Futa01_v[];

extern unsigned char MC_GimicTX02_CI8_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 */


/* ======== DXFdata ======== */

Gfx MC_Signal_Futa01[]={

	gsDPSetTextureLUT(G_TT_RGBA16),
	gsDPLoadTLUT_pal256(&MC_GimicTX02_CI8_txt[1024]),
	gsDPLoadTextureBlock(MC_GimicTX02_CI8_txt,G_IM_FMT_CI,G_IM_SIZ_8b,32,32,0,G_TX_WRAP,G_TX_WRAP,5,5,0,0),

	gsSPVertex(&MC_Signal_Futa01_v[0], 16, 0),
	gsSP1Triangle(0, 1, 2, 0),
	gsSP1Triangle(0, 2, 3, 0),
	gsSP1Triangle(1, 4, 2, 0),
	gsSP1Triangle(1, 5, 4, 0),
	gsSP1Triangle(6, 7, 8, 0),
	gsSP1Triangle(6, 8, 9, 0),
	gsSP1Triangle(10, 11, 12, 0),
	gsSP1Triangle(13, 14, 15, 0),
	gsSPVertex(&MC_Signal_Futa01_v[14], 7, 0),
	gsSPVertex(&MC_Signal_Futa01_v[29], 7, 7),
	gsSP1Triangle(0, 2, 1, 0),
	gsSP1Triangle(3, 7, 8, 0),
	gsSP1Triangle(4, 9, 8, 0),
	gsSP1Triangle(5, 10, 11, 0),
	gsSP1Triangle(6, 12, 13, 0),
	gsSPVertex(&MC_Signal_Futa01_v[21], 6, 0),
	gsSPVertex(&MC_Signal_Futa01_v[28], 1, 6),
	gsSPVertex(&MC_Signal_Futa01_v[36], 9, 7),
	gsSP1Triangle(0, 7, 8, 0),
	gsSP1Triangle(0, 9, 7, 0),
	gsSP1Triangle(1, 10, 11, 0),
	gsSP1Triangle(2, 1, 11, 0),
	gsSP1Triangle(3, 2, 11, 0),
	gsSP1Triangle(4, 12, 13, 0),
	gsSP1Triangle(4, 13, 14, 0),
	gsSP1Triangle(5, 15, 6, 0),
	gsSPVertex(&MC_Signal_Futa01_v[26], 3, 0),
	gsSPVertex(&MC_Signal_Futa01_v[44], 3, 3),
	gsSP1Triangle(1, 0, 2, 0),
	gsSP1Triangle(0, 4, 3, 0),
	gsSP1Triangle(2, 5, 1, 0),
	gsDPPipeSync(),
        gsDPSetTextureLUT(G_TT_NONE),
	gsSPEndDisplayList(),
}; /* DXFdata */ 

#undef G_CC_PRIMSHADE

#undef gs_Nin_LoadTextureImage

#undef gs_Nin_SetUpTileDescrip

/* 47 vertices */
Vtx MC_Signal_Futa01_v[]={
	{ 24,-27,-14,0, 175, 1310, 82,-50,-71,255 },   /* v0 used p61/V1 2 times */
	{ 0,-27,-27,0, 844, 1310, -22,-18,-116,255 },   /* v1 used p60/V2 6 times */
	{ 0,31,-28,0, 845, -259, 19,31,-114,255 },   /* v2 used p61/V2 3 times */
	{ 24,31,-14,0, 175, -259, 108,31,-41,255 },   /* v3 used p61/V3 2 times */
	{ -24,31,-14,0, 1181, -259, -33,13,-114,255 },   /* v4 used p62/V2 4 times */
	{ -24,-27,-14,0, 1179, 1310, -28,-76,-88,255 },   /* v5 used p63/V2 2 times */
	{ -24,31,14,0, 1162, 243, -29,15,114,255 },   /* v6 used p32/V1 2 times */
	{ -115,31,0,0, -141, 243, -17,0,118,255 },   /* v7 used p31/V2 2 times */
	{ -115,-4,0,0, -141, 926, -93,-74,0,255 },   /* v8 used p32/V2 2 times */
	{ -24,-27,14,0, 1162, 1365, -39,-33,107,255 },   /* v9 used p32/V3 2 times */
	{ -24,31,14,0, -146, -146, 0,120,0,255 },   /* v10 used p28/V1 2 times */
	{ -24,31,-14,0, -146, 658, 0,120,0,255 },   /* v11 used p28/V2 2 times */
	{ -115,31,0,0, 1188, 255, 0,120,0,255 },   /* v12 used p28/V3 2 times */
	{ -24,-27,-14,0, 1162, 1365, -28,-76,-88,255 },   /* v13 used p80/V1 2 times */
	{ -115,-4,0,0, -141, 926, -93,-74,0,255 },   /* v14 used p79/V1 2 times */
	{ -24,31,-14,0, 1162, 243, -33,13,-114,255 },   /* v15 used p79/V3 2 times */
	{ -115,31,0,0, -141, 243, -17,0,-119,255 },   /* v16 used p79/V2 2 times */
	{ 24,31,-14,0, 78, 1024, 108,31,-41,255 },   /* v17 used p81/V1 2 times */
	{ 0,31,28,0, 78, 1024, -46,39,102,255 },   /* v18 used p11/V1 2 times */
	{ 24,31,14,0, -144, 1024, 102,61,16,255 },   /* v19 used p64/V1 2 times */
	{ -115,-4,0,0, 1188, 255, -93,-74,0,255 },   /* v20 used p27/V1 2 times */
	{ 24,-27,14,0, -158, 1310, 83,-85,0,255 },   /* v21 used p13/V1 4 times */
	{ -24,31,14,0, -153, 352, -29,15,114,255 },   /* v22 used p12/V1 4 times */
	{ -24,31,-14,0, -153, -352, -33,13,-114,255 },   /* v23 used p23/V2 2 times */
	{ 0,31,-28,0, 170, -704, 19,31,-114,255 },   /* v24 used p23/V1 2 times */
	{ -24,-27,14,0, -142, 1297, -39,-33,107,255 },   /* v25 used p8/V1 2 times */
	{ -24,-27,-14,0, 157, 1621, -28,-76,-88,255 },   /* v26 used p26/V1 3 times */
	{ -24,-27,14,0, 157, 682, 0,-119,0,255 },   /* v27 used p24/V3 2 times */
	{ 24,-27,14,0, 905, 682, 83,-85,0,255 },   /* v28 used p26/V3 3 times */
	{ 0,31,-28,0, 945, 1024, 19,31,-114,255 },   /* v29 used p81/V2 2 times */
	{ 0,46,0,0, 512, -24, 0,120,0,255 },   /* v30 used p81/V3 2 times */
	{ 24,31,14,0, 945, 1024, 102,61,16,255 },   /* v31 used p11/V2 2 times */
	{ 24,31,-14,0, 168, 1024, 108,31,-41,255 },   /* v32 used p64/V2 2 times */
	{ 0,46,0,0, 12, -128, 0,120,0,255 },   /* v33 used p64/V3 2 times */
	{ -24,-27,-14,0, -146, 658, -28,-76,-88,255 },   /* v34 used p27/V2 2 times */
	{ -24,-27,14,0, -146, -146, -39,-33,107,255 },   /* v35 used p27/V3 2 times */
	{ 24,31,-14,0, 175, -259, 108,31,-41,255 },   /* v36 used p13/V3 4 times */
	{ 24,31,14,0, -159, -259, 102,61,16,255 },   /* v37 used p14/V3 2 times */
	{ 24,-27,-14,0, 176, 1310, 82,-50,-71,255 },   /* v38 used p13/V2 2 times */
	{ 0,31,28,0, 170, 704, -46,39,102,255 },   /* v39 used p12/V2 2 times */
	{ 0,46,0,0, 170, 0, 0,120,0,255 },   /* v40 used p12/V3 6 times */
	{ 0,-27,28,0, 170, 1297, -59,0,103,255 },   /* v41 used p7/V2 2 times */
	{ 0,31,28,0, 170, -273, -46,39,102,255 },   /* v42 used p8/V2 2 times */
	{ -24,31,14,0, -142, -273, -29,15,114,255 },   /* v43 used p8/V3 2 times */
	{ 24,-27,-14,0, 905, 1621, 82,-50,-71,255 },   /* v44 used p26/V2 2 times */
	{ 0,-27,-28,0, 531, 2090, -22,-18,-116,255 },   /* v45 used p25/V2 2 times */
	{ 0,-27,28,0, 531, 213, 0,-119,0,255 },   /* v46 used p24/V2 2 times */
};


/*   0 vertices */
/*   1 Materials */

#define	LDIRX	0
#define	LDIRY	0
#define	LDIRZ	120
#define	AMBDIV	1
