Added Luigi
|  | @ -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[]; | ||||
|  | @ -112,4 +112,5 @@ extern const Gfx luigi_wings_half_2_dl[]; | |||
| 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_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), | ||||
|  | @ -3520,8 +3654,6 @@ const Gfx luigi_right_hand_cap_wings_end_dl[] = { | |||
| 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,6 +3929,8 @@ 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(), | ||||
|  | @ -3937,3 +4071,14 @@ const Gfx luigi_metal_cap_wings_transparent[] = { | |||
|     gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON), | ||||
|     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(), | ||||
| }; | ||||
|  |  | |||
|  | @ -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), | ||||
|  |  | |||
 FluffaMario
						FluffaMario