Merge pull request #4 from FluffaMario/main
Update Luigi + Cap, Further Fixes to Mario + Cap
|
@ -7,25 +7,7 @@
|
|||
#include "actors/error_model/geo_header.h"
|
||||
|
||||
// luigi_cap
|
||||
extern const GeoLayout luigis_cap_geo[];
|
||||
extern const GeoLayout luigis_metal_cap_geo[];
|
||||
extern const GeoLayout luigis_wing_cap_geo[];
|
||||
extern const GeoLayout luigis_winged_metal_cap_geo[];
|
||||
extern const Gfx luigi_cap_seg3_dl_03022B30[];
|
||||
extern const Gfx luigi_cap_seg3_dl_03022B68[];
|
||||
extern const Gfx luigi_cap_seg3_dl_03022CC8[];
|
||||
extern const Gfx luigi_cap_seg3_dl_03022D10[];
|
||||
extern const Gfx luigi_cap_seg3_dl_03022E78[];
|
||||
extern const Gfx luigi_cap_seg3_dl_03022EA8[];
|
||||
extern const Gfx luigi_cap_seg3_dl_03022ED8[];
|
||||
extern const Gfx luigi_cap_seg3_dl_03022F20[];
|
||||
extern const Gfx luigi_cap_l_logo_decal_dl[];
|
||||
extern const Gfx luigi_cap_seg3_dl_03022F48[];
|
||||
extern const Gfx luigi_cap_seg3_dl_03022FF8[];
|
||||
extern const Gfx luigi_cap_seg3_dl_030230B0[];
|
||||
extern const Gfx luigi_cap_seg3_dl_03023108[];
|
||||
extern const Gfx luigi_cap_seg3_dl_03023160[];
|
||||
extern const Gfx luigi_cap_seg3_dl_03023298[];
|
||||
#include "actors/luigi_cap/geo_header.h"
|
||||
|
||||
// toad_cap
|
||||
#include "actors/toad_cap/geo_header.h"
|
||||
|
|
BIN
actors/luigi/custom_luigi_cap.rgba16.png
Normal file
After Width: | Height: | Size: 276 B |
Before Width: | Height: | Size: 462 B |
BIN
actors/luigi/custom_luigi_logo.rgba16.png
Normal file
After Width: | Height: | Size: 276 B |
BIN
actors/luigi/custom_luigi_logo_blend.rgba16.png
Normal file
After Width: | Height: | Size: 372 B |
Before Width: | Height: | Size: 630 B |
BIN
actors/luigi/custom_luigi_sideburn.rgba32.png
Normal file
After Width: | Height: | Size: 603 B |
BIN
actors/luigi/custom_luigi_sideburn_add.rgba32.png
Normal file
After Width: | Height: | Size: 352 B |
BIN
actors/luigi/custom_luigi_skin.rgba16.png
Normal file
After Width: | Height: | Size: 292 B |
|
@ -8,10 +8,8 @@ const GeoLayout luigi_geo_face_and_wings[] = {
|
|||
GEO_OPEN_NODE(),
|
||||
GEO_NODE_START(),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ASM(2, geo_mirror_mario_backface_culling),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_hair_sideburn_decal_cap_on_dl),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_l_logo_decal_dl),
|
||||
GEO_ASM(3, geo_mirror_mario_backface_culling),
|
||||
GEO_DISPLAY_LIST(LAYER_ALPHA, luigi_l_logo_decal),
|
||||
GEO_DISPLAY_LIST(LAYER_ALPHA, luigi_hair_sideburn_decal_cap_on),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_SWITCH_CASE(0, geo_switch_mario_eyes),
|
||||
GEO_OPEN_NODE(),
|
||||
|
@ -28,9 +26,7 @@ const GeoLayout luigi_geo_face_and_wings[] = {
|
|||
GEO_CLOSE_NODE(),
|
||||
GEO_NODE_START(),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ASM(2, geo_mirror_mario_backface_culling),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_hair_sideburn_decal_cap_off_dl),
|
||||
GEO_ASM(3, geo_mirror_mario_backface_culling),
|
||||
GEO_DISPLAY_LIST(LAYER_ALPHA, luigi_hair_sideburn_decal_cap_off),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_SWITCH_CASE(0, geo_switch_mario_eyes),
|
||||
GEO_OPEN_NODE(),
|
||||
|
@ -102,17 +98,13 @@ const GeoLayout luigi_geo_right_hand[] = {
|
|||
GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, luigi_right_hand_peace), // here we go hand
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, luigi_right_hand_cap),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, luigi_right_hand_cap),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ASM(2, geo_mirror_mario_backface_culling),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_right_hand_cap_decal_dl),
|
||||
GEO_ASM(3, geo_mirror_mario_backface_culling),
|
||||
GEO_DISPLAY_LIST(LAYER_ALPHA, luigi_right_hand_cap_decal),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, luigi_right_hand_cap),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 65, 0, 0, luigi_right_hand_cap),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ASM(2, geo_mirror_mario_backface_culling),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_right_hand_cap_decal_dl),
|
||||
GEO_ASM(3, geo_mirror_mario_backface_culling),
|
||||
GEO_DISPLAY_LIST(LAYER_ALPHA, luigi_right_hand_cap_decal),
|
||||
GEO_DISPLAY_LIST(LAYER_ALPHA, luigi_right_hand_cap_wings),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
|
@ -200,8 +192,8 @@ const GeoLayout luigi_vanish_geo_face_and_wings[] = {
|
|||
GEO_OPEN_NODE(),
|
||||
GEO_NODE_START(),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_hair_sideburn_decal_cap_on_dl),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_l_logo_decal_dl),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_l_logo_decal),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_hair_sideburn_decal_cap_on),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_SWITCH_CASE(0, geo_switch_mario_eyes),
|
||||
GEO_OPEN_NODE(),
|
||||
|
@ -218,7 +210,7 @@ const GeoLayout luigi_vanish_geo_face_and_wings[] = {
|
|||
GEO_CLOSE_NODE(),
|
||||
GEO_NODE_START(),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_hair_sideburn_decal_cap_off_dl),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_hair_sideburn_decal_cap_off),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_SWITCH_CASE(0, geo_switch_mario_eyes),
|
||||
GEO_OPEN_NODE(),
|
||||
|
@ -290,13 +282,13 @@ const GeoLayout luigi_vanish_geo_right_hand[] = {
|
|||
GEO_HELD_OBJECT(0x00, 0, 0, 0, geo_switch_mario_hand_grab_pos),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, luigi_right_hand_peace), // here we go hand
|
||||
GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, luigi_right_hand_cap),
|
||||
GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, luigi_right_hand_cap),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_right_hand_cap_decal_dl),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_right_hand_cap_decal),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, luigi_right_hand_cap),
|
||||
GEO_ANIMATED_PART(LAYER_TRANSPARENT, 65, 0, 0, luigi_right_hand_cap),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_right_hand_cap_decal_dl),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_right_hand_cap_decal),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_right_hand_cap_wings_transparent),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
|
@ -684,19 +676,30 @@ const GeoLayout luigi_geo_load_body[] = {
|
|||
// This last geo is used to load all of Mario Geo in the Level Scripts
|
||||
|
||||
const GeoLayout luigi_geo[] = {
|
||||
GEO_SHADOW(SHADOW_CIRCLE_PLAYER, 0xB4, 100),
|
||||
GEO_NODE_START(),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_SCALE(0x00, 16384),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ASM(0, geo_mario_set_player_colors),
|
||||
GEO_ASM(LAYER_TRANSPARENT + 3, geo_mario_set_player_colors),
|
||||
GEO_ASM(0, geo_mirror_mario_backface_culling),
|
||||
GEO_ASM(0, geo_mirror_mario_set_alpha),
|
||||
GEO_SHADOW(SHADOW_CIRCLE_PLAYER, 0xB4, 100),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_BRANCH(1, luigi_geo_load_body),
|
||||
GEO_SCALE(0x00, 16384),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ASM(LAYER_OPAQUE + 3, geo_mario_set_player_colors),
|
||||
GEO_ASM(LAYER_ALPHA + 3, geo_mario_set_player_colors),
|
||||
GEO_ASM(LAYER_TRANSPARENT + 3, geo_mario_set_player_colors),
|
||||
GEO_ASM(LAYER_OPAQUE << 2, geo_mirror_mario_backface_culling),
|
||||
GEO_ASM(LAYER_ALPHA << 2, geo_mirror_mario_backface_culling),
|
||||
GEO_ASM(LAYER_TRANSPARENT << 2, geo_mirror_mario_backface_culling),
|
||||
GEO_ASM(0, geo_mirror_mario_set_alpha),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_BRANCH(1, luigi_geo_load_body),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_ASM((LAYER_OPAQUE << 2) | 1, geo_mirror_mario_backface_culling),
|
||||
GEO_ASM((LAYER_ALPHA << 2) | 1, geo_mirror_mario_backface_culling),
|
||||
GEO_ASM((LAYER_TRANSPARENT << 2) | 1, geo_mirror_mario_backface_culling),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_ASM(1, geo_mirror_mario_backface_culling),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_material_revert_render_settings),
|
||||
GEO_DISPLAY_LIST(LAYER_ALPHA, luigi_material_revert_render_settings),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_material_revert_render_settings),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_END(),
|
||||
};
|
||||
|
|
|
@ -55,8 +55,8 @@ extern const Gfx luigi_mustache_cap_on_dl[];
|
|||
extern const Gfx luigi_face_part_cap_on_dl[];
|
||||
extern const Gfx luigi_face_cap_dl[];
|
||||
extern const Gfx luigi_face_back_hair_cap_on_dl[];
|
||||
extern const Gfx luigi_hair_sideburn_decal_cap_on_dl[];
|
||||
extern const Gfx luigi_l_logo_decal_dl[];
|
||||
extern const Gfx luigi_hair_sideburn_decal_cap_on[];
|
||||
extern const Gfx luigi_l_logo_decal[];
|
||||
extern const Gfx luigi_face_cap_on_dl[];
|
||||
extern const Gfx luigi_cap_on_eyes_front[];
|
||||
extern const Gfx luigi_cap_on_eyes_half_closed[];
|
||||
|
@ -72,7 +72,7 @@ extern const Gfx luigi_mustache_cap_off_dl[];
|
|||
extern const Gfx luigi_hair_sideburn_cap_off_dl[];
|
||||
extern const Gfx luigi_face_part_cap_off_dl[];
|
||||
extern const Gfx luigi_face_hair_cap_off_dl[];
|
||||
extern const Gfx luigi_hair_sideburn_decal_cap_off_dl[];
|
||||
extern const Gfx luigi_hair_sideburn_decal_cap_off[];
|
||||
extern const Gfx luigi_face_cap_off_dl[];
|
||||
extern const Gfx luigi_cap_off_eyes_front[];
|
||||
extern const Gfx luigi_cap_off_eyes_half_closed[];
|
||||
|
@ -92,7 +92,7 @@ extern const Gfx luigi_right_hand_cap_l_logo_dl[];
|
|||
extern const Gfx luigi_right_hand_cap_top_dl[];
|
||||
extern const Gfx luigi_right_hand_cap_hand_position_dl[];
|
||||
extern const Gfx luigi_right_hand_cap_bottom_dl[];
|
||||
extern const Gfx luigi_right_hand_cap_decal_dl[];
|
||||
extern const Gfx luigi_right_hand_cap_decal[];
|
||||
extern const Gfx luigi_right_hand_cap_dl[];
|
||||
extern const Gfx luigi_right_hand_cap_wings_half_1_dl[];
|
||||
extern const Gfx luigi_right_hand_cap_wings_half_2_dl[];
|
||||
|
@ -113,3 +113,4 @@ extern const Gfx luigi_cap_wings[];
|
|||
extern const Gfx luigi_cap_wings_transparent[];
|
||||
extern const Gfx luigi_metal_cap_wings[];
|
||||
extern const Gfx luigi_metal_cap_wings_transparent[];
|
||||
extern const Gfx luigi_material_revert_render_settings[];
|
7
actors/luigi/luigi_externs.h
Normal file
|
@ -0,0 +1,7 @@
|
|||
extern ALIGNED8 const Texture luigi_texture_l_logo[];
|
||||
extern ALIGNED8 const Texture luigi_texture_l_blend[];
|
||||
extern ALIGNED8 const Texture luigi_texture_l_cap[];
|
||||
extern ALIGNED8 const Texture luigi_texture_hair_sideburn[];
|
||||
extern ALIGNED8 const Texture luigi_texture_add_sideburn[];
|
||||
extern ALIGNED8 const Texture luigi_texture_skin_sideburn[];
|
||||
extern ALIGNED8 const Texture luigi_texture_mustache[];
|
|
@ -28,8 +28,14 @@ static const Lights1 luigi_brown2_lights_group = gdSPDefLights1(
|
|||
0x73, 0x06, 0x00, 0x28, 0x28, 0x28
|
||||
);
|
||||
|
||||
static const Lights1 luigi_black_lights_group = gdSPDefLights1(
|
||||
0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x28, 0x28, 0x28
|
||||
);
|
||||
|
||||
#include "actors/mario/mario_externs.h"
|
||||
#define luigi_texture_metal mario_texture_metal
|
||||
#define luigi_texture_metal_shade mario_texture_metal_shade
|
||||
#define luigi_texture_metal_light mario_texture_metal_light
|
||||
#define luigi_texture_yellow_button mario_texture_yellow_button
|
||||
#define luigi_texture_eyes_front mario_texture_eyes_front
|
||||
#define luigi_texture_eyes_half_closed mario_texture_eyes_half_closed
|
||||
|
@ -46,11 +52,27 @@ static const Lights1 luigi_brown2_lights_group = gdSPDefLights1(
|
|||
#define luigi_texture_cap_inside mario_texture_cap_inside
|
||||
|
||||
ALIGNED8 const Texture luigi_texture_l_logo[] = {
|
||||
#include "actors/luigi/custom_luigi_logo.ia16.inc.c"
|
||||
#include "actors/luigi/custom_luigi_logo.rgba16.inc.c"
|
||||
};
|
||||
|
||||
ALIGNED8 const Texture luigi_texture_l_blend[] = {
|
||||
#include "actors/luigi/custom_luigi_logo_blend.rgba16.inc.c"
|
||||
};
|
||||
|
||||
ALIGNED8 const Texture luigi_texture_l_cap[] = {
|
||||
#include "actors/luigi/custom_luigi_cap.rgba16.inc.c"
|
||||
};
|
||||
|
||||
ALIGNED8 const Texture luigi_texture_hair_sideburn[] = {
|
||||
#include "actors/luigi/custom_luigi_sideburn.rgba16.inc.c"
|
||||
#include "actors/luigi/custom_luigi_sideburn.rgba32.inc.c"
|
||||
};
|
||||
|
||||
ALIGNED8 const Texture luigi_texture_add_sideburn[] = {
|
||||
#include "actors/luigi/custom_luigi_sideburn_add.rgba32.inc.c"
|
||||
};
|
||||
|
||||
ALIGNED8 const Texture luigi_texture_skin_sideburn[] = {
|
||||
#include "actors/luigi/custom_luigi_skin.rgba16.inc.c"
|
||||
};
|
||||
|
||||
ALIGNED8 const Texture luigi_texture_mustache[] = {
|
||||
|
@ -226,12 +248,22 @@ const Gfx luigi_butt[] = {
|
|||
};
|
||||
|
||||
const Gfx luigi_metal_butt[] = {
|
||||
gsDPPipeSync(),
|
||||
gsSPSetGeometryMode(G_TEXTURE_GEN),
|
||||
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT),
|
||||
gsDPLoadTextureBlock(luigi_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsSPCopyLightsPlayerPart(METAL),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineLERP(TEXEL0, 0, SHADE, TEXEL1, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, TEXEL1, 0, 0, 0, ENVIRONMENT),
|
||||
gsSPSetGeometryMode(G_TEXTURE_GEN),
|
||||
gsSPTexture(4032, 1984, 0, 0, 1),
|
||||
gsSPLight(&luigi_black_lights_group.l, 1),
|
||||
gsSPCopyLightEXT(2, 15),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_metal_shade),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
|
||||
gsDPLoadBlock(7, 0, 0, 2047, 128),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0),
|
||||
gsDPSetTileSize(0, 0, 0, 252, 124),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_metal_light),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 512, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
|
||||
gsDPLoadBlock(6, 0, 0, 2047, 128),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0),
|
||||
gsDPSetTileSize(1, 0, 0, 252, 124),
|
||||
gsSPDisplayList(luigi_butt_dl),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
@ -311,6 +343,8 @@ const Gfx luigi_left_arm_shared_dl[] = {
|
|||
};
|
||||
|
||||
const Gfx luigi_left_arm[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
|
||||
gsSPCopyLightsPlayerPart(SHIRT), // gsSPLight(&luigi_green_lights_group.a, 2),
|
||||
gsSPDisplayList(luigi_left_arm_shared_dl),
|
||||
gsSPEndDisplayList(),
|
||||
|
@ -469,6 +503,8 @@ const Gfx luigi_left_hand_closed_shared_dl[] = {
|
|||
};
|
||||
|
||||
const Gfx luigi_left_hand_closed[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
|
||||
gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c
|
||||
gsSPDisplayList(luigi_left_hand_closed_shared_dl),
|
||||
gsSPEndDisplayList(),
|
||||
|
@ -550,6 +586,8 @@ const Gfx luigi_right_arm_shared_dl[] = {
|
|||
};
|
||||
|
||||
const Gfx luigi_right_arm[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
|
||||
gsSPCopyLightsPlayerPart(SHIRT), // gsSPLight(&luigi_green_lights_group.a, 2),
|
||||
gsSPDisplayList(luigi_right_arm_shared_dl),
|
||||
gsSPEndDisplayList(),
|
||||
|
@ -705,6 +743,8 @@ const Gfx luigi_right_hand_closed_dl[] = {
|
|||
};
|
||||
|
||||
const Gfx luigi_right_hand_closed[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
|
||||
gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c
|
||||
gsSPDisplayList(luigi_right_hand_closed_dl),
|
||||
gsSPEndDisplayList(),
|
||||
|
@ -789,12 +829,22 @@ const Gfx luigi_left_thigh[] = {
|
|||
};
|
||||
|
||||
const Gfx luigi_metal_left_thigh[] = {
|
||||
gsDPPipeSync(),
|
||||
gsSPSetGeometryMode(G_TEXTURE_GEN),
|
||||
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT),
|
||||
gsDPLoadTextureBlock(luigi_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsSPCopyLightsPlayerPart(METAL),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineLERP(TEXEL0, 0, SHADE, TEXEL1, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, TEXEL1, 0, 0, 0, ENVIRONMENT),
|
||||
gsSPSetGeometryMode(G_TEXTURE_GEN),
|
||||
gsSPTexture(4032, 1984, 0, 0, 1),
|
||||
gsSPLight(&luigi_black_lights_group.l, 1),
|
||||
gsSPCopyLightEXT(2, 15),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_metal_shade),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
|
||||
gsDPLoadBlock(7, 0, 0, 2047, 128),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0),
|
||||
gsDPSetTileSize(0, 0, 0, 252, 124),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_metal_light),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 512, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
|
||||
gsDPLoadBlock(6, 0, 0, 2047, 128),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0),
|
||||
gsDPSetTileSize(1, 0, 0, 252, 124),
|
||||
gsSPDisplayList(luigi_left_thigh_dl),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
@ -903,6 +953,8 @@ const Gfx luigi_left_foot_shared_dl[] = {
|
|||
};
|
||||
|
||||
const Gfx luigi_left_foot[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
|
||||
gsSPCopyLightsPlayerPart(SHOES),
|
||||
gsSPDisplayList(luigi_left_foot_shared_dl),
|
||||
gsSPEndDisplayList(),
|
||||
|
@ -974,6 +1026,8 @@ const Gfx luigi_right_thigh_shared_dl[] = {
|
|||
};
|
||||
|
||||
const Gfx luigi_right_thigh[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
|
||||
gsSPCopyLightsPlayerPart(PANTS), // gsSPLight(&luigi_blue_lights_group.a, 2),
|
||||
gsSPDisplayList(luigi_right_thigh_shared_dl),
|
||||
gsSPEndDisplayList(),
|
||||
|
@ -1094,6 +1148,8 @@ const Gfx luigi_right_foot_dl[] = {
|
|||
};
|
||||
|
||||
const Gfx luigi_right_foot[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
|
||||
gsSPCopyLightsPlayerPart(SHOES),
|
||||
gsSPDisplayList(luigi_right_foot_dl),
|
||||
gsDPPipeSync(),
|
||||
|
@ -1895,7 +1951,26 @@ Gfx luigi_face_back_hair_cap_on_dl[] = {
|
|||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
const Gfx luigi_hair_sideburn_decal_cap_on_dl[] = {
|
||||
const Gfx luigi_hair_sideburn_decal_cap_on[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, COMBINED, 0, 0, 0, COMBINED),
|
||||
gsDPSetCycleType(G_CYC_2CYCLE),
|
||||
gsSPTexture(65535, 65535, 0, 0, 1),
|
||||
gsSPLight(&luigi_black_lights_group.l, 1),
|
||||
gsSPCopyLightEXT(2, 11),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_32b_LOAD_BLOCK, 1, luigi_texture_hair_sideburn),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_32b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
|
||||
gsDPLoadBlock(7, 0, 0, 1023, 128),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_32b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
|
||||
gsDPSetTileSize(0, 0, 0, 124, 124),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_32b_LOAD_BLOCK, 1, luigi_texture_add_sideburn),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_32b_LOAD_BLOCK, 0, 512, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
|
||||
gsDPLoadBlock(6, 0, 0, 1023, 128),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_32b, 8, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
|
||||
gsDPSetTileSize(1, 0, 0, 124, 124),
|
||||
gsSPDisplayList(luigi_hair_sideburn_cap_on_dl),
|
||||
gsDPSetCycleType(G_CYC_1CYCLE),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_MODULATERGBFADEA, G_CC_MODULATERGBFADEA),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
|
||||
|
@ -1903,10 +1978,10 @@ const Gfx luigi_hair_sideburn_decal_cap_on_dl[] = {
|
|||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_hair_sideburn),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_skin_sideburn),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPCopyLightsPlayerPart(HAIR),
|
||||
gsSPCopyLightsPlayerPart(SKIN),
|
||||
gsSPDisplayList(luigi_hair_sideburn_cap_on_dl),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
|
||||
gsDPPipeSync(),
|
||||
|
@ -1914,19 +1989,38 @@ const Gfx luigi_hair_sideburn_decal_cap_on_dl[] = {
|
|||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
const Gfx luigi_l_logo_decal_dl[] = {
|
||||
const Gfx luigi_l_logo_decal[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineLERP(TEXEL0, SHADE, TEXEL1, SHADE, TEXEL0, 0, ENVIRONMENT, 0, COMBINED, TEXEL0, PRIMITIVE, COMBINED, 0, 0, 0, COMBINED),
|
||||
gsDPSetCycleType(G_CYC_2CYCLE),
|
||||
gsSPTexture(65535, 65535, 0, 0, 1),
|
||||
gsDPSetPrimColor(0, 0, 127, 127, 127, 255),
|
||||
gsSPLight(&luigi_black_lights_group.l, 1),
|
||||
gsSPCopyLightEXT(2, 15),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_l_logo),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
|
||||
gsDPLoadBlock(7, 0, 0, 1023, 256),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
|
||||
gsDPSetTileSize(0, 0, 0, 124, 124),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_l_blend),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 256, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
|
||||
gsDPLoadBlock(6, 0, 0, 1023, 256),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 256, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
|
||||
gsDPSetTileSize(1, 0, 0, 124, 124),
|
||||
gsSPDisplayList(luigi_l_logo_dl),
|
||||
gsDPSetCycleType(G_CYC_1CYCLE),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_MODULATERGBFADEA, G_CC_MODULATERGBFADEA),
|
||||
gsDPSetTile(G_IM_FMT_IA, 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),
|
||||
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_IA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
|
||||
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_IA, G_IM_SIZ_16b, 1, luigi_texture_l_logo),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_l_cap),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPLight(&luigi_white_lights_group.l, 1),
|
||||
gsSPLight(&luigi_white_lights_group.a, 2),
|
||||
gsSPCopyLightsPlayerPart(CAP),
|
||||
gsSPDisplayList(luigi_l_logo_dl),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
|
||||
gsDPPipeSync(),
|
||||
|
@ -1935,10 +2029,8 @@ const Gfx luigi_l_logo_decal_dl[] = {
|
|||
};
|
||||
|
||||
const Gfx luigi_face_cap_on_dl[] = {
|
||||
gsSPDisplayList(luigi_hair_sideburn_cap_on_dl),
|
||||
gsSPDisplayList(luigi_face_part_cap_on_dl),
|
||||
gsSPCopyLightsPlayerPart(CAP),
|
||||
gsSPDisplayList(luigi_l_logo_dl),
|
||||
gsSPDisplayList(luigi_face_cap_dl),
|
||||
gsSPCopyLightsPlayerPart(HAIR),
|
||||
gsSPDisplayList(luigi_face_back_hair_cap_on_dl),
|
||||
|
@ -2628,7 +2720,26 @@ Gfx luigi_face_hair_cap_off_dl[] = {
|
|||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
const Gfx luigi_hair_sideburn_decal_cap_off_dl[] = {
|
||||
const Gfx luigi_hair_sideburn_decal_cap_off[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, COMBINED, 0, 0, 0, COMBINED),
|
||||
gsDPSetCycleType(G_CYC_2CYCLE),
|
||||
gsSPTexture(65535, 65535, 0, 0, 1),
|
||||
gsSPLight(&luigi_black_lights_group.l, 1),
|
||||
gsSPCopyLightEXT(2, 11),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_32b_LOAD_BLOCK, 1, luigi_texture_hair_sideburn),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_32b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
|
||||
gsDPLoadBlock(7, 0, 0, 1023, 128),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_32b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
|
||||
gsDPSetTileSize(0, 0, 0, 124, 124),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_32b_LOAD_BLOCK, 1, luigi_texture_add_sideburn),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_32b_LOAD_BLOCK, 0, 512, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
|
||||
gsDPLoadBlock(6, 0, 0, 1023, 128),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_32b, 8, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
|
||||
gsDPSetTileSize(1, 0, 0, 124, 124),
|
||||
gsSPDisplayList(luigi_hair_sideburn_cap_off_dl),
|
||||
gsDPSetCycleType(G_CYC_1CYCLE),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_MODULATERGBFADEA, G_CC_MODULATERGBFADEA),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
|
||||
|
@ -2636,10 +2747,10 @@ const Gfx luigi_hair_sideburn_decal_cap_off_dl[] = {
|
|||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_hair_sideburn),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_skin_sideburn),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPCopyLightsPlayerPart(HAIR),
|
||||
gsSPCopyLightsPlayerPart(SKIN),
|
||||
gsSPDisplayList(luigi_hair_sideburn_cap_off_dl),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
|
||||
gsDPPipeSync(),
|
||||
|
@ -2648,7 +2759,6 @@ const Gfx luigi_hair_sideburn_decal_cap_off_dl[] = {
|
|||
};
|
||||
|
||||
const Gfx luigi_face_cap_off_dl[] = {
|
||||
gsSPDisplayList(luigi_hair_sideburn_cap_off_dl),
|
||||
gsSPDisplayList(luigi_face_part_cap_off_dl),
|
||||
gsSPCopyLightsPlayerPart(HAIR),
|
||||
gsSPDisplayList(luigi_face_hair_cap_off_dl),
|
||||
|
@ -2995,6 +3105,8 @@ const Gfx luigi_left_hand_open_shared_dl[] = {
|
|||
};
|
||||
|
||||
const Gfx luigi_left_hand_open[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
|
||||
gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c
|
||||
gsSPDisplayList(luigi_left_hand_open_shared_dl),
|
||||
gsSPEndDisplayList(),
|
||||
|
@ -3137,6 +3249,8 @@ const Gfx luigi_right_hand_open_dl[] = {
|
|||
};
|
||||
|
||||
const Gfx luigi_right_hand_open[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
|
||||
gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c
|
||||
gsSPDisplayList(luigi_right_hand_open_dl),
|
||||
gsSPEndDisplayList(),
|
||||
|
@ -3398,19 +3512,38 @@ const Gfx luigi_right_hand_cap_bottom_dl[] = {
|
|||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
const Gfx luigi_right_hand_cap_decal_dl[] = {
|
||||
const Gfx luigi_right_hand_cap_decal[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineLERP(TEXEL0, SHADE, TEXEL1, SHADE, TEXEL0, 0, ENVIRONMENT, 0, COMBINED, TEXEL0, PRIMITIVE, COMBINED, 0, 0, 0, COMBINED),
|
||||
gsDPSetCycleType(G_CYC_2CYCLE),
|
||||
gsSPTexture(65535, 65535, 0, 0, 1),
|
||||
gsDPSetPrimColor(0, 0, 127, 127, 127, 255),
|
||||
gsSPLight(&luigi_black_lights_group.l, 1),
|
||||
gsSPCopyLightEXT(2, 15),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_l_logo),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
|
||||
gsDPLoadBlock(7, 0, 0, 1023, 256),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
|
||||
gsDPSetTileSize(0, 0, 0, 124, 124),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_texture_l_blend),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 256, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
|
||||
gsDPLoadBlock(6, 0, 0, 1023, 256),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 256, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
|
||||
gsDPSetTileSize(1, 0, 0, 124, 124),
|
||||
gsSPDisplayList(luigi_right_hand_cap_l_logo_dl),
|
||||
gsDPSetCycleType(G_CYC_1CYCLE),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_MODULATERGBFADEA, G_CC_MODULATERGBFADEA),
|
||||
gsDPSetTile(G_IM_FMT_IA, 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),
|
||||
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_IA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
|
||||
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_IA, G_IM_SIZ_16b, 1, luigi_texture_l_logo),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_l_cap),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPLight(&luigi_white_lights_group.l, 1),
|
||||
gsSPLight(&luigi_white_lights_group.a, 2),
|
||||
gsSPCopyLightsPlayerPart(CAP),
|
||||
gsSPDisplayList(luigi_right_hand_cap_l_logo_dl),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
|
||||
gsDPPipeSync(),
|
||||
|
@ -3419,6 +3552,7 @@ const Gfx luigi_right_hand_cap_decal_dl[] = {
|
|||
};
|
||||
|
||||
const Gfx luigi_right_hand_cap_dl[] = {
|
||||
gsSPCopyLightsPlayerPart(CAP),
|
||||
gsSPDisplayList(luigi_right_hand_cap_top_dl),
|
||||
gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in luigi_misc.c
|
||||
gsSPDisplayList(luigi_right_hand_cap_hand_position_dl),
|
||||
|
@ -3439,52 +3573,53 @@ const Gfx luigi_right_hand_cap_dl[] = {
|
|||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
static const Vtx luigi_right_hand_cap_wings_half_1_dl_vertex[10] = {
|
||||
{{{368, 146, 7}, 0, {990, 0}, {0xBE, 0x66, 0xDA, 0xFE}}},
|
||||
{{{166, 37, 68}, 0, {0, 2012}, {0xBE, 0x66, 0xDA, 0xFE}}},
|
||||
{{{212, 96, 143}, 0, {990, 2012}, {0xBE, 0x66, 0xDA, 0xFE}}},
|
||||
{{{368, 146, 7}, 0, {990, 0}, {0xBD, 0x65, 0xD9, 0xFE}}},
|
||||
{{{322, 87, -67}, 0, {0, 0}, {0xBD, 0x65, 0xD9, 0xFE}}},
|
||||
{{{166, 37, 68}, 0, {0, 2012}, {0xBD, 0x65, 0xD9, 0xFE}}},
|
||||
{{{178, -177, 128}, 0, {990, 2012}, {0xA7, 0xB3, 0xCF, 0xFE}}},
|
||||
{{{149, -100, 60}, 0, {0, 2012}, {0xA7, 0xB3, 0xCF, 0xFE}}},
|
||||
{{{319, -248, -14}, 0, {990, 0}, {0xA7, 0xB3, 0xCF, 0xFE}}},
|
||||
{{{290, -171, -81}, 0, {0, 0}, {0xA7, 0xB3, 0xCF, 0xFE}}},
|
||||
// 0x0401AF60
|
||||
static const Vtx luigi_right_hand_cap_wings_half_1_dl_vertex[] = {
|
||||
{{{ 368, 146, 7}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 166, 37, 68}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 212, 96, 143}, 0, { 990, 2012}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 368, 146, 7}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 322, 87, -67}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 166, 37, 68}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 178, -177, 128}, 0, { 990, 2012}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 149, -100, 60}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 319, -248, -14}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 290, -171, -81}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
};
|
||||
|
||||
static const Vtx luigi_right_hand_cap_wings_half_2_dl_vertex[8] = {
|
||||
{{{414, 206, 82}, 0, {990, 0}, {0xBD, 0x65, 0xD9, 0xFE}}},
|
||||
{{{212, 96, 143}, 0, {0, 2012}, {0xBD, 0x65, 0xD9, 0xFE}}},
|
||||
{{{258, 156, 218}, 0, {990, 2012}, {0xBD, 0x65, 0xD9, 0xFE}}},
|
||||
{{{368, 146, 7}, 0, {0, 0}, {0xBD, 0x65, 0xD9, 0xFE}}},
|
||||
{{{178, -177, 128}, 0, {0, 2012}, {0xA8, 0xB3, 0xCF, 0xFE}}},
|
||||
{{{319, -248, -14}, 0, {0, 0}, {0xA8, 0xB3, 0xCF, 0xFE}}},
|
||||
{{{349, -325, 53}, 0, {990, 0}, {0xA8, 0xB3, 0xCF, 0xFE}}},
|
||||
{{{207, -253, 195}, 0, {990, 2012}, {0xA8, 0xB3, 0xCF, 0xFE}}},
|
||||
// 0x0401B000
|
||||
static const Vtx luigi_right_hand_cap_wings_half_2_dl_vertex[] = {
|
||||
{{{ 414, 206, 82}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 212, 96, 143}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 258, 156, 218}, 0, { 990, 2012}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 368, 146, 7}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 178, -177, 128}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 319, -248, -14}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 349, -325, 53}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 207, -253, 195}, 0, { 990, 2012}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
};
|
||||
|
||||
// 0x0401B080 - 0x0401B0B0
|
||||
const Gfx luigi_right_hand_cap_wings_half_1_dl[] = {
|
||||
gsSPVertex(luigi_right_hand_cap_wings_half_1_dl_vertex + 0, 10, 0),
|
||||
gsSP1Triangle(0, 1, 2, 0),
|
||||
gsSP1Triangle(3, 4, 5, 0),
|
||||
gsSP1Triangle(6, 7, 8, 0),
|
||||
gsSP1Triangle(7, 9, 8, 0),
|
||||
gsSPEndDisplayList(),
|
||||
gsSPVertex(luigi_right_hand_cap_wings_half_1_dl_vertex, 10, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
|
||||
gsSP2Triangles( 6, 7, 8, 0x0, 7, 9, 8, 0x0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
// 0x0401B0B0 - 0x0401B0E0
|
||||
const Gfx luigi_right_hand_cap_wings_half_2_dl[] = {
|
||||
gsSPVertex(luigi_right_hand_cap_wings_half_2_dl_vertex + 0, 8, 0),
|
||||
gsSP1Triangle(0, 1, 2, 0),
|
||||
gsSP1Triangle(0, 3, 1, 0),
|
||||
gsSP1Triangle(4, 5, 6, 0),
|
||||
gsSP1Triangle(7, 4, 6, 0),
|
||||
gsSPEndDisplayList(),
|
||||
gsSPVertex(luigi_right_hand_cap_wings_half_2_dl_vertex, 8, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0),
|
||||
gsSP2Triangles( 4, 5, 6, 0x0, 7, 4, 6, 0x0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
// 0x0401B0E0 - 0x0401B138
|
||||
const Gfx luigi_right_hand_cap_wings_intial_dl[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
|
||||
gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH),
|
||||
gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsSPLight(&luigi_white_lights_group.l, 1),
|
||||
|
@ -3498,7 +3633,7 @@ const Gfx luigi_right_hand_cap_wings_intial_dl[] = {
|
|||
const Gfx luigi_right_hand_cap_wings_transparent_intial_dl[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_DECALFADEA, G_CC_DECALFADEA),
|
||||
gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH),
|
||||
gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsSPLight(&luigi_white_lights_group.l, 1),
|
||||
|
@ -3509,19 +3644,18 @@ const Gfx luigi_right_hand_cap_wings_transparent_intial_dl[] = {
|
|||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
// 0x0401B138 - 0x0401B158
|
||||
const Gfx luigi_right_hand_cap_wings_end_dl[] = {
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
|
||||
gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH),
|
||||
gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
const Gfx luigi_right_hand_cap[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
|
||||
gsSPCopyLightsPlayerPart(CAP),
|
||||
gsSPDisplayList(luigi_right_hand_cap_l_logo_dl),
|
||||
gsSPDisplayList(luigi_right_hand_cap_dl),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
@ -3797,31 +3931,37 @@ const Gfx luigi_right_hand_peace_shared_dl[] = {
|
|||
};
|
||||
|
||||
const Gfx luigi_right_hand_peace[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
|
||||
gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c
|
||||
gsSPDisplayList(luigi_right_hand_peace_shared_dl),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
// 0x0401C940
|
||||
static const Vtx luigi_wings_half_1_dl_vertex[] = {
|
||||
{{{ -105, 212, 0}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}},
|
||||
{{{ -105, 0, 0}, 0, { 0, 2012}, {0x00, 0x00, 0x7f, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 990, 2012}, {0x00, 0x00, 0x7f, 0xff}}},
|
||||
{{{ 0, 212, 0}, 0, { 990, 0}, {0x00, 0x00, 0x7f, 0xff}}},
|
||||
{{{ -105, 212, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ -105, 0, 0}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 990, 2012}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 0, 212, 0}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
};
|
||||
|
||||
// 0x0401C980
|
||||
static const Vtx luigi_wings_half_2_dl_vertex[] = {
|
||||
{{{ 0, 0, 0}, 0, { 0, 2012}, {0x00, 0x00, 0x7f, 0xff}}},
|
||||
{{{ 106, 212, 0}, 0, { 990, 0}, {0x00, 0x00, 0x7f, 0xff}}},
|
||||
{{{ 0, 212, 0}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}},
|
||||
{{{ 106, 0, 0}, 0, { 990, 2012}, {0x00, 0x00, 0x7f, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 106, 212, 0}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 0, 212, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 106, 0, 0}, 0, { 990, 2012}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
};
|
||||
|
||||
// 0x0401C9C0 - 0x0401C9E0
|
||||
const Gfx luigi_wings_half_1_dl[] = {
|
||||
gsSPVertex(luigi_wings_half_1_dl_vertex, 4, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
// 0x0401C9E0 - 0x0401CA00
|
||||
const Gfx luigi_wings_half_2_dl[] = {
|
||||
gsSPVertex(luigi_wings_half_2_dl_vertex, 4, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0),
|
||||
|
@ -3832,7 +3972,7 @@ const Gfx luigi_wings_half_2_dl[] = {
|
|||
const Gfx luigi_cap_wings[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
|
||||
gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH),
|
||||
gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPTileSync(),
|
||||
|
@ -3851,7 +3991,7 @@ const Gfx luigi_cap_wings[] = {
|
|||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
|
||||
gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH),
|
||||
gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
|
@ -3859,7 +3999,7 @@ const Gfx luigi_cap_wings[] = {
|
|||
const Gfx luigi_cap_wings_transparent[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_DECALFADEA, G_CC_DECALFADEA),
|
||||
gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH),
|
||||
gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPTileSync(),
|
||||
|
@ -3878,7 +4018,7 @@ const Gfx luigi_cap_wings_transparent[] = {
|
|||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
|
||||
gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH),
|
||||
gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
|
@ -3886,7 +4026,7 @@ const Gfx luigi_cap_wings_transparent[] = {
|
|||
const Gfx luigi_metal_cap_wings[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
|
||||
gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH),
|
||||
gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPTileSync(),
|
||||
|
@ -3905,22 +4045,22 @@ const Gfx luigi_metal_cap_wings[] = {
|
|||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
|
||||
gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH),
|
||||
gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
// 0x0401CC28 - 0x0401CD20
|
||||
const Gfx luigi_metal_cap_wings_transparent[] = {
|
||||
gsDPPipeSync(),
|
||||
gsSPClearGeometryMode(G_TEXTURE_GEN),
|
||||
gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_OFF),
|
||||
gsDPSetCombineMode(G_CC_DECALFADEA, G_CC_DECALFADEA),
|
||||
gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH),
|
||||
gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC),
|
||||
gsSPLight(&luigi_white_lights_group.l, 1),
|
||||
gsSPLight(&luigi_white_lights_group.a, 2),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_texture_metal_wings_half_1),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
|
||||
|
@ -3931,9 +4071,18 @@ const Gfx luigi_metal_cap_wings_transparent[] = {
|
|||
gsSPDisplayList(luigi_wings_half_2_dl),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
|
||||
gsDPPipeSync(),
|
||||
gsSPSetGeometryMode(G_TEXTURE_GEN | G_CULL_BACK | G_SHADING_SMOOTH),
|
||||
gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE),
|
||||
gsDPLoadTextureBlock(luigi_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
|
||||
gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
const Gfx luigi_material_revert_render_settings[] = {
|
||||
gsDPPipeSync(),
|
||||
gsSPSetGeometryMode(G_LIGHTING),
|
||||
gsSPClearGeometryMode(G_TEXTURE_GEN),
|
||||
gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT),
|
||||
gsSPTexture(65535, 65535, 0, 0, 0),
|
||||
gsDPSetEnvColor(255, 255, 255, 255),
|
||||
gsDPSetAlphaCompare(G_AC_NONE),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
|
Before Width: | Height: | Size: 462 B |
|
@ -1,95 +1,127 @@
|
|||
// 0x16000CA4
|
||||
const GeoLayout luigis_cap_geo[] = {
|
||||
GEO_SHADOW(SHADOW_CIRCLE_9_VERTS, 0xB4, 75),
|
||||
GEO_NODE_START(),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_SCALE(0x00, 16384),
|
||||
GEO_SHADOW(SHADOW_CIRCLE_9_VERTS, 0xB4, 75),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ASM(1, geo_mario_set_player_colors),
|
||||
GEO_ASM(10, geo_update_layer_transparency),
|
||||
GEO_SWITCH_CASE(2, geo_switch_anim_state),
|
||||
GEO_SCALE(0x00, 16384),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_NODE_START(),
|
||||
GEO_ASM(LAYER_OPAQUE + 3, geo_mario_set_player_colors),
|
||||
GEO_ASM(LAYER_ALPHA + 3, geo_mario_set_player_colors),
|
||||
GEO_ASM(LAYER_TRANSPARENT + 3, geo_mario_set_player_colors),
|
||||
GEO_ASM(10, geo_update_layer_transparency),
|
||||
GEO_SWITCH_CASE(2, geo_switch_anim_state),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_l_logo_decal_dl),
|
||||
GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_seg3_dl_03022F48),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_NODE_START(),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_l_logo_decal_dl),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_seg3_dl_03022F48),
|
||||
GEO_NODE_START(),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_DISPLAY_LIST(LAYER_ALPHA, luigi_cap_l_logo_decal),
|
||||
GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_seg3_dl_03022F48),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_NODE_START(),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_l_logo_decal),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_seg3_dl_03022F48),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_material_revert_render_settings),
|
||||
GEO_DISPLAY_LIST(LAYER_ALPHA, luigi_cap_material_revert_render_settings),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_material_revert_render_settings),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_END(),
|
||||
};
|
||||
|
||||
// 0x16000CF0
|
||||
const GeoLayout luigis_metal_cap_geo[] = {
|
||||
GEO_SHADOW(SHADOW_CIRCLE_9_VERTS, 0xB4, 75),
|
||||
GEO_NODE_START(),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_SCALE(0x00, 16384),
|
||||
GEO_SHADOW(SHADOW_CIRCLE_9_VERTS, 0xB4, 75),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ASM(1, geo_mario_set_player_colors),
|
||||
GEO_ASM(10, geo_update_layer_transparency),
|
||||
GEO_SWITCH_CASE(2, geo_switch_anim_state),
|
||||
GEO_SCALE(0x00, 16384),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_seg3_dl_03022FF8),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_seg3_dl_03022FF8),
|
||||
GEO_ASM(LAYER_OPAQUE + 3, geo_mario_set_player_colors),
|
||||
GEO_ASM(LAYER_ALPHA + 3, geo_mario_set_player_colors),
|
||||
GEO_ASM(LAYER_TRANSPARENT + 3, geo_mario_set_player_colors),
|
||||
GEO_ASM(10, geo_update_layer_transparency),
|
||||
GEO_SWITCH_CASE(2, geo_switch_anim_state),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_seg3_dl_03022FF8),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_seg3_dl_03022FF8),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_material_revert_render_settings),
|
||||
GEO_DISPLAY_LIST(LAYER_ALPHA, luigi_cap_material_revert_render_settings),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_material_revert_render_settings),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_END(),
|
||||
};
|
||||
|
||||
// 0x16000D3C
|
||||
const GeoLayout luigis_wing_cap_geo[] = {
|
||||
GEO_SHADOW(SHADOW_CIRCLE_9_VERTS, 0xB4, 75),
|
||||
GEO_NODE_START(),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_SCALE(0x00, 16384),
|
||||
GEO_SHADOW(SHADOW_CIRCLE_9_VERTS, 0xB4, 75),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ASM(1, geo_mario_set_player_colors),
|
||||
GEO_ASM(10, geo_update_layer_transparency),
|
||||
GEO_SWITCH_CASE(2, geo_switch_anim_state),
|
||||
GEO_SCALE(0x00, 16384),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_NODE_START(),
|
||||
GEO_ASM(LAYER_OPAQUE + 3, geo_mario_set_player_colors),
|
||||
GEO_ASM(LAYER_ALPHA + 3, geo_mario_set_player_colors),
|
||||
GEO_ASM(LAYER_TRANSPARENT + 3, geo_mario_set_player_colors),
|
||||
GEO_ASM(10, geo_update_layer_transparency),
|
||||
GEO_SWITCH_CASE(2, geo_switch_anim_state),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_l_logo_decal_dl),
|
||||
GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_seg3_dl_03022F48),
|
||||
GEO_DISPLAY_LIST(LAYER_ALPHA, luigi_cap_seg3_dl_030230B0),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_NODE_START(),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_l_logo_decal_dl),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_seg3_dl_03023160),
|
||||
GEO_NODE_START(),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_DISPLAY_LIST(LAYER_ALPHA, luigi_cap_l_logo_decal),
|
||||
GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_seg3_dl_03022F48),
|
||||
GEO_DISPLAY_LIST(LAYER_ALPHA, luigi_cap_seg3_dl_030230B0),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_NODE_START(),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_l_logo_decal),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_seg3_dl_03023160),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_material_revert_render_settings),
|
||||
GEO_DISPLAY_LIST(LAYER_ALPHA, luigi_cap_material_revert_render_settings),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_material_revert_render_settings),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_END(),
|
||||
};
|
||||
|
||||
// 0x16000DA8
|
||||
const GeoLayout luigis_winged_metal_cap_geo[] = {
|
||||
GEO_SHADOW(SHADOW_CIRCLE_9_VERTS, 0xB4, 75),
|
||||
GEO_NODE_START(),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_SCALE(0x00, 16384),
|
||||
GEO_SHADOW(SHADOW_CIRCLE_9_VERTS, 0xB4, 75),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ASM(1, geo_mario_set_player_colors),
|
||||
GEO_ASM(10, geo_update_layer_transparency),
|
||||
GEO_SWITCH_CASE(2, geo_switch_anim_state),
|
||||
GEO_SCALE(0x00, 16384),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_NODE_START(),
|
||||
GEO_ASM(LAYER_OPAQUE + 3, geo_mario_set_player_colors),
|
||||
GEO_ASM(LAYER_ALPHA + 3, geo_mario_set_player_colors),
|
||||
GEO_ASM(LAYER_TRANSPARENT + 3, geo_mario_set_player_colors),
|
||||
GEO_ASM(10, geo_update_layer_transparency),
|
||||
GEO_SWITCH_CASE(2, geo_switch_anim_state),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_seg3_dl_03022FF8),
|
||||
GEO_DISPLAY_LIST(LAYER_ALPHA, luigi_cap_seg3_dl_03023108),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_NODE_START(),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_seg3_dl_03023298),
|
||||
GEO_NODE_START(),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_seg3_dl_03022FF8),
|
||||
GEO_DISPLAY_LIST(LAYER_ALPHA, luigi_cap_seg3_dl_03023108),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_NODE_START(),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_seg3_dl_03023298),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_DISPLAY_LIST(LAYER_OPAQUE, luigi_cap_material_revert_render_settings),
|
||||
GEO_DISPLAY_LIST(LAYER_ALPHA, luigi_cap_material_revert_render_settings),
|
||||
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, luigi_cap_material_revert_render_settings),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_END(),
|
||||
};
|
||||
|
|
20
actors/luigi_cap/geo_header.h
Normal file
|
@ -0,0 +1,20 @@
|
|||
extern const GeoLayout luigis_cap_geo[];
|
||||
extern const GeoLayout luigis_metal_cap_geo[];
|
||||
extern const GeoLayout luigis_wing_cap_geo[];
|
||||
extern const GeoLayout luigis_winged_metal_cap_geo[];
|
||||
extern const Gfx luigi_cap_seg3_dl_03022B30[];
|
||||
extern const Gfx luigi_cap_seg3_dl_03022B68[];
|
||||
extern const Gfx luigi_cap_seg3_dl_03022CC8[];
|
||||
extern const Gfx luigi_cap_seg3_dl_03022D10[];
|
||||
extern const Gfx luigi_cap_seg3_dl_03022E78[];
|
||||
extern const Gfx luigi_cap_seg3_dl_03022EA8[];
|
||||
extern const Gfx luigi_cap_seg3_dl_03022ED8[];
|
||||
extern const Gfx luigi_cap_seg3_dl_03022F20[];
|
||||
extern const Gfx luigi_cap_l_logo_decal[];
|
||||
extern const Gfx luigi_cap_seg3_dl_03022F48[];
|
||||
extern const Gfx luigi_cap_seg3_dl_03022FF8[];
|
||||
extern const Gfx luigi_cap_seg3_dl_030230B0[];
|
||||
extern const Gfx luigi_cap_seg3_dl_03023108[];
|
||||
extern const Gfx luigi_cap_seg3_dl_03023160[];
|
||||
extern const Gfx luigi_cap_seg3_dl_03023298[];
|
||||
extern const Gfx luigi_cap_material_revert_render_settings[];
|
|
@ -1,9 +1,9 @@
|
|||
// Luigi Cap (Normal Cap, Metal, Winged, etc)
|
||||
// Mario Cap (Normal Cap, Metal, Winged, etc)
|
||||
|
||||
// 0x0301CF08
|
||||
static const Lights1 luigi_cap_seg3_lights_0301CF08 = gdSPDefLights1(
|
||||
0x39, 0x03, 0x00,
|
||||
0x73, 0x06, 0x00, 0x28, 0x28, 0x28
|
||||
0x00, 0x39, 0x00,
|
||||
0x00, 0x73, 0x00, 0x28, 0x28, 0x28
|
||||
);
|
||||
|
||||
// 0x0301CF20
|
||||
|
@ -18,19 +18,23 @@ static const Lights1 luigi_cap_seg3_lights_0301CF38 = gdSPDefLights1(
|
|||
0x00, 0xff, 0x00, 0x28, 0x28, 0x28
|
||||
);
|
||||
|
||||
#include "actors/mario/mario_externs.h"
|
||||
#include "actors/mario_cap/mario_cap_externs.h"
|
||||
#define luigi_cap_seg3_texture_0301CF50 mario_cap_seg3_texture_0301CF50
|
||||
#define luigi_cap_seg3_texture_0301E750 mario_cap_seg3_texture_0301E750
|
||||
#define luigi_cap_seg3_texture_0301F750 mario_cap_seg3_texture_0301F750
|
||||
#define luigi_cap_seg3_texture_03020750 mario_cap_seg3_texture_03020750
|
||||
#define luigi_cap_seg3_texture_03021750 mario_cap_seg3_texture_03021750
|
||||
#define luigi_cap_texture_cap_inside mario_texture_cap_inside
|
||||
static const Lights1 luigi_cap_black_lights_group = gdSPDefLights1(
|
||||
0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x28, 0x28, 0x28
|
||||
);
|
||||
|
||||
// 0x0301DF50
|
||||
ALIGNED8 const Texture luigi_cap_seg3_texture_0301DF50[] = {
|
||||
#include "actors/luigi_cap/custom_luigi_cap_logo.ia16.inc.c"
|
||||
};
|
||||
#include "actors/mario/mario_externs.h"
|
||||
#include "actors/luigi/luigi_externs.h"
|
||||
#define luigi_cap_texture_metal_shade mario_texture_metal_shade
|
||||
#define luigi_cap_texture_metal_light mario_texture_metal_light
|
||||
#define luigi_cap_texture_l_logo luigi_texture_l_logo
|
||||
#define luigi_cap_texture_l_blend luigi_texture_l_blend
|
||||
#define luigi_cap_texture_l_cap luigi_texture_l_cap
|
||||
#define luigi_cap_texture_wings_half_1 mario_texture_wings_half_1
|
||||
#define luigi_cap_texture_wings_half_2 mario_texture_wings_half_2
|
||||
#define luigi_cap_texture_metal_wings_half_1 mario_texture_metal_wings_half_1
|
||||
#define luigi_cap_texture_metal_wings_half_2 mario_texture_metal_wings_half_2
|
||||
#define luigi_cap_texture_cap_inside mario_texture_cap_inside
|
||||
|
||||
// 0x03022750
|
||||
static const Vtx luigi_cap_seg3_vertex_03022750[] = {
|
||||
|
@ -183,30 +187,30 @@ const Gfx luigi_cap_seg3_dl_03022D10[] = {
|
|||
|
||||
// 0x03022D38
|
||||
static const Vtx luigi_cap_seg3_vertex_03022D38[] = {
|
||||
{{{ 199, 247, -55}, 0, { 990, 0}, {0x59, 0xed, 0x58, 0xff}}},
|
||||
{{{ 131, 274, 20}, 0, { 0, 0}, {0x59, 0xed, 0x58, 0xff}}},
|
||||
{{{ 69, 71, 38}, 0, { 0, 2012}, {0x59, 0xed, 0x58, 0xff}}},
|
||||
{{{ 199, 247, -55}, 0, { 990, 0}, {0x58, 0xee, 0x58, 0xff}}},
|
||||
{{{ 69, 71, 38}, 0, { 0, 2012}, {0x58, 0xee, 0x58, 0xff}}},
|
||||
{{{ 138, 44, -37}, 0, { 990, 2012}, {0x58, 0xee, 0x58, 0xff}}},
|
||||
{{{ -137, 44, -37}, 0, { 990, 2012}, {0xa8, 0xee, 0x58, 0xff}}},
|
||||
{{{ -68, 71, 38}, 0, { 0, 2012}, {0xa8, 0xee, 0x58, 0xff}}},
|
||||
{{{ -198, 247, -55}, 0, { 990, 0}, {0xa8, 0xee, 0x58, 0xff}}},
|
||||
{{{ -68, 71, 38}, 0, { 0, 2012}, {0xa7, 0xed, 0x58, 0xff}}},
|
||||
{{{ -130, 274, 20}, 0, { 0, 0}, {0xa7, 0xed, 0x58, 0xff}}},
|
||||
{{{ -198, 247, -55}, 0, { 990, 0}, {0xa7, 0xed, 0x58, 0xff}}},
|
||||
{{{ 199, 247, -55}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 131, 274, 20}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 69, 71, 38}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 199, 247, -55}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 69, 71, 38}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 138, 44, -37}, 0, { 990, 2012}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ -137, 44, -37}, 0, { 990, 2012}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ -68, 71, 38}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ -198, 247, -55}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ -68, 71, 38}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ -130, 274, 20}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ -198, 247, -55}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
};
|
||||
|
||||
// 0x03022DF8
|
||||
static const Vtx luigi_cap_seg3_vertex_03022DF8[] = {
|
||||
{{{ 268, 219, -132}, 0, { 990, 0}, {0x59, 0xed, 0x57, 0xff}}},
|
||||
{{{ 199, 247, -55}, 0, { 0, 0}, {0x59, 0xed, 0x57, 0xff}}},
|
||||
{{{ 138, 44, -37}, 0, { 0, 2012}, {0x59, 0xed, 0x57, 0xff}}},
|
||||
{{{ 207, 16, -114}, 0, { 990, 2012}, {0x59, 0xed, 0x57, 0xff}}},
|
||||
{{{ -206, 16, -114}, 0, { 990, 2012}, {0xa7, 0xed, 0x57, 0xff}}},
|
||||
{{{ -137, 44, -37}, 0, { 0, 2012}, {0xa7, 0xed, 0x57, 0xff}}},
|
||||
{{{ -267, 219, -132}, 0, { 990, 0}, {0xa7, 0xed, 0x57, 0xff}}},
|
||||
{{{ -198, 247, -55}, 0, { 0, 0}, {0xa7, 0xed, 0x57, 0xff}}},
|
||||
{{{ 268, 219, -132}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 199, 247, -55}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 138, 44, -37}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ 207, 16, -114}, 0, { 990, 2012}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ -206, 16, -114}, 0, { 990, 2012}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ -137, 44, -37}, 0, { 0, 2012}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ -267, 219, -132}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{ -198, 247, -55}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
};
|
||||
|
||||
// 0x03022E78 - 0x03022EA8
|
||||
|
@ -247,19 +251,38 @@ const Gfx luigi_cap_seg3_dl_03022F20[] = {
|
|||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
const Gfx luigi_cap_l_logo_decal_dl[] = {
|
||||
const Gfx luigi_cap_l_logo_decal[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineLERP(TEXEL0, SHADE, TEXEL1, SHADE, TEXEL0, 0, ENVIRONMENT, 0, COMBINED, TEXEL0, PRIMITIVE, COMBINED, 0, 0, 0, COMBINED),
|
||||
gsDPSetCycleType(G_CYC_2CYCLE),
|
||||
gsSPTexture(65535, 65535, 0, 0, 1),
|
||||
gsDPSetPrimColor(0, 0, 127, 127, 127, 255),
|
||||
gsSPLight(&luigi_cap_black_lights_group.l, 1),
|
||||
gsSPCopyLightEXT(2, 15),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_cap_texture_l_logo),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
|
||||
gsDPLoadBlock(7, 0, 0, 1023, 256),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
|
||||
gsDPSetTileSize(0, 0, 0, 124, 124),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_cap_texture_l_blend),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 256, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
|
||||
gsDPLoadBlock(6, 0, 0, 1023, 256),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 256, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
|
||||
gsDPSetTileSize(1, 0, 0, 124, 124),
|
||||
gsSPDisplayList(luigi_cap_seg3_dl_03022B30),
|
||||
gsDPSetCycleType(G_CYC_1CYCLE),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_MODULATERGBFADEA, G_CC_MODULATERGBFADEA),
|
||||
gsDPSetTile(G_IM_FMT_IA, 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),
|
||||
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_IA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
|
||||
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_IA, G_IM_SIZ_16b, 1, luigi_cap_seg3_texture_0301DF50),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_cap_texture_l_cap),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPLight(&luigi_cap_seg3_lights_0301CF20.l, 1),
|
||||
gsSPLight(&luigi_cap_seg3_lights_0301CF20.a, 2),
|
||||
gsSPCopyLightsPlayerPart(CAP),
|
||||
gsSPDisplayList(luigi_cap_seg3_dl_03022B30),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
|
||||
gsDPPipeSync(),
|
||||
|
@ -271,8 +294,7 @@ const Gfx luigi_cap_l_logo_decal_dl[] = {
|
|||
const Gfx luigi_cap_seg3_dl_03022F48[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
|
||||
gsSPCopyLightsPlayerPart(CAP), //gsSPLight(&luigi_cap_seg3_lights_0301CF38.a, 2),
|
||||
gsSPDisplayList(luigi_cap_seg3_dl_03022B30),
|
||||
gsSPCopyLightsPlayerPart(CAP),
|
||||
gsSPDisplayList(luigi_cap_seg3_dl_03022D10),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
|
||||
|
@ -283,12 +305,22 @@ const Gfx luigi_cap_seg3_dl_03022F48[] = {
|
|||
|
||||
// 0x03022FF8 - 0x030230B0
|
||||
const Gfx luigi_cap_seg3_dl_03022FF8[] = {
|
||||
gsDPPipeSync(),
|
||||
gsSPSetGeometryMode(G_TEXTURE_GEN),
|
||||
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT),
|
||||
gsDPLoadTextureBlock(luigi_cap_seg3_texture_0301CF50, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsSPCopyLightsPlayerPart(METAL),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineLERP(TEXEL0, 0, SHADE, TEXEL1, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, TEXEL1, 0, 0, 0, ENVIRONMENT),
|
||||
gsSPSetGeometryMode(G_TEXTURE_GEN),
|
||||
gsSPTexture(4032, 1984, 0, 0, 1),
|
||||
gsSPLight(&luigi_cap_black_lights_group.l, 1),
|
||||
gsSPCopyLightEXT(2, 15),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_cap_texture_metal_shade),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
|
||||
gsDPLoadBlock(7, 0, 0, 2047, 128),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0),
|
||||
gsDPSetTileSize(0, 0, 0, 252, 124),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_cap_texture_metal_light),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 512, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
|
||||
gsDPLoadBlock(6, 0, 0, 2047, 128),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0),
|
||||
gsDPSetTileSize(1, 0, 0, 252, 124),
|
||||
gsSPDisplayList(luigi_cap_seg3_dl_03022B30),
|
||||
gsSPDisplayList(luigi_cap_seg3_dl_03022B68),
|
||||
gsSPDisplayList(luigi_cap_seg3_dl_03022CC8),
|
||||
|
@ -304,11 +336,11 @@ const Gfx luigi_cap_seg3_dl_03022FF8[] = {
|
|||
// 0x030230B0 - 0x03023108
|
||||
const Gfx luigi_cap_seg3_dl_030230B0[] = {
|
||||
gsSPDisplayList(luigi_cap_seg3_dl_03022ED8),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_cap_seg3_texture_0301E750),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_cap_texture_wings_half_1),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPDisplayList(luigi_cap_seg3_dl_03022E78),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_cap_seg3_texture_0301F750),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_cap_texture_wings_half_2),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPDisplayList(luigi_cap_seg3_dl_03022EA8),
|
||||
|
@ -319,11 +351,11 @@ const Gfx luigi_cap_seg3_dl_030230B0[] = {
|
|||
// 0x03023108 - 0x03023160
|
||||
const Gfx luigi_cap_seg3_dl_03023108[] = {
|
||||
gsSPDisplayList(luigi_cap_seg3_dl_03022ED8),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_cap_seg3_texture_03020750),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_cap_texture_metal_wings_half_1),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPDisplayList(luigi_cap_seg3_dl_03022E78),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_cap_seg3_texture_03021750),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_cap_texture_metal_wings_half_2),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPDisplayList(luigi_cap_seg3_dl_03022EA8),
|
||||
|
@ -345,11 +377,11 @@ const Gfx luigi_cap_seg3_dl_03023160[] = {
|
|||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_cap_seg3_texture_0301E750),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_cap_texture_wings_half_1),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPDisplayList(luigi_cap_seg3_dl_03022E78),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_cap_seg3_texture_0301F750),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_cap_texture_wings_half_2),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPDisplayList(luigi_cap_seg3_dl_03022EA8),
|
||||
|
@ -364,18 +396,22 @@ const Gfx luigi_cap_seg3_dl_03023160[] = {
|
|||
|
||||
// 0x03023298 - 0x030233D0
|
||||
const Gfx luigi_cap_seg3_dl_03023298[] = {
|
||||
gsDPPipeSync(),
|
||||
gsSPSetGeometryMode(G_TEXTURE_GEN),
|
||||
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_cap_seg3_texture_0301CF50),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 6, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 6, G_TX_NOLOD),
|
||||
gsDPSetTileSize(0, 0, 0, (64 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
|
||||
gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsSPCopyLightsPlayerPart(METAL), //gsSPLight(&luigi_cap_seg3_lights_0301CF20.a, 2),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineLERP(TEXEL0, 0, SHADE, TEXEL1, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, TEXEL1, 0, 0, 0, ENVIRONMENT),
|
||||
gsSPSetGeometryMode(G_TEXTURE_GEN),
|
||||
gsSPTexture(4032, 1984, 0, 0, 1),
|
||||
gsSPLight(&luigi_cap_black_lights_group.l, 1),
|
||||
gsSPCopyLightEXT(2, 15),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_cap_texture_metal_shade),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
|
||||
gsDPLoadBlock(7, 0, 0, 2047, 128),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0),
|
||||
gsDPSetTileSize(0, 0, 0, 252, 124),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, luigi_cap_texture_metal_light),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 512, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
|
||||
gsDPLoadBlock(6, 0, 0, 2047, 128),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0),
|
||||
gsDPSetTileSize(1, 0, 0, 252, 124),
|
||||
gsSPDisplayList(luigi_cap_seg3_dl_03022B30),
|
||||
gsSPDisplayList(luigi_cap_seg3_dl_03022B68),
|
||||
gsSPDisplayList(luigi_cap_seg3_dl_03022CC8),
|
||||
|
@ -387,11 +423,11 @@ const Gfx luigi_cap_seg3_dl_03023298[] = {
|
|||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_cap_seg3_texture_03020750),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_cap_texture_metal_wings_half_1),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPDisplayList(luigi_cap_seg3_dl_03022E78),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_cap_seg3_texture_03021750),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, luigi_cap_texture_metal_wings_half_2),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPDisplayList(luigi_cap_seg3_dl_03022EA8),
|
||||
|
@ -403,3 +439,14 @@ const Gfx luigi_cap_seg3_dl_03023298[] = {
|
|||
gsDPSetEnvColor(255, 255, 255, 255),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
const Gfx luigi_cap_material_revert_render_settings[] = {
|
||||
gsDPPipeSync(),
|
||||
gsSPSetGeometryMode(G_LIGHTING),
|
||||
gsSPClearGeometryMode(G_TEXTURE_GEN),
|
||||
gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT),
|
||||
gsSPTexture(65535, 65535, 0, 0, 0),
|
||||
gsDPSetEnvColor(255, 255, 255, 255),
|
||||
gsDPSetAlphaCompare(G_AC_NONE),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
|
|
@ -2143,8 +2143,10 @@ const Gfx mario_hair_sideburn_decal_cap_on[] = {
|
|||
|
||||
const Gfx mario_m_logo_decal[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineLERP(TEXEL0, SHADE, TEXEL1, SHADE, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, SHADE, TEXEL1, SHADE, TEXEL0, 0, ENVIRONMENT, 0),
|
||||
gsDPSetCombineLERP(TEXEL0, SHADE, TEXEL1, SHADE, TEXEL0, 0, ENVIRONMENT, 0, COMBINED, TEXEL0, PRIMITIVE, COMBINED, 0, 0, 0, COMBINED),
|
||||
gsDPSetCycleType(G_CYC_2CYCLE),
|
||||
gsSPTexture(65535, 65535, 0, 0, 1),
|
||||
gsDPSetPrimColor(0, 0, 127, 127, 127, 255),
|
||||
gsSPLight(&mario_black_lights_group.l, 1),
|
||||
gsSPCopyLightEXT(2, 15),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_texture_m_logo),
|
||||
|
@ -2158,6 +2160,7 @@ const Gfx mario_m_logo_decal[] = {
|
|||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 256, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
|
||||
gsDPSetTileSize(1, 0, 0, 124, 124),
|
||||
gsSPDisplayList(mario_m_logo_dl),
|
||||
gsDPSetCycleType(G_CYC_1CYCLE),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_MODULATERGBFADEA, G_CC_MODULATERGBFADEA),
|
||||
|
@ -3722,8 +3725,10 @@ const Gfx mario_right_hand_cap_bottom_dl[] = {
|
|||
|
||||
const Gfx mario_right_hand_cap_decal[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineLERP(TEXEL0, SHADE, TEXEL1, SHADE, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, SHADE, TEXEL1, SHADE, TEXEL0, 0, ENVIRONMENT, 0),
|
||||
gsDPSetCombineLERP(TEXEL0, SHADE, TEXEL1, SHADE, TEXEL0, 0, ENVIRONMENT, 0, COMBINED, TEXEL0, PRIMITIVE, COMBINED, 0, 0, 0, COMBINED),
|
||||
gsDPSetCycleType(G_CYC_2CYCLE),
|
||||
gsSPTexture(65535, 65535, 0, 0, 1),
|
||||
gsDPSetPrimColor(0, 0, 127, 127, 127, 255),
|
||||
gsSPLight(&mario_black_lights_group.l, 1),
|
||||
gsSPCopyLightEXT(2, 15),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_texture_m_logo),
|
||||
|
@ -3737,6 +3742,7 @@ const Gfx mario_right_hand_cap_decal[] = {
|
|||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 256, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
|
||||
gsDPSetTileSize(1, 0, 0, 124, 124),
|
||||
gsSPDisplayList(mario_right_hand_cap_m_logo_dl),
|
||||
gsDPSetCycleType(G_CYC_1CYCLE),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_MODULATERGBFADEA, G_CC_MODULATERGBFADEA),
|
||||
|
@ -3896,7 +3902,6 @@ const Gfx mario_right_hand_cap_wings_transparent[] = {
|
|||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
|
||||
// 0x0401B230 - 0x0401B278
|
||||
const Gfx mario_metal_right_hand_cap_shared_dl[] = {
|
||||
gsSPDisplayList(mario_right_hand_cap_m_logo_dl),
|
||||
|
@ -4335,10 +4340,8 @@ const Gfx mario_metal_cap_wings_transparent[] = {
|
|||
gsSPDisplayList(mario_wings_half_2_dl),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
|
||||
gsDPPipeSync(),
|
||||
gsSPSetGeometryMode(G_TEXTURE_GEN | G_LIGHTING | G_CULL_BACK),
|
||||
gsDPSetCombineMode(G_CC_DECALFADE, G_CC_DECALFADE),
|
||||
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),
|
||||
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
|
||||
gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ const GeoLayout marios_cap_geo[] = {
|
|||
GEO_OPEN_NODE(),
|
||||
GEO_SCALE(0x00, 16384),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ASM(1, geo_mario_set_player_colors),
|
||||
GEO_ASM(LAYER_OPAQUE + 3, geo_mario_set_player_colors),
|
||||
GEO_ASM(LAYER_ALPHA + 3, geo_mario_set_player_colors),
|
||||
GEO_ASM(LAYER_TRANSPARENT + 3, geo_mario_set_player_colors),
|
||||
GEO_ASM(10, geo_update_layer_transparency),
|
||||
|
@ -40,7 +40,7 @@ const GeoLayout marios_metal_cap_geo[] = {
|
|||
GEO_OPEN_NODE(),
|
||||
GEO_SCALE(0x00, 16384),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ASM(1, geo_mario_set_player_colors),
|
||||
GEO_ASM(LAYER_OPAQUE + 3, geo_mario_set_player_colors),
|
||||
GEO_ASM(LAYER_ALPHA + 3, geo_mario_set_player_colors),
|
||||
GEO_ASM(LAYER_TRANSPARENT + 3, geo_mario_set_player_colors),
|
||||
GEO_ASM(10, geo_update_layer_transparency),
|
||||
|
@ -66,7 +66,7 @@ const GeoLayout marios_wing_cap_geo[] = {
|
|||
GEO_OPEN_NODE(),
|
||||
GEO_SCALE(0x00, 16384),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ASM(1, geo_mario_set_player_colors),
|
||||
GEO_ASM(LAYER_OPAQUE + 3, geo_mario_set_player_colors),
|
||||
GEO_ASM(LAYER_ALPHA + 3, geo_mario_set_player_colors),
|
||||
GEO_ASM(LAYER_TRANSPARENT + 3, geo_mario_set_player_colors),
|
||||
GEO_ASM(10, geo_update_layer_transparency),
|
||||
|
@ -101,7 +101,7 @@ const GeoLayout marios_winged_metal_cap_geo[] = {
|
|||
GEO_OPEN_NODE(),
|
||||
GEO_SCALE(0x00, 16384),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ASM(1, geo_mario_set_player_colors),
|
||||
GEO_ASM(LAYER_OPAQUE + 3, geo_mario_set_player_colors),
|
||||
GEO_ASM(LAYER_ALPHA + 3, geo_mario_set_player_colors),
|
||||
GEO_ASM(LAYER_TRANSPARENT + 3, geo_mario_set_player_colors),
|
||||
GEO_ASM(10, geo_update_layer_transparency),
|
||||
|
|
|
@ -282,8 +282,10 @@ const Gfx mario_cap_seg3_dl_03022F20[] = {
|
|||
|
||||
const Gfx mario_cap_m_logo_decal[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineLERP(TEXEL0, SHADE, TEXEL1, SHADE, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, SHADE, TEXEL1, SHADE, TEXEL0, 0, ENVIRONMENT, 0),
|
||||
gsDPSetCombineLERP(TEXEL0, SHADE, TEXEL1, SHADE, TEXEL0, 0, ENVIRONMENT, 0, COMBINED, TEXEL0, PRIMITIVE, COMBINED, 0, 0, 0, COMBINED),
|
||||
gsDPSetCycleType(G_CYC_2CYCLE),
|
||||
gsSPTexture(65535, 65535, 0, 0, 1),
|
||||
gsDPSetPrimColor(0, 0, 127, 127, 127, 255),
|
||||
gsSPLight(&mario_cap_black_lights_group.l, 1),
|
||||
gsSPCopyLightEXT(2, 15),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_cap_texture_m_logo),
|
||||
|
@ -297,6 +299,7 @@ const Gfx mario_cap_m_logo_decal[] = {
|
|||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 256, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
|
||||
gsDPSetTileSize(1, 0, 0, 124, 124),
|
||||
gsSPDisplayList(mario_cap_seg3_dl_03022B30),
|
||||
gsDPSetCycleType(G_CYC_1CYCLE),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_MODULATERGBFADEA, G_CC_MODULATERGBFADEA),
|
||||
|
|
|
@ -1629,7 +1629,10 @@ extern ALIGNED8 const Texture mario_texture_metal_light[];
|
|||
extern ALIGNED8 const Texture mario_texture_yellow_button[];
|
||||
extern ALIGNED8 const Texture mario_texture_m_logo[];
|
||||
extern ALIGNED8 const Texture mario_texture_m_blend[];
|
||||
extern ALIGNED8 const Texture mario_texture_m_cap[];
|
||||
extern ALIGNED8 const Texture mario_texture_hair_sideburn[];
|
||||
extern ALIGNED8 const Texture mario_texture_add_sideburn[];
|
||||
extern ALIGNED8 const Texture mario_texture_skin_sideburn[];
|
||||
extern ALIGNED8 const Texture mario_texture_mustache[];
|
||||
extern ALIGNED8 const Texture mario_texture_eyes_front[];
|
||||
extern ALIGNED8 const Texture mario_texture_eyes_half_closed[];
|
||||
|
@ -1655,9 +1658,12 @@ extern ALIGNED8 const Texture impact_smoke_seg6_texture_0605CA28[];
|
|||
extern ALIGNED8 const Texture impact_smoke_seg6_texture_0605EA28[];
|
||||
extern ALIGNED8 const Texture impact_smoke_seg6_texture_06060A28[];
|
||||
extern ALIGNED8 const Texture luigi_texture_l_logo[];
|
||||
extern ALIGNED8 const Texture luigi_texture_l_blend[];
|
||||
extern ALIGNED8 const Texture luigi_texture_l_cap[];
|
||||
extern ALIGNED8 const Texture luigi_texture_hair_sideburn[];
|
||||
extern ALIGNED8 const Texture luigi_texture_add_sideburn[];
|
||||
extern ALIGNED8 const Texture luigi_texture_skin_sideburn[];
|
||||
extern ALIGNED8 const Texture luigi_texture_mustache[];
|
||||
extern ALIGNED8 const Texture luigi_cap_seg3_texture_0301DF50[];
|
||||
extern ALIGNED8 const Texture toad_player_texture_spots[];
|
||||
extern ALIGNED8 const Texture toad_player_texture_hair[];
|
||||
extern ALIGNED8 const Texture toad_player_texture_blush[];
|
||||
|
|
|
@ -1061,7 +1061,10 @@ static const struct BuiltinTexInfo sDynosBuiltinTexs[] = {
|
|||
define_builtin_tex(mario_texture_yellow_button, "actors/mario/mario_overalls_button.rgba16.png", 32, 32, 16),
|
||||
define_builtin_tex(mario_texture_m_logo, "actors/mario/custom_mario_logo.rgba16.png", 32, 32, 16),
|
||||
define_builtin_tex(mario_texture_m_blend, "actors/mario/custom_mario_m_blend.rgba16.png", 32, 32, 16),
|
||||
define_builtin_tex(mario_texture_hair_sideburn, "actors/mario/custom_mario_sideburn.rgba16.png", 32, 32, 16),
|
||||
define_builtin_tex(mario_texture_m_cap, "actors/mario/custom_mario_cap.rgba16.png", 32, 32, 16),
|
||||
define_builtin_tex(mario_texture_hair_sideburn, "actors/mario/custom_mario_sideburn.rgba32.png", 32, 32, 16),
|
||||
define_builtin_tex(mario_texture_add_sideburn, "actors/mario/custom_mario_sideburn_add.rgba32.png", 32, 32, 16),
|
||||
define_builtin_tex(mario_texture_skin_sideburn, "actors/mario/custom_mario_skin.rgba16.png", 32, 32, 16),
|
||||
define_builtin_tex(mario_texture_mustache, "actors/mario/mario_mustache.rgba16.png", 32, 32, 16),
|
||||
define_builtin_tex(mario_texture_eyes_front, "actors/mario/mario_eyes_center.rgba16.png", 32, 32, 16),
|
||||
define_builtin_tex(mario_texture_eyes_half_closed, "actors/mario/mario_eyes_half_closed.rgba16.png", 32, 32, 16),
|
||||
|
@ -1075,7 +1078,7 @@ static const struct BuiltinTexInfo sDynosBuiltinTexs[] = {
|
|||
define_builtin_tex(mario_texture_wings_half_2, "actors/mario/mario_wing_tip.rgba16.png", 32, 64, 16),
|
||||
define_builtin_tex(mario_texture_metal_wings_half_1, "actors/mario/mario_metal_wing_unused.rgba16.png", 32, 64, 16),
|
||||
define_builtin_tex(mario_texture_metal_wings_half_2, "actors/mario/mario_metal_wing_tip_unused.rgba16.png", 32, 64, 16),
|
||||
define_builtin_tex(mario_texture_cap_inside, "actors/mario/custom_mario_cap_inside.rgba16.png", 8, 8, 16),
|
||||
define_builtin_tex(mario_texture_cap_inside, "actors/mario/custom_mario_cap_inside.rgba32.png", 8, 8, 16),
|
||||
define_builtin_tex(mario_cap_seg3_texture_0301CF50, "actors/mario_cap/mario_cap_metal.rgba16.png", 64, 32, 16),
|
||||
define_builtin_tex(mario_cap_seg3_texture_0301DF50, "actors/mario_cap/mario_cap_logo.rgba16.png", 32, 32, 16),
|
||||
define_builtin_tex(mario_cap_seg3_texture_0301E750, "actors/mario_cap/mario_cap_wing.rgba16.png", 32, 64, 16),
|
||||
|
@ -1087,9 +1090,12 @@ static const struct BuiltinTexInfo sDynosBuiltinTexs[] = {
|
|||
define_builtin_tex(impact_smoke_seg6_texture_0605EA28, "actors/impact_smoke/impact_smoke_2.ia16.png", 64, 64, 16),
|
||||
define_builtin_tex(impact_smoke_seg6_texture_06060A28, "actors/impact_smoke/impact_smoke_3.ia16.png", 64, 64, 16),
|
||||
define_builtin_tex(luigi_texture_l_logo, "actors/luigi/custom_luigi_logo.rgba16.png", 32, 32, 16),
|
||||
define_builtin_tex(luigi_texture_hair_sideburn, "actors/luigi/custom_luigi_sideburn.rgba16.png", 32, 32, 16),
|
||||
define_builtin_tex(luigi_texture_l_blend, "actors/luigi/custom_luigi_l_blend.rgba16.png", 32, 32, 16),
|
||||
define_builtin_tex(luigi_texture_l_cap, "actors/luigi/custom_luigi_cap.rgba16.png", 32, 32, 16),
|
||||
define_builtin_tex(luigi_texture_hair_sideburn, "actors/luigi/custom_luigi_sideburn.rgba32.png", 32, 32, 16),
|
||||
define_builtin_tex(luigi_texture_add_sideburn, "actors/luigi/custom_luigi_sideburn_add.rgba32.png", 32, 32, 16),
|
||||
define_builtin_tex(luigi_texture_skin_sideburn, "actors/luigi/custom_luigi_skin.rgba16.png", 32, 32, 16),
|
||||
define_builtin_tex(luigi_texture_mustache, "actors/luigi/custom_luigi_mustache.rgba16.png", 32, 32, 16),
|
||||
define_builtin_tex(luigi_cap_seg3_texture_0301DF50, "actors/luigi_cap/custom_luigi_cap_logo.rgba16.png", 32, 32, 16),
|
||||
define_builtin_tex(toad_player_texture_spots, "actors/toad_player/custom_toad_cap.ia16.png", 32, 32, 16),
|
||||
define_builtin_tex(toad_player_texture_hair, "actors/toad_player/custom_toad_hair.rgba16.png", 32, 32, 16),
|
||||
define_builtin_tex(toad_player_texture_blush, "actors/toad_player/custom_toad_blush.rgba16.png", 32, 32, 16),
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
extern Gfx mario_cap_seg3_dl_03022F48[];
|
||||
extern Gfx mario_cap_m_logo_decal[];
|
||||
extern Gfx luigi_cap_seg3_dl_03022F48[];
|
||||
extern Gfx luigi_cap_l_logo_decal_dl[];
|
||||
extern Gfx luigi_cap_l_logo_decal[];
|
||||
extern Gfx toad_cap_Cap_mesh_layer_1[];
|
||||
extern Gfx toad_cap_Cap_mesh_layer_5[];
|
||||
extern Gfx waluigi_cap_seg3_dl_03022F48[];
|
||||
|
@ -318,9 +318,9 @@ struct Character gCharacters[CT_MAX] = {
|
|||
.capMetalModelId = MODEL_LUIGIS_METAL_CAP,
|
||||
.capWingModelId = MODEL_LUIGIS_WING_CAP,
|
||||
.capMetalWingModelId = MODEL_LUIGIS_WINGED_METAL_CAP,
|
||||
.capEnemyLayer = LAYER_TRANSPARENT,
|
||||
.capEnemyLayer = LAYER_ALPHA,
|
||||
.capEnemyGfx = luigi_cap_seg3_dl_03022F48,
|
||||
.capEnemyDecalGfx = luigi_cap_l_logo_decal_dl,
|
||||
.capEnemyDecalGfx = luigi_cap_l_logo_decal,
|
||||
.torsoRotMult = 1.0f,
|
||||
// anim
|
||||
.animOffsetEnabled = false,
|
||||
|
|