diff --git a/README.md b/README.md index 3efc5ad2..0394a236 100644 --- a/README.md +++ b/README.md @@ -86,6 +86,7 @@ This is a fork of the ultrasm64 repo by CrashOveride which includes the followin - Widescreen (16:9) support toggleable by pressing `L` in the pause menu. * - S2DEX engine by someone2639! To use it, compile with `make TEXT_ENGINE=s2dex_text_engine` or just set `TEXT_ENGINE` to `s2dex_text_engine` in the makefile. - ia8 coins (64x64), the vanilla coin texture is upgraded to accomodate. * +- Mario's silhouette is shown when behind most surfaces (By Frame#5375, Axollyon, AloXado320, Wiseguy, Arceveti) * - Skybox size modifier. You can have 2x, 3x and 4x size skyboxes (you can select the skybox size in `config.h`.) Please note that this might affect console performance, especially 4x mode. 2x or 3x mode is recommended if aiming for console. By CowQuack * - You can set the black border size to different values for console and emulator. It's set to 0 by default for both. * - This repo supports much better implementation of reverb over vanilla's fake echo reverb. Great for caves or eerie levels, as well as just a better audio experience in general. See `audio/synthesis.c` for more configuration info. (By ArcticJaguar725) * diff --git a/actors/amp/geo.inc.c b/actors/amp/geo.inc.c index 9c9e1d69..b7ca03f5 100644 --- a/actors/amp/geo.inc.c +++ b/actors/amp/geo.inc.c @@ -3,49 +3,49 @@ const GeoLayout dAmpGeo[] = { GEO_OPEN_NODE(), GEO_SCALE(0x00, 16384), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_ALPHA, 0, 0, 0, dAmpEyeDl), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_ALPHA, 0, 0, 0, dAmpEyeDl), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL), GEO_OPEN_NODE(), GEO_SWITCH_CASE(2, geo_switch_anim_state), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), - GEO_ANIMATED_PART(LAYER_ALPHA, 0, 0, 0, dAmpElectricityDl), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_ALPHA, 0, 0, 0, dAmpElectricityDl), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL), GEO_OPEN_NODE(), GEO_SWITCH_CASE(2, geo_switch_anim_state), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), - GEO_ANIMATED_PART(LAYER_ALPHA, 0, 0, 0, dAmpElectricityDl), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_ALPHA, 0, 0, 0, dAmpElectricityDl), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL), GEO_OPEN_NODE(), GEO_SWITCH_CASE(2, geo_switch_anim_state), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), - GEO_ANIMATED_PART(LAYER_ALPHA, 0, 0, 0, dAmpElectricityDl), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_ALPHA, 0, 0, 0, dAmpElectricityDl), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL), GEO_OPEN_NODE(), GEO_SWITCH_CASE(2, geo_switch_anim_state), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), - GEO_ANIMATED_PART(LAYER_ALPHA, 0, 0, 0, dAmpElectricityDl), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_ALPHA, 0, 0, 0, dAmpElectricityDl), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_ALPHA, 0, 0, 0, dAmpMouthDl), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_ALPHA, 0, 0, 0, dAmpMouthDl), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL), GEO_OPEN_NODE(), GEO_BILLBOARD(), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, dAmpBodyDl), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, dAmpBodyDl), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), diff --git a/actors/bird/geo.inc.c b/actors/bird/geo.inc.c index 92876442..8cced176 100644 --- a/actors/bird/geo.inc.c +++ b/actors/bird/geo.inc.c @@ -4,20 +4,20 @@ const GeoLayout birds_geo[] = { GEO_OPEN_NODE(), GEO_SCALE(0x00, 16384), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, birds_seg5_dl_05000670), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, birds_seg5_dl_05000670), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 1, -12, 37, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 1, -12, 37, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, birds_seg5_dl_05000528), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, birds_seg5_dl_05000528), GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 1, -12, -37, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 1, -12, -37, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, birds_seg5_dl_05000600), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, birds_seg5_dl_05000600), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, birds_seg5_dl_05000598), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, birds_seg5_dl_05000598), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), diff --git a/actors/blue_fish/geo.inc.c b/actors/blue_fish/geo.inc.c index d55c81a8..a7070453 100644 --- a/actors/blue_fish/geo.inc.c +++ b/actors/blue_fish/geo.inc.c @@ -4,11 +4,11 @@ const GeoLayout fish_shadow_geo[] = { GEO_OPEN_NODE(), GEO_SCALE(0x00, 16384), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, -16, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, -16, 0, 0, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, blue_fish_seg3_dl_0301BFB8), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, blue_fish_seg3_dl_0301BFB8), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 97, 0, 0, blue_fish_seg3_dl_0301C150), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 97, 0, 0, blue_fish_seg3_dl_0301C150), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), @@ -20,11 +20,11 @@ const GeoLayout fish_shadow_geo[] = { const GeoLayout fish_geo[] = { GEO_SCALE(0x00, 16384), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, -16, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, -16, 0, 0, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, blue_fish_seg3_dl_0301BFB8), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, blue_fish_seg3_dl_0301BFB8), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 97, 0, 0, blue_fish_seg3_dl_0301C150), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 97, 0, 0, blue_fish_seg3_dl_0301C150), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), diff --git a/actors/bowser_key/geo.inc.c b/actors/bowser_key/geo.inc.c index d7e2a85f..75fa63a9 100644 --- a/actors/bowser_key/geo.inc.c +++ b/actors/bowser_key/geo.inc.c @@ -4,7 +4,7 @@ const GeoLayout bowser_key_geo[] = { GEO_OPEN_NODE(), GEO_SCALE(0x00, 65536), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, bowser_key_dl), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, bowser_key_dl), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_END(), @@ -14,14 +14,14 @@ const GeoLayout bowser_key_geo[] = { const GeoLayout bowser_key_cutscene_geo[] = { GEO_SCALE(0x00, 16384), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL), GEO_OPEN_NODE(), GEO_ASM(0, geo_scale_bowser_key), GEO_SCALE(0x00, 65536), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, bowser_key_dl), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, bowser_key_dl), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), diff --git a/actors/bubble/geo.inc.c b/actors/bubble/geo.inc.c index 60dc9be2..a048d665 100644 --- a/actors/bubble/geo.inc.c +++ b/actors/bubble/geo.inc.c @@ -2,7 +2,7 @@ const GeoLayout bubble_geo[] = { GEO_SWITCH_CASE(1, geo_switch_anim_state), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, bubble_seg4_dl_0401DD60), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, bubble_seg4_dl_0401DD60), GEO_CLOSE_NODE(), GEO_END(), }; @@ -11,7 +11,7 @@ const GeoLayout bubble_geo[] = { const GeoLayout purple_marble_geo[] = { GEO_SWITCH_CASE(1, geo_switch_anim_state), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, bubble_seg4_dl_0401DDE0), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, bubble_seg4_dl_0401DDE0), GEO_CLOSE_NODE(), GEO_END(), }; diff --git a/actors/butterfly/geo.inc.c b/actors/butterfly/geo.inc.c index ccaedd5d..d9fd7c36 100644 --- a/actors/butterfly/geo.inc.c +++ b/actors/butterfly/geo.inc.c @@ -4,19 +4,19 @@ const GeoLayout butterfly_geo[] = { GEO_OPEN_NODE(), GEO_SCALE(0x00, 16384), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_ALPHA, 0, 0, 0, butterfly_seg3_dl_03005408), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_ALPHA, 0, 0, 0, butterfly_seg3_dl_03005408), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_ALPHA, 0, 0, 0, butterfly_seg3_dl_030054A0), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_ALPHA, 0, 0, 0, butterfly_seg3_dl_030054A0), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), diff --git a/actors/coin/geo.inc.c b/actors/coin/geo.inc.c index bfb2d92d..7409e4f0 100644 --- a/actors/coin/geo.inc.c +++ b/actors/coin/geo.inc.c @@ -4,14 +4,14 @@ const GeoLayout yellow_coin_geo[] = { GEO_OPEN_NODE(), GEO_SWITCH_CASE(8, geo_switch_anim_state), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_03007800), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_03007800), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_03007828), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_03007828), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_03007850), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_03007850), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_03007878), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_03007878), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_03007800), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_03007800), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_03007828), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_03007828), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_03007850), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_03007850), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_03007878), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_03007878), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_END(), @@ -23,14 +23,14 @@ const GeoLayout yellow_coin_no_shadow_geo[] = { GEO_OPEN_NODE(), GEO_SWITCH_CASE(8, geo_switch_anim_state), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_03007800), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_03007800), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_03007828), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_03007828), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_03007850), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_03007850), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_03007878), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_03007878), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_03007800), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_03007800), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_03007828), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_03007828), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_03007850), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_03007850), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_03007878), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_03007878), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_END(), @@ -42,14 +42,14 @@ const GeoLayout blue_coin_geo[] = { GEO_OPEN_NODE(), GEO_SWITCH_CASE(8, geo_switch_anim_state), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_030078A0), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_030078A0), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_030078C8), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_030078C8), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_030078F0), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_030078F0), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_03007918), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_03007918), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_030078A0), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_030078A0), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_030078C8), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_030078C8), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_030078F0), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_030078F0), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_03007918), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_03007918), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_END(), @@ -61,14 +61,14 @@ const GeoLayout blue_coin_no_shadow_geo[] = { GEO_OPEN_NODE(), GEO_SWITCH_CASE(8, geo_switch_anim_state), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_030078A0), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_030078A0), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_030078C8), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_030078C8), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_030078F0), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_030078F0), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_03007918), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_03007918), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_030078A0), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_030078A0), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_030078C8), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_030078C8), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_030078F0), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_030078F0), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_03007918), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_03007918), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_END(), @@ -80,14 +80,14 @@ const GeoLayout red_coin_geo[] = { GEO_OPEN_NODE(), GEO_SWITCH_CASE(8, geo_switch_anim_state), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_03007940), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_03007940), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_03007968), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_03007968), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_03007990), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_03007990), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_030079B8), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_030079B8), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_03007940), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_03007940), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_03007968), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_03007968), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_03007990), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_03007990), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_030079B8), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_030079B8), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_END(), @@ -99,14 +99,14 @@ const GeoLayout red_coin_no_shadow_geo[] = { GEO_OPEN_NODE(), GEO_SWITCH_CASE(8, geo_switch_anim_state), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_03007940), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_03007940), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_03007968), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_03007968), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_03007990), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_03007990), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_030079B8), - GEO_DISPLAY_LIST(LAYER_ALPHA, coin_seg3_dl_030079B8), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_03007940), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_03007940), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_03007968), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_03007968), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_03007990), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_03007990), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_030079B8), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, coin_seg3_dl_030079B8), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_END(), diff --git a/actors/cyan_fish/geo.inc.c b/actors/cyan_fish/geo.inc.c index dfebc8fd..ab7de893 100644 --- a/actors/cyan_fish/geo.inc.c +++ b/actors/cyan_fish/geo.inc.c @@ -2,14 +2,14 @@ const GeoLayout cyan_fish_geo[] = { GEO_SCALE(0x00, 16384), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, cyan_fish_seg6_dl_0600DDD8), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, cyan_fish_seg6_dl_0600DDD8), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 160, 0, 0, cyan_fish_seg6_dl_0600E038), - GEO_ANIMATED_PART(LAYER_OPAQUE, 32, 112, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 160, 0, 0, cyan_fish_seg6_dl_0600E038), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 32, 112, 0, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, cyan_fish_seg6_dl_0600DED8), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, cyan_fish_seg6_dl_0600DED8), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), diff --git a/actors/dirt/geo.inc.c b/actors/dirt/geo.inc.c index ab4c558f..b27dc51c 100644 --- a/actors/dirt/geo.inc.c +++ b/actors/dirt/geo.inc.c @@ -4,12 +4,12 @@ const GeoLayout dirt_animation_geo[] = { GEO_OPEN_NODE(), GEO_SWITCH_CASE(6, geo_switch_anim_state), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, dirt_seg3_dl_0302C378), - GEO_DISPLAY_LIST(LAYER_OPAQUE, dirt_seg3_dl_0302C3B0), - GEO_DISPLAY_LIST(LAYER_OPAQUE, dirt_seg3_dl_0302C3E8), - GEO_DISPLAY_LIST(LAYER_ALPHA, dirt_seg3_dl_0302C028), - GEO_DISPLAY_LIST(LAYER_OPAQUE, dirt_seg3_dl_0302C420), - GEO_DISPLAY_LIST(LAYER_OPAQUE, dirt_seg3_dl_0302C458), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, dirt_seg3_dl_0302C378), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, dirt_seg3_dl_0302C3B0), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, dirt_seg3_dl_0302C3E8), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, dirt_seg3_dl_0302C028), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, dirt_seg3_dl_0302C420), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, dirt_seg3_dl_0302C458), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_END(), @@ -22,11 +22,11 @@ const GeoLayout cartoon_star_geo[] = { GEO_OPEN_NODE(), GEO_SWITCH_CASE(5, geo_switch_anim_state), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, dirt_seg3_dl_0302C298), - GEO_DISPLAY_LIST(LAYER_OPAQUE, dirt_seg3_dl_0302C2B8), - GEO_DISPLAY_LIST(LAYER_OPAQUE, dirt_seg3_dl_0302C2D8), - GEO_DISPLAY_LIST(LAYER_OPAQUE, dirt_seg3_dl_0302C2F8), - GEO_DISPLAY_LIST(LAYER_OPAQUE, dirt_seg3_dl_0302C318), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, dirt_seg3_dl_0302C298), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, dirt_seg3_dl_0302C2B8), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, dirt_seg3_dl_0302C2D8), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, dirt_seg3_dl_0302C2F8), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, dirt_seg3_dl_0302C318), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_END(), diff --git a/actors/group0_geo.c b/actors/group0_geo.c index bddefae9..b92f5066 100644 --- a/actors/group0_geo.c +++ b/actors/group0_geo.c @@ -15,4 +15,20 @@ #include "sparkle/geo.inc.c" #include "water_splash/geo.inc.c" #include "sparkle_animation/geo.inc.c" +#if SILHOUETTE +#define LAYER_OPAQUE_ORIG LAYER_OPAQUE +#define LAYER_ALPHA_ORIG LAYER_ALPHA +#undef LAYER_OPAQUE +#undef LAYER_ALPHA +#define LAYER_OPAQUE LAYER_SILHOUETTE_OPAQUE +#define LAYER_ALPHA LAYER_SILHOUETTE_ALPHA #include "mario/geo.inc.c" +#undef LAYER_OPAQUE +#undef LAYER_ALPHA +#define LAYER_OPAQUE LAYER_OPAQUE_ORIG +#define LAYER_ALPHA LAYER_ALPHA_ORIG +#undef LAYER_OPAQUE_ORIG +#undef LAYER_ALPHA_OGIG +#else +#include "mario/geo.inc.c" +#endif diff --git a/actors/hoot/geo.inc.c b/actors/hoot/geo.inc.c index e415a492..f66e8cfd 100644 --- a/actors/hoot/geo.inc.c +++ b/actors/hoot/geo.inc.c @@ -4,54 +4,54 @@ const GeoLayout hoot_geo[] = { GEO_OPEN_NODE(), GEO_SCALE(0x00, 16384), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 147, -5, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 147, -5, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, hoot_seg5_dl_05004D48), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, hoot_seg5_dl_05004D48), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 96, 0, 0, hoot_seg5_dl_05001DF0), - GEO_ANIMATED_PART(LAYER_OPAQUE, 34, -35, 31, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 96, 0, 0, hoot_seg5_dl_05001DF0), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 34, -35, 31, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_ALPHA, 0, 0, 0, hoot_seg5_dl_05003728), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_ALPHA, 0, 0, 0, hoot_seg5_dl_05003728), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_ALPHA, 91, 0, 0, hoot_seg5_dl_050034D8), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_ALPHA, 91, 0, 0, hoot_seg5_dl_050034D8), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_ALPHA, 121, 0, 0, hoot_seg5_dl_050033B0), - GEO_ANIMATED_PART(LAYER_OPAQUE, 121, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_ALPHA, 121, 0, 0, hoot_seg5_dl_050033B0), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 121, 0, 0, NULL), GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 91, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 91, 0, 0, NULL), GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_ALPHA, 0, 0, 0, hoot_seg5_dl_05003600), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_ALPHA, 0, 0, 0, hoot_seg5_dl_05003600), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL), GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, -31, 5, 37, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, -31, 5, 37, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, hoot_seg5_dl_05004A98), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, hoot_seg5_dl_05004A98), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 42, 0, 0, hoot_seg5_dl_05004928), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 42, 0, 0, hoot_seg5_dl_05004928), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, -31, 5, -37, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, -31, 5, -37, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, hoot_seg5_dl_05004CA8), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, hoot_seg5_dl_05004CA8), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 42, 0, 0, hoot_seg5_dl_05004B38), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 42, 0, 0, hoot_seg5_dl_05004B38), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 34, -35, -31, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 34, -35, -31, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_ALPHA, 0, 0, 0, hoot_seg5_dl_05003288), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_ALPHA, 0, 0, 0, hoot_seg5_dl_05003288), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_ALPHA, 91, 0, 0, hoot_seg5_dl_05003038), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_ALPHA, 91, 0, 0, hoot_seg5_dl_05003038), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_ALPHA, 121, 0, 0, hoot_seg5_dl_05002F10), - GEO_ANIMATED_PART(LAYER_OPAQUE, 121, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_ALPHA, 121, 0, 0, hoot_seg5_dl_05002F10), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 121, 0, 0, NULL), GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 91, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 91, 0, 0, NULL), GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_ALPHA, 0, 0, 0, hoot_seg5_dl_05003160), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_ALPHA, 0, 0, 0, hoot_seg5_dl_05003160), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), diff --git a/actors/klepto/geo.inc.c b/actors/klepto/geo.inc.c index 0d0bbe30..e1cfafe8 100644 --- a/actors/klepto/geo.inc.c +++ b/actors/klepto/geo.inc.c @@ -40,9 +40,9 @@ const GeoLayout klepto_geo[] = { GEO_SCALE(0x00, 16384), GEO_OPEN_NODE(), GEO_ASM(0, geo_offset_klepto_held_object), - GEO_TRANSLATE_ROTATE_WITH_DL(LAYER_OPAQUE, 0, 100, 0, 180, 270, 0, star_seg3_dl_0302B870), + GEO_TRANSLATE_ROTATE_WITH_DL(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 100, 0, 180, 270, 0, star_seg3_dl_0302B870), GEO_ASM(0, geo_offset_klepto_held_object), - GEO_TRANSLATE_ROTATE_WITH_DL(LAYER_ALPHA, 0, 100, 0, 180, 270, 0, star_seg3_dl_0302BA18), + GEO_TRANSLATE_ROTATE_WITH_DL(LAYER_OCCLUDE_SILHOUETTE_ALPHA, 0, 100, 0, 180, 270, 0, star_seg3_dl_0302BA18), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_NODE_START(), @@ -50,7 +50,7 @@ const GeoLayout klepto_geo[] = { GEO_SCALE(0x00, 16384), GEO_OPEN_NODE(), GEO_ASM(0, geo_offset_klepto_held_object), - GEO_TRANSLATE_ROTATE_WITH_DL(LAYER_OPAQUE, 0, 100, 0, 180, 270, 0, transparent_star_seg3_dl_0302C620), + GEO_TRANSLATE_ROTATE_WITH_DL(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 100, 0, 180, 270, 0, transparent_star_seg3_dl_0302C620), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), diff --git a/actors/koopa_shell/geo.inc.c b/actors/koopa_shell/geo.inc.c index 424c3291..51d3bf99 100644 --- a/actors/koopa_shell/geo.inc.c +++ b/actors/koopa_shell/geo.inc.c @@ -4,7 +4,7 @@ const GeoLayout koopa_shell_geo[] = { GEO_OPEN_NODE(), GEO_SCALE(0x00, 65536), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, koopa_shell_seg8_dl_08028B78), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, koopa_shell_seg8_dl_08028B78), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_END(), @@ -16,7 +16,7 @@ const GeoLayout koopa_shell2_geo[] = { GEO_OPEN_NODE(), GEO_SCALE(0x00, 16384), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, koopa_shell_seg8_dl_08027420), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, koopa_shell_seg8_dl_08027420), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_END(), @@ -28,7 +28,7 @@ const GeoLayout koopa_shell3_geo[] = { GEO_OPEN_NODE(), GEO_SCALE(0x00, 16384), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, koopa_shell_seg8_dl_080273C8), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, koopa_shell_seg8_dl_080273C8), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_END(), diff --git a/actors/lakitu_cameraman/geo.inc.c b/actors/lakitu_cameraman/geo.inc.c index 2dd17365..4350841e 100644 --- a/actors/lakitu_cameraman/geo.inc.c +++ b/actors/lakitu_cameraman/geo.inc.c @@ -4,36 +4,36 @@ const GeoLayout lakitu_geo[] = { GEO_OPEN_NODE(), GEO_SCALE(0x00, 16384), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, lakitu_seg6_dl_06003E30), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, lakitu_seg6_dl_06003E30), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 132, 0, 0, lakitu_seg6_dl_06004680), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 132, 0, 0, lakitu_seg6_dl_06004680), GEO_OPEN_NODE(), GEO_SWITCH_CASE(2, geo_switch_anim_state), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, lakitu_seg6_dl_06004C60), - GEO_DISPLAY_LIST(LAYER_ALPHA, lakitu_seg6_dl_06004C88), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, lakitu_seg6_dl_06004C60), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, lakitu_seg6_dl_06004C88), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 87, 18, 72, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 87, 18, 72, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, lakitu_seg6_dl_060047E8), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, lakitu_seg6_dl_060047E8), GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 87, 18, -72, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 87, 18, -72, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, lakitu_seg6_dl_060049E0), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, lakitu_seg6_dl_060049E0), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 334, -214, -50, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 334, -214, -50, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, lakitu_seg6_dl_06005610), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, lakitu_seg6_dl_06005610), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 191, 0, 0, lakitu_seg6_dl_06005360), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 191, 0, 0, lakitu_seg6_dl_06005360), GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, lakitu_seg6_dl_060055E8), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, lakitu_seg6_dl_060055E8), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, lakitu_seg6_dl_06005598), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, lakitu_seg6_dl_06005598), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), diff --git a/actors/leaves/geo.inc.c b/actors/leaves/geo.inc.c index c466a517..c93c3afb 100644 --- a/actors/leaves/geo.inc.c +++ b/actors/leaves/geo.inc.c @@ -2,7 +2,7 @@ const GeoLayout leaves_geo[] = { GEO_NODE_START(), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, leaves_seg3_dl_0301CDE0), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, leaves_seg3_dl_0301CDE0), GEO_CLOSE_NODE(), GEO_END(), }; diff --git a/actors/mario_cap/geo.inc.c b/actors/mario_cap/geo.inc.c index 5e59c311..04634be0 100644 --- a/actors/mario_cap/geo.inc.c +++ b/actors/mario_cap/geo.inc.c @@ -7,7 +7,7 @@ const GeoLayout marios_cap_geo[] = { GEO_ASM(10, geo_update_layer_transparency), GEO_SWITCH_CASE(2, geo_switch_anim_state), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_seg3_dl_03022F48), + GEO_DISPLAY_LIST(LAYER_SILHOUETTE_OPAQUE, mario_cap_seg3_dl_03022F48), GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_seg3_dl_03022F48), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), @@ -24,7 +24,7 @@ const GeoLayout marios_metal_cap_geo[] = { GEO_ASM(10, geo_update_layer_transparency), GEO_SWITCH_CASE(2, geo_switch_anim_state), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_seg3_dl_03022FF8), + GEO_DISPLAY_LIST(LAYER_SILHOUETTE_OPAQUE, mario_cap_seg3_dl_03022FF8), GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_seg3_dl_03022FF8), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), @@ -43,8 +43,8 @@ const GeoLayout marios_wing_cap_geo[] = { GEO_OPEN_NODE(), GEO_NODE_START(), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_seg3_dl_03022F48), - GEO_DISPLAY_LIST(LAYER_ALPHA, mario_cap_seg3_dl_030230B0), + GEO_DISPLAY_LIST(LAYER_SILHOUETTE_OPAQUE, mario_cap_seg3_dl_03022F48), + GEO_DISPLAY_LIST(LAYER_SILHOUETTE_ALPHA, mario_cap_seg3_dl_030230B0), GEO_CLOSE_NODE(), GEO_NODE_START(), GEO_OPEN_NODE(), @@ -67,8 +67,8 @@ const GeoLayout marios_winged_metal_cap_geo[] = { GEO_OPEN_NODE(), GEO_NODE_START(), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_seg3_dl_03022FF8), - GEO_DISPLAY_LIST(LAYER_ALPHA, mario_cap_seg3_dl_03023108), + GEO_DISPLAY_LIST(LAYER_SILHOUETTE_OPAQUE, mario_cap_seg3_dl_03022FF8), + GEO_DISPLAY_LIST(LAYER_SILHOUETTE_ALPHA, mario_cap_seg3_dl_03023108), GEO_CLOSE_NODE(), GEO_NODE_START(), GEO_OPEN_NODE(), diff --git a/actors/mips/geo.inc.c b/actors/mips/geo.inc.c index 58948b5b..b16fc78d 100644 --- a/actors/mips/geo.inc.c +++ b/actors/mips/geo.inc.c @@ -4,44 +4,44 @@ const GeoLayout mips_geo[] = { GEO_OPEN_NODE(), GEO_SCALE(0x00, 16384), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mips_seg6_dl_06010C40), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, mips_seg6_dl_06010C40), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 64, 0, 0, mips_seg6_dl_060107B8), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 64, 0, 0, mips_seg6_dl_060107B8), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 52, -24, -32, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 52, -24, -32, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mips_seg6_dl_06011DB0), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, mips_seg6_dl_06011DB0), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 79, 0, 0, mips_seg6_dl_06011BB0), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 79, 0, 0, mips_seg6_dl_06011BB0), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 52, -24, 32, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 52, -24, 32, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mips_seg6_dl_060110B0), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, mips_seg6_dl_060110B0), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 79, 0, 0, mips_seg6_dl_06010E60), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 79, 0, 0, mips_seg6_dl_06010E60), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, -31, 4, -39, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, -31, 4, -39, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mips_seg6_dl_06011FC0), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, mips_seg6_dl_06011FC0), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 45, 0, 0, mips_seg6_dl_06011990), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 45, 0, 0, mips_seg6_dl_06011990), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 52, 0, 0, mips_seg6_dl_06011780), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 52, 0, 0, mips_seg6_dl_06011780), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, -31, 4, 40, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, -31, 4, 40, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mips_seg6_dl_06011ED8), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, mips_seg6_dl_06011ED8), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 45, 0, 0, mips_seg6_dl_06011520), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 45, 0, 0, mips_seg6_dl_06011520), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 52, 0, 0, mips_seg6_dl_06011310), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 52, 0, 0, mips_seg6_dl_06011310), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), @@ -49,8 +49,7 @@ const GeoLayout mips_geo[] = { GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), -GEO_CLOSE_NODE(), //! more close than open nodes -GEO_END(), + GEO_END(), }; UNUSED static const u64 mips_unused_1 = 0; diff --git a/actors/mr_i_iris/geo.inc.c b/actors/mr_i_iris/geo.inc.c index 31156664..f4a116a1 100644 --- a/actors/mr_i_iris/geo.inc.c +++ b/actors/mr_i_iris/geo.inc.c @@ -4,26 +4,26 @@ const GeoLayout mr_i_iris_geo[] = { GEO_OPEN_NODE(), GEO_SWITCH_CASE(20, geo_switch_anim_state), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, mr_i_iris_seg6_dl_060041D8), - GEO_DISPLAY_LIST(LAYER_ALPHA, mr_i_iris_seg6_dl_060041F0), - GEO_DISPLAY_LIST(LAYER_ALPHA, mr_i_iris_seg6_dl_06004208), - GEO_DISPLAY_LIST(LAYER_ALPHA, mr_i_iris_seg6_dl_06004220), - GEO_DISPLAY_LIST(LAYER_ALPHA, mr_i_iris_seg6_dl_06004208), - GEO_DISPLAY_LIST(LAYER_ALPHA, mr_i_iris_seg6_dl_060041F0), - GEO_DISPLAY_LIST(LAYER_ALPHA, mr_i_iris_seg6_dl_060041D8), - GEO_DISPLAY_LIST(LAYER_ALPHA, mr_i_iris_seg6_dl_060041D8), - GEO_DISPLAY_LIST(LAYER_ALPHA, mr_i_iris_seg6_dl_060041D8), - GEO_DISPLAY_LIST(LAYER_ALPHA, mr_i_iris_seg6_dl_060041F0), - GEO_DISPLAY_LIST(LAYER_ALPHA, mr_i_iris_seg6_dl_06004208), - GEO_DISPLAY_LIST(LAYER_ALPHA, mr_i_iris_seg6_dl_06004220), - GEO_DISPLAY_LIST(LAYER_ALPHA, mr_i_iris_seg6_dl_06004208), - GEO_DISPLAY_LIST(LAYER_ALPHA, mr_i_iris_seg6_dl_060041F0), - GEO_DISPLAY_LIST(LAYER_ALPHA, mr_i_iris_seg6_dl_060041D8), - GEO_DISPLAY_LIST(LAYER_ALPHA, mr_i_iris_seg6_dl_060041D8), - GEO_DISPLAY_LIST(LAYER_ALPHA, mr_i_iris_seg6_dl_060041D8), - GEO_DISPLAY_LIST(LAYER_ALPHA, mr_i_iris_seg6_dl_060041D8), - GEO_DISPLAY_LIST(LAYER_ALPHA, mr_i_iris_seg6_dl_060041D8), - GEO_DISPLAY_LIST(LAYER_ALPHA, mr_i_iris_seg6_dl_060041D8), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, mr_i_iris_seg6_dl_060041D8), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, mr_i_iris_seg6_dl_060041F0), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, mr_i_iris_seg6_dl_06004208), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, mr_i_iris_seg6_dl_06004220), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, mr_i_iris_seg6_dl_06004208), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, mr_i_iris_seg6_dl_060041F0), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, mr_i_iris_seg6_dl_060041D8), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, mr_i_iris_seg6_dl_060041D8), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, mr_i_iris_seg6_dl_060041D8), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, mr_i_iris_seg6_dl_060041F0), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, mr_i_iris_seg6_dl_06004208), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, mr_i_iris_seg6_dl_06004220), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, mr_i_iris_seg6_dl_06004208), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, mr_i_iris_seg6_dl_060041F0), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, mr_i_iris_seg6_dl_060041D8), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, mr_i_iris_seg6_dl_060041D8), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, mr_i_iris_seg6_dl_060041D8), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, mr_i_iris_seg6_dl_060041D8), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, mr_i_iris_seg6_dl_060041D8), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, mr_i_iris_seg6_dl_060041D8), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_END(), diff --git a/actors/mushroom_1up/geo.inc.c b/actors/mushroom_1up/geo.inc.c index 62c2bc3d..6ab526b6 100644 --- a/actors/mushroom_1up/geo.inc.c +++ b/actors/mushroom_1up/geo.inc.c @@ -2,7 +2,7 @@ const GeoLayout mushroom_1up_geo[] = { GEO_SHADOW(SHADOW_CIRCLE_4_VERTS, 0xB4, 80), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, mushroom_1up_seg3_dl_0302A660), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, mushroom_1up_seg3_dl_0302A660), GEO_CLOSE_NODE(), GEO_END(), }; diff --git a/actors/number/geo.inc.c b/actors/number/geo.inc.c index 0cf3845c..cf638c5e 100644 --- a/actors/number/geo.inc.c +++ b/actors/number/geo.inc.c @@ -4,16 +4,16 @@ const GeoLayout number_geo[] = { GEO_OPEN_NODE(), GEO_SWITCH_CASE(10, geo_switch_anim_state), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, dl_billboard_num_0), - GEO_DISPLAY_LIST(LAYER_ALPHA, dl_billboard_num_1), - GEO_DISPLAY_LIST(LAYER_ALPHA, dl_billboard_num_2), - GEO_DISPLAY_LIST(LAYER_ALPHA, dl_billboard_num_3), - GEO_DISPLAY_LIST(LAYER_ALPHA, dl_billboard_num_4), - GEO_DISPLAY_LIST(LAYER_ALPHA, dl_billboard_num_5), - GEO_DISPLAY_LIST(LAYER_ALPHA, dl_billboard_num_6), - GEO_DISPLAY_LIST(LAYER_ALPHA, dl_billboard_num_7), - GEO_DISPLAY_LIST(LAYER_ALPHA, dl_billboard_num_8), - GEO_DISPLAY_LIST(LAYER_ALPHA, dl_billboard_num_9), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, dl_billboard_num_0), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, dl_billboard_num_1), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, dl_billboard_num_2), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, dl_billboard_num_3), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, dl_billboard_num_4), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, dl_billboard_num_5), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, dl_billboard_num_6), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, dl_billboard_num_7), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, dl_billboard_num_8), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, dl_billboard_num_9), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_END(), diff --git a/actors/peach/geo.inc.c b/actors/peach/geo.inc.c index 876bfee5..7a625276 100644 --- a/actors/peach/geo.inc.c +++ b/actors/peach/geo.inc.c @@ -2,59 +2,59 @@ const GeoLayout peach_geo_000098[] = { GEO_NODE_START(), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, peach_seg5_dl_05007230), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, peach_seg5_dl_05007230), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 78, 0, 0, peach_seg5_dl_05006A18), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 78, 0, 0, peach_seg5_dl_05006A18), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 132, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 132, 0, 0, NULL), GEO_OPEN_NODE(), GEO_SWITCH_CASE(8, geo_switch_peach_eyes), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, peach_seg5_dl_05005CE0), - GEO_DISPLAY_LIST(LAYER_OPAQUE, peach_seg5_dl_05005D38), - GEO_DISPLAY_LIST(LAYER_OPAQUE, peach_seg5_dl_05005D90), - GEO_DISPLAY_LIST(LAYER_OPAQUE, peach_seg5_dl_05005DE8), - GEO_DISPLAY_LIST(LAYER_OPAQUE, peach_seg5_dl_05005E40), - GEO_DISPLAY_LIST(LAYER_OPAQUE, peach_seg5_dl_05005E98), - GEO_DISPLAY_LIST(LAYER_OPAQUE, peach_seg5_dl_05005EF0), - GEO_DISPLAY_LIST(LAYER_OPAQUE, peach_seg5_dl_05005F48), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, peach_seg5_dl_05005CE0), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, peach_seg5_dl_05005D38), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, peach_seg5_dl_05005D90), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, peach_seg5_dl_05005DE8), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, peach_seg5_dl_05005E40), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, peach_seg5_dl_05005E98), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, peach_seg5_dl_05005EF0), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, peach_seg5_dl_05005F48), GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 38, -78, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 38, -78, 0, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, peach_seg5_dl_05007AB8), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, peach_seg5_dl_05007AB8), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 132, 0, 0, peach_seg5_dl_05009148), - GEO_ANIMATED_PART(LAYER_OPAQUE, 132, 0, 0, peach_seg5_dl_05008F20), - GEO_ANIMATED_PART(LAYER_OPAQUE, 63, 0, 84, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 132, 0, 0, peach_seg5_dl_05009148), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 132, 0, 0, peach_seg5_dl_05008F20), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 63, 0, 84, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, peach_seg5_dl_05007E58), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, peach_seg5_dl_05007E58), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 104, 0, 0, peach_seg5_dl_050087A8), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 104, 0, 0, peach_seg5_dl_050087A8), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 87, 0, 0, peach_seg5_dl_05009500), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 87, 0, 0, peach_seg5_dl_05009500), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, peach_seg5_dl_05008560), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, peach_seg5_dl_05008560), GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 63, 0, -84, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 63, 0, -84, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, peach_seg5_dl_05008228), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, peach_seg5_dl_05008228), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 104, 0, 0, peach_seg5_dl_05008CF8), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 104, 0, 0, peach_seg5_dl_05008CF8), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 87, 0, 0, peach_seg5_dl_05009940), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 87, 0, 0, peach_seg5_dl_05009940), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, peach_seg5_dl_05008AB0), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, peach_seg5_dl_05008AB0), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 78, 0, 0, peach_seg5_dl_050060E0), - GEO_ANIMATED_PART(LAYER_OPAQUE, -23, -1, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 78, 0, 0, peach_seg5_dl_050060E0), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, -23, -1, 0, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, peach_seg5_dl_0500A0A8), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, peach_seg5_dl_0500A0A8), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), diff --git a/actors/small_key/geo.inc.c b/actors/small_key/geo.inc.c index 882ad244..9414dd49 100644 --- a/actors/small_key/geo.inc.c +++ b/actors/small_key/geo.inc.c @@ -4,7 +4,7 @@ const GeoLayout small_key_geo[] = { GEO_OPEN_NODE(), GEO_SCALE(0x00, 16384), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, small_key_seg5_dl_05006A68), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, small_key_seg5_dl_05006A68), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_END(), diff --git a/actors/sparkle/geo.inc.c b/actors/sparkle/geo.inc.c index d96da669..c88a02ce 100644 --- a/actors/sparkle/geo.inc.c +++ b/actors/sparkle/geo.inc.c @@ -2,18 +2,18 @@ const GeoLayout sparkles_geo[] = { GEO_SWITCH_CASE(12, geo_switch_anim_state), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, sparkles_seg4_dl_0402A570), - GEO_DISPLAY_LIST(LAYER_ALPHA, sparkles_seg4_dl_0402A570), - GEO_DISPLAY_LIST(LAYER_ALPHA, sparkles_seg4_dl_0402A558), - GEO_DISPLAY_LIST(LAYER_ALPHA, sparkles_seg4_dl_0402A558), - GEO_DISPLAY_LIST(LAYER_ALPHA, sparkles_seg4_dl_0402A540), - GEO_DISPLAY_LIST(LAYER_ALPHA, sparkles_seg4_dl_0402A540), - GEO_DISPLAY_LIST(LAYER_ALPHA, sparkles_seg4_dl_0402A528), - GEO_DISPLAY_LIST(LAYER_ALPHA, sparkles_seg4_dl_0402A528), - GEO_DISPLAY_LIST(LAYER_ALPHA, sparkles_seg4_dl_0402A510), - GEO_DISPLAY_LIST(LAYER_ALPHA, sparkles_seg4_dl_0402A510), - GEO_DISPLAY_LIST(LAYER_ALPHA, sparkles_seg4_dl_0402A4F8), - GEO_DISPLAY_LIST(LAYER_ALPHA, sparkles_seg4_dl_0402A4F8), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, sparkles_seg4_dl_0402A570), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, sparkles_seg4_dl_0402A570), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, sparkles_seg4_dl_0402A558), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, sparkles_seg4_dl_0402A558), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, sparkles_seg4_dl_0402A540), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, sparkles_seg4_dl_0402A540), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, sparkles_seg4_dl_0402A528), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, sparkles_seg4_dl_0402A528), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, sparkles_seg4_dl_0402A510), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, sparkles_seg4_dl_0402A510), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, sparkles_seg4_dl_0402A4F8), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, sparkles_seg4_dl_0402A4F8), GEO_CLOSE_NODE(), GEO_END(), }; diff --git a/actors/spiny_egg/geo.inc.c b/actors/spiny_egg/geo.inc.c index e2a3d4f6..68a0eb84 100644 --- a/actors/spiny_egg/geo.inc.c +++ b/actors/spiny_egg/geo.inc.c @@ -4,16 +4,16 @@ const GeoLayout spiny_ball_geo[] = { GEO_OPEN_NODE(), GEO_SCALE(0x00, 16384), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, -18, -34, 10, spiny_egg_seg5_dl_05015368), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, -18, -34, 10, spiny_egg_seg5_dl_05015368), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, spiny_egg_seg5_dl_05015330), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, spiny_egg_seg5_dl_050152F8), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, spiny_egg_seg5_dl_050152C0), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, spiny_egg_seg5_dl_05015288), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, spiny_egg_seg5_dl_05015250), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, spiny_egg_seg5_dl_05015218), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, spiny_egg_seg5_dl_050151E0), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, spiny_egg_seg5_dl_050151A8), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, spiny_egg_seg5_dl_05015330), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, spiny_egg_seg5_dl_050152F8), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, spiny_egg_seg5_dl_050152C0), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, spiny_egg_seg5_dl_05015288), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, spiny_egg_seg5_dl_05015250), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, spiny_egg_seg5_dl_05015218), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, spiny_egg_seg5_dl_050151E0), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, spiny_egg_seg5_dl_050151A8), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), diff --git a/actors/star/geo.inc.c b/actors/star/geo.inc.c index 200f64e7..be0f1767 100644 --- a/actors/star/geo.inc.c +++ b/actors/star/geo.inc.c @@ -4,8 +4,8 @@ const GeoLayout star_geo[] = { GEO_OPEN_NODE(), GEO_SCALE(0x00, 16384), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_OPAQUE, star_seg3_dl_0302B870), - GEO_DISPLAY_LIST(LAYER_ALPHA, star_seg3_dl_0302BA18), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, star_seg3_dl_0302B870), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, star_seg3_dl_0302BA18), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_END(), diff --git a/actors/toad/geo.inc.c b/actors/toad/geo.inc.c index fd8af275..d275b2ee 100644 --- a/actors/toad/geo.inc.c +++ b/actors/toad/geo.inc.c @@ -2,48 +2,48 @@ const GeoLayout toad_geo_000114[] = { GEO_NODE_START(), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 83, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 83, 0, 0, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 126, -37, 0, toad_seg6_dl_06007710), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 126, -37, 0, toad_seg6_dl_06007710), GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 25, 8, 0, toad_seg6_dl_06007A48), - GEO_ANIMATED_PART(LAYER_OPAQUE, 34, 8, 0, toad_seg6_dl_06007EB0), - GEO_ANIMATED_PART(LAYER_OPAQUE, 4, 7, 38, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 25, 8, 0, toad_seg6_dl_06007A48), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 34, 8, 0, toad_seg6_dl_06007EB0), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 4, 7, 38, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 37, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 37, 0, 0, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 9, -25, 3, toad_seg6_dl_06008890), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 9, -25, 3, toad_seg6_dl_06008890), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 4, 7, -38, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 4, 7, -38, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 37, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 37, 0, 0, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 9, -25, -3, toad_seg6_dl_06008BD8), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 9, -25, -3, toad_seg6_dl_06008BD8), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 61, -3, 52, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 61, -3, 52, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 17, 0, 4, toad_seg6_dl_060081F8), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 17, 0, 4, toad_seg6_dl_060081F8), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 61, -3, -52, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 61, -3, -52, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 17, 0, -4, toad_seg6_dl_06008520), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 17, 0, -4, toad_seg6_dl_06008520), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), diff --git a/actors/ukiki/geo.inc.c b/actors/ukiki/geo.inc.c index 72d864c9..ad3e39ce 100644 --- a/actors/ukiki/geo.inc.c +++ b/actors/ukiki/geo.inc.c @@ -4,83 +4,83 @@ const GeoLayout ukiki_geo[] = { GEO_OPEN_NODE(), GEO_SCALE(0x00, 16384), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, ukiki_seg5_dl_0500B820), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, ukiki_seg5_dl_0500B820), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 99, -11, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 99, -11, NULL), GEO_OPEN_NODE(), GEO_SWITCH_CASE(4, geo_switch_anim_state), GEO_OPEN_NODE(), GEO_NODE_START(), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, ukiki_seg5_dl_0500B2E8), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, ukiki_seg5_dl_0500B2E8), GEO_CLOSE_NODE(), GEO_NODE_START(), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, ukiki_seg5_dl_0500B310), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, ukiki_seg5_dl_0500B310), GEO_CLOSE_NODE(), GEO_NODE_START(), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, ukiki_seg5_dl_0500B2E8), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, ukiki_seg5_dl_0500B2E8), GEO_OPEN_NODE(), - GEO_TRANSLATE_ROTATE_WITH_DL(LAYER_OPAQUE, 100, 0, 0, -90, -90, 0, mario_cap_seg3_dl_03022F48), + GEO_TRANSLATE_ROTATE_WITH_DL(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 100, 0, 0, -90, -90, 0, mario_cap_seg3_dl_03022F48), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_NODE_START(), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, ukiki_seg5_dl_0500B310), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, ukiki_seg5_dl_0500B310), GEO_OPEN_NODE(), - GEO_TRANSLATE_ROTATE_WITH_DL(LAYER_OPAQUE, 100, 0, 0, -90, -90, 0, mario_cap_seg3_dl_03022F48), + GEO_TRANSLATE_ROTATE_WITH_DL(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 100, 0, 0, -90, -90, 0, mario_cap_seg3_dl_03022F48), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 71, 69, -9, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 71, 69, -9, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, ukiki_seg5_dl_0500B988), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, ukiki_seg5_dl_0500B988), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 86, 0, 0, ukiki_seg5_dl_0500BB28), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 86, 0, 0, ukiki_seg5_dl_0500BB28), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 64, 0, 0, ukiki_seg5_dl_0500CF68), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 64, 0, 0, ukiki_seg5_dl_0500CF68), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, -71, 68, -9, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, -71, 68, -9, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, ukiki_seg5_dl_0500BC78), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, ukiki_seg5_dl_0500BC78), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 86, 0, 0, ukiki_seg5_dl_0500BE38), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 86, 0, 0, ukiki_seg5_dl_0500BE38), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 64, 0, 0, ukiki_seg5_dl_0500CFF0), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 64, 0, 0, ukiki_seg5_dl_0500CFF0), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 43, -22, -1, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 43, -22, -1, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, ukiki_seg5_dl_0500BFF8), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, ukiki_seg5_dl_0500BFF8), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 46, 0, 0, ukiki_seg5_dl_0500C1B8), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 46, 0, 0, ukiki_seg5_dl_0500C1B8), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 36, 0, 0, ukiki_seg5_dl_0500D078), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 36, 0, 0, ukiki_seg5_dl_0500D078), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, -43, -22, -1, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, -43, -22, -1, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, ukiki_seg5_dl_0500C368), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, ukiki_seg5_dl_0500C368), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 46, 0, 0, ukiki_seg5_dl_0500C528), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 46, 0, 0, ukiki_seg5_dl_0500C528), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 36, 0, 0, ukiki_seg5_dl_0500D108), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 36, 0, 0, ukiki_seg5_dl_0500D108), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, -15, -57, NULL), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, -15, -57, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, ukiki_seg5_dl_0500C6E8), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, ukiki_seg5_dl_0500C6E8), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 45, 0, 0, ukiki_seg5_dl_0500C898), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 45, 0, 0, ukiki_seg5_dl_0500C898), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OPAQUE, 46, 0, 0, ukiki_seg5_dl_0500CA48), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 46, 0, 0, ukiki_seg5_dl_0500CA48), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), diff --git a/actors/unagi/geo.inc.c b/actors/unagi/geo.inc.c index a6f7674c..42374439 100644 --- a/actors/unagi/geo.inc.c +++ b/actors/unagi/geo.inc.c @@ -21,8 +21,8 @@ const GeoLayout unagi_geo[] = { GEO_OPEN_NODE(), GEO_SCALE(0x00, 16384), GEO_OPEN_NODE(), - GEO_TRANSLATE_ROTATE_WITH_DL(LAYER_OPAQUE, 2000, 0, 0, 0, 0, 0, star_seg3_dl_0302B870), - GEO_TRANSLATE_ROTATE_WITH_DL(LAYER_ALPHA, 2000, 0, 0, 0, 0, 0, star_seg3_dl_0302BA18), + GEO_TRANSLATE_ROTATE_WITH_DL(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 2000, 0, 0, 0, 0, 0, star_seg3_dl_0302B870), + GEO_TRANSLATE_ROTATE_WITH_DL(LAYER_OCCLUDE_SILHOUETTE_ALPHA, 2000, 0, 0, 0, 0, 0, star_seg3_dl_0302BA18), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), diff --git a/actors/water_splash/geo.inc.c b/actors/water_splash/geo.inc.c index 7075b114..10f5ecbd 100644 --- a/actors/water_splash/geo.inc.c +++ b/actors/water_splash/geo.inc.c @@ -2,14 +2,14 @@ const GeoLayout water_splash_geo[] = { GEO_SWITCH_CASE(8, geo_switch_anim_state), GEO_OPEN_NODE(), - GEO_DISPLAY_LIST(LAYER_ALPHA, water_splash_seg4_dl_04032640), - GEO_DISPLAY_LIST(LAYER_ALPHA, water_splash_seg4_dl_04032658), - GEO_DISPLAY_LIST(LAYER_ALPHA, water_splash_seg4_dl_04032670), - GEO_DISPLAY_LIST(LAYER_ALPHA, water_splash_seg4_dl_04032688), - GEO_DISPLAY_LIST(LAYER_ALPHA, water_splash_seg4_dl_040326A0), - GEO_DISPLAY_LIST(LAYER_ALPHA, water_splash_seg4_dl_040326B8), - GEO_DISPLAY_LIST(LAYER_ALPHA, water_splash_seg4_dl_040326D0), - GEO_DISPLAY_LIST(LAYER_ALPHA, water_splash_seg4_dl_040326E8), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, water_splash_seg4_dl_04032640), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, water_splash_seg4_dl_04032658), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, water_splash_seg4_dl_04032670), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, water_splash_seg4_dl_04032688), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, water_splash_seg4_dl_040326A0), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, water_splash_seg4_dl_040326B8), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, water_splash_seg4_dl_040326D0), + GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, water_splash_seg4_dl_040326E8), GEO_CLOSE_NODE(), GEO_END(), }; diff --git a/include/config.h b/include/config.h index b9b2808b..1b419b38 100644 --- a/include/config.h +++ b/include/config.h @@ -179,6 +179,12 @@ #define DISABLE_AA // Makes the coins ia8 64x64 instead of ia16 32x32. Uses new ia8 textures so that vanilla coins look better. #define IA8_COINS +// Mario's silhouette when behind solid objects/surfaces +// Also enables new render layers, such as LAYER_ALPHA_DECAL. +// The number is the intensity of the silhouette, from 0-255. +// NOTE: The overlap between Mario's model parts is visible on certain HLE plugins. +// Also, this also disables anti-aliasing on Mario, and the outermost pixel edges of the silhouette are slightly visible on Mario's normal model at lower resolutions. +#define SILHOUETTE 127 // Use a much better implementation of reverb over vanilla's fake echo reverb. Great for caves or eerie levels, as well as just a better audio experience in general. // Reverb parameters can be configured in audio/synthesis.c to meet desired aesthetic/performance needs. Currently US/JP only. //#define BETTER_REVERB diff --git a/include/sm64.h b/include/sm64.h index 9478273f..44d6093a 100644 --- a/include/sm64.h +++ b/include/sm64.h @@ -40,14 +40,54 @@ #endif // Layers -#define LAYER_FORCE 0 -#define LAYER_OPAQUE 1 -#define LAYER_OPAQUE_DECAL 2 -#define LAYER_OPAQUE_INTER 3 -#define LAYER_ALPHA 4 -#define LAYER_TRANSPARENT 5 -#define LAYER_TRANSPARENT_DECAL 6 -#define LAYER_TRANSPARENT_INTER 7 +#if SILHOUETTE +#define LAYER_FORCE 0x0 // is zbuffered +#define LAYER_OPAQUE 0x1 // is zbuffered +#define LAYER_OPAQUE_INTER 0x2 // is zbuffered +#define LAYER_OPAQUE_DECAL 0x3 // is zbuffered +#define LAYER_ALPHA 0x4 // is zbuffered +#define LAYER_ALPHA_DECAL 0x5 // is zbuffered +#define LAYER_SILHOUETTE_OPAQUE 0x6 // is zbuffered +#define LAYER_SILHOUETTE_ALPHA 0x7 // is zbuffered +#define LAYER_OCCLUDE_SILHOUETTE_OPAQUE 0x8 // is zbuffered +#define LAYER_OCCLUDE_SILHOUETTE_ALPHA 0x9 // is zbuffered +#define LAYER_TRANSPARENT_DECAL 0xA // not zbuffered +#define LAYER_TRANSPARENT 0xB // not zbuffered +#define LAYER_TRANSPARENT_INTER 0xC // not zbuffered + +#define LAYER_ZB_LAST LAYER_OCCLUDE_SILHOUETTE_ALPHA + +#define LAYER_SILHOUETTE_FIRST LAYER_SILHOUETTE_OPAQUE +#define LAYER_LAST_BEFORE_SILHOUETTE (LAYER_SILHOUETTE_FIRST - 1) +#define LAYER_SILHOUETTE_LAST LAYER_SILHOUETTE_ALPHA +#define LAYER_OCCLUDE_SILHOUETTE_FIRST LAYER_OCCLUDE_SILHOUETTE_OPAQUE +#define LAYER_OCCLUDE_SILHOUETTE_LAST LAYER_OCCLUDE_SILHOUETTE_ALPHA + +#define LAYER_OPAQUE_ORIG LAYER_OPAQUE +#define LAYER_ALPHA_ORIG LAYER_ALPHA + +#else +#define LAYER_FORCE 0x0 // is zbuffered +#define LAYER_OPAQUE 0x1 // is zbuffered +#define LAYER_OPAQUE_DECAL 0x2 // is zbuffered +#define LAYER_OPAQUE_INTER 0x3 // is zbuffered +#define LAYER_ALPHA 0x4 // is zbuffered +#define LAYER_TRANSPARENT 0x5 // not zbuffered +#define LAYER_TRANSPARENT_DECAL 0x6 // not zbuffered +#define LAYER_TRANSPARENT_INTER 0x7 // not zbuffered + +#define LAYER_ZB_LAST LAYER_ALPHA + +#define LAYER_ALPHA_DECAL 0x4 // is zbuffered +#define LAYER_SILHOUETTE_OPAQUE 0x1 // is zbuffered +#define LAYER_SILHOUETTE_ALPHA 0x4 // is zbuffered +#define LAYER_OCCLUDE_SILHOUETTE_OPAQUE 0x1 // is zbuffered +#define LAYER_OCCLUDE_SILHOUETTE_ALPHA 0x4 // is zbuffered + +#endif + +#define LAYER_FIRST_NON_ZB (LAYER_ZB_LAST + 1) +#define LAYER_LAST_ALL LAYER_TRANSPARENT_INTER #define INPUT_NONZERO_ANALOG 0x0001 #define INPUT_A_PRESSED 0x0002 diff --git a/src/engine/graph_node.h b/src/engine/graph_node.h index 36b21220..eef94c46 100644 --- a/src/engine/graph_node.h +++ b/src/engine/graph_node.h @@ -5,6 +5,7 @@ #include #include "types.h" +#include "sm64.h" #include "game/memory.h" #define UCODE_DEFAULT 0 @@ -46,7 +47,7 @@ // The number of master lists. A master list determines the order and render // mode with which display lists are drawn. -#define GFX_NUM_MASTER_LISTS 8 +#define GFX_NUM_MASTER_LISTS (LAYER_LAST_ALL + 1) // Passed as first argument to a GraphNodeFunc to give information about in // which context it was called and what it is expected to do. diff --git a/src/game/rendering_graph_node.c b/src/game/rendering_graph_node.c index ba3fcf8a..5c8232eb 100644 --- a/src/game/rendering_graph_node.c +++ b/src/game/rendering_graph_node.c @@ -76,9 +76,76 @@ s16 *gCurAnimData; struct AllocOnlyPool *gDisplayListHeap; struct RenderModeContainer { - u32 modes[8]; + u32 modes[GFX_NUM_MASTER_LISTS]; }; +#if SILHOUETTE +/* Rendermode settings for cycle 1 for all 13 layers. */ +struct RenderModeContainer renderModeTable_1Cycle[2] = { { { + G_RM_OPA_SURF, // LAYER_FORCE + G_RM_AA_OPA_SURF, // LAYER_OPAQUE + G_RM_AA_OPA_SURF, // LAYER_OPAQUE_INTER + G_RM_AA_OPA_SURF, // LAYER_OPAQUE_DECAL + G_RM_AA_TEX_EDGE, // LAYER_ALPHA + G_RM_AA_TEX_EDGE | ZMODE_DEC, // LAYER_ALPHA_DECAL + G_RM_AA_OPA_SURF, // LAYER_SILHOUETTE_OPAQUE + G_RM_AA_TEX_EDGE, // LAYER_SILHOUETTE_ALPHA + G_RM_AA_OPA_SURF, // LAYER_OCCLUDE_SILHOUETTE_OPAQUE + G_RM_AA_TEX_EDGE, // LAYER_OCCLUDE_SILHOUETTE_ALPHA + G_RM_AA_XLU_SURF, // LAYER_TRANSPARENT_DECAL + G_RM_AA_XLU_SURF, // LAYER_TRANSPARENT + G_RM_AA_XLU_SURF, // LAYER_TRANSPARENT_INTER + } }, + { { + /* z-buffered */ + G_RM_ZB_OPA_SURF, // LAYER_FORCE + G_RM_AA_ZB_OPA_SURF, // LAYER_OPAQUE + G_RM_AA_ZB_OPA_INTER, // LAYER_OPAQUE_INTER + G_RM_AA_ZB_OPA_DECAL, // LAYER_OPAQUE_DECAL + G_RM_AA_ZB_TEX_EDGE, // LAYER_ALPHA + G_RM_AA_ZB_TEX_EDGE | ZMODE_DEC, // LAYER_ALPHA_DECAL + G_RM_AA_ZB_OPA_SURF, // LAYER_SILHOUETTE_OPAQUE + G_RM_AA_ZB_TEX_EDGE, // LAYER_SILHOUETTE_ALPHA + G_RM_AA_ZB_OPA_SURF, // LAYER_OCCLUDE_SILHOUETTE_OPAQUE + G_RM_AA_ZB_TEX_EDGE, // LAYER_OCCLUDE_SILHOUETTE_ALPHA + G_RM_AA_ZB_XLU_DECAL, // LAYER_TRANSPARENT_DECAL + G_RM_AA_ZB_XLU_SURF, // LAYER_TRANSPARENT + G_RM_AA_ZB_XLU_INTER, // LAYER_TRANSPARENT_INTER + } } }; + +/* Rendermode settings for cycle 2 for all 13 layers. */ +struct RenderModeContainer renderModeTable_2Cycle[2] = { { { + G_RM_OPA_SURF2, // LAYER_FORCE + G_RM_AA_OPA_SURF2, // LAYER_OPAQUE + G_RM_AA_OPA_SURF2, // LAYER_OPAQUE_INTER + G_RM_AA_OPA_SURF2, // LAYER_OPAQUE_DECAL + G_RM_AA_TEX_EDGE2, // LAYER_ALPHA + G_RM_AA_TEX_EDGE2 | ZMODE_DEC, // LAYER_ALPHA_DECAL + G_RM_AA_OPA_SURF2, // LAYER_SILHOUETTE_OPAQUE + G_RM_AA_TEX_EDGE2, // LAYER_SILHOUETTE_ALPHA + G_RM_AA_OPA_SURF2, // LAYER_OCCLUDE_SILHOUETTE_OPAQUE + G_RM_AA_TEX_EDGE2, // LAYER_OCCLUDE_SILHOUETTE_ALPHA + G_RM_AA_XLU_SURF2, // LAYER_TRANSPARENT_DECAL + G_RM_AA_XLU_SURF2, // LAYER_TRANSPARENT + G_RM_AA_XLU_SURF2, // LAYER_TRANSPARENT_INTER + } }, + { { + /* z-buffered */ + G_RM_ZB_OPA_SURF2, // LAYER_FORCE + G_RM_AA_ZB_OPA_SURF2, // LAYER_OPAQUE + G_RM_AA_ZB_OPA_INTER2, // LAYER_OPAQUE_INTER + G_RM_AA_ZB_OPA_DECAL2, // LAYER_OPAQUE_DECAL + G_RM_AA_ZB_TEX_EDGE2, // LAYER_ALPHA + G_RM_AA_ZB_TEX_EDGE2 | ZMODE_DEC, // LAYER_ALPHA_DECAL + G_RM_AA_ZB_OPA_SURF2, // LAYER_SILHOUETTE_OPAQUE + G_RM_AA_ZB_TEX_EDGE2, // LAYER_SILHOUETTE_ALPHA + G_RM_AA_ZB_OPA_SURF2, // LAYER_OCCLUDE_SILHOUETTE_OPAQUE + G_RM_AA_ZB_TEX_EDGE2, // LAYER_OCCLUDE_SILHOUETTE_ALPHA + G_RM_AA_ZB_XLU_DECAL2, // LAYER_TRANSPARENT_DECAL + G_RM_AA_ZB_XLU_SURF2, // LAYER_TRANSPARENT + G_RM_AA_ZB_XLU_INTER2, // LAYER_TRANSPARENT_INTER + } } }; +#else /* Rendermode settings for cycle 1 for all 8 layers. */ struct RenderModeContainer renderModeTable_1Cycle[2] = { { { G_RM_OPA_SURF, @@ -124,6 +191,7 @@ struct RenderModeContainer renderModeTable_2Cycle[2] = { { { G_RM_AA_ZB_XLU_DECAL2, G_RM_AA_ZB_XLU_INTER2, } } }; +#endif struct GraphNodeRoot *gCurGraphNodeRoot = NULL; struct GraphNodeMasterList *gCurGraphNodeMasterList = NULL; @@ -137,6 +205,26 @@ u16 gAreaUpdateCounter = 0; LookAt lookAt; #endif +#if SILHOUETTE +#define SIL_CVG_THRESHOLD 0x3F // 32..255, 63 seems to give best results +#define SCHWA (AA_EN | IM_RD | CLR_ON_CVG | CVG_DST_WRAP | CVG_X_ALPHA | FORCE_BL) +#define SET_SILHOUETTE_F3D(gfx) { \ + gDPSetRenderMode( (gfx)++, (SCHWA | GBL_c1(G_BL_CLR_FOG, G_BL_A_FOG, G_BL_CLR_MEM, G_BL_1MA)), \ + (SCHWA | GBL_c2(G_BL_CLR_FOG, G_BL_A_FOG, G_BL_CLR_MEM, G_BL_1MA))); \ + gSPSetGeometryMode((gfx)++, G_FOG); /* Enable fog */ \ + gSPFogPosition( (gfx)++, 0, 1 ); /* Fox position */ \ + gDPSetFogColor( (gfx)++, 0, 0, 0, SILHOUETTE ); /* silhouette color & alpha */ \ + gDPSetEnvColor( (gfx)++, 0, 0, 0, SIL_CVG_THRESHOLD); /* silhouette env transparency */ \ +} +#define CLEAR_SILHOUETTE_F3D(gfx, i) { \ + gSPClearGeometryMode((gfx)++, G_FOG ); /* Disable fog */ \ + gDPSetEnvColor( (gfx)++, 255, 255, 255, 255); /* Reset env color & alpha */ \ + gDPSetRenderMode( (gfx)++, (mode1List->modes[(i)] & ~IM_RD), \ + (mode2List->modes[(i)] & ~IM_RD)); /* Use normal mode list, no AA */ \ +} +#define IS_LAYER_SILHOUETTE(layer) (((layer) >= LAYER_SILHOUETTE_FIRST) || ((layer) <= LAYER_SILHOUETTE_LAST)) +#endif + u8 ucodeTestSwitch = 1; /** @@ -148,11 +236,11 @@ u8 ucodeTestSwitch = 1; */ static void geo_process_master_list_sub(struct GraphNodeMasterList *node) { struct DisplayListNode *currList; - s32 i = 0; - s32 j = 1; + s32 startLayer, endLayer, currLayer = LAYER_FORCE; + s32 headsIndex = 1; s32 renderPhase = 0; s32 enableZBuffer = (node->node.flags & GRAPH_RENDER_Z_BUFFER) != 0; - struct RenderModeContainer *modeList = &renderModeTable_1Cycle[enableZBuffer]; + struct RenderModeContainer *mode1List = &renderModeTable_1Cycle[enableZBuffer]; struct RenderModeContainer *mode2List = &renderModeTable_2Cycle[enableZBuffer]; // @bug This is where the LookAt values should be calculated but aren't. // As a result, environment mapping is broken on Fast3DEX2 without the @@ -166,9 +254,23 @@ static void geo_process_master_list_sub(struct GraphNodeMasterList *node) { //print_text_fmt_int(32,32,"%d",ucodeTestSwitch); #ifdef F3DZEX_GBI_2 loopBegin: - //Load rejection on pass 2. ZEX is loaded afterwards. - if (renderPhase == 0 || renderPhase == 2) - { + switch (renderPhase) { +#if SILHOUETTE + case RENDER_PHASE_REJ_ZB: headsIndex = LIST_HEADS_REJ; startLayer = LAYER_FORCE; endLayer = LAYER_LAST_BEFORE_SILHOUETTE; break; + case RENDER_PHASE_ZEX_BEFORE_SILHOUETTE: headsIndex = LIST_HEADS_ZEX; startLayer = LAYER_FORCE; endLayer = LAYER_LAST_BEFORE_SILHOUETTE; break; + case RENDER_PHASE_REJ_SILHOUETTE: headsIndex = LIST_HEADS_REJ; startLayer = LAYER_SILHOUETTE_FIRST; endLayer = LAYER_SILHOUETTE_LAST; break; + case RENDER_PHASE_REJ_NON_SILHOUETTE: headsIndex = LIST_HEADS_REJ; startLayer = LAYER_SILHOUETTE_FIRST; endLayer = LAYER_SILHOUETTE_LAST; break; + case RENDER_PHASE_REJ_OCCLUDE_SILHOUETTE: headsIndex = LIST_HEADS_REJ; startLayer = LAYER_OCCLUDE_SILHOUETTE_FIRST; endLayer = LAYER_OCCLUDE_SILHOUETTE_LAST; break; + case RENDER_PHASE_ZEX_AFTER_SILHOUETTE: headsIndex = LIST_HEADS_ZEX; startLayer = LAYER_OCCLUDE_SILHOUETTE_FIRST; endLayer = LAYER_LAST_ALL; break; + case RENDER_PHASE_REJ_NON_ZB: headsIndex = LIST_HEADS_REJ; startLayer = LAYER_FIRST_NON_ZB; endLayer = LAYER_LAST_ALL; break; +#else + case RENDER_PHASE_REJ_ZB: headsIndex = LIST_HEADS_REJ; startLayer = LAYER_FORCE; endLayer = LAYER_ZB_LAST; break; + case RENDER_PHASE_ZEX_ALL: headsIndex = LIST_HEADS_ZEX; startLayer = LAYER_FORCE; endLayer = LAYER_LAST_ALL; break; + case RENDER_PHASE_REJ_NON_ZB: headsIndex = LIST_HEADS_REJ; startLayer = LAYER_FIRST_NON_ZB; endLayer = LAYER_LAST_ALL; break; +#endif + } + // Load rejection on pass 2. ZEX is loaded afterwards. + if (headsIndex == LIST_HEADS_REJ) { if (gIsConsole) { gSPLoadUcodeL(gDisplayListHead++, gspF3DLX2_Rej_fifo); } else { @@ -176,52 +278,49 @@ static void geo_process_master_list_sub(struct GraphNodeMasterList *node) { } init_rcp(KEEP_ZBUFFER); gSPClipRatio(gDisplayListHead++, FRUSTRATIO_2); - } - else - if (renderPhase == 1) - { + } else { gSPLoadUcodeL(gDisplayListHead++, gspF3DZEX2_PosLight_fifo); init_rcp(KEEP_ZBUFFER); gSPClipRatio(gDisplayListHead++, FRUSTRATIO_1); } gSPLookAt(gDisplayListHead++, &lookAt); #endif - if (enableZBuffer != 0) - { + if (enableZBuffer) { gDPPipeSync(gDisplayListHead++); gSPSetGeometryMode(gDisplayListHead++, G_ZBUFFER); } - for (; i < GFX_NUM_MASTER_LISTS; i++) - { -#ifdef F3DZEX_GBI_2 - if (i == 5 && renderPhase == 0) - break; + for (currLayer = startLayer; currLayer <= endLayer; currLayer++) { + currList = node->listHeads[headsIndex][currLayer]; + while (currList != NULL) { +#if SILHOUETTE + if (renderPhase == RENDER_PHASE_REJ_SILHOUETTE) { + SET_SILHOUETTE_F3D(gDisplayListHead); + } else if (renderPhase == RENDER_PHASE_REJ_NON_SILHOUETTE) { + CLEAR_SILHOUETTE_F3D(gDisplayListHead, currLayer); + } else { #endif - if ((currList = node->listHeads[j][i]) != NULL) - { - gDPSetRenderMode(gDisplayListHead++, modeList->modes[i], mode2List->modes[i]); - while (currList != NULL) - { - gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(currList->transform), G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_NOPUSH); - gSPDisplayList(gDisplayListHead++, currList->displayList); - currList = currList->next; + gDPSetRenderMode(gDisplayListHead++, mode1List->modes[currLayer], mode2List->modes[currLayer]); +#if SILHOUETTE } +#endif + gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(currList->transform), G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_NOPUSH); + gSPDisplayList(gDisplayListHead++, currList->displayList); + currList = currList->next; } } -#ifdef F3DZEX_GBI_2 - switch (renderPhase) - { - case 0: renderPhase++; j = 0; i = 0; goto loopBegin; - case 1: renderPhase++; j = 1; i = 5; goto loopBegin; + if (renderPhase < RENDER_PHASE_LAST) { + renderPhase++; + goto loopBegin; } - if (enableZBuffer != 0) - { +#ifdef F3DZEX_GBI_2 + if (enableZBuffer) { gDPPipeSync(gDisplayListHead++); gSPClearGeometryMode(gDisplayListHead++, G_ZBUFFER); } #ifdef VISUAL_DEBUG - if (hitboxView) + if (hitboxView) { render_debug_boxes(DEBUG_UCODE_REJ); + } #endif gSPLoadUcodeL(gDisplayListHead++, gspF3DZEX2_PosLight_fifo); init_rcp(KEEP_ZBUFFER); @@ -229,12 +328,18 @@ static void geo_process_master_list_sub(struct GraphNodeMasterList *node) { #endif #ifdef VISUAL_DEBUG - if (hitboxView) + if (hitboxView) { render_debug_boxes(DEBUG_UCODE_DEFAULT | DEBUG_BOX_CLEAR); - if (surfaceView) + } + if (surfaceView) { visual_surface_loop(); + } #endif } +#if SILHOUETTE +#undef SIL_CVG_THRESHOLD +#undef SCHWA +#endif /** * Appends the display list to one of the master lists based on the layer diff --git a/src/game/rendering_graph_node.h b/src/game/rendering_graph_node.h index 8c37e512..56407ffb 100644 --- a/src/game/rendering_graph_node.h +++ b/src/game/rendering_graph_node.h @@ -28,6 +28,28 @@ extern f32 gWorldScale; // translation types the type is set to this #define ANIM_TYPE_ROTATION 5 +#define LIST_HEADS_ZEX 0 +#define LIST_HEADS_REJ 1 + +#define IS_LAYER_ZB( layer) (((layer) >= LAYER_FORCE ) || ((layer) <= LAYER_ZB_LAST )) +#define IS_LAYER_NON_ZB(layer) (((layer) >= LAYER_FIRST_NON_ZB) || ((layer) <= LAYER_LAST_ALL)) + +#if SILHOUETTE +#define RENDER_PHASE_REJ_ZB 0 +#define RENDER_PHASE_ZEX_BEFORE_SILHOUETTE 1 +#define RENDER_PHASE_REJ_SILHOUETTE 2 +#define RENDER_PHASE_REJ_NON_SILHOUETTE 3 +#define RENDER_PHASE_REJ_OCCLUDE_SILHOUETTE 4 +#define RENDER_PHASE_ZEX_AFTER_SILHOUETTE 5 +#define RENDER_PHASE_REJ_NON_ZB 6 +#else +#define RENDER_PHASE_REJ_ZB 0 +#define RENDER_PHASE_ZEX_ALL 1 +#define RENDER_PHASE_REJ_NON_ZB 2 +#endif +#define RENDER_PHASE_FIRST RENDER_PHASE_REJ_ZB +#define RENDER_PHASE_LAST RENDER_PHASE_REJ_NON_ZB + void geo_process_node_and_siblings(struct GraphNode *firstNode); void geo_process_root(struct GraphNodeRoot *node, Vp *b, Vp *c, s32 clearColor);