/***************************************************************************************************
		Convert from NINGEN		(mario_hat_only) 																
****************************************************************************************************/
static Vtx vtx_mario_hat_only_0[] = {
	{     33,     35,    118,     0,   728,   758,    48,   38,  110,  255}, 
	{     96,     22,     45,     0,  1240,   876,    72,  -92,   49,  255}, 
	{     71,    101,    113,     0,  1028,   148,    85,   22,   91,  255}, 
	{      0,    110,    143,     0,   460,    68,     0,   52,  115,  255}, 
	{    -31,     35,    118,     0,   206,   762,   -48,   38,  111,  255}, 
	{    -70,    101,    113,     0,  -106,   158,   -85,   22,   91,  255}, 
	{    -95,     22,     46,     0,  -302,   890,   -88,  -71,   56,  255}, 
};

static Vtx vtx_mario_hat_only_1[] = {
	{    -66,      2,    139,     0,     0,     0,   -80,  -69,   69,  255}, 
	{      0,      0,    163,     0,     0,     0,     0,  -70,  105,  255}, 
	{    -31,     35,    118,     0,     0,     0,   -48,   38,  111,  255}, 
	{    -32,     17,    109,     0,     0,     0,     0, -125,  -16,  255}, 
	{     33,     17,    109,     0,     0,     0,    -5, -124,  -22,  255}, 
	{    -95,     22,     46,     0,     0,     0,   -88,  -71,   56,  255}, 
	{   -101,     10,     -7,     0,     0,     0,   -40, -119,   17,  255}, 
	{    -70,    101,    113,     0,     0,     0,   -85,   22,   91,  255}, 
	{   -135,     70,     23,     0,     0,     0,  -124,   21,   16,  255}, 
	{   -125,     38,    -45,     0,     0,     0,  -115,  -20,  -47,  255}, 
	{    -86,      1,    -60,     0,     0,     0,   -50, -116,  -10,  255}, 
	{    -41,    144,     64,     0,     0,     0,   -36,  121,    0,  255}, 
	{    -76,     84,    -60,     0,     0,     0,   -43,  110,  -45,  255}, 
	{    136,     70,     22,     0,     0,     0,   123,   22,   16,  255}, 
	{     71,    101,    113,     0,     0,     0,    85,   22,   91,  255}, 
	{     96,     22,     45,     0,     0,     0,    72,  -92,   49,  255}, 
	{     42,    144,     64,     0,     0,     0,    43,  118,   13,  255}, 
	{    136,     70,     22,     0,     0,     0,   123,   22,   16,  255}, 
	{     76,     84,    -60,     0,     0,     0,    42,  108,  -49,  255}, 
	{    103,     10,     -6,     0,     0,     0,    66, -106,   18,  255}, 
	{    126,     38,    -46,     0,     0,     0,   115,  -20,  -48,  255}, 
	{     71,    101,    113,     0,     0,     0,    85,   22,   91,  255}, 
	{     96,     22,     45,     0,     0,     0,    72,  -92,   49,  255}, 
	{     67,      2,    139,     0,     0,     0,    80,  -70,   68,  255}, 
	{     33,     17,    109,     0,     0,     0,    -5, -124,  -22,  255}, 
	{     33,     35,    118,     0,     0,     0,    48,   38,  110,  255}, 
	{     86,      1,    -60,     0,     0,     0,    32, -122,   -2,  255}, 
	{      0,      0,    163,     0,     0,     0,     0,  -70,  105,  255}, 
	{    -31,     35,    118,     0,     0,     0,   -48,   38,  111,  255}, 
	{     53,      0,   -118,     0,     0,     0,    44,  -75,  -91,  255}, 
	{     49,     62,   -139,     0,     0,     0,    50,   73,  -90,  255}, 
	{    -76,     84,    -60,     0,     0,     0,   -43,  110,  -45,  255}, 
	{    -41,    144,     64,     0,     0,     0,   -36,  121,    0,  255}, 
	{     76,     84,    -60,     0,     0,     0,    42,  108,  -49,  255}, 
	{      0,    110,    143,     0,     0,     0,     0,   52,  115,  255}, 
	{     42,    144,     64,     0,     0,     0,    43,  118,   13,  255}, 
	{    -70,    101,    113,     0,     0,     0,   -85,   22,   91,  255}, 
	{     71,    101,    113,     0,     0,     0,    85,   22,   91,  255}, 
	{     49,     62,   -139,     0,     0,     0,    50,   73,  -90,  255}, 
	{    126,     38,    -46,     0,     0,     0,   115,  -20,  -48,  255}, 
	{    -52,      0,   -118,     0,     0,     0,   -46,  -99,  -63,  255}, 
	{    -49,     62,   -138,     0,     0,     0,   -50,   26, -113,  255}, 
	{     53,      0,   -118,     0,     0,     0,    44,  -75,  -91,  255}, 
	{   -125,     38,    -45,     0,     0,     0,  -115,  -20,  -47,  255}, 
	{     86,      1,    -60,     0,     0,     0,    32, -122,   -2,  255}, 
	{    -86,      1,    -60,     0,     0,     0,   -50, -116,  -10,  255}, 
	{     86,      1,    -60,     0,     0,     0,    32, -122,   -2,  255}, 
	{    -86,      1,    -60,     0,     0,     0,   -50, -116,  -10,  255}, 
	{    -52,      0,   -118,     0,     0,     0,   -46,  -99,  -63,  255}, 
	{     33,     17,    109,     0,     0,     0,    -5, -124,  -22,  255}, 
	{    -32,     17,    109,     0,     0,     0,     0, -125,  -16,  255}, 
	{   -101,     10,     -7,     0,     0,     0,   -40, -119,   17,  255}, 
	{     96,     22,     45,     0,     0,     0,    72,  -92,   49,  255}, 
	{    103,     10,     -6,     0,     0,     0,    66, -106,   18,  255}, 
	{     53,      0,   -118,     0,     0,     0,    44,  -75,  -91,  255}, 
};

static Gfx gfx_mario_hat_only_0[] = {
	gsSPVertex(&vtx_mario_hat_only_0[0],  7, 0), 
	gsSP1Triangle( 0, 1, 2, 0),
	gsSP1Triangle( 3, 4, 0, 0),
	gsSP1Triangle( 3, 5, 4, 0),
	gsSP1Triangle( 2, 3, 0, 0),
	gsSP1Triangle( 5, 6, 4, 0),
	gsSPEndDisplayList() 
};

static Gfx gfx_mario_hat_only_1_draw0[] = {
	gsSPVertex(&vtx_mario_hat_only_1[0], 16, 0), 
	gsSP1Triangle( 0, 1, 2, 0),
	gsSP1Triangle( 3, 4, 1, 0),
	gsSP1Triangle( 3, 1, 0, 0),
	gsSP1Triangle( 3, 5, 6, 0),
	gsSP1Triangle( 3, 0, 5, 0),
	gsSP1Triangle( 5, 7, 8, 0),
	gsSP1Triangle( 5, 8, 6, 0),
	gsSP1Triangle( 0, 2, 5, 0),
	gsSP1Triangle( 6, 9,10, 0),
	gsSP1Triangle( 8, 9, 6, 0),
	gsSP1Triangle(11, 8, 7, 0),
	gsSP1Triangle( 8,12, 9, 0),
	gsSP1Triangle(12, 8,11, 0),
	gsSP1Triangle(13,14,15, 0),
	gsSPVertex(&vtx_mario_hat_only_1[16], 15, 0), 
	gsSP1Triangle( 0, 1, 2, 0),
	gsSP1Triangle( 3, 4, 1, 0),
	gsSP1Triangle( 4, 2, 1, 0),
	gsSP1Triangle( 5, 1, 0, 0),
	gsSP1Triangle( 1, 6, 3, 0),
	gsSP1Triangle( 6, 7, 8, 0),
	gsSP1Triangle( 9, 7, 6, 0),
	gsSP1Triangle(10, 4, 3, 0),
	gsSP1Triangle( 9,11, 7, 0),
	gsSP1Triangle( 7,11, 8, 0),
	gsSP1Triangle(12,11, 9, 0),
	gsSP1Triangle(13,14, 4, 0),
	gsSPVertex(&vtx_mario_hat_only_1[31], 15, 0), 
	gsSP1Triangle( 0, 1, 2, 0),
	gsSP1Triangle( 1, 3, 4, 0),
	gsSP1Triangle( 5, 3, 1, 0),
	gsSP1Triangle( 1, 4, 2, 0),
	gsSP1Triangle( 4, 3, 6, 0),
	gsSP1Triangle( 0, 2, 7, 0),
	gsSP1Triangle( 8, 7, 2, 0),
	gsSP1Triangle( 9,10,11, 0),
	gsSP1Triangle(12,10, 9, 0),
	gsSP1Triangle( 7,10, 0, 0),
	gsSP1Triangle(10, 7,11, 0),
	gsSP1Triangle( 0,10,12, 0),
	gsSP1Triangle(11, 8,13, 0),
	gsSP1Triangle(14,12, 9, 0),
	gsSPEndDisplayList()
};

static Gfx gfx_mario_hat_only_1_draw1[] = {
	gsSPVertex(&vtx_mario_hat_only_1[46],  9, 0), 
	gsSP1Triangle( 0, 1, 2, 0),
	gsSP1Triangle( 3, 4, 5, 0),
	gsSP1Triangle( 6, 3, 5, 0),
	gsSP1Triangle( 7, 6, 5, 0),
	gsSP1Triangle( 0, 7, 5, 0),
	gsSP1Triangle( 0, 5, 1, 0),
	gsSP1Triangle( 2, 8, 0, 0),
	gsSPEndDisplayList() 
};

static Gfx gfx_mario_hat_only_1[] = {
	gsSPDisplayList(gfx_mario_hat_only_1_draw0),
	gsSPLight((&light_mario[5].l[0]),1 ),
	gsSPLight((&light_mario[5].a   ),2 ),
	gsSPDisplayList(gfx_mario_hat_only_1_draw1),
	gsSPEndDisplayList() 
};

/***************************************************************************************************
		Convert from NINGEN		(hat_wing_only) 																
****************************************************************************************************/
static Vtx vtx_hat_wing_only_0[] = {
	{    199,    247,    -55,     0,   990,     0,    89,  -19,   88,  255}, 
	{    131,    274,     20,     0,     0,     0,    89,  -19,   88,  255}, 
	{     69,     71,     38,     0,     0,  2012,    89,  -19,   88,  255}, 
	{    199,    247,    -55,     0,   990,     0,    88,  -18,   88,  255}, 
	{     69,     71,     38,     0,     0,  2012,    88,  -18,   88,  255}, 
	{    138,     44,    -37,     0,   990,  2012,    88,  -18,   88,  255}, 
	{   -137,     44,    -37,     0,   990,  2012,   -88,  -18,   88,  255}, 
	{    -68,     71,     38,     0,     0,  2012,   -88,  -18,   88,  255}, 
	{   -198,    247,    -55,     0,   990,     0,   -88,  -18,   88,  255}, 
	{    -68,     71,     38,     0,     0,  2012,   -89,  -19,   88,  255}, 
	{   -130,    274,     20,     0,     0,     0,   -89,  -19,   88,  255}, 
	{   -198,    247,    -55,     0,   990,     0,   -89,  -19,   88,  255}, 
};

static Vtx vtx_hat_wing_only_1[] = {
	{    268,    219,   -132,     0,   990,     0,    89,  -19,   87,  255}, 
	{    199,    247,    -55,     0,     0,     0,    89,  -19,   87,  255}, 
	{    138,     44,    -37,     0,     0,  2012,    89,  -19,   87,  255}, 
	{    207,     16,   -114,     0,   990,  2012,    89,  -19,   87,  255}, 
	{   -206,     16,   -114,     0,   990,  2012,   -89,  -19,   87,  255}, 
	{   -137,     44,    -37,     0,     0,  2012,   -89,  -19,   87,  255}, 
	{   -267,    219,   -132,     0,   990,     0,   -89,  -19,   87,  255}, 
	{   -198,    247,    -55,     0,     0,     0,   -89,  -19,   87,  255}, 
};

static Gfx gfx_hat_wing_only_0[] = {
	gsSPVertex(&vtx_hat_wing_only_0[0], 12, 0), 
	gsSP1Triangle( 0, 1, 2, 0),
	gsSP1Triangle( 3, 4, 5, 0),
	gsSP1Triangle( 6, 7, 8, 0),
	gsSP1Triangle( 9,10,11, 0),
	gsSPEndDisplayList() 
};

static Gfx gfx_hat_wing_only_1[] = {
	gsSPVertex(&vtx_hat_wing_only_1[0],  8, 0), 
	gsSP1Triangle( 0, 1, 2, 0),
	gsSP1Triangle( 0, 2, 3, 0),
	gsSP1Triangle( 4, 5, 6, 0),
	gsSP1Triangle( 5, 7, 6, 0),
	gsSPEndDisplayList() 
};

static Gfx gfx_wing_only_common_init[] = {
	gsDPPipeSync(),
	gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
	gsSPClearGeometryMode(G_SHADING_SMOOTH|G_CULL_BACK),
	gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, 7, 0,  0,0,0, 0,0,0),
	gsSPTexture(0xffff,0xffff, 0, 0, G_ON),
	gs_Tani_SetUpTileDescrip(G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 64,  0, 0, G_TX_CLAMP|G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_CLAMP|G_TX_NOMIRROR, 6, G_TX_NOLOD),
	gsSPLight((&light_mario[2].l[0]),1 ),
	gsSPLight((&light_mario[2].a   ),2 ),
	gsSPEndDisplayList() 
};

static Gfx gfx_wing_only_common_reset[] = {
	gsSPTexture(0xffff, 0xffff, 0, 0, G_OFF),
	gsDPPipeSync(),
	gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
	gsSPSetGeometryMode(G_SHADING_SMOOTH|G_CULL_BACK),
	gsSPEndDisplayList() 
};


/* --------------------------------------------------------------------------------------------	*/
/* --------------------------------------------------------------------------------------------	*/


/* ====================================================================================	
		: Hat data.
=======================================================================================	*/
Gfx RCP_hat_only[] = {
	gsDPPipeSync(),
	gsDPSetCombineMode(G_CC_BLENDRGBA, G_CC_BLENDRGBA),
	gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, 7, 0,  0,0,0, 0,0,0),

	gsSPTexture(0xffff,0xffff, 0, 0, G_ON),

	gs_Tani_SetUpTileDescrip(G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32,  0, 0, G_TX_CLAMP|G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_CLAMP|G_TX_NOMIRROR, 5, G_TX_NOLOD),

		gs_Tani_LoadTextureImage2(m_mark_txt, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, 7),
		gsSPLight((&light_mario[1].l[0]),1 ),
		gsSPLight((&light_mario[1].a   ),2 ),
		gsSPDisplayList(gfx_mario_hat_only_0),

	gsSPTexture(0xffff, 0xffff, 0, 0, G_OFF),

	gsDPPipeSync(),
	gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),

		gsSPDisplayList(gfx_mario_hat_only_1),

	gsSPEndDisplayList() 
};

/* ====================================================================================	
		: Metal hat data.
=======================================================================================	*/
Gfx RCP_metal_hat_only[] = {
	gsDPPipeSync(),
    gsSPSetGeometryMode(G_TEXTURE_GEN),
	gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB),
    gsDPLoadTextureBlock(mario_env_txt, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0,
						 G_TX_WRAP|G_TX_NOMIRROR, G_TX_WRAP|G_TX_NOMIRROR,
						 6, 5, G_TX_NOLOD, G_TX_NOLOD),
    gsSPTexture((0x07c0*2), 0x07c0, 0, G_TX_RENDERTILE, G_ON),

		gsSPLight((&light_mario[2].l[0]),1),
		gsSPLight((&light_mario[2].a),2),
		gsSPDisplayList(gfx_mario_hat_only_0),
		gsSPDisplayList(gfx_mario_hat_only_1_draw0),
		gsSPDisplayList(gfx_mario_hat_only_1_draw1),

	gsDPPipeSync(),
    gsSPClearGeometryMode(G_TEXTURE_GEN),
	gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
    gsSPTexture((0x07c0*2), 0x07c0, 0, G_TX_RENDERTILE, G_OFF),
	gsSPEndDisplayList() 
};

/* ====================================================================================	
		: Wing data for hat.
=======================================================================================	*/
Gfx RCP_wing_only[] = {
	gsSPDisplayList(gfx_wing_only_common_init),

		gs_Tani_LoadTextureImage2(h_wing0_txt, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 64, 0, 7),
		gsSPDisplayList(gfx_hat_wing_only_0),

		gs_Tani_LoadTextureImage2(h_wing1_txt, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 64, 0, 7),
		gsSPDisplayList(gfx_hat_wing_only_1),

	gsSPDisplayList(gfx_wing_only_common_reset),
	gsSPEndDisplayList() 
};

/* ====================================================================================	
		: Metal wing data for metal hat.
=======================================================================================	*/
Gfx RCP_metal_wing_only[] = {
	gsSPDisplayList(gfx_wing_only_common_init),

		gs_Tani_LoadTextureImage2(h_metal_wing0_txt, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 64, 0, 7),
		gsSPDisplayList(gfx_hat_wing_only_0),

		gs_Tani_LoadTextureImage2(h_metal_wing1_txt, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 64, 0, 7),
		gsSPDisplayList(gfx_hat_wing_only_1),

	gsSPDisplayList(gfx_wing_only_common_reset),

	gsSPEndDisplayList() 
};
