static const Lights1 luigi_blue_lights_group = gdSPDefLights1( 0x0, 0x0, 0x7f, 0x0, 0x0, 0xff, 0x28, 0x28, 0x28 ); static const Lights1 luigi_green_lights_group = gdSPDefLights1( 0x0, 0x7f, 0x0, 0x0, 0xff, 0x0, 0x28, 0x28, 0x28 ); static const Lights1 luigi_white_lights_group = gdSPDefLights1( 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 ); static const Lights1 luigi_brown1_lights_group = gdSPDefLights1( 0x39, 0x0e, 0x07, 0x72, 0x1c, 0x0e, 0x28, 0x28, 0x28 ); static const Lights1 luigi_beige_lights_group = gdSPDefLights1( 0x7f, 0x60, 0x3c, 0xfe, 0xc1, 0x79, 0x28, 0x28, 0x28 ); static const Lights1 luigi_brown2_lights_group = gdSPDefLights1( 0x39, 0x03, 0x00, 0x73, 0x06, 0x00, 0x28, 0x28, 0x28 ); static const Lights1 luigi_black_lights_group = gdSPDefLights1( 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x28, 0x28 ); #include "actors/mario/mario_externs.h" #define luigi_texture_metal_shade mario_texture_metal_shade #define luigi_texture_metal_light mario_texture_metal_light #define luigi_texture_yellow_button mario_texture_yellow_button #define luigi_texture_eyes_front mario_texture_eyes_front #define luigi_texture_eyes_half_closed mario_texture_eyes_half_closed #define luigi_texture_eyes_closed mario_texture_eyes_closed #define luigi_texture_eyes_left mario_texture_eyes_left #define luigi_texture_eyes_right mario_texture_eyes_right #define luigi_texture_eyes_up mario_texture_eyes_up #define luigi_texture_eyes_down mario_texture_eyes_down #define luigi_texture_eyes_dead mario_texture_eyes_dead #define luigi_texture_wings_half_1 mario_texture_wings_half_1 #define luigi_texture_wings_half_2 mario_texture_wings_half_2 #define luigi_texture_metal_wings_half_1 mario_texture_metal_wings_half_1 #define luigi_texture_metal_wings_half_2 mario_texture_metal_wings_half_2 #define luigi_texture_cap_inside mario_texture_cap_inside ALIGNED8 const Texture luigi_texture_l_logo[] = { #include "actors/luigi/custom_luigi_logo.rgba16.inc.c" }; ALIGNED8 const Texture luigi_texture_l_blend[] = { #include "actors/luigi/custom_luigi_logo_blend.rgba16.inc.c" }; ALIGNED8 const Texture luigi_texture_l_cap[] = { #include "actors/luigi/custom_luigi_cap.rgba16.inc.c" }; ALIGNED8 const Texture luigi_texture_hair_sideburn[] = { #include "actors/luigi/custom_luigi_sideburn.rgba32.inc.c" }; ALIGNED8 const Texture luigi_texture_add_sideburn[] = { #include "actors/luigi/custom_luigi_sideburn_add.rgba32.inc.c" }; ALIGNED8 const Texture luigi_texture_skin_sideburn[] = { #include "actors/luigi/custom_luigi_skin.rgba16.inc.c" }; ALIGNED8 const Texture luigi_texture_mustache[] = { #include "actors/luigi/custom_luigi_mustache.rgba16.inc.c" }; static const Vtx luigi_butt_dl_vertex[76] = { {{{-9, -66, 44}, 0, {0, 0}, {0xD3, 0x98, 0x3A, 0x0}}}, {{{-14, -71, 0}, 0, {0, 0}, {0xD0, 0x8A, 0x0, 0x0}}}, {{{34, -72, 37}, 0, {0, 0}, {0x1A, 0x8A, 0x27, 0x0}}}, {{{-35, -51, 33}, 0, {0, 0}, {0x95, 0xC6, 0x26, 0x0}}}, {{{7, -47, 70}, 0, {0, 0}, {0xEA, 0xBF, 0x6B, 0x0}}}, {{{44, -48, 64}, 0, {0, 0}, {0x35, 0xBE, 0x5F, 0x0}}}, {{{67, -55, 29}, 0, {0, 0}, {0x64, 0xB9, 0x20, 0x0}}}, {{{34, -72, -37}, 0, {0, 0}, {0x1B, 0x8A, 0xD9, 0x0}}}, {{{-8, -66, -45}, 0, {0, 0}, {0xD5, 0x98, 0xC4, 0x0}}}, {{{-35, -51, -34}, 0, {0, 0}, {0x96, 0xC6, 0xD9, 0x0}}}, {{{-40, 30, -32}, 0, {0, 0}, {0x8B, 0x28, 0xE3, 0x0}}}, {{{-40, 30, 31}, 0, {0, 0}, {0x8B, 0x28, 0x1C, 0x0}}}, {{{-24, -12, 65}, 0, {0, 0}, {0xA9, 0xF1, 0x5B, 0x0}}}, {{{10, -10, 80}, 0, {0, 0}, {0xF1, 0xF6, 0x7E, 0x0}}}, {{{51, -9, 75}, 0, {0, 0}, {0x48, 0xF4, 0x68, 0x0}}}, {{{85, 10, 0}, 0, {0, 0}, {0x7E, 0xC, 0x0, 0x0}}}, {{{67, -55, 29}, 0, {0, 0}, {0x64, 0xB9, 0x20, 0x0}}}, {{{67, -55, -29}, 0, {0, 0}, {0x64, 0xB9, 0xE0, 0x0}}}, {{{85, 10, 0}, 0, {0, 0}, {0x7E, 0xC, 0x0, 0x0}}}, {{{34, -72, -37}, 0, {0, 0}, {0x1B, 0x8A, 0xD9, 0x0}}}, {{{44, -48, -64}, 0, {0, 0}, {0x34, 0xBC, 0xA2, 0x0}}}, {{{8, -47, -70}, 0, {0, 0}, {0xEB, 0xBF, 0x95, 0x0}}}, {{{-8, -66, -45}, 0, {0, 0}, {0xD5, 0x98, 0xC4, 0x0}}}, {{{-35, -51, -34}, 0, {0, 0}, {0x96, 0xC6, 0xD9, 0x0}}}, {{{-23, -12, -66}, 0, {0, 0}, {0xAB, 0xF1, 0xA3, 0x0}}}, {{{-40, 30, -32}, 0, {0, 0}, {0x8B, 0x28, 0xE3, 0x0}}}, {{{-22, 23, -65}, 0, {0, 0}, {0xAD, 0x1E, 0xA4, 0x0}}}, {{{-8, 48, -59}, 0, {0, 0}, {0xCD, 0x54, 0xB0, 0x0}}}, {{{-14, 61, -28}, 0, {0, 0}, {0xBF, 0x6A, 0xE7, 0x0}}}, {{{-14, 61, 27}, 0, {0, 0}, {0xBF, 0x6B, 0x18, 0x0}}}, {{{-40, 30, 31}, 0, {0, 0}, {0x8B, 0x28, 0x1C, 0x0}}}, {{{-9, 48, 58}, 0, {0, 0}, {0xCC, 0x55, 0x4F, 0x0}}}, {{{-23, 23, 64}, 0, {0, 0}, {0xAC, 0x1E, 0x5B, 0x0}}}, {{{-9, 48, 58}, 0, {0, 0}, {0xCC, 0x55, 0x4F, 0x0}}}, {{{-40, 30, 31}, 0, {0, 0}, {0x8B, 0x28, 0x1C, 0x0}}}, {{{-24, -12, 65}, 0, {0, 0}, {0xA9, 0xF1, 0x5B, 0x0}}}, {{{6, 26, 76}, 0, {0, 0}, {0xEA, 0x26, 0x77, 0x0}}}, {{{10, -10, 80}, 0, {0, 0}, {0xF1, 0xF6, 0x7E, 0x0}}}, {{{51, -9, 75}, 0, {0, 0}, {0x48, 0xF4, 0x68, 0x0}}}, {{{49, 34, 74}, 0, {0, 0}, {0x3D, 0x2D, 0x66, 0x0}}}, {{{85, 10, 0}, 0, {0, 0}, {0x7E, 0xC, 0x0, 0x0}}}, {{{57, 62, 31}, 0, {0, 0}, {0x50, 0x5D, 0x20, 0x0}}}, {{{57, 62, -31}, 0, {0, 0}, {0x51, 0x5D, 0xE1, 0x0}}}, {{{49, 35, -74}, 0, {0, 0}, {0x3E, 0x2E, 0x9B, 0x0}}}, {{{52, -10, -75}, 0, {0, 0}, {0x49, 0xF3, 0x99, 0x0}}}, {{{67, -55, -29}, 0, {0, 0}, {0x64, 0xB9, 0xE0, 0x0}}}, {{{44, -48, -64}, 0, {0, 0}, {0x34, 0xBC, 0xA2, 0x0}}}, {{{11, -10, -80}, 0, {0, 0}, {0xF2, 0xF5, 0x82, 0x0}}}, {{{8, -47, -70}, 0, {0, 0}, {0xEB, 0xBF, 0x95, 0x0}}}, {{{11, -10, -80}, 0, {0, 0}, {0xF2, 0xF5, 0x82, 0x0}}}, {{{44, -48, -64}, 0, {0, 0}, {0x34, 0xBC, 0xA2, 0x0}}}, {{{-23, -12, -66}, 0, {0, 0}, {0xAB, 0xF1, 0xA3, 0x0}}}, {{{7, 26, -77}, 0, {0, 0}, {0xEB, 0x25, 0x88, 0x0}}}, {{{-22, 23, -65}, 0, {0, 0}, {0xAD, 0x1E, 0xA4, 0x0}}}, {{{-8, 48, -59}, 0, {0, 0}, {0xCD, 0x54, 0xB0, 0x0}}}, {{{30, 62, -52}, 0, {0, 0}, {0x8, 0x6B, 0xBB, 0x0}}}, {{{-14, 61, -28}, 0, {0, 0}, {0xBF, 0x6A, 0xE7, 0x0}}}, {{{23, 71, -21}, 0, {0, 0}, {0xFF, 0x7E, 0xF1, 0x0}}}, {{{-14, 61, 27}, 0, {0, 0}, {0xBF, 0x6B, 0x18, 0x0}}}, {{{23, 71, 21}, 0, {0, 0}, {0xFE, 0x7E, 0x10, 0x0}}}, {{{29, 62, 51}, 0, {0, 0}, {0x6, 0x6B, 0x45, 0x0}}}, {{{-9, 48, 58}, 0, {0, 0}, {0xCC, 0x55, 0x4F, 0x0}}}, {{{6, 26, 76}, 0, {0, 0}, {0xEA, 0x26, 0x77, 0x0}}}, {{{-23, 23, 64}, 0, {0, 0}, {0xAC, 0x1E, 0x5B, 0x0}}}, {{{49, 34, 74}, 0, {0, 0}, {0x3D, 0x2D, 0x66, 0x0}}}, {{{29, 62, 51}, 0, {0, 0}, {0x6, 0x6B, 0x45, 0x0}}}, {{{6, 26, 76}, 0, {0, 0}, {0xEA, 0x26, 0x77, 0x0}}}, {{{57, 62, 31}, 0, {0, 0}, {0x50, 0x5D, 0x20, 0x0}}}, {{{23, 71, 21}, 0, {0, 0}, {0xFE, 0x7E, 0x10, 0x0}}}, {{{23, 71, -21}, 0, {0, 0}, {0xFF, 0x7E, 0xF1, 0x0}}}, {{{57, 62, -31}, 0, {0, 0}, {0x51, 0x5D, 0xE1, 0x0}}}, {{{30, 62, -52}, 0, {0, 0}, {0x8, 0x6B, 0xBB, 0x0}}}, {{{49, 35, -74}, 0, {0, 0}, {0x3E, 0x2E, 0x9B, 0x0}}}, {{{7, 26, -77}, 0, {0, 0}, {0xEB, 0x25, 0x88, 0x0}}}, {{{52, -10, -75}, 0, {0, 0}, {0x49, 0xF3, 0x99, 0x0}}}, {{{11, -10, -80}, 0, {0, 0}, {0xF2, 0xF5, 0x82, 0x0}}}, }; const Gfx luigi_butt_dl[] = { gsSPVertex(luigi_butt_dl_vertex + 0, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(0, 3, 1, 0), gsSP1Triangle(0, 4, 3, 0), gsSP1Triangle(0, 2, 4, 0), gsSP1Triangle(5, 4, 2, 0), gsSP1Triangle(6, 5, 2, 0), gsSP1Triangle(2, 7, 6, 0), gsSP1Triangle(1, 7, 2, 0), gsSP1Triangle(8, 7, 1, 0), gsSP1Triangle(8, 1, 9, 0), gsSP1Triangle(9, 1, 3, 0), gsSP1Triangle(9, 3, 10, 0), gsSP1Triangle(11, 10, 3, 0), gsSP1Triangle(11, 3, 12, 0), gsSP1Triangle(12, 3, 4, 0), gsSP1Triangle(13, 12, 4, 0), gsSP1Triangle(4, 5, 13, 0), gsSP1Triangle(5, 14, 13, 0), gsSP1Triangle(5, 6, 14, 0), gsSP1Triangle(15, 14, 6, 0), gsSPVertex(luigi_butt_dl_vertex + 16, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(1, 0, 3, 0), gsSP1Triangle(3, 4, 1, 0), gsSP1Triangle(4, 3, 5, 0), gsSP1Triangle(6, 5, 3, 0), gsSP1Triangle(6, 7, 5, 0), gsSP1Triangle(5, 7, 8, 0), gsSP1Triangle(8, 7, 9, 0), gsSP1Triangle(10, 8, 9, 0), gsSP1Triangle(10, 9, 11, 0), gsSP1Triangle(12, 11, 9, 0), gsSP1Triangle(12, 9, 13, 0), gsSP1Triangle(13, 9, 14, 0), gsSP1Triangle(15, 13, 14, 0), gsSPVertex(luigi_butt_dl_vertex + 32, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(0, 2, 3, 0), gsSP1Triangle(0, 3, 4, 0), gsSP1Triangle(5, 4, 3, 0), gsSP1Triangle(5, 6, 4, 0), gsSP1Triangle(6, 7, 4, 0), gsSP1Triangle(6, 8, 7, 0), gsSP1Triangle(9, 7, 8, 0), gsSP1Triangle(8, 10, 9, 0), gsSP1Triangle(10, 8, 11, 0), gsSP1Triangle(12, 11, 8, 0), gsSP1Triangle(13, 12, 8, 0), gsSP1Triangle(14, 12, 13, 0), gsSP1Triangle(15, 12, 14, 0), gsSPVertex(luigi_butt_dl_vertex + 48, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(1, 0, 3, 0), gsSP1Triangle(1, 3, 4, 0), gsSP1Triangle(5, 4, 3, 0), gsSP1Triangle(4, 5, 6, 0), gsSP1Triangle(6, 7, 4, 0), gsSP1Triangle(8, 7, 6, 0), gsSP1Triangle(9, 7, 8, 0), gsSP1Triangle(9, 8, 10, 0), gsSP1Triangle(11, 9, 10, 0), gsSP1Triangle(11, 10, 12, 0), gsSP1Triangle(10, 13, 12, 0), gsSP1Triangle(13, 14, 12, 0), gsSP1Triangle(14, 13, 15, 0), gsSPVertex(luigi_butt_dl_vertex + 64, 12, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(0, 3, 1, 0), gsSP1Triangle(4, 1, 3, 0), gsSP1Triangle(4, 3, 5, 0), gsSP1Triangle(5, 3, 6, 0), gsSP1Triangle(5, 6, 7, 0), gsSP1Triangle(6, 8, 7, 0), gsSP1Triangle(7, 8, 9, 0), gsSP1Triangle(8, 10, 9, 0), gsSP1Triangle(11, 9, 10, 0), gsSPEndDisplayList(), }; const Gfx luigi_butt[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPCopyLightsPlayerPart(PANTS), // gsSPLight(&luigi_blue_lights_group.a, 2), gsSPDisplayList(luigi_butt_dl), gsSPEndDisplayList(), }; const Gfx luigi_metal_butt[] = { gsDPPipeSync(), gsDPSetCombineLERP(TEXEL0, 0, SHADE, TEXEL1, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, TEXEL1, 0, 0, 0, ENVIRONMENT), gsSPSetGeometryMode(G_TEXTURE_GEN), gsSPTexture(4032, 1984, 0, 0, 1), gsSPLight(&luigi_black_lights_group.l, 1), gsSPCopyLightEXT(2, 15), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_metal_shade), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), gsDPLoadBlock(7, 0, 0, 2047, 128), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0), gsDPSetTileSize(0, 0, 0, 252, 124), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_metal_light), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 512, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), gsDPLoadBlock(6, 0, 0, 2047, 128), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0), gsDPSetTileSize(1, 0, 0, 252, 124), gsSPDisplayList(luigi_butt_dl), gsSPEndDisplayList(), }; static const Vtx luigi_left_arm_shared_dl_vertex[29] = { {{{65, 19, 15}, 0, {0, 1024}, {0x34, 0x5B, 0x48, 0x0}}}, {{{65, 20, -21}, 0, {0, 1024}, {0x34, 0x5F, 0xBE, 0x0}}}, {{{7, 26, 19}, 0, {0, 1024}, {0xE1, 0x62, 0x4B, 0x0}}}, {{{75, 12, -15}, 0, {0, 1024}, {0x6F, 0x33, 0xDE, 0x0}}}, {{{75, 11, 9}, 0, {0, 1024}, {0x6F, 0x2E, 0x29, 0x0}}}, {{{74, -12, 15}, 0, {0, 1024}, {0x6D, 0xE6, 0x3C, 0x0}}}, {{{64, -15, 24}, 0, {0, 1024}, {0x32, 0xD5, 0x6D, 0x0}}}, {{{6, -16, 32}, 0, {0, 1024}, {0xDE, 0xD8, 0x74, 0x0}}}, {{{-10, -11, 18}, 0, {0, 1024}, {0x93, 0xEB, 0x3E, 0x0}}}, {{{-9, 15, 10}, 0, {0, 1024}, {0x94, 0x37, 0x27, 0x0}}}, {{{7, 28, -25}, 0, {0, 1024}, {0xE1, 0x67, 0xBD, 0x0}}}, {{{64, -13, -33}, 0, {0, 1024}, {0x32, 0xE0, 0x90, 0x0}}}, {{{74, -10, -24}, 0, {0, 1024}, {0x6D, 0xEF, 0xC0, 0x0}}}, {{{74, -26, -5}, 0, {0, 1024}, {0x6A, 0xBA, 0xFF, 0x0}}}, {{{63, -35, -6}, 0, {0, 1024}, {0x2E, 0x8A, 0xFA, 0x0}}}, {{{5, -42, -6}, 0, {0, 1024}, {0xDA, 0x87, 0xFC, 0x0}}}, {{{-10, -26, -6}, 0, {0, 1024}, {0x91, 0xC2, 0xFC, 0x0}}}, {{{5, -42, -6}, 0, {0, 1024}, {0xDA, 0x87, 0xFC, 0x0}}}, {{{6, -16, 32}, 0, {0, 1024}, {0xDE, 0xD8, 0x74, 0x0}}}, {{{-10, -11, 18}, 0, {0, 1024}, {0x93, 0xEB, 0x3E, 0x0}}}, {{{-10, -9, -26}, 0, {0, 1024}, {0x91, 0xF3, 0xC3, 0x0}}}, {{{-9, 16, -17}, 0, {0, 1024}, {0x94, 0x39, 0xDC, 0x0}}}, {{{-9, 15, 10}, 0, {0, 1024}, {0x94, 0x37, 0x27, 0x0}}}, {{{7, 28, -25}, 0, {0, 1024}, {0xE1, 0x67, 0xBD, 0x0}}}, {{{6, -14, -41}, 0, {0, 1024}, {0xDD, 0xE1, 0x8A, 0x0}}}, {{{64, -13, -33}, 0, {0, 1024}, {0x32, 0xE0, 0x90, 0x0}}}, {{{63, -35, -6}, 0, {0, 1024}, {0x2E, 0x8A, 0xFA, 0x0}}}, {{{74, -10, -24}, 0, {0, 1024}, {0x6D, 0xEF, 0xC0, 0x0}}}, {{{74, -26, -5}, 0, {0, 1024}, {0x6A, 0xBA, 0xFF, 0x0}}}, }; const Gfx luigi_left_arm_shared_dl[] = { gsSPVertex(luigi_left_arm_shared_dl_vertex + 0, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(3, 1, 0, 0), gsSP1Triangle(4, 3, 0, 0), gsSP1Triangle(4, 0, 5, 0), gsSP1Triangle(5, 0, 6, 0), gsSP1Triangle(6, 0, 7, 0), gsSP1Triangle(7, 0, 2, 0), gsSP1Triangle(8, 7, 2, 0), gsSP1Triangle(9, 8, 2, 0), gsSP1Triangle(9, 2, 10, 0), gsSP1Triangle(2, 1, 10, 0), gsSP1Triangle(1, 11, 10, 0), gsSP1Triangle(3, 11, 1, 0), gsSP1Triangle(12, 11, 3, 0), gsSP1Triangle(12, 3, 4, 0), gsSP1Triangle(5, 12, 4, 0), gsSP1Triangle(13, 12, 5, 0), gsSP1Triangle(13, 5, 14, 0), gsSP1Triangle(5, 6, 14, 0), gsSP1Triangle(14, 6, 15, 0), gsSP1Triangle(15, 6, 7, 0), gsSPVertex(luigi_left_arm_shared_dl_vertex + 16, 13, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(3, 0, 2, 0), gsSP1Triangle(0, 3, 4, 0), gsSP1Triangle(4, 3, 5, 0), gsSP1Triangle(6, 5, 3, 0), gsSP1Triangle(5, 6, 7, 0), gsSP1Triangle(5, 7, 8, 0), gsSP1Triangle(7, 9, 8, 0), gsSP1Triangle(9, 10, 8, 0), gsSP1Triangle(11, 10, 9, 0), gsSP1Triangle(12, 10, 11, 0), gsSP1Triangle(8, 10, 1, 0), gsSP1Triangle(4, 8, 1, 0), gsSP1Triangle(0, 4, 1, 0), gsSP1Triangle(4, 5, 8, 0), gsSPEndDisplayList(), }; const Gfx luigi_left_arm[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPCopyLightsPlayerPart(SHIRT), // gsSPLight(&luigi_green_lights_group.a, 2), gsSPDisplayList(luigi_left_arm_shared_dl), gsSPEndDisplayList(), }; static const Vtx luigi_left_forearm_shared_dl_vertex[16] = { {{{57, 14, 13}, 0, {0, 0}, {0x3E, 0x55, 0x47, 0x0}}}, {{{58, 16, -19}, 0, {0, 0}, {0x40, 0x5C, 0xC3, 0x0}}}, {{{-1, 19, 16}, 0, {0, 0}, {0xE3, 0x62, 0x4C, 0x0}}}, {{{71, -7, -4}, 0, {0, 0}, {0x7F, 0xFD, 0x1, 0x0}}}, {{{56, -17, 22}, 0, {0, 0}, {0x3C, 0xD7, 0x68, 0x0}}}, {{{-2, -17, 26}, 0, {0, 0}, {0xE0, 0xD7, 0x74, 0x0}}}, {{{-15, -13, 17}, 0, {0, 0}, {0x98, 0xEB, 0x46, 0x0}}}, {{{-15, 11, 10}, 0, {0, 0}, {0x99, 0x3B, 0x2D, 0x0}}}, {{{-1, 20, -21}, 0, {0, 0}, {0xE3, 0x68, 0xBC, 0x0}}}, {{{57, -14, -30}, 0, {0, 0}, {0x3C, 0xE1, 0x94, 0x0}}}, {{{56, -34, -5}, 0, {0, 0}, {0x3B, 0x90, 0xFA, 0x0}}}, {{{-3, -38, -5}, 0, {0, 0}, {0xDC, 0x86, 0xFA, 0x0}}}, {{{-16, -27, -4}, 0, {0, 0}, {0x94, 0xBD, 0x0, 0x0}}}, {{{-15, 12, -16}, 0, {0, 0}, {0x9A, 0x3F, 0xD7, 0x0}}}, {{{-2, -14, -34}, 0, {0, 0}, {0xE1, 0xE1, 0x89, 0x0}}}, {{{-15, -11, -25}, 0, {0, 0}, {0x99, 0xF0, 0xB7, 0x0}}}, }; const Gfx luigi_left_forearm_shared_dl[] = { gsSPVertex(luigi_left_forearm_shared_dl_vertex + 0, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(3, 1, 0, 0), gsSP1Triangle(3, 0, 4, 0), gsSP1Triangle(4, 0, 5, 0), gsSP1Triangle(5, 0, 2, 0), gsSP1Triangle(6, 5, 2, 0), gsSP1Triangle(7, 6, 2, 0), gsSP1Triangle(7, 2, 8, 0), gsSP1Triangle(2, 1, 8, 0), gsSP1Triangle(1, 9, 8, 0), gsSP1Triangle(3, 9, 1, 0), gsSP1Triangle(3, 10, 9, 0), gsSP1Triangle(3, 4, 10, 0), gsSP1Triangle(10, 4, 11, 0), gsSP1Triangle(11, 4, 5, 0), gsSP1Triangle(12, 11, 5, 0), gsSP1Triangle(6, 12, 5, 0), gsSP1Triangle(6, 7, 12, 0), gsSP1Triangle(7, 13, 12, 0), gsSP1Triangle(13, 7, 8, 0), gsSP1Triangle(13, 8, 14, 0), gsSP1Triangle(8, 9, 14, 0), gsSP1Triangle(9, 10, 14, 0), gsSP1Triangle(14, 10, 11, 0), gsSP1Triangle(15, 14, 11, 0), gsSP1Triangle(12, 15, 11, 0), gsSP1Triangle(12, 13, 15, 0), gsSP1Triangle(15, 13, 14, 0), gsSPEndDisplayList(), }; static const Vtx luigi_left_hand_closed_shared_dl_vertex[44] = { {{{-18, 45, 8}, 0, {0, 0}, {0x83, 0xF3, 0x13, 0xFF}}}, {{{-14, -14, -4}, 0, {0, 0}, {0x8C, 0xCD, 0x2, 0xFF}}}, {{{5, -6, 36}, 0, {0, 0}, {0x98, 0xD2, 0x38, 0xFF}}}, {{{-10, 26, -38}, 0, {0, 0}, {0xF0, 0x41, 0x94, 0xFF}}}, {{{17, -38, -39}, 0, {0, 0}, {0x1A, 0xB6, 0x9C, 0xFF}}}, {{{26, -25, -32}, 0, {0, 0}, {0x9, 0xC7, 0x8F, 0xFF}}}, {{{4, 24, -31}, 0, {0, 0}, {0xD5, 0x40, 0x9B, 0xFF}}}, {{{-1, 39, 5}, 0, {0, 0}, {0xEA, 0x6F, 0x3A, 0xFF}}}, {{{-18, 45, 8}, 0, {0, 0}, {0x2D, 0x72, 0x21, 0xFF}}}, {{{5, -6, 36}, 0, {0, 0}, {0x44, 0x1B, 0x68, 0xFF}}}, {{{17, -1, 27}, 0, {0, 0}, {0x0, 0xFD, 0x7F, 0xFF}}}, {{{34, -41, 3}, 0, {0, 0}, {0x42, 0xA2, 0x36, 0xFF}}}, {{{27, -58, 6}, 0, {0, 0}, {0x74, 0xD5, 0x1D, 0xFF}}}, {{{58, -45, 7}, 0, {0, 0}, {0x1, 0x84, 0x1C, 0xFF}}}, {{{80, -31, -61}, 0, {0, 0}, {0xC, 0xB2, 0x9C, 0xFF}}}, {{{33, 7, -44}, 0, {0, 0}, {0xC6, 0xFE, 0x8F, 0xFF}}}, {{{32, 63, -28}, 0, {0, 0}, {0xD0, 0x50, 0xA9, 0xFF}}}, {{{33, 7, -44}, 0, {0, 0}, {0xC6, 0xFE, 0x8F, 0xFF}}}, {{{4, 24, -31}, 0, {0, 0}, {0xD5, 0x40, 0x9B, 0xFF}}}, {{{12, 59, 10}, 0, {0, 0}, {0xA9, 0x59, 0x1B, 0xFF}}}, {{{-1, 39, 5}, 0, {0, 0}, {0xEA, 0x6F, 0x3A, 0xFF}}}, {{{36, 6, 42}, 0, {0, 0}, {0xE1, 0xF0, 0x7A, 0xFF}}}, {{{17, -1, 27}, 0, {0, 0}, {0x0, 0xFD, 0x7F, 0xFF}}}, {{{34, -41, 3}, 0, {0, 0}, {0x42, 0xA2, 0x36, 0xFF}}}, {{{58, -45, 7}, 0, {0, 0}, {0x1, 0x84, 0x1C, 0xFF}}}, {{{107, -26, 4}, 0, {0, 0}, {0x68, 0xC5, 0x2B, 0xFF}}}, {{{80, -31, -61}, 0, {0, 0}, {0xC, 0xB2, 0x9C, 0xFF}}}, {{{100, -6, -46}, 0, {0, 0}, {0x64, 0xA, 0xB2, 0xFF}}}, {{{61, 12, -60}, 0, {0, 0}, {0x0, 0x21, 0x85, 0xFF}}}, {{{57, 55, -37}, 0, {0, 0}, {0x22, 0x55, 0xA8, 0xFF}}}, {{{59, 81, 8}, 0, {0, 0}, {0x11, 0x7B, 0x1D, 0xFF}}}, {{{86, 29, 41}, 0, {0, 0}, {0x4C, 0x20, 0x61, 0xFF}}}, {{{107, -26, 4}, 0, {0, 0}, {0x68, 0xC5, 0x2B, 0xFF}}}, {{{99, 40, -16}, 0, {0, 0}, {0x6D, 0x3C, 0xE5, 0xFF}}}, {{{86, 29, 41}, 0, {0, 0}, {0x4C, 0x20, 0x61, 0xFF}}}, {{{100, -6, -46}, 0, {0, 0}, {0x64, 0xA, 0xB2, 0xFF}}}, {{{90, 17, -46}, 0, {0, 0}, {0x43, 0x35, 0xA2, 0xFF}}}, {{{61, 12, -60}, 0, {0, 0}, {0x0, 0x21, 0x85, 0xFF}}}, {{{57, 55, -37}, 0, {0, 0}, {0x22, 0x55, 0xA8, 0xFF}}}, {{{59, 81, 8}, 0, {0, 0}, {0x11, 0x7B, 0x1D, 0xFF}}}, {{{27, -58, 6}, 0, {0, 0}, {0xA2, 0xAC, 0x12, 0xFF}}}, {{{-14, -14, -4}, 0, {0, 0}, {0x8C, 0xCD, 0x2, 0xFF}}}, {{{17, -38, -39}, 0, {0, 0}, {0x1A, 0xB6, 0x9C, 0xFF}}}, {{{5, -6, 36}, 0, {0, 0}, {0x98, 0xD2, 0x38, 0xFF}}}, }; const Gfx luigi_left_hand_closed_shared_dl[] = { gsSPVertex(luigi_left_hand_closed_shared_dl_vertex + 0, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(3, 1, 0, 0), gsSP1Triangle(4, 1, 3, 0), gsSP1Triangle(5, 4, 3, 0), gsSP1Triangle(3, 6, 5, 0), gsSP1Triangle(7, 6, 3, 0), gsSP1Triangle(3, 8, 7, 0), gsSP1Triangle(7, 8, 9, 0), gsSP1Triangle(9, 10, 7, 0), gsSP1Triangle(11, 10, 9, 0), gsSP1Triangle(9, 12, 11, 0), gsSP1Triangle(11, 12, 4, 0), gsSP1Triangle(4, 5, 11, 0), gsSP1Triangle(13, 11, 5, 0), gsSP1Triangle(5, 14, 13, 0), gsSP1Triangle(5, 15, 14, 0), gsSP1Triangle(5, 6, 15, 0), gsSPVertex(luigi_left_hand_closed_shared_dl_vertex + 16, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(3, 0, 2, 0), gsSP1Triangle(2, 4, 3, 0), gsSP1Triangle(4, 5, 3, 0), gsSP1Triangle(4, 6, 5, 0), gsSP1Triangle(5, 6, 7, 0), gsSP1Triangle(7, 8, 5, 0), gsSP1Triangle(8, 9, 5, 0), gsSP1Triangle(10, 9, 8, 0), gsSP1Triangle(10, 11, 9, 0), gsSP1Triangle(12, 11, 10, 0), gsSP1Triangle(1, 12, 10, 0), gsSP1Triangle(12, 1, 0, 0), gsSP1Triangle(12, 0, 13, 0), gsSP1Triangle(14, 13, 0, 0), gsSP1Triangle(0, 3, 14, 0), gsSP1Triangle(5, 14, 3, 0), gsSP1Triangle(5, 15, 14, 0), gsSP1Triangle(9, 15, 5, 0), gsSPVertex(luigi_left_hand_closed_shared_dl_vertex + 32, 12, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(3, 1, 0, 0), gsSP1Triangle(4, 1, 3, 0), gsSP1Triangle(5, 4, 3, 0), gsSP1Triangle(6, 4, 5, 0), gsSP1Triangle(4, 6, 1, 0), gsSP1Triangle(7, 1, 6, 0), gsSP1Triangle(2, 1, 7, 0), gsSP1Triangle(8, 9, 10, 0), gsSP1Triangle(11, 9, 8, 0), gsSPEndDisplayList(), }; const Gfx luigi_left_hand_closed[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c gsSPDisplayList(luigi_left_hand_closed_shared_dl), gsSPEndDisplayList(), }; static const Vtx luigi_right_arm_shared_dl_vertex[30] = { {{{5, -43, 6}, 0, {0, 1024}, {0xDB, 0x87, 0xFB, 0x0}}}, {{{6, -15, -29}, 0, {0, 1024}, {0xDD, 0xE1, 0x8A, 0x0}}}, {{{63, -14, -22}, 0, {0, 1024}, {0x32, 0xE2, 0x8F, 0x0}}}, {{{-10, -28, 7}, 0, {0, 1024}, {0x92, 0xC1, 0xFE, 0x0}}}, {{{-10, -13, 29}, 0, {0, 1024}, {0x92, 0xEC, 0x3D, 0x0}}}, {{{6, -18, 43}, 0, {0, 1024}, {0xDE, 0xD8, 0x74, 0x0}}}, {{{63, -37, 7}, 0, {0, 1024}, {0x31, 0x8B, 0xFD, 0x0}}}, {{{73, -12, -12}, 0, {0, 1024}, {0x6E, 0xEC, 0xC3, 0x0}}}, {{{64, 19, -9}, 0, {0, 1024}, {0x34, 0x61, 0xC0, 0x0}}}, {{{7, 27, -13}, 0, {0, 1024}, {0xDF, 0x68, 0xBE, 0x0}}}, {{{-10, -11, -14}, 0, {0, 1024}, {0x92, 0xF1, 0xC3, 0x0}}}, {{{-9, 14, -5}, 0, {0, 1024}, {0x93, 0x38, 0xDD, 0x0}}}, {{{-9, 13, 22}, 0, {0, 1024}, {0x95, 0x37, 0x29, 0x0}}}, {{{7, 24, 31}, 0, {0, 1024}, {0xE0, 0x60, 0x4D, 0x0}}}, {{{63, -17, 36}, 0, {0, 1024}, {0x30, 0xD7, 0x6E, 0x0}}}, {{{73, -14, 27}, 0, {0, 1024}, {0x6D, 0xE7, 0x3C, 0x0}}}, {{{73, -27, 7}, 0, {0, 1024}, {0x6E, 0xC0, 0xFC, 0x0}}}, {{{73, -14, 27}, 0, {0, 1024}, {0x6D, 0xE7, 0x3C, 0x0}}}, {{{63, -37, 7}, 0, {0, 1024}, {0x31, 0x8B, 0xFD, 0x0}}}, {{{73, -12, -12}, 0, {0, 1024}, {0x6E, 0xEC, 0xC3, 0x0}}}, {{{74, 11, -3}, 0, {0, 1024}, {0x6F, 0x34, 0xDF, 0x0}}}, {{{64, 19, -9}, 0, {0, 1024}, {0x34, 0x61, 0xC0, 0x0}}}, {{{64, 17, 27}, 0, {0, 1024}, {0x33, 0x59, 0x4B, 0x0}}}, {{{7, 27, -13}, 0, {0, 1024}, {0xDF, 0x68, 0xBE, 0x0}}}, {{{7, 24, 31}, 0, {0, 1024}, {0xE0, 0x60, 0x4D, 0x0}}}, {{{-9, 14, -5}, 0, {0, 1024}, {0x93, 0x38, 0xDD, 0x0}}}, {{{-10, -11, -14}, 0, {0, 1024}, {0x92, 0xF1, 0xC3, 0x0}}}, {{{-9, 13, 22}, 0, {0, 1024}, {0x95, 0x37, 0x29, 0x0}}}, {{{63, -17, 36}, 0, {0, 1024}, {0x30, 0xD7, 0x6E, 0x0}}}, {{{74, 9, 21}, 0, {0, 1024}, {0x70, 0x2C, 0x2A, 0x0}}}, }; const Gfx luigi_right_arm_shared_dl[] = { gsSPVertex(luigi_right_arm_shared_dl_vertex + 0, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(3, 1, 0, 0), gsSP1Triangle(3, 0, 4, 0), gsSP1Triangle(4, 0, 5, 0), gsSP1Triangle(5, 0, 6, 0), gsSP1Triangle(6, 0, 2, 0), gsSP1Triangle(7, 6, 2, 0), gsSP1Triangle(7, 2, 8, 0), gsSP1Triangle(2, 1, 8, 0), gsSP1Triangle(1, 9, 8, 0), gsSP1Triangle(10, 9, 1, 0), gsSP1Triangle(10, 1, 3, 0), gsSP1Triangle(3, 4, 10, 0), gsSP1Triangle(11, 10, 4, 0), gsSP1Triangle(12, 11, 4, 0), gsSP1Triangle(4, 5, 12, 0), gsSP1Triangle(12, 5, 13, 0), gsSP1Triangle(13, 5, 14, 0), gsSP1Triangle(14, 5, 6, 0), gsSP1Triangle(15, 14, 6, 0), gsSPVertex(luigi_right_arm_shared_dl_vertex + 16, 14, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(0, 2, 3, 0), gsSP1Triangle(4, 0, 3, 0), gsSP1Triangle(4, 3, 5, 0), gsSP1Triangle(4, 5, 6, 0), gsSP1Triangle(5, 7, 6, 0), gsSP1Triangle(7, 8, 6, 0), gsSP1Triangle(9, 8, 7, 0), gsSP1Triangle(9, 7, 10, 0), gsSP1Triangle(11, 8, 9, 0), gsSP1Triangle(6, 8, 12, 0), gsSP1Triangle(1, 6, 12, 0), gsSP1Triangle(13, 6, 1, 0), gsSP1Triangle(13, 1, 4, 0), gsSP1Triangle(1, 0, 4, 0), gsSP1Triangle(13, 4, 6, 0), gsSPEndDisplayList(), }; const Gfx luigi_right_arm[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPCopyLightsPlayerPart(SHIRT), // gsSPLight(&luigi_green_lights_group.a, 2), gsSPDisplayList(luigi_right_arm_shared_dl), gsSPEndDisplayList(), }; static const Vtx luigi_right_forearm_shared_dl_vertex[16] = { {{{-1, 19, 27}, 0, {0, 1024}, {0xE4, 0x62, 0x4B, 0x0}}}, {{{-3, -17, 37}, 0, {0, 1024}, {0xDF, 0xD7, 0x74, 0x0}}}, {{{57, -16, 33}, 0, {0, 1024}, {0x3D, 0xDC, 0x6A, 0x0}}}, {{{-15, 11, 21}, 0, {0, 1024}, {0x99, 0x3B, 0x2D, 0x0}}}, {{{-15, 12, -4}, 0, {0, 1024}, {0x99, 0x40, 0xDA, 0x0}}}, {{{-1, 20, -10}, 0, {0, 1024}, {0xE3, 0x67, 0xBB, 0x0}}}, {{{58, 14, 24}, 0, {0, 1024}, {0x40, 0x56, 0x45, 0x0}}}, {{{71, -8, 7}, 0, {0, 1024}, {0x7F, 0xFC, 0xFF, 0x0}}}, {{{57, -35, 7}, 0, {0, 1024}, {0x3C, 0x90, 0xFE, 0x0}}}, {{{-3, -38, 6}, 0, {0, 1024}, {0xDC, 0x86, 0xFA, 0x0}}}, {{{-16, -13, 28}, 0, {0, 1024}, {0x96, 0xEC, 0x43, 0x0}}}, {{{-16, -27, 7}, 0, {0, 1024}, {0x95, 0xBC, 0xFE, 0x0}}}, {{{-16, -11, -13}, 0, {0, 1024}, {0x96, 0xF0, 0xBB, 0x0}}}, {{{-2, -14, -23}, 0, {0, 1024}, {0xE0, 0xE2, 0x89, 0x0}}}, {{{58, 16, -7}, 0, {0, 1024}, {0x3F, 0x5D, 0xC5, 0x0}}}, {{{57, -14, -19}, 0, {0, 1024}, {0x3C, 0xE3, 0x94, 0x0}}}, }; const Gfx luigi_right_forearm_shared_dl[] = { gsSPVertex(luigi_right_forearm_shared_dl_vertex + 0, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(3, 1, 0, 0), gsSP1Triangle(3, 0, 4, 0), gsSP1Triangle(4, 0, 5, 0), gsSP1Triangle(5, 0, 6, 0), gsSP1Triangle(6, 0, 2, 0), gsSP1Triangle(7, 6, 2, 0), gsSP1Triangle(7, 2, 8, 0), gsSP1Triangle(2, 1, 8, 0), gsSP1Triangle(1, 9, 8, 0), gsSP1Triangle(10, 9, 1, 0), gsSP1Triangle(10, 1, 3, 0), gsSP1Triangle(10, 3, 11, 0), gsSP1Triangle(11, 3, 12, 0), gsSP1Triangle(3, 4, 12, 0), gsSP1Triangle(4, 5, 12, 0), gsSP1Triangle(12, 5, 13, 0), gsSP1Triangle(13, 5, 14, 0), gsSP1Triangle(14, 5, 6, 0), gsSP1Triangle(7, 14, 6, 0), gsSP1Triangle(7, 15, 14, 0), gsSP1Triangle(7, 8, 15, 0), gsSP1Triangle(8, 9, 15, 0), gsSP1Triangle(9, 13, 15, 0), gsSP1Triangle(11, 13, 9, 0), gsSP1Triangle(11, 9, 10, 0), gsSP1Triangle(12, 13, 11, 0), gsSP1Triangle(15, 13, 14, 0), gsSPEndDisplayList(), }; static const Vtx luigi_right_hand_closed_dl_vertex[41] = { {{{31, -40, -1}, 0, {0, 0}, {0x43, 0xA3, 0xC9, 0xFF}}}, {{{24, -57, -4}, 0, {0, 0}, {0x74, 0xD4, 0xE6, 0xFF}}}, {{{4, -3, -33}, 0, {0, 0}, {0x49, 0x1E, 0x9C, 0xFF}}}, {{{13, -38, 41}, 0, {0, 0}, {0x15, 0xB2, 0x62, 0xFF}}}, {{{23, -26, 35}, 0, {0, 0}, {0x4, 0xC2, 0x6F, 0xFF}}}, {{{55, -44, -4}, 0, {0, 0}, {0x0, 0x85, 0xDF, 0xFF}}}, {{{35, 9, -37}, 0, {0, 0}, {0xE5, 0xF5, 0x84, 0xFF}}}, {{{15, 0, -23}, 0, {0, 0}, {0x4, 0x1, 0x81, 0xFF}}}, {{{-2, 41, -1}, 0, {0, 0}, {0xED, 0x71, 0xC9, 0xFF}}}, {{{-19, 47, -4}, 0, {0, 0}, {0x30, 0x73, 0xE5, 0xFF}}}, {{{-14, 26, 41}, 0, {0, 0}, {0xED, 0x3D, 0x6E, 0xFF}}}, {{{1, 24, 35}, 0, {0, 0}, {0xD2, 0x3C, 0x66, 0xFF}}}, {{{-16, -12, 6}, 0, {0, 0}, {0x8B, 0xCF, 0xF8, 0xFF}}}, {{{-19, 47, -4}, 0, {0, 0}, {0x84, 0xF5, 0xE7, 0xFF}}}, {{{4, -3, -33}, 0, {0, 0}, {0x9A, 0xD5, 0xC2, 0xFF}}}, {{{24, -57, -4}, 0, {0, 0}, {0xA1, 0xAF, 0xE7, 0xFF}}}, {{{29, 6, 49}, 0, {0, 0}, {0xC2, 0xFA, 0x6F, 0xFF}}}, {{{1, 24, 35}, 0, {0, 0}, {0xD2, 0x3C, 0x66, 0xFF}}}, {{{23, -26, 35}, 0, {0, 0}, {0x4, 0xC2, 0x6F, 0xFF}}}, {{{29, 62, 34}, 0, {0, 0}, {0xCE, 0x4D, 0x58, 0xFF}}}, {{{57, 10, 66}, 0, {0, 0}, {0xFD, 0x1C, 0x7C, 0xFF}}}, {{{75, -33, 66}, 0, {0, 0}, {0x8, 0xAE, 0x61, 0xFF}}}, {{{55, -44, -4}, 0, {0, 0}, {0x0, 0x85, 0xDF, 0xFF}}}, {{{104, -26, 1}, 0, {0, 0}, {0x69, 0xC5, 0xD7, 0xFF}}}, {{{35, 9, -37}, 0, {0, 0}, {0xE5, 0xF5, 0x84, 0xFF}}}, {{{86, 30, -33}, 0, {0, 0}, {0x50, 0x22, 0xA3, 0xFF}}}, {{{58, 81, 0}, 0, {0, 0}, {0x14, 0x7B, 0xE9, 0xFF}}}, {{{10, 60, -4}, 0, {0, 0}, {0xAB, 0x5B, 0xE5, 0xFF}}}, {{{-2, 41, -1}, 0, {0, 0}, {0xED, 0x71, 0xC9, 0xFF}}}, {{{15, 0, -23}, 0, {0, 0}, {0x4, 0x1, 0x81, 0xFF}}}, {{{54, 54, 44}, 0, {0, 0}, {0x20, 0x51, 0x5C, 0xFF}}}, {{{86, 15, 52}, 0, {0, 0}, {0x41, 0x30, 0x62, 0xFF}}}, {{{96, -8, 52}, 0, {0, 0}, {0x61, 0x6, 0x52, 0xFF}}}, {{{86, 15, 52}, 0, {0, 0}, {0x41, 0x30, 0x62, 0xFF}}}, {{{57, 10, 66}, 0, {0, 0}, {0xFD, 0x1C, 0x7C, 0xFF}}}, {{{75, -33, 66}, 0, {0, 0}, {0x8, 0xAE, 0x61, 0xFF}}}, {{{104, -26, 1}, 0, {0, 0}, {0x69, 0xC5, 0xD7, 0xFF}}}, {{{97, 39, 24}, 0, {0, 0}, {0x6C, 0x3A, 0x21, 0xFF}}}, {{{86, 30, -33}, 0, {0, 0}, {0x50, 0x22, 0xA3, 0xFF}}}, {{{58, 81, 0}, 0, {0, 0}, {0x14, 0x7B, 0xE9, 0xFF}}}, {{{54, 54, 44}, 0, {0, 0}, {0x20, 0x51, 0x5C, 0xFF}}}, }; const Gfx luigi_right_hand_closed_dl[] = { gsSPVertex(luigi_right_hand_closed_dl_vertex + 0, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(3, 1, 0, 0), gsSP1Triangle(0, 4, 3, 0), gsSP1Triangle(4, 0, 5, 0), gsSP1Triangle(6, 5, 0, 0), gsSP1Triangle(0, 7, 6, 0), gsSP1Triangle(2, 7, 0, 0), gsSP1Triangle(8, 7, 2, 0), gsSP1Triangle(2, 9, 8, 0), gsSP1Triangle(8, 9, 10, 0), gsSP1Triangle(10, 11, 8, 0), gsSP1Triangle(4, 11, 10, 0), gsSP1Triangle(10, 3, 4, 0), gsSP1Triangle(10, 12, 3, 0), gsSP1Triangle(13, 12, 10, 0), gsSP1Triangle(14, 12, 13, 0), gsSP1Triangle(15, 12, 14, 0), gsSP1Triangle(3, 12, 15, 0), gsSPVertex(luigi_right_hand_closed_dl_vertex + 16, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(1, 0, 3, 0), gsSP1Triangle(3, 0, 4, 0), gsSP1Triangle(5, 4, 0, 0), gsSP1Triangle(5, 0, 2, 0), gsSP1Triangle(6, 5, 2, 0), gsSP1Triangle(6, 7, 5, 0), gsSP1Triangle(8, 7, 6, 0), gsSP1Triangle(8, 9, 7, 0), gsSP1Triangle(10, 9, 8, 0), gsSP1Triangle(11, 10, 8, 0), gsSP1Triangle(11, 8, 12, 0), gsSP1Triangle(8, 13, 12, 0), gsSP1Triangle(11, 12, 1, 0), gsSP1Triangle(3, 11, 1, 0), gsSP1Triangle(10, 11, 3, 0), gsSP1Triangle(3, 14, 10, 0), gsSP1Triangle(14, 3, 4, 0), gsSP1Triangle(15, 14, 4, 0), gsSPVertex(luigi_right_hand_closed_dl_vertex + 32, 9, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(3, 0, 2, 0), gsSP1Triangle(4, 0, 3, 0), gsSP1Triangle(4, 5, 0, 0), gsSP1Triangle(6, 5, 4, 0), gsSP1Triangle(7, 5, 6, 0), gsSP1Triangle(8, 5, 7, 0), gsSP1Triangle(5, 8, 1, 0), gsSP1Triangle(0, 5, 1, 0), gsSPEndDisplayList(), }; const Gfx luigi_right_hand_closed[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c gsSPDisplayList(luigi_right_hand_closed_dl), gsSPEndDisplayList(), }; const Gfx luigi_metal_right_hand_closed[] = { gsSPDisplayList(luigi_right_hand_closed_dl), gsDPPipeSync(), gsSPClearGeometryMode(G_TEXTURE_GEN), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), gsSPEndDisplayList(), }; static const Vtx luigi_left_thigh_dl_vertex[22] = { {{{-16, 2, 1}, 0, {0, 1024}, {0x81, 0xF8, 0x0, 0x0}}}, {{{-1, -8, -31}, 0, {0, 1024}, {0xAD, 0xE2, 0xA5, 0x0}}}, {{{0, -35, 1}, 0, {0, 1024}, {0xAD, 0xA0, 0x0, 0x0}}}, {{{-4, 34, -19}, 0, {0, 1024}, {0xA6, 0x45, 0xC7, 0x0}}}, {{{-4, 34, 21}, 0, {0, 1024}, {0xA6, 0x46, 0x39, 0x0}}}, {{{-1, -8, 34}, 0, {0, 1024}, {0xAF, 0xE2, 0x5D, 0x0}}}, {{{19, -11, 42}, 0, {0, 1024}, {0xF0, 0xD9, 0x78, 0x0}}}, {{{21, -45, 0}, 0, {0, 1024}, {0xF1, 0x82, 0xFE, 0x0}}}, {{{19, -11, -40}, 0, {0, 1024}, {0xEE, 0xDA, 0x88, 0x0}}}, {{{15, 43, -24}, 0, {0, 1024}, {0xE8, 0x64, 0xB6, 0x0}}}, {{{15, 43, 26}, 0, {0, 1024}, {0xE8, 0x64, 0x4A, 0x0}}}, {{{97, 38, 21}, 0, {0, 1024}, {0x38, 0x5C, 0x43, 0x0}}}, {{{100, -5, 33}, 0, {0, 1024}, {0x3D, 0xE2, 0x6B, 0x0}}}, {{{102, -32, 0}, 0, {0, 1024}, {0x42, 0x93, 0x0, 0x0}}}, {{{100, -5, -32}, 0, {0, 1024}, {0x3C, 0xE3, 0x94, 0x0}}}, {{{97, 38, -19}, 0, {0, 1024}, {0x37, 0x5D, 0xBE, 0x0}}}, {{{122, 7, 0}, 0, {0, 1024}, {0x7F, 0x6, 0xFF, 0x0}}}, {{{97, 38, -19}, 0, {0, 1024}, {0x37, 0x5D, 0xBE, 0x0}}}, {{{97, 38, 21}, 0, {0, 1024}, {0x38, 0x5C, 0x43, 0x0}}}, {{{100, -5, 33}, 0, {0, 1024}, {0x3D, 0xE2, 0x6B, 0x0}}}, {{{102, -32, 0}, 0, {0, 1024}, {0x42, 0x93, 0x0, 0x0}}}, {{{100, -5, -32}, 0, {0, 1024}, {0x3C, 0xE3, 0x94, 0x0}}}, }; const Gfx luigi_left_thigh_dl[] = { gsSPVertex(luigi_left_thigh_dl_vertex + 0, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(0, 3, 1, 0), gsSP1Triangle(0, 4, 3, 0), gsSP1Triangle(0, 5, 4, 0), gsSP1Triangle(0, 2, 5, 0), gsSP1Triangle(5, 2, 6, 0), gsSP1Triangle(2, 7, 6, 0), gsSP1Triangle(2, 8, 7, 0), gsSP1Triangle(1, 8, 2, 0), gsSP1Triangle(3, 8, 1, 0), gsSP1Triangle(3, 9, 8, 0), gsSP1Triangle(9, 3, 4, 0), gsSP1Triangle(4, 10, 9, 0), gsSP1Triangle(4, 6, 10, 0), gsSP1Triangle(6, 4, 5, 0), gsSP1Triangle(6, 11, 10, 0), gsSP1Triangle(12, 11, 6, 0), gsSP1Triangle(12, 6, 13, 0), gsSP1Triangle(7, 13, 6, 0), gsSP1Triangle(8, 13, 7, 0), gsSP1Triangle(14, 13, 8, 0), gsSP1Triangle(14, 8, 15, 0), gsSP1Triangle(9, 15, 8, 0), gsSP1Triangle(10, 15, 9, 0), gsSP1Triangle(11, 15, 10, 0), gsSPVertex(luigi_left_thigh_dl_vertex + 16, 6, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(0, 2, 3, 0), gsSP1Triangle(0, 3, 4, 0), gsSP1Triangle(0, 4, 5, 0), gsSP1Triangle(0, 5, 1, 0), gsSPEndDisplayList(), }; const Gfx luigi_left_thigh[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPCopyLightsPlayerPart(PANTS), // gsSPLight(&luigi_blue_lights_group.a, 2), gsSPDisplayList(luigi_left_thigh_dl), gsSPEndDisplayList(), }; const Gfx luigi_metal_left_thigh[] = { gsDPPipeSync(), gsDPSetCombineLERP(TEXEL0, 0, SHADE, TEXEL1, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, TEXEL1, 0, 0, 0, ENVIRONMENT), gsSPSetGeometryMode(G_TEXTURE_GEN), gsSPTexture(4032, 1984, 0, 0, 1), gsSPLight(&luigi_black_lights_group.l, 1), gsSPCopyLightEXT(2, 15), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_metal_shade), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), gsDPLoadBlock(7, 0, 0, 2047, 128), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0), gsDPSetTileSize(0, 0, 0, 252, 124), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_metal_light), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 512, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), gsDPLoadBlock(6, 0, 0, 2047, 128), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0), gsDPSetTileSize(1, 0, 0, 252, 124), gsSPDisplayList(luigi_left_thigh_dl), gsSPEndDisplayList(), }; static const Vtx luigi_left_leg_shared_dl_vertex[12] = { {{{71, -45, 0}, 0, {0, 1024}, {0x30, 0x8A, 0x0, 0x0}}}, {{{74, -11, 38}, 0, {0, 1024}, {0x36, 0xDA, 0x6D, 0x0}}}, {{{0, -34, 0}, 0, {0, 1024}, {0xBB, 0x95, 0x0, 0x0}}}, {{{93, 3, 0}, 0, {0, 1024}, {0x7E, 0xF4, 0x0, 0x0}}}, {{{74, -11, -39}, 0, {0, 1024}, {0x35, 0xDB, 0x93, 0x0}}}, {{{3, -3, -33}, 0, {0, 1024}, {0xC5, 0xE8, 0x92, 0x0}}}, {{{-20, 12, 0}, 0, {0, 1024}, {0x82, 0x11, 0x0, 0x0}}}, {{{3, -3, 34}, 0, {0, 1024}, {0xC6, 0xE8, 0x6E, 0x0}}}, {{{7, 38, 21}, 0, {0, 1024}, {0xCD, 0x5E, 0x45, 0x0}}}, {{{80, 44, 24}, 0, {0, 1024}, {0x3E, 0x57, 0x45, 0x0}}}, {{{80, 45, -23}, 0, {0, 1024}, {0x3E, 0x59, 0xBE, 0x0}}}, {{{7, 38, -20}, 0, {0, 1024}, {0xCC, 0x5E, 0xBC, 0x0}}}, }; const Gfx luigi_left_leg_shared_dl[] = { gsSPVertex(luigi_left_leg_shared_dl_vertex + 0, 12, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(3, 1, 0, 0), gsSP1Triangle(3, 0, 4, 0), gsSP1Triangle(4, 0, 2, 0), gsSP1Triangle(5, 4, 2, 0), gsSP1Triangle(6, 5, 2, 0), gsSP1Triangle(6, 2, 7, 0), gsSP1Triangle(7, 2, 1, 0), gsSP1Triangle(7, 1, 8, 0), gsSP1Triangle(1, 9, 8, 0), gsSP1Triangle(3, 9, 1, 0), gsSP1Triangle(3, 10, 9, 0), gsSP1Triangle(3, 4, 10, 0), gsSP1Triangle(10, 4, 11, 0), gsSP1Triangle(5, 11, 4, 0), gsSP1Triangle(6, 11, 5, 0), gsSP1Triangle(6, 8, 11, 0), gsSP1Triangle(6, 7, 8, 0), gsSP1Triangle(11, 8, 10, 0), gsSP1Triangle(9, 10, 8, 0), gsSPEndDisplayList(), }; static const Vtx luigi_left_foot_shared_dl_vertex[28] = { {{{111, 12, -29}, 0, {0, 1024}, {0x2C, 0x77, 0xFE, 0x0}}}, {{{78, 24, -50}, 0, {0, 1024}, {0x2B, 0x78, 0x0, 0x0}}}, {{{111, 13, 27}, 0, {0, 1024}, {0x2A, 0x78, 0x0, 0x0}}}, {{{79, 24, 52}, 0, {0, 1024}, {0x2A, 0x78, 0x0, 0x0}}}, {{{-12, 56, -40}, 0, {0, 1024}, {0x2B, 0x78, 0xFF, 0x0}}}, {{{-11, 57, 45}, 0, {0, 1024}, {0x2A, 0x78, 0xFF, 0x0}}}, {{{-38, 66, -16}, 0, {0, 1024}, {0x2A, 0x78, 0xFF, 0x0}}}, {{{-40, 66, 18}, 0, {0, 1024}, {0x24, 0x7A, 0x2, 0x0}}}, {{{111, 12, -29}, 0, {0, 1024}, {0x4A, 0xAB, 0xC5, 0x0}}}, {{{111, 13, 27}, 0, {0, 1024}, {0x4D, 0xAC, 0x38, 0x0}}}, {{{82, -28, -1}, 0, {0, 1024}, {0x37, 0x8D, 0xFE, 0x0}}}, {{{47, -9, 45}, 0, {0, 1024}, {0x1, 0xB5, 0x67, 0x0}}}, {{{79, 24, 52}, 0, {0, 1024}, {0x1B, 0xCE, 0x72, 0x0}}}, {{{-11, 57, 45}, 0, {0, 1024}, {0xD0, 0x0, 0x76, 0x0}}}, {{{-33, 14, 36}, 0, {0, 1024}, {0xB4, 0xCD, 0x58, 0x0}}}, {{{-40, 66, 18}, 0, {0, 1024}, {0x8D, 0x18, 0x30, 0x0}}}, {{{-52, 17, 0}, 0, {0, 1024}, {0x89, 0xD3, 0xFD, 0x0}}}, {{{-33, 14, 36}, 0, {0, 1024}, {0xB4, 0xCD, 0x58, 0x0}}}, {{{-40, 66, 18}, 0, {0, 1024}, {0x8D, 0x18, 0x30, 0x0}}}, {{{-38, 66, -16}, 0, {0, 1024}, {0x90, 0x18, 0xC8, 0x0}}}, {{{-34, 13, -30}, 0, {0, 1024}, {0xB3, 0xCC, 0xA9, 0x0}}}, {{{-12, 56, -40}, 0, {0, 1024}, {0xCE, 0x0, 0x8B, 0x0}}}, {{{46, -9, -42}, 0, {0, 1024}, {0xFE, 0xB7, 0x98, 0x0}}}, {{{78, 24, -50}, 0, {0, 1024}, {0x13, 0xD1, 0x8B, 0x0}}}, {{{111, 12, -29}, 0, {0, 1024}, {0x4A, 0xAB, 0xC5, 0x0}}}, {{{82, -28, -1}, 0, {0, 1024}, {0x37, 0x8D, 0xFE, 0x0}}}, {{{28, -33, 0}, 0, {0, 1024}, {0xE7, 0x83, 0xFF, 0x0}}}, {{{47, -9, 45}, 0, {0, 1024}, {0x1, 0xB5, 0x67, 0x0}}}, }; const Gfx luigi_left_foot_shared_dl[] = { gsSPVertex(luigi_left_foot_shared_dl_vertex + 0, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(2, 1, 3, 0), gsSP1Triangle(1, 4, 3, 0), gsSP1Triangle(3, 4, 5, 0), gsSP1Triangle(4, 6, 5, 0), gsSP1Triangle(6, 7, 5, 0), gsSP1Triangle(8, 9, 10, 0), gsSP1Triangle(10, 9, 11, 0), gsSP1Triangle(12, 11, 9, 0), gsSP1Triangle(12, 13, 11, 0), gsSP1Triangle(11, 13, 14, 0), gsSP1Triangle(13, 15, 14, 0), gsSPVertex(luigi_left_foot_shared_dl_vertex + 16, 12, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(2, 3, 0, 0), gsSP1Triangle(4, 0, 3, 0), gsSP1Triangle(5, 4, 3, 0), gsSP1Triangle(4, 5, 6, 0), gsSP1Triangle(5, 7, 6, 0), gsSP1Triangle(7, 8, 6, 0), gsSP1Triangle(9, 6, 8, 0), gsSP1Triangle(6, 9, 10, 0), gsSP1Triangle(11, 10, 9, 0), gsSP1Triangle(11, 1, 10, 0), gsSP1Triangle(1, 0, 10, 0), gsSP1Triangle(4, 10, 0, 0), gsSP1Triangle(6, 10, 4, 0), gsSPEndDisplayList(), }; const Gfx luigi_left_foot[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPCopyLightsPlayerPart(SHOES), gsSPDisplayList(luigi_left_foot_shared_dl), gsSPEndDisplayList(), }; static const Vtx luigi_right_thigh_shared_dl_vertex[26] = { {{{19, -11, 40}, 0, {0, 1024}, {0xEE, 0xDA, 0x78, 0x0}}}, {{{21, -45, 0}, 0, {0, 1024}, {0xF1, 0x82, 0x2, 0x0}}}, {{{102, -32, 0}, 0, {0, 1024}, {0x42, 0x93, 0x1, 0x0}}}, {{{0, -35, -1}, 0, {0, 1024}, {0xAE, 0x9F, 0x0, 0x0}}}, {{{-1, -8, 31}, 0, {0, 1024}, {0xAD, 0xE1, 0x5B, 0x0}}}, {{{-4, 34, 19}, 0, {0, 1024}, {0xA7, 0x46, 0x3B, 0x0}}}, {{{15, 43, 24}, 0, {0, 1024}, {0xE9, 0x64, 0x4B, 0x0}}}, {{{97, 38, 19}, 0, {0, 1024}, {0x38, 0x5D, 0x42, 0x0}}}, {{{100, -5, 32}, 0, {0, 1024}, {0x3C, 0xE4, 0x6C, 0x0}}}, {{{122, 7, -1}, 0, {0, 1024}, {0x7F, 0x7, 0xFF, 0x0}}}, {{{99, -5, -34}, 0, {0, 1024}, {0x3B, 0xE2, 0x93, 0x0}}}, {{{18, -11, -42}, 0, {0, 1024}, {0xEE, 0xD9, 0x88, 0x0}}}, {{{-2, -8, -33}, 0, {0, 1024}, {0xAC, 0xE1, 0xA5, 0x0}}}, {{{-17, 2, -1}, 0, {0, 1024}, {0x81, 0xF7, 0x1, 0x0}}}, {{{-5, 34, -21}, 0, {0, 1024}, {0xA6, 0x46, 0xC7, 0x0}}}, {{{14, 43, -26}, 0, {0, 1024}, {0xE8, 0x64, 0xB6, 0x0}}}, {{{96, 38, -21}, 0, {0, 1024}, {0x36, 0x5D, 0xBD, 0x0}}}, {{{14, 43, -26}, 0, {0, 1024}, {0xE8, 0x64, 0xB6, 0x0}}}, {{{97, 38, 19}, 0, {0, 1024}, {0x38, 0x5D, 0x42, 0x0}}}, {{{122, 7, -1}, 0, {0, 1024}, {0x7F, 0x7, 0xFF, 0x0}}}, {{{100, -5, 32}, 0, {0, 1024}, {0x3C, 0xE4, 0x6C, 0x0}}}, {{{99, -5, -34}, 0, {0, 1024}, {0x3B, 0xE2, 0x93, 0x0}}}, {{{18, -11, -42}, 0, {0, 1024}, {0xEE, 0xD9, 0x88, 0x0}}}, {{{-5, 34, -21}, 0, {0, 1024}, {0xA6, 0x46, 0xC7, 0x0}}}, {{{-2, -8, -33}, 0, {0, 1024}, {0xAC, 0xE1, 0xA5, 0x0}}}, {{{-17, 2, -1}, 0, {0, 1024}, {0x81, 0xF7, 0x1, 0x0}}}, }; const Gfx luigi_right_thigh_shared_dl[] = { gsSPVertex(luigi_right_thigh_shared_dl_vertex + 0, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(3, 1, 0, 0), gsSP1Triangle(4, 3, 0, 0), gsSP1Triangle(4, 0, 5, 0), gsSP1Triangle(5, 0, 6, 0), gsSP1Triangle(6, 0, 7, 0), gsSP1Triangle(8, 7, 0, 0), gsSP1Triangle(8, 0, 2, 0), gsSP1Triangle(9, 8, 2, 0), gsSP1Triangle(9, 2, 10, 0), gsSP1Triangle(10, 2, 11, 0), gsSP1Triangle(1, 11, 2, 0), gsSP1Triangle(3, 11, 1, 0), gsSP1Triangle(12, 11, 3, 0), gsSP1Triangle(13, 12, 3, 0), gsSP1Triangle(13, 3, 4, 0), gsSP1Triangle(13, 4, 5, 0), gsSP1Triangle(13, 5, 14, 0), gsSP1Triangle(5, 6, 14, 0), gsSP1Triangle(14, 6, 15, 0), gsSP1Triangle(15, 6, 7, 0), gsSPVertex(luigi_right_thigh_shared_dl_vertex + 16, 10, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(3, 0, 2, 0), gsSP1Triangle(3, 2, 4, 0), gsSP1Triangle(3, 5, 0, 0), gsSP1Triangle(5, 6, 0, 0), gsSP1Triangle(6, 1, 0, 0), gsSP1Triangle(7, 1, 6, 0), gsSP1Triangle(8, 7, 6, 0), gsSP1Triangle(9, 7, 8, 0), gsSPEndDisplayList(), }; const Gfx luigi_right_thigh[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPCopyLightsPlayerPart(PANTS), // gsSPLight(&luigi_blue_lights_group.a, 2), gsSPDisplayList(luigi_right_thigh_shared_dl), gsSPEndDisplayList(), }; static const Vtx luigi_right_leg_shared_dl_vertex[22] = { {{{73, -10, -38}, 0, {0, 1024}, {0xFA, 0x22, 0x86, 0x0}}}, {{{6, 39, -21}, 0, {0, 1024}, {0xCB, 0x5D, 0xBC, 0x0}}}, {{{79, 46, -24}, 0, {0, 1024}, {0xF8, 0x1F, 0x85, 0x0}}}, {{{2, -2, -34}, 0, {0, 1024}, {0xC4, 0xE8, 0x92, 0x0}}}, {{{-20, 12, 0}, 0, {0, 1024}, {0x82, 0x10, 0x1, 0x0}}}, {{{0, -33, 0}, 0, {0, 1024}, {0xBC, 0x95, 0x0, 0x0}}}, {{{73, -10, -38}, 0, {0, 1024}, {0xF1, 0xA3, 0xAB, 0x0}}}, {{{70, -44, 0}, 0, {0, 1024}, {0xF2, 0xA2, 0xAB, 0x0}}}, {{{2, -3, 33}, 0, {0, 1024}, {0xC4, 0xE7, 0x6D, 0x0}}}, {{{74, -10, 38}, 0, {0, 1024}, {0xF2, 0xA3, 0x55, 0x0}}}, {{{70, -44, 0}, 0, {0, 1024}, {0xF2, 0xA3, 0x55, 0x0}}}, {{{7, 39, 20}, 0, {0, 1024}, {0xCC, 0x5E, 0x45, 0x0}}}, {{{74, -10, 38}, 0, {0, 1024}, {0xF9, 0x23, 0x7A, 0x0}}}, {{{80, 46, 23}, 0, {0, 1024}, {0xF8, 0x21, 0x7A, 0x0}}}, {{{80, 46, 23}, 0, {0, 1024}, {0xF4, 0x7E, 0x0, 0x0}}}, {{{79, 46, -24}, 0, {0, 1024}, {0xF4, 0x7E, 0x0, 0x0}}}, {{{95, 4, 0}, 0, {0, 1024}, {0x7E, 0xF4, 0xFF, 0x0}}}, {{{70, -44, 0}, 0, {0, 1024}, {0x71, 0xC5, 0xFF, 0x0}}}, {{{73, -10, -38}, 0, {0, 1024}, {0x6F, 0xE3, 0xCA, 0x0}}}, {{{74, -10, 38}, 0, {0, 1024}, {0x71, 0xE3, 0x33, 0x0}}}, {{{80, 46, 23}, 0, {0, 1024}, {0x79, 0x1C, 0x1B, 0x0}}}, {{{79, 46, -24}, 0, {0, 1024}, {0x78, 0x1B, 0xE1, 0x0}}}, }; const Gfx luigi_right_leg_shared_dl[] = { gsSPVertex(luigi_right_leg_shared_dl_vertex + 0, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(3, 1, 0, 0), gsSP1Triangle(4, 1, 3, 0), gsSP1Triangle(4, 3, 5, 0), gsSP1Triangle(3, 6, 5, 0), gsSP1Triangle(7, 5, 6, 0), gsSP1Triangle(4, 5, 8, 0), gsSP1Triangle(8, 5, 9, 0), gsSP1Triangle(9, 5, 10, 0), gsSP1Triangle(4, 8, 11, 0), gsSP1Triangle(8, 12, 11, 0), gsSP1Triangle(13, 11, 12, 0), gsSP1Triangle(4, 11, 1, 0), gsSP1Triangle(11, 14, 1, 0), gsSP1Triangle(15, 1, 14, 0), gsSPVertex(luigi_right_leg_shared_dl_vertex + 16, 6, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(0, 3, 1, 0), gsSP1Triangle(0, 4, 3, 0), gsSP1Triangle(0, 5, 4, 0), gsSP1Triangle(0, 2, 5, 0), gsSPEndDisplayList(), }; static const Vtx luigi_right_foot_dl_vertex[28] = { {{{-37, 66, 15}, 0, {0, 1024}, {0x29, 0x78, 0xFE, 0x0}}}, {{{-11, 56, -46}, 0, {0, 1024}, {0x2A, 0x78, 0xFE, 0x0}}}, {{{-40, 66, -18}, 0, {0, 1024}, {0x26, 0x79, 0xFD, 0x0}}}, {{{-10, 57, 39}, 0, {0, 1024}, {0x2B, 0x78, 0xFE, 0x0}}}, {{{79, 23, -54}, 0, {0, 1024}, {0x2A, 0x78, 0xFE, 0x0}}}, {{{79, 25, 47}, 0, {0, 1024}, {0x2B, 0x78, 0xFF, 0x0}}}, {{{111, 13, -30}, 0, {0, 1024}, {0x29, 0x78, 0xFF, 0x0}}}, {{{112, 12, 26}, 0, {0, 1024}, {0x2F, 0x76, 0x1, 0x0}}}, {{{112, 12, 26}, 0, {0, 1024}, {0x4C, 0xAC, 0x3B, 0x0}}}, {{{82, -28, 0}, 0, {0, 1024}, {0x36, 0x8D, 0x3, 0x0}}}, {{{111, 13, -30}, 0, {0, 1024}, {0x4C, 0xAB, 0xC8, 0x0}}}, {{{48, -8, 41}, 0, {0, 1024}, {0x0, 0xB9, 0x6A, 0x0}}}, {{{79, 25, 47}, 0, {0, 1024}, {0x15, 0xD6, 0x76, 0x0}}}, {{{-10, 57, 39}, 0, {0, 1024}, {0xD0, 0x1, 0x76, 0x0}}}, {{{-32, 14, 30}, 0, {0, 1024}, {0xB7, 0xCF, 0x5B, 0x0}}}, {{{-37, 66, 15}, 0, {0, 1024}, {0x92, 0x19, 0x3B, 0x0}}}, {{{-32, 14, 30}, 0, {0, 1024}, {0xB7, 0xCF, 0x5B, 0x0}}}, {{{-37, 66, 15}, 0, {0, 1024}, {0x92, 0x19, 0x3B, 0x0}}}, {{{-52, 16, 0}, 0, {0, 1024}, {0x8A, 0xD2, 0x7, 0x0}}}, {{{-40, 66, -18}, 0, {0, 1024}, {0x8C, 0x18, 0xD3, 0x0}}}, {{{-33, 13, -36}, 0, {0, 1024}, {0xB3, 0xCC, 0xA9, 0x0}}}, {{{-11, 56, -46}, 0, {0, 1024}, {0xCE, 0x0, 0x8B, 0x0}}}, {{{47, -10, -46}, 0, {0, 1024}, {0x0, 0xB2, 0x9B, 0x0}}}, {{{79, 23, -54}, 0, {0, 1024}, {0x19, 0xCC, 0x8F, 0x0}}}, {{{111, 13, -30}, 0, {0, 1024}, {0x4C, 0xAB, 0xC8, 0x0}}}, {{{82, -28, 0}, 0, {0, 1024}, {0x36, 0x8D, 0x3, 0x0}}}, {{{29, -32, 0}, 0, {0, 1024}, {0xE6, 0x84, 0x5, 0x0}}}, {{{48, -8, 41}, 0, {0, 1024}, {0x0, 0xB9, 0x6A, 0x0}}}, }; const Gfx luigi_right_foot_dl[] = { gsSPVertex(luigi_right_foot_dl_vertex + 0, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(3, 1, 0, 0), gsSP1Triangle(4, 1, 3, 0), gsSP1Triangle(5, 4, 3, 0), gsSP1Triangle(6, 4, 5, 0), gsSP1Triangle(7, 6, 5, 0), gsSP1Triangle(8, 9, 10, 0), gsSP1Triangle(9, 8, 11, 0), gsSP1Triangle(12, 11, 8, 0), gsSP1Triangle(13, 11, 12, 0), gsSP1Triangle(14, 11, 13, 0), gsSP1Triangle(13, 15, 14, 0), gsSPVertex(luigi_right_foot_dl_vertex + 16, 12, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(3, 2, 1, 0), gsSP1Triangle(2, 3, 4, 0), gsSP1Triangle(5, 4, 3, 0), gsSP1Triangle(6, 4, 5, 0), gsSP1Triangle(7, 6, 5, 0), gsSP1Triangle(7, 8, 6, 0), gsSP1Triangle(9, 6, 8, 0), gsSP1Triangle(6, 9, 10, 0), gsSP1Triangle(11, 10, 9, 0), gsSP1Triangle(11, 0, 10, 0), gsSP1Triangle(0, 2, 10, 0), gsSP1Triangle(4, 10, 2, 0), gsSP1Triangle(6, 10, 4, 0), gsSPEndDisplayList(), }; const Gfx luigi_right_foot[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPCopyLightsPlayerPart(SHOES), gsSPDisplayList(luigi_right_foot_dl), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsDPSetEnvColor(255, 255, 255, 255), gsDPSetAlphaCompare(G_AC_NONE), gsSPEndDisplayList(), }; const Gfx luigi_metal_right_foot[] = { gsSPDisplayList(luigi_right_foot_dl), gsDPPipeSync(), gsSPClearGeometryMode(G_TEXTURE_GEN), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), gsDPSetEnvColor(255, 255, 255, 255), gsDPSetAlphaCompare(G_AC_NONE), gsSPEndDisplayList(), }; static const Vtx luigi_yellow_button_dl_vertex[14] = { {{{1, 78, -32}, 0, {756, 940}, {0xE, 0x77, 0xD6, 0x0}}}, {{{19, 75, -23}, 0, {970, 550}, {0x26, 0x78, 0xEE, 0x0}}}, {{{39, 66, -27}, 0, {882, 72}, {0x41, 0x6A, 0xE4, 0x0}}}, {{{-5, 67, -49}, 0, {296, 972}, {0x3, 0x67, 0xB5, 0x0}}}, {{{8, 57, -61}, 0, {20, 624}, {0x12, 0x52, 0xA1, 0x0}}}, {{{24, 53, -59}, 0, {84, 268}, {0x21, 0x4F, 0xA2, 0x0}}}, {{{40, 56, -47}, 0, {406, -36}, {0x3C, 0x5C, 0xC0, 0x0}}}, {{{19, 75, 24}, 0, {10, 590}, {0x26, 0x78, 0x12, 0x0}}}, {{{1, 78, 33}, 0, {252, 966}, {0xE, 0x77, 0x2A, 0x0}}}, {{{39, 66, 28}, 0, {66, 106}, {0x41, 0x6A, 0x1C, 0x0}}}, {{{-5, 67, 50}, 0, {714, 966}, {0x4, 0x67, 0x4B, 0x0}}}, {{{8, 57, 61}, 0, {946, 602}, {0x14, 0x54, 0x5E, 0x0}}}, {{{24, 53, 60}, 0, {878, 246}, {0x1E, 0x50, 0x5E, 0x0}}}, {{{40, 56, 48}, 0, {536, -34}, {0x3C, 0x5C, 0x40, 0x0}}}, }; static const Vtx luigi_tshirt_shared_dl_vertex[30] = { {{{39, 66, 28}, 0, {0, 0}, {0x41, 0x6A, 0x1C, 0x0}}}, {{{76, 31, 22}, 0, {0, 0}, {0x64, 0x4B, 0x19, 0x0}}}, {{{39, 66, -27}, 0, {0, 0}, {0x41, 0x6A, 0xE4, 0x0}}}, {{{76, 31, -21}, 0, {0, 0}, {0x64, 0x4B, 0xE7, 0x0}}}, {{{95, -2, 19}, 0, {0, 0}, {0x7B, 0x12, 0x1A, 0x0}}}, {{{95, -2, -18}, 0, {0, 0}, {0x7B, 0x12, 0xE6, 0x0}}}, {{{87, -36, 21}, 0, {0, 0}, {0x68, 0xBA, 0x14, 0x0}}}, {{{87, -36, -20}, 0, {0, 0}, {0x68, 0xBA, 0xEC, 0x0}}}, {{{47, -62, 0}, 0, {0, 0}, {0x2C, 0x89, 0x0, 0x0}}}, {{{39, -35, -67}, 0, {0, 0}, {0x1F, 0xCE, 0x8F, 0x0}}}, {{{77, -30, -50}, 0, {0, 0}, {0x57, 0xD7, 0xAD, 0x0}}}, {{{60, -51, -40}, 0, {0, 0}, {0x37, 0x98, 0xD0, 0x0}}}, {{{39, -1, -71}, 0, {0, 0}, {0x27, 0x7, 0x87, 0x0}}}, {{{-1, -13, -74}, 0, {0, 0}, {0x0, 0xEC, 0x83, 0x0}}}, {{{12, -60, -54}, 0, {0, 0}, {0x8, 0x9A, 0xB4, 0x0}}}, {{{4, 26, -73}, 0, {0, 0}, {0xA, 0x18, 0x84, 0x0}}}, {{{4, 26, -73}, 0, {0, 0}, {0xA, 0x18, 0x84, 0x0}}}, {{{36, 44, -60}, 0, {0, 0}, {0x34, 0x35, 0x99, 0x0}}}, {{{39, -1, -71}, 0, {0, 0}, {0x27, 0x7, 0x87, 0x0}}}, {{{74, 10, -49}, 0, {0, 0}, {0x59, 0x23, 0xAC, 0x0}}}, {{{77, -30, -50}, 0, {0, 0}, {0x57, 0xD7, 0xAD, 0x0}}}, {{{39, -35, 68}, 0, {0, 0}, {0x1F, 0xCE, 0x71, 0x0}}}, {{{-1, -14, 75}, 0, {0, 0}, {0x0, 0xEA, 0x7D, 0x0}}}, {{{12, -60, 55}, 0, {0, 0}, {0x8, 0x9A, 0x4B, 0x0}}}, {{{39, -1, 72}, 0, {0, 0}, {0x27, 0x7, 0x79, 0x0}}}, {{{77, -30, 51}, 0, {0, 0}, {0x57, 0xD7, 0x53, 0x0}}}, {{{60, -51, 41}, 0, {0, 0}, {0x37, 0x98, 0x30, 0x0}}}, {{{74, 10, 50}, 0, {0, 0}, {0x59, 0x23, 0x54, 0x0}}}, {{{36, 44, 61}, 0, {0, 0}, {0x34, 0x35, 0x67, 0x0}}}, {{{4, 26, 74}, 0, {0, 0}, {0xC, 0x18, 0x7C, 0x0}}}, }; static const Vtx luigi_pants_overalls_shared_dl_vertex[94] = { {{{19, 75, 24}, 0, {0, 0}, {0x26, 0x78, 0x12, 0x0}}}, {{{1, 78, -32}, 0, {0, 0}, {0xE, 0x77, 0xD6, 0x0}}}, {{{1, 78, 33}, 0, {0, 0}, {0xE, 0x77, 0x2A, 0x0}}}, {{{19, 75, -23}, 0, {0, 0}, {0x26, 0x78, 0xEE, 0x0}}}, {{{39, 66, -27}, 0, {0, 0}, {0x41, 0x6A, 0xE4, 0x0}}}, {{{39, 66, 28}, 0, {0, 0}, {0x41, 0x6A, 0x1C, 0x0}}}, {{{-25, 77, 29}, 0, {0, 0}, {0xEF, 0x7A, 0x21, 0x0}}}, {{{-25, 77, -28}, 0, {0, 0}, {0xEF, 0x7A, 0xDF, 0x0}}}, {{{-5, 67, -49}, 0, {0, 0}, {0x3, 0x67, 0xB5, 0x0}}}, {{{-39, 54, -60}, 0, {0, 0}, {0xD3, 0x44, 0x9E, 0x0}}}, {{{-14, 49, -66}, 0, {0, 0}, {0xFA, 0x3C, 0x90, 0x0}}}, {{{8, 57, -61}, 0, {0, 0}, {0x12, 0x52, 0xA1, 0x0}}}, {{{4, 26, -73}, 0, {0, 0}, {0xA, 0x18, 0x84, 0x0}}}, {{{24, 53, -59}, 0, {0, 0}, {0x21, 0x4F, 0xA2, 0x0}}}, {{{36, 44, -60}, 0, {0, 0}, {0x34, 0x35, 0x99, 0x0}}}, {{{40, 56, -47}, 0, {0, 0}, {0x3C, 0x5C, 0xC0, 0x0}}}, {{{36, 44, -60}, 0, {0, 0}, {0x34, 0x35, 0x99, 0x0}}}, {{{40, 56, -47}, 0, {0, 0}, {0x3C, 0x5C, 0xC0, 0x0}}}, {{{74, 10, -49}, 0, {0, 0}, {0x59, 0x23, 0xAC, 0x0}}}, {{{76, 31, -21}, 0, {0, 0}, {0x64, 0x4B, 0xE7, 0x0}}}, {{{39, 66, -27}, 0, {0, 0}, {0x41, 0x6A, 0xE4, 0x0}}}, {{{95, -2, -18}, 0, {0, 0}, {0x7B, 0x12, 0xE6, 0x0}}}, {{{77, -30, -50}, 0, {0, 0}, {0x57, 0xD7, 0xAD, 0x0}}}, {{{87, -36, -20}, 0, {0, 0}, {0x68, 0xBA, 0xEC, 0x0}}}, {{{60, -51, -40}, 0, {0, 0}, {0x37, 0x98, 0xD0, 0x0}}}, {{{47, -62, 0}, 0, {0, 0}, {0x2C, 0x89, 0x0, 0x0}}}, {{{12, -60, -54}, 0, {0, 0}, {0x8, 0x9A, 0xB4, 0x0}}}, {{{0, -72, 0}, 0, {0, 0}, {0x1, 0x81, 0x0, 0x0}}}, {{{12, -60, 55}, 0, {0, 0}, {0x8, 0x9A, 0x4B, 0x0}}}, {{{60, -51, 41}, 0, {0, 0}, {0x37, 0x98, 0x30, 0x0}}}, {{{87, -36, 21}, 0, {0, 0}, {0x68, 0xBA, 0x14, 0x0}}}, {{{77, -30, 51}, 0, {0, 0}, {0x57, 0xD7, 0x53, 0x0}}}, {{{87, -36, 21}, 0, {0, 0}, {0x68, 0xBA, 0x14, 0x0}}}, {{{95, -2, 19}, 0, {0, 0}, {0x7B, 0x12, 0x1A, 0x0}}}, {{{77, -30, 51}, 0, {0, 0}, {0x57, 0xD7, 0x53, 0x0}}}, {{{74, 10, 50}, 0, {0, 0}, {0x59, 0x23, 0x54, 0x0}}}, {{{76, 31, 22}, 0, {0, 0}, {0x64, 0x4B, 0x19, 0x0}}}, {{{40, 56, 48}, 0, {0, 0}, {0x3C, 0x5C, 0x40, 0x0}}}, {{{39, 66, 28}, 0, {0, 0}, {0x41, 0x6A, 0x1C, 0x0}}}, {{{36, 44, 61}, 0, {0, 0}, {0x34, 0x35, 0x67, 0x0}}}, {{{24, 53, 60}, 0, {0, 0}, {0x1E, 0x50, 0x5E, 0x0}}}, {{{4, 26, 74}, 0, {0, 0}, {0xC, 0x18, 0x7C, 0x0}}}, {{{8, 57, 61}, 0, {0, 0}, {0x14, 0x54, 0x5E, 0x0}}}, {{{-14, 49, 68}, 0, {0, 0}, {0xFD, 0x3D, 0x6F, 0x0}}}, {{{-5, 67, 50}, 0, {0, 0}, {0x4, 0x67, 0x4B, 0x0}}}, {{{-39, 54, 61}, 0, {0, 0}, {0xD3, 0x46, 0x60, 0x0}}}, {{{-25, 77, 29}, 0, {0, 0}, {0xEF, 0x7A, 0x21, 0x0}}}, {{{1, 78, 33}, 0, {0, 0}, {0xE, 0x77, 0x2A, 0x0}}}, {{{-51, 63, 44}, 0, {0, 0}, {0xC7, 0x5A, 0x45, 0x0}}}, {{{-39, 54, 61}, 0, {0, 0}, {0xD3, 0x46, 0x60, 0x0}}}, {{{-25, 77, 29}, 0, {0, 0}, {0xEF, 0x7A, 0x21, 0x0}}}, {{{-83, 45, 25}, 0, {0, 0}, {0x8D, 0x25, 0x28, 0x0}}}, {{{-54, 72, 20}, 0, {0, 0}, {0xC7, 0x70, 0x13, 0x0}}}, {{{-54, 72, -19}, 0, {0, 0}, {0xC7, 0x70, 0xEC, 0x0}}}, {{{-25, 77, -28}, 0, {0, 0}, {0xEF, 0x7A, 0xDF, 0x0}}}, {{{-51, 62, -44}, 0, {0, 0}, {0xC5, 0x58, 0xB9, 0x0}}}, {{{-39, 54, -60}, 0, {0, 0}, {0xD3, 0x44, 0x9E, 0x0}}}, {{{-83, 45, -23}, 0, {0, 0}, {0x8D, 0x25, 0xD9, 0x0}}}, {{{-37, 20, -72}, 0, {0, 0}, {0xCC, 0xB, 0x8D, 0x0}}}, {{{-14, 49, -66}, 0, {0, 0}, {0xFA, 0x3C, 0x90, 0x0}}}, {{{4, 26, -73}, 0, {0, 0}, {0xA, 0x18, 0x84, 0x0}}}, {{{-1, -13, -74}, 0, {0, 0}, {0x0, 0xEC, 0x83, 0x0}}}, {{{-37, -27, -69}, 0, {0, 0}, {0xCB, 0xDC, 0x92, 0x0}}}, {{{12, -60, -54}, 0, {0, 0}, {0x8, 0x9A, 0xB4, 0x0}}}, {{{-39, -57, -47}, 0, {0, 0}, {0xCA, 0x9F, 0xC2, 0x0}}}, {{{-37, -27, -69}, 0, {0, 0}, {0xCB, 0xDC, 0x92, 0x0}}}, {{{12, -60, -54}, 0, {0, 0}, {0x8, 0x9A, 0xB4, 0x0}}}, {{{0, -72, 0}, 0, {0, 0}, {0x1, 0x81, 0x0, 0x0}}}, {{{-40, -65, 0}, 0, {0, 0}, {0xC5, 0x8F, 0x0, 0x0}}}, {{{-39, -57, 48}, 0, {0, 0}, {0xCA, 0x9F, 0x3E, 0x0}}}, {{{12, -60, 55}, 0, {0, 0}, {0x8, 0x9A, 0x4B, 0x0}}}, {{{-37, -27, 70}, 0, {0, 0}, {0xCB, 0xDB, 0x6D, 0x0}}}, {{{-1, -14, 75}, 0, {0, 0}, {0x0, 0xEA, 0x7D, 0x0}}}, {{{-37, 20, 74}, 0, {0, 0}, {0xCC, 0xA, 0x74, 0x0}}}, {{{4, 26, 74}, 0, {0, 0}, {0xC, 0x18, 0x7C, 0x0}}}, {{{-14, 49, 68}, 0, {0, 0}, {0xFD, 0x3D, 0x6F, 0x0}}}, {{{-39, 54, 61}, 0, {0, 0}, {0xD3, 0x46, 0x60, 0x0}}}, {{{-83, 45, 25}, 0, {0, 0}, {0x8D, 0x25, 0x28, 0x0}}}, {{{-70, -30, 31}, 0, {0, 0}, {0x91, 0xD0, 0x28, 0x0}}}, {{{-83, 45, -23}, 0, {0, 0}, {0x8D, 0x25, 0xD9, 0x0}}}, {{{-83, 45, -23}, 0, {0, 0}, {0x8D, 0x25, 0xD9, 0x0}}}, {{{-83, 45, 25}, 0, {0, 0}, {0x8D, 0x25, 0x28, 0x0}}}, {{{-54, 72, 20}, 0, {0, 0}, {0xC7, 0x70, 0x13, 0x0}}}, {{{-54, 72, -19}, 0, {0, 0}, {0xC7, 0x70, 0xEC, 0x0}}}, {{{-51, 62, -44}, 0, {0, 0}, {0xC5, 0x58, 0xB9, 0x0}}}, {{{-70, -30, -30}, 0, {0, 0}, {0x91, 0xD1, 0xD8, 0x0}}}, {{{-70, -30, 31}, 0, {0, 0}, {0x91, 0xD0, 0x28, 0x0}}}, {{{-40, -65, 0}, 0, {0, 0}, {0xC5, 0x8F, 0x0, 0x0}}}, {{{-39, -57, -47}, 0, {0, 0}, {0xCA, 0x9F, 0xC2, 0x0}}}, {{{-37, -27, -69}, 0, {0, 0}, {0xCB, 0xDC, 0x92, 0x0}}}, {{{-37, 20, -72}, 0, {0, 0}, {0xCC, 0xB, 0x8D, 0x0}}}, {{{-39, -57, 48}, 0, {0, 0}, {0xCA, 0x9F, 0x3E, 0x0}}}, {{{-37, -27, 70}, 0, {0, 0}, {0xCB, 0xDB, 0x6D, 0x0}}}, {{{-37, 20, 74}, 0, {0, 0}, {0xCC, 0xA, 0x74, 0x0}}}, }; const Gfx luigi_yellow_button_dl[] = { gsSPVertex(luigi_yellow_button_dl_vertex + 0, 14, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(0, 2, 3, 0), gsSP1Triangle(3, 2, 4, 0), gsSP1Triangle(4, 2, 5, 0), gsSP1Triangle(6, 5, 2, 0), gsSP1Triangle(7, 8, 9, 0), gsSP1Triangle(10, 9, 8, 0), gsSP1Triangle(11, 9, 10, 0), gsSP1Triangle(12, 9, 11, 0), gsSP1Triangle(13, 9, 12, 0), gsSPEndDisplayList(), }; const Gfx luigi_pants_overalls_shared_dl[] = { gsSPVertex(luigi_pants_overalls_shared_dl_vertex + 0, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(3, 1, 0, 0), gsSP1Triangle(3, 0, 4, 0), gsSP1Triangle(0, 5, 4, 0), gsSP1Triangle(1, 6, 2, 0), gsSP1Triangle(7, 6, 1, 0), gsSP1Triangle(8, 7, 1, 0), gsSP1Triangle(8, 9, 7, 0), gsSP1Triangle(8, 10, 9, 0), gsSP1Triangle(8, 11, 10, 0), gsSP1Triangle(10, 11, 12, 0), gsSP1Triangle(11, 13, 12, 0), gsSP1Triangle(13, 14, 12, 0), gsSP1Triangle(14, 13, 15, 0), gsSPVertex(luigi_pants_overalls_shared_dl_vertex + 16, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(2, 1, 3, 0), gsSP1Triangle(4, 3, 1, 0), gsSP1Triangle(3, 5, 2, 0), gsSP1Triangle(5, 6, 2, 0), gsSP1Triangle(7, 6, 5, 0), gsSP1Triangle(7, 8, 6, 0), gsSP1Triangle(8, 7, 9, 0), gsSP1Triangle(9, 10, 8, 0), gsSP1Triangle(11, 10, 9, 0), gsSP1Triangle(9, 12, 11, 0), gsSP1Triangle(13, 12, 9, 0), gsSP1Triangle(13, 9, 14, 0), gsSP1Triangle(14, 15, 13, 0), gsSPVertex(luigi_pants_overalls_shared_dl_vertex + 32, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(2, 1, 3, 0), gsSP1Triangle(4, 3, 1, 0), gsSP1Triangle(4, 5, 3, 0), gsSP1Triangle(5, 4, 6, 0), gsSP1Triangle(7, 3, 5, 0), gsSP1Triangle(7, 5, 8, 0), gsSP1Triangle(7, 8, 9, 0), gsSP1Triangle(10, 9, 8, 0), gsSP1Triangle(11, 9, 10, 0), gsSP1Triangle(11, 10, 12, 0), gsSP1Triangle(11, 12, 13, 0), gsSP1Triangle(13, 12, 14, 0), gsSP1Triangle(15, 14, 12, 0), gsSPVertex(luigi_pants_overalls_shared_dl_vertex + 48, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(1, 0, 3, 0), gsSP1Triangle(4, 3, 0, 0), gsSP1Triangle(2, 4, 0, 0), gsSP1Triangle(4, 2, 5, 0), gsSP1Triangle(6, 5, 2, 0), gsSP1Triangle(6, 7, 5, 0), gsSP1Triangle(7, 6, 8, 0), gsSP1Triangle(8, 9, 7, 0), gsSP1Triangle(10, 9, 8, 0), gsSP1Triangle(8, 11, 10, 0), gsSP1Triangle(11, 12, 10, 0), gsSP1Triangle(10, 12, 13, 0), gsSP1Triangle(10, 13, 14, 0), gsSP1Triangle(14, 13, 15, 0), gsSPVertex(luigi_pants_overalls_shared_dl_vertex + 64, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(2, 3, 0, 0), gsSP1Triangle(4, 0, 3, 0), gsSP1Triangle(4, 3, 5, 0), gsSP1Triangle(5, 3, 6, 0), gsSP1Triangle(7, 5, 6, 0), gsSP1Triangle(7, 6, 8, 0), gsSP1Triangle(9, 7, 8, 0), gsSP1Triangle(10, 9, 8, 0), gsSP1Triangle(10, 11, 9, 0), gsSP1Triangle(9, 11, 12, 0), gsSP1Triangle(9, 12, 13, 0), gsSP1Triangle(13, 14, 9, 0), gsSP1Triangle(14, 13, 15, 0), gsSPVertex(luigi_pants_overalls_shared_dl_vertex + 80, 14, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(3, 0, 2, 0), gsSP1Triangle(3, 4, 0, 0), gsSP1Triangle(5, 6, 0, 0), gsSP1Triangle(5, 7, 6, 0), gsSP1Triangle(5, 8, 7, 0), gsSP1Triangle(8, 5, 9, 0), gsSP1Triangle(9, 5, 10, 0), gsSP1Triangle(0, 10, 5, 0), gsSP1Triangle(11, 6, 7, 0), gsSP1Triangle(12, 6, 11, 0), gsSP1Triangle(12, 13, 6, 0), gsSPEndDisplayList(), }; const Gfx luigi_tshirt_shared_dl[] = { gsSPVertex(luigi_tshirt_shared_dl_vertex + 0, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(1, 3, 2, 0), gsSP1Triangle(3, 1, 4, 0), gsSP1Triangle(5, 3, 4, 0), gsSP1Triangle(4, 6, 5, 0), gsSP1Triangle(6, 7, 5, 0), gsSP1Triangle(7, 6, 8, 0), gsSP1Triangle(9, 10, 11, 0), gsSP1Triangle(9, 12, 10, 0), gsSP1Triangle(12, 9, 13, 0), gsSP1Triangle(9, 14, 13, 0), gsSP1Triangle(11, 14, 9, 0), gsSP1Triangle(15, 12, 13, 0), gsSPVertex(luigi_tshirt_shared_dl_vertex + 16, 14, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(2, 1, 3, 0), gsSP1Triangle(2, 3, 4, 0), gsSP1Triangle(5, 6, 7, 0), gsSP1Triangle(8, 6, 5, 0), gsSP1Triangle(5, 9, 8, 0), gsSP1Triangle(5, 10, 9, 0), gsSP1Triangle(10, 5, 7, 0), gsSP1Triangle(8, 9, 11, 0), gsSP1Triangle(8, 11, 12, 0), gsSP1Triangle(8, 12, 13, 0), gsSP1Triangle(6, 8, 13, 0), gsSPEndDisplayList(), }; const Gfx luigi_torso_dl[] = { gsSPDisplayList(luigi_pants_overalls_shared_dl), gsSPCopyLightsPlayerPart(SHIRT), // gsSPLight(&luigi_green_lights_group.a, 2), gsSPDisplayList(luigi_tshirt_shared_dl), gsSPEndDisplayList(), }; const Gfx luigi_torso[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_yellow_button), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_yellow_button_dl), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPDisplayList(luigi_torso_dl), gsSPEndDisplayList(), }; const Gfx luigi_metal_torso_shared_dl[] = { gsSPDisplayList(luigi_yellow_button_dl), gsSPDisplayList(luigi_pants_overalls_shared_dl), gsSPDisplayList(luigi_tshirt_shared_dl), gsSPEndDisplayList(), }; Vtx luigi_l_logo_dl_vertex[7] = { {{ {186, 83, 26}, 0, {730, 764}, {78, 83, 57, 255} }}, {{ {147, 31, 77}, 0, {1200, 1106}, {254, 70, 106, 255} }}, {{ {247, 60, 57}, 0, {1018, 94}, {63, 72, 83, 255} }}, {{ {273, 73, 0}, 0, {474, -182}, {96, 83, 0, 255} }}, {{ {186, 83, -25}, 0, {252, 768}, {78, 83, 199, 255} }}, {{ {247, 60, -56}, 0, {-38, 100}, {63, 73, 173, 255} }}, {{ {147, 31, -76}, 0, {-206, 1116}, {253, 70, 150, 255} }}, }; Vtx luigi_eyes_cap_on_dl_vertex[12] = { {{ {78, 89, -20}, 0, {282, 1028}, {67, 68, 173, 255} }}, {{ {135, 74, -54}, 0, {-84, 412}, {25, 91, 171, 255} }}, {{ {94, 76, -56}, 0, {-98, 860}, {17, 100, 180, 255} }}, {{ {166, 84, -26}, 0, {202, 68}, {161, 84, 247, 255} }}, {{ {135, 91, 0}, 0, {480, 402}, {10, 127, 0, 255} }}, {{ {88, 92, 0}, 0, {488, 916}, {97, 82, 0, 255} }}, {{ {78, 89, 20}, 0, {700, 1020}, {70, 67, 82, 255} }}, {{ {166, 84, 27}, 0, {756, 60}, {161, 84, 9, 255} }}, {{ {135, 74, 55}, 0, {1054, 392}, {25, 91, 85, 255} }}, {{ {94, 76, 57}, 0, {1084, 840}, {17, 101, 76, 255} }}, {{ {147, 31, 77}, 0, {1282, 258}, {254, 70, 106, 255} }}, {{ {147, 31, -76}, 0, {-318, 286}, {253, 70, 150, 255} }}, }; Vtx luigi_hair_sideburn_cap_on_dl_vertex[12] = { {{ {88, 42, -76}, 0, {-70, 700}, {7, 42, 136, 255} }}, {{ {147, 31, -76}, 0, {90, -58}, {253, 70, 150, 255} }}, {{ {115, -12, -91}, 0, {916, 184}, {235, 33, 135, 255} }}, {{ {80, -24, -92}, 0, {1150, 582}, {0, 89, 165, 255} }}, {{ {32, -5, -84}, 0, {842, 1210}, {187, 248, 149, 255} }}, {{ {34, 34, -78}, 0, {118, 1334}, {213, 31, 140, 255} }}, {{ {88, 42, 77}, 0, {-74, 726}, {6, 43, 119, 255} }}, {{ {115, -11, 93}, 0, {922, 122}, {235, 33, 121, 255} }}, {{ {147, 31, 77}, 0, {22, -68}, {254, 70, 106, 255} }}, {{ {80, -24, 93}, 0, {1238, 518}, {254, 89, 91, 255} }}, {{ {32, -5, 85}, 0, {968, 1192}, {187, 248, 107, 255} }}, {{ {34, 34, 79}, 0, {196, 1366}, {213, 31, 116, 255} }}, }; Vtx luigi_mustache_cap_on_dl_vertex[21] = { {{ {78, 89, 20}, 0, {224, 146}, {70, 67, 82, 255} }}, {{ {58, 93, 28}, 0, {342, 368}, {20, 35, 120, 255} }}, {{ {66, 76, 68}, 0, {898, -18}, {7, 85, 94, 255} }}, {{ {35, 79, 58}, 0, {824, 500}, {211, 87, 81, 255} }}, {{ {35, 94, 27}, 0, {354, 690}, {183, 45, 94, 255} }}, {{ {13, 83, 24}, 0, {442, 982}, {173, 91, 31, 255} }}, {{ {24, 91, 0}, 0, {70, 924}, {139, 50, 0, 255} }}, {{ {-7, 40, 43}, 0, {892, 1090}, {147, 20, 62, 255} }}, {{ {34, 34, 79}, 0, {1296, 310}, {213, 31, 116, 255} }}, {{ {35, 94, -26}, 0, {340, 684}, {184, 46, 162, 255} }}, {{ {13, 83, -24}, 0, {394, 998}, {174, 91, 224, 255} }}, {{ {24, 91, 0}, 0, {50, 900}, {139, 50, 0, 255} }}, {{ {35, 79, -57}, 0, {792, 544}, {211, 86, 174, 255} }}, {{ {58, 93, -27}, 0, {362, 344}, {18, 35, 135, 255} }}, {{ {66, 76, -67}, 0, {922, -4}, {7, 85, 162, 255} }}, {{ {78, 89, -20}, 0, {274, 100}, {67, 68, 173, 255} }}, {{ {34, 34, -78}, 0, {1250, 390}, {213, 31, 140, 255} }}, {{ {35, 79, -57}, 0, {792, 544}, {211, 86, 174, 255} }}, {{ {66, 76, -67}, 0, {922, -4}, {7, 85, 162, 255} }}, {{ {-7, 40, -42}, 0, {806, 1162}, {147, 19, 194, 255} }}, {{ {13, 83, -24}, 0, {394, 998}, {174, 91, 224, 255} }}, }; Vtx luigi_face_cap_dl_vertex[43] = { {{ {163, 124, -53}, 0, {0, 0}, {227, 81, 163, 255} }}, {{ {147, 31, -76}, 0, {0, 0}, {253, 70, 150, 255} }}, {{ {166, 84, -26}, 0, {0, 0}, {161, 84, 247, 255} }}, {{ {186, 83, -25}, 0, {0, 0}, {78, 83, 199, 255} }}, {{ {171, 155, 0}, 0, {0, 0}, {252, 127, 255, 255} }}, {{ {166, 84, 27}, 0, {0, 0}, {161, 84, 9, 255} }}, {{ {163, 125, 54}, 0, {0, 0}, {228, 82, 93, 255} }}, {{ {147, 31, 77}, 0, {0, 0}, {254, 70, 106, 255} }}, {{ {186, 83, 26}, 0, {0, 0}, {78, 83, 57, 255} }}, {{ {185, -5, -117}, 0, {0, 0}, {30, 9, 133, 255} }}, {{ {247, 60, -56}, 0, {0, 0}, {63, 73, 173, 255} }}, {{ {115, -12, -91}, 0, {0, 0}, {235, 33, 135, 255} }}, {{ {129, -50, -108}, 0, {0, 0}, {232, 224, 135, 255} }}, {{ {165, -90, -61}, 0, {0, 0}, {73, 168, 200, 255} }}, {{ {270, -2, -34}, 0, {0, 0}, {111, 212, 213, 255} }}, {{ {273, 73, 0}, 0, {0, 0}, {96, 83, 0, 255} }}, {{ {273, 73, 0}, 0, {0, 0}, {96, 83, 0, 255} }}, {{ {270, -2, 34}, 0, {0, 0}, {111, 212, 43, 255} }}, {{ {270, -2, -34}, 0, {0, 0}, {111, 212, 213, 255} }}, {{ {247, 60, 57}, 0, {0, 0}, {63, 72, 83, 255} }}, {{ {185, -5, 117}, 0, {0, 0}, {31, 9, 123, 255} }}, {{ {147, 31, 77}, 0, {0, 0}, {254, 70, 106, 255} }}, {{ {115, -11, 93}, 0, {0, 0}, {235, 33, 121, 255} }}, {{ {129, -50, 108}, 0, {0, 0}, {233, 222, 120, 255} }}, {{ {88, -51, 74}, 0, {0, 0}, {208, 190, 97, 255} }}, {{ {62, -96, 42}, 0, {0, 0}, {209, 168, 79, 255} }}, {{ {77, -135, 42}, 0, {0, 0}, {188, 162, 53, 255} }}, {{ {77, -135, -41}, 0, {0, 0}, {189, 162, 204, 255} }}, {{ {62, -96, -42}, 0, {0, 0}, {209, 169, 176, 255} }}, {{ {129, -50, -108}, 0, {0, 0}, {232, 224, 135, 255} }}, {{ {88, -51, -73}, 0, {0, 0}, {207, 192, 158, 255} }}, {{ {115, -12, -91}, 0, {0, 0}, {235, 33, 135, 255} }}, {{ {129, -50, -108}, 0, {0, 0}, {232, 224, 135, 255} }}, {{ {124, -138, -40}, 0, {0, 0}, {40, 144, 210, 255} }}, {{ {77, -135, -41}, 0, {0, 0}, {189, 162, 204, 255} }}, {{ {165, -90, -61}, 0, {0, 0}, {73, 168, 200, 255} }}, {{ {124, -138, 41}, 0, {0, 0}, {41, 145, 46, 255} }}, {{ {165, -89, 62}, 0, {0, 0}, {73, 169, 57, 255} }}, {{ {270, -2, -34}, 0, {0, 0}, {111, 212, 213, 255} }}, {{ {270, -2, 34}, 0, {0, 0}, {111, 212, 43, 255} }}, {{ {185, -5, 117}, 0, {0, 0}, {31, 9, 123, 255} }}, {{ {129, -50, 108}, 0, {0, 0}, {233, 222, 120, 255} }}, {{ {77, -135, 42}, 0, {0, 0}, {188, 162, 53, 255} }}, }; Vtx luigi_face_part_cap_on_dl_vertex[88] = { {{ {66, 76, 68}, 0, {0, 0}, {7, 85, 94, 255} }}, {{ {94, 76, 57}, 0, {0, 0}, {17, 101, 76, 255} }}, {{ {78, 89, 20}, 0, {0, 0}, {70, 67, 82, 255} }}, {{ {88, 42, 77}, 0, {0, 0}, {6, 43, 119, 255} }}, {{ {34, 34, 79}, 0, {0, 0}, {213, 31, 116, 255} }}, {{ {135, 74, 55}, 0, {0, 0}, {25, 91, 85, 255} }}, {{ {147, 31, 77}, 0, {0, 0}, {254, 70, 106, 255} }}, {{ {13, 83, -24}, 0, {0, 0}, {174, 91, 224, 255} }}, {{ {13, 83, 24}, 0, {0, 0}, {173, 91, 31, 255} }}, {{ {24, 91, 0}, 0, {0, 0}, {139, 50, 0, 255} }}, {{ {-19, 46, 0}, 0, {0, 0}, {131, 25, 0, 255} }}, {{ {-7, 40, -42}, 0, {0, 0}, {147, 19, 194, 255} }}, {{ {12, -51, -34}, 0, {0, 0}, {132, 0, 227, 255} }}, {{ {32, -5, -84}, 0, {0, 0}, {187, 248, 149, 255} }}, {{ {34, 34, -78}, 0, {0, 0}, {213, 31, 140, 255} }}, {{ {51, -44, -64}, 0, {0, 0}, {208, 194, 156, 255} }}, {{ {51, -44, -64}, 0, {0, 0}, {208, 194, 156, 255} }}, {{ {32, -5, -84}, 0, {0, 0}, {187, 248, 149, 255} }}, {{ {57, -27, -110}, 0, {0, 0}, {217, 254, 135, 255} }}, {{ {80, -24, -92}, 0, {0, 0}, {0, 89, 165, 255} }}, {{ {95, -31, -110}, 0, {0, 0}, {43, 243, 137, 255} }}, {{ {115, -12, -91}, 0, {0, 0}, {235, 33, 135, 255} }}, {{ {88, -51, -73}, 0, {0, 0}, {207, 192, 158, 255} }}, {{ {13, 83, 24}, 0, {0, 0}, {173, 91, 31, 255} }}, {{ {-19, 46, 0}, 0, {0, 0}, {131, 25, 0, 255} }}, {{ {-7, 40, 43}, 0, {0, 0}, {147, 20, 62, 255} }}, {{ {12, -51, 35}, 0, {0, 0}, {133, 0, 30, 255} }}, {{ {12, -51, -34}, 0, {0, 0}, {132, 0, 227, 255} }}, {{ {26, -79, 0}, 0, {0, 0}, {160, 172, 0, 255} }}, {{ {32, -5, 85}, 0, {0, 0}, {187, 248, 107, 255} }}, {{ {34, 34, 79}, 0, {0, 0}, {213, 31, 116, 255} }}, {{ {51, -44, 65}, 0, {0, 0}, {208, 193, 100, 255} }}, {{ {51, -44, 65}, 0, {0, 0}, {208, 193, 100, 255} }}, {{ {57, -27, 111}, 0, {0, 0}, {217, 254, 121, 255} }}, {{ {32, -5, 85}, 0, {0, 0}, {187, 248, 107, 255} }}, {{ {88, -51, 74}, 0, {0, 0}, {208, 190, 97, 255} }}, {{ {95, -31, 111}, 0, {0, 0}, {42, 241, 119, 255} }}, {{ {115, -11, 93}, 0, {0, 0}, {235, 33, 121, 255} }}, {{ {80, -24, 93}, 0, {0, 0}, {254, 89, 91, 255} }}, {{ {88, 42, -76}, 0, {0, 0}, {7, 42, 136, 255} }}, {{ {135, 74, -54}, 0, {0, 0}, {25, 91, 171, 255} }}, {{ {147, 31, -76}, 0, {0, 0}, {253, 70, 150, 255} }}, {{ {94, 76, -56}, 0, {0, 0}, {17, 100, 180, 255} }}, {{ {66, 76, -67}, 0, {0, 0}, {7, 85, 162, 255} }}, {{ {34, 34, -78}, 0, {0, 0}, {213, 31, 140, 255} }}, {{ {78, 89, -20}, 0, {0, 0}, {67, 68, 173, 255} }}, {{ {35, 94, 27}, 0, {0, 0}, {183, 45, 94, 255} }}, {{ {15, 111, 0}, 0, {0, 0}, {132, 230, 254, 255} }}, {{ {24, 91, 0}, 0, {0, 0}, {139, 50, 0, 255} }}, {{ {29, 112, 36}, 0, {0, 0}, {179, 226, 96, 255} }}, {{ {58, 93, 28}, 0, {0, 0}, {20, 35, 120, 255} }}, {{ {55, 112, 41}, 0, {0, 0}, {255, 220, 122, 255} }}, {{ {81, 112, 36}, 0, {0, 0}, {75, 223, 97, 255} }}, {{ {78, 89, 20}, 0, {0, 0}, {70, 67, 82, 255} }}, {{ {96, 113, 0}, 0, {0, 0}, {125, 234, 0, 255} }}, {{ {88, 92, 0}, 0, {0, 0}, {97, 82, 0, 255} }}, {{ {78, 89, -20}, 0, {0, 0}, {67, 68, 173, 255} }}, {{ {81, 112, -35}, 0, {0, 0}, {75, 224, 158, 255} }}, {{ {58, 93, -27}, 0, {0, 0}, {18, 35, 135, 255} }}, {{ {55, 112, -40}, 0, {0, 0}, {255, 220, 134, 255} }}, {{ {29, 112, -35}, 0, {0, 0}, {178, 228, 160, 255} }}, {{ {35, 94, -26}, 0, {0, 0}, {184, 46, 162, 255} }}, {{ {29, 112, -35}, 0, {0, 0}, {178, 228, 160, 255} }}, {{ {15, 111, 0}, 0, {0, 0}, {132, 230, 254, 255} }}, {{ {32, 141, -35}, 0, {0, 0}, {191, 64, 167, 255} }}, {{ {15, 141, 0}, 0, {0, 0}, {142, 56, 254, 255} }}, {{ {29, 112, 36}, 0, {0, 0}, {179, 226, 96, 255} }}, {{ {32, 141, 36}, 0, {0, 0}, {193, 65, 89, 255} }}, {{ {55, 112, 41}, 0, {0, 0}, {255, 220, 122, 255} }}, {{ {58, 141, 41}, 0, {0, 0}, {0, 67, 108, 255} }}, {{ {82, 142, 36}, 0, {0, 0}, {69, 61, 88, 255} }}, {{ {81, 112, 36}, 0, {0, 0}, {75, 223, 97, 255} }}, {{ {96, 113, 0}, 0, {0, 0}, {125, 234, 0, 255} }}, {{ {96, 142, 0}, 0, {0, 0}, {117, 50, 255, 255} }}, {{ {81, 112, -35}, 0, {0, 0}, {75, 224, 158, 255} }}, {{ {82, 142, -35}, 0, {0, 0}, {69, 60, 168, 255} }}, {{ {55, 112, -40}, 0, {0, 0}, {255, 220, 134, 255} }}, {{ {58, 141, -40}, 0, {0, 0}, {0, 66, 147, 255} }}, {{ {58, 141, -40}, 0, {0, 0}, {0, 66, 147, 255} }}, {{ {32, 141, -35}, 0, {0, 0}, {191, 64, 167, 255} }}, {{ {39, 156, 0}, 0, {0, 0}, {224, 123, 0, 255} }}, {{ {15, 141, 0}, 0, {0, 0}, {142, 56, 254, 255} }}, {{ {32, 141, 36}, 0, {0, 0}, {193, 65, 89, 255} }}, {{ {58, 141, 41}, 0, {0, 0}, {0, 67, 108, 255} }}, {{ {77, 157, 0}, 0, {0, 0}, {35, 122, 0, 255} }}, {{ {82, 142, 36}, 0, {0, 0}, {69, 61, 88, 255} }}, {{ {96, 142, 0}, 0, {0, 0}, {117, 50, 255, 255} }}, {{ {82, 142, -35}, 0, {0, 0}, {69, 60, 168, 255} }}, }; Vtx luigi_face_back_hair_cap_on_dl_vertex[24] = { {{ {88, -51, -73}, 0, {0, 0}, {207, 192, 158, 255} }}, {{ {62, -96, -42}, 0, {0, 0}, {209, 169, 176, 255} }}, {{ {51, -44, -64}, 0, {0, 0}, {208, 194, 156, 255} }}, {{ {46, -107, -45}, 0, {0, 0}, {60, 152, 215, 255} }}, {{ {24, -109, -21}, 0, {0, 0}, {239, 156, 77, 255} }}, {{ {26, -79, 0}, 0, {0, 0}, {160, 172, 0, 255} }}, {{ {62, -96, 42}, 0, {0, 0}, {209, 168, 79, 255} }}, {{ {24, -109, 21}, 0, {0, 0}, {239, 156, 179, 255} }}, {{ {46, -107, 45}, 0, {0, 0}, {60, 152, 41, 255} }}, {{ {51, -44, 65}, 0, {0, 0}, {208, 193, 100, 255} }}, {{ {88, -51, 74}, 0, {0, 0}, {208, 190, 97, 255} }}, {{ {19, -78, 73}, 0, {0, 0}, {226, 4, 123, 255} }}, {{ {12, -51, 35}, 0, {0, 0}, {133, 0, 30, 255} }}, {{ {-3, -81, 44}, 0, {0, 0}, {129, 11, 1, 255} }}, {{ {5, -113, 53}, 0, {0, 0}, {185, 158, 40, 255} }}, {{ {19, -78, -73}, 0, {0, 0}, {227, 5, 132, 255} }}, {{ {5, -113, -53}, 0, {0, 0}, {185, 158, 216, 255} }}, {{ {19, -78, -73}, 0, {0, 0}, {227, 5, 132, 255} }}, {{ {46, -107, -45}, 0, {0, 0}, {60, 152, 215, 255} }}, {{ {24, -109, -21}, 0, {0, 0}, {239, 156, 77, 255} }}, {{ {-3, -81, -44}, 0, {0, 0}, {129, 11, 255, 255} }}, {{ {26, -79, 0}, 0, {0, 0}, {160, 172, 0, 255} }}, {{ {12, -51, -34}, 0, {0, 0}, {132, 0, 227, 255} }}, {{ {51, -44, -64}, 0, {0, 0}, {208, 194, 156, 255} }}, }; Gfx luigi_l_logo_dl[] = { gsSPVertex(luigi_l_logo_dl_vertex + 0, 7, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(3, 0, 2, 0), gsSP1Triangle(4, 0, 3, 0), gsSP1Triangle(5, 4, 3, 0), gsSP1Triangle(6, 4, 5, 0), gsSPEndDisplayList(), }; Gfx luigi_eyes_cap_on_dl[] = { gsSPVertex(luigi_eyes_cap_on_dl_vertex + 0, 12, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(3, 1, 0, 0), gsSP1Triangle(4, 3, 0, 0), gsSP1Triangle(5, 4, 0, 0), gsSP1Triangle(5, 6, 4, 0), gsSP1Triangle(4, 6, 7, 0), gsSP1Triangle(7, 6, 8, 0), gsSP1Triangle(9, 8, 6, 0), gsSP1Triangle(7, 8, 10, 0), gsSP1Triangle(3, 11, 1, 0), gsSP1Triangle(4, 7, 3, 0), gsSPEndDisplayList(), }; Gfx luigi_hair_sideburn_cap_on_dl[] = { gsSPVertex(luigi_hair_sideburn_cap_on_dl_vertex + 0, 12, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(3, 0, 2, 0), gsSP1Triangle(3, 4, 0, 0), gsSP1Triangle(4, 5, 0, 0), gsSP1Triangle(6, 7, 8, 0), gsSP1Triangle(6, 9, 7, 0), gsSP1Triangle(10, 9, 6, 0), gsSP1Triangle(11, 10, 6, 0), gsSPEndDisplayList(), }; Gfx luigi_mustache_cap_on_dl[] = { gsSPVertex(luigi_mustache_cap_on_dl_vertex + 0, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(1, 3, 2, 0), gsSP1Triangle(4, 3, 1, 0), gsSP1Triangle(3, 4, 5, 0), gsSP1Triangle(4, 6, 5, 0), gsSP1Triangle(3, 5, 7, 0), gsSP1Triangle(3, 7, 8, 0), gsSP1Triangle(8, 2, 3, 0), gsSP1Triangle(9, 10, 11, 0), gsSP1Triangle(12, 10, 9, 0), gsSP1Triangle(9, 13, 12, 0), gsSP1Triangle(13, 14, 12, 0), gsSP1Triangle(15, 14, 13, 0), gsSPVertex(luigi_mustache_cap_on_dl_vertex + 16, 5, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(1, 0, 3, 0), gsSP1Triangle(1, 3, 4, 0), gsSPEndDisplayList(), }; Gfx luigi_face_part_cap_on_dl[] = { gsSPVertex(luigi_face_part_cap_on_dl_vertex + 0, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(3, 1, 0, 0), gsSP1Triangle(0, 4, 3, 0), gsSP1Triangle(3, 5, 1, 0), gsSP1Triangle(6, 5, 3, 0), gsSP1Triangle(7, 8, 9, 0), gsSP1Triangle(7, 10, 8, 0), gsSP1Triangle(11, 10, 7, 0), gsSP1Triangle(11, 12, 10, 0), gsSP1Triangle(11, 13, 12, 0), gsSP1Triangle(11, 14, 13, 0), gsSP1Triangle(12, 13, 15, 0), gsSPVertex(luigi_face_part_cap_on_dl_vertex + 16, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(2, 1, 3, 0), gsSP1Triangle(4, 2, 3, 0), gsSP1Triangle(5, 4, 3, 0), gsSP1Triangle(5, 6, 4, 0), gsSP1Triangle(2, 4, 6, 0), gsSP1Triangle(0, 2, 6, 0), gsSP1Triangle(7, 8, 9, 0), gsSP1Triangle(8, 10, 9, 0), gsSP1Triangle(8, 11, 10, 0), gsSP1Triangle(10, 11, 12, 0), gsSP1Triangle(13, 9, 10, 0), gsSP1Triangle(13, 14, 9, 0), gsSP1Triangle(13, 10, 15, 0), gsSPVertex(luigi_face_part_cap_on_dl_vertex + 32, 14, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(0, 3, 1, 0), gsSP1Triangle(3, 4, 1, 0), gsSP1Triangle(5, 4, 3, 0), gsSP1Triangle(4, 5, 6, 0), gsSP1Triangle(6, 1, 4, 0), gsSP1Triangle(1, 6, 2, 0), gsSP1Triangle(7, 8, 9, 0), gsSP1Triangle(8, 7, 10, 0), gsSP1Triangle(10, 7, 11, 0), gsSP1Triangle(12, 11, 7, 0), gsSP1Triangle(13, 10, 11, 0), gsSPVertex(luigi_face_part_cap_on_dl_vertex + 46, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(1, 0, 3, 0), gsSP1Triangle(0, 4, 3, 0), gsSP1Triangle(3, 4, 5, 0), gsSP1Triangle(4, 6, 5, 0), gsSP1Triangle(6, 4, 7, 0), gsSP1Triangle(7, 8, 6, 0), gsSP1Triangle(9, 8, 7, 0), gsSP1Triangle(10, 8, 9, 0), gsSP1Triangle(8, 10, 11, 0), gsSP1Triangle(10, 12, 11, 0), gsSP1Triangle(11, 12, 13, 0), gsSP1Triangle(12, 14, 13, 0), gsSP1Triangle(14, 12, 15, 0), gsSP1Triangle(15, 1, 14, 0), gsSP1Triangle(2, 1, 15, 0), gsSPVertex(luigi_face_part_cap_on_dl_vertex + 62, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(1, 3, 2, 0), gsSP1Triangle(4, 3, 1, 0), gsSP1Triangle(5, 3, 4, 0), gsSP1Triangle(5, 4, 6, 0), gsSP1Triangle(5, 6, 7, 0), gsSP1Triangle(8, 7, 6, 0), gsSP1Triangle(9, 8, 6, 0), gsSP1Triangle(9, 10, 8, 0), gsSP1Triangle(10, 11, 8, 0), gsSP1Triangle(11, 10, 12, 0), gsSP1Triangle(13, 11, 12, 0), gsSP1Triangle(13, 12, 14, 0), gsSP1Triangle(15, 13, 14, 0), gsSP1Triangle(14, 2, 15, 0), gsSP1Triangle(14, 0, 2, 0), gsSPVertex(luigi_face_part_cap_on_dl_vertex + 78, 10, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(2, 1, 3, 0), gsSP1Triangle(2, 3, 4, 0), gsSP1Triangle(2, 4, 5, 0), gsSP1Triangle(6, 2, 5, 0), gsSP1Triangle(7, 6, 5, 0), gsSP1Triangle(7, 8, 6, 0), gsSP1Triangle(9, 6, 8, 0), gsSP1Triangle(9, 0, 6, 0), gsSP1Triangle(6, 0, 2, 0), gsSPEndDisplayList(), }; Gfx luigi_face_cap_dl[] = { gsSPVertex(luigi_face_cap_dl_vertex + 0, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(1, 0, 3, 0), gsSP1Triangle(4, 3, 0, 0), gsSP1Triangle(4, 0, 2, 0), gsSP1Triangle(5, 4, 2, 0), gsSP1Triangle(4, 5, 6, 0), gsSP1Triangle(6, 5, 7, 0), gsSP1Triangle(6, 7, 8, 0), gsSP1Triangle(4, 6, 8, 0), gsSP1Triangle(4, 8, 3, 0), gsSP1Triangle(9, 1, 10, 0), gsSP1Triangle(11, 1, 9, 0), gsSP1Triangle(12, 11, 9, 0), gsSP1Triangle(13, 12, 9, 0), gsSP1Triangle(9, 14, 13, 0), gsSP1Triangle(10, 14, 9, 0), gsSP1Triangle(14, 10, 15, 0), gsSPVertex(luigi_face_cap_dl_vertex + 16, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(0, 3, 1, 0), gsSP1Triangle(4, 1, 3, 0), gsSP1Triangle(3, 5, 4, 0), gsSP1Triangle(5, 6, 4, 0), gsSP1Triangle(7, 4, 6, 0), gsSP1Triangle(7, 6, 8, 0), gsSP1Triangle(8, 9, 7, 0), gsSP1Triangle(7, 9, 10, 0), gsSP1Triangle(9, 11, 10, 0), gsSP1Triangle(9, 12, 11, 0), gsSP1Triangle(12, 13, 11, 0), gsSP1Triangle(12, 14, 13, 0), gsSP1Triangle(13, 14, 15, 0), gsSPVertex(luigi_face_cap_dl_vertex + 32, 11, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(1, 0, 3, 0), gsSP1Triangle(1, 3, 4, 0), gsSP1Triangle(5, 4, 3, 0), gsSP1Triangle(6, 5, 3, 0), gsSP1Triangle(7, 5, 6, 0), gsSP1Triangle(8, 5, 7, 0), gsSP1Triangle(5, 8, 9, 0), gsSP1Triangle(4, 5, 9, 0), gsSP1Triangle(4, 9, 10, 0), gsSP1Triangle(4, 10, 2, 0), gsSP1Triangle(1, 4, 2, 0), gsSPEndDisplayList(), }; Gfx luigi_face_back_hair_cap_on_dl[] = { gsSPVertex(luigi_face_back_hair_cap_on_dl_vertex + 0, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(2, 1, 3, 0), gsSP1Triangle(1, 4, 3, 0), gsSP1Triangle(1, 5, 4, 0), gsSP1Triangle(6, 5, 1, 0), gsSP1Triangle(6, 7, 5, 0), gsSP1Triangle(6, 8, 7, 0), gsSP1Triangle(9, 8, 6, 0), gsSP1Triangle(9, 6, 10, 0), gsSP1Triangle(9, 11, 8, 0), gsSP1Triangle(12, 11, 9, 0), gsSP1Triangle(12, 13, 11, 0), gsSP1Triangle(13, 12, 5, 0), gsSP1Triangle(7, 13, 5, 0), gsSP1Triangle(13, 7, 14, 0), gsSP1Triangle(7, 8, 14, 0), gsSP1Triangle(8, 11, 14, 0), gsSP1Triangle(11, 13, 14, 0), gsSP1Triangle(2, 3, 15, 0), gsSPVertex(luigi_face_back_hair_cap_on_dl_vertex + 16, 8, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(0, 2, 3, 0), gsSP1Triangle(0, 3, 4, 0), gsSP1Triangle(4, 3, 5, 0), gsSP1Triangle(6, 4, 5, 0), gsSP1Triangle(6, 1, 4, 0), gsSP1Triangle(6, 7, 1, 0), gsSP1Triangle(0, 4, 1, 0), gsSPEndDisplayList(), }; const Gfx luigi_hair_sideburn_decal_cap_on[] = { gsDPPipeSync(), gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, COMBINED, 0, 0, 0, COMBINED), gsDPSetCycleType(G_CYC_2CYCLE), gsSPTexture(65535, 65535, 0, 0, 1), gsSPLight(&luigi_black_lights_group.l, 1), gsSPCopyLightEXT(2, 11), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_32b_LOAD_BLOCK, 1, luigi_texture_hair_sideburn), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_32b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), gsDPLoadBlock(7, 0, 0, 1023, 128), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_32b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), gsDPSetTileSize(0, 0, 0, 124, 124), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_32b_LOAD_BLOCK, 1, luigi_texture_add_sideburn), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_32b_LOAD_BLOCK, 0, 512, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), gsDPLoadBlock(6, 0, 0, 1023, 128), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_32b, 8, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), gsDPSetTileSize(1, 0, 0, 124, 124), gsSPDisplayList(luigi_hair_sideburn_cap_on_dl), gsDPSetCycleType(G_CYC_1CYCLE), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_MODULATERGBFADEA, G_CC_MODULATERGBFADEA), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_skin_sideburn), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_hair_sideburn_cap_on_dl), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPEndDisplayList(), }; const Gfx luigi_l_logo_decal[] = { gsDPPipeSync(), gsDPSetCombineLERP(TEXEL0, SHADE, TEXEL1, SHADE, TEXEL0, 0, ENVIRONMENT, 0, COMBINED, TEXEL0, PRIMITIVE, COMBINED, 0, 0, 0, COMBINED), gsDPSetCycleType(G_CYC_2CYCLE), gsSPTexture(65535, 65535, 0, 0, 1), gsDPSetPrimColor(0, 0, 127, 127, 127, 255), gsSPLight(&luigi_black_lights_group.l, 1), gsSPCopyLightEXT(2, 15), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_l_logo), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), gsDPLoadBlock(7, 0, 0, 1023, 256), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), gsDPSetTileSize(0, 0, 0, 124, 124), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_l_blend), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 256, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), gsDPLoadBlock(6, 0, 0, 1023, 256), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 256, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), gsDPSetTileSize(1, 0, 0, 124, 124), gsSPDisplayList(luigi_l_logo_dl), gsDPSetCycleType(G_CYC_1CYCLE), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_MODULATERGBFADEA, G_CC_MODULATERGBFADEA), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_l_cap), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(luigi_l_logo_dl), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPEndDisplayList(), }; const Gfx luigi_face_cap_on_dl[] = { gsSPDisplayList(luigi_face_part_cap_on_dl), gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(luigi_face_cap_dl), gsSPCopyLightsPlayerPart(HAIR), gsSPDisplayList(luigi_face_back_hair_cap_on_dl), gsSPEndDisplayList(), }; const Gfx luigi_cap_on_eyes_front[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_front), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_mustache_cap_on_dl), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPDisplayList(luigi_face_cap_on_dl), gsSPEndDisplayList(), }; const Gfx luigi_cap_on_eyes_half_closed[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_half_closed), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_mustache_cap_on_dl), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPDisplayList(luigi_face_cap_on_dl), gsSPEndDisplayList(), }; const Gfx luigi_cap_on_eyes_closed[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_closed), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_mustache_cap_on_dl), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPDisplayList(luigi_face_cap_on_dl), gsSPEndDisplayList(), }; const Gfx luigi_cap_on_eyes_right[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_right), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_mustache_cap_on_dl), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPDisplayList(luigi_face_cap_on_dl), gsSPEndDisplayList(), }; const Gfx luigi_cap_on_eyes_left[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_left), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_mustache_cap_on_dl), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPDisplayList(luigi_face_cap_on_dl), gsSPEndDisplayList(), }; const Gfx luigi_cap_on_eyes_up[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_up), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_mustache_cap_on_dl), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPDisplayList(luigi_face_cap_on_dl), gsSPEndDisplayList(), }; const Gfx luigi_cap_on_eyes_down[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_down), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_mustache_cap_on_dl), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPDisplayList(luigi_face_cap_on_dl), gsSPEndDisplayList(), }; const Gfx luigi_cap_on_eyes_dead[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_dead), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_mustache_cap_on_dl), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPDisplayList(luigi_face_cap_on_dl), gsSPEndDisplayList(), }; const Gfx luigi_metal_cap_on_shared_dl[] = { gsSPDisplayList(luigi_l_logo_dl), gsSPDisplayList(luigi_eyes_cap_on_dl), gsSPDisplayList(luigi_hair_sideburn_cap_on_dl), gsSPDisplayList(luigi_mustache_cap_on_dl), gsSPDisplayList(luigi_face_part_cap_on_dl), gsSPDisplayList(luigi_face_cap_dl), gsSPDisplayList(luigi_face_back_hair_cap_on_dl), gsSPEndDisplayList(), }; Vtx luigi_eyes_cap_off_dl_vertex[12] = { {{ {78, 89, -20}, 0, {282, 1028}, {67, 68, 173, 255} }}, {{ {135, 74, -54}, 0, {-84, 412}, {25, 91, 171, 255} }}, {{ {94, 76, -56}, 0, {-98, 860}, {17, 100, 180, 255} }}, {{ {166, 84, -26}, 0, {202, 68}, {25, 117, 214, 255} }}, {{ {135, 91, 0}, 0, {480, 402}, {10, 127, 0, 255} }}, {{ {88, 92, 0}, 0, {488, 916}, {97, 82, 0, 255} }}, {{ {78, 89, 20}, 0, {700, 1020}, {70, 67, 82, 255} }}, {{ {166, 84, 27}, 0, {756, 60}, {25, 118, 41, 255} }}, {{ {135, 74, 55}, 0, {1054, 392}, {25, 91, 85, 255} }}, {{ {94, 76, 57}, 0, {1084, 840}, {17, 101, 76, 255} }}, {{ {147, 31, 77}, 0, {1282, 258}, {0, 55, 115, 255} }}, {{ {147, 31, -76}, 0, {-318, 286}, {246, 51, 140, 255} }}, }; Vtx luigi_hair_sideburn_cap_off_dl_vertex[12] = { {{ {88, 42, -76}, 0, {-70, 700}, {7, 42, 136, 255} }}, {{ {147, 31, -76}, 0, {90, -58}, {246, 51, 140, 255} }}, {{ {115, -12, -91}, 0, {916, 184}, {255, 17, 130, 255} }}, {{ {80, -24, -92}, 0, {1150, 582}, {0, 89, 165, 255} }}, {{ {32, -5, -84}, 0, {842, 1210}, {187, 248, 149, 255} }}, {{ {34, 34, -78}, 0, {118, 1334}, {213, 31, 140, 255} }}, {{ {88, 42, 77}, 0, {-74, 726}, {6, 43, 119, 255} }}, {{ {115, -11, 93}, 0, {922, 122}, {254, 18, 126, 255} }}, {{ {147, 31, 77}, 0, {22, -68}, {0, 55, 115, 255} }}, {{ {80, -24, 93}, 0, {1238, 518}, {254, 89, 91, 255} }}, {{ {32, -5, 85}, 0, {968, 1192}, {187, 248, 107, 255} }}, {{ {34, 34, 79}, 0, {196, 1366}, {213, 31, 116, 255} }}, }; Vtx luigi_mustache_cap_off_dl_vertex[21] = { {{ {78, 89, 20}, 0, {248, 50}, {70, 67, 82, 255} }}, {{ {58, 93, 28}, 0, {330, 316}, {20, 35, 120, 255} }}, {{ {66, 76, 68}, 0, {948, -8}, {7, 85, 94, 255} }}, {{ {35, 79, 58}, 0, {784, 566}, {211, 87, 81, 255} }}, {{ {35, 94, 27}, 0, {292, 670}, {183, 45, 94, 255} }}, {{ {13, 83, 24}, 0, {336, 1006}, {173, 91, 31, 255} }}, {{ {24, 91, 0}, 0, {-30, 876}, {139, 50, 0, 255} }}, {{ {-7, 40, 43}, 0, {768, 1210}, {147, 20, 62, 255} }}, {{ {34, 34, 79}, 0, {1276, 438}, {213, 31, 116, 255} }}, {{ {35, 94, -26}, 0, {294, 656}, {184, 46, 162, 255} }}, {{ {13, 83, -24}, 0, {310, 1002}, {174, 91, 224, 255} }}, {{ {24, 91, 0}, 0, {-38, 852}, {139, 50, 0, 255} }}, {{ {35, 79, -57}, 0, {780, 576}, {211, 86, 174, 255} }}, {{ {58, 93, -27}, 0, {360, 296}, {18, 35, 135, 255} }}, {{ {66, 76, -67}, 0, {992, -10}, {7, 85, 162, 255} }}, {{ {78, 89, -20}, 0, {322, -20}, {67, 68, 173, 255} }}, {{ {34, 34, -78}, 0, {1272, 464}, {213, 31, 140, 255} }}, {{ {35, 79, -57}, 0, {780, 576}, {211, 86, 174, 255} }}, {{ {66, 76, -67}, 0, {992, -10}, {7, 85, 162, 255} }}, {{ {-7, 40, -42}, 0, {720, 1228}, {147, 19, 194, 255} }}, {{ {13, 83, -24}, 0, {310, 1002}, {174, 91, 224, 255} }}, }; Vtx luigi_face_part_cap_off_dl_vertex[88] = { {{ {66, 76, 68}, 0, {0, 0}, {7, 85, 94, 255} }}, {{ {94, 76, 57}, 0, {0, 0}, {17, 101, 76, 255} }}, {{ {78, 89, 20}, 0, {0, 0}, {70, 67, 82, 255} }}, {{ {88, 42, 77}, 0, {0, 0}, {6, 43, 119, 255} }}, {{ {34, 34, 79}, 0, {0, 0}, {213, 31, 116, 255} }}, {{ {135, 74, 55}, 0, {0, 0}, {25, 91, 85, 255} }}, {{ {147, 31, 77}, 0, {0, 0}, {0, 55, 115, 255} }}, {{ {13, 83, -24}, 0, {0, 0}, {174, 91, 224, 255} }}, {{ {13, 83, 24}, 0, {0, 0}, {173, 91, 31, 255} }}, {{ {24, 91, 0}, 0, {0, 0}, {139, 50, 0, 255} }}, {{ {-19, 46, 0}, 0, {0, 0}, {131, 25, 0, 255} }}, {{ {-7, 40, -42}, 0, {0, 0}, {147, 19, 194, 255} }}, {{ {12, -51, -34}, 0, {0, 0}, {132, 0, 227, 255} }}, {{ {32, -5, -84}, 0, {0, 0}, {187, 248, 149, 255} }}, {{ {34, 34, -78}, 0, {0, 0}, {213, 31, 140, 255} }}, {{ {51, -44, -64}, 0, {0, 0}, {208, 194, 156, 255} }}, {{ {51, -44, -64}, 0, {0, 0}, {208, 194, 156, 255} }}, {{ {32, -5, -84}, 0, {0, 0}, {187, 248, 149, 255} }}, {{ {57, -27, -110}, 0, {0, 0}, {217, 254, 135, 255} }}, {{ {80, -24, -92}, 0, {0, 0}, {0, 89, 165, 255} }}, {{ {95, -31, -110}, 0, {0, 0}, {43, 243, 137, 255} }}, {{ {115, -12, -91}, 0, {0, 0}, {255, 17, 130, 255} }}, {{ {88, -51, -73}, 0, {0, 0}, {224, 184, 156, 255} }}, {{ {13, 83, 24}, 0, {0, 0}, {173, 91, 31, 255} }}, {{ {-19, 46, 0}, 0, {0, 0}, {131, 25, 0, 255} }}, {{ {-7, 40, 43}, 0, {0, 0}, {147, 20, 62, 255} }}, {{ {12, -51, 35}, 0, {0, 0}, {133, 0, 30, 255} }}, {{ {12, -51, -34}, 0, {0, 0}, {132, 0, 227, 255} }}, {{ {26, -79, 0}, 0, {0, 0}, {160, 172, 0, 255} }}, {{ {32, -5, 85}, 0, {0, 0}, {187, 248, 107, 255} }}, {{ {34, 34, 79}, 0, {0, 0}, {213, 31, 116, 255} }}, {{ {51, -44, 65}, 0, {0, 0}, {208, 193, 100, 255} }}, {{ {51, -44, 65}, 0, {0, 0}, {208, 193, 100, 255} }}, {{ {57, -27, 111}, 0, {0, 0}, {217, 254, 121, 255} }}, {{ {32, -5, 85}, 0, {0, 0}, {187, 248, 107, 255} }}, {{ {88, -51, 74}, 0, {0, 0}, {224, 183, 99, 255} }}, {{ {95, -31, 111}, 0, {0, 0}, {42, 241, 119, 255} }}, {{ {115, -11, 93}, 0, {0, 0}, {254, 18, 126, 255} }}, {{ {80, -24, 93}, 0, {0, 0}, {254, 89, 91, 255} }}, {{ {88, 42, -76}, 0, {0, 0}, {7, 42, 136, 255} }}, {{ {135, 74, -54}, 0, {0, 0}, {25, 91, 171, 255} }}, {{ {147, 31, -76}, 0, {0, 0}, {246, 51, 140, 255} }}, {{ {94, 76, -56}, 0, {0, 0}, {17, 100, 180, 255} }}, {{ {66, 76, -67}, 0, {0, 0}, {7, 85, 162, 255} }}, {{ {34, 34, -78}, 0, {0, 0}, {213, 31, 140, 255} }}, {{ {78, 89, -20}, 0, {0, 0}, {67, 68, 173, 255} }}, {{ {35, 94, 27}, 0, {0, 0}, {183, 45, 94, 255} }}, {{ {15, 111, 0}, 0, {0, 0}, {132, 230, 254, 255} }}, {{ {24, 91, 0}, 0, {0, 0}, {139, 50, 0, 255} }}, {{ {29, 112, 36}, 0, {0, 0}, {179, 226, 96, 255} }}, {{ {58, 93, 28}, 0, {0, 0}, {20, 35, 120, 255} }}, {{ {55, 112, 41}, 0, {0, 0}, {255, 220, 122, 255} }}, {{ {81, 112, 36}, 0, {0, 0}, {75, 223, 97, 255} }}, {{ {78, 89, 20}, 0, {0, 0}, {70, 67, 82, 255} }}, {{ {96, 113, 0}, 0, {0, 0}, {125, 234, 0, 255} }}, {{ {88, 92, 0}, 0, {0, 0}, {97, 82, 0, 255} }}, {{ {78, 89, -20}, 0, {0, 0}, {67, 68, 173, 255} }}, {{ {81, 112, -35}, 0, {0, 0}, {75, 224, 158, 255} }}, {{ {58, 93, -27}, 0, {0, 0}, {18, 35, 135, 255} }}, {{ {55, 112, -40}, 0, {0, 0}, {255, 220, 134, 255} }}, {{ {29, 112, -35}, 0, {0, 0}, {178, 228, 160, 255} }}, {{ {35, 94, -26}, 0, {0, 0}, {184, 46, 162, 255} }}, {{ {29, 112, -35}, 0, {0, 0}, {178, 228, 160, 255} }}, {{ {15, 111, 0}, 0, {0, 0}, {132, 230, 254, 255} }}, {{ {32, 141, -35}, 0, {0, 0}, {191, 64, 167, 255} }}, {{ {15, 141, 0}, 0, {0, 0}, {142, 56, 254, 255} }}, {{ {29, 112, 36}, 0, {0, 0}, {179, 226, 96, 255} }}, {{ {32, 141, 36}, 0, {0, 0}, {193, 65, 89, 255} }}, {{ {55, 112, 41}, 0, {0, 0}, {255, 220, 122, 255} }}, {{ {58, 141, 41}, 0, {0, 0}, {0, 67, 108, 255} }}, {{ {82, 142, 36}, 0, {0, 0}, {69, 61, 88, 255} }}, {{ {81, 112, 36}, 0, {0, 0}, {75, 223, 97, 255} }}, {{ {96, 113, 0}, 0, {0, 0}, {125, 234, 0, 255} }}, {{ {96, 142, 0}, 0, {0, 0}, {117, 50, 255, 255} }}, {{ {81, 112, -35}, 0, {0, 0}, {75, 224, 158, 255} }}, {{ {82, 142, -35}, 0, {0, 0}, {69, 60, 168, 255} }}, {{ {55, 112, -40}, 0, {0, 0}, {255, 220, 134, 255} }}, {{ {58, 141, -40}, 0, {0, 0}, {0, 66, 147, 255} }}, {{ {58, 141, -40}, 0, {0, 0}, {0, 66, 147, 255} }}, {{ {32, 141, -35}, 0, {0, 0}, {191, 64, 167, 255} }}, {{ {39, 156, 0}, 0, {0, 0}, {224, 123, 0, 255} }}, {{ {15, 141, 0}, 0, {0, 0}, {142, 56, 254, 255} }}, {{ {32, 141, 36}, 0, {0, 0}, {193, 65, 89, 255} }}, {{ {58, 141, 41}, 0, {0, 0}, {0, 67, 108, 255} }}, {{ {77, 157, 0}, 0, {0, 0}, {35, 122, 0, 255} }}, {{ {82, 142, 36}, 0, {0, 0}, {69, 61, 88, 255} }}, {{ {96, 142, 0}, 0, {0, 0}, {117, 50, 255, 255} }}, {{ {82, 142, -35}, 0, {0, 0}, {69, 60, 168, 255} }}, }; Vtx luigi_face_hair_cap_off_dl_vertex[95] = { {{ {-3, -81, 44}, 0, {0, 0}, {129, 11, 1, 255} }}, {{ {12, -51, 35}, 0, {0, 0}, {133, 0, 30, 255} }}, {{ {26, -79, 0}, 0, {0, 0}, {160, 172, 0, 255} }}, {{ {19, -78, 73}, 0, {0, 0}, {226, 4, 123, 255} }}, {{ {5, -113, 53}, 0, {0, 0}, {185, 158, 40, 255} }}, {{ {24, -109, 21}, 0, {0, 0}, {239, 156, 179, 255} }}, {{ {62, -96, 42}, 0, {0, 0}, {243, 147, 64, 255} }}, {{ {62, -96, -42}, 0, {0, 0}, {243, 147, 191, 255} }}, {{ {24, -109, -21}, 0, {0, 0}, {239, 156, 77, 255} }}, {{ {-3, -81, -44}, 0, {0, 0}, {129, 11, 255, 255} }}, {{ {12, -51, -34}, 0, {0, 0}, {132, 0, 227, 255} }}, {{ {19, -78, -73}, 0, {0, 0}, {227, 5, 132, 255} }}, {{ {51, -44, -64}, 0, {0, 0}, {208, 194, 156, 255} }}, {{ {46, -107, -45}, 0, {0, 0}, {60, 152, 215, 255} }}, {{ {88, -51, -73}, 0, {0, 0}, {224, 184, 156, 255} }}, {{ {142, -81, -92}, 0, {0, 0}, {0, 206, 139, 255} }}, {{ {142, -81, -92}, 0, {0, 0}, {0, 206, 139, 255} }}, {{ {88, -51, -73}, 0, {0, 0}, {224, 184, 156, 255} }}, {{ {115, -12, -91}, 0, {0, 0}, {255, 17, 130, 255} }}, {{ {176, -9, -97}, 0, {0, 0}, {39, 5, 135, 255} }}, {{ {147, 31, -76}, 0, {0, 0}, {246, 51, 140, 255} }}, {{ {191, 61, -79}, 0, {0, 0}, {27, 59, 147, 255} }}, {{ {142, 63, -57}, 0, {0, 0}, {222, 89, 172, 255} }}, {{ {166, 84, -26}, 0, {0, 0}, {196, 92, 193, 255} }}, {{ {202, 84, -59}, 0, {0, 0}, {15, 71, 152, 255} }}, {{ {192, 116, -13}, 0, {0, 0}, {245, 127, 254, 255} }}, {{ {151, 87, 0}, 0, {0, 0}, {184, 105, 5, 255} }}, {{ {166, 84, 27}, 0, {0, 0}, {224, 107, 60, 255} }}, {{ {200, 79, 48}, 0, {0, 0}, {34, 95, 77, 255} }}, {{ {191, 66, 66}, 0, {0, 0}, {26, 77, 98, 255} }}, {{ {142, 63, 58}, 0, {0, 0}, {236, 86, 92, 255} }}, {{ {147, 31, 77}, 0, {0, 0}, {0, 55, 115, 255} }}, {{ {147, 31, 77}, 0, {0, 0}, {0, 55, 115, 255} }}, {{ {175, -9, 98}, 0, {0, 0}, {39, 8, 121, 255} }}, {{ {191, 66, 66}, 0, {0, 0}, {26, 77, 98, 255} }}, {{ {115, -11, 93}, 0, {0, 0}, {254, 18, 126, 255} }}, {{ {142, -80, 93}, 0, {0, 0}, {0, 206, 117, 255} }}, {{ {88, -51, 74}, 0, {0, 0}, {224, 183, 99, 255} }}, {{ {62, -96, 42}, 0, {0, 0}, {243, 147, 64, 255} }}, {{ {51, -44, 65}, 0, {0, 0}, {208, 193, 100, 255} }}, {{ {46, -107, 45}, 0, {0, 0}, {60, 152, 41, 255} }}, {{ {19, -78, 73}, 0, {0, 0}, {226, 4, 123, 255} }}, {{ {12, -51, 35}, 0, {0, 0}, {133, 0, 30, 255} }}, {{ {5, -113, 53}, 0, {0, 0}, {185, 158, 40, 255} }}, {{ {24, -109, 21}, 0, {0, 0}, {239, 156, 179, 255} }}, {{ {62, -96, -42}, 0, {0, 0}, {243, 147, 191, 255} }}, {{ {24, -109, -21}, 0, {0, 0}, {239, 156, 77, 255} }}, {{ {46, -107, -45}, 0, {0, 0}, {60, 152, 215, 255} }}, {{ {5, -113, -53}, 0, {0, 0}, {185, 158, 216, 255} }}, {{ {46, -107, -45}, 0, {0, 0}, {60, 152, 215, 255} }}, {{ {24, -109, -21}, 0, {0, 0}, {239, 156, 77, 255} }}, {{ {-3, -81, -44}, 0, {0, 0}, {129, 11, 255, 255} }}, {{ {19, -78, -73}, 0, {0, 0}, {227, 5, 132, 255} }}, {{ {175, -9, 98}, 0, {0, 0}, {39, 8, 121, 255} }}, {{ {218, 28, 63}, 0, {0, 0}, {102, 14, 74, 255} }}, {{ {191, 66, 66}, 0, {0, 0}, {26, 77, 98, 255} }}, {{ {221, -14, 49}, 0, {0, 0}, {112, 240, 58, 255} }}, {{ {186, -99, 63}, 0, {0, 0}, {71, 176, 68, 255} }}, {{ {142, -80, 93}, 0, {0, 0}, {0, 206, 117, 255} }}, {{ {114, -119, 58}, 0, {0, 0}, {233, 149, 64, 255} }}, {{ {62, -96, 42}, 0, {0, 0}, {243, 147, 64, 255} }}, {{ {117, -127, 0}, 0, {0, 0}, {242, 130, 255, 255} }}, {{ {62, -96, -42}, 0, {0, 0}, {243, 147, 191, 255} }}, {{ {114, -117, -58}, 0, {0, 0}, {233, 149, 191, 255} }}, {{ {142, -81, -92}, 0, {0, 0}, {0, 206, 139, 255} }}, {{ {114, -117, -58}, 0, {0, 0}, {233, 149, 191, 255} }}, {{ {62, -96, -42}, 0, {0, 0}, {243, 147, 191, 255} }}, {{ {186, -99, -62}, 0, {0, 0}, {71, 175, 188, 255} }}, {{ {176, -9, -97}, 0, {0, 0}, {39, 5, 135, 255} }}, {{ {221, -14, -49}, 0, {0, 0}, {112, 245, 196, 255} }}, {{ {212, 28, -61}, 0, {0, 0}, {106, 7, 186, 255} }}, {{ {191, 61, -79}, 0, {0, 0}, {27, 59, 147, 255} }}, {{ {202, 84, -59}, 0, {0, 0}, {15, 71, 152, 255} }}, {{ {223, 62, -34}, 0, {0, 0}, {113, 226, 206, 255} }}, {{ {239, 97, -43}, 0, {0, 0}, {101, 52, 199, 255} }}, {{ {192, 116, -13}, 0, {0, 0}, {245, 127, 254, 255} }}, {{ {200, 79, 48}, 0, {0, 0}, {34, 95, 77, 255} }}, {{ {222, 74, 33}, 0, {0, 0}, {100, 59, 52, 255} }}, {{ {218, 28, 63}, 0, {0, 0}, {102, 14, 74, 255} }}, {{ {191, 66, 66}, 0, {0, 0}, {26, 77, 98, 255} }}, {{ {218, 28, 63}, 0, {0, 0}, {102, 14, 74, 255} }}, {{ {228, 57, 0}, 0, {0, 0}, {127, 250, 4, 255} }}, {{ {222, 74, 33}, 0, {0, 0}, {100, 59, 52, 255} }}, {{ {221, -14, 49}, 0, {0, 0}, {112, 240, 58, 255} }}, {{ {235, -34, 0}, 0, {0, 0}, {125, 232, 0, 255} }}, {{ {186, -99, 63}, 0, {0, 0}, {71, 176, 68, 255} }}, {{ {198, -110, 0}, 0, {0, 0}, {80, 157, 0, 255} }}, {{ {114, -119, 58}, 0, {0, 0}, {233, 149, 64, 255} }}, {{ {117, -127, 0}, 0, {0, 0}, {242, 130, 255, 255} }}, {{ {114, -117, -58}, 0, {0, 0}, {233, 149, 191, 255} }}, {{ {186, -99, -62}, 0, {0, 0}, {71, 175, 188, 255} }}, {{ {221, -14, -49}, 0, {0, 0}, {112, 245, 196, 255} }}, {{ {212, 28, -61}, 0, {0, 0}, {106, 7, 186, 255} }}, {{ {223, 62, -34}, 0, {0, 0}, {113, 226, 206, 255} }}, {{ {239, 97, -43}, 0, {0, 0}, {101, 52, 199, 255} }}, }; Gfx luigi_eyes_cap_off_dl[] = { gsSPVertex(luigi_eyes_cap_off_dl_vertex + 0, 12, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(3, 1, 0, 0), gsSP1Triangle(4, 3, 0, 0), gsSP1Triangle(5, 4, 0, 0), gsSP1Triangle(5, 6, 4, 0), gsSP1Triangle(4, 6, 7, 0), gsSP1Triangle(7, 6, 8, 0), gsSP1Triangle(9, 8, 6, 0), gsSP1Triangle(7, 8, 10, 0), gsSP1Triangle(3, 11, 1, 0), gsSP1Triangle(4, 7, 3, 0), gsSPEndDisplayList(), }; Gfx luigi_mustache_cap_off_dl[] = { gsSPVertex(luigi_mustache_cap_off_dl_vertex + 0, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(1, 3, 2, 0), gsSP1Triangle(4, 3, 1, 0), gsSP1Triangle(3, 4, 5, 0), gsSP1Triangle(4, 6, 5, 0), gsSP1Triangle(3, 5, 7, 0), gsSP1Triangle(3, 7, 8, 0), gsSP1Triangle(8, 2, 3, 0), gsSP1Triangle(9, 10, 11, 0), gsSP1Triangle(12, 10, 9, 0), gsSP1Triangle(9, 13, 12, 0), gsSP1Triangle(13, 14, 12, 0), gsSP1Triangle(15, 14, 13, 0), gsSPVertex(luigi_mustache_cap_off_dl_vertex + 16, 5, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(1, 0, 3, 0), gsSP1Triangle(1, 3, 4, 0), gsSPEndDisplayList(), }; Gfx luigi_hair_sideburn_cap_off_dl[] = { gsSPVertex(luigi_hair_sideburn_cap_off_dl_vertex + 0, 12, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(3, 0, 2, 0), gsSP1Triangle(3, 4, 0, 0), gsSP1Triangle(4, 5, 0, 0), gsSP1Triangle(6, 7, 8, 0), gsSP1Triangle(6, 9, 7, 0), gsSP1Triangle(10, 9, 6, 0), gsSP1Triangle(11, 10, 6, 0), gsSPEndDisplayList(), }; Gfx luigi_face_part_cap_off_dl[] = { gsSPVertex(luigi_face_part_cap_off_dl_vertex + 0, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(3, 1, 0, 0), gsSP1Triangle(0, 4, 3, 0), gsSP1Triangle(3, 5, 1, 0), gsSP1Triangle(6, 5, 3, 0), gsSP1Triangle(7, 8, 9, 0), gsSP1Triangle(7, 10, 8, 0), gsSP1Triangle(11, 10, 7, 0), gsSP1Triangle(11, 12, 10, 0), gsSP1Triangle(11, 13, 12, 0), gsSP1Triangle(11, 14, 13, 0), gsSP1Triangle(12, 13, 15, 0), gsSPVertex(luigi_face_part_cap_off_dl_vertex + 16, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(2, 1, 3, 0), gsSP1Triangle(4, 2, 3, 0), gsSP1Triangle(5, 4, 3, 0), gsSP1Triangle(5, 6, 4, 0), gsSP1Triangle(2, 4, 6, 0), gsSP1Triangle(0, 2, 6, 0), gsSP1Triangle(7, 8, 9, 0), gsSP1Triangle(8, 10, 9, 0), gsSP1Triangle(8, 11, 10, 0), gsSP1Triangle(10, 11, 12, 0), gsSP1Triangle(13, 9, 10, 0), gsSP1Triangle(13, 14, 9, 0), gsSP1Triangle(13, 10, 15, 0), gsSPVertex(luigi_face_part_cap_off_dl_vertex + 32, 14, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(0, 3, 1, 0), gsSP1Triangle(3, 4, 1, 0), gsSP1Triangle(5, 4, 3, 0), gsSP1Triangle(4, 5, 6, 0), gsSP1Triangle(6, 1, 4, 0), gsSP1Triangle(1, 6, 2, 0), gsSP1Triangle(7, 8, 9, 0), gsSP1Triangle(8, 7, 10, 0), gsSP1Triangle(10, 7, 11, 0), gsSP1Triangle(12, 11, 7, 0), gsSP1Triangle(13, 10, 11, 0), gsSPVertex(luigi_face_part_cap_off_dl_vertex + 46, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(1, 0, 3, 0), gsSP1Triangle(0, 4, 3, 0), gsSP1Triangle(3, 4, 5, 0), gsSP1Triangle(4, 6, 5, 0), gsSP1Triangle(6, 4, 7, 0), gsSP1Triangle(7, 8, 6, 0), gsSP1Triangle(9, 8, 7, 0), gsSP1Triangle(10, 8, 9, 0), gsSP1Triangle(8, 10, 11, 0), gsSP1Triangle(10, 12, 11, 0), gsSP1Triangle(11, 12, 13, 0), gsSP1Triangle(12, 14, 13, 0), gsSP1Triangle(14, 12, 15, 0), gsSP1Triangle(15, 1, 14, 0), gsSP1Triangle(2, 1, 15, 0), gsSPVertex(luigi_face_part_cap_off_dl_vertex + 62, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(1, 3, 2, 0), gsSP1Triangle(4, 3, 1, 0), gsSP1Triangle(5, 3, 4, 0), gsSP1Triangle(5, 4, 6, 0), gsSP1Triangle(5, 6, 7, 0), gsSP1Triangle(8, 7, 6, 0), gsSP1Triangle(9, 8, 6, 0), gsSP1Triangle(9, 10, 8, 0), gsSP1Triangle(10, 11, 8, 0), gsSP1Triangle(11, 10, 12, 0), gsSP1Triangle(13, 11, 12, 0), gsSP1Triangle(13, 12, 14, 0), gsSP1Triangle(15, 13, 14, 0), gsSP1Triangle(14, 2, 15, 0), gsSP1Triangle(14, 0, 2, 0), gsSPVertex(luigi_face_part_cap_off_dl_vertex + 78, 10, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(2, 1, 3, 0), gsSP1Triangle(2, 3, 4, 0), gsSP1Triangle(2, 4, 5, 0), gsSP1Triangle(6, 2, 5, 0), gsSP1Triangle(7, 6, 5, 0), gsSP1Triangle(7, 8, 6, 0), gsSP1Triangle(9, 6, 8, 0), gsSP1Triangle(9, 0, 6, 0), gsSP1Triangle(6, 0, 2, 0), gsSPEndDisplayList(), }; Gfx luigi_face_hair_cap_off_dl[] = { gsSPVertex(luigi_face_hair_cap_off_dl_vertex + 0, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(1, 0, 3, 0), gsSP1Triangle(3, 0, 4, 0), gsSP1Triangle(0, 5, 4, 0), gsSP1Triangle(5, 0, 2, 0), gsSP1Triangle(6, 5, 2, 0), gsSP1Triangle(6, 2, 7, 0), gsSP1Triangle(7, 2, 8, 0), gsSP1Triangle(9, 8, 2, 0), gsSP1Triangle(10, 9, 2, 0), gsSP1Triangle(10, 11, 9, 0), gsSP1Triangle(10, 12, 11, 0), gsSP1Triangle(12, 13, 11, 0), gsSP1Triangle(12, 7, 13, 0), gsSP1Triangle(14, 7, 12, 0), gsSP1Triangle(14, 15, 7, 0), gsSPVertex(luigi_face_hair_cap_off_dl_vertex + 16, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(3, 0, 2, 0), gsSP1Triangle(2, 4, 3, 0), gsSP1Triangle(4, 5, 3, 0), gsSP1Triangle(5, 4, 6, 0), gsSP1Triangle(7, 5, 6, 0), gsSP1Triangle(5, 7, 8, 0), gsSP1Triangle(8, 7, 9, 0), gsSP1Triangle(7, 10, 9, 0), gsSP1Triangle(9, 10, 11, 0), gsSP1Triangle(12, 9, 11, 0), gsSP1Triangle(11, 13, 12, 0), gsSP1Triangle(11, 14, 13, 0), gsSP1Triangle(15, 13, 14, 0), gsSPVertex(luigi_face_hair_cap_off_dl_vertex + 32, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(0, 3, 1, 0), gsSP1Triangle(4, 1, 3, 0), gsSP1Triangle(5, 4, 3, 0), gsSP1Triangle(6, 4, 5, 0), gsSP1Triangle(7, 6, 5, 0), gsSP1Triangle(7, 8, 6, 0), gsSP1Triangle(7, 9, 8, 0), gsSP1Triangle(10, 9, 7, 0), gsSP1Triangle(8, 9, 11, 0), gsSP1Triangle(12, 8, 11, 0), gsSP1Triangle(6, 8, 12, 0), gsSP1Triangle(13, 14, 15, 0), gsSPVertex(luigi_face_hair_cap_off_dl_vertex + 48, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(0, 2, 3, 0), gsSP1Triangle(0, 3, 4, 0), gsSP1Triangle(0, 4, 1, 0), gsSP1Triangle(5, 6, 7, 0), gsSP1Triangle(6, 5, 8, 0), gsSP1Triangle(8, 5, 9, 0), gsSP1Triangle(10, 9, 5, 0), gsSP1Triangle(10, 11, 9, 0), gsSP1Triangle(12, 11, 10, 0), gsSP1Triangle(12, 13, 11, 0), gsSP1Triangle(12, 14, 13, 0), gsSP1Triangle(14, 15, 13, 0), gsSPVertex(luigi_face_hair_cap_off_dl_vertex + 64, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(3, 1, 0, 0), gsSP1Triangle(4, 3, 0, 0), gsSP1Triangle(3, 4, 5, 0), gsSP1Triangle(5, 4, 6, 0), gsSP1Triangle(7, 6, 4, 0), gsSP1Triangle(6, 7, 8, 0), gsSP1Triangle(6, 8, 9, 0), gsSP1Triangle(9, 8, 10, 0), gsSP1Triangle(8, 11, 10, 0), gsSP1Triangle(11, 12, 10, 0), gsSP1Triangle(12, 13, 10, 0), gsSP1Triangle(14, 13, 12, 0), gsSP1Triangle(15, 14, 12, 0), gsSPVertex(luigi_face_hair_cap_off_dl_vertex + 80, 15, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(1, 0, 3, 0), gsSP1Triangle(3, 4, 1, 0), gsSP1Triangle(4, 3, 5, 0), gsSP1Triangle(6, 4, 5, 0), gsSP1Triangle(6, 5, 7, 0), gsSP1Triangle(8, 6, 7, 0), gsSP1Triangle(8, 9, 6, 0), gsSP1Triangle(9, 10, 6, 0), gsSP1Triangle(6, 10, 4, 0), gsSP1Triangle(10, 11, 4, 0), gsSP1Triangle(11, 1, 4, 0), gsSP1Triangle(11, 12, 1, 0), gsSP1Triangle(12, 13, 1, 0), gsSP1Triangle(1, 13, 14, 0), gsSP1Triangle(1, 14, 2, 0), gsSPEndDisplayList(), }; const Gfx luigi_hair_sideburn_decal_cap_off[] = { gsDPPipeSync(), gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, COMBINED, 0, 0, 0, COMBINED), gsDPSetCycleType(G_CYC_2CYCLE), gsSPTexture(65535, 65535, 0, 0, 1), gsSPLight(&luigi_black_lights_group.l, 1), gsSPCopyLightEXT(2, 11), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_32b_LOAD_BLOCK, 1, luigi_texture_hair_sideburn), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_32b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), gsDPLoadBlock(7, 0, 0, 1023, 128), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_32b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), gsDPSetTileSize(0, 0, 0, 124, 124), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_32b_LOAD_BLOCK, 1, luigi_texture_add_sideburn), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_32b_LOAD_BLOCK, 0, 512, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), gsDPLoadBlock(6, 0, 0, 1023, 128), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_32b, 8, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), gsDPSetTileSize(1, 0, 0, 124, 124), gsSPDisplayList(luigi_hair_sideburn_cap_off_dl), gsDPSetCycleType(G_CYC_1CYCLE), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_MODULATERGBFADEA, G_CC_MODULATERGBFADEA), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_skin_sideburn), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_hair_sideburn_cap_off_dl), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPEndDisplayList(), }; const Gfx luigi_face_cap_off_dl[] = { gsSPDisplayList(luigi_face_part_cap_off_dl), gsSPCopyLightsPlayerPart(HAIR), gsSPDisplayList(luigi_face_hair_cap_off_dl), gsSPEndDisplayList(), }; const Gfx luigi_cap_off_eyes_front[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_front), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_mustache_cap_off_dl), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPDisplayList(luigi_face_cap_off_dl), gsSPEndDisplayList(), }; const Gfx luigi_cap_off_eyes_half_closed[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_half_closed), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_mustache_cap_off_dl), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPDisplayList(luigi_face_cap_off_dl), gsSPEndDisplayList(), }; const Gfx luigi_cap_off_eyes_closed[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_closed), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_mustache_cap_off_dl), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPDisplayList(luigi_face_cap_off_dl), gsSPEndDisplayList(), }; const Gfx luigi_cap_off_eyes_right[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_right), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_mustache_cap_off_dl), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPDisplayList(luigi_face_cap_off_dl), gsSPEndDisplayList(), }; const Gfx luigi_cap_off_eyes_left[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_left), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_mustache_cap_off_dl), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPDisplayList(luigi_face_cap_off_dl), gsSPEndDisplayList(), }; const Gfx luigi_cap_off_eyes_up[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_up), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_mustache_cap_off_dl), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPDisplayList(luigi_face_cap_off_dl), gsSPEndDisplayList(), }; const Gfx luigi_cap_off_eyes_down[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_down), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_mustache_cap_off_dl), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPDisplayList(luigi_face_cap_off_dl), gsSPEndDisplayList(), }; const Gfx luigi_cap_off_eyes_dead[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_BLENDRGBFADEA, G_CC_BLENDRGBFADEA), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_dead), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_mustache_cap_off_dl), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPDisplayList(luigi_face_cap_off_dl), gsSPEndDisplayList(), }; const Gfx luigi_metal_cap_off_shared_dl[] = { gsSPDisplayList(luigi_eyes_cap_off_dl), gsSPDisplayList(luigi_mustache_cap_off_dl), gsSPDisplayList(luigi_hair_sideburn_cap_off_dl), gsSPDisplayList(luigi_face_part_cap_off_dl), gsSPDisplayList(luigi_face_hair_cap_off_dl), gsSPEndDisplayList(), }; static const Vtx luigi_left_hand_open_shared_dl_vertex[63] = { {{{20, -27, -27}, 0, {0, 0}, {0x8, 0xBF, 0x93, 0x0}}}, {{{13, -39, -31}, 0, {0, 0}, {0x18, 0x99, 0xB9, 0x0}}}, {{{-10, 14, -43}, 0, {0, 0}, {0xD3, 0x19, 0x8C, 0x0}}}, {{{1, -33, -23}, 0, {0, 0}, {0x9B, 0xBA, 0xE0, 0x0}}}, {{{6, -38, 7}, 0, {0, 0}, {0xAD, 0xAA, 0x2B, 0x0}}}, {{{20, -46, 12}, 0, {0, 0}, {0x26, 0x9D, 0x46, 0x0}}}, {{{26, -32, 6}, 0, {0, 0}, {0x34, 0xA5, 0x48, 0x0}}}, {{{20, -27, -27}, 0, {0, 0}, {0x9, 0xBF, 0x93, 0x0}}}, {{{41, -37, -36}, 0, {0, 0}, {0xD8, 0x9A, 0xBF, 0x0}}}, {{{25, -1, -44}, 0, {0, 0}, {0xE4, 0xE0, 0x88, 0x0}}}, {{{1, 15, -37}, 0, {0, 0}, {0xD2, 0x9, 0x8A, 0x0}}}, {{{-3, 35, -9}, 0, {0, 0}, {0xCD, 0x73, 0x13, 0x0}}}, {{{-17, 40, -8}, 0, {0, 0}, {0xBC, 0x69, 0x16, 0x0}}}, {{{-20, 22, -7}, 0, {0, 0}, {0x83, 0x6, 0x14, 0x0}}}, {{{-15, 4, -32}, 0, {0, 0}, {0x88, 0xDD, 0xE7, 0x0}}}, {{{-6, -3, 17}, 0, {0, 0}, {0x8F, 0xDA, 0x2D, 0x0}}}, {{{2, 3, 26}, 0, {0, 0}, {0xF5, 0x17, 0x7C, 0x0}}}, {{{-6, -3, 17}, 0, {0, 0}, {0x8F, 0xDA, 0x2D, 0x0}}}, {{{6, -38, 7}, 0, {0, 0}, {0xAD, 0xAA, 0x2B, 0x0}}}, {{{20, -46, 12}, 0, {0, 0}, {0x26, 0x9D, 0x46, 0x0}}}, {{{26, -32, 6}, 0, {0, 0}, {0x34, 0xA5, 0x48, 0x0}}}, {{{11, 5, 17}, 0, {0, 0}, {0xFF, 0x1B, 0x7C, 0x0}}}, {{{26, 16, 28}, 0, {0, 0}, {0xDA, 0xC, 0x79, 0x0}}}, {{{45, -34, 10}, 0, {0, 0}, {0xFE, 0x99, 0x4B, 0x0}}}, {{{41, -37, -36}, 0, {0, 0}, {0xD8, 0x9A, 0xBF, 0x0}}}, {{{89, -47, -37}, 0, {0, 0}, {0x57, 0xA9, 0xDF, 0x0}}}, {{{76, -18, -48}, 0, {0, 0}, {0x27, 0xA, 0x87, 0x0}}}, {{{25, -1, -44}, 0, {0, 0}, {0xE4, 0xE0, 0x88, 0x0}}}, {{{26, 41, -41}, 0, {0, 0}, {0x5, 0x34, 0x8C, 0x0}}}, {{{11, 29, -52}, 0, {0, 0}, {0xB9, 0x2A, 0x9F, 0x0}}}, {{{1, 15, -37}, 0, {0, 0}, {0xD2, 0x9, 0x8A, 0x0}}}, {{{-3, 35, -9}, 0, {0, 0}, {0xCD, 0x73, 0x13, 0x0}}}, {{{-3, 35, -9}, 0, {0, 0}, {0xCD, 0x73, 0x13, 0x0}}}, {{{6, 53, -9}, 0, {0, 0}, {0xAF, 0x61, 0x0, 0x0}}}, {{{11, 29, -52}, 0, {0, 0}, {0xB9, 0x2A, 0x9F, 0x0}}}, {{{26, 16, 28}, 0, {0, 0}, {0xDA, 0xC, 0x79, 0x0}}}, {{{11, 5, 17}, 0, {0, 0}, {0xFF, 0x1B, 0x7C, 0x0}}}, {{{2, 3, 26}, 0, {0, 0}, {0xF5, 0x17, 0x7C, 0x0}}}, {{{-17, 40, -8}, 0, {0, 0}, {0xBC, 0x69, 0x16, 0x0}}}, {{{-20, 22, -7}, 0, {0, 0}, {0x83, 0x6, 0x14, 0x0}}}, {{{-6, -3, 17}, 0, {0, 0}, {0x8F, 0xDA, 0x2D, 0x0}}}, {{{-15, 4, -32}, 0, {0, 0}, {0x88, 0xDD, 0xE7, 0x0}}}, {{{70, 89, -20}, 0, {0, 0}, {0xEC, 0x7D, 0xF6, 0x0}}}, {{{77, 41, 21}, 0, {0, 0}, {0x1D, 0x2A, 0x74, 0x0}}}, {{{83, -17, 10}, 0, {0, 0}, {0x4E, 0xBC, 0x4B, 0x0}}}, {{{45, -34, 10}, 0, {0, 0}, {0xFE, 0x99, 0x4B, 0x0}}}, {{{89, -47, -37}, 0, {0, 0}, {0x57, 0xA9, 0xDF, 0x0}}}, {{{89, -6, -27}, 0, {0, 0}, {0x5D, 0xF5, 0xAA, 0x0}}}, {{{76, -18, -48}, 0, {0, 0}, {0x27, 0xA, 0x87, 0x0}}}, {{{89, -6, -27}, 0, {0, 0}, {0x5D, 0xF5, 0xAA, 0x0}}}, {{{89, -47, -37}, 0, {0, 0}, {0x57, 0xA9, 0xDF, 0x0}}}, {{{69, 10, -36}, 0, {0, 0}, {0x35, 0x1C, 0x90, 0x0}}}, {{{26, 41, -41}, 0, {0, 0}, {0x5, 0x34, 0x8C, 0x0}}}, {{{78, 59, -34}, 0, {0, 0}, {0xFE, 0xB, 0x81, 0x0}}}, {{{70, 89, -20}, 0, {0, 0}, {0xEC, 0x7D, 0xF6, 0x0}}}, {{{6, 53, -9}, 0, {0, 0}, {0xAF, 0x61, 0x0, 0x0}}}, {{{11, 29, -52}, 0, {0, 0}, {0xB9, 0x2A, 0x9F, 0x0}}}, {{{119, 70, -42}, 0, {0, 0}, {0x3D, 0x44, 0xA8, 0x0}}}, {{{133, 28, -40}, 0, {0, 0}, {0x46, 0xC9, 0xA5, 0x0}}}, {{{141, 34, -7}, 0, {0, 0}, {0x78, 0xC, 0x29, 0x0}}}, {{{121, 73, -21}, 0, {0, 0}, {0x47, 0x60, 0x2B, 0x0}}}, {{{77, 41, 21}, 0, {0, 0}, {0x1D, 0x2A, 0x74, 0x0}}}, {{{83, -17, 10}, 0, {0, 0}, {0x4E, 0xBC, 0x4B, 0x0}}}, }; const Gfx luigi_left_hand_open_shared_dl[] = { gsSPVertex(luigi_left_hand_open_shared_dl_vertex + 0, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(1, 3, 2, 0), gsSP1Triangle(4, 3, 1, 0), gsSP1Triangle(5, 4, 1, 0), gsSP1Triangle(6, 5, 1, 0), gsSP1Triangle(1, 7, 6, 0), gsSP1Triangle(6, 7, 8, 0), gsSP1Triangle(7, 9, 8, 0), gsSP1Triangle(7, 10, 9, 0), gsSP1Triangle(2, 10, 7, 0), gsSP1Triangle(11, 10, 2, 0), gsSP1Triangle(2, 12, 11, 0), gsSP1Triangle(2, 13, 12, 0), gsSP1Triangle(2, 14, 13, 0), gsSP1Triangle(3, 14, 2, 0), gsSP1Triangle(15, 14, 3, 0), gsSP1Triangle(3, 4, 15, 0), gsSPVertex(luigi_left_hand_open_shared_dl_vertex + 16, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(0, 2, 3, 0), gsSP1Triangle(0, 3, 4, 0), gsSP1Triangle(4, 5, 0, 0), gsSP1Triangle(6, 5, 4, 0), gsSP1Triangle(4, 7, 6, 0), gsSP1Triangle(4, 8, 7, 0), gsSP1Triangle(7, 8, 9, 0), gsSP1Triangle(9, 8, 10, 0), gsSP1Triangle(8, 11, 10, 0), gsSP1Triangle(10, 11, 12, 0), gsSP1Triangle(11, 13, 12, 0), gsSP1Triangle(14, 13, 11, 0), gsSP1Triangle(13, 14, 15, 0), gsSPVertex(luigi_left_hand_open_shared_dl_vertex + 32, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(0, 3, 1, 0), gsSP1Triangle(0, 4, 3, 0), gsSP1Triangle(5, 4, 0, 0), gsSP1Triangle(0, 6, 5, 0), gsSP1Triangle(6, 7, 5, 0), gsSP1Triangle(7, 8, 5, 0), gsSP1Triangle(8, 7, 9, 0), gsSP1Triangle(3, 10, 1, 0), gsSP1Triangle(3, 11, 10, 0), gsSP1Triangle(12, 11, 3, 0), gsSP1Triangle(13, 12, 3, 0), gsSP1Triangle(14, 12, 13, 0), gsSP1Triangle(14, 15, 12, 0), gsSPVertex(luigi_left_hand_open_shared_dl_vertex + 48, 15, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(0, 3, 1, 0), gsSP1Triangle(0, 4, 3, 0), gsSP1Triangle(4, 5, 3, 0), gsSP1Triangle(6, 5, 4, 0), gsSP1Triangle(4, 7, 6, 0), gsSP1Triangle(7, 4, 8, 0), gsSP1Triangle(9, 5, 6, 0), gsSP1Triangle(5, 9, 10, 0), gsSP1Triangle(9, 11, 10, 0), gsSP1Triangle(12, 11, 9, 0), gsSP1Triangle(6, 12, 9, 0), gsSP1Triangle(12, 6, 13, 0), gsSP1Triangle(11, 12, 13, 0), gsSP1Triangle(14, 11, 13, 0), gsSP1Triangle(10, 11, 14, 0), gsSP1Triangle(1, 10, 14, 0), gsSP1Triangle(5, 10, 1, 0), gsSP1Triangle(3, 5, 1, 0), gsSPEndDisplayList(), }; const Gfx luigi_left_hand_open[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c gsSPDisplayList(luigi_left_hand_open_shared_dl), gsSPEndDisplayList(), }; static const Vtx luigi_right_hand_open_dl_vertex[61] = { {{{75, 11, 32}, 0, {0, 0}, {0x3C, 0x23, 0x6A, 0x0}}}, {{{84, 59, 25}, 0, {0, 0}, {0x4, 0x15, 0x7D, 0x0}}}, {{{34, 43, 36}, 0, {0, 0}, {0xC, 0x3D, 0x6F, 0x0}}}, {{{76, 88, 9}, 0, {0, 0}, {0xEF, 0x7E, 0x0, 0x0}}}, {{{124, 69, 30}, 0, {0, 0}, {0x45, 0x4A, 0x4E, 0x0}}}, {{{136, 28, 31}, 0, {0, 0}, {0x4A, 0xCF, 0x5B, 0x0}}}, {{{93, -5, 22}, 0, {0, 0}, {0x62, 0xFA, 0x51, 0x0}}}, {{{75, 11, 32}, 0, {0, 0}, {0x3D, 0x23, 0x6A, 0x0}}}, {{{81, -15, 45}, 0, {0, 0}, {0x2F, 0x13, 0x75, 0x0}}}, {{{32, 2, 43}, 0, {0, 0}, {0xE9, 0xEB, 0x7B, 0x0}}}, {{{20, 33, 48}, 0, {0, 0}, {0xBF, 0x32, 0x61, 0x0}}}, {{{13, 53, 5}, 0, {0, 0}, {0xB0, 0x63, 0xFC, 0x0}}}, {{{30, 13, -30}, 0, {0, 0}, {0xD3, 0x3, 0x89, 0x0}}}, {{{81, 37, -28}, 0, {0, 0}, {0x18, 0x20, 0x87, 0x0}}}, {{{125, 71, 9}, 0, {0, 0}, {0x47, 0x5B, 0xCB, 0x0}}}, {{{143, 31, -1}, 0, {0, 0}, {0x76, 0x6, 0xD2, 0x0}}}, {{{86, -19, -13}, 0, {0, 0}, {0x49, 0xB6, 0xB8, 0x0}}}, {{{143, 31, -1}, 0, {0, 0}, {0x76, 0x6, 0xD2, 0x0}}}, {{{136, 28, 31}, 0, {0, 0}, {0x4A, 0xCF, 0x5B, 0x0}}}, {{{93, -5, 22}, 0, {0, 0}, {0x62, 0xFA, 0x51, 0x0}}}, {{{93, -45, 36}, 0, {0, 0}, {0x58, 0xAB, 0x23, 0x0}}}, {{{81, -15, 45}, 0, {0, 0}, {0x2F, 0x13, 0x75, 0x0}}}, {{{46, -35, 37}, 0, {0, 0}, {0xD8, 0xA1, 0x4B, 0x0}}}, {{{32, 2, 43}, 0, {0, 0}, {0xE9, 0xEB, 0x7B, 0x0}}}, {{{26, -24, 28}, 0, {0, 0}, {0xD, 0xC8, 0x71, 0x0}}}, {{{9, 18, 35}, 0, {0, 0}, {0xD8, 0x13, 0x77, 0x0}}}, {{{20, 33, 48}, 0, {0, 0}, {0xBF, 0x32, 0x61, 0x0}}}, {{{3, 36, 6}, 0, {0, 0}, {0xCE, 0x72, 0xE6, 0x0}}}, {{{13, 53, 5}, 0, {0, 0}, {0xB0, 0x63, 0xFC, 0x0}}}, {{{30, 13, -30}, 0, {0, 0}, {0xD3, 0x3, 0x89, 0x0}}}, {{{16, 4, -17}, 0, {0, 0}, {0xF9, 0x11, 0x82, 0x0}}}, {{{30, -32, -4}, 0, {0, 0}, {0x2F, 0x9E, 0xBE, 0x0}}}, {{{30, 13, -30}, 0, {0, 0}, {0xD3, 0x3, 0x89, 0x0}}}, {{{48, -35, -9}, 0, {0, 0}, {0xF7, 0x94, 0xBE, 0x0}}}, {{{30, -32, -4}, 0, {0, 0}, {0x2F, 0x9E, 0xBE, 0x0}}}, {{{86, -19, -13}, 0, {0, 0}, {0x49, 0xB6, 0xB8, 0x0}}}, {{{81, 37, -28}, 0, {0, 0}, {0x18, 0x20, 0x87, 0x0}}}, {{{143, 31, -1}, 0, {0, 0}, {0x76, 0x6, 0xD2, 0x0}}}, {{{125, 71, 9}, 0, {0, 0}, {0x47, 0x5B, 0xCB, 0x0}}}, {{{93, -45, 36}, 0, {0, 0}, {0x58, 0xAB, 0x23, 0x0}}}, {{{46, -35, 37}, 0, {0, 0}, {0xD8, 0xA1, 0x4B, 0x0}}}, {{{26, -24, 28}, 0, {0, 0}, {0xD, 0xC8, 0x71, 0x0}}}, {{{19, -36, 33}, 0, {0, 0}, {0x1A, 0x9F, 0x4E, 0x0}}}, {{{-1, 18, 42}, 0, {0, 0}, {0xD9, 0x23, 0x74, 0x0}}}, {{{9, 18, 35}, 0, {0, 0}, {0xD8, 0x13, 0x77, 0x0}}}, {{{3, 36, 6}, 0, {0, 0}, {0xCE, 0x72, 0xE6, 0x0}}}, {{{-9, 41, 5}, 0, {0, 0}, {0xBB, 0x67, 0xE5, 0x0}}}, {{{7, 1, -26}, 0, {0, 0}, {0xEE, 0xD, 0x83, 0x0}}}, {{{3, 36, 6}, 0, {0, 0}, {0xCE, 0x72, 0xE6, 0x0}}}, {{{16, 4, -17}, 0, {0, 0}, {0xF9, 0x11, 0x82, 0x0}}}, {{{7, 1, -26}, 0, {0, 0}, {0xEE, 0xD, 0x83, 0x0}}}, {{{30, -32, -4}, 0, {0, 0}, {0x2F, 0x9E, 0xBE, 0x0}}}, {{{25, -46, -9}, 0, {0, 0}, {0x21, 0x97, 0xC1, 0x0}}}, {{{19, -36, 33}, 0, {0, 0}, {0x1A, 0x9F, 0x4E, 0x0}}}, {{{11, -38, -3}, 0, {0, 0}, {0xA9, 0xAA, 0xE0, 0x0}}}, {{{7, -30, 26}, 0, {0, 0}, {0x9A, 0xC0, 0x29, 0x0}}}, {{{-1, 18, 42}, 0, {0, 0}, {0xD9, 0x23, 0x74, 0x0}}}, {{{-7, 7, 32}, 0, {0, 0}, {0x89, 0xE2, 0x20, 0x0}}}, {{{-12, 23, 6}, 0, {0, 0}, {0x82, 0x7, 0xF1, 0x0}}}, {{{-9, 41, 5}, 0, {0, 0}, {0xBB, 0x67, 0xE5, 0x0}}}, {{{0, -4, -15}, 0, {0, 0}, {0x8C, 0xDA, 0xDC, 0x0}}}, }; const Gfx luigi_right_hand_open_dl[] = { gsSPVertex(luigi_right_hand_open_dl_vertex + 0, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(2, 1, 3, 0), gsSP1Triangle(3, 1, 4, 0), gsSP1Triangle(5, 4, 1, 0), gsSP1Triangle(6, 5, 1, 0), gsSP1Triangle(6, 1, 7, 0), gsSP1Triangle(6, 7, 8, 0), gsSP1Triangle(7, 2, 8, 0), gsSP1Triangle(2, 9, 8, 0), gsSP1Triangle(2, 10, 9, 0), gsSP1Triangle(10, 2, 11, 0), gsSP1Triangle(3, 11, 2, 0), gsSP1Triangle(11, 3, 12, 0), gsSP1Triangle(3, 13, 12, 0), gsSP1Triangle(13, 3, 14, 0), gsSP1Triangle(4, 14, 3, 0), gsSP1Triangle(4, 15, 14, 0), gsSP1Triangle(5, 15, 4, 0), gsSPVertex(luigi_right_hand_open_dl_vertex + 16, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(0, 2, 3, 0), gsSP1Triangle(0, 3, 4, 0), gsSP1Triangle(4, 3, 5, 0), gsSP1Triangle(5, 6, 4, 0), gsSP1Triangle(5, 7, 6, 0), gsSP1Triangle(6, 7, 8, 0), gsSP1Triangle(7, 9, 8, 0), gsSP1Triangle(7, 10, 9, 0), gsSP1Triangle(11, 9, 10, 0), gsSP1Triangle(10, 12, 11, 0), gsSP1Triangle(12, 13, 11, 0), gsSP1Triangle(13, 14, 11, 0), gsSP1Triangle(15, 14, 13, 0), gsSPVertex(luigi_right_hand_open_dl_vertex + 32, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(0, 3, 1, 0), gsSP1Triangle(0, 4, 3, 0), gsSP1Triangle(4, 5, 3, 0), gsSP1Triangle(4, 6, 5, 0), gsSP1Triangle(1, 3, 7, 0), gsSP1Triangle(7, 8, 1, 0), gsSP1Triangle(1, 8, 2, 0), gsSP1Triangle(8, 9, 2, 0), gsSP1Triangle(2, 9, 10, 0), gsSP1Triangle(11, 10, 9, 0), gsSP1Triangle(9, 12, 11, 0), gsSP1Triangle(11, 12, 13, 0), gsSP1Triangle(13, 14, 11, 0), gsSP1Triangle(15, 14, 13, 0), gsSPVertex(luigi_right_hand_open_dl_vertex + 48, 13, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(2, 1, 3, 0), gsSP1Triangle(3, 4, 2, 0), gsSP1Triangle(5, 4, 3, 0), gsSP1Triangle(5, 6, 4, 0), gsSP1Triangle(5, 7, 6, 0), gsSP1Triangle(8, 7, 5, 0), gsSP1Triangle(8, 9, 7, 0), gsSP1Triangle(10, 9, 8, 0), gsSP1Triangle(11, 10, 8, 0), gsSP1Triangle(2, 10, 11, 0), gsSP1Triangle(2, 12, 10, 0), gsSP1Triangle(6, 12, 2, 0), gsSP1Triangle(4, 6, 2, 0), gsSP1Triangle(12, 6, 7, 0), gsSP1Triangle(7, 9, 12, 0), gsSP1Triangle(9, 10, 12, 0), gsSPEndDisplayList(), }; const Gfx luigi_right_hand_open[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c gsSPDisplayList(luigi_right_hand_open_dl), gsSPEndDisplayList(), }; const Gfx luigi_metal_right_hand_open[] = { gsSPDisplayList(luigi_right_hand_open_dl), gsDPPipeSync(), gsSPClearGeometryMode(G_TEXTURE_GEN), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), gsSPEndDisplayList(), }; static const Vtx luigi_right_hand_cap_l_logo_dl_vertex[5] = { {{{131, 47, -1}, 0, {1104, 228}, {0xD7, 0x60, 0xB8, 0xFE}}}, {{{107, -19, -33}, 0, {474, 32}, {0xD1, 0xE, 0x8B, 0xFE}}}, {{{78, 11, 40}, 0, {772, 818}, {0xD0, 0x3E, 0x9C, 0xFE}}}, {{{70, -52, 35}, 0, {196, 800}, {0xC5, 0xDE, 0x95, 0xFE}}}, {{{114, -92, -11}, 0, {-148, 188}, {0xC3, 0xB7, 0xAB, 0xFE}}}, }; static const Vtx luigi_right_hand_cap_hand_position_dl_vertex[46] = { {{{1, 24, 35}, 0, {0, 0}, {0xD4, 0x3C, 0x67, 0xFE}}}, {{{29, 7, 48}, 0, {0, 0}, {0xC2, 0xFA, 0x6F, 0xFE}}}, {{{29, 62, 34}, 0, {0, 0}, {0xCD, 0x4D, 0x58, 0xFE}}}, {{{23, -25, 35}, 0, {0, 0}, {0x4, 0xC2, 0x6F, 0xFE}}}, {{{-13, 26, 41}, 0, {0, 0}, {0xEE, 0x3C, 0x6F, 0xFE}}}, {{{-2, 41, 0}, 0, {0, 0}, {0xEE, 0x72, 0xCA, 0xFE}}}, {{{11, 60, -3}, 0, {0, 0}, {0xAA, 0x5A, 0xE6, 0xFE}}}, {{{58, 81, 0}, 0, {0, 0}, {0x13, 0x7B, 0xE8, 0xFE}}}, {{{54, 54, 44}, 0, {0, 0}, {0x1F, 0x51, 0x5D, 0xFE}}}, {{{56, 11, 65}, 0, {0, 0}, {0xFC, 0x1B, 0x7C, 0xFE}}}, {{{75, -32, 65}, 0, {0, 0}, {0x8, 0xAE, 0x61, 0xFE}}}, {{{55, -43, -3}, 0, {0, 0}, {0x0, 0x85, 0xE0, 0xFE}}}, {{{31, -39, 0}, 0, {0, 0}, {0x42, 0xA2, 0xCA, 0xFE}}}, {{{13, -37, 41}, 0, {0, 0}, {0x12, 0xB0, 0x61, 0xFE}}}, {{{-15, -12, 7}, 0, {0, 0}, {0x8B, 0xCF, 0xF8, 0xFE}}}, {{{-19, 47, -4}, 0, {0, 0}, {0xAC, 0x55, 0xD3, 0xFE}}}, {{{4, -3, -32}, 0, {0, 0}, {0x11, 0x6, 0x82, 0xFE}}}, {{{-19, 47, -4}, 0, {0, 0}, {0xAC, 0x55, 0xD3, 0xFE}}}, {{{-2, 41, 0}, 0, {0, 0}, {0xEE, 0x72, 0xCA, 0xFE}}}, {{{16, 1, -22}, 0, {0, 0}, {0x4, 0x0, 0x81, 0xFE}}}, {{{35, 9, -36}, 0, {0, 0}, {0xE4, 0xF4, 0x85, 0xFE}}}, {{{11, 60, -3}, 0, {0, 0}, {0xAA, 0x5A, 0xE6, 0xFE}}}, {{{58, 81, 0}, 0, {0, 0}, {0x13, 0x7B, 0xE8, 0xFE}}}, {{{85, 30, -32}, 0, {0, 0}, {0x4F, 0x21, 0xA2, 0xFE}}}, {{{96, 39, 24}, 0, {0, 0}, {0x6C, 0x3A, 0x21, 0xFE}}}, {{{54, 54, 44}, 0, {0, 0}, {0x1F, 0x51, 0x5D, 0xFE}}}, {{{85, 15, 52}, 0, {0, 0}, {0x40, 0x30, 0x63, 0xFE}}}, {{{56, 11, 65}, 0, {0, 0}, {0xFC, 0x1B, 0x7C, 0xFE}}}, {{{95, -8, 52}, 0, {0, 0}, {0x60, 0x6, 0x52, 0xFE}}}, {{{75, -32, 65}, 0, {0, 0}, {0x8, 0xAE, 0x61, 0xFE}}}, {{{103, -25, 1}, 0, {0, 0}, {0x68, 0xC4, 0xD6, 0xFE}}}, {{{55, -43, -3}, 0, {0, 0}, {0x0, 0x85, 0xE0, 0xFE}}}, {{{35, 9, -36}, 0, {0, 0}, {0xE4, 0xF4, 0x85, 0xFE}}}, {{{55, -43, -3}, 0, {0, 0}, {0x0, 0x85, 0xE0, 0xFE}}}, {{{31, -39, 0}, 0, {0, 0}, {0x42, 0xA2, 0xCA, 0xFE}}}, {{{16, 1, -22}, 0, {0, 0}, {0x4, 0x0, 0x81, 0xFE}}}, {{{4, -3, -32}, 0, {0, 0}, {0x11, 0x6, 0x82, 0xFE}}}, {{{24, -55, -4}, 0, {0, 0}, {0x4, 0x8A, 0xD1, 0xFE}}}, {{{13, -37, 41}, 0, {0, 0}, {0x12, 0xB0, 0x61, 0xFE}}}, {{{-15, -12, 7}, 0, {0, 0}, {0x8B, 0xCF, 0xF8, 0xFE}}}, {{{-19, 47, -4}, 0, {0, 0}, {0xAC, 0x55, 0xD3, 0xFE}}}, {{{85, 30, -32}, 0, {0, 0}, {0x4F, 0x21, 0xA2, 0xFE}}}, {{{103, -25, 1}, 0, {0, 0}, {0x68, 0xC4, 0xD6, 0xFE}}}, {{{96, 39, 24}, 0, {0, 0}, {0x6C, 0x3A, 0x21, 0xFE}}}, {{{95, -8, 52}, 0, {0, 0}, {0x60, 0x6, 0x52, 0xFE}}}, {{{85, 15, 52}, 0, {0, 0}, {0x40, 0x30, 0x63, 0xFE}}}, }; static const Vtx luigi_right_hand_cap_top_dl_vertex[51] = { {{{192, 11, -2}, 0, {0, 0}, {0x4C, 0x29, 0xA2, 0xFE}}}, {{{107, -19, -33}, 0, {0, 0}, {0xD1, 0xE, 0x8B, 0xFE}}}, {{{131, 47, -1}, 0, {0, 0}, {0xD7, 0x60, 0xB8, 0xFE}}}, {{{182, -72, -8}, 0, {0, 0}, {0x4E, 0xD9, 0xA3, 0xFE}}}, {{{192, 11, -2}, 0, {0, 0}, {0x4B, 0x29, 0xA2, 0xFE}}}, {{{114, -92, -11}, 0, {0, 0}, {0xC3, 0xB7, 0xAB, 0xFE}}}, {{{151, -168, 67}, 0, {0, 0}, {0xF4, 0x87, 0xDC, 0xFE}}}, {{{228, -121, 117}, 0, {0, 0}, {0x67, 0xCD, 0xCB, 0xFE}}}, {{{246, 29, 128}, 0, {0, 0}, {0x73, 0x20, 0xD4, 0xFE}}}, {{{183, 100, 86}, 0, {0, 0}, {0x11, 0x7C, 0xED, 0xFE}}}, {{{211, 81, 156}, 0, {0, 0}, {0x22, 0x6D, 0x37, 0xFE}}}, {{{160, 65, 148}, 0, {0, 0}, {0xB3, 0x47, 0x47, 0xFE}}}, {{{129, 65, 103}, 0, {0, 0}, {0xA6, 0x51, 0x27, 0xFE}}}, {{{78, 11, 40}, 0, {0, 0}, {0xD0, 0x3E, 0x9C, 0xFE}}}, {{{45, 49, 53}, 0, {0, 0}, {0xA7, 0x5B, 0xA, 0xFE}}}, {{{18, -13, 33}, 0, {0, 0}, {0x83, 0x10, 0xED, 0xFE}}}, {{{70, -52, 35}, 0, {0, 0}, {0xC5, 0xDE, 0x95, 0xFE}}}, {{{18, -13, 33}, 0, {0, 0}, {0x83, 0x10, 0xED, 0xFE}}}, {{{78, 11, 40}, 0, {0, 0}, {0xD0, 0x3E, 0x9C, 0xFE}}}, {{{29, -82, 43}, 0, {0, 0}, {0x94, 0xBD, 0x0, 0xFE}}}, {{{106, -124, 90}, 0, {0, 0}, {0x9D, 0xB1, 0x9, 0xFE}}}, {{{114, -92, -11}, 0, {0, 0}, {0xC3, 0xB7, 0xAB, 0xFE}}}, {{{151, -168, 67}, 0, {0, 0}, {0xF4, 0x87, 0xDC, 0xFE}}}, {{{137, -137, 134}, 0, {0, 0}, {0x9E, 0xDF, 0x4A, 0xFE}}}, {{{181, -167, 138}, 0, {0, 0}, {0x6, 0x87, 0x26, 0xFE}}}, {{{228, -121, 117}, 0, {0, 0}, {0x67, 0xCD, 0xCB, 0xFE}}}, {{{273, -105, 188}, 0, {0, 0}, {0x60, 0xBF, 0x34, 0xFE}}}, {{{285, -6, 196}, 0, {0, 0}, {0x7A, 0x23, 0xB, 0xFE}}}, {{{246, 29, 128}, 0, {0, 0}, {0x73, 0x20, 0xD4, 0xFE}}}, {{{211, 81, 156}, 0, {0, 0}, {0x22, 0x6D, 0x37, 0xFE}}}, {{{228, 1, 228}, 0, {0, 0}, {0x14, 0x22, 0x79, 0xFE}}}, {{{192, 42, 190}, 0, {0, 0}, {0xB2, 0x23, 0x5E, 0xFE}}}, {{{192, 42, 190}, 0, {0, 0}, {0xB2, 0x23, 0x5E, 0xFE}}}, {{{211, 81, 156}, 0, {0, 0}, {0x22, 0x6D, 0x37, 0xFE}}}, {{{160, 65, 148}, 0, {0, 0}, {0xB3, 0x47, 0x47, 0xFE}}}, {{{273, -105, 188}, 0, {0, 0}, {0x60, 0xBF, 0x34, 0xFE}}}, {{{285, -6, 196}, 0, {0, 0}, {0x7A, 0x23, 0xB, 0xFE}}}, {{{228, 1, 228}, 0, {0, 0}, {0x14, 0x22, 0x79, 0xFE}}}, {{{216, -104, 220}, 0, {0, 0}, {0xE5, 0xCC, 0x71, 0xFE}}}, {{{181, -167, 138}, 0, {0, 0}, {0x6, 0x87, 0x26, 0xFE}}}, {{{171, -129, 178}, 0, {0, 0}, {0xB2, 0xD1, 0x59, 0xFE}}}, {{{137, -137, 134}, 0, {0, 0}, {0x9E, 0xDF, 0x4A, 0xFE}}}, {{{65, -53, 55}, 0, {0, 0}, {0xB6, 0x1, 0x67, 0xFE}}}, {{{29, -82, 43}, 0, {0, 0}, {0x94, 0xBD, 0x0, 0xFE}}}, {{{106, -124, 90}, 0, {0, 0}, {0x9D, 0xB1, 0x9, 0xFE}}}, {{{18, -13, 33}, 0, {0, 0}, {0x83, 0x10, 0xED, 0xFE}}}, {{{73, 11, 60}, 0, {0, 0}, {0xBB, 0xFB, 0x6B, 0xFE}}}, {{{45, 49, 53}, 0, {0, 0}, {0xA7, 0x5B, 0xA, 0xFE}}}, {{{129, 65, 103}, 0, {0, 0}, {0xA6, 0x51, 0x27, 0xFE}}}, {{{45, 49, 53}, 0, {0, 0}, {0xA7, 0x5B, 0xA, 0xFE}}}, {{{73, 11, 60}, 0, {0, 0}, {0xBB, 0xFB, 0x6B, 0xFE}}}, }; static const Vtx luigi_right_hand_cap_bottom_dl_vertex[10] = { {{{65, -53, 55}, 0, {0, 0}, {0xB6, 0x1, 0x67, 0xFE}}}, {{{106, -124, 90}, 0, {0, 0}, {0x9D, 0xB1, 0x9, 0xFE}}}, {{{137, -137, 134}, 0, {0, 0}, {0x9E, 0xDF, 0x4A, 0xFE}}}, {{{73, 11, 60}, 0, {0, 0}, {0xBB, 0xFB, 0x6B, 0xFE}}}, {{{129, 65, 103}, 0, {0, 0}, {0xA6, 0x51, 0x27, 0xFE}}}, {{{160, 65, 148}, 0, {0, 0}, {0xB3, 0x47, 0x47, 0xFE}}}, {{{192, 42, 190}, 0, {0, 0}, {0xB2, 0x23, 0x5E, 0xFE}}}, {{{171, -129, 178}, 0, {0, 0}, {0xB2, 0xD1, 0x59, 0xFE}}}, {{{216, -104, 220}, 0, {0, 0}, {0xE5, 0xCC, 0x71, 0xFE}}}, {{{228, 1, 228}, 0, {0, 0}, {0x14, 0x22, 0x79, 0xFE}}}, }; const Gfx luigi_right_hand_cap_l_logo_dl[] = { gsSPVertex(luigi_right_hand_cap_l_logo_dl_vertex + 0, 5, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(1, 3, 2, 0), gsSP1Triangle(1, 4, 3, 0), gsSPEndDisplayList(), }; const Gfx luigi_right_hand_cap_top_dl[] = { gsSPVertex(luigi_right_hand_cap_top_dl_vertex + 0, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(3, 1, 4, 0), gsSP1Triangle(5, 1, 3, 0), gsSP1Triangle(3, 6, 5, 0), gsSP1Triangle(7, 6, 3, 0), gsSP1Triangle(7, 3, 8, 0), gsSP1Triangle(3, 0, 8, 0), gsSP1Triangle(0, 9, 8, 0), gsSP1Triangle(10, 8, 9, 0), gsSP1Triangle(11, 10, 9, 0), gsSP1Triangle(9, 12, 11, 0), gsSP1Triangle(9, 2, 12, 0), gsSP1Triangle(2, 9, 4, 0), gsSP1Triangle(13, 12, 2, 0), gsSP1Triangle(13, 14, 12, 0), gsSP1Triangle(13, 15, 14, 0), gsSPVertex(luigi_right_hand_cap_top_dl_vertex + 16, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(3, 1, 0, 0), gsSP1Triangle(3, 0, 4, 0), gsSP1Triangle(5, 4, 0, 0), gsSP1Triangle(4, 5, 6, 0), gsSP1Triangle(4, 6, 7, 0), gsSP1Triangle(6, 8, 7, 0), gsSP1Triangle(6, 9, 8, 0), gsSP1Triangle(9, 10, 8, 0), gsSP1Triangle(11, 10, 9, 0), gsSP1Triangle(9, 12, 11, 0), gsSP1Triangle(13, 11, 12, 0), gsSP1Triangle(14, 11, 13, 0), gsSP1Triangle(14, 13, 15, 0), gsSPVertex(luigi_right_hand_cap_top_dl_vertex + 32, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(3, 4, 5, 0), gsSP1Triangle(6, 3, 5, 0), gsSP1Triangle(7, 3, 6, 0), gsSP1Triangle(8, 7, 6, 0), gsSP1Triangle(9, 7, 8, 0), gsSP1Triangle(10, 11, 12, 0), gsSP1Triangle(10, 13, 11, 0), gsSP1Triangle(10, 14, 13, 0), gsSP1Triangle(15, 13, 14, 0), gsSPVertex(luigi_right_hand_cap_top_dl_vertex + 48, 3, 0), gsSP1Triangle(0, 1, 2, 0), gsSPEndDisplayList(), }; const Gfx luigi_right_hand_cap_hand_position_dl[] = { gsSPVertex(luigi_right_hand_cap_hand_position_dl_vertex + 0, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(1, 0, 3, 0), gsSP1Triangle(3, 0, 4, 0), gsSP1Triangle(4, 0, 5, 0), gsSP1Triangle(6, 5, 0, 0), gsSP1Triangle(2, 6, 0, 0), gsSP1Triangle(7, 6, 2, 0), gsSP1Triangle(2, 8, 7, 0), gsSP1Triangle(8, 2, 9, 0), gsSP1Triangle(2, 1, 9, 0), gsSP1Triangle(10, 9, 1, 0), gsSP1Triangle(10, 1, 3, 0), gsSP1Triangle(11, 10, 3, 0), gsSP1Triangle(3, 12, 11, 0), gsSP1Triangle(12, 3, 13, 0), gsSP1Triangle(4, 13, 3, 0), gsSP1Triangle(4, 14, 13, 0), gsSP1Triangle(15, 14, 4, 0), gsSP1Triangle(5, 15, 4, 0), gsSPVertex(luigi_right_hand_cap_hand_position_dl_vertex + 16, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(2, 3, 0, 0), gsSP1Triangle(4, 3, 2, 0), gsSP1Triangle(5, 4, 2, 0), gsSP1Triangle(5, 6, 4, 0), gsSP1Triangle(6, 7, 4, 0), gsSP1Triangle(6, 8, 7, 0), gsSP1Triangle(9, 8, 6, 0), gsSP1Triangle(8, 9, 10, 0), gsSP1Triangle(10, 9, 11, 0), gsSP1Triangle(12, 10, 11, 0), gsSP1Triangle(13, 12, 11, 0), gsSP1Triangle(14, 12, 13, 0), gsSP1Triangle(15, 14, 13, 0), gsSP1Triangle(4, 14, 15, 0), gsSPVertex(luigi_right_hand_cap_hand_position_dl_vertex + 32, 14, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(2, 3, 0, 0), gsSP1Triangle(4, 3, 2, 0), gsSP1Triangle(2, 5, 4, 0), gsSP1Triangle(6, 5, 2, 0), gsSP1Triangle(6, 7, 5, 0), gsSP1Triangle(5, 7, 4, 0), gsSP1Triangle(4, 7, 8, 0), gsSP1Triangle(0, 9, 10, 0), gsSP1Triangle(9, 11, 10, 0), gsSP1Triangle(10, 11, 12, 0), gsSP1Triangle(12, 11, 13, 0), gsSPEndDisplayList(), }; const Gfx luigi_right_hand_cap_bottom_dl[] = { gsSPVertex(luigi_right_hand_cap_bottom_dl_vertex + 0, 10, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(3, 0, 2, 0), gsSP1Triangle(4, 3, 2, 0), gsSP1Triangle(5, 4, 2, 0), gsSP1Triangle(6, 5, 2, 0), gsSP1Triangle(6, 2, 7, 0), gsSP1Triangle(6, 7, 8, 0), gsSP1Triangle(8, 9, 6, 0), gsSPEndDisplayList(), }; const Gfx luigi_right_hand_cap_decal[] = { gsDPPipeSync(), gsDPSetCombineLERP(TEXEL0, SHADE, TEXEL1, SHADE, TEXEL0, 0, ENVIRONMENT, 0, COMBINED, TEXEL0, PRIMITIVE, COMBINED, 0, 0, 0, COMBINED), gsDPSetCycleType(G_CYC_2CYCLE), gsSPTexture(65535, 65535, 0, 0, 1), gsDPSetPrimColor(0, 0, 127, 127, 127, 255), gsSPLight(&luigi_black_lights_group.l, 1), gsSPCopyLightEXT(2, 15), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_l_logo), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), gsDPLoadBlock(7, 0, 0, 1023, 256), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), gsDPSetTileSize(0, 0, 0, 124, 124), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_l_blend), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 256, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), gsDPLoadBlock(6, 0, 0, 1023, 256), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 256, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), gsDPSetTileSize(1, 0, 0, 124, 124), gsSPDisplayList(luigi_right_hand_cap_l_logo_dl), gsDPSetCycleType(G_CYC_1CYCLE), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_MODULATERGBFADEA, G_CC_MODULATERGBFADEA), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_l_cap), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(luigi_right_hand_cap_l_logo_dl), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPEndDisplayList(), }; const Gfx luigi_right_hand_cap_dl[] = { gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(luigi_right_hand_cap_top_dl), gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in luigi_misc.c gsSPDisplayList(luigi_right_hand_cap_hand_position_dl), gsDPSetCombineMode(G_CC_MODULATERGBFADEA, G_CC_MODULATERGBFADEA), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (8 - 1) << G_TEXTURE_IMAGE_FRAC, (8 - 1) << G_TEXTURE_IMAGE_FRAC), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_cap_inside), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 8 * 8 - 1, CALC_DXT(8, G_IM_SIZ_16b_BYTES)), gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(luigi_right_hand_cap_bottom_dl), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPEndDisplayList(), }; // 0x0401AF60 static const Vtx luigi_right_hand_cap_wings_half_1_dl_vertex[] = { {{{ 368, 146, 7}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}}, {{{ 166, 37, 68}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}}, {{{ 212, 96, 143}, 0, { 990, 2012}, {0xff, 0xff, 0xff, 0xff}}}, {{{ 368, 146, 7}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}}, {{{ 322, 87, -67}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, {{{ 166, 37, 68}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}}, {{{ 178, -177, 128}, 0, { 990, 2012}, {0xff, 0xff, 0xff, 0xff}}}, {{{ 149, -100, 60}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}}, {{{ 319, -248, -14}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}}, {{{ 290, -171, -81}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, }; // 0x0401B000 static const Vtx luigi_right_hand_cap_wings_half_2_dl_vertex[] = { {{{ 414, 206, 82}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}}, {{{ 212, 96, 143}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}}, {{{ 258, 156, 218}, 0, { 990, 2012}, {0xff, 0xff, 0xff, 0xff}}}, {{{ 368, 146, 7}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, {{{ 178, -177, 128}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}}, {{{ 319, -248, -14}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, {{{ 349, -325, 53}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}}, {{{ 207, -253, 195}, 0, { 990, 2012}, {0xff, 0xff, 0xff, 0xff}}}, }; // 0x0401B080 - 0x0401B0B0 const Gfx luigi_right_hand_cap_wings_half_1_dl[] = { gsSPVertex(luigi_right_hand_cap_wings_half_1_dl_vertex, 10, 0), gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0), gsSP2Triangles( 6, 7, 8, 0x0, 7, 9, 8, 0x0), gsSPEndDisplayList(), }; // 0x0401B0B0 - 0x0401B0E0 const Gfx luigi_right_hand_cap_wings_half_2_dl[] = { gsSPVertex(luigi_right_hand_cap_wings_half_2_dl_vertex, 8, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSP2Triangles( 4, 5, 6, 0x0, 7, 4, 6, 0x0), gsSPEndDisplayList(), }; // 0x0401B0E0 - 0x0401B138 const Gfx luigi_right_hand_cap_wings_intial_dl[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA), gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsSPLight(&luigi_white_lights_group.l, 1), gsSPLight(&luigi_white_lights_group.a, 2), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), gsSPEndDisplayList(), }; const Gfx luigi_right_hand_cap_wings_transparent_intial_dl[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_DECALFADEA, G_CC_DECALFADEA), gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsSPLight(&luigi_white_lights_group.l, 1), gsSPLight(&luigi_white_lights_group.a, 2), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), gsSPEndDisplayList(), }; // 0x0401B138 - 0x0401B158 const Gfx luigi_right_hand_cap_wings_end_dl[] = { gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK), gsSPEndDisplayList(), }; const Gfx luigi_right_hand_cap[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPDisplayList(luigi_right_hand_cap_dl), gsSPEndDisplayList(), }; const Gfx luigi_right_hand_cap_wings[] = { gsSPDisplayList(luigi_right_hand_cap_wings_intial_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_wings_half_1), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_right_hand_cap_wings_half_1_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_wings_half_2), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_right_hand_cap_wings_half_2_dl), gsSPDisplayList(luigi_right_hand_cap_wings_end_dl), gsSPEndDisplayList(), }; const Gfx luigi_right_hand_cap_wings_transparent[] = { gsSPDisplayList(luigi_right_hand_cap_wings_transparent_intial_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_wings_half_1), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_right_hand_cap_wings_half_1_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_wings_half_2), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_right_hand_cap_wings_half_2_dl), gsSPDisplayList(luigi_right_hand_cap_wings_end_dl), gsSPEndDisplayList(), }; const Gfx luigi_metal_right_hand_cap_shared_dl[] = { gsSPDisplayList(luigi_right_hand_cap_l_logo_dl), gsSPDisplayList(luigi_right_hand_cap_top_dl), gsSPDisplayList(luigi_right_hand_cap_hand_position_dl), gsSPDisplayList(luigi_right_hand_cap_bottom_dl), gsDPPipeSync(), gsSPClearGeometryMode(G_TEXTURE_GEN), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), gsSPEndDisplayList(), }; const Gfx luigi_metal_right_hand_cap_shared_dl_wings[] = { gsSPDisplayList(luigi_right_hand_cap_wings_intial_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_metal_wings_half_1), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_right_hand_cap_wings_half_1_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_metal_wings_half_2), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_right_hand_cap_wings_half_2_dl), gsSPDisplayList(luigi_right_hand_cap_wings_end_dl), gsSPEndDisplayList(), }; const Gfx luigi_metal_right_hand_cap_shared_dl_wings_transparent[] = { gsSPDisplayList(luigi_right_hand_cap_wings_transparent_intial_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_metal_wings_half_1), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_right_hand_cap_wings_half_1_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_metal_wings_half_2), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_right_hand_cap_wings_half_2_dl), gsSPDisplayList(luigi_right_hand_cap_wings_end_dl), gsSPEndDisplayList(), }; static const Vtx luigi_right_hand_peace_shared_dl_vertex[113] = { {{{-4, 38, 0}, 0, {0, 0}, {0xD3, 0x67, 0x3C, 0xFE}}}, {{{0, 21, 37}, 0, {0, 0}, {0xFE, 0x45, 0x6B, 0x0}}}, {{{18, 30, 41}, 0, {0, 0}, {0xC0, 0x2B, 0x65, 0x0}}}, {{{84, 60, -7}, 0, {0, 0}, {0xC1, 0x67, 0x28, 0xFE}}}, {{{84, 48, 24}, 0, {0, 0}, {0xC1, 0x67, 0x28, 0xFE}}}, {{{126, 84, -3}, 0, {0, 0}, {0xC1, 0x67, 0x28, 0xFE}}}, {{{146, 59, -8}, 0, {0, 0}, {0x58, 0xA5, 0xF0, 0xFE}}}, {{{105, 17, 3}, 0, {0, 0}, {0x59, 0xA6, 0xF7, 0xFE}}}, {{{89, 18, -34}, 0, {0, 0}, {0x52, 0xA5, 0xDD, 0xFE}}}, {{{146, 59, -8}, 0, {0, 0}, {0x5E, 0x4D, 0x26, 0xFE}}}, {{{126, 84, -3}, 0, {0, 0}, {0x60, 0x48, 0x2A, 0x0}}}, {{{123, 72, 21}, 0, {0, 0}, {0x5E, 0x4D, 0x26, 0x0}}}, {{{123, 72, 21}, 0, {0, 0}, {0xC2, 0x67, 0x29, 0x0}}}, {{{126, 84, -3}, 0, {0, 0}, {0xC1, 0x67, 0x28, 0x0}}}, {{{139, 53, 25}, 0, {0, 0}, {0x5C, 0xA8, 0x2, 0xFE}}}, {{{105, 17, 3}, 0, {0, 0}, {0x59, 0xA6, 0xF7, 0x0}}}, {{{146, 59, -8}, 0, {0, 0}, {0x58, 0xA5, 0xF0, 0x0}}}, {{{123, 72, 21}, 0, {0, 0}, {0x5E, 0x4D, 0x26, 0xFE}}}, {{{139, 53, 25}, 0, {0, 0}, {0x5B, 0x53, 0x21, 0xFE}}}, {{{146, 59, -8}, 0, {0, 0}, {0x5E, 0x4D, 0x26, 0xFE}}}, {{{98, 10, 29}, 0, {0, 0}, {0x5C, 0xA8, 0x2, 0xFE}}}, {{{105, 17, 3}, 0, {0, 0}, {0x59, 0xA6, 0xF7, 0xFE}}}, {{{-21, 9, 33}, 0, {0, 0}, {0x89, 0xE1, 0x1F, 0x0}}}, {{{-25, 24, 0}, 0, {0, 0}, {0x83, 0xF8, 0xEA, 0x0}}}, {{{-8, -12, -20}, 0, {0, 0}, {0x92, 0xCF, 0xD7, 0x0}}}, {{{0, -35, 32}, 0, {0, 0}, {0x9C, 0xB9, 0x22, 0xFE}}}, {{{6, -49, 0}, 0, {0, 0}, {0xA8, 0xA6, 0xEC, 0xFE}}}, {{{15, -39, 42}, 0, {0, 0}, {0xC, 0xBE, 0x6C, 0xFE}}}, {{{24, -59, -3}, 0, {0, 0}, {0xCE, 0x91, 0x24, 0xFE}}}, {{{-15, 23, 43}, 0, {0, 0}, {0xD6, 0x31, 0x6D, 0xFE}}}, {{{-15, 23, 43}, 0, {0, 0}, {0xD6, 0x31, 0x6D, 0xFE}}}, {{{-21, 9, 33}, 0, {0, 0}, {0x89, 0xE1, 0x1F, 0xFE}}}, {{{0, -35, 32}, 0, {0, 0}, {0x9C, 0xB9, 0x22, 0xFE}}}, {{{-22, 43, -3}, 0, {0, 0}, {0x85, 0x10, 0xE4, 0xFE}}}, {{{-25, 24, 0}, 0, {0, 0}, {0x83, 0xF8, 0xEA, 0xFE}}}, {{{2, -5, -33}, 0, {0, 0}, {0xAC, 0xDA, 0xA8, 0xFE}}}, {{{-8, -12, -20}, 0, {0, 0}, {0x92, 0xCF, 0xD7, 0xFE}}}, {{{24, -59, -3}, 0, {0, 0}, {0xC4, 0xB8, 0xAA, 0xFE}}}, {{{6, -49, 0}, 0, {0, 0}, {0xA8, 0xA6, 0xEC, 0xFE}}}, {{{15, -39, 42}, 0, {0, 0}, {0xC, 0xBE, 0x6C, 0xFE}}}, {{{0, 21, 37}, 0, {0, 0}, {0xFE, 0x45, 0x6B, 0xFE}}}, {{{23, -29, 36}, 0, {0, 0}, {0x12, 0xEC, 0x7C, 0xFE}}}, {{{24, -59, -3}, 0, {0, 0}, {0x69, 0xC7, 0x2C, 0xFE}}}, {{{32, -43, 0}, 0, {0, 0}, {0x69, 0xC7, 0x2C, 0xFE}}}, {{{18, 30, 41}, 0, {0, 0}, {0xC0, 0x2B, 0x65, 0xFE}}}, {{{45, -29, 52}, 0, {0, 0}, {0xEB, 0xB8, 0x67, 0xFE}}}, {{{45, -29, 52}, 0, {0, 0}, {0xEB, 0xB8, 0x67, 0xFE}}}, {{{46, 49, 45}, 0, {0, 0}, {0xF8, 0x44, 0x6B, 0xFE}}}, {{{18, 30, 41}, 0, {0, 0}, {0xC0, 0x2B, 0x65, 0xFE}}}, {{{90, -3, 52}, 0, {0, 0}, {0x51, 0x7, 0x62, 0xFE}}}, {{{88, -34, 39}, 0, {0, 0}, {0x38, 0xA0, 0x3D, 0xFE}}}, {{{56, -47, -5}, 0, {0, 0}, {0xC, 0x86, 0xDE, 0xFE}}}, {{{101, -29, 15}, 0, {0, 0}, {0x53, 0xA3, 0x15, 0xFE}}}, {{{98, 10, 29}, 0, {0, 0}, {0x55, 0x16, 0x5B, 0xFE}}}, {{{84, 48, 24}, 0, {0, 0}, {0x32, 0x3E, 0x63, 0x0}}}, {{{139, 53, 25}, 0, {0, 0}, {0xFC, 0x13, 0x7E, 0xFE}}}, {{{123, 72, 21}, 0, {0, 0}, {0xFC, 0x15, 0x7D, 0x0}}}, {{{88, -34, 39}, 0, {0, 0}, {0x38, 0xA0, 0x3D, 0x0}}}, {{{56, -47, -5}, 0, {0, 0}, {0xC, 0x86, 0xDE, 0x0}}}, {{{94, -22, -18}, 0, {0, 0}, {0x1C, 0x84, 0x0, 0x0}}}, {{{32, -43, 0}, 0, {0, 0}, {0xEB, 0x88, 0x24, 0xFE}}}, {{{23, -29, 36}, 0, {0, 0}, {0xE3, 0x8A, 0x25, 0xFE}}}, {{{-15, 23, 43}, 0, {0, 0}, {0xD6, 0x31, 0x6D, 0xFE}}}, {{{0, 21, 37}, 0, {0, 0}, {0xFE, 0x45, 0x6B, 0xFE}}}, {{{-4, 38, 0}, 0, {0, 0}, {0xD3, 0x67, 0x3C, 0xFE}}}, {{{-22, 43, -3}, 0, {0, 0}, {0x1A, 0x73, 0x2F, 0xFE}}}, {{{56, 80, 1}, 0, {0, 0}, {0x1A, 0x6B, 0x40, 0xFE}}}, {{{84, 48, 24}, 0, {0, 0}, {0x32, 0x3E, 0x63, 0xFE}}}, {{{84, 60, -7}, 0, {0, 0}, {0x4E, 0x5E, 0x24, 0xFE}}}, {{{46, 49, 45}, 0, {0, 0}, {0xF8, 0x44, 0x6B, 0xFE}}}, {{{8, 58, -2}, 0, {0, 0}, {0xBC, 0x56, 0x40, 0xFE}}}, {{{18, 30, 41}, 0, {0, 0}, {0xC0, 0x2B, 0x65, 0xFE}}}, {{{90, -3, 52}, 0, {0, 0}, {0x51, 0x7, 0x62, 0xFE}}}, {{{-22, 43, -3}, 0, {0, 0}, {0x31, 0x4D, 0xA8, 0xFE}}}, {{{-4, 38, 0}, 0, {0, 0}, {0x31, 0x4D, 0xA8, 0x0}}}, {{{14, -1, -22}, 0, {0, 0}, {0x48, 0x20, 0x9C, 0x0}}}, {{{2, -5, -33}, 0, {0, 0}, {0x48, 0x20, 0x9C, 0xFE}}}, {{{32, -43, 0}, 0, {0, 0}, {0x53, 0xEE, 0xA1, 0x0}}}, {{{2, -5, -33}, 0, {0, 0}, {0x48, 0x20, 0x9C, 0xFE}}}, {{{32, -43, 0}, 0, {0, 0}, {0x53, 0xEE, 0xA1, 0x0}}}, {{{24, -59, -3}, 0, {0, 0}, {0x53, 0xEE, 0xA1, 0xFE}}}, {{{105, 17, 3}, 0, {0, 0}, {0xA, 0x7D, 0x14, 0xFE}}}, {{{98, 10, 29}, 0, {0, 0}, {0xA, 0x7A, 0x21, 0xFE}}}, {{{153, 7, 24}, 0, {0, 0}, {0xC, 0x7B, 0x1E, 0xFE}}}, {{{162, 14, -11}, 0, {0, 0}, {0xA, 0x7E, 0xD, 0xFE}}}, {{{89, 18, -34}, 0, {0, 0}, {0x6, 0x7F, 0xFF, 0xFE}}}, {{{166, -13, -17}, 0, {0, 0}, {0x7A, 0x8, 0x21, 0xFE}}}, {{{162, 14, -11}, 0, {0, 0}, {0x7A, 0x1, 0x25, 0xFE}}}, {{{153, 7, 24}, 0, {0, 0}, {0x7A, 0x8, 0x21, 0xFE}}}, {{{155, -15, 21}, 0, {0, 0}, {0x7A, 0x6, 0x23, 0xFE}}}, {{{101, -29, 15}, 0, {0, 0}, {0xFF, 0xE2, 0x7B, 0xFE}}}, {{{153, 7, 24}, 0, {0, 0}, {0xFF, 0xE2, 0x7B, 0xFE}}}, {{{98, 10, 29}, 0, {0, 0}, {0x7, 0xD6, 0x78, 0xFE}}}, {{{155, -15, 21}, 0, {0, 0}, {0xF5, 0xEF, 0x7D, 0xFE}}}, {{{33, 7, -37}, 0, {0, 0}, {0xDE, 0xF5, 0x86, 0xFE}}}, {{{56, -47, -5}, 0, {0, 0}, {0xC, 0x86, 0xDE, 0x0}}}, {{{32, -43, 0}, 0, {0, 0}, {0xDD, 0xBA, 0x9C, 0x0}}}, {{{94, -22, -18}, 0, {0, 0}, {0x7, 0xCD, 0x8C, 0xFE}}}, {{{89, 18, -34}, 0, {0, 0}, {0xA, 0x1B, 0x84, 0xFE}}}, {{{56, 80, 1}, 0, {0, 0}, {0xFE, 0x41, 0x93, 0xFE}}}, {{{8, 58, -2}, 0, {0, 0}, {0xD0, 0x30, 0x95, 0xFE}}}, {{{-4, 38, 0}, 0, {0, 0}, {0xB2, 0x18, 0x9E, 0xFE}}}, {{{14, -1, -22}, 0, {0, 0}, {0xBE, 0xE5, 0x97, 0xFE}}}, {{{32, -43, 0}, 0, {0, 0}, {0xDD, 0xBA, 0x9C, 0xFE}}}, {{{84, 60, -7}, 0, {0, 0}, {0xFB, 0x45, 0x95, 0xFE}}}, {{{126, 84, -3}, 0, {0, 0}, {0xFD, 0x37, 0x8D, 0xFE}}}, {{{146, 59, -8}, 0, {0, 0}, {0x15, 0x2A, 0x8A, 0xFE}}}, {{{162, 14, -11}, 0, {0, 0}, {0x26, 0x1E, 0x8B, 0xFE}}}, {{{166, -13, -17}, 0, {0, 0}, {0x18, 0xF9, 0x83, 0xFE}}}, {{{155, -15, 21}, 0, {0, 0}, {0x19, 0x84, 0xF1, 0xFE}}}, {{{94, -22, -18}, 0, {0, 0}, {0x1C, 0x84, 0x0, 0xFE}}}, {{{166, -13, -17}, 0, {0, 0}, {0x10, 0x82, 0x0, 0xFE}}}, {{{101, -29, 15}, 0, {0, 0}, {0x53, 0xA3, 0x15, 0xFE}}}, }; const Gfx luigi_right_hand_peace_shared_dl[] = { gsSPVertex(luigi_right_hand_peace_shared_dl_vertex + 0, 14, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(3, 4, 5, 0), gsSP1Triangle(6, 7, 8, 0), gsSP1Triangle(9, 10, 11, 0), gsSP1Triangle(4, 12, 13, 0), gsSPVertex(luigi_right_hand_peace_shared_dl_vertex + 14, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(3, 4, 5, 0), gsSP1Triangle(0, 6, 7, 0), gsSP1Triangle(8, 9, 10, 0), gsSP1Triangle(11, 8, 10, 0), gsSP1Triangle(10, 12, 11, 0), gsSP1Triangle(13, 11, 12, 0), gsSP1Triangle(13, 12, 14, 0), gsSP1Triangle(15, 11, 13, 0), gsSPVertex(luigi_right_hand_peace_shared_dl_vertex + 30, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(3, 1, 0, 0), gsSP1Triangle(3, 4, 1, 0), gsSP1Triangle(5, 4, 3, 0), gsSP1Triangle(5, 6, 4, 0), gsSP1Triangle(7, 6, 5, 0), gsSP1Triangle(7, 8, 6, 0), gsSP1Triangle(9, 10, 0, 0), gsSP1Triangle(9, 11, 10, 0), gsSP1Triangle(12, 11, 9, 0), gsSP1Triangle(12, 13, 11, 0), gsSP1Triangle(10, 11, 14, 0), gsSP1Triangle(11, 15, 14, 0), gsSPVertex(luigi_right_hand_peace_shared_dl_vertex + 46, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(0, 3, 1, 0), gsSP1Triangle(4, 3, 0, 0), gsSP1Triangle(0, 5, 4, 0), gsSP1Triangle(4, 6, 3, 0), gsSP1Triangle(6, 7, 3, 0), gsSP1Triangle(7, 8, 3, 0), gsSP1Triangle(8, 7, 9, 0), gsSP1Triangle(9, 10, 8, 0), gsSP1Triangle(6, 11, 12, 0), gsSP1Triangle(6, 12, 13, 0), gsSP1Triangle(12, 0, 14, 0), gsSP1Triangle(0, 15, 14, 0), gsSPVertex(luigi_right_hand_peace_shared_dl_vertex + 62, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(0, 2, 3, 0), gsSP1Triangle(4, 5, 6, 0), gsSP1Triangle(7, 5, 4, 0), gsSP1Triangle(7, 4, 8, 0), gsSP1Triangle(7, 8, 9, 0), gsSP1Triangle(9, 8, 2, 0), gsSP1Triangle(10, 5, 7, 0), gsSP1Triangle(11, 12, 13, 0), gsSP1Triangle(11, 13, 14, 0), gsSP1Triangle(14, 13, 15, 0), gsSPVertex(luigi_right_hand_peace_shared_dl_vertex + 78, 16, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(3, 4, 5, 0), gsSP1Triangle(3, 5, 6, 0), gsSP1Triangle(6, 7, 3, 0), gsSP1Triangle(8, 9, 10, 0), gsSP1Triangle(8, 10, 11, 0), gsSP1Triangle(12, 13, 14, 0), gsSP1Triangle(12, 15, 13, 0), gsSPVertex(luigi_right_hand_peace_shared_dl_vertex + 94, 15, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(1, 0, 3, 0), gsSP1Triangle(0, 4, 3, 0), gsSP1Triangle(5, 4, 0, 0), gsSP1Triangle(6, 5, 0, 0), gsSP1Triangle(6, 0, 7, 0), gsSP1Triangle(0, 8, 7, 0), gsSP1Triangle(9, 8, 0, 0), gsSP1Triangle(5, 10, 4, 0), gsSP1Triangle(11, 4, 10, 0), gsSP1Triangle(4, 11, 12, 0), gsSP1Triangle(4, 13, 14, 0), gsSP1Triangle(14, 3, 4, 0), gsSPVertex(luigi_right_hand_peace_shared_dl_vertex + 109, 4, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(1, 0, 3, 0), gsSPEndDisplayList(), }; const Gfx luigi_right_hand_peace[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c gsSPDisplayList(luigi_right_hand_peace_shared_dl), gsSPEndDisplayList(), }; // 0x0401C940 static const Vtx luigi_wings_half_1_dl_vertex[] = { {{{ -105, 212, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, {{{ -105, 0, 0}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}}, {{{ 0, 0, 0}, 0, { 990, 2012}, {0xff, 0xff, 0xff, 0xff}}}, {{{ 0, 212, 0}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}}, }; // 0x0401C980 static const Vtx luigi_wings_half_2_dl_vertex[] = { {{{ 0, 0, 0}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}}, {{{ 106, 212, 0}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}}, {{{ 0, 212, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}}, {{{ 106, 0, 0}, 0, { 990, 2012}, {0xff, 0xff, 0xff, 0xff}}}, }; // 0x0401C9C0 - 0x0401C9E0 const Gfx luigi_wings_half_1_dl[] = { gsSPVertex(luigi_wings_half_1_dl_vertex, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPEndDisplayList(), }; // 0x0401C9E0 - 0x0401CA00 const Gfx luigi_wings_half_2_dl[] = { gsSPVertex(luigi_wings_half_2_dl_vertex, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), }; // 0x0401CA00 - 0x0401CAB8 const Gfx luigi_cap_wings[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA), gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), gsSPLight(&luigi_white_lights_group.l, 1), gsSPLight(&luigi_white_lights_group.a, 2), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_wings_half_1), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_wings_half_1_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_wings_half_2), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_wings_half_2_dl), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK), gsSPEndDisplayList(), }; // 0x0401CAB8 - 0x0401CB70 const Gfx luigi_cap_wings_transparent[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_DECALFADEA, G_CC_DECALFADEA), gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), gsSPLight(&luigi_white_lights_group.l, 1), gsSPLight(&luigi_white_lights_group.a, 2), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_wings_half_1), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_wings_half_1_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_wings_half_2), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_wings_half_2_dl), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK), gsSPEndDisplayList(), }; // 0x0401CB70 - 0x0401CC28 const Gfx luigi_metal_cap_wings[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA), gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), gsSPLight(&luigi_white_lights_group.l, 1), gsSPLight(&luigi_white_lights_group.a, 2), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_metal_wings_half_1), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_wings_half_1_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_metal_wings_half_2), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_wings_half_2_dl), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK), gsSPEndDisplayList(), }; // 0x0401CC28 - 0x0401CD20 const Gfx luigi_metal_cap_wings_transparent[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_DECALFADEA, G_CC_DECALFADEA), gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC), gsSPLight(&luigi_white_lights_group.l, 1), gsSPLight(&luigi_white_lights_group.a, 2), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_metal_wings_half_1), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_wings_half_1_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_metal_wings_half_2), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPDisplayList(luigi_wings_half_2_dl), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK), gsSPEndDisplayList(), }; const Gfx luigi_material_revert_render_settings[] = { gsDPPipeSync(), gsSPSetGeometryMode(G_LIGHTING), gsSPClearGeometryMode(G_TEXTURE_GEN), gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), gsSPTexture(65535, 65535, 0, 0, 0), gsDPSetEnvColor(255, 255, 255, 255), gsDPSetAlphaCompare(G_AC_NONE), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, 0), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), gsDPLoadBlock(7, 0, 0, 1023, 256), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), gsDPSetTileSize(0, 0, 0, 124, 124), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, 0), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 256, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), gsDPLoadBlock(6, 0, 0, 1023, 256), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 256, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), gsDPSetTileSize(1, 0, 0, 124, 124), gsSPEndDisplayList(), };