#include #include "constants.h" #include "game/tex.h" #include "game/bg.h" #include "game/gfxreplace.h" #include "bss.h" #include "lib/vi.h" #include "data.h" #include "types.h" Gfx gbi_26a40[] = { gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2), gsDPSetCombineLERP(TEXEL1, 0, SCALE, 0, TEXEL1, 0, PRIM_LOD_FRAC, 0, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED), 0, }; Gfx gbi_26a58[] = { gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_OPA_SURF2), gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_SURF2), gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_OPA_TERR2), gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_TERR2), gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_OPA_DECAL2), gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_DECAL2), gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_DECAL2), gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_DECAL2), gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_SURF2), gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_SURF2), gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_TEX_EDGE2), gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_TEX_EDGE2), gsDPSetRenderMode(G_RM_PASS, G_RM_AA_OPA_SURF2), gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_OPA_SURF2), gsDPSetRenderMode(G_RM_PASS, G_RM_AA_OPA_TERR2), gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_OPA_TERR2), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0), gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), gsDPSetCombineMode(G_CC_MODULATEI, G_CC_MODULATEI), gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0), gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), gsDPSetCombineMode(G_CC_MODULATEI, G_CC_MODULATEI), gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), gsDPSetCombineMode(G_CC_SHADE, G_CC_PASS2), gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0), 0, }; Gfx gbi_26b90[] = { gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_DECAL2), gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_DECAL2), gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_SURF2), gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_SURF2), gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_TEX_EDGE2), gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_TEX_EDGE2), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0), gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), gsDPSetCombineMode(G_CC_MODULATEI, G_CC_MODULATEI), gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0), gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), gsDPSetCombineMode(G_CC_MODULATEI, G_CC_MODULATEI), gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), gsDPSetCombineMode(G_CC_SHADE, G_CC_PASS2), gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0), 0, }; Gfx gbi_26c78[] = { gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0), gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), gsDPSetCombineMode(G_CC_MODULATEI, G_CC_MODULATEI), gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0), gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), gsDPSetCombineMode(G_CC_MODULATEI, G_CC_MODULATEI), gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), gsDPSetCombineMode(G_CC_SHADE, G_CC_PASS2), gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), 0, }; Gfx gbi_26d20[] = { gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0), gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), gsDPSetCombineMode(G_CC_MODULATEI, G_CC_MODULATEI), gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0), gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), gsDPSetCombineMode(G_CC_MODULATEI, G_CC_MODULATEI), gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), gsDPSetCombineMode(G_CC_SHADE, G_CC_PASS2), gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), 0, }; Gfx gbi_26dc8[] = { gsDPSetRenderMode(G_RM_AA_ZB_XLU_SURF, G_RM_AA_ZB_XLU_SURF2), gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_SURF2), gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_TEX_EDGE2), 0, }; Gfx gbi_26df0[] = { gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), gsDPSetRenderMode(G_RM_AA_ZB_OPA_TERR, G_RM_AA_ZB_OPA_TERR2), gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_OPA_SURF2), gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_OPA_TERR2), 0, }; Gfx gbi_26e18[] = { gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_SURF2), gsDPSetRenderMode(G_RM_PASS, G_RM_ZB_CLD_SURF2), 0, }; Gfx gbi_26e30[] = { gsDPSetCycleType(G_CYC_1CYCLE), gsDPSetCycleType(G_CYC_2CYCLE), gsDPSetRenderMode(G_RM_AA_OPA_TERR, G_RM_AA_OPA_TERR2), gsDPSetRenderMode(GBL_c1(G_BL_CLR_IN, G_BL_A_SHADE, G_BL_CLR_FOG, G_BL_1MA), G_RM_AA_OPA_TERR2), gsDPSetCombineMode(G_CC_MODULATEI, G_CC_MODULATEI), gsDPSetCombineMode(G_CC_MODULATEI, G_CC_PASS2), 0, }; Gfx gbi_26e68[] = { gsDPSetCombineMode(G_CC_MODULATEI, G_CC_MODULATEI), gsDPSetCombineLERP(TEXEL0, 0, SCALE, 0, 0, 0, 0, SHADE, TEXEL0, 0, SCALE, 0, 0, 0, 0, SHADE), gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), gsDPSetCombineLERP(TEXEL0, 0, SCALE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SCALE, 0, TEXEL0, 0, SHADE, 0), gsDPSetCombineMode(G_CC_MODULATEI, G_CC_MODULATEI), gsDPSetCombineLERP(TEXEL0, 0, SCALE, 0, 0, 0, 0, SHADE, TEXEL0, 0, SCALE, 0, 0, 0, 0, SHADE), gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), gsDPSetCombineLERP(TEXEL0, 0, SCALE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SCALE, 0, TEXEL0, 0, SHADE, 0), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsDPSetCombineLERP(1, 0, SCALE, 0, 0, 0, 0, SHADE, 1, 0, SCALE, 0, 0, 0, 0, SHADE), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SCALE, 0, 0, 0, 0, SHADE), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SCALE, 0, COMBINED, 0, SHADE, 0), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SCALE, 0, 0, 0, 0, SHADE), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SCALE, 0, COMBINED, 0, SHADE, 0), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, 0, 0, 0, SHADE), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SCALE, 0, 0, 0, 0, SHADE), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SCALE, 0, COMBINED, 0, SHADE, 0), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, 0, 0, 0, SHADE), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SCALE, 0, 0, 0, 0, SHADE), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SCALE, 0, COMBINED, 0, SHADE, 0), gsDPSetCombineMode(G_CC_SHADE, G_CC_PASS2), gsDPSetCombineLERP(1, 0, SCALE, 0, 0, 0, 0, SHADE, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED), 0, }; Gfx gbi_26f50[] = { gsDPSetCombineLERP(TEXEL0, 0, SCALE, 0, 0, 0, 0, SHADE, TEXEL0, 0, SCALE, 0, 0, 0, 0, SHADE), gsDPSetCombineMode(G_CC_MODULATEI, G_CC_MODULATEI), gsDPSetCombineLERP(TEXEL0, 0, SCALE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SCALE, 0, TEXEL0, 0, SHADE, 0), gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), gsDPSetCombineLERP(TEXEL0, 0, SCALE, 0, 0, 0, 0, SHADE, TEXEL0, 0, SCALE, 0, 0, 0, 0, SHADE), gsDPSetCombineMode(G_CC_MODULATEI, G_CC_MODULATEI), gsDPSetCombineLERP(TEXEL0, 0, SCALE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SCALE, 0, TEXEL0, 0, SHADE, 0), gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), gsDPSetCombineLERP(1, 0, SCALE, 0, 0, 0, 0, SHADE, 1, 0, SCALE, 0, 0, 0, 0, SHADE), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SCALE, 0, 0, 0, 0, SHADE), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SCALE, 0, COMBINED, 0, SHADE, 0), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SCALE, 0, 0, 0, 0, SHADE), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SCALE, 0, COMBINED, 0, SHADE, 0), gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SCALE, 0, 0, 0, 0, SHADE), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, 0, 0, 0, SHADE), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SCALE, 0, COMBINED, 0, SHADE, 0), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SCALE, 0, 0, 0, 0, SHADE), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, 0, 0, 0, SHADE), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SCALE, 0, COMBINED, 0, SHADE, 0), gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0), gsDPSetCombineLERP(1, 0, SCALE, 0, 0, 0, 0, SHADE, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED), gsDPSetCombineMode(G_CC_SHADE, G_CC_PASS2), 0, }; Gfx *var80081018[] = { gbi_26a40, gbi_26a58, gbi_26dc8, gbi_26df0, gbi_26e18, gbi_26b90, gbi_26c78, gbi_26d20, gbi_26e30, gbi_26e68, gbi_26f50, }; void gfxReplaceGbiCommands(Gfx *startgdl, Gfx *endgdl, s32 type) { Gfx *gdl = startgdl; while ((endgdl && gdl < endgdl) || (!endgdl && *(s8 *)gdl != G_ENDDL)) { Gfx *src = var80081018[type]; while (src->words.w0 != 0) { if (src->words.w0 == gdl->words.w0 && src->words.w1 == gdl->words.w1) { *gdl = src[1]; } src += 2; } gdl++; } } void gfxReplaceGbiCommandsRecursively(struct roomblock *block, s32 type) { if (block->type == ROOMBLOCKTYPE_PARENT); while (true) { if (!block) { return; } switch (block->type) { case ROOMBLOCKTYPE_LEAF: gfxReplaceGbiCommands(block->gdl, NULL, type); block = block->next; break; case ROOMBLOCKTYPE_PARENT: gfxReplaceGbiCommandsRecursively(block->child, type); block = block->next; break; default: return; } } }