From 6449b7d578508fb73987aa1bb1e671b7ef9d0377 Mon Sep 17 00:00:00 2001 From: PeachyPeach <72323920+PeachyPeachSM64@users.noreply.github.com> Date: Mon, 19 Sep 2022 02:30:13 +0200 Subject: [PATCH] Complete color palettes; gfx macros (#191) --- actors/luigi/model.inc.c | 108 +++----- actors/luigi_cap/model.inc.c | 15 +- actors/mario/model.inc.c | 231 ++++++------------ actors/mario_cap/model.inc.c | 15 +- .../custom_toad_eyes_closed.rgba16.png | Bin 4188 -> 927 bytes .../custom_toad_eyes_dead.rgba16.png | Bin 4690 -> 1295 bytes .../custom_toad_eyes_half_closed.rgba16.png | Bin 4668 -> 1211 bytes .../toad_player/custom_toad_face.rgba16.png | Bin 4716 -> 1256 bytes actors/toad_player/model.inc.c | 87 ++----- actors/waluigi/model.inc.c | 30 +-- actors/waluigi_cap/model.inc.c | 15 +- actors/wario/model.inc.c | 44 ++-- actors/wario_cap/model.inc.c | 15 +- data/dynos_bin_gfx.cpp | 9 + docs/lua/constants.md | 9 +- include/PR/gbi.h | 16 +- mods/arena/actors/arena_ball/model.inc.c | 6 +- mods/arena/actors/cannon_box/model.inc.c | 6 +- mods/arena/actors/hammer/model.inc.c | 3 +- mods/arena/actors/koth_active/model.inc.c | 3 +- src/game/characters.c | 80 +++--- src/game/characters.h | 3 +- src/game/mario_misc.c | 80 +++--- src/pc/configfile.c | 7 +- src/pc/djui/djui_panel_player.c | 2 +- src/pc/gfx/gfx_pc.c | 6 +- src/pc/lua/smlua_constants_autogen.c | 9 +- 27 files changed, 304 insertions(+), 495 deletions(-) diff --git a/actors/luigi/model.inc.c b/actors/luigi/model.inc.c index 57a77375..af45ea4e 100644 --- a/actors/luigi/model.inc.c +++ b/actors/luigi/model.inc.c @@ -228,8 +228,7 @@ const Gfx luigi_butt_dl[] = { const Gfx luigi_butt[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPCopyLightEXT(1, 3), // gsSPLight(&luigi_blue_lights_group.l, 1), - gsSPCopyLightEXT(2, 4), // gsSPLight(&luigi_blue_lights_group.a, 2), + gsSPCopyLightsPlayerPart(PANTS), // gsSPLight(&luigi_blue_lights_group.a, 2), gsSPDisplayList(luigi_butt_dl), gsSPEndDisplayList(), }; @@ -240,8 +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), - gsSPCopyLightEXT(1, 5), - gsSPCopyLightEXT(2, 6), + gsSPCopyLightsPlayerPart(SHIRT), gsSPDisplayList(luigi_butt_dl), gsSPEndDisplayList(), }; @@ -321,8 +319,7 @@ const Gfx luigi_left_arm_shared_dl[] = { }; const Gfx luigi_left_arm[] = { - gsSPCopyLightEXT(1, 5), // gsSPLight(&luigi_green_lights_group.l, 1), - gsSPCopyLightEXT(2, 6), // gsSPLight(&luigi_green_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SHIRT), // gsSPLight(&luigi_green_lights_group.a, 2), gsSPDisplayList(luigi_left_arm_shared_dl), gsSPEndDisplayList(), }; @@ -473,8 +470,7 @@ const Gfx luigi_left_hand_closed_shared_dl[] = { }; const Gfx luigi_left_hand_closed[] = { - gsSPCopyLightEXT(1, 7), // glove light, set in mario_misc.c - gsSPCopyLightEXT(2, 8), + gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c gsSPDisplayList(luigi_left_hand_closed_shared_dl), gsSPEndDisplayList(), }; @@ -555,8 +551,7 @@ const Gfx luigi_right_arm_shared_dl[] = { }; const Gfx luigi_right_arm[] = { - gsSPCopyLightEXT(1, 5), // gsSPLight(&luigi_green_lights_group.l, 1), - gsSPCopyLightEXT(2, 6), // gsSPLight(&luigi_green_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SHIRT), // gsSPLight(&luigi_green_lights_group.a, 2), gsSPDisplayList(luigi_right_arm_shared_dl), gsSPEndDisplayList(), }; @@ -711,8 +706,7 @@ const Gfx luigi_right_hand_closed_dl[] = { }; const Gfx luigi_right_hand_closed[] = { - gsSPCopyLightEXT(1, 7), // glove light, set in mario_misc.c - gsSPCopyLightEXT(2, 8), + gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c gsSPDisplayList(luigi_right_hand_closed_dl), gsSPEndDisplayList(), }; @@ -790,8 +784,7 @@ const Gfx luigi_left_thigh_dl[] = { const Gfx luigi_left_thigh[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPCopyLightEXT(1, 3), // gsSPLight(&luigi_blue_lights_group.l, 1), - gsSPCopyLightEXT(2, 4), // gsSPLight(&luigi_blue_lights_group.a, 2), + gsSPCopyLightsPlayerPart(PANTS), // gsSPLight(&luigi_blue_lights_group.a, 2), gsSPDisplayList(luigi_left_thigh_dl), gsSPEndDisplayList(), }; @@ -802,8 +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), - gsSPCopyLightEXT(1, 5), - gsSPCopyLightEXT(2, 6), + gsSPCopyLightsPlayerPart(SHIRT), gsSPDisplayList(luigi_left_thigh_dl), gsSPEndDisplayList(), }; @@ -912,8 +904,7 @@ const Gfx luigi_left_foot_shared_dl[] = { }; const Gfx luigi_left_foot[] = { - gsSPLight(&luigi_brown1_lights_group.l, 1), - gsSPLight(&luigi_brown1_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SHOES), gsSPDisplayList(luigi_left_foot_shared_dl), gsSPEndDisplayList(), }; @@ -984,8 +975,7 @@ const Gfx luigi_right_thigh_shared_dl[] = { }; const Gfx luigi_right_thigh[] = { - gsSPCopyLightEXT(1, 3), // gsSPLight(&luigi_blue_lights_group.l, 1), - gsSPCopyLightEXT(2, 4), // gsSPLight(&luigi_blue_lights_group.a, 2), + gsSPCopyLightsPlayerPart(PANTS), // gsSPLight(&luigi_blue_lights_group.a, 2), gsSPDisplayList(luigi_right_thigh_shared_dl), gsSPEndDisplayList(), }; @@ -1105,8 +1095,7 @@ const Gfx luigi_right_foot_dl[] = { }; const Gfx luigi_right_foot[] = { - gsSPLight(&luigi_brown1_lights_group.l, 1), - gsSPLight(&luigi_brown1_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SHOES), gsSPDisplayList(luigi_right_foot_dl), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), @@ -1414,8 +1403,7 @@ const Gfx luigi_tshirt_shared_dl[] = { const Gfx luigi_torso_dl[] = { gsSPDisplayList(luigi_pants_overalls_shared_dl), - gsSPCopyLightEXT(1, 5), // gsSPLight(&luigi_green_lights_group.l, 1), - gsSPCopyLightEXT(2, 6), // gsSPLight(&luigi_green_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SHIRT), // gsSPLight(&luigi_green_lights_group.a, 2), gsSPDisplayList(luigi_tshirt_shared_dl), gsSPEndDisplayList(), }; @@ -1909,11 +1897,9 @@ const Gfx luigi_face_back_hair_cap_on_dl[] = { const Gfx luigi_face_cap_on_dl[] = { gsSPDisplayList(luigi_face_part_cap_on_dl), - gsSPCopyLightEXT(1, 5), // gsSPLight(&luigi_green_lights_group.l, 1), - gsSPCopyLightEXT(2, 6), // gsSPLight(&luigi_green_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SHIRT), // gsSPLight(&luigi_green_lights_group.a, 2), gsSPDisplayList(luigi_face_cap_dl), - gsSPLight(&luigi_brown2_lights_group.l, 1), - gsSPLight(&luigi_brown2_lights_group.a, 2), + gsSPCopyLightsPlayerPart(HAIR), gsSPDisplayList(luigi_face_back_hair_cap_on_dl), gsSPEndDisplayList(), }; @@ -1933,8 +1919,7 @@ const Gfx luigi_cap_on_eyes_front[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_front), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&luigi_beige_lights_group.l, 1), - gsSPLight(&luigi_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_hair_sideburn), gsDPLoadSync(), @@ -1966,8 +1951,7 @@ const Gfx luigi_cap_on_eyes_half_closed[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_half_closed), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&luigi_beige_lights_group.l, 1), - gsSPLight(&luigi_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_hair_sideburn), gsDPLoadSync(), @@ -1999,8 +1983,7 @@ const Gfx luigi_cap_on_eyes_closed[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_closed), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&luigi_beige_lights_group.l, 1), - gsSPLight(&luigi_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_hair_sideburn), gsDPLoadSync(), @@ -2032,8 +2015,7 @@ const Gfx luigi_cap_on_eyes_right[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_right), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&luigi_beige_lights_group.l, 1), - gsSPLight(&luigi_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_hair_sideburn), gsDPLoadSync(), @@ -2065,8 +2047,7 @@ const Gfx luigi_cap_on_eyes_left[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_left), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&luigi_beige_lights_group.l, 1), - gsSPLight(&luigi_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_hair_sideburn), gsDPLoadSync(), @@ -2098,8 +2079,7 @@ const Gfx luigi_cap_on_eyes_up[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_up), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&luigi_beige_lights_group.l, 1), - gsSPLight(&luigi_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_hair_sideburn), gsDPLoadSync(), @@ -2131,8 +2111,7 @@ const Gfx luigi_cap_on_eyes_down[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_down), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&luigi_beige_lights_group.l, 1), - gsSPLight(&luigi_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_hair_sideburn), gsDPLoadSync(), @@ -2164,8 +2143,7 @@ const Gfx luigi_cap_on_eyes_dead[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_dead), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&luigi_beige_lights_group.l, 1), - gsSPLight(&luigi_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_hair_sideburn), gsDPLoadSync(), @@ -2670,8 +2648,7 @@ const Gfx luigi_face_hair_cap_off_dl[] = { const Gfx luigi_face_cap_off_dl[] = { gsSPDisplayList(luigi_face_part_cap_off_dl), - gsSPLight(&luigi_brown2_lights_group.l, 1), - gsSPLight(&luigi_brown2_lights_group.a, 2), + gsSPCopyLightsPlayerPart(HAIR), gsSPDisplayList(luigi_face_hair_cap_off_dl), gsSPEndDisplayList(), }; @@ -2687,8 +2664,7 @@ const Gfx luigi_cap_off_eyes_front[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_front), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&luigi_beige_lights_group.l, 1), - gsSPLight(&luigi_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), gsDPLoadSync(), @@ -2716,8 +2692,7 @@ const Gfx luigi_cap_off_eyes_half_closed[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_half_closed), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&luigi_beige_lights_group.l, 1), - gsSPLight(&luigi_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), gsDPLoadSync(), @@ -2745,8 +2720,7 @@ const Gfx luigi_cap_off_eyes_closed[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_closed), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&luigi_beige_lights_group.l, 1), - gsSPLight(&luigi_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), gsDPLoadSync(), @@ -2774,8 +2748,7 @@ const Gfx luigi_cap_off_eyes_right[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_right), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&luigi_beige_lights_group.l, 1), - gsSPLight(&luigi_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), gsDPLoadSync(), @@ -2803,8 +2776,7 @@ const Gfx luigi_cap_off_eyes_left[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_left), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&luigi_beige_lights_group.l, 1), - gsSPLight(&luigi_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), gsDPLoadSync(), @@ -2832,8 +2804,7 @@ const Gfx luigi_cap_off_eyes_up[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_up), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&luigi_beige_lights_group.l, 1), - gsSPLight(&luigi_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), gsDPLoadSync(), @@ -2861,8 +2832,7 @@ const Gfx luigi_cap_off_eyes_down[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_down), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&luigi_beige_lights_group.l, 1), - gsSPLight(&luigi_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), gsDPLoadSync(), @@ -2890,8 +2860,7 @@ const Gfx luigi_cap_off_eyes_dead[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_eyes_dead), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&luigi_beige_lights_group.l, 1), - gsSPLight(&luigi_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(luigi_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_mustache), gsDPLoadSync(), @@ -3049,8 +3018,7 @@ const Gfx luigi_left_hand_open_shared_dl[] = { }; const Gfx luigi_left_hand_open[] = { - gsSPCopyLightEXT(1, 7), // glove light, set in mario_misc.c - gsSPCopyLightEXT(2, 8), + gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c gsSPDisplayList(luigi_left_hand_open_shared_dl), gsSPEndDisplayList(), }; @@ -3191,8 +3159,7 @@ const Gfx luigi_right_hand_open_dl[] = { }; const Gfx luigi_right_hand_open[] = { - gsSPCopyLightEXT(1, 7), // glove light, set in mario_misc.c - gsSPCopyLightEXT(2, 8), + gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c gsSPDisplayList(luigi_right_hand_open_dl), gsSPEndDisplayList(), }; @@ -3446,11 +3413,9 @@ const Gfx luigi_right_hand_cap_bottom_dl[] = { const Gfx luigi_right_hand_cap_dl[] = { gsSPDisplayList(luigi_right_hand_cap_top_dl), - gsSPCopyLightEXT(1, 7), // glove light, set in mario_misc.c - gsSPCopyLightEXT(2, 8), + gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c gsSPDisplayList(luigi_right_hand_cap_hand_position_dl), - gsSPLight(&luigi_brown2_lights_group.l, 1), - gsSPLight(&luigi_brown2_lights_group.a, 2), + gsSPCopyLightsPlayerPart(HAIR), gsSPDisplayList(luigi_right_hand_cap_bottom_dl), gsSPEndDisplayList(), }; @@ -3751,8 +3716,7 @@ const Gfx luigi_right_hand_peace_shared_dl[] = { }; const Gfx luigi_right_hand_peace[] = { - gsSPCopyLightEXT(1, 7), // glove light, set in mario_misc.c - gsSPCopyLightEXT(2, 8), + gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c gsSPDisplayList(luigi_right_hand_peace_shared_dl), gsSPEndDisplayList(), }; diff --git a/actors/luigi_cap/model.inc.c b/actors/luigi_cap/model.inc.c index 61aa4d28..56820766 100644 --- a/actors/luigi_cap/model.inc.c +++ b/actors/luigi_cap/model.inc.c @@ -167,8 +167,7 @@ const Gfx luigi_cap_seg3_dl_03022CC8[] = { // 0x03022D10 - 0x03022D38 const Gfx luigi_cap_seg3_dl_03022D10[] = { gsSPDisplayList(luigi_cap_seg3_dl_03022B68), - gsSPCopyLightEXT(1, 5), //gsSPLight(&luigi_cap_seg3_lights_0301CF08.l, 1), - gsSPCopyLightEXT(2, 6), //gsSPLight(&luigi_cap_seg3_lights_0301CF08.a, 2), + gsSPCopyLightsPlayerPart(SHIRT), //gsSPLight(&luigi_cap_seg3_lights_0301CF08.a, 2), gsSPDisplayList(luigi_cap_seg3_dl_03022CC8), gsSPEndDisplayList(), }; @@ -251,8 +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)), - gsSPCopyLightEXT(1, 5), //gsSPLight(&luigi_cap_seg3_lights_0301CF38.l, 1), - gsSPCopyLightEXT(2, 6), //gsSPLight(&luigi_cap_seg3_lights_0301CF38.a, 2), + gsSPCopyLightsPlayerPart(SHIRT), //gsSPLight(&luigi_cap_seg3_lights_0301CF38.a, 2), gsSPDisplayList(luigi_cap_seg3_dl_03022B30), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), @@ -272,8 +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), - gsSPCopyLightEXT(1, 5), - gsSPCopyLightEXT(2, 6), + gsSPCopyLightsPlayerPart(SHIRT), gsSPDisplayList(luigi_cap_seg3_dl_03022B30), gsSPDisplayList(luigi_cap_seg3_dl_03022B68), gsSPDisplayList(luigi_cap_seg3_dl_03022CC8), @@ -328,8 +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)), - gsSPCopyLightEXT(1, 5), //gsSPLight(&luigi_cap_seg3_lights_0301CF38.l, 1), - gsSPCopyLightEXT(2, 6), //gsSPLight(&luigi_cap_seg3_lights_0301CF38.a, 2), + gsSPCopyLightsPlayerPart(SHIRT), //gsSPLight(&luigi_cap_seg3_lights_0301CF38.a, 2), gsSPDisplayList(luigi_cap_seg3_dl_03022B30), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), @@ -372,8 +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), - gsSPCopyLightEXT(1, 5), - gsSPCopyLightEXT(2, 6), + gsSPCopyLightsPlayerPart(SHIRT), 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 7c963fd9..1cd5db55 100644 --- a/actors/mario/model.inc.c +++ b/actors/mario/model.inc.c @@ -381,8 +381,7 @@ const Gfx mario_butt_dl[] = { const Gfx mario_butt[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPCopyLightEXT(1, 3), // gsSPLight(&mario_blue_lights_group.l, 1), - gsSPCopyLightEXT(2, 4), // gsSPLight(&mario_blue_lights_group.a, 2), + gsSPCopyLightsPlayerPart(PANTS), // gsSPLight(&mario_blue_lights_group.a, 2), gsSPDisplayList(mario_butt_dl), gsSPEndDisplayList(), }; @@ -394,8 +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), - gsSPCopyLightEXT(1, 5), - gsSPCopyLightEXT(2, 6), + gsSPCopyLightsPlayerPart(SHIRT), gsSPDisplayList(mario_butt_dl), gsSPEndDisplayList(), }; @@ -499,8 +497,7 @@ const Gfx mario_left_arm_shared_dl[] = { // 0x0400D1D8 - 0x0400D1F8 const Gfx mario_left_arm[] = { - gsSPCopyLightEXT(1, 5), // gsSPLight(&mario_red_lights_group.l, 1), - gsSPCopyLightEXT(2, 6), // gsSPLight(&mario_red_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SHIRT), // gsSPLight(&mario_red_lights_group.a, 2), gsSPDisplayList(mario_left_arm_shared_dl), gsSPEndDisplayList(), }; @@ -651,8 +648,7 @@ const Gfx mario_left_hand_closed_shared_dl[] = { // 0x0400D8F0 - 0x0400D910 const Gfx mario_left_hand_closed[] = { - gsSPCopyLightEXT(1, 7), // glove light, set in mario_misc.c - gsSPCopyLightEXT(2, 8), + gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c gsSPDisplayList(mario_left_hand_closed_shared_dl), gsSPEndDisplayList(), }; @@ -760,8 +756,7 @@ const Gfx mario_right_arm_shared_dl[] = { // 0x0400DDE8 - 0x0400DE08 const Gfx mario_right_arm[] = { - gsSPCopyLightEXT(1, 5), // gsSPLight(&mario_red_lights_group.l, 1), - gsSPCopyLightEXT(2, 6), // gsSPLight(&mario_red_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SHIRT), // gsSPLight(&mario_red_lights_group.a, 2), gsSPDisplayList(mario_right_arm_shared_dl), gsSPEndDisplayList(), }; @@ -897,8 +892,7 @@ const Gfx mario_right_hand_closed_dl[] = { // 0x0400E458 - 0x0400E478 const Gfx mario_right_hand_closed[] = { - gsSPCopyLightEXT(1, 7), // glove light, set in mario_misc.c - gsSPCopyLightEXT(2, 8), + gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c gsSPDisplayList(mario_right_hand_closed_dl), gsSPEndDisplayList(), }; @@ -979,8 +973,7 @@ const Gfx mario_left_thigh_dl[] = { const Gfx mario_left_thigh[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPCopyLightEXT(1, 3), // gsSPLight(&mario_blue_lights_group.l, 1), - gsSPCopyLightEXT(2, 4), // gsSPLight(&mario_blue_lights_group.a, 2), + gsSPCopyLightsPlayerPart(PANTS), // gsSPLight(&mario_blue_lights_group.a, 2), gsSPDisplayList(mario_left_thigh_dl), gsSPEndDisplayList(), }; @@ -992,8 +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), - gsSPCopyLightEXT(1, 5), - gsSPCopyLightEXT(2, 6), + gsSPCopyLightsPlayerPart(SHIRT), gsSPDisplayList(mario_left_thigh_dl), gsSPEndDisplayList(), }; @@ -1091,8 +1083,7 @@ const Gfx mario_left_foot_shared_dl[] = { // 0x0400ECA0 - 0x0400ECC0 const Gfx mario_left_foot[] = { - gsSPLight(&mario_brown1_lights_group.l, 1), - gsSPLight(&mario_brown1_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SHOES), gsSPDisplayList(mario_left_foot_shared_dl), gsSPEndDisplayList(), }; @@ -1160,8 +1151,7 @@ const Gfx mario_right_thigh_shared_dl[] = { // 0x0400EFB8 - 0x0400EFD8 const Gfx mario_right_thigh[] = { - gsSPCopyLightEXT(1, 3), // gsSPLight(&mario_blue_lights_group.l, 1), - gsSPCopyLightEXT(2, 4), // gsSPLight(&mario_blue_lights_group.a, 2), + gsSPCopyLightsPlayerPart(PANTS), // gsSPLight(&mario_blue_lights_group.a, 2), gsSPDisplayList(mario_right_thigh_shared_dl), gsSPEndDisplayList(), }; @@ -1276,8 +1266,7 @@ const Gfx mario_right_foot_dl[] = { // 0x0400F4E8 - 0x0400F528 const Gfx mario_right_foot[] = { - gsSPLight(&mario_brown1_lights_group.l, 1), - gsSPLight(&mario_brown1_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SHOES), gsSPDisplayList(mario_right_foot_dl), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), @@ -1589,8 +1578,7 @@ const Gfx mario_tshirt_shared_dl[] = { // 0x04010348 - 0x04010370 const Gfx mario_torso_dl[] = { gsSPDisplayList(mario_pants_overalls_shared_dl), - gsSPCopyLightEXT(1, 5), // gsSPLight(&mario_red_lights_group.l, 1), - gsSPCopyLightEXT(2, 6), // gsSPLight(&mario_red_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SHIRT), // gsSPLight(&mario_red_lights_group.a, 2), gsSPDisplayList(mario_tshirt_shared_dl), gsSPEndDisplayList(), }; @@ -2080,11 +2068,9 @@ 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), - gsSPCopyLightEXT(1, 5), // gsSPLight(&mario_red_lights_group.l, 1), - gsSPCopyLightEXT(2, 6), // gsSPLight(&mario_red_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SHIRT), // gsSPLight(&mario_red_lights_group.a, 2), gsSPDisplayList(mario_face_cap_dl), - gsSPLight(&mario_brown2_lights_group.l, 1), - gsSPLight(&mario_brown2_lights_group.a, 2), + gsSPCopyLightsPlayerPart(HAIR), gsSPDisplayList(mario_face_back_hair_cap_on_dl), gsSPEndDisplayList(), }; @@ -2105,8 +2091,7 @@ const Gfx mario_cap_on_eyes_front[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_front), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(mario_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), gsDPLoadSync(), @@ -2139,8 +2124,7 @@ const Gfx mario_cap_on_eyes_half_closed[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_half_closed), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(mario_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), gsDPLoadSync(), @@ -2173,8 +2157,7 @@ const Gfx mario_cap_on_eyes_closed[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_closed), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(mario_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), gsDPLoadSync(), @@ -2207,8 +2190,7 @@ const Gfx mario_cap_on_eyes_right[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_right), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(mario_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), gsDPLoadSync(), @@ -2241,8 +2223,7 @@ const Gfx mario_cap_on_eyes_left[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_left), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(mario_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), gsDPLoadSync(), @@ -2275,8 +2256,7 @@ const Gfx mario_cap_on_eyes_up[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_up), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(mario_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), gsDPLoadSync(), @@ -2309,8 +2289,7 @@ const Gfx mario_cap_on_eyes_down[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_down), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(mario_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), gsDPLoadSync(), @@ -2343,8 +2322,7 @@ const Gfx mario_cap_on_eyes_dead[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_dead), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(mario_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn), gsDPLoadSync(), @@ -2892,8 +2870,7 @@ const Gfx mario_face_hair_cap_off_dl[] = { // 0x040139C0 - 0x040139E8 const Gfx mario_face_cap_off_dl[] = { gsSPDisplayList(mario_face_part_cap_off_dl), - gsSPLight(&mario_brown2_lights_group.l, 1), - gsSPLight(&mario_brown2_lights_group.a, 2), + gsSPCopyLightsPlayerPart(HAIR), gsSPDisplayList(mario_face_hair_cap_off_dl), gsSPEndDisplayList(), }; @@ -2910,8 +2887,7 @@ const Gfx mario_cap_off_eyes_front[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_front), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(mario_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -2940,8 +2916,7 @@ const Gfx mario_cap_off_eyes_half_closed[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_half_closed), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(mario_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -2970,8 +2945,7 @@ const Gfx mario_cap_off_eyes_closed[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_closed), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(mario_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -3000,8 +2974,7 @@ const Gfx mario_cap_off_eyes_right[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_right), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(mario_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -3030,8 +3003,7 @@ const Gfx mario_cap_off_eyes_left[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_left), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(mario_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -3060,8 +3032,7 @@ const Gfx mario_cap_off_eyes_up[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_up), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(mario_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -3090,8 +3061,7 @@ const Gfx mario_cap_off_eyes_down[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_down), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(mario_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -3120,8 +3090,7 @@ const Gfx mario_cap_off_eyes_dead[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_dead), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(mario_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -3270,8 +3239,7 @@ const Gfx mario_medium_poly_butt_dl[] = { const Gfx mario_medium_poly_butt[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPCopyLightEXT(1, 3), // gsSPLight(&mario_blue_lights_group.l, 1), - gsSPCopyLightEXT(2, 4), // gsSPLight(&mario_blue_lights_group.a, 2), + gsSPCopyLightsPlayerPart(PANTS), // gsSPLight(&mario_blue_lights_group.a, 2), gsSPDisplayList(mario_medium_poly_butt_dl), gsSPEndDisplayList(), }; @@ -3322,8 +3290,7 @@ const Gfx mario_medium_poly_left_arm_shared_dl[] = { // 0x04014840 - 0x04014860 const Gfx mario_medium_poly_left_arm[] = { - gsSPCopyLightEXT(1, 5), // gsSPLight(&mario_red_lights_group.l, 1), - gsSPCopyLightEXT(2, 6), // gsSPLight(&mario_red_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SHIRT), // gsSPLight(&mario_red_lights_group.a, 2), gsSPDisplayList(mario_medium_poly_left_arm_shared_dl), gsSPEndDisplayList(), }; @@ -3444,8 +3411,7 @@ const Gfx mario_medium_poly_left_hand_closed_shared_dl[] = { // 0x04014DC0 - 0x04014DE0 const Gfx mario_medium_poly_left_hand_closed[] = { - gsSPLight(&mario_white_lights_group.l, 7), - gsSPLight(&mario_white_lights_group.a, 8), + gsSPCopyLightsPlayerPart(GLOVES), gsSPDisplayList(mario_medium_poly_left_hand_closed_shared_dl), gsSPEndDisplayList(), }; @@ -3483,8 +3449,7 @@ const Gfx mario_medium_poly_right_arm_shared_dl[] = { // 0x04014F40 - 0x04014F60 const Gfx mario_medium_poly_right_arm[] = { - gsSPCopyLightEXT(1, 7), // gsSPLight(&mario_red_lights_group.l, 1), - gsSPCopyLightEXT(2, 8), // gsSPLight(&mario_red_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SHIRT), // gsSPLight(&mario_red_lights_group.a, 2), gsSPDisplayList(mario_medium_poly_right_arm_shared_dl), gsSPEndDisplayList(), }; @@ -3606,8 +3571,7 @@ const Gfx mario_medium_poly_right_hand_closed_dl[] = { // 0x040154E0 - 0x04015500 const Gfx mario_medium_poly_right_hand_closed[] = { - gsSPCopyLightEXT(1, 7), // glove light, set in mario_misc.c - gsSPCopyLightEXT(2, 8), + gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c gsSPDisplayList(mario_medium_poly_right_hand_closed_dl), gsSPEndDisplayList(), }; @@ -3659,8 +3623,7 @@ const Gfx mario_medium_poly_left_thigh_dl[] = { const Gfx mario_medium_poly_left_thigh[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPCopyLightEXT(1, 3), // gsSPLight(&mario_blue_lights_group.l, 1), - gsSPCopyLightEXT(2, 4), // gsSPLight(&mario_blue_lights_group.a, 2), + gsSPCopyLightsPlayerPart(PANTS), // gsSPLight(&mario_blue_lights_group.a, 2), gsSPDisplayList(mario_medium_poly_left_thigh_dl), gsSPEndDisplayList(), }; @@ -3767,8 +3730,7 @@ const Gfx mario_medium_poly_left_foot_shared_dl[] = { // 0x04015B60 - 0x04015B80 const Gfx mario_medium_poly_left_foot[] = { - gsSPLight(&mario_brown1_lights_group.l, 1), - gsSPLight(&mario_brown1_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SHOES), gsSPDisplayList(mario_medium_poly_left_foot_shared_dl), gsSPEndDisplayList(), }; @@ -3808,8 +3770,7 @@ const Gfx mario_medium_poly_right_thigh_shared_dl[] = { // 0x04015D00 - 0x04015D20 const Gfx mario_medium_poly_right_thigh[] = { - gsSPCopyLightEXT(1, 3), // gsSPLight(&mario_blue_lights_group.l, 1), - gsSPCopyLightEXT(2, 4), // gsSPLight(&mario_blue_lights_group.a, 2), + gsSPCopyLightsPlayerPart(PANTS), // gsSPLight(&mario_blue_lights_group.a, 2), gsSPDisplayList(mario_medium_poly_right_thigh_shared_dl), gsSPEndDisplayList(), }; @@ -3897,8 +3858,7 @@ const Gfx mario_medium_poly_right_foot_dl[] = { // 0x040160C8 - 0x04016108 const Gfx mario_medium_poly_right_foot[] = { - gsSPLight(&mario_brown1_lights_group.l, 1), - gsSPLight(&mario_brown1_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SHOES), gsSPDisplayList(mario_medium_poly_right_foot_dl), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), @@ -4081,8 +4041,7 @@ const Gfx mario_medium_poly_tshirt_shared_dl[] = { // 0x040168A0 - 0x040168C8 const Gfx mario_medium_poly_torso_dl[] = { gsSPDisplayList(mario_medium_poly_pants_overalls_shared_dl), - gsSPCopyLightEXT(1, 5), // gsSPLight(&mario_red_lights_group.l, 1), - gsSPCopyLightEXT(2, 6), // gsSPLight(&mario_red_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SHIRT), // gsSPLight(&mario_red_lights_group.a, 2), gsSPDisplayList(mario_medium_poly_tshirt_shared_dl), gsSPEndDisplayList(), }; @@ -4149,8 +4108,7 @@ const Gfx mario_low_poly_butt_dl[] = { const Gfx mario_low_poly_butt[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPCopyLightEXT(1, 3), // gsSPLight(&mario_blue_lights_group.l, 1), - gsSPCopyLightEXT(2, 4), // gsSPLight(&mario_blue_lights_group.a, 2), + gsSPCopyLightsPlayerPart(PANTS), // gsSPLight(&mario_blue_lights_group.a, 2), gsSPDisplayList(mario_low_poly_butt_dl), gsSPEndDisplayList(), }; @@ -4196,8 +4154,7 @@ const Gfx mario_low_poly_left_arm_shared_dl[] = { // 0x04016C70 - 0x04016C90 const Gfx mario_low_poly_left_arm[] = { - gsSPCopyLightEXT(1, 5), // gsSPLight(&mario_red_lights_group.l, 1), - gsSPCopyLightEXT(2, 6), // gsSPLight(&mario_red_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SHIRT), // gsSPLight(&mario_red_lights_group.a, 2), gsSPDisplayList(mario_low_poly_left_arm_shared_dl), gsSPEndDisplayList(), }; @@ -4253,8 +4210,7 @@ const Gfx mario_low_poly_left_hand_closed_shared_dl[] = { // 0x04016E80 - 0x04016EA0 const Gfx mario_low_poly_left_hand_closed[] = { - gsSPCopyLightEXT(1, 7), // glove light, set in mario_misc.c - gsSPCopyLightEXT(2, 8), + gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c gsSPDisplayList(mario_low_poly_left_hand_closed_shared_dl), gsSPEndDisplayList(), }; @@ -4287,8 +4243,7 @@ const Gfx mario_low_poly_right_arm_shared_dl[] = { // 0x04016FB0 - 0x04016FD0 const Gfx mario_low_poly_right_arm[] = { - gsSPCopyLightEXT(1, 5), // gsSPLight(&mario_red_lights_group.l, 1), - gsSPCopyLightEXT(2, 6), // gsSPLight(&mario_red_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SHIRT), // gsSPLight(&mario_red_lights_group.a, 2), gsSPDisplayList(mario_low_poly_right_arm_shared_dl), gsSPEndDisplayList(), }; @@ -4344,8 +4299,7 @@ const Gfx mario_low_poly_right_hand_closed_dl[] = { // 0x040171C0 - 0x040171E0 const Gfx mario_low_poly_right_hand_closed[] = { - gsSPCopyLightEXT(1, 7), // glove light, set in mario_misc.c - gsSPCopyLightEXT(2, 8), + gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c gsSPDisplayList(mario_low_poly_right_hand_closed_dl), gsSPEndDisplayList(), }; @@ -4394,8 +4348,7 @@ const Gfx mario_low_poly_left_thigh_dl[] = { const Gfx mario_low_poly_left_thigh[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPCopyLightEXT(1, 3), // gsSPLight(&mario_blue_lights_group.l, 1), - gsSPCopyLightEXT(2, 4), // gsSPLight(&mario_blue_lights_group.a, 2), + gsSPCopyLightsPlayerPart(PANTS), // gsSPLight(&mario_blue_lights_group.a, 2), gsSPDisplayList(mario_low_poly_left_thigh_dl), gsSPEndDisplayList(), }; @@ -4475,8 +4428,7 @@ const Gfx mario_low_poly_left_foot_shared_dl[] = { // 0x040176A8 - 0x040176C8 const Gfx mario_low_poly_left_foot[] = { - gsSPLight(&mario_brown1_lights_group.l, 1), - gsSPLight(&mario_brown1_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SHOES), gsSPDisplayList(mario_low_poly_left_foot_shared_dl), gsSPEndDisplayList(), }; @@ -4513,8 +4465,7 @@ const Gfx mario_low_poly_right_thigh_shared_dl[] = { // 0x04017818 - 0x04017838 const Gfx mario_low_poly_right_thigh[] = { - gsSPCopyLightEXT(1, 3), // gsSPLight(&mario_blue_lights_group.l, 1), - gsSPCopyLightEXT(2, 4), // gsSPLight(&mario_blue_lights_group.a, 2), + gsSPCopyLightsPlayerPart(PANTS), // gsSPLight(&mario_blue_lights_group.a, 2), gsSPDisplayList(mario_low_poly_right_thigh_shared_dl), gsSPEndDisplayList(), }; @@ -4581,8 +4532,7 @@ const Gfx mario_low_poly_right_foot_dl[] = { // 0x04017AD8 - 0x04017B18 const Gfx mario_low_poly_right_foot[] = { - gsSPLight(&mario_brown1_lights_group.l, 1), - gsSPLight(&mario_brown1_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SHOES), gsSPDisplayList(mario_low_poly_right_foot_dl), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), @@ -4684,8 +4634,7 @@ const Gfx mario_low_poly_tshirt_shared_dl[] = { // 0x04017E78 - 0x04017EA0 const Gfx mario_low_poly_torso_dl[] = { gsSPDisplayList(mario_low_poly_pants_overalls_shared_dl), - gsSPCopyLightEXT(1, 5), // gsSPLight(&mario_red_lights_group.l, 1), - gsSPCopyLightEXT(2, 6), // gsSPLight(&mario_red_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SHIRT), // gsSPLight(&mario_red_lights_group.a, 2), gsSPDisplayList(mario_low_poly_tshirt_shared_dl), gsSPEndDisplayList(), }; @@ -4854,11 +4803,9 @@ 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), - gsSPCopyLightEXT(1, 5), // gsSPLight(&mario_red_lights_group.l, 1), - gsSPCopyLightEXT(2, 6), // gsSPLight(&mario_red_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SHIRT), // gsSPLight(&mario_red_lights_group.a, 2), gsSPDisplayList(mario_low_poly_face_cap_dl), - gsSPLight(&mario_brown2_lights_group.l, 1), - gsSPLight(&mario_brown2_lights_group.a, 2), + gsSPCopyLightsPlayerPart(HAIR), gsSPDisplayList(mario_low_poly_face_back_hair_cap_on_dl), gsSPEndDisplayList(), }; @@ -4879,8 +4826,7 @@ const Gfx mario_low_poly_cap_on_eyes_front[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_front), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -4909,8 +4855,7 @@ const Gfx mario_low_poly_cap_on_eyes_half_closed[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_half_closed), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -4939,8 +4884,7 @@ const Gfx mario_low_poly_cap_on_eyes_closed[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_closed), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -4969,8 +4913,7 @@ const Gfx mario_low_poly_cap_on_eyes_right[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_right), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -4999,8 +4942,7 @@ const Gfx mario_low_poly_cap_on_eyes_left[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_left), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -5029,8 +4971,7 @@ const Gfx mario_low_poly_cap_on_eyes_up[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_up), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -5059,8 +5000,7 @@ const Gfx mario_low_poly_cap_on_eyes_down[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_down), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -5089,8 +5029,7 @@ const Gfx mario_low_poly_cap_on_eyes_dead[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_dead), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(mario_low_poly_eyes_cap_on_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -5223,8 +5162,7 @@ const Gfx mario_low_poly_face_hair_cap_off_dl[] = { // 0x04018F68 - 0x04018F90 const Gfx mario_low_poly_face_cap_off_dl[] = { gsSPDisplayList(mario_low_poly_face_part_cap_off_dl), - gsSPLight(&mario_brown2_lights_group.l, 1), - gsSPLight(&mario_brown2_lights_group.a, 2), + gsSPCopyLightsPlayerPart(HAIR), gsSPDisplayList(mario_low_poly_face_hair_cap_off_dl), gsSPEndDisplayList(), }; @@ -5241,8 +5179,7 @@ const Gfx mario_low_poly_cap_off_eyes_front[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_front), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -5267,8 +5204,7 @@ const Gfx mario_low_poly_cap_off_eyes_half_closed[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_half_closed), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -5293,8 +5229,7 @@ const Gfx mario_low_poly_cap_off_eyes_closed[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_closed), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -5319,8 +5254,7 @@ const Gfx mario_low_poly_cap_off_eyes_right[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_right), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -5345,8 +5279,7 @@ const Gfx mario_low_poly_cap_off_eyes_left[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_left), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -5371,8 +5304,7 @@ const Gfx mario_low_poly_cap_off_eyes_up[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_up), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -5397,8 +5329,7 @@ const Gfx mario_low_poly_cap_off_eyes_down[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_down), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -5423,8 +5354,7 @@ const Gfx mario_low_poly_cap_off_eyes_dead[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_eyes_dead), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPLight(&mario_beige_lights_group.l, 1), - gsSPLight(&mario_beige_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(mario_low_poly_mario_eyes_cap_off_dl), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_mustache), gsDPLoadSync(), @@ -5599,8 +5529,7 @@ const Gfx mario_left_hand_open_shared_dl[] = { // 0x04019CA0 - 0x04019CC0 const Gfx mario_left_hand_open[] = { - gsSPCopyLightEXT(1, 7), // glove light, set in mario_misc.c - gsSPCopyLightEXT(2, 8), + gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c gsSPDisplayList(mario_left_hand_open_shared_dl), gsSPEndDisplayList(), }; @@ -5758,8 +5687,7 @@ const Gfx mario_right_hand_open_dl[] = { // 0x0401A428 - 0x0401A448 const Gfx mario_right_hand_open[] = { - gsSPCopyLightEXT(1, 7), // glove light, set in mario_misc.c - gsSPCopyLightEXT(2, 8), + gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c gsSPDisplayList(mario_right_hand_open_dl), gsSPEndDisplayList(), }; @@ -6008,11 +5936,9 @@ const Gfx mario_right_hand_cap_bottom_dl[] = { // 0x0401AF20 - 0x0401AF60 const Gfx mario_right_hand_cap_dl[] = { gsSPDisplayList(mario_right_hand_cap_top_dl), - gsSPCopyLightEXT(1, 7), // glove light, set in mario_misc.c - gsSPCopyLightEXT(2, 8), + gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c gsSPDisplayList(mario_right_hand_cap_hand_position_dl), - gsSPLight(&mario_brown2_lights_group.l, 1), - gsSPLight(&mario_brown2_lights_group.a, 2), + gsSPCopyLightsPlayerPart(HAIR), gsSPDisplayList(mario_right_hand_cap_bottom_dl), gsSPEndDisplayList(), }; @@ -6401,8 +6327,7 @@ const Gfx mario_right_hand_peace_shared_dl[] = { // 0x0401BF30 - 0x0401BF50 const Gfx mario_right_hand_peace[] = { - gsSPCopyLightEXT(1, 7), // glove light, set in mario_misc.c - gsSPCopyLightEXT(2, 8), + gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c gsSPDisplayList(mario_right_hand_peace_shared_dl), gsSPEndDisplayList(), }; @@ -6539,8 +6464,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), - gsSPLight(&mario_brown2_lights_group.l, 1), - gsSPLight(&mario_brown2_lights_group.a, 2), + gsSPCopyLightsPlayerPart(HAIR), gsSPDisplayList(mario_cap_unused_base_bottom_dl), gsSPEndDisplayList(), }; @@ -6625,8 +6549,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)), - gsSPCopyLightEXT(1, 5), // gsSPLight(&mario_red_lights_group.l, 1), - gsSPCopyLightEXT(2, 6), // gsSPLight(&mario_red_lights_group.a, 2), + gsSPCopyLightsPlayerPart(SHIRT), // 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 c0f81443..eecb4e4c 100644 --- a/actors/mario_cap/model.inc.c +++ b/actors/mario_cap/model.inc.c @@ -180,8 +180,7 @@ const Gfx mario_cap_seg3_dl_03022CC8[] = { // 0x03022D10 - 0x03022D38 const Gfx mario_cap_seg3_dl_03022D10[] = { gsSPDisplayList(mario_cap_seg3_dl_03022B68), - gsSPCopyLightEXT(1, 5), //gsSPLight(&mario_cap_seg3_lights_0301CF08.l, 1), - gsSPCopyLightEXT(2, 6), //gsSPLight(&mario_cap_seg3_lights_0301CF08.a, 2), + gsSPCopyLightsPlayerPart(SHIRT), //gsSPLight(&mario_cap_seg3_lights_0301CF08.a, 2), gsSPDisplayList(mario_cap_seg3_dl_03022CC8), gsSPEndDisplayList(), }; @@ -264,8 +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)), - gsSPCopyLightEXT(1, 5), //gsSPLight(&mario_cap_seg3_lights_0301CF38.l, 1), - gsSPCopyLightEXT(2, 6), //gsSPLight(&mario_cap_seg3_lights_0301CF38.a, 2), + gsSPCopyLightsPlayerPart(SHIRT), //gsSPLight(&mario_cap_seg3_lights_0301CF38.a, 2), gsSPDisplayList(mario_cap_seg3_dl_03022B30), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), @@ -285,8 +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), - gsSPCopyLightEXT(1, 5), - gsSPCopyLightEXT(2, 6), + gsSPCopyLightsPlayerPart(SHIRT), gsSPDisplayList(mario_cap_seg3_dl_03022B30), gsSPDisplayList(mario_cap_seg3_dl_03022B68), gsSPDisplayList(mario_cap_seg3_dl_03022CC8), @@ -341,8 +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)), - gsSPCopyLightEXT(1, 5), //gsSPLight(&mario_cap_seg3_lights_0301CF38.l, 1), - gsSPCopyLightEXT(2, 6), //gsSPLight(&mario_cap_seg3_lights_0301CF38.a, 2), + gsSPCopyLightsPlayerPart(SHIRT), //gsSPLight(&mario_cap_seg3_lights_0301CF38.a, 2), gsSPDisplayList(mario_cap_seg3_dl_03022B30), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), @@ -385,8 +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), - gsSPCopyLightEXT(1, 5), //gsSPLight(&mario_cap_seg3_lights_0301CF20.l, 1), - gsSPCopyLightEXT(2, 6), //gsSPLight(&mario_cap_seg3_lights_0301CF20.a, 2), + gsSPCopyLightsPlayerPart(SHIRT), //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/custom_toad_eyes_closed.rgba16.png b/actors/toad_player/custom_toad_eyes_closed.rgba16.png index 178601538e25dc7500d2cd014b6fd41fb8d346df..25bf09f04f6ba9a9373ed8820ef3cc9ffae96549 100644 GIT binary patch delta 896 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 diff --git a/actors/toad_player/custom_toad_eyes_dead.rgba16.png b/actors/toad_player/custom_toad_eyes_dead.rgba16.png index 3c6a87509720f6b274450157042d0e5e4871ad2b..f86e51d52ea0aded92e8d0425ba059e92a8facde 100644 GIT binary patch delta 1267 zcmVF!c&+q=; zz^T>QXP>p#`tJ4Td-idO$n(GQ`bF~Wk}tkozmR;@_38oO<$vWx9v>g&{{CJb9vEgu1M15wFuNMx3f`TL^B}Hwuwzi7P z<&x~|Y`M9)v46<^25^0S?N-8ZOG}H6LqkJ#2fkh>CnpjT5~4ObJ3A#QDM`m{^6Kj9 zEr8qGTUlIOl<4SaRSXUe)_Z+@z2?x@>-6+gGBY#Xo8a!}=O+^r6Y9$YfaUD)@KBnX znp7DH3k#Fg)m6>eXT@mmx!Z>N`uZd=Fwku;Cnra~e}Dh(tf}7sSVV3pLJM6+MuvL< zAP}n9oFF`#m=5|>JhtNFYs!Q9-OGy}qulPSVoSbbp+XkRVf2Q<_#c0P?uBw4^yl3FqzY z?W)Xkd3m`SM{tHNE$bBK0A@f-N=kGs{omHsCRJ5c`b>QhQKIe!Kv7T}>FMc`m6avK z!^1K*HYPniJrWxmtEnNp7{`f4z$pM@9_Q#1wYa!A-N?|;kPHqEYFDMErfQ0Q6{2Ss zTz_6(%F)r0<`F;?l@%S&EVLTn?p+Vu(LonG%-K4GXY}9Y0p}Od+0U>b`GTscUK7Al zJB+RJ5ys4uR@TA?h<#m+M?M7LWHtk1#KPT3$@`r-v9Xi9OyA4-pCjOO`oUrkuufKF z>eC1~)9|+k5~nRYj5rP@Zvmi4i+_-Fat~qrA0Rkk$JoM-)7FO{BNm}VA<+q( z0~j-Bs4+;985JW`JbHk(G!Sy0t%IOz)>$!r2!QH^UZE0A2uqkIwx3yfimAt8;iAlCl1F z=F)^Y)}n(h$FRb}Lfr(>gds_j*Xing0OX924-5?GVnX-c$=G=?ah`~<15xpLhk~(1 zJy{KW3IK-`Ayi8=C?@YtU~K;o-fVnyCFJ8R`#(XQoa(F d>#Kjy{{hSXJ+)64Jj?(9002ovPDHLkV1j2WYCHe{ delta 4689 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 T1%>f)00000NkvXXu0mjfoNUOR diff --git a/actors/toad_player/custom_toad_eyes_half_closed.rgba16.png b/actors/toad_player/custom_toad_eyes_half_closed.rgba16.png index 505d3a2f8e837f91d36c5e9e03447dc4a4b9e470..525b94dfbc41975fa91c3c37f40bb9c6dea51996 100644 GIT binary patch delta 1183 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 diff --git a/actors/toad_player/custom_toad_face.rgba16.png b/actors/toad_player/custom_toad_face.rgba16.png index f56f7f89b01c7b9d045d9e4c9b826480587730c8..dcc7bcfd708ab78074e7b0d8ba65ee4136dc2609 100644 GIT binary patch delta 1228 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 diff --git a/actors/toad_player/model.inc.c b/actors/toad_player/model.inc.c index 650202ff..ed3c4db3 100644 --- a/actors/toad_player/model.inc.c +++ b/actors/toad_player/model.inc.c @@ -11,21 +11,14 @@ // metal // /////////// -static const Lights1 toad_player_lights_white = gdSPDefLights1( - 0x7f, 0x7f, 0x7f, - 0xff, 0xff, 0xff, 0x28, 0x28, 0x28 -); - 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), - gsSPCopyLightEXT(1, 5), - gsSPCopyLightEXT(2, 6), + gsSPCopyLightsPlayerPart(SHIRT), 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), - gsSPCopyLightEXT(1, 5), - gsSPCopyLightEXT(2, 6), + gsSPCopyLightsPlayerPart(SHIRT), gsSPEndDisplayList(), }; @@ -293,18 +286,13 @@ const Gfx toad_player_dl_face[] = { 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, toad_player_texture_face), gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - - gsSPLight(&toad_player_lights_face.l, 1), - gsSPLight(&toad_player_lights_face.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(toad_player_dl_face_inner), - gsDPTileSync(), gsSPEndDisplayList(), }; @@ -315,18 +303,13 @@ const Gfx toad_player_dl_eyes_closed[] = { 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, toad_player_texture_eyes_closed), gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - - gsSPLight(&toad_player_lights_face.l, 1), - gsSPLight(&toad_player_lights_face.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(toad_player_dl_face_inner), - gsDPTileSync(), gsSPEndDisplayList(), }; @@ -337,18 +320,13 @@ const Gfx toad_player_dl_eyes_half_closed[] = { 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, toad_player_texture_eyes_half_closed), gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - - gsSPLight(&toad_player_lights_face.l, 1), - gsSPLight(&toad_player_lights_face.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(toad_player_dl_face_inner), - gsDPTileSync(), gsSPEndDisplayList(), }; @@ -359,18 +337,13 @@ const Gfx toad_player_dl_eyes_dead[] = { 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, toad_player_texture_eyes_dead), gsDPLoadSync(), - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - - gsSPLight(&toad_player_lights_face.l, 1), - gsSPLight(&toad_player_lights_face.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(toad_player_dl_face_inner), - gsDPTileSync(), gsSPEndDisplayList(), }; @@ -641,8 +614,7 @@ const Gfx toad_player_dl_cap_decal[] = { //gsSPClearGeometryMode(G_CULL_BACK), - gsSPCopyLightEXT(1, 5), - gsSPCopyLightEXT(2, 6), + gsSPCopyLightsPlayerPart(SHIRT), gsSPVertex(toad_player_vertex_cap_decal + 0, 16, 0), gsSP1Triangle(0, 1, 2, 0), @@ -806,12 +778,8 @@ const Gfx toad_player_dl_cap_inner[] = { const Gfx toad_player_dl_cap[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - - gsSPCopyLightEXT(1, 7), // glove light, set in mario_misc.c - gsSPCopyLightEXT(2, 8), - + gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c gsSPDisplayList(toad_player_dl_cap_inner), - gsSPEndDisplayList(), }; @@ -961,8 +929,7 @@ const Gfx toad_player_dl_jacket_inner[] = { const Gfx toad_player_dl_jacket[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPCopyLightEXT(1, 3), - gsSPCopyLightEXT(2, 4), + gsSPCopyLightsPlayerPart(PANTS), gsSPDisplayList(toad_player_dl_jacket_inner), gsSPEndDisplayList(), }; @@ -1043,8 +1010,7 @@ const Gfx toad_player_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), - gsSPLight(&toad_player_lights_body_2.l, 1), - gsSPLight(&toad_player_lights_body_2.a, 2), + gsSPCopyLightsPlayerPart(SKIN), 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), @@ -1075,8 +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), - gsSPCopyLightEXT(1, 5), - gsSPCopyLightEXT(2, 6), + gsSPCopyLightsPlayerPart(SHIRT), 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), @@ -1091,23 +1056,18 @@ const Gfx toad_player_metal_dl_body_inner[] = { const Gfx toad_player_dl_body[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPCopyLightEXT(1, 5), - gsSPCopyLightEXT(2, 6), + gsSPCopyLightsPlayerPart(SHIRT), gsSPDisplayList(toad_player_dl_body_inner), - gsSPCopyLightEXT(1, 3), - gsSPCopyLightEXT(2, 4), + gsSPCopyLightsPlayerPart(PANTS), gsSPDisplayList(toad_player_dl_jacket_inner), gsSPEndDisplayList(), }; const Gfx toad_player_metal_dl_body[] = { gsSPDisplayList(toad_player_metal_dl_body_inner), - gsSPCopyLightEXT(1, 5), - gsSPCopyLightEXT(2, 6), - + gsSPCopyLightsPlayerPart(SHIRT), gsSPDisplayList(toad_player_dl_jacket_inner), - gsSPCopyLightEXT(1, 5), - gsSPCopyLightEXT(2, 6), + gsSPCopyLightsPlayerPart(SHIRT), gsSPEndDisplayList(), }; @@ -1177,8 +1137,7 @@ const Gfx toad_player_dl_arm_left_inner[] = { const Gfx toad_player_dl_arm_left[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPLight(&toad_player_lights_arm_left.l, 1), - gsSPLight(&toad_player_lights_arm_left.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(toad_player_dl_arm_left_inner), gsSPEndDisplayList(), }; @@ -1247,8 +1206,7 @@ const Gfx toad_player_dl_arm_right_inner[] = { const Gfx toad_player_dl_arm_right[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPLight(&toad_player_lights_arm_right.l, 1), - gsSPLight(&toad_player_lights_arm_right.a, 2), + gsSPCopyLightsPlayerPart(SKIN), gsSPDisplayList(toad_player_dl_arm_right_inner), gsSPEndDisplayList(), }; @@ -1321,8 +1279,7 @@ const Gfx toad_player_dl_foot_left_inner[] = { const Gfx toad_player_dl_foot_left[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPLight(&toad_player_lights_foot_left.l, 1), - gsSPLight(&toad_player_lights_foot_left.a, 2), + gsSPCopyLightsPlayerPart(SHOES), gsSPDisplayList(toad_player_dl_foot_left_inner), gsSPEndDisplayList(), }; @@ -1393,8 +1350,7 @@ const Gfx toad_player_dl_foot_right_inner[] = { const Gfx toad_player_dl_foot_right[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), - gsSPLight(&toad_player_lights_foot_right.l, 1), - gsSPLight(&toad_player_lights_foot_right.a, 2), + gsSPCopyLightsPlayerPart(SHOES), gsSPDisplayList(toad_player_dl_foot_right_inner), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), @@ -1413,10 +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), - - gsSPCopyLightEXT(1, 5), - gsSPCopyLightEXT(2, 6), - + gsSPCopyLightsPlayerPart(SHIRT), gsSPEndDisplayList(), }; diff --git a/actors/waluigi/model.inc.c b/actors/waluigi/model.inc.c index 28904216..965273c7 100644 --- a/actors/waluigi/model.inc.c +++ b/actors/waluigi/model.inc.c @@ -3457,8 +3457,7 @@ Gfx mat_waluigi_body_v3[] = { gsDPPipeSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), gsDPSetTileSize(0, 0, 0, 124, 124), - gsSPCopyLightEXT(1, 3), - gsSPCopyLightEXT(2, 4), + gsSPCopyLightsPlayerPart(PANTS), gsSPEndDisplayList(), }; @@ -3475,8 +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), - gsSPCopyLightEXT(1, 5), - gsSPCopyLightEXT(2, 6), + gsSPCopyLightsPlayerPart(SHIRT), gsSPEndDisplayList(), }; @@ -3498,8 +3496,7 @@ Gfx mat_waluigi_cap_v3[] = { 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), - gsSPCopyLightEXT(1, 5), - gsSPCopyLightEXT(2, 6), + gsSPCopyLightsPlayerPart(SHIRT), gsSPEndDisplayList(), }; @@ -3515,7 +3512,7 @@ Gfx mat_waluigi_face_0___eye_open_v3[] = { gsDPPipeSync(), 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), - gsSPSetLights1(waluigi_face_0___eye_open_v3_lights), + gsSPCopyLightsPlayerPart(SKIN), gsSPEndDisplayList(), }; @@ -3523,7 +3520,7 @@ Gfx mat_waluigi_hair_v3[] = { gsDPPipeSync(), gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), gsSPTexture(65535, 65535, 0, 0, 1), - gsSPSetLights1(waluigi_hair_v3_lights), + gsSPCopyLightsPlayerPart(HAIR), gsSPEndDisplayList(), }; @@ -3539,7 +3536,7 @@ Gfx mat_waluigi_sideburns_v3[] = { 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), - gsSPSetLights1(waluigi_sideburns_v3_lights), + gsSPCopyLightsPlayerPart(SKIN), gsSPEndDisplayList(), }; @@ -3547,7 +3544,7 @@ Gfx mat_waluigi_mustache_v3[] = { gsDPPipeSync(), gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), gsSPTexture(65535, 65535, 0, 0, 1), - gsSPSetLights1(waluigi_mustache_v3_lights), + gsSPCopyLightsPlayerPart(SKIN), gsSPEndDisplayList(), }; @@ -3571,7 +3568,7 @@ Gfx mat_waluigi_mouth_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), - gsSPSetLights1(waluigi_mouth_v3_lights), + gsSPCopyLightsPlayerPart(SKIN), gsSPEndDisplayList(), }; @@ -3595,7 +3592,7 @@ Gfx mat_waluigi_face_1___eye_half_v3[] = { gsDPPipeSync(), 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), - gsSPSetLights1(waluigi_face_1___eye_half_v3_lights), + gsSPCopyLightsPlayerPart(SKIN), gsSPEndDisplayList(), }; @@ -3611,7 +3608,7 @@ Gfx mat_waluigi_face_2___eye_closed_v3[] = { gsDPPipeSync(), 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), - gsSPSetLights1(waluigi_face_2___eye_closed_v3_lights), + gsSPCopyLightsPlayerPart(SKIN), gsSPEndDisplayList(), }; @@ -3627,7 +3624,7 @@ Gfx mat_waluigi_face_7___eye_X_v3[] = { gsDPPipeSync(), 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), - gsSPSetLights1(waluigi_face_7___eye_X_v3_lights), + gsSPCopyLightsPlayerPart(SKIN), gsSPEndDisplayList(), }; @@ -3687,8 +3684,7 @@ Gfx mat_waluigi_gloves_v3[] = { gsDPPipeSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), gsDPSetTileSize(0, 0, 0, 124, 124), - gsSPCopyLightEXT(1, 7), // glove light, set in mario_misc.c - gsSPCopyLightEXT(2, 8), + gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c gsSPEndDisplayList(), }; @@ -3696,7 +3692,7 @@ Gfx mat_waluigi_shoes_v3[] = { gsDPPipeSync(), gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), gsSPTexture(65535, 65535, 0, 0, 1), - gsSPSetLights1(waluigi_shoes_v3_lights), + gsSPCopyLightsPlayerPart(SHOES), gsSPEndDisplayList(), }; diff --git a/actors/waluigi_cap/model.inc.c b/actors/waluigi_cap/model.inc.c index 30c382f2..363b35b8 100644 --- a/actors/waluigi_cap/model.inc.c +++ b/actors/waluigi_cap/model.inc.c @@ -162,8 +162,7 @@ const Gfx waluigi_cap_seg3_dl_03022CC8[] = { // 0x03022D10 - 0x03022D38 const Gfx waluigi_cap_seg3_dl_03022D10[] = { gsSPDisplayList(waluigi_cap_seg3_dl_03022B68), - gsSPCopyLightEXT(1, 5), //gsSPLight(&waluigi_cap_seg3_lights_0301CF08.l, 1), - gsSPCopyLightEXT(2, 6), //gsSPLight(&waluigi_cap_seg3_lights_0301CF08.a, 2), + gsSPCopyLightsPlayerPart(SHIRT), //gsSPLight(&waluigi_cap_seg3_lights_0301CF08.a, 2), gsSPDisplayList(waluigi_cap_seg3_dl_03022CC8), gsSPEndDisplayList(), }; @@ -246,8 +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)), - gsSPCopyLightEXT(1, 5), //gsSPLight(&waluigi_cap_seg3_lights_0301CF38.l, 1), - gsSPCopyLightEXT(2, 6), //gsSPLight(&waluigi_cap_seg3_lights_0301CF38.a, 2), + gsSPCopyLightsPlayerPart(SHIRT), //gsSPLight(&waluigi_cap_seg3_lights_0301CF38.a, 2), gsSPDisplayList(waluigi_cap_seg3_dl_03022B30), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), @@ -267,8 +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), - gsSPCopyLightEXT(1, 5), - gsSPCopyLightEXT(2, 6), + gsSPCopyLightsPlayerPart(SHIRT), gsSPDisplayList(waluigi_cap_seg3_dl_03022B30), gsSPDisplayList(waluigi_cap_seg3_dl_03022B68), gsSPDisplayList(waluigi_cap_seg3_dl_03022CC8), @@ -323,8 +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)), - gsSPCopyLightEXT(1, 5), //gsSPLight(&waluigi_cap_seg3_lights_0301CF38.l, 1), - gsSPCopyLightEXT(2, 6), //gsSPLight(&waluigi_cap_seg3_lights_0301CF38.a, 2), + gsSPCopyLightsPlayerPart(SHIRT), //gsSPLight(&waluigi_cap_seg3_lights_0301CF38.a, 2), gsSPDisplayList(waluigi_cap_seg3_dl_03022B30), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), @@ -367,8 +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), - gsSPCopyLightEXT(1, 5), //gsSPLight(&waluigi_cap_seg3_lights_0301CF20.l, 1), - gsSPCopyLightEXT(2, 6), //gsSPLight(&waluigi_cap_seg3_lights_0301CF20.a, 2), + gsSPCopyLightsPlayerPart(SHIRT), //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 b88e31ea..48d7ebc4 100644 --- a/actors/wario/model.inc.c +++ b/actors/wario/model.inc.c @@ -3402,8 +3402,7 @@ Gfx mat_wario_overalls[] = { gsDPPipeSync(), gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), gsSPTexture(65535, 65535, 0, 0, 1), - gsSPCopyLightEXT(1, 3), // gsSPSetLights1(wario_purple_lights_group), - gsSPCopyLightEXT(2, 4), + gsSPCopyLightsPlayerPart(PANTS), // gsSPSetLights1(wario_purple_lights_group), gsSPEndDisplayList(), }; @@ -3420,8 +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), - gsSPCopyLightEXT(1, 5), - gsSPCopyLightEXT(2, 6), + gsSPCopyLightsPlayerPart(SHIRT), gsSPEndDisplayList(), }; @@ -3435,8 +3433,7 @@ 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), - gsSPCopyLightEXT(1, 5), // gsSPSetLights1(wario_yellow_lights_group), - gsSPCopyLightEXT(2, 6), + gsSPCopyLightsPlayerPart(SHIRT), gsSPEndDisplayList(), }; @@ -3452,8 +3449,7 @@ Gfx mat_wario_button[] = { 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), - gsSPCopyLightEXT(1, 3), // gsSPSetLights1(wario_purple_lights_group), - gsSPCopyLightEXT(2, 4), + gsSPCopyLightsPlayerPart(PANTS), // gsSPSetLights1(wario_purple_lights_group), gsSPEndDisplayList(), }; @@ -3469,8 +3465,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), - gsSPCopyLightEXT(1, 5), // gsSPSetLights1(wario_yellow_lights_group), - gsSPCopyLightEXT(2, 6), + gsSPCopyLightsPlayerPart(SHIRT), gsSPEndDisplayList(), }; @@ -3478,7 +3473,7 @@ Gfx mat_wario_hair[] = { gsDPPipeSync(), gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), gsSPTexture(65535, 65535, 0, 0, 1), - gsSPSetLights1(wario_brown_lights_group), + gsSPCopyLightsPlayerPart(HAIR), gsSPEndDisplayList(), }; @@ -3494,7 +3489,7 @@ Gfx mat_wario_eyes_center[] = { gsDPPipeSync(), 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), - gsSPSetLights1(wario_beige_lights_group), + gsSPCopyLightsPlayerPart(SKIN), gsSPEndDisplayList(), }; @@ -3510,7 +3505,7 @@ Gfx mat_wario_sideburn[] = { 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), - gsSPSetLights1(wario_beige_lights_group), + gsSPCopyLightsPlayerPart(SKIN), gsSPEndDisplayList(), }; @@ -3518,7 +3513,7 @@ Gfx mat_wario_face[] = { gsDPPipeSync(), gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), gsSPTexture(65535, 65535, 0, 0, 1), - gsSPSetLights1(wario_beige_lights_group), + gsSPCopyLightsPlayerPart(SKIN), gsSPEndDisplayList(), }; @@ -3550,7 +3545,7 @@ Gfx mat_wario_mouth[] = { gsDPPipeSync(), 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), - gsSPSetLights1(wario_beige_lights_group), + gsSPCopyLightsPlayerPart(SKIN), gsSPEndDisplayList(), }; @@ -3566,7 +3561,7 @@ Gfx mat_wario_eyes_half_closed[] = { gsDPPipeSync(), 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), - gsSPSetLights1(wario_beige_lights_group), + gsSPCopyLightsPlayerPart(SKIN), gsSPEndDisplayList(), }; @@ -3582,7 +3577,7 @@ Gfx mat_wario_eyes_closed[] = { gsDPPipeSync(), 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), - gsSPSetLights1(wario_beige_lights_group), + gsSPCopyLightsPlayerPart(SKIN), gsSPEndDisplayList(), }; @@ -3598,7 +3593,7 @@ Gfx mat_wario_eyes_right[] = { gsDPPipeSync(), 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), - gsSPSetLights1(wario_beige_lights_group), + gsSPCopyLightsPlayerPart(SKIN), gsSPEndDisplayList(), }; @@ -3614,7 +3609,7 @@ Gfx mat_wario_eyes_left[] = { gsDPPipeSync(), 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), - gsSPSetLights1(wario_beige_lights_group), + gsSPCopyLightsPlayerPart(SKIN), gsSPEndDisplayList(), }; @@ -3630,7 +3625,7 @@ Gfx mat_wario_eyes_up[] = { gsDPPipeSync(), 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), - gsSPSetLights1(wario_beige_lights_group), + gsSPCopyLightsPlayerPart(SKIN), gsSPEndDisplayList(), }; @@ -3646,7 +3641,7 @@ Gfx mat_wario_eyes_down[] = { gsDPPipeSync(), 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), - gsSPSetLights1(wario_beige_lights_group), + gsSPCopyLightsPlayerPart(SKIN), gsSPEndDisplayList(), }; @@ -3662,7 +3657,7 @@ Gfx mat_wario_eyes_dead[] = { gsDPPipeSync(), 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), - gsSPSetLights1(wario_beige_lights_group), + gsSPCopyLightsPlayerPart(SKIN), gsSPEndDisplayList(), }; @@ -3670,8 +3665,7 @@ Gfx mat_wario_gloves[] = { gsDPPipeSync(), gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), gsSPTexture(65535, 65535, 0, 0, 1), - gsSPCopyLightEXT(1, 7), // glove light, set in mario_misc.c - gsSPCopyLightEXT(2, 8), + gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c gsSPEndDisplayList(), }; @@ -3725,7 +3719,7 @@ Gfx mat_wario_shoes[] = { gsDPPipeSync(), gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), gsSPTexture(65535, 65535, 0, 0, 1), - gsSPSetLights1(wario_green_lights_group), + gsSPCopyLightsPlayerPart(SHOES), gsSPEndDisplayList(), }; diff --git a/actors/wario_cap/model.inc.c b/actors/wario_cap/model.inc.c index f3fbe8a1..46e12e24 100644 --- a/actors/wario_cap/model.inc.c +++ b/actors/wario_cap/model.inc.c @@ -167,8 +167,7 @@ const Gfx wario_cap_seg3_dl_03022CC8[] = { // 0x03022D10 - 0x03022D38 const Gfx wario_cap_seg3_dl_03022D10[] = { gsSPDisplayList(wario_cap_seg3_dl_03022B68), - gsSPCopyLightEXT(1, 5), //gsSPLight(&wario_cap_seg3_lights_0301CF08.l, 1), - gsSPCopyLightEXT(2, 6), //gsSPLight(&wario_cap_seg3_lights_0301CF08.a, 2), + gsSPCopyLightsPlayerPart(SHIRT), //gsSPLight(&wario_cap_seg3_lights_0301CF08.a, 2), gsSPDisplayList(wario_cap_seg3_dl_03022CC8), gsSPEndDisplayList(), }; @@ -251,8 +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)), - gsSPCopyLightEXT(1, 5), //gsSPLight(&wario_cap_seg3_lights_0301CF38.l, 1), - gsSPCopyLightEXT(2, 6), //gsSPLight(&wario_cap_seg3_lights_0301CF38.a, 2), + gsSPCopyLightsPlayerPart(SHIRT), //gsSPLight(&wario_cap_seg3_lights_0301CF38.a, 2), gsSPDisplayList(wario_cap_seg3_dl_03022B30), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), @@ -272,8 +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), - gsSPCopyLightEXT(1, 5), - gsSPCopyLightEXT(2, 6), + gsSPCopyLightsPlayerPart(SHIRT), gsSPDisplayList(wario_cap_seg3_dl_03022B30), gsSPDisplayList(wario_cap_seg3_dl_03022B68), gsSPDisplayList(wario_cap_seg3_dl_03022CC8), @@ -328,8 +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)), - gsSPCopyLightEXT(1, 5), //gsSPLight(&wario_cap_seg3_lights_0301CF38.l, 1), - gsSPCopyLightEXT(2, 6), //gsSPLight(&wario_cap_seg3_lights_0301CF38.a, 2), + gsSPCopyLightsPlayerPart(SHIRT), //gsSPLight(&wario_cap_seg3_lights_0301CF38.a, 2), gsSPDisplayList(wario_cap_seg3_dl_03022B30), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), @@ -372,8 +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), - gsSPCopyLightEXT(1, 5), - gsSPCopyLightEXT(2, 6), + gsSPCopyLightsPlayerPart(SHIRT), gsSPDisplayList(wario_cap_seg3_dl_03022B30), gsSPDisplayList(wario_cap_seg3_dl_03022B68), gsSPDisplayList(wario_cap_seg3_dl_03022CC8), diff --git a/data/dynos_bin_gfx.cpp b/data/dynos_bin_gfx.cpp index 5807f48f..6d10d4fa 100644 --- a/data/dynos_bin_gfx.cpp +++ b/data/dynos_bin_gfx.cpp @@ -303,6 +303,14 @@ s64 DynOS_Gfx_ParseGfxConstants(const String& _Arg, bool* found) { gfx_constant(G_SCALE_FRAC); gfx_constant(G_ROTATE_FRAC); + // Player parts + gfx_constant(PANTS); + gfx_constant(SHIRT); + gfx_constant(GLOVES); + gfx_constant(SHOES); + gfx_constant(HAIR); + gfx_constant(SKIN); + // Common values gfx_constant(CALC_DXT(4,G_IM_SIZ_4b_BYTES)); gfx_constant(CALC_DXT(8,G_IM_SIZ_4b_BYTES)); @@ -735,6 +743,7 @@ static void ParseGfxSymbol(GfxData* aGfxData, DataNode* aNode, Gfx*& aHead, gfx_symbol_1(gsDPSetTextureFilter, false); gfx_symbol_2(gsSPCopyLightEXT, false); + gfx_symbol_1(gsSPCopyLightsPlayerPart, false); gfx_symbol_2(gsSPFogFactor, false); gfx_symbol_1(gsDPSetTextureLOD, false); gfx_symbol_3(gsMoveWd, false); diff --git a/docs/lua/constants.md b/docs/lua/constants.md index 0a899cf4..12867f61 100644 --- a/docs/lua/constants.md +++ b/docs/lua/constants.md @@ -877,10 +877,13 @@ ### [enum PlayerParts](#PlayerParts) | Identifier | Value | | :--------- | :---- | -| SHIRT | 0 | -| PANTS | 1 | +| PANTS | 0 | +| SHIRT | 1 | | GLOVES | 2 | -| PLAYER_PART_MAX | 3 | +| SHOES | 3 | +| HAIR | 4 | +| SKIN | 5 | +| PLAYER_PART_MAX | 6 | [:arrow_up_small:](#) diff --git a/include/PR/gbi.h b/include/PR/gbi.h index d74be8ca..929bc22f 100644 --- a/include/PR/gbi.h +++ b/include/PR/gbi.h @@ -2567,11 +2567,17 @@ typedef union { * EXTENDED COMMAND * Copy one light's parameters to the other. */ -#ifdef F3DEX_GBI_2E -# define gSPCopyLightEXT(pkt, dst, src) \ - gCopyMemEXT((pkt),G_COPYMEM,G_MV_LIGHT,(dst)*24+24,(src)*24+24,sizeof(Light)) -# define gsSPCopyLightEXT(dst, src) \ - gsCopyMemEXT( G_COPYMEM,G_MV_LIGHT,(dst)*24+24,(src)*24+24,sizeof(Light)) +#ifdef F3DEX_GBI_2E +#define gSPCopyLightEXT(pkt, dst, src) \ + gCopyMemEXT((pkt),G_COPYMEM,G_MV_LIGHT,(dst)*24+24,(src)*24+24,sizeof(Light)) +#define gsSPCopyLightEXT(dst, src) \ + gsCopyMemEXT( G_COPYMEM,G_MV_LIGHT,(dst)*24+24,(src)*24+24,sizeof(Light)) +#define gSPCopyLightsPlayerPart(pkt, part) \ + gSPCopyLightEXT((pkt), 1, ((2 * ((part) + 1)) + 1)); \ + gSPCopyLightEXT((pkt), 2, ((2 * ((part) + 1)) + 2)); +#define gsSPCopyLightsPlayerPart(part) \ + gsSPCopyLightEXT(1, ((2 * ((part) + 1)) + 1)), \ + gsSPCopyLightEXT(2, ((2 * ((part) + 1)) + 2)) #endif /* diff --git a/mods/arena/actors/arena_ball/model.inc.c b/mods/arena/actors/arena_ball/model.inc.c index 33d8204a..8a79774f 100644 --- a/mods/arena/actors/arena_ball/model.inc.c +++ b/mods/arena/actors/arena_ball/model.inc.c @@ -17,15 +17,13 @@ const Gfx arena_ball_gfx_2[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bobomb_seg8_texture_0801DA60), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPCopyLightEXT(1, 5), - gsSPCopyLightEXT(2, 6), + gsSPCopyLightsPlayerPart(SHIRT), gsSPVertex(arena_ball_vtx, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, bobomb_seg8_texture_0801EA60), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsSPCopyLightEXT(1, 5), - gsSPCopyLightEXT(2, 6), + gsSPCopyLightsPlayerPart(SHIRT), gsSPVertex(arena_ball_vtx_2, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0), gsSPEndDisplayList(), diff --git a/mods/arena/actors/cannon_box/model.inc.c b/mods/arena/actors/cannon_box/model.inc.c index 31a826d9..69f0a8c0 100644 --- a/mods/arena/actors/cannon_box/model.inc.c +++ b/mods/arena/actors/cannon_box/model.inc.c @@ -786,8 +786,7 @@ Gfx mat_cannon_box_f3d_material[] = { gsDPPipeSync(), gsDPSetTile(G_IM_FMT_I, G_IM_SIZ_8b, 4, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), gsDPSetTileSize(0, 0, 0, 124, 124), - gsSPCopyLightEXT(1, 5), - gsSPCopyLightEXT(2, 6), + gsSPCopyLightsPlayerPart(SHIRT), gsSPEndDisplayList(), }; @@ -817,8 +816,7 @@ Gfx mat_cannon_box_f3d_material_009[] = { gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_8b, 4, 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), gsDPSetPrimColor(0, 0, 254, 254, 254, 255), - gsSPCopyLightEXT(1, 5), - gsSPCopyLightEXT(2, 6), + gsSPCopyLightsPlayerPart(SHIRT), gsSPEndDisplayList(), }; diff --git a/mods/arena/actors/hammer/model.inc.c b/mods/arena/actors/hammer/model.inc.c index 4472ab38..1c45b1ec 100644 --- a/mods/arena/actors/hammer/model.inc.c +++ b/mods/arena/actors/hammer/model.inc.c @@ -511,8 +511,7 @@ Gfx mat_hammer_Material_001_f3d[] = { gsDPPipeSync(), gsDPSetTile(G_IM_FMT_I, G_IM_SIZ_8b, 4, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), gsDPSetTileSize(0, 0, 0, 124, 124), - gsSPCopyLightEXT(1, 5), - gsSPCopyLightEXT(2, 6), + gsSPCopyLightsPlayerPart(SHIRT), gsSPEndDisplayList(), }; diff --git a/mods/arena/actors/koth_active/model.inc.c b/mods/arena/actors/koth_active/model.inc.c index 8751c998..0bcba068 100644 --- a/mods/arena/actors/koth_active/model.inc.c +++ b/mods/arena/actors/koth_active/model.inc.c @@ -142,8 +142,7 @@ Gfx mat_koth_active_f3d_material[] = { gsDPPipeSync(), gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_8b, 2, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 4, 0), gsDPSetTileSize(0, 0, 0, 60, 124), - gsSPCopyLightEXT(1, 5), - gsSPCopyLightEXT(2, 6), + gsSPCopyLightsPlayerPart(SHIRT), gsSPEndDisplayList(), }; diff --git a/src/game/characters.c b/src/game/characters.c index 66bd6d74..b36db049 100644 --- a/src/game/characters.c +++ b/src/game/characters.c @@ -355,53 +355,43 @@ struct Character gCharacters[CT_MAX] = { }, }; -const struct PlayerPalette DEFAULT_MARIO_PALETTE = {{{0xff, 0x00, 0x00}, {0x00, 0x00, 0xff}, {0xff, 0xff, 0xff}}}; +const struct PlayerPalette DEFAULT_MARIO_PALETTE = +{{{ 0x00, 0x00, 0xff }, { 0xff, 0x00, 0x00 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }}}; const struct PlayerPalette gPalettePresets[PALETTE_PRESET_MAX] = { - //shirt //pants //gloves - - // default mario - {{{0xff, 0x00, 0x00}, {0x00, 0x00, 0xff}, {0xff, 0xff, 0xff}}}, - // default luigi - {{{0x00, 0x98, 0x00}, {0x00, 0x00, 0xfe}, {0xff, 0xff, 0xff}}}, - // fake waluigi - {{{0x6d, 0x3c, 0x9a}, {0x2c, 0x26, 0x3f}, {0xff, 0xff, 0xff}}}, - // fake wario - {{{0xf9, 0xeb, 0x30}, {0x7f, 0x20, 0x7a}, {0xff, 0xff, 0xff}}}, - - {{{0x7b, 0x00, 0xde}, {0xff, 0x00, 0x00}, {0xff, 0xff, 0xff}}}, - {{{0x95, 0x43, 0x01}, {0xc6, 0xb1, 0x32}, {0xff, 0xff, 0xff}}}, - {{{0x4c, 0x5f, 0x20}, {0x07, 0x09, 0x07}, {0xff, 0xff, 0xff}}}, - {{{0x00, 0x2f, 0xc8}, {0xbf, 0xde, 0xff}, {0xff, 0xff, 0xff}}}, - {{{0x11, 0x11, 0x11}, {0xf8, 0x3b, 0x05}, {0xff, 0xff, 0xff}}}, - {{{0xc1, 0x2c, 0x72}, {0x34, 0x16, 0x0d}, {0xff, 0xff, 0xff}}}, - {{{0xff, 0x96, 0xc8}, {0xff, 0x00, 0x00}, {0xff, 0xff, 0xff}}}, - {{{0x4c, 0xff, 0x4c}, {0x81, 0x00, 0x00}, {0xff, 0xff, 0xff}}}, - {{{0xa9, 0x78, 0xfc}, {0x61, 0x3d, 0x2e}, {0xff, 0xff, 0xff}}}, - - {{{0x84, 0x60, 0x00}, {0x00, 0x46, 0x5c}, {0xff, 0xff, 0xff}}}, - {{{0x5a, 0x94, 0xff}, {0x4f, 0x31, 0x8b}, {0xff, 0xff, 0xff}}}, - {{{0x68, 0x0a, 0x17}, {0x23, 0x11, 0x03}, {0xff, 0xff, 0xff}}}, - {{{0x95, 0xd0, 0x8f}, {0x53, 0x39, 0x3d}, {0xff, 0xff, 0xff}}}, - - {{{0x37, 0x32, 0x42}, {0xe6, 0xe3, 0xff}, {0xff, 0xff, 0xff}}}, - {{{0xff, 0x8a, 0x00}, {0x00, 0x51, 0x10}, {0xff, 0xff, 0xff}}}, - {{{0x65, 0xfa, 0xff}, {0x4c, 0x1e, 0x3f}, {0xff, 0xff, 0xff}}}, - - {{{0xe6, 0xe6, 0xe6}, {0xb2, 0x28, 0x18}, {0xff, 0xff, 0xff}}}, - {{{0xe6, 0xe6, 0xe6}, {0x00, 0x98, 0x00}, {0xff, 0xff, 0xff}}}, - {{{0xe6, 0xe6, 0xe6}, {0x6d, 0x3c, 0x9a}, {0xff, 0xff, 0xff}}}, - {{{0xe6, 0xe6, 0xe6}, {0xf9, 0xeb, 0x30}, {0xff, 0xff, 0xff}}}, - - {{{0xe7, 0xe7, 0x21}, {0x17, 0x18, 0x15}, {0xff, 0xff, 0xff}}}, - {{{0xaa, 0x27, 0x31}, {0xf7, 0x9a, 0x47}, {0xff, 0xff, 0xff}}}, - {{{0x55, 0x92, 0xb2}, {0xf7, 0xc2, 0x45}, {0xff, 0xff, 0xff}}}, - {{{0x10, 0x1b, 0x2e}, {0xeb, 0x8a, 0x4b}, {0xff, 0xff, 0xff}}}, - {{{0x3b, 0x8f, 0xf7}, {0xd6, 0x35, 0x4d}, {0xff, 0xff, 0xff}}}, - {{{0xff, 0x8e, 0xb2}, {0xd6, 0x35, 0x4d}, {0xff, 0xff, 0xff}}}, - - {{{0x47, 0xc5, 0xff}, {0xb2, 0x28, 0x18}, {0xff, 0xff, 0xff}}}, - {{{0x47, 0xc5, 0xff}, {0x00, 0x98, 0x00}, {0xff, 0xff, 0xff}}}, +/* ---- 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 }; enum AnimType { diff --git a/src/game/characters.h b/src/game/characters.h index 7757113b..5882aaad 100644 --- a/src/game/characters.h +++ b/src/game/characters.h @@ -8,8 +8,7 @@ #define PALETTE_PRESET_MAX 32 enum PlayerParts { - SHIRT, PANTS, GLOVES, PLAYER_PART_MAX - //SHOES (can't implement due to light limit) + PANTS, SHIRT, GLOVES, SHOES, HAIR, SKIN, PLAYER_PART_MAX }; #pragma pack(1) diff --git a/src/game/mario_misc.c b/src/game/mario_misc.c index a00e5522..35e842e2 100644 --- a/src/game/mario_misc.c +++ b/src/game/mario_misc.c @@ -77,15 +77,6 @@ static s8 gMarioAttackScaleAnimation[3 * 6] = { struct MarioBodyState gBodyStates[MAX_PLAYERS]; struct GraphNodeObject gMirrorMario[MAX_PLAYERS]; // copy of Mario's geo node for drawing mirror Mario - -// ambient color is always half the diffuse color, so we can pull a macro -#define PALETTE_TO_LIGHTS(palette) \ - {{ \ - gdSPDefLights1((palette.parts[SHIRT][0] >> 1), (palette.parts[SHIRT][1] >> 1), (palette.parts[SHIRT][2] >> 1), palette.parts[SHIRT][0], palette.parts[SHIRT][1], palette.parts[SHIRT][2], 0x28, 0x28, 0x28), \ - gdSPDefLights1((palette.parts[PANTS][0] >> 1), (palette.parts[PANTS][1] >> 1), (palette.parts[PANTS][2] >> 1), palette.parts[PANTS][0], palette.parts[PANTS][1], palette.parts[PANTS][2], 0x28, 0x28, 0x28), \ - gdSPDefLights1((palette.parts[GLOVES][0] >> 1), (palette.parts[GLOVES][1] >> 1), (palette.parts[GLOVES][2] >> 1), palette.parts[GLOVES][0], palette.parts[GLOVES][1], palette.parts[GLOVES][2], 0x28, 0x28, 0x28), \ - }} - struct PlayerColor gNetworkPlayerColors[MAX_PLAYERS]; // This whole file is weirdly organized. It has to be the same file due @@ -745,6 +736,38 @@ Gfx* geo_mirror_mario_backface_culling(s32 callContext, struct GraphNode* node, return gfx; } +static struct PlayerColor geo_mario_get_player_color(const struct PlayerPalette *palette) { + struct PlayerColor color = { 0 }; + for (s32 part = 0; part != PLAYER_PART_MAX; ++part) { + color.parts[part] = (Lights1) gdSPDefLights1( + palette->parts[part][0] / 2, + palette->parts[part][1] / 2, + palette->parts[part][2] / 2, + palette->parts[part][0], + palette->parts[part][1], + palette->parts[part][2], + 0x28, 0x28, 0x28 + ); + } + return color; +} + +static Gfx *geo_mario_create_player_colors_dl(s32 index, Gfx *capEnemyGfx, Gfx *capEnemyDecalGfx) { + s32 size = ((PLAYER_PART_MAX * 2) + 1) + (capEnemyGfx != NULL) + (capEnemyDecalGfx != NULL); + Gfx *gfx = alloc_display_list(size * sizeof(Gfx)); + if (gfx) { + Gfx *gfxp = gfx; + for (s32 part = 0; part != PLAYER_PART_MAX; ++part) { + gSPLight(gfxp++, &gNetworkPlayerColors[index].parts[part].l, (2 * (part + 1)) + 1); + gSPLight(gfxp++, &gNetworkPlayerColors[index].parts[part].a, (2 * (part + 1)) + 2); + } + if (capEnemyGfx) { gSPDisplayList(gfxp++, capEnemyGfx); } + if (capEnemyDecalGfx) { gSPDisplayList(gfxp++, capEnemyDecalGfx); } + gSPEndDisplayList(gfxp); + } + return gfx; +} + /** * Generate DL that sets player color depending on player number. */ @@ -753,25 +776,13 @@ Gfx* geo_mario_set_player_colors(s32 callContext, struct GraphNode* node, UNUSED Gfx* gfx = NULL; u8 index = geo_get_processing_object_index(); - struct PlayerColor color = PALETTE_TO_LIGHTS(gNetworkPlayers[index].overridePalette); - + struct PlayerColor color = geo_mario_get_player_color(&gNetworkPlayers[index].overridePalette); gNetworkPlayerColors[index] = color; struct MarioBodyState* bodyState = &gBodyStates[index]; if (callContext == GEO_CONTEXT_RENDER) { - // extra players get last color - gfx = alloc_display_list(7 * sizeof(*gfx)); - if (gfx == NULL) { return NULL; } - // put the player colors into lights 3, 4, 5, 6, 7, 8 - // they will be later copied to lights 1, 2 with gsSPCopyLightEXT - gSPLight(gfx + 0, &gNetworkPlayerColors[index].parts[PANTS].l, 3); - gSPLight(gfx + 1, &gNetworkPlayerColors[index].parts[PANTS].a, 4); - gSPLight(gfx + 2, &gNetworkPlayerColors[index].parts[SHIRT].l, 5); - gSPLight(gfx + 3, &gNetworkPlayerColors[index].parts[SHIRT].a, 6); - gSPLight(gfx + 4, &gNetworkPlayerColors[index].parts[GLOVES].l, 7); - gSPLight(gfx + 5, &gNetworkPlayerColors[index].parts[GLOVES].a, 8); - gSPEndDisplayList(gfx + 6); + gfx = geo_mario_create_player_colors_dl(index, NULL, NULL); u32 layer = LAYER_OPAQUE; if (asGenerated->parameter == 0) { // put on transparent layer if vanish effect, opaque otherwise @@ -792,33 +803,14 @@ Gfx* geo_mario_cap_display_list(s32 callContext, struct GraphNode* node, UNUSED if (callContext != GEO_CONTEXT_RENDER) { return NULL; } u8 globalIndex = geo_get_processing_object_index(); - struct PlayerColor color = PALETTE_TO_LIGHTS(gNetworkPlayers[globalIndex].overridePalette); - + struct PlayerColor color = geo_mario_get_player_color(&gNetworkPlayers[globalIndex].overridePalette); gNetworkPlayerColors[globalIndex] = color; u8 charIndex = gNetworkPlayers[globalIndex].overrideModelIndex; if (charIndex >= CT_MAX) { charIndex = 0; } struct Character* character = &gCharacters[charIndex]; - u8 dpLength = 7; - if (character->capEnemyGfx != NULL) { dpLength++; } - if (character->capEnemyDecalGfx != NULL) { dpLength++; } - Gfx* gfx = alloc_display_list(dpLength * sizeof(*gfx)); - if (gfx == NULL) { return NULL; } - Gfx* onGfx = gfx; - - // put the player colors into lights 3, 4, 5, 6, 7, 8 - // they will be later copied to lights 1, 2 with gsSPCopyLightEXT - gSPLight(onGfx++, &gNetworkPlayerColors[globalIndex].parts[PANTS].l, 3); - gSPLight(onGfx++, &gNetworkPlayerColors[globalIndex].parts[PANTS].a, 4); - gSPLight(onGfx++, &gNetworkPlayerColors[globalIndex].parts[SHIRT].l, 5); - gSPLight(onGfx++, &gNetworkPlayerColors[globalIndex].parts[SHIRT].a, 6); - gSPLight(onGfx++, &gNetworkPlayerColors[globalIndex].parts[GLOVES].l, 7); - gSPLight(onGfx++, &gNetworkPlayerColors[globalIndex].parts[GLOVES].a, 8); - if (character->capEnemyGfx != NULL) { gSPDisplayList(onGfx++, character->capEnemyGfx); } - if (character->capEnemyDecalGfx != NULL) { gSPDisplayList(onGfx++, character->capEnemyDecalGfx); } - gSPEndDisplayList(onGfx++); - + Gfx *gfx = geo_mario_create_player_colors_dl(globalIndex, character->capEnemyGfx, character->capEnemyDecalGfx); struct GraphNodeGenerated* asGenerated = (struct GraphNodeGenerated*)node; asGenerated->fnNode.node.flags = (asGenerated->fnNode.node.flags & 0xFF) | (character->capEnemyLayer << 8); return gfx; diff --git a/src/pc/configfile.c b/src/pc/configfile.c index eac32120..8fea690b 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 = {{{0xff, 0x00, 0x00}, {0x00, 0x00, 0xff}, {0xff, 0xff, 0xff}}}; +struct PlayerPalette configPlayerPalette = {{{ 0x00, 0x00, 0xff }, { 0xff, 0x00, 0x00 }, { 0xff, 0xff, 0xff }, { 0x72, 0x1c, 0x0e }, { 0x73, 0x06, 0x00 }, { 0xfe, 0xc1, 0x79 }}}; bool configUncappedFramerate = true; unsigned int configFrameLimit = 60; unsigned int configDrawDistance = 5; @@ -226,9 +226,12 @@ static const struct ConfigOption options[] = { {.name = "coop_menu_level", .type = CONFIG_TYPE_UINT , .uintValue = &configMenuLevel}, {.name = "coop_menu_sound", .type = CONFIG_TYPE_BOOL , .boolValue = &configMenuSound}, {.name = "coop_menu_random", .type = CONFIG_TYPE_BOOL , .boolValue = &configMenuRandom}, - {.name = "coop_player_palette_shirt", .type = CONFIG_TYPE_COLOR , .colorValue = &configPlayerPalette.parts[SHIRT]}, {.name = "coop_player_palette_pants", .type = CONFIG_TYPE_COLOR , .colorValue = &configPlayerPalette.parts[PANTS]}, + {.name = "coop_player_palette_shirt", .type = CONFIG_TYPE_COLOR , .colorValue = &configPlayerPalette.parts[SHIRT]}, {.name = "coop_player_palette_gloves", .type = CONFIG_TYPE_COLOR , .colorValue = &configPlayerPalette.parts[GLOVES]}, + {.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_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 b0c17fa1..729b56b0 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] = { "Shirt", "Pants", "Gloves" }; + char* sPartStrings[PLAYER_PART_MAX] = { "Pants", "Shirt", "Gloves", "Shoes", "Hair", "Skin" }; f32 bodyHeight = 32 * 5 + 64 * 1 + 16 * 5; diff --git a/src/pc/gfx/gfx_pc.c b/src/pc/gfx/gfx_pc.c index c0aa0fb2..60a6d1a0 100644 --- a/src/pc/gfx/gfx_pc.c +++ b/src/pc/gfx/gfx_pc.c @@ -49,7 +49,7 @@ #define RATIO_Y (gfx_current_dimensions.height / (2.0f * HALF_SCREEN_HEIGHT)) #define MAX_BUFFERED 256 -#define MAX_LIGHTS 8 +#define MAX_LIGHTS 16 #define MAX_VERTICES 64 # define MAX_CACHED_TEXTURES 4096 // for preloading purposes @@ -1130,7 +1130,7 @@ static void gfx_calc_and_set_viewport(const Vp_t *viewport) { rdp.viewport_or_scissor_changed = true; } -static void gfx_sp_movemem(uint8_t index, uint8_t offset, const void* data) { +static void gfx_sp_movemem(uint8_t index, uint16_t offset, const void* data) { switch (index) { case G_MV_VIEWPORT: gfx_calc_and_set_viewport((const Vp_t *) data); @@ -1167,7 +1167,7 @@ static void gfx_sp_movemem(uint8_t index, uint8_t offset, const void* data) { } #ifdef F3DEX_GBI_2E -static void gfx_sp_copymem(uint8_t idx, uint8_t dstofs, uint8_t srcofs, UNUSED uint8_t words) { +static void gfx_sp_copymem(uint8_t idx, uint16_t dstofs, uint16_t srcofs, UNUSED uint8_t words) { if (idx == G_MV_LIGHT) { const int srcidx = srcofs / 24 - 2; const int dstidx = dstofs / 24 - 2; diff --git a/src/pc/lua/smlua_constants_autogen.c b/src/pc/lua/smlua_constants_autogen.c index b549fbaa..322f4756 100644 --- a/src/pc/lua/smlua_constants_autogen.c +++ b/src/pc/lua/smlua_constants_autogen.c @@ -1038,10 +1038,13 @@ char gSmluaConstants[] = "" "CAM_EVENT_START_END_WAVING = 12\n" "CAM_EVENT_START_CREDITS = 13\n" "PALETTE_PRESET_MAX = 32\n" -"SHIRT = 0\n" -"PANTS = 1\n" +"PANTS = 0\n" +"SHIRT = 1\n" "GLOVES = 2\n" -"PLAYER_PART_MAX = 3\n" +"SHOES = 3\n" +"HAIR = 4\n" +"SKIN = 5\n" +"PLAYER_PART_MAX = 6\n" "CT_MARIO = 0\n" "CT_LUIGI = 1\n" "CT_TOAD = 2\n"