diff --git a/src/game/rendering_graph_node.c b/src/game/rendering_graph_node.c index 60096e06..f2768aee 100644 --- a/src/game/rendering_graph_node.c +++ b/src/game/rendering_graph_node.c @@ -206,8 +206,8 @@ void reset_clipping(void) void geo_process_master_list_sub(struct GraphNodeMasterList *node) { struct DisplayListNode *currList; s32 startLayer, endLayer, currLayer = LAYER_FORCE; - s32 headsIndex = LIST_HEADS_REJ; - s32 renderPhase = RENDER_PHASE_REJ_ZB; + s32 headsIndex = LIST_HEADS_ZEX; + s32 renderPhase = RENDER_PHASE_ZEX_BG; s32 enableZBuffer = (node->node.flags & GRAPH_RENDER_Z_BUFFER) != 0; struct RenderModeContainer *mode1List = &renderModeTable_1Cycle[enableZBuffer]; struct RenderModeContainer *mode2List = &renderModeTable_2Cycle[enableZBuffer]; @@ -225,16 +225,18 @@ void geo_process_master_list_sub(struct GraphNodeMasterList *node) { loopBegin: switch (renderPhase) { #if SILHOUETTE + case RENDER_PHASE_ZEX_BG: headsIndex = LIST_HEADS_ZEX; startLayer = LAYER_FORCE; endLayer = LAYER_FORCE; break; 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_ZEX_BEFORE_SILHOUETTE: headsIndex = LIST_HEADS_ZEX; startLayer = LAYER_OPAQUE; 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_COUNT - 1); break; case RENDER_PHASE_REJ_NON_ZB: headsIndex = LIST_HEADS_REJ; startLayer = LAYER_FIRST_NON_ZB; endLayer = (LAYER_COUNT - 1); break; #else + case RENDER_PHASE_ZEX_BG: headsIndex = LIST_HEADS_ZEX; startLayer = LAYER_FORCE; endLayer = LAYER_FORCE; break; 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_COUNT - 1); break; + case RENDER_PHASE_ZEX_ALL: headsIndex = LIST_HEADS_ZEX; startLayer = LAYER_OPAQUE; endLayer = (LAYER_COUNT - 1); break; case RENDER_PHASE_REJ_NON_ZB: headsIndex = LIST_HEADS_REJ; startLayer = LAYER_FIRST_NON_ZB; endLayer = (LAYER_COUNT - 1); break; #endif } diff --git a/src/game/rendering_graph_node.h b/src/game/rendering_graph_node.h index f574a65e..3cb0c2da 100644 --- a/src/game/rendering_graph_node.h +++ b/src/game/rendering_graph_node.h @@ -38,17 +38,19 @@ extern f32 gWorldScale; #if SILHOUETTE #define IS_LAYER_SILHOUETTE(layer) (((layer) >= LAYER_SILHOUETTE_FIRST) || ((layer) <= LAYER_SILHOUETTE_LAST)) -#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 +#define RENDER_PHASE_ZEX_BG 0 +#define RENDER_PHASE_REJ_ZB 1 +#define RENDER_PHASE_ZEX_BEFORE_SILHOUETTE 2 +#define RENDER_PHASE_REJ_SILHOUETTE 3 +#define RENDER_PHASE_REJ_NON_SILHOUETTE 4 +#define RENDER_PHASE_REJ_OCCLUDE_SILHOUETTE 5 +#define RENDER_PHASE_ZEX_AFTER_SILHOUETTE 6 +#define RENDER_PHASE_REJ_NON_ZB 7 #else -#define RENDER_PHASE_REJ_ZB 0 -#define RENDER_PHASE_ZEX_ALL 1 -#define RENDER_PHASE_REJ_NON_ZB 2 +#define RENDER_PHASE_ZEX_BG 0 +#define RENDER_PHASE_REJ_ZB 1 +#define RENDER_PHASE_ZEX_ALL 2 +#define RENDER_PHASE_REJ_NON_ZB 3 #endif #define RENDER_PHASE_FIRST RENDER_PHASE_REJ_ZB