sm64coopdx/actors/waluigi/model.inc.c
2024-07-05 22:46:16 -04:00

3803 lines
171 KiB
C

#include "pc/rom_assets.h"
// waluigi
static const Lights1 waluigi_dusk_lights_group = gdSPDefLights1(
0x0A, 0x0A, 0x12,
0x1F, 0x1F, 0x2F, 0x28, 0x28, 0x28
);
static const Lights1 waluigi_purple_lights_group = gdSPDefLights1(
0x2B, 0x00, 0x55,
0x5F, 0x00, 0xAF, 0x28, 0x28, 0x28
);
static const Lights1 waluigi_white_lights_group = gdSPDefLights1(
0x7f, 0x7f, 0x7f,
0xff, 0xff, 0xff, 0x28, 0x28, 0x28
);
static const Lights1 waluigi_orange_lights_group = gdSPDefLights1(
0x6F, 0x23, 0x00,
0xDF, 0x4F, 0x00, 0x28, 0x28, 0x28
);
static const Lights1 waluigi_beige_lights_group = gdSPDefLights1(
0x7f, 0x60, 0x3c,
0xfe, 0xc1, 0x79, 0x28, 0x28, 0x28
);
static const Lights1 waluigi_brown_lights_group = gdSPDefLights1(
0x39, 0x29, 0x00,
0x73, 0x52, 0x00, 0x28, 0x28, 0x28
);
static const Lights1 waluigi_pink_lights_group = gdSPDefLights1(
0x7f, 0x35, 0x56,
0xff, 0x6a, 0xac, 0x28, 0x28, 0x28
);
static const Lights1 waluigi_black_lights_group = gdSPDefLights1(
0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x28, 0x28, 0x28
);
#include "actors/mario/mario_externs.h"
#define waluigi_texture_metal_shade mario_texture_metal_shade
#define waluigi_texture_metal_light mario_texture_metal_light
#define waluigi_texture_yellow_button mario_texture_yellow_button
#define waluigi_texture_wings_half_1 mario_texture_wings_half_1
#define waluigi_texture_wings_half_2 mario_texture_wings_half_2
#define waluigi_texture_metal_wings_half_1_shade mario_texture_metal_wings_half_1_shade
#define waluigi_texture_metal_wings_half_1_light mario_texture_metal_wings_half_1_light
#define waluigi_texture_metal_wings_half_2_shade mario_texture_metal_wings_half_2_shade
#define waluigi_texture_metal_wings_half_2_light mario_texture_metal_wings_half_2_light
ALIGNED8 const Texture waluigi_texture_r_logo[] = {
#include "actors/waluigi/custom_waluigi_logo.rgba16.inc.c"
};
ALIGNED8 const Texture waluigi_texture_r_blend[] = {
#include "actors/waluigi/custom_waluigi_logo_blend.rgba16.inc.c"
};
ALIGNED8 const Texture waluigi_texture_r_cap[] = {
#include "actors/waluigi/custom_waluigi_cap.rgba16.inc.c"
};
ALIGNED8 const Texture waluigi_texture_hair_sideburn[] = {
#include "actors/waluigi/custom_waluigi_sideburn.rgba16.inc.c"
};
ALIGNED8 const Texture waluigi_texture_add_sideburn[] = {
#include "actors/waluigi/custom_waluigi_sideburn_add.rgba16.inc.c"
};
ALIGNED8 const Texture waluigi_texture_skin_sideburn[] = {
#include "actors/waluigi/custom_waluigi_skin.rgba16.inc.c"
};
ALIGNED8 const Texture waluigi_texture_mouth[] = {
#include "actors/waluigi/custom_waluigi_mouth.rgba16.inc.c"
};
ALIGNED8 const Texture waluigi_texture_mouth_dead[] = {
#include "actors/waluigi/custom_waluigi_mouth_dead.rgba16.inc.c"
};
ALIGNED8 const Texture waluigi_texture_eyes_front[] = {
#include "actors/waluigi/custom_waluigi_eyes_center.rgba16.inc.c"
};
ALIGNED8 const Texture waluigi_texture_eyes_half_closed[] = {
#include "actors/waluigi/custom_waluigi_eyes_half_closed.rgba16.inc.c"
};
ALIGNED8 const Texture waluigi_texture_eyes_closed[] = {
#include "actors/waluigi/custom_waluigi_eyes_closed.rgba16.inc.c"
};
ALIGNED8 const Texture waluigi_texture_eyes_right[] = {
#include "actors/waluigi/custom_waluigi_eyes_left_unused.rgba16.inc.c"
};
ALIGNED8 const Texture waluigi_texture_eyes_left[] = {
#include "actors/waluigi/custom_waluigi_eyes_right_unused.rgba16.inc.c"
};
ALIGNED8 const Texture waluigi_texture_eyes_up[] = {
#include "actors/waluigi/custom_waluigi_eyes_up_unused.rgba16.inc.c"
};
ALIGNED8 const Texture waluigi_texture_eyes_down[] = {
#include "actors/waluigi/custom_waluigi_eyes_down_unused.rgba16.inc.c"
};
ALIGNED8 const Texture waluigi_texture_eyes_dead[] = {
#include "actors/waluigi/custom_waluigi_eyes_dead.rgba16.inc.c"
};
static const Vtx waluigi_butt_dl_vertex[77] = {
{{ {-10, -60, 46}, 0, {0, 0}, {204, 157, 60, 0} }},
{{ {38, -70, 38}, 0, {0, 0}, {25, 137, 38, 0} }},
{{ {10, -41, 73}, 0, {0, 0}, {231, 196, 109, 0} }},
{{ {-17, -65, 0}, 0, {0, 0}, {198, 143, 0, 0} }},
{{ {-38, -40, 35}, 0, {0, 0}, {146, 208, 42, 0} }},
{{ {-22, 1, 66}, 0, {0, 0}, {171, 249, 94, 0} }},
{{ {16, -1, 82}, 0, {0, 0}, {250, 250, 127, 0} }},
{{ {51, -46, 65}, 0, {0, 0}, {54, 190, 95, 0} }},
{{ {78, -47, 26}, 0, {0, 0}, {100, 184, 31, 0} }},
{{ {38, -70, -38}, 0, {0, 0}, {25, 137, 218, 0} }},
{{ {-10, -60, -46}, 0, {0, 0}, {204, 157, 196, 0} }},
{{ {-38, -40, -35}, 0, {0, 0}, {146, 208, 214, 0} }},
{{ {-37, 44, -33}, 0, {0, 0}, {146, 54, 224, 0} }},
{{ {-37, 44, 33}, 0, {0, 0}, {146, 54, 32, 0} }},
{{ {-17, 34, 66}, 0, {0, 0}, {180, 38, 95, 0} }},
{{ {15, 35, 79}, 0, {0, 0}, {248, 38, 121, 0} }},
{{ {16, -1, 82}, 0, {0, 0}, {250, 250, 127, 0} }},
{{ {67, -3, 66}, 0, {0, 0}, {82, 243, 96, 0} }},
{{ {15, 35, 79}, 0, {0, 0}, {248, 38, 121, 0} }},
{{ {51, -46, 65}, 0, {0, 0}, {54, 190, 95, 0} }},
{{ {78, -47, 26}, 0, {0, 0}, {100, 184, 31, 0} }},
{{ {101, 12, 0}, 0, {0, 0}, {127, 3, 0, 0} }},
{{ {78, -47, -26}, 0, {0, 0}, {100, 184, 225, 0} }},
{{ {38, -70, -38}, 0, {0, 0}, {25, 137, 218, 0} }},
{{ {51, -46, -65}, 0, {0, 0}, {54, 190, 161, 0} }},
{{ {10, -41, -73}, 0, {0, 0}, {231, 196, 147, 0} }},
{{ {-10, -60, -46}, 0, {0, 0}, {204, 157, 196, 0} }},
{{ {-38, -40, -35}, 0, {0, 0}, {146, 208, 214, 0} }},
{{ {-22, 1, -66}, 0, {0, 0}, {171, 249, 162, 0} }},
{{ {-37, 44, -33}, 0, {0, 0}, {146, 54, 224, 0} }},
{{ {-17, 34, -66}, 0, {0, 0}, {180, 38, 161, 0} }},
{{ {1, 58, -60}, 0, {0, 0}, {215, 90, 177, 0} }},
{{ {-4, 71, -29}, 0, {0, 0}, {205, 114, 231, 0} }},
{{ {1, 58, -60}, 0, {0, 0}, {215, 90, 177, 0} }},
{{ {-37, 44, -33}, 0, {0, 0}, {146, 54, 224, 0} }},
{{ {-4, 71, 29}, 0, {0, 0}, {205, 114, 25, 0} }},
{{ {-37, 44, 33}, 0, {0, 0}, {146, 54, 32, 0} }},
{{ {1, 58, 60}, 0, {0, 0}, {215, 90, 79, 0} }},
{{ {-17, 34, 66}, 0, {0, 0}, {180, 38, 95, 0} }},
{{ {15, 35, 79}, 0, {0, 0}, {248, 38, 121, 0} }},
{{ {44, 69, 53}, 0, {0, 0}, {28, 102, 71, 0} }},
{{ {68, 35, 66}, 0, {0, 0}, {77, 32, 96, 0} }},
{{ {67, -3, 66}, 0, {0, 0}, {82, 243, 96, 0} }},
{{ {101, 12, 0}, 0, {0, 0}, {127, 3, 0, 0} }},
{{ {78, 58, 28}, 0, {0, 0}, {94, 80, 30, 0} }},
{{ {78, 58, -28}, 0, {0, 0}, {94, 80, 226, 0} }},
{{ {68, 35, -66}, 0, {0, 0}, {77, 32, 160, 0} }},
{{ {67, -3, -66}, 0, {0, 0}, {82, 243, 160, 0} }},
{{ {78, -47, -26}, 0, {0, 0}, {100, 184, 225, 0} }},
{{ {67, -3, -66}, 0, {0, 0}, {82, 243, 160, 0} }},
{{ {101, 12, 0}, 0, {0, 0}, {127, 3, 0, 0} }},
{{ {51, -46, -65}, 0, {0, 0}, {54, 190, 161, 0} }},
{{ {16, -1, -82}, 0, {0, 0}, {250, 250, 129, 0} }},
{{ {10, -41, -73}, 0, {0, 0}, {231, 196, 147, 0} }},
{{ {-22, 1, -66}, 0, {0, 0}, {171, 249, 162, 0} }},
{{ {15, 35, -79}, 0, {0, 0}, {248, 38, 135, 0} }},
{{ {-17, 34, -66}, 0, {0, 0}, {180, 38, 161, 0} }},
{{ {1, 58, -60}, 0, {0, 0}, {215, 90, 177, 0} }},
{{ {44, 69, -53}, 0, {0, 0}, {28, 102, 185, 0} }},
{{ {-4, 71, -29}, 0, {0, 0}, {205, 114, 231, 0} }},
{{ {38, 79, -21}, 0, {0, 0}, {17, 125, 241, 0} }},
{{ {-4, 71, 29}, 0, {0, 0}, {205, 114, 25, 0} }},
{{ {38, 79, 21}, 0, {0, 0}, {17, 125, 15, 0} }},
{{ {44, 69, 53}, 0, {0, 0}, {28, 102, 71, 0} }},
{{ {-4, 71, 29}, 0, {0, 0}, {205, 114, 25, 0} }},
{{ {1, 58, 60}, 0, {0, 0}, {215, 90, 79, 0} }},
{{ {44, 69, 53}, 0, {0, 0}, {28, 102, 71, 0} }},
{{ {38, 79, 21}, 0, {0, 0}, {17, 125, 15, 0} }},
{{ {78, 58, 28}, 0, {0, 0}, {94, 80, 30, 0} }},
{{ {68, 35, 66}, 0, {0, 0}, {77, 32, 96, 0} }},
{{ {38, 79, -21}, 0, {0, 0}, {17, 125, 241, 0} }},
{{ {78, 58, -28}, 0, {0, 0}, {94, 80, 226, 0} }},
{{ {44, 69, -53}, 0, {0, 0}, {28, 102, 185, 0} }},
{{ {68, 35, -66}, 0, {0, 0}, {77, 32, 160, 0} }},
{{ {15, 35, -79}, 0, {0, 0}, {248, 38, 135, 0} }},
{{ {67, -3, -66}, 0, {0, 0}, {82, 243, 160, 0} }},
{{ {16, -1, -82}, 0, {0, 0}, {250, 250, 129, 0} }},
};
const Gfx waluigi_butt_dl[] = {
gsSPVertex(waluigi_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(7, 2, 1, 0),
gsSP1Triangle(8, 7, 1, 0),
gsSP1Triangle(1, 9, 8, 0),
gsSP1Triangle(3, 9, 1, 0),
gsSP1Triangle(10, 9, 3, 0),
gsSP1Triangle(10, 3, 11, 0),
gsSP1Triangle(11, 3, 4, 0),
gsSP1Triangle(11, 4, 12, 0),
gsSP1Triangle(13, 12, 4, 0),
gsSP1Triangle(13, 4, 5, 0),
gsSP1Triangle(14, 13, 5, 0),
gsSP1Triangle(14, 5, 15, 0),
gsSP1Triangle(6, 15, 5, 0),
gsSPVertex(waluigi_butt_dl_vertex + 16, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(3, 1, 0, 0),
gsSP1Triangle(3, 4, 1, 0),
gsSP1Triangle(5, 1, 4, 0),
gsSP1Triangle(4, 6, 5, 0),
gsSP1Triangle(6, 4, 7, 0),
gsSP1Triangle(7, 8, 6, 0),
gsSP1Triangle(8, 7, 9, 0),
gsSP1Triangle(10, 9, 7, 0),
gsSP1Triangle(10, 11, 9, 0),
gsSP1Triangle(9, 11, 12, 0),
gsSP1Triangle(12, 11, 13, 0),
gsSP1Triangle(14, 12, 13, 0),
gsSP1Triangle(14, 13, 15, 0),
gsSPVertex(waluigi_butt_dl_vertex + 32, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(0, 2, 3, 0),
gsSP1Triangle(3, 2, 4, 0),
gsSP1Triangle(5, 3, 4, 0),
gsSP1Triangle(6, 5, 4, 0),
gsSP1Triangle(7, 5, 6, 0),
gsSP1Triangle(5, 7, 8, 0),
gsSP1Triangle(9, 8, 7, 0),
gsSP1Triangle(10, 9, 7, 0),
gsSP1Triangle(10, 11, 9, 0),
gsSP1Triangle(12, 9, 11, 0),
gsSP1Triangle(11, 13, 12, 0),
gsSP1Triangle(13, 11, 14, 0),
gsSP1Triangle(15, 14, 11, 0),
gsSPVertex(waluigi_butt_dl_vertex + 48, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(3, 1, 0, 0),
gsSP1Triangle(4, 1, 3, 0),
gsSP1Triangle(5, 4, 3, 0),
gsSP1Triangle(4, 5, 6, 0),
gsSP1Triangle(4, 6, 7, 0),
gsSP1Triangle(8, 7, 6, 0),
gsSP1Triangle(7, 8, 9, 0),
gsSP1Triangle(9, 10, 7, 0),
gsSP1Triangle(11, 10, 9, 0),
gsSP1Triangle(12, 10, 11, 0),
gsSP1Triangle(12, 11, 13, 0),
gsSP1Triangle(14, 12, 13, 0),
gsSP1Triangle(14, 13, 15, 0),
gsSPVertex(waluigi_butt_dl_vertex + 64, 13, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(3, 2, 4, 0),
gsSP1Triangle(5, 4, 2, 0),
gsSP1Triangle(3, 4, 6, 0),
gsSP1Triangle(6, 4, 7, 0),
gsSP1Triangle(6, 7, 8, 0),
gsSP1Triangle(7, 9, 8, 0),
gsSP1Triangle(8, 9, 10, 0),
gsSP1Triangle(9, 11, 10, 0),
gsSP1Triangle(12, 10, 11, 0),
gsSPEndDisplayList(),
};
const Gfx waluigi_butt[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPCopyLightsPlayerPart(PANTS), // gsSPLight(&waluigi_blue_lights_group.a, 2),
gsSPDisplayList(waluigi_butt_dl),
gsSPEndDisplayList(),
};
const Gfx waluigi_metal_butt[] = {
gsDPPipeSync(),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, TEXEL1, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, TEXEL1, 0, 0, 0, ENVIRONMENT),
gsSPSetGeometryMode(G_TEXTURE_GEN),
gsSPTexture(4032, 1984, 0, 0, 1),
gsSPLight(&waluigi_black_lights_group.l, 1),
gsSPCopyLightEXT(2, 15),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, waluigi_texture_metal_shade),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 2047, 128),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0),
gsDPSetTileSize(0, 0, 0, 252, 124),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, waluigi_texture_metal_light),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 512, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(6, 0, 0, 2047, 128),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0),
gsDPSetTileSize(1, 0, 0, 252, 124),
gsSPDisplayList(waluigi_butt_dl),
gsSPEndDisplayList(),
};
static const Vtx waluigi_left_arm_shared_dl_vertex[29] = {
{{ {137, 13, -17}, 0, {0, 0}, {46, 98, 189, 255} }},
{{ {137, -12, -27}, 0, {0, 0}, {48, 224, 143, 255} }},
{{ {18, 20, -22}, 0, {0, 0}, {227, 100, 184, 255} }},
{{ {147, 6, -11}, 0, {0, 0}, {109, 56, 222, 255} }},
{{ {137, 13, 10}, 0, {0, 0}, {45, 97, 69, 255} }},
{{ {18, 20, 15}, 0, {0, 0}, {227, 100, 72, 255} }},
{{ {0, 11, 7}, 0, {0, 0}, {154, 63, 41, 255} }},
{{ {0, 11, -14}, 0, {0, 0}, {154, 63, 214, 255} }},
{{ {18, -15, -34}, 0, {0, 0}, {225, 221, 138, 255} }},
{{ {137, -29, -4}, 0, {0, 0}, {46, 138, 255, 255} }},
{{ {147, -9, -17}, 0, {0, 0}, {111, 240, 196, 255} }},
{{ {147, 6, 4}, 0, {0, 0}, {109, 56, 34, 255} }},
{{ {147, -9, 10}, 0, {0, 0}, {109, 238, 63, 255} }},
{{ {137, -12, 19}, 0, {0, 0}, {46, 222, 113, 255} }},
{{ {18, -15, 27}, 0, {0, 0}, {225, 220, 118, 255} }},
{{ {0, -11, 15}, 0, {0, 0}, {153, 235, 71, 255} }},
{{ {0, -11, -22}, 0, {0, 0}, {153, 237, 185, 255} }},
{{ {0, -11, 15}, 0, {0, 0}, {153, 235, 71, 255} }},
{{ {0, 11, -14}, 0, {0, 0}, {154, 63, 214, 255} }},
{{ {18, -15, -34}, 0, {0, 0}, {225, 221, 138, 255} }},
{{ {18, -39, -4}, 0, {0, 0}, {224, 133, 255, 255} }},
{{ {137, -29, -4}, 0, {0, 0}, {46, 138, 255, 255} }},
{{ {137, -12, 19}, 0, {0, 0}, {46, 222, 113, 255} }},
{{ {147, -9, 10}, 0, {0, 0}, {109, 238, 63, 255} }},
{{ {147, -20, -4}, 0, {0, 0}, {108, 189, 254, 255} }},
{{ {147, -9, -17}, 0, {0, 0}, {111, 240, 196, 255} }},
{{ {147, 6, 4}, 0, {0, 0}, {109, 56, 34, 255} }},
{{ {18, -15, 27}, 0, {0, 0}, {225, 220, 118, 255} }},
{{ {0, -25, -4}, 0, {0, 0}, {151, 184, 0, 255} }},
};
const Gfx waluigi_left_arm_shared_dl[] = {
gsSPVertex(waluigi_left_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, 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(10, 9, 1, 0),
gsSP1Triangle(10, 1, 3, 0),
gsSP1Triangle(10, 3, 11, 0),
gsSP1Triangle(11, 3, 4, 0),
gsSP1Triangle(11, 4, 12, 0),
gsSP1Triangle(12, 4, 13, 0),
gsSP1Triangle(13, 4, 14, 0),
gsSP1Triangle(14, 4, 5, 0),
gsSP1Triangle(15, 14, 5, 0),
gsSP1Triangle(6, 15, 5, 0),
gsSP1Triangle(6, 7, 15, 0),
gsSPVertex(waluigi_left_arm_shared_dl_vertex + 16, 13, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(0, 2, 3, 0),
gsSP1Triangle(0, 3, 4, 0),
gsSP1Triangle(3, 5, 4, 0),
gsSP1Triangle(5, 6, 4, 0),
gsSP1Triangle(7, 6, 5, 0),
gsSP1Triangle(8, 7, 5, 0),
gsSP1Triangle(8, 5, 9, 0),
gsSP1Triangle(8, 9, 7, 0),
gsSP1Triangle(7, 9, 10, 0),
gsSP1Triangle(4, 6, 11, 0),
gsSP1Triangle(12, 4, 11, 0),
gsSP1Triangle(1, 12, 11, 0),
gsSP1Triangle(12, 1, 0, 0),
gsSP1Triangle(12, 0, 4, 0),
gsSPEndDisplayList(),
};
const Gfx waluigi_left_arm[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPCopyLightsPlayerPart(SHIRT), // gsSPLight(&waluigi_green_lights_group.a, 2),
gsSPDisplayList(waluigi_left_arm_shared_dl),
gsSPEndDisplayList(),
};
static const Vtx waluigi_left_forearm_shared_dl_vertex[16] = {
{{ {2, -29, -4}, 0, {0, 0}, {206, 139, 0, 255} }},
{{ {110, -17, 27}, 0, {0, 0}, {52, 220, 110, 255} }},
{{ {2, -13, 19}, 0, {0, 0}, {206, 220, 111, 255} }},
{{ {110, -41, -4}, 0, {0, 0}, {52, 140, 0, 255} }},
{{ {2, -13, -27}, 0, {0, 0}, {204, 223, 145, 255} }},
{{ {-7, -9, -17}, 0, {0, 0}, {144, 245, 198, 255} }},
{{ {-7, -20, -4}, 0, {0, 0}, {146, 193, 252, 255} }},
{{ {-7, -9, 10}, 0, {0, 0}, {144, 243, 59, 255} }},
{{ {2, 13, 10}, 0, {0, 0}, {207, 95, 69, 255} }},
{{ {110, 22, 15}, 0, {0, 0}, {51, 94, 68, 255} }},
{{ {128, -5, -4}, 0, {0, 0}, {127, 2, 255, 255} }},
{{ {110, -17, -34}, 0, {0, 0}, {51, 221, 145, 255} }},
{{ {2, 13, -17}, 0, {0, 0}, {205, 95, 189, 255} }},
{{ {-7, 4, -11}, 0, {0, 0}, {142, 43, 221, 255} }},
{{ {-7, 6, 4}, 0, {0, 0}, {145, 53, 31, 255} }},
{{ {110, 22, -22}, 0, {0, 0}, {50, 94, 187, 255} }},
};
const Gfx waluigi_left_forearm_shared_dl[] = {
gsSPVertex(waluigi_left_forearm_shared_dl_vertex + 0, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(3, 1, 0, 0),
gsSP1Triangle(4, 3, 0, 0),
gsSP1Triangle(5, 4, 0, 0),
gsSP1Triangle(6, 5, 0, 0),
gsSP1Triangle(6, 0, 2, 0),
gsSP1Triangle(7, 6, 2, 0),
gsSP1Triangle(7, 2, 8, 0),
gsSP1Triangle(2, 9, 8, 0),
gsSP1Triangle(1, 9, 2, 0),
gsSP1Triangle(10, 9, 1, 0),
gsSP1Triangle(10, 1, 3, 0),
gsSP1Triangle(10, 3, 11, 0),
gsSP1Triangle(11, 3, 4, 0),
gsSP1Triangle(12, 11, 4, 0),
gsSP1Triangle(13, 12, 4, 0),
gsSP1Triangle(5, 13, 4, 0),
gsSP1Triangle(6, 13, 5, 0),
gsSP1Triangle(14, 13, 6, 0),
gsSP1Triangle(7, 14, 6, 0),
gsSP1Triangle(14, 7, 8, 0),
gsSP1Triangle(14, 8, 12, 0),
gsSP1Triangle(8, 15, 12, 0),
gsSP1Triangle(9, 15, 8, 0),
gsSP1Triangle(10, 15, 9, 0),
gsSP1Triangle(10, 11, 15, 0),
gsSP1Triangle(15, 11, 12, 0),
gsSP1Triangle(13, 14, 12, 0),
gsSPEndDisplayList(),
};
// 0x0400D3E8
ROM_ASSET_LOAD_VTX(waluigi_left_hand_closed_shared_dl_vertex_group1, 0x00114750, 78432, 0x0000d3e8, 256);
// 0x0400D4E8
ROM_ASSET_LOAD_VTX(waluigi_left_hand_closed_shared_dl_vertex_group2, 0x00114750, 78432, 0x0000d4e8, 224);
// 0x0400D5C8
ROM_ASSET_LOAD_VTX(waluigi_left_hand_closed_shared_dl_vertex_group3, 0x00114750, 78432, 0x0000d5c8, 240);
// 0x0400D6B8
ROM_ASSET_LOAD_VTX(waluigi_left_hand_closed_shared_dl_vertex_group4, 0x00114750, 78432, 0x0000d6b8, 160);
// 0x0400D758 - 0x0400D8F0
const Gfx waluigi_left_hand_closed_shared_dl[] = {
gsSPVertex(waluigi_left_hand_closed_shared_dl_vertex_group1, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP2Triangles( 6, 1, 0, 0x0, 2, 1, 7, 0x0),
gsSP2Triangles( 7, 1, 6, 0x0, 6, 4, 8, 0x0),
gsSP2Triangles( 8, 4, 3, 0x0, 9, 3, 2, 0x0),
gsSP2Triangles( 0, 10, 11, 0x0, 12, 10, 0, 0x0),
gsSP1Triangle(13, 14, 15, 0x0),
gsSPVertex(waluigi_left_hand_closed_shared_dl_vertex_group2, 14, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP2Triangles( 5, 1, 3, 0x0, 6, 7, 8, 0x0),
gsSP2Triangles( 9, 10, 3, 0x0, 1, 0, 9, 0x0),
gsSP2Triangles( 9, 3, 1, 0x0, 5, 2, 1, 0x0),
gsSP2Triangles( 0, 2, 7, 0x0, 7, 2, 8, 0x0),
gsSP2Triangles( 8, 2, 11, 0x0, 11, 2, 5, 0x0),
gsSP2Triangles( 9, 7, 6, 0x0, 6, 8, 12, 0x0),
gsSP2Triangles(12, 8, 13, 0x0, 13, 5, 4, 0x0),
gsSPVertex(waluigi_left_hand_closed_shared_dl_vertex_group3, 15, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0),
gsSP2Triangles( 3, 1, 4, 0x0, 4, 1, 5, 0x0),
gsSP2Triangles( 5, 1, 0, 0x0, 6, 7, 2, 0x0),
gsSP2Triangles( 8, 2, 3, 0x0, 3, 9, 10, 0x0),
gsSP2Triangles(10, 9, 11, 0x0, 11, 7, 6, 0x0),
gsSP2Triangles(10, 12, 13, 0x0, 6, 14, 12, 0x0),
gsSPVertex(waluigi_left_hand_closed_shared_dl_vertex_group4, 10, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0),
gsSP2Triangles( 1, 5, 2, 0x0, 0, 2, 3, 0x0),
gsSP2Triangles( 6, 7, 8, 0x0, 8, 9, 6, 0x0),
gsSP1Triangle( 7, 1, 8, 0x0),
gsSPEndDisplayList(),
};
const Gfx waluigi_left_hand_closed[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c
gsSPDisplayList(waluigi_left_hand_closed_shared_dl),
gsSPEndDisplayList(),
};
static const Vtx waluigi_right_arm_shared_dl_vertex[29] = {
{{ {137, 13, 17}, 0, {0, 0}, {46, 98, 67, 255} }},
{{ {18, 20, 22}, 0, {0, 0}, {227, 100, 72, 255} }},
{{ {137, -12, 27}, 0, {0, 0}, {48, 224, 113, 255} }},
{{ {18, 20, -15}, 0, {0, 0}, {227, 100, 184, 255} }},
{{ {137, 13, -10}, 0, {0, 0}, {45, 97, 187, 255} }},
{{ {147, 6, 11}, 0, {0, 0}, {109, 56, 34, 255} }},
{{ {147, -9, 17}, 0, {0, 0}, {111, 240, 60, 255} }},
{{ {137, -29, 4}, 0, {0, 0}, {46, 138, 1, 255} }},
{{ {18, -15, 34}, 0, {0, 0}, {225, 221, 118, 255} }},
{{ {0, 11, 14}, 0, {0, 0}, {154, 63, 42, 255} }},
{{ {0, 11, -7}, 0, {0, 0}, {154, 63, 215, 255} }},
{{ {0, -11, -15}, 0, {0, 0}, {153, 235, 185, 255} }},
{{ {18, -15, -27}, 0, {0, 0}, {225, 220, 138, 255} }},
{{ {137, -12, -19}, 0, {0, 0}, {46, 222, 143, 255} }},
{{ {147, -9, -10}, 0, {0, 0}, {109, 238, 193, 255} }},
{{ {147, 6, -4}, 0, {0, 0}, {109, 56, 222, 255} }},
{{ {147, -20, 4}, 0, {0, 0}, {108, 189, 2, 255} }},
{{ {147, -9, -10}, 0, {0, 0}, {109, 238, 193, 255} }},
{{ {147, -9, 17}, 0, {0, 0}, {111, 240, 60, 255} }},
{{ {137, -29, 4}, 0, {0, 0}, {46, 138, 1, 255} }},
{{ {137, -12, -19}, 0, {0, 0}, {46, 222, 143, 255} }},
{{ {18, -39, 4}, 0, {0, 0}, {224, 133, 1, 255} }},
{{ {18, -15, 34}, 0, {0, 0}, {225, 221, 118, 255} }},
{{ {0, -11, 22}, 0, {0, 0}, {153, 237, 71, 255} }},
{{ {0, 11, 14}, 0, {0, 0}, {154, 63, 42, 255} }},
{{ {0, -11, -15}, 0, {0, 0}, {153, 235, 185, 255} }},
{{ {0, 11, -7}, 0, {0, 0}, {154, 63, 215, 255} }},
{{ {0, -25, 4}, 0, {0, 0}, {151, 184, 0, 255} }},
{{ {18, -15, -27}, 0, {0, 0}, {225, 220, 138, 255} }},
};
const Gfx waluigi_right_arm_shared_dl[] = {
gsSPVertex(waluigi_right_arm_shared_dl_vertex + 0, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(3, 1, 0, 0),
gsSP1Triangle(4, 3, 0, 0),
gsSP1Triangle(5, 4, 0, 0),
gsSP1Triangle(5, 0, 2, 0),
gsSP1Triangle(6, 5, 2, 0),
gsSP1Triangle(6, 2, 7, 0),
gsSP1Triangle(2, 8, 7, 0),
gsSP1Triangle(1, 8, 2, 0),
gsSP1Triangle(9, 8, 1, 0),
gsSP1Triangle(9, 1, 10, 0),
gsSP1Triangle(10, 1, 3, 0),
gsSP1Triangle(10, 3, 11, 0),
gsSP1Triangle(11, 3, 12, 0),
gsSP1Triangle(12, 3, 4, 0),
gsSP1Triangle(13, 12, 4, 0),
gsSP1Triangle(14, 13, 4, 0),
gsSP1Triangle(15, 14, 4, 0),
gsSP1Triangle(15, 4, 5, 0),
gsSP1Triangle(6, 15, 5, 0),
gsSP1Triangle(14, 15, 6, 0),
gsSPVertex(waluigi_right_arm_shared_dl_vertex + 16, 13, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(0, 2, 3, 0),
gsSP1Triangle(0, 3, 1, 0),
gsSP1Triangle(1, 3, 4, 0),
gsSP1Triangle(3, 5, 4, 0),
gsSP1Triangle(6, 5, 3, 0),
gsSP1Triangle(7, 5, 6, 0),
gsSP1Triangle(7, 6, 8, 0),
gsSP1Triangle(7, 8, 9, 0),
gsSP1Triangle(10, 9, 8, 0),
gsSP1Triangle(11, 7, 9, 0),
gsSP1Triangle(11, 5, 7, 0),
gsSP1Triangle(11, 12, 5, 0),
gsSP1Triangle(9, 12, 11, 0),
gsSP1Triangle(5, 12, 4, 0),
gsSPEndDisplayList(),
};
const Gfx waluigi_right_arm[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPCopyLightsPlayerPart(SHIRT), // gsSPLight(&waluigi_green_lights_group.a, 2),
gsSPDisplayList(waluigi_right_arm_shared_dl),
gsSPEndDisplayList(),
};
static const Vtx waluigi_right_forearm_shared_dl_vertex[16] = {
{{ {2, -29, 4}, 0, {0, 0}, {206, 139, 0, 255} }},
{{ {2, -13, -19}, 0, {0, 0}, {206, 220, 145, 255} }},
{{ {110, -17, -27}, 0, {0, 0}, {52, 220, 146, 255} }},
{{ {-7, -20, 4}, 0, {0, 0}, {146, 193, 4, 255} }},
{{ {-7, -9, 17}, 0, {0, 0}, {144, 245, 58, 255} }},
{{ {2, -13, 27}, 0, {0, 0}, {204, 223, 111, 255} }},
{{ {110, -41, 4}, 0, {0, 0}, {52, 140, 0, 255} }},
{{ {128, -5, 4}, 0, {0, 0}, {127, 2, 1, 255} }},
{{ {110, 22, -15}, 0, {0, 0}, {51, 94, 188, 255} }},
{{ {2, 13, -10}, 0, {0, 0}, {207, 95, 187, 255} }},
{{ {-7, -9, -10}, 0, {0, 0}, {144, 243, 197, 255} }},
{{ {-7, 6, -4}, 0, {0, 0}, {145, 53, 225, 255} }},
{{ {-7, 4, 11}, 0, {0, 0}, {142, 43, 35, 255} }},
{{ {2, 13, 17}, 0, {0, 0}, {205, 95, 67, 255} }},
{{ {110, -17, 34}, 0, {0, 0}, {51, 221, 111, 255} }},
{{ {110, 22, 22}, 0, {0, 0}, {50, 94, 69, 255} }},
};
const Gfx waluigi_right_forearm_shared_dl[] = {
gsSPVertex(waluigi_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(),
};
// 0x0400DFF8
ROM_ASSET_LOAD_VTX(waluigi_right_hand_closed_dl_vertex_group1, 0x00114750, 78432, 0x0000dff8, 256);
// 0x0400E0F8
ROM_ASSET_LOAD_VTX(waluigi_right_hand_closed_dl_vertex_group2, 0x00114750, 78432, 0x0000e0f8, 224);
// 0x0400E1D8
ROM_ASSET_LOAD_VTX(waluigi_right_hand_closed_dl_vertex_group3, 0x00114750, 78432, 0x0000e1d8, 240);
// 0x0400E2C8 - 0x0400E458
const Gfx waluigi_right_hand_closed_dl[] = {
gsSPVertex(waluigi_right_hand_closed_dl_vertex_group1, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0),
gsSP2Triangles( 2, 5, 6, 0x0, 6, 7, 4, 0x0),
gsSP2Triangles( 4, 7, 8, 0x0, 8, 9, 10, 0x0),
gsSP2Triangles( 9, 5, 2, 0x0, 11, 12, 13, 0x0),
gsSP2Triangles(13, 12, 14, 0x0, 14, 12, 8, 0x0),
gsSP2Triangles( 8, 12, 9, 0x0, 9, 12, 11, 0x0),
gsSP1Triangle( 3, 15, 0, 0x0),
gsSPVertex(waluigi_right_hand_closed_dl_vertex_group2, 14, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0),
gsSP2Triangles( 3, 4, 5, 0x0, 6, 7, 8, 0x0),
gsSP2Triangles( 8, 7, 1, 0x0, 1, 7, 4, 0x0),
gsSP2Triangles( 4, 7, 9, 0x0, 10, 7, 6, 0x0),
gsSP2Triangles( 9, 10, 5, 0x0, 10, 11, 5, 0x0),
gsSP2Triangles(11, 12, 5, 0x0, 1, 4, 3, 0x0),
gsSP2Triangles(11, 10, 6, 0x0, 6, 13, 11, 0x0),
gsSP2Triangles( 7, 10, 9, 0x0, 4, 9, 5, 0x0),
gsSP2Triangles( 0, 8, 1, 0x0, 6, 8, 0, 0x0),
gsSPVertex(waluigi_right_hand_closed_dl_vertex_group3, 15, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0),
gsSP2Triangles( 4, 3, 5, 0x0, 5, 6, 7, 0x0),
gsSP2Triangles( 7, 6, 0, 0x0, 8, 6, 5, 0x0),
gsSP2Triangles( 9, 3, 1, 0x0, 0, 6, 8, 0x0),
gsSP2Triangles(10, 11, 1, 0x0, 11, 9, 1, 0x0),
gsSP2Triangles(11, 12, 9, 0x0, 1, 0, 10, 0x0),
gsSP2Triangles(13, 5, 3, 0x0, 3, 9, 14, 0x0),
gsSP1Triangle(14, 13, 3, 0x0),
gsSPEndDisplayList(),
};
const Gfx waluigi_right_hand_closed[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c
gsSPDisplayList(waluigi_right_hand_closed_dl),
gsSPEndDisplayList(),
};
const Gfx waluigi_metal_right_hand_closed[] = {
gsSPDisplayList(waluigi_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 waluigi_left_thigh_dl_vertex[24] = {
{{ {-2, -13, -33}, 0, {0, 0}, {172, 235, 163, 255} }},
{{ {16, -17, -40}, 0, {0, 0}, {239, 220, 136, 255} }},
{{ {-2, -49, 3}, 0, {0, 0}, {173, 160, 0, 255} }},
{{ {-2, 40, -18}, 0, {0, 0}, {171, 76, 201, 255} }},
{{ {-17, 1, 3}, 0, {0, 0}, {129, 1, 255, 255} }},
{{ {-2, -13, 40}, 0, {0, 0}, {174, 233, 94, 255} }},
{{ {16, -17, 46}, 0, {0, 0}, {240, 219, 120, 255} }},
{{ {16, -56, 3}, 0, {0, 0}, {242, 130, 0, 255} }},
{{ {187, -34, 5}, 0, {0, 0}, {69, 149, 0, 255} }},
{{ {187, -10, -24}, 0, {0, 0}, {68, 226, 153, 255} }},
{{ {187, 27, -12}, 0, {0, 0}, {69, 86, 193, 255} }},
{{ {16, 46, -24}, 0, {0, 0}, {238, 99, 178, 255} }},
{{ {16, 46, 29}, 0, {0, 0}, {242, 102, 75, 255} }},
{{ {-2, 40, 26}, 0, {0, 0}, {175, 76, 61, 255} }},
{{ {187, 27, 23}, 0, {0, 0}, {68, 85, 65, 255} }},
{{ {187, -10, 34}, 0, {0, 0}, {67, 225, 103, 255} }},
{{ {198, 0, 5}, 0, {0, 0}, {127, 0, 0, 255} }},
{{ {187, -10, 34}, 0, {0, 0}, {67, 225, 103, 255} }},
{{ {187, -34, 5}, 0, {0, 0}, {69, 149, 0, 255} }},
{{ {187, 27, 23}, 0, {0, 0}, {68, 85, 65, 255} }},
{{ {187, 27, -12}, 0, {0, 0}, {69, 86, 193, 255} }},
{{ {187, -10, -24}, 0, {0, 0}, {68, 226, 153, 255} }},
{{ {16, 46, -24}, 0, {0, 0}, {238, 99, 178, 255} }},
{{ {16, 46, 29}, 0, {0, 0}, {242, 102, 75, 255} }},
};
const Gfx waluigi_left_thigh_dl[] = {
gsSPVertex(waluigi_left_thigh_dl_vertex + 0, 16, 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(5, 2, 6, 0),
gsSP1Triangle(2, 7, 6, 0),
gsSP1Triangle(2, 1, 7, 0),
gsSP1Triangle(7, 1, 8, 0),
gsSP1Triangle(9, 8, 1, 0),
gsSP1Triangle(9, 1, 10, 0),
gsSP1Triangle(1, 11, 10, 0),
gsSP1Triangle(3, 11, 1, 0),
gsSP1Triangle(3, 12, 11, 0),
gsSP1Triangle(13, 12, 3, 0),
gsSP1Triangle(4, 13, 3, 0),
gsSP1Triangle(4, 5, 13, 0),
gsSP1Triangle(5, 6, 13, 0),
gsSP1Triangle(13, 6, 12, 0),
gsSP1Triangle(12, 6, 14, 0),
gsSP1Triangle(15, 14, 6, 0),
gsSP1Triangle(15, 6, 8, 0),
gsSP1Triangle(6, 7, 8, 0),
gsSPVertex(waluigi_left_thigh_dl_vertex + 16, 8, 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(4, 6, 3, 0),
gsSP1Triangle(6, 7, 3, 0),
gsSPEndDisplayList(),
};
const Gfx waluigi_left_thigh[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPCopyLightsPlayerPart(PANTS), // gsSPLight(&waluigi_blue_lights_group.a, 2),
gsSPDisplayList(waluigi_left_thigh_dl),
gsSPEndDisplayList(),
};
const Gfx waluigi_metal_left_thigh[] = {
gsDPPipeSync(),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, TEXEL1, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, TEXEL1, 0, 0, 0, ENVIRONMENT),
gsSPSetGeometryMode(G_TEXTURE_GEN),
gsSPTexture(4032, 1984, 0, 0, 1),
gsSPLight(&waluigi_black_lights_group.l, 1),
gsSPCopyLightEXT(2, 15),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, waluigi_texture_metal_shade),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 2047, 128),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0),
gsDPSetTileSize(0, 0, 0, 252, 124),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, waluigi_texture_metal_light),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 512, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(6, 0, 0, 2047, 128),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0),
gsDPSetTileSize(1, 0, 0, 252, 124),
gsSPDisplayList(waluigi_left_thigh_dl),
gsSPEndDisplayList(),
};
static const Vtx waluigi_left_leg_shared_dl_vertex[12] = {
{{ {188, -2, 5}, 0, {0, 0}, {127, 0, 255, 255} }},
{{ {181, 42, 34}, 0, {0, 0}, {65, 88, 65, 255} }},
{{ {181, -18, 52}, 0, {0, 0}, {65, 224, 104, 255} }},
{{ {181, 42, -16}, 0, {0, 0}, {66, 91, 196, 255} }},
{{ {181, -18, -40}, 0, {0, 0}, {65, 229, 151, 255} }},
{{ {181, -56, 5}, 0, {0, 0}, {64, 146, 255, 255} }},
{{ {12, -36, 5}, 0, {0, 0}, {192, 146, 1, 255} }},
{{ {12, -12, 32}, 0, {0, 0}, {194, 225, 106, 255} }},
{{ {12, 26, 21}, 0, {0, 0}, {193, 89, 65, 255} }},
{{ {12, 26, -11}, 0, {0, 0}, {194, 90, 191, 255} }},
{{ {12, -12, -23}, 0, {0, 0}, {195, 225, 149, 255} }},
{{ {-5, -2, 5}, 0, {0, 0}, {129, 0, 1, 255} }},
};
const Gfx waluigi_left_leg_shared_dl[] = {
gsSPVertex(waluigi_left_leg_shared_dl_vertex + 0, 12, 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(2, 6, 5, 0),
gsSP1Triangle(7, 6, 2, 0),
gsSP1Triangle(7, 2, 8, 0),
gsSP1Triangle(1, 8, 2, 0),
gsSP1Triangle(8, 1, 9, 0),
gsSP1Triangle(3, 9, 1, 0),
gsSP1Triangle(4, 9, 3, 0),
gsSP1Triangle(10, 9, 4, 0),
gsSP1Triangle(10, 4, 6, 0),
gsSP1Triangle(5, 6, 4, 0),
gsSP1Triangle(11, 10, 6, 0),
gsSP1Triangle(11, 9, 10, 0),
gsSP1Triangle(11, 8, 9, 0),
gsSP1Triangle(11, 7, 8, 0),
gsSP1Triangle(11, 6, 7, 0),
gsSPEndDisplayList(),
};
static const Vtx waluigi_left_foot_shared_dl_vertex[38] = {
{{ {110, 9, 32}, 0, {0, 0}, {43, 120, 0, 0} }},
{{ {110, 9, -25}, 0, {0, 0}, {43, 120, 0, 0} }},
{{ {82, 19, -40}, 0, {0, 0}, {43, 120, 0, 0} }},
{{ {82, 19, 52}, 0, {0, 0}, {43, 120, 0, 0} }},
{{ {1, 48, -32}, 0, {0, 0}, {43, 119, 0, 0} }},
{{ {1, 48, 45}, 0, {0, 0}, {43, 119, 0, 0} }},
{{ {-29, 59, -11}, 0, {0, 0}, {44, 119, 0, 0} }},
{{ {-29, 59, 20}, 0, {0, 0}, {44, 119, 0, 0} }},
{{ {69, -9, -32}, 0, {0, 0}, {241, 192, 147, 0} }},
{{ {1, 48, -32}, 0, {0, 0}, {211, 242, 138, 0} }},
{{ {82, 19, -40}, 0, {0, 0}, {8, 223, 134, 0} }},
{{ {-19, 12, -20}, 0, {0, 0}, {189, 195, 167, 0} }},
{{ {45, -27, 7}, 0, {0, 0}, {214, 136, 0, 0} }},
{{ {87, -33, -16}, 0, {0, 0}, {233, 166, 170, 0} }},
{{ {117, -22, -16}, 0, {0, 0}, {102, 220, 190, 0} }},
{{ {110, 9, -25}, 0, {0, 0}, {95, 253, 171, 0} }},
{{ {110, 9, -25}, 0, {0, 0}, {95, 253, 171, 0} }},
{{ {117, -22, 24}, 0, {0, 0}, {104, 219, 62, 0} }},
{{ {117, -22, -16}, 0, {0, 0}, {102, 220, 190, 0} }},
{{ {110, 9, 32}, 0, {0, 0}, {103, 4, 74, 0} }},
{{ {82, 19, 52}, 0, {0, 0}, {20, 231, 123, 0} }},
{{ {69, -9, 47}, 0, {0, 0}, {250, 192, 109, 0} }},
{{ {1, 48, 45}, 0, {0, 0}, {210, 253, 118, 0} }},
{{ {-19, 12, 36}, 0, {0, 0}, {183, 199, 87, 0} }},
{{ {-29, 59, 20}, 0, {0, 0}, {141, 15, 52, 0} }},
{{ {-37, 14, 3}, 0, {0, 0}, {142, 201, 248, 0} }},
{{ {-29, 59, -11}, 0, {0, 0}, {144, 11, 197, 0} }},
{{ {-19, 12, -20}, 0, {0, 0}, {189, 195, 167, 0} }},
{{ {1, 48, -32}, 0, {0, 0}, {211, 242, 138, 0} }},
{{ {45, -27, 7}, 0, {0, 0}, {214, 136, 0, 0} }},
{{ {87, -33, 24}, 0, {0, 0}, {238, 157, 78, 0} }},
{{ {87, -33, -16}, 0, {0, 0}, {233, 166, 170, 0} }},
{{ {87, -33, 24}, 0, {0, 0}, {238, 157, 78, 0} }},
{{ {87, -33, -16}, 0, {0, 0}, {233, 166, 170, 0} }},
{{ {94, -61, 3}, 0, {0, 0}, {240, 130, 253, 0} }},
{{ {117, -22, -16}, 0, {0, 0}, {102, 220, 190, 0} }},
{{ {117, -22, 24}, 0, {0, 0}, {104, 219, 62, 0} }},
{{ {69, -9, 47}, 0, {0, 0}, {250, 192, 109, 0} }},
};
const Gfx waluigi_left_foot_shared_dl[] = {
gsSPVertex(waluigi_left_foot_shared_dl_vertex + 0, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(3, 0, 2, 0),
gsSP1Triangle(3, 2, 4, 0),
gsSP1Triangle(5, 3, 4, 0),
gsSP1Triangle(5, 4, 6, 0),
gsSP1Triangle(5, 6, 7, 0),
gsSP1Triangle(8, 9, 10, 0),
gsSP1Triangle(8, 11, 9, 0),
gsSP1Triangle(11, 8, 12, 0),
gsSP1Triangle(8, 13, 12, 0),
gsSP1Triangle(14, 13, 8, 0),
gsSP1Triangle(14, 8, 10, 0),
gsSP1Triangle(15, 14, 10, 0),
gsSPVertex(waluigi_left_foot_shared_dl_vertex + 16, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(0, 3, 1, 0),
gsSP1Triangle(1, 3, 4, 0),
gsSP1Triangle(5, 1, 4, 0),
gsSP1Triangle(5, 4, 6, 0),
gsSP1Triangle(7, 5, 6, 0),
gsSP1Triangle(7, 6, 8, 0),
gsSP1Triangle(8, 9, 7, 0),
gsSP1Triangle(9, 8, 10, 0),
gsSP1Triangle(10, 11, 9, 0),
gsSP1Triangle(10, 12, 11, 0),
gsSP1Triangle(9, 11, 13, 0),
gsSP1Triangle(13, 7, 9, 0),
gsSP1Triangle(13, 5, 7, 0),
gsSP1Triangle(5, 13, 14, 0),
gsSP1Triangle(15, 14, 13, 0),
gsSPVertex(waluigi_left_foot_shared_dl_vertex + 32, 6, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(3, 2, 1, 0),
gsSP1Triangle(2, 3, 4, 0),
gsSP1Triangle(0, 2, 4, 0),
gsSP1Triangle(5, 0, 4, 0),
gsSPEndDisplayList(),
};
const Gfx waluigi_left_foot[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPCopyLightsPlayerPart(SHOES),
gsSPDisplayList(waluigi_left_foot_shared_dl),
gsSPEndDisplayList(),
};
static const Vtx waluigi_right_thigh_shared_dl_vertex[25] = {
{{ {-2, -13, 33}, 0, {0, 0}, {172, 235, 93, 255} }},
{{ {-2, -49, -3}, 0, {0, 0}, {173, 160, 0, 255} }},
{{ {16, -17, 40}, 0, {0, 0}, {239, 220, 120, 255} }},
{{ {-17, 1, -3}, 0, {0, 0}, {129, 1, 1, 255} }},
{{ {-2, 40, 18}, 0, {0, 0}, {171, 76, 55, 255} }},
{{ {16, 46, 24}, 0, {0, 0}, {238, 99, 78, 255} }},
{{ {187, 27, 12}, 0, {0, 0}, {69, 86, 63, 255} }},
{{ {187, -10, 24}, 0, {0, 0}, {68, 226, 103, 255} }},
{{ {187, -34, -5}, 0, {0, 0}, {69, 149, 0, 255} }},
{{ {16, -56, -3}, 0, {0, 0}, {242, 130, 0, 255} }},
{{ {16, -17, -46}, 0, {0, 0}, {240, 219, 136, 255} }},
{{ {-2, -13, -40}, 0, {0, 0}, {174, 233, 162, 255} }},
{{ {-2, 40, -26}, 0, {0, 0}, {175, 76, 195, 255} }},
{{ {16, 46, -29}, 0, {0, 0}, {242, 102, 181, 255} }},
{{ {187, 27, -23}, 0, {0, 0}, {68, 85, 191, 255} }},
{{ {198, 0, -5}, 0, {0, 0}, {127, 0, 0, 255} }},
{{ {198, 0, -5}, 0, {0, 0}, {127, 0, 0, 255} }},
{{ {187, -34, -5}, 0, {0, 0}, {69, 149, 0, 255} }},
{{ {187, -10, -34}, 0, {0, 0}, {67, 225, 153, 255} }},
{{ {16, -17, -46}, 0, {0, 0}, {240, 219, 136, 255} }},
{{ {16, -56, -3}, 0, {0, 0}, {242, 130, 0, 255} }},
{{ {187, 27, -23}, 0, {0, 0}, {68, 85, 191, 255} }},
{{ {16, 46, -29}, 0, {0, 0}, {242, 102, 181, 255} }},
{{ {-2, 40, -26}, 0, {0, 0}, {175, 76, 195, 255} }},
{{ {-2, -13, -40}, 0, {0, 0}, {174, 233, 162, 255} }},
};
const Gfx waluigi_right_thigh_shared_dl[] = {
gsSPVertex(waluigi_right_thigh_shared_dl_vertex + 0, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(3, 1, 0, 0),
gsSP1Triangle(3, 0, 4, 0),
gsSP1Triangle(0, 2, 4, 0),
gsSP1Triangle(4, 2, 5, 0),
gsSP1Triangle(2, 6, 5, 0),
gsSP1Triangle(7, 6, 2, 0),
gsSP1Triangle(7, 2, 8, 0),
gsSP1Triangle(9, 8, 2, 0),
gsSP1Triangle(1, 9, 2, 0),
gsSP1Triangle(1, 10, 9, 0),
gsSP1Triangle(11, 10, 1, 0),
gsSP1Triangle(3, 11, 1, 0),
gsSP1Triangle(3, 12, 11, 0),
gsSP1Triangle(3, 4, 12, 0),
gsSP1Triangle(12, 4, 13, 0),
gsSP1Triangle(4, 5, 13, 0),
gsSP1Triangle(5, 14, 13, 0),
gsSP1Triangle(6, 14, 5, 0),
gsSP1Triangle(15, 14, 6, 0),
gsSP1Triangle(15, 6, 7, 0),
gsSP1Triangle(15, 7, 8, 0),
gsSPVertex(waluigi_right_thigh_shared_dl_vertex + 16, 9, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(2, 1, 3, 0),
gsSP1Triangle(3, 1, 4, 0),
gsSP1Triangle(2, 3, 5, 0),
gsSP1Triangle(6, 5, 3, 0),
gsSP1Triangle(7, 6, 3, 0),
gsSP1Triangle(8, 7, 3, 0),
gsSP1Triangle(0, 2, 5, 0),
gsSPEndDisplayList(),
};
const Gfx waluigi_right_thigh[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPCopyLightsPlayerPart(PANTS), // gsSPLight(&waluigi_blue_lights_group.a, 2),
gsSPDisplayList(waluigi_right_thigh_shared_dl),
gsSPEndDisplayList(),
};
static const Vtx waluigi_right_leg_shared_dl_vertex[22] = {
{{ {181, 42, -34}, 0, {0, 0}, {243, 36, 135, 255} }},
{{ {181, -18, -52}, 0, {0, 0}, {243, 36, 135, 255} }},
{{ {12, 26, -21}, 0, {0, 0}, {193, 89, 191, 255} }},
{{ {12, -12, -32}, 0, {0, 0}, {194, 225, 150, 255} }},
{{ {-5, -2, -5}, 0, {0, 0}, {129, 0, 255, 255} }},
{{ {12, -36, -5}, 0, {0, 0}, {192, 146, 255, 255} }},
{{ {181, -18, -52}, 0, {0, 0}, {244, 158, 176, 255} }},
{{ {181, -56, -5}, 0, {0, 0}, {244, 158, 176, 255} }},
{{ {12, -12, 23}, 0, {0, 0}, {195, 225, 107, 255} }},
{{ {181, -18, 40}, 0, {0, 0}, {245, 159, 82, 255} }},
{{ {181, -56, -5}, 0, {0, 0}, {245, 159, 82, 255} }},
{{ {12, 26, 11}, 0, {0, 0}, {194, 90, 65, 255} }},
{{ {181, -18, 40}, 0, {0, 0}, {248, 46, 118, 255} }},
{{ {181, 42, 16}, 0, {0, 0}, {248, 47, 118, 255} }},
{{ {181, 42, -34}, 0, {0, 0}, {244, 126, 0, 255} }},
{{ {181, 42, 16}, 0, {0, 0}, {244, 126, 0, 255} }},
{{ {188, -2, -5}, 0, {0, 0}, {127, 0, 1, 255} }},
{{ {181, -18, -52}, 0, {0, 0}, {126, 251, 239, 255} }},
{{ {181, 42, -34}, 0, {0, 0}, {126, 14, 246, 255} }},
{{ {181, -56, -5}, 0, {0, 0}, {126, 240, 0, 255} }},
{{ {181, -18, 40}, 0, {0, 0}, {126, 251, 18, 255} }},
{{ {181, 42, 16}, 0, {0, 0}, {126, 15, 10, 255} }},
};
const Gfx waluigi_right_leg_shared_dl[] = {
gsSPVertex(waluigi_right_leg_shared_dl_vertex + 0, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(3, 2, 1, 0),
gsSP1Triangle(4, 2, 3, 0),
gsSP1Triangle(4, 3, 5, 0),
gsSP1Triangle(3, 6, 5, 0),
gsSP1Triangle(6, 7, 5, 0),
gsSP1Triangle(4, 5, 8, 0),
gsSP1Triangle(8, 5, 9, 0),
gsSP1Triangle(10, 9, 5, 0),
gsSP1Triangle(4, 8, 11, 0),
gsSP1Triangle(8, 12, 11, 0),
gsSP1Triangle(12, 13, 11, 0),
gsSP1Triangle(4, 11, 2, 0),
gsSP1Triangle(2, 11, 14, 0),
gsSP1Triangle(15, 14, 11, 0),
gsSPVertex(waluigi_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 waluigi_right_foot_dl_vertex[40] = {
{{ {110, 9, -32}, 0, {0, 0}, {43, 120, 0, 0} }},
{{ {82, 19, 40}, 0, {0, 0}, {43, 120, 0, 0} }},
{{ {110, 9, 25}, 0, {0, 0}, {43, 120, 0, 0} }},
{{ {82, 19, -52}, 0, {0, 0}, {43, 120, 0, 0} }},
{{ {1, 48, 32}, 0, {0, 0}, {43, 119, 0, 0} }},
{{ {1, 48, -45}, 0, {0, 0}, {43, 119, 0, 0} }},
{{ {-29, 59, 11}, 0, {0, 0}, {44, 119, 0, 0} }},
{{ {-29, 59, -20}, 0, {0, 0}, {44, 119, 0, 0} }},
{{ {69, -9, 32}, 0, {0, 0}, {241, 192, 109, 0} }},
{{ {82, 19, 40}, 0, {0, 0}, {8, 223, 122, 0} }},
{{ {1, 48, 32}, 0, {0, 0}, {211, 242, 118, 0} }},
{{ {117, -22, 16}, 0, {0, 0}, {102, 220, 66, 0} }},
{{ {87, -33, 16}, 0, {0, 0}, {233, 166, 86, 0} }},
{{ {45, -27, -7}, 0, {0, 0}, {214, 136, 0, 0} }},
{{ {-19, 12, 20}, 0, {0, 0}, {189, 195, 89, 0} }},
{{ {-29, 59, 11}, 0, {0, 0}, {144, 11, 59, 0} }},
{{ {-29, 59, 11}, 0, {0, 0}, {144, 11, 59, 0} }},
{{ {-37, 14, -3}, 0, {0, 0}, {142, 201, 8, 0} }},
{{ {-19, 12, 20}, 0, {0, 0}, {189, 195, 89, 0} }},
{{ {-29, 59, -20}, 0, {0, 0}, {141, 15, 204, 0} }},
{{ {-19, 12, -36}, 0, {0, 0}, {183, 199, 169, 0} }},
{{ {1, 48, -45}, 0, {0, 0}, {210, 253, 138, 0} }},
{{ {69, -9, -47}, 0, {0, 0}, {250, 192, 147, 0} }},
{{ {82, 19, -52}, 0, {0, 0}, {20, 231, 133, 0} }},
{{ {117, -22, -24}, 0, {0, 0}, {104, 219, 194, 0} }},
{{ {110, 9, -32}, 0, {0, 0}, {103, 4, 182, 0} }},
{{ {110, 9, 25}, 0, {0, 0}, {95, 253, 85, 0} }},
{{ {117, -22, 16}, 0, {0, 0}, {102, 220, 66, 0} }},
{{ {82, 19, 40}, 0, {0, 0}, {8, 223, 122, 0} }},
{{ {94, -61, -3}, 0, {0, 0}, {240, 130, 3, 0} }},
{{ {87, -33, -24}, 0, {0, 0}, {238, 157, 178, 0} }},
{{ {87, -33, 16}, 0, {0, 0}, {233, 166, 86, 0} }},
{{ {87, -33, 16}, 0, {0, 0}, {233, 166, 86, 0} }},
{{ {45, -27, -7}, 0, {0, 0}, {214, 136, 0, 0} }},
{{ {87, -33, -24}, 0, {0, 0}, {238, 157, 178, 0} }},
{{ {69, -9, -47}, 0, {0, 0}, {250, 192, 147, 0} }},
{{ {-19, 12, -36}, 0, {0, 0}, {183, 199, 169, 0} }},
{{ {-37, 14, -3}, 0, {0, 0}, {142, 201, 8, 0} }},
{{ {-19, 12, 20}, 0, {0, 0}, {189, 195, 89, 0} }},
{{ {117, -22, -24}, 0, {0, 0}, {104, 219, 194, 0} }},
};
const Gfx waluigi_right_foot_dl[] = {
gsSPVertex(waluigi_right_foot_dl_vertex + 0, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(3, 1, 0, 0),
gsSP1Triangle(3, 4, 1, 0),
gsSP1Triangle(5, 4, 3, 0),
gsSP1Triangle(5, 6, 4, 0),
gsSP1Triangle(5, 7, 6, 0),
gsSP1Triangle(8, 9, 10, 0),
gsSP1Triangle(11, 9, 8, 0),
gsSP1Triangle(11, 8, 12, 0),
gsSP1Triangle(8, 13, 12, 0),
gsSP1Triangle(14, 13, 8, 0),
gsSP1Triangle(8, 10, 14, 0),
gsSP1Triangle(15, 14, 10, 0),
gsSPVertex(waluigi_right_foot_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(4, 5, 6, 0),
gsSP1Triangle(6, 5, 7, 0),
gsSP1Triangle(6, 7, 8, 0),
gsSP1Triangle(8, 7, 9, 0),
gsSP1Triangle(10, 8, 9, 0),
gsSP1Triangle(10, 11, 8, 0),
gsSP1Triangle(10, 12, 11, 0),
gsSP1Triangle(13, 8, 11, 0),
gsSP1Triangle(14, 8, 13, 0),
gsSP1Triangle(14, 13, 15, 0),
gsSP1Triangle(11, 15, 13, 0),
gsSPVertex(waluigi_right_foot_dl_vertex + 32, 8, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(3, 2, 1, 0),
gsSP1Triangle(1, 4, 3, 0),
gsSP1Triangle(1, 5, 4, 0),
gsSP1Triangle(5, 1, 6, 0),
gsSP1Triangle(3, 7, 2, 0),
gsSPEndDisplayList(),
};
const Gfx waluigi_right_foot[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPCopyLightsPlayerPart(SHOES),
gsSPDisplayList(waluigi_right_foot_dl),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsDPSetEnvColor(255, 255, 255, 255),
gsDPSetAlphaCompare(G_AC_NONE),
gsSPEndDisplayList(),
};
const Gfx waluigi_metal_right_foot[] = {
gsSPDisplayList(waluigi_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 waluigi_yellow_button_dl_vertex[14] = {
{{ {34, 88, -36}, 0, {809, 950}, {19, 122, 228, 0} }},
{{ {52, 85, -26}, 0, {1056, 582}, {40, 120, 240, 0} }},
{{ {75, 74, -32}, 0, {950, 35}, {72, 102, 232, 0} }},
{{ {25, 81, -58}, 0, {291, 1048}, {254, 104, 184, 0} }},
{{ {40, 70, -70}, 0, {36, 651}, {15, 84, 162, 0} }},
{{ {57, 64, -69}, 0, {81, 270}, {43, 77, 165, 0} }},
{{ {75, 64, -55}, 0, {427, -70}, {72, 85, 196, 0} }},
{{ {52, 85, 26}, 0, {-36, 628}, {40, 120, 16, 0} }},
{{ {34, 88, 36}, 0, {236, 979}, {19, 122, 28, 0} }},
{{ {75, 74, 32}, 0, {32, 73}, {72, 102, 24, 0} }},
{{ {25, 81, 58}, 0, {761, 1041}, {254, 104, 72, 0} }},
{{ {40, 70, 70}, 0, {989, 627}, {15, 84, 94, 0} }},
{{ {57, 64, 69}, 0, {918, 248}, {43, 77, 91, 0} }},
{{ {75, 64, 55}, 0, {548, -67}, {72, 85, 60, 0} }},
};
static const Vtx waluigi_tshirt_shared_dl_vertex[31] = {
{{ {75, 74, 32}, 0, {0, 0}, {72, 102, 24, 0} }},
{{ {113, 30, 25}, 0, {0, 0}, {106, 65, 24, 0} }},
{{ {75, 74, -32}, 0, {0, 0}, {72, 102, 232, 0} }},
{{ {113, 30, -25}, 0, {0, 0}, {106, 65, 232, 0} }},
{{ {131, -9, 22}, 0, {0, 0}, {124, 11, 25, 0} }},
{{ {131, -9, -22}, 0, {0, 0}, {124, 11, 231, 0} }},
{{ {121, -45, 25}, 0, {0, 0}, {99, 179, 20, 0} }},
{{ {121, -45, -25}, 0, {0, 0}, {99, 179, 236, 0} }},
{{ {76, -69, 0}, 0, {0, 0}, {31, 133, 0, 0} }},
{{ {34, 33, -85}, 0, {0, 0}, {2, 25, 131, 0} }},
{{ {69, 50, -70}, 0, {0, 0}, {59, 45, 153, 0} }},
{{ {70, 0, -82}, 0, {0, 0}, {40, 4, 136, 0} }},
{{ {109, 6, -58}, 0, {0, 0}, {92, 30, 174, 0} }},
{{ {111, -37, -59}, 0, {0, 0}, {84, 209, 173, 0} }},
{{ {68, -37, -77}, 0, {0, 0}, {26, 203, 144, 0} }},
{{ {92, -57, -47}, 0, {0, 0}, {44, 147, 207, 0} }},
{{ {92, -57, -47}, 0, {0, 0}, {44, 147, 207, 0} }},
{{ {38, -61, -63}, 0, {0, 0}, {253, 156, 178, 0} }},
{{ {68, -37, -77}, 0, {0, 0}, {26, 203, 144, 0} }},
{{ {25, -9, -86}, 0, {0, 0}, {241, 233, 132, 0} }},
{{ {70, 0, -82}, 0, {0, 0}, {40, 4, 136, 0} }},
{{ {34, 33, -85}, 0, {0, 0}, {2, 25, 131, 0} }},
{{ {25, -9, 86}, 0, {0, 0}, {241, 233, 124, 0} }},
{{ {70, 0, 82}, 0, {0, 0}, {40, 4, 120, 0} }},
{{ {34, 33, 85}, 0, {0, 0}, {2, 25, 125, 0} }},
{{ {68, -37, 77}, 0, {0, 0}, {26, 203, 112, 0} }},
{{ {38, -61, 63}, 0, {0, 0}, {253, 156, 78, 0} }},
{{ {92, -57, 47}, 0, {0, 0}, {44, 147, 49, 0} }},
{{ {111, -37, 59}, 0, {0, 0}, {84, 209, 83, 0} }},
{{ {109, 6, 58}, 0, {0, 0}, {92, 30, 82, 0} }},
{{ {69, 50, 70}, 0, {0, 0}, {59, 45, 103, 0} }},
};
static const Vtx waluigi_pants_overalls_shared_dl_vertex[98] = {
{{ {52, 85, -26}, 0, {0, 0}, {40, 120, 240, 0} }},
{{ {34, 88, -36}, 0, {0, 0}, {19, 122, 228, 0} }},
{{ {52, 85, 26}, 0, {0, 0}, {40, 120, 16, 0} }},
{{ {34, 88, 36}, 0, {0, 0}, {19, 122, 28, 0} }},
{{ {-17, 88, 28}, 0, {0, 0}, {232, 120, 34, 0} }},
{{ {-17, 88, -28}, 0, {0, 0}, {232, 120, 222, 0} }},
{{ {25, 81, -58}, 0, {0, 0}, {254, 104, 184, 0} }},
{{ {-32, 60, -57}, 0, {0, 0}, {201, 62, 160, 0} }},
{{ {15, 50, -77}, 0, {0, 0}, {231, 49, 141, 0} }},
{{ {40, 70, -70}, 0, {0, 0}, {15, 84, 162, 0} }},
{{ {34, 33, -85}, 0, {0, 0}, {2, 25, 131, 0} }},
{{ {57, 64, -69}, 0, {0, 0}, {43, 77, 165, 0} }},
{{ {69, 50, -70}, 0, {0, 0}, {59, 45, 153, 0} }},
{{ {75, 64, -55}, 0, {0, 0}, {72, 85, 196, 0} }},
{{ {109, 6, -58}, 0, {0, 0}, {92, 30, 174, 0} }},
{{ {113, 30, -25}, 0, {0, 0}, {106, 65, 232, 0} }},
{{ {75, 74, -32}, 0, {0, 0}, {72, 102, 232, 0} }},
{{ {113, 30, -25}, 0, {0, 0}, {106, 65, 232, 0} }},
{{ {75, 64, -55}, 0, {0, 0}, {72, 85, 196, 0} }},
{{ {131, -9, -22}, 0, {0, 0}, {124, 11, 231, 0} }},
{{ {109, 6, -58}, 0, {0, 0}, {92, 30, 174, 0} }},
{{ {111, -37, -59}, 0, {0, 0}, {84, 209, 173, 0} }},
{{ {121, -45, -25}, 0, {0, 0}, {99, 179, 236, 0} }},
{{ {92, -57, -47}, 0, {0, 0}, {44, 147, 207, 0} }},
{{ {76, -69, 0}, 0, {0, 0}, {31, 133, 0, 0} }},
{{ {38, -61, -63}, 0, {0, 0}, {253, 156, 178, 0} }},
{{ {24, -74, 0}, 0, {0, 0}, {244, 130, 0, 0} }},
{{ {38, -61, 63}, 0, {0, 0}, {253, 156, 78, 0} }},
{{ {92, -57, 47}, 0, {0, 0}, {44, 147, 49, 0} }},
{{ {121, -45, 25}, 0, {0, 0}, {99, 179, 20, 0} }},
{{ {111, -37, 59}, 0, {0, 0}, {84, 209, 83, 0} }},
{{ {131, -9, 22}, 0, {0, 0}, {124, 11, 25, 0} }},
{{ {111, -37, 59}, 0, {0, 0}, {84, 209, 83, 0} }},
{{ {131, -9, 22}, 0, {0, 0}, {124, 11, 25, 0} }},
{{ {109, 6, 58}, 0, {0, 0}, {92, 30, 82, 0} }},
{{ {113, 30, 25}, 0, {0, 0}, {106, 65, 24, 0} }},
{{ {75, 64, 55}, 0, {0, 0}, {72, 85, 60, 0} }},
{{ {75, 74, 32}, 0, {0, 0}, {72, 102, 24, 0} }},
{{ {69, 50, 70}, 0, {0, 0}, {59, 45, 103, 0} }},
{{ {57, 64, 69}, 0, {0, 0}, {43, 77, 91, 0} }},
{{ {34, 33, 85}, 0, {0, 0}, {2, 25, 125, 0} }},
{{ {40, 70, 70}, 0, {0, 0}, {15, 84, 94, 0} }},
{{ {15, 50, 77}, 0, {0, 0}, {231, 49, 115, 0} }},
{{ {25, 81, 58}, 0, {0, 0}, {254, 104, 72, 0} }},
{{ {-32, 60, 57}, 0, {0, 0}, {201, 62, 96, 0} }},
{{ {-17, 88, 28}, 0, {0, 0}, {232, 120, 34, 0} }},
{{ {34, 88, 36}, 0, {0, 0}, {19, 122, 28, 0} }},
{{ {-43, 72, 42}, 0, {0, 0}, {193, 81, 75, 0} }},
{{ {-32, 60, 57}, 0, {0, 0}, {201, 62, 96, 0} }},
{{ {-43, 72, 42}, 0, {0, 0}, {193, 81, 75, 0} }},
{{ {-67, 58, 23}, 0, {0, 0}, {142, 43, 36, 0} }},
{{ {-44, 80, 19}, 0, {0, 0}, {192, 109, 16, 0} }},
{{ {-17, 88, 28}, 0, {0, 0}, {232, 120, 34, 0} }},
{{ {-44, 80, -19}, 0, {0, 0}, {192, 109, 240, 0} }},
{{ {-17, 88, -28}, 0, {0, 0}, {232, 120, 222, 0} }},
{{ {-43, 72, -42}, 0, {0, 0}, {193, 81, 181, 0} }},
{{ {-32, 60, -57}, 0, {0, 0}, {201, 62, 160, 0} }},
{{ {-67, 58, -23}, 0, {0, 0}, {142, 43, 220, 0} }},
{{ {-31, 29, -70}, 0, {0, 0}, {189, 17, 149, 0} }},
{{ {15, 50, -77}, 0, {0, 0}, {231, 49, 141, 0} }},
{{ {34, 33, -85}, 0, {0, 0}, {2, 25, 131, 0} }},
{{ {25, -9, -86}, 0, {0, 0}, {241, 233, 132, 0} }},
{{ {-34, -14, -68}, 0, {0, 0}, {183, 222, 158, 0} }},
{{ {38, -61, -63}, 0, {0, 0}, {253, 156, 178, 0} }},
{{ {-10, -60, -50}, 0, {0, 0}, {206, 156, 196, 0} }},
{{ {-34, -14, -68}, 0, {0, 0}, {183, 222, 158, 0} }},
{{ {38, -61, -63}, 0, {0, 0}, {253, 156, 178, 0} }},
{{ {24, -74, 0}, 0, {0, 0}, {244, 130, 0, 0} }},
{{ {-39, -49, 0}, 0, {0, 0}, {173, 160, 0, 0} }},
{{ {-10, -60, 50}, 0, {0, 0}, {206, 156, 60, 0} }},
{{ {38, -61, 63}, 0, {0, 0}, {253, 156, 78, 0} }},
{{ {-34, -14, 68}, 0, {0, 0}, {183, 222, 98, 0} }},
{{ {25, -9, 86}, 0, {0, 0}, {241, 233, 124, 0} }},
{{ {-31, 29, 70}, 0, {0, 0}, {189, 17, 107, 0} }},
{{ {34, 33, 85}, 0, {0, 0}, {2, 25, 125, 0} }},
{{ {15, 50, 77}, 0, {0, 0}, {231, 49, 115, 0} }},
{{ {-32, 60, 57}, 0, {0, 0}, {201, 62, 96, 0} }},
{{ {-67, 58, 23}, 0, {0, 0}, {142, 43, 36, 0} }},
{{ {-62, -12, 30}, 0, {0, 0}, {142, 217, 40, 0} }},
{{ {-67, 58, -23}, 0, {0, 0}, {142, 43, 220, 0} }},
{{ {-67, 58, -23}, 0, {0, 0}, {142, 43, 220, 0} }},
{{ {-67, 58, 23}, 0, {0, 0}, {142, 43, 36, 0} }},
{{ {-44, 80, 19}, 0, {0, 0}, {192, 109, 16, 0} }},
{{ {-44, 80, -19}, 0, {0, 0}, {192, 109, 240, 0} }},
{{ {-43, 72, -42}, 0, {0, 0}, {193, 81, 181, 0} }},
{{ {-62, -12, -30}, 0, {0, 0}, {142, 217, 216, 0} }},
{{ {-62, -12, 30}, 0, {0, 0}, {142, 217, 40, 0} }},
{{ {-39, -49, 0}, 0, {0, 0}, {173, 160, 0, 0} }},
{{ {-10, -60, -50}, 0, {0, 0}, {206, 156, 196, 0} }},
{{ {-34, -14, -68}, 0, {0, 0}, {183, 222, 158, 0} }},
{{ {-31, 29, -70}, 0, {0, 0}, {189, 17, 149, 0} }},
{{ {-10, -60, 50}, 0, {0, 0}, {206, 156, 60, 0} }},
{{ {-34, -14, 68}, 0, {0, 0}, {183, 222, 98, 0} }},
{{ {-31, 29, 70}, 0, {0, 0}, {189, 17, 107, 0} }},
{{ {52, 85, -26}, 0, {0, 0}, {40, 120, 240, 0} }},
{{ {52, 85, 26}, 0, {0, 0}, {40, 120, 16, 0} }},
{{ {75, 74, -32}, 0, {0, 0}, {72, 102, 232, 0} }},
{{ {75, 74, 32}, 0, {0, 0}, {72, 102, 24, 0} }},
};
const Gfx waluigi_yellow_button_dl[] = {
gsSPVertex(waluigi_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 waluigi_pants_overalls_shared_dl[] = {
gsSPVertex(waluigi_pants_overalls_shared_dl_vertex + 0, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(2, 1, 3, 0),
gsSP1Triangle(1, 4, 3, 0),
gsSP1Triangle(5, 4, 1, 0),
gsSP1Triangle(6, 5, 1, 0),
gsSP1Triangle(6, 7, 5, 0),
gsSP1Triangle(6, 8, 7, 0),
gsSP1Triangle(6, 9, 8, 0),
gsSP1Triangle(8, 9, 10, 0),
gsSP1Triangle(9, 11, 10, 0),
gsSP1Triangle(11, 12, 10, 0),
gsSP1Triangle(12, 11, 13, 0),
gsSP1Triangle(12, 13, 14, 0),
gsSP1Triangle(14, 13, 15, 0),
gsSPVertex(waluigi_pants_overalls_shared_dl_vertex + 16, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(1, 3, 4, 0),
gsSP1Triangle(3, 5, 4, 0),
gsSP1Triangle(6, 5, 3, 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(12, 11, 8, 0),
gsSP1Triangle(12, 8, 13, 0),
gsSP1Triangle(13, 14, 12, 0),
gsSP1Triangle(13, 15, 14, 0),
gsSPVertex(waluigi_pants_overalls_shared_dl_vertex + 32, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(3, 2, 1, 0),
gsSP1Triangle(3, 4, 2, 0),
gsSP1Triangle(4, 3, 5, 0),
gsSP1Triangle(6, 2, 4, 0),
gsSP1Triangle(6, 4, 7, 0),
gsSP1Triangle(6, 7, 8, 0),
gsSP1Triangle(9, 8, 7, 0),
gsSP1Triangle(10, 8, 9, 0),
gsSP1Triangle(10, 9, 11, 0),
gsSP1Triangle(10, 11, 12, 0),
gsSP1Triangle(12, 11, 13, 0),
gsSP1Triangle(14, 13, 11, 0),
gsSP1Triangle(15, 12, 13, 0),
gsSPVertex(waluigi_pants_overalls_shared_dl_vertex + 48, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(3, 2, 1, 0),
gsSP1Triangle(4, 3, 1, 0),
gsSP1Triangle(3, 4, 5, 0),
gsSP1Triangle(6, 5, 4, 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(waluigi_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(waluigi_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),
gsSPVertex(waluigi_pants_overalls_shared_dl_vertex + 94, 4, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(1, 3, 2, 0),
gsSPEndDisplayList(),
};
const Gfx waluigi_tshirt_shared_dl[] = {
gsSPVertex(waluigi_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(11, 10, 12, 0),
gsSP1Triangle(11, 12, 13, 0),
gsSP1Triangle(14, 11, 13, 0),
gsSP1Triangle(14, 13, 15, 0),
gsSPVertex(waluigi_tshirt_shared_dl_vertex + 16, 15, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(2, 1, 3, 0),
gsSP1Triangle(4, 2, 3, 0),
gsSP1Triangle(5, 4, 3, 0),
gsSP1Triangle(6, 7, 8, 0),
gsSP1Triangle(7, 6, 9, 0),
gsSP1Triangle(9, 6, 10, 0),
gsSP1Triangle(11, 9, 10, 0),
gsSP1Triangle(9, 11, 12, 0),
gsSP1Triangle(9, 12, 7, 0),
gsSP1Triangle(7, 12, 13, 0),
gsSP1Triangle(7, 13, 14, 0),
gsSP1Triangle(7, 14, 8, 0),
gsSPEndDisplayList(),
};
const Gfx waluigi_torso_dl[] = {
gsSPDisplayList(waluigi_pants_overalls_shared_dl),
gsSPCopyLightsPlayerPart(SHIRT), // gsSPLight(&waluigi_green_lights_group.a, 2),
gsSPDisplayList(waluigi_tshirt_shared_dl),
gsSPEndDisplayList(),
};
const Gfx waluigi_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, waluigi_texture_yellow_button),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(waluigi_yellow_button_dl),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPDisplayList(waluigi_torso_dl),
gsSPEndDisplayList(),
};
const Gfx waluigi_metal_torso_shared_dl[] = {
gsSPDisplayList(waluigi_yellow_button_dl),
gsSPDisplayList(waluigi_pants_overalls_shared_dl),
gsSPDisplayList(waluigi_tshirt_shared_dl),
gsSPEndDisplayList(),
};
static const Vtx waluigi_r_logo_dl_vertex[7] = {
{{ {233, 101, -65}, 0, {-179, 79}, {45, 86, 175, 0} }},
{{ {149, 58, -70}, 0, {-591, 1094}, {233, 62, 148, 0} }},
{{ {177, 108, -31}, 0, {158, 752}, {57, 98, 199, 0} }},
{{ {250, 110, 0}, 0, {496, -98}, {75, 102, 0, 0} }},
{{ {177, 108, 31}, 0, {834, 752}, {57, 98, 57, 0} }},
{{ {233, 101, 65}, 0, {1171, 79}, {45, 86, 81, 0} }},
{{ {149, 58, 70}, 0, {1583, 1094}, {233, 62, 108, 0} }},
};
static const Vtx waluigi_eyes_cap_on_dl_vertex[8] = {
{{ {158, 101, 31}, 0, {1387, -25}, {146, 62, 15, 255} }},
{{ {87, 59, 70}, 0, {1961, 931}, {249, 62, 110, 255} }},
{{ {149, 58, 70}, 0, {1987, 117}, {233, 62, 108, 255} }},
{{ {93, 107, 0}, 0, {1014, 918}, {224, 123, 0, 255} }},
{{ {158, 101, -31}, 0, {578, -25}, {146, 62, 241, 255} }},
{{ {87, 59, -70}, 0, {66, 931}, {249, 62, 146, 255} }},
{{ {149, 58, -70}, 0, {41, 117}, {233, 62, 148, 255} }},
{{ {80, 101, 0}, 0, {1014, 1072}, {235, 125, 0, 255} }},
};
static const Vtx waluigi_hair_sideburn_cap_on_dl_vertex[12] = {
{{ {37, 38, 67}, 0, {88, 1295}, {207, 32, 113, 255} }},
{{ {25, -6, 70}, 0, {740, 1533}, {187, 254, 106, 255} }},
{{ {87, 59, 70}, 0, {-80, 554}, {249, 62, 110, 255} }},
{{ {85, -22, 83}, 0, {956, 760}, {1, 96, 83, 255} }},
{{ {125, -18, 85}, 0, {995, 239}, {235, 67, 106, 255} }},
{{ {149, 58, 70}, 0, {69, -244}, {233, 62, 108, 255} }},
{{ {87, 59, -70}, 0, {-80, 554}, {249, 62, 146, 255} }},
{{ {25, -6, -70}, 0, {740, 1533}, {187, 254, 150, 255} }},
{{ {37, 38, -67}, 0, {88, 1295}, {207, 32, 143, 255} }},
{{ {85, -22, -83}, 0, {956, 760}, {1, 96, 173, 255} }},
{{ {125, -18, -85}, 0, {995, 239}, {235, 67, 150, 255} }},
{{ {149, 58, -70}, 0, {69, -244}, {233, 62, 148, 255} }},
};
static const Vtx waluigi_mouth_cap_on_dl_vertex[26] = {
{{ {80, 101, 0}, 0, {1008, 279}, {235, 125, 0, 255} }},
{{ {63, 68, 64}, 0, {1676, 322}, {242, 80, 98, 255} }},
{{ {87, 59, 70}, 0, {1769, 103}, {249, 62, 110, 255} }},
{{ {34, 104, 0}, 0, {1008, 644}, {14, 126, 0, 255} }},
{{ {63, 68, -64}, 0, {340, 322}, {242, 80, 158, 255} }},
{{ {87, 59, -70}, 0, {247, 103}, {249, 62, 146, 255} }},
{{ {37, 38, -67}, 0, {142, 615}, {207, 32, 143, 255} }},
{{ {20, 65, -40}, 0, {469, 794}, {204, 44, 149, 255} }},
{{ {-7, 33, -30}, 0, {238, 1071}, {147, 240, 192, 255} }},
{{ {-39, 96, -22}, 0, {736, 1284}, {167, 26, 169, 255} }},
{{ {21, 81, -31}, 0, {645, 773}, {245, 84, 162, 255} }},
{{ {-37, 128, 0}, 0, {1008, 1309}, {199, 113, 0, 255} }},
{{ {21, 81, 31}, 0, {1371, 773}, {245, 84, 94, 255} }},
{{ {-39, 96, 22}, 0, {1280, 1284}, {167, 26, 87, 255} }},
{{ {20, 65, 40}, 0, {1547, 794}, {204, 44, 107, 255} }},
{{ {-7, 33, 30}, 0, {1778, 1071}, {147, 240, 64, 255} }},
{{ {-7, 33, 30}, 0, {1778, 1071}, {147, 240, 64, 255} }},
{{ {37, 38, 67}, 0, {1874, 615}, {207, 32, 113, 255} }},
{{ {20, 65, 40}, 0, {1547, 794}, {204, 44, 107, 255} }},
{{ {63, 68, 64}, 0, {1676, 322}, {242, 80, 98, 255} }},
{{ {87, 59, 70}, 0, {1769, 103}, {249, 62, 110, 255} }},
{{ {21, 81, 31}, 0, {1371, 773}, {245, 84, 94, 255} }},
{{ {34, 104, 0}, 0, {1008, 644}, {14, 126, 0, 255} }},
{{ {20, 65, -40}, 0, {469, 794}, {204, 44, 149, 255} }},
{{ {21, 81, -31}, 0, {645, 773}, {245, 84, 162, 255} }},
{{ {63, 68, -64}, 0, {340, 322}, {242, 80, 158, 255} }},
};
static const Vtx waluigi_face_cap_dl_vertex[44] = {
{{ {158, 101, -31}, 0, {0, 0}, {146, 62, 241, 0} }},
{{ {158, 101, 31}, 0, {0, 0}, {146, 62, 15, 0} }},
{{ {153, 166, 0}, 0, {0, 0}, {230, 124, 0, 0} }},
{{ {150, 136, 56}, 0, {0, 0}, {213, 73, 94, 0} }},
{{ {149, 58, 70}, 0, {0, 0}, {233, 62, 108, 0} }},
{{ {177, 108, 31}, 0, {0, 0}, {57, 98, 57, 0} }},
{{ {177, 108, -31}, 0, {0, 0}, {57, 98, 199, 0} }},
{{ {150, 136, -56}, 0, {0, 0}, {213, 73, 162, 0} }},
{{ {149, 58, -70}, 0, {0, 0}, {233, 62, 148, 0} }},
{{ {125, -18, -85}, 0, {0, 0}, {235, 67, 150, 0} }},
{{ {185, 21, -105}, 0, {0, 0}, {14, 11, 130, 0} }},
{{ {233, 101, -65}, 0, {0, 0}, {45, 86, 175, 0} }},
{{ {273, 35, -43}, 0, {0, 0}, {116, 235, 208, 0} }},
{{ {250, 110, 0}, 0, {0, 0}, {75, 102, 0, 0} }},
{{ {273, 35, 43}, 0, {0, 0}, {116, 235, 48, 0} }},
{{ {233, 101, 65}, 0, {0, 0}, {45, 86, 81, 0} }},
{{ {273, 35, 43}, 0, {0, 0}, {116, 235, 48, 0} }},
{{ {233, 101, 65}, 0, {0, 0}, {45, 86, 81, 0} }},
{{ {185, 21, 105}, 0, {0, 0}, {14, 11, 126, 0} }},
{{ {149, 58, 70}, 0, {0, 0}, {233, 62, 108, 0} }},
{{ {125, -18, 85}, 0, {0, 0}, {235, 67, 106, 0} }},
{{ {135, -41, 99}, 0, {0, 0}, {229, 232, 122, 0} }},
{{ {97, -52, 66}, 0, {0, 0}, {205, 190, 96, 0} }},
{{ {73, -89, 41}, 0, {0, 0}, {231, 146, 57, 0} }},
{{ {94, -120, 40}, 0, {0, 0}, {199, 156, 55, 0} }},
{{ {94, -120, -40}, 0, {0, 0}, {199, 156, 201, 0} }},
{{ {73, -89, -41}, 0, {0, 0}, {231, 146, 199, 0} }},
{{ {135, -41, -99}, 0, {0, 0}, {229, 232, 134, 0} }},
{{ {97, -52, -66}, 0, {0, 0}, {205, 190, 160, 0} }},
{{ {125, -18, -85}, 0, {0, 0}, {235, 67, 150, 0} }},
{{ {185, 21, -105}, 0, {0, 0}, {14, 11, 130, 0} }},
{{ {177, -66, -71}, 0, {0, 0}, {73, 178, 188, 0} }},
{{ {177, -66, -71}, 0, {0, 0}, {73, 178, 188, 0} }},
{{ {185, 21, -105}, 0, {0, 0}, {14, 11, 130, 0} }},
{{ {273, 35, -43}, 0, {0, 0}, {116, 235, 208, 0} }},
{{ {177, -66, 71}, 0, {0, 0}, {73, 178, 68, 0} }},
{{ {273, 35, 43}, 0, {0, 0}, {116, 235, 48, 0} }},
{{ {185, 21, 105}, 0, {0, 0}, {14, 11, 126, 0} }},
{{ {135, -41, 99}, 0, {0, 0}, {229, 232, 122, 0} }},
{{ {134, -124, 38}, 0, {0, 0}, {42, 145, 45, 0} }},
{{ {94, -120, 40}, 0, {0, 0}, {199, 156, 55, 0} }},
{{ {94, -120, -40}, 0, {0, 0}, {199, 156, 201, 0} }},
{{ {134, -124, -38}, 0, {0, 0}, {42, 145, 211, 0} }},
{{ {135, -41, -99}, 0, {0, 0}, {229, 232, 134, 0} }},
};
static const Vtx waluigi_face_part_cap_on_dl_vertex[35] = {
{{ {-39, 96, 22}, 0, {0, 0}, {167, 26, 87, 255} }},
{{ {-37, 128, 0}, 0, {0, 0}, {199, 113, 0, 255} }},
{{ {-39, 96, -22}, 0, {0, 0}, {167, 26, 169, 255} }},
{{ {-40, 78, 0}, 0, {0, 0}, {135, 216, 0, 255} }},
{{ {-7, 33, -30}, 0, {0, 0}, {147, 240, 192, 255} }},
{{ {-7, 33, 30}, 0, {0, 0}, {147, 240, 64, 255} }},
{{ {5, -37, -43}, 0, {0, 0}, {138, 248, 209, 255} }},
{{ {25, -6, -70}, 0, {0, 0}, {187, 254, 150, 255} }},
{{ {37, 38, -67}, 0, {0, 0}, {207, 32, 143, 255} }},
{{ {49, -34, -70}, 0, {0, 0}, {209, 202, 151, 255} }},
{{ {68, -22, -109}, 0, {0, 0}, {217, 24, 138, 255} }},
{{ {97, -52, -66}, 0, {0, 0}, {205, 190, 160, 255} }},
{{ {25, -6, 70}, 0, {0, 0}, {187, 254, 106, 255} }},
{{ {37, 38, 67}, 0, {0, 0}, {207, 32, 113, 255} }},
{{ {5, -37, 43}, 0, {0, 0}, {138, 248, 47, 255} }},
{{ {25, -6, 70}, 0, {0, 0}, {187, 254, 106, 0} }},
{{ {68, -22, 109}, 0, {0, 0}, {217, 24, 118, 0} }},
{{ {85, -22, 83}, 0, {0, 0}, {1, 96, 83, 0} }},
{{ {159, -32, 129}, 0, {0, 0}, {101, 253, 77, 0} }},
{{ {97, -52, 66}, 0, {0, 0}, {205, 190, 96, 0} }},
{{ {125, -18, 85}, 0, {0, 0}, {235, 67, 106, 0} }},
{{ {25, -6, 70}, 0, {0, 0}, {187, 254, 106, 255} }},
{{ {5, -37, 43}, 0, {0, 0}, {138, 248, 47, 0} }},
{{ {49, -34, 70}, 0, {0, 0}, {209, 202, 105, 255} }},
{{ {68, -22, 109}, 0, {0, 0}, {217, 24, 118, 255} }},
{{ {97, -52, 66}, 0, {0, 0}, {205, 190, 96, 255} }},
{{ {22, -61, 0}, 0, {0, 0}, {158, 176, 0, 0} }},
{{ {5, -37, 43}, 0, {0, 0}, {138, 248, 47, 255} }},
{{ {5, -37, -43}, 0, {0, 0}, {138, 248, 209, 0} }},
{{ {68, -22, -109}, 0, {0, 0}, {217, 24, 138, 0} }},
{{ {25, -6, -70}, 0, {0, 0}, {187, 254, 150, 0} }},
{{ {85, -22, -83}, 0, {0, 0}, {1, 96, 173, 0} }},
{{ {159, -32, -129}, 0, {0, 0}, {101, 253, 179, 0} }},
{{ {125, -18, -85}, 0, {0, 0}, {235, 67, 150, 0} }},
{{ {97, -52, -66}, 0, {0, 0}, {205, 190, 160, 0} }},
};
static const Vtx waluigi_face_back_hair_cap_on_dl_vertex[30] = {
{{ {97, -52, 66}, 0, {0, 0}, {205, 190, 96, 0} }},
{{ {49, -34, 70}, 0, {0, 0}, {209, 202, 105, 0} }},
{{ {73, -89, 41}, 0, {0, 0}, {231, 146, 57, 0} }},
{{ {58, -100, 65}, 0, {0, 0}, {81, 181, 62, 0} }},
{{ {29, -78, 83}, 0, {0, 0}, {232, 4, 125, 0} }},
{{ {-3, -80, 52}, 0, {0, 0}, {133, 235, 23, 0} }},
{{ {5, -37, 43}, 0, {0, 0}, {138, 248, 47, 0} }},
{{ {22, -61, 0}, 0, {0, 0}, {158, 176, 0, 0} }},
{{ {26, -107, 30}, 0, {0, 0}, {231, 150, 191, 0} }},
{{ {73, -89, -41}, 0, {0, 0}, {231, 146, 199, 0} }},
{{ {26, -107, -30}, 0, {0, 0}, {231, 150, 65, 0} }},
{{ {-3, -80, -52}, 0, {0, 0}, {133, 235, 233, 0} }},
{{ {5, -37, -43}, 0, {0, 0}, {138, 248, 209, 0} }},
{{ {49, -34, -70}, 0, {0, 0}, {209, 202, 151, 0} }},
{{ {29, -78, -83}, 0, {0, 0}, {232, 4, 131, 0} }},
{{ {58, -100, -65}, 0, {0, 0}, {81, 181, 194, 0} }},
{{ {97, -52, -66}, 0, {0, 0}, {205, 190, 160, 0} }},
{{ {73, -89, -41}, 0, {0, 0}, {231, 146, 199, 0} }},
{{ {49, -34, -70}, 0, {0, 0}, {209, 202, 151, 0} }},
{{ {26, -107, -30}, 0, {0, 0}, {231, 150, 65, 0} }},
{{ {58, -100, -65}, 0, {0, 0}, {81, 181, 194, 0} }},
{{ {28, -110, -69}, 0, {0, 0}, {230, 149, 193, 0} }},
{{ {-3, -80, -52}, 0, {0, 0}, {133, 235, 233, 0} }},
{{ {29, -78, -83}, 0, {0, 0}, {232, 4, 131, 0} }},
{{ {73, -89, 41}, 0, {0, 0}, {231, 146, 57, 0} }},
{{ {58, -100, 65}, 0, {0, 0}, {81, 181, 62, 0} }},
{{ {26, -107, 30}, 0, {0, 0}, {231, 150, 191, 0} }},
{{ {28, -110, 69}, 0, {0, 0}, {230, 149, 63, 0} }},
{{ {29, -78, 83}, 0, {0, 0}, {232, 4, 125, 0} }},
{{ {-3, -80, 52}, 0, {0, 0}, {133, 235, 23, 0} }},
};
static const Vtx waluigi_nose_cap_on_dl_vertex[32] = {
{{ {117, 117, 0}, 0, {0, 0}, {0, 0, 127, 255} }},
{{ {100, 77, 0}, 0, {0, 0}, {0, 0, 127, 255} }},
{{ {100, 77, 0}, 0, {0, 0}, {0, 0, 127, 255} }},
{{ {55, 83, -21}, 0, {0, 0}, {129, 254, 4, 255} }},
{{ {55, 83, -21}, 0, {0, 0}, {0, 0, 127, 255} }},
{{ {55, 83, 0}, 0, {0, 0}, {129, 7, 0, 255} }},
{{ {58, 135, 0}, 0, {0, 0}, {129, 249, 0, 255} }},
{{ {55, 83, 21}, 0, {0, 0}, {155, 254, 76, 255} }},
{{ {64, 135, 26}, 0, {0, 0}, {169, 12, 91, 255} }},
{{ {86, 135, 35}, 0, {0, 0}, {22, 20, 124, 255} }},
{{ {72, 82, 24}, 0, {0, 0}, {11, 227, 123, 255} }},
{{ {88, 79, 16}, 0, {0, 0}, {73, 215, 96, 255} }},
{{ {107, 127, 21}, 0, {0, 0}, {98, 9, 80, 255} }},
{{ {100, 77, 0}, 0, {0, 0}, {94, 212, 73, 255} }},
{{ {117, 117, 0}, 0, {0, 0}, {127, 245, 0, 255} }},
{{ {100, 156, 0}, 0, {0, 0}, {108, 67, 0, 255} }},
{{ {117, 117, 0}, 0, {0, 0}, {127, 245, 0, 255} }},
{{ {107, 127, -21}, 0, {0, 0}, {98, 9, 176, 255} }},
{{ {100, 156, 0}, 0, {0, 0}, {108, 67, 0, 255} }},
{{ {100, 77, 0}, 0, {0, 0}, {94, 212, 183, 255} }},
{{ {88, 79, -16}, 0, {0, 0}, {73, 215, 160, 255} }},
{{ {86, 135, -35}, 0, {0, 0}, {22, 20, 132, 255} }},
{{ {72, 82, -24}, 0, {0, 0}, {11, 227, 133, 255} }},
{{ {55, 83, -21}, 0, {0, 0}, {129, 254, 4, 255} }},
{{ {64, 135, -26}, 0, {0, 0}, {169, 12, 165, 255} }},
{{ {58, 135, 0}, 0, {0, 0}, {129, 249, 0, 255} }},
{{ {45, 188, 0}, 0, {0, 0}, {172, 95, 0, 255} }},
{{ {64, 135, 26}, 0, {0, 0}, {169, 12, 91, 255} }},
{{ {86, 135, 35}, 0, {0, 0}, {22, 20, 124, 255} }},
{{ {83, 173, 14}, 0, {0, 0}, {50, 95, 68, 255} }},
{{ {107, 127, 21}, 0, {0, 0}, {98, 9, 80, 255} }},
{{ {83, 173, -14}, 0, {0, 0}, {50, 95, 188, 255} }},
};
static const Vtx waluigi_mustache_cap_on_dl_vertex[10] = {
{{ {59, 85, -65}, 0, {0, 0}, {240, 101, 181, 255} }},
{{ {124, 31, -122}, 0, {0, 0}, {244, 85, 162, 255} }},
{{ {45, 82, -66}, 0, {0, 0}, {237, 104, 185, 255} }},
{{ {74, 111, -14}, 0, {0, 0}, {219, 114, 213, 255} }},
{{ {58, 108, -7}, 0, {0, 0}, {217, 113, 215, 255} }},
{{ {59, 85, 65}, 0, {0, 0}, {240, 101, 75, 255} }},
{{ {45, 82, 66}, 0, {0, 0}, {237, 104, 71, 255} }},
{{ {124, 31, 122}, 0, {0, 0}, {244, 85, 94, 255} }},
{{ {74, 111, 14}, 0, {0, 0}, {219, 114, 43, 255} }},
{{ {58, 108, 7}, 0, {0, 0}, {217, 113, 41, 255} }},
};
static const Vtx waluigi_mustache_cap_on_dead_dl_vertex[10] = {
{{ {59, 85, -65}, 0, {0, 0}, {238, 106, 188, 255} }},
{{ {62, 31, -122}, 0, {0, 0}, {243, 91, 169, 255} }},
{{ {45, 82, -66}, 0, {0, 0}, {237, 103, 184, 255} }},
{{ {74, 111, -14}, 0, {0, 0}, {219, 114, 213, 255} }},
{{ {58, 108, -7}, 0, {0, 0}, {217, 113, 215, 255} }},
{{ {59, 85, 65}, 0, {0, 0}, {238, 106, 68, 255} }},
{{ {45, 82, 66}, 0, {0, 0}, {237, 103, 72, 255} }},
{{ {62, 31, 122}, 0, {0, 0}, {243, 91, 87, 255} }},
{{ {74, 111, 14}, 0, {0, 0}, {219, 114, 43, 255} }},
{{ {58, 108, 7}, 0, {0, 0}, {217, 113, 41, 255} }},
};
const Gfx waluigi_r_logo_dl[] = {
gsSPVertex(waluigi_r_logo_dl_vertex + 0, 7, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(3, 0, 2, 0),
gsSP1Triangle(4, 3, 2, 0),
gsSP1Triangle(3, 4, 5, 0),
gsSP1Triangle(5, 4, 6, 0),
gsSPEndDisplayList(),
};
const Gfx waluigi_eyes_cap_on_dl[] = {
gsSPVertex(waluigi_eyes_cap_on_dl_vertex + 0, 8, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(1, 0, 3, 0),
gsSP1Triangle(0, 4, 3, 0),
gsSP1Triangle(4, 5, 3, 0),
gsSP1Triangle(5, 4, 6, 0),
gsSP1Triangle(7, 3, 5, 0),
gsSP1Triangle(3, 7, 1, 0),
gsSPEndDisplayList(),
};
const Gfx waluigi_hair_sideburn_cap_on_dl[] = {
gsSPVertex(waluigi_hair_sideburn_cap_on_dl_vertex + 0, 12, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(2, 1, 3, 0),
gsSP1Triangle(4, 2, 3, 0),
gsSP1Triangle(5, 2, 4, 0),
gsSP1Triangle(6, 7, 8, 0),
gsSP1Triangle(9, 7, 6, 0),
gsSP1Triangle(10, 9, 6, 0),
gsSP1Triangle(11, 10, 6, 0),
gsSPEndDisplayList(),
};
const Gfx waluigi_mouth_cap_on_dl[] = {
gsSPVertex(waluigi_mouth_cap_on_dl_vertex + 0, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(1, 0, 3, 0),
gsSP1Triangle(3, 0, 4, 0),
gsSP1Triangle(4, 0, 5, 0),
gsSP1Triangle(6, 4, 5, 0),
gsSP1Triangle(4, 6, 7, 0),
gsSP1Triangle(6, 8, 7, 0),
gsSP1Triangle(8, 9, 7, 0),
gsSP1Triangle(10, 7, 9, 0),
gsSP1Triangle(10, 9, 11, 0),
gsSP1Triangle(3, 10, 11, 0),
gsSP1Triangle(3, 11, 12, 0),
gsSP1Triangle(12, 11, 13, 0),
gsSP1Triangle(12, 13, 14, 0),
gsSP1Triangle(13, 15, 14, 0),
gsSPVertex(waluigi_mouth_cap_on_dl_vertex + 16, 10, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(1, 3, 2, 0),
gsSP1Triangle(4, 3, 1, 0),
gsSP1Triangle(3, 5, 2, 0),
gsSP1Triangle(5, 3, 6, 0),
gsSP1Triangle(7, 8, 9, 0),
gsSP1Triangle(8, 6, 9, 0),
gsSPEndDisplayList(),
};
const Gfx waluigi_face_part_cap_on_dl[] = {
gsSPVertex(waluigi_face_part_cap_on_dl_vertex + 0, 15, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(3, 0, 2, 0),
gsSP1Triangle(4, 3, 2, 0),
gsSP1Triangle(3, 4, 5, 0),
gsSP1Triangle(4, 6, 5, 0),
gsSP1Triangle(7, 6, 4, 0),
gsSP1Triangle(7, 4, 8, 0),
gsSP1Triangle(6, 7, 9, 0),
gsSP1Triangle(7, 10, 9, 0),
gsSP1Triangle(10, 11, 9, 0),
gsSP1Triangle(0, 3, 5, 0),
gsSP1Triangle(12, 13, 5, 0),
gsSP1Triangle(14, 12, 5, 0),
gsSP1Triangle(5, 6, 14, 0),
gsSPVertex(waluigi_face_part_cap_on_dl_vertex + 15, 14, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(1, 3, 2, 0),
gsSP1Triangle(1, 4, 3, 0),
gsSP1Triangle(5, 3, 4, 0),
gsSP1Triangle(3, 5, 2, 0),
gsSP1Triangle(6, 7, 8, 0),
gsSP1Triangle(9, 6, 8, 0),
gsSP1Triangle(10, 9, 8, 0),
gsSP1Triangle(11, 12, 13, 0),
gsSPVertex(waluigi_face_part_cap_on_dl_vertex + 29, 6, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(0, 2, 3, 0),
gsSP1Triangle(2, 4, 3, 0),
gsSP1Triangle(4, 5, 3, 0),
gsSP1Triangle(0, 3, 5, 0),
gsSPEndDisplayList(),
};
const Gfx waluigi_face_cap_dl[] = {
gsSPVertex(waluigi_face_cap_dl_vertex + 0, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(2, 1, 3, 0),
gsSP1Triangle(3, 1, 4, 0),
gsSP1Triangle(4, 5, 3, 0),
gsSP1Triangle(3, 5, 2, 0),
gsSP1Triangle(5, 6, 2, 0),
gsSP1Triangle(7, 2, 6, 0),
gsSP1Triangle(8, 7, 6, 0),
gsSP1Triangle(7, 8, 0, 0),
gsSP1Triangle(2, 7, 0, 0),
gsSP1Triangle(9, 8, 10, 0),
gsSP1Triangle(10, 8, 11, 0),
gsSP1Triangle(12, 10, 11, 0),
gsSP1Triangle(12, 11, 13, 0),
gsSP1Triangle(13, 14, 12, 0),
gsSP1Triangle(14, 13, 15, 0),
gsSPVertex(waluigi_face_cap_dl_vertex + 16, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(2, 1, 3, 0),
gsSP1Triangle(4, 2, 3, 0),
gsSP1Triangle(2, 4, 5, 0),
gsSP1Triangle(6, 5, 4, 0),
gsSP1Triangle(5, 6, 7, 0),
gsSP1Triangle(5, 7, 8, 0),
gsSP1Triangle(7, 9, 8, 0),
gsSP1Triangle(7, 10, 9, 0),
gsSP1Triangle(10, 11, 9, 0),
gsSP1Triangle(11, 10, 12, 0),
gsSP1Triangle(12, 13, 11, 0),
gsSP1Triangle(14, 11, 13, 0),
gsSP1Triangle(15, 11, 14, 0),
gsSPVertex(waluigi_face_cap_dl_vertex + 32, 12, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(3, 0, 2, 0),
gsSP1Triangle(3, 2, 4, 0),
gsSP1Triangle(3, 4, 5, 0),
gsSP1Triangle(3, 5, 6, 0),
gsSP1Triangle(3, 6, 7, 0),
gsSP1Triangle(7, 6, 8, 0),
gsSP1Triangle(7, 8, 9, 0),
gsSP1Triangle(10, 7, 9, 0),
gsSP1Triangle(11, 10, 9, 0),
gsSP1Triangle(0, 10, 11, 0),
gsSP1Triangle(10, 0, 7, 0),
gsSP1Triangle(0, 3, 7, 0),
gsSPEndDisplayList(),
};
const Gfx waluigi_face_back_hair_cap_on_dl[] = {
gsSPVertex(waluigi_face_back_hair_cap_on_dl_vertex + 0, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(1, 3, 2, 0),
gsSP1Triangle(4, 3, 1, 0),
gsSP1Triangle(1, 5, 4, 0),
gsSP1Triangle(1, 6, 5, 0),
gsSP1Triangle(6, 7, 5, 0),
gsSP1Triangle(7, 8, 5, 0),
gsSP1Triangle(2, 8, 7, 0),
gsSP1Triangle(9, 2, 7, 0),
gsSP1Triangle(9, 7, 10, 0),
gsSP1Triangle(10, 7, 11, 0),
gsSP1Triangle(11, 7, 12, 0),
gsSP1Triangle(13, 11, 12, 0),
gsSP1Triangle(13, 14, 11, 0),
gsSP1Triangle(14, 13, 15, 0),
gsSP1Triangle(13, 9, 15, 0),
gsSPVertex(waluigi_face_back_hair_cap_on_dl_vertex + 16, 14, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(1, 3, 4, 0),
gsSP1Triangle(5, 4, 3, 0),
gsSP1Triangle(3, 6, 5, 0),
gsSP1Triangle(6, 7, 5, 0),
gsSP1Triangle(4, 5, 7, 0),
gsSP1Triangle(8, 9, 10, 0),
gsSP1Triangle(11, 10, 9, 0),
gsSP1Triangle(9, 12, 11, 0),
gsSP1Triangle(13, 11, 12, 0),
gsSP1Triangle(10, 11, 13, 0),
gsSPEndDisplayList(),
};
const Gfx waluigi_nose_cap_on_dl[] = {
gsSPVertex(waluigi_nose_cap_on_dl_vertex + 0, 16, 0),
gsSP1Triangle(0, 1, 1, 0),
gsSP1Triangle(3, 4, 5, 0),
gsSP1Triangle(6, 3, 5, 0),
gsSP1Triangle(6, 5, 7, 0),
gsSP1Triangle(7, 8, 6, 0),
gsSP1Triangle(8, 7, 9, 0),
gsSP1Triangle(7, 10, 9, 0),
gsSP1Triangle(9, 10, 11, 0),
gsSP1Triangle(12, 9, 11, 0),
gsSP1Triangle(11, 13, 12, 0),
gsSP1Triangle(13, 14, 12, 0),
gsSP1Triangle(14, 15, 12, 0),
gsSPVertex(waluigi_nose_cap_on_dl_vertex + 16, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(0, 3, 1, 0),
gsSP1Triangle(3, 4, 1, 0),
gsSP1Triangle(1, 4, 5, 0),
gsSP1Triangle(4, 6, 5, 0),
gsSP1Triangle(6, 7, 5, 0),
gsSP1Triangle(7, 8, 5, 0),
gsSP1Triangle(9, 8, 7, 0),
gsSP1Triangle(8, 9, 10, 0),
gsSP1Triangle(11, 10, 9, 0),
gsSP1Triangle(11, 12, 10, 0),
gsSP1Triangle(13, 10, 12, 0),
gsSP1Triangle(14, 13, 12, 0),
gsSP1Triangle(2, 13, 14, 0),
gsSP1Triangle(2, 15, 13, 0),
gsSP1Triangle(2, 1, 15, 0),
gsSP1Triangle(1, 5, 15, 0),
gsSP1Triangle(15, 5, 10, 0),
gsSP1Triangle(8, 10, 5, 0),
gsSP1Triangle(15, 10, 13, 0),
gsSPEndDisplayList(),
};
const Gfx waluigi_mustache_cap_on_dl[] = {
gsSPVertex(waluigi_mustache_cap_on_dl_vertex + 0, 10, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(0, 2, 3, 0),
gsSP1Triangle(2, 4, 3, 0),
gsSP1Triangle(5, 6, 7, 0),
gsSP1Triangle(5, 8, 6, 0),
gsSP1Triangle(6, 8, 9, 0),
gsSPEndDisplayList(),
};
const Gfx waluigi_mustache_cap_on_dead_dl[] = {
gsSPVertex(waluigi_mustache_cap_on_dead_dl_vertex + 0, 10, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(0, 2, 3, 0),
gsSP1Triangle(2, 4, 3, 0),
gsSP1Triangle(5, 6, 7, 0),
gsSP1Triangle(5, 8, 6, 0),
gsSP1Triangle(6, 8, 9, 0),
gsSPEndDisplayList(),
};
const Gfx waluigi_hair_sideburn_decal_cap_on[] = {
gsDPPipeSync(),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, COMBINED, 0, 0, 0, COMBINED),
gsDPSetCycleType(G_CYC_2CYCLE),
gsSPTexture(65535, 65535, 0, 0, 1),
gsSPLight(&waluigi_black_lights_group.l, 1),
gsSPCopyLightEXT(2, 11),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, waluigi_texture_hair_sideburn),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 1023, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(0, 0, 0, 124, 124),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, waluigi_texture_add_sideburn),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 256, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(6, 0, 0, 1023, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 256, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(1, 0, 0, 124, 124),
gsSPDisplayList(waluigi_hair_sideburn_cap_on_dl),
gsDPSetCycleType(G_CYC_1CYCLE),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0),
gsSPTexture(65535, 65535, 0, 0, 1),
gsSPCopyLightsPlayerPart(SKIN),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, waluigi_texture_skin_sideburn),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 1023, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(0, 0, 0, 124, 124),
gsSPDisplayList(waluigi_hair_sideburn_cap_on_dl),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPEndDisplayList(),
};
const Gfx waluigi_r_logo_decal[] = {
gsDPPipeSync(),
gsDPSetCombineLERP(TEXEL0, SHADE, TEXEL1, SHADE, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, SHADE, TEXEL1, SHADE, TEXEL0, 0, ENVIRONMENT, 0),
gsSPTexture(65535, 65535, 0, 0, 1),
gsSPLight(&waluigi_black_lights_group.l, 1),
gsSPCopyLightEXT(2, 17),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, waluigi_texture_r_logo),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 1023, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(0, 0, 0, 124, 124),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, waluigi_texture_r_blend),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 256, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(6, 0, 0, 1023, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 256, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(1, 0, 0, 124, 124),
gsSPDisplayList(waluigi_r_logo_dl),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineLERP(TEXEL0, SHADE, TEXEL0_ALPHA, SHADE, TEXEL1, 0, ENVIRONMENT, 0, TEXEL0, SHADE, TEXEL0_ALPHA, SHADE, TEXEL1, 0, ENVIRONMENT, 0),
gsSPTexture(65535, 65535, 0, 0, 1),
gsSPCopyLightsPlayerPart(CAP),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, waluigi_texture_r_logo),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 1023, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(0, 0, 0, 124, 124),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, waluigi_texture_r_cap),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 256, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(6, 0, 0, 1023, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 256, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(1, 0, 0, 124, 124),
gsSPDisplayList(waluigi_r_logo_dl),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPEndDisplayList(),
};
const Gfx waluigi_face_cap_on_dl[] = {
gsSPDisplayList(waluigi_face_part_cap_on_dl),
gsSPCopyLightsPlayerPart(CAP),
gsSPDisplayList(waluigi_face_cap_dl),
gsSPCopyLightsPlayerPart(HAIR),
gsSPDisplayList(waluigi_face_back_hair_cap_on_dl),
gsSPLight(&waluigi_pink_lights_group.l, 1),
gsSPLight(&waluigi_pink_lights_group.a, 2),
gsSPDisplayList(waluigi_nose_cap_on_dl),
gsSPClearGeometryMode(G_CULL_BACK),
gsSPLight(&waluigi_black_lights_group.l, 1),
gsSPLight(&waluigi_black_lights_group.a, 2),
gsSPDisplayList(waluigi_mustache_cap_on_dl),
gsSPSetGeometryMode(G_CULL_BACK),
gsSPEndDisplayList(),
};
const Gfx waluigi_face_cap_on_dead_dl[] = {
gsSPDisplayList(waluigi_face_part_cap_on_dl),
gsSPCopyLightsPlayerPart(CAP),
gsSPDisplayList(waluigi_face_cap_dl),
gsSPCopyLightsPlayerPart(HAIR),
gsSPDisplayList(waluigi_face_back_hair_cap_on_dl),
gsSPLight(&waluigi_pink_lights_group.l, 1),
gsSPLight(&waluigi_pink_lights_group.a, 2),
gsSPDisplayList(waluigi_nose_cap_on_dl),
gsSPClearGeometryMode(G_CULL_BACK),
gsSPLight(&waluigi_black_lights_group.l, 1),
gsSPLight(&waluigi_black_lights_group.a, 2),
gsSPDisplayList(waluigi_mustache_cap_on_dead_dl),
gsSPSetGeometryMode(G_CULL_BACK),
gsSPEndDisplayList(),
};
const Gfx waluigi_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, 16, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (64 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_texture_eyes_front),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPCopyLightsPlayerPart(SKIN),
gsSPDisplayList(waluigi_eyes_cap_on_dl),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_texture_mouth),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(waluigi_mouth_cap_on_dl),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPDisplayList(waluigi_face_cap_on_dl),
gsSPEndDisplayList(),
};
const Gfx waluigi_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, 16, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (64 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_texture_eyes_half_closed),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPCopyLightsPlayerPart(SKIN),
gsSPDisplayList(waluigi_eyes_cap_on_dl),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_texture_mouth),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(waluigi_mouth_cap_on_dl),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPDisplayList(waluigi_face_cap_on_dl),
gsSPEndDisplayList(),
};
const Gfx waluigi_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, 16, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (64 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_texture_eyes_closed),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPCopyLightsPlayerPart(SKIN),
gsSPDisplayList(waluigi_eyes_cap_on_dl),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_texture_mouth),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(waluigi_mouth_cap_on_dl),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPDisplayList(waluigi_face_cap_on_dl),
gsSPEndDisplayList(),
};
const Gfx waluigi_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, 16, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (64 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_texture_eyes_right),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPCopyLightsPlayerPart(SKIN),
gsSPDisplayList(waluigi_eyes_cap_on_dl),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_texture_mouth),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(waluigi_mouth_cap_on_dl),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPDisplayList(waluigi_face_cap_on_dl),
gsSPEndDisplayList(),
};
const Gfx waluigi_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, 16, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (64 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_texture_eyes_left),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPCopyLightsPlayerPart(SKIN),
gsSPDisplayList(waluigi_eyes_cap_on_dl),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_texture_mouth),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(waluigi_mouth_cap_on_dl),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPDisplayList(waluigi_face_cap_on_dl),
gsSPEndDisplayList(),
};
const Gfx waluigi_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, 16, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (64 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_texture_eyes_up),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPCopyLightsPlayerPart(SKIN),
gsSPDisplayList(waluigi_eyes_cap_on_dl),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_texture_mouth),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(waluigi_mouth_cap_on_dl),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPDisplayList(waluigi_face_cap_on_dl),
gsSPEndDisplayList(),
};
const Gfx waluigi_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, 16, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (64 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_texture_eyes_down),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPCopyLightsPlayerPart(SKIN),
gsSPDisplayList(waluigi_eyes_cap_on_dl),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_texture_mouth),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(waluigi_mouth_cap_on_dl),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPDisplayList(waluigi_face_cap_on_dl),
gsSPEndDisplayList(),
};
const Gfx waluigi_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, 16, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (64 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_texture_eyes_dead),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPCopyLightsPlayerPart(SKIN),
gsSPDisplayList(waluigi_eyes_cap_on_dl),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_texture_mouth_dead),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(waluigi_mouth_cap_on_dl),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPDisplayList(waluigi_face_cap_on_dead_dl),
gsSPEndDisplayList(),
};
const Gfx waluigi_metal_cap_on_shared_dl[] = {
gsSPDisplayList(waluigi_r_logo_dl),
gsSPDisplayList(waluigi_eyes_cap_on_dl),
gsSPDisplayList(waluigi_hair_sideburn_cap_on_dl),
gsSPDisplayList(waluigi_mouth_cap_on_dl),
gsSPDisplayList(waluigi_face_part_cap_on_dl),
gsSPDisplayList(waluigi_face_cap_dl),
gsSPDisplayList(waluigi_face_back_hair_cap_on_dl),
gsSPDisplayList(waluigi_nose_cap_on_dl),
gsSPClearGeometryMode(G_CULL_BACK),
gsSPDisplayList(waluigi_mustache_cap_on_dl),
gsSPSetGeometryMode(G_CULL_BACK),
gsSPEndDisplayList(),
};
static const Vtx waluigi_eyes_cap_off_dl_vertex[8] = {
{{ {87, 59, -70}, 0, {66, 931}, {249, 62, 146, 255} }},
{{ {158, 101, -31}, 0, {578, -25}, {252, 116, 204, 255} }},
{{ {149, 58, -70}, 0, {41, 117}, {234, 51, 142, 255} }},
{{ {93, 107, 0}, 0, {1014, 918}, {224, 123, 0, 255} }},
{{ {80, 101, 0}, 0, {1014, 1072}, {235, 125, 0, 255} }},
{{ {87, 59, 70}, 0, {1961, 931}, {249, 62, 110, 255} }},
{{ {158, 101, 31}, 0, {1387, -25}, {252, 116, 52, 255} }},
{{ {149, 58, 70}, 0, {1987, 117}, {233, 52, 114, 255} }},
};
static const Vtx waluigi_mouth_cap_off_dl_vertex[26] = {
{{ {80, 101, 0}, 0, {1008, 279}, {235, 125, 0, 255} }},
{{ {63, 68, 64}, 0, {1676, 322}, {242, 80, 98, 255} }},
{{ {87, 59, 70}, 0, {1769, 103}, {249, 62, 110, 255} }},
{{ {34, 104, 0}, 0, {1008, 644}, {14, 126, 0, 255} }},
{{ {63, 68, -64}, 0, {340, 322}, {242, 80, 158, 255} }},
{{ {87, 59, -70}, 0, {247, 103}, {249, 62, 146, 255} }},
{{ {37, 38, -67}, 0, {142, 615}, {207, 32, 143, 255} }},
{{ {20, 65, -40}, 0, {469, 794}, {204, 44, 149, 255} }},
{{ {-7, 33, -30}, 0, {238, 1071}, {147, 240, 192, 255} }},
{{ {-39, 96, -22}, 0, {736, 1284}, {167, 26, 169, 255} }},
{{ {21, 81, -31}, 0, {645, 773}, {245, 84, 162, 255} }},
{{ {-37, 128, 0}, 0, {1008, 1309}, {199, 113, 0, 255} }},
{{ {21, 81, 31}, 0, {1371, 773}, {245, 84, 94, 255} }},
{{ {-39, 96, 22}, 0, {1280, 1284}, {167, 26, 87, 255} }},
{{ {20, 65, 40}, 0, {1547, 794}, {204, 44, 107, 255} }},
{{ {-7, 33, 30}, 0, {1778, 1071}, {147, 240, 64, 255} }},
{{ {-7, 33, 30}, 0, {1778, 1071}, {147, 240, 64, 255} }},
{{ {37, 38, 67}, 0, {1874, 615}, {207, 32, 113, 255} }},
{{ {20, 65, 40}, 0, {1547, 794}, {204, 44, 107, 255} }},
{{ {63, 68, 64}, 0, {1676, 322}, {242, 80, 98, 255} }},
{{ {87, 59, 70}, 0, {1769, 103}, {249, 62, 110, 255} }},
{{ {21, 81, 31}, 0, {1371, 773}, {245, 84, 94, 255} }},
{{ {34, 104, 0}, 0, {1008, 644}, {14, 126, 0, 255} }},
{{ {20, 65, -40}, 0, {469, 794}, {204, 44, 149, 255} }},
{{ {21, 81, -31}, 0, {645, 773}, {245, 84, 162, 255} }},
{{ {63, 68, -64}, 0, {340, 322}, {242, 80, 158, 255} }},
};
static const Vtx waluigi_hair_sideburn_cap_off_dl_vertex[12] = {
{{ {149, 58, -70}, 0, {69, -244}, {234, 51, 142, 255} }},
{{ {125, -18, -85}, 0, {995, 239}, {18, 39, 136, 255} }},
{{ {87, 59, -70}, 0, {-80, 554}, {249, 62, 146, 255} }},
{{ {85, -22, -83}, 0, {956, 760}, {1, 96, 173, 255} }},
{{ {25, -6, -70}, 0, {740, 1533}, {187, 254, 150, 255} }},
{{ {37, 38, -67}, 0, {88, 1295}, {207, 32, 143, 255} }},
{{ {149, 58, 70}, 0, {69, -244}, {233, 52, 114, 255} }},
{{ {87, 59, 70}, 0, {-80, 554}, {249, 62, 110, 255} }},
{{ {125, -18, 85}, 0, {995, 239}, {14, 41, 120, 255} }},
{{ {85, -22, 83}, 0, {956, 760}, {1, 96, 83, 255} }},
{{ {25, -6, 70}, 0, {740, 1533}, {187, 254, 106, 255} }},
{{ {37, 38, 67}, 0, {88, 1295}, {207, 32, 113, 255} }},
};
static const Vtx waluigi_face_part_cap_off_dl_vertex[36] = {
{{ {22, -61, 0}, 0, {0, 0}, {158, 176, 0, 0} }},
{{ {5, -37, 43}, 0, {0, 0}, {138, 248, 47, 255} }},
{{ {5, -37, -43}, 0, {0, 0}, {138, 248, 209, 0} }},
{{ {68, -22, -109}, 0, {0, 0}, {217, 24, 138, 255} }},
{{ {97, -52, -66}, 0, {0, 0}, {228, 179, 159, 255} }},
{{ {49, -34, -70}, 0, {0, 0}, {209, 202, 151, 255} }},
{{ {25, -6, -70}, 0, {0, 0}, {187, 254, 150, 255} }},
{{ {5, -37, -43}, 0, {0, 0}, {138, 248, 209, 255} }},
{{ {-7, 33, -30}, 0, {0, 0}, {147, 240, 192, 255} }},
{{ {-7, 33, 30}, 0, {0, 0}, {147, 240, 64, 255} }},
{{ {25, -6, 70}, 0, {0, 0}, {187, 254, 106, 255} }},
{{ {37, 38, 67}, 0, {0, 0}, {207, 32, 113, 255} }},
{{ {-40, 78, 0}, 0, {0, 0}, {135, 216, 0, 255} }},
{{ {-39, 96, -22}, 0, {0, 0}, {167, 26, 169, 255} }},
{{ {-39, 96, 22}, 0, {0, 0}, {167, 26, 87, 255} }},
{{ {-37, 128, 0}, 0, {0, 0}, {199, 113, 0, 255} }},
{{ {25, -6, -70}, 0, {0, 0}, {187, 254, 150, 255} }},
{{ {-7, 33, -30}, 0, {0, 0}, {147, 240, 192, 255} }},
{{ {37, 38, -67}, 0, {0, 0}, {207, 32, 143, 255} }},
{{ {97, -52, 66}, 0, {0, 0}, {225, 180, 97, 255} }},
{{ {68, -22, 109}, 0, {0, 0}, {217, 24, 118, 255} }},
{{ {49, -34, 70}, 0, {0, 0}, {209, 202, 105, 255} }},
{{ {25, -6, 70}, 0, {0, 0}, {187, 254, 106, 255} }},
{{ {5, -37, 43}, 0, {0, 0}, {138, 248, 47, 0} }},
{{ {25, -6, 70}, 0, {0, 0}, {187, 254, 106, 0} }},
{{ {68, -22, 109}, 0, {0, 0}, {217, 24, 118, 0} }},
{{ {85, -22, 83}, 0, {0, 0}, {1, 96, 83, 0} }},
{{ {159, -32, 129}, 0, {0, 0}, {101, 253, 77, 0} }},
{{ {97, -52, 66}, 0, {0, 0}, {225, 180, 97, 0} }},
{{ {125, -18, 85}, 0, {0, 0}, {14, 41, 120, 0} }},
{{ {68, -22, -109}, 0, {0, 0}, {217, 24, 138, 0} }},
{{ {25, -6, -70}, 0, {0, 0}, {187, 254, 150, 0} }},
{{ {85, -22, -83}, 0, {0, 0}, {1, 96, 173, 0} }},
{{ {159, -32, -129}, 0, {0, 0}, {101, 253, 179, 0} }},
{{ {125, -18, -85}, 0, {0, 0}, {18, 39, 136, 0} }},
{{ {97, -52, -66}, 0, {0, 0}, {228, 179, 159, 0} }},
};
static const Vtx waluigi_face_hair_cap_off_dl_vertex[92] = {
{{ {158, 101, -31}, 0, {0, 0}, {229, 108, 196, 0} }},
{{ {190, 72, -80}, 0, {0, 0}, {35, 57, 148, 0} }},
{{ {137, 76, -54}, 0, {0, 0}, {220, 85, 169, 0} }},
{{ {201, 83, -58}, 0, {0, 0}, {59, 72, 169, 0} }},
{{ {191, 120, -10}, 0, {0, 0}, {14, 126, 254, 0} }},
{{ {146, 102, 0}, 0, {0, 0}, {209, 118, 2, 0} }},
{{ {158, 101, 31}, 0, {0, 0}, {252, 113, 58, 0} }},
{{ {200, 78, 50}, 0, {0, 0}, {73, 87, 57, 0} }},
{{ {190, 72, 80}, 0, {0, 0}, {37, 68, 100, 0} }},
{{ {137, 76, 54}, 0, {0, 0}, {220, 85, 87, 0} }},
{{ {149, 58, 70}, 0, {0, 0}, {233, 52, 114, 0} }},
{{ {170, -9, 91}, 0, {0, 0}, {27, 246, 124, 0} }},
{{ {125, -18, 85}, 0, {0, 0}, {14, 41, 120, 0} }},
{{ {130, -70, 75}, 0, {0, 0}, {243, 207, 117, 0} }},
{{ {97, -52, 66}, 0, {0, 0}, {225, 180, 97, 0} }},
{{ {73, -89, 41}, 0, {0, 0}, {239, 144, 57, 0} }},
{{ {97, -52, 66}, 0, {0, 0}, {225, 180, 97, 0} }},
{{ {49, -34, 70}, 0, {0, 0}, {209, 202, 105, 0} }},
{{ {73, -89, 41}, 0, {0, 0}, {239, 144, 57, 0} }},
{{ {58, -100, 65}, 0, {0, 0}, {81, 181, 62, 0} }},
{{ {29, -78, 83}, 0, {0, 0}, {232, 4, 125, 0} }},
{{ {-3, -80, 52}, 0, {0, 0}, {133, 235, 23, 0} }},
{{ {5, -37, 43}, 0, {0, 0}, {138, 248, 47, 0} }},
{{ {22, -61, 0}, 0, {0, 0}, {158, 176, 0, 0} }},
{{ {26, -107, 30}, 0, {0, 0}, {231, 150, 191, 0} }},
{{ {73, -89, -41}, 0, {0, 0}, {242, 143, 199, 0} }},
{{ {26, -107, -30}, 0, {0, 0}, {231, 150, 65, 0} }},
{{ {-3, -80, -52}, 0, {0, 0}, {133, 235, 233, 0} }},
{{ {5, -37, -43}, 0, {0, 0}, {138, 248, 209, 0} }},
{{ {49, -34, -70}, 0, {0, 0}, {209, 202, 151, 0} }},
{{ {29, -78, -83}, 0, {0, 0}, {232, 4, 131, 0} }},
{{ {58, -100, -65}, 0, {0, 0}, {81, 181, 194, 0} }},
{{ {97, -52, -66}, 0, {0, 0}, {228, 179, 159, 0} }},
{{ {73, -89, -41}, 0, {0, 0}, {242, 143, 199, 0} }},
{{ {49, -34, -70}, 0, {0, 0}, {209, 202, 151, 0} }},
{{ {130, -70, -73}, 0, {0, 0}, {246, 206, 140, 0} }},
{{ {125, -18, -85}, 0, {0, 0}, {18, 39, 136, 0} }},
{{ {170, -9, -89}, 0, {0, 0}, {32, 246, 133, 0} }},
{{ {149, 58, -70}, 0, {0, 0}, {234, 51, 142, 0} }},
{{ {190, 72, -80}, 0, {0, 0}, {35, 57, 148, 0} }},
{{ {137, 76, -54}, 0, {0, 0}, {220, 85, 169, 0} }},
{{ {211, 30, -60}, 0, {0, 0}, {103, 1, 182, 0} }},
{{ {201, 83, -58}, 0, {0, 0}, {59, 72, 169, 0} }},
{{ {223, 59, -27}, 0, {0, 0}, {112, 230, 202, 0} }},
{{ {241, 97, -34}, 0, {0, 0}, {106, 52, 209, 0} }},
{{ {191, 120, -10}, 0, {0, 0}, {14, 126, 254, 0} }},
{{ {200, 78, 50}, 0, {0, 0}, {73, 87, 57, 0} }},
{{ {222, 72, 28}, 0, {0, 0}, {106, 47, 52, 0} }},
{{ {218, 30, 63}, 0, {0, 0}, {105, 4, 72, 0} }},
{{ {222, 72, 28}, 0, {0, 0}, {106, 47, 52, 0} }},
{{ {200, 78, 50}, 0, {0, 0}, {73, 87, 57, 0} }},
{{ {190, 72, 80}, 0, {0, 0}, {37, 68, 100, 0} }},
{{ {170, -9, 91}, 0, {0, 0}, {27, 246, 124, 0} }},
{{ {218, -14, 49}, 0, {0, 0}, {106, 231, 66, 0} }},
{{ {177, -89, 57}, 0, {0, 0}, {58, 177, 81, 0} }},
{{ {130, -70, 75}, 0, {0, 0}, {243, 207, 117, 0} }},
{{ {99, -113, 46}, 0, {0, 0}, {219, 158, 72, 0} }},
{{ {73, -89, 41}, 0, {0, 0}, {239, 144, 57, 0} }},
{{ {102, -126, 1}, 0, {0, 0}, {222, 134, 0, 0} }},
{{ {73, -89, -41}, 0, {0, 0}, {242, 143, 199, 0} }},
{{ {99, -113, -44}, 0, {0, 0}, {220, 157, 185, 0} }},
{{ {130, -70, -73}, 0, {0, 0}, {246, 206, 140, 0} }},
{{ {177, -89, -55}, 0, {0, 0}, {58, 177, 175, 0} }},
{{ {170, -9, -89}, 0, {0, 0}, {32, 246, 133, 0} }},
{{ {177, -89, -55}, 0, {0, 0}, {58, 177, 175, 0} }},
{{ {170, -9, -89}, 0, {0, 0}, {32, 246, 133, 0} }},
{{ {218, -14, -47}, 0, {0, 0}, {105, 236, 188, 0} }},
{{ {211, 30, -60}, 0, {0, 0}, {103, 1, 182, 0} }},
{{ {230, 53, 0}, 0, {0, 0}, {127, 249, 4, 0} }},
{{ {223, 59, -27}, 0, {0, 0}, {112, 230, 202, 0} }},
{{ {241, 97, -34}, 0, {0, 0}, {106, 52, 209, 0} }},
{{ {222, 72, 28}, 0, {0, 0}, {106, 47, 52, 0} }},
{{ {218, 30, 63}, 0, {0, 0}, {105, 4, 72, 0} }},
{{ {218, -14, 49}, 0, {0, 0}, {106, 231, 66, 0} }},
{{ {234, -37, 1}, 0, {0, 0}, {122, 221, 0, 0} }},
{{ {177, -89, 57}, 0, {0, 0}, {58, 177, 81, 0} }},
{{ {190, -107, 1}, 0, {0, 0}, {74, 153, 0, 0} }},
{{ {99, -113, 46}, 0, {0, 0}, {219, 158, 72, 0} }},
{{ {102, -126, 1}, 0, {0, 0}, {222, 134, 0, 0} }},
{{ {99, -113, -44}, 0, {0, 0}, {220, 157, 185, 0} }},
{{ {73, -89, 41}, 0, {0, 0}, {239, 144, 57, 0} }},
{{ {58, -100, 65}, 0, {0, 0}, {81, 181, 62, 0} }},
{{ {26, -107, 30}, 0, {0, 0}, {231, 150, 191, 0} }},
{{ {28, -110, 69}, 0, {0, 0}, {230, 149, 63, 0} }},
{{ {29, -78, 83}, 0, {0, 0}, {232, 4, 125, 0} }},
{{ {-3, -80, 52}, 0, {0, 0}, {133, 235, 23, 0} }},
{{ {73, -89, -41}, 0, {0, 0}, {242, 143, 199, 0} }},
{{ {26, -107, -30}, 0, {0, 0}, {231, 150, 65, 0} }},
{{ {58, -100, -65}, 0, {0, 0}, {81, 181, 194, 0} }},
{{ {28, -110, -69}, 0, {0, 0}, {230, 149, 193, 0} }},
{{ {-3, -80, -52}, 0, {0, 0}, {133, 235, 233, 0} }},
{{ {29, -78, -83}, 0, {0, 0}, {232, 4, 131, 0} }},
};
static const Vtx waluigi_nose_cap_off_dl_vertex[28] = {
{{ {88, 79, 16}, 0, {0, 0}, {73, 215, 96, 255} }},
{{ {100, 77, 0}, 0, {0, 0}, {115, 203, 0, 255} }},
{{ {107, 127, 21}, 0, {0, 0}, {98, 9, 80, 255} }},
{{ {117, 117, 0}, 0, {0, 0}, {127, 245, 0, 255} }},
{{ {107, 127, -21}, 0, {0, 0}, {98, 9, 176, 255} }},
{{ {88, 79, -16}, 0, {0, 0}, {73, 215, 160, 255} }},
{{ {86, 135, -35}, 0, {0, 0}, {22, 20, 132, 255} }},
{{ {72, 82, -24}, 0, {0, 0}, {11, 227, 133, 255} }},
{{ {55, 83, -21}, 0, {0, 0}, {155, 254, 180, 255} }},
{{ {64, 135, -26}, 0, {0, 0}, {169, 12, 165, 255} }},
{{ {58, 135, 0}, 0, {0, 0}, {129, 249, 0, 255} }},
{{ {55, 83, 0}, 0, {0, 0}, {129, 7, 0, 255} }},
{{ {55, 83, 21}, 0, {0, 0}, {155, 254, 76, 255} }},
{{ {64, 135, 26}, 0, {0, 0}, {169, 12, 91, 255} }},
{{ {86, 135, 35}, 0, {0, 0}, {22, 20, 124, 255} }},
{{ {72, 82, 24}, 0, {0, 0}, {11, 227, 123, 255} }},
{{ {107, 127, 21}, 0, {0, 0}, {98, 9, 80, 255} }},
{{ {83, 173, 14}, 0, {0, 0}, {50, 95, 68, 255} }},
{{ {86, 135, 35}, 0, {0, 0}, {22, 20, 124, 255} }},
{{ {100, 156, 0}, 0, {0, 0}, {108, 67, 0, 255} }},
{{ {117, 117, 0}, 0, {0, 0}, {127, 245, 0, 255} }},
{{ {107, 127, -21}, 0, {0, 0}, {98, 9, 176, 255} }},
{{ {83, 173, -14}, 0, {0, 0}, {50, 95, 188, 255} }},
{{ {86, 135, -35}, 0, {0, 0}, {22, 20, 132, 255} }},
{{ {45, 188, 0}, 0, {0, 0}, {172, 95, 0, 255} }},
{{ {64, 135, -26}, 0, {0, 0}, {169, 12, 165, 255} }},
{{ {58, 135, 0}, 0, {0, 0}, {129, 249, 0, 255} }},
{{ {64, 135, 26}, 0, {0, 0}, {169, 12, 91, 255} }},
};
static const Vtx waluigi_mustache_cap_off_dl_vertex[10] = {
{{ {59, 85, -65}, 0, {0, 0}, {240, 101, 181, 255} }},
{{ {124, 31, -122}, 0, {0, 0}, {244, 85, 162, 255} }},
{{ {45, 82, -66}, 0, {0, 0}, {237, 104, 185, 255} }},
{{ {74, 111, -14}, 0, {0, 0}, {219, 114, 213, 255} }},
{{ {58, 108, -7}, 0, {0, 0}, {217, 113, 215, 255} }},
{{ {59, 85, 65}, 0, {0, 0}, {240, 101, 75, 255} }},
{{ {45, 82, 66}, 0, {0, 0}, {237, 104, 71, 255} }},
{{ {124, 31, 122}, 0, {0, 0}, {244, 85, 94, 255} }},
{{ {74, 111, 14}, 0, {0, 0}, {219, 114, 43, 255} }},
{{ {58, 108, 7}, 0, {0, 0}, {217, 113, 41, 255} }},
};
static const Vtx waluigi_mustache_cap_off_dead_dl_vertex[10] = {
{{ {59, 85, -65}, 0, {0, 0}, {238, 106, 188, 255} }},
{{ {62, 31, -122}, 0, {0, 0}, {243, 91, 169, 255} }},
{{ {45, 82, -66}, 0, {0, 0}, {237, 103, 184, 255} }},
{{ {74, 111, -14}, 0, {0, 0}, {219, 114, 213, 255} }},
{{ {58, 108, -7}, 0, {0, 0}, {217, 113, 215, 255} }},
{{ {59, 85, 65}, 0, {0, 0}, {238, 106, 68, 255} }},
{{ {45, 82, 66}, 0, {0, 0}, {237, 103, 72, 255} }},
{{ {62, 31, 122}, 0, {0, 0}, {243, 91, 87, 255} }},
{{ {74, 111, 14}, 0, {0, 0}, {219, 114, 43, 255} }},
{{ {58, 108, 7}, 0, {0, 0}, {217, 113, 41, 255} }},
};
const Gfx waluigi_eyes_cap_off_dl[] = {
gsSPVertex(waluigi_eyes_cap_off_dl_vertex + 0, 8, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(1, 0, 3, 0),
gsSP1Triangle(4, 3, 0, 0),
gsSP1Triangle(3, 4, 5, 0),
gsSP1Triangle(5, 6, 3, 0),
gsSP1Triangle(6, 5, 7, 0),
gsSP1Triangle(6, 1, 3, 0),
gsSPEndDisplayList(),
};
const Gfx waluigi_mouth_cap_off_dl[] = {
gsSPVertex(waluigi_mouth_cap_off_dl_vertex + 0, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(1, 0, 3, 0),
gsSP1Triangle(3, 0, 4, 0),
gsSP1Triangle(4, 0, 5, 0),
gsSP1Triangle(6, 4, 5, 0),
gsSP1Triangle(4, 6, 7, 0),
gsSP1Triangle(6, 8, 7, 0),
gsSP1Triangle(8, 9, 7, 0),
gsSP1Triangle(10, 7, 9, 0),
gsSP1Triangle(10, 9, 11, 0),
gsSP1Triangle(3, 10, 11, 0),
gsSP1Triangle(3, 11, 12, 0),
gsSP1Triangle(12, 11, 13, 0),
gsSP1Triangle(12, 13, 14, 0),
gsSP1Triangle(13, 15, 14, 0),
gsSPVertex(waluigi_mouth_cap_off_dl_vertex + 16, 10, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(1, 3, 2, 0),
gsSP1Triangle(4, 3, 1, 0),
gsSP1Triangle(3, 5, 2, 0),
gsSP1Triangle(5, 3, 6, 0),
gsSP1Triangle(7, 8, 9, 0),
gsSP1Triangle(8, 6, 9, 0),
gsSPEndDisplayList(),
};
const Gfx waluigi_hair_sideburn_cap_off_dl[] = {
gsSPVertex(waluigi_hair_sideburn_cap_off_dl_vertex + 0, 12, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(1, 3, 2, 0),
gsSP1Triangle(3, 4, 2, 0),
gsSP1Triangle(2, 4, 5, 0),
gsSP1Triangle(6, 7, 8, 0),
gsSP1Triangle(8, 7, 9, 0),
gsSP1Triangle(7, 10, 9, 0),
gsSP1Triangle(11, 10, 7, 0),
gsSPEndDisplayList(),
};
const Gfx waluigi_face_part_cap_off_dl[] = {
gsSPVertex(waluigi_face_part_cap_off_dl_vertex + 0, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(3, 4, 5, 0),
gsSP1Triangle(6, 3, 5, 0),
gsSP1Triangle(7, 6, 5, 0),
gsSP1Triangle(6, 7, 8, 0),
gsSP1Triangle(8, 7, 9, 0),
gsSP1Triangle(9, 7, 1, 0),
gsSP1Triangle(1, 10, 9, 0),
gsSP1Triangle(10, 11, 9, 0),
gsSP1Triangle(12, 8, 9, 0),
gsSP1Triangle(8, 12, 13, 0),
gsSP1Triangle(12, 14, 13, 0),
gsSP1Triangle(14, 12, 9, 0),
gsSP1Triangle(14, 15, 13, 0),
gsSPVertex(waluigi_face_part_cap_off_dl_vertex + 16, 14, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(3, 4, 5, 0),
gsSP1Triangle(4, 6, 5, 0),
gsSP1Triangle(6, 7, 5, 0),
gsSP1Triangle(8, 9, 10, 0),
gsSP1Triangle(9, 11, 10, 0),
gsSP1Triangle(9, 12, 11, 0),
gsSP1Triangle(13, 11, 12, 0),
gsSP1Triangle(11, 13, 10, 0),
gsSPVertex(waluigi_face_part_cap_off_dl_vertex + 30, 6, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(0, 2, 3, 0),
gsSP1Triangle(2, 4, 3, 0),
gsSP1Triangle(4, 5, 3, 0),
gsSP1Triangle(0, 3, 5, 0),
gsSPEndDisplayList(),
};
const Gfx waluigi_face_hair_cap_off_dl[] = {
gsSPVertex(waluigi_face_hair_cap_off_dl_vertex + 0, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(1, 0, 3, 0),
gsSP1Triangle(3, 0, 4, 0),
gsSP1Triangle(0, 5, 4, 0),
gsSP1Triangle(4, 5, 6, 0),
gsSP1Triangle(7, 4, 6, 0),
gsSP1Triangle(6, 8, 7, 0),
gsSP1Triangle(6, 9, 8, 0),
gsSP1Triangle(10, 8, 9, 0),
gsSP1Triangle(10, 11, 8, 0),
gsSP1Triangle(10, 12, 11, 0),
gsSP1Triangle(13, 11, 12, 0),
gsSP1Triangle(14, 13, 12, 0),
gsSP1Triangle(15, 13, 14, 0),
gsSPVertex(waluigi_face_hair_cap_off_dl_vertex + 16, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(1, 3, 2, 0),
gsSP1Triangle(4, 3, 1, 0),
gsSP1Triangle(1, 5, 4, 0),
gsSP1Triangle(1, 6, 5, 0),
gsSP1Triangle(6, 7, 5, 0),
gsSP1Triangle(7, 8, 5, 0),
gsSP1Triangle(2, 8, 7, 0),
gsSP1Triangle(9, 2, 7, 0),
gsSP1Triangle(9, 7, 10, 0),
gsSP1Triangle(10, 7, 11, 0),
gsSP1Triangle(11, 7, 12, 0),
gsSP1Triangle(13, 11, 12, 0),
gsSP1Triangle(13, 14, 11, 0),
gsSP1Triangle(14, 13, 15, 0),
gsSP1Triangle(13, 9, 15, 0),
gsSPVertex(waluigi_face_hair_cap_off_dl_vertex + 32, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(0, 3, 1, 0),
gsSP1Triangle(3, 0, 4, 0),
gsSP1Triangle(5, 3, 4, 0),
gsSP1Triangle(4, 6, 5, 0),
gsSP1Triangle(6, 7, 5, 0),
gsSP1Triangle(7, 6, 8, 0),
gsSP1Triangle(7, 9, 5, 0),
gsSP1Triangle(9, 7, 10, 0),
gsSP1Triangle(9, 10, 11, 0),
gsSP1Triangle(11, 10, 12, 0),
gsSP1Triangle(10, 13, 12, 0),
gsSP1Triangle(13, 14, 12, 0),
gsSP1Triangle(14, 15, 12, 0),
gsSPVertex(waluigi_face_hair_cap_off_dl_vertex + 48, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(3, 0, 2, 0),
gsSP1Triangle(4, 0, 3, 0),
gsSP1Triangle(0, 4, 5, 0),
gsSP1Triangle(5, 4, 6, 0),
gsSP1Triangle(7, 6, 4, 0),
gsSP1Triangle(7, 8, 6, 0),
gsSP1Triangle(9, 8, 7, 0),
gsSP1Triangle(9, 10, 8, 0),
gsSP1Triangle(9, 11, 10, 0),
gsSP1Triangle(11, 12, 10, 0),
gsSP1Triangle(13, 12, 11, 0),
gsSP1Triangle(14, 12, 13, 0),
gsSP1Triangle(15, 14, 13, 0),
gsSPVertex(waluigi_face_hair_cap_off_dl_vertex + 64, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(2, 1, 3, 0),
gsSP1Triangle(2, 3, 4, 0),
gsSP1Triangle(3, 5, 4, 0),
gsSP1Triangle(4, 5, 6, 0),
gsSP1Triangle(4, 6, 7, 0),
gsSP1Triangle(8, 4, 7, 0),
gsSP1Triangle(4, 8, 9, 0),
gsSP1Triangle(9, 10, 4, 0),
gsSP1Triangle(10, 9, 11, 0),
gsSP1Triangle(12, 10, 11, 0),
gsSP1Triangle(12, 11, 13, 0),
gsSP1Triangle(14, 12, 13, 0),
gsSP1Triangle(14, 15, 12, 0),
gsSP1Triangle(15, 0, 12, 0),
gsSP1Triangle(12, 0, 10, 0),
gsSP1Triangle(0, 2, 10, 0),
gsSP1Triangle(2, 4, 10, 0),
gsSPVertex(waluigi_face_hair_cap_off_dl_vertex + 80, 12, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(3, 2, 1, 0),
gsSP1Triangle(1, 4, 3, 0),
gsSP1Triangle(5, 3, 4, 0),
gsSP1Triangle(2, 3, 5, 0),
gsSP1Triangle(6, 7, 8, 0),
gsSP1Triangle(9, 8, 7, 0),
gsSP1Triangle(7, 10, 9, 0),
gsSP1Triangle(10, 11, 9, 0),
gsSP1Triangle(8, 9, 11, 0),
gsSPEndDisplayList(),
};
const Gfx waluigi_nose_cap_off_dl[] = {
gsSPVertex(waluigi_nose_cap_off_dl_vertex + 0, 16, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(1, 3, 2, 0),
gsSP1Triangle(3, 1, 4, 0),
gsSP1Triangle(1, 5, 4, 0),
gsSP1Triangle(4, 5, 6, 0),
gsSP1Triangle(5, 7, 6, 0),
gsSP1Triangle(7, 8, 6, 0),
gsSP1Triangle(8, 9, 6, 0),
gsSP1Triangle(10, 9, 8, 0),
gsSP1Triangle(10, 8, 11, 0),
gsSP1Triangle(10, 11, 12, 0),
gsSP1Triangle(12, 13, 10, 0),
gsSP1Triangle(13, 12, 14, 0),
gsSP1Triangle(12, 15, 14, 0),
gsSP1Triangle(14, 15, 0, 0),
gsSP1Triangle(2, 14, 0, 0),
gsSPVertex(waluigi_nose_cap_off_dl_vertex + 16, 12, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(3, 1, 0, 0),
gsSP1Triangle(4, 3, 0, 0),
gsSP1Triangle(4, 5, 3, 0),
gsSP1Triangle(3, 5, 6, 0),
gsSP1Triangle(5, 7, 6, 0),
gsSP1Triangle(6, 7, 8, 0),
gsSP1Triangle(9, 8, 7, 0),
gsSP1Triangle(9, 10, 8, 0),
gsSP1Triangle(11, 8, 10, 0),
gsSP1Triangle(11, 2, 8, 0),
gsSP1Triangle(1, 8, 2, 0),
gsSP1Triangle(6, 8, 1, 0),
gsSP1Triangle(3, 6, 1, 0),
gsSPEndDisplayList(),
};
const Gfx waluigi_mustache_cap_off_dl[] = {
gsSPVertex(waluigi_mustache_cap_off_dl_vertex + 0, 10, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(0, 2, 3, 0),
gsSP1Triangle(2, 4, 3, 0),
gsSP1Triangle(5, 6, 7, 0),
gsSP1Triangle(5, 8, 6, 0),
gsSP1Triangle(6, 8, 9, 0),
gsSPEndDisplayList(),
};
const Gfx waluigi_mustache_cap_off_dead_dl[] = {
gsSPVertex(waluigi_mustache_cap_off_dead_dl_vertex + 0, 10, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(0, 2, 3, 0),
gsSP1Triangle(2, 4, 3, 0),
gsSP1Triangle(5, 6, 7, 0),
gsSP1Triangle(5, 8, 6, 0),
gsSP1Triangle(6, 8, 9, 0),
gsSPEndDisplayList(),
};
const Gfx waluigi_hair_sideburn_decal_cap_off[] = {
gsDPPipeSync(),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, COMBINED, 0, 0, 0, COMBINED),
gsDPSetCycleType(G_CYC_2CYCLE),
gsSPTexture(65535, 65535, 0, 0, 1),
gsSPLight(&waluigi_black_lights_group.l, 1),
gsSPCopyLightEXT(2, 11),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, waluigi_texture_hair_sideburn),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 1023, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(0, 0, 0, 124, 124),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, waluigi_texture_add_sideburn),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 256, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(6, 0, 0, 1023, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 256, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(1, 0, 0, 124, 124),
gsSPDisplayList(waluigi_hair_sideburn_cap_off_dl),
gsDPSetCycleType(G_CYC_1CYCLE),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0),
gsSPTexture(65535, 65535, 0, 0, 1),
gsSPCopyLightsPlayerPart(SKIN),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, waluigi_texture_skin_sideburn),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 1023, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(0, 0, 0, 124, 124),
gsSPDisplayList(waluigi_hair_sideburn_cap_off_dl),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPEndDisplayList(),
};
const Gfx waluigi_face_cap_off_dl[] = {
gsSPDisplayList(waluigi_face_part_cap_off_dl),
gsSPCopyLightsPlayerPart(HAIR),
gsSPDisplayList(waluigi_face_hair_cap_off_dl),
gsSPLight(&waluigi_pink_lights_group.l, 1),
gsSPLight(&waluigi_pink_lights_group.a, 2),
gsSPDisplayList(waluigi_nose_cap_off_dl),
gsSPClearGeometryMode(G_CULL_BACK),
gsSPLight(&waluigi_black_lights_group.l, 1),
gsSPLight(&waluigi_black_lights_group.a, 2),
gsSPDisplayList(waluigi_mustache_cap_off_dl),
gsSPSetGeometryMode(G_CULL_BACK),
gsSPEndDisplayList(),
};
const Gfx waluigi_face_cap_off_dead_dl[] = {
gsSPDisplayList(waluigi_face_part_cap_off_dl),
gsSPCopyLightsPlayerPart(HAIR),
gsSPDisplayList(waluigi_face_hair_cap_off_dl),
gsSPLight(&waluigi_pink_lights_group.l, 1),
gsSPLight(&waluigi_pink_lights_group.a, 2),
gsSPDisplayList(waluigi_nose_cap_off_dl),
gsSPClearGeometryMode(G_CULL_BACK),
gsSPLight(&waluigi_black_lights_group.l, 1),
gsSPLight(&waluigi_black_lights_group.a, 2),
gsSPDisplayList(waluigi_mustache_cap_off_dead_dl),
gsSPSetGeometryMode(G_CULL_BACK),
gsSPEndDisplayList(),
};
const Gfx waluigi_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, 16, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (64 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_texture_eyes_front),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPCopyLightsPlayerPart(SKIN),
gsSPDisplayList(waluigi_eyes_cap_off_dl),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_texture_mouth),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(waluigi_mouth_cap_off_dl),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPDisplayList(waluigi_face_cap_off_dl),
gsSPEndDisplayList(),
};
const Gfx waluigi_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, 16, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (64 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_texture_eyes_half_closed),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPCopyLightsPlayerPart(SKIN),
gsSPDisplayList(waluigi_eyes_cap_off_dl),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_texture_mouth),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(waluigi_mouth_cap_off_dl),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPDisplayList(waluigi_face_cap_off_dl),
gsSPEndDisplayList(),
};
const Gfx waluigi_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, 16, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (64 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_texture_eyes_closed),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPCopyLightsPlayerPart(SKIN),
gsSPDisplayList(waluigi_eyes_cap_off_dl),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_texture_mouth),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(waluigi_mouth_cap_off_dl),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPDisplayList(waluigi_face_cap_off_dl),
gsSPEndDisplayList(),
};
const Gfx waluigi_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, 16, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (64 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_texture_eyes_right),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPCopyLightsPlayerPart(SKIN),
gsSPDisplayList(waluigi_eyes_cap_off_dl),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_texture_mouth),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(waluigi_mouth_cap_off_dl),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPDisplayList(waluigi_face_cap_off_dl),
gsSPEndDisplayList(),
};
const Gfx waluigi_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, 16, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (64 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_texture_eyes_left),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPCopyLightsPlayerPart(SKIN),
gsSPDisplayList(waluigi_eyes_cap_off_dl),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_texture_mouth),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(waluigi_mouth_cap_off_dl),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPDisplayList(waluigi_face_cap_off_dl),
gsSPEndDisplayList(),
};
const Gfx waluigi_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, 16, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (64 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_texture_eyes_up),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPCopyLightsPlayerPart(SKIN),
gsSPDisplayList(waluigi_eyes_cap_off_dl),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_texture_mouth),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(waluigi_mouth_cap_off_dl),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPDisplayList(waluigi_face_cap_off_dl),
gsSPEndDisplayList(),
};
const Gfx waluigi_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, 16, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (64 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_texture_eyes_down),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPCopyLightsPlayerPart(SKIN),
gsSPDisplayList(waluigi_eyes_cap_off_dl),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_texture_mouth),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(waluigi_mouth_cap_off_dl),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPDisplayList(waluigi_face_cap_off_dl),
gsSPEndDisplayList(),
};
const Gfx waluigi_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, 16, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (64 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_texture_eyes_dead),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPCopyLightsPlayerPart(SKIN),
gsSPDisplayList(waluigi_eyes_cap_off_dl),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_texture_mouth_dead),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(waluigi_mouth_cap_off_dl),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPDisplayList(waluigi_face_cap_off_dead_dl),
gsSPEndDisplayList(),
};
const Gfx waluigi_metal_cap_off_shared_dl[] = {
gsSPDisplayList(waluigi_eyes_cap_off_dl),
gsSPDisplayList(waluigi_mouth_cap_off_dl),
gsSPDisplayList(waluigi_hair_sideburn_cap_off_dl),
gsSPDisplayList(waluigi_face_part_cap_off_dl),
gsSPDisplayList(waluigi_face_hair_cap_off_dl),
gsSPDisplayList(waluigi_nose_cap_off_dl),
gsSPClearGeometryMode(G_CULL_BACK),
gsSPDisplayList(waluigi_mustache_cap_off_dl),
gsSPSetGeometryMode(G_CULL_BACK),
gsSPEndDisplayList(),
};
// 0x04019538
ROM_ASSET_LOAD_VTX(waluigi_left_hand_open_shared_dl_vertex_group1, 0x00114750, 78432, 0x00019538, 224);
// 0x04019618
ROM_ASSET_LOAD_VTX(waluigi_left_hand_open_shared_dl_vertex_group2, 0x00114750, 78432, 0x00019618, 256);
// 0x04019718
ROM_ASSET_LOAD_VTX(waluigi_left_hand_open_shared_dl_vertex_group3, 0x00114750, 78432, 0x00019718, 256);
// 0x04019818
ROM_ASSET_LOAD_VTX(waluigi_left_hand_open_shared_dl_vertex_group4, 0x00114750, 78432, 0x00019818, 256);
// 0x04019918
ROM_ASSET_LOAD_VTX(waluigi_left_hand_open_shared_dl_vertex_group5, 0x00114750, 78432, 0x00019918, 256);
// 0x04019A18
ROM_ASSET_LOAD_VTX(waluigi_left_hand_open_shared_dl_vertex_group6, 0x00114750, 78432, 0x00019a18, 80);
// 0x04019A68 - 0x04019CA0
const Gfx waluigi_left_hand_open_shared_dl[] = {
gsSPVertex(waluigi_left_hand_open_shared_dl_vertex_group1, 14, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0),
gsSP2Triangles( 4, 5, 6, 0x0, 6, 3, 7, 0x0),
gsSP2Triangles( 1, 0, 5, 0x0, 5, 4, 1, 0x0),
gsSP2Triangles( 5, 3, 6, 0x0, 8, 9, 10, 0x0),
gsSP2Triangles( 8, 11, 9, 0x0, 12, 13, 11, 0x0),
gsSPVertex(waluigi_left_hand_open_shared_dl_vertex_group2, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0),
gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0),
gsSP2Triangles( 0, 10, 7, 0x0, 11, 10, 0, 0x0),
gsSP2Triangles(12, 13, 11, 0x0, 9, 8, 13, 0x0),
gsSP2Triangles( 7, 5, 8, 0x0, 10, 14, 7, 0x0),
gsSP2Triangles(11, 14, 10, 0x0, 13, 4, 11, 0x0),
gsSP2Triangles( 8, 5, 13, 0x0, 3, 15, 1, 0x0),
gsSPVertex(waluigi_left_hand_open_shared_dl_vertex_group3, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0),
gsSP2Triangles( 4, 5, 3, 0x0, 6, 7, 8, 0x0),
gsSP2Triangles( 1, 9, 10, 0x0, 5, 11, 1, 0x0),
gsSP2Triangles(12, 13, 5, 0x0, 14, 9, 15, 0x0),
gsSP1Triangle( 4, 7, 12, 0x0),
gsSPVertex(waluigi_left_hand_open_shared_dl_vertex_group4, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 4, 0x0),
gsSP2Triangles( 5, 6, 7, 0x0, 7, 0, 2, 0x0),
gsSP2Triangles( 8, 6, 5, 0x0, 5, 9, 10, 0x0),
gsSP2Triangles(11, 3, 2, 0x0, 2, 12, 11, 0x0),
gsSP2Triangles( 3, 13, 9, 0x0, 6, 0, 7, 0x0),
gsSP2Triangles( 7, 4, 9, 0x0, 10, 14, 15, 0x0),
gsSP1Triangle(15, 14, 11, 0x0),
gsSPVertex(waluigi_left_hand_open_shared_dl_vertex_group5, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0),
gsSP2Triangles( 4, 3, 5, 0x0, 5, 6, 7, 0x0),
gsSP2Triangles( 7, 6, 0, 0x0, 2, 8, 9, 0x0),
gsSP2Triangles( 4, 10, 8, 0x0, 11, 10, 4, 0x0),
gsSP2Triangles( 7, 12, 11, 0x0, 9, 12, 7, 0x0),
gsSP2Triangles( 6, 3, 1, 0x0, 6, 5, 3, 0x0),
gsSP2Triangles(11, 12, 13, 0x0, 14, 10, 11, 0x0),
gsSP2Triangles( 8, 10, 15, 0x0, 10, 14, 15, 0x0),
gsSPVertex(waluigi_left_hand_open_shared_dl_vertex_group6, 5, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0),
gsSPEndDisplayList(),
};
const Gfx waluigi_left_hand_open[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c
gsSPDisplayList(waluigi_left_hand_open_shared_dl),
gsSPEndDisplayList(),
};
// 0x04019CC0
ROM_ASSET_LOAD_VTX(waluigi_right_hand_open_dl_vertex_group1, 0x00114750, 78432, 0x00019cc0, 224);
// 0x04019DA0
ROM_ASSET_LOAD_VTX(waluigi_right_hand_open_dl_vertex_group2, 0x00114750, 78432, 0x00019da0, 256);
// 0x04019EA0
ROM_ASSET_LOAD_VTX(waluigi_right_hand_open_dl_vertex_group3, 0x00114750, 78432, 0x00019ea0, 256);
// 0x04019FA0
ROM_ASSET_LOAD_VTX(waluigi_right_hand_open_dl_vertex_group4, 0x00114750, 78432, 0x00019fa0, 256);
// 0x0401A0A0
ROM_ASSET_LOAD_VTX(waluigi_right_hand_open_dl_vertex_group5, 0x00114750, 78432, 0x0001a0a0, 256);
// 0x0401A1A0
ROM_ASSET_LOAD_VTX(waluigi_right_hand_open_dl_vertex_group6, 0x00114750, 78432, 0x0001a1a0, 80);
// 0x0401A1F0 - 0x0401A428
const Gfx waluigi_right_hand_open_dl[] = {
gsSPVertex(waluigi_right_hand_open_dl_vertex_group1, 14, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
gsSP2Triangles( 4, 5, 6, 0x0, 7, 3, 4, 0x0),
gsSP2Triangles( 5, 2, 1, 0x0, 1, 6, 5, 0x0),
gsSP2Triangles( 4, 3, 5, 0x0, 8, 9, 10, 0x0),
gsSP2Triangles( 9, 11, 10, 0x0, 11, 12, 13, 0x0),
gsSPVertex(waluigi_right_hand_open_dl_vertex_group2, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0),
gsSP2Triangles( 4, 5, 6, 0x0, 7, 8, 9, 0x0),
gsSP2Triangles( 9, 10, 2, 0x0, 2, 10, 11, 0x0),
gsSP2Triangles(11, 12, 13, 0x0, 12, 8, 7, 0x0),
gsSP2Triangles( 8, 5, 9, 0x0, 9, 14, 10, 0x0),
gsSP2Triangles(10, 14, 11, 0x0, 11, 6, 12, 0x0),
gsSP2Triangles(12, 5, 8, 0x0, 1, 15, 3, 0x0),
gsSPVertex(waluigi_right_hand_open_dl_vertex_group3, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0),
gsSP2Triangles( 3, 4, 5, 0x0, 6, 7, 8, 0x0),
gsSP2Triangles( 9, 10, 1, 0x0, 1, 11, 4, 0x0),
gsSP2Triangles( 4, 12, 13, 0x0, 14, 10, 15, 0x0),
gsSP1Triangle(13, 7, 5, 0x0),
gsSPVertex(waluigi_right_hand_open_dl_vertex_group4, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0),
gsSP2Triangles( 5, 6, 7, 0x0, 0, 2, 5, 0x0),
gsSP2Triangles( 7, 6, 8, 0x0, 9, 10, 7, 0x0),
gsSP2Triangles( 0, 4, 11, 0x0, 11, 12, 0, 0x0),
gsSP2Triangles(10, 13, 4, 0x0, 5, 2, 6, 0x0),
gsSP2Triangles(10, 3, 5, 0x0, 14, 15, 9, 0x0),
gsSP1Triangle(11, 15, 14, 0x0),
gsSPVertex(waluigi_right_hand_open_dl_vertex_group5, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0),
gsSP2Triangles( 5, 4, 3, 0x0, 6, 7, 5, 0x0),
gsSP2Triangles( 2, 7, 6, 0x0, 8, 9, 0, 0x0),
gsSP2Triangles( 9, 10, 3, 0x0, 3, 10, 11, 0x0),
gsSP2Triangles(11, 12, 6, 0x0, 6, 12, 8, 0x0),
gsSP2Triangles( 1, 4, 7, 0x0, 4, 5, 7, 0x0),
gsSP2Triangles(13, 12, 11, 0x0, 11, 10, 14, 0x0),
gsSP2Triangles(15, 10, 9, 0x0, 15, 14, 10, 0x0),
gsSPVertex(waluigi_right_hand_open_dl_vertex_group6, 5, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 4, 0x0),
gsSPEndDisplayList(),
};
const Gfx waluigi_right_hand_open[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c
gsSPDisplayList(waluigi_right_hand_open_dl),
gsSPEndDisplayList(),
};
const Gfx waluigi_metal_right_hand_open[] = {
gsSPDisplayList(waluigi_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(),
};
// 0x0401A478
ROM_ASSET_LOAD_VTX(waluigi_right_hand_cap_r_logo_dl_vertex, 0x00114750, 78432, 0x0001a478, 80);
// 0x0401A4C8
ROM_ASSET_LOAD_VTX(waluigi_right_hand_cap_hand_position_dl_vertex_group1, 0x00114750, 78432, 0x0001a4c8, 240);
// 0x0401A5B8
ROM_ASSET_LOAD_VTX(waluigi_right_hand_cap_hand_position_dl_vertex_group2, 0x00114750, 78432, 0x0001a5b8, 256);
// 0x0401A6B8
ROM_ASSET_LOAD_VTX(waluigi_right_hand_cap_hand_position_dl_vertex_group3, 0x00114750, 78432, 0x0001a6b8, 224);
// 0x0401A798
ROM_ASSET_LOAD_VTX(waluigi_right_hand_cap_top_dl_vertex_group1, 0x00114750, 78432, 0x0001a798, 240);
// 0x0401A888
ROM_ASSET_LOAD_VTX(waluigi_right_hand_cap_top_dl_vertex_group2, 0x00114750, 78432, 0x0001a888, 256);
// 0x0401A988
ROM_ASSET_LOAD_VTX(waluigi_right_hand_cap_top_dl_vertex_group3, 0x00114750, 78432, 0x0001a988, 256);
// 0x0401AA88
ROM_ASSET_LOAD_VTX(waluigi_right_hand_cap_top_dl_vertex_group4, 0x00114750, 78432, 0x0001aa88, 128);
// 0x0401AB08
ROM_ASSET_LOAD_VTX(waluigi_right_hand_cap_bottom_dl_vertex, 0x00114750, 78432, 0x0001ab08, 160);
// 0x0401ABA8 - 0x0401ABD0
const Gfx waluigi_right_hand_cap_r_logo_dl[] = {
gsSPVertex(waluigi_right_hand_cap_r_logo_dl_vertex, 5, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 2, 0x0),
gsSP1Triangle( 1, 4, 3, 0x0),
gsSPEndDisplayList(),
};
// 0x0401ABD0 - 0x0401AD40
const Gfx waluigi_right_hand_cap_top_dl[] = {
gsSPVertex(waluigi_right_hand_cap_top_dl_vertex_group1, 15, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0),
gsSP2Triangles( 2, 4, 5, 0x0, 6, 2, 1, 0x0),
gsSP2Triangles( 2, 6, 4, 0x0, 7, 4, 8, 0x0),
gsSP2Triangles( 8, 4, 6, 0x0, 4, 9, 5, 0x0),
gsSP2Triangles( 4, 7, 9, 0x0, 5, 9, 10, 0x0),
gsSP2Triangles(11, 12, 13, 0x0, 13, 14, 11, 0x0),
gsSPVertex(waluigi_right_hand_cap_top_dl_vertex_group2, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0),
gsSP2Triangles( 0, 3, 1, 0x0, 5, 2, 1, 0x0),
gsSP2Triangles( 6, 7, 8, 0x0, 0, 9, 3, 0x0),
gsSP2Triangles(10, 9, 0, 0x0, 11, 12, 2, 0x0),
gsSP2Triangles( 2, 5, 11, 0x0, 3, 9, 4, 0x0),
gsSP2Triangles(13, 14, 15, 0x0, 11, 5, 14, 0x0),
gsSP1Triangle( 7, 14, 5, 0x0),
gsSPVertex(waluigi_right_hand_cap_top_dl_vertex_group3, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0),
gsSP2Triangles( 0, 4, 1, 0x0, 5, 6, 7, 0x0),
gsSP2Triangles( 7, 8, 9, 0x0, 7, 6, 8, 0x0),
gsSP2Triangles(10, 7, 9, 0x0, 11, 12, 9, 0x0),
gsSP2Triangles(10, 13, 14, 0x0, 12, 13, 10, 0x0),
gsSP1Triangle(13, 12, 15, 0x0),
gsSPVertex(waluigi_right_hand_cap_top_dl_vertex_group4, 8, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0),
gsSP2Triangles( 3, 4, 5, 0x0, 3, 5, 6, 0x0),
gsSP1Triangle( 7, 0, 2, 0x0),
gsSPEndDisplayList(),
};
// 0x0401AD40 - 0x0401AED0
const Gfx waluigi_right_hand_cap_hand_position_dl[] = {
gsSPVertex(waluigi_right_hand_cap_hand_position_dl_vertex_group1, 15, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0),
gsSP2Triangles( 2, 1, 4, 0x0, 2, 5, 6, 0x0),
gsSP2Triangles( 6, 3, 2, 0x0, 5, 2, 4, 0x0),
gsSP2Triangles( 3, 7, 0, 0x0, 3, 6, 8, 0x0),
gsSP2Triangles( 3, 8, 7, 0x0, 9, 0, 7, 0x0),
gsSP2Triangles(10, 0, 9, 0x0, 1, 0, 10, 0x0),
gsSP2Triangles(11, 1, 10, 0x0, 11, 4, 1, 0x0),
gsSP2Triangles( 7, 12, 13, 0x0, 8, 12, 7, 0x0),
gsSP2Triangles(13, 14, 7, 0x0, 7, 14, 9, 0x0),
gsSPVertex(waluigi_right_hand_cap_hand_position_dl_vertex_group2, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP2Triangles( 4, 3, 6, 0x0, 6, 2, 4, 0x0),
gsSP2Triangles( 7, 5, 4, 0x0, 8, 9, 3, 0x0),
gsSP2Triangles( 3, 9, 10, 0x0, 10, 6, 3, 0x0),
gsSP2Triangles( 5, 11, 3, 0x0, 3, 11, 8, 0x0),
gsSP2Triangles(10, 0, 6, 0x0, 6, 0, 2, 0x0),
gsSP2Triangles( 2, 1, 12, 0x0, 5, 13, 11, 0x0),
gsSP2Triangles( 1, 14, 12, 0x0, 14, 15, 12, 0x0),
gsSPVertex(waluigi_right_hand_cap_hand_position_dl_vertex_group3, 14, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0),
gsSP2Triangles( 4, 5, 6, 0x0, 6, 5, 7, 0x0),
gsSP2Triangles( 7, 5, 8, 0x0, 8, 5, 9, 0x0),
gsSP2Triangles( 3, 10, 1, 0x0, 11, 10, 3, 0x0),
gsSP2Triangles( 1, 10, 2, 0x0, 2, 10, 12, 0x0),
gsSP2Triangles(12, 10, 13, 0x0, 10, 11, 13, 0x0),
gsSPEndDisplayList(),
};
// 0x0401AED0 - 0x0401AF20
const Gfx waluigi_right_hand_cap_bottom_dl[] = {
gsSPVertex(waluigi_right_hand_cap_bottom_dl_vertex, 10, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0),
gsSP2Triangles( 4, 3, 2, 0x0, 5, 4, 2, 0x0),
gsSP2Triangles( 6, 5, 2, 0x0, 6, 2, 7, 0x0),
gsSP2Triangles( 8, 9, 6, 0x0, 6, 7, 8, 0x0),
gsSPEndDisplayList(),
};
const Gfx waluigi_right_hand_cap_decal[] = {
gsDPPipeSync(),
gsDPSetCombineLERP(TEXEL0, SHADE, TEXEL1, SHADE, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, SHADE, TEXEL1, SHADE, TEXEL0, 0, ENVIRONMENT, 0),
gsSPTexture(65535, 65535, 0, 0, 1),
gsSPLight(&waluigi_black_lights_group.l, 1),
gsSPCopyLightEXT(2, 17),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, waluigi_texture_r_logo),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 1023, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(0, 0, 0, 124, 124),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, waluigi_texture_r_blend),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 256, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(6, 0, 0, 1023, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 256, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(1, 0, 0, 124, 124),
gsSPDisplayList(waluigi_right_hand_cap_r_logo_dl),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineLERP(TEXEL0, SHADE, TEXEL0_ALPHA, SHADE, TEXEL1, 0, ENVIRONMENT, 0, TEXEL0, SHADE, TEXEL0_ALPHA, SHADE, TEXEL1, 0, ENVIRONMENT, 0),
gsSPTexture(65535, 65535, 0, 0, 1),
gsSPCopyLightsPlayerPart(CAP),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, waluigi_texture_r_logo),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 1023, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(0, 0, 0, 124, 124),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, waluigi_texture_r_cap),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 256, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(6, 0, 0, 1023, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 256, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(1, 0, 0, 124, 124),
gsSPDisplayList(waluigi_right_hand_cap_r_logo_dl),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPEndDisplayList(),
};
const Gfx waluigi_right_hand_cap_dl[] = {
gsSPCopyLightsPlayerPart(CAP),
gsSPDisplayList(waluigi_right_hand_cap_top_dl),
gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c
gsSPDisplayList(waluigi_right_hand_cap_hand_position_dl),
gsDPSetCombineLERP(SHADE, 0, PRIMITIVE, 0, 0, 0, 0, ENVIRONMENT, SHADE, 0, PRIMITIVE, 0, 0, 0, 0, ENVIRONMENT),
gsSPTexture(65535, 65535, 0, 0, 1),
gsDPSetPrimColor(0, 0, 115, 115, 115, 255),
gsSPCopyLightsPlayerPart(CAP),
gsSPDisplayList(waluigi_right_hand_cap_bottom_dl),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPEndDisplayList(),
};
// 0x0401AF60
static const Vtx waluigi_right_hand_cap_wings_half_1_dl_vertex[] = {
{{{ 368, 146, 7}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}},
{{{ 166, 37, 68}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}},
{{{ 212, 96, 143}, 0, { 990, 2012}, {0xff, 0xff, 0xff, 0xff}}},
{{{ 368, 146, 7}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}},
{{{ 322, 87, -67}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
{{{ 166, 37, 68}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}},
{{{ 178, -177, 128}, 0, { 990, 2012}, {0xff, 0xff, 0xff, 0xff}}},
{{{ 149, -100, 60}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}},
{{{ 319, -248, -14}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}},
{{{ 290, -171, -81}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
};
// 0x0401B000
static const Vtx waluigi_right_hand_cap_wings_half_2_dl_vertex[] = {
{{{ 414, 206, 82}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}},
{{{ 212, 96, 143}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}},
{{{ 258, 156, 218}, 0, { 990, 2012}, {0xff, 0xff, 0xff, 0xff}}},
{{{ 368, 146, 7}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
{{{ 178, -177, 128}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}},
{{{ 319, -248, -14}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
{{{ 349, -325, 53}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}},
{{{ 207, -253, 195}, 0, { 990, 2012}, {0xff, 0xff, 0xff, 0xff}}},
};
// 0x0401B080 - 0x0401B0B0
const Gfx waluigi_right_hand_cap_wings_half_1_dl[] = {
gsSPVertex(waluigi_right_hand_cap_wings_half_1_dl_vertex, 10, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP2Triangles( 6, 7, 8, 0x0, 7, 9, 8, 0x0),
gsSPEndDisplayList(),
};
// 0x0401B0B0 - 0x0401B0E0
const Gfx waluigi_right_hand_cap_wings_half_2_dl[] = {
gsSPVertex(waluigi_right_hand_cap_wings_half_2_dl_vertex, 8, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0),
gsSP2Triangles( 4, 5, 6, 0x0, 7, 4, 6, 0x0),
gsSPEndDisplayList(),
};
const Gfx waluigi_right_hand_cap_wings_intial_dl[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsSPLight(&waluigi_white_lights_group.l, 1),
gsSPLight(&waluigi_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 waluigi_right_hand_cap_wings_transparent_intial_dl[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALFADEA, G_CC_DECALFADEA),
gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsSPLight(&waluigi_white_lights_group.l, 1),
gsSPLight(&waluigi_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 waluigi_right_hand_cap_metal_wings_intial_dl[] = {
gsDPPipeSync(),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, TEXEL1, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, TEXEL1, TEXEL0, 0, ENVIRONMENT, 0),
gsSPClearGeometryMode(G_TEXTURE_GEN | G_CULL_BACK),
gsSPTexture(65535, 65535, 0, 0, 1),
gsSPLight(&waluigi_black_lights_group.l, 1),
gsSPCopyLightEXT(2, 15),
gsSPEndDisplayList(),
};
const Gfx waluigi_right_hand_cap_wings_end_dl[] = {
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK),
gsSPEndDisplayList(),
};
const Gfx waluigi_right_hand_cap[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPDisplayList(waluigi_right_hand_cap_dl),
gsSPEndDisplayList(),
};
const Gfx waluigi_right_hand_cap_wings[] = {
gsSPDisplayList(waluigi_right_hand_cap_wings_intial_dl),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_texture_wings_half_1),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(waluigi_right_hand_cap_wings_half_1_dl),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_texture_wings_half_2),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(waluigi_right_hand_cap_wings_half_2_dl),
gsSPDisplayList(waluigi_right_hand_cap_wings_end_dl),
gsSPEndDisplayList(),
};
const Gfx waluigi_right_hand_cap_wings_transparent[] = {
gsSPDisplayList(waluigi_right_hand_cap_wings_transparent_intial_dl),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_texture_wings_half_1),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(waluigi_right_hand_cap_wings_half_1_dl),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_texture_wings_half_2),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(waluigi_right_hand_cap_wings_half_2_dl),
gsSPDisplayList(waluigi_right_hand_cap_wings_end_dl),
gsSPEndDisplayList(),
};
const Gfx waluigi_metal_right_hand_cap_shared_dl[] = {
gsSPDisplayList(waluigi_right_hand_cap_r_logo_dl),
gsSPDisplayList(waluigi_right_hand_cap_top_dl),
gsSPDisplayList(waluigi_right_hand_cap_hand_position_dl),
gsSPDisplayList(waluigi_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 waluigi_metal_right_hand_cap_shared_dl_wings[] = {
gsSPDisplayList(waluigi_right_hand_cap_metal_wings_intial_dl),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, waluigi_texture_metal_wings_half_1_shade),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 2047, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(0, 0, 0, 124, 252),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, waluigi_texture_metal_wings_half_1_light),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 512, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(6, 0, 0, 2047, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(1, 0, 0, 124, 252),
gsSPDisplayList(waluigi_right_hand_cap_wings_half_1_dl),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, waluigi_texture_metal_wings_half_2_shade),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 2047, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(0, 0, 0, 124, 252),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, waluigi_texture_metal_wings_half_2_light),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 512, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(6, 0, 0, 2047, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(1, 0, 0, 124, 252),
gsSPDisplayList(waluigi_right_hand_cap_wings_half_2_dl),
gsSPDisplayList(waluigi_right_hand_cap_wings_end_dl),
gsSPEndDisplayList(),
};
const Gfx waluigi_metal_right_hand_cap_shared_dl_wings_transparent[] = {
gsSPDisplayList(waluigi_right_hand_cap_metal_wings_intial_dl),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, waluigi_texture_metal_wings_half_1_shade),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 2047, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(0, 0, 0, 124, 252),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, waluigi_texture_metal_wings_half_1_light),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 512, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(6, 0, 0, 2047, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(1, 0, 0, 124, 252),
gsSPDisplayList(waluigi_right_hand_cap_wings_half_1_dl),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, waluigi_texture_metal_wings_half_2_shade),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 2047, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(0, 0, 0, 124, 252),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, waluigi_texture_metal_wings_half_2_light),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 512, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(6, 0, 0, 2047, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(1, 0, 0, 124, 252),
gsSPDisplayList(waluigi_right_hand_cap_wings_half_2_dl),
gsSPDisplayList(waluigi_right_hand_cap_wings_end_dl),
gsSPEndDisplayList(),
};
// 0x0401B2D0
ROM_ASSET_LOAD_VTX(waluigi_right_hand_peace_shared_dl_vertex_group1, 0x00114750, 78432, 0x0001b2d0, 256);
// 0x0401B3D0
ROM_ASSET_LOAD_VTX(waluigi_right_hand_peace_shared_dl_vertex_group2, 0x00114750, 78432, 0x0001b3d0, 224);
// 0x0401B4B0
ROM_ASSET_LOAD_VTX(waluigi_right_hand_peace_shared_dl_vertex_group3, 0x00114750, 78432, 0x0001b4b0, 240);
// 0x0401B5A0
ROM_ASSET_LOAD_VTX(waluigi_right_hand_peace_shared_dl_vertex_group4, 0x00114750, 78432, 0x0001b5a0, 256);
// 0x0401B6A0
ROM_ASSET_LOAD_VTX(waluigi_right_hand_peace_shared_dl_vertex_group5, 0x00114750, 78432, 0x0001b6a0, 256);
// 0x0401B7A0
ROM_ASSET_LOAD_VTX(waluigi_right_hand_peace_shared_dl_vertex_group6, 0x00114750, 78432, 0x0001b7a0, 240);
// 0x0401B890
ROM_ASSET_LOAD_VTX(waluigi_right_hand_peace_shared_dl_vertex_group7, 0x00114750, 78432, 0x0001b890, 240);
// 0x0401B980
ROM_ASSET_LOAD_VTX(waluigi_right_hand_peace_shared_dl_vertex_group8, 0x00114750, 78432, 0x0001b980, 240);
// 0x0401BA70
ROM_ASSET_LOAD_VTX(waluigi_right_hand_peace_shared_dl_vertex_group9, 0x00114750, 78432, 0x0001ba70, 256);
// 0x0401BB70
ROM_ASSET_LOAD_VTX(waluigi_right_hand_peace_shared_dl_vertex_group10, 0x00114750, 78432, 0x0001bb70, 224);
// 0x0401BC50
ROM_ASSET_LOAD_VTX(waluigi_right_hand_peace_shared_dl_vertex_group11, 0x00114750, 78432, 0x0001bc50, 48);
// 0x0401BC80 - 0x0401BF30
const Gfx waluigi_right_hand_peace_shared_dl[] = {
gsSPVertex(waluigi_right_hand_peace_shared_dl_vertex_group1, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0),
gsSP2Triangles( 2, 4, 3, 0x0, 5, 6, 7, 0x0),
gsSP2Triangles( 8, 7, 9, 0x0, 7, 6, 10, 0x0),
gsSP2Triangles( 7, 10, 9, 0x0, 11, 8, 9, 0x0),
gsSP2Triangles( 7, 12, 5, 0x0, 10, 13, 14, 0x0),
gsSP2Triangles( 6, 15, 10, 0x0, 10, 14, 9, 0x0),
gsSPVertex(waluigi_right_hand_peace_shared_dl_vertex_group2, 14, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 1, 3, 4, 0x0),
gsSP2Triangles( 5, 6, 7, 0x0, 8, 0, 9, 0x0),
gsSP2Triangles(10, 11, 12, 0x0, 10, 12, 13, 0x0),
gsSPVertex(waluigi_right_hand_peace_shared_dl_vertex_group3, 15, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0),
gsSP2Triangles( 7, 6, 8, 0x0, 7, 8, 9, 0x0),
gsSP2Triangles( 9, 8, 10, 0x0, 9, 10, 11, 0x0),
gsSP1Triangle(12, 13, 14, 0x0),
gsSPVertex(waluigi_right_hand_peace_shared_dl_vertex_group4, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0),
gsSP2Triangles( 2, 12, 13, 0x0, 3, 5, 12, 0x0),
gsSP1Triangle(12, 14, 15, 0x0),
gsSPVertex(waluigi_right_hand_peace_shared_dl_vertex_group5, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0),
gsSP2Triangles( 9, 11, 12, 0x0, 13, 14, 15, 0x0),
gsSPVertex(waluigi_right_hand_peace_shared_dl_vertex_group6, 15, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP2Triangles( 4, 3, 6, 0x0, 7, 8, 9, 0x0),
gsSP2Triangles( 4, 10, 11, 0x0, 12, 13, 14, 0x0),
gsSPVertex(waluigi_right_hand_peace_shared_dl_vertex_group7, 15, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 7, 0x0),
gsSP2Triangles(10, 9, 11, 0x0, 12, 13, 14, 0x0),
gsSPVertex(waluigi_right_hand_peace_shared_dl_vertex_group8, 15, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0),
gsSP2Triangles( 4, 5, 6, 0x0, 3, 2, 7, 0x0),
gsSP2Triangles( 8, 3, 7, 0x0, 9, 10, 11, 0x0),
gsSP1Triangle(12, 13, 14, 0x0),
gsSPVertex(waluigi_right_hand_peace_shared_dl_vertex_group9, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0),
gsSP2Triangles(12, 13, 14, 0x0, 12, 14, 15, 0x0),
gsSPVertex(waluigi_right_hand_peace_shared_dl_vertex_group10, 14, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0),
gsSP2Triangles( 8, 9, 10, 0x0, 8, 10, 11, 0x0),
gsSP2Triangles(12, 13, 9, 0x0, 12, 9, 8, 0x0),
gsSPVertex(waluigi_right_hand_peace_shared_dl_vertex_group11, 3, 0),
gsSP1Triangle( 0, 1, 2, 0x0),
gsSPEndDisplayList(),
};
const Gfx waluigi_right_hand_peace[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c
gsSPDisplayList(waluigi_right_hand_peace_shared_dl),
gsSPEndDisplayList(),
};
// 0x0401C940
static const Vtx waluigi_wings_half_1_dl_vertex[] = {
{{{ -105, 212, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
{{{ -105, 0, 0}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}},
{{{ 0, 0, 0}, 0, { 990, 2012}, {0xff, 0xff, 0xff, 0xff}}},
{{{ 0, 212, 0}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}},
};
// 0x0401C980
static const Vtx waluigi_wings_half_2_dl_vertex[] = {
{{{ 0, 0, 0}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}},
{{{ 106, 212, 0}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}},
{{{ 0, 212, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
{{{ 106, 0, 0}, 0, { 990, 2012}, {0xff, 0xff, 0xff, 0xff}}},
};
// 0x0401C9C0 - 0x0401C9E0
const Gfx waluigi_wings_half_1_dl[] = {
gsSPVertex(waluigi_wings_half_1_dl_vertex, 4, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
gsSPEndDisplayList(),
};
// 0x0401C9E0 - 0x0401CA00
const Gfx waluigi_wings_half_2_dl[] = {
gsSPVertex(waluigi_wings_half_2_dl_vertex, 4, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0),
gsSPEndDisplayList(),
};
// 0x0401CA00 - 0x0401CAB8
const Gfx waluigi_cap_wings[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC),
gsSPLight(&waluigi_white_lights_group.l, 1),
gsSPLight(&waluigi_white_lights_group.a, 2),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_texture_wings_half_1),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(waluigi_wings_half_1_dl),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_texture_wings_half_2),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(waluigi_wings_half_2_dl),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK),
gsSPEndDisplayList(),
};
// 0x0401CAB8 - 0x0401CB70
const Gfx waluigi_cap_wings_transparent[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALFADEA, G_CC_DECALFADEA),
gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC),
gsSPLight(&waluigi_white_lights_group.l, 1),
gsSPLight(&waluigi_white_lights_group.a, 2),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_texture_wings_half_1),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(waluigi_wings_half_1_dl),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_texture_wings_half_2),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(waluigi_wings_half_2_dl),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK),
gsSPEndDisplayList(),
};
// 0x0401CB70 - 0x0401CC28
const Gfx waluigi_metal_cap_wings[] = {
gsDPPipeSync(),
gsSPClearGeometryMode(G_TEXTURE_GEN | G_CULL_BACK),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, TEXEL1, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, TEXEL1, TEXEL0, 0, ENVIRONMENT, 0),
gsSPTexture(65535, 65535, 0, 0, 1),
gsSPLight(&waluigi_black_lights_group.l, 1),
gsSPCopyLightEXT(2, 15),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, waluigi_texture_metal_wings_half_1_shade),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 2047, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(0, 0, 0, 124, 252),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, waluigi_texture_metal_wings_half_1_light),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 512, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(6, 0, 0, 2047, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(1, 0, 0, 124, 252),
gsSPDisplayList(waluigi_wings_half_1_dl),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, waluigi_texture_metal_wings_half_2_shade),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 2047, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(0, 0, 0, 124, 252),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, waluigi_texture_metal_wings_half_2_light),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 512, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(6, 0, 0, 2047, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(1, 0, 0, 124, 252),
gsSPDisplayList(waluigi_wings_half_2_dl),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK),
gsSPEndDisplayList(),
};
// 0x0401CC28 - 0x0401CD20
const Gfx waluigi_metal_cap_wings_transparent[] = {
gsDPPipeSync(),
gsSPClearGeometryMode(G_TEXTURE_GEN | G_CULL_BACK),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, TEXEL1, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, TEXEL1, TEXEL0, 0, ENVIRONMENT, 0),
gsSPTexture(65535, 65535, 0, 0, 1),
gsSPLight(&waluigi_black_lights_group.l, 1),
gsSPCopyLightEXT(2, 15),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, waluigi_texture_metal_wings_half_1_shade),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 2047, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(0, 0, 0, 124, 252),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, waluigi_texture_metal_wings_half_1_light),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 512, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(6, 0, 0, 2047, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(1, 0, 0, 124, 252),
gsSPDisplayList(waluigi_wings_half_1_dl),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, waluigi_texture_metal_wings_half_2_shade),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 2047, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(0, 0, 0, 124, 252),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, waluigi_texture_metal_wings_half_2_light),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 512, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(6, 0, 0, 2047, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(1, 0, 0, 124, 252),
gsSPDisplayList(waluigi_wings_half_2_dl),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK),
gsSPEndDisplayList(),
};
const Gfx waluigi_material_revert_render_settings[] = {
gsDPPipeSync(),
gsSPSetGeometryMode(G_LIGHTING),
gsSPClearGeometryMode(G_TEXTURE_GEN),
gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT),
gsSPTexture(65535, 65535, 0, 0, 0),
gsDPSetEnvColor(255, 255, 255, 255),
gsDPSetAlphaCompare(G_AC_NONE),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, 0),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 1023, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(0, 0, 0, 124, 124),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, 0),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 256, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(6, 0, 0, 1023, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 256, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(1, 0, 0, 124, 124),
gsSPEndDisplayList(),
};