sm64coopdx/actors/luigi/model.inc.c
2022-04-14 22:02:33 -07:00

3921 lines
163 KiB
C

static const Lights1 luigi_blue_lights_group = gdSPDefLights1(
0x00, 0x00, 0x7f,
0x00, 0x00, 0xff, 0x28, 0x28, 0x28
);
static const Lights1 luigi_green_lights_group = gdSPDefLights1(
0x00, 0x4f, 0x00,
0x00, 0x9f, 0x00, 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
);
ALIGNED8 static const u8 luigi_texture_metal[] = {
#include "actors/mario/mario_metal.rgba16.inc.c"
};
ALIGNED8 static const u8 luigi_texture_yellow_button[] = {
#include "actors/mario/mario_overalls_button.rgba16.inc.c"
};
ALIGNED8 static const u8 luigi_texture_l_logo[] = {
#include "actors/luigi/custom_luigi_logo.rgba16.inc.c"
};
ALIGNED8 static const u8 luigi_texture_hair_sideburn[] = {
#include "actors/luigi/custom_luigi_sideburn.rgba16.inc.c"
};
ALIGNED8 static const u8 luigi_texture_mustache[] = {
#include "actors/luigi/custom_luigi_mustache.rgba16.inc.c"
};
ALIGNED8 static const u8 luigi_texture_eyes_front[] = {
#include "actors/luigi/custom_luigi_eyes_center.rgba16.inc.c"
};
ALIGNED8 static const u8 luigi_texture_eyes_half_closed[] = {
#include "actors/luigi/custom_luigi_eyes_half_closed.rgba16.inc.c"
};
ALIGNED8 static const u8 luigi_texture_eyes_closed[] = {
#include "actors/luigi/custom_luigi_eyes_closed.rgba16.inc.c"
};
ALIGNED8 static const u8 luigi_texture_eyes_right[] = {
#include "actors/mario/mario_eyes_left_unused.rgba16.inc.c"
};
ALIGNED8 static const u8 luigi_texture_eyes_left[] = {
#include "actors/mario/mario_eyes_right_unused.rgba16.inc.c"
};
ALIGNED8 static const u8 luigi_texture_eyes_up[] = {
#include "actors/mario/mario_eyes_up_unused.rgba16.inc.c"
};
ALIGNED8 static const u8 luigi_texture_eyes_down[] = {
#include "actors/mario/mario_eyes_down_unused.rgba16.inc.c"
};
ALIGNED8 static const u8 luigi_texture_eyes_dead[] = {
#include "actors/mario/mario_eyes_dead.rgba16.inc.c"
};
ALIGNED8 static const u8 luigi_texture_wings_half_1[] = {
#include "actors/mario/mario_wing.rgba16.inc.c"
};
ALIGNED8 static const u8 luigi_texture_wings_half_2[] = {
#include "actors/mario/mario_wing_tip.rgba16.inc.c"
};
ALIGNED8 static const u8 luigi_texture_metal_wings_half_1[] = {
#include "actors/mario/mario_metal_wing_unused.rgba16.inc.c"
};
ALIGNED8 static const u8 luigi_texture_metal_wings_half_2[] = {
#include "actors/mario/mario_metal_wing_tip_unused.rgba16.inc.c"
};
static const Vtx luigi_butt_dl_vertex[76] = {
{{{-7, -65, 43},0, {0, 0},{0xDA, 0x94, 0x38, 0xFF}}},
{{{-13, -71, 0},0, {0, 0},{0xD4, 0x89, 0x0, 0xFF}}},
{{{35, -67, 37},0, {0, 0},{0x17, 0x88, 0x23, 0xFF}}},
{{{-33, -51, 33},0, {0, 0},{0x96, 0xC5, 0x26, 0xFF}}},
{{{8, -47, 70},0, {0, 0},{0xEA, 0xBB, 0x69, 0xFF}}},
{{{46, -48, 64},0, {0, 0},{0x33, 0xB9, 0x5C, 0xFF}}},
{{{69, -55, 29},0, {0, 0},{0x60, 0xB3, 0x20, 0xFF}}},
{{{35, -67, -37},0, {0, 0},{0x18, 0x88, 0xDD, 0xFF}}},
{{{-7, -65, -45},0, {0, 0},{0xD8, 0x97, 0xC5, 0xFF}}},
{{{-33, -50, -34},0, {0, 0},{0x96, 0xC7, 0xD8, 0xFF}}},
{{{-38, 31, -32},0, {0, 0},{0x8B, 0x28, 0xE3, 0xFF}}},
{{{-38, 30, 31},0, {0, 0},{0x8B, 0x28, 0x1C, 0xFF}}},
{{{-23, -11, 65},0, {0, 0},{0xA8, 0xF2, 0x5B, 0xFF}}},
{{{11, -10, 80},0, {0, 0},{0xF2, 0xF9, 0x7E, 0xFF}}},
{{{53, -9, 74},0, {0, 0},{0x49, 0xF6, 0x68, 0xFF}}},
{{{86, 10, 0},0, {0, 0},{0x7E, 0xD, 0x0, 0xFF}}},
{{{69, -55, 29},0, {0, 0},{0x60, 0xB3, 0x20, 0xFF}}},
{{{69, -55, -29},0, {0, 0},{0x60, 0xB3, 0xE1, 0xFF}}},
{{{86, 10, 0},0, {0, 0},{0x7E, 0xD, 0x0, 0xFF}}},
{{{35, -67, -37},0, {0, 0},{0x18, 0x88, 0xDD, 0xFF}}},
{{{46, -48, -64},0, {0, 0},{0x33, 0xB8, 0xA4, 0xFF}}},
{{{9, -47, -70},0, {0, 0},{0xEB, 0xBC, 0x97, 0xFF}}},
{{{-7, -65, -45},0, {0, 0},{0xD8, 0x97, 0xC5, 0xFF}}},
{{{-33, -50, -34},0, {0, 0},{0x96, 0xC7, 0xD8, 0xFF}}},
{{{-22, -11, -65},0, {0, 0},{0xA9, 0xF1, 0xA4, 0xFF}}},
{{{-38, 31, -32},0, {0, 0},{0x8B, 0x28, 0xE3, 0xFF}}},
{{{-21, 23, -65},0, {0, 0},{0xAD, 0x1E, 0xA4, 0xFF}}},
{{{-7, 48, -58},0, {0, 0},{0xCD, 0x56, 0xB1, 0xFF}}},
{{{-13, 61, -27},0, {0, 0},{0xBF, 0x6A, 0xE7, 0xFF}}},
{{{-13, 61, 26},0, {0, 0},{0xBE, 0x6A, 0x19, 0xFF}}},
{{{-38, 30, 31},0, {0, 0},{0x8B, 0x28, 0x1C, 0xFF}}},
{{{-7, 48, 57},0, {0, 0},{0xCE, 0x56, 0x4F, 0xFF}}},
{{{-22, 23, 64},0, {0, 0},{0xAD, 0x20, 0x5B, 0xFF}}},
{{{-7, 48, 57},0, {0, 0},{0xCE, 0x56, 0x4F, 0xFF}}},
{{{-38, 30, 31},0, {0, 0},{0x8B, 0x28, 0x1C, 0xFF}}},
{{{-23, -11, 65},0, {0, 0},{0xA8, 0xF2, 0x5B, 0xFF}}},
{{{8, 26, 75},0, {0, 0},{0xEC, 0x27, 0x77, 0xFF}}},
{{{11, -10, 80},0, {0, 0},{0xF2, 0xF9, 0x7E, 0xFF}}},
{{{53, -9, 74},0, {0, 0},{0x49, 0xF6, 0x68, 0xFF}}},
{{{50, 34, 73},0, {0, 0},{0x3D, 0x2D, 0x66, 0xFF}}},
{{{86, 10, 0},0, {0, 0},{0x7E, 0xD, 0x0, 0xFF}}},
{{{58, 62, 31},0, {0, 0},{0x50, 0x5D, 0x20, 0xFF}}},
{{{58, 62, -31},0, {0, 0},{0x51, 0x5D, 0xE0, 0xFF}}},
{{{50, 34, -73},0, {0, 0},{0x3F, 0x2D, 0x9B, 0xFF}}},
{{{54, -10, -74},0, {0, 0},{0x4B, 0xF5, 0x9A, 0xFF}}},
{{{69, -55, -29},0, {0, 0},{0x60, 0xB3, 0xE1, 0xFF}}},
{{{46, -48, -64},0, {0, 0},{0x33, 0xB8, 0xA4, 0xFF}}},
{{{13, -10, -80},0, {0, 0},{0xF3, 0xF5, 0x82, 0xFF}}},
{{{9, -47, -70},0, {0, 0},{0xEB, 0xBC, 0x97, 0xFF}}},
{{{13, -10, -80},0, {0, 0},{0xF3, 0xF5, 0x82, 0xFF}}},
{{{46, -48, -64},0, {0, 0},{0x33, 0xB8, 0xA4, 0xFF}}},
{{{-22, -11, -65},0, {0, 0},{0xA9, 0xF1, 0xA4, 0xFF}}},
{{{8, 26, -77},0, {0, 0},{0xEC, 0x25, 0x88, 0xFF}}},
{{{-21, 23, -65},0, {0, 0},{0xAD, 0x1E, 0xA4, 0xFF}}},
{{{-7, 48, -58},0, {0, 0},{0xCD, 0x56, 0xB1, 0xFF}}},
{{{31, 62, -51},0, {0, 0},{0x8, 0x6B, 0xBB, 0xFF}}},
{{{-13, 61, -27},0, {0, 0},{0xBF, 0x6A, 0xE7, 0xFF}}},
{{{24, 71, -21},0, {0, 0},{0xFE, 0x7E, 0xF0, 0xFF}}},
{{{-13, 61, 26},0, {0, 0},{0xBE, 0x6A, 0x19, 0xFF}}},
{{{24, 71, 21},0, {0, 0},{0xFE, 0x7E, 0x11, 0xFF}}},
{{{31, 62, 50},0, {0, 0},{0x7, 0x6A, 0x45, 0xFF}}},
{{{-7, 48, 57},0, {0, 0},{0xCE, 0x56, 0x4F, 0xFF}}},
{{{8, 26, 75},0, {0, 0},{0xEC, 0x27, 0x77, 0xFF}}},
{{{-22, 23, 64},0, {0, 0},{0xAD, 0x20, 0x5B, 0xFF}}},
{{{50, 34, 73},0, {0, 0},{0x3D, 0x2D, 0x66, 0xFF}}},
{{{31, 62, 50},0, {0, 0},{0x7, 0x6A, 0x45, 0xFF}}},
{{{8, 26, 75},0, {0, 0},{0xEC, 0x27, 0x77, 0xFF}}},
{{{58, 62, 31},0, {0, 0},{0x50, 0x5D, 0x20, 0xFF}}},
{{{24, 71, 21},0, {0, 0},{0xFE, 0x7E, 0x11, 0xFF}}},
{{{24, 71, -21},0, {0, 0},{0xFE, 0x7E, 0xF0, 0xFF}}},
{{{58, 62, -31},0, {0, 0},{0x51, 0x5D, 0xE0, 0xFF}}},
{{{31, 62, -51},0, {0, 0},{0x8, 0x6B, 0xBB, 0xFF}}},
{{{50, 34, -73},0, {0, 0},{0x3F, 0x2D, 0x9B, 0xFF}}},
{{{8, 26, -77},0, {0, 0},{0xEC, 0x25, 0x88, 0xFF}}},
{{{54, -10, -74},0, {0, 0},{0x4B, 0xF5, 0x9A, 0xFF}}},
{{{13, -10, -80},0, {0, 0},{0xF3, 0xF5, 0x82, 0xFF}}},
};
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),
gsSPCopyLightEXT(1, 3), // gsSPLight(&luigi_blue_lights_group.l, 1),
gsSPCopyLightEXT(2, 4), // gsSPLight(&luigi_blue_lights_group.a, 2),
gsSPDisplayList(luigi_butt_dl),
gsSPEndDisplayList(),
};
const Gfx luigi_metal_butt[] = {
gsDPPipeSync(),
gsSPSetGeometryMode(G_TEXTURE_GEN),
gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE),
gsDPLoadTextureBlock(luigi_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON),
gsSPLight(&luigi_white_lights_group.l, 1),
gsSPLight(&luigi_white_lights_group.a, 2),
gsSPDisplayList(luigi_butt_dl),
gsSPEndDisplayList(),
};
static const Vtx luigi_left_arm_shared_dl_vertex[29] = {
{{{63, 24, 21},0, {0, 0},{0x34, 0x5B, 0x48, 0xFF}}},
{{{63, 25, -16},0, {0, 0},{0x35, 0x5E, 0xBC, 0xFF}}},
{{{6, 31, 24},0, {0, 0},{0xE0, 0x63, 0x49, 0xFF}}},
{{{73, 17, -9},0, {0, 0},{0x70, 0x32, 0xDF, 0xFF}}},
{{{73, 16, 15},0, {0, 0},{0x6F, 0x2E, 0x29, 0xFF}}},
{{{72, -7, 21},0, {0, 0},{0x6C, 0xE4, 0x3D, 0xFF}}},
{{{62, -9, 30},0, {0, 0},{0x31, 0xD8, 0x6E, 0xFF}}},
{{{5, -11, 38},0, {0, 0},{0xDD, 0xD9, 0x74, 0xFF}}},
{{{-11, -6, 23},0, {0, 0},{0x92, 0xEC, 0x3C, 0xFF}}},
{{{-10, 20, 15},0, {0, 0},{0x94, 0x37, 0x27, 0xFF}}},
{{{6, 33, -19},0, {0, 0},{0xE1, 0x67, 0xBD, 0xFF}}},
{{{62, -8, -27},0, {0, 0},{0x32, 0xDF, 0x90, 0xFF}}},
{{{72, -5, -18},0, {0, 0},{0x6D, 0xEF, 0xC0, 0xFF}}},
{{{72, -21, 0},0, {0, 0},{0x6A, 0xBA, 0xFA, 0xFF}}},
{{{61, -30, 0},0, {0, 0},{0x2E, 0x8A, 0xFC, 0xFF}}},
{{{3, -37, 0},0, {0, 0},{0xD8, 0x87, 0xFD, 0xFF}}},
{{{-11, -21, 0},0, {0, 0},{0x8F, 0xC5, 0xFD, 0xFF}}},
{{{3, -37, 0},0, {0, 0},{0xD8, 0x87, 0xFD, 0xFF}}},
{{{5, -11, 38},0, {0, 0},{0xDD, 0xD9, 0x74, 0xFF}}},
{{{-11, -6, 23},0, {0, 0},{0x92, 0xEC, 0x3C, 0xFF}}},
{{{-11, -4, -20},0, {0, 0},{0x91, 0xF4, 0xC3, 0xFF}}},
{{{-10, 21, -11},0, {0, 0},{0x94, 0x39, 0xDC, 0xFF}}},
{{{-10, 20, 15},0, {0, 0},{0x94, 0x37, 0x27, 0xFF}}},
{{{6, 33, -19},0, {0, 0},{0xE1, 0x67, 0xBD, 0xFF}}},
{{{5, -9, -35},0, {0, 0},{0xDE, 0xE1, 0x8A, 0xFF}}},
{{{62, -8, -27},0, {0, 0},{0x32, 0xDF, 0x90, 0xFF}}},
{{{61, -30, 0},0, {0, 0},{0x2E, 0x8A, 0xFC, 0xFF}}},
{{{72, -5, -18},0, {0, 0},{0x6D, 0xEF, 0xC0, 0xFF}}},
{{{72, -21, 0},0, {0, 0},{0x6A, 0xBA, 0xFA, 0xFF}}},
};
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[] = {
gsSPCopyLightEXT(1, 5), // gsSPLight(&luigi_green_lights_group.l, 1),
gsSPCopyLightEXT(2, 6), // gsSPLight(&luigi_green_lights_group.a, 2),
gsSPDisplayList(luigi_left_arm_shared_dl),
gsSPEndDisplayList(),
};
static const Vtx luigi_left_forearm_shared_dl_vertex[16] = {
{{{64, 20, 16},0, {0, 0},{0x3E, 0x57, 0x45, 0xFF}}},
{{{65, 21, -16},0, {0, 0},{0x3F, 0x5A, 0xC0, 0xFF}}},
{{{6, 25, 20},0, {0, 0},{0xE4, 0x62, 0x4C, 0xFF}}},
{{{78, -1, 0},0, {0, 0},{0x7F, 0xFE, 0x2, 0xFF}}},
{{{63, -11, 25},0, {0, 0},{0x3C, 0xD8, 0x69, 0xFF}}},
{{{4, -11, 30},0, {0, 0},{0xDE, 0xD7, 0x73, 0xFF}}},
{{{-8, -7, 21},0, {0, 0},{0x97, 0xEC, 0x44, 0xFF}}},
{{{-8, 17, 14},0, {0, 0},{0x99, 0x3B, 0x2D, 0xFF}}},
{{{6, 26, -17},0, {0, 0},{0xE4, 0x68, 0xBD, 0xFF}}},
{{{64, -8, -26},0, {0, 0},{0x3D, 0xE0, 0x95, 0xFF}}},
{{{63, -28, -1},0, {0, 0},{0x3B, 0x8F, 0xFC, 0xFF}}},
{{{3, -32, -1},0, {0, 0},{0xDB, 0x87, 0xFC, 0xFF}}},
{{{-9, -21, 0},0, {0, 0},{0x92, 0xC0, 0x0, 0xFF}}},
{{{-8, 18, -12},0, {0, 0},{0x99, 0x40, 0xD9, 0xFF}}},
{{{4, -8, -31},0, {0, 0},{0xE0, 0xE2, 0x89, 0xFF}}},
{{{-8, -5, -22},0, {0, 0},{0x97, 0xF2, 0xB9, 0xFF}}},
};
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[37] = {
{{{32, -37, 8},0, {0, 0},{0x3C, 0x98, 0x29, 0xFF}}},
{{{25, -54, 10},0, {0, 0},{0x75, 0xD3, 0x16, 0xFF}}},
{{{15, -35, -34},0, {0, 0},{0x2, 0xB4, 0x9A, 0xFF}}},
{{{3, -3, 40},0, {0, 0},{0x43, 0x1B, 0x69, 0xFF}}},
{{{15, 3, 31},0, {0, 0},{0xFC, 0x0, 0x7F, 0xFF}}},
{{{34, 10, 46},0, {0, 0},{0xE3, 0xEF, 0x7B, 0xFF}}},
{{{56, -41, 12},0, {0, 0},{0x6, 0x8A, 0x30, 0xFF}}},
{{{24, -21, -27},0, {0, 0},{0x15, 0xC9, 0x8F, 0xFF}}},
{{{-12, 29, -33},0, {0, 0},{0xCC, 0x38, 0x9B, 0xFF}}},
{{{-16, -11, 0},0, {0, 0},{0x8C, 0xCD, 0x2, 0xFF}}},
{{{25, -54, 10},0, {0, 0},{0xA3, 0xAB, 0xE, 0xFF}}},
{{{3, -3, 40},0, {0, 0},{0x99, 0xD2, 0x3A, 0xFF}}},
{{{-20, 49, 13},0, {0, 0},{0x82, 0xF5, 0xE, 0xFF}}},
{{{2, 27, -26},0, {0, 0},{0xFB, 0x44, 0x95, 0xFF}}},
{{{-3, 42, 9},0, {0, 0},{0xDE, 0x73, 0x2A, 0xFF}}},
{{{-20, 49, 13},0, {0, 0},{0x35, 0x70, 0x1B, 0xFF}}},
{{{-3, 42, 9},0, {0, 0},{0xDE, 0x73, 0x2A, 0xFF}}},
{{{34, 10, 46},0, {0, 0},{0xE3, 0xEF, 0x7B, 0xFF}}},
{{{10, 63, 15},0, {0, 0},{0xAF, 0x55, 0x30, 0xFF}}},
{{{57, 84, 13},0, {0, 0},{0x15, 0x79, 0x21, 0xFF}}},
{{{83, 33, 46},0, {0, 0},{0x3E, 0x19, 0x6C, 0xFF}}},
{{{104, -22, 8},0, {0, 0},{0x66, 0xBF, 0x28, 0xFF}}},
{{{56, -41, 12},0, {0, 0},{0x6, 0x8A, 0x30, 0xFF}}},
{{{77, -28, -56},0, {0, 0},{0x1B, 0xB5, 0x9D, 0xFF}}},
{{{24, -21, -27},0, {0, 0},{0x15, 0xC9, 0x8F, 0xFF}}},
{{{31, 11, -39},0, {0, 0},{0xC3, 0xFD, 0x91, 0xFF}}},
{{{2, 27, -26},0, {0, 0},{0xFB, 0x44, 0x95, 0xFF}}},
{{{29, 66, -23},0, {0, 0},{0xD0, 0x5B, 0xB6, 0xFF}}},
{{{55, 58, -32},0, {0, 0},{0x18, 0x55, 0xA5, 0xFF}}},
{{{97, 43, -11},0, {0, 0},{0x6C, 0x3F, 0xEB, 0xFF}}},
{{{97, -3, -41},0, {0, 0},{0x69, 0xFC, 0xB9, 0xFF}}},
{{{58, 16, -55},0, {0, 0},{0xF4, 0x17, 0x84, 0xFF}}},
{{{55, 58, -32},0, {0, 0},{0x18, 0x55, 0xA5, 0xFF}}},
{{{88, 20, -41},0, {0, 0},{0x49, 0x2F, 0xA3, 0xFF}}},
{{{58, 16, -55},0, {0, 0},{0xF4, 0x17, 0x84, 0xFF}}},
{{{97, 43, -11},0, {0, 0},{0x6C, 0x3F, 0xEB, 0xFF}}},
{{{97, -3, -41},0, {0, 0},{0x69, 0xFC, 0xB9, 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(0, 4, 3, 0),
gsSP1Triangle(5, 4, 0, 0),
gsSP1Triangle(0, 6, 5, 0),
gsSP1Triangle(6, 0, 7, 0),
gsSP1Triangle(2, 7, 0, 0),
gsSP1Triangle(7, 2, 8, 0),
gsSP1Triangle(2, 9, 8, 0),
gsSP1Triangle(10, 9, 2, 0),
gsSP1Triangle(11, 9, 10, 0),
gsSP1Triangle(12, 9, 11, 0),
gsSP1Triangle(8, 9, 12, 0),
gsSP1Triangle(8, 13, 7, 0),
gsSP1Triangle(14, 13, 8, 0),
gsSP1Triangle(8, 15, 14, 0),
gsSP1Triangle(14, 15, 3, 0),
gsSP1Triangle(3, 4, 14, 0),
gsSP1Triangle(14, 4, 5, 0),
gsSPVertex(luigi_left_hand_closed_shared_dl_vertex + 16, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(1, 3, 2, 0),
gsSP1Triangle(1, 4, 3, 0),
gsSP1Triangle(5, 4, 1, 0),
gsSP1Triangle(6, 5, 1, 0),
gsSP1Triangle(7, 5, 6, 0),
gsSP1Triangle(8, 7, 6, 0),
gsSP1Triangle(8, 9, 7, 0),
gsSP1Triangle(8, 10, 9, 0),
gsSP1Triangle(11, 9, 10, 0),
gsSP1Triangle(2, 11, 10, 0),
gsSP1Triangle(10, 0, 2, 0),
gsSP1Triangle(11, 2, 3, 0),
gsSP1Triangle(3, 12, 11, 0),
gsSP1Triangle(3, 13, 12, 0),
gsSP1Triangle(4, 13, 3, 0),
gsSP1Triangle(5, 13, 4, 0),
gsSP1Triangle(14, 13, 5, 0),
gsSP1Triangle(7, 14, 5, 0),
gsSP1Triangle(15, 14, 7, 0),
gsSP1Triangle(9, 15, 7, 0),
gsSP1Triangle(15, 9, 11, 0),
gsSP1Triangle(15, 11, 12, 0),
gsSPVertex(luigi_left_hand_closed_shared_dl_vertex + 32, 5, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(1, 0, 3, 0),
gsSP1Triangle(1, 3, 4, 0),
gsSP1Triangle(2, 1, 4, 0),
gsSPEndDisplayList(),
};
const Gfx luigi_left_hand_closed[] = {
gsSPLight(&luigi_white_lights_group.l, 1),
gsSPLight(&luigi_white_lights_group.a, 2),
gsSPDisplayList(luigi_left_hand_closed_shared_dl),
gsSPEndDisplayList(),
};
static const Vtx luigi_right_arm_shared_dl_vertex[30] = {
{{{4, -32, 0},0, {0, 0},{0xDB, 0x87, 0xFC, 0xFF}}},
{{{5, -5, -36},0, {0, 0},{0xDE, 0xE0, 0x8A, 0xFF}}},
{{{61, -4, -29},0, {0, 0},{0x34, 0xE2, 0x90, 0xFF}}},
{{{-11, -17, 0},0, {0, 0},{0x91, 0xC2, 0xFB, 0xFF}}},
{{{-11, -3, 23},0, {0, 0},{0x94, 0xEB, 0x3F, 0xFF}}},
{{{5, -8, 36},0, {0, 0},{0xDF, 0xD7, 0x74, 0xFF}}},
{{{61, -27, 0},0, {0, 0},{0x32, 0x8B, 0xFB, 0xFF}}},
{{{71, -1, -18},0, {0, 0},{0x6F, 0xF0, 0xC5, 0xFF}}},
{{{62, 29, -15},0, {0, 0},{0x34, 0x62, 0xC2, 0xFF}}},
{{{5, 36, -20},0, {0, 0},{0xDF, 0x67, 0xBD, 0xFF}}},
{{{-11, -1, -21},0, {0, 0},{0x92, 0xEF, 0xC3, 0xFF}}},
{{{-10, 24, -12},0, {0, 0},{0x93, 0x38, 0xDD, 0xFF}}},
{{{-10, 23, 16},0, {0, 0},{0x94, 0x35, 0x2A, 0xFF}}},
{{{5, 34, 24},0, {0, 0},{0xDF, 0x61, 0x4B, 0xFF}}},
{{{61, -7, 30},0, {0, 0},{0x32, 0xD8, 0x6E, 0xFF}}},
{{{71, -4, 20},0, {0, 0},{0x6E, 0xE7, 0x3A, 0xFF}}},
{{{71, -16, 0},0, {0, 0},{0x70, 0xC4, 0xFA, 0xFF}}},
{{{71, -4, 20},0, {0, 0},{0x6E, 0xE7, 0x3A, 0xFF}}},
{{{61, -27, 0},0, {0, 0},{0x32, 0x8B, 0xFB, 0xFF}}},
{{{71, -1, -18},0, {0, 0},{0x6F, 0xF0, 0xC5, 0xFF}}},
{{{72, 21, -9},0, {0, 0},{0x6F, 0x34, 0xE0, 0xFF}}},
{{{62, 29, -15},0, {0, 0},{0x34, 0x62, 0xC2, 0xFF}}},
{{{62, 27, 20},0, {0, 0},{0x32, 0x5B, 0x49, 0xFF}}},
{{{5, 36, -20},0, {0, 0},{0xDF, 0x67, 0xBD, 0xFF}}},
{{{5, 34, 24},0, {0, 0},{0xDF, 0x61, 0x4B, 0xFF}}},
{{{-10, 24, -12},0, {0, 0},{0x93, 0x38, 0xDD, 0xFF}}},
{{{-11, -1, -21},0, {0, 0},{0x92, 0xEF, 0xC3, 0xFF}}},
{{{-10, 23, 16},0, {0, 0},{0x94, 0x35, 0x2A, 0xFF}}},
{{{61, -7, 30},0, {0, 0},{0x32, 0xD8, 0x6E, 0xFF}}},
{{{72, 19, 15},0, {0, 0},{0x6E, 0x2C, 0x2F, 0xFF}}},
};
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[] = {
gsSPCopyLightEXT(1, 5), // gsSPLight(&luigi_green_lights_group.l, 1),
gsSPCopyLightEXT(2, 6), // gsSPLight(&luigi_green_lights_group.a, 2),
gsSPDisplayList(luigi_right_arm_shared_dl),
gsSPEndDisplayList(),
};
static const Vtx luigi_right_forearm_shared_dl_vertex[16] = {
{{{3, 28, 20},0, {0, 0},{0xE3, 0x63, 0x4A, 0xFF}}},
{{{2, -8, 31},0, {0, 0},{0xE1, 0xD7, 0x74, 0xFF}}},
{{{61, -7, 26},0, {0, 0},{0x3E, 0xDB, 0x68, 0xFF}}},
{{{-10, 20, 15},0, {0, 0},{0x99, 0x3A, 0x2E, 0xFF}}},
{{{-10, 21, -10},0, {0, 0},{0x97, 0x3F, 0xDD, 0xFF}}},
{{{3, 29, -16},0, {0, 0},{0xE1, 0x68, 0xBE, 0xFF}}},
{{{62, 23, 17},0, {0, 0},{0x41, 0x55, 0x44, 0xFF}}},
{{{74, 1, 0},0, {0, 0},{0x7F, 0xFC, 0xFF, 0xFF}}},
{{{61, -25, 0},0, {0, 0},{0x3D, 0x91, 0xFD, 0xFF}}},
{{{2, -29, 0},0, {0, 0},{0xDC, 0x86, 0xFB, 0xFF}}},
{{{-11, -4, 22},0, {0, 0},{0x96, 0xEB, 0x43, 0xFF}}},
{{{-11, -17, 0},0, {0, 0},{0x92, 0xC0, 0xFA, 0xFF}}},
{{{-11, -1, -20},0, {0, 0},{0x95, 0xF4, 0xBC, 0xFF}}},
{{{2, -5, -30},0, {0, 0},{0xDE, 0xE1, 0x8A, 0xFF}}},
{{{62, 25, -14},0, {0, 0},{0x41, 0x5C, 0xC4, 0xFF}}},
{{{61, -5, -25},0, {0, 0},{0x3D, 0xE1, 0x95, 0xFF}}},
};
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_shared_dl_vertex[41] = {
{{{30, -37, -7},0, {0, 0},{0x3B, 0x9A, 0xD1, 0xFF}}},
{{{23, -54, -9},0, {0, 0},{0x75, 0xD2, 0xEF, 0xFF}}},
{{{2, 0, -39},0, {0, 0},{0x48, 0x23, 0x9D, 0xFF}}},
{{{11, -36, 35},0, {0, 0},{0xF8, 0xAE, 0x61, 0xFF}}},
{{{22, -23, 30},0, {0, 0},{0xA, 0xBE, 0x6C, 0xFF}}},
{{{54, -41, -9},0, {0, 0},{0x7, 0x8B, 0xCE, 0xFF}}},
{{{33, 11, -42},0, {0, 0},{0xE8, 0xF6, 0x84, 0xFF}}},
{{{14, 2, -29},0, {0, 0},{0xB, 0xFE, 0x81, 0xFF}}},
{{{-4, 43, -7},0, {0, 0},{0xDA, 0x70, 0xD1, 0xFF}}},
{{{-21, 49, -9},0, {0, 0},{0x2C, 0x76, 0xED, 0xFF}}},
{{{-15, 28, 35},0, {0, 0},{0xC4, 0x34, 0x63, 0xFF}}},
{{{0, 26, 30},0, {0, 0},{0xF2, 0x3C, 0x6F, 0xFF}}},
{{{-17, -9, 0},0, {0, 0},{0x8B, 0xD0, 0xF6, 0xFF}}},
{{{-21, 49, -9},0, {0, 0},{0x83, 0xF5, 0xEE, 0xFF}}},
{{{2, 0, -39},0, {0, 0},{0x99, 0xD5, 0xC4, 0xFF}}},
{{{23, -54, -9},0, {0, 0},{0xA0, 0xAF, 0xEC, 0xFF}}},
{{{27, 9, 43},0, {0, 0},{0xC2, 0xFB, 0x6F, 0xFF}}},
{{{0, 26, 30},0, {0, 0},{0xF2, 0x3C, 0x6F, 0xFF}}},
{{{22, -23, 30},0, {0, 0},{0xA, 0xBE, 0x6C, 0xFF}}},
{{{27, 64, 28},0, {0, 0},{0xCF, 0x59, 0x4D, 0xFF}}},
{{{55, 12, 59},0, {0, 0},{0xF3, 0x13, 0x7D, 0xFF}}},
{{{73, -30, 59},0, {0, 0},{0x18, 0xB2, 0x61, 0xFF}}},
{{{54, -41, -9},0, {0, 0},{0x7, 0x8B, 0xCE, 0xFF}}},
{{{102, -23, -5},0, {0, 0},{0x65, 0xBF, 0xD7, 0xFF}}},
{{{33, 11, -42},0, {0, 0},{0xE8, 0xF6, 0x84, 0xFF}}},
{{{83, 33, -39},0, {0, 0},{0x43, 0x1D, 0x98, 0xFF}}},
{{{56, 83, -6},0, {0, 0},{0x17, 0x7A, 0xE4, 0xFF}}},
{{{8, 63, -9},0, {0, 0},{0xB1, 0x59, 0xD4, 0xFF}}},
{{{-4, 43, -7},0, {0, 0},{0xDA, 0x70, 0xD1, 0xFF}}},
{{{14, 2, -29},0, {0, 0},{0xB, 0xFE, 0x81, 0xFF}}},
{{{52, 56, 38},0, {0, 0},{0x13, 0x51, 0x60, 0xFF}}},
{{{83, 18, 46},0, {0, 0},{0x42, 0x2E, 0x63, 0xFF}}},
{{{94, -5, 46},0, {0, 0},{0x67, 0xFA, 0x4B, 0xFF}}},
{{{83, 18, 46},0, {0, 0},{0x42, 0x2E, 0x63, 0xFF}}},
{{{55, 12, 59},0, {0, 0},{0xF3, 0x13, 0x7D, 0xFF}}},
{{{73, -30, 59},0, {0, 0},{0x18, 0xB2, 0x61, 0xFF}}},
{{{102, -23, -5},0, {0, 0},{0x65, 0xBF, 0xD7, 0xFF}}},
{{{95, 41, 18},0, {0, 0},{0x6B, 0x3E, 0x1C, 0xFF}}},
{{{83, 33, -39},0, {0, 0},{0x43, 0x1D, 0x98, 0xFF}}},
{{{56, 83, -6},0, {0, 0},{0x17, 0x7A, 0xE4, 0xFF}}},
{{{52, 56, 38},0, {0, 0},{0x13, 0x51, 0x60, 0xFF}}},
};
const Gfx luigi_right_hand_closed_dl[] = {
gsSPVertex(luigi_right_hand_closed_shared_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_shared_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_shared_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[] = {
gsSPLight(&luigi_white_lights_group.l, 1),
gsSPLight(&luigi_white_lights_group.a, 2),
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, 0},{0x81, 0xF7, 0x0, 0xFF}}},
{{{-1, -8, -31},0, {0, 0},{0xAD, 0xDF, 0xA5, 0xFF}}},
{{{0, -34, 1},0, {0, 0},{0xAB, 0xA1, 0x1, 0xFF}}},
{{{-4, 34, -19},0, {0, 0},{0xA6, 0x45, 0xC7, 0xFF}}},
{{{-4, 34, 21},0, {0, 0},{0xA6, 0x45, 0x3A, 0xFF}}},
{{{-1, -8, 33},0, {0, 0},{0xB0, 0xDF, 0x5D, 0xFF}}},
{{{19, -10, 41},0, {0, 0},{0xF0, 0xDA, 0x78, 0xFF}}},
{{{20, -45, 0},0, {0, 0},{0xED, 0x82, 0xFF, 0xFF}}},
{{{19, -10, -40},0, {0, 0},{0xEE, 0xDC, 0x87, 0xFF}}},
{{{15, 43, -24},0, {0, 0},{0xE8, 0x65, 0xB6, 0xFF}}},
{{{15, 43, 26},0, {0, 0},{0xE8, 0x64, 0x4B, 0xFF}}},
{{{96, 38, 21},0, {0, 0},{0x38, 0x5C, 0x43, 0xFF}}},
{{{99, -5, 33},0, {0, 0},{0x3C, 0xE2, 0x6C, 0xFF}}},
{{{102, -32, 0},0, {0, 0},{0x43, 0x94, 0x0, 0xFF}}},
{{{99, -5, -32},0, {0, 0},{0x3B, 0xE4, 0x93, 0xFF}}},
{{{96, 38, -19},0, {0, 0},{0x37, 0x5D, 0xBE, 0xFF}}},
{{{121, 7, 0},0, {0, 0},{0x7F, 0x7, 0xFF, 0xFF}}},
{{{96, 38, -19},0, {0, 0},{0x37, 0x5D, 0xBE, 0xFF}}},
{{{96, 38, 21},0, {0, 0},{0x38, 0x5C, 0x43, 0xFF}}},
{{{99, -5, 33},0, {0, 0},{0x3C, 0xE2, 0x6C, 0xFF}}},
{{{102, -32, 0},0, {0, 0},{0x43, 0x94, 0x0, 0xFF}}},
{{{99, -5, -32},0, {0, 0},{0x3B, 0xE4, 0x93, 0xFF}}},
};
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),
gsSPCopyLightEXT(1, 3), // gsSPLight(&luigi_blue_lights_group.l, 1),
gsSPCopyLightEXT(2, 4), // gsSPLight(&luigi_blue_lights_group.a, 2),
gsSPDisplayList(luigi_left_thigh_dl),
gsSPEndDisplayList(),
};
const Gfx luigi_metal_left_thigh[] = {
gsDPPipeSync(),
gsSPSetGeometryMode(G_TEXTURE_GEN),
gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE),
gsDPLoadTextureBlock(luigi_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON),
gsSPLight(&luigi_white_lights_group.l, 1),
gsSPLight(&luigi_white_lights_group.a, 2),
gsSPDisplayList(luigi_left_thigh_dl),
gsSPEndDisplayList(),
};
static const Vtx luigi_left_leg_shared_dl_vertex[12] = {
{{{66, -52, 0},0, {0, 0},{0x22, 0x86, 0x0, 0xFF}}},
{{{73, -17, 38},0, {0, 0},{0x32, 0xD7, 0x6D, 0xFF}}},
{{{-2, -33, 0},0, {0, 0},{0xB1, 0x9C, 0x0, 0xFF}}},
{{{93, -6, 0},0, {0, 0},{0x7D, 0xE9, 0x0, 0xFF}}},
{{{73, -17, -39},0, {0, 0},{0x31, 0xD8, 0x92, 0xFF}}},
{{{3, -2, -33},0, {0, 0},{0xC2, 0xF1, 0x92, 0xFF}}},
{{{-18, 14, 0},0, {0, 0},{0x85, 0x1E, 0x0, 0xFF}}},
{{{3, -2, 33},0, {0, 0},{0xC2, 0xEE, 0x6E, 0xFF}}},
{{{11, 36, 21},0, {0, 0},{0xD6, 0x62, 0x45, 0xFF}}},
{{{83, 35, 24},0, {0, 0},{0x45, 0x51, 0x45, 0xFF}}},
{{{83, 36, -23},0, {0, 0},{0x44, 0x54, 0xBD, 0xFF}}},
{{{11, 36, -19},0, {0, 0},{0xD7, 0x64, 0xBD, 0xFF}}},
};
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] = {
{{{124, 9, -29},0, {0, 0},{0x28, 0x79, 0xFE, 0xFF}}},
{{{90, 20, -50},0, {0, 0},{0x28, 0x79, 0xFF, 0xFF}}},
{{{124, 10, 26},0, {0, 0},{0x26, 0x79, 0xFF, 0xFF}}},
{{{92, 20, 51},0, {0, 0},{0x27, 0x79, 0x0, 0xFF}}},
{{{0, 51, -40},0, {0, 0},{0x29, 0x78, 0x0, 0xFF}}},
{{{1, 51, 45},0, {0, 0},{0x28, 0x79, 0x0, 0xFF}}},
{{{-26, 60, -16},0, {0, 0},{0x28, 0x79, 0x0, 0xFF}}},
{{{-28, 60, 18},0, {0, 0},{0x24, 0x7A, 0x2, 0xFF}}},
{{{124, 9, -29},0, {0, 0},{0x4B, 0xAB, 0xC6, 0xFF}}},
{{{124, 10, 26},0, {0, 0},{0x4F, 0xAD, 0x37, 0xFF}}},
{{{95, -31, -1},0, {0, 0},{0x38, 0x8E, 0xFE, 0xFF}}},
{{{60, -13, 45},0, {0, 0},{0x3, 0xB5, 0x67, 0xFF}}},
{{{92, 20, 51},0, {0, 0},{0x1E, 0xCF, 0x71, 0xFF}}},
{{{1, 51, 45},0, {0, 0},{0xD0, 0xFF, 0x76, 0xFF}}},
{{{-20, 9, 35},0, {0, 0},{0xB4, 0xCC, 0x58, 0xFF}}},
{{{-28, 60, 18},0, {0, 0},{0x8C, 0x15, 0x30, 0xFF}}},
{{{-39, 11, 0},0, {0, 0},{0x8A, 0xD0, 0xFF, 0xFF}}},
{{{-20, 9, 35},0, {0, 0},{0xB4, 0xCC, 0x58, 0xFF}}},
{{{-28, 60, 18},0, {0, 0},{0x8C, 0x15, 0x30, 0xFF}}},
{{{-26, 60, -16},0, {0, 0},{0x90, 0x17, 0xC9, 0xFF}}},
{{{-22, 8, -30},0, {0, 0},{0xB3, 0xCC, 0xA9, 0xFF}}},
{{{0, 51, -40},0, {0, 0},{0xCE, 0x0, 0x8B, 0xFF}}},
{{{58, -13, -42},0, {0, 0},{0xFF, 0xB6, 0x99, 0xFF}}},
{{{90, 20, -50},0, {0, 0},{0x14, 0xD1, 0x8C, 0xFF}}},
{{{124, 9, -29},0, {0, 0},{0x4B, 0xAB, 0xC6, 0xFF}}},
{{{95, -31, -1},0, {0, 0},{0x38, 0x8E, 0xFE, 0xFF}}},
{{{41, -37, 0},0, {0, 0},{0xE9, 0x83, 0xFF, 0xFF}}},
{{{60, -13, 45},0, {0, 0},{0x3, 0xB5, 0x67, 0xFF}}},
};
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[] = {
gsSPLight(&luigi_brown1_lights_group.l, 1),
gsSPLight(&luigi_brown1_lights_group.a, 2),
gsSPDisplayList(luigi_left_foot_shared_dl),
gsSPEndDisplayList(),
};
static const Vtx luigi_right_thigh_dl_vertex[26] = {
{{{19, -10, 40},0, {0, 0},{0xEE, 0xDC, 0x79, 0xFF}}},
{{{20, -45, 0},0, {0, 0},{0xEE, 0x82, 0x1, 0xFF}}},
{{{102, -32, 0},0, {0, 0},{0x43, 0x94, 0x0, 0xFF}}},
{{{0, -34, -1},0, {0, 0},{0xAC, 0xA0, 0xFF, 0xFF}}},
{{{-1, -8, 31},0, {0, 0},{0xAE, 0xDF, 0x5C, 0xFF}}},
{{{-4, 34, 19},0, {0, 0},{0xA7, 0x46, 0x3B, 0xFF}}},
{{{15, 43, 24},0, {0, 0},{0xE9, 0x64, 0x4A, 0xFF}}},
{{{96, 38, 19},0, {0, 0},{0x38, 0x5D, 0x42, 0xFF}}},
{{{99, -5, 32},0, {0, 0},{0x3C, 0xE4, 0x6D, 0xFF}}},
{{{121, 7, -1},0, {0, 0},{0x7F, 0x7, 0xFF, 0xFF}}},
{{{98, -5, -33},0, {0, 0},{0x3A, 0xE1, 0x93, 0xFF}}},
{{{18, -10, -41},0, {0, 0},{0xEF, 0xDB, 0x88, 0xFF}}},
{{{-2, -8, -32},0, {0, 0},{0xAE, 0xDE, 0xA6, 0xFF}}},
{{{-17, 2, -1},0, {0, 0},{0x81, 0xF7, 0x1, 0xFF}}},
{{{-5, 34, -21},0, {0, 0},{0xA7, 0x46, 0xC5, 0xFF}}},
{{{14, 43, -25},0, {0, 0},{0xE9, 0x65, 0xB7, 0xFF}}},
{{{96, 38, -21},0, {0, 0},{0x38, 0x5C, 0xBC, 0xFF}}},
{{{14, 43, -25},0, {0, 0},{0xE9, 0x65, 0xB7, 0xFF}}},
{{{96, 38, 19},0, {0, 0},{0x38, 0x5D, 0x42, 0xFF}}},
{{{121, 7, -1},0, {0, 0},{0x7F, 0x7, 0xFF, 0xFF}}},
{{{99, -5, 32},0, {0, 0},{0x3C, 0xE4, 0x6D, 0xFF}}},
{{{98, -5, -33},0, {0, 0},{0x3A, 0xE1, 0x93, 0xFF}}},
{{{18, -10, -41},0, {0, 0},{0xEF, 0xDB, 0x88, 0xFF}}},
{{{-5, 34, -21},0, {0, 0},{0xA7, 0x46, 0xC5, 0xFF}}},
{{{-2, -8, -32},0, {0, 0},{0xAE, 0xDE, 0xA6, 0xFF}}},
{{{-17, 2, -1},0, {0, 0},{0x81, 0xF7, 0x1, 0xFF}}},
};
const Gfx luigi_right_thigh_shared_dl[] = {
gsSPVertex(luigi_right_thigh_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_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[] = {
gsSPCopyLightEXT(1, 3), // gsSPLight(&luigi_blue_lights_group.l, 1),
gsSPCopyLightEXT(2, 4), // gsSPLight(&luigi_blue_lights_group.a, 2),
gsSPDisplayList(luigi_right_thigh_shared_dl),
gsSPEndDisplayList(),
};
static const Vtx luigi_right_leg_shared_dl_vertex[22] = {
{{{72, -17, -38},0, {0, 0},{0xFD, 0x21, 0x85, 0xFF}}},
{{{10, 38, -21},0, {0, 0},{0xD4, 0x61, 0xBB, 0xFF}}},
{{{82, 38, -24},0, {0, 0},{0xFB, 0x20, 0x85, 0xFF}}},
{{{2, -2, -33},0, {0, 0},{0xC1, 0xED, 0x93, 0xFF}}},
{{{-18, 14, 0},0, {0, 0},{0x84, 0x1B, 0x0, 0xFF}}},
{{{-2, -33, 0},0, {0, 0},{0xB3, 0x9B, 0x0, 0xFF}}},
{{{72, -17, -38},0, {0, 0},{0xE8, 0xA5, 0xAB, 0xFF}}},
{{{65, -50, 0},0, {0, 0},{0xE9, 0xA4, 0xAC, 0xFF}}},
{{{2, -2, 33},0, {0, 0},{0xC1, 0xEE, 0x6D, 0xFF}}},
{{{73, -17, 38},0, {0, 0},{0xE8, 0xA5, 0x56, 0xFF}}},
{{{65, -50, 0},0, {0, 0},{0xE9, 0xA4, 0x55, 0xFF}}},
{{{11, 38, 21},0, {0, 0},{0xD6, 0x62, 0x46, 0xFF}}},
{{{73, -17, 38},0, {0, 0},{0xFE, 0x23, 0x7A, 0xFF}}},
{{{83, 38, 23},0, {0, 0},{0xFD, 0x22, 0x7A, 0xFF}}},
{{{83, 38, 23},0, {0, 0},{0x0, 0x7F, 0x0, 0xFF}}},
{{{82, 38, -24},0, {0, 0},{0x0, 0x7F, 0x0, 0xFF}}},
{{{95, -5, 0},0, {0, 0},{0x7D, 0xE9, 0xFF, 0xFF}}},
{{{65, -50, 0},0, {0, 0},{0x6A, 0xBA, 0xFF, 0xFF}}},
{{{72, -17, -38},0, {0, 0},{0x6D, 0xD9, 0xCB, 0xFF}}},
{{{73, -17, 38},0, {0, 0},{0x6E, 0xD9, 0x33, 0xFF}}},
{{{83, 38, 23},0, {0, 0},{0x7B, 0x13, 0x1B, 0xFF}}},
{{{82, 38, -24},0, {0, 0},{0x79, 0x13, 0xE0, 0xFF}}},
};
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_shared_dl_vertex[28] = {
{{{-26, 60, 15},0, {0, 0},{0x27, 0x79, 0xFF, 0xFF}}},
{{{0, 51, -46},0, {0, 0},{0x28, 0x79, 0xFF, 0xFF}}},
{{{-30, 60, -17},0, {0, 0},{0x21, 0x7B, 0xFC, 0xFF}}},
{{{1, 51, 39},0, {0, 0},{0x28, 0x79, 0xFF, 0xFF}}},
{{{90, 20, -54},0, {0, 0},{0x28, 0x79, 0xFF, 0xFF}}},
{{{90, 22, 47},0, {0, 0},{0x28, 0x79, 0xFE, 0xFF}}},
{{{122, 10, -30},0, {0, 0},{0x28, 0x79, 0xFE, 0xFF}}},
{{{124, 10, 26},0, {0, 0},{0x29, 0x78, 0xFF, 0xFF}}},
{{{124, 10, 26},0, {0, 0},{0x4D, 0xAE, 0x3B, 0xFF}}},
{{{94, -31, 0},0, {0, 0},{0x38, 0x8E, 0x3, 0xFF}}},
{{{122, 10, -30},0, {0, 0},{0x4D, 0xAC, 0xC8, 0xFF}}},
{{{60, -12, 41},0, {0, 0},{0x1, 0xB9, 0x69, 0xFF}}},
{{{90, 22, 47},0, {0, 0},{0x16, 0xD7, 0x76, 0xFF}}},
{{{1, 51, 39},0, {0, 0},{0xD0, 0x0, 0x76, 0xFF}}},
{{{-20, 9, 30},0, {0, 0},{0xB7, 0xCD, 0x5B, 0xFF}}},
{{{-26, 60, 15},0, {0, 0},{0x92, 0x16, 0x3C, 0xFF}}},
{{{-20, 9, 30},0, {0, 0},{0xB7, 0xCD, 0x5B, 0xFF}}},
{{{-26, 60, 15},0, {0, 0},{0x92, 0x16, 0x3C, 0xFF}}},
{{{-40, 11, 0},0, {0, 0},{0x8B, 0xD0, 0x7, 0xFF}}},
{{{-30, 60, -17},0, {0, 0},{0x8A, 0x15, 0xD5, 0xFF}}},
{{{-22, 8, -35},0, {0, 0},{0xB3, 0xCA, 0xAB, 0xFF}}},
{{{0, 51, -46},0, {0, 0},{0xCE, 0xFE, 0x8B, 0xFF}}},
{{{58, -14, -46},0, {0, 0},{0x0, 0xB2, 0x9B, 0xFF}}},
{{{90, 20, -54},0, {0, 0},{0x1A, 0xCD, 0x8F, 0xFF}}},
{{{122, 10, -30},0, {0, 0},{0x4D, 0xAC, 0xC8, 0xFF}}},
{{{94, -31, 0},0, {0, 0},{0x38, 0x8E, 0x3, 0xFF}}},
{{{41, -36, 0},0, {0, 0},{0xE8, 0x83, 0x5, 0xFF}}},
{{{60, -12, 41},0, {0, 0},{0x1, 0xB9, 0x69, 0xFF}}},
};
const Gfx luigi_right_foot_dl[] = {
gsSPVertex(luigi_right_foot_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(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_shared_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[] = {
gsSPLight(&luigi_brown1_lights_group.l, 1),
gsSPLight(&luigi_brown1_lights_group.a, 2),
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, {799, 971},{0x10, 0x76, 0xD4, 0xFF}}},
{{{18, 74, -23},0, {973, 546},{0x26, 0x79, 0xF6, 0xFF}}},
{{{39, 66, -26},0, {853, 75},{0x3F, 0x6B, 0xE5, 0xFF}}},
{{{-6, 66, -49},0, {323, 1014},{0x1, 0x67, 0xB5, 0xFF}}},
{{{8, 57, -61},0, {11, 654},{0x12, 0x52, 0xA0, 0xFF}}},
{{{24, 53, -58},0, {28, 302},{0x24, 0x4D, 0xA2, 0xFF}}},
{{{39, 56, -47},0, {324, -20},{0x3A, 0x5C, 0xBE, 0xFF}}},
{{{18, 74, 24},0, {8, 500},{0x26, 0x79, 0xA, 0xFF}}},
{{{1, 78, 33},0, {175, 930},{0x10, 0x75, 0x2E, 0xFF}}},
{{{39, 66, 27},0, {130, 50},{0x3F, 0x6B, 0x1B, 0xFF}}},
{{{-6, 66, 49},0, {640, 1014},{0x3, 0x67, 0x4B, 0xFF}}},
{{{8, 57, 61},0, {949, 683},{0x13, 0x54, 0x5D, 0xFF}}},
{{{24, 53, 59},0, {935, 334},{0x20, 0x50, 0x5E, 0xFF}}},
{{{39, 56, 48},0, {647, -8},{0x3A, 0x5D, 0x41, 0xFF}}},
};
static const Vtx luigi_tshirt_shared_dl_vertex[30] = {
{{{39, 66, 27},0, {0, 0},{0x3F, 0x6B, 0x1B, 0xFF}}},
{{{76, 31, 22},0, {0, 0},{0x64, 0x4A, 0x1B, 0xFF}}},
{{{39, 66, -26},0, {0, 0},{0x3F, 0x6B, 0xE5, 0xFF}}},
{{{76, 31, -21},0, {0, 0},{0x64, 0x4A, 0xE5, 0xFF}}},
{{{94, -2, 19},0, {0, 0},{0x7B, 0x11, 0x1B, 0xFF}}},
{{{94, -2, -18},0, {0, 0},{0x7B, 0x10, 0xE6, 0xFF}}},
{{{86, -35, 21},0, {0, 0},{0x69, 0xBB, 0x13, 0xFF}}},
{{{86, -35, -19},0, {0, 0},{0x69, 0xBB, 0xEE, 0xFF}}},
{{{47, -62, 0},0, {0, 0},{0x2C, 0x89, 0x0, 0xFF}}},
{{{39, -34, -66},0, {0, 0},{0x1F, 0xCD, 0x90, 0xFF}}},
{{{77, -30, -49},0, {0, 0},{0x59, 0xD6, 0xAF, 0xFF}}},
{{{60, -50, -40},0, {0, 0},{0x38, 0x99, 0xCF, 0xFF}}},
{{{39, -1, -71},0, {0, 0},{0x26, 0x6, 0x87, 0xFF}}},
{{{-1, -13, -73},0, {0, 0},{0x0, 0xEC, 0x83, 0xFF}}},
{{{12, -59, -54},0, {0, 0},{0x8, 0x9B, 0xB3, 0xFF}}},
{{{4, 26, -72},0, {0, 0},{0xA, 0x18, 0x84, 0xFF}}},
{{{4, 26, -72},0, {0, 0},{0xA, 0x18, 0x84, 0xFF}}},
{{{36, 43, -59},0, {0, 0},{0x34, 0x33, 0x98, 0xFF}}},
{{{39, -1, -71},0, {0, 0},{0x26, 0x6, 0x87, 0xFF}}},
{{{73, 10, -49},0, {0, 0},{0x59, 0x23, 0xAC, 0xFF}}},
{{{77, -30, -49},0, {0, 0},{0x59, 0xD6, 0xAF, 0xFF}}},
{{{39, -34, 67},0, {0, 0},{0x1F, 0xCD, 0x70, 0xFF}}},
{{{-1, -14, 74},0, {0, 0},{0x0, 0xEB, 0x7D, 0xFF}}},
{{{12, -59, 55},0, {0, 0},{0x8, 0x9A, 0x4C, 0xFF}}},
{{{39, -1, 72},0, {0, 0},{0x27, 0x6, 0x79, 0xFF}}},
{{{77, -30, 50},0, {0, 0},{0x58, 0xD7, 0x51, 0xFF}}},
{{{60, -50, 41},0, {0, 0},{0x37, 0x99, 0x31, 0xFF}}},
{{{73, 10, 49},0, {0, 0},{0x59, 0x23, 0x53, 0xFF}}},
{{{36, 43, 61},0, {0, 0},{0x33, 0x35, 0x68, 0xFF}}},
{{{4, 26, 73},0, {0, 0},{0xA, 0x18, 0x7C, 0xFF}}},
};
static const Vtx luigi_pants_overalls_shared_dl_vertex[94] = {
{{{18, 74, 24},0, {0, 0},{0x26, 0x79, 0xA, 0xFF}}},
{{{1, 78, -32},0, {0, 0},{0x10, 0x76, 0xD4, 0xFF}}},
{{{1, 78, 33},0, {0, 0},{0x10, 0x75, 0x2E, 0xFF}}},
{{{18, 74, -23},0, {0, 0},{0x26, 0x79, 0xF6, 0xFF}}},
{{{39, 66, -26},0, {0, 0},{0x3F, 0x6B, 0xE5, 0xFF}}},
{{{39, 66, 27},0, {0, 0},{0x3F, 0x6B, 0x1B, 0xFF}}},
{{{-25, 77, 29},0, {0, 0},{0xEF, 0x79, 0x22, 0xFF}}},
{{{-25, 77, -27},0, {0, 0},{0xEF, 0x7A, 0xDF, 0xFF}}},
{{{-6, 66, -49},0, {0, 0},{0x1, 0x67, 0xB5, 0xFF}}},
{{{-39, 54, -59},0, {0, 0},{0xD3, 0x45, 0x9F, 0xFF}}},
{{{-14, 49, -65},0, {0, 0},{0xFA, 0x3D, 0x91, 0xFF}}},
{{{8, 57, -61},0, {0, 0},{0x12, 0x52, 0xA0, 0xFF}}},
{{{4, 26, -72},0, {0, 0},{0xA, 0x18, 0x84, 0xFF}}},
{{{24, 53, -58},0, {0, 0},{0x24, 0x4D, 0xA2, 0xFF}}},
{{{36, 43, -59},0, {0, 0},{0x34, 0x33, 0x98, 0xFF}}},
{{{39, 56, -47},0, {0, 0},{0x3A, 0x5C, 0xBE, 0xFF}}},
{{{36, 43, -59},0, {0, 0},{0x34, 0x33, 0x98, 0xFF}}},
{{{39, 56, -47},0, {0, 0},{0x3A, 0x5C, 0xBE, 0xFF}}},
{{{73, 10, -49},0, {0, 0},{0x59, 0x23, 0xAC, 0xFF}}},
{{{76, 31, -21},0, {0, 0},{0x64, 0x4A, 0xE5, 0xFF}}},
{{{39, 66, -26},0, {0, 0},{0x3F, 0x6B, 0xE5, 0xFF}}},
{{{94, -2, -18},0, {0, 0},{0x7B, 0x10, 0xE6, 0xFF}}},
{{{77, -30, -49},0, {0, 0},{0x59, 0xD6, 0xAF, 0xFF}}},
{{{86, -35, -19},0, {0, 0},{0x69, 0xBB, 0xEE, 0xFF}}},
{{{60, -50, -40},0, {0, 0},{0x38, 0x99, 0xCF, 0xFF}}},
{{{47, -62, 0},0, {0, 0},{0x2C, 0x89, 0x0, 0xFF}}},
{{{12, -59, -54},0, {0, 0},{0x8, 0x9B, 0xB3, 0xFF}}},
{{{0, -71, 0},0, {0, 0},{0x0, 0x81, 0x0, 0xFF}}},
{{{12, -59, 55},0, {0, 0},{0x8, 0x9A, 0x4C, 0xFF}}},
{{{60, -50, 41},0, {0, 0},{0x37, 0x99, 0x31, 0xFF}}},
{{{86, -35, 21},0, {0, 0},{0x69, 0xBB, 0x13, 0xFF}}},
{{{77, -30, 50},0, {0, 0},{0x58, 0xD7, 0x51, 0xFF}}},
{{{86, -35, 21},0, {0, 0},{0x69, 0xBB, 0x13, 0xFF}}},
{{{94, -2, 19},0, {0, 0},{0x7B, 0x11, 0x1B, 0xFF}}},
{{{77, -30, 50},0, {0, 0},{0x58, 0xD7, 0x51, 0xFF}}},
{{{73, 10, 49},0, {0, 0},{0x59, 0x23, 0x53, 0xFF}}},
{{{76, 31, 22},0, {0, 0},{0x64, 0x4A, 0x1B, 0xFF}}},
{{{39, 56, 48},0, {0, 0},{0x3A, 0x5D, 0x41, 0xFF}}},
{{{39, 66, 27},0, {0, 0},{0x3F, 0x6B, 0x1B, 0xFF}}},
{{{36, 43, 61},0, {0, 0},{0x33, 0x35, 0x68, 0xFF}}},
{{{24, 53, 59},0, {0, 0},{0x20, 0x50, 0x5E, 0xFF}}},
{{{4, 26, 73},0, {0, 0},{0xA, 0x18, 0x7C, 0xFF}}},
{{{8, 57, 61},0, {0, 0},{0x13, 0x54, 0x5D, 0xFF}}},
{{{-14, 49, 67},0, {0, 0},{0xFD, 0x3E, 0x6F, 0xFF}}},
{{{-6, 66, 49},0, {0, 0},{0x3, 0x67, 0x4B, 0xFF}}},
{{{-39, 54, 61},0, {0, 0},{0xD3, 0x45, 0x61, 0xFF}}},
{{{-25, 77, 29},0, {0, 0},{0xEF, 0x79, 0x22, 0xFF}}},
{{{1, 78, 33},0, {0, 0},{0x10, 0x75, 0x2E, 0xFF}}},
{{{-51, 63, 43},0, {0, 0},{0xC6, 0x5B, 0x43, 0xFF}}},
{{{-39, 54, 61},0, {0, 0},{0xD3, 0x45, 0x61, 0xFF}}},
{{{-25, 77, 29},0, {0, 0},{0xEF, 0x79, 0x22, 0xFF}}},
{{{-82, 45, 25},0, {0, 0},{0x8D, 0x25, 0x28, 0xFF}}},
{{{-54, 72, 19},0, {0, 0},{0xC6, 0x70, 0x13, 0xFF}}},
{{{-54, 72, -19},0, {0, 0},{0xC7, 0x70, 0xEB, 0xFF}}},
{{{-25, 77, -27},0, {0, 0},{0xEF, 0x7A, 0xDF, 0xFF}}},
{{{-51, 62, -43},0, {0, 0},{0xC5, 0x57, 0xB9, 0xFF}}},
{{{-39, 54, -59},0, {0, 0},{0xD3, 0x45, 0x9F, 0xFF}}},
{{{-82, 45, -23},0, {0, 0},{0x8D, 0x25, 0xD8, 0xFF}}},
{{{-36, 21, -72},0, {0, 0},{0xCE, 0xC, 0x8C, 0xFF}}},
{{{-14, 49, -65},0, {0, 0},{0xFA, 0x3D, 0x91, 0xFF}}},
{{{4, 26, -72},0, {0, 0},{0xA, 0x18, 0x84, 0xFF}}},
{{{-1, -13, -73},0, {0, 0},{0x0, 0xEC, 0x83, 0xFF}}},
{{{-36, -26, -69},0, {0, 0},{0xCD, 0xDD, 0x91, 0xFF}}},
{{{12, -59, -54},0, {0, 0},{0x8, 0x9B, 0xB3, 0xFF}}},
{{{-39, -56, -47},0, {0, 0},{0xCA, 0x9F, 0xC1, 0xFF}}},
{{{-36, -26, -69},0, {0, 0},{0xCD, 0xDD, 0x91, 0xFF}}},
{{{12, -59, -54},0, {0, 0},{0x8, 0x9B, 0xB3, 0xFF}}},
{{{0, -71, 0},0, {0, 0},{0x0, 0x81, 0x0, 0xFF}}},
{{{-40, -64, 0},0, {0, 0},{0xC6, 0x8F, 0x0, 0xFF}}},
{{{-39, -56, 48},0, {0, 0},{0xCA, 0x9F, 0x3E, 0xFF}}},
{{{12, -59, 55},0, {0, 0},{0x8, 0x9A, 0x4C, 0xFF}}},
{{{-36, -26, 70},0, {0, 0},{0xCD, 0xDD, 0x6F, 0xFF}}},
{{{-1, -14, 74},0, {0, 0},{0x0, 0xEB, 0x7D, 0xFF}}},
{{{-36, 21, 73},0, {0, 0},{0xCE, 0xB, 0x74, 0xFF}}},
{{{4, 26, 73},0, {0, 0},{0xA, 0x18, 0x7C, 0xFF}}},
{{{-14, 49, 67},0, {0, 0},{0xFD, 0x3E, 0x6F, 0xFF}}},
{{{-39, 54, 61},0, {0, 0},{0xD3, 0x45, 0x61, 0xFF}}},
{{{-82, 45, 25},0, {0, 0},{0x8D, 0x25, 0x28, 0xFF}}},
{{{-70, -30, 31},0, {0, 0},{0x91, 0xD1, 0x29, 0xFF}}},
{{{-82, 45, -23},0, {0, 0},{0x8D, 0x25, 0xD8, 0xFF}}},
{{{-82, 45, -23},0, {0, 0},{0x8D, 0x25, 0xD8, 0xFF}}},
{{{-82, 45, 25},0, {0, 0},{0x8D, 0x25, 0x28, 0xFF}}},
{{{-54, 72, 19},0, {0, 0},{0xC6, 0x70, 0x13, 0xFF}}},
{{{-54, 72, -19},0, {0, 0},{0xC7, 0x70, 0xEB, 0xFF}}},
{{{-51, 62, -43},0, {0, 0},{0xC5, 0x57, 0xB9, 0xFF}}},
{{{-70, -30, -30},0, {0, 0},{0x91, 0xD1, 0xD7, 0xFF}}},
{{{-70, -30, 31},0, {0, 0},{0x91, 0xD1, 0x29, 0xFF}}},
{{{-40, -64, 0},0, {0, 0},{0xC6, 0x8F, 0x0, 0xFF}}},
{{{-39, -56, -47},0, {0, 0},{0xCA, 0x9F, 0xC1, 0xFF}}},
{{{-36, -26, -69},0, {0, 0},{0xCD, 0xDD, 0x91, 0xFF}}},
{{{-36, 21, -72},0, {0, 0},{0xCE, 0xC, 0x8C, 0xFF}}},
{{{-39, -56, 48},0, {0, 0},{0xCA, 0x9F, 0x3E, 0xFF}}},
{{{-36, -26, 70},0, {0, 0},{0xCD, 0xDD, 0x6F, 0xFF}}},
{{{-36, 21, 73},0, {0, 0},{0xCE, 0xB, 0x74, 0xFF}}},
};
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),
gsSPCopyLightEXT(1, 5), // gsSPLight(&luigi_green_lights_group.l, 1),
gsSPCopyLightEXT(2, 6), // 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(),
};
static const Vtx luigi_l_logo_dl_vertex[7] = {
{{{186, 82, 26},0, {732, 864},{0x4D, 0x55, 0x38, 0xFF}}},
{{{147, 30, 77},0, {1214, 1190},{0xFD, 0x45, 0x6B, 0xFF}}},
{{{246, 59, 57},0, {998, 194},{0x3F, 0x48, 0x54, 0xFF}}},
{{{272, 72, 0},0, {466, -50},{0x60, 0x53, 0x0, 0xFF}}},
{{{186, 82, -25},0, {248, 876},{0x4D, 0x54, 0xC8, 0xFF}}},
{{{246, 59, -56},0, {-52, 224},{0x3F, 0x48, 0xAC, 0xFF}}},
{{{147, 30, -75},0, {-212, 1230},{0xFE, 0x45, 0x95, 0xFF}}},
};
static const Vtx luigi_eyes_cap_on_dl_vertex[12] = {
{{{166, 83, -26},0, {194, 72},{0xA2, 0x54, 0xF3, 0xFF}}},
{{{147, 30, -75},0, {-334, 216},{0xFE, 0x45, 0x95, 0xFF}}},
{{{135, 73, -54},0, {-94, 378},{0x1A, 0x5A, 0xAA, 0xFF}}},
{{{78, 89, -19},0, {272, 992},{0x44, 0x42, 0xAB, 0xFF}}},
{{{94, 75, -56},0, {-108, 832},{0x14, 0x63, 0xB2, 0xFF}}},
{{{135, 93, 0},0, {480, 426},{0xB, 0x7F, 0x0, 0xFF}}},
{{{166, 83, 26},0, {754, 64},{0xA2, 0x55, 0xD, 0xFF}}},
{{{78, 89, 19},0, {704, 984},{0x47, 0x41, 0x53, 0xFF}}},
{{{88, 91, 0},0, {488, 928},{0x5A, 0x5A, 0x0, 0xFF}}},
{{{135, 73, 55},0, {1054, 362},{0x1B, 0x5B, 0x54, 0xFF}}},
{{{94, 75, 57},0, {1084, 812},{0x14, 0x64, 0x4C, 0xFF}}},
{{{147, 30, 77},0, {1290, 192},{0xFD, 0x45, 0x6B, 0xFF}}},
};
static const Vtx luigi_hair_sideburn_cap_on_dl_vertex[12] = {
{{{88, 42, -75},0, {-20, 677},{0x7, 0x29, 0x88, 0xFF}}},
{{{147, 30, -75},0, {146, -91},{0xFE, 0x45, 0x95, 0xFF}}},
{{{122, -10, -90},0, {903, 197},{0xEA, 0x24, 0x88, 0xFF}}},
{{{78, -26, -90},0, {1236, 633},{0x2, 0x59, 0xA5, 0xFF}}},
{{{35, -5, -82},0, {873, 1170},{0xBE, 0xFA, 0x94, 0xFF}}},
{{{35, 34, -78},0, {177, 1280},{0xD6, 0x1A, 0x8B, 0xFF}}},
{{{88, 42, 77},0, {-49, 678},{0x6, 0x29, 0x78, 0xFF}}},
{{{122, -10, 91},0, {890, 135},{0xE9, 0x23, 0x78, 0xFF}}},
{{{147, 30, 77},0, {93, -96},{0xFD, 0x45, 0x6B, 0xFF}}},
{{{78, -26, 91},0, {1308, 629},{0x2, 0x58, 0x5C, 0xFF}}},
{{{35, -5, 83},0, {935, 1165},{0xBD, 0xF9, 0x6C, 0xFF}}},
{{{35, 34, 79},0, {185, 1281},{0xD4, 0x1B, 0x74, 0xFF}}},
};
static const Vtx luigi_mustache_cap_on_dl_vertex[21] = {
{{{78, 89, 19},0, {287, -37},{0x47, 0x41, 0x53, 0xFF}}},
{{{58, 93, 27},0, {392, 376},{0x13, 0x21, 0x79, 0xFF}}},
{{{67, 77, 67},0, {910, 14},{0x8, 0x58, 0x5C, 0xFF}}},
{{{36, 79, 57},0, {776, 534},{0xD1, 0x57, 0x50, 0xFF}}},
{{{36, 94, 26},0, {339, 690},{0xB6, 0x29, 0x5F, 0xFF}}},
{{{14, 82, 24},0, {376, 1000},{0xAC, 0x5A, 0x20, 0xFF}}},
{{{24, 90, 0},0, {42, 934},{0x8C, 0x33, 0x0, 0xFF}}},
{{{-6, 40, 42},0, {825, 1115},{0x93, 0x14, 0x3F, 0xFF}}},
{{{35, 34, 79},0, {1273, 323},{0xD4, 0x1B, 0x74, 0xFF}}},
{{{36, 94, -26},0, {324, 713},{0xBB, 0x2C, 0x9F, 0xFF}}},
{{{14, 82, -24},0, {347, 1008},{0xAC, 0x5A, 0xE0, 0xFF}}},
{{{24, 90, 0},0, {29, 971},{0x8C, 0x33, 0x0, 0xFF}}},
{{{36, 79, -57},0, {749, 534},{0xD3, 0x57, 0xAF, 0xFF}}},
{{{58, 93, -26},0, {388, 378},{0x13, 0x22, 0x87, 0xFF}}},
{{{67, 77, -66},0, {900, 22},{0x9, 0x57, 0xA3, 0xFF}}},
{{{78, 89, -19},0, {302, 17},{0x44, 0x42, 0xAB, 0xFF}}},
{{{35, 34, -78},0, {1236, 294},{0xD6, 0x1A, 0x8B, 0xFF}}},
{{{36, 79, -57},0, {749, 534},{0xD3, 0x57, 0xAF, 0xFF}}},
{{{67, 77, -66},0, {900, 22},{0x9, 0x57, 0xA3, 0xFF}}},
{{{-6, 40, -42},0, {774, 1088},{0x94, 0x14, 0xC1, 0xFF}}},
{{{14, 82, -24},0, {347, 1008},{0xAC, 0x5A, 0xE0, 0xFF}}},
};
static const Vtx luigi_face_cap_dl_vertex[40] = {
{{{246, 59, 57},0, {0, 0},{0x3F, 0x48, 0x54, 0xFF}}},
{{{147, 30, 77},0, {0, 0},{0xFD, 0x45, 0x6B, 0xFF}}},
{{{184, -5, 117},0, {0, 0},{0x1C, 0xA, 0x7B, 0xFF}}},
{{{122, -10, 91},0, {0, 0},{0xE9, 0x23, 0x78, 0xFF}}},
{{{130, -56, 107},0, {0, 0},{0xE8, 0xDD, 0x78, 0xFF}}},
{{{92, -58, 73},0, {0, 0},{0xCB, 0xC2, 0x61, 0xFF}}},
{{{66, -98, 42},0, {0, 0},{0xD5, 0x9E, 0x44, 0xFF}}},
{{{77, -134, 42},0, {0, 0},{0xBB, 0xA3, 0x34, 0xFF}}},
{{{77, -134, -41},0, {0, 0},{0xBB, 0xA2, 0xCD, 0xFF}}},
{{{66, -98, -42},0, {0, 0},{0xD4, 0xA0, 0xB9, 0xFF}}},
{{{130, -56, -106},0, {0, 0},{0xE9, 0xDE, 0x88, 0xFF}}},
{{{92, -58, -72},0, {0, 0},{0xCB, 0xC2, 0x9E, 0xFF}}},
{{{122, -10, -90},0, {0, 0},{0xEA, 0x24, 0x88, 0xFF}}},
{{{184, -5, -115},0, {0, 0},{0x1C, 0xB, 0x85, 0xFF}}},
{{{147, 30, -75},0, {0, 0},{0xFE, 0x45, 0x95, 0xFF}}},
{{{246, 59, -56},0, {0, 0},{0x3F, 0x48, 0xAC, 0xFF}}},
{{{246, 59, -56},0, {0, 0},{0x3F, 0x48, 0xAC, 0xFF}}},
{{{269, -2, -33},0, {0, 0},{0x70, 0xD5, 0xD5, 0xFF}}},
{{{184, -5, -115},0, {0, 0},{0x1C, 0xB, 0x85, 0xFF}}},
{{{272, 72, 0},0, {0, 0},{0x60, 0x53, 0x0, 0xFF}}},
{{{269, -2, 34},0, {0, 0},{0x70, 0xD5, 0x2B, 0xFF}}},
{{{246, 59, 57},0, {0, 0},{0x3F, 0x48, 0x54, 0xFF}}},
{{{184, -5, 117},0, {0, 0},{0x1C, 0xA, 0x7B, 0xFF}}},
{{{168, -88, 62},0, {0, 0},{0x49, 0xA7, 0x37, 0xFF}}},
{{{130, -56, 107},0, {0, 0},{0xE8, 0xDD, 0x78, 0xFF}}},
{{{123, -135, 41},0, {0, 0},{0x28, 0x90, 0x2C, 0xFF}}},
{{{77, -134, 42},0, {0, 0},{0xBB, 0xA3, 0x34, 0xFF}}},
{{{77, -134, -41},0, {0, 0},{0xBB, 0xA2, 0xCD, 0xFF}}},
{{{123, -135, -40},0, {0, 0},{0x28, 0x90, 0xD4, 0xFF}}},
{{{130, -56, -106},0, {0, 0},{0xE9, 0xDE, 0x88, 0xFF}}},
{{{168, -88, -61},0, {0, 0},{0x49, 0xA8, 0xC9, 0xFF}}},
{{{163, 118, 54},0, {0, 0},{0xE4, 0x52, 0x5D, 0xFF}}},
{{{147, 30, 77},0, {0, 0},{0xFD, 0x45, 0x6B, 0xFF}}},
{{{186, 82, 26},0, {0, 0},{0x4D, 0x55, 0x38, 0xFF}}},
{{{166, 83, 26},0, {0, 0},{0xA2, 0x55, 0xD, 0xFF}}},
{{{170, 147, 0},0, {0, 0},{0xF9, 0x7F, 0xFF, 0xFF}}},
{{{186, 82, -25},0, {0, 0},{0x4D, 0x54, 0xC8, 0xFF}}},
{{{163, 117, -53},0, {0, 0},{0xE3, 0x51, 0xA2, 0xFF}}},
{{{147, 30, -75},0, {0, 0},{0xFE, 0x45, 0x95, 0xFF}}},
{{{166, 83, -26},0, {0, 0},{0xA2, 0x54, 0xF3, 0xFF}}},
};
static const Vtx luigi_face_part_cap_on_dl_vertex[90] = {
{{{88, 42, -75},0, {0, 0},{0x7, 0x29, 0x88, 0xFF}}},
{{{135, 73, -54},0, {0, 0},{0x1A, 0x5A, 0xAA, 0xFF}}},
{{{147, 30, -75},0, {0, 0},{0xFE, 0x45, 0x95, 0xFF}}},
{{{94, 75, -56},0, {0, 0},{0x14, 0x63, 0xB2, 0xFF}}},
{{{67, 77, -66},0, {0, 0},{0x9, 0x57, 0xA3, 0xFF}}},
{{{35, 34, -78},0, {0, 0},{0xD6, 0x1A, 0x8B, 0xFF}}},
{{{78, 89, -19},0, {0, 0},{0x44, 0x42, 0xAB, 0xFF}}},
{{{67, 77, 67},0, {0, 0},{0x8, 0x58, 0x5C, 0xFF}}},
{{{94, 75, 57},0, {0, 0},{0x14, 0x64, 0x4C, 0xFF}}},
{{{78, 89, 19},0, {0, 0},{0x47, 0x41, 0x53, 0xFF}}},
{{{88, 42, 77},0, {0, 0},{0x6, 0x29, 0x78, 0xFF}}},
{{{35, 34, 79},0, {0, 0},{0xD4, 0x1B, 0x74, 0xFF}}},
{{{135, 73, 55},0, {0, 0},{0x1B, 0x5B, 0x54, 0xFF}}},
{{{147, 30, 77},0, {0, 0},{0xFD, 0x45, 0x6B, 0xFF}}},
{{{-6, 40, -42},0, {0, 0},{0x94, 0x14, 0xC1, 0xFF}}},
{{{35, -5, -82},0, {0, 0},{0xBE, 0xFA, 0x94, 0xFF}}},
{{{-6, 40, -42},0, {0, 0},{0x94, 0x14, 0xC1, 0xFF}}},
{{{35, -5, -82},0, {0, 0},{0xBE, 0xFA, 0x94, 0xFF}}},
{{{12, -57, -34},0, {0, 0},{0x85, 0xFB, 0xE2, 0xFF}}},
{{{58, -49, -64},0, {0, 0},{0xD0, 0xC1, 0x9C, 0xFF}}},
{{{56, -29, -115},0, {0, 0},{0xCE, 0x6, 0x8B, 0xFF}}},
{{{78, -26, -90},0, {0, 0},{0x2, 0x59, 0xA5, 0xFF}}},
{{{95, -37, -115},0, {0, 0},{0x25, 0xED, 0x88, 0xFF}}},
{{{122, -10, -90},0, {0, 0},{0xEA, 0x24, 0x88, 0xFF}}},
{{{92, -58, -72},0, {0, 0},{0xCB, 0xC2, 0x9E, 0xFF}}},
{{{-18, 46, 0},0, {0, 0},{0x84, 0x1B, 0x0, 0xFF}}},
{{{12, -57, 34},0, {0, 0},{0x84, 0xFB, 0x1D, 0xFF}}},
{{{28, -80, 0},0, {0, 0},{0xA8, 0xA4, 0x0, 0xFF}}},
{{{-6, 40, 42},0, {0, 0},{0x93, 0x14, 0x3F, 0xFF}}},
{{{35, -5, 83},0, {0, 0},{0xBD, 0xF9, 0x6C, 0xFF}}},
{{{58, -49, 65},0, {0, 0},{0xD0, 0xC2, 0x64, 0xFF}}},
{{{56, -29, 115},0, {0, 0},{0xCE, 0x5, 0x75, 0xFF}}},
{{{58, -49, 65},0, {0, 0},{0xD0, 0xC2, 0x64, 0xFF}}},
{{{92, -58, 73},0, {0, 0},{0xCB, 0xC2, 0x61, 0xFF}}},
{{{56, -29, 115},0, {0, 0},{0xCE, 0x5, 0x75, 0xFF}}},
{{{95, -37, 115},0, {0, 0},{0x25, 0xEC, 0x78, 0xFF}}},
{{{122, -10, 91},0, {0, 0},{0xE9, 0x23, 0x78, 0xFF}}},
{{{78, -26, 91},0, {0, 0},{0x2, 0x58, 0x5C, 0xFF}}},
{{{35, -5, 83},0, {0, 0},{0xBD, 0xF9, 0x6C, 0xFF}}},
{{{35, 34, 79},0, {0, 0},{0xD4, 0x1B, 0x74, 0xFF}}},
{{{-6, 40, 42},0, {0, 0},{0x93, 0x14, 0x3F, 0xFF}}},
{{{14, 82, 24},0, {0, 0},{0xAC, 0x5A, 0x20, 0xFF}}},
{{{-18, 46, 0},0, {0, 0},{0x84, 0x1B, 0x0, 0xFF}}},
{{{14, 82, -24},0, {0, 0},{0xAC, 0x5A, 0xE0, 0xFF}}},
{{{24, 90, 0},0, {0, 0},{0x8C, 0x33, 0x0, 0xFF}}},
{{{-6, 40, -42},0, {0, 0},{0x94, 0x14, 0xC1, 0xFF}}},
{{{36, 94, 26},0, {0, 0},{0xB6, 0x29, 0x5F, 0xFF}}},
{{{15, 111, 0},0, {0, 0},{0x84, 0xE6, 0xFF, 0xFF}}},
{{{15, 111, 0},0, {0, 0},{0x84, 0xE6, 0xFF, 0xFF}}},
{{{36, 94, 26},0, {0, 0},{0xB6, 0x29, 0x5F, 0xFF}}},
{{{29, 111, 35},0, {0, 0},{0xB2, 0xDF, 0x5F, 0xFF}}},
{{{58, 93, 27},0, {0, 0},{0x13, 0x21, 0x79, 0xFF}}},
{{{58, 111, 41},0, {0, 0},{0x1, 0xD9, 0x79, 0xFF}}},
{{{82, 111, 35},0, {0, 0},{0x4D, 0xDC, 0x5E, 0xFF}}},
{{{78, 89, 19},0, {0, 0},{0x47, 0x41, 0x53, 0xFF}}},
{{{96, 112, 0},0, {0, 0},{0x7D, 0xE8, 0xFF, 0xFF}}},
{{{88, 91, 0},0, {0, 0},{0x5A, 0x5A, 0x0, 0xFF}}},
{{{78, 89, -19},0, {0, 0},{0x44, 0x42, 0xAB, 0xFF}}},
{{{82, 111, -34},0, {0, 0},{0x4D, 0xDD, 0xA1, 0xFF}}},
{{{58, 93, -26},0, {0, 0},{0x13, 0x22, 0x87, 0xFF}}},
{{{58, 111, -40},0, {0, 0},{0x1, 0xD9, 0x87, 0xFF}}},
{{{29, 111, -34},0, {0, 0},{0xB1, 0xE2, 0xA1, 0xFF}}},
{{{36, 94, -26},0, {0, 0},{0xBB, 0x2C, 0x9F, 0xFF}}},
{{{24, 90, 0},0, {0, 0},{0x8C, 0x33, 0x0, 0xFF}}},
{{{29, 111, -34},0, {0, 0},{0xB1, 0xE2, 0xA1, 0xFF}}},
{{{15, 111, 0},0, {0, 0},{0x84, 0xE6, 0xFF, 0xFF}}},
{{{32, 141, -34},0, {0, 0},{0xBF, 0x3F, 0xA7, 0xFF}}},
{{{15, 141, 0},0, {0, 0},{0x8D, 0x37, 0xFE, 0xFF}}},
{{{29, 111, 35},0, {0, 0},{0xB2, 0xDF, 0x5F, 0xFF}}},
{{{32, 141, 35},0, {0, 0},{0xC0, 0x41, 0x59, 0xFF}}},
{{{58, 111, 41},0, {0, 0},{0x1, 0xD9, 0x79, 0xFF}}},
{{{58, 141, 41},0, {0, 0},{0x0, 0x43, 0x6C, 0xFF}}},
{{{83, 141, 35},0, {0, 0},{0x49, 0x3A, 0x57, 0xFF}}},
{{{82, 111, 35},0, {0, 0},{0x4D, 0xDC, 0x5E, 0xFF}}},
{{{96, 112, 0},0, {0, 0},{0x7D, 0xE8, 0xFF, 0xFF}}},
{{{96, 141, 0},0, {0, 0},{0x75, 0x31, 0xFF, 0xFF}}},
{{{82, 111, -34},0, {0, 0},{0x4D, 0xDD, 0xA1, 0xFF}}},
{{{83, 141, -34},0, {0, 0},{0x49, 0x3A, 0xA9, 0xFF}}},
{{{58, 111, -40},0, {0, 0},{0x1, 0xD9, 0x87, 0xFF}}},
{{{58, 141, -40},0, {0, 0},{0x0, 0x42, 0x93, 0xFF}}},
{{{58, 141, -40},0, {0, 0},{0x0, 0x42, 0x93, 0xFF}}},
{{{32, 141, -34},0, {0, 0},{0xBF, 0x3F, 0xA7, 0xFF}}},
{{{36, 155, 0},0, {0, 0},{0xDC, 0x7A, 0x0, 0xFF}}},
{{{15, 141, 0},0, {0, 0},{0x8D, 0x37, 0xFE, 0xFF}}},
{{{32, 141, 35},0, {0, 0},{0xC0, 0x41, 0x59, 0xFF}}},
{{{58, 141, 41},0, {0, 0},{0x0, 0x43, 0x6C, 0xFF}}},
{{{77, 157, 0},0, {0, 0},{0x24, 0x7A, 0x0, 0xFF}}},
{{{83, 141, 35},0, {0, 0},{0x49, 0x3A, 0x57, 0xFF}}},
{{{96, 141, 0},0, {0, 0},{0x75, 0x31, 0xFF, 0xFF}}},
{{{83, 141, -34},0, {0, 0},{0x49, 0x3A, 0xA9, 0xFF}}},
};
static const Vtx luigi_face_back_hair_cap_on_dl_vertex[24] = {
{{{92, -58, -72},0, {0, 0},{0xCB, 0xC2, 0x9E, 0xFF}}},
{{{66, -98, -42},0, {0, 0},{0xD4, 0xA0, 0xB9, 0xFF}}},
{{{58, -49, -64},0, {0, 0},{0xD0, 0xC1, 0x9C, 0xFF}}},
{{{52, -110, -51},0, {0, 0},{0x42, 0x9B, 0xD9, 0xFF}}},
{{{20, -111, -30},0, {0, 0},{0xD5, 0x9C, 0x42, 0xFF}}},
{{{28, -80, 0},0, {0, 0},{0xA8, 0xA4, 0x0, 0xFF}}},
{{{66, -98, 42},0, {0, 0},{0xD5, 0x9E, 0x44, 0xFF}}},
{{{20, -111, 30},0, {0, 0},{0xD4, 0x9D, 0xBE, 0xFF}}},
{{{52, -110, 53},0, {0, 0},{0x42, 0x9C, 0x2B, 0xFF}}},
{{{58, -49, 65},0, {0, 0},{0xD0, 0xC2, 0x64, 0xFF}}},
{{{92, -58, 73},0, {0, 0},{0xCB, 0xC2, 0x61, 0xFF}}},
{{{24, -80, 74},0, {0, 0},{0xE1, 0x13, 0x7A, 0xFF}}},
{{{12, -57, 34},0, {0, 0},{0x84, 0xFB, 0x1D, 0xFF}}},
{{{3, -83, 48},0, {0, 0},{0x82, 0xC, 0xB, 0xFF}}},
{{{11, -115, 63},0, {0, 0},{0xBF, 0xA5, 0x3D, 0xFF}}},
{{{11, -115, -62},0, {0, 0},{0xC0, 0xA5, 0xC3, 0xFF}}},
{{{11, -115, -62},0, {0, 0},{0xC0, 0xA5, 0xC3, 0xFF}}},
{{{24, -80, -73},0, {0, 0},{0xE2, 0x12, 0x86, 0xFF}}},
{{{52, -110, -51},0, {0, 0},{0x42, 0x9B, 0xD9, 0xFF}}},
{{{3, -83, -47},0, {0, 0},{0x82, 0xC, 0xF6, 0xFF}}},
{{{20, -111, -30},0, {0, 0},{0xD5, 0x9C, 0x42, 0xFF}}},
{{{28, -80, 0},0, {0, 0},{0xA8, 0xA4, 0x0, 0xFF}}},
{{{12, -57, -34},0, {0, 0},{0x85, 0xFB, 0xE2, 0xFF}}},
{{{58, -49, -64},0, {0, 0},{0xD0, 0xC1, 0x9C, 0xFF}}},
};
const 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(),
};
const Gfx luigi_eyes_cap_on_dl[] = {
gsSPVertex(luigi_eyes_cap_on_dl_vertex + 0, 12, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(0, 2, 3, 0),
gsSP1Triangle(3, 2, 4, 0),
gsSP1Triangle(5, 0, 3, 0),
gsSP1Triangle(5, 6, 0, 0),
gsSP1Triangle(5, 7, 6, 0),
gsSP1Triangle(8, 7, 5, 0),
gsSP1Triangle(8, 5, 3, 0),
gsSP1Triangle(6, 7, 9, 0),
gsSP1Triangle(10, 9, 7, 0),
gsSP1Triangle(6, 9, 11, 0),
gsSPEndDisplayList(),
};
const 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(),
};
const 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(),
};
const Gfx luigi_face_part_cap_on_dl[] = {
gsSPVertex(luigi_face_part_cap_on_dl_vertex + 0, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(1, 0, 3, 0),
gsSP1Triangle(3, 0, 4, 0),
gsSP1Triangle(5, 4, 0, 0),
gsSP1Triangle(6, 3, 4, 0),
gsSP1Triangle(7, 8, 9, 0),
gsSP1Triangle(10, 8, 7, 0),
gsSP1Triangle(7, 11, 10, 0),
gsSP1Triangle(10, 12, 8, 0),
gsSP1Triangle(13, 12, 10, 0),
gsSP1Triangle(14, 5, 15, 0),
gsSPVertex(luigi_face_part_cap_on_dl_vertex + 16, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(2, 1, 3, 0),
gsSP1Triangle(3, 1, 4, 0),
gsSP1Triangle(4, 1, 5, 0),
gsSP1Triangle(6, 4, 5, 0),
gsSP1Triangle(7, 6, 5, 0),
gsSP1Triangle(7, 8, 6, 0),
gsSP1Triangle(4, 6, 8, 0),
gsSP1Triangle(3, 4, 8, 0),
gsSP1Triangle(0, 2, 9, 0),
gsSP1Triangle(9, 2, 10, 0),
gsSP1Triangle(10, 2, 11, 0),
gsSP1Triangle(9, 10, 12, 0),
gsSP1Triangle(13, 12, 10, 0),
gsSP1Triangle(13, 10, 14, 0),
gsSP1Triangle(14, 15, 13, 0),
gsSPVertex(luigi_face_part_cap_on_dl_vertex + 32, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(1, 3, 2, 0),
gsSP1Triangle(4, 3, 1, 0),
gsSP1Triangle(3, 4, 5, 0),
gsSP1Triangle(5, 2, 3, 0),
gsSP1Triangle(2, 5, 6, 0),
gsSP1Triangle(6, 7, 8, 0),
gsSP1Triangle(9, 10, 8, 0),
gsSP1Triangle(11, 10, 9, 0),
gsSP1Triangle(11, 9, 12, 0),
gsSP1Triangle(13, 10, 11, 0),
gsSP1Triangle(14, 15, 12, 0),
gsSPVertex(luigi_face_part_cap_on_dl_vertex + 48, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(1, 3, 2, 0),
gsSP1Triangle(2, 3, 4, 0),
gsSP1Triangle(3, 5, 4, 0),
gsSP1Triangle(5, 3, 6, 0),
gsSP1Triangle(6, 7, 5, 0),
gsSP1Triangle(8, 7, 6, 0),
gsSP1Triangle(9, 7, 8, 0),
gsSP1Triangle(7, 9, 10, 0),
gsSP1Triangle(9, 11, 10, 0),
gsSP1Triangle(10, 11, 12, 0),
gsSP1Triangle(11, 13, 12, 0),
gsSP1Triangle(13, 11, 14, 0),
gsSP1Triangle(14, 0, 13, 0),
gsSP1Triangle(15, 0, 14, 0),
gsSPVertex(luigi_face_part_cap_on_dl_vertex + 64, 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 + 80, 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(),
};
const Gfx luigi_face_cap_dl[] = {
gsSPVertex(luigi_face_cap_dl_vertex + 0, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(1, 3, 2, 0),
gsSP1Triangle(4, 2, 3, 0),
gsSP1Triangle(4, 3, 5, 0),
gsSP1Triangle(5, 6, 4, 0),
gsSP1Triangle(4, 6, 7, 0),
gsSP1Triangle(6, 8, 7, 0),
gsSP1Triangle(6, 9, 8, 0),
gsSP1Triangle(9, 10, 8, 0),
gsSP1Triangle(9, 11, 10, 0),
gsSP1Triangle(10, 11, 12, 0),
gsSP1Triangle(10, 12, 13, 0),
gsSP1Triangle(12, 14, 13, 0),
gsSP1Triangle(13, 14, 15, 0),
gsSPVertex(luigi_face_cap_dl_vertex + 16, 15, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(1, 0, 3, 0),
gsSP1Triangle(3, 4, 1, 0),
gsSP1Triangle(3, 5, 4, 0),
gsSP1Triangle(6, 4, 5, 0),
gsSP1Triangle(6, 7, 4, 0),
gsSP1Triangle(7, 6, 8, 0),
gsSP1Triangle(9, 7, 8, 0),
gsSP1Triangle(9, 8, 10, 0),
gsSP1Triangle(9, 10, 11, 0),
gsSP1Triangle(12, 9, 11, 0),
gsSP1Triangle(13, 12, 11, 0),
gsSP1Triangle(12, 13, 14, 0),
gsSP1Triangle(14, 13, 2, 0),
gsSP1Triangle(2, 1, 14, 0),
gsSP1Triangle(1, 7, 14, 0),
gsSP1Triangle(4, 7, 1, 0),
gsSP1Triangle(7, 9, 14, 0),
gsSP1Triangle(12, 14, 9, 0),
gsSPVertex(luigi_face_cap_dl_vertex + 31, 9, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(0, 3, 1, 0),
gsSP1Triangle(4, 3, 0, 0),
gsSP1Triangle(4, 0, 2, 0),
gsSP1Triangle(4, 2, 5, 0),
gsSP1Triangle(4, 5, 6, 0),
gsSP1Triangle(7, 6, 5, 0),
gsSP1Triangle(6, 7, 8, 0),
gsSP1Triangle(4, 6, 8, 0),
gsSP1Triangle(3, 4, 8, 0),
gsSPEndDisplayList(),
};
const 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(15, 3, 4, 0),
gsSPVertex(luigi_face_back_hair_cap_on_dl_vertex + 16, 8, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(0, 3, 1, 0),
gsSP1Triangle(0, 4, 3, 0),
gsSP1Triangle(3, 4, 5, 0),
gsSP1Triangle(6, 3, 5, 0),
gsSP1Triangle(6, 1, 3, 0),
gsSP1Triangle(6, 7, 1, 0),
gsSP1Triangle(7, 2, 1, 0),
gsSPEndDisplayList(),
};
const Gfx luigi_face_cap_on_dl[] = {
gsSPDisplayList(luigi_face_part_cap_on_dl),
gsSPCopyLightEXT(1, 5), // gsSPLight(&luigi_green_lights_group.l, 1),
gsSPCopyLightEXT(2, 6), // gsSPLight(&luigi_green_lights_group.a, 2),
gsSPDisplayList(luigi_face_cap_dl),
gsSPLight(&luigi_brown2_lights_group.l, 1),
gsSPLight(&luigi_brown2_lights_group.a, 2),
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_l_logo),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(luigi_l_logo_dl),
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)),
gsSPLight(&luigi_beige_lights_group.l, 1),
gsSPLight(&luigi_beige_lights_group.a, 2),
gsSPDisplayList(luigi_eyes_cap_on_dl),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_hair_sideburn),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(luigi_hair_sideburn_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_l_logo),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(luigi_l_logo_dl),
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)),
gsSPLight(&luigi_beige_lights_group.l, 1),
gsSPLight(&luigi_beige_lights_group.a, 2),
gsSPDisplayList(luigi_eyes_cap_on_dl),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_hair_sideburn),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(luigi_hair_sideburn_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_l_logo),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(luigi_l_logo_dl),
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)),
gsSPLight(&luigi_beige_lights_group.l, 1),
gsSPLight(&luigi_beige_lights_group.a, 2),
gsSPDisplayList(luigi_eyes_cap_on_dl),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_hair_sideburn),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(luigi_hair_sideburn_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_l_logo),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(luigi_l_logo_dl),
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)),
gsSPLight(&luigi_beige_lights_group.l, 1),
gsSPLight(&luigi_beige_lights_group.a, 2),
gsSPDisplayList(luigi_eyes_cap_on_dl),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_hair_sideburn),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(luigi_hair_sideburn_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_l_logo),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(luigi_l_logo_dl),
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)),
gsSPLight(&luigi_beige_lights_group.l, 1),
gsSPLight(&luigi_beige_lights_group.a, 2),
gsSPDisplayList(luigi_eyes_cap_on_dl),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_hair_sideburn),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(luigi_hair_sideburn_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_l_logo),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(luigi_l_logo_dl),
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)),
gsSPLight(&luigi_beige_lights_group.l, 1),
gsSPLight(&luigi_beige_lights_group.a, 2),
gsSPDisplayList(luigi_eyes_cap_on_dl),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_hair_sideburn),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(luigi_hair_sideburn_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_l_logo),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(luigi_l_logo_dl),
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)),
gsSPLight(&luigi_beige_lights_group.l, 1),
gsSPLight(&luigi_beige_lights_group.a, 2),
gsSPDisplayList(luigi_eyes_cap_on_dl),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_hair_sideburn),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(luigi_hair_sideburn_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_l_logo),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(luigi_l_logo_dl),
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)),
gsSPLight(&luigi_beige_lights_group.l, 1),
gsSPLight(&luigi_beige_lights_group.a, 2),
gsSPDisplayList(luigi_eyes_cap_on_dl),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_hair_sideburn),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(luigi_hair_sideburn_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(),
};
static const Vtx luigi_eyes_cap_off_dl_vertex[12] = {
{{{167, 84, 26},0, {754, 64},{0x1C, 0x74, 0x2C, 0xFF}}},
{{{136, 74, 55},0, {1054, 362},{0x1B, 0x5A, 0x55, 0xFF}}},
{{{147, 30, 77},0, {1290, 192},{0x0, 0x33, 0x74, 0xFF}}},
{{{78, 90, 20},0, {704, 984},{0x46, 0x41, 0x54, 0xFF}}},
{{{136, 93, 0},0, {480, 426},{0xB, 0x7F, 0x0, 0xFF}}},
{{{167, 84, -26},0, {194, 72},{0x1C, 0x74, 0xD3, 0xFF}}},
{{{78, 90, -20},0, {272, 992},{0x43, 0x42, 0xAA, 0xFF}}},
{{{136, 74, -54},0, {-94, 378},{0x1A, 0x5A, 0xAA, 0xFF}}},
{{{147, 30, -76},0, {-334, 216},{0xF9, 0x31, 0x8B, 0xFF}}},
{{{94, 76, -56},0, {-108, 832},{0x13, 0x63, 0xB3, 0xFF}}},
{{{94, 76, 57},0, {1084, 812},{0x13, 0x64, 0x4D, 0xFF}}},
{{{89, 92, 0},0, {488, 928},{0x5C, 0x58, 0x0, 0xFF}}},
};
static const Vtx luigi_hair_sideburn_cap_off_dl_vertex[12] = {
{{{89, 43, 77},0, {-49, 678},{0x7, 0x29, 0x78, 0xFF}}},
{{{122, -10, 92},0, {890, 135},{0x4, 0xF, 0x7E, 0xFF}}},
{{{147, 30, 77},0, {93, -96},{0x0, 0x33, 0x74, 0xFF}}},
{{{78, -26, 92},0, {1308, 629},{0x3, 0x59, 0x5A, 0xFF}}},
{{{34, -5, 84},0, {935, 1165},{0xBD, 0xFA, 0x6C, 0xFF}}},
{{{34, 35, 79},0, {185, 1281},{0xD4, 0x1C, 0x74, 0xFF}}},
{{{89, 43, -76},0, {-20, 677},{0x7, 0x29, 0x88, 0xFF}}},
{{{147, 30, -76},0, {146, -91},{0xF9, 0x31, 0x8B, 0xFF}}},
{{{122, -10, -91},0, {903, 197},{0x4, 0xF, 0x82, 0xFF}}},
{{{78, -26, -91},0, {1236, 633},{0x3, 0x5A, 0xA6, 0xFF}}},
{{{34, -5, -83},0, {873, 1170},{0xBE, 0xFA, 0x93, 0xFF}}},
{{{34, 34, -78},0, {177, 1280},{0xD5, 0x1B, 0x8B, 0xFF}}},
};
static const Vtx luigi_mustache_cap_off_dl_vertex[21] = {
{{{78, 90, -20},0, {340, 44},{0x43, 0x42, 0xAA, 0xFF}}},
{{{67, 77, -67},0, {920, -16},{0x8, 0x56, 0xA3, 0xFF}}},
{{{58, 93, -26},0, {400, 416},{0x11, 0x24, 0x87, 0xFF}}},
{{{36, 79, -58},0, {768, 512},{0xD3, 0x57, 0xAF, 0xFF}}},
{{{34, 34, -78},0, {1224, 264},{0xD5, 0x1B, 0x8B, 0xFF}}},
{{{-7, 40, -43},0, {724, 1084},{0x94, 0x15, 0xC1, 0xFF}}},
{{{14, 83, -24},0, {316, 1000},{0xAD, 0x5B, 0xE1, 0xFF}}},
{{{36, 94, -26},0, {316, 696},{0xBB, 0x2E, 0x9F, 0xFF}}},
{{{24, 91, 0},0, {28, 980},{0x8B, 0x32, 0x0, 0xFF}}},
{{{78, 90, 20},0, {332, -12},{0x46, 0x41, 0x54, 0xFF}}},
{{{58, 93, 28},0, {404, 416},{0x12, 0x23, 0x79, 0xFF}}},
{{{67, 77, 68},0, {932, -28},{0x7, 0x57, 0x5D, 0xFF}}},
{{{36, 79, 57},0, {764, 512},{0xD2, 0x57, 0x50, 0xFF}}},
{{{36, 94, 26},0, {332, 672},{0xB6, 0x29, 0x5F, 0xFF}}},
{{{14, 83, 24},0, {344, 992},{0xAD, 0x5B, 0x1F, 0xFF}}},
{{{24, 91, 0},0, {40, 940},{0x8B, 0x32, 0x0, 0xFF}}},
{{{36, 79, 57},0, {764, 512},{0xD2, 0x57, 0x50, 0xFF}}},
{{{14, 83, 24},0, {344, 992},{0xAD, 0x5B, 0x1F, 0xFF}}},
{{{-7, 40, 43},0, {768, 1112},{0x93, 0x15, 0x3E, 0xFF}}},
{{{34, 35, 79},0, {1260, 292},{0xD4, 0x1C, 0x74, 0xFF}}},
{{{67, 77, 68},0, {932, -28},{0x7, 0x57, 0x5D, 0xFF}}},
};
static const Vtx luigi_face_part_cap_off_dl_vertex[88] = {
{{{34, 34, -78},0, {0, 0},{0xD5, 0x1B, 0x8B, 0xFF}}},
{{{67, 77, -67},0, {0, 0},{0x8, 0x56, 0xA3, 0xFF}}},
{{{89, 43, -76},0, {0, 0},{0x7, 0x29, 0x88, 0xFF}}},
{{{94, 76, -56},0, {0, 0},{0x13, 0x63, 0xB3, 0xFF}}},
{{{78, 90, -20},0, {0, 0},{0x43, 0x42, 0xAA, 0xFF}}},
{{{136, 74, -54},0, {0, 0},{0x1A, 0x5A, 0xAA, 0xFF}}},
{{{147, 30, -76},0, {0, 0},{0xF9, 0x31, 0x8B, 0xFF}}},
{{{14, 83, -24},0, {0, 0},{0xAD, 0x5B, 0xE1, 0xFF}}},
{{{14, 83, 24},0, {0, 0},{0xAD, 0x5B, 0x1F, 0xFF}}},
{{{24, 91, 0},0, {0, 0},{0x8B, 0x32, 0x0, 0xFF}}},
{{{-18, 46, 0},0, {0, 0},{0x84, 0x1B, 0x0, 0xFF}}},
{{{-7, 40, -43},0, {0, 0},{0x94, 0x15, 0xC1, 0xFF}}},
{{{12, -58, -34},0, {0, 0},{0x85, 0xFB, 0xE1, 0xFF}}},
{{{34, -5, -83},0, {0, 0},{0xBE, 0xFA, 0x93, 0xFF}}},
{{{58, -49, -64},0, {0, 0},{0xD0, 0xC2, 0x9C, 0xFF}}},
{{{56, -29, -116},0, {0, 0},{0xD0, 0x7, 0x8B, 0xFF}}},
{{{56, -29, -116},0, {0, 0},{0xD0, 0x7, 0x8B, 0xFF}}},
{{{34, -5, -83},0, {0, 0},{0xBE, 0xFA, 0x93, 0xFF}}},
{{{78, -26, -91},0, {0, 0},{0x3, 0x5A, 0xA6, 0xFF}}},
{{{95, -37, -116},0, {0, 0},{0x26, 0xEF, 0x88, 0xFF}}},
{{{122, -10, -91},0, {0, 0},{0x4, 0xF, 0x82, 0xFF}}},
{{{92, -59, -72},0, {0, 0},{0xE7, 0xB6, 0x9C, 0xFF}}},
{{{58, -49, -64},0, {0, 0},{0xD0, 0xC2, 0x9C, 0xFF}}},
{{{67, 77, 68},0, {0, 0},{0x7, 0x57, 0x5D, 0xFF}}},
{{{94, 76, 57},0, {0, 0},{0x13, 0x64, 0x4D, 0xFF}}},
{{{78, 90, 20},0, {0, 0},{0x46, 0x41, 0x54, 0xFF}}},
{{{89, 43, 77},0, {0, 0},{0x7, 0x29, 0x78, 0xFF}}},
{{{34, 35, 79},0, {0, 0},{0xD4, 0x1C, 0x74, 0xFF}}},
{{{136, 74, 55},0, {0, 0},{0x1B, 0x5A, 0x55, 0xFF}}},
{{{147, 30, 77},0, {0, 0},{0x0, 0x33, 0x74, 0xFF}}},
{{{14, 83, 24},0, {0, 0},{0xAD, 0x5B, 0x1F, 0xFF}}},
{{{-18, 46, 0},0, {0, 0},{0x84, 0x1B, 0x0, 0xFF}}},
{{{-7, 40, 43},0, {0, 0},{0x93, 0x15, 0x3E, 0xFF}}},
{{{12, -58, 35},0, {0, 0},{0x84, 0xFB, 0x1D, 0xFF}}},
{{{12, -58, -34},0, {0, 0},{0x85, 0xFB, 0xE1, 0xFF}}},
{{{28, -80, 0},0, {0, 0},{0xA8, 0xA4, 0x0, 0xFF}}},
{{{34, -5, 84},0, {0, 0},{0xBD, 0xFA, 0x6C, 0xFF}}},
{{{34, 35, 79},0, {0, 0},{0xD4, 0x1C, 0x74, 0xFF}}},
{{{58, -49, 66},0, {0, 0},{0xD0, 0xC2, 0x64, 0xFF}}},
{{{56, -29, 116},0, {0, 0},{0xD0, 0x6, 0x76, 0xFF}}},
{{{92, -59, 74},0, {0, 0},{0xE7, 0xB5, 0x64, 0xFF}}},
{{{95, -37, 116},0, {0, 0},{0x25, 0xEE, 0x78, 0xFF}}},
{{{122, -10, 92},0, {0, 0},{0x4, 0xF, 0x7E, 0xFF}}},
{{{78, -26, 92},0, {0, 0},{0x3, 0x59, 0x5A, 0xFF}}},
{{{78, 90, -20},0, {0, 0},{0x43, 0x42, 0xAA, 0xFF}}},
{{{97, 113, 0},0, {0, 0},{0x7D, 0xE8, 0xFF, 0xFF}}},
{{{89, 92, 0},0, {0, 0},{0x5C, 0x58, 0x0, 0xFF}}},
{{{82, 112, -35},0, {0, 0},{0x4C, 0xDD, 0xA0, 0xFF}}},
{{{58, 93, -26},0, {0, 0},{0x11, 0x24, 0x87, 0xFF}}},
{{{58, 112, -40},0, {0, 0},{0x1, 0xDA, 0x87, 0xFF}}},
{{{29, 112, -35},0, {0, 0},{0xB1, 0xE3, 0xA1, 0xFF}}},
{{{36, 94, -26},0, {0, 0},{0xBB, 0x2E, 0x9F, 0xFF}}},
{{{15, 112, 0},0, {0, 0},{0x84, 0xE6, 0xFE, 0xFF}}},
{{{24, 91, 0},0, {0, 0},{0x8B, 0x32, 0x0, 0xFF}}},
{{{36, 94, 26},0, {0, 0},{0xB6, 0x29, 0x5F, 0xFF}}},
{{{29, 112, 36},0, {0, 0},{0xB2, 0xE0, 0x5F, 0xFF}}},
{{{58, 93, 28},0, {0, 0},{0x12, 0x23, 0x79, 0xFF}}},
{{{58, 112, 41},0, {0, 0},{0x1, 0xDA, 0x79, 0xFF}}},
{{{82, 112, 36},0, {0, 0},{0x4C, 0xDC, 0x5F, 0xFF}}},
{{{78, 90, 20},0, {0, 0},{0x46, 0x41, 0x54, 0xFF}}},
{{{82, 112, 36},0, {0, 0},{0x4C, 0xDC, 0x5F, 0xFF}}},
{{{97, 113, 0},0, {0, 0},{0x7D, 0xE8, 0xFF, 0xFF}}},
{{{83, 141, 36},0, {0, 0},{0x47, 0x3B, 0x57, 0xFF}}},
{{{97, 141, 0},0, {0, 0},{0x75, 0x31, 0xFF, 0xFF}}},
{{{82, 112, -35},0, {0, 0},{0x4C, 0xDD, 0xA0, 0xFF}}},
{{{83, 141, -35},0, {0, 0},{0x48, 0x3A, 0xA8, 0xFF}}},
{{{58, 112, -40},0, {0, 0},{0x1, 0xDA, 0x87, 0xFF}}},
{{{58, 141, -40},0, {0, 0},{0x0, 0x42, 0x93, 0xFF}}},
{{{32, 141, -35},0, {0, 0},{0xBF, 0x3F, 0xA7, 0xFF}}},
{{{29, 112, -35},0, {0, 0},{0xB1, 0xE3, 0xA1, 0xFF}}},
{{{15, 112, 0},0, {0, 0},{0x84, 0xE6, 0xFE, 0xFF}}},
{{{15, 141, 0},0, {0, 0},{0x8D, 0x35, 0xFE, 0xFF}}},
{{{29, 112, 36},0, {0, 0},{0xB2, 0xE0, 0x5F, 0xFF}}},
{{{32, 141, 36},0, {0, 0},{0xC0, 0x40, 0x59, 0xFF}}},
{{{58, 112, 41},0, {0, 0},{0x1, 0xDA, 0x79, 0xFF}}},
{{{58, 141, 41},0, {0, 0},{0x0, 0x43, 0x6C, 0xFF}}},
{{{83, 141, 36},0, {0, 0},{0x47, 0x3B, 0x57, 0xFF}}},
{{{77, 158, 0},0, {0, 0},{0x25, 0x7A, 0x0, 0xFF}}},
{{{58, 141, 41},0, {0, 0},{0x0, 0x43, 0x6C, 0xFF}}},
{{{97, 141, 0},0, {0, 0},{0x75, 0x31, 0xFF, 0xFF}}},
{{{83, 141, -35},0, {0, 0},{0x48, 0x3A, 0xA8, 0xFF}}},
{{{58, 141, -40},0, {0, 0},{0x0, 0x42, 0x93, 0xFF}}},
{{{36, 156, 0},0, {0, 0},{0xDB, 0x7A, 0x0, 0xFF}}},
{{{32, 141, -35},0, {0, 0},{0xBF, 0x3F, 0xA7, 0xFF}}},
{{{15, 141, 0},0, {0, 0},{0x8D, 0x35, 0xFE, 0xFF}}},
{{{32, 141, 36},0, {0, 0},{0xC0, 0x40, 0x59, 0xFF}}},
};
static const Vtx luigi_face_hair_cap_off_dl_vertex[92] = {
{{{167, 84, 26},0, {0, 0},{0xD8, 0x6A, 0x39, 0xFF}}},
{{{146, 66, 53},0, {0, 0},{0xDD, 0x5A, 0x53, 0xFF}}},
{{{193, 71, 67},0, {0, 0},{0x1C, 0x50, 0x5F, 0xFF}}},
{{{147, 30, 77},0, {0, 0},{0x0, 0x33, 0x74, 0xFF}}},
{{{176, -9, 93},0, {0, 0},{0x2A, 0x0, 0x78, 0xFF}}},
{{{122, -10, 92},0, {0, 0},{0x4, 0xF, 0x7E, 0xFF}}},
{{{140, -79, 84},0, {0, 0},{0x3, 0xCD, 0x74, 0xFF}}},
{{{92, -59, 74},0, {0, 0},{0xE7, 0xB5, 0x64, 0xFF}}},
{{{66, -99, 43},0, {0, 0},{0x0, 0x8C, 0x33, 0xFF}}},
{{{58, -49, 66},0, {0, 0},{0xD0, 0xC2, 0x64, 0xFF}}},
{{{52, -110, 53},0, {0, 0},{0x42, 0x9C, 0x2A, 0xFF}}},
{{{24, -80, 75},0, {0, 0},{0xE2, 0x12, 0x7A, 0xFF}}},
{{{12, -58, 35},0, {0, 0},{0x84, 0xFB, 0x1D, 0xFF}}},
{{{2, -84, 48},0, {0, 0},{0x82, 0xC, 0xB, 0xFF}}},
{{{28, -80, 0},0, {0, 0},{0xA8, 0xA4, 0x0, 0xFF}}},
{{{20, -112, 30},0, {0, 0},{0xD5, 0x9D, 0xBD, 0xFF}}},
{{{66, -99, 43},0, {0, 0},{0x0, 0x8C, 0x33, 0xFF}}},
{{{28, -80, 0},0, {0, 0},{0xA8, 0xA4, 0x0, 0xFF}}},
{{{66, -99, -43},0, {0, 0},{0xFF, 0x8C, 0xCB, 0xFF}}},
{{{20, -112, -30},0, {0, 0},{0xD6, 0x9D, 0x43, 0xFF}}},
{{{2, -84, -47},0, {0, 0},{0x82, 0xB, 0xF6, 0xFF}}},
{{{12, -58, -34},0, {0, 0},{0x85, 0xFB, 0xE1, 0xFF}}},
{{{24, -81, -74},0, {0, 0},{0xE3, 0x12, 0x86, 0xFF}}},
{{{58, -49, -64},0, {0, 0},{0xD0, 0xC2, 0x9C, 0xFF}}},
{{{52, -110, -52},0, {0, 0},{0x42, 0x9B, 0xD7, 0xFF}}},
{{{92, -59, -72},0, {0, 0},{0xE7, 0xB6, 0x9C, 0xFF}}},
{{{140, -81, -83},0, {0, 0},{0x2, 0xCD, 0x8C, 0xFF}}},
{{{122, -10, -91},0, {0, 0},{0x4, 0xF, 0x82, 0xFF}}},
{{{176, -9, -92},0, {0, 0},{0x2A, 0xFE, 0x88, 0xFF}}},
{{{147, 30, -76},0, {0, 0},{0xF9, 0x31, 0x8B, 0xFF}}},
{{{193, 66, -78},0, {0, 0},{0x1B, 0x3C, 0x93, 0xFF}}},
{{{146, 66, -52},0, {0, 0},{0xD5, 0x5B, 0xB3, 0xFF}}},
{{{167, 84, -26},0, {0, 0},{0xC2, 0x5E, 0xC5, 0xFF}}},
{{{193, 66, -78},0, {0, 0},{0x1B, 0x3C, 0x93, 0xFF}}},
{{{146, 66, -52},0, {0, 0},{0xD5, 0x5B, 0xB3, 0xFF}}},
{{{204, 86, -58},0, {0, 0},{0x1B, 0x4B, 0x9D, 0xFF}}},
{{{194, 118, -10},0, {0, 0},{0xF6, 0x7F, 0x0, 0xFF}}},
{{{155, 87, 0},0, {0, 0},{0xB2, 0x64, 0x4, 0xFF}}},
{{{167, 84, 26},0, {0, 0},{0xD8, 0x6A, 0x39, 0xFF}}},
{{{201, 81, 48},0, {0, 0},{0x2B, 0x60, 0x47, 0xFF}}},
{{{193, 71, 67},0, {0, 0},{0x1C, 0x50, 0x5F, 0xFF}}},
{{{218, 33, 60},0, {0, 0},{0x68, 0xA, 0x48, 0xFF}}},
{{{176, -9, 93},0, {0, 0},{0x2A, 0x0, 0x78, 0xFF}}},
{{{218, -14, 47},0, {0, 0},{0x6F, 0xEC, 0x3B, 0xFF}}},
{{{183, -97, 58},0, {0, 0},{0x47, 0xB3, 0x47, 0xFF}}},
{{{140, -79, 84},0, {0, 0},{0x3, 0xCD, 0x74, 0xFF}}},
{{{114, -120, 54},0, {0, 0},{0xED, 0x96, 0x44, 0xFF}}},
{{{66, -99, 43},0, {0, 0},{0x0, 0x8C, 0x33, 0xFF}}},
{{{66, -99, 43},0, {0, 0},{0x0, 0x8C, 0x33, 0xFF}}},
{{{116, -128, 0},0, {0, 0},{0xF2, 0x82, 0xFF, 0xFF}}},
{{{114, -120, 54},0, {0, 0},{0xED, 0x96, 0x44, 0xFF}}},
{{{66, -99, -43},0, {0, 0},{0xFF, 0x8C, 0xCB, 0xFF}}},
{{{114, -118, -54},0, {0, 0},{0xEE, 0x97, 0xBB, 0xFF}}},
{{{140, -81, -83},0, {0, 0},{0x2, 0xCD, 0x8C, 0xFF}}},
{{{183, -97, -57},0, {0, 0},{0x47, 0xB3, 0xB8, 0xFF}}},
{{{176, -9, -92},0, {0, 0},{0x2A, 0xFE, 0x88, 0xFF}}},
{{{218, -14, -46},0, {0, 0},{0x6E, 0xF0, 0xC3, 0xFF}}},
{{{214, 33, -58},0, {0, 0},{0x6D, 0x2, 0xBE, 0xFF}}},
{{{193, 66, -78},0, {0, 0},{0x1B, 0x3C, 0x93, 0xFF}}},
{{{204, 86, -58},0, {0, 0},{0x1B, 0x4B, 0x9D, 0xFF}}},
{{{223, 66, -26},0, {0, 0},{0x73, 0xE7, 0xD0, 0xFF}}},
{{{238, 99, -35},0, {0, 0},{0x6A, 0x34, 0xD0, 0xFF}}},
{{{194, 118, -10},0, {0, 0},{0xF6, 0x7F, 0x0, 0xFF}}},
{{{201, 81, 48},0, {0, 0},{0x2B, 0x60, 0x47, 0xFF}}},
{{{201, 81, 48},0, {0, 0},{0x2B, 0x60, 0x47, 0xFF}}},
{{{222, 77, 26},0, {0, 0},{0x68, 0x35, 0x32, 0xFF}}},
{{{238, 99, -35},0, {0, 0},{0x6A, 0x34, 0xD0, 0xFF}}},
{{{218, 33, 60},0, {0, 0},{0x68, 0xA, 0x48, 0xFF}}},
{{{229, 61, 0},0, {0, 0},{0x7F, 0xFB, 0x5, 0xFF}}},
{{{218, -14, 47},0, {0, 0},{0x6F, 0xEC, 0x3B, 0xFF}}},
{{{232, -33, 0},0, {0, 0},{0x7C, 0xE4, 0x0, 0xFF}}},
{{{183, -97, 58},0, {0, 0},{0x47, 0xB3, 0x47, 0xFF}}},
{{{193, -112, 0},0, {0, 0},{0x50, 0x9D, 0x0, 0xFF}}},
{{{114, -120, 54},0, {0, 0},{0xED, 0x96, 0x44, 0xFF}}},
{{{116, -128, 0},0, {0, 0},{0xF2, 0x82, 0xFF, 0xFF}}},
{{{114, -118, -54},0, {0, 0},{0xEE, 0x97, 0xBB, 0xFF}}},
{{{183, -97, -57},0, {0, 0},{0x47, 0xB3, 0xB8, 0xFF}}},
{{{218, -14, -46},0, {0, 0},{0x6E, 0xF0, 0xC3, 0xFF}}},
{{{214, 33, -58},0, {0, 0},{0x6D, 0x2, 0xBE, 0xFF}}},
{{{223, 66, -26},0, {0, 0},{0x73, 0xE7, 0xD0, 0xFF}}},
{{{66, -99, -43},0, {0, 0},{0xFF, 0x8C, 0xCB, 0xFF}}},
{{{20, -112, -30},0, {0, 0},{0xD6, 0x9D, 0x43, 0xFF}}},
{{{52, -110, -52},0, {0, 0},{0x42, 0x9B, 0xD7, 0xFF}}},
{{{10, -116, -62},0, {0, 0},{0xC0, 0xA4, 0xC4, 0xFF}}},
{{{2, -84, -47},0, {0, 0},{0x82, 0xB, 0xF6, 0xFF}}},
{{{24, -81, -74},0, {0, 0},{0xE3, 0x12, 0x86, 0xFF}}},
{{{66, -99, 43},0, {0, 0},{0x0, 0x8C, 0x33, 0xFF}}},
{{{52, -110, 53},0, {0, 0},{0x42, 0x9C, 0x2A, 0xFF}}},
{{{20, -112, 30},0, {0, 0},{0xD5, 0x9D, 0xBD, 0xFF}}},
{{{10, -116, 63},0, {0, 0},{0xC0, 0xA4, 0x3C, 0xFF}}},
{{{24, -80, 75},0, {0, 0},{0xE2, 0x12, 0x7A, 0xFF}}},
{{{2, -84, 48},0, {0, 0},{0x82, 0xC, 0xB, 0xFF}}},
};
const Gfx luigi_eyes_cap_off_dl[] = {
gsSPVertex(luigi_eyes_cap_off_dl_vertex + 0, 12, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(0, 3, 1, 0),
gsSP1Triangle(4, 3, 0, 0),
gsSP1Triangle(4, 0, 5, 0),
gsSP1Triangle(4, 5, 6, 0),
gsSP1Triangle(5, 7, 6, 0),
gsSP1Triangle(5, 8, 7, 0),
gsSP1Triangle(6, 7, 9, 0),
gsSP1Triangle(10, 1, 3, 0),
gsSP1Triangle(11, 4, 6, 0),
gsSP1Triangle(11, 3, 4, 0),
gsSPEndDisplayList(),
};
const Gfx luigi_mustache_cap_off_dl[] = {
gsSPVertex(luigi_mustache_cap_off_dl_vertex + 0, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(2, 1, 3, 0),
gsSP1Triangle(4, 3, 1, 0),
gsSP1Triangle(3, 4, 5, 0),
gsSP1Triangle(3, 5, 6, 0),
gsSP1Triangle(3, 6, 7, 0),
gsSP1Triangle(7, 6, 8, 0),
gsSP1Triangle(7, 2, 3, 0),
gsSP1Triangle(9, 10, 11, 0),
gsSP1Triangle(10, 12, 11, 0),
gsSP1Triangle(13, 12, 10, 0),
gsSP1Triangle(12, 13, 14, 0),
gsSP1Triangle(13, 15, 14, 0),
gsSPVertex(luigi_mustache_cap_off_dl_vertex + 16, 5, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(0, 2, 3, 0),
gsSP1Triangle(3, 4, 0, 0),
gsSPEndDisplayList(),
};
const Gfx luigi_hair_sideburn_cap_off_dl[] = {
gsSPVertex(luigi_hair_sideburn_cap_off_dl_vertex + 0, 12, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(0, 3, 1, 0),
gsSP1Triangle(4, 3, 0, 0),
gsSP1Triangle(5, 4, 0, 0),
gsSP1Triangle(6, 7, 8, 0),
gsSP1Triangle(9, 6, 8, 0),
gsSP1Triangle(9, 10, 6, 0),
gsSP1Triangle(10, 11, 6, 0),
gsSPEndDisplayList(),
};
const 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, 2, 1, 0),
gsSP1Triangle(4, 3, 1, 0),
gsSP1Triangle(5, 2, 3, 0),
gsSP1Triangle(2, 5, 6, 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, 0, 13, 0),
gsSP1Triangle(12, 13, 14, 0),
gsSP1Triangle(14, 13, 15, 0),
gsSPVertex(luigi_face_part_cap_off_dl_vertex + 16, 14, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(3, 0, 2, 0),
gsSP1Triangle(4, 3, 2, 0),
gsSP1Triangle(4, 5, 3, 0),
gsSP1Triangle(0, 3, 5, 0),
gsSP1Triangle(6, 0, 5, 0),
gsSP1Triangle(7, 8, 9, 0),
gsSP1Triangle(10, 8, 7, 0),
gsSP1Triangle(7, 11, 10, 0),
gsSP1Triangle(10, 12, 8, 0),
gsSP1Triangle(13, 12, 10, 0),
gsSPVertex(luigi_face_part_cap_off_dl_vertex + 30, 14, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(1, 3, 2, 0),
gsSP1Triangle(1, 4, 3, 0),
gsSP1Triangle(3, 4, 5, 0),
gsSP1Triangle(6, 2, 3, 0),
gsSP1Triangle(6, 7, 2, 0),
gsSP1Triangle(6, 3, 8, 0),
gsSP1Triangle(8, 9, 6, 0),
gsSP1Triangle(8, 10, 9, 0),
gsSP1Triangle(10, 11, 9, 0),
gsSP1Triangle(12, 11, 10, 0),
gsSP1Triangle(11, 12, 13, 0),
gsSP1Triangle(13, 9, 11, 0),
gsSP1Triangle(9, 13, 6, 0),
gsSPVertex(luigi_face_part_cap_off_dl_vertex + 44, 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 + 60, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(1, 3, 2, 0),
gsSP1Triangle(3, 1, 4, 0),
gsSP1Triangle(5, 3, 4, 0),
gsSP1Triangle(5, 4, 6, 0),
gsSP1Triangle(7, 5, 6, 0),
gsSP1Triangle(6, 8, 7, 0),
gsSP1Triangle(6, 9, 8, 0),
gsSP1Triangle(9, 10, 8, 0),
gsSP1Triangle(10, 11, 8, 0),
gsSP1Triangle(12, 11, 10, 0),
gsSP1Triangle(13, 11, 12, 0),
gsSP1Triangle(13, 12, 14, 0),
gsSP1Triangle(13, 14, 15, 0),
gsSP1Triangle(2, 15, 14, 0),
gsSP1Triangle(0, 2, 14, 0),
gsSPVertex(luigi_face_part_cap_off_dl_vertex + 76, 10, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(0, 3, 1, 0),
gsSP1Triangle(4, 1, 3, 0),
gsSP1Triangle(4, 5, 1, 0),
gsSP1Triangle(1, 5, 6, 0),
gsSP1Triangle(5, 7, 6, 0),
gsSP1Triangle(6, 7, 8, 0),
gsSP1Triangle(6, 8, 9, 0),
gsSP1Triangle(6, 9, 2, 0),
gsSP1Triangle(1, 6, 2, 0),
gsSPEndDisplayList(),
};
const Gfx luigi_face_hair_cap_off_dl[] = {
gsSPVertex(luigi_face_hair_cap_off_dl_vertex + 0, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(3, 2, 1, 0),
gsSP1Triangle(3, 4, 2, 0),
gsSP1Triangle(3, 5, 4, 0),
gsSP1Triangle(6, 4, 5, 0),
gsSP1Triangle(7, 6, 5, 0),
gsSP1Triangle(8, 6, 7, 0),
gsSP1Triangle(9, 8, 7, 0),
gsSP1Triangle(9, 10, 8, 0),
gsSP1Triangle(9, 11, 10, 0),
gsSP1Triangle(12, 11, 9, 0),
gsSP1Triangle(12, 13, 11, 0),
gsSP1Triangle(13, 12, 14, 0),
gsSP1Triangle(15, 13, 14, 0),
gsSP1Triangle(8, 15, 14, 0),
gsSPVertex(luigi_face_hair_cap_off_dl_vertex + 16, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(2, 1, 3, 0),
gsSP1Triangle(4, 3, 1, 0),
gsSP1Triangle(5, 4, 1, 0),
gsSP1Triangle(5, 6, 4, 0),
gsSP1Triangle(5, 7, 6, 0),
gsSP1Triangle(7, 8, 6, 0),
gsSP1Triangle(7, 2, 8, 0),
gsSP1Triangle(9, 2, 7, 0),
gsSP1Triangle(9, 10, 2, 0),
gsSP1Triangle(10, 9, 11, 0),
gsSP1Triangle(12, 10, 11, 0),
gsSP1Triangle(11, 13, 12, 0),
gsSP1Triangle(13, 14, 12, 0),
gsSP1Triangle(14, 13, 15, 0),
gsSPVertex(luigi_face_hair_cap_off_dl_vertex + 32, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(1, 0, 3, 0),
gsSP1Triangle(3, 0, 4, 0),
gsSP1Triangle(0, 5, 4, 0),
gsSP1Triangle(4, 5, 6, 0),
gsSP1Triangle(7, 4, 6, 0),
gsSP1Triangle(6, 8, 7, 0),
gsSP1Triangle(8, 9, 7, 0),
gsSP1Triangle(10, 9, 8, 0),
gsSP1Triangle(9, 10, 11, 0),
gsSP1Triangle(11, 10, 12, 0),
gsSP1Triangle(13, 12, 10, 0),
gsSP1Triangle(13, 14, 12, 0),
gsSP1Triangle(15, 14, 13, 0),
gsSPVertex(luigi_face_hair_cap_off_dl_vertex + 48, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(0, 3, 1, 0),
gsSP1Triangle(3, 4, 1, 0),
gsSP1Triangle(5, 4, 3, 0),
gsSP1Triangle(6, 4, 5, 0),
gsSP1Triangle(7, 6, 5, 0),
gsSP1Triangle(6, 7, 8, 0),
gsSP1Triangle(8, 7, 9, 0),
gsSP1Triangle(10, 9, 7, 0),
gsSP1Triangle(9, 10, 11, 0),
gsSP1Triangle(9, 11, 12, 0),
gsSP1Triangle(12, 11, 13, 0),
gsSP1Triangle(11, 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(3, 4, 1, 0),
gsSP1Triangle(4, 3, 5, 0),
gsSP1Triangle(5, 6, 4, 0),
gsSP1Triangle(6, 5, 7, 0),
gsSP1Triangle(8, 6, 7, 0),
gsSP1Triangle(8, 7, 9, 0),
gsSP1Triangle(10, 8, 9, 0),
gsSP1Triangle(10, 11, 8, 0),
gsSP1Triangle(11, 12, 8, 0),
gsSP1Triangle(8, 12, 6, 0),
gsSP1Triangle(12, 13, 6, 0),
gsSP1Triangle(13, 4, 6, 0),
gsSP1Triangle(13, 14, 4, 0),
gsSP1Triangle(14, 15, 4, 0),
gsSP1Triangle(4, 15, 2, 0),
gsSP1Triangle(4, 2, 1, 0),
gsSPVertex(luigi_face_hair_cap_off_dl_vertex + 80, 12, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(3, 2, 1, 0),
gsSP1Triangle(3, 1, 4, 0),
gsSP1Triangle(3, 4, 5, 0),
gsSP1Triangle(3, 5, 2, 0),
gsSP1Triangle(6, 7, 8, 0),
gsSP1Triangle(8, 7, 9, 0),
gsSP1Triangle(7, 10, 9, 0),
gsSP1Triangle(10, 11, 9, 0),
gsSP1Triangle(11, 8, 9, 0),
gsSPEndDisplayList(),
};
const Gfx luigi_face_cap_off_dl[] = {
gsSPDisplayList(luigi_face_part_cap_off_dl),
gsSPLight(&luigi_brown2_lights_group.l, 1),
gsSPLight(&luigi_brown2_lights_group.a, 2),
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)),
gsSPLight(&luigi_beige_lights_group.l, 1),
gsSPLight(&luigi_beige_lights_group.a, 2),
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),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_hair_sideburn),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(luigi_hair_sideburn_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)),
gsSPLight(&luigi_beige_lights_group.l, 1),
gsSPLight(&luigi_beige_lights_group.a, 2),
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),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_hair_sideburn),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(luigi_hair_sideburn_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)),
gsSPLight(&luigi_beige_lights_group.l, 1),
gsSPLight(&luigi_beige_lights_group.a, 2),
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),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_hair_sideburn),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(luigi_hair_sideburn_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)),
gsSPLight(&luigi_beige_lights_group.l, 1),
gsSPLight(&luigi_beige_lights_group.a, 2),
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),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_hair_sideburn),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(luigi_hair_sideburn_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)),
gsSPLight(&luigi_beige_lights_group.l, 1),
gsSPLight(&luigi_beige_lights_group.a, 2),
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),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_hair_sideburn),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(luigi_hair_sideburn_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)),
gsSPLight(&luigi_beige_lights_group.l, 1),
gsSPLight(&luigi_beige_lights_group.a, 2),
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),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_hair_sideburn),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(luigi_hair_sideburn_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)),
gsSPLight(&luigi_beige_lights_group.l, 1),
gsSPLight(&luigi_beige_lights_group.a, 2),
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),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_hair_sideburn),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(luigi_hair_sideburn_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)),
gsSPLight(&luigi_beige_lights_group.l, 1),
gsSPLight(&luigi_beige_lights_group.a, 2),
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),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_hair_sideburn),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(luigi_hair_sideburn_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[56] = {
{{{120, 76, -15},0, {0, 0},{0x4D, 0x5F, 0x22, 0xFF}}},
{{{69, 92, -14},0, {0, 0},{0xF0, 0x7E, 0xF9, 0xFF}}},
{{{76, 44, 27},0, {0, 0},{0x14, 0x28, 0x77, 0xFF}}},
{{{118, 73, -36},0, {0, 0},{0x32, 0x41, 0x9F, 0xFF}}},
{{{140, 37, -1},0, {0, 0},{0x74, 0xF8, 0x34, 0xFF}}},
{{{82, -14, 16},0, {0, 0},{0x43, 0xC1, 0x58, 0xFF}}},
{{{25, 19, 34},0, {0, 0},{0xDE, 0xD, 0x7A, 0xFF}}},
{{{5, 56, -3},0, {0, 0},{0xAC, 0x5D, 0x17, 0xFF}}},
{{{25, 44, -35},0, {0, 0},{0xF5, 0x41, 0x93, 0xFF}}},
{{{77, 62, -28},0, {0, 0},{0xF6, 0x16, 0x83, 0xFF}}},
{{{132, 31, -34},0, {0, 0},{0x50, 0xD8, 0xA6, 0xFF}}},
{{{88, -3, -21},0, {0, 0},{0x65, 0xE3, 0xB8, 0xFF}}},
{{{88, -44, -31},0, {0, 0},{0x4B, 0xA4, 0xD4, 0xFF}}},
{{{44, -31, 16},0, {0, 0},{0xFF, 0x9F, 0x52, 0xFF}}},
{{{25, -29, 12},0, {0, 0},{0x37, 0xA8, 0x49, 0xFF}}},
{{{10, 8, 23},0, {0, 0},{0x5, 0x1B, 0x7C, 0xFF}}},
{{{-4, 38, -3},0, {0, 0},{0xCE, 0x72, 0x18, 0xFF}}},
{{{10, 8, 23},0, {0, 0},{0x5, 0x1B, 0x7C, 0xFF}}},
{{{25, 19, 34},0, {0, 0},{0xDE, 0xD, 0x7A, 0xFF}}},
{{{5, 56, -3},0, {0, 0},{0xAC, 0x5D, 0x17, 0xFF}}},
{{{10, 32, -46},0, {0, 0},{0xDB, 0x1E, 0x8A, 0xFF}}},
{{{25, 44, -35},0, {0, 0},{0xF5, 0x41, 0x93, 0xFF}}},
{{{24, 2, -38},0, {0, 0},{0xE0, 0xE3, 0x89, 0xFF}}},
{{{75, -15, -42},0, {0, 0},{0x2D, 0x3, 0x89, 0xFF}}},
{{{68, 13, -30},0, {0, 0},{0x33, 0x1D, 0x8F, 0xFF}}},
{{{77, 62, -28},0, {0, 0},{0xF6, 0x16, 0x83, 0xFF}}},
{{{88, -3, -21},0, {0, 0},{0x65, 0xE3, 0xB8, 0xFF}}},
{{{132, 31, -34},0, {0, 0},{0x50, 0xD8, 0xA6, 0xFF}}},
{{{88, -44, -31},0, {0, 0},{0x4B, 0xA4, 0xD4, 0xFF}}},
{{{40, -34, -30},0, {0, 0},{0xD8, 0x9D, 0xBB, 0xFF}}},
{{{44, -31, 16},0, {0, 0},{0xFF, 0x9F, 0x52, 0xFF}}},
{{{25, -29, 12},0, {0, 0},{0x37, 0xA8, 0x49, 0xFF}}},
{{{25, -29, 12},0, {0, 0},{0x37, 0xA8, 0x49, 0xFF}}},
{{{19, -24, -21},0, {0, 0},{0x10, 0xB2, 0x9D, 0xFF}}},
{{{40, -34, -30},0, {0, 0},{0xD8, 0x9D, 0xBB, 0xFF}}},
{{{12, -36, -25},0, {0, 0},{0x13, 0xA4, 0xAB, 0xFF}}},
{{{19, -43, 18},0, {0, 0},{0x27, 0x99, 0x40, 0xFF}}},
{{{1, 6, 32},0, {0, 0},{0xF9, 0x19, 0x7C, 0xFF}}},
{{{10, 8, 23},0, {0, 0},{0x5, 0x1B, 0x7C, 0xFF}}},
{{{-4, 38, -3},0, {0, 0},{0xCE, 0x72, 0x18, 0xFF}}},
{{{-18, 43, -2},0, {0, 0},{0xC4, 0x6F, 0xC, 0xFF}}},
{{{-11, 17, -37},0, {0, 0},{0xD7, 0x23, 0x8D, 0xFF}}},
{{{0, 18, -31},0, {0, 0},{0xE1, 0x1C, 0x88, 0xFF}}},
{{{10, 32, -46},0, {0, 0},{0xDB, 0x1E, 0x8A, 0xFF}}},
{{{24, 2, -38},0, {0, 0},{0xE0, 0xE3, 0x89, 0xFF}}},
{{{75, -15, -42},0, {0, 0},{0x2D, 0x3, 0x89, 0xFF}}},
{{{0, -30, -17},0, {0, 0},{0x9F, 0xB3, 0xE2, 0xFF}}},
{{{5, -35, 13},0, {0, 0},{0xA7, 0xB0, 0x2A, 0xFF}}},
{{{1, 6, 32},0, {0, 0},{0xF9, 0x19, 0x7C, 0xFF}}},
{{{-7, 0, 23},0, {0, 0},{0x97, 0xE2, 0x42, 0xFF}}},
{{{5, -35, 13},0, {0, 0},{0xA7, 0xB0, 0x2A, 0xFF}}},
{{{-21, 25, -1},0, {0, 0},{0x83, 0x0, 0x16, 0xFF}}},
{{{-18, 43, -2},0, {0, 0},{0xC4, 0x6F, 0xC, 0xFF}}},
{{{-11, 17, -37},0, {0, 0},{0xD7, 0x23, 0x8D, 0xFF}}},
{{{-16, 7, -26},0, {0, 0},{0x8D, 0xDE, 0xD6, 0xFF}}},
{{{0, -30, -17},0, {0, 0},{0x9F, 0xB3, 0xE2, 0xFF}}},
};
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, 0, 3, 0),
gsSP1Triangle(0, 4, 3, 0),
gsSP1Triangle(4, 0, 2, 0),
gsSP1Triangle(5, 4, 2, 0),
gsSP1Triangle(5, 2, 6, 0),
gsSP1Triangle(6, 2, 1, 0),
gsSP1Triangle(6, 1, 7, 0),
gsSP1Triangle(8, 7, 1, 0),
gsSP1Triangle(1, 9, 8, 0),
gsSP1Triangle(3, 9, 1, 0),
gsSP1Triangle(9, 3, 10, 0),
gsSP1Triangle(3, 4, 10, 0),
gsSP1Triangle(10, 4, 5, 0),
gsSP1Triangle(11, 10, 5, 0),
gsSP1Triangle(12, 11, 5, 0),
gsSP1Triangle(12, 5, 13, 0),
gsSP1Triangle(13, 5, 6, 0),
gsSP1Triangle(14, 13, 6, 0),
gsSP1Triangle(6, 15, 14, 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(3, 5, 4, 0),
gsSP1Triangle(6, 4, 5, 0),
gsSP1Triangle(7, 6, 5, 0),
gsSP1Triangle(7, 5, 8, 0),
gsSP1Triangle(5, 9, 8, 0),
gsSP1Triangle(8, 9, 10, 0),
gsSP1Triangle(9, 11, 10, 0),
gsSP1Triangle(7, 8, 10, 0),
gsSP1Triangle(7, 10, 12, 0),
gsSP1Triangle(12, 13, 7, 0),
gsSP1Triangle(14, 13, 12, 0),
gsSP1Triangle(15, 13, 14, 0),
gsSPVertex(luigi_left_hand_open_shared_dl_vertex + 32, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(3, 1, 0, 0),
gsSP1Triangle(0, 4, 3, 0),
gsSP1Triangle(5, 4, 0, 0),
gsSP1Triangle(0, 6, 5, 0),
gsSP1Triangle(5, 6, 7, 0),
gsSP1Triangle(7, 8, 5, 0),
gsSP1Triangle(9, 8, 7, 0),
gsSP1Triangle(7, 10, 9, 0),
gsSP1Triangle(11, 10, 7, 0),
gsSP1Triangle(10, 11, 12, 0),
gsSP1Triangle(1, 10, 12, 0),
gsSP1Triangle(1, 12, 2, 0),
gsSP1Triangle(2, 12, 13, 0),
gsSP1Triangle(9, 10, 1, 0),
gsSP1Triangle(1, 3, 9, 0),
gsSP1Triangle(3, 14, 9, 0),
gsSP1Triangle(15, 14, 3, 0),
gsSP1Triangle(4, 15, 3, 0),
gsSP1Triangle(5, 15, 4, 0),
gsSPVertex(luigi_left_hand_open_shared_dl_vertex + 48, 8, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(3, 1, 0, 0),
gsSP1Triangle(4, 3, 0, 0),
gsSP1Triangle(5, 3, 4, 0),
gsSP1Triangle(5, 6, 3, 0),
gsSP1Triangle(7, 6, 5, 0),
gsSP1Triangle(1, 6, 7, 0),
gsSP1Triangle(7, 2, 1, 0),
gsSP1Triangle(1, 3, 6, 0),
gsSPEndDisplayList(),
};
const Gfx luigi_left_hand_open[] = {
gsSPLight(&luigi_white_lights_group.l, 1),
gsSPLight(&luigi_white_lights_group.a, 2),
gsSPDisplayList(luigi_left_hand_open_shared_dl),
gsSPEndDisplayList(),
};
static const Vtx luigi_right_hand_open_dl_vertex[60] = {
{{{135, 31, 25},0, {0, 0},{0x52, 0xDE, 0x5B, 0xFF}}},
{{{123, 72, 24},0, {0, 0},{0x39, 0x46, 0x5A, 0xFF}}},
{{{83, 62, 19},0, {0, 0},{0xFD, 0x21, 0x7B, 0xFF}}},
{{{142, 34, -7},0, {0, 0},{0x73, 0xF0, 0xCC, 0xFF}}},
{{{85, -16, -19},0, {0, 0},{0x3E, 0xB9, 0xAB, 0xFF}}},
{{{92, -2, 16},0, {0, 0},{0x68, 0xE6, 0x45, 0xFF}}},
{{{74, 14, 26},0, {0, 0},{0x3D, 0x24, 0x6A, 0xFF}}},
{{{33, 46, 30},0, {0, 0},{0xFD, 0x4A, 0x67, 0xFF}}},
{{{75, 91, 3},0, {0, 0},{0xF3, 0x7E, 0xFF, 0xFF}}},
{{{124, 74, 3},0, {0, 0},{0x4E, 0x5A, 0xD4, 0xFF}}},
{{{80, 40, -34},0, {0, 0},{0x10, 0x1D, 0x85, 0xFF}}},
{{{29, 16, -36},0, {0, 0},{0xD7, 0x3, 0x88, 0xFF}}},
{{{47, -32, -15},0, {0, 0},{0xF7, 0x99, 0xB6, 0xFF}}},
{{{92, -42, 30},0, {0, 0},{0x4C, 0xA7, 0x30, 0xFF}}},
{{{80, -12, 39},0, {0, 0},{0x35, 0xB, 0x73, 0xFF}}},
{{{31, 5, 37},0, {0, 0},{0xE3, 0xEE, 0x7A, 0xFF}}},
{{{33, 46, 30},0, {0, 0},{0xFD, 0x4A, 0x67, 0xFF}}},
{{{19, 36, 42},0, {0, 0},{0xE2, 0x2A, 0x74, 0xFF}}},
{{{31, 5, 37},0, {0, 0},{0xE3, 0xEE, 0x7A, 0xFF}}},
{{{12, 56, -1},0, {0, 0},{0xAE, 0x5E, 0xE7, 0xFF}}},
{{{75, 91, 3},0, {0, 0},{0xF3, 0x7E, 0xFF, 0xFF}}},
{{{29, 16, -36},0, {0, 0},{0xD7, 0x3, 0x88, 0xFF}}},
{{{80, 40, -34},0, {0, 0},{0x10, 0x1D, 0x85, 0xFF}}},
{{{124, 74, 3},0, {0, 0},{0x4E, 0x5A, 0xD4, 0xFF}}},
{{{2, 39, 0},0, {0, 0},{0xD7, 0x74, 0xE1, 0xFF}}},
{{{15, 7, -23},0, {0, 0},{0x0, 0x11, 0x82, 0xFF}}},
{{{29, -29, -10},0, {0, 0},{0x37, 0xA3, 0xBD, 0xFF}}},
{{{47, -32, -15},0, {0, 0},{0xF7, 0x99, 0xB6, 0xFF}}},
{{{45, -32, 31},0, {0, 0},{0xD8, 0xA4, 0x4E, 0xFF}}},
{{{92, -42, 30},0, {0, 0},{0x4C, 0xA7, 0x30, 0xFF}}},
{{{80, -12, 39},0, {0, 0},{0x35, 0xB, 0x73, 0xFF}}},
{{{25, -21, 22},0, {0, 0},{0xD, 0xBA, 0x69, 0xFF}}},
{{{31, 5, 37},0, {0, 0},{0xE3, 0xEE, 0x7A, 0xFF}}},
{{{8, 21, 29},0, {0, 0},{0xEA, 0x28, 0x77, 0xFF}}},
{{{25, -21, 22},0, {0, 0},{0xD, 0xBA, 0x69, 0xFF}}},
{{{19, 36, 42},0, {0, 0},{0xE2, 0x2A, 0x74, 0xFF}}},
{{{2, 39, 0},0, {0, 0},{0xD7, 0x74, 0xE1, 0xFF}}},
{{{12, 56, -1},0, {0, 0},{0xAE, 0x5E, 0xE7, 0xFF}}},
{{{-2, 21, 36},0, {0, 0},{0xE1, 0x2F, 0x72, 0xFF}}},
{{{18, -33, 27},0, {0, 0},{0x16, 0xA9, 0x5A, 0xFF}}},
{{{6, -27, 20},0, {0, 0},{0x9E, 0xBA, 0x2A, 0xFF}}},
{{{-8, 10, 26},0, {0, 0},{0x8D, 0xE7, 0x31, 0xFF}}},
{{{-13, 26, 0},0, {0, 0},{0x82, 0x0, 0xF0, 0xFF}}},
{{{-10, 44, -1},0, {0, 0},{0xC7, 0x70, 0xEC, 0xFF}}},
{{{6, 4, -32},0, {0, 0},{0xF2, 0xD, 0x82, 0xFF}}},
{{{15, 7, -23},0, {0, 0},{0x0, 0x11, 0x82, 0xFF}}},
{{{29, -29, -10},0, {0, 0},{0x37, 0xA3, 0xBD, 0xFF}}},
{{{24, -43, -15},0, {0, 0},{0x28, 0x96, 0xC6, 0xFF}}},
{{{45, -32, 31},0, {0, 0},{0xD8, 0xA4, 0x4E, 0xFF}}},
{{{25, -21, 22},0, {0, 0},{0xD, 0xBA, 0x69, 0xFF}}},
{{{29, -29, -10},0, {0, 0},{0x37, 0xA3, 0xBD, 0xFF}}},
{{{18, -33, 27},0, {0, 0},{0x16, 0xA9, 0x5A, 0xFF}}},
{{{10, -35, -9},0, {0, 0},{0xA4, 0xAD, 0xE3, 0xFF}}},
{{{24, -43, -15},0, {0, 0},{0x28, 0x96, 0xC6, 0xFF}}},
{{{6, -27, 20},0, {0, 0},{0x9E, 0xBA, 0x2A, 0xFF}}},
{{{-1, -1, -21},0, {0, 0},{0x91, 0xDE, 0xCC, 0xFF}}},
{{{-8, 10, 26},0, {0, 0},{0x8D, 0xE7, 0x31, 0xFF}}},
{{{-13, 26, 0},0, {0, 0},{0x82, 0x0, 0xF0, 0xFF}}},
{{{6, 4, -32},0, {0, 0},{0xF2, 0xD, 0x82, 0xFF}}},
{{{-10, 44, -1},0, {0, 0},{0xC7, 0x70, 0xEC, 0xFF}}},
};
const Gfx luigi_right_hand_open_dl[] = {
gsSPVertex(luigi_right_hand_open_dl_vertex + 0, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(0, 3, 1, 0),
gsSP1Triangle(4, 3, 0, 0),
gsSP1Triangle(4, 0, 5, 0),
gsSP1Triangle(5, 0, 2, 0),
gsSP1Triangle(5, 2, 6, 0),
gsSP1Triangle(6, 2, 7, 0),
gsSP1Triangle(7, 2, 8, 0),
gsSP1Triangle(8, 2, 1, 0),
gsSP1Triangle(1, 9, 8, 0),
gsSP1Triangle(1, 3, 9, 0),
gsSP1Triangle(10, 9, 3, 0),
gsSP1Triangle(10, 3, 4, 0),
gsSP1Triangle(11, 10, 4, 0),
gsSP1Triangle(11, 4, 12, 0),
gsSP1Triangle(12, 4, 13, 0),
gsSP1Triangle(4, 5, 13, 0),
gsSP1Triangle(13, 5, 14, 0),
gsSP1Triangle(5, 6, 14, 0),
gsSP1Triangle(6, 7, 14, 0),
gsSP1Triangle(7, 15, 14, 0),
gsSPVertex(luigi_right_hand_open_dl_vertex + 16, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(1, 0, 3, 0),
gsSP1Triangle(4, 3, 0, 0),
gsSP1Triangle(3, 4, 5, 0),
gsSP1Triangle(4, 6, 5, 0),
gsSP1Triangle(6, 4, 7, 0),
gsSP1Triangle(3, 5, 8, 0),
gsSP1Triangle(5, 9, 8, 0),
gsSP1Triangle(10, 9, 5, 0),
gsSP1Triangle(5, 11, 10, 0),
gsSP1Triangle(11, 12, 10, 0),
gsSP1Triangle(13, 12, 11, 0),
gsSP1Triangle(14, 12, 13, 0),
gsSP1Triangle(14, 2, 12, 0),
gsSP1Triangle(12, 2, 15, 0),
gsSPVertex(luigi_right_hand_open_dl_vertex + 32, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(0, 3, 1, 0),
gsSP1Triangle(4, 1, 3, 0),
gsSP1Triangle(3, 5, 4, 0),
gsSP1Triangle(6, 1, 4, 0),
gsSP1Triangle(2, 1, 6, 0),
gsSP1Triangle(6, 7, 2, 0),
gsSP1Triangle(6, 8, 7, 0),
gsSP1Triangle(6, 9, 8, 0),
gsSP1Triangle(10, 9, 6, 0),
gsSP1Triangle(11, 10, 6, 0),
gsSP1Triangle(4, 11, 6, 0),
gsSP1Triangle(12, 11, 4, 0),
gsSP1Triangle(4, 13, 12, 0),
gsSP1Triangle(12, 13, 14, 0),
gsSP1Triangle(14, 15, 12, 0),
gsSP1Triangle(7, 15, 14, 0),
gsSP1Triangle(14, 2, 7, 0),
gsSPVertex(luigi_right_hand_open_dl_vertex + 48, 12, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(3, 4, 5, 0),
gsSP1Triangle(3, 6, 4, 0),
gsSP1Triangle(7, 4, 6, 0),
gsSP1Triangle(6, 8, 7, 0),
gsSP1Triangle(8, 9, 7, 0),
gsSP1Triangle(10, 7, 9, 0),
gsSP1Triangle(10, 9, 11, 0),
gsSP1Triangle(4, 7, 10, 0),
gsSP1Triangle(5, 4, 10, 0),
gsSPEndDisplayList(),
};
const Gfx luigi_right_hand_open[] = {
gsSPLight(&luigi_white_lights_group.l, 1),
gsSPLight(&luigi_white_lights_group.a, 2),
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] = {
{{{125, -18, -40},0, {466, -5},{0xDA, 0xD, 0x87, 0xFF}}},
{{{86, 7, 39},0, {735, 920},{0xD8, 0x46, 0x9E, 0xFF}}},
{{{135, 34, -7},0, {1085, 268},{0xE1, 0x5F, 0xB1, 0xFF}}},
{{{80, -45, 36},0, {161, 905},{0xC8, 0xD7, 0x95, 0xFF}}},
{{{120, -76, -15},0, {-162, 239},{0xCA, 0xBA, 0xA5, 0xFF}}},
};
static const Vtx luigi_right_hand_cap_hand_position_dl_vertex[45] = {
{{{33, 11, -43},0, {0, 0},{0xE8, 0xF6, 0x84, 0xFF}}},
{{{54, -41, -9},0, {0, 0},{0x7, 0x8C, 0xCD, 0xFF}}},
{{{30, -37, -7},0, {0, 0},{0x3A, 0x99, 0xD1, 0xFF}}},
{{{102, -23, -5},0, {0, 0},{0x65, 0xBF, 0xD7, 0xFF}}},
{{{84, 33, -39},0, {0, 0},{0x44, 0x1D, 0x98, 0xFF}}},
{{{56, 84, -6},0, {0, 0},{0x17, 0x7A, 0xE4, 0xFF}}},
{{{8, 63, -9},0, {0, 0},{0xB0, 0x59, 0xD4, 0xFF}}},
{{{-3, 44, -7},0, {0, 0},{0xD8, 0x6F, 0xD1, 0xFF}}},
{{{14, 2, -29},0, {0, 0},{0xD, 0xFF, 0x82, 0xFF}}},
{{{2, 0, -39},0, {0, 0},{0xF0, 0xFC, 0x82, 0xFF}}},
{{{23, -54, -9},0, {0, 0},{0x1C, 0x89, 0xDC, 0xFF}}},
{{{12, -36, 36},0, {0, 0},{0xFB, 0xB0, 0x62, 0xFF}}},
{{{22, -23, 30},0, {0, 0},{0xE, 0xBF, 0x6C, 0xFF}}},
{{{74, -30, 60},0, {0, 0},{0x19, 0xB2, 0x61, 0xFF}}},
{{{94, -5, 46},0, {0, 0},{0x67, 0xFB, 0x4A, 0xFF}}},
{{{95, 41, 18},0, {0, 0},{0x6C, 0x3D, 0x1C, 0xFF}}},
{{{53, 56, 38},0, {0, 0},{0x16, 0x51, 0x5F, 0xFF}}},
{{{95, 41, 18},0, {0, 0},{0x6C, 0x3D, 0x1C, 0xFF}}},
{{{56, 84, -6},0, {0, 0},{0x17, 0x7A, 0xE4, 0xFF}}},
{{{28, 64, 29},0, {0, 0},{0xD0, 0x59, 0x4D, 0xFF}}},
{{{8, 63, -9},0, {0, 0},{0xB0, 0x59, 0xD4, 0xFF}}},
{{{0, 26, 30},0, {0, 0},{0xF5, 0x3D, 0x6F, 0xFF}}},
{{{-3, 44, -7},0, {0, 0},{0xD8, 0x6F, 0xD1, 0xFF}}},
{{{-15, 29, 36},0, {0, 0},{0xC6, 0x35, 0x64, 0xFF}}},
{{{-21, 49, -9},0, {0, 0},{0xBC, 0x66, 0xDD, 0xFF}}},
{{{2, 0, -39},0, {0, 0},{0xF0, 0xFC, 0x82, 0xFF}}},
{{{14, 2, -29},0, {0, 0},{0xD, 0xFF, 0x82, 0xFF}}},
{{{-17, -9, 0},0, {0, 0},{0x8B, 0xD0, 0xF6, 0xFF}}},
{{{23, -54, -9},0, {0, 0},{0x1C, 0x89, 0xDC, 0xFF}}},
{{{12, -36, 36},0, {0, 0},{0xFB, 0xB0, 0x62, 0xFF}}},
{{{22, -23, 30},0, {0, 0},{0xE, 0xBF, 0x6C, 0xFF}}},
{{{28, 9, 44},0, {0, 0},{0xC0, 0xFA, 0x6E, 0xFF}}},
{{{74, -30, 60},0, {0, 0},{0x19, 0xB2, 0x61, 0xFF}}},
{{{28, 9, 44},0, {0, 0},{0xC0, 0xFA, 0x6E, 0xFF}}},
{{{22, -23, 30},0, {0, 0},{0xE, 0xBF, 0x6C, 0xFF}}},
{{{55, 13, 60},0, {0, 0},{0xF4, 0x14, 0x7D, 0xFF}}},
{{{94, -5, 46},0, {0, 0},{0x67, 0xFB, 0x4A, 0xFF}}},
{{{84, 18, 46},0, {0, 0},{0x43, 0x2E, 0x62, 0xFF}}},
{{{95, 41, 18},0, {0, 0},{0x6C, 0x3D, 0x1C, 0xFF}}},
{{{53, 56, 38},0, {0, 0},{0x16, 0x51, 0x5F, 0xFF}}},
{{{28, 64, 29},0, {0, 0},{0xD0, 0x59, 0x4D, 0xFF}}},
{{{0, 26, 30},0, {0, 0},{0xF5, 0x3D, 0x6F, 0xFF}}},
{{{-21, 49, -9},0, {0, 0},{0xBC, 0x66, 0xDD, 0xFF}}},
{{{-17, -9, 0},0, {0, 0},{0x8B, 0xD0, 0xF6, 0xFF}}},
{{{-15, 29, 36},0, {0, 0},{0xC6, 0x35, 0x64, 0xFF}}},
};
static const Vtx luigi_right_hand_cap_top_dl_vertex[44] = {
{{{86, 7, 39},0, {0, 0},{0xD8, 0x46, 0x9E, 0xFF}}},
{{{126, 47, 99},0, {0, 0},{0xA4, 0x4C, 0x2B, 0xFF}}},
{{{135, 34, -7},0, {0, 0},{0xE1, 0x5F, 0xB1, 0xFF}}},
{{{49, 39, 49},0, {0, 0},{0xB7, 0x68, 0x3, 0xFF}}},
{{{17, -10, 28},0, {0, 0},{0x88, 0x10, 0xD8, 0xFF}}},
{{{80, -45, 36},0, {0, 0},{0xC8, 0xD7, 0x95, 0xFF}}},
{{{37, -68, 41},0, {0, 0},{0x9F, 0xAE, 0xF6, 0xFF}}},
{{{107, -105, 86},0, {0, 0},{0x97, 0xBC, 0x17, 0xFF}}},
{{{120, -76, -15},0, {0, 0},{0xCA, 0xBA, 0xA5, 0xFF}}},
{{{148, -147, 62},0, {0, 0},{0xF2, 0x87, 0xDC, 0xFF}}},
{{{189, -62, -11},0, {0, 0},{0x4E, 0xD2, 0xA6, 0xFF}}},
{{{125, -18, -40},0, {0, 0},{0xDA, 0xD, 0x87, 0xFF}}},
{{{196, 3, -7},0, {0, 0},{0x58, 0x27, 0xAD, 0xFF}}},
{{{178, 83, 79},0, {0, 0},{0x11, 0x7D, 0xEE, 0xFF}}},
{{{154, 47, 139},0, {0, 0},{0xA9, 0x43, 0x40, 0xFF}}},
{{{197, 66, 147},0, {0, 0},{0x1A, 0x74, 0x2E, 0xFF}}},
{{{197, 66, 147},0, {0, 0},{0x1A, 0x74, 0x2E, 0xFF}}},
{{{154, 47, 139},0, {0, 0},{0xA9, 0x43, 0x40, 0xFF}}},
{{{177, 28, 183},0, {0, 0},{0xBA, 0x39, 0x59, 0xFF}}},
{{{208, -7, 220},0, {0, 0},{0xF5, 0x25, 0x79, 0xFF}}},
{{{274, -15, 190},0, {0, 0},{0x74, 0x1D, 0x2C, 0xFF}}},
{{{263, -94, 184},0, {0, 0},{0x68, 0xC1, 0x25, 0xFF}}},
{{{198, -91, 214},0, {0, 0},{0xEA, 0xCE, 0x73, 0xFF}}},
{{{171, -146, 131},0, {0, 0},{0xFD, 0x84, 0x19, 0xFF}}},
{{{160, -110, 172},0, {0, 0},{0xAB, 0xCC, 0x4F, 0xFF}}},
{{{135, -115, 126},0, {0, 0},{0x9C, 0xCB, 0x3A, 0xFF}}},
{{{148, -147, 62},0, {0, 0},{0xF2, 0x87, 0xDC, 0xFF}}},
{{{107, -105, 86},0, {0, 0},{0x97, 0xBC, 0x17, 0xFF}}},
{{{224, -105, 113},0, {0, 0},{0x64, 0xBF, 0xD6, 0xFF}}},
{{{239, 16, 122},0, {0, 0},{0x72, 0x2D, 0xDF, 0xFF}}},
{{{189, -62, -11},0, {0, 0},{0x4E, 0xD2, 0xA6, 0xFF}}},
{{{196, 3, -7},0, {0, 0},{0x58, 0x27, 0xAD, 0xFF}}},
{{{178, 83, 79},0, {0, 0},{0x11, 0x7D, 0xEE, 0xFF}}},
{{{239, 16, 122},0, {0, 0},{0x72, 0x2D, 0xDF, 0xFF}}},
{{{196, 3, -7},0, {0, 0},{0x58, 0x27, 0xAD, 0xFF}}},
{{{197, 66, 147},0, {0, 0},{0x1A, 0x74, 0x2E, 0xFF}}},
{{{274, -15, 190},0, {0, 0},{0x74, 0x1D, 0x2C, 0xFF}}},
{{{37, -68, 41},0, {0, 0},{0x9F, 0xAE, 0xF6, 0xFF}}},
{{{107, -105, 86},0, {0, 0},{0x97, 0xBC, 0x17, 0xFF}}},
{{{71, -45, 53},0, {0, 0},{0xB9, 0x9, 0x69, 0xFF}}},
{{{17, -10, 28},0, {0, 0},{0x88, 0x10, 0xD8, 0xFF}}},
{{{78, 7, 58},0, {0, 0},{0xB9, 0xF8, 0x69, 0xFF}}},
{{{49, 39, 49},0, {0, 0},{0xB7, 0x68, 0x3, 0xFF}}},
{{{126, 47, 99},0, {0, 0},{0xA4, 0x4C, 0x2B, 0xFF}}},
};
static const Vtx luigi_right_hand_cap_bottom_dl_vertex[10] = {
{{{71, -45, 53},0, {0, 0},{0xB9, 0x9, 0x69, 0xFF}}},
{{{107, -105, 86},0, {0, 0},{0x97, 0xBC, 0x17, 0xFF}}},
{{{135, -115, 126},0, {0, 0},{0x9C, 0xCB, 0x3A, 0xFF}}},
{{{78, 7, 58},0, {0, 0},{0xB9, 0xF8, 0x69, 0xFF}}},
{{{126, 47, 99},0, {0, 0},{0xA4, 0x4C, 0x2B, 0xFF}}},
{{{154, 47, 139},0, {0, 0},{0xA9, 0x43, 0x40, 0xFF}}},
{{{177, 28, 183},0, {0, 0},{0xBA, 0x39, 0x59, 0xFF}}},
{{{160, -110, 172},0, {0, 0},{0xAB, 0xCC, 0x4F, 0xFF}}},
{{{198, -91, 214},0, {0, 0},{0xEA, 0xCE, 0x73, 0xFF}}},
{{{208, -7, 220},0, {0, 0},{0xF5, 0x25, 0x79, 0xFF}}},
};
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(3, 1, 0, 0),
gsSP1Triangle(4, 3, 0, 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, 0, 0),
gsSP1Triangle(4, 3, 0, 0),
gsSP1Triangle(4, 0, 5, 0),
gsSP1Triangle(4, 5, 6, 0),
gsSP1Triangle(7, 6, 5, 0),
gsSP1Triangle(7, 5, 8, 0),
gsSP1Triangle(9, 7, 8, 0),
gsSP1Triangle(8, 10, 9, 0),
gsSP1Triangle(10, 8, 11, 0),
gsSP1Triangle(11, 12, 10, 0),
gsSP1Triangle(11, 2, 12, 0),
gsSP1Triangle(13, 12, 2, 0),
gsSP1Triangle(2, 1, 13, 0),
gsSP1Triangle(1, 14, 13, 0),
gsSP1Triangle(15, 13, 14, 0),
gsSPVertex(luigi_right_hand_cap_top_dl_vertex + 16, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(2, 3, 0, 0),
gsSP1Triangle(0, 3, 4, 0),
gsSP1Triangle(4, 3, 5, 0),
gsSP1Triangle(5, 3, 6, 0),
gsSP1Triangle(6, 7, 5, 0),
gsSP1Triangle(6, 8, 7, 0),
gsSP1Triangle(7, 8, 9, 0),
gsSP1Triangle(7, 9, 10, 0),
gsSP1Triangle(9, 11, 10, 0),
gsSP1Triangle(12, 7, 10, 0),
gsSP1Triangle(5, 7, 12, 0),
gsSP1Triangle(5, 12, 4, 0),
gsSP1Triangle(13, 4, 12, 0),
gsSP1Triangle(14, 13, 12, 0),
gsSP1Triangle(10, 14, 12, 0),
gsSP1Triangle(15, 13, 14, 0),
gsSPVertex(luigi_right_hand_cap_top_dl_vertex + 32, 12, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(1, 0, 3, 0),
gsSP1Triangle(4, 1, 3, 0),
gsSP1Triangle(5, 6, 7, 0),
gsSP1Triangle(8, 5, 7, 0),
gsSP1Triangle(9, 8, 7, 0),
gsSP1Triangle(8, 9, 10, 0),
gsSP1Triangle(10, 9, 11, 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(0, 3, 1, 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(2, 8, 0, 0),
gsSP1Triangle(9, 8, 2, 0),
gsSP1Triangle(2, 10, 9, 0),
gsSP1Triangle(11, 10, 2, 0),
gsSP1Triangle(2, 12, 11, 0),
gsSP1Triangle(12, 2, 1, 0),
gsSP1Triangle(1, 13, 12, 0),
gsSP1Triangle(1, 3, 13, 0),
gsSP1Triangle(3, 14, 13, 0),
gsSP1Triangle(3, 15, 14, 0),
gsSP1Triangle(4, 15, 3, 0),
gsSP1Triangle(5, 15, 4, 0),
gsSPVertex(luigi_right_hand_cap_hand_position_dl_vertex + 16, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(3, 0, 2, 0),
gsSP1Triangle(2, 4, 3, 0),
gsSP1Triangle(3, 4, 5, 0),
gsSP1Triangle(4, 6, 5, 0),
gsSP1Triangle(7, 5, 6, 0),
gsSP1Triangle(6, 8, 7, 0),
gsSP1Triangle(9, 8, 6, 0),
gsSP1Triangle(6, 10, 9, 0),
gsSP1Triangle(9, 11, 8, 0),
gsSP1Triangle(12, 11, 9, 0),
gsSP1Triangle(13, 11, 12, 0),
gsSP1Triangle(7, 11, 13, 0),
gsSP1Triangle(7, 13, 14, 0),
gsSP1Triangle(14, 5, 7, 0),
gsSP1Triangle(15, 5, 14, 0),
gsSPVertex(luigi_right_hand_cap_hand_position_dl_vertex + 32, 13, 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(6, 7, 5, 0),
gsSP1Triangle(5, 7, 3, 0),
gsSP1Triangle(7, 8, 3, 0),
gsSP1Triangle(8, 1, 3, 0),
gsSP1Triangle(9, 1, 8, 0),
gsSP1Triangle(10, 11, 12, 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_dl[] = {
gsSPDisplayList(luigi_right_hand_cap_top_dl),
gsSPLight(&luigi_white_lights_group.l, 1),
gsSPLight(&luigi_white_lights_group.a, 2),
gsSPDisplayList(luigi_right_hand_cap_hand_position_dl),
gsSPLight(&luigi_brown2_lights_group.l, 1),
gsSPLight(&luigi_brown2_lights_group.a, 2),
gsSPDisplayList(luigi_right_hand_cap_bottom_dl),
gsSPEndDisplayList(),
};
static const Vtx luigi_right_hand_cap_wings_half_1_dl_vertex[8] = {
{{{374, 128, 14},0, {990, 16},{0xBF, 0x65, 0xD6, 0xFF}}},
{{{164, 16, 68},0, {0, 2028},{0xBF, 0x65, 0xD6, 0xFF}}},
{{{208, 77, 147},0, {990, 2028},{0xBF, 0x65, 0xD6, 0xFF}}},
{{{330, 68, -64},0, {0, 16},{0xBF, 0x65, 0xD7, 0xFF}}},
{{{179, -153, 135},0, {990, 2028},{0xAA, 0xB3, 0xCB, 0xFF}}},
{{{154, -75, 63},0, {0, 2028},{0xAA, 0xB3, 0xCB, 0xFF}}},
{{{331, -225, -5},0, {990, 16},{0xAA, 0xB3, 0xCB, 0xFF}}},
{{{304, -147, -75},0, {0, 16},{0xAA, 0xB2, 0xCC, 0xFF}}},
};
static const Vtx luigi_right_hand_cap_wings_half_2_dl_vertex[8] = {
{{{179, -153, 135},0, {0, 2028},{0xAA, 0xB3, 0xCB, 0xFF}}},
{{{331, -225, -5},0, {0, 16},{0xAA, 0xB3, 0xCB, 0xFF}}},
{{{359, -305, 66},0, {990, 16},{0xAA, 0xB3, 0xCB, 0xFF}}},
{{{207, -231, 205},0, {990, 2028},{0xAA, 0xB2, 0xCB, 0xFF}}},
{{{417, 190, 93},0, {990, 16},{0xBF, 0x65, 0xD5, 0xFF}}},
{{{374, 128, 14},0, {0, 16},{0xBF, 0x65, 0xD6, 0xFF}}},
{{{208, 77, 147},0, {0, 2028},{0xBF, 0x65, 0xD6, 0xFF}}},
{{{252, 139, 225},0, {990, 2028},{0xBF, 0x64, 0xD5, 0xFF}}},
};
const Gfx luigi_right_hand_cap_wings_half_1_dl[] = {
gsSPVertex(luigi_right_hand_cap_wings_half_1_dl_vertex + 0, 8, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(0, 3, 1, 0),
gsSP1Triangle(4, 5, 6, 0),
gsSP1Triangle(5, 7, 6, 0),
gsSPEndDisplayList(),
};
const Gfx luigi_right_hand_cap_wings_half_2_dl[] = {
gsSPVertex(luigi_right_hand_cap_wings_half_2_dl_vertex + 0, 8, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(3, 0, 2, 0),
gsSP1Triangle(4, 5, 6, 0),
gsSP1Triangle(4, 6, 7, 0),
gsSPEndDisplayList(),
};
const Gfx luigi_right_hand_cap_wings_intial_dl[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_MODULATERGBFADEA, G_CC_MODULATERGBFADEA),
gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH),
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_end_dl[] = {
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH),
gsSPEndDisplayList(),
};
const Gfx luigi_right_hand_cap[] = {
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_l_logo),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(luigi_right_hand_cap_l_logo_dl),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
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_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(),
};
static const Vtx luigi_right_hand_peace_shared_dl_vertex[88] = {
{{{104, 20, -3},0, {0, 0},{0x9, 0x7D, 0x12, 0xFF}}},
{{{97, 13, 23},0, {0, 0},{0x9, 0x7A, 0x23, 0xFF}}},
{{{152, 10, 18},0, {0, 0},{0xC, 0x7B, 0x1E, 0xFF}}},
{{{161, 17, -17},0, {0, 0},{0xB, 0x7D, 0x13, 0xFF}}},
{{{88, 21, -40},0, {0, 0},{0x6, 0x7F, 0x0, 0xFF}}},
{{{165, -10, -23},0, {0, 0},{0x7A, 0x9, 0x22, 0xFF}}},
{{{161, 17, -17},0, {0, 0},{0x7A, 0xA, 0x21, 0xFF}}},
{{{152, 10, 18},0, {0, 0},{0x7A, 0x8, 0x23, 0xFF}}},
{{{154, -12, 15},0, {0, 0},{0x7A, 0x6, 0x23, 0xFF}}},
{{{100, -26, 9},0, {0, 0},{0x4, 0xDC, 0x7A, 0xFF}}},
{{{152, 10, 18},0, {0, 0},{0xFE, 0xE4, 0x7C, 0xFF}}},
{{{97, 13, 23},0, {0, 0},{0x8, 0xD6, 0x78, 0xFF}}},
{{{154, -12, 15},0, {0, 0},{0xF7, 0xEE, 0x7D, 0xFF}}},
{{{88, 21, -40},0, {0, 0},{0x7, 0xA, 0x82, 0xFF}}},
{{{161, 17, -17},0, {0, 0},{0x26, 0x1F, 0x8B, 0xFF}}},
{{{165, -10, -23},0, {0, 0},{0x1E, 0x6, 0x85, 0xFF}}},
{{{165, -10, -23},0, {0, 0},{0x1E, 0x6, 0x85, 0xFF}}},
{{{93, -19, -24},0, {0, 0},{0x1A, 0xA8, 0xA8, 0xFF}}},
{{{88, 21, -40},0, {0, 0},{0x7, 0xA, 0x82, 0xFF}}},
{{{32, 10, -43},0, {0, 0},{0xDF, 0xFA, 0x85, 0xFF}}},
{{{55, -44, -11},0, {0, 0},{0x3, 0x8A, 0xD1, 0xFF}}},
{{{100, -26, 9},0, {0, 0},{0x47, 0x97, 0xFB, 0xFF}}},
{{{154, -12, 15},0, {0, 0},{0x15, 0x83, 0xF6, 0xFF}}},
{{{165, -10, -23},0, {0, 0},{0xF, 0x82, 0xFE, 0xFF}}},
{{{87, -31, 33},0, {0, 0},{0x3D, 0xA6, 0x41, 0xFF}}},
{{{89, 0, 46},0, {0, 0},{0x48, 0x2, 0x69, 0xFF}}},
{{{97, 13, 23},0, {0, 0},{0x5F, 0x1A, 0x51, 0xFF}}},
{{{83, 51, 18},0, {0, 0},{0x2E, 0x40, 0x64, 0xFF}}},
{{{138, 56, 19},0, {0, 0},{0xFC, 0x13, 0x7E, 0xFF}}},
{{{122, 75, 15},0, {0, 0},{0xFC, 0x16, 0x7D, 0xFF}}},
{{{45, 52, 39},0, {0, 0},{0xF7, 0x48, 0x68, 0xFF}}},
{{{55, 83, -5},0, {0, 0},{0x6, 0x7D, 0xED, 0xFF}}},
{{{55, 83, -5},0, {0, 0},{0x6, 0x7D, 0xED, 0xFF}}},
{{{83, 51, 18},0, {0, 0},{0x2E, 0x40, 0x64, 0xFF}}},
{{{83, 63, -13},0, {0, 0},{0x18, 0x5D, 0xAC, 0xFF}}},
{{{88, 21, -40},0, {0, 0},{0x7, 0xA, 0x82, 0xFF}}},
{{{125, 87, -9},0, {0, 0},{0x6, 0x33, 0x8C, 0xFF}}},
{{{145, 62, -14},0, {0, 0},{0x17, 0x2A, 0x8A, 0xFF}}},
{{{32, 10, -43},0, {0, 0},{0xDF, 0xFA, 0x85, 0xFF}}},
{{{7, 61, -8},0, {0, 0},{0xAF, 0x5D, 0xE2, 0xFF}}},
{{{-5, 41, -6},0, {0, 0},{0xD9, 0x73, 0xD9, 0xFF}}},
{{{13, 2, -28},0, {0, 0},{0x3, 0x4, 0x81, 0xFF}}},
{{{31, -40, -6},0, {0, 0},{0x33, 0x94, 0xD4, 0xFF}}},
{{{55, -44, -11},0, {0, 0},{0x3, 0x8A, 0xD1, 0xFF}}},
{{{44, -26, 46},0, {0, 0},{0xE7, 0xBC, 0x69, 0xFF}}},
{{{87, -31, 33},0, {0, 0},{0x3D, 0xA6, 0x41, 0xFF}}},
{{{89, 0, 46},0, {0, 0},{0x48, 0x2, 0x69, 0xFF}}},
{{{45, 52, 39},0, {0, 0},{0xF7, 0x48, 0x68, 0xFF}}},
{{{44, -26, 46},0, {0, 0},{0xE7, 0xBC, 0x69, 0xFF}}},
{{{45, 52, 39},0, {0, 0},{0xF7, 0x48, 0x68, 0xFF}}},
{{{17, 33, 35},0, {0, 0},{0xC9, 0x2D, 0x69, 0xFF}}},
{{{7, 61, -8},0, {0, 0},{0xAF, 0x5D, 0xE2, 0xFF}}},
{{{55, 83, -5},0, {0, 0},{0x6, 0x7D, 0xED, 0xFF}}},
{{{-5, 41, -6},0, {0, 0},{0xD9, 0x73, 0xD9, 0xFF}}},
{{{-1, 24, 31},0, {0, 0},{0x5, 0x44, 0x6B, 0xFF}}},
{{{-16, 26, 37},0, {0, 0},{0xD4, 0x3B, 0x68, 0xFF}}},
{{{-23, 46, -9},0, {0, 0},{0xC3, 0x69, 0xDA, 0xFF}}},
{{{13, 2, -28},0, {0, 0},{0x3, 0x4, 0x81, 0xFF}}},
{{{1, -2, -39},0, {0, 0},{0xFA, 0x2, 0x81, 0xFF}}},
{{{31, -40, -6},0, {0, 0},{0x33, 0x94, 0xD4, 0xFF}}},
{{{23, -56, -9},0, {0, 0},{0x26, 0x8D, 0xDB, 0xFF}}},
{{{22, -26, 30},0, {0, 0},{0x16, 0xC5, 0x6E, 0xFF}}},
{{{14, -36, 36},0, {0, 0},{0x12, 0xBA, 0x68, 0xFF}}},
{{{-1, -32, 26},0, {0, 0},{0xA3, 0xB8, 0x31, 0xFF}}},
{{{-16, 26, 37},0, {0, 0},{0xD4, 0x3B, 0x68, 0xFF}}},
{{{-22, 12, 27},0, {0, 0},{0x8D, 0xE7, 0x2F, 0xFF}}},
{{{-1, -32, 26},0, {0, 0},{0xA3, 0xB8, 0x31, 0xFF}}},
{{{-23, 46, -9},0, {0, 0},{0xC3, 0x69, 0xDA, 0xFF}}},
{{{-26, 27, -6},0, {0, 0},{0x84, 0xFB, 0xE5, 0xFF}}},
{{{1, -2, -39},0, {0, 0},{0xFA, 0x2, 0x81, 0xFF}}},
{{{-9, -9, -26},0, {0, 0},{0x9B, 0xD0, 0xC4, 0xFF}}},
{{{23, -56, -9},0, {0, 0},{0x26, 0x8D, 0xDB, 0xFF}}},
{{{5, -46, -6},0, {0, 0},{0xAB, 0xA5, 0xE6, 0xFF}}},
{{{14, -36, 36},0, {0, 0},{0x12, 0xBA, 0x68, 0xFF}}},
{{{22, -26, 30},0, {0, 0},{0x16, 0xC5, 0x6E, 0xFF}}},
{{{83, 63, -13},0, {0, 0},{0xC1, 0x67, 0x28, 0xFF}}},
{{{83, 51, 18},0, {0, 0},{0xC2, 0x67, 0x29, 0xFF}}},
{{{125, 87, -9},0, {0, 0},{0xC3, 0x67, 0x2A, 0xFF}}},
{{{122, 75, 15},0, {0, 0},{0xC4, 0x67, 0x2C, 0xFF}}},
{{{145, 62, -14},0, {0, 0},{0x59, 0xA6, 0xF6, 0xFF}}},
{{{104, 20, -3},0, {0, 0},{0x59, 0xA6, 0xF1, 0xFF}}},
{{{88, 21, -40},0, {0, 0},{0x52, 0xA6, 0xDA, 0xFF}}},
{{{138, 56, 19},0, {0, 0},{0x5C, 0xA8, 0x2, 0xFF}}},
{{{97, 13, 23},0, {0, 0},{0x5C, 0xA8, 0x1, 0xFF}}},
{{{145, 62, -14},0, {0, 0},{0x5E, 0x4C, 0x28, 0xFF}}},
{{{125, 87, -9},0, {0, 0},{0x61, 0x44, 0x2E, 0xFF}}},
{{{122, 75, 15},0, {0, 0},{0x5E, 0x4C, 0x28, 0xFF}}},
{{{138, 56, 19},0, {0, 0},{0x5A, 0x53, 0x22, 0xFF}}},
};
const Gfx luigi_right_hand_peace_shared_dl[] = {
gsSPVertex(luigi_right_hand_peace_shared_dl_vertex + 0, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(0, 2, 3, 0),
gsSP1Triangle(3, 4, 0, 0),
gsSP1Triangle(5, 6, 7, 0),
gsSP1Triangle(5, 7, 8, 0),
gsSP1Triangle(9, 10, 11, 0),
gsSP1Triangle(9, 12, 10, 0),
gsSP1Triangle(13, 14, 15, 0),
gsSPVertex(luigi_right_hand_peace_shared_dl_vertex + 16, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(3, 2, 1, 0),
gsSP1Triangle(4, 3, 1, 0),
gsSP1Triangle(5, 4, 1, 0),
gsSP1Triangle(1, 6, 5, 0),
gsSP1Triangle(6, 1, 7, 0),
gsSP1Triangle(5, 8, 4, 0),
gsSP1Triangle(8, 5, 9, 0),
gsSP1Triangle(5, 10, 9, 0),
gsSP1Triangle(10, 11, 9, 0),
gsSP1Triangle(11, 10, 12, 0),
gsSP1Triangle(12, 13, 11, 0),
gsSP1Triangle(9, 11, 14, 0),
gsSP1Triangle(14, 11, 15, 0),
gsSPVertex(luigi_right_hand_peace_shared_dl_vertex + 32, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(0, 2, 3, 0),
gsSP1Triangle(4, 3, 2, 0),
gsSP1Triangle(3, 4, 5, 0),
gsSP1Triangle(0, 3, 6, 0),
gsSP1Triangle(7, 0, 6, 0),
gsSP1Triangle(7, 6, 8, 0),
gsSP1Triangle(6, 9, 8, 0),
gsSP1Triangle(10, 9, 6, 0),
gsSP1Triangle(6, 11, 10, 0),
gsSP1Triangle(11, 12, 10, 0),
gsSP1Triangle(12, 11, 13, 0),
gsSP1Triangle(13, 14, 12, 0),
gsSP1Triangle(12, 14, 15, 0),
gsSPVertex(luigi_right_hand_peace_shared_dl_vertex + 48, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(1, 3, 2, 0),
gsSP1Triangle(1, 4, 3, 0),
gsSP1Triangle(2, 3, 5, 0),
gsSP1Triangle(5, 6, 2, 0),
gsSP1Triangle(7, 6, 5, 0),
gsSP1Triangle(7, 5, 8, 0),
gsSP1Triangle(8, 5, 9, 0),
gsSP1Triangle(8, 9, 10, 0),
gsSP1Triangle(10, 9, 11, 0),
gsSP1Triangle(10, 11, 12, 0),
gsSP1Triangle(12, 11, 13, 0),
gsSP1Triangle(0, 13, 11, 0),
gsSP1Triangle(13, 0, 2, 0),
gsSP1Triangle(6, 13, 2, 0),
gsSP1Triangle(14, 13, 6, 0),
gsSP1Triangle(14, 6, 7, 0),
gsSP1Triangle(7, 15, 14, 0),
gsSPVertex(luigi_right_hand_peace_shared_dl_vertex + 64, 15, 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, 8, 7, 0),
gsSP1Triangle(7, 10, 9, 0),
gsSP1Triangle(9, 2, 8, 0),
gsSP1Triangle(6, 8, 2, 0),
gsSP1Triangle(2, 1, 6, 0),
gsSP1Triangle(1, 4, 6, 0),
gsSP1Triangle(11, 12, 13, 0),
gsSP1Triangle(12, 14, 13, 0),
gsSPVertex(luigi_right_hand_peace_shared_dl_vertex + 79, 9, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(3, 1, 0, 0),
gsSP1Triangle(3, 4, 1, 0),
gsSP1Triangle(5, 6, 7, 0),
gsSP1Triangle(7, 8, 5, 0),
gsSPEndDisplayList(),
};
const Gfx luigi_right_hand_peace[] = {
gsSPLight(&luigi_white_lights_group.l, 1),
gsSPLight(&luigi_white_lights_group.a, 2),
gsSPDisplayList(luigi_right_hand_peace_shared_dl),
gsSPEndDisplayList(),
};
static const Vtx luigi_wings_half_1_dl_vertex[] = {
{{{ -105, 212, 0}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ -105, 0, 0}, 0, { 0, 2012}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ 0, 0, 0}, 0, { 990, 2012}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ 0, 212, 0}, 0, { 990, 0}, {0x00, 0x00, 0x7f, 0xff}}},
};
static const Vtx luigi_wings_half_2_dl_vertex[] = {
{{{ 0, 0, 0}, 0, { 0, 2012}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ 106, 212, 0}, 0, { 990, 0}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ 0, 212, 0}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ 106, 0, 0}, 0, { 990, 2012}, {0x00, 0x00, 0x7f, 0xff}}},
};
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(),
};
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(),
};
const Gfx luigi_cap_wings[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH),
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_CULL_BACK | G_SHADING_SMOOTH),
gsSPEndDisplayList(),
};
const Gfx luigi_cap_wings_transparent[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALFADEA, G_CC_DECALFADEA),
gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH),
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_CULL_BACK | G_SHADING_SMOOTH),
gsSPEndDisplayList(),
};
const Gfx luigi_metal_cap_wings[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH),
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_CULL_BACK | G_SHADING_SMOOTH),
gsSPEndDisplayList(),
};
const Gfx luigi_metal_cap_wings_transparent[] = {
gsDPPipeSync(),
gsSPClearGeometryMode(G_TEXTURE_GEN),
gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF),
gsDPSetCombineMode(G_CC_DECALFADEA, G_CC_DECALFADEA),
gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH),
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),
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(),
gsSPSetGeometryMode(G_TEXTURE_GEN | G_CULL_BACK | G_SHADING_SMOOTH),
gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE),
gsDPLoadTextureBlock(luigi_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON),
gsSPEndDisplayList(),
};