From a8e397047a5e330bf6fda5dcd00ac128001d95a5 Mon Sep 17 00:00:00 2001 From: PeachyPeach <72323920+PeachyPeachSM64@users.noreply.github.com> Date: Mon, 31 Oct 2022 01:30:40 +0100 Subject: [PATCH] CAP color; near/far warning fix (#214) Added CAP color part; Player's cap no longer uses the SHIRT color Added METAL color as an alias of CAP color; Metal characters now uses the CAP color to tint the metal texture (was SHIRT color) Fixed the cap inside color (was HAIR color) Fixed the near/far warning --- actors/luigi/model.inc.c | 17 +++++-- actors/luigi_cap/model.inc.c | 10 ++-- actors/mario/model.inc.c | 31 +++++++++--- actors/mario_cap/model.inc.c | 10 ++-- actors/toad_player/model.inc.c | 14 +++--- actors/waluigi/model.inc.c | 28 ++++++++--- actors/waluigi_cap/model.inc.c | 10 ++-- actors/wario/model.inc.c | 26 ++++++---- actors/wario_cap/model.inc.c | 10 ++-- autogen/lua_definitions/constants.lua | 8 +++- data/dynos_bin_gfx.cpp | 2 + docs/lua/constants.md | 4 +- src/engine/graph_node.h | 2 + src/game/characters.c | 68 +++++++++++++-------------- src/game/characters.h | 2 +- src/pc/configfile.c | 3 +- src/pc/djui/djui_panel_player.c | 2 +- src/pc/lua/smlua_constants_autogen.c | 4 +- 18 files changed, 158 insertions(+), 93 deletions(-) diff --git a/actors/luigi/model.inc.c b/actors/luigi/model.inc.c index af45ea4e7..ffe1cefb4 100644 --- a/actors/luigi/model.inc.c +++ b/actors/luigi/model.inc.c @@ -239,7 +239,7 @@ const Gfx luigi_metal_butt[] = { gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), gsDPLoadTextureBlock(luigi_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), - gsSPCopyLightsPlayerPart(SHIRT), + gsSPCopyLightsPlayerPart(METAL), gsSPDisplayList(luigi_butt_dl), gsSPEndDisplayList(), }; @@ -795,7 +795,7 @@ const Gfx luigi_metal_left_thigh[] = { gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), gsDPLoadTextureBlock(luigi_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), - gsSPCopyLightsPlayerPart(SHIRT), + gsSPCopyLightsPlayerPart(METAL), gsSPDisplayList(luigi_left_thigh_dl), gsSPEndDisplayList(), }; @@ -1897,7 +1897,7 @@ const Gfx luigi_face_back_hair_cap_on_dl[] = { const Gfx luigi_face_cap_on_dl[] = { gsSPDisplayList(luigi_face_part_cap_on_dl), - gsSPCopyLightsPlayerPart(SHIRT), // gsSPLight(&luigi_green_lights_group.a, 2), + gsSPCopyLightsPlayerPart(CAP), // gsSPLight(&luigi_green_lights_group.a, 2), gsSPDisplayList(luigi_face_cap_dl), gsSPCopyLightsPlayerPart(HAIR), gsSPDisplayList(luigi_face_back_hair_cap_on_dl), @@ -1915,6 +1915,7 @@ const Gfx luigi_cap_on_eyes_front[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_l_logo), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(luigi_l_logo_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_front), gsDPLoadSync(), @@ -1947,6 +1948,7 @@ const Gfx luigi_cap_on_eyes_half_closed[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_l_logo), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(luigi_l_logo_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_half_closed), gsDPLoadSync(), @@ -1979,6 +1981,7 @@ const Gfx luigi_cap_on_eyes_closed[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_l_logo), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(luigi_l_logo_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_closed), gsDPLoadSync(), @@ -2011,6 +2014,7 @@ const Gfx luigi_cap_on_eyes_right[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_l_logo), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(luigi_l_logo_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_right), gsDPLoadSync(), @@ -2043,6 +2047,7 @@ const Gfx luigi_cap_on_eyes_left[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_l_logo), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(luigi_l_logo_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_left), gsDPLoadSync(), @@ -2075,6 +2080,7 @@ const Gfx luigi_cap_on_eyes_up[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_l_logo), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(luigi_l_logo_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_up), gsDPLoadSync(), @@ -2107,6 +2113,7 @@ const Gfx luigi_cap_on_eyes_down[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_l_logo), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(luigi_l_logo_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_down), gsDPLoadSync(), @@ -2139,6 +2146,7 @@ const Gfx luigi_cap_on_eyes_dead[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_l_logo), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(luigi_l_logo_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_dead), gsDPLoadSync(), @@ -3415,7 +3423,7 @@ const Gfx luigi_right_hand_cap_dl[] = { gsSPDisplayList(luigi_right_hand_cap_top_dl), gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c gsSPDisplayList(luigi_right_hand_cap_hand_position_dl), - gsSPCopyLightsPlayerPart(HAIR), + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(luigi_right_hand_cap_bottom_dl), gsSPEndDisplayList(), }; @@ -3492,6 +3500,7 @@ const Gfx luigi_right_hand_cap[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_l_logo), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(luigi_right_hand_cap_l_logo_dl), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), diff --git a/actors/luigi_cap/model.inc.c b/actors/luigi_cap/model.inc.c index 56820766b..8ad4d0d21 100644 --- a/actors/luigi_cap/model.inc.c +++ b/actors/luigi_cap/model.inc.c @@ -167,7 +167,7 @@ const Gfx luigi_cap_seg3_dl_03022CC8[] = { // 0x03022D10 - 0x03022D38 const Gfx luigi_cap_seg3_dl_03022D10[] = { gsSPDisplayList(luigi_cap_seg3_dl_03022B68), - gsSPCopyLightsPlayerPart(SHIRT), //gsSPLight(&luigi_cap_seg3_lights_0301CF08.a, 2), + gsSPCopyLightsPlayerPart(CAP), //gsSPLight(&luigi_cap_seg3_lights_0301CF08.a, 2), gsSPDisplayList(luigi_cap_seg3_dl_03022CC8), gsSPEndDisplayList(), }; @@ -250,7 +250,7 @@ const Gfx luigi_cap_seg3_dl_03022F48[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_cap_seg3_texture_0301DF50), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPCopyLightsPlayerPart(SHIRT), //gsSPLight(&luigi_cap_seg3_lights_0301CF38.a, 2), + gsSPCopyLightsPlayerPart(CAP), //gsSPLight(&luigi_cap_seg3_lights_0301CF38.a, 2), gsSPDisplayList(luigi_cap_seg3_dl_03022B30), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), @@ -270,7 +270,7 @@ const Gfx luigi_cap_seg3_dl_03022FF8[] = { gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), gsDPLoadTextureBlock(luigi_cap_seg3_texture_0301CF50, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), - gsSPCopyLightsPlayerPart(SHIRT), + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(luigi_cap_seg3_dl_03022B30), gsSPDisplayList(luigi_cap_seg3_dl_03022B68), gsSPDisplayList(luigi_cap_seg3_dl_03022CC8), @@ -325,7 +325,7 @@ const Gfx luigi_cap_seg3_dl_03023160[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_cap_seg3_texture_0301DF50), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPCopyLightsPlayerPart(SHIRT), //gsSPLight(&luigi_cap_seg3_lights_0301CF38.a, 2), + gsSPCopyLightsPlayerPart(CAP), //gsSPLight(&luigi_cap_seg3_lights_0301CF38.a, 2), gsSPDisplayList(luigi_cap_seg3_dl_03022B30), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), @@ -368,7 +368,7 @@ const Gfx luigi_cap_seg3_dl_03023298[] = { gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 6, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (64 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), - gsSPCopyLightsPlayerPart(SHIRT), + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(luigi_cap_seg3_dl_03022B30), gsSPDisplayList(luigi_cap_seg3_dl_03022B68), gsSPDisplayList(luigi_cap_seg3_dl_03022CC8), diff --git a/actors/mario/model.inc.c b/actors/mario/model.inc.c index 1cd5db555..29df7c486 100644 --- a/actors/mario/model.inc.c +++ b/actors/mario/model.inc.c @@ -393,7 +393,7 @@ const Gfx mario_metal_butt[] = { gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), - gsSPCopyLightsPlayerPart(SHIRT), + gsSPCopyLightsPlayerPart(METAL), gsSPDisplayList(mario_butt_dl), gsSPEndDisplayList(), }; @@ -985,7 +985,7 @@ const Gfx mario_metal_left_thigh[] = { gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), - gsSPCopyLightsPlayerPart(SHIRT), + gsSPCopyLightsPlayerPart(METAL), gsSPDisplayList(mario_left_thigh_dl), gsSPEndDisplayList(), }; @@ -2068,7 +2068,7 @@ const Gfx mario_face_back_hair_cap_on_dl[] = { // 0x04011960 - 0x040119A0 const Gfx mario_face_cap_on_dl[] = { gsSPDisplayList(mario_face_part_cap_on_dl), - gsSPCopyLightsPlayerPart(SHIRT), // gsSPLight(&mario_red_lights_group.a, 2), + gsSPCopyLightsPlayerPart(CAP), // gsSPLight(&mario_red_lights_group.a, 2), gsSPDisplayList(mario_face_cap_dl), gsSPCopyLightsPlayerPart(HAIR), gsSPDisplayList(mario_face_back_hair_cap_on_dl), @@ -2087,6 +2087,7 @@ const Gfx mario_cap_on_eyes_front[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(mario_m_logo_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_front), gsDPLoadSync(), @@ -2120,6 +2121,7 @@ const Gfx mario_cap_on_eyes_half_closed[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(mario_m_logo_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_half_closed), gsDPLoadSync(), @@ -2153,6 +2155,7 @@ const Gfx mario_cap_on_eyes_closed[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(mario_m_logo_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_closed), gsDPLoadSync(), @@ -2186,6 +2189,7 @@ const Gfx mario_cap_on_eyes_right[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(mario_m_logo_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_right), gsDPLoadSync(), @@ -2219,6 +2223,7 @@ const Gfx mario_cap_on_eyes_left[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(mario_m_logo_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_left), gsDPLoadSync(), @@ -2252,6 +2257,7 @@ const Gfx mario_cap_on_eyes_up[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(mario_m_logo_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_up), gsDPLoadSync(), @@ -2285,6 +2291,7 @@ const Gfx mario_cap_on_eyes_down[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(mario_m_logo_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_down), gsDPLoadSync(), @@ -2318,6 +2325,7 @@ const Gfx mario_cap_on_eyes_dead[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(mario_m_logo_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_dead), gsDPLoadSync(), @@ -4803,7 +4811,7 @@ const Gfx mario_low_poly_face_back_hair_cap_on_dl[] = { // 0x04018420 - 0x04018460 const Gfx mario_low_poly_face_cap_on_dl[] = { gsSPDisplayList(mario_low_poly_face_part_cap_on_dl), - gsSPCopyLightsPlayerPart(SHIRT), // gsSPLight(&mario_red_lights_group.a, 2), + gsSPCopyLightsPlayerPart(CAP), // gsSPLight(&mario_red_lights_group.a, 2), gsSPDisplayList(mario_low_poly_face_cap_dl), gsSPCopyLightsPlayerPart(HAIR), gsSPDisplayList(mario_low_poly_face_back_hair_cap_on_dl), @@ -4822,6 +4830,7 @@ const Gfx mario_low_poly_cap_on_eyes_front[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(mario_low_poly_mario_m_logo_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_front), gsDPLoadSync(), @@ -4851,6 +4860,7 @@ const Gfx mario_low_poly_cap_on_eyes_half_closed[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(mario_low_poly_mario_m_logo_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_half_closed), gsDPLoadSync(), @@ -4880,6 +4890,7 @@ const Gfx mario_low_poly_cap_on_eyes_closed[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(mario_low_poly_mario_m_logo_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_closed), gsDPLoadSync(), @@ -4909,6 +4920,7 @@ const Gfx mario_low_poly_cap_on_eyes_right[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(mario_low_poly_mario_m_logo_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_right), gsDPLoadSync(), @@ -4938,6 +4950,7 @@ const Gfx mario_low_poly_cap_on_eyes_left[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(mario_low_poly_mario_m_logo_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_left), gsDPLoadSync(), @@ -4967,6 +4980,7 @@ const Gfx mario_low_poly_cap_on_eyes_up[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(mario_low_poly_mario_m_logo_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_up), gsDPLoadSync(), @@ -4996,6 +5010,7 @@ const Gfx mario_low_poly_cap_on_eyes_down[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(mario_low_poly_mario_m_logo_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_down), gsDPLoadSync(), @@ -5025,6 +5040,7 @@ const Gfx mario_low_poly_cap_on_eyes_dead[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(mario_low_poly_mario_m_logo_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_dead), gsDPLoadSync(), @@ -5938,7 +5954,7 @@ const Gfx mario_right_hand_cap_dl[] = { gsSPDisplayList(mario_right_hand_cap_top_dl), gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c gsSPDisplayList(mario_right_hand_cap_hand_position_dl), - gsSPCopyLightsPlayerPart(HAIR), + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(mario_right_hand_cap_bottom_dl), gsSPEndDisplayList(), }; @@ -6020,6 +6036,7 @@ const Gfx mario_right_hand_cap[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(mario_right_hand_cap_m_logo_dl), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), @@ -6464,7 +6481,7 @@ const Gfx mario_cap_unused_base_bottom_dl[] = { // 0x0401C510 - 0x0401C538 const Gfx mario_cap_unused_base_dl[] = { gsSPDisplayList(mario_cap_unused_base_top_dl), - gsSPCopyLightsPlayerPart(HAIR), + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(mario_cap_unused_base_bottom_dl), gsSPEndDisplayList(), }; @@ -6549,7 +6566,7 @@ const Gfx mario_cap_unused_dl[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_m_logo), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPCopyLightsPlayerPart(SHIRT), // gsSPLight(&mario_red_lights_group.a, 2), + gsSPCopyLightsPlayerPart(CAP), // gsSPLight(&mario_red_lights_group.a, 2), gsSPDisplayList(mario_cap_unused_m_logo_dl), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), diff --git a/actors/mario_cap/model.inc.c b/actors/mario_cap/model.inc.c index eecb4e4c9..1c37bd464 100644 --- a/actors/mario_cap/model.inc.c +++ b/actors/mario_cap/model.inc.c @@ -180,7 +180,7 @@ const Gfx mario_cap_seg3_dl_03022CC8[] = { // 0x03022D10 - 0x03022D38 const Gfx mario_cap_seg3_dl_03022D10[] = { gsSPDisplayList(mario_cap_seg3_dl_03022B68), - gsSPCopyLightsPlayerPart(SHIRT), //gsSPLight(&mario_cap_seg3_lights_0301CF08.a, 2), + gsSPCopyLightsPlayerPart(CAP), //gsSPLight(&mario_cap_seg3_lights_0301CF08.a, 2), gsSPDisplayList(mario_cap_seg3_dl_03022CC8), gsSPEndDisplayList(), }; @@ -263,7 +263,7 @@ const Gfx mario_cap_seg3_dl_03022F48[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_seg3_texture_0301DF50), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPCopyLightsPlayerPart(SHIRT), //gsSPLight(&mario_cap_seg3_lights_0301CF38.a, 2), + gsSPCopyLightsPlayerPart(CAP), //gsSPLight(&mario_cap_seg3_lights_0301CF38.a, 2), gsSPDisplayList(mario_cap_seg3_dl_03022B30), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), @@ -283,7 +283,7 @@ const Gfx mario_cap_seg3_dl_03022FF8[] = { gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), gsDPLoadTextureBlock(mario_cap_seg3_texture_0301CF50, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), - gsSPCopyLightsPlayerPart(SHIRT), + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(mario_cap_seg3_dl_03022B30), gsSPDisplayList(mario_cap_seg3_dl_03022B68), gsSPDisplayList(mario_cap_seg3_dl_03022CC8), @@ -338,7 +338,7 @@ const Gfx mario_cap_seg3_dl_03023160[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_seg3_texture_0301DF50), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPCopyLightsPlayerPart(SHIRT), //gsSPLight(&mario_cap_seg3_lights_0301CF38.a, 2), + gsSPCopyLightsPlayerPart(CAP), //gsSPLight(&mario_cap_seg3_lights_0301CF38.a, 2), gsSPDisplayList(mario_cap_seg3_dl_03022B30), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), @@ -381,7 +381,7 @@ const Gfx mario_cap_seg3_dl_03023298[] = { gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 6, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (64 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), - gsSPCopyLightsPlayerPart(SHIRT), //gsSPLight(&mario_cap_seg3_lights_0301CF20.a, 2), + gsSPCopyLightsPlayerPart(CAP), //gsSPLight(&mario_cap_seg3_lights_0301CF20.a, 2), gsSPDisplayList(mario_cap_seg3_dl_03022B30), gsSPDisplayList(mario_cap_seg3_dl_03022B68), gsSPDisplayList(mario_cap_seg3_dl_03022CC8), diff --git a/actors/toad_player/model.inc.c b/actors/toad_player/model.inc.c index ed3c4db37..b615f6c3a 100644 --- a/actors/toad_player/model.inc.c +++ b/actors/toad_player/model.inc.c @@ -15,10 +15,10 @@ const Gfx toad_player_metal_start[] = { gsDPPipeSync(), gsSPSetGeometryMode(G_TEXTURE_GEN), gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), - gsSPCopyLightsPlayerPart(SHIRT), + gsSPCopyLightsPlayerPart(METAL), gsDPLoadTextureBlock(toad_player_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), - gsSPCopyLightsPlayerPart(SHIRT), + gsSPCopyLightsPlayerPart(METAL), gsSPEndDisplayList(), }; @@ -614,7 +614,7 @@ const Gfx toad_player_dl_cap_decal[] = { //gsSPClearGeometryMode(G_CULL_BACK), - gsSPCopyLightsPlayerPart(SHIRT), + gsSPCopyLightsPlayerPart(CAP), gsSPVertex(toad_player_vertex_cap_decal + 0, 16, 0), gsSP1Triangle(0, 1, 2, 0), @@ -1041,7 +1041,7 @@ const Gfx toad_player_metal_dl_body_inner[] = { gsSP2Triangles( 5, 9, 0, 0x0, 0, 9, 1, 0x0), gsSP2Triangles(11, 6, 0, 0x0, 11, 0, 2, 0x0), gsSP1Triangle( 0, 6, 5, 0x0), - gsSPCopyLightsPlayerPart(SHIRT), + gsSPCopyLightsPlayerPart(METAL), gsSPVertex(toad_player_vertex_body_3, 12, 0), gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0), gsSP2Triangles( 4, 2, 1, 0x0, 4, 1, 5, 0x0), @@ -1065,9 +1065,9 @@ const Gfx toad_player_dl_body[] = { const Gfx toad_player_metal_dl_body[] = { gsSPDisplayList(toad_player_metal_dl_body_inner), - gsSPCopyLightsPlayerPart(SHIRT), + gsSPCopyLightsPlayerPart(METAL), gsSPDisplayList(toad_player_dl_jacket_inner), - gsSPCopyLightsPlayerPart(SHIRT), + gsSPCopyLightsPlayerPart(METAL), gsSPEndDisplayList(), }; @@ -1369,7 +1369,7 @@ const Gfx toad_player_dl_foot_right_metal[] = { gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF), gsDPSetEnvColor(255, 255, 255, 255), gsDPSetAlphaCompare(G_AC_NONE), - gsSPCopyLightsPlayerPart(SHIRT), + gsSPCopyLightsPlayerPart(METAL), gsSPEndDisplayList(), }; diff --git a/actors/waluigi/model.inc.c b/actors/waluigi/model.inc.c index 965273c79..d4735f56c 100644 --- a/actors/waluigi/model.inc.c +++ b/actors/waluigi/model.inc.c @@ -3474,7 +3474,7 @@ Gfx mat_waluigi_metal_v3[] = { gsDPPipeSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), gsDPSetTileSize(0, 0, 0, 252, 124), - gsSPCopyLightsPlayerPart(SHIRT), + gsSPCopyLightsPlayerPart(METAL), gsSPEndDisplayList(), }; @@ -3485,6 +3485,22 @@ Gfx mat_revert_waluigi_metal_v3[] = { }; Gfx mat_waluigi_cap_v3[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, SHADE, TEXEL0_ALPHA, SHADE, 0, 0, 0, ENVIRONMENT, TEXEL0, SHADE, TEXEL0_ALPHA, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPTileSync(), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, waluigi_custom_waluigi_cap_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0), + gsDPLoadSync(), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPPipeSync(), + 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), + gsSPCopyLightsPlayerPart(CAP), + gsSPEndDisplayList(), +}; + +Gfx mat_waluigi_shirt_v3[] = { gsDPPipeSync(), gsDPSetCombineLERP(TEXEL0, SHADE, TEXEL0_ALPHA, SHADE, 0, 0, 0, ENVIRONMENT, TEXEL0, SHADE, TEXEL0_ALPHA, SHADE, 0, 0, 0, ENVIRONMENT), gsSPTexture(65535, 65535, 0, 0, 1), @@ -3712,7 +3728,7 @@ Gfx waluigi_000_offset_mesh_layer_1_mat_override_metal_v3_0[] = { Gfx waluigi_000_offset_001_mesh_layer_1[] = { gsSPDisplayList(mat_waluigi_body_v3), gsSPDisplayList(waluigi_000_offset_001_mesh_layer_1_tri_0), - gsSPDisplayList(mat_waluigi_cap_v3), + gsSPDisplayList(mat_waluigi_shirt_v3), gsSPDisplayList(waluigi_000_offset_001_mesh_layer_1_tri_1), gsSPEndDisplayList(), }; @@ -3973,7 +3989,7 @@ Gfx waluigi_000_displaylist_002_mesh_layer_4_mat_override_metal_v3_0[] = { }; Gfx waluigi_000_offset_003_mesh_layer_1[] = { - gsSPDisplayList(mat_waluigi_cap_v3), + gsSPDisplayList(mat_waluigi_shirt_v3), gsSPDisplayList(waluigi_000_offset_003_mesh_layer_1_tri_0), gsSPEndDisplayList(), }; @@ -3986,7 +4002,7 @@ Gfx waluigi_000_offset_003_mesh_layer_1_mat_override_metal_v3_0[] = { }; Gfx waluigi_000_offset_004_mesh_layer_1[] = { - gsSPDisplayList(mat_waluigi_cap_v3), + gsSPDisplayList(mat_waluigi_shirt_v3), gsSPDisplayList(waluigi_000_offset_004_mesh_layer_1_tri_0), gsSPEndDisplayList(), }; @@ -4025,7 +4041,7 @@ Gfx waluigi_002_switch_option_right_hand_open_mesh_layer_1_mat_override_metal_v3 }; Gfx waluigi_000_offset_006_mesh_layer_1[] = { - gsSPDisplayList(mat_waluigi_cap_v3), + gsSPDisplayList(mat_waluigi_shirt_v3), gsSPDisplayList(waluigi_000_offset_006_mesh_layer_1_tri_0), gsSPEndDisplayList(), }; @@ -4038,7 +4054,7 @@ Gfx waluigi_000_offset_006_mesh_layer_1_mat_override_metal_v3_0[] = { }; Gfx waluigi_000_offset_007_mesh_layer_1[] = { - gsSPDisplayList(mat_waluigi_cap_v3), + gsSPDisplayList(mat_waluigi_shirt_v3), gsSPDisplayList(waluigi_000_offset_007_mesh_layer_1_tri_0), gsSPEndDisplayList(), }; diff --git a/actors/waluigi_cap/model.inc.c b/actors/waluigi_cap/model.inc.c index 363b35b80..cff475665 100644 --- a/actors/waluigi_cap/model.inc.c +++ b/actors/waluigi_cap/model.inc.c @@ -162,7 +162,7 @@ const Gfx waluigi_cap_seg3_dl_03022CC8[] = { // 0x03022D10 - 0x03022D38 const Gfx waluigi_cap_seg3_dl_03022D10[] = { gsSPDisplayList(waluigi_cap_seg3_dl_03022B68), - gsSPCopyLightsPlayerPart(SHIRT), //gsSPLight(&waluigi_cap_seg3_lights_0301CF08.a, 2), + gsSPCopyLightsPlayerPart(CAP), //gsSPLight(&waluigi_cap_seg3_lights_0301CF08.a, 2), gsSPDisplayList(waluigi_cap_seg3_dl_03022CC8), gsSPEndDisplayList(), }; @@ -245,7 +245,7 @@ const Gfx waluigi_cap_seg3_dl_03022F48[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_cap_seg3_texture_0301DF50), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPCopyLightsPlayerPart(SHIRT), //gsSPLight(&waluigi_cap_seg3_lights_0301CF38.a, 2), + gsSPCopyLightsPlayerPart(CAP), //gsSPLight(&waluigi_cap_seg3_lights_0301CF38.a, 2), gsSPDisplayList(waluigi_cap_seg3_dl_03022B30), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), @@ -265,7 +265,7 @@ const Gfx waluigi_cap_seg3_dl_03022FF8[] = { gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), gsDPLoadTextureBlock(waluigi_cap_seg3_texture_0301CF50, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), - gsSPCopyLightsPlayerPart(SHIRT), + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(waluigi_cap_seg3_dl_03022B30), gsSPDisplayList(waluigi_cap_seg3_dl_03022B68), gsSPDisplayList(waluigi_cap_seg3_dl_03022CC8), @@ -320,7 +320,7 @@ const Gfx waluigi_cap_seg3_dl_03023160[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, waluigi_cap_seg3_texture_0301DF50), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPCopyLightsPlayerPart(SHIRT), //gsSPLight(&waluigi_cap_seg3_lights_0301CF38.a, 2), + gsSPCopyLightsPlayerPart(CAP), //gsSPLight(&waluigi_cap_seg3_lights_0301CF38.a, 2), gsSPDisplayList(waluigi_cap_seg3_dl_03022B30), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), @@ -363,7 +363,7 @@ const Gfx waluigi_cap_seg3_dl_03023298[] = { gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 6, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (64 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), - gsSPCopyLightsPlayerPart(SHIRT), //gsSPLight(&waluigi_cap_seg3_lights_0301CF20.a, 2), + gsSPCopyLightsPlayerPart(CAP), //gsSPLight(&waluigi_cap_seg3_lights_0301CF20.a, 2), gsSPDisplayList(waluigi_cap_seg3_dl_03022B30), gsSPDisplayList(waluigi_cap_seg3_dl_03022B68), gsSPDisplayList(waluigi_cap_seg3_dl_03022CC8), diff --git a/actors/wario/model.inc.c b/actors/wario/model.inc.c index 48d7ebc42..aa7268496 100644 --- a/actors/wario/model.inc.c +++ b/actors/wario/model.inc.c @@ -3419,7 +3419,7 @@ Gfx mat_wario_metal[] = { gsDPPipeSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), gsDPSetTileSize(0, 0, 0, 252, 124), - gsSPCopyLightsPlayerPart(SHIRT), + gsSPCopyLightsPlayerPart(METAL), gsSPEndDisplayList(), }; @@ -3433,6 +3433,14 @@ Gfx mat_wario_cap[] = { gsDPPipeSync(), gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), gsSPTexture(65535, 65535, 0, 0, 1), + gsSPCopyLightsPlayerPart(CAP), + gsSPEndDisplayList(), +}; + +Gfx mat_wario_shirt[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 1), gsSPCopyLightsPlayerPart(SHIRT), gsSPEndDisplayList(), }; @@ -3465,7 +3473,7 @@ Gfx mat_wario_logo[] = { gsDPPipeSync(), 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), - gsSPCopyLightsPlayerPart(SHIRT), + gsSPCopyLightsPlayerPart(CAP), gsSPEndDisplayList(), }; @@ -3739,7 +3747,7 @@ Gfx wario_000_offset_pelvis_mesh_layer_1_mat_override_metal_0[] = { Gfx wario_000_offset_chest_mesh_layer_1[] = { gsSPDisplayList(mat_wario_overalls), gsSPDisplayList(wario_000_offset_chest_mesh_layer_1_tri_0), - gsSPDisplayList(mat_wario_cap), + gsSPDisplayList(mat_wario_shirt), gsSPDisplayList(wario_000_offset_chest_mesh_layer_1_tri_1), gsSPDisplayList(mat_wario_button), gsSPDisplayList(wario_000_offset_chest_mesh_layer_1_tri_2), @@ -4136,7 +4144,7 @@ Gfx wario_000_switch_000_displaylist_head_capless_mesh_layer_1_mat_override_eyes }; Gfx wario_000_offset_left_upper_arm_mesh_layer_1[] = { - gsSPDisplayList(mat_wario_cap), + gsSPDisplayList(mat_wario_shirt), gsSPDisplayList(wario_000_offset_left_upper_arm_mesh_layer_1_tri_0), gsSPEndDisplayList(), }; @@ -4149,7 +4157,7 @@ Gfx wario_000_offset_left_upper_arm_mesh_layer_1_mat_override_metal_0[] = { }; Gfx wario_000_offset_left_lower_arm_mesh_layer_1[] = { - gsSPDisplayList(mat_wario_cap), + gsSPDisplayList(mat_wario_shirt), gsSPDisplayList(wario_000_offset_left_lower_arm_mesh_layer_1_tri_0), gsSPEndDisplayList(), }; @@ -4188,7 +4196,7 @@ Gfx wario_001_switch_000_offset_left_hand_open_mesh_layer_1_mat_override_metal_0 }; Gfx wario_000_offset_right_upper_arm_mesh_layer_1[] = { - gsSPDisplayList(mat_wario_cap), + gsSPDisplayList(mat_wario_shirt), gsSPDisplayList(wario_000_offset_right_upper_arm_mesh_layer_1_tri_0), gsSPEndDisplayList(), }; @@ -4201,7 +4209,7 @@ Gfx wario_000_offset_right_upper_arm_mesh_layer_1_mat_override_metal_0[] = { }; Gfx wario_000_offset_right_lower_arm_mesh_layer_1[] = { - gsSPDisplayList(mat_wario_cap), + gsSPDisplayList(mat_wario_shirt), gsSPDisplayList(wario_000_offset_right_lower_arm_mesh_layer_1_tri_0), gsSPEndDisplayList(), }; @@ -4259,7 +4267,7 @@ Gfx wario_001_switch_000_offset_right_hand_cap_mesh_layer_1[] = { gsSPDisplayList(wario_001_switch_000_offset_right_hand_cap_mesh_layer_1_tri_1), gsSPDisplayList(mat_wario_cap), gsSPDisplayList(wario_001_switch_000_offset_right_hand_cap_mesh_layer_1_tri_2), - gsSPDisplayList(mat_wario_hair), + gsSPDisplayList(mat_wario_cap), gsSPDisplayList(wario_001_switch_000_offset_right_hand_cap_mesh_layer_1_tri_3), gsSPEndDisplayList(), }; @@ -4287,7 +4295,7 @@ Gfx wario_001_switch_000_offset_right_hand_wing_cap_mesh_layer_1[] = { gsSPDisplayList(wario_001_switch_000_offset_right_hand_wing_cap_mesh_layer_1_tri_1), gsSPDisplayList(mat_wario_cap), gsSPDisplayList(wario_001_switch_000_offset_right_hand_wing_cap_mesh_layer_1_tri_2), - gsSPDisplayList(mat_wario_hair), + gsSPDisplayList(mat_wario_cap), gsSPDisplayList(wario_001_switch_000_offset_right_hand_wing_cap_mesh_layer_1_tri_3), gsSPEndDisplayList(), }; diff --git a/actors/wario_cap/model.inc.c b/actors/wario_cap/model.inc.c index 46e12e243..bb55d0d10 100644 --- a/actors/wario_cap/model.inc.c +++ b/actors/wario_cap/model.inc.c @@ -167,7 +167,7 @@ const Gfx wario_cap_seg3_dl_03022CC8[] = { // 0x03022D10 - 0x03022D38 const Gfx wario_cap_seg3_dl_03022D10[] = { gsSPDisplayList(wario_cap_seg3_dl_03022B68), - gsSPCopyLightsPlayerPart(SHIRT), //gsSPLight(&wario_cap_seg3_lights_0301CF08.a, 2), + gsSPCopyLightsPlayerPart(CAP), //gsSPLight(&wario_cap_seg3_lights_0301CF08.a, 2), gsSPDisplayList(wario_cap_seg3_dl_03022CC8), gsSPEndDisplayList(), }; @@ -250,7 +250,7 @@ const Gfx wario_cap_seg3_dl_03022F48[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_seg3_texture_0301DF50), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPCopyLightsPlayerPart(SHIRT), //gsSPLight(&wario_cap_seg3_lights_0301CF38.a, 2), + gsSPCopyLightsPlayerPart(CAP), //gsSPLight(&wario_cap_seg3_lights_0301CF38.a, 2), gsSPDisplayList(wario_cap_seg3_dl_03022B30), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), @@ -270,7 +270,7 @@ const Gfx wario_cap_seg3_dl_03022FF8[] = { gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), gsDPLoadTextureBlock(wario_cap_seg3_texture_0301CF50, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD), gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), - gsSPCopyLightsPlayerPart(SHIRT), + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(wario_cap_seg3_dl_03022B30), gsSPDisplayList(wario_cap_seg3_dl_03022B68), gsSPDisplayList(wario_cap_seg3_dl_03022CC8), @@ -325,7 +325,7 @@ const Gfx wario_cap_seg3_dl_03023160[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, wario_cap_seg3_texture_0301DF50), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPCopyLightsPlayerPart(SHIRT), //gsSPLight(&wario_cap_seg3_lights_0301CF38.a, 2), + gsSPCopyLightsPlayerPart(CAP), //gsSPLight(&wario_cap_seg3_lights_0301CF38.a, 2), gsSPDisplayList(wario_cap_seg3_dl_03022B30), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), @@ -368,7 +368,7 @@ const Gfx wario_cap_seg3_dl_03023298[] = { gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 6, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (64 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), - gsSPCopyLightsPlayerPart(SHIRT), + gsSPCopyLightsPlayerPart(CAP), gsSPDisplayList(wario_cap_seg3_dl_03022B30), gsSPDisplayList(wario_cap_seg3_dl_03022B68), gsSPDisplayList(wario_cap_seg3_dl_03022CC8), diff --git a/autogen/lua_definitions/constants.lua b/autogen/lua_definitions/constants.lua index e5744b8a8..876be5ea7 100644 --- a/autogen/lua_definitions/constants.lua +++ b/autogen/lua_definitions/constants.lua @@ -2709,7 +2709,13 @@ HAIR = 4 SKIN = 5 --- @type PlayerParts -PLAYER_PART_MAX = 6 +CAP = 6 + +--- @type PlayerParts +PLAYER_PART_MAX = 7 + +--- @type PlayerParts +METAL = 6 --- @class DialogId diff --git a/data/dynos_bin_gfx.cpp b/data/dynos_bin_gfx.cpp index f9a791c7a..a3e010f8d 100644 --- a/data/dynos_bin_gfx.cpp +++ b/data/dynos_bin_gfx.cpp @@ -310,6 +310,8 @@ s64 DynOS_Gfx_ParseGfxConstants(const String& _Arg, bool* found) { gfx_constant(SHOES); gfx_constant(HAIR); gfx_constant(SKIN); + gfx_constant(CAP); + gfx_constant(METAL); // Common values gfx_constant(CALC_DXT(4,G_IM_SIZ_4b_BYTES)); diff --git a/docs/lua/constants.md b/docs/lua/constants.md index 7e88176ca..6df37399e 100644 --- a/docs/lua/constants.md +++ b/docs/lua/constants.md @@ -885,7 +885,9 @@ | SHOES | 3 | | HAIR | 4 | | SKIN | 5 | -| PLAYER_PART_MAX | 6 | +| CAP | 6 | +| PLAYER_PART_MAX | 7 | +| METAL | 6 | [:arrow_up_small:](#) diff --git a/src/engine/graph_node.h b/src/engine/graph_node.h index 686563b2c..853826cb7 100644 --- a/src/engine/graph_node.h +++ b/src/engine/graph_node.h @@ -6,6 +6,8 @@ #include "types.h" #include "game/memory.h" +#undef near +#undef far #define GRAPH_RENDER_ACTIVE (1 << 0) #define GRAPH_RENDER_CHILDREN_FIRST (1 << 1) diff --git a/src/game/characters.c b/src/game/characters.c index b36db0494..268006e0b 100644 --- a/src/game/characters.c +++ b/src/game/characters.c @@ -356,42 +356,42 @@ struct Character gCharacters[CT_MAX] = { }; const struct PlayerPalette DEFAULT_MARIO_PALETTE = -{{{ 0x00, 0x00, 0xff }, { 0xff, 0x00, 0x00 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }}}; +{{{ 0x00, 0x00, 0xff }, { 0xff, 0x00, 0x00 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }, { 0xff, 0x00, 0x00 }}}; const struct PlayerPalette gPalettePresets[PALETTE_PRESET_MAX] = { -/* ---- PANTS ----- ---- SHIRT ----- ---- GLOVES ---- ---- SHOES ----- ----- HAIR ----- ----- SKIN ----- */ -{{{ 0x00, 0x00, 0xff }, { 0xff, 0x00, 0x00 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }}}, // Mario -{{{ 0x00, 0x00, 0xfe }, { 0x00, 0x98, 0x00 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }}}, // Luigi -{{{ 0x2c, 0x26, 0x3f }, { 0x6d, 0x3c, 0x9a }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }}}, // Waluigi -{{{ 0x7f, 0x20, 0x7a }, { 0xf9, 0xeb, 0x30 }, { 0xff, 0xff, 0xff }, { 0x0e, 0x72, 0x1c }, { 0x73, 0x53, 0x00 }, { 0xfe, 0xc1, 0x79 }}}, // Wario -{{{ 0xff, 0x00, 0x00 }, { 0x7b, 0x00, 0xde }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }}}, // Chuckya -{{{ 0xc6, 0xb1, 0x32 }, { 0x95, 0x43, 0x01 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }}}, // Goomba -{{{ 0x07, 0x09, 0x07 }, { 0x4c, 0x5f, 0x20 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }}}, // Clover -{{{ 0xbf, 0xde, 0xff }, { 0x00, 0x2f, 0xc8 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }}}, // Cobalt -{{{ 0xf8, 0x3b, 0x05 }, { 0x11, 0x11, 0x11 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }}}, // Fury -{{{ 0x34, 0x16, 0x0d }, { 0xc1, 0x2c, 0x72 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }}}, // Hot Pink -{{{ 0xff, 0x00, 0x00 }, { 0xff, 0x96, 0xc8 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }}}, // Nice Pink -{{{ 0x81, 0x00, 0x00 }, { 0x4c, 0xff, 0x4c }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }}}, // Seafoam -{{{ 0x61, 0x3d, 0x2e }, { 0xa9, 0x78, 0xfc }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }}}, // Lilac -{{{ 0x00, 0x46, 0x5c }, { 0x84, 0x60, 0x00 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }}}, // Copper -{{{ 0x4f, 0x31, 0x8b }, { 0x5a, 0x94, 0xff }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }}}, // Azure -{{{ 0x23, 0x11, 0x03 }, { 0x68, 0x0a, 0x17 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }}}, // Burgundy -{{{ 0x53, 0x39, 0x3d }, { 0x95, 0xd0, 0x8f }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }}}, // Mint -{{{ 0xe6, 0xe3, 0xff }, { 0x37, 0x32, 0x42 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }}}, // Eggplant -{{{ 0x00, 0x51, 0x10 }, { 0xff, 0x8a, 0x00 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }}}, // Orange -{{{ 0x4c, 0x1e, 0x3f }, { 0x65, 0xfa, 0xff }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }}}, // Arctic -{{{ 0xb2, 0x28, 0x18 }, { 0xe6, 0xe6, 0xe6 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }}}, // Fire Mario -{{{ 0x00, 0x98, 0x00 }, { 0xe6, 0xe6, 0xe6 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }}}, // Fire Luigi -{{{ 0x6d, 0x3c, 0x9a }, { 0xe6, 0xe6, 0xe6 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }}}, // Fire Waluigi -{{{ 0xf9, 0xeb, 0x30 }, { 0xe6, 0xe6, 0xe6 }, { 0xff, 0xff, 0xff }, { 0x0e, 0x72, 0x1c }, { 0x73, 0x53, 0x00 }, { 0xfe, 0xc1, 0x79 }}}, // Fire Wario -{{{ 0x17, 0x18, 0x15 }, { 0xe7, 0xe7, 0x21 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }}}, // Busy Bee -{{{ 0xf7, 0x9a, 0x47 }, { 0xaa, 0x27, 0x31 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }}}, // Fortress -{{{ 0xf7, 0xc2, 0x45 }, { 0x55, 0x92, 0xb2 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }}}, // Battlements -{{{ 0xeb, 0x8a, 0x4b }, { 0x10, 0x1b, 0x2e }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }}}, // Blueberry Pie -{{{ 0xd6, 0x35, 0x4d }, { 0x3b, 0x8f, 0xf7 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }}}, // Raspberry -{{{ 0xd6, 0x35, 0x4d }, { 0xff, 0x8e, 0xb2 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }}}, // Bubblegum -{{{ 0xb2, 0x28, 0x18 }, { 0x47, 0xc5, 0xff }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }}}, // Ice Mario -{{{ 0x00, 0x98, 0x00 }, { 0x47, 0xc5, 0xff }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }}}, // Ice Luigi +/* ---- PANTS ----- ---- SHIRT ----- ---- GLOVES ---- ---- SHOES ----- ----- HAIR ----- ----- SKIN ----- ----- CAP ------ */ +{{{ 0x00, 0x00, 0xff }, { 0xff, 0x00, 0x00 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }, { 0xff, 0x00, 0x00 }}}, // Mario +{{{ 0x00, 0x00, 0xfe }, { 0x00, 0x98, 0x00 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }, { 0x00, 0x98, 0x00 }}}, // Luigi +{{{ 0x2c, 0x26, 0x3f }, { 0x6d, 0x3c, 0x9a }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }, { 0x6d, 0x3c, 0x9a }}}, // Waluigi +{{{ 0x7f, 0x20, 0x7a }, { 0xf9, 0xeb, 0x30 }, { 0xff, 0xff, 0xff }, { 0x0e, 0x72, 0x1c }, { 0x73, 0x53, 0x00 }, { 0xfe, 0xc1, 0x79 }, { 0xf9, 0xeb, 0x30 }}}, // Wario +{{{ 0xff, 0x00, 0x00 }, { 0x7b, 0x00, 0xde }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }, { 0x7b, 0x00, 0xde }}}, // Chuckya +{{{ 0xc6, 0xb1, 0x32 }, { 0x95, 0x43, 0x01 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }, { 0x95, 0x43, 0x01 }}}, // Goomba +{{{ 0x07, 0x09, 0x07 }, { 0x4c, 0x5f, 0x20 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }, { 0x4c, 0x5f, 0x20 }}}, // Clover +{{{ 0xbf, 0xde, 0xff }, { 0x00, 0x2f, 0xc8 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }, { 0x00, 0x2f, 0xc8 }}}, // Cobalt +{{{ 0xf8, 0x3b, 0x05 }, { 0x11, 0x11, 0x11 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }, { 0x11, 0x11, 0x11 }}}, // Fury +{{{ 0x34, 0x16, 0x0d }, { 0xc1, 0x2c, 0x72 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }, { 0xc1, 0x2c, 0x72 }}}, // Hot Pink +{{{ 0xff, 0x00, 0x00 }, { 0xff, 0x96, 0xc8 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }, { 0xff, 0x96, 0xc8 }}}, // Nice Pink +{{{ 0x81, 0x00, 0x00 }, { 0x4c, 0xff, 0x4c }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }, { 0x4c, 0xff, 0x4c }}}, // Seafoam +{{{ 0x61, 0x3d, 0x2e }, { 0xa9, 0x78, 0xfc }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }, { 0xa9, 0x78, 0xfc }}}, // Lilac +{{{ 0x00, 0x46, 0x5c }, { 0x84, 0x60, 0x00 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }, { 0x84, 0x60, 0x00 }}}, // Copper +{{{ 0x4f, 0x31, 0x8b }, { 0x5a, 0x94, 0xff }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }, { 0x5a, 0x94, 0xff }}}, // Azure +{{{ 0x23, 0x11, 0x03 }, { 0x68, 0x0a, 0x17 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }, { 0x68, 0x0a, 0x17 }}}, // Burgundy +{{{ 0x53, 0x39, 0x3d }, { 0x95, 0xd0, 0x8f }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }, { 0x95, 0xd0, 0x8f }}}, // Mint +{{{ 0xe6, 0xe3, 0xff }, { 0x37, 0x32, 0x42 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }, { 0x37, 0x32, 0x42 }}}, // Eggplant +{{{ 0x00, 0x51, 0x10 }, { 0xff, 0x8a, 0x00 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }, { 0xff, 0x8a, 0x00 }}}, // Orange +{{{ 0x4c, 0x1e, 0x3f }, { 0x65, 0xfa, 0xff }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }, { 0x65, 0xfa, 0xff }}}, // Arctic +{{{ 0xb2, 0x28, 0x18 }, { 0xe6, 0xe6, 0xe6 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }, { 0xe6, 0xe6, 0xe6 }}}, // Fire Mario +{{{ 0x00, 0x98, 0x00 }, { 0xe6, 0xe6, 0xe6 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }, { 0xe6, 0xe6, 0xe6 }}}, // Fire Luigi +{{{ 0x6d, 0x3c, 0x9a }, { 0xe6, 0xe6, 0xe6 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }, { 0xe6, 0xe6, 0xe6 }}}, // Fire Waluigi +{{{ 0xf9, 0xeb, 0x30 }, { 0xe6, 0xe6, 0xe6 }, { 0xff, 0xff, 0xff }, { 0x0e, 0x72, 0x1c }, { 0x73, 0x53, 0x00 }, { 0xfe, 0xc1, 0x79 }, { 0xe6, 0xe6, 0xe6 }}}, // Fire Wario +{{{ 0x17, 0x18, 0x15 }, { 0xe7, 0xe7, 0x21 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }, { 0xe7, 0xe7, 0x21 }}}, // Busy Bee +{{{ 0xf7, 0x9a, 0x47 }, { 0xaa, 0x27, 0x31 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }, { 0xaa, 0x27, 0x31 }}}, // Fortress +{{{ 0xf7, 0xc2, 0x45 }, { 0x55, 0x92, 0xb2 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }, { 0x55, 0x92, 0xb2 }}}, // Battlements +{{{ 0xeb, 0x8a, 0x4b }, { 0x10, 0x1b, 0x2e }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }, { 0x10, 0x1b, 0x2e }}}, // Blueberry Pie +{{{ 0xd6, 0x35, 0x4d }, { 0x3b, 0x8f, 0xf7 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }, { 0x3b, 0x8f, 0xf7 }}}, // Raspberry +{{{ 0xd6, 0x35, 0x4d }, { 0xff, 0x8e, 0xb2 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }, { 0xff, 0x8e, 0xb2 }}}, // Bubblegum +{{{ 0xb2, 0x28, 0x18 }, { 0x47, 0xc5, 0xff }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }, { 0x47, 0xc5, 0xff }}}, // Ice Mario +{{{ 0x00, 0x98, 0x00 }, { 0x47, 0xc5, 0xff }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }, { 0x47, 0xc5, 0xff }}}, // Ice Luigi }; enum AnimType { diff --git a/src/game/characters.h b/src/game/characters.h index 5882aaad4..8606ebe72 100644 --- a/src/game/characters.h +++ b/src/game/characters.h @@ -8,7 +8,7 @@ #define PALETTE_PRESET_MAX 32 enum PlayerParts { - PANTS, SHIRT, GLOVES, SHOES, HAIR, SKIN, PLAYER_PART_MAX + PANTS, SHIRT, GLOVES, SHOES, HAIR, SKIN, CAP, PLAYER_PART_MAX, METAL = CAP }; #pragma pack(1) diff --git a/src/pc/configfile.c b/src/pc/configfile.c index b366aeb35..0a142d669 100644 --- a/src/pc/configfile.c +++ b/src/pc/configfile.c @@ -136,7 +136,7 @@ unsigned int configPlayerModel = 0; unsigned int configMenuLevel = 0; bool configMenuSound = false; bool configMenuRandom = false; -struct PlayerPalette configPlayerPalette = {{{ 0x00, 0x00, 0xff }, { 0xff, 0x00, 0x00 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }}}; +struct PlayerPalette configPlayerPalette = {{{ 0x00, 0x00, 0xff }, { 0xff, 0x00, 0x00 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }, { 0xff, 0x00, 0x00 }}}; bool configUncappedFramerate = true; unsigned int configFrameLimit = 60; unsigned int configDrawDistance = 5; @@ -235,6 +235,7 @@ static const struct ConfigOption options[] = { {.name = "coop_player_palette_shoes", .type = CONFIG_TYPE_COLOR , .colorValue = &configPlayerPalette.parts[SHOES]}, {.name = "coop_player_palette_hair", .type = CONFIG_TYPE_COLOR , .colorValue = &configPlayerPalette.parts[HAIR]}, {.name = "coop_player_palette_skin", .type = CONFIG_TYPE_COLOR , .colorValue = &configPlayerPalette.parts[SKIN]}, + {.name = "coop_player_palette_cap", .type = CONFIG_TYPE_COLOR , .colorValue = &configPlayerPalette.parts[CAP]}, {.name = "coop_stay_in_level_after_star", .type = CONFIG_TYPE_UINT , .uintValue = &configStayInLevelAfterStar}, {.name = "share_lives", .type = CONFIG_TYPE_BOOL , .boolValue = &configShareLives}, {.name = "disable_popups", .type = CONFIG_TYPE_BOOL , .boolValue = &configDisablePopups}, diff --git a/src/pc/djui/djui_panel_player.c b/src/pc/djui/djui_panel_player.c index b9569e060..81eb4ea53 100644 --- a/src/pc/djui/djui_panel_player.c +++ b/src/pc/djui/djui_panel_player.c @@ -113,7 +113,7 @@ void djui_panel_player_edit_palette_destroy(struct DjuiBase* caller) { } static void djui_panel_player_edit_palette_create(struct DjuiBase* caller) { - char* sPartStrings[PLAYER_PART_MAX] = { "Overalls", "Shirt", "Gloves", "Shoes", "Hair", "Skin" }; + char* sPartStrings[PLAYER_PART_MAX] = { "Overalls", "Shirt", "Gloves", "Shoes", "Hair", "Skin", "Cap" }; f32 bodyHeight = 32 * 5 + 64 * 1 + 16 * 5; diff --git a/src/pc/lua/smlua_constants_autogen.c b/src/pc/lua/smlua_constants_autogen.c index b9939812b..b7a93dea1 100644 --- a/src/pc/lua/smlua_constants_autogen.c +++ b/src/pc/lua/smlua_constants_autogen.c @@ -1044,7 +1044,9 @@ char gSmluaConstants[] = "" "SHOES = 3\n" "HAIR = 4\n" "SKIN = 5\n" -"PLAYER_PART_MAX = 6\n" +"CAP = 6\n" +"PLAYER_PART_MAX = 7\n" +"METAL = 6\n" "CT_MARIO = 0\n" "CT_LUIGI = 1\n" "CT_TOAD = 2\n"